{"_id":"spa-sm","_rev":"46-aab6c177e79f1a9ba9b95d4ef66e1122","name":"spa-sm","description":"Single Page Application State Manager - 'A bit too much structure' for single page web apps","dist-tags":{"latest":"1.6.0"},"versions":{"0.15.0":{"name":"spa-sm","version":"0.15.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"src/spasm.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","build":"browserify -s spasm -o spasm.js src/spasm.js","postbuild":"uglify -s spasm.js -o spasm.js","prepublish":"npm run build","test":"mochify test/*.js test/**/*.js","autotest":"mochify --watch test/*.js test/**/*.js"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"react":"~0.13.3"},"devDependencies":{"babel-runtime":"^5.8.25","babelify":"~6.3.0","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mochify":"^2.13.0","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5","uglifyify":"^3.0.1"},"browserify":{"transform":[["babelify",{"optional":"runtime"}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"5001bb26d6817db28c15266bd107180f9abd1121","_id":"spa-sm@0.15.0","_shasum":"2a9dad9db2326c1c45c7aaa86d75885217787acb","_from":".","_npmVersion":"2.1.11","_nodeVersion":"0.10.33","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"2a9dad9db2326c1c45c7aaa86d75885217787acb","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.15.0.tgz","integrity":"sha512-mDZJS0pMCxxSYC3nEhrPdygcZkh45I6gaFgatqwn5SDZxyc7I3FC3vLZpMQEvYdwBODAnaQSOX/weAzVC1/8Hg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnUMXRNHMu8BiMt4e0WVyy8+4gbQ1Ex24vPV1Fhd6wBwIgdqp9Xyk9Z6YjYU/DR0t2+pgWfEA4rpt9JySdUnJA8AI="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}]},"0.15.1":{"name":"spa-sm","version":"0.15.1","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"src/spasm.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","build":"browserify -s spasm -o spasm.js src/spasm.js","postbuild":"uglify -s spasm.js -o spasm.js","prepublish":"npm run build","test":"mochify test/*.js test/**/*.js","autotest":"mochify --watch test/*.js test/**/*.js"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"react":"~0.13.3"},"devDependencies":{"babel-runtime":"^5.8.25","babelify":"~6.3.0","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mochify":"^2.13.0","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5","uglifyify":"^3.0.1"},"browserify":{"transform":[["babelify",{"optional":"runtime"}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"55884283f9de254d797c6cbf165f69e570cc136f","_id":"spa-sm@0.15.1","_shasum":"27537bcad1392ffbc7f6f318de52488291de8429","_from":".","_npmVersion":"2.1.11","_nodeVersion":"0.10.33","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"27537bcad1392ffbc7f6f318de52488291de8429","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.15.1.tgz","integrity":"sha512-JEtqE/kIVKUL4JrbGwx6Nv6JdbKXwZVKTN0H9HmfSLWVkWvUE1N8kcH3lkldvXOQXTycjlTNBF2w1X5IwxoPXg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB5sfUfPRZDIWGAKtj4Lx0Wc8J9poqUbMDJBWs3QIySUAiBBNxpg3jZkIM75ViCmPLPY47UH4/A1KRw5b3QRrp3hlQ=="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}]},"0.15.2":{"name":"spa-sm","version":"0.15.2","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"src/spasm.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","build":"browserify -s spasm -o spasm.js src/spasm.js","postbuild":"uglify -s spasm.js -o spasm.js","prepublish":"npm run build","test":"mochify test/*.js test/**/*.js","autotest":"mochify --watch test/*.js test/**/*.js"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"react":"~0.13.3","babel-runtime":"^5.8.25"},"devDependencies":{"babelify":"~6.3.0","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mochify":"^2.13.0","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5","uglifyify":"^3.0.1"},"browserify":{"transform":[["babelify",{"optional":"runtime"}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"cb5dd22c69831a13a6183a906657273e9010fff0","_id":"spa-sm@0.15.2","_shasum":"b85af6bd2df6472f043de7f7533d420c0db073f8","_from":".","_npmVersion":"2.1.11","_nodeVersion":"0.10.33","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"b85af6bd2df6472f043de7f7533d420c0db073f8","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.15.2.tgz","integrity":"sha512-afwdrSsAo9NPAxQ1NIwACz7agifRAe3vt8tY0w9Ak1aqZPAum4a5iy/hds4y6MI572o4mvnFcVdfdntOxgak3Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCubIwV3bxqdGhY3ilp5RpKghiyCGINIlhLm37XFfenIAIhAN11QhnUHoKqquJtWhsEEoolsOAtFBsZVQfDg3RLoxIq"}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}]},"0.16.0":{"name":"spa-sm","version":"0.16.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"src/spasm.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","build":"browserify -s spasm -o spasm.js src/spasm.js","postbuild":"uglify -s spasm.js -o spasm.js","prepublish":"npm run build","test":"mochify test/*.js test/**/*.js","autotest":"mochify --watch test/*.js test/**/*.js"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"react":"~0.13.3","babel-runtime":"^5.8.25","uglifyify":"^3.0.1"},"devDependencies":{"babelify":"~6.3.0","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mochify":"^2.13.0","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"optional":"runtime"}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"616e70347d064e45eb8ff890dc1ad2abc0f244cd","_id":"spa-sm@0.16.0","_shasum":"b82390afbecfe118e5577cd62d375d77cdeca919","_from":".","_npmVersion":"2.1.11","_nodeVersion":"0.10.33","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"b82390afbecfe118e5577cd62d375d77cdeca919","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.16.0.tgz","integrity":"sha512-CrVvOGQehYr1HWJDJrW10BniTLWg9993QkpDX1m7SeScuWkW1u8NvLM0kqnzXAdgAwS4b6ErLzHksD0rciIrrQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCABmiz+1IMj2v1ZK/3YmdaBNv4qlIGhtNsPr1eGAQQOAIhAJuybpY+L1O6Io7/e1yJJC2SK3XSdgImTo5DNaZbnIgC"}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}]},"0.17.0":{"name":"spa-sm","version":"0.17.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"src/spasm.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","build":"browserify -s spasm -o spasm.js src/spasm.js","postbuild":"uglify -s spasm.js -o spasm.js","prepublish":"npm run build","test":"mochify test/*.js test/**/*.js","autotest":"mochify --watch test/*.js test/**/*.js"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"react":"~0.13.3","babel-runtime":"^5.8.25","uglifyify":"^3.0.1"},"devDependencies":{"babelify":"~6.3.0","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mochify":"^2.13.0","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"optional":"runtime"}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"f40fa2994ec496ff2ad9fdba95e5347c831a88da","_id":"spa-sm@0.17.0","_shasum":"57cf8e9d3568730cdcfeed0dc86394726162ff16","_from":".","_npmVersion":"2.1.11","_nodeVersion":"0.10.33","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"57cf8e9d3568730cdcfeed0dc86394726162ff16","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.17.0.tgz","integrity":"sha512-oh9o/9rmcOb956KvIfzZwP+qzlv0fosx9AoDfRL4tYI7/Axr8ZT4uANfsKdtLmYsLtZ3ika7TsvaoVCLE/h1Ow==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIElRZpNPHBBvvrs/Ot2/kLFAL44F8KKV178ZO288ACyiAiEA1MQFbBTIcfu5plsirLoAjpqUJSE9Rg5hSwDoaIROvhs="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}]},"0.18.0":{"name":"spa-sm","version":"0.18.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"src/spasm.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","build":"browserify -s spasm -o spasm.js src/spasm.js","postbuild":"uglify -s spasm.js -o spasm.js","prepublish":"npm run build","test":"mochify test/*.js test/**/*.js","autotest":"mochify --watch test/*.js test/**/*.js"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"react":"~0.13.3","babel-runtime":"^5.8.25","uglifyify":"^3.0.1","js-atom":"^0.4.0"},"devDependencies":{"babelify":"~6.3.0","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mochify":"^2.13.0","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"optional":"runtime"}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"e5c7d257bea4b9a0ba08d8645dda4ea640cc4448","_id":"spa-sm@0.18.0","_shasum":"ee432a67f7be0f477e9f415223255bf19dad7188","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"ee432a67f7be0f477e9f415223255bf19dad7188","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.18.0.tgz","integrity":"sha512-2xhykxYFMSJpgWN9h5u4rGOYH7knlYuoLsPfekPmb9r9V4eGYOTm6RnfdyOs/9osiZvc3uwtLGMCeFHtKu1miw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA2pHzliRr80/Nm8c6oeq5jtQvWAbx2ndpdgnOZ/e/0wAiBq9sncS7zJLB9knPbgo6nvx2uyXl+9eMRQhfSyRhS5kQ=="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}]},"0.18.1":{"name":"spa-sm","version":"0.18.1","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"src/spasm.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","build":"browserify -s spasm -o spasm.js src/spasm.js","postbuild":"uglify -s spasm.js -o spasm.js","prepublish":"npm run build","test":"mochify test/*.js test/**/*.js","autotest":"mochify --watch test/*.js test/**/*.js"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"react":"~0.13.3","babel-runtime":"^5.8.25","uglifyify":"^3.0.1","js-atom":"^0.4.0"},"devDependencies":{"babelify":"~6.3.0","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mochify":"^2.13.0","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"optional":"runtime"}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"fc77b17089f5cdd11b67bb85df0dc4aa5cb2d9b8","_id":"spa-sm@0.18.1","_shasum":"a87fe5ced1118caa1f81882233b6125f9f24f617","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"a87fe5ced1118caa1f81882233b6125f9f24f617","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.18.1.tgz","integrity":"sha512-jNxLqIrZo3oxX7VG0iqInzViGcMrXhRS5wlxIOpsXanIVHXFHNOvy/BAKapdYKzcUaihiUG1ahF4COH8hDt0+Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID+79JYVebMd3mfUQVSNIk/JC1l7nuLwY44JlZ7ls1oRAiAEGBnYsGyUQnB4KGEqB8RY7Xb1ororaY0eFDFJWBcT+A=="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}]},"0.18.2":{"name":"spa-sm","version":"0.18.2","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"src/spasm.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","build":"browserify -s spasm -o spasm.js src/spasm.js","postbuild":"uglify -s spasm.js -o spasm.js","prepublish":"npm run build","test":"mochify test/*.js test/**/*.js","autotest":"mochify --watch test/*.js test/**/*.js"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"react":"~0.13.3","babel-runtime":"^5.8.25","uglifyify":"^3.0.1","js-atom":"^0.4.0"},"devDependencies":{"babelify":"~6.3.0","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mochify":"^2.13.0","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"optional":"runtime"}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"034bcb727a5f6726fdf8d85fa4d6e4e073cc9565","_id":"spa-sm@0.18.2","_shasum":"a0ba050b8365d3bbf378da48af3c8164c5ea8aad","_from":".","_npmVersion":"2.1.11","_nodeVersion":"0.10.33","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"a0ba050b8365d3bbf378da48af3c8164c5ea8aad","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.18.2.tgz","integrity":"sha512-XifFSjNi1Ig7gmMDldtXWvqhAE3zQKuYSlXhMCjz+fdIGN5gNVPvAAvLWQmC5+v3I4qJdKi3ajNVFmphaCrzQA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAOy4ukIOcuyfGMkd4TaMSiz0Jh9c/blEz3OeLz7tojQAiEAtgoykquOGBMs0T1XRchzJE9ZYObyKIx0B3hDgw5Vm5M="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}]},"0.18.3":{"name":"spa-sm","version":"0.18.3","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"src/spasm.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","build":"browserify -s spasm -o spasm.js src/spasm.js","postbuild":"uglify -s spasm.js -o spasm.js","prepublish":"npm run build","test":"mochify test/*.js test/**/*.js","autotest":"mochify --watch test/*.js test/**/*.js"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"react":"~0.13.3","babel-runtime":"^5.8.25","uglifyify":"^3.0.1","js-atom":"^0.4.0"},"devDependencies":{"babelify":"~6.3.0","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mochify":"^2.13.0","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"optional":"runtime"}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"bbad0a16ef820364a806edb7bc0c503b87fdaa28","_id":"spa-sm@0.18.3","_shasum":"839c3d7f8bdacf00ad6cdce3183cd7d3b922f2aa","_from":".","_npmVersion":"2.1.11","_nodeVersion":"0.10.33","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"839c3d7f8bdacf00ad6cdce3183cd7d3b922f2aa","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.18.3.tgz","integrity":"sha512-ejsbFIppJgnpyQ4bcD+5FulclQl0saJLmmEEFcONh+IeLbd5izhpBKTD2hjkP51l62oObWBAnBVFdjvW6wPNPA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICwkl/lBuh/KbyNReqSStLRp9iO4kBnbowwoAFgmcu+9AiBEBjXb50GYUaNGxkA1gqWhwRoBtUIxK8MeymkxaDTM+w=="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}]},"0.19.0":{"name":"spa-sm","version":"0.19.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"src/spasm.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","build":"browserify -s spasm -o spasm.js src/spasm.js","postbuild":"uglify -s spasm.js -o spasm.js","prepublish":"npm run build","test":"mochify test/*.js test/**/*.js","autotest":"mochify --watch test/*.js test/**/*.js"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.0.15","babelify":"^7.2.0","js-atom":"^0.4.0","react":"~0.13.3","uglifyify":"^3.0.1"},"devDependencies":{"browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mochify":"^2.13.0","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"c5234281ecf9a7907cde019460bf2008eaf54518","_id":"spa-sm@0.19.0","_shasum":"9aac6596091d2bf8f94ad14dfeb1ffae33401387","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"9aac6596091d2bf8f94ad14dfeb1ffae33401387","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.19.0.tgz","integrity":"sha512-tcZItaHdM3rE/V6eYMv6WYbfqsTecf8VpcYUFNZJ6aI3ASrjX5IqV7VvPsfVa+0KLfApZrXsUJ3ibe+7p+I1EA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/3iPUYubR+GMvqyfDwS3CW634DHuJhmxUHULwmndVPwIhAJD5bSLvNz2nEJVaQABZYb6JsBx5bTGHJdZCRbU752Px"}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}]},"0.20.0":{"name":"spa-sm","version":"0.20.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"src/spasm.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","build":"browserify -s spasm -o spasm.js src/spasm.js","postbuild":"uglify -s spasm.js -o spasm.js","prepublish":"npm run build","test":"mochify  test/*.js test/**/*.js","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.0.15","babelify":"^7.2.0","js-atom":"^0.4.0","react":"~0.13.3","uglifyify":"^3.0.1"},"devDependencies":{"babel-polyfill":"^6.1.19","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mochify":"^2.13.0","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"6732d2c2f9b14b037a6fecbb5d090a4793875690","_id":"spa-sm@0.20.0","_shasum":"3e205bc423639db4dbf1d0cf989221b80cc91473","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"3e205bc423639db4dbf1d0cf989221b80cc91473","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.20.0.tgz","integrity":"sha512-kPTYNXWzQAwafqGIVBP9mYeim8G3varuEk94wGGWVbLxcB7TdXWUnHU/cBLV44XPJxu597BgmzZKJ9DTjFei5Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF+bEwjREL6p4SFBNSlccDHcWefwdzv2hbp/v9E71+LnAiA8rLKqi1EppXO/HSVIfgbn4IqvSCeIq6SLIy5bnrHgTw=="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}]},"0.21.0":{"name":"spa-sm","version":"0.21.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"src/spasm.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","build":"browserify -s spasm -o spasm.js src/spasm.js","postbuild":"uglify -s spasm.js -o spasm.js","prepublish":"npm run build","test":"mochify  test/*.js test/**/*.js","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.0.15","babelify":"^7.2.0","js-atom":"^0.4.0","react":"~0.13.3","uglifyify":"^3.0.1"},"devDependencies":{"babel-polyfill":"^6.1.19","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mochify":"^2.13.0","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"2414835939b4857e24a7354409e7ffaa35e44171","_id":"spa-sm@0.21.0","_shasum":"95b70cdb6b5fec221228e5922e4ec5c02cb2350c","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"95b70cdb6b5fec221228e5922e4ec5c02cb2350c","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.21.0.tgz","integrity":"sha512-UDpwhEhZcB6DLGKuHrqh0kIsYXwDcdeIqZbflauQajtM8FFqLIJ7HnKWmaaeUMATiS4oDEIzEfYn084nSaDGLQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAnJyfeBO1E/kHtuI/WQz6JS9POjOTgy5AJLNRyFgM+tAiAPVuJ58Autrr3ORL7XVYKFRGXHQYrphSjYh6uysE7DVA=="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}]},"0.22.0":{"name":"spa-sm","version":"0.22.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"src/spasm.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","build":"browserify -s spasm -o spasm.js src/spasm.js","postbuild":"uglify -s spasm.js -o spasm.js","prepublish":"npm run build","test":"mochify  test/*.js test/**/*.js","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.0.15","babelify":"^7.2.0","js-atom":"^0.4.0","react":"~0.13.3","uglifyify":"^3.0.1"},"devDependencies":{"babel-polyfill":"^6.1.19","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mochify":"^2.13.0","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"4083670388d64b03589566db161191742f1e7ea2","_id":"spa-sm@0.22.0","_shasum":"3f6a4ad89481de9f845a669fa062956cfc66b9c8","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"3f6a4ad89481de9f845a669fa062956cfc66b9c8","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.22.0.tgz","integrity":"sha512-w/7MJ+rkueM8JqC0V1d+ngVzaNNU+tm3mMXZLbav76Oaf08fezYX3o/lDtRJ3opae4afO+x+TIrQdywsuTBxZg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDf4o9+oD9LCql9trfrseopZ6CMYtDN3DR+fC7zrSVrYQIgceYCiWysJ+A+uAwxwGq8y9PWMwDuw8j+w4c16Yt5lSI="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}]},"0.22.1":{"name":"spa-sm","version":"0.22.1","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"src/spasm.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","build":"browserify -s spasm -o spasm.js src/spasm.js","postbuild":"uglify -s spasm.js -o spasm.js","prepublish":"npm run build","test":"mochify  test/*.js test/**/*.js","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.0.15","babelify":"^7.2.0","js-atom":"^0.4.0","react":"~0.13.3","uglifyify":"^3.0.1"},"devDependencies":{"babel-polyfill":"^6.1.19","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mochify":"^2.13.0","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"12364275c2127c4d16351347e0b1bcc1b97732c7","_id":"spa-sm@0.22.1","_shasum":"13ca47c56fd88223d5f1accbad573761f7c60411","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"13ca47c56fd88223d5f1accbad573761f7c60411","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.22.1.tgz","integrity":"sha512-orBq3sVU9onf9tLjXtxilzpx1YzH1K+S21tdnwbmUR39vqkhOCkzPxssmjbl2JcpVkFQ7wXvDfM4JieXvOntCw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPt+pgK1ZD32TPP6+EOT9al57wbqDcnWsoc1TyYDqMFAIhAPO6sWxDrIfcl7gUdl2BxdNyz5gdhI63J7HEhfENuHIH"}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}]},"0.23.0":{"name":"spa-sm","version":"0.23.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"src/spasm.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","build":"browserify -s spasm -o spasm.js src/spasm.js","postbuild":"uglify -s spasm.js -o spasm.js","prepublish":"npm run build","test":"mochify  test/*.js test/**/*.js","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.0.15","babelify":"^7.2.0","js-atom":"^0.4.0","react":"~0.13.3","uglifyify":"^3.0.1"},"devDependencies":{"babel-polyfill":"^6.1.19","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mochify":"^2.13.0","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"8ebd98029c472e6fe403cc7469bf028b3eeba6ae","_id":"spa-sm@0.23.0","_shasum":"667523f94f478d0ff03a57737d8106ced14474c3","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"667523f94f478d0ff03a57737d8106ced14474c3","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.23.0.tgz","integrity":"sha512-Za8aQv4/jANq1hrFDKJ7OxyvykLTjJ9VdarAYk1ALlfo0KJWWJsmzaH28ntEShAt10wxhflYturXHLdK3HWP+Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDoqaNjetvU4XJicB8zxt7IKXhAnH3Ko2Mvg4j/cSJg0gIgGQX6c88bzh826V42t8U1qB5Bk9oW0v3GUjEYOZHUjR8="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}]},"0.23.1":{"name":"spa-sm","version":"0.23.1","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"src/spasm.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","build":"browserify -s spasm -o spasm.js src/spasm.js","postbuild":"uglify -s spasm.js -o spasm.js","prepublish":"npm run build","test":"mochify  test/*.js test/**/*.js","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.0.15","babelify":"^7.2.0","js-atom":"^0.4.0","react":"~0.13.3","uglifyify":"^3.0.1"},"devDependencies":{"babel-polyfill":"^6.1.19","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mochify":"^2.13.0","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"273b6c98eecde20ea6a80ba367f738bc5b0bd56c","_id":"spa-sm@0.23.1","_shasum":"5944602923b66c3fd4235c72834809f8f5a7e73a","_from":".","_npmVersion":"2.14.15","_nodeVersion":"4.2.2","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"5944602923b66c3fd4235c72834809f8f5a7e73a","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.23.1.tgz","integrity":"sha512-3Bie0OYgVvR95yVlsyGB9IvjnmgX1BiirQEn5zeB35KRXGallUs58e2HlWkPRxtQNMQwYsCuLT2InJBaJ9NyCA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaq6CrY9l8js83MKJmysadu0AiOr7F5FsYgq0b1DAlwwIhAP4uZloS+WSejLqGUgaaD1CJ6MwhAx1E6vWT0tIvIzm5"}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}]},"0.24.0":{"name":"spa-sm","version":"0.24.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"src/spasm.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","build":"browserify -s spasm -o spasm.js src/spasm.js","postbuild":"uglify -s spasm.js -o spasm.js","prepublish":"npm run build","test":"mochify  test/*.js test/**/*.js","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.0.15","babelify":"^7.2.0","js-atom":"^0.4.0","react":"~0.13.3","uglifyify":"^3.0.1"},"devDependencies":{"babel-polyfill":"^6.1.19","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mochify":"^2.13.0","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"1ad3a2d0f5e962cc3f6754748524788f7c8ed466","_id":"spa-sm@0.24.0","_shasum":"db1a75ac2923e3edf828148c15bef91f70db2f15","_from":".","_npmVersion":"2.14.15","_nodeVersion":"4.2.2","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"db1a75ac2923e3edf828148c15bef91f70db2f15","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.24.0.tgz","integrity":"sha512-hMPYd5Y6junxb6+JmlZYUwajz4TsqFeZ6gp9IZ0Ie5mCjn/QLEDguQZJ+19x8Tohv9dkOb7kSs/E5C22z92Fmw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCYZy7n3tShzx8ru92N7lu192h8EBEivSM2XMdwOT0JAIhAO9A2NKrANnimUpJA7QTxjPGxN8+1Uwe7nkjSxKRUL+G"}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}]},"0.25.0":{"name":"spa-sm","version":"0.25.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"src/spasm.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","build":"browserify -s spasm -o spasm.js src/spasm.js","postbuild":"uglify -s spasm.js -o spasm.js","prepublish":"npm run build","test":"mocha -R progress --require babel-register --recursive test","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.0.15","babelify":"^7.2.0","js-atom":"^0.4.0","react":"~0.13.3","uglifyify":"^3.0.1"},"devDependencies":{"babel-polyfill":"^6.1.19","babel-register":"^6.4.3","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mocha":"^2.3.4","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"44174efd78735228416b5e49d0ebfc771163154b","_id":"spa-sm@0.25.0","_shasum":"697c86aa033adbea78ae9ce52339c3913f9ed03a","_from":".","_npmVersion":"2.14.15","_nodeVersion":"4.2.2","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"697c86aa033adbea78ae9ce52339c3913f9ed03a","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.25.0.tgz","integrity":"sha512-yf/6FhQo0r5OIw+AU+ix+t/EF23cKVaeS/fe8fIC2d4L3kOf8amrbNidgBOEzY3tX7MWD3t1vDJlhL3o8Rgc8Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClzGSY+G/mQg2EFUTtxsIDFxGEPxzdh2r99GIGMZKDZwIhAIDjt3l7SeZcuYFXDmvWoph4ILEJJ6e+bzAESXKMXOpU"}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}]},"0.25.1":{"name":"spa-sm","version":"0.25.1","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"src/spasm.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","build":"browserify -s spasm -o spasm.js src/spasm.js","postbuild":"uglify -s spasm.js -o spasm.js","prepublish":"npm run build","test":"mocha -R progress --require babel-register --recursive test","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.0.15","babelify":"^7.2.0","js-atom":"^0.4.0","react":"~0.13.3","uglifyify":"^3.0.1"},"devDependencies":{"babel-polyfill":"^6.1.19","babel-register":"^6.4.3","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mocha":"^2.3.4","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"1e9402b0bae2a4c5b65218ed0ab6f77b08b9fac7","_id":"spa-sm@0.25.1","_shasum":"1eb7c0491c15ddd35545a61dcc9827f359e57b27","_from":".","_npmVersion":"2.14.15","_nodeVersion":"4.2.2","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"1eb7c0491c15ddd35545a61dcc9827f359e57b27","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.25.1.tgz","integrity":"sha512-PpaEJnmc/w88yaJl5B5AZU/bJoE5Nu0dlbYiExuUGJ0uAt/LnVobjYFVsVYPXKylBK3UVIe11XgO/uULW06x8w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3u4xVaozl0Pr9oyzUY7ndY3B/O+sjXNTTw3q8BUi0XgIgRmvBf5FEqwLpjgp8vPiIDjd3i5XxKKdMt4JUiWZo+C4="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}]},"0.26.0":{"name":"spa-sm","version":"0.26.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"src/spasm.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","build":"browserify -s spasm -o spasm.js src/spasm.js","postbuild":"uglify -s spasm.js -o spasm.js","prepublish":"npm run build","test":"mocha -R progress --require babel-register --recursive test","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.0.15","babelify":"^7.2.0","js-atom":"^0.4.0","react":"~0.13.3","uglifyify":"^3.0.1"},"devDependencies":{"babel-polyfill":"^6.1.19","babel-register":"^6.4.3","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mocha":"^2.3.4","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"14244fa36d50a041fc26aeab46e0ab91356bfd24","_id":"spa-sm@0.26.0","_shasum":"37a30569607314f1dd45b9052a7b461ecb46f7a4","_from":".","_npmVersion":"2.14.15","_nodeVersion":"4.2.2","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"37a30569607314f1dd45b9052a7b461ecb46f7a4","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.26.0.tgz","integrity":"sha512-G5LcMxyzNEaKSg+GtwWU94u7rB4TTaLaLDwGkHx1qBAxy60CtjMRoEn5ii3963vFCnGc19LODWdw/hL2cEQbVA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA7dH8v+SPWuO7ZR8iOgI5hREYiVXrd7AJ3Qwcj9pmmKAiEAvyIf5u0LWxgpv9Kkk+nVmWKQGQJns7AlvVbaY3+ETok="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}]},"0.28.0":{"name":"spa-sm","version":"0.28.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"src/spasm.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","build":"browserify -s spasm -o spasm.js src/spasm.js","postbuild":"uglify -s spasm.js -o spasm.js","prepublish":"npm run build","test":"mocha -R progress --require babel-register --recursive test","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.0.15","babelify":"^7.2.0","js-atom":"^0.4.0","react":"~0.13.3","uglifyify":"^3.0.1"},"devDependencies":{"babel-polyfill":"^6.1.19","babel-register":"^6.4.3","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mocha":"^2.3.4","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"556ee6dca3badb282e191d6c8273e0e21b6ffcc0","_id":"spa-sm@0.28.0","_shasum":"ce4464d897afbcad50987af285ef98c60279a54a","_from":".","_npmVersion":"2.14.15","_nodeVersion":"4.2.2","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"ce4464d897afbcad50987af285ef98c60279a54a","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.28.0.tgz","integrity":"sha512-ZcN4TJUbTRaYakwUjGv9psk+qLD/ucOzF/7NUvFBa0FUNoa9Buf8/y8cz1lA3Xq5AiC4Vx0E3IXVcSEaydhaDQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkBSFR8FzUrtgxLv3pjN+MvbftoS2cz3KIMpqPZCMvWwIhANOMd3SU1QDtz4e+BoNy05NtqUvoukkWc8rD7z8a3mQX"}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}],"_npmOperationalInternal":{"host":"packages-6-west.internal.npmjs.com","tmp":"tmp/spa-sm-0.28.0.tgz_1454913859042_0.6194488953333348"}},"0.29.0":{"name":"spa-sm","version":"0.29.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"index.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","test":"mocha -R progress --require babel-register --recursive test","prebuild":"mkdir -p dist","build":"browserify -s spasm -o dist/spasm.js index.js","postbuild":"uglify -s dist/spasm.js -o dist/spasm.js","prepublish":"npm run build","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.0.15","babelify":"^7.2.0","js-atom":"^0.4.0","react":"~0.13.3","uglifyify":"^3.0.1"},"devDependencies":{"babel-polyfill":"^6.1.19","babel-register":"^6.4.3","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mocha":"^2.3.4","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"6e8929e0541ba793e8f34c333bfb9aeca70e71b0","_id":"spa-sm@0.29.0","_shasum":"592a5974e128ef6d1186ab20f3f96cb0739e766a","_from":".","_npmVersion":"2.14.15","_nodeVersion":"4.2.2","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"592a5974e128ef6d1186ab20f3f96cb0739e766a","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.29.0.tgz","integrity":"sha512-AnOEY9pJqXyOjwPwRbkZP5wWumnHF2fyde0Jk5VTmWq0dtH4/8UbVk0afDAjtZbJny9ZAzJN4Oy2pSLukkRaWw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7ku8l5Rnv/TDH5OLPorulbRCZNa4NEiF6RYzuFIz/uwIhANzz5Ex3oZnswGOj3Q1s/w63xS6k6JeaCjj5NC5RciMF"}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}],"_npmOperationalInternal":{"host":"packages-6-west.internal.npmjs.com","tmp":"tmp/spa-sm-0.29.0.tgz_1455520031784_0.12216373160481453"}},"0.30.0":{"name":"spa-sm","version":"0.30.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"index.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","test":"mocha -R progress --require babel-register --recursive test","prebuild":"mkdir -p dist","build":"browserify -s spasm -o dist/spasm.js index.js","postbuild":"uglify -s dist/spasm.js -o dist/spasm.js","prepublish":"npm run build","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.0.15","babelify":"^7.2.0","js-atom":"^0.4.0","react":"~0.13.3","uglifyify":"^3.0.1"},"devDependencies":{"babel-polyfill":"^6.1.19","babel-register":"^6.4.3","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mocha":"^2.3.4","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"3ef4d35f0d759ce55628e3f91d1b477ec6c4f873","_id":"spa-sm@0.30.0","_shasum":"e4581717fb19b5ced423bfbfdd2d94fb189a06b8","_from":".","_npmVersion":"2.14.15","_nodeVersion":"4.2.2","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"e4581717fb19b5ced423bfbfdd2d94fb189a06b8","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.30.0.tgz","integrity":"sha512-gTz7hGDXKjHTgsCjSpxZDltdz+DtjvQAOEc/gTRXYaL4Ou+QiqS8VPOo+ze6WhVRN4aZNN0lzeS5byBInwMNPQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDsjJzLVtr+815CSTG81lkJqJqADmlux6grLMcGx+B8NwIhAMJy4aP2uOsjVZq5OIIUmMWnLOlOa5fgxg6e8/H081Em"}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/spa-sm-0.30.0.tgz_1456873300585_0.8259187550283968"}},"0.31.0":{"name":"spa-sm","version":"0.31.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"index.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","test":"mocha -R progress --require babel-register --recursive test","prebuild":"mkdir -p dist","build":"browserify -s spasm -o dist/spasm.js index.js","postbuild":"uglify -s dist/spasm.js -o dist/spasm.js","prepublish":"npm run build","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.0.15","babelify":"^7.2.0","js-atom":"^0.4.0","react":"~0.13.3","uglifyify":"^3.0.1"},"devDependencies":{"babel-polyfill":"^6.1.19","babel-register":"^6.4.3","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mocha":"^2.3.4","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"519050c0011cbd284b69b61a84c06b90483fcd71","_id":"spa-sm@0.31.0","_shasum":"a34ebca56029dd3cd236f654ecb8e94489bc0b74","_from":".","_npmVersion":"2.14.15","_nodeVersion":"4.2.2","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"a34ebca56029dd3cd236f654ecb8e94489bc0b74","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.31.0.tgz","integrity":"sha512-FhK7MjN5GJjXQ86ZrIIS9iAdT9jFyt/a4BUCvI6cnx5Tqrbf8PqQ53UTJfzzE07iTQI6+nMkdE4b3BTKIxQSTQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF1enced1XT2kAOrI985BinWM6yfM6q7mUiTiAGEe2iVAiEAqdo7sKnIdg6xB52l+2rJ98Glgpged5PkPSmNCCROzAA="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/spa-sm-0.31.0.tgz_1461149017037_0.8141803054604679"}},"0.32.0":{"name":"spa-sm","version":"0.32.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"index.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","test":"mocha -R progress --require babel-register --recursive test","prebuild":"mkdir -p dist","build":"browserify -s spasm -o dist/spasm.js index.js","postbuild":"uglify -s dist/spasm.js -o dist/spasm.js","prepublish":"npm run build","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.0.15","babelify":"^7.2.0","js-atom":"^0.4.0","react":"~0.13.3","uglifyify":"^3.0.1"},"devDependencies":{"babel-polyfill":"^6.1.19","babel-register":"^6.4.3","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mocha":"^2.3.4","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"56c1eeded0e37f6af966b8e68185e3ce23f22835","_id":"spa-sm@0.32.0","_shasum":"190f313d2563992e847f8ff0ea84d9e3e28890e0","_from":".","_npmVersion":"2.14.15","_nodeVersion":"4.2.2","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"190f313d2563992e847f8ff0ea84d9e3e28890e0","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.32.0.tgz","integrity":"sha512-Irkpr9K7M/+sIKc/9htpEnAu9QioiAdEjd+Pa/NHqJS/n1V6WC80t2pv61QlVR7/M/uakJyrqOJZXrhtzbGozg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCF36Y44z8G6MsXc96BAnVRq8Amg4CDYvcCjX+YbxKuFQIgE+yOEH9vl25z3jQ6y8iMb3me1aM461bhAeagMdEPhr8="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/spa-sm-0.32.0.tgz_1461821657845_0.2565695142839104"}},"0.32.1":{"name":"spa-sm","version":"0.32.1","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"index.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","test":"mocha -R progress --require babel-register --recursive test","prebuild":"mkdir -p dist","build":"browserify -s spasm -o dist/spasm.js index.js","postbuild":"uglify -s dist/spasm.js -o dist/spasm.js","prepublish":"npm run build","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.0.15","babelify":"^7.2.0","js-atom":"^0.4.0","react":"~0.13.3","uglifyify":"^3.0.1"},"devDependencies":{"babel-polyfill":"^6.1.19","babel-register":"^6.4.3","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mocha":"^2.3.4","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"4f5e1074fb49631fd70fe6f751036797b1615d3f","_id":"spa-sm@0.32.1","_shasum":"a88c32c203cbf8ae6d2f1b0a791ecfa76924dc87","_from":".","_npmVersion":"2.14.15","_nodeVersion":"4.2.2","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"a88c32c203cbf8ae6d2f1b0a791ecfa76924dc87","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.32.1.tgz","integrity":"sha512-/QIro9klja46VAhgFfjbOLcMrtRw8Q9q+h/ZQbTB6/xc/PoMQZdHAl++CAmHxHUmoituJRsupb3pIaWR6igUmQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBN1hunKJ6CJp3Nbm4k/4xyUZMzErGnMjPhvk4u3z/auAiBznRnEdgNK2lhhRHS9TCawBNxA49hhx0E2V+7YSPhPjg=="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/spa-sm-0.32.1.tgz_1461822282796_0.9054391738027334"}},"0.33.0":{"name":"spa-sm","version":"0.33.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"index.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","test":"mocha -R progress --require babel-register --recursive test","prebuild":"mkdir -p dist","build":"browserify -s spasm -o dist/spasm.js index.js","postbuild":"uglify -s dist/spasm.js -o dist/spasm.js","prepublish":"npm run build","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.0.15","babelify":"^7.2.0","js-atom":"^0.4.0","react":"~0.13.3","uglifyify":"^3.0.1"},"devDependencies":{"babel-polyfill":"^6.1.19","babel-register":"^6.4.3","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mocha":"^2.3.4","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"899b08f12d58cda46d5e531484403932262cef7f","_id":"spa-sm@0.33.0","_shasum":"8d6c538586d962a28eb9308a9f6f76a8c7ec63cf","_from":".","_npmVersion":"2.14.15","_nodeVersion":"4.2.2","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"8d6c538586d962a28eb9308a9f6f76a8c7ec63cf","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.33.0.tgz","integrity":"sha512-eJ3e1O7hVt3y5kp7xb9T2ibJKvEylKFAG7ibM3l2JraOJf92CQCj1Y+F8Ispbm1ka2PostCoMu1FFEAFg+Zp+A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIQD53YWcphIO3apZGBabeJz14RJD8IzQcjzi+wdcjPTlMQIfNZuxAjm/hGYKlrQZwCObqj+v7rUSSkoDMNTDvgbfkg=="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/spa-sm-0.33.0.tgz_1461959214061_0.3070913087576628"}},"0.34.0":{"name":"spa-sm","version":"0.34.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"index.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","test":"mocha -R progress --require babel-register --recursive test","prebuild":"mkdir -p dist","build":"browserify -s spasm -o dist/spasm.js index.js","postbuild":"uglify -s dist/spasm.js -o dist/spasm.js","prepublish":"npm run build","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.0.15","babelify":"^7.2.0","js-atom":"^0.4.0","react":"~0.13.3","uglifyify":"^3.0.1"},"devDependencies":{"babel-polyfill":"^6.1.19","babel-register":"^6.4.3","browserify":"^11.1.0","browserify-derequire":"^0.9.4","browserify-middleware":"~7.0.0","express":"~4.13.3","formatio":"^1.1.2","jasmine-core":"^2.3.4","mocha":"^2.3.4","nodemon":"~1.4.1","referee":"^1.1.1","referee-sinon":"^1.0.2","sinon":"^1.17.0","uglify":"~0.1.5"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"2d62fb6a5df924923250f836b911d0ec30bdeebd","_id":"spa-sm@0.34.0","_shasum":"1daef72eddbd5b48d4e87faa64375cbd94d73d1a","_from":".","_npmVersion":"2.14.15","_nodeVersion":"4.2.2","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"1daef72eddbd5b48d4e87faa64375cbd94d73d1a","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.34.0.tgz","integrity":"sha512-QxswJATzR7c7siWo/TIJ+ZCH8nNirO9eabpISItL9zMigxNwQMJAknZtFkBRsOdDrXg0ZwxJsIqfVPuUhNyTRQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD09+wXt7IqJeABX4rLoCrodZgXRHseMtHG97OOcza5yAIhANAteiVKBJbaDcXXsq+Vh8k0SlTtc1v7bBnuz4cpxmNu"}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/spa-sm-0.34.0.tgz_1463046385838_0.6105983501765877"}},"0.42.0":{"name":"spa-sm","version":"0.42.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"index.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","test":"mocha -R progress --require babel-register --recursive test","prebuild":"mkdir -p dist","build":"browserify -s spasm -o dist/spasm.js index.js","postbuild":"uglifyjs -o dist/spasm.js dist/spasm.js","prepublish":"npm run build","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.16.0","babelify":"^7.3.0","js-atom":"^0.4.0","uglifyify":"^3.0.4"},"devDependencies":{"babel-polyfill":"^6.16.0","babel-register":"^6.16.3","browserify":"^13.1.1","browserify-derequire":"^0.9.4","browserify-middleware":"^7.1.0","express":"^4.14.0","formatio":"^1.2.0","mocha":"^3.1.2","nodemon":"^1.11.0","react":"^0.13.3","referee":"^1.2.0","referee-sinon":"^1.0.3","sinon":"^1.17.6","uglify-js":"^2.7.3"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"82ae68d0dcbc9363dc983cc1723f1f3b6bffc3f3","_id":"spa-sm@0.42.0","_shasum":"744593a099016cd8c4b4d134d9d16cb4e5daed58","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"744593a099016cd8c4b4d134d9d16cb4e5daed58","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.42.0.tgz","integrity":"sha512-g0PY24oGfU/uEr4P/kxHLXWc/+82wfj453F1aAvvxBfzPAUfmTv8JBe1ghPv6yQJywtGbHauBtzbFheHoKRVDQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC6tUNb/YHypWr7UoBIHSnibRJkwu52ujHZpCx9vYVXnAiBHqqKe08960AYYQqumO8Uev9VGC0vbqP3QE6DNOIjK4Q=="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/spa-sm-0.42.0.tgz_1477375946876_0.869167348369956"}},"0.43.0":{"name":"spa-sm","version":"0.43.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"index.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","test":"mocha -R progress --require babel-register --recursive test","prebuild":"mkdir -p dist","build":"browserify -s spasm -o dist/spasm.js index.js","postbuild":"uglifyjs -o dist/spasm.js dist/spasm.js","prepublish":"npm run build","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.16.0","babelify":"^7.3.0","js-atom":"^0.4.0","uglifyify":"^3.0.4"},"devDependencies":{"babel-polyfill":"^6.16.0","babel-register":"^6.16.3","browserify":"^13.1.1","browserify-derequire":"^0.9.4","browserify-middleware":"^7.1.0","express":"^4.14.0","formatio":"^1.2.0","mocha":"^3.1.2","nodemon":"^1.11.0","react":"^0.13.3","referee":"^1.2.0","referee-sinon":"^1.0.3","sinon":"^1.17.6","uglify-js":"^2.7.3"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"8ef4ef0342c44e74b35a2e5bea8c6e46bcf3fb96","_id":"spa-sm@0.43.0","_shasum":"88d9d9aa9dbcfe4bf0fb5d9ec46b6cbc9ba26608","_from":".","_npmVersion":"2.15.11","_nodeVersion":"6.6.0","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"88d9d9aa9dbcfe4bf0fb5d9ec46b6cbc9ba26608","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.43.0.tgz","integrity":"sha512-n0JwWCvhXbAT/psa0Ri9EK87FZhGsornJ8h3jXuvPMGqy1D+BDUn2Yxp5x+/gYM9keHQU1GnSzjdnvUStPUKcg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkrrcAdrpgPicLP0co8QEKNWt4KyPvH35BOeMC/x/yhQIgQmBLTOz3pMMquRuqyb7E2TbJaj383YQQb0x3vAQJ9II="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/spa-sm-0.43.0.tgz_1477902929506_0.03403113363310695"}},"0.44.0":{"name":"spa-sm","version":"0.44.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"index.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","test":"mocha -R progress --require babel-register --recursive test","prebuild":"mkdir -p dist","build":"browserify -s spasm -o dist/spasm.js index.js","postbuild":"uglifyjs -o dist/spasm.js dist/spasm.js","prepublish":"npm run build","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.16.0","babelify":"^7.3.0","js-atom":"^0.4.0","uglifyify":"^3.0.4"},"devDependencies":{"babel-polyfill":"^6.16.0","babel-register":"^6.16.3","browserify":"^13.1.1","browserify-derequire":"^0.9.4","browserify-middleware":"^7.1.0","express":"^4.14.0","formatio":"^1.2.0","mocha":"^3.1.2","nodemon":"^1.11.0","react":"^0.13.3","referee":"^1.2.0","referee-sinon":"^1.0.3","sinon":"^1.17.6","uglify-js":"^2.7.3"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"b68b7d6a44426a0bfd262c619968a31a88549179","_id":"spa-sm@0.44.0","_shasum":"fb51cda6ea2fd7c297159137fe4b969d87ce9757","_from":".","_npmVersion":"2.15.11","_nodeVersion":"6.6.0","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"fb51cda6ea2fd7c297159137fe4b969d87ce9757","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-0.44.0.tgz","integrity":"sha512-LlVZVffcCUr3zEr8WJr3Mq7qkwysO4VFkH5gE8MU2wPdmmTHuNqwXC8WEZXCzaqb1ENQC8djuAX1yaLKNfdSvg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1CowyFIIxCt69i4t217c7RBzY+ZFG4+LYVx5uU/vTqAIhAMHNvmM0QCCgGp87TMBd1/+dE3VuGYT5sel2bQaFMRYg"}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/spa-sm-0.44.0.tgz_1477903873547_0.6766626068856567"}},"1.0.0":{"name":"spa-sm","version":"1.0.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"index.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","test":"mocha -R progress --require babel-register --recursive test","prebuild":"mkdir -p dist","build":"browserify -s spasm -o dist/spasm.js index.js","postbuild":"uglifyjs -o dist/spasm.js dist/spasm.js","prepublish":"npm run build","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.16.0","babelify":"^7.3.0","js-atom":"^0.4.0","uglifyify":"^3.0.4"},"devDependencies":{"babel-polyfill":"^6.16.0","babel-register":"^6.16.3","browserify":"^13.1.1","browserify-derequire":"^0.9.4","browserify-middleware":"^7.1.0","express":"^4.14.0","formatio":"^1.2.0","mocha":"^3.1.2","nodemon":"^1.11.0","react":"^0.13.3","referee":"^1.2.0","referee-sinon":"^1.0.3","sinon":"^1.17.6","uglify-js":"^2.7.3"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"6aee2c6282853f1718d13f3ee6f69593dd478d97","_id":"spa-sm@1.0.0","_shasum":"88c0c09c236ef7f04c3c94a73e0b1598579d2228","_from":".","_npmVersion":"2.15.11","_nodeVersion":"6.6.0","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"88c0c09c236ef7f04c3c94a73e0b1598579d2228","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-1.0.0.tgz","integrity":"sha512-UINmAzNWfW9Aqz3XAGOYWegwjUhOZ4obe7LPAdouMvpxaXLded9RMo8YN9GGjDZ5GEWpup6Jx8joterAR0hLIw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAZrWPaWv68QTyoNUV5wuP1AyFxxtrfnX3ggQD1R0dvgIgKZ+V5l5Ji+Ae3emfh1LDi25PGhE809VW+fa5BCOpMdk="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/spa-sm-1.0.0.tgz_1477998711530_0.7694553160108626"}},"1.1.0":{"name":"spa-sm","version":"1.1.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"index.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","test":"mocha -R progress --require babel-register --recursive test","prebuild":"mkdir -p dist","build":"browserify -s spasm -o dist/spasm.js index.js","postbuild":"uglifyjs -o dist/spasm.js dist/spasm.js","prepublish":"npm run build","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.16.0","babelify":"^7.3.0","js-atom":"^0.4.0","uglifyify":"^3.0.4"},"devDependencies":{"babel-polyfill":"^6.16.0","babel-register":"^6.16.3","browserify":"^13.1.1","browserify-derequire":"^0.9.4","browserify-middleware":"^7.1.0","express":"^4.14.0","formatio":"^1.2.0","mocha":"^3.1.2","nodemon":"^1.11.0","react":"^0.13.3","referee":"^1.2.0","referee-sinon":"^1.0.3","sinon":"^1.17.6","uglify-js":"^2.7.3"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"1f5144cbe540cf51d6f52d7c5189e33f55dac540","_id":"spa-sm@1.1.0","_shasum":"d48c2f82ad0ad4702407bf3933bef1e987bcf32e","_from":".","_npmVersion":"2.15.11","_nodeVersion":"6.6.0","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"d48c2f82ad0ad4702407bf3933bef1e987bcf32e","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-1.1.0.tgz","integrity":"sha512-CeCOsCnp1eh+HNFAdfq6olcIdjjqHAQWPC8edtb5GmHpzOaeVS6fSMZvFqfEf90Q7P8ZGkDeuEwi6y/Ur5prJQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfUJXjDFXYHU6it6z9DbOh0Hz5E20qct7zo0pC4wlBVgIgZEotbMdfVsVfS+EXcMd9+05ZdZsxQpo5GLH9QRJqeH8="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/spa-sm-1.1.0.tgz_1479198773920_0.6105309505946934"}},"1.2.0":{"name":"spa-sm","version":"1.2.0","description":"Single Page Application State Manager - 'Just enough structure' for single page web apps","main":"index.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","test":"mocha -R progress --require babel-register --recursive test","prebuild":"mkdir -p dist","build":"browserify -s spasm -o dist/spasm.js index.js","postbuild":"uglifyjs -o dist/spasm.js dist/spasm.js","prepublish":"npm run build","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.16.0","babelify":"^7.3.0","js-atom":"^0.4.0","uglifyify":"^3.0.4"},"devDependencies":{"babel-polyfill":"^6.16.0","babel-register":"^6.16.3","browserify":"^13.1.1","browserify-derequire":"^0.9.4","browserify-middleware":"^7.1.0","express":"^4.14.0","formatio":"^1.2.0","mocha":"^3.1.2","nodemon":"^1.11.0","react":"^0.13.3","referee":"^1.2.0","referee-sinon":"^1.0.3","sinon":"^1.17.6","uglify-js":"^2.7.3"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"8e1070cad2d95b695dc054ef6fde5409e966b922","_id":"spa-sm@1.2.0","_shasum":"dcf596085a9ef3d3f1a5e63511244177fd7deff1","_from":".","_npmVersion":"2.15.11","_nodeVersion":"6.6.0","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"dcf596085a9ef3d3f1a5e63511244177fd7deff1","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-1.2.0.tgz","integrity":"sha512-6yWrkYvDxJXb64SO8JQP1pavytcLgBgzIQkYu+UcEwSh/FFAFkrKReeUaZztI14Q4GjpZaxVaY4U5OE1hcWMow==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGXO0e5bOfH8Hi2uQaaijP3TpMB9SQ3u5Kp1395snZ1wIhAJop8fr/bN6GtPqkv4y+6RAj7jks+QgvgpHpqXi7cb5g"}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/spa-sm-1.2.0.tgz_1481113206985_0.277400232385844"}},"1.2.1":{"name":"spa-sm","version":"1.2.1","description":"Single Page Application State Manager - 'A bit too much structure' for single page web apps","main":"index.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","test":"mocha -R progress --require babel-register --recursive test","prebuild":"mkdir -p dist","build":"browserify -s spasm -o dist/spasm.js index.js","postbuild":"uglifyjs -o dist/spasm.js dist/spasm.js","prepublish":"npm run build","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.16.0","babelify":"^7.3.0","js-atom":"^0.4.0","uglifyify":"^3.0.4"},"devDependencies":{"babel-polyfill":"^6.16.0","babel-register":"^6.16.3","browserify":"^13.1.1","browserify-derequire":"^0.9.4","browserify-middleware":"^7.1.0","express":"^4.14.0","formatio":"^1.2.0","mocha":"^3.1.2","nodemon":"^1.11.0","react":"^0.13.3","referee":"^1.2.0","referee-sinon":"^1.0.3","sinon":"^1.17.6","uglify-js":"^2.7.3"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"df75b44cba668b2995fa262324496fae22f3d530","_id":"spa-sm@1.2.1","_shasum":"47239be4630352d3247c5f0bfb84b2435af210f3","_from":".","_npmVersion":"2.15.11","_nodeVersion":"6.6.0","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"47239be4630352d3247c5f0bfb84b2435af210f3","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-1.2.1.tgz","integrity":"sha512-hgoQ7jS8D27estMp1dCSgNCgceP2lrRZ93fQM8Y7SLHCcqTae29bfNni8KZiluaEBqk2ySsGVEBIJV/N684fXQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGt9F7slv3275qbzQ25JWInDYnZFr3f/A9RTNTEOAz9zAiBcVm/0cQpwzxfx+IO7Y1LTFpocPkQ3Qf/p9iptQRWzHw=="}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/spa-sm-1.2.1.tgz_1481801119772_0.6662581365089864"}},"1.3.0":{"name":"spa-sm","version":"1.3.0","description":"Single Page Application State Manager - 'A bit too much structure' for single page web apps","main":"index.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","test":"mocha -R progress --require babel-register --recursive test","prebuild":"mkdir -p dist","build":"browserify -s spasm -o dist/spasm.js index.js","postbuild":"uglifyjs -o dist/spasm.js dist/spasm.js","prepublish":"npm run build","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.16.0","babelify":"^7.3.0","js-atom":"^0.4.0","uglifyify":"^3.0.4"},"devDependencies":{"babel-polyfill":"^6.16.0","babel-register":"^6.16.3","browserify":"^13.1.1","browserify-derequire":"^0.9.4","browserify-middleware":"^7.1.0","express":"^4.14.0","formatio":"^1.2.0","mocha":"^3.1.2","nodemon":"^1.11.0","react":"^0.13.3","referee":"^1.2.0","referee-sinon":"^1.0.3","sinon":"^1.17.6","uglify-js":"^2.7.3"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"2b5594af4bfe7edc1343378976578e11a629a2b0","_id":"spa-sm@1.3.0","_shasum":"f118338ff74ca5ed73339f5db2ae7aac26f9afd2","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.4","_npmUser":{"name":"cjohansen","email":"christian@cjohansen.no"},"dist":{"shasum":"f118338ff74ca5ed73339f5db2ae7aac26f9afd2","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-1.3.0.tgz","integrity":"sha512-OTxiM91SKNaq2xT+ky8/2yMZ597hUsSomjMZYMgFM5NcYXIFR4lZy03qrpzLhVkSHYDgoxqEa/F3Qv6lQbEqCA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD54+WESrjU//yP9SqWktbDduKSWW0jUyHj72Y6u8CyxwIhAIOxvGwHjz0PxId2s2Wp9+2ZfEfNp7027cTA/ONoJM8+"}]},"maintainers":[{"name":"cjohansen","email":"christian@cjohansen.no"},{"name":"toshb","email":"tosh@tosh.no"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/spa-sm-1.3.0.tgz_1484822784920_0.5285848719067872"}},"1.4.0":{"name":"spa-sm","version":"1.4.0","description":"Single Page Application State Manager - 'A bit too much structure' for single page web apps","main":"index.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","test":"mocha -R progress --require babel-register --recursive test","prebuild":"mkdir -p dist","build":"browserify -s spasm -o dist/spasm.js index.js","postbuild":"uglifyjs -o dist/spasm.js dist/spasm.js","prepublish":"npm run build","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"babel-preset-es2015":"^6.16.0","babelify":"^7.3.0","js-atom":"^0.4.0","uglifyify":"^3.0.4"},"devDependencies":{"babel-polyfill":"^6.16.0","babel-register":"^6.16.3","browserify":"^13.1.1","browserify-derequire":"^0.9.4","browserify-middleware":"^7.1.0","express":"^4.14.0","formatio":"^1.2.0","mocha":"^3.1.2","nodemon":"^1.11.0","react":"^0.13.3","referee":"^1.2.0","referee-sinon":"^1.0.3","sinon":"^1.17.6","uglify-js":"^2.7.3"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"ff72a093438358650616232d969fc4ccc8da5ab0","_id":"spa-sm@1.4.0","_shasum":"f88263e6576ccac8a3ad0c470ff72358e30a37fa","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.10.0","_npmUser":{"name":"toshb","email":"tosh@tosh.no"},"dist":{"shasum":"f88263e6576ccac8a3ad0c470ff72358e30a37fa","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-1.4.0.tgz","integrity":"sha512-GAO/oO5zvOBibupa0klSag+mdyGa1ko9CH5dlSno77g9wZhRyjj0jeSSaZUC4UCDlp/iQsV3chnUJL+d7i3plA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDTIsl7jfi6dJC4FDlrCQlwNFuw6+SUnGgwzwzpeTLvhAiBScN9F8HnNR9BviKi+EjTdzNeszQbHK1VoEVoDC5CNuQ=="}]},"maintainers":[{"email":"tosh@tosh.no","name":"toshb"},{"email":"christian@cjohansen.no","name":"cjohansen"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spa-sm-1.4.0.tgz_1506089627614_0.8656150696333498"}},"1.5.0":{"name":"spa-sm","version":"1.5.0","description":"Single Page Application State Manager - 'A bit too much structure' for single page web apps","main":"index.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","test":"mocha -R progress --require babel-register --recursive test","prebuild":"mkdir -p dist","build":"browserify -s spasm -o dist/spasm.js index.js","postbuild":"uglifyjs -o dist/spasm.js dist/spasm.js","prepublish":"npm run build","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"js-atom":"^0.4.0","uglifyify":"^3.0.4"},"devDependencies":{"babel-preset-es2015":"^6.16.0","babelify":"^7.3.0","babel-polyfill":"^6.16.0","babel-register":"^6.16.3","browserify":"^13.1.1","browserify-derequire":"^0.9.4","browserify-middleware":"^7.1.0","express":"^4.14.0","formatio":"^1.2.0","mocha":"^3.1.2","nodemon":"^1.11.0","react":"^0.13.3","referee":"^1.2.0","referee-sinon":"^1.0.3","sinon":"^1.17.6","uglify-js":"^2.7.3"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"a55744b5f1e1bce9e6e73ad7937f15225d696c18","_id":"spa-sm@1.5.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"toshb","email":"tosh@tosh.no"},"dist":{"integrity":"sha512-tuQyf8I1QGmJER1vANU1+xI8YPW5LN+wiecoHtSw00ZedAmHqoGinoQASGzcrNhRhkk1izxGVZaUYqEm8a3j1w==","shasum":"11d50cb818b4e119de5ff12d4f4c68db2de8c58d","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-1.5.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSx1giySYKd9jMkvD7d3kW1qsRsbR8lyar7f40hgWuCgIgCkpuesfxE5NByDFBS+4OArY/+Ll3qaiXTSKyK72NOg8="}]},"maintainers":[{"email":"tosh@tosh.no","name":"toshb"},{"email":"christian@cjohansen.no","name":"cjohansen"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spa-sm-1.5.0.tgz_1512471878430_0.7160354175139219"}},"1.5.1":{"name":"spa-sm","version":"1.5.1","description":"Single Page Application State Manager - 'A bit too much structure' for single page web apps","main":"index.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","test":"mocha -R progress --require babel-register --recursive test","prebuild":"mkdir -p dist","build":"browserify -s spasm -o dist/spasm.js index.js","postbuild":"uglifyjs -o dist/spasm.js dist/spasm.js","prepublish":"npm run build","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"js-atom":"^0.4.0","uglifyify":"^3.0.4"},"devDependencies":{"babel-preset-es2015":"^6.16.0","babelify":"^7.3.0","babel-polyfill":"^6.16.0","babel-register":"^6.16.3","browserify":"^13.1.1","browserify-derequire":"^0.9.4","browserify-middleware":"^7.1.0","express":"^4.14.0","formatio":"^1.2.0","mocha":"^3.1.2","nodemon":"^1.11.0","react":"^0.13.3","referee":"^1.2.0","referee-sinon":"^1.0.3","sinon":"^1.17.6","uglify-js":"^2.7.3"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"1ae533317e271482d482f113b197595f522d7ddb","_id":"spa-sm@1.5.1","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"toshb","email":"tosh@tosh.no"},"dist":{"integrity":"sha512-hY/dzWCo7C9RWk3M3tAkfC9c6gO72dIMIv3YkXGivSdaF9dcohfxOI0KtDEhZ2/inSsSBMj+Xb0N/a6lgYjX4A==","shasum":"b89f15ac567313abbaaad72704ea6bfdf983a3d5","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-1.5.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMkH2DnlXJp65O26FjlBOWC+gtFcvmcztUFWBRsvbx2wIgH5eX75pXR5h3Lk9TiusgaFY5n6X01CTL2S3hLPXqQvQ="}]},"maintainers":[{"email":"tosh@tosh.no","name":"toshb"},{"email":"christian@cjohansen.no","name":"cjohansen"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spa-sm-1.5.1.tgz_1512472012451_0.21543514751829207"}},"1.6.0":{"name":"spa-sm","version":"1.6.0","description":"Single Page Application State Manager - 'A bit too much structure' for single page web apps","main":"dist/index.js","directories":{"test":"test"},"scripts":{"start":"nodemon demo/index.js","test":"mocha -R progress --require babel-register --recursive test","prebuild":"mkdir -p dist","build":"browserify -s spasm -o dist/spasm.js index.js","postbuild":"uglifyjs -o dist/spasm.js dist/spasm.js","prepublish":"npm run build","autotest":"npm run test -- --watch"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","dependencies":{"js-atom":"^0.4.0","uglifyify":"^3.0.4"},"devDependencies":{"babel-preset-es2015":"^6.16.0","babelify":"^7.3.0","babel-polyfill":"^6.16.0","babel-register":"^6.16.3","browserify":"^13.1.1","browserify-derequire":"^0.9.4","browserify-middleware":"^7.1.0","express":"^4.14.0","formatio":"^1.2.0","mocha":"^3.1.2","nodemon":"^1.11.0","react":"^0.13.3","referee":"^1.2.0","referee-sinon":"^1.0.3","sinon":"^1.17.6","uglify-js":"^2.7.3"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}],"uglifyify"],"plugin":["browserify-derequire"]},"gitHead":"5a5f1153c756409125eb0bcdf1848cc53b7e2c1b","_id":"spa-sm@1.6.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"toshb","email":"tosh@tosh.no"},"dist":{"integrity":"sha512-DgYhAL2viiivkfZfxVWCtupm6qhFsRGQg21ncjmMEOT1XbApJ+ZxazToK0F9FXzXCMMvxkeOFDf2KqhrJmXnzA==","shasum":"a9e71c97b3f6b864fc27c857fb8824d6eaca39bf","tarball":"https://registry.npmjs.org/spa-sm/-/spa-sm-1.6.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCZvUrhJips6V2nj+NYMBAZ7iuUGkH5lRga2zwYv6vRgIgNFhqFheiIC3oGwOTJN8rZDSeN5rHAjGCzpYzfTPl3xk="}]},"maintainers":[{"email":"tosh@tosh.no","name":"toshb"},{"email":"christian@cjohansen.no","name":"cjohansen"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spa-sm-1.6.0.tgz_1512472925299_0.6330258506350219"}}},"readme":"# Spa-sm - Single Page Application State Management\n\nSpasm provides \"just enough structure\" to navigate and manage state in single\npage web applications.\n\n## Concepts\n\nSpasm's goal is to help you organize data flow, and separate concerns that\nshould not be conflated:\n\n* Data fetching\n* Data processing\n* Managing client-side state\n* Rendering\n* Triggering actions\n* Syncing/responding to URL updates\n\nSpasm defines three main concepts to help with this separation.\n\n### Routes\n\nSpasm includes a simple router. It supports URL templates with named parts, and\nallows you to order routes by precedence. A route is associated with a page\nname, and is used to resolve which page is being requested.\n\nThe router is bi-directional. It can resolve page name and parameters from URLs,\nand it can generate URLs from a page name and parameters. The router also parses\nand exposes query string parameters, but cannot route based on them.\n\n### Pages\n\nA page is an object with at least a `render` method, and optionally a method to\nfetch data, and a method to process data. When a page is requested, Spasm will\nperform the following steps to render the page:\n\n* Get data with `page.getData({state, location})`\n* Optionally seed state for that page through `page.seedState({pageData, state, location})`\n* Prepare data for rendering with `page.prepareData({pageData, state, location})`\n* Finalize data for rendering with `app.finalizeData(preparedData, location, state)`\n* Call on the app's `render` function with `page.render` and the prepared data\n\nSpasm makes no assumptions about your render function, what or who will render\nyour app, or how this happens.\n\nThe goal of this pipeline is to avoid putting data fetching and processing\ninside UI components. By keeping these separate in pure functions, the UI\nbecomes a 1:1 visual representation of a data structure. This data structure is\ndramatically easier to test than a complex and ever-changing UI.\n\nThe details of the various function calls can be found in the API documentation\nbelow.\n\n### Actions\n\nWhen the user interacts with the application, it needs to perform some work in\nresponse, and most of the time re-render. Spasm suggests that an action is an\nevent with some data. This means that the only thing event handlers in e.g.\nReact components need to do is to emit an event, which again means less logic\ninside the components. Spasm even goes as far as suggesting that the component\nshouldn't even know *what arguments* to pass along with the action. This\ndecision is made by `prepareData` (more on this below).\n\nAn action is implemented as a function. In addition to performing\napplication-specific work, actions can load a new page, manipulate the query\nparameters of the current page, manipulate the client-side state, or trigger a\nrefresh.\n\n## An example\n\nWe start by creating an app instance. Doing so will not make anything appear on\nscreen. The app is bound to an element on the page, and takes in a list of\nroutes:\n\n```js\nimport {createApp} from 'spa-sm';\nimport react from 'react';\n\nconst app = createApp({\n  render(component, data) {\n    react.render(component(data), document.getElementById('app'));\n  }\n});\n```\n\nThe app needs at least one page (we'll add an edit page later):\n\n```js\nconst {h1, div, p} = React.DOM;\n\nconst UserComponent = React.createFactory(React.createClass({\n  render() {\n    return h1({}, 'Hello world');\n  }\n}));\n\napp.addPage('viewUser', '/users/:id', {\n  render: UserComponent\n});\n```\n\nFinally, a call to `start` will trigger the initial render:\n\n```js\napp.start();\n```\n\nVisiting\n[http://localhost:10666/users/chris](http://localhost:10666/users/chris) should\nnow display \"Hello world!\". Let's display the requested user's name. To do so,\nwe will add a function to process the data so the component only receives the\nbits it needs to render.\n\n```js\nconst UserComponent = React.createFactory(React.createClass({\n  render() {\n    return h1({}, this.props.name);\n  }\n}));\n\napp.addPage('viewUser', '/users/:id', {\n  prepareData({location: {params: {id}}}) {\n    const name = id[0].toUpperCase() + id.slice(1);\n    return {\n      name,\n      title: `User: ${name}`\n    };\n  },\n\n  render: UserComponent\n});\n```\n\nIncluding a `title` in the data returned from `prepareData` will cause Spasm to\nupdate `document.title` to reflect it.\n\nIn practice, most pages need to fetch some data from somewhere. Data fetch can\nbe synchronous or asynchronous. If it is asynchronous, `getData` should return a\npromise. The `getData` function receives the current client-side state and the\nlocation, which it can use to inform its retrieval. For instance, if the app\nrequires logging in a user, you might want to store the user in the client-side\nstate, and look it up to retrieve user-specific data:\n\n```js\nconst UserComponent = React.createFactory(React.createClass({\n  render() {\n    return div({},\n               h1({}, this.props.name),\n               p({}, this.props.info));\n  }\n}));\n\napp.addPage('viewUser', '/users/:id', {\n  getData({location: {params: {id}}, state}) {\n    return {\n      id,\n      name: id[0].toUpperCase() + id.slice(1),\n      info: 'Some old user'\n    };\n  },\n\n  prepareData({pageData: user, location}) {\n    return {\n      name: user.name,\n      title: `User: ${user.name}!`,\n      info: user.info\n    };\n  },\n\n  render: UserComponent\n});\n```\n\nThe data returned from `getData` (or eventually resolved from a promise returned\nfrom it) will be included in the object passed to `prepareData` as `pageData`.\n`prepareData` pulls relevant data from the different sources and produces a\nsingle object that will be rendered by the component.\n\nInitial state can be provided when creating the app:\n\n```js\nconst app = createApp(document.getElementById('app'), {\n  state: {currentUser: 'Christian'},\n\n  render(component, data) {\n    react.render(component(data), document.getElementById('app'));\n  }\n});\n```\n\nLet's add an action to the application - a regular link that loads a different\npage. First, we will define the action itself:\n\n```js\napp.addAction('gotoURL', url => app.gotoURL(url));\n```\n\nTo trigger this action in the component, we should first expose it in\n`prepareData`:\n\n```js\nprepareData({pageData: user, location}) {\n  const editUserURL = app.getURL('editUser', user);\n  return {\n    name: user.name,\n    title: `User: ${user.name}!`,\n    info: user.info,\n    editUserURL,\n    actions: {\n      edit: ['gotoURL', editUserURL]\n    }\n  };\n}\n```\n\nThis adds two things: the `editUserURL`, which is generated from the\nbi-directional router, and the action. Note how `prepareData` makes all the\ndecisions on what data to display and what data to pass with actions. This\nseparation of concerns leaves our components wonderfully oblivious about details\nin our data structures, and tightly focused on rendering:\n\n```js\nconst UserComponent = React.createFactory(React.createClass({\n  render() {\n    return div({},\n               h1({}, this.props.name),\n               p({}, this.props.info),\n               p({}, a({\n                 href: this.props.editUserURL,\n                 onClick(e) {\n                   e.preventDefault()\n                   app.triggerAction(this.props.actions.edit);\n                 }\n               }, 'Edit user')));\n  }\n}));\n```\n\nThe event handler used with the click event is so common, that the app instance\nprovides a helper for it:\n\n```js\na({\n  href: this.props.editPageURL,\n  onClick: app.performAction(this.props.actions.edit)\n}, 'Edit page')\n```\n\nThis will currently fail, because we haven't implemented the `editUser` page\nyet, here's a stub:\n\n```js\nconst EditUserComponent = React.createFactory(React.createClass({\n  render() {\n    return div({},\n               h1({}, 'Edit user'));\n  }\n}));\n\napp.addPage('editUser', '/users/:id/edit', {\n  render: EditUserComponent\n});\n```\n\nFor our final example, we will consider adding a \"flash message\" - a message\npinned to the top of the page regardless of which URL you're currently watching.\nWe will start by adding a new action. It will add some data to the client-side\nstate and trigger a re-render.\n\n```js\napp.addAction('updateState', (state, data) => app.updateState(state));\n```\n\nNext up, we will include an action for the UI so it can trigger the flash:\n\n```js\nprepareData({pageData: user, location}) {\n  const editUserURL = app.getURL('editUser', user);\n  return {\n    name: user.name,\n    title: `User: ${user.name}!`,\n    info: user.info,\n    editUserURL,\n    actions: {\n      edit: ['gotoURL', editUserURL],\n      triggerFlash: ['updateState', {flash: {message: 'I am a flash'}}]\n    }\n  };\n}\n```\n\nBecause the flash needs to be available on all pages, we don't want to repeat\nthe code in `prepareData` on all the pages. This is what the app's global\n`finalizeData` is for. It receives the data as prepared by the rendering page,\nalong with the client-side state and the current location:\n\n```js\nimport assign from 'lodash/object/assign';\nimport pick from 'lodash/object/pick';\n\nconst app = createApp(document.getElementById('app'), {\n  state: {currentUser: 'Christian'},\n\n  finalizeData(data, location, state) {\n    return assign(data, pick(state, 'flash'));\n  },\n\n  render(component, data) {\n    react.render(component(data), document.getElementById('app'));\n  }\n});\n```\n\nNow every page in the app will be able to access `flash` on the data passed to\n`render` (if there is a flash). Finally, we render it:\n\n```js\nconst FlashMessage = React.createFactory(React.createClass({\n  render() {\n    if (!this.props.message) {\n      return null;\n    }\n    return p({className: 'flash-message'}, this.props.message);\n  }\n}));\n\nconst UserComponent = React.createFactory(React.createClass({\n  render() {\n    console.log(this.props);\n    const {flash, name, info, editUserURL, actions} = this.props;\n\n    return div({},\n               FlashMessage(flash),\n               h1({}, name),\n               p({}, info),\n               p({}, a({\n                 href: editUserURL,\n                 onClick: app.performAction(actions.edit)\n               }, 'Edit user')),\n               p({}, button({\n                 onClick: app.performAction(actions.triggerFlash)\n               }, 'Trigger flash')));\n  }\n}));\n\nconst EditUserComponent = React.createFactory(React.createClass({\n  render() {\n    return div({},\n               FlashMessage(this.props.flash),\n               h1({}, 'Edit user'));\n  }\n}));\n```\n\nYou might want the flash to disappear automatically after some time. To do so,\nreplace `updateState(state)` with `flashState(state, ms)`, which will undo the\nstate changes after `ms` milliseconds.\n\nThat about sums up the important bits about Spasm. Below you will find complete\nAPI docs for all the details.\n\nThe demo can be found in the `demo` directory, and can be run with `npm start`\n(following `npm install`).\n\n## API docs\n\n### `const app = createApp({state, finalizeData, render})`\n\nCreates a new application instance.\n\n#### `state`\n\nInitial client-side state, as an object. Optional.\n\n#### `finalizeData(preparedData, location, state)`\n\nA function that finalizes data processing before every render. `preparedData` is\nthe data returned from the current page's `prepareData` function. `location` is\nthe result of the router's parsing, see below. `state` is the client-side state.\n\nThe object returned from this function will be passed to the page's `render`\nfunction.\n\n#### render(component, data)\n\nA function that renders the app given the current state. It is passed the\ncurrent page's `render` function (which, when using React, should be a React\ncomponent factory), and the prepared data.\n\n### `app.loadURL(url[, state])`\n\nUse the router to resolve the page for this URL, fetch its data, prepare it, and\nrender. Optionally update client-side state as well.\n\n### `app.gotoURL(url[, state])`\n\nLike `loadURL`, but also push the `url` to the browser.\n\n### `app.replaceURL(url[, state])`\n\nLike `gotoURL`, but will replace the current URL.\n\n### `app.triggerAction(action[, arg1, arg2])`\n\nTriggers an action. If trying to trigger an action that has no handlers, this\nwill throw an exception. The action is an array, where the first element is the\nname of the action, and the remaining elements will be passed as arguments\nto the action. You can also pass additional arguments at call time.\n\nThe action will be called with the action arguments, call-time arguments (if\nany), and the current data as the last argument, e.g.:\n\n```js\napp.addAction('test', (actionArg1, actionArg2, callTimeArg1, {location, pageData, state}) => {\n  // ...\n});\n\n// ...\n\napp.triggerAction(['test', {action: 'args'}, 42], 13);\n```\n\n### `app.getURL(pageName, params)`\n\nUses the bi-directional router to generate a URL from the page name and\nparameters.\n\n### `app.getCurrentURL()`\n\nReturns the URL corresponding to the current page and current state. You can\nmodify `query` in `location` and have it reflected in the URL returned from\n`getCurrentURL`.\n\n```js\napp.action('updateQueryParams', (params, {location}) => {\n  app.updateQueryParams(params);\n});\n```\n\n### `app.refresh([state])`\n\nRuns the current page over again - fetches data, prepares data and renders.\nOptionally takes some new client-side state.\n\n### `app.updateState(state)`\n\nAdd some local state and re-render the application.\n\n### `app.updateQueryParams(params)`\n\nAdd some URL query parameters. This will cause the app to refresh with the new\nquery parameters included in the URL. The new URL will also be loaded in the\nbrowser.\n\n### `app.addAction(actionName, handler)`\n\nDefine an action. There's no expectations on how the action should behave. Most\nactions will want to cause visual changes at some point, and for this purpose,\nyou might be interested in the app's `loadURL`, `updateState`,\n`updateQueryParams`, and `refresh` functions.\n\nThe action handler will be called with an action-specific argument as its first\nargument, and the current data (which consists of `{location, state, pageData}`)\nas its second argument.\n\n### `app.performAction(action)`\n\nConvenience for use as event handler in React components. Returns a function\nthat can be used as an event handler. The handler will call `preventDefault` and\nthen trigger the action.\n\n```js\nReact.DOM.a({onClick: app.performAction(['gotoURL', '/'])}, 'Home');\n```\n\n### `app.addPage(pageName, route, {getData, prepareData, render}, {prefix})`\n\nAdd a page definition. The `prefix` can be used for static URL prefixes that you\ndon't want to be part of the URLs.\n\n#### `pageName`\n\nA string name for the page. Used with routing.\n\n#### `route`\n\nThe URL template that matches this page.\n\n### `app.start()`\n\nKick things off by rendering `location.href`.\n\n### Pages\n\nPages are plain old JavaScript objects. Every page *must* implement the `render`\nfunction, which can be a single React component, e.g.: `{render:\nSomeComponent}`. Additionally, pages may implement `getData` and `prepareData`.\n\n#### `page.getData({state, location})`\n\nFetch data for this page. May return data directly, or a promise that resolves\nwith the data. The state contains whatever was previously put in it. `location`\nis described with the router below.\n\n#### `page.prepareData({pageData, state, location})`\n\nPerform any data processing necessary for rendering the UI and return the object\nto render. `pageData` is the data retrieved with `getData`.\n\nIf the object returned from `prepareData` includes a `title`, it will be used\nfor the page title (e.g. `document.title`).\n\n#### `page.seedState({pageData, state, location})`\n\nSeed state for this page. This function is called after `getData` and before\n`prepareData`, and allows you to add state without triggering recursive renders\n(as `updateState` would do, if called from `getData` or `prepareData`). The\nreturn value from this function is merged into the state before `prepareData` is\ncalled. `prepareData` will receive the freshly updated state.\n\n## The router\n\nThe router is not exposed directly, although it is completely possible to use it\non its own if desired.\n\n### `const routingTable = createRoutes(routes[, {prefix}])`\n\nCreates a routing table. `routes` is an array of routes, where each route is a\ntuple of `[pageName, urlTemplate]`. The `prefix` can be used to ignore static\nURL prefixes, e.g. to target a URL like `/my/app/news/23` with the route\n`/news/:id` and the prefix `/my/app`.\n\n### `const url = toURLString({path, query})`\n\nProduces a URL string from a path and a query parameter object.\n\n### `const url = getURL(routes, page, params)`\n\nGenerates the URL to the given page type with the given parameters.\n\n### `const location = getLocation(routes, url)`\n\nReturns the matching page from the routing table for the giving URL. If no route\nmatches, it returns `null`. The location description includes the following\nproperties:\n\n#### String `page`\n\nThe name of the matching page.\n\n#### String `url`\n\nThe URL matched against.\n\n#### String `path`\n\nOnly the path part of the URL matched against.\n\n#### Object `params`\n\nParameters matched from the route. Any `:paramName` placeholder from URL\ntemplates are included. For instance, if the matching route was `/stuff/:id`,\nthen `params` will contain the `id` property.\n\n#### Object `query`\n\nThe query string, parsed into an object.\n","maintainers":[{"email":"tosh@tosh.no","name":"toshb"},{"email":"christian@cjohansen.no","name":"cjohansen"}],"time":{"modified":"2022-06-26T22:30:36.048Z","created":"2015-10-06T12:43:11.989Z","0.15.0":"2015-10-06T12:43:11.989Z","0.15.1":"2015-10-06T13:04:21.952Z","0.15.2":"2015-10-06T13:19:37.517Z","0.16.0":"2015-10-12T06:55:40.247Z","0.17.0":"2015-10-12T13:08:12.531Z","0.18.0":"2015-10-21T10:21:49.970Z","0.18.1":"2015-10-22T18:47:42.581Z","0.18.2":"2015-11-03T13:42:58.537Z","0.18.3":"2015-11-03T14:57:29.035Z","0.19.0":"2015-11-04T12:42:59.878Z","0.20.0":"2015-11-16T12:35:26.989Z","0.21.0":"2015-11-24T14:27:17.507Z","0.22.0":"2015-12-03T09:14:31.678Z","0.22.1":"2015-12-03T14:31:41.993Z","0.23.0":"2015-12-03T14:43:49.426Z","0.23.1":"2016-01-08T12:33:12.435Z","0.24.0":"2016-01-20T08:13:47.746Z","0.25.0":"2016-01-26T12:37:48.085Z","0.25.1":"2016-01-26T12:56:26.420Z","0.26.0":"2016-01-26T14:28:25.756Z","0.28.0":"2016-02-08T06:44:22.578Z","0.29.0":"2016-02-15T07:07:15.698Z","0.30.0":"2016-03-01T23:01:42.851Z","0.31.0":"2016-04-20T10:43:39.816Z","0.32.0":"2016-04-28T05:34:20.676Z","0.32.1":"2016-04-28T05:44:45.499Z","0.33.0":"2016-04-29T19:46:55.023Z","0.34.0":"2016-05-12T09:46:28.462Z","0.42.0":"2016-10-25T06:12:29.205Z","0.43.0":"2016-10-31T08:35:31.878Z","0.44.0":"2016-10-31T08:51:15.748Z","1.0.0":"2016-11-01T11:11:52.198Z","1.1.0":"2016-11-15T08:32:54.601Z","1.2.0":"2016-12-07T12:20:09.049Z","1.2.1":"2016-12-15T11:25:21.871Z","1.3.0":"2017-01-19T10:46:27.045Z","1.4.0":"2017-09-22T14:13:48.871Z","1.5.0":"2017-12-05T11:04:39.513Z","1.5.1":"2017-12-05T11:06:52.555Z","1.6.0":"2017-12-05T11:22:05.413Z"},"keywords":["react","spa","data flow"],"author":{"name":"Christian Johansen"},"license":"ISC","readmeFilename":"Readme.md","users":{"jhliberty":true}}