{"_id":"semaphore-async-await","_rev":"25-6980e8ed62776318b98ac149f2c2c53c","name":"semaphore-async-await","description":"A promise-based semaphore implementation suitable to be used with async/await.","dist-tags":{"latest":"1.5.1"},"versions":{"0.1.0":{"name":"semaphore-async-await","version":"0.1.0","author":{"name":"Jan Soendermann","email":"jan.soendermann+npm@gmail.com"},"license":"MIT","dependencies":{},"scripts":{"build":"babel src -d lib","prepublish":"npm run build","test":"node_modules/jasmine-es6/bin/jasmine.js"},"engines":{"node":">=4.1"},"main":"lib/Semaphore.js","devDependencies":{"babel-cli":"^6.16.0","babel-eslint":"^7.0.0","babel-plugin-transform-async-to-generator":"^6.16.0","babel-plugin-transform-builtin-extend":"^1.1.0","babel-preset-es2015-node":"^6.1.1","eslint":"^3.8.0","eslint-config-airbnb":"^12.0.0","eslint-plugin-import":"^1.16.0","eslint-plugin-jsx-a11y":"^2.2.3","eslint-plugin-react":"^6.4.1","jasmine-es6":"^0.4.0"},"gitHead":"627b90b6ada3b41ae221b6c65da6bd3373c50e9a","description":"JavaScript Semaphore ====================","_id":"semaphore-async-await@0.1.0","_shasum":"c02d19244afe07aedd7b092ae0c75c53fdeffe4f","_from":".","_npmVersion":"3.8.0","_nodeVersion":"6.6.0","_npmUser":{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"},"dist":{"shasum":"c02d19244afe07aedd7b092ae0c75c53fdeffe4f","tarball":"https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-0.1.0.tgz","integrity":"sha512-xTmejk+j0c7X4kqNiI5Q8Sj3OUzS950bsjZ5lkRiZqU5CQ+UbWNsB9dCj8IW5n0wr1fNLGBEEAclaRtDU7VFlg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGazelIj+iiSq32DgF50JyD556+UbQMRieLULzhvY9tLAiEAn14WuSd4J+aweALQQukPewh5+3siQYLdCn5WqA5IoVw="}]},"maintainers":[{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/semaphore-async-await-0.1.0.tgz_1478252554863_0.09889911254867911"},"directories":{}},"1.0.0":{"name":"semaphore-async-await","version":"1.0.0","author":{"name":"Jan Soendermann","email":"jan.soendermann+npm@gmail.com"},"license":"MIT","dependencies":{},"scripts":{"build":"babel src -d lib","prepublish":"npm run build","test":"node_modules/jasmine-es6/bin/jasmine.js"},"engines":{"node":">=4.1"},"main":"lib/Semaphore.js","devDependencies":{"babel-cli":"^6.16.0","babel-eslint":"^7.0.0","babel-plugin-transform-async-to-generator":"^6.16.0","babel-plugin-transform-builtin-extend":"^1.1.0","babel-preset-es2015-node":"^6.1.1","eslint":"^3.8.0","eslint-config-airbnb":"^12.0.0","eslint-plugin-import":"^1.16.0","eslint-plugin-jsx-a11y":"^2.2.3","eslint-plugin-react":"^6.4.1","jasmine-es6":"^0.4.0"},"gitHead":"96a0dc2d94990b71d21f30dc9df6faa7eeadfc49","description":"A promise-based semaphore implementation suitable to be used with ES7 async/await.","_id":"semaphore-async-await@1.0.0","_shasum":"5642bc7d00edf5f8c1313b4b3830b1cb39607825","_from":".","_npmVersion":"3.8.0","_nodeVersion":"6.6.0","_npmUser":{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"},"dist":{"shasum":"5642bc7d00edf5f8c1313b4b3830b1cb39607825","tarball":"https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.0.0.tgz","integrity":"sha512-jccC/qpjcybgc5W7aCHF56sjqLBqY9jJr5MJLF8D/bn7IwgAguaA/Vu+hWYqJhAeeUCge0Ld81tpO0obfANObw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDuHLYOOlaeuB96XtehHsf1IK06Twcy+f3UOJlcCKlKiwIgXLnpLXX7ZH4h+dZTbzRvyVkzX/yNjUntad23fMcgPnE="}]},"maintainers":[{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/semaphore-async-await-1.0.0.tgz_1478256570635_0.500229828292504"},"directories":{}},"1.0.1":{"name":"semaphore-async-await","version":"1.0.1","author":{"name":"Jan Soendermann","email":"jan.soendermann+npm@gmail.com"},"homepage":"https://github.com/jsoendermann/semaphore-async-await","license":"MIT","dependencies":{},"scripts":{"build":"babel src -d lib","prepublish":"npm run build","test":"node_modules/jasmine-es6/bin/jasmine.js"},"engines":{"node":">=4.1"},"main":"lib/Semaphore.js","devDependencies":{"babel-cli":"^6.16.0","babel-eslint":"^7.0.0","babel-plugin-transform-async-to-generator":"^6.16.0","babel-plugin-transform-builtin-extend":"^1.1.0","babel-preset-es2015-node":"^6.1.1","eslint":"^3.8.0","eslint-config-airbnb":"^12.0.0","eslint-plugin-import":"^1.16.0","eslint-plugin-jsx-a11y":"^2.2.3","eslint-plugin-react":"^6.4.1","jasmine-es6":"^0.4.0"},"gitHead":"00a013ef2a035ea836dac3c1880bd91cc41b9878","description":"A promise-based semaphore implementation suitable to be used with ES7 async/await.","_id":"semaphore-async-await@1.0.1","_shasum":"fccf9fc34581ba90083342fb733c8461e60daecb","_from":".","_npmVersion":"3.8.0","_nodeVersion":"6.6.0","_npmUser":{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"},"dist":{"shasum":"fccf9fc34581ba90083342fb733c8461e60daecb","tarball":"https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.0.1.tgz","integrity":"sha512-QgTg5qXVyo3Jd77jdrv8ftbxnbTNuQJjdLtKfXCBpn+MLfZiAasCeXMgDHff7flE/izQpAVBKa3fg8KpBifW/w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDq+r0YS433BL59ouxDSCx+Fek3pJkcrqjBBJBuMpnfJAiEA1ZgVWjVr5VSscpiDahBWINmAvytzWJmR+cfYcx5tPwk="}]},"maintainers":[{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/semaphore-async-await-1.0.1.tgz_1478260080122_0.02980431285686791"},"directories":{}},"1.0.2":{"name":"semaphore-async-await","version":"1.0.2","author":{"name":"Jan Soendermann","email":"jan.soendermann+npm@gmail.com"},"homepage":"https://github.com/jsoendermann/semaphore-async-await","repository":{"type":"git","url":"git+ssh://git@github.com/jsoendermann/semaphore-async-await.git"},"license":"MIT","dependencies":{},"scripts":{"build":"babel src -d lib","prepublish":"npm run build","test":"node_modules/jasmine-es6/bin/jasmine.js"},"engines":{"node":">=4.1"},"main":"lib/Semaphore.js","devDependencies":{"babel-cli":"^6.16.0","babel-eslint":"^7.0.0","babel-plugin-transform-async-to-generator":"^6.16.0","babel-plugin-transform-builtin-extend":"^1.1.0","babel-preset-es2015-node":"^6.1.1","eslint":"^3.8.0","eslint-config-airbnb":"^12.0.0","eslint-plugin-import":"^1.16.0","eslint-plugin-jsx-a11y":"^2.2.3","eslint-plugin-react":"^6.4.1","jasmine-es6":"^0.4.0"},"gitHead":"5956c32ca448978d684221bff9f3af800f966b4c","description":"A promise-based semaphore implementation suitable to be used with ES7 async/await.","bugs":{"url":"https://github.com/jsoendermann/semaphore-async-await/issues"},"_id":"semaphore-async-await@1.0.2","_shasum":"660c2ff57b0ce346d2329d4cf8dca18a140ab094","_from":".","_npmVersion":"3.8.0","_nodeVersion":"6.6.0","_npmUser":{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"},"dist":{"shasum":"660c2ff57b0ce346d2329d4cf8dca18a140ab094","tarball":"https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.0.2.tgz","integrity":"sha512-B2XRfngPvgs3P10JNricNt2LZkCOrpioNLWdU2ucMdEOqAfstFyr4a4hH76r4dmMd+3hbzkAGUkBR9PDkWHLpQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFsC8fdPs9cEVXaLVKUbRfA+poJvLqCy4p94TehWPpaBAiEA6XviNIu2Ykfl2PoDD9smUb5ker0VCANYt9ShTuNm+zo="}]},"maintainers":[{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/semaphore-async-await-1.0.2.tgz_1478260186433_0.8046593009494245"},"directories":{}},"1.0.3":{"name":"semaphore-async-await","version":"1.0.3","author":{"name":"Jan Soendermann","email":"jan.soendermann+npm@gmail.com"},"homepage":"https://github.com/jsoendermann/semaphore-async-await","repository":{"type":"git","url":"git+ssh://git@github.com/jsoendermann/semaphore-async-await.git"},"license":"MIT","dependencies":{},"scripts":{"build":"babel src -d lib","prepublish":"npm run build","test":"node_modules/jasmine-es6/bin/jasmine.js"},"engines":{"node":">=4.1"},"main":"lib/Semaphore.js","types":"lib/Semaphore.d.ts","devDependencies":{"babel-cli":"^6.16.0","babel-eslint":"^7.0.0","babel-plugin-transform-async-to-generator":"^6.16.0","babel-plugin-transform-builtin-extend":"^1.1.0","babel-preset-es2015":"^6.18.0","babel-preset-es2015-node":"^6.1.1","eslint":"^3.8.0","eslint-config-airbnb":"^12.0.0","eslint-plugin-import":"^1.16.0","eslint-plugin-jsx-a11y":"^2.2.3","eslint-plugin-react":"^6.4.1","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.3","jasmine-es6":"^0.4.0","merge2":"^1.0.2","typescript":"^2.0.10"},"gitHead":"cc19682450b49f27790a284b58b8c4f00d8547f0","description":"A promise-based semaphore implementation suitable to be used with ES7 async/await.","bugs":{"url":"https://github.com/jsoendermann/semaphore-async-await/issues"},"_id":"semaphore-async-await@1.0.3","_shasum":"4ad4ba875d954e87771cb25864594bfb46f8ba6b","_from":".","_npmVersion":"3.8.0","_nodeVersion":"6.6.0","_npmUser":{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"},"dist":{"shasum":"4ad4ba875d954e87771cb25864594bfb46f8ba6b","tarball":"https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.0.3.tgz","integrity":"sha512-QdX4sOgbGe2o2WJUTcKpZAxcuDP0s1OS3E0tLXBgPDA99qbfnaGa/FI01wBNAFAocM5K2ED5o33WMKosEln4mQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCx+PEAenTW7qJJj79KPMuvgxQvPQUo1w/FVZMtA+UzqgIhALfVU9sgzLTRmenq5jGuBmbMvZyQ6a5cFmYpAa/bxIH0"}]},"maintainers":[{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/semaphore-async-await-1.0.3.tgz_1480211326302_0.05024022120051086"},"directories":{}},"1.0.4":{"name":"semaphore-async-await","version":"1.0.4","author":{"name":"Jan Soendermann","email":"jan.soendermann+npm@gmail.com"},"homepage":"https://github.com/jsoendermann/semaphore-async-await","repository":{"type":"git","url":"git+ssh://git@github.com/jsoendermann/semaphore-async-await.git"},"license":"MIT","dependencies":{},"scripts":{"build":"babel src -d lib","prepublish":"npm run build","test":"node_modules/jasmine-es6/bin/jasmine.js"},"engines":{"node":">=4.1"},"main":"./lib/Semaphore.js","typings":"./lib/Semaphore.d.ts","devDependencies":{"babel-cli":"^6.16.0","babel-eslint":"^7.0.0","babel-plugin-transform-async-to-generator":"^6.16.0","babel-plugin-transform-builtin-extend":"^1.1.0","babel-preset-es2015":"^6.18.0","babel-preset-es2015-node":"^6.1.1","eslint":"^3.8.0","eslint-config-airbnb":"^12.0.0","eslint-plugin-import":"^1.16.0","eslint-plugin-jsx-a11y":"^2.2.3","eslint-plugin-react":"^6.4.1","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.3","jasmine-es6":"^0.4.0","merge2":"^1.0.2","typescript":"^2.0.10"},"gitHead":"e32c3f59d280c2ba093d9462af725c002ca7865d","description":"A promise-based semaphore implementation suitable to be used with ES7 async/await.","bugs":{"url":"https://github.com/jsoendermann/semaphore-async-await/issues"},"_id":"semaphore-async-await@1.0.4","_shasum":"ad06551f750ca3b3546667d97c0917a681fd9db6","_from":".","_npmVersion":"3.8.0","_nodeVersion":"6.6.0","_npmUser":{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"},"dist":{"shasum":"ad06551f750ca3b3546667d97c0917a681fd9db6","tarball":"https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.0.4.tgz","integrity":"sha512-Tgwgjmjqz096T1cgtlQnMMT0mhP1SFRz9TpV6STaDrxrYtqOGP8Oj5hg19r3GeGsbLbdFpjOLLbrFyTaZ1gapQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB8ipkmOObT0OefujQULCEoWlYPR6BwEsD+I4vROBcLuAiEAh21Qg0aHEfmzhGt1fd3gVdlDtLny6s/nI1a/67RIUo0="}]},"maintainers":[{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/semaphore-async-await-1.0.4.tgz_1480211972385_0.8167314999736845"},"directories":{}},"1.1.0":{"name":"semaphore-async-await","version":"1.1.0","author":{"name":"Jan Soendermann","email":"jan.soendermann+npm@gmail.com"},"homepage":"https://github.com/jsoendermann/semaphore-async-await","repository":{"type":"git","url":"git+ssh://git@github.com/jsoendermann/semaphore-async-await.git"},"license":"MIT","dependencies":{},"scripts":{"build":"babel src -d lib","prepublish":"npm run build","test":"node_modules/jasmine-es6/bin/jasmine.js"},"engines":{"node":">=4.1"},"main":"./lib/Semaphore.js","typings":"./lib/Semaphore.d.ts","devDependencies":{"babel-cli":"^6.16.0","babel-eslint":"^7.0.0","babel-plugin-transform-async-to-generator":"^6.16.0","babel-plugin-transform-builtin-extend":"^1.1.0","babel-preset-es2015":"^6.18.0","babel-preset-es2015-node":"^6.1.1","eslint":"^3.8.0","eslint-config-airbnb":"^12.0.0","eslint-plugin-import":"^1.16.0","eslint-plugin-jsx-a11y":"^2.2.3","eslint-plugin-react":"^6.4.1","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.3","jasmine-es6":"^0.4.0","merge2":"^1.0.2","typescript":"^2.0.10"},"gitHead":"c24b485ddb3bca69ac2eb4a40d7dc3c5b2bc0957","description":"A promise-based semaphore implementation suitable to be used with ES7 async/await.","bugs":{"url":"https://github.com/jsoendermann/semaphore-async-await/issues"},"_id":"semaphore-async-await@1.1.0","_shasum":"3206c91bff7dcf709cc512b055c367a32d089271","_from":".","_npmVersion":"3.8.0","_nodeVersion":"6.6.0","_npmUser":{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"},"dist":{"shasum":"3206c91bff7dcf709cc512b055c367a32d089271","tarball":"https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.1.0.tgz","integrity":"sha512-a1zdihuGy9jPR4kN9nhjj38oGr5kjqpwSMID+xY+nZ9urG2MvhaoKc/Tp9w0yxa3GQ35s7gNsPiWuIqSg1WxxA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1v6YhmulPDyIvEV1F4FAsZJsmpfCw3fo8WD1RFykQrQIhALq59K5qA/0Jsay0AvZfbs/AkSGxX1FR9SAuDJ99gtaQ"}]},"maintainers":[{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/semaphore-async-await-1.1.0.tgz_1480214769041_0.09844695054925978"},"directories":{}},"1.1.1":{"name":"semaphore-async-await","version":"1.1.1","author":{"name":"Jan Soendermann","email":"jan.soendermann+npm@gmail.com"},"homepage":"https://github.com/jsoendermann/semaphore-async-await","repository":{"type":"git","url":"git+ssh://git@github.com/jsoendermann/semaphore-async-await.git"},"license":"MIT","dependencies":{},"scripts":{"build":"gulp","prepublish":"npm run build","test":"node_modules/jasmine-es6/bin/jasmine.js"},"engines":{"node":">=4.1"},"main":"./lib/Semaphore.js","typings":"./lib/Semaphore.d.ts","devDependencies":{"babel-cli":"^6.16.0","babel-eslint":"^7.0.0","babel-plugin-transform-async-to-generator":"^6.16.0","babel-plugin-transform-builtin-extend":"^1.1.0","babel-preset-es2015":"^6.18.0","babel-preset-es2015-node":"^6.1.1","eslint":"^3.8.0","eslint-config-airbnb":"^12.0.0","eslint-plugin-import":"^1.16.0","eslint-plugin-jsx-a11y":"^2.2.3","eslint-plugin-react":"^6.4.1","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.3","jasmine-es6":"^0.4.0","merge2":"^1.0.2","typescript":"^2.0.10"},"gitHead":"b066e6a57cd0716f4b7f7ecacce716714ea286e3","description":"A promise-based semaphore implementation suitable to be used with ES7 async/await.","bugs":{"url":"https://github.com/jsoendermann/semaphore-async-await/issues"},"_id":"semaphore-async-await@1.1.1","_shasum":"efcdd063f76f21e99aa12512d387200bb4770d5c","_from":".","_npmVersion":"3.8.0","_nodeVersion":"6.6.0","_npmUser":{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"},"dist":{"shasum":"efcdd063f76f21e99aa12512d387200bb4770d5c","tarball":"https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.1.1.tgz","integrity":"sha512-D9mVFewVKeVyPcJoFytzphB9IMcmZl67F5gcxtO0jY0DoWTZoWUa1XwOcIXA7mbauVMdQDpsAZH67GpIBlCYnQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCvdKKhDj6MBqK7/PrAsa4GPamMo0TvQM6hqs0u6o17ygIhAJwNOhzVN8blKUa3JiAJkmRhAa0yhOrVL7eIqo/QfXAL"}]},"maintainers":[{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/semaphore-async-await-1.1.1.tgz_1480245073474_0.8227747802156955"},"directories":{}},"1.1.2":{"name":"semaphore-async-await","version":"1.1.2","author":{"name":"Jan Soendermann","email":"jan.soendermann+npm@gmail.com"},"homepage":"https://github.com/jsoendermann/semaphore-async-await","repository":{"type":"git","url":"git+ssh://git@github.com/jsoendermann/semaphore-async-await.git"},"license":"MIT","dependencies":{},"scripts":{"build":"gulp","prepublish":"npm run build","test":"node_modules/jasmine-es6/bin/jasmine.js"},"engines":{"node":">=4.1"},"main":"./lib/Semaphore.js","typings":"./lib/Semaphore.d.ts","devDependencies":{"babel-cli":"^6.16.0","babel-eslint":"^7.0.0","babel-plugin-transform-async-to-generator":"^6.16.0","babel-plugin-transform-builtin-extend":"^1.1.0","babel-plugin-transform-runtime":"^6.15.0","babel-preset-es2015":"^6.18.0","babel-preset-es2015-node":"^6.1.1","eslint":"^3.8.0","eslint-config-airbnb":"^12.0.0","eslint-plugin-import":"^1.16.0","eslint-plugin-jsx-a11y":"^2.2.3","eslint-plugin-react":"^6.4.1","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.3","jasmine-es6":"^0.4.0","merge2":"^1.0.2","typescript":"^2.0.10"},"gitHead":"1e50547e88360d52301a6c0ea47a17f85b45075a","description":"A promise-based semaphore implementation suitable to be used with ES7 async/await.","bugs":{"url":"https://github.com/jsoendermann/semaphore-async-await/issues"},"_id":"semaphore-async-await@1.1.2","_shasum":"b536f69fef6c7f6f5c600ae5e3a5c93c9a8aa501","_from":".","_npmVersion":"3.8.0","_nodeVersion":"6.6.0","_npmUser":{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"},"dist":{"shasum":"b536f69fef6c7f6f5c600ae5e3a5c93c9a8aa501","tarball":"https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.1.2.tgz","integrity":"sha512-P0HCd4j0yzapm+mTJ05CqP7rS0ebmCoCubonhHPGDj74P/rxmFkfmvv9KTjP7zmztj/rDbNyL/kC3FVV9zhQfA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjESsWY4Lxe1U0pLsca3IVelLqUXzWDBnyNd2B89WqKwIhAJqjBHWt2kUYq4tCkD6gpjXAGBwX6HyJkodfczS9uYXj"}]},"maintainers":[{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/semaphore-async-await-1.1.2.tgz_1480279812375_0.1463684958871454"},"directories":{}},"1.2.0":{"name":"semaphore-async-await","version":"1.2.0","author":{"name":"Jan Soendermann","email":"jan.soendermann+npm@gmail.com"},"homepage":"https://github.com/jsoendermann/semaphore-async-await","repository":{"type":"git","url":"git+ssh://git@github.com/jsoendermann/semaphore-async-await.git"},"license":"MIT","dependencies":{},"scripts":{"build":"gulp","prepublish":"npm run build","test":"node_modules/jasmine-es6/bin/jasmine.js"},"engines":{"node":">=4.1"},"main":"./lib/Semaphore.js","typings":"./lib/Semaphore.d.ts","devDependencies":{"babel-cli":"^6.16.0","babel-eslint":"^7.0.0","babel-plugin-transform-async-to-generator":"^6.16.0","babel-plugin-transform-builtin-extend":"^1.1.0","babel-plugin-transform-runtime":"^6.15.0","babel-preset-es2015":"^6.18.0","babel-preset-es2015-node":"^6.1.1","eslint":"^3.8.0","eslint-config-airbnb":"^12.0.0","eslint-plugin-import":"^1.16.0","eslint-plugin-jsx-a11y":"^2.2.3","eslint-plugin-react":"^6.4.1","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.3","jasmine-es6":"^0.4.0","merge2":"^1.0.2","typescript":"^2.0.10"},"gitHead":"0aaa9500d11bc20a0830e185a84dda822a3e37b0","description":"A promise-based semaphore implementation suitable to be used with ES7 async/await.","bugs":{"url":"https://github.com/jsoendermann/semaphore-async-await/issues"},"_id":"semaphore-async-await@1.2.0","_shasum":"0d0c0a7891c66873b3994abc1d29a4ab39baf0d4","_from":".","_npmVersion":"3.8.0","_nodeVersion":"6.6.0","_npmUser":{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"},"dist":{"shasum":"0d0c0a7891c66873b3994abc1d29a4ab39baf0d4","tarball":"https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.2.0.tgz","integrity":"sha512-YrMYTaon8/Y1KS+g5K3W/MRotCNb2OlF+ZGDL9wUD3JHDfFk2RZ9vFrMexzaJeTSBpQJfulE0bmfpKWcnLzHEQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDOsc46lCI4HnIxL9lyPQdWv0xxax+wW9jK05pGodnm7QIhAO/22OKCnRiG6k3AElSIdTTUZlDr5XWLPShf3GTIePve"}]},"maintainers":[{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/semaphore-async-await-1.2.0.tgz_1481130660329_0.5865129269659519"},"directories":{}},"1.2.1":{"name":"semaphore-async-await","version":"1.2.1","author":{"name":"Jan Soendermann","email":"jan.soendermann+npm@gmail.com"},"homepage":"https://github.com/jsoendermann/semaphore-async-await","repository":{"type":"git","url":"git+ssh://git@github.com/jsoendermann/semaphore-async-await.git"},"license":"MIT","dependencies":{},"scripts":{"build":"gulp","prepublish":"npm run build","test":"node_modules/jasmine-es6/bin/jasmine.js"},"engines":{"node":">=4.1"},"main":"./lib/Semaphore.js","typings":"./lib/Semaphore.d.ts","devDependencies":{"babel-cli":"^6.16.0","babel-eslint":"^7.0.0","babel-plugin-transform-async-to-generator":"^6.16.0","babel-plugin-transform-builtin-extend":"^1.1.0","babel-plugin-transform-runtime":"^6.15.0","babel-preset-es2015":"^6.18.0","babel-preset-es2015-node":"^6.1.1","eslint":"^3.8.0","eslint-config-airbnb":"^12.0.0","eslint-plugin-import":"^1.16.0","eslint-plugin-jsx-a11y":"^2.2.3","eslint-plugin-react":"^6.4.1","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-typescript":"^3.1.3","jasmine-es6":"^0.4.0","merge2":"^1.0.2","typescript":"^2.0.10"},"gitHead":"077c8819a7befaa268eafe25bdc8f20ce339e4ca","description":"A promise-based semaphore implementation suitable to be used with ES7 async/await.","bugs":{"url":"https://github.com/jsoendermann/semaphore-async-await/issues"},"_id":"semaphore-async-await@1.2.1","_shasum":"310e141e0f15d568ec0c29a9baf93828f7b71e83","_from":".","_npmVersion":"3.8.0","_nodeVersion":"6.6.0","_npmUser":{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"},"dist":{"shasum":"310e141e0f15d568ec0c29a9baf93828f7b71e83","tarball":"https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.2.1.tgz","integrity":"sha512-APApjU+wnuWHHSXb721Llv19vQXlmLlvBzWUFGfhJT9wiWkXUoEplSsLGWsI5mTunKpvy4JLr28yg0LqU6FQdA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC3xPnRdx6fWB7fQWfSoZftB6fq4mDCVlAkkwQqqDnU1AiB22Mfh3ywR4wKD3oVeGLuFgJNvB/PQXDRGEMn0jo9JZQ=="}]},"maintainers":[{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/semaphore-async-await-1.2.1.tgz_1481463026465_0.354808796197176"},"directories":{}},"1.2.2":{"name":"semaphore-async-await","version":"1.2.2","author":{"name":"Jan Soendermann","email":"jan.soendermann+npm@gmail.com"},"homepage":"https://github.com/jsoendermann/semaphore-async-await","repository":{"type":"git","url":"git+ssh://git@github.com/jsoendermann/semaphore-async-await.git"},"license":"MIT","scripts":{"build":"tsc","prepublish":"npm run build","test":"node_modules/jasmine-es6/bin/jasmine.js"},"engines":{"node":">=4.1"},"main":"./dist/Semaphore.js","typings":"./dist/Semaphore.d.ts","devDependencies":{"@types/core-js":"^0.9.35","jasmine-es6":"^0.4.0","tslint":"^4.1.0","typescript":"^2.1.4"},"gitHead":"7d4e61575086d15ee3cb98bec6363ea8212db8ff","description":"A promise-based semaphore implementation suitable to be used with ES7 async/await.","bugs":{"url":"https://github.com/jsoendermann/semaphore-async-await/issues"},"_id":"semaphore-async-await@1.2.2","_shasum":"f11d99c6683b346c17a7fa92e7a3247d38a94389","_from":".","_npmVersion":"3.8.0","_nodeVersion":"6.6.0","_npmUser":{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"},"dist":{"shasum":"f11d99c6683b346c17a7fa92e7a3247d38a94389","tarball":"https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.2.2.tgz","integrity":"sha512-TNeR/fWJ/3wXkecUWRLnXMlZJBEbR+GAwSAVIO/CrpIdHr480yLnDMnViQoywGlPPSx4UnzaSBpZT9oef5d6dw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5cKLHR/a50Bv7LsIQP1PZg/SuDRfJD3G/H4eSewGmFAIgLP6opiSlo/NWFqfAvqddyPtlp7vWTiXpi/Zl8fUZ/qg="}]},"maintainers":[{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/semaphore-async-await-1.2.2.tgz_1481888813451_0.8573346917983145"},"directories":{}},"1.3.0":{"name":"semaphore-async-await","version":"1.3.0","author":{"name":"Jan Soendermann","email":"jan.soendermann+npm@gmail.com"},"homepage":"https://github.com/jsoendermann/semaphore-async-await","repository":{"type":"git","url":"git+ssh://git@github.com/jsoendermann/semaphore-async-await.git"},"license":"MIT","scripts":{"build":"tsc","generate-docs":"typedoc --tsconfig ./tsconfig-typedoc.json --theme minimal --mode file --module system --out docs ./Semaphore.ts","prepublish":"npm run build","test":"node_modules/jasmine-es6/bin/jasmine.js"},"engines":{"node":">=4.1"},"main":"./dist/Semaphore.js","typings":"./dist/Semaphore.d.ts","devDependencies":{"@types/core-js":"^0.9.35","jasmine-es6":"^0.4.0","tslint":"^4.1.0","typedoc":"^0.5.1","typescript":"^2.1.4"},"gitHead":"e64f575e257802a30371e842b2025d469504b82f","description":"A promise-based semaphore implementation suitable to be used with async/await.","bugs":{"url":"https://github.com/jsoendermann/semaphore-async-await/issues"},"_id":"semaphore-async-await@1.3.0","_shasum":"6d090c096f67c7e3d26f3494e746f644c09887ed","_from":".","_npmVersion":"3.8.0","_nodeVersion":"6.6.0","_npmUser":{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"},"dist":{"shasum":"6d090c096f67c7e3d26f3494e746f644c09887ed","tarball":"https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.3.0.tgz","integrity":"sha512-AgvWcNHbv73QD5PEHpeX5RFBeutgixPh5fm/qNNJNtCrBwlcDnGzAGS2J3UYng8Dd5Cdw5txu0Ir8m7tqrYX7Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxaGO/7T+ToyEhk1KB1vuVF/NvUmHZb9AcTI6RPka7GAIhALLVijkL7AzWiyJK3V/JsSY4EjNkODbvjH2eLXSEBeOE"}]},"maintainers":[{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/semaphore-async-await-1.3.0.tgz_1481900466499_0.8783696682658046"},"directories":{}},"1.3.1":{"name":"semaphore-async-await","version":"1.3.1","author":{"name":"Jan Soendermann","email":"jan.soendermann+npm@gmail.com"},"homepage":"https://github.com/jsoendermann/semaphore-async-await","repository":{"type":"git","url":"git+ssh://git@github.com/jsoendermann/semaphore-async-await.git"},"license":"MIT","scripts":{"build":"tsc","generate-docs":"typedoc --tsconfig ./tsconfig-typedoc.json --theme minimal --mode file --module system --out docs ./Semaphore.ts","prepublish":"npm run build","test":"node_modules/jasmine-es6/bin/jasmine.js"},"engines":{"node":">=4.1"},"main":"./dist/Semaphore.js","typings":"./dist/Semaphore.d.ts","devDependencies":{"@types/core-js":"^0.9.35","jasmine-es6":"^0.4.0","tslint":"^4.1.0","typedoc":"^0.5.1","typescript":"^2.1.4"},"gitHead":"a065629927718fadeba74acd758f266d4da55d87","description":"A promise-based semaphore implementation suitable to be used with async/await.","bugs":{"url":"https://github.com/jsoendermann/semaphore-async-await/issues"},"_id":"semaphore-async-await@1.3.1","_shasum":"f3b7a0164b0871f5f91cd6d65bd82dfa881422f0","_from":".","_npmVersion":"3.8.0","_nodeVersion":"6.6.0","_npmUser":{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"},"dist":{"shasum":"f3b7a0164b0871f5f91cd6d65bd82dfa881422f0","tarball":"https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.3.1.tgz","integrity":"sha512-fyQgJroHyCO2ZDUJorwiz3LhNJrz61hFdc+XYFkuIEzbq7T2xjDsnkzQ4ALezGMX+HoroN7mot1qB+oo3o9fKg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE2d7jYjTMq8n1K3eOQ7wNtGY0BIXYABKJCmVni6rpxaAiEApWwAmtFoBsYlblN4rBpMsvZkbS3BHJpHtzWFZWziIpY="}]},"maintainers":[{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/semaphore-async-await-1.3.1.tgz_1481901124566_0.8006311217322946"},"directories":{}},"1.3.2":{"name":"semaphore-async-await","version":"1.3.2","author":{"name":"Jan Soendermann","email":"jan.soendermann+npm@gmail.com"},"homepage":"https://github.com/jsoendermann/semaphore-async-await","repository":{"type":"git","url":"git+ssh://git@github.com/jsoendermann/semaphore-async-await.git"},"license":"MIT","scripts":{"build":"tsc","generate-docs":"typedoc --tsconfig ./tsconfig-typedoc.json --theme minimal --mode file --module system --out docs ./Semaphore.ts","prepublish":"npm run build","test":"node_modules/jasmine-es6/bin/jasmine.js"},"engines":{"node":">=4.1"},"main":"./dist/Semaphore.js","typings":"./dist/Semaphore.d.ts","devDependencies":{"jasmine-es6":"^0.4.0","tslint":"^4.1.0","typedoc":"^0.5.1","typescript":"^2.1.4"},"dependencies":{"@types/core-js":"^0.9.35"},"gitHead":"a42eff25b953d3757c3236aea037c507302d1099","description":"A promise-based semaphore implementation suitable to be used with async/await.","bugs":{"url":"https://github.com/jsoendermann/semaphore-async-await/issues"},"_id":"semaphore-async-await@1.3.2","_shasum":"6477efc65690273438184b5a0df412785b33b3a8","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"},"dist":{"shasum":"6477efc65690273438184b5a0df412785b33b3a8","tarball":"https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.3.2.tgz","integrity":"sha512-cbKMJCtAerUfBxJ9L2NIcS0BZ/YkJli+UOLQJodWam6KZKQLxWAuza+RnOIDyEs79VLcI49SyUwwRr8q5m8csw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCnu7LbPVzV4lc2AFyflCM/ok/bYYXEbtm7Da2tp+L6sAIgHN8sWh8qJXSdD7Y7dtotvHyNbyAjbQlLdIV8cjqrPe0="}]},"maintainers":[{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/semaphore-async-await-1.3.2.tgz_1487662124744_0.9275936079211533"},"directories":{}},"1.4.0":{"name":"semaphore-async-await","version":"1.4.0","author":{"name":"Jan Soendermann","email":"jan.soendermann+npm@gmail.com"},"homepage":"https://github.com/jsoendermann/semaphore-async-await","repository":{"type":"git","url":"git+ssh://git@github.com/jsoendermann/semaphore-async-await.git"},"license":"MIT","scripts":{"build":"tsc","generate-docs":"typedoc --tsconfig ./tsconfig-typedoc.json --theme minimal --mode file --module system --out docs ./Semaphore.ts","prepublish":"npm run build","test":"node_modules/jasmine-es6/bin/jasmine.js"},"engines":{"node":">=4.1"},"main":"./dist/Semaphore.js","typings":"./dist/Semaphore.d.ts","devDependencies":{"jasmine-es6":"^0.4.0","tslint":"^4.1.0","typedoc":"^0.5.1","typescript":"^2.1.4"},"dependencies":{"@types/core-js":"^0.9.35"},"gitHead":"836cd3ab6f678c6f4505cea045c0b6225214906d","description":"A promise-based semaphore implementation suitable to be used with async/await.","bugs":{"url":"https://github.com/jsoendermann/semaphore-async-await/issues"},"_id":"semaphore-async-await@1.4.0","_shasum":"ae8448f00cf30866a93dbf21c1a4b58185f5c010","_from":".","_npmVersion":"3.8.0","_nodeVersion":"7.4.0","_npmUser":{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"},"dist":{"shasum":"ae8448f00cf30866a93dbf21c1a4b58185f5c010","tarball":"https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.4.0.tgz","integrity":"sha512-vXXF7mMG23IUO6WhIXXMXRmjek6Hg7I9LMufHfoFypn7R09vxIOVQFnSVqVhNzDim2EBUIzWUDjq+S+uD+o3/A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBmj7gxSK6eBHM+3ioMlnG/7na2UHzrOV9l3uG5S/eEWAiAfD3qB35dDu4Vk64/F1jBr+O3vo7GDmdJc10JcwuD4yg=="}]},"maintainers":[{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/semaphore-async-await-1.4.0.tgz_1487675126833_0.15907359588891268"},"directories":{}},"1.4.1":{"name":"semaphore-async-await","version":"1.4.1","author":{"name":"Jan Soendermann","email":"jan.soendermann+npm@gmail.com"},"homepage":"https://github.com/jsoendermann/semaphore-async-await","repository":{"type":"git","url":"git+ssh://git@github.com/jsoendermann/semaphore-async-await.git"},"license":"MIT","scripts":{"build":"tsc","generate-docs":"typedoc --tsconfig ./tsconfig-typedoc.json --theme minimal --mode file --module system --out docs ./Semaphore.ts","prepublish":"npm run build","test":"node_modules/jasmine-es6/bin/jasmine.js"},"engines":{"node":">=4.1"},"main":"./dist/Semaphore.js","typings":"./dist/Semaphore.d.ts","devDependencies":{"jasmine-es6":"^0.4.0","tslint":"^4.1.0","typedoc":"^0.5.1","typescript":"^2.1.4"},"gitHead":"5f0fbb308d8093db92ea0545087898f0fb2b55ce","description":"A promise-based semaphore implementation suitable to be used with async/await.","bugs":{"url":"https://github.com/jsoendermann/semaphore-async-await/issues"},"_id":"semaphore-async-await@1.4.1","_shasum":"991b64c62ad31d196626aac08e5f253f91b2313b","_from":".","_npmVersion":"3.8.0","_nodeVersion":"7.4.0","_npmUser":{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"},"dist":{"shasum":"991b64c62ad31d196626aac08e5f253f91b2313b","tarball":"https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.4.1.tgz","integrity":"sha512-KYUBWf7/MQ1RjQQutQg/PUwEpGuiVTJ6kNXNxdJKuFV24fg0qMeXCXUhG8l+guZSmnlgDq9gVbUIc0iSeKGcYg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCQ0ZDzk6tdKFGnbihROVjL/b6qF9NU9W7WKTlBPmLTgwIgKJBKNfdyG3gIOofFCA4ytvzTcyvaEFFa4X0kQ/gY7vw="}]},"maintainers":[{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/semaphore-async-await-1.4.1.tgz_1487676075367_0.68544971360825"},"directories":{}},"1.5.0":{"name":"semaphore-async-await","version":"1.5.0","author":{"name":"Jan Soendermann","email":"jan.soendermann+npm@gmail.com"},"homepage":"https://github.com/jsoendermann/semaphore-async-await","repository":{"type":"git","url":"git+ssh://git@github.com/jsoendermann/semaphore-async-await.git"},"license":"MIT","scripts":{"build":"tsc","generate-docs":"typedoc --tsconfig ./tsconfig-typedoc.json --theme minimal --mode file --module system --out docs ./Semaphore.ts","prepublish":"npm run build","test":"node_modules/jasmine-es6/bin/jasmine.js"},"engines":{"node":">=4.1"},"main":"./dist/index.js","typings":"./dist/index.d.ts","devDependencies":{"jasmine-es6":"^0.4.0","tslint":"^4.1.0","typedoc":"^0.5.1","typescript":"^2.1.4"},"gitHead":"6664e7a7b0f0d550d8989853725967b574b5ef2b","description":"A promise-based semaphore implementation suitable to be used with async/await.","bugs":{"url":"https://github.com/jsoendermann/semaphore-async-await/issues"},"_id":"semaphore-async-await@1.5.0","_shasum":"6f134330cd100dcd14f0081c9a332307a612dd01","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.5.0","_npmUser":{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"},"dist":{"shasum":"6f134330cd100dcd14f0081c9a332307a612dd01","tarball":"https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.0.tgz","integrity":"sha512-PdDNoJo9S3cK1P/9Lcs1klTcuQf+enbpHsKHtH9nOI6XKjTyiEPX+dXM/zlYSSmvPQZL/M2/RqjScY9mlT1dUQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD2/NPtPpScj/4vPdxGl6BjP+SCiau7TqCe7aixaXwsNQIgRwuh20agVWiXvlK1Y+skp5F72riH+7h2VkfdaC7XTkA="}]},"maintainers":[{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/semaphore-async-await-1.5.0.tgz_1489754533712_0.6735423088539392"},"directories":{}},"1.5.1":{"name":"semaphore-async-await","version":"1.5.1","author":{"name":"Jan Soendermann","email":"jan.soendermann+npm@gmail.com"},"homepage":"https://github.com/jsoendermann/semaphore-async-await","repository":{"type":"git","url":"git+ssh://git@github.com/jsoendermann/semaphore-async-await.git"},"license":"MIT","scripts":{"build":"tsc","generate-docs":"typedoc --tsconfig ./tsconfig-typedoc.json --theme minimal --mode file --module system --out docs ./Semaphore.ts","prepublish":"npm run build","test":"jest","lint":"tslint 'src/**/*.ts'","prepush":"npm run lint"},"engines":{"node":">=4.1"},"main":"./dist/index.js","typings":"./dist/index.d.ts","devDependencies":{"@types/jest":"^19.2.2","husky":"^0.13.2","jest":"^19.0.2","ts-jest":"^19.0.2","tslint":"^4.5.1","typedoc":"^0.5.7","typescript":"^2.2.1"},"jest":{"transform":{".(ts|tsx)":"<rootDir>/node_modules/ts-jest/preprocessor.js"},"testRegex":"(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"]},"gitHead":"0f3d8d32be6827f529a6441977bb20c9dae6f392","description":"A promise-based semaphore implementation suitable to be used with async/await.","bugs":{"url":"https://github.com/jsoendermann/semaphore-async-await/issues"},"_id":"semaphore-async-await@1.5.1","_shasum":"857bef5e3644601ca4b9570b87e9df5ca12974fa","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.6.0","_npmUser":{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"},"dist":{"shasum":"857bef5e3644601ca4b9570b87e9df5ca12974fa","tarball":"https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz","integrity":"sha512-b/ptP11hETwYWpeilHXXQiV5UJNJl7ZWWooKRE5eBIYWoom6dZ0SluCIdCtKycsMtZgKWE01/qAw6jblw1YVhg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDshy1A/8m1ko1aVFBH12qAgrM4RoaT2eofs34pKhwrMAIgCa7y3r51SlJLQy8fURaAapB8p61E2JETK3xvvwmLI+U="}]},"maintainers":[{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/semaphore-async-await-1.5.1.tgz_1490012510657_0.437393244355917"},"directories":{}}},"readme":"# JavaScript Semaphore\n\nA promise-based semaphore implementation suitable to be used with async/await.\n\n## Spare me the details, all I need is a lock.\nJust ```import { Lock } from 'semaphore-async-await'```, acquire the lock by calling ```await lock.acquire()``` and release it when you're done by calling ```lock.release()```.\n\n## But JavaScript is single-threaded and doesn't need semaphores!\nThis package can be used to synchronize functions that span multiple iterations of the event loop and prevent other code from being executed while your function is waiting.\n\nSuppose you have a function\n\n```javascript\nasync function criticalFunction() {\n  const data = await getDataFromDb();\n  const modifiedData = await asynchronouslyDoStuffWithData(data);\n  return writeDataBackToDb(modifiedData);\n}\n```\n\nCalling this function repeatedly could lead to overlapping read/writes. To avoid this problem, a lock can be added like so:\n\n```javascript\nconst lock = new Semaphore(1);\n\nasync function criticalFunctionSynchronous() {\n  await lock.acquire();\n\n  await criticalFunction();\n\n  lock.release();\n}\n```\n\nAsynchronous functions like ```criticalFunction``` are executed in multiple chunks of code on the event loop, this package makes it possible to enforce an ordering in these chunks.\n\n## Install\n```yarn add semaphore-async-await```\n\n[<h2>API</h2>](http://jsoendermann.github.io/semaphore-async-await/classes/semaphore.html)\n\n## Usage\n```javascript\nimport Semaphore from 'semaphore-async-await';\n\n(async () => {\n\n  // A Semaphore with one permit is a lock\n  const lock = new Semaphore(1);\n\n  // Helper function used to wait for the given number of milliseconds\n  const wait = (ms) => new Promise(r => setTimeout(r, ms));\n\n  let globalVar = 0;\n\n  (async () => {\n    // This waits (without blocking the event loop) until a permit becomes available\n    await lock.wait();\n    const localCopy = globalVar;\n    await wait(500);\n    globalVar = localCopy + 1;\n    // Signal releases the lock and lets other things run\n    lock.signal();\n  })();\n\n  // This returns false because the function above has acquired the lock\n  // and is scheduled to continue executing once the main function yields or\n  // returns\n  console.log(lock.tryAcquire() === false);\n\n  // Similar to the function above but using waitFor instead of wait. We\n  // give it five seconds to wait which is enough time for it to acquire\n  // the lock\n  (async () => {\n    // This waits for at least five seconds, trying to acquire a permit.\n    const didAcquireLock = await lock.waitFor(5000);\n    if (didAcquireLock) {\n      const localCopy = globalVar;\n      await wait(500);\n      globalVar = localCopy + 1;\n      // Signal releases the lock and lets other things run\n      lock.signal();\n    }\n  })();\n\n  // Alternative to using wait()/signal() directly\n  lock.execute(async () => {\n    const localCopy = globalVar;\n    await wait(500);\n    globalVar = localCopy + 1;\n  });\n\n  // Wait for everything to finish\n  await wait(2000);\n\n  console.log(globalVar === 3);\n})();\n```\n\n## License\nMIT\n","maintainers":[{"name":"jsoendermann","email":"jan.soendermann+npm@gmail.com"}],"time":{"modified":"2022-06-26T17:31:21.198Z","created":"2016-11-04T09:42:36.476Z","0.1.0":"2016-11-04T09:42:36.476Z","1.0.0":"2016-11-04T10:49:31.165Z","1.0.1":"2016-11-04T11:48:00.653Z","1.0.2":"2016-11-04T11:49:48.124Z","1.0.3":"2016-11-27T01:48:46.844Z","1.0.4":"2016-11-27T01:59:34.349Z","1.1.0":"2016-11-27T02:46:09.571Z","1.1.1":"2016-11-27T11:11:14.077Z","1.1.2":"2016-11-27T20:50:12.964Z","1.2.0":"2016-12-07T17:11:02.140Z","1.2.1":"2016-12-11T13:30:28.655Z","1.2.2":"2016-12-16T11:46:54.051Z","1.3.0":"2016-12-16T15:01:08.415Z","1.3.1":"2016-12-16T15:12:05.177Z","1.3.2":"2017-02-21T07:28:44.971Z","1.4.0":"2017-02-21T11:05:28.681Z","1.4.1":"2017-02-21T11:21:17.089Z","1.5.0":"2017-03-17T12:42:14.049Z","1.5.1":"2017-03-20T12:21:52.537Z"},"author":{"name":"Jan Soendermann","email":"jan.soendermann+npm@gmail.com"},"license":"MIT","readmeFilename":"README.md","homepage":"https://github.com/jsoendermann/semaphore-async-await","repository":{"type":"git","url":"git+ssh://git@github.com/jsoendermann/semaphore-async-await.git"},"bugs":{"url":"https://github.com/jsoendermann/semaphore-async-await/issues"},"users":{"erikvold":true,"gombosg":true,"shyling":true,"maxblock":true}}