{"_id":"observable-slim","_rev":"21-855ca28da1b527c6f0441416d94df792","name":"observable-slim","dist-tags":{"latest":"0.2.2"},"versions":{"0.0.1":{"name":"observable-slim","version":"0.0.1","_id":"observable-slim@0.0.1","maintainers":[{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"}],"dist":{"shasum":"812a59dd1a4d24d1eaa96991099249b37f7b4c44","tarball":"https://registry.npmjs.org/observable-slim/-/observable-slim-0.0.1.tgz","fileCount":5,"integrity":"sha512-RyZPqQvCAve4fxqFsF8RSsnHFW7au433MuFAQwcGMqkI5O7q5I48uq5kZiuGAQYFeeGdItSJHvUXGhFIiUTgXQ==","signatures":[{"sig":"MEYCIQDzfsuyAL6aLCU/exE4pwANIvnUuEco7PkiSDV6cQiOkAIhAMiRqmjQmDA5sE9oDH9PfvygxinzYFbHb788ZmIvTZjU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28467},"main":"observable-slim.js","_from":".","_shasum":"812a59dd1a4d24d1eaa96991099249b37f7b4c44","gitHead":"4dfc33226d123aa6feef8ef8e36b37e0e0239557","scripts":{},"_npmUser":{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"},"_npmVersion":"2.14.7","description":"https://github.com/elliotnb/observable-slim","directories":{},"_nodeVersion":"4.2.3","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/observable-slim_0.0.1_1519324595071_0.629735193178947","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"observable-slim","version":"0.0.2","author":{"name":"ElliotNB"},"license":"MIT","_id":"observable-slim@0.0.2","maintainers":[{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"}],"homepage":"https://github.com/ElliotNB/observable-slim","bugs":{"url":"https://github.com/ElliotNB/observable-slim/issues"},"dist":{"shasum":"eb57e87ddd38396eb5e37af00c6ec6f8b4f21c59","tarball":"https://registry.npmjs.org/observable-slim/-/observable-slim-0.0.2.tgz","fileCount":10,"integrity":"sha512-x2bPJ/SsITAdus7SyMiF6qiHbm89ZsBe2QAro0TOjXRll4OUT+IUmtVwzdOdXj5OStG/MBv5yFhxbA9dyEisZw==","signatures":[{"sig":"MEQCIFGpFhxpG2rQsNtkRdaVjfiUd+D3jKQsjV65bxu6bZ6EAiB1Uu3WxjC2AHGZqLXWWsOtK7ohX/eDc1b7ChdQQaaVHg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63924},"main":"observable-slim.js","babel":{"presets":["es2015"]},"gitHead":"5626201b86e2ce7a1d6d8db7315bc95e129e8be7","_npmUser":{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"},"repository":{"url":"git+https://github.com/ElliotNB/observable-slim.git","type":"git"},"_npmVersion":"5.6.0","description":"Observable Slim is a singleton that utilizes ES6 Proxies to observe changes made to an object and any nested children of that object. It is intended to assist with state management and one-way data binding.","directories":{},"_nodeVersion":"8.11.1","_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","gulp":"^3.9.0","util":"^0.10.3","expect":"^22.4.3","gulp-if":"^2.0.2","babel-core":"^6.26.0","gulp-babel":"^7.0.1","gulp-mocha":"^5.0.0","gulp-rename":"^1.2.2","gulp-uglify":"^3.0.0","gulp-useref":"^3.1.5","babel-register":"^6.26.0","babel-preset-es2015":"^6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/observable-slim_0.0.2_1523304560836_0.7665022519878275","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"observable-slim","version":"0.0.3","author":{"name":"ElliotNB"},"license":"MIT","_id":"observable-slim@0.0.3","maintainers":[{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"}],"homepage":"https://github.com/ElliotNB/observable-slim","bugs":{"url":"https://github.com/ElliotNB/observable-slim/issues"},"dist":{"shasum":"d28a2edaa82477e8d0bade370f4cf0624da30bb9","tarball":"https://registry.npmjs.org/observable-slim/-/observable-slim-0.0.3.tgz","fileCount":11,"integrity":"sha512-Zz7qmC9dk7BEZvZ6YBWj3VfiwgvUscmaXSK8GAi3W+XvHnzX5X+Ie2CZStlB2GTqO5SRY7W+0bp4BJzGH5Ywzg==","signatures":[{"sig":"MEUCIHyBSn7M5747fISi48YWfR59dihhea5o0KfWjD5xsO4PAiEA5OrPXKyQ8EL8HvD9tdn3Y8UuyTwzDezz/JY3RYUE5Ek=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":66169,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa37E5CRA9TVsSAnZWagAAV48P/jc2dafevD9VBjBtCf0S\nj4LNqsu0yCDObiNkRrrShg6k/OIj2S/gGh+suf0B1/dj29zJkKGbsRAnTMpn\nz1B5hdOPrELMNoQCeav4MzAlM9rzCZgrg5WoVzoxcAtyOltWO2g8/EUDKr9R\nJ6r01c/zys2ioFeNmAcpF+LAMK7IsacjG1rlybZJn6I81gEfexonoVffIBO3\n4DvjNGMLYatPy+HgnTGoj6qCm7GQCIT1g6eAtjXEfdiUfDA8cCN12flAdPbT\nnQ4QHkkzLmUFfjvPaYyOxA3knBkfoQSFW0POqjztgt7l1aIwewf0HlyvDn/h\nWhoTwv8/8mnotqbB4YN2/qaaXv3ppvXA0KSIx3YKH7BT/qwX03EQBTvM5k9g\nUPBn+S9LhKQsQkjOadRPUPoo/CR74Ul9OgiEMRgGkd4W+OGikTnEwSh0hKnG\nU2U608tMaRJGY5gcKkvfo3Z3Za7Nov/ctPTkPrXp97riyd+ErDMGeEjhCg4Z\n35ZBOFqsl837HB4vHtGPFJHy57e7SQe9Rlhp++z8Je9CEFCJvQ+jxXuyfsKE\nDXM8wE4mTED6ii7k45HewBTH7/E1T2ePmtUHFppN0kkl3MRuFO5AKymhpY38\njXLWWnZsz+UMO5YLcgv7sKbQWFAI86JsfojpBNoZg1za50VKqUqkSiG23Oqh\nwO5J\r\n=7FwL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"observable-slim.js","babel":{"presets":["es2015"]},"gitHead":"8089e24751dd5d757d70e561ac167da14860b589","_npmUser":{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"},"repository":{"url":"git+https://github.com/ElliotNB/observable-slim.git","type":"git"},"_npmVersion":"5.8.0","description":"Observable Slim is a singleton that utilizes ES6 Proxies to observe changes made to an object and any nested children of that object. It is intended to assist with state management and one-way data binding.","directories":{},"_nodeVersion":"8.11.1","_hasShrinkwrap":false,"devDependencies":{"chai":"4.1.2","gulp":"3.9.0","util":"0.10.3","expect":"22.4.3","gulp-if":"2.0.2","babel-core":"6.26.0","gulp-babel":"7.0.1","gulp-mocha":"5.0.0","gulp-eslint":"4.0.2","gulp-rename":"1.2.2","gulp-uglify":"3.0.0","gulp-useref":"3.1.5","babel-eslint":"8.2.3","babel-register":"6.26.0","babel-preset-es2015":"6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/observable-slim_0.0.3_1524609335680_0.7026505033419566","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"observable-slim","version":"0.0.4","author":{"name":"ElliotNB"},"license":"MIT","_id":"observable-slim@0.0.4","maintainers":[{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"}],"homepage":"https://github.com/ElliotNB/observable-slim","bugs":{"url":"https://github.com/ElliotNB/observable-slim/issues"},"dist":{"shasum":"587bc95719d01faddaba97390e948d308c77d713","tarball":"https://registry.npmjs.org/observable-slim/-/observable-slim-0.0.4.tgz","fileCount":11,"integrity":"sha512-cOlGvoNEKMstQmQGFRBySp+SgPUobldf/3Gs423M3U+2I5mjcftE9WJIOhEZXkNwIBZTbBcPyXnyyclSYQDIMg==","signatures":[{"sig":"MEUCIQC8zrs1oy6lUZ21MZu6+R7MVMIsyvsp7ZOOf2G51UDDjgIgdy2hgZSm4hkW5GQ0C09JSZb38yaBq5JyDpx1XygFyF0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":66931,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa7Am7CRA9TVsSAnZWagAAQjEP/19H4U9DIO7D8vwFiKkJ\nRe8YVWxvoVUAxQAi9J9KDUKHMmyvSkVP0hfSzyHED+UxXtNk40c3ejkB49Ew\nOR1i7HVKm/I2aoIBoN9sLhUK67/Mx/DHvU6V3lsAR76YQ+MsYawiLNsApm1z\nSB5d41kv8CZjWav7TJETgC/NWWXz2SHYdHXOJrzTlWWhP9YkRK/+PbNN7OqE\n4Ax+e7CAZCotcsxlNOYu0//EdJrDbnz0GSk2ABNfYRQWrMJZpX4WwvPF5gTm\ngYbGzOAM21xR3lMaW/sF6p411Xkob617VfOlCzqk0MCGyBhNVikUX/AKfRO5\nGNUedpxaUxTCjQv8xxsXwE63Jic2ozGHR6P101xFRoXbo8Jy6yEPHeFNn4RG\nZvii92dSMkEu2DJz6JXXmfGv5OCDOWD/nQs2hQfvuuBXTS6n2ya+ogD384DM\nVWTFD+4rTIThIOkaPPXyrY6B1FzCkeGk6Gv/l7bdsg/qzN83WGZvLRo4NFL/\niRgXx5Zg7c8+HvAT5xgqtXChajhXlbzI8oUvQ6UDBG/q7Cjv5Y0GEuMSh9hI\ni1o9kp8vQL84BldlG0NmrpOUPRNwIff+c8rfzYar/nOQFAhWLjsS/wGR5xMV\nqVXgmmi7mXV4zcuWvgXK2ZD0LpQ2kvBnPwHL0Sk0g+CVgbG3PrB6BQCg5r6P\nW85/\r\n=ZnId\r\n-----END PGP SIGNATURE-----\r\n"},"main":"observable-slim.js","babel":{"presets":["es2015"]},"gitHead":"b6da9392c79fb415e98ba09f58f1b4d893ddf8ba","_npmUser":{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"},"repository":{"url":"git+https://github.com/ElliotNB/observable-slim.git","type":"git"},"_npmVersion":"5.8.0","description":"Observable Slim is a singleton that utilizes ES6 Proxies to observe changes made to an object and any nested children of that object. It is intended to assist with state management and one-way data binding.","directories":{},"_nodeVersion":"8.11.1","_hasShrinkwrap":false,"devDependencies":{"chai":"4.1.2","gulp":"3.9.0","util":"0.10.3","expect":"22.4.3","gulp-if":"2.0.2","babel-core":"6.26.0","gulp-babel":"7.0.1","gulp-mocha":"5.0.0","gulp-eslint":"4.0.2","gulp-rename":"1.2.2","gulp-uglify":"3.0.0","gulp-useref":"3.1.5","babel-eslint":"8.2.3","babel-register":"6.26.0","babel-preset-es2015":"6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/observable-slim_0.0.4_1525418427018_0.09201295223916839","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"observable-slim","version":"0.0.5","author":{"name":"ElliotNB"},"license":"MIT","_id":"observable-slim@0.0.5","maintainers":[{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"}],"homepage":"https://github.com/ElliotNB/observable-slim","bugs":{"url":"https://github.com/ElliotNB/observable-slim/issues"},"dist":{"shasum":"e2ffba3e70fa6e5cad82f112c145a8de9c6dec1b","tarball":"https://registry.npmjs.org/observable-slim/-/observable-slim-0.0.5.tgz","fileCount":12,"integrity":"sha512-8S49Gs1P0FRn8pMOVkPYiva9JfxwG2gewsgBunCuI28CxP0wWadfXbNqsMxJQJ3meMoBJNuFhkwkOT/74DTGCg==","signatures":[{"sig":"MEUCIQCo5yaP2nZ3erQA/ytmgNYKpRtp1m2IihCnyhj2LVLscgIgDPDltqqj6aNzoCYgIoFYjD3Dx7UDydDXjKpi6PH70rI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":70944,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa/3ifCRA9TVsSAnZWagAA0+wQAIDPD1jIt10O5sowvBAw\nTAT6w+O6/tNVfWN/kX6f9YGWOyuMvkv1quKAKOHxA4l7b7jniiBJntklNFUb\nbzVJfMqrkQpFHIGBg+XTRqIuNxE4nax7HOdgobxGIxYHXnmV0AGSCIy9duO4\n1szcoVEAereTquph8fF7COP04IndM7cd72YgTK6LxwCn0KMhbH2N9p/nxFGf\n3KDJh02F+sNVUGEd4zc0jC+7OudUmREt9mqMVIWX/uZhtpsCjuTYsqXxi9ti\nN67E+l+9hc6UCNcDut7McUsdSE8v2lg2IC77qyebaeo0YsaBZat30fNaMx6h\nOHU/RcJ93mrtnL4cR12wzi6xp2CC/rLr3PgA6k8gHug99A/pGKdl/h3hb3tw\nFUKQvlCl5HZ7Mfbfgj5qJ2ysxH2kIUAT+vXQzi3qtJFjM2/4rFFatbwPDqys\nhoKEygX+lMPYSgxBYLHaPuNexRzwIsjBsP3CbO6JF/OtNOwVQxsH0Hs+5VUA\nZ00/Bm/fzCvNVkb6EPP6kXc779y3FioIMUsPdNloWrVxeuwdp65gkUp+X1MQ\nmJaPU2PX/S/ZORpWcBdvxfEc8FaiD5aUiziyFj4tkxxyMvjFtAwM65R3i1zE\nNkewWMif69NYSEkAPmDfQqoMlDAXiRLrNVZ/pUl/e6aXgifxdbtO443GoTMH\nKvM6\r\n=G4xk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"observable-slim.js","babel":{"presets":["es2015"]},"gitHead":"02b865c866c08f1cc01be98b46713e07e9395cb5","scripts":{"test":"nyc mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"},"repository":{"url":"git+https://github.com/ElliotNB/observable-slim.git","type":"git"},"_npmVersion":"6.0.1","description":"Observable Slim is a singleton that utilizes ES6 Proxies to observe changes made to an object and any nested children of that object. It is intended to assist with state management and one-way data binding.","directories":{},"_nodeVersion":"8.11.1","_hasShrinkwrap":false,"devDependencies":{"nyc":"11.8.0","chai":"4.1.2","gulp":"3.9.0","util":"0.10.3","expect":"22.4.3","gulp-if":"2.0.2","coveralls":"3.0.1","babel-core":"6.26.0","gulp-babel":"7.0.1","gulp-mocha":"3.0.1","gulp-eslint":"4.0.2","gulp-rename":"1.2.2","gulp-uglify":"3.0.0","gulp-useref":"3.1.5","babel-eslint":"8.2.3","gulp-istanbul":"1.1.3","babel-register":"6.26.0","babel-preset-es2015":"6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/observable-slim_0.0.5_1526691998719_0.2780651338942053","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"observable-slim","version":"0.0.6","author":{"name":"ElliotNB"},"license":"MIT","_id":"observable-slim@0.0.6","maintainers":[{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"}],"homepage":"https://github.com/ElliotNB/observable-slim","bugs":{"url":"https://github.com/ElliotNB/observable-slim/issues"},"dist":{"shasum":"3216241042cb70cf540222bc8ae8fe37d4540a09","tarball":"https://registry.npmjs.org/observable-slim/-/observable-slim-0.0.6.tgz","fileCount":12,"integrity":"sha512-/Bk8h5l2eRjQkXM3tGj/30uKkNlCo+1NFGrQYOxo5mulpMI19lSvv09etGO58RDXbalj77DifZfRn13cmrb0AQ==","signatures":[{"sig":"MEUCIDlsOBHLG0q3Rih9c0WpAdEdbRWgngAt9sMwKkNYR5pjAiEAnkAwUcsTLFJ2G6W734HFnu8/KVoNc6ipQeYlEsG6L2w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72547,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbFLJACRA9TVsSAnZWagAAOtQP/R5GChd535J/X6xGVlBV\ncwZyxzDlZ6/nWYBpPCuTfvDi/iz4uicwcD127NwQb8pFF9R9cz3JVXg8wAiB\n4AcwE4BwXg0D3BNC0rrqWSFuN/alVzU0iSE7b0xX5eJ4YmVXfvNVrPxB2qx8\nZW6Cf0QZcsjSKCr3bycZPVP1tzwXfwpOodDwOK9/a6WiNX5/LGtaBQTbgMt2\nbU3nyrUO/aa7JrCGI1Nww8AMnIvY+4vgXit7zBuzYzPkP6p7uPMABCFkcIfi\ngOfXs9RoNHLpGzWkO0XP9vY234JShb97AowcMR3zy/iJ4zESWNEPSSofJOTo\nBr8IQULBPvzlgrooI0oDVfdQLM691ps++bllJ1vq8bznwxsKS/xR0c6N4CDu\nUvKkUJqoeP1EI7+L8oR5365zIfJEegoUOp1PAaDhgImsTfR+aYBRDjSvq3qU\ny6oEATjrHM9sRGYLQ3lkpcg2nHvgQEYy4IYKaRzp5jat/8yRSOjjyRo2PSaR\nQ03BWgUv66zzu9vUcxS8fvxwtOsx3nC2OHZ3dSPtZWJAuGuAnk/ZYWiU49tF\n4Q14Ey7YCRFhouOVU/SRQflooNB4HHBU/9eY/dAFjSkMqq2put/tLR3HN7en\na6rwlsY8EC25M1ZEGGqPEsfMheJ2Rb3GU46zWeo46+KFKtgAT4xipq0Hwmq/\nDXwV\r\n=Tlvy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"observable-slim.js","babel":{"presets":["es2015"]},"gitHead":"4e7e77f5b7cb545a7ced8134ca49a4dc7a9bd697","scripts":{"test":"nyc mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"},"repository":{"url":"git+https://github.com/ElliotNB/observable-slim.git","type":"git"},"_npmVersion":"5.6.0","description":"Observable Slim is a singleton that utilizes ES6 Proxies to observe changes made to an object and any nested children of that object. It is intended to assist with state management and one-way data binding.","directories":{},"_nodeVersion":"8.11.0","_hasShrinkwrap":false,"devDependencies":{"nyc":"11.8.0","chai":"4.1.2","gulp":"3.9.0","util":"0.10.3","expect":"22.4.3","gulp-if":"2.0.2","coveralls":"3.0.1","babel-core":"6.26.0","gulp-babel":"7.0.1","gulp-mocha":"3.0.1","gulp-eslint":"4.0.2","gulp-rename":"1.2.2","gulp-uglify":"3.0.0","gulp-useref":"3.1.5","babel-eslint":"8.2.3","gulp-istanbul":"1.1.3","babel-register":"6.26.0","babel-preset-es2015":"6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/observable-slim_0.0.6_1528083007792_0.747825604362123","host":"s3://npm-registry-packages"}},"0.0.7":{"name":"observable-slim","version":"0.0.7","author":{"name":"ElliotNB"},"license":"MIT","_id":"observable-slim@0.0.7","maintainers":[{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"}],"homepage":"https://github.com/ElliotNB/observable-slim","bugs":{"url":"https://github.com/ElliotNB/observable-slim/issues"},"dist":{"shasum":"ad4ed9212f985d96b798bd262fd35e805fd9706f","tarball":"https://registry.npmjs.org/observable-slim/-/observable-slim-0.0.7.tgz","fileCount":12,"integrity":"sha512-ExubNRr7r2MaHuBTJpSBLa7SKBPoiBJAyrk/+EuALff3Pix+vMEv5EihJVXHfmuoCHlIxGjbfV6LjrjAsWAFKw==","signatures":[{"sig":"MEUCIQCtiV4HBO+Ag+DAc3sHlJ6B6m8yVd+ebGliw9EpYnESBQIgWMUp1ZdkmTmLQ9a1Ok7vd5/LniMampCFNekuzZlt9zM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":76551,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbNRbdCRA9TVsSAnZWagAASakP/3NY3YBdIa06Z23GbaRG\nWZZK8/T/dMvgnUgKVbZgyZMNM0x/wSsoFpacwtBDccsuNfmd/L3QAKez+bqm\n8A9Q/OhoB3VHI4+OT7S0coZ4schi1Ck5RZs9lBuiOjErFIu0AYCd8AXFrpC1\nZ/1EQOPpOnCcJje8z27CNCHleDlpui39N7Ge0zIdwR+lLk7cwn2PkFVUcyK8\nTCcaEukGGkGoj405zNDdpbPQVA0dptap87ax6oFdmWwibKFjKYkAuiIayv6x\nek9Kpw+QgkFxAM4c0yJtk5yINtk8hloPgNSL1YCistO/Y/qLNR9Gady7o7C1\nw1yBkO+aLZ2N2ycjnrffIOampgxW13BgpZD5V1M5xaBViSiY+h3kXY98diNl\nc096BLbxU6ZtbE6Fxg5Gx+ev8UMU65HJ2KvLYt2M+pEysQ2xhfCnQ7DHbFqE\nKrgbdSk0cl52uq5BFqHPppay2Cc44pK8w5wk236jaVav9ykRqIeioQvnpceC\njtN9Lwks/lCFRVfGB24PGIFoqEN/unkAUkUlFUiNQtTLt9lgmvNIbqnJdc75\nogU9vl2IZKs90zk77pq+NZSsMuXOyCtwBrWPa2E8Rs0NLYUIbw+vqKJOoIgX\nEaCweVYt97q7wLuXP3Djew/6Kn2NVvMcfmmN4pxZW8Sqn1OIXOS0TOOYVvEe\nlung\r\n=JlD+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"observable-slim.js","babel":{"presets":["es2015"]},"gitHead":"7a8032bb88b322e0cf86948c0865858e7234d4f1","scripts":{"test":"nyc mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"},"repository":{"url":"git+https://github.com/ElliotNB/observable-slim.git","type":"git"},"_npmVersion":"6.1.0","description":"Observable Slim is a singleton that utilizes ES6 Proxies to observe changes made to an object and any nested children of that object. It is intended to assist with state management and one-way data binding.","directories":{},"_nodeVersion":"8.11.1","_hasShrinkwrap":false,"devDependencies":{"nyc":"11.8.0","chai":"4.1.2","gulp":"3.9.0","util":"0.10.3","expect":"22.4.3","gulp-if":"2.0.2","coveralls":"3.0.1","babel-core":"6.26.0","gulp-babel":"7.0.1","gulp-mocha":"3.0.1","gulp-eslint":"4.0.2","gulp-rename":"1.2.2","gulp-uglify":"3.0.0","gulp-useref":"3.1.5","babel-eslint":"8.2.3","gulp-istanbul":"1.1.3","babel-register":"6.26.0","babel-preset-es2015":"6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/observable-slim_0.0.7_1530205917412_0.5272136336456001","host":"s3://npm-registry-packages"}},"0.0.8":{"name":"observable-slim","version":"0.0.8","author":{"name":"ElliotNB"},"license":"MIT","_id":"observable-slim@0.0.8","maintainers":[{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"}],"homepage":"https://github.com/ElliotNB/observable-slim","bugs":{"url":"https://github.com/ElliotNB/observable-slim/issues"},"dist":{"shasum":"8715568001033a8dae1592494d842093bd49da68","tarball":"https://registry.npmjs.org/observable-slim/-/observable-slim-0.0.8.tgz","fileCount":12,"integrity":"sha512-KNqf0K1Ro4EHcTB6/8+yexFF895idQnLCPCY521fg+CKRImCQINcT5H4pF4PISLaLh/YuaClhNMqaeznfaLmLw==","signatures":[{"sig":"MEUCIFSxo0g96xOoSq+JJj85qo+oIb9VNEeHGhl+uYzPkM0FAiEAhwFhvBoRiOjlaQzsFzi32qHWqcimJX5Wbu58X0kC1Ig=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":76450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJba0xmCRA9TVsSAnZWagAAlPIP/jLgasgm7zsZNGyqX3XA\nBsBNvWdA18w9KIkRAby3XjJRJDwyAnt+7nfVjYc7p2521AkCDCzxKMtkHqTP\nDCPuoxQoS9xROV6LhGfNwZdjaHm1zRsuPuGTZpfKXKngkGSXZikZcL91Rwlp\n8NDhgeAVJIlNO3Jx+Q3evOFdXzWr/QVIO/nuTUXL3fad8m+J+bAlbTpFpRjq\nVSUN6P/wOhH6E6jrRbl9NtVZmmuvFdMEOlcHm6O6p6e7/L0qBQOdg/BI7wbR\nwx8i7VnE5kEe/b55zVR69LOzdiqR6CyRFMO/wC5TiSLZ33aGonjjBc5Ebhc8\nt8eovsCVkFTVIfsCYLwibbECq/XUZ8KTzAn1uVr3wtTGjTEEbNxVkuYiq0Sx\nWr32TRHrQ3X2BHX5tKQ12ZY1ep4r7M9w+MvXLb8xeFzGUj963yxcmX8Wz9jy\nPeO2MxGYrqRFe0DMDVkafvMXiJuyVz36Zbm9h8/g2oglY6MwiVSmlz0m2/id\nmrAs3dAreRMUu8KH1yzh/XlhkJmoAxnWYYcnPDdi8n2D4vArEq5b2ZHB9Q2D\nvzJKIh6MNsVmB9FQE27z6MZeNwoI7sgpJULJmc0hyoJl8qH9rINKl6nCyfbH\n4jhLvMz2XAaakdV+JISoFPNS+LZ6VxYOdRhF3J3gbzi8vILiG9w6f58j812W\nryGP\r\n=bfEk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"observable-slim.js","babel":{"presets":["es2015"]},"gitHead":"61aece871179dfc61945d0b6c47ffd6fed1c2c85","scripts":{"test":"nyc mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"},"repository":{"url":"git+https://github.com/ElliotNB/observable-slim.git","type":"git"},"_npmVersion":"6.1.0","description":"Observable Slim is a singleton that utilizes ES6 Proxies to observe changes made to an object and any nested children of that object. It is intended to assist with state management and one-way data binding.","directories":{},"_nodeVersion":"8.11.1","_hasShrinkwrap":false,"devDependencies":{"nyc":"11.8.0","chai":"4.1.2","gulp":"3.9.0","util":"0.10.3","expect":"22.4.3","gulp-if":"2.0.2","coveralls":"3.0.1","babel-core":"6.26.0","gulp-babel":"7.0.1","gulp-mocha":"3.0.1","gulp-eslint":"4.0.2","gulp-rename":"1.2.2","gulp-uglify":"3.0.0","gulp-useref":"3.1.5","babel-eslint":"8.2.3","gulp-istanbul":"1.1.3","babel-register":"6.26.0","babel-preset-es2015":"6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/observable-slim_0.0.8_1533758565919_0.6918774543645558","host":"s3://npm-registry-packages"}},"0.0.9":{"name":"observable-slim","version":"0.0.9","author":{"name":"ElliotNB"},"license":"MIT","_id":"observable-slim@0.0.9","maintainers":[{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"}],"homepage":"https://github.com/ElliotNB/observable-slim","bugs":{"url":"https://github.com/ElliotNB/observable-slim/issues"},"dist":{"shasum":"9c853ed7d88a2f2ac3d18b9a511bbd30e6640d27","tarball":"https://registry.npmjs.org/observable-slim/-/observable-slim-0.0.9.tgz","fileCount":12,"integrity":"sha512-qpB4+VNALC5YSXa5SS1Lsk0dmJa2gxMNTdbsnoa7KZbvX9906192XtXkFw9YpL0gqwn7PyX63kJgMl+Wt8wkpA==","signatures":[{"sig":"MEUCIQDlCyPax8w8yv7IIEwlOfJmbLlrNgYcUI6Hi4J1+SeRWAIgGqMwjyRnHhWuQ9AuvBiEZzJb4LSLzRceWhgalHr8mmk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":82027,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbcbzDCRA9TVsSAnZWagAAdH4QAJV2pGuvQ/uYCBVpo2vs\nXfH3nFGBncS3QdnADZzXBWP4mWCDeP3Hduc+s8afYE6eg+eYALAHyFYZT47f\n7eogf6si7v/LOCvIa/2LgzrclHdyLYulbI1GeN0xw216ksxjmB+50Y3Vaf3W\nzDpaGTH/E8+LckOK9HfY4eHq0wBK48OpRttoabDT02PE0R5xsXm6qwmm6UtO\nOeoqubEkOpVTtCyN06WHDDEjHRDhZVRysOaIwwesVbkj//o1sSEU5+nysQUr\nett+NqjlJDlxY5Wv3OUnqXim4IOdzZVbHQUPh87u22MdKMGKgm1ihvHS3oad\nvQh5iJuCAAAbNipi6yaAGdDgLAReUZCXVlw+x/iUY6pwL7r4oqCISXFi0MpP\njTryTgy5cdZQmek1DzkvmNSEnTPE6A+KY3jX27Lz3URR56zxWl/IzvGQYEAt\nPDZCUihG2qK7XZQV2GrETMPwdBhC/tYyeVKjxkz8mKjucLfvUgI3Q2UjlvtH\n7u5l+SlILZ2pKRvTJdAgCJDbBDLblqTHCEAeGkRrHUN7ljV9UcNYNLYaAGSv\n+8BAs4xhrAywgrvqbdVGiz67DpgTzj7lbrAmFsi9TEuaVf0lqS3nVfTcypT9\nabCuqeG5piuLcfdcCJHzIBzP4GrpY8hlEgakbi6pAdvoxqzD5atoXQApOsJX\nDx1F\r\n=Z6QY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"observable-slim.js","babel":{"presets":["es2015"]},"gitHead":"21ffdb05c7f9b55d84ca5a350ac10d486bb5fd7d","scripts":{"test":"nyc mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"},"repository":{"url":"git+https://github.com/ElliotNB/observable-slim.git","type":"git"},"_npmVersion":"6.1.0","description":"Observable Slim is a singleton that utilizes ES6 Proxies to observe changes made to an object and any nested children of that object. It is intended to assist with state management and one-way data binding.","directories":{},"_nodeVersion":"8.11.1","_hasShrinkwrap":false,"devDependencies":{"nyc":"11.8.0","chai":"4.1.2","gulp":"3.9.0","util":"0.10.3","expect":"22.4.3","gulp-if":"2.0.2","coveralls":"3.0.1","babel-core":"6.26.0","gulp-babel":"7.0.1","gulp-mocha":"3.0.1","gulp-eslint":"4.0.2","gulp-rename":"1.2.2","gulp-uglify":"3.0.0","gulp-useref":"3.1.5","babel-eslint":"8.2.3","gulp-istanbul":"1.1.3","babel-register":"6.26.0","babel-preset-es2015":"6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/observable-slim_0.0.9_1534180546458_0.9357510843426671","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"observable-slim","version":"0.1.0","author":{"name":"ElliotNB"},"license":"MIT","_id":"observable-slim@0.1.0","maintainers":[{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"}],"homepage":"https://github.com/ElliotNB/observable-slim","bugs":{"url":"https://github.com/ElliotNB/observable-slim/issues"},"dist":{"shasum":"071b8f712820a4b8a6f9dd051810540f7b586eca","tarball":"https://registry.npmjs.org/observable-slim/-/observable-slim-0.1.0.tgz","fileCount":12,"integrity":"sha512-va5u9qZ13YBe7PMg5UitFPwKZwxvPBfpKB5Gqf+wQfUE9Gn1SxgyweKlhiDlJFyUvulRX1N+qcbvKmTFq2GqVw==","signatures":[{"sig":"MEUCIQDDdyFE5Enk8qdfjnop4WKTqWOTpe05j+dQ1a+KBAGZUgIgRznyxiTdJ51Zlb5s3z8GPIrL74QBgRz6i/yJU5GzThw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":82452,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbfN5aCRA9TVsSAnZWagAAq9oP+wTQP/OQ614CLz/OkKnx\nofYNb+OJG1xSiLiBhInk1YsE+nFONjJR79mpMxm6IR1b2ZVUfuZemuYJZ7D+\nPeemI/fTpEoV5iXnUSMjFwjB8PNe1OStWY9VFVJl+AS8jSxYv37dJo6av+i+\nl/wInDC6E/yoVRmr+PJvhSRSIUqNs+0DV6U+tOjnTCl6LFWXx/oj1fdEOugO\ny7eT/YlRoyxEEz2N6eewFu/cbjWNY+Z5KWSY7Bzb1rI4Fb3aC2kBgLVM8Up7\nN08edXy1mP0ea49TZIZ5akU2oQBpYTigtcTiwSV9/G/v8HOSHwXzgdZg7pdv\n4qhL2GoW6a18o/M4RTTFgJhKsJ1OejwnaS89OL++DkkGtMfRDqG90tmvGgbk\nEG8PM+wkbN7NcCt6XXSXwCdkma/nkdd1BXhjCPU3792OhdHZKQhrHT/5/J/N\n7Fmb6dkmc4a1euTtaaWVxE8WMerlg2Wj07DxAF/903IqopLbItcQl3l+Yfbj\nIFRVEbzT7XNmpDxVTh2txun9xsFGHa1R026mvWbPN4ocelkuvHc1y4TIXs37\nXStVC0nfvnhyScZzc69h6itIvNysCLWzYQPZdSOXAhvei2T/LFDXfVYJ2hM+\nMWGR0L47omG+BNdtDYUrqvOGfqVe2QeL7xPNsCEU4UD+tuMe9/YNegG1atLH\nkLbo\r\n=Tq3I\r\n-----END PGP SIGNATURE-----\r\n"},"main":"observable-slim.js","babel":{"presets":["es2015"]},"gitHead":"5d77a6fbbb67163695ed8cbde145f2af51dbc342","scripts":{"test":"nyc mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"},"repository":{"url":"git+https://github.com/ElliotNB/observable-slim.git","type":"git"},"_npmVersion":"5.6.0","description":"Observable Slim is a singleton that utilizes ES6 Proxies to observe changes made to an object and any nested children of that object. It is intended to assist with state management and one-way data binding.","directories":{},"_nodeVersion":"8.11.0","_hasShrinkwrap":false,"devDependencies":{"nyc":"11.8.0","chai":"4.1.2","gulp":"3.9.0","util":"0.10.3","expect":"22.4.3","gulp-if":"2.0.2","coveralls":"3.0.1","babel-core":"6.26.0","gulp-babel":"7.0.1","gulp-mocha":"3.0.1","gulp-eslint":"4.0.2","gulp-rename":"1.2.2","gulp-uglify":"3.0.0","gulp-useref":"3.1.5","babel-eslint":"8.2.3","gulp-istanbul":"1.1.3","babel-register":"6.26.0","babel-preset-es2015":"6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/observable-slim_0.1.0_1534910042380_0.5837628671900112","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"observable-slim","version":"0.1.1","author":{"name":"ElliotNB"},"license":"MIT","_id":"observable-slim@0.1.1","maintainers":[{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"}],"homepage":"https://github.com/ElliotNB/observable-slim","bugs":{"url":"https://github.com/ElliotNB/observable-slim/issues"},"dist":{"shasum":"a1adbeaea7852cd9f34abccb6e2319736ab714f2","tarball":"https://registry.npmjs.org/observable-slim/-/observable-slim-0.1.1.tgz","fileCount":12,"integrity":"sha512-DrZhkZcuRYb5AFA02pbx3yIfYLcbHTaNxFACsGGOKmg/7KyAE+OKo1jmG/YCQsAmSJlL1pDsRMOzQU7awe6nGw==","signatures":[{"sig":"MEYCIQCZfO2vmn5qogXd7Mr2wfXTDl+zoeRxcG545ATXIX6JTAIhAOHAFXKmsguPnIEL8V+nl3OUc2m/zSgCCmw1WbQ1W6Tt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":84756,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb54I8CRA9TVsSAnZWagAAspsP/2jCWT8nBvEiTMzzP1Nx\n3caF1gbyC5Wg2sSy9FBoNrYKft4IR3LBWo3J+gEr5w5K/iIXNZjuMIPeLJPC\nTjkaMu6OPBkYsNeURJtxxPUanNkI9ujGH1M5QVuCMBrwPvmtGpcmv/CisncS\nk1Ay7/O9sHMuB06gnXhcQ7cB3dqni47ki74WAS4D/AdiPrR6QtgfyHgQSJoX\nYawsZfPj6pb6X8GK+Nng8BUJpgWM7eZHNXvhXy0H1+mfE92E3YsOLX4R4L3Q\nzaDJV05Xf4Pm3yZ/rdH1qJ0gh+qFd/1zPOzNhcp7I7NhnA3w+SPayF2HJ0wf\n86QIdXnP5zqZQ6fAmiT5Zh+9jRac+1k56cbwt/vCNFjlXnVovI3PorgVALGz\nJ2RZW8PYIxTGvPclcDWw+5QNMz/KCBVTOARYXyi0lNd04ZHH39KZLu//j8rm\nlCcRYLM1C3xV9lfyhzYnwv4eZ1AgULBRG9NbB+BIN7lPKD+VUVelr3CvSHfB\nUpytXknOcDq7SBy7DgZ1/8guZddoVZIvn489Fn8p7PTt+Nkz4r0Mj1UaxQmB\nPQQBYJOkLDcKt+fKIlXD8gFxBMsLulZ6KWkTf+xVPycQor35Zkopg6JL/tlx\nGmnKCgVfWhcZs0NDSuSJ6CZeQZ9YztFb6XO7m2ZfOJl3ylWUVLsw7c/4DekO\nw2Jk\r\n=j/DN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"observable-slim.js","babel":{"presets":["es2015"]},"gitHead":"62f1844b04bd64a85228ffd2ef60b468235241fc","scripts":{"test":"nyc mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"},"repository":{"url":"git+https://github.com/ElliotNB/observable-slim.git","type":"git"},"_npmVersion":"6.4.1","description":"Observable Slim is a singleton that utilizes ES6 Proxies to observe changes made to an object and any nested children of that object. It is intended to assist with state management and one-way data binding.","directories":{},"_nodeVersion":"8.11.0","_hasShrinkwrap":false,"devDependencies":{"nyc":"11.8.0","chai":"4.1.2","gulp":"3.9.0","util":"0.10.3","expect":"22.4.3","gulp-if":"2.0.2","coveralls":"3.0.1","babel-core":"6.26.0","gulp-babel":"7.0.1","gulp-mocha":"3.0.1","gulp-eslint":"4.0.2","gulp-rename":"1.2.2","gulp-uglify":"3.0.0","gulp-useref":"3.1.5","babel-eslint":"8.2.3","gulp-istanbul":"1.1.3","babel-register":"6.26.0","babel-preset-es2015":"6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/observable-slim_0.1.1_1541898812082_0.8048563571716647","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"observable-slim","version":"0.1.2","author":{"name":"ElliotNB"},"license":"MIT","_id":"observable-slim@0.1.2","maintainers":[{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"}],"homepage":"https://github.com/ElliotNB/observable-slim","bugs":{"url":"https://github.com/ElliotNB/observable-slim/issues"},"dist":{"shasum":"9211841563514f5d922525d53af4dc037a2381ae","tarball":"https://registry.npmjs.org/observable-slim/-/observable-slim-0.1.2.tgz","fileCount":12,"integrity":"sha512-PvfNeHZi/LGhwjV88CNjrPg9LfjXrAz4oxeU4bZkbHdq5iPMUxxcz0wTCeryxpXjWazZsANs8BRbcrxB5CyStQ==","signatures":[{"sig":"MEQCICzeuK3hOKbFQ4GrbsAXdxnVbqjcawbwzG7umAzsV9CQAiAfvo1pnscko4ysYiO7tXuMK7AGM+KGPiBxDZNCH9SZ4Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":86626,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8isRCRA9TVsSAnZWagAAfyYQAKUcmuyRicEMNkm60s7M\n1IyH2a6K3BGh8RTL1WhVt9kE19aSiwpftPVdfSQnNHJcc5NxX3dy717QD7Io\nd4ZEVmtJund8NnXASUewadfC70knfw32HBUoQ2iQRzfg12RP7DD7nqdAsQSr\ndunE4vueBKLvh6ez6eOxhP++rsPxGJUW8zNQQzFbK9OQeOVtaBASnLIru6p9\nt90v+9DgANt5/7PCNGhnxQBme/hLnW3v6OytmroSsmWaoXmumgroKjhxRURK\nwmI+Eh3w75cxOHIjXbg9m19LkrUqS/swac329bzyBunAD2YhHHHFL3Mknifi\nculZ00153HMT7iMjgQ02c/bjPHvVDnQ0L/DWrZ4kyJRvviM2H+Ght0vMdXgu\nhjOotOzNQMPYzS5Y/8qllPa292Z1OaqgrBa1V+g+zPz5xndB/bT0vpBW0g7j\nx1s+SPPJa33hPtr5j99S097VGVlAC6RvLD/coy734XEJKqcifYeQRu79jIAL\nDF3ZNdjHnLTcNG1vBnbl1DXd2GBVL9Elcub9xyNQmNi1fcZ6fMjUOwL4RpRp\nGN4lT4Vgc6PsBRMRhsdd1v2pRcbjjH7XH7MgLFKmvjH512Wfqzid9Z1NIn30\nkuxAO2b8PS+Y47UYE0rIyT85WO2Z3m+sZN+gR5xfP+TkcqNudzS4DTVRle/U\nTfF4\r\n=J7tf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"observable-slim.js","babel":{"presets":["es2015"]},"gitHead":"125ab5435ebdf08197c792d470cd86cc254a382c","scripts":{"test":"nyc mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"},"repository":{"url":"git+https://github.com/ElliotNB/observable-slim.git","type":"git"},"_npmVersion":"6.4.1","description":"Observable Slim is a singleton that utilizes ES6 Proxies to observe changes made to an object and any nested children of that object. It is intended to assist with state management and one-way data binding.","directories":{},"_nodeVersion":"8.11.1","_hasShrinkwrap":false,"devDependencies":{"nyc":"11.8.0","chai":"4.1.2","gulp":"3.9.0","util":"0.10.3","expect":"22.4.3","gulp-if":"2.0.2","coveralls":"3.0.1","gulp-util":"3.0.8","babel-core":"6.26.0","gulp-babel":"7.0.1","gulp-mocha":"3.0.1","gulp-eslint":"4.0.2","gulp-rename":"1.2.2","gulp-uglify":"3.0.0","gulp-useref":"3.1.5","babel-eslint":"8.2.3","gulp-istanbul":"1.1.3","babel-register":"6.26.0","gulp-uglify-es":"1.0.4","babel-preset-es2015":"6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/observable-slim_0.1.2_1542597392310_0.965962603167031","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"observable-slim","version":"0.1.3","author":{"name":"ElliotNB"},"license":"MIT","_id":"observable-slim@0.1.3","maintainers":[{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"}],"homepage":"https://github.com/ElliotNB/observable-slim","bugs":{"url":"https://github.com/ElliotNB/observable-slim/issues"},"dist":{"shasum":"c0f0a3505c8eeee890f44700c949e48d5b9af87e","tarball":"https://registry.npmjs.org/observable-slim/-/observable-slim-0.1.3.tgz","fileCount":12,"integrity":"sha512-hMzhtk8fnWke1vjWhe7cF2SZfNMrB9AJnYqb67a2t0vuDTcZ/tOgXyjEEGLra/UlxGYuLkZI9m+84H3NdziVfg==","signatures":[{"sig":"MEQCIFOaUhvE/INrZA7lPPAfh+uQmmWGkIq+skRMhpJQlPutAiBQLsEUyISfCWaxsTOHCzeqpZo1SsgbQOdgIppYz5J0og==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":86645,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/vnlCRA9TVsSAnZWagAA+TkP/15rfT/wXxYlbwueAo+t\n5Ljz0bMGm5xWEnBuBZmjPRF6ToBhB3xqOWGI1tNwvMQjdV2uNUrxOD82uHDD\nL41A1FtiaJvIK2Em52zK5pC2clal8IBSMkJUJlwHiLzxYABawdwp1n7H5LX6\n3aZP59PD2tc33rJ4Fooh1hdHC/rMYjygAsknQiIl879JiXbEKXhz1AP1qPvZ\ndXVcufiL+yYFoWlqIEgvmvdJM2TmHep5qRUjB8mfZkGiN/3NsZ0J7OYOmjlC\nIITqQOpUfGtX42pyCUbN+sxYzQs2ZzeSqielZOQ7onaepVL5gAMqcT655EpN\nu3JUdlLIdDvh9XBeXo9zXuJ8RjyHGesyvTfZf6Yb71dXeVSIWhU3ZFF7DsyD\nue9h101Cf5SraYsjNDnaRVHbSjteOV24cX7/pdc8CdOR8JZ6UGSjc9n2woq3\ng8voJ/pcUk0Ml6caVQ7UY+fvzRhiVi2WvMFe5hTMKhTVJ1s87NRe0R85l9c7\nPmNbit5hFRChPefefEHa9aXauEbQ2VOYkGq/euql3X26VU8+ZnSUUhnCvTuU\nkizrfXJSnJpWNnmzp6BPE1DDz2labbqfz80ZSKy2nCRUvbiacTViN509VZW+\nK31PzGVK70q1BrP+1ABBdyypdTvWpd0DDb3rTnjfg4iFC3lOn1vO/PM1pKvg\nlo+F\r\n=hdHy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"observable-slim.js","babel":{"presets":["es2015"]},"gitHead":"37317cc30ac392aaf74451a9a68a8526c135a433","scripts":{"test":"nyc mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"},"repository":{"url":"git+https://github.com/ElliotNB/observable-slim.git","type":"git"},"_npmVersion":"6.4.1","description":"Observable Slim is a singleton that utilizes ES6 Proxies to observe changes made to an object and any nested children of that object. It is intended to assist with state management and one-way data binding.","directories":{},"_nodeVersion":"8.11.0","_hasShrinkwrap":false,"devDependencies":{"nyc":"11.8.0","chai":"4.1.2","gulp":"3.9.0","util":"0.10.3","expect":"22.4.3","gulp-if":"2.0.2","coveralls":"3.0.1","gulp-util":"3.0.8","babel-core":"6.26.0","gulp-babel":"7.0.1","gulp-mocha":"3.0.1","gulp-eslint":"4.0.2","gulp-rename":"1.2.2","gulp-uglify":"3.0.0","gulp-useref":"3.1.5","babel-eslint":"8.2.3","gulp-istanbul":"1.1.3","babel-register":"6.26.0","gulp-uglify-es":"1.0.4","babel-preset-es2015":"6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/observable-slim_0.1.3_1543436773259_0.8538217098113043","host":"s3://npm-registry-packages"}},"0.1.4":{"name":"observable-slim","version":"0.1.4","author":{"name":"ElliotNB"},"license":"MIT","_id":"observable-slim@0.1.4","maintainers":[{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"}],"homepage":"https://github.com/ElliotNB/observable-slim","bugs":{"url":"https://github.com/ElliotNB/observable-slim/issues"},"dist":{"shasum":"4b37cf81bf23cb1504e25a4df584139b23f4aa15","tarball":"https://registry.npmjs.org/observable-slim/-/observable-slim-0.1.4.tgz","fileCount":12,"integrity":"sha512-WWMHz3bwdrcHLE4Zwsbt5y0xu3CgHeZYRnkNw0J8IJjlFdGelAfkdNZXKVt7q0MhbQuvO87KXc4xDlTaqFXlwg==","signatures":[{"sig":"MEUCIQDTMIduOB5AtRI0gFJ21oNKfkYZYoLj8QWJFx5zaG9IegIgAqa2AXGdF4TRvilL7hmg1ZizKOLXHfa+c2ncDvtnEtU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":89514,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcIG+rCRA9TVsSAnZWagAA9/QP/jQ0zSpQZEqQmURoQChj\nRAdfzCMhEy5o7oPgLT3/vw2vVlFht2/bZWiQhiPcBqnCC1qrKnuZFnMXKeqZ\n4v/n6NXW2l0qg9KtbO53ynyRQsjCQH6foP9gGHSgg9/JFyb8aGf9hZ9roDsV\nQ9jDCyG4ChQtXt3ZBz05k8CsiUfd1/F58nksQQ6vQcvj+ICwq/4BSFPeE5Mc\nCw6iyZ6J1WdJM3JJSSTdsCjqZ/CzJdtCIJOhCHXE3X9Sf1IWbbLV7w0Yh5IU\nFjJay0wdX6oYdOVl276cVnbEyCjklQqyUS1FtQ44ahAYb7hUWtuV/+zQzYtK\nNl5gikbCz/yVVBcc1C1f0ihTYQ4NjXc3dXWOxC4LrPWatvhbBdK1FlA+fhGF\nJXIljsks0butyO9TpDUsg7Qufo3AoqIGKT3pFi+OmnDJYVOyG/iflM547X9R\n7JZ5EjMPX2S983SUGwjLzj5DSiXkXEWJFG1ErIuN6rdYb9p2yYs3jtBf3ehP\nKQEYyhlPBRgKfRyfj0d1d8fMmToir5rgauDyFV1BCNlOaSMhYbDLIND2mCrE\nnv69PQZHhERt9GzPm8IxRVP0J7wBCbhB8fcuFqXdnb+Ezsw2E09K+ljMjpoF\nuIvJqtjn9VG5HZxNFW2iBJu6C6xyyQccxqmcF/8yomvsCKu8dXsHIGF9aOA3\nXdQZ\r\n=pTst\r\n-----END PGP SIGNATURE-----\r\n"},"main":"observable-slim.js","babel":{"presets":["es2015"]},"gitHead":"7bacc42295aa59183b65830794ddcf60976576ae","scripts":{"test":"nyc mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"},"repository":{"url":"git+https://github.com/ElliotNB/observable-slim.git","type":"git"},"_npmVersion":"6.4.1","description":"Observable Slim is a singleton that utilizes ES6 Proxies to observe changes made to an object and any nested children of that object. It is intended to assist with state management and one-way data binding.","directories":{},"_nodeVersion":"8.11.0","_hasShrinkwrap":false,"devDependencies":{"nyc":"11.8.0","chai":"4.1.2","gulp":"3.9.0","util":"0.10.3","expect":"22.4.3","gulp-if":"2.0.2","coveralls":"3.0.1","gulp-util":"3.0.8","babel-core":"6.26.0","gulp-babel":"7.0.1","gulp-mocha":"3.0.1","gulp-eslint":"4.0.2","gulp-rename":"1.2.2","gulp-uglify":"3.0.0","gulp-useref":"3.1.5","babel-eslint":"8.2.3","gulp-istanbul":"1.1.3","babel-register":"6.26.0","gulp-uglify-es":"1.0.4","babel-preset-es2015":"6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/observable-slim_0.1.4_1545629610812_0.8536362227510126","host":"s3://npm-registry-packages"}},"0.1.5":{"name":"observable-slim","version":"0.1.5","author":{"name":"ElliotNB"},"license":"MIT","_id":"observable-slim@0.1.5","maintainers":[{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"}],"homepage":"https://github.com/ElliotNB/observable-slim","bugs":{"url":"https://github.com/ElliotNB/observable-slim/issues"},"dist":{"shasum":"ddb30df2db1ee3e5bc409d29268a5766faab6b24","tarball":"https://registry.npmjs.org/observable-slim/-/observable-slim-0.1.5.tgz","fileCount":12,"integrity":"sha512-xhDK4EjwM6ehZ6KhTtDc0z5kqBhqoBQPP9pq2n1c+RXA4IcyLIm68ipDwS3nZVXhrCssoKu4LcHDUT1tl0kP9A==","signatures":[{"sig":"MEUCIQC2TecMvp1egW827ePZGQdPUcxk5xAPr74UeZ5LR3gUbgIgW5x5u80Hy3IUCA1iRatGHC8oqPeVgJNPs31yWM0nt/w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":89707,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcRqx7CRA9TVsSAnZWagAAT80P/000zzdq69j8J1UTcn/Y\ndh7M/EYajEZ8P+ERBsBj8IuwrpjxxjYrTEKmvny2vVVmzuKVsVWT2Uyqlez2\nkwVaDztV+kuXTyNQDMQITzttBgGWCRJ5tP+mRfeH/Z0ngi5NEroEblgyv5EL\nl6igio1CKJmXusfmY+bMaoLYT9oK3VDu3Rvy1V2jWtq2T9TipCVXN1JT9Wow\noJMAdXtBmrQ4Crsr0yL/JX+JfOUFXJBiNgi28WllEuqUFfrqTSwqFfuKVYJf\n4fgwU8gBqB4+vJBDWJrYeKPE+lzw+pIDDvkV/jzpVGEBd5hKgoIWwien6IEv\n4TinugMo2jDINOvRbOmFH6sqtgY5kHAf+L46qgHC0I25ToGudfclXaLSM6VD\nlO+ijEglVwVITdEEkmfBYZeZrbPhMqKcdNwL/Hz1kn/2axwHFf+/neALJj4e\n9hZ966qGZee4CAUDYXPxYURp1baYE/h9rPDRtselsT+ts8LpB4I3HCwtynfz\nUnnM9j/3Bb0/+nWk13f0zblZFCp3oWYtqHw1OM/wCEVpbM28S5Qxfr24OsdX\nKIbanG3K0QlkoyQSSnz2E3ClhUehF4GKrf4V7HzpqPFRErDt5osnZd1XyqBl\nzNngB9szKIZya/kDZolrpISGN6Ec88hLS5ZakaU4MwIE0GqlhrbOlzV2L0c5\npYMV\r\n=EpCQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"observable-slim.js","babel":{"presets":["es2015"]},"gitHead":"90aa1f41b7dd1baa0c6121f89d1a1d1e2a95da85","scripts":{"test":"nyc mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"},"repository":{"url":"git+https://github.com/ElliotNB/observable-slim.git","type":"git"},"_npmVersion":"6.4.1","description":"Observable Slim is a singleton that utilizes ES6 Proxies to observe changes made to an object and any nested children of that object. It is intended to assist with state management and one-way data binding.","directories":{},"_nodeVersion":"8.11.0","_hasShrinkwrap":false,"devDependencies":{"nyc":"11.8.0","chai":"4.1.2","gulp":"3.9.0","util":"0.10.3","expect":"22.4.3","gulp-if":"2.0.2","coveralls":"3.0.1","gulp-util":"3.0.8","babel-core":"6.26.0","gulp-babel":"7.0.1","gulp-mocha":"3.0.1","gulp-eslint":"4.0.2","gulp-rename":"1.2.2","gulp-uglify":"3.0.0","gulp-useref":"3.1.5","babel-eslint":"8.2.3","gulp-istanbul":"1.1.3","babel-register":"6.26.0","gulp-uglify-es":"1.0.4","babel-preset-es2015":"6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/observable-slim_0.1.5_1548135546627_0.80327353559141","host":"s3://npm-registry-packages"}},"0.1.6":{"name":"observable-slim","version":"0.1.6","author":{"name":"ElliotNB"},"license":"MIT","_id":"observable-slim@0.1.6","maintainers":[{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"}],"homepage":"https://github.com/ElliotNB/observable-slim","bugs":{"url":"https://github.com/ElliotNB/observable-slim/issues"},"nyc":{"exclude":["proxy.js","test"]},"dist":{"shasum":"50f643acafc69365701e312a46cac46161efffb3","tarball":"https://registry.npmjs.org/observable-slim/-/observable-slim-0.1.6.tgz","fileCount":14,"integrity":"sha512-a6xYwLaJgGxPxm5tBdKrGSNxiYklbshjlAJE0Nm7iHTMMrkKWvUG63QUhn4urMl5/aPLHIVouh0B3CktyU664w==","signatures":[{"sig":"MEUCIQDuEKwDxLKFn19aodJtQoQ8f+ntj+0NmlYpDfSEHtkXpQIgNURk6AZEY7dCXggdTARvVKsiWvmim9wRSNj2GSw22bo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":96973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJictqtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmofIBAAlI4ybwbkx3vP3c3IBae/I/6tX5gJc35rbNQKBHCJjdtMUmXR\r\n3IjtfSiu3ShnmC7GPGfX80dtuq25crcsWEpZ7tTjHgQSI46rPDSMybn8vQFL\r\n9YJSHKPO/wUTVeZRM6vIKMKKokGuVOZspAYu2ePlXGfQ49LYAkEOXpg6tSN+\r\nNzFnK7yigf9vLh+kROGDBW/0WERRSHDtHBVRCoi8FEKGzM2pqjhwe3noSXLO\r\n0CjWsuZQP1vYKip5xq4vLniEffPGS9sGrfzreKshE69WiEXWLnLQ1XjbRH15\r\n4DqxtDjQe6/3TWO5VEG4X0tixvBJRf4eTQGSBcumDBjKb2fOezqPBQ6v2wzk\r\nT2qT34cxFUXFxmFpfB49z3mWiYhmf+WXYdZ4+wGFjNOlFOID8LoAwcWiZO92\r\nCBzGOiyPAJ6+UhTa8Ub3CSK/0vQ1hpDaMNsHLBz0XkNEsvFVfQQugrsXTVvG\r\nRiGDiTAJH43A4K6h3Fx1ObHRtv00Ncr6jbzexLH1o0KTe+b00TfYJ8DhbO4R\r\nLfuvGHy04Rsyf7uAEi2gUDtAMll19Lhl/0iEC9QjMN4kQEf9Teo2WH2sZ1V4\r\nGMovYea4W4GGbLG4TZQ4vcq+OMb+ZRuG00K5oFXOGD4x8Y1l1f+El/FgdhjP\r\nVhQh1JP/zjdRGW3Y7ULkY5YzdRTJBDJjirc=\r\n=x2iw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"observable-slim.js","babel":{"presets":["@babel/preset-env"]},"types":"./observable-slim.d.ts","gitHead":"3d96c83424927eb71893c793c65aad7247cd78aa","scripts":{"lint":"eslint \"**/*.js\"","test":"nyc --reporter=html --reporter=text mocha","type":"npx -p typescript tsc","build":"gulp","coverage":"nyc report --reporter=text-lcov | coveralls","lint:fix":"eslint \"**/*.js\" --fix"},"_npmUser":{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"},"repository":{"url":"git+https://github.com/ElliotNB/observable-slim.git","type":"git"},"_npmVersion":"8.1.4","description":"Observable Slim is a singleton that utilizes ES6 Proxies to observe changes made to an object and any nested children of that object. It is intended to assist with state management and one-way data binding.","directories":{},"_nodeVersion":"16.13.0","_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.6","gulp":"^4.0.2","mocha":"^9.2.2","eslint":"^8.12.0","coveralls":"^3.1.1","gulp-babel":"^8.0.0","gulp-shell":"^0.8.0","typescript":"^4.6.3","@babel/core":"^7.17.8","gulp-rename":"^2.0.0","gulp-useref":"^5.0.0","gulp-uglify-es":"^3.0.0","@babel/preset-env":"^7.16.11","@babel/eslint-parser":"^7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/observable-slim_0.1.6_1651694253412_0.4071442710152826","host":"s3://npm-registry-packages"}},"0.2.2":{"name":"observable-slim","description":"Observable Slim is a singleton that utilizes ES6 Proxies to observe changes made to an object and any nested children of that object. It is intended to assist with state management and one-way data binding.","version":"0.2.2","engines":{"node":">=18"},"main":"dist/observable-slim.cjs","module":"dist/observable-slim.mjs","types":"dist/observable-slim.d.ts","exports":{".":{"types":"./dist/observable-slim.d.ts","require":"./dist/observable-slim.cjs","import":"./dist/observable-slim.mjs","default":"./dist/observable-slim.mjs"}},"unpkg":"dist/observable-slim.umd.min.js","jsdelivr":"dist/observable-slim.umd.min.js","sideEffects":false,"scripts":{"test":"nyc --reporter=html --reporter=text mocha \"test/test.js\"","test:types":"tsc -p tsconfig.types.json","test:rt:cjs":"node test/cjs.entry.test.cjs && node test/cjs.direct.test.cjs","test:rt:esm":"node test/esm.entry.test.mjs && node test/esm.direct.test.mjs","test:rt:umd":"node test/umd.node.test.cjs && node test/umd.global.test.cjs","test:artifacts":"npm run build && npm run test:types && npm run test:rt:cjs && npm run test:rt:esm && npm run test:rt:umd","test:all":"npm run test && npm run test:types && npm run test:artifacts","lint":"eslint \"**/*.js\"","lint:fix":"eslint \"**/*.js\" --fix","coverage":"nyc report --reporter=text-lcov | coveralls","build:js":"rollup -c","build:types":"tsc -p tsconfig.json","build":"npm run build:js && npm run build:types","prepublishOnly":"npm run build","type":"npx -p typescript tsc","bench":"node bench/index.js --expose-gc"},"devDependencies":{"@babel/core":"^7.28.5","@babel/eslint-parser":"^7.17.0","@babel/preset-env":"^7.28.5","@rollup/plugin-babel":"^6.1.0","@rollup/plugin-commonjs":"^28.0.9","@rollup/plugin-node-resolve":"^16.0.3","@rollup/plugin-terser":"^0.4.4","chai":"^4.3.6","coveralls":"^3.1.1","eslint":"^8.12.0","mocha":"^9.2.2","nyc":"^15.1.0","rollup":"^4.52.5","typescript":"^5.9.3"},"babel":{"presets":["@babel/preset-env"]},"nyc":{"exclude":["test"]},"repository":{"type":"git","url":"git+https://github.com/ElliotNB/observable-slim.git"},"license":"MIT","author":{"name":"ElliotNB"},"homepage":"https://github.com/ElliotNB/observable-slim","bugs":{"url":"https://github.com/ElliotNB/observable-slim/issues"},"gitHead":"c57cb74424753952ab8107272067524b7a1b7fae","_id":"observable-slim@0.2.2","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-YY8fgqgx31w2oAyk2PKLvwbnqoRxKpPiFrLWKq8caC4vQ+XSaZV9mueJCkhnqJkz+eT9vi8b5segk+Qd0A8JrQ==","shasum":"00903f61d60994928930e253a0050a545da35f6f","tarball":"https://registry.npmjs.org/observable-slim/-/observable-slim-0.2.2.tgz","fileCount":7,"unpackedSize":116676,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHZnD1yYAjQKBKgLEEbV7b7vJ/xRVIx7P7YShy27+hPnAiAE4MyOOkLvt+Q/3l2wROYA6e0ojshXwI7izdT04der8A=="}]},"_npmUser":{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"},"directories":{},"maintainers":[{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/observable-slim_0.2.2_1764815623305_0.06860727137454514"},"_hasShrinkwrap":false}},"time":{"created":"2018-02-22T18:36:35.071Z","modified":"2025-12-04T02:33:43.639Z","0.0.1":"2018-02-22T18:36:35.134Z","0.0.2":"2018-04-09T20:09:20.923Z","0.0.3":"2018-04-24T22:35:36.259Z","0.0.4":"2018-05-04T07:20:27.116Z","0.0.5":"2018-05-19T01:06:38.952Z","0.0.6":"2018-06-04T03:30:07.850Z","0.0.7":"2018-06-28T17:11:57.537Z","0.0.8":"2018-08-08T20:02:46.050Z","0.0.9":"2018-08-13T17:15:46.602Z","0.1.0":"2018-08-22T03:54:02.455Z","0.1.1":"2018-11-11T01:13:32.278Z","0.1.2":"2018-11-19T03:16:32.451Z","0.1.3":"2018-11-28T20:26:13.438Z","0.1.4":"2018-12-24T05:33:30.992Z","0.1.5":"2019-01-22T05:39:06.777Z","0.1.6":"2022-05-04T19:57:33.576Z","0.2.2":"2025-12-04T02:33:43.464Z"},"bugs":{"url":"https://github.com/ElliotNB/observable-slim/issues"},"author":{"name":"ElliotNB"},"license":"MIT","homepage":"https://github.com/ElliotNB/observable-slim","repository":{"type":"git","url":"git+https://github.com/ElliotNB/observable-slim.git"},"description":"Observable Slim is a singleton that utilizes ES6 Proxies to observe changes made to an object and any nested children of that object. It is intended to assist with state management and one-way data binding.","maintainers":[{"name":"elliotnb","email":"elliot.bradshaw@transformativemed.com"}],"readme":"# :eyes: Observable Slim\r\n\r\n[![Build Status](https://app.travis-ci.com/ElliotNB/observable-slim.svg?branch=master)](https://app.travis-ci.com/ElliotNB/observable-slim) [![Coverage Status](https://coveralls.io/repos/github/ElliotNB/observable-slim/badge.svg)](https://coveralls.io/github/ElliotNB/observable-slim) [![Monthly Downloads](https://img.shields.io/npm/dm/observable-slim.svg)](https://www.npmjs.com/package/observable-slim)\r\n\r\nhttps://github.com/elliotnb/observable-slim\r\n\r\n*A small, dependency-free library that watches deep changes in plain JavaScript objects/arrays and tells you exactly what changed.*\r\n\r\nObservable Slim mirrors JavaScript objects and arrays using ES2015 Proxy, letting you observe deeply nested changes with clear notifications using dotted paths and RFC-6901 JSON Pointers. Engineered for performance, it features **linear O(N) initialization** and lazy path generation, allowing it to scale efficiently even on deep state trees. It safely handles circular references, ensures fast **O(1) lookups** via WeakMap identity tables, and keeps paths accurate even when arrays reorder. You can batch updates for smoother UI rendering, pause/resume observers, and rely on automatic garbage collection for removed data. Lightweight (~6 KB minified), dependency-free, and memory-safe.\r\n\r\n## Table of Contents\r\n\r\n- [Design (Deep Dive)](#design-deep-dive)\r\n- [Features](#features)\r\n- [Installation](#installation)\r\n- [Quick Start](#quick-start)\r\n- [API](#api)\r\n- [Change Record Shape](#change-record-shape)\r\n- [Usage Examples](#usage-examples)\r\n- [Limitations and Browser Support](#limitations-and-browser-support)\r\n- [TypeScript](#typescript)\r\n- [Development](#development)\r\n- [Contributing](#contributing)\r\n\r\n## Design (Deep Dive)\r\n\r\nCurious about the underlying architecture and implementation? See **[docs/design.md](docs/design.md)** for the problem model, core algorithms, complexity, invariants, cycle-safe instrumentation, cross-proxy fan-out, lazy path generation (linked-list lineage), reachability-based teardown, and correctness arguments. It's optional reading, but helpful if you want to understand how the internals stay fast and memory-safe. For validation of scaling/time complexity performance, please see **[bench/results.md](bench/results.md)** for the most recent benchmarking run.\r\n\r\n## Features\r\n\r\n- **Deep observation** of objects and arrays (all nested children)\r\n- **High performance creation** with **O(N) linear scaling**, suitable for deeply nested state trees.\r\n- **Structured change records** with: `type`, `property`, `currentPath` (dot notation), `jsonPointer` (RFC6901), `previousValue`, `newValue`, `target`, `proxy`\r\n- **Batched notifications** with `domDelay` (boolean or ms number)\r\n- **Multiple proxies per target** with safe cross-proxy propagation\r\n- **Pause/resume** observers and **pause/resume changes** (dry-run validation)\r\n- **Accurate array length tracking** using WeakMap bookkeeping\r\n- **Introspection helpers**: `isProxy`, `getTarget`, `getParent`, `getPath`\r\n- **Advanced symbol capabilities** for collision-free internals\r\n- **Configurable orphan-cleanup scheduler** (`configure({ cleanupDelayMs })`) and a **test hook** (`flushCleanup()`) to run pending cleanups immediately\r\n- **TypeScript declarations** included (`observable-slim.d.ts`)\r\n\r\n## Installation\r\n\r\n**Browser (UMD):**\r\n\r\n```html\r\n<script src=\"https://unpkg.com/observable-slim\"></script>\r\n<script>\r\n  const state = { hello: \"world\" };\r\n  const proxy = ObservableSlim.create(state, false, (changes) => console.log(changes));\r\n</script>\r\n```\r\n\r\n**NPM (CommonJS):**\r\n\r\n```bash\r\nnpm install observable-slim --save\r\n```\r\n\r\n```js\r\nconst ObservableSlim = require('observable-slim');\r\n```\r\n\r\n**ES Modules (via bundlers that can import CJS):**\r\n\r\n```js\r\nimport ObservableSlim from 'observable-slim';\r\n```\r\n\r\n## Quick Start\r\n\r\n```js\r\nconst state = { user: { name: 'Ada' }, todos: [] };\r\nconst p = ObservableSlim.create(state, true, (changes) => {\r\n  // Array of change records batched on a small timeout when domDelay === true\r\n  console.log(changes);\r\n});\r\n\r\np.todos.push({ title: 'Write tests', done: false });\r\np.user.name = 'Ada Lovelace';\r\n```\r\n\r\n## API\r\n\r\n### `ObservableSlim.create(target, domDelay, observer?)`\r\n\r\nCreate a new Proxy that mirrors `target` and observes all deep changes.\r\n\r\n- `target`: *object* (required) – plain object/array to observe.\r\n- `domDelay`: *boolean|number* (required) – `true` to batch notifications on \\~10ms timeout; `false` to notify synchronously; number `> 0` to use a custom delay (ms).\r\n- `observer(changes)`: *function* (optional) – receives an *array* of change records.\r\n- **Returns**: the Proxy.\r\n\r\n> Note: Passing an existing Proxy produced by Observable Slim is supported; the underlying original target will be used to avoid nested proxying.\r\n\r\n### `ObservableSlim.observe(proxy, observer)`\r\n\r\nAttach an additional observer to an existing proxy. Observers are called with arrays of change records.\r\n\r\n### `ObservableSlim.pause(proxy)` / `resume(proxy)`\r\n\r\nTemporarily disable/enable *observer callbacks* for the given proxy (no changes are blocked).\r\n\r\n### `ObservableSlim.pauseChanges(proxy)` / `resumeChanges(proxy)`\r\n\r\nDisable/enable *writes to the underlying target* while still issuing change records. Useful for approval flows or validations.\r\n\r\n### `ObservableSlim.remove(proxy)`\r\n\r\nDetach all observers and bookkeeping for the given proxy and its nested proxies created for the same root observable.\r\n\r\n### `ObservableSlim.isProxy(obj)`\r\n\r\nReturn `true` if the argument is a Proxy created by Observable Slim.\r\n\r\n### `ObservableSlim.getTarget(proxy)`\r\n\r\nReturn the original target object behind a Proxy created by Observable Slim.\r\n\r\n### `ObservableSlim.getParent(proxy, depth=1)`\r\n\r\nReturn the parent object of a proxy relative to the top-level observable (climb `depth` levels; default `1`).\r\n\r\n### `ObservableSlim.getPath(proxy, options)`\r\n\r\nReturn the path string of a proxy relative to its root observable.\r\n\r\n- `options = { jsonPointer?: boolean }` – when `true`, return RFC6901 pointer (e.g., `/foo/0/bar`); otherwise dot path (e.g., `foo.0.bar`).\r\n\r\n### Advanced: `ObservableSlim.symbols`\r\n\r\nFor advanced users who need capability-style access without relying on public helpers, the library exposes collision-free Symbols:\r\n\r\n- `ObservableSlim.symbols.IS_PROXY` – brand symbol; `proxy[IS_PROXY] === true`\r\n- `ObservableSlim.symbols.TARGET` – unwrap symbol; `proxy[TARGET] === originalObject`\r\n- `ObservableSlim.symbols.PARENT` – function symbol; `proxy[PARENT](depth)` returns the ancestor\r\n- `ObservableSlim.symbols.PATH` – path symbol; `proxy[PATH]` returns the dot path\r\n\r\n> Symbols are not enumerable and won’t collide with user properties. Prefer the public helpers for most use cases.\r\n\r\n### `ObservableSlim.configure(options)`\r\n\r\nConfigure behavior that affects all observables created in this runtime.\r\n\r\n- `options.cleanupDelayMs: number` – delay (ms) used by the orphan-cleanup scheduler. Set to `0` to run cleanups eagerly; increase to coalesce more work.\r\n\r\n```js\r\nObservableSlim.configure({ cleanupDelayMs: 25 });\r\n```\r\n\r\n### `ObservableSlim.flushCleanup()`\r\n\r\nForce any pending orphan cleanups to run immediately. Useful in tests for deterministic timing; safe to call in production if you need to flush scheduled cleanups now.\r\n\r\n```js\r\nObservableSlim.flushCleanup();\r\n```\r\n\r\n## Change Record Shape\r\n\r\nEvery notification contains an array of objects like:\r\n\r\n```ts\r\n{\r\n  type: 'add' | 'update' | 'delete',\r\n  property: string,\r\n  currentPath: string,   // e.g. \"foo.0.bar\"\r\n  jsonPointer: string,   // e.g. \"/foo/0/bar\"\r\n  target: object,        // the concrete target that changed\r\n  proxy: object,         // proxy for the target\r\n  newValue: any,\r\n  previousValue?: any\r\n}\r\n```\r\n\r\n## Usage Examples\r\n\r\n### Observer output:\r\n\r\nBelow, every mutation is followed by the array that your observer handler function receives:\r\n\r\n```js\r\nconst test = {};\r\nconst p = ObservableSlim.create(test, false, (changes) => {\r\n  console.log(JSON.stringify(changes));\r\n});\r\n\r\np.hello = \"world\";\r\n// => [{\r\n//   \"type\":\"add\",\"target\":{\"hello\":\"world\"},\"property\":\"hello\",\r\n//   \"newValue\":\"world\",\"currentPath\":\"hello\",\"jsonPointer\":\"/hello\",\r\n//   \"proxy\":{\"hello\":\"world\"}\r\n// }]\r\n\r\np.hello = \"WORLD\";\r\n// => [{\r\n//   \"type\":\"update\",\"target\":{\"hello\":\"WORLD\"},\"property\":\"hello\",\r\n//   \"newValue\":\"WORLD\",\"previousValue\":\"world\",\r\n//   \"currentPath\":\"hello\",\"jsonPointer\":\"/hello\",\r\n//   \"proxy\":{\"hello\":\"WORLD\"}\r\n// }]\r\n\r\np.testing = {};\r\n// => [{\r\n//   \"type\":\"add\",\"target\":{\"hello\":\"WORLD\",\"testing\":{}},\r\n//   \"property\":\"testing\",\"newValue\":{},\r\n//   \"currentPath\":\"testing\",\"jsonPointer\":\"/testing\",\r\n//   \"proxy\":{\"hello\":\"WORLD\",\"testing\":{}}\r\n// }]\r\n\r\np.testing.blah = 42;\r\n// => [{\r\n//   \"type\":\"add\",\"target\":{\"blah\":42},\"property\":\"blah\",\"newValue\":42,\r\n//   \"currentPath\":\"testing.blah\",\"jsonPointer\":\"/testing/blah\",\r\n//   \"proxy\":{\"blah\":42}\r\n// }]\r\n\r\np.arr = [];\r\n// => [{\r\n//   \"type\":\"add\",\"target\":{\"hello\":\"WORLD\",\"testing\":{\"blah\":42},\"arr\":[]},\r\n//   \"property\":\"arr\",\"newValue\":[],\r\n//   \"currentPath\":\"arr\",\"jsonPointer\":\"/arr\",\r\n//   \"proxy\":{\"hello\":\"WORLD\",\"testing\":{\"blah\":42},\"arr\":[]}\r\n// }]\r\n\r\np.arr.push(\"hello world\");\r\n// => [{\r\n//   \"type\":\"add\",\"target\":[\"hello world\"],\"property\":\"0\",\r\n//   \"newValue\":\"hello world\",\"currentPath\":\"arr.0\",\"jsonPointer\":\"/arr/0\",\r\n//   \"proxy\":[\"hello world\"]\r\n// }]\r\n\r\ndelete p.hello;\r\n// => [{\r\n//   \"type\":\"delete\",\"target\":{\"testing\":{\"blah\":42},\"arr\":[\"hello world\"]},\r\n//   \"property\":\"hello\",\"newValue\":null,\"previousValue\":\"WORLD\",\r\n//   \"currentPath\":\"hello\",\"jsonPointer\":\"/hello\",\r\n//   \"proxy\":{\"testing\":{\"blah\":42},\"arr\":[\"hello world\"]}\r\n// }]\r\n\r\np.arr.splice(0,1);\r\n// => [{\r\n//   \"type\":\"delete\",\"target\":[],\"property\":\"0\",\"newValue\":null,\r\n//   \"previousValue\":\"hello world\",\"currentPath\":\"arr.0\",\"jsonPointer\":\"/arr/0\",\r\n//   \"proxy\":[]\r\n// },{\r\n//   \"type\":\"update\",\"target\":[],\"property\":\"length\",\"newValue\":0,\r\n//   \"previousValue\":1,\"currentPath\":\"arr.length\",\"jsonPointer\":\"/arr/length\",\r\n//   \"proxy\":[]\r\n// }]\r\n```\r\n\r\n### Arrays in detail (push/unshift/pop/shift/splice)\r\n\r\n```js\r\nconst p = ObservableSlim.create({ arr: [\"foo\",\"bar\"] }, false, (c) => console.log(JSON.stringify(c)));\r\n\r\np.arr.unshift(\"hello\");\r\n// 1) add index 2 moved -> implementation may record reindexes; canonical signal is:\r\n// [{\"type\":\"add\",\"target\":[\"hello\",\"foo\",\"bar\"],\"property\":\"0\",\"newValue\":\"hello\",\r\n//   \"currentPath\":\"arr.0\",\"jsonPointer\":\"/arr/0\",\"proxy\":[\"hello\",\"foo\",\"bar\"]}]\r\n\r\np.arr.pop();\r\n// Deleting last element and updating length; commonly two records over one or two callbacks:\r\n// [{\"type\":\"delete\",\"target\":[\"hello\",\"foo\"],\"property\":\"2\",\"newValue\":null,\r\n//   \"previousValue\":\"bar\",\"currentPath\":\"arr.2\",\"jsonPointer\":\"/arr/2\",\"proxy\":[\"hello\",\"foo\"]}]\r\n// [{\"type\":\"update\",\"target\":[\"hello\",\"foo\"],\"property\":\"length\",\"newValue\":2,\r\n//   \"previousValue\":3,\"currentPath\":\"arr.length\",\"jsonPointer\":\"/arr/length\",\"proxy\":[\"hello\",\"foo\"]}]\r\n\r\np.arr.splice(1,0,\"X\");\r\n// Insert at index 1 and reindex subsequent items:\r\n// [{\"type\":\"add\",\"target\":[\"hello\",\"X\",\"foo\"],\"property\":\"1\",\"newValue\":\"X\",\r\n//   \"currentPath\":\"arr.1\",\"jsonPointer\":\"/arr/1\",\"proxy\":[\"hello\",\"X\",\"foo\"]}]\r\n\r\np.arr.shift();\r\n// Move index 1 down to 0, delete old 1, update length. Typical sequence:\r\n// [{\"type\":\"update\",\"target\":[\"X\",\"foo\"],\"property\":\"0\",\"newValue\":\"X\",\r\n//   \"previousValue\":\"hello\",\"currentPath\":\"arr.0\",\"jsonPointer\":\"/arr/0\",\"proxy\":[\"X\",\"foo\"]}]\r\n// [{\"type\":\"delete\",\"target\":[\"X\",\"foo\"],\"property\":\"1\",\"newValue\":null,\r\n//   \"previousValue\":\"foo\",\"currentPath\":\"arr.1\",\"jsonPointer\":\"/arr/1\",\"proxy\":[\"X\",\"foo\"]}]\r\n// [{\"type\":\"update\",\"target\":[\"X\",\"foo\"],\"property\":\"length\",\"newValue\":2,\r\n//   \"previousValue\":3,\"currentPath\":\"arr.length\",\"jsonPointer\":\"/arr/length\",\"proxy\":[\"X\",\"foo\"]}]\r\n```\r\n\r\n> Notes: Exact batching of array index/length signals can vary by engine and call path. The shapes above are representative and covered by the test suite (push, unshift, pop, shift, splice, and length tracking).\r\n\r\n### Multiple observers and multiple observables\r\n\r\n```js\r\nconst data = { foo: { bar: \"bar\" } };\r\nconst p1 = ObservableSlim.create(data, false, (c) => console.log(\"p1\", c));\r\nObservableSlim.observe(p1, (c) => console.log(\"p1-second\", c));\r\n\r\nconst p2 = ObservableSlim.create(data, false, (c) => console.log(\"p2\", c));\r\n\r\np2.foo.bar = \"baz\"; // triggers both observers on p1 and p2\r\n```\r\n\r\n### Pausing observers vs. pausing changes\r\n\r\n```js\r\nconst p = ObservableSlim.create({ x: 0 }, false, (c) => console.log(\"obs\", c));\r\n\r\nObservableSlim.pause(p);\r\np.x = 1;     // no observer callbacks\r\nObservableSlim.resume(p);\r\n\r\nObservableSlim.pauseChanges(p);\r\np.x = 2;     // observer fires, but underlying target is NOT updated\r\nconsole.log(p.x); // still 0\r\nObservableSlim.resumeChanges(p);\r\np.x = 3;     // observer fires and target is updated\r\n```\r\n\r\n### Introspection helpers and Symbols\r\n\r\n```js\r\nconst state = { a: { b: 1 } };\r\nconst proxy = ObservableSlim.create(state, false, () => {});\r\n\r\nconsole.log(ObservableSlim.isProxy(proxy));     // true\r\nconsole.log(ObservableSlim.getTarget(proxy) === state); // true\r\n\r\nconst child = proxy.a;\r\nconsole.log(ObservableSlim.getParent(child) === proxy);   // parent proxy\r\nconsole.log(ObservableSlim.getPath(child));               // 'a'\r\nconsole.log(ObservableSlim.getPath(child, { jsonPointer:true })); // '/a'\r\n\r\nconst { TARGET, IS_PROXY, PARENT, PATH } = ObservableSlim.symbols;\r\nconsole.log(proxy[IS_PROXY]);      // true\r\nconsole.log(proxy[TARGET] === state); // true\r\nconsole.log(child[PARENT](1) === proxy); // true\r\nconsole.log(child[PATH]);          // 'a'\r\n```\r\n\r\n### Remove an observable\r\n\r\n```js\r\nconst p = ObservableSlim.create({ y: 1 }, false, () => console.log('called'));\r\nObservableSlim.remove(p);\r\np.y = 2; // no callbacks after removal\r\n```\r\n\r\n## Limitations and Browser Support\r\n\r\nThis library requires native ES2015 **Proxy**, **WeakMap** and **Symbol** support.\r\n\r\n- ✅ Chrome 49+, Edge 12+, Firefox 18+, Opera 36+, Safari 10+ (per MDN guidance)\r\n- ❌ Internet Explorer: not supported\r\n\r\n> Polyfills cannot fully emulate `Proxy`; features like property addition/deletion and `.length` interception will not work under a polyfill.\r\n\r\n## TypeScript\r\n\r\nType declarations are published with the package (`observable-slim.d.ts`). Observer callbacks are strongly typed with the change record shape described above.\r\n\r\n## Development\r\n\r\n- **Install deps:** `npm ci`\r\n- **Run tests:** `npm run test`\r\n- **Lint:** `npm run lint` / `npm run lint:fix` to identify and correct code formatting.\r\n- **Type declarations:** `npm run type` generates the `d.ts` file for TypeScript declarations.\r\n- **Build (minified):** `npm run build` emits `.cjs`, `.mjs`, `.js` and `.d.ts` artifacts into the `dist` folder.\r\n\r\n## Contributing\r\n\r\nIssues and PRs are welcome! Please:\r\n\r\n1. Write tests for behavioral changes.\r\n2. Keep the API surface small and predictable.\r\n3. Run `npm run lint` and `npm run test` before submitting.\r\n\r\n## License\r\n\r\n[MIT](./LICENSE)\r\n\r\n---\r\n\r\n## Migration from legacy magic properties\r\n\r\nEarlier versions exposed *string-named* magic fields (e.g., `__isProxy`, `__getTarget`, `__getParent()`, `__getPath`). These have been replaced by safer helpers and Symbols:\r\n\r\n| Legacy (deprecated)         | New API                                                                                   |\r\n| --------------------------- | ----------------------------------------------------------------------------------------- |\r\n| `proxy.__isProxy`           | `ObservableSlim.isProxy(proxy)` or `proxy[ObservableSlim.symbols.IS_PROXY]`               |\r\n| `proxy.__getTarget`         | `ObservableSlim.getTarget(proxy)` or `proxy[ObservableSlim.symbols.TARGET]`               |\r\n| `proxy.__getParent(depth?)` | `ObservableSlim.getParent(proxy, depth)` or `proxy[ObservableSlim.symbols.PARENT](depth)` |\r\n| `proxy.__getPath`           | `ObservableSlim.getPath(proxy)` or `proxy[ObservableSlim.symbols.PATH]`                   |\r\n\r\nThe helpers are preferred for readability and to avoid re-entering traps unnecessarily.\r\n\r\n","readmeFilename":"README.md"}