{"_id":"@rest-hooks/endpoint","_rev":"122-b1f66cd2daadd7a51e782b61e0ec052d","name":"@rest-hooks/endpoint","dist-tags":{"latest":"4.0.8","beta":"3.0.0-beta.2","next":"3.8.0-next.0"},"versions":{"0.2.0":{"name":"@rest-hooks/endpoint","version":"0.2.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-delta.0"},"gitHead":"c129210e08797526c0df8a721cb461bf703d1413","_id":"@rest-hooks/endpoint@0.2.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-jCyhus7pfQ/HHObqxOtU9/3RCBzHdFm74Ztj7NI0UK2xyIh0Q1yqkPTLvUGw1u5rM5vOAvp6hK3hU27DOedrrg==","shasum":"4f72f1f2d419f0710756c5478f6d0066a680aad4","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-0.2.0.tgz","fileCount":26,"unpackedSize":52011,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCn60CRA9TVsSAnZWagAAMZQQAKQ78ODPtDbeyYm9nK85\n40rvkYFlbH0SdkPhrmTWhAIaVNgeIBENrannwn1usOosLNFSvxieEsqq+TE6\nU3mUsxPPgXZVk3wCuRkMbwnuO27oZ2fkezZe+kozO6v9c+2gy6IIS6j6DU3m\nL3thc3FolOqmwZCQDe+C+2qIT2vYZjfgLAWtXKs0HjB3kNpI48+Y/a187ZZ0\nBZSkNlWbV4xRsGQ7qLmA5II98kCK2d97wyK2Mz0NsoxpFnhGwwrbF7uTwft3\nr2rAo8K6qEk+OxOCH1MvlQBzIVi5hblZWjcKyBfVRdHpnFpmZoThtxr4MJdi\n74x7yu6nktpv76RyVjDOY5jOqdse/VdRsC5j4I2W9u7mXPa5ofcBu9FQKx3n\nm6Gvk4GtKKblTjyUs376JFlQ+DYkbk0KCfaJkwBhggp5EElZ56yPFDcxpRlb\nNIdcgLHYQDJnecyzI+qO37v8v67S2LXeuBiLcWiJtWOVTVBRe9KXz3j9QP33\nQgZ+o2UqxNsvr1MB/nOyfwaicvudV7TmtZ9I0zxi5lQ3SFf6Q7AM3eLQrRRi\nGkPoCs8Gm5HHiDYpdLPFie9DMQL7urSy+SBIv1gfrzB5dFbKPlw7dRTh6Id0\nHI1hIiD0dubmtD69fto95jojkmM2TIl3/sjUJwO1Fam0TUcPIVfIyLrGQgOh\nj2Ld\r\n=B4cP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCvd7jnRuzI2UXMkssd+AK4CBQ2DIM6IxaxlhPQH9uVzwIhAITypZiRXTcetQ2vagUIC1iLZ43LadQFCB2ds+cUiZ+u"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.2.0_1594523316373_0.5846055649485808"},"_hasShrinkwrap":false},"0.3.0":{"name":"@rest-hooks/endpoint","version":"0.3.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-h.0"},"gitHead":"c0fb0d84e41cf81ee78840532645b3b6f17753e0","_id":"@rest-hooks/endpoint@0.3.0","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-OBy86LMqF6ClvhJJ9nrw2v62qYEk3El+H/Af8MXzx+Zym2VyfSynWE/Ivgs90BFK6imHK65V6huQVAdq+uVgxw==","shasum":"ea04bec2b3d4d794556e2cd9d8e2368714fceebe","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-0.3.0.tgz","fileCount":30,"unpackedSize":59015,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDLboCRA9TVsSAnZWagAAjoUQAJkXbXJsQfycA8klKdhz\nRoY2VGgON9fyk0oMV5OjROIK0UtMYtEU1JRyUBxO0NBgZXmMFBcdgNkc5Gk0\nnXeIJBRbZnxPYkaWXmbIdF1tUYxaMcUJZEWd8jkN//WPXF2QX5mFsVIVTtlM\nbT60kevsF7Oh2KufdttTXcNVeRB5LUwlA5kxjTVKize7fF0REn1vXUFMzqWg\npsIScZo6HjxycU/+zMG3IqBesob/Tk9mVw0ZrBw6bo6RsckhwyXEpAlpJx/1\npLVDD2Tqhxfh8NuTpdNA317ae0T/mvnFONO4bSh0Vb6D7kuaXQJyWHbOr/Vk\nE7ATyyrq4Qvv+L7YIkPGR2ouyRv6Oz62mzo4FprMdP7yWMyavSTuoe/eeRtW\nEMXxAGG4NA1pakInVHMbPeNc/qL3BvJV3xg97UYsdUryIqcHbPTAjjXxHlNz\n3OZT5aQbfLtAMEmaXSXacRAWqJ9mynJM2amuXAwCdhiIoM6LATfxOpJVogob\n8Tk75fiZSq0G1oZxk8zkMuXgs3i5G2Bw8TbhAw2Z/vHy/MEEv/OSuzXqy52E\n6CPXO/SPpQW0UtSSbZ1k6BLzOVTdYSEt9YpBlO2ppsvx36AtxpyTX0d5ZIea\n/IY63aLv5OfbBWZAEbKYyICrGXLP4mi//F8s3lZW54aD4PfVl2LXxSSr2xJx\nZgXd\r\n=K7si\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDyQct4b659sKKm82iLAOrlqxttvC9ht8mKDLB+lWJ2nAIhALLmJl5KfnvUpb7/fl6G0aW6kbFaxLARi21Yo0ee0a2i"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.3.0_1594668775939_0.1300791877081653"},"_hasShrinkwrap":false},"0.3.1":{"name":"@rest-hooks/endpoint","version":"0.3.1","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/next/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-h.0"},"gitHead":"3b786d17b9ee4f9e4b8cd86fd6cca383c777b6f8","_id":"@rest-hooks/endpoint@0.3.1","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-3JUu7B1Z3i0fNKC7V/vV3zFBo33dA2vJrOEPbbUIge6OO9t2gSxznQJeuo85NMepQgofljUQqxQHacgAx+mntg==","shasum":"ae9de09470bcb0dc58880f6a68d8db42713c899f","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-0.3.1.tgz","fileCount":30,"unpackedSize":62494,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDVlcCRA9TVsSAnZWagAAJWcP/A7ZYTrZdp++pjijTEQI\nxzQi1hIrSnlyTwk6/YiCDJCggJ7GEvGlcggxCC/yr+SAwC1EuLX3Ikq/Y54O\nKP5lKlqtZbjhjvRc1aJKUWrSEQiZbz1vbL2vfho7Ai0enPPC2DeXHEOMDfa0\nHZMQ4Eih2yeyRTEHfG0p8XECVCLR6AI3RX+RF2oek3DJs2/XsZ/iGCU8bNcP\nyvDhYu7Z9GUa9OrE9Dy7cuPxwXFSfqyNrDnFo54s9UdCY003U1auJKKpYXNH\ncsGF1lkEJLcttfZA8XT5Wr/MghFY0WIphM/+QVY8pOJ0/sRyi+i6kExl+bNB\nj/Cz0MyMiRc7lLDEu6hmfr9kPN7A1zRHVeIf05DfB0uNpQ/iH41eLs2P6Q9X\nEH/a9haa7PFWV9DwPezaWwYTY1CXREWhSLGZk1tfvcQKIlis+bWfQ+vhwFbQ\nDL4/6rHcHx/eCL2jM+/PgvpmEuxXNMP5rv4zWS2t05si228/cKN57J6DE65o\nYm41mbn7M1vIKBzg+0kgV1li37SX4fzQy1VBBiX2xZ1JOWS/4QG5HeKfYL7o\nIYimNhly24XFTmXlABzMyudsGkJSZyHFzo3NzFL085ylcSpDu2gWyN7mO+CJ\nfD0J53qPfzHLan/dOUqJaks5KMoV/kLtNTkQ8BxmXFaO1lwil8gaW5dVab3/\nIx6U\r\n=aEtF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCI8uZuKSGLXz1m6nYSeiFNC5yCLAhYUiBe2erVhobZ3gIhAKSlM6ny0hA3Sx/4R3KA984VntSeaY+YuoAbKbWvOwgM"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.3.1_1594710363720_0.09793792321454653"},"_hasShrinkwrap":false},"0.3.2":{"name":"@rest-hooks/endpoint","version":"0.3.2","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cp src/endpoint.d.ts lib/endpoint.d.ts && cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/next/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-h.0"},"gitHead":"d0ab94539fe03f3366e2abf0cd206b19a2bee876","_id":"@rest-hooks/endpoint@0.3.2","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-MxzCj9OtXSKf/wWmOWfrCPmDNQJVYxTlrtdC2u9v+SL88IIRYBB+8jGS2Xas1ECI96+bnOXP9sU2vWZf4Tz20w==","shasum":"668e1b10a947f33d28e38fb2379282c2f6e92340","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-0.3.2.tgz","fileCount":31,"unpackedSize":67247,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDdCeCRA9TVsSAnZWagAA+HEP/jqJaEPgGbVRCYR/p4yG\nGgmHoffDl5C7sdehJZLObKkApasOLZVi7OXSAqCuNH7yM2H1ucl/v7/GqXTC\nmsc0WolpWgFzTH5CDVUUl4ewe8s7CKri0HvgAtXNkRB7pg5L8CGtXM0lySL3\n8PrFq7Ff97ZBshgJqGq5LEYBuxIdeS0URLxxqwXZpC4LmJVK8568B5NPi6EB\noHH8Fte77uR/zuXRNI/BkGi9xLXaJN4cZh2yvhTs9hhx7FXrXjNs9RHmm7yh\nqUT7v/HvS5EzELKVOieJ+dOtZb3uJytNii/1GiT8VXwsq+cflmofdXsQhJxj\n9GbSXp8oVJwxJ5/J6RgMyLP5m41YeKxjTAj+fjKISk758awTxQgV1jB304BT\nRpE2yoEdwD+c+LqM/Ibf6YQpNuussj5KGFmVh2JrHnQGLaoZXRh7nfCYjpFq\nqRNQ1DlcLap0cfE56sSMco9WLoO8TZ1yIh8bEKRsv+KYLp4mT92ZTf8TcnBB\n4yNVv9GijZMru6f/VpdEaaem65jjVdLVfg10JuKLli/RiQWDNHf44g9Yls/A\nh8MDnGfHdv53gpv0ZPsrpuYj7p8ZMmuPB4nH70dsRprPbRqOnIGVhrkOJhWe\nqOLlUpGy8B5Yt26VPVi0vKUGREN2+Fng1BgdJ2hhuJZx1xFmdkDc+vnVgrRK\nt8m6\r\n=cSyo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHcZB9pOT/6RAO0KjVD1rwk4dX1eNUlSDfqseQCjWSLyAiEAz3rWrkSSNR+iNSyWcfFknhOA/Ml5K+yp+ZXvWX0BABM="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.3.2_1594740894534_0.4068214346761201"},"_hasShrinkwrap":false},"0.4.0":{"name":"@rest-hooks/endpoint","version":"0.4.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cp src/endpoint.d.ts lib/endpoint.d.ts && cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/next/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-h.0"},"gitHead":"6e9b8b0c92bb84fce92ec809bf0235053000ce1b","_id":"@rest-hooks/endpoint@0.4.0","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-iS4v9axBu9Di9UlxCsnL79eOj8+q30FKrFsQydl6P45ZPeec8L2ZAeSFsX74IA6W9fVrLDzmI8Bd/YDzRC2zPA==","shasum":"adfef12df747cad96d6bba99f62a2ab71c3c94ac","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-0.4.0.tgz","fileCount":31,"unpackedSize":71398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDiuuCRA9TVsSAnZWagAA2fMP+wa/0n/kXtwLw8P5B+on\nE9m1OiZIyqHKyVti9PY3T5nQkc2VpdMJJClZja6E+hrYsbkbGf7DjGETTn6e\ndvNrg7GVTJXUnbZUSejc6n5mkljDpUhy+DuqAvcWev/x3Q6oMXI8fwt/CYYB\nBWe34trf78RZId1M6SxGQZayRJ+37/AEcqSIjwfFo0v1RvcGEjLV8Cd0CZ7D\nUKpn9TyC5UYPhItSotxw0P+Ydc2DtE9wllVztKZnkcbuJKUAMMAPWibQvTLd\ncb5Bs/5U9BbkymFe07XQ1iTtLPKoGbkFuIAHSyaN+zm7xPKzsZEuHEdZY4/6\nYSJ0JE3ABtlHY8+ZukDoFiQc4NPylRDsUGBLF/sIxKnD0WrXThE7ox4Aeaxq\nrVUHBhJLWNVNQPo25Q0ZI8NGGl2PWVwJH7ty91J2B131j+PZuJ4QSO+n0Z9L\nkk30mAq6JrQBgU3vMl8RQ6CW4QK+muTWaMkYiTKJlXyqWRqr6PC9VbaFyTQc\ntQELxJBDq+98lYTPkGENmL9eQbN1ogybGOGuWIrICdwfTjepZ3b2QhjXjIEZ\ncrS0hCLblFmbD7Xg1zeDMW5XUVDJuJ45O14JNNanQHIPeUONanKNTXMmjApe\nbj2bOZEuFi9dje7YIQXjAA7ApuCgsN21rku+tYrdi9g3J+Hct6JO3aQYgUIp\n5uRj\r\n=1GMn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBR8WzXJo7q62ffSi1sjC4ce7BFMpHjHCvkfionmwVKmAiEAzlKS7NrdrxNqYTfwG6QbOjvogSBsFyANjS69WYSoSGk="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.4.0_1594764205901_0.4996433175235311"},"_hasShrinkwrap":false},"0.4.1":{"name":"@rest-hooks/endpoint","version":"0.4.1","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cp src/endpoint.d.ts lib/endpoint.d.ts && cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/next/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-i.0"},"gitHead":"c149f4a6f2015ee3b21ee4b9b7991ece79b91c25","_id":"@rest-hooks/endpoint@0.4.1","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-QTXgYv9IL0YFHQTWntn4ohPcx/WCqKl2M0cJuoY1qk2YANSoKWUqiz1qMMPNpC13of1A0zcuOb3OY/xVjeUA9w==","shasum":"4fc1311bb958a17341b241e5276ffe3ea38a9086","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-0.4.1.tgz","fileCount":31,"unpackedSize":71539,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFhyNCRA9TVsSAnZWagAAe7QQAJRsthTrVo5tTEPGL0FE\netmnCI6JdWghTEU4nrEmY8ypXxD5OIUAk80ixxaBCGFmcMQW6xWZy30WqMhg\n52ypmaMwpDm0QKITBI29vflbsPY7KuEi2bzawQ9+yk7I7ShTefchMQ+cixPp\nelayOLqQwtRTwJQ4bhanWPp/6hpN3O1dhQGNnxjj7t4f9D/jaqJy9UBR1QuA\nEo6yAsYPHZk988f0z9IdGmKn4HbYeIwe4xs/EHSVfxjVgW8R//XQPknGIt1G\nnLDSxiB2UV03hdnK5ggFb0lRfmSjvVGgkCrBO36TtVk3KeZRjg0LiK9PIyHl\nBU8xcqMo8dLMGbruPTcX6i5cOJi/9ggO+wHeeyh2GKWziO1URfdS3cJlJuCN\nYF6cOkoR7Hzoqb5wh43wbtTVjdf6QDFApHzCeRyJk/teUb+hYYB3i2fIK83+\nOezUDey1HK1iu1uGdALpoyPMImuWFYaXmGLE7hK8E8JT6ny7+Vj6mp5XRLFi\nV0pbyj2FouUVt4fGl+KJYqrVBGGVmxyjxzIfvkV1AvLR6M6jmc7tuL5ywJ+o\nI2tIC19jQQC7ijuIOnzlNeoi6zUWGZjquOUGF9416NJdpgvdLs2mf3sIpAZ6\nZtcCsipvs9V3ehzldq43p1jrDbKqWcBzyJvqRAE5VJBK54H26ORPF9Dge9Mo\nlPFB\r\n=tNGL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDaPQxYxzRJqeKGYzlcNKlpM8qG0yZhJPui7AxWq68nbQIgb+TlH0Wz8R+ePrN6je+O6JpATN8Np+t38RPlAMsrb9k="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.4.1_1595284620617_0.2358078133510395"},"_hasShrinkwrap":false},"0.4.2":{"name":"@rest-hooks/endpoint","version":"0.4.2","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cp src/endpoint.d.ts lib/endpoint.d.ts && cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/next/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-i.0"},"gitHead":"0bb299101b7fea7dbadbbd3dab366098a028e240","_id":"@rest-hooks/endpoint@0.4.2","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-b4XxXUAWJufSzR6dkkKzCZvQ5eIb3rPEUfKfPQ7LC6OWUmSC41Bq5uVt09H9fWNfNKLClu+YegEeG99C8wtx9w==","shasum":"434f9386817b7c508bb04b4bc6095dc0c4cf3efd","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-0.4.2.tgz","fileCount":31,"unpackedSize":70847,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGHvmCRA9TVsSAnZWagAAO78P/iX4Kkx1nRbtIi+KoAhn\nrUUIcZJ9tjCArNroESVS0aMRxK6s2963VE+INyz4RSyk9Xp5M0gSaeI9oOOt\nn/RlcgLOyKGncRCWxtkVNFKJv7QEgTdyBZCkHED3TH9/n0GmMvPJL9pVEmYd\naAFGcCVNoLXKKdA6rFKOvB7RL1fLrdtsrTOHkvv2NrEMRf7I6CURCGydYZMj\nWFgifaYXE1SLUObQYbNxxqk4pqW0u4oed0w8+p/3eNoNYS5xR/XNvl6bsoUW\n3Vk3rXyqlsOKVLOfKW4ElCZvDrWEok6efQ0JDh9PMcH75bEI0ZVsGousnVGH\nNWtyf5MxU2iEYPMsNL3d13c0a6oddhBKyaHUBYv2JGSHzCxoKHM1K9bpjNma\nrGUqvkWJHrSRwYvnRtDQNrRDZheXc+Vw1A1QZAi4LQpRbRhZYAjcLk2iIeXc\nr7jwDnhozgBaYzX+oJiHHTUaBPL3iu7k3thQ08VsKGINLOyu0UrzfqpIFkZ4\n4tb1YPC0rCgGRIpkgMLr5W9arDqNje7oH545mrjgyKFRFb4QE+gICMSCYdpq\n2TX/3AP4w/Roq57Q0fC/4RrKItBNtKmBnsr1E3fpkrnAbMWUi7eCxQ19Zj98\ns7Swy13EBak/PUE3VJcdvwgFB7tC5tMcvPb7vYtnUXWD6HFnK9HL5SgC452D\naxli\r\n=YTdi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB/KN3np289kSxbUK6RQFTv1eHRCOudvfYpkZI+zy8PCAiAwSrSjCCKPyq5b4TrhYPcAXEz9QHfFu5dtz39CVwZdUQ=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.4.2_1595440101757_0.1348357043292996"},"_hasShrinkwrap":false},"0.4.3":{"name":"@rest-hooks/endpoint","version":"0.4.3","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/next/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-i.1"},"gitHead":"796bad7931b65611c4c4c1532e851e67ea6ad97b","_id":"@rest-hooks/endpoint@0.4.3","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-66eqoNpB+zurosAjzcGA7+fRIK+fJE/kB6xC80k/fWGdvZKo/VGLAthKSRe3gV/L67/laF5+xOE00P2hDRpumg==","shasum":"08f4e21f58858fca5c3b861f8119b2d4b3333f3b","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-0.4.3.tgz","fileCount":31,"unpackedSize":71273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGLZ1CRA9TVsSAnZWagAAWnYP/RjQtYqSkZCmxZ5pQ2Ky\n3esG1SHgGd1ZKF0P/MqKcBGsXCv9mdP6vSpDpQwLpmR+XxUTPHjPm4BdEtxg\nnh58IFz5KjH5VMWfino8APj51eWJE1la2XQFrMs/txXLXpN8Id6M4CHeAjqV\n5HQKHRYKKp+/aB6WZ5IWEwOTY/xV92SSfXAXLk5WowN4wIzNKSESEXOhyD6w\nM+Pnvm7ARYqhUcSI55RG0jQf//Xpt7NoNq4bxxjCSVYRsSaEOW3+v0aSYp1C\nCkBPdSI8dpk2xQCfYJxQYhnDFZ4uiouVBQWg8HueiPaZRnaLWquatNviowZR\ngEV1gTmmPq57QwiQXzXBTWtt0Ano0Zb5nm/QOxmZRAntLFZrpojjyJ8W/ySH\nKNCsPwkCYeAKKcozcsJdvOU+4JW1QZCx/moZwyTJWa6iKHby52lwoaAcPNnD\n4vKnCxbq8Xcat/c27TK0tWDFB3F1j3iGnELHwF8RqVRDE5SLjzgJ7IB/t30s\nTjzDbPYjmEfDFeTWt/IVKmYTzgLnJt/IZiZSQCZ891H5/tasq1b+HeVyXxBk\nnMFbyq1/vYIrNrvLLYBws0v6WESmN8UJ6XYe7likvfip6YsRki149PszTtAk\nrAUdm3t8agEyNP+6twdsYbj8oghasCm8LzPowd9cM/1daNQsgb7B9rvkbvEo\nMibo\r\n=xz3S\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGTy1aT9Qm1sOTqUwCAicsEprzAYQW6N3lBxsMmqiJYLAiAB/PPxyTA0P9yv4TYb14q20N4rzB1yBP9ojo5Pqw4Www=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.4.3_1595455090190_0.2295980886327187"},"_hasShrinkwrap":false},"0.5.0":{"name":"@rest-hooks/endpoint","version":"0.5.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/next/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-i.1"},"gitHead":"85d6b4b1c05ddecfe055008f64184db9b0a6dda2","_id":"@rest-hooks/endpoint@0.5.0","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-FZXrT+1lq+QksJp2mtKCU0h04JhkWd92TzGptpYTE1pcna0lH0B+cu2QB08Z78HfOiV1g420ZIyZDroi84Agkg==","shasum":"ad18a67d23a9604571efc2efd33e2664062f5702","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-0.5.0.tgz","fileCount":32,"unpackedSize":73195,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHwzwCRA9TVsSAnZWagAAY90P/0p2S8EKglBuJlQdluAg\nb3b6+KnNdAelGEOrO5TFTew9ue9nxwfHsQNivXsGP1EnMK2Use5GaIqZS5Gx\nzSLngWIsEguRzibH4Ai4I8/iqhQeZjBYpB+eZVYnEglarzW4IGA/Hq7Dsz8d\n/nfReTm4lJAbbpz6MpbKEVBUa9eqYD+oEW6ZOr9qLM4uhcn5BWPa5IyDgSmt\nBI/QT/ikEe79PF/u5zMjo7slbDBQ4yye26fXOOHn1KlKe/XBKplQ0e0MoAeX\nEEziMF5rnGYA8tLNY8BG5jjmp4AV6F84dBY9I2ztUVE+qnHRHwlRDVO+xI2K\nLW/YmEIVNonI+ybH3hmEzXiHB6OevHVCTBSbbEdkjwzc6XvQoJOZh4zf9ZWl\nigonDa5ufJqe1+qwx8GI+CQtOC/gy4loPiuXq+RVk5qJZd9kIgV2t66zr/gZ\nLBSypwKT9DCwZENPCCCcOaZhc/KtGGUn5YNke7g+woXun7xFQ3mizPPSSMKd\nQAaOPThsebToLDW7JgzHuXnLxbTzhXcQmKQ0tKA3OA2RcaAQ33wdbfkilFtV\n+3IHschmxscWZdfIevZzfI49nJLwWXL6hn0v11pBZUwuoKnM7xa1WuDFvxoZ\nCsqEyGO7Y/MW308Zub0g8T+aCjnHd0VVolsXaQgIpU3PTGEV3nhs1d+ZUKj6\nrlag\r\n=DOcu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBtES8aaLE6jhq1K43WUgpmd/8DD/CRhm0fh6M4yDOhDAiEAmKNLylOZQzrtZ4CjVMKQI7Rr92le8ttktBPLU+7R/M4="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.5.0_1595870447957_0.8231178446564833"},"_hasShrinkwrap":false},"0.5.1":{"name":"@rest-hooks/endpoint","version":"0.5.1","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/next/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-j.0"},"gitHead":"9f1c93016d32dbb9c93e33b14e225debf1febe56","_id":"@rest-hooks/endpoint@0.5.1","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-DtsEeop65/b7YlQM2mpnmdS2VgcfyQFAaa+ZQShDLGi5/kXtzWV6vtlAGR9XKCT+0aQCrfqur34UH+l4vQKEUw==","shasum":"16bc40c68b1db3ac84d0f7fcc3cb939200ddd584","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-0.5.1.tgz","fileCount":32,"unpackedSize":73299,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHzfxCRA9TVsSAnZWagAA7jMP/17YcvFqDhlnv66BIWoK\nXlIY78CmNvavIzFWP8lmDAqAQQnrrVVBTVi5DyWKr1+DWy27tCTbmCV8S4Na\nHSOQZBcs/k9RYOPFXEDWE3/Ap3FSCOFWW62ArRSjhhbWeamysMlBG/CJoTHy\nghHfcqz5gjybWyNUu7dVs3Qi5537+gJV9fBEifdv+8VbP5egp3hR16A9E/JG\nfq0gDRWnVd7B9NdedU1wfW3U/En7cvHND5l8ZDlRifZHvwq/kByFWv1aWdjo\nt4Fu3QvqvWZslSoHpgUYfJvF50PtpjaAtQji7ySIDXFhXSsuxFr/6sfGxuMB\n4leJ8Q7hEcczTEw4Ul77kLL5V23S7b1xmXHJHL2ubtiX8GfBy98vPM8aXqgv\nB6/aRXRdQ3CrW6XP/y698vwtfFS3U9SUeQtVWLLo5wUTD8jChnrQDoYiEes6\nEThZUifz3C4W3vFsen87x9vcEEdFmgOI7fksaHtECECa08NyomkBViCQebFJ\nxMCmm+FHiwslZe1a6dTRZlFldsW938fpa6Q8/vopVqexMo++UmSmhV1Qnj4/\nMgFu1rkxe0Mf72Qwq1VC8Ni/iqvOn7rN0zMQ0tptzmrVxTR0O7209nLuFeAu\nQUc9/9x1L1MhteiJNq8T6asJIjJw8DOXWEd6wnusppAkxpjL7ibxBpnIEP8X\nx926\r\n=tBMw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB/cORV3Gn/QeNcDcbadQGLKatswCvTacYdnrojJ3YgOAiEA12OEBUyDx4wzUNqms62CmVMcRkK7t7uw923/G32q+aI="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.5.1_1595881456651_0.9533794731460832"},"_hasShrinkwrap":false},"0.5.2":{"name":"@rest-hooks/endpoint","version":"0.5.2","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/next/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-j.1"},"gitHead":"2c30271056703287e287d2b06d22e81c6ba78f37","_id":"@rest-hooks/endpoint@0.5.2","_nodeVersion":"14.7.0","_npmVersion":"lerna/3.22.1/node@v14.7.0+x64 (linux)","dist":{"integrity":"sha512-Gym+9SdHBbZmUybbYY22eNH5PB5+aQgXQVcxF70cnTFLpn0UFVP3o0vbCOzO/MeuiX1f7uxE8eWZQ04p1zaJpw==","shasum":"fa1e65973cf8053180283c9c1ba228a5f2df0f0f","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-0.5.2.tgz","fileCount":32,"unpackedSize":73445,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfJIcvCRA9TVsSAnZWagAA0ZgQAIeup0gKyG3juWqTTMz0\nfOwCDZmK1payJcx79EedvrTDZpnj0dU7NvGsgRHMXkw11F4+hGq9xLha/JCH\nftbdZdETdyH+TNN+xcahDPzbIO1/vBsXXVDK238CFXIWz+oKibddSMEemFDP\n/0X0Xm7jruJKZ5VZqC2gEqdF6SFQJLEKRuQwULQxRT9Nj2vMRIl/XOdRcnVC\nr33G4qvC5k5QbIyPk4dA0TfaOKkLfiPzYoEJvrPhZGj5Ay6Njx5km6KZ7T9F\negjJTTSZNTh35j87RglXzTsr3y+U7pfIN54cR7bTOvqrkbunTF/2kPdSicQe\nqcj+8o79wvXqcaDJONt0bxM6eWsiKdRMOLdFZ1xHP0ybZd5oagjDkxn+1r+j\n/vQlUMEdcH7dnjdKrZ0sZevbQzb6ReoAq9SWKoqS7UprxHDETMtzEH26PItt\nDMsS8AqxHnMeNLAIDJ7rp8l9rAgnOKbylJH2WLuCmqk/eYrEwhdNC7pFl8/m\nDYeXpPmyFgKK+c1IFsm4Az9OW/1jCpb7G855V+f0OBA7ePdVjz6Ee8vXA6eA\n+iGsSgiRe3zYIvaomjZTGMaDQ4vySlb1bLgfDvPU7gvXzG+hVzdWbKWVtWoO\ne+zhlZN6frQMmrckUe1vOCF5KXMziG8CevjVwGUsYkwsPtWu6m3laBVkpwRx\nBDdH\r\n=JsAR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMAYsbC50XP23/6NmPQ+0RBxI0CRwiJvLL47bZU0Bo1wIhANWDBMMSdvAZ41Lot1rPshoIQ7PlRs82MTiUAFgT8Q8A"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.5.2_1596229423440_0.7778990212033201"},"_hasShrinkwrap":false},"0.5.3":{"name":"@rest-hooks/endpoint","version":"0.5.3","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/next/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-j.2"},"gitHead":"5b160b1c404e64b56a2d31b368a53af0b1bc8a4f","_id":"@rest-hooks/endpoint@0.5.3","_nodeVersion":"14.7.0","_npmVersion":"lerna/3.22.1/node@v14.7.0+x64 (linux)","dist":{"integrity":"sha512-LjnA8RX+XuuqTQaOicXbwYJVF8q1Jse6hKLNh6YVK8uVin0VWOp0SecEuLCWIHuP34yKfHCkMQYpRKAhVL8VIA==","shasum":"68a025aa245b4d0c866773fc255bb8107dcae627","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-0.5.3.tgz","fileCount":36,"unpackedSize":82752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKMa6CRA9TVsSAnZWagAAWDkP/3oXe0vtSo20a++i7t/A\n2r99Zr55zHbxu2OmOZpuIAX7JXatDmIukIk+bjS8AY/lPzqh4xETSv28iyLc\n2r9pfCphF512MsfXNSF9kWzTBZpEQqtQgo7Wxn44eJ7F8X/GbyACv/ZBg9HY\n4TS4FULO3g0t3rJYfYVGI9AYQfi3Bv0wL024kbrCPax88q9BBMmPOgtmJ9FB\nNxepuXztFpKCM0bAVMoq/2neHmIY/AApIdBPk4bd9K3iltDUkEHmOJ4p9APW\nsC9C0gJ86cBVNxKpdVyC0d/581Rq/TSj/vZtoGiZvch2H86uT8bH4HXIgXH8\nNDdBP/hQtVeBitxcBdh38lrxgD+O34WTXEP8H/ap3b/HhrFrB3KRfhiVjKW2\nYm14oOPQq1bWWz1V/ufjRL5Q9IUSdjDEnWTEAOKb+27ylhHydnTQ6GSGSxEh\nu+QFFz3i18HSnnS7cXbbSbZYpmL2H64n1CByXzqJYTOVggwZff0RjWVuEtdd\nOaay4bZGCD0qPGli65aWDjZxi2aJaGgK12lEd41uTplhzSAy3tRW70MdzxIi\nYCepoelFiaIhhC86VseKPvQ4Skq4y3jwlrSJ3zNLDa0NR+dIvmu7/wh1zMte\nxyj08Ns1lo8tV15fo+Yk7dD7+IlJDVAnVeZvb+6FDKvMvtMDAPaz6odkB970\nUgbC\r\n=z2I7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE2MKOvfNEfXsxwHczoU1ie3j8pV2Rw4VkkxVS01U5f1AiEAvKySLwzTB4mah5GU8VqnOynj0TiVcP5wzFD4jVbFk9Y="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.5.3_1596507834268_0.10519777969042043"},"_hasShrinkwrap":false},"0.6.0":{"name":"@rest-hooks/endpoint","version":"0.6.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/next/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-j.2"},"gitHead":"529b34f1f4913a4266abb2eddf345332e063ca1a","_id":"@rest-hooks/endpoint@0.6.0","_nodeVersion":"14.7.0","_npmVersion":"lerna/3.22.1/node@v14.7.0+x64 (linux)","dist":{"integrity":"sha512-CI8MJpkdvdf64LQKKx7lDRk5AM+kyYV5Gj3jcHodnjCx/XhL7DUL65CXd7MmVCUvdRSxTnnX2LvUaw88xDaJUw==","shasum":"270967988c0ec7e8bf35d4dee9614143d701c02c","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-0.6.0.tgz","fileCount":36,"unpackedSize":90737,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLhAYCRA9TVsSAnZWagAA2TwP/RSu0c7+cDGTWmLZLgRJ\nq0HyYtJcgNYz3PyVIS1T2bwNVrNEjjYos10Qb3UahmpWXN15iRtIhPqGGu0V\nC8F5xgw0gqm+4nJYgC8EZ0yDt95DgCrsPaR3v9kmZzq20Px2/vNzQG8da1SS\nNvgE0KeC3ftOWHp6u6gHWfwFU7ku8aukr0ol4hpl4Xp6nYNtt+uJdpVau9a6\nS0xQMIblqfKv8CnZ9y6BQetSXX1u7aSnjNR/ouveNEJ9vJ4z2WxAZoygj6wU\nZ6UvGA1HZQLTBT9uLr/ttnQQNnVO+VWQ6o3kd5miwDl3W/uXbN3ZBDNlJ/6j\nJUNtRDnyPkmgx7cT/9UXwnmVP21BX72B+Q4EALQyRHr/TSeJRdibECSk2chC\nKMruIx92iR57mnuqygquZFt365lJ2xoyIP9oO30A2bMqASjJSMnVDVnXAB8O\nFV27d+G7kHT8hJ/JVqxZyESPaEKTZ/wJDU9MvO6EdTtGRsarb8dEPRkE9uY2\nM3r1YTqSqw0/G1XXml8tCgZAOzZiU1VSdE6/gYsbdLyc+E0+34JowzNjmyua\nZbow0BrFSoqsGqlEqbPZjiV53w6JtCYFB38r3XXPSGO9B0B4MGU6R4Xo8SdP\n4+kC9mMD7LpOTBIEIGi5S24TiiP7DiVrAVqHIAooCxQJkzT03G4n4rjnozUA\nfrP0\r\n=JMW/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCljo8X57iVaijNM12HdvGKN/iX6ONqo+uQEIV8bxH1YgIgMaqdByd7hYMwLtlst74yCa+jNYQC7SRNxiJiiY23Hdk="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.6.0_1596854296510_0.9531521164213159"},"_hasShrinkwrap":false},"0.6.1":{"name":"@rest-hooks/endpoint","version":"0.6.1","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/next/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-j.2"},"gitHead":"fd8e457af82610927a6a120e02801f0f59d29150","_id":"@rest-hooks/endpoint@0.6.1","_nodeVersion":"14.7.0","_npmVersion":"lerna/3.22.1/node@v14.7.0+x64 (linux)","dist":{"integrity":"sha512-4PPS835CMGVgdpFBiPyVUG07HsRFaQfnbNbvKK6gYJP4KwhkL2DXj/hAKkyvXZar66/MQt3m5JNmd/K4UFEWxA==","shasum":"11553776509d5ba47237e975c4a46c8b14a4c436","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-0.6.1.tgz","fileCount":36,"unpackedSize":90961,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfL5ENCRA9TVsSAnZWagAAcsUP+gN+vaoKfy3gf2rnXUmF\nhDQ0ZRKA0Jt4UvpSH20YWzVuh/BGGd56S8HmQlY4sv/jkjIgpUuaDl7S/3QH\nTA99s+BgKpUYKnBWEg8wT3HPEW+o308VklZqzOfeiZ9lTcy/ONLnl8SaPtWV\n/B9U8q9i84boI88i6HkZPSnROCxxH1rPl0SXly8WbT95aqHCkvL1k9xPsCeu\nCUtSSRQr3HAET3TE+QOJp8tAQv2KZPgG6cB2sYNCwcA9YWwypSlUk102N9Sq\nu0CK119a0dyNkbvz3Q7pn8oKbcw6RmiwvF61FGI4OE83JsgTluxsYjmJNIfP\ne9EEvfhKp4DXhkVW2kr/4kTaUIf/oSoCrqAMF7ANHDLh2dQCA/u7eM9p5zJe\nvEh62n50xlJOFUHHaDIewf8NM3OzfAfbiB3kvmaM5/DM87CSRsdw7fTMojRT\nUWtYU/FWR3NDS17pJS/LkIbQRbVjq+s5oy/xYJKJ2C5qhu9WgHNDKtqUk3nr\nHxBlhBkAYFYC0c+220YMr7pXvGd6Ci88nXzwlTFZ5UgGxwheee9XNjSr3kFV\nClHb+464CUTZDc/WOYxo0fpjLqpVk9Chb72xU+yeJXW5WoJ4lnZlIJ5Ip9dE\nZ7sd80nOukgi18l3NWPlWoqhftwHkaYsybLKtdq9TXVlaDEKq1YiJCFOv8/J\nyATI\r\n=Jh1K\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID8qtR6lzu3dbyZx6kEBct0Y1PskCWdxz2yX8E62s97HAiEAm4SagEmASr+Jywn3ESl1uYXWJo0IKt20LI9jdUJRXzw="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.6.1_1596952844652_0.07942720629357103"},"_hasShrinkwrap":false},"0.7.0":{"name":"@rest-hooks/endpoint","version":"0.7.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/next/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-j.2"},"gitHead":"ccbc14d40811b2d0a5f3f9c04a5a6345e1d15e2a","_id":"@rest-hooks/endpoint@0.7.0","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-KaODAl4b2L6Y/ue6hB/9Oy0w21aeK30UMlMa5Gj+vuLC3nTgrL+LdAge8pXb0YNUlyQWn+5K9ZJPbplSeZ2VCQ==","shasum":"b17c72135e14f0fa22939ec2b5b746128ddb0df6","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-0.7.0.tgz","fileCount":36,"unpackedSize":92266,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNGyPCRA9TVsSAnZWagAAR3QP/1njX1r7GmpCP+5YBueA\nUYmEOYemksmqW2648cRggR+UfpNIvrQllOv1HFj8OvutYB1oNUEoYFyNDORj\n1I485nEJRjHeRpj+qU/ySTtwJQ3nfSfEzCnAaeyE/eL/rObtjN/QlSyD9Y/M\nD1R5e5gRNdzUSbhe7SjOuL6ehpVrxO1GE8xaaT74/0bqsnvy8xps8B9790A+\nNRHtPn+1+DIG8mJ/r84rnLESkif0/xGaIAMwZLmpqJ6wuHVuTBdpc9WR2+XY\nVPkIluEcCM8TC8ho+x+DsReLPo4kzgFjUDGRoNhy46KG1NHLV+/VhrGF6uzT\nKqqpjhI1ilEI6OSG23btBvqenWtTckuFjZsU0QZhoLRpgEtIJDUTievzxk4d\nZpL5EUSH4Vfu0mtWdWLtCJJTKjNP32HHVT/7auGYloPVmJZQ7/BFtQ2V1Vbn\nKSQ3wCdqXZLjrEabenEiJdTA8sj4AKp/h4dBEVlceUABbHADZUVCdmkYJ0cF\n0618XjCfHZ5MDzd4t08woOaDLnBzj5Px2YKnyXE1xqYkz1f87vS1drASuaNm\nfq+m6hc5GvoLAZaeNGuB1gPAhJdCRKQiXjS2V7Pwwdm90kV4AA24iOXrAqGm\nFaAENgYyor76M5qT3JzSfQlmlkKg+dvWGhwYJAuM3DS8wSq713VWbBej4bd+\nQU5Y\r\n=tipa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDePUEr+xJnTUDhufoP0bhHrkoV2t/PopMlAD6l0Uql2gIhANqm7KmANtWyf74SIEpG85i4mX1VlSRD7ySKyNRS1v6g"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.7.0_1597271183483_0.4176583640164402"},"_hasShrinkwrap":false},"0.7.1":{"name":"@rest-hooks/endpoint","version":"0.7.1","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/next/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-j.2"},"gitHead":"7ffa7b3d8340d560cfc79f66dc7a00e96fabc530","_id":"@rest-hooks/endpoint@0.7.1","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-C4oiEr9EvJwrmYVb/aXT5vKK/85AU6/6oE8LN8VyvgDGky/73O5HBaLTkM48SDpQmLBvwRJSjikOfjE73nGXWA==","shasum":"e11083a237405c866c0fa1b4ab0d65819b0afc90","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-0.7.1.tgz","fileCount":36,"unpackedSize":92245,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNWfqCRA9TVsSAnZWagAADNgP/A0ZwALhy/u2jNuaFfja\nl2uUwxFMVm3omDX0pNDooB65MWbRyZtn6pwUo/QH6wwvXK7PWGb0/3N2JQk5\nt6JLbv03BSSmrofEL9RjrY0kUs0khKRJi7w8/t8YPXK0DMmZFvE3Z7wft7Ag\nXyEEaUO0iMVj/iqKKTMJPwb4u4DXcZTiTmSwyQuZS30o7Viqq4FvVjVFwUbr\nYiIXxz3P8wk9cWuc60cUCURC7NR0QIgDO3kAPX7fTcSH+Xk0jsl/Ec7IW5DR\nlNLEGTDMwRLcGSeHcUBYvKiRIjCwuapeJBpsLnRzrjbdSBnGu3ySP7UWNZvz\nmiJlQz2GQe15UqwakatTemOa6T1HhMdlW751PVmiPKZW50FMgdKhkaNypruA\nptpe3a9j5NzLtNzwfi65qW5MLYu233RlTQwb3pvkWmLCdAAn7+o9rppgSZ5c\nkzDcTbOkR0v72RlUskcKWLvK1qJLPfIoYPpjFxKqjobY89diOac91qX1QG3G\nHUOQIShY2PZ5h31GpqS1Zsj4HqzIw6y6j/lu2rbozCBhBAbYJHU096FnxbIb\nR6btekxxokk1YOqbjkKG7JGTfek2a5REkCTgOMNedHbCTutRhFVuAkRAilm/\ncmhxw+NTNqlK5o+dosbw6dxnzjWSIULcTfcxrXpbEHvSCkrKAsccsnFcrDSa\nVGR0\r\n=Gnxu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwIpziKcsi+T2JAUI33JybuNHa+dIM6ZPJW98Tl/SyRAIhAJD1Ds7oWmz07YrdJ4p5Ovnjidpv3FaO/ecPLilDJiJM"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.7.1_1597335530209_0.21931969693823472"},"_hasShrinkwrap":false},"0.7.2":{"name":"@rest-hooks/endpoint","version":"0.7.2","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/next/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-j.2"},"gitHead":"5857d141be1e43df68b62e7f9c4225beb4dbf8af","_id":"@rest-hooks/endpoint@0.7.2","_nodeVersion":"14.9.0","_npmVersion":"lerna/3.22.1/node@v14.9.0+x64 (linux)","dist":{"integrity":"sha512-Wm9NuB0DAycH0ViNX98QuqV+V+iIY3OCW5wu8j9Tjd60PKb3npbvq6JB/APetgJrvMek3xEvc9Zk8gA58KaKmg==","shasum":"49d4ec6b2606de5d9552ee5e7fb1bf119897875f","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-0.7.2.tgz","fileCount":36,"unpackedSize":92629,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfVw0GCRA9TVsSAnZWagAA6sgP/RDg3OujmBXO5JYgS4oK\nOxw37NpV3adnESAx4YTu302OA3xwZUiCiy+rQUPD+S3L/YiYNrKzRrTLmEwZ\nkyK0pk+PUKQYgZMJy5abkMnaDvkskNA6fs9TFGXxy5AEVGar6AKtn74MTqnO\nw9Cd+nAXL+GbWnZFMaeB6MCcb3h+JRKnN7qFs9ZnTMciZJ+qDgknN3qi1JXX\nkBQ1AF1ECm4NQU2GKh3u19BqeLyeFMYyi3+nrqstK1q/f/dSEgWeRsmTFCkN\n1HaxDIqmOnWD7Hm+G7wjJCU1X0EbUMElZB18ANwbPebOnJFv+nrGn1jMzjkJ\nWWbs+UC5P0H0lbCGaQ6xrRbW8VtvnuEbD6NC1pW2DJ3Je0eMLLfV3OPC4qOf\nl0wEQLW6rKAJ8fCx5W0ih9+IUeqGfZjDe8EZRG7jBbk2uFTUf0GJmwecPrYs\nDSEVeajOxXCIvxCtCpK5C0jAs2LsTrmtPU6DHABktaZc5sJfPxtlPOJvsrwa\n553E3MLkl8CQgqetAn8BzMUnkjdLwl/+tzcDoGYdAKmXhL+U4ZPsn5C3F0Tg\nC1kPWc2+Q5mlghjQxt84+81U1ljTvBw//MPKYL1DWuzjUsFgyxpcySa85zlk\nx9qwQobGKrbtRbRVWxV0EVQtKc/4Kw6Nw3CemU/EFK2O1x7Ru0uo/40Tsd9/\n0FYD\r\n=iwcM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5JgquM5eieY6BWxKUc2g0GzUfgW/TrABE2VqQmp4qKAIhALIxYHi+c8nLm6rBg1O0PNPsw5BI0l/bfQnNM3cvpcDJ"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.7.2_1599540486211_0.8881980944056245"},"_hasShrinkwrap":false},"0.7.3":{"name":"@rest-hooks/endpoint","version":"0.7.3","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/next/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.12.0","@rest-hooks/normalizr":"^6.0.0-k.0"},"gitHead":"3d62db99b47ac7e846cdbabba429b047fdb8d18a","_id":"@rest-hooks/endpoint@0.7.3","_nodeVersion":"14.15.3","_npmVersion":"lerna/3.22.1/node@v14.15.3+x64 (darwin)","dist":{"integrity":"sha512-C3q69GUc79+gzc84frJBCy/V1GN0ZQzz4MOiE0hoSrPDrolcyuZtFYpNrlOC4BrvE4zBZnzw5sK8/YrBYpUKiA==","shasum":"3742f4cf2ac4bd5889e162081a4678b9c7f75aec","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-0.7.3.tgz","fileCount":36,"unpackedSize":92804,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9SjSCRA9TVsSAnZWagAAM0AP/jOEU5/SDZeHRCAqBIMi\nqyhu54cZrKrajYnmRq4TOM5o1UuqL0+IWlGLXJ53xeBnnpLX5zQCxf2Az3D7\nMLM9DbOX9XiLx99fJ1TF/8FRpNU3jviOPlAl0hUINs7iY/7++5MsL4BeQdIN\nITuLSgd7wJ5meNWTcr6RI65FrNUC+GSdlsTXB/q3oGXHRIdyK2rSMAEvHAq7\nDVcYe/suK9P60+/yQZ5uBZ0uLn2lV0UPD8e4+0M9SDZWL1drG87qfHbg8RJR\nRE4Hrf9QmkBgvaKx5zXe9cY85hE1XP0pVQqvQ/W1kq9JWawXj5PKqkqXLfVF\n3Ee51iqmESl0ZX74w0zUfiXyom/R7nDBiQe5+epCd2lRHGSHykzRBe93wqvm\njU9pBhsMB589xUDQcPflAvXZbB5aPEDiV4K62fA5F/6IxYtf7C45wwa3gc+7\nux7WvxdkQn8JL/ehvZQAsXzBaQzBJFwAIiqDzXrAgJJ26NiMmgXlF/uJidiw\nCffp1dv3g87aVuHcebM4sgSqxf6t1nkAIrljf4QGAW8zj9q9lhUin6yENOCn\nBMCs5sC6YQQZ8hyM0Bj4eJ7sJvFo1wOJqk53S0Eubatdul3DLHM8Cdilm3V+\nCd20q8Yn40iBJsxkYMlcF753J2snfJRt+G4qgo6xtRCbDbMgirMT5wZa8IxQ\n6wQP\r\n=tGEK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDclmDym22LZXqxvyuUjoeceposj0X10TwtJGIC1G1NkAiEA/tP4QSHzdYPFuID+fEqxoFYfaEtysfjGoy8mPY/lv0w="}]},"_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/endpoint_0.7.3_1609902289858_0.7694081595619313"},"_hasShrinkwrap":false},"0.7.4":{"name":"@rest-hooks/endpoint","version":"0.7.4","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/next/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.12.0","@rest-hooks/normalizr":"^6.0.0-rc.0"},"gitHead":"aac7788118bcc573da9eeba25fffb27e950ac9d6","readme":"# TypeScript Standard Endpoints\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/endpoint?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/endpoint)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDeclarative, strongly typed, reusable network definitions for networking libraries.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs/next/api/Endpoint)**\n\n</div>\n\n### 1) Define the function\n\n```typescript\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nconst UserDetail = new Endpoint(({ id }) ⇒ fetch(`/users/${id}`).then(res => res.json()));\n```\n\n### 2) Reuse with different hooks\n\n```tsx\nfunction UserProfile() {\n  const user = useResource(UserDetail, { id });\n  const updateUser = useFetcher(UserDetail);\n\n  return <UserForm user={user} onSubmit={updateUser} />\n}\n```\n\n### 3) Or call directly\n\n```typescript\nconst user = await UserDetail({ id: '5' });\nconsole.log(user);\n```\n\n## Why\n\nThere is a distinction between\n\n- What are networking API is\n  - How to make a request, expected response fields, etc.\n- How it is used\n  - Binding data, polling, triggering imperative fetch, etc.\n\nThus, there are many benefits to creating a distinct seperation of concerns between\nthese two concepts.\n\nWith `TypeScript Standard Endpoints`, we define a standard for declaring in\nTypeScript the definition of a networking API.\n\n- Allows API authors to publish npm packages containing their API interfaces\n- Definitions can be consumed by any supporting library, allowing easy consumption across libraries like Vue, React, Angular\n- Writing codegen pipelines becomes much easier as the output is minimal\n- Product developers can use the definitions in a multitude of contexts where behaviors vary\n- Product developers can easily share code across platforms with distinct behaviors needs like React Native and React Web\n\n### What's in an Endpoint\n\n- A function that resolves the results\n- A function to uniquely store those results\n- Optional: information about how to store the data in a normalized cache\n- Optional: whether the request could have side effects - to prevent repeat calls\n\n## API\n\n`@rest-hooks/endpoint` defines a standard `interface`\n\n```typescript\ninterface EndpointInterface {\n    (params?: any, body?: any): Promise<any>;\n    key(parmas?: any): string;\n    schema?: Readonly<S>;\n    sideEffects?: true;\n    // other optionals like 'optimistic'\n}\n```\n\nas well as a helper `class` to make construction easier.\n\n```typescript\nclass Endpoint<F extends () => Promise<any>> {\n  constructor(fetchFunction: F, options: EndpointOptions);\n\n  key(...args: Parameters<F>): string;\n\n  readonly sideEffect?: true;\n\n  readonly schema?: Schema;\n\n  fetch: F;\n\n  extend(options: EndpointOptions): Endpoint;\n}\n\nexport interface EndpointOptions extends EndpointExtraOptions {\n  key?: (params: any) => string;\n  sideEffect?: true | undefined;\n  schema?: Schema;\n}\n```\n\n### EndpointOptions\n\n#### key: (params) => string\n\nSerializes the parameters. This is used to build a lookup key in global stores.\n\nDefault:\n\n```typescript\n`${this.fetch.name} ${JSON.stringify(params)}`\n```\n\n### sideEffect: true | undefined\n\nDisallows usage in hooks like `useResource()` since they might call fetch\nan unpredictable number of times. Use this for APIs with mutation side-effects like update, create, deletes.\n\nDefaults to undefined meaning no side effects.\n\n### schema: Schema\n\nDeclarative definition of where `Entities` appear in the fetch response.\n\nNot providing this option means no entities will be extracted.\n\n```tsx\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n}\n\nconst UserDetail = new Endpoint(\n    ({ id }) ⇒ fetch(`/users/${id}`),\n    { schema: User }\n);\n```\n\n### Endpoint\n\n#### extend(EndpointOptions): Endpoint\n\nCan be used to further customize the endpoint definition\n\n```typescript\nconst UserDetail = new Endpoint(({ id }) ⇒ fetch(`/users/${id}`));\n\n\nconst UserDetailNormalized = UserDetail.extend({ schema: User });\n```\n\n### Index\n\n```typescript\nexport interface IndexInterface<S extends typeof Entity> {\n  key(parmas?: Readonly<IndexParams<S>>): string;\n  readonly schema: S;\n}\n```\n\n```typescript\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Index } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n  static indexes = ['username'] as const;\n}\n\nconst UserIndex = new Index(User)\n\nconst bob = useCache(UserIndex, { username: 'bob' });\n\n// @ts-expect-error Indexes don't fetch, they just retrieve already existing data\nconst bob = useResource(UserIndex, { username: 'bob' });\n```\n","readmeFilename":"README.md","_id":"@rest-hooks/endpoint@0.7.4","_nodeVersion":"14.13.1","_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-EgQCoffbLHRDkeVQcrvqI2QVosIoMPeJWcKnVNf5so+ZDMkBqOlFQPxvYU1hyfoL56aHKwaZ4T5YVrnJoDEpUA==","shasum":"9856788182eaeb1bbcf12e8c0e61eed4d71195cc","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-0.7.4.tgz","fileCount":36,"unpackedSize":92909,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAO67CRA9TVsSAnZWagAAEy8P/i5vz3utriixeKTempxp\nwsDsimsvFqEJyRfRrQuXrqe+E+WkRIb9Zr3qpV4AKe8E8mqkLQC9URZR9ZI2\nngEgPnNPwef89hKTJIop8Qo1M2vkxanLIlerhVfe2YCO9lp9Nz50rqUhHTSO\n38+oWA0BJofPdpJit/IF4rhi6DD5F6fmWSZ7okfdFOrOV9xp043oIgVfYhUI\nRY6R75bNV3bF4XHF3Qyn03JeAGwVJ7zBAcPcw8WtrtILj7uEpKeiuImpLCYd\nruptt9X4/0yWWQILLZx6NmAMnFxwG9TPbfDEpJFJHcPCtzDSPlA2oGe1atJF\nnJvShPY5UCHBULG8p2qcFONejKHn8jKCdHOfoLjnUjb+GtzYqDye+uv9ItSx\nkwH59H18UumG5AIN2t/CUyz2y2iEc1CUnJwqMA0v3JpgZHbjLeuOI+yzAedG\nV/pPUotzPH+nI9I0rtXHUyF8Mo56lU2XAwr++Vb6FIamFlJzGVoTgI+OuPir\nhEcsykX8kTijWGDwGduhjzvhofJr1QyU7AC0Vab2EyU3m4gooB38jaaZNJVv\nqfmL2LCHWtAveKlwPOVc9WoEg1pu3VgmkqNVARdBBIpS8/trmzkpa/5pyo5A\nODgQ2ZypDf1XehX4QiPj3FhyX3g5p6x/FiV+14c2qMFmEuTdJbTqK0rMvIfs\nJvhV\r\n=4Tfr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH82Blt4mPJIrzNXVbOFp5wTPtlN2W6s+Up8955dSC2MAiEA1JCWIFmOA0u1iJR0q067YeMXEIMreaqAV06zX+lcu/4="}]},"_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/endpoint_0.7.4_1610673851310_0.13445910057235144"},"_hasShrinkwrap":false},"0.8.0":{"name":"@rest-hooks/endpoint","version":"0.8.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/next/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.12.0","@rest-hooks/normalizr":"^6.0.0-rc.0"},"gitHead":"32f0a9dd1b3e396f9fd3be7626da0b4459edb3ea","_id":"@rest-hooks/endpoint@0.8.0","_nodeVersion":"14.13.1","_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-JrjNJtudW6w4ZzlN3IhrU3Z5jelf/ROIu+tDmcoS76zo/FvmlkAtOTZ90uPZHOJMsn+MyCemavLkVyb7q3R2Nw==","shasum":"67c2511e2923dcac3d73afe0fff3750d9f0edc90","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-0.8.0.tgz","fileCount":36,"unpackedSize":92735,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBmYqCRA9TVsSAnZWagAAlYgP/jPZzgOvhLWY9zWqreK0\nIjMVj4XfiWpiPef4TqR7jqQ+XNX3o90mB6NC8n/kQCs1zTHvKd+qGqhEgIzM\nEd0ZWCmEQZYjkD77YfGd167HMaEhFUOzbKE7VwZsECvFALcapcsYp0725Q6L\nsdBTnruMuit7rx04A4JG/U1aygOQ1WRf7ZPs16IxJhH4eHyQP5toTDnVkGNR\nrAIfs0Hfoa8Mchbfw1xWma4IkiOljMCM18cQbm80J27rwaV4qc2ZqHqkvGQj\nsrrUAafC/KCe21PPj9GJFVYAqANjiCnGK3z15WhrY75HepGljHx6r+MD62Y1\nTHYSIyveKVF0q1sIZ79kQE4J3nSbg93P/Lf+BdXn0VGvI87C3ZnjGkvx+qSW\nswhkwdghNP7he+tNBV7fJlhTFySgtrrfEYgDkGDvn8uZ3blQBe4JhQTmB6jA\nG5wbPkKNAFfsUbQG/zri2HEop8vFh5KZMNqMt2vIjDrK09BKfgdXyvWf8HWR\n2lL8zHKjV0zeaZqCVQBclgl00p2xFdMXtT/6JwUDX7QAN6DivUtfBOYImA+W\naMj5dYLF84iQSwH5nb8k6KZf+/ndTn+tGk6YkA7Q16ZKaV/05ez0mOr1IkFY\n03GtJF1wgLW9UtXo0tBlzqqOjvLKLw6jg+7WvvwpXdzdoFJQm5Fs6gWZ65Pv\npQMr\r\n=eYgx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgOp68cYmcQ56pa6wkM91iXcnw3egvwX7iJfdu8s5N4gIhANrERatu4WBMKhEnH69YKv7QPb1zPPqPqAkzP1y0HnUf"}]},"_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/endpoint_0.8.0_1611032106177_0.24412815677684208"},"_hasShrinkwrap":false},"1.0.0":{"name":"@rest-hooks/endpoint","version":"1.0.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/next/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.12.0","@rest-hooks/normalizr":"^6.0.0"},"gitHead":"987d81d74abe240bbc5fcc08d4d9fd18a85b12fd","_id":"@rest-hooks/endpoint@1.0.0","_nodeVersion":"14.13.1","_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-qO3FtAo/1EZnPe28GjTWMWn/l4p+jfdIxINEPB3AKOj2hy5MsNZqIAsk3xiedTt5XtlQMwaEO9o5gL0/cLyM0A==","shasum":"2fb6b5a68ad3163e310b5d5065d3b7f350a155b1","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.0.0.tgz","fileCount":36,"unpackedSize":97065,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBxXhCRA9TVsSAnZWagAA1T0QAJ4w6MsoYGWzVURyTRv3\nBKsy6n0kDrlTTHKV3I6yeiRZAzAE9ExtfjDDlF9QQXVVQDfsy9ic2GtCve9a\n94WDTINzWk0W481mQ0xMX+5m9XgYu6argnokKkpOBx6lOVst3SCGBkpdmwAN\ndSRF1MDq5qhlPaAt/i9jy70hHTpyI5Ra+FI+znbOKFLJ6oCDfcfnvzOW4/ED\nfV9yg1GUgvo3zZNcw45FmvmVPToUUyOvBHtPD+5HSQGvEkEFJVbe1hJ95zpb\nyQD2oBPqZB9hRppRTvrGd4KovzYjUeiVPMgljGKz/4hFoNW1/VxYIQbVFwSX\nKWjwjOnQxi/G8PiahtDf+DYJUcPE32hLD3X8gLM5QkLVNPf8o1vyaSX/ar5+\n7RrOW8oCBMJxn6h5p6KGJ59H9i7q6TIbWdGdUW0gtTOtcEvWLFI2JbsD8Eoz\nSaYR8c8pXwWewzleFRMEfvVAhUfXkxnT7FwL1njh+5n/nIf/bY/udyS+SmxF\ntlIfITpgqXr9Cpy/TdzNWea34myBN3PKAOsNvG8QXxT0KCx1/t7RXGkAA1kv\ncnsFMizimwcm5/2oUZ3eJhLYMDjrI6yEs64QtkHfCefqpXDqfWuEGPgp3kmF\not0Y4u/eThecwMWRM1BdA+K8XsCTrbK4Cx/5fWN6CnQ4+Z3FpVHlQfF9b7WL\nBcIp\r\n=qBuj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCo7zRhfDAIyxT1uBqTU06YLR8+EVTssX5+jByYDyHVBQIgPz1Sx32dqzHMQ2MJhFe6TdmAzh5VZfBAsO+s7S15zPk="}]},"_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/endpoint_1.0.0_1611077088824_0.1698774735584483"},"_hasShrinkwrap":false},"1.0.1":{"name":"@rest-hooks/endpoint","version":"1.0.1","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/next/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.12.0","@rest-hooks/normalizr":"^6.0.1"},"gitHead":"a031da2ace9ba826dd1acc50b50cec4d42cc6a85","_id":"@rest-hooks/endpoint@1.0.1","_nodeVersion":"14.13.1","_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-J5XDYcfei7Km/2sIEhEAKtHf2P3bnhwHLsLgGeNNr5MstDqTk0R94or+uIwPoKehzEuGWzEz1JBf/wPIBy+ptQ==","shasum":"025a692b3bcba2ee7c9c00b97bb82c7dd1a5f91e","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.0.1.tgz","fileCount":36,"unpackedSize":97258,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgDfzGCRA9TVsSAnZWagAAbK4P/A/PwFtA1LfNO/kSbHXt\n8/uuRfwzJas2XjuOzKs/IxpUdeWeSBKhnTLTj56pEud/DsghmcZnkpigixtW\nglthUO6h7M/zwW+bahfuu7Oph3PEf+5pWWWMKR2UGOlAoJ+EdBmFwM8BIH2U\nYu11fMwnDzijeVrJ5L1gD42VXB3v3iltNyjMxKOwDHSm3OelJhDHtyhP4C9u\n4sgKI6oAY3dDdB8yyGt+Dv2VE1Q7BvdmRfmNBpdEOnSoWlR7O1ctyFOlQHIU\ngp65dK+d55IxcgZFJKS9DzkH7fEH2qp0T1il86mPYPmwHCcfCuKCDOq289ib\nv+tMZ8JZ7HrVJeo18jYVWoBQXHxuVjvvikacQpfB+1lB+leCL+kBlSwm5G4B\nkCQfvfmsfzlt2s5L0B8sxnKKmwgQdXi+QSTm9VK+nfh5a8svChz7Ldp0brfb\nlRNDrz9G6Ivi4QdGtuH0SLOyQ6tJsxLMm+tJ87d21aK677C1Xcf1PA3A5OvU\nFU/y7otld4scoUKaSxsYZZ/bhfLnpTBpXnzAsrTfHj1RtB9z5dFGo3p/ZMyc\nrUsssH6jXM0zVncuOsgYFmXGu83IlCbKAyj5Kq9l7uLGm5EvAcsFUPGRl45h\nVDUB7SGH2kHko+spt4PJ5CEUVlYfnhiLIrOmwYUtvZjsBu1hu63ndiiyLc3O\nob53\r\n=3gpJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHBcwIfQn6zfzLAw8UQya1QH222DNzy3ni5HlGPE08cFAiEAjNkg0OeBazx/l6BjOIuorFbFH2UgmCKtURlgOoQSfMQ="}]},"_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/endpoint_1.0.1_1611529413972_0.4994895964519026"},"_hasShrinkwrap":false},"1.0.2":{"name":"@rest-hooks/endpoint","version":"1.0.2","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/next/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.12.0","@rest-hooks/normalizr":"^6.0.1"},"gitHead":"ebe81d7207573ff57b73b13c9ada494ce88fa731","_id":"@rest-hooks/endpoint@1.0.2","_nodeVersion":"14.13.1","_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-TuyDilnzXwcl2qLnW6VwrKFwR3d5V3F2Hg1XiutM3gvxwkaLcvLvtHAgDPffyS1Pu49t714iTQe4ecHd2iXPWg==","shasum":"7b25ac09453778093de7363fa099a54c23314b38","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.0.2.tgz","fileCount":36,"unpackedSize":99626,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgFYDoCRA9TVsSAnZWagAA/08P/3q6eva8C5mI33mR/LvV\nHBmFIlVIc0nndeVLyR8y3jEWpZh2iya5lb5yvrZKjP7Pq+h1QL86nrSCfEI3\nZya7AxoiYGv1UR7YfnOpgHWkYrSI6fFGpqPGqfjS34Y64WRPPL66NA4qhhXs\nSPq4Mitl39jUGOdNFYr6MVjAkxnKMY/DAWRvWclsQdA5Jfby8pVoVZbrz5LR\nO56ybYwu7RlXQP4zahCLT14/dGcOyA00frI1q3LuInD/lq6gp050aM2QHqE0\nlkv6BirFEXFP2iBNDrARrWc/Nmyynik4JjLYgTSdUsB7qn6nCvjNrrVhPLIm\nuWnHEziILetGsVMHPpBcYhWDza3HFgr/fdiKat/hmPnlFd4FsPzu6TkJS84F\npMDHTJ8HWZyJa7YUlO4R9SwB/Cg/p/VCTTmqWUu6c3bzmGrrdvIl6PiqKUig\n1QohBMI1XrFU1l74UAAgp/DjLcqYbZdex6iY2i9pkofUzvUCzaFWpAnEUe4g\nKffvYB04dCq+MYaYK5+BDKgLjzW1iYvgQSt/9lNQML5G7pRs0iqUdqKWAOOm\nBSAHdm/laTsQTogGlQ8pN/HhCTwsy+RugmZRuEHilDQImAqtT92VL3oz1TiX\nJO1bEGLrfPNHQZHe3V9f7JREg3iBUu5TnbCrBhPkufV8OhFHuyHoZopxH9e1\nAH3F\r\n=sxgn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF36b/2Ic3ZuQ7QiSnqoUGIUebfnfPI2dZfBn+ccDimxAiEAzFwt23lrj6MehQPBJeJqqpTzNdD/zc9+LIR7H6zMWpY="}]},"_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/endpoint_1.0.2_1612021992285_0.8712301746078543"},"_hasShrinkwrap":false},"1.0.3":{"name":"@rest-hooks/endpoint","version":"1.0.3","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.2"},"gitHead":"369b160447e065fa1bcf12268b94ac25751c0e34","_id":"@rest-hooks/endpoint@1.0.3","_nodeVersion":"14.13.1","_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-Sv+1mqk591Zd51tj7zGg10hIgrPdALtwPtQjLpXfu7DfwO4yq+4+eMQEz3FOo5NuoQS+Rpav1ZAbwqukazWE3Q==","shasum":"10ad9e18404c31da71794188957bd4c98911ce8d","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.0.3.tgz","fileCount":36,"unpackedSize":100200,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHBupCRA9TVsSAnZWagAAPRgP/RVAT6yqMmGIC00Jf7g5\nt8YeGHE+hlauLuFfe5dvCtpsYCXL4Sv3z5tei0LXwNL9CLNZqwAG6uvv3+Ox\nCxksDM5YSd+DF++ipQtn7Yo3o+7Jhl2vl2nv3NoE7mZsM9ok4U08eZH/IPFL\nz8TRPjZTGIQseAVBh5JpauY/ZIbenxqqEm0NWthYVn+h9abZV8XSDb8RPGi9\naK7vVEaQgEr+pVRXbNRfIjftFZeu/srhim1q8CSNsTwem6/yr/6IyFXCgO5Y\na0N0uzlP66UlUpJnmi6zNu/vveCY2MY7PcjwFWRU+QyyR7D9PvArJjfc5K2B\niiwA9tZdRtPrSfHdmiSglB/sMKh4VrUbYSCrQPaqzUKDPKDQ74yhXDXr+irj\n5FwaX5NojLu0M12OfKNRvznyY0pL7GYSuc7F4SjiRYkeShrJ7o2k18kOGx57\na/B6pswTv7RL4DQciB2evm5OXsxjLAiplZOBdQOa3qwhJarpK0HyRHO9jJP8\ni+wWfrCzVo2Q3e9zrWSR9iCJdruAsj9YBcJjhuAUmDwYZyEyZj7HCB2FGTXq\nmXx4hdXc2HO2XCLPPkeBk+GWqOYWZmDQAiIPF50gsm3IxJypo6niPUigl4Ek\nxoEg2ujADFwTQ0KlrKk89VhDDlkd7rBBrrlu/Hfd9kKOIYQLqV0fA7x3D3Rs\nNpnY\r\n=NXAM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAjqXWVFPf5gPkU4d22+GRLsYHMvtuOzLHKFEmmzw+5nAiAszCZzuROS6RarDFKClCGS7eQDSbtQkv9Nyf4JgVh+wg=="}]},"_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/endpoint_1.0.3_1612454825210_0.02427807266528559"},"_hasShrinkwrap":false},"1.0.4":{"name":"@rest-hooks/endpoint","version":"1.0.4","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.3"},"gitHead":"c63ceaf1b405ce1bda5c41af68980873afd238d3","_id":"@rest-hooks/endpoint@1.0.4","_nodeVersion":"14.13.1","_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-do77u3dobFEKjcibvaretzQhORo8RrY6Y0GZJjvSv37gE0L4CF0BmlIW8qiF0VPAMtr/kjhaOLmPyuMDr1to3g==","shasum":"1b0f6e1a4117c5e5bea91112581a6f32d56393e7","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.0.4.tgz","fileCount":36,"unpackedSize":101663,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPWfZCRA9TVsSAnZWagAAfR0QAIZk2QiUw8tdHW8Ltc63\nPfKbli/RXISUNYO+ilUcazXnRH3zqJ3khhOy9r6Tslu7oOqE+0pEqcppW6HC\nC2v4lT0wzFU6yLGAAMVLqvv6Zr2fPV4fBFrqTD6HqfmRpbFThgu2J7RhYmnI\nUr9vJLE+JNaLX8Y1LVfvtApVvoMv2jGCx4NisBBCpFXn1Iv0oX01nacfxjx/\nB6q1+vOQUxREmGciZhuZqjmyRC/DrEcbfshFlUL4LaKFsGT+uqZm75sJBXPe\nTQHecGpVrcpG29lsqkyhEWSaWWoWjIntmThoQVs3SWWtwsSsfC9vZN9ijYjh\nPINsXLjEhFXhmCsVc7R3xVEaBIkQkHyNVdH6mP87Ju7tUC8gbW6IZQ75nUar\nmbP8R4A/0jkV4/ITDUAZeXAHJvsF/YjYndmEJYOiriLcSfHUx98JHQd/P717\nRNl1r+FoBPMvgoP+9TTuqgD6XseSNN7HUJb0qMlPWVCy1UmWSXyZ3XTQo38g\nYiXCzYPft9YADo1Vg/qIrqKvh8LVerR+6cjQMyUT+Gzy4i5L3mW413gmQX0n\nZTBP5q8Z8qICGxghTuAaOg1P6QH+ArRQ8U2GjsdrKfY1OOb2uOFywuAQN/0E\nyqpfxG8XTfhKipYYrYNjREbSlUTY0lA3zszu/TKiHWc8Nzywe7IDNKxy3hFz\nO3O7\r\n=zZ+U\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFOeHOdz7JkgpN9PGNxOCXAVngN6HCvlaq+eSAK3pqToAiBs71fb8oxkabfOL+G1O2MOaREpKHtWA/xmmvNNlgRxLw=="}]},"_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/endpoint_1.0.4_1614637017027_0.7780454509189749"},"_hasShrinkwrap":false},"1.0.5":{"name":"@rest-hooks/endpoint","version":"1.0.5","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.4"},"gitHead":"372d3bcbbc471201b9e3ead7ae4c9bfe22fab29d","_id":"@rest-hooks/endpoint@1.0.5","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-BJA84PrAbq0mO9m/onw2qX8VitpWz9a59hpbFgZV6PVIlHlKJksiVRRaquo39bhIILzIt5hnQ29nUzJeeB80DA==","shasum":"5be01554761f69d5580ecc59c3cdc7192b129a14","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.0.5.tgz","fileCount":36,"unpackedSize":101859,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQAUpCRA9TVsSAnZWagAACisQAIL16MrMfvFnCZFoRmtu\nO5IjHMCmV09kxEZIkpqzAVOuB3tqeVcKKwGGpASMy5/3+gxD3h/Xr5jV4PqX\nWNGu5LTsaRzY6Yy4EW1kAH1jEqbt+IKjmPgSWvU8y2sq2d0tfDPy9FHhGgW7\nuUPXAUBwJejInNd9BvbrsMzPAewnG/salOAIjPCmUoa9ag1aUMEOVwDjnZll\nsb73JdbGtsVfxDdcdNX0J592sFsRbFUSeOadKWZRR9eSrRvY71RsJmiOpe+q\n1ZumY5a4gv1rzt6xMQB8Q6O2RWjuqOcb4xTZevFS3Mt1v31TDzXEvYYVSy44\nCA7dk1/Cc8S6mzHfxnwJXUqcQvsb7nJm+pFIm1bdkS//dYgXTJrBc9VQoRlI\nHEcgJnoi6XQyiO4ArgMrOSsViRLiq15J4zt1KgnJhXi5/ubqKGMwB5IOraKl\n8Wu4v4CczpCRwxURu5eax3QjMtUIt4A0ZZs2tDDvEDj1iBc/ioRuWThansZx\n/dK5DwHiIkg1SGoQgXFImrUBBmNgmKhUwWg64jKewzr9a8eVBucEBtzWa90C\n8H/hnQ/I36klpmiEeyHCuvqSqqa0qafiuQmjGDiwTCSMEMnaJzRnowjd1+8q\nu+Aov/HGUOUhn2YoT46aReS78y1OgNGoA5Z9BC8liprGHjFVUZs1VhU+yqpQ\nQCZC\r\n=bsFq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCWQu9Ly9XTqkkc1Ct5GSikCnCcm3F3C5oF7bC/d18gIgIhAMAfdBnKAHRDOdrDbNH9GZqbJniM22YTPCK+pGT+5b3D"}]},"_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/endpoint_1.0.5_1614808360682_0.8834465838830377"},"_hasShrinkwrap":false},"1.0.6":{"name":"@rest-hooks/endpoint","version":"1.0.6","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["ajax","networking","fetch","typescript","data fetching","data cache","api","api call","normalized cache","subject pattern"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.5"},"gitHead":"374c1a68133aac25025f69bc03d3f2c90ccca12c","_id":"@rest-hooks/endpoint@1.0.6","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-ic60H4Ch6kUl+9Qpy0Qcw0oCV7z6Ogw+8DGKfrY+ZA7FaBPUkafOgzb3TLfUsUFwuGJwhHfHhcwfd0gBFzhVWQ==","shasum":"52ed53b30065663f823982a970b8b30be64b94bf","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.0.6.tgz","fileCount":36,"unpackedSize":102023,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgRrmlCRA9TVsSAnZWagAAbiYQAKQE7FVp1Q2KBByqDlpT\nygupHewSYFRm7gyBg4QTNetEvkdVA97HUDQ95hKEFAP8a1rmH5PlL4YMmnSX\nDk/xw+jeO2eHcubb/D9+vGsqglmIhuXdTAWT8ALwzBd7xmSICwyHPPKYVVB3\nqU4p+Wjd5tOVBzUiWvqWEXjIT54bz2JjxCIfKmvG1fM/H5RqUs+TInsRBCYp\nJ5sGVsiu165Cm7Jk9HUGRifn28S9kMjd/TomoTFgnOb7Z38qdBYJu3u9pvV6\nib8aT2VIAYkIjJigtHcLCY5abGQC97RgVvURsZWLMmWJB+LZ29FoT/BCnmsk\nHw8ZNScH4ESyOqXIxKqH3hOW3qGVJgh+/tuWw6Og95UlSbVB96tG2rLBiOEX\nixyWE/Txc4jFLjNfCT6yie6sKJgpleQgXQSh0JNTAwpGd+3+QjgBwwgGRzh9\nUQDFttng+2/vU5oLY8oIwGg0YTM59od4buIAMGx3wWNEGooaLVq8nUIBPzIh\nrT8cUVngbO6OYL3qAd+m9A4quhiTvdUyBMGMWqA4zogRuewN46baj5EdTK0f\nDTkFvkx9Y0SjdGNLa9VonwLxQVuh4e9AuUGyFdWtqLNq/yKpTDXnO2qWCC91\nRYL+hgTE0Je0LYV50EZdefDpBrOGSbcDtLOqQBkzignjDRXlIasojvH/zESx\nanQJ\r\n=E7u5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGdBwnire2YyCCua2va+AAVWLiNGZcT6W912Bv1ZYc+IAiAE4h8EKKfTvE5aRw6+8jZFh91zRXbWu3YkFWLdecHdJw=="}]},"_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/endpoint_1.0.6_1615247780601_0.20689441601233716"},"_hasShrinkwrap":false},"1.0.7":{"name":"@rest-hooks/endpoint","version":"1.0.7","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.6"},"gitHead":"f350b75d5680b1928521f20822c67e27f0f7f5a5","_id":"@rest-hooks/endpoint@1.0.7","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-/k2hu2zVbb6sCaqRSkvo1eDCUGHKPQbbl0ViMIqickPRrsSeVE7zrJyAlLhaNf7nBKKOdvIxK9B2Yj11cJ+mag==","shasum":"9fac78c6fa55a41d30800dade956897a7afa8ede","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.0.7.tgz","fileCount":36,"unpackedSize":102449,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgTYAPCRA9TVsSAnZWagAA40gP/RetjXg/6NTRlx+Pcw9h\nDFYPSUQslLFi4MyunEVam3C3pBjH/uwXDMo9FLhfPLbovHO6VRNshlKbEDG3\nXV4o9d3su2rwkBQH/7IpriZv9T2ly8IO41oZhXvVJOrazmHBfyO7hi6COses\nFBFZ4/BuhCNwfL3cPqrU/Bsn1Ydgg4tMZR+vZQf+r5qVhLOwpavRgvrpOebS\nFvOgv2eAwrP2QQNlZRx90G8UW94TRRpiAlMG8Tpxq3jXcusQTXHPwG15C5SK\nYBAiQwurYa64IKBDuvOWrX0B8+ggjchqxav48G91M3nwWYHCrcLu+uaNRDKe\nOd5+9veemjMULQPWYBZoVo+MlSlsgUcUc0hp7mmuTyn8Cqf6r22+mi+Mok2C\n9r5HB+p7T3Y1VU2el7GxqHzI+uANHJiT5WhqLTCyZ4JjNqg/jCf+BuWpDY4S\n2CipwPzQfkYtwgj3EMlITEj2N8Tr+OgphXL6ChUU1v/mQBl/sEOywTaQkZ5j\nIEqnzzc7deMTuHcgcFZBJIkehI7NlC1HIfb1I9Ll1SYatTs7ioCkk6uf7deu\nPqabA+cL/QIRylsCjKsJHaYcwbjinI4iU0xQUIp2iXW1bLRw2KDRRg6k0iE3\ncpOGRbRCiUj2Rc0NSFCJTffg50vcTrvKEcVf8JFq0poANSPVSn+v1HRNg7vj\nw0TB\r\n=4joG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDcR/w+Yf1UlJrO7hOdH4MuWDI3AsKp4XMJ6+8qL6b4RAiBp1snJ5d83yp88qmFRat2tum5qSFFWf4HEBwNed10c9g=="}]},"_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/endpoint_1.0.7_1615691791092_0.44731377133491845"},"_hasShrinkwrap":false},"1.0.8":{"name":"@rest-hooks/endpoint","version":"1.0.8","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.6"},"gitHead":"0ce06c164b73863b67c04a07b379a2a6a7e932e7","_id":"@rest-hooks/endpoint@1.0.8","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-uV2gIxRLni1u/iPTzJxYiAdptwv6F0HRiyihBsypx3wMtU/O3myP4hDjYKlMLWtSE3oSlI0Wp/tVtaI1Yq0gQg==","shasum":"ca49b5bc98252b004ec65270961db5165512cad8","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.0.8.tgz","fileCount":36,"unpackedSize":103350,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgW7jKCRA9TVsSAnZWagAAfzYP/2AewO5vKARo+y86EU8t\nM+OSIjQFf46O+t0ExxMhxG42wZJ4p/5QCDQ1/1YXyWME4eEH1hA5KgMLuOOU\n/1cPiVALWjdSkVG+lQtytJGDcq+uxvJn6q+IP2P8B2CJMLxzAAeXmhewZlj9\n51nQ/cg+Qj1uHdA94Mfns4+s0DeJZCFEVLEonipr/A64cikGlrNqNoDOGM3c\n0OaXHn3OE+EVllLCjRuq+oimfgEoCjSWQ7VZtzue52yO9riFsHlA9xcZrZ48\ntY136Xr76mdWngIBKQVxrWUSA5bql5aDYb8z7F+4po95ENbmfcLvQLtOEr5+\nHhbU20Bk9XmmJOCiFuOv0msyUNvfwLFKUrzj5hOU1VuDaLKtcpoF9ljkaZvZ\ntmOKlf/J3YAvUgGnlDOzK0iejguq9lHcFmlRW6QbnvwJtKY0GegBhQ2pkEVu\nhmGY5eBX0ql0up/5PXt5/Q8kW80j1DhopOwYCN3chGX+KkMSZMjltYsnK4Gb\n0HS/30D5NxcuD/k3UUGHPThJX0020wIjhddkwnPzRE0nzbcodIrIlevThhdS\noCZ2iZ4vtAPbnSQyDWtVqRj2b/rseEd/9AufLeKEOpR0QCbZg9w7dKfCtHpI\nXE2WekGdphNirEcjMESBO5e8rqoSGvWfoWUfMJK2NEw0w5SLllIt5sx/Z7Ph\nSU52\r\n=GAhI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCb2iusYuWkxZo+uQmBBwh/6RYA3/FQvN7fqlWiPRVCCwIgO9mnLO/qgY0xv7cYdPfGk1KQP6Wv9pdEJiW3ghuxRxY="}]},"_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/endpoint_1.0.8_1616623818082_0.8641946101226348"},"_hasShrinkwrap":false},"1.0.9":{"name":"@rest-hooks/endpoint","version":"1.0.9","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.6"},"gitHead":"bb6c5132828010cbf50f27be2ea44a3c801fb584","_id":"@rest-hooks/endpoint@1.0.9","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-dgzKLswrQvrwUQRWXwd7uMgw+rzTLwhaLJrx6hwwZA9YCLLlJofuZwMl+o+HwEoJxvRkZf/SGgqQmAsmIP9LCA==","shasum":"8621e53ed090c5cfde0331c0b55259a11943ea02","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.0.9.tgz","fileCount":36,"unpackedSize":103810,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgXZvuCRA9TVsSAnZWagAAAtAP/3XuM/oXBQOxoRc/G1bh\n5bI08PJ+hgy67W4v1E+nc5kz5fYGQr7PaG/iTnGzXuhSo0D607u5mZlsLcxh\n84mHATFS6seYGPlSofgFT8tMVdCqUnf1w6RM8CROFxocnLrNBf0ODmZeFRzE\n1ePNooDClng/qUdoA6cm0GFNbFQSN6G7zVetQy32tstY5hgBDLHrRDoUlMpu\nkfLX3FqOOdpq6Qr81nhWDX2fEivjCTZxdJ4OG/q7zQy1M80bv0s/HV+KTyGd\n3OKuulz/eDrB/iWe7DgsZtltRSd6zHq1ZZDed+RaT3qxHTW3PZLekSGqlJsP\nvBgPNLxrC9x8/+gIDm/iC2K27OH2YJm7tQ9mQn2L1an/Z9WSR50M1K8WDqHD\ngJeKMTC1zLpJ3vaxJ7WEun741CIxu4hkiRXYRKPcxfdy4BHN2zxTZ4XcWqOG\np9K7NxijhI1e0hmKqd0jmxFl8a7hhNqRv7DD5GoVNKNIm/tM5XBlxQIDIX2n\nS24WgC3p46sPNdsNftU9vToLCgqgxOW7iOOG9IqtV3nIr7SIWF0Hjw5/O6++\n2eT9CuSSHWF1BfLR2iYfPRpHQxir5lFceWe8FMpCThehvrCj+LU1lg31+NP9\n/y8rFImsJKrB1UuKlq0ChLQMEnl+whKNfcV5JK7FmyzfuNMnMVq30kc4jVh0\n7Cbf\r\n=mzIc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEo79j6a0FXop0OHgjGXsxA+d8YJqf5LPD48sjodBnnbAiEA7qQJ4Da7nYJTi4jg9+AKqBG6rBnMQPcU+bMh4/1S02k="}]},"_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/endpoint_1.0.9_1616747502192_0.11052531174363844"},"_hasShrinkwrap":false},"1.0.10":{"name":"@rest-hooks/endpoint","version":"1.0.10","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.7"},"gitHead":"5751520320d27212b1ffd21b2303649f312f412c","_id":"@rest-hooks/endpoint@1.0.10","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-msu/Sgq847HFqr5GrlQXuRaruQme5euVVG6821bx6CVCTnwlIQnwdwZkS77B74lobMXQDteEHOySMEXxD8GWLw==","shasum":"773e547b989fd5e68b140c15ace80e5fe8817457","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.0.10.tgz","fileCount":36,"unpackedSize":105460,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgaQiCCRA9TVsSAnZWagAAVLwP/2+D6TOFUlt+pIHfZIWd\nqMCeCdG12Q9u/w9OejmDKGg1Gy7QiKjHTL2GX46N7Fc8y+gn+uxsRPPZP1Bk\npUzkWFYnd6VT5p4VLF4WdUk2a12+rDJkyE+U6oS1C5LCPm8bferKu5czu0Vq\nKcAzKA/3JHYRemCAyRufGL9wWE8zu3hW4TFdM+Tq9kp0PhU1d4gE0zlGyIgE\noN1u3/s+pWdAsVFgsPuZAzekyqakqiSlLhpeQLTMM35QF7ImodKxV4Lbx+/X\nig2jmKPxndN/krlol4Y538U+UjWxvDS0oiE65KsSyUmms+DIWn1KiYBJLq9+\nlfkAaRsPeW+HH/d//SeLaq+q7Spcez8JspUZh3un7SStF2oE5WPOtzqo253V\nhnmt6qRhyleThKkTEXrNR906/JHvK5mw10A5iHK75Y8a1Dr9rB/X+Fsph3rv\n1jbW9LTvkcLLsMLwm7RBWmwfFQA2FOzps0Cphb7MXzPJwspgtod3g9Ah6vl4\nmHBWHRG10TbQ5Z7cW5rdQdHedVlXsNopCoEtvwDUq7cU46AX9uLrtK6iJ9k7\nMebiTtPZKvrtADsonuYHCTQ3kjvl6X+uNiqAKgXQ8xCGadX5nmhEbjQobAY3\nbkqJ1OJLa6iBScjmnXtqueV8RvIGH5U0TEOiFTNVinn/FX4e2l9qZJ14cUMY\nE6FR\r\n=gYOz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCeLmEMz5zjSaPRVWbJcjcCZrtnGJpwJJhioxAkGL7EUwIgAU8ytl1ERKaSE1r4zhHcBU+AXUDAT7d43DTtqXgjE9c="}]},"_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/endpoint_1.0.10_1617496193891_0.8396524652016961"},"_hasShrinkwrap":false},"1.0.11-beta.0":{"name":"@rest-hooks/endpoint","version":"1.0.11-beta.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.8-beta.0"},"gitHead":"b8c64438bb34bc1f9e9bc1461bd7e4d3bb4e330e","readme":"# TypeScript Standard Endpoints\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/endpoint?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/endpoint)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDeclarative, strongly typed, reusable network definitions for networking libraries.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs/api/Endpoint)**\n\n</div>\n\n### 1) Define the function\n\n```typescript\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nconst fetchUser = ({ id }) ⇒ fetch(`/users/${id}`).then(res => res.json());\nconst UserDetail = new Endpoint(fetchUser);\n```\n\n### 2) Reuse with different hooks\n\n```tsx\nfunction UserProfile() {\n  const user = useResource(UserDetail, { id });\n  const updateUser = useFetcher(UserDetail);\n\n  return <UserForm user={user} onSubmit={updateUser} />\n}\n```\n\n### 3) Or call directly\n\n```typescript\nconst user = await UserDetail({ id: '5' });\nconsole.log(user);\n```\n\n## Why\n\nThere is a distinction between\n\n- What are networking API is\n  - How to make a request, expected response fields, etc.\n- How it is used\n  - Binding data, polling, triggering imperative fetch, etc.\n\nThus, there are many benefits to creating a distinct seperation of concerns between\nthese two concepts.\n\nWith `TypeScript Standard Endpoints`, we define a standard for declaring in\nTypeScript the definition of a networking API.\n\n- Allows API authors to publish npm packages containing their API interfaces\n- Definitions can be consumed by any supporting library, allowing easy consumption across libraries like Vue, React, Angular\n- Writing codegen pipelines becomes much easier as the output is minimal\n- Product developers can use the definitions in a multitude of contexts where behaviors vary\n- Product developers can easily share code across platforms with distinct behaviors needs like React Native and React Web\n\n### What's in an Endpoint\n\n- A function that resolves the results\n- A function to uniquely store those results\n- Optional: information about how to store the data in a normalized cache\n- Optional: whether the request could have side effects - to prevent repeat calls\n\n## API\n\n`@rest-hooks/endpoint` defines a standard `interface`\n\n```typescript\ninterface EndpointInterface {\n    (params?: any, body?: any): Promise<any>;\n    key(parmas?: any): string;\n    schema?: Readonly<S>;\n    sideEffects?: true;\n    // other optionals like 'optimistic'\n}\n```\n\nas well as a helper `class` to make construction easier.\n\n```typescript\nclass Endpoint<F extends () => Promise<any>> {\n  constructor(fetchFunction: F, options: EndpointOptions);\n\n  key(...args: Parameters<F>): string;\n\n  readonly sideEffect?: true;\n\n  readonly schema?: Schema;\n\n  fetch: F;\n\n  extend(options: EndpointOptions): Endpoint;\n}\n\nexport interface EndpointOptions extends EndpointExtraOptions {\n  key?: (params: any) => string;\n  sideEffect?: true | undefined;\n  schema?: Schema;\n}\n```\n\n### EndpointOptions\n\n#### key: (params) => string\n\nSerializes the parameters. This is used to build a lookup key in global stores.\n\nDefault:\n\n```typescript\n`${this.fetch.name} ${JSON.stringify(params)}`\n```\n\n### sideEffect: true | undefined\n\nDisallows usage in hooks like `useResource()` since they might call fetch\nan unpredictable number of times. Use this for APIs with mutation side-effects like update, create, deletes.\n\nDefaults to undefined meaning no side effects.\n\n### schema: Schema\n\nDeclarative definition of where `Entities` appear in the fetch response.\n\nNot providing this option means no entities will be extracted.\n\n```tsx\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n}\n\nconst UserDetail = new Endpoint(\n    ({ id }) ⇒ fetch(`/users/${id}`),\n    { schema: User }\n);\n```\n\n### Endpoint\n\n#### extend(EndpointOptions): Endpoint\n\nCan be used to further customize the endpoint definition\n\n```typescript\nconst UserDetail = new Endpoint(({ id }) ⇒ fetch(`/users/${id}`));\n\n\nconst UserDetailNormalized = UserDetail.extend({ schema: User });\n```\n\n### Index\n\n```typescript\nexport interface IndexInterface<S extends typeof Entity> {\n  key(parmas?: Readonly<IndexParams<S>>): string;\n  readonly schema: S;\n}\n```\n\n```typescript\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Index } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n  static indexes = ['username'] as const;\n}\n\nconst UserIndex = new Index(User)\n\nconst bob = useCache(UserIndex, { username: 'bob' });\n\n// @ts-expect-error Indexes don't fetch, they just retrieve already existing data\nconst bob = useResource(UserIndex, { username: 'bob' });\n```\n","readmeFilename":"README.md","_id":"@rest-hooks/endpoint@1.0.11-beta.0","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-7+1wStkcip5/rllPEITrH1w2H/SZxjF0BFLn1hjYYEvrLdeZJIWB7Hm2FjpLk6OlCZRmYCpRh36MF669THhW3w==","shasum":"986abc2d561a6209c0b137446e6e362376cb42b9","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.0.11-beta.0.tgz","fileCount":36,"unpackedSize":105687,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgaofHCRA9TVsSAnZWagAAcccP/1OfPkR9SEPXfimze1Jb\n5rOPi5RZSxUsnJsNkLgdSo+L+u+gm6bwA1V4h6oFqMOlac5ZHPGZCkOCcy5Q\nn5JzddOzqqGc1l3/+0aRJswtApcmjrDRsUkPio9w+j6QoP8dLr/9F4Z/cFZ1\nc0rFj+HuMSln9LbHCowyIrFWDkf49O0cwfx9d+jXDPWjE+QsWoy30rJj3VoL\nfYc79xXR4eTSzwngbN6qFZatL8zHJ2bu9nvnxAAKy63pOIj0o0rvP6OsynDi\nwGcVt/bksCoxiENTho6wz+c6X3UhOZ9RjFqaCAsK14mcM3H1Z2WMvJ52eLz2\nIvZsgNTadW+cdthY9Hzi0dChOEAH2sATwVpfVF3rw/PZQbA7/2AUQgTnnuUF\nhyRYE49QSjXTLa3rhIikPM75qhkLY9RsplIzFgH01cEI/cRZHrBfhRxGgrPo\nn9D1y2MZIhX4o0AKqQ1ix/v1XyyO1gLVmSGvqe6Ckqo3lauetyjX/+5QbIlb\nsoKTscKS4mx4YZlwli6pw1oXxNTm5Nio3WeIn8ll0xP/ARRx+L8Ug4T3T6mp\n12RxzfnccGHbhZG++g5zQPwOOF0ZsINb+RlLEhQoLeUsclz0TNPpzefDZ08G\nJYhrI+wDSsIOSufcSZM/Nb16ZsKLlZUVzj3pWQCG4qHSneFHw3BXsIQa9/sx\nBCt7\r\n=hbMS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBocBa8hvFkiLC1PNC0JvdFYu2+L4H3IOi1x5S21Nub8AiBP9pgqD1AgCPoA9wUB8eKQtmZ+5TcQlewGr0JnwPJd1w=="}]},"_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/endpoint_1.0.11-beta.0_1617594310941_0.23851997079317466"},"_hasShrinkwrap":false},"1.0.11":{"name":"@rest-hooks/endpoint","version":"1.0.11","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.8"},"gitHead":"0ca6c375c194819877e9fe5c2fd57a0e85a6898e","_id":"@rest-hooks/endpoint@1.0.11","_nodeVersion":"14.8.0","_npmVersion":"lerna/4.0.0/node@v14.8.0+x64 (linux)","dist":{"integrity":"sha512-CC8mteLpMqdLbSIZmGhaxYTqUwqJr7TTAOKjfwSs/8RJWb6+ym8nYx65GsUqqo6yWLECSQq3a3g9qyuJM54JXg==","shasum":"547c43448eeb71ad2d4f71ab1118aba6605772ed","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.0.11.tgz","fileCount":36,"unpackedSize":105691,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdEhzCRA9TVsSAnZWagAAuyYP/jH+x9K2WmvBWYb/WTut\nfBtdRqg+PEW2Vub0eq0gRZNc0OkLCqGfW3fv7T3C0lXEq8Uarz1lDNxgAdh/\nKyyAcwWs1hlmPqZf0gGoRR+1GEHdS8988IxSE9g36l4CrMBBYOntVr8xzV8X\nQXS7NuQrQWAse1g795EOJlC/vkBWxQqjvKeAR8WRR6IaYOgM78N9QoWdXmN6\nIkX+183Hm5gZ/bs83aMBokjbIZV5u47nCImw1L/eiSSkdjAbHOnCwM4wZVrk\n1zJMYuk8ZMUSIxeFHH+Gp0C93jrrXJX0DakE78BQ36FUvxcvq1SIFPozSAEa\nk2EhSL9t5ISyat+8mZWs7h0Msf3NW51rBJNOVDc/0M4Y1pmZ8N1sYqI23Jpe\nMNfXgluQan+jXq+AaT8WiT1HPOPl4bTuN9fEwiZNETukMqWDsBpZ0i8kXFCQ\nG79EqZeh39IaQTR+VMpoDmiF3qVJFIUy63pdCUnNR0+qPP6v7gsgHfrlHp5t\nGHAMVdeGR0O4fdyZM0MMiS8fbtAXmTa36gY3nS5iBB5jjNcWJoC4YXBf3PG3\n21aDNM5D+Gc7Mmn9tGEAXW2DmZhNhmz6K0z2bC3kjjDdEAuc8IKIndIGtQ46\n6X0eiBHTG0WZVVUsdW9XHDjCUxvboF5kfiHsDH/hbJ0wAX2avMocAsAp/PxZ\nLX1h\r\n=6u4q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBczv1qYz62boC26/QnRBAr2kJrqwskRhyvTNqiFtN79AiA5G8/yjh24jlnqvkRYjas0Tp5r3RKEIkUNNFt7EutCEA=="}]},"_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/endpoint_1.0.11_1618233458848_0.2206288651321746"},"_hasShrinkwrap":false},"1.0.12":{"name":"@rest-hooks/endpoint","version":"1.0.12","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.9"},"gitHead":"fbfc12895344985575dcc9315fd7f6f1f49fdc28","_id":"@rest-hooks/endpoint@1.0.12","_nodeVersion":"14.8.0","_npmVersion":"lerna/4.0.0/node@v14.8.0+x64 (linux)","dist":{"integrity":"sha512-PYTkBa9tvX/fytscd16WokYO6d1iuYvd8Cj17T8C4Re0GmJXAxsinA+rfyViw3cxXiMO7f4B0rWkDkdwQJhNRw==","shasum":"27fb94bf2977c70de3a9f32d2dcac7378519e1cc","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.0.12.tgz","fileCount":36,"unpackedSize":105890,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdGeDCRA9TVsSAnZWagAAEekP/3qh39OVwkzmS7FpfJ9e\ndnxpkwNp2pxdQO63X92Xao8JcmBp2LQze2w2fIreERfN2ORfEaWzduX2DUu4\noPmn+NFjjIJH+UEWhvCDk0fSlRVm0xAgz0iSnLgFjJ9b9VIYtKleIAn2UOIp\nlVcDtKzLrhgWlhlRKNz89VNPqNFTNtNMtSYtgErBfGpucdCxZWQenOSHySbT\nMNcEJtj+ZhI6TKqge5wDCKejvJKia5qwf01RNQ1Dbp3Njl7+of9azGz/NCPR\nymPcBiG7kBFft6Ry6gDAxyjddbIdxnj/8+BATN+GWaTKDPowL8b8zgiSbKES\n4UMWBxsGT3EaLhP/dijmlRq0RdOmRs33D8hDqsLmLFGIVfHxrs4swN8pnkpG\nffhIIag5wX3mARNZQfkyv5v/hL4kgdJP0HzTaldA7GUUsMuotW66WRVKj+ee\nZA18hUQG3RH1wdsHkv6Nt8SW7je3CgLuCSmsdbfOBeaLhT7lydDy+B/uzQlG\nZ4JM5LHT7K0+U06qik+nQfxmPPM8fdqRbrCOx1f+ey5207V73bFLY8B1uc2N\n3ic9UlsVo8b1DybxvYFKtd5i/RWFpyo09/ybcqzI8aimB4HqCVy0kdthVYMe\n9ffispTVfN8i6kRejIBoVwe49xXtrR+cMcoYCbObeuxENnJUrBGya4eRNWYH\nRXAc\r\n=YCDp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID8FoQAMQiIx6KgjegqucwZo5MwQVwTjVgdjxK0YwPqmAiEAsJBkd1He2R9KOMOGvrd//Yzb/VwXMNSEAg5byUq/fEo="}]},"_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/endpoint_1.0.12_1618241410845_0.43518493789084123"},"_hasShrinkwrap":false},"1.0.13-beta.0":{"name":"@rest-hooks/endpoint","version":"1.0.13-beta.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.9"},"gitHead":"68a10e06dc0718f5e480097e6056a7a7954d1161","readme":"# TypeScript Standard Endpoints\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/endpoint?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/endpoint)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDeclarative, strongly typed, reusable network definitions for networking libraries.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs/api/Endpoint)**\n\n</div>\n\n### 1) Define the function\n\n```typescript\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nconst fetchUser = ({ id }) ⇒ fetch(`/users/${id}`).then(res => res.json());\nconst UserDetail = new Endpoint(fetchUser);\n```\n\n### 2) Reuse with different hooks\n\n```tsx\nfunction UserProfile() {\n  const user = useResource(UserDetail, { id });\n  const updateUser = useFetcher(UserDetail);\n\n  return <UserForm user={user} onSubmit={updateUser} />\n}\n```\n\n### 3) Or call directly\n\n```typescript\nconst user = await UserDetail({ id: '5' });\nconsole.log(user);\n```\n\n## Why\n\nThere is a distinction between\n\n- What are networking API is\n  - How to make a request, expected response fields, etc.\n- How it is used\n  - Binding data, polling, triggering imperative fetch, etc.\n\nThus, there are many benefits to creating a distinct seperation of concerns between\nthese two concepts.\n\nWith `TypeScript Standard Endpoints`, we define a standard for declaring in\nTypeScript the definition of a networking API.\n\n- Allows API authors to publish npm packages containing their API interfaces\n- Definitions can be consumed by any supporting library, allowing easy consumption across libraries like Vue, React, Angular\n- Writing codegen pipelines becomes much easier as the output is minimal\n- Product developers can use the definitions in a multitude of contexts where behaviors vary\n- Product developers can easily share code across platforms with distinct behaviors needs like React Native and React Web\n\n### What's in an Endpoint\n\n- A function that resolves the results\n- A function to uniquely store those results\n- Optional: information about how to store the data in a normalized cache\n- Optional: whether the request could have side effects - to prevent repeat calls\n\n## API\n\n`@rest-hooks/endpoint` defines a standard `interface`\n\n```typescript\ninterface EndpointInterface {\n    (params?: any, body?: any): Promise<any>;\n    key(parmas?: any): string;\n    schema?: Readonly<S>;\n    sideEffects?: true;\n    // other optionals like 'optimistic'\n}\n```\n\nas well as a helper `class` to make construction easier.\n\n```typescript\nclass Endpoint<F extends () => Promise<any>> {\n  constructor(fetchFunction: F, options: EndpointOptions);\n\n  key(...args: Parameters<F>): string;\n\n  readonly sideEffect?: true;\n\n  readonly schema?: Schema;\n\n  fetch: F;\n\n  extend(options: EndpointOptions): Endpoint;\n}\n\nexport interface EndpointOptions extends EndpointExtraOptions {\n  key?: (params: any) => string;\n  sideEffect?: true | undefined;\n  schema?: Schema;\n}\n```\n\n### EndpointOptions\n\n#### key: (params) => string\n\nSerializes the parameters. This is used to build a lookup key in global stores.\n\nDefault:\n\n```typescript\n`${this.fetch.name} ${JSON.stringify(params)}`\n```\n\n### sideEffect: true | undefined\n\nDisallows usage in hooks like `useResource()` since they might call fetch\nan unpredictable number of times. Use this for APIs with mutation side-effects like update, create, deletes.\n\nDefaults to undefined meaning no side effects.\n\n### schema: Schema\n\nDeclarative definition of where `Entities` appear in the fetch response.\n\nNot providing this option means no entities will be extracted.\n\n```tsx\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n}\n\nconst UserDetail = new Endpoint(\n    ({ id }) ⇒ fetch(`/users/${id}`),\n    { schema: User }\n);\n```\n\n### Endpoint\n\n#### extend(EndpointOptions): Endpoint\n\nCan be used to further customize the endpoint definition\n\n```typescript\nconst UserDetail = new Endpoint(({ id }) ⇒ fetch(`/users/${id}`));\n\n\nconst UserDetailNormalized = UserDetail.extend({ schema: User });\n```\n\n### Index\n\n```typescript\nexport interface IndexInterface<S extends typeof Entity> {\n  key(parmas?: Readonly<IndexParams<S>>): string;\n  readonly schema: S;\n}\n```\n\n```typescript\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Index } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n  static indexes = ['username'] as const;\n}\n\nconst UserIndex = new Index(User)\n\nconst bob = useCache(UserIndex, { username: 'bob' });\n\n// @ts-expect-error Indexes don't fetch, they just retrieve already existing data\nconst bob = useResource(UserIndex, { username: 'bob' });\n```\n","readmeFilename":"README.md","_id":"@rest-hooks/endpoint@1.0.13-beta.0","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-DOucfzeuRql2cbMA9LeeqFvMPY64Eoj+ec7oPMlUqZDyfbdJhIU+a8b+g4gCpOFhDi7PmIXdt0oyOHy8gWtsjA==","shasum":"4be5a6a46352274dcfe65124de39318fbdba58c1","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.0.13-beta.0.tgz","fileCount":43,"unpackedSize":118101,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdf8gCRA9TVsSAnZWagAAh94P/1/MfXbAz30lJk4xwZBM\nJDChILr/kwB7h4zk9XIZmkMQ3kRmWJZqKTX1jd5lq01ry0/UIBGYf48P4HYO\nM5Otru3XJzA8Zpq3X/C4DIVVKsC7wwh/ex4Al0sRlC8j5UFLTVJyYN0tSwaf\nyBsSV+PMzD4BtOFYKS+0eP/jLD8AltjaSnX4FKsQEivhKJ/wZmXtGRGzOGPw\nMt5nZtDTbM07JYdyqt+b4rcuCVCzpqSGM5ncXfjYgzrOEC3POlJuinFN8ylB\nPTDcfl9Uops4kNHiCHPdkHkP31ruryaTzBjsVCa8GG/1H49hZpRtnQyCa3wn\nc5mO7udKqPsXwd77Pu7/QPgayXYKvD2DN2J+MULb1g9JgFqMpnjTC76vMJQI\nJjAIcx//wcS50f4vDNAsgWXQWHSwrd6G2uQiKr7nU5z7qtsAe2XHo5g0n/sK\ntvLkKIoM8LVHkyIH/a0aMXcBHxhjVsI2cZfx3zyNDMlIRYOErfNwqqCLn+cI\nDYUq8RkXOKAkG1WTmv460lu9OBow+a+GpHQxwTBq3ZsuVoMPCxklmLvSOFSR\n/w9nA4XXXJKsEdcOqb+rwgR7IfyNIyXr8G5QEMdGiYZaBn88w4vEptEjFVTc\njHbya3yMMrhtdzrdf/UzgD9V+o/bqWklAElwp9rOeZRm7YLb9WYl2mCcrP+T\n8Qr3\r\n=HbbP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCax+JQ6aT5767iJ8VuD4pLxCjCiWM4iJlZgxSe4dha9QIhAJzBVlWCarOpQzPoeMKYpaZfdGcpaRYiYg36CUxrrcvz"}]},"_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/endpoint_1.0.13-beta.0_1618345759581_0.42962905096787285"},"_hasShrinkwrap":false},"1.1.0":{"name":"@rest-hooks/endpoint","version":"1.1.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.1.0"},"gitHead":"c3f09abd47faaeee0616e8ba550c0b6f1a444ee4","_id":"@rest-hooks/endpoint@1.1.0","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-nDW9+BoUjv0Psw3lKFYM7eaCkbgAnxUjMWAnGt7SxVwgmEd/zALGqMJnPUWZJQpL9VG4eZwudUCJ8y+0aWAYyQ==","shasum":"8c948b35c3a63b77e5dd14234958ee23463fedca","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.1.0.tgz","fileCount":43,"unpackedSize":125982,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghI4eCRA9TVsSAnZWagAAUtAP/2aPuFG54hbspjL72Hyz\nO4a6GelGkJqggyH5oSc0io27HYIjzHiQnuWEZEPtxlBzPIVvrLx1Oe+B82dy\nSIDdLrZMeos/W7Bne0U/dY+s6QDQ33r4ZRi7vnKxjthUj+0tP8ORO4/eOOQt\nbklo9PYyS7Co4Uh2UrDrULFspPGc7Hx0aNasbQmZ7e8A+/PjT/kjPqp002gD\nkLXo4ejpk/EC7+/dEIOQT/QOiO2FMSp3iy4osq7Crmzw94S6zyMVN5/dVezT\nfx9qWf+x1FvezSAF1LvFJ1izFYU7vJqus5kj46/wuT/frbn06QYYvik2MksF\n9vTiEtaCMR7qV6gxKpuqFfdJem0SKZATCQJAYZxpuaDaXxmeFjCkmV5izgaO\nWfL/AjldDFMBOoqb+vKw2eJhpC5kAmZrb92SMHFg1grhYI0FXvmeDoV7myss\nj4LjVsI/V+xDb/veMsxTDmZLg4ysj5z6f/ftp27G1HsxjP13UJ+Weds1/gJL\nIr6i/kHLXuEiN0R3+OI8vmReSuECLgqs9e/JcN5LX7b40OQELcF9vJf+sUMW\n2/sfSA3mHS4TNuQrF3IMYeGm0kMDBgO/1BY5LCsd2re0u1+NmOUgBrQ+cUwR\nLAz450vgZTDJMoJqP/KrijX3Qf9mjYllwRXCLLi7mELvkiS7CX2Zp+0qlGp1\n6ZAm\r\n=QXCt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB5Ahyr4XqCFyHvTsaf3Nz0lUam5RAd8uYjtaUXaKDZuAiAKhRiI0W2CPmLOO/gsi3D70aBD2DdAfN+1IR7z2UAMpg=="}]},"_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/endpoint_1.1.0_1619299869537_0.027570424892006562"},"_hasShrinkwrap":false},"1.1.1":{"name":"@rest-hooks/endpoint","version":"1.1.1","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.1.1"},"gitHead":"05cd4da122d9f77eb917fc06dcf6a82d39e13b6f","_id":"@rest-hooks/endpoint@1.1.1","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-9s/e7n8dZxhfAn8OtEFeG0ojvLnWJyBkK6J0Msp55ybQ7s4UGk/taAxk91Jk/8B0NXXTXfPrSwKm6J1si3jvtg==","shasum":"1fa9dc133d8901d187745eb999bbd888ff45cfee","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.1.1.tgz","fileCount":43,"unpackedSize":126178,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghPiaCRA9TVsSAnZWagAA7DAQAJfnAUaoGqgbMtRXjDz9\noAfJ2mAw5+TSXMH32LmvsXGG5JqMzXl1Pi63j46uf4zVQpQuWWQemmw4WA2V\nSDf7EhKMORaKu5yN6u1OxLMb946OT8b7wpGLOod2Ojq0v8Jf/PuId5lYjT3K\n6IaDHOam2UYHbHm8sx2nsvZAR8VWDebMttBA1PmDf0P4p2EE9mMyRyGZpIMG\n14Nmv7f8MFVtx+g9pP8eU+xLqWJq1KHq9t4EZA3J8vqHwLzeY5yIGLPll1jW\njHInZiO1XefOpNR5xSGXz8ssLHnF4jaQNdS1Gxm2Q9g83ttZVhSBEEI9z/vS\nmS9HF4SD0v4yHFje+yqmCOpMRLKXNNfQ3LH6IUUn+uVh3seyi5PhTMs6EJiS\n2DC0Gfym/3+c+/QJNOln1jv6U8uRyQpzEofwJXwYA1747SZkIlYvTWiQc1r7\nxG6EtK75tmNIDIaVe1M5xxld/dCHF3db0zel1ajh0qmNR/Os31smF3L1K4N8\nd4zF+h5Mk+K9wZ+P1vIjETJzMywVr2ORiE00thBGKT9Z9WI5/NLq8MvbxLdo\n/hcmiiekMnsMbR6zdEoy26f9D8O6Ry3h+nYBC8/piMnZuSBHDUGAHx9cbUYq\nW4k5Mj4Ib0mmsB5mthKahPuTwUQeZ/37nVP+iZLSWdkS4+7yglyzarRHMzhL\nOFVt\r\n=0123\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHd5WZ8xwdJxGFHlVeGzM1+xbUGovmdp5MBYo1ygObcIAiA85bj5nDmllNXPfZSxUMKuEBeEy97oJgKQ6xmLgFvymg=="}]},"_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/endpoint_1.1.1_1619327129579_0.5864598605728486"},"_hasShrinkwrap":false},"1.1.2":{"name":"@rest-hooks/endpoint","version":"1.1.2","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^7.0.0"},"gitHead":"7ed918973d3410b7d21b32187049470d081816fb","_id":"@rest-hooks/endpoint@1.1.2","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-ykgRyjHLdOxxE5RakF9NTN4pAEE7hGrcfL949FNaOMNA3G1VSU5nUguevH1WZlwag4ZpcP69P3NKBykISwbAbQ==","shasum":"be314f585a3e89b7ab8ae8918218294e7126bfd9","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.1.2.tgz","fileCount":43,"unpackedSize":126382,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgqycPCRA9TVsSAnZWagAABWcP/1wwyymcBYyofgxSyWAq\n6BbRr1QNKc1ME8FT1ztmfCXagkDi1Zd9tvFuf2PlfRPd3czW0UGcJ/t+i0TY\nvunn8QDXlcpXbAfl/JX5gOsFePIwqu5ZLDQjia933DAYhFECvRnndN8hJDMT\nSo4EWksKpyEqZy9rgSR81mTOHer70oWVKE+D23YC72noKZwfHnDamWm3+4JW\nI4oD38+z50eDcjhG5TvSA3ZVF9zUSEOKVXVufXUqm7qic7sLuA41nSc7n3rW\nC0nUlgY28IBqfr9HszWLOh+rNe8/UJKTTBtYd1t6usiXmDn5Dxj7gumC5rKV\n0GaJCM2tOriLCr8+Rhf8lhUARpUKVSvgqb6fa1M46JWy4s5JRL7lvR9VQm7D\nRFR4RDGypcM/HStPmI8Mvw7uLZ5JA32sSOHE9IG5vUu11E7QAuT3cz04nk2m\n9G9Bt7roiwroJj6Ckm8/hBPiCVd2j+vrJJWooLMknRQxxOw5Z5VKzfy+RysT\nTv93hwQ6ALGWcWilriFL4mdHHkuNS8fgUR2+I+i/g41pYoMyh0t5ALz5eIj1\nYMRd5nP1M/pEL9UJVfRMb9ZIqpj+/oW6fWirvAEX1Oc9sYSyd6N/GkqlKgHY\nohNbDsm1MLfrqsdU528veu4095OL5J8tn3QpdmXhjtSrrjLFCMte/uV4n7wx\nOgQJ\r\n=zwga\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRpaaxoQsfujgEc50A8zjLhXEZ9kXVXlXpD4KP2i/bZAIhAMKulJvGbUN+Jx03qkhKD5434tFcQ2hKje24hl8zwsJH"}]},"_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/endpoint_1.1.2_1621829391243_0.4984634796002654"},"_hasShrinkwrap":false},"1.1.3":{"name":"@rest-hooks/endpoint","version":"1.1.3","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^7.0.1"},"gitHead":"8f08fbe6f2fdaae40dc63c3d13081a1d2b3c97f5","_id":"@rest-hooks/endpoint@1.1.3","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-5ciXzAosoYZIyZx2u/eVnktn3O2AlP46ei70zs1FxeW1Bp2KGgoRjhwGKpRo9oG9ktBM7jjw1NUb5L98k9Q96A==","shasum":"dc02533fd01e77dc28bac08e6d4edfd551903c2c","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.1.3.tgz","fileCount":43,"unpackedSize":126578,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrAnbCRA9TVsSAnZWagAABhYP/1ScqOmQ6QZzBaDa72Uq\npP+/2feOJw24grNm3uxnPxqsGGvPucKatUZREitccHIW/X84z0QsS+/nNR74\nl4JjQhEI2MX64QB08SJ57ke+h0714l84drCsu9c/mT/j3DJSj6g0TCAqQq53\nrAb23nveH48962Bq6cuzs/WXssniRhan+cHaMqXloc4WC4MQ7HrM1L3obmIj\n6cQ/cQFdSSJCpfehq4Ub+PZKODxEaDkl5ZnCQnXkk4Wlk95bO/KjXQHzp1an\n5pOfL7FIU8MM7HEzqWC5cLFSsDtZDQ+zAMO7I6E9YmWQkGTXwmB2fUJ1FNzH\nJgRtu8+3CcAKOqbr5nDH9BdonG9Tm3WKqb7RqmArrryCl+hVyHBcav6W10gK\nE/JuxKU7h6sLzQqFliHryUw0TjaZVtg3z/ks60pSWejQdVo/moDtPefnxANX\nKzrRnq4i6iNbtIrzP6L7lgnERtR6gW9Nf8odoubtDSpg2pFpLRKmknElRwu+\nT/RFDqJi+KFdCbgBHFvC9mWWf4N0QKN68xnOuBl/7atTplSePDJrnW9NSao2\nE727iN9l/0BVvRTHUk6PEgakBZZ3HB5zzIKl5gzhMogggNteTEE8cC3DImKb\ngcU7yhpPpiTqZcC/FIJSlbEkQBBNQ+3dbAQDorqzOHjUZxzduTZHvPjfBwM/\nssKd\r\n=v1hV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEKWVfwSynUDWMhE+LauxYo5BOgGpzkE/9z0NTXbi+BmAiBJT5rSjcAXi3ChnbVBUm+VL/CQm9IqNxQoEVX2Ld4/QQ=="}]},"_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/endpoint_1.1.3_1621887450852_0.01639073453434081"},"_hasShrinkwrap":false},"1.1.4":{"name":"@rest-hooks/endpoint","version":"1.1.4","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^7.0.2"},"gitHead":"ff04c3ba45467581005e7492640d389f86b9cce1","_id":"@rest-hooks/endpoint@1.1.4","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-VRbBE4i2/bH9Oh9rnCe/mN+9bnfGUuLpqFI1X8MCXGy5jJ88hwf7Cj3C4lixszI8b0MMh8Sx7r7eS/IgWUh2+g==","shasum":"47a3e61858791e16edc435b856c89a74cd0e4da7","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.1.4.tgz","fileCount":43,"unpackedSize":126777,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgsyPkCRA9TVsSAnZWagAAMvIP/ArIgshtPirgs3BXOsb5\nekGOmxo0mZMWOYzXxs4zGQ1j1qH2lb/OVvdBegZhKYONyDUYddimU0p6djkw\nAesViyp72zM9cXHGlKUKq3/lOVuRHl3E3XG8tP3qzZ+2rtfmqkeASkDWeZGB\nuGJnkNUnYnMYUl6AmxeUxOWAlOFFsniHp1AhcN7xmkzuZ2+UBOBaH4nZ1w8q\nSDbwztdWYf4fiRsrCxsNMeiolyTisF5XNOeUUqQNv/R+0BnC7A3o3dJMtEiV\noYSYtFb/tZdDPgvJYxlbqJhctUTEN5kDdO08wGtSFcfY/lCLofNiHexTM4ml\nKMRJMFHnUekoip18ZaxxlORPm2pegv6+5bLVbDOxzPIB4yAgfhZVA/E0QhIu\nBXa4/G/3A3COmCiZxZgssDrUtEV5mPlCtLvfpBjoeQrAakQBMztSn3kNPTgx\nGZ4GFqrxbwaEE8mExfrJrqpHeTU2GI316ujToUQpLjzPVDdGtYiYVBAhl88Y\ncdcW7bNFfiNIkMJ2aH0ByefWkwtFWhdfex8W62PdXCv0uw6Pvb0DY70Gn29P\nLJ9grb4FtyW5nGqiq0BWsxhdyVNVtGBj6mv+Or8OEotiaaQe6gtvlE5kyLNL\ni+D6FUUcsVSUyhe/p4NPjkILPtcqIAFMtwfkkFxK3ayQu/8bmiImUPhEBXds\nQ/FS\r\n=wDof\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICGtS/13Km8BDm2e1p0J42qhctzt6wEOh7n3N71OmJT5AiEA4oLZeJXihaxUzfE+5GWTWatrqsa/soc97DHLopq86RQ="}]},"_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/endpoint_1.1.4_1622352867888_0.45218366664866516"},"_hasShrinkwrap":false},"1.1.5":{"name":"@rest-hooks/endpoint","version":"1.1.5","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^7.0.3"},"gitHead":"9e0ffe178c28280cf1fbfece3db6eb75d528d0cd","_id":"@rest-hooks/endpoint@1.1.5","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-1r6xxWC1i7T3kVftF5RFGx7X1Up8L8ixf6u4HcFidy6f8maQc8IofVqwPt9Bq9ojmemfXg1Ma19+NaIMXS2+YA==","shasum":"4a5e71e481de17f23e70f72ac2d3f043866da368","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.1.5.tgz","fileCount":43,"unpackedSize":127227,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguBX8CRA9TVsSAnZWagAAKMoP/3sqb6anYBW+D93Jh5jr\nxQy5MHl1ChjpPxMMaCkDAvnfVHDfMusNe271GvJXLA22zJO7jJnBEexlxjOe\nUDh2VxzB8VuoJBV5jXtxJYeNO+LZ+BIvOdoNhC7sJxSFAkP5nM7mMGdg72n+\nEAQMK3MOAE8/9lW7LGmGejLSWO61g5H6R75FHbvL5osW/2KsnSFYKCgKIwW9\ncR/QO2LPjgNBjMI/rutZaH+RtHh3kqG1xK6iAq8CuSd6aIZ4s47+xHOU82EM\nqUWyuzW7bRS+qwKuvEmITPr4TOnlLcUnW3KAlioggpV7I1vc0XAYCefw/+KJ\nuBDhqFVLkN6prZx3q4J0humDwiOmskLBrQKQm7dcS95Aiaw6Ddgt2eS4oflK\n4CjLiN+C/V2WjJCQEw7JvHyQAHujxJi1fOpl6N5wF2/3cFs7OIK6dT8ZPWoQ\nK9blRrDOyD/fsDSZIiB3S1O8kXxlJHDOC+L7C9NrvN5wyZxLJaEGB7dBFpDw\nQbr0qQtktP2b48XWmWKVA77hEKO8K/wMXeaecMI2v63d9Lxj5qVejQ9igzHC\nxk2L8FI9JH8FqRoM1ulbl1db183xZNiDCyglRIZNfuD8N1h9xnXx1ysEggDv\n6hkD6EHTqOMWhuKgC+wIVZrNAJcahLgontQqF+VlZxLeZRSI6pfCN2VI+XRW\nrdhm\r\n=/g/s\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF4qo+bPhDMvzlgkhry/V5+4mZ+oeCGSWNJUc1RTtWkUAiBlCO5xUdvhRaDdVysN1poE6w5OHBiCyQbg5vaPnT7fQw=="}]},"_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/endpoint_1.1.5_1622676988471_0.19491308624173653"},"_hasShrinkwrap":false},"1.1.6":{"name":"@rest-hooks/endpoint","version":"1.1.6","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"scripts":{"build:lib":"cross-env NODE_ENV=production  BROWSERSLIST_ENV=2019 ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^7.1.0"},"gitHead":"6316c051a883ff5670fd90f3f5185f04b9a7889c","_id":"@rest-hooks/endpoint@1.1.6","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-p6Gd1S8RwpkDVEX6HeLo0Zg8eeDLnvy1x3B3HO4nSLthujLiy4GOf9UnnO7UKdyVX3j83QwqpJNFshVENunnrw==","shasum":"e5d0b7fabae037470024b5c3db6db69edd076340","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.1.6.tgz","fileCount":43,"unpackedSize":127647,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwSt5CRA9TVsSAnZWagAAEdQP/irx+E8qZXBQlTbxE5ej\nRh+ea8jWDDLfc7hhvAWXz1ArEoc8qu8G8knPD245Hn2Nxtw37HS3m9El692T\nvNZGGGSk8iB0UxrYlbhl7q74f7ZoRtIgAWFhWM1fiGDQvhYo6uER1CQ4JGyC\nXL2Q9ZyPjrVDRBCK488m4MSDoY1TieTs2kn877M4x04ALkqROyMFgJ9vmvkB\nBO7xCAcfH0KDQj/T32X84kGKhJhBSVMjkzuVFg9vR86/h0xcwU4faGhmOJa+\nXSL38sxhXUZAy+c2kGikeBFnnrw2FIhlavO+HN1j9IqHJcntF7oizWIo+Hzn\nA8qwNq/Xcn0oNXVkAdbKxfM7lZhwh4uGeARHre73NmSz3N92uiros8nB0Rae\nmV1wPG/LBLVioYGjxZw7967gX+USeBdHGY7TsqzyV1gzvZQzPL7FvOR7MvWu\nisxcgKNVa2jC+L26zXjjwEwJPioG6NpV4Ln/7X8SpeGwfTR7GuqZC6nNp+4/\nZ5f5GWB8MvSjLH3yX770tq75je7DGKR5fZK5KF5KEadgYtEyT0UVLI+p7tOU\nUaoJErOEM4IIQk95rQWF14wlFvKPaZ4tAc+RcGWOLs1v0KzJZUW68jCeG4VX\nG9mTDh2CoMUJ5rlgc6iIrOY9ncrPpoodbONoVkDst3evutnJKaNGpXVXrAPS\nGeHk\r\n=dZ8J\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCvHQxuN25DCV11AeieEd8rTT5x+CqX80uqBI/oecV6aAIhAM2hnhy6TFsxpu4U3UQvBSS31rr62SOaoRNEr8//qYth"}]},"_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/endpoint_1.1.6_1623272313417_0.7111574668413607"},"_hasShrinkwrap":false},"1.2.0":{"name":"@rest-hooks/endpoint","version":"1.2.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"scripts":{"build:lib":"cross-env NODE_ENV=production  BROWSERSLIST_ENV=2019 ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^7.2.0"},"gitHead":"18225300621058e9e692c480e31b7da7423ea8e5","_id":"@rest-hooks/endpoint@1.2.0","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-zphx85HFOwRShHmkNDbOEdbWuKrhwH5PWM9VMXu3IMTBkQ1/zJ5liGHBEmjzuHlOFUrZguOnBre9qgYo3rCjpQ==","shasum":"5f782171956b62ad2a7336da077db7daa0147a0b","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.2.0.tgz","fileCount":43,"unpackedSize":130658,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgxVqqCRA9TVsSAnZWagAAhYwP/i84usqbyhLVj4/e3RMw\nSHraFmVbok7c5R/mI3IRQ+paGQkdkWEuXmmygvFLtfCyuuzz40pLiJfD2NB2\nW8E10SPuTNFUDVmzk15WWyieL7M/t47eDEkGmR0ERWNO0qXxuyg74Mnk741H\nSFF8PiRU8F87WyDxjdkubJkyGvApKQpM3Og05dR8WyqkoVVqgglcCWAJmafN\nsteLhsZsHX9fgjkV1EGHR/eIceeKVX0Xxaz8x2CljKnE99BMonrrcBrtc726\nlzfrwfhOsPtUg73ZhFQ68jN7mW5i6Mws04Gc7inOe+WpOts4fubR6loZgYJp\ny+LQQklr9lJ0aY6H1MEkwysy2z5Ey2tw/M/IaPAN+LcyCbpTwZhnIps6gsAP\nIfk/tJGe20UBjUV4tS3Z1bmB79mNp1y49AG+GozwTLWMjrJtaFkEYCMWjmWY\nXJujSTfijE6C4iraI3XeTr2JlOC6a2qK3yePSNI4KF3Xvv/HDxFgatVcHoGw\nD339MsIxakeUZUjK1JYaZ+NMrYB+SOJCVrov5VNrc7P/Un6bttBaXdfJzKeA\nR/4WqJ4bM/aNLu25qaeMZSqLbtOSGRhfOyCOB89jtsHJgOWrAU6dOvzNyHip\nZJf4Qzb4r6LPrsanazmBsc5sOO5dzqmcn6XjorTohtjLDHa16mXi5yuMZMbk\nPDP0\r\n=Y0IE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHBrE6H7Ljmh3zeTFt0nqBhnLUz3/xs3TcsT4Wi5aZ/QAiEA/N/w1cX7AQNgD4OELyRNLq2XDOxWvCxeGOtfUNsSQzg="}]},"_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/endpoint_1.2.0_1623546538705_0.9256721099314971"},"_hasShrinkwrap":false},"1.2.1":{"name":"@rest-hooks/endpoint","version":"1.2.1","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"scripts":{"build:lib":"cross-env NODE_ENV=production  BROWSERSLIST_ENV=2019 ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^7.3.0"},"gitHead":"ed74cd84ffa8883cc87230da2f6a7afb6875115d","_id":"@rest-hooks/endpoint@1.2.1","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-bdmZF83E/kAb0zNlIVX0znZasUXrjLc4lpMcUOr0iW7SvAPYd+punlxv3CEs1Bwh4GNqgPZ3ZVkORZ9Lq8aiQw==","shasum":"24e4c2ad1f0f2e49e1208986be5f7dd5677d2bb0","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.2.1.tgz","fileCount":43,"unpackedSize":130854,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgyWLJCRA9TVsSAnZWagAAWjAP/AhhS7GYPmMBNFWerWeV\naomIALCpFdmL29OIt9mNkG05MlIJha3JxOXDtd00HkZjr/hWwIUElOtm+E2w\nloyzLXK77XI5kNh1jo+sYFQxAedw8mpc2laIPh4enNaDI/wf89A9QZGxwIDJ\nKSvUzS6Oml1iyh9ZlL6zVS+UQJEZqlnnaqyIp8YnG/TPp3jUbG7obSlLthT5\nFwvl2SfomO77vibM3cp8LeIy5TCU4GEL6SnvDmo96QeDRvOcCsNmFBD1qsmO\n0RD0SAEZ3LHaN4BSMqZlflYXlz+9YC/YpZEOkStb+B8s92/Vdq0UQ2+cEhWY\n+drOUP5UwZJBB6ptGNwNiRxd/OdSLsHJ+eRDy05f5BXivcmnCUCjWhRQiQaS\nBOfy1cqUYHBOBCGalC6cTGgYxpmskaI4AVyzOgP+alfVo7obZzCW5lciCL9+\no6HgptkTatH/h5iZi8LZ5p9VnkARAiXY7xz3dJwBW1sE8XPN555qpa14qpsU\nvG3i9bYohkn7lsUgiqqISDtEi8DwDGqe1PPnPCGOjCc6Kq3r++H6IhyhspVp\nkGlLZ3QSeKq5I+dQSDcHtHPFeEFUXUdGJfdIxxE/JTfjKtafRE+XcHFwifVE\na4nVMyN7riCKTyJQHr55TLWVvuuZW6oCHl7xo0uaN53x7Gx3XNLjyAsICjxS\n+bbj\r\n=PEz3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDVsKaDHrmaZLp3cf+szTYLroeADQ65CEL1XIo+23aawgIgSPF/T42U7OCckZMdyk+K4RJNZPdiZCPs6+Fot/Ac0KI="}]},"_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/endpoint_1.2.1_1623810761283_0.6028504352502755"},"_hasShrinkwrap":false},"1.2.2":{"name":"@rest-hooks/endpoint","version":"1.2.2","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"scripts":{"build:lib":"cross-env NODE_ENV=production  BROWSERSLIST_ENV=2019 ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^7.4.0"},"gitHead":"36abc2165ec756e3ae9d3796eae004686af708e0","_id":"@rest-hooks/endpoint@1.2.2","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-Iz912SxkxkX7Yi1rKzcU/ABty+pThTZAAp91NnL9PeOtZNxWsNbjniLyeY57XPXnqJCFG5tW4WxXwCy6kQ5Wcg==","shasum":"e99fbfc88a9d82312b059262e07029e5953fb4ea","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.2.2.tgz","fileCount":43,"unpackedSize":131050,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgzjilCRA9TVsSAnZWagAAeBsP/3ovltl1JiqCSn8WgQiK\njk0ukaNWr8+zuQ2eLUpkWkXB09HJvfdsJvkloKqzOGieeSs5lBp5LD1R4WDy\nVEY/i+wR/Klsulq++JbJSm8VQYZFn39WFnrlXoRDwJtlzu962S18B73DbY9D\nx78n7H2yW9ytVA9b1gWYN0dMq4nunU3DJPoWYwWlUWr3MSYqr7LNFl2bCtm9\njDGdbSfdhAgUOH19xyQiqW6ZOCyCv5DVwFfbvCYsxLe8PKlBb8YjFtuDmA03\n3/ENrOQS771H0Pa8j8zZJGG1O2ojnrRlhnzBdk5sFS9+JJ3IT1c7j+X1C2PK\nAAqWgM/JSphSZAmAEvmHz6WxsDGB5azu5qJcNRNMnwLNGdmjjVcc1EqQFMr/\nIIxr+0ei2fXkkJYh7QqBV4IeFJmdrYTiq+stx3du/4c0KcBs6xe+mv7bEI8P\nGjygwMsYRMp3UYB/z9bP2FtYsZFcc6Isygt8Y5bNUF1i/tC+R2Pj6AkdWYj/\nII3sw0tWcyvj2obqFAVH+qAgB+2ezhg4IWQ43oQZDhDQpOYm8RfaVdZTqx9n\n/GHXShPra9zv/IrO0PcHZP/jrl6XwT1y5YKdGVEXpPGI1Fzc8Wu9x+OE3++U\nNi6/vbizZRCIANeHC8k142kGot69xhWIwhI8aNT8LJ2eLnVRaoZkNDD5Uqn9\nE4Z2\r\n=rFvr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXOhh33uijb3ONwESoQaBt9SZ2oeStXtpUKRk+/odIegIgd01d/VKv0WNnLCTqCso3BEdYnThY8o+r7grNUm7wNoo="}]},"_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/endpoint_1.2.2_1624127652825_0.2718322195336276"},"_hasShrinkwrap":false},"2.0.0-beta.0":{"name":"@rest-hooks/endpoint","version":"2.0.0-beta.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/endpoint(.+)$\":\"./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/endpoint(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^8.0.0-beta.0"},"gitHead":"2dba027e192dc7cf2f4cdf66b946a9b10fe07120","readme":"# TypeScript Standard Endpoints\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/endpoint?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/endpoint)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDeclarative, strongly typed, reusable network definitions for networking libraries.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs/api/Endpoint)**\n\n</div>\n\n### 1) Define the function\n\n```typescript\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nconst fetchUser = ({ id }) ⇒ fetch(`/users/${id}`).then(res => res.json());\nconst UserDetail = new Endpoint(fetchUser);\n```\n\n### 2) Reuse with different hooks\n\n```tsx\nfunction UserProfile() {\n  const user = useResource(UserDetail, { id });\n  const updateUser = useFetcher(UserDetail);\n\n  return <UserForm user={user} onSubmit={updateUser} />\n}\n```\n\n### 3) Or call directly\n\n```typescript\nconst user = await UserDetail({ id: '5' });\nconsole.log(user);\n```\n\n## Why\n\nThere is a distinction between\n\n- What are networking API is\n  - How to make a request, expected response fields, etc.\n- How it is used\n  - Binding data, polling, triggering imperative fetch, etc.\n\nThus, there are many benefits to creating a distinct seperation of concerns between\nthese two concepts.\n\nWith `TypeScript Standard Endpoints`, we define a standard for declaring in\nTypeScript the definition of a networking API.\n\n- Allows API authors to publish npm packages containing their API interfaces\n- Definitions can be consumed by any supporting library, allowing easy consumption across libraries like Vue, React, Angular\n- Writing codegen pipelines becomes much easier as the output is minimal\n- Product developers can use the definitions in a multitude of contexts where behaviors vary\n- Product developers can easily share code across platforms with distinct behaviors needs like React Native and React Web\n\n### What's in an Endpoint\n\n- A function that resolves the results\n- A function to uniquely store those results\n- Optional: information about how to store the data in a normalized cache\n- Optional: whether the request could have side effects - to prevent repeat calls\n\n## API\n\n`@rest-hooks/endpoint` defines a standard `interface`\n\n```typescript\ninterface EndpointInterface {\n    (params?: any, body?: any): Promise<any>;\n    key(parmas?: any): string;\n    schema?: Readonly<S>;\n    sideEffects?: true;\n    // other optionals like 'optimistic'\n}\n```\n\nas well as a helper `class` to make construction easier.\n\n```typescript\nclass Endpoint<F extends () => Promise<any>> {\n  constructor(fetchFunction: F, options: EndpointOptions);\n\n  key(...args: Parameters<F>): string;\n\n  readonly sideEffect?: true;\n\n  readonly schema?: Schema;\n\n  fetch: F;\n\n  extend(options: EndpointOptions): Endpoint;\n}\n\nexport interface EndpointOptions extends EndpointExtraOptions {\n  key?: (params: any) => string;\n  sideEffect?: true | undefined;\n  schema?: Schema;\n}\n```\n\n### EndpointOptions\n\n#### key: (params) => string\n\nSerializes the parameters. This is used to build a lookup key in global stores.\n\nDefault:\n\n```typescript\n`${this.fetch.name} ${JSON.stringify(params)}`\n```\n\n### sideEffect: true | undefined\n\nDisallows usage in hooks like `useResource()` since they might call fetch\nan unpredictable number of times. Use this for APIs with mutation side-effects like update, create, deletes.\n\nDefaults to undefined meaning no side effects.\n\n### schema: Schema\n\nDeclarative definition of where `Entities` appear in the fetch response.\n\nNot providing this option means no entities will be extracted.\n\n```tsx\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n}\n\nconst UserDetail = new Endpoint(\n    ({ id }) ⇒ fetch(`/users/${id}`),\n    { schema: User }\n);\n```\n\n### Endpoint\n\n#### extend(EndpointOptions): Endpoint\n\nCan be used to further customize the endpoint definition\n\n```typescript\nconst UserDetail = new Endpoint(({ id }) ⇒ fetch(`/users/${id}`));\n\n\nconst UserDetailNormalized = UserDetail.extend({ schema: User });\n```\n\n### Index\n\n```typescript\nexport interface IndexInterface<S extends typeof Entity> {\n  key(parmas?: Readonly<IndexParams<S>>): string;\n  readonly schema: S;\n}\n```\n\n```typescript\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Index } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n  static indexes = ['username'] as const;\n}\n\nconst UserIndex = new Index(User)\n\nconst bob = useCache(UserIndex, { username: 'bob' });\n\n// @ts-expect-error Indexes don't fetch, they just retrieve already existing data\nconst bob = useResource(UserIndex, { username: 'bob' });\n```\n","readmeFilename":"README.md","_id":"@rest-hooks/endpoint@2.0.0-beta.0","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-J5BHRkvZdhYGr4r4ll8v13tfyyKHo2gdk4pYtw2Y0HTyrht/O4tdrKoe6BImkqPWrA8HHpyvTEJ+Y5N8sk7c/w==","shasum":"1ca7403b1ebb05247028b8f703cb7f0d260bb69b","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.0.0-beta.0.tgz","fileCount":52,"unpackedSize":146943,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3JnPCRA9TVsSAnZWagAAWdEP/1vr8uO0b+75Icaj9tsR\ntI5zNuHZhKwJl/tZ/pSkOhG/WLe6eF/v1QwDtDUmbf5figNEcrFoKkNb1JkP\nkjzEeWSUt5R+zl8JEXVqlyLTQjoUqi/X/Ay//v9lXEvfqKvwsZNch7eI5uE7\nlEVzERFNshHHL0qnQWxeNiwItOINMriWiUyMKgztevCezAHyW7VS19LNZQjt\nHbt18iFeHQCJo+liX8gR37aSxrJgrP7BA+MLU4ylxO6iI5sH93GWs0CDdOY+\n/tI8veryHYj/o5jgcffdUqihey/wNxE21vz+rezJdsuDyobmps1O5Fg3fxsZ\ndDaafK3cdpTwKaqYS4JWgqgSQ828JKICyAf5GnjErI0xMDqgTGLy1/Vl6Z0q\nPnp3vWdu5b61pYUDVSQKa5gDTE5fpwmutoxOCztpbbjOQcgzEnoRx7XLAyhG\ns9LOXZ4jjJVNeHIOw4SA6OzBpOyZ4pQdsKxiziGDOTcpPaJ+mMKK38p3Q2FT\na2swD6yE96dpQ256LudDhtf9PSI3bIO/4O8A/OHDDdMl1WfsEKLypElv+8dX\n++BvAiAyQM2Ik5P6cjWFUZV7OgUe3WlG+jTakZyyRN14w5qYfB2oVSQHsm9u\nBHLGp1p8ZjertpnnP5OROopFCCS1Q+ghtzW4oUxiuzwCNSo0P4Ifs0aBgjyP\nPlFb\r\n=ZI8v\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEeigL0UlvMBo4HLvWFtZ4vgTMEC7CrUCwYH9ct9Oit0AiEAl4lUX/cnsBIImX1OOIO2+ftK74+AOpsXQF7ZgjBNWKg="}]},"_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/endpoint_2.0.0-beta.0_1625070031272_0.18234253410438916"},"_hasShrinkwrap":false},"1.2.3":{"name":"@rest-hooks/endpoint","version":"1.2.3","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"scripts":{"build:lib":"cross-env NODE_ENV=production  BROWSERSLIST_ENV=2019 ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^7.5.0"},"gitHead":"3381921609330c7fcd311e4543f3e1e45b40bf69","_id":"@rest-hooks/endpoint@1.2.3","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-XCeTYIZTJHEGIutmiHFhb9eNXPUkNg0KNQ/NvvMocwnpqMssBh4v3H4XA1ijgW7Lt+1X48QFvnZvkda2uK0dJA==","shasum":"36225d5fed234ce5968d1bf1a3a48a3cd3a907ff","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.2.3.tgz","fileCount":43,"unpackedSize":131246,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5M+ECRA9TVsSAnZWagAAeTYP/2oRX/wVq6UF/iSRX2n3\nLxNk9VFuKVaIQkwqhUxe/3/I8U93AqCx8Yrxy2gl7X2bTp2EwgGawK+u8Pab\n9OPgP/pJa6FlrIV2UT3tFuGn105cyvLD5hq6jw0AttHc6nFEAPlUQLotZr/J\n5MasD4ClohEA3MdZ1w8bqcAzdgcof1BOsr4ooZeK//4wj/RzCySLVt2U/V+w\nHZYDN/+HQte5WyHsuBz/1o88Q2xWdkfsvTs4DB3eEEaQj49O5t2fuEHicmmd\n6OBpmO4hiacA/saZ+wtAcCZe6S8WdIlzV11lzCVgajrA1dE5VwlX0+Q+5GqV\nWMyXBiXzXWUPQYlY5lNMZ5Olg8fzLZX8J9Gmsi0s5t69eJCuLf1COwtuHM03\nhk6MMgkJRt/rKa5adQ1PMssVxirdFs739QyCDyu7iv+r99TiCj9dnJ3UEQHN\nWYR9vz2gYyb6l4R6MY4tjertH//a8T/TouoFD0LhaJI48e1OVN4WVoTA//2t\nEAjAFywuv39+62ApCHI/dMd5RRXUGQPWytIaJ3jVUEYRP3AXvUx3vB8We119\nCFh8PZMjxw6koB/nVp8/xOiX11L8zmPVBjVOJlBVzUlemERsi4TmoPENB7IU\nQZLYjzoQsJSZIiCeejru4uDhkG7LQI1OJbjotLf/hjhu2CIJ9a9uUYBkI/od\nvHw0\r\n=3Q08\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE0SgeDU0cHgl8sbs7Q5kif/I+6JUsjA5XkLk0jJ812eAiBcsy23bg4r4vL9WjnjnrQX5gUVweEoQ1ao1Rs7X+ONFw=="}]},"_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/endpoint_1.2.3_1625608067728_0.697670453659684"},"_hasShrinkwrap":false},"2.0.0-beta.1":{"name":"@rest-hooks/endpoint","version":"2.0.0-beta.1","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/endpoint(.+)$\":\"./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/endpoint(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^8.0.0-beta.1"},"gitHead":"9c80a807b801979626374b879f5a06bd3545a8ec","readme":"# TypeScript Standard Endpoints\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/endpoint?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/endpoint)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDeclarative, strongly typed, reusable network definitions for networking libraries.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs/api/Endpoint)**\n\n</div>\n\n### 1) Define the function\n\n```typescript\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nconst fetchUser = ({ id }) ⇒ fetch(`/users/${id}`).then(res => res.json());\nconst UserDetail = new Endpoint(fetchUser);\n```\n\n### 2) Reuse with different hooks\n\n```tsx\nfunction UserProfile() {\n  const user = useResource(UserDetail, { id });\n  const updateUser = useFetcher(UserDetail);\n\n  return <UserForm user={user} onSubmit={updateUser} />\n}\n```\n\n### 3) Or call directly\n\n```typescript\nconst user = await UserDetail({ id: '5' });\nconsole.log(user);\n```\n\n## Why\n\nThere is a distinction between\n\n- What are networking API is\n  - How to make a request, expected response fields, etc.\n- How it is used\n  - Binding data, polling, triggering imperative fetch, etc.\n\nThus, there are many benefits to creating a distinct seperation of concerns between\nthese two concepts.\n\nWith `TypeScript Standard Endpoints`, we define a standard for declaring in\nTypeScript the definition of a networking API.\n\n- Allows API authors to publish npm packages containing their API interfaces\n- Definitions can be consumed by any supporting library, allowing easy consumption across libraries like Vue, React, Angular\n- Writing codegen pipelines becomes much easier as the output is minimal\n- Product developers can use the definitions in a multitude of contexts where behaviors vary\n- Product developers can easily share code across platforms with distinct behaviors needs like React Native and React Web\n\n### What's in an Endpoint\n\n- A function that resolves the results\n- A function to uniquely store those results\n- Optional: information about how to store the data in a normalized cache\n- Optional: whether the request could have side effects - to prevent repeat calls\n\n## API\n\n`@rest-hooks/endpoint` defines a standard `interface`\n\n```typescript\ninterface EndpointInterface {\n    (params?: any, body?: any): Promise<any>;\n    key(parmas?: any): string;\n    schema?: Readonly<S>;\n    sideEffects?: true;\n    // other optionals like 'optimistic'\n}\n```\n\nas well as a helper `class` to make construction easier.\n\n```typescript\nclass Endpoint<F extends () => Promise<any>> {\n  constructor(fetchFunction: F, options: EndpointOptions);\n\n  key(...args: Parameters<F>): string;\n\n  readonly sideEffect?: true;\n\n  readonly schema?: Schema;\n\n  fetch: F;\n\n  extend(options: EndpointOptions): Endpoint;\n}\n\nexport interface EndpointOptions extends EndpointExtraOptions {\n  key?: (params: any) => string;\n  sideEffect?: true | undefined;\n  schema?: Schema;\n}\n```\n\n### EndpointOptions\n\n#### key: (params) => string\n\nSerializes the parameters. This is used to build a lookup key in global stores.\n\nDefault:\n\n```typescript\n`${this.fetch.name} ${JSON.stringify(params)}`\n```\n\n### sideEffect: true | undefined\n\nDisallows usage in hooks like `useResource()` since they might call fetch\nan unpredictable number of times. Use this for APIs with mutation side-effects like update, create, deletes.\n\nDefaults to undefined meaning no side effects.\n\n### schema: Schema\n\nDeclarative definition of where `Entities` appear in the fetch response.\n\nNot providing this option means no entities will be extracted.\n\n```tsx\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n}\n\nconst UserDetail = new Endpoint(\n    ({ id }) ⇒ fetch(`/users/${id}`),\n    { schema: User }\n);\n```\n\n### Endpoint\n\n#### extend(EndpointOptions): Endpoint\n\nCan be used to further customize the endpoint definition\n\n```typescript\nconst UserDetail = new Endpoint(({ id }) ⇒ fetch(`/users/${id}`));\n\n\nconst UserDetailNormalized = UserDetail.extend({ schema: User });\n```\n\n### Index\n\n```typescript\nexport interface IndexInterface<S extends typeof Entity> {\n  key(parmas?: Readonly<IndexParams<S>>): string;\n  readonly schema: S;\n}\n```\n\n```typescript\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Index } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n  static indexes = ['username'] as const;\n}\n\nconst UserIndex = new Index(User)\n\nconst bob = useCache(UserIndex, { username: 'bob' });\n\n// @ts-expect-error Indexes don't fetch, they just retrieve already existing data\nconst bob = useResource(UserIndex, { username: 'bob' });\n```\n","readmeFilename":"README.md","_id":"@rest-hooks/endpoint@2.0.0-beta.1","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-lHmKjlG8xGwCj3lMQHDVUbyPinPvqJ0+PugAv5QwpbA4hAAlmhMvFsuiHPjX+y9Za0oJS2rafEL71xRpojc/AQ==","shasum":"858cb59c1f2c253b8bd4ed851be6b5109c714cfa","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.0.0-beta.1.tgz","fileCount":52,"unpackedSize":149297,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg6+oqCRA9TVsSAnZWagAA4EMP/31I7SgkT1EM8VO+yXn6\nvglGQr4kxbq0USz2ri8jQ5LBkjwzIXEOGnWN1j7/PZmAUI8vjh5HTuoVdO9V\nbzE5+ADT5wO5l2GZh5W1lbgNgbH1O/apebQYP3yy1cVJVjmJ6roBTMfoAyi0\no+4T9QC9grtI40MdLvYOa1/tyZuhCDyGOnrR0JtpRN8dB7DaMiQ+tAdOHqea\nsPnoOfiKdF0BDpNkKCbrcR7fB+2c3o8irRrl58P9chqBDQ2RfrLVVBbh5o/O\nwFpXacRoTO464ldpz50/8vfxQWzw+3EgTNHWpkBp830CTRq1ZSXBZeI4b7Dh\nCP94mpGzCpLY1lP4yiEKGjEcH22QfsBpiVlCeVnxkYfyH6uUaoJH0T2As21Y\n41LJ44aOMt5n4n2ZrMXEczGDSvKrGmfNEd1Nn3iYHhQhuyibXyFFuTtYu4d0\nVepoun8Gcq2/ftjXXOFJVxevOScb/BKTZZvbJfjgClFsv722jun94jhHGzSI\n6Tomg2POzq+8PZXs1Do64U9A16ahH3l534RC8i15o/hBTehsMZRL6l0+CigJ\nyW1tZSJfGTG3D1LklGuxLI6n9NJtQRdHy66MgnM/U9+0ekpBFCYIHd1ixE5T\nVU+FABYPWE7UtNacp3eH3WYPQvI/D50pny8fSF970mUisJrF/kBfyCuU5/B8\nua6H\r\n=e0R9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEubVcqfMYjWpHOhtJuNANvLlCdiQsGG2RiSMp+JrKa/AiEAvlUIgIwEp76DtFfQEkHBOp8k7mi84IPBs29LkD8xxxE="}]},"_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/endpoint_2.0.0-beta.1_1626073641581_0.49103752210948026"},"_hasShrinkwrap":false},"2.0.0-beta.2":{"name":"@rest-hooks/endpoint","version":"2.0.0-beta.2","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/endpoint(.+)$\":\"./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/endpoint(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^8.0.0-beta.2"},"readme":"# TypeScript Standard Endpoints\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/endpoint?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/endpoint)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDeclarative, strongly typed, reusable network definitions for networking libraries.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs/api/Endpoint)**\n\n</div>\n\n### 1) Define the function\n\n```typescript\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nconst fetchUser = ({ id }) ⇒ fetch(`/users/${id}`).then(res => res.json());\nconst UserDetail = new Endpoint(fetchUser);\n```\n\n### 2) Reuse with different hooks\n\n```tsx\nfunction UserProfile() {\n  const user = useResource(UserDetail, { id });\n  const updateUser = useFetcher(UserDetail);\n\n  return <UserForm user={user} onSubmit={updateUser} />\n}\n```\n\n### 3) Or call directly\n\n```typescript\nconst user = await UserDetail({ id: '5' });\nconsole.log(user);\n```\n\n## Why\n\nThere is a distinction between\n\n- What are networking API is\n  - How to make a request, expected response fields, etc.\n- How it is used\n  - Binding data, polling, triggering imperative fetch, etc.\n\nThus, there are many benefits to creating a distinct seperation of concerns between\nthese two concepts.\n\nWith `TypeScript Standard Endpoints`, we define a standard for declaring in\nTypeScript the definition of a networking API.\n\n- Allows API authors to publish npm packages containing their API interfaces\n- Definitions can be consumed by any supporting library, allowing easy consumption across libraries like Vue, React, Angular\n- Writing codegen pipelines becomes much easier as the output is minimal\n- Product developers can use the definitions in a multitude of contexts where behaviors vary\n- Product developers can easily share code across platforms with distinct behaviors needs like React Native and React Web\n\n### What's in an Endpoint\n\n- A function that resolves the results\n- A function to uniquely store those results\n- Optional: information about how to store the data in a normalized cache\n- Optional: whether the request could have side effects - to prevent repeat calls\n\n## API\n\n`@rest-hooks/endpoint` defines a standard `interface`\n\n```typescript\ninterface EndpointInterface {\n    (params?: any, body?: any): Promise<any>;\n    key(parmas?: any): string;\n    schema?: Readonly<S>;\n    sideEffects?: true;\n    // other optionals like 'optimistic'\n}\n```\n\nas well as a helper `class` to make construction easier.\n\n```typescript\nclass Endpoint<F extends () => Promise<any>> {\n  constructor(fetchFunction: F, options: EndpointOptions);\n\n  key(...args: Parameters<F>): string;\n\n  readonly sideEffect?: true;\n\n  readonly schema?: Schema;\n\n  fetch: F;\n\n  extend(options: EndpointOptions): Endpoint;\n}\n\nexport interface EndpointOptions extends EndpointExtraOptions {\n  key?: (params: any) => string;\n  sideEffect?: true | undefined;\n  schema?: Schema;\n}\n```\n\n### EndpointOptions\n\n#### key: (params) => string\n\nSerializes the parameters. This is used to build a lookup key in global stores.\n\nDefault:\n\n```typescript\n`${this.fetch.name} ${JSON.stringify(params)}`\n```\n\n### sideEffect: true | undefined\n\nDisallows usage in hooks like `useResource()` since they might call fetch\nan unpredictable number of times. Use this for APIs with mutation side-effects like update, create, deletes.\n\nDefaults to undefined meaning no side effects.\n\n### schema: Schema\n\nDeclarative definition of where `Entities` appear in the fetch response.\n\nNot providing this option means no entities will be extracted.\n\n```tsx\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n}\n\nconst UserDetail = new Endpoint(\n    ({ id }) ⇒ fetch(`/users/${id}`),\n    { schema: User }\n);\n```\n\n### Endpoint\n\n#### extend(EndpointOptions): Endpoint\n\nCan be used to further customize the endpoint definition\n\n```typescript\nconst UserDetail = new Endpoint(({ id }) ⇒ fetch(`/users/${id}`));\n\n\nconst UserDetailNormalized = UserDetail.extend({ schema: User });\n```\n\n### Index\n\n```typescript\nexport interface IndexInterface<S extends typeof Entity> {\n  key(parmas?: Readonly<IndexParams<S>>): string;\n  readonly schema: S;\n}\n```\n\n```typescript\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Index } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n  static indexes = ['username'] as const;\n}\n\nconst UserIndex = new Index(User)\n\nconst bob = useCache(UserIndex, { username: 'bob' });\n\n// @ts-expect-error Indexes don't fetch, they just retrieve already existing data\nconst bob = useResource(UserIndex, { username: 'bob' });\n```\n","readmeFilename":"README.md","_id":"@rest-hooks/endpoint@2.0.0-beta.2","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-8NufVZUc+UxDRFzbOtK8K2SpiBfU/ruRGUsOTsHDBxAnR0el41Wo5YxQsgMk4cy639VOdH2rvmGW6aZl3POjLA==","shasum":"f51dbd38baef9441451d436e1a152af3d243db63","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.0.0-beta.2.tgz","fileCount":52,"unpackedSize":149456,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhNXA8CRA9TVsSAnZWagAAaBoP/0nR32wE390ZiWHbot3T\nK4jrqRhYJK5iSe6WMd4v7iHZ2zkJtiCPe33bdTOcS0k33cwPeUpIzk1tVGbp\nkd9Mzsgy4t1XEOPoD2byxG/JDvTeDFXna4EM3uLfGC9OXLmT7wSXfcmLOqNT\nxv+C2PZ8puMExLx5S2H+vIV7k75r4yZFWGMMcbWIul+QSAjakHN2mqJrlsNH\nPUdsY1vZv0iLRc+LicJrJo8r2IzGrANI8ZYheMZmuDbz6f0VtndxId3HrDCr\ncFfplBtV1ahQgbErTpxhxeeuPdBJr5S/+CAlrbGrHyIAOmhnskYfDx+IV1Wp\nKF7rG3eYtL2K4QTpXubLRsema36LiOqD2rgOGHrLEvzXFs3tUr4R/H75QCr3\naf+IP9nbYKEk0fVhEDXdIDEGkd8kO6ApMeWMi1iD1GNEZx9RHRSRPLZMaHID\nSKk5CF5HEyEHkWFpgIx/sjnngv7DoaFwlfaLhpQiI6SVU0lRx8JoCudy/jNY\nOOdZ1EA3RKjMNbYHupbCXVRMaeQUaF6Qs7690TM5tv3UwxdsnlSWBA/Kc/XF\nG5NN3A3wyDBR3AaQJQ7pJJSm/kfGNZCNBlVCT0ZCEIjNiDdfYO7ssW4gZU2b\nWkvZqVZbSsxu/K8J0mJvwsolSdQ9wftpxpgAw1nYj/92PrSjSS0PHHjubGS9\n9FBo\r\n=QuS2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgWDS9iBrU8wP4S8nJztYMo9lf8hpwQggB4lcq94Ct1gIgZj8NJSme4E11oT62EGmjdd3Ws+Dw/30/TlYNh1oGEp0="}]},"_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/endpoint_2.0.0-beta.2_1630892092505_0.011286655169393534"},"_hasShrinkwrap":false},"1.2.4":{"name":"@rest-hooks/endpoint","version":"1.2.4","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"scripts":{"build:lib":"cross-env NODE_ENV=production  BROWSERSLIST_ENV=2019 ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^7.5.1"},"gitHead":"0a735a3a198039145cfd5244319c0e228610100b","_id":"@rest-hooks/endpoint@1.2.4","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-E9Yfrjqs4etbKxYUo3yK8ZMyQIUH990Z6b2d610l9wVFr3VJjFgUssjvXW2eXUvcelJzVhY/J6OuRI3/aaTExg==","shasum":"1f4843bc950038365eee30ae3ee15c7850c4bf23","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.2.4.tgz","fileCount":45,"unpackedSize":135471,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhODSRCRA9TVsSAnZWagAAGf4P/A8nAsk4rFn5e1fEEIp5\n0Tok7mbJ4fEolHDzZ5p0yK/fvPLr1c6DOH9HFriNtNLjI85U5TS9sHCr28DL\njyfpL4T4wiIDJ80heedDAjn6OME7ttyj9X+c0DVFVo35cd63GIzVeZ+2/PxE\ncdtMPmz3uFiJNF3pAEr4MHhN5OwfDVy1X9mRVDojP7Zzir+jxW4NKDvg/h3q\n+acV4URqXERfKQRwrcK8s6/s9jylBpN91o393+1H3W6FgUdQw23sjTWFNQmA\n8jcqSIlvEV81pZKXCacWuB5W52uxf38z2Weke27+YnlUhgz6AwBsnqtrtcWg\ntOq/lfRtqqmlJ1Jw74FqrviZ8uiYitlkT5uhE00zDo3xt+yJzZDzs6qfs9JZ\ndfU3kHTxAAjXi1XEjiAaTJ/lryaN5BcK4Bs4eAPjdckTcQ62oPECbo9Ltpxo\nlVVZiYPp7louZC28Ze3FiTT1TykcRFhlunBLCC9FyR562WkmJoUHcHVxWXHp\nEW9b+6it1PuhxvhzYprNtukgVo8hF9ACm+UTrdOBuJazC3rKcz6/qe/6CqA/\n45z4vgl9JCfWfQ0ERa6LCSA2ae1gXZmd8p0HS68a5+ygLhDfDAu0Z8l9vw6D\nrBjeYnPv9PfeJrNNGHafP0JY1o9qTxo4su4c41KywocV0i9FfJKSKBAmZvWy\nNa5c\r\n=znhS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDj1bprUKp+9FuVX63m+4EcNVNJMjsKVLj4svwKgqEacQIhAKLJp2ZWBG06CXlnRhps6e8VKw4KKUFvi2rPt47ec2yi"}]},"_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/endpoint_1.2.4_1631073425102_0.6042896903829147"},"_hasShrinkwrap":false},"2.0.0":{"name":"@rest-hooks/endpoint","version":"2.0.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/endpoint(.+)$\":\"./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/endpoint(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^8.0.0"},"gitHead":"3d347e568f1828e7795de18dc9fd86ffc8ce08db","_id":"@rest-hooks/endpoint@2.0.0","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-Uy9E+LeUjQlJlQnLU44FobchLhnGY6i7MHpe11zBQ3Eww3YRhJAM2JP4ABMdRUhSYwTPyMolBt5DDSK5ux9gkw==","shasum":"85f30b77cfa105d8b42ffc35334dec498a59e5b2","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.0.0.tgz","fileCount":52,"unpackedSize":149701,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhODcuCRA9TVsSAnZWagAA79cQAIKldaHRygdf+RafP2sL\nYiDWucfFBtOlDiUlJuDYeFPg11s8NLoZMMfQyE639XhmvWsdfba1R5Bx4yEW\n14FhtWOLixgLU4epeDFPcUJhrVb8bj4MvHu4U8X4HYfvqrpqjPWuOwtUz2g8\nNegn1/VGaVqMXv4IalzfNxwYbONRZ4YWC2j1Ho1SmKdYCw2DmamgJ2847N90\nzbQc20G9au4PeqfOG0DQZNSJy+XT2MRYPLfPbwT9U+9Zo/FPoEQxnHtNiJ75\nVNW0vXQU605TNW0t4HqmIek95lbKBeQiAPnboXOcptfGWi5Nsgo943iTRBvz\nUnw9BXQDfXKTWF/B5VGyUxZI6usjoHwaBDcxG/6qs+6SWZPhIMt+oRqufMqs\nqEoap0JQgJlYfMeUKbdrSdJ3Rs+KhA3gXPQDV2YQfv9HjNjsJHXq4C5HIfYi\n0Esux6sZHbY5NqPSg97cyq2ukHTAQTVoGFeswdwZrwMc4Gozv45d8238uwjT\nRR0it5DomE+k4h0XIScJ8RJsYdqMd7Bv6+2y8JOkZLsyFOvgY2NV2oDslFAH\nFy4C5QpOT+pPKQ3xY3piIIhwXdAtD+ioJH1hHmA3O9JlapBnVc3cHeVlGnYF\nko3b1iPYM3ATzzvTkHe4wr5lqTQPsG3O1ZnktD5L3tQyWsY0+V9rp9FfcCgR\n+gX3\r\n=9L3V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVDKEZ4Ql0KNMQ/9lYIvVqdNLfAaPdSIXbRumoKxXWCAIhANN1+634VkPBjIiyr8ynBRYvRHUVw3ByRyLBOzryVKFN"}]},"_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/endpoint_2.0.0_1631074094775_0.4613904711804413"},"_hasShrinkwrap":false},"2.0.1":{"name":"@rest-hooks/endpoint","version":"2.0.1","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/endpoint(.+)$\":\"./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/endpoint(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^8.0.1"},"gitHead":"4d2b1ad1a775cdb3358f272370e6ddeaf17df9bc","_id":"@rest-hooks/endpoint@2.0.1","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-VcV6JFwNrd76hwqRwdB1ypX9naMvGln/0ji0UcKkdeuqa+xG0umyuk/WSG/KcqvHqZu+jvho8Z8lC34TaXugRw==","shasum":"2b05ec3d0f77c48b9b3ea4db36502cf0e4de905f","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.0.1.tgz","fileCount":52,"unpackedSize":149873,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCR3RSNWkhct1nLZ+krCQPKkKSd7JLNBjE/xeRJzYY0pgIgEE4g1PiefCt53IJQj0u3cNkJ6hQOvGwJXg/RhFwblRA="}]},"_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/endpoint_2.0.1_1632887962810_0.2292997125858296"},"_hasShrinkwrap":false},"2.0.2":{"name":"@rest-hooks/endpoint","version":"2.0.2","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/endpoint(.+)$\":\"./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/endpoint(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^8.0.2"},"gitHead":"b46e0d2bfb3ed7c6cbe9b351fc45ca4e99f34f78","_id":"@rest-hooks/endpoint@2.0.2","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-X66/c52fMNvafasf5D+ZDqkfgVnWhA3TH/Yjz2Y0l2uCoJzvMGSpa1q+GIBEqQTEe1RNBlwPa/H8O+W5PIuX+A==","shasum":"ce21b1124829015630ff6bb423538b3ea4e1b887","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.0.2.tgz","fileCount":52,"unpackedSize":150069,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDRLYIBGzLL24R9Yg8A3sYzpc+Dk29Ok5C48HeR/kFGpAIgF66sawflwtEqYNvB3E5qvtkRSZqt5Cyhy3O/5Fh5M+Q="}]},"_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/endpoint_2.0.2_1632945572173_0.14086500544178393"},"_hasShrinkwrap":false},"2.0.3":{"name":"@rest-hooks/endpoint","version":"2.0.3","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/endpoint(.+)$\":\"./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/endpoint(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^8.1.0"},"gitHead":"de00e9e6462f9052d48f95ef1708c7744698b4e1","_id":"@rest-hooks/endpoint@2.0.3","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-AzrxL1mY6YQ3xx9Qm8ywS6OGKPQsZOnhG7ycML+bFEkM9yqKX6VS6WQ9BqYUPtRmPHfrQ9DnsF0eck6+ZwKQdg==","shasum":"f3a29785b5a2f8c5bfaf44eaba2d2434b75487aa","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.0.3.tgz","fileCount":52,"unpackedSize":150455,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDSSpmmeHnhtVVTsUsxtszJah84Cl1009pi3s9aFPpe5AIhAOyIcfTYBqAxoP1ltV8mjE60ku4YFSFseGFuqFhTQv5M"}]},"_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/endpoint_2.0.3_1633923100442_0.4463526525535757"},"_hasShrinkwrap":false},"2.1.0":{"name":"@rest-hooks/endpoint","version":"2.1.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/endpoint(.+)$\":\"./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/endpoint(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^8.1.0"},"gitHead":"a2251102d7d0a3179e8925634c61ea3fef840a88","_id":"@rest-hooks/endpoint@2.1.0","_nodeVersion":"16.13.0","_npmVersion":"lerna/4.0.0/node@v16.13.0+x64 (linux)","dist":{"integrity":"sha512-cS2k+Wy6JMx6oIEWaKWSewHSvXKN9vDn7DCMH1a8BclDTS3DiCt9N5+CEkV7ZKVI0pdWDJm136HADJnpQLmb8Q==","shasum":"33ae10c795ec4ada1d34bacca4b61b2d607aba5a","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.1.0.tgz","fileCount":52,"unpackedSize":151534,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhoWHaCRA9TVsSAnZWagAA8HUP/i2YpC/97e1ZX552cGaN\nyMBz6jtDpyFOhybAjuv477zXKnga8M5rcsu6+CWrB9jarAsVWXQJFut5hteE\n6jU25Ub+N+AaEwr46iDFCXVyR+FO9DXj1TJghNwC2KpZBOqWyZ8ZjNqXogrW\nu+mY60mjW3ghIpbB5+BSd2uJePCdlIvPxN1uin0KwFY2+yjnXG3YG3vxAV09\nBecX/eBHt0X04O8Th937bN9rUufTcD3JZ4lV/c7sEsVG19v5uyu2G3FWraYt\njgyFwINRheYqbh8ETfS9I6DdJ4y9jpr8wdF+KdeCqfzqadTk+5o6q1OjyCXc\nqo7UICjdSnJ7G3NwrbEpJsVlkafYLEkI2juRCe/+mpfmnkNtD7p1AGg8kcIK\n/PE3aEzyA3r80Hq+VjGafQepSVAtWbWQT9XO98UgKa+LYQi/K/lqQccRd9gi\nQTKBpQZMfyza6m7eLynhd96OTtmOyTIntac8RBPYoi72iWyroe6z8tv4/Vzw\n2k0JmiHsN/VfwZbfjk6TwFzfcKWdvwyAokYEODxpXcc/0z8BtRSAiNLidr1C\nuA2iMKS88SWoegtuD2Y3blKrrnFQBQMTF/bYv6Z/7EqyT1CT5bpUvP9kw1qh\nzgOuns2P0vKvtzCIBJfe7UM7CV1GbWffL2J7KQCLe4GWT0TxV27yN7HPti1F\n7oPZ\r\n=8FTU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEOkCxotIHHONAgEchA3Ae56d+GoWGJqOAnT1rVPmVk9AiAx6C0r1ggHcwPDkmvcPBqxNiRzXknGC4rlcWW2yQk7mA=="}]},"_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/endpoint_2.1.0_1637966298571_0.6434021104744041"},"_hasShrinkwrap":false},"2.2.0-beta.0":{"name":"@rest-hooks/endpoint","version":"2.2.0-beta.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/endpoint(.+)$\":\"./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/endpoint(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^8.2.0-beta.0"},"gitHead":"d52b9f0a70d48a8512cfb9e4d4515d212941dfd7","readme":"# TypeScript Standard Endpoints\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/endpoint?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/endpoint)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDeclarative, strongly typed, reusable network definitions for networking libraries.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs/api/Endpoint)**\n\n</div>\n\n### 1) Define the function\n\n```typescript\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nconst fetchUser = ({ id }) ⇒ fetch(`/users/${id}`).then(res => res.json());\nconst UserDetail = new Endpoint(fetchUser);\n```\n\n### 2) Reuse with different hooks\n\n```tsx\nfunction UserProfile() {\n  const user = useResource(UserDetail, { id });\n  const updateUser = useFetcher(UserDetail);\n\n  return <UserForm user={user} onSubmit={updateUser} />\n}\n```\n\n### 3) Or call directly\n\n```typescript\nconst user = await UserDetail({ id: '5' });\nconsole.log(user);\n```\n\n## Why\n\nThere is a distinction between\n\n- What are networking API is\n  - How to make a request, expected response fields, etc.\n- How it is used\n  - Binding data, polling, triggering imperative fetch, etc.\n\nThus, there are many benefits to creating a distinct seperation of concerns between\nthese two concepts.\n\nWith `TypeScript Standard Endpoints`, we define a standard for declaring in\nTypeScript the definition of a networking API.\n\n- Allows API authors to publish npm packages containing their API interfaces\n- Definitions can be consumed by any supporting library, allowing easy consumption across libraries like Vue, React, Angular\n- Writing codegen pipelines becomes much easier as the output is minimal\n- Product developers can use the definitions in a multitude of contexts where behaviors vary\n- Product developers can easily share code across platforms with distinct behaviors needs like React Native and React Web\n\n### What's in an Endpoint\n\n- A function that resolves the results\n- A function to uniquely store those results\n- Optional: information about how to store the data in a normalized cache\n- Optional: whether the request could have side effects - to prevent repeat calls\n\n## API\n\n`@rest-hooks/endpoint` defines a standard `interface`\n\n```typescript\ninterface EndpointInterface {\n    (params?: any, body?: any): Promise<any>;\n    key(parmas?: any): string;\n    schema?: Readonly<S>;\n    sideEffects?: true;\n    // other optionals like 'optimistic'\n}\n```\n\nas well as a helper `class` to make construction easier.\n\n```typescript\nclass Endpoint<F extends () => Promise<any>> {\n  constructor(fetchFunction: F, options: EndpointOptions);\n\n  key(...args: Parameters<F>): string;\n\n  readonly sideEffect?: true;\n\n  readonly schema?: Schema;\n\n  fetch: F;\n\n  extend(options: EndpointOptions): Endpoint;\n}\n\nexport interface EndpointOptions extends EndpointExtraOptions {\n  key?: (params: any) => string;\n  sideEffect?: true | undefined;\n  schema?: Schema;\n}\n```\n\n### EndpointOptions\n\n#### key: (params) => string\n\nSerializes the parameters. This is used to build a lookup key in global stores.\n\nDefault:\n\n```typescript\n`${this.fetch.name} ${JSON.stringify(params)}`\n```\n\n### sideEffect: true | undefined\n\nDisallows usage in hooks like `useResource()` since they might call fetch\nan unpredictable number of times. Use this for APIs with mutation side-effects like update, create, deletes.\n\nDefaults to undefined meaning no side effects.\n\n### schema: Schema\n\nDeclarative definition of where `Entities` appear in the fetch response.\n\nNot providing this option means no entities will be extracted.\n\n```tsx\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n}\n\nconst UserDetail = new Endpoint(\n    ({ id }) ⇒ fetch(`/users/${id}`),\n    { schema: User }\n);\n```\n\n### Endpoint\n\n#### extend(EndpointOptions): Endpoint\n\nCan be used to further customize the endpoint definition\n\n```typescript\nconst UserDetail = new Endpoint(({ id }) ⇒ fetch(`/users/${id}`));\n\n\nconst UserDetailNormalized = UserDetail.extend({ schema: User });\n```\n\n### Index\n\n```typescript\nexport interface IndexInterface<S extends typeof Entity> {\n  key(parmas?: Readonly<IndexParams<S>>): string;\n  readonly schema: S;\n}\n```\n\n```typescript\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Index } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n  static indexes = ['username'] as const;\n}\n\nconst UserIndex = new Index(User)\n\nconst bob = useCache(UserIndex, { username: 'bob' });\n\n// @ts-expect-error Indexes don't fetch, they just retrieve already existing data\nconst bob = useResource(UserIndex, { username: 'bob' });\n```\n","readmeFilename":"README.md","_id":"@rest-hooks/endpoint@2.2.0-beta.0","_nodeVersion":"16.13.2","_npmVersion":"lerna/4.0.0/node@v16.13.2+x64 (linux)","dist":{"integrity":"sha512-pFyFDe5fXHgX9oSEvBpebAkrYtGVz3DIB8aPVNHcAW52YZsF0YsBWQV7hlDFqbAD/hTZPji+1daI8v6xwdf2tA==","shasum":"d711ed7e2f6fa0458cc05a8f8e6c6ec1b365a160","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.2.0-beta.0.tgz","fileCount":76,"unpackedSize":170471,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh7ei1CRA9TVsSAnZWagAAN1YP/1xgy6CPZRVrtVb/5CmA\nz8KxXXnuFlFSj3QxSMEoA/Rd47GIbn+TTIG/btjKBwugwSMSxjYx/GzsTxtG\nyD0b3wjH+JJU7d4K2JIQwLUv/S83XdiauK1/pfRGbOCJOJts/qa9csSBu8+9\nnPIK8TiV9U3+myiq5yLauzF2vYvuunJ32Er+d0apq1xxZpp/24HE4fyYPbSZ\nVXnn0gEtOHcijtNjMd6htpT5EKYhifCUzmM+ZW1by3AiE2mi2DcQ6IeeBD8s\nPFbA/RAmTuUwO45OPzN9L9I5QABzZ4pbjFbq529iaw+LuHrzJ2PWF4jGw4lY\njVbAz/SBLvvDnixldMib+pDIfw1YjLFQV389Hu8IJPaw716zoIit8Weuil6a\ntBnWDMNeIQ3L5dStrX/O3ojMie/3WSm3cUFPgzCf9MUyw/T1WNRoh+0Dmq3o\nukp2q0sNMh78AmsaF06fr5V5hOk3A3uRUERZSZzMFUi/qUdMif9PhzVS89XP\nTeUvL+TnBZlrAfIm2+YbxUeamDVBRht7WixOkq0B7GJsoZebS3KOxlYmP1Pw\nBqd+58kzOUexohFYadh3oMQLsfE9B3lVJEyulcUdJP54ZtLGStz4VXL1qnK2\nx+jWX3BpSh05nG282XsETcsoXN8yrz/7W7ap0OoS2vhOcm3cJcm7ucqrszeB\naT9B\r\n=Nvf9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDlN677Yf6WFdlJtoa0NoQpWNiMvXgEYE+MjgV3dZFLJAiEA3DvuXWiTreJEPwd1AvnvxvSsN6NyLYchi75tCs0jPtQ="}]},"_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/endpoint_2.2.0-beta.0_1642981556680_0.884541808288011"},"_hasShrinkwrap":false},"2.2.0-beta.1":{"name":"@rest-hooks/endpoint","version":"2.2.0-beta.1","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/endpoint(.+)$\":\"./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/endpoint(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^8.2.0-beta.0"},"gitHead":"fbb71bd24b4230ac1e94ef6f6bec9bc856ef6306","readme":"# TypeScript Standard Endpoints\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/endpoint?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/endpoint)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDeclarative, strongly typed, reusable network definitions for networking libraries.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs/api/Endpoint)**\n\n</div>\n\n### 1) Define the function\n\n```typescript\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nconst fetchUser = ({ id }) ⇒ fetch(`/users/${id}`).then(res => res.json());\nconst UserDetail = new Endpoint(fetchUser);\n```\n\n### 2) Reuse with different hooks\n\n```tsx\nfunction UserProfile() {\n  const user = useResource(UserDetail, { id });\n  const updateUser = useFetcher(UserDetail);\n\n  return <UserForm user={user} onSubmit={updateUser} />\n}\n```\n\n### 3) Or call directly\n\n```typescript\nconst user = await UserDetail({ id: '5' });\nconsole.log(user);\n```\n\n## Why\n\nThere is a distinction between\n\n- What are networking API is\n  - How to make a request, expected response fields, etc.\n- How it is used\n  - Binding data, polling, triggering imperative fetch, etc.\n\nThus, there are many benefits to creating a distinct seperation of concerns between\nthese two concepts.\n\nWith `TypeScript Standard Endpoints`, we define a standard for declaring in\nTypeScript the definition of a networking API.\n\n- Allows API authors to publish npm packages containing their API interfaces\n- Definitions can be consumed by any supporting library, allowing easy consumption across libraries like Vue, React, Angular\n- Writing codegen pipelines becomes much easier as the output is minimal\n- Product developers can use the definitions in a multitude of contexts where behaviors vary\n- Product developers can easily share code across platforms with distinct behaviors needs like React Native and React Web\n\n### What's in an Endpoint\n\n- A function that resolves the results\n- A function to uniquely store those results\n- Optional: information about how to store the data in a normalized cache\n- Optional: whether the request could have side effects - to prevent repeat calls\n\n## API\n\n`@rest-hooks/endpoint` defines a standard `interface`\n\n```typescript\ninterface EndpointInterface {\n    (params?: any, body?: any): Promise<any>;\n    key(parmas?: any): string;\n    schema?: Readonly<S>;\n    sideEffects?: true;\n    // other optionals like 'optimistic'\n}\n```\n\nas well as a helper `class` to make construction easier.\n\n```typescript\nclass Endpoint<F extends () => Promise<any>> {\n  constructor(fetchFunction: F, options: EndpointOptions);\n\n  key(...args: Parameters<F>): string;\n\n  readonly sideEffect?: true;\n\n  readonly schema?: Schema;\n\n  fetch: F;\n\n  extend(options: EndpointOptions): Endpoint;\n}\n\nexport interface EndpointOptions extends EndpointExtraOptions {\n  key?: (params: any) => string;\n  sideEffect?: true | undefined;\n  schema?: Schema;\n}\n```\n\n### EndpointOptions\n\n#### key: (params) => string\n\nSerializes the parameters. This is used to build a lookup key in global stores.\n\nDefault:\n\n```typescript\n`${this.fetch.name} ${JSON.stringify(params)}`\n```\n\n### sideEffect: true | undefined\n\nDisallows usage in hooks like `useResource()` since they might call fetch\nan unpredictable number of times. Use this for APIs with mutation side-effects like update, create, deletes.\n\nDefaults to undefined meaning no side effects.\n\n### schema: Schema\n\nDeclarative definition of where `Entities` appear in the fetch response.\n\nNot providing this option means no entities will be extracted.\n\n```tsx\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n}\n\nconst UserDetail = new Endpoint(\n    ({ id }) ⇒ fetch(`/users/${id}`),\n    { schema: User }\n);\n```\n\n### Endpoint\n\n#### extend(EndpointOptions): Endpoint\n\nCan be used to further customize the endpoint definition\n\n```typescript\nconst UserDetail = new Endpoint(({ id }) ⇒ fetch(`/users/${id}`));\n\n\nconst UserDetailNormalized = UserDetail.extend({ schema: User });\n```\n\n### Index\n\n```typescript\nexport interface IndexInterface<S extends typeof Entity> {\n  key(parmas?: Readonly<IndexParams<S>>): string;\n  readonly schema: S;\n}\n```\n\n```typescript\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Index } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n  static indexes = ['username'] as const;\n}\n\nconst UserIndex = new Index(User)\n\nconst bob = useCache(UserIndex, { username: 'bob' });\n\n// @ts-expect-error Indexes don't fetch, they just retrieve already existing data\nconst bob = useResource(UserIndex, { username: 'bob' });\n```\n","readmeFilename":"README.md","_id":"@rest-hooks/endpoint@2.2.0-beta.1","_nodeVersion":"16.13.2","_npmVersion":"lerna/4.0.0/node@v16.13.2+x64 (linux)","dist":{"integrity":"sha512-A8RE6LMpRvr3hc0x+B90L0qmGZdXSABpr5fUfbj3RjpVnCzrOxcWD4aMEu1mD08yT05NwgUBNls7DxzSMTcKCw==","shasum":"885ecf8834b1a43c98c946311eeb83a46391cf3f","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.2.0-beta.1.tgz","fileCount":76,"unpackedSize":170888,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh94WwCRA9TVsSAnZWagAAIs0P/RM3+YPCPdRTEYwbPX86\nYUCGClY1MGBplakdzqKVoMNcXSl8jcdtAaEe81yL8OX+nWeDfxnrF4FuG8WH\nbilr7K9wzWZMZu6xjKBPv4dWe6dY+EbRbyKF/C/DwFd1DHOojM8N0QnOAw/k\ncZAbauAcXGVq99XTx6Z4NHxa6W4p1WHc27W71EEHmzjO6i4JK35WksO+mm1z\nxgLEyOVTAA42NfMlCZYfZrBY8tKHpKICuCvIJMUa1Fnj1bklHTt7x3eRdz5y\nGDztvSWyNt3YSf1chSpmO9u9jWWiIfhJ79xDl1Yc2ZvobrvKuZsDXs9Db3Yh\nscUWuJF8I/tn0XLUoN8VFEGr8U31fJX4RDFFVC9yRiqmfa9/JcdHrtGA6owY\no7WfbC3v7rLwJ+DGqawopYG7lPKaifmTbmYqQLkDuMqRitj0kT/uJzDVSLP3\nGQ9H8LJD5RE9Lr4GKa7+UwLL9SymvD3wznTMirNpSmbTv80lr8Wjw04xewZ4\nfE/OcEXePAsN3nx8YmqEFeXE9NiYVQhLs4L8QazDgZSWJaObRv+h2gvOkfNT\n6yhIuYlHF59KT6X6EsMF+q9j3VUpxgxuzaMfUrbM/pn4YyACcyMXy3XfOY2j\nb3M4WzxmJc3yB1zD2sFVf6mwnFU2uiAMrL/JGWmuT9zglXYU3R0hmQfvunhr\nA/2i\r\n=BIBp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBTKrymXxu/f5BgjS+KI+ov8iwzdh0NNqtyl16FkACVVAiAkj+2f0yoMoX0fB3obNbtWbyyiTjOf9ttEz+jcqfWaeQ=="}]},"_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/endpoint_2.2.0-beta.1_1643611567919_0.35360802042467676"},"_hasShrinkwrap":false},"2.2.0-beta.2":{"name":"@rest-hooks/endpoint","version":"2.2.0-beta.2","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/endpoint(.+)$\":\"./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/endpoint(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^8.2.0-beta.0"},"gitHead":"aced2c193d048d724a1ec09e7897edb45e483292","readme":"# TypeScript Standard Endpoints\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/endpoint?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/endpoint)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDeclarative, strongly typed, reusable network definitions for networking libraries.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs/api/Endpoint)**\n\n</div>\n\n### 1) Define the function\n\n```typescript\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nconst fetchUser = ({ id }) ⇒ fetch(`/users/${id}`).then(res => res.json());\nconst UserDetail = new Endpoint(fetchUser);\n```\n\n### 2) Reuse with different hooks\n\n```tsx\nfunction UserProfile() {\n  const user = useResource(UserDetail, { id });\n  const updateUser = useFetcher(UserDetail);\n\n  return <UserForm user={user} onSubmit={updateUser} />\n}\n```\n\n### 3) Or call directly\n\n```typescript\nconst user = await UserDetail({ id: '5' });\nconsole.log(user);\n```\n\n## Why\n\nThere is a distinction between\n\n- What are networking API is\n  - How to make a request, expected response fields, etc.\n- How it is used\n  - Binding data, polling, triggering imperative fetch, etc.\n\nThus, there are many benefits to creating a distinct seperation of concerns between\nthese two concepts.\n\nWith `TypeScript Standard Endpoints`, we define a standard for declaring in\nTypeScript the definition of a networking API.\n\n- Allows API authors to publish npm packages containing their API interfaces\n- Definitions can be consumed by any supporting library, allowing easy consumption across libraries like Vue, React, Angular\n- Writing codegen pipelines becomes much easier as the output is minimal\n- Product developers can use the definitions in a multitude of contexts where behaviors vary\n- Product developers can easily share code across platforms with distinct behaviors needs like React Native and React Web\n\n### What's in an Endpoint\n\n- A function that resolves the results\n- A function to uniquely store those results\n- Optional: information about how to store the data in a normalized cache\n- Optional: whether the request could have side effects - to prevent repeat calls\n\n## API\n\n`@rest-hooks/endpoint` defines a standard `interface`\n\n```typescript\ninterface EndpointInterface {\n    (params?: any, body?: any): Promise<any>;\n    key(parmas?: any): string;\n    schema?: Readonly<S>;\n    sideEffects?: true;\n    // other optionals like 'optimistic'\n}\n```\n\nas well as a helper `class` to make construction easier.\n\n```typescript\nclass Endpoint<F extends () => Promise<any>> {\n  constructor(fetchFunction: F, options: EndpointOptions);\n\n  key(...args: Parameters<F>): string;\n\n  readonly sideEffect?: true;\n\n  readonly schema?: Schema;\n\n  fetch: F;\n\n  extend(options: EndpointOptions): Endpoint;\n}\n\nexport interface EndpointOptions extends EndpointExtraOptions {\n  key?: (params: any) => string;\n  sideEffect?: true | undefined;\n  schema?: Schema;\n}\n```\n\n### EndpointOptions\n\n#### key: (params) => string\n\nSerializes the parameters. This is used to build a lookup key in global stores.\n\nDefault:\n\n```typescript\n`${this.fetch.name} ${JSON.stringify(params)}`\n```\n\n### sideEffect: true | undefined\n\nDisallows usage in hooks like `useResource()` since they might call fetch\nan unpredictable number of times. Use this for APIs with mutation side-effects like update, create, deletes.\n\nDefaults to undefined meaning no side effects.\n\n### schema: Schema\n\nDeclarative definition of where `Entities` appear in the fetch response.\n\nNot providing this option means no entities will be extracted.\n\n```tsx\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n}\n\nconst UserDetail = new Endpoint(\n    ({ id }) ⇒ fetch(`/users/${id}`),\n    { schema: User }\n);\n```\n\n### Endpoint\n\n#### extend(EndpointOptions): Endpoint\n\nCan be used to further customize the endpoint definition\n\n```typescript\nconst UserDetail = new Endpoint(({ id }) ⇒ fetch(`/users/${id}`));\n\n\nconst UserDetailNormalized = UserDetail.extend({ schema: User });\n```\n\n### Index\n\n```typescript\nexport interface IndexInterface<S extends typeof Entity> {\n  key(parmas?: Readonly<IndexParams<S>>): string;\n  readonly schema: S;\n}\n```\n\n```typescript\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Index } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n  static indexes = ['username'] as const;\n}\n\nconst UserIndex = new Index(User)\n\nconst bob = useCache(UserIndex, { username: 'bob' });\n\n// @ts-expect-error Indexes don't fetch, they just retrieve already existing data\nconst bob = useResource(UserIndex, { username: 'bob' });\n```\n","readmeFilename":"README.md","_id":"@rest-hooks/endpoint@2.2.0-beta.2","_nodeVersion":"16.13.2","_npmVersion":"lerna/4.0.0/node@v16.13.2+x64 (linux)","dist":{"integrity":"sha512-gpZHYHNGL3JVBYv3YGl1beWwDXSMl0px0VDyLQc6HrxHsJbVJFJQtjzGdIzM0sBdO6T+z27s3NPrVQ9oeNJqeg==","shasum":"7c986b9df7647c6bd86bddfdfd6c8f3afadc3c7e","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.2.0-beta.2.tgz","fileCount":76,"unpackedSize":171308,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiCyB8CRA9TVsSAnZWagAAqB8QAI5XAckr0aemZ3x+QkJZ\nt0kiUCPy+oZJ117NgKL6SKfNff3lTf5Yud5jtl1TTel6ZTYyc4RTyuy0Md1u\nN4m8NOQrlXzGsQ17qq2F5vUV3J1wUijpd7pV68I6lLVDOwWdXaws8x9H60/Q\niPMcwTiqug7e0DTzIuCrzn/IZTbavTKWgqW1S0EreC/fzJlVBVlvl9eswfWe\nsTXpbqjYDTliH0D9+ZGguPhPXONgVq6SSHP2mY8BGlVdrVq5KmFp+4ehBSsB\nKfSxnFMlRYlejKnrKrFB2zWt0DPOVTgg/KsSCF7Pc+dCqmcFbVuLIdzQLDVv\nwcHHigfsU/j7/nCkrAZj6SeP3sNnp3SiCqdSTZ0gnKuckqv2cvhrNhg9SvaN\n5/X9R89w8daLekYTvYG0KrtLB+RVIkOnRNpAF2u545LOU1XlyLIoFs3pJbDf\nm1DZNdSF8dn81zGwiEg9bmsC5iNh5YFdckr+m4YuFNKKYiIEjtymJ26WEu2I\nCIuN9z5NVFC74PVATbIDGbiUBvNNAoFJJLhVf9AD3V8OQn2BTUbikslOHAQH\nAATwvzHtSQQ9Be9+zhQMZSch1+WpQDC5+M2+DmwzKfc5/oXEkfwmZlNNP711\ns7c2J1/xLTqWDT6hPnq4XA7vs8kEZ7kuaUNVPmI2ZN4zPC314EXYblM5O9e9\nRwYO\r\n=Wc/d\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3Q41AHITHlW7lf6sqyHRzopBGWubm9eUtMtPo9vajygIhAPSCejSGXlHb0D7vvHy74W9R+U2BVcwGFY2dt8uwVfnW"}]},"_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/endpoint_2.2.0-beta.2_1644896379945_0.14762542472777018"},"_hasShrinkwrap":false},"2.2.0-beta.3":{"name":"@rest-hooks/endpoint","version":"2.2.0-beta.3","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/endpoint(.+)$\":\"./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/endpoint(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^8.2.0-beta.1"},"gitHead":"e697b70e8bbeb0f9bac4ab50718141b0f11ee1e7","readme":"# TypeScript Standard Endpoints\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/endpoint?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/endpoint)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDeclarative, strongly typed, reusable network definitions for networking libraries.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs/api/Endpoint)**\n\n</div>\n\n### 1) Define the function\n\n```typescript\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nconst fetchUser = ({ id }) ⇒ fetch(`/users/${id}`).then(res => res.json());\nconst UserDetail = new Endpoint(fetchUser);\n```\n\n### 2) Reuse with different hooks\n\n```tsx\nfunction UserProfile() {\n  const user = useResource(UserDetail, { id });\n  const updateUser = useFetcher(UserDetail);\n\n  return <UserForm user={user} onSubmit={updateUser} />\n}\n```\n\n### 3) Or call directly\n\n```typescript\nconst user = await UserDetail({ id: '5' });\nconsole.log(user);\n```\n\n## Why\n\nThere is a distinction between\n\n- What are networking API is\n  - How to make a request, expected response fields, etc.\n- How it is used\n  - Binding data, polling, triggering imperative fetch, etc.\n\nThus, there are many benefits to creating a distinct seperation of concerns between\nthese two concepts.\n\nWith `TypeScript Standard Endpoints`, we define a standard for declaring in\nTypeScript the definition of a networking API.\n\n- Allows API authors to publish npm packages containing their API interfaces\n- Definitions can be consumed by any supporting library, allowing easy consumption across libraries like Vue, React, Angular\n- Writing codegen pipelines becomes much easier as the output is minimal\n- Product developers can use the definitions in a multitude of contexts where behaviors vary\n- Product developers can easily share code across platforms with distinct behaviors needs like React Native and React Web\n\n### What's in an Endpoint\n\n- A function that resolves the results\n- A function to uniquely store those results\n- Optional: information about how to store the data in a normalized cache\n- Optional: whether the request could have side effects - to prevent repeat calls\n\n## API\n\n`@rest-hooks/endpoint` defines a standard `interface`\n\n```typescript\ninterface EndpointInterface {\n    (params?: any, body?: any): Promise<any>;\n    key(parmas?: any): string;\n    schema?: Readonly<S>;\n    sideEffects?: true;\n    // other optionals like 'optimistic'\n}\n```\n\nas well as a helper `class` to make construction easier.\n\n```typescript\nclass Endpoint<F extends () => Promise<any>> {\n  constructor(fetchFunction: F, options: EndpointOptions);\n\n  key(...args: Parameters<F>): string;\n\n  readonly sideEffect?: true;\n\n  readonly schema?: Schema;\n\n  fetch: F;\n\n  extend(options: EndpointOptions): Endpoint;\n}\n\nexport interface EndpointOptions extends EndpointExtraOptions {\n  key?: (params: any) => string;\n  sideEffect?: true | undefined;\n  schema?: Schema;\n}\n```\n\n### EndpointOptions\n\n#### key: (params) => string\n\nSerializes the parameters. This is used to build a lookup key in global stores.\n\nDefault:\n\n```typescript\n`${this.fetch.name} ${JSON.stringify(params)}`\n```\n\n### sideEffect: true | undefined\n\nDisallows usage in hooks like `useResource()` since they might call fetch\nan unpredictable number of times. Use this for APIs with mutation side-effects like update, create, deletes.\n\nDefaults to undefined meaning no side effects.\n\n### schema: Schema\n\nDeclarative definition of where `Entities` appear in the fetch response.\n\nNot providing this option means no entities will be extracted.\n\n```tsx\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n}\n\nconst UserDetail = new Endpoint(\n    ({ id }) ⇒ fetch(`/users/${id}`),\n    { schema: User }\n);\n```\n\n### Endpoint\n\n#### extend(EndpointOptions): Endpoint\n\nCan be used to further customize the endpoint definition\n\n```typescript\nconst UserDetail = new Endpoint(({ id }) ⇒ fetch(`/users/${id}`));\n\n\nconst UserDetailNormalized = UserDetail.extend({ schema: User });\n```\n\n### Index\n\n```typescript\nexport interface IndexInterface<S extends typeof Entity> {\n  key(parmas?: Readonly<IndexParams<S>>): string;\n  readonly schema: S;\n}\n```\n\n```typescript\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Index } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n  static indexes = ['username'] as const;\n}\n\nconst UserIndex = new Index(User)\n\nconst bob = useCache(UserIndex, { username: 'bob' });\n\n// @ts-expect-error Indexes don't fetch, they just retrieve already existing data\nconst bob = useResource(UserIndex, { username: 'bob' });\n```\n","readmeFilename":"README.md","_id":"@rest-hooks/endpoint@2.2.0-beta.3","_nodeVersion":"16.14.0","_npmVersion":"lerna/4.0.0/node@v16.14.0+x64 (linux)","dist":{"integrity":"sha512-WTW10aDNsW7Y6f1eSSV5ZEG0j8UlUqKpoWNELyfPyeRhVDqdgQsopx1QeipnWIGqDfQ8QPiVr/DE8/85rylnpQ==","shasum":"8605f913ca135e300995b4b684d9c86a3117051d","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.2.0-beta.3.tgz","fileCount":76,"unpackedSize":171807,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiJ6iPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpJrhAAiKhSQzNNCwO4JriEIJEdqyRsh3r+8egElj9fzkK00/0pqvo2\r\neQHdOuAbQkJhYXgtLe0OpCQ89eS8egmP6Xfqe35hcDyS5+u7+RXE2W21mSlo\r\nJmtEl5ubp7UFYKI223JBdGP7i9KIMoSnVP8Gbg5HuME0HSoySQ7u9OnMdrPi\r\ny4vbwtkm9Zl7W/QRBbpBustZyiWz6cjPbNQgqOKcIFBuaMvonhW3Br/QNqwM\r\nx/yjWTbf02zw4pwnwLH2verd87riF+6fz1zH8Ya4oZghZ35y8vgnp7Xl14Dq\r\nMXxqBela/Q1zi9hyMaIXH9ZB/2D6pU/u10x/CDZ2SusiRlkkGE1D8ah+45q7\r\nVY3St0K3p9ti5HpZFqLQLU7Wz221lXdGVj9EA/OPbBQPARrdUeX8s/sJBaxS\r\nK7vS2v+VGsGeJIkGN8wxD53dQDgt3j4lBHGkLzkXJHGowY0sWTLoilcZqXPd\r\netwCDNSmhFFqg6eo1tLLAg1IkeD4xptZdeHx8FZQTt7ateG+P08jycrXK9FM\r\ntKczJ9HyPN9++9gAAzqJr1CsKuhZCuO+quCijwP9oi4TTYFt3RQ9g9hAscS/\r\nbpWOzqOVgEkIcaocvfqGMsyNHOhp8m9Ocpf04C4db/cJi7Nx17EmbFa5ee4a\r\nJOc7fwlH4YPj2cADky/KUqdv6JkAKGfWPDQ=\r\n=V0Oz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCuxDTWdu1rDZBn7tCulD9S1LGE5kjyplXNlYN+qE59IgIgOo9678+xuPKiGOsFtouFZ5Zz5ScxedmfFHr3HWnZNlw="}]},"_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/endpoint_2.2.0-beta.3_1646766222898_0.78304294898358"},"_hasShrinkwrap":false},"2.2.0-beta.4":{"name":"@rest-hooks/endpoint","version":"2.2.0-beta.4","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/endpoint(.+)$\":\"./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/endpoint(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^8.2.0-beta.2"},"gitHead":"b435cd1165a996730b9353875603bfb97add2cdd","readme":"# TypeScript Standard Endpoints\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/endpoint?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/endpoint)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDeclarative, strongly typed, reusable network definitions for networking libraries.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs/api/Endpoint)**\n\n</div>\n\n### 1) Define the function\n\n```typescript\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nconst fetchUser = ({ id }) ⇒ fetch(`/users/${id}`).then(res => res.json());\nconst UserDetail = new Endpoint(fetchUser);\n```\n\n### 2) Reuse with different hooks\n\n```tsx\nfunction UserProfile() {\n  const user = useResource(UserDetail, { id });\n  const updateUser = useFetcher(UserDetail);\n\n  return <UserForm user={user} onSubmit={updateUser} />\n}\n```\n\n### 3) Or call directly\n\n```typescript\nconst user = await UserDetail({ id: '5' });\nconsole.log(user);\n```\n\n## Why\n\nThere is a distinction between\n\n- What are networking API is\n  - How to make a request, expected response fields, etc.\n- How it is used\n  - Binding data, polling, triggering imperative fetch, etc.\n\nThus, there are many benefits to creating a distinct seperation of concerns between\nthese two concepts.\n\nWith `TypeScript Standard Endpoints`, we define a standard for declaring in\nTypeScript the definition of a networking API.\n\n- Allows API authors to publish npm packages containing their API interfaces\n- Definitions can be consumed by any supporting library, allowing easy consumption across libraries like Vue, React, Angular\n- Writing codegen pipelines becomes much easier as the output is minimal\n- Product developers can use the definitions in a multitude of contexts where behaviors vary\n- Product developers can easily share code across platforms with distinct behaviors needs like React Native and React Web\n\n### What's in an Endpoint\n\n- A function that resolves the results\n- A function to uniquely store those results\n- Optional: information about how to store the data in a normalized cache\n- Optional: whether the request could have side effects - to prevent repeat calls\n\n## API\n\n`@rest-hooks/endpoint` defines a standard `interface`\n\n```typescript\ninterface EndpointInterface {\n    (params?: any, body?: any): Promise<any>;\n    key(parmas?: any): string;\n    schema?: Readonly<S>;\n    sideEffects?: true;\n    // other optionals like 'optimistic'\n}\n```\n\nas well as a helper `class` to make construction easier.\n\n```typescript\nclass Endpoint<F extends () => Promise<any>> {\n  constructor(fetchFunction: F, options: EndpointOptions);\n\n  key(...args: Parameters<F>): string;\n\n  readonly sideEffect?: true;\n\n  readonly schema?: Schema;\n\n  fetch: F;\n\n  extend(options: EndpointOptions): Endpoint;\n}\n\nexport interface EndpointOptions extends EndpointExtraOptions {\n  key?: (params: any) => string;\n  sideEffect?: true | undefined;\n  schema?: Schema;\n}\n```\n\n### EndpointOptions\n\n#### key: (params) => string\n\nSerializes the parameters. This is used to build a lookup key in global stores.\n\nDefault:\n\n```typescript\n`${this.fetch.name} ${JSON.stringify(params)}`\n```\n\n### sideEffect: true | undefined\n\nDisallows usage in hooks like `useResource()` since they might call fetch\nan unpredictable number of times. Use this for APIs with mutation side-effects like update, create, deletes.\n\nDefaults to undefined meaning no side effects.\n\n### schema: Schema\n\nDeclarative definition of where `Entities` appear in the fetch response.\n\nNot providing this option means no entities will be extracted.\n\n```tsx\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n}\n\nconst UserDetail = new Endpoint(\n    ({ id }) ⇒ fetch(`/users/${id}`),\n    { schema: User }\n);\n```\n\n### Endpoint\n\n#### extend(EndpointOptions): Endpoint\n\nCan be used to further customize the endpoint definition\n\n```typescript\nconst UserDetail = new Endpoint(({ id }) ⇒ fetch(`/users/${id}`));\n\n\nconst UserDetailNormalized = UserDetail.extend({ schema: User });\n```\n\n### Index\n\n```typescript\nexport interface IndexInterface<S extends typeof Entity> {\n  key(parmas?: Readonly<IndexParams<S>>): string;\n  readonly schema: S;\n}\n```\n\n```typescript\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Index } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n  static indexes = ['username'] as const;\n}\n\nconst UserIndex = new Index(User)\n\nconst bob = useCache(UserIndex, { username: 'bob' });\n\n// @ts-expect-error Indexes don't fetch, they just retrieve already existing data\nconst bob = useResource(UserIndex, { username: 'bob' });\n```\n","readmeFilename":"README.md","_id":"@rest-hooks/endpoint@2.2.0-beta.4","_nodeVersion":"16.14.0","_npmVersion":"lerna/4.0.0/node@v16.14.0+x64 (linux)","dist":{"integrity":"sha512-jhJnIRa33tt94zBup6/YwUss4zyD9k52lt66zpUVl4iQwGxZqJjlnSB95Wt4HqELkLJUj7CkmAvBtWxe2Ln5Jg==","shasum":"15123ba8510b5a9818499f5a889870b22034fbcf","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.2.0-beta.4.tgz","fileCount":76,"unpackedSize":172023,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiKXYHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqyUQ//Y2hV9nifUYUdJD7g7CDvvxr6YnMd2vjtNuJ1muIYPEnvVfRi\r\nntrpMzQW3+SIhx62/we0McFJHDR+mMnGgso5CIzOaHPlfVtJjeffIRGE63uZ\r\nm38rH+QhvWOHlT3UDmizTBV/t3dzRVErhtVewK1pkc+Jl7mo4+5INGYSFTPl\r\ndC1CvIZstDF54JfaYt6UDmNUMTE2lwOrGCUbvdu7VQ0ELS4D5UGI2lmlXQed\r\nP4/bymFOmta+CV0gfS1llHkOrh3qbECyBwFMCbTl119o+bMKVulxCoiKGUca\r\n+G8RpDh1a2bp7bfJBMxK3Cc/ApSM1iqKK8dcZ6vstguaiFQ4wm7oVM4Ljoph\r\nlBKqMQomJbhC+G/LGDvnVGLyf72ff9GpNAiEquOFMlKd//pnRo1gNtzaV1rH\r\n28BuiSb1m8ZRxZikBK4qTRZ36EziUFfmn0ZqpvGxl4e5thx3vpdoni8shOj+\r\nT4dBVQ1foyiePOMBkuY1AgNp067CtcpX/pGYqk9TS0xkwISyQyTuh7brxq5C\r\neO1SSxpMmX/cfvit7D5NsgtejKfDWl6AYUYLPO9FhWf1rU3uP/+3UzwXVEao\r\n0M2/uSt2ywoEp8xAf7DbNzXjhP8G+MGthU73+lc6ErrwQFw381eHpw0zUweT\r\nUwjomcUnNmwyaWD1UBkJl064mDPgGEktJq8=\r\n=m4LU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdLC06d7+BAVTHuhE2v378RNg9ocMzzFjD9NgLatBt7QIhAO8/0XoSwtUi280nsBWKPU83Px1/kKU/ERQJwPV2r9sy"}]},"_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/endpoint_2.2.0-beta.4_1646884358960_0.10796212301082764"},"_hasShrinkwrap":false},"2.2.0":{"name":"@rest-hooks/endpoint","version":"2.2.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/endpoint(.+)$\":\"./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/endpoint(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^8.2.0"},"gitHead":"1300e60bb71b7f2687802fe13a52a04f88fc304b","_id":"@rest-hooks/endpoint@2.2.0","_nodeVersion":"16.14.0","_npmVersion":"lerna/4.0.0/node@v16.14.0+x64 (linux)","dist":{"integrity":"sha512-5Br5z6qbCA0O7OShrZgLLSATAM6pE9SJDAD8ttvj9qaXUtjAH9K0Qga3s60WOUiOuexDEtfg3BY+1rDF5WKsSA==","shasum":"f23108db15f299c61dc9383c6ab94723a3507a26","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.2.0.tgz","fileCount":76,"unpackedSize":174244,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiMuFvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq7bBAAmk/HFuQExv7aDvivzn65tpwhYOuMM1UhV2XYpbbRsfkSxZeV\r\nZgfSEUHYY7C9Hem3aC8A5Dl5gH5UIXt3ZigJfAC7BRjQt1JMVgVyoFRwtNei\r\nv3Zi/cK9ko3vjIyY7TzhQkap1b5jVcqzYDwpRn2tuguuxz9SDgsfY/v9z708\r\n3bWFP/5THaSLkShLa6dS+zedhLG5kLbMpvt+/9Avs9YaG2yC0iJj4/Ma4aea\r\n3ypoaWef7vypaDgME5+sqctxyoIj2iiFyZsS6yj3o51PeYqaWrLjwHtJ0ssy\r\n1W4tMjQH4wTqga5QPS0D3grSCQ2xuantxW95xhNNfQvpRPwaUjdKuOiQmbdH\r\nGLtsuRAtxJResdn/tGEIggopYq4X8FquPCibYTYAlgObJ8r8G6fQV0mOvfqa\r\nhADk/eqpl2uLxjWS2LGDK/aL6JLiFFSY2S+s0hrSNIj7ZEkjjJmlZTHG1pI2\r\ncK7ci3LtNtnzc2gs6L8paqdT2bsmv8Yvg/QUxPknN7ykvfx3yBzaXhO2BwvK\r\nMSbu0Knaah6QkmlczJDhSCwYIBa7wd2A9aecAkGKTqHI6GwxpguX4GtI72Hs\r\no8DdQcCcvlvLXWwyK5nYw4ObRmRf3t0tf0G4tleSXef5kKwGiobvyk7HxasJ\r\nbsOnINYRskhOCk1T09MxOJ9yaUSZn6OKC4s=\r\n=YTgk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAuRV/qf3IOiQZdkbKjoHUUwcG8E2zK5Xdf3SW5GkqvnAiEAlCitw+YqJ/n0BZsDpVVGc2BVCyV4LsEWrwYhVrVEJ3Y="}]},"_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/endpoint_2.2.0_1647501679010_0.24263179247778432"},"_hasShrinkwrap":false},"2.2.1":{"name":"@rest-hooks/endpoint","version":"2.2.1","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/endpoint(.+)$\":\"./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/endpoint(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^8.2.1"},"gitHead":"4472b9b571cb652f91fdeffc8af26c7c70b58163","_id":"@rest-hooks/endpoint@2.2.1","_nodeVersion":"16.14.2","_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","dist":{"integrity":"sha512-xQNiC9sT00j3ZjxuNbl95RhLLRZ6gjXvKUaRBHOsQmWZ59tsKd+4QsJmZC8Bhj+Tqk/KbHVLkFVX2i58GXtNsw==","shasum":"684f15f3e4189b6cddb7e1b238e2ac62bef3f11a","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.2.1.tgz","fileCount":76,"unpackedSize":174853,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBpaE0GlOjV5uX2EZtigp9+CJ31b+/wcGgxNKU9jYwYXAiBloRxfQJn0QNz6UPer9tUZ5rBsXGyWCYRRzQQ0BgKTYw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiR4yQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq/Qg//V7thguf1HCvNL530sYb/KrKpL1K0eUfHATxrxtF/OWMec4Cz\r\nCqSaMDv8qACXzpPCecNiNsmmikixYLrulTu6OIk7qAyKfnloPOcPcGkvobVh\r\nlyJ/Z5sJjOXazCGH37LaahcfiGiW2lcNDtJQ+yl3+1msu15UoAvsB4vKI1+Z\r\nRjBjK7JUFMmP53kW/FGBbtd6A6S8v/S3JaC5+QI0BMFUFgamUJvH1xd7oNa1\r\nGqP/F3WGt87tG9QIe4Hgl9zhfZnYqNDVknvSBxCcQCTeYigGWxZYgssflbWy\r\nqjdEQJ1wlhHRANQH9k7jzRafxPGOMdvPDzOLaY5bUiAsg8qIsjFshhBndDvo\r\nt/uF77v2p1nCZcEEE+n6vanU82iNvtvvsnpqnWw+mSxRMLeqkIR8kxArQjoE\r\nDcHGSLIoEae2VdUoq2Muw4GcYCTzrg2yx3qj2MxR2JjteLef1zJC8gzCMiOR\r\nH8gAUjypKhJA5X2qThrlRsP7P7VH0BLKyFh5SFZ0H9j6N/9h2oV13ggjqvS7\r\noAE+ynLQ/I1/a5BPk9NM69Q2+IkRdEqMPCBRMb7dR+lpk6VxA5tg1n5Kd7p3\r\npNdqyKmbIhlZSDn7kqHGxUhVpIyvnYvwa7WDkmAtmE+f7tvkkjhaEkZvRikm\r\ndjK5TCfuA7KpbVT1K6Dj7Nj51pnqzcsdcDE=\r\n=ITGf\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/endpoint_2.2.1_1648856208297_0.19428003781490766"},"_hasShrinkwrap":false},"2.2.2":{"name":"@rest-hooks/endpoint","version":"2.2.2","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/endpoint(.+)$\":\"./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/endpoint(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^8.2.2"},"gitHead":"18a27d147b3857c62797db88a3b3c34d9c1c418c","_id":"@rest-hooks/endpoint@2.2.2","_nodeVersion":"16.14.2","_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","dist":{"integrity":"sha512-Q2pUwcFu6OvyB/kSVR1Njq/H1zRzCBi+TRVZFT+0BFQv3bFlj5In/fXMXLMqi8wFRderakTd3xb0ezcteiczBg==","shasum":"40f52cbb73df85a9c03c4b69385e5895b081cdc3","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.2.2.tgz","fileCount":76,"unpackedSize":175049,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBz7S9nOOrfxsbSqu9jP0ul8Z9hfrEzJUOmmo41JaPMgIhAIkKJYMWiQXnNdcM2Qf1P115N4smLcciorMG36L+uccv"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiSLE+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrxlxAAkEhReK9vKtgABptm9IPkkZDH8gs5xHTkidcG0PfveCxGQlFs\r\nGsLn4+YdswzRbUibUJ46mYKrEze+XGorsAzMpV2RYJAGrTdwsXIQy8qtywzF\r\nDwJ7CdRGf61iHp92abdZfA7xmAuIE37AZkkPl+DWCjWSPrsaV/1fH4prA3QE\r\nXfPrnT76oJWREQ00+gaIfQS6jwPtK8HU2UBTTfPcwXrsOytIL3jXhgPNvsx6\r\nHuzNMPA8u/EnDfr9T7IgLKFksbglBWtQr8TGRHvSo5xgLs7r4Doa2Aj219E+\r\ni2rL6Shadt9MGn6llSrb2KJSFpqrnQT/WtXa9966T1qL1ruO0XEEYW3oLzmH\r\n+F31VusGruKmgcS9VGinmhdcFoWPwetNlvTC9WgLLyhRenftYTCqGOLq4vCA\r\ns1icr5GbL0mk0qNjffi05VwjHP+h9DDfxURnDbwJYaWJbwSfFp0n+6HNr4MF\r\nRSyNIDM6qQzpC9LZqEH351FyW0EKBirWum57mpXQYTcfdvzhx5rUsegv1oSI\r\nzLCWkix/LdT+k+tLgLeTM7ZwJSCIoCm/iRY+EV/BvuuWk0+K6QHsROmh80VY\r\nfW+jSNHljGHm3IBcSgt1K5HJgbNWlaHfvRDJqoMv6mN6pCIi19lcznwjWw2B\r\n8rrG5NFSaR2rzDyeg7ABY8GKmDJmV4hdZoA=\r\n=Q0L6\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/endpoint_2.2.2_1648931133817_0.899274118085279"},"_hasShrinkwrap":false},"2.2.3":{"name":"@rest-hooks/endpoint","version":"2.2.3","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/endpoint(.+)$\":\"./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/endpoint(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^8.2.3"},"gitHead":"2f4974d8318442dca2206cc4dea85da34f07b371","_id":"@rest-hooks/endpoint@2.2.3","_nodeVersion":"16.14.2","_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","dist":{"integrity":"sha512-3UKG7s+o4WGAu1FHTs0R43O/QYYzNIFF2CNNbNeMBQ7RqYh+qW2y5eR2bcHtqjMWNXiJW1FlTWCoBWtbMcE6dQ==","shasum":"f385d53262649dfc1c9e3482a3f284210d59ca5f","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.2.3.tgz","fileCount":76,"unpackedSize":175245,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBwxnGWvDGrnbAf/8fCJPvXcjmz9bEB+8MTJN9X49U2TAiEAlF3FrKxdUUoyN/Snp9tNWfc4GhVoJ1dszziQi5ta6NA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiT360ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq7rRAAnLilCfVsZq7ryaj4tIKIK5E4E1MGiBUMjvV7dxcdW2n8bVxw\r\nCpOB11MbALtQlO6ZCs9DMW8h8GpNzQg/1h8pK8o54z5DWJb2Zk9iLXFxUYxN\r\n0qerD2F4BfwkbZFEkJ95otFryknkT29hGVD/Zfz+mW8xLeHnFsWJozOlzASz\r\nEPifYGfJ/+tOjW3pRG+fiRysOTyAxAxJnlhJebY18JUlcCbU3ZoSzRLNNY1N\r\nkj9K/uwZmH5ZdQZMixeTR0WD9F8M1OhHnCdApCEhMX24WcQC4Kv29uqqb30t\r\nS4ilgvmXTqBqioJztIiL9v3TXBriii/K5I6yo0HmRaSo9V9F/5uJqWsKV9zS\r\n4oL6MZrTTwH3VdSvU84xsxfZ4iCNXOUMqah/6yvHwBrewlAc0jJjZ7NglY3e\r\n0Wdw928DVfBNFWktqDtR/kPisECIPIrySKdJS2ORBJwugGLxQLZyJi6PMTxx\r\n4cyg8oHIY5bCYKjDwK0XcPF88mnF34jZ2EqQgqbS8NiCJI3sH0EAhh2wvmnc\r\nKdTAzvhMmmSIGZuksr6Xfwq418ojnJttRYnMGRlMzgDBACMsE/qw80xDtQoI\r\nktlktzaP3XHmEGXBi9ieL3UXiBbysY8fiuEUil1P2zRTWZ0PR8GGldP+OCKI\r\nerw2o/1sVMGFLsk9J5nz/YcRdo9p9dSxrus=\r\n=RXKw\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/endpoint_2.2.3_1649376948001_0.32419648769302967"},"_hasShrinkwrap":false},"2.2.4":{"name":"@rest-hooks/endpoint","version":"2.2.4","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/endpoint(.+)$\":\"./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/endpoint(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^8.2.3"},"gitHead":"9ca7b83cc00374d2a0ea68f43a6ab2d3aad8cfd5","_id":"@rest-hooks/endpoint@2.2.4","_nodeVersion":"16.14.2","_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","dist":{"integrity":"sha512-6bVOt6Z0rFgSBgnSu6zJNsZOekCTt4656Ics87FLa0zMVLg/z+s1orX4WiVn2I8pf63jZ3DeY/6STTf5//VIqw==","shasum":"3da1486ebbe7cb8c38ea2ea84a66820c78c126e9","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.2.4.tgz","fileCount":76,"unpackedSize":175610,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfJ/UUODclHiYUImL5obWAQlAOoPuuUHJK9yGOln/REAIhAMLkufb744NOEhuKXBbBiLaBglfmDXH08hujvG6SDU3Q"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiVJxEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrrRw//UGO66Me3YJFpMsgxS0HY0JW1sPuJH19AVDv9KzNDyj7djx79\r\nArPgcCk9p3I8bLxDdq1lYsMZIAZzdPbnLgXsnxI6kQiFc+UfFmebJXxT3jPZ\r\nb1fSDI6DJsljTcwSEQRaaZWP96MQOI/cpA3uWIBcsTZXlgEe4HihDPfGII7u\r\nl3sgJT2POYIpaPcz3YSetCBnM3qjesujfmifBgk2CeUuBAtI+YYGqQZPyDof\r\nUIrNM12Lp4OODL5h3GYf7ymaiAzLMY/dJ9IIQ+hHCoN8pr6Gwf5FRkDrZnxk\r\noGgDWzV2UotW9czgTn3WIp0L52DsQS8vZye2pG3j2M9Ku4uY4Q1m0JqX89nr\r\nwMzIwTBimZP2PLLFvrY1QGyoGXZ+1D0WDlQhM8ShAI1udGi5neyUtvuj4IVb\r\n70ixXNjY1BPE/IOGm29fb45vW7xVON/3fSPpeCEtRxcwaGFdaTYw+et+5Zu6\r\n2CrEGIagNs8/wQr8OYbvXqc6fKKKrthzRT6kjvHjqZokSFuPW9g2oZeSZqIL\r\nF4UbalpHbMDTglPXa4ibyufbMOhvDmw8PPYzGBurt9HMyfuDqwT7cY/hYlEO\r\nxbmaQjTpaCP9uomjjG090QnfkzYShqzd/aJeRrStnMrrPhkfDhRg4e5WHGg3\r\njgtBtdUrGtarKmcScPVlDNPll2V/16k4hG8=\r\n=0QYJ\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/endpoint_2.2.4_1649712196285_0.4403776570272371"},"_hasShrinkwrap":false},"1.2.5":{"name":"@rest-hooks/endpoint","version":"1.2.5","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"scripts":{"build:lib":"cross-env NODE_ENV=production  BROWSERSLIST_ENV=2019 ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^7.5.2"},"gitHead":"2e6c2e438ffb6bbe6cb2ef15fc2d1db5e6568fd0","_id":"@rest-hooks/endpoint@1.2.5","_nodeVersion":"16.14.2","_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","dist":{"integrity":"sha512-HNOWYJvEhY0gLQc0NwhD4fmnuiGET+nYeHjBHPCUarAwAy1r/DtOYNVd6ESIcPXBH+l7KlIrbIOdRdWRBZVAeg==","shasum":"ff0f2b2e79e0a5fd347f24f5a778f659baf5ee4f","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-1.2.5.tgz","fileCount":43,"unpackedSize":131950,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrFdNyiWluGTrwAQUx1OATQKivULpsVIw9vagYcInoagIgbUzRpcJhHgQGZ3bJ00ARYESuHxxwT6tZAwwrlgCrxnU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiWv+1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpdEA/+OMV3C5jeUZmmoCijSQwXmf/wOgYY6QKj7ZLFF6V2514RiMxR\r\n9QZ7cr1OYrKl7JM96T8ac3N8zzBgSbDstHlaSk/lwhbpXEC9zM4srdo4pDjw\r\n4OrCrVqZCUU1wm+h+7e9bPJB2R+AR1zgolHjXQTEoYxJQTVyZUhErDuMVUXh\r\n3V+U1lDDR75ecOWSZp3X8aBZVLspSxGxgtKkvfDyzxAGWa578vMFsI/M7FFN\r\nrUH7vIkLRsyAVaJnC9gRVP/UbilYTi2ta+gg3dL17J93Uj4lwQ35pch8pV+3\r\n5VVNUSNNR0O5OO+MHG6PSl2y80qlKGwLjUwv2OIJFlD2XCyCdSkjeVBYD8Xz\r\nRR8O9L6n91FebHjODXSrvOafCjwvJCpTD/vKtVavR5pDA0DNmmyhg9ykUt9e\r\np20AbbsN+i51WfKSvlJkr7NyaGSMPWh/a++MU058LOmnrVM+VtLGBzCp4zKo\r\nMXI6i1g+D/I3/cEnzRxEqhsMrM8XYgfM+eKjrCPumY+xl2lVbaTv4Y0bX6p3\r\n55zUaMIE64yZ5sI8F9lcmrzkm4Qe+TdpESmf3LnQIlW/hJOG/f8K45fjpzhM\r\nZ5VW0WQzSpWwAvevf6UdWUU18ueftEaXKuLlDMVFAsduujt0LMu22Vbba8xw\r\nxULBZI9Dfi/jkkpoC2FJXQ1sjNTGjcxkswM=\r\n=gTaT\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/endpoint_1.2.5_1650130869205_0.6697555047210233"},"_hasShrinkwrap":false},"2.2.5":{"name":"@rest-hooks/endpoint","version":"2.2.5","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/endpoint(.+)$\":\"./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/endpoint(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^8.2.4"},"gitHead":"ce82a4038fa5a245fc12a0654469d3c1ef47bc71","_id":"@rest-hooks/endpoint@2.2.5","_nodeVersion":"16.14.2","_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","dist":{"integrity":"sha512-1Mg7udKu9cFZkO3NWm+qLAwN0h8V1qm6odZYNByJLYokKkTcJ5PeCwr4Lze7eymU7zZYXw/q7fyCjvCRzf4oxA==","shasum":"6d029fc7b77f9b83e40ccf0a52f50781107c31b5","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.2.5.tgz","fileCount":76,"unpackedSize":175806,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDuv0UOt5F3ae1SFTXerOAe2S32O9OFNhxnhenQ8eFFJgIgDDAAihrKMEyhGhhg7772QG1PVfRWKgJHictlm+YixAw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiWwJ7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqlqA/+Me87XOYf92Vl7Sat/FnHzYdM1I+hDucxnkwGO/xhMyMcSaIX\r\nf2gWjk8s9LjSaUi3yi04i37IA1eWZHnRd/clD5rZzqPKEj3QiqZDe+wTdEQY\r\nZLvzkViRWG6QYssS6rA78zPhdSvf/W/t1fxWDSelxxSyue0Xl+Vgm5i6wphh\r\ngnmmn+nGQ0LaHQmAdKR5W1XHA6pYGo8tDP9jWfqBkcrIkzGE4/xi/02S/FHa\r\nsiasXUQDx2sI3P/PvdY7UmSHadxFkkN0//3fQUgDVZpGUsbPAFUOO1vDjLSF\r\nsmOAFp/wlnGCMNXsIzee975+0z4q9/3SmIagbuFtW5ySPb41aybdlwvz40rQ\r\nwfhYPOorXDhIIAe9wCyNq5uuqc7okdKtS6ydjjfgo8cV8+OT4vSFMzIsKpel\r\nt8goPG0sS8rsnGMcFuZdCxCcGFSqaH6XdE1vrQaIjhw7XKOYs1qW4clzCjW3\r\n7sIpCaUljVWbjNvNYvKmQaCiKj0j8tizSykWAD1bKHCuaD4zmnsYPLwFvUIZ\r\n0QNKq3WzdvpMhzmF9yEkrwjxewM+GVKrQ4awaR882G+UMkZoFbriQHuDExBY\r\niJk8e/PekWEaudfPMpMVFAMyOdSg5D0MtNg/VWzEmOmrmgmL0GT5LLF7y7u8\r\ne1Y+CARq8d34XBMp+jP3vESjK6BoB4UC060=\r\n=FtyQ\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/endpoint_2.2.5_1650131579031_0.08314606767021604"},"_hasShrinkwrap":false},"2.2.6-beta.0":{"name":"@rest-hooks/endpoint","version":"2.2.6-beta.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"publishConfig":{"type":"module"},"engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^8.2.4"},"gitHead":"83bceda27ac3014c920e3bea5743a939f71e8986","readme":"# TypeScript Standard Endpoints\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/endpoint?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/endpoint)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDeclarative, strongly typed, reusable network definitions for networking libraries.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs/api/Endpoint)**\n\n</div>\n\n### 1) Define the function\n\n```typescript\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nconst fetchUser = ({ id }) ⇒ fetch(`/users/${id}`).then(res => res.json());\nconst UserDetail = new Endpoint(fetchUser);\n```\n\n### 2) Reuse with different hooks\n\n```tsx\nfunction UserProfile() {\n  const user = useSuspense(UserDetail, { id });\n  const { fetch } = useController();\n  const updateUser = (data) => fetch(UserDetail, { id }, data);\n\n  return <UserForm user={user} onSubmit={updateUser} />\n}\n```\n\n### 3) Or call directly\n\n```typescript\nconst user = await UserDetail({ id: '5' });\nconsole.log(user);\n```\n\n## Why\n\nThere is a distinction between\n\n- What are networking API is\n  - How to make a request, expected response fields, etc.\n- How it is used\n  - Binding data, polling, triggering imperative fetch, etc.\n\nThus, there are many benefits to creating a distinct seperation of concerns between\nthese two concepts.\n\nWith `TypeScript Standard Endpoints`, we define a standard for declaring in\nTypeScript the definition of a networking API.\n\n- Allows API authors to publish npm packages containing their API interfaces\n- Definitions can be consumed by any supporting library, allowing easy consumption across libraries like Vue, React, Angular\n- Writing codegen pipelines becomes much easier as the output is minimal\n- Product developers can use the definitions in a multitude of contexts where behaviors vary\n- Product developers can easily share code across platforms with distinct behaviors needs like React Native and React Web\n\n### What's in an Endpoint\n\n- A function that resolves the results\n- A function to uniquely store those results\n- Optional: information about how to store the data in a normalized cache\n- Optional: whether the request could have side effects - to prevent repeat calls\n\n## API\n\n`@rest-hooks/endpoint` defines a standard `interface`\n\n```typescript\ninterface EndpointInterface {\n    (params?: any, body?: any): Promise<any>;\n    key(parmas?: any): string;\n    schema?: Readonly<S>;\n    sideEffects?: true;\n    // other optionals like 'optimistic'\n}\n```\n\nas well as a helper `class` to make construction easier.\n\n```typescript\nclass Endpoint<F extends () => Promise<any>> {\n  constructor(fetchFunction: F, options: EndpointOptions);\n\n  key(...args: Parameters<F>): string;\n\n  readonly sideEffect?: true;\n\n  readonly schema?: Schema;\n\n  fetch: F;\n\n  extend(options: EndpointOptions): Endpoint;\n}\n\nexport interface EndpointOptions extends EndpointExtraOptions {\n  key?: (params: any) => string;\n  sideEffect?: true | undefined;\n  schema?: Schema;\n}\n```\n\n### EndpointOptions\n\n#### key: (params) => string\n\nSerializes the parameters. This is used to build a lookup key in global stores.\n\nDefault:\n\n```typescript\n`${this.fetch.name} ${JSON.stringify(params)}`\n```\n\n### sideEffect: true | undefined\n\nDisallows usage in hooks like `useSuspense()` since they might call fetch\nan unpredictable number of times. Use this for APIs with mutation side-effects like update, create, deletes.\n\nDefaults to undefined meaning no side effects.\n\n### schema: Schema\n\nDeclarative definition of where `Entities` appear in the fetch response.\n\nNot providing this option means no entities will be extracted.\n\n```tsx\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n}\n\nconst UserDetail = new Endpoint(\n    ({ id }) ⇒ fetch(`/users/${id}`),\n    { schema: User }\n);\n```\n\n### Endpoint\n\n#### extend(EndpointOptions): Endpoint\n\nCan be used to further customize the endpoint definition\n\n```typescript\nconst UserDetail = new Endpoint(({ id }) ⇒ fetch(`/users/${id}`));\n\n\nconst UserDetailNormalized = UserDetail.extend({ schema: User });\n```\n\n### Index\n\n```typescript\nexport interface IndexInterface<S extends typeof Entity> {\n  key(parmas?: Readonly<IndexParams<S>>): string;\n  readonly schema: S;\n}\n```\n\n```typescript\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Index } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n  static indexes = ['username'] as const;\n}\n\nconst UserIndex = new Index(User)\n\nconst bob = useCache(UserIndex, { username: 'bob' });\n\n// @ts-expect-error Indexes don't fetch, they just retrieve already existing data\nconst bob = useSuspense(UserIndex, { username: 'bob' });\n```\n","readmeFilename":"README.md","_id":"@rest-hooks/endpoint@2.2.6-beta.0","_nodeVersion":"16.14.2","_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","dist":{"integrity":"sha512-rQSIV6F5kcZE2XNJ5TK30L+cnYHywDZsJ0ZpCK33d/nadensSUr0L54GV1ZSy02iFV+BX8q6YrG4Vk1myfugfQ==","shasum":"6e3d5dd4b4a30bdeeedc8142e82d6a0aaecb5a47","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.2.6-beta.0.tgz","fileCount":76,"unpackedSize":174995,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCioQrY2tLC/zCtAMh5IlJTgu36kaRa7LHs024keeVa7AIgRjS3t3h40asUmqp/pt9vGeItkDrYHyulfxZQ9IFOxRQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZiHUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmraNw//ceatHglLPYqIbPjh1Nk0tD+VYgyTGTce//kk3W+xX3CslDcL\r\nbBXNXMOQJudrC7gQVZKhIozTo7d/DdoJa4VQgRJ6muJww29tynHGxYgKlfdt\r\n3OmkgFqWH6LE2Us6hdKEODi8LRxtJMmKQjyjT/oEa2pilTAKs6/TrluRdQzd\r\nJv3U6M8OC3Smg9KmlKIXrjuntbxkLjxgIEW1mQldujbHmOkIYBp5z836spTf\r\nTxLNOpmVFHxaRcACCvzQ/+dcFkVl1RgGoZlr3GcF8ds2QBxl/WUeUsjgdjJd\r\nFBTp+CmoDuo/foslUJs2qY9Uv9flA5AEJfoKMY4TEVURtsWyfgzkBPZ4omy4\r\nk64pIJZ/I+dFSZsgAsmcQPOMh5pphjbPCKAD1iXpKQ/Ipo13eNI1cBCk411I\r\nIMpvxst0L4LK35gFusYsGWi8bZ5A3uO16I2xZodPiFdB1gv2pSXz2I/MAHpv\r\nkQomhpqmlJG8Z7Sv9dQ0Ss6xBO75f8nXRuosnRTBAqTVYSf7SW1AaxPb7noJ\r\nJoBxfhW5yvH5XvwMvikgHTq5BxbrDQyNKkYQfyQbwCiNVkHBgGk7S1SHL1aj\r\nF/5RiykMK3bA0OyDoDwxU4neWjlxHRTga/fdiac1mAT2GuvX4U7HMP7WTu+9\r\nPs2vibv6ItEAWKnsIaiR12gbugujbtkAvF0=\r\n=tlb3\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/endpoint_2.2.6-beta.0_1650860500376_0.535243208420324"},"_hasShrinkwrap":false},"2.2.6":{"name":"@rest-hooks/endpoint","version":"2.2.6","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^8.2.5"},"gitHead":"f490c35cb1a91a4f740488d28b92d3e3b3a98ffe","_id":"@rest-hooks/endpoint@2.2.6","_nodeVersion":"16.14.2","_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","dist":{"integrity":"sha512-5CF/sjAPMGVydKJ7mOmz25KZIbctM6J3LneCVuweTsHah9QGyxcJTzB0Zg1geocNKPCMYpK0QQ1KsvZGjdXShQ==","shasum":"4dd14b96b21f3b0f70ce3bf4ca3aef7bf48e88b2","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.2.6.tgz","fileCount":77,"unpackedSize":188267,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFJVomijIzVjnpywPYFd6P45lSlmjXr+zkwEPwScjJAwAiEAsc5A+M0/5H2FfjSuLHD8PJf+S1utCIPN/oGetJKMM6c="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibXiKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrqZRAAkJ4z2KSg1IUe1dE8y3IaJo6hdsMMzrUJTs9Bi750uZHxEgSz\r\nfZBEBH5wCGp3Ny86/GT1XQ+JBZL4NBygaX6bcUGhMMk48YL9TrlUWb0AlXbF\r\ngW6AN2k5kPQ3mhTYeAGKAb4AUdRrC0M3lTFWJ96UBKmKgVliPlVfygtnSnpl\r\n1NOIsa5d5KU2M1l/AFLgxloyghxD8QyUppXDQPiqFtilcRLoqGLv34IxttK+\r\nFIoRVtXJ9nkB6I7c2ew4tpCQO37y+mQk5g3qwXMrmW2Npo1D7Eu+BPf0Kalp\r\nJpQBzoVYlEm+iSvpH75ctCvR0ksX6uS5d9oXKylrSp9ed9XTPcQXNqaSyhp3\r\n+Kjl/2sQelR32PTOxCjnVvf4TIVELCDNjMISpGWrG3pKTF8CiR/4DgSnDCuV\r\n+sFk8jpXEFULJDQUCvhfnkPC6fDuzxhQamTxYuSp32XOMPbwQwad59lmZqpu\r\nfA5V8MmVzdyL/8jVYTzCCAmiLenVFwqFFmlPliDBooIFGovU76GIQEgSQ9/G\r\nnTdcPJJbrPaV2p8CSuBqW9Qts1i1jp7m1gYPCiYoLowbpJx0IeIPpLQjholc\r\nAUvZPCJ2XqXOgsIjsgXMDQraelRLWrlpLFRrwl/10IItaJ0RmIt7qxTNvOhs\r\nnlgSJANWBuSSuJbImc5wjDSF0a5khccBGRs=\r\n=iatX\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/endpoint_2.2.6_1651341450415_0.9548694256742407"},"_hasShrinkwrap":false},"2.2.7":{"name":"@rest-hooks/endpoint","version":"2.2.7","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^8.2.6"},"gitHead":"3ef33e89500d586bdfbef12ac7f559a9a647df88","_id":"@rest-hooks/endpoint@2.2.7","_nodeVersion":"16.15.0","_npmVersion":"lerna/5.0.0/node@v16.15.0+x64 (linux)","dist":{"integrity":"sha512-tK9EnyxuMGHjH7m8YZkjMGY4edxUuV893YGxqps7TfhJdNLD7ikeAJI/c1r/WHRmWDtiFXyQ/Lt6k0LMYMC7hA==","shasum":"9bcfb2def145cfb4dad21fb790380fe25bb766c1","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.2.7.tgz","fileCount":66,"unpackedSize":176101,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBlRtKgR7QUSWPeKjuQBfWDm1FZrk//z7bIfwdDSlp14AiBJDGz4cnqW/uUfQvyw0srGL09/OCsAbXLqD/QlPX7wIg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJilSWtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo9gg//cppRHbPa3bkR7+6vfS12OY9N8OMuNwld9b90f0e8qgmNwDOf\r\nXDheBu41CdOWy3+SVTsKx1sb6ZgpXM8sfphCdGI22D6b9bwrBsXolm5CEljd\r\nrTXN7C+U8vr7YHzE4RMs8b9AKjyoaYMfrlnP930PX0nIUjZadyf5EUQ68TCw\r\nH3nUBsB0f5SxrW6+CJFRswp/gfGz7DtIJMZKBLK5ezQ8UkX4I0wEgJYDlCS9\r\n9GybpZftQvZE+VspjSQZm+XjWSZ8dzLqTFYeTHy3934z0OHq+/Q3h5c8MYfz\r\nBMTIKojkCg3a347GVLyONeb8X07Mvsw/USuAld/S/wRz9Yn8pwjV9xKm9Abm\r\nyHNV+/buA47CcCGiC8KsRYugRF6knmiVqYyvqzoeDkES6i3LMLwkOUKxsR7c\r\nyLYOHNv9bdw3RVUKMQNJHSyrsauWtMfanBtiVDJe42T/XjG5gwLmY5hMRVAU\r\nl77KQVM0hE3DWja03CKCoaRm1uP4VCxIs2BSfXEUrOV2vTeCMoKksLoJp3I3\r\n7EvTmrLC2zeo4OkMt3b5HKzFGmTU9sdPLlF6Jrx2bT4oEWH+xvgCflyDZwrX\r\nJIZZaOLD2U2bZCeFJjSjeQ9fqY2nJgbK15a9M3bGSNJe2uitbg7svdUm4IlK\r\nff2W+FP6571M31T2OnsZUFJnxCCjR210OQo=\r\n=iVaK\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/endpoint_2.2.7_1653941677443_0.5336294009858624"},"_hasShrinkwrap":false},"2.2.8":{"name":"@rest-hooks/endpoint","version":"2.2.8","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^8.2.7"},"gitHead":"41f23be320cdafcdf5b5df5842dc6fa81c31fcdf","_id":"@rest-hooks/endpoint@2.2.8","_nodeVersion":"16.15.1","_npmVersion":"lerna/5.1.1/node@v16.15.1+x64 (linux)","dist":{"integrity":"sha512-1TwEFMHkLVSCnErPXrrbWI5k7USyTz2uLdL6uCmlL8zbpk6YU/mHh842FyhQxspjXP3dpYJ7400xwN8WGzMO4A==","shasum":"cc2fa1e141f932caf959c58df3cf482eeea14564","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.2.8.tgz","fileCount":66,"unpackedSize":176484,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDtkYyNlXR4XjCT4cFvVY14sB+FGiEG671+BFd/FiBgLAiAr6CHumoNwnpDYR5xG5uAqMJaKmkbdBdcEhWO7YteS7A=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivwMLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqHEg/9Exq64FGiZZ1HEt6D2AviL8OtiGW0Xet9Ba/POrys+ShakOzn\r\n36NwYwAj7swVyNSuz3JPtc11MOp1Uftn8wqIpfaByZ0nkbKM0QgQRfcURCiV\r\n6H1VO3UCUSLpFk9qML6UM/LFy85e/TQUwd4rmuuK1HSWprmWi0YSgIzsX6oh\r\nhyh6+KsLRyvnhZo4fdr+U21EwuLCHeHRC4hlRG18ZEPYfIcYH35lHH9i/Ff0\r\nQ9r4WJyOdpLpdtau6rKczD49W0V7dvp4tMohiITPLI/IxHfz+fmcZr7e39M1\r\nO2hvwKNtPQHLkrmPtfyPxJyEXBnhKaU+I25HPzWmAbPFbIrivXz5XIHSK3pZ\r\nE2vsSxhqOrVHg60PsQd08+h0qo6z1eo+pESW3rdM+9hIK2rupNzQY8mYIYEx\r\nEJkn78iz1es6r6GhAMsE7Uems36QFLB28SyoA4TbatOuFhS3ZUcLnl+iV4IC\r\nxeCen+jVtzXJxlt4ExXnOpTZC8h4LD+nu2/BfcpVZ6lpCQov/LLoWv1NC+Ev\r\nAlXfUIwxnyUDCaZbjTLPiAvpR9Mz4qydHMtoekVIZt7PYLXpgg1OLj3Hvx9Y\r\nUsYEWhyhVVpUZaQAZKgYss/oHnLinTM3qanV/jQa9FrYzeTik5R6MKExPbwW\r\nfqoynf5jUkRE2tXigsttENjGqWmoTOWc8gE=\r\n=7OPt\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/endpoint_2.2.8_1656685323480_0.6857742337731147"},"_hasShrinkwrap":false},"2.2.9":{"name":"@rest-hooks/endpoint","version":"2.2.9","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^8.2.8"},"gitHead":"2e86aee48ce7e2b8fc006f719d79a96aa6584a2f","_id":"@rest-hooks/endpoint@2.2.9","_nodeVersion":"16.15.1","_npmVersion":"lerna/5.1.1/node@v16.15.1+x64 (linux)","dist":{"integrity":"sha512-8kQIuaAI9leMuGzF7tljZuahAwJ0ywFvzGbH+RTuzY/Gux7o+4aYzFvq90X5EnTmoB6BLOTbOR+mkaLPRqpEmg==","shasum":"43953ee54bfeab8695b2ec5d8a3c4862398ca68c","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.2.9.tgz","fileCount":66,"unpackedSize":176680,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDuSXixZQ5rpAe66KVlYga7dwjYTJATJTNo7xQLdQjPtAIgJerCjv2iEU5A88E0kBT5O+6h78cyD9fP7qyRQnZwSYc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivyEwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrVzA/+Nkz15ZSotaXhKg/Ih0KjfPYjJAgtflmkL6CEGAOOierfHFXj\r\nC+OVIYFKG823EefoC0nm1q3eB9K5NMBK1Q5Y0JmF7PCZLDPRerOCNXfjsa19\r\nsqxRjCKRi8Ca5GEhBT8xHFPf5HkEtb9H7PHnN/ewYEq3lAfJCXH7ZoZBuXQy\r\nSDu2GJ81In/KKPzbVlZr7R2wZe15KaaBpM5B7ABUv6iskJxTGMKrwzNc2bY+\r\n/6kawUIvkqX2F1SGcWjsD8jfYMDJzGKn19DF96fEAuCMcTBBmmQA+HupYCZ+\r\n+F9Q3XFBB3Kk2QizRvqXCNA16x7i3xskaFWYei6onrdB3H10iKrRmXSErGHN\r\nNoJKMrjSJGxwnkPMkH0/V6AZnsO88zmFkLxqGxEqBjHwJUkoNctEB0dYJpeT\r\nWhjC0ta4pxioP/JaqKmsfzdrpUO1qp1xgyEWVAhz8T7txExWwkHstNxzC+eF\r\nQ139BPdzc07CdEnGBEyBfrGta+yep9se50gULbWdsb27KNCxjJT6Gr4JVWKf\r\ntGS1ln8jmblOvrI4qUTyJaA3yzN1+6dUE+rMIviKyFJ6vk5bW4cTspfDoP4S\r\nyKJZchIsiMkI+XUFFQX+XIzzfn813EIHF6OU+WKT9nVtEfZ/9Uq9ipaH9OV9\r\nB4WwWlJ5e36TokJWSZUukI/+9zer4McNeK0=\r\n=Giz2\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/endpoint_2.2.9_1656693040212_0.9967222077653559"},"_hasShrinkwrap":false},"2.2.10":{"name":"@rest-hooks/endpoint","version":"2.2.10","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^8.2.9"},"gitHead":"a34477ee514c1d705555dbe5338cca976df665aa","_id":"@rest-hooks/endpoint@2.2.10","_nodeVersion":"16.15.1","_npmVersion":"lerna/5.1.8/node@v16.15.1+x64 (linux)","dist":{"integrity":"sha512-Oo5Dbzy2GVPltr0slaYN57d7bdDq34JKx4rjVgQHXX2aV11CejaOv91vGKrGxO8oP0kKsHsU5TAYO8+e/LxrhA==","shasum":"5db068974e697eba403bcbefcd6c9ff560059223","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.2.10.tgz","fileCount":77,"unpackedSize":190307,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZGbEWDAuGIqyQ1aHwif9zy7JfK3wLf1TfzgBEqCblUAIhAM7ApJgWTQvz7G7aA3ehz8Ixa2MXHakgF0t3ie2Xk6Uh"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi2CSpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpt6Q//XmP16HiY4ko44513K2Qn/Sm1TjdebAqiz7QrIjCsLmf0hAA0\r\nZGGbiM7gtn18GOdvhSa0SEZVgV+0mI8OEnylMeKYXrMUqMk5jVsQMqo+F24F\r\noa256gfngrJtpqa4zBDvQKBEdmqKbA28Wlc/C31NL8fhT2xblOnwNavpsYBR\r\niYCWoWukLNr1WR99Tf4dH8rjc9JR6kUbA49nmj9TlCtDjSBHcrQEXJ8ZrIkd\r\nBdQjTP3b2r2ObGEzkJXZ4+34jCPINRUq3NPinGy21RHKfLr/iXYp78tFus4p\r\n/ue0OME+N1H0K4ckzCWTp50Nkz+mJ7nQvHNCyoq2l24aTr+1pCXpR7LFj+Xr\r\nG/4SwOLRXJAnh4esp3Hyoz+j+xsIffOcT6ma2jHV69dzzblCpG3quHQAKCQf\r\n/hy32Wo/f1BkvmoS4bKf5VYTDXVofXuQWybE8w2bYda3NBLwp5AJnRdpdHhb\r\nYasBoH5OtiDZrz/V7x9T86QVEK0Sdot4vCf6hx9hkaDHt+zjtXUSCp1dw0wp\r\nRFcZrVtorqCmD47o27ePzYoh0XIGvuN+NyhI3+IaEvcMn4enR7FPk/IxQbJ0\r\n3aUVFUET3TIIyQ9S6KYML1bBQhuNJ1/1ddeSSCV9w40LpDTRfLnf1GjwZrW1\r\nluaM3BZgd2/W0pVzyYrjjqq2WHDLkTknn68=\r\n=STqG\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/endpoint_2.2.10_1658332329466_0.06193697216065441"},"_hasShrinkwrap":false},"2.2.11":{"name":"@rest-hooks/endpoint","version":"2.2.11","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^8.2.10"},"gitHead":"d43a9197272bf682be567b0b92eb23552deada3f","_id":"@rest-hooks/endpoint@2.2.11","_nodeVersion":"16.16.0","_npmVersion":"lerna/5.1.8/node@v16.16.0+x64 (linux)","dist":{"integrity":"sha512-BfnqYzZj4RTSB17NYA6syJzPyX5kFItoZDpDuZruV7yISvTFFUap009TnEUlsMNUrfkqegFZ8zDQcfVVZOiiDA==","shasum":"8e713a0ccceb7a4c2a40374d0bff6cccecd00330","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.2.11.tgz","fileCount":77,"unpackedSize":190644,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCogtQLkgNMv3//vavRlr83focaxoyLkUPgRbrbTsFhswIhAOmnC45UyYq7WrQ0ZS6IXuGLjQoa9/zz9l8+N6ZgbRtf"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi3Aw3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpq7A/+LnLm++S/YUsJ2Y8R4LtQtjCrl+3lsv8rSRgj3BDsGKdOV4Lp\r\nExB6lcnnJHPiwEa7kCRzlxk8ia6ZOSQGhZOh+jVLfL10lKloOPfOH7SgI7yZ\r\ntHSRWyzrneuksfDu0gYHW5GHEpTyUUaqFHdWXAR6W5sgzUlPN8+pd6EqtumG\r\nSRvpcTnY9lT4FyYiGTmfkd2Do7mF2wJKqdUF47CaNfxSwcORaXp6nti3SEfW\r\njxfhBZ7A5gwFDEeHfvDSTiFu0NZNKx+jsq5WsVcVS2QjLTcmlsGmPTxKZJSO\r\n9Nm95iHtZY01fJmtzlY4sNLZgilps7uAiTsQXKIMn5p9ftcFxaTDjO8GC3UI\r\npVi4SAmILFzNFm04iLPFOV2/hECFtK/leONELfmcGwqh5GZyVKH6hZa0uZdn\r\nmNqHOWqp05QQBk7rvhZz/wnGLYDtBUU+lr+jos+MOQrCfoZZEd4bpMJ66ETA\r\nq5wrh2sDunLmq2ntD7O/IptrbfssLjzSh1LRRzpqeKtMBHQ8bH8mZZZNQVf6\r\nPtOQkRIThJtdRodxjCZwYDeS98qdjwubMEmos6GH6PCZyr3l1rKY6KOvjcTj\r\nr38n2XCG3vCmHIFPbZMgSTifS+qB6jXmfmvrM7JAiRtNdDsKiWIXz+0IZke+\r\nsBywt5l/dBLwgr/wwxX050hufRnNsnPle0o=\r\n=TXDY\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/endpoint_2.2.11_1658588215209_0.013432080745438224"},"_hasShrinkwrap":false},"2.2.12":{"name":"@rest-hooks/endpoint","version":"2.2.12","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^8.2.11"},"devDependencies":{"@babel/cli":"^7.18.9","@babel/core":"^7.18.9","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.77.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"5d2bfe84df68f8f76aaa2f223f721768f2cabc1e","_id":"@rest-hooks/endpoint@2.2.12","_nodeVersion":"16.16.0","_npmVersion":"lerna/1.8.0/node@v16.16.0+x64 (linux)","dist":{"integrity":"sha512-hsyBrs0JvdGaQAqz/67JAXdS4wMHOm2jnVM3QdzkEuqmO5YGa9WiLXfexRHeL02LiZGTrXWAdGNZ5RVk3MR6Fw==","shasum":"a3c45b079599f75e8c8e7c973d6392605de387c8","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.2.12.tgz","fileCount":76,"unpackedSize":161396,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJQDxGwj/QQTiv+N9ZjQQp5/IMnIXR2NHV0f5NqEB6iwIhAKGIaWxFEOQ/Wcum/Dd6a7IPii7Eft545mM05nAK7KTF"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4C+OACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmofXA/6AioeNvQu2fI41RJKSwBfPpcehK7dy+FJsNwIqwU2O1nqho82\r\nBt+5FJY5aFXoBNA6id0rawMCyJONa0x2Ey6qoaGVza8M2vW3hwBwjiX+d/R3\r\nynraJ5m+tyNe2SduSgen8BXR2tL+HPeYqWC0q9Z7FA7IUg955KEVP8ypyYSI\r\nDqyhE//Asf65xUH09/Ae43kKbUO1Cio6ct9HQqWU8pxhZL/C4hfjumDwKGEs\r\n7fKzI6egQuFwZ2Gy9HVJUJXMHlvfL0Wfjl6GdKrK+38h5N9hiZt9+w4VQ+/f\r\njVmCh19L+RFQ7ezc7EEJZFl/HQprwezt1IvSKVUtZADFk8wjyEverUjhlYdz\r\nI6+lS2Rk7LMn9t8QzQgn1Jk4gUEV0jCOLuuqaoyglFN/c5vI2JChhsZ2Li4U\r\nzxrO1s1f6fDTfvC4jgQoV85WJAJOJtys8/vXNI3ZZltQD9fqsUps3Frj5oRr\r\nWCvX3N2he8mYXrVlJehJjGXO1qckAPNZLl9Mr9YBJI95PnGm77wx5KD92wCi\r\nDngEbfKMeih355+EWEo1XT+FLfaoqe6NXp8hJFP0EQjGcSOiemap36rVGk5P\r\nnE3uTynwsdcwj/TlKFdiBoewVEBHLuD6IfFkc6sELdq9/ka0LnHcizNhiMF5\r\nIvC5eJFjFA4VOWqr9uTJR+SKiET6eCqfhrU=\r\n=CCQq\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/endpoint_2.2.12_1658859406340_0.4927159589902941"},"_hasShrinkwrap":false},"2.3.0":{"name":"@rest-hooks/endpoint","version":"2.3.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^8.3.0"},"devDependencies":{"@babel/cli":"7.18.10","@babel/core":"7.18.13","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"c3fe597ffc0f2589756f26c21a5842493f06301e","_id":"@rest-hooks/endpoint@2.3.0","_nodeVersion":"18.8.0","_npmVersion":"lerna/1.11.2/node@v18.8.0+x64 (linux)","dist":{"integrity":"sha512-Ourx/Ztp7d4hyCoXmqNMJboZKWzdh3OvSV7kHcI2gh2wpUlphsZbRRrCxalrzjzAIQYQfi7RBQGc1fXCSbjAnA==","shasum":"287754885626fc34b28345e23635c98c40767e97","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.3.0.tgz","fileCount":76,"unpackedSize":163511,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCS0oxGR50zky2UVHmTcVxSeCkk8ssXZp4WNdRzKn1YpAIgSnSCoEzvNc9X4YXzy6C8yFsjnJhZu6kBVwAsnM8WqWk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFDClACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrUiw/5ADl5L9LRlbcH7CpUI1EP/zYGa+c2/6ZVTUce+eFTu2SsLcEx\r\nBoNOfAE/0FVu0UZGppQ2Bg7DXFUE+2rydQfz4/KRpFRBzToFnx31EKq5F6A5\r\nebl/ELNbDTD08oqNmHMHCulDQsVKibU5XRAbzWRWaT2qiKG05u2XCfYLKE/Z\r\nDaembeuTyV2jcJ8D7o5WfxA0EwWb8cHXz27OEkRxfVimyLrgdXfJIG+s4eKM\r\nP/6nPY0pBBKje9vTz8VCuvRhmdV5ZJqYFlBw2585DOgrs3yRDydAm6JnJ95O\r\nFsfxZhWlGsahhCT79ZWhyfHxavPHb9YtTd4ILbs6xEOs5CqET3guq3BtjVP8\r\nzc4ysoUO+7Y7wkxBwr1W79EdIGM5/QqF11gu1rALzp4BtaKuP/L3vP5PE2YN\r\nA9L5Q540d6mqk6heHOb2q1vewYYUWuMl9uCO84pRiRktdfn6rZaseDiFXDLk\r\n+Jn44kZdMz3LRkG+yT4hNaitUQNb81KpXnGXvcE7yI/kbQYSbCNTSA6+GxFl\r\nuUq7a6UozsMCMpUXsdu36gFVCasJA1VFglgCDwZ7JRgm1Pyu98QYfCf1+9Qn\r\nrwQU9L8O993Gb8gbUe/f1EbCFzzucPkTT3GMLsXP7FjiCJEFUdWkaYptnQOv\r\n7+hrIVKa5uAyN2Oh1AQNalJEBULpbgcz2I8=\r\n=v4GT\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/endpoint_2.3.0_1662267557190_0.13525261600720162"},"_hasShrinkwrap":false},"2.3.1":{"name":"@rest-hooks/endpoint","version":"2.3.1","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^8.3.1"},"devDependencies":{"@babel/cli":"7.18.10","@babel/core":"7.19.0","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"bcd34703c6b56af10326aef525830a29c39be368","_id":"@rest-hooks/endpoint@2.3.1","_nodeVersion":"18.8.0","_npmVersion":"lerna/1.11.2/node@v18.8.0+x64 (linux)","dist":{"integrity":"sha512-lr34zB5aSoY9JK3AoLsyPaViGizJdsbxh5+2CHuvrstIzNbTYqe6Cqr9RD0/Cm1Mf4mGrhMG9XKXIzcn2/LiDQ==","shasum":"f0286a1d913549c23fbd1ae52546228dcfc4ad3c","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-2.3.1.tgz","fileCount":76,"unpackedSize":163510,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGume0W+FvauDM1HBkiMV8Mozd3V780Pr7XGntVwnGCDAiAQ06PQJ4+gy5EVBiCcyiws2aT1sQHJd8xUEjup+bnHTg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjHSDQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp6dA//YDtnPKZIKvsJdrUP/ovxnUJXaCjDjyCwbrgBNwlssigrj20G\r\n/SvOsOHcpxFAXb3881R3Hv4+u6uBfrZS4+3ecJlGWWS+RYLPpftzeoQ9c98J\r\n4e+duJxY1ysZhtalkaX5/yI7DVHAyeETs7cuRZVZEBIgXTR6DLoFQaMQi2RV\r\nb3p5AsnfVUAXzfIm0e20Faojv4R9k9TpIXg8yatbEKyjGvCi4aIYuij98eyF\r\nzUB8nFB5gKl0NeXPbiRFjSso0g16F7JWZxFunsh9hrwA6nyE/wfwXiH13+y8\r\nFuv+z9PJVUI7wTxf1O1E/k+DrTnVsb6NCGUvtnMw+LaCZMXgWS6M0wJP/8B4\r\ngsKCF0WZdjjAXh3xO80x6BkxLVM9C+pLT4ZavqKF7qqDL5dPfnLTwRQEIE8b\r\nsxMl2dsFYMnm4f0mh6kwX8Uu01/gG8Bol33abUQPsrzn1CFQthKgKdVlJ9Qx\r\n7aehcIMRWeeBvwb22O1qAJ7TLgXJg69Qb182vptSWMFvrolSJBZiZD/8qJrT\r\nEzem2yTywmGds0bGEZN0fcTouDRSewI0nXdNDqCSBDsRdTslAHfBi19FEbXv\r\nBAEE8X4PgCeYw1Rv+Cl3tcUslR4ugnAnTaDJUc8SykPfpEbYccDS+2QgGKlh\r\n4VPq+8GVDU1aFMJrjFCwK/vgc28nxzCh2GM=\r\n=seJC\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/endpoint_2.3.1_1662853328538_0.5894957048826845"},"_hasShrinkwrap":false},"3.0.0-beta.0":{"name":"@rest-hooks/endpoint","version":"3.0.0-beta.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0"},"devDependencies":{"@babel/cli":"7.18.10","@babel/core":"7.19.1","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2","typescript":"^4.8.3"},"gitHead":"5eca3fa097a45c4b72688f561605d7e64d308b17","readme":"# TypeScript Standard Endpoints\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/endpoint?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/endpoint)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDeclarative, strongly typed, reusable network definitions for networking libraries.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs/api/Endpoint)**\n\n</div>\n\n### 1) Define the function\n\n```typescript\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nconst fetchUser = ({ id }) ⇒ fetch(`/users/${id}`).then(res => res.json());\nconst UserDetail = new Endpoint(fetchUser);\n```\n\n### 2) Reuse with different hooks\n\n```tsx\nfunction UserProfile() {\n  const user = useSuspense(UserDetail, { id });\n  const { fetch } = useController();\n  const updateUser = (data) => fetch(UserDetail, { id }, data);\n\n  return <UserForm user={user} onSubmit={updateUser} />\n}\n```\n\n### 3) Or call directly\n\n```typescript\nconst user = await UserDetail({ id: '5' });\nconsole.log(user);\n```\n\n## Why\n\nThere is a distinction between\n\n- What are networking API is\n  - How to make a request, expected response fields, etc.\n- How it is used\n  - Binding data, polling, triggering imperative fetch, etc.\n\nThus, there are many benefits to creating a distinct seperation of concerns between\nthese two concepts.\n\nWith `TypeScript Standard Endpoints`, we define a standard for declaring in\nTypeScript the definition of a networking API.\n\n- Allows API authors to publish npm packages containing their API interfaces\n- Definitions can be consumed by any supporting library, allowing easy consumption across libraries like Vue, React, Angular\n- Writing codegen pipelines becomes much easier as the output is minimal\n- Product developers can use the definitions in a multitude of contexts where behaviors vary\n- Product developers can easily share code across platforms with distinct behaviors needs like React Native and React Web\n\n### What's in an Endpoint\n\n- A function that resolves the results\n- A function to uniquely store those results\n- Optional: information about how to store the data in a normalized cache\n- Optional: whether the request could have side effects - to prevent repeat calls\n\n## API\n\n`@rest-hooks/endpoint` defines a standard `interface`\n\n```typescript\ninterface EndpointInterface {\n    (params?: any, body?: any): Promise<any>;\n    key(parmas?: any): string;\n    schema?: Readonly<S>;\n    sideEffects?: true;\n    // other optionals like 'optimistic'\n}\n```\n\nas well as a helper `class` to make construction easier.\n\n```typescript\nclass Endpoint<F extends () => Promise<any>> {\n  constructor(fetchFunction: F, options: EndpointOptions);\n\n  key(...args: Parameters<F>): string;\n\n  readonly sideEffect?: true;\n\n  readonly schema?: Schema;\n\n  fetch: F;\n\n  extend(options: EndpointOptions): Endpoint;\n}\n\nexport interface EndpointOptions extends EndpointExtraOptions {\n  key?: (params: any) => string;\n  sideEffect?: true | undefined;\n  schema?: Schema;\n}\n```\n\n### EndpointOptions\n\n#### key: (params) => string\n\nSerializes the parameters. This is used to build a lookup key in global stores.\n\nDefault:\n\n```typescript\n`${this.fetch.name} ${JSON.stringify(params)}`\n```\n\n### sideEffect: true | undefined\n\nDisallows usage in hooks like `useSuspense()` since they might call fetch\nan unpredictable number of times. Use this for APIs with mutation side-effects like update, create, deletes.\n\nDefaults to undefined meaning no side effects.\n\n### schema: Schema\n\nDeclarative definition of where `Entities` appear in the fetch response.\n\nNot providing this option means no entities will be extracted.\n\n```tsx\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n}\n\nconst UserDetail = new Endpoint(\n    ({ id }) ⇒ fetch(`/users/${id}`),\n    { schema: User }\n);\n```\n\n### Endpoint\n\n#### extend(EndpointOptions): Endpoint\n\nCan be used to further customize the endpoint definition\n\n```typescript\nconst UserDetail = new Endpoint(({ id }) ⇒ fetch(`/users/${id}`));\n\n\nconst UserDetailNormalized = UserDetail.extend({ schema: User });\n```\n\n### Index\n\n```typescript\nexport interface IndexInterface<S extends typeof Entity> {\n  key(parmas?: Readonly<IndexParams<S>>): string;\n  readonly schema: S;\n}\n```\n\n```typescript\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Index } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n  static indexes = ['username'] as const;\n}\n\nconst UserIndex = new Index(User)\n\nconst bob = useCache(UserIndex, { username: 'bob' });\n\n// @ts-expect-error Indexes don't fetch, they just retrieve already existing data\nconst bob = useSuspense(UserIndex, { username: 'bob' });\n```\n","readmeFilename":"README.md","_id":"@rest-hooks/endpoint@3.0.0-beta.0","_nodeVersion":"18.8.0","_npmVersion":"lerna/1.11.2/node@v18.8.0+x64 (linux)","dist":{"integrity":"sha512-NyEFILztxxQibwGWJDN2oGlFXl/wca6jZeyEWMrnn4JzU6UMjVT0i3K7wRjv8boNKRmCMrT+O7Ncd5LnZfeULQ==","shasum":"ca9bc8076c5f79c844400da849f00ac52b5648c8","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.0.0-beta.0.tgz","fileCount":152,"unpackedSize":638046,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBwYPFPa1DJaxRGOg7WNMmyPqJBxgrD2ENBF7FzovfmxAiEAvl9T7YNB5pBw56yolh/gMWr3QNf7GHBxZgSbOHBOdFw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJJzgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqzFg//eeFT8jXayEjTme3WvQLOdrPI5QDcCGs7k4UwgX7wW3zCtg7u\r\nKVrat7ARR5fyYWjX5juxRTbQW1/4eJL4G4Jc/OGCo8INJW1UVoGKweoEnWN/\r\nDNI/Udt/uK37/YOBYgq4nuLAh5qlzE/0NmHqnUh74gb4KTeCKjm5+n9H+QUy\r\nyyuwVn/nb77LlXgiL/Z3yKtBzeeFri+FR9qJYwOt+zcegsLQaxyttcE4KnQz\r\njOIK0zgD0c5vz/0QgGfQGGil6LSUDtEICCW02KXZOyRx/QDwNQHX8nmONaHC\r\noPsNhJy2epNAjWl589l64cM74HNPV1Cqu3mgVoZFE/J+ukLlsrPvnVewShLf\r\nDM/gLypedrkOMJV2Ae4HcX2FIHxmwooLsft5wAbrjDxrHJNhYQnGnGoEfPkZ\r\nnI3LAyojC4ehtLmH3tzuFacKUOxZSiBZ2VpoHgPNcJ90QkeSr/xPliuey4E1\r\nUaB4VwdfUvQoPAicMIyh2jQeHbo/7u2n7DeEdHF5hu3DMWfan/uAbrTa1GLZ\r\n6wKbEqw3g7YJ4gAB9ThoDotstmoyFo+OVOQQ/ZW7x386xbXrrlkf5t5NfxOL\r\n+fdRUT/8SZ3DvamA6hVRUllkfh/v9rzB3JoYW8jvWKyEZlhLYlz306n28CLz\r\nfjPchlSXCGA6PyDiiUMq5DUdKqjH3UYNay0=\r\n=wM1e\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/endpoint_3.0.0-beta.0_1663343839794_0.03761177092321888"},"_hasShrinkwrap":false},"3.0.0-beta.1":{"name":"@rest-hooks/endpoint","version":"3.0.0-beta.1","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0"},"devDependencies":{"@babel/cli":"7.18.10","@babel/core":"7.19.1","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2","typescript":"^4.8.3"},"gitHead":"c542809da0f5020bbb7d1694b67f75fc9250f759","readme":"# TypeScript Standard Endpoints\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/endpoint?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/endpoint)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDeclarative, strongly typed, reusable network definitions for networking libraries.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs/api/Endpoint)**\n\n</div>\n\n### 1) Define the function\n\n```typescript\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nconst fetchUser = ({ id }) ⇒ fetch(`/users/${id}`).then(res => res.json());\nconst UserDetail = new Endpoint(fetchUser);\n```\n\n### 2) Reuse with different hooks\n\n```tsx\nfunction UserProfile() {\n  const user = useSuspense(UserDetail, { id });\n  const { fetch } = useController();\n  const updateUser = (data) => fetch(UserDetail, { id }, data);\n\n  return <UserForm user={user} onSubmit={updateUser} />\n}\n```\n\n### 3) Or call directly\n\n```typescript\nconst user = await UserDetail({ id: '5' });\nconsole.log(user);\n```\n\n## Why\n\nThere is a distinction between\n\n- What are networking API is\n  - How to make a request, expected response fields, etc.\n- How it is used\n  - Binding data, polling, triggering imperative fetch, etc.\n\nThus, there are many benefits to creating a distinct seperation of concerns between\nthese two concepts.\n\nWith `TypeScript Standard Endpoints`, we define a standard for declaring in\nTypeScript the definition of a networking API.\n\n- Allows API authors to publish npm packages containing their API interfaces\n- Definitions can be consumed by any supporting library, allowing easy consumption across libraries like Vue, React, Angular\n- Writing codegen pipelines becomes much easier as the output is minimal\n- Product developers can use the definitions in a multitude of contexts where behaviors vary\n- Product developers can easily share code across platforms with distinct behaviors needs like React Native and React Web\n\n### What's in an Endpoint\n\n- A function that resolves the results\n- A function to uniquely store those results\n- Optional: information about how to store the data in a normalized cache\n- Optional: whether the request could have side effects - to prevent repeat calls\n\n## API\n\n`@rest-hooks/endpoint` defines a standard `interface`\n\n```typescript\ninterface EndpointInterface {\n    (params?: any, body?: any): Promise<any>;\n    key(parmas?: any): string;\n    schema?: Readonly<S>;\n    sideEffects?: true;\n    // other optionals like 'optimistic'\n}\n```\n\nas well as a helper `class` to make construction easier.\n\n```typescript\nclass Endpoint<F extends () => Promise<any>> {\n  constructor(fetchFunction: F, options: EndpointOptions);\n\n  key(...args: Parameters<F>): string;\n\n  readonly sideEffect?: true;\n\n  readonly schema?: Schema;\n\n  fetch: F;\n\n  extend(options: EndpointOptions): Endpoint;\n}\n\nexport interface EndpointOptions extends EndpointExtraOptions {\n  key?: (params: any) => string;\n  sideEffect?: true | undefined;\n  schema?: Schema;\n}\n```\n\n### EndpointOptions\n\n#### key: (params) => string\n\nSerializes the parameters. This is used to build a lookup key in global stores.\n\nDefault:\n\n```typescript\n`${this.fetch.name} ${JSON.stringify(params)}`\n```\n\n### sideEffect: true | undefined\n\nDisallows usage in hooks like `useSuspense()` since they might call fetch\nan unpredictable number of times. Use this for APIs with mutation side-effects like update, create, deletes.\n\nDefaults to undefined meaning no side effects.\n\n### schema: Schema\n\nDeclarative definition of where `Entities` appear in the fetch response.\n\nNot providing this option means no entities will be extracted.\n\n```tsx\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n}\n\nconst UserDetail = new Endpoint(\n    ({ id }) ⇒ fetch(`/users/${id}`),\n    { schema: User }\n);\n```\n\n### Endpoint\n\n#### extend(EndpointOptions): Endpoint\n\nCan be used to further customize the endpoint definition\n\n```typescript\nconst UserDetail = new Endpoint(({ id }) ⇒ fetch(`/users/${id}`));\n\n\nconst UserDetailNormalized = UserDetail.extend({ schema: User });\n```\n\n### Index\n\n```typescript\nexport interface IndexInterface<S extends typeof Entity> {\n  key(parmas?: Readonly<IndexParams<S>>): string;\n  readonly schema: S;\n}\n```\n\n```typescript\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Index } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n  static indexes = ['username'] as const;\n}\n\nconst UserIndex = new Index(User)\n\nconst bob = useCache(UserIndex, { username: 'bob' });\n\n// @ts-expect-error Indexes don't fetch, they just retrieve already existing data\nconst bob = useSuspense(UserIndex, { username: 'bob' });\n```\n","readmeFilename":"README.md","_id":"@rest-hooks/endpoint@3.0.0-beta.1","_nodeVersion":"18.8.0","_npmVersion":"lerna/1.11.2/node@v18.8.0+x64 (linux)","dist":{"integrity":"sha512-qSVN1NfwIh9JmpqtkdEeAG8XkFyOe4PFzH5vlNzzpiwDFf4xNlLfrAYdEb7I+2IOhx5YV6LDNJb6hff5dm9Q6Q==","shasum":"75ce9e184fb967cca4b53f7a851aa3454c61ccc0","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.0.0-beta.1.tgz","fileCount":152,"unpackedSize":638120,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjUPCmL3GLNBeYcUo22s+uLHiWsVemJxQboHFULXv7aQIgKQbV0Qdm2erB9Cn9v0tKAhixbMnA22lnc4wepIag8bI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJjkBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpLHw//SMbfnJ2WuDO8nC8ynPRkXhIJ7HLqDDEPkDV6tD/PHP0XWMw3\r\nZl+7+nZGXBwOpaFKRb+kmHjc8RyM7kT/b8oLJFGLi4/s0fZje9O9g3MNvcB2\r\nhV/BwK8pcotOa7sKPhA0WttdqaAjTvkmpQHpIUmXD9u8Jh/qy1mIE8In2bkf\r\n9Fqtx5UE5Gv8tRiV/tvBYGWUAogaR3S0tUah2mHdihA5HcdkatxuRH6i7nkW\r\nNYu0MN01sRqBTi9xi1pNGqYD6uiqjKBdV/c86d7cRnENHIoX1yGnPwKOFLIF\r\nNLblGA9+6apd8Lnoz0BUEJNI6fp0vVDHly+doZ7ISf1JSfF6Uq7rlci5C3ZS\r\nB8Htl06V6CaBEEo7SqMJ2EpCfeZPTR2H06uVY2Fh5Gjads5vzKAFTyczYKyk\r\nra6vJ9W+MILntRZiPKa+hSfbVqyzoa0Ibrap+dDuzpaalwVT24O111MbWqSQ\r\nlDWrGaojk33HYDdYs7PwjDoxv7CXWh3piwAu3JyvDUgRFJtxOatGP3HXKyEW\r\nBFtBC2LLuwW3dyuQqu7uAotKuRfZfN0Gf+m88l/HABjUDo0a0Jx769PBGtFs\r\nAl/aWfbyRKsvyjHc3wM3Wgp9hRvBXds7UACU6tjR16RFx+KOElaQjI3bG2So\r\nMpaVF27SosPwM0xtkksmHagChYC9JaUcdbE=\r\n=QvH2\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/endpoint_3.0.0-beta.1_1663449345540_0.7093449289805727"},"_hasShrinkwrap":false},"3.0.0-beta.2":{"name":"@rest-hooks/endpoint","version":"3.0.0-beta.2","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0"},"devDependencies":{"@babel/cli":"7.18.10","@babel/core":"7.19.1","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2","typescript":"^4.8.3"},"gitHead":"e111578cefa1cdd5f467aad6c24edfa0b701ab16","readme":"# TypeScript Standard Endpoints\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/endpoint?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/endpoint)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDeclarative, strongly typed, reusable network definitions for networking libraries.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs/api/Endpoint)**\n\n</div>\n\n### 1) Define the function\n\n```typescript\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nconst fetchUser = ({ id }) ⇒ fetch(`/users/${id}`).then(res => res.json());\nconst UserDetail = new Endpoint(fetchUser);\n```\n\n### 2) Reuse with different hooks\n\n```tsx\nfunction UserProfile() {\n  const user = useSuspense(UserDetail, { id });\n  const { fetch } = useController();\n  const updateUser = (data) => fetch(UserDetail, { id }, data);\n\n  return <UserForm user={user} onSubmit={updateUser} />\n}\n```\n\n### 3) Or call directly\n\n```typescript\nconst user = await UserDetail({ id: '5' });\nconsole.log(user);\n```\n\n## Why\n\nThere is a distinction between\n\n- What are networking API is\n  - How to make a request, expected response fields, etc.\n- How it is used\n  - Binding data, polling, triggering imperative fetch, etc.\n\nThus, there are many benefits to creating a distinct seperation of concerns between\nthese two concepts.\n\nWith `TypeScript Standard Endpoints`, we define a standard for declaring in\nTypeScript the definition of a networking API.\n\n- Allows API authors to publish npm packages containing their API interfaces\n- Definitions can be consumed by any supporting library, allowing easy consumption across libraries like Vue, React, Angular\n- Writing codegen pipelines becomes much easier as the output is minimal\n- Product developers can use the definitions in a multitude of contexts where behaviors vary\n- Product developers can easily share code across platforms with distinct behaviors needs like React Native and React Web\n\n### What's in an Endpoint\n\n- A function that resolves the results\n- A function to uniquely store those results\n- Optional: information about how to store the data in a normalized cache\n- Optional: whether the request could have side effects - to prevent repeat calls\n\n## API\n\n`@rest-hooks/endpoint` defines a standard `interface`\n\n```typescript\ninterface EndpointInterface {\n    (params?: any, body?: any): Promise<any>;\n    key(parmas?: any): string;\n    schema?: Readonly<S>;\n    sideEffects?: true;\n    // other optionals like 'optimistic'\n}\n```\n\nas well as a helper `class` to make construction easier.\n\n```typescript\nclass Endpoint<F extends () => Promise<any>> {\n  constructor(fetchFunction: F, options: EndpointOptions);\n\n  key(...args: Parameters<F>): string;\n\n  readonly sideEffect?: true;\n\n  readonly schema?: Schema;\n\n  fetch: F;\n\n  extend(options: EndpointOptions): Endpoint;\n}\n\nexport interface EndpointOptions extends EndpointExtraOptions {\n  key?: (params: any) => string;\n  sideEffect?: true | undefined;\n  schema?: Schema;\n}\n```\n\n### EndpointOptions\n\n#### key: (params) => string\n\nSerializes the parameters. This is used to build a lookup key in global stores.\n\nDefault:\n\n```typescript\n`${this.fetch.name} ${JSON.stringify(params)}`\n```\n\n### sideEffect: true | undefined\n\nDisallows usage in hooks like `useSuspense()` since they might call fetch\nan unpredictable number of times. Use this for APIs with mutation side-effects like update, create, deletes.\n\nDefaults to undefined meaning no side effects.\n\n### schema: Schema\n\nDeclarative definition of where `Entities` appear in the fetch response.\n\nNot providing this option means no entities will be extracted.\n\n```tsx\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n}\n\nconst UserDetail = new Endpoint(\n    ({ id }) ⇒ fetch(`/users/${id}`),\n    { schema: User }\n);\n```\n\n### Endpoint\n\n#### extend(EndpointOptions): Endpoint\n\nCan be used to further customize the endpoint definition\n\n```typescript\nconst UserDetail = new Endpoint(({ id }) ⇒ fetch(`/users/${id}`));\n\n\nconst UserDetailNormalized = UserDetail.extend({ schema: User });\n```\n\n### Index\n\n```typescript\nexport interface IndexInterface<S extends typeof Entity> {\n  key(parmas?: Readonly<IndexParams<S>>): string;\n  readonly schema: S;\n}\n```\n\n```typescript\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Index } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n  static indexes = ['username'] as const;\n}\n\nconst UserIndex = new Index(User)\n\nconst bob = useCache(UserIndex, { username: 'bob' });\n\n// @ts-expect-error Indexes don't fetch, they just retrieve already existing data\nconst bob = useSuspense(UserIndex, { username: 'bob' });\n```\n","readmeFilename":"README.md","_id":"@rest-hooks/endpoint@3.0.0-beta.2","_nodeVersion":"18.8.0","_npmVersion":"lerna/1.11.2/node@v18.8.0+x64 (linux)","dist":{"integrity":"sha512-rCDOA5i/s1BAu8+zpbhteTv7JYKiV1YuKVICAXXapYxipcV6Yk3Ki9aUerrqlFDyQZ93fOSkGC7PWmUwSx6aRw==","shasum":"7d8ddbc89d8f5c2557d2f89e45a39f67b089e742","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.0.0-beta.2.tgz","fileCount":152,"unpackedSize":638157,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBnlO1EDLuOp2v+cZyzJ9FovJMlVZiHJWiLU/CfXnVkgIhALxDwsSMGhCGezf5gsbus22HmtJaqOf9wD+dt1vbf3Yo"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKMNKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpbXA/+PJVJvbmMxjinNx5Sd6y9QOfwKvNLK2CeAtVQcsXd0lUW4/VI\r\nwrNabtUqB8jy6LNByv3CFTCoBuX5zYhf904mLrBy8sFnyxwi8WqOzA/W7Q/I\r\n0YnJ+5HzR7c+8EFf+ATcfGEc7NFuuBFUwYxJPUMfTzpZQ/L0dtDFp9UAN+Rx\r\nd1UMTM7BY2OG5dnoy+sw2sTgKzjIoe/CgEO2craCnXR80ZKWn9g1UfjrdLsd\r\nIE9FTNqn7PPHWQo23PR7slhGpDvA9cDdC2iK4bJCVKyEDaT0oULLTzPU3Kyy\r\nO9aR3BMNaitHcVgRivzhtuvXcOJeSrNUggVVqqtO9Q68dDMCyCkZy9fnA04+\r\nQ7NFsp6AKSAOpauywtbMhypShoEulnIQWhIkx9dZHL0xkE8uoCkBrkgpxoih\r\nbuhTfzEkbPgz/UM/gIm+4Hxe6nLqAPKNuaVY8FidNLlsUr8hXBTdNnkJYMIO\r\nOGmDSY3/9taPdaAjObXgFwQyoNEdmnZrk5s8e+v2cxS08IPzNKTHVFsemM0F\r\nXRFshixXehf8d8nTdReqr0YmqkoRqya28fWx15frz23jsTEl3DEyLOHCJ5p+\r\n6dusN4qqrFoezowJ6iDtRR8xMyY6laGeSe5gDIiu0uMBLrdUeAegv2wJftYE\r\nVd+yAjCKDRjFJsMhsm5yEDdsi2dBWVSLZAU=\r\n=P9F5\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/endpoint_3.0.0-beta.2_1663615818666_0.009359501040534735"},"_hasShrinkwrap":false},"3.0.0":{"name":"@rest-hooks/endpoint","version":"3.0.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0"},"devDependencies":{"@babel/cli":"7.18.10","@babel/core":"7.19.1","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2","typescript":"^4.8.3"},"gitHead":"68e5a619f000f10ff814d49f6ed5b9c1c9c09bf4","_id":"@rest-hooks/endpoint@3.0.0","_nodeVersion":"18.8.0","_npmVersion":"lerna/1.11.2/node@v18.8.0+x64 (linux)","dist":{"integrity":"sha512-fMhzxbR9d0AmJbkyNV3fTrqRQdj8E/5ar2RBttyKkQood1vfjzlZjRFdwv3sJxI2LM12z0AzUMVz7hdCp2qVKg==","shasum":"4a8b9f829130886e45fa289bf206d09f50caf417","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.0.0.tgz","fileCount":152,"unpackedSize":638150,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG608uXwsYMTUz5A65vFoKAPBViUrEUYYVwkEpQ6CLhYAiBlaBYOC3ZxnX+M4YIDTZvPdyucmVM4W1QsAucs/dqlxQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKMXyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoZlA//SXG0xjYIRLkn5THBCA9kZf/4Vn1FS1wXJWHUILyt9L/YMnP/\r\nadM9ug7AS2KfSdyAe5jnPKKuF6voG89om7PZ+p9Ngw7HbxORlKgBme18gDUJ\r\nKtLwmOHm9mioDXNMYJQ+KcrquqmATKFDLtbagPt7K53QLp3R8RXuAg7nua61\r\nRayaSf9/Bc1TKzzPH7cMrXZZdDlvg6UZa0NE81WmwPoCdQ1AgVWlfbUr44Df\r\naw3Xhq4wgIht6mQa9SE3uB2mSLLEHx0LgE3vJWc5AmEOkQ8Onyc2tFTkjUnT\r\nSEqGANZ89oYzvXMRIXjxls8DqFsCoE1uRTUTCWDYnqo2uO4q7jKfeq0umnNf\r\nOf5V2QsF37mCJQ4Rtfb1mffh3rZ3XzN9+UdboroBKGMiARpyORHlprimPRUV\r\ntIQGIhObVrVSTP0p5cDM5DrgcaJ4QInHpzQuMZRLjSOh8AD45Jyie6+7cN9B\r\nNJ82y0NqOAqMpGKjmuFKheV3FE0ONSEP6kvkxc8e9ACF1+Be6suGv5VdrroD\r\n9JRYDkg95ZqTH2KxP58IIWoN55P9PnAD2DoNY3OT4/eH6le+3fiwUXkMVVc4\r\nyXfFEqD3oTaYVy4fyXMgj/lXD76vRd+973A7FQ8QHqlwmCNoT8NXkK1s9qDX\r\nfjKXWNdj2e2HRp7Zg9osXjagK+RMWDT6N9E=\r\n=OsxL\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/endpoint_3.0.0_1663616498297_0.47011708799170937"},"_hasShrinkwrap":false},"3.0.1":{"name":"@rest-hooks/endpoint","version":"3.0.1","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0"},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.19.3","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2","typescript":"4.8.4"},"gitHead":"c5079b6eae8b77593a32423bde11cf5805f1a994","_id":"@rest-hooks/endpoint@3.0.1","_nodeVersion":"18.7.0","_npmVersion":"lerna/1.11.3/node@v18.7.0+x64 (linux)","dist":{"integrity":"sha512-O2TJyzxCKjMNGIWj5AQZ+8qVQPPdIErryINmFn2nWaPOR36+aeWiTEBhMmClnWdvwXXgh4D9YpFwTvLzqrE0sA==","shasum":"7f70f1dd96501f9a21f46b0f8dc66aed3f3a2ef4","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.0.1.tgz","fileCount":152,"unpackedSize":639535,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAp60QLYqAV6T1LKDOfTNq0PttTmZLwphixQihICOHm3AiAatCZGrFQ14twDwm5cI+5gNSg3rcmEbggTRmIEvmHFWA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjN5bFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrOOQ//VWoqUhtA6wXWhJTCLK9AGAv2YFo3GebIMl6zE2zYyi2K+Gtt\r\nPjy+801Q+a4nTHWAMFW/HQ0hwv76sSUcO7u8Oph47EO21s7F/aiIB5pZJ3c2\r\nC4cN9VsiNx2lyNQw7sfmwbNGWIJQOTvXT8V0zxaFe3Q1oPmsA4RYYY976r4u\r\nT3Ppxskt+kUerQpS9k9Cc/FJEy+tI+TPo6CLxZHRnuBINV3gCjBYafaUfUCA\r\nwdUWlMtMyWA9MCCgiUdfOFBGwxheHuhbFPdDIlP8kaNJNthLCAaz6ybpIVS+\r\nh6KWDZRPFDNoEfQ8fkrWi5UkOhWjoMWRy5gKD8+SiCqUrny4uGHIdbKamt7i\r\nzfUtlIT+39kde86Hhh+bTwk0H4qFM/QGE1x/m5EpPh+TlCTaOGFo3UxXfOGF\r\nDPeRn6OlNKB5/9wIu3YU/xKXmmGKeyQCzoV7BPbg2YdbyTnwbOUgap5iKJP4\r\nRyhn2f6uSJi/iphOMzxU+4kaez1Vv08+/Ia1DLijYf4xyeeroL7Vg74ABcbD\r\nR7qPGEzb1652/7NW0Ayslvey7gHoRjPD9KMUxDmK6dc/vlhNzxmL+Dw4x/gi\r\n3Ltdo5pq+EcqGhg0O42q3T9KivF8t0QaTlIbRKB9YZ8hWfO26kPVkjon+VK5\r\nDwEl9bIHPMxf5ejLjo/su1XR6WQ7H4x5FOM=\r\n=EYXL\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/endpoint_3.0.1_1664587461438_0.9718734947688985"},"_hasShrinkwrap":false},"3.1.0":{"name":"@rest-hooks/endpoint","version":"3.1.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0"},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.19.6","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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.4"},"gitHead":"da31e4b96f2a337951b131c131b5ab8308804c1c","_id":"@rest-hooks/endpoint@3.1.0","_nodeVersion":"18.11.0","_npmVersion":"lerna/1.12.0/node@v18.11.0+x64 (linux)","dist":{"integrity":"sha512-UpNYX9hdXAom32+uLSUZL2pEDSXzUCQJHghjvXNNk1CaXvemd7vplIopgpbFprv8gUAxLIfNtwbwwwB0Ujfx2w==","shasum":"a20216e77d28c405e128e2029a7b8cc7743ceb12","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.1.0.tgz","fileCount":152,"unpackedSize":642486,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCniYZtftDw9Y+x+a5Knf5HWy8zlI++cLsZkjrrGfFpHQIhAOtvIz2Nxw3Yr9rttu0T5nHuajkDwqtMkESvKNnqgP0f"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjW0zsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoGRxAAh/Fvq+XypJVeClbJG+ymKvCtFpVYKaPoQ83/tKZHHYYwgTXE\r\ngg//tzy3JQ+pEs6xzYm153uiqUxCsh50KmtfgNVmVPU1JROTjOyIAtLF04W9\r\n177FXdMU9bNTq9f0qPUd3oLItXF+cujiQrgT1VbDOQCHqMMCsBEN9d+ooMKv\r\nO65QZ5UA+l9aIfEKotmOAKmJdLs/Y5NjMiuo2ixffqQaLW6F6QX3VRcPQ349\r\nc+7+5STYUwu8hdueRnp37ZGWHlFlb3Qpe8njbVlJwB0/C9SjKxZbI7yHQoOx\r\nEDR9vhZjfJ/H4wTgaj8pMsmQZPm4ZEJS5mUeg9zoUff4ixO6lGBNdxtPIAAn\r\n4kieZCRUC1QBRNyOd2RS6fRz+gSIUxNeKi9inEfCFye18wa4X+wXPC13GelR\r\nvoELJ6vXY9e08nNnADtSG/N8n8Muz/BUfJDQPGjJnM68NyXPe5TSWEQ17zoH\r\n3NXHUmwOXhFt5FH1EJ0hk6TM/r1VCIQl8a+9fdGgU78VsBYIgKjCHELrjXRa\r\nVgUmznirYJOMGZJzW1PdX8Wl/FHZ7Jf9C6PlFbzfmtb6OGarVGMDLmiy2G6c\r\nCAsoXH627Odf9380SbTJ5YgbxrZk+Kh3j/Bky9wCcg85VweIsdqcZoZfdYrF\r\nuwOfo9I1BIordElox+pfOKcHKpUYApPzAyA=\r\n=P9Rk\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/endpoint_3.1.0_1666927852701_0.14200155214732768"},"_hasShrinkwrap":false},"3.2.0":{"name":"@rest-hooks/endpoint","version":"3.2.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0"},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.20.2","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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.4"},"gitHead":"1b4f0fca08dbcf745107824e6a082a5daff099e7","_id":"@rest-hooks/endpoint@3.2.0","_nodeVersion":"18.7.0","_npmVersion":"lerna/1.12.0/node@v18.7.0+x64 (linux)","dist":{"integrity":"sha512-H9PeTJxuPm+lRhtzc72f3TDzs/Tw03aR7ehzrdyK85f+PUat1/oFOa+zcWmrf9qTjjOrs3G+n+I912+hx88Lrg==","shasum":"223f0b22f6b165e1fbc9c53bf23c8603f124be06","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.2.0.tgz","fileCount":172,"unpackedSize":705037,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCMXG6B4wXRhopCruplNUcKu6abbcHBS7MvoovYA0SwgQIhAPgIUvGt05tpzK9mQKFen5Ejc6R/LaqfqaA0APDxYoTI"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaFn/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpeow/+PqfSjLCvHWauXnn14IzlOJpW9PStsc5RrXeZFNH//yabCA+o\r\nuIjGtxN/fsQUMVikf6kX4ouxogbpN949gpFGIjNvwwy36+OtWcv9v69CAWh3\r\nuiYmhTpXgzuiyapH0D/IJCbwHeKHmuBW8scJwyJ9BhtjoE+bsisc3pBQI6Gm\r\nQoMnI7i353L1zu0Ex6gD4n/84c8DZK2+cxGYlnMYec0KuMPZN2Fe1Ig1d7EU\r\nAbd33adAJ8uqwxXIpl7ssZtF8eUxM7dxbDB0uuuGWAc2VVd7dLWkF72aYzs7\r\nuE5t1Go/4LE5nP5TdaWPhjLNroJARZ9vrQXa7/1x79I9aOrbL8vgld+vJs3k\r\nB+bZBsz+SoYFA1yXXTBm6hTvPqgEUnUMEJ0HzK99YGeRXUAYPoE6yrqBDttf\r\nHv+TyL3QmOEqqzTxps71OUm1424guAMKuju1Rnt46LQWo4Bjf22+cvjq5zdR\r\nIxDfrmGQN9ExPaPkTlNG3tP3G+1dPcNwTmIjuefbjiULfO9kbl02IoXShyu0\r\nADHgrwRT+DYEp4/ot4m4HMJL31CCuz6G8iaJtiJG0FyNHSHQCXn7h6BHtNQv\r\nQ+erVnfJbJ0CUwaTtZ2a7xrapuY/JAlsTiAJvcDDd/3eD9to2lSnGIZuP5s4\r\nfUxxhQtAOwPyMgYzPktBJtaymgMSjvnxcGg=\r\n=CPLM\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/endpoint_3.2.0_1667783167099_0.7934530847697172"},"_hasShrinkwrap":false},"3.2.1":{"name":"@rest-hooks/endpoint","version":"3.2.1","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0"},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.20.2","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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.4"},"gitHead":"009489897ff58c5520333c1dfa9264279688f914","_id":"@rest-hooks/endpoint@3.2.1","_nodeVersion":"18.11.0","_npmVersion":"lerna/1.12.0/node@v18.11.0+x64 (linux)","dist":{"integrity":"sha512-qc0kHouxAK5udioVr0c4xJCAF2dSwG3n3R6GAdYwRYZKonGoDOOrnnXV+z2T5RpJqvvOWwpIn4e/1NG7Ohnx8A==","shasum":"3e3bf56563b0d469cc75b8f3e7a9845e3be68017","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.2.1.tgz","fileCount":172,"unpackedSize":705071,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE73AsGteNq4ebImy+yxfI/oboAIuddqt9ASUTZnfCfWAiBW3PBdooA8MNQbRcmv87l3T7bJTRjR6AYW0KyVDdFPfg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaxZ8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrVERAAh5dqBFnQzly7jlrOiRVrQYELJG01l45Cb02RW4MncKyqFiSg\r\nIBdMg7FRSwOQjMZuN5tFRTLYfYAq7rUu2/b0gRVpm07qORVAntKYdZMIB2qN\r\najHoBAByZU7hbFxbaJYSXOpC/Xe+fn9gso35FnkD0uh9lblmzVKmnPopDfSb\r\nCu+BlKDZ97aliPukRi8Iqmj34CPFAfFEP3Oq24ygfbFja00ufdo2iwgEtwRE\r\nkLqtbajlWCHDoQOio86aEDmBxr7jOFPMUDa070bLvIc4x2eMCdNVbpxbYc8e\r\nUZjvzcGRplRecE0Wyi6iVZ6TUM9eX5ot/xy2Mhr/C/UV6hYWWBR1RzzzZzkG\r\nPcGN7hT6zLI7A17jxYrTER/xcgakCEJKBZ9J4nmdtunFwLw3zBZpB06CYvJa\r\n9FStiJALsyWoCm1aaAtxMwwfbYIOZ2NwKXsBUmjVLoMnwpBugQ5SVXVtLhhF\r\nT3KST8FV+8o9ywTIu7lntRZ8UwMgPtQzoIsGiDeYx0Ny3YsrPl6yuvWgs2cj\r\nCo4kjQ4OTz3W0QuDxrcZB+evhHSe5Y3P6CQEmkXJsUfjFDErIPAOMQUUabWW\r\n1h6VMlceMX5eeMMXtYjr0iYq1WLT8Ru0N6f57yz1vSTcfHV9j7Jzst3ZP59N\r\nYezXMMTQmEf4LfSElsXkfC+1cz7anhojYEc=\r\n=p57a\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/endpoint_3.2.1_1667962492205_0.14835976087778402"},"_hasShrinkwrap":false},"3.2.2":{"name":"@rest-hooks/endpoint","version":"3.2.2","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0"},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.20.2","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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.4"},"gitHead":"b2bfdbbc1b196f6d310af14cc664c7312f1af6c9","_id":"@rest-hooks/endpoint@3.2.2","_nodeVersion":"18.11.0","_npmVersion":"lerna/1.12.0/node@v18.11.0+x64 (linux)","dist":{"integrity":"sha512-2Ikipf0uHPKAh0+vhtzf8Zz8Ld4mzHOQr7IEyP5GRJ5dK0SF3TcPPxAKMHlJEiYyk1Cpzx3AjcOUI5yCK68YsA==","shasum":"eb1e686bccf9a9bb647204190fddce762c4e5022","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.2.2.tgz","fileCount":172,"unpackedSize":705074,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH05zQ3RkXyzNq8SrJnapqeqVaCIR7DwXr83Bdtt+DmvAiAORI70x4vvJw/ErMBGiqMFpbtdvDYo02/BLvCCQ/3a6g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjcSfIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpoLw//SA+hIX+QcYaREHpmRDI//Gbd51FUOH878rh6Be+bIR71FZpR\r\n3L6azFynCxlvktGOJPLm2bbi99Q2tndunu6kWJ6vThZUgQuO/c1URGfFHTqx\r\n2EplWKUHSDl11ml8VdgnvjzETDFsgtPqTEzjVKJn9/PqVz0/yn/f1U7f+qwZ\r\nEbCH2HDZ/CPxm1MkTd6DvorQ+ECeXwv9ucvKm6sI9FmJqaQ+r0YXj4x/yQ0N\r\nppERG8Q4xyj6Jyrdj+CBdPZKt4ZUcKqfl6Dspk36IJ5HXpq5deucPNm66pru\r\njWahmReHEw0YTpCKD8CJq8QO/gHJXMghVMGXF45SQ8FFjt58tbPUveEjhGjE\r\nn5f36PBSJeGcbUcpf+/+3zJ76c0J2GHrTO0QBsMdHQBVk6ycOREW1SQThLVS\r\nC+jVRQcIgwqTJe+iN5RMkQ1G0DsMR1MNpdWwsBSqqyyBLwJunxn9XGdhgkGq\r\n5qDXE4bJNOQdCSUZpRkMYDnGuRG+v2oisTsgacq90EVGYHlCz5zYruZLQewn\r\nDddtK0lefWErefZ+/K3UAL5K2NKJXshF4J68ruyIbfa3rKP+S2+p0G761wY4\r\ncrzRHAW1y2QJsOL7+ONZqGiu4KU43L0d/+U+ehozj4d7/+C1xDvlBrowzcXP\r\npLkGDWZ65SKvEHV5AdyipdK2ZavLVuSPmuE=\r\n=Kv0K\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/endpoint_3.2.2_1668360136277_0.38362838895275875"},"_hasShrinkwrap":false},"3.2.3":{"name":"@rest-hooks/endpoint","version":"3.2.3","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0"},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.20.2","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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.9.3"},"gitHead":"5b829b7ed0f039b8fd6404417e56b2d32218b623","_id":"@rest-hooks/endpoint@3.2.3","_nodeVersion":"18.7.0","_npmVersion":"lerna/1.12.0/node@v18.7.0+x64 (linux)","dist":{"integrity":"sha512-2MoHjLuPjD/cak9+tUdTNfyRcFVZiV70k1jGwvp2/B8KJNSGfH0dYZXGoHAwfhBypKKeEiTW3xDRk7J5Fbgy1Q==","shasum":"60bff6dca7af181e7105b9359f79b21a73e7496f","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.2.3.tgz","fileCount":172,"unpackedSize":704750,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCn5vKY3zf41yEc8GIWD9ybVK4XnFC3vr382T4pUf9shgIgLob3EA7cYn8OrA59ELlcHY5J0E7bsEZ5I7VYOpOc1ao="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjfUQHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmolVw//QPm0k19oU3RNExHlrkZddKwasTORXe2OKzknbga41/REgez3\r\n26XBOSe+GZAetRMmkdhevdunkU4fh24C9EMCSiQS0kdt8u9lGfnU9yhqdG/f\r\nIWNqZH8aJLu5ahiNKWOVzvIMSSy6OT9u33bOYSLuOBUpxAlq+bO1RmR3KKRs\r\nw559dyDCJ+gRMRZMvPttqaCfpdhFCNZSPgTwl08jjYWnUtEIebPeNj/kVzuw\r\n5eK2TYVVHRTayM637owixXA6yHlnFas8bCZ1Y8nayNJdogUf2igJ7Bj1aS7s\r\nRxwKTOCs98sB4nOF+FE8W2oS7ZI/kvEW26Yj7eXXjurugYRNdK5j01uMTH+S\r\ndBw+sl0og6dW/bA0OWAkJ7OJ0QApGFRZ7yyhJ883fpzi5Xe513M/yOdPJCwB\r\n0GEHUnJ1JyldRc7aaCfzNfKKqpVk9sqrRvsB3+usDoNNnL+TiJQwGMGyTgcl\r\njdlNnQ3IezJOE+ridb3XrVcswhS93SsP+8AbAD/4d+XJc+cOVV0OS1RovaOo\r\nuSQ44DT+v9+2u9SsTH/NYqE0K7gf9EySb0uAOAHeM+fkR5z4hm/ibjxSFyqV\r\nrCe8DKPmuAM3Vh02ezTJBz0XcZ/L1fm/EWNl6LjixfBtzedws3IC7MPzVPTz\r\ndiuaNEQiygtRCSB7H2epTDW4u82yXg2F7lg=\r\n=5zRd\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/endpoint_3.2.3_1669153799037_0.47821303068557897"},"_hasShrinkwrap":false},"3.2.4":{"name":"@rest-hooks/endpoint","version":"3.2.4","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","core-js":"^3.17.0"},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.20.5","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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.9.3"},"gitHead":"27c3f8290727a434b9382c6c0e6c78e8fc1febcd","_id":"@rest-hooks/endpoint@3.2.4","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.13.0/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-z28QdF5OYgNj+s8CrvQhMVYYp6IuYOPWVYHowdfvlfH1r/oT2oVdmoC6y7U0TYQxuDI23UMWM+n0O2Lktsl47Q==","shasum":"b67e470336eedcfe292f27ceba95a0ae57dd75c1","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.2.4.tgz","fileCount":172,"unpackedSize":705417,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA/Npzoj8TwbIl7gHOI0dejqE21QBafvmJcET+HwbSaWAiABtgiQtrboHOks4WKNu5rIh2yirqrUzsDsn/GjVsIcGQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjVwEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqlew/9EEsNCvxD6Au4USuNgaUg2f5o6fgvTL5O1Kv1PzV9qDsTCviE\r\nGsvsWR2l2VtPnpihlhfk8BRzjW8U1PiroCmX+l/t8dQqh8yOfMY4x27XKmT7\r\nkdZQVDWZr+KnoazefqlKkoC70qpak2M1wCOhLLJzSGaDy0BTbkz9oVIyImtR\r\nBI6YphDMSdcrLJWiBNso6N8PTD93uSgi1IJ6jb3XwOAtVgZMVESGReA6uov+\r\n8HLtt1mYseJpD38+8+LU3Bi65d4nrkUHSdilnF1pAvmehVP/hivs7nhiMApg\r\niuM0Xyo5IXpQcrE0nRRNo3rR+icYFFJY0gfYo3XrhwHoTFJWYkxaJJ5vDHJZ\r\nEl3JeowVN6Q6+5mcbS9XHd88NnQ+Dm/sEOrLE6K4DA3sS7jU3F29HLJD2GjE\r\n5mOL1OkrA9ZpEVoEKaoigaaP+HoQYN2Q8mUoYGbIu/FrHauAtIfegwRmefpR\r\nh/kuOwATd8CwCooLcQVgUISf/PnHFMXM8GV/+5y6g231YlqWcl0kf5SXka+f\r\nvankp/XnBjQzqtVvXyXJ5PSs4uFSv95jkXH17sWwbRXGwbXBapZEeTfBrNlR\r\naPpC9r3qEx6B8n/jRONxC1Vpr4KOMA1sinKOuqVNUo3rxjr4ERqyvIt9QcUB\r\nuIdJHakJ6W7EBn9I+sFM7Sa7/GsO7YRjYFk=\r\n=KhJs\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/endpoint_3.2.4_1670208516450_0.5288604502167278"},"_hasShrinkwrap":false},"3.2.5":{"name":"@rest-hooks/endpoint","version":"3.2.5","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/api/Endpoint","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.20.5","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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.9.3"},"gitHead":"6706fb45ea5c8a3183cb9b216d8c9fec69c2f4b6","_id":"@rest-hooks/endpoint@3.2.5","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.13.0/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-oczvgINbG6Q1IFj5KMI9j2T38GjXndiyEyy2o8kj5qgj5Sk7hk2G9j8b2rLjtqaO+hAahbwmW7qCxiMy9pCCBQ==","shasum":"17acf11831b5e78292102efee55b16cd021f2dfb","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.2.5.tgz","fileCount":172,"unpackedSize":705576,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGqrIdNkt1Lt7Tm099G05mAWwWXeoQeWdP2svI+thrthAiAgXz1u2rl4ncMJP1hZ3oeL53kumJM1I51qXyBK2GHwWw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjj7ftACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrY1RAAjjKINLURP+Qm3+dZ0dTGH6/g6w+2VudvsWBIHVPonNQWa7Gv\r\nzREAOSJtF6c8Pt3rVp9tGijVIqw7xnyEOWs1X6X7E11o2XpNC0EoCWvWaeCD\r\nWtgchQ+3qwCM+PY8vzggSNtqUHBvBfeoOy0NPaCC3Yfs92xITEQnw5iqlZnT\r\nfLGh0aMp086SCVnce5uPDtJSPowDOUBLmB/rw2BM0Wzdgqqhd+TMYo/ZXmMf\r\nZ4Ac/GxlgtZ1TVVonBDsCnHMAVZJEoi1eR++jLJ8RmHEg/o5IcOj3OnI2F07\r\nSPtKwH7q3V5vvyxlCX6rPlihLDK723GklQDRhn2VXGmK9JC4DEo/H/B2N7PM\r\nd9lahVYtwnr4kaVRKUHEY9j9VVdknwmuiwPVmMxeVAx985bMAZIVeJU0Cotn\r\nKWF8kHRvGgMza6rzKfyHfQjf9EgKpWCSEgFuncZPSyiRVHUnnptobgAoizHR\r\n7eDA1ZAl5S8RLzT1SYZWE9m102iXYAa+FCnuPDwnIp8rTW4tXeiHLBXi0sGI\r\n8/P5TNX1qhDuhqQ/UeGt23NY8mbax3PXHd5q0CJvj3qgVNhpwfyUOZ0GhTjl\r\nXd5w1Z1ki0M/gAkU90DVh2nvHQ/5lkeuyV1U6WPvDLlHGx0fhkOVmIWmbSup\r\nWQ7e0Pf+/ZVINjLNMeS91yT2fvUvc8Vcf/I=\r\n=1zDc\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/endpoint_3.2.5_1670363116892_0.7303288042176161"},"_hasShrinkwrap":false},"3.2.6":{"name":"@rest-hooks/endpoint","version":"3.2.6","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/guides/custom-protocol","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.7","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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.9.4"},"gitHead":"78a50ea056eb897adcb9b36b16d77947094c29ce","_id":"@rest-hooks/endpoint@3.2.6","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.13.0/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-jcuPTcL4CfdUjts0Zmzud/ftTJ8oUQYD6K6eHByuXG96kWvun4jum02+q5jdeAKcYzB+Q4VZMvsZKJbUphmbVw==","shasum":"dcd2ee2d51d44b256c7a35e42820d6a503d82596","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.2.6.tgz","fileCount":172,"unpackedSize":705701,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHxIofKiL0xQV2oZPdPImXoISkFP4IKcvKVvvypagEEwIhANMfBu7DKsPdmpj/iQ51x7UwlnIwSN8kI+VK7hyuXJsI"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjpdWdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp88hAAlslWrO5bRmZdmqd18ZS77PaafFbhuWI3UvlofsqpHZu21oHh\r\nLotRL7xadx7y5PwqvxiLiC3SKP3ZofdQ6OlCUnY/HejpQlpPFnURDStaqKS+\r\n2zL6qmOe7sVA0BTNGPMzY3Ufif/iuYODA/bDOch0ps1iwmtznLACAemJXIBV\r\nn3Nos8VleILn2YhnxaCNpglh/VwTHj0y6NTxSYtmqn344VXyuVdglYMHUluB\r\nOZS63D5jUBM0TZTGDblJWD9snUvXPqS03ODKBYP1HY0dIFOtvJymBE3qnJKS\r\n5KDavWg4AJyUAUtoiHmJGSu4b8RqbHc3CqtYDfHWQlUaBlGGnWGjDsalspXU\r\n/Y+L8pZVdnOgYN3kpqYKDtI1+057i4ZGESIAWcEmnJhFprErPete4hIGG8/F\r\n3Gz42ML+CWwmS01WXsT8x1c2zHVo5FyWt79uXXwbwGJgDX7ih2yHoKKBtXeK\r\n0Jw7bpTllV4Ov6cVuGSrPFzsOKA06Sl3yZemoTJDWx8b0RJO0tg2wQfSa9L0\r\nuGltZxNZXO3IfOLh+bAXWekaiybdEEdjc9HaltCFA8z436id42tyy+Q9CLew\r\nO7QKmKHvYlG0M9EXqi/Mv54rczuYAnqp5Px14RyicjFS3ggw2l/+5bEol2Ix\r\n5z6wqNGD6UI20dr4LswqPOtzph1XHVzJ0GQ=\r\n=2SOp\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/endpoint_3.2.6_1671812508836_0.045568424336767555"},"_hasShrinkwrap":false},"3.2.7":{"name":"@rest-hooks/endpoint","version":"3.2.7","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/guides/custom-protocol","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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.9.4"},"gitHead":"8d55a3e12e62da52f863a9e14bcb52615431ceea","_id":"@rest-hooks/endpoint@3.2.7","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.13.0/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-3N/xuz1XaWFUj74JUHEOiI6xxmF/veg4+qH6CGm9KKEhAPuYHsvPAMS/R++cvr/0J3EgPX9/V2kwZNlJqRFXNA==","shasum":"7d849cb3930b12b5bbb2a37dc1eaae43831d6d7b","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.2.7.tgz","fileCount":172,"unpackedSize":705702,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCiwAX1ss4KnssQcQMx0hbgQtN9AKIRleGoiM6NaRNoVwIhAKLcyrSd+eB/34IVyCDOTADxodZgdTxs5ljVAp2BTIhL"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjwLbOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr9NxAAhTEONy/G76T++vwXcfaxqM67tk8BG2QKzOHnShc3rL6CvlI3\r\nPu0RkdG8wxVdLyJ+acqdTtUqlHuZxPLs8/c50rYQgmUx0WobsTErR3zZgxHu\r\n/mheCdz8SCfqHh7VJ4A0Ae0i8q19ec18Q9WPOrCtSYCJs6Y6erzUlW7Lo99s\r\nXJSPohd/2GZRpQeMP83Pb5lA4bweWZNF7b0eVy+ML/NqJNL4r7LbmgXdDbuh\r\nEgX81YamXERleXI5pD0ifXALRawukUcelKf7bnxEkVaYaT59lV3BlQvqnUmv\r\nWLrJ5b7I3cvuxC59Ic1GsDyBJDx/oMOgPy+u2DIy33ljI+ARNoueYHBE3abe\r\njlx9elLq1WLInq4VxFMa2DdYNPMFRftYV24vOs8MMGlc0iel6fLnjg+cP/Fa\r\n1GHF9mIl/TOh8Xp7daBGnJ2NnehfS6MkWNwmsZJwK1Fr26C3mtg6nDwSsrSQ\r\nydR85ECl2Hf9xeLHSxjCvL455Bl8N3P0w2upkSJqbEeKx91EYwSq+l4wMrwB\r\nuM76KmsWlws4kbkZxxJCKkFHHi6ubsyolBpJolsyoEWd6RWgf1I8xeoX4mGb\r\nzWIpyvGiWV+wj+1sb1TURWPB2cLCCA1k9/iuJOfPydq60I5G8lYsSzw5n3+K\r\niaP9Bleu5Uipwr4nsQr8azU31Vypl5y7zkI=\r\n=H+xk\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/endpoint_3.2.7_1673574093945_0.7187400743292034"},"_hasShrinkwrap":false},"3.2.8":{"name":"@rest-hooks/endpoint","version":"3.2.8","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/guides/custom-protocol","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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.9.4"},"gitHead":"365bf04cc2dcef81a87d4c830c0a6c689eb32044","_id":"@rest-hooks/endpoint@3.2.8","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.13.0/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-PPDLnZbEQbL7mH/q3XgaepHAEaKNfw/0vvqdBEWGqK0e+T9BQ0ICrXuMlMGR6WBoCSbajYe1FJjM1sg/sI0GTg==","shasum":"85fa4d5b158baf8d943e0333f494c10772021b68","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.2.8.tgz","fileCount":172,"unpackedSize":705693,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYZ8p4IcJROJssKz5GU9ssiZgA60LeXpsTBlrA/jmeIQIgD2HX6DsfPmC3nwWjyXLOzfS8SjiJ6vLtFL1OIoHM+6g="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjwsTJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrf+A/8DRgi/v3Ep7VbrTLyFF4HGmFV1TuCCBeIYnBV6CImueputm1F\r\n15bphAN0FSEJC32IioYZ/63Ct1W30l+yQS0y1Q5qNbZ6EzUNStNVYhU8QsQt\r\n2ZA+BFycffMEWND6yZXgqoWDdZadB1v+FQnaAAqX+OS9B/P2UfhCgGJ5AJYe\r\n0Z/Sh4BA65H3opNQdMD0i5gW7fHhcMqsC9pEC1VUpb9XKjQTiZaalNvdOnGg\r\nuvA0BSGZf2k062MFirPaaHfSoq/z8quGn41fOpwdG0NUm9HzSXq0AqeYdWjg\r\ndPZEBmzpqYHMcxBC+hm2thU5mnm56jGZLds9rXF3dE7BpXq4yU/yD9wQixkx\r\nGI1Rhnfbos0gQVZVpojOfECoRiJKWqVdFZNZEIWTksSyf7R/HyXJhKBUMUDC\r\nnb110CwdhAS2CLkvfMKV3J0Ns+Rg9U2GDwwJpDd49tFho6HJzPIOxVV1QqrL\r\nYYkxyFFQrB4r0D89+18QBEgdNMRMC3/rH2ny/bu6/9QLNzswmJapmB1pgA76\r\n7vx8IEvd/AWai3OLpu2cp1xKq1/I+KWYRcCQBzBLUncrYMmLOJ983Lni8aMa\r\nEczV6VApiImiL6mw7tuLgGMtK3EcLGc6UAgCin1cREMwnM54HEocdO29/fPZ\r\nRPWHGp7mDUSDp570OrPSNanmKv+xueKKaEY=\r\n=lRSu\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/endpoint_3.2.8_1673708744845_0.44813046436637394"},"_hasShrinkwrap":false},"3.3.0":{"name":"@rest-hooks/endpoint","version":"3.3.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/guides/custom-protocol","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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.9.4"},"gitHead":"86c630b4b313679c7a441cc7fa060dfb9005d1da","_id":"@rest-hooks/endpoint@3.3.0","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.14.2/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-HwDehP42F6rD2tP62xQHgYDXGmfQhQeXehlJ0a5yKV/FEad0K6XbRNq4fEumOrtPRUNy0QC+ey40p/6Bt1ASzQ==","shasum":"835c233a8a6f7b2d8e4ac7d0d682f6957ebd7625","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.3.0.tgz","fileCount":174,"unpackedSize":716678,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDGpFYdj/bscU+0xUXGo3S+U50089iBm/E5iEkbKNiHEQIgfHYM3kgADB4BKX9NPErbf+0d7Jg3DaOtzc9dQt/lEQg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjzqaOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpZpw//drTn6N0irmllpqtXTBPHKEd+Ez5Rw8+gmWDoS+BhEX/FOQU7\r\nC5iwT/QMDZr9a1EH1yAyioAgjfFiFUe60oJgspdbILjm1mxwKAd7D+69w7Fq\r\nVcLsO8G4eezwC1rDGeEk3iLLN3Pau73mCqd/KidWxzBn0UB4zFd4rV8/2Kim\r\nSO2B6jm0jLnuDOvKuFAAy7tXx/NCuUbW84RnmSlPb3mRy728CRI0Gaufs8UA\r\n+5iTfsrilPCPA6HBIDwveP0L5QU3u7MLXSzawlp0VzisYe4huFx+USCxlhHV\r\nbwD17DMdM30lJzVdXYBmTxFfX+R/slGCXe/Gtg827ZDA3Z7R4JIAuFkE0Y8j\r\nmqfoi4mRaktFQ2YpoqaJ5SJgov4FpjVnL/QH126U24PjH7BDXth4yHSK3VeT\r\n7dQLIcjAvy8pr+r2o0wZy20tkEU9Fw/vyYmjIyp2q8blCQbbqumBaKi+mnLJ\r\ntWTo3CwqAmroA+izi+ofbEr1eD6CxtBcUjmFGlItj8HyJv8ujWoT7VUWqUPM\r\n9nSqZajpq+fS96lX+FP9fwXejaiVgnSCBFrBO8neAQcvcWnz9a75OsciQU2d\r\nmNu10qqf7ak+JHxnq0uuEpYi9gswOdr2BegTPEi6sNlmBZ8DRSxsWrJ4146i\r\neSbW1Hw8zP8FkOC81MbZkul6oP1XjeUS8Ek=\r\n=wxhM\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/endpoint_3.3.0_1674487437917_0.146540447152824"},"_hasShrinkwrap":false},"3.4.0":{"name":"@rest-hooks/endpoint","version":"3.4.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/guides/custom-protocol","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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.9.4"},"gitHead":"8b95633f971eb65723424cf4986b1f5e6325df73","_id":"@rest-hooks/endpoint@3.4.0","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.14.2/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-M7N7jFteBoTnv8xj00KMXqQu/imydF657lg68dhyToccF1raxDjBLXCyeSbYtIzDod7iuwwEaRGeV72uwLcTmg==","shasum":"00c4b9aa9b0b175ba96c8f4e9cf394a388e7dcaf","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.4.0.tgz","fileCount":174,"unpackedSize":723403,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNFjZkMx8aehWTzwA8fvvUgjrSz8W/Mec+tggx4nf3ZAIhAPRnbieb3vaUQPr0Lmv20bQWMMtu4AsjsXghQsikMNku"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj1eyAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrm7BAAjm8WoLbUt/g9SApgLTEvJRAou/PWGdQqRFS4quOkWaUd2CB3\r\nwVgtE3c9e7l2RGHrOd/CnfRgM106usV75ZAHvwmbvIXldgt6qFeWLspYan2R\r\nHDNkxjWKrtuJR4jaEmd+cNuP7Rew5jEj7emd+Wlj1s3YeqUWcVpIrORq2UsS\r\nWOHsL6FZXxNPlyzUyPjMXGH/c93G/ZS0YOy3ffiw+B+aHgETczGMH0LArGID\r\nq9p8YHVyZxK3uE+hYSEaKKLHCwPLx8Yz0ia3OLl3kxUdsGpz7x+fgAk95ryK\r\nl4gqNxqhEHS7FA2sgQv17osdAZzboxmwI8lPqVvLXwKu90xMUe9o8yHBbJKH\r\ngG7wJQR8rdBoD7i8xs23bNlcnVXUTL3zkGOFgBb5ntCGL/MP9xSDKPdkMp3K\r\ngmfMEA7R7UX78vvzWQc+Z5eGA+98BpgqyQzkAZJjnPT5rkTO8R5FXKMLj88s\r\nNKxtMAZSkzYrxkdDGzkeYI1lFkai/lm9F9KV6SJp8qpWusUo87lMK5HijzLm\r\nc5tL+oJVA+ifY5dosB2OjLLEzPeNmoNdIJ/K4+qZIQEfdFci2lw0/h15+ArU\r\n2rBPdFyp8jCKb10NCx+053GuKzvuH5y188OVj8PU1xtLuWHZ4Hh45BSV3CkE\r\nhR6dRt4d1tcHPNeKiaZo5VWjDdvJDt+pK6w=\r\n=gtEi\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/endpoint_3.4.0_1674964095966_0.7952764538267851"},"_hasShrinkwrap":false},"3.4.1":{"name":"@rest-hooks/endpoint","version":"3.4.1","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/guides/custom-protocol","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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.9.4"},"gitHead":"45b40604ea463629e63808964090c4f2a175172c","_id":"@rest-hooks/endpoint@3.4.1","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.14.2/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-hUAKUOaoxMVTU/Y6ojskwyZsgoRX3ADk6CuKdP6G8duDepalVIO8E6ogYMaLpHDmaR86eEKNgql7NODEkRmbGw==","shasum":"dcb0f7d0f925b6708d4894e132959b55078ceeb1","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.4.1.tgz","fileCount":174,"unpackedSize":723424,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHfIYzsxVEZjZ90dYnLD5b0qZPSUHzhzLoV9mByWEaypAiA8uF4UC/oz2M0x9MBC0gITWyER45E7SRcPrcWW0FPnGg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2FAyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq6dw//ckZLf+O7GyI1tlrVoxyA7ikFJMp5OjklZy592nn1Y7S4TzN6\r\n1mFou/Z8WanMS11eL7REVeyOSkOeg7MEVEdh38c0hlCe1JdU/WiW6K2tNB08\r\nuYSER1iRrfbrD2gdHv/Ty8Pma6HXVpqUwvbz0WwzNB3ic9DDk224Mu4N1Aof\r\nH5jN3SXXwFcIy2f4vsZPUfzv6lx/JQhz+M5BjEwbAFnbYhYaC5/CWG65qcKU\r\nuYdpIVx4plq7gRxr/o3ls9BVtgqvmeNzwcCr6LdJiC3IJW084iqXY+SaVf7N\r\nRX7Q+BE+vxF4wV3+g9t9TeTsrBggwz/qQJHZuRr/tPMjY8bmrhYtMP1tl26N\r\npOkK7vtF2c5xlwu0frWDwzn6yCaW2iQO0eRWhOUjJ2sSnMeSJH5sszgD/6Qo\r\nLAS6Jpbgcj5uYj6EjF9ftSfR0jA78fVf6CCg8x79dRZ6mTvEJwqtPckrex3E\r\nwUKz8UGdqRxVobiTeI79kKgKPtk/oe7WT54Z2vXcs5tyisBkV5z2cDGUv7Z0\r\nrl52N/Ac1MxuQk5CbL9zEHPxEIyGBtC5IQhozPRmKjNVmSnkjP/99ipPym9b\r\nANBeGBk5npv7tMLQyN4UZbo42nHqC47TwcJUpNfPuzarvM03loyqKK8+mLvO\r\narYmPNrr/9AJwdOhFsrn2jKbA6dO6iCry7w=\r\n=ug2M\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/endpoint_3.4.1_1675120690665_0.9084445214601748"},"_hasShrinkwrap":false},"3.5.0":{"name":"@rest-hooks/endpoint","version":"3.5.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/guides/custom-protocol","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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.9.5"},"gitHead":"26fbbe5cf048e85986b06f35f04d1409c24b6a71","_id":"@rest-hooks/endpoint@3.5.0","_nodeVersion":"18.13.0","_npmVersion":"lerna/1.15.1/node@v18.13.0+x64 (linux)","dist":{"integrity":"sha512-41xDELsq/3bYP5hGO1hRpGOYFl7nqa5vebgqHHbBK1pOm9/7OAnjNnChaVt70/3jIHOXqSLuGvQ18SNBC+DfRQ==","shasum":"c6a172cb495542c766f551f132e190d4bbd45fd9","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.5.0.tgz","fileCount":177,"unpackedSize":795629,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHqXAEb3PkW0C2NuH13ezLe5GG6RcQJtEfDmK53JbXAfAiBf9Y7UrecmxejzyUCK/zf3bDgZIgbKe1b7E+RS4G4YVw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj59p8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpaOA/+Ko55LsuCanBmOf571yJ7m+pGXleUhGr7xiAzQC1qJlzgPLsA\r\nkChGldKag8sP7ShuVt6D/1ChTVYz04R/9ur6/DATjuvtLuir+BjeerFdQJUF\r\nO+XCv2CRPQ8nLru1/PERtelFZkLxgNSH7vWPzvotRFg5p9AiA98sG4ML6rWy\r\nyfTiJNIuhkwmYsu2MYlqaYokTS2fRsULzRXQbFz1ufdKUYkN/gOPxquw5vCt\r\noXerNNZRkt+4112fe994jnkiIydrySrI423zT8LS1Z3R1VY1ZQxrwRnU7AzE\r\nFvLFqy7gihfowheitjvaZA5WX3QFIIBdErj5V3DW2wTgmJUZgpJSXfgH2chQ\r\nGgbb480Rb034t9kM0arC01d6OldvnQLvIQSIlZACfcKUjPxP2sTZOl/KuTcD\r\ngByJbSoxSNcTH5nzsA4S3oN0gRLy1GOsT/4OPyPYTif9njvjyMSWZ980BiaF\r\nPti2Wy0YyBVTqQMHJujsP6hcmQRh4kJQ7CNwk2fHIWbMRnsDj3W2mMUP+wRd\r\nmH7VsB53BRY77Dcxjsa00wHpPWIz0NbmDJ/K7uctf9hXnLDTYHVQzhS+fs/e\r\ntDcTIqJUU6qigjpHcpYSWoDzF0CkCgGlg4dWdnP/qePTzYU1dVtLtF3JF0xj\r\nrohrQofelPj/gl//0kqLiCvbZbgobaC2B48=\r\n=AnHl\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/endpoint_3.5.0_1676139132584_0.9964037073119714"},"_hasShrinkwrap":false},"3.5.1":{"name":"@rest-hooks/endpoint","version":"3.5.1","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/guides/custom-protocol","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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.9.5"},"gitHead":"8d3be93d44408c4b2b565486df25a30df543f21f","_id":"@rest-hooks/endpoint@3.5.1","_nodeVersion":"18.13.0","_npmVersion":"lerna/1.15.1/node@v18.13.0+x64 (linux)","dist":{"integrity":"sha512-0xzXeFvf4g0khmZBcLQozd9GaSOFp54O1RGL2IVa7RZ7pit7YXws8DgIIkpk4PS8aAW0khqA6XyOMqZAX4WPxg==","shasum":"e8ca84ac2e4514de10ef83152a8ec7c9bcaabc5a","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.5.1.tgz","fileCount":181,"unpackedSize":807106,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVkRhyGuxe93JUOmfi3GZSVgzkGI9RDkObtBeWpM9qTAIhANNYGVaKXIb9Exv8wj6doLHUHz3G8FkHa5QbBO4WH6M3"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj6vzTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmow1RAAmdiF+LT9GKna68cCmh2KlCn4bm3cwNANmYxGlCcX/yj/kGUv\r\nvntgmmFj5B0ccymTy3rAn4flZfyiLf3Y1hokpayOO9W7JUSMrgDZEVuPC+EJ\r\nx/liUdVq+PJQupnwL+gYm5O3p8+GRuA09xpa61iKz5zea+RU2Dp/nCq/LJMD\r\niMo6mr0bPkB7IpsVVROcUvcfAcp9iu+OC/Cnh/v/l6piARTLcfRzPmiRVDR/\r\njrksqIszU6H9QmKwE0fEnJQMtL17whRxuO4JhoGhCBhrYIDUYahi0/HYN+Xn\r\nuYXR21/L6W0g2h9yFIGSAYHS1gTtzm0hjaUvvT1mH5OsCDiu1SE/+KctHYAf\r\n+qhGRgfkoJd2//M0K7u5d4dVvJnERMjLzk+BTGy5g5A2dElloec2GTrq2bxC\r\n9/ZM1PdujLzdk4n8HSOaLwThZy44b+zWzTQH/m8oWuWg4JJBMqDWHmtIuzDX\r\nIpbVrHEQ+H8bBuVtSzfrmBHbjohjDg0v+x5KR1NTg236gCFnNeDK84KC1Ud2\r\nC8Axbf1a0+euqsD+rxOrflVfE8C4Ac0FQM0+Qm0abq9RqtrHunMk2d5YDFIX\r\nSjweDpTiHWlOnozmtHpUcO3WlyPWC+eb8pqcRuXWIFaBk99bQo0GcRhbPAZy\r\n2cGHOXttWvbs29wKfq7oBdRRxs/L75BV1fA=\r\n=NaPJ\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/endpoint_3.5.1_1676344531061_0.8065674575155273"},"_hasShrinkwrap":false},"3.5.2":{"name":"@rest-hooks/endpoint","version":"3.5.2","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/guides/custom-protocol","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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.9.5"},"gitHead":"34cd42bac62a169ce42f6d194c266d8289395d47","_id":"@rest-hooks/endpoint@3.5.2","_nodeVersion":"18.13.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-pJDObxZoUtHkPuEBaLuHU3uBO0V9rzACCtmkHW1gSPRgmpJqXBWPCIVpleC3zm6sR67uMfLT8P2kuFoiuL1tgA==","shasum":"6bfbc66791f82267c55e2427d48de610899c6287","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.5.2.tgz","fileCount":181,"unpackedSize":806842,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAa9awyFpoTDf9Ye1L6cFgxEVldljA7qKF3BwaCL3zKVAiEAuRRiMkJ4mjcI35N4XGi3REKUVelZT55DYRaEEW3Frgk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj67veACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo0Yg/+LazHxK8dzZO5qPV4V2JkcOK5T2D+eSqacYln7hhcuW8Zsyaf\r\nbbKJnmV8w9V0BogrMYr0DFVedLs3Vn2Gm83wvAnAWlA8K21rwQDOtKOpad5c\r\nAnL2W2V7U+aIq5TcRStIvqmnI2rW4pJCdsTIM8dF1DhrguPa1AQo8eKDx+IG\r\nlrtRqee3w5ptIC0EaYjlJ8rCWgsv3y/xAmgLM/5DNUJcScguPcSB9iOBD0K6\r\nOnYhLQxtyr0uKbcvYUacC5FWqXaE+HyRu6GRssfXhXI06/jUVS6ZPcS2JhRM\r\nY20LWeXAZ4dq6tnlO4UHLtsuOX798A4dCDePn3a8OHaqmlWz2Amj4R5kNHul\r\nmA3XIQ8YtAfEaWOvSEH6U37eQD20Sk1HxErJ1nNdU2QoCki5TTHrcXlYCMIw\r\nDKFzKRHCNImaO675boEHJ/Cl3NU8iKOrq7QpREVDRuu3MIikQD4SzZLgH9NO\r\nhNx18e+sq3AkgYbTbP0wkw+6g4BmbUxbci7XuDqDynOHaYJ5B4Z8S/XatPl2\r\n6zw+zMGEy0SCPch+8U5pDSMxbswLQtegESXWrkwSJkRwj1Kp+Xm/2KGVi5th\r\nNVfEi/2S2qEA6oTRxdM+EQ/vLrApNniP5SCyGFkjoyYydCYXuSQT0ErVkZ/x\r\npZNChYxZmtyMNRYFQLaJWt1GWnfyCz7/EnQ=\r\n=CVct\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/endpoint_3.5.2_1676393438357_0.06375522638970099"},"_hasShrinkwrap":false},"3.6.0":{"name":"@rest-hooks/endpoint","version":"3.6.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/guides/custom-protocol","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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.9.5"},"gitHead":"8b0eda4d5e129ba0a02d704a65cdfeb402bafc4f","_id":"@rest-hooks/endpoint@3.6.0","_nodeVersion":"18.14.0","_npmVersion":"lerna/1.15.1/node@v18.14.0+x64 (linux)","dist":{"integrity":"sha512-p+A/UsYyXzxIfJcyqlQ2zsjcJpwXTLXjcUK0oJpMv0MVbPMZU9G/THfkYE3W/D6G0ZHdlnvLJKOmpQ/Rb5Tkyw==","shasum":"545e80c3d05a8072616a8121cf6c7333bf31e1af","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.6.0.tgz","fileCount":182,"unpackedSize":813802,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDyT07i4a+hQVOj7TQp23/g1UWb2GRSxfIwjtUFD2bIyAiEA402qYRvDYcE83f5tFLfAXiPMktvOEAoxwsga9bDGeVk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9P8UACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoWaQ//dXJiSNOE/hxeSQQUkIB5i3sxY3ZOyOphdnVVm3mvxaDhNkbp\r\nzKty3l0NLzdnwBcL5y726xHgqNMRI48AToHgM8CSrFmktEj5YNwFtZamwJqt\r\n3EbANn4tEUWw3m3NeW/eufCGRnVrywpHcDKP+roldEKHFafLLC3IEaG67NIU\r\n8jPd78qYdVuKSXH7sGKFie6/Xa7t/yOl/l3iqJvrZEtfogaOiSLeaNiOuot7\r\nL9M/BSjw8E7f9K9fuhFORHkJf4gfHm172FxheUftpMWDOK6EYyKKgxoJChb+\r\nPALoCQbGafFtOSUX0GVrpBLtjYCxc0K6RBVr7/3EJRaenZeNdXqwPOcFE67L\r\nKaxOaLmgP0INemN6Z9/KCgJ58l3hisLrW7Wr8ARfwVHCWGi9vWQyq59Z6Hu2\r\nkGkXPVWB/PG/gpWN205vtbXD105WMViUoWs2ix1lR7QW4UuPMS9+vQlYymXO\r\nSZzRQn3XIEedn7J8bWy+fS4MItrrokuHZK+nKVqUyfu9heWpyBh83bMaVcqZ\r\n9hL1ZZ3aSIwoHzxIaSFZIaSgENPDm7vYIM1W/jQuqRWHU+29U7xvEj9ROKWW\r\nDhW5gpmcSUv4F+8FV3Nzss1ABhyNwBo3oGK8GP/G4Mtb/c+f984R+I9UkSMS\r\nGja/UARMO9OrI2e14a8GtyS49tt72XmZ4LY=\r\n=xdrS\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/endpoint_3.6.0_1677000468208_0.8871366219115477"},"_hasShrinkwrap":false},"3.7.0":{"name":"@rest-hooks/endpoint","version":"3.7.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/guides/custom-protocol","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@babel/cli":"7.21.0","@babel/core":"7.21.0","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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.9.5"},"gitHead":"80c7f846fbd77c58b61ba92941dc0514e266f9a9","_id":"@rest-hooks/endpoint@3.7.0","_nodeVersion":"18.14.2","_npmVersion":"lerna/1.15.1/node@v18.14.2+x64 (linux)","dist":{"integrity":"sha512-dX40kUMP1Iu6wZhUPKGaHW5kMo73KPX4vyDWJ0qNrAkFc3ZjlJsZwED4OfLdc4K+SHUWMI2ExD8uTX0jLviSsw==","shasum":"63f40b4f8fe57c02370e22def7c7447410adebd5","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.7.0.tgz","fileCount":190,"unpackedSize":953801,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCKrJmHmcqYzg8hEiWJ5HWKZucejYCjOWBraWyYmGKizQIhAIMS6PU0ORYqJjvoXVgKhYFE6JK3VSzXf6waLJzzj5Pf"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkAMUaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq4mA//Z+WEmdKTgx4FQFWtbFtYtP+Hed1cOyOApCgXR+hRtsw9+iLJ\r\ngKrpCd9wIbKVCSvqGO3uf7JSBNMLX+KWSvl0Wq+P5cRwq8/1Iz7PRyjMCrp7\r\nXSOlxuKAxEV3cFUfivyBBz9QwZ12Rv25r+ovf5hPXaPeafm7tww+j7g5rjxv\r\nNzj8ov29n3Pl0K7iKIIOOU8WMFBYAd/J6PZTTx6R/1iA2tQ/jPBAZaNAboj8\r\nZX9uO2o5EX8K9gPCpvnIA3W9OT9qx34Q5ASOTe1iJNGpWXDXsAjfxDXsPIw2\r\ncRVZ4SnheOK1FK+JcKHfQFny+gMnO2uUy32PX7l1++4wlS0i+Sal2q0af3Nu\r\nvbBf8x41qw0qurELgUkPifLK19o5AVMZPj8wAKQjzAzTOsbpjttBU7KITbrw\r\nfxuFebtSCPBRzswaeungVKLQow+KitOpL7J0xheDIP1jlpoI1pW1v7R2/89T\r\nplHOZ72yeNEYLiXUE3hAuqvZ50PCh7yUxeCiuUkRkSAJdBr39MbEv9qeeRMd\r\nNZiiyITJt4ytxQtzKGH+qFJJgCPatBQ8Cflv3rCpfKKzb0QEJSzUWdRKcVr5\r\nhYnwsTZ78HIeTF9gf1di4xQnNx3P4hhEHIJOkkOpfiv4wpSlRiciIgdNICsS\r\n17UEBCfWmOeqEn2XpoEgEHflq0tQjQVc7pY=\r\n=jLtm\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/endpoint_3.7.0_1677772058008_0.086108057111836"},"_hasShrinkwrap":false},"3.7.1":{"name":"@rest-hooks/endpoint","version":"3.7.1","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/guides/custom-protocol","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@babel/cli":"7.21.0","@babel/core":"7.21.0","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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.9.5"},"gitHead":"922ed06e929151f59b51161629e220824da0b080","_id":"@rest-hooks/endpoint@3.7.1","_nodeVersion":"18.14.2","_npmVersion":"lerna/1.16.0/node@v18.14.2+x64 (linux)","dist":{"integrity":"sha512-tuDTileetKCMBmLcN4E2wsHEfEysEnWpo2SWZxbjr6CXtRKKQIqZyBpeNNsKpguV7Snf8bJt/dpdo5T01teB4A==","shasum":"77fd127d63128a207b97f0afc7e139bbd0988cbc","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.7.1.tgz","fileCount":190,"unpackedSize":954537,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5/j/2NvMQtJOrvDrP2RqJKo9KW9fHCGcE8hZhsWNajwIgMkiD63G2mz8pHSv5hoTh7ujR9FX0Wdk1VYE5mGlVcMA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkDWa+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoq5BAAmo8IUzG2XiQkt74Ieiy9Y3s3NWQnBsaI+JDERUWu+8oExhUJ\r\nAChazHzXx/8tmv3rzpuTKlKUQwG60SBjs759X9s+SSEjjzQigOUdWne7rK0f\r\ndfIhsMh63umn8mUMY+Da6MUFT5Ysz+UHXgQ9lYFLGjPKtHvtQgo8fLVDNkwo\r\nYMy5nkFp5SejUNztTsu5SHX0Vb4U4I8tUCOiA7rDHkIxNdeGLrghk+RoABPl\r\nA0SM8+ZEs9KSnt3+ps021ABQHGPzv5R7NMPVv2itEhoRFIezAc76H9PTI9FO\r\nF/XlR83zCFcly7hSe4Jv+ggWpYD5T4aO2VLw419weJpmjXXoTD5aaxJtUa9Z\r\n4Iqb2bpgrgWK/r0dEzvc8oiJb2/sit92ktDxw/rGbCDGOPtvEgg8y9wImffu\r\nNtGrtQKlE+ze0/HYlLYiJaFxaISp7FrcpGqFEogFSMiIvP9KKKbqkTu3WdRW\r\n9pvLSESZXxoT946TAcuPiNR0x22DdXDlQ8xiI33+M5yS2ZwPyz/p9HgDHAoU\r\nQ4B5jQ+eSsE2GvctP0R9AoXTiVO7zpokDP5XWobebk4RssM/MbJr2xJ6m5nq\r\nKw5G544X21vmEZRJ6JAiT7TJH2ZnazwpCDzhfgmRSslDRCuPuHjxmMLkj7VY\r\nSA40DR4GqGWCrL9LsDdG+H22NDK8BL6MsX4=\r\n=y/Jk\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/endpoint_3.7.1_1678599870086_0.3301648667709869"},"_hasShrinkwrap":false},"3.7.2":{"name":"@rest-hooks/endpoint","version":"3.7.2","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib dist legacy ts3.4 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/guides/custom-protocol","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@babel/cli":"7.21.0","@babel/core":"7.21.3","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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.9.5"},"gitHead":"a1c7373956f3fd885390e13840553c920da4a62f","_id":"@rest-hooks/endpoint@3.7.2","_nodeVersion":"18.14.2","_npmVersion":"lerna/1.16.2/node@v18.14.2+x64 (linux)","dist":{"integrity":"sha512-/rfyYsjnCnJmVBokRULgCY3lo3QzK+pLXAi7ZMKKuN+JZQI0Pv/If/WsByTDwHDRWXeSQOmGbKZbRDWMnsAOhg==","shasum":"70b1a13fa82021640c9532998f56741673e9f0dc","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.7.2.tgz","fileCount":190,"unpackedSize":957015,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB5gNSTs/2a8vay3KyAp8nqs0gRw1KwUBrOWNCiHPUC0AiBeqNoYD7A7x8vUSBl5ylWf/HFZTXK/d8pB68IUh3psXg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkEiVeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqGxA/9Ek31hmHAHeI00znR9yV7tnf3nRd4cQjvHfdP5Vx/64EtSZ2d\r\np+6Pv6SVALmx0pDwPeqWP0BCVRDHMF1SmucE6Dicms1D2x8YnOOLMQtQsDCD\r\npJP3uaE9BGJc+kE5XVLeycoUI+/FA1ZPuLMfmAABUNJnORAhZbuVeswHUhyn\r\nWTsV25xUwp3XXrS1Fzh9a2st+ZEcEpl/Et0cj3rjWxeSmRlfnFLNLMTEZPpt\r\nBsGhFN/qP6uT4BB8u4iLQ4B/9GgUBZvqkWEGXZI4++eqjeRLGxYN3eD+nY2b\r\nE4luDw9qbAKV7Ndf+MSUSsnYTy6nAqwyg8X3pIj/QKuoMiTeDwvisWaDtETD\r\ne0l+tan1rAKHrLPW3v/gQOxt+eebpLEqgFdZ9ykV0RpoHOTqnu0id5Pp0HlK\r\nART7Dclpfue22sPwDC8a268na1qTIAhcC+24QaREhAizatqx9KB5Mt3UnyOW\r\nDmYkzaLarbLZPbispEN5OnZ5r6ITa+fQ187udibR9ZdZIzz63sfI294Lpzv0\r\n/osUl8yITrNFYUcMwK8C460hAkuIHM5cOv1sM/kJIPOuWfFNZIDXid0g4lbI\r\nKasrdoyyXa3JrCSLM/l034m/EBlJBXkq+rhD4HkCbbAEKGRlHCwD5VJalndH\r\nyYHyFkrTODfOhDIKCnL7KlVWN0O2gkWZ3Ig=\r\n=a/+H\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/endpoint_3.7.2_1678910814197_0.33490479714544796"},"_hasShrinkwrap":false},"3.7.3":{"name":"@rest-hooks/endpoint","version":"3.7.3","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.2":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=4.0":{"":["ts4.0/index.d.ts"],"*":["ts4.0/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\*","build:clean":"rimraf lib dist legacy ts3.4 ts4.0 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && yarn run downlevel-dts lib ts4.0 --to=4.0 && copyfiles --up 1 ./src-4.0-types/**/*.d.ts ./ts3.4/ && copyfiles --up 1 ./src-4.0-types/**/*.d.ts ./ts4.0 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/guides/custom-protocol","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@babel/cli":"7.21.0","@babel/core":"7.21.3","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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":"5.0.2"},"gitHead":"c0248d68395248454f494f4cb8203ed7a5cdd94a","_id":"@rest-hooks/endpoint@3.7.3","_nodeVersion":"18.15.0","_npmVersion":"lerna/1.17.0/node@v18.15.0+x64 (linux)","dist":{"integrity":"sha512-zmI8AHtaUV7wl3FVaAT9CZmeIvmuI3BFOj2s6RRT4XXtpBj8g13aFIhozGTfCtLxM7UQvxfLpl4K6kGYg4P1Nw==","shasum":"df862b6b644a99005f45f4e4799d3e6baf9030aa","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.7.3.tgz","fileCount":215,"unpackedSize":1001560,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCY4GAkMf3BqGy/+UuqbUkCGKbrCN0dCGEihM0RVF+FPwIgLp1slniVJimfQNh8h1VGmE851N5d4+2XZ2I54uWvzUE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkF1s1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmreMQ/9FwQZB2BhxjRVU7JmlOH5FykR+4RFES8WJ9MEWib+PUTBSz9o\r\nkgwB1yKMDBlrUI3S4xym7/nc+Ux5JlrlFh9kJilclCY+j6x3NLJBWaO2ysE/\r\nOl1RRX9JcF0ubdfgDdbIwyBwLM/B66gAzfb8/ITJcyRqrHs2Asl5LPBgmTJ+\r\nqheDW7eCcXSlmKLtiT+D82KYv48EGQl6zRM6cqWHsLdxaHHm27bLrF3GPmU9\r\nBcy3hxtvCuGnktyyOZrHtGSkw7pebOBTarxIL7oQgZ/kOqxH2HS4v1V3kWvi\r\nAAlnx1xtZMf9aiRewYZpiUyHGHzraB72s0JfwzIK7Y0F4Bz4J6IsF3YZkxxP\r\nwjW5SeUA151CpW/IWI58hrSeEp4TY6/EQ1v6ezoSnWCslRHkw/+R20kqIMcu\r\nhsu8a0afvIh1WGQCa22bovh6PfF250URqyKhqa+1DFG/+VKrTwP8gbHJW44M\r\nhnqGTNKDw98amAmlUpb8a5Cdxg1soSSS7C6svSyqsaCG362/+5xXHKQQCz+E\r\nfixuHtThHidDa/80mpOce1IM4gEkxa24113EAvR3TlB/2PIkgaOMNTNAznti\r\nubPI4yOmniSIz48pbi325yjwkLBsfLxvwyWsoJnA6BK5NljNYUZB7eOX/hkY\r\nsf7SpJanZXUft8EtYKIcE/hDu6TQ5vVvlIk=\r\n=6Ok4\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/endpoint_3.7.3_1679252277216_0.589706306370277"},"_hasShrinkwrap":false},"3.7.4":{"name":"@rest-hooks/endpoint","version":"3.7.4","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.8":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=4.2":{"":["ts4.2/index.d.ts"],"*":["ts4.2/index.d.ts"]},">=4.0":{"":["ts4.0/index.d.ts"],"*":["ts4.0/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js' --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:js:node":"BROWSERSLIST_ENV=node12 rollup -c && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\*","build:clean":"rimraf lib dist legacy ts3.4 ts4.0 ts4.2 *.tsbuildinfo","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && yarn run downlevel-dts lib ts4.0 --to=4.0 && yarn run downlevel-dts lib ts4.2 --to=4.2 && copyfiles --up 1 ./src-4.2-types/**/*.d.ts ./ts4.0/ && copyfiles --up 1 ./src-4.2-types/**/*.d.ts ./ts4.2 && copyfiles --up 1 ./src-4.0-types/**/*.d.ts ./ts3.4/ && copyfiles --up 1 ./src-4.0-types/**/*.d.ts ./ts4.0 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","tsc:ci":"tsc --project tsconfig.test.json","typecheck":"yarn run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/guides/custom-protocol","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@babel/cli":"7.21.0","@babel/core":"7.21.3","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-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":"5.0.2"},"gitHead":"37f056da08be038bc1c6ffabcbad140cd42c6346","_id":"@rest-hooks/endpoint@3.7.4","_nodeVersion":"18.15.0","_npmVersion":"lerna/1.17.0/node@v18.15.0+x64 (linux)","dist":{"integrity":"sha512-Ejsmi3wXFzzTH6r1iMICNDKijBToMZoC6r4GJp6KuexwRgkfbRE+Vm5PeXq+2EDQBE54j+hWHuKpr2NTZm1WpQ==","shasum":"dc303cb2af749bcb3217aca9bcacf548fe23f010","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.7.4.tgz","fileCount":240,"unpackedSize":1047535,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCuOXU12BXHfPbt46sr4H3qLwvFC+pVkg329cleXcUrcgIgI2I4ytTQ8VnwLTKELjid4q3gJGVHbPUHrRMiMlloZC0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGhE2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrOdg//SKnyNnR3f3iYnaKpL0mWRZ3TeWXvG2MDsGjcoUmAfXQD/3/W\r\n7VyRZKumyx/CzpTYWdhCFEVISlggFNi2mi7DnA/5fdN5X3hMoXZwftkbfb90\r\nxX///gNdj18sKDdt9TcO3e3kr+0LL2rQlfFf2Q0pDMvacHheeqcLhhta8A89\r\nWCRtSMKs+r6Pk8V/e4xtptkVzGyHxjqpQFlfXXVAXGfsNfx9wIlKBscYWble\r\n/BDn2szbsBMa4Q6K8pleDJDuGhGalAtMCC7/5KPsAz+J+U67CRu75EaL2c/Z\r\nkavWeabMOyGLBwCMbHYY2gGL+d4SrmoNIWJtdgV6l1jOkXPP1yRerCRVd3k1\r\n0BJjSC0YdGmhNvcz2iKubX5rzYYy2OHSUYfmn35wavzmjYw9s/MrWEbesVMQ\r\ntfApMjJmzIeKDzahLV+xtrcNNCzFuMdLwGXJrt43B2ppL/d5YEYeKx/HsIzU\r\ndbA8L/SUxzOhQmcLv5LBv5OvGRJKc4x3qDClYCleUVDHhHz5Fbo8sJ2NzrRE\r\nvmFSKIYHOGzHGhzcLwfk8rK5ru2rxlXwF01ok46cWTAP0XzHO8zTQcNqPFME\r\n8uhyyVPdFpM3krvloo9lii4BQoVq7DXGBIWTTqsVLzBBHYUYMXj3k/5kI/uo\r\nQjAvmcu9jkV53OmIjaDMgO/RiercxVTpMgQ=\r\n=n+uu\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/endpoint_3.7.4_1679429941978_0.9782126307295871"},"_hasShrinkwrap":false},"3.8.0-next.0":{"name":"@rest-hooks/endpoint","version":"3.8.0-next.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.8":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=4.2":{"":["ts4.2/index.d.ts"],"*":["ts4.2/index.d.ts"]},">=4.0":{"":["ts4.0/index.d.ts"],"*":["ts4.0/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' yarn g:babel --out-dir lib --ignore 'src/schemas-3.7'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' yarn g:babel --out-dir legacy --ignore 'src/schemas-3.7'","build:js:node":"BROWSERSLIST_ENV=node12 yarn g:rollup && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:js:browser":"BROWSERSLIST_ENV=legacy yarn g:rollup","build:bundle":"yarn g:runs build:js:\\*","build:clean":"yarn g:clean ts4.0 ts4.2","build":"run build:lib && run build:legacy:lib && run build:bundle","build:legacy-types":"yarn g:downtypes lib ts3.4 && yarn g:downtypes lib ts4.0 --to=4.0 && yarn g:downtypes lib ts4.2 --to=4.2 && yarn g:copy --up 1 ./src-4.2-types/**/*.d.ts ./ts4.0/ && yarn g:copy --up 1 ./src-4.2-types/**/*.d.ts ./ts4.2 && yarn g:copy --up 1 ./src-4.0-types/**/*.d.ts ./ts3.4/ && yarn g:copy --up 1 ./src-4.0-types/**/*.d.ts ./ts4.0 && yarn g:copy --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"run build:lib -w","prepare":"run build:lib","prepack":"run prepare && run build:bundle && run build:legacy:lib","tsc:ci":"yarn g:tsc --project tsconfig.test.json","typecheck":"run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/guides/custom-protocol","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^18.15.10"},"readme":"# TypeScript Standard Endpoints\n[![CircleCI](https://circleci.com/gh/data-client/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/data-client/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/data-client/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/data-client/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/endpoint?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/endpoint)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDeclarative, strongly typed, reusable network definitions for networking libraries.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs/guides/custom-protocol)**\n\n</div>\n\n## Usage\n\n### 1) Take any class and async functions\n\n```typescript\nexport class Todo {\n  id = 0;\n  userId = 0;\n  title = '';\n  completed = false;\n}\n\nexport const getTodo = (id: string) =>\n  fetch(`https://jsonplaceholder.typicode.com/todos/${id}`).then(res => res.json());\n\nexport const getTodoList = () =>\n  fetch('https://jsonplaceholder.typicode.com/todos').then(res => res.json());\n\nexport const updateTodo = (id: string, body: Partial<Todo>) =>\n  fetch(`https://jsonplaceholder.typicode.com/todos/${id}`, {\n    method: 'PUT',\n    body: JSON.stringify(body),\n  }).then(res => res.json());\n```\n\n### 2) Turn them into Resources\n\n```typescript\nimport { schema, Endpoint } from '@rest-hooks/endpoint';\nimport { Todo, getTodoList, updateTodo } from './existing';\n\nexport const TodoEntity = schema.Entity(Todo, { key: 'Todo' });\n\nexport const TodoResource = {\n  get: new Endpoint(getTodo, {\n    schema: TodoEntity,\n  }),\n  getList: new Endpoint(getTodoList, {\n    schema: [TodoEntity],\n  }),\n  update: new Endpoint(updateTodo, {\n    schema: TodoEntity,\n    sideEffect: true,\n  }),\n};\n```\n\n### 3) Reuse with different hooks\n\n```tsx\nimport { useSuspense, useController } from '@rest-hooks/react';\n\nfunction TodoEdit() {\n  const todo = useSuspense(TodoResource.get, '5');\n  const ctrl = useController();\n  const updateTodo = (data) => ctrl.fetch(TodoResource.update, id, data);\n\n  return <TodoForm todo={todo} onSubmit={updateTodo} />\n}\n```\n\n### 4) Or call directly in node\n\n```typescript\nconst todo = await TodoResource.get('5')\nconsole.log(todo);\n```\n\n## Why\n\nThere is a distinction between\n\n- What are networking API is\n  - How to make a request, expected response fields, etc.\n- How it is used\n  - Binding data, polling, triggering imperative fetch, etc.\n\nThus, there are many benefits to creating a distinct seperation of concerns between\nthese two concepts.\n\nWith `TypeScript Standard Endpoints`, we define a standard for declaring in\nTypeScript the definition of a networking API.\n\n- Allows API authors to publish npm packages containing their API interfaces\n- Definitions can be consumed by any supporting library, allowing easy consumption across libraries like Vue, React, Angular\n- Writing codegen pipelines becomes much easier as the output is minimal\n- Product developers can use the definitions in a multitude of contexts where behaviors vary\n- Product developers can easily share code across platforms with distinct behaviors needs like React Native and React Web\n\n### What's in an Endpoint\n\n- A function that resolves the results\n- A function to uniquely store those results\n- Optional: information about how to store the data in a normalized cache\n- Optional: whether the request could have side effects - to prevent repeat calls\n\n## API\n\n`@rest-hooks/endpoint` defines a standard `interface`\n\n```typescript\ninterface EndpointInterface {\n    (params?: any, body?: any): Promise<any>;\n    key(parmas?: any): string;\n    schema?: Readonly<S>;\n    sideEffects?: true;\n    // other optionals like 'optimistic'\n}\n```\n\nas well as a helper `class` to make construction easier.\n\n```typescript\nclass Endpoint<F extends () => Promise<any>> {\n  constructor(fetchFunction: F, options: EndpointOptions);\n\n  key(...args: Parameters<F>): string;\n\n  readonly sideEffect?: true;\n\n  readonly schema?: Schema;\n\n  fetch: F;\n\n  extend(options: EndpointOptions): Endpoint;\n}\n\nexport interface EndpointOptions extends EndpointExtraOptions {\n  key?: (params: any) => string;\n  sideEffect?: true | undefined;\n  schema?: Schema;\n}\n```\n\n### [EndpointOptions](https://resthooks.io/rest/api/Endpoint#endpointextraoptions)\n\n#### key: (params) => string\n\nSerializes the parameters. This is used to build a lookup key in global stores.\n\nDefault:\n\n```typescript\n`${this.fetch.name} ${JSON.stringify(params)}`\n```\n\n### sideEffect: true | undefined\n\nDisallows usage in hooks like `useSuspense()` since they might call fetch\nan unpredictable number of times. Use this for APIs with mutation side-effects like update, create, deletes.\n\nDefaults to undefined meaning no side effects.\n\n### schema: Schema\n\nDeclarative definition of where `Entities` appear in the fetch response.\n\nNot providing this option means no entities will be extracted.\n\n```tsx\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n}\n\nconst UserDetail = new Endpoint(\n    ({ id }) ⇒ fetch(`/users/${id}`),\n    { schema: User }\n);\n```\n\n### [Endpoint](https://resthooks.io/rest/api/Endpoint)\n\n#### extend(EndpointOptions): Endpoint\n\nCan be used to further customize the endpoint definition\n\n```typescript\nconst UserDetail = new Endpoint(({ id }) ⇒ fetch(`/users/${id}`));\n\n\nconst UserDetailNormalized = UserDetail.extend({ schema: User });\n```\n\n### Index\n\n```typescript\nexport interface IndexInterface<S extends typeof Entity> {\n  key(parmas?: Readonly<IndexParams<S>>): string;\n  readonly schema: S;\n}\n```\n\n```typescript\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Index } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n  static indexes = ['username'] as const;\n}\n\nconst UserIndex = new Index(User)\n\nconst bob = useCache(UserIndex, { username: 'bob' });\n\n// @ts-expect-error Indexes don't fetch, they just retrieve already existing data\nconst bob = useSuspense(UserIndex, { username: 'bob' });\n```\n","readmeFilename":"README.md","gitHead":"cd8413fd37f52b6c6f56ed20b0e1886c88ec1cb1","_id":"@rest-hooks/endpoint@3.8.0-next.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-KnyjOkkprXgz6LPrNFlRR1GquHxmKyX4aM/JmAiiWiC7D/Pxb4GQYOsIZPLC4+fuib/X2KjM0hyJxrKi3GT6hw==","shasum":"70b634304e8ad1a92515fc83b6fd1dfd2d437934","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.8.0-next.0.tgz","fileCount":368,"unpackedSize":1700644,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxN8anf7M9zHRquKNBCeSIXbHMJW5raxjom9xLxr7PpQIhALB1qe/JNL+WqHQuNNOHRJdI6Av6hs5wVcoBIgRrZhkI"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSZ5CACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmraNg//a16VEO2wCEdi83BmXnqjXSD1Ixfw2nHCj4WYDNC5SyK3XbR2\r\n2V79cii7TxxfrZmH/IbsyyqbMdGiz8Gk6nqw/uRMh95eRaN96Yu4MvkIicjG\r\nKlSdcABLECwvsZ2kmPkLQ3eqE2WUpmf4q5jL7rIDIYO7Em11FX3EK7FbLgIk\r\nzbXiiMR258VylgjPFB9EiO+/pdz+gjwaDk8kRT5ApZYiwnn0E7QrsJ6vT9v5\r\n8Haa9DiRypzsU82lHtVcgeIxsTO2Wocj5LWHf2E0kwY31IBsJf9Bo9Vsz/5y\r\nfQIFRKG6bUVQYCGb3BZVuMa+lqwxhXqgdKV6l7xpNMDxDEnkaaNf1XELOcim\r\nxWhPwaTFTuWbQb8an1qmn3RaVBWM5lQM6oVGp2TPbOeklFN2dAszj/gXCDsI\r\nGUIEDI5Kqz7uKcAB90Q4QRHo0Tufi1AleXEJyKAo471o7eKLUz9txtSEamgZ\r\nCR8gL68JK+o1RCMa84ZUKqLwtQHBcM00l5o06VCj8jla8f6V3HMk5Kuk/5X6\r\nNv+4ZTp+XDjRXHJSPblzfrEFBPog/z+Sh9yVRs/Sr10FceTCfBP/ix5c6XW0\r\n2eVlo+gl+SnSE5oq2TqO1N2Pt8/O+Cp4lpfQunPHpCDGYiCibhSkfTUdsKAf\r\nJU1YjdO0kak+lA4hOuEbt4TXmmoKLhrDV7g=\r\n=EcN9\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/endpoint_3.8.0-next.0_1682546242253_0.3534792296197027"},"_hasShrinkwrap":false},"3.8.0":{"name":"@rest-hooks/endpoint","version":"3.8.0","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.8":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=4.2":{"":["ts4.2/index.d.ts"],"*":["ts4.2/index.d.ts"]},">=4.0":{"":["ts4.0/index.d.ts"],"*":["ts4.0/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' yarn g:babel --out-dir lib --ignore 'src/schemas-3.7'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' yarn g:babel --out-dir legacy --ignore 'src/schemas-3.7'","build:js:node":"BROWSERSLIST_ENV=node12 yarn g:rollup && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:js:browser":"BROWSERSLIST_ENV=legacy yarn g:rollup","build:bundle":"yarn g:runs build:js:\\*","build:clean":"yarn g:clean ts4.0 ts4.2","build":"run build:lib && run build:legacy:lib && run build:bundle","build:legacy-types":"yarn g:downtypes lib ts3.4 && yarn g:downtypes lib ts4.0 --to=4.0 && yarn g:downtypes lib ts4.2 --to=4.2 && yarn g:copy --up 1 ./src-4.2-types/**/*.d.ts ./ts4.0/ && yarn g:copy --up 1 ./src-4.2-types/**/*.d.ts ./ts4.2 && yarn g:copy --up 1 ./src-4.0-types/**/*.d.ts ./ts3.4/ && yarn g:copy --up 1 ./src-4.0-types/**/*.d.ts ./ts4.0 && yarn g:copy --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"run build:lib -w","prepare":"run build:lib","prepack":"run prepare && run build:bundle && run build:legacy:lib","tsc:ci":"yarn g:tsc --project tsconfig.test.json","typecheck":"run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/guides/custom-protocol","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^18.15.10"},"gitHead":"4dbfdb78611421d8afc62d4a2f714c462adff40c","_id":"@rest-hooks/endpoint@3.8.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-gGhbNMEIodNlKErEAcK5qF49Vg3S2/WZTyykntAGx1xcUjRXgsDtK8/p/Rqd0u8NhsCzYQeoxIOecFVi2k6kVw==","shasum":"fbf783dfda0e1bd5cc73c4e02359ce47e94d0ec6","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.8.0.tgz","fileCount":368,"unpackedSize":1706561,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHODp6Oj8l6sklkTv/LtAv0kVdqcWX9Ok4eoYHDnpHyFAiEAgzm8wqmeqQturuXG59vyhMll2aScZtJ+wfLqeU2YgQA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUZFhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpbmA/9FNn5/frAlI/mI0cTViy+DuZc4dtK87HLH2pV2kDQxgwf5YA3\r\nBHG4wYnfqeF7bKyDzR9eTXjgWWxJQYKBPuWdXE6Pl3v9wwVJ6fQWhzwC6WlZ\r\nFUvQ0eyqyJO2TpQbIjcodCLxGyM2noQ+Hi/3DQ8rrKEm+2/8i9WWD7Nirigw\r\nt7eV4RBefHeXfahxxeVyvH+tGeQHFgy2nPBxm8de7wqm+356qgIsCBAloFHc\r\nYIoOPiozB7nBeH0PYIjIM1RtDogsyrYAkGabtg/JT/OHqm38kNSMLcJFo6Uk\r\nE9igvmQ9xwVwDUOnZz6qlO+STno4jiQD2UG+0XMMludzDCBNwiWdC50FqIcj\r\n41Ww8pGrjuxSe+BoRcDb7dfq4EFSNMO5j/VthfClvftpiUWohpQUUrXTzJf9\r\nE2IL2r3ndUmMgvEFdN14n5WsGrsv99zD+lDEJkfHfu0Vum6KwNwu2QcUQcxz\r\nm0EDmtH2G9HOhIb5BBW5JezadakypWWj/z6dygIJrwOZf6c7z05MRR/bPexG\r\nLimm47UCuEnz8if70raqKzxutLHgsaTkZY0Zl0+zAHhn+8pJi5DVyJG1ymNd\r\nKzQjrG5CIOQgOPPeyEjMMC49711ETyEV0h8HQKAFL7vBiwX0bsJEmwYEkR+g\r\nLXkiClMX3vWiSPEtKM8on8wHNRSgVuHqtKk=\r\n=PJRY\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/endpoint_3.8.0_1683067233577_0.4632000847311015"},"_hasShrinkwrap":false},"3.8.1":{"name":"@rest-hooks/endpoint","version":"3.8.1","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.8":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=4.2":{"":["ts4.2/index.d.ts"],"*":["ts4.2/index.d.ts"]},">=4.0":{"":["ts4.0/index.d.ts"],"*":["ts4.0/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' yarn g:babel --out-dir lib --ignore 'src/schemas-3.7'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' yarn g:babel --out-dir legacy --ignore 'src/schemas-3.7'","build:js:node":"BROWSERSLIST_ENV=node12 yarn g:rollup && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:js:browser":"BROWSERSLIST_ENV=legacy yarn g:rollup","build:bundle":"yarn g:runs build:js:\\*","build:clean":"yarn g:clean ts4.0 ts4.2","build":"run build:lib && run build:legacy:lib && run build:bundle","build:legacy-types":"yarn g:downtypes lib ts3.4 && yarn g:downtypes lib ts4.0 --to=4.0 && yarn g:downtypes lib ts4.2 --to=4.2 && yarn g:copy --up 1 ./src-4.2-types/**/*.d.ts ./ts4.0/ && yarn g:copy --up 1 ./src-4.2-types/**/*.d.ts ./ts4.2 && yarn g:copy --up 1 ./src-4.0-types/**/*.d.ts ./ts3.4/ && yarn g:copy --up 1 ./src-4.0-types/**/*.d.ts ./ts4.0 && yarn g:copy --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"run build:lib -w","prepare":"run build:lib","prepack":"run prepare && run build:bundle && run build:legacy:lib","tsc:ci":"yarn g:tsc --project tsconfig.test.json","typecheck":"run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/guides/custom-protocol","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^18.15.10"},"gitHead":"520cbb461fbf5be1b1372f86a5a9c148bdb18112","_id":"@rest-hooks/endpoint@3.8.1","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-d8/d1/0t7N9BUWHM9DHc+g8qMXwBtXmulnwZk6JA66bpLc/cez+C0wt/SJ3JvWck63/GxbG2jUc6N8clAP2LgA==","shasum":"d6a0a2568a3cb27f22667b8829698eb8e33e217b","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.8.1.tgz","fileCount":368,"unpackedSize":1714576,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEeUc2HAiJFrM5Y1mrvVmLIFIhg+K5RX/NAxK/LtfIYpAiBxunyG57Sv4Uy3evODpZdr6vTRzwp7rTxNJXBRZvjZSw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUribACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrkRw/9FOq8cczFPOjvJbKdWk+KyYj95gvMxuH7/ciN50m+qwSJ9LJY\r\nRc2mQQTl+C0uTmpQsBSJrD2u6Dkdpu9MIfQogBhZ1x+Gq+sNVr1MAbUdcFXx\r\nQU6w+phKlhXkzfVIyJJDkE/AP127yFv0A5m4uF0bTbkUZ0tYYphVsafzI5aq\r\n3WHlfLA3LddIGQ8d7ZKUJVFxS1qv9HXd61HrRVOcI0Ec1AslU18hqq7fazfq\r\n5v4CKOfhQIGn2/o9vn6ZCVjkgzXa/haGdulPzg/5W890rMh3J3vP9H+Qyr0S\r\njPoJLEOvEDwRjlNXiBTKBlXfyi4XxgMpKuOS/mFh/BMjbsTJh5Bm9Zi9hojk\r\n9Kx/UVeVsCCx2URzAEsuT/chyMKf2jY7hxH1N9i6cmapQSYC8fTcc2J9NLhT\r\nDddAUB6X0AaCtKwQGaED8t9iOKEkI1wb7CNHosr9oYsFn7dhyVZyQwsU+5FP\r\nYqCp9mOugjuAmoSg3rtRAVHkOmQX9Ecq03v9+MGL2drFphEh0SG9rUwKf25j\r\n/XaA2i8QNZtxKFkGYK05ZjwnqIZT7fpkUIncGDV7E/OevpgwkqoYL9pEzBU3\r\nAZLjdOKSQrOAyoiSukGKfgeeGHwbdDsIBTEReDf6sysQrJIDfmHQrFEA4JMO\r\nNYLN+eK0MViNqZ3ePy2fC4w2OYtPX4QSIAo=\r\n=fH/5\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/endpoint_3.8.1_1683142811100_0.038143526462933064"},"_hasShrinkwrap":false},"3.8.2":{"name":"@rest-hooks/endpoint","version":"3.8.2","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.8":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=4.2":{"":["ts4.2/index.d.ts"],"*":["ts4.2/index.d.ts"]},">=4.0":{"":["ts4.0/index.d.ts"],"*":["ts4.0/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' yarn g:babel --out-dir lib --ignore 'src/schemas-3.7'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' yarn g:babel --out-dir legacy --ignore 'src/schemas-3.7'","build:js:node":"BROWSERSLIST_ENV=node12 yarn g:rollup && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:js:browser":"BROWSERSLIST_ENV=legacy yarn g:rollup","build:bundle":"yarn g:runs build:js:\\*","build:clean":"yarn g:clean ts4.0 ts4.2","build":"run build:lib && run build:legacy:lib && run build:bundle","build:legacy-types":"yarn g:downtypes lib ts3.4 && yarn g:downtypes lib ts4.0 --to=4.0 && yarn g:downtypes lib ts4.2 --to=4.2 && yarn g:copy --up 1 ./src-4.2-types/**/*.d.ts ./ts4.0/ && yarn g:copy --up 1 ./src-4.2-types/**/*.d.ts ./ts4.2 && yarn g:copy --up 1 ./src-4.0-types/**/*.d.ts ./ts3.4/ && yarn g:copy --up 1 ./src-4.0-types/**/*.d.ts ./ts4.0 && yarn g:copy --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"run build:lib -w","prepare":"run build:lib","prepack":"run prepare && run build:bundle && run build:legacy:lib","tsc:ci":"yarn g:tsc --project tsconfig.test.json","typecheck":"run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/guides/custom-protocol","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^18.15.10"},"gitHead":"6912024cc4f2cb1eff92d8fd6f542146c4087a15","_id":"@rest-hooks/endpoint@3.8.2","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-fM4hWJycvCDfsRs0A596PFR3v4wFIFPBjWEQV2xRDC62vuFCrD5QtJBsRLwl3pcUlBUkiJc+QU9S4tdd4yl9SA==","shasum":"e2b684a2d5847a2490d8b5a08b6e153a00032f6d","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.8.2.tgz","fileCount":368,"unpackedSize":1714496,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCMKmPKP/XG6ljTT/Uqat3YFhQ6TeFDzLMafLAJGRIiYwIhAMKDTOeT6Pm1FSdcmm1kVaaW7PlhvoKqezsUQA+eaoqr"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUtX5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqcjg/8DZ9zZPt3GmdpmyVh56451kzif0fP/1O8D7m9HMNYUWglN+e8\r\nkk8fYvkQjAj5ocrrSONpAaMFQ4ZGWhVjnhnKcXwbmqOe8GCtzRKGfugv3nBH\r\nNYf+II43dD3dRN5yfdQl7dCen0GMCcG4Dp1TH9lhrhMzp0IuSn4vTY3OWqXF\r\nkb9eV8OHjkSBGlrcwHJMoFJEU3QQfaLhV6+AVXxT5G4g8KxniCXXWRKDKGrE\r\nooMZdRpIandO7Q+tf5UxI7kLmheAw6ebnWkQxKBtfP3BgF42p758ZbFDnGOs\r\ncxG/M114pOwEmctGFuy3NlIye47Ei+DFWxjwebPinrwTSdFi3REE/pxWtMDf\r\njLbB81gRKzSTg1NdMWrsXucLY2eKglro0MIBR8414pYjkOwWgF3y4s/0+Osf\r\nbcZXG/H6bzCFjsOsD7BxjmTsxfFvJZ3e6gv1heCdI6pMeMpJMgv4ra7X6Bhz\r\nlxrdvWnhOSqPIPZSFAEA1wI4eTLF93/YV7zntdjCYV5pxFWb4LtJmyydYHqy\r\nLsu6FoG2VY0t2VjHS3iWJTyUlXOFda8mzoGBx5us38fiPRyCAdsWu/IFCzwS\r\nu/b0rhgBACbJaomTe8XafsetrIgYMMqigS7luetfRW1AcfEUUzFkfpbal5d/\r\n7wHllxaRDo+Rv0SCsmg1LsiV4XpIO/1QK/Q=\r\n=tl0y\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/endpoint_3.8.2_1683150329652_0.17517669721869256"},"_hasShrinkwrap":false},"3.8.3":{"name":"@rest-hooks/endpoint","version":"3.8.3","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.8":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=4.2":{"":["ts4.2/index.d.ts"],"*":["ts4.2/index.d.ts"]},">=4.0":{"":["ts4.0/index.d.ts"],"*":["ts4.0/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' yarn g:babel --out-dir lib --ignore 'src/schemas-3.7'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' yarn g:babel --out-dir legacy --ignore 'src/schemas-3.7'","build:js:node":"BROWSERSLIST_ENV=node12 yarn g:rollup && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:js:browser":"BROWSERSLIST_ENV=legacy yarn g:rollup","build:bundle":"yarn g:runs build:js:\\*","build:clean":"yarn g:clean ts4.0 ts4.2","build":"run build:lib && run build:legacy:lib && run build:bundle","build:legacy-types":"yarn g:downtypes lib ts3.4 && yarn g:downtypes lib ts4.0 --to=4.0 && yarn g:downtypes lib ts4.2 --to=4.2 && yarn g:copy --up 1 ./src-4.2-types/**/*.d.ts ./ts4.0/ && yarn g:copy --up 1 ./src-4.2-types/**/*.d.ts ./ts4.2 && yarn g:copy --up 1 ./src-4.0-types/**/*.d.ts ./ts3.4/ && yarn g:copy --up 1 ./src-4.0-types/**/*.d.ts ./ts4.0 && yarn g:copy --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"run build:lib -w","prepare":"run build:lib","prepack":"run prepare && run build:bundle && run build:legacy:lib","tsc:ci":"yarn g:tsc --project tsconfig.test.json","typecheck":"run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/guides/custom-protocol","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^20.0.0"},"gitHead":"b8179c30147a22257f16615a190a15f054f12e64","_id":"@rest-hooks/endpoint@3.8.3","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-aM6q4K9+m1Gaq8UCQvOudu4ZQ9m2eZj0tiFlMLos+BDFbmHfgS65iA/xn1ZqMxc8c6+Ge6DHXGBngZV+WWHxGw==","shasum":"650f2a75481457da4e3ab1f38cf6da71e2be0236","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.8.3.tgz","fileCount":368,"unpackedSize":1715771,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCH1qIpy/1iS0vq10/dlcOWt6okLjibLxZezvxc6UQHz0CIQCLNVYTZs3xJt/SwkHIAYTdSShiVP7PJEq+Qm/NaMbjWg=="}]},"_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/endpoint_3.8.3_1683596439160_0.24388826963956722"},"_hasShrinkwrap":false},"3.8.4":{"name":"@rest-hooks/endpoint","version":"3.8.4","description":"Declarative Network Interface Definitions","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.8":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=4.2":{"":["ts4.2/index.d.ts"],"*":["ts4.2/index.d.ts"]},">=4.0":{"":["ts4.0/index.d.ts"],"*":["ts4.0/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' yarn g:babel --out-dir lib --ignore 'src/schemas-3.7'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' yarn g:babel --out-dir legacy --ignore 'src/schemas-3.7'","build:js:node":"BROWSERSLIST_ENV=node12 yarn g:rollup && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:js:browser":"BROWSERSLIST_ENV=legacy yarn g:rollup","build:bundle":"yarn g:runs build:js:\\*","build:clean":"yarn g:clean ts4.0 ts4.2","build":"run build:lib && run build:legacy:lib && run build:bundle","build:legacy-types":"yarn g:downtypes lib ts3.4 && yarn g:downtypes lib ts4.0 --to=4.0 && yarn g:downtypes lib ts4.2 --to=4.2 && yarn g:copy --up 1 ./src-4.2-types/**/*.d.ts ./ts4.0/ && yarn g:copy --up 1 ./src-4.2-types/**/*.d.ts ./ts4.2 && yarn g:copy --up 1 ./src-4.0-types/**/*.d.ts ./ts3.4/ && yarn g:copy --up 1 ./src-4.0-types/**/*.d.ts ./ts4.0 && yarn g:copy --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","dev":"run build:lib -w","prepare":"run build:lib","prepack":"run prepare && run build:bundle && run build:legacy:lib","tsc:ci":"yarn g:tsc --project tsconfig.test.json","typecheck":"run tsc:ci"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io/docs/guides/custom-protocol","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/endpoint"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0"},"devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^20.0.0"},"gitHead":"dc77a03242b1a6d75353976e0610cfb19bb878c5","_id":"@rest-hooks/endpoint@3.8.4","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-TnLAPzFIuEhX4/a6ZfvwqAMppC88gv6GL4BK7jqBdunARKPFywQrJKWi1belORTCtwES9eQhd/9IywAkTqp6Zg==","shasum":"a7fddeb874610ba873213ca32dba672c8e458d90","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.8.4.tgz","fileCount":368,"unpackedSize":1718344,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDucTxZ2hvl/QJC4FBWvJbZ8ciEBnvSaUvfksD8Us8oGQIgAgTSE3DV/YaeFGzOFSM6+1rYDFI0h9m/170clzOM8RM="}]},"_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/endpoint_3.8.4_1686754377547_0.5265573112094342"},"_hasShrinkwrap":false},"3.8.5":{"name":"@rest-hooks/endpoint","version":"3.8.5","description":"Declarative Network Interface Definitions","homepage":"https://resthooks.io/docs/graphql","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/endpoint"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"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","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","dependencies":{"@data-client/endpoint":"^0.1.0"},"gitHead":"4aa1325213434e9ec5d8df272e8e6720d855491a","_id":"@rest-hooks/endpoint@3.8.5","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-27xn6K7siA7Y80bfkQ/+lk5M0yfuVrjl2ilTeBfI10Nb9UAnOe8O9im2CM43OGTtbLuGzVW9QGLKBBSiP6lv8A==","shasum":"3fe0d9f1eb4a3c955b754f6d67818bedd8e4ecfe","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-3.8.5.tgz","fileCount":6,"unpackedSize":19441,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBy0m4E+J6sYJzJ6OlvC0X1P9mXYs3TB7p6uhiI+L3AGAiEAmATga2zp9SZ6iNzeCFfTB8/K750Qs0FwbjUK92sNuzE="}]},"_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/endpoint_3.8.5_1688341737284_0.5723682875215093"},"_hasShrinkwrap":false},"4.0.0":{"name":"@rest-hooks/endpoint","version":"4.0.0","description":"Declarative Network Interface Definitions","homepage":"https://resthooks.io/docs/graphql","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/endpoint"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"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","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","dependencies":{"@data-client/endpoint":"^0.2.0"},"gitHead":"c05c4066d1f565fb56735eaafceb5a0bd6daafa3","_id":"@rest-hooks/endpoint@4.0.0","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-04yZHerkFEB7G5zBhbOC7YZfUX8N22yWAap5hqVmcFae1kxbfZz6/TyQUqwvg/I69dVZRvtgiWiby5xDKjXEZA==","shasum":"800b3a9d744b6086ebbaae14bf24356b0d5aef94","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-4.0.0.tgz","fileCount":6,"unpackedSize":19441,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIErxyKgh1vZXVTPUOQ8APgVAO3Ezqyi7PAkt6RHD2DC2AiASpbd/k0jM30JbeG9Uf9wjdsDRS4qWo4tJVDc7le8K1Q=="}]},"_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/endpoint_4.0.0_1688510304787_0.13279275400965607"},"_hasShrinkwrap":false},"4.0.1":{"name":"@rest-hooks/endpoint","version":"4.0.1","description":"Declarative Network Interface Definitions","homepage":"https://resthooks.io/docs/guides/custom-protocol","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/endpoint"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"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","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","dependencies":{"@data-client/endpoint":"^0.2.0"},"gitHead":"324919f39b3767a01cf57d800aaabafe1f972632","_id":"@rest-hooks/endpoint@4.0.1","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-qG4X7kMDbJEb+y8i8CEEzZU31qnw41kVWHWG4/W/PrDD8j5uFAVwNODl2T+plluWMWX7kkV6oPImDdvLIWQw+A==","shasum":"9d5f376ba7c22d6c3803dd110551963e383789f8","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-4.0.1.tgz","fileCount":6,"unpackedSize":19456,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEHgJEsemW2sZaybUKOdzUzmkwzHFjzt6WHiZcCOffUpAiAsF20oBBrtkSLg9/YeL4oH/qshvg066s66KzcajP+u/w=="}]},"_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/endpoint_4.0.1_1688573756498_0.6856424625028106"},"_hasShrinkwrap":false},"4.0.2":{"name":"@rest-hooks/endpoint","version":"4.0.2","description":"Declarative Network Interface Definitions","homepage":"https://resthooks.io/docs/guides/custom-protocol","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/endpoint"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"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","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","dependencies":{"@data-client/endpoint":"^0.2.1"},"gitHead":"740d8da3641efd969a7121f075acb5977583a27d","_id":"@rest-hooks/endpoint@4.0.2","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-/Co6MLV1fEiZQADNqm8Z5rf45p3zTG4gvivqF6DLZuqn29DOCbERLs58p4Y1UqFtfLKNVNbqP+BHoQvvDCKZDA==","shasum":"3849d0f2ad8b7806f7699efc291be41a28a08957","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-4.0.2.tgz","fileCount":6,"unpackedSize":19456,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICHodswXNXyo9DhxkGLE4kdAmIMMypl03LYeO7PjmtoiAiEA3wCj6i8Ev/MmwC1MIx/kYIn21R02NJdf6pIsmyKRhrk="}]},"_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/endpoint_4.0.2_1690321716715_0.7763066357397681"},"_hasShrinkwrap":false},"4.0.3":{"name":"@rest-hooks/endpoint","version":"4.0.3","description":"Declarative Network Interface Definitions","homepage":"https://resthooks.io/docs/guides/custom-protocol","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/endpoint"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"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","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","dependencies":{"@data-client/endpoint":"^0.2.2"},"gitHead":"063275f43537aa199d50950a421f065becc7d8f4","_id":"@rest-hooks/endpoint@4.0.3","_nodeVersion":"18.17.0","_npmVersion":"9.6.7","dist":{"integrity":"sha512-NdQYnV0i7u0lZcK+W3PNyjbu8hyBYcNl0NYNjQ38Kh7rhLF9BCbRAzkksyo1AZCsT3YjuozjC0XSc370TSMAgw==","shasum":"b55728f1ee2019f65c40aa095a874809fd403685","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-4.0.3.tgz","fileCount":6,"unpackedSize":19456,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFP2QaR6dU4zMValaybbCrwZdUms6fi0c/Vpx7KvS6vJAiBtqyhLYlD4LAZjUVUNVJxIFyxPf6+CkXpT0HHrww2T6w=="}]},"_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/endpoint_4.0.3_1690769581630_0.3773715572526253"},"_hasShrinkwrap":false},"4.0.4":{"name":"@rest-hooks/endpoint","version":"4.0.4","description":"Declarative Network Interface Definitions","homepage":"https://resthooks.io/docs/guides/custom-protocol","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/endpoint"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"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","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","dependencies":{"@data-client/endpoint":"^0.2.3"},"gitHead":"eedc9d23a3c3b88972ac0d21e5d33498c94b52da","_id":"@rest-hooks/endpoint@4.0.4","_nodeVersion":"18.17.0","_npmVersion":"9.6.7","dist":{"integrity":"sha512-N7DIwK3BuZXES2Rh8IF1ZVA/zlFqfbV+RTjwX1CvErt4gXl7nRfiemz5+LkhJaXlTVQNac6/ltOANrgAbVy3CA==","shasum":"cd81e081876851b3778b2f072db6436bb2ff1aaf","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-4.0.4.tgz","fileCount":6,"unpackedSize":19456,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCcCnq3HFPmNo72nk617LLBbwcbIzoz1sRMCkOgwOvtmAIhAPORtJHaNB2+JBdXekxyCE2kIa2pEELYYGGJDPW8IUnY"}]},"_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/endpoint_4.0.4_1691369410877_0.7826827445806765"},"_hasShrinkwrap":false},"4.0.5":{"name":"@rest-hooks/endpoint","version":"4.0.5","description":"Declarative Network Interface Definitions","homepage":"https://resthooks.io/docs/guides/custom-protocol","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/endpoint"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"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","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","dependencies":{"@data-client/endpoint":"^0.2.4"},"gitHead":"30e8b3a42212d8935c886aebecf48fb8da458c43","_id":"@rest-hooks/endpoint@4.0.5","_nodeVersion":"18.17.0","_npmVersion":"9.6.7","dist":{"integrity":"sha512-aTEVluUyK4MhrHFP43XbFRqsWD9Y+uSselkqJ+rs4hRZGdMuPQpTqAovqLRtMrNiNiu2ont6JU0JcQzWSKybwg==","shasum":"ca8bb6024e07a272ecd0df519b8d55025d20cdb5","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-4.0.5.tgz","fileCount":6,"unpackedSize":19456,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFQkuyhya6aLiDTMnmxXXbyO1cKMRH555CYUdeb7ROU9AiBW9+niRQFyF2kBd9vCj8gcTNtEi2P2LuR6qy0sjHDdFQ=="}]},"_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/endpoint_4.0.5_1691877142069_0.1871846487806852"},"_hasShrinkwrap":false},"4.0.6":{"name":"@rest-hooks/endpoint","version":"4.0.6","description":"Declarative Network Interface Definitions","homepage":"https://resthooks.io/docs/guides/custom-protocol","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/endpoint"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"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","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","dependencies":{"@data-client/endpoint":"^0.2.5"},"gitHead":"44e81d31a3d8f8759bbccb4707bd6c44ed4b8c73","_id":"@rest-hooks/endpoint@4.0.6","_nodeVersion":"18.17.0","_npmVersion":"9.6.7","dist":{"integrity":"sha512-16NujyZziA5DQXcLX4lV6cH1cjNxj+pOTOBOhChFyqL1sdPfIDeSx8CrcS/7wN566aTw5fQhFDxDBGM4WqxxrA==","shasum":"c267cbc795a65b63c6d513bcf3e4d50618661835","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-4.0.6.tgz","fileCount":6,"unpackedSize":19456,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCiMd32w1TKGmHni6jXSLEFCQ55OcNttOt/Aji3CH2OeAIgDxQbjGF8ryfXeAXOvlgvPydjaoigDo5vI1IoJNLkzO4="}]},"_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/endpoint_4.0.6_1691967491864_0.24212229354577008"},"_hasShrinkwrap":false},"4.0.7":{"name":"@rest-hooks/endpoint","version":"4.0.7","description":"Declarative Network Interface Definitions","homepage":"https://resthooks.io/docs/guides/custom-protocol","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/endpoint"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"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","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","dependencies":{"@data-client/endpoint":"^0.2.6"},"gitHead":"89874fb8327ede7bc96597bb18860a9c09687a1e","_id":"@rest-hooks/endpoint@4.0.7","_nodeVersion":"18.17.0","_npmVersion":"9.6.7","dist":{"integrity":"sha512-Vvx7EfxoiZXK6DQ8AZUJw8ECny7uLJngpPClnNJwHxWAurEDCNl4CmB8udjt3jIJvr0EU9ZAZxx87tIMLNzf9Q==","shasum":"52173b4c266ff2ced55776f51c7a02005117facf","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-4.0.7.tgz","fileCount":6,"unpackedSize":19456,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA7A8SyWaDNSM6p32QHM4u+qQNcPlkisX6nlmQ1tCRxiAiEAx/tFS6K+b5afBdNu98wYVG4EUi6+FPyDuXecnvAqnU0="}]},"_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/endpoint_4.0.7_1692298707186_0.8769757654186858"},"_hasShrinkwrap":false},"4.0.8":{"name":"@rest-hooks/endpoint","version":"4.0.8","description":"Declarative Network Interface Definitions","homepage":"https://resthooks.io/docs/guides/custom-protocol","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/endpoint"},"keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"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","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","dependencies":{"@data-client/endpoint":"^0.2.8"},"gitHead":"df9652fe623476131555ffce556b4d7ccee1937a","_id":"@rest-hooks/endpoint@4.0.8","_nodeVersion":"18.17.1","_npmVersion":"9.6.7","dist":{"integrity":"sha512-1UaN42FdUl6q1FgJEx4FSj9J6+CYf9M1VaeCh2sXeaGMEUef17a0kGYE8l4DCnfh7yhVcPgHyrsxvTjS1kswjA==","shasum":"e75ab9b7ef82f87111e28f4cccd96cfbcf997463","tarball":"https://registry.npmjs.org/@rest-hooks/endpoint/-/endpoint-4.0.8.tgz","fileCount":6,"unpackedSize":19456,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF9d5l26hT7HFhWf+K+8ulWM4IoB76gdGBzKzD7eDupSAiEAgtgR5qHltZ6OlTl/3F2TITX1JO7FJtCOxWfoqTJnNCg="}]},"_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/endpoint_4.0.8_1693079266537_0.17529458513652463"},"_hasShrinkwrap":false}},"time":{"created":"2020-07-12T03:08:36.102Z","0.2.0":"2020-07-12T03:08:36.510Z","modified":"2023-08-26T19:47:46.952Z","0.3.0":"2020-07-13T19:32:56.066Z","0.3.1":"2020-07-14T07:06:03.912Z","0.3.2":"2020-07-14T15:34:54.672Z","0.4.0":"2020-07-14T22:03:26.034Z","0.4.1":"2020-07-20T22:37:00.748Z","0.4.2":"2020-07-22T17:48:21.964Z","0.4.3":"2020-07-22T21:58:10.342Z","0.5.0":"2020-07-27T17:20:48.146Z","0.5.1":"2020-07-27T20:24:16.761Z","0.5.2":"2020-07-31T21:03:43.603Z","0.5.3":"2020-08-04T02:23:54.383Z","0.6.0":"2020-08-08T02:38:16.649Z","0.6.1":"2020-08-09T06:00:44.802Z","0.7.0":"2020-08-12T22:26:23.592Z","0.7.1":"2020-08-13T16:18:50.372Z","0.7.2":"2020-09-08T04:48:06.473Z","0.7.3":"2021-01-06T03:04:50.032Z","0.7.4":"2021-01-15T01:24:11.549Z","0.8.0":"2021-01-19T04:55:06.282Z","1.0.0":"2021-01-19T17:24:48.965Z","1.0.1":"2021-01-24T23:03:34.144Z","1.0.2":"2021-01-30T15:53:12.388Z","1.0.3":"2021-02-04T16:07:05.375Z","1.0.4":"2021-03-01T22:16:57.181Z","1.0.5":"2021-03-03T21:52:40.853Z","1.0.6":"2021-03-08T23:56:20.767Z","1.0.7":"2021-03-14T03:16:31.219Z","1.0.8":"2021-03-24T22:10:18.299Z","1.0.9":"2021-03-26T08:31:42.400Z","1.0.10":"2021-04-04T00:29:54.029Z","1.0.11-beta.0":"2021-04-05T03:45:11.078Z","1.0.11":"2021-04-12T13:17:38.967Z","1.0.12":"2021-04-12T15:30:10.997Z","1.0.13-beta.0":"2021-04-13T20:29:19.750Z","1.1.0":"2021-04-24T21:31:09.686Z","1.1.1":"2021-04-25T05:05:29.736Z","1.1.2":"2021-05-24T04:09:51.363Z","1.1.3":"2021-05-24T20:17:31.017Z","1.1.4":"2021-05-30T05:34:28.070Z","1.1.5":"2021-06-02T23:36:28.622Z","1.1.6":"2021-06-09T20:58:33.567Z","1.2.0":"2021-06-13T01:08:58.823Z","1.2.1":"2021-06-16T02:32:41.387Z","1.2.2":"2021-06-19T18:34:12.953Z","2.0.0-beta.0":"2021-06-30T16:20:31.382Z","1.2.3":"2021-07-06T21:47:47.836Z","2.0.0-beta.1":"2021-07-12T07:07:21.792Z","2.0.0-beta.2":"2021-09-06T01:34:52.655Z","1.2.4":"2021-09-08T03:57:05.280Z","2.0.0":"2021-09-08T04:08:14.960Z","2.0.1":"2021-09-29T03:59:23.049Z","2.0.2":"2021-09-29T19:59:32.773Z","2.0.3":"2021-10-11T03:31:40.631Z","2.1.0":"2021-11-26T22:38:18.767Z","2.2.0-beta.0":"2022-01-23T23:45:57.049Z","2.2.0-beta.1":"2022-01-31T06:46:08.292Z","2.2.0-beta.2":"2022-02-15T03:39:40.134Z","2.2.0-beta.3":"2022-03-08T19:03:43.023Z","2.2.0-beta.4":"2022-03-10T03:52:39.112Z","2.2.0":"2022-03-17T07:21:19.214Z","2.2.1":"2022-04-01T23:36:48.415Z","2.2.2":"2022-04-02T20:25:34.043Z","2.2.3":"2022-04-08T00:15:48.161Z","2.2.4":"2022-04-11T21:23:16.504Z","1.2.5":"2022-04-16T17:41:09.378Z","2.2.5":"2022-04-16T17:52:59.184Z","2.2.6-beta.0":"2022-04-25T04:21:40.533Z","2.2.6":"2022-04-30T17:57:30.585Z","2.2.7":"2022-05-30T20:14:37.687Z","2.2.8":"2022-07-01T14:22:03.900Z","2.2.9":"2022-07-01T16:30:40.376Z","2.2.10":"2022-07-20T15:52:09.618Z","2.2.11":"2022-07-23T14:56:55.416Z","2.2.12":"2022-07-26T18:16:46.793Z","2.3.0":"2022-09-04T04:59:17.373Z","2.3.1":"2022-09-10T23:42:08.724Z","3.0.0-beta.0":"2022-09-16T15:57:20.024Z","3.0.0-beta.1":"2022-09-17T21:15:45.731Z","3.0.0-beta.2":"2022-09-19T19:30:18.830Z","3.0.0":"2022-09-19T19:41:38.502Z","3.0.1":"2022-10-01T01:24:21.611Z","3.1.0":"2022-10-28T03:30:52.878Z","3.2.0":"2022-11-07T01:06:07.301Z","3.2.1":"2022-11-09T02:54:52.442Z","3.2.2":"2022-11-13T17:22:16.443Z","3.2.3":"2022-11-22T21:49:59.300Z","3.2.4":"2022-12-05T02:48:36.731Z","3.2.5":"2022-12-06T21:45:17.037Z","3.2.6":"2022-12-23T16:21:49.019Z","3.2.7":"2023-01-13T01:41:34.155Z","3.2.8":"2023-01-14T15:05:45.116Z","3.3.0":"2023-01-23T15:23:58.138Z","3.4.0":"2023-01-29T03:48:16.189Z","3.4.1":"2023-01-30T23:18:10.928Z","3.5.0":"2023-02-11T18:12:12.848Z","3.5.1":"2023-02-14T03:15:31.313Z","3.5.2":"2023-02-14T16:50:38.704Z","3.6.0":"2023-02-21T17:27:48.459Z","3.7.0":"2023-03-02T15:47:38.223Z","3.7.1":"2023-03-12T05:44:30.341Z","3.7.2":"2023-03-15T20:06:54.411Z","3.7.3":"2023-03-19T18:57:57.484Z","3.7.4":"2023-03-21T20:19:02.230Z","3.8.0-next.0":"2023-04-26T21:57:22.500Z","3.8.0":"2023-05-02T22:40:33.905Z","3.8.1":"2023-05-03T19:40:11.434Z","3.8.2":"2023-05-03T21:45:29.901Z","3.8.3":"2023-05-09T01:40:39.450Z","3.8.4":"2023-06-14T14:52:57.801Z","3.8.5":"2023-07-02T23:48:57.475Z","4.0.0":"2023-07-04T22:38:24.951Z","4.0.1":"2023-07-05T16:15:56.675Z","4.0.2":"2023-07-25T21:48:36.995Z","4.0.3":"2023-07-31T02:13:01.791Z","4.0.4":"2023-08-07T00:50:11.050Z","4.0.5":"2023-08-12T21:52:22.234Z","4.0.6":"2023-08-13T22:58:12.052Z","4.0.7":"2023-08-17T18:58:27.362Z","4.0.8":"2023-08-26T19:47:46.754Z"},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"description":"Declarative Network Interface Definitions","homepage":"https://resthooks.io/docs/guides/custom-protocol","keywords":["data","cache","networking","fetch","typescript","data fetching","data cache","api","normalized cache","subject pattern","declarative","definition","schema","async","ajax","react","react-native","ios","android","web"],"repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/endpoint"},"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"license":"Apache-2.0","readme":"# TypeScript Standard Endpoints\n[![CircleCI](https://circleci.com/gh/data-client/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/data-client/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/data-client/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/data-client/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/endpoint?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/endpoint)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/endpoint.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/endpoint)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDeclarative, strongly typed, reusable network definitions for networking libraries.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs/guides/custom-protocol)**\n\n</div>\n\n## Usage\n\n### 1) Take any class and async functions\n\n```typescript\nexport class Todo {\n  id = 0;\n  userId = 0;\n  title = '';\n  completed = false;\n}\n\nexport const getTodo = (id: string) =>\n  fetch(`https://jsonplaceholder.typicode.com/todos/${id}`).then(res => res.json());\n\nexport const getTodoList = () =>\n  fetch('https://jsonplaceholder.typicode.com/todos').then(res => res.json());\n\nexport const updateTodo = (id: string, body: Partial<Todo>) =>\n  fetch(`https://jsonplaceholder.typicode.com/todos/${id}`, {\n    method: 'PUT',\n    body: JSON.stringify(body),\n  }).then(res => res.json());\n```\n\n### 2) Turn them into Resources\n\n```typescript\nimport { schema, Endpoint } from '@rest-hooks/endpoint';\nimport { Todo, getTodoList, updateTodo } from './existing';\n\nexport const TodoEntity = schema.Entity(Todo, { key: 'Todo' });\n\nexport const TodoResource = {\n  get: new Endpoint(getTodo, {\n    schema: TodoEntity,\n  }),\n  getList: new Endpoint(getTodoList, {\n    schema: [TodoEntity],\n  }),\n  update: new Endpoint(updateTodo, {\n    schema: TodoEntity,\n    sideEffect: true,\n  }),\n};\n```\n\n### 3) Reuse with different hooks\n\n```tsx\nimport { useSuspense, useController } from '@rest-hooks/react';\n\nfunction TodoEdit() {\n  const todo = useSuspense(TodoResource.get, '5');\n  const ctrl = useController();\n  const updateTodo = (data) => ctrl.fetch(TodoResource.update, id, data);\n\n  return <TodoForm todo={todo} onSubmit={updateTodo} />\n}\n```\n\n### 4) Or call directly in node\n\n```typescript\nconst todo = await TodoResource.get('5')\nconsole.log(todo);\n```\n\n## Why\n\nThere is a distinction between\n\n- What are networking API is\n  - How to make a request, expected response fields, etc.\n- How it is used\n  - Binding data, polling, triggering imperative fetch, etc.\n\nThus, there are many benefits to creating a distinct seperation of concerns between\nthese two concepts.\n\nWith `TypeScript Standard Endpoints`, we define a standard for declaring in\nTypeScript the definition of a networking API.\n\n- Allows API authors to publish npm packages containing their API interfaces\n- Definitions can be consumed by any supporting library, allowing easy consumption across libraries like Vue, React, Angular\n- Writing codegen pipelines becomes much easier as the output is minimal\n- Product developers can use the definitions in a multitude of contexts where behaviors vary\n- Product developers can easily share code across platforms with distinct behaviors needs like React Native and React Web\n\n### What's in an Endpoint\n\n- A function that resolves the results\n- A function to uniquely store those results\n- Optional: information about how to store the data in a normalized cache\n- Optional: whether the request could have side effects - to prevent repeat calls\n\n## API\n\n`@rest-hooks/endpoint` defines a standard `interface`\n\n```typescript\ninterface EndpointInterface {\n    (params?: any, body?: any): Promise<any>;\n    key(parmas?: any): string;\n    schema?: Readonly<S>;\n    sideEffects?: true;\n    // other optionals like 'optimistic'\n}\n```\n\nas well as a helper `class` to make construction easier.\n\n```typescript\nclass Endpoint<F extends () => Promise<any>> {\n  constructor(fetchFunction: F, options: EndpointOptions);\n\n  key(...args: Parameters<F>): string;\n\n  readonly sideEffect?: true;\n\n  readonly schema?: Schema;\n\n  fetch: F;\n\n  extend(options: EndpointOptions): Endpoint;\n}\n\nexport interface EndpointOptions extends EndpointExtraOptions {\n  key?: (params: any) => string;\n  sideEffect?: true | undefined;\n  schema?: Schema;\n}\n```\n\n### [EndpointOptions](https://resthooks.io/rest/api/Endpoint#endpointextraoptions)\n\n#### key: (params) => string\n\nSerializes the parameters. This is used to build a lookup key in global stores.\n\nDefault:\n\n```typescript\n`${this.fetch.name} ${JSON.stringify(params)}`\n```\n\n### sideEffect: true | undefined\n\nDisallows usage in hooks like `useSuspense()` since they might call fetch\nan unpredictable number of times. Use this for APIs with mutation side-effects like update, create, deletes.\n\nDefaults to undefined meaning no side effects.\n\n### schema: Schema\n\nDeclarative definition of where `Entities` appear in the fetch response.\n\nNot providing this option means no entities will be extracted.\n\n```tsx\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Endpoint } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n}\n\nconst UserDetail = new Endpoint(\n    ({ id }) ⇒ fetch(`/users/${id}`),\n    { schema: User }\n);\n```\n\n### [Endpoint](https://resthooks.io/rest/api/Endpoint)\n\n#### extend(EndpointOptions): Endpoint\n\nCan be used to further customize the endpoint definition\n\n```typescript\nconst UserDetail = new Endpoint(({ id }) ⇒ fetch(`/users/${id}`));\n\n\nconst UserDetailNormalized = UserDetail.extend({ schema: User });\n```\n\n### Index\n\n```typescript\nexport interface IndexInterface<S extends typeof Entity> {\n  key(parmas?: Readonly<IndexParams<S>>): string;\n  readonly schema: S;\n}\n```\n\n```typescript\nimport { Entity } from '@rest-hooks/normalizr';\nimport { Index } from '@rest-hooks/endpoint';\n\nclass User extends Entity {\n  readonly id: string = '';\n  readonly username: string = '';\n\n  pk() { return this.id;}\n  static indexes = ['username'] as const;\n}\n\nconst UserIndex = new Index(User)\n\nconst bob = useCache(UserIndex, { username: 'bob' });\n\n// @ts-expect-error Indexes don't fetch, they just retrieve already existing data\nconst bob = useSuspense(UserIndex, { username: 'bob' });\n```\n","readmeFilename":"README.md"}