{"_id":"freeloader-js","_rev":"40-823b0eaed4e1b71b6c8b0c749cca77c4","name":"freeloader-js","description":"Client side control","dist-tags":{"latest":"0.2.0"},"versions":{"0.0.1":{"name":"freeloader-js","version":"0.0.1","description":"Client side control","main":"freeloader.js","directories":{"test":"test"},"scripts":{"test":"test"},"repository":{"type":"git","url":"https://github.com/greim/freeloader.git"},"author":{"name":"gregreimer@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/greim/freeloader/issues"},"homepage":"https://github.com/greim/freeloader","dependencies":{"await":"^0.2.4","lodash":"^2.4.1","jquery":"^2.1.1"},"devDependencies":{"vinyl-source-stream":"^0.1.1","gulp":"^3.6.1","watchify":"^0.7.2","express":"~4.0.0","static-favicon":"~1.0.0","morgan":"~1.0.0","cookie-parser":"~1.0.1","body-parser":"~1.0.0","debug":"~0.7.4","jade":"~1.3.0"},"_id":"freeloader-js@0.0.1","dist":{"shasum":"be5d3270e4af05ef757c01b146c926efec2f7206","tarball":"https://registry.npmjs.org/freeloader-js/-/freeloader-js-0.0.1.tgz","integrity":"sha512-xtqpQ8dhT176qZjmMhMRRkQkQ8ioR8Q929AH7u+VN/f9Jt3BEFlBjNsPfepe7UPNGaLzAgUyaNgfc1kg5SI7pQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICREGbFqQbAOhI+2eg1Xic0LfC6FhDvuH9IP1t4io8p0AiAsbv6NJgZIEaPRA0MbHTRxqXoOs6rZ8G6db9pEmbuPSg=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"greim","email":"gregreimer@gmail.com"},"maintainers":[{"name":"greim","email":"gregreimer@gmail.com"}]},"0.0.2":{"name":"freeloader-js","version":"0.0.2","description":"Client side control","main":"freeloader.js","directories":{"test":"test"},"scripts":{"test":"test"},"repository":{"type":"git","url":"https://github.com/greim/freeloader.git"},"author":{"name":"gregreimer@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/greim/freeloader/issues"},"homepage":"https://github.com/greim/freeloader","dependencies":{"await":"^0.2.4","lodash":"^2.4.1","jquery":"^2.1.1"},"devDependencies":{"vinyl-source-stream":"^0.1.1","gulp":"^3.6.1","watchify":"^0.7.2","express":"~4.0.0","static-favicon":"~1.0.0","morgan":"~1.0.0","cookie-parser":"~1.0.1","body-parser":"~1.0.0","debug":"~0.7.4","jade":"~1.3.0"},"_id":"freeloader-js@0.0.2","dist":{"shasum":"caa343c43793763ebb46a72be62a502cc5133113","tarball":"https://registry.npmjs.org/freeloader-js/-/freeloader-js-0.0.2.tgz","integrity":"sha512-WWuKXL8I/KUibGIJlZsEX6OcjfwzgumD+iTvh5NcN2ADLPyVpJmaYyR0w46HHWUjxelkbKjZJdk0x7eK4tn9Fw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDH8e2ljl/sEkaXEh2ICCqXwrprxTzwp9pS7jSc+6ga9AIgKhDPpB/fndcspLCkDwE714OrwyHhJIvh3os8hELKxNY="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"greim","email":"gregreimer@gmail.com"},"maintainers":[{"name":"greim","email":"gregreimer@gmail.com"}]},"0.0.3":{"name":"freeloader-js","version":"0.0.3","description":"Client side control","main":"freeloader.js","directories":{"test":"test"},"scripts":{"test":"test"},"repository":{"type":"git","url":"https://github.com/greim/freeloader.git"},"author":{"name":"gregreimer@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/greim/freeloader/issues"},"homepage":"https://github.com/greim/freeloader","dependencies":{"await":"^0.2.4","lodash":"^2.4.1","jquery":"^2.1.1"},"devDependencies":{"vinyl-source-stream":"^0.1.1","gulp":"^3.6.1","watchify":"^0.7.2","express":"~4.0.0","static-favicon":"~1.0.0","morgan":"~1.0.0","cookie-parser":"~1.0.1","body-parser":"~1.0.0","debug":"~0.7.4","jade":"~1.3.0"},"_id":"freeloader-js@0.0.3","dist":{"shasum":"3d79c341dd43aa6e74dbfeaaf58d52bceaf96d32","tarball":"https://registry.npmjs.org/freeloader-js/-/freeloader-js-0.0.3.tgz","integrity":"sha512-lyVMC9etnM95osW7FsBDSOI6PMSFGyTFSLiPbJlgSi9sGokYP9OBckMKmkeztpIe3U68bfGihg98QV1EuqykoA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF/WpR8cuIw/B0c1O/VePyCA41kbY4aNSWJjaa+AvwQ9AiAulDc4anz8CjXX4kQ+8OSLDV/nAd2X3zyhHSxIUY6Xmw=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"greim","email":"gregreimer@gmail.com"},"maintainers":[{"name":"greim","email":"gregreimer@gmail.com"}]},"0.0.4":{"name":"freeloader-js","version":"0.0.4","description":"Client side control","main":"freeloader.js","directories":{"test":"test"},"scripts":{"test":"test"},"repository":{"type":"git","url":"https://github.com/greim/freeloader.git"},"author":{"name":"gregreimer@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/greim/freeloader/issues"},"homepage":"https://github.com/greim/freeloader","dependencies":{"await":"^0.2.4","lodash":"^2.4.1","jquery":"^2.1.1"},"devDependencies":{"vinyl-source-stream":"^0.1.1","gulp":"^3.6.1","watchify":"^0.7.2","express":"~4.0.0","static-favicon":"~1.0.0","morgan":"~1.0.0","cookie-parser":"~1.0.1","body-parser":"~1.0.0","debug":"~0.7.4","jade":"~1.3.0"},"_id":"freeloader-js@0.0.4","dist":{"shasum":"bc7ef3fbc906c80ff78be8ad3cebafc29c06c524","tarball":"https://registry.npmjs.org/freeloader-js/-/freeloader-js-0.0.4.tgz","integrity":"sha512-CfC+dTPu1MKxfrtBV2YxS5cNgKmwpAYRG7UXKE0DFR7eF3yzQHf5aAct0plVei3hqrg1dlBYcJEJlhiT9A1iig==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVmbSSryFQuCffY6VNEzgn4Gk1Upam8Q8eh/w15hR1uAIhANfRyl0tcOll2Fq2B8S1cGz4sN30IqTUFKWcEIUloDfe"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"greim","email":"gregreimer@gmail.com"},"maintainers":[{"name":"greim","email":"gregreimer@gmail.com"}]},"0.0.5":{"name":"freeloader-js","version":"0.0.5","description":"Client side control","main":"freeloader.js","directories":{"test":"test"},"scripts":{"test":"test"},"repository":{"type":"git","url":"https://github.com/greim/freeloader.git"},"author":{"name":"gregreimer@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/greim/freeloader/issues"},"homepage":"https://github.com/greim/freeloader","dependencies":{"await":"^0.2.4","lodash":"^2.4.1","jquery":"^2.1.1"},"devDependencies":{"vinyl-source-stream":"^0.1.1","gulp":"^3.6.1","watchify":"^0.7.2","express":"~4.0.0","static-favicon":"~1.0.0","morgan":"~1.0.0","cookie-parser":"~1.0.1","body-parser":"~1.0.0","debug":"~0.7.4","jade":"~1.3.0"},"_id":"freeloader-js@0.0.5","dist":{"shasum":"b995660b91e9c155e43e113f9059a4882903e0e0","tarball":"https://registry.npmjs.org/freeloader-js/-/freeloader-js-0.0.5.tgz","integrity":"sha512-sdukhKL6uS717MRQpv1SEZNd4ac27KwZ6KFr5y7wVwB9E0qmbbY+h/k823lH7X43vMhJPwjwx7oS8skuSG/+rw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH4TD3D/iSk1oxkzX9lTmD3+ygPiQ1C0i0mnFR30EmMZAiBT0iUhO67apy8puIdnF5WObOr5uEHLhqMAYeCc1LyXSg=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"greim","email":"gregreimer@gmail.com"},"maintainers":[{"name":"greim","email":"gregreimer@gmail.com"}]},"0.0.6":{"name":"freeloader-js","version":"0.0.6","description":"Client side control","main":"freeloader.js","directories":{"test":"test"},"scripts":{"test":"test"},"repository":{"type":"git","url":"https://github.com/greim/freeloader.git"},"author":{"name":"gregreimer@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/greim/freeloader/issues"},"homepage":"https://github.com/greim/freeloader","dependencies":{"await":"^0.2.4","lodash":"^2.4.1","jquery":"^2.1.1"},"devDependencies":{"vinyl-source-stream":"^0.1.1","gulp":"^3.6.1","watchify":"^0.7.2","express":"~4.0.0","static-favicon":"~1.0.0","morgan":"~1.0.0","cookie-parser":"~1.0.1","body-parser":"~1.0.0","debug":"~0.7.4","jade":"~1.3.0"},"_id":"freeloader-js@0.0.6","dist":{"shasum":"2598245814df2fabbbb742856b7af91e0f8b3892","tarball":"https://registry.npmjs.org/freeloader-js/-/freeloader-js-0.0.6.tgz","integrity":"sha512-rk2/CyOYVFKiT6dfzdmZLr95d97xxisjhd6jvtKf1GrGgPBhqjXLEQDF4x6qMswtqN0ZA64aUXAUWNCvEhvNGQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPJ3HqWwJOF9LbSJ8XwxgZGH8DkgmM46A7zrk4K4HHhgIhALAyKYjsngPygMiL6KtE6pC4kS1lJXGk7C0uLj6OOJJR"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"greim","email":"gregreimer@gmail.com"},"maintainers":[{"name":"greim","email":"gregreimer@gmail.com"}]},"0.0.7":{"name":"freeloader-js","version":"0.0.7","description":"Client side control","main":"freeloader.js","directories":{"test":"test"},"scripts":{"test":"test"},"repository":{"type":"git","url":"https://github.com/greim/freeloader.git"},"author":{"name":"gregreimer@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/greim/freeloader/issues"},"homepage":"https://github.com/greim/freeloader","dependencies":{"await":"^0.2.4","lodash":"^2.4.1","jquery":"^2.1.1"},"devDependencies":{"vinyl-source-stream":"^0.1.1","gulp":"^3.6.1","watchify":"^0.7.2","express":"~4.0.0","static-favicon":"~1.0.0","morgan":"~1.0.0","cookie-parser":"~1.0.1","body-parser":"~1.0.0","debug":"~0.7.4","jade":"~1.3.0"},"_id":"freeloader-js@0.0.7","dist":{"shasum":"c299efe4bc8d3de1929e65b60a5b97775357c065","tarball":"https://registry.npmjs.org/freeloader-js/-/freeloader-js-0.0.7.tgz","integrity":"sha512-zgsMFg6HKGTQcajBGX0qRT8yaXUq2gnxmuyZ71h6FEBwUR0uEqbOyw+FMvgSt2kns68KxbTVZnoLOII3UBZkzw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICSEoC4wt9P7Ss9bvEpntj7V+np5MqJ1izqbpflCut7bAiEArO3bHwOcKjAZRqAiYUeWvQBnkg25yZ5RYMCT1hYO4J4="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"greim","email":"gregreimer@gmail.com"},"maintainers":[{"name":"greim","email":"gregreimer@gmail.com"}]},"0.0.8":{"name":"freeloader-js","version":"0.0.8","description":"Client side control","main":"freeloader.js","directories":{"test":"test"},"scripts":{"test":"test"},"repository":{"type":"git","url":"https://github.com/greim/freeloader.git"},"author":{"name":"gregreimer@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/greim/freeloader/issues"},"homepage":"https://github.com/greim/freeloader","dependencies":{"await":"^0.2.4","lodash":"^2.4.1","jquery":"^2.1.1"},"devDependencies":{"vinyl-source-stream":"^0.1.1","gulp":"^3.6.1","watchify":"^0.7.2","express":"~4.0.0","static-favicon":"~1.0.0","morgan":"~1.0.0","cookie-parser":"~1.0.1","body-parser":"~1.0.0","debug":"~0.7.4","jade":"~1.3.0"},"_id":"freeloader-js@0.0.8","dist":{"shasum":"8c1d191fba6cffdeb648c230efead4b9cbddb85a","tarball":"https://registry.npmjs.org/freeloader-js/-/freeloader-js-0.0.8.tgz","integrity":"sha512-a1KN+vdpE9Bn4PAhdxKRjr6+d041gmpgijdmEIF7mChNJVarSOKmIvOCJioV7Tty/wpbUPyWUxSWQ2iDLMtNlg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICji+cUtJPwIkbaIch1A30d88SM426hLMe0MTB6v92kBAiEA+kbTxXzeqNOW2fTr/uiHfIJEQN/Nc0pH+XnbTSfll1g="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"greim","email":"gregreimer@gmail.com"},"maintainers":[{"name":"greim","email":"gregreimer@gmail.com"}]},"0.0.9":{"name":"freeloader-js","version":"0.0.9","description":"Client side control","main":"freeloader.js","directories":{"test":"test"},"scripts":{"test":"test"},"repository":{"type":"git","url":"https://github.com/greim/freeloader.git"},"author":{"name":"gregreimer@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/greim/freeloader/issues"},"homepage":"https://github.com/greim/freeloader","dependencies":{"await":"^0.2.4","lodash":"^2.4.1","jquery":"^2.1.1"},"devDependencies":{"vinyl-source-stream":"^0.1.1","gulp":"^3.6.1","watchify":"^0.7.2","express":"~4.0.0","static-favicon":"~1.0.0","morgan":"~1.0.0","cookie-parser":"~1.0.1","body-parser":"~1.0.0","debug":"~0.7.4","jade":"~1.3.0"},"_id":"freeloader-js@0.0.9","dist":{"shasum":"2c9cdaada9f0f6aa6ee5894b5432beeb46167a81","tarball":"https://registry.npmjs.org/freeloader-js/-/freeloader-js-0.0.9.tgz","integrity":"sha512-zg56sL79b4erfZLJ+sQuc7NR7m8sj8JUA7Za4a4BDubsDor3EPHD95hM3PtEIL1xMEEI2fcuYg2vclUB2rBi/g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCt+sbaDw8pUgwpKW80lBrFbvAaKc2+1iULzHWMNS/slAIgVs2Ruzfi5dITDGDSnlRzGbMhOSPY87FxxOcDvRgPM4U="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"greim","email":"gregreimer@gmail.com"},"maintainers":[{"name":"greim","email":"gregreimer@gmail.com"}]},"0.0.10":{"name":"freeloader-js","version":"0.0.10","description":"Client side control","main":"freeloader.js","directories":{"test":"test"},"scripts":{"test":"test"},"repository":{"type":"git","url":"https://github.com/greim/freeloader.git"},"author":{"name":"gregreimer@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/greim/freeloader/issues"},"homepage":"https://github.com/greim/freeloader","dependencies":{"await":"^0.2.4","lodash":"^2.4.1","jquery":"^2.1.1"},"devDependencies":{"vinyl-source-stream":"^0.1.1","gulp":"^3.6.1","watchify":"^0.7.2","express":"~4.0.0","static-favicon":"~1.0.0","morgan":"~1.0.0","cookie-parser":"~1.0.1","body-parser":"~1.0.0","debug":"~0.7.4","jade":"~1.3.0"},"_id":"freeloader-js@0.0.10","dist":{"shasum":"4c2a9c04aca4ccaa3d9631217726b8dc869c5f58","tarball":"https://registry.npmjs.org/freeloader-js/-/freeloader-js-0.0.10.tgz","integrity":"sha512-VW9ppcHAP9EZVlNFZ+o3L7g6ddMBaGj7MHEIXNTbwO1oEnSkGHqhGu7YwEmv5zi3bcRdw9yJ8rWdUcbwUXp5uA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCluUD0vTQc7XAokN9uKBhKAn9v30lkRChbV9q5TpLe4gIgD6bHf17zE28yEA2WCz4ItQZ9HqH7Num++0JGmwCZZKA="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"greim","email":"gregreimer@gmail.com"},"maintainers":[{"name":"greim","email":"gregreimer@gmail.com"}]},"0.0.11":{"name":"freeloader-js","version":"0.0.11","description":"Client side control","main":"freeloader.js","directories":{"test":"test"},"scripts":{"test":"test"},"repository":{"type":"git","url":"https://github.com/greim/freeloader.git"},"author":{"name":"gregreimer@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/greim/freeloader/issues"},"homepage":"https://github.com/greim/freeloader","dependencies":{"await":"^0.2.4","lodash":"^2.4.1","jquery":"^2.1.1"},"devDependencies":{"vinyl-source-stream":"^0.1.1","gulp":"^3.6.1","watchify":"^0.7.2","express":"~4.0.0","static-favicon":"~1.0.0","morgan":"~1.0.0","cookie-parser":"~1.0.1","body-parser":"~1.0.0","debug":"~0.7.4","jade":"~1.3.0"},"_id":"freeloader-js@0.0.11","dist":{"shasum":"a38739912c5408a043939315233f9c2bb2fe668a","tarball":"https://registry.npmjs.org/freeloader-js/-/freeloader-js-0.0.11.tgz","integrity":"sha512-62AUv0LuZJIwqt+HrNrUSiUsA/nhZfWW1ik4+afZOgjDStPtX4fy9CMvcBK/bPSQecG1hhF+VbHaKZ9Ob99Orw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGaO6OG0ltEwMoogaHXBr5OteLYmbq4eemwQYBEuLwriAiBQNmIBaS/a6kIwolPkiCLRv/M6mJcbL8H0H6EEgovRZA=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"greim","email":"gregreimer@gmail.com"},"maintainers":[{"name":"greim","email":"gregreimer@gmail.com"}]},"0.0.12":{"name":"freeloader-js","version":"0.0.12","description":"Client side control","main":"freeloader.js","directories":{"test":"test"},"scripts":{"test":"test"},"repository":{"type":"git","url":"https://github.com/greim/freeloader.git"},"author":{"name":"gregreimer@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/greim/freeloader/issues"},"homepage":"https://github.com/greim/freeloader","dependencies":{"await":"^0.2.4","lodash":"^2.4.1","jquery":"^2.1.1"},"devDependencies":{"vinyl-source-stream":"^0.1.1","gulp":"^3.6.1","watchify":"^0.7.2","express":"~4.0.0","static-favicon":"~1.0.0","morgan":"~1.0.0","cookie-parser":"~1.0.1","body-parser":"~1.0.0","debug":"~0.7.4","jade":"~1.3.0"},"_id":"freeloader-js@0.0.12","dist":{"shasum":"5e839d4414db2b896d9d7dffc3cb5cb64991628d","tarball":"https://registry.npmjs.org/freeloader-js/-/freeloader-js-0.0.12.tgz","integrity":"sha512-wvow4EJVR9Ab7aHmtATPrnzwFPt7ftUdARZsyjcmCxa3gejQkdcZaZ4JU1E+XUwgGmSPvY/oTJjJJtqLHUaKfA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAugZ/YzgTQFWrTvgWVKOV1mLW97PCXVsrX4K+CL64RRAiBQW7xbU5l8VpjBl4dwoQISPxPw+6GYB9h0LbOPA69H9w=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"greim","email":"gregreimer@gmail.com"},"maintainers":[{"name":"greim","email":"gregreimer@gmail.com"}]},"0.0.13":{"name":"freeloader-js","version":"0.0.13","description":"Client side control","main":"freeloader.js","directories":{"test":"test"},"scripts":{"test":"test"},"repository":{"type":"git","url":"https://github.com/greim/freeloader.git"},"author":{"name":"gregreimer@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/greim/freeloader/issues"},"homepage":"https://github.com/greim/freeloader","dependencies":{"await":"^0.2.4","lodash":"^2.4.1","jquery":"^2.1.1"},"devDependencies":{"vinyl-source-stream":"^0.1.1","gulp":"^3.6.1","watchify":"^0.7.2","express":"~4.0.0","static-favicon":"~1.0.0","morgan":"~1.0.0","cookie-parser":"~1.0.1","body-parser":"~1.0.0","debug":"~0.7.4","jade":"~1.3.0"},"_id":"freeloader-js@0.0.13","dist":{"shasum":"601d332a1cf9d9c00c283eec55c3d00405d24b04","tarball":"https://registry.npmjs.org/freeloader-js/-/freeloader-js-0.0.13.tgz","integrity":"sha512-00LActLQaoguOQ631idSECJOyBqsCJQmTUmZLbomo3Xj+RSd/tLKnKI6cNIcrBdtw9neSrfncnkVFg9qWeQ3vA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB+zh9pFnBQD4XtPpeZ51KdzT2pMqkUDuJwOge9JY1KxAiEA67nR2uRBf4VasC+ih/ZWA9McOBRfoDRTrfQgmMJu24k="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"greim","email":"gregreimer@gmail.com"},"maintainers":[{"name":"greim","email":"gregreimer@gmail.com"}]},"0.0.14":{"name":"freeloader-js","version":"0.0.14","description":"Client side control","main":"freeloader.js","directories":{"test":"test"},"scripts":{"test":"test"},"repository":{"type":"git","url":"https://github.com/greim/freeloader.git"},"author":{"name":"gregreimer@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/greim/freeloader/issues"},"homepage":"https://github.com/greim/freeloader","dependencies":{"await":"^0.2.4","lodash":"^2.4.1","jquery":"^2.1.1"},"devDependencies":{"vinyl-source-stream":"^0.1.1","gulp":"^3.6.1","watchify":"^0.7.2","express":"~4.0.0","static-favicon":"~1.0.0","morgan":"~1.0.0","cookie-parser":"~1.0.1","body-parser":"~1.0.0","debug":"~0.7.4","jade":"~1.3.0"},"_id":"freeloader-js@0.0.14","dist":{"shasum":"ebc049a425d42f9c26244aed6d5faa878c9a7d0b","tarball":"https://registry.npmjs.org/freeloader-js/-/freeloader-js-0.0.14.tgz","integrity":"sha512-AkGSR0NEZs9yVrwgh9J7jjU4mUdFdCTy+ngdtiNbuH3udAZ6lUpwOhkaF9iEOlS0RbnOmKhOjz8IAbBfM48DIA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC4N+J7DofLwTfit9SKS796AdCg2M+LiSYkFoBBLS7oYAiEAiBjxkqFP5qavtCoAQCz+nDhP6yBAtgIoK309PPnT4TM="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"greim","email":"gregreimer@gmail.com"},"maintainers":[{"name":"greim","email":"gregreimer@gmail.com"}]},"0.1.0":{"name":"freeloader-js","version":"0.1.0","description":"Client side control","main":"freeloader.js","directories":{"test":"test"},"scripts":{"test":"test"},"repository":{"type":"git","url":"https://github.com/greim/freeloader.git"},"author":{"name":"gregreimer@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/greim/freeloader/issues"},"homepage":"https://github.com/greim/freeloader","dependencies":{"await":"^0.2.4","lodash":"^2.4.1","jquery":"^2.1.1"},"devDependencies":{"vinyl-source-stream":"^0.1.1","gulp":"^3.6.1","watchify":"^0.7.2","express":"~4.0.0","static-favicon":"~1.0.0","morgan":"~1.0.0","cookie-parser":"~1.0.1","body-parser":"~1.0.0","debug":"~0.7.4","jade":"~1.3.0"},"_id":"freeloader-js@0.1.0","dist":{"shasum":"e7b575e9afdf6b0a97d0ab005933fbe741600000","tarball":"https://registry.npmjs.org/freeloader-js/-/freeloader-js-0.1.0.tgz","integrity":"sha512-k+liycSvyrgityBFxfQ5b+Mr2yUYiJEw68oeEs/36977brFliU3EeAJ1WQyfi9XS5ZBGECsF4b5F2dJC2+3r6g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID23Q6fsna9WhWakUalC52wOoj/Bw+eG6+Y9AwDBDXbMAiEAhzT6jy8Tm+mwlbqiK01DcDOGiuDdUaXBV40Wu76UEWc="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"greim","email":"gregreimer@gmail.com"},"maintainers":[{"name":"greim","email":"gregreimer@gmail.com"}]},"0.1.1":{"name":"freeloader-js","version":"0.1.1","description":"Client side control","main":"freeloader.js","directories":{"test":"test"},"scripts":{"test":"test"},"repository":{"type":"git","url":"https://github.com/greim/freeloader.git"},"author":{"name":"gregreimer@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/greim/freeloader/issues"},"homepage":"https://github.com/greim/freeloader","dependencies":{"await":"^0.2.4","lodash":"^2.4.1","jquery":"^2.1.1"},"devDependencies":{"vinyl-source-stream":"^0.1.1","gulp":"^3.6.1","watchify":"^0.7.2","express":"~4.0.0","static-favicon":"~1.0.0","morgan":"~1.0.0","cookie-parser":"~1.0.1","body-parser":"~1.0.0","debug":"~0.7.4","jade":"~1.3.0"},"_id":"freeloader-js@0.1.1","dist":{"shasum":"4bc5ad87125ddb351d43f82917d9ac5150755c04","tarball":"https://registry.npmjs.org/freeloader-js/-/freeloader-js-0.1.1.tgz","integrity":"sha512-FVP5ZHFYdY0wDCTnmocYQcR5+Uy5pxpfRiHTQJYspfySvwXRKetzxtFgB+ZBruazooDvA+wLsytUDHOkHWjF4Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGbm/njGsCP8S+uWX97vZ9ttQQI4p7fF+nApmVCf4zkiAiEA3Bi7BMf2XaIzszQEFQeFq8M0PSDRX02pK6BFyVKMqTc="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"greim","email":"gregreimer@gmail.com"},"maintainers":[{"name":"greim","email":"gregreimer@gmail.com"}]},"0.1.2":{"name":"freeloader-js","version":"0.1.2","description":"Client side control","main":"freeloader.js","directories":{"test":"test"},"scripts":{"test":"test"},"repository":{"type":"git","url":"https://github.com/greim/freeloader.git"},"author":{"name":"gregreimer@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/greim/freeloader/issues"},"homepage":"https://github.com/greim/freeloader","dependencies":{"await":"^0.2.4","lodash":"^2.4.1","jquery":"^2.1.1"},"devDependencies":{"vinyl-source-stream":"^0.1.1","gulp":"^3.6.1","watchify":"^0.7.2","express":"~4.0.0","static-favicon":"~1.0.0","morgan":"~1.0.0","cookie-parser":"~1.0.1","body-parser":"~1.0.0","debug":"~0.7.4","jade":"~1.3.0"},"_id":"freeloader-js@0.1.2","dist":{"shasum":"ffb6fcb85f9980c2d7428b56255e75c85c79a3e2","tarball":"https://registry.npmjs.org/freeloader-js/-/freeloader-js-0.1.2.tgz","integrity":"sha512-3ktphU/RG7aobjRdgVo7LS0cFg0QSB6PRtaxuConxnKibZmbXvxWJDQWfCQuVHkdF0umJdwuyAUJdHOPqkU/lw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGrABr9/KtO+rL3LKizMsG7Uaefj7F8HhRrkJnu081PWAiBT2K1uDISCzj7IJROMH4NTcROb3aMRe6NRZN+O3o1FJQ=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"greim","email":"gregreimer@gmail.com"},"maintainers":[{"name":"greim","email":"gregreimer@gmail.com"}]},"0.1.3":{"name":"freeloader-js","version":"0.1.3","description":"Client side control","main":"freeloader.js","directories":{"test":"test"},"scripts":{"test":"test"},"repository":{"type":"git","url":"https://github.com/greim/freeloader.git"},"author":{"name":"gregreimer@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/greim/freeloader/issues"},"homepage":"https://github.com/greim/freeloader","dependencies":{"await":"^0.2.4","lodash":"^2.4.1","jquery":"^2.1.1"},"devDependencies":{"vinyl-source-stream":"^0.1.1","gulp":"^3.6.1","watchify":"^0.7.2","express":"~4.0.0","static-favicon":"~1.0.0","morgan":"~1.0.0","cookie-parser":"~1.0.1","body-parser":"~1.0.0","debug":"~0.7.4","jade":"~1.3.0"},"_id":"freeloader-js@0.1.3","dist":{"shasum":"1239087e5f77e4c325ccaf3097b15065b601abbe","tarball":"https://registry.npmjs.org/freeloader-js/-/freeloader-js-0.1.3.tgz","integrity":"sha512-gAmHggh3Qasu80xSRRedwqxl6fnB9YMU5uPKfmOL3hIhzqjOnAhsH0/IsMayogkNMIHDJIIK5AVFs01210wnsQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHlOLsj9GC/F8Qql5b1GmhmuC0WZ3QDYhxlxYSVu3BEcAiA7kS75mOIiYSzelFSmHeaZKJHO/Fk+ffD+LjSPa394Gw=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"greim","email":"gregreimer@gmail.com"},"maintainers":[{"name":"greim","email":"gregreimer@gmail.com"}]},"0.2.0":{"name":"freeloader-js","version":"0.2.0","description":"Client side control","main":"freeloader.js","directories":{"test":"test"},"scripts":{"test":"test"},"repository":{"type":"git","url":"https://github.com/greim/freeloader.git"},"author":{"name":"gregreimer@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/greim/freeloader/issues"},"homepage":"https://github.com/greim/freeloader","dependencies":{"await":"^0.2.4","lodash":"^2.4.1","jquery":"^2.1.1"},"devDependencies":{"vinyl-source-stream":"^0.1.1","gulp":"^3.6.1","watchify":"^0.7.2","express":"~4.0.0","static-favicon":"~1.0.0","morgan":"~1.0.0","cookie-parser":"~1.0.1","body-parser":"~1.0.0","debug":"~0.7.4","jade":"~1.3.0"},"_id":"freeloader-js@0.2.0","dist":{"shasum":"d089b53592e2a294f4dce9341882de822cfacdc8","tarball":"https://registry.npmjs.org/freeloader-js/-/freeloader-js-0.2.0.tgz","integrity":"sha512-j/LHlBMBfsDSCMPIJW8kY2B5XJDYOoh8ITyWU7i58OZqSKNCW5uAnI18oii1IWJ69L3yNTsic4gqv4QiLjnjlw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5JWiS+Q35uK8ml3koXsJB4qmUp3MDMXamROOKNGDbUQIhAP9Ofb4n81tvQ3PQyvQ2Rcm4F+uoKhrGdOfVkQr9kLqa"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"greim","email":"gregreimer@gmail.com"},"maintainers":[{"name":"greim","email":"gregreimer@gmail.com"}]}},"readme":"# Freeloader.js\n\nFreeloader.js is a declarative behavior system for server-rendered webapps.\nIt consists of two main pieces:\n\n 1. A way to declare which controller definitions get bound to which elements.\n 2. Tools for loading new content into the DOM.\n\n## Installation\n\nInstall via npm:\n\n```\n$ npm install freeloader-js --save\n```\n\n## Creating an app\n\nA freeloader app looks like this:\n\n```javascript\nvar freeloader = require('freeloader-js')\nvar app = freeloader()\n```\n\n## Controllers\n\nOnce you have your app, you can declaratively add behaviors, in the form of controllers.\n\n```javascript\napp.bind('#banner', { ... });\napp.bind('#menu', { ... });\napp.bind('#login-form', { ... });\n```\n\n### Example\n\nHere's an example of a controller that keeps its element's aspect ratio constant, both when it's first created and when the window changes size:\n\n```javascript\napp.bind('#my .selector', {\n\n  life: {\n    mount: 'setSize'\n  },\n  \n  subs: {\n    orientationchange: 'setSize',\n    resize: 'setSize'\n  },\n  \n  setSize: function(){\n    this.width = this.$el.width();\n    this.$el.css('height',(width/2)+'px');\n  }\n});\n\n$(window).on('resize', function(){\n  app.publish('resize');\n});\n\n$(window).on('orientationchange', function(){\n  app.publish('orientationchange');\n});\n```\n\n### Events\n\nAs evident above, controllers are simply event routers for parts of your page.\n\"Events\" brings to mind DOM events, but those are just one kind of event a controller can respond to.\nTypes of events include:\n\n * Controller lifecycle events\n * Messages from ancestor controllers\n * Messages from descendant controllers\n * Subscriptions to globally-published events\n * DOM events\n\n*Ancestor* and *descendant* controllers just means controller instances attached to elements higher or lower in DOM tree.\nThere are no rules or limits about what the hierarchy can look like.\nYou can bind one controller to many elements, or multiple controllers to a single element.\nA controller has a regular structure:\n\n```javascript\napp.bind(<selector>, {\n\n  <event name>: {\n    <event name>: <method name>\n    <event name>: <method name>\n  },\n  \n  <method name>: <function>\n  <method name>: <function>\n\n  <event name>: {\n    <event name>: <method name>\n    <event name>: <method name>\n  },\n  \n  <method name>: <function>\n  <method name>: <function>\n});\n```\n\nHere are the event names, along with how it's triggered.\n\n * `life` - Lifecycle events. Triggered internally by freeloader. Event names are limited to `init` and `mount`.\n * `events` - DOM events. Triggered by the user. Event names take the form `<type> <selector>` (for delegated events) or `<type>` (for non-delegated events).\n * `above` - Ancestor messages. Sent by ancestor controllers, using `this.down(name)`.\n * `below` - Descendant messages. Sent by descendant controllers, using `this.up(name)`.\n * `subs` - Subscription events. Sent by any controller, using `this.publish(name)`. Alternatively, sent from non-controller contexts as long as you have a reference to the app, via `app.publish(name)`.\n\n### Reference-keeping\n\nAll reference-keeping work is offloaded to the browser via the DOM, so you don't need to worry about memory leaks or zombie handlers that often arise when naively tying lots of things together using events.\nNo controller that isn't alive and awake in the document will ever receive an event, or be retained in memory after its DOM node is removed.\nThus, `this.$el.remove()` or `$('#content').remove()` or `document.getElementById('foo').innerHTML = ''` are perfectly acceptable ways of removing content, as far as freeloader is concerned.\n\n## Content loading\n\nFreeloader provides two primary ways to add new content to the DOM.\n\n 1. **Navigation** - Loading whole new pages via `app.navigate()`.\n 2. **Injection** - Loading fragments of pages via `this.inject()` from within controllers.\n\n### Navigation\n\nTo use navigation, call `app.startHistory()`.\n\n```javascript\napp.startHistory();\napp.navigate('/foo?bar=baz', function(err){\n  if (err) { ...the connection died... }\n  else { ...the request was 200, 404, 500, etc... }\n});\n```\n\nWhether your browser supports the history API or not, a call to `app.navigate('/foo?bar')` always results in the URL bar being updated to `/foo?bar`.\nAt no point will `/#foo?bar` or `/?bar#foo` ever appear in your URL.\nIn the former case, the contents of `/foo?bar` are fetched via XHR and injected into the page, css/js fetched, and the URL updated using the history API.\nIn the latter case, the browser simply navigates to the new page: `location.href = '/foo?bar'`.\nThe end result is the same, except modern browsers will be lots faster.\n\nA page's scripts should therefore in no way depend on events such as `onload`, or otherwise make synchronous assumptions with respect to initial page-load orchestration.\nThis is one of the few things freeloader is opinionated about.\nFortunately freeloader's declarative paradigm encourages no such assumptions to begin with, so things should be copacetic.\n\nBesides the speed boost in modern browsers, freeloader's navigation automatically rebinds declared behaviors.\nThis includes existing ones and any ones declared in newly-loaded scripts.\nThis allows you to break apart your scripts on a per-page basis, thus minimizing initial download time.\n\n### Injection\n\n```javascript\nthis.inject(options, callback);\n```\n\nFrom within a controller, you may `inject()` content.\nThe inection API is flexible.\nThe `options` argument is an argument with a source directive and a target directive.\nThe source is either a string of HTML code, or a URL to retrieve HTML from.\nThe target dictates where to put that HTML.\nSuppose you have a URL called `/posts` that returns a DOM tree like this:\n\n```\n/posts?page=1\nul.posts\n|--li.post#post1\n|--li.post#post2\n`--li.post#post3\n```\n\n```\n/posts?page=2\nul.posts\n|--li.post#post4\n|--li.post#post5\n`--li.post#post6\n```\n\nThen suppose you have a controller, with a DOM tree like this:\n\n```\ndiv\n|--ul.posts\n|  |--li.post#post1\n|  |--li.post#post2\n|  `--li.post#post3\n`--button.load-more\n```\n\nYou can inect like this:\n\n```javascript\nthis.inject({\n  url: '/posts?page=2 li.post',\n  append: 'ul.posts'\n}, function(err){\n  if (err) { ...content was not injected... }\n  else { ...content was injected... }\n});\n```\n\nSource directives can be one of these forms:\n\n * `url: 'url'` (contents of the URL)\n * `url: 'url selector'` (a selection from within the URL)\n * `html: 'string'` (arbitrary chunk of HTML code)\n * `html: 'element'` (one or more DOM or jQuery objects)\n\nTarget directives can be one of these forms:\n\n * `replace: true` (replace this element)\n * `replace: 'selector'` (replace a sub-element)\n * `before: true` (insert before this element)\n * `before: 'selector'` (insert before a sub-element)\n * `after: true` (insert after this element)\n * `after: 'selector'` (insert after a sub-element)\n * `prepend: true` (prepend to this element)\n * `prepend: 'selector'` (prepend to a sub-element)\n * `append: true` (append to this element)\n * `append: 'selector'` (append to a sub-element)\n\nLike the navigation API, the injection API binds behaviors to newly-added content.\nThus the second thing freeloader is opionated about: always add new content using freeloader.\n\nOr don't.\nThe only consequence of bypassing freeloader when adding new content is that the new content won't get behavior.\nBut it won't actually break anything.\n\n\n\n\n\n\n\n\n\n","maintainers":[{"name":"greim","email":"gregreimer@gmail.com"}],"time":{"modified":"2022-06-18T03:34:12.228Z","created":"2014-06-17T00:00:19.821Z","0.0.1":"2014-06-17T00:00:19.821Z","0.0.2":"2014-06-17T01:25:40.270Z","0.0.3":"2014-06-17T01:34:55.457Z","0.0.4":"2014-06-17T15:38:50.129Z","0.0.5":"2014-06-17T17:20:38.981Z","0.0.6":"2014-06-17T17:47:20.910Z","0.0.7":"2014-06-17T17:54:44.644Z","0.0.8":"2014-06-17T20:59:26.456Z","0.0.9":"2014-06-18T19:57:25.884Z","0.0.10":"2014-06-18T21:45:32.514Z","0.0.11":"2014-06-18T21:57:31.967Z","0.0.12":"2014-06-18T22:15:57.978Z","0.0.13":"2014-06-24T16:18:01.606Z","0.0.14":"2014-07-01T22:01:51.464Z","0.1.0":"2014-07-08T19:27:40.360Z","0.1.1":"2014-07-10T20:49:08.302Z","0.1.2":"2014-07-10T21:22:04.595Z","0.1.3":"2014-08-11T19:00:01.117Z","0.2.0":"2014-09-02T02:20:21.857Z"},"homepage":"https://github.com/greim/freeloader","repository":{"type":"git","url":"https://github.com/greim/freeloader.git"},"author":{"name":"gregreimer@gmail.com"},"bugs":{"url":"https://github.com/greim/freeloader/issues"},"license":"MIT","readmeFilename":"readme.md"}