{"_id":"ts-events","_rev":"36-835ea03859e8a81fc03d5e2a1dc79d91","name":"ts-events","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","dist-tags":{"latest":"3.4.1"},"versions":{"0.0.1":{"name":"ts-events","version":"0.0.1","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","main":"index.js","typescript":{"definition":"ts-events.d.ts"},"scripts":{"test":"istanbul cover node_modules/mocha/bin/_mocha -- -R spec"},"keywords":["Event","EventEmitter","event loop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja"},"license":"ISC","devDependencies":{"chai":"^2.3.0","dts-bundle":"^0.2.0","mocha":"^2.2.4","source-map-support":"^0.2.10","typedoc":"^0.3.3"},"gitHead":"82e03d733064c8e6aef10baeda3e02f65a59cb1e","_id":"ts-events@0.0.1","_shasum":"bf057188fcf5096d5dfb8d32a266aa346dee3d95","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"bf057188fcf5096d5dfb8d32a266aa346dee3d95","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-0.0.1.tgz","integrity":"sha512-UhoR+D6N1cyF/sIOK111PlOMh9OlGDbJ5vAhjTcFOsIfb3PgckfQ6qo4f0rgv4X3Br2Qrrut3hEoipZTj8fFfQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID5JzhTB/jHrA5Dzvf1CBfYhuTepeYfiIFMf2MsrR7AzAiApbIxV3uOkAnoNqr0N2+1oSe2NWgkmOm9zOyHizyfi/A=="}]},"directories":{}},"0.0.2":{"name":"ts-events","version":"0.0.2","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","main":"index.js","typescript":{"definition":"ts-events.d.ts"},"scripts":{"test":"istanbul cover node_modules/mocha/bin/_mocha -- -R spec"},"keywords":["Event","EventEmitter","event loop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja"},"license":"ISC","devDependencies":{"chai":"^2.3.0","dts-bundle":"^0.2.0","mocha":"^2.2.4","source-map-support":"^0.2.10","typedoc":"^0.3.3"},"gitHead":"9b9b5d26420afa428bc8be3695e1254080cf2dd2","_id":"ts-events@0.0.2","_shasum":"fcaba87ed1d841f16616230196898a84cdc5235d","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"fcaba87ed1d841f16616230196898a84cdc5235d","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-0.0.2.tgz","integrity":"sha512-ywJ9SI8cX7n6n2O7BzND01zR+3gpI1V4NzbgwA0VNMQvYJ1GtbnluNrfuOEwpnqlXrMNOn8Ljv38G/fQbsV82Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDg6M1Ts/UA5sLNU/MKqzKcLF5oBkoASaXk5jCsqhJ6xAiEAk6Pwp5ffIMFtCpC9CaJnRzeAGBztgPzPAAjkVqW6KZ4="}]},"directories":{}},"0.0.3":{"name":"ts-events","version":"0.0.3","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","main":"index.js","typescript":{"definition":"ts-events.d.ts"},"scripts":{"test":"istanbul cover node_modules/mocha/bin/_mocha -- -R spec"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja"},"license":"ISC","devDependencies":{"chai":"^2.3.0","dts-bundle":"^0.2.0","mocha":"^2.2.4","source-map-support":"^0.2.10","typedoc":"^0.3.3"},"gitHead":"fc84c0b8806f71bcbeca90c526d0c2e5a1fee780","_id":"ts-events@0.0.3","_shasum":"e75fefba85f1139de87b750bb6f73c6e376fe83c","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"e75fefba85f1139de87b750bb6f73c6e376fe83c","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-0.0.3.tgz","integrity":"sha512-B2zVqYSSMfigoXfEShq8zGpIjRaZb21CkOTdfAItqzcTWUgLvxgS/FJwoh/qMtMXKD2z7Xhja5hNLFH0VwVJDQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICs8uq/pWp6g5S3ZWPRj3FSSg/nBxUf7B0PtCLZcwkZRAiBNZM81jj/o1GMCSHr+YNdheN2HEmzNbPSN+iLflM+yiA=="}]},"directories":{}},"0.0.4":{"name":"ts-events","version":"0.0.4","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","main":"index.js","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"typescript":{"definition":"ts-events.d.ts"},"scripts":{"test":"istanbul cover node_modules/mocha/bin/_mocha -- -R spec"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja"},"license":"ISC","devDependencies":{"chai":"^2.3.0","dts-bundle":"^0.2.0","mocha":"^2.2.4","source-map-support":"^0.2.10","typedoc":"^0.3.3"},"gitHead":"f9b415bf12512c0e6258e615ce90801c09e8d101","_id":"ts-events@0.0.4","_shasum":"c8c74c4e38656f7ce9f08570f6df4d88c5aa6b7b","_from":".","_npmVersion":"2.6.0","_nodeVersion":"0.10.38","_npmUser":{"name":"rogierschouten","email":"npm@spiritit.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"c8c74c4e38656f7ce9f08570f6df4d88c5aa6b7b","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-0.0.4.tgz","integrity":"sha512-NfPTLac7pulpGEdB8ulh/I1Aq8ELFGi4F8JC5yDPskCQADZgKDxaoJWDx1oXSWF8lCWTKpeV8ud84yqWgKv/hQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICN7J1pcyJ6CfKaN68SVfihfJ/gWAcv0/ueVcUJNxl9FAiByAialuT4RpYPnD+HtOJ725KwXbIo57Zevl390G6BYVw=="}]},"directories":{}},"0.0.5":{"name":"ts-events","version":"0.0.5","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","main":"index.js","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"https://github.com/rogierschouten/ts-events.git"},"typescript":{"definition":"ts-events.d.ts"},"scripts":{"test":"istanbul cover node_modules/mocha/bin/_mocha -- -R spec"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja"},"license":"ISC","devDependencies":{"chai":"^2.3.0","dts-bundle":"^0.2.0","mocha":"^2.2.4","source-map-support":"^0.2.10","typedoc":"^0.3.3"},"gitHead":"0bd25d3435a6814a063f7cedd3a4f0c5927f3442","_id":"ts-events@0.0.5","_shasum":"1dbe5e8c289129aec25d0bb19592a798ad4552e7","_from":".","_npmVersion":"2.6.0","_nodeVersion":"0.10.38","_npmUser":{"name":"rogierschouten","email":"npm@spiritit.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"1dbe5e8c289129aec25d0bb19592a798ad4552e7","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-0.0.5.tgz","integrity":"sha512-grcgJI4YEoyFuctF/0uHPMPjysANZmYM0Kh8c+D2Qbf0eFtP4PwmfMh5SXJujC23OYbnitha2zcUmBI6GGDYAA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCslkj6AkpUGl+4yWwoSTy4sbltGV2gdfhhTJTvWkbUgIhAOxESJFnHfwsdpmJK7jJR9yW58w7iDA8omhzHWiZAJ6b"}]},"directories":{}},"0.0.6":{"name":"ts-events","version":"0.0.6","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","main":"index.js","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"https://github.com/rogierschouten/ts-events.git"},"typescript":{"definition":"ts-events.d.ts"},"scripts":{"test":"istanbul cover node_modules/mocha/bin/_mocha -- -R spec"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja"},"license":"ISC","devDependencies":{"chai":"^2.3.0","dts-bundle":"^0.2.0","mocha":"^2.2.4","source-map-support":"^0.2.10","typedoc":"^0.3.3"},"gitHead":"721941c832e4f8716456834e66276f10b849f28b","_id":"ts-events@0.0.6","_shasum":"d4fc384b9a7ca733a37d7cf9af8152836af120d8","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"d4fc384b9a7ca733a37d7cf9af8152836af120d8","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-0.0.6.tgz","integrity":"sha512-A4VzmsEntkNrQXHutZRsmvgonqNrBW7t+LyHnu7ckXwcUDTHeXJz2Rxq/jMUjPOhYnPatcY+h34iuk0fV9X8xw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDUIOubf0Nx1LKIj7lx29gYo37rurqEa8r82pyhrBzBVAIgO2S6oeW/agfFYeRweSDaTor9gr3+192/byqbgwT93do="}]},"directories":{}},"1.0.0":{"name":"ts-events","version":"1.0.0","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","main":"index.js","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"https://github.com/rogierschouten/ts-events.git"},"typescript":{"definition":"ts-events.d.ts"},"scripts":{"test":"istanbul cover node_modules/mocha/bin/_mocha -- -R spec"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja"},"license":"ISC","devDependencies":{"chai":"^2.3.0","dts-bundle":"^0.2.0","mocha":"^2.2.4","source-map-support":"^0.2.10","typedoc":"^0.3.3"},"gitHead":"fd22be4f4f5ce87107a323b95cf0319e68f24909","_id":"ts-events@1.0.0","_shasum":"a6abd768c2d443be2bc77d9913ccce1938326861","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"a6abd768c2d443be2bc77d9913ccce1938326861","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-1.0.0.tgz","integrity":"sha512-JzSskK6iLaryhkoACnSI0k7b3j89IORH4OfMB1+jlOy6XD9cvzj/x6KChQNlfCP2qsESuF8piAHz2pINnqywqQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH83aJ+BwwTYSOvaRvCGnrHVTZeFlzgZNiEmaaj5z/HfAiEA3GxWfxpr3mnlaMzZc1KW9YvGnweP2QnaUClLrRHTR2s="}]},"directories":{}},"1.1.0":{"name":"ts-events","version":"1.1.0","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","main":"index.js","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"https://github.com/rogierschouten/ts-events.git"},"typescript":{"definition":"ts-events.d.ts"},"scripts":{"test":"istanbul cover node_modules/mocha/bin/_mocha -- -R spec"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja"},"license":"ISC","devDependencies":{"chai":"^2.3.0","dts-bundle":"^0.2.0","mocha":"^2.2.4","source-map-support":"^0.2.10","typedoc":"^0.3.3"},"gitHead":"f272643f395de622371324fb8cccc5c04cf0354d","_id":"ts-events@1.1.0","_shasum":"a7bf326bcb279148e97f92ce94c39d8af86390f4","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"a7bf326bcb279148e97f92ce94c39d8af86390f4","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-1.1.0.tgz","integrity":"sha512-gSubNMQ4B8+yOgFsvfU5FIfNOnYCkU/zBaQErUvzb6IGdUt2H4Kdi9XeLYM08RFCTeh5nnWTgOepFsOEkDruxQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdikQ5ZniYAQy8BZG/LhyF+zK5yRnf1iykImnGE+jDKAIhALHsSvFca7kUmdB9rzDWHme+s0Z9dsvuBPT3Wqx2lEie"}]},"directories":{}},"2.0.0":{"name":"ts-events","version":"2.0.0","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","main":"index.js","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"https://github.com/rogierschouten/ts-events.git"},"typescript":{"definition":"ts-events.d.ts"},"scripts":{"test":"istanbul cover node_modules/mocha/bin/_mocha -- -R spec"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja"},"license":"ISC","devDependencies":{"chai":"^2.3.0","dts-bundle":"^0.2.0","mocha":"^2.2.4","source-map-support":"^0.2.10","typedoc":"^0.3.3"},"gitHead":"64dc4220ef27e4b4eb98f82e628f615ac9baa058","_id":"ts-events@2.0.0","_shasum":"ee82473cb9bfa4b7b39fb3a08bcced6910b953cf","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"ee82473cb9bfa4b7b39fb3a08bcced6910b953cf","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-2.0.0.tgz","integrity":"sha512-1zOlxDXc73uyMzWNHgFsQaHPdshuviOY4Ia9O3Osmx+twbp7AZfQ83WlDkwS10vIZFZtDDohRrjtatpd4qOz4A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSx1ez0BPNxAO/xh2oCypTD0Dt/BdK7jzrZqXWFF2clQIgB6Nv6T23XhrySamPTPdd+gCydXx1jgbn7kIvbbMhsk0="}]},"directories":{}},"2.1.0":{"name":"ts-events","version":"2.1.0","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","main":"./dist/index.js","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"git+https://github.com/rogierschouten/ts-events.git"},"typings":"./dist/index.d.ts","scripts":{"clean":"rimraf ./dist","build":"tsc","lint":"tslint -c ./tslint.json ./src/**/*.ts","test":"mocha ./dist/test/test-*.js","cover":"istanbul cover ./node_modules/mocha/bin/_mocha -- ./dist/test/*.js","prepublish":"npm run clean && npm run lint && npm run build && npm run test"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja"},"license":"ISC","dependencies":{"util":"^0.10.3"},"devDependencies":{"assert":"^1.3.0","chai":"^2.3.0","istanbul":"^0.4.2","mocha":"^2.2.4","rimraf":"^2.5.2","source-map-support":"^0.2.10","tslint":"^3.3.0","typescript":"^1.7.5"},"gitHead":"4cb4a5b62b2f37f6a6a8ccad225e80d1c9de92a8","_id":"ts-events@2.1.0","_shasum":"4aafed4a58928ef1aa82efd8a9b0983a02f14cbc","_from":".","_npmVersion":"3.6.0","_nodeVersion":"5.6.0","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"4aafed4a58928ef1aa82efd8a9b0983a02f14cbc","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-2.1.0.tgz","integrity":"sha512-McvVSHxnrqQFtL1nQBZA3dlLaw7MHeEeiK21q5BKn+MuBCBgHAa6rwIr7uyUPcyLFiXaA8PZuemP/ovks7RbYQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGT+0xvg6jkCvFI95dToHcD6wiwcAwgGx6M3fznsj0joAiEAqSqbY8dzMcWjTcV4b65vRReZ1nRrL7CheCBOmiCgV18="}]},"_npmOperationalInternal":{"host":"packages-5-east.internal.npmjs.com","tmp":"tmp/ts-events-2.1.0.tgz_1455989641062_0.03465231996960938"},"directories":{}},"2.1.1":{"name":"ts-events","version":"2.1.1","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","main":"./dist/index.js","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"git+https://github.com/rogierschouten/ts-events.git"},"typings":"./dist/index.d.ts","scripts":{"clean":"rimraf ./dist ./temp","build":"tsc","lint":"tslint -c ./tslint.json ./src/**/*.ts","test":"mocha ./dist/test/test-*.js","cover":"istanbul cover ./node_modules/mocha/bin/_mocha -- ./dist/test/*.js","browserify":"node ./browserify.js","karma":"karma start --single-run","browma":"npm run browserify && npm run karma","prepublish":"npm run clean && npm run lint && npm run build && npm run test && npm run browma"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja"},"license":"ISC","dependencies":{"util":"^0.10.3"},"devDependencies":{"assert":"^1.3.0","browserify":"^13.0.0","chai":"^2.3.0","glob":"^7.0.0","istanbul":"^0.4.2","karma":"^0.13.21","karma-chrome-launcher":"^0.2.2","karma-firefox-launcher":"^0.1.7","karma-mocha":"^0.2.2","karma-mocha-reporter":"^1.2.0","mkdirp":"^0.5.1","mocha":"^2.2.4","rimraf":"^2.5.2","source-map-support":"^0.2.10","tslint":"^3.3.0","typescript":"^1.7.5"},"gitHead":"360394cadbb28645d12619a403085ae2243ae5ec","_id":"ts-events@2.1.1","_shasum":"b66c75c4d898266d402a972e62d52b55c54cdee3","_from":".","_npmVersion":"3.6.0","_nodeVersion":"5.6.0","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"b66c75c4d898266d402a972e62d52b55c54cdee3","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-2.1.1.tgz","integrity":"sha512-KD2oNB8hhdskSTuxpnuKAy808NF2wbDkFKDCmqFY4sW3SdtEfanhi9PVAcIzHQXuXUXQm74JSGE1aEa2FNrgbg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDKjNMvTEP5Bv5xgcpR2/PxNxRm6Ar9zi4t4ugXEsGxtQIhAJZcp+ndoAWinNYv3GxOfw8e+fj9ruzzctWpyBee2mKs"}]},"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/ts-events-2.1.1.tgz_1455994587601_0.9162826058454812"},"directories":{}},"2.2.0":{"name":"ts-events","version":"2.2.0","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","main":"./dist/index.js","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"git+https://github.com/rogierschouten/ts-events.git"},"typings":"./dist/index.d.ts","scripts":{"clean":"rimraf ./dist ./temp","build":"tsc","lint":"tslint -c ./tslint.json ./src/**/*.ts","test":"mocha ./dist/test/test-*.js","cover":"istanbul cover ./node_modules/mocha/bin/_mocha -- ./dist/test/*.js","browserify":"node ./browserify.js","karma":"karma start --single-run","browma":"npm run browserify && npm run karma","prepublish":"npm run clean && npm run lint && npm run build && npm run test && npm run browma"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja"},"license":"ISC","dependencies":{"util":"^0.10.3"},"devDependencies":{"assert":"^1.3.0","browserify":"^13.0.0","chai":"^2.3.0","glob":"^7.0.0","istanbul":"^0.4.2","karma":"^0.13.21","karma-chrome-launcher":"^0.2.2","karma-firefox-launcher":"^0.1.7","karma-mocha":"^0.2.2","karma-mocha-reporter":"^1.2.0","mkdirp":"^0.5.1","mocha":"^2.2.4","rimraf":"^2.5.2","source-map-support":"^0.2.10","tslint":"^3.3.0","typescript":"^1.7.5"},"gitHead":"738da9fc93a7e7fda43dd13c0db46cda5ba06283","_id":"ts-events@2.2.0","_shasum":"f70d99915cf6398b071a92482b4db8ec0c68f722","_from":".","_npmVersion":"3.6.0","_nodeVersion":"5.6.0","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"f70d99915cf6398b071a92482b4db8ec0c68f722","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-2.2.0.tgz","integrity":"sha512-DHGSQjp7/w+3wt/Adiz30CSeLj6FR/DfYDGLAkoEPTD0vcJq9rf1BWSAI69+KSrNN32lABKH0fklspQ6CsWz+w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCsyDph3mkxXtfrsnXIFs4ymxW0+xhAGe5X3fVthCkFqQIhAMZXJRHU7wOlQw52mELFNQA2Y0JSimZCzRRoqRQBEYk5"}]},"_npmOperationalInternal":{"host":"packages-5-east.internal.npmjs.com","tmp":"tmp/ts-events-2.2.0.tgz_1455996475005_0.6891286743339151"},"directories":{}},"2.3.0":{"name":"ts-events","version":"2.3.0","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","main":"./dist/index.js","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"git+https://github.com/rogierschouten/ts-events.git"},"typings":"./dist/index.d.ts","scripts":{"clean":"rimraf ./dist ./temp","build":"tsc","lint":"tslint -c ./tslint.json ./src/**/*.ts","test":"mocha ./dist/test/test-*.js","cover":"istanbul cover ./node_modules/mocha/bin/_mocha -- ./dist/test/*.js","browserify":"node ./browserify.js","karma":"karma start --single-run","browma":"npm run browserify && npm run karma","prepublish":"npm run clean && npm run lint && npm run build && npm run test && npm run browma"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja"},"license":"ISC","dependencies":{},"devDependencies":{"assert":"^1.3.0","browserify":"^13.0.0","chai":"^2.3.0","glob":"^7.0.0","istanbul":"^0.4.2","karma":"^0.13.21","karma-chrome-launcher":"^0.2.2","karma-firefox-launcher":"^0.1.7","karma-mocha":"^0.2.2","karma-mocha-reporter":"^1.2.0","mkdirp":"^0.5.1","mocha":"^2.2.4","rimraf":"^2.5.2","source-map-support":"^0.2.10","tslint":"^3.3.0","typescript":"^1.7.5","util":"^0.10.3"},"gitHead":"872be9d7d118e14c40a80742cbafcb827fe8bff4","_id":"ts-events@2.3.0","_shasum":"f1f136ea4c7f364b4cc54cda866cbd97bafb9735","_from":".","_npmVersion":"3.6.0","_nodeVersion":"5.6.0","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"f1f136ea4c7f364b4cc54cda866cbd97bafb9735","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-2.3.0.tgz","integrity":"sha512-vIp1iQG1mBqjEUvAi0FGAGuswvz8+k5BaURDHPSNJMDMiPzIx1XADbceixZxz3iZjIMLDXWeAi+xXSrC5PRPIg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGcvSXKzF//MLwdJQi3YojhrExUkgIqscg/MuX5bdycAIgb0JYr/cT3QLzAtukeiIKp+WIbGXVjFnerbQPThIb/9o="}]},"_npmOperationalInternal":{"host":"packages-6-west.internal.npmjs.com","tmp":"tmp/ts-events-2.3.0.tgz_1455999421999_0.31182637135498226"},"directories":{}},"2.4.0":{"name":"ts-events","version":"2.4.0","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","main":"index.js","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"git+https://github.com/rogierschouten/ts-events.git"},"typescript":{"definition":"ts-events.d.ts"},"scripts":{"test":"istanbul cover node_modules/mocha/bin/_mocha -- -R spec"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja"},"license":"ISC","devDependencies":{"chai":"^2.3.0","dts-bundle":"^0.2.0","mocha":"^2.2.4","source-map-support":"^0.2.10","typedoc":"^0.3.3"},"gitHead":"a283f859fe9fdf85cf9a7a7c55938635d9822945","_id":"ts-events@2.4.0","_shasum":"b46184ae560222918a4a9c755fb25a4c0416cb2d","_from":".","_npmVersion":"3.6.0","_nodeVersion":"5.6.0","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"b46184ae560222918a4a9c755fb25a4c0416cb2d","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-2.4.0.tgz","integrity":"sha512-ukCVelcpzwcOvszYaOqUb6R4YjiU/vj43ju3+U6VkcHop6WiFDflE+SEj2SkZYF7rc4X47rqXVhmIhfeDsUzeA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDTwWThHk8CVGyPRZ8PoS6LYsEF17Yj9oUt/rtY5OQ2MQIhANgB193ZnQdmiQBGdSEkNth4g/TtrGhCDnV8uDuf57pU"}]},"_npmOperationalInternal":{"host":"packages-6-west.internal.npmjs.com","tmp":"tmp/ts-events-2.4.0.tgz_1456048506850_0.05493033165112138"},"directories":{}},"3.0.0":{"name":"ts-events","version":"3.0.0","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","main":"./dist/index.js","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"git+https://github.com/rogierschouten/ts-events.git"},"typings":"./dist/index.d.ts","scripts":{"clean":"rimraf ./dist ./temp","build":"tsc","lint":"tslint -c ./tslint.json ./src/**/*.ts","test":"mocha ./dist/test/test-*.js","cover":"istanbul cover ./node_modules/mocha/bin/_mocha -- ./dist/test/*.js","browserify":"node ./browserify.js","karma":"karma start --single-run","browma":"npm run browserify && npm run karma","prepublish":"npm run clean && npm run lint && npm run build && npm run test && npm run browma"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja"},"license":"ISC","dependencies":{},"devDependencies":{"assert":"^1.3.0","browserify":"^13.0.0","chai":"^2.3.0","glob":"^7.0.0","istanbul":"^0.4.2","karma":"^0.13.21","karma-chrome-launcher":"^0.2.2","karma-firefox-launcher":"^0.1.7","karma-mocha":"^0.2.2","karma-mocha-reporter":"^1.2.0","mkdirp":"^0.5.1","mocha":"^2.2.4","rimraf":"^2.5.2","source-map-support":"^0.2.10","tslint":"^3.3.0","typescript":"^1.7.5","util":"^0.10.3"},"gitHead":"c7d8b0398dfc82c8cc351baa9a06e2e349d25188","_id":"ts-events@3.0.0","_shasum":"cfdb3586bb3d0504ddc5641300acf9f7d4048d5c","_from":".","_npmVersion":"3.6.0","_nodeVersion":"5.6.0","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"cfdb3586bb3d0504ddc5641300acf9f7d4048d5c","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-3.0.0.tgz","integrity":"sha512-LDSYfXnhzVUQopRntKCzHvvl+nZsDhYTpAUpzSnLkRGZJfT/+l/c3/V6+xEvaAqZb8XKrhQfrhN88k9Az/P3YQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDJEchkA+kBp0wRVoT8hDz6Wui1NSQnfcDDyT+5JOhjeAiEAh60fdgC1BAZMZXNVBtgvAS5RLY8v3aNTvSeP7oLeghQ="}]},"_npmOperationalInternal":{"host":"packages-5-east.internal.npmjs.com","tmp":"tmp/ts-events-3.0.0.tgz_1456090286990_0.7644876595586538"},"directories":{}},"3.0.1":{"name":"ts-events","version":"3.0.1","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","main":"./dist/index.js","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"git+https://github.com/rogierschouten/ts-events.git"},"typings":"./dist/index.d.ts","scripts":{"clean":"rimraf ./dist ./temp","build":"tsc","lint":"tslint -c ./tslint.json ./src/**/*.ts","test":"mocha ./dist/test/test-*.js","cover":"istanbul cover ./node_modules/mocha/bin/_mocha -- ./dist/test/*.js","browserify":"node ./browserify.js","karma":"karma start --single-run","browma":"npm run browserify && npm run karma","prepublish":"npm run clean && npm run lint && npm run build && npm run test && npm run browma"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja"},"license":"ISC","dependencies":{},"devDependencies":{"assert":"^1.3.0","browserify":"^13.0.0","chai":"^2.3.0","glob":"^7.0.0","istanbul":"^0.4.2","karma":"^0.13.21","karma-chrome-launcher":"^0.2.2","karma-firefox-launcher":"^0.1.7","karma-mocha":"^0.2.2","karma-mocha-reporter":"^1.2.0","mkdirp":"^0.5.1","mocha":"^2.2.4","rimraf":"^2.5.2","source-map-support":"^0.2.10","tslint":"^3.3.0","typescript":"^1.7.5","util":"^0.10.3"},"gitHead":"bfed822f637c6876c0247cc3b1f69f6aab262f66","_id":"ts-events@3.0.1","_shasum":"6d9cd7d89ac5344c0a7249744b7a92f20ee347f4","_from":".","_npmVersion":"3.6.0","_nodeVersion":"5.6.0","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"6d9cd7d89ac5344c0a7249744b7a92f20ee347f4","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-3.0.1.tgz","integrity":"sha512-9ZemEGStT/ILrrm66CyLCKAkbcDzNb4Di2B0V8wf5pDztz0OZ+0GB3N0zOOmvWcHFUwEqpF/DTm4gTgzf9b/7A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF3vUJSQhdL5IRBiruy9KWSnEMFP2DOFi6uAp04QNd/zAiEAynT+Y+/K/GvJsvXDSph8yFSV35rWZ8fgoJy1HV6S0dc="}]},"_npmOperationalInternal":{"host":"packages-5-east.internal.npmjs.com","tmp":"tmp/ts-events-3.0.1.tgz_1456163614651_0.9765429925173521"},"directories":{}},"3.1.0":{"name":"ts-events","version":"3.1.0","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"git+https://github.com/rogierschouten/ts-events.git"},"main":"./dist/lib/index.js","typings":"./dist/lib/index.d.ts","scripts":{"clean":"rimraf ./dist ./temp ./examples/browser-amd-requirejs/ts-events.js","lint":"tslint -c ./tslint.json ./src/**/*.ts","tsc":"tsc","umd":"node browserify-umd.js","minify":"node minify-umd.js","build":"npm run lint && npm run tsc && npm run umd && npm run minify","test":"mocha ./dist/test/test-*.js","cover":"istanbul cover ./node_modules/mocha/bin/_mocha -- ./dist/test/*.js","bundle_tests":"node browserify-karma.js","exec_karma":"karma start --single-run","karma":"npm run bundle_tests && npm run exec_karma","all":"npm run clean && npm run build && npm run test && npm run karma"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja"},"license":"ISC","dependencies":{},"devDependencies":{"assert":"^1.3.0","browserify":"^13.0.0","browserify-umdify":"^1.0.3","chai":"^2.3.0","glob":"^7.0.0","istanbul":"^0.4.2","karma":"^0.13.21","karma-chrome-launcher":"^0.2.2","karma-firefox-launcher":"^0.1.7","karma-mocha":"^0.2.2","karma-mocha-reporter":"^1.2.0","mkdirp":"^0.5.1","mocha":"^2.2.4","rimraf":"^2.5.2","source-map-support":"^0.2.10","tslint":"^3.3.0","typescript":"^1.7.5","uglify-js":"^2.6.2","util":"^0.10.3"},"gitHead":"bc249bd822289cb0a41f3e26f1da6c493b3bd335","_id":"ts-events@3.1.0","_shasum":"1e9a2629ee5d5763f662203fda26c14e6358e563","_from":".","_npmVersion":"3.6.0","_nodeVersion":"5.6.0","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"1e9a2629ee5d5763f662203fda26c14e6358e563","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-3.1.0.tgz","integrity":"sha512-fLWX2iEALfn+YLjPiB+ol7XVadwSow6lkykSKBY+zs6XIUVEQ615xXEylgkIcoGuZkrg/SwqFT4eYVtZhs3J1Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC4dXC9n9Pc0/+CJRvBHVjjqmILxAMwofqPq9+HRCxQFAiAxcWuJSNHyU1sEKMgxdMC5hJyuMpjfpKUeGlBul/BIgA=="}]},"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/ts-events-3.1.0.tgz_1456607678572_0.3366145370528102"},"directories":{}},"3.1.1":{"name":"ts-events","version":"3.1.1","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"git+https://github.com/rogierschouten/ts-events.git"},"main":"./dist/lib/index.js","typings":"./dist/lib/index.d.ts","scripts":{"clean":"rimraf ./dist ./temp ./examples/browser-amd-requirejs/ts-events.js","lint":"tslint -c ./tslint.json ./src/**/*.ts","tsc":"tsc","umd":"node browserify-umd.js","minify":"node minify-umd.js","build":"npm run lint && npm run tsc && npm run umd && npm run minify","test":"mocha ./dist/test/test-*.js","cover":"istanbul cover ./node_modules/mocha/bin/_mocha -- ./dist/test/*.js","bundle_tests":"node browserify-karma.js","exec_karma":"karma start --single-run","karma":"npm run bundle_tests && npm run exec_karma","all":"npm run clean && npm run build && npm run test && npm run karma"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja"},"license":"ISC","dependencies":{},"devDependencies":{"assert":"^1.3.0","browserify":"^13.0.0","browserify-umdify":"^1.0.3","chai":"^2.3.0","glob":"^7.0.0","istanbul":"^0.4.2","karma":"^0.13.21","karma-chrome-launcher":"^0.2.2","karma-firefox-launcher":"^0.1.7","karma-mocha":"^0.2.2","karma-mocha-reporter":"^1.2.0","mkdirp":"^0.5.1","mocha":"^2.2.4","rimraf":"^2.5.2","source-map-support":"^0.2.10","tslint":"^3.3.0","typescript":"^1.7.5","uglify-js":"^2.6.2","util":"^0.10.3"},"gitHead":"b7309dd4201dec2b7e4428803024d1f214cbf8c9","_id":"ts-events@3.1.1","_shasum":"16a46dc914b16c1e24e39be85e36faf2ac551c26","_from":".","_npmVersion":"3.6.0","_nodeVersion":"5.6.0","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"16a46dc914b16c1e24e39be85e36faf2ac551c26","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-3.1.1.tgz","integrity":"sha512-qhmk+r4GjlO9w3pJLNe8Opu9rMN4P5aHSHB9ZHXTlMBEAAblfdmDOM9n2VOylH4MssVK+Dgzuvy/RXiPRyfG2A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBd4nNMpqC1ZncOyGjK3TYatAbd+n/Brj0fXYI1m8/yfAiEA5wExbqXLNSDoYNw8EL/vLlaJbQGrPHbCIKZujzs4+F4="}]},"_npmOperationalInternal":{"host":"packages-5-east.internal.npmjs.com","tmp":"tmp/ts-events-3.1.1.tgz_1456608248407_0.7152892134618014"},"directories":{}},"3.1.2":{"name":"ts-events","version":"3.1.2","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"git+https://github.com/rogierschouten/ts-events.git"},"main":"./dist/lib/index.js","typings":"./dist/lib/index.d.ts","scripts":{"clean":"rimraf ./dist ./temp ./examples/browser-amd-requirejs/ts-events.js","lint":"tslint -c ./tslint.json ./src/**/*.ts","tsc":"tsc","umd":"node browserify-umd.js","minify":"node minify-umd.js","build":"npm run lint && npm run tsc && npm run umd && npm run minify","test":"mocha ./dist/test/test-*.js","cover":"istanbul cover ./node_modules/mocha/bin/_mocha -- ./dist/test/*.js","bundle_tests":"node browserify-karma.js","exec_karma":"karma start --single-run","karma":"npm run bundle_tests && npm run exec_karma","all":"npm run clean && npm run build && npm run test && npm run karma"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja"},"license":"ISC","dependencies":{},"devDependencies":{"assert":"^1.3.0","browserify":"^13.0.0","browserify-umdify":"^1.0.3","chai":"^2.3.0","glob":"^7.0.0","istanbul":"^0.4.2","karma":"^0.13.21","karma-chrome-launcher":"^0.2.2","karma-firefox-launcher":"^0.1.7","karma-mocha":"^0.2.2","karma-mocha-reporter":"^1.2.0","mkdirp":"^0.5.1","mocha":"^2.2.4","rimraf":"^2.5.2","source-map-support":"^0.2.10","tslint":"^3.3.0","typescript":"^1.7.5","uglify-js":"^2.6.2","util":"^0.10.3"},"gitHead":"ef589013dd9e8a1337f8063407d2720ef8eb581c","_id":"ts-events@3.1.2","_shasum":"cf436530b449c240634d0ff149e898df4f6ef581","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.8.0","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"cf436530b449c240634d0ff149e898df4f6ef581","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-3.1.2.tgz","integrity":"sha512-M7bhx5LktBWRVHJyXrXCbERZp7c3Yr7mEZunKPX1ovm2t2x4mYPIhbqRH/RJvyfZY0PzxrNK9XAvDfYliQ5a2w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDPWSwAHae7ACHoTtzX1qcaQVE7TrZweqTvdrnSLbXUSAiEAkw30oimBnV1zKafcXAtagC1twuWeSUCyZFFhxQX/UIQ="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/ts-events-3.1.2.tgz_1477590942820_0.16636518808081746"},"directories":{}},"3.1.3":{"name":"ts-events","version":"3.1.3","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"git+https://github.com/rogierschouten/ts-events.git"},"main":"./dist/lib/index.js","typings":"./dist/lib/index.d.ts","scripts":{"clean":"rimraf ./dist ./temp ./examples/browser-amd-requirejs/ts-events.js","lint":"tslint -c ./tslint.json ./src/**/*.ts","tsc":"tsc","umd":"node browserify-umd.js","minify":"node minify-umd.js","build":"npm run lint && npm run tsc && npm run umd && npm run minify","test":"mocha ./dist/test/test-*.js","cover":"istanbul cover ./node_modules/mocha/bin/_mocha -- ./dist/test/*.js","bundle_tests":"node browserify-karma.js","exec_karma":"karma start --single-run","karma":"npm run bundle_tests && npm run exec_karma","all":"npm run clean && npm run build && npm run test && npm run karma"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja"},"license":"ISC","dependencies":{},"devDependencies":{"assert":"^1.3.0","browserify":"^13.0.0","browserify-umdify":"^1.0.3","chai":"^2.3.0","glob":"^7.0.0","istanbul":"^0.4.2","karma":"^0.13.21","karma-chrome-launcher":"^0.2.2","karma-firefox-launcher":"^0.1.7","karma-mocha":"^0.2.2","karma-mocha-reporter":"^1.2.0","mkdirp":"^0.5.1","mocha":"^2.2.4","rimraf":"^2.5.2","source-map-support":"^0.2.10","tslint":"^3.3.0","typescript":"^1.7.5","uglify-js":"^2.6.2","util":"^0.10.3"},"gitHead":"451442fd711f657dd15e9cd97307023b74ed0403","_id":"ts-events@3.1.3","_shasum":"72ff45074502104db006ee1fb0580d0c4d0ab324","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.7.0","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"dist":{"shasum":"72ff45074502104db006ee1fb0580d0c4d0ab324","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-3.1.3.tgz","integrity":"sha512-/YVyLvDELHvh2sxbe/ChnMvXqcXVPhB7HpwKVDEhPSPxTZmeAoZ3OzrMhZ7R+/SREavnW/GzZw7oupW7UtGC1Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICiighQ0wQlQNH3ajqJIfLoP6RcqpHi2TnIw43vETTemAiBHHwEAMUNF4Ovr/o+r2Z6iQSGixFFuNQKla8yIrFQicg=="}]},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/ts-events-3.1.3.tgz_1477640903948_0.03610103134997189"},"directories":{}},"3.1.4":{"name":"ts-events","version":"3.1.4","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"git+https://github.com/rogierschouten/ts-events.git"},"main":"./dist/lib/index.js","typings":"./dist/lib/index.d.ts","scripts":{"clean":"rimraf ./dist ./temp ./examples/browser-amd-requirejs/ts-events.js","lint":"tslint -c ./tslint.json ./src/**/*.ts","tsc":"tsc","umd":"node browserify-umd.js","minify":"node minify-umd.js","build":"npm run lint && npm run tsc && npm run umd && npm run minify","test":"mocha ./dist/test/test-*.js","cover":"istanbul cover ./node_modules/mocha/bin/_mocha -- ./dist/test/*.js","bundle_tests":"node browserify-karma.js","exec_karma":"karma start --single-run","karma":"npm run bundle_tests && npm run exec_karma","all":"npm run clean && npm run build && npm run test && npm run karma"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja"},"license":"ISC","dependencies":{"@types/node":"^6.0.51"},"devDependencies":{"@types/assert":"0.0.31","@types/chai":"^3.4.34","@types/mocha":"^2.2.33","@types/source-map-support":"^0.2.28","assert":"^1.4.1","browserify":"^13.1.1","browserify-umdify":"^1.0.3","chai":"^3.5.0","glob":"^7.1.1","istanbul":"^0.4.5","karma":"^1.3.0","karma-chrome-launcher":"^2.0.0","karma-firefox-launcher":"^1.0.0","karma-mocha":"^1.3.0","karma-mocha-reporter":"^2.2.1","mkdirp":"^0.5.1","mocha":"^3.2.0","rimraf":"^2.5.4","source-map-support":"^0.4.6","tslint":"^4.0.2","typescript":"^2.0.10","uglify-js":"^2.7.4","util":"^0.10.3"},"gitHead":"65b21a4c3a83ef1fa480ac71bda94c5f2ae5cf34","_id":"ts-events@3.1.4","_shasum":"bad998758b19b1c2775dde8e3d23d16e2a8f88a0","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"bad998758b19b1c2775dde8e3d23d16e2a8f88a0","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-3.1.4.tgz","integrity":"sha512-Wy0943iVcJb2VHHZOWDrELCGz8u8J/1A/zrQgzm2gEzU9DRpQNjzENhhaY5Qb/FdqPrD9TV1jE0dc8xTosmumw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBtI8hqJ5JleAOB+cllJNqcdeGnDwsD4c+B+QHStEHTBAiBruW4AV0UGDlkbQMc7LnoC8yFpU1otfWVQkzHqh/R0bA=="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/ts-events-3.1.4.tgz_1480172954040_0.7356322528794408"},"directories":{}},"3.1.5":{"name":"ts-events","version":"3.1.5","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"git+https://github.com/rogierschouten/ts-events.git"},"main":"./dist/lib/index.js","typings":"./dist/lib/index.d.ts","scripts":{"clean":"rimraf ./dist ./temp ./examples/browser-amd-requirejs/ts-events.js","lint":"tslint -c ./tslint.json ./src/**/*.ts","tsc":"tsc","umd":"node browserify-umd.js","minify":"node minify-umd.js","build":"npm run lint && npm run tsc && npm run umd && npm run minify","test":"mocha ./dist/test/test-*.js","cover":"istanbul cover ./node_modules/mocha/bin/_mocha -- ./dist/test/*.js","bundle_tests":"node browserify-karma.js","exec_karma":"karma start --single-run","karma":"npm run bundle_tests && npm run exec_karma","all":"npm run clean && npm run build && npm run test && npm run karma"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"license":"ISC","dependencies":{},"devDependencies":{"@types/assert":"0.0.31","@types/chai":"^3.4.34","@types/mocha":"^2.2.33","@types/node":"^7.0.0","@types/source-map-support":"^0.2.28","assert":"^1.4.1","browserify":"^13.1.1","browserify-umdify":"^1.0.3","chai":"^3.5.0","glob":"^7.1.1","istanbul":"^0.4.5","karma":"^1.3.0","karma-chrome-launcher":"^2.0.0","karma-firefox-launcher":"^1.0.0","karma-mocha":"^1.3.0","karma-mocha-reporter":"^2.2.1","mkdirp":"^0.5.1","mocha":"^3.2.0","rimraf":"^2.5.4","source-map-support":"^0.4.6","tslint":"^4.0.2","typescript":"^2.0.10","uglify-js":"^2.7.4","util":"^0.10.3"},"gitHead":"ef66ee636f244b5e012165d71d872c5fc04dd193","_id":"ts-events@3.1.5","_shasum":"7bb45f8751375c9d51bfaa6d11146e8ed6340c3c","_from":".","_npmVersion":"3.10.10","_nodeVersion":"7.3.0","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"7bb45f8751375c9d51bfaa6d11146e8ed6340c3c","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-3.1.5.tgz","integrity":"sha512-ASrEW+2RLPBJkD1ArBeJEWz1dBKICG099aB4e0d96idxlIBTu3TfYYevb5XdZbNYeUaza9l7zXPZUbCD1aspXA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFCq31wGMO9f/crO47zYwRko9aBmqoI6FwLrzBgTNUSAIhAPPH+mJ+/q9O2H+TKgH0ML7bbDEcTLueKETwNJ4As768"}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/ts-events-3.1.5.tgz_1484169301549_0.6907742898911238"},"directories":{}},"3.2.0":{"name":"ts-events","version":"3.2.0","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"git+https://github.com/rogierschouten/ts-events.git"},"main":"./dist/lib/index.js","typings":"./dist/lib/index.d.ts","scripts":{"clean":"rimraf ./dist ./temp ./examples/browser-amd-requirejs/ts-events.js","lint":"tslint -c ./tslint.json ./src/**/*.ts","tsc":"tsc","umd":"node browserify-umd.js","minify":"node minify-umd.js","build":"npm run lint && npm run tsc && npm run umd && npm run minify","test":"mocha ./dist/test/test-*.js","cover":"istanbul cover ./node_modules/mocha/bin/_mocha -- ./dist/test/*.js","bundle_tests":"node browserify-karma.js","exec_karma":"karma start --single-run","karma":"npm run bundle_tests && npm run exec_karma","all":"npm run clean && npm run build && npm run test && npm run karma"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"license":"ISC","dependencies":{},"devDependencies":{"@types/assert":"0.0.31","@types/chai":"^3.4.34","@types/mocha":"^2.2.33","@types/node":"^7.0.0","@types/source-map-support":"^0.2.28","assert":"^1.4.1","browserify":"^14.1.0","browserify-umdify":"^1.0.3","chai":"^3.5.0","glob":"^7.1.1","istanbul":"^0.4.5","karma":"^1.3.0","karma-chrome-launcher":"^2.0.0","karma-firefox-launcher":"^1.0.0","karma-mocha":"^1.3.0","karma-mocha-reporter":"^2.2.1","mkdirp":"^0.5.1","mocha":"^3.2.0","rimraf":"^2.5.4","source-map-support":"^0.4.6","tslint":"^5.0.0","typescript":"^2.0.10","uglify-js":"^2.7.4","util":"^0.10.3"},"gitHead":"d5ebcd48cd5157d01b9b26bf3bff12c78cd08fc6","_id":"ts-events@3.2.0","_shasum":"0ee458c7ae12e5126edf9570bd1a963694ef2fc6","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"0ee458c7ae12e5126edf9570bd1a963694ef2fc6","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-3.2.0.tgz","integrity":"sha512-mRmb5A25JWiHW2LjkQebP2qNC3re/mTJc2Dmb9LSaa+1suCWFQYI0LI4IuPz61UWC4T8+4UypjJXAMHYceB63A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGQD1mFB3rxmtKmkUztle4usksQ7SaRb0C5BmjG2OzxSAiALGeZnuseohneplsT42hCm9vRf08yQ76Dr+pb+N4pkJw=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ts-events-3.2.0.tgz_1490985696393_0.4099755852948874"},"directories":{}},"3.2.1":{"name":"ts-events","version":"3.2.1","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"git+https://github.com/rogierschouten/ts-events.git"},"main":"./dist/lib/index.js","typings":"./dist/lib/index.d.ts","scripts":{"clean":"rimraf ./dist ./temp ./examples/browser-amd-requirejs/ts-events.js","lint":"tslint -c ./tslint.json ./src/**/*.ts","tsc":"tsc","umd":"node browserify-umd.js","minify":"node minify-umd.js","build":"npm run lint && npm run tsc && npm run umd && npm run minify","test":"mocha ./dist/test/test-*.js","cover":"istanbul cover ./node_modules/mocha/bin/_mocha -- ./dist/test/*.js","bundle_tests":"node browserify-karma.js","exec_karma":"karma start --single-run","karma":"npm run bundle_tests && npm run exec_karma","all":"npm run clean && npm run build && npm run test && npm run karma"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"license":"ISC","dependencies":{},"devDependencies":{"@types/assert":"^1.4.1","@types/chai":"^4.1.7","@types/mocha":"^5.2.5","@types/node":"^10.12.21","@types/source-map-support":"^0.4.1","assert":"^1.4.1","browserify":"^16.2.3","browserify-umdify":"^1.0.3","chai":"^4.2.0","glob":"^7.1.3","istanbul":"^0.4.5","karma":"^4.0.0","karma-chrome-launcher":"^2.2.0","karma-firefox-launcher":"^1.1.0","karma-mocha":"^1.3.0","karma-mocha-reporter":"^2.2.5","mkdirp":"^0.5.1","mocha":"^5.2.0","rimraf":"^2.6.3","source-map-support":"^0.5.10","tslint":"^5.12.1","typescript":"^3.3.1","uglify-js":"^3.4.9","util":"^0.11.1"},"gitHead":"4c04a0effec6d1e7b0b7fe205200945febaf3876","_id":"ts-events@3.2.1","_nodeVersion":"11.9.0","_npmVersion":"6.7.0","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"integrity":"sha512-fDyn7K1365LGYYPClHGwGbY92/5LXU4v0C03a0WkC4ZYv0CQrskP6JijFYa+p2RfipRlvuNiG0ATPJ7QqZfY9w==","shasum":"c129d31b21ddb0398a88413533a16f8b9911b1ac","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-3.2.1.tgz","fileCount":22,"unpackedSize":400566,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcVXxRCRA9TVsSAnZWagAAAlsQAIGEDlq6vavOkapkqI7Q\n6MgKB0QeviVL+/57uSBSX6rsIRCFuNvUDiwlk3mCs/af2KRRhc1/7OQNR5id\neirK+2wvIugbiNoQJzRd99ih1IUs3b1X45i0Ewnw7SL//Ik4KCEu2QlwgcGs\n9Do3MkgZGbl+JvY+hSxLRmTt4/YP+yo6iboqfFN88W+o4kSFyRtqHawBpmCB\nVRHmPQt0zP6F5aT0fgIJlEsLfAL8XH2Wxg3uMzBilkcILDOEixli4qdkS8sW\nCpcC5dipjJhxR/Nkb9nAnRRYXoVYmNiwvjaaVcr//6ptZ7HOT2cNjUPvg85l\nFtm5E6OtAaUJNJ/q5DE+We6zB72ORs1jy8QXWukcn+zVxnoC52vHiGynbHy5\n+xGPVTCX7qKxXl9BkKAJ8bHvFZ+pnWU8r/lOkyZODmbYa3ex1I5l4MCUl7vx\nqjXJTOjcTe3ODK4sW+bjytWzs982vmUy7yxQHYUxQvtcJ2YSvj3sFbyQFb53\nBQnNyHJ+LPcDFgMroBKkwVJ6Dhr9efSyJdpiXgoTOFwHNe29/cFFEAqzOhC3\nCv3OsiHPtTD2cFiF8c58QYWp7IF0vxaSbHguOURDuVDx4F1aHRE6cFsh1g4I\nqXmNHyUeL6KqyJoBojejrt4YHJRleNCH8y5PiGgsf+UiXe6YLO1K0iXuzfT2\nYVfP\r\n=QO7K\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICn5PsLWvtM6cxcyq9ftXIRO2fqPZr7Lnw3NMWReneOxAiEAw1UkQtI5+S7nQmFpxAbnYEU5nB0YUg6O73HG21YRxWE="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-events_3.2.1_1549106256991_0.6368087611614337"},"_hasShrinkwrap":false},"3.3.0":{"name":"ts-events","version":"3.3.0","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"git+https://github.com/rogierschouten/ts-events.git"},"main":"./dist/lib/index.js","typings":"./dist/lib/index.d.ts","scripts":{"clean":"rimraf ./dist ./temp ./examples/browser-amd-requirejs/ts-events.js","lint":"tslint -c ./tslint.json ./src/**/*.ts","tsc":"tsc","umd":"node browserify-umd.js","minify":"node minify-umd.js","build":"npm run lint && npm run tsc && npm run umd && npm run minify","test":"mocha ./dist/test/test-*.js","cover":"istanbul cover ./node_modules/mocha/bin/_mocha -- ./dist/test/*.js","bundle_tests":"node browserify-karma.js","exec_karma":"karma start --single-run","karma":"npm run bundle_tests && npm run exec_karma","all":"npm run clean && npm run build && npm run test && npm run karma"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"license":"ISC","dependencies":{},"devDependencies":{"@types/assert":"^1.4.1","@types/chai":"^4.1.7","@types/mocha":"^5.2.5","@types/node":"^10.12.21","@types/source-map-support":"^0.4.1","assert":"^1.4.1","browserify":"^16.2.3","browserify-umdify":"^1.0.4","chai":"^4.2.0","glob":"^7.1.3","istanbul":"^0.4.5","karma":"^4.1.0","karma-chrome-launcher":"^2.2.0","karma-firefox-launcher":"^1.1.0","karma-mocha":"^1.3.0","karma-mocha-reporter":"^2.2.5","mkdirp":"^0.5.1","mocha":"^5.2.0","rimraf":"^2.6.3","source-map-support":"^0.5.10","tslint":"^5.12.1","typescript":"^3.3.1","uglify-js":"^3.4.9","util":"^0.11.1"},"gitHead":"1d43021049b2000fe21534dc231dc43b260d7fd2","_id":"ts-events@3.3.0","_nodeVersion":"11.15.0","_npmVersion":"6.9.0","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"integrity":"sha512-1c2xrmh2HKBcOwNCCsH8dKe6FkvLIFzZTr9rIPmesH0ZuB+4DSazZn9ajpctm7Uailmn0ceC36C7dYHePwZC+A==","shasum":"7ce5af829627faad991c5804f318ae074fcac4e7","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-3.3.0.tgz","fileCount":22,"unpackedSize":315738,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc87dvCRA9TVsSAnZWagAAEAkQAI3FovuOCPk+s5PHdCW0\nSrarxHZJ2syqg7EeAmLs75m2jRhOX5KH6lY1n+fYLJ2acIh39cQtU6M8hBd9\nPk3D44uOmpsqde21+iApH9YHxO18T8LYShgiXs8iViOSalhOAoGx22rBx8VD\njAgePwBIcQDGvZyVPW8ziTYV/LnIKBnS57fLMNh8BNuyoq+32w34h3B+u9pg\npoQ4GlD8v3TfEd5b6xe6dEEOZanzc80qAl3/0LQpy1vlYWX8s5nkkr9SokvX\n8m0pVdJWegbBTESB0Na9tersWTebzwahnFI+w/g23QHEOI3XFhOFNNwzuAR2\ns28Q4HOrvOvDD5UpO6n3DNaavDU0mPvEnV3Bwrj8Ef5fbdHr+fmVTzh9U3ZO\nY7ZfUnFZJJwBIk3O68fRF78YA9ok8yuibmu9QzL4fjBaVGDsvIOYBXO9SDR8\nfHqJQ8qje6Gj5sP3BN18V1zneIeAA+9rAPYJN5zQ5bY5jI4QW1GyuoyPO9sB\nPcdQK7gC+1yrqFLVRvbnkBmAuh8aFTjvEMNaATIXeuR6/09iARon7qwCexYg\nwVwfGVVpS3L01Q9YlcblNEM7PEmTjRa7vY5A/FLRWd8FekTikmG5hdWG0GXC\nWuyt0xiydCoxqnjY5k6M+96DJaVcnKEvDUT/NotgpDy3gJnnDvInS8lKiNsJ\nmaEI\r\n=dMZ2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDAdwBG4wlqTVjNNvAgYeePANOSrbrYxuQ27SzJoOXjxwIhAKu3AH/Ckfqb3HFQT8KrmGDtLP8toMEESPYg/tJlPPUi"}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-events_3.3.0_1559476078875_0.47693282508002643"},"_hasShrinkwrap":false},"3.3.1":{"name":"ts-events","version":"3.3.1","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"git+https://github.com/rogierschouten/ts-events.git"},"main":"./dist/lib/index.js","typings":"./dist/lib/index.d.ts","scripts":{"clean":"rimraf ./dist ./temp ./examples/browser-amd-requirejs/ts-events.js","lint":"tslint -c ./tslint.json ./src/**/*.ts","tsc":"tsc","umd":"node browserify-umd.js","minify":"node minify-umd.js","build":"npm run lint && npm run tsc && npm run umd && npm run minify","test":"mocha ./dist/test/test-*.js","cover":"istanbul cover ./node_modules/mocha/bin/_mocha -- ./dist/test/*.js","bundle_tests":"node browserify-karma.js","exec_karma":"karma start --single-run","karma":"npm run bundle_tests && npm run exec_karma","all":"npm run clean && npm run build && npm run test && npm run karma"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"license":"ISC","dependencies":{},"devDependencies":{"@types/assert":"^1.4.1","@types/chai":"^4.1.7","@types/mocha":"^5.2.5","@types/node":"^10.12.21","@types/source-map-support":"^0.4.1","assert":"^1.4.1","browserify":"^16.2.3","browserify-umdify":"^1.0.4","chai":"^4.2.0","glob":"^7.1.3","istanbul":"^0.4.5","karma":"^4.1.0","karma-chrome-launcher":"^2.2.0","karma-firefox-launcher":"^1.1.0","karma-mocha":"^1.3.0","karma-mocha-reporter":"^2.2.5","mkdirp":"^0.5.1","mocha":"^5.2.0","rimraf":"^2.6.3","source-map-support":"^0.5.10","tslint":"^5.12.1","typescript":"^3.3.1","uglify-js":"^3.4.9","util":"^0.11.1"},"gitHead":"288e2222de112d56a08b824ac5ab33a86761b58b","_id":"ts-events@3.3.1","_nodeVersion":"11.15.0","_npmVersion":"6.9.0","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"integrity":"sha512-dMnQ9uStT0nfKqfePU6HLx2jcRoCgc3qLHk6oh6Wgr3Parqf16bhWNOSuOC9oVlSDnIZ3TvfMnO+b9HOrhR8sA==","shasum":"2fad39198089722904ed4d2fc80a3e70f90c5fa9","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-3.3.1.tgz","fileCount":21,"unpackedSize":315555,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc9qzSCRA9TVsSAnZWagAAUpYP/RNPt9IG8HzsW88xJIh5\n4O+zPzzOTN73HgyoLpKBJzq5+g0i6oxpsSfkAoowgpR91/mQCzyah0+FzpBm\nACcmhRKXZSN5thAqfKq5xTN0qowAo/ebKIWt4SUST9Zdjp3XouaKnES9PzMf\nSCD0di8mKcTpJcg954C8W3Q7lWgfXUnQneNjDKuxRCexC6RSxh1xAtXW802G\nUgBanp4CWS0wybY74pM4VtULPn9IoXwi5iMaFdQ7lXPhU3P82+MN56qMJe8a\n4gAowyfBr9wLhKI3W2H8r72FygRv7VCD+DxIyiCaXh/NCphEub/1fNxfodBY\nmPil5QICNLiw9R38dswlCthsKYOEE3wY+bcW1bze+HdEwdflTWqUqk1WPqye\nFwx3SNuGwGCwPT7nmMF+GpmGtsx1DC6Ob6NL1aryXBkNYWamoch8mbx9Frq0\n4JQPmwg3B0YGpnUOVY6UPPAgULf+JWqeCDDj1HL1fN5kMVoJ4vtbzZBmnLtF\nxN/MxZ94gQeNQs0qr+5BELk9vGm2C9Eopua+W2eEKbY5CgfZoKX0Eyhxm4tU\nUKgr8yVrZ6SJakpRqH1x2TGs/0oCU5CLdxEMzBb5Qm+PGokdBUfZClouy7uf\nugvTyZKSnMsC/CrtQPt7t37RExFo97yCjKFrWx1wRKrBH4/bYsjv8MZ5e1qG\n0sfV\r\n=1XUK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDhVx2Qke+E0xr0/xlhJsiYisQHOwwCdWj+szPvUwEuoAIgczJeYqyFdiQLc3GgJ8nsYivq3qatD7dUxZmace3CpDU="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-events_3.3.1_1559669969596_0.8640831182862001"},"_hasShrinkwrap":false},"3.4.0":{"name":"ts-events","version":"3.4.0","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"git+https://github.com/rogierschouten/ts-events.git"},"main":"./dist/lib/index.js","typings":"./dist/lib/index.d.ts","scripts":{"clean":"rimraf ./dist ./temp ./examples/browser-amd-requirejs/ts-events.js","lint":"tslint -c ./tslint.json ./src/**/*.ts","tsc":"tsc","umd":"node browserify-umd.js","minify":"node minify-umd.js","build":"npm run lint && npm run tsc && npm run umd && npm run minify","test":"mocha ./dist/test/test-*.js","cover":"istanbul cover ./node_modules/mocha/bin/_mocha -- ./dist/test/*.js","bundle_tests":"node browserify-karma.js","exec_karma":"karma start --single-run","karma":"npm run bundle_tests && npm run exec_karma","all":"npm run clean && npm run build && npm run test && npm run karma"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"license":"ISC","dependencies":{},"devDependencies":{"@types/assert":"^1.4.6","@types/chai":"^4.2.8","@types/mocha":"^7.0.1","@types/node":"^13.7.0","@types/source-map-support":"^0.5.1","assert":"^2.0.0","browserify":"^16.5.0","browserify-umdify":"^1.0.4","chai":"^4.2.0","glob":"^7.1.6","istanbul":"^0.4.5","karma":"^4.4.1","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^1.3.0","karma-mocha":"^1.3.0","karma-mocha-reporter":"^2.2.5","mkdirp":"^1.0.3","mocha":"^7.0.1","rimraf":"^3.0.1","source-map-support":"^0.5.16","tslint":"^6.0.0","typescript":"^3.7.5","uglify-js":"^3.7.7","util":"^0.12.1"},"gitHead":"6cc5ad54a9d8980e51847d47d3810a63b222a7db","_id":"ts-events@3.4.0","_nodeVersion":"12.15.0","_npmVersion":"6.13.4","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"dist":{"integrity":"sha512-WRTuuxHzqCVJUs4ZpHp82z2SFv1kp2Bodr8w4WIg0qFSce3sax/BN8kfWEOdWun4IKEglpGPK5FCEyGB3EwR3w==","shasum":"08191aabfeec65a1141fbb2c7344a2737eb39fc5","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-3.4.0.tgz","fileCount":21,"unpackedSize":358460,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJePWSLCRA9TVsSAnZWagAA0rwP+QHqr120CP2q+uCTIgT3\nJwLGoNuqEUqr0D88GC9HoqEE0Lmjfyh8Oy1Gm7Z05aj9IcSlNxtEFoyycsT7\n7oZKj0/dtwBawsBukGJyDT0e4pLaZYqu/ZmqOBupdDFYDHoTRRg1wUD+x199\nLrv1cZQwLxuCWp88Mp+79gZMogwWDUJvq3YQIPQYsgZ5sOJXgovsxk4+MX15\neDpELsnBPpOB0BdmbUj7y4bWLypnxxrm3+elWhUIumMD7hECmSjUMG17gz/w\n7q3Dqj4LUA3ffFX6slBusB+sGGfJUY2INkHXUxgBZZoAmz9EqlM7A9fx058f\nfXdpfV53Ig8FMadBUGMarltNZk6df0MswR2hdmZXDm5IsQHyvuLSCwkczW70\n8Km1zET+q2Pbg/8FfuRM5/Z1HVMlCF55GbaGX2iPkidugrnSxjdil7Gb0CDK\ng7w85TnAJ63oc+4vmXdMd8Jg2OiGB54Q6EF+vR5eC9bbfn/2NwiefotlGy/M\nw6/sslRyl342C6tZ6s4J5zlOPel7ISA28mgYYa1Sj1VcQcpsI3hszRMJTIz6\n+JR5R06Hap0c2J98Rzups0or9HwzfR9A0XgSDH/OlkRhswGMBSEqRn3SHv5k\nrGEtZ/mXKrTensxhVfyinx7K1tUNhgiCGyP4/1YZmS3E3GpafVd/9qGZvsuU\nWDY7\r\n=Ydvl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCMvGDzCoDbTeizAaxKPGagSTsUj4PCjIBxncyxaAzw2AIhALa5849NqtIPXMNSlJY7AS1DPJ1RujVoL6JfYCssue+p"}]},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-events_3.4.0_1581081739523_0.03097141725164776"},"_hasShrinkwrap":false},"3.4.1":{"name":"ts-events","version":"3.4.1","description":"Various EventEmitter event replacements with synchronous, a-synchronous, and queued events. Made in TypeScript so usable with JavaScript and TypeScript.","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"git+https://github.com/rogierschouten/ts-events.git"},"main":"./dist/lib/index.js","typings":"./dist/lib/index.d.ts","scripts":{"clean":"rimraf ./dist ./temp ./examples/browser-amd-requirejs/ts-events.js","lint":"tslint -c ./tslint.json ./src/**/*.ts","tsc":"tsc","umd":"node browserify-umd.js","minify":"node minify-umd.js","build":"npm run lint && npm run tsc && npm run umd && npm run minify","test":"mocha ./dist/test/test-*.js","cover":"nyc --check-coverage mocha \"./dist/test/test-*.js\"","bundle_tests":"node browserify-karma.js","exec_karma":"karma start --single-run","karma":"npm run bundle_tests && npm run exec_karma","all":"npm run clean && npm run build && npm run cover && npm run karma"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"license":"ISC","devDependencies":{"@types/assert":"^1.5.1","@types/chai":"^4.2.12","@types/mocha":"^8.0.0","@types/node":"^14.0.27","@types/source-map-support":"^0.5.2","assert":"^2.0.0","browserify":"^16.5.1","browserify-umdify":"^1.0.4","chai":"^4.2.0","glob":"^7.1.6","karma":"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^1.3.0","karma-mocha":"^2.0.1","karma-mocha-reporter":"^2.2.3","mkdirp":"^1.0.4","mocha":"^8.1.1","nyc":"^15.1.0","rimraf":"^3.0.2","source-map-support":"^0.5.19","tslint":"^6.1.2","typescript":"^3.9.7","uglify-js":"^3.10.0","util":"^0.12.3"},"gitHead":"eb1da3566beea39af75aeb8296b76f9f547bdcac","_id":"ts-events@3.4.1","_nodeVersion":"17.3.0","_npmVersion":"8.4.1","dist":{"integrity":"sha512-px05Slmyh6Bnfi7ma0YIU6cYXnisi+iL/2lhClu+s0ZkTdfPosiGp0H8aoQW7ASSXgcXYXAqujD0CcKYr5YlAw==","shasum":"7234d1f635954fc8c7dfe300648554b25e875d3b","tarball":"https://registry.npmjs.org/ts-events/-/ts-events-3.4.1.tgz","fileCount":27,"unpackedSize":785219,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/ZHaCRA9TVsSAnZWagAAV3MP/3aqy1UjSfbmA/DhLwhE\nNYcJpt8fxBeU4onnJXYgYT/WqNf9VZNORprkNaFTnm845M9lqimUYpnXPt7H\nojEK83Q0cwekqmWffCwNuM9r8hC9PhvyYyRxiSdeICq7kkuob0jLOEWep+m6\nQzq36V24wolLJJzkHiddi1IEnj3agzYzYGGvVG1n2SDNqbu4SH7o6/kBf9ZL\n55QqXyt8zWhlWMTpqLx8jrlU5LBCO4xQG4dup3xiHGhbitA+lciu+UFvDJ+f\nstZmqAhe2Rh6gV0m1wjWWndk1hSWVck+8eNTjPsEdX9KdlzjRnmZP/bEDRUh\nP43iR24X/0dcmJy3aDiQVTaqoKAMhMNWLd0v3VrHouHxADlYdv09p1IRoHYs\nNsI+S5RuJBIHINCitkhOMVBC6UFnj5LW+9PO69OWA53bwmwt1qOdoZKQMa8V\n458Hldca1PgIWHJTlHgRgfEgm94z2fmsMb22zwcIMeMsEZacGatP8dkc0ZtN\nNv/FjIpYqn+yXFWhGkqrAv1Fbjz7Bf895h39b0b0G8DtFu/XY1sdEiQ9NT1S\n7XQwV1b8abKxhIrgstIScID7VTjkZozMF+0WFzNXchkp+LyaVtgDV4CWXWRc\nZGw0reWL7vTrMN/rSQ8p6Ls4MGrE0gULeCE0QGyQdIzUluYBvxiW9YqAKQlW\ng7l5\r\n=CCmr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCHOtQCoP7fhlxRjqbmczl4ZHR+rHgZtwQRPubboFGrogIgGTN592mzGqYQTvfKU35LLAMfPpGjH6ng3I59u4faYlI="}]},"_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"directories":{},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-events_3.4.1_1644007897936_0.3713422138454514"},"_hasShrinkwrap":false}},"readme":"[![NPM version](https://badge.fury.io/js/ts-events.svg)](http://badge.fury.io/js/ts-events)\n![license](http://img.shields.io/npm/l/ts-events.svg)\n\n[![NPM](https://nodei.co/npm/ts-events.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/ts-events/)\n[![NPM](https://nodei.co/npm-dl/ts-events.png?months=9&height=3)](https://nodei.co/npm/ts-events/)\n\n\n# ts-events\n\nA library for sending spontaneous events similar to Qt signal/slot or C# events. It replaces EventEmitter, and instead makes each event into a member which is its own little emitter.\nImplemented in TypeScript (typings file included) and usable with JavaScript as well.\n\nYou may also want to check out https://github.com/garronej/ts-evt which is a library with a similar approach.\n\n## TL;DR\n\nSynchronous events:\n\n```javascript\nimport {SyncEvent} from 'ts-events';\n\nconst evtChange = new SyncEvent<string>();\nevtChange.attach(function(s) {\n    console.log(s);\n});\nevtChange.post('hi!');\n// at this point, 'hi!' was already printed on the console\n```\n\nA-synchronous events:\n\n```javascript\nimport {AsyncEvent} from 'ts-events';\n\nconst evtChange = new AsyncEvent<string>();\nevtChange.attach(function(s) {\n    console.log(s);\n});\nevtChange.post('hi!');\n// 'hi!' will be printed to the console in the next Node.JS cycle\n```\n\nQueued events for fine-grained control:\n\n```javascript\nimport {QueuedEvent} from 'ts-events';\nimport * as tsEvents from 'ts-events';\n\nconst evtChange = new QueuedEvent<string>();\nevtChange.attach(function(s) {\n    console.log(s);\n});\nevtChange.post('hi!');\n// the event is still in a global queue\n\ntsEvents.flush();\n// now, 'hi!' has been written to the console\n```\n\nDifferent ways of attaching:\n\n```javascript\n\n// attach a function\nevtChange.attach(function(s) {\n    console.log(s);\n});\n\n// attach a function bound to an object\nevtChange.attach(this, this.onChange);\n\n// directly attach another event\nevtChange.attach(this.evtChange);\n\n// like EventEmitter.once(), add a handler which is automatically detached after being called\nevtChange.once(function(s) {\n    console.log(s);\n});\n\n```\n\nVersatile events, let the subscriber choose:\n\n```javascript\nimport {AnyEvent} from 'ts-events';\nimport * as tsEvents from 'ts-events';\n\nconst evtChange = new AnyEvent<string>();\nevtChange.attachSync(function(s) {\n    console.log(s + ' this is synchronous.');\n});\nevtChange.attachAsync(function(s) {\n    console.log(s + ' this is a-synchronous.');\n});\nevtChange.attachQueued(function(s) {\n    console.log(s + ' this is queued.');\n});\nevtChange.post('hi!');\ntsEvents.flush(); // only needed for queued\n\nevtChange.onceAsync(function(s) {\n    console.log(s + ' after this event, I will be detached and print no more');\n});\n// similar functions onceSync() and onceQueued() exist.\n\n\n```\n\n## Features\n\n* Each event is a member, and its own little event emitter. Because of this, you have a place for comments to document them. And adding handlers is no longer on string basis.\n* For TypeScript users: made in TypeScript and type-safe. Typings are in ts-events.d.ts\n* Synchronous, a-synchronous and queued events\n* For a-synchronous events, you decide whether to use setImmediate(), setTimeout(, 0) or process.nextTick()\n* Recursion-safe: sending events from event handlers is possible, endless loops are detected\n* Attaching and detaching event handlers has clear semantics\n* Attach handlers bound to a certain object, i.e. no need for .bind(this)\n* Detach one handler, all handlers, or all handlers bound to a certain object\n* Decide on sync/a-sync/queued either in the publisher or in the subscriber\n\n## Installation\n\n### Node.JS\n\nInstall using: `npm install ts-events` or `yarn install ts-events`.\n\nThen require the module in your code:\n\n```javascript\n// JavaScript\nvar tc = require(\"ts-events\");\n\n// TypeScript\nimport * as tsEvents from \"ts-events\";\n```\n\n### Browser\n\nThere are two options:\n* Browserify your Node.JS code\n* Use one of the ready-made UMD-wrapped browser bundles: [ts-events.js](dist/ts-events.js) or [ts-events.min.js](dist/ts-events.min.js). You can find an example of ts-events and RequireJS in the [examples](examples/) directory\n\n## Usage\n\n### Event types\n\nts-events supports three event types: Synchronous, A-synchronous and Queued. Here is a comparison:\n\n|Event Type|Handler Invocation|Condensable?|\n| ------------- | ------------- | ------------- |\n|Synchronous|directly, within the call to post()| no |\n|A-synchronous|in the next Node.JS cycle| yes |\n|Queued|when you flush the queue manually| yes |\n\nIn the table above, 'condensable' means that you can choose to condense multiple sent events into one: e.g. for an a-synchronous event, you can opt that if it is sent more than once in a Node.JS cycle, the event handlers are invoked only once.\n\nThere is a fourth event called AnyEvent, which can act as a Sync/Async/Queued event depending on how you attach listeners.\n\n### Synchronous Events\n\nIf you want EventEmitter-style events, then use SyncEvent. The handlers of SyncEvents are called directly when you emit the event.\n\n\n```javascript\nimport {SyncEvent} from 'ts-events';\n\nconst myEvent = new SyncEvent();\n\nmyEvent.attach(function(s) {\n    console.log(s);\n});\n\nmyEvent.post('hi!');\n// at this point, 'hi!' was already printed on the console\n\n```\n\nTypically you use events as members in a class, instead of extending EventEmitter:\n\n```javascript\nimport {SyncEvent} from 'ts-events';\n\nexport class Counter {\n    /**\n     * This event is called whenever the counter changes\n     * @param n The counter value\n     */\n    public evtChanged: SyncEvent<number> = new SyncEvent<number>();\n\n    /**\n     * The counter value\n     */\n    private _n = 0;\n\n    public inc(): void {\n        this._n++;\n        this.evtChanged.post(this._n);\n    }\n};\n\nconst ctr = new Counter();\n\n// Attach a handler to the event\n// Do this instead of ctr.on('changed', ...)\nctr.evtChanged.attach((n: number): void => {\n    console.log('The counter changed to: ' + n.toString(10));\n});\n\nctr.inc();\n// Here, the event handler is already called and you see a log line on the console\n```\n\nAs you can see, each event is its own little emitter.\n\n#### Recursion protection\n\nSuppose that the handler for an event - directly or indirectly - causes the same event to be sent. For synchronous events, this would mean an infinite loop. SyncEvents have protection built-in: if a handler causes the same event to get posted 10 times recursively, an error is thrown. You can change or disable this behaviour with the static variable SyncEvent.MAX_RECURSION_DEPTH. Set it to undefined or null to disable or to a number greater than 0 to trigger the error sooner or later.\n\n\n### A-synchronous events\n\nSynchronous events (like Node.JS EventEmitter events) have the nasty habit of invoking handlers when they don't expect it.\nTherefore we also have a-synchronous events: when you post an a-synchronous event, the handlers are called in the next Node.JS cycle. To use, simply use AsyncEvent instead of SyncEvent in the example above.\n\nBy default, AsyncEvent uses setImmediate() to defer a call to the next Node.JS cycle. You can change that by calling the static function AsyncEvent.setScheduler().\n\n```javascript\nimport {AsyncEvent} from 'ts-events';\n\n// Replace the default setImmediate() call by a setTimeout(, 0) call\nAsyncEvent.setScheduler(function(callback) {\n    setTimeout(callback, 0);\n})\n```\n\n### Queued events\n\nFor  fine-grained control, use a QueuedEvent instead of an AsyncEvent. All queued events remain in one queue until you flush it.\n\n\n```javascript\nimport {QueuedEvent} from 'ts-events';\nimport * as tsEvents from 'ts-events';\n\nexport class Counter {\n    /**\n     * This event is called whenever the counter changes\n     * @param n The counter value\n     */\n    public evtChanged: QueuedEvent<number> = new QueuedEvent<number>();\n\n    /**\n     * The counter value\n     */\n    private _n = 0;\n\n    public inc(): void {\n        this._n++;\n        this.evtChanged.post(this._n);\n    }\n};\n\nconst ctr = new Counter();\n\n// Attach a handler to the event\n// Do this instead of ctr.on('changed', ...)\nctr.evtChanged.attach((n: number): void => {\n    console.log('The counter changed to: ' + n.toString(10));\n});\n\nctr.inc();\n// Here, the event handler is not called yet\n\n// Flush the event queue\ntsEvents.flush();\n// Here, the handler is called\n\n```\n\n#### Creating your own event queues\n\nYou can put different events in different queues. By default, all events go into one global queue. To assign a specific queue to an event, do this:\n\n```javascript\nimport {QueuedEvent, EventQueue} from 'ts-events';\n\nconst myQueue = new EventQueue();\nconst myEvent = new QueuedEvent({ queue: myQueue });\nmyEvent.post('hi!');\n\n// flush only my own queue\nmyQueue.flush();\n```\n\n#### flushOnce() vs flush()\n\nEvent queues have two flush functions:\n* flushOnce() calls all the events that are in the queue at the time of the call.\n* flush() keeps clearing the queue until it remains empty, i.e. events added by event handlers are also called.\n\nThe flush() function has a safeguard: by default, if it needs more than 10 iterations to clear the queue, it throws an error saying there is an endless recursion going on. You can give it a different limit if you like. Simply call e.g. flush(100) to set the limit to 100.\n\n### evtFilled and evtDrained\n\nEvent queues have two synchronous events themselves that fire when the queue becomes empty (evtDrained) or non-empty (evtFilled). The Filled event only occurs when an event is added to an empty queue OUTSIDE of a flush operation. The Drained event occurs at the end of a flush operation if the queue is flushed empty.\nTo check whether the queue is empty, use the empty() method.\n\n### Condensing events\n\nFor a-synchronous events and for queued events, you can opt to condense multiple post() calls into one. If multiple post() calls happen before the handlers are called, the handlers are invoked only once, with the argument from the last post() call.\n\n```javascript\nimport {AsyncEvent} from 'ts-events';\n\n// create a condensed event\nconst myEvent = new AsyncEvent<string>({ condensed: true });\nmyEvent.attach(function(s) {\n    console.log(s);\n});\nmyEvent.post('hi!');\nmyEvent.post('bye!');\n\n// after a cycle, only 'bye!' is logged to the console\n\n```\n\n### Binding to objects\n\nThere is no need to use .bind(this) when attaching a handler. Simply call myEvent.attach(this, myFunc);\n\n### Attaching and Detaching\n\nThere are clear semantics for the effect of attach() and detach(). These semantics were chosen to prevent surprises, however there is no reason why we should not support different semantics in the future. Please submit an issue if you need a different implementation.\n\n* Attaching a handler to an event guarantees that the handler is called only for events posted after the call to attach(). Events that are already underway will not invoke the handler.\n* Detaching a handler from an event guarantees that it is not called anymore, even if there are events still queued.\n* You can use the once() method to attach a handler that is automatically removed when it is called.\n\nAttaching has the following forms:\n\n```javascript\nconst obj = {};\nconst handler = function() {\n};\nconst myEvent = new AsyncEvent<string>();\nconst myOtherEvent = new AsyncEvent<string>();\n\nmyEvent.attach(handler); // will call handler with this === myEvent\nmyEvent.attach(obj, handler); // will call handler with this === obj\nmyEvent.attach(myOtherEvent); // will post myOtherEvent\n```\n\nDetaching has the following forms:\n\n```javascript\nconst obj = {};\nconst handler = function() {\n};\nconst myEvent = new AsyncEvent<string>();\nconst myOtherEvent = new AsyncEvent<string>();\n\nmyEvent.detach(handler); // detaches all instances of the given handler\nmyEvent.detach(obj); // detaches all handlers bound to the given object\nmyEvent.detach(obj, handler); // detaches only the given handler bound to the given object\nmyEvent.detach(myOtherEvent); // detaches only myOtherEvent\nmyEvent.detach(); // detaches all handlers\n\n\n// returned detacher function\nconst detacher = myEvent.attach(handler);\ndetacher(); // detachers `handler`\n```\n\nNote that when you attach an AsyncEvent to another AsyncEvent, the handlers of both events are called in the very next cycle, i.e. it does not take 2 cycles to call all handlers. This is 'decoupled enough' for most purposes and reduces latency.\n\n\n### Error events\n\nThe old EventEmitter treats 'error' events different from events with other names. If you emit them at a time when there are no listeners attached, then an error is thrown. You can get the same behaviour by using an ErrorSyncEvent, ErrorAsyncEvent or ErrorQueuedEvent.\n\n```javascript\n\nconst myEvent = new ErrorSyncEvent();\n\n// this throws: 'error event posted while no listeners attached. Error: foo'\nmyEvent.post(new Error('foo'));\n\nmyEvent.attach((e: Error): void => {});\n\n// this simply calls the event handler with the given error\nmyEvent.post(new Error('foo'));\n```\n\n### AnyEvent\n\nThe AnyEvent class lets you choose between sync/async/queued in the attach() function. For instance:\n\n```javascript\nimport {AnyEvent, EventType} from 'ts-events';\nimport * as tsEvents from 'ts-events';\n\nconst evtChange = new AnyEvent();\nevtChange.attach(function(s) {\n    console.log(s + ' this is synchronous.');\n});\nevtChange.attach(EventType.Sync, function(s) {\n    console.log(s + ' this is synchronous.');\n});\nevtChange.attach(EventType.Async, function(s) {\n    console.log(s + ' this is a-synchronous.');\n});\nevtChange.attach(EventType.Queued, function(s) {\n    console.log(s + ' this is queued.');\n});\n\nevtChange.once(function(s) {\n    console.log(s + ' this is synchronous and will be called only once.');\n});\nevtChange.once(EventType.Sync, function(s) {\n    console.log(s + ' this is synchronous and will be called only once.');\n});\nevtChange.once(EventType.Async, function(s) {\n    console.log(s + ' this is a-synchronous and will be called only once.');\n});\nevtChange.once(EventType.Queued, function(s) {\n    console.log(s + ' this is queued and will be called only once.');\n});\n\n// convenience functions:\nevtChange.attachSync(function(s) {\n    console.log(s + ' this is conveniently synchronous.');\n});\nevtChange.attachAsync(function(s) {\n    console.log(s + ' this is conveniently a-synchronous and condensed.');\n}, { condensed: true });\nevtChange.attachAsync(function(s) {\n    console.log(s + ' this is conveniently a-synchronous and not condensed.');\n});\nevtChange.attachQueued(function(s) {\n    console.log(s + ' this is conveniently queued.');\n});\n\n// convenience functions:\nevtChange.onceSync(function(s) {\n    console.log(s + ' this is conveniently synchronous and will be called only once.');\n});\nevtChange.onceAsync(function(s) {\n    console.log(s + ' this is conveniently a-synchronous and condensed and will be called only once.');\n}, { condensed: true });\nevtChange.onceAsync(function(s) {\n    console.log(s + ' this is conveniently a-synchronous and not condensed and will be called only once.');\n});\nevtChange.onceQueued(function(s) {\n    console.log(s + ' this is conveniently queued and will be called only once.');\n});\n\nevtChange.post('hi!');\ntsEvents.flush(); // only needed for queued\n\n```\n\n#### No arguments\n\nA TypeScript annoyance: when you create an event with a void argument, TypeScript forces you to pass 'undefined' to post(). To overcome this, we added VoidSyncEvent,  VoidAsyncEvent and VoidQueuedEvent classes.\n\n```javascript\nconst myEvent = new SyncEvent<void>();\n\n// annoying: have to pass undefined to post() to make it compile\nmyEvent.post(undefined)\n\n// Solution:\nconst myEvent = new VoidSyncEvent();\nmyEvent.post(); // no need to pass 'undefined'\n```\n\n### Listening to the listeners\n\nEach type of event has a member `evtListenersChanged: VoidSyncEvent` to notify you when someone attaches or detaches event handlers.\n\n## Changelog\n\nv3.4.1 (2022-02-04)\n* security updates\n\nv3.4.0 (2020-02-07)\n\n* Add evtListenersChanged event to all types of events\n* Update dependencies\n\nv3.3.1 (2019-06-04)\n\n* Remove .git directory from published module\n\nv3.3.0 (2019-06-02)\n\n* Return a detacher function from `attach()` and `once()` methods.\n\nv3.2.1 (2019-02-01)\n\n* Update dependencies to resolve vulnerabilities reported by npm audit.\n\nv3.2.0 (2017-03-31)\n\n* Added once(), onceSync(), onceAsync() and onceQueued() methods to attach a handler that is automatically removed when called.\n\nv3.1.5 (2017-01-11)\n\n* Moved node typings from dependencies to devDependencies\n\nv3.1.4 (2016-11-26)\n\n* Use new @types typings\n* Upgrade NPM packages\n* Fix new TSLint errors\n\nv3.1.3 (2016-10-28)\n\n* Inlined sourcemaps since the .map files were not published to npm\n\nv3.1.2 (2016-10-27)\n\n* Inlined sourcemaps since the .map files were not published to npm\n\nv3.1.1 (2016-02-27)\n\n* Removed dependency on util and assert\n\nv3.1.0 (2016-02-27)\n\n* Add UMD browser bundles\n\nv3.0.1\n\n* Bugfix in published NPM module\n\nv3.0.0\n\n* Update whole module to 2016 standards (thanks to Tomasz Ciborski)\n* Ensure that ts-events works in browsers as well without setting another a-sync scheduler\n* Add generic way of attaching to an AnyEvent\n* Add evtFirstAttached and evtLastDetached events to AnyEvent\n\nv2.4.0\n\n* Revert releases 2.0.1 * 2.3.0 because they don't work\n\nv2.3.0 (2016-02-20)\n\n* Add evtFirstAttached and evtLastDetached events to AnyEvent\n\nv2.2.0 (2016-02-20)\n\n* Add generic way of attaching to an AnyEvent\n\nv2.1.1 (2016-02-20)\n\n* Ensure that ts-events works in browsers as well without setting another a-sync scheduler\n\nv2.1.0 (2016-02-20)\n\n* Update whole module to 2016 standards (thanks to Tomasz Ciborski)\n\nv2.0.0\n\n* Breaking change: removed AnyEvent#attach() and replaced it with attachSync() to force users of AnyEvents to think about how to attach.\n\nv1.1.0 (2015-05-25):\n\n* Add events to the EventQueue to detect when it becomes empty/non-empty to facilitate intelligent flushing.\n* Add a new type of event called AnyEvent where the choice of sync/async/queued is left to the subscriber rather than the publisher.\n\nv1.0.0 (2015-04-30):\n\n* Ready for production use.\n\nv0.0.6 (2015-04-29):\n\n* Performance improvements\n\nv0.0.5 (2015-04-29):\n\n* Fix NPM warning about package.json repository field\n\nv0.0.4 (2015-04-29):\n\n* Fix missing ts-events.d.ts in published module\n\nv0.0.3 (2015-04-28):\n\n* Feature: allow to attach any event to any other event directly\n* Feature: allow to disable recursion protection mechanism for SyncEvents\n* Breaking change: renamed flushEmpty() to flush()\n* Documentation updates\n* Various build system improvements\n\nv0.0.2 (2015-04-27):\n\n* Documentation update\n\nv0.0.1 (2015-04-27):\n\n* Initial version\n\n## License\n\nCopyright � 2015 Rogier Schouten <github@workingcode.ninja>\nISC (see LICENSE file in repository root).\n","maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"time":{"modified":"2022-06-27T22:05:16.336Z","created":"2015-04-27T20:48:17.096Z","0.0.1":"2015-04-27T20:48:17.096Z","0.0.2":"2015-04-27T21:05:42.406Z","0.0.3":"2015-04-28T19:04:59.381Z","0.0.4":"2015-04-29T11:14:36.854Z","0.0.5":"2015-04-29T11:16:59.845Z","0.0.6":"2015-04-29T18:23:54.281Z","1.0.0":"2015-04-30T17:57:22.313Z","1.1.0":"2015-05-25T14:05:51.601Z","2.0.0":"2015-05-27T20:08:13.322Z","2.1.0":"2016-02-20T17:34:04.139Z","2.1.1":"2016-02-20T18:56:32.418Z","2.2.0":"2016-02-20T19:27:58.057Z","2.3.0":"2016-02-20T20:17:06.605Z","2.4.0":"2016-02-21T09:55:11.775Z","3.0.0":"2016-02-21T21:31:30.027Z","3.0.1":"2016-02-22T17:53:38.012Z","3.1.0":"2016-02-27T21:14:41.748Z","3.1.1":"2016-02-27T21:24:09.775Z","3.1.2":"2016-10-27T17:55:45.368Z","3.1.3":"2016-10-28T07:48:26.445Z","3.1.4":"2016-11-26T15:09:14.740Z","3.1.5":"2017-01-11T21:15:02.272Z","3.2.0":"2017-03-31T18:41:38.555Z","3.2.1":"2019-02-02T11:17:37.183Z","3.3.0":"2019-06-02T11:47:59.054Z","3.3.1":"2019-06-04T17:39:29.795Z","3.4.0":"2020-02-07T13:22:19.613Z","3.4.1":"2022-02-04T20:51:38.171Z"},"keywords":["Event","Events","Signal","Signals","EventEmitter","event loop","eventloop","event queue","synchronous","a-synchronous","asynchronous","TypeScript","Callback"],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"license":"ISC","readmeFilename":"README.md","homepage":"https://github.com/rogierschouten/ts-events","bugs":{"url":"https://github.com/rogierschouten/ts-events/issues","email":"github@workingcode.ninja"},"repository":{"type":"git","url":"git+https://github.com/rogierschouten/ts-events.git"},"users":{"faraoman":true,"level9i":true,"kontrax":true}}