{"_id":"feeds","_rev":"8-081f780d1572f041c49bdbcc5fb7a2bb","name":"feeds","description":"Expose paginated feeds of anything as websocket, webhook or event emitter.","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.1":{"name":"feeds","version":"0.0.1","description":"Expose paginated feeds of anything as websocket, webhook or event emitter.","main":"index.js","scripts":{"test":"mocha --compilers coffee:coffee-script/register test/*.spec.coffee"},"author":{"name":"Jesse the Game","email":"jesse@jessethegame.net","url":"http://jessethegame.net"},"license":"MIT","dependencies":{"body-parser":"^1.7.0","coffee-script":"^1.8.0","promise":"^5.0.0","then-redis":"^0.3.12","uuid":"^1.4.1"},"devDependencies":{"chai":"^1.9.1","chai-as-promised":"^4.1.1","mocha":"^1.21.4"},"gitHead":"2a22d76f4c37b0cd341efa62691e38f5e437055a","_id":"feeds@0.0.1","_shasum":"0fad921e134c4eb641cce806c70bc7066293ed6d","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"jessethegame","email":"jesse@jessethegame.net"},"maintainers":[{"name":"jessethegame","email":"jesse@jessethegame.net"}],"dist":{"shasum":"0fad921e134c4eb641cce806c70bc7066293ed6d","tarball":"https://registry.npmjs.org/feeds/-/feeds-0.0.1.tgz","integrity":"sha512-pIil7AYWrz1bYifqEX3T9CxfIjt9GETVzRDnmyTaPphDsNDA9EVNlK8amGdi/vYFDIJ4hTsgz5FzcehXfip7KA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8/dMF5UEVefCfklluF317Wn+/yo0mzDLv6NaAeSgVtQIgYO4jpSMCzYMIy9CkgG2uxIF8n9H7SspoHvf7WPArqFQ="}]}},"0.0.2":{"name":"feeds","version":"0.0.2","description":"Expose paginated feeds of anything as websocket, webhook or event emitter.","main":"index.js","scripts":{"test":"mocha --compilers coffee:coffee-script/register test/*.spec.coffee"},"author":{"name":"Jesse the Game","email":"jesse@jessethegame.net","url":"http://jessethegame.net"},"license":"MIT","dependencies":{"body-parser":"^1.7.0","coffee-script":"^1.8.0","promise":"^5.0.0","then-redis":"^0.3.12","uuid":"^1.4.1"},"devDependencies":{"chai":"^1.9.1","chai-as-promised":"^4.1.1","install":"^0.1.7","mocha":"^1.21.4","nock":"^0.46.0","socket.io-client":"^1.1.0"},"gitHead":"77bfc73b5f089eb257764e239b3d34208939e15a","_id":"feeds@0.0.2","_shasum":"c3f09d321852d9e7d6f358673b120b226fa95e54","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"jessethegame","email":"jesse@jessethegame.net"},"maintainers":[{"name":"jessethegame","email":"jesse@jessethegame.net"}],"dist":{"shasum":"c3f09d321852d9e7d6f358673b120b226fa95e54","tarball":"https://registry.npmjs.org/feeds/-/feeds-0.0.2.tgz","integrity":"sha512-/SlIdglMxC8AUjPZML8k1x7v8YkqZzTFm1Tiva4OsSoULCh6urC0/GtIEmhlUpRknxsIGVOf4Mv0l57kOJBuXQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICREGrdxq8kbrqUZYjKZqkIAlSOUww2ccDIAIYlrOt/VAiAiY3if4Xid71o7+JElTaxiFu2Jy8E+TfZa25tWgyqd4w=="}]}},"0.0.3":{"name":"feeds","version":"0.0.3","description":"Expose paginated feeds of anything as websocket, webhook or event emitter.","main":"index.js","scripts":{"test":"mocha --compilers coffee:coffee-script/register test/*.spec.coffee"},"author":{"name":"Jesse the Game","email":"jesse@jessethegame.net","url":"http://jessethegame.net"},"license":"MIT","dependencies":{"body-parser":"^1.7.0","coffee-script":"^1.8.0","promise":"^5.0.0","then-redis":"^0.3.12","uuid":"^1.4.1"},"devDependencies":{"chai":"^1.9.1","chai-as-promised":"^4.1.1","install":"^0.1.7","mocha":"^1.21.4","nock":"^0.46.0"},"gitHead":"d7b1d0aa2ba7d158c3ee3e59a05d1967fb0a3dc3","_id":"feeds@0.0.3","_shasum":"7ce78fa82c75c5e9cd2360c87f37f2ce1ff23168","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"jessethegame","email":"jesse@jessethegame.net"},"maintainers":[{"name":"jessethegame","email":"jesse@jessethegame.net"}],"dist":{"shasum":"7ce78fa82c75c5e9cd2360c87f37f2ce1ff23168","tarball":"https://registry.npmjs.org/feeds/-/feeds-0.0.3.tgz","integrity":"sha512-vKrRN4DGCGFJWqJzYzrsktLFZO4lPJPQw0nNvR4XrSyDcuCfZvpYlhCEQWDqmY7nD08WMH+3Hgao0uIFK4ddzg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCNPUEAzVwNUQ9Rc+p6SoK3PqkLvhZfDO72m6j/4B4wOwIhANnK471y2B74E8jEo8ZYDzPWlGDuGgXZssMZtbYa0Pfo"}]}}},"readme":"This is not production ready in ANY way.\nI advice waiting for a 0.1.0 release to let it\nanywhere near your code.\n\n# Feeds\n\nExpose paginated feeds of anything as websocket, webhook or event emitter.\nUses redis to store the feed entries references and optionally cache the data.\nThe stored references allow for careless backfilling after downtime or otherwise\nmissed data entries.\n\n# Aggregators\n\nAggregators combine multiple Feeds as a single one. They keep their own log of\nreferences while utilizing the existing Feed caches.\n\n# Consume\n\nThe feeds can be consumed in code by using them as EventEmitters.\nThere are some express bindings in `feeds/feeds/resource` to query\nwith various pagination methods.\nIt's also trivial to set up a socket feed.\n\n## Why would one use this?\n\nIt makes it really easy to turn any information into a paginated feed.\nHaving feeds as lightweight datastructures, you can start building data\nhighways with lots of lanes, junctions and \"coming-together-of-roads\"s (please\ntweet me the word for this @jessethegame if you know it)\n\n## How would one use this?\n\nE.g. combine twitter and github stories into a single feed.\n\n    // Create a feed of tweets\n    var feeds = require('feeds').models;\n    var twitter = require('some-twitter-lib');\n    var github = require('some-github-lib');\n    var io = require('socket.io')\n\n    // This is a feed of github events\n    var twitterFeed = models.JSONFeed.create('twitter', {\n      generateId: function (data) { data.id },\n      generateTimestamp: function (data) { data.created_at }\n    });\n\n    twitter.createStream(..., ...).on('tweet', feed.add);\n\n    // This is a feed of github events\n    var githubFeed = models.JSONFeed.create('github', {\n      generateId: function (data) { data.id },\n      generateTimestamp: function (data) { data.timestamp }\n    });\n\n    github.pollEvents(..., ...).on('event', feed.add);\n\n    // This is a combined feed of tweets and github events\n    var twithubFeed = models.Aggregator.create('twithub');\n    twithub.combine(twitterFeed);\n    twithub.combine(githubFeed);\n\n    // Expose the data over a websocket\n    twithubFeed.on('data', function (data) {\n      io.emit('data', data)\n    });\n\n    io.listen(3000)\n\n## Roadmap\n\n* Atom support\n* RSS support\n* Connect support (rather than express)\n\n## LICENSE\n\nMIT license. See the LICENSE file for details.\n","maintainers":[{"name":"jessethegame","email":"jesse@jessethegame.net"}],"time":{"modified":"2022-06-18T00:05:24.358Z","created":"2014-09-04T23:42:45.829Z","0.0.1":"2014-09-04T23:42:45.829Z","0.0.2":"2014-09-12T21:22:21.197Z","0.0.3":"2014-09-12T22:05:41.661Z"},"author":{"name":"Jesse the Game","email":"jesse@jessethegame.net","url":"http://jessethegame.net"},"license":"MIT","readmeFilename":"README.md"}