{"maintainers":[{"name":"mrgnrdrck","email":"morgan@roderick.dk"}],"keywords":["pub/sub","pubsub","publish/subscribe","publish","subscribe"],"dist-tags":{"latest":"1.5.7"},"author":{"name":"Morgan Roderick","email":"morgan@roderick.dk","url":"http://roderick.dk"},"description":"Dependency free publish/subscribe library","readme":"# PubSubJS\n\n[![Travis build status](https://img.shields.io/travis/mroderick/PubSubJS.svg)](https://travis-ci.org/mroderick/PubSubJS) [![David](https://img.shields.io/david/mroderick/pubsubjs.svg)](https://david-dm.org/mroderick/PubSubJS) [![David](https://img.shields.io/david/dev/mroderick/pubsubjs.svg)](https://david-dm.org/mroderick/PubSubJS#info=devDependencies&view=table)\n![npm version](https://img.shields.io/npm/v/pubsub-js.svg) ![npm license](https://img.shields.io/npm/l/pubsub-js.svg) ![npm downloads per month](https://img.shields.io/npm/dm/pubsub-js.svg)\n![Bower version](https://img.shields.io/bower/v/pubsub-js.svg)\n\nPubSubJS is a [topic-based](http://en.wikipedia.org/wiki/Publish–subscribe_pattern#Message_filtering) [publish/subscribe](http://en.wikipedia.org/wiki/Publish/subscribe) library written in JavaScript.\n\nPubSubJS has synchronisation decoupling, so topics are published asynchronously. This helps keep your program predictable as the originator of topics will not be blocked while consumers process them.\n\nFor the adventurous, PubSubJS also supports synchronous topic publication. This can give a speedup in some environments (browsers, not all), but can also lead to some very difficult to reason about programs, where one topic triggers publication of another topic in the same execution chain.\n\n#### Single process\n\nPubSubJS is designed to be used within a **single process**, and is not a good candidate for multi-process applications (like [Node.js – Cluster](http://nodejs.org/api/cluster.html) with many sub-processes). If your Node.js app is a single process app, you're good. If it is (or is going to be) a multi-process app, you're probably better off using [redis Pub/Sub](http://redis.io/topics/pubsub) or similar\n\n## Key features\n\n* Dependency free\n* Synchronization decoupling\n* ES3 compatible. PubSubJS should be able to run everywhere that can execute JavaScript. Browsers, servers, ebook readers, old phones, game consoles.\n* AMD / CommonJS module support\n* No modification of subscribers (jQuery custom events modify subscribers)\n* Easy to understand and use (thanks to synchronization decoupling)\n* Small(ish), less than 1kb minified and gzipped\n\n## Getting PubSubJS\n\nThere are several ways of getting PubSubJS\n\n* [Download a tagged version](https://github.com/mroderick/PubSubJS/tags) from GitHub\n* Install via npm (`npm install pubsub-js`)\n* Install via bower (`bower install pubsub-js`)\n* Use it via CDN directly (http://www.jsdelivr.com/#!pubsubjs)\n\n## Examples\n\n### Basic example\n\n```javascript\n// create a function to subscribe to topics\nvar mySubscriber = function( msg, data ){\n    console.log( msg, data );\n};\n\n// add the function to the list of subscribers for a particular topic\n// we're keeping the returned token, in order to be able to unsubscribe\n// from the topic later on\nvar token = PubSub.subscribe( 'MY TOPIC', mySubscriber );\n\n// publish a topic asyncronously\nPubSub.publish( 'MY TOPIC', 'hello world!' );\n\n// publish a topic syncronously, which is faster in some environments,\n// but will get confusing when one topic triggers new topics in the\n// same execution chain\n// USE WITH CAUTION, HERE BE DRAGONS!!!\nPubSub.publishSync( 'MY TOPIC', 'hello world!' );\n```\n\n### Cancel specific subscription\n\n```javascript\n// create a function to receive the topic\nvar mySubscriber = function( msg, data ){\n    console.log( msg, data );\n};\n\n// add the function to the list of subscribers to a particular topic\n// we're keeping the returned token, in order to be able to unsubscribe\n// from the topic later on\nvar token = PubSub.subscribe( 'MY TOPIC', mySubscriber );\n\n// unsubscribe this subscriber from this topic\nPubSub.unsubscribe( token );\n```\n\n### Cancel all subscriptions for a function\n\n```javascript\n// create a function to receive the topic\nvar mySubscriber = function( msg, data ){\n    console.log( msg, data );\n};\n\n// unsubscribe mySubscriber from ALL topics\nPubSub.unsubscribe( mySubscriber );\n```\n\n### Clear all subscriptions for a topic\n\n```javascript\nPubSub.subscribe('a', myFunc1);\nPubSub.subscribe('a.b', myFunc2);\nPubSub.subscribe('a.b.c', myFunc3);\n\nPubSub.unsubscribe('a.b');\n// no further notications for 'a.b' and 'a.b.c' topics\n// notifications for 'a' will still get published\n```\n\n### Clear all subscriptions\n\n```javascript\nPubSub.clearAllSubscriptions();\n// all subscriptions are removed\n```\n\n### Hierarchical addressing\n\n```javascript\n// create a subscriber to receive all topics from a hierarchy of topics\nvar myToplevelSubscriber = function( msg, data ){\n    console.log( 'top level: ', msg, data );\n}\n\n// subscribe to all topics in the 'car' hierarchy\nPubSub.subscribe( 'car', myToplevelSubscriber );\n\n// create a subscriber to receive only leaf topic from hierarchy op topics\nvar mySpecificSubscriber = function( msg, data ){\n    console.log('specific: ', msg, data );\n}\n\n// subscribe only to 'car.drive' topics\nPubSub.subscribe( 'car.drive', mySpecificSubscriber );\n\n// Publish some topics\nPubSub.publish( 'car.purchase', { name : 'my new car' } );\nPubSub.publish( 'car.drive', { speed : '14' } );\nPubSub.publish( 'car.sell', { newOwner : 'someone else' } );\n\n// In this scenario, myToplevelSubscriber will be called for all\n// topics, three times in total\n// But, mySpecificSubscriber will only be called once, as it only\n// subscribes to the 'car.drive' topic\n```\n\n## Tips\n\nUse \"constants\" for topics and not string literals. PubSubJS uses strings as topics, and will happily try to deliver your topics with ANY topic. So, save yourself from frustrating debugging by letting the JavaScript engine complain\nwhen you make typos.\n\n### Example of use of \"constants\"\n\n```javascript\n// BAD\nPubSub.subscribe(\"hello\", function( msg, data ){\n\tconsole.log( data )\n});\n\nPubSub.publish(\"helo\", \"world\");\n\n// BETTER\nvar MY_TOPIC = \"hello\";\nPubSub.subscribe(MY_TOPIC, function( msg, data ){\n\tconsole.log( data )\n});\n\nPubSub.publish(MY_TOPIC, \"world\");\n```\n\n### Immediate Exceptions for stack traces in developer tools\n\nAs of versions 1.3.2, you can force immediate exceptions (instead of delayed execeptions), which has the benefit of maintaining the stack trace when viewed in dev tools.\n\nThis should be considered a development only option, as PubSubJS was designed to try to deliver your topics to all subscribers, even when some fail.\n\nSetting immediate exceptions in development is easy, just tell PubSubJS about it after it's been loaded.\n\n```javascript\nPubSub.immediateExceptions = true;\n```\n\n## Plugin for jQuery\n\nBy default PubSubJS can be used in any browser or CommonJS environment, including [node](http://nodejs.org). Additionally, PubSubJS can be built specifically for jQuery using Rake.\n\n    $ rake jquery\n\nor using Grunt\n\n    $ grunt jquery\n\nProduces jquery.pubsub.js\n\n### Use with jQuery\n\n```javascript\nvar topic = 'greeting',\n    data = 'world',\n    subscriber = function sayHello( data ){\n        console.log( 'hello ' + data );\n    };\n\n// add a subscription\nvar token = $.pubsub('subscribe', topic, subscriber );\n\n// unsubscribing\n$.pubsub('unsubscribe', token);         // remove a specific subscription\n$.pubsub('unsubscribe', subscriber);    // remove all subscriptions for subscriber\n\n// publishing a topic\n$.pubsub('publish', topic, data);\n\n// publishing topic syncronously\n$.pubsub('publishSync', topic, data);\n```\n\nIn the jQuery build, the global ```PubSub``` global is still available, so you can mix and match both ```Pubsub``` and ```$.pubsub``` as needed.\n\nThere is also an article about [Using PubSubJS with jQuery](http://roderick.dk/resources/using-pubsubjs-with-jquery/)\n\n## Contributing to PubSubJS\n\nPlease see [CONTRIBUTING.md](CONTRIBUTING.md)\n\n## Future of PubSubJS\n\n* Better and more extensive usage examples\n\n\n## More about Publish/Subscribe\n\n* [The Many Faces of Publish/Subscribe](http://www.cs.ru.nl/~pieter/oss/manyfaces.pdf) (PDF)\n* [Addy Osmani's mini book on Patterns](http://addyosmani.com/resources/essentialjsdesignpatterns/book/#observerpatternjavascript)\n* [Publish / Subscribe Systems, A summary of 'The Many Faces of Publish / Subscribe'](http://downloads.ohohlfeld.com/talks/hohlfeld_schroeder-publish_subscribe_systems-dsmware_eurecom2007.pdf)\n\n## Versioning\n\nPubSubJS uses [Semantic Versioning](http://semver.org/) for predictable versioning.\n\n## Changelog\n\nPlease see [https://github.com/mroderick/PubSubJS/releases](https://github.com/mroderick/PubSubJS/releases)\n\n## License\n\nMIT: http://mrgnrdrck.mit-license.org\n\n## Alternatives\n\nThese are a few alternative projects that also implement topic based publish subscribe in JavaScript.\n\n* http://www.joezimjs.com/projects/publish-subscribe-jquery-plugin/\n* http://amplifyjs.com/api/pubsub/\n* http://radio.uxder.com/ — oriented towards 'channels', free of dependencies\n* https://github.com/pmelander/Subtopic - supports vanilla, underscore, jQuery and is even available in NuGet\n","repository":{"type":"git","url":"git://github.com/mroderick/PubSubJS.git"},"users":{"andriecool":true,"rajun1971":true,"mygoare":true,"metakungfu":true,"notdom":true,"qbylucky":true,"garry.trinder":true,"craigpatten":true,"mkoc":true,"mr-smiley":true,"classicoldsong":true},"bugs":{"url":"https://github.com/mroderick/PubSubJS/issues"},"license":"MIT","versions":{"1.3.4":{"name":"pubsub-js","version":"1.3.4","description":"Dependency free publish/subscribe library","directories":{"lib":"src","test":"test"},"scripts":{"test":"grunt test"},"repository":{"type":"git","url":"git://github.com/mroderick/PubSubJS.git"},"keywords":["pub/sub","pubsub","publish/subscribe","publish","subscribe"],"author":{"name":"Morgan Roderick","email":"morgan@roderick.dk","url":"http://roderick.dk"},"license":"MIT","devDependencies":{"buster":"0.6.x","grunt":"0.4.0","grunt-jslint":"0.2.5","grunt-buster":"0.1.2"},"_id":"pubsub-js@1.3.4","dist":{"shasum":"b6b535f500b81f14ea3d4e76bbb9b9a3419d6a9e","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/pubsub-js/-/pubsub-js-1.3.4.tgz"},"_npmVersion":"1.1.69","_npmUser":{"name":"mrgnrdrck","email":"morgan@roderick.dk"},"maintainers":[{"name":"mrgnrdrck","email":"morgan@roderick.dk"}]},"1.3.5":{"name":"pubsub-js","version":"1.3.5","description":"Dependency free publish/subscribe library","main":"./src/pubsub.js","directories":{"lib":"src","test":"test"},"scripts":{"test":"grunt test"},"repository":{"type":"git","url":"git://github.com/mroderick/PubSubJS.git"},"keywords":["pub/sub","pubsub","publish/subscribe","publish","subscribe"],"author":{"name":"Morgan Roderick","email":"morgan@roderick.dk","url":"http://roderick.dk"},"license":"MIT","devDependencies":{"buster":"0.6.x","grunt":"0.4.0","grunt-jslint":"0.2.5","grunt-buster":"0.1.2"},"_id":"pubsub-js@1.3.5","dist":{"shasum":"6f5e2387e28ee7247272632725910ac632014497","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/pubsub-js/-/pubsub-js-1.3.5.tgz"},"_npmVersion":"1.1.49","_npmUser":{"name":"mrgnrdrck","email":"morgan@roderick.dk"},"maintainers":[{"name":"mrgnrdrck","email":"morgan@roderick.dk"}]},"1.3.6":{"name":"pubsub-js","version":"1.3.6","description":"Dependency free publish/subscribe library","main":"./src/pubsub.js","directories":{"lib":"src","test":"test"},"scripts":{"test":"grunt test"},"repository":{"type":"git","url":"git://github.com/mroderick/PubSubJS.git"},"keywords":["pub/sub","pubsub","publish/subscribe","publish","subscribe"],"author":{"name":"Morgan Roderick","email":"morgan@roderick.dk","url":"http://roderick.dk"},"license":"MIT","devDependencies":{"buster":"0.6.x","grunt":"0.4.0","grunt-jslint":"0.2.5","grunt-buster":"0.1.2"},"_id":"pubsub-js@1.3.6","dist":{"shasum":"7a623686a0ce39e03e7da1b667fcee3d9b6172e0","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/pubsub-js/-/pubsub-js-1.3.6.tgz"},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"mrgnrdrck","email":"morgan@roderick.dk"},"maintainers":[{"name":"mrgnrdrck","email":"morgan@roderick.dk"}]},"1.3.7":{"name":"pubsub-js","version":"1.3.7","description":"Dependency free publish/subscribe library","main":"./src/pubsub.js","directories":{"lib":"src","test":"test"},"scripts":{"test":"grunt test"},"repository":{"type":"git","url":"git://github.com/mroderick/PubSubJS.git"},"keywords":["pub/sub","pubsub","publish/subscribe","publish","subscribe"],"author":{"name":"Morgan Roderick","email":"morgan@roderick.dk","url":"http://roderick.dk"},"license":"MIT","devDependencies":{"buster":"0.6.x","grunt":"0.4.0","grunt-jslint":"0.2.5","grunt-buster":"0.1.2"},"_id":"pubsub-js@1.3.7","dist":{"shasum":"bace4847c0bbf63e28f7365700ad8694549acf12","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/pubsub-js/-/pubsub-js-1.3.7.tgz"},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"mrgnrdrck","email":"morgan@roderick.dk"},"maintainers":[{"name":"mrgnrdrck","email":"morgan@roderick.dk"}]},"1.3.9":{"name":"pubsub-js","version":"1.3.9","description":"Dependency free publish/subscribe library","main":"./src/pubsub.js","directories":{"lib":"src","test":"test"},"scripts":{"test":"grunt test"},"repository":{"type":"git","url":"git://github.com/mroderick/PubSubJS.git"},"keywords":["pub/sub","pubsub","publish/subscribe","publish","subscribe"],"author":{"name":"Morgan Roderick","email":"morgan@roderick.dk","url":"http://roderick.dk"},"license":"MIT","devDependencies":{"buster":"0.6.x","grunt":"0.4.0","grunt-jslint":"0.2.5","grunt-buster":"0.1.2"},"_id":"pubsub-js@1.3.9","dist":{"shasum":"51860db7e862c46f7b000f63d10aa29dffa2fd3c","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/pubsub-js/-/pubsub-js-1.3.9.tgz"},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"mrgnrdrck","email":"morgan@roderick.dk"},"maintainers":[{"name":"mrgnrdrck","email":"morgan@roderick.dk"}]},"1.3.10":{"name":"pubsub-js","version":"1.3.10","description":"Dependency free publish/subscribe library","main":"./src/pubsub.js","directories":{"lib":"src","test":"test"},"scripts":{"test":"grunt test"},"repository":{"type":"git","url":"git://github.com/mroderick/PubSubJS.git"},"keywords":["pub/sub","pubsub","publish/subscribe","publish","subscribe"],"author":{"name":"Morgan Roderick","email":"morgan@roderick.dk","url":"http://roderick.dk"},"license":"MIT","devDependencies":{"buster":"0.6.x","grunt":"0.4.0","grunt-jslint":"0.2.5","grunt-buster":"0.1.2"},"bugs":{"url":"https://github.com/mroderick/PubSubJS/issues"},"_id":"pubsub-js@1.3.10","dist":{"shasum":"30029573e121a2d7d1c2f8d91c8113f016d277be","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/pubsub-js/-/pubsub-js-1.3.10.tgz"},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"mrgnrdrck","email":"morgan@roderick.dk"},"maintainers":[{"name":"mrgnrdrck","email":"morgan@roderick.dk"}]},"1.4.0":{"name":"pubsub-js","version":"1.4.0","description":"Dependency free publish/subscribe library","main":"./src/pubsub.js","directories":{"lib":"src","test":"test"},"scripts":{"test":"grunt test"},"repository":{"type":"git","url":"git://github.com/mroderick/PubSubJS.git"},"keywords":["pub/sub","pubsub","publish/subscribe","publish","subscribe"],"author":{"name":"Morgan Roderick","email":"morgan@roderick.dk","url":"http://roderick.dk"},"license":"MIT","devDependencies":{"buster":"0.6.x","grunt":"0.4.0","grunt-jslint":"0.2.5","grunt-buster":"0.1.2"},"bugs":{"url":"https://github.com/mroderick/PubSubJS/issues"},"_id":"pubsub-js@1.4.0","dist":{"shasum":"9bc745d2cbd7696ce28f219ae7be177f9717f24c","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/pubsub-js/-/pubsub-js-1.4.0.tgz"},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"mrgnrdrck","email":"morgan@roderick.dk"},"maintainers":[{"name":"mrgnrdrck","email":"morgan@roderick.dk"}]},"1.4.1":{"name":"pubsub-js","version":"1.4.1","description":"Dependency free publish/subscribe library","main":"./src/pubsub.js","directories":{"lib":"src","test":"test"},"scripts":{"test":"grunt test"},"repository":{"type":"git","url":"git://github.com/mroderick/PubSubJS.git"},"keywords":["pub/sub","pubsub","publish/subscribe","publish","subscribe"],"author":{"name":"Morgan Roderick","email":"morgan@roderick.dk","url":"http://roderick.dk"},"license":"MIT","devDependencies":{"buster":"0.6.x","grunt":"0.4.0","grunt-jslint":"0.2.5","grunt-buster":"0.1.2"},"bugs":{"url":"https://github.com/mroderick/PubSubJS/issues"},"_id":"pubsub-js@1.4.1","dist":{"shasum":"c1caa47084039007cbc1f0516fb2a4cb9a12f340","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/pubsub-js/-/pubsub-js-1.4.1.tgz"},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"mrgnrdrck","email":"morgan@roderick.dk"},"maintainers":[{"name":"mrgnrdrck","email":"morgan@roderick.dk"}]},"1.4.2":{"name":"pubsub-js","version":"1.4.2","description":"Dependency free publish/subscribe library","main":"./src/pubsub.js","directories":{"lib":"src","test":"test"},"scripts":{"test":"grunt test"},"repository":{"type":"git","url":"git://github.com/mroderick/PubSubJS.git"},"keywords":["pub/sub","pubsub","publish/subscribe","publish","subscribe"],"author":{"name":"Morgan Roderick","email":"morgan@roderick.dk","url":"http://roderick.dk"},"license":"MIT","devDependencies":{"buster":"0.6.x","grunt":"0.4.0","grunt-jslint":"0.2.5","grunt-buster":"0.1.2"},"bugs":{"url":"https://github.com/mroderick/PubSubJS/issues"},"_id":"pubsub-js@1.4.2","dist":{"shasum":"20dd156daa98b3b24d90dd1e7ede97145333b26a","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/pubsub-js/-/pubsub-js-1.4.2.tgz"},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"mrgnrdrck","email":"morgan@roderick.dk"},"maintainers":[{"name":"mrgnrdrck","email":"morgan@roderick.dk"}]},"1.5.0":{"name":"pubsub-js","version":"1.5.0","description":"Dependency free publish/subscribe library","main":"./src/pubsub.js","directories":{"lib":"src","test":"test"},"scripts":{"test":"$(npm bin)/grunt test"},"repository":{"type":"git","url":"git://github.com/mroderick/PubSubJS.git"},"keywords":["pub/sub","pubsub","publish/subscribe","publish","subscribe"],"author":{"name":"Morgan Roderick","email":"morgan@roderick.dk","url":"http://roderick.dk"},"license":"MIT","devDependencies":{"grunt-jslint":"0.2.5","grunt-buster":"0.1.2","grunt-contrib-concat":"0.5.0","buster":"0.7.13","grunt":"~0.4.4","grunt-cli":"~0.1.13"},"bugs":{"url":"https://github.com/mroderick/PubSubJS/issues"},"homepage":"https://github.com/mroderick/PubSubJS","_id":"pubsub-js@1.5.0","dist":{"shasum":"ab3b448def6c739179a392ee00bc6337dc01f9b3","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/pubsub-js/-/pubsub-js-1.5.0.tgz"},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"mrgnrdrck","email":"morgan@roderick.dk"},"maintainers":[{"name":"mrgnrdrck","email":"morgan@roderick.dk"}]},"1.5.1":{"name":"pubsub-js","version":"1.5.1","description":"Dependency free publish/subscribe library","main":"./src/pubsub.js","directories":{"lib":"src","test":"test"},"scripts":{"lint":"$(npm bin)/jslint src/**/*.js test/**/*.js","test":"npm run lint && $(npm bin)/grunt test"},"repository":{"type":"git","url":"git://github.com/mroderick/PubSubJS.git"},"keywords":["pub/sub","pubsub","publish/subscribe","publish","subscribe"],"author":{"name":"Morgan Roderick","email":"morgan@roderick.dk","url":"http://roderick.dk"},"license":"MIT","devDependencies":{"buster":"0.7.18","grunt":"0.4.5","grunt-buster":"0.3.2","grunt-cli":"0.1.13","grunt-contrib-concat":"0.5.0","jslint":"0.7.2","phantomjs":"1.9.13"},"gitHead":"7e78929023dc358dda229201586e715a94cf96dc","bugs":{"url":"https://github.com/mroderick/PubSubJS/issues"},"homepage":"https://github.com/mroderick/PubSubJS","_id":"pubsub-js@1.5.1","_shasum":"3d470bdcd2832560d61a400ced06568c0dc428e9","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"mrgnrdrck","email":"morgan@roderick.dk"},"maintainers":[{"name":"mrgnrdrck","email":"morgan@roderick.dk"}],"dist":{"shasum":"3d470bdcd2832560d61a400ced06568c0dc428e9","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/pubsub-js/-/pubsub-js-1.5.1.tgz"}},"1.5.2":{"name":"pubsub-js","version":"1.5.2","description":"Dependency free publish/subscribe library","main":"./src/pubsub.js","directories":{"lib":"src","test":"test"},"scripts":{"lint":"$(npm bin)/jslint src/**/*.js test/**/*.js","test":"npm run lint && $(npm bin)/grunt test"},"repository":{"type":"git","url":"git://github.com/mroderick/PubSubJS.git"},"keywords":["pub/sub","pubsub","publish/subscribe","publish","subscribe"],"author":{"name":"Morgan Roderick","email":"morgan@roderick.dk","url":"http://roderick.dk"},"license":"MIT","devDependencies":{"buster":"0.7.18","grunt":"0.4.5","grunt-buster":"0.3.2","grunt-cli":"0.1.13","grunt-contrib-concat":"0.5.0","jslint":"0.7.2","phantomjs":"1.9.13"},"gitHead":"6fd3b8943501fcc366c0cb4bc35eb99d6b24d8a9","bugs":{"url":"https://github.com/mroderick/PubSubJS/issues"},"homepage":"https://github.com/mroderick/PubSubJS","_id":"pubsub-js@1.5.2","_shasum":"ba4b7fa2a54397a30741f069f7c256ed9bcbb374","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"mrgnrdrck","email":"morgan@roderick.dk"},"maintainers":[{"name":"mrgnrdrck","email":"morgan@roderick.dk"}],"dist":{"shasum":"ba4b7fa2a54397a30741f069f7c256ed9bcbb374","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/pubsub-js/-/pubsub-js-1.5.2.tgz"}},"1.5.3":{"name":"pubsub-js","version":"1.5.3","description":"Dependency free publish/subscribe library","main":"./src/pubsub.js","directories":{"lib":"src","test":"test"},"scripts":{"lint":"$(npm bin)/jslint src/**/*.js test/**/*.js","test":"npm run lint && $(npm bin)/grunt test"},"repository":{"type":"git","url":"git://github.com/mroderick/PubSubJS.git"},"keywords":["pub/sub","pubsub","publish/subscribe","publish","subscribe"],"author":{"name":"Morgan Roderick","email":"morgan@roderick.dk","url":"http://roderick.dk"},"license":"MIT","devDependencies":{"buster":"0.7.18","grunt":"0.4.5","grunt-buster":"0.3.2","grunt-cli":"0.1.13","grunt-contrib-concat":"0.5.0","jslint":"0.7.2","phantomjs":"1.9.13"},"gitHead":"9f5b9e5c4d63a384e04a3f36cde8fc39dc234933","bugs":{"url":"https://github.com/mroderick/PubSubJS/issues"},"homepage":"https://github.com/mroderick/PubSubJS#readme","_id":"pubsub-js@1.5.3","_shasum":"c4fc2aecf81da0313da1a64105f63c2285dc94cd","_from":".","_npmVersion":"2.14.1","_nodeVersion":"0.10.40","_npmUser":{"name":"mrgnrdrck","email":"morgan@roderick.dk"},"maintainers":[{"name":"mrgnrdrck","email":"morgan@roderick.dk"}],"dist":{"shasum":"c4fc2aecf81da0313da1a64105f63c2285dc94cd","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/pubsub-js/-/pubsub-js-1.5.3.tgz"}},"1.5.4":{"name":"pubsub-js","version":"1.5.4","description":"Dependency free publish/subscribe library","main":"./src/pubsub.js","directories":{"lib":"src","test":"test"},"scripts":{"lint":"$(npm bin)/jslint src/**/*.js test/**/*.js","test":"npm run lint && $(npm bin)/grunt test"},"repository":{"type":"git","url":"git://github.com/mroderick/PubSubJS.git"},"keywords":["pub/sub","pubsub","publish/subscribe","publish","subscribe"],"author":{"name":"Morgan Roderick","email":"morgan@roderick.dk","url":"http://roderick.dk"},"license":"MIT","devDependencies":{"buster":"0.7.18","grunt":"0.4.5","grunt-buster":"0.3.2","grunt-cli":"0.1.13","grunt-contrib-concat":"0.5.0","jslint":"0.7.2","phantomjs":"1.9.13"},"gitHead":"ff25277ffbb92ae19ad97781dfe95a09b505d250","bugs":{"url":"https://github.com/mroderick/PubSubJS/issues"},"homepage":"https://github.com/mroderick/PubSubJS#readme","_id":"pubsub-js@1.5.4","_shasum":"cb1de7a5bd9add01a49a21e2f67f9f03d1c78533","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.8.1","_npmUser":{"name":"mrgnrdrck","email":"morgan@roderick.dk"},"maintainers":[{"name":"mrgnrdrck","email":"morgan@roderick.dk"}],"dist":{"shasum":"cb1de7a5bd9add01a49a21e2f67f9f03d1c78533","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/pubsub-js/-/pubsub-js-1.5.4.tgz"},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/pubsub-js-1.5.4.tgz_1476769289098_0.5904881346505135"}},"1.5.5":{"name":"pubsub-js","version":"1.5.5","description":"Dependency free publish/subscribe library","main":"./src/pubsub.js","directories":{"lib":"src","test":"test"},"scripts":{"lint":"$(npm bin)/jslint src/**/*.js test/**/*.js","test":"npm run lint && $(npm bin)/grunt test"},"repository":{"type":"git","url":"git://github.com/mroderick/PubSubJS.git"},"keywords":["pub/sub","pubsub","publish/subscribe","publish","subscribe"],"author":{"name":"Morgan Roderick","email":"morgan@roderick.dk","url":"http://roderick.dk"},"license":"MIT","devDependencies":{"buster":"0.7.18","grunt":"0.4.5","grunt-buster":"0.3.2","grunt-cli":"0.1.13","grunt-contrib-concat":"0.5.0","jslint":"0.7.2","phantomjs":"1.9.13"},"gitHead":"2215fff8625b3ea29cfccc9aef02e7f7aa0d9f27","bugs":{"url":"https://github.com/mroderick/PubSubJS/issues"},"homepage":"https://github.com/mroderick/PubSubJS#readme","_id":"pubsub-js@1.5.5","_shasum":"8a0466ae780d98439cda7bfced14c2b3507b0f4a","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.8.1","_npmUser":{"name":"mrgnrdrck","email":"morgan@roderick.dk"},"maintainers":[{"name":"mrgnrdrck","email":"morgan@roderick.dk"}],"dist":{"shasum":"8a0466ae780d98439cda7bfced14c2b3507b0f4a","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/pubsub-js/-/pubsub-js-1.5.5.tgz"},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/pubsub-js-1.5.5.tgz_1488318785899_0.4986174607183784"}},"1.5.6":{"name":"pubsub-js","version":"1.5.6","description":"Dependency free publish/subscribe library","main":"./src/pubsub.js","directories":{"lib":"src","test":"test"},"scripts":{"lint":"$(npm bin)/jslint src/**/*.js test/**/*.js","test":"npm run lint && $(npm bin)/grunt test"},"repository":{"type":"git","url":"git://github.com/mroderick/PubSubJS.git"},"keywords":["pub/sub","pubsub","publish/subscribe","publish","subscribe"],"author":{"name":"Morgan Roderick","email":"morgan@roderick.dk","url":"http://roderick.dk"},"license":"MIT","devDependencies":{"buster":"0.7.18","grunt":"0.4.5","grunt-buster":"0.3.2","grunt-cli":"0.1.13","grunt-contrib-concat":"0.5.0","jslint":"0.7.2","phantomjs":"1.9.13"},"gitHead":"38800db48fe5b855c2c7d75903d07740ce5c63d6","bugs":{"url":"https://github.com/mroderick/PubSubJS/issues"},"homepage":"https://github.com/mroderick/PubSubJS#readme","_id":"pubsub-js@1.5.6","_shasum":"8bf6adbb810ffb7ec5129d178084bd7d7bb97de2","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.8.1","_npmUser":{"name":"mrgnrdrck","email":"morgan@roderick.dk"},"maintainers":[{"name":"mrgnrdrck","email":"morgan@roderick.dk"}],"dist":{"shasum":"8bf6adbb810ffb7ec5129d178084bd7d7bb97de2","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/pubsub-js/-/pubsub-js-1.5.6.tgz"},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/pubsub-js-1.5.6.tgz_1489564725435_0.8234522822313011"}},"1.5.7":{"name":"pubsub-js","version":"1.5.7","description":"Dependency free publish/subscribe library","main":"./src/pubsub.js","directories":{"lib":"src","test":"test"},"scripts":{"lint":"$(npm bin)/jslint src/**/*.js test/**/*.js","test":"npm run lint && $(npm bin)/grunt test"},"repository":{"type":"git","url":"git://github.com/mroderick/PubSubJS.git"},"keywords":["pub/sub","pubsub","publish/subscribe","publish","subscribe"],"author":{"name":"Morgan Roderick","email":"morgan@roderick.dk","url":"http://roderick.dk"},"license":"MIT","devDependencies":{"buster":"0.7.18","grunt":"0.4.5","grunt-buster":"0.3.2","grunt-cli":"0.1.13","grunt-contrib-concat":"0.5.0","jslint":"0.7.2","phantomjs":"1.9.13"},"gitHead":"dda23484896e9e07b94c9770853a3c9ed1fdad3a","bugs":{"url":"https://github.com/mroderick/PubSubJS/issues"},"homepage":"https://github.com/mroderick/PubSubJS#readme","_id":"pubsub-js@1.5.7","_shasum":"a9f386ac141b0905b19cbb2dd57256265f975744","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.8.1","_npmUser":{"name":"mrgnrdrck","email":"morgan@roderick.dk"},"maintainers":[{"name":"mrgnrdrck","email":"morgan@roderick.dk"}],"dist":{"shasum":"a9f386ac141b0905b19cbb2dd57256265f975744","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/pubsub-js/-/pubsub-js-1.5.7.tgz"},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/pubsub-js-1.5.7.tgz_1494660747622_0.3005882785655558"}}},"name":"pubsub-js","time":{"modified":"2017-05-13T07:32:29.574Z","created":"2013-03-17T19:56:17.406Z","1.3.4":"2013-03-17T19:56:20.056Z","1.3.5":"2013-04-17T09:08:22.746Z","1.3.6":"2013-05-21T10:29:11.940Z","1.3.7":"2013-07-04T18:06:25.956Z","1.3.9":"2013-07-23T10:47:03.096Z","1.3.10":"2013-08-13T13:57:08.271Z","1.4.0":"2013-08-16T06:45:04.101Z","1.4.1":"2014-02-10T07:53:07.320Z","1.4.2":"2014-02-11T21:24:46.052Z","1.5.0":"2014-08-11T12:19:05.589Z","1.5.1":"2015-03-02T21:05:08.241Z","1.5.2":"2015-03-02T21:24:26.856Z","1.5.3":"2015-10-02T06:35:21.044Z","1.5.4":"2016-10-18T05:41:31.031Z","1.5.5":"2017-02-28T21:53:07.930Z","1.5.6":"2017-03-15T07:58:47.593Z","1.5.7":"2017-05-13T07:32:29.574Z"},"readmeFilename":"README.md","homepage":"https://github.com/mroderick/PubSubJS#readme"}