{"_id":"async-lock","_rev":"61-42ddff79634f5119606b2ac8193c1445","name":"async-lock","description":"Lock on asynchronous code","dist-tags":{"latest":"1.4.1"},"versions":{"0.1.0":{"name":"async-lock","description":"[![Build Status](https://travis-ci.org/rain1017/async-lock.svg?branch=master)](https://travis-ci.org/rain1017/async-lock) [![Dependencies Status](https://david-dm.org/rain1017/async-lock.svg)](https://david-dm.org/rain1017/async-lock)","version":"0.1.0","author":{"name":"rain1017"},"private":false,"homepage":"https://github.com/rain1017/async-lock","repository":{"type":"git","url":"https://github.com/rain1017/async-lock.git"},"bugs":{"url":"https://github.com/rain1017/async-lock/issues"},"keywords":[],"engines":{"node":"0.10.x","npm":"1.4.x"},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"dependencies":{},"devDependencies":{"should":"~4.5.0","grunt-env":"~0.4.2","grunt-contrib-watch":"~0.6.1","grunt-contrib-jshint":"~0.10.0","grunt-contrib-clean":"~0.6.0","grunt-mocha-test":"~0.12.6","load-grunt-tasks":"~2.0.0","blanket":"~1.1.6"},"contributors":[{"name":"rain1017","email":"rain1017@gmail.com"}],"gitHead":"1ad8519ce2c9308d9d1a3a171ef9e598db99c1cf","_id":"async-lock@0.1.0","_shasum":"b4435395f90e074046c3be648d65dd8075e0cc28","_from":".","_npmVersion":"2.1.18","_nodeVersion":"0.10.24","_npmUser":{"name":"rain1017","email":"rain1017@gmail.com"},"maintainers":[{"name":"rain1017","email":"rain1017@gmail.com"}],"dist":{"shasum":"b4435395f90e074046c3be648d65dd8075e0cc28","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-0.1.0.tgz","integrity":"sha512-RVqqTVWooKPslMuQemup9wJVYwr/M3iM/8Ysg/Zdx4qDOhF4oSoau0H6x+82KtXcj58DOtnu/Dqq4qYD2GMJ5Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAGudBftJffW77mtEoQmUCU312op+PUCVpMLU8PeIylUAiEA8TYnK6VKCCV+SGF9cRWchNlnNC1mqOpJEl9s+f98c1U="}]},"directories":{}},"0.1.1":{"name":"async-lock","description":"Mutex on asynchronous code","version":"0.1.1","author":{"name":"rain1017"},"private":false,"homepage":"https://github.com/rain1017/async-lock","repository":{"type":"git","url":"https://github.com/rain1017/async-lock.git"},"bugs":{"url":"https://github.com/rain1017/async-lock/issues"},"keywords":[],"engines":{"node":"0.10.x"},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"dependencies":{},"devDependencies":{"should":"~4.5.0","grunt-cli":"~0.1.13","grunt-env":"~0.4.2","grunt-contrib-watch":"~0.6.1","grunt-contrib-jshint":"~0.10.0","grunt-contrib-clean":"~0.6.0","grunt-mocha-test":"~0.12.6","load-grunt-tasks":"~2.0.0","blanket":"~1.1.6"},"contributors":[{"name":"rain1017","email":"rain1017@gmail.com"}],"gitHead":"ad238df2ebba9ff1ce2c378761a09f67da2a7532","_id":"async-lock@0.1.1","_shasum":"3ad9d5d4efa802c7a42ce1ceec3e48576d9b2110","_from":".","_npmVersion":"2.1.18","_nodeVersion":"0.10.24","_npmUser":{"name":"rain1017","email":"rain1017@gmail.com"},"maintainers":[{"name":"rain1017","email":"rain1017@gmail.com"}],"dist":{"shasum":"3ad9d5d4efa802c7a42ce1ceec3e48576d9b2110","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-0.1.1.tgz","integrity":"sha512-34AyUlYn+E5hpf22Dl7wE9A8lLPHGJ165Er6d7griDHOs3o9YGUuZ1VfZm3aOPJ/kRREnSUyjAa7ItvfU+GebA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICMSlGq1f6nYag/F3MjxS5MSc1zTYItkQFwsdIDeQB9sAiEAkcComioi4yZiDsDwsm4Mty54Z+yn9cwkZuTLar9rbKw="}]},"directories":{}},"0.1.2":{"name":"async-lock","description":"Mutex on asynchronous code","version":"0.1.2","author":{"name":"rain1017"},"private":false,"homepage":"https://github.com/rain1017/async-lock","repository":{"type":"git","url":"https://github.com/rain1017/async-lock.git"},"bugs":{"url":"https://github.com/rain1017/async-lock/issues"},"keywords":["async","lock","mutex"],"engines":{"node":"0.10.x"},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"dependencies":{},"devDependencies":{"should":"~4.5.0","grunt-cli":"~0.1.13","grunt-env":"~0.4.2","grunt-contrib-watch":"~0.6.1","grunt-contrib-jshint":"~0.10.0","grunt-contrib-clean":"~0.6.0","grunt-mocha-test":"~0.12.6","load-grunt-tasks":"~2.0.0","blanket":"~1.1.6"},"contributors":[{"name":"rain1017","email":"rain1017@gmail.com"}],"gitHead":"c69cc3138333671ba8ea125fac322f7ec2ca7fd1","_id":"async-lock@0.1.2","_shasum":"2c83580bc1988384889e22cf7befba82934213f5","_from":".","_npmVersion":"2.1.18","_nodeVersion":"0.10.24","_npmUser":{"name":"rain1017","email":"rain1017@gmail.com"},"maintainers":[{"name":"rain1017","email":"rain1017@gmail.com"}],"dist":{"shasum":"2c83580bc1988384889e22cf7befba82934213f5","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-0.1.2.tgz","integrity":"sha512-JEafUQQrUgp8v7/2kSiedhpuEgk5KBh5DVhFS+WTANCnYIJnJUhhTa3A1iEXnjihpG86uaFMP+zcGxGu2vw0tA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIESYoqGkyXmIRoIQje06CYecwXBNndkznmMJfZcmXlitAiBXd6T7qQ9ed0lXVSw+sSclOMYpbMTLW3YNMkntCCXXoA=="}]},"directories":{}},"0.2.0":{"name":"async-lock","description":"Mutex on asynchronous code","version":"0.2.0","author":{"name":"rain1017"},"private":false,"homepage":"https://github.com/rain1017/async-lock","repository":{"type":"git","url":"https://github.com/rain1017/async-lock.git"},"bugs":{"url":"https://github.com/rain1017/async-lock/issues"},"keywords":["async","lock","mutex"],"engines":{"node":"0.10.x"},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"dependencies":{"q":"~1.1.2","lodash":"~3.2.0"},"devDependencies":{"should":"~4.5.0","grunt-cli":"~0.1.13","grunt-env":"~0.4.2","grunt-contrib-watch":"~0.6.1","grunt-contrib-jshint":"~0.10.0","grunt-contrib-clean":"~0.6.0","grunt-mocha-test":"~0.12.6","load-grunt-tasks":"~2.0.0","blanket":"~1.1.6"},"contributors":[{"name":"rain1017","email":"rain1017@gmail.com"}],"gitHead":"c123e0f6a255403b25a1d10cf7b5cd8070c477fd","_id":"async-lock@0.2.0","_shasum":"2c3e84456aec1c006b8bc049e0f75c53d38edad4","_from":".","_npmVersion":"2.1.18","_nodeVersion":"0.10.24","_npmUser":{"name":"rain1017","email":"rain1017@gmail.com"},"maintainers":[{"name":"rain1017","email":"rain1017@gmail.com"}],"dist":{"shasum":"2c3e84456aec1c006b8bc049e0f75c53d38edad4","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-0.2.0.tgz","integrity":"sha512-MvBuTldUw1TMrTYhy7KCRyKv8SnAkt2s5kGSfIMhPH9+OBmjxl8EO/PI86Axulx1rGjiqgpv/GesPa6Ypq0mGA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0FkRP5V97UcSAhmWciqV+PiP4YHZr7XpqIuBtHf1+GwIhAPLTuMPWmsyFnLjhYSG1Jy6+cWeO0csiu0AA8w+5yqyD"}]},"directories":{}},"0.2.1":{"name":"async-lock","description":"Mutex on asynchronous code","version":"0.2.1","author":{"name":"rain1017"},"private":false,"homepage":"https://github.com/rain1017/async-lock","repository":{"type":"git","url":"https://github.com/rain1017/async-lock.git"},"bugs":{"url":"https://github.com/rain1017/async-lock/issues"},"keywords":["async","lock","mutex"],"engines":{"node":"0.10.x"},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"dependencies":{"q":"~1.1.2"},"devDependencies":{"lodash":"~3.3.0","should":"~4.5.0","grunt-cli":"~0.1.13","grunt-env":"~0.4.2","grunt-contrib-watch":"~0.6.1","grunt-contrib-jshint":"~0.10.0","grunt-contrib-clean":"~0.6.0","grunt-mocha-test":"~0.12.6","load-grunt-tasks":"~2.0.0","blanket":"~1.1.6"},"contributors":[{"name":"rain1017","email":"rain1017@gmail.com"}],"gitHead":"ffcc3633fe8eb5d668a987b2547b8ed22b303310","_id":"async-lock@0.2.1","_shasum":"f5f5deac4b2ee7f861388dbc63630a2b179c7247","_from":".","_npmVersion":"2.1.18","_nodeVersion":"0.10.24","_npmUser":{"name":"rain1017","email":"rain1017@gmail.com"},"maintainers":[{"name":"rain1017","email":"rain1017@gmail.com"}],"dist":{"shasum":"f5f5deac4b2ee7f861388dbc63630a2b179c7247","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-0.2.1.tgz","integrity":"sha512-AwyDek07YJhm/ZFFOOymbuf4Gl0z7SiNAnWoj2N8jJa8Qv4CrPkKvlLyl0J6BvlideOCH7icxiD4RrbcMCsdiA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDB+A+2dZVA5ncpeDzDdeRgksfcNenMqoIXFT57nI1DdgIhALINVs6D2VvwfKMNI3g+Pq1Th1Bb5GOaJQXQiy9X/s4d"}]},"directories":{}},"0.3.0":{"name":"async-lock","description":"Lock on asynchronous code","version":"0.3.0","author":{"name":"rain1017"},"private":false,"homepage":"https://github.com/rain1017/async-lock","repository":{"type":"git","url":"https://github.com/rain1017/async-lock.git"},"bugs":{"url":"https://github.com/rain1017/async-lock/issues"},"keywords":["async","lock","mutex"],"engines":{"node":"0.10.x"},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"dependencies":{"q":"~1.2.0"},"devDependencies":{"lodash":"~3.3.0","should":"~5.1.0","grunt-cli":"~0.1.13","grunt-env":"~0.4.2","grunt-contrib-watch":"~0.6.1","grunt-contrib-jshint":"~0.11.0","grunt-contrib-clean":"~0.6.0","grunt-mocha-test":"~0.12.6","load-grunt-tasks":"~3.1.0","blanket":"~1.1.6"},"contributors":[{"name":"rain1017","email":"rain1017@gmail.com"}],"gitHead":"c803414d19855ff7866b00da41febdc96e8a9379","_id":"async-lock@0.3.0","_shasum":"0478f5ef1338f811bf2b31b7413182ad040b0fe3","_from":".","_npmVersion":"2.1.18","_nodeVersion":"0.10.24","_npmUser":{"name":"rain1017","email":"rain1017@gmail.com"},"maintainers":[{"name":"rain1017","email":"rain1017@gmail.com"}],"dist":{"shasum":"0478f5ef1338f811bf2b31b7413182ad040b0fe3","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-0.3.0.tgz","integrity":"sha512-hZcm3HGu3EuxxSSIhnPyT7JMCgyq6tExOb56iXINNUR4YBvBRXJU+geWersoGM/V8ar5liJdUJZ4H1zTu0pO8A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEKvmHH1GiVPrO6cGKl4ww8wT45CHQ3Q8AJQuRS8SBviAiEAgkgxXiAM2+Q81ideBlW0PrNMI3EunnVW9rT+pkF8Tgk="}]},"directories":{}},"0.3.1":{"name":"async-lock","description":"Lock on asynchronous code","version":"0.3.1","author":{"name":"rain1017"},"private":false,"homepage":"https://github.com/rain1017/async-lock","repository":{"type":"git","url":"https://github.com/rain1017/async-lock.git"},"bugs":{"url":"https://github.com/rain1017/async-lock/issues"},"keywords":["async","lock","mutex"],"engines":{"node":"0.10.x"},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"dependencies":{"q":"~1.2.0"},"devDependencies":{"bluebird":"~2.9.24","lodash":"~3.3.0","should":"~5.1.0","grunt-cli":"~0.1.13","grunt-env":"~0.4.2","grunt-contrib-watch":"~0.6.1","grunt-contrib-jshint":"~0.11.0","grunt-contrib-clean":"~0.6.0","grunt-mocha-test":"~0.12.6","load-grunt-tasks":"~3.1.0","blanket":"~1.1.6"},"contributors":[{"name":"rain1017","email":"rain1017@gmail.com"}],"gitHead":"3c13a07c6336ad83eb1fe8907ed582b55199ff00","_id":"async-lock@0.3.1","_shasum":"1a09a91f1968740401f0dc99159ec9bb7273e29a","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"rain1017","email":"rain1017@gmail.com"},"maintainers":[{"name":"rain1017","email":"rain1017@gmail.com"}],"dist":{"shasum":"1a09a91f1968740401f0dc99159ec9bb7273e29a","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-0.3.1.tgz","integrity":"sha512-3R5WtckanOFavs2xg0O7ZlZeD/OVTc/v1D9APClJOBHm7xbQlEEB+fAnMVT71pHFqnxrkhv+ArEAbtVFB4XrMA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICp5mggPNIiWhllgLOrf1XJWnwMywsQEj72Ol0kVgUSeAiEAtR3r3axi90Aj3nj0qA7YKqXhBw4Q08jkZEqxcZ1MHug="}]},"directories":{}},"0.3.2":{"name":"async-lock","description":"Lock on asynchronous code","version":"0.3.2","author":{"name":"rain1017"},"private":false,"homepage":"https://github.com/rain1017/async-lock","repository":{"type":"git","url":"https://github.com/rain1017/async-lock.git"},"bugs":{"url":"https://github.com/rain1017/async-lock/issues"},"keywords":["async","lock","mutex"],"engines":{"node":"0.10.x"},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"dependencies":{"q":"~1.2.0"},"devDependencies":{"bluebird":"~2.9.24","lodash":"~3.3.0","should":"~5.1.0","grunt-cli":"~0.1.13","grunt-env":"~0.4.2","grunt-contrib-watch":"~0.6.1","grunt-contrib-jshint":"~0.11.0","grunt-contrib-clean":"~0.6.0","grunt-mocha-test":"~0.12.6","load-grunt-tasks":"~3.1.0","blanket":"~1.1.6"},"contributors":[{"name":"rain1017","email":"rain1017@gmail.com"}],"gitHead":"774ae3bb942c0b0d9853ea8029b9211cf0fb0142","_id":"async-lock@0.3.2","_shasum":"963e61de3369548128d654728318bc602b3c72f5","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"rain1017","email":"rain1017@gmail.com"},"maintainers":[{"name":"rain1017","email":"rain1017@gmail.com"}],"dist":{"shasum":"963e61de3369548128d654728318bc602b3c72f5","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-0.3.2.tgz","integrity":"sha512-d9KPCMbWK/cKO7CqpxrC23QDj6+Od4PtKQAIcRvOjYgZo9ARGVhf8bcj7HMEWX1ey1tfNwGSbg9xkWEf5la7Eg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDuLOOAg6GV4X05x+0bMK4DyzOGFp2zuw2wu4r1/VLXDAiEAl+2QDjVVIDEXLf6oY3rt+288CMcTwnmpsAJCvlab/Kk="}]},"directories":{}},"0.3.3":{"name":"async-lock","description":"Lock on asynchronous code","version":"0.3.3","author":{"name":"rain1017"},"private":false,"homepage":"https://github.com/rain1017/async-lock","repository":{"type":"git","url":"https://github.com/rain1017/async-lock.git"},"bugs":{"url":"https://github.com/rain1017/async-lock/issues"},"keywords":["async","lock","mutex"],"engines":{"node":"0.10.x"},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"dependencies":{"q":"~1.2.0"},"devDependencies":{"bluebird":"~2.9.24","lodash":"~3.3.0","should":"~5.1.0","grunt-cli":"~0.1.13","grunt-env":"~0.4.2","grunt-contrib-watch":"~0.6.1","grunt-contrib-jshint":"~0.11.0","grunt-contrib-clean":"~0.6.0","grunt-mocha-test":"~0.12.6","load-grunt-tasks":"~3.1.0","blanket":"~1.1.6"},"contributors":[{"name":"rain1017","email":"rain1017@gmail.com"}],"gitHead":"093f908438576ba0878bde70ca5ff45368a66683","_id":"async-lock@0.3.3","_shasum":"e4ac0022346de4db1bac803c65c61cd8bae2dcdb","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"rain1017","email":"rain1017@gmail.com"},"maintainers":[{"name":"rain1017","email":"rain1017@gmail.com"}],"dist":{"shasum":"e4ac0022346de4db1bac803c65c61cd8bae2dcdb","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-0.3.3.tgz","integrity":"sha512-pcMDW77xzFz4qEetfgNnJwFxvsZq4vNPsQ/cruYtDSKflWzm+Tb006DU369G2u4LAXiMgSlm+FAiMFpzRBgNIQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGzaqKpoMkz+AHRuIaUU6EE2QBxrgHUMlyUSapGl7iPjAiBvDgEmAkHMdqEofT8tFMnJaMoVXm7kbeVKz/s0E53sXw=="}]},"directories":{}},"0.3.4":{"name":"async-lock","description":"Lock on asynchronous code","version":"0.3.4","author":{"name":"rain1017"},"private":false,"homepage":"https://github.com/rain1017/async-lock","repository":{"type":"git","url":"https://github.com/rain1017/async-lock.git"},"bugs":{"url":"https://github.com/rain1017/async-lock/issues"},"keywords":["async","lock","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"dependencies":{"q":"~1.2.0"},"devDependencies":{"bluebird":"~2.9.24","lodash":"~3.3.0","should":"~5.1.0","grunt-cli":"~0.1.13","grunt-env":"~0.4.2","grunt-contrib-watch":"~0.6.1","grunt-contrib-jshint":"~0.11.0","grunt-contrib-clean":"~0.6.0","grunt-mocha-test":"~0.12.6","load-grunt-tasks":"~3.1.0","blanket":"~1.1.6"},"contributors":[{"name":"rain1017","email":"rain1017@gmail.com"}],"gitHead":"39aab6060767dbfaf1ddb3d2bf8d982fb66e709f","_id":"async-lock@0.3.4","_shasum":"b043903032399e60d65589f320c8d0cab7850252","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"rain1017","email":"rain1017@gmail.com"},"maintainers":[{"name":"rain1017","email":"rain1017@gmail.com"}],"dist":{"shasum":"b043903032399e60d65589f320c8d0cab7850252","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-0.3.4.tgz","integrity":"sha512-XpDVq9T5D3KTckXhPXEC637pPSoOue0Qm1SJby1w4NPgMpD3tMrD1+IBdi6P2+Pn6wCyT5d0KiI1eZqryO6hrA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAIN0f9G60miD8R2moPm6RzYVq3d93mlwVpjdj9SHrttAiEA/NdZuK53Qeg+2MQmQ3OmM7xIeqULK6FjviznCBEZDmU="}]},"directories":{}},"0.3.5":{"name":"async-lock","description":"Lock on asynchronous code","version":"0.3.5","author":{"name":"rain1017"},"private":false,"homepage":"https://github.com/rain1017/async-lock","repository":{"type":"git","url":"https://github.com/rain1017/async-lock.git"},"bugs":{"url":"https://github.com/rain1017/async-lock/issues"},"keywords":["async","lock","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"dependencies":{"q":"~1.2.0"},"devDependencies":{"bluebird":"~2.9.24","lodash":"~3.3.0","should":"~5.1.0","grunt-cli":"~0.1.13","grunt-env":"~0.4.2","grunt-contrib-watch":"~0.6.1","grunt-contrib-jshint":"~0.11.0","grunt-contrib-clean":"~0.6.0","grunt-mocha-test":"~0.12.6","load-grunt-tasks":"~3.1.0","blanket":"~1.1.6"},"contributors":[{"name":"rain1017","email":"rain1017@gmail.com"}],"gitHead":"d0aec4e15fdbcb7d182ccf895fbf0c50246d7122","_id":"async-lock@0.3.5","_shasum":"3fe42a86d1d9c639719109e263b5e36bdf0e7d76","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"rain1017","email":"rain1017@gmail.com"},"maintainers":[{"name":"rain1017","email":"rain1017@gmail.com"}],"dist":{"shasum":"3fe42a86d1d9c639719109e263b5e36bdf0e7d76","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-0.3.5.tgz","integrity":"sha512-JBW8P7E9NJjv8ruZmvHnGl6CObsiyqJNtSQlxWA6GkQ3WodCSC5Yukw4tKYdvzsgATpkTyijW6pDOLf85huG4w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC83VBZ8p6dPSOT6f6r6x4LXYCbJ+LhhVMeRwwzciRNLgIgf8gYjvqjJJHmqqU9bOd1D2UHQbCpbgO1WeYIqApPra4="}]},"directories":{}},"0.3.6":{"name":"async-lock","description":"Lock on asynchronous code","version":"0.3.6","author":{"name":"rain1017"},"private":false,"homepage":"https://github.com/rain1017/async-lock","repository":{"type":"git","url":"git+https://github.com/rain1017/async-lock.git"},"bugs":{"url":"https://github.com/rain1017/async-lock/issues"},"keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"dependencies":{"q":"~1.4.1"},"devDependencies":{"bluebird":"~2.9.34","lodash":"~3.10.1","should":"~5.1.0","grunt-cli":"~0.1.13","grunt-env":"~0.4.2","grunt-contrib-watch":"~0.6.1","grunt-contrib-jshint":"~0.11.0","grunt-contrib-clean":"~0.6.0","grunt-mocha-test":"~0.12.6","load-grunt-tasks":"~3.1.0","blanket":"~1.1.6"},"contributors":[{"name":"rain1017","email":"rain1017@gmail.com"}],"gitHead":"d68ffa0acbf63288f86105b38aed61d7670090c0","_id":"async-lock@0.3.6","_shasum":"3374586c1bf1400339c113662af1a2de1a1c7012","_from":".","_npmVersion":"2.13.3","_nodeVersion":"3.2.0","_npmUser":{"name":"rain1017","email":"rain1017@gmail.com"},"dist":{"shasum":"3374586c1bf1400339c113662af1a2de1a1c7012","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-0.3.6.tgz","integrity":"sha512-p27GoigKq7o2usoipCIYFsFrpeD0xokpGnJmFVhYtUBe3rgRtm/MuJi5QKTElr7lMh53nGTsaBPzDn0u69+nRQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHWA/upb2y7k6PDloSqbmq7Qc/9bQ2ZNFtMEu6QHQI2QAiEA5hCLTNXbJDU72Ca82mbKCnViosMPcqkP3zTO2ODHpaY="}]},"maintainers":[{"name":"rain1017","email":"rain1017@gmail.com"}],"directories":{}},"0.3.7":{"name":"async-lock","description":"Lock on asynchronous code","version":"0.3.7","author":{"name":"rain1017"},"private":false,"homepage":"https://github.com/rain1017/async-mutex","repository":{"type":"git","url":"git+https://github.com/rain1017/async-mutex.git"},"bugs":{"url":"https://github.com/rain1017/async-mutex/issues"},"keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"dependencies":{"q":"~1.4.1"},"devDependencies":{"bluebird":"~2.9.34","lodash":"~3.10.1","should":"~5.1.0","grunt-cli":"~0.1.13","grunt-env":"~0.4.2","grunt-contrib-watch":"~0.6.1","grunt-contrib-jshint":"~0.11.0","grunt-contrib-clean":"~0.6.0","grunt-mocha-test":"~0.12.6","load-grunt-tasks":"~3.1.0","blanket":"~1.1.6"},"contributors":[{"name":"rain1017","email":"rain1017@gmail.com"}],"gitHead":"fbb15be0162f200d73cef4a2201f50c1391490f7","_id":"async-lock@0.3.7","_shasum":"498cdeb5eafcef73e2e5b7788a748bf82ae1a1c8","_from":".","_npmVersion":"2.14.2","_nodeVersion":"4.0.0","_npmUser":{"name":"rain1017","email":"rain1017@gmail.com"},"dist":{"shasum":"498cdeb5eafcef73e2e5b7788a748bf82ae1a1c8","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-0.3.7.tgz","integrity":"sha512-dX7Bl22Zic/N0De2j4TgTv1RM1SlmiuHZzo9xgjCIFONOzMfzLcobio53xapPm0z9eTi5r52/K5PoRMjX787/g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDPYTM9deIquiYiM8nF2qQe3oz1waNiybvCQBVBnA05BwIhAOTcgnfEeJEvOxpFBZ0CBlvgNQNk9a1YhxubOC9fxE6J"}]},"maintainers":[{"name":"rain1017","email":"rain1017@gmail.com"}],"directories":{}},"0.3.8":{"name":"async-lock","description":"Lock on asynchronous code","version":"0.3.8","author":{"name":"rain1017"},"private":false,"homepage":"https://github.com/rain1017/async-lock","repository":{"type":"git","url":"git+https://github.com/rain1017/async-lock.git"},"bugs":{"url":"https://github.com/rain1017/async-lock/issues"},"keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"dependencies":{"q":"~1.4.1"},"devDependencies":{"bluebird":"~2.9.34","lodash":"~3.10.1","should":"~5.1.0","grunt-cli":"~0.1.13","grunt-env":"~0.4.2","grunt-contrib-watch":"~0.6.1","grunt-contrib-jshint":"~0.11.0","grunt-contrib-clean":"~0.6.0","grunt-mocha-test":"~0.12.6","load-grunt-tasks":"~3.1.0","blanket":"~1.1.6"},"contributors":[{"name":"rain1017","email":"rain1017@gmail.com"}],"gitHead":"fbb15be0162f200d73cef4a2201f50c1391490f7","_id":"async-lock@0.3.8","_shasum":"b3623293475f31e752dec6944f4dd3350dbd34e5","_from":".","_npmVersion":"2.14.2","_nodeVersion":"4.0.0","_npmUser":{"name":"rain1017","email":"rain1017@gmail.com"},"dist":{"shasum":"b3623293475f31e752dec6944f4dd3350dbd34e5","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-0.3.8.tgz","integrity":"sha512-pd2Zu0XfltrXAIBHQ9uDa999H+PQv+J0v9nbUTZInATMrnBTYXrDcQZYCHpmu0gumJrZ+HrD3bFoiokjIpAECA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0wXhVUOf8WhP8Dgmq9bn/l/Iug/lDQDN5h8GvorgLwwIhAPSPKp922Z3ZqpcJRQONJlk373QgnydQf7sKLh4JGCQi"}]},"maintainers":[{"name":"rain1017","email":"rain1017@gmail.com"}],"directories":{}},"0.3.9":{"name":"async-lock","description":"Lock on asynchronous code","version":"0.3.9","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"dependencies":{"q":"~1.4.1"},"devDependencies":{"bluebird":"~3.4.6","grunt":"^1.0.1","grunt-cli":"~1.2.0","grunt-contrib-clean":"~1.0.0","grunt-contrib-jshint":"~1.1.0","grunt-contrib-watch":"~1.0.0","grunt-env":"~0.4.4","grunt-mocha-test":"~0.13.2","load-grunt-tasks":"~3.5.2","lodash":"~4.17.2","mocha":"^3.2.0","should":"~11.1.1"},"contributors":[{"name":"rain1017","email":"rain1017@gmail.com"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","email":"github@workingcode.ninja"}],"gitHead":"0f37ef81dc181a129fd95cec57b570a7396f3af4","_id":"async-lock@0.3.9","_shasum":"fc699cbb057a87e47fc00840e5e5421ab30be7b0","_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":"fc699cbb057a87e47fc00840e5e5421ab30be7b0","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-0.3.9.tgz","integrity":"sha512-V+9L5aKfXVYfi08q1DskPXyjYdZdLwCxSi9gH4Uk9I1w5J/SnCgAT+6Qj4Au+sSP6yWq7aPtNFIFNJGRqWmDiA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBC2XYQKR+dg+MIHwrKC9tDAOkmbjiF7mtZnB/BRHIvHAiBTtYtBGjmrXM72As7YuBcrbrDvH8gO7F1RCDC8xVsqAQ=="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/async-lock-0.3.9.tgz_1480538194892_0.10103566152974963"},"directories":{}},"0.3.10":{"name":"async-lock","description":"Lock on asynchronous code","version":"0.3.10","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"dependencies":{"q":"~1.5.0"},"devDependencies":{"bluebird":"~3.5.0","grunt":"^1.0.1","grunt-cli":"~1.2.0","grunt-contrib-clean":"~1.1.0","grunt-contrib-jshint":"~1.1.0","grunt-contrib-watch":"~1.0.0","grunt-env":"~0.4.4","grunt-mocha-test":"~0.13.2","load-grunt-tasks":"~3.5.2","lodash":"~4.17.2","mocha":"^3.2.0","should":"~11.2.1"},"contributors":[{"name":"rain1017","email":"rain1017@gmail.com"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","email":"github@workingcode.ninja"}],"gitHead":"85f4c9f1d2e07da48af3d5fb546931fa897569f5","_id":"async-lock@0.3.10","_shasum":"5c2c79f040cb03fd3443e1588d31217afa0a85cc","_from":".","_npmVersion":"4.6.1","_nodeVersion":"8.1.2","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"5c2c79f040cb03fd3443e1588d31217afa0a85cc","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-0.3.10.tgz","integrity":"sha512-wX+7/zs2lzp3InSVoMQ9d9/Buymi2IyjCs1NflxiWz6opNxDUbeZhFt4sEaa44+KdqCzc3LEj7Vf0HNz4Zu+WA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEAIj1pebLc8VI13sbB3eOl0StfW1nBkjwcUDcEBtt3hAiEAzat9BOJW9zuV5GtD5rQNVtMIiALiVBhScruehVgvId8="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-lock-0.3.10.tgz_1498588786938_0.8889568343292922"},"directories":{}},"1.0.0":{"name":"async-lock","description":"Lock on asynchronous code","version":"1.0.0","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"devDependencies":{"bluebird":"~3.5.0","grunt":"^1.0.1","grunt-cli":"~1.2.0","grunt-contrib-clean":"~1.1.0","grunt-contrib-jshint":"~1.1.0","grunt-contrib-watch":"~1.0.0","grunt-env":"~0.4.4","grunt-mocha-test":"~0.13.2","load-grunt-tasks":"~3.5.2","lodash":"~4.17.2","mocha":"^3.2.0","q":"~1.5.0","should":"~11.2.1"},"contributors":[{"name":"rain1017","url":"https://github.com/rain1017"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","url":"https://github.com/rogierschouten"},{"name":"erikvold","url":"https://github.com/erikvold"}],"gitHead":"2f5860d29121ae5cb6b87bc9a6d68ae3a102b1f4","_id":"async-lock@1.0.0","_shasum":"b81abbdbd2a6e516773a044b7e6917ae2001f370","_from":".","_npmVersion":"4.6.1","_nodeVersion":"8.1.2","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"shasum":"b81abbdbd2a6e516773a044b7e6917ae2001f370","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-1.0.0.tgz","integrity":"sha512-CdYIdTVEUi5RuqYuhIrSxZAw0/IUW1lqM2z+C2kPv2UfmnbaCyVXLEf5ItIw4bZUUd2NWxt4NLkUlMOcJLD7nQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBS8ahBIsW91GXGTnwPNfAslRUAnza9B/Tlrab8mDJoJAiBDdjrefO7t1GJOme4mV0u0LXOKvf1Jdv1ecmptgUUd5A=="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-lock-1.0.0.tgz_1498772076937_0.4932195539586246"},"directories":{}},"1.1.0":{"name":"async-lock","description":"Lock on asynchronous code","version":"1.1.0","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"devDependencies":{"bluebird":"~3.5.0","grunt":"^1.0.1","grunt-cli":"~1.2.0","grunt-contrib-clean":"~1.1.0","grunt-contrib-jshint":"~1.1.0","grunt-contrib-watch":"~1.0.0","grunt-env":"~0.4.4","grunt-mocha-test":"~0.13.2","load-grunt-tasks":"~3.5.2","lodash":"~4.17.2","mocha":"^3.2.0","q":"~1.5.0","should":"~11.2.1"},"contributors":[{"name":"rain1017","url":"https://github.com/rain1017"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","url":"https://github.com/rogierschouten"},{"name":"erikvold","url":"https://github.com/erikvold"}],"gitHead":"89f500efa8924eb3b084038b39fe720e4663cdbe","_id":"async-lock@1.1.0","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"dist":{"integrity":"sha512-E0VGRnqCHvO75pYAMifJx79jkW+4AfVOF1v2ElBN1XixZEXI1GCP4dqnF+MkBWPSE/V9LBAfW1q6PgAC9UwHew==","shasum":"48177561d47f81b286309598e908a825bb02082a","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-1.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDIzUfys2PL4sEYhKgDMmNO+5Y0hDY7/7eCK/eu8buiQQIgWyd+F/cD3dTwa8ZZZ2AS243M/URRWC01wN7O98xpjGk="}]},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-lock-1.1.0.tgz_1508221951292_0.5971742367837578"},"directories":{}},"1.1.1":{"name":"async-lock","description":"Lock on asynchronous code","version":"1.1.1","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"devDependencies":{"bluebird":"~3.5.0","grunt":"^1.0.1","grunt-cli":"~1.2.0","grunt-contrib-clean":"~1.1.0","grunt-contrib-jshint":"~1.1.0","grunt-contrib-watch":"~1.0.0","grunt-env":"~0.4.4","grunt-mocha-test":"~0.13.2","load-grunt-tasks":"~3.5.2","lodash":"~4.17.2","mocha":"^3.2.0","q":"~1.5.0","should":"~11.2.1"},"contributors":[{"name":"rain1017","url":"https://github.com/rain1017"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","url":"https://github.com/rogierschouten"},{"name":"erikvold","url":"https://github.com/erikvold"},{"name":"Christian Passet","url":"https://github.com/thePunIssuer"}],"gitHead":"957689ff1e46dc2748e6032d5a09bdc086348a45","_id":"async-lock@1.1.1","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"integrity":"sha512-LWIoBjIiS0FHl3lAgX5XO4KvhShib9yDS0sxJMIyc1wk7xoS154FbXILfFEpNcfiVBanxPIGBvdbuXbrzo9JIA==","shasum":"38c0f1be5755ec43ac83edaf14138ff9b6ea42ef","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-1.1.1.tgz","fileCount":7,"unpackedSize":14630,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDje2BzsLGtCKuiHFGA5skBFjYqzNPthl+Sc8lGG+FpkgIhANz1U+neBm/9ePGNHZ1rfNiERpbKzFz/ayZF55UlEe/z"}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-lock_1.1.1_1518564805887_0.29626256492573644"},"_hasShrinkwrap":false},"1.1.2":{"name":"async-lock","description":"Lock on asynchronous code","version":"1.1.2","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"devDependencies":{"bluebird":"~3.5.0","grunt":"^1.0.1","grunt-cli":"~1.2.0","grunt-contrib-clean":"~1.1.0","grunt-contrib-jshint":"~1.1.0","grunt-contrib-watch":"~1.0.0","grunt-env":"~0.4.4","grunt-mocha-test":"~0.13.2","load-grunt-tasks":"~3.5.2","lodash":"~4.17.2","mocha":"^3.2.0","q":"~1.5.0","should":"~11.2.1"},"contributors":[{"name":"rain1017","url":"https://github.com/rain1017"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","url":"https://github.com/rogierschouten"},{"name":"erikvold","url":"https://github.com/erikvold"},{"name":"Christian Passet","url":"https://github.com/thePunIssuer"},{"name":"Tanguy Krotoff","url":"https://github.com/tkrotoff"}],"gitHead":"e67f0a94c3688296ad871d3e6750c360a3a74126","_id":"async-lock@1.1.2","_npmVersion":"5.6.0","_nodeVersion":"9.6.1","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"integrity":"sha512-TIfjV4wRLybwL0qZgJiKwxxYilYEXUQj2BZoaEpiWnBXb5/zuEtOhVYITu5/NrcPmO2CR+ybOGWrV0u8IHJ2uw==","shasum":"d552b3f8fe93018bf917efcf66d3154b9035282a","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-1.1.2.tgz","fileCount":7,"unpackedSize":14486,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0UyTQqd6Y9pomV5rpruVDH4omHGv6ApDICKKJdLd3EAIgJTRmBPe15XLjqMdbeKV9PGQNp2SOjY6Gft2s7AU4xec="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-lock_1.1.2_1519672870538_0.8228437249335285"},"_hasShrinkwrap":false},"1.1.3":{"name":"async-lock","description":"Lock on asynchronous code","version":"1.1.3","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"devDependencies":{"bluebird":"^3.5.1","grunt":"^1.0.3","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-jshint":"^1.1.0","grunt-contrib-watch":"^1.1.0","grunt-env":"^0.4.4","grunt-mocha-test":"^0.13.3","load-grunt-tasks":"^4.0.0","lodash":"^4.17.10","mocha":"^5.2.0","q":"^1.5.1","should":"^13.2.1"},"contributors":[{"name":"rain1017","url":"https://github.com/rain1017"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","url":"https://github.com/rogierschouten"},{"name":"erikvold","url":"https://github.com/erikvold"},{"name":"Christian Passet","url":"https://github.com/thePunIssuer"},{"name":"Tanguy Krotoff","url":"https://github.com/tkrotoff"}],"gitHead":"a29850da12e3202c28f8d7b6df0d69cdcbd9f642","_id":"async-lock@1.1.3","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"integrity":"sha512-nxlfFLGfCJ1r7p9zhR5OuL6jYkDd9P7FqSitfLji+C1NdyhCz4+rWW3kiPiyPASHhN7VlsKEvRWWbnME9lYngw==","shasum":"e47f1cbb6bec765b73e27ed8961d58006457ec08","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-1.1.3.tgz","fileCount":7,"unpackedSize":14600,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbGiACCRA9TVsSAnZWagAA67oP/itLXjHNUz8ekSuTS/cs\nVYf7sI2AutWuETjE9YdF2WG8GwhWVvRIz4usGL6RZULR8PTw3GS88a+UyvM2\nNTS4QXkgZo0vbUzkUY3nZv36s+p07ylVlNPuIFIlxW4zCxFct2uQTOjOZ5O1\nMUAfMSFoQrT7NNPue1Q7wU7EYOeFQBzNGj79PXQRn+RouUPDDAAtuzrV1/dv\nPFE44VCeeFGWq8AQcxH0KrGKeJP5iS5bkE87dw7sirWVyV449sG3BfCrOQHZ\nX35z4JiQGlDpzzfmegjMZDom3y6JuDjE7AueZAR/pNMp82VaIyjESoP8KmyR\nblUhS2UrI/GaCS5qmTRKI6odOHDeDDTOmba6GUg088HM975Ebgx4mxbffCw7\n/zWXInNEelrU3w12hmQ1j6CZCM+Qr9LVL6dtoQE1uMQXNnP/nUhdqEzZCpoa\nJHjnc2sxAH5KPNVnaH1RZPTwkRfbh55iRBVsUThypC3sZ283KJDZ4ooNz/zq\nG6/LvTJDXYtZxzzZ/HYVlanLpKPcE/TSgPFYq/foEqI1/7jfepya/EuNFiFp\nXrZUe6vqNAhnPbyHOflvQ+4Jtqhxgfwtib8lrgSmeZo6mzIaaR7z6iXt5oeu\nxSpR/ET+3PV8Ref1wCXVqCrpWBXiX0eVqQBpMwJ1IEOl6zlMOF6E85BexwoK\nbPgm\r\n=gIzG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBAaM6W7wGjtSAXoYXKwqAoad+SSCk7vUcEy6lrDP3DiAiBOPkJFtHEDgbihcOsqbVHDQy7D7mLB66fvjqdCg57aSA=="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-lock_1.1.3_1528438785661_0.07077446373494523"},"_hasShrinkwrap":false},"1.1.4":{"name":"async-lock","description":"Lock on asynchronous code","version":"1.1.4","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"devDependencies":{"bluebird":"^3.5.1","grunt":"^1.0.3","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-jshint":"^1.1.0","grunt-contrib-watch":"^1.1.0","grunt-env":"^0.4.4","grunt-mocha-test":"^0.13.3","load-grunt-tasks":"^4.0.0","lodash":"^4.17.10","mocha":"^5.2.0","q":"^1.5.1","should":"^13.2.1"},"contributors":[{"name":"rain1017","url":"https://github.com/rain1017"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","url":"https://github.com/rogierschouten"},{"name":"erikvold","url":"https://github.com/erikvold"},{"name":"Christian Passet","url":"https://github.com/thePunIssuer"},{"name":"Tanguy Krotoff","url":"https://github.com/tkrotoff"},{"name":"jtyers","url":"https://github.com/jtyers"}],"gitHead":"d2be1295c1162c88c9bd84a826c8624cac61ee37","_id":"async-lock@1.1.4","_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-9vsVXt+mIvb8rV0G6V1x68Bvp/VksPJoZJxF/n/l9N60chNJ44opPr9WdZZfAV3leUdXt4xNvfyNWyY/j5enBA==","shasum":"863aff9d5c243f75034349be7df9c3ceb7a54254","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-1.1.4.tgz","fileCount":7,"unpackedSize":13898,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcVXhQCRA9TVsSAnZWagAAKHgP/RRfUlNA/iktCD4HiRRM\nacdz+qrbFs/NB9xsxWZtpGhJkrCvJR4UqaSQIuGRcszDF0PIx8/6796yM58B\ndWcK91SE1idt0QlQdW2PI96o6/+1YyCaJt6IMOs6tnYhNkvwXF8VMB+0Mim4\nOx8RWFLtgu6R/8YiKk4HVvVAVw/MskYjnmtWf9+7NY9wz21uZH24PyHuWJYY\n3pT/yJrfV+D8z0DOGMCBfs1KgD76eplKLzeZextzvcjrgvDcFNfdZBoamk5+\nLJUt9el3H7rR+PueZAKWKhwxTEvrzsPJNiS1IAgSFVffFkRSBP5lWVnCHCCy\nXvuImpsMqjAUosGY3bQaWlzGSPp07CZ67chUs2jZPcAV2Fn3tYgpTOwQybrY\n4u4bxWMG4xwAiFCgaBGPvMwiTC3HXmp10EiXtOEOjQUk0dMz8OhJy41N/a2i\nWQK8Xv+ZEwtw+c78FqDLoZnJZLWY8VwowgLxNrevVE6czSczCYl4HUinaf3r\n4WfgaI4j/yG5jWmX04sYb2L3SqobnxBbckmx1c5p1T9zCJHJfuG/eE2GDbWH\ne1t921LCG1ndI6Tvau4DZhtkRrVOsjRXJK4zILkSms8Fa5M6b799/ZGy/R3v\nUgX3m9UucUI2Wjfh2cJE2zErXdTx7pxAuEo/dONcSWaXO6lAtRprd31t1pHj\nZ9UX\r\n=mOpS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1TZdxzTtsbFfnrVPdK9agWnqm4+Bgzt2Gp7X3fwll1QIhAK/We6Bw3y1yLsLmPlXS5Cucv9Rk0wI4KswNNLKSgjYu"}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-lock_1.1.4_1549105231238_0.3745199396350072"},"_hasShrinkwrap":false},"1.2.0":{"name":"async-lock","description":"Lock on asynchronous code","version":"1.2.0","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test","postinstall":""},"devDependencies":{"bluebird":"^3.5.1","grunt":"^1.0.3","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-jshint":"^1.1.0","grunt-contrib-watch":"^1.1.0","grunt-env":"^0.4.4","grunt-mocha-test":"^0.13.3","load-grunt-tasks":"^4.0.0","lodash":"^4.17.10","mocha":"^5.2.0","q":"^1.5.1","should":"^13.2.1"},"contributors":[{"name":"rain1017","url":"https://github.com/rain1017"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","url":"https://github.com/rogierschouten"},{"name":"erikvold","url":"https://github.com/erikvold"},{"name":"Christian Passet","url":"https://github.com/thePunIssuer"},{"name":"Tanguy Krotoff","url":"https://github.com/tkrotoff"},{"name":"jtyers","url":"https://github.com/jtyers"},{"name":"Paul Roub","url":"https://github.com/paulroub"}],"gitHead":"6fb63444b25c42c5455de96118ae03885a8f237b","_id":"async-lock@1.2.0","_npmVersion":"6.1.0","_nodeVersion":"10.5.0","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"dist":{"integrity":"sha512-81HzTQm4+qMj6PwNlnR+y9g7pDdGGzd/YBUrQnHk+BhR28ja2qv497NkQQc1KcKEqh/RShm07di2b0cIWVFrNQ==","shasum":"cd6a53cb1ec3f86af25eafdeb6bc7c6e317258b8","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-1.2.0.tgz","fileCount":7,"unpackedSize":13841,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJciQFuCRA9TVsSAnZWagAAOoQQAI8AGMTiyVYgbHO4LWUa\nJjmwSrwiMRd/DY2w6Y2vsPLIkVLWj1lJRj9IOuqhmkDNt6Ijv9lC+4ysyhLZ\n0aZgM+gDzAnQoS4zKcMT6OK/Sz2npmMMdyV/BesEuW1uelpmurPqVWp5XaKS\nmbG3hxRjiIQyuWx/k2bLJYd5Zgnpz5IhwW322R2e8bzx6CzCtOQLPHlz/b99\nS4ACUlYSrInKWyc50EoloCMy5B2UwsNK3dsK2myb8RXLa4CQQx1l1gpdy4+q\nbjQkhmwsT9TMw24oXR7pIOKMd5AsPiq6RD9BhL6xUEiGkKMJ0poKmw4cqFbI\nwRTDB5HCZO4/g7Y2kBC46Abw3GyGR0b8zb4ciyf6HmUitjoy0eOnYKxUwBU3\nGAU0A3L4z/2Zf0xzDRHSZ7Ph+E3vWM1QzmFduuUxBy0nFZ9OsduqU6Geez8P\nWXibSbHnc+KTScDD5O3coxaNtBuFJclKUv4k2Zj8cnconXxHMKh7VMBQpASe\nx25QVc72s1PSDuVqNlETMCwtF/24CTRYrmJgFwJSxR9SO1C2Z4YZ+GhnqXth\n6qkFdv7UAbR4WVKs8ehp0VIWeWPucNEYEvwe1NHSFWqGjodHtf3LNmfoDDAi\nzDXSxfGNwAv9SHyIuo5HOFOmjUpUIQOsbQlvbT3aiFv1QT8Juu2VH/RJOsPw\n/yH2\r\n=ALtq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEko/1xVFad/yHqLCjI1Ohk8RR//RqyxUPqQ65Ng/FoNAiEAuDCMk/vEWqb79bmdJZEBBU0bgLiI3OD2OfBt+f1VUyc="}]},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-lock_1.2.0_1552482670025_0.7689899800135369"},"_hasShrinkwrap":false},"1.2.1":{"name":"async-lock","description":"Lock on asynchronous code","version":"1.2.1","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test"},"devDependencies":{"bluebird":"^3.5.1","grunt":"^1.0.4","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-jshint":"^1.1.0","grunt-contrib-watch":"^1.1.0","grunt-mocha-test":"^0.13.3","load-grunt-tasks":"^4.0.0","lodash":"^4.17.11","mocha":"^5.2.0","q":"^1.5.1","should":"^13.2.1"},"dependencies":{"grunt-env":"^0.4.4"},"contributors":[{"name":"rain1017","url":"https://github.com/rain1017"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","url":"https://github.com/rogierschouten"},{"name":"erikvold","url":"https://github.com/erikvold"},{"name":"Christian Passet","url":"https://github.com/thePunIssuer"},{"name":"Tanguy Krotoff","url":"https://github.com/tkrotoff"},{"name":"jtyers","url":"https://github.com/jtyers"},{"name":"Paul Roub","url":"https://github.com/paulroub"},{"name":"Geoff Whatley","url":"https://github.com/meatwallace"}],"gitHead":"9d9d5457e2f01b1a531827cb0579d5b01906c115","_id":"async-lock@1.2.1","_nodeVersion":"11.15.0","_npmVersion":"6.10.1","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"integrity":"sha512-eHyJHqr7JivGaVfrpy7rJpTUVNoECFQFUL9ZVmaKDNaKa9IiYsnqNaYAiwU9AXtmDUE8LNjPdxvwMMJzW9vtVg==","shasum":"1bdfbb2f538aede775188877abd76919d7054bd6","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-1.2.1.tgz","fileCount":7,"unpackedSize":13996,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdKchuCRA9TVsSAnZWagAACVAQAJYzYjwSdl4spT/EbP1Z\neAk4/1j/QE826UuuGkqNYiKR++gLfgxp5Sb8vmOecS5osUaK4sz9vVSpS+ZI\nED6ZUZucD0iNuw9t4r2hlql6Bn6WP2WnjMGq4C2i3ngRwAjJkKhx6ACk9s0x\nuegWKJYZeFqZmn1SEyi3ecDc/emzMUicNPh4QolMY1/MwRRAodHL4ZWtdAAR\nBX6zjMKJxwca+1lpz/i1T7Kxyo7OGTfhlfYZliNxipzkubVLPCnd4IztuNul\nc756IpFI0L2q3iv5nWx30PMkVmqle8Dv3DqnnF6HLCTsX2nPBz95MVCy5u2v\nr+AU2LqXSSBeJX/Dv4ssdm+W7j/yR3jR08F9TAEKDFH3gLidTOiwkFf+kWGt\nY0MF92G1dLDSqHPYsCqkuU0/jMEP42mvjInSgn+YqH+L1iyAGR6ij5/FJqh6\nBdiZI171bM2EXdn9yYFslGtt3N/FrGB/+m/Ah3daqfF3Y6SentkSwy1jFe35\nyPdprYgL0fXErULDlsoVwG3sqs5vQziUrMQs+pA3SNFIWnYTRTIP8dW2rjg9\nJO93qqUyJOs1yOPRtSS9jBvjtt1sZID/Ngx8cuPcMG5Ev/n9+wAMxCnxAKDF\nMzKnOZM75j5PcBXkbFBqFD5FI9c6Xvu3gPawSUY6omVGyDj25Clha1QjgAO+\nRo+h\r\n=DEe4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCoc8YG2PL4wy2RFiicXBjbGvzdZyTsVCRzRbG0/i9WzgIhANt9KMIuAwvp8QjkD8EIJisQtH2+ut60rUxhzRUgtOLS"}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-lock_1.2.1_1563019373603_0.5391389007382441"},"_hasShrinkwrap":false},"1.2.2":{"name":"async-lock","description":"Lock on asynchronous code","version":"1.2.2","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test"},"devDependencies":{"bluebird":"^3.5.1","grunt":"^1.0.4","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-jshint":"^1.1.0","grunt-contrib-watch":"^1.1.0","grunt-env":"^0.4.4","grunt-mocha-test":"^0.13.3","load-grunt-tasks":"^4.0.0","lodash":"^4.17.11","mocha":"^5.2.0","q":"^1.5.1","should":"^13.2.1"},"contributors":[{"name":"rain1017","url":"https://github.com/rain1017"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","url":"https://github.com/rogierschouten"},{"name":"erikvold","url":"https://github.com/erikvold"},{"name":"Christian Passet","url":"https://github.com/thePunIssuer"},{"name":"Tanguy Krotoff","url":"https://github.com/tkrotoff"},{"name":"jtyers","url":"https://github.com/jtyers"},{"name":"Paul Roub","url":"https://github.com/paulroub"},{"name":"Geoff Whatley","url":"https://github.com/meatwallace"},{"name":"Patryk L.","url":"https://github.com/LosTigeros"}],"gitHead":"e1619df208e01062976e243edf1db89ddb9e2e2c","_id":"async-lock@1.2.2","_nodeVersion":"11.15.0","_npmVersion":"6.10.1","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"integrity":"sha512-uczz62z2fMWOFbyo6rG4NlV2SdxugJT6sZA2QcfB1XaSjEiOh8CuOb/TttyMnYQCda6nkWecJe465tGQDPJiKw==","shasum":"480bd51e4b7ffd4debbd4973763718ec9acb9a9e","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-1.2.2.tgz","fileCount":7,"unpackedSize":14103,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLN8jCRA9TVsSAnZWagAA7bsP/1TRhS5pArkBwMa1yHWK\n+gWIu+nQvRhrP4TOTj2qdhqUVygSaEvkcr5TTOtaD2Vmt/jxSqJyzcEQpSAB\ntJw60ih08xLMwUPdJhq46JpxYFWywA+DYXGxvZg5QhUsNw383ChBUXS0iJuf\nxLAJMWWHuSMfr5nwwC0qvPP3aWD01eQzkhkH69AZqQwsL+YI+rDjYPYXazgg\nbdgJiLMLpnCgTKJCJgxc5elBsz7cgaxrwZkDMG30/YxiM7BLPPt3q2dXACg6\nIvbpNcEkE+piyxpGY049Mg6DemlYkj5Zt3CVwo+QLx3epPFiaG9t+iizgthj\nZ9XyXhRq0ZcBdOa4zqHwKGmQHwPE0bzEV+gG8dPUKQ99keNFFffziMB4UY8E\neWrNxe304HwpySYV4F8PhimWyvsrAFyUUAKm1qDwOBGa0V5PWz8PB5jPBTzd\nKF7Th3CEgae4MOHk9Rck+n9y6GxYNDPibqqh+WL5PNcdJ1S3X8/Vp3VRa/la\npuAGctoFEYF1ei4Zo7yc5r6c4hhpgJl+f2Fu5q4JkB34/LaTxxluGlaVbvR9\niZ+GW/cG7ulCF1Q/HonWHzwDdY2yWkrMgXiLhUys5sD91hxMrZsiVxF2VK5q\nDCS/qSZ6QczyA71QsFdhi67Z4MGUNKLAYXYqXscQtfCa5q/hmbHbOwtPBrzn\nq0Lc\r\n=5CIA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCRoQ2Pbe6laG/tPJUzqDnleIDcY53N8L8EOqaQzYasMwIgIFfSeTf38yxUiyCycSx7fzegN3UwmfAWFP2yapUJ4ps="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-lock_1.2.2_1563221794720_0.5902613887248829"},"_hasShrinkwrap":false},"1.2.3":{"name":"async-lock","description":"Lock on asynchronous code","version":"1.2.3","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test"},"devDependencies":{"bluebird":"^3.5.1","grunt":"^1.0.4","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-jshint":"^1.1.0","grunt-contrib-watch":"^1.1.0","grunt-env":"^1.0.1","grunt-mocha-test":"^0.13.3","load-grunt-tasks":"^4.0.0","lodash":"^4.17.15","mocha":"^7.1.2","q":"^1.5.1","should":"^13.2.1"},"contributors":[{"name":"rain1017","url":"https://github.com/rain1017"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","url":"https://github.com/rogierschouten"},{"name":"erikvold","url":"https://github.com/erikvold"},{"name":"Christian Passet","url":"https://github.com/thePunIssuer"},{"name":"Tanguy Krotoff","url":"https://github.com/tkrotoff"},{"name":"jtyers","url":"https://github.com/jtyers"},{"name":"Paul Roub","url":"https://github.com/paulroub"},{"name":"Geoff Whatley","url":"https://github.com/meatwallace"},{"name":"Patryk L.","url":"https://github.com/LosTigeros"},{"name":"Julian Saunderson","url":"https://github.com/bitrivers"}],"gitHead":"8b84925050b32dad3037f1fc34137b04451c0089","_id":"async-lock@1.2.3","_nodeVersion":"14.2.0","_npmVersion":"6.14.4","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"integrity":"sha512-at+TRmdp2CDNTMIevBK7CMgaA39OpyMA7MtEDa37544GdenYy9m3P5JvXq4zKmUCVc2HWy1pT563U5f0Sj0kuw==","shasum":"0d0852d48c150d1be252faf9ca82057333272332","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-1.2.3.tgz","fileCount":7,"unpackedSize":15327,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuZpqCRA9TVsSAnZWagAA4cYP/icwplVox/jwWaHmohzo\ni5322nm7uvt9TgGmHSyAp9PMYx5h8CvjOyF/g06KACDTlFMmbc32p47KG2cT\nJ8VkYRnHAcYy/X1N30bgDfRd/I11ax1CjOWEdq+3Aqj8uVQzqoyKNE9lsPLC\ncfBnxa8mSMeHbalvyghV2K03b7RCKJKt2766u7ekjss41fGu0g3XYqQRAeqh\n7JRA/B9zatve4XeEx5CZLhdMO0/srPA1HMyTTCY4VcovoWh5yHkt8F2Z+rK4\nHXslY7EHQ/Ir8Jhg2tO1JFnb3ZT8tmM2oHYIOzBniYf/iFcDgvx4pzfqYGmI\nc2Yau/NWPFtbKEr/CTx9WGgAUAC1h83GddFFBMC6/QefduhjAQxSpwQRcjae\n4AwgXG/8M+2+4Mn1uaJTys5xeh0a9bsbxBZkNxkJys20kd1Cv4sOD7rLZG9E\nop4TpQiRS6AvZzRw8httSSP8oIg/g/bEm6EezLbvOR7PMYIWkePIkTmBFawh\niWpcYU4HPpOOaX+A9sgAm6h2wYP02YzfUyes2X2F1yXhzlS7gjjjns1QUtUk\ndIBne7Qq8U79zhTVB+3aTWRiWVe+jTbMxkarASouv64ruXsukzZhEBwkmAUN\nwh0mcDSSoMMgBRyrbAZlU4WDRHPF/mq26vhHoTS0Q8zkuuWviKQ2n0e8GUes\nRAST\r\n=m2W7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIADkCKinPf8aJqiWh+3vsrZksuaHhjzOVFiKMx0VxbXTAiBb5wmqr8qzKxNSihnoWMuJ8GUOvlwm95Z54UglsAaSDg=="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-lock_1.2.3_1589221993725_0.907401774358884"},"_hasShrinkwrap":false},"1.2.4":{"name":"async-lock","description":"Lock on asynchronous code","version":"1.2.4","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test"},"devDependencies":{"bluebird":"^3.5.1","grunt":"^1.0.4","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-jshint":"^1.1.0","grunt-contrib-watch":"^1.1.0","grunt-env":"^1.0.1","grunt-mocha-test":"^0.13.3","load-grunt-tasks":"^4.0.0","lodash":"^4.17.15","mocha":"^7.1.2","q":"^1.5.1","should":"^13.2.1"},"contributors":[{"name":"rain1017","url":"https://github.com/rain1017"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","url":"https://github.com/rogierschouten"},{"name":"erikvold","url":"https://github.com/erikvold"},{"name":"Christian Passet","url":"https://github.com/thePunIssuer"},{"name":"Tanguy Krotoff","url":"https://github.com/tkrotoff"},{"name":"jtyers","url":"https://github.com/jtyers"},{"name":"Paul Roub","url":"https://github.com/paulroub"},{"name":"Geoff Whatley","url":"https://github.com/meatwallace"},{"name":"Patryk L.","url":"https://github.com/LosTigeros"},{"name":"Julian Saunderson","url":"https://github.com/bitrivers"}],"gitHead":"78cb0c2441650d7bdc148548f99542ccc9c93fd7","_id":"async-lock@1.2.4","_nodeVersion":"14.2.0","_npmVersion":"6.14.4","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"integrity":"sha512-UBQJC2pbeyGutIfYmErGc9RaJYnpZ1FHaxuKwb0ahvGiiCkPUf3p67Io+YLPmmv3RHY+mF6JEtNW8FlHsraAaA==","shasum":"80d0d612383045dd0c30eb5aad08510c1397cb91","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-1.2.4.tgz","fileCount":7,"unpackedSize":14399,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeut5xCRA9TVsSAnZWagAAF1EP/RrAA40JCtjXSU6YqcQa\nlBPWwWvpXy0Rq/9DLzjIdfM2IdagMzJzcO7HA9ar/b8xHJoVkyJfeVW23nzU\na1MqzzDflpABeFU5yA14x4IOG7I2imBfwXSEBandyyaBoqXWviLln3slNQbv\nEDZ4xK7svLktOh6SUxR1FxIvxlCpzQ7cS7I2xsevXfsTrwQbDnToldwsRh+W\nM3DpnqMx5bU3wnfKB7NIiZ6lk/y0Gc1S9//6s5P7UOz1od5WSA8z1UUd4UjK\nweKCO7AZPQ5vGhhvVgR8ePgdBkMCmyFq+IEd35EzygvDHhAlQ+F4lIqjivIX\np791KMs6Wbgz/Dg/z5k8HgaV/clV410poP//QmD8DCRjWpxEIA8gb0jRAKpS\nj5S4bNzA8KU/eE218mlcd45yg7/RkGyiOgMK4Hn4xoRrIGez2XY6koe5EYFu\nUj9dXgmlk5tTUJj1oR/E2mvSlzIO4hQm5pf9P54Fe5TdV6pX9oI0YOBiZVPf\nPcytuxp1nkSO3/aaRZzKxiD/SFn8UAoDN28uc2GVq1pwRKkiXChDlko3wjrL\n04dIHAvwAXgOKkzhKrOttNFx4Dd1Xiq/21ZkbXQ/SEafP6S04N/7BimAVWjb\nNTCNYQwiZxZ0+7sKbmsFpKsst/aPNkpEZGozQX7OZrFZ+g/6UN2SBAyMAJTq\nSyuY\r\n=Jisl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFUqsCLdmASFCUDXl/0zPWmpU+Q4GtP1ZmMelerVLhONAiBh6HozrUG1vFfRTnRG6c42CPbJR56Vee19BvgEir/nCQ=="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-lock_1.2.4_1589304944289_0.21466036912934783"},"_hasShrinkwrap":false},"1.2.5":{"name":"async-lock","description":"Lock on asynchronous code","version":"1.2.5","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test"},"devDependencies":{"bluebird":"^3.5.1","grunt":"^1.0.4","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-jshint":"^1.1.0","grunt-contrib-watch":"^1.1.0","grunt-env":"^1.0.1","grunt-mocha-test":"^0.13.3","load-grunt-tasks":"^4.0.0","lodash":"^4.17.20","mocha":"^7.1.2","q":"^1.5.1","should":"^13.2.1"},"contributors":[{"name":"rain1017","url":"https://github.com/rain1017"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","url":"https://github.com/rogierschouten"},{"name":"erikvold","url":"https://github.com/erikvold"},{"name":"Christian Passet","url":"https://github.com/thePunIssuer"},{"name":"Tanguy Krotoff","url":"https://github.com/tkrotoff"},{"name":"jtyers","url":"https://github.com/jtyers"},{"name":"Paul Roub","url":"https://github.com/paulroub"},{"name":"Geoff Whatley","url":"https://github.com/meatwallace"},{"name":"Patryk L.","url":"https://github.com/LosTigeros"},{"name":"Julian Saunderson","url":"https://github.com/bitrivers"}],"gitHead":"ff0609440a0b4a70b2af8cf514364f00ddcbd451","_id":"async-lock@1.2.5","_nodeVersion":"15.3.0","_npmVersion":"6.14.8","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"integrity":"sha512-D/1Ydwiz9upaSFnx0p3L8slB8kuclq8TEVkBk/KVCxHuUBd8e+UVE6EC6EGadpewZeEZr2lm/uZ4R2tfGrjcCw==","shasum":"15ee353175116ea1e0214f4771b31f2edaee0692","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-1.2.5.tgz","fileCount":7,"unpackedSize":14561,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfzO8VCRA9TVsSAnZWagAAc3oP/Rmk75jxqXcEYRBRUvgT\nlKN+x1hRguELNkW4X57TVjizbspGY2KGVcf9J1ABtXhaoY/AmmK+FHgovkib\nKvL2zKNpPSvE8mFAZ8b3s3iNTmaE0aypvLZNKxLt1/gVsFBX5V4rAuc4tjMQ\nap0WOpzC3Vc0wf/9/5JvUdB2qrOsoFtRHTUMOeAaIwJa10YGx6pR1Ei1lyWq\nKXpdJ1t6zN5XAhlYCvEM4gwNWDTH9+ZzuX4PfykPuai9YqzwhNqIbH3mj+0R\nVejMGcW2QCb5hDjnW8XNa2HpgLMa7saLGpgsm5ZHDI+ZYHIM6B1YbSYj725L\nOYerAFQiyCFy2WaBe73Lt/LX/jo57uEN2o9Z6a3GQzD3SPYIpKvNUO3qke8g\n63NSOq8/BqYhOFaQcIt01iaFwYyd0WCE6ZGf3mjJEM+IIopSAL7s0wul0jx8\ni4r9nwsaSIAwQXY2Pp9SWLo8fIs5r3UmfZcDfBwn5rr+rRukhWprPsDZmqPu\nUplrnkYhrz4tXxumrDiyXVNN7xEUb8fkfo+KMq1/U57b6D68WOifZOUcSmCO\nJkWXLhwduMeJHpEJWOh586H+r/Z5ZIbnWNHB7wUQWtbdIST+0DkTZ8N79ipV\neuEStCQ5lppfF5ZHqMbQg5SiY72iOetKLn05rHGzWeolk/lSyQIRvb1Dyznk\nbDbm\r\n=owHr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCdI7B4JTgSMt+PCge5urpWxXbs7sin+ibHQWDgqGjUSAIgCDmiCU2nOGlqOzwlMdNODjPc2NMkTrbyYHiQgHiIxJY="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-lock_1.2.5_1607266068980_0.3146842749583312"},"_hasShrinkwrap":false},"1.2.6":{"name":"async-lock","description":"Lock on asynchronous code","version":"1.2.6","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test"},"devDependencies":{"bluebird":"^3.5.1","grunt":"^1.0.4","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-jshint":"^1.1.0","grunt-contrib-watch":"^1.1.0","grunt-env":"^1.0.1","grunt-mocha-test":"^0.13.3","load-grunt-tasks":"^4.0.0","lodash":"^4.17.20","mocha":"^7.1.2","q":"^1.5.1","should":"^13.2.1"},"contributors":[{"name":"rain1017","url":"https://github.com/rain1017"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","url":"https://github.com/rogierschouten"},{"name":"erikvold","url":"https://github.com/erikvold"},{"name":"Christian Passet","url":"https://github.com/thePunIssuer"},{"name":"Tanguy Krotoff","url":"https://github.com/tkrotoff"},{"name":"jtyers","url":"https://github.com/jtyers"},{"name":"Paul Roub","url":"https://github.com/paulroub"},{"name":"Geoff Whatley","url":"https://github.com/meatwallace"},{"name":"Patryk L.","url":"https://github.com/LosTigeros"},{"name":"Julian Saunderson","url":"https://github.com/bitrivers"}],"gitHead":"cf8e80b436c1a476ad60f3781cc0f147457da03c","_id":"async-lock@1.2.6","_nodeVersion":"15.3.0","_npmVersion":"6.14.8","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"integrity":"sha512-gobUp/bRWL/uJsxi4ZK7NM770s5d2Tx5Hl7uxFIcN6yTz1Kvy2RCSKEvzhLsjAAnYaNa8lDvcjy9ybM6lXFjIg==","shasum":"c83c7a2569d1745306f4a5ae03680310e5f65e67","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-1.2.6.tgz","fileCount":7,"unpackedSize":14734,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfzUPECRA9TVsSAnZWagAASMwP/1w+NAhkVqmFzWE229Nx\nvTz4qhkBFs3lakNV3/9omIxoEaArtObWd3TM8vA5Qi8kvB4EXh0kqFvBfcuX\nxeLOlUezrXK/n0XwqniTPHLZUkikEQwe9kMxhsmUYSSPiQNzD0vrlZKp/9Gx\n8WNgVp0UZ1F9k54xf/MPbqolx50WjHShz7lF345PgBozLJiDfOc/5hkAfW9/\ndNFlHoIb99qOek8qGGkjj8+b1jYBAPKuw/1PK/EEHntWRx2oeEObY5qhNygd\nBFCswxEwzC3T+lxPyNDr6PrNhvNkACtgJbBKpRaeEUYXaADQNAZSh3W6U25m\nWlQ5MwewPjE5HotxEuYeZtzh2CbpG7yu0A6nI8IqOYEyREOYn4nJZisgEIu1\n8WE7q2aB6Bu+CHEo/0a1x+I7u0OdrBAY0zB758/Svh2BMgYb+0IGMilTkAS4\nq8D7+NFJF/uABzUJmr00+DSKNxdTqwElSYfcQV9/TboFtKp39PSm8S2HKjy7\nFaNEp94O4rP8wt1RAnmfjDZRIF0F1vjMEFkLONRWYZc6h/nqHPPIztWw8bi5\nwkXlkO7iB8ePAxs+UehHv4MgalNgytwYPbtl6BapQ71aLhwPcRFX1IosylDQ\nlrzpIe6vpRf6OYbtok0ZUifC29rEw7ttR9gyvH0LxFrKmNjsDMIwazufPHzM\nHPju\r\n=HGPO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgqgXgL2Ru4C4oMzQ9NMH4AstAoyXqld1GAlcaCZh9kAIgeIHs2hywAhZw5qoE2UMgM5ZLZZY1t73v6JC806lWmng="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-lock_1.2.6_1607287747860_0.5500221515143233"},"_hasShrinkwrap":false},"1.2.7":{"name":"async-lock","description":"Lock on asynchronous code","version":"1.2.7","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test"},"devDependencies":{"bluebird":"^3.5.1","grunt":"^1.0.4","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-jshint":"^1.1.0","grunt-contrib-watch":"^1.1.0","grunt-env":"^1.0.1","grunt-mocha-test":"^0.13.3","load-grunt-tasks":"^4.0.0","lodash":"^4.17.20","mocha":"^7.1.2","q":"^1.5.1","should":"^13.2.1"},"contributors":[{"name":"rain1017","url":"https://github.com/rain1017"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","url":"https://github.com/rogierschouten"},{"name":"erikvold","url":"https://github.com/erikvold"},{"name":"Christian Passet","url":"https://github.com/thePunIssuer"},{"name":"Tanguy Krotoff","url":"https://github.com/tkrotoff"},{"name":"jtyers","url":"https://github.com/jtyers"},{"name":"Paul Roub","url":"https://github.com/paulroub"},{"name":"Geoff Whatley","url":"https://github.com/meatwallace"},{"name":"Patryk L.","url":"https://github.com/LosTigeros"},{"name":"Julian Saunderson","url":"https://github.com/bitrivers"},{"name":"Philipp Keck","url":"https://github.com/Philipp91"}],"gitHead":"89fa310cdc95773cb241a19cb8c354afc467af57","_id":"async-lock@1.2.7","_nodeVersion":"15.5.0","_npmVersion":"6.14.10","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"integrity":"sha512-OOVSyNuHb1KaGq17oKqNKc+8/t7LzA88ihaWk+eStrNkOoI3wpbxQR/MtIfHhYLiLYW+b9kQ6aO90K7YUZnxoQ==","shasum":"70db1aaaf1bd37d40aebc3be90f82be37e7df07a","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-1.2.7.tgz","fileCount":7,"unpackedSize":14865,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf81ZQCRA9TVsSAnZWagAAnH0QAILGjcoMpjxuHlBq+bra\n1Gag+aQUQtROZ4BoYI0LtGXCQq6tRT6Jz+yYlfWcuWks9Tt6ED6VTGA/IVDM\nojprT7tBdXFgGKCddi8DbkqWnQLpNiaFAYIDTIdrIU/Itw4DH1dfTAs0N4ud\nXqmpoUN00av0cXpHRhZ0qv9FXI0BPCjHayNWQO1Zbp4L44ot4eumHU6FgO+d\ncJoS8G0G/HUh5FZ+e2Axd5dmxIP2/ic1CLhNJaeGwI+XIb043X78r04oNj6n\nxpgyF+P8KOE/DGvwqVgShovuGHrRVflvww8jdu6AGTqJM6QFOskigPrqWnXb\nbr6AHZyLGjopiU9dYmouB4mH5sNhBt64A3KhmJgkVJo1GvpaTTys1pdZT8XB\ny6AtiSuc/SMGaxCm8no41yQ/mT++M28XO9QHbdRCIRRduYEmTHzc7OqG4ySW\n4UQ/m/Ntr+NkpqIbjOsr++4WjWRJewj1jRMSE8aFn2ANxaU0oVxLuRWNbSiW\n+g24pj1yezg1zeEypkFH5lo3RMcOljLRycfjbIG3tb4iFzbwh4z9FLSJ9DUV\nMahRhW7MkdyYmgdO7jX11gCF2aeFf3P80Dg96ITdEXuvhAYfBJmz/m55kFQ6\nzqEPviaDNVDIQ+3w/usDoXOIlJNUvILIutm22W5NQfKW0HVVuxbKg6ar0xe3\nUPqM\r\n=eMPL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAezkPnNgE3+NkIoG2oXKPnTIi4JIzdb7Q7yblmqLCSnAiEAgg6h43I4juFXBqc0Uvu+4RkFYUzO1jdV2GGaFn8er6s="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-lock_1.2.7_1609782863772_0.01547742401614638"},"_hasShrinkwrap":false},"1.2.8":{"name":"async-lock","description":"Lock on asynchronous code","version":"1.2.8","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test"},"devDependencies":{"bluebird":"^3.5.1","grunt":"^1.0.4","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-jshint":"^1.1.0","grunt-contrib-watch":"^1.1.0","grunt-env":"^1.0.1","grunt-mocha-test":"^0.13.3","load-grunt-tasks":"^4.0.0","lodash":"^4.17.20","mocha":"^7.1.2","q":"^1.5.1","should":"^13.2.1"},"contributors":[{"name":"rain1017","url":"https://github.com/rain1017"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","url":"https://github.com/rogierschouten"},{"name":"erikvold","url":"https://github.com/erikvold"},{"name":"Christian Passet","url":"https://github.com/thePunIssuer"},{"name":"Tanguy Krotoff","url":"https://github.com/tkrotoff"},{"name":"jtyers","url":"https://github.com/jtyers"},{"name":"Paul Roub","url":"https://github.com/paulroub"},{"name":"Geoff Whatley","url":"https://github.com/meatwallace"},{"name":"Patryk L.","url":"https://github.com/LosTigeros"},{"name":"Julian Saunderson","url":"https://github.com/bitrivers"},{"name":"Philipp Keck","url":"https://github.com/Philipp91"}],"gitHead":"47ca94291cfb2afb3ee90d7d075cabdc8c8b1264","_id":"async-lock@1.2.8","_nodeVersion":"15.5.0","_npmVersion":"6.14.10","_npmUser":{"name":"rogierschouten","email":"rogier.schouten@gmail.com"},"maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"dist":{"integrity":"sha512-G+26B2jc0Gw0EG/WN2M6IczuGepBsfR1+DtqLnyFSH4p2C668qkOCtEkGNVEaaNAVlYwEMazy1+/jnLxltBkIQ==","shasum":"7b02bdfa2de603c0713acecd11184cf97bbc7c4c","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-1.2.8.tgz","fileCount":7,"unpackedSize":15345,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf81b5CRA9TVsSAnZWagAAbFcP/0QMrcyftYwqSdm6kXP/\nLNzKcTHLd5iguHUmlKJ9QE0b7GC0UGiUl3NVWAot+Y26ftp+gnAfFPH2Jign\nX20iUlgBVKqN+ao+MnAiYsF0T02Z+ZVivDvdtXT7oFmiEOJEy3Z9bWj83Q2Y\n5gXsT5++9gjxDEFFnCZ7Hi2OvUfLoF1CVSoNEHYBw21HaD929xBaLjp3V5AL\n8d1lu4ACXZJnjhaWD89cptXkDKJJWnookDE+fFwIr2sCHnSP6X9e4nzMOPQt\nNQ6aAQoU2Q8TK8Q+C6F1Hf16RlY/6EkpQJx7KxDWGw7JQkZyYVl7y9RR7qZt\n+xOow7fHIVxmRTrxCBxBW8OLmthr4RFHasRCGeWuLb70X2NoVlPDPLols+i4\n+2A0Z6oTuqbQKWrnC4RlqVoYiMH4Q+oyD/KzA8c4ScDJZweR/+2Nay/TrYRP\nYAeuuhgIKrZF9tIEZgZEtIo8XCqmyf3+8WV3lB72Yy0O50+FXskaGvH2/z7r\nJJUA2xAJEVD47dTqmaycMNMThMBKjEyl171eOTOXg54acCPWvQJCTc8znXjd\nqbqz+V1Vzf+ZfCFBmJvaJVhSB5OsGoA8urNjJviI2CxPk58WXvPNn2aOzac6\nmil5ZXfNxpGtyN6IUL9k+ZIgaPcJR9hlJOl33SQurA9Cq6uYErporDrPzOEk\np738\r\n=vvYz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGQJIJm4snwuB5WjyG3f6JhzAfkUrrD5E2BFcYu8IchPAiBZlAmQdR2+ywaWjziu/wI+5XnH5K0gF0qFXt8zmd14tQ=="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-lock_1.2.8_1609783033567_0.37688870942736874"},"_hasShrinkwrap":false},"1.3.0":{"name":"async-lock","description":"Lock on asynchronous code","version":"1.3.0","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test"},"devDependencies":{"bluebird":"^3.5.1","grunt":"^1.0.4","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-jshint":"^1.1.0","grunt-contrib-watch":"^1.1.0","grunt-env":"^1.0.1","grunt-mocha-test":"^0.13.3","load-grunt-tasks":"^4.0.0","lodash":"^4.17.20","mocha":"^7.1.2","q":"^1.5.1","should":"^13.2.1"},"contributors":[{"name":"rain1017","url":"https://github.com/rain1017"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","url":"https://github.com/rogierschouten"},{"name":"erikvold","url":"https://github.com/erikvold"},{"name":"Christian Passet","url":"https://github.com/thePunIssuer"},{"name":"Tanguy Krotoff","url":"https://github.com/tkrotoff"},{"name":"jtyers","url":"https://github.com/jtyers"},{"name":"Paul Roub","url":"https://github.com/paulroub"},{"name":"Geoff Whatley","url":"https://github.com/meatwallace"},{"name":"Patryk L.","url":"https://github.com/LosTigeros"},{"name":"Julian Saunderson","url":"https://github.com/bitrivers"},{"name":"Philipp Keck","url":"https://github.com/Philipp91"}],"gitHead":"a726dc1014991ab3b6804e46b8eaaf0862d714b0","_id":"async-lock@1.3.0","_nodeVersion":"15.14.0","_npmVersion":"7.8.0","dist":{"integrity":"sha512-8A7SkiisnEgME2zEedtDYPxUPzdv3x//E7n5IFktPAtMYSEAV7eNJF0rMwrVyUFj6d/8rgajLantbjcNRQYXIg==","shasum":"0fba111bea8b9693020857eba4f9adca173df3e5","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-1.3.0.tgz","fileCount":7,"unpackedSize":16257,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiIjECRA9TVsSAnZWagAAwzsQAKQoMcVH55z8Co0MzSjV\ngU44XYeRn8wFMWbcYXJpG2QgxTuWGIQTUCRFQYk5jXZ37XuhypYicOQ//XII\nuVox/lrZ8/bGKrDihKmNZcaEWv7eQOQhKRcpDd8Gt0mOcuhpL3gGwi5ovN9H\nwDV8S+S5tBWk9VNRjzqJrWttKGl3iGGWRLtUkmBlqoLcgL72Y8l2hM4JObD+\n5pqyM1LP+DuVYwKyRM9W3v0R3N68No0LGhkIYJkiGsBSac1s4Al82tPUGs+x\npiSkaPJaJG4WVNizpPjWElOgH5sLMB+MFJItbmrtSbw5Ud02lJHlKECI3qig\nXB3FicA4m0Peb256CYb2jdMtqRYOAyDeOSiPW6ERXMWasYJmgqpts6CWiRCX\n59BiNfYdNvj++73crSOduN7P8Cw9y0dvG+5zZvZvt79qzosyttQzDExU4WOe\nyVBsh3kcVrgP9FFSyvu7SDlIZ8ridjlRHknDZ3WDJBuVVD+Iangrp3g0W+SV\nfCiaMyU9wmEGKzxMuxexVqY1nVcSI4YwU6G1FZCOkKnIWq5p0xAn4eibkaNB\nw99gyqFHgaOkSAsx971jrhWnEL8Fff+K0QFgH8jCAJnFcPKL8K3IYwfKoscI\n3MyEIKhbjOjfRs8Ypm9JyGj1FpTIaZlyiYS2vm/eulbm8JJ65yLdS8OPXv55\nLoDT\r\n=FrJq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBsk0WobADgNHAgDvsYkF/0Y1DPGAhYTPpSHBFNWuA2yAiEA8kEgQL69m39w63Fg3L7PyTbI+hVg9LC+PipvRRVfyFY="}]},"_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/async-lock_1.3.0_1619560643624_0.9021000741085963"},"_hasShrinkwrap":false},"1.3.1":{"name":"async-lock","description":"Lock on asynchronous code","version":"1.3.1","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test"},"devDependencies":{"bluebird":"^3.5.1","grunt":"^1.0.4","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-jshint":"^1.1.0","grunt-contrib-watch":"^1.1.0","grunt-env":"^1.0.1","grunt-mocha-test":"^0.13.3","load-grunt-tasks":"^4.0.0","lodash":"^4.17.20","mocha":"^7.1.2","q":"^1.5.1","should":"^13.2.1"},"contributors":[{"name":"rain1017","url":"https://github.com/rain1017"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","url":"https://github.com/rogierschouten"},{"name":"erikvold","url":"https://github.com/erikvold"},{"name":"Christian Passet","url":"https://github.com/thePunIssuer"},{"name":"Tanguy Krotoff","url":"https://github.com/tkrotoff"},{"name":"jtyers","url":"https://github.com/jtyers"},{"name":"Paul Roub","url":"https://github.com/paulroub"},{"name":"Geoff Whatley","url":"https://github.com/meatwallace"},{"name":"Patryk L.","url":"https://github.com/LosTigeros"},{"name":"Julian Saunderson","url":"https://github.com/bitrivers"},{"name":"Philipp Keck","url":"https://github.com/Philipp91"},{"name":"abozaralizadeh","url":"https://github.com/abozaralizadeh"},{"name":"ThePiz","url":"https://github.com/ThePiz"},{"name":"Luke Stead","url":"https://github.com/luke-stead-sonocent"}],"gitHead":"b6f470b87f29f265f974ffcfc5589417141d80bd","_id":"async-lock@1.3.1","_nodeVersion":"17.3.0","_npmVersion":"8.4.1","dist":{"integrity":"sha512-zK7xap9UnttfbE23JmcrNIyueAn6jWshihJqA33U/hEnKprF/lVGBDsBv/bqLm2YMMl1DnpHhUY044eA0t1TUw==","shasum":"f2301c200600cde97acc386453b7126fa8aced3c","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-1.3.1.tgz","fileCount":7,"unpackedSize":16455,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/ZAwCRA9TVsSAnZWagAANHwP/jRdrX4RCkIXPifg+NGP\nOhDC+Ab09X+SR82fstEVdbpVxVskBsZMWYpAkXmTuiIPW68GWTfeuk+imd6k\nlx+R294Q94vVUVsLeE1rRtYudLorjCIF9U2xDe0GDw8BUtiqTekvWj67YdIa\nG614MEdhcvtQ3R+Su1UUd43Zv1De8icV7bsjOudmqGJzonMFfvBxF75urVFI\nGOKUW2YP5/3Df2qTpwLKUTOog0Rc6qz6OLh/wFid9sYTBTX6M3l8zcXjpSMF\na0oqUX2a3JRtvjjp9++v34koOpOiYF8VUipwWoFLn6xmgYrGLV+oK36ZS57C\nyzzY90IFDkk/+wplu+o+MxOjyRc/PkqiJVRWvzGYiWesXonq5iKqWwoWlURn\nWNquxWGsg7707qc0vpdpbeXfNeORjVzf2SwHbvX/krgNNfmuK5oTuwCIpgb0\ngB/xtObH0YntNBWYUQFNHmdpDHv2KWA1RPcu0Br30Iee9AULrAfSvMM7SL0f\n9Y5hpqWhxnSg2v4CvcGpMapZM6SBS7DEdCx/8Nq9WRNfgYKZTLiwibMAHyKs\n97bt1kwGAWyPDnfrg6ms4EgJBoJlCUBSeDkXscBbODR5udbHFOvUpxvN5WAp\ndRkc4DXd6EFviPiJND3pFG008X/p2PeEtqO4osUfKh6g6MPIwiWH+M1dhEsO\nZ6Id\r\n=EAPA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDwMl9e+Sara6yGVlYr0Eb4LO5J2b0OtCT2UAlAz0JatQIhANsv5fSHKpT5qzZkjJ0V/jSjQf0EiHeMd3/W2j2P+686"}]},"_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/async-lock_1.3.1_1644007472409_0.7414385244281088"},"_hasShrinkwrap":false},"1.3.2":{"name":"async-lock","description":"Lock on asynchronous code","version":"1.3.2","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test"},"devDependencies":{"bluebird":"^3.5.1","grunt":"^1.0.4","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-jshint":"^1.1.0","grunt-contrib-watch":"^1.1.0","grunt-env":"^1.0.1","grunt-mocha-test":"^0.13.3","load-grunt-tasks":"^4.0.0","lodash":"^4.17.20","mocha":"^7.1.2","q":"^1.5.1","should":"^13.2.1"},"contributors":[{"name":"rain1017","url":"https://github.com/rain1017"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","url":"https://github.com/rogierschouten"},{"name":"erikvold","url":"https://github.com/erikvold"},{"name":"Christian Passet","url":"https://github.com/thePunIssuer"},{"name":"Tanguy Krotoff","url":"https://github.com/tkrotoff"},{"name":"jtyers","url":"https://github.com/jtyers"},{"name":"Paul Roub","url":"https://github.com/paulroub"},{"name":"Geoff Whatley","url":"https://github.com/meatwallace"},{"name":"Patryk L.","url":"https://github.com/LosTigeros"},{"name":"Julian Saunderson","url":"https://github.com/bitrivers"},{"name":"Philipp Keck","url":"https://github.com/Philipp91"},{"name":"abozaralizadeh","url":"https://github.com/abozaralizadeh"},{"name":"ThePiz","url":"https://github.com/ThePiz"},{"name":"Luke Stead","url":"https://github.com/luke-stead-sonocent"},{"name":"Simeon Borko","url":"https://github.com/simeonborko"},{"name":"Tim Schmidt","url":"https://github.com/taschmidt"}],"gitHead":"9df298380146901029d2a744aeacf684496c98a1","_id":"async-lock@1.3.2","_nodeVersion":"18.3.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-phnXdS3RP7PPcmP6NWWzWMU0sLTeyvtZCxBPpZdkYE3seGLKSQZs9FrmVO/qwypq98FUtWWUEYxziLkdGk5nnA==","shasum":"56668613f91c1c55432b4db73e65c9ced664e789","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-1.3.2.tgz","fileCount":7,"unpackedSize":17195,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAi2EfRlF83XFAUZj3nH2jrs7lsBxv/X10YycfxBugbiAiAOqzC5kPguUR9HVRgRYkU3uMom+qf0vP9dgER37IWkeA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJittoPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqOCw//Vx3N5+JhH1sN4UIiiGTyGHDWUh7cSFw8tSwVIK8zK1tdLYtf\r\neqd84KszrG5a+KG9M6UQFMjbG9V1+RSSlvsBvz9jjd3KQiyjkNknKPTTmWag\r\nr1bk9Hc1T/Xh+bF+bpvKm58s/RewaaKSiy/YC1+RwKxI8VHhlL80o9lm+Yn3\r\nEewuw/PnuTKRZoP+C4LxAR1bc1FmAn4mR1PYy0UQ+ZLnEWul4MYzr9PTy0ee\r\nWh68+mcRKpXT3qjLnS9eOuYyzmGJqGsU4yUEc/F+lPPk0SIii0mJfF/wvslv\r\notFSu04k1Zt30myOioZ5BlQr2dYfxub1CAl0ioDJyMDEKz/7pzM9XQJTo24I\r\nN0y0vMxbG7VxqrVAFISP1xzsmiEVMQR4Sz0C4k9WsoEnfZee/BsusGnqeum9\r\nubyDYa7+m/QVLjPd7NeShqFYk46cbgJQyr1G9HOWdApRNRp6sDGFCkOjGR+0\r\nbXir29nmLJ6ammv+GblVbDMDikA//MqNIS25xyGeumnWKAD5X1YOQuxQ75n4\r\nB2Hl5jGC9eTfQ0HX84ioe4rNrOLl8ku4Iu9YTiiMu0pZO6QppLPHJi72+7+T\r\nHd1tnADqlBwLlu1TehdGS80Degk3ny5MC/hC+2lZL/VAAomjS9aXJqsWED0o\r\nNOG4T29zntGTEH07+5LYIrw3oLodTqeKWlU=\r\n=eTeu\r\n-----END PGP SIGNATURE-----\r\n"},"_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/async-lock_1.3.2_1656150543495_0.3415165176879371"},"_hasShrinkwrap":false},"1.4.0":{"name":"async-lock","description":"Lock on asynchronous code","version":"1.4.0","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test"},"devDependencies":{"bluebird":"^3.5.1","grunt":"^1.0.4","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-jshint":"^1.1.0","grunt-contrib-watch":"^1.1.0","grunt-env":"^1.0.1","grunt-mocha-test":"^0.13.3","load-grunt-tasks":"^4.0.0","lodash":"^4.17.20","mocha":"^7.1.2","q":"^1.5.1","should":"^13.2.1"},"contributors":[{"name":"rain1017","url":"https://github.com/rain1017"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","url":"https://github.com/rogierschouten"},{"name":"erikvold","url":"https://github.com/erikvold"},{"name":"Christian Passet","url":"https://github.com/thePunIssuer"},{"name":"Tanguy Krotoff","url":"https://github.com/tkrotoff"},{"name":"jtyers","url":"https://github.com/jtyers"},{"name":"Paul Roub","url":"https://github.com/paulroub"},{"name":"Geoff Whatley","url":"https://github.com/meatwallace"},{"name":"Patryk L.","url":"https://github.com/LosTigeros"},{"name":"Julian Saunderson","url":"https://github.com/bitrivers"},{"name":"Philipp Keck","url":"https://github.com/Philipp91"},{"name":"abozaralizadeh","url":"https://github.com/abozaralizadeh"},{"name":"ThePiz","url":"https://github.com/ThePiz"},{"name":"Luke Stead","url":"https://github.com/luke-stead-sonocent"},{"name":"Simeon Borko","url":"https://github.com/simeonborko"},{"name":"Tim Schmidt","url":"https://github.com/taschmidt"},{"name":"Motty Milshtein","url":"https://github.com/mottymilshtein"}],"gitHead":"cf98f506f916106d037875b156b3232c0815a261","_id":"async-lock@1.4.0","_nodeVersion":"10.19.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-coglx5yIWuetakm3/1dsX9hxCNox22h7+V80RQOu2XUUMidtArxKoZoOtHUPuR84SycKTXzgGzAUR5hJxujyJQ==","shasum":"c8b6630eff68fbbdd8a5b6eb763dac3bfbb8bf02","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-1.4.0.tgz","fileCount":7,"unpackedSize":18200,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDVNhN5K+O51DUaa3R6lmQ7Q0bQQrHjX/Pyf5XMqtCouAiEAvOPOpll/xrBhpIvzhwE0fmJtkZYXPuTjCj0ce40WNV8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjXP7OACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmonMQ/+Jv//kzzuAVO2/dYEjMAg7xu7OT8m9k+MRTWu5q6xZUTq3riN\r\nZkc+QdijGXJN2ufidKkmltQEU5hVit/KlsVJiLAcxKxp0szeoo7ZtXSw6lzJ\r\nyBZy8r47sXBV9mmiVy6mWK7rbS/UWGgdJyZn1Ud7Wrl/pjsd4d82mm2r2pIA\r\n3bkWR1B4xO19qRsNdldX04KbSXC5IN5sBaRjmotscar1Zk8wkWVS9cLmU9Dv\r\nbzFQ5U2RfR3rj1HmVbwo4wyqlJPXGsompGYFc1zn0rOMQPKrqkYqW165lZib\r\nAGtD86R8H9SX/TDsQTYIrGkj8vMnS0/LOfVUMOF6KARmHn8mJfHY6W/xw5Bq\r\nCvWWghAZtzEoOr/xVfAIY2sGEokF0qOAe/dIWuxCj3hpglR7t7U2276nnk7C\r\nJuWrDDAtzKrGgtGOUMCWQz9nhs9AIVTvsNBzs1mDb26CsSWKl+QDg5DQ43YZ\r\ne47KcvwJz0EM+0tGI7mDUJgQVMvSc7NgUrSpGr7H3rxLZ6+34obmYPC2PJ0N\r\nf+qh/+xmzLp6z/wm6s5e09USwEN0lRYx+9O4YG5tfjTCIm5lFF4jsM0r5Vy+\r\nW7YBqcgwKPfrm5Xx/32jeJC2I9yzj/2/eGcZAmI37/mT8vfJ4FgEj5rthXQm\r\nynHDghL8Flt04XC1SrbQ2CEvmVsWPb8Tbeg=\r\n=T+3D\r\n-----END PGP SIGNATURE-----\r\n"},"_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/async-lock_1.4.0_1667038926223_0.6719234690687608"},"_hasShrinkwrap":false},"1.4.1":{"name":"async-lock","description":"Lock on asynchronous code","version":"1.4.1","author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"private":false,"homepage":"https://github.com/rogierschouten/async-lock","repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"license":"MIT","keywords":["lock","async","concurrency","critical","section","mutex"],"engines":{},"scripts":{"start":"grunt","test":"grunt test"},"devDependencies":{"bluebird":"^3.5.1","grunt":"^1.0.4","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-jshint":"^3.2.0","grunt-contrib-watch":"^1.1.0","grunt-env":"^1.0.1","grunt-mocha-test":"^0.13.3","load-grunt-tasks":"^4.0.0","lodash":"^4.17.20","mocha":"^10.2.0","q":"^1.5.1","should":"^13.2.1"},"_id":"async-lock@1.4.1","contributors":[{"name":"rain1017","url":"https://github.com/rain1017"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","url":"https://github.com/rogierschouten"},{"name":"erikvold","url":"https://github.com/erikvold"},{"name":"Christian Passet","url":"https://github.com/thePunIssuer"},{"name":"Tanguy Krotoff","url":"https://github.com/tkrotoff"},{"name":"jtyers","url":"https://github.com/jtyers"},{"name":"Paul Roub","url":"https://github.com/paulroub"},{"name":"Geoff Whatley","url":"https://github.com/meatwallace"},{"name":"Patryk L.","url":"https://github.com/LosTigeros"},{"name":"Julian Saunderson","url":"https://github.com/bitrivers"},{"name":"Philipp Keck","url":"https://github.com/Philipp91"},{"name":"abozaralizadeh","url":"https://github.com/abozaralizadeh"},{"name":"ThePiz","url":"https://github.com/ThePiz"},{"name":"Luke Stead","url":"https://github.com/luke-stead-sonocent"},{"name":"Simeon Borko","url":"https://github.com/simeonborko"},{"name":"Tim Schmidt","url":"https://github.com/taschmidt"},{"name":"Motty Milshtein","url":"https://github.com/mottymilshtein"}],"gitHead":"e4152de0efc66179b3675e177bc738beaecf6b38","_nodeVersion":"20.8.0","_npmVersion":"10.2.0","dist":{"integrity":"sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==","shasum":"56b8718915a9b68b10fce2f2a9a3dddf765ef53f","tarball":"https://registry.npmjs.org/async-lock/-/async-lock-1.4.1.tgz","fileCount":7,"unpackedSize":18255,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHalYjdFX/9tg2j/lnyCbTkIlm2d3cZF6EMvhhbXRGsXAiEA81P7tlktC/uuYUA7UgJJeMu3SuVTovcVxGT5Ys9COmg="}]},"_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/async-lock_1.4.1_1703274274377_0.9043478411585963"},"_hasShrinkwrap":false}},"readme":"# async-lock\n\nLock on asynchronous code\n\n[![Build Status](https://travis-ci.org/rogierschouten/async-lock.svg?branch=master)](https://travis-ci.org/rogierschouten/async-lock)\n\n* ES6 promise supported\n* Multiple keys lock supported\n* Timeout supported\n* Occupation time limit supported\n* Execution time limit supported\n* Pending task limit supported\n* Domain reentrant supported\n* 100% code coverage\n\n## Disclaimer\n\nI did not create this package, and I will not add any features to it myself. I was granted the ownership because it was no longer being\nmaintained, and I volunteered to fix a bug.\n\nIf you have a new feature you would like to have incorporated, please send me a PR and I will be happy to work with you and get it merged.\nFor any bugs, PRs are most welcome but when possible I will try to get them resolved as soon as possible.\n\n## Why do you need locking on single threaded nodejs?\n\nNodejs is single threaded, and the code execution never gets interrupted inside an event loop, so locking is unnecessary? This is true ONLY IF your critical section can be executed inside a single event loop.\nHowever, if you have any async code inside your critical section (it can be simply triggered by any I/O operation, or timer), your critical logic will across multiple event loops, therefore it's not concurrency safe!\n\nConsider the following code\n```js\nredis.get('key', function(err, value) {\n\tredis.set('key', value * 2);\n});\n```\nThe above code simply multiply a redis key by 2.\nHowever, if two users run concurrently, the execution order may like this\n```\nuser1: redis.get('key') -> 1\nuser2: redis.get('key') -> 1\nuser1: redis.set('key', 1 x 2) -> 2\nuser2: redis.set('key', 1 x 2) -> 2\n```\nObviously it's not what you expected\n\n\nWith asyncLock, you can easily write your async critical section\n```js\nlock.acquire('key', function(cb) {\n\t// Concurrency safe\n\tredis.get('key', function(err, value) {\n\t\tredis.set('key', value * 2, cb);\n\t});\n}, function(err, ret) {\n});\n```\n\n## Get Started\n\n```js\nvar AsyncLock = require('async-lock');\nvar lock = new AsyncLock();\n\n/**\n * @param {String|Array} key \tresource key or keys to lock\n * @param {function} fn \texecute function\n * @param {function} cb \t(optional) callback function, otherwise will return a promise\n * @param {Object} opts \t(optional) options\n */\nlock.acquire(key, function(done) {\n\t// async work\n\tdone(err, ret);\n}, function(err, ret) {\n\t// lock released\n}, opts);\n\n// Promise mode\nlock.acquire(key, function() {\n\t// return value or promise\n}, opts).then(function() {\n\t// lock released\n});\n```\n\n## Error Handling\n\n```js\n// Callback mode\nlock.acquire(key, function(done) {\n\tdone(new Error('error'));\n}, function(err, ret) {\n\tconsole.log(err.message) // output: error\n});\n\n// Promise mode\nlock.acquire(key, function() {\n\tthrow new Error('error');\n}).catch(function(err) {\n\tconsole.log(err.message) // output: error\n});\n```\n\n## Acquire multiple keys\n\n```js\nlock.acquire([key1, key2], fn, cb);\n```\n\n## Domain reentrant lock\n\nLock is reentrant in the same domain\n\n```js\nvar domain = require('domain');\nvar lock = new AsyncLock({domainReentrant : true});\n\nvar d = domain.create();\nd.run(function() {\n\tlock.acquire('key', function() {\n\t\t//Enter lock\n\t\treturn lock.acquire('key', function() {\n\t\t\t//Enter same lock twice\n\t\t});\n\t});\n});\n```\n\n## Options\n\n```js\n// Specify timeout - max amount of time an item can remain in the queue before acquiring the lock\nvar lock = new AsyncLock({timeout: 5000});\nlock.acquire(key, fn, function(err, ret) {\n\t// timed out error will be returned here if lock not acquired in given time\n});\n\n// Specify max occupation time - max amount of time allowed between entering the queue and completing execution\nvar lock = new AsyncLock({maxOccupationTime: 3000});\nlock.acquire(key, fn, function(err, ret) {\n\t// occupation time exceeded error will be returned here if job not completed in given time\n});\n\n// Specify max execution time - max amount of time allowed between acquiring the lock and completing execution\nvar lock = new AsyncLock({maxExecutionTime: 3000});\nlock.acquire(key, fn, function(err, ret) {\n\t// execution time exceeded error will be returned here if job not completed in given time\n});\n\n// Set max pending tasks - max number of tasks allowed in the queue at a time\nvar lock = new AsyncLock({maxPending: 1000});\nlock.acquire(key, fn, function(err, ret) {\n\t// Handle too much pending error\n})\n\n// Whether there is any running or pending async function\nlock.isBusy();\n\n// Use your own promise library instead of the global Promise variable\nvar lock = new AsyncLock({Promise: require('bluebird')}); // Bluebird\nvar lock = new AsyncLock({Promise: require('q')}); // Q\n\n// Add a task to the front of the queue waiting for a given lock\nlock.acquire(key, fn1, cb); // runs immediately\nlock.acquire(key, fn2, cb); // added to queue\nlock.acquire(key, priorityFn, cb, {skipQueue: true}); // jumps queue and runs before fn2\n```\n\n## Changelog\n\nSee [Changelog](./History.md)\n\n## Issues\n\nSee [issue tracker](https://github.com/rogierschouten/async-lock/issues).\n\n## License\n\nMIT, see [LICENSE](./LICENSE)\n","maintainers":[{"name":"rogierschouten","email":"rogier.schouten@gmail.com"}],"time":{"modified":"2023-12-22T19:44:34.700Z","created":"2015-01-13T10:24:34.925Z","0.1.0":"2015-01-13T10:24:34.925Z","0.1.1":"2015-01-13T10:36:31.707Z","0.1.2":"2015-01-13T10:43:42.796Z","0.2.0":"2015-02-21T09:24:40.181Z","0.2.1":"2015-02-21T09:36:44.013Z","0.3.0":"2015-03-06T16:03:34.352Z","0.3.1":"2015-04-15T06:41:05.705Z","0.3.2":"2015-05-08T03:51:50.246Z","0.3.3":"2015-05-19T07:47:23.501Z","0.3.4":"2015-06-09T08:58:49.408Z","0.3.5":"2015-06-15T09:52:01.825Z","0.3.6":"2015-09-07T06:39:22.470Z","0.3.7":"2015-09-25T15:13:14.214Z","0.3.8":"2015-09-25T19:27:19.169Z","0.3.9":"2016-11-30T20:36:35.579Z","0.3.10":"2017-06-27T18:39:47.974Z","1.0.0":"2017-06-29T21:34:37.906Z","1.1.0":"2017-10-17T06:32:32.144Z","1.1.1":"2018-02-13T23:33:26.576Z","1.1.2":"2018-02-26T19:21:10.636Z","1.1.3":"2018-06-08T06:19:45.790Z","1.1.4":"2019-02-02T11:00:31.792Z","1.2.0":"2019-03-13T13:11:10.182Z","1.2.1":"2019-07-13T12:02:53.714Z","1.2.2":"2019-07-15T20:16:34.877Z","1.2.3":"2020-05-11T18:33:13.919Z","1.2.4":"2020-05-12T17:35:44.395Z","1.2.5":"2020-12-06T14:47:49.130Z","1.2.6":"2020-12-06T20:49:08.056Z","1.2.7":"2021-01-04T17:54:23.909Z","1.2.8":"2021-01-04T17:57:13.689Z","1.3.0":"2021-04-27T21:57:24.069Z","1.3.1":"2022-02-04T20:44:32.577Z","1.3.2":"2022-06-25T09:49:03.650Z","1.4.0":"2022-10-29T10:22:06.394Z","1.4.1":"2023-12-22T19:44:34.520Z"},"homepage":"https://github.com/rogierschouten/async-lock","keywords":["lock","async","concurrency","critical","section","mutex"],"repository":{"type":"git","url":"git+https://github.com/rogierschouten/async-lock.git"},"contributors":[{"name":"rain1017","url":"https://github.com/rain1017"},{"name":"JonathanPicques","url":"https://github.com/JonathanPicques"},{"name":"Rogier Schouten","url":"https://github.com/rogierschouten"},{"name":"erikvold","url":"https://github.com/erikvold"},{"name":"Christian Passet","url":"https://github.com/thePunIssuer"},{"name":"Tanguy Krotoff","url":"https://github.com/tkrotoff"},{"name":"jtyers","url":"https://github.com/jtyers"},{"name":"Paul Roub","url":"https://github.com/paulroub"},{"name":"Geoff Whatley","url":"https://github.com/meatwallace"},{"name":"Patryk L.","url":"https://github.com/LosTigeros"},{"name":"Julian Saunderson","url":"https://github.com/bitrivers"},{"name":"Philipp Keck","url":"https://github.com/Philipp91"},{"name":"abozaralizadeh","url":"https://github.com/abozaralizadeh"},{"name":"ThePiz","url":"https://github.com/ThePiz"},{"name":"Luke Stead","url":"https://github.com/luke-stead-sonocent"},{"name":"Simeon Borko","url":"https://github.com/simeonborko"},{"name":"Tim Schmidt","url":"https://github.com/taschmidt"},{"name":"Motty Milshtein","url":"https://github.com/mottymilshtein"}],"author":{"name":"Rogier Schouten","email":"github@workingcode.ninja","url":"https://github.com/rogierschouten/"},"bugs":{"url":"https://github.com/rogierschouten/async-lock/issues"},"readmeFilename":"README.md","users":{"rain1017":true,"jimmykuo":true,"erikvold":true,"sopepos":true,"serge-nikitin":true,"koskokos":true,"adobnikar":true,"anypossible.w":true},"license":"MIT"}