{"_id":"@boostbank/stateful","_rev":"39-7863310c864e46a4da545d7946c07638","name":"@boostbank/stateful","dist-tags":{"latest":"1.0.5","beta":"1.0.0-beta.4"},"versions":{"0.1.0":{"name":"@boostbank/stateful","version":"0.1.0","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"files":["lib/*"],"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"babel-cli":"6.26.0","babel-core":"6.26.0","babel-eslint":"8.2.2","babel-preset-es2015":"6.24.1","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"ISC","bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","gitHead":"6af63839a223d0337a06007671b7666a0aa54240","_id":"@boostbank/stateful@0.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"dbteku","email":"dbteku@hotmail.com"},"dist":{"integrity":"sha512-O6SmnCtaxBtEUhPsniI6SpNdwVIY5L3ZzqqxCefGXGKiXtSVUrHMeV5fe6D7UcafKb8+zovQq7AommENHdywwg==","shasum":"7aebfe1afab238ed985384c49291b418ec17b065","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.0.tgz","fileCount":2,"unpackedSize":4838,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa49O4CRA9TVsSAnZWagAABWkQAKBoeOCqZWLq5I5S0SI+\n0Z3sxc5inAj999BN4OJAErSi9yhXccLpOuTEZ7WlgLC8PefFJnxd0RCnF3lv\nEoUGkWlKlmn0P1PtZ3T3GSwRPwoPSNv4M5XXkodEmFMP5ftjGyNJH/T23xnj\nj3c8wJRwpstGc6sG6j3J4/NgiCDIunPnN2Vy56BoZlinctvZeaQNgtkeCIBZ\n+XsCWOHw+UW4D2bmCGJs0fGBQbgH6pXLoVXqxRdYsNjLXye/DFnkZn5+99QZ\nxsPPvvjKVMppF/iFccgGNqcvFKZmBg+hLmYE8FujOz9Rlb1aNT7yABEn6m6C\n49PQ7PxAMURUw1xIborBdOXEoRT5ltXFvNKbFVOmDwf2qgVAh+iHo8aynpP9\n/1CklzdpHVmMoc31rh0JRo7KeT80DlHM1JeSZDtI6G9aA2+UZTKnb4UWweje\nqz54j4XhlABPlWeGs5rj0qtbX+FXlUtLxGwUb+M0+h4yysZM/TvEraCaUKKp\n9pL2Kzzwo6byJALF4YGebbOGdke9d0mkoLqzKuMXqp1JGa8AMkimHGzF/VEd\nJnJzMF+AWucCyLQMFKK6a+MaBTMeENNOOUE6LDiuCFE/nl42qZJ9WVUk8/z4\nkVB2fCexPdWdOK8BdrN8Ub9N//D+iG/z7kRc8+nfYQkA8BD28o4fiNUZ7Dn3\n1PlR\r\n=uQjD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFjuXl18TP681uaE+3L1u+EJTFUTRc5dAt6+4Qal1wnAIhAPN4HHqmKgGR+3UTxKPgJwyUHo2v13QZ+30Ss81bE8g9"}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.0_1524880311566_0.44476086918931634"},"_hasShrinkwrap":false},"0.1.1":{"name":"@boostbank/stateful","version":"0.1.1","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"files":["lib/*"],"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"babel-cli":"6.26.0","babel-core":"6.26.0","babel-eslint":"8.2.2","babel-preset-es2015":"6.24.1","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"ISC","bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","gitHead":"ba645802495ef2bb60054331d6be3bb7b6b3b4e6","_id":"@boostbank/stateful@0.1.1","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"dbteku","email":"dbteku@hotmail.com"},"dist":{"integrity":"sha512-aBqgeyH1oXJNTLKVn64SKB562G4WMOffhKAVmLTPrrLBLmKEOOviH85L83ZtvgWpKAzyVOn0CD/uJW1BXIhujA==","shasum":"f38fc0ee7d3cee42e7cc8eb22b0a297b59822aa9","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.1.tgz","fileCount":2,"unpackedSize":5493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa49X9CRA9TVsSAnZWagAA7EIQAJfTNlDHBCw2IX0/TAw8\nVGXbNekRBfRgFNNHPflOj/hO6qwA+qO1zM0S+p0K6aNu2h+aPeJk/7EbCiic\nzLQzhlMrKdeF3GcAr8en3o4o9xyHj/SNjqRXk2faMFPE+YsUrUSTVNYh8Al2\nlhiYMF1Y363z8sbwS19xN/y1dTfoFfGOAnO9VjYm566VafGoTvBRodRlmWRa\n8Pv12F6Sw/pN3qMfY23qW8I3nuuGGS+LK5AGp7mXdvDIyS8x0jutbPdhBJ7C\njwMpOdrd2ZlpDer13ZVolmp5KHz5dRqKgYc3qPbQCzRORbv0dG84wuRD7iD8\n3Jw/Jj/7DtwxB6Jcxin8b1QmTJrUBcLTWpy79b8Tt+AQpUn1TKL8IPiDhQaP\nRWRccv/8z0JyX5hPSbHSfgAxcg/5H481inpIexWFXqvC/v0PSuIdL0hDZ0+3\nURGz0E2L0/u6y2H/7YT0knsY/wZZnPStBiu5eVMdCnvTEe9ScmutZoEWAI8A\nw7RwrBCOBbTy9vBsmvqfoFk14IEN4FzRqUHrKjLoaWu+dEI9tTD9rgcQpvI7\np9hOOG/Xo4x3V2h+Ifa43AmSwyrSR4ZdOBIeH7HdDRKOU3MDz1m1Bgtap7T0\n3/DRgUELuQ3UchkcENguvHSpgM9H1g3PrvaQ30S5fTvgs8jhb/apaO8RDCnd\n7ajm\r\n=4Nhy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBxIa0xljtwUlvqABykX/bt3ltesLvA+RjETO1jL0wWBAiBIH98MpPllIg5QkGVacess2nRdxznX+S/MwiJBgkAsIQ=="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.1_1524880893027_0.4939382905591283"},"_hasShrinkwrap":false},"0.1.11":{"name":"@boostbank/stateful","version":"0.1.11","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"files":["lib/*"],"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"babel-cli":"6.26.0","babel-core":"6.26.0","babel-eslint":"8.2.2","babel-preset-es2015":"6.24.1","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"ISC","bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","gitHead":"c2cde79992b0c7e89da17f05437f9a96f37c3763","_id":"@boostbank/stateful@0.1.11","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"dbteku","email":"dbteku@hotmail.com"},"dist":{"integrity":"sha512-NZwiqigb1Ll4SUojlLGP8JF9HCr5lwSU/92Tmg9KQLlwd2Lo21PNtr8kK7WtHCFJ/pt3Ayx4oaEc4DzsfQe6yw==","shasum":"c5c25685833c3ee80743ec84e9405f3c87925772","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.11.tgz","fileCount":2,"unpackedSize":5548,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa49jZCRA9TVsSAnZWagAA+QQP/iARDsd89DV6xRc1G0wH\n15UKdl3gysRSoocSR8OZ/7o+J3YAjDhjWmho0cUolFLuHlAlGPoA4JAezH1W\ntNDvzfLnwfI/pDxJHUe8IgE7fxyIkKtQYYWSamDh24tppta3bk55vOKVKY7a\nGUSTZwyDi19+/D0Ab8lhkMRJvZhfxC3MRp+n9jpULtxbCcaVkX9hKbkEhZ/x\nzpJgpWMjEfRLdP0h/jAVFVD6ij2CLDS7gMwXtNcGu2y8EZrGbbjO3MnoGE5A\ndaFr86Wk230NSoNECd6bbvoeRCBs1CTAyuE/397cBuzZSkymR67GDn24J6EY\nNAkwN6UqcAMG/8y2gqLyB/Dt6rCsQX9EWbYNEdT7mJyxLJtshWIHYjgyZWN8\nvDxnwjzInPMBM1yGn1oo63nJ4Dsn7vNK/H4/0UsJYKrdD1vxcUxlIDDEjTQn\nWt5tHnpYhDUT95wmCByeWRC5TzF3o7rqA065ZUnuv8UTFVaTk/kDUODp3kb4\nWaJLsF4f07QeB6SYvqLh1Znuumw/kJ7UntLJps60VjEGgv7/VQIgJcjm7tjO\ntsM5PynwhkTwQDaxC4khDyaJ2N0FsouE5zfcq4Q4upcsNSwq5VmIH3BBTlSU\nnwns4DX1kMFU8k3JAPRC/qNayelCRNllI4+u7FiVYmSGCeeuNZvcMaSyhbCi\nlgbK\r\n=tuuT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCITzyBNsc7n65YKN4ObQ3FiQgxYpaXVyvFvxcBgs67KwIgOmEcXFWjrbiDygk/oagNX9hH0VvrncLh/jBTEan/IdI="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.11_1524881625358_0.9136258184203421"},"_hasShrinkwrap":false},"0.1.12":{"name":"@boostbank/stateful","version":"0.1.12","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"files":["lib/*"],"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"babel-cli":"6.26.0","babel-core":"6.26.0","babel-eslint":"8.2.2","babel-preset-es2015":"6.24.1","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"ISC","bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","gitHead":"82b6f1e8855f6a38c4b597d406f56dc3cfe83437","_id":"@boostbank/stateful@0.1.12","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"dbteku","email":"dbteku@hotmail.com"},"dist":{"integrity":"sha512-AQ7ene7ybf8i+c1F+rpntvvdKCL2Ht6MBD5NO4JiKegntjrvlRuAGMhLnz3GY6pmmWSRS5GBZU6VozMJ3OB8nw==","shasum":"d584c65f1b064deba3270a13ae090a1749e0a5ab","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.12.tgz","fileCount":2,"unpackedSize":5575,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa4+LQCRA9TVsSAnZWagAAJcAP/1Vc6T626LWaPBMRn9hR\nN+cfz4c8HDLWqmAZ+VLUckR3v4ANv4ED72T+lTHelF/pO+ABkcfszY+tuE/m\nmLAi02CXrIl1GPjkSHcWlksZghren4zA3hVcrEqFdteCSte1AckesHXSesLC\nMMz5dxZ3pyDyvrl1ygSKV7j5OKuvz8Kn7yinu7j9Q4WHDbGVOdaFnxYyvtQs\nLZEFWJIfdK4M+xflfjNFCcqS1n5hFvlPt1SYEkGveHn/uJ9mI+0NDwz0442t\nfuHhgbZN3Yqrma6oqrVnvSQzJylz6yGgCm7U3n04iIr27+Rof8UHPbDebynm\nQHYz2e8AfYzhd8YkEm9SESwIiy6AdZRo9+FfJux1xoiZichXnl5qbdTS2z6C\ncyulIR4r0BEh3/9laaqjttL/pxqWeOccxKZOH+kAjXzQVEwDdy0qf2hs1Npz\nfIi6JVswdvW076oNu02Ar5CODeZdu01FLBhXo+FdfIWk8nM5GHtisWaBd2JC\nWe9kgQPIdLCoMd3gxoos7cLAAkzSOHt9uoK4OP0lBjvkhXPr+odo9KRXgOmn\n5aEx8mNiZWygLsQNId0JQ1QYAB4XifvX6thFdJWfuc0y8Gmg0qdF60PbgBbc\n4hMHmGb+paWP1jG+2+HFia2R82E6iwhMWe7S8RVDRpuyZkBUh5cf4F5cEG2h\nXvdP\r\n=Z2ir\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGwWANooi7rja88H1+pWmXBICuFLqV1F54cy5C0TKA56AiA+/T4Qu9jDFMuyPmYZjQCzCxBdz2QUagLQGvQbbTpOQg=="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.12_1524884175462_0.06458606762796015"},"_hasShrinkwrap":false},"0.1.13":{"name":"@boostbank/stateful","version":"0.1.13","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"files":["lib/*"],"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"babel-cli":"6.26.0","babel-core":"6.26.0","babel-eslint":"8.2.2","babel-preset-es2015":"6.24.1","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"ISC","bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","gitHead":"28cc8ea2a7b075d0c64916854879dea7d2730fc0","_id":"@boostbank/stateful@0.1.13","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"dbteku","email":"dbteku@hotmail.com"},"dist":{"integrity":"sha512-8akhnq9G3fefkvbJP418CWXOUZ6PCmc+xq0UKpNwaFPxpkl0fkckVgWaPz+Fz4vE1am3UTUwCA5aRYQkJctqjA==","shasum":"99ab304221386fc7cd53503b6c972ee0d5860103","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.13.tgz","fileCount":2,"unpackedSize":5574,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa5BCWCRA9TVsSAnZWagAAMuUP/3M6Dt+Ew4jZwlC1cz9i\nYbOSimQP6g8jwhcGx6++GZLHCwyoprKeU9+tzsfdOjg9ut3SA0mwpu9/z+pk\nGu6TuxkB5c5jtxscEDUDVCsdsWyhI42zInA8lgmn4/aGns0KQOoLvgPKwrxI\nxfs5fdYfs08B7S7eTRvX0L9nX6hFwLYJn9OGjxQpvtg990axd8t3G3BD51CH\nNfU9Ex1nuYSEONYwBcSx+MU9fu2J1p/5aLa2i6xLZHzj4W8gId+q/LQViJRS\nPlZIta7bwyp9UFCgHc3X8aIHZCGhXOm1VvajdLeg4OJIjEI71EcEEfdxzwQi\nd0qzyvRv9vnMZJleUOysKxlNyR3pvQ+zKvT4yCcrc14cAFEoy89OX0SS7vT8\nUzKHMZiENo9VaXFkhZeH3AATHwRtGjV+9e1ujJTmASOOzF7ZrfCBKS6Ao11t\nttvt3bc3d+U89ZIm8rtCaytd/usxHqxIe6/FBT1cc80phF5CnRqjxsjDqQju\n805mf1COtbrZi28c/UUTC9mOu0xeC1cMqqo7W4bRt7hXmgIDCQTCy38QqFOX\n2pF1Yjyj5ulLj3v/9POlXdJyu8cKsk6RbX6lWwnEqup6nP4CIJKm8/CFqzB+\nXw00dwFxhoOMDD5d7OjjOC6e/K/nfsYTltlPJM+uLW0TwbeLKeC3K+D+mTeH\nrWrb\r\n=OEPF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFJYkJEKDLHrNFcKBM1bANO0b0Upoo5E5u9z8FTbIntLAiBjcMsgRR5ZGe8K7SA9Mx1QOYiHwZazqUa+fWxUZTsOmQ=="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.13_1524895894091_0.4893350562584584"},"_hasShrinkwrap":false},"0.1.14":{"name":"@boostbank/stateful","version":"0.1.14","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"files":["lib/*"],"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"babel-cli":"6.26.0","babel-core":"6.26.0","babel-eslint":"8.2.2","babel-preset-es2015":"6.24.1","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"ISC","bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","gitHead":"ec7db4d29c4640657782be79ee94c5f3bddeebb4","_id":"@boostbank/stateful@0.1.14","_shasum":"c60d375e5ff8de5be88095da3a08cf4993f2960e","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.3","_npmUser":{"name":"drboyce","email":"drboyce21@hotmail.com"},"dist":{"shasum":"c60d375e5ff8de5be88095da3a08cf4993f2960e","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.14.tgz","fileCount":2,"unpackedSize":2828,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa5gftCRA9TVsSAnZWagAAW14P/0vULBJPjN3407vuLqbp\nMaiGi6+GmXfzfo1GPtRjycINyhugf54Bw3sOdzZt67ay5pAq+d0l6/2ezP27\npg49ebTOcNHqzYOVY4ea0wKXE9WX+vMwQn1O7UH2D9d+KHpm/fYdFvqU3GlI\nIjHLrgJJnNh9vB7PCnPpDCJpIUAhlmW2JXB7cX8zJOnFkXx88AJoBKxWgUF8\ndiu5KyT4berB72r036P+tRn4FH1IYI82wjktgdwBSiUPZeQun+YXsrM6K9iD\nBm/qo3j3NGSEDF5BdomKKRHjoumHmr000QgEFG7chgEUpPcEU4OZEI7S2Wie\n0oRl4aJMfyhWNGBiguo1diS4Rjp2t5fx7r4ncgnKhNuOayu7gvoifN0wTtA7\n+HpLHkgRLlSpLBRPxTL/f+kOyO9X15LG2wpNf2IjILSeMJHD3wlYzfSoBx04\n1pG2EWy+YumCqs8xGL3CftnUeI9GwhYSpYsfIZQI5o8KXu81U+PTh+BjfxiR\nY178rcrbbyEUkvSiXwoXIQMttI7Xmg2uG1XsOs3CqoeR3l7NgYnx2u1Ccqg5\nm7FtW6xP2mguhZo2Hjkn2EwJzpujDIniAstug55hw7QXsyR/DSYnHxNAfo3e\nQg+fGleuSaW89p3zKQZDkkVgU0pyeNSUSvXqdNsxh9ABtXxDRDj5X/O4t+jz\nsR2V\r\n=Oq2H\r\n-----END PGP SIGNATURE-----\r\n","integrity":"sha512-w3tBEDCgNkb+5e2v22TpzA7GdW5Ih2eQCt7XCI8n4TBPeLPaFHANjgU1EoQBohEsr186CEu+4IVsfRnM8j69bA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDhCPJQ0I5db0sQdv/arISgJno5VJdFVnmd1tP0b2jmOAiEA2l72xZwT19AROpodHjB2JnoP0UPNAhI/0mZOHEidQXE="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.14_1525024748958_0.9229352365008692"},"_hasShrinkwrap":false},"0.1.15":{"name":"@boostbank/stateful","version":"0.1.15","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"files":["lib/*"],"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"babel-cli":"6.26.0","babel-core":"6.26.0","babel-eslint":"8.2.2","babel-preset-es2015":"6.24.1","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"ISC","bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","gitHead":"5d8847fc0fff9cdd4493c19b4160ef2c3c27e7bd","_id":"@boostbank/stateful@0.1.15","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"dbteku","email":"dbteku@hotmail.com"},"dist":{"integrity":"sha512-Ja2Mj4FYXr41mBEH1fLNv2T5ePPlShY5fuHBo7/fqa1wHdbLKr310eyvIYy6PpzNc3s1+xaFRE2HLG3euxobCA==","shasum":"0aac5d0597f63bcb5e42a78032ea9708b3052c2b","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.15.tgz","fileCount":3,"unpackedSize":7610,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa5hH0CRA9TVsSAnZWagAAwcMP/2x2CmYk87fMGWIi/vvf\nBrzrFO7nmbyr8atayaWJYoNJAhG8gsKC/GjftoBkFbc5cYHKvOGxIqOxczZX\n/ekSwCzdZwRt+dk7z8Y4Bf7E2E4BNpWk5ovAWd2TyU9z/jV1a5tVDTtzXcU9\nqKljOQCyrTQResgjBiCpdP3rtwp4yu5TIBzllInauCixvA+C8gdjda1xln0Y\nZdvx3cOKyIfGRFL1w09xXsGa54z34J9ZiMupd5O4GLlIqmZytgj3NtzCdWv4\nf0+95rJrDPlp+AvPs/YKEJ9jDvpO28QefImF17hRLIy/qjkWc6NiMt0eut/t\n5TBF87i12xr/tluI4kgt/MeSU18VdMaVGIyBoqsTMBFm2c+fESbYTSnCb5oL\nMJEnDgjse05ruam0dw7Gr98OU+Y6xkaYJH7UGSE+L3x8yl75/dxr4o9zYg1g\nWYTg7/EiXnBY5uuWC6xPxKMO2hkZkDzb0SmkkCDEsr3xOPq1J6jDvUVXTi2j\n2yDipAF197LVk+CFlTJtQ6NuzwYJHYDdjjH00HwlK7adzDacF/PtdIiQwhDQ\n8IzHV5SKeBJdkiyePcfL7oub6YQCZZosY2kfpBOAq80Knlc5+tbiR9BkMPJC\nr4H+9Q4zhaQPUzWZ41vHmTcjh9OkS2vTGPDuCCZklme1IcztAZIPYFtKI1kY\nCQO8\r\n=z3zg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCemV+Ps47o/VNvQBQGXzp/eV6U5dKA1eTwbBv7z0s7XQIhAL3+owwHwxWz7Rp7m8HlQxYjR0+ixCFt5PEY21sq3S6s"}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.15_1525027315929_0.6972716810936874"},"_hasShrinkwrap":false},"0.1.16":{"name":"@boostbank/stateful","version":"0.1.16","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"files":["lib/*"],"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"babel-cli":"6.26.0","babel-core":"6.26.0","babel-eslint":"8.2.2","babel-preset-es2015":"6.24.1","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","gitHead":"5be752fe6622d70c1b663940db4228e31a37b3f1","_id":"@boostbank/stateful@0.1.16","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"dbteku","email":"dbteku@hotmail.com"},"dist":{"integrity":"sha512-y9uQrpYD0j2tdx4GelLtvOynTpEjUwzafnNATwVEDrhii+ZF225FnYXiwSNmPWJ1rr+3kvnPgnBaeNRG8oNXUQ==","shasum":"9497b411a79bbaf2d479b7e411bb5f75f414bd04","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.16.tgz","fileCount":3,"unpackedSize":7644,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa6JSTCRA9TVsSAnZWagAAjqsP/Rt4DWF+VHdkLZsGplhu\nkGuOLdtQ/bxH0kWwHUtjvtzVPuXr+mznIOTmSGxGdnd6TuaKGmqhkLdIEbP+\n5wx1WiifrqO8PVHb4mxVgAbMkaaG4OSVSgQkcgEHjmSqRBXZFyLpz4lJPweC\nhG4EiOa3WEWjOg1aWyQZ0HFBndiTwQmxsk//TwtFbyRU7hDvq4ZbFhs1CKx5\nRrRl3NLNYSYPuZ7JYRe7T9V/8aNpbS6HThfmZveMeUDgOGeF5bYQWvvlJFP8\nep37PZBPtik9br7B/s9x5d4K405jS5ktoizoycnGJJ9l1uoQEG6P628bLKZr\nWDMAlAJCy6QIBdKhYDFFD0gIT1c4En/dRliMK5vvl8deMgSNyZw8KfgyS7Wg\n6ZkHUEConPvq3Z+015JmjkbmD2TjK/XKcqtkmIntKCNzsP7T4sHpJlCxIesI\nbr6t8bkZX3Qs3YQxrkQMGL/dpxnKaktLSPbWm8skEN3rw1omr35nOHLNuNgE\nRHBat35/gu7Scr1DfXLSt8mJgFKBbC6VhctTflWlIaF2BxHs9VgTCnLipzFT\nwMuC5WyYXOz3fRK2D7m+kJzhvAgMql76HfknIzFAE1rhzGCtLWRa6EAvV6b8\n/ixnjjHFacBUI0Dibn+PMSyawSQ6xlFK1a5ITv4M/XUSzhJ7OHnPXp8ycvg0\nvSMh\r\n=eHRj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSvObXnndtSqPD6Uzv6E0d2JC3z2bgTsTsJXUnw7ZMOAIgSCxEAKycZXbJ2mLvg2tbgvno1KtEIPJ0RM8EdHZldts="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.16_1525191826169_0.4793675035930396"},"_hasShrinkwrap":false},"0.1.17":{"name":"@boostbank/stateful","version":"0.1.17","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"files":["lib/*"],"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"babel-cli":"6.26.0","babel-core":"6.26.0","babel-eslint":"8.2.2","babel-preset-es2015":"6.24.1","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","gitHead":"161652f7cafe5621c10bcab67519f573b0751a7c","_id":"@boostbank/stateful@0.1.17","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"dbteku","email":"dbteku@hotmail.com"},"dist":{"integrity":"sha512-3gZAtSr8y6SW6QptMzIKeQva0keWS1YNQkoCgzBXtvjlaVbvFnEDS6OTjxh8zGCRdjsj4Doai8RmDTHYZEiCGA==","shasum":"7114dbe6ebb9c935f7acc6981d359d90680fb51e","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.17.tgz","fileCount":3,"unpackedSize":7720,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa6UP8CRA9TVsSAnZWagAA6V4QAIc/b0T3++htmj6mvEFM\nm8QvutCPDXGnaXcHpqa05Eqv+TE80yRnZmJu0JfK31ERt1loGTBr2zkIWjpy\nTcxa9KchWuLRd/C0SU/JbprTheuCeTakYGYtyBoykjBnFhxPtotlGhhaHn0E\nvNwQnZZksYOdYmCsVhxhCdt5bB4oKV1Sk1BGUf4eAB9eMBOHWUB57dxTpmEE\nEn15WywfzlUEF22GqfUIrWqQBIX+wF2iN3uRfUEl6ByVrJaLEe+Ndz/rnLuw\nmMSuFsdeHziPDict0YgKA66zFbfQGuUpt2i6Dq3oXQSr78qDp8al5wH4L40h\nDwz/3RzOjp/7IkKCro4Ns//xITFA7fRmyCufNZM3KZyr7UsaQV40f0uVj0o2\nYyjahWoSh6bpIT7ujBYbRVl5oHOnmWg1f8dlAKzYHNXOYbPX0eOQF8SNS0Py\nZYywmpefW1AUtLT8ZYBllRsS0X4f7MiO1cxIXJuNsZdSpl6zpBsBxCD6RcFT\n5pJ2P+VvTHPBXTRVk7FICrtQYW5i1I/q91SFCEIuq6S29fLPufKSV7EZbccP\ntCc4iwVukpO+DgHlDZS4Rh/jioa5ShM8loowsH7g6LF9D6eHCkkQBa0AGuNd\nWNTHBcC8lZOZYUY2VZjOSnzC86STxVrT2SaM6TbznobgSHI+hzG5UxCZgKdz\n05N3\r\n=Afyp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAViEcqTW0E5NT9eJPcdtSkt8LFRsIxv3wIQFiT5ZX8jAiBwrdlfojMNxsIz9LQcvVynippYnrIalQHOe/zc/0qYwg=="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.17_1525236732173_0.16507320973213901"},"_hasShrinkwrap":false},"0.1.18":{"name":"@boostbank/stateful","version":"0.1.18","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"files":["lib/*"],"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"babel-cli":"6.26.0","babel-core":"6.26.0","babel-eslint":"8.2.2","babel-preset-es2015":"6.24.1","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","gitHead":"45631289d088cf2328892b185642901d0c1af1fa","_id":"@boostbank/stateful@0.1.18","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"dbteku","email":"dbteku@hotmail.com"},"dist":{"integrity":"sha512-S4L/OIBFxAAsvn/i9hw4+q6Iw9wQF3l4DKCdo0tULeqJKszfwJmpa+RzvUuv5Do9fKJMO/0L+fjTbq4yz7oofg==","shasum":"4fc5ffaf62f1417b2a3c27a95540b33a3bd4a993","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.18.tgz","fileCount":3,"unpackedSize":7720,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa6eE9CRA9TVsSAnZWagAASAwP/3vp1RHQYcEvc3PFOEry\nxWumvylMf3muoLnLCPMtKejLfCxyGjPVd0lLT6Rnjeh1pZUxN3Ju6D5CcPE1\ni36WRnv3R1FICsdfCEC/bWVNCdYRdscvx+y55E0Lbj3TgazO5UB2J0r4yC33\nZFV1I1TstLroJC4xc996PVvmowzPz59XvjKyKqXOAl1Im91IwpP5XhorUA1x\niy7kU10mo7+604icHerwctYq+ehOlhXOWxGlnqTpDCpQJNxSK1ckCldYmb6X\nMXpE6Y+aLxGArw0im8ez17pprBC78h3xN1j5gOLDZyumwqVtFswIXjJdL5Di\npy1KXxLbuBoETUktfDAQ9GNSPLXJbu0alT+KDDmCCkO0PuAD1eGQsQfM0sSt\nR3Okddf7RSjxsWxF77Ex3AH+BtJK2DDUgMSy+rmZVnU/eMsLZvbZM5+55dlw\nnX6/DHwZ279q9FU4/dNXLvV8Hnlwskqud/GuKBXEMk65XnVdizqUJmiE4ttq\nmJyYBFzeL9z6ZwdFnQWhOTP8FSGXaQcpcyLDyRr2FNb4LsVH9kpAK59UxjKD\neftEqmbVfB1NJsONnIu9IofiYDmjObq07ixDWM01G8iAYMfw2jPrZIuP2FU6\nvBxGX8Enk19wZX3TnxJtjm1FTW2rD/kgs+mqOQRcXeG35kvyLAIV/TJdr7EM\n/WGj\r\n=tGty\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChfzVE2cuss7dlNWZskhOxMkLd65IXlfKzTapub0+PVAIgSJ606iTyhiCPw01SVMkSpklnt5igOndOTV0tTZZFGiw="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.18_1525276988929_0.11226593981544197"},"_hasShrinkwrap":false},"0.1.19":{"name":"@boostbank/stateful","version":"0.1.19","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"files":["lib/*"],"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"babel-cli":"6.26.0","babel-core":"6.26.0","babel-eslint":"8.2.2","babel-preset-es2015":"6.24.1","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","gitHead":"45631289d088cf2328892b185642901d0c1af1fa","_id":"@boostbank/stateful@0.1.19","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"dbteku","email":"dbteku@hotmail.com"},"dist":{"integrity":"sha512-rkj8eyNkGuNIN7D6+d6CBafasOAfQ3oIElorIY409F8CMiwibuKqnt9P/sbUeeTS3s2e86EA1IF/jz3v/O9lCw==","shasum":"536ce10a65ba44707621c9068ad3643ab2eb1eec","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.19.tgz","fileCount":3,"unpackedSize":7720,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa6eG8CRA9TVsSAnZWagAA+B0P/i5rQoZ9OGNlGxdvuttp\nyFOjUXBTio+OdR+Odo3Wq8H/F68Z6oaigzXydy8Vs6YSGhj0Ohgc9IwtNnMM\nTEiu18FOGDL3skahxPM3z1x+e2SpvyPDuYeWOFhbz/ELy0HJvyTTKbmDr6lD\n+2z5oE1bS5LlBhH91SvCXGDXGYkf9/zxZ7TO55jdt3Bs+RSjLcGhVuIwOyv0\noHsVYXc+zlABoSKYpxXxteaOzBtF9WmoV2jfuNpbIyZTZ5x8CCnTPCw7OF5B\n7q5Ad4YgAQn53GH0Id9MeuYPkSh8jWsJJNIG19hpFqxPvTR93SnLQDzkMZNI\nQUtph+5AuzVZaZs7Vr6FqEPsBLRcT79T3HSXdzGkylqUVYe6IhQb6RhEcWo4\nUKWnoofoeqZJmzKfvNTCjNCmaVdVQe4pMrgw3SI7hKnhkb0LCahhRAC2AMOx\ntKakCWhgZHEAcgVDAI6xqtRhpA+zk61+NmQ8s+q7GtbNq98I/+pPVDbONWWc\nxk21H06FuU7QWuPaINbbrOMbyv5s3vtfulI7+miqiDcSBM+/wNKNCgBtc15k\n1gOeit9Y9va9ScJAX4HnCsZTOUrdEy+JrXJBTj52Jh9XYPy86dHHuuliPPWt\nWRl4gpysk7ZnzBsXI+xMFR9N5yCyjJ0XEchubGC8LKl4z5G+jXAOngSjwLl3\nMkLW\r\n=W7st\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGH2u5vZC/rxnlyKlKwWWNkduDHuC0lGfRFEcCQDtWPcAiB5+kEZcehGoAd/cuQGZpSfICjdlTZx3vJpzQOFhi2M0g=="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.19_1525277116059_0.5724620107929801"},"_hasShrinkwrap":false},"0.1.20":{"name":"@boostbank/stateful","version":"0.1.20","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"files":["lib/*"],"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"@babel/cli":"^7.0.0-beta.47","@babel/core":"^7.0.0-beta.47","@babel/preset-env":"^7.0.0-beta.47","@babel/preset-es2015":"^7.0.0-beta.47","babel-core":"^7.0.0-bridge.0","babel-jest":"^22.4.4","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","dependencies":{},"gitHead":"f3760bf48ca794edd36c27901c14d66fdfb74929","_id":"@boostbank/stateful@0.1.20","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"dbteku","email":"dbteku@hotmail.com"},"dist":{"integrity":"sha512-LM9K6Nv5FHHMb88jCE1irP2r/fa64jRBkmCqtc9F71e/G2KTBk8DKiMViIf2/mNAIl4udXo9BLHqxvdHV2QP8w==","shasum":"ed9a2cc5206c6945baed15a8950177e5f8a2dcbc","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.20.tgz","fileCount":5,"unpackedSize":13001,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa/5waCRA9TVsSAnZWagAAePgQAIsNcr0cwzEV4njXP5ef\netfzMbdZTivH+17vCX6IrAOWN6ncp4Uamvv9/6JYR7nIQ6I+VF09OK7mbiqt\nE/2bWnhZFuuoeeNmk850iCkNCqB4dyUW2bYXD3lNqfGIPnprirAqsNPKJWCs\nnlYLhgjh8/sGHMstAX840H18IOQhBM91hCWX2q3lRdVcsHDlxYF6E3dQpzR8\n1Df8OEBv07PBCHuou1W64SwcLK8QljzKOrb6hCmpUo1cs/Hf2Zu02ehOY8qv\nmeQYXWM5cUYjJ4d3MOx3cPRzDt3NVBIuJSBiGh3g8y63hj9iqGHcX4W65zWL\nnB3hbtSBG0FBGxNND2ZgkRndg9Tl0Jc2oIam3E/yTuVwkpLeiuIfLP+LRneZ\n6pwa/vN0Qu3TGVP0+g5wy8oTPsQp3OYceAHpWxdXBVvO3/PQ0nyfhPFDzVsq\nCcbn8dXUWCelAsYgLIiPkQNew9QKqM9wSM4w6ia6PWoxX7hn8THY1PAYLXiV\nrcVW+51s9DB5IovZDBt2q52EDvLLEIXTKjtyqsKYKQq1hDaODCv9sEq1T6Rp\nn7+yHsQNIS8rkzJNnhT/EgFMeco9W9kYQd7ilvKTB1pPJ3WsQN+JwoJrW74M\n8+oOx7Cr3MsrcZ+b22uHpaxcxMsSbKx7DB2ytaG1dEtHZshRno4+98CHtZAE\nHqWS\r\n=4q18\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG9xCeGue31+1jRm5DvB+kSdkrz/Mi1g/JPN1h7eYvPSAiEAtWZJi3KnCQlzfrDjzVMx0aVuQoaRT8mVlCsttbmMSrk="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.20_1526701082040_0.9244671226237318"},"_hasShrinkwrap":false},"0.1.21":{"name":"@boostbank/stateful","version":"0.1.21","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"files":["lib/*"],"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"@babel/cli":"^7.0.0-beta.47","@babel/core":"^7.0.0-beta.47","@babel/preset-env":"^7.0.0-beta.47","@babel/preset-es2015":"^7.0.0-beta.47","babel-core":"^7.0.0-bridge.0","babel-jest":"^22.4.4","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","dependencies":{},"gitHead":"276d5ef6034af2bf573f9c1690d868e5539b3f19","_id":"@boostbank/stateful@0.1.21","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"dbteku","email":"dbteku@hotmail.com"},"dist":{"integrity":"sha512-AKGysKVCZPysshAtKvaQUAim3bagQgsrXzYFKzH6nE8a83kYKvyIKSAn5t020+X76wWL0rbIPbvgGMahZTijTw==","shasum":"11d03a0cce5949c0d6e49c7910b1c398a1b8e555","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.21.tgz","fileCount":5,"unpackedSize":13229,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa/6bKCRA9TVsSAnZWagAAFOMP/icK7m9fo/wJEFUTxKVV\nU7uas/ktLXOPn8T3ELHcbiNcC0O7Tv6Qi5Kf7u0V0tcJxABYaHR9xfJkDC1K\nYL8Z53sAj+rJl26mGYNVrtzg0QNp1F1NXJCtwdZUuHh+FegZu81IBEdWlnfW\n6jkrYbPQ7XMXhCQh8iqzVFOOkPinVf8CfRbJ5NOynys1xtny90thuo0TXCRF\noRb9AVygfLWjoLgjzzu15Ly4RTF2JwEzyOgNhiYmCfSbZPaiFfAwhPQr6uIs\nsrjFerKCJqlRNU4W4Rix8aVESVU6UFHpuvNO3ex1pMzzBQtfeS2GKWcjqEuo\nzn+/WXjEIhKcq2Ye0QPq8vA9OaxOefxkjc2RNGemL4n9xQxvcM+vBGXJXrbX\nW4wA1NGMCxNg8X9K3dmUan1dcjdJxVcSBYyrXmbdrqCnfx43wBu8sMXcMT+i\ncWHv+wAh7MXSk4hbrEOGwD6Vw81OxaQYnLfLqxj1YV7bafKx0DjG0TzvwV1l\nfAtXV/RmzS5wolS31KQkOUDGL1Snnp1es2RpWpFiqqc093tUI7qHMFBztGHI\n8afRbXBUGbf5qixK3j6bzj/BP2sbQBIQSw9L9ykm2RuuIOtcsl6c02MOPlv8\n108kRBZDUey42dOaZ/U19s6+bPsolnVs+yct4evVUI14kc3TmowSyAF8V7RZ\n7Jp1\r\n=oEXJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAl44xS6Wf+w9kzMYS4nVq4OqimRAMLpu0LUtRS9RaXEAiBxAsg2IvwM5B8XlnF/TJqs1JZ7WE6Jd0TCHx0mrChq5g=="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.21_1526703817731_0.11491027280122212"},"_hasShrinkwrap":false},"0.1.22":{"name":"@boostbank/stateful","version":"0.1.22","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"files":["lib/*"],"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"@babel/cli":"^7.0.0-beta.47","@babel/core":"^7.0.0-beta.47","@babel/preset-env":"^7.0.0-beta.47","@babel/preset-es2015":"^7.0.0-beta.47","babel-core":"^7.0.0-bridge.0","babel-jest":"^22.4.4","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","dependencies":{},"gitHead":"90bb26b00f88a53960c233db229f1bdf2213422c","_id":"@boostbank/stateful@0.1.22","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"dbteku","email":"dbteku@hotmail.com"},"dist":{"integrity":"sha512-t3Vu198ZQKzubGD9uwrMsY2ey6MOPt2vM9ltilgXemvzcdj3uSmBrRgExpF4se25+dulZ1Emj8GM5wT/RWAjSw==","shasum":"fa15e55733f8bbe915bb49dbf7c812dc214ae794","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.22.tgz","fileCount":5,"unpackedSize":13239,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa/6x6CRA9TVsSAnZWagAA6fYP/3tRUc/QCaVCS18OLdGh\nMdBf+qC/dEHvQwAlQKcOmUOW23C+RxLLUvTgqviekQw6kN+nOJG0y6aDMxe0\nl4XINNM4C7cHj4YjvvbdKjgdnt80qxfrQZ+V6L434GW+Nz7Nrax6xwc0JDHL\ng8pY3SMXvmqmbc+ssX/N1JCSgsdoBDNtgPTQ3pXNpMq/QLDUXpRMF9+Zr9ly\nR0iIezcOyy7YQp8cU8e6dsWmQNzb9GvjzNiUnXu//yAyCA4rcAxIhGF2LbIA\nlfezGOdTy+zoJC8eTAKzCqJ3IKh+ApZyAG0o7MU7mRwQSdX+iiYKPNYiXBaC\ndWjPJ/dpP4UeFlFoyiAmipAfqTuX4wYsSqQZyYs95ZB/mZT+58YD+E+m/Ube\noHmAdwHNq6BkrnEgn4zyMadks0SdV0VZiMjtLL6za3OIJocZOh/N8DSLUd5l\n7Zlf+pKkwplPk9lqMb83C7WfxrgKejgUMDL0+auW0ZY10y45xR40si2FAHTD\n9LCVihCfeyR9boO++uEVAIPeT7D3bCCaylun6LbCWHZYToyS0+7SMeYt+dxV\nIY8poqKDkj6XmHX42oFW1z6M6I8xgZw44GWk2YInHttJBT8ZE87Jr/gteBEZ\nosW4xsemB4149o7n+YL7W2ppkivc6dImIO9Jsr/vVRM7SYh89RnUuM0PPgya\nzYDe\r\n=z/O4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEJWc2G9cIMYOo4txmH6ECcD8/ewHsw/RhG5T3zGmD48AiEAs1TWvx9o8SQRs7WAdSb9n/VFoGiuI/nrTXhb24msURg="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.22_1526705273526_0.6334694209884293"},"_hasShrinkwrap":false},"0.1.23":{"name":"@boostbank/stateful","version":"0.1.23","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"files":["lib/*"],"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"@babel/cli":"^7.0.0-beta.47","@babel/core":"^7.0.0-beta.47","@babel/preset-env":"^7.0.0-beta.47","@babel/preset-es2015":"^7.0.0-beta.47","babel-core":"^7.0.0-bridge.0","babel-jest":"^22.4.4","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","dependencies":{},"gitHead":"3c5ae8c6cf1e8f7c69e551c964523939661b38b4","_id":"@boostbank/stateful@0.1.23","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"dbteku","email":"dbteku@hotmail.com"},"dist":{"integrity":"sha512-X1rwHxkVwKKqHLrgTYfK8CiDOz/c4/v+k+Qafnvl0IbzKOHUKIHsCaVBtjALyokP3suiu5ZKo04SIocE+OAdBQ==","shasum":"a3d4b80faeeea486790addad305e4b037ddbfdc0","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.23.tgz","fileCount":5,"unpackedSize":13394,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa/7jeCRA9TVsSAnZWagAAzh4QAIyw5j6GGZnLcBVq8/oy\nViyOmEDILGHtPkA0PUem5G8f7Sq4BWGritaF6Ha5cnON+TeTo1Xk+55vZVPY\nCdw6g91jESsTL/VEgvZ9Zmo6BFFjLHfHYPhFbQtBQeV0/otfndgRFt4XqdjU\nXQHKmek4iok69zuDGx6iErBLN/Zaq8/zPi5HJ9m0MPzRRiD3n3rw3ygmUVPG\nJRyN8i1dt0Q52lFwEAqUZCVUNkXyXoe3lkc5EJIxfTC9JJIeZ+odoRYp9TK6\nfktsX+eV4vhqC9xyWJeDeF3ZUr3ed6+8r0uhdmqZMJF8JLwCfANS+f+8liFl\nAxWp0H/6EHAn+DaJRxa2DRdJ0tU4rQUmus+kGXGB8133z4CdzEj52P4VLcOA\n3WB0asv2GAtcI28DbJjgA0DJ2etW1SlJngRi4GdpsqGy0znvAURQY6Q/Q6Lj\nZvZkeJopvm/PClLFSvfRvAmcGrEiOUVIYyNyoGuU8g8WiYDz622NDJWvczJN\nuP0rSVTC6kBDbuSxfinSq7GuRugCZyDV7ZdNYmuyrB1PdfERpS7cKrYfCQJi\nOCi+ysfzifLd1yTVK6huZdWjEElvKlmam7VomxMm4gO6/yRvMsivzW+nAeaI\nNBeq3pKVjUbn3a5/FqsB0HL/vWEM/pnMxnslXQKx4n/rmTBlxz14CWFVYZLT\nmpp5\r\n=Qi3y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxMKiN0on5FC9b/h37nqYtWx4x4xYAGMGyaXN4xJNmaQIhAJQC5o2ewI///Sm7oTA6JFwksa5tXPDpelV5fmMQJlxZ"}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.23_1526708445582_0.23049638408720208"},"_hasShrinkwrap":false},"0.1.24":{"name":"@boostbank/stateful","version":"0.1.24","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"@babel/cli":"^7.0.0-beta.47","@babel/core":"^7.0.0-beta.47","@babel/preset-env":"^7.0.0-beta.47","@babel/preset-es2015":"^7.0.0-beta.47","babel-core":"^7.0.0-bridge.0","babel-jest":"^22.4.4","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","dependencies":{},"gitHead":"718907c57c8773829626923c7e8e99590cfc5123","_id":"@boostbank/stateful@0.1.24","_npmVersion":"6.2.0","_nodeVersion":"10.9.0","_npmUser":{"name":"drboyce","email":"drboyce21@hotmail.com"},"dist":{"integrity":"sha512-SPhGh/xiYv3nb4IT+GiAdvn3o+/aCfpv3xg3EdpX1r6ivdiCFsfUksXc8hQzJFF8fno6LYdis3OkQwpM1xP2ug==","shasum":"1ad3166c701c4d6fc3dcf508e5afc05ceb56c17e","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.24.tgz","fileCount":5,"unpackedSize":13544,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJciZ6lCRA9TVsSAnZWagAA6XMP/AsXuDtpL5tS5tQmEBD0\npymruUA2fKw0RTeBjyOCLIXLoPZZ19qQ/BxNCDQOK4vlxcb5HIKry58ul1pp\nh7GjwhYrsSob7temy8CWMDVCAZZsNIN2JhkPBSdQohqrkydF2EtBmWVh64B4\nRV+yhmSDOWD7IOzyLLULQfJt+fE8F8QBynhbIxaTETAsRXv9Os8g7VdsF22k\nR3pxbn6pZdHxW2K4txB9zPQa5jkR0ni7myf2B15d8VVTnkYranCjwP5E9Y72\nt9/o7y6h/8GDEhAv5xIj9fiUUT3hjM9jQ64SViZNlbnN0fJYWo3HzivDYdEw\nfmT9TY/YoX5a7DHkpYy1+zf5gUHQ9hYbF+XqwMnmhfM5v65q51vlegNDLJwp\nra/l9g1enU758bU8U8L62yEUoiwBkNwsmMTqP4yODz8vEb/yGa2VHbEKf9GU\nFqVSyBlN0U+md/K0RvDDavASrsBldlG2oPpSGs6LCDZt5fgOtijqy7DVdmHA\nkE9WTh6GleuTyooR3XVzS5DYmfj+B+ES79xnwgNau/gQsG51mnbp7Zu4mcHl\nA53KgVLHFfqno3G/D/abRYRE/u0TbB1IS4kV8lMFOkGqJ8/EGdsYLoprIsJH\nRt+PMaucBEDKl6MwLLqrn06On44BDbpM7xPzFN/+LZlvWRGkRnfiMYoDED9D\nOzJb\r\n=t8do\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHW7x/qKb9wRNumUc0N4RV3Mb387m43E8XbEnbowH/REAiAUjHM7SRIK5+T2Cm1h7XrXGUEox0x0Ht4iJGFMfV+6MQ=="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.24_1552522917294_0.890107337168021"},"_hasShrinkwrap":false},"0.1.25":{"name":"@boostbank/stateful","version":"0.1.25","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"@babel/cli":"^7.0.0-beta.47","@babel/core":"^7.0.0-beta.47","@babel/preset-env":"^7.0.0-beta.47","@babel/preset-es2015":"^7.0.0-beta.47","babel-core":"^7.0.0-bridge.0","babel-jest":"^22.4.4","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","dependencies":{},"gitHead":"e718211b8d6398212b385bf42ce46f8e882f5954","_id":"@boostbank/stateful@0.1.25","_npmVersion":"6.2.0","_nodeVersion":"10.9.0","_npmUser":{"name":"drboyce","email":"drboyce21@hotmail.com"},"dist":{"integrity":"sha512-WY5fmPPnjbWMKnam0V1ZwLfk0TGlDmJiicHplEKPgS478DEPKPuAe7cE4EOeQ4hSlA5phMUmRA9li3jgmh3EPg==","shasum":"4c9bdc306391d80cb51c7fcba836ef3b155f8a22","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.25.tgz","fileCount":6,"unpackedSize":13798,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwK08CRA9TVsSAnZWagAAaWcP/3ekMLA3mx/NT2R2HjpF\nqhJ092buVOV8a7jsXB7HCPeHY20TackZqp2LtGmTJDsvcPiHqncFLj3HsfHo\noMmLNKlcOVn6xefadQbCR3lCQNT/kBnoEZ+22AYu1uWOPUNoGtAeo1V5L6nr\nxw14V9vKgqU89QU40Np/hjpAo6qoj8k+q2gjr8BMGcMhe4OIPTJKbgsf/199\nGilmx4nUzar6Ej/ltU2JDYqKABvUuvPW5Tccck35rnmJ7iLNZWeTCE3B5njt\n52R0WIvUCFM3InYYC0CQAaqNoo/DF+iP4lR7d5pevK4uSMPsPrKQgfkSIaGC\nslUwE36sJO/dtRVcYaR3ANzgshSSlAGIbab1vBgLS33ngvclepUWYD0q0DNc\nqNIjy3h770HhvOpPdjMZ8rwdk4IKLEmJ3ILU/ScA9rjStCdS1WUM2lwpzFDe\n3X4pnyIO1KaxHsTVAew1c/bJRlJPYA2GnEoLXD4K4rvtGgwCrm7TllKRRyzg\nc9emqjj8jj8Ehaq1y5nWTm6I+QH5Xq9EUgEaEZGfvypQr5XjtFcHNfBroEcZ\nhixJi2DmxCyWcVX3E28Rd965uheIO9g9eT7FbkS1XuZjTNwuXI8/PLFk/Zvk\nwZfSwKOoumGUi1kxAAWIX6EedPd9tkjJ+wV4aEFkhibuLu7++TvXFnSC/6jG\nILcK\r\n=4Kt7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDL69D0AmSVJUPqeDxMIsFUqPM6vP7/qja779y3RAc9GAiEA5d2R+Hh3/+qQEbcaMZmluQsiDIXTibnGtiSy9/Dvw8I="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.25_1556131131537_0.04688158721825619"},"_hasShrinkwrap":false},"0.1.26":{"name":"@boostbank/stateful","version":"0.1.26","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"@babel/cli":"^7.0.0-beta.47","@babel/core":"^7.0.0-beta.47","@babel/preset-env":"^7.0.0-beta.47","@babel/preset-es2015":"^7.0.0-beta.47","babel-core":"^7.0.0-bridge.0","babel-jest":"^22.4.4","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","dependencies":{},"gitHead":"b5e3425c80b141092d74ca4f7826d803fadc0336","_id":"@boostbank/stateful@0.1.26","_npmVersion":"6.2.0","_nodeVersion":"10.9.0","_npmUser":{"name":"drboyce","email":"drboyce21@hotmail.com"},"dist":{"integrity":"sha512-j1GWvzT8vntQ5sVS7KUxM5YM5amm4ZD4QRv9e4l07XbGtZvIC5M/onUeiEK/mMUbA2APJT1ySjY5pWSjJKcQrQ==","shasum":"8f82ca605387d5ddcb22c6b8971370f9d7ac3337","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.26.tgz","fileCount":6,"unpackedSize":13790,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwK+wCRA9TVsSAnZWagAA5h0P/iue4EaCea5iFD+lkKU/\nZB8bmWZXLA38HlMpxoBaWEFKoefkEaQ4kvIbmVfw4VNtcLdbRa9x7E2svZQF\niAwN6lQiO7vqKg3r0x9FkxrGsMbeBWc3b4zSynpi0vfKVeOvSOgbfkvwxolk\nHuWEQcVdWtJQDJggI3MkGziLigJmWhE8CM2u8ru8QBXesdiLxO0+bRYMqVE2\n9WpHLtHlmqad7Au3HWRySca3JSnDOhwoA6Ck7FqRHwqje4Ne/6aFhOkmDeVS\nUR+wNNtVUYLTQR6AvOJRgJoX0QV7RSDm1baVWyKlaupNetDIVCwHje4JJ6Gy\nhou3Vz2a65FVByclnBLlxVbeQ1LAyXa3W0B9IB+FNUZebTKm4/JBqB1/4htp\n89J5H09vGvsuRJvsPX1iUJh3lLHiavaCCbItEwzU8pdstlQedkk6Z7IwlmF1\nwhbM66tXw+crzvNs777tXS6ppudKbAa98oP58zWmcG9il/zRiCn5k7vwIMrU\nzVBh2i51rxjTF3d8wLXMBAyQCFLBk4jxU3VQRHG4zGqWsSLm1xVFS/IydYyW\nkEe3nb7fB5btQBdk8/GM7U9U0Yzh2bYQvsV3HhuL1X+hDd7iNVU1h68ORcQu\nHwUg0cutz9rc6QjfjsTJU4ptc4Bx6JNX+DsmKoBS/jOr45xYG6IDyWCqG0eN\nIeck\r\n=ZbHq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF4Sl2EOK9vI3MyAVQdFV/GhavML/Bz12qTcphLWgPXxAiA433q0tcOSVn36xMV/vm15JWe5vyE4uHSLxfLiVF/NWA=="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.26_1556131759963_0.2778642311968802"},"_hasShrinkwrap":false},"0.1.27":{"name":"@boostbank/stateful","version":"0.1.27","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"@babel/cli":"^7.0.0-beta.47","@babel/core":"^7.0.0-beta.47","@babel/preset-env":"^7.0.0-beta.47","@babel/preset-es2015":"^7.0.0-beta.47","babel-core":"^7.0.0-bridge.0","babel-jest":"^22.4.4","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","dependencies":{},"gitHead":"e809b739f2d22bf9c48483cda6d0f289f951fd19","_id":"@boostbank/stateful@0.1.27","_npmVersion":"6.2.0","_nodeVersion":"10.9.0","_npmUser":{"name":"drboyce","email":"drboyce21@hotmail.com"},"dist":{"integrity":"sha512-qWo94SFaxtEMEe/DXOmzH9n53JufWDd5dRNQzVr+CPjuQgqe7MXyE4+kciGCFPqFW8jP91t9mpYTlA4WxEROgQ==","shasum":"9a33ae47a656695a3ca6620ec0b258a04302bae4","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.27.tgz","fileCount":6,"unpackedSize":13407,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwLpjCRA9TVsSAnZWagAA8w8P/01S7hrqj/KowSFWPsZD\nIJo8InW36A7vMmGWv/AvrexfBn63cbG3I6KxDG0/vdk9dYcSwUtAawezV5Li\nTLIfIB/0r9XhjGQQdUIFEROFHUtEc+nz5z8ElkReIm5mzRxrtYsOBvQSiE/E\nLPTS18obryzf4GK5lQJcS/mCnPGCWj5q6hcgoRPPFqYjaDZQlLSTxJLzxHe/\nIUHReSO2I0T/RDwVRwwoeWrpmdANp3F5z/crhTyANYPWF69JM3ms42xLMgIN\nC7HR8CQ9WYr2TBMdv2GotPEMb5PSTMC4ZdEJqyQZmq4QyaXYJbaYAQzGNfMa\nd/nCt/AE511X1de6uKgAWTYPXT9tVt12puuvaHGYHnNbc6z5JtHJNaFqZ6d3\nv23J85oeYfGYGXGhioze6ISXTwaYVdTcGTnUQtXdhpUT7F5ejJlRuPaljnPl\nSRps3AhqMv/GvGVQoxtajyCRpuI2KhPTFlCBw6e+8MXrdn6XbBmrH+dJyf1R\nb+SzB+OFya4da2x+Wn7E4Xy2a7qRkZjY6wCsRTOFbp0cWv3Egs1Hr76QJDnU\nuovSuyEMbLCNMsmAMa+qRcZMiNdoxAEBjUOffxL+2UpAlWf8JzTWvjNqugMl\nGmC4u3TPhiCMJYCQY2xG2PCOM5OFRQQfIrtfj3JxtVxWnXh+hhCaqHtvdK5y\nyvlI\r\n=WxPE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCsE1bhPkU/gwgTf22u9eaDXhuyIJbQ+CD1nQ0EV2F13gIhAPhqS58oyvGvOWHF5p9wyHMBciHhuNDK/MmYpnIi5uhD"}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.27_1556134498577_0.3718367666204496"},"_hasShrinkwrap":false},"0.1.28":{"name":"@boostbank/stateful","version":"0.1.28","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"@babel/cli":"^7.0.0-beta.47","@babel/core":"^7.0.0-beta.47","@babel/preset-env":"^7.0.0-beta.47","@babel/preset-es2015":"^7.0.0-beta.47","babel-core":"^7.0.0-bridge.0","babel-jest":"^22.4.4","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","dependencies":{},"gitHead":"f41edef5d98b9bc43cf2bae08f9b8dd4280f3119","_id":"@boostbank/stateful@0.1.28","_npmVersion":"6.2.0","_nodeVersion":"10.9.0","_npmUser":{"name":"drboyce","email":"drboyce21@hotmail.com"},"dist":{"integrity":"sha512-90Wic5WUtR9//vSLIp6EnkFu5hw+eWjq5lAvliEud8M/BKmH/qscDbRqTEmaxtcFLvDVJsdLjQ4HxtonGQGZFQ==","shasum":"23125cbb27ea08ff3cf639669159125e0b90c6ac","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.28.tgz","fileCount":6,"unpackedSize":13499,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwL6VCRA9TVsSAnZWagAAYOkP/1FjDfs5QRHwEZr5Uyx2\nJ9EwLSxvA2vk10l8aPc6fVf6elwZIWfpK92YM/UMNl9XpO3qCGsSOZ6vE6NL\nSQLDVmonpucX7nKD1tg0XGbLbBXsTWQZk+eKWtDcqB2UqgCIM/+xvXwjjz37\nUsYpep6zIVl2SZgtDEQ6Z4u5/iG2IauthL1jFxl0mf1r4IB1zbvA4jFLLPjK\nblx5JX4w74EgHUiOAQPc2Q4f660BfdKSIncmxkakUSH9z1cPX7P/tW1PKn5o\nkIO3zlyEjbd1jLimAPHuyHOF/JDPF1ewLPEgQaiIRmoHEfSyjXa+rofSm3MY\n1SxBAUG+SRp0R0DltfIIn5jdLqTC/B49zrfO2Ow/hvre2T0xgxtae5JjIQpU\n6xbPMr3SSTJzon3ixHnl0OfkURMnJco/5B29BiUGYLz3YwcWDFmJfj7jznwz\n+WBAu+8a56xEtnyshZTYJOrQeI17hesFkorZTWw3xWdFl9jsVscujbFg0geM\n/XZlTsIb+NFIUfA+hcx9QBfDbFpIkMFbcDNxkAcKIBv4RZXZPceKuCV1ZFYk\n+xc8BkDDhFq3IfYXgJ1bGJTJqwvc1G+QAP+4BjVHctSe+BrLHKiaa+00BkKg\nOvQpihbzGWVxz7rVfvlimuyY0nR7SQGFI5JibHz+pWJ2QnbTx6lLOvIeMbk9\n2hgI\r\n=7ubZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFo9d7MiT0aI/rIfnURjdVdGkiU4cRJOpgFOhknz/mS9AiEAxRpBON5jqpUM0ueQrvM4En0/FCSpr7a6N3Tb8MojF2g="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.28_1556135573258_0.8825056923678363"},"_hasShrinkwrap":false},"0.1.29":{"name":"@boostbank/stateful","version":"0.1.29","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"@babel/cli":"^7.0.0-beta.47","@babel/core":"^7.0.0-beta.47","@babel/preset-env":"^7.0.0-beta.47","@babel/preset-es2015":"^7.0.0-beta.47","babel-core":"^7.0.0-bridge.0","babel-jest":"^22.4.4","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","dependencies":{},"gitHead":"3178f22fa7fc85d588236939d9074bc6f5c317a2","_id":"@boostbank/stateful@0.1.29","_npmVersion":"6.2.0","_nodeVersion":"10.9.0","_npmUser":{"name":"drboyce","email":"drboyce21@hotmail.com"},"dist":{"integrity":"sha512-4APjpvLgTUZqqV5WEuudk8RhRQEQOdlh02fU/cY1p1z8SmVLEkEBozr8eWFORHPYj0WVMcs6WYaVA7wIpCNkyg==","shasum":"9d426d629c34bc892b6e615c9fba958a2f88d5a3","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.29.tgz","fileCount":6,"unpackedSize":13498,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwMK6CRA9TVsSAnZWagAAY/YP/iMzB3Ol20KSgYJV1hYe\nj5YBpkFcZ2opTzImKLD+OfvWwZLqpeh26q8S+juPaaNC6Kv6YQ6U9Nrmr+6l\nyl5jS9yBU3kzcCeQBFSZf7MZachFHLT7QK98ug2m/XsAKMkaxAQqJ18clhyN\nJd0k8y2xGr72iEiXPQgz89BdMyUfkCrmWiPI/UZBug5W2DkfqFYQS/jjyJDg\nOVNkmGJ4FTOZdppbA5slJvzBUu7n+P0kO1d/O04S2/V9ZyZIItlhQFswqlDu\n5Is0hxKUtED2UQVkjWwq00bxztjxrJFdFPZ4Ljd4usiwgR8ph3RsD5hT4WW7\nl/grPHKnksU8e03bd8+sCNP4Hrw8RhuOT5MciRvFboSAB6oR3zVF4DJVe7Qv\nJKWVKpVEhWUNebjceKqNjPyZc2QlgIEfyCElr0RmpCUnm9V5Yl/5YtwYPWDW\nrTFry570GnL4eaweE+OdZhTdfxWtc1MmQCn9wp9rvTMqjgAfxYP85qrqVXqj\noIMPo46kvJvMoBp20+ViFmLv31B1aqf1PJmeeBtwWufJv20nrOb32bhfOJIh\nOBaen5ydTRY5aJPoFfd06MDoq5ay7HqNxHRT6ZrTGOOlwm/L60x0RW0RHwNw\nC53XAaQG/5NsFeHWgsbsUGqbHSghsFvWocXItAO279oRKhWNb+4VQt+LZxEV\nXEF1\r\n=5IwH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFGPwD+27qWEa0AH+4WmwFlsAmNqsV8QIedlkcb0ALDLAiEA0jjRlZfwEcIicxVannB18FUPM0KpP+sU4wTEVmeNlHI="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.29_1556136633895_0.24964064082988968"},"_hasShrinkwrap":false},"0.1.30":{"name":"@boostbank/stateful","version":"0.1.30","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"@babel/cli":"^7.0.0-beta.47","@babel/core":"^7.0.0-beta.47","@babel/preset-env":"^7.0.0-beta.47","@babel/preset-es2015":"^7.0.0-beta.47","babel-core":"^7.0.0-bridge.0","babel-jest":"^22.4.4","cross-env":"^5.1.4","gulp":"^3.9.1","jest":"^22.4.3","jsdoc":"^3.5.5"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","dependencies":{},"gitHead":"1063b8757aaee74dd0bd95d4f92c293b53f61e3f","_id":"@boostbank/stateful@0.1.30","_npmVersion":"6.2.0","_nodeVersion":"10.9.0","_npmUser":{"name":"drboyce","email":"drboyce21@hotmail.com"},"dist":{"integrity":"sha512-dhzMAtZAroYMkoXESyJXKMaKHdNWXZFXB9tsMjtXi+I6XGnF4WRpXj0kolqhC0KEOXqIj86avUXY1XxJTEVzjg==","shasum":"d117b23ba9dd0a1b86a1b23cb9cfd5d93391957e","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-0.1.30.tgz","fileCount":6,"unpackedSize":13660,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7UgxCRA9TVsSAnZWagAAlXYP/jpjyVqwAJaaR19xAajr\ntP00PUoUKjwxuYTVI7Dawp9VLvjz/IBvpUxcHCWc6X8EkDfmq3jJwGUDFiSU\n/bHaKxnb6QwJrB4TVtwUYRGvOUcnsr6SVKQlIAhnVhsdnsYzlxN4neooL3sX\n38COt9le12pY2lPmLxOiFU9QFKPKJgoh2PTfdjaLQetpJXxVeHKnkd15deYh\nt8p/YCBn3KbmPsWS/8Z1LGV4aDOyDJX08PRvc83tZnBTmj1I3Mb1K7KFv6hO\nJX+ASdGJMl2Wt2TJwY7WzuAIy3+Dfb9Z5pSSyjJgr4Rn3A9lNcoJ4GDU/law\noAuh2Oh2aZIn9DS9N4fdqQQ8vFcPePlZj9mKrv42nL1tubRADlWU9lHYgAuD\n5ep4afnNoFedg11r8PIXI2I9TWRclKCPwVIECPAR3J20y33KI/QHcC6Ozgt3\n+UIT9dKxt7OqOU80NSSQ8JJCwmDRoDMqK1sxkvRKw9J8W4f0yZYnkHJlSPEV\nhywRd78cnfgN0pHR0H+SCnuGFlBhWh28K1x9bTnEa9k7tksS/fhR8fYps1C5\nJjk8Z579YJeJrI14p2gAQIb4kkB9JRKnF7d+61vorRiDraUxo7cP7GvHK0fL\n9VTfu4Cyp6z2bby4Bdr1qvd25Fm9oMUFGoElYXMhwl8zcSH/kzVG7Nn84Q9/\nPtfc\r\n=h4YT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID5kSL/2KdOFBmjbmItPQkOXtkDUVfMaEvHMwGQfqfKtAiBognh/4AWv7olGiD6FriTGLWIZgujm9GxnQn8gSDa/Iw=="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_0.1.30_1559054384599_0.22652983002538618"},"_hasShrinkwrap":false},"2.0.0-beta.0":{"name":"@boostbank/stateful","version":"2.0.0-beta.0","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib"},"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"cross-env":"^5.2.0","jest":"^25.0.0","jsdoc":"^3.6.3","uuid":"^3.3.3","@babel/cli":"^7.5.5","@babel/core":"^7.5.5","@babel/plugin-proposal-decorators":"^7.4.4","@babel/plugin-proposal-object-rest-spread":"^7.5.5","@babel/plugin-transform-react-display-name":"^7.2.0","@babel/plugin-transform-react-jsx":"^7.3.0","@babel/plugin-transform-runtime":"^7.5.5","@babel/preset-env":"^7.5.5","babel-jest":"^24.9.0"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","readme":"## Stateful is a global store to keep state globally.\r\n\r\n## Installation\r\n\r\n```sh\r\nnpm install @boostbank/stateful --save\r\n```\r\n\r\n## React Examples\r\n\r\n[React Example](https://github.com/boostbank/react-stateful-example)\r\n\r\n## Creating a store.\r\n\r\n```javascript\r\nconst {createStore} = require('@boostbank/stateful');\r\n\r\n// Initial state is something that can be passed in.\r\n// You can create a store with a max depth of rollback period.\r\n// This means you can create a max of how many states are retained to be rolled back.\r\n// This will allow you to keep memory more clear.\r\n// The default maxDepth is -1 (unlimited).\r\n// KEEP IN MIND: That createStore can only be called once.\r\nconst withDefinedDepth = createStore({someStoreData: \"Some initial store data\"}, 10); // Depth of 10.\r\nconst unlimitedDepth = createStore({someStoreData: \"Some initial store data\"}, -1); // unlimited depth\r\nconst default = createStore(); // Empty store object {} and zero depth.\r\n```\r\n\r\n## Modifying State\r\n\r\n> You may only modify state by the modify method.\r\n\r\n```javascript\r\nconst { modify } = require(\"@boostbank/stateful\");\r\n// Calling modify on the Stateful store will ask for a lambda.\r\n// The lambda will pass a copy of the current state (so you don't have to keep track of immutability)\r\n// You modify the state and return it.\r\nmodify(state => {\r\n  state.modifyObject = {\r\n    message: \"Added an object with with some data\"\r\n  };\r\n  return state;\r\n});\r\n```\r\n\r\n## Subscribing to state\r\n\r\n```javascript\r\nconst { subscribe } = require(\"@boostbank/stateful\");\r\n\r\n// Subscribe is a listener handler for when the store gets changed.\r\n// It will pass the current state in stateful. Do not modify it here.\r\nsubscribe(state => {\r\n  console.log(state);\r\n});\r\n```\r\n\r\n## Rolling back state\r\n\r\n> Rolling back the state will do exactly what you think it will.\r\n\r\n> It will take the current state and push it off the stack and rollback to the previous.\r\n\r\n> You can rollback until you reach the first state.\r\n\r\n```javascript\r\nconst { rollback } = require(\"@boostbank/stateful\");\r\nrollback();\r\n```\r\n","readmeFilename":"readme.md","gitHead":"19d6ee3f5cb104c12b036c3a6d3dcb3f3e1638db","_id":"@boostbank/stateful@2.0.0-beta.0","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-yaOr0QXGD3Lx19hwtAUNu9ZsOIXKelJoSgYPl9z3CsogYi06BorPcsJqAVWmfu36l0pzVsRufagIirvV5OKX0w==","shasum":"efcede1982a8829d15ea68403443faecf50c5b74","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-2.0.0-beta.0.tgz","fileCount":13,"unpackedSize":19661,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdaiiDCRA9TVsSAnZWagAAOdwP/jla+/wjf5yPIeqWBmNs\nm5soLzN4itC85TtL5w/gzA0Vjf1DZuiPoY6LDavR15YHb81ymGxJQza/35YT\n159AoJf8Lf5IAyCArvG0HcZcFpAnheFeTVrFf/TBLybvxtkUnpV5QUih8JhC\n7M8dpCrLPlEXqcTsrTbBHzwos+/sxf5XzXVTclYFB1r1mHfSdmCdtCgaefFU\nn+d871K8O3kPkEqXOczQJoG6acscrYsC88OIZD026KqHvWKFL/mhY7djtHqX\njGIjFoMLWNFyPcZlta84+S2t9jw4xAOKCtxV0o4ZR49fWChRX+iTgrKljDrL\nHP5hKjdqv3pWSR9+CxUVp0Hs8vubLxVcR6+UPewrr35XMW1TXnQm4Icxw6G2\nFD75nNn2oobThGZmwrKAiqs37N2lXu6yfoF6qUNoUnn64xnRW8Titr0WK+hE\nWuqcuVASikUFg3KMseQRg/naN5N6tgxO/+n0gMa1uciBNvJZ4StIjGIIwaZw\n+DPla2DLgNpslOrCO4hdQD1RDc++t3t2EUk0cPdc2Yoiw/X4zYvJh9Eh6hvi\nzrqiTrtLdAMp9cskdUIGcrE4nM6HeOSBmZ78VW+x8XR4i2BZC9QxkJtalFuX\nnik9JOrqHPE5SolHVtfrPMmzzXBdFe17WYEXIjft/ERZAz2AK1e5IXmcjnRU\nHVa7\r\n=58az\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCToBKi9mDfkZQVbaP7xUQxENL4AmnG1NTIGpsYNbVkZgIgdufpvjV502KXZLxzaDP8aZOQfBVw3QUPP5aMTc3JBjs="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"_npmUser":{"name":"drboyce","email":"drboyce21@hotmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_2.0.0-beta.0_1567238274959_0.196632898520531"},"_hasShrinkwrap":false},"2.0.0-beta.1":{"name":"@boostbank/stateful","version":"2.0.0-beta.1","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib"},"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"cross-env":"^5.2.0","jest":"^25.0.0","jsdoc":"^3.6.3","uuid":"^3.3.3","@babel/cli":"^7.5.5","@babel/core":"^7.5.5","@babel/plugin-proposal-decorators":"^7.4.4","@babel/plugin-proposal-object-rest-spread":"^7.5.5","@babel/plugin-transform-react-display-name":"^7.2.0","@babel/plugin-transform-react-jsx":"^7.3.0","@babel/plugin-transform-runtime":"^7.5.5","@babel/preset-env":"^7.5.5","babel-jest":"^24.9.0"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","readme":"## Stateful is a global store to keep state globally.\r\n\r\n## Installation\r\n\r\n```sh\r\nnpm install @boostbank/stateful --save\r\n```\r\n\r\n## React Examples\r\n\r\n[React Example](https://github.com/boostbank/react-stateful-example)\r\n\r\n## Creating a store.\r\n\r\n```javascript\r\nconst {createStore} = require('@boostbank/stateful');\r\n\r\n// Initial state is something that can be passed in.\r\n// You can create a store with a max depth of rollback period.\r\n// This means you can create a max of how many states are retained to be rolled back.\r\n// This will allow you to keep memory more clear.\r\n// The default maxDepth is -1 (unlimited).\r\n// KEEP IN MIND: That createStore can only be called once.\r\nconst withDefinedDepth = createStore({someStoreData: \"Some initial store data\"}, 10); // Depth of 10.\r\nconst unlimitedDepth = createStore({someStoreData: \"Some initial store data\"}, -1); // unlimited depth\r\nconst default = createStore(); // Empty store object {} and zero depth.\r\n```\r\n\r\n## Modifying State\r\n\r\n> You may only modify state by the modify method.\r\n\r\n```javascript\r\nconst { modify } = require(\"@boostbank/stateful\");\r\n// Calling modify on the Stateful store will ask for a lambda.\r\n// The lambda will pass a copy of the current state (so you don't have to keep track of immutability)\r\n// You modify the state and return it.\r\nmodify(state => {\r\n  state.modifyObject = {\r\n    message: \"Added an object with with some data\"\r\n  };\r\n  return state;\r\n});\r\n```\r\n\r\n## Subscribing to state\r\n\r\n```javascript\r\nconst { subscribe } = require(\"@boostbank/stateful\");\r\n\r\n// Subscribe is a listener handler for when the store gets changed.\r\n// It will pass the current state in stateful. Do not modify it here.\r\nsubscribe(state => {\r\n  console.log(state);\r\n});\r\n```\r\n\r\n## Rolling back state\r\n\r\n> Rolling back the state will do exactly what you think it will.\r\n\r\n> It will take the current state and push it off the stack and rollback to the previous.\r\n\r\n> You can rollback until you reach the first state.\r\n\r\n```javascript\r\nconst { rollback } = require(\"@boostbank/stateful\");\r\nrollback();\r\n```\r\n","readmeFilename":"readme.md","gitHead":"295085c40e374f8d3dbd44b71f2d59c9b37a97aa","_id":"@boostbank/stateful@2.0.0-beta.1","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-qD60ouous5TDiQrO+clqk9SVHxefOZbSvHaX8nYgqy8iW1QHCWr5mdE25Y3TZqF92fvdG3yvQ0fZXUX1UFDJuw==","shasum":"6ca96810fac62f7de83a114fda96ac432b4982ab","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-2.0.0-beta.1.tgz","fileCount":13,"unpackedSize":19906,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdajSKCRA9TVsSAnZWagAA21cP/jd7KaRS4/z7sS8pTOVu\nedyZ32eA7KHvW7nrfforGjaASm2EGhooECpPkdFS1/DiM5NeQoSjrgdm1F/5\nLpzW2i4BfBOyZCnWGXLiYKfkJQyJaU4mZVppnWDLlO3fjCRo3EvvH7O/gG4k\n8OEGk8cxW5ubzX3XiAM4QWwOg3nxkKiytftPHAKN+oE8OR2/Hq7USGuQ4oem\nYHPPYiOYMSQXr7DdxAOXBxrUYH/M11DJlWYeyQyBrA264EVXTdXPQV8TN/Ge\nwZGOMlS16xMS+6sRfphLyce8/By2a9gRvNXa+CmcjjVeqAHBJdZPE662PjbI\nfE4KzI6vfvDfvL8kWGNYj4HqQts5ERa4byD3bSrybiP6QrQez/KnRGwiQWru\nwRadXqWVU8TDIfOgqlgirS4jhyiH19SsfN2BUfVAnPdNU4NKiTP9I3oPRFlT\npVI8ATSqojNKEOc/mlSZr8N8nBESXbMg3ulE5LGqbrYK1d/S6cyS7L3cJtXw\nZ3OujmWPD5S84QTp6eafyByIXw76t2SHJ0UP6JVwzS/TerKdY4yjF14jQ/Qv\nltcmZaQoo+1oSMHfCDgkoCAmbXyH6sjnWQYKiXLIcXvza3QnR3kgr3f0iMl6\norNt98kWETj/+Bogr8J/fwgDzJbHG2J/5EEmoqQ+2gs2zX5vKp8C4TtBSpVd\nm69m\r\n=Vh+7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqhBXHfQdyNpef1A1kxkRdzrPuTuDJkFKUO+PUc38mwAIhAJj7ZcO4mR3LO7IXf4bTFGbAtBeT28dZq09oruW/ck+G"}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"_npmUser":{"name":"drboyce","email":"drboyce21@hotmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_2.0.0-beta.1_1567241353530_0.35692342238858177"},"_hasShrinkwrap":false},"1.0.0-beta.0":{"name":"@boostbank/stateful","version":"1.0.0-beta.0","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib"},"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"cross-env":"^5.2.0","jest":"^25.0.0","jsdoc":"^3.6.3","uuid":"^3.3.3","@babel/cli":"^7.5.5","@babel/core":"^7.5.5","@babel/plugin-proposal-decorators":"^7.4.4","@babel/plugin-proposal-object-rest-spread":"^7.5.5","@babel/plugin-transform-react-display-name":"^7.2.0","@babel/plugin-transform-react-jsx":"^7.3.0","@babel/plugin-transform-runtime":"^7.5.5","@babel/preset-env":"^7.5.5","babel-jest":"^24.9.0"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","gitHead":"6dcb97bcd47463078eecb2e8e9abdb086edef9fa","readme":"## About\r\n\r\n> Stateful is a in-memory storage solution to keep state in your applications.\r\n\r\n## Installation\r\n\r\n```sh\r\nnpm install @boostbank/stateful --save\r\n```\r\n\r\n## React Examples\r\n\r\n[React Example](https://github.com/boostbank/react-stateful-example)\r\n\r\n## Creating a global store.\r\n\r\n```javascript\r\nconst {createStore} = require('@boostbank/stateful');\r\n\r\n// Initial state is something that can be passed in.\r\n// You can create a store with a max depth of rollback period.\r\n// This means you can create a max of how many states are retained to be rolled back.\r\n// This will allow you to keep memory more clear.\r\n// The default maxDepth is -1 (No depth). Any number <= 0 will have no depth.\r\n// KEEP IN MIND: That createStore can only be called once.\r\nconst withDefinedDepth = createStore({someStoreData: \"Some initial store data\"}, 10); // Depth of 10.\r\nconst noDepth = createStore({someStoreData: \"Some initial store data\"}, -1); // No depth\r\nconst default = createStore(); // Empty store object {} and No depth.\r\n```\r\n\r\n## Subscribing to a store\r\n\r\n```javascript\r\nconst { subscribe } = require(\"@boostbank/stateful\");\r\n\r\n// Subscribe is a listener handler for when the store gets changed.\r\n// It will pass the current state in stateful. Do not modify it here.\r\nsubscribe(store => {\r\n  console.log(store);\r\n});\r\n```\r\n\r\n## Modifying a store\r\n\r\n> You may only modify state by the modify method.\r\n\r\n```javascript\r\nconst { modify } = require(\"@boostbank/stateful\");\r\n// Calling modify on the Stateful store will ask for a lambda.\r\n// The lambda will pass a copy of the current state (so you don't have to keep track of immutability)\r\n// You modify the state and return it.\r\nmodify(store => {\r\n  store.modifyObject = {\r\n    message: \"Added an object with with some data\"\r\n  };\r\n  return store;\r\n});\r\n```\r\n\r\n> You can also just override the stores current state as well.\r\n\r\n```javascript\r\nmodify(store => {\r\n  return {data: \"A complete new object\"};\r\n});\r\n```\r\n\r\n> Override and merge.\r\n\r\n```javascript\r\nmodify(store => {\r\n  // You can use spreading, or Object.assign();\r\n  return {...store, data: \"A complete new object\"};\r\n});\r\n```\r\n\r\n## Async modify\r\n\r\n> An async modify is a way for you to get a callback when a particular listener is updated.\r\n\r\n```javascript\r\nconst { subscribe } = require(\"@boostbank/stateful\");\r\n\r\n// For example a React Component.\r\nconst who = {};\r\n\r\n// Subscribe as normal but with an added parameter.\r\nsubscribe((store, modified) => {\r\n  console.log(store);\r\n\r\n  // Updated something async.\r\n  // Usually this will be done inside a component and you can do this.setState(store, ()=>{});\r\n  who.setState(store, ()=>{\r\n    // Notify which object was modified.\r\n    // In this scenario some React component.\r\n    /* If the component that originally modified the store is the component that was updated just now.\r\n    *   Then it will notify the component when the modification completed.\r\n    *  else\r\n    *   Then the callback that you provide in the modifyAsync method wont be called. See next section.\r\n    */\r\n    modified(who);\r\n  });\r\n});\r\n```\r\n\r\n> Modify and wait for the async callback.\r\n\r\n```javascript\r\n  // Somewhere in your React component.\r\n\r\n  // React import.\r\n  import { modifyAsync } from '@boostbank/stateful';\r\n\r\n  // Module imports\r\n  const { modifyAsync } = require(\"@boostbank/stateful\");\r\n\r\n  // Somewhere else in the component it modifies the store.\r\n  // The this keyword is referring to a React component (usually a class type)\r\n  // So who is modifying, then modification function thats passed, then the callback.\r\n  modifyAsync(this, store=>{\r\n    store.data = \"test\";\r\n    return store;\r\n  }, ()=>{\r\n    // The callback that gets called if you are the original modifier.\r\n    // Make an API Call.\r\n    axios.get(...);\r\n  });\r\n\r\n```\r\n> This will become more apparent, in `react-stateful` and in your `React` apps;\r\n\r\n## Rolling back a store\r\n\r\n> Rolling back the state will do exactly what you think it will.\r\n\r\n> It will take the current state and push it off the stack and rollback to the previous.\r\n\r\n> You can rollback until you reach the first state.\r\n\r\n```javascript\r\nconst { rollback } = require(\"@boostbank/stateful\");\r\n\r\nrollback();\r\n```\r\n\r\n## Rolling back a store async.\r\n\r\n```javascript\r\nconst { rollbackAsync } = require(\"@boostbank/stateful\");\r\n\r\nconst who = {};\r\n\r\n// Same idea as modifyAsync;\r\nrollbackAsync(who, ()=>{\r\n  // The async callback.\r\n});\r\n```\r\n\r\n## Substores\r\n> Substores are a full version of a stateful store, but you can make smaller stores to hold a subset of data.\r\n\r\n\r\n## Creating a substore\r\n\r\n```javascript\r\nconst { createSubStore } = require(\"@boostbank/stateful\");\r\n\r\n// Optional return data.\r\nconst subStore = createSubStore(\"test\");\r\n// Without return.\r\ncreateSubStore(\"test\");\r\n\r\n// With default state\r\n// Optional return data.\r\nconst subStore = createSubStore(\"test\", {someData: \"test\"});\r\n// Without return.\r\ncreateSubStore(\"test\", {someData: \"test\"});\r\n```\r\n\r\n## Deleting a substore\r\n\r\n```javascript\r\nconst { deleteSubStore } = require(\"@boostbank/stateful\");\r\n\r\ndeleteSubStore(\"test\");\r\n```\r\n\r\n## Modifying a substore\r\n\r\n> Using the example from the previous entry we created a subStore with \r\n\r\n> The same rules apply as previously seen in modifying a stores state.\r\n\r\n```javascript\r\nconst { subModify } = require(\"@boostbank/stateful\");\r\n\r\n// Modify by the subStore by the uid you gave it. in this case we did test.\r\nsubModify(\"test\", store=>{\r\n  // Modify normally.\r\n\r\n  store.someData = \"newData\";\r\n  return store;\r\n});\r\n\r\n```\r\n\r\n## Lookup syntax.\r\n\r\n> Using substores and typing a string is annoying.\r\n>\r\n> So you can us this syntax to lookup a substore id if its javascript json friendly.\r\n\r\n```javascript\r\n\r\nconst { subModify, lookup } = require(\"@boostbank/stateful\");\r\n\r\n  // Using a substore helper method with lookup.\r\nsubModify(lookup().test, store=>{\r\n  store.someData = \"newData\";\r\n  return store;\r\n});\r\n\r\n```\r\n\r\n> If the lookup id string isn't friendly I guess you could use the [] syntax on an object.\r\n>\r\n> This is quite unnecessary because if you type the string, you might as well just use the string you typed.\r\n\r\n```javascript\r\n// Just more work but here this is.\r\nsubModify(lookup().[\"1\"], store=>{\r\n  store.someData = \"newData\";\r\n  return store;\r\n});\r\n\r\n```\r\n\r\n## Modifying a substore async\r\n\r\n> Same rules apply as previously seen in modifying a stores data.\r\n\r\n```javascript\r\nconst { subModifyAsync } = require(\"@boostbank/stateful\");\r\n\r\nconst who = {};\r\n\r\nsubModifyAsync(who, \"test\", store=>{\r\n  store.someData = \"test\";\r\n  return store;\r\n}, ()=>{\r\n  // Callback\r\n});\r\n\r\n```\r\n\r\n> Again this these async features are really meant to support React, but it could be used for anything that is async.\r\n\r\n## Rolling back a substore\r\n\r\n> Same rules apply as the previous rollback shown.\r\n\r\n```javascript\r\nconst { subRollback } = require(\"@boostbank/stateful\");\r\n\r\nsubRollback(\"test\");\r\n```\r\n\r\n## Rolling back a substore async\r\n\r\n```javascript\r\nconst { subRollbackAsync } = require(\"@boostbank/stateful\");\r\n\r\nconst who = {};\r\n\r\n// Same idea as rollbackAsync;\r\nsubRollbackAsync(who, \"test\", ()=>{\r\n  // The async callback.\r\n});\r\n```","readmeFilename":"readme.md","_id":"@boostbank/stateful@1.0.0-beta.0","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-6Iu9us8Nj7e5JXPHg9i3dTM/2CJZ1HXTI3f7BlA/T5sQn2/vptRSmqywvRnuDDbLieMb089VRR9FIDWy2MW8Pw==","shasum":"0b17c25dfa9cef9b0687aef0a5680a13263f3d3c","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-1.0.0-beta.0.tgz","fileCount":13,"unpackedSize":24981,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJde+4CCRA9TVsSAnZWagAAWycQAJztTbWSpCYSz1WJbLuK\niE6yDsfp4dmguWqP7MDHDCkHDLgfzkDciVtzPW49lpv7ufvwn4uTGQduxBwH\nfm7KNiIaSkgYhydmvCHNtUak1DX/uzv6P76/c34v0/DdI+Jp0p8b8QAavqEZ\nSGFOp5UD48PEvFp02JQPXpXQiX0gvInDMCV++dm6PngMzQZNTsJuVx6rE2V9\ncChl5OGNzoIqfdAdRxXr8MhoZ4RCcDL0e3OJAiS6GWaKEFUxYpMhd8kvuVrM\n6Ix3SivtEbvLP3hR/qmir8OaVNoWM/oD5HA7PvfKrhvXodkkjLrB2eRNm9d1\nfUrXQ97UyXLAl+mJykObtutLA32hXJWn42DCLiT+f/wLY4BZLBu1k8uYW0hX\n8j7QQP0OquoUZU1pBjTMLW0YJt2mqUm1cKdXVtSRDnGSv2xdIu6P/y8Gf7If\nLCSiVAyaVAgrCYo0PASErNWV0iSOD0ijLEyurvUhw/mwubPrzUNcu4w2OQFF\niwp8kuddinWaNXlkPFfDOr+PU2NAFd9j0lc4X3HEzcJj61kxpKI4bEU8vXx/\n+CK+cnCJUpXuLYJu2YVf+pgvyNCHquTqb4SK1JNCl6X407HVfZCO4zXtUMbw\nV7u/8Agu1jVDAghuoH5W21PmXMjAAi2JpzTVynVJNosWG2vx1XjIebOOwOVB\nQmac\r\n=d0xY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+O64tSgzHaDyrFPsl9wSv4A7lPyZGVkSl2EGteiKNvAIhAKgOrqkWG1jwqZ27NRnXAcfhL7fyNljd8XRCvNQk4Lq+"}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"_npmUser":{"name":"drboyce","email":"drboyce21@hotmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_1.0.0-beta.0_1568402945552_0.08917458656808663"},"_hasShrinkwrap":false},"1.0.0-beta.1":{"name":"@boostbank/stateful","version":"1.0.0-beta.1","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib"},"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"cross-env":"^5.2.0","jest":"^25.0.0","jsdoc":"^3.6.3","uuid":"^3.3.3","@babel/cli":"^7.5.5","@babel/core":"^7.5.5","@babel/plugin-proposal-decorators":"^7.4.4","@babel/plugin-proposal-object-rest-spread":"^7.5.5","@babel/plugin-transform-react-display-name":"^7.2.0","@babel/plugin-transform-react-jsx":"^7.3.0","@babel/plugin-transform-runtime":"^7.5.5","@babel/preset-env":"^7.5.5","babel-jest":"^24.9.0"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","gitHead":"1741d7f436d9baae1bd0b816534ab875866772db","readme":"## About\r\n\r\n> Stateful is a in-memory storage solution to keep state in your applications.\r\n\r\n## Installation\r\n\r\n```sh\r\nnpm install @boostbank/stateful --save\r\n```\r\n\r\n## React Examples\r\n\r\n[React Example](https://github.com/boostbank/react-stateful-example)\r\n\r\n## Creating a global store.\r\n\r\n```javascript\r\nconst {createStore} = require('@boostbank/stateful');\r\n\r\n// Initial state is something that can be passed in.\r\n// You can create a store with a max depth of rollback period.\r\n// This means you can create a max of how many states are retained to be rolled back.\r\n// This will allow you to keep memory more clear.\r\n// The default maxDepth is -1 (No depth). Any number <= 0 will have no depth.\r\n// KEEP IN MIND: That createStore can only be called once.\r\nconst withDefinedDepth = createStore({someStoreData: \"Some initial store data\"}, 10); // Depth of 10.\r\nconst noDepth = createStore({someStoreData: \"Some initial store data\"}, -1); // No depth\r\nconst default = createStore(); // Empty store object {} and No depth.\r\n```\r\n\r\n## Subscribing to a store\r\n\r\n```javascript\r\nconst { subscribe } = require(\"@boostbank/stateful\");\r\n\r\n// Subscribe is a listener handler for when the store gets changed.\r\n// It will pass the current state in stateful. Do not modify it here.\r\nsubscribe(store => {\r\n  console.log(store);\r\n});\r\n```\r\n\r\n## Modifying a store\r\n\r\n> You may only modify state by the modify method.\r\n\r\n```javascript\r\nconst { modify } = require(\"@boostbank/stateful\");\r\n// Calling modify on the Stateful store will ask for a lambda.\r\n// The lambda will pass a copy of the current state (so you don't have to keep track of immutability)\r\n// You modify the state and return it.\r\nmodify(store => {\r\n  store.modifyObject = {\r\n    message: \"Added an object with with some data\"\r\n  };\r\n  return store;\r\n});\r\n```\r\n\r\n> You can also just override the stores current state as well.\r\n\r\n```javascript\r\nmodify(store => {\r\n  return {data: \"A complete new object\"};\r\n});\r\n```\r\n\r\n> Override and merge.\r\n\r\n```javascript\r\nmodify(store => {\r\n  // You can use spreading, or Object.assign();\r\n  return {...store, data: \"A complete new object\"};\r\n});\r\n```\r\n\r\n## Async modify\r\n\r\n> An async modify is a way for you to get a callback when a particular listener is updated.\r\n\r\n```javascript\r\nconst { subscribe } = require(\"@boostbank/stateful\");\r\n\r\n// For example a React Component.\r\nconst who = {};\r\n\r\n// Subscribe as normal but with an added parameter.\r\nsubscribe((store, modified) => {\r\n  console.log(store);\r\n\r\n  // Updated something async.\r\n  // Usually this will be done inside a component and you can do this.setState(store, ()=>{});\r\n  who.setState(store, ()=>{\r\n    // Notify which object was modified.\r\n    // In this scenario some React component.\r\n    /* If the component that originally modified the store is the component that was updated just now.\r\n    *   Then it will notify the component when the modification completed.\r\n    *  else\r\n    *   Then the callback that you provide in the modifyAsync method wont be called. See next section.\r\n    */\r\n    modified(who);\r\n  });\r\n});\r\n```\r\n\r\n> Modify and wait for the async callback.\r\n\r\n```javascript\r\n  // Somewhere in your React component.\r\n\r\n  // React import.\r\n  import { modifyAsync } from '@boostbank/stateful';\r\n\r\n  // Module imports\r\n  const { modifyAsync } = require(\"@boostbank/stateful\");\r\n\r\n  // Somewhere else in the component it modifies the store.\r\n  // The this keyword is referring to a React component (usually a class type)\r\n  // So who is modifying, then modification function thats passed, then the callback.\r\n  modifyAsync(this, store=>{\r\n    store.data = \"test\";\r\n    return store;\r\n  }, ()=>{\r\n    // The callback that gets called if you are the original modifier.\r\n    // Make an API Call.\r\n    axios.get(...);\r\n  });\r\n\r\n```\r\n> This will become more apparent, in `react-stateful` and in your `React` apps;\r\n\r\n## Rolling back a store\r\n\r\n> Rolling back the state will do exactly what you think it will.\r\n\r\n> It will take the current state and push it off the stack and rollback to the previous.\r\n\r\n> You can rollback until you reach the first state.\r\n\r\n```javascript\r\nconst { rollback } = require(\"@boostbank/stateful\");\r\n\r\nrollback();\r\n```\r\n\r\n## Rolling back a store async.\r\n\r\n```javascript\r\nconst { rollbackAsync } = require(\"@boostbank/stateful\");\r\n\r\nconst who = {};\r\n\r\n// Same idea as modifyAsync;\r\nrollbackAsync(who, ()=>{\r\n  // The async callback.\r\n});\r\n```\r\n\r\n## Substores\r\n> Substores are a full version of a stateful store, but you can make smaller stores to hold a subset of data.\r\n\r\n\r\n## Creating a substore\r\n\r\n```javascript\r\nconst { createSubStore } = require(\"@boostbank/stateful\");\r\n\r\n// Optional return data.\r\nconst subStore = createSubStore(\"test\");\r\n// Without return.\r\ncreateSubStore(\"test\");\r\n\r\n// With default state\r\n// Optional return data.\r\nconst subStore = createSubStore(\"test\", {someData: \"test\"});\r\n// Without return.\r\ncreateSubStore(\"test\", {someData: \"test\"});\r\n```\r\n\r\n## Deleting a substore\r\n\r\n```javascript\r\nconst { deleteSubStore } = require(\"@boostbank/stateful\");\r\n\r\ndeleteSubStore(\"test\");\r\n```\r\n\r\n## Modifying a substore\r\n\r\n> Using the example from the previous entry we created a subStore with \r\n\r\n> The same rules apply as previously seen in modifying a stores state.\r\n\r\n```javascript\r\nconst { subModify } = require(\"@boostbank/stateful\");\r\n\r\n// Modify by the subStore by the uid you gave it. in this case we did test.\r\nsubModify(\"test\", store=>{\r\n  // Modify normally.\r\n\r\n  store.someData = \"newData\";\r\n  return store;\r\n});\r\n\r\n```\r\n\r\n## Lookup syntax.\r\n\r\n> Using substores and typing a string is annoying.\r\n>\r\n> So you can us this syntax to lookup a substore id if its javascript json friendly.\r\n\r\n```javascript\r\n\r\nconst { subModify, lookup } = require(\"@boostbank/stateful\");\r\n\r\n  // Using a substore helper method with lookup.\r\nsubModify(lookup().test, store=>{\r\n  store.someData = \"newData\";\r\n  return store;\r\n});\r\n\r\n```\r\n\r\n> If the lookup id string isn't friendly I guess you could use the [] syntax on an object.\r\n>\r\n> This is quite unnecessary because if you type the string, you might as well just use the string you typed.\r\n\r\n```javascript\r\n// Just more work but here this is.\r\nsubModify(lookup().[\"1\"], store=>{\r\n  store.someData = \"newData\";\r\n  return store;\r\n});\r\n\r\n```\r\n\r\n## Modifying a substore async\r\n\r\n> Same rules apply as previously seen in modifying a stores data.\r\n\r\n```javascript\r\nconst { subModifyAsync } = require(\"@boostbank/stateful\");\r\n\r\nconst who = {};\r\n\r\nsubModifyAsync(who, \"test\", store=>{\r\n  store.someData = \"test\";\r\n  return store;\r\n}, ()=>{\r\n  // Callback\r\n});\r\n\r\n```\r\n\r\n> Again this these async features are really meant to support React, but it could be used for anything that is async.\r\n\r\n## Rolling back a substore\r\n\r\n> Same rules apply as the previous rollback shown.\r\n\r\n```javascript\r\nconst { subRollback } = require(\"@boostbank/stateful\");\r\n\r\nsubRollback(\"test\");\r\n```\r\n\r\n## Rolling back a substore async\r\n\r\n```javascript\r\nconst { subRollbackAsync } = require(\"@boostbank/stateful\");\r\n\r\nconst who = {};\r\n\r\n// Same idea as rollbackAsync;\r\nsubRollbackAsync(who, \"test\", ()=>{\r\n  // The async callback.\r\n});\r\n```","readmeFilename":"readme.md","_id":"@boostbank/stateful@1.0.0-beta.1","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-1TJANyqCNfxX6OfdD5lWIRO1JLGXQmIi3eNa4UVDrb6urs4mk7HC1EUp429AKRlZFKhBik866Shoac18YGQ7kA==","shasum":"8e1f2a1bd468960d653faf14e892243af61e51e2","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-1.0.0-beta.1.tgz","fileCount":6,"unpackedSize":19587,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJde+7cCRA9TVsSAnZWagAAs0YP/AmuIPMEKx2h+tmsGWGu\nWVEWbbPAjfvExJmpiCP1ISzhA+JPoE1BogN3+AnnY0W1hpwnvoWtFyrGctHA\nVYodclFjEss+yr3ZuuoCNHp//uxO2SNjrk35UqW2bCIQCdMI15PP+m6O8Lav\nOrA5dsE/qa3KXs4S+9YJMjxt8TpRdWXwH0nQbJSrhn5222QJ18OxPvn/2wE9\nCJqRKOLMVf3LEjx2j1KsdkpU4ui9IJH4VyUJ2KykxmjinA676eu6B1wZT1ll\nKW26k8gHqbS/nJSzlZMS+OaZj44OYcGuFX0sVl3jqN8nvVRf0eDIi42vKsWE\nGt5YsmT0tbzd9iZ3MdYqv7TrLA3YfF2yynaRxHj16QEEhSp0BPeyvCWcwSTo\ndRtEE5iGKOGMDRogD7XVgJHDpwnR8jGkWLc+EX8z/jXieP4a1V+LSb8IGKQb\nb36/eotXC1GG9+Lmy1iN+rorfZXrX+e7q27Tcrb4h5LPIUL6g+764OQ9ATYo\nEsXfuRHq+H/Dbf6kZvlJh+ycZt2+Imk3G/2bAy6vdXMcb6x9lvkyh11RDuPT\noev9ooEzT1KugRbkEAs6WOpPqWaXsJIZYBp7tk9EylLUfxpFh+N6WRyP7dQg\nx/731xInd95n2S8vj+bbOZ7w8Zt5a/0WE2jVNnd3nw5yPJYBd9fjrbPfGn1f\ncs59\r\n=UtT8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF++jdB9FECiAGT4roVlUpvEXCC2CQObctarilXwAyAeAiAD+xSXAH7hpqotpfVe7qq0R2L6jSJciHN1l8HnU6gZ4w=="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"_npmUser":{"name":"drboyce","email":"drboyce21@hotmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_1.0.0-beta.1_1568403164164_0.640299325939961"},"_hasShrinkwrap":false},"1.0.0-beta.2":{"name":"@boostbank/stateful","version":"1.0.0-beta.2","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"cross-env":"^5.2.0","jest":"^25.0.0","jsdoc":"^3.6.3","uuid":"^3.3.3","@babel/cli":"^7.5.5","@babel/core":"^7.5.5","@babel/plugin-proposal-decorators":"^7.4.4","@babel/plugin-proposal-object-rest-spread":"^7.5.5","@babel/plugin-transform-react-display-name":"^7.2.0","@babel/plugin-transform-react-jsx":"^7.3.0","@babel/plugin-transform-runtime":"^7.5.5","@babel/preset-env":"^7.5.5","babel-jest":"^24.9.0"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","gitHead":"3b73f6cca08d23684373e76d6e82ec10f52cbc16","readme":"## About\r\n\r\n> Stateful is a in-memory storage solution to keep state in your applications.\r\n\r\n## Installation\r\n\r\n```sh\r\nnpm install @boostbank/stateful --save\r\n```\r\n\r\n## React Examples\r\n\r\n[React Example](https://github.com/boostbank/react-stateful-example)\r\n\r\n## Creating a global store.\r\n\r\n```javascript\r\nconst {createStore} = require('@boostbank/stateful');\r\n\r\n// Initial state is something that can be passed in.\r\n// You can create a store with a max depth of rollback period.\r\n// This means you can create a max of how many states are retained to be rolled back.\r\n// This will allow you to keep memory more clear.\r\n// The default maxDepth is -1 (No depth). Any number <= 0 will have no depth.\r\n// KEEP IN MIND: That createStore can only be called once.\r\nconst withDefinedDepth = createStore({someStoreData: \"Some initial store data\"}, 10); // Depth of 10. (Saves up to 10 versions)\r\nconst unlimitedDepth = createStore({someStoreData: \"Some initial store data\"}, -1); // Unlimited depth (Unlimited versions)\r\nconst default = createStore(); // Empty store object {} and No depth. (No version saving)\r\n```\r\n\r\n## Subscribing to a store\r\n\r\n```javascript\r\nconst { subscribe } = require(\"@boostbank/stateful\");\r\n\r\n// Subscribe is a listener handler for when the store gets changed.\r\n// It will pass the current state in stateful. Do not modify it here.\r\nsubscribe(store => {\r\n  console.log(store);\r\n});\r\n```\r\n\r\n## Modifying a store\r\n\r\n> You may only modify state by the modify method.\r\n\r\n```javascript\r\nconst { modify } = require(\"@boostbank/stateful\");\r\n// Calling modify on the Stateful store will ask for a lambda.\r\n// The lambda will pass a copy of the current state (so you don't have to keep track of immutability)\r\n// You modify the state and return it.\r\nmodify(store => {\r\n  store.modifyObject = {\r\n    message: \"Added an object with with some data\"\r\n  };\r\n  return store;\r\n});\r\n```\r\n\r\n> You can also just override the stores current state as well.\r\n\r\n```javascript\r\nmodify(store => {\r\n  return {data: \"A complete new object\"};\r\n});\r\n```\r\n\r\n> Override and merge.\r\n\r\n```javascript\r\nmodify(store => {\r\n  // You can use spreading, or Object.assign();\r\n  return {...store, data: \"A complete new object\"};\r\n});\r\n```\r\n\r\n## Async modify\r\n\r\n> An async modify is a way for you to get a callback when a particular listener is updated.\r\n\r\n```javascript\r\nconst { subscribe } = require(\"@boostbank/stateful\");\r\n\r\n// For example a React Component.\r\nconst who = {};\r\n\r\n// Subscribe as normal but with an added parameter.\r\nsubscribe((store, modified) => {\r\n  console.log(store);\r\n\r\n  // Updated something async.\r\n  // Usually this will be done inside a component and you can do this.setState(store, ()=>{});\r\n  who.setState(store, ()=>{\r\n    // Notify which object was modified.\r\n    // In this scenario some React component.\r\n    /* If the component that originally modified the store is the component that was updated just now.\r\n    *   Then it will notify the component when the modification completed.\r\n    *  else\r\n    *   Then the callback that you provide in the modifyAsync method wont be called. See next section.\r\n    */\r\n    modified(who);\r\n  });\r\n});\r\n```\r\n\r\n> Modify and wait for the async callback.\r\n\r\n```javascript\r\n  // Somewhere in your React component.\r\n\r\n  // React import.\r\n  import { modifyAsync } from '@boostbank/stateful';\r\n\r\n  // Module imports\r\n  const { modifyAsync } = require(\"@boostbank/stateful\");\r\n\r\n  // Somewhere else in the component it modifies the store.\r\n  // The this keyword is referring to a React component (usually a class type)\r\n  // So who is modifying, then modification function thats passed, then the callback.\r\n  modifyAsync(this, store=>{\r\n    store.data = \"test\";\r\n    return store;\r\n  }, ()=>{\r\n    // The callback that gets called if you are the original modifier.\r\n    // Make an API Call.\r\n    axios.get(...);\r\n  });\r\n\r\n```\r\n> This will become more apparent, in `react-stateful` and in your `React` apps;\r\n\r\n## Rolling back a store\r\n\r\n> Rolling back the state will do exactly what you think it will.\r\n\r\n> It will take the current state and push it off the stack and rollback to the previous.\r\n\r\n> You can rollback until you reach the first state.\r\n\r\n```javascript\r\nconst { rollback } = require(\"@boostbank/stateful\");\r\n\r\nrollback();\r\n```\r\n\r\n## Rolling back a store async.\r\n\r\n```javascript\r\nconst { rollbackAsync } = require(\"@boostbank/stateful\");\r\n\r\nconst who = {};\r\n\r\n// Same idea as modifyAsync;\r\nrollbackAsync(who, ()=>{\r\n  // The async callback.\r\n});\r\n```\r\n\r\n## Substores\r\n> Substores are a full version of a stateful store, but you can make smaller stores to hold a subset of data.\r\n\r\n\r\n## Creating a substore\r\n\r\n```javascript\r\nconst { createSubStore } = require(\"@boostbank/stateful\");\r\n\r\n// Optional return data.\r\nconst subStore = createSubStore(\"test\");\r\n// Without return.\r\ncreateSubStore(\"test\");\r\n\r\n// With default state\r\n// Optional return data.\r\nconst subStore = createSubStore(\"test\", {someData: \"test\"});\r\n// Without return.\r\ncreateSubStore(\"test\", {someData: \"test\"});\r\n```\r\n\r\n## Deleting a substore\r\n\r\n```javascript\r\nconst { deleteSubStore } = require(\"@boostbank/stateful\");\r\n\r\ndeleteSubStore(\"test\");\r\n```\r\n\r\n## Modifying a substore\r\n\r\n> Using the example from the previous entry we created a subStore with \r\n\r\n> The same rules apply as previously seen in modifying a stores state.\r\n\r\n```javascript\r\nconst { subModify } = require(\"@boostbank/stateful\");\r\n\r\n// Modify by the subStore by the uid you gave it. in this case we did test.\r\nsubModify(\"test\", store=>{\r\n  // Modify normally.\r\n\r\n  store.someData = \"newData\";\r\n  return store;\r\n});\r\n\r\n```\r\n\r\n## Lookup syntax.\r\n\r\n> Using substores and typing a string is annoying.\r\n>\r\n> So you can us this syntax to lookup a substore id if its javascript json friendly.\r\n\r\n```javascript\r\n\r\nconst { subModify, lookup } = require(\"@boostbank/stateful\");\r\n\r\n  // Using a substore helper method with lookup.\r\nsubModify(lookup().test, store=>{\r\n  store.someData = \"newData\";\r\n  return store;\r\n});\r\n\r\n```\r\n\r\n> If the lookup id string isn't friendly I guess you could use the [] syntax on an object.\r\n>\r\n> This is quite unnecessary because if you type the string, you might as well just use the string you typed.\r\n\r\n```javascript\r\n// Just more work but here this is.\r\nsubModify(lookup().[\"1\"], store=>{\r\n  store.someData = \"newData\";\r\n  return store;\r\n});\r\n\r\n```\r\n\r\n## Modifying a substore async\r\n\r\n> Same rules apply as previously seen in modifying a stores data.\r\n\r\n```javascript\r\nconst { subModifyAsync } = require(\"@boostbank/stateful\");\r\n\r\nconst who = {};\r\n\r\nsubModifyAsync(who, \"test\", store=>{\r\n  store.someData = \"test\";\r\n  return store;\r\n}, ()=>{\r\n  // Callback\r\n});\r\n\r\n```\r\n\r\n> Again this these async features are really meant to support React, but it could be used for anything that is async.\r\n\r\n## Rolling back a substore\r\n\r\n> Same rules apply as the previous rollback shown.\r\n\r\n```javascript\r\nconst { subRollback } = require(\"@boostbank/stateful\");\r\n\r\nsubRollback(\"test\");\r\n```\r\n\r\n## Rolling back a substore async\r\n\r\n```javascript\r\nconst { subRollbackAsync } = require(\"@boostbank/stateful\");\r\n\r\nconst who = {};\r\n\r\n// Same idea as rollbackAsync;\r\nsubRollbackAsync(who, \"test\", ()=>{\r\n  // The async callback.\r\n});\r\n```","readmeFilename":"readme.md","_id":"@boostbank/stateful@1.0.0-beta.2","_nodeVersion":"10.16.3","_npmVersion":"6.11.3","dist":{"integrity":"sha512-Kn527liDGsaPy+mn0d5VUuYjERknEKLVZZsHvUuvIbiZStmbSSRYmy8L+a8M8Tbq/+kgG5AK+9BgKXlO0vs7aQ==","shasum":"8fb75450dfefc61f7a6d6f5d2b36180ca3b8c17f","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-1.0.0-beta.2.tgz","fileCount":6,"unpackedSize":19699,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdfBUCCRA9TVsSAnZWagAAB8AP/3BTiXREvLpvZ3GEEklv\ngX5V+mOWK5B+WLMIMAL6k8EAzE8rQJvrOLAblOeRkdk1kkqA+JTC3TvxA77q\nOVeocg2QNu9E8iKtx+lwyaxZAYbMhcNqeLxb2/wu4dN4KQ5iBIvGVPY8mh4u\n6MP5zMFa0cCrjxgVlcRz5pbByrxirT1qFG1GFIqGOLPmuPGPE2Yn+FnKRHNl\nJtBBbqlTcKx/jfG99XWAYzds9thLUMUCHT36efxM61CsUW0kTZrKiVsgjHRc\nqKoMGU17sEs31Im0Q3Go0SkPrqJnChhNqBSnChpTXHSrxQbaSZ68SEt1ijUb\nwHMjHXDQAUaelXohlFV0IIhI++qdNw/VkjwEIiSWiYl5W+bU5BrLLDT7rFnT\nc9jvEp0o4/brvYOpitpG8opboaYHV1hA3QJ8LfVbs9+/+rDQS5DFvjAR9oQV\nXeebj25te94Lw6kvEoACvjYaxZgo8qtL9TKAZmra3MokjpGW0hdD0faBjL+s\neFTQOLnBhNp+gMnRhnD9gWfpCepmtOAsPtv/199EjmwYHn/kh0TBXOB/JkP/\nEJCECdrkvDRMtILfxuWDa78lKcyUb3ci5Dl1jHPhcFHrj0sY8v5SAxWtNvSN\neYzWK75F3Q+UssExn890DmVAYB1+3T6TnV2BGcmhY/8ZPUgMQpLWrOIovBS7\nwIfd\r\n=Zqbo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMFod4lyjXwSWyPdoHSXGebrRf/4BrQGdqsLAS19ETbQIhALUA4obRRmcklVKcgpC9n/NG0mHiaP1T+grHnJffxnrp"}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"_npmUser":{"name":"drboyce","email":"drboyce21@hotmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_1.0.0-beta.2_1568412929690_0.6930078389250234"},"_hasShrinkwrap":false},"1.0.0-beta.3":{"name":"@boostbank/stateful","version":"1.0.0-beta.3","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"cross-env":"^5.2.0","jest":"^25.0.0","jsdoc":"^3.6.3","uuid":"^3.3.3","@babel/cli":"^7.5.5","@babel/core":"^7.5.5","@babel/plugin-proposal-decorators":"^7.4.4","@babel/plugin-proposal-object-rest-spread":"^7.5.5","@babel/plugin-transform-react-display-name":"^7.2.0","@babel/plugin-transform-react-jsx":"^7.3.0","@babel/plugin-transform-runtime":"^7.5.5","@babel/preset-env":"^7.5.5","babel-jest":"^24.9.0"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","gitHead":"d05756625bbaab7ccb768ea7b585f18a51291883","readme":"## About\r\n\r\n> Stateful is a in-memory storage solution to keep state in your applications.\r\n\r\n## Installation\r\n\r\n```sh\r\nnpm install @boostbank/stateful --save\r\n```\r\n\r\n## React Examples\r\n\r\n[React Example](https://github.com/boostbank/react-stateful-example)\r\n\r\n## Creating a global store.\r\n\r\n```javascript\r\nconst {createStore} = require('@boostbank/stateful');\r\n\r\n// Initial state is something that can be passed in.\r\n// You can create a store with a max depth of rollback period.\r\n// This means you can create a max of how many states are retained to be rolled back.\r\n// This will allow you to keep memory more clear.\r\n// The default maxDepth is -1 (No depth). Any number <= 0 will have no depth.\r\n// KEEP IN MIND: That createStore can only be called once.\r\nconst withDefinedDepth = createStore({someStoreData: \"Some initial store data\"}, 10); // Depth of 10. (Saves up to 10 versions)\r\nconst unlimitedDepth = createStore({someStoreData: \"Some initial store data\"}, -1); // Unlimited depth (Unlimited versions)\r\nconst default = createStore(); // Empty store object {} and No depth. (No version saving)\r\n```\r\n\r\n## Subscribing to a store\r\n\r\n```javascript\r\nconst { subscribe } = require(\"@boostbank/stateful\");\r\n\r\n// Subscribe is a listener handler for when the store gets changed.\r\n// It will pass the current state in stateful. Do not modify it here.\r\nsubscribe(store => {\r\n  console.log(store);\r\n});\r\n```\r\n\r\n## Modifying a store\r\n\r\n> You may only modify state by the modify method.\r\n\r\n```javascript\r\nconst { modify } = require(\"@boostbank/stateful\");\r\n// Calling modify on the Stateful store will ask for a lambda.\r\n// The lambda will pass a copy of the current state (so you don't have to keep track of immutability)\r\n// You modify the state and return it.\r\nmodify(store => {\r\n  store.modifyObject = {\r\n    message: \"Added an object with with some data\"\r\n  };\r\n  return store;\r\n});\r\n```\r\n\r\n> You can also just override the stores current state as well.\r\n\r\n```javascript\r\nmodify(store => {\r\n  return {data: \"A complete new object\"};\r\n});\r\n```\r\n\r\n> Override and merge.\r\n\r\n```javascript\r\nmodify(store => {\r\n  // You can use spreading, or Object.assign();\r\n  return {...store, data: \"A complete new object\"};\r\n});\r\n```\r\n\r\n## Async modify\r\n\r\n> An async modify is a way for you to get a callback when a particular listener is updated.\r\n\r\n```javascript\r\nconst { subscribe } = require(\"@boostbank/stateful\");\r\n\r\n// For example a React Component.\r\nconst who = {};\r\n\r\n// Subscribe as normal but with an added parameter.\r\nsubscribe((store, modified) => {\r\n  console.log(store);\r\n\r\n  // Updated something async.\r\n  // Usually this will be done inside a component and you can do this.setState(store, ()=>{});\r\n  who.setState(store, ()=>{\r\n    // Notify which object was modified.\r\n    // In this scenario some React component.\r\n    /* If the component that originally modified the store is the component that was updated just now.\r\n    *   Then it will notify the component when the modification completed.\r\n    *  else\r\n    *   Then the callback that you provide in the modifyAsync method wont be called. See next section.\r\n    */\r\n    modified(who);\r\n  });\r\n});\r\n```\r\n\r\n> Modify and wait for the async callback.\r\n\r\n```javascript\r\n  // Somewhere in your React component.\r\n\r\n  // React import.\r\n  import { modifyAsync } from '@boostbank/stateful';\r\n\r\n  // Module imports\r\n  const { modifyAsync } = require(\"@boostbank/stateful\");\r\n\r\n  // Somewhere else in the component it modifies the store.\r\n  // The this keyword is referring to a React component (usually a class type)\r\n  // So who is modifying, then modification function thats passed, then the callback.\r\n  modifyAsync(this, store=>{\r\n    store.data = \"test\";\r\n    return store;\r\n  }, ()=>{\r\n    // The callback that gets called if you are the original modifier.\r\n    // Make an API Call.\r\n    axios.get(...);\r\n  });\r\n\r\n```\r\n> This will become more apparent, in `react-stateful` and in your `React` apps;\r\n\r\n## Rolling back a store\r\n\r\n> Rolling back the state will do exactly what you think it will.\r\n\r\n> It will take the current state and push it off the stack and rollback to the previous.\r\n\r\n> You can rollback until you reach the first state.\r\n\r\n```javascript\r\nconst { rollback } = require(\"@boostbank/stateful\");\r\n\r\nrollback();\r\n```\r\n\r\n## Rolling back a store async.\r\n\r\n```javascript\r\nconst { rollbackAsync } = require(\"@boostbank/stateful\");\r\n\r\nconst who = {};\r\n\r\n// Same idea as modifyAsync;\r\nrollbackAsync(who, ()=>{\r\n  // The async callback.\r\n});\r\n```\r\n\r\n## Substores\r\n> Substores are a full version of a stateful store, but you can make smaller stores to hold a subset of data.\r\n\r\n\r\n## Creating a substore\r\n\r\n```javascript\r\nconst { createSubStore } = require(\"@boostbank/stateful\");\r\n\r\n// Optional return data.\r\nconst subStore = createSubStore(\"test\");\r\n// Without return.\r\ncreateSubStore(\"test\");\r\n\r\n// With default state\r\n// Optional return data.\r\nconst subStore = createSubStore(\"test\", {someData: \"test\"});\r\n// Without return.\r\ncreateSubStore(\"test\", {someData: \"test\"});\r\n```\r\n\r\n## Deleting a substore\r\n\r\n```javascript\r\nconst { deleteSubStore } = require(\"@boostbank/stateful\");\r\n\r\ndeleteSubStore(\"test\");\r\n```\r\n\r\n## Modifying a substore\r\n\r\n> Using the example from the previous entry we created a subStore with \r\n\r\n> The same rules apply as previously seen in modifying a stores state.\r\n\r\n```javascript\r\nconst { subModify } = require(\"@boostbank/stateful\");\r\n\r\n// Modify by the subStore by the uid you gave it. in this case we did test.\r\nsubModify(\"test\", store=>{\r\n  // Modify normally.\r\n\r\n  store.someData = \"newData\";\r\n  return store;\r\n});\r\n\r\n```\r\n\r\n## Lookup syntax.\r\n\r\n> Using substores and typing a string is annoying.\r\n>\r\n> So you can us this syntax to lookup a substore id if its javascript json friendly.\r\n\r\n```javascript\r\n\r\nconst { subModify, lookup } = require(\"@boostbank/stateful\");\r\n\r\n  // Using a substore helper method with lookup.\r\nsubModify(lookup().test, store=>{\r\n  store.someData = \"newData\";\r\n  return store;\r\n});\r\n\r\n```\r\n\r\n> If the lookup id string isn't friendly I guess you could use the [] syntax on an object.\r\n>\r\n> This is quite unnecessary because if you type the string, you might as well just use the string you typed.\r\n\r\n```javascript\r\n// Just more work but here this is.\r\nsubModify(lookup().[\"1\"], store=>{\r\n  store.someData = \"newData\";\r\n  return store;\r\n});\r\n\r\n```\r\n\r\n## Modifying a substore async\r\n\r\n> Same rules apply as previously seen in modifying a stores data.\r\n\r\n```javascript\r\nconst { subModifyAsync } = require(\"@boostbank/stateful\");\r\n\r\nconst who = {};\r\n\r\nsubModifyAsync(who, \"test\", store=>{\r\n  store.someData = \"test\";\r\n  return store;\r\n}, ()=>{\r\n  // Callback\r\n});\r\n\r\n```\r\n\r\n> Again this these async features are really meant to support React, but it could be used for anything that is async.\r\n\r\n## Rolling back a substore\r\n\r\n> Same rules apply as the previous rollback shown.\r\n\r\n```javascript\r\nconst { subRollback } = require(\"@boostbank/stateful\");\r\n\r\nsubRollback(\"test\");\r\n```\r\n\r\n## Rolling back a substore async\r\n\r\n```javascript\r\nconst { subRollbackAsync } = require(\"@boostbank/stateful\");\r\n\r\nconst who = {};\r\n\r\n// Same idea as rollbackAsync;\r\nsubRollbackAsync(who, \"test\", ()=>{\r\n  // The async callback.\r\n});\r\n```","readmeFilename":"readme.md","_id":"@boostbank/stateful@1.0.0-beta.3","_nodeVersion":"10.16.3","_npmVersion":"6.11.3","dist":{"integrity":"sha512-OEFspHnmuL5IK89WC+y9F6MCf12kFpsTKU1ymM4pfBEckfEPc6fKF5/m8cXaOADfPE6xZSUe307dxWsO1CZW2Q==","shasum":"5c35731ea10e0434d7df81f8f7263d3576728263","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-1.0.0-beta.3.tgz","fileCount":6,"unpackedSize":19761,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdfBpSCRA9TVsSAnZWagAAOgIQAJVBqvHP4onUzXB542b2\nZ3IFI4IFYUdMofXDnSHwoj620cxW+RUC5GLHXDgwcJTJoybKgEJqUTsSmffh\nR+JU1WsQWPjrCHHMtc8r0ZusWYIxuzA0FdKJ6NYAS2cCNuyUbc7jIvXJgp74\nHeMvqPy+JWdpshyqTpgbYluhxrfDeA75OCbhFQgpt+4kSvgrmCC2utPIP31P\nr5+khhxE8uQema2/gSnipH1K2Zc8y4NoOlpQPU+Ep1CiGhHm0ndECK5cIbB+\nTlAeKJJMiT1a8oSbKLWJcWnTYMDOrgEUBaGY16ryGLKVx/2FEG5nTnIa/bol\nkPexh2hkBDj4WY7iEpztbe8HPB5FFtsQVNDEsSplwoVauVhfsQSdE3FB1Wxt\nwpShgnCkgCatUufnIm3qUluab/4zoRc0C94Y0/TRA0u0vzBAXo0/cU0fz5v4\naZQLyRgAD+dhIZrX+IE6Ag6BOrSKwP1rRNN/SH9uv7aCEMn1koLTh6Qqjwv/\n5XRyztOem3VeWMTh5dzYvdY4jSE8PDVZ3jCiH/gZGN2OY1NMECf+l1IBVdU8\ndeWbrSKnh6MA0arvmDh5taZoqa011U1nPYfchlTs9U2ZcMaRQdjjstAAS1jy\nBmLnmoULIc/8YL4aMwYnYV1P/Gjk7o1SQaVvoeV6rcK7qbs6nP0PHAJaYGhF\nsKKM\r\n=rH2R\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAh5UZ6z6uv5Nj60Zn9qbrUdDy2rBPOfAYCEMobmb2oSAiByuroMCvQqljeXQsfAVJ0CuuUSn2p3tng7x7m1jE4ZsA=="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"_npmUser":{"name":"drboyce","email":"drboyce21@hotmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_1.0.0-beta.3_1568414289862_0.7726405653143502"},"_hasShrinkwrap":false},"1.0.0-beta.4":{"name":"@boostbank/stateful","version":"1.0.0-beta.4","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"cross-env":"^5.2.0","jest":"^25.0.0","jsdoc":"^3.6.3","uuid":"^3.3.3","@babel/cli":"^7.5.5","@babel/core":"^7.5.5","@babel/plugin-proposal-decorators":"^7.4.4","@babel/plugin-proposal-object-rest-spread":"^7.5.5","@babel/plugin-transform-react-display-name":"^7.2.0","@babel/plugin-transform-react-jsx":"^7.3.0","@babel/plugin-transform-runtime":"^7.5.5","@babel/preset-env":"^7.5.5","babel-jest":"^24.9.0"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","readme":"## About\r\n\r\n> Stateful is a in-memory storage solution to keep state in your applications.\r\n\r\n## Installation\r\n\r\n```sh\r\nnpm install @boostbank/stateful --save\r\n```\r\n\r\n## React Examples\r\n\r\n[React Example](https://github.com/boostbank/react-stateful-example)\r\n\r\n## Creating a global store.\r\n\r\n```javascript\r\nconst {createStore} = require('@boostbank/stateful');\r\n\r\n// Initial state is something that can be passed in.\r\n// You can create a store with a max depth of rollback period.\r\n// This means you can create a max of how many states are retained to be rolled back.\r\n// This will allow you to keep memory more clear.\r\n// The default maxDepth is -1 (No depth). Any number <= 0 will have no depth.\r\n// KEEP IN MIND: That createStore can only be called once.\r\nconst withDefinedDepth = createStore({someStoreData: \"Some initial store data\"}, 10); // Depth of 10. (Saves up to 10 versions)\r\nconst unlimitedDepth = createStore({someStoreData: \"Some initial store data\"}, -1); // Unlimited depth (Unlimited versions)\r\nconst default = createStore(); // Empty store object {} and No depth. (No version saving)\r\n```\r\n\r\n## Subscribing to a store\r\n\r\n```javascript\r\nconst { subscribe } = require(\"@boostbank/stateful\");\r\n\r\n// Subscribe is a listener handler for when the store gets changed.\r\n// It will pass the current state in stateful. Do not modify it here.\r\nsubscribe(store => {\r\n  console.log(store);\r\n});\r\n```\r\n\r\n## Modifying a store\r\n\r\n> You may only modify state by the modify method.\r\n\r\n```javascript\r\nconst { modify } = require(\"@boostbank/stateful\");\r\n// Calling modify on the Stateful store will ask for a lambda.\r\n// The lambda will pass a copy of the current state (so you don't have to keep track of immutability)\r\n// You modify the state and return it.\r\nmodify(store => {\r\n  store.modifyObject = {\r\n    message: \"Added an object with with some data\"\r\n  };\r\n  return store;\r\n});\r\n```\r\n\r\n> You can also just override the stores current state as well.\r\n\r\n```javascript\r\nmodify(store => {\r\n  return {data: \"A complete new object\"};\r\n});\r\n```\r\n\r\n> Override and merge.\r\n\r\n```javascript\r\nmodify(store => {\r\n  // You can use spreading, or Object.assign();\r\n  return {...store, data: \"A complete new object\"};\r\n});\r\n```\r\n\r\n## Async modify\r\n\r\n> An async modify is a way for you to get a callback when a particular listener is updated.\r\n\r\n```javascript\r\nconst { subscribe } = require(\"@boostbank/stateful\");\r\n\r\n// For example a React Component.\r\nconst who = {};\r\n\r\n// Subscribe as normal but with an added parameter.\r\nsubscribe((store, modified) => {\r\n  console.log(store);\r\n\r\n  // Updated something async.\r\n  // Usually this will be done inside a component and you can do this.setState(store, ()=>{});\r\n  who.setState(store, ()=>{\r\n    // Notify which object was modified.\r\n    // In this scenario some React component.\r\n    /* If the component that originally modified the store is the component that was updated just now.\r\n    *   Then it will notify the component when the modification completed.\r\n    *  else\r\n    *   Then the callback that you provide in the modifyAsync method wont be called. See next section.\r\n    */\r\n    modified(who);\r\n  });\r\n});\r\n```\r\n\r\n> Modify and wait for the async callback.\r\n\r\n```javascript\r\n  // Somewhere in your React component.\r\n\r\n  // React import.\r\n  import { modifyAsync } from '@boostbank/stateful';\r\n\r\n  // Module imports\r\n  const { modifyAsync } = require(\"@boostbank/stateful\");\r\n\r\n  // Somewhere else in the component it modifies the store.\r\n  // The this keyword is referring to a React component (usually a class type)\r\n  // So who is modifying, then modification function thats passed, then the callback.\r\n  modifyAsync(this, store=>{\r\n    store.data = \"test\";\r\n    return store;\r\n  }, ()=>{\r\n    // The callback that gets called if you are the original modifier.\r\n    // Make an API Call.\r\n    axios.get(...);\r\n  });\r\n\r\n```\r\n> This will become more apparent, in `react-stateful` and in your `React` apps;\r\n\r\n## Rolling back a store\r\n\r\n> Rolling back the state will do exactly what you think it will.\r\n\r\n> It will take the current state and push it off the stack and rollback to the previous.\r\n\r\n> You can rollback until you reach the first state.\r\n\r\n```javascript\r\nconst { rollback } = require(\"@boostbank/stateful\");\r\n\r\nrollback();\r\n```\r\n\r\n## Rolling back a store async.\r\n\r\n```javascript\r\nconst { rollbackAsync } = require(\"@boostbank/stateful\");\r\n\r\nconst who = {};\r\n\r\n// Same idea as modifyAsync;\r\nrollbackAsync(who, ()=>{\r\n  // The async callback.\r\n});\r\n```\r\n\r\n## Substores\r\n> Substores are a full version of a stateful store, but you can make smaller stores to hold a subset of data.\r\n\r\n\r\n## Creating a substore\r\n\r\n```javascript\r\nconst { createSubStore } = require(\"@boostbank/stateful\");\r\n\r\n// Optional return data.\r\nconst subStore = createSubStore(\"test\");\r\n// Without return.\r\ncreateSubStore(\"test\");\r\n\r\n// With default state\r\n// Optional return data.\r\nconst subStore = createSubStore(\"test\", {someData: \"test\"});\r\n// Without return.\r\ncreateSubStore(\"test\", {someData: \"test\"});\r\n```\r\n\r\n## Deleting a substore\r\n\r\n```javascript\r\nconst { deleteSubStore } = require(\"@boostbank/stateful\");\r\n\r\ndeleteSubStore(\"test\");\r\n```\r\n\r\n## Modifying a substore\r\n\r\n> Using the example from the previous entry we created a subStore with \r\n\r\n> The same rules apply as previously seen in modifying a stores state.\r\n\r\n```javascript\r\nconst { subModify } = require(\"@boostbank/stateful\");\r\n\r\n// Modify by the subStore by the uid you gave it. in this case we did test.\r\nsubModify(\"test\", store=>{\r\n  // Modify normally.\r\n\r\n  store.someData = \"newData\";\r\n  return store;\r\n});\r\n\r\n```\r\n\r\n## Lookup syntax.\r\n\r\n> Using substores and typing a string is annoying.\r\n>\r\n> So you can us this syntax to lookup a substore id if its javascript json friendly.\r\n\r\n```javascript\r\n\r\nconst { subModify, lookup } = require(\"@boostbank/stateful\");\r\n\r\n  // Using a substore helper method with lookup.\r\nsubModify(lookup().test, store=>{\r\n  store.someData = \"newData\";\r\n  return store;\r\n});\r\n\r\n```\r\n\r\n> If the lookup id string isn't friendly I guess you could use the [] syntax on an object.\r\n>\r\n> This is quite unnecessary because if you type the string, you might as well just use the string you typed.\r\n\r\n```javascript\r\n// Just more work but here this is.\r\nsubModify(lookup().[\"1\"], store=>{\r\n  store.someData = \"newData\";\r\n  return store;\r\n});\r\n\r\n```\r\n\r\n## Modifying a substore async\r\n\r\n> Same rules apply as previously seen in modifying a stores data.\r\n\r\n```javascript\r\nconst { subModifyAsync } = require(\"@boostbank/stateful\");\r\n\r\nconst who = {};\r\n\r\nsubModifyAsync(who, \"test\", store=>{\r\n  store.someData = \"test\";\r\n  return store;\r\n}, ()=>{\r\n  // Callback\r\n});\r\n\r\n```\r\n\r\n> Again this these async features are really meant to support React, but it could be used for anything that is async.\r\n\r\n## Rolling back a substore\r\n\r\n> Same rules apply as the previous rollback shown.\r\n\r\n```javascript\r\nconst { subRollback } = require(\"@boostbank/stateful\");\r\n\r\nsubRollback(\"test\");\r\n```\r\n\r\n## Rolling back a substore async\r\n\r\n```javascript\r\nconst { subRollbackAsync } = require(\"@boostbank/stateful\");\r\n\r\nconst who = {};\r\n\r\n// Same idea as rollbackAsync;\r\nsubRollbackAsync(who, \"test\", ()=>{\r\n  // The async callback.\r\n});\r\n```","readmeFilename":"readme.md","gitHead":"97d34361f90d6c29563fd0fe46a1646752bd58f9","_id":"@boostbank/stateful@1.0.0-beta.4","_nodeVersion":"10.16.3","_npmVersion":"6.11.3","dist":{"integrity":"sha512-FE/oVMKw2iqaMdGD6nIDM+QwZnigFI76GfVssIIsVcH7lVIbI2ABSyR2hC3yzTaRlL6+UeWOamNsjNgXXNedtQ==","shasum":"d26fe3e0a65e520c81908e7b743e2232babbad88","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-1.0.0-beta.4.tgz","fileCount":6,"unpackedSize":19958,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdfByMCRA9TVsSAnZWagAANeMP/13TmPR/tgfZOLQbaCK4\nv6JVpCd2TGYA4/L/MtlPw5vyLnaF3JJTBjMni6w/trmIaGnT7N+Xe8zVwyzV\nsWljtQhxs/Sm5otQXRwyQQpFKMRxjFKpMVxLmFLkrEgx7J5RRjmVoA01UTe6\nkcPKlIwtzKUcav6IF7qVKLM2PH1pMpmPK3bpPzUGOlYEfAV9Fc+kITXFCqm+\nbnCnaKQ0VIqt5++KehM5yrFudIH4nx6hZmB6dt8C5y05NlqiIcUFYPXQb3Vv\nmMiL4gFml2xL2WUamOGniFXdVjgsddtc8rJcHGUzAMAC7pPBsF95dp3Srra9\njYZfApTPX3tAzNg3cqTTwx9U3ZPRJz+NpA7LvCZB/HfVDn+3GuIW0il4+X6n\n8Vk/wHJFbilCU08qcgoD0U6iBz2EFwk+1BhecYJhtSkkcs7s4kcrRjtAwcxc\nbPmijJr6B1V+528vok2t/Pf4WIcvPxFnaIOfh0tUlhBoMBKxLU/GQ2QADL+d\nKwLDvnj/7pSD/MDVlBrz9jP6EPknc9wDQTcYpUMu9q0BW7mJwBa4stBtZfMp\nTrBAxfhr+E0x2MNQQHOs42DcnuE+AyJ6kHzGdoOfN4hrgMf7PP7cBFyyvXHy\nT38ldLCYPcCOxk0cRZThrBxRMpv/MhloAPxTI6fmyvSuajzI/b16n3N7YcHF\nYgAz\r\n=zNXq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHagrFPdBcAPmh0EbKTPAxQ2NceP6Tmdn1OMl7n4rau5AiEA6b2KZQR2TndNfMfdC7i3NDumEW/raUPJJINSuH9LFPs="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"_npmUser":{"name":"drboyce","email":"drboyce21@hotmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_1.0.0-beta.4_1568414859903_0.37820947019565887"},"_hasShrinkwrap":false},"1.0.0":{"name":"@boostbank/stateful","version":"1.0.0","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"cross-env":"^5.2.0","jest":"^25.0.0","jsdoc":"^3.6.3","uuid":"^3.3.3","@babel/cli":"^7.5.5","@babel/core":"^7.5.5","@babel/plugin-proposal-decorators":"^7.4.4","@babel/plugin-proposal-object-rest-spread":"^7.5.5","@babel/plugin-transform-react-display-name":"^7.2.0","@babel/plugin-transform-react-jsx":"^7.3.0","@babel/plugin-transform-runtime":"^7.5.5","@babel/preset-env":"^7.5.5","babel-jest":"^24.9.0"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","gitHead":"8f02bf8819a7a6e00e9ab97f5bcd010907812261","_id":"@boostbank/stateful@1.0.0","_nodeVersion":"10.16.3","_npmVersion":"6.11.3","dist":{"integrity":"sha512-y6htny44ulTyljfkYy4Or4306ClLG46P3iQH5RV05RP9sgv9DcZHVWTGZnm02CXnJofN2bpXUMIW6QWZJda77g==","shasum":"d4b0baa5072693f0e2a38777d0e436eecdcfbee1","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-1.0.0.tgz","fileCount":6,"unpackedSize":19926,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdfCGmCRA9TVsSAnZWagAA9pAP/Rrll15MpDcycIEnhYLI\nEcc16/tWLk2/N4wDV4qmmpqoKt1o1bsf+USa4ARSTJbptY7EB6BZl/U2TKnB\nV+nNzNpIdgjC5QXT95hh18X4za3TLGI0cFidKZoTkQQ6BjwGer5STk+cs2X4\nA422qiarFk9yVWPQKqQLgRRcQwmZg7+y64jW0kDQtadsGcy71k8vOzh/wQ6P\n3fDUxYcQMPDBN8masx/1vSh6zsXNyLJC3wfF59upZ+FsQTBHK4TBNiUZyMV9\n8tBI1eiplCau2MG2Bo29xM0AOeh7yLxmf+UN0M2Mzh3I5CTbAQ5YoXx+/r0z\nEpPIqLtApZggCvF6LGRKB8a9LTLed+giDcmYDRHbYf9ZkrpV3SOmkKN0TVff\ngDw/nnV4AM94785NEtIpPtKxqrr0w3YxCvSJNjRa0477c2FaColMGud3ltSl\nvABC3uQGmip3SNLs1CS8Q0igG1TsxomAQ/l4lbLsmElzdyClhJS9W27Byiho\nGCOgESppU338NI46qJ/S9Om0ySQcinKFuifSxccDgN0y4eD3cLsF5okPeclq\nIQVTLxeEMlMVPq1hqsn+lOxY3SbXc//s5H7nX6ER4ua2vjV8ofs/XIJlVBcY\nEsYCPnStq7Xe+4/Zph0urx/Alnm2TcWeuL6dXKrQmheJgNZO8j+Jb/PAPDJN\nG+sY\r\n=fCWR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCSFxEepIZvYtFLb2hwxIS7lfeRxJfHIFLVtdSrWZ0O1gIhAI8TbMygPisUiJXQl0QFHUGvo6rJoouLPfQ7DnYfnkuG"}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"_npmUser":{"name":"drboyce","email":"drboyce21@hotmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_1.0.0_1568416165219_0.06595739807995549"},"_hasShrinkwrap":false},"1.0.1":{"name":"@boostbank/stateful","version":"1.0.1","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"cross-env":"^5.2.0","jest":"^25.0.0","jsdoc":"^3.6.3","uuid":"^3.3.3","@babel/cli":"^7.5.5","@babel/core":"^7.5.5","@babel/plugin-proposal-decorators":"^7.4.4","@babel/plugin-proposal-object-rest-spread":"^7.5.5","@babel/plugin-transform-react-display-name":"^7.2.0","@babel/plugin-transform-react-jsx":"^7.3.0","@babel/plugin-transform-runtime":"^7.5.5","@babel/preset-env":"^7.5.5","babel-jest":"^24.9.0"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","gitHead":"5ae8300fd3d5bda5ea50e14499ac6dade26925e1","_id":"@boostbank/stateful@1.0.1","_nodeVersion":"10.16.3","_npmVersion":"6.11.3","dist":{"integrity":"sha512-3QOeCMKafgq/f5KKqzEe8B/mpJ8ti4GwIkfJMiZxRoR419cRcRPqfKhCIqmsK8OjADFFMd20QSU4L5PcdSL0Xw==","shasum":"9cba08703bb2396555699d2de7643f621ffd3a55","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-1.0.1.tgz","fileCount":7,"unpackedSize":20521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/qO9CRA9TVsSAnZWagAAM8IP+QGDLLAuLlolbR/YzExb\nG7Q+DbSz/ysbUBPPzUwCbv1A4t69SDk4UqaQTrJu+loWcdz1ZApvNAhtLiG8\nsksrgeL5uN9XMJUJHGxnIfrkajIBYBqus2P9LZkxD+lVv0CFf4jC6z6RJlGk\nrlQ//GzcOPB83D9uUaB+923zef3J7FfYo6rKwtXv30yVc8a8yoKu+o7u2cr+\n2TsEoVPMZgyhVgT3AQG671wdM4JLdNqjertTyxlgnwuheamD6RxuSm5y32US\n79GXfApGI59uHjGWEkC1ypA5Bpwi4atEl5lIeFteN85/BeOUKcNkpIGPtXVm\n8teu6nSmQocpFZbD/AD6EJVfknvoTCRuWmJyOdJXIxRV+VT72rx6o2FuKnEn\nOZpLFXfDwy702mEd7tLDPTUaB3efyaliAJM89lhxlpc4GKdle8qZnptrC1HF\nqGUtmS+AYjCjyhYO1AR5d/RKW2vXo7lI78Bynx1fWdTQLL/3EulUtUVkDSsj\ni9O5/kL87rNcglEQVW4SVAtSfN9hEEY/FmCaRgy/rX2q3qg3PswjXnGHetlY\nPAWmQqtgG40HmrJZ8GWAm+5+V67Q3Q6jJg5W6nMkDMjA/dh6M311N0sxI8pE\n2H8ZFtXlPxgyX5SpG2cO3cyNNjYUoKg5HJIlbNQNUMEo1ETwK7EwlJG+AnRC\n01Z0\r\n=x1Wa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICcJ0PcP9TUWNlOcrmG2NW7PPqt6E63qVQF3QAPpaSNhAiB1ppdj/4rnCZacJV3DmcgNEwujg53SesvxMWzLWUJgJA=="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"_npmUser":{"name":"drboyce","email":"drboyce21@hotmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_1.0.1_1576969148644_0.03401252311841785"},"_hasShrinkwrap":false},"1.0.2":{"name":"@boostbank/stateful","version":"1.0.2","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"cross-env":"^5.2.0","jest":"^25.0.0","jsdoc":"^3.6.3","uuid":"^3.3.3","@babel/cli":"^7.5.5","@babel/core":"^7.5.5","@babel/plugin-proposal-decorators":"^7.4.4","@babel/plugin-proposal-object-rest-spread":"^7.5.5","@babel/plugin-transform-react-display-name":"^7.2.0","@babel/plugin-transform-react-jsx":"^7.3.0","@babel/plugin-transform-runtime":"^7.5.5","@babel/preset-env":"^7.5.5","babel-jest":"^24.9.0"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","gitHead":"89c779b17e5d21a53981c68810b55ef7ce0a2faf","_id":"@boostbank/stateful@1.0.2","_nodeVersion":"10.16.3","_npmVersion":"6.13.4","dist":{"integrity":"sha512-dpfA1Fh5JGiwsHIV0BZ5UyeoNWxIZIiHXWHCH3jP15Jose8e9uMPnHQYwh1+Do8/588NyP9/0M7angogF7JAiQ==","shasum":"f924095f188b7b9e4be39474ce8f6e2074fe3a04","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-1.0.2.tgz","fileCount":7,"unpackedSize":20536,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeHkB/CRA9TVsSAnZWagAAddMQAIXwoYH+B9aVYeuh3g2f\nMpVdyYBqbN6LhWc5OFNSxaLvHjX3Jfbl26b5yYDJwE2bLVu58XFUqNVlfOE2\nhUv/XPCame6VOhFTK5eLGEyYJxkdEgbV/zy89FsELXW4olEWWEI/t4C/YmKc\nwepRNfPrKa/2dwQYCFYbuXZrPr2G7YfnMhJVUQwiVFFp+WCn8QnMBpjaQpQP\nhGVAiMNteXoTfcLWgnD+Jmhl8ED/RCNceMjUbVhwUqkUTmmBTbqOvtJa4uEb\nHGBw13aZKqOxQea292ey0ITIiIMLBn+Xw8y1RJWptx9WS1EVOBq8NLXCW1SR\n3m7sC6Mhhq8fuul7P9omIOxXoMSjHzFEe7DmojpT+RvfnQcvqE/ZljG0fW0E\nRg9vSnUqUtmauHNcadyN4t34qix7Eg93G1I/WIqPKWSxnAP/Hk+ALhhYru8m\nc+qsDhOHW++i5Z+Q/T9QZk31w7wQSm/vqSawZ2J2/3k8VN8qGgKrhQfwTXQ4\nHdRCg+JIn2A7Gq97rmNMz44JeGI8zkmNV1IzTWDwli0Oo/kDAklfRCHDYYPZ\nEGVMrghji/htP8iFiNU2DTpBvg6xzUGeQszSTwAXjI8/nV/53C6Kg055o6Dn\nnl2ElI9HZYnrIpoY1X28mdksDwPOUFLea4/1IYVFgvuGsVBBEM5QKCYpmwVb\nG6/4\r\n=Mm36\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDUEFgvL8jtWRXFDvXq6pTakL6jUdId266gD5kVqroihwIgav8eRmxLyKW3/COWrIagKz5FsRAjakw7Dx+GPwaytFE="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"_npmUser":{"name":"drboyce","email":"drboyce21@hotmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_1.0.2_1579040895254_0.5891884745133422"},"_hasShrinkwrap":false},"1.0.3":{"name":"@boostbank/stateful","version":"1.0.3","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib && jsdoc -r src/ -t node_modules/tsd-jsdoc/dist -d lib","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"@babel/cli":"^7.5.5","@babel/core":"^7.5.5","@babel/plugin-proposal-decorators":"^7.4.4","@babel/plugin-proposal-object-rest-spread":"^7.5.5","@babel/plugin-transform-react-display-name":"^7.2.0","@babel/plugin-transform-react-jsx":"^7.3.0","@babel/plugin-transform-runtime":"^7.5.5","@babel/preset-env":"^7.5.5","babel-jest":"^24.9.0","cross-env":"^5.2.0","jest":"^25.0.0","jsdoc":"^3.6.3","tsd-jsdoc":"^2.4.0","uuid":"^3.3.3"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","gitHead":"88b5fae05a006e1b0c8c6888e9c7c7df8c7f76a8","_id":"@boostbank/stateful@1.0.3","_nodeVersion":"10.16.3","_npmVersion":"6.13.4","dist":{"integrity":"sha512-A4Yexn+fuND1iUMhJ72Otkeqsdozw9iTvAmOWbtZzVxuaP3ur4MjGRynBGA9UmyR/onxYTs2edEkLz1m5Y6FRg==","shasum":"d7e9ba64716c997726342a66166aaabafc580aaf","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-1.0.3.tgz","fileCount":8,"unpackedSize":36393,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKMlRCRA9TVsSAnZWagAAocAP/3YrXCj9CTOTJ4CuxiCK\n5xoPep8ATVMRK8JB0qLHu7bc2MMHM336x4vx4OIMwXNPdR9JbPZBZx/AUns0\nWACNlJ7W/j/UtkpgXRD75Gg9YsZL+tN5+31rE/tI6rBmG3fH+b0HNg67ZAdb\ntGYxzthQRJeg7+9pkXFQzq1t25K42UiExMVQWCGRBRAyj56evIxvVXGnTdNL\n9P8eB19E23JwpJxF/b0XDIahX4hl1g1HN+5+0uCwjlXnYrg8abQUCyyYmyya\nhjL49UJb8UuKDkCNeqAY6/9zp+zk19Z2PQ+T/AL23AZM1/9Nf0IGA69L7ao5\ni5coSC6iKcyNXz1zdXPyuIBtINOSepkL98lzZ5saEanVGeaG9j5/axzjdVQ9\nWlsz1YI7ySxKVcBb9iULZqKAyPUSbRIJ41FUGsyTuaFTbJYZF6LJ/ZdEKrYk\ncfqnFEcY9NJzVtCDmiC3pLX6lIhtNIIZgSBaPeNSzHwLHe+v8Ki5Ean+QZ6j\nbjuWS5odlQXOavaceyUhtxfhcJfNpR/FZn+iCspT8FQvzbDcz7uOsmOCzjAa\nfH9Qjwc5fpfItHkvzjKF5pDTu7NarHEhSyhdPY/FoeSQOwk+BnQlCmH6JqO9\nljHzCMZKexv40p8KrvM+dwtUIzKjQzMUf47lO2Ce9sOzeDK5+2lhHag0F0p7\nJ4FX\r\n=gHX6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH1ndf87tp6l1KC4mhw7rk8YvsxOeHdDC7VGySUBp2ekAiEAqgGrf5mEwLhXoYSMTcN5pWpjgbL/7eTb5qB6CFllA3Q="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"_npmUser":{"name":"drboyce","email":"drboyce21@hotmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_1.0.3_1579731280921_0.32969427798065"},"_hasShrinkwrap":false},"1.0.4":{"name":"@boostbank/stateful","version":"1.0.4","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib && jsdoc -r src/ -t node_modules/tsd-jsdoc/dist -d lib","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"@babel/cli":"^7.5.5","@babel/core":"^7.5.5","@babel/plugin-proposal-decorators":"^7.4.4","@babel/plugin-proposal-object-rest-spread":"^7.5.5","@babel/plugin-transform-react-display-name":"^7.2.0","@babel/plugin-transform-react-jsx":"^7.3.0","@babel/plugin-transform-runtime":"^7.5.5","@babel/preset-env":"^7.5.5","babel-jest":"^24.9.0","cross-env":"^5.2.0","jest":"^25.0.0","jsdoc":"^3.6.3","tsd-jsdoc":"^2.4.0","uuid":"^3.3.3"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","gitHead":"03dba3f94e924e3e69d610b2de6174ea36e3563f","_id":"@boostbank/stateful@1.0.4","_nodeVersion":"10.16.3","_npmVersion":"6.13.4","dist":{"integrity":"sha512-LprVaUTuvABus1rKxfMFhSRRsl8zSNREkQFcTYfuviBm9KonosO1GZy5+B/ofZcFCFvZpo9JP2mBT9vWb1I8Hw==","shasum":"2a1876398f1c8c909261ff4856b2367b81caf641","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-1.0.4.tgz","fileCount":8,"unpackedSize":36403,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKNITCRA9TVsSAnZWagAAN8AP/ixPSXh4/sqAKNt+0OEY\nk7X2VGctUnigxYOqj0Za7zqOCnfWUZeauZz7wLPP7IJyynLbXDX1uzngv4ly\nszgKilFTql4RWm/7YVAVZnEaQuHKCe+kHXy+bgqt+DatSShPbTX0RZfWFMvT\nGftqjVy7YoRymmZNCeCFreEXBPGwrP1ZkG4MeJCfj8xlcPyOY6xGrL7MFR7g\nqBPldjBCfwcPlljuSm6n42i6GDTsqpEuCagBUb0zPIznqFhzgrg3trh0O3Oc\n25UDDZo6FMfVGIqgpk8LPTt/51WxUYB2dl6okpoTF6SgVW+jIa01/xHvYE8N\n1FSDy5gAiXaUku9lV1nOqjQqcLBNPcO9I+8HdPuciD2OOm/D2rltnfGTPBAi\nzihEa9LVL4zHGaYiMrfBnvKO1ceXjK8+G7uOf58AYDGql8MKQvo5nrvP6x6I\nBC9IuItfcv0Pk2DEcAa4/5487fMuqDebtytpW6iY/qFdjtLNLB6A9Ptla9Jy\n0vEBMEkH0GF/2MmKwrnUEXeTK2TAp3/zCa++1icf54DLeidcSFLHECGU+fvY\n9jiXyyke9dVNEckI3jvx5xHsRs6mqn13YKR3KBDNnQDV1Efdnoofo/t9jJ0y\nKuStgDame+AoSUEB3rNbBg1fOkDNVxeWXJVUEE1dUDOFBTLsMI6I+TIscDxy\npc0f\r\n=6lZu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCvpGxacLutCAZbNr1/PgKpH4BpG67nS8nGYC/qq/yY+wIgMgdERGr15fLwYrHC1vJA5rQKKvdQHKco278Ody6lvfA="}]},"maintainers":[{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"},{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"}],"_npmUser":{"name":"drboyce","email":"drboyce21@hotmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_1.0.4_1579733523260_0.6434123665514455"},"_hasShrinkwrap":false},"1.0.5":{"name":"@boostbank/stateful","version":"1.0.5","description":"Global State Management JS","main":"lib/index.js","scripts":{"test":"jest --env=jsdom --coverage","test:no-coverage":"jest --env=jsdom","docs":"jsdoc src -r -d lib/docs","build":"babel src/ -d lib && jsdoc -r src/ -t node_modules/tsd-jsdoc/dist -d lib","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"devDependencies":{"@babel/cli":"^7.12.1","@babel/core":"^7.12.3","@babel/plugin-proposal-decorators":"^7.12.1","@babel/plugin-proposal-object-rest-spread":"^7.12.1","@babel/plugin-transform-react-display-name":"^7.12.1","@babel/plugin-transform-react-jsx":"^7.12.1","@babel/plugin-transform-runtime":"^7.12.1","@babel/preset-env":"^7.12.1","babel-jest":"^24.9.0","cross-env":"^5.2.1","jest":"^25.5.4","jsdoc":"^3.6.6","tsd-jsdoc":"^2.5.0","uuid":"^3.4.0"},"author":{"name":"boostbank"},"license":"MIT","keywords":["boostbank","stateful"],"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"homepage":"https://github.com/boostbank/stateful#readme","gitHead":"275a222c2fdc216f8d2653f5a1ee293d763e4bd4","_id":"@boostbank/stateful@1.0.5","_nodeVersion":"10.16.3","_npmVersion":"6.14.8","dist":{"integrity":"sha512-FeOtdjY63BQqFg4ReV8ecyG/v+AJFfMowizytdW3GcwG2hVXe1kpESFWe6pDFRae1A1o+PSomMVyplOia8z4yQ==","shasum":"5d14e9a94bfdd7886f936cadb3fefc23c4e81a2e","tarball":"https://registry.npmjs.org/@boostbank/stateful/-/stateful-1.0.5.tgz","fileCount":8,"unpackedSize":35882,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfltXKCRA9TVsSAnZWagAAXfEP/32KwHRd5vRc9URx580H\nAD8BwK37EkjunePxT72/IOglvumyCBOcdPJdYGEKVyQXZ2OVeIQgcP51RPAG\nDBbfuI3DLJmZ3MjPCgvEYbrsgOzlo+YceF1G2sHwjAyDUJ8DDBn/4iNs4o1g\n5HTk1YC3lXynuuMzVw2mk5OPZLo8ucJiaty15cgG/AcA5bxyHM1H7heD/L6p\nz3GbMEp0eAFq6RwNqc1NKhP+V49ueJBYb/gTZQgaB2/A9tOS30IXqNP1b9zO\ntMxfGkO87Hig19a39xMeq/qGQn5f10IcVn1PwwX3mBo/ipmriIh3IRVs7VrM\n7T9psF0DArU6UZUWMTXL5L1whKpR0/vaVsJIQL1FNp/NHnxa1KL+SA0l2ZHM\nvyd02h0XYfq5wr5Gj2YxwfnEk0jyQNSmKVu6phXBFVFnDJkxE4ofQvEi8gZ7\nJ4P2ek3p6e2TQgbZS4Dx2+g4LgiT8RWsJK/m9hLg9/+rQRJhKorr12xjVbY+\nOhdJ1dn24veMtaYZ7K08GFCdPoPTe4Kki8gtATj5BMdDQ/ucPNYwgEASZBAe\ntFUde1vnEiyN9eE+lfDImTsUzDOKDuzopD4quTaOOOGhjINVLRhn6bpgg1CC\naNuUNFUpz5Pd+kE5VN6Y1PRKftiA9ievYLL29UITqJHFpb/9IYZX2UgwkOy7\nKOc7\r\n=mspp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICb74N6N1CaeHSd9p79a4BIXzmebKecYFJovJH4b8fjuAiBuzn2Xtqzy8QaKBCXjiIInVpjqedEY6YxMSfqLQon7Mw=="}]},"maintainers":[{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"},{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"}],"_npmUser":{"name":"drboyce","email":"drboyce21@hotmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stateful_1.0.5_1603720650015_0.5832430262442629"},"_hasShrinkwrap":false}},"time":{"created":"2018-04-28T01:51:51.513Z","0.1.0":"2018-04-28T01:51:51.706Z","modified":"2022-06-12T15:25:49.037Z","0.1.1":"2018-04-28T02:01:33.085Z","0.1.11":"2018-04-28T02:13:45.470Z","0.1.12":"2018-04-28T02:56:15.539Z","0.1.13":"2018-04-28T06:11:34.201Z","0.1.14":"2018-04-29T17:59:09.029Z","0.1.15":"2018-04-29T18:41:55.996Z","0.1.16":"2018-05-01T16:23:46.222Z","0.1.17":"2018-05-02T04:52:12.239Z","0.1.18":"2018-05-02T16:03:09.017Z","0.1.19":"2018-05-02T16:05:16.187Z","0.1.20":"2018-05-19T03:38:02.141Z","0.1.21":"2018-05-19T04:23:37.860Z","0.1.22":"2018-05-19T04:47:53.609Z","0.1.23":"2018-05-19T05:40:45.697Z","0.1.24":"2019-03-14T00:21:57.459Z","0.1.25":"2019-04-24T18:38:51.678Z","0.1.26":"2019-04-24T18:49:20.128Z","0.1.27":"2019-04-24T19:34:58.678Z","0.1.28":"2019-04-24T19:52:53.398Z","0.1.29":"2019-04-24T20:10:34.015Z","0.1.30":"2019-05-28T14:39:44.711Z","2.0.0":"2019-08-31T07:56:08.572Z","2.0.0-beta.0":"2019-08-31T07:57:55.077Z","2.0.0-beta.1":"2019-08-31T08:49:13.669Z","1.0.0-beta.0":"2019-09-13T19:29:05.775Z","1.0.0-beta.1":"2019-09-13T19:32:44.380Z","1.0.0-beta.2":"2019-09-13T22:15:29.866Z","1.0.0-beta.3":"2019-09-13T22:38:09.984Z","1.0.0-beta.4":"2019-09-13T22:47:40.030Z","1.0.0":"2019-09-13T23:09:25.394Z","1.0.1":"2019-12-21T22:59:08.778Z","1.0.2":"2020-01-14T22:28:15.381Z","1.0.3":"2020-01-22T22:14:41.025Z","1.0.4":"2020-01-22T22:52:03.389Z","1.0.5":"2020-10-26T13:57:30.141Z"},"maintainers":[{"name":"dbteku","email":"dbteku@hotmail.com"},{"name":"drboyce","email":"drboyce21@hotmail.com"},{"name":"dboyce","email":"Dallin.Boyce@coxautoinc.com"}],"description":"Global State Management JS","homepage":"https://github.com/boostbank/stateful#readme","repository":{"type":"git","url":"git+https://github.com/boostbank/stateful.git"},"author":{"name":"boostbank"},"bugs":{"url":"https://github.com/boostbank/stateful/issues"},"license":"MIT","readme":"## About\r\n\r\n> Stateful is a in-memory storage solution to keep state in your applications.\r\n\r\n## Installation\r\n\r\n```sh\r\nnpm install @boostbank/stateful --save\r\n```\r\n\r\n## React Examples\r\n\r\n[React Example](https://github.com/boostbank/react-stateful-example)\r\n\r\n## Creating a global store.\r\n\r\n```javascript\r\nconst {createStore} = require('@boostbank/stateful');\r\n\r\n// Initial state is something that can be passed in.\r\n// You can create a store with a max depth of rollback period.\r\n// This means you can create a max of how many states are retained to be rolled back.\r\n// This will allow you to keep memory more clear.\r\n// The default maxDepth is 0; Unlimited depth is -1;\r\n// KEEP IN MIND: That createStore can only be called once.\r\nconst withDefinedDepth = createStore({someStoreData: \"Some initial store data\"}, 10); // Depth of 10. (Saves up to 10 versions)\r\nconst unlimitedDepth = createStore({someStoreData: \"Some initial store data\"}, -1); // Unlimited depth (Unlimited versions)\r\nconst default = createStore(); // Empty store object {} and No depth. (No version saving)\r\n```\r\n\r\n## Subscribing to a store\r\n\r\n```javascript\r\nconst { subscribe } = require(\"@boostbank/stateful\");\r\n\r\n// Subscribe is a listener handler for when the store gets changed.\r\n// It will pass the current state in stateful. Do not modify it here.\r\nsubscribe(store => {\r\n  console.log(store);\r\n});\r\n```\r\n\r\n## Modifying a store\r\n\r\n> You may only modify state by the modify method.\r\n\r\n```javascript\r\nconst { modify } = require(\"@boostbank/stateful\");\r\n// Calling modify on the Stateful store will ask for a lambda.\r\n// The lambda will pass a copy of the current state (so you don't have to keep track of immutability)\r\n// You modify the state and return it.\r\nmodify(store => {\r\n  store.modifyObject = {\r\n    message: \"Added an object with with some data\"\r\n  };\r\n  return store;\r\n});\r\n```\r\n\r\n> You can also just override the stores current state as well.\r\n\r\n```javascript\r\nmodify(store => {\r\n  return {data: \"A complete new object\"};\r\n});\r\n```\r\n\r\n> Override and merge.\r\n\r\n```javascript\r\nmodify(store => {\r\n  // You can use spreading, or Object.assign();\r\n  return {...store, data: \"A complete new object\"};\r\n});\r\n```\r\n\r\n## Async modify\r\n\r\n> An async modify is a way for you to get a callback when a particular listener is updated.\r\n\r\n```javascript\r\nconst { subscribe } = require(\"@boostbank/stateful\");\r\n\r\n// For example a React Component.\r\nconst who = {};\r\n\r\n// Subscribe as normal but with an added parameter.\r\nsubscribe((store, modified) => {\r\n  console.log(store);\r\n\r\n  // Updated something async.\r\n  // Usually this will be done inside a component and you can do this.setState(store, ()=>{});\r\n  who.setState(store, ()=>{\r\n    // Notify which object was modified.\r\n    // In this scenario some React component.\r\n    /* If the component that originally modified the store is the component that was updated just now.\r\n    *   Then it will notify the component when the modification completed.\r\n    *  else\r\n    *   Then the callback that you provide in the modifyAsync method wont be called. See next section.\r\n    */\r\n    modified(who);\r\n  });\r\n});\r\n```\r\n\r\n> Modify and wait for the async callback.\r\n\r\n```javascript\r\n  // Somewhere in your React component.\r\n\r\n  // React import.\r\n  import { modifyAsync } from '@boostbank/stateful';\r\n\r\n  // Module imports\r\n  const { modifyAsync } = require(\"@boostbank/stateful\");\r\n\r\n  // Somewhere else in the component it modifies the store.\r\n  // The this keyword is referring to a React component (usually a class type)\r\n  // So who is modifying, then modification function thats passed, then the callback.\r\n  modifyAsync(this, store=>{\r\n    store.data = \"test\";\r\n    return store;\r\n  }, ()=>{\r\n    // The callback that gets called if you are the original modifier.\r\n    // Make an API Call.\r\n    axios.get(...);\r\n  });\r\n\r\n```\r\n> This will become more apparent, in `react-stateful` and in your `React` apps;\r\n\r\n## Rolling back a store\r\n\r\n> Rolling back the state will do exactly what you think it will.\r\n\r\n> It will take the current state and push it off the stack and rollback to the previous.\r\n\r\n> You can rollback until you reach the first state.\r\n\r\n```javascript\r\nconst { rollback } = require(\"@boostbank/stateful\");\r\n\r\nrollback();\r\n```\r\n\r\n## Rolling back a store async.\r\n\r\n```javascript\r\nconst { rollbackAsync } = require(\"@boostbank/stateful\");\r\n\r\nconst who = {};\r\n\r\n// Same idea as modifyAsync;\r\nrollbackAsync(who, ()=>{\r\n  // The async callback.\r\n});\r\n```\r\n\r\n## Substores\r\n> Substores are a full version of a stateful store, but you can make smaller stores to hold a subset of data.\r\n\r\n\r\n## Creating a substore\r\n\r\n```javascript\r\nconst { createSubStore } = require(\"@boostbank/stateful\");\r\n\r\n// Optional return data.\r\nconst subStore = createSubStore(\"test\");\r\n// Without return.\r\ncreateSubStore(\"test\");\r\n\r\n// With default state\r\n// Optional return data.\r\nconst subStore = createSubStore(\"test\", {someData: \"test\"});\r\n// Without return.\r\ncreateSubStore(\"test\", {someData: \"test\"});\r\n```\r\n\r\n## Deleting a substore\r\n\r\n```javascript\r\nconst { deleteSubStore } = require(\"@boostbank/stateful\");\r\n\r\ndeleteSubStore(\"test\");\r\n```\r\n\r\n## Modifying a substore\r\n\r\n> Using the example from the previous entry we created a subStore with \r\n\r\n> The same rules apply as previously seen in modifying a stores state.\r\n\r\n```javascript\r\nconst { subModify } = require(\"@boostbank/stateful\");\r\n\r\n// Modify by the subStore by the uid you gave it. in this case we did test.\r\nsubModify(\"test\", store=>{\r\n  // Modify normally.\r\n\r\n  store.someData = \"newData\";\r\n  return store;\r\n});\r\n\r\n```\r\n\r\n## Lookup syntax.\r\n\r\n> Using substores and typing a string is annoying.\r\n>\r\n> So you can us this syntax to lookup a substore id if its javascript json friendly.\r\n\r\n```javascript\r\n\r\nconst { subModify, lookup } = require(\"@boostbank/stateful\");\r\n\r\n  // Using a substore helper method with lookup.\r\nsubModify(lookup().test, store=>{\r\n  store.someData = \"newData\";\r\n  return store;\r\n});\r\n\r\n```\r\n\r\n> If the lookup id string isn't friendly I guess you could use the [] syntax on an object.\r\n>\r\n> This is quite unnecessary because if you type the string, you might as well just use the string you typed.\r\n\r\n```javascript\r\n// Just more work but here this is.\r\nsubModify(lookup().[\"1\"], store=>{\r\n  store.someData = \"newData\";\r\n  return store;\r\n});\r\n\r\n```\r\n\r\n## Modifying a substore async\r\n\r\n> Same rules apply as previously seen in modifying a stores data.\r\n\r\n```javascript\r\nconst { subModifyAsync } = require(\"@boostbank/stateful\");\r\n\r\nconst who = {};\r\n\r\nsubModifyAsync(who, \"test\", store=>{\r\n  store.someData = \"test\";\r\n  return store;\r\n}, ()=>{\r\n  // Callback\r\n});\r\n\r\n```\r\n\r\n> Again this these async features are really meant to support React, but it could be used for anything that is async.\r\n\r\n## Rolling back a substore\r\n\r\n> Same rules apply as the previous rollback shown.\r\n\r\n```javascript\r\nconst { subRollback } = require(\"@boostbank/stateful\");\r\n\r\nsubRollback(\"test\");\r\n```\r\n\r\n## Rolling back a substore async\r\n\r\n```javascript\r\nconst { subRollbackAsync } = require(\"@boostbank/stateful\");\r\n\r\nconst who = {};\r\n\r\n// Same idea as rollbackAsync;\r\nsubRollbackAsync(who, \"test\", ()=>{\r\n  // The async callback.\r\n});\r\n```","readmeFilename":"readme.md","keywords":["boostbank","stateful"]}