{"_id":"@rest-hooks/normalizr","_rev":"130-998878b6eca66fec18748f0a952dfed1","name":"@rest-hooks/normalizr","dist-tags":{"latest":"11.1.0","alpha":"4.0.0-alpha.0","beta":"9.3.3-beta.0","delta":"6.0.0-delta.0","next":"11.0.0-next.0"},"versions":{"3.4.2":{"name":"@rest-hooks/normalizr","version":"3.4.2","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","bugs":{"url":"https://github.com/ntucker/normalizr/issues"},"homepage":"https://github.com/ntucker/normalizr","repository":{"url":"git+https://github.com/ntucker/normalizr.git","type":"git"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","clean":"rimraf dist","flow":"flow","flow:ci":"flow check","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage && cat ./coverage/lcov.info | coveralls","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p flow:ci tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/core":"^7.0.0","@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-transform-runtime":"^7.5.5","@babel/preset-env":"^7.0.0","@babel/preset-flow":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.1","babel-jest":"^24.8.0","coveralls":"^3.0.3","eslint":"^5.16.0","eslint-config-prettier":"^5.0.0","eslint-plugin-jest":"^22.6.4","eslint-plugin-json":"^1.4.0","eslint-plugin-prettier":"^3.1.0","flow-bin":"^0.101.0","husky":"^2.3.0","immutable":"^3.8.1","jest":"^24.8.0","lint-staged":"^8.1.7","npm-run-all":"^4.1.5","prettier":"^1.12.1","rimraf":"^2.6.3","rollup":"^1.15.6","rollup-plugin-babel":"^4.3.2","rollup-plugin-filesize":"^6.1.1","rollup-plugin-terser":"^5.0.0","typescript":"^3.4.5"},"dependencies":{"@babel/runtime":"^7.5.5"},"gitHead":"8af6c7a42d7241172b92b0a28ef58d1cea40a034","_id":"@rest-hooks/normalizr@3.4.2","_nodeVersion":"11.15.0","_npmVersion":"6.10.1","dist":{"integrity":"sha512-/sngBQPo87ityghaFYYPTgEJ8uvXoWK24J1TZURx4lD0TA42p7gQ7HlTsiH5B0PgzHg67Qyoq72HKHzOCyZvlg==","shasum":"7a6804f5f2ba7b6c52d5e69ac7488f7a8c0293d9","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-3.4.2.tgz","fileCount":15,"unpackedSize":131001,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdfwX9CRA9TVsSAnZWagAARdMP/i0E7YGaEPwu0ap6t07b\nBVsoKmJatN/ktQMXd25GwheYAWDUdpuk0fz4DFDfMpEBqqVKnMl/vR7EIs9G\nGi7rpmRQWmiiX5gvv7FF4yOjnTYY9CMefVMHuZO7d7OipafSJvkWFSDzD+gl\n+O3sLtcgriERhE7FoMcB9rQC0ppFdA1cw6peQCpT+sqpxW7MKp4ksdr+AFPF\nlcVKT59QtWk41funs6gsUZWIx+7ZGrwmgxNpN2VgbPqx1gLfJW29D1k23JHY\nRLMmUz2fYF7AkPULsR4KMRdVxBxHudF7SLmZ3+0qLZrbJKltQZvkacKTd3Yu\nyz/UOMFaV3SYwUqOI6EAGSm+HnEjBL7liDkhN692oKWasrsuvnTIEBz9c4lO\nke/4XXOEoD1KfT9SSlNFb3FqVOq9MC18Q4Da+GnahreZGQ2j3CyvofcOTzKu\nmQ7P2lDwQNlx4F5RdJMGhuIh2y71MfAaqOMbArxjSiM7CDadRYRfhaRxd+Th\npNhU/0fUH9EzVn9YsnRRaegY54rjH255e5MzAXZIQs6xJMfcPT8Bze5BMJbo\n6+MAEWWqrChCNnJNhxZYibVV3OVouxgJN4OY+rttc7c4/KIvqgkjK1L9rB9U\narJa3PW6xu+x6IxIdcvQpOpKHRyBx4lyWbME8fqspWEJ5eah+dBrsACq8Rng\ny+3R\r\n=wubn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTHbgXm1fhYQIKobzz0yX+IiJIGl3V+j9833zuH0vlcAIgTrNBvn4L58gXjwwyuVUbUP+DqN+yO9/dCOLGMZta+U8="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_3.4.2_1568605692615_0.31560695921514537"},"_hasShrinkwrap":false},"3.4.3":{"name":"@rest-hooks/normalizr","version":"3.4.3","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","bugs":{"url":"https://github.com/ntucker/normalizr/issues"},"homepage":"https://github.com/ntucker/normalizr","repository":{"url":"git+https://github.com/ntucker/normalizr.git","type":"git"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","clean":"rimraf dist","flow":"flow","flow:ci":"flow check","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage && cat ./coverage/lcov.info | coveralls","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p flow:ci tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/core":"^7.0.0","@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-transform-runtime":"^7.6.0","@babel/preset-env":"^7.0.0","@babel/preset-flow":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.1","babel-jest":"^24.8.0","coveralls":"^3.0.3","eslint":"^5.16.0","eslint-config-prettier":"^5.0.0","eslint-plugin-jest":"^22.6.4","eslint-plugin-json":"^1.4.0","eslint-plugin-prettier":"^3.1.0","flow-bin":"^0.101.0","husky":"^2.3.0","immutable":"^3.8.1","jest":"^24.8.0","lint-staged":"^8.1.7","npm-run-all":"^4.1.5","prettier":"^1.12.1","rimraf":"^2.6.3","rollup":"^1.15.6","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-terser":"^5.0.0","typescript":"^3.4.5"},"dependencies":{"@babel/runtime":"^7.6.0"},"gitHead":"b65dcbe07c1acc21b9501cb170a2e229ed2866fe","_id":"@rest-hooks/normalizr@3.4.3","_nodeVersion":"11.15.0","_npmVersion":"6.10.1","dist":{"integrity":"sha512-YAskraBDO1Znbv9r8WIqkdykOrtxZTZCuG07OB3BMnMMowJRzbb7QB9N09Tf2j1MhCyRm9FzC0fvjglPobZpYA==","shasum":"bdfcdd78333cab92949d439c3ee5091d057ab4a4","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-3.4.3.tgz","fileCount":15,"unpackedSize":140485,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdgQhLCRA9TVsSAnZWagAAgWoQAIkmwtKJdyvDXw0Umaik\nu9e1EaQg3pl8jPeee3CWTKn34retEKSjOhxJbewTtbUdfAOTL7nvYYh54Xgt\noKC51tBXsXkjmg2+cSzQVC8HVLYIZ6skP/vyeWxCVwD5kaxBOETZkzuWftb0\navFxxqhLnIljOLOGTwHHF/s52kKoOWmq8M1SyIFnFzih3jwvVofvlNxjvwVH\nXTfQBdjFGmqteXZA7C8hSTpPym7L+aWGmAI8ywdT+IdNSnE5ngRDUVEweRJm\nSORVHxoLxRPX5Kn7ABl6Dv/hjX0GucSy3ylez3Pzvih0u2ywWGZwC5ZiiGXd\nhp1xQwXILIhPLvF6qshsOvPimR3KBs5b4AXZfSSY+6aN3ngIB2kTidd/2FUT\nJZQ3dQuOaBHttUOU0ehtJJt908NV0xIjPwx3yjwtwwk6msbmnz+25ha/LRvG\naJjDbYX8ATjEEKglwN0Er/KX0xJ7P/j70UBAeE+p3VnKxCvsClc37lFWJx3L\nm40bHLOsABO7ftrNwVBAu+kBaGj4/r5Vq8zJgSO+i0BhbhQGuJRchIphkx1j\nPaDZOPpV2PDiiBJFGcqSFK6stBTdJvCWrLtsu60AB9bhTYG5prr+aMCBeS4v\nJGL4yhkdF9nEjdg+Sr1RyrdBBUo4waNwQE+Kv6yBsn3ibEDb6gMESlLBWIAF\nM+7r\r\n=KZnr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICp9tqM7bE4TsUqO+1b39pWA5fsEjgENSxDxCbS/bi6aAiEAzisAevQIxNuAzIlgdMLldbKl4c6kHbl2Ca9p+eqFml4="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_3.4.3_1568737354809_0.09686259968927624"},"_hasShrinkwrap":false},"4.0.0-alpha.0":{"name":"@rest-hooks/normalizr","version":"4.0.0-alpha.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","bugs":{"url":"https://github.com/ntucker/normalizr/issues"},"homepage":"https://github.com/ntucker/normalizr","repository":{"url":"git+https://github.com/ntucker/normalizr.git","type":"git"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","clean":"rimraf dist","flow":"flow","flow:ci":"flow check","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage && cat ./coverage/lcov.info | coveralls","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p flow:ci tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/core":"^7.0.0","@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-transform-runtime":"^7.6.0","@babel/preset-env":"^7.0.0","@babel/preset-flow":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.1","babel-jest":"^24.8.0","coveralls":"^3.0.3","eslint":"^5.16.0","eslint-config-prettier":"^5.0.0","eslint-plugin-jest":"^22.6.4","eslint-plugin-json":"^1.4.0","eslint-plugin-prettier":"^3.1.0","flow-bin":"^0.101.0","husky":"^2.3.0","immutable":"^3.8.1","jest":"^24.8.0","lint-staged":"^8.1.7","npm-run-all":"^4.1.5","prettier":"^1.12.1","rimraf":"^2.6.3","rollup":"^1.15.6","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-terser":"^5.0.0","typescript":"^3.4.5"},"dependencies":{"@babel/runtime":"^7.6.0"},"readme":"# normalizr [![build status](https://img.shields.io/travis/ntucker/normalizr/master.svg?style=flat-square)](https://travis-ci.org/ntucker/normalizr) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![Greenkeeper badge](https://badges.greenkeeper.io/ntucker/normalizr.svg)](https://greenkeeper.io/)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","gitHead":"7b46c6169f744dd37b987ec8062e4f6752b87585","_id":"@rest-hooks/normalizr@4.0.0-alpha.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-F4epgThJ/wZDF2VRrffaFv1y4rq4furIs4PfSO9LRzLzCXMKD91pMiqXQLiAQr2K94Gw+x/rg1Hl3QeJxeibjw==","shasum":"3fbd0410523988dcb73c8be8722fe82f132101ef","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-4.0.0-alpha.0.tgz","fileCount":15,"unpackedSize":151186,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdqgP4CRA9TVsSAnZWagAAVTQP/jtr0gvUjHdIOHSEesv7\nf6YgNExqTipHaSjKWC+QuRQusG2rc+JLyo1zg1FRn+t0K7WxRIuLJGg2fjb0\nPcRGjsOPYJyzlsfg9mUwbUGHEA03FlcbVvHZiFLEhxIntXAxUaF2PNbY1HXo\nSu0oZbdD7t39G3SzyIuPwEum+YUtE46ZqUBD/FWbSX1NUyjLuVSt4oYCZZdS\nizCoRS2+uVKKiL9I3wOqpKJrJK2s/FWKn6GcJ8jCEQMzljIQeFwXxb/CgKfW\n1Jq7UOAsMAT7/QrHQekd+e4YO+i9dvX5qDL1TQoc0bz+8Yqja3hx5XVu0xux\nD/TCB0XNtNq1ci4qtQ3tnqTUFE4wGDktIq6MiYRo+g2MlQZU4JjFAgTbkisB\nzF4yB08j+jTF60cX6IneoqMzIXm8NWDAZcaM68fQaTiO+hJZKipdHGwyoEtB\nkCW4usCcimRxCS/ICO51w3x6gIO5nbgNwnq9OkG3Wvr5JhCphruY1iSUNq5z\nLbSU50g118YouAvItM9t8btxl1O6xUU/21LP+U96GSdOaZXDx3ln6gKcO59r\ncX/mrq7Vs+0Qz6y3TyHBgjTDZBzydyInCSkyKajjULxmK0muwoQLrEEBz5MN\nh+Ng+WuwRPV19zl2RdtdYb7REl3CWrQsIUQwvUt+NB+rjA2eWImsx5riF6xu\nhpqd\r\n=1My/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCYzmi/bKNDLn2wncFSes7F8Z/NDRWO/gfF2j2fkSCK9wIhAIfC6cmVmNXR8AaLmcGQuev19Q6SELVCYJ+ftFKNKk6L"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_4.0.0-alpha.0_1571423223499_0.4411594870780664"},"_hasShrinkwrap":false},"4.0.0-beta.0":{"name":"@rest-hooks/normalizr","version":"4.0.0-beta.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","bugs":{"url":"https://github.com/ntucker/normalizr/issues"},"homepage":"https://github.com/ntucker/normalizr","repository":{"url":"git+https://github.com/ntucker/normalizr.git","type":"git"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","clean":"rimraf dist","flow":"flow","flow:ci":"flow check","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage && cat ./coverage/lcov.info | coveralls","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p flow:ci tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/core":"^7.0.0","@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-transform-runtime":"^7.6.0","@babel/preset-env":"^7.0.0","@babel/preset-flow":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.1","babel-jest":"^24.8.0","coveralls":"^3.0.3","eslint":"^5.16.0","eslint-config-prettier":"^5.0.0","eslint-plugin-jest":"^22.6.4","eslint-plugin-json":"^1.4.0","eslint-plugin-prettier":"^3.1.0","flow-bin":"^0.101.0","husky":"^2.3.0","immutable":"^3.8.1","jest":"^24.8.0","lint-staged":"^8.1.7","npm-run-all":"^4.1.5","prettier":"^1.12.1","rimraf":"^2.6.3","rollup":"^1.15.6","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-terser":"^5.0.0","typescript":"^3.4.5"},"dependencies":{"@babel/runtime":"^7.6.0"},"readme":"# normalizr [![build status](https://img.shields.io/travis/ntucker/normalizr/master.svg?style=flat-square)](https://travis-ci.org/ntucker/normalizr) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![Greenkeeper badge](https://badges.greenkeeper.io/ntucker/normalizr.svg)](https://greenkeeper.io/)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","gitHead":"565833211c03642ad4b4118cb4e6cb219d078973","_id":"@rest-hooks/normalizr@4.0.0-beta.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-G9Q1GB1WOmYTpCajGTYQwsR/a0uYe6URjVGnfcEPK7CFG+qbvf2JRoZXLRnLiUp6UW0CPXRsJPAdSAeDhK4yTA==","shasum":"1b7b5addf256437e584193dd69ad56647fb0b2ad","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-4.0.0-beta.0.tgz","fileCount":15,"unpackedSize":151731,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdqmVECRA9TVsSAnZWagAAAz8QAIUrc9A978EKLF1Q6l7y\nZvwISqKa186Bkzya6orHL/bOuNBtx1Hi0ZgyJh6ZsAyjtGa4pnt1vNTm9G3Y\nwkVPPx8Z4Fhs3uZhVMDpMhCDW3J8/dVMtnFlc66MYE2zNeK7Kuoy2NunP+Qa\nYo2aMuaFFzsxPkhFI0KGtPYZfL2kqXJEfrH1JHE66p83+XTTKUR5UcVH7ZST\ny5h/HcNSdQCqyheqm8hDxRy4OasFpDP69KBMLZfIClNnU5Z1/BISSx+yr4Q+\ntIPtBYlTDeYy39OKuUB2kEfJCRbZbC+jI/w81G1NE8BT3vSyNckyDvp7Exns\nafig/otTPFAONxMnRRmiJSSSJ8jfElQNfwHHJg9amqwNf6un+EUkiRSjWSPh\nCIcjZ9jlH7ZvT3Do87Qum9TYYYtZ8a6TNA+gN+jdGd63NHIXX4NhIOf/dQhx\nA4VggqzuckWBCnYE9VAOig6LeTNsBqcnrbSO/6bMKMTUs3LIdxBLSPkg1fuv\n9Nt2HkThvedD+9V9g+fguByBFB7O3lGfCJJc+CBsE/51T0Obx+ZGpqMEQ17G\n1CZFSCYZQ7FItWJ329S/vwpf2f1eWECSgGycwLY+IVwrNJL9FNtVRgR2o4qT\nxL0p1V/unPu6gvPfZjHD+urEA2I+LFWYh52UcLEYc9hkxHiGKovzgP2t7/T9\n9CPy\r\n=aO6G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDMes60Gl5sks4ZaakX3Il9dT0RGQSfnksDjRQqogJlGwIgFI77RdlL1WCJNKs/x3B52xJO8W27jPg/mWXMZ1Fs6K0="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_4.0.0-beta.0_1571448131504_0.9300581670125025"},"_hasShrinkwrap":false},"4.0.0-beta.1":{"name":"@rest-hooks/normalizr","version":"4.0.0-beta.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","bugs":{"url":"https://github.com/ntucker/normalizr/issues"},"homepage":"https://github.com/ntucker/normalizr","repository":{"url":"git+https://github.com/ntucker/normalizr.git","type":"git"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","clean":"rimraf dist","flow":"flow","flow:ci":"flow check","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage && cat ./coverage/lcov.info | coveralls","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p flow:ci tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/core":"^7.0.0","@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-transform-runtime":"^7.6.0","@babel/preset-env":"^7.0.0","@babel/preset-flow":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.1","babel-jest":"^24.8.0","coveralls":"^3.0.3","eslint":"^5.16.0","eslint-config-prettier":"^5.0.0","eslint-plugin-jest":"^22.6.4","eslint-plugin-json":"^1.4.0","eslint-plugin-prettier":"^3.1.0","flow-bin":"^0.101.0","husky":"^2.3.0","immutable":"^3.8.1","jest":"^24.8.0","lint-staged":"^8.1.7","npm-run-all":"^4.1.5","prettier":"^1.12.1","rimraf":"^2.6.3","rollup":"^1.15.6","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-terser":"^5.0.0","typescript":"^3.4.5"},"dependencies":{"@babel/runtime":"^7.6.0"},"readme":"# normalizr [![build status](https://img.shields.io/travis/ntucker/normalizr/master.svg?style=flat-square)](https://travis-ci.org/ntucker/normalizr) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![Greenkeeper badge](https://badges.greenkeeper.io/ntucker/normalizr.svg)](https://greenkeeper.io/)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","gitHead":"4bfe1017e5ca1aa4be6dbd15fe87e3f013a7a622","_id":"@rest-hooks/normalizr@4.0.0-beta.1","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-tQoIUIRP9GegzW0iuyg1r4kOJyucfFfVMt0twNx/h7LxrT5WvUW5fhGuHrRHManOzbeAU3VHnTFjXpdk/KMsjw==","shasum":"5843cde4a321841cc0e862dc434e3ca9b6f8582e","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-4.0.0-beta.1.tgz","fileCount":15,"unpackedSize":154849,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdrmIiCRA9TVsSAnZWagAAKBYQAKMD9YSwZj8Xb9Tf4+2a\nIXgYar4qP4li01PcUyYqgQI1fceYaxsVlMzmjCDYpczVpm1yWX77OsZmp5yP\nxT2h+2Z7rWmrhVOjSGlOl1vp0sER8K8HMS2FGRCzgJpjt9zmYnQOWmkIkjJQ\ntLUdf4O6kiiKAKB6+mP5+RUxotjP8A4AtVpG3l2Adu6Wx1oelJyUY76k2vEz\n6S0LmSWMxDiyIgJAvuaAQRFwYzXFVAxgHFk5a46Yut+FU+8qlHcterH6G8ZZ\nPOL2rMjIR6WmqMG+AlUwkk6rRDGHyilHOSYD025AK2Mg/+/AweSZYjsKqilk\n3nr0hlWM+2UWCBo9ZsbIzkjQt7khDWRRwOy354PHvIfMRj7mHbCervFCJEfC\nbFqNcbTH2rCkmMY8ibmq46hyZ6r3ySAmrwe0izJyuJ4bZ3Vp80mGp7MU/34B\nyBhHMM4bY9xQQU3IaLAlL1qvTZeUYfOpAzk48CaE5SXBzsDyrkYvSXxQIzyA\nGk61OsCYg1YkAJ7y4ypuSdJfk8TrTzS4OxsUpNsSn4DornHiPv/F2vvfSI/i\nWjFc4sjT1ghy9fhBTOsU4JdGlv/4Flt0ymoQJMCATg6AWkLtSmJ5/17Pjjit\nQHAiV7XCHXXii3aE7hlt5y/HFGuxdX96BTFC1Q06krdrHx9tLBf7NTCt1nZD\nsHM9\r\n=HJC4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/GE9j90F9AEZZ2dWdQ7rvRAyjgu8PkMoIyopvEwchhgIgQIFE+C42QRPQUsfZvgBkFiLReAk3Qg3aNoJK1w4utUw="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_4.0.0-beta.1_1571709473661_0.611681700537404"},"_hasShrinkwrap":false},"4.0.0-beta.2":{"name":"@rest-hooks/normalizr","version":"4.0.0-beta.2","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","bugs":{"url":"https://github.com/ntucker/normalizr/issues"},"homepage":"https://github.com/ntucker/normalizr","repository":{"url":"git+https://github.com/ntucker/normalizr.git","type":"git"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","clean":"rimraf dist","flow":"flow","flow:ci":"flow check","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage && cat ./coverage/lcov.info | coveralls","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p flow:ci tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/core":"^7.0.0","@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-transform-runtime":"^7.6.0","@babel/preset-env":"^7.0.0","@babel/preset-flow":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.1","babel-jest":"^24.8.0","coveralls":"^3.0.3","eslint":"^5.16.0","eslint-config-prettier":"^5.0.0","eslint-plugin-jest":"^22.6.4","eslint-plugin-json":"^1.4.0","eslint-plugin-prettier":"^3.1.0","flow-bin":"^0.101.0","husky":"^2.3.0","immutable":"^3.8.1","jest":"^24.8.0","lint-staged":"^8.1.7","npm-run-all":"^4.1.5","prettier":"^1.12.1","rimraf":"^2.6.3","rollup":"^1.15.6","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-terser":"^5.0.0","typescript":"^3.4.5"},"dependencies":{"@babel/runtime":"^7.6.0"},"readme":"# normalizr [![build status](https://img.shields.io/travis/ntucker/normalizr/master.svg?style=flat-square)](https://travis-ci.org/ntucker/normalizr) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![Greenkeeper badge](https://badges.greenkeeper.io/ntucker/normalizr.svg)](https://greenkeeper.io/)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","gitHead":"85732fea8ed17908636ae33dfd4f7bb1023cbcf5","_id":"@rest-hooks/normalizr@4.0.0-beta.2","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-PGSnJhTUqM+aQ6GgBklAfbE+C6m8QFyoWHJiYtv7kJEFFuLyOhVLpWe1QO5uSQpiu4jveMea831B+IYYG45+7Q==","shasum":"5f8900c71f4425047a4df251cc1e0f2bd583a397","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-4.0.0-beta.2.tgz","fileCount":15,"unpackedSize":153389,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdro09CRA9TVsSAnZWagAAwHIP/0aUFhYHKkBoJZtBlfgo\nMhUOcYFFTPhfghv5Mcm3CQh+LzwPBG38kkD+4VLWLvpRJPpupFMv5Y/K+KFU\nsfZkAENqL8M5gwubFdv9UUwaLIZbNGSwJxg04vWGiVNz8LrUua+2m+/h+gky\nizirM3MUqsAwqEK5EQzLdE6R/F6gvQQCkjwaFJb91CVV3vrTOY1XqAJqV0xQ\nqXntP+aWphdOmCwi023BJn1H2oLNhL9783as28OURKjAwXMjbesHxzxlwIko\ned1qvQZ4Z1IGoALvRarQJceJQUIA7zxkL1/MsLx+6aM7gcjPhcmca1FGmGre\nXu5TEHbMbwYEKTBIjggLQou4jAFGeFPPU5jwL5hWijJntFxdZq/PzGOFsQ8T\nl9MC7+tLTg9IhV/rBfqNrgGS6Jsp+smwfAyGk6poCqA2sEY291CB0L69i/VS\nxK2DTLUCIt/9XQYXw4kBRnSt81BvHPFMqv0xqKwrKL7zMQJ9kqNzvWedDt2V\n6lv/fbn092BvLB5TbEt8o5wHMZ4zUSOFBh3o6LDWJRFiNisvNygfEHkhzmwP\n+bUVQBHe79gOg6nfGIuidle8zcFNhs0oIG+hAbHW08Z41LmrOMtg9r0PZK+v\n9hn5Z+MYj0Awpb03RujhZGcLZaEgfcSgAyYuHjRjfNfJaBCwHgH6MZZx033t\ng1tQ\r\n=yB0d\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDfBREdishVcQbhPxrbnEkmI49FRxnz4Z5JeCNHqXu88AiEAx7PjcFBIlX8gvB8WMuFP1CrRdm9RdaOfYicb9H8c5SM="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_4.0.0-beta.2_1571720509066_0.07135298766671494"},"_hasShrinkwrap":false},"4.0.0-beta.3":{"name":"@rest-hooks/normalizr","version":"4.0.0-beta.3","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","bugs":{"url":"https://github.com/ntucker/normalizr/issues"},"homepage":"https://github.com/ntucker/normalizr","repository":{"url":"git+https://github.com/ntucker/normalizr.git","type":"git"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","clean":"rimraf dist","flow":"flow","flow:ci":"flow check","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage && cat ./coverage/lcov.info | coveralls","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/core":"^7.0.0","@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-transform-runtime":"^7.6.0","@babel/preset-env":"^7.0.0","@babel/preset-flow":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.1","babel-jest":"^24.8.0","coveralls":"^3.0.3","eslint":"^5.16.0","eslint-config-prettier":"^5.0.0","eslint-plugin-jest":"^22.6.4","eslint-plugin-json":"^1.4.0","eslint-plugin-prettier":"^3.1.0","flow-bin":"^0.101.0","husky":"^2.3.0","immutable":"^3.8.1","jest":"^24.8.0","lint-staged":"^8.1.7","npm-run-all":"^4.1.5","prettier":"^1.12.1","rimraf":"^2.6.3","rollup":"^1.15.6","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-terser":"^5.0.0","typescript":"^3.6.4"},"dependencies":{"@babel/runtime":"^7.6.0"},"gitHead":"c583135fdfbbb28e7f06d14ff3f717c78ddadfb7","_id":"@rest-hooks/normalizr@4.0.0-beta.3","_nodeVersion":"11.15.0","_npmVersion":"6.10.1","dist":{"integrity":"sha512-a6WxFUplNIMxJQpmhbOzyNtDPr8g6r1SxNlT5BwkxnkPXBF0Y3n1oz9BXM3TzrOP5yenmxzzzqJfhz+sF8aoHQ==","shasum":"02dca2b95e13d5a7bd3ffbbf6d3eac691a87d4e1","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-4.0.0-beta.3.tgz","fileCount":15,"unpackedSize":161608,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdvcszCRA9TVsSAnZWagAAJgoP/RvqYbgkiyRkrlEeTMCL\nfQoioK48VbhrxJG6xLT4r7A5gjleTE8+C+lnkRE6KxoqeULwRJsUtei57m9f\nnMjAKeLj1aZM9zaliTiaBykg4k3aAbgoHmEQkcug24ZF1nmKl+Lkn4KfP6ME\n48BzDVQnkcl4lXbkf3wUzdhLAR5gbzg3NdUU7ND/gCGo4LJdyiwVwKmdlQEb\n+dA7M55hdi6OQESO7cxXpUt5Nkp840r5hg2gqDxFeG4dI9wP33TYyyrlVLb9\nDQbQZE81SVRw1MYsnT+B5iIyRBN8EYBn8yDWwbjt1iKAjGA2AbR3t/5NzqJ8\ngEG4vb1b8dPXzt9xsYh5raPrcTbjzuoWpADHUyDDpIbRZDXXldieH6BytKNc\nBteX/0l5vMO0s786P2TxGOlffjksh5yr2AIUxp/GFe9rNaP5OwzhhbuTIFwo\nKzn/XrhEPc23Yl8k8RZlvo1Z6QuICFbIoM0K+fQHg9W74XSNN33HQsel0ewJ\nuoN2c6Sd5cGpPIoBL+wK+TtYkXBj70A3yxGjmd1tP4Ibgx/S5DwdArOhM8Z0\niTABWrjF9NMDggJwxyXvTdtmXtfJ2n8KNBIAVgW1CGG73KGq3E1ndnY/Yfxc\nFUql5xJ8OHsqepdIcbeZ2wczho/q8pHvPxpkfuK1+ymjPx7Fv22BpoMtZh4b\nn1yM\r\n=J2s1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFiXaPJBNFZ+o2QBpdE9qKuZHFezuo3/ntuAl5tRv+uBAiBLML22WJN47HlUFpd/yVhvUevE5N5Acyny9InYzlnfOA=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_4.0.0-beta.3_1572719410560_0.580953379423345"},"_hasShrinkwrap":false},"4.0.0-beta.4":{"name":"@rest-hooks/normalizr","version":"4.0.0-beta.4","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","bugs":{"url":"https://github.com/ntucker/normalizr/issues"},"homepage":"https://github.com/ntucker/normalizr","repository":{"url":"git+https://github.com/ntucker/normalizr.git","type":"git"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","clean":"rimraf dist","flow":"flow","flow:ci":"flow check","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage && cat ./coverage/lcov.info | coveralls","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","browserslist":["> 1%","Firefox ESR","not dead","not ie<12","not OperaMini all"],"devDependencies":{"@anansi/babel-preset":"^0.18.3","@babel/core":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.1","babel-jest":"^24.8.0","coveralls":"^3.0.3","eslint":"^5.16.0","eslint-config-prettier":"^5.0.0","eslint-plugin-jest":"^22.6.4","eslint-plugin-json":"^1.4.0","eslint-plugin-prettier":"^3.1.0","flow-bin":"^0.101.0","husky":"^2.3.0","immutable":"^3.8.1","jest":"^24.8.0","lint-staged":"^8.1.7","npm-run-all":"^4.1.5","prettier":"^1.12.1","rimraf":"^2.6.3","rollup":"^1.15.6","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-terser":"^5.0.0","typescript":"^3.6.4"},"dependencies":{"@babel/runtime":"^7.6.0"},"gitHead":"0236b2af1f54deb485627ce6a141ba2e0727d2e0","_id":"@rest-hooks/normalizr@4.0.0-beta.4","_nodeVersion":"11.15.0","_npmVersion":"6.10.1","dist":{"integrity":"sha512-tWvXVsv5rD0cr/VSTW/nbkWk2ve/GQWV3lumG+pF691SQk+gJtRCBDLuKcZkVvUxP82+hFfM3tTX5/0/OQGz5g==","shasum":"8cc84daf85c93988763dfaa2e60035cbc31a4b81","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-4.0.0-beta.4.tgz","fileCount":15,"unpackedSize":124982,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwEaHCRA9TVsSAnZWagAAPzIP+QE+b3nxWS3AuvDBP1i6\n1zaf4q61thWJOL7Q61mOWKvV8gRANSDb7v11RwNgd4n/7AsP0PgIRQTfJg/h\nbV+PyXoKzjpojJR9MqclUfDpBLfjCAI65/BMF70VE4gjO1pdafC65F2oKt+H\nP5CbZDkUKIJR0XLEHbx6avDJOC4TIabkwhM2jwvlabOoUtI27sbCBKXSRw4r\nCwfXkHHNVC3KtZkfQG8f9fGPR72CReNDUWssxeAtsAmR0B2OrTqEZX6DRBbE\n6LuAXAR52Z2sh+1GDRzw+uEWgu7CCtFT3e5QlbtrsHowQmRXAIpL8gRBEvdV\nCSTjXEXsl05clonPmfii3ehEBpQ4eOMKP0sj/ku5UWtC6MSznzzcFW2pcNb5\n61aRkE5F5CsMtI5/+57j6Q7hdmyBJBriv+vWgTI1NDyyel4MsnezHT0frw+9\nOBRn3KPEbIPsYsxNFGUZas0WdoulsvOXd4nKyVHSepjIrrytlwM1k/4oIGku\nWL5/nH3fwNeaw0sC656PT15jL81h5Oq7PidhNV6m4hkdfyzGedJS4E8jkPmv\nyfZ+rEEy2uie9KGhsIaA2SinAKQMtbcdTkFqclvnYlv7MGuINcJZOVsf5lrx\nHS6pjH7CbolsLIM70P2BgQ08KGyuj/4V7OcRLTMiS75hAqOSX7eSLlG6qn4O\n4T/r\r\n=K6xU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFlVREHTDthPvUVy8EpHNFwFCVmtDJJ0kteGm1ki2NoDAiEAtdpZquBSTWi28R7MPoscNKywzMowDkPsuHOjavyz4O8="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_4.0.0-beta.4_1572882054896_0.4426724963865585"},"_hasShrinkwrap":false},"4.0.0":{"name":"@rest-hooks/normalizr","version":"4.0.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","bugs":{"url":"https://github.com/ntucker/normalizr/issues"},"homepage":"https://github.com/ntucker/normalizr","repository":{"url":"git+https://github.com/ntucker/normalizr.git","type":"git"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","clean":"rimraf dist","flow":"flow","flow:ci":"flow check","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage && cat ./coverage/lcov.info | coveralls","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","browserslist":["> 1%","Firefox ESR","not dead","not ie<12","not OperaMini all"],"devDependencies":{"@anansi/babel-preset":"^0.19.3","@babel/core":"^7.7.2","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.3","babel-jest":"^24.9.0","coveralls":"^3.0.3","eslint":"^5.16.0","eslint-config-prettier":"^5.0.0","eslint-plugin-jest":"^22.6.4","eslint-plugin-json":"^1.4.0","eslint-plugin-prettier":"^3.1.0","flow-bin":"^0.101.0","husky":"^2.3.0","immutable":"^3.8.1","jest":"^24.8.0","lint-staged":"^8.1.7","npm-run-all":"^4.1.5","prettier":"^1.19.1","rimraf":"^2.6.3","rollup":"^1.26.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^6.2.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-terser":"^5.1.2","typescript":"^3.7.2"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"d1be7a9e28d6eb7d04e8346e19ccf655cbada2d0","_id":"@rest-hooks/normalizr@4.0.0","_nodeVersion":"13.1.0","_npmVersion":"6.12.1","dist":{"integrity":"sha512-0nvJjk7ff21tctjJ44WTOZn1jTHCEz8EjssD5WNaKL61rgnIoV65mJxDBGB5K2sOyOjYXgs8sntbuoqK8XrC7A==","shasum":"5707d1291546c17db39ab94639b2dcc6a859d4d4","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-4.0.0.tgz","fileCount":15,"unpackedSize":120529,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxxvNCRA9TVsSAnZWagAA//YP/Rn+gH2ESTruTWZj6P8y\nfbVBdZ7PY6X9BNKfC6JAn+1v37Oc6Cci+m4OwV+WGL63xwHkBuGZSadox8zI\nT5ZwUUqwdMHUxPEt5rXPfA3O3VD5PS0s/NQFsEJIO/8PN87d62bFFJH8m71f\nb4w7usFJPoE0HaUQWAiNr3N68R6pnOVck98MpNCOJ/+m3PA4N0gkTtVRSGiT\ntoQmq8Nq4wErAispHfvtNHip1gmoYnIv9I8mxFBQXSzeTSLugQO8iS0Trzsk\nl1MlmVBkrLuU7sEOIGqBAjPbP7wUSvNdZoqYj9nTFrtnZFSpqTE9pB6YQbtF\nkTAF7+tK4MyKjDApSsQVq9KvhZJadz3bvrsJU0CmZKdHEvDHek1RI35SVb5i\nl9M0VHVVdVG3nN98i3Zd5emRTgU3LBMe0KtSCZu7O5P6uRvEpDGq0yZghSgj\nk4fBDfsHlk6+SiQ0oyfu16HJpjYhbTrzER8T+QLl3YHek8ZfFJsCBKUqFRMv\nSH3SQg2ZKIqroLVA8atAjvKjcU+YysVSf5ZY9p+PG1BLD6+k/pNEZpt3oXzq\n4x5SZ8DDjwZn6ip79/Cjzmt3hdzHY38VHBdU88QwwDItHHSl7wKzzmgedX6t\nnjXgTcRjtcE06NMzAztidXLMbX+kG6Qy+uhQN012HQeRWjHU0BhMC29eEdkt\ny2sa\r\n=dEgd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG33FZHK0dsPd1e2GJZnKh38Q86zqOMZk6mk871jI00OAiEAig1eOGVX5ZSmorVsen9uZiPv1sKVsukF6986xjdpGN0="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_4.0.0_1573329868887_0.6651568042251395"},"_hasShrinkwrap":false},"4.1.0":{"name":"@rest-hooks/normalizr","version":"4.1.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"src/index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","clean":"rimraf dist","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage && cat ./coverage/lcov.info | coveralls","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"coveralls":"^3.0.9","immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"7b86389ec9b44d8e2b8248c80616cd95fe6e90d8","_id":"@rest-hooks/normalizr@4.1.0","_nodeVersion":"12.14.0","_npmVersion":"lerna/3.19.0/node@v12.14.0+x64 (linux)","dist":{"integrity":"sha512-IxE1aedLyXETY9389eIUpSpFQPOGJOJi2wFyo82yIPK9NOoBtRj4dQ1PLDJkv2r0wEGoO7kjPORZEOrL3Sr4Bw==","shasum":"20be84bc429cb874e2eafe3427b29195b198ec7e","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-4.1.0.tgz","fileCount":15,"unpackedSize":145163,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeCsVhCRA9TVsSAnZWagAAfwEQAIpQnVCexd+kLf39tRy2\nSvPgPaDEfa6jkjgVi5UKbCZtkvvYIO7dA0hVVPPTGs55pirP8vwfE56kYJh7\nYZRwIqWVfPoK6dduzmzWLEca5OGuHAcKFxpByUEte081ss3uS3aFmm0nXURg\nERwp98XNSccFTmLkfMugDI77g6NxqTLIdC9OHOYhaG+HLsNhiJ82J0ETvEO0\nMKiCqRyONPIPfKAOzGYl5ovAdQpJocDJ3hMomB3Fd8OF7qCw0wdLbG8Y8TZH\nGkS2CnryGwxwXVMNOznZ6B4RsRyV4jfKCBT/bCCKscUy8/AsYDOy/BOAnWK7\nvvei42Z+DkbKycoOYag9pinsmx4P6toIW4Xc/UOXLeTRecSJELDVIMMxsmVu\n6x8+2grJA63hQqczNjYiZQs5x394VX/kuangfHxkzs5/xlKrecRqog67yX/d\nc4XbEXxKSGPKNL0HO/RqAUefM/F2xNn91eKG3qYKnDsNeVNgL35jN4cJ2diL\npfgu3AEJkejKLVEhK+Q7IDHpObM4Gwoi2yGZT/gcyY7Bq2oZDKNmGRLu81sO\nxM7rvOP3Z5BY58FRDRux/Qz9O53xZLkG4NpTjBhox1yUDG4/zzc9llw2FRBc\nuGPTenRz4z3UfC20MSdX+pTR+WFcKkAqK/F6PqhjTiTWpAFTIS73t6hlfVVt\nu8FR\r\n=2uBk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDJ/G1UanoxP5oC21vtlDMvP7N0xOuwedSeg98ze1oofAiEAlrd0v3p3fWa6Cbgj+flAJGjwArS9ulQhqNWSx7EfBaA="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_4.1.0_1577764193207_0.9130963214009986"},"_hasShrinkwrap":false},"4.1.1":{"name":"@rest-hooks/normalizr","version":"4.1.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"src/index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","clean":"rimraf dist","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage && cat ./coverage/lcov.info | coveralls","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"coveralls":"^3.0.9","immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"a2f1cfb07b755bb4bc1528a79e70363fca9bb237","_id":"@rest-hooks/normalizr@4.1.1","_nodeVersion":"12.14.0","_npmVersion":"lerna/3.20.2/node@v12.14.0+x64 (linux)","dist":{"integrity":"sha512-/5SkNUQZXnXguvZyE1lSYGsTtZlspbb61HydaWITmgModVfQXjATneyWyMeBoyUOA1BAh3+u3XnO5tkwy2O8GQ==","shasum":"10b83e4a4e0c1b51afc61532fcdb8633915458de","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-4.1.1.tgz","fileCount":15,"unpackedSize":145596,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeEiYRCRA9TVsSAnZWagAAPPUP/1ZZm5IMSFvgoX79Wvx+\nLRKHxeHJSQcxFCtgogojee6q4mYcxppdX9mv/Qo/S6XPH06xg/ASCgRm229i\nsPwB9os4H2HTI61gNclhs5wO9VzFdI6RCDxXYnhz10MlQi3duVE5Nrww21fT\n88Alvka74uL1Mi0BDV90oJMChs82HWavq55EkOmKFrfKp6v1Dqj3H7kph+n0\n3BpSRRNN553r8fMJANAf5cICI3agWZxRH2jqyT8lviIJmY5dsMpofSnSPxrC\nfUAsnWBtkifYvVmUc28thADq2hGQ+k7KXasAO9Xq78oJ8HwKGFKRIPVAXTyY\nU0d7FmUcy9XzlNmb6/lBLEJC3M/Pg32zzDgD5nUAxw31TlTO8dolvJ+8vaMP\nKgSlOg0e0EBOwUOtbpbU9h7tFLjDjDtTH8UPZ3r+CYFhu2TJXqi9+9yDyQ2E\nQYG4mtDVnCGbp9+Yjy/AVSTl8adGS+hKQRxW7ni8w+WuZd9CVpRD4NOLdjhB\n9+d6GSii0TIMmeTJCxE+hqFXbBgIlUH6dTVhdnx0r1KgN7qhEhTLbtZSdDz3\n8dMZJN3YIMgA03usnuQrA/70W1v+hoOV/0dwNkyDFrEK0lFhJro5NGLk80SW\nMP1/vkxYrR2JnncKzNCxd8oHk85IMoz7UEQhJlJJvvxKlVt5IAP4jJCxZMVm\n+cFg\r\n=Byi7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAjmFmpSbrW03HVeejjM9Umgs06bIj49mj5RmPIOQFKPAiBDjKNX3esJvH4d1ySVNV1ohVRKDyJHQMO947zNfuQv0Q=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_4.1.1_1578247696580_0.7809815094073211"},"_hasShrinkwrap":false},"4.2.0":{"name":"@rest-hooks/normalizr","version":"4.2.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"src/index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","clean":"rimraf dist","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage && cat ./coverage/lcov.info | coveralls","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"coveralls":"^3.0.9","immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"799829ebe78c8a5b9817d8a74eb3951f42469bb2","_id":"@rest-hooks/normalizr@4.2.0","_nodeVersion":"10.16.2","_npmVersion":"lerna/3.20.2/node@v10.16.2+x64 (darwin)","dist":{"integrity":"sha512-ad0+dCf+RK097vkiBDA2AJwy7EUNqcbdTVSrr4DcBEAkvCfXJXzwe5YbGfczMDGAZXnAqaQOJGA+3wqOB+3xOA==","shasum":"b9c06fa89e201c875e3e40cd505740d22820c372","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-4.2.0.tgz","fileCount":15,"unpackedSize":146660,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeE8jcCRA9TVsSAnZWagAAYMAP+wR8fkVV0puTwIh/c6p5\nG966Fy9tt5cTzCw0uc6XBBYj8qw63GKrQu0XIfdSDp8DHZDlUs35MINKMIb6\njv4li3du8Zj7xHObNu6E9kjtI9BJyTni2wUdBNdyX5re6DkCYBrC1o12R2WT\n99SOwovIuOManVi7/mHo0Z07Ozz4Z3fmw6DSs628tl82+GgQz/bn1nAOoTVS\nd055UsG9qVLdqIEjnKGtkkAKp0MJ4TqylHg1tGK9GCK4vNn9ptQTKdzTkU7y\nPCgbtay9hDAlUxpGSsCpZeTDxi9MfFNwgl8y+A7DKQmhr8N5NtsWZhwGvQxx\nSX9qqn0zHuW8g3xAX6qofqPJ+ojjjgCER4p+1wT3k4kGxBtCh4PIn+XrAXKD\nHd80QDozI/cjAQ29YswkR5UG+Rqm4J9vym1QXIFoscElx40IP+2fWpROR56q\nCdLUYCLndTO0tE7Ufrx1MNGW4MpEteVmQYwGDtKRu0ixhFz0BfwpTwswsd79\nJ8Wj+dnXXNY/RFvAT57/igYDGIdRToRkeuJSfigGsj+fJUTH8hZUo1WXKLbg\nT2t327oR/OZes/JLc3K6667NbHZpa1o+e4l14V/i1+Vl8U0fpiZ8kFoSFKfG\njVWhLFQbtUiAZRyg1wH7QPwf40Afcr24hKMejJ05eU2OaMBN+bloxwgyLiQF\nY127\r\n=+BC1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCBiBzwvL5Ip2qcCqrAMUrT+1F0E+8zfwOVxij71rd2nQIhAMZlnGbnLNKiQZaMS08tvUdOML+psEWnVorGP8he0UyG"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_4.2.0_1578354908149_0.13131457554152837"},"_hasShrinkwrap":false},"4.3.0":{"name":"@rest-hooks/normalizr","version":"4.3.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"src/index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","clean":"rimraf dist","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage && cat ./coverage/lcov.info | coveralls","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"coveralls":"^3.0.9","immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"169864670d5651dfd96e2c43acf725d400384ac6","_id":"@rest-hooks/normalizr@4.3.0","_nodeVersion":"10.16.2","_npmVersion":"lerna/3.20.2/node@v10.16.2+x64 (darwin)","dist":{"integrity":"sha512-A2VvG5p+xojYGzA/pHvE7102AhIi9Ewv34Cy4ECkRjXtrn5aFwV/+Vyai52rC5b7HOVJpHs++1Ktei0+yHy6TQ==","shasum":"5a5041fbb807fc13877e7b2f2ab3e736a8fb105b","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-4.3.0.tgz","fileCount":15,"unpackedSize":155094,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeIRGoCRA9TVsSAnZWagAApI0QAKF7VPB86ujbwoDI0K0F\nQsJI1vRz91d7pUZuUkUyjCBuoGYRQ1JGX7KnGNNTPsgd0wQMhOZUyIz5uVp5\nC1/1o4iF3IhFDShU9Thi4CgV0yzg+9a++JR2ZLDhQ/E0shuRVjJ1wQctCIHu\nRJH9Lsunf/jBBsqZHfTz6DzyEYdCga5I3krlgTpwu6z+sSIr9pcjX27R2NzM\nizJLQImcOwiXwka8Pj6y2SGRT3gQzYvoLp5yJUiJDgLY4jIIZ0d6/Kiwyh14\nMFKUHurem8wrUFGbi9nBJ/keSBoddhPCPj8i+9DpFPoNrrtOCRoQQnWRYU1r\n99AlvDfr0SBxmt4BBhW7jlKXzTYDqaSk/DQu7J5rdV6vTvUvmC4q1aNbePYH\n2s2RuzTkuMGWdp1elMNJzmQrittVLFvbvYg8h8LfV2mrBOSayDuSoFzu3Htj\nGk+K3Ymbf3+GhiO136f46+PLVcBFIhSCyEBm9vHov/opeAAkBMYzo4H2h6mx\nPSPoMJ0BHCp/3JZD7xXBcg7dM7rHrgozM7SZs84rilpUVRWICvzDllKcO5Lq\nXkL/HeMvC1stuRD8VISDZ5J/9Z3ZpVum1xN1xsMxx+N6nigV+bhOhX0VbOxy\n/n+HtFDAGQJiarh4e8bLlI+ZHrEFwabFQq8EHjliuc5C1pdtAuSXBKmZL4Ds\nJ5Di\r\n=P7mi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSDlnC+rqXwEIJSI+XYvfSa3jb4DFNBLk5YM360DQ+RwIgFNEpDXJH75C6XYPQChdpEB+4LXTTv33OqBcNEJ+Dkpg="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_4.3.0_1579225511702_0.8785255194265615"},"_hasShrinkwrap":false},"4.3.1":{"name":"@rest-hooks/normalizr","version":"4.3.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"src/index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","clean":"rimraf dist","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage && cat ./coverage/lcov.info | coveralls","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"coveralls":"^3.0.9","immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"4708cb389595455043a0d784d31baaae745e8265","_id":"@rest-hooks/normalizr@4.3.1","_nodeVersion":"12.14.0","_npmVersion":"lerna/3.20.2/node@v12.14.0+x64 (linux)","dist":{"integrity":"sha512-eYkjTgfNM1ln5iFokzwOjRfC2u4Xxw2IojGCGjejfwRUV7okWFbxJDSPbWDFJdzRf8iniSmg0j8GDpndiRpnLA==","shasum":"5785c8abf59f8e292f6e6380a0598c0c65e6820b","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-4.3.1.tgz","fileCount":15,"unpackedSize":155547,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeIleWCRA9TVsSAnZWagAAsq4P/0+Kn2nisPoH15kIfjbe\nOtBcLk+uLcSXAGwC1Mtz56m99T3KxU/R3kKbDuVyIxGxnL6RA+F70ezafzXg\nXIE0i3IQj8lO+myy1StlR1FIv9en9q5yDab9QHkFc/31rFxPexMTFw8lXvcu\nWRhsWF5jxGaxASaIHqHFzwFMm/xQIkkAojQ7APYQ/EapVtqfLDANhiASTuR8\nBZsHo15ZrfcLXjZ+SkEoV6v6rLQfXGxnHQmY986nZFvFE+xU5yXTfc6jwOFc\niFhRnlzSyImQ/UHkKKWfSR9i8JkZcZ/nXWtnqL+oMtUFY/KAaKw1D5eOJm5X\ncxft/W/gVTjLB8H8FiOxWu06h9xnTivfOxxElySvaFwdsj2o+OwQQabhLLAv\nBhL3OqI8D952/2E2xMcjy19+KqlSl+qNUpKsjKlb+7B4mdwGBExyZdXVq/iU\n1qcyUUIfRgnEglEH5FMniPKtm5Q8H+fo1PKHpOwgl03yJHm6qxz4MXTYxlUu\neiZpDrN42xms+0V239uWsckL7TwgFFSaUvtP5Zo0PrIgv8PE51iOuuSF5L7P\nhQAe5vANkTC3ihi9lQvWpuoOCLHkt5TFnKaqxXUYDZcLjBBgSRdUif5SbZoG\n6uyR/gujpmJAZZS5pIaOmYip7/CparbFFNzzvQ7n4DCoYQnyKh26Mx/v6rzN\nqORG\r\n=IKzb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDwctjTxgWELweJORrE/LbRcjtUVx+V6uwHFvw/zXs1YwIhAPrNHMLsaZXlLdbO+OQtGVaNZphxI6d06qQKoD4mpuLb"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_4.3.1_1579308949877_0.29998170544970915"},"_hasShrinkwrap":false},"4.3.2":{"name":"@rest-hooks/normalizr","version":"4.3.2","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"src/index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","clean":"rimraf dist","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage && cat ./coverage/lcov.info | coveralls","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"coveralls":"^3.0.9","immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"89ad47351c96ad574146d3961a6ad8c2d2cf7c7c","_id":"@rest-hooks/normalizr@4.3.2","_nodeVersion":"12.14.0","_npmVersion":"lerna/3.20.2/node@v12.14.0+x64 (linux)","dist":{"integrity":"sha512-5a+UYMO0dOjHDXmMWWMbmwUS0wtk4OE4vgdQIdKtLJwtIYeapM7xynH4Unp0HTTgbetgXyw43xlQjoXLr6rcIw==","shasum":"c5e192cef83a04e258abec79c8458907c49569c2","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-4.3.2.tgz","fileCount":15,"unpackedSize":157604,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeImRECRA9TVsSAnZWagAAvYUP/j0cdOQO6VdjBEL7QCGA\nesgCw8fB6YKILlGdwY+iG8YV1rZYwHmxLgNGXpTGRug+5oWMgXjxG1Yxlr89\nhfsUUkHSKBBep2558M2kSyUws8L63k5AasAu3l3j/niNYctV7IhW89GVLuzt\nntSkVD7G4MWkZWlIt+wSFUOOKaL24WSKJ8ndk/bwGxMwl2sgkVQP6iOv5u2Y\nK5Ff7+c/O3AyGQomsfMuOj9Ub4SLfi6uH936l0nvQuIaPLP4Peq4zmbhEYZb\nJowxVQKHpvSSHJcKVTNQh5KXYJp2AtFAgUsb58+3yd+gBhzosMoO/OXpAkFZ\n3crOIgFTe2wIF1/9vmFLlOJkoiaULfWM5kL2gH96k2K/SWb7iramGsmOjlV+\nNDR87yhXdrBQLb+HLk4l9JWyYNGEjRPg0xc3eHaCSoORMU3mIANQx8MF4Hc6\n5xA68Kvac73sUEp6dIfktokckN6CBCUCzkd75uqVKMxqhQriVejIFqdRshAp\ncL4Zn+E0NKCy4igBicseG0T6dVRGnjU3ifRFvLExCwbCYeu7H+/N6z24Cyvz\nnFUW6V0vwg7cTqYvd6PxkZb+o45ai8AQZPe/tzDP+P0CC7Bst6yxtDHpNxj1\nBXnyS7+qpxiMUPa8NiVqbY948mOrIXhOBF3nP8oEZkLiYgibqj21ifrwxVYR\nBjFx\r\n=hf5Q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4EK5lGiQWFUasiNwK1uFp50eVrlOjvkh3fSijrDX9lAIgdJjYang75ppHVsPTHMvu314SlDgVZ8eMvuHSZGKYR6I="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_4.3.2_1579312196040_0.8356824233303859"},"_hasShrinkwrap":false},"4.3.3":{"name":"@rest-hooks/normalizr","version":"4.3.3","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"src/index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","clean":"rimraf dist","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage && cat ./coverage/lcov.info | coveralls","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"coveralls":"^3.0.9","immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"75849f63bea3fe910e8f2202306e5ab42de913a8","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@4.3.3","_nodeVersion":"10.16.2","_npmVersion":"lerna/3.20.2/node@v10.16.2+x64 (darwin)","dist":{"integrity":"sha512-12I6IX8jkWpPxEOI6lU8KfhEQP3jjPK7XLdMJ+vyBK/iVucvkaxYQ4U1DzhXfStz+N44k3OquGPQkRxMS0fpiw==","shasum":"5dd98f9a168457863d49fd38592fe5a1eb35029f","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-4.3.3.tgz","fileCount":15,"unpackedSize":160416,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeLzg1CRA9TVsSAnZWagAAzzQP/RAxyCgR/RE9KVRRpRRD\n1xCdgxhXvL69km5Ja3/HxH971zOdRJXqo0XjjTZtREJJKCImw7+/NxkYH6HE\nUFcvqUV32mk/y5/0MNdFIDVb9oKBRxIgCC41A+5H/LgrIF50/g9sDC9BgcbC\nGw5BeMx4LOB3OYMsRYWtQBOsdMKoIPyx+pR/GmGAnhAroGIwC+8Xb/WVtnlS\npjImMEIO8XBlS58UW9DalrbmpXlWg4UntNq6yNX4SeNJh0ZsQvucpRqQxVtF\nOdxDC+zWkP25/INf9MzTukqWZTMRaTFd+e/3HAO1ca+Kf+LZIxfM7sK55cE0\nTzEN+1MW8WJcJCU0Zn+/leDijvte/WDkWLoz86N07wYqygIniaJWTHz2UeIX\nAhTj+jurZmesH9/ltbnVXH5aAhM+KgZeetKTOHyIIO3Grw/+jg79EEoY5G4c\n2epfezxz/QRb9hQpgh+m3ZbDxamE8tF77xt7FV+bllzzEcWBzwoCp1F/78j6\nd+YotWksUOCbNpcZkNqfcJF8z0xps9gWvNCC+kCESDnq3ramQa1qMgkSr0cj\ngvP0un3hH1BJzfe4j4HRaFg59t+fC3qqU18eove9gM3hT0AMVp55MSy/Wtga\nYA099VjfQPCvc2NZ63ZT2JAMOBYJsMHM2EVns16vuqRxSlHdKy1vNF5h7Wr4\nV6eO\r\n=WX0o\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFcxeTICFDZDI+xb4JncFel368k1NJRcp3eb3C6TVp2kAiA8HPM5qISoq/egRiZ80XZQpMLAXMSnLLQooqNjIcGjbw=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_4.3.3_1580152885373_0.4917187032226311"},"_hasShrinkwrap":false},"5.0.0":{"name":"@rest-hooks/normalizr","version":"5.0.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.min.js","typings":"src/index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","clean":"rimraf dist","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage && cat ./coverage/lcov.info | coveralls","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"coveralls":"^3.0.9","immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"3da6f649bd4f81f85be01742f02e13713abcbf5e","_id":"@rest-hooks/normalizr@5.0.0","_nodeVersion":"12.14.0","_npmVersion":"lerna/3.20.2/node@v12.14.0+x64 (linux)","dist":{"integrity":"sha512-y7pCYtfmsz23RMhbu/4a87uzz6jOPN32vU8tLZXLQVZwefDOh3dWIZomZOD+v+DBf7SK7cPBAEK202Owpvkg7Q==","shasum":"a12f5405a64e59e43b922eda272f350480bf12d1","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-5.0.0.tgz","fileCount":15,"unpackedSize":160106,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeMOpmCRA9TVsSAnZWagAASxMP/R51MgdeC0+gtcv4Fmo2\nGvb4DM7XHTjJ+RZwMGqeLs0wsKE9vfnPdJRw61zPtuOtXKuoX6wUBchPT9kE\nuywrzX9Xhbvxmt58Hi0kfvG3wqDVvoltr/bTZ6CBfRi6PM5+7avwlxNYcdvq\nYdVSXUxaCNdhztZG8PzPSk4NidfK+8ytRSJjZwHCWhbbZWGltw0sdxMApOnO\n2BB2eaY9uh9NpRDF8ZIALeJrp3Hy+qIzeGosktg6pb2rCR0cM0M/S2Rpi7bH\neWHGJuLmQtGODXDEp6pUNhXUF9iARsj5dATW6VXrOMPl9Umn2VkCNGNi5cGa\n5glLntQAU9zcqlf7t8Z7h3P0ISMN7SyXTEv40qOv0U0xeiuEgOQYYxnp3pOm\nX1wvnI7A5/8BUZFd5KY3ofq76izPyeSqsJTm2JcHq//tOywlgqzQteRQ4wfJ\n6WZ+mhXt2oNd/yipdkkvUbYB1+rxaFLArfs+USD3AjCs5m1PpQzX/L+lFrfb\nilmhmWsPL+TCLWkFtTdQDTMrVR5CgeLRJnl2kg+J76bmvwKQ0f7z+wzqXMSt\nNFHyMjKHmxG8kbovkMioIgpv7uGyGbd2X/ZTxpYxiJWayGPi0HJTjTihK7F5\nvz9AsCsD39z7FlAX4VPBuVlnVL0BRpGcKqTM5GfBmjva57Pxyp3j72RGPAiL\nI/E/\r\n=sxgw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHYosj3vmwGPqyMkjtGvc2bPBMRrOwr1OtD9QqLt7Dq6AiEA5X1cpTm+i+U7hpoP2YsvEUG/k+csBtblaOl+y7oqqDc="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_5.0.0_1580264037734_0.5485575165419001"},"_hasShrinkwrap":false},"5.0.1":{"name":"@rest-hooks/normalizr","version":"5.0.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"src/index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","build:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:es_production":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","clean":"rimraf dist","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage && cat ./coverage/lcov.info | coveralls","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"coveralls":"^3.0.9","immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"e09ce052c86d094bad18b57ba1baee60c556b9e6","_id":"@rest-hooks/normalizr@5.0.1","_nodeVersion":"12.14.0","_npmVersion":"lerna/3.20.2/node@v12.14.0+x64 (linux)","dist":{"integrity":"sha512-hbqLCCWetW6ecVaX07QdBhr7Ajwx+cUOwIqjiBSSzf6qPDLun8V14l6HaNdmJki9nnKTSZm48Ds8q1xIE8f8sw==","shasum":"14cdb9308a8ce1dec1302d9fcb09e1e56d0c741a","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-5.0.1.tgz","fileCount":15,"unpackedSize":155821,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeMQs2CRA9TVsSAnZWagAAobsP/3GJXJegGd1gJL7tG125\nS5hQke0ECZLbowtD7wmhaSWRjzwhEilafFYpi1QRCULJJS+VrGk9/6r3QJrb\nCwHFE5xfVcNx64ZztDdGq+/PQ5mh+1aSjNPxLv+HHcYxSqT+lFfus+0hKeJ9\nrJ24GS/KRcMYpWpRpYvuoqKaXmkGNldC++0dh1DVwt6jjs4dtA5ZtBb0UU4d\nDWkdXdy899oIzMcUVbjlw6L8jqhckPU+txEiGfX5Geltff3foq1i6GfzeMJf\nMYUFXjZQvYcdGSpWB65vVrXakJJ5S1YXQHPeH56t3zZ+/88EbuOihSoh/ywJ\nGPZyjnXFj20WgHclVhxP8U6NGIzkLBkbTdTsEyTmyXBA31/q6eEfdg1qtOGW\nO5NHjcmbP+/klwiuSrVrWO3c215Wrpvh017nh2OVIfJtJa/ZSAStgsCSQOgm\nsMTmhkv//KrAaWDLsuHnlFB2FRjyvS+7bcX16s67JtEI5KoE1GacRD20Gzp/\nqwz7kfr3XxE/pqx7/vew+3YLP0nAwgUsVhN+u/a2I3X3R5Bprz4rNIro732U\nWMYC7LKtAxqbMyIsAz+oCl0D/nwOcCP79c6b+9ThTTWrQdfQWZaWGArkas9a\nW2EM/pwh0JPO64ouj6M20QzS+5z0xUMVYj4H+bwH7rsEBWECCzArjzSLyQ+I\nyIOU\r\n=TpkY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICVRTTW7k1qUBnV2fBGM/I+syLlVxi+prUaSfIhmubwrAiAJHT+4np4eRMd8ZijsrAbR7dQAOpUUBSwT5xXGSf5XGQ=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_5.0.1_1580272437351_0.183281222074823"},"_hasShrinkwrap":false},"5.0.2-beta.0":{"name":"@rest-hooks/normalizr","version":"5.0.2-beta.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"src/index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","build:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:es_production":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","clean":"rimraf dist","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage && cat ./coverage/lcov.info | coveralls","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"coveralls":"^3.0.9","immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"6177cfa039978059dba791f4a5d7ef01d95bf2b3","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@5.0.2-beta.0","_nodeVersion":"12.14.0","_npmVersion":"lerna/3.20.2/node@v12.14.0+x64 (linux)","dist":{"integrity":"sha512-Vl/qAmZmea/6/PtkvWzUtnsuVlu4dG0G3XmsoipZqRlcdM6iz+AoFqr3Zk0SHgKW6RENsFgh3mKCoEsVOZO3Xw==","shasum":"8d38aa6575769db3897a39c046a3eb49cdc3e693","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-5.0.2-beta.0.tgz","fileCount":15,"unpackedSize":156041,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeOfYfCRA9TVsSAnZWagAA20EQAJUa3lO6kz0NGqzkNrgd\nZHvycHbojUBIZ+B1H/oY+VvgaciInGMc+ECOOX+zqjP7nUVMZMpWt1mN4dBn\n99CHxO9UU7HSsWpQpK3tQGLspmuoBgp/Qa+34k+871KlMTgxqfBhetr2jDfK\ngGVUIUW1TxbEN3tt5PkBsD4+/l8SeTJvTa+Ed23DLEiFMfNYJ12vtP34zOMv\nBb/J8gM1MQJ8y3JxB/r8zIn6rvtn3SMHYXKhd/jnwR+8Hm4AJJprUppHuwdd\np1UlvoBhYf21Z3+qY3zZ2R0bxzDEcFhHzU4y1qV+PtJleMbnp5Ebv+1K2RIX\nsI+dqfts+CTlozx9cODz1kSzjBgXqv77zmOE4TsQltaeF12Zz/XJlAP5ur3v\nRBb3bVpEalq9YXjcAB9+XuTeUpvrdUYk12n9S9fgo3pvHI+HnPzfRApYbX3u\nEC00etDBAxXxSabf+JppAHCpZPBR1kbxFW+9lFQUYu7k9iM8IMs3YPJiGebm\n6vlFeMo6WJhdWA0f+4phi1TJ89KQjWG9k+rwIRLHnvebCUmriOXMB/W+G+Oh\nzqRMa2jSOVMFiy8FwRzQGldNhwzQ6gmKt7ju1SHf71Tqm7ztBtO4nFNCV8R1\nixxa6oLxJQmHDLO8ryV8UQEb+o01g+a4NQrAx55cpeCve8n7DoiKpJJF5ryx\njaDx\r\n=Fw5J\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJ6WAOz4jNaJ81mFmL2Jiwog8CJ+XqGMPj783m7jFbjwIhAMyLGsRhFpZRzSupXZ6b+EmkVKOJosHbykdIJ8TS3IHj"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_5.0.2-beta.0_1580856862670_0.3087524149091643"},"_hasShrinkwrap":false},"5.0.2":{"name":"@rest-hooks/normalizr","version":"5.0.2","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"src/index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","build:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:es_production":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","clean":"rimraf dist","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage && cat ./coverage/lcov.info | coveralls","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"coveralls":"^3.0.9","immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"1055741443a6a3097bcba21d7b4a3280288c9484","_id":"@rest-hooks/normalizr@5.0.2","_nodeVersion":"12.14.0","_npmVersion":"lerna/3.20.2/node@v12.14.0+x64 (linux)","dist":{"integrity":"sha512-LNaOymSIAuNk9ANWd9eDETm9of1wR8+E3FI8FacQmYXECMxtSNg7MA2vJbUGxYn53xrOuMc1rRwJwPjNc1xIRA==","shasum":"5f09069b12f89de10d216ff5fef4e87271203633","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-5.0.2.tgz","fileCount":15,"unpackedSize":156240,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeQaCoCRA9TVsSAnZWagAA494P/1NAzp4+x375W3gaqez2\n6ty3CJB9Ho+F84noMQYUQ4khn6Siog8yRG/l6NyVi6brrOt2U/pNjzFjJlwX\nT/d1x/GJtMZu6Vsggc5v4xFGQskS+fxTYSUZm6elWAorHPee3LCgwvDmOj4C\noIXv1G3uCpHbnPvm5LzbkFVyimKkJwa/t7AwjwDVLtQU8vtTngGJts7R8ZGy\n0hZ8WllXgT027r5josiEVodZwQTp1CXvlR+pUjRsCfoV2sqDkll7mQSPv2KY\n/m0OoPWAV9kuywcLug2QoclD7gclTJlLBll3o3pPyY3llH33607qKLyZw8QO\n1lyyPH5mlF+l9Te+yYA3fjU70+/Ge+U3uX29hCDtF6u340WypeYJ8qKtHQqz\n2c97V7YcuZcQry1gNROepMeCaN1v+vSya7uQBcWGq8l/M9eUcToCEcztBfOh\n72Xb2rRJJ7k8VNwXU7y4uCYecfVu478JvZaKghamYHWvf9q0x672kgOAgLru\nFe2M02VMyPxNou2W2ifFdMz88wZv7yjRXpc7ZnDTNXJckAqQb8FFAZe7g1Op\n7ysCo5aGVL+zU1VOI+aF3DVmYOvwN4zHElwjrBU4YFpMoWwWCYrBJytzPnnl\nm6qNHlnIVPGU1ggD8m4VR3xx64mR4Jb+FiQn9ScrLrp2WzibzA0nsqTB7IKl\ne9YA\r\n=hlsv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFnKkGIl1CjNn2x09XcUF9s9qMQ8cQDC0RdpL9aNJ8PIAiBGNx2CM75juYaYrbM2h6hDUZqKRnLGG/POGbfLk4c9Zg=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_5.0.2_1581359272027_0.5943381694635186"},"_hasShrinkwrap":false},"5.0.3-beta.0":{"name":"@rest-hooks/normalizr","version":"5.0.3-beta.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"src/index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","build:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:es_production":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","clean":"rimraf dist","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"coveralls":"^3.0.9","immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"0f935e60ba56c323d329fae8f68cb03e63ad649b","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@5.0.3-beta.0","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-dihlWev3wQltP1r7pgSOXVTP8pKNO8N4HNITZ6JXbk6n16YWmCZ1J1vIgm4f6NS3AlTY5hu4HybFexJCoAGbdA==","shasum":"de8be578fd5915a0b15f292d2d0c7a7d0f7559d4","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-5.0.3-beta.0.tgz","fileCount":15,"unpackedSize":156561,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSzkkCRA9TVsSAnZWagAA52MQAJY28HmHtf/UIEKgip6J\nr6UIAnsH1EQ3Wy3XO1XJgYzPL0cKGfIPeHaC1vUL7gqZJkd0F7xZJVtXrmRX\nw0drtQBMomO9Oy3VNy0wxbnVDAq3ztbqvo/khChv/O2HUvqWsaHjXGWG+1P4\n0MJ88tp4eBo6scCVeW+OxaEZMGWqj7RN7yu/1emP2nMmSAMu/RbZMjSf6Q4r\n7xv200O47sE4DBOKbwtGY9hdJEOmibYFqZUoAKlW06nNI8g9pv5mldhWAuvi\nhqF3EplaNkuv/6vW0/dFWpjAxnih2qOLn8kY32Nnip7wbAILxTGA7tDgi4M6\nZFIyduolg8Ng+x3BVVH3g/reIOAkXEhbrZxKPbkblyt5hLB1TOXoXPjoklPR\n99yH9N32zEK/WShMBy3iYjO3qoLXaYcLCiyZIIzqg0UOEnmb+vcQ0pfFvxkF\n1BzscUCF6BEPJil0Rd4geSyElJcQQZxHhYWslLhMoIHeQhsrrY0I8NEXP+q1\nsylSCb2+c0muZqRGKGaveJUtC9FOWU9wckxbHQfYmCTSW7EMPOHdzAHTsxAP\njUZRyhr6m68GK2VVIoEgdSl+6UJ5Zuyzy2FKVXqaGQW5YlElUZoi1NU4Dtbt\n4n0sNJh1eM3I03KHvee/YKzszecRGLy8SjFSv9IpqWUuD45oUCFNc6GGEWi/\nWzBJ\r\n=GWin\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnWjcsM+srDGvzceGFX0hk1T8511OlppO3iPCk4xM36AIhAJ1mWfSwGLgQ5nYnlpsH11Di78KoMmlIv8RV4/Tnt9bS"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_5.0.3-beta.0_1581988131879_0.9124785304444754"},"_hasShrinkwrap":false},"5.0.3":{"name":"@rest-hooks/normalizr","version":"5.0.3","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"src/index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","build:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:es_production":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","clean":"rimraf dist","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"coveralls":"^3.0.9","immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"385974e8f9a0903b1351d5d8632010331a2548cd","_id":"@rest-hooks/normalizr@5.0.3","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-8nxon4y3nw66mw3zx0P8UUKbeoKzPNN70Tl4R6nX9JjrWJtCcwD/zKt20PB0h9ExhKLxtN3P1WQN4LWbO24cMA==","shasum":"b861c465ed5d1acc158307f16f11f545b5ab2a9d","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-5.0.3.tgz","fileCount":15,"unpackedSize":156760,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeS1MTCRA9TVsSAnZWagAAUQcP+gIOS94wYJOTpaBEPptJ\nAT2/o4Rzm+jsvUQKfBw9zVZtyBrVudICVqguYEs/tjQlXtl1sZ56HW374c4V\nJFNzYkr9Wmgupg11y7D1dxFp7k+lhDdycJc/9wU0jsEwR0zHmVfHXCvBs9V6\nrMgX9QLRm6/+6ZYbx3icGT+GZea0tmgQzbQrprrchCI3QSRy/FmtmpuqH63C\nCX1nLXjTcwRFjpgecoyFHSy5tHk1FOJ42oSF9JPEAbgqlKp9cdvc9/w+qtHj\nJBMde6bHLhKc5vmRPD13Tu1QJwpR5wW7QEAuP/YXQJjZ4fDFCcwbrtRJNWol\n8L3JdN+3DA6kScJlCqeACUJnk9dV1/pGFGZL06YYkl2eiZm0QuvUwD3saECY\nmtF+qaQ/erkvLJ0/u6yiMEkAQi4tMEFklscYnhJoNVhU5qETh+VUZHCiqfFr\naheJal7J33RAbqAqHhUzsP4u3hJCGQwR6Jo0jGK+T3GvXZ8G/nf+SvVgdali\nuqWABX5hJhP0MABb9UYZmhYH1ayz2r5MP5nX18d60rQG8BfFWaf8tLy6Zzl4\nu9UVVGFp7DWM9FKydPW1hOWFhcKzFI9iR/J9+KsCHtmS6ojmcIIKW+KuIFSR\nr+9XG1md1RzNhTPP1w4g0yMdcw5sDwob3OHKEuCjUFgYR4+fq1NftQwHpy9O\nWEdg\r\n=karD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDF1AtIdt3C4H0SE8GOIYRW7z39+1r3R0znjLcgaUMP8gIhAImMbZg5tEo9hZieXIpG2HhHZo0s4et/dPilp8rsAPz8"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_5.0.3_1581994771245_0.9167430377968275"},"_hasShrinkwrap":false},"5.0.4":{"name":"@rest-hooks/normalizr","version":"5.0.4","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"src/index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","build:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","clean":"rimraf dist","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"coveralls":"^3.0.9","immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"ba28e839c4636f5f8740e645eaba8bf079ef7b15","_id":"@rest-hooks/normalizr@5.0.4","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-ujeipc9jHH2JIG1AFpccV3D95OsmYXDCMBJMr5ro15sxwLpaKlzmKL95Uhu9d8C3u8U+6jO8LADwZ3qy2c4C0Q==","shasum":"11e83a68b393fc4dec7fb4ec1704a4cf4a302319","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-5.0.4.tgz","fileCount":15,"unpackedSize":157106,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeTXhECRA9TVsSAnZWagAAQ0YP/09YK0rZn2aMEB9mmtIN\nabx0DXwO5Pj0dFaoC9LXpNfMdtp5oItwqZm7OsfgKjWMGDiUMc2NVb8Gz0ee\nb5VCSt+YQNEPQ1cjR4d+Swk6lNWfuUveHWc9c7KM65RIslsX7Jr+4UkeEloW\n9NqopsLF6cvFaM8qJjShFsuWgrWK9Ch0lpsTSz7/CO0wACR5dppvif1LviOW\nbbY4uPBihD4XVdNnkFtPKSQHjc7F9zbP6kLMVhhge+fzmvKHtKT4tA/WKO9j\nyxhfabuPcgCF+whaNa4nhZO35IzoZ76TlxiwOu9ARLYSDitklOHlQcKDZHa/\nMl7HpTxCsHioDuXNkXIeG9JKWODrrILVeNoDXOJVPYjq6OIb+TkKZEOZJTru\nQjHxqWaGlLdHEgWGSBm/CTTvCpOjrcpEM9qpRZ61ayRCFBpVJdfvfDIct9DS\nrSLoHBzKI/FuLWco3OGJ2pyY7RJt/nkHnbyiiDKmlydMZK7MqQWxYVio5yi4\n7F7Yo7/W/ZNgMafV2XqJ3JaY0hqqp0NeLkVViYwCbqm/opx1FGuCwAbB+r7R\nrlkKC1lV+oKPGeFlGv41Rjw46pHkYaqZ09ehmwc8ObVO2Ixm1LCAJ+fXDTAN\nRV51dfrkGcmxJ42SXgAgJ5FWucSHnECVF25e+ala+6E0Kh5rZyoQkJkqPbEo\nttPG\r\n=uFpX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMuYtyKQvQOMlPX+BTshYjbE0pp3m64bk1SNhwez5XAgIgRRIftQfHizm3sjnuYmcEPfnw5EqMU6dJkR8JWUCHy0w="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_5.0.4_1582135363939_0.5832804036191139"},"_hasShrinkwrap":false},"5.0.5":{"name":"@rest-hooks/normalizr","version":"5.0.5","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"src/index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","build:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","clean":"rimraf dist","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"coveralls":"^3.0.9","immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"df8971741c68125fedd83c405ba3139d313aa892","_id":"@rest-hooks/normalizr@5.0.5","_nodeVersion":"10.16.2","_npmVersion":"lerna/3.20.2/node@v10.16.2+x64 (darwin)","dist":{"integrity":"sha512-Nr5dgXXsSRmEFS6Bdy4cJU989EIRza3dVhcC6TgAXWbLedkD7Zdl9k/zuOTvJBVynSlX2i817nV7WOwyqWIwwA==","shasum":"d7f288d13156eb804b93338eed8c63fe4c863b57","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-5.0.5.tgz","fileCount":15,"unpackedSize":157587,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVdgzCRA9TVsSAnZWagAADJgP/0Eowpmq3KQAfADUwRdS\n5Q7u3muJRdyG3ypsBnPIUgxpdo+ZdIpqSvuyBYh0H7I1THaotGst2HWcnVo6\n5wNFFIFDlxigB+FkAaiJWToxPMK7SPTRwu0x/XqsXqxIddOzuJq1vAIayB00\nY1EbEsHytX9fn08rn5RpXMbEotn3zOxXqe0egEJCRJgimzzybdJ1CulV6bNI\nkoMbw/eF0Q6o7yfkMmILJfCStU7lFsLyNieV7AnRd50MujIXw26JUCd9EU7h\ndvE97ew+rl1u8JYrFVFH6X23zmkDE62di1/XyUSNSbEDfi2/8S5zKX2o6Mxp\nQ13CwUyHRXLhiHAWKMm9DNeUZfCOoVMpqQCvTVD4mABoX+tTqK30lsaHafKh\nZYhTL51m1LxOR9gUNdMrEiHG5EVsixxPjvSbAY3zAqRk1o36z+LlzRNYq5V2\nTBzf34Ad69MXY2aQQ8BgcDwZlbzycmbUuWS2WQQ88uyj11vUJBTSGe/dT2iA\nE2+dFxhbdrX7vdJWjBuCDzTGQjzegetWykWQIUN2OMttrDtIkWHTaYBx2xM0\nNl5zGTpiJR+OKoATeTX3QoX0V3iSN6xjbPQWwTDL83HiG+m0DGSQuOf1AnNw\nlzOhMXeR9nNCJBJldtRp2idNkXPimTIRsUUue0QkjbWBUrolm+oBx8lKqIaG\nZPHL\r\n=kSBT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHw7tQtR1YRlmjijadGwuid5iBE0kcDjIJ2dtkpcZj2PAiEAvdrADawypOt1VLLKV4vkG5EClaI34iknfwDay/bVn44="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_5.0.5_1582684211145_0.09640712850456645"},"_hasShrinkwrap":false},"5.0.6":{"name":"@rest-hooks/normalizr","version":"5.0.6","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"src/index.d.ts","sideEffects":false,"scripts":{"build":"npm run clean && run-p build:*","build:development":"NODE_ENV=development rollup -c","build:production":"NODE_ENV=production rollup -c","build:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","clean":"rimraf dist","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","prebuild":"npm run clean","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"tsc --noEmit typescript-tests/*","typecheck":"run-p tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"coveralls":"^3.0.9","immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"e75e14696b2e8dca6c56992c5213b910435c659f","_id":"@rest-hooks/normalizr@5.0.6","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-eHKpzNPh6bTiyAshmnpXTUg0qMXDGthG61DpiPfRHpq5vl7mtX+t+EVQKi2VXnRZH+SefJF3q8KuAp1O6UcbMA==","shasum":"492b8934ee86291b664e927ba3e727db75090f51","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-5.0.6.tgz","fileCount":15,"unpackedSize":157847,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJea0tFCRA9TVsSAnZWagAA148P/2Ly61IQF0OkCs0cP4gn\nkN9quNvD+VH5kT+vtFExBqNHBz7u5/AiJAo3QmQAHUjTVhDat7b2L8cILeNB\negDu0hcF1DVwrnLk/nBQJbXYQ5JrUUkJBM5D99Sdx6nOyl0IaZfBWQehNk1A\nrXK8XUO5Pawwdaovc0ipr+edu+9e+iO/bAQtTkicOVKWMtEmSQX13GSSC+kt\nUBQV/7VZR342YY+pGUA4sPgdb4BvoyLNXlG3WgjERU+J0QGWw1+HDn3BJnDh\nJn4zypcBhC9L0dRD0Ad3gFFo3NYimZ3/GesLp9eq2rDJTqTm8e57camHAD8b\napXsPscyZgZxDaeKHk7XjlU+a5d6KQa2hHRtvt19ssUQsj1m4UHQrpC3t+2i\ny54o0qKXymW6ls5bPcMOpVmsGDu5xbXXqM3gwE0ZUQEm8WWiNnw1kugPLdXa\nEo/B3O6TfbNB7jn153QxxvP16460LWn4coEMjVGAvbwKBjW5iq15M6wsBedG\necsQ+TvRdYo5aIEPjMfYCKp3J0bvLHngYphYVrYGWscHs1fNoqaWC4LGxEfv\nXSZGYNFUoGX+oM4grq77wnAav1g4E6pt5fybK70ailWmOhEWPx5DQngEtfmt\nVrfwg282gOla2DDogJsIzouDnqE71lN/mhwqwFv+JHKujgbL0Yqauqc2r/aM\nB5GT\r\n=nazS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDULpYlL2Fj7E8WnQqQfRJEO7vJr+aieC7V969W0vK6IAiEA0e4x712FHgICxz/Cgawfmihr3Anlyz2hggkFQNIJSsA="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_5.0.6_1584089924942_0.30489800947904544"},"_hasShrinkwrap":false},"6.0.0-beta.0":{"name":"@rest-hooks/normalizr","version":"6.0.0-beta.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"dist/index.d.ts","sideEffects":false,"scripts":{"build":"run-p build:js:*","build:js:development":"NODE_ENV=development rollup -c","build:js:production":"NODE_ENV=production rollup -c","build:js:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:js:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","build:clean":"rimraf dist *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"67b7eceef1582d8323e0e1ece15da09248b1afc6","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.0-beta.0","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-jZYt+8cyRDckYkxSsEni806/78jj2R5Ejo4OJuX3QXPkINV+TblAUduXoeKE8eAoJsG6QIrYQ9pRXzk/nldb3Q==","shasum":"5b19545dd473c77dccaf70d849596a895aa10573","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-beta.0.tgz","fileCount":31,"unpackedSize":166505,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJepOLUCRA9TVsSAnZWagAA1a4P/AylvUe9jFrp35s10v5k\n+6lOCPisRgHM7UpwnFLy/pKP1+T0JPnwL27f+yFA/kxBGNdMqDY3WzP3aofm\nM+cKB185kG+msI42U8ua1PW8/26hnLWGJroPBJzWltXpuyRLyMuuSdSRioUM\nPBk6r51Y5DnD1RjnzQnn6lxBxbzCKOzMHrhbAQqsrYCWeYv60z8Zr6qj2Ct1\n7KT6UOVYSRvKlck4rLA5qJycaexDI6nNxMUs83JpvkBfH+kSgVlz96PHLGXB\nOq31v5hY572T8H5HWOTCz/86mOnyG6vy+Wd+im8gjh3Wsb7Q8hTZUVizKX0D\n39gENYrcBlIJdmBkiFOk9cS3ZaiHjZtsJw/Q0VixOP4QyRNQM+gY+H5XFtYS\n1Bt4iejZuaf7wAY9/yDDxqjr4qk/irHxKhPuRXt6zgdiG+AFNypibT6HczY2\nheMstKreYzBqLYaVLc0/kMzNBmjHIpruOQaXfRvPhKT+JmlgD2mI1/kVWD+b\n1mDrMzC9KtQfzulUhmxlHx+RwQnFu24AQlhQav0lSLkiXQEdYT4Q+xavyzhR\nOnsm3jnWDm24GWqaITpEJESI9qVMpebOkTgbLl5GKf5lTPsnFBANouzH6Dow\n6r/YWQFvET9SzDDyqNoxpfOeDhkh9LYlw8KcTVVM6mAai/oV4wwQySpnAMl+\nGbxn\r\n=AoZ4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSOwLX0PW9rsVK7SLNRniuV6nd4ebeUTURaszKryS4NgIgBHw1a5Pt+jWcXUGIc7g0MtDmSIfirES70ngmw1lId+w="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_6.0.0-beta.0_1587864275936_0.276072999967814"},"_hasShrinkwrap":false},"6.0.0-beta.1":{"name":"@rest-hooks/normalizr","version":"6.0.0-beta.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"dist/index.d.ts","sideEffects":false,"scripts":{"build":"run-p build:js:*","build:js:development":"NODE_ENV=development rollup -c","build:js:production":"NODE_ENV=production rollup -c","build:js:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:js:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","build:clean":"rimraf dist *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"b4281279a22304f794ecc4c579d99bb7642b49e9","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.0-beta.1","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-rq1vlKyOya8d4d9dpPRQRNX0HgowZ9rWg2lZ+JlihCGeFZzN03zDGmsgjuKojKnAU+o2hDdApoikTgxi4doiaw==","shasum":"53881940ae12cf2b71ca376a7c5d8fd8009faa40","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-beta.1.tgz","fileCount":31,"unpackedSize":170153,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesFBuCRA9TVsSAnZWagAACSUP/jMxK/kT25H+mf8y8rk1\nBw6cx+JO9B9ombO3Wx4rOJDcOmNJoKjqSW2RwIb9FN4Aqyhv3alkC3XrzW7u\nHfXguTVMzzHowLVuAFA8n5un8JlVTt/IccLxBwhaySUadJuAtC7cDczFAmeA\nPfqISs9wYSlDlriq9LvN+E+omuj1sE3Dhxf/bGPQMV4xBUGGa+dZnHg5Um+R\nR1hov1o8NVdcqYdGQZGV/74ulRTaurc26Spb0NGSzLcUUgMAlv5u3fovPazB\nr2hFbMfKL6eIYhjoKn9zg5YnHnGwRbSd3axqjBQm2/9pVzCytC4/ANo3i3Qz\ndzjylly3Lkdfn8W67lILzp4Cp/M6FYnE49FA8K9+iHsTYgTpC5UgtQDb7EZg\nhKLUrltUpN3VAmtAvG7FTBFPFHXJRjED4o1nNPRHGL4PnlMZJOJw/BqZ0Exh\n7+fpC5ZVtdxtDgriqKTVHBVoEY8HAmxLKFQBNdJOv4t3FHzgbnn3d+9KkUBi\ngEVuLVZbRkteQ6cPenQ94c8Lm2U4lgU0lBzNS+WsaPZUNj+j7ADjXq7jgfTT\ngQU2Pk8vHbeWVCuqAN2w8PCbEt2SubqX/uJnL5R+awsaflKobguqE8LffFzU\n3D05d+3WIzAb/3+NF8dwch8K+N1W2FRtFuRSnavQE4g/L0DW6vwGhwLzQSE9\nHGgH\r\n=ELTR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCEDmbl8J2fpGYACb6au4Fr2c5UfcWJM9ZFJmMcDolDwIgJAF8HorIDM1+b6g99iagjdw87VjBjHXGBo/InK5ABNo="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_6.0.0-beta.1_1588613230232_0.1011757057810383"},"_hasShrinkwrap":false},"6.0.0-beta.2":{"name":"@rest-hooks/normalizr","version":"6.0.0-beta.2","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"dist/index.d.ts","sideEffects":false,"scripts":{"build":"run-p build:js:*","build:js:development":"NODE_ENV=development rollup -c","build:js:production":"NODE_ENV=production rollup -c","build:js:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:js:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","build:clean":"rimraf dist *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"_id":"@rest-hooks/normalizr@6.0.0-beta.2","_nodeVersion":"12.16.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-GoVqg53EZdghi8HUEEV3oSiGtzUrVBNB/643yafX8IjJ2s8Wy4dnpP60bIyTvYFwGJMWp83Drw02xa0xm9yHhA==","shasum":"8a77a3d6dbc8ced1e8e647d0904f2a3bfd78a2b6","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-beta.2.tgz","fileCount":31,"unpackedSize":179274,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJetcOZCRA9TVsSAnZWagAA4VoQAJ61an5avPQhfRhDD8Bq\nE92JD9CYZO09RAFZY/GwOF7Ok3zYvZvjDCuqNCglCD6mytXQLKHHeaDj/smD\nFktKhn7o2y1vzNX9/CMx2O0muCBgGa2tQqB6mmhapE5Pf8deSBqyJVztZwXi\nBSWe8O4DKi8AAxnuEF/zRvMLA+3dZ7bk3kQ5ePhV7h0YrTrmCSUNR5g/vhQz\nKagbR8jFoYMnYf1UZYgr5H6+qB+XRL0ywh2zBpggU6+c82JU2DCdKekU0xZj\n4PXXugMNY4LnnebVmyUOJWGaV6vK3QnUVrg3TBOVZczK+TPGQz8CTPQGn5Hj\nLvLYCT++eshZFKeERy6Ldwfl+XDro784eskgOHJfVIVm69SKAjkTEuA4B6+V\n+JQiYki8eW4d4GT2sEKPek6ZBaU34vKCHBlCcBmwv80edgr/QBOgSOIU+07t\ntqlRv76jFPzhQeDOMlpWTS+DlqZaT2qafo0mpQwE6vugnAXU6mp7OkP7Km21\nkM5WqsQA744BdDJ83JomOcj5kT5NrdQscrr9q/9S5C0ejTlO+b9WIg3MASXt\ngRXBYD2dXEGfad5IlID/dXj9XJDRbGWtf7j9lFyIOCIXWJ7Wbvu+h6I3vVWk\n1OAjSoAIg7r0Q3ZdJvQztYUXs7Yqx7ItAnCMsfFXJuvF2nWLNu2Hjwyr7913\nqclA\r\n=NfPb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCayZvVpoR1QmCGxJSlqSCJN9iWz0qDN7CGnTHdFUlt/AIgWMFjDbcs0UuSHOJAQLssOVpm2c1KnoZCPkOAu+foOZw="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_6.0.0-beta.2_1588970393280_0.0852626362801927"},"_hasShrinkwrap":false},"6.0.0-beta.3":{"name":"@rest-hooks/normalizr","version":"6.0.0-beta.3","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"dist/index.d.ts","sideEffects":false,"scripts":{"build":"run-p build:js:*","build:js:development":"NODE_ENV=development rollup -c","build:js:production":"NODE_ENV=production rollup -c","build:js:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:js:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","build:clean":"rimraf dist *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"b18f9c526b7ecb130579e5a113b31d931a1de99e","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.0-beta.3","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-AvHQ7U56nxn0xQ24Q0+kPx1iX75ny42yG3RBOFC+HsQC7Vzmyl8IMMoEgsb8PK2T/oakKKb/ml+4XqiPcAjDXA==","shasum":"8aa294c799cefdd29d1c313d1c6a09f4be6ce558","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-beta.3.tgz","fileCount":31,"unpackedSize":182179,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuyYwCRA9TVsSAnZWagAAs2EP/0/lbtQAbE1EdmzZiSbc\ndPP88LNEc9KTJbuKy2AtCrvuPhUp5SMnwspIQoLFRhB7foHY6wG71p+/kwbg\n6c57r1uvNmx3pk3nRyzCWJaP37iQ0bZUL5QFjMQqtd4uPYfkgAT+75cDZPjE\ns1FVQOg5dQP+vbFglnkOEL/LcUlOKkidJ90/9aLguGYG/Z6l1B8rI0DYYJAy\nbl8jFaxdx2jbTObrBNNVAnWau+CTJmdPD+Ev8MYWiqm3bYU8oyavgXEr8fYg\ny9831pM7BeOtTkZ+L7t4XOVMyfgb+BvXzFojj0oKbvaBBuA6HzZlQ+gk74Ps\nEzCFTMnJ3TkTf5ryD8FOGknrO8Tn16YkAHuKQPYdiHVMtJ3tSElP7bn8LeBc\nh38qnRFSPhaKqZU3vZx/08j6ohKZSjcBA+/UJS8lCjHU7pAe+zb8onBUQNrZ\n9EiaXJdlxKOmjaIDmTZRs0yh/tbum1nQSKQ4fu+b2pEL2fI7mOoMPbKoed/d\n7dvhi1HyPGifHjVx1ZNu5zgCPif0BTRWUN0xUR/ixp/gIkkdpimvB0+Mfq8C\nBV6j3B/yicn1ay1sU5L/7yyv8Yx3MmVbZf3qdYKg/rRbDSSCmH4eyygsJYHM\nN8JNMHo1kRzmNBbZLl3CdlpmV5drXKod7yiVFcRu78nFz3axEM0eFAeQcLlK\n2WwK\r\n=gnRz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFr9kcdLnmjePMZDhlAMf7KLoOwyG+QxP4XyBdcUcUadAiEAi3dA2NBGEhZoHHOlxUoUBa3i/XwaTRMzfa0xCVbW2Ds="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_6.0.0-beta.3_1589323312212_0.8632997088684615"},"_hasShrinkwrap":false},"6.0.0-beta.4":{"name":"@rest-hooks/normalizr","version":"6.0.0-beta.4","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"dist/index.d.ts","sideEffects":false,"scripts":{"build":"run-p build:js:*","build:js:development":"NODE_ENV=development rollup -c","build:js:production":"NODE_ENV=production rollup -c","build:js:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:js:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","build:clean":"rimraf dist *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"67ced603250ef2615be0ea985089b39f82e51707","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.0-beta.4","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-un8/KehlUyWtODHGR9F2g4bL7bm29Katk73p/gZcsYXtxLK0aU6YUPMVPpUWMa+VBUXqzYrqjH0X+IfxsPLVKg==","shasum":"835a5ae8feefdcc68cbbd17c79b5cd4c450c4985","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-beta.4.tgz","fileCount":31,"unpackedSize":186652,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeu0zqCRA9TVsSAnZWagAAP2AP/jupendeVL2cntZl2Z0G\n/jMYIasGz+wtVU8GUA0vwl43k8nB7YnB4lsDk0g6aHWxqzJ3tloV37XDPvum\nkMylH8ymE7VcARjQuikSVeRDWoFwx/epqJejS55uoOOYJqlSAazuP2Ztr+ZS\nNiy+6IEtm5qxL+iwgUeKziSzvUy/tlxpNETuQ5U2Dv74FYXGRoVusxS4VgHn\nne/QU83VYJBi+NuvKiYz3uUZLMtcQvEfVmGUTuw8duEM0+uqtENZkaCSTfBh\naeeA9QotO4RjP6Vpk8fbHC95mD0Awo90psEd5YMMvLbjythXIqlXr8S104iy\nsLlK+BrUHr1BxwrUf07Azkzmcpl7lIfGexnlqwlNs1ChDpiAznfZbgB9y4j+\nXGAI2yJYTnwHvUupj7sZA4SVjr32YRDzj42DT+AtnmVDWA4nSfSZnp88B5dj\nBJ8L3R1qJMbTjjYwt//RTtJ6oqVaLJyyC/gETccBI49iVKiClMJRJpERFTTM\nkbBqbTcl+5SNaLULLN4EtC/X4EuDVIintGUoPLQwlQQZXVbWb/SjgLgeNOX/\nVh1aexPRToCzLpWYzORDxVTtIZEua6Ji7YVzRnlBtfUQvZHk2hxYGtqF/z//\nBkenbMQPJXCET39PTMy0OFnDCghPkEn1Og/XcaAWcUMIbQcisgKF6UeCoQ5D\nmG7Z\r\n=z9BX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGI34uz21Iryjnxt6qyve7IGqzQ5pOO5Br1mbB+97szOAiEA1iykdWPhvIG4BOFNvqCY53YOCutS9tBuIm9KdauDV3A="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_6.0.0-beta.4_1589333225711_0.6752323898850587"},"_hasShrinkwrap":false},"6.0.0-beta.5":{"name":"@rest-hooks/normalizr","version":"6.0.0-beta.5","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"dist/index.d.ts","sideEffects":false,"scripts":{"build":"run-p build:js:*","build:js:development":"NODE_ENV=development rollup -c","build:js:production":"NODE_ENV=production rollup -c","build:js:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:js:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","build:clean":"rimraf dist *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"3dfb110ce5a37dd836d1b1d0fab6a0299a780a0e","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.0-beta.5","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-/LPS/AJqRncXnsCwxZnT8pOp94YwEGTlefUQRdPU3nNeWqFAYvKJb5DGAovMIG7Goh9jgYWLdXMeRnSDt0Uhpw==","shasum":"bb1119cecf6550cfe63af822c7c172e4669ca928","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-beta.5.tgz","fileCount":31,"unpackedSize":187324,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevD6ACRA9TVsSAnZWagAA16gP+weOuIGHAVuO66+Xpofp\nvhNJKtn0r6hgzroDbJ+3X46Vf1224ApuhGRK7ZA7iRSywWRdyA2aVvFqVFY/\nZBh/N6IHYzhtVwNrrM2ozqJ4H4Jz5jCmnu4Io/J9QJCjR+vV9zazobn7Mh2V\nd+R24/HOrSHmr2IQnDftx1dwYJxy0kwNqXWNKHrSZvCZf8AEIEcKbD5tQYnP\nVKg8vkR45/ZZ8t7dUX8XjoOhEmUY5S3B/7KJfW6tD+tygEx9ayaRtJu+ihLI\n4zcmaALq7STT67X/5bdIpSFDtKI9G0KSrQ6/1EKFCQ9+csYA7MQpql5RwkPo\nDvprhAhnT+wpWCK88eq7i6Cxh4Q8Rzwpdv+JctNwyglY498gnrCNtp4D0Od5\nJcQ85lADpuwc/sEwJxlRFALsGxiF3cj83USFIArPxNpixmM2p/akF1DIwRVZ\njqnOjTk7RWJ8a8L6RIsOyM30GX6cekTSHtp2JhfWN1OR/PVt3Hp4JYIHBHBO\nuvb8kC+yU2Iiak2kXxjpE4B9HhUHB5eQzEYq52V9CBgCNPb87XB4sk07gLxk\nWsjHmDljp7hhMmR/UwBAEha/+zW1zL722CxlKD43V5ZlxxXxnRHJSmxSKGes\nOp4acteJpY0HxISsa9/hnObERndwGL4Ophb9NT8roBArFNfDEeEdHPVA6dhB\n2e+T\r\n=3EZu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHveTkohSdFhdsGf1Ju9Vq52WDrokTBQCp0uCwo06mbkAiAgIE7kPqG+U48vrSedCkpwSa6Cc0j2dUNT7ljo+nKG2g=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_6.0.0-beta.5_1589395071535_0.5914296061953599"},"_hasShrinkwrap":false},"6.0.0-beta.6":{"name":"@rest-hooks/normalizr","version":"6.0.0-beta.6","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"dist/index.d.ts","sideEffects":false,"scripts":{"build":"run-p build:js:*","build:js:development":"NODE_ENV=development rollup -c","build:js:production":"NODE_ENV=production rollup -c","build:js:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:js:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","build:clean":"rimraf dist *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"081abed3b41210c2f81e74cbaaeda943cf086e1f","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.0-beta.6","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-VJTEzfDJ2OvleyUenSRcxMrT3720pwPh/guTJn1DgFtielLzN54wkWYVz3MJ6cgSYbsLbjEgEv963V6EaQYq9g==","shasum":"7c5bfc3d885d46525b9c904ff48e02659a2ff675","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-beta.6.tgz","fileCount":31,"unpackedSize":188330,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevLFzCRA9TVsSAnZWagAAtk4P/i82qHLn/KpghFaffxQ6\n1F91n/yGCtux+sS75hBymz5Nf3lmkOvtpzjOdDPhtpVBpNW0pTZWa+YpFjpp\n3c6z1RWU7Xj6BkAtMFylz/0ZbRErxlesMQxQQqsdYBMpp8EFjqgBEegGiX7M\n5T8gl+jAFSXmyzpG5A9+lPLsIlXz3QiRo7IT/KKdOuW51wJ4JxdV2IdFtwle\nxsDCqIoDd3rxYEBHOtDNA4XpblshcmqMFp7uqeHyqWLb4YzOjNEhFxeeLsmS\nvOWfLKm6tm6VQ+nUofkuWmRlrPAHk0asLael81lse4FL7E0zrlnvMsKaM2oK\nYMPkySyPuaCD3RE7loW9t7TWJ7W1DQJK9fP8ay0YrdUmavyVMiezV8ZneN+S\nV6PaA1B4Bp/nLardv67cDyfUS0wAmexMM/x85uWThTUbjB65Ra+3mM4+hf6o\nZCwe4M3rM43l1ND9HaSsLYtrfcZFj22MVpUmu/+c0rCvXvDlJovGaaXtiMD6\nMdROKn7cZf6BupogN4JVXNIji9X0KgOn4YNUcQFjFULT2Cf4ZPWweP96YTIn\n89V+xLQie9crGzODbwez9eVwI0cy+hNJdd6MMSz88U2kIzD+bf88WaTH+xHP\nWx8q+XH/erJkI7mTv4dC7ubwZ5xrrwDk8s0mYZpH2xCauGd52rAd50ezWNTC\nd35+\r\n=lxxQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDra70A0qXCTDeZrtZ5tSi9QbX7bUNKe+z4GVYJZida7wIhALBam7e+MvaMbU7/3VjduwczBAE7h0ZaYYm7oG82NVFI"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_6.0.0-beta.6_1589424499230_0.06499677745434762"},"_hasShrinkwrap":false},"6.0.0-beta.7":{"name":"@rest-hooks/normalizr","version":"6.0.0-beta.7","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"dist/index.d.ts","sideEffects":false,"scripts":{"build":"run-p build:js:*","build:js:development":"NODE_ENV=development rollup -c","build:js:production":"NODE_ENV=production rollup -c","build:js:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:js:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","build:clean":"rimraf dist *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"d0cc5c3dd34a3092583ea9dbb8f8fbbe9c939ad2","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.0-beta.7","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-GRZSx/rDglvnBG9rOcG0bbbn0JxL4MvmM8OWNhuol+MlQnjuUl2NOGYd4gH0TfOp8NyA8GcBbHu6naADkpQ/cw==","shasum":"2ab6544d37328889266ad4388cc474e129e45be4","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-beta.7.tgz","fileCount":31,"unpackedSize":197857,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexBZoCRA9TVsSAnZWagAAUHYP/Aq7CV9CC+8YDsaLahqo\nCe4nMo0FBUjWbfbeQhLbq4qM03ZDHTIIYAcuq3umEXVJJtLUhLvoEZNtvkJz\nACz78BldB1K2T4pIaulEhMuWozCr5tjUPb5FuA26proghtaq21xEbVl2ELj9\nIApcwHrIaNUkfWsAB0EeMTpWknCtWAFueV8EdlyYhdTZLSEyBjn0wJrMUtrH\nFECkCZV5qiwW5GNLHcH4ms+0AqgbsNeZ+shDfvZxZuhkUro+zpjma6EOLVNV\n5R2pL4F4tUiLl9JxX/IPs4/LV248dIx/m3uDfd+RSD+Mdfh4s7YCLIjoCyeL\n2JxIqEveky/6qyfRRqpNlocOrbH6Rzs4da9LZCdJDDARPVMnV8fR9rmJhu9q\nDwYInFODsNeIGOlt472DJ1YpnkVJw4E7nUXK/NnIa9aLp2Sq0WGZmCbX33DT\ntqnGUqFNI+hUdDPMD/XVQ/1hJ/ytmorgqbNjEoA+guTsY8X+idhvHuQkJC2B\n2033SELVfqkAUpA1hQg+j3hMd7Hz3Gk4KfZToYhK/bZSKaA1dUnqXUECZ4QX\n5i6lyQ3Y6n0YQkW3WsZUIItKaGmdR8ETF88sgbm5oO/48WUuKkESTmxD8PLi\n1elwjdZ5wLlIhutmLg9roTuY04zT6pYzlvPfNgBbEj8ADDY8a9KM6caXYV5J\n0jfS\r\n=smX9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIErohdt9QEiiOtA/dppRCPY949aihIHGUnnwYWKRTlCAAiAoGtEPm71uDSk3Aqy/vHtwlq3IKaoqv/VgMdJBYfbPng=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_6.0.0-beta.7_1589909096340_0.517822669727529"},"_hasShrinkwrap":false},"6.0.0-beta.8":{"name":"@rest-hooks/normalizr","version":"6.0.0-beta.8","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"dist/index.d.ts","sideEffects":false,"scripts":{"build":"run-p build:js:*","build:js:development":"NODE_ENV=development rollup -c","build:js:production":"NODE_ENV=production rollup -c","build:js:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:js:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","build:clean":"rimraf dist *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"5a155052d4208ac82c54084d7cd7cb3d967bce1c","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.0-beta.8","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-KiiJX/oKQcvVwYWNjC0JVCrWzvDhVorv7ylyfBlQTIPoSwPnUAGIh/8mxD/hQfdxdAuUtkq2ldGRLJXlp6NYWQ==","shasum":"d50982962e6c0f7d59028a129f1be015ca65fb28","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-beta.8.tgz","fileCount":31,"unpackedSize":198172,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexC+QCRA9TVsSAnZWagAASOQP/R4hExsdEuqV+gp1L2yi\nrRdz8QbxEa93kP8LlOg2HWgHl13WDwztTqfbM9cUYLaa1UOCdh48xXhbdnKO\n2Yzo5Fpuxhf/EzWjXO7xwngLNep7KN1Edjq4DBywOlNLSHg9ANdiLQz7YFNx\n5gArC5FdHs8epFcJHcc4xVesVnrveJ9wsprDMYbUwHq7rIzUr5kVahRYIV9i\nTQQi7+P3AFeI8o/hmay8j8E4roNS3s4tI0d832gHMLhpFpkpJ7s2Zuylf1/X\nLVR7S5Hu9tb9aO4ONFy+pCJeaTkturgkv7XI5rdhMvsCqhnfkUom8VUVAzJB\n0hAlvDqwv1zxvr3hTXH5eTFQkYSBgQ6IMa5puwL1l/LA2Nh+1OfB+a1GJgAC\nyKUnS4z9KGV1vzGFriCWXa1Lz+3QcO8qEaMWdT5irwrGk17X/WV+/gzy1Ypb\ngb8711N9FnzVg7T1CPHwIlNEFtO5wZ1kWd+OdaHIzx7UmAqI0m+/LArAJczL\nC1RJCIdVpyHJEHo5rmKH+l16oPGAJ3J1df4RM2g4akBNF5Avskcs9itjoG7v\nuvNEQOgFEYM6UQ6CUpG85si61eQ591L5ak2TY55Ujz/lb1fcwaLcSQfDnFlv\n7puRDgeYC26H9Z39uhU1jPOGdLluFiJhF1CFu/vSFQHzL76vxy9vgmjKOzR9\nbRQu\r\n=CS7e\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUfRqu0GpGmr5+zgLaMckYp1HnxtMVnYpcbBtHnrjjiwIgR3wQ1pRnzI4It9w1VB3mA64+oLqtfrTupwDzOS/lkks="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_6.0.0-beta.8_1589915535857_0.31370621106582797"},"_hasShrinkwrap":false},"6.0.0-beta.9":{"name":"@rest-hooks/normalizr","version":"6.0.0-beta.9","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"dist/index.d.ts","sideEffects":false,"scripts":{"build":"run-p build:js:*","build:js:development":"NODE_ENV=development rollup -c","build:js:production":"NODE_ENV=production rollup -c","build:js:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:js:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","build:clean":"rimraf dist *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"78eb3293bbb8123fa8d6f0b910272e3894a452f7","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.0-beta.9","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-w4V5B6wsic3MrX6qM7+qj2ResVmLo7DMVgLP3jpENdw26lvM3w4lN+nM/YQjCN4KYuWgfsWw+p5WdhW3yXGeqA==","shasum":"bb4dd38dba1a1d3ee5e67b7d9a32812be5c0e8a0","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-beta.9.tgz","fileCount":31,"unpackedSize":198629,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexFtpCRA9TVsSAnZWagAAC+AQAJLvJzjmU8VwCWo94cZs\nJWgcBfaJwkXnk4+wKjwGpubN6VGI9E0N116dZaYhSF5CGnPApd/OpAA43agl\nCG9jUX6Ezs0FvEQ72Oui3ijds2LTvdXQElcg4NJN4a9QwyuaouFXhlZZGqcD\nbEbi6EJ+URErim5vmgpjlmZycvXWw2fttloC76rBY89CezxauXOjrEZczvsW\n2sVCJAE5t+mRzPjCDdQbU8hxOu0dr5Xont/Uh/MeO0QgmDbr1PX8cdUWYilP\nlUDHBGainxL3t8NsRb9TrMzRKDoQhJ4nVRHb0lFjC31cmtkXky3+bB70nplW\ndVVVoD3E5cLj7xGINnwZcI3s0HZu8oNSrE2946DhoCGEwE+wxzo42vhIssUU\nYdeOIkcZMHFKPA8wOhdZX4IxfnhCsaOen5GcvdhzgBj5V+HvJW1bFB3BiJTm\n5lE7mmM/5epyOovbH2Wr1YPYCthIcsykzjk5x6oeewehMvo/KPuHNiwMrKMz\nC84whRi53e2YQuNPy3gPDruTch6m7iU8flyiY7H8vIT4vdRcjNc02vA+bP2f\n3T77MkUQ9GoMJTRbLFBgxKBirYYjTmVNjSHjFPM1YxLGpIU7RyKnXAkHTigC\nX72MRA/OVv6jvyrnw7Yhk61c6mwlf8FWUyuKUJ7Yg2QZ3nWCL/oBfpb3Xklj\neCtd\r\n=onnz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID21Iil5AV7YreD6JlZevQKNzu0HdyMmwBC2ABHptMCyAiAzHHT5YrC0WK9zRpInh7Si0rOIYdu2KW5tz+jq1vwTdA=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_6.0.0-beta.9_1589926760753_0.3150079936911583"},"_hasShrinkwrap":false},"6.0.0-beta.10":{"name":"@rest-hooks/normalizr","version":"6.0.0-beta.10","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"dist/index.d.ts","sideEffects":false,"scripts":{"build":"run-p build:js:*","build:js:development":"NODE_ENV=development rollup -c","build:js:production":"NODE_ENV=production rollup -c","build:js:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:js:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","build:clean":"rimraf dist *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"4bcd3a24cf20d69a9cb2705e74133490b07ff567","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.0-beta.10","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-bX0qz+TFEWA6ztAuW67YK345MFARItwEvE1ELgzz/Nj9w+Y6zYCGiLUPkZS0paPAHZRkBqeVf63IWtF2h3ptOQ==","shasum":"bda19312912bd49ca10a8c1eb1c5a14c8c38c383","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-beta.10.tgz","fileCount":31,"unpackedSize":199738,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexaJACRA9TVsSAnZWagAARasP/AicBIZEIoH54I7+5S3+\n+yLL31wWlvrvTUH3wWpDug6XCpGZdMsz6MlRKDs8C2MKz19RdihdQvzKjUP3\nKKZ7kSfSzHOztEtYQ3xVJejb5mHVGAdFYZDBQzREgOXEOrSfC5y9fc9GkT8h\n/7MSwLmNq1yEzqSXQeSi6u4OKRz7lSFBO5WLPlyWhi4xpi6r6jNB7sUgRP+2\nvaUJ34HG8mPHJDq5SzB+9N57tU51PHCd0v+IM0eAHtWVL3zkzOrWOueUyDpV\naEbAfNaXM7AKtrTeWFS846PZ3hSPLbIOkqukKI5q+VbSLYuNqcupu/5IgxCJ\nfNgMsCbjscpzQMfOaWSIRdr2uvijrMc0HPh6SAuIEMTfqe7iJ/B4mrCkV2uo\nz3xrdLZBHPaM/U3OdgN0cqwRQkM6EkAZizb902alLNDzn/pL746HyBNnTXWg\nRyR4RMFNEOez11r8iTHQp2QTJ9t5v/ecUeHoExPXJ9wFmABcsUoRLn0WQyH+\nATHZL1/NNI0qD87MTEnOJFx63Zea+e7G5ZCPTJnOjD1X/KRyKmwVKiwW4U6/\nvE4xmIgI8d7Pl7JDSzJaZggPj0OFcXi6U8NRKE9GYTm83WzGyPSAI2c15tWO\nDNg4pDIguT71DN4MXk4bsj/mXkv9F5TqScXnokScgbO1FQZt2tNlXCqAWUGA\nqxK8\r\n=/sx/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDBxnuJchvjtmcMQnW3czysD2tEqLOsDRjDKlFyxNjK9gIgA2llW/w/qKtCcKlD5TjxgW2ngSe4ZuLr3OHkzmZNpto="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_6.0.0-beta.10_1590010431714_0.4480245094323576"},"_hasShrinkwrap":false},"6.0.0-beta.111":{"name":"@rest-hooks/normalizr","version":"6.0.0-beta.111","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com:coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"dist/index.d.ts","sideEffects":false,"scripts":{"build":"run-p build:js:*","build:js:development":"NODE_ENV=development rollup -c","build:js:production":"NODE_ENV=production rollup -c","build:js:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:js:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","build:clean":"rimraf dist *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"readmeFilename":"README.md","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","licenseText":"The MIT License (MIT)\n\nCopyright (c) 2016 Dan Abramov, Paul Armstrong, Nathaniel Tucker\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@rest-hooks/normalizr@6.0.0-beta.111","dist":{"shasum":"ee228fb56b2c97025e59a6d42073b16229177ecf","integrity":"sha512-PnLNJVtFx+BMfImDWqknEQKbuccte+7f6MGrUEfvhZSg76WghwkQ0yGJYu/3f639uV74WyxxeiaEfhYXfBlK5A==","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-beta.111.tgz","fileCount":34,"unpackedSize":209012,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe3CfDCRA9TVsSAnZWagAAZawP/R2I2kf93/6oDaeG0Q2J\nZR7Az4vtrvNT7PZbv/JS0fwH86X+eIWurFpEKf4dyIKX7QMTwohMLgbAAsyS\neVWNIJGm8sXf6+vA6EwmxOr76GARUlmWrdg9Bg3zdziQItlcL6vzuJZn830D\ndjJE9QO8aazSymJhjLuvmMU+5DIUHc9uiJ9dGUvB0pft85q2i3wRYJuM/+/J\n1cn1xbx1FyzT0Nb7A9A3PMlFowBx0xEeqWuq8TnxZp+ALWUjrkzEY59zJxm8\nnLBOzBRUvTXrXgasiCNJYDEgxNArK7AO7ccd4hPwp0T7cIQVvdW2TZgVT9QO\nnC6eENN4zcDe3OhDEVVmhl+6pNh7Oyr52vNgqjtj3fmDL8QPRmemiuOYulxM\n6ej0h39f8JLcrfNfsTWctN3NA/msZ7CezH77ov/eeJ0ctrrvrMK90Hxpezug\nBEojwZGdtIeA8gMU8WZfx6KyIXkfy1+YAiWIGv5yZTJp5dzF8cocVBKqShL9\nyy6o62XR6E66kVKXEGyAXfwK09PpDy63caLTykOieN8+qzKlcvHRig9DE1Fb\nnlSRA0+dSiSmC29edO+jfVnXJTeGj1+aaaxA7+zXHabT3P7ueIO/91WyZqn9\nZR7JLSIGE1LeQwJ+TP26hTHzvjvM0L9Z7CWd2kpYPkMwYe2md/Dran08Ge9L\nWKKd\r\n=n1Ln\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMcpPhumMhIIozX7+zh5Lp6BO+crdzIuBMY5A4CrTwOQIgN8B4caQjgfnftEiYVf3f6cPElxvOT0tKktb5zu9MzMc="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_6.0.0-beta.111_1591486403044_0.5292761587831292"},"_hasShrinkwrap":false},"6.0.0-beta.12":{"name":"@rest-hooks/normalizr","version":"6.0.0-beta.12","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"dist/index.d.ts","sideEffects":false,"scripts":{"build":"run-p build:js:*","build:js:development":"NODE_ENV=development rollup -c","build:js:production":"NODE_ENV=production rollup -c","build:js:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:js:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","build:clean":"rimraf dist *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"719ddbe9638d7bf0e8fd3d1da113202ac6aaa059","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.0-beta.12","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-32G15ikQBOa6R7fhihuT21k52JMya619LjUiX/SCso+halTPcPn5TgINq0Yz8fI7Q+MIbeWJ5tB3hCo+aJT6YA==","shasum":"3c6e73958128f409253646837985223446bb3cff","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-beta.12.tgz","fileCount":31,"unpackedSize":212928,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe5TNWCRA9TVsSAnZWagAA7GkQAKK3aVKJBrcByF2KYeuK\nos/fN3o1BZsctfLeDzjz6C3iAR5wWHjNXfwo4Gobi7cI3Hnx+I5rsB2i/Qo6\nDXv05T2rgJnLhkw6xBcoDCzQ5QYJTM9WRu/FAMcVzkfMxyAa1CSz71ZGpXIp\nuxLhh+rE4a+vxccP9LstqEchIiNWtRmFF9epjDs2KCmnjDrCtsJEQaik9kwE\nPsMG1joczu5XxdIHr4DzXQk4ioDiGiDLcDo0iBkZqptwJG1gRqvhiSSbQun9\nJg2bvsODY2oNUic0ERIzeVTc3xQBPMGGDfrUvz1SQGyQOwHkFcr2SqKyur8f\nLowGsDTPo66uVCJRgp4RNyThxAhleENrsKQ2Z5JK6XoDYFXl9jrjeXn5eaTD\nWvQ4xR+p9KbfbwW3aDJgnKF47U60Rf9o8z9fZABl2DnboEKp26WYG6s4XR9j\n58lfKD6SA8AWOMEsanpZ29SJl6ZgenGR4cEKTgCaKg8coKz54yUie9TXvEP8\nprgmkWZjSzdHT1Yn6Xj2ltyTesF90awP9Q06+y91JaKHvaTpvEt9cu/vNbVS\n/zRh3pQvnNKvUa+lxzEL0SD8lp+XKOMtxmq8cao8AHDk1AiKJcm13QoUpfuX\n8exOMO44zs6w6L0qwkGKzF+UwlScXfZ0ygFrJ/ZnktVtwM+aX/DBPUihQ6uN\nc3sk\r\n=gjcp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjX8zjUzhw8svDi3fE7BgaujextQoQ41PP0vroLB2UsQIhAPzYSJp6ofXUaGLEyfcmc0UKj9mjf7gWTaq8XSyy/7E2"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_6.0.0-beta.12_1592079189960_0.9743431343282614"},"_hasShrinkwrap":false},"6.0.0-gamma.2":{"name":"@rest-hooks/normalizr","version":"6.0.0-gamma.2","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"dist/index.d.ts","sideEffects":false,"scripts":{"build":"run-p build:js:*","build:js:development":"NODE_ENV=development rollup -c","build:js:production":"NODE_ENV=production rollup -c","build:js:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:js:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","build:clean":"rimraf dist *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"a113dc269751e02516659d2b187e41496aad3a42","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.0-gamma.2","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-xHDnFb9moObGep6WT4sXEawu/AwIKBJuM7C7ZtC5B0ZuFU7VtrRU9/+y88A8pGEe052IyfhcNtmZgDR7OTSeaw==","shasum":"0050b22083317adc297f73b34d2ce74bbf8c438a","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-gamma.2.tgz","fileCount":31,"unpackedSize":213165,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe5VYGCRA9TVsSAnZWagAAV0EP/j2N8l17csigTi1zAz+2\n+ELFMqI/q9MVVkHKmo5ENG0UG6JTzjOZpiuXZdFse6qL0n2KLDjRRhjNh2qM\nGubj7gHEkiDcfDimx+fk6pwhdDVX+8tKd+ny+dic7LeDLue5wRIW3K1lfRnv\nPb3LzAr1NHlJfJpzJA021xjeR2aqjrlCR7fidfzF2GQA5ISHLt+oh2M2leRJ\n19PqoRWn7sHXT38LTUmuw9qx3JWYIrlqt0GXEeuwSQDGHNHdcFFsQ66+iFbJ\nVJdRQAHQwbFRvXT63uFRjO8+Sdq0cCKH6zHTjmonDxTKdVFDu9DPMQmWvwC6\nepPe6Q49q4W0ZkhYPD6b/ESwKb/BTzt/Il1sgeOOxoxMY98kIjNwU/GaCFgV\nDHNHS/fQaaVHwPCwleptWcwmRwkSHoqd7mLMzJ9wYlKWazevX+ZArv0SR4gH\nRWoF2Tnop77ILUpydsAlUGzASfTgEIt6pi9aWuVjLlGMNhPtX31c2SgXI7/T\nOc+ZFJxgiglZyNSyth1oLFBvm9MPQ/BVWBNeGu+Y54Exzjsp3HTfMxENc5VQ\nbEWMPix0fMZWL8iyfu55GM/qa+VxkXU0maIf3MmSBq5zeMwQK+hpsEEZfzmd\n3Mfg19rhE+TfL3BdCYVFvsN5F7lx2q9ibV2HaE3mh+8UK0eGOos+Qyi2xOd/\n/onc\r\n=Yby2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2LAsUMU4kwFD6D74m5XXq0011mhLotsOOh+bt8da6zgIhAKeJsNCJ+s5JRnXUc37jUUtRyocvDqEC//nUcr1WISeW"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_6.0.0-gamma.2_1592088069958_0.5803997237728895"},"_hasShrinkwrap":false},"6.0.0-delta.0":{"name":"@rest-hooks/normalizr","version":"6.0.0-delta.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"dist/index.d.ts","sideEffects":false,"scripts":{"build":"run-p build:js:*","build:js:development":"NODE_ENV=development rollup -c","build:js:production":"NODE_ENV=production rollup -c","build:js:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:js:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","build:clean":"rimraf dist *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.7.0"},"gitHead":"28b3290f8b68169f56b6a14fd7653bea8794bd40","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.0-delta.0","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-XNt+msLBWeCAh8UjCu8H5fHTOKbIN43QStjWDM0sI4vUOVbwRcQoEMIaGEmV/hIGmDZHDSOulSQqrqhfBQlaLg==","shasum":"b3471d37e23b58bf0781dc5d21a7378c1e47b12e","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-delta.0.tgz","fileCount":35,"unpackedSize":232500,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfBjI0CRA9TVsSAnZWagAA7MAP/jv5qfuxew5/EbEiQTSt\nrTaxS3fRAkpUP7rlPJTTwpBY5F7JegC7zW7HoDI+PGh38b+4q+59wulMYOK/\nIeaU83rCHhMg/IVxEVEixHF06lj6tsIHUi28OGjguR42eNaV/va1xxrvpPgp\n0N8gSMDRjk0Ohecf8h6u1AgQgzyLKIQ+IvuIhFWERjwTdXo/DmXyvDjCeUpn\nwVL+mGQYJtRtv0OYknCD3grUzZeioRQstwk+i7fnM9gonNyy68XtPov2yTHh\nX2j+2jG+tjn9/mdzpMQY2mZoD8p68zM8QNE1JgiTjqjv88yxKSWKEnlKH+mz\n8oqFZCgQpOVa2l6nHu5GYKAsS+pSMMeXxPpBi1/b7Pv8pG8r74a1PWkA4LCo\nHSiXUAZ9ZHdFDZtHl+H6IezGI/Jmb3O4WINaFQJ9u6bMWfY3i9TqQ/QvM3oc\np80d16MzN+YdHOHqLIjyTikFDb0muk4nq4YMBfgmg1bXczuelWeZFvDUf6C+\n+bFZjNuKUsGgxgFIX1j7a/47x37ux6OGEsA7SPrGJt6QEi+JEgh1H7CMDUll\nRm42/mBOsCxr6LP41ddMFzuWXibN7gA4GdKPT3VClM2VZsZXRrcnic1diRuS\nZhGvjp9HvV9BR3U43WRg/fN3ve9WzAaHWL5hh8X90r7R8Cs8ctAFAAeS2rDf\nC6XH\r\n=UC0U\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTDk7tPidyjUvveBI3lPr87P+Z2nl/hUvPNFUY2dnsswIgYA84zQvNyCkrR6Qdmk5yYOmpruoTwSursbUAse56WTo="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_6.0.0-delta.0_1594241588477_0.9169173806624014"},"_hasShrinkwrap":false},"6.0.0-h.0":{"name":"@rest-hooks/normalizr","version":"6.0.0-h.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"dist/index.d.ts","sideEffects":false,"scripts":{"build":"run-p build:js:*","build:js:development":"NODE_ENV=development rollup -c","build:js:production":"NODE_ENV=production rollup -c","build:js:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:js:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","build:clean":"rimraf dist *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.10.4"},"gitHead":"c0fb0d84e41cf81ee78840532645b3b6f17753e0","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.0-h.0","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-WFJhduvFObM3zp1VUIRS7qj11H/t/6uu5y+jHzJZDNssIbneSSM4EBMeu0XqzThTitRKLDBaj1itgHu1p8TIbw==","shasum":"6bc1fcc4274a4da6330871f14fe36a0267f06fba","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-h.0.tgz","fileCount":35,"unpackedSize":232622,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDLbjCRA9TVsSAnZWagAAEO0P/RsGH1wYG2Ujw1gDnBAJ\nf0XAik8OTfmOEUp2aQZc1coTVLMvSsFsw77jdnV1IWnKeI4Uzt1c+UZGHfmg\njFcifEgEH0kLeKjfEBuPsPqutjE03hFWHulj5MFC4kxfVFlzHe+JfTUg3MEG\nJU9IyJWCXe+NrCKqP6NiBJR37/Uvnu8k5TRyfhHM5mlDqV/ZvKuZVnPl7HTI\nXdFk+MuNx82b7uIQ9gpcehoEnMbLp8iE+ktlX8ZsRXdcsLFJdtKr6ibcHlN6\nT3sb8qYjke5zcVtKnk/EKlr+wTao7X2jCdEzcbzXYciFDdG09+fjzZptsrXm\n831a/CmvjvvitHvgxFPHjCo3whPP0maBIEbnV0m/1G4M/OZ872DuQz1/f1hg\npV1GfpksgUJpNzPybVIKv6uvIQce9m1M8GrnpAQJYd32ZdOGmMI/8GDow3gu\nqrDhF8QKZB184reelyXq48Ak2G4JOClMYo8EiCrkx2iKEBcVKZDtDiiYLxFs\nB3KJ75OmiJ7UgbyXZKdDQkSZeUa+uCavbuW97TVCP6VRhCjHJ9g+7E4leysN\n6h+5oBPmIO/H3sgh3X3oNkK92Uy5uNxshP9R1ZMq0mxDmdxYpS2++ucFw/Qq\nPQm2ULVrAxmwrL+PMtnnrmtw3QLX6fl8m+KOsCBIFX02ppLA/K9sK04kXcmy\nsZ8O\r\n=P/Zy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDeemg1Dg5pPZ8sT3ZIvis2+alLFDYyNG2R+53EvGI+RAiEA8+7ldcMXtuKHFl+iY3KytRlKKyVg3i0R8fWv0z6wMHo="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_6.0.0-h.0_1594668770744_0.9319233887719229"},"_hasShrinkwrap":false},"6.0.0-i.0":{"name":"@rest-hooks/normalizr","version":"6.0.0-i.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"dist/index.d.ts","sideEffects":false,"scripts":{"build":"run-p build:js:*","build:js:development":"NODE_ENV=development rollup -c","build:js:production":"NODE_ENV=production rollup -c","build:js:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:js:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","build:clean":"rimraf dist *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.10.4"},"gitHead":"c149f4a6f2015ee3b21ee4b9b7991ece79b91c25","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.0-i.0","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-agcv3hcqOaHptR4+VbIwcPnTyx1zvAggMOemAbIof7fgfGZqQHUbPOogQVAkQDQ97+xZiscBR0mVc226ARj/hg==","shasum":"ed9582feb5f5a5597b12e899808700f308345d17","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-i.0.tgz","fileCount":35,"unpackedSize":232859,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFhyFCRA9TVsSAnZWagAAwsMP/iKvE4GvJD8HC/+tqu6+\n1SXfINoG9nH5nPTN0XONdRHIb+49J4liYBCrveSbd51KGs0LxCjaY2qXrbvg\ncqWioM+26AODog4/g2SLvwv8ADEuMaVw5qI+yhCdDXFb2cipJeyrCPlMZilv\nu2FurMRogKCmr2JNWPtceaU3M1JPFf7Rjut+olWuZkzeEcqjuJhiG/0YyD1Z\naBt0TP+riw+JH1dO4lGl6CesEXH+C7u2JgSRrFDUxmgtdi2qrvSq2a3/2NQf\nMVH5qA/HLEiGTOyRZHf3UHj9EvQEmtjYnZytAEFoxFuwf4OWbAujjz6r7jEq\nuK5EuT8nUdmAj3JdU1SxtCvMX3VXLuoJgpfA808Up31NcGnCPxD/oS1StJN2\nNfC82cMIWGL2PkEvSqc3V9xHJ4rghd7xst9wElgMLm4J0nJbw2jqc9TpzOHa\nkJ914LeAVIRm2H85iXf5gbXsjBtTsjjiKqBCJcc/zqg163H8a/7bTwVIQBDC\nKe4BTPph6dLawhHptxShoHR3TKCX2kQSc0B3xDui7y0OM+ng1iDGkKjzXC+/\nypZ8DUQ95hArhi2ReCyqhWBbRd4ZUH5YxUsjXANHTtkCPGV/VUETCKDBrv08\n9SA4gY/i9c/4w+pU2yxUYgUIe6rXhi/mp3EYoco49wGEiELK60P7RAvmFJ5C\nyNqN\r\n=i22I\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF4cvDYvcp+hdpbIX/JMgvM32FUbP3f5olpT5e4TQu7FAiEAtHxmwattiZ6QuCh75y6vtaSnVcf12OO8b8l6steptJw="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_6.0.0-i.0_1595284612738_0.7771911703055108"},"_hasShrinkwrap":false},"6.0.0-i.1":{"name":"@rest-hooks/normalizr","version":"6.0.0-i.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"dist/index.d.ts","sideEffects":false,"scripts":{"build":"run-p build:js:*","build:js:development":"NODE_ENV=development rollup -c","build:js:production":"NODE_ENV=production rollup -c","build:js:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:js:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","build:clean":"rimraf dist *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.10.4"},"gitHead":"796bad7931b65611c4c4c1532e851e67ea6ad97b","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.0-i.1","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-tElcwBIo1s+51HxfypqNOdPUvJaZil/vU0dbarYKvj04YivGExU1yzUkgaXGNCyCuyt+wjtDstm4sJywEEWUWg==","shasum":"9d7a52e1a836f2456bdc9beb45ed80f96519ed26","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-i.1.tgz","fileCount":35,"unpackedSize":233130,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGLZvCRA9TVsSAnZWagAAkDAP/AwLz1Ru6c+QZmpQEBsD\nf8uqigKXzdlIkC8gH4jfsCFjpuvHlAj4t45+bRRVZIzWDV3AiYpMmGkPEXlz\ng95KA+XAf/Ta2QuySW5d1GrNHcTX3UCsemD7oW0U5zP7vqQ6nrYX5lLoy7Sb\ngLugTE8V7iVXTwE4KWY4fut8f5y7D+pgKN00RRv3TZG50509Au4x2iS2Qn26\nvo1Kremydnd03W/Y97zoiHWP1XMqiPJrWtlmpb4fo7+B/52w4WfWn1PnuSqe\nkhX/uFXUur7mgZWa0iCVYYhtzI1YyLOeGNKq8VLbPSTL7lku8iyw/zqyVAKp\nyOv/pBs7NuPsN0YMobvADjaouBxrwGhppFUg74oi+IqDXIBR58VybYMdGHaX\nm0UPDNLDrX8sElmE4bsMaojNWpRGlt5bFF+6yHM3rguIbv3c92YS7l85OPYq\nvst30JhAGUubTJkMxXOd4NEbKSC3tAHn3tSilvpOSMjxMguo7XSpb5ja/eoO\nBMP23WnjJmiyxKg0Lw6VCbmu++o6I070BIdadbzusFuKqpbuOXsdXJ72Jpt7\n2pDncTWeIK2/xkCEoxmLvkFImXLDsJSMSk6Z1D+FDk8T1GFnJ72i/S5+rtAs\nAyy+lpfZF+SnOuGGdMObEShFJZhkss74CgLrI9GJFhw4nvYAv6r+OQCzJEgS\nvmME\r\n=Y4R/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgbKUmJd5xy5uOfMPLXo7vd1RNJvgsssO1D5/fMJApFwIhAJKL2U5JDNf0jNkvlJi3CvRSA3vbscg1CvWMS/KFZauQ"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_6.0.0-i.1_1595455084242_0.7067823053081974"},"_hasShrinkwrap":false},"6.0.0-j.0":{"name":"@rest-hooks/normalizr","version":"6.0.0-j.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"dist/normalizr.es.js","typings":"dist/index.d.ts","sideEffects":false,"scripts":{"build":"run-p build:js:*","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:es_development":"BROWSERSLIST_ENV=production NODE_ENV=development rollup -c","build:js:bundle":"BROWSERSLIST_ENV=production NODE_ENV=production rollup -c","build:clean":"rimraf dist *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"browserslist":["extends @anansi/browserslist-config"],"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.10.4"},"gitHead":"9f1c93016d32dbb9c93e33b14e225debf1febe56","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.0-j.0","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-sKdnNC/lpIvcGVoUMStTDZAEdBvG1t9QBOcJimEwhWh53PN5XtEFcQPAsup+g6+BHvy610g1RVEaE/sCDIoQMA==","shasum":"1116152a00e6260ea78402aa4aedbe26d03b1c7c","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-j.0.tgz","fileCount":35,"unpackedSize":276916,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHzfuCRA9TVsSAnZWagAAAVoP/3dk7QAEMERldgDwpq2N\nu7yJYIJ2htmMFKbtyZlhTTCwwgFEboWGIoA0JrMctSJPC+OcL0WhEGHN0oQk\nCPPBgB97qUys6hUAQr4rf5lAPeOKJQxdl5AG5hyQNaD6ymGX7THNu7JJNlXK\nSZrAVsN/iXI7xyrBVKmbfe7U+hDQngBUGyENUUqPUV1frTstuooqWHCoDUsY\nNoCW7XxNELN8QCeWkKNyvVkWjopN/4GUw7adR+gaqPpKTOIhPgderB6VaEUF\nre+4iYDK0YbrQ6SCB0wo+2+3SbLCkxlEOsRNrnHV4hKEEnKmbM/36Oupib0d\nJJtgZJXlfpOCGtYqp0iq4I5bis5uMgHNeoBls9QnmXfenYBxPbhLi7M2Zq9N\nysoaZweOPnb/01RuYUxUK7+KRy8pgRutCvt3r+qZ7bTUoClWCmdZwrJy9rtE\n2qzuJ9lNez1JdPEPuDzDZeL2pSIKt4pzp/mSRR7eZp/nBzXaLHPdHv56ajnh\n/dSn7DWVWsaI78oke1GmoChnjTwLd3CFAAezLfPsEpoLgaR6Kmjx8B+SNfC5\nFwoS0yVqlWKxRa9/wFMSOHepN7XoELkSTLqogkzlEffuoW9jUXd118VIxK7o\nXm0NA4lh7cJcIRPHKVe5hUSsSwpzMJibSG61Na4IrLrcf7swZ+8xLN35dCs0\nmDR7\r\n=mT7E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFpMdE9+FrllGFncr5Ktk2jogFgkljO4et5NeoklSrTqAiEAqXJzAp06Gozl6J2lyaoWYn4Ni9auVDM2oEIFiVjhjus="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_6.0.0-j.0_1595881453629_0.22188910341019352"},"_hasShrinkwrap":false},"6.0.0-j.1":{"name":"@rest-hooks/normalizr","version":"6.0.0-j.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"lib/index.d.ts","sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"browserslist":["extends @anansi/browserslist-config"],"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.10.4"},"gitHead":"2c30271056703287e287d2b06d22e81c6ba78f37","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.0-j.1","_nodeVersion":"14.7.0","_npmVersion":"lerna/3.22.1/node@v14.7.0+x64 (linux)","dist":{"integrity":"sha512-+nCNCfrdukibWrhl5evV6lPuhd0AfIXnKaQ25Y/tQMoYFbx+a7i8Lo6/SCPHBUQ4MKoSsdl67l7q6Cxi9VaH3A==","shasum":"0da41067b26b13a4c9fafa541055afb038dc0010","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-j.1.tgz","fileCount":50,"unpackedSize":360462,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfJIcsCRA9TVsSAnZWagAAIIAP/AlRo61UWo0eCn8NV16j\nXcFWsFWRAPmd72+bjhjVpZCuCLS1+Xn3jPhzLUHBT2repUEHLKQWK9d1K7LI\ngYyBEOJtBZa9RYOIubYtwZ97lxxTXyIqDlYbYHrHyRXgr1YRW3htAhUBPjnz\n348cIMAIi9/COlu/Lzi39/ShLS1cfApWOuMlnpAL+4z49v/NM3/9HGq2vyHi\nIpSPJsjwkbki9mGA8sNVO6ZyF246LfhXR/yWQ6Wys1ta1Z+e4WCBzj/TpC0D\nrodSmkdQr3BIo84pOSscQaOfOGsTTd8XSFodXe/skpK1aGwPyWkW0mcelkfB\njESIk97PsjqmMLS305D9qLe9SoXCKgWao0N+1vXUC76B3N8hPqF6p0RtGW6j\nez1zriwpzyRO/UoNpTNhn11LnYabqcqpKnIJOItqEISubzKEf37pz3jDrcM2\nO3DzS28ND0cyMtRQKjC7NdpJA2Y+JkvBfHlH2+DquuAgGwytD72a/felQzfV\n1oTQteDTWIhub24ipCdV/7K9ExeC58cELjejoptvH0942TjG0tWn2BSaqHkc\nxap9psXQHgK2VSQRC/H6+3o+9t4HbDeazDw5GBWy/1FP9VEeBjHO6WkViISF\n7NAJtJD0DyEU6MTXKGT5+GNNylch61SKQUBE9TuMTLJ1JOe4xSPZ6qz3G5+/\nRK0/\r\n=Ne2c\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBIdUKxiVjuoHjY4lb8FunGvvfbUkh4i2uYtN8TPQj1ZAiEA0IdwMO9Cl6qM+3cPOHnOFi9Iq2LR5nwCVvOzHmZnK70="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_6.0.0-j.1_1596229420359_0.20451714948888466"},"_hasShrinkwrap":false},"6.0.0-j.2":{"name":"@rest-hooks/normalizr","version":"6.0.0-j.2","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"lib/index.d.ts","sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"browserslist":["extends @anansi/browserslist-config"],"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.10.4"},"gitHead":"5b160b1c404e64b56a2d31b368a53af0b1bc8a4f","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.0-j.2","_nodeVersion":"14.7.0","_npmVersion":"lerna/3.22.1/node@v14.7.0+x64 (linux)","dist":{"integrity":"sha512-n/c5TGOYTi+rHhanaYGJebBLAK/6liDZg1weyrY1h0S/cDHwinxtLEpsNkJECO5xRlvG+3gu9G9rZv387YNn0Q==","shasum":"50116181bbf0296af8c447b3b6fc82b031b40f6b","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-j.2.tgz","fileCount":50,"unpackedSize":364536,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKMa3CRA9TVsSAnZWagAAvPIQAKKIm3iovDcT+TozdDfs\nZwtxRg80N05KEtStfdpoNddvSYvmZDDaOgAlHWXiqagyTCEA9yMybAegZBWF\nL49b5h+4wmrMeVrRdNFsl0wyRmeDMpME88aIV7X0WMKXbzF+XHs66HibQGKW\nQsUov0EQekSj6WUMq2yK2atu6esnykLGsuwH3YiUWVYI0rBa1kcaUXVkV8IS\ngjIS75zpG4TVHFsSFu8+wA25ycgz3PS6Za5RDPMJYPh+Am3OFkMiKW4oo4Wd\nv74vhJsF+Csk09liAdRi9olv3zjieI3+1gixmyXK+OS3Gg0RjyvocHVxhsGp\nmlP1MLB/bhH3T/CW5w5YEdm1QkHYSVXihLciokdO8GFFFA4P5JcEbGNocoYW\n23hWj9m3F2GgLfBWc6OYn5fcawy91IQ7rmfsnqQNHbzWIc5SDgQ/U/Spt7yv\n6X6OGbJWmov3y7bteQSdi3R2HT7YzpfPeel+IUB5CKBoP522OJTXGaNue+65\n61o+XXKKXByw2iFePjgsVLfOTBtfruKsgi8+g48k5T8ySzlsydgt+vHjW/ux\n28eiO3xZtVcGBXvCElcRPNNQJxqh6hLJzhP3C34z5qnS4pwXRVFsKEGXstCm\n90/lptIcjMvOtl3XmWVEBJcNRGpX6FzAF960qwUftgfG7ier5E4ductvzxy5\nGAng\r\n=vtEd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCMgBX9naQsyb44Pu7gELiScAF5ls4ZHoCpx0AoJZBOhAIhALEI8yK3GdoGIa20KYAHQVtoti0DQXpCFL5ODP8rD+fI"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/normalizr_6.0.0-j.2_1596507831465_0.6511338207000152"},"_hasShrinkwrap":false},"6.0.0-k.0":{"name":"@rest-hooks/normalizr","version":"6.0.0-k.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"lib/index.d.ts","sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"browserslist":["extends @anansi/browserslist-config"],"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5"},"dependencies":{"@babel/runtime":"^7.12.0"},"gitHead":"3d62db99b47ac7e846cdbabba429b047fdb8d18a","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.0-k.0","_nodeVersion":"14.15.3","_npmVersion":"lerna/3.22.1/node@v14.15.3+x64 (darwin)","dist":{"integrity":"sha512-4qMVzEav4G+ZxkbEZQkBitySV5UF5vgcvFYI9BsVTI4bcrCIGPPyd7rwP9hsUOQJ0ehCYOi5v6fHJt+D5PBmxw==","shasum":"46a795a32487beda045ce4abe062696ec2c31126","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-k.0.tgz","fileCount":50,"unpackedSize":365545,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9SjNCRA9TVsSAnZWagAArVkP/2bXZLCC1qn3y0Ol+Trr\nw97GNz3d462IeEAe2BPRB8z1T35Az87bXKeM8rbEFJXAph7rHEwZ9E0XiFgW\n1B3EWQOUtLrHv5obVqPnoPnWzT51BVBVENLySz3cHhnej6BTyCrCvkaVJHzA\nV2c2nX/lMpA6rsSctBsG+uWIlf67KK48v47Fhm3Unh5riuTG9Wn5t/4gBdM+\nWiBC35CD71C3/6HsszJ4Jo/h7WDwdxnSuLrNYSqnEDq89vGmfzBA8jwgi45b\nd4qspSShGrF/rl0xZpd+v1G2zv6ErD64Q37VqTjm88LsBG6Dg66xKCyZvCXK\nX6AJlG+as4UkyWD8THzTiEI1JZacaHMSYrLrrMOV5cM06VdqQr3TU6mhApJ9\nIRsIF2hEQhDxzV3j1uQAt6X8yut5SC80foMZr/rvFaHvs3O25XHAbNW5odKX\n6djRYtQC3tQXy4Q2oGcyOQkoj04pdAQyxRjCavSd0W/QjhB6WUWiDx9rf0Jr\ne57FiM7+dceP10ew9Y10Z7tiU4vLQEnpN2lhoHWGyQYI+aO90RlcJ4at6Vq8\ngpGkfWF0hmMhn3qSb4fJkjbhczFswwha2p9pSwg/gCeumuVQaV3dBevTmyYI\ntM1rItHXIALRfn/Jzv3kWchyWtGDLqOVct3pAtWDlHyNYgMTHSUmRXx+dSlN\niBe4\r\n=94yx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDEKUqR+OcYEfWz/WKdbOPVdvos3/8kypBaQO6KnAVYNAiBkDbmcjDrf7BscZ5ku+krKduksrYhJaARreoGZ30En7A=="}]},"_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/normalizr_6.0.0-k.0_1609902285218_0.5549721208506411"},"_hasShrinkwrap":false},"6.0.0-rc.0":{"name":"@rest-hooks/normalizr","version":"6.0.0-rc.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"lib/index.d.ts","sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"browserslist":["extends @anansi/browserslist-config"],"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.12.0"},"gitHead":"aac7788118bcc573da9eeba25fffb27e950ac9d6","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/quickstart.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.0-rc.0","_nodeVersion":"14.13.1","_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-L/IVeWEeBB0VMUPfK4ZauPA0Nb0VqF3fKRwDcPsHBm43VLyp+WLJJPEfjosbTcq3CbI9X4oEboq0ayEOGeRnBQ==","shasum":"46ae155ed921ab8590d4ceb9001917452225388a","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0-rc.0.tgz","fileCount":53,"unpackedSize":422674,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAO64CRA9TVsSAnZWagAASJgP/3HuDsrUEgfE17ZCFHCK\n4B6ZB8qZg1c+i47OF/l8ykY1wU12Ka8375E1IBSSr6tj8Del5+1Buv0kb9Si\niX5VHVXxyCwGNjIhRf9xRT/YcahGt8pTix1yvFShVvKOox5i4wZdgQPM0DL8\nc+aGTRBRX3jvBfcFzg9wqUZQ2YEtKDuBSC9USrTajj12Y8xKq4ytF0H3DU5W\nQUjuZoY1Zw3EzV5Jjr1d25nwJihmoSOmo99GJ0V3T0Bv1NZ7fuBU7KTZV4R7\nUczUlm2bBUhkBDpiucCIuzepIL7I+eA6v0WWqPXOIG3eg/PqfblWD+s2xgaA\nqbJiNpuw7vTsCyl7elCqehFbQl15DXFX3Jx7zPiPyDyGhImrb6FceWDaOGy7\nT2o5v8BDLWAefVyby0ZaCjNbafrPgwTF5bpfeOcvz28Fc6Aqx4utgaoaC6DY\n5lne7Y1TH2kXflSxVpwu+GeuzfgUdVbDWxm2yivvt5e+r5xIRAW8TJtjvyJ0\n+pONL2q7bH/hx2HPzRy8HnJM8HeDwu91ef5VrUlVEn7O5wqO4ClKFj7r6LMo\njnQwt17jCzvrLBQE8v/z5kODndqXFHFx5aJV/NisrZsoH6Usxllniath4r2h\nWiVz+4GMM0Hl2gp4zSExIk3Z/Fy3pMVE+536ZnjYy8HElbCfevokSrdierMy\nHB/c\r\n=byaF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG6F+sryLzCa3H5TeyQk1jLQB3wYmP023cbaJjm1CPUwAiAzxIMrBaq/AVA7iSBw1OoqepVSAb4JL+yyotyzXQbw5Q=="}]},"_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/normalizr_6.0.0-rc.0_1610673847885_0.22069989042264782"},"_hasShrinkwrap":false},"6.0.0":{"name":"@rest-hooks/normalizr","version":"6.0.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"lib/index.d.ts","sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"browserslist":["extends @anansi/browserslist-config"],"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.12.0"},"gitHead":"987d81d74abe240bbc5fcc08d4d9fd18a85b12fd","_id":"@rest-hooks/normalizr@6.0.0","_nodeVersion":"14.13.1","_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-Iqyc/zKnF32+4zYmyDMrFWkrJoRrFwnhdvnFkEWo3Ng83wDOqVTsE0YOslD7vPX380EnmMqO7qYMqO2mN19J1Q==","shasum":"e82c253fc25772a4670ba662290e242ad185ffe6","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.0.tgz","fileCount":53,"unpackedSize":432066,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBxXaCRA9TVsSAnZWagAAqbMP/iJ4FNkY/Wgi3BRK5D4e\nfGeSeGgnDzgmimGdQfjeCHrjsIIYVJaUziyil1JGCqM7XFsy4ukl10N2qSMx\ntMEQGtCcIZ28hCJ4efsZr4C/1OSQs3czoM+UostJMtr7ZnDmlY+w40JupYom\nb8VyOreGxddIDf0khVgALE//Wzsf11uBW1dcIaazpBr6jCUz5HBzLkuShmXT\nPMZmZD31Z0hQXHAgXk9x8FZXPf8GalTqXHMQSFNNFRHj4gyX8SlNCtBy9z3/\njUsGxCKKeyhTNv+CZgOxge5bhLGSOxzJNLoVkQ9mYA6iaxHh3jVvobve8DSH\nzMvEg5rg7EvucTOLZ5Y83vwLvwbWuKsXe4pt/R1vjHytq0YPtoHtohdqvmIP\nAdJRZ4kNW6nEVH3OQwuFO2D/eCl91cI0xhjCAnTpaPH0qRcJAFI+3EkvpG+9\nqxRGtHvtLcL8m8pQa0yFnu6Z0hmeXQlHUZOi2Ja5N99Q/Gtb1F1f2iJxiAgc\nImrYz8tt6tjb+CyLMR4Xn5qV+4ze2aDBO7zREXnFRRVF64+d5+CA7+ULqZyB\ndSjH+uuvyxwyD15eWBTYfCTVqgOqs60U63rJoj6x2MtR1ZsYZAlS4HuBjBRf\niL6FzA+yhhd/7kD1liKgFg0kHdZ/KC2G5eOyCIqC91dNsdHFfw6HgHP9CCN7\nCc2L\r\n=BouO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAC2Cgve2BK8DYNU8Bj093W2nx7EEwggdDV/XONYoBoAAiEA2jKblrAQV/MqF7Znyzaggi/yeqPGKVoocmDimBONX2E="}]},"_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/normalizr_6.0.0_1611077082205_0.3821676112239889"},"_hasShrinkwrap":false},"6.0.1":{"name":"@rest-hooks/normalizr","version":"6.0.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"lib/index.d.ts","sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"browserslist":["extends @anansi/browserslist-config"],"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.12.0"},"gitHead":"a031da2ace9ba826dd1acc50b50cec4d42cc6a85","_id":"@rest-hooks/normalizr@6.0.1","_nodeVersion":"14.13.1","_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-dAgLYDly0HMk3/9P+BTNhR5GmeAWg73Nq32wyyJRe3X2LvfNs3CtHdylsZ0WsZcuNi+7FOxveO+Q6H3rH2ef4g==","shasum":"d01501759bd494b9d3444e0dd7a7596e5578f1a1","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.1.tgz","fileCount":53,"unpackedSize":454908,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgDfzBCRA9TVsSAnZWagAAB8UP/2NWXPt+CTUgHRuTu6nk\n4drRk6KjEBqxOw15qAvI1hZLFhcid8m0jYHdVOsZuCboxKdFoa9Wz615Qa5s\nzuGUKOns91lpJo3wKFwYw8xNYecbVNT/GdqO3xE4mWq+Kot5LPYJIW/cJBQB\nr6SnpKUsjPlRdY0zfMLXxvtK5acEPCuf4U3F/tCEkGGajiCDAiAvseYxDv+d\n7yDG9OFIwmyf0hM3BPO3idzsKr4pixJd0pCTu6qPQwVViYgMvjXaCV82aFrA\ntNkFjgV7zcYghU2RSkGrP5WFDsvzrrnkDfWADuHEAMVtcrQuOeBvNJ/nJ6JO\n1uZUrPwTe4ZqWDHZ4XmpL2p3EHQVOo0T0ui4bZljxjn3L2DUS+uODfAoD3U8\nKkfgGJF0FgMUgKKZXlCqXoeKhZUKjO9oSlEAv23zq7nv2uAoalM9H1fPUT0U\n3YQrtKK7vbl5FphhxrEu/q9QAYHH7Zq872QROmR/dyAT/i4+O/hEurBPh04h\nfHEJpCo7Ob1vMX9CHTByHGDA3nXL0xlMPrKI0KeVnHgZp+Xo/uDkCNl/wCV/\n7wfTUw0wQphSnchCpwYBovIAG9nv1eZWRgJVWA2QgncACDgI2c79Z+RobAGg\nWyTX7HnruDzA4UWzpkDTiqKspRE/QSFrpPUn08rMtbpk4LGF7K1jgcP3w2T7\nt2mu\r\n=agVo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDGr/nO1HP/oLmVLIcWfeMexAp8an/LL6YzRBoxmKtS+AiEAp4RZGOSaOUQ8OJ1sGMijLVzywEcnvXP/YAMlFmH6D3M="}]},"_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/normalizr_6.0.1_1611529409065_0.4261754042183572"},"_hasShrinkwrap":false},"6.0.2":{"name":"@rest-hooks/normalizr","version":"6.0.2","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"lib/index.d.ts","sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"browserslist":["extends @anansi/browserslist-config"],"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"369b160447e065fa1bcf12268b94ac25751c0e34","_id":"@rest-hooks/normalizr@6.0.2","_nodeVersion":"14.13.1","_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-mvN5/RCdjEBy3U5cLTYSj1Vdksv3M0LEsydkFew05PsELGa57uRB/8inELMolYmeZ5uUlGaTzOtOGTzKdXdxzg==","shasum":"ee00fa8adaad84f4ec18fc74650a28344005fc12","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.2.tgz","fileCount":53,"unpackedSize":455262,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHBukCRA9TVsSAnZWagAAp5kP/063KCwVwp6URuKJbI/w\nyDFaIFNFiHpO6xnoUEWvdvgG2c3n0+NRT+apTEipfpIiaya54XrPFcv3ErAA\n16bErMPbeHEmIp5z1ZdGn668RMvGZ/JW1IT8cpCUwBLY6+ES2PviXy0j7j2D\nY+Gtj91tjDjF/k2S3LE47NxCgVrzSQFXmtOb0igxJOyTM6+n96aQebFpTwoI\nlbxLauAKMhODkTbX960SLPwhPYSgh1eZU6jLmlNmRT2w42XdDfpUMJKw3Tbe\nYW1XJUN005ZuiePuOhpNnHYRyud/xWC3KvccD591Cm3HNQObldG9NkOYOOCp\nISqce+3UawexOeAeZG7hn8lCgmkJPDMeSwun0wHkvP0n+U2p9RDKko2JW+f0\nPU0JYEXVkf7lAFAmBOiey5kaKkIu7NxxcRMy57NhZBDidn9HPJALWppvzU2y\nUFM7ViguCoVR21hCB9iAbbDbiuuj67rUKAv4Cu1DN0In1/hsdpAyMHbg3749\nGHNiEKnrhdtFk1bCOrLgTTxpFA6ZqJLiiG4GGr13CfKdurZ2AuJGoUz7cRa/\nIgIFG4GY60lMKGGy2vBUzhB1mVEtTW9XnTi5cmaFXmCjOdTm2Q+JkBAcH07q\nC6gdEtdM+h65BoXW1OXN9Q6Ocpvs3rnXBk5Vic4bdmLBJ0cYJAkOczVMxy3q\n+6vZ\r\n=ES5i\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZ/bH+oEOfjSCqHkTeoPVts4OlegUBKWC/ODssGtN6PAIhALJoxU+ww3wWSb+5MK+pYL+h00AFQewGzcb2Q7mI0iwX"}]},"_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/normalizr_6.0.2_1612454819797_0.008485054689564508"},"_hasShrinkwrap":false},"6.0.3":{"name":"@rest-hooks/normalizr","version":"6.0.3","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"lib/index.d.ts","sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"c63ceaf1b405ce1bda5c41af68980873afd238d3","_id":"@rest-hooks/normalizr@6.0.3","_nodeVersion":"14.13.1","_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-6hEmcu9pS63cwYzZgv7A4OX3+kvT1cQmNANIZ8/i0q+Y8CXSZ7z9X40VEFUSiBRteAwn8XSaYA3Qks2bmMhScw==","shasum":"afe4278dfc89133823a8493eda5bb89788c2591e","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.3.tgz","fileCount":53,"unpackedSize":465796,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPWaqCRA9TVsSAnZWagAAkV8P/jkIlpp6BQBxV7efsoT3\nrmb+wI7/X+6mwg0hp3M1QFM916HHv/hMnnyEVWajjvYMdDE74TQjwEpmkqqJ\nE+pCgUYSXZ7XuU4pYg2J0jtY1JmpVFD+Lopj+Ef2487CnDITND6x+80S82lU\ntOF4vaepGBOfq2No4sx/mfqDrXXaErxtfQMlwTWTztnNydup56OyfXsTGSBD\nbxvP2BUdVl1kV2CdYsNZNt1VujK+EwlnqKbEWG0hxl8iKBNvGYOy0D4BgXbp\nux0IMpjIEGikBl4NP8aLY8Q39G7+varK0mVcxSDkUhxgEGAmuQNBCGwo1H0u\nPrDl7hJC4CBFSH7E7lXy5329gLE4LfaFmdtTH9hLG5uVZmouR2cqOX8rKn8I\n7SLJxjx5D4y3MouLSOX4evqXEmAGd9oGbRaWVCboUnXki/zF7oldnan3gGPB\nuzfhF9trfwdq8vVm+Tsa3X5EBVz3tlKqE8rAl++fGZtjSKWvRnjr8CiTuFBW\nK2TWspVc/JqBMxem+ofiWwSdjonarWL+wX9y0YodNrijkbLRrf897UqE11CM\nrEL+WvPQYB+Ywbe6hgZJQk+W6ct/YXYcGQNT7tvQbdcic1+kaYPYbouYOFvI\n7Q2xpKzqEQnBA0VvS/3V2y22stwZnXoavjTnz9SDRXxNejAFhTofLw3OxybU\n1bSC\r\n=2U8F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDUxGLtjpVb9An86VSyQIgi/hmWu8dw4iK9RTBsRwa+lAiEA0QjD3QJKHWir1o8/ImWX8aNg1ulq1fHKGGir8E8w9x8="}]},"_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/normalizr_6.0.3_1614636713731_0.8171133282361756"},"_hasShrinkwrap":false},"6.0.4":{"name":"@rest-hooks/normalizr","version":"6.0.4","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"lib/index.d.ts","sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"372d3bcbbc471201b9e3ead7ae4c9bfe22fab29d","_id":"@rest-hooks/normalizr@6.0.4","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-eFE2TH9oN1MtABUANWmLp+pRIefp9RRfHPa18DRgUU1uuimAZIXlWse5YYepofYWaQS47LpP4u2pOb/8ot09Gw==","shasum":"d285ff8305521a8a510d8c41cb8b78a9c6283860","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.4.tgz","fileCount":53,"unpackedSize":466907,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQAUmCRA9TVsSAnZWagAAV2oP/28Ykwwa8MFX8YiBnYi9\nuUOoP84F8hXiaxm08qpBsjfsUdw4ud5F6/4vTbZwxOIzIgoIV1gVQU4pRlVe\ngkii8r+zliYU0Sy9OCGQKeDVEuVJLTTv0goyNVGfr9Gq1XsiEzR33cDunBEm\nH4vg+rGOyeVF75mgSCc1XS2rwklFDqRGPxYFq2GOiGJ1kYIIb07bjdgO4ste\noAafL2csdgxY7AsuNV+vd36Q3ibwJNqUIiN8wY4xdU/eJuEKchnkV+2E8IuH\nHFZ5LUj0e2oJSpoynx+NHwEiMpSFgSrRbfk1mFT/SSMVPrsPe85gNi1b4ieG\ndyLGfSkwtD6hrA2O9j21rL8dgd3ftulllJgBzlh13LbQHIiX8tc9bpxh//tl\n3C+oybwwQ7quI2S+UTWLzN/DdVFNQMNgSMzitQnxsJbewVaIMDm3n7qQN+5t\n2LdJgJliSaU1BAcaSwTNTFaKwaZ/9jx79M77CCDRBmxvPAwB7ipLiH9KXrIz\ndpp3ogHfrXxfQOo7Isiov+ANZ8AED8Eyj4VgF4WbEWS4hMMdSRTBI9VDgTZp\n4ybwhiL92XfR7Q2SquOXviy1ACIUBs7UAv8nd5eRZbT7HrGof7FDgWpdt91P\n8QaCVJ53UqW8B5YecPhjNTJvLtxyQixwIG+rLYr1lSRgjuPJF8OhQbe/+4UG\nIWl/\r\n=A1Ti\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG6Ha575964nfl34H2RCMOsYaBTgR1xYsYK1OPyq3qzvAiAEiph9u09KMXlOYyLMhFsBw15K6SeXvRglP/Z5U6xiTA=="}]},"_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/normalizr_6.0.4_1614808357531_0.35767542724529733"},"_hasShrinkwrap":false},"6.0.5":{"name":"@rest-hooks/normalizr","version":"6.0.5","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"lib/index.d.ts","sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"374c1a68133aac25025f69bc03d3f2c90ccca12c","_id":"@rest-hooks/normalizr@6.0.5","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-dhe8gZhMErgDvf/SX33ZtlCvFXRq2MpLUtTAP447hDOF4vGvodan6aidOTlTs8nIGPfyWdajttK+Uhd4HoV/ig==","shasum":"728a47c5ad4d414cb9b44d89ff96502265e84707","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.5.tgz","fileCount":53,"unpackedSize":466733,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgRrmhCRA9TVsSAnZWagAACvAP/RZxCRhIFJxVOLO7RRQt\nPdVsX4ab9VDMaSYPUFILuGwayKBlk91BUZGxmlK3ZR8h6dvGLviMdGhoKsTf\njg6qVXrSdB3dr5YTjTCGqiVK0pALkkHRTiWW5bpETJs07vAKMwRK6A7hNHK3\nW7fxS7vNRZ8zy4pO3PGiNeNbh/6Y5ceXHvW5HV40Yr2aSzuAMV0DDmo/+j5p\nyYP12IdS1hnTK3vGGoncftGvCdDkGw1oj8tAbQVX8fg5RBCCe2WJoALHTLng\nMPNMFAVtgFhqjBk74H6OlNU+rHeP/4eNOkDB991wirDtqd0DHfol9Jfpt4iL\nKhLUPYh1MeVJeJqhPKzQ/oZuLFzF8oLRcYWLD9IunC3FpHezGh8RH2vfhFz8\na+ZdwvkcViRubQXtRXnHZQ04F+8+yzQktxFwhDl1TDJbvFBcuV4S0FX+Vqs/\nii62dGAYIvwWASklnQn1JIiNBm1bRRUFgonVjMJlj9Nd+oUy25ROT/tHYhqX\n0s7N666f2p8jDcjX1mVxZN6iTp/jB0JB+exIoeKDp0RCAnvV0DQgLmtKkr5y\ns3cF00aOCLdot9hhJLxYlnw/lOk4i1cBLtbVLPN/jw1L9BTvuoB9nhUCro08\nRV0pR5dPrunJN77r2y0NG80e3x7TBhsx+DGhA5x9RQ8SIDMV61rHlwpMIRqQ\n+iXY\r\n=f6F1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCugbigK0S8tBqL6o7qwTciIeUGR5dp6tqcVNfj9yB6rgIgNi1BQnmFe36M2Qg6PFsJdU+Ga5h0VbJM6nX+BVGm0r0="}]},"_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/normalizr_6.0.5_1615247777347_0.6870512682444405"},"_hasShrinkwrap":false},"6.0.6":{"name":"@rest-hooks/normalizr","version":"6.0.6","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"lib/index.d.ts","sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"f350b75d5680b1928521f20822c67e27f0f7f5a5","_id":"@rest-hooks/normalizr@6.0.6","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-Q+vnCBbzlr7WIC2mJSpuZr1u27QomrTnFjYCHLEhj0TC9ge1evLk7NbHKcoIDCwSTREIn9gJon4oWkn+CznjzQ==","shasum":"e48bf1858c67b822a45a9f67ed12c2d94ee6afc3","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.6.tgz","fileCount":53,"unpackedSize":467100,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgTYAGCRA9TVsSAnZWagAAjOQP/RGKCt5XgdXeg6Uj6Avn\nYw1v2oBui2q2OOP1cvlGv6qMqr+5x9FjmlzhjmT+EiUiLwL6+lX6bYdvwiL0\nEXo61gHePQNg5MgyxumzCP+leMqQ7+j+rp+fpeMeLf+fRBXaYu0yJIifB7RH\n04V0md0OiuPJkHLlUuFrB8gtFwP7zMTM2zv78SBh3Bd2FPrnMhlzi3wk7dwV\nbGSlA/uacXyaGpYOlk5wDiFu1kus6c65gG5KtDH/07a1M5EvexeX9hL1s0lX\nlFBNhoFyevYM1aFzNBEY1FIHtL+tX5tk62SMpLAHSFlOUGQOxFAZXIbaWo4K\noSvAsOQpV5XhHQNc8hReagiN+JeiOTzra2tMN4q6v66fUxEES+Fb5RCTVTwq\nkBzAptWUZaLH4jyjUvdZ2nnN53E68OnWBurcIfRAQ+0wSofdno5W8cRRN3gw\nNDAvuLee1HvJPbT72nRuv9bwnOhhKosEpt2pvaJNwAjfD5rdjfk2Lv1YNjQI\n/jrVR6psWTeCf+e+u46bZ7XfGf01Tq3S3P1HQazclWLF0nIA6DYKYH/psOd9\nptALihUlH99/Ll0rJV6lAnn52ZmqVA9/IgutUbx4KLsjD9kr0sNBUw4iyh4L\ngZ6LFvrsRqoZ79JU0rwPfMMDsGfDmuZJI/hrsojp6pwd1O7SxZqumXbmDLGo\nUfO6\r\n=Agef\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFkiN58faTF/7ai6UTr+/7qk6aB8J4NJNdU0vCxPM/DQIhAJsdI6KeM5IQdhMGXZlHjHOANsDEfW+gy2Svkto4mKge"}]},"_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/normalizr_6.0.6_1615691781738_0.9586175268419375"},"_hasShrinkwrap":false},"6.0.7":{"name":"@rest-hooks/normalizr","version":"6.0.7","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"lib/index.d.ts","sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/__benchmarks__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"5751520320d27212b1ffd21b2303649f312f412c","_id":"@rest-hooks/normalizr@6.0.7","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-eCnS7dJ/mHKYB+ZC8Wqb/XI0IH3wOTL3X7Adl8w+9L014wJUtVSsRn1zLoKVUvBs690VEbTyP/bG87+m9OOSrA==","shasum":"21a1841072aff271b3b947308508e5ca1abeca3d","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.7.tgz","fileCount":53,"unpackedSize":467331,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgaQh/CRA9TVsSAnZWagAA9WcP/0Wp0Od89UtCEuWMzlWi\nydB4HxHC5ZD68At5+0c7vU4f2OHlUjKvUVEVnJBHwTVW1kqTGAPgpjlqzndu\nyV+0YBP+8A9hEYp8EEHuBDwHFgcyWKHRWGyHZpu1nhLzQqLCeg5cNaXMZDnx\nVkBr22voOD6YvqYnNNoqjy02JxNlOTXmiNxFxrXFqYB/74V8Ey6hxD8meLDS\nDajnIpwc6IwFviJ7WgxAahjkmKrKAnZPP2pWVlIV0U8wkgBpGp5i1D5DR1+g\ntjHGfOLsnTm5VqhFEudgXbyQmxT6u3VCWGu0ihLd5kGnwiK9MyawVL7EBTc6\nx2MRYDY45lgiNPO1iHTGiIXjzkTvEfFOjAUH1wHfq3P6ZJisWipXzeaS+toy\nSl9il4cknlJ9wx0OaB58XZ017knH3RTivmTxF0jLe0xUdZAB5XU+EWcaLa9e\nDkCoSvAREweIbuypKLK3AIum52udpgermY6U6+p7IbBy6GiZRsjt6nNvbx1l\nDkllaVIo5zSn1piy14z4x3PVoZKx+EGDrBR2Pm00skpaZ7TKpzWkWHj45NMo\n0ETzzYAO6/xCrSov2tdVxj3UNQdfQsDPs5esd1GOB3NDithB0zSl2HkiLRle\n1Bi42Sz4Ylm5rLeqF87G8t9JHn8H7MA3CXZg2+ms3fxzXlCv40cJbZ+qotfJ\ntrYW\r\n=64dN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHulXQwQDaP9nfuqHqtmICngssWJVfncntDb0KgRmpPoAiA2gq0l4XYSOHMx2TFPC/46a/IVBi8aSjLbnPgGU2FbJQ=="}]},"_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/normalizr_6.0.7_1617496190663_0.6515415107694573"},"_hasShrinkwrap":false},"6.0.8-beta.0":{"name":"@rest-hooks/normalizr","version":"6.0.8-beta.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"lib/index.d.ts","sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/__benchmarks__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib *.tsbuildinfo","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"b8c64438bb34bc1f9e9bc1461bd7e4d3bb4e330e","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](/docs/introduction.md)\n  * [Build Files](/docs/introduction.md#build-files)\n* [Quick Start](/docs/schema.md)\n* [API](/docs/api.md)\n  * [normalize](/docs/api.md#normalizedata-schema)\n  * [denormalize](/docs/api.md#denormalizeinput-schema-entities)\n  * [schema](/docs/api.md#schema)\n* [Using with JSONAPI](/docs/jsonapi.md)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/github)\n* [Relational Data](/examples/relationships)\n* [Interactive Redux](/examples/redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema } from '@rest-hooks/normalizr';\n\n// Define a users schema\nconst user = new schema.Entity('users');\n\n// Define your comments schema\nconst comment = new schema.Entity('comments', {\n  commenter: user\n});\n\n// Define your article\nconst article = new schema.Entity('articles', {\n  author: user,\n  comments: [comment]\n});\n\nconst normalizedData = normalize(originalData, article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"articles\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"users\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"comments\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@6.0.8-beta.0","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-Muc+lFosAV2SsQEr5gSaxybWmwA+kKb4T4vyLYPVsfqTT3IU08kNg6aVC8PU/kM8RKN0FkVi6R+bqJQc02Z1Kw==","shasum":"c0c89f23b8b3af6034cbe8686a5016576e462e93","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.8-beta.0.tgz","fileCount":53,"unpackedSize":465403,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgaofECRA9TVsSAnZWagAAqqgQAIP2rRRDTJm4fsOZWKwl\ne93B5qirfHYC2CzROVgPvagzEBDV5jQMlfFnKyvQmqZEy43FWRp7N6o0Ytwq\nU16FQqHH4OuC9N4xf3rRwMS/q5dlp4imd5014aXW/28hRgGeCT88lfimyMmF\ns4xaMweNnfHzCtfSA5Rvsv2j6aIYk50rlYWrB8HyjaO5csPD410zwbeC7NN6\nMRLAnJ69eXjDLfd+fOrEvWrWbMHrYnYlbGzn2eOnonWI5jOlSQMLwsJ3bwRV\nO+0tZqBfeq2Oi+qUFQf8EpzgV8GqHyo4fpTcrOsjO2FXyMGq7RXMqPtt0VUd\nB6pRpGnsNxEpHdQIwaWNYRb31L7vXFnHEZEVNvMu8YyfCk3db8qNzQKCAWq2\nYlE5F9R4nZiWx21wUVVJ8c/NlMKs0t79AgYed1ZLm6CH9RzwOnG7XNOGLw8T\n/LDZ3u9PqFoH2TkQh3HKYPrNadGbJ/sE922VyZgAEU8FWboocZseIMoZ/zPf\nFPWwTr0wkJeX3YPj+2Fj7oPperI3iaYtC7qzNblXR5/L7hMtynoI/kxQvNf/\nODXalbblQkmU5dI7C/wto4f65gMLFRAXA7zEX8OErQIzNDlanAgAKW/J0P4B\noSqB9pqrp9Bd+KRfNCzuhBiQLJry6YEQ09n5Bs+rk5lnNZVffXJq77a/QkcL\ngll+\r\n=FyDt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIESoDCV1MOs5m24d/BdP/Rupkff4XcyMyR5vfARLhFxlAiEArBx4B8NFq13DBTa0pFYBoKUT8dgDFiR7a2RgG5HYjY0="}]},"_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/normalizr_6.0.8-beta.0_1617594307710_0.8657510327602072"},"_hasShrinkwrap":false},"6.0.8":{"name":"@rest-hooks/normalizr","version":"6.0.8","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/__benchmarks__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib ts3.4 *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"0ca6c375c194819877e9fe5c2fd57a0e85a6898e","_id":"@rest-hooks/normalizr@6.0.8","_nodeVersion":"14.8.0","_npmVersion":"lerna/4.0.0/node@v14.8.0+x64 (linux)","dist":{"integrity":"sha512-sglhldcXBJ39S7s9CSZUy4RNkEnSTVVjd8Ap+Gh6ltDnqjSYPw9QWlu+cpvP/Rj2Eh1xbEnSO3OmP8LNjJizYQ==","shasum":"c80e619e2a8cef95320309e890bed21941e2be98","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.8.tgz","fileCount":53,"unpackedSize":468709,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdEhvCRA9TVsSAnZWagAAElQP/R2Jx2G86atQSv6AX2eo\n2EIJ4OLCTpOHyhMj2DgmTXgK4DEq3QQzjDYwKO9A0d+QuxWM/tUiX9KK/r1m\nc2bLSd6ZY2/p1OkVS9jD8Y45TVGI/DwCA8XHkxN8t+O7gNmB2LiT3AaZqrMY\ntqddqtJtTQ1sf4vmynxS08SJ98E0iSmStIba6FmZsDnb3uxamDMCsuJSySG+\nXR3WqJGFUPrl2l84ICs/w9C3sb5MLZWzWYf2cHQVhWAphM7X2SvTWdGInyiB\n7Vfr91iojYwKPiiqg82kIQGbBQRoDB18OFchCAuscwPtJQFGshXiAQyOAdhc\nEP91c2rS8Uk2XTWXHo4Jq3Ove1xz5LS3ddQ1T9sqSHlxUNBR+oLDC+gHyrsI\nj9uIBSrNAQ3neezcEfn4YaLswiM/bP8/l1uDICHh19z/A+V9WOM9W8Feofrd\nfbnAdGSQxFxxdvSc0Y2sZrWWfh/h+oYUoRMT2EVnG/UeoPQZ7Fwu+Bgo0ZIO\n3gxnTE2oV5a58Xpf4BDQNekYh69UgS5ksf4g6EYqrvowVP6pTA9P9MQphKLq\nggqfqxpOMKuE2l/K5PTfBZs+BhVAe5BYpMPP5kF5KV0kaKpWQXA5k/tDb910\nGbHkoXu14TkzrS/XAY/qI8N87Do+KG4zgoiz/pnzoQQ3qOe5tsoyX5l5xTcr\nRspf\r\n=J3dn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZzxhFZEo1fiCZozjuOSJKt1SvUtcAb6jT5aETXWpu1AIhAP6JcEDN2az9jQRs5FvzbkzbyjTaZqoq9jiKuJoHlIO4"}]},"_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/normalizr_6.0.8_1618233455329_0.7640150949795406"},"_hasShrinkwrap":false},"6.0.9":{"name":"@rest-hooks/normalizr","version":"6.0.9","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/__benchmarks__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib ts3.4 *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"fbfc12895344985575dcc9315fd7f6f1f49fdc28","_id":"@rest-hooks/normalizr@6.0.9","_nodeVersion":"14.8.0","_npmVersion":"lerna/4.0.0/node@v14.8.0+x64 (linux)","dist":{"integrity":"sha512-TFV8lEpktlevVqwvMOsIQ4EMbRseRjglJX8Sbq4UtYbBruH2OKmKQThYjDttOHZrTlH55sQ0qCtP/U2dCt9Tyg==","shasum":"95eb9733b296e9d25f2f5f60b07b0a0b70372e66","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.0.9.tgz","fileCount":65,"unpackedSize":488840,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdGd/CRA9TVsSAnZWagAAjjEP/RowbKFOkmuy0t2LNjg/\n4LKbBFsTCBIt9lWVwkKZQj61JHd/paY1f2X7J0PuF2JeThPjk+JPABEc0QG+\nyVkfQhJYZkNtFTy1SLCPTYhw5bDY4+59JQkYS7HhUC1/v9X82GempL+w8VKH\nnhON71oe2ziEQ2lDNKoTqL8gtuhN4UDEqMqAShyE8vFtc6DCoA0a950zKGDj\n8oFG/6EJ87Nlo5R931PMUYetcwsxw5hJekDf83q9gCZebhOrDPkL6ly6P8lT\neX3yGnJb4ls4ICWba2Xdc10F3pvNpuKkLaR6SNnBAFiciuKGarqEqvve0c5E\n25DbZda/US/35kZZf6kjY6ygBgK2lXG8osunq5vq+cjQhrt1YMMxpXaf5fBE\nm/71o4iu8YoJFCt4InvpaGQUki383f3pWHvFDb6MOdvecwHicPGKUPeYEoto\npxNs3jF74+18mOR+i4JMzUErbyTPzw3Zhf/um+LINBIt3FYdirsBxq4qWcP0\nUKHGFlnxG2oHIa5M+0St6VkGslPVUc7oL76CueI3SYOZAH5MPbpnX+AbM9xS\nMoStjlJ/Dpq6hRzK6dWeWR4mx2PJsZhTMCp9LyeKGa/LUlDW6rAoZyB2wTwf\nx+/XKqj7RcitRBIqd+BSgAkjLyJkUcYBRSIcwGa9L4zjfJETqhFUgWJbPAWi\nIduW\r\n=1uvS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/JwZze4qmLkWbQWQYQm/2JRyVs9GhMpZcpDgGAdSNJwIgF0bU2OO8DAcEsi7CFozVuztZpahmYBOJPR7PRP3nH38="}]},"_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/normalizr_6.0.9_1618241407060_0.08642118072763472"},"_hasShrinkwrap":false},"6.1.0":{"name":"@rest-hooks/normalizr","version":"6.1.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/__benchmarks__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib ts3.4 *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"c3f09abd47faaeee0616e8ba550c0b6f1a444ee4","_id":"@rest-hooks/normalizr@6.1.0","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-iuUwzo1/KnQIwiGf2j/M3SKg2pp0aX5JK2Z4En1+3Jw1zVu3Dl8ATX9nwB505FtkGXtWHxQ9Sh07ibZO9HI2yA==","shasum":"a54d37b43737e2b72a340f92dc70adbca382d39a","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.1.0.tgz","fileCount":65,"unpackedSize":497284,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghI4ZCRA9TVsSAnZWagAAkg0P/2fy9fSQ69XQu3RrWd0s\n1RPBPApxa0JnccOWr8BkX1ZiW8DTWQKDeJkEd80o8ZSNaQN6nDL3bjmxV07k\nhay1aEpjpSGzwKh+aKu0JkQtz2tW4OqOcSv2uZLGdD/3mUNKq3dNo0O+pc54\nXApUldRfjPTfE4n1YhA2vW1LN9RU3H5fQdwtmr0eNsMa2eqKokyNRwDBbOfn\nyBOt/8pVWcfGogbQysIVpbGQFIUh7dDc/UzvDbPROjqF7w5/+hYNZpynB9jJ\n6MynhOGwrlVjnmppDvjInAbLxBMWzcqSHwcbBAG5Q4L5Pb4efdi/ieAPo3fB\nJcCmh8PvHBBN6oJE64cIrzz/rQ3Ai9yHkfGZ4IjT8Z+JNM5JJq8V8s+7Y5EF\nzjxtVsdvX6E0WSRt/JzpXwmCuDtU8jql4rYQifEgpHOErAv3cvRfAhAO1Nvg\nISolAmjCRow7aBWjsmc5KRd7BXsrXpJWPlzvlv81q68UwBcA/d1k8Mz2dCDi\npRkMaQ5K/WxYWYAA0R54nwL7fn1p7VY495tMa5rls3J6rc6w4fucCwB37R9K\ntclAZ8MoxCz2oas+vG60RutoaBfxWlNVDP72n8s6hhUQWAFcNLg4TKQWgJaz\nNsnosmTsMNOjlfef9Y/mzST0tSashEjTEFJdu99TcbQKLP7hJKWUmwH8eewi\nZ/wV\r\n=4oQF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4AVkUIp4qXkhnecZTffdkJ/zEcY9I0TDsRr0oOgl0vQIgVNEdXQaIxafu28r6aTS+rjErD92BwvQtyCgKzySllzY="}]},"_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/normalizr_6.1.0_1619299865090_0.8901543244785031"},"_hasShrinkwrap":false},"6.1.1":{"name":"@rest-hooks/normalizr","version":"6.1.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/__benchmarks__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib ts3.4 *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"05cd4da122d9f77eb917fc06dcf6a82d39e13b6f","_id":"@rest-hooks/normalizr@6.1.1","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-SbX9/8sGfwoAK0tjr7EQmfuWiPT0hZjqChzp5+xxYj5MEqvtghuz2Zu6fEZGnxLkHeH4UUBWf29gkF06IPKLtg==","shasum":"c667e5e1323e641dd635c028f505678c52d4e42e","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-6.1.1.tgz","fileCount":65,"unpackedSize":502159,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghPiWCRA9TVsSAnZWagAAPCIQAJ6mLC6n0IhbJ1m3sF+E\nn+mvo596rFafOins7s6sx57ZVv0K68W+fiXTXl3GE3GWqAhxz+mdL3wNVsUv\nxQlMT0sehAYjJjojGoRH7qkKXCrNIH9jLOIsHE5oivoJepI8ZXndbTQ//clE\nl3k9cD0ceyBWvvQH82MvN+Lx1qM9ovexkVdasN6pReZgOpc6Rg/kANIiOzPA\nC8Uq/TIP2h620/ZlraaGr4bQCdBUPJT2yleCPiBCLfZrQz6oNsNradHhreC+\niHXOb4pYocxTclYPsXmMMk1ZKUH8vk+5KrcxeaGbjF+OUmyboBHrclZZXKhY\n1rqWSfQZsIwfD2CAWHXbSew3KUYQA0ZLOdjwZBHoaEkzrx87qYNA/Kold+PA\nLzixbnRnuvooQyDcbHfIkkWQEY2pNc1qzdV/gpbzdsC2ZYceOyxsa0q4LIJq\nKv7Nl70GvdHq4o1O2zS8tfmqHjGbzwjqZxIUmTo7SzV2VIe7rxNWze2iFxzH\njFSUTlKZzdbX4Ep8D5JgbaM3ZMSYZEcDLhwKAIMfm1ziyqqLJqdtcXs8a+zn\n6d0YHAS4+uBDr/pfQY6qJiAjG1HY335ODEakBB4NkOc0zamAXUpEOxNuR29e\nsvblzg44QmTZY3jf4KNvZXWVjEMaeh3TasjRmJeFnpj0BNqtsHBqVHU5QnmR\nO0qX\r\n=/BB5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICS91eEp+F4KOi5p5ZGm+PUmIfzHqOBM8CfJB4DdZbxSAiEAzn/eAQP1i9IbW4cZwyFoWCGsWb6bmHnxnUOk15Cy8BI="}]},"_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/normalizr_6.1.1_1619327126197_0.030792130489317282"},"_hasShrinkwrap":false},"7.0.0":{"name":"@rest-hooks/normalizr","version":"7.0.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/__benchmarks__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib ts3.4 *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"7ed918973d3410b7d21b32187049470d081816fb","_id":"@rest-hooks/normalizr@7.0.0","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-tLnDUzzj3wQpRML1n9OSVGL4qwUBsrp1klMc5PzL1Er73E3MWQb+eleZXCgO2pTWy4VqfnKnH0JU0if7p9T0pA==","shasum":"acc7c206c669fdaa174150cd545408281f887038","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-7.0.0.tgz","fileCount":65,"unpackedSize":505290,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgqycJCRA9TVsSAnZWagAAWJEP+gMFDaq445NjXEJ+kFQ0\n63C8hIh3DH/oSRWzdZVm5b9gBdC8WYs71lehSXyTV/jQTWkXBtVuZJc56do9\nFa5iPT3XDoYCdYOlG0aOHDeApOf/PRWeaofWCkcglO7lbu1H1gJvl3dfAyNk\nbhQ8hSM1FFFZZGdjbzaecaP0Ij2LMw9ynqYyUDsDJ1WdAz1lVQYD/a47+1lL\nBUCjJd7Yt7ekwP3Jks+6Lc4G1gy9MHgi63qsUWG6jzgp8DOy68PeYbvpWn3P\nFdnl97vrpglCnzm+Y4MqyUfAFwNdkBmSQA+cRsunGOSLBA03Fl+qYaDVpzph\nY1S/Gh1S0++QR2OIMS+4qAoqM/kNmISzszEx1IzOD1PWJ3tQWdhofChWnWzp\nhNaLIboUqXWzrSBQ5lzEwVl/2Y6Al+s9q/9Dn3qwtf5S0XHOr6ZJ8oneRCRe\nygpvmLZeA3EQFRiSkUipyNSAUIYiO+Eo3tBsIXcSWOZjDYxkf+4xZMTp8aTo\nkkZjlacU9qr0pKQmeUzoGGYk6+CV9XCVRdBQOef6AXVPkprVamfA72FUTwV+\nminNWa8VTp9Wp/mDgXfWofAqnonxJJq8Fr3+HVRHYyrmJxEKSoud4rUBIsmN\n512wIfhzqgSIjTH34NhRtfIjxCfhRDp4bEi8MEIDJotuwq96nUQ9dZ6IATd/\nDRP7\r\n=QcDh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEnkGN/DN4hOTAXmxWfaDwS8D3/oT0B0HeExGTz8zCxRAiEAx0Uav+a5aowzP2yuffowOquMoXATcvrq7++ujeHozCI="}]},"_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/normalizr_7.0.0_1621829384677_0.7194403908929383"},"_hasShrinkwrap":false},"7.0.1":{"name":"@rest-hooks/normalizr","version":"7.0.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/__benchmarks__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib ts3.4 *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"8f08fbe6f2fdaae40dc63c3d13081a1d2b3c97f5","_id":"@rest-hooks/normalizr@7.0.1","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-SKh3WRrmrn7ZJemaxdNdb0gW63WozsH1PFiQLioBFW65OcDsO7U50atLyFkCJP4bwFwZORgJmjF+HIEfN8k2Hg==","shasum":"09e46a47cf270035ff2e3fa67c8b2e047e825323","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-7.0.1.tgz","fileCount":65,"unpackedSize":505489,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrAnYCRA9TVsSAnZWagAA8U8P/1bbdo/I/JXW16y1bFBW\nMJnFpqHtHy5EAB7PvKmFTGi0rAqKb7x40Zi2Y6rJaggXkpktgHGQenBAw2ZV\nYwlp+xplFWAFwtYgZ7nRj+Y90g84xIMsLEOkouGD++yg80ivBSagKuwQyLqg\ngg/MPO/hGWsjbXuZJhwRIteiTKpt+T6y61pOwaKTQsF3ojz59K1kexWQK06H\nfZ5C6s/1mT+k16ZtzpkGSj1EWq+FhrxuTEKat0912zcLA2FYMGTzegLKMKCm\nMuIrOobIVQtt3/805uG2Vihz8iDtCNUQgxi8C7qmdnxFx2zGnRk9ldCZANib\nfSsKJEMmiQsv8vgBHEeFU4jWZHlXCF76zq5fakIYAZAuT76m7ZOzbtP7GVvc\nPe4+oR9jF9VcOq+tPyAZ+zNGt8nYSH1210vqn3h1+6kRbm4Riu5M+Gewz2/q\nJIeLHu2bXiMfPGcC2sAtLcppRSiH87bp5/dTIe0RC/hxKVrTIpdvyYhimyla\nbwc8i2jlucQwVJQT1NdrsVRAbBKStEKLDuwTGhNUHDHDOs23H7LcS6CfbRQm\nJaTri7VBvvnlGDpn7UkpTZlRWvYy1BEgD1jS8Oy5m/jbDYIRDRIMLXkq6VWP\n5syWmNtUEUXjBLTso0vKVxu7hjv4LiAZZjhsK+xpVn8T1RyIoZsQ0LreSdVJ\n0wa4\r\n=INsI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDP1Ggo0MYIaDzkG2a/iv88Da59c5QUTGriZQB1ZlaGfAiEA6JpMpdn690se6J5aIeSqKpabxKsXH6AOxKHRXqQsmZU="}]},"_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/normalizr_7.0.1_1621887447650_0.8797923825649561"},"_hasShrinkwrap":false},"7.0.2":{"name":"@rest-hooks/normalizr","version":"7.0.2","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/__benchmarks__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib ts3.4 *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"ff04c3ba45467581005e7492640d389f86b9cce1","_id":"@rest-hooks/normalizr@7.0.2","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-uW1/efytncdZYzDyDTQqEiavLBVCoiraS4T2qwTks99+C9E39or1hA1PcZisjGG0Xska7ObP9IaqdevUPqvHbQ==","shasum":"da42cb1abea713462b35e6a9b1e1ff4bf97f6647","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-7.0.2.tgz","fileCount":65,"unpackedSize":505920,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgsyPhCRA9TVsSAnZWagAAfw4P/ArktQ5fvpPAKJcPwuEX\nVgpsnLMrnpaX6ekYonvRGyR4PmmZIDVkLVX9Ngf8VJ0+XRSpSWKPLyA2Yazu\n9cRL0Er5z5R60c6kgBXLC4SbOy/IpAr9h2VgwquwP7A2JlmBoAXEkUcXCStD\nSau/yUte3VJAyE1iDlrcGCL9yfK1iOS4Aq3BKm9nyIp9/ZrM5/cR/Hjn77NE\nKXjkoRNkxFO9sqIthACa5cuSQl3ch2dqTFC5flNV8fkT6tE5wSLbEFulMEJw\nCkYT9kiU3XxJjKudn/RBuRkkDm/6974h4AKkuwpP68rlEmKrqRrT3bAlCAwM\n1Fpaqubxn2g+PCaIb7pruc6RFtJ74oePGzZCqjNFSxrJarPVFANa55HmlpGH\nHJe0gR6r5qzvanu5BNXWbdDjGKLkpSMjrX4qdm1SbxWS05919xdVCTadx9/V\nB+GJE4Iw2An5HBrF5foKbWNKbZ2H/0c8lPr/TTDtsBjHKz62272CEhz2jmqz\nGxta+fo44mkL2pKLpy1ZwpdyNPPLB0MyfBytV8hUNfOkAChlip+2B94DsXEb\nWgZq7V8pdda7k4Zdij2VP+stG3clHEP045+Mxa7bynYPwMtQPHXSZ7eyMLU7\n8J3mDVAOHkUJIancjnX6MKA+1TwDzETNJrcDsU2eRBUhT99f4vYRbLNgEvPW\nOYeH\r\n=Sry1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFbtPSjkHTcliGaDSbU+7lan3owUnmCpnq5sneANkbmQIhAIShorjQdvQkgFczzLdzWBBD0YuuZhvs158oSpu23n2/"}]},"_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/normalizr_7.0.2_1622352864447_0.9405406468689759"},"_hasShrinkwrap":false},"7.0.3":{"name":"@rest-hooks/normalizr","version":"7.0.3","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"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"]}},"sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/__benchmarks__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib ts3.4 *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"9e0ffe178c28280cf1fbfece3db6eb75d528d0cd","_id":"@rest-hooks/normalizr@7.0.3","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-RL9DHiHGmBogZ4oUyuE97jvkl09BNPZLi8C9bbf0AUK2/85NVdxCnQI9GYIIUCAtxGSR5SoIQ8cbsWGf1sZYJg==","shasum":"dced7fa2eb74ce5060027a01a3630a8027e2ce02","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-7.0.3.tgz","fileCount":65,"unpackedSize":508217,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguBX3CRA9TVsSAnZWagAAdfEQAJ9DIeth9ADTh/UtJuZA\nGhVKLwJCTSb3cpjhaWlQnwnHAK1wK+F0NC8meoC4uoPWMJp0XM+VlltppRk1\nTtBoueA8hSoeY2ShZprKXaDAxW8iXo0u8EqhK1696GQdrqZR51GLn5ZEUw3x\nElKEH83NAINE39rY1wYN2ynHSVS4OtqEqwGsj7oGEjxf8hE7EDPUjN/jM/r2\npWeDp1lj3pOhJgmbhjdV9l4JFhuWN2Wi97tmgsG5RoTG96ZwNvwP4ACkJiGb\ngOPuRneyaCzOl2L1GwcPghfWgh4CJiHF6+B3r6OygsSrpgWNhkymQ9IAzyHR\nsFoMbs0J23UEuQr9VYCmQfTTQVStAT1rVoOuoPZ8YKQjjJnGNaSsNYdU27b2\nH9XgEP4MiHWBQHT2louRzUYxXYvYhlC064VjUzcAgqbTDB+TCy0agmRJ3e0g\nQzvKVqfScaOAENeadR7SH1e+0MMBY61/lxUGivipK4pTCXJk9ah3UWRtMrgz\nItg+3G2CpnjM9re6h8dZ+C6bccWshsRS9Nqqr1c7Rf6BSEobe7aM9qTTXH/8\nnlLHzxIg+8USr8D9W8x9S/qojWVYm2KOenTS9y2k1SdBrB1YoAV3gvWJnxP8\noj4pKPd7dGI5EQ2Es1I5VbukdKQiNf8BrccI04BgaV6F/5/9W5rZ0xp6hPrc\n9ZfA\r\n=hpBO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBCzMraiQy3fyBOF8EZti/SlzsbWJvEFTaL+Th71bwwHAiBU2YmIHw1v1UDxmhO5Pvn2srsDkMimyKLR1kKjR+Meaw=="}]},"_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/normalizr_7.0.3_1622676983845_0.8510392405444074"},"_hasShrinkwrap":false},"7.1.0":{"name":"@rest-hooks/normalizr","version":"7.1.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"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"]}},"sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production  BROWSERSLIST_ENV=2019 ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/__benchmarks__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib ts3.4 *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"6316c051a883ff5670fd90f3f5185f04b9a7889c","_id":"@rest-hooks/normalizr@7.1.0","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-4rx9SSkpV0htF6cYiRuO0iNaUJsSBH0E49APRYqVE4EJmiFoogNiD7lNe/li/jA6HGSyTj/YP00flmdUmx9Gow==","shasum":"4b8c9ef5025c38b62af4452e1eb60135d18cd498","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-7.1.0.tgz","fileCount":69,"unpackedSize":537390,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwSt0CRA9TVsSAnZWagAAfBsQAIBDtUYCjnpgPbRf8OFf\nXaxPPukyeNAxN5G3TAtfrxhPSjud7Rbc+4fDJJWhQ0hyZkIGY/z7A2TSb7gC\neMtzwvpfh6F6QpdqoQHtLQkZQrlV7jA2pjEGRga6gq2gE8DfZzK3TmY/VbDh\nA9Tnfda0sWLiaShHs8MNw5H5PzW62EMc03GIYnH0PgZtugVL9zmkWcIy5gFh\naflVwfEnUorVZ4YReG/1/HnnsAIimFhTWXloPkrcgAaXXsiwfPUSNjYfPoMu\nd/LAmgnfaEJE4upjdahjivKZLQ4ruSFCDi6ZZ6HZGddO2ySi5im/+Ro0UgfO\nitsXnn7DLCKRTVCwdshzTtlkQ7XskenAWvkowf4t4esnDeDirshQLP/+b7+/\neXW1Kq0ySJghA/Kf4PSTYO3oEVYtAG1k1FVjRcPjrJVNEbrU+gxB038lCrSq\nHJV9WB3pu1aLJOkKE0T7HNCcjBfwWFYLl3tTDnbJRMNKt3epyXjzaSyehehe\n4mve24Atq7uvHzqWeGAZwarBK0k1YbEOyKQBuCpofzl4nNjRzGlMZogqNSoK\nJ9de25vjzYPUccZXssBuz8We4S2n1xFguCRQqU9Rnt+eDFNEQDVf6dKchs1m\nuanBn2P8x71kx+eouFP74aiALDGAmSv5EbMOX7qaMW4+A6NcFCpPOtGW893r\nLqzL\r\n=fkES\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDvss5x+lWpcMCsecU2FOW64jR+bQLBO2l2mRx+drKyCAiEApHOgQvKfJzcFZITl2p4yf4hyRqpvfnnRbeesr/pFzmw="}]},"_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/normalizr_7.1.0_1623272308021_0.795049206315732"},"_hasShrinkwrap":false},"7.2.0":{"name":"@rest-hooks/normalizr","version":"7.2.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"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"]}},"sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production  BROWSERSLIST_ENV=2019 ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/__benchmarks__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib ts3.4 *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"18225300621058e9e692c480e31b7da7423ea8e5","_id":"@rest-hooks/normalizr@7.2.0","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-bv7EEgEzrsI4HGzPETsezLCPz3H+TDqVu9o903HLjFMfntYKPjEYcN3/76IwuwIW4xuvxDCZ+u+IxfHeZAAjcA==","shasum":"b6da3b2883894451610ba0d18adc0db8776d6639","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-7.2.0.tgz","fileCount":69,"unpackedSize":557609,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgxVqnCRA9TVsSAnZWagAAlJUP/1mO4lL5GLa1CYTnkTcN\nhjsOpbYlUqdn5iLlES8FJgHXGOseevAklYkrr5NjIJCAJ80w1CovEu5UXTpW\ntoPnann9xG2PGg/mp+pEhPlBXzNYLRQHHmn2cQvIqwjAMXvV00CwJFVgbya8\ng398xaWH7D9O1LiNijYOxJW2f+MR7bfVt3iGzZwuOG7V0hggIfAW082aIXVw\ndM2faYF52DNVQTy+Ew8P2G9SyFTqEKnbFX4hRHZYhcfmRse3OEYdRW7NBRaU\nuZuCt8GejNWTCz/HzGROPKQVTJw0b/80j1HNpcV+ug8ndKChg/7PwWzWyQgv\nel8Jq/BRG08r9sIGheRyEz8Ob5jGjh/2MywDcEnQKkBsdSevnV1RLF6NFj7X\nFAUZaKWAOzk2Lo5GYyTk3uPf+xhT3KBR93L2cSdg3+6N5isbLw5OsB7MpkNt\nuvN3+toBHqnQ1b3NWzt1xhJptW4FZ6WEe0rUkte5nHQoPfW1JV2WHVzPCpvU\nlXFEBgdtZ7wydHcZUdhTdkwccx0Q2DuAo+c1OO+0qqXTp9Dj32Jz2TzpUgH8\njmnINHtNnrrKzC3UtixLBQj+S/RSvCWCYfZQwuZ8j3Rceen4Wbqt4g4IsyT5\nW7nyCGkQ2ARMZ9stNcLDk7NVAvo63zABxvfCBbu6Y+IswqAN3Rw0zLhVFDLX\npt2m\r\n=vS04\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCQQNSITAYt/YqOXzAE0Zs8uFRLRcBGAyyywCiwXxxG6gIgCopHzBEQdggYAyY+ZN0zVL2ouHtf1UxbSslGSccz0FA="}]},"_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/normalizr_7.2.0_1623546535647_0.2589986752565252"},"_hasShrinkwrap":false},"7.3.0":{"name":"@rest-hooks/normalizr","version":"7.3.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"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"]}},"sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production  BROWSERSLIST_ENV=2019 ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/__benchmarks__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib ts3.4 *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"ed74cd84ffa8883cc87230da2f6a7afb6875115d","_id":"@rest-hooks/normalizr@7.3.0","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-ED/gKEdkzPfgc1gA0BNbVie2gLGOYb0wyTdGAJRFgN+lvFd5CzpXVyV7dn6fALWd4aRMGP7JyfLf5sai83Qt9Q==","shasum":"c1c1ca597b7871a3d99b97b0c0230918dcb1cdb4","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-7.3.0.tgz","fileCount":69,"unpackedSize":560951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgyWLGCRA9TVsSAnZWagAAzPEP/1cpLsL0FyrJc/M6H1b1\nmFYGI3T6NT0zvIOKqrEM3nFWiZptwAg9Auj7WxBqrha+G3xKuHQ9GfXkNYJl\nhGAOxgt6Tq5eyCh1Y7DGzO+Co/rkWao8hg2r7z6H1C1jBQ1Ubw3O9/nDALVA\nOMqUT5zqBN7wI8bHowzzriLo9PF4ttnuAZ59+7V34l50JgW/iiCE88C0O08o\nbLP2w3UPPyKYRk1wKXhu3/Uhy4D25t6fkqc2BosRAq6aeykPmMPxus7mjYfC\nwGBcFegy1GV/hAZSmVO0ODNLnJjsjbzk0BMwr4whqX6wE1kE4JQjEyQEmB95\ncRhwIovpab2op59yIrBJxq9GH6dbvTEom31h+Ukw36jpqjlrjpKj5qPVGUOt\n9hdDAGKCV4GMXhUP0nYNyKh4KIiFieyj1v4fnT+zMaCmlhsD6nFvTenNdC4t\nxzQ7stLnrNLTxzlQrHtOVCKOSx2t5tkjlg1jUn7OnoOjjREXmNaokyOz8iUL\nVd2kz409v9QZPJIjRd0gTjiZwLddJsMz8fdOS0WlE0GAAKjMiTrHm3P0N4wS\n66fqCNNvhogIvGHO0O2n2G0rRcZTwPoNfOLFaAyRVn02dnjoDfRW4lB2wsKi\nVOv6Kdu7FvkAhCCrmUEmdLBWveBCEza7/ZmmJ2ImFOdlG5thqVy2wm0OQ23T\nYPV2\r\n=4h21\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICH8omTO6PcAuWka+q2CfoIXHo+MFYb5TJk7Jz7cY9igAiEA6d2uE2aIxt2nbPJerzaPvJQifiADN2M2E3SS4PG2Trw="}]},"_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/normalizr_7.3.0_1623810758281_0.6056858476487641"},"_hasShrinkwrap":false},"7.4.0":{"name":"@rest-hooks/normalizr","version":"7.4.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"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"]}},"sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production  BROWSERSLIST_ENV=2019 ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/__benchmarks__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib ts3.4 *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"36abc2165ec756e3ae9d3796eae004686af708e0","_id":"@rest-hooks/normalizr@7.4.0","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-6Ue3qC10JjKCMeGT7iWm997FkoEpGLkJ0A2fe4WPSxAsPNjUXdM+ljty49SsMZnH3kKqK2N3foCcfP3AZ6Yv8w==","shasum":"07ca9583194d687f3381408929929416b5ebf342","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-7.4.0.tgz","fileCount":69,"unpackedSize":564208,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgzjigCRA9TVsSAnZWagAA4McP/R1b0DoFhEXIHvXsY6rj\n+YDPU0G/WI0XdbBeyyuNov5JsKQ5Ie/Mel+tYQJzhVquXpDG4T4olQLWZWuU\nZM84nxtvRzATx8N74GlIsRJfvpnjv34vmvnABcOBxDmCGmFDRI5b1w+T7RKn\noACLjHwUilnM/FKo0HRZ4k7I3ivyF1p/60eRByNXrXwowi8PstR49ixMr31L\nqaEIl5BPKCc+m/EbrK64k3mbAiWBVcUAyGrR7E4+jXBh8ZwjsejorodhWbf+\n5nZFwhD8LUyXlMzwepVWohXqizSVVdBQl5LsCBNCra/jTrv3fnjoTp7+HII3\nsAHXMeTWWmro+xqfnCQhkbvBdERLTpQuhhLvQ2JbLr2L9ASz77QbaxizkV7u\n3a/LmUZkGr6HM+9pNThxPvE0Bj4No/rVljgjEV0A7aVl4p/OpjFJQQWnCChP\nXqyHBlYyTZCTYUK3H/0vv3kLAPNsEHYvj4ucNKH8qx8kszGod2xWaQuNWe6+\n/nqiht9Xrv5e9WHKHZr9zRhrZNtzWgwtr5DudUfXLCEol9Mm2B2QnReCnizt\nhPLEibzgSBsCQe+V+xpm3J1kLHzLxmmE6KjkUSUtN15+gSO1C1DWxx5ez2N4\npyhzTRX+IyU80HFlmmQetJ+JgJig6IpuulIwqLe6xB+zyVsypdG5YJUoi4GD\nn3zF\r\n=wVs0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFGkDL0/mUdNV6OjA9A8IBSpcaIxPq0O7rTuiOjXNlnXAiAftJONQ6GuL7wm+wDQa8bwFTsLpouqTeNhIOTSWO666g=="}]},"_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/normalizr_7.4.0_1624127647437_0.6731839729407996"},"_hasShrinkwrap":false},"8.0.0-beta.0":{"name":"@rest-hooks/normalizr","version":"8.0.0-beta.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"cross-env BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/normalizr(.+)$\":\"./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/normalizr(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"2dba027e192dc7cf2f4cdf66b946a9b10fe07120","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](./docs/introduction.md)\n  * [Build Files](./docs/introduction.md#build-files)\n* [Quick Start](https://resthooks.io/docs/api/schema)\n* [API](https://resthooks.io/docs/api/Entity)\n  * [normalize](./docs/api.md#normalizedata-schema)\n  * [denormalize](./docs/api.md#denormalizeinput-schema-entities)\n  * [schema](https://resthooks.io/docs/api/schema)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/normalizr-github)\n* [Relational Data](/examples/normalizr-relationships)\n* [Interactive Redux](/examples/normalizr-redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema, Entity } from '@rest-hooks/normalizr';\n\n// Define a users schema\nclass User extends Entity {\n  pk() { return this.id }\n}\n\n// Define your comments schema\nclass Comment extends Entity {\n  pk() { return this.id }\n\n  static schema = {\n    commenter: User,\n  }\n}\n\n// Define your article\nclass Article extends Entity {\n  pk() { return this.id }\n\n  static schema = {\n  author: User,\n  comments: [Comment]\n  }\n}\n\nconst normalizedData = normalize(originalData, Article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"Article\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"User\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"Comment\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@8.0.0-beta.0","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-5wLa2W2CWL+hHlusyXTF2QMBjReaSnfhYKiG2eycN2EXULBft2EBfQM5b+NPowUdpjRwkHMlKvcTCdkv9U+Rsw==","shasum":"d9df68b8ece7cf2fe6d2f0a9bd567367f2409ef6","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.0.0-beta.0.tgz","fileCount":89,"unpackedSize":637260,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3JnKCRA9TVsSAnZWagAA6y8P/0Zn7hpZqcFlpIybcq/Q\nScqdjuwp/YmX7cGVVS+UXpE3JSaUdZR+8ZhpQKpv4tdSnaT//up+9tBSNP/F\nqRZyICsuEBbgF4kpC8YR81WLa5hth/Id3dkO/LqyWe5iqe6krTNW07XFv+x5\nz5jrLb2PVb58XBmkzOxJ1B2EeHgywEKkn2wD45wZoLDum/uYv+sq7V20TE29\nTiN08YjJ/0NMtXSzY1BuwcHyGldbAtUYHdOlovSFE9oX1hZA7W7NKKPdQ79v\naApL7LKUOiLH3oyBYf+XHX6qZujuOcZIB6D5bkRuLOL34Z67qcVeyD+zkFOX\nljzo4WOjcWshR0cLfc8ZVhvSkvVN1647lTCll9IEpI2cDVOT6hE+Ms7rP0CZ\nuj3MSrrDpxSMiWzgBAvhicZIcaKGCadujPbJ5c5kRELzT/OwY6jHnnmX7c36\n0QbCxbPbU9iouL0R5F2lkCdkc6ZsX42D8Dj/sPichaHQOSJLAR1O5JiBDCjd\nGint2k8hpckoj8WyExYdPcPTVM2HciJ+95gBrHaSki4YOG3UKHOM8ggtga+P\nKVdz0BaRkcWX2CB3316MpaurqYxmkl69LHuu1xhGx/PSpv0KWpNnkwaTJF3Q\nSQUbMccoBq6KCnpLeqvekuy8L0wM6slJ2v36bVFmRANIQHsC1qryEmcPn2WS\ng14b\r\n=YEVY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFeB79AYkniZKyt+26tIE5+96ImyzRbfyN2X3qh+CCrEAiEApkgSidvCLUS4rAGwBa+pGZbRfFg3R4aXX0uXcsMQq0M="}]},"_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/normalizr_8.0.0-beta.0_1625070025922_0.6826191885030735"},"_hasShrinkwrap":false},"7.5.0":{"name":"@rest-hooks/normalizr","version":"7.5.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"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"]}},"sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production  BROWSERSLIST_ENV=2019 ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/__benchmarks__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib ts3.4 *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"3381921609330c7fcd311e4543f3e1e45b40bf69","_id":"@rest-hooks/normalizr@7.5.0","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-V0DQ+GlU7HKQCvtc3GXkTyZGJYu0jYxT2KG4MPZauhnFSmNBqHBJalVJzR8O22jjTCHPI41QHRqYKyeTfuNl0A==","shasum":"24acb25c31343a49f943537dec17244405a8c40f","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-7.5.0.tgz","fileCount":69,"unpackedSize":565112,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5M+ACRA9TVsSAnZWagAAuaEP/0DxpsvXhUAi6FM4s+LF\nj/uetGOtaAzR2uprhCKVp4CW38dvOPiZzG/1W/UzWqOSsDfO0M/4bqF7lSOk\n3qgiLP5kA/TUdT78t7oolj6DJ+nwBWyTHS16/5/8alfantAO88/Sd0lZmBkQ\nDgB+vxeRO79eSVvD0eK0fRAqNH1U09CMWDCJkwHTt9B51LGG9P6enJrEYXh/\nh4wCjZRTwTCd9ftv0YkBHi+/4L+gNTS8HXSSWn2rl0pUZ9eFsUmdLICzypLi\nSqOGogH2T3vwNOmeakaG71g/KFv07dqNt3pp8noZcrPS897akwzkemX0ztYn\n5B3/0K/z5Nne3CF61b69lbazM4LiVQdKAWnJJWa0S7wieTzudu/lvG2L3V3/\nq++tsryncBVApUMOQdlUauBlrJOYPhgiXA0uQaBVlKWuIjZkApcrWKy72D8n\n5FofGVdm9VJnk9ihKcUZw3JkjLodiEGmJJWdwiHBfbUw5OgAuUeDWwaykkB8\nPcLGciAA6BCPDHntULTKxIwqby16SlgFWA34dxzZRSsSCpndBO5Pd5pKXjQl\nbAUdT62bsf76jSKnwFtRSHndTjK8uM+nm0qjpOGj9sNoJViT81hRKlX1rXeZ\n+8M76e/PByug8QA9Y2vB6ST8qujHm+3ICe5/RDF60wCJQwCeuBn4eHRMEYm1\nzRDT\r\n=EUAv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDh1Cj8gQ8yJV8Yj+k6XlF0mUUHmpmjhRpKYI7E0dydBAiEA3o6Q+Ig6IIO9t1EVk+GUy41Tl3WkW3nj5/RG+dN2X6E="}]},"_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/normalizr_7.5.0_1625608064321_0.7892988139407877"},"_hasShrinkwrap":false},"8.0.0-beta.1":{"name":"@rest-hooks/normalizr","version":"8.0.0-beta.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"cross-env BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/normalizr(.+)$\":\"./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/normalizr(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"9c80a807b801979626374b879f5a06bd3545a8ec","readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](./docs/introduction.md)\n  * [Build Files](./docs/introduction.md#build-files)\n* [Quick Start](https://resthooks.io/docs/api/schema)\n* [API](https://resthooks.io/docs/api/Entity)\n  * [normalize](./docs/api.md#normalizedata-schema)\n  * [denormalize](./docs/api.md#denormalizeinput-schema-entities)\n  * [schema](https://resthooks.io/docs/api/schema)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/normalizr-github)\n* [Relational Data](/examples/normalizr-relationships)\n* [Interactive Redux](/examples/normalizr-redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema, Entity } from '@rest-hooks/normalizr';\n\n// Define a users schema\nclass User extends Entity {\n  pk() { return this.id }\n}\n\n// Define your comments schema\nclass Comment extends Entity {\n  pk() { return this.id }\n\n  static schema = {\n    commenter: User,\n  }\n}\n\n// Define your article\nclass Article extends Entity {\n  pk() { return this.id }\n\n  static schema = {\n  author: User,\n  comments: [Comment]\n  }\n}\n\nconst normalizedData = normalize(originalData, Article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"Article\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"User\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"Comment\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@8.0.0-beta.1","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-L+F9iQZJtapVBVmuzA5RskGtGpJcEBV1KyHYKTQU76sYO/4dRaePyDGuwath1c5f6knAo6Jas6E4WiC9b4hpBA==","shasum":"e8a4f6eaf2c8dcf68030da250076a7c7d74e74b1","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.0.0-beta.1.tgz","fileCount":89,"unpackedSize":640716,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg6+onCRA9TVsSAnZWagAAE2EP/0o9LkFE3quY1ioolU1C\nnfec1oblmZhNz2I06v2Ix0/evE7mCekBlCzJeGsgLFRFTQXrn+X2z0mm6FLs\nMf0I1e9NovLtYtJPapBUb9oMg5SCuUHrbmtDu570GdaVYFwpogsevUuwJbYj\nWxBV6Ivan9i5a4rP5KnX0v4GUOLjk600hSAc7Fy8Aoq5gKbWOSpQLlPRFO5C\nTAqthP0cP5WK5IGL4AA+WKsrnjdD1fYN2JrjK6mA0Netpxl15DrX1QdNKqYn\nZx3mGpZGFmSG03kMNl9jsg8FkMXWIwX6hIpuokNActqK/sp8sWU2hK4t0JDJ\nZYZ+HsA8RyYGGeP5ZZzxw369VqLFm1yVK3k9LvtqYPLboUoqQPIoJvAQZSPa\nGhwXdzQsh2QiZ1PiBxl2qYidCfyG5trTsmS8xs/0zMHXf+A47mm9q4TrmUVz\nu8CWridKqaFakbFzKH7oWaQBgYMmddQZOmh67l3fkweRSVBhA4EuZKfUhFJ9\njuGtfeXb4oZwrYnRoRAZ0wJgcWuFrM9+RVmcjOez8929u6Inf2bj9oRUSXqB\nsxr4mteXjC4Vnr9dvWOsQdQQo0OkkbSIkhnLvHXXOoiHvn+sYyX8/e8F481/\nTcrqWx2RzNaSMhhZSkx3ryL3HUOlGTQ0env0VdKhQ/IwEMxhEu0dtmEKr/xg\nYnLh\r\n=ge9F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF0HulQQfxHfUPSxa4e3CZ6UPKA2Xsi5pyS3l8R2J1QaAiBDH9o0/NRxDBkQAV4r1Y/n4KvTvUmx8OUYvj69MesyEw=="}]},"_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/normalizr_8.0.0-beta.1_1626073638615_0.9811645713971864"},"_hasShrinkwrap":false},"8.0.0-beta.2":{"name":"@rest-hooks/normalizr","version":"8.0.0-beta.2","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"cross-env BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/normalizr(.+)$\":\"./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/normalizr(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"readme":"# normalizr\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks) [![Coverage Status](https://img.shields.io/coveralls/ntucker/normalizr/master.svg?style=flat-square)](https://coveralls.io/github/ntucker/normalizr?branch=master) [![npm version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](./docs/introduction.md)\n  * [Build Files](./docs/introduction.md#build-files)\n* [Quick Start](https://resthooks.io/docs/api/schema)\n* [API](https://resthooks.io/docs/api/Entity)\n  * [normalize](./docs/api.md#normalizedata-schema)\n  * [denormalize](./docs/api.md#denormalizeinput-schema-entities)\n  * [schema](https://resthooks.io/docs/api/schema)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/normalizr-github)\n* [Relational Data](/examples/normalizr-relationships)\n* [Interactive Redux](/examples/normalizr-redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema, Entity } from '@rest-hooks/normalizr';\n\n// Define a users schema\nclass User extends Entity {\n  pk() { return this.id }\n}\n\n// Define your comments schema\nclass Comment extends Entity {\n  pk() { return this.id }\n\n  static schema = {\n    commenter: User,\n  }\n}\n\n// Define your article\nclass Article extends Entity {\n  pk() { return this.id }\n\n  static schema = {\n  author: User,\n  comments: [Comment]\n  }\n}\n\nconst normalizedData = normalize(originalData, Article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"Article\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"User\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"Comment\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@8.0.0-beta.2","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-YYVwWRUIUc85ME5uUfTWuWaWRB69UrAFHQd4Xwyph6GCkYwUE1ZIr1PeQZl8HIn1fgwLbeVBFCPLvUbSuloWaw==","shasum":"2ac065339777ab6944b167988e58a6025fb26cac","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.0.0-beta.2.tgz","fileCount":89,"unpackedSize":643155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhNXAUCRA9TVsSAnZWagAAYvcP/3wehEsfPY3/Ko9l5yqE\nQ9+cFiXTJ+sd6vlsfIHKSsyOVlCNBMf3eyXpOavXCnY5X7zDUDHUgTIVOJAK\nB8SPDHNh7MU89QE/9qd34stkIyVffcqx8dfVtraxUpV1bl4nbpzL9cixKIu5\nSEibBMOJNNMUs6CO+/VIxmdFamplEsYyPj/l3hJKIJECZoWU6Mkl/545PT6t\nINQVYbcLRPnvQ643OugljEbOI5iRwBaZ4i54fM+9V0ktAwnAorwwooN4+HLQ\n8Vs4pjE6s8zc56wX3LkWXqQTGer9SC6roktbAnC7f/1q3jvmob81KH9Xr79I\nG789pNalBVeFJLo+Q2x2LxU3Qr3B74x438A+tGYOfQvKuSgia9QPstv298KJ\nvQ7nR2gqg+3qkNqhbtZN3XaB1JkC0THXaKtQGPKD0s1bSEM8from7n9zj5a5\n4dxAUqPi0GNE6tDo+WYqdJokoO/IKDHUH9QYz9C3I5tt2T0zZOiR3S/B8kKL\ntXjCNvi7Zlu4Zphe/roDGMMsPNpqQKBmAb4ykTIRMkAJOyIBBBqr9rjY0AQM\n5h3mDj0S9L21zLGMMuuTb+Nc9/+VYAgn6f+SW9Fk2QNEwWVXl+Y/fJbLCgrp\nIPl1RjcDn+sTv32vKbt9F/uZ5jgOP+y/u1+5s8Pp9C3MdIxW1UK1iZ6P6lY2\ng2S7\r\n=oWw/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGYjc8R+qIlXFlCVyPBzb7DOfFHt3NBax3bJqGNNB5L7AiEA9QvF3GOoBB7QLNMM8J1J7OFKbXd/b2t1uARoL5K4YqU="}]},"_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/normalizr_8.0.0-beta.2_1630892052097_0.36374131801804066"},"_hasShrinkwrap":false},"7.5.1":{"name":"@rest-hooks/normalizr","version":"7.5.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"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"]}},"sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production  BROWSERSLIST_ENV=2019 ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/__benchmarks__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib ts3.4 *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"0a735a3a198039145cfd5244319c0e228610100b","_id":"@rest-hooks/normalizr@7.5.1","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-2CtBdaT0jWmGU0FQaocoAKC9dtTpxLrjbmXSY4J+yz8/Vm9jamptNXX+nCVfOK2ikrlUCsyHPV2WwHDyYOm25Q==","shasum":"e627828b57bf57b9b5b96b84e04a587725b3a522","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-7.5.1.tgz","fileCount":77,"unpackedSize":592074,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhODSMCRA9TVsSAnZWagAAZS8P/A4XyL5ZXNJAXhdSn874\nAOKeWHpCEFp9wmkgQc89QtEg6gPyf7DxWpULwdnHkllsACq+bD+176+sQzuG\ndYRQFZ21BGzvBVRztRpqT1rTHhwavFYC/G+bnw6MaS/JMjz8SMJN8qZzeUpi\nEa5RAcFdO15ohTf1IikLLVjiDzrlaeDav4hcnjRerw4YmZazkkI2r9j0cLPV\nchGVS5wpVTlXCCCFRSQhgIhaX6PD6DPIkocLM54WZzP3mzmOFSAIQ8a+6uox\nXilq446329NcumT6udmzb/Jc9Dc/tD4/41PmpGezamVir5aUCv6VBiDs5Obd\nRLIQ8xc5vR4ssYgORcZpOatau4HX+JHP3/dE+RzupYkzmiKlR9CaMtcrhxT8\nkaYtl3BjFA/hcB4yAg7oJqczFdH25ocOocKhkUf1coiIf7qq16LDiy+b2Jvb\n4hnX3edKnqlpX5x2BDAhEaSP+Bq8y73PbdOn25r0reHj70MV/Q0RsU1VX1ws\nupllMD3nvwr819njVgEwTHV65R5tvA2nx2Xi4RLPo5Lt9AuGOyoo9MEwgskS\nLVD3GpVviWdmJvkAoA3+/OEkf8/AR5XeAkkcNoUxXn2QE/h2z4Tn4yfC2ZpH\n8Cyt3iJ9FUjd9895qqDpPVtuRm+OejxoSAT44iZ7gBMV1pIH5pkvvDpVutpw\nAH29\r\n=i3tY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3Z3cZ0NnCeHM5xI1CRaL4AZ6ARQoKO1I3yEdYs03tcAIgMUGO1xkRhxxQg0mNPrTHHybOEACaJZZcigRXkeD0DAA="}]},"_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/normalizr_7.5.1_1631073420751_0.1561468909256909"},"_hasShrinkwrap":false},"8.0.0":{"name":"@rest-hooks/normalizr","version":"8.0.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"cross-env BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/normalizr(.+)$\":\"./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/normalizr(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"3d347e568f1828e7795de18dc9fd86ffc8ce08db","_id":"@rest-hooks/normalizr@8.0.0","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-7yVDk1psrNdPxLWytDCNvFD4oCZEbIIklKut42FEuX2Wz63ZxC6CBwtFH5HPhQnG1Ygagb4uQUBUMuL/1shKOA==","shasum":"f54bcfaf8056bd15f97bf3280a48073c1ebfb21e","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.0.0.tgz","fileCount":89,"unpackedSize":649251,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhODcpCRA9TVsSAnZWagAAmoQQAKGSTTJJmVc/jjI/dG+x\n0FBugYYD6xt29AoEIcJI6TRn2hwHnQmA5ojryo002iZrAJuWRcucmDWdV8Bs\neuwUyFrNt5WfkQEjvgBp0w/oN9HY2TVNSluyA07jvYWwM57wPVE90SkKuTB8\nqHEzJqR64OzynLhULn/6mmwRoUqbLFfWxbHdo+CX0ibgQEuScwj5/8uogLeC\nnwKkW1ilC6KY2po+OQNG6VwK/f0xqzd2UK791xhicJ2KEfSdHlCPWThXLO4C\nFwHNL/TIon4C7zC2em/NDOYhsqTMGjhxJVq2lkBPz0RWLLMYUFvhQrrmYZ/9\negL2GvznCxwBDb0euX9e2RwsQO2MQT6bHLUpuW8IBTOqh0tjqhqZ78l+4Wtx\no27wCufd7vpSVFUbdOyd4fyxwWWxGXmkRoaUZNY7/RBBSYs0HXlq5U8DkJNn\nYL3j9kUWjTyxerI5rMFqHiqoJn+nfsL0eH4vOYqdBOEAKvjJkEvnH33yBmlA\n4xMO0NKmvOkLZyg1RjWyq43rs3sPMFz5n1yq/9cwl7JHwlNJmAj2ffNfZ0gf\nbL25FJrzEF6G3Pg1QgFLyJiMxTxzL424Bzgk+HPYB8q6h1eKL/Go11siw9DY\nUpin5QQo+ikhByQnHMTNK5WKGlAfiBDrdrvVO6QC2BxRRwdQnHf5tYc7TbCq\n9HeG\r\n=3GQc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB/zIydKjztNES79z4/jrySNymmMI55UIZ2ylfPEwmlrAiAA5CMO3tMVfjjmbbuNeQOoRamBWG1Qvh9B46E5dITILw=="}]},"_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/normalizr_8.0.0_1631074089442_0.268094176712411"},"_hasShrinkwrap":false},"8.0.1":{"name":"@rest-hooks/normalizr","version":"8.0.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"cross-env BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/normalizr(.+)$\":\"./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/normalizr(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"4d2b1ad1a775cdb3358f272370e6ddeaf17df9bc","_id":"@rest-hooks/normalizr@8.0.1","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-gS3bp6PgQXa/xZFXcqndbXin+92JL1ndEkhslvwVOY2VU3iyi0oYFwvgP/5suXx7xwXMGl5MlGil6GIXDHnE8Q==","shasum":"3ea29e4c401ea2ba7ac4a294360b3e78b430f081","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.0.1.tgz","fileCount":89,"unpackedSize":649775,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHqc8rwTFtQZu/gGvROdUiGlaeVh/ZYot3vrYr3vAmrMAiAkaaWoxmvAIr8ELDjHT8x+9YmEHIuUSoC0qmYmL/1nUA=="}]},"_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/normalizr_8.0.1_1632887961882_0.09777236385800148"},"_hasShrinkwrap":false},"8.0.2":{"name":"@rest-hooks/normalizr","version":"8.0.2","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"cross-env BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/normalizr(.+)$\":\"./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/normalizr(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"b46e0d2bfb3ed7c6cbe9b351fc45ca4e99f34f78","_id":"@rest-hooks/normalizr@8.0.2","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-Yo82IUpH774CTe83XO7cZkcHbNNyeowpgLwi3Fr3UYu1De1th8OikfQ7xkR8HkNJT7BlxluYGhh5Ur+nNgJF1A==","shasum":"5ffae1916cf79b783749b08fef61d7b9cc438b99","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.0.2.tgz","fileCount":89,"unpackedSize":653470,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB4oF/wR5m0WN7XNXeHND/SJskmM5vm1M9822qX2LfQMAiAKIZRwwZQHnCL5DwS2XAuS7dta/RV0svX54gKwzfchsA=="}]},"_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/normalizr_8.0.2_1632945570541_0.44534609288053106"},"_hasShrinkwrap":false},"8.1.0":{"name":"@rest-hooks/normalizr","version":"8.1.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"cross-env BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/normalizr(.+)$\":\"./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/normalizr(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^4.0.0","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"de00e9e6462f9052d48f95ef1708c7744698b4e1","_id":"@rest-hooks/normalizr@8.1.0","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-/RXfeMWIKGx4hIgOxtTi9ERqtkMV1gP/Jd/kTTwbL8xWSOxdDKN4fSlADMfklqQa5jM1rTw7PR1SdIzEreHpsQ==","shasum":"50946696720c8b132d1b1a6e23972da0901e6eac","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.1.0.tgz","fileCount":89,"unpackedSize":654590,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2YtBCRA9TVsSAnZWagAAcpUP+wUAUgWLu5eGjkbvZQuP\nRsz5dcYhOBbT6n/Rm+FX8M9HMK+2rOj/HvDODbTeOECL+ZYJfpVh8kO6zDqR\nmIDd2Fn/Vyg+waNRojTi1XYshDAKm61hw2oE5ZHBbOJZq5/6cg+hKt9UmA0F\n8nl0INKN+6YAPlXrI7rGdlJnFZgl5dFHLsfMQvrOKFHKEUGskrjzCXhkNHUh\nMvSsNKXOUZ3OH62dW0xUAfgq8TImG4vYcF8ANxMzUsk5MMD/0jRMelwZGWBP\nCL/E7T8qlDSBCMENsZvymtV6Ftho/ZPavYoT8qHDh0sEfY7x6G31zYYCDyi2\nRhLxC+Ygu0C0BPSSFzkCXLLGx21JCYzHeAJcHLsMmXBgN2cIXQ+v15o1jHVk\nv3g6ELXJjpk/RV56fYgYJNG2wDg+CCb4EUqRnFYQWm30w5egtNbqg7Kkq6FG\nlNO0Vy9s71uM4ozmFdPisPAiwM/hjbJSDSfrg4lnBzeSqBzRp8xiI22ErE2t\nnqUwpiIqh7PhHv+3RYuXJ9Jna/El75HFwWvbSQkdmx0QakHAMkpT7dixPpD5\navfTO/4Lhx08jAKMtqFRMlDBnf70yWcRv/EKDGJG1HyfXRNNWB3+SwJxm9e0\nbzzI4dKhgZSYTxHnfG29rcHragLC5//qa5vIF5k9c7vDLtIi2fPfAXaij6gW\n7AHr\r\n=3QSr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC8yijnrivGeo4ZWTxdXmgKMp+RgLeAY5Xl+MfTnQ51KQIgCkUC/zzCAemuU1o9Zhgxztz5uRwDP4mEGlCLy5TD8rQ="}]},"_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/normalizr_8.1.0_1633923099517_0.3690209213233473"},"_hasShrinkwrap":false},"8.2.0-beta.0":{"name":"@rest-hooks/normalizr","version":"8.2.0-beta.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"cross-env BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/normalizr(.+)$\":\"./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/normalizr(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^4.0.0","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"d52b9f0a70d48a8512cfb9e4d4515d212941dfd7","readme":"# normalizr\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 version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](./docs/introduction.md)\n  * [Build Files](./docs/introduction.md#build-files)\n* [Quick Start](https://resthooks.io/docs/api/schema)\n* [API](https://resthooks.io/docs/api/Entity)\n  * [normalize](./docs/api.md#normalizedata-schema)\n  * [denormalize](./docs/api.md#denormalizeinput-schema-entities)\n  * [schema](https://resthooks.io/docs/api/schema)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/normalizr-github)\n* [Relational Data](/examples/normalizr-relationships)\n* [Interactive Redux](/examples/normalizr-redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema, Entity } from '@rest-hooks/normalizr';\n\n// Define a users schema\nclass User extends Entity {\n  pk() { return this.id }\n}\n\n// Define your comments schema\nclass Comment extends Entity {\n  pk() { return this.id }\n\n  static schema = {\n    commenter: User,\n  }\n}\n\n// Define your article\nclass Article extends Entity {\n  pk() { return this.id }\n\n  static schema = {\n  author: User,\n  comments: [Comment]\n  }\n}\n\nconst normalizedData = normalize(originalData, Article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"Article\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"User\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"Comment\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@8.2.0-beta.0","_nodeVersion":"16.13.2","_npmVersion":"lerna/4.0.0/node@v16.13.2+x64 (linux)","dist":{"integrity":"sha512-L1cJgRiV/n8gLEesLe7NZ5Y9L0XIKxwJiEamO+x2dhaSIhQIG0ZEUa2UxOZMneJcMbuUxUmO21UD/mmcylx9uA==","shasum":"f5cefe4ccf2395a3f8f3f9b34b4f76a8bbe996a7","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.2.0-beta.0.tgz","fileCount":89,"unpackedSize":658741,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh7eiyCRA9TVsSAnZWagAAf/sP/0aVEiHpFTiXKgx5Mm85\nXjqxGkDdIWgoGcwMpG8NIwHjIjlr/ju8GEC6gSO+RBObJuuyh+qrInoKef6G\nScAthGJaocPvbkFsqKnf96/xl5V471dkhiaICzh8IUn3Tb1H8e1UDkO0OPb6\nF7RuH08KgDbgXFki1gCYOpQSsdZD/32WVcJV/tbifx5k/WKoyxHG94l2Kx64\ngVbKJR8ape74RF0mUymluzWJT2MhZ7g/C7/FXvPX+OHB0jcPixiRZmDpxnpE\ndsSLb7oBf/2lrzUzcbqqzcK6sy2DkATJxJ1LQqWg/l42H1lXhPf4qCxtMEHV\n6B2YhOJKz8pase+1tFeO0a7Ns0qAmCNTPbAFTA0iqX5pL9A2Yvd80EmXxCsa\nz7ifWGysiPtdlslMvzWlgNiom7tdIbGWssmcnecalw70ffFbLoIYUXfFCDd1\na/xXu/DgIlrPMaNWMrPjwmDSkzEQ4OU7fef3FDBdbka8AaErdfi/WdLduR+l\nPM8BHrRxjM2qUS2Ww+yBmpll8uCX44WI9pCwoNQWzU9PyBIPZmXS4PmplijI\nWFrRYJCylOFM88LeFeG2HsiAc+N17VN6Co991p5hlE1lQ9OLNp794t395p/8\nQTDPW91hWPAiCbQIorrcfM1Wr0qyckTDD2L3HfETqL9dzoyzCnFLimdMsDgC\n3V52\r\n=X6Fg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF59Drq3f2PrIP4XgOyTKm4lPVf6851FnMyo68yI/LUcAiEA1XLjPM6yUl5ijnvdgospNs97dIWm/aguN69IAViiZQ4="}]},"_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/normalizr_8.2.0-beta.0_1642981553935_0.034932417872864274"},"_hasShrinkwrap":false},"8.2.0-beta.1":{"name":"@rest-hooks/normalizr","version":"8.2.0-beta.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"cross-env BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/normalizr(.+)$\":\"./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/normalizr(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^4.0.0","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"e697b70e8bbeb0f9bac4ab50718141b0f11ee1e7","readme":"# normalizr\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 version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](./docs/introduction.md)\n  * [Build Files](./docs/introduction.md#build-files)\n* [Quick Start](https://resthooks.io/docs/api/schema)\n* [API](https://resthooks.io/docs/api/Entity)\n  * [normalize](./docs/api.md#normalizedata-schema)\n  * [denormalize](./docs/api.md#denormalizeinput-schema-entities)\n  * [schema](https://resthooks.io/docs/api/schema)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/normalizr-github)\n* [Relational Data](/examples/normalizr-relationships)\n* [Interactive Redux](/examples/normalizr-redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema, Entity } from '@rest-hooks/normalizr';\n\n// Define a users schema\nclass User extends Entity {\n  pk() { return this.id }\n}\n\n// Define your comments schema\nclass Comment extends Entity {\n  pk() { return this.id }\n\n  static schema = {\n    commenter: User,\n  }\n}\n\n// Define your article\nclass Article extends Entity {\n  pk() { return this.id }\n\n  static schema = {\n  author: User,\n  comments: [Comment]\n  }\n}\n\nconst normalizedData = normalize(originalData, Article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"Article\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"User\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"Comment\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@8.2.0-beta.1","_nodeVersion":"16.14.0","_npmVersion":"lerna/4.0.0/node@v16.14.0+x64 (linux)","dist":{"integrity":"sha512-tj0Bf7W6w41TYzq4oqXLlZ2cE/+wawp6Ajk6l8Vxq0dL9L/JgVgS/QFcoBtNX9vxucu7ynjHWMHqKpGZbjk61g==","shasum":"950769a6a3b65b7e7ce904338b652aec34e27b1b","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.2.0-beta.1.tgz","fileCount":89,"unpackedSize":661313,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiJ6iOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrr+Q/+MU13irFGXqRHWAfWR9M8/yRNQpbdx2LyTRAOTmPjcsl9W/Qu\r\nw6Q87vktZEjbVkEcDveAzxV8+BlGr22rZLqkwByrPXNgv15y1Yf7payV3JQZ\r\n53hRJiiZHhyF5fbqEgsnbzlQQ2BCbUoKprJf720s8doLZKWcjZEKKaLCm6VZ\r\nexjSBBqp/GMBpwxhSisKspNYSuV52NcG+SdYhifjrI/pLIy7pSymWAhWRQ3T\r\nlrpt9qSUBubZr6+EFac0e+eL2DqCbhzxesCG8ohYfYDNZvEr/k1/08GmvcO0\r\nm5S4fv32r29IoglhPWGUo+8e0+VJ+r/74llXQBno1q76INuM4/9m72rOqwiw\r\naPmgnHlR6iulmfex3nCajEspTA4jj8l3KTXjAS61X26hO49jIZceCJVZUR74\r\nBC2V27hmZKwxxbJ1GdV7bLL6ndxTSL5u4LVM7ZjdlvkXRo2Tg2g5oik3oLYN\r\nZPNyV/Mb6ANlcc/LL1RCzVpPrQL8F68XujbHJB1dws63KUzhD0aruAWFItga\r\nkuaYJbc3ijzQQibCUSfxw3fErI1SvHXbsY373aUBBUGMRveYOiC1vsbFwCBg\r\nBKtaAvrrLDyHy3hkbz5gK2Bk/DRh2+bX+RCsSPPqJxORZTLTEmR9wCy7kBgi\r\nWDUb1mYUplPwoYjmEoJpn/Dlmie/Ivmclqw=\r\n=6KOr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG7FmhVSHttHr8OhtLRmwbPejv5VfVTCFzG9FYEgt/aEAiBPZHssDXGdAIp80ciUkh6H0WLiYrkNltDze5HyJU6eaQ=="}]},"_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/normalizr_8.2.0-beta.1_1646766221885_0.2615384126960174"},"_hasShrinkwrap":false},"8.2.0-beta.2":{"name":"@rest-hooks/normalizr","version":"8.2.0-beta.2","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"cross-env BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/normalizr(.+)$\":\"./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/normalizr(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^4.0.0","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"b435cd1165a996730b9353875603bfb97add2cdd","readme":"# normalizr\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 version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](./docs/introduction.md)\n  * [Build Files](./docs/introduction.md#build-files)\n* [Quick Start](https://resthooks.io/docs/api/schema)\n* [API](https://resthooks.io/docs/api/Entity)\n  * [normalize](./docs/api.md#normalizedata-schema)\n  * [denormalize](./docs/api.md#denormalizeinput-schema-entities)\n  * [schema](https://resthooks.io/docs/api/schema)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/normalizr-github)\n* [Relational Data](/examples/normalizr-relationships)\n* [Interactive Redux](/examples/normalizr-redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema, Entity } from '@rest-hooks/normalizr';\n\n// Define a users schema\nclass User extends Entity {\n  pk() { return this.id }\n}\n\n// Define your comments schema\nclass Comment extends Entity {\n  pk() { return this.id }\n\n  static schema = {\n    commenter: User,\n  }\n}\n\n// Define your article\nclass Article extends Entity {\n  pk() { return this.id }\n\n  static schema = {\n  author: User,\n  comments: [Comment]\n  }\n}\n\nconst normalizedData = normalize(originalData, Article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"Article\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"User\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"Comment\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@8.2.0-beta.2","_nodeVersion":"16.14.0","_npmVersion":"lerna/4.0.0/node@v16.14.0+x64 (linux)","dist":{"integrity":"sha512-5RHPRSZ4xTz4HORRJTgT0FlCze6Pe68BqEXdzjj/D69rl25Hf3m5GnZaqI+1DfQBG6P9d+s2RIOP1WTUMSzhZw==","shasum":"29c81d5675093966496bb31fcc2695d02802ef05","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.2.0-beta.2.tgz","fileCount":89,"unpackedSize":662246,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiKXYGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrGYg/8Csysnsik2GeQnlaZOTU1ZQgxTt9f6DR4RRiX2PEzSC7uFP1F\r\nU7webYgpIHAq86xqQPx72v/wbDZib0VDOs4W8GmMEooup8uOAmpRd0TgginM\r\nbpng/CHKpBSzMDc8++mBvN5Vu2tTj4Hft4eNO3jsCJEQ25s2UwAmDV8dyLh4\r\nJJlqMz3VuaQlCrJfXsm8GE8FyFwt6mqXPvnWwVgWtO5otC3+VEkcMZbB+RHZ\r\nsPVz4kq6vuCrTqAnn1Xi0JbT/A20CKocT0zwyX4yq2IGTlm1b4TJ97JeCniU\r\niUxM7zg3kZHVByMDAHr3sueiZJbthIwgsBL5FVV1RvOccW3HuvTuneOCAmp9\r\nnaHItOuVW7qmq/3Q9z/DMfeBPiaRl4qMiSHVGSL1oN7Fts9swKjMUudIEPMj\r\nNF8HysCD/D7SuYSge8Iy+4TTqbLYZ8di2Q9oq6izx00LRW7jdeRpdJ50jG7p\r\nlWgc0YibHS6UmhZSXNmyHIMb2SD0uFHfeurQVb4FCDdnaoaxLb6e9SVwbaoi\r\neK7ON8FS10mOOUWLrm0Tt1leuQGuBOsjQQBvRGDSNLlSvLCuOAvBRqpayXdf\r\nbKkCuva0+ipl8H2rg9fWz6cjKlNpcaK+/1VXcdssEOqJuZ5r8+I1fhe8aNZl\r\ng6TQWfuwSImYVNbwvNA5BMFenMc5ZbPENvc=\r\n=jYZo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICa8k1FwVRhUKi4rXbFQPH+6c36b5vToISAq23FQDTybAiEAkrj/jFnYFlLoyY/V3HJ9DKOfYRSW2eeKVFHq+gPOYFY="}]},"_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/normalizr_8.2.0-beta.2_1646884357824_0.9881282151741777"},"_hasShrinkwrap":false},"8.2.0":{"name":"@rest-hooks/normalizr","version":"8.2.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"cross-env BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/normalizr(.+)$\":\"./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/normalizr(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^4.0.0","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"1300e60bb71b7f2687802fe13a52a04f88fc304b","_id":"@rest-hooks/normalizr@8.2.0","_nodeVersion":"16.14.0","_npmVersion":"lerna/4.0.0/node@v16.14.0+x64 (linux)","dist":{"integrity":"sha512-DMGqOMqxowzxBKKxBRf1ewG5FQarZVFB91oJjvjp6Qn0GFWM9sS7CnJ2NKAkJYFfUU5aQqQMShFSVaxL2Vi1ew==","shasum":"65d09203458b9b99480b00996e2158504a144683","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.2.0.tgz","fileCount":89,"unpackedSize":663023,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiMuFuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqSow//ZUB1CxweBdpC0HEduuRiDz3KgJIMs3Tcnia4m7qHjxichM/a\r\noiGqrHNNU6pqD5d6QU7SIr5xnQDqWHyYHR2juK67m2glAYT4KtX4JWTGjvHB\r\njppVKqNU4bt6eoucGcNbio+aHb1fJUuwr6mA50t/plYh43jCb5gDfV46jnTs\r\n924HhkV5F3SX19pDHj2M3tuArdM1fNbYOBLI9lFGm89pNA/woeRt3+a0Q/qj\r\nShJOSGuFqvltN6jRZ9oFt72SgVSY+8ef1HG1aSCJ7h1/a2ScEBUoUo6/pPYc\r\nKjXlo5dlekN2XI3Ba47/rjkQ1q9DC8noNWvw421qgJ83Ng6kyIvZTkCeNfdD\r\nywowEEWmVs+kVyluVhzMCPTTIdPkUmf3k+lw82k0A7/2q5p6auqWNBQta7QS\r\njEXUOx4rk81L8Vgxgql2dhEnH3s2vgaK8jbrIDZYmBRfnAgwRdHsgUUMGYXR\r\ncb0guj05mehYGRsfXG5xU52E4cXetIXHPAW0tVpxQ191dLECirlhsSOUtZqW\r\n+uVZAaxQfxSE/ka14D6cXGxs5mDhncHC6CqeoFK86y5OYNKxqwXKt02YYTeZ\r\nGF7/HfL9pW8gLM8ctEqpXlWP+GIndX9PGpO/O8h7oKtC18xTryPSbiTB98kO\r\nUb5sxSOyWXdJqcXC/lHgS512G7RJC0nyfcI=\r\n=sa4E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMN0iowmZp3GUTA48LAyXoywylAjGiOma4SGdbJ0IDlAIhAPlql7Q1CrR35n0W7z2GoUfFlFw7jmj3y9X+9GzW8SIv"}]},"_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/normalizr_8.2.0_1647501677828_0.6369344017274261"},"_hasShrinkwrap":false},"8.2.1":{"name":"@rest-hooks/normalizr","version":"8.2.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"cross-env BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/normalizr(.+)$\":\"./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/normalizr(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^4.0.0","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"4472b9b571cb652f91fdeffc8af26c7c70b58163","_id":"@rest-hooks/normalizr@8.2.1","_nodeVersion":"16.14.2","_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","dist":{"integrity":"sha512-EbyNzZBJ0gIkrLwH680q5OiuvEVLH7qk08pkrwcjXXidg68405hle4sVMIyGFIuYGFKdh5aIbIRlmUsbJtPFng==","shasum":"19ca84cf89d51823faa4220fd3352e54ae7a7eba","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.2.1.tgz","fileCount":89,"unpackedSize":671643,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBobKVT4uVgZAf8yxQqIQ9xFicOf1NJ/WdQYFaXJnqk9AiANOaVovVsr1ttsUl6SrSfDitMtjVORGZQ5RrqT9fmc+Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiR4yPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo0KQ/9H+ER8NjbdVNFkw0jBDxrRyjdF8u92rAA/cuVimfbzh3Q9vyr\r\n8V1d1hUzugI8WTMZnJ3SUlBShF8Bug2cVaP292BUU8uRMu/oz7ahPhDQy0Si\r\nGQEopLYmcR98C63VAbQi4q39s4fF/cy76KH6t6l1yklLgFXVXn5GN6rCmDWC\r\n5J12VQIfUmndp6/y/ggf31ztIXVSuXkGdDJqc1GRaMWv89n7vsSD2idA3HPK\r\nCoP2e1AvDgmuW4hcY/StsOZcYLQ5zWA4eOAen03wFJzpKPR05LV9YTneErI6\r\n1yjSrjsQ4VbtGRyfTUJbyC6+rglO7H97C1/3ioNLTCpHJkVw4fsMIekupVYO\r\n+Z++lROLg2ndEaCwqPy+qxVr7PrAgmC+wglzSooHzikQWqZQJ3RZEd+IBKUQ\r\nQPcQ0xTDAq1E5PJ87yXUPSqHxewIZ9pN4jFerrgjNgaLa4s5hzjM6baHssbH\r\nLyybq1t+XvUmKku6ydMBPq5r0raBVDyV9lCUgBVg2K6I9cz6O7WKchPsjvt+\r\nU/FzONOwmDxDTkyhjTb/cDjcOZ4Bjxki7vMaYLZwGWrTone9ftNliCFnAV7v\r\n8O+RPhY5ly031kEsZB8nr5I9efiYbDGW+eO3iCtEYa7XVw6zsEvJ80ychKjq\r\nM8NhU214OCupulojYXx0mXf/tJVQTe5hGPg=\r\n=01FC\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/normalizr_8.2.1_1648856207342_0.1931054143094002"},"_hasShrinkwrap":false},"8.2.2":{"name":"@rest-hooks/normalizr","version":"8.2.2","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"cross-env BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/normalizr(.+)$\":\"./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/normalizr(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^4.0.0","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"18a27d147b3857c62797db88a3b3c34d9c1c418c","_id":"@rest-hooks/normalizr@8.2.2","_nodeVersion":"16.14.2","_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","dist":{"integrity":"sha512-v1n7I4iXbHyWaDXK7LIVDvSYIj9xoVTgTR1YFcz+dU2V+O2jkCO8UaI44slCbFUjwMgicYPeyq7vMqsChT+gSg==","shasum":"8cda67cc085c1a3ec9076de7e7a4f33f7e803232","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.2.2.tgz","fileCount":89,"unpackedSize":671948,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCL/WKi8N30JrlzgiaSAYwjXxufq0NvwOZBdMtiAbJMBwIgRJD6M4R70vCuxvEGfMjgHRLabtMXYUjBeg4OOw3HZr0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiSLE8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqsmBAAgeWtdN5AA9dMJbTaluAsyFLFwxykJ6VYY/i3tesRKu50vxjt\r\nmOKy0EiFduKYb2qB8Qy4myXji85KUxYyWJKFCVZCDm7LCr1ws0LYJ2Y2Xuf1\r\ntuo3UvolaBjXCacHE1w7/z3R1r00s/8MsHSvVv6AkEzf5TyZ4qFhEay/Ya2H\r\np7skVfa4Ha0mTFgQMDI4EbM7QuEHMMwds443JhQry1zgkB+tvPeq7Ded8tj3\r\n/TlidEQ6u6a+NwgrGrZzXlph3ro0t3ahX2aKGgGGtn5uvIj5QftKmHS59jb5\r\niNTQpQ+y/0yD5hWe6HkFLxmLJIxnZa2dsFRBtShbtM7rMt7MgEXEccJG7ANV\r\nvLRPvHswO8OI76YVjI5ffOC6JzW3rw73AERH5rNI3XTO8DIw3oj7XxRnMjZX\r\n8lWROkwdCQphqhRUeaRPXIYLgqycaN6mdIICQsbL+PwOXEdqoe7qrWk5ZnkG\r\n+/Jt9SS790VKCo76Qqp36Z6XeGK9ui6H1dH3hu1W5l17smgvcNrZ1fAJguRT\r\ncLoz5jexzKgIu+f47VM42irha2sSfcSWVxM28CNpg/Qt3DNRnM2EKAgyf0mf\r\nQoauoA5+ywf7VDQI74MsIFc+fCTqUxfP7ZNOpCGmYT3DEPAvJefZrpLX80ps\r\nY69esorrKFDBPjoNducIaJBjUGG21wObTEU=\r\n=R4jk\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/normalizr_8.2.2_1648931132660_0.756624014328769"},"_hasShrinkwrap":false},"8.2.3":{"name":"@rest-hooks/normalizr","version":"8.2.3","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"cross-env BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/normalizr(.+)$\":\"./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/normalizr(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^4.0.0","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"2f4974d8318442dca2206cc4dea85da34f07b371","_id":"@rest-hooks/normalizr@8.2.3","_nodeVersion":"16.14.2","_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","dist":{"integrity":"sha512-ZWo4fdSDhuX1JcPZtkqq1PmE38qUln2Gth2qudvNV+wSZzi6SHaeBywHpeOEk5PAZiMNwT6dfVKXa188hEi4vQ==","shasum":"dd3e3163f19ec43fb8bd0c5781acd5bd941f971d","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.2.3.tgz","fileCount":89,"unpackedSize":673105,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCQTdya253tEC6Fcv+RmFVBy50jcjvHYFj5jQyz4hcWbQIhALdNRVQBkMxjHBjfA4QiAj2r3MOSYiJFZPgfilpIT6LP"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiT36yACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoweg/8CYraLOseSEnERFuPxBx3ltcg4Vi8mr0v0pRGMukOWP9hTNHt\r\nZpj3xZNTgtv1bMOlqI189dmgkXdC0DG+zAIlEx8YARMQo5j5spwf9k65gZDP\r\nStE+16J69vBDnlFFaeV1WgU/tz7SGFl/B0MirsQ+VhOcoeWnKOMsVnVyf6RV\r\nZmvVrmijbg6Be8kkoA9BDvx1JwbnwT5Jwjmeer4/1SjKw+2er7zEj3gGsVRs\r\nYwzEklt8G1+5k8QRtssIREmEfMK+KpkbCZxe3PFTxwhokJvqOiQ9W+tq0squ\r\nzTbgB2DL95ZvIhApqx/fRz6LURBKrfisezsqSPdM7d816CAZF8hd96/MhFFn\r\n9fWJfNzSPJqgdX3zddNtGHLojbKtLPomHI3xJV/LTYrqWkd+DO853mo83Iag\r\n3YZM/tsxH8rISabooNYBDUlX9mUfZEQkdRk2ACCz/Ku9g8winBQhNAAyL+4D\r\nSxHOtDnkKTQA0usXiU1bNsv1D9r096BP3mreDB9TC10V1E6LhrZtiHg3yC0C\r\ntSrfdTZlCl4VgB3W/EJR+in2xTpR+KDg1jFUWIGAx4iSvhyfFW6ORoavp8UK\r\nE1uTITSipQKBZACi4ZEMDXyj4eWPfCxYnjUi4ZlTpRBNNHUfDTGBZeLgh415\r\nQb/b8iHuUFB79wrb9ib3n69nAay5kvdrJXs=\r\n=L2LB\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/normalizr_8.2.3_1649376946232_0.020445226005065154"},"_hasShrinkwrap":false},"7.5.2":{"name":"@rest-hooks/normalizr","version":"7.5.2","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"lib/index.js","typings":"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"]}},"sideEffects":false,"engines":{"node":">=0.12"},"scripts":{"build":"yarn run build:lib && yarn run build:bundle","build:bundle":"run-p build:js:*","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:lib":"cross-env NODE_ENV=production  BROWSERSLIST_ENV=2019 ROOT_PATH_PREFIX='@rest-hooks/normalizr' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/__benchmarks__/**' --ignore '**/*.d.ts'","build:clean":"rimraf dist lib ts3.4 *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^3.8.1","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"2e6c2e438ffb6bbe6cb2ef15fc2d1db5e6568fd0","_id":"@rest-hooks/normalizr@7.5.2","_nodeVersion":"16.14.2","_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","dist":{"integrity":"sha512-3EZqssXq1n9GJQSfMeLuhSEfEOvVV48WybQFNGJ++8ZoewJjztRB3cMNRP8lbFaqqZHZvr/J4+ZP/vyL8G9BSg==","shasum":"6d4eff47fc653ec1376c94dd6ca8fa90afa6425b","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-7.5.2.tgz","fileCount":69,"unpackedSize":575511,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChefC5LWG2l+fJz3tIKS6rxUlUcvvshOCrK2Be5nwiQgIgHpilxk3W1fZcItAeZ14DYEF5EwI2ItUfskrJV3A9qH4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiWv+0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmouhRAAiiz4ArKwSKv4xsBJLqQZKXVkRDLHuA5VD2evgYTpcAtyXVRi\r\nueGVQmcLVwYaY8nqhfjFrMxuCfrMMiHI8vSc8yrBFUNpmrF8Ric3Jlm3VsNq\r\nnRh31FLtbtX2ieWYp9n4A3siGISJQz7X3Bdn83F3Yjd0lkfZ8ItvWVPMk0lf\r\n6B+X5gCYWSvt6XqpZ1Itu2mGAxtADdxGGwBD2PcDwCNaWA4BDDHuSRZpWgCH\r\nNA186LIUdPEieaWyRrNjQTEen0jeNx+1525BEQd6dG6Foe2oAZHpDZ203lS9\r\nX8G5TiYowy0y6MePgU64vJQp7i8IfMjfMbuh8lWGSpTkSt7LrJ5RDIHvpIzY\r\n9rqde+F7yN7MZ3OMBNV6dyvu6hCTjHp1umrPGgW/cR+6uUJteypa9V/6FLDi\r\nxDwHTy297tBbe7mEMHMDPT9Z16T7JlZP3yNWdnJRZWPkHiiem6enqVE5VZ+v\r\n6oqrghFY32A5X+GPvk4539uWXZa+DAADsss5Fve6DkIXHTTPQVf0nHEI7njT\r\nsdMYJwNs3vcqwH1cYYqtSTEejwm6CLjajZKXnaOaqkicT5hbsUz+J0x9JKEA\r\n28qj9HAlwwT87+RWOeYM2sSz2q9SqIGmpdo2GkTyNsH3SQ9RxAZzLmI88lSF\r\nyV0neqnCLR2wdqgpGKS/qbSGKwcTpoxlrv8=\r\n=wQ4v\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/normalizr_7.5.2_1650130868194_0.07080391707619649"},"_hasShrinkwrap":false},"8.2.4":{"name":"@rest-hooks/normalizr","version":"8.2.4","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"cross-env BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/normalizr(.+)$\":\"./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/normalizr(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"ttsc --project tsconfig.test.json ","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^4.0.0","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"ce82a4038fa5a245fc12a0654469d3c1ef47bc71","_id":"@rest-hooks/normalizr@8.2.4","_nodeVersion":"16.14.2","_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","dist":{"integrity":"sha512-4OJYwW6V1fPQr3q3Q4GkHGi1i2H6Nl+AgCunz7AlktVYu7GFwfZrYa7CQ6p4icvrKtN0mguHtRvSV+gzqEa2TQ==","shasum":"caecc04f0c7036816acdfad3473fa62b4b054de8","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.2.4.tgz","fileCount":89,"unpackedSize":680125,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDzwDHDrf6mSir0wH1XnK+tYE4dfTE5Am8PMtqPcyYe6gIhALNyZkdnGwDVE6UBWg4NGxWQ6zHIWd3XqU/RwuX1tiMD"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiWwJ6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpJXg//abm8hK9+LVpTlE+XRiSaKi9acnq3L4reRYeg1sYWtmX3Bu/m\r\ns01JaTdTL7KsfmWYu/7C3vj++GIzVCQs37DqP5nvvcqF+bouvngJeKDMzt2C\r\nsZlPAnfKJDukBh78hwLl5il47DjFH8ciLIPE6a93qbQF9oLC0PhP/E6NUpkh\r\nQVMEg9uuuP4XdnFJsBFQrl0GyORWHisi2mGVmzY83PEIA0DuvRknALRUBKf+\r\nESf8LC8MOvmkO2AjnqSlKRNavFx3edyIG7OkIttNfBW6Q4DqoYCEA8pHze0W\r\ni39VHSAn2XZa3kgKIg7vHAs7V6hFLsbuM4Ijl/NtxtgXERpH44FlffCP1YyR\r\nZ6aGjrLsr2JSG9vHfh9kpZfvIBcrTfFaRjl6Fr64q+OSG4ahJmRmQ74uyPz+\r\nXgau5WYo5k2UbY/omMcncyBtGimFrTUsuDBej0YTEFsQJoT/8qR7zCS4DVc3\r\nJUkn0QIkRZ1BfiFGpGOXUNDoZ83ZZLV/QnB1k7GZzccckSfYKloXNRC3VC/r\r\nTX3GgpzJyWOP0v34kC13GEXCK33YM+EGOUSYzjRhPbyeM7Bp910985E6RpZA\r\nF/QcesEwdmXkh1IcJWBys35YaMBapsN5kqgoSKc5TYaka+umu3JNjCZha6Ni\r\n+ikT+cYsIfoAdVkT8TdTCAJhTXZGgSqjyB4=\r\n=f40X\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/normalizr_8.2.4_1650131578050_0.46397519516904207"},"_hasShrinkwrap":false},"8.2.5":{"name":"@rest-hooks/normalizr","version":"8.2.5","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"cross-env BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","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' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"^4.0.0","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.7.2"},"gitHead":"f490c35cb1a91a4f740488d28b92d3e3b3a98ffe","_id":"@rest-hooks/normalizr@8.2.5","_nodeVersion":"16.14.2","_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","dist":{"integrity":"sha512-Ai3/aShIWoe19JjuQBWaBptZCLpQIgRtq78s3ZudDUh9ei7g9ZB1rHrYruC3bsB8i3gfMFxozz0Km5MvXwInVw==","shasum":"31bb0747d18699f924f26aeb0cf9dd6d33e19361","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.2.5.tgz","fileCount":95,"unpackedSize":690229,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+kkxSC7eMw0BGwSG1tnAwM8A8sXMv2ZXvbjMwVdhFKQIhANlaPZDYUc5nF+eSwtIk26p0emJBHM6YOkPw3l7eT8P0"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibXiJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrBiw//fngGOtCOljT+bcu7SZD9amt0Ewull3nDzL8PxxYmR26tLGCT\r\njJgGgnJQlDeyOhrQtbIHCOVLIkniX7jmfjbdjiSPYbFzOS7Mcd0dlmTy9utC\r\npPWytd50KtEqIcJ4vqW7R2fFVJmymCKTz6YWwSdgomI4Z7Gli6LciZfh1F4k\r\nBUFuMBRQNc85ulpjW1YHm0rwFN361g8TR1gt53on2RKIK/HHHmw3GrejunuS\r\nh8aNy759sH+qJQyLtJrDCi/pUpNhUCnAmzdUVJpZdlP1xIukAeXYeXBa5RXi\r\nsV4NbezE61JdChqbXBAWc3wNOViuorGtKTDRkcFyLTmk2xWIQnNsBClaHcaC\r\nrdhF5FCwgJdqwAIx2nlvuBWMpLqAM4W+E0S/4DZb6QPsYhwcNwADD3yhjiD/\r\nw/Rt1n0VgaobHztucwGSI1OQ99V+mez+PpwU0Vvbq8JFGNoTvG1WSn+sHYme\r\nvkW0LPFORXj93Kw9zyL2gdVzVjtSIvHOL+wT8S3JsRpwmKNplVOhc2ssXuGn\r\nwJwKangvyTJaZ4Robopj+gttHFNNefU0BzTQ/L0+9dcDO8TJB0yYu8JGRNxT\r\nx9+Iux+nycj1dEhKbigBKRmkU8ifJRd3TLCRb0LYKA3QroLVd+5/MWzM1N85\r\nlSSitVp7n2zbdHR5yKEQ4+lmkLf2rYmYR68=\r\n=hTa/\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/normalizr_8.2.5_1651341449447_0.17624268303994195"},"_hasShrinkwrap":false},"8.2.6":{"name":"@rest-hooks/normalizr","version":"8.2.6","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"cross-env BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","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' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"4.1.0","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.13.0"},"gitHead":"3ef33e89500d586bdfbef12ac7f559a9a647df88","_id":"@rest-hooks/normalizr@8.2.6","_nodeVersion":"16.15.0","_npmVersion":"lerna/5.0.0/node@v16.15.0+x64 (linux)","dist":{"integrity":"sha512-6pmxbqhqlDn2GfwQXDixEU24RhbAYfpN/6moVwnW+z42g4H0MYhG3HiHQDy7LQ8ETHtm54L1gVBqenm1UmkwMQ==","shasum":"55a46e57990e96939c9004abe6037e5a0a88f22f","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.2.6.tgz","fileCount":78,"unpackedSize":673236,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxq9jYSloDlBNn1HzC4QAPzSm8iLQEs/jUAsTUFvBxAgIgbWpBbZM/Th7ceya6jZb/kSv8cTehUcTUtkClsAX2I50="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJilSWsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmreog/7BaTX/bAVkkzoPSRuoz0IfQz4s2M8D6P8xHic8byjlkoUwxmS\r\nNaRdpeN9jjeHg63rrlSGNNNSmjHJ38i2fSuQrfb2hBbZO0FnNBDeQ1mhJqum\r\nQUDgiym0i/UlatKvrqNrINp5xk4LXBocMh9RNhKOoT3qVxsNxZpCmWpatjHi\r\nvq7Y8M+qoAFegnSZFg3IxKheG8Qly76lBjpl0s0YFHt5ihztNDL2uRwpYsTy\r\nqkjHQmS2ymMZlKif4Dw1MHQzuyg+UnY7RJZdLhn5LuYKsy/2iOjVasxgx4jf\r\n+3B1y7SS6aIxk8wy3g3g5twdvP/C8n4XG2hWAyVSCSF0MJ0cO78hBkStQOJ+\r\nXyhQD7Gk9Etk7AicMAKB8GT5Hyg01mGwbUKrsxxpnIHQOjo9BnUzvsCoWOAJ\r\nfqk4QYXlMXYWf4E9xhWjFfAcRsf1laPnmAeX8jCBO2AfK5NdJ+WzviJGbQFV\r\nrEwXuubCec/1/yxip8TZ5BEmlFfNsiDQgkU2Uw+IeqlDsIP+l0XBQQL4Oic1\r\nMa9x7vJ6MUA7Eu2yeULzjLuBGRweBXb8TPosrYC2jawQ28VmkNXCusCzILyb\r\nJ9u4zvSyNq3vMVMjjSGVNcj0JLsiI4HOMLqfq2j82c6kmSi5d/tg38nsE8Z5\r\nFw6ghW143/F5PXCcsctt2gAP6KQTwn+jFVk=\r\n=D7JH\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/normalizr_8.2.6_1653941676494_0.828596602113649"},"_hasShrinkwrap":false},"8.2.7":{"name":"@rest-hooks/normalizr","version":"8.2.7","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js"},"require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"cross-env BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","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' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"4.1.0","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.13.0"},"gitHead":"41f23be320cdafcdf5b5df5842dc6fa81c31fcdf","_id":"@rest-hooks/normalizr@8.2.7","_nodeVersion":"16.15.1","_npmVersion":"lerna/5.1.1/node@v16.15.1+x64 (linux)","dist":{"integrity":"sha512-NOE0tyD7usYHBiqrQDwETqior59/tyUumE2gXZn2YHvu+L5fp3F2+WWa50VtWUiTZfiEZDcejlHfiDz4+gef9g==","shasum":"42519a0c4e6970e2f253d0d15ac17ea6c04fb99b","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.2.7.tgz","fileCount":78,"unpackedSize":673681,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC1AoCevYHb8nI67RlyzKLoTYApxs2wk/j2Tl8BDPGUCQIgGWS9s7+CNhmNtdiQV3h3DyFbJ5WLBYPiEsHQdoF+RUQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivwMHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqtpg/+MExwFG2gMFtwlSP1K4VNxNSGsJAi2NfYP/2RIo/Mxzg8MJ87\r\nfZ0X2IfZMbzC5Y4E4wDo0ul2FS7yfiK1YZVQ874k/WjAQqm+sjBjZtYm/pPe\r\neBVtTWy5tqXMOAzRPnjM168B93VxEAjHDxjfZ+XrPqS6ygzjq+C+iTjXN26W\r\nPzhQGjdqSeVNAQU+7+Y2yxCipqB8tEeI0ARDSkKMjM65EFLAlTpDVFT1WH9s\r\nHBO3vA3U0+zK2/NJqV2OSgTa4oDZpMIyZJb67Bt9frdJvmkvjX6XJhHfMx26\r\nQFd4j4cZ3rrlsQI/JI3pv4DPDcbxByIngX2Cwk5YI2/xTDO+AAv/yqwy6OLt\r\nFCYtfBlJ5Ri8QuFsJKBEErBJh20/HPhKUfh1dsjOT4JoE7zZOvde7gRh3wRD\r\ngNiwPnFcn7faJ3eSTIRW1NABWBlPVVv622y4481wDTi/BCmLjbRZYI3MM8m5\r\n5XpjS1gelxRHIVz5SM4vX3aTlfjZ6PGRICqtUs1pYyPjAHvBWQRHHMaTGkq1\r\nagtKu+CXDBO/WIOmnygpxVmHyxDbmwSdc3mQPesdkvtac40GOUGoVkhig5AL\r\nend0K9IniecOxcY7ykHjYlDc7eu73H/dl66VbigLud/2WVco2l6lyZnAYAiP\r\n6W27pbgvMAb9sMYfsk3db/B5rNXnZBShAL0=\r\n=bAX4\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/normalizr_8.2.7_1656685319455_0.5140391449509214"},"_hasShrinkwrap":false},"8.2.8":{"name":"@rest-hooks/normalizr","version":"8.2.8","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js"},"require":"./dist/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"cross-env BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","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' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"4.1.0","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.13.0"},"gitHead":"2e86aee48ce7e2b8fc006f719d79a96aa6584a2f","_id":"@rest-hooks/normalizr@8.2.8","_nodeVersion":"16.15.1","_npmVersion":"lerna/5.1.1/node@v16.15.1+x64 (linux)","dist":{"integrity":"sha512-ftbLKIeMeMW8rwkSRDepnTEAA9Ww0GCG0n/B+bOg9OfSwt8T6Gdxjnp2OUSKwooVfZf3u2GQ9d54NIFbOluOuA==","shasum":"bef5306045b2f12b0fef8ba1a75feebe06bab137","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.2.8.tgz","fileCount":78,"unpackedSize":673959,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzX3HMAzD73Hf0uDmoDWH2ZF577TAJZoWQoLAIHmsm7QIgX5Q5hB/z+Bvdk4mmXWtgPnswWO2hyiYwUzn/jOlAenc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivyEvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr0rRAAkScIEeCtAmk+AXelMJP3TrVjy3ujV8A9jZnde0foJkRFH3OX\r\n/ZysGvY4IzsLh4vgn0XqgLTjV/d53mmKeBQGkX2L6CRfii0+48O1svBMZmxW\r\nD13IDIy5RMtE6yL1u73O7aBq0ZJJj/DmFafDkmXm1l+GWbMnN69l2WUG+dH3\r\nWeSFE1XmwVtfimhrs3RWPxmUHhSx6PgHAq2X5dN746gDa7jrNd50XjXhSPmu\r\nc31Nh/1IDQq+ILZbMbmHD4gj8TSf3trFRVaZGyUpRsl6DJHtupjNdWEvmd0Q\r\nV6jK3p7iBfydATnPV2iHYECqTNL3/NsM+KE1XReDvw6XeSyTY2rLcsMOQS8d\r\nv2TXRZRdbAja3bXWFAJCljls9lCPH+tI9VWgKeGzkXusfR7XO4hjE0Q01qqc\r\nE7aCVM15em6THhUyzEMJeUyhh76QkYzdgSQmLoZukMOkZa+QvaBdGskiFNG0\r\nOEZueUbecfkbklwU/VIvSa10tKV4Nqewuo0Dq3kO2ojmtxZHYHRjWfvrETr4\r\nBzm2oRQUOWBWcsCHg/4Vh1YoBXGJchIwdDax8pdmiGVf0JER/621Wmi0kb/j\r\nW4PFs6G+CbiT34K1fUVjdfcP8d/LF4Yjbg3lay+kiqsFO57/jYkkTQWJwK43\r\ncFoXFkG1LfqbpBM91xMn/GuxFcYf+RcgNxY=\r\n=csMM\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/normalizr_8.2.8_1656693038885_0.567525722917851"},"_hasShrinkwrap":false},"8.2.9":{"name":"@rest-hooks/normalizr","version":"8.2.9","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js"},"require":"./dist/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"cross-env BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","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' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"4.1.0","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.13.0"},"gitHead":"a34477ee514c1d705555dbe5338cca976df665aa","_id":"@rest-hooks/normalizr@8.2.9","_nodeVersion":"16.15.1","_npmVersion":"lerna/5.1.8/node@v16.15.1+x64 (linux)","dist":{"integrity":"sha512-NGCRLg4YqAa0zLg0LqqfmgR8W+W+Ja++3qYLrT12u/oowgOZGOC27iMYuKoqDYQYjgFZzFylLJBfDwKlxiH2UQ==","shasum":"0efd2671fedd521eb21b1e85451c6c430ebf3040","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.2.9.tgz","fileCount":95,"unpackedSize":699137,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFb3XmZMdQS/m1Dn4LaFKVtm0TbgdjlbhLuaxIGAu5MfAiAJjyRN74aNTK2T83pahoSAGfAZ6rIJ/XO0Oj1Abpe/DQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi2CSoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpXhg//aBnUNcebzhukI2TslVIlqUibgbV5fMlSkdWpt0zsARqUG0wf\r\nS5GI4wim6KOeWIIqu6GlzTK0Tgf8oH2Bgm8P5vPaGHg/2Lq6FDqr9Q2KyquS\r\nxAeDiEuxViwejPanClLeQNSLyi9CcRMqR5c2ktJFU6PZRuz6A+/7cxux0d9A\r\nFFFNHJbSJOO8ctkDYBHtBHKx3bY9SebS2H6tPbRPEtfG2idA1JIgArzchO4/\r\nYxAHZpkWzlpYDVAMmxgHckmGQiiZA8mzV6/UQ2s4PlDyi3PfNRCqo1e7a9ps\r\nOItLNT1vG6EUu211BkbRpZPkbUCYvLIe0LntdmOqXweLxbzkt1CY+P/pvm2L\r\nja9ijN5zdxgX/BQG1tUqC4sVBm4TLsr01iamjAKgcLeyH1KQCQubmZf43x/2\r\nW1u+1UihdSoIvgEZwBnZhzCvUbm6txaPrAMdEcrufWUykaqJnXZJP5sv3c/p\r\n/pTu1pYBlQWi1OvTEoyf3K/EUkA/5Tx5oPeQdEZ/5UpJUb8T5fcLhOjjlB1p\r\nTurBYmeFfv5wwdsNOI/CwHE/s2PioDH7tSqk3xsIQ4xNYctQ2ofSUyJqNjdH\r\nbIlI2HS0p1kzx09cfwZQrEM4CNrTD73AEn3mmunmn5d96sMqSisToqis9VIs\r\nF86Zdd/vWrVwadhr+S/p7T8ZlPqxO0aVbjo=\r\n=Cdm9\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/normalizr_8.2.9_1658332328122_0.13882891339450598"},"_hasShrinkwrap":false},"8.2.10":{"name":"@rest-hooks/normalizr","version":"8.2.10","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"cross-env BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"cross-env BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","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' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","test":"jest","test:ci":"jest --ci","test:coverage":"npm run test -- --coverage","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"immutable":"4.1.0","npm-run-all":"^4.1.5","run-p":"^0.0.0"},"dependencies":{"@babel/runtime":"^7.13.0"},"gitHead":"d43a9197272bf682be567b0b92eb23552deada3f","_id":"@rest-hooks/normalizr@8.2.10","_nodeVersion":"16.16.0","_npmVersion":"lerna/5.1.8/node@v16.16.0+x64 (linux)","dist":{"integrity":"sha512-LHk93tLqkiu5RVCEXcmSs6OwWG+peSXQwh9tjfErFmlrx58HzPK3UqfBuJ7leJ6ZHVN85bBjSokbbep36RCsCA==","shasum":"48dd39c73b20eab68a0f41b43ad93a6b1b4f7d67","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.2.10.tgz","fileCount":95,"unpackedSize":699471,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICWp6rHqimKNDiW6MWicdeH/AEbG6TgJF5p/jofBfIauAiEAqB2HiSMNjXBicMaa4B8k/+cYhq/84PVxNFwj2NNw+Ao="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi3Aw2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrkQBAAljg+yRNMfhGwm51RiFcdYIZPB8qSjdW+RbQU5tHgDkAvtm+k\r\nLb/F3b0vjL4seT+VvzwhZPIViXB1kOwbs7ksDuBt+/f0H23uM4Ep9NGzb4RH\r\nbdP+TOUqzE5fk5jbAvwQ+PZ/XWHcv99J4uHNHmenYGNCQ7EeJJVYklbERyie\r\nj0B3rVaoJ1xFNJ24zo/eqFL0eBJQqfGax/BK9DkNfymQheU2oFgHaeWpsGS8\r\n+S9TJOGnBjmXGT7mFwONvf37oYq8R8rxS2D2grSD/mbOjEky419cFV3n8BnP\r\nEKy3naxlT5xDp6mztAFqrFGHOArnr1T4mmGBNW6LOVMEdKedNEwlySP8uSPf\r\n7+Dq+S/XniGH3OecuK6/RV128pwWmlfdqfQPrrAQMPsOtHgBLWQPpfOQw3Ls\r\nwNi0t5Sa7Ty8DP8kVWAZF7HvDCDJTWHZPS9HXVgWKvoqIBPceCWOf+A3R0av\r\nkHeRE1MKcVTZoc+APgPU3pNAsH37cdH3wAN3qB6EEDwpsfGOXJM6/2oTI1hS\r\nT5HHyjzhkFEzpBcug/s9+JC9Zpsteex5zdwkDZxTCkHnZK4rsSoV03AMdz+r\r\n5P7YEnJC2XCsVseANZvurNHR76tEH1qQCdZmi3wVgsZLdXoKVHhPH0enEZgj\r\nVeam9IMnHz++Qje8V8dmj4rCMQW8iGmUiwY=\r\n=DChI\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/normalizr_8.2.10_1658588214205_0.8835135232039182"},"_hasShrinkwrap":false},"8.2.11":{"name":"@rest-hooks/normalizr","version":"8.2.11","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"^7.18.9","@babel/core":"^7.18.9","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.1.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","typescript":"^4.7.4"},"dependencies":{"@babel/runtime":"^7.13.0","npm-run-all":"^4.1.5"},"gitHead":"5d2bfe84df68f8f76aaa2f223f721768f2cabc1e","_id":"@rest-hooks/normalizr@8.2.11","_nodeVersion":"16.16.0","_npmVersion":"lerna/1.8.0/node@v16.16.0+x64 (linux)","dist":{"integrity":"sha512-9lDpemMixEO6/96RyKbpWb6/Rhu8uKAYnRyDaEUWVOtRCb0OIZtjN7Kb8dJW6PKFFmbCgSyIbuUTUk3zt1Qqpg==","shasum":"34c9ff5b25ef4756e29bb57f3be278f96a230542","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.2.11.tgz","fileCount":94,"unpackedSize":650565,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB0wsn8O9tzFCHWFR32LR6JAzYEE5S5F2ta6jVBDl4P+AiEAzbiFXxpayAdmX/F8Lg3zN+VcjSpmwuqP6zFK0xTidEk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4C+MACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoMDxAAiQNUPgk1gXmHZHlbyMifFo+3xLTn3HaYuY4YwI47c92xD5pk\r\n3J/2hp6ZraLpT5lb0S+pNDMHFUAyE/4ZO6nOQpBPqXe8nYJHS9qyaP119yMJ\r\nGleyfGe8HD67r80gzscr7VG4/LD6kReJKTjsBq1Dg5Ns4E51LfMypq7twwa+\r\nldi1X42Iwb2ZNlaZ8OOFA4m4PVwBSQjTpVhK7Bn3GicpYJGqLz3Kt9payuhg\r\nOAiC+VXVP/jiZBTFTjHCi+MCzLCG8OdQ0RmG4lA189AZq+gQPN/En8iVuQ+U\r\n9e8O3kt4oKOLHURubOA2qA2WBCz/XZ3Y8Z2FJhAf84CmzovIPgl1CDwaboAM\r\njwK5RVkaGMW/kg3IbagXFaftY5J2RIgk+LdyIBDRi7OslxTZO8hoPc7Fw9ht\r\n8ASBZF50z0oFlEijLHC0spzsANEBjUWVSNjaLj5Tj6ZS59h6nZm56mAxiEl/\r\nZc5KC+VwvWgwxd699Sv4RF//yPj/PW+iLvFLZPYB1gJcd4KmDaGSNfavO7HL\r\njBv4+i3Fa0teAqWTm3V2Xryf0FPu0zX9HKhRlnyC/RERBS0KXGAJYOslmBn5\r\n9m/Q9eavoekbK0C2rC2z6wKPnQbhCD4jetrNaBj/lFXt+b/D28oZTk3SvvZB\r\njTkdgI7gPtFLU0GNgPwGa4UqIiJ+am9Qcm4=\r\n=Fmn+\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/normalizr_8.2.11_1658859403994_0.19817439457139918"},"_hasShrinkwrap":false},"8.3.0":{"name":"@rest-hooks/normalizr","version":"8.3.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.18.10","@babel/core":"7.18.13","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.1.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","typescript":"4.8.2"},"dependencies":{"@babel/runtime":"^7.13.0","npm-run-all":"^4.1.5"},"gitHead":"c3fe597ffc0f2589756f26c21a5842493f06301e","_id":"@rest-hooks/normalizr@8.3.0","_nodeVersion":"18.8.0","_npmVersion":"lerna/1.11.2/node@v18.8.0+x64 (linux)","dist":{"integrity":"sha512-a7YYiqDthOZBW/NX6KomxbBDdOmcKrNOW2Myk2bSLRVHG3+IFUvYMWquvgLarKS19QlrG2FlljdFIUGyglbfOA==","shasum":"8065b18fa3c1c9ecdeb7571f271182a5051f5a97","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.3.0.tgz","fileCount":99,"unpackedSize":611796,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICZxdTjJJ9OIOETT3dTwGmZnw7tTdXUCKy9OjWGNRzcVAiAZFytPi7tOi7M1rkxtAlCoROLFN8iCEY/JqIoD99x4Ug=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFDCkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpT2Q//cSRw9P5iX1ewdzigLSiygxDE2RDKExL34Zq7KYcAKsiGR25O\r\nsdi5gTTbVcim22DFNmdEjWlkEDF4tBLieZjQEh2PjwtLL2TrJngg243Sj0pl\r\ncbSOLFO9Az0Pjnx6FkTWPYGY/3LLSJE7pHZly9Sk4sDd/EX8FEWasbWhiFFd\r\nfpqQd47sO/SSXalp/0blETuzw4YQE5qrMR3MjVdsq9eFsh1kDpByOPtXk/Fr\r\nSh1eJu2n2IlB3BjZ+kdebM1euvDOcTNh2FE5ub/hkLWl3CmFVMI4LreKGoGh\r\naj9jMxuhR4kT2b5u/LEnnGWiOK16w/GwIGsNvwytLaTK6qEKdbjIHKbyZxPf\r\nD7+5jt0dwFbtxJQ08/unyOIqCJc2yYbA4ZZdEeccDh9pLHrE4IpWWpzu4aDN\r\nFzZ7XZHeylumCHH69GIPDKgQmByOBk6EJfZvyyGs5CLyN+Vi8pjmIZidkxHq\r\nB4GXRyHV15w7u+cWtmlyGv+mzZ6f7IpW9y70cWS9tZcz73nr0BN0FI79lvXb\r\nxzmve2qXxSY6LB+6WD0Bw1qZDe8ShHNs8mZVC9JbDER8Dn3Me6jtEI7mPuWC\r\nGDdltXiJaaP+NhDPzKYrA43deEdmK9j3IV6kzONl7idVc8nkHw6euz6w4u7N\r\nnRJuCVw30bB3t3064LDBKzYeXETknbDcAfw=\r\n=Tlp4\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/normalizr_8.3.0_1662267556074_0.9956948599139874"},"_hasShrinkwrap":false},"8.3.1":{"name":"@rest-hooks/normalizr","version":"8.3.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.18.10","@babel/core":"7.19.0","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.1.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","typescript":"4.8.3"},"dependencies":{"@babel/runtime":"^7.13.0","npm-run-all":"^4.1.5"},"gitHead":"bcd34703c6b56af10326aef525830a29c39be368","_id":"@rest-hooks/normalizr@8.3.1","_nodeVersion":"18.8.0","_npmVersion":"lerna/1.11.2/node@v18.8.0+x64 (linux)","dist":{"integrity":"sha512-m0E+yF/T2UMRaRnCFQ9TD1/JVTExDEQkmxWqGyG+2HTURH6iSDrCChkqlH6aAPEKIDMpObv0n2rDEX/JF+3ryg==","shasum":"dda2ce51959339a2110cce31abc55caf12044986","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-8.3.1.tgz","fileCount":99,"unpackedSize":611795,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCaCoxodneOEK/88QGjzEOxWvDDEGoeDsPnxGMOljvwtgIgVlFEOcX1q3XItuxxx5/3FpHYG07vbEC4mlJgaUK9GxU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjHSDPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq8ug/7B9CNyX2O6XFZrKxWWUte+0qIw3Pojm/wGVeTwo7iiu8AUpGH\r\n+t/RIKXzJ9e1Nx5zfpXQI6Z7ctekgsXAAmKYGzsvVlbAHTLm/leweIQDhce0\r\n/VEFxAPTisBYREwHUL3z08kklUVxzA/JfrPxmOsdf1yw9E9uM12Ah4E9i/sc\r\n4OSHees/d26iu5OmP1NBHewoUweRqLuiA+XOJUd3oBq3tVlC5hDjA3nX104Q\r\ncCdHPaf6pFGGAJHI+dpHAHhAbajDS9udjOl/+pcfIloGS46PwHHAiJkbV2UK\r\ntHWAZVpMqTDphCzBHqTEf7mxD5fslLcHswiWEVjz4Kz0sczV3/tpEE+Z4Kba\r\n2iVYEBEtWuh6wgCN2xCu7/lvZBf1XkRiJUPDZdqTpLXCbv9m+2yOACBk7eRt\r\nFoitqe1AQlx2JsyKkvjpjvuhM9y4os2rcf1gm/KNigDy6BSvVbdwJwWKZkQu\r\n+z00YZ3cPjsJe1LOOxshI0OAxVCxo1uYxq4rrZF+Qgz2mOxL2yVEtDO8wzqj\r\nssu5PG2xblNdCo5R6pbeAziXYQDCToeF33/mO9CZY93E+qKMJHJJvQXDt8mK\r\nrhH89HO9BZJcx7bsNyJBz+r9UJOQiF4Zm0BaMRcOR9GpffKdnM5kte5C0roi\r\nreHUG/Pugf3ET/lsEP/ziY3ZS2g8Fr1bJvY=\r\n=veMN\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/normalizr_8.3.1_1662853327057_0.5710323575404761"},"_hasShrinkwrap":false},"9.0.0-beta.0":{"name":"@rest-hooks/normalizr","version":"9.0.0-beta.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.18.10","@babel/core":"7.19.1","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.1.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"},"dependencies":{"@babel/runtime":"^7.13.0","npm-run-all":"^4.1.5"},"gitHead":"5eca3fa097a45c4b72688f561605d7e64d308b17","readme":"# normalizr\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 version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](./docs/README.md)\n  * [Build Files](./docs/README.md#build-files)\n* [Quick Start](https://resthooks.io/docs/api/schema)\n* [API](https://resthooks.io/docs/api/Entity)\n  * [normalize](./docs/api.md#normalizedata-schema)\n  * [denormalize](./docs/api.md#denormalizeinput-schema-entities)\n  * [schema](https://resthooks.io/docs/api/schema)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/normalizr-github)\n* [Relational Data](/examples/normalizr-relationships)\n* [Interactive Redux](/examples/normalizr-redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema, Entity } from '@rest-hooks/normalizr';\n\n// Define a users schema\nclass User extends Entity {\n  pk() { return this.id }\n}\n\n// Define your comments schema\nclass Comment extends Entity {\n  pk() { return this.id }\n\n  static schema = {\n    commenter: User,\n  }\n}\n\n// Define your article\nclass Article extends Entity {\n  pk() { return this.id }\n\n  static schema = {\n  author: User,\n  comments: [Comment]\n  }\n}\n\nconst normalizedData = normalize(originalData, Article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"Article\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"User\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"Comment\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@9.0.0-beta.0","_nodeVersion":"18.8.0","_npmVersion":"lerna/1.11.2/node@v18.8.0+x64 (linux)","dist":{"integrity":"sha512-Ib+syd7MKMJ3TFBk1kQFMj6//9j5vWnE5JU4FCJm7Bn6A07ZYLq98Q3I5NVHv/0aBjGt2GyWZ9MytlzkXvas5w==","shasum":"67b4470034778c6c53d504daad40961aba2e1305","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-9.0.0-beta.0.tgz","fileCount":110,"unpackedSize":369288,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCniBcuJ6DDrsUELA3Ggi0LHe06h7ywNURUtr9QnGx8nQIgP+qY7zoZGvpvrOsByeY6y0S5WXsuIgqhuDhN+J44EvM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJJzgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq2QQ//YT/wDyvWqWPFTS6mwUkD1Yq391DRd2/BROlmMe5FhCJjM2YE\r\nuL6n8HI07VuG5YNgl4TK6OYaFWn+esQ9Vt3vNGA2yqTstzrYOHHE47/cYpbs\r\nvR7ZRRq1xBVpVjKcW8nygGRDEFEy9Vl42Qh/m2P8BS4ky3P5lZDUo7Mvq+Vt\r\nUOkdyFL2b7F2DxQoAFtTifgvMJdlUIyMo/gdGZ2O74n/2Usmur+ihQR3atLQ\r\nVJR6u+fRhJXKrOtjbYJS+gHztzxqF2lkMYSy+d0JI4jWpDT5pBRWe8RKREUX\r\n0Y6WjKTi6DSBi8eOoAOGaqeAlK6HdW/70xVBzrSyiKxDmHEAc3ud0ibqOFcs\r\n9PHt6tXBq/CL990L8zfQG5jC75nvYXbSa5y7olAyFIDfmP7Iq7LKGSN6hD0v\r\n753XruSuKfMy0TbFY9jR43UzGvNrc3ZttZCLPKwDVCK1zNCKAsL0+C+OouWj\r\nfl1uaKWFLCXf1I0ChxZ2eIVUZwAVqQ130U6TMDe5LRaEHcNuwOmtJvS9qZJZ\r\ngjfCDsMn7i8muP727d6onsuCLJaTNSLvMu6/0zmrZYvjcto0X5vZ/GoWN6un\r\nz8x8q3Q2jvrx7H5rdxctK8AZioP9YDMYB+yk2EMSkpUXBGSB8u07ty++HG+G\r\n5gRm8zjO1LXH1RcQTa0zyajFZRlJcxMkI/Q=\r\n=SPT2\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/normalizr_9.0.0-beta.0_1663343839796_0.921362840867856"},"_hasShrinkwrap":false},"9.0.0-beta.1":{"name":"@rest-hooks/normalizr","version":"9.0.0-beta.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.18.10","@babel/core":"7.19.1","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.1.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"},"dependencies":{"@babel/runtime":"^7.13.0","npm-run-all":"^4.1.5"},"gitHead":"c542809da0f5020bbb7d1694b67f75fc9250f759","readme":"# normalizr\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 version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](./docs/README.md)\n  * [Build Files](./docs/README.md#build-files)\n* [Quick Start](https://resthooks.io/docs/api/schema)\n* [API](https://resthooks.io/docs/api/Entity)\n  * [normalize](./docs/api.md#normalizedata-schema)\n  * [denormalize](./docs/api.md#denormalizeinput-schema-entities)\n  * [schema](https://resthooks.io/docs/api/schema)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/normalizr-github)\n* [Relational Data](/examples/normalizr-relationships)\n* [Interactive Redux](/examples/normalizr-redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema, Entity } from '@rest-hooks/normalizr';\n\n// Define a users schema\nclass User extends Entity {\n  pk() { return this.id }\n}\n\n// Define your comments schema\nclass Comment extends Entity {\n  pk() { return this.id }\n\n  static schema = {\n    commenter: User,\n  }\n}\n\n// Define your article\nclass Article extends Entity {\n  pk() { return this.id }\n\n  static schema = {\n  author: User,\n  comments: [Comment]\n  }\n}\n\nconst normalizedData = normalize(originalData, Article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"Article\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"User\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"Comment\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@9.0.0-beta.1","_nodeVersion":"18.8.0","_npmVersion":"lerna/1.11.2/node@v18.8.0+x64 (linux)","dist":{"integrity":"sha512-8Dj4uH1jtaBhS3nvaMRlmkqiOxshAsiOtWoD8cFFoy3M9POF8k9/EE87Ajnjk74nH8Gky2UqW+OiPJ+l76ySVg==","shasum":"739ae3a8f6d8b2ae9c3b78c99b714c3d46876f01","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-9.0.0-beta.1.tgz","fileCount":110,"unpackedSize":373718,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICq+HatE9hqPHNFaFtwSNZWrqrM3MAFQMWDxqnU4AD+9AiEAlOYofoAit/lJQwJcI9+h+hRVtok+4NSLCq/qlpP1T08="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJjkBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoxWA/+ILTjz0sA9AYOWtMCgggdlFBT7ROBQ3y24gybd1EHmwkuuMlp\r\nYbRHrtf/WKN+XvXMUxjqaKZXRlg3qNG/lVTCEWzbsqc6cLvPLZ+HuuULu3nK\r\n2aCNRGfZEBfpNSHZ8oTLIs9PLEOq1xr8Hq0apGe08mbaN3JXCo09oHtvvVa3\r\n0AMAd7Ixy/lPPyf+S1ngM0oh/IFQIFra4iAThdatEgCliYIvgtDOsWtMimoj\r\nbDu2bC576JKPAlSlJl6EmqvoR/ndR6V/yWmpsoAqQaaJNwKLNYM35XUiSgxW\r\nEBG1DjSj5Dlqip5nbjOjtRDB8pe0rwgHxEmdD/PsZFvPw09VxIb0ZdrfhaO3\r\nBcv8HAX4yZY1fod0rulbP7I6hMNIXA9AYUTLjp4YI1kytOLBnsl/jzkGDEuv\r\nJIURQF0QZ1bZdzk8DRK7ObpUu3TeNaLvSog53yTNf7X9I9E75f7f4YF0OWQJ\r\nAIa2BFr5DzfjzgfkXPjIyEOWoo//RRZ3b/E0Xvtaml4R1i15s9V+dqOrYgHJ\r\n34ow4Pcw9kDIH9ZazytRhOA5ooPb4A6xRw+Sw3eqfY+48xD/ck3jLiNxbC6w\r\nKIhkrKvwGDyjonKH+loeThAGgxlTcchVeCm31QgM25mD/56DmCzLUEqtyiq2\r\nr9L8nWebOnVJ6YNQQqXLmkqQ9W75FAIqxXE=\r\n=R6U/\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/normalizr_9.0.0-beta.1_1663449345506_0.36825082864448144"},"_hasShrinkwrap":false},"9.0.0-beta.2":{"name":"@rest-hooks/normalizr","version":"9.0.0-beta.2","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.18.10","@babel/core":"7.19.1","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.1.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"},"dependencies":{"@babel/runtime":"^7.13.0","npm-run-all":"^4.1.5"},"gitHead":"e111578cefa1cdd5f467aad6c24edfa0b701ab16","readme":"# normalizr\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 version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](./docs/README.md)\n  * [Build Files](./docs/README.md#build-files)\n* [Quick Start](https://resthooks.io/docs/api/schema)\n* [API](https://resthooks.io/docs/api/Entity)\n  * [normalize](./docs/api.md#normalizedata-schema)\n  * [denormalize](./docs/api.md#denormalizeinput-schema-entities)\n  * [schema](https://resthooks.io/docs/api/schema)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/normalizr-github)\n* [Relational Data](/examples/normalizr-relationships)\n* [Interactive Redux](/examples/normalizr-redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema, Entity } from '@rest-hooks/normalizr';\n\n// Define a users schema\nclass User extends Entity {\n  pk() { return this.id }\n}\n\n// Define your comments schema\nclass Comment extends Entity {\n  pk() { return this.id }\n\n  static schema = {\n    commenter: User,\n  }\n}\n\n// Define your article\nclass Article extends Entity {\n  pk() { return this.id }\n\n  static schema = {\n  author: User,\n  comments: [Comment]\n  }\n}\n\nconst normalizedData = normalize(originalData, Article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"Article\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"User\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"Comment\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","_id":"@rest-hooks/normalizr@9.0.0-beta.2","_nodeVersion":"18.8.0","_npmVersion":"lerna/1.11.2/node@v18.8.0+x64 (linux)","dist":{"integrity":"sha512-5mAUVHh3FPZG2nCJFNnhtYYSTMUQ8R5KahRnmOIT98fAFktV5mWoNozC7EnSVvqqgsWtpD7wwHmlaeRuGHiDIA==","shasum":"c03524342f23814b5b8fe6d146d89e49e00aeead","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-9.0.0-beta.2.tgz","fileCount":110,"unpackedSize":373755,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDUDrSN076GaWXwzd6XcClxB/GiiIRuH0JdlFiNnE0E2gIgYLqcdLdRoLXx06qhANWRuIICUB6jDTFBOToEWzY64kI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKMNKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo55hAAoFU2KJnaytmfPAIES6KoaiCh2YbK5tIf9c4snQMH7OPuQmvK\r\nGj6WULOOvc8F+sZJ7fqS2BC9rXS1QzjWR3GcWevsQO7b28Bu4/+GGZ5otyq0\r\nKvOQ8f7ESHXCw7s+sIwGcLDXniOS/cZdOVQHwb2wmQr/0VeZuO0ShqsL91rc\r\nA5a+gQF5hozrG5SE4FgQdAvhm9EYoNfOeq9BAYE483Ij9lqWFwIAzExX95G6\r\nrnS4+II5gSIARAkd03hiAbb4KdblvRb+QzPCM5SZKPdbbhULTg9PtQiX9wdT\r\niHzryvLyfPv2jRn9v0/780ljNv5vFX8i5Nz8HDtj7qEIWhf1jbO7xjI/Jnnw\r\nwWOeJypc4fDUjEzuKA0PktO0UqNAW0XZCkrGNfQKZarhCjEqoJIfLi9Y59kH\r\nrU4JFVVkXo7SGdDai6bb480sU1JhujkmI33+d4GCdtmwY75Lp887M9bUbs3w\r\n5BP3XwVBLY/MMvZF5mTIFsWMfj96mlOLT/SDcT95okFP9a4Q+bIuhpu33t4c\r\nM+hU41qvrptjbHbGQHlBxFMevbabELkdaHTaFf+k4M9t+IxKpA/pPFeWbmjN\r\nwCb5AaErKIO9je162oIlswBXqGob32did7/39ST3HQx/rjjRL/1Q28gGE0yd\r\nG7lHfLfp7qCj6pkcqf2ueSrrzNN2ctuoQuU=\r\n=P17K\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/normalizr_9.0.0-beta.2_1663615818601_0.6641484241290125"},"_hasShrinkwrap":false},"9.0.0":{"name":"@rest-hooks/normalizr","version":"9.0.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.18.10","@babel/core":"7.19.1","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.1.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"},"dependencies":{"@babel/runtime":"^7.13.0","npm-run-all":"^4.1.5"},"gitHead":"68e5a619f000f10ff814d49f6ed5b9c1c9c09bf4","_id":"@rest-hooks/normalizr@9.0.0","_nodeVersion":"18.8.0","_npmVersion":"lerna/1.11.2/node@v18.8.0+x64 (linux)","dist":{"integrity":"sha512-jiqX+i1DNiBMA7fPT0nRmKMNoyi0lC6iWrBPt08SvZZdA8ukShNzzjh8JxibahVtU3/RtZwl5BBhjAmeiQWP0Q==","shasum":"d7d7399229d343e1d418e242a97812594ca6bd6d","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-9.0.0.tgz","fileCount":110,"unpackedSize":373748,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFbCCX9IrRKwVLed8RDIx8ZOukgMtKoLnge5B5QDWOvfAiEAuNpePrVwoQljNThjdEVQ33MVBv5AlAJfWfeKZDILhe0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKMXyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo+Kg//XHnDI5D0FDPHYnJonWP11iy5mWyTYyBJF598onpaR8/Z9ATK\r\noi9MPNuZETypTdyWPMU8o/hD8cQEJtawfB/ARtoL2O5bUQ1JBFw4DnIisxUd\r\nBYZOcQLCJaffMUxmmR+9EkSF0a1e5W2ewxkVDAfZLvuhJFCy0wDpU0pN7Dv8\r\nhUzSh4/R0boGCsfCSBUsK6fm+JYc98pZxfiPhmfHgqJ7729PusxG9zexOdCy\r\nogZMFVFUTN9AdhN0g0/u5tAspj5X7j0RlUagfuDh88TQf4/2/46N+nxG1IGk\r\ndk5ZSjVzMSQWYo+w4kJMqltSjhY/bIIK2meeWlxFXaQPwK2YpTZpAFygSivo\r\nE9iYqpZWuJ1EIp9pKLz0f5RqS4YnY1y4ovKelpGR14i71lyQ+dxq8UezGy3C\r\nDrTi8af3wgbyIqSp+GDdv5nadB7QCwtFguy4rWL4P+U7OWHItwzae8vuVZNH\r\nRKQhMsv9h8yKG7ldVyVlD3WpTkdGRw1L2sIZ6wLiWI83dqZ3wP5CdBdJowmD\r\nJhb/ZoqXIRt/BgI8PXWKM2BuuHDbodwk1agbPVSC07KZFsWOg1+zlGaoy7Qp\r\nlPcroKi2TMlGAxjk1+5p/iaio60QVnrVPGJx6diD4a8z4sUgdJXj7QQsjuV7\r\nRRiDqGPCrOoD9AMDkSQrVKE+byVXNlwwYaQ=\r\n=VbKM\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/normalizr_9.0.0_1663616498375_0.22087939075759144"},"_hasShrinkwrap":false},"9.0.1":{"name":"@rest-hooks/normalizr","version":"9.0.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.19.3","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.1.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"},"dependencies":{"@babel/runtime":"^7.13.0","npm-run-all":"^4.1.5"},"gitHead":"c5079b6eae8b77593a32423bde11cf5805f1a994","_id":"@rest-hooks/normalizr@9.0.1","_nodeVersion":"18.7.0","_npmVersion":"lerna/1.11.3/node@v18.7.0+x64 (linux)","dist":{"integrity":"sha512-JMZYheel4yAwpvyb+FOcBUnO6uTYL9Q188taY1YJQyhTpzNLFjHe45fVifmTycpUdDG7o+mQuq1OlbSBiNggZg==","shasum":"5f2f08a1411ac5b0272e3268086f119bb43b5153","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-9.0.1.tgz","fileCount":110,"unpackedSize":373117,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDvJxNR4Wa2i+M+oflXBKLY4jREaHVzxxH0si7vxwOgIAiEAtFEtMKGA+gyw5rbfIAPo1um5noUI9Iy/KVYj6OW/RUM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjN5bFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpR+RAAoaNHZEFHh4IKkTiMM5zhVejSp4N87T3Ip6pJazSueTaSWZvM\r\ntvNehcbpgwnFWb7osTVxGn++ZmjN1AuwEEcKXR7aNPAxn4mipg9P80NJj3OO\r\n2kTSKjIpONtlpfrpsUE/0mEohNkpa1/DaGZKp5JS95IRYzgpaiQSpPh4LkU0\r\nClkrdEomD4zyIHJdWPD9J2gEJavL26o8zq3NcbhAyMbC4sFO+OSaXoeEOf0p\r\n6iVDXGZsE1t97UYCyZWNzgg45utOfkQHvcjXFcp5yHfH+s0p1uWwRL9NM6R3\r\negfy6/ASjJFRlUNCzHlNOzsjPl5J4d5j0S06TLC43+u2Jb67syVA1IyReaMl\r\nL0nP0jyM+NUn9GttJro3+En6hyS2iTpNPCurnf+/iX+M+hea7EjwcTGYCGWL\r\nfBnUuV3lV/hXmzbh2KJiPFqJ+galC9Ra2MiAvyDdxXN/5HFecdzB5j0YhCbk\r\nzIYCK14c3V/mtGXu45O3A3rbICvLDk/xd1j9yMiOTLBn2EIQGKU3f/OWRlrm\r\n7h2VF9bCyKajgh0adV4DhZqPKDek1l8a/0QmIEU+kyl8BAVLhhi0Z4A/InxD\r\nSGxUN1oDTjNBO5JDLrns2oG7br0qYpqpbqtA1GmUFa67tpamK236iCkAsjds\r\nSsHx98FcRjAPETUgvKX9dtTdFYjXwDPPDv4=\r\n=dVHi\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/normalizr_9.0.1_1664587461384_0.11702637900660506"},"_hasShrinkwrap":false},"9.1.0":{"name":"@rest-hooks/normalizr","version":"9.1.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.19.6","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.1.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"},"dependencies":{"@babel/runtime":"^7.13.0","npm-run-all":"^4.1.5"},"gitHead":"da31e4b96f2a337951b131c131b5ab8308804c1c","_id":"@rest-hooks/normalizr@9.1.0","_nodeVersion":"18.11.0","_npmVersion":"lerna/1.12.0/node@v18.11.0+x64 (linux)","dist":{"integrity":"sha512-/I1Q7Kbex6+FpPTjlbnJvqVFZmYoy6Ma7Idb7j0QqdxDIz6W89946nN6k+qiPkoC8+u8MwKHyfPrW7GNlaPVVg==","shasum":"156e69a5e17369d8bacd583104296fc2baed7293","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-9.1.0.tgz","fileCount":110,"unpackedSize":372063,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC7xUvYQHzUidDya8GSBaDsmcq0xPotjHS9p+yCF7xuyAiEApdIMqNPEA0LXycKEExqG0R7YBXfuRviqye17H0Z25Qc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjW0zsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo6gQ/8CYe8UsUGw+xrW4DINVMSa4gP6S9hP62v7brSujBOTOMnHbna\r\n0Qz7hnLzc45qLaI6zn/t6OgD5IV5bkHiDwLIKoV4LmUI3cw0sHV8opF73hy2\r\nsTr5fY4JddZinmDc4fWlWCCRuJs2X4DxlqVYNCd0Fr+lsg0YBTuw2F4lJdNk\r\nZZPMVl7jaMtSSeKCimx70MxD+FAvuXRAJSOMTDUcFfYUbydG3e6Yxd1cQPvY\r\nEHMrVIjxF6b89+q8f728hu0kIY/E5HdQpaf5hfY51dTiOot8Ea7wV2gxShwU\r\nqXwgen0Ws1+2noA+ntUIgxGFRMTY84ChhvaleeKzxzXw4KXyL8jgXyZeAqxE\r\nN8AlgxLxoBIm1co/ptZKnLb6hPmTij8d3HlLsBAFVBxLdZ4ss6yDv1REjjVl\r\nsA4InqvQ27scQbR0CqMiMe/UWiQ0ErXVsGAwa027pSPHJb77D2sWsSWKUKVM\r\nSYMy9NwEmg04O9E7QkN/ZPwMFEf7fBDY9+46lzw9jFzwqY68QCv4ughALrxQ\r\n3owRVmtZNLleo44/NYHAMiIPTzyNP5k6/spjcOyJ+xar9pCL1YzcQCUIJW1e\r\ny4vRuOSF3ydq8vG/tvnK3/fpTWvIHlKIm6Sb7aUslf1vtzSuhziAoBBsH0IH\r\ncStcaNYJKUcPCqOgjMhQDhcJUVNrzxmTlLU=\r\n=IY2w\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/normalizr_9.1.0_1666927852655_0.663499787366362"},"_hasShrinkwrap":false},"9.2.0":{"name":"@rest-hooks/normalizr","version":"9.2.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.20.2","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.1.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"},"dependencies":{"@babel/runtime":"^7.13.0","npm-run-all":"^4.1.5"},"gitHead":"1b4f0fca08dbcf745107824e6a082a5daff099e7","_id":"@rest-hooks/normalizr@9.2.0","_nodeVersion":"18.7.0","_npmVersion":"lerna/1.12.0/node@v18.7.0+x64 (linux)","dist":{"integrity":"sha512-P/o7Um6vI0M48/K966XhbP6CDep3drifpWeyjOtJ1GErWE5sTAx0rNR8VvuuOsd5i54EmE/gTWZWETdAH/PP2A==","shasum":"1163d4c4f63e77bf61ac19a4eba9d1ed69f80ce0","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-9.2.0.tgz","fileCount":110,"unpackedSize":374120,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICUDw971n9buegMh2SEZSOZhlEmKGIB+kEkDb3tXurAAAiEA+HG3nNnUgEzBx56WqoLxltO9V1Xd2gdOET8WJNd6mUs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaFn/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoXyw//fmF+H5HqYaC0j3vbtpNXWJEDI3sTpl7NXf5HIJJJiFeHmU3P\r\nHoNrcUuDo2E+ZyfBerjPH2sDM3/auCL1tcN33W5rqvBdinouhWPyHOi3rGtC\r\n4b8bMGHyiaIudtbIdH45nTQrMoH7UAUHpdox4zKpBeuJz0xyba+igKJz4lJ9\r\nbdJ+2ht26lK4gkk+KjP2kKnBpwOeO3yq9ppGJOKbPXiRUwx4vKpSlrvYiof9\r\n6d0/prQhcjw8UqZvuEESus8ohNBEFQ12XG1eJOJnUTiVE09IrJtyCw4QrgPv\r\nY9rGz0syZq8/6VTvSLlCglDoLx9nuIGB1xeOBc2BtltlErGdSd812eIrtRp4\r\nYgfl9gqMDPY37dhIMPe0tMb+MkslhkTYi1CgvsEQcx+oNnPjY0aeUKUZ3ssl\r\npog9FuJ0Z1+uSyZVZZZP5mgL4xIDPlve34QqEIQSHQCjaHG2UZkc67lRk5Is\r\n/BmFH7+VX6JmQGhP+mcNnd21Obvou/GURuh7k5ou81+cKlo/fU8HCH5znnHP\r\nossLbjzUEXqEY05TDUQ26bnUrEXrd4Nwaq6s5CGSAXo/7aPFvaGPPydvU7k+\r\niSPWeDr6fLEkEDo0yWCEGOETkbFCR5oGI2gYl/5O5+Gc6Go+ANHszaR5e/ei\r\npBHe5NTxliLcaHU8gAPUMlnwJTuBg+Ocxcc=\r\n=/3x4\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/normalizr_9.2.0_1667783167105_0.3030658619481452"},"_hasShrinkwrap":false},"9.3.0":{"name":"@rest-hooks/normalizr","version":"9.3.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.20.2","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.1.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"},"dependencies":{"@babel/runtime":"^7.13.0","npm-run-all":"^4.1.5"},"gitHead":"709aaff0bf50a7be890a68eb348b3710163eafff","_id":"@rest-hooks/normalizr@9.3.0","_nodeVersion":"18.11.0","_npmVersion":"lerna/1.12.0/node@v18.11.0+x64 (linux)","dist":{"integrity":"sha512-Oz/SgwTkSpiyVteH26gqslwEq1GfIOuSnLskT4L/3zB6O+tR+87pmUGHZfXoZcYK47gxoOfg1QaacPXrvCmwNA==","shasum":"c8b70cdc7f4c950ce41a2cbb47cf250e175619c1","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-9.3.0.tgz","fileCount":110,"unpackedSize":373641,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD6T2lEdNbl8XZ+SPTPaAM6WlIBdwQ8LS9d20udMDZOpAIgMokZTDPB/wWtniZ+39jh5pnQ1d8kKFl2KvnQ8+uy7rE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjcIoMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqLERAAjXYuqRV0lUccFK2zV993/p0zoTbH1F1a+IV6/tSAktUM3/jU\r\nYaM6Go8C7TNNLBzTdC8fPqgoZKn4YDzr8m4VYYm1D2FLNquZFdwuo1R6D3vU\r\nc2wgjnWE2K28m5jfQ8qbj/O3dsJtSYArkTRDz78FvVhrNfmR00X4+hEyKXjG\r\n9DY2M9dI4Wi5DE20LMbsntQ57CcPbREWuH2cEo7PRlteKwlrnxVvn9BEJ03h\r\nFEv/c42NGYYdh90Qqq9BFflJX9d1EPzLCz4lxCK9HfDMEH95XP3k7Qp+tLvr\r\nL9RNc9k7JQ3hTLRAWQMpkFOyKwDW4ukWCCydba4QybB1cMafC8hrQdQKpIyw\r\n6LIs7IaYxjFIBf/3mN5/JwgIntvFqqxBNh6mBA6u1dgFSesQcCWHZi0ebHS2\r\n+mv0ZI4ABJbYcf8WSY70MXmWCdCJdm3wuQ8HDRFRLDFZqNcy4KldCL1afHAB\r\n/7G3Jc451fwUtAcHZpfsI3lsJvIAD7H4OoID9h26bM6deTc/ebrBygt+4Eeo\r\n0z93dGNymKg8td9C6yxluSGDLxd6+vSuBahms22q9q5lIj34CNqzYY+fi2G2\r\nUlLYyIJ26cg3F12brvQIxGqFJMmnLotFWxPDrqukTumsv4n/xvz6y8fAb7rB\r\ngwI9xXG5yE4ugML9URXuYa2PyzD4qrR274Y=\r\n=rmXp\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/normalizr_9.3.0_1668319756128_0.45624149100643074"},"_hasShrinkwrap":false},"9.3.1":{"name":"@rest-hooks/normalizr","version":"9.3.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.20.2","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.1.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"},"dependencies":{"@babel/runtime":"^7.13.0","npm-run-all":"^4.1.5"},"gitHead":"b2bfdbbc1b196f6d310af14cc664c7312f1af6c9","_id":"@rest-hooks/normalizr@9.3.1","_nodeVersion":"18.11.0","_npmVersion":"lerna/1.12.0/node@v18.11.0+x64 (linux)","dist":{"integrity":"sha512-QLRacR+Gbvcm6SPgNrXDqwD0qoEXdK2/r8f687IrOsRCgxhx4zBay7AlCV7jIcS64okv/S1q3+5KGeEeicl/Qw==","shasum":"acd30795d34f25e98a19b90a0b7755e1560c829f","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-9.3.1.tgz","fileCount":110,"unpackedSize":373631,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkBqk0z/K33GAB0VsxpsGMDldj+xUnGsBVKnIruRXgBAIgAu4L0xvq18FML1Adfzre/vNJoOg71B0f7dw1+3zguRA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjcSfIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmot0w//UKhMACNQQwmgQ+96CuY0IHXOTTPhiYbJLjUIcAjYncSUImCu\r\ni9WJ4Z927k9qIdTv4+EzQH4U+GfVVQ0SHIgVuSGGbklTM46smxx311KpVImD\r\nUSQzquY+OgpcuJQjDoiz2hETRerFunZp9HF9z2VadoYVP8AfOAL2nn9QvRqL\r\noR0c/jqO+MKFR+oZwhvFbfdaRzcgvPy+RHkTeD5GibKOCE5L8R9zXpJrVzpB\r\nIVwSJV0YaUF6pu3AofBZGSNDPeEP/A1LcSw2bK1B8GgLUFKr2w8vMNxBZIik\r\ngrVd/kKZFthWbkCzsmdKgz2J1lbO/6iVQJeRvE6QILbSN1Ab+IYYj6b3VLki\r\nY69lqL4U4WMmBjXH1As5wEPMmdcJeI3SjFnNL7xolkrBsy8AlXQHqx0fl0FJ\r\nSIS1SoabtSllomdo6bRfT+h9Ss0L/dbxKyFHKc8Wx1kZ85mZP8OBizll5iTE\r\nSmtNkZAn3uwUgtGd+C+cuD3kR3Tbq4OtXgTj7XB+UbkWnrrEBfi8MfnSl9Mz\r\ni0kIIIBDYUh+KkQZaSdIuOpkYZPDRT80BbbOqbgXI5M8NC01Tg1Ac6ToyhTk\r\nvVMCtMur95Nesw5ZtAfx0l4K6lFxc1xaJ91rEzPrGuohGpRkc/CPbT097161\r\n+KcNE231a5vov0IH0Dg6Pvib482AMWcl5pE=\r\n=xAVC\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/normalizr_9.3.1_1668360136270_0.8811064204839969"},"_hasShrinkwrap":false},"9.3.2":{"name":"@rest-hooks/normalizr","version":"9.3.2","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.20.5","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.1.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"},"dependencies":{"@babel/runtime":"^7.17.0","core-js":"^3.17.0","npm-run-all":"^4.1.5"},"gitHead":"27c3f8290727a434b9382c6c0e6c78e8fc1febcd","_id":"@rest-hooks/normalizr@9.3.2","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.13.0/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-OUJtPFkiBfhq/ZNhosCu2yYubTzjhsetOEPnyrspAwHPg1ocadQ8mu415lEDEcdkrtt9B/qd6N9VeBmrcMx6CQ==","shasum":"068be506f439e5d76cb0754bf75c921d9c5e576b","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-9.3.2.tgz","fileCount":110,"unpackedSize":497249,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDM1mM1tlmE0hJGvM3uF2WykPWbMbOCEpZ7smaiZSStIAIgb4IZh9aoRLeBtYk+FOxwa4usl3/ycxz9zXAV/XG/ueI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjVwEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrLJQ/+IipFkyWIeQMCDYlwzqg7n1OeODh605YZxz6/n9u/Oze1lVlI\r\nOL10WaeOaVaF0deXZ7Ksh8IfIgnrsNu0IM3eGEuylnw3cR1TKmWfhu43+o5G\r\nHxoO8U7BYbXR/pQP2Y7WpNvCGcWRz+rVOFGsloUX7IYm6Fsl8ep1r8KDKl1I\r\nlzvzGEVmKltECPRm3b7vxrig0/3BZFVQs77uT658+uP8HBHXLbbmC8ZdXO3K\r\nmreox3eWOkjWa0tHfIWn2e02bCpqE5gY0eNC+E4xlKwgw4+w3SdAz9UhCvuf\r\n4jIwSaSmEhB9V/v8JDvMb80eT/UJWaMlwHxMvZgPJbgh6f9dCNTzE4d2T19h\r\n+NJO8OmztTCHSDXH3CeJIilYAz+bYaDc4PE7dn3ku3tMUNt13NY3uYPB6MHa\r\n0DzxjpsEcwjvhKms2VTUT8HrnYrj4NKZNuPYBsuvJj2cVM3Mqe0r4lLColfv\r\n8xAtwmUuafE4BQs/nE0vdQcFrGjOo2gM4jw/GxY6yB3HOLdohWt6H++epg3a\r\n85T+q3DhVH3AssQDQl4e4WEVsNCRkZp03jJLPow5WPeAiU8qI6FwRblq+se7\r\nN778WbOqz9n/CvkooBjeNNF1RA8knkmPnVqKM3J/PpZerfvFxPP9MXy+IqlL\r\nEA5FCt1gTwcDLn+lovDBz0OvZGHPh66vat8=\r\n=1XpF\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/normalizr_9.3.2_1670208516128_0.3650817621728044"},"_hasShrinkwrap":false},"9.3.3-beta.0":{"name":"@rest-hooks/normalizr","version":"9.3.3-beta.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.20.5","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.1.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"},"dependencies":{"@babel/runtime":"^7.17.0","npm-run-all":"^4.1.5"},"readme":"# normalizr\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 version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n* [Introduction](./docs/README.md)\n  * [Build Files](./docs/README.md#build-files)\n* [Quick Start](https://resthooks.io/docs/api/schema)\n* [API](https://resthooks.io/docs/api/Entity)\n  * [normalize](./docs/api.md#normalizedata-schema)\n  * [denormalize](./docs/api.md#denormalizeinput-schema-entities)\n  * [schema](https://resthooks.io/docs/api/schema)\n\n## Examples\n\n* [Normalizing GitHub Issues](/examples/normalizr-github)\n* [Relational Data](/examples/normalizr-relationships)\n* [Interactive Redux](/examples/normalizr-redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema, Entity } from '@rest-hooks/normalizr';\n\n// Define a users schema\nclass User extends Entity {\n  pk() { return this.id }\n}\n\n// Define your comments schema\nclass Comment extends Entity {\n  pk() { return this.id }\n\n  static schema = {\n    commenter: User,\n  }\n}\n\n// Define your article\nclass Article extends Entity {\n  pk() { return this.id }\n\n  static schema = {\n  author: User,\n  comments: [Comment]\n  }\n}\n\nconst normalizedData = normalize(originalData, Article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"Article\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"User\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"Comment\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","gitHead":"591e6bba2ae0b5d2cd067f7277ec58b29d308154","_id":"@rest-hooks/normalizr@9.3.3-beta.0","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-Y7VTzv/dbNbilzlGQJHK6DTxRrLL4Vf1n2WSIrK7yWGnb6FQFRL3hSSwb5WoyaC8vJSybDrkVEt+Wl8zQvN6ZA==","shasum":"0108d66013c431898c09c87db8e03fce9a939629","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-9.3.3-beta.0.tgz","fileCount":110,"unpackedSize":373513,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAq02KfhFDz3L7s1kT5AuovXRY7MjUnDDtM68wPD9G0XAiEAvYgnM26HnhWf/ppe2TrD21kUaG3XpgoIEOZ1bfV9wB4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjj67wACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpicQ//eF+PZKwg3Vhp1UxUai7OyT43GG2ijOg8W6xcIvVXqq3B1+oI\r\nj0QRp31YAxUcXIyAGZI1vZlRdjcsweYDaEn59pbosPRbLqbHYo234Ykyr1a1\r\noQonWvxqNtAK3rFnS5AszqKHhq750w7+1PiPRM4pSlfn+M7mG1JTWTilnmTX\r\nwZPVO9bJQf60Ys96SDaKLTo93pRoTjtTs+BHpgsUkNWGoY+K0TH838eMDUWz\r\ntrkp/BPrz0FEhVwg7RBvE6cOPAOyhntrBZgoQuzm+sqFDFXuDH54tSKA0t7d\r\njgbeYU8OcNCRGgJ/ZKcu4+gPPVChs9mVVq97WPwB7MY/Dhxl/UozFQOWnoxE\r\nR31/wg+XrIl8/XKZX2E4GD4S/PSWIowejQ2W3CXOzW/ZwPZl/sswShF+WFpD\r\nL09PPxUiBXs93Zzo7mkjttaO9VjcJ3P+uqah06pD6Xd63PVpwiLdD1dlhdAi\r\naDPJf2ZiRgLuHEZcrYpYKceCnDPfeR+5KRUXW3N+hV1c3mGFH/fhPQjxulNE\r\nC0ybJBhN3ia9Gset4eAH7yXwtbGfK9MG7bU7w48VMTsRqVEfujC9ImLrSEBw\r\n+DqVY2veiF/Hkn2698jKp5Rml+kM6iJFjWGTcLx3sqJ+RWW4x9GTJk0Ib4rD\r\nYw4qF7vUOUi2EEs1mJt0EYL7QZp7y3+tgak=\r\n=mmsu\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/normalizr_9.3.3-beta.0_1670360816275_0.31918553941332584"},"_hasShrinkwrap":false},"9.3.3":{"name":"@rest-hooks/normalizr","version":"9.3.3","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://github.com/coinbase/rest-hooks/tree/master/packages/normalizr#readme","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.20.5","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.1.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"},"dependencies":{"@babel/runtime":"^7.17.0","npm-run-all":"^4.1.5"},"gitHead":"6706fb45ea5c8a3183cb9b216d8c9fec69c2f4b6","_id":"@rest-hooks/normalizr@9.3.3","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.13.0/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-KJztOexgh+Qultq8zgT87AbnLArGyu4SAn1TLD7WlFwRT4t05KSxrfWpf3O2O6PyvwOau/bMhE9VZqAci7qf5A==","shasum":"b6cd27f7f6125e0e37726180b3837536611ccc65","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-9.3.3.tgz","fileCount":110,"unpackedSize":373563,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCC3Cg01z0KQx9z3omWzjSFQAeb1aduGe5EoQh6oUJ7eQIgAI8c6k5B/le3SEdyu+3yMdRyqVAOHJTrmhDi1+OXVto="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjj7ftACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq8IQ//QdlnGXgxrMPbpAlIgP8/Qijqtxksc/RCABM7L5urodlm5M7g\r\nLY4GhlJls0Yc4oIhRJqgS5b8c5tN08SPsed6ukzVaI0jeHadQrIRS9GK5T8I\r\nwh7HNHn/ZAl3614F8o1+YI3Fk/w9ElWmSrsiHMbkFvDkaroipFXwnq4ErSmy\r\nvBj4gQ0I90D1J145R1HjUAaxG2dDLCVt2pgfFxiYxWhJ8mDINuv7HmrYvYbX\r\nMBi81g5EaXr4PCgbuEDrMKV4vDuCa0lWZiJ+KCB4xWXjr6hzNPfOfc0hCRhq\r\n7tnyVde1rd6QwW3tkSEyFTKf+LZtBs2+z53/DvzpSNvLYbdeXl8y1E06ZYMm\r\n7Z3Xs0pWk49lP+WBghr8QfWniLCoCU4Vs68xN8Z5LrQzf7QCpqmFUHWC3UzA\r\nJ5Bi6lyQPv3SmWBzcXYhyBeNMjGRMDAmB55vMdPHIKehrg82Tnq9UcU7L1IR\r\nwt2D0uOOrMgXssrgWog/PogtCCBUkcAbhJZ2P8ngqhax3IBKfwjSfygJex9U\r\nf3Am1PGAklh/BAnfPCN1HS8D/g02dE631adw5IVZ7KjJ+0HhP70RGCBk9y/Q\r\nlMdoFg4LRlmNPp43v5VMmCWrzY4DOV3uq7Ps3yIy7b7NNarydp54UoHj0tc3\r\n7QKs7zxOZgugXf+LM7XQWk37S4fPKMB6ILg=\r\n=/nfa\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/normalizr_9.3.3_1670363116958_0.5879812934428215"},"_hasShrinkwrap":false},"9.3.4":{"name":"@rest-hooks/normalizr","version":"9.3.4","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://resthooks.io/docs/concepts/normalization","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","schema","typescript","validation","relational","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.7","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.1.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"},"dependencies":{"@babel/runtime":"^7.17.0"},"gitHead":"78a50ea056eb897adcb9b36b16d77947094c29ce","_id":"@rest-hooks/normalizr@9.3.4","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.13.0/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-skEdTpPwEKHp31MsYA1dnI38xc+UPrIcqUNS3gnrqX25pvIJJi6lCma9PJxNG3rXsLJnDkkiGmI0BJ+50UlKKQ==","shasum":"6e75768d892e67aeaa9ad5240e25ea414fff0180","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-9.3.4.tgz","fileCount":110,"unpackedSize":373587,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkiIpmjupfWOlKto+h5StY8OuDM6RGgnAKmR8OhCF0ugIhAJkCgQMCYc/NVJzxLGGjeKnXylqC0IPmF+AMfyIxPKwz"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjpdWdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmofZw//Y6oQdTBILTK7W7FYMyfFk/JgF7CuUro3tf3Jj5Qx90R7+4k8\r\ntA5SHBbUgYAPxC8kCstgprTB6L/ajnCTimh2uBTHZG2Jk+NQLZWWlVExSkFe\r\n2iDKKsEiSmXSEdrG3MR9OVkb6Kk5+XAYA6xwBcaak2nQGUZ+YNkX0s0uw/gK\r\n/q1LD/qsX5F0jAEObKUAqt2l9aeVZds9dmxl9qNn3+/Yb+5JaiRf/Q4my4HS\r\nyLEdHh15r7PxJu/tdGdGQBJx+jMfS1taysMy8CDKSWtpb2i/6IisfUqeKWp7\r\nTjz9Y2jYgBH/zkxgUhIePrGdMVe65yi7FhE5uI8e5Dn1D/xxXLXoQAf3YuDs\r\nLIGJfJY5Q3E+qRwLOlrCPUxk7pSBhkIr6SkxCokFqXykaebvnjeaenO0LLdF\r\nqNzdlu+feIQBNbcGubq9sap381uwnLfGfV+PJL+dydCL/ngOHEnrcDL/Y2e4\r\nMuje//ESOUpY+nYB7jm/RTQbExB+8S92zmOYTrVG2cfhk6IjVzPovCy2OB9f\r\na2QdvFB3uhpsvKWDYiMAKjM56qCymZR7lQxDgCx1xCZ0GbNvt06/z8MAf3bq\r\nUGVVwjvf/K4S+IPhK6SCO8121AIcjgf4+KJQr8Mr7Y5lJ1l9bA/M/DhyKbVT\r\nq5nsOLEuhM7Y9wpK10XWuKuCFeI58SWxSsI=\r\n=hKvV\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/normalizr_9.3.4_1671812509114_0.41099449645625796"},"_hasShrinkwrap":false},"9.3.5":{"name":"@rest-hooks/normalizr","version":"9.3.5","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://resthooks.io/docs/concepts/normalization","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","schema","typescript","validation","relational","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.2.1","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"},"dependencies":{"@babel/runtime":"^7.17.0"},"gitHead":"8d55a3e12e62da52f863a9e14bcb52615431ceea","_id":"@rest-hooks/normalizr@9.3.5","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.13.0/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-BmqkdeVvvVRzQspyQ09kL9IOV6+n5Pyg3gLAg1LNSYoUsZ5qCaJbNH9YzJTdbcp1K5sojhxkq7LvhB1dU2Thag==","shasum":"3c941ae1db0464a69fe73b1f7e379013f4e00878","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-9.3.5.tgz","fileCount":110,"unpackedSize":373588,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCiwWRQMzLV+ljmOyrTG1GuugXIRnzXwK5llP7mcxRMIwIgcIydxKlo0EAfO7bPcFHhwy5QIC7tlFETGQiGtcRY03A="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjwLbKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrFqw/+Pej/e9kRhWvW+VFL/veeWnMWZHKf5dfomKEbRueiUPHbmv5Z\r\nLCKH/moyJf3cwUPaSra+U93n4tNJnQ78v2pc9CynIXF9Zx/vaERuo1tUXhxL\r\nfaZ1px/OdKx/bDGPVV4yBKTEcoBiqSmFxJJzcyY675Jm4dOiYyyf2U5O7M+F\r\n+CxhhehePMGDKkb8Z7SMX0IcctmVwFc6qUgFT71HUcxzoW81qEmKF0V8tpU6\r\nai0DoypWhCZGEzJtbw2/DNcq4RFDUuPaa5ynrOVxhw570HbAZUFvWjhSlqcL\r\nA6S0FiLAmLdxwgiouL8C8sh6Y543A9a05qG/ymxQdcwnf661G+9MR/65l5si\r\n/7mXwSXj71oe5NV0FcfUioe86VEkFMpfyLg++OlBZK677UX/jabn7XzkD6U6\r\nAY7wPGLFm0krf1ZOfp8VPLjxnV1RuQsNWZ2S49ls1OtUFsZUHahB/je+aGWU\r\ndzBxmcwlc3UC7Z3/R7P5kqJCqgfy+6rEst/AcLiVPRkb7M6kzH4Pokihddwv\r\nX2dEIZaMHTQ/NPOgHiAt8/6Viij+3FjYlY5zRqvpNj/VbTZTdDrGme+W1SQy\r\niNKMukAhAr51c3H8tsk34QtMM/o5RqaaWazNBpo6VWJi99lu0OvrNgAastzy\r\ndPyKwOpvntzLod3zbX6lYZp7HPfEIj6B1pA=\r\n=jn2t\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/normalizr_9.3.5_1673574089940_0.3014709904334547"},"_hasShrinkwrap":false},"9.3.6":{"name":"@rest-hooks/normalizr","version":"9.3.6","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://resthooks.io/docs/concepts/normalization","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","schema","typescript","validation","relational","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.2.1","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"},"dependencies":{"@babel/runtime":"^7.17.0"},"gitHead":"365bf04cc2dcef81a87d4c830c0a6c689eb32044","_id":"@rest-hooks/normalizr@9.3.6","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.13.0/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-Nvu1yxrBuskPeLG5ZTRbyk8BgS+ngEq470bzPRlmbsJ+BkpwpWOa8zkGHi9sTZj6WZQ2+YhoITPksxjIhPsu7A==","shasum":"bf3722f75824e5becaa6653c3934aa0f35e0bf02","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-9.3.6.tgz","fileCount":110,"unpackedSize":373588,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEXoYe1AjBPs8E0EbSU20qGFSQeDOotKNACY0nQ9xN68AiBZ4giRGu5HQq2CLZEPCmQfpIwe3M9ethwBnLI4UDfEfQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjwsTJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpddg//YSEdYhLvg1wRWf/m/fjlYQicmpp3Fj6NP89/2qyL5d4glfdX\r\nEYOrjaEMkKma18DEHLr34IgRFFqSR6Kj2sQSRsD1TLC0ZcABvA9uwWwMacE6\r\n+nmR0slUskonfuOvMMRetlU436T9V1MdcObqJ56ExjpgDkYHHIAcwtNI3LwL\r\n5ZgvIZh+rIdlDVC/juhgLf0euhrFR9nsmsFhUq1nHt5jf0peukz0OlG1F87k\r\n8uJDwjjOCY+W2qf3iwRUCHqkiO4xkRTR8spb0yPHrNgI7RM2vAQVfq05TVz4\r\nj1jzes4yViwIIYCDlIB7fcvudK3a5owI+nHReXcCe02B1CR+bl6vd+s0qPw1\r\nlA/MIQcu19lSJFZetYuFTUEO+1UnXNEtqT31UMndviBqwYj7FGs+uePxcQHW\r\nhwMaPhunq1PHFFiP5DQJzfzi3y1ZA5uytHDoeknJWVEP8HgMSWAB28I6S3d2\r\nL2huOZ13nrAl7753PXwJd09DwVPsgZfahOXWhKBTUqh28e97FE92ARIEy5Z1\r\n372Nie0yaP1BBwCFinWm8U/ilnUhuJkp1x6CkosjUtD86FOTHeYCAfoLgPAg\r\nUOXmNsI0McxptxDKXllH0Ao+azD357gjFo7DNmbO2avJFa9r0blpFn8OLlLW\r\n1RzDFnT1OWmdVH7cwLCt0SnOtPkg1YJNKRU=\r\n=9HUz\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/normalizr_9.3.6_1673708744751_0.8186035121473387"},"_hasShrinkwrap":false},"9.3.7":{"name":"@rest-hooks/normalizr","version":"9.3.7","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://resthooks.io/docs/concepts/normalization","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","schema","typescript","validation","relational","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.2.2","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"},"dependencies":{"@babel/runtime":"^7.17.0"},"gitHead":"86c630b4b313679c7a441cc7fa060dfb9005d1da","_id":"@rest-hooks/normalizr@9.3.7","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.14.2/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-c1TRB/TxoIu2Y05AbPE5BIJlgwNJMq6nmZZoduNqmABGEL6WdxuhoaIZ6UIfVPnU7uCOQa9eXCMD49y7F8PbcQ==","shasum":"9523efa90b06d5c0117ba93ea7159e050659460b","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-9.3.7.tgz","fileCount":110,"unpackedSize":373807,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9DYMbsUc8YnPp/EGDmJjCEKs0WcGSQAC0M3AGvvo5GAIgIc6oymAcBC60lrkQcizK4R1Fwffx5z76XkAwdsh+m5w="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjzqaOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpl9Q/9FfsMgMoGZP4WxFz3/NLI5JrhpOXIKNoBZhvgFbUXRTvAJD8m\r\neVXB1je83LWp63mlFAgQWA4b+VMLmmbCEer8dEI+Iw9hFIDqCxeWss8QBs6J\r\nQodn1u+VvQ1/xkqwAWtxBUuBkvv+n1Xzs28+IxRHA6XZRpWutjI0G3cNdUhU\r\nvl3sPn3ogEPQY345Wk5ppQ2sZjODLnqst9I7ir/vLg8ra/IcZBunTmFtjds1\r\n6L07IlIMDD202GwYBbiqYxfKu8ahfBGSvx0qM92zE5iYwo/xWgCtRGOoclD7\r\ngdqVuBfCGBEoMPVcb9Ffv2XYuHuiYIOcTY6Ga8PUYCkPbIUv/OLHiNS5wiAB\r\nKP60pJ8ikw+8wShPbcVVkS+movrt8risBkeRps4gFmgQyddh6EHK3XK+H3lY\r\nFL2JkiXHo/WwGX3qSKVULoX4pqVX9shXu/T5mVUx6LlJXvlGSanGDIOSjCJ1\r\nbwFxOGbz8Akj0GI537iNdUul35PQaLHYv6ylLjARJP89C56kDZnNYv5lr2KU\r\nFZRtb+nB5rZbH8lE/ctL2GYUFMAhDhVfZTnKyiLdkDfsoMppgshH38BaPxZk\r\n2DGu3MZNFNV2UNFeWDYPgI6M1LPlnvyfJcNW5d1swFmR510SG6XiJT3GuKb9\r\n53DkBj8FsjI4QTnA/wW5lt0N5MNpck/ud5Q=\r\n=8VxK\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/normalizr_9.3.7_1674487437922_0.20367152335057637"},"_hasShrinkwrap":false},"9.4.0":{"name":"@rest-hooks/normalizr","version":"9.4.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://resthooks.io/docs/concepts/normalization","bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","schema","typescript","validation","relational","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.2.2","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"},"dependencies":{"@babel/runtime":"^7.17.0"},"gitHead":"8b95633f971eb65723424cf4986b1f5e6325df73","_id":"@rest-hooks/normalizr@9.4.0","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.14.2/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-qDQ9I/e60XKn6MpG2yz8LIqg69uFT5U9VO2fCikl1Y9pAamDWb2d0Cq9FHqExy/i0MyexQ68zVH4S4QGFdSKHQ==","shasum":"9b4e2b63113a28880f0792781388909e3b1c929e","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-9.4.0.tgz","fileCount":110,"unpackedSize":375685,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAhk3DOy2C5miDmfOL+cG/E6qq7tHU2vnvKGlEh9xJYbAiEA0yjQ31gF2yUXWOqnkVtoSAgKdJ6tgqhZoRJb0dK9ghQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj1eyAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrUCQ/+O4O2GGBNvQmDMtlS7eJZFYPIW+Qx9t8v9TwkjIUxHeP9KhLA\r\nYa7YfKIb/s9479WK+puLJTkMIv9fuCzur1LJKzYo0GvPTzzek2+CiNI2LFIs\r\nXpgXVVOOQo2ydHtwoiWdbP8kerlPOmS+/MI8j+xO06Kgm/fVP+DxLMh29FhR\r\n40JGW3ueW6Bts8USTsVg0qo69DbOl60M74/5GnhMw55iKZzvdDf0knDmIdMF\r\nWlM0lhdOaiOh5yqFnUmaFKuftNLp+NRt1wPj9OtA6KZ9AKNJ05LerLeILCzC\r\nWvWFs1RbUz6d7G7Q29GABD/fhUv3TDHagGGzhl3CFNTMiRQX/1paDodK0pTR\r\nb9oYLt23v3A5Annc1CLz5nMFL3aEyUInQLX57E3GVwaEANx7fc4n1P9jkVYU\r\naHL8++TZqGxPuOmYuBVq2W2VDDhR9qX94h2E/r7Z5FlKHZySvEdqkSp29A0O\r\n1IJT9fwYoLZ8qRFcsr2BkoIlqJLD5IU2FlutZqn4mTrD/Wpq5D0+tO7P7Utc\r\nIwYIPIduSPMK1iZ44bcHkjKRuTw6ew0DxMPJOF96KBToAbqkUWPwv/E0WDRn\r\nbIGeSRtcvSLA+hLXwY/C0nUUPtQDrD7bh/eMcKh/Tex/wYDN/PrBGbOhpm2r\r\n8YCTy4Gg01ZLIVi+rGE1QD6M0Jx/G/UTFck=\r\n=kWAi\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/normalizr_9.4.0_1674964095929_0.6771402579875005"},"_hasShrinkwrap":false},"9.4.1":{"name":"@rest-hooks/normalizr","version":"9.4.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://resthooks.io/docs/concepts/normalization","bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","schema","typescript","validation","relational","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.2.2","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"},"dependencies":{"@babel/runtime":"^7.17.0"},"gitHead":"45b40604ea463629e63808964090c4f2a175172c","_id":"@rest-hooks/normalizr@9.4.1","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.14.2/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-QTYqI0eicncIQch1Dmq7/0fEEGJissMyt+d8axgtikjSn7tIZ93HxrwzmqdGn6w6rd1Mz6AMabmvqsYZSk/+hA==","shasum":"801767fbc35e6afba100d0d0d3fb5edaa6d7cac3","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-9.4.1.tgz","fileCount":110,"unpackedSize":375703,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6oX9FGJ3IvVJ+a92CMwrtrU1as6hnFZu1NvA1nhNpEgIhAK4jg2+Kzfo/lUteBeBLxeI0o6k1EOnqFqYIBr9o5tK2"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2FAzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpHBQ/+Ju0UHbP1FUBtvEkPheH/Yb+wSOZtCIYrMBqrBh2ULLQ9j5un\r\n/St4Vls25qrJroOJ9peJwdJJilgkMo5Kcv4zwvs9yj5V0ZOZvvS3Bu6ujF9B\r\nCmdQeMEZIYt3l2UGFYVD2RLKdROtpZAgnREqnfeKMtnjUExdQTxF9PkEnnhR\r\n6KzeM3aEoA4z34/yzWJrjt4epHRdgbjmetFEBx+z7xxabBqHkNGi6N8ywJ2x\r\nL0W+9twbI3+TzVtn2MVfkT+Dg/fQb+Tnxms7ZnqFXcNot73rJgfCbWa5lrfb\r\nX8iygp02EM7rR/tkqB81i202DsUIHMtjPQBg9824eOMp4awFwYibq2qxYPbI\r\neezA9O3jvBHNeS107mkjM4jz2F3t+ALcivVOFTzGqg20zZmIniBPP3GbA/QL\r\nLaFIroMe0eJytl8YerTWKfimpjo7rJbl5vfFx7+399eYjAgreU19ox11NV4H\r\nJ3YQZKh13iLdIVcYC8h5NGobrXpJDaYYCA0KM8ZrM4+RJNyaghsX3HXH6QW6\r\n7204Tf0mtBF7Jef5EEkOjiGrxkA/CRHzaKS2BbjHFtmuuxmbqoPWCNi50Sfb\r\n+TFGa3dkAUcYGpeblfc5VN08ev6Zb82pZVyOXJuGwHk/BI2U6ucwVTRgPNmv\r\ncwEmIVtHx19Qe4c8TOaTVv3cRhgkiv9+ttE=\r\n=vLsW\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/normalizr_9.4.1_1675120690938_0.964987057823377"},"_hasShrinkwrap":false},"9.5.0":{"name":"@rest-hooks/normalizr","version":"9.5.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://resthooks.io/docs/concepts/normalization","bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","schema","typescript","validation","relational","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.2.2","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"},"dependencies":{"@babel/runtime":"^7.17.0"},"gitHead":"26fbbe5cf048e85986b06f35f04d1409c24b6a71","_id":"@rest-hooks/normalizr@9.5.0","_nodeVersion":"18.13.0","_npmVersion":"lerna/1.15.1/node@v18.13.0+x64 (linux)","dist":{"integrity":"sha512-gxvlieyP1rsdq+ZA3bO2IzrwsJgQA/phYQjRU3/oYAUl53p9SFvgIl3rnStXCPfp8xZBJzH2ALdzzNgEpZrw4w==","shasum":"de1d8593a928c90c0e8f41d062c08fadeac96683","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-9.5.0.tgz","fileCount":110,"unpackedSize":385143,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDR9VJSAuIYROH2vPYQeL02hpSKOD1qpsFXq6AykwGH4wIgQs57lGKl4wxCu33w/4Gwa1UQSxz2ppNqeIuQm0C15tg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj59p8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmojvQ/+Mo2K0+Lhj54N+4JA4LBPkiPZf7lT/8ZFNADjekw6/S5g25NC\r\nQy4mgSQLZ/i6NYSdQHStqWwOPImYwRa78tKk+XNZrEh+ORyzD1awXSMdyBKR\r\naeK/x4SfIQkkDM3t5AXCbXCz9gxXKSN/qwsh6uwLzSpeZ7UXu4csxOW8FYf3\r\nKElY20Co/HrADHBXZPFwfCle6sdrF0bY8Nyz2NKyqoVtwRZHqQvjuHTpLjz1\r\ntf8flfxHsrEDRpHu3S427b7JRjCVAmDPtT/eZX1FmeN6dlxbJL8Drgck11Sd\r\n5vYQjgeCw3IJf44/qHYuszw0XOUi8OoAyQ0pQ1JtF6voKBaz1E4wwdSBHkSt\r\nI5+FLCiuHsVcyVO1wnnQ8V8wRSrFwII4FulSdAbQQdXS/8g4haZNlyl5NgjT\r\nmPNrc9saGfSP1VamLFxciwe5JD9E4Ip9U0FXKTp+6PrwS5otZ5cUfJzOrPwS\r\n9FNzi5e2qgXTAb2WOVMtjOSyewssxapW9f/KFic37tzJpUZKpIFhW6MtleY6\r\nJ7AvvaGrg3/+aKzFHBo7BsQ3D6+t8El+E4mwUXBDOD1Smzxq1PCOXtnuVEuL\r\nkf+l+anT9ROALwZ7mwDaezJrZoWUuB81F9osX3iPVZz2FE9wtUioIIHdrwrJ\r\n+CXXFqpCtE5UfNFzGKatb3Cw+6IAL6i3oEE=\r\n=gs+j\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/normalizr_9.5.0_1676139132474_0.12076746443674535"},"_hasShrinkwrap":false},"9.5.1":{"name":"@rest-hooks/normalizr","version":"9.5.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://resthooks.io/docs/concepts/normalization","bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","schema","typescript","validation","relational","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.2.2","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"},"dependencies":{"@babel/runtime":"^7.17.0"},"gitHead":"8d3be93d44408c4b2b565486df25a30df543f21f","_id":"@rest-hooks/normalizr@9.5.1","_nodeVersion":"18.13.0","_npmVersion":"lerna/1.15.1/node@v18.13.0+x64 (linux)","dist":{"integrity":"sha512-OyEEzZsP3ODRhNYx82gBCl8h0OIjBKqLNNCu3v5zTUUHCKeioTqy6EP2o4wuVTAzvNa38ooAbKxtagyS7Fy8Fw==","shasum":"1261e58de59aae0137d94c4c498c656ef8cee62e","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-9.5.1.tgz","fileCount":110,"unpackedSize":385142,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH4bokFjvAIl/QsffdsgUYcftI9leyahr1BFgl6f8AEdAiEA6ChUmB1pBNUjRsQc7j6+gzYQGYNUiAyLrAxLQBH6v/Y="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj6vzTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmptcA/+OyKBlpAbejX9tRuvzN/pOhb9g9hEqIKRJhTpWg1EHdWZYsTf\r\nbP5P1g6CJdvllHBzzg8eOwFh9NFfOHsAfOfmvTWY3JvIlnxzEgryYeWTfMqL\r\nVw9XawOXLSdgnKNCY3dCEeqsWeQB5lAiImppbHVqNuugqGJzd+WZUTHyyNPg\r\n+pZidG5/mlW+E3No7su+l8UYncKM9TJwfP5G9JSqyfFnKNgVM65yCq7dUtEH\r\nmo5aMxrwG6w0qi7/TFlG/etpN3i9hWIw/7p/CyfILQi8SlTXYPtGwNwuERN7\r\nzGgJFxqowHECJSOWElFibV9fUJnHeD0H4gm3t60JC+WP3JhzCYYBFodkZRx9\r\nQlVK9zG21nZ4Ru0arjvDna3Mi0PagjTDPjipKNl5OlS0hg+PMq50kanhFQb5\r\n5dcL1xxHxoEzouGT874ND1WHwIgP/uKOXBF215cO2nq2RU+NMv5rqGI4hWeG\r\nnbPCsQWiMqjkTVUmizO+HO6r2Kw4MASpPvI7aWhiREr5iNkV81z3QuiKIwEV\r\nBsmidS/boK/OgL+9UIm01DpTYuXVCtcis4tY7ifJCMqEpyRuQf7Bkcs+HhI8\r\neg0GLG9UqLNpQcNXvWyIIUwBzqXrYXmpdLITLwYGNvz2wJ6mD5btH5PIPZZ1\r\nkrPatmLehLjRizwx2CF32miw8LP3tUkgnrI=\r\n=liKX\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/normalizr_9.5.1_1676344531034_0.4256072696720552"},"_hasShrinkwrap":false},"10.0.0":{"name":"@rest-hooks/normalizr","version":"10.0.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://resthooks.io/docs/concepts/normalization","bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","schema","typescript","validation","relational","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.2.2","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"},"dependencies":{"@babel/runtime":"^7.17.0"},"gitHead":"8b0eda4d5e129ba0a02d704a65cdfeb402bafc4f","_id":"@rest-hooks/normalizr@10.0.0","_nodeVersion":"18.14.0","_npmVersion":"lerna/1.15.1/node@v18.14.0+x64 (linux)","dist":{"integrity":"sha512-A/63IgxLGKTkSbwmNDtDVhi2gHFyLBfgewKMa2SL4d1rOsR+t3TxZYiVt919know0xf+lHNgBATqAtrf3Ficow==","shasum":"7bca7a525d92426bca96daca0a8f99ceefd386f6","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-10.0.0.tgz","fileCount":110,"unpackedSize":404816,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAf6KqldJALJcSy9gh/LauGTrVXfu65L1Toerx24PxuFAiAQlA6/NdNaCG3EwC3SDQSyNwWMCx+n+IkTjIUcLenuug=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9P8WACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmod7A//ehp6uLKx7BjknCBZtwRBsrjzbfqFSx1Z4U2VefJH+8AQLXLd\r\nWgfLhuVoE2tnV8wFM5fJw4AKBQOLxdnqOhD/bil2SCISq8R/wD/vdyQ0dBAm\r\nlqTM+vWKTXa6J60jzVvrNAbqquBmv9npo0cBHjz3+XwVYRdNHg9zPndb2iWN\r\nMvorukxiTFNOQixB7jcb/7P35IJ5Wr0b0aQbt0Z5PbfYTN/p4vVm+wALA7Hm\r\n5jyPi+fngL2PdhZ5xRKxF4tCfVSs/aZWwNNH+kmfjFutEoavoktm4PydmPbA\r\nGToAtCR1FwIO14H8dYA4likpRgE8tEyG9fn1c6SkZZDaf0AlznDItJL8Apl9\r\nvEnJuK4J+5rPhEfkyWRg+fyi0quWUxXWcX6tVQMzPQs1c4nNIMH8xwKnBHSe\r\n/7e93GzBnPlbi/X6Di7BV9u42ZhQ/DfmoIodOLkPxnjVnnB/mpem6nRfbtHj\r\nCIPAijH0U9uC12gb2cOt9fRBwPvehFdjPS1zsmnZSp8fPmfUlqVvfBlgq/e7\r\nLkbcnOFCJvdCKPPYXHqxQjYMHDejO0Yom/I15Zz/ugTk4NhW8xvsPlodILaR\r\nq10OGc+k/doqtjCZ5LLwbdOMKIflKxS82PvSmAAFBMGJbRlOTwTTHSSW2Kkj\r\nx4uIh6WPsLdX8nHldyw2TbFMxBiUawc7gC8=\r\n=kGrQ\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/normalizr_10.0.0_1677000469850_0.03727393247148947"},"_hasShrinkwrap":false},"10.0.1":{"name":"@rest-hooks/normalizr","version":"10.0.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://resthooks.io/docs/concepts/normalization","bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","schema","typescript","validation","relational","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.21.0","@babel/core":"7.21.0","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.2.2","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"},"dependencies":{"@babel/runtime":"^7.17.0"},"gitHead":"80c7f846fbd77c58b61ba92941dc0514e266f9a9","_id":"@rest-hooks/normalizr@10.0.1","_nodeVersion":"18.14.2","_npmVersion":"lerna/1.15.1/node@v18.14.2+x64 (linux)","dist":{"integrity":"sha512-eergytN5Y4jHu3X5LlI0wPCBWJ8MKjYWxqBEuGrsRIti5odmOdmnMveJ+uX+r3B6Jk4JylUlX6Vit67vBZfVvg==","shasum":"de8af9219b100a5ec2d6b65d66eedc2f5b1f230f","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-10.0.1.tgz","fileCount":110,"unpackedSize":403682,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICGgG+5YcAn/265ptzXgsKEO5MtaC/U5UQ027lEF2Fh8AiEA7vffXGPqJAo1iKrGO4CLKua/fX4hZA1nSHJsAXL/5sc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkAMUaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmovkQ//XxOFQLWR60RQS+A8DfnDxLuhcu1NCYj5SXDonlUsH1+fO31h\r\niul0UJq+sYT6qnNt0JRcI5k+XLVBK8D0RfbZV4s6akZsesKV7eRL9WL/znwJ\r\n7x8v/FX0DE51ltRxBE8yfIoRzYeXjb6WunU1z6cD6m+wKgM/YsaMUDnQpnUG\r\ny/FFveLK1fIw32QYjVmOB37RfBMx+gxtBpO7fuHy2aZwI+NCI5jXjavTusvl\r\n1Rjst2n7DkMrxKuNmvdHtmbaXX+so2TwcPEBGjdHDMOICvxgs8fUvu954zBM\r\neYz/U7f7oFMQBDLoJzapatpFqaN21qYRlpGjZhOUT/zK/maSFp9SG0RphlWg\r\nVMaWWuQEM26DwdEc3SRjeOCceO9uW1OOkJ1SCgb9Gzjs+LV+W2IdanwpuUo+\r\nTK/2TJnRLJJo+DbVfouX2jG7CyQn8LKjA5otaISXQeoYN2ZL75JgsiSPEbpJ\r\nNHoScqWqaWVIqEI6oHasKxi7gIpnggE4TAxRTqTwnFAdKpOA8melnPlpE023\r\n92EpIZUVo8oaKRfT0oH+1anV2gckNQtyPE8ExuCtksnFT+gWd5te5xpANNIs\r\nNHf9PTxLvwhOG87Css2mAUiZpyr/aCHgHuW7h7Rsef7ff5ewxGzkTXAW4bj8\r\ng6geFaxHogqHi7Pu8IjkBHtElUQC2lr6tD8=\r\n=w0gI\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/normalizr_10.0.1_1677772058181_0.904209635792466"},"_hasShrinkwrap":false},"10.0.2":{"name":"@rest-hooks/normalizr","version":"10.0.2","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://resthooks.io/docs/concepts/normalization","bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","schema","typescript","validation","relational","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","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","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.21.0","@babel/core":"7.21.3","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.2.2","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"},"dependencies":{"@babel/runtime":"^7.17.0"},"gitHead":"a1c7373956f3fd885390e13840553c920da4a62f","_id":"@rest-hooks/normalizr@10.0.2","_nodeVersion":"18.14.2","_npmVersion":"lerna/1.16.2/node@v18.14.2+x64 (linux)","dist":{"integrity":"sha512-5SQl4n+5NnFNmxNE5vtunxkPeQYf/SsBYYR0e/Mnu8S9oyLCGYDbGL8WXnUqF3QvW8WzuOGtz1mTlm0QsgwTGA==","shasum":"6f62faaef387adc6f2fc7aa1cc2c14746762b24a","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-10.0.2.tgz","fileCount":110,"unpackedSize":403682,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIENg4n6C3yhazOm4sxswnPALoAsZs8LzLwSZcA1uzAuuAiEAr6xqr8+XStXjBRms32u8HGhW6n4TyvoKqZ/RuumGA1Q="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkEiVeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqQ0A/+JDq4MlKUoQEfgHMWK47k1/utmIyw2ENc2vgt8W81WDF6WTju\r\n/tYNyvLwtteFXkvU5/UmUfmgYV6AVZaU4G/gKpPRl4Wn2iPmh1v3+bmoMxV0\r\ne0DfSactkDQ7lTQ3QLXpT1ys7T6+DcH/PIVTbqn7qEJwbG1XlrKzKHIiMf+q\r\n/LmXjPYwjoRC2y9kVFTjrMQA6CXk9qc3JMuobUd4kDZDzZcE6m8f1Y+3WVeM\r\nxh3I9VaEcVZoxh2WIBWINULcb+phoRzjFOZjwFCvBPyN+oAfQhLUjEm6wkRv\r\nlUmwW1CZG6ZzLKbAYiCNhCHcLenNU8rD51yLXvpO+0kLfubMR29jFSwaQax5\r\nrl13IqFvZ4ALH1hXW9CsB/jK0w2X4ebVR7l6zMjdnvVNnSq3QZL5or052aNl\r\nAIZihB/OFir97AMvC+qhKC8MuFetpGqTGokm0dJjfk+aOg2y9uANSofQGaxO\r\nLH85P34Ql7WuRqroc5U0kk8GchqVgQRKR+3ScDU5L9Fw/QoDTVsMy6n59wTp\r\ne0V0d4FcTPAcWxdAnsnBN+atcKBTftnybPXg6PBWkhpqs7XSb8e6h4Wd3obg\r\nlMiOI4Xuzkr0f+XEwKtjzBFqd6kSVgwj53wsRF/cnGsOLEPA3iDcO6YglSuN\r\n+2PWP4GNfuKLUYkpCJEP0FTTSGBuQ+nHbO8=\r\n=S0wD\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/normalizr_10.0.2_1678910814097_0.7682376998938909"},"_hasShrinkwrap":false},"10.0.3":{"name":"@rest-hooks/normalizr","version":"10.0.3","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://resthooks.io/docs/concepts/normalization","bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","schema","typescript","validation","relational","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development rollup -c","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production rollup -c","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development rollup -c && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js' --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' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"run-s build:js:\\*","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4","lint":"yarn lint:cmd --fix","lint:ci":"yarn lint:cmd","lint:cmd":"eslint . --ext '.js,.json,.snap' --cache","precommit":"flow check && lint-staged","prepublishOnly":"npm run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@babel/cli":"7.21.0","@babel/core":"7.21.3","@types/babel__core":"^7","downlevel-dts":"^0.10.0","immutable":"4.2.2","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"},"dependencies":{"@babel/runtime":"^7.17.0"},"gitHead":"c0248d68395248454f494f4cb8203ed7a5cdd94a","_id":"@rest-hooks/normalizr@10.0.3","_nodeVersion":"18.15.0","_npmVersion":"lerna/1.17.0/node@v18.15.0+x64 (linux)","dist":{"integrity":"sha512-4VjDfxehtGa0p8tunHhB7TC/RyinexSvYANL48gcPqekKsYhU/kA4ne2grFr5Ns29DE6FHLAFSd047rTfW5kIg==","shasum":"e0f06d72fb6d15caa3ad389ab6ef3dda47d5a10b","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-10.0.3.tgz","fileCount":110,"unpackedSize":403682,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICpg5ZvTzwT62GYk/0La1ofifuocWN2pOc5nm9bG2sO3AiBinTGevnTbSlUwLccskswFbKY2lmlfJOFXiFlmlrmc7w=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkF1s1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmplXg/+NxN2G9oaEyE+NF+0tZQiQF7BD6ifNCD9mBiUKlDtipMNAY+/\r\nQVuwQbvMgNVsVmAIbobyYGpukMXtGe9XQXqhkWDGYbXMW7zXpiInvXsy01tf\r\n9w/PZX+6aRcnSP1ibGy2fWSTsaZZ04icdDBqBIWsBdnFvSwCJtkuNJF+tAIk\r\nTUfiDiSDJKDKSXjW4QoPeVWhmJ7pU/MrwNQV4m0UVmrLrjc8A+2Q7EWOherU\r\nYw2JJc5sSxvimxuH4XaaBjAL0vm95CnS/k7kTmsFx8fa6w3AYLjbhOL8f82f\r\n0xpR3rx3JCxLx17H7lB591LO14W5EDK0TWAG9n8MqXEsEXdAqMIXV+tKQ31B\r\nHR4Rr8UYPRAzcPur6b5fwaZ4dG4wGvrHNLgq54lgXJHE+g6UJmGNg/CgqJ7O\r\niMiOKdJ2HJi1A6Vty5myLsu3Z4YHl1Vax8so9dzmAaVL3vCtTZpb81k+3IqX\r\nvstGxAtmEZK2zv8ABoWEfWXOANgumL7VXzgqwb5RdYhqVh6BvDZ1j1HfUGAq\r\nIKFJ4jZOdWhobaixR9sEJ4XmNnu5baeX0J7yL6WvVcDmHYwQIcXvCTywfQxi\r\nJxUO1vSodeEkf4ZLC3E831E4ErGQZvlR03Gm2bIIwzAPZ6vfSm1v+kRrOfK4\r\n4Ab1a28Z8dbN4PVx7hClKBsXozUmtL8v5Ds=\r\n=xDRJ\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/normalizr_10.0.3_1679252277433_0.10117701625498521"},"_hasShrinkwrap":false},"10.1.0":{"name":"@rest-hooks/normalizr","version":"10.1.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://resthooks.io/docs/concepts/normalization","bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","schema","typescript","validation","relational","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"run build:lib && run build:legacy:lib && run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development yarn g:rollup","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production yarn g:rollup","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development yarn g:rollup && echo '{\"type\":\"commonjs\"}' > dist/package.json","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:bundle":"yarn g:runs build:js:\\*","build:clean":"yarn g:clean","build:legacy-types":"yarn g:downtypes lib ts3.4","prepublishOnly":"run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^18.15.10","immutable":"4.2.2"},"dependencies":{"@babel/runtime":"^7.17.0"},"gitHead":"48ba88e0d66def4d2fbf600cb96708e3212313b8","_id":"@rest-hooks/normalizr@10.1.0","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-qyiakUD3Je3hS1JnC4YarevVDaXJTM7y38gPUA6zkrybsCcQhw5m3RIRlArbGhsLXJotBkSLJ/tyheb4tjGX0Q==","shasum":"78c721be76dd30d0877cccb56e607d16d6df0bcd","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-10.1.0.tgz","fileCount":135,"unpackedSize":450780,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBQTHVAmFpSOi0rdPOCrow+avII0DSTFILJW4hWUH6HtAiEAqD4j1qPu9Kg+rKmZpYh2oQ1rLoatCOOCL/VNOxdLxKw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkK60UACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpAQw/8DVEcwyBd2bnQEAcqbv1vgQExCDyn3jlHI8A/eqkjlK2HjZS+\r\nQYFpuFhlLquPkoIyO65zQr2Ouodty+quHvNLNBeDWYg+dJHG0l5YdG6cqmmc\r\nSwXpYLpAxTj659PVdOk69gi4CaPBbr5OuMY3gWh32QLa7OBzapeXi/5KCoan\r\nqwa5jnzK2YgfgpDl6ohmJUVFkYzDYhFNkRZg4JcQlHNNR1FrzYYdiKwyvLXB\r\nmcFayu7/kKIuQVVSAjlniyC4eHvP+DpA0yc4xCZ/yZbQvxFIDu06aV+5RJUk\r\no7535mJYYf82bwxoE8N8DXudX3MPmsitrHcdRhFVFLPuEXlwa6sLmmd8ErVp\r\nCixF9ubOE+HtZg6vf/SgOhmaqyog9TFfoVJ2TDFtnZKlY5aEIZobRjS6n+2J\r\nYY/KgfsJT0jbktHeHVXPiJItx4cENEySjQdBSwz8duW+61OyphMd1xPflbQ6\r\n9GzyG/+ySRiZU5FSI37Bsy+Jds0B+1fbkKCwYIGlljMLUAdz/zQjKYoyaL2X\r\nBeGZuC+Rb9RzdedGwkA8C7j5gdfqYgGWGkPu756dAx8ggPhZXR7pfbbtQi+B\r\nVr4LKFbnfv4AzPLBiWSjUQpxRJ04PNM7/7ysmLBTA0x/u1VczkQfgSSGxwVy\r\n4ir2uVZhU4PZe636vom2NDWZgO/tUk1G+nc=\r\n=1SNV\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/normalizr_10.1.0_1680583956318_0.2440550180981036"},"_hasShrinkwrap":false},"11.0.0-next.0":{"name":"@rest-hooks/normalizr","version":"11.0.0-next.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://resthooks.io/docs/concepts/normalization","bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","schema","typescript","validation","relational","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"run build:lib && run build:legacy:lib && run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development yarn g:rollup","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production yarn g:rollup","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development yarn g:rollup && echo '{\"type\":\"commonjs\"}' > dist/package.json","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:bundle":"yarn g:runs build:js:\\*","build:clean":"yarn g:clean","build:legacy-types":"yarn g:downtypes lib ts3.4","prepublishOnly":"run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^18.15.10","immutable":"4.2.2"},"dependencies":{"@babel/runtime":"^7.17.0"},"readme":"# normalizr\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 version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n- [Introduction](https://resthooks.io/docs/concepts/normalization)\n- [Quick Start](https://resthooks.io/rest/api/schema)\n- [API](https://resthooks.io/rest/api/Entity)\n  - [normalize](./docs/api.md#normalizedata-schema)\n  - [denormalize](./docs/api.md#denormalizeinput-schema-entities)\n  - [schema](https://resthooks.io/rest/api/schema)\n\n## Examples\n\n- [Normalizing GitHub Issues](/examples/normalizr-github)\n- [Relational Data](/examples/normalizr-relationships)\n- [Interactive Redux](/examples/normalizr-redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema, Entity } from '@rest-hooks/normalizr';\n\n// Define a users schema\nclass User extends Entity {\n  pk() {\n    return this.id;\n  }\n}\n\n// Define your comments schema\nclass Comment extends Entity {\n  pk() {\n    return this.id;\n  }\n\n  static schema = {\n    commenter: User,\n  };\n}\n\n// Define your article\nclass Article extends Entity {\n  pk() {\n    return this.id;\n  }\n\n  static schema = {\n    author: User,\n    comments: [Comment],\n  };\n}\n\nconst normalizedData = normalize(originalData, Article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"Article\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"User\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"Comment\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md","gitHead":"cd8413fd37f52b6c6f56ed20b0e1886c88ec1cb1","_id":"@rest-hooks/normalizr@11.0.0-next.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-qyAlloWVK5Fgi3IttOVoKWdkjcU5mw4Ma75LthaAOoq3GV1atW7rm9riGzaijKdZRzn1Fc0H4fwkB0209yHMWA==","shasum":"d311ec458582d88a48178348cfb76e4cf9b63055","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-11.0.0-next.0.tgz","fileCount":140,"unpackedSize":480493,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDBlb4lRgyC43MjD0QgbcNFCQSyomeJrzLI2KzHM+RvLAiBiDY25q42yUkGrKj4VGW6CKHEOb42S68Co+55zTuxuPw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSZ5DACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpl+Q//bqziT1Bfg32h6oyn4jYFGA/TBoFJmbwz9Q7lxoXBhf7VCChV\r\nmUoMWwQj5fM1fkxpFjNQqKbOC5Zsu50bt5KUft8HKR4uB+uO7UBkezUcuPJ4\r\niyLSKXj3bTIrZLNBRf7uIJQpCFPRX14qWLHk2nBmh1RF1gSrBdoiAKV+LMmZ\r\n35A8Ddsgi/q6gcEk/99xo855GIsqqsLfAG8DoCPp9FIimoU8HyghmgiyXfyn\r\nRhIdG4k+gnjJMtFDOWDKnhnL6bIFDc0XDn+jdz4Cx+s/JErr4jCsB4rDE96l\r\n6ysKO8AJA1MtvjyYgypNj+7l9tj/6YieXt6+pOWtz3kMOXQaP1fuGhKtMw43\r\nMlT+sbw3Jg/vk/RxtPpPozoet1hLFNvLZiQKb7S/XW9ZsHej5KA2qQy+OieP\r\n4pDzbJNgkQdnvzJn+t65pD1RMwVpS151LW+j2zn+Q6YKa73mC9XMZE2HMCJZ\r\nl3/HOy9jy0iu0HdCjJF0DYbLcP907lWURqZsVftWOGDiFpAdtGgnDRW95XUH\r\nsjOlb5x5vH3A4HHYqCl+oXUR5dH7TgeBquxftS8s169TcpYrRnE0L0WHYk/r\r\nu5dEXpgu1txASDJ3cumW+gDuKTVEdVhNTXT9wH/aB2CAnYUei7CN01lW2PEp\r\nVrLDRn3SxjdPlzIgZgE16JQDlXmYz8BWH/s=\r\n=gd83\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/normalizr_11.0.0-next.0_1682546242856_0.516800734595513"},"_hasShrinkwrap":false},"11.0.0":{"name":"@rest-hooks/normalizr","version":"11.0.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://resthooks.io/docs/concepts/normalization","bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","schema","typescript","validation","relational","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"run build:lib && run build:legacy:lib && run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development yarn g:rollup","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production yarn g:rollup","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development yarn g:rollup && echo '{\"type\":\"commonjs\"}' > dist/package.json","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:bundle":"yarn g:runs build:js:\\*","build:clean":"yarn g:clean","build:legacy-types":"yarn g:downtypes lib ts3.4","prepublishOnly":"run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^18.15.10","immutable":"4.2.2"},"dependencies":{"@babel/runtime":"^7.17.0"},"gitHead":"4dbfdb78611421d8afc62d4a2f714c462adff40c","_id":"@rest-hooks/normalizr@11.0.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-+C5Io3RBPNpcaIQiAOgwhBRCiERDtVJss1FH7kWgrtCkVuhcaI3OftbPZ/Q2W/Q0rfqFkPeHIhBzo28Sby3r7A==","shasum":"063ce8d42b9c826a186f4123845b095c6e5fc94e","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-11.0.0.tgz","fileCount":140,"unpackedSize":480694,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCd6hjVWLF3C+Jek4iLlxEARqskp/m4ajBGPM6RidhJXQIgQOTEhnKJT6vISGWCuYsBorqipO79aqi54y5umaESNR8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUZFfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmryyA//YONd8dM0VVTSSHLRUpP/Y7vQegs+DweSCC7Xjq8sySfPx9Li\r\nhYtriG3n2sC3iilkHyyhHPpAF/wZcTZoKIfG2vjJAKe7jz7tYg++CaN+HZRC\r\ng9FQv1A1uXEU8ozNwJ6tCKLRjiuIx3JB10UdC2Ss9yO3fdqDm6APbRPgcE7d\r\nfedCSDXetq96SpHi+QPNKMp8pvjON1L/mr4vmJsUaMoeg/mFYUEMjY2twruu\r\nBFDUnO4qn4rqQrX2zJgXsDxDOviCYg6emBDTZyfhjuJxzG74V495+7unruFo\r\nku3A12XAd6R+xEXn880YtI0+taI1hJ9cW+O9wcW5hD87TCnVzt7xPiPpTBYw\r\nenG0caMO+ZXjpIBF7yjXNffiby57zeEya/kCR4oBO0oH+9Rwh71LkcbVsa12\r\ni4KzbrdFNr0N3U3mx6S4J6zwMnISrx9YBisWAr3S/sXG4hnQ8ilF59XIACc/\r\nJSk2VwtWMF7Oj0HaFOKwGYdc0ekxaNAVofubZ0oEfAVhhgG7GJ1YO7K6wfja\r\n0IVIBmgjpyB6reb9nFfmBwEZEEFMMIDqrUR8AvhEbfEtNrsCcYXu8QCBvZ6+\r\n1Ix58UVLEz6WbmJJubPsKcOzSsV+nZrufr0QwtrPHnZ0GIm1sq9IkCiOdIXR\r\nr0u79TDFmL/+xkz9XOAVTDRdf+5QbdmGSdU=\r\n=U8/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/normalizr_11.0.0_1683067231680_0.705221995066613"},"_hasShrinkwrap":false},"11.0.1":{"name":"@rest-hooks/normalizr","version":"11.0.1","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://resthooks.io/docs/concepts/normalization","bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","schema","typescript","validation","relational","json"],"main":"dist/normalizr.js","react-native":"legacy/index.js","module":"legacy/index.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/normalizr.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"scripts":{"build":"run build:lib && run build:legacy:lib && run build:bundle","build:js:development":"BROWSERSLIST_ENV=legacy NODE_ENV=development yarn g:rollup","build:js:production":"BROWSERSLIST_ENV=legacy NODE_ENV=production yarn g:rollup","build:js:node":"BROWSERSLIST_ENV=node12 NODE_ENV=development yarn g:rollup && echo '{\"type\":\"commonjs\"}' > dist/package.json","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:bundle":"yarn g:runs build:js:\\*","build:clean":"yarn g:clean","build:legacy-types":"yarn g:downtypes lib ts3.4","prepublishOnly":"run build"},"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^18.15.10","immutable":"4.2.2"},"dependencies":{"@babel/runtime":"^7.17.0"},"gitHead":"520cbb461fbf5be1b1372f86a5a9c148bdb18112","_id":"@rest-hooks/normalizr@11.0.1","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-kL+T8xDqBq7du2gqAVi1f7AdpCGN69OxIh1NcMeHbGbX50sKc5YKoIqYFRKZt3fnFEa4UcXcYPXT4OEfiidbWA==","shasum":"a085e203624a0ee455929475f38668718477aa52","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-11.0.1.tgz","fileCount":140,"unpackedSize":480199,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGQY/EnhkRdrvLUwb325NF3ppZJpGHkDZHR5bVqAt7iWAiAwb74B++0eIvTikT1lOdqliPbnLUGTJcz1svuwcNRzNA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUricACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoFfg/5AMWMJAubrISmdl6L2sXZIQ/jWxOml5qchjqDRQISAwQ/O4eD\r\npGoY0udKfZSW6jqEoRDLNHHoBBipmINWmmNHWPWdeVEWr46dlPj+YL54IdDu\r\n1B8nsGET8s2vR8kMFnV7zdr8Eu2UHtnwD2yr0pRKOtbVXO0g+5TZKbLCMA+Y\r\njcw1hoQozEAk59TjsfM6loLgkhq2eZV2gxpVETckcDUyfjM8PnZuUlxZcHMB\r\nic+WO/N1tJ2BVmMNKA0ESN8C+B0QA1lQX3n7RYMga/jhm2Re2Aa6kuAe+uSi\r\nv53cj2IUrptI1ykbIh4kSaS7RR78Bh8oPd9XXWeD7DCtEYuZn4MvEbktnudi\r\n46kytxo2itFnoWZlYQt81NaJ0+Ro2Ee/zh5UUr+BoCgix3xaYw4CssJnCoTH\r\nCpAkIKcHeDIBFyIrAVjj70YDYNxqyxfZl8RBCbC349bd3EDS/S4mtYbs9eWX\r\n4+F0DmSOXmvGmFLhHxakCJQdkECct7mpcScRRSlRoiIdKhfnyIbJdQyB3PvV\r\nGuRciFrgaG7KDMI695l1Agcfk4THHJqq0IoKRqrebYlzoIbA/INkfzMEQjxL\r\n71XYRCeBjb+fjt9Yr2XzNCxNoqqXMtnETsa9x9Qhb0F0N+nPfBZxEKDm6ak1\r\nfcJjvFH4R+FFi2wP+n+2iRl5EVKJIH9sJy4=\r\n=fRGj\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/normalizr_11.0.1_1683142811890_0.276725733121463"},"_hasShrinkwrap":false},"11.0.2":{"name":"@rest-hooks/normalizr","version":"11.0.2","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://resthooks.io/docs/concepts/normalization","bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","schema","typescript","validation","relational","json"],"main":"index.cjs","module":"index.js","types":"index.d.ts","type":"module","exports":{".":{"module":"./index.js","import":"./index.js","require":"./index.cjs","default":"./index.js"},"./package.json":"./package.json"},"engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","dependencies":{"@data-client/normalizr":"^0.1.0"},"gitHead":"4aa1325213434e9ec5d8df272e8e6720d855491a","_id":"@rest-hooks/normalizr@11.0.2","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-LTJXSgEksthoczpXTsIxOXcV2/q9e/hja6poc9bSedg78p/zykcmmSMehbAlRAkC/X9riUjZMVU4YW819GxXUg==","shasum":"d24439cd2ea5c0bda889181992cefff7b1b31d9b","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-11.0.2.tgz","fileCount":6,"unpackedSize":6358,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/6+Qkormhlq6ti/FIueSJVwJKYmALXFnYKnlT+NUlcQIgPdsuHFX3sDXXfWaI+TLobHW3eF7UcH5nO6lrOXrRQKQ="}]},"_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/normalizr_11.0.2_1688341737027_0.7031932545276471"},"_hasShrinkwrap":false},"11.1.0":{"name":"@rest-hooks/normalizr","version":"11.1.0","description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://resthooks.io/docs/concepts/normalization","bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/normalizr"},"keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","schema","typescript","validation","relational","json"],"main":"index.cjs","module":"index.js","types":"index.d.ts","type":"module","exports":{".":{"module":"./index.js","import":"./index.js","require":"./index.cjs","default":"./index.js"},"./package.json":"./package.json"},"engines":{"node":"^12.17 || ^13.7 || >=14"},"sideEffects":false,"author":{"name":"Nathaniel Tucker"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"license":"MIT","dependencies":{"@data-client/normalizr":"^0.2.0"},"gitHead":"c05c4066d1f565fb56735eaafceb5a0bd6daafa3","_id":"@rest-hooks/normalizr@11.1.0","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-+AuBXjkFxOFK+4/Ymvi+YcQp11hGW5IPuQPjqCkN06YjPpt9INo7sjsxFvNQBRkm+f7syo+k8SXTUu9XBljCSg==","shasum":"4f8046d2b5da0d771b1ab6cf74bfd88dd198da80","tarball":"https://registry.npmjs.org/@rest-hooks/normalizr/-/normalizr-11.1.0.tgz","fileCount":6,"unpackedSize":6358,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC8fNV0C+LUorTqB0NB6Jvf6crOGVI4WYJK73pYjnmIFgIgb32ULmnAdcQEUjApNMsBrpuUcLQsyDoMR9TOzQ0blH0="}]},"_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/normalizr_11.1.0_1688510309056_0.992961586511355"},"_hasShrinkwrap":false}},"time":{"created":"2019-09-16T03:48:12.392Z","3.4.2":"2019-09-16T03:48:12.742Z","modified":"2023-07-04T22:38:29.475Z","3.4.3":"2019-09-17T16:22:35.012Z","4.0.0-alpha.0":"2019-10-18T18:27:03.626Z","4.0.0-beta.0":"2019-10-19T01:22:11.633Z","4.0.0-beta.1":"2019-10-22T01:57:53.828Z","4.0.0-beta.2":"2019-10-22T05:01:49.221Z","4.0.0-beta.3":"2019-11-02T18:30:10.705Z","4.0.0-beta.4":"2019-11-04T15:40:55.064Z","4.0.0":"2019-11-09T20:04:29.007Z","4.1.0":"2019-12-31T03:49:53.330Z","4.1.1":"2020-01-05T18:08:16.661Z","4.2.0":"2020-01-06T23:55:08.277Z","4.3.0":"2020-01-17T01:45:11.830Z","4.3.1":"2020-01-18T00:55:49.986Z","4.3.2":"2020-01-18T01:49:56.213Z","4.3.3":"2020-01-27T19:21:25.465Z","5.0.0":"2020-01-29T02:13:57.880Z","5.0.1":"2020-01-29T04:33:57.816Z","5.0.2-beta.0":"2020-02-04T22:54:22.852Z","5.0.2":"2020-02-10T18:27:52.160Z","5.0.3-beta.0":"2020-02-18T01:08:52.038Z","5.0.3":"2020-02-18T02:59:31.371Z","5.0.4":"2020-02-19T18:02:44.165Z","5.0.5":"2020-02-26T02:30:11.298Z","5.0.6":"2020-03-13T08:58:45.109Z","6.0.0-beta.0":"2020-04-26T01:24:36.118Z","6.0.0-beta.1":"2020-05-04T17:27:10.342Z","6.0.0-beta.2":"2020-05-08T20:39:53.477Z","6.0.0-beta.3":"2020-05-12T22:41:52.362Z","6.0.0-beta.4":"2020-05-13T01:27:05.798Z","6.0.0-beta.5":"2020-05-13T18:37:51.658Z","6.0.0-beta.6":"2020-05-14T02:48:19.394Z","6.0.0-beta.7":"2020-05-19T17:24:56.539Z","6.0.0-beta.8":"2020-05-19T19:12:15.984Z","6.0.0-beta.9":"2020-05-19T22:19:20.870Z","6.0.0-beta.10":"2020-05-20T21:33:51.839Z","6.0.0-beta.111":"2020-06-06T23:33:23.165Z","6.0.0-beta.12":"2020-06-13T20:13:10.200Z","6.0.0-gamma.2":"2020-06-13T22:41:10.237Z","6.0.0-delta.0":"2020-07-08T20:53:08.624Z","6.0.0-h.0":"2020-07-13T19:32:50.971Z","6.0.0-i.0":"2020-07-20T22:36:52.885Z","6.0.0-i.1":"2020-07-22T21:58:04.416Z","6.0.0-j.0":"2020-07-27T20:24:13.833Z","6.0.0-j.1":"2020-07-31T21:03:40.501Z","6.0.0-j.2":"2020-08-04T02:23:51.646Z","6.0.0-k.0":"2021-01-06T03:04:45.340Z","6.0.0-rc.0":"2021-01-15T01:24:08.014Z","6.0.0":"2021-01-19T17:24:42.361Z","6.0.1":"2021-01-24T23:03:29.297Z","6.0.2":"2021-02-04T16:06:59.966Z","6.0.3":"2021-03-01T22:11:54.078Z","6.0.4":"2021-03-03T21:52:37.722Z","6.0.5":"2021-03-08T23:56:17.505Z","6.0.6":"2021-03-14T03:16:21.971Z","6.0.7":"2021-04-04T00:29:50.802Z","6.0.8-beta.0":"2021-04-05T03:45:07.830Z","6.0.8":"2021-04-12T13:17:35.478Z","6.0.9":"2021-04-12T15:30:07.534Z","6.1.0":"2021-04-24T21:31:05.282Z","6.1.1":"2021-04-25T05:05:26.335Z","7.0.0":"2021-05-24T04:09:44.845Z","7.0.1":"2021-05-24T20:17:27.790Z","7.0.2":"2021-05-30T05:34:24.669Z","7.0.3":"2021-06-02T23:36:23.964Z","7.1.0":"2021-06-09T20:58:28.272Z","7.2.0":"2021-06-13T01:08:55.790Z","7.3.0":"2021-06-16T02:32:38.464Z","7.4.0":"2021-06-19T18:34:07.636Z","8.0.0-beta.0":"2021-06-30T16:20:26.117Z","7.5.0":"2021-07-06T21:47:44.514Z","8.0.0-beta.1":"2021-07-12T07:07:18.718Z","8.0.0-beta.2":"2021-09-06T01:34:12.279Z","7.5.1":"2021-09-08T03:57:00.911Z","8.0.0":"2021-09-08T04:08:09.646Z","8.0.1":"2021-09-29T03:59:22.089Z","8.0.2":"2021-09-29T19:59:30.779Z","8.1.0":"2021-10-11T03:31:39.666Z","8.2.0-beta.0":"2022-01-23T23:45:54.059Z","8.2.0-beta.1":"2022-03-08T19:03:42.114Z","8.2.0-beta.2":"2022-03-10T03:52:38.043Z","8.2.0":"2022-03-17T07:21:18.227Z","8.2.1":"2022-04-01T23:36:47.579Z","8.2.2":"2022-04-02T20:25:32.855Z","8.2.3":"2022-04-08T00:15:46.443Z","7.5.2":"2022-04-16T17:41:08.378Z","8.2.4":"2022-04-16T17:52:58.282Z","8.2.5":"2022-04-30T17:57:29.688Z","8.2.6":"2022-05-30T20:14:36.667Z","8.2.7":"2022-07-01T14:21:59.702Z","8.2.8":"2022-07-01T16:30:39.139Z","8.2.9":"2022-07-20T15:52:08.280Z","8.2.10":"2022-07-23T14:56:54.435Z","8.2.11":"2022-07-26T18:16:44.279Z","8.3.0":"2022-09-04T04:59:16.273Z","8.3.1":"2022-09-10T23:42:07.254Z","9.0.0-beta.0":"2022-09-16T15:57:19.972Z","9.0.0-beta.1":"2022-09-17T21:15:45.675Z","9.0.0-beta.2":"2022-09-19T19:30:18.798Z","9.0.0":"2022-09-19T19:41:38.554Z","9.0.1":"2022-10-01T01:24:21.613Z","9.1.0":"2022-10-28T03:30:52.871Z","9.2.0":"2022-11-07T01:06:07.343Z","9.3.0":"2022-11-13T06:09:16.314Z","9.3.1":"2022-11-13T17:22:16.462Z","9.3.2":"2022-12-05T02:48:36.269Z","9.3.3-beta.0":"2022-12-06T21:06:56.492Z","9.3.3":"2022-12-06T21:45:17.136Z","9.3.4":"2022-12-23T16:21:49.366Z","9.3.5":"2023-01-13T01:41:30.129Z","9.3.6":"2023-01-14T15:05:44.989Z","9.3.7":"2023-01-23T15:23:58.116Z","9.4.0":"2023-01-29T03:48:16.065Z","9.4.1":"2023-01-30T23:18:11.130Z","9.5.0":"2023-02-11T18:12:12.648Z","9.5.1":"2023-02-14T03:15:31.194Z","10.0.0":"2023-02-21T17:27:50.039Z","10.0.1":"2023-03-02T15:47:38.377Z","10.0.2":"2023-03-15T20:06:54.272Z","10.0.3":"2023-03-19T18:57:57.579Z","10.1.0":"2023-04-04T04:52:36.498Z","11.0.0-next.0":"2023-04-26T21:57:23.061Z","11.0.0":"2023-05-02T22:40:31.856Z","11.0.1":"2023-05-03T19:40:12.139Z","11.0.2":"2023-07-02T23:48:57.213Z","11.1.0":"2023-07-04T22:38:29.237Z"},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"description":"Normalizes and denormalizes JSON according to schema for Redux and Flux applications","homepage":"https://resthooks.io/docs/concepts/normalization","keywords":["flux","redux","normalize","denormalize","data","cache","api","react-native","ios","android","web","schema","typescript","validation","relational","json"],"repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/normalizr"},"contributors":[{"name":"Paul Armstrong"},{"name":"Dan Abramov"}],"author":{"name":"Nathaniel Tucker"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"license":"MIT","readme":"# normalizr\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 version](https://img.shields.io/npm/v/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr) [![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/normalizr.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/normalizr)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add @rest-hooks/normalizr\n```\n\n```shell\nnpm install @rest-hooks/normalizr\n```\n\n## Motivation\n\nMany APIs, public or not, return JSON data that has deeply nested objects. Using data in this kind of structure is often very difficult for JavaScript applications, especially those using [Flux](http://facebook.github.io/flux/) or [Redux](http://redux.js.org/).\n\n## Solution\n\nNormalizr is a small, but powerful utility for taking JSON with a schema definition and returning nested entities with their IDs, gathered in dictionaries.\n\n## Documentation\n\n- [Introduction](https://resthooks.io/docs/concepts/normalization)\n- [Quick Start](https://resthooks.io/rest/api/schema)\n- [API](https://resthooks.io/rest/api/Entity)\n  - [normalize](./docs/api.md#normalizedata-schema)\n  - [denormalize](./docs/api.md#denormalizeinput-schema-entities)\n  - [schema](https://resthooks.io/rest/api/schema)\n\n## Examples\n\n- [Normalizing GitHub Issues](/examples/normalizr-github)\n- [Relational Data](/examples/normalizr-relationships)\n- [Interactive Redux](/examples/normalizr-redux)\n\n## Quick Start\n\nConsider a typical blog post. The API response for a single post might look something like this:\n\n```json\n{\n  \"id\": \"123\",\n  \"author\": {\n    \"id\": \"1\",\n    \"name\": \"Paul\"\n  },\n  \"title\": \"My awesome blog post\",\n  \"comments\": [\n    {\n      \"id\": \"324\",\n      \"commenter\": {\n        \"id\": \"2\",\n        \"name\": \"Nicole\"\n      }\n    }\n  ]\n}\n```\n\nWe have two nested entity types within our `article`: `users` and `comments`. Using various `schema`, we can normalize all three entity types down:\n\n```js\nimport { normalize, schema, Entity } from '@rest-hooks/normalizr';\n\n// Define a users schema\nclass User extends Entity {\n  pk() {\n    return this.id;\n  }\n}\n\n// Define your comments schema\nclass Comment extends Entity {\n  pk() {\n    return this.id;\n  }\n\n  static schema = {\n    commenter: User,\n  };\n}\n\n// Define your article\nclass Article extends Entity {\n  pk() {\n    return this.id;\n  }\n\n  static schema = {\n    author: User,\n    comments: [Comment],\n  };\n}\n\nconst normalizedData = normalize(originalData, Article);\n```\n\nNow, `normalizedData` will be:\n\n```js\n{\n  result: \"123\",\n  entities: {\n    \"Article\": {\n      \"123\": {\n        id: \"123\",\n        author: \"1\",\n        title: \"My awesome blog post\",\n        comments: [ \"324\" ]\n      }\n    },\n    \"User\": {\n      \"1\": { \"id\": \"1\", \"name\": \"Paul\" },\n      \"2\": { \"id\": \"2\", \"name\": \"Nicole\" }\n    },\n    \"Comment\": {\n      \"324\": { id: \"324\", \"commenter\": \"2\" }\n    }\n  }\n}\n```\n\n## Dependencies\n\nNone.\n\n## Credits\n\nNormalizr was originally created by [Dan Abramov](http://github.com/gaearon) and inspired by a conversation with [Jing Chen](https://twitter.com/jingc). Since v3, it was completely rewritten and maintained by [Paul Armstrong](https://twitter.com/paularmstrong).\nSince v4, it was largely rewritten and maintained by [Nathaniel Tucker](https://twitter.com/npinp).\nIt has also received much help, enthusiasm, and contributions from [community members](https://github.com/ntucker/normalizr/graphs/contributors).\n","readmeFilename":"README.md"}