{"_id":"re-framejs","_rev":"29-ab678adc19bb3eceacd8ba6373df051c","name":"re-framejs","dist-tags":{"latest":"1.0.9"},"versions":{"0.0.1":{"name":"re-framejs","version":"0.0.1","description":"","main":"dist/re-frame.js","dependencies":{"immutable":"^3.7.5","immutablediff":"^0.4.2","react":"^0.14.3","react-dom":"^0.14.3","rx":"^4.0.7","rx-dom":"^7.0.3"},"devDependencies":{"babel-core":"^6.2.1","babel-loader":"^6.2.0","babel-preset-es2015":"^6.1.18","webpack":"^1.12.9","webpack-dev-server":"^1.14.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"a4d645621b6de18252ab60c9d155c0a4170df7f4","_id":"re-framejs@0.0.1","_shasum":"8d07d7451b5b42f43ec73df34f3df6a794b2a045","_from":".","_npmVersion":"3.5.3","_nodeVersion":"5.5.0","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"8d07d7451b5b42f43ec73df34f3df6a794b2a045","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-0.0.1.tgz","integrity":"sha512-9mbCTdXiaVyLCG5aQIGP7XhR8eL7tp300k3QoLtDKELhGQSVai6XMx3lyYlqgxvP58GzcCxaetEmdBFTMpMqvA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC725KkMJMmF/q2c/c5TYls6QtdRc5eXaa9BmyDn05kQwIgXR47EzbOfpDfjNVL7vG23lqYREzXCFmyB4ZhKAiib7U="}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"packages-5-east.internal.npmjs.com","tmp":"tmp/re-framejs-0.0.1.tgz_1456743980188_0.8313930416479707"}},"0.0.2":{"name":"re-framejs","version":"0.0.2","description":"","main":"dist/re-frame.js","dependencies":{"immutable":"3.7.6","immutablediff":"0.4.2","react":"0.14.7","react-dom":"0.14.7","rx":"4.0.8"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"b5737e587d0398d1b7d4ee50443741b049e72613","_id":"re-framejs@0.0.2","_shasum":"0048039b2ad04b125d90c27965351d28baed2b16","_from":".","_npmVersion":"3.5.3","_nodeVersion":"5.5.0","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"0048039b2ad04b125d90c27965351d28baed2b16","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-0.0.2.tgz","integrity":"sha512-MJ/lbpEejtIfZZJg/CkeO2XLDlETO/40mTOpuyvxIOz2/LGlJpgwB/z3bnwAnoWMeUpI3/H5SmMOkPQF6D6riw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCXSdPSKXmeoOOeuA6GdE7OtjPMIA4yDnBnous7kTZlngIhAMIXlsq2FHK42S4YxzIRolvikGDqllidtQYTgvKV3hz8"}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"packages-6-west.internal.npmjs.com","tmp":"tmp/re-framejs-0.0.2.tgz_1456745077348_0.6759061347693205"}},"0.0.3":{"name":"re-framejs","version":"0.0.3","description":"","main":"dist/re-frame.js","dependencies":{"immutable":"3.7.6","immutablediff":"0.4.2","react":"0.14.7","react-dom":"0.14.7","rx":"4.0.8"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"d9acd1bc95baff330081bcf6c8134b22fda85262","_id":"re-framejs@0.0.3","_shasum":"9c6ce8d198cf3350bfa0d409ca65d2ca0e0f84f4","_from":".","_npmVersion":"3.5.3","_nodeVersion":"5.5.0","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"9c6ce8d198cf3350bfa0d409ca65d2ca0e0f84f4","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-0.0.3.tgz","integrity":"sha512-nFDZhsmZzu6R1JEIqjuQ2Qeu9Z3b6Ss0FkM0JzJIs+s80ebKLsgjfuqz3vgxH50tyHQaLxyGZqsTDF72453+EA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC7qgnvcFi7mHr5eNIN5lsW/ZOT8S9hlioFYV1IJESCqwIgGfQ2sPDcofOyK4bR8iz99RIXPm9VF+eNLp3lb1iA/fU="}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"packages-6-west.internal.npmjs.com","tmp":"tmp/re-framejs-0.0.3.tgz_1456747309426_0.270495385164395"}},"0.0.4":{"name":"re-framejs","version":"0.0.4","description":"","main":"dist/re-frame.js","dependencies":{"immutable":"3.7.6","immutablediff":"0.4.2","react":"0.14.7","react-dom":"0.14.7","rx":"4.0.8"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"b4538286c74313d67056fc0035da54d1be7c6bf2","_id":"re-framejs@0.0.4","_shasum":"346c8d0d0b4fc550bb7f8739c0881b7cff3fc4a5","_from":".","_npmVersion":"3.5.3","_nodeVersion":"5.5.0","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"346c8d0d0b4fc550bb7f8739c0881b7cff3fc4a5","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-0.0.4.tgz","integrity":"sha512-p6csQDay4vN2A8a9wMpainAD4hcA7YcB9UUzaYIhsVxdJNXNjkuESJUZY8OHQ/o/caSmtTVgUHV4gOvy2I5lSg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFZZH3HeOOY2i+qxWDRW5RoJZEQKEtHWcnw4Nd3T/4t+AiEAp/Djp6QReclFFlnlbA5nrS6zp1sLzGLPBDNz1meEnUE="}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"packages-5-east.internal.npmjs.com","tmp":"tmp/re-framejs-0.0.4.tgz_1456755939209_0.6106209685094655"}},"0.0.5":{"name":"re-framejs","version":"0.0.5","description":"","main":"dist/reframe.js","dependencies":{"immutable":"3.7.6","immutablediff":"0.4.2","react":"0.14.7","react-dom":"0.14.7","rx":"4.0.8"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"36fbddc9650a3ab67256a970b7a55c3505a959a7","_id":"re-framejs@0.0.5","_shasum":"bbb20d06a24c7f7aad772ada313ad9fce5d90eb1","_from":".","_npmVersion":"3.5.3","_nodeVersion":"5.5.0","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"bbb20d06a24c7f7aad772ada313ad9fce5d90eb1","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-0.0.5.tgz","integrity":"sha512-uj1a5S2sDXZZH4Pu8dJZ2QMOzEw5vs03yxDPHBgRS3lVntAoK96CH2fpy5it6rjH0cen+BQ91LxB+0+ipTXkgg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCZx/6kKZ9/lWz3jyGE/72YJ7basRbB6Kk2y1OkQsM7wIgVk3eS+iGFnc9WhCZ6GRD0N/yhhBsVmQ8bjSOAXYqFWc="}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/re-framejs-0.0.5.tgz_1456928439974_0.8680405239574611"}},"0.0.6":{"name":"re-framejs","version":"0.0.6","description":"Reagent re-frame implementation using RxJs","main":"dist/reframe.js","files":["dist/reframe.js","LICENSE","README.md"],"dependencies":{"immutable":"3.7.6","react":"0.14.7","rx":"4.0.8"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","immutablediff":"0.4.2","react-dom":"0.14.7","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"a918e0c467d67d103608cb17b71b610960e89ffd","_id":"re-framejs@0.0.6","_shasum":"8393a77957a742bb533a04087d57aff09ef361e6","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"8393a77957a742bb533a04087d57aff09ef361e6","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-0.0.6.tgz","integrity":"sha512-JZjpYbWocnF+xu1GS/QyJi2W1MN2CGxsc4UVN0sdv+ptwVUQToZtjoaiIr1QQ2zLlP6b2PVkybZc6iWlWF03YQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH8o7TJ0/45X5dMlNbpmw1Gka0NyuhJbjQ+noNeKVOl+AiEA8BzEogyYZ7FYih9ckvm5jaM7+2baehzag9oeYJhOg94="}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/re-framejs-0.0.6.tgz_1457935360558_0.12814419413916767"}},"0.0.7":{"name":"re-framejs","version":"0.0.7","description":"Reagent re-frame implementation using RxJs","main":"dist/reframe.js","files":["dist/reframe.js","dist/reframe.js.map","LICENSE","README.md"],"dependencies":{"immutable":"3.7.6","react":"0.14.7","rx":"4.0.8"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","immutablediff":"0.4.2","react-dom":"0.14.7","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"6e8960bbac456e3861fc55a2cf56ff3225a4c0f4","_id":"re-framejs@0.0.7","_shasum":"bbe0bb3b40a5ad6e9d6332c0ce9521763372a7fc","_from":".","_npmVersion":"3.5.3","_nodeVersion":"5.5.0","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"bbe0bb3b40a5ad6e9d6332c0ce9521763372a7fc","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-0.0.7.tgz","integrity":"sha512-yJPUH6pgDxvz8jotHdmlsNndIjI7lWKkOmGu5/Z79DF/yuMmWwB67ZHI686cJHeO2XKhodxneqi88HaKDcaZ6A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFstMxVoGcOgiaLn2WHBNaPnGq0tp/exk/P4u39DHJP5AiB8+VBcpen7txCL738kemN5/b+OmfHNx5gJSD+HskXLWg=="}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/re-framejs-0.0.7.tgz_1458728775857_0.8065535069908947"}},"0.0.8":{"name":"re-framejs","version":"0.0.8","description":"Reagent re-frame implementation using RxJs","main":"dist/reframe.js","files":["dist/reframe.js","dist/reframe.js.map","LICENSE","README.md"],"dependencies":{"immutable":"*","react":"*","rx":"*"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","immutablediff":"0.4.2","react-dom":"0.14.7","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"webpack"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"8a42ee2418f7ca14d9bf4362f8e0eb639eafccbf","_id":"re-framejs@0.0.8","_shasum":"26d127e74c457724516f99f1af3e7d40499cb4b0","_from":".","_npmVersion":"3.5.3","_nodeVersion":"5.5.0","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"26d127e74c457724516f99f1af3e7d40499cb4b0","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-0.0.8.tgz","integrity":"sha512-49A42cFo8bLgHy1zLKMx65GVP0dNxgNfqUkA/JbAGQSiSOFCMu2XTMEfF6sWdHMuqFF4UWBUdV/UvVqI36YedA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDOrNmBUEb3MaAKODzSGYyWS3roiJqRVIfKsGDYYfOf5gIgJ8GuE3y3Mt/Rc02wY23FwOx23mwfh5BE+B2GrOjXs3k="}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/re-framejs-0.0.8.tgz_1459320529142_0.1571524371393025"}},"0.0.9":{"name":"re-framejs","version":"0.0.9","description":"Reagent re-frame implementation using RxJs","main":"dist/reframe.js","files":["dist/reframe.js","dist/reframe.js.map","LICENSE","README.md"],"dependencies":{"immutable":"*","react":"*","rx":"*"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","immutablediff":"0.4.2","react-dom":"0.14.7","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"webpack"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"c90d6226bd831f55f29050022ebd66e9e1f8c973","_id":"re-framejs@0.0.9","_shasum":"5f4040d3e89b5ed8454b8efd79e5c3f02a8199fd","_from":".","_npmVersion":"3.5.3","_nodeVersion":"5.5.0","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"5f4040d3e89b5ed8454b8efd79e5c3f02a8199fd","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-0.0.9.tgz","integrity":"sha512-d2uvph5ZEh9ZbAgnHVxpwtze8rMi/HiuLHrw9oaxWi+T/p/djRvsJARa+dnvjRmXDoCkNPOdCBK8D5DffjRvWw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEEWR7WpJgVEhiXgAYxgCXw3MI7LcFqcYAuw/0T2EpvoAiAu9mNrQdHXxDrpeT0SlgNSmBs8acEwH7xRJVij6AFfMA=="}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/re-framejs-0.0.9.tgz_1459500948591_0.6848493320867419"}},"0.0.10":{"name":"re-framejs","version":"0.0.10","description":"Reagent re-frame implementation using RxJs","main":"dist/reframe.js","files":["dist/reframe.js","dist/reframe.js.map","LICENSE","README.md"],"dependencies":{"immutable":"*","react":"*","rx":"*"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","immutable-diff":"0.1.1","react-dom":"0.14.7","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"webpack"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"30c3f575f13e08f5d986bf7ed856e4e9d28ba1ef","_id":"re-framejs@0.0.10","_shasum":"c9cc44c6a105bcaaabf2ccd833de086a1f1d7dda","_from":".","_npmVersion":"3.8.3","_nodeVersion":"5.10.1","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"c9cc44c6a105bcaaabf2ccd833de086a1f1d7dda","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-0.0.10.tgz","integrity":"sha512-v/d6QZ3P5HI7tqbUxz+tYnNx7NtDCkHpzbep0jjX6Vnfj2MAsnqkboQ7xWRpo+yAHkl8vCdtKl2noNKhoTcoZA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFM8o5I4N6agNuIVSvqF0kmR+GJrwww+Dcx9saBPNvp7AiACb+IjwAkcsqN0ca4c/ljGUc/ed5Yv+CusITaU7VVcRg=="}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/re-framejs-0.0.10.tgz_1461579121346_0.2074901000596583"}},"0.0.11":{"name":"re-framejs","version":"0.0.11","description":"Reagent re-frame implementation using RxJs","main":"dist/reframe.js","files":["dist/reframe.js","dist/reframe.js.map","LICENSE","README.md"],"dependencies":{"immutable":"*","react":"*","rx":"*"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","immutable-diff":"0.1.1","react-dom":"0.14.7","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"webpack"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"96bb0e0787cdf1b3d79a6579c7ebed66bd7912df","_id":"re-framejs@0.0.11","_shasum":"ac9c38a69cc4282ffd23728625b73e7fa9048b6c","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"ac9c38a69cc4282ffd23728625b73e7fa9048b6c","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-0.0.11.tgz","integrity":"sha512-IYZkwLgFRPUeppiJIAyceodms0UELksIfAagPLueekquwF/8KIwhrlwMlVsUivwlbOzsU9DGC16YIHiLRHbT7g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDS//Dyj3DB8dTtz4+n6A+CoHVGQ2mANV5AVEsMoLz2KAIgeLtMBDzFlnlnFrDPXgZepsnVGIHwckainbqEW8ItayE="}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/re-framejs-0.0.11.tgz_1475050140608_0.10121783846989274"}},"0.0.12":{"name":"re-framejs","version":"0.0.12","description":"Reagent re-frame implementation using RxJs","main":"dist/reframe.js","files":["dist/reframe.js","dist/reframe.js.map","LICENSE","README.md"],"dependencies":{"immutable":"*","react":"*","rx":"*"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","immutable-diff":"0.1.1","react-dom":"0.14.7","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"webpack"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"7ab3b990a9e92274c1abb8cb88af1675cedd88dc","_id":"re-framejs@0.0.12","_shasum":"0b711b51709eaf020667c4a36bac4f38d14308e4","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"0b711b51709eaf020667c4a36bac4f38d14308e4","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-0.0.12.tgz","integrity":"sha512-iVMRHfGSu2oCJ62+UQBf79nxl0NbpUeAY3C92z/OqEL2WGXmYW3D6ruxTfi2peEZYZZf3+RlQksOSJgqY1n6YA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPjhrhFIlglLqGlChgIAs7WHoHDWEuHPmsmZl9SMd6JwIhALZrk+EBefm5z+jqBZazN+aPVvvSfDrsLsvMF6uBJc/P"}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/re-framejs-0.0.12.tgz_1475231358186_0.6746324151754379"}},"0.0.13":{"name":"re-framejs","version":"0.0.13","description":"Reagent re-frame implementation using RxJs","main":"dist/reframe.js","files":["dist/reframe.js","dist/reframe.js.map","LICENSE","README.md"],"dependencies":{"immutable":"*","react":"*","rx":"*"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","immutable-diff":"0.1.1","react-dom":"0.14.7","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"webpack"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"633350b3b897a22828aa9a152bfc9b50a7942a14","_id":"re-framejs@0.0.13","_shasum":"4ff0f6d725faa1600f138acbe0f9f41b8e2b13bc","_from":".","_npmVersion":"3.10.7","_nodeVersion":"6.7.0","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"4ff0f6d725faa1600f138acbe0f9f41b8e2b13bc","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-0.0.13.tgz","integrity":"sha512-wllMR6YOtnL37/Rt1GcYQcbfpQr7ltpDI/BtHUypXiuHy1kmFOeEjbaujhYh7DNs/6cYqKuQ4GBLZ9S9TktGFw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRI5lWhF+i2c9zB9txP8nHR+1ljV87iNh6yewYNonn4QIhAOPVvaWoPn+AX7i3aJlLMe4zkYPABVDikD3Qc61RovM+"}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/re-framejs-0.0.13.tgz_1478788246207_0.6072313925251365"}},"0.1.0":{"name":"re-framejs","version":"0.1.0","description":"Reagent re-frame implementation using RxJs","main":"dist/reframe.js","files":["dist/reframe.js","dist/reframe.js.map","LICENSE","README.md"],"dependencies":{"immutable":"*","react":"*","rx":"*"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","immutablediff":"0.4.4","react-dom":"0.14.7","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"webpack"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"1131d4c8e94dae806327386fef9fa90d123eb2ea","_id":"re-framejs@0.1.0","_shasum":"e464c58fc79be2f0cde6506bd388f67ea185bc51","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.1","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"e464c58fc79be2f0cde6506bd388f67ea185bc51","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-0.1.0.tgz","integrity":"sha512-lwteRD2+RGpUtsE37QRIxc2d7v3LZGcttQLoJUx8ATICIVuHXZya1tZIkfvmDtg86D/5g/f11rHVY111BUiRvg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC7rVDdE409A1n1ZSAW9pe8Qk6jQudOMBTAxB0mQYlO/gIgBRq3JEGbXU2KhcHsivjmesAQHA8d2j0ajK6dSFpEbtE="}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/re-framejs-0.1.0.tgz_1487237809758_0.4971026023849845"}},"1.0.0":{"name":"re-framejs","version":"1.0.0","description":"Reagent re-frame implementation using javascript","main":"dist/reframe.js","files":["dist/reframe.js","dist/reframe.js.map","LICENSE","README.md"],"dependencies":{"immutable":"*","react":"*","rx":"*"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","immutablediff":"0.4.4","react-dom":"0.14.7","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"webpack"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"1b63151d072e564d0d398415495c24aed4634af2","_id":"re-framejs@1.0.0","_shasum":"c5007b2eafbb3d4e8d58fee3f5e9b4195333395e","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.1","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"c5007b2eafbb3d4e8d58fee3f5e9b4195333395e","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-1.0.0.tgz","integrity":"sha512-2zBJ10y9QYrtKLvOp05u7e4+n07N85MT9SNtHTrC0Lqrh8ZKri3KXSOYnNWCAdNqZjpn0wKfOk7Tn8uUIjBnvA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHHYfjVoQwkGuObZaIyOpqBUI+fAvNV4x6pSHxRlNNkdAiAnmbUtS84ot8irOmJoUdnV+C3ABZvO9ym6DdHrIzTbjg=="}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/re-framejs-1.0.0.tgz_1493101030049_0.903248094022274"}},"1.0.1":{"name":"re-framejs","version":"1.0.1","description":"Reagent re-frame implementation using javascript","main":"dist/reframe.js","files":["dist/reframe.js","dist/reframe.js.map","LICENSE","README.md"],"dependencies":{"immutable":"*","react":"*","rx":"*"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","immutablediff":"0.4.4","react-dom":"0.14.7","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"webpack"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"c7edc942dfadb8f4b857bec0f28f7030facdd6a5","_id":"re-framejs@1.0.1","_shasum":"54f29aed2ad521ceaa9d19b28690555225c77d15","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.1","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"54f29aed2ad521ceaa9d19b28690555225c77d15","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-1.0.1.tgz","integrity":"sha512-LfwVQvw8CAyrsFJmfLW5xAgJDNqd27mcCGcuHi/KmoeD36ACd+koxMeVId9PVZQ3LrnEjmqqDnPgEjoB1Kir9A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIARXK7+3XYyHIsu/q0cIKH0BZvSecpAayeT1lIYnIBJVAiEA9+A6+J0TAP4RSGxI1CTQ36SoQLEAI6HHioHGDXXbSkk="}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/re-framejs-1.0.1.tgz_1493109409107_0.4109742355067283"}},"0.1.1":{"name":"re-framejs","version":"0.1.1","description":"Reagent re-frame implementation using RxJs","main":"dist/reframe.js","files":["dist/reframe.js","dist/reframe.js.map","LICENSE","README.md"],"dependencies":{"immutable":"*","react":"*","rx":"*"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","immutablediff":"0.4.4","react-dom":"0.14.7","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"webpack"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"2d71c2c52fb7bc2630cf0db4537e151359a52219","_id":"re-framejs@0.1.1","_shasum":"495b44d3a2fdf3c6f2cdc53601132b8c3e2725ca","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.1","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"495b44d3a2fdf3c6f2cdc53601132b8c3e2725ca","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-0.1.1.tgz","integrity":"sha512-VEdFioUGZQvP3yeIcUyrk0AyZPo6M0w+1MehkLCl/9F7sxaUzBS2WJ7iJLAKkAxewSiStZw6FLbG3gk6sA1nIQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHJ3O0knCh7q+cfCsNtNUCu4RdaPTCUonpixuW0J6wiTAiEAnr5IBm81Cv9TrRfN0MattrD3UYaFi7at7BdHWG5TcB8="}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/re-framejs-0.1.1.tgz_1493194733415_0.6264700239989907"}},"1.0.2":{"name":"re-framejs","version":"1.0.2","description":"Reagent re-frame implementation using javascript","main":"dist/reframe.js","files":["dist/reframe.js","dist/reframe.js.map","LICENSE","README.md"],"dependencies":{"immutable":"*","react":"*","rx":"*"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","immutablediff":"0.4.4","react-dom":"0.14.7","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"webpack"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"ff55a41bfbead157cbcf81c45a5288dd7cdac58e","_id":"re-framejs@1.0.2","_shasum":"784cd87518bf9d5c23c917f83b3c37710d076755","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.1","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"784cd87518bf9d5c23c917f83b3c37710d076755","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-1.0.2.tgz","integrity":"sha512-1i9bEDrZecBv6SE2lrha2nFXU4D5XIDIRuyC+ZmokmZD8JHy39b2pSE9SB60+e21KBIvtl2TWyA7QZOFhLL/MA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCXs0FGC1LtMn+JrjUSU9mT5wqVN25cr5UMfs0dBuFFzQIhALQRtIHDrRE3FmUoBZ8Q+oyOp+NTJZmYGvh8gniECyw4"}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/re-framejs-1.0.2.tgz_1493194970088_0.9229420556221157"}},"1.0.3":{"name":"re-framejs","version":"1.0.3","description":"Reagent re-frame implementation using javascript","main":"dist/reframe.js","files":["dist/reframe.js","dist/reframe.js.map","LICENSE","README.md"],"dependencies":{"create-react-class":"15.5.2","immutable":"*","react":"*","rx":"*"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","immutablediff":"0.4.4","react-dom":"0.14.7","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"webpack"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"6c8814706392d2e364ca93b83ad92490b97fa6a0","_id":"re-framejs@1.0.3","_shasum":"252ff5de41e6cb6afd1a05ca6613ba86683c7a55","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.1","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"252ff5de41e6cb6afd1a05ca6613ba86683c7a55","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-1.0.3.tgz","integrity":"sha512-8qhxPp4ajJIYN1DyJcBkVJALgj2YOb0FnEyAIZaCbC2rcRqZcDCj9xFg9+ZAC7Pr5S/itDCMDOcT7NVI8I5b7A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDEZki9mrcgrS6QfsUi73VlaYrY/QcOOSzBXgfzxozOqAIhAK/9laa5N62u6XcEsw6Tfe57S4uYMIWlkKQHMq14+BP+"}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/re-framejs-1.0.3.tgz_1494504825265_0.20558194001205266"}},"1.0.4":{"name":"re-framejs","version":"1.0.4","description":"Reagent re-frame implementation using javascript","main":"dist/reframe.js","files":["dist/reframe.js","dist/reframe.js.map","LICENSE","README.md"],"dependencies":{"create-react-class":"15.5.2","immutable":"*","react":"*","rx":"*"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","immutablediff":"0.4.4","react-dom":"0.14.7","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"webpack"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"c14ac2f0469dccdfe97569d0a44721b9af9f9440","_id":"re-framejs@1.0.4","_shasum":"d73b963b4b60ee3b0569401166e14839f77d190b","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.1","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"d73b963b4b60ee3b0569401166e14839f77d190b","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-1.0.4.tgz","integrity":"sha512-rVIS8COOyM0IAMoY8Rx64iZEl4XL6jflJlXeBHCm5jJlrLgqcfXARjaDSCVfNL3h70wXNnw3LduQd4cmZCbmLQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCYd9xiQl5ewJnTpMfYVer1C1vdzOqpTvF5xqUeufa8rwIhAItlMHDpudPtyagSmvrYIMWgxaFuokLqaPBesZ93WTI7"}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/re-framejs-1.0.4.tgz_1495106990621_0.08399717276915908"}},"1.0.5":{"name":"re-framejs","version":"1.0.5","description":"Reagent re-frame implementation using javascript","main":"dist/reframe.js","files":["dist/reframe.js","dist/reframe.js.map","LICENSE","README.md"],"dependencies":{"create-react-class":"15.5.2","immutable":"*","react":"*","rx":"*"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","immutablediff":"0.4.4","react-dom":"0.14.7","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"webpack"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"22fbcb0c3a93bbf7f552d2d8cb4e372beaf65178","_id":"re-framejs@1.0.5","_shasum":"2f32d6bee740f9687f81976f474db3ec5baaf9cc","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.1","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"2f32d6bee740f9687f81976f474db3ec5baaf9cc","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-1.0.5.tgz","integrity":"sha512-nGIX8QxFB+0hnQiBm/IDHHRarXLxPfjjzUg86/KXT0sg935U2qPsub/5IxHcnMwdzgHXnYxsNzv+GnkRRQM2Gw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCqNhP/ubsBAw9WBt1FhT9oWyiPoslRk+V3FvFSoK3/5gIgZMpFrnVhm63WBxzirjP4INjoGYALcFgRNs8/SS+wgBU="}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/re-framejs-1.0.5.tgz_1496068112913_0.3021394764073193"}},"1.0.6":{"name":"re-framejs","version":"1.0.6","description":"Reagent re-frame implementation using javascript","main":"dist/reframe.js","files":["dist/reframe.js","dist/reframe.js.map","LICENSE","README.md"],"dependencies":{"create-react-class":"15.5.2","immutable":"*","react":"*","rx":"*"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","immutablediff":"0.4.4","react-dom":"0.14.7","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"webpack"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"e139c89f0a81859e049c76e16eac2c0646945a6a","_id":"re-framejs@1.0.6","_shasum":"1fbaf00af941d8e2a69e3a5b5c794f119a4203ae","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.1","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"1fbaf00af941d8e2a69e3a5b5c794f119a4203ae","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-1.0.6.tgz","integrity":"sha512-zfzxieNndXWczTJVyfMihMk3MIHhPPIDghnfHlv4GV7kKTjUq4eTfc7DmYmV6/KqSSyjDFbjej+fUddNFRrVeQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD51RNiYpfZPUFaYTiH7QUa7lkOFl0Xk8pfs3sbZw/8nQIhAL31oKJh3phEBPxbitv+mM2Jh9blhnbAtzgl16mlBBNh"}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/re-framejs-1.0.6.tgz_1496218084149_0.9822719134390354"}},"1.0.7":{"name":"re-framejs","version":"1.0.7","description":"Reagent re-frame implementation using javascript","main":"dist/reframe.js","files":["dist/reframe.js","dist/reframe.js.map","LICENSE","README.md"],"dependencies":{"create-react-class":"15.5.2","immutable":"*","react":"*","rx":"*"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","immutablediff":"0.4.4","react-dom":"0.14.7","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"webpack"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"629dcb3e757baf2a0019dca1a095a06b7c106f57","_id":"re-framejs@1.0.7","_shasum":"55c6b8ba84ff0ad1f47a443c29a606b22a566337","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.1","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"55c6b8ba84ff0ad1f47a443c29a606b22a566337","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-1.0.7.tgz","integrity":"sha512-Gv5n1fgk8gzPB3Yfc3IQimJp+m/bOcBx1hCHplTwu+7NwKGEBezdrYOLbSzshpIkBDoO/KGnTj9PkQTLdND9UQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCn+xMk/DXJrX5mXY6nsAEQbAsEbVsJf5YHAl731PFjLwIhANPX4yLTC82UFYwQRrLs1ovdSBipapATvDO9xs0fr2EJ"}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/re-framejs-1.0.7.tgz_1497427518085_0.4603386679664254"}},"1.0.8":{"name":"re-framejs","version":"1.0.8","description":"Reagent re-frame implementation using javascript","main":"dist/reframe.js","files":["dist/reframe.js","dist/reframe.js.map","LICENSE","README.md"],"dependencies":{"create-react-class":"15.5.2","immutable":"*","react":"*","rx":"*"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","immutablediff":"0.4.4","react-dom":"0.14.7","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"webpack"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"621d5e1e1a6d5483bdcaf1ebc735685bda9c9a9b","_id":"re-framejs@1.0.8","_shasum":"317a321d619ecf26974049c44cfca670701b3e94","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.1","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"shasum":"317a321d619ecf26974049c44cfca670701b3e94","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-1.0.8.tgz","integrity":"sha512-TvN8MMWZGfdBOKQ2SLYuhPz55Fj23gbsRBIurhWmjsMcDPf2nuGBw+KiAWBuzJ0vge6jJp0e0kFMCurwWcF6kg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB6hYSImOpYFhzQA13FaxH87OWblvRJRoJofdtPchIFlAiEAm1lLH753qdp8T50yQ93kpCB+4jBQQXlmvh9KV5LxhVA="}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/re-framejs-1.0.8.tgz_1497440492868_0.49857026315294206"}},"1.0.9":{"name":"re-framejs","version":"1.0.9","description":"Reagent re-frame implementation using javascript","main":"dist/reframe.js","files":["dist/reframe.js","dist/reframe.js.map","LICENSE","README.md"],"dependencies":{"create-react-class":"15.5.2","immutable":"*","react":"*","rx":"*"},"devDependencies":{"babel-core":"6.5.2","babel-loader":"6.2.4","babel-preset-es2015":"6.5.0","immutablediff":"0.4.4","react-dom":"0.14.7","webpack":"1.12.14","webpack-dev-server":"1.14.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"webpack"},"author":{"name":"Tomas Drencak"},"license":"MIT","gitHead":"18916b0aa0b1100de5cd96b48f9184319906c7e4","_id":"re-framejs@1.0.9","_npmVersion":"5.3.0","_nodeVersion":"8.2.1","_npmUser":{"name":"tomasd","email":"tomas@drencak.com"},"dist":{"integrity":"sha512-BX6k8apsIl7SD0gjzyQrkILDdu83DYrzcuuoymyrk7oRFAvyKM/4CYroPXNcAQFtVM7KTM/vrFFoGf+Yise0eQ==","shasum":"edd10f344ecaf97fce4cb0e43fda1ce84610fb62","tarball":"https://registry.npmjs.org/re-framejs/-/re-framejs-1.0.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFNK6sF8ubYOyRjB4z1YH0vZdVtRDRzSaMkq9c7Ve5SyAiEAu6muqwEEsoqyVNLMpGuxjGQi/Yk14JZ/1Hzo9cehEAU="}]},"maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/re-framejs-1.0.9.tgz_1502350415357_0.11341098928824067"}}},"readme":"\n<img src=\"/images/logo/re-frame_128w.png?raw=true\">\n\n## Derived Values, Flowing\n\n> This, milord, is my family's axe. We have owned it for almost nine hundred years, see. Of course,\nsometimes it needed a new blade. And sometimes it has required a new handle, new designs on the\nmetalwork, a little refreshing of the ornamentation ... but is this not the nine hundred-year-old\naxe of my family? And because it has changed gently over time, it is still a pretty good axe,\ny'know. Pretty good.\n\n> -- Terry Pratchett, The Fifth Elephant <br>\n> &nbsp;&nbsp;&nbsp; reflecting on identity, flow and derived values\n\n[![npm version](https://img.shields.io/npm/v/re-framejs.svg?style=flat)](https://www.npmjs.com/package/re-framejs)\n[![GitHub license](https://img.shields.io/github/license/Day8/re-frame.svg)](license.txt)\n\n\n## Why Should You Care?\n\nPerhaps:\n\n1.  You want to develop an [SPA] in javascript, and you are looking for a framework.\n2.  You believe Facebook did something magnificent when it created React, and\n    you are curious about the further implications. Is the combination of\n    `reactive programming`, `functional programming` and `immutable data` going to\n    **completely change everything**?  And, if so, what would that look like in a language\n    that embraces those paradigms?\n3.  You're taking a [Functional Design and Programming course](http://www.eli.sdsu.edu/courses/fall15/cs696/index.html) at San Diego State University\n    and you have a re-frame/reagent assignment due.  You've left the reading a bit late, right?\n4.  You know Redux, Elm, Cycle.js or Pux and you're\n    interested in a ClojureScript implementation, **with a data oriented design**.\n    In this space, re-frame is very old, hopefully in a Gandalf kind of way.\n    First designed in Dec 2014, it even slightly pre-dates the official Elm Architecture,\n    although thankfully we were influenced by early-Elm concepts like `foldp` and `lift`, as well as \n    terrific Clojure projects like [Pedestal App], [Om] and [Hoplon]. Since then,\n    re-frame has pioneered ideas like event handler middleware,\n    coeffect accretion, and de-duplicated signal graphs.\n5.  Which is a lovely segue into the most important point: **re-frame is impressively buzzword compliant**. It has reactivity,\n    unidirectional data flow, pristinely pure functions,\n    interceptors, coeffects, conveyor belts, statechart-friendliness (FSM)\n    and claims an immaculate hammock conception. It also has a charming\n    xkcd reference (soon) and a hilarious, insiders-joke T-shirt,\n    ideal for conferences (in design).  What could possibly go wrong?\n\n[OM]:https://github.com/swannodette/om\n[Hoplon]:http://hoplon.io/\n[Pedestal App]:https://github.com/pedestal/pedestal-app\n\n## re-frame\n\nre-frame is a pattern for writing [SPAs] in javascript, using [React]. It's javascript \nport of clojuresript's [re-frame](https://github.com/Day8/re-frame)\n\nMcCoy might report \"It's MVC, Jim, but not as we know it\".  And you would respond \n\"McCoy, you trouble maker, why even mention an OO pattern? \nre-frame is a **functional framework**.\"\n\nBeing a functional framework, it is about data, and the (pure) functions \nwhich transform that data.\n\n### It is a loop\n\nArchitecturally, re-frame implements \"a perpetual loop\".\n\nTo build an app, you hang pure functions on certain parts of this loop, \nand re-frame looks after the `conveyance of data` \naround the loop, into and out of the transforming functions you \nprovide - hence a tag line of \"Derived Values, Flowing\".\n\n### It does Physics\n\nRemember this diagram from school? The water cycle, right?\n\n<img height=\"350px\" align=\"right\" src=\"/images/the-water-cycle.png?raw=true\">\n\nTwo distinct stages, involving water in different phases, being acted upon\nby different forces: gravity working one way, evaporation/convection the other.\n\nTo understand re-frame, **imagine data flowing around that loop instead of water**.\n\nre-frame\nprovides the conveyance of the data around the loop - the equivalent of gravity, evaporation and convection.\nYou design what's flowing and then you hang functions off the loop at\nvarious points to compute the data's phase changes.\n\nSure, right now, you're thinking \"lazy sod - make a proper Computer Science-y diagram\". But, no.\nJoe Armstrong says \"don't break the laws of physics\" - I'm sure\nyou've seen the videos - and if he says to do something, you do it\n(unless Rich Hickey disagrees, and says to do something else). So,\nthis diagram, apart from being a plausible analogy which might help\nyou to understand re-frame, is **practically proof** it does physics.\n\n### It is a 6-domino cascade\n\n<img align=\"right\" src=\"/images/Readme/Dominoes-small.jpg?raw=true\">\n\nComputationally, each iteration of the loop involves a\nsix domino cascade.\n\nOne domino triggers the next, which triggers the next, et cetera, until we are \nback at the beginning of the loop, whereupon the dominoes spring to attention \nagain, ready for the next iteration of the same cascade.\n\nThe six dominoes are ...\n\n### 1st Domino - Event Dispatch\n\nAn `event` is sent when something happens - the user \nclicks a button, or a websocket receives a new message.\n\nWithout the impulse of a triggering `event`, no six domino cascade occurs.\nIt is only because of `event`s that a re-frame app is propelled,\nloop iteration after loop iteration, from one state to the next.\n\nre-frame is `event` driven.\n\n### 2nd Domino - Event Handling\n\nIn response to an `event`, an application must decide what action to take. This is known as `event handling`.\n\nEvent handler functions compute side effects (known in re-frame simply as `effects`). More accurately, they compute \na **description of `effects`**. This description is a data structure \nwhich says, declaratively, how the world should change (because of the event).\n\nMuch of the time, only the \"application state\" of the SPA itself need\nchange, but sometimes the outside world must also be affected\n(localstore, cookies, databases, emails, logs, etc).\n\n### 3rd Domino - Effect Handling\n\nThe descriptions of `effects` are realised (actioned).\n\nNow, to a functional programmer, `effects` are scary in a \n[xenomorph kind of way](https://www.google.com.au/search?q=xenomorph).\nNothing messes with functional purity\nquite like the need for side effects. On the other hand, `effects` are \nmarvelous because they move the app forward. Without them, an app stays stuck in one state forever,\nnever achieving anything.\n\nSo re-frame embraces the protagonist nature of `effects` - the entire, unruly zoo of them - but\nit does so in a largely hidden way, and in a manner which is debuggable, auditable, mockable and pluggable.\n\n### We're At A Pivot Point\n\nThe world just changed and, very often, one particular part of it: the **application state**.\n\nre-frame's `app state` is held in one place - think of it like you \nwould an in-memory, central database for the app (details later).\n\nWhen domino 3 changes this `app state`, it triggers the next part of the cascade \ninvolving dominoes 4-5-6.\n\n### There's a Formula  \n\nThe 4-5-6 domino cascade implements the formula made famous by Facebook's ground-breaking React library:  \n  `v = f(s)`\n\nA view, `v`, is a function, `f`, of the app state, `s`.\n\nSaid another way, there are functions `f` that compute which DOM nodes, `v`,\nshould be displayed to the user when the application is in a given app state, `s`.\n\nOr, differently: **over time**, as `s` changes, `f`\nwill be re-run each time to compute new `v`, forever keeping `v` up to date with the current `s`.\n\nIn our case, domino 3 changes `s`, the application state,\nand, in response, dominoes 4-5-6 are concerned with re-running `f` to compute the new `v` \nshown to the user.\n\nExcept, of course, there are nuances.  For instance, there's no single `f` to run.\nThere may be many functions which collectively build the overall DOM, \nand only part of `s` may change at any one time, so only part of the \n`v` (DOM) need be re-computed and updated. And some parts of `v` might not \nbe showing right now.\n\n\n### Domino 4 - Query\n\n<img align=\"right\" src=\"/images/Readme/6dominoes.png?raw=true\">\n\nDomino 4 is about extracting data from \"app state\", and providing it \nin the right format for view functions (which are Domino 5).\n\nDomino 4 is a novel and efficient de-duplicated signal graph which \nruns query functions on the app state, `s`, efficiently computing \nreactive, multi-layered, \"materialised views\" of `s`.\n\n(Relax about any unfamiliar terminology, you'll soon \nsee how simple the code actually is)\n\n### Domino 5 - View\n\nDomino 5 is one or more **view functions** (aka Reagent components) that compute the \nUI DOM that should be displayed to the user.\n\nTo render the right UI, they need to source application state, which is\ndelivered reactively via the queries of Domino 4. They \ncompute hiccup-formatted data, which is a description of the DOM required.\n\n### Domino 6 - DOM\n\nYou don't write Domino 6 - it is handled for you \nby Reagent/React. I mention it here \nfor completeness and to fully close the loop.\n\nThis is the step in which the hiccup-formatted \n\"descriptions of required DOM\", returned by the view functions of Domino 5, are made real.\nThe browser DOM nodes are mutated. \n\n\n## A Cascade Of Simple Functions\n\n**Each of the dominoes you write are simple, pure functions** which \ncan be described, understood and \ntested independently. They take data, transform it and return new data.\n\nThe loop itself is very mechanical in operation.\nSo, there's a regularity, simplicity and\ncertainty to how a re-frame app goes about its business,\nwhich leads, in turn, to an ease in reasoning and debugging. This is \nkey to why re-frame is pleasing to work with - it is just so \nstraightforward.\n\n## Managing mutation\n\nThe two sub-cascades 1-2-3 and 4-5-6 have a similar structure.\n\nIn each, it is the second to last domino which \ncomputes \"descriptions\" of mutations required, and it is \nthe last domino which does the dirty work and realises these descriptions.\n\nIn both cases, you don't need to worry yourself about this dirty work. re-frame looks \nafter those dominoes.\n\n## As Code Fragments\n\n<img align=\"right\" src=\"/images/Readme/todolist.png?raw=true\">\n\nLet's take this domino narrative further and introduce code fragments.\n\n**Imagine:** We're working on a SPA which displays a list of items. You have \njust clicked the \"delete\" button next to the 3rd item in the list.\n\nIn response, what happens within this imaginary re-frame app? Here's a sketch \nof the six domino cascade:\n\n> Don't expect \nto completely grok the terse code presented below. We're still at 30,000 feet. Details later. \n\n### Code For Domino 1\n\nThe delete button for that 3rd item will have an `on-click` handler (function) which looks\nlike this:\n```javascript\n() => reframe.dispatch(['delete-item', 2486])\n```\n\n`dispatch` emits an `event`.\n\nA re-frame `event` is a vector and, in this case, \nit has 2 elements: `['delete-item', 2486]`. The first element,\n`delete-item`, is the kind of event. The rest is optional, further data about the \n`event` - in this case, my made-up id, `2486`, for the item to delete.\n\n### Code For Domino 2\n\nThe `event handler`, `h`, associated with \n`delete-item`, is called to compute the `effect` of this event.\n\nThis handler function, `h`, takes two arguments: a `coeffects` map \nwhich holds the current state of the world (including app state),\nand the `event`. It must return a map of `effects` - a description \nof how the world should change. Here's a sketch (we are at 30,000 feet):\n```javascript\nfunction h(ctx, [_, itemId]){ // extract id from event vector\n    const db = ctx.get('db'); // db from coeffect\n    return {db: db.deleteIn(['items', itemId])};\n}\n```\n\nThere are mechanisms in re-frame (beyond us here) whereby you can place\nall necessary aspects of the world into that first `coeffects` argument, on a \nper event-kind basis (different events need to know different things \nin order to get their job done). The current application state, `db`, \nis one aspect of the world which is invariably needed. \n\nOn program startup, `h` would have been \nassociated with `:delete-item` `events` like this:\n```javascript\nreframe.regEventFx('delete-item', h);\n```\nWhich says \"when you see a `:delete-item` event, use `h` to handle it\".\n\n### Code For Domino 3\n\nAn `effect handler` (function) puts into action the `effects` returned by `h`:\n```javascript\n{db: db.deleteIn(['items', itemId])}\n```\nSo that's a map. The keys identify the required kinds of `effect`, and the values \nsupply further details. This map only has one key, so there's only one effect.  \n\nA key of `db` means to update the app state with the key's value.\n\nThis update of \"app state\" is a mutative step, facilitated by re-frame\nwhich has a built in effects handler for the `:db` effect. \n\nWhy the name `db`?  re-frame sees \"app state\" as something of an in-memory \ndatabase.\n\n### Code For Domino 4\n\nBecause a new version of \"app state\" has been computed and installed, \na query (function) over this app state is called automatically (reactively), \nitself computing the list of items.\n\nBecause the items \nare stored in app state, there's not a lot to compute in this case. This \nsubscription acts more like an accessor.\n```javascript\nfunction queryFn(db, _) { // db is current app state\n    return db.get('items'); // not much of a materialised view\n}\n```\n\nOn program startup, such a query-fn must be associated with an id, \n(for reasons obvious in the next domino) like this:\n```javascript\nreframe.regSub('query-items', queryFn);\n```\nWhich says \"when you see a query (subscribe) for `query-items`, use `query-fn` to handle it\".\n\n### Code For Domino 5\n\nBecause the query function re-computed a new value, a view (function) which subscribes\nto \"items\", is called automatically (reactively) to re-compute DOM.\n\nIt produces \na hiccup-formatted data structure describing the DOM nodes required (no DOM nodes \nfor the deleted item, obviously, but otherwise the same DOM as last time).\n\n```javascript\nconst ItemsView = reframe.view('ItemsView', function() {\n    const items = this.derefSub(['query-items']); // source items from app state\n    return <div>{ items.map(itemRender).toJS() }</div>; // assume itemRender already written\n});\n```\n\nNotice how `items` is \"sourced\" from \"app state\" via `derefSub`. It is called with a query id\nto identify what data it needs.   \n\n### Code For Domino 6\n\nThe computed DOM is made real by React. No code from you required. Just happens.\n\nThe DOM \"this\ntime\" is the same as last time, except for the absence of DOM for the\ndeleted item, so the mutation will be to remove some DOM nodes.\n\n### 3-4-5-6 Summary\n\nThe key point to understand about our 3-4-5-6 example is:\n  - a change to app state ...\n  - triggers query functions to rerun ...\n  - which triggers view functions to rerun\n  - which causes new DOM \n\nBoom, boom, boom go the dominoes. It is a reactive data flow. \n\n### Aaaaand we're done \n\nAt this point, the re-frame app returns to a quiescent state, \nwaiting for the next event.\n\n## So, your job is ... \n\nWhen building a re-frame app, you will: \n - design your app's information model (data and schema layer)\n - write and register event handler functions  (control and transition layer)  (domino 2)\n - (once in a blue moon) write and register effect and coeffect handler \n   functions (domino 3) which do the mutative dirty work of which we dare not \n   speak. \n - write and register query functions which implement nodes in a signal graph (query layer) (domino 4)\n - write Reagent view functions  (view layer)  (domino 5)\n\n\n\n**Scale changes everything.** Frameworks\nare just pesky overhead at small scale - measure them instead by how they help\nyou tame the complexity of bigger apps, and in this regard re-frame has\nworked out well. Some have been effusive in their praise.\n\nHaving said that, re-frame remains a work in progress and it falls\nshort in a couple of ways - for example it doesn't work as well as we'd\nlike with devcards, because it is a framework, rather than a library. \nWe're still puzzling over some aspects and tweaking as we go. All designs\nrepresent a point in the possible design space, with pros and cons.\n\n## Where Do I Go Next?\n\n**At this point you \nalready know 50% of re-frame.** There's detail to fill in, for sure,\nbut the core concepts, and even basic coding techniques, are now known to you.\n\nNext you need to read read the other three articles in the [Introduction section](/docs#introduction):\n\n* [Application State](/docs/ApplicationState.md)\n* [Code Walkthrough](/docs/CodeWalkthrough.md)\n* [Mental Model Omnibus](/docs/MentalModelOmnibus.md)\n\nThis will get your knowledge to about 70%. The\nfinal 30% will come incrementally with use, and by reading the other\ntutorials (of which there's a few).\n\nYou can also experiment with these examples: <br>\nhttps://github.com/Day8/re-frame/tree/master/examples\n\nUse these resources: <br>\nhttps://github.com/Day8/re-frame/blob/develop/docs/External-Resources.md\n\n[SPAs]:http://en.wikipedia.org/wiki/Single-page_application\n[SPA]:http://en.wikipedia.org/wiki/Single-page_application\n[Reagent]:http://reagent-project.github.io/\n","maintainers":[{"name":"tomasd","email":"tomas@drencak.com"}],"time":{"modified":"2022-06-25T15:22:20.378Z","created":"2016-02-29T11:06:21.708Z","0.0.1":"2016-02-29T11:06:21.708Z","0.0.2":"2016-02-29T11:24:40.665Z","0.0.3":"2016-02-29T12:01:52.444Z","0.0.4":"2016-02-29T14:25:40.789Z","0.0.5":"2016-03-02T14:20:43.435Z","0.0.6":"2016-03-14T06:02:43.209Z","0.0.7":"2016-03-23T10:26:18.493Z","0.0.8":"2016-03-30T06:48:53.893Z","0.0.9":"2016-04-01T08:55:51.412Z","0.0.10":"2016-04-25T10:12:03.986Z","0.0.11":"2016-09-28T08:09:01.476Z","0.0.12":"2016-09-30T10:29:20.122Z","0.0.13":"2016-11-10T14:30:47.031Z","0.1.0":"2017-02-16T09:36:51.942Z","1.0.0":"2017-04-25T06:17:12.384Z","1.0.1":"2017-04-25T08:36:51.186Z","0.1.1":"2017-04-26T08:18:54.488Z","1.0.2":"2017-04-26T08:22:52.000Z","1.0.3":"2017-05-11T12:13:47.428Z","1.0.4":"2017-05-18T11:29:52.696Z","1.0.5":"2017-05-29T14:28:34.079Z","1.0.6":"2017-05-31T08:08:05.417Z","1.0.7":"2017-06-14T08:05:19.340Z","1.0.8":"2017-06-14T11:41:34.126Z","1.0.9":"2017-08-10T07:33:36.870Z"},"author":{"name":"Tomas Drencak"},"license":"MIT","readmeFilename":"README.md","description":"Reagent re-frame implementation using javascript","users":{"danlipsitt":true}}