{"_id":"ampersand-filtered-subcollection","_rev":"25-29f5b98ff8a7e146d6d01fee3fa9adaf","name":"ampersand-filtered-subcollection","description":"Filterable, sortable, proxy of a collection that behaves like a collection.","dist-tags":{"latest":"3.0.0"},"versions":{"1.0.0":{"name":"ampersand-filtered-subcollection","version":"1.0.0","description":"Filterable, sortable, proxy of a collection that behaves like a collection.","main":"ampersand-filtered-subcollection.js","scripts":{"start":"run-browser test/main.js","test":"node test/main.js | tap-spec"},"repository":{"type":"git","url":"https://github.com/AmpersandJS/ampersand-filtered-subcollection.git"},"keywords":["ampersand","collection","filter","sort"],"author":{"name":"Gar","email":"gar@andyet.net"},"license":"MIT","bugs":{"url":"https://github.com/AmpersandJS/ampersand-filtered-subcollection/issues"},"homepage":"https://github.com/AmpersandJS/ampersand-filtered-subcollection","dependencies":{"amp-contains":"^1.0.1","amp-difference":"^1.0.1","amp-each":"^1.0.1","amp-every":"^1.0.1","amp-extend":"^1.0.1","amp-is-array":"^1.0.1","amp-is-object-equal":"^1.0.2","amp-keys":"^1.0.1","amp-reduce":"^1.0.0","amp-sort-by":"^1.0.0","amp-sorted-insert":"^1.0.0","amp-union":"^1.0.0","ampersand-class-extend":"^1.0.1","ampersand-collection-underscore-mixin":"^1.0.3","ampersand-events":"^1.0.1"},"devDependencies":{"amp-pluck":"^1.0.0","amp-to-array":"^1.0.1","ampersand-collection":"^1.4.0","ampersand-state":"^4.4.4","jshint":"^2.6.0","precommit-hook":"^1.0.7","tap-spec":"^2.2.0","tape":"^3.4.0"},"gitHead":"6042ac2b820c75a35570f210f379600cb40dd4e8","_id":"ampersand-filtered-subcollection@1.0.0","_shasum":"8a19afa05cb8ed0feb51bd28ae237907151da9b5","_from":".","_npmVersion":"2.7.0","_nodeVersion":"0.10.36","_npmUser":{"name":"gar","email":"gar@comrade.us"},"maintainers":[{"name":"gar","email":"gar@comrade.us"}],"dist":{"shasum":"8a19afa05cb8ed0feb51bd28ae237907151da9b5","tarball":"https://registry.npmjs.org/ampersand-filtered-subcollection/-/ampersand-filtered-subcollection-1.0.0.tgz","integrity":"sha512-Vig0mKPuXIzv10AYs/sckZQfxt1+pYfqapodn3NAVvhaFx//R0xO4hd6S2oexsRYwB9tnebucn/JJTJeLP88Pg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGLTNys37CwrlyuYdGvs6kpr6aBGridyjQ82yKXZ65rQIgNvZN0ev6GTLIHzWO57I6eFFOiTc1BHXUSfzbwakPj74="}]},"directories":{}},"1.0.1":{"name":"ampersand-filtered-subcollection","version":"1.0.1","description":"Filterable, sortable, proxy of a collection that behaves like a collection.","main":"ampersand-filtered-subcollection.js","scripts":{"start":"run-browser test/main.js","test":"node test/main.js | tap-spec"},"repository":{"type":"git","url":"https://github.com/AmpersandJS/ampersand-filtered-subcollection.git"},"keywords":["ampersand","collection","filter","sort"],"author":{"name":"Gar","email":"gar@andyet.net"},"license":"MIT","bugs":{"url":"https://github.com/AmpersandJS/ampersand-filtered-subcollection/issues"},"homepage":"https://github.com/AmpersandJS/ampersand-filtered-subcollection","dependencies":{"amp-contains":"^1.0.1","amp-difference":"^1.0.1","amp-each":"^1.0.1","amp-every":"^1.0.1","amp-extend":"^1.0.1","amp-is-array":"^1.0.1","amp-is-object-equal":"^1.0.2","amp-keys":"^1.0.1","amp-reduce":"^1.0.0","amp-sort-by":"^1.0.0","amp-sorted-insert":"^1.0.0","amp-union":"^1.0.0","ampersand-class-extend":"^1.0.1","ampersand-collection-underscore-mixin":"^1.0.3","ampersand-events":"^1.0.1"},"devDependencies":{"amp-pluck":"^1.0.0","amp-to-array":"^1.0.1","ampersand-collection":"^1.4.0","ampersand-state":"^4.4.4","jshint":"^2.6.0","precommit-hook":"^1.0.7","tap-spec":"^2.2.0","tape":"^3.4.0"},"gitHead":"2520315569e563b086c0f78acdf2a0a25770a0cc","_id":"ampersand-filtered-subcollection@1.0.1","_shasum":"0c2f7f780c3084e5d4f020b1fcf08873129eee72","_from":".","_npmVersion":"2.4.1","_nodeVersion":"0.10.33","_npmUser":{"name":"latentflip","email":"phil@latentflip.com"},"maintainers":[{"name":"gar","email":"gar@comrade.us"},{"name":"andyet","email":"ops@andyet.net"},{"name":"lukekarrys","email":"luke@lukekarrys.com"},{"name":"latentflip","email":"phil@latentflip.com"},{"name":"henrikjoreteg","email":"henrik@andyet.net"}],"dist":{"shasum":"0c2f7f780c3084e5d4f020b1fcf08873129eee72","tarball":"https://registry.npmjs.org/ampersand-filtered-subcollection/-/ampersand-filtered-subcollection-1.0.1.tgz","integrity":"sha512-+QSm/NEx8D2/P+ORgwSBPnvjcSdXxI7kuNw5QBxCtkd7030lD2YnjC7+49r7hja81/10PKWEKPTHNqIRlwafrA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICzy30+/ihqqnqPsOKf/nlu5E5foDOjJLsxXzgRNZJ2KAiEA1pzKVsrzbHa5rYbKTnHFbWR3GkkdC3232bvG7kJ/yNQ="}]},"directories":{}},"2.0.0":{"name":"ampersand-filtered-subcollection","version":"2.0.0","description":"Filterable, sortable, proxy of a collection that behaves like a collection.","main":"ampersand-filtered-subcollection.js","scripts":{"start":"run-browser test/main.js","test":"node test/main.js | tap-spec"},"repository":{"type":"git","url":"https://github.com/AmpersandJS/ampersand-filtered-subcollection.git"},"keywords":["ampersand","collection","filter","sort"],"author":{"name":"Gar","email":"gar@andyet.net"},"license":"MIT","bugs":{"url":"https://github.com/AmpersandJS/ampersand-filtered-subcollection/issues"},"files":["ampersand-filtered-subcollection.js"],"homepage":"https://github.com/AmpersandJS/ampersand-filtered-subcollection","dependencies":{"ampersand-class-extend":"^1.0.1","ampersand-events":"^1.0.1","lodash.assign":"^3.0.0","lodash.difference":"^3.1.0","lodash.every":"^3.2.0","lodash.foreach":"^3.0.2","lodash.includes":"^3.1.0","lodash.isarray":"^3.0.1","lodash.isequal":"^3.0.1","lodash.keys":"^3.0.5","lodash.reduce":"^3.1.0","lodash.sortby":"^3.1.0","lodash.sortedindex":"^3.1.0","lodash.union":"^3.1.0"},"devDependencies":{"ampersand-collection":"^1.4.0","ampersand-state":"^4.4.4","jshint":"^2.6.0","lodash.find":"^3.2.0","lodash.pluck":"^3.0.2","lodash.toarray":"^3.0.0","precommit-hook":"^1.0.7","tap-spec":"^2.2.0","tape":"^3.4.0"},"gitHead":"8a1900538ad05b753f53fba6f8f5e1c5dacb3cf3","_id":"ampersand-filtered-subcollection@2.0.0","_shasum":"fe17fd018ac1ca0cc8681843e56c63ba2aa7f317","_from":".","_npmVersion":"2.7.5","_nodeVersion":"0.10.38","_npmUser":{"name":"gar","email":"gar@comrade.us"},"maintainers":[{"name":"gar","email":"gar@comrade.us"},{"name":"andyet","email":"ops@andyet.net"},{"name":"lukekarrys","email":"luke@lukekarrys.com"},{"name":"latentflip","email":"phil@latentflip.com"},{"name":"henrikjoreteg","email":"henrik@andyet.net"}],"dist":{"shasum":"fe17fd018ac1ca0cc8681843e56c63ba2aa7f317","tarball":"https://registry.npmjs.org/ampersand-filtered-subcollection/-/ampersand-filtered-subcollection-2.0.0.tgz","integrity":"sha512-ZAz8EME71tTFq9qZ7NFuEC4lDnnHObKkRo5hPa42Dgzzk2fqCN3bMnA0dFUr8QjWaHuNCq1w82UXI3BRyTf63w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG5x6Un7ZWGXQOo1qLj4EXjW/sErdBFlsS++BLLTXnVHAiBOJmc07ZK5Qt8kCBIqomaDZ9qn8y5ZTvKzbRBq3VLFTQ=="}]},"directories":{}},"2.0.1":{"name":"ampersand-filtered-subcollection","version":"2.0.1","description":"Filterable, sortable, proxy of a collection that behaves like a collection.","main":"ampersand-filtered-subcollection.js","scripts":{"start":"run-browser test/main.js","test":"node test/main.js | tap-spec"},"repository":{"type":"git","url":"https://github.com/AmpersandJS/ampersand-filtered-subcollection.git"},"keywords":["ampersand","collection","filter","sort"],"author":{"name":"Gar","email":"gar@andyet.net"},"license":"MIT","bugs":{"url":"https://github.com/AmpersandJS/ampersand-filtered-subcollection/issues"},"files":["ampersand-filtered-subcollection.js"],"homepage":"https://github.com/AmpersandJS/ampersand-filtered-subcollection","dependencies":{"ampersand-class-extend":"^1.0.1","ampersand-events":"^1.0.1","lodash.assign":"^3.0.0","lodash.difference":"^3.1.0","lodash.every":"^3.2.0","lodash.foreach":"^3.0.2","lodash.includes":"^3.1.0","lodash.isarray":"^3.0.1","lodash.isequal":"^3.0.1","lodash.keys":"^3.0.5","lodash.reduce":"^3.1.0","lodash.sortby":"^3.1.0","lodash.sortedindex":"^3.1.0","lodash.union":"^3.1.0"},"devDependencies":{"ampersand-collection":"^1.4.0","ampersand-state":"^4.4.4","jshint":"^2.6.0","lodash.find":"^3.2.0","lodash.pluck":"^3.0.2","lodash.toarray":"^3.0.0","precommit-hook":"^1.0.7","tap-spec":"^2.2.0","tape":"^3.4.0"},"gitHead":"eee18c0e494412c0558b78665a223e5b9476b2ef","_id":"ampersand-filtered-subcollection@2.0.1","_shasum":"d41867da4332e7269aed9261b736a927ba86aa3e","_from":".","_npmVersion":"2.7.6","_nodeVersion":"0.10.38","_npmUser":{"name":"lukekarrys","email":"luke@lukekarrys.com"},"maintainers":[{"name":"gar","email":"gar@comrade.us"},{"name":"andyet","email":"ops@andyet.net"},{"name":"lukekarrys","email":"luke@lukekarrys.com"},{"name":"latentflip","email":"phil@latentflip.com"},{"name":"henrikjoreteg","email":"henrik@andyet.net"}],"dist":{"shasum":"d41867da4332e7269aed9261b736a927ba86aa3e","tarball":"https://registry.npmjs.org/ampersand-filtered-subcollection/-/ampersand-filtered-subcollection-2.0.1.tgz","integrity":"sha512-1CVtUNvFKeOwBhfn/USMqC6hh+r09TrSstS8Y1arSyE3bjJRhG2v1qaitkMPu72EcQiPJHwA8s1zFk3RRQV90w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBObu18Z8AzJ4eHrN1LJEhUulkZ6Pol2ON2dV7wYRwjgAiEA3cE0VLAG11Yhh8GznB8OBti7kkWsxskNf2ARcepMFtA="}]},"directories":{}},"2.0.2":{"name":"ampersand-filtered-subcollection","version":"2.0.2","description":"Filterable, sortable, proxy of a collection that behaves like a collection.","main":"ampersand-filtered-subcollection.js","scripts":{"start":"run-browser test/main.js","test":"node test/main.js | tap-spec"},"repository":{"type":"git","url":"git+https://github.com/AmpersandJS/ampersand-filtered-subcollection.git"},"keywords":["ampersand","collection","filter","sort"],"author":{"name":"Gar","email":"gar@andyet.net"},"license":"MIT","bugs":{"url":"https://github.com/AmpersandJS/ampersand-filtered-subcollection/issues"},"files":["ampersand-filtered-subcollection.js"],"homepage":"https://github.com/AmpersandJS/ampersand-filtered-subcollection","dependencies":{"ampersand-class-extend":"^1.0.1","ampersand-events":"^1.0.1","lodash.assign":"^3.0.0","lodash.difference":"^3.1.0","lodash.every":"^3.2.0","lodash.foreach":"^3.0.2","lodash.includes":"^3.1.0","lodash.isarray":"^3.0.1","lodash.isequal":"^3.0.1","lodash.keys":"^3.0.5","lodash.reduce":"^3.1.0","lodash.sortby":"^3.1.0","lodash.sortedindex":"^3.1.0","lodash.union":"^3.1.0"},"devDependencies":{"ampersand-collection":"^1.4.0","ampersand-state":"^4.4.4","jshint":"^2.6.0","lodash.find":"^3.2.0","lodash.pluck":"^3.0.2","lodash.toarray":"^3.0.0","precommit-hook":"^1.0.7","tap-spec":"^2.2.0","tape":"^3.4.0"},"gitHead":"8ddea351081145b9d26b0a3cb4bd99080d12c694","_id":"ampersand-filtered-subcollection@2.0.2","_shasum":"7a8ff6cb6011266d06b4ce5bfa38a3e3dd9c3328","_from":".","_npmVersion":"2.10.0","_nodeVersion":"0.12.3","_npmUser":{"name":"gar","email":"gar+npm@danger.computer"},"dist":{"shasum":"7a8ff6cb6011266d06b4ce5bfa38a3e3dd9c3328","tarball":"https://registry.npmjs.org/ampersand-filtered-subcollection/-/ampersand-filtered-subcollection-2.0.2.tgz","integrity":"sha512-U9FAZE780+lq3Aoe2m5EFmH5ehrdWXWJpg+/Wj2b9hEieVXFRD3sn9pXbQtrOel3N/D+VC796r1cUrZ8nLx2Qw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDweX/buoTbSDrVSC5FShUzDzS0kZtcsddenpEOYa5g3QIgW3Ay0gfJXyNPpecqr154vhLt9vNC4pRzGM69MXHlQ3c="}]},"maintainers":[{"name":"gar","email":"gar@comrade.us"},{"name":"andyet","email":"ops@andyet.net"},{"name":"lukekarrys","email":"luke@lukekarrys.com"},{"name":"latentflip","email":"phil@latentflip.com"},{"name":"henrikjoreteg","email":"henrik@andyet.net"}],"directories":{}},"2.0.3":{"name":"ampersand-filtered-subcollection","version":"2.0.3","description":"Filterable, sortable, proxy of a collection that behaves like a collection.","main":"ampersand-filtered-subcollection.js","scripts":{"start":"run-browser test/main.js","test":"node test/main.js | tap-spec"},"repository":{"type":"git","url":"git+https://github.com/AmpersandJS/ampersand-filtered-subcollection.git"},"keywords":["ampersand","collection","filter","sort"],"author":{"name":"Gar","email":"gar@andyet.net"},"license":"MIT","bugs":{"url":"https://github.com/AmpersandJS/ampersand-filtered-subcollection/issues"},"files":["ampersand-filtered-subcollection.js"],"homepage":"https://github.com/AmpersandJS/ampersand-filtered-subcollection","dependencies":{"ampersand-class-extend":"^1.0.1","ampersand-events":"^1.0.1","lodash.assign":"^3.0.0","lodash.difference":"^3.1.0","lodash.every":"^3.2.0","lodash.foreach":"^3.0.2","lodash.includes":"^3.1.0","lodash.isarray":"^3.0.1","lodash.isequal":"^3.0.1","lodash.keys":"^3.0.5","lodash.reduce":"^3.1.0","lodash.sortby":"^3.1.0","lodash.sortedindex":"^3.1.0","lodash.union":"^3.1.0"},"devDependencies":{"ampersand-collection":"^1.4.0","ampersand-state":"^4.4.4","jshint":"^2.6.0","lodash.find":"^3.2.0","lodash.pluck":"^3.0.2","lodash.toarray":"^3.0.0","precommit-hook":"^1.0.7","tap-spec":"^2.2.0","tape":"^3.4.0"},"gitHead":"154945b29bdcf2cfb91c25cd55aa2b066ae5b178","_id":"ampersand-filtered-subcollection@2.0.3","_shasum":"43b785cb60e128be58a059242dc4adec53e80739","_from":".","_npmVersion":"2.13.1","_nodeVersion":"0.10.40","_npmUser":{"name":"lukekarrys","email":"luke@lukekarrys.com"},"dist":{"shasum":"43b785cb60e128be58a059242dc4adec53e80739","tarball":"https://registry.npmjs.org/ampersand-filtered-subcollection/-/ampersand-filtered-subcollection-2.0.3.tgz","integrity":"sha512-l2/vvxxZwIqNKQVXzKLXBeTyPS2jhmZaxh5mV8opvmG582XJ8cgfD545h3nCYFVycRglpPms5JFV6OhQT31b9A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCSJUPN5c/dB+IypCCRTk+yXNhW44SFlxAQ9Cqo9KUrJwIhAK3bLB69KoWQP7i+hFu9fiEL+Xn5mjnJ3942TU5WrxRx"}]},"maintainers":[{"name":"gar","email":"gar@comrade.us"},{"name":"andyet","email":"ops@andyet.net"},{"name":"lukekarrys","email":"luke@lukekarrys.com"},{"name":"latentflip","email":"phil@latentflip.com"},{"name":"henrikjoreteg","email":"henrik@andyet.net"}],"directories":{}},"2.0.4":{"name":"ampersand-filtered-subcollection","version":"2.0.4","description":"Filterable, sortable, proxy of a collection that behaves like a collection.","main":"ampersand-filtered-subcollection.js","scripts":{"start":"run-browser test/main.js","test":"node test/main.js | tap-spec"},"repository":{"type":"git","url":"git+https://github.com/AmpersandJS/ampersand-filtered-subcollection.git"},"keywords":["ampersand","collection","filter","sort"],"author":{"name":"Gar","email":"gar@andyet.net"},"license":"MIT","bugs":{"url":"https://github.com/AmpersandJS/ampersand-filtered-subcollection/issues"},"files":["ampersand-filtered-subcollection.js"],"homepage":"https://github.com/AmpersandJS/ampersand-filtered-subcollection","dependencies":{"ampersand-class-extend":"^1.0.1","ampersand-events":"^1.0.1","lodash.assign":"^3.0.0","lodash.difference":"^3.1.0","lodash.every":"^3.2.0","lodash.foreach":"^3.0.2","lodash.includes":"^3.1.0","lodash.isarray":"^3.0.1","lodash.isequal":"^3.0.1","lodash.keys":"^3.0.5","lodash.reduce":"^3.1.0","lodash.sortby":"^3.1.0","lodash.sortedindex":"^3.1.0","lodash.union":"^3.1.0"},"devDependencies":{"ampersand-collection":"^1.4.0","ampersand-state":"^4.4.4","jshint":"^2.6.0","lodash.find":"^3.2.0","lodash.pluck":"^3.0.2","lodash.toarray":"^3.0.0","precommit-hook":"^1.0.7","tap-spec":"^2.2.0","tape":"^3.4.0"},"gitHead":"740b2bdb19d7098f49d86425cd80a1598dcf8eb5","_id":"ampersand-filtered-subcollection@2.0.4","_shasum":"f67627a4c373341b25d700be4dd54ef91d2a711e","_from":".","_npmVersion":"2.13.1","_nodeVersion":"0.10.40","_npmUser":{"name":"lukekarrys","email":"luke@lukekarrys.com"},"dist":{"shasum":"f67627a4c373341b25d700be4dd54ef91d2a711e","tarball":"https://registry.npmjs.org/ampersand-filtered-subcollection/-/ampersand-filtered-subcollection-2.0.4.tgz","integrity":"sha512-Ay5TZjqES66E5dScgmI0159LGRJR8hj7IYA4MD7zYNOm9erdaAfdMcqumwBuwbSHl+8ToQ85qeCfZtrrKAh7qQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDubEHBDKFAOm94KfSpmnLEa3emS0s7kV8I22PKXCOvZAIgScsRUcNW5hBvK9cZzVORjjpWv0euPGHj8gCR2AWNd4U="}]},"maintainers":[{"name":"gar","email":"gar@comrade.us"},{"name":"andyet","email":"ops@andyet.net"},{"name":"lukekarrys","email":"luke@lukekarrys.com"},{"name":"latentflip","email":"phil@latentflip.com"},{"name":"henrikjoreteg","email":"henrik@andyet.net"}],"directories":{}},"2.0.5":{"name":"ampersand-filtered-subcollection","version":"2.0.5","description":"Filterable, sortable, proxy of a collection that behaves like a collection.","main":"ampersand-filtered-subcollection.js","scripts":{"start":"zuul --local -- test/main.js","test":"zuul --phantom -- test/main.js","test-ci":"zuul -- test/main.js"},"repository":{"type":"git","url":"git+https://github.com/AmpersandJS/ampersand-filtered-subcollection.git"},"keywords":["ampersand","collection","filter","sort"],"author":{"name":"Gar","email":"gar@andyet.net"},"license":"MIT","bugs":{"url":"https://github.com/AmpersandJS/ampersand-filtered-subcollection/issues"},"files":["ampersand-filtered-subcollection.js"],"homepage":"https://github.com/AmpersandJS/ampersand-filtered-subcollection","dependencies":{"ampersand-class-extend":"^1.0.1","ampersand-events":"^1.0.1","lodash.assign":"^3.0.0","lodash.difference":"^3.1.0","lodash.every":"^3.2.0","lodash.foreach":"^3.0.2","lodash.includes":"^3.1.0","lodash.isarray":"^3.0.1","lodash.isequal":"^3.0.1","lodash.keys":"^3.0.5","lodash.reduce":"^3.1.0","lodash.sortby":"^3.1.0","lodash.sortedindex":"^3.1.0","lodash.union":"^3.1.0"},"devDependencies":{"ampersand-collection":"^1.4.0","ampersand-state":"^4.4.4","jshint":"^2.6.0","lodash.find":"^3.2.0","lodash.pluck":"^3.0.2","lodash.toarray":"^3.0.0","phantomjs":"^1.9.19","precommit-hook":"^1.0.7","tape":"^4.4.0","zuul":"^3.9.0"},"gitHead":"693b2e0ac3500a96cdba560588102445b094e455","_id":"ampersand-filtered-subcollection@2.0.5","_shasum":"6f5592bd98bdf11fc275c19c78f8b5f5657a9030","_from":".","_npmVersion":"3.5.3","_nodeVersion":"4.2.4","_npmUser":{"name":"gar","email":"gar+npm@danger.computer"},"dist":{"shasum":"6f5592bd98bdf11fc275c19c78f8b5f5657a9030","tarball":"https://registry.npmjs.org/ampersand-filtered-subcollection/-/ampersand-filtered-subcollection-2.0.5.tgz","integrity":"sha512-rB+T6o+xU8nVgrfwWHCspOS7ylERObbGpcuvYTvmuszlwXpcK00BS+2j1mens/tjLZEC13JVnJFuCE3pzd37tQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5raZlCjTr/faVL5b28P77q9GJgiGAqJ4EO4GqxLARcgIhAPfUjySCxKK5y2Zw+l0XH4ahYtOx/hqmYLZ4lsOw2T7d"}]},"maintainers":[{"name":"andyet-ops","email":"ops@andyet.net"},{"name":"gar","email":"gar+npm@danger.computer"},{"name":"henrikjoreteg","email":"henrik@joreteg.com"},{"name":"latentflip","email":"phil@latentflip.com"},{"name":"lukekarrys","email":"luke@lukekarrys.com"}],"_npmOperationalInternal":{"host":"packages-6-west.internal.npmjs.com","tmp":"tmp/ampersand-filtered-subcollection-2.0.5.tgz_1455734645645_0.12371623469516635"},"directories":{}},"3.0.0":{"name":"ampersand-filtered-subcollection","version":"3.0.0","description":"Filterable, sortable, proxy of a collection that behaves like a collection.","main":"ampersand-filtered-subcollection.js","scripts":{"start":"zuul --local -- test/main.js","test":"zuul --phantom -- test/main.js","test-ci":"zuul -- test/main.js","lint":"jshint .","validate":"npm ls"},"repository":{"type":"git","url":"git+https://github.com/AmpersandJS/ampersand-filtered-subcollection.git"},"keywords":["ampersand","collection","filter","sort"],"author":{"name":"Gar","email":"gar@andyet.net"},"license":"MIT","bugs":{"url":"https://github.com/AmpersandJS/ampersand-filtered-subcollection/issues"},"files":["ampersand-filtered-subcollection.js"],"homepage":"https://github.com/AmpersandJS/ampersand-filtered-subcollection","dependencies":{"ampersand-class-extend":"^2.0.0","ampersand-events":"^2.0.1","lodash":"^4.11.2"},"devDependencies":{"ampersand-collection":"^2.0.0","ampersand-state":"^5.0.1","jshint":"^2.6.0","phantomjs":"^2.1.7","precommit-hook":"^3.0.0","tape":"^4.4.0","zuul":"^3.9.0"},"pre-commit":["lint","validate","test"],"gitHead":"50fe385c658faff62e5c610217c949ad0e2c3ce2","_id":"ampersand-filtered-subcollection@3.0.0","_shasum":"d3027104db4cafa59070478a3a89175fb32b38eb","_from":".","_npmVersion":"3.8.3","_nodeVersion":"5.9.1","_npmUser":{"name":"lukekarrys","email":"luke@lukekarrys.com"},"dist":{"shasum":"d3027104db4cafa59070478a3a89175fb32b38eb","tarball":"https://registry.npmjs.org/ampersand-filtered-subcollection/-/ampersand-filtered-subcollection-3.0.0.tgz","integrity":"sha512-Xf5ap4HBUsFP+fAYCgh4ZbsFupMkfsPHRAzi66NIdqpbM9VVZIk7a1bOju2UQoRr/tVHDXrf+3SF5g79Twi1fg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCc9StNqiRDJTKDpyPPBkZDZMiLNf3EIGGRzZ9WlPBbDQIgBYO9AC61tubixd0LBrANVHBsTannS/2hzD/UuLcV0fs="}]},"maintainers":[{"name":"andyet-ops","email":"ops@andyet.net"},{"name":"fyockm","email":"fyockm@gmail.com"},{"name":"gar","email":"gar+npm@danger.computer"},{"name":"henrikjoreteg","email":"henrik@joreteg.com"},{"name":"latentflip","email":"phil@latentflip.com"},{"name":"lukekarrys","email":"luke@lukekarrys.com"},{"name":"pgilad","email":"giladp007@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/ampersand-filtered-subcollection-3.0.0.tgz_1464207688722_0.8803271122742444"},"directories":{}}},"readme":"# ampersand-filtered-subcollection\n\nLead Maintainer: [Michael Garvin](https://github.com/wraithgar)\n\n## Purpose\n\nFiltered subset of a collection that emits events like a collection.\n\nOften for one part of an app you want a whole collection of models, but for another you want some sort of filtered subcollection. That's what this is for. It gives you a \"pseudo collection\" that behaves much like a full collection, but really is a subset.\n\n<!-- starthide -->\nPart of the [Ampersand.js toolkit](http://ampersandjs.com) for building clientside applications.\n<!-- endhide -->\n\n## browser support\n\n[![browser support](https://ci.testling.com/ampersandjs/ampersand-filtered-subcollection.png)\n](https://ci.testling.com/ampersandjs/ampersand-filtered-subcollection)\n\n## install\n\n```\nnpm install ampersand-filtered-subcollection\n```\n\n## example\n\n```javascript\nvar WidgetCollection = require('./mycollection');\nvar FilteredSubcollection = require('ampersand-filtered-subcollection');\n\n\nvar widgets = new WidgetCollection();\n\nwidgets.fetch();\n\n// this will create a collection-like object\n// that will only include models that match\n// the `where` filters.\n// It will be sorted by the comparator\n// independent of base collection order\nvar favoriteWidgets = new FilteredSubcollection(widgets, {\n    where: {\n        awesome: true\n    },\n    comparator: function (model) {\n        return model.rating;\n    }\n});\n```\n\n## API reference\n\n### new FilteredSubcollection(collection, [config])\n\n* `collection` {Collection} An instance of an ampersand-collection or Backbone.Collection that contains our full set of models.\n* `config` {Object} [optional] The config object that specifies whether or not a model in the base should be considered part of this subcollection.\n    * `where` {Object} [optional] Object where each key is a property name of the model and the value is what you want that property to be in order for it to be included. Often used for boolean properties.\n    * `filter` {Function} [optional] If you need more control than what you get from `where` you can use a filter function to determine if the model should be included. It will get called with a model and you simply return `true` or `false`.\n    * `filters` {Array} [optional] If you for some reason want to pass in multiple filter functions you can do so. This can be useful in cases where you keep a reference to one that you may remove later without wanting to remove all your filtering rules. But, most of the time you would just do use `filter` and do all your logic in that one function.\n    * `watched` {Array} [optional] This is an array of property names to watch for changes to in the base collection. This happens automatically if you use `where`. If your comparator and filters are all functions, then you will need to manually specify the relevant properties to watch so that re-filtering and re-sorting will occur when needed.\n    * `comparator` {Function || String} [optional] If you want to determine sort order separate from the base collection provide this argument. If you pass a string it should be the name of the property that should be used to sort by, and it will be watched for changes automatically. If you pass a function, it will be passed the model and should return the value from the model that should be used to sort. If you pass a function that names two incoming arguments it will be used as a native `Array.prototype.sort`, where you get passed two models and return a `1`, `0`, `-1` to specify how they compare.\n\n### .configure(config, [reset])\n\nConfig can get used to update subcollection config post-init.\n\n* `config` {Object} Same config object as what you pass to init.\n* `reset` {Boolean} Default: `false`. Whether or not to remove all previous filter config options. If you specify `{where: {read: true}}` in the init and then do `.configure({where: {from: 'steve'}})` without passing `true` the collection will contain only read items from steve. The filters are combined by default. When `reset` is `true`, the `comparator` is also reset.\n\n### .reset()\n\nConvenience method that calls `.configure({}, true)`\n\n### .addFilter(filterFunction)\n\n* `filterFunction` {Function} A filter function as described above. Gets called with the model, you return `true` or `false`.\n\n### .removeFilter(filterFunction)\n\n* `filterFunction` {Function} If you have a reference in your code to the filter function you added, you can remove it by calling `removeFilter`.\n\n### .clearFilters()\n\nRemoves filter functions and watches. After calling this, the subcollection should have the same models as your base collection.\n\nThe only thing that does *not* get cleared is your `comparator` method or property if you have one.\n\n### .swapFilters(newFilters, [oldFilters])\n\n* `newFilters` {Function} or array of filter functions to be applied to the collection.\n* `oldFilters` {Function} or array of filter functions to be removed from the collection. If `oldFilters` is undefined, then it is assumed to be the set of currently active filters.\n\nReplaces a set of existing filter functions with a set of new filters, and does not apply the results of the new filter combination until all have been added and removed.\n\nFor example:\n\n```javascript\n.swapFilters(newFilter, []) // Same as .addFilter(newFilter)\n.swapFilters([], oldFilter) // Same as .removeFilter(oldFilter)\n```\n\n\n### .at(index)\n\n* `index` {Number} returns model as specified index in the subcollection.\n\n### .length\n\nThe subcollection maintains a read-only length property that simply proxies to the array length of the models it contains.\n\n### .models\n\nThe array of filtered models\n\n### FilteredSubcollection.extend(mixins...)\n\nFilteredSubcollection attaches `extend` to the constructor so if you want to add custom methods to your subcollection constructor, it's easy:\n\n```javascript\nvar FilteredSubcollection = require('ampersand-filtered-subcollection');\n\n// this exports a new constructor that includes\n// the methods you passed on the prototype while\n// maintaining the inheritance chain for instanceof\n// checks.\nmodule.exports = FilteredSubcollection.extend({\n    myMethod: function () { ... },\n    myOtherMethod: function () { ... }\n});\n```\n\nThis is done by using: [ampersand-class-extend](https://github.com/AmpersandJS/ampersand-class-extend)\n\n## credits\n\nIf you like this follow [@HenrikJoreteg](http://twitter.com/henrikjoreteg) on twitter.\n\n## license\n\nMIT\n","maintainers":[{"email":"daniel.hritzkiv@gmail.com","name":"dhritzkiv"},{"email":"giladp007@gmail.com","name":"pgilad"},{"email":"fyockm@gmail.com","name":"fyockm"},{"email":"ops@andyet.net","name":"andyet-ops"},{"email":"phil@latentflip.com","name":"latentflip"},{"email":"henrik@joreteg.com","name":"henrikjoreteg"}],"time":{"modified":"2022-06-13T02:46:04.904Z","created":"2015-03-17T21:32:48.373Z","1.0.0":"2015-03-17T21:32:48.373Z","1.0.1":"2015-03-18T19:02:00.260Z","2.0.0":"2015-04-07T17:16:41.073Z","2.0.1":"2015-04-23T19:18:26.586Z","2.0.2":"2015-05-28T16:33:07.988Z","2.0.3":"2015-07-29T22:15:04.876Z","2.0.4":"2015-07-30T20:22:34.849Z","2.0.5":"2016-02-17T18:44:08.041Z","3.0.0":"2016-05-25T20:21:31.561Z"},"homepage":"https://github.com/AmpersandJS/ampersand-filtered-subcollection","keywords":["ampersand","collection","filter","sort"],"repository":{"type":"git","url":"git+https://github.com/AmpersandJS/ampersand-filtered-subcollection.git"},"author":{"name":"Gar","email":"gar@andyet.net"},"bugs":{"url":"https://github.com/AmpersandJS/ampersand-filtered-subcollection/issues"},"license":"MIT","readmeFilename":"README.md","users":{"klaemo":true}}