{"_id":"@bungie/datastore","_rev":"8-6680609c46fc87e0084f6c7c31644e0c","name":"@bungie/datastore","dist-tags":{"latest":"1.0.4"},"versions":{"0.1.0":{"name":"@bungie/datastore","version":"0.1.0","dependencies":{"deep-equal":"2.0.5","promise.allsettled":"1.0.4","react":"17.0.2"},"_id":"@bungie/datastore@0.1.0","_integrity":"sha512-bhzanljg41rIT/BA/A5uTYOjsxv8OzT/ZzMfOUEyRzJO78XhDeXYysnlvjAF+aL0hrCOF74nfC7MBSZgSgT49g==","_resolved":"c:\\users\\jlauer\\_bazel~1\\fbdoqih2\\execroot\\net_bu~1\\bazel-~1\\x64_wi~1\\bin\\src\\packages\\npm\\datast~1\\da1658~1.run\\net_bu~1\\src\\packages\\npm\\datastore\\datastore_package.tgz","_from":"file:c:\\users\\jlauer\\_bazel~1\\fbdoqih2\\execroot\\net_bu~1\\bazel-~1\\x64_wi~1\\bin\\src\\packages\\npm\\datast~1\\da1658~1.run\\net_bu~1\\src\\packages\\npm\\datastore\\datastore_package.tgz","_nodeVersion":"16.4.1","_npmVersion":"7.18.1","dist":{"integrity":"sha512-bhzanljg41rIT/BA/A5uTYOjsxv8OzT/ZzMfOUEyRzJO78XhDeXYysnlvjAF+aL0hrCOF74nfC7MBSZgSgT49g==","shasum":"33f3b99d64eaaf134909b25570d4587e22cd9ffe","tarball":"https://registry.npmjs.org/@bungie/datastore/-/datastore-0.1.0.tgz","fileCount":19,"unpackedSize":25633,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiNA0KACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpl5g/9E7AHlmzMJdW8e48dj/pE3rdH5dj+xNuwQB+LptHTkTBxcCuo\r\n8ZH3vDDqwv505kZyFMjyIjMn+CWeRbJXWH3wabyNpvcxJhk37M5lzumUT6QH\r\nB9vzYZJUHy1wjOMOUyeqe5erxwyViObHU6rA9v29DVeYQcy+fCzhQ8fAwMAd\r\nfkf81U7zvZ2pnXEyVMqrvPIVDjwKa2w3SCWFkU5Hp/Quyl3Sbw13cLwuVuSg\r\nN3TQWgInCVNvtbVeKv2Mn0P6WPCfeejl3oV0NQnJ0HF9eXcZylxYRFnchj1g\r\nk+ujNq+3zYr8AxBwU1vTAJMYHZfplr6UrUtevTYcgj9iuRhI/zrQwxr95ELy\r\nOIkrjAj+U+7+mGfLv8nKMhXWLfw4YWydwvesPScf13xNWbWbkvtRPZlpN5y0\r\nztczBKPUChVpG23CRcKLI7guYGjgWhNhckcGCn3032uSVHTPbhHcLITByNKd\r\ncyCLK0ToXEJ8bP02anku5OT3o+eoxv/JsoMhVsYQr0FiRfvn7p3QYyM5Bm7u\r\nVAq1qkab8PzUiP5ihwzhmWXRr8mBjfD28FRJMVW9/2baPQkfE2GAwZibCTWY\r\nByVb13sBAWsN4yfSbccGd3Va+UYtrS685AlhvKX0J/4gAswueV19nXjy3fuz\r\nKFOi7gzJ0zs7QBdYC7c+cBap2kQqnZ1liWo=\r\n=h1g9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDe2X11vFQo24rp6yvyNLmOKE/B6c2haUrTPDIyKl7rdAiBeFMM2hIi5c+yuTrbCdcDnyCIqWoATtn6WP2z0GA2suw=="}]},"_npmUser":{"name":"bungienpmadmin","email":"npmadmin@bungie.com"},"directories":{},"maintainers":[{"name":"jlauer_bng","email":"jlauer@bungie.com"},{"name":"bungienpmadmin","email":"npmadmin@bungie.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/datastore_0.1.0_1647578378821_0.4135008109581111"},"_hasShrinkwrap":false},"0.1.1":{"name":"@bungie/datastore","version":"0.1.1","dependencies":{"deep-equal":"2.0.5","promise.allsettled":"1.0.4","react":"17.0.2"},"_id":"@bungie/datastore@0.1.1","_integrity":"sha512-ZggXtxLbRy9U9qjAmgBvHBrbSZveH09vJwjpWUtS8W3jJp5cPvQYWw1OOIbkFxtJt5qbpgNtTUESihh18YHWOw==","_resolved":"c:\\users\\jlauer\\_bazel~1\\fbdoqih2\\execroot\\net_bu~1\\bazel-~1\\x64_wi~1\\bin\\src\\packages\\npm\\datast~1\\da1658~1.run\\net_bu~1\\src\\packages\\npm\\datastore\\datastore_package.tgz","_from":"file:c:\\users\\jlauer\\_bazel~1\\fbdoqih2\\execroot\\net_bu~1\\bazel-~1\\x64_wi~1\\bin\\src\\packages\\npm\\datast~1\\da1658~1.run\\net_bu~1\\src\\packages\\npm\\datastore\\datastore_package.tgz","_nodeVersion":"16.4.1","_npmVersion":"7.18.1","dist":{"integrity":"sha512-ZggXtxLbRy9U9qjAmgBvHBrbSZveH09vJwjpWUtS8W3jJp5cPvQYWw1OOIbkFxtJt5qbpgNtTUESihh18YHWOw==","shasum":"4b5a3960dad68c866d2bce6d97cae1fe654165f4","tarball":"https://registry.npmjs.org/@bungie/datastore/-/datastore-0.1.1.tgz","fileCount":21,"unpackedSize":33692,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiNA4xACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp13g//X8uiSOyyuRbsPXV/TaDf5NQELlnuQqpQ295lBfElODC3F5Fa\r\nuz3MTqTw5tn+s/e+QecpO8YbKIsnxVxOLjvZuiJ5JxM/IRpdN+oA4tHUbd36\r\nz/LZVLyG+WqvtWcEPYjcigPjhtFIW1brNmEoiYcVYSVb5NEUPgAJ/H3DXpMr\r\nOc5VLaRc/voSE2snGxSz49ZiJc2bHD8K4SyTMpefP/02AROwppTidF4m+yKW\r\n/Y072Wk2LeECM+OqI4wtz9+GRy2kbjPuj19ykQuWRS42pjvvCpaLuthd41IV\r\nMiCRyMnLT/CDuh4bnlp9uEwOrsBpVP+0fUkUF9gyjagrXzqvfLF5MVHg9aA1\r\na7AkL6wwOV6GxEa+P+OgyfwgtmPh2/XRJHKlJ0My8I5opBza8O+NoEp7trWJ\r\nlmVGK24RX6kN7GXV6DjvBdDQjt+hDTxETfzb/pBPtKlpL27xwao5kUg7y0n5\r\naDASyoiYAnVK2vGJTUdhRu/iXJYQ8v6r7S547fbZtH7U0M/E/eNeDi67O02W\r\ndUXXzFFcN/d3Q/k2ttqu4U0Ex9hJa8Mq8Pv3/8bMizhw3mXX6xxaoJfxL5xq\r\ne1BEanSqgWohanZYPw7oqcyAZfAliUG0W3CNsb04ciTLDC0q3Ps7JaaREUT2\r\ncCf3bg3OeQJyqxq4EZzfxqNxfwWlaRXDT+s=\r\n=7zf6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCH/oCpBtOdBD4MA3eIK2mIhAXIjev14q/pIpjtTxD/4wIgXrAqq11xrZoUNDWzNWG8BlWHyoDU/OAyft1Hw3OKMBg="}]},"_npmUser":{"name":"bungienpmadmin","email":"npmadmin@bungie.com"},"directories":{},"maintainers":[{"name":"jlauer_bng","email":"jlauer@bungie.com"},{"name":"bungienpmadmin","email":"npmadmin@bungie.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/datastore_0.1.1_1647578673732_0.710167830521425"},"_hasShrinkwrap":false},"0.9.0":{"name":"@bungie/datastore","version":"0.9.0","dependencies":{"deep-equal":"2.0.5","promise.allsettled":"1.0.4","react":"17.0.2"},"repository":"https://github.com/Bungie-net/DataStore","_id":"@bungie/datastore@0.9.0","_integrity":"sha512-YNYyYQ4y5tcQ6i9hN2JVXfjwRFBxyI/eKEd+cL8I+dLovo+FAxYaxUJIquu1/gA2dFazkHL0WmXm0rKz5NXTFA==","_resolved":"/root/.cache/bazel/_bazel_root/6c0ed944729a3fc03fefaa22eff06e49/execroot/net_bungie/bazel-out/k8-fastbuild/bin/src/packages/npm/datastore/datastore_package.deploy.sh.runfiles/net_bungie/src/packages/npm/datastore/datastore_package.tgz","_from":"file:/root/.cache/bazel/_bazel_root/6c0ed944729a3fc03fefaa22eff06e49/execroot/net_bungie/bazel-out/k8-fastbuild/bin/src/packages/npm/datastore/datastore_package.deploy.sh.runfiles/net_bungie/src/packages/npm/datastore/datastore_package.tgz","_nodeVersion":"16.4.1","_npmVersion":"7.18.1","dist":{"integrity":"sha512-YNYyYQ4y5tcQ6i9hN2JVXfjwRFBxyI/eKEd+cL8I+dLovo+FAxYaxUJIquu1/gA2dFazkHL0WmXm0rKz5NXTFA==","shasum":"e464688e58e8eb9125970fd2d68d8b1650f1364f","tarball":"https://registry.npmjs.org/@bungie/datastore/-/datastore-0.9.0.tgz","fileCount":21,"unpackedSize":34492,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9X047dHG1YaBNugYT8vH7mDQqRSisjgn+90cuQ7BY2AIhAK5pQGZhaecynIK3xvC30KySgaCOpOa1W5zaS3GAqeTx"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiUHtQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpCnw/9Hi0COHP2R/G+qPQ2OGT/1l6zqWq8YkgVhQvBdE5wGUJ+UUdj\r\nzfV08/Wy5ixTbvtBHH3N0d+GermVPvTRO+IQcRV+V1BYktB2d18dhztB3iMH\r\n4hiN0XKGvl5jnIPj8p8OlwXxwgh/A3r32riHpoqENZ61h7i7KE4KuZHVnQLd\r\npFZy//xTz8Oo8w1EkXXnhPaIX02tJW2PC0RqFeay+jwrJI6CCI9dLCgyHaYS\r\nCrJ/BjFZBI5unpUZXRPNcRdZq+Uqj+HUV4DP5/YnbmqkiefnEm09fvamXbdc\r\nxcc+M6pVreAjTH8Dnz7PQi+pdRoVAkZxyND6pKa8C7w159fxkv/GbO+BjvYN\r\nKDRvsbRfGlJTR2Dw0wCzJKGF6V6Z/v1VY2/hk/25nedI7JHrs3Iql7aAg8CL\r\nogVUbEB/gmriI+W2tIrob6UgqaFxPgPNYEU82ngZ9tsJTg5hhWInuoYuFoPk\r\nLcN4Ymqy8uqQByHHG1MneUWV9f8XlMz3V8sfya7NyVr2LxsPMnrq9xdVeQw3\r\n9rcwWO1bkr3vAiqSOZPTQ59Y6xWUvkphByddhD5NA/J1lQRYjf8u4OYa9iFx\r\n4MA9EGgdc1o0AMY8AWClgevZlpDfT+NK2KH7jwWlHlMC3yxJkhdr7/6asP0z\r\nh7SaeWaRdeViJL20dzTeq+jOI1hM5md2CPA=\r\n=rCO4\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"bungienpmadmin","email":"npmadmin@bungie.com"},"directories":{},"maintainers":[{"name":"jlauer_bng","email":"jlauer@bungie.com"},{"name":"bungienpmadmin","email":"npmadmin@bungie.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/datastore_0.9.0_1649441616256_0.010234728045993347"},"_hasShrinkwrap":false},"1.0.0":{"name":"@bungie/datastore","version":"1.0.0","dependencies":{"deep-equal":"2.0.5","promise.allsettled":"1.0.4","react":"17.0.2"},"repository":"https://github.com/Bungie-net/DataStore","_id":"@bungie/datastore@1.0.0","_integrity":"sha512-HdCGxSFv+YSVi11rfD/6ZjlXfzWhY1MBv/ymt820wIJEJbyFgXgiH3HcoOSv5tsCgKMTVKXtD8zc0vDN99tHzg==","_resolved":"/root/.cache/bazel/_bazel_root/537d0f6f14f1acf2d2406061d52ef174/execroot/net_bungie/bazel-out/k8-fastbuild/bin/src/packages/npm/datastore/datastore_package.deploy.sh.runfiles/net_bungie/src/packages/npm/datastore/datastore_package.tgz","_from":"file:/root/.cache/bazel/_bazel_root/537d0f6f14f1acf2d2406061d52ef174/execroot/net_bungie/bazel-out/k8-fastbuild/bin/src/packages/npm/datastore/datastore_package.deploy.sh.runfiles/net_bungie/src/packages/npm/datastore/datastore_package.tgz","_nodeVersion":"16.4.1","_npmVersion":"7.18.1","dist":{"integrity":"sha512-HdCGxSFv+YSVi11rfD/6ZjlXfzWhY1MBv/ymt820wIJEJbyFgXgiH3HcoOSv5tsCgKMTVKXtD8zc0vDN99tHzg==","shasum":"a659f3da96877766b908c045625431f4b30a24e1","tarball":"https://registry.npmjs.org/@bungie/datastore/-/datastore-1.0.0.tgz","fileCount":21,"unpackedSize":34492,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVidEiVlCVvii98Xmmx3LLrsncezvkziUwIfEtqwkBywIhAJYuHbUh2yrT0HmS+Di3zutgOrjK9UM7C20vmHh3zq4L"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiUP49ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo5xw//clEz+sSMJfysTDCiRDldL8LQ9KY0Hru59VDbUh6JcKj4JYfM\r\nA1480c6tm9eWUOYqpaiGTcs5a/mrvzgKra2IkoYt+72KEU2WzHsuIfL8qvAm\r\nxLPCxI92N3z3tDcIPsQasby5+4/KrzG4QWEu5R+MHIaQCMG0BWaX9bq1/BQ9\r\nAPMMgY9UNdAPmMFjyUwLi4WV1xHy5//0U+n23UMsqy2DSbTh2Mp5LLHeaSAK\r\nOoVAI1WBoABaRIhmI6NtMYEgtGTIyy4/CPFYC78j4uWAGDMJ22clTUbemath\r\n9VBRH4FlX0AjjLGM030g5CPzM+cwf4WuH4wGKoik+g0FOyH6OwwUKaq9s7mr\r\nAsfpzPUw+srnsGmJSIQZZbOv6zP2py0uvQWgvPvYYmvFFgon0/Lbrh9Nvtnr\r\n/ZyistSzIO/dYZWwaQiKTi00+QL0j1I12zHjDOFFpzjBV1NAPa4l/S8LBIXm\r\n8ceeAvtAtnvfwyj45U406VNxCefkzr7ix2xJ5GgISNp8Fl6kW8DwqSD9yCEk\r\nx84DceQTks7OThhN/qBi0BdgJnBPmqazRGNfJ7VG6GAnepI4D2Rf86EvyyVX\r\nclNeqmdu+2CuJj1pWqJUuRuTRpb0OgdsAgrUOgEsPkSnzu1tIoA4JT4qrsKn\r\nkm5dkK/je+Z31oImEpOMDYMBnPhsEjjIXBA=\r\n=1icP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"bungienpmadmin","email":"npmadmin@bungie.com"},"directories":{},"maintainers":[{"name":"jlauer_bng","email":"jlauer@bungie.com"},{"name":"bungienpmadmin","email":"npmadmin@bungie.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/datastore_1.0.0_1649475133499_0.33126329074919214"},"_hasShrinkwrap":false},"1.0.1":{"name":"@bungie/datastore","version":"1.0.1","dependencies":{"deep-equal":"2.0.5","promise.allsettled":"1.0.4","react":"17.0.2"},"repository":"https://github.com/Bungie-net/DataStore","_id":"@bungie/datastore@1.0.1","_integrity":"sha512-7Hu2whdpq4zSsWKy8uXC0AinJy4dRVfwSvmVbOsqHgzzbVBFwIE/XHkAXz8j1PNUyFK/VjLA7C1mmvomApRuHg==","_resolved":"/root/.cache/bazel/_bazel_root/7915b52da27544053f7a14a92f390ee3/execroot/net_bungie/bazel-out/k8-fastbuild/bin/src/packages/npm/datastore/datastore_package.deploy.sh.runfiles/net_bungie/src/packages/npm/datastore/datastore_package.tgz","_from":"file:/root/.cache/bazel/_bazel_root/7915b52da27544053f7a14a92f390ee3/execroot/net_bungie/bazel-out/k8-fastbuild/bin/src/packages/npm/datastore/datastore_package.deploy.sh.runfiles/net_bungie/src/packages/npm/datastore/datastore_package.tgz","_nodeVersion":"16.4.1","_npmVersion":"7.18.1","dist":{"integrity":"sha512-7Hu2whdpq4zSsWKy8uXC0AinJy4dRVfwSvmVbOsqHgzzbVBFwIE/XHkAXz8j1PNUyFK/VjLA7C1mmvomApRuHg==","shasum":"4632f57d4b31bf953ffb638c181feec487e2a690","tarball":"https://registry.npmjs.org/@bungie/datastore/-/datastore-1.0.1.tgz","fileCount":21,"unpackedSize":34504,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFGBuFiwLz5xjKUlyaPayDB6Sl2QK3fDhfUlkRF13rJeAiB7PrDeDh/ZrdCPwLU8IxywQKW4bODeiz5AWVh0zQFKJw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiVKj9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpwEBAAjO3ul7ogOLmIFRZjAmO+E8O/nvYSeq7UlLBdauTtXIKU7n1T\r\nh2BKq9DC1JFak2z99ykZcmpMcNaRiLnzeBj6fsrLL+d3WfJGClzbiVIJtVdp\r\nZhyVLN4njrM6/h0pilvWz1N/Jtf4jKA+YyPRGM9YGj0sRajjBixYueNT3idK\r\n0OgcJ2FDeYXIwQey4Bfeb4FIU6y5QNKdibwe5AG4YBavzSLEsOPMODsQBmOn\r\n0dRDl1mgWkmJv7lIt4Zn0eQtjBgyEyNLlebTd6zsD1aGWKSn2RDWSvUGaWVX\r\ndDmRRBo/TvUF0ArTOUxeImdFepeUzGvBJln7qI3RAtQfc0WVldIUYw7oockW\r\nWntRn6R+COwNsd2Uz7otiIwpLyXYbs67xCZpmMU8+HdVzUxRHDXzhJR3WnaW\r\nlbMpUOKClB0OhHIvssxhmQBEsb5Mq8Bz2D0m7k/yoSUmQCAu/lMU7Nen5x2D\r\nMNmIO1RSdQTw456n1YInQiFAi/YhRaezMji1ifuW8WSfNNDdl9qBVfd7js0I\r\n/31+yPH/9z4XI7orzEvWJfF+l1rSE+PTeT+s9yz2u/pv8GOlb+XKf547wM10\r\nFNj71ti4ql2ImpTgjwcXXjZNQ44wQMzgwBnkRW/LSP+5TkHuYv2w5SGGBoDI\r\nIkiqQ1Mry3TwLioKRDnjY+ChSTzH4k/epUw=\r\n=speG\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"bungienpmadmin","email":"npmadmin@bungie.com"},"directories":{},"maintainers":[{"name":"jlauer_bng","email":"jlauer@bungie.com"},{"name":"bungienpmadmin","email":"npmadmin@bungie.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/datastore_1.0.1_1649715453699_0.47723830514113175"},"_hasShrinkwrap":false},"1.0.2":{"name":"@bungie/datastore","version":"1.0.2","dependencies":{"deep-equal":"2.0.5","promise.allsettled":"1.0.4","react":"17.0.2"},"repository":"https://github.com/Bungie-net/DataStore","_id":"@bungie/datastore@1.0.2","_integrity":"sha512-nDv+7FwakwM3KQT4/o3ToVSnW/hR0rE+8e/t2umPCpUKGLgBfWgQvgjN0e7nsxBl4YYXLMMm3JzGqDeDemxdbQ==","_resolved":"/root/.cache/bazel/_bazel_root/e6eb712a495c971c29dd68d5150aed95/execroot/net_bungie/bazel-out/k8-fastbuild/bin/src/packages/npm/datastore/datastore_package.deploy.sh.runfiles/net_bungie/src/packages/npm/datastore/datastore_package.tgz","_from":"file:/root/.cache/bazel/_bazel_root/e6eb712a495c971c29dd68d5150aed95/execroot/net_bungie/bazel-out/k8-fastbuild/bin/src/packages/npm/datastore/datastore_package.deploy.sh.runfiles/net_bungie/src/packages/npm/datastore/datastore_package.tgz","_nodeVersion":"16.4.1","_npmVersion":"7.18.1","dist":{"integrity":"sha512-nDv+7FwakwM3KQT4/o3ToVSnW/hR0rE+8e/t2umPCpUKGLgBfWgQvgjN0e7nsxBl4YYXLMMm3JzGqDeDemxdbQ==","shasum":"2d83098b7270312150539b94e1f83532d991392e","tarball":"https://registry.npmjs.org/@bungie/datastore/-/datastore-1.0.2.tgz","fileCount":21,"unpackedSize":34505,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC8U45hyMahA00Pa6FzF9OtRL01M96Bd1xdH/BwPW5jwAiEAszqdGd1OErYCkerRx33o75rgj1DluxTZhf7b2+T8U80="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiV2C2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp42Q//bJnYczF+bv/G5uOko9Dl1P3BQmnf8GoEGWSyjzEI+PaZ/Bpt\r\nqPYO8Ef60E1tJFAuUM8dxSgvuwUajELGLDoXs/rYUJrZmRm4Oo+VqLC7SR08\r\n3rLrIXdtdudidpqbkmu/eRoJ1WrFPLowTTHmPPGokGVkU7BN7r25JeiKbeud\r\nein0nItzno257vjoA+R83FVBz2QtkckNZahT+AazxQF5N89zwbBdrvMTfgjw\r\n9vbvdlYJrISz5HqIg1lOfZGxzeGuMZjnuAmp6x7sZ/LcyOqaCygkJ0pv1wit\r\nOEfbon458xINdgaVmFobz5RqobDQrY/E0FdOP/Ui7Sifnks5m2QHxWkQyQCY\r\nW+kAJBkLNQruODXP0RFu5tqkmgyIKI2FFZY/d/3tNvkhOB0H6HmpiFhDx3CH\r\n23RwCCXwcYjWXm21MyJ//jYRqD/j4unTInEUxJGvvxu/Chg2tPgREdvCmpgo\r\nXMmuoiWptYiZ/vJQyf8ewSkJeCT2W95twfCIuwm/oEtpXG2NsjuJycEx3b2/\r\nKy+JrEqoCdM6W2sRvnGFF6TRkHDe1MSHwLYACPVyRMIc8cfWUz+y81N5OCE2\r\nX7yDwLRy3VQ9Tsy1gxhZQTlQ4OI9pX61096pfcnGx2bViU5v4TaIe5DPPa1A\r\ncdFOT68YtZv7J5p1NsfbDKZve+xoxxsbmbk=\r\n=0N95\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"bungienpmadmin","email":"npmadmin@bungie.com"},"directories":{},"maintainers":[{"name":"jlauer_bng","email":"jlauer@bungie.com"},{"name":"bungienpmadmin","email":"npmadmin@bungie.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/datastore_1.0.2_1649893558169_0.34786798439413746"},"_hasShrinkwrap":false},"1.0.3":{"name":"@bungie/datastore","version":"1.0.3","dependencies":{"deep-equal":"2.0.5","promise.allsettled":"1.0.4","react":"17.0.2"},"repository":"https://github.com/Bungie-net/DataStore","_id":"@bungie/datastore@1.0.3","_integrity":"sha512-HsXs6LNZ0nDh/e8N2qrPR4ML6tajfODEHul8OYXnQ/Hmzo75kfwOwatYX4U5wNH59/3brWsr1sRSNZN6TwRfjw==","_resolved":"/root/.cache/bazel/_bazel_root/ef040d3ab8f5a25b8cb111789922dd22/execroot/net_bungie/bazel-out/k8-fastbuild/bin/src/packages/npm/datastore/datastore_package.deploy.sh.runfiles/net_bungie/src/packages/npm/datastore/datastore_package.tgz","_from":"file:/root/.cache/bazel/_bazel_root/ef040d3ab8f5a25b8cb111789922dd22/execroot/net_bungie/bazel-out/k8-fastbuild/bin/src/packages/npm/datastore/datastore_package.deploy.sh.runfiles/net_bungie/src/packages/npm/datastore/datastore_package.tgz","_nodeVersion":"16.4.1","_npmVersion":"7.18.1","dist":{"integrity":"sha512-HsXs6LNZ0nDh/e8N2qrPR4ML6tajfODEHul8OYXnQ/Hmzo75kfwOwatYX4U5wNH59/3brWsr1sRSNZN6TwRfjw==","shasum":"8e71a3bdfb1f2cd0136c762a73c545bb1fa28335","tarball":"https://registry.npmjs.org/@bungie/datastore/-/datastore-1.0.3.tgz","fileCount":21,"unpackedSize":34492,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFO0ER8jRsLTiwrVVBGMM76NQNFu5/gBuVsMiaHUdWm6AiANgBU2RQFDgY7IQoZY3juxpnuKzZ7gI+QnSvwUJzaSbQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi0knTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr9Tw/9ElWGwuxP2rmaVZkYkAbYNP2AhNvmsUZeQoGZVEVWxQATkYm9\r\nZAQwk/GkburPyrrwdO6WenDfgIO1kSGmnB68eOL988MY3D9U0i8yrZSHykWM\r\nNKX6TeEdq43I/DET9WilUPjzlsIpPqPFhrd1YU6DY/YFD/pjZYvnH8y2nXVw\r\nvpNMcYLmjNLojzx/iTGRxRX1Z1NjO2DnASYLzu2ky0Oj5BitikESOA6qQMEZ\r\nP5RjonBKrzz4rB9yrL3WfgvZDGQrnsrd+T1uXS0lV+vU1vtmPLpf6RGkW04f\r\nTFX1IBf5Vd5yqy9jNAzuUFCJe+ijRGOdFriyInSVH7o6A+/yHWQop0YO8sEd\r\nMgJZUcFVD6yKuOTPCuXwP3xgjvCpfwt+12NbKBlKRCnHj5Me2hiahnT9Oxru\r\nJ3/7BTsB76hop24lvrwe5hvwlwa6J5pCA67YX2ECbDn3wA7hurzUBKh8UI9E\r\nLZMZhJZGJuSQ1gUCBUSmGudKWAzM2c6T6ouM3XUkfZW3bLk7uPY2e6v65Tnx\r\n9K8czppSJJb4fI/5yEJZQ2CI4cgCDKFn2JiMWKM+jDYqZMQA6dk/XgqOLPGY\r\n1fCpbr/LaoO0XnNoTxZnyzo/cNuoX+/7fbPuGidHrLR4W6eZl8PQxoUZYWr0\r\nqqaFVD0JYDGfdBrx/oLywtnZrpYOogFsOmA=\r\n=krMP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"bungienpmadmin","email":"npmadmin@bungie.com"},"directories":{},"maintainers":[{"name":"jlauer_bng","email":"jlauer@bungie.com"},{"name":"bungienpmadmin","email":"npmadmin@bungie.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/datastore_1.0.3_1657948627738_0.7621824595773743"},"_hasShrinkwrap":false},"1.0.4":{"name":"@bungie/datastore","version":"1.0.4","dependencies":{"deep-equal":"2.0.5","promise.allsettled":"1.0.4","react":"18.2.0"},"repository":{"type":"git","url":"git+https://github.com/Bungie-net/DataStore.git"},"types":"./index.d.ts","description":"[![NPM version][npm-version-image]][npm-url] [![MIT License][license-image]][license-url]","bugs":{"url":"https://github.com/Bungie-net/DataStore/issues"},"homepage":"https://github.com/Bungie-net/DataStore#readme","_id":"@bungie/datastore@1.0.4","_integrity":"sha512-xAYJABLjPUvsNZvW46rDM8cPFQk02fmWoUoflqsz/Y/CGS8rXC2163Bv7a6iUmM31MWodBMRi+zqRcmOt03K3Q==","_resolved":"/root/.cache/bazel/_bazel_root/c745b8567e8e1ec7bf1983bb788d9dcf/execroot/net_bungie/bazel-out/k8-fastbuild/bin/src/packages/npm/datastore/datastore_package.deploy.sh.runfiles/net_bungie/src/packages/npm/datastore/datastore_package.tgz","_from":"file:/root/.cache/bazel/_bazel_root/c745b8567e8e1ec7bf1983bb788d9dcf/execroot/net_bungie/bazel-out/k8-fastbuild/bin/src/packages/npm/datastore/datastore_package.deploy.sh.runfiles/net_bungie/src/packages/npm/datastore/datastore_package.tgz","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-xAYJABLjPUvsNZvW46rDM8cPFQk02fmWoUoflqsz/Y/CGS8rXC2163Bv7a6iUmM31MWodBMRi+zqRcmOt03K3Q==","shasum":"2ad0f66362a815c5da75baa9b5ce5ce1d66dac81","tarball":"https://registry.npmjs.org/@bungie/datastore/-/datastore-1.0.4.tgz","fileCount":21,"unpackedSize":34548,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDcHc98Z5muh/dKDc0xnHkr+3Yt3mFKOpJ5X2o3oic+jQIhAPht+ST7QY0iwROEv/58ASdEtlx4xX7aJTYisyioLBdQ"}]},"_npmUser":{"name":"bungienpmadmin","email":"npmadmin@bungie.com"},"directories":{},"maintainers":[{"name":"jlauer_bng","email":"jlauer@bungie.com"},{"name":"bungienpmadmin","email":"npmadmin@bungie.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/datastore_1.0.4_1707535157312_0.3840366110408211"},"_hasShrinkwrap":false}},"time":{"created":"2022-03-18T04:39:38.771Z","0.1.0":"2022-03-18T04:39:38.958Z","modified":"2024-02-10T03:19:17.680Z","0.1.1":"2022-03-18T04:44:33.891Z","0.9.0":"2022-04-08T18:13:36.405Z","1.0.0":"2022-04-09T03:32:13.744Z","1.0.1":"2022-04-11T22:17:33.885Z","1.0.2":"2022-04-13T23:45:58.341Z","1.0.3":"2022-07-16T05:17:07.923Z","1.0.4":"2024-02-10T03:19:17.471Z"},"maintainers":[{"name":"jlauer_bng","email":"jlauer@bungie.com"},{"name":"bungienpmadmin","email":"npmadmin@bungie.com"}],"readme":"[![NPM version][npm-version-image]][npm-url]\n[![MIT License][license-image]][license-url]\n\n# DataStore\n\n**DataStore** is a simple and intuitive isomorphic state management system, built in and optimized for TypeScript, with React integration.\n\n## Installation\n\n`yarn install @bungie/datastore`\n\nor\n\n`npm install @bungie/datastore`\n\n## Why DataStore?\n\nWhy use DataStore instead of the other state management solutions? Well, when we looked at our state management needs, a few goals surfaced:\n\n1. **Intuitive**: The simplest, clearest usage pattern should also be the easiest one. Other state management solutions require significant boilerplate - DataStore minimizes that.\n2. **Type-safe**: Not only should typing be enforced, it should infer as much as possible. Writing types manually contradicts goal #1.\n3. **Lightweight**: Most state managment amounts to setting and changing individual properties. Assuming patterns beyond that accomplishes little. DataStore is very extensible for more divergent patterns, but covers most use-cases out of the box.\n4. **Decentralized**: Rather than having one large, centralized store created from many segments, DataStore is decentralized, and depedencies between individual stores are managed manually by those stores. This is useful for sites composed of independent pieces rather than monolithic architectures, although DataStore functions perfectly well in either scenario.\n\n# How to\n\n## Create a DataStore\n\nDataStores can be created by extending the `DataStore` class and creating instances or singletons that way, or\nby using the `getDataStoreBuilder<TPayloadType>().build()` method described below.\n\n### Functional Components\n\n```typescript\nimport {getDataStoreBuilder} from \"./DataStore\";\n\ninterface TodoItem\n{\n\tlabel: string;\n\tchecked: boolean;\n}\n\ninterface TodoDataStorePayload\n{\n\titems: TodoItem[];\n}\n\nconst myTodos = getDataStoreBuilder<TodoDataStorePayload>().build({\n\tactions: {\n\t\tadd: (state, label: string) => ({\n\t\t\titems: [...state.items, {\n\t\t\t\tlabel,\n\t\t\t\tchecked: false\n\t\t\t}]\n\t\t}),\n\t\tremove: (state, label: string) => ({\n\t\t\titems: state.items.filter(i => i.label === label)\n\t\t}),\n\t\ttoggle: (state, label: string) => ({\n\t\t\titems: state.items.map(item => (item.label === label)\n\t\t\t\t? {...item, checked: !item.checked}\n\t\t\t\t: item\n\t\t\t)\n\t\t})\n\t},\n\tinitialState: {\n\t\titems: []\n\t}\n});\n\n```\n\n\n### Class components\n\n```typescript\nimport {DataStore} from \"./index\";\n\ninterface TodoItem\n{\n\tlabel: string;\n\tchecked: boolean;\n}\n\ninterface TodoDataStorePayload\n{\n\titems: TodoItem[];\n}\n\nclass TodoDataStore extends DataStore<TodoDataStorePayload>\n{\n\tconstructor()\n\t{\n\t\t// Pass initial data to the super\n\t\tsuper({\n\t\t\titems: []\n\t\t});\n\t}\n\n\tpublic actions = this.createActions({\n\t\tadd: (state, label: string) => ({\n\t\t\titems: [...state.items, {\n\t\t\t\tlabel,\n\t\t\t\tchecked: false\n\t\t\t}]\n\t\t}),\n\t\tremove: (state, label: string) => ({\n\t\t\titems: state.items.filter(i => i.label === label)\n\t\t}),\n\t\ttoggle: (state, label: string) => ({\n\t\t\titems: state.items.map(item => (item.label === label)\n\t\t\t\t? {...item, checked: !item.checked}\n\t\t\t\t: item\n\t\t\t)\n\t\t})\n\t});\n}\n\nconst myTodos = new TodoDataStore();\n```\n\n## Observing\n\n### Functional Components\n\nThe easiest way of using a DataStore instance in a functional component is the `useDataStore` hook. This hook\nautomatically observes the instance and destroys the observer when the component unmounts.\n\n```typescript jsx\nimport {useDataStore} from \"@bungie/datastore\";\nimport {UserDataStore} from \"./UserDataStore\";\n\nexport const MyComponent: React.FC = () =>\n{\n\tconst userData = useDataStore(UserDataStore);\n\n\treturn (\n\t\t<div>Hi, {userData.username}!</div>\n\t);\n}\n```\n\n### Class Components\n\nWhen using a DataStore instance in a class component, the instance data must be added to state. The most common pattern\nis to subscribe to the instance on `componentDidMount` and then destroy the subscription on `componentWillUnmount`.\n\n\n#### Using the `withDataStore()` HOC\n\n```typescript jsx\nimport {UserDataStore, UserDataStorePayload} from \"./UserDataStore\";\nimport {withDataStore} from \"@bungie/datastore/WithDataStore\";\n\ninterface Props extends UserDataStorePayload\n{\n}\n\nclass MyComponent extends React.Component<Props>\n{\n\tpublic render()\n\t{\n\t\treturn (\n\t\t\t<div>Hi, {this.props.username}!</div>\n\t\t)\n\t}\n}\n\nexport default withDataStore(UserDataStore, MyComponent)\n```\n\n#### Manually subscribing / destroying\n```typescript jsx\nimport {UserDataStore, UserDataStorePayload} from \"./UserDataStore\";\nimport {DestroyCallback} from \"@bungie/datastore/Broadcaster\";\n\ninterface MyComponentState\n{\n\tuserData: UserDataStorePayload;\n}\n\nclass MyComponent extends React.Component<{}, MyComponentState>\n{\n\tprivate destroyUserDataStoreObserver: DestroyCallback;\n\n\tconstructor(props: {})\n\t{\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tuserData: UserDataStore.state\n\t\t}\n\t}\n\n\tpublic componentDidMount()\n\t{\n\t\tthis.destroyUserDataStoreObserver = UserDataStore.observe(userData =>\n\t\t{\n\t\t\tthis.setState({userData});\n\t\t});\n\t}\n\n\tpublic componentWillUnmount()\n\t{\n\t\tthis.destroyUserDataStoreObserver();\n\t}\n\n\tpublic render()\n\t{\n\t\treturn (\n\t\t\t<div>Hi, {this.state.userData.username}!</div>\n\t\t)\n\t}\n}\n```\n\n## Custom Observer Props\n\nFor some use cases, it may be desirable to provide extra data for observers in a DataStore, perhaps to filter out which\nobservers are updated for a particular data change, or other modifications.\n\nIf these are required, you may specify the `propsRequired` boolean in the constructor.\n\n### Example:\n\n#### DataStore Creation\n\n```typescript jsx\nimport {DataStore} from \"@bungie/datastore\";\nimport {getDataStoreBuilder} from \"./DataStore\";\n\ninterface Payload\n{\n\tvalue: number;\n}\n\ninterface ObserverProps\n{\n\tshouldUpdate: (value: number) => boolean;\n}\n\nclass _ClickCountDataStore extends DataStore<Payload, ObserverProps>\n{\n\tpublic static Instance = new ClickCountDataStore();\n\t\n\tconstructor()\n\t{\n\t\tsuper({\n\t\t\tvalue: 0\n\t\t}, {propsRequired: true});\n\t}\n\t\n\tpublic actions = this.createActions({\n       increment: (state) => state.value + 1 \n    });\n\n\tpublic override getObserversToUpdate(data: Payload)\n\t{\n\t\treturn this.allObservers.filter(observer => observer.params.shouldUpdate(data.value))\n\t}\n}\n\nexport const {ClickCountDataStore} = _ClickCountDataStore.Instance;\n```\n\n#### Usage\n\n```typescript jsx\nimport {useDataStore} from \"@bungie/datastore\";\nimport isPrime from \"prime-number\";\nimport {ClickCountDataStore} from \"./ClickCountDataStore\";\n\nconst PrimeClickCountDisplay: React.FC = () =>\n{\n\t// Only update when the value is even\n\tconst clickData = useDataStore(ClickCountDataStore, {\n\t\tshouldUpdate: value => isPrime(value)\n\t});\n\n\tconst [primeCount, setPrimeCount] = useState(0);\n\n\tuseEffect(() =>\n\t{\n\t\tsetPrimeCount(primeCount + 1);\n\t}, [clickData.value]);\n\n\treturn (\n\t\t<div>In {clickData.value} clicks, we hit prime numbers {primeCount} times!</div>\n\t)\n}\n```\n\n## Custom Observer Instance\n\nYou can create a custom observer instance if you want it to do specific things when data is updated.\n\n### Example\n\n```typescript jsx\nimport {BroadcasterObserver} from \"@bungie/datastore\";\nimport {getDataStoreBuilder} from \"./DataStore\";\n\n/**\n * Log a message every time an update happens\n */\nclass LoggerObserver<TDataType, TInputType = any> extends BroadcasterObserver<TDataType, TInputType>\n{\n\tconstructor(callback: (newData: TDataType) => void, params: TInputType)\n\t{\n\t\tsuper(callback, params);\n\t}\n\n\tpublic update(newData: TDataType)\n\t{\n\t\tconsole.log(\"Observer updated: \", newData);\n\n\t\treturn super.update(newData);\n\t}\n}\n\ninterface UserDataStorePayload\n{\n\tusername: string | null;\n\tid: number | null;\n}\n\nconst UserDataStore = getDataStoreBuilder<UserDataStorePayload>().build({\n    initialState: {\n\t\tusername: null,\n        id: null\n    },\n    actions: {\n\t\tloadUser: async () => {\n\t\t\tconst userData = Api.loadUser();\n\t\t\t\n\t\t\treturn {\n\t\t\t\tusername: userData.username,\n                id: userData.userId\n            };\n        }\n    }\n})\n```\n\n[npm-url]: https://npmjs.org/package/@bungie/datastore\n[npm-version-image]: https://img.shields.io/npm/v/@bungie/datastore.svg?style=flat\n\n[license-image]: https://img.shields.io/badge/license-MIT-blue.svg?style=flat\n[license-url]: LICENSE\n","readmeFilename":"README.md","repository":{"type":"git","url":"git+https://github.com/Bungie-net/DataStore.git"},"description":"[![NPM version][npm-version-image]][npm-url] [![MIT License][license-image]][license-url]","homepage":"https://github.com/Bungie-net/DataStore#readme","bugs":{"url":"https://github.com/Bungie-net/DataStore/issues"}}