{"_id":"tarn","_rev":"1719760","name":"tarn","description":"Simple and robust resource pool for node.js","dist-tags":{"latest":"3.0.2"},"maintainers":[{"name":"elhigu","email":""},{"name":"koskimas","email":"sami.koskimaki@vincit.com"},{"name":"tgriesser","email":"tgriesser10@gmail.com"},{"name":"wubzz","email":"wubzz94@hotmail.com"}],"time":{"modified":"2021-11-28T23:16:05.000Z","created":"2016-09-26T22:10:00.533Z","3.0.2":"2021-11-28T23:11:57.747Z","3.0.1":"2020-10-25T10:35:32.790Z","3.0.0":"2020-04-18T00:10:15.559Z","2.0.0":"2019-07-02T08:34:30.973Z","1.1.5":"2019-04-06T14:05:39.578Z","1.1.4":"2018-03-01T01:30:49.431Z","1.1.3":"2018-02-28T21:07:29.336Z","1.1.2":"2018-02-05T10:54:11.955Z","1.1.1":"2018-02-04T21:32:43.142Z","1.1.0":"2018-02-02T11:05:59.798Z","1.0.0":"2018-01-04T05:54:50.312Z","0.1.5":"2016-09-28T08:22:23.553Z","0.1.4":"2016-09-27T12:57:05.601Z","0.1.3":"2016-09-27T11:20:19.169Z","0.1.2":"2016-09-27T10:02:59.736Z","0.1.1":"2016-09-27T08:50:37.284Z","0.1.0":"2016-09-26T22:10:00.533Z"},"users":{},"author":{"name":"Sami Koskimäki","email":"sami.koskimaki@vincit.com","url":"https://github.com/koskimas"},"repository":{"type":"git","url":"git://github.com/vincit/tarn.js.git"},"versions":{"3.0.2":{"name":"tarn","version":"3.0.2","description":"Simple and robust resource pool for node.js","main":"dist/tarn.js","types":"dist/tarn.d.ts","license":"MIT","scripts":{"test":"mocha --slow 10 --timeout 5000 --reporter spec tests.js","test-bail":"mocha --slow 10 --timeout 5000 --reporter spec --bail tests.js","build":"tsc","clean":"rm -rf dist","prepublishOnly":"tsc","lint":"eslint --format codeframe \"src/**/*.ts\"","format":"prettier **/*.{js,ts} --write"},"author":{"name":"Sami Koskimäki","email":"sami.koskimaki@vincit.com","url":"https://github.com/koskimas"},"repository":{"type":"git","url":"git://github.com/vincit/tarn.js.git"},"engines":{"node":">=8.0.0"},"keywords":["pool","pooling","throttle"],"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.{js,ts}":["prettier --write","git add"]},"devDependencies":{"@types/node":"^10.17.17","@typescript-eslint/eslint-plugin":"^2.21.0","@typescript-eslint/parser":"^2.21.0","bluebird":"^3.7.2","eslint":"^6.8.0","eslint-config-prettier":"^6.10.0","eslint-plugin-prettier":"^3.1.2","expect.js":"^0.3.1","husky":"^1.3.1","lint-staged":"^9.5.0","mocha":"^7.1.0","prettier":"^1.19.1","typescript":"3.8.3"},"dependencies":{},"gitHead":"3aaae51c94eea7e73144a450deb4d9088635f79b","bugs":{"url":"https://github.com/vincit/tarn.js/issues"},"homepage":"https://github.com/vincit/tarn.js#readme","_id":"tarn@3.0.2","_nodeVersion":"16.0.0","_npmVersion":"7.11.1","dist":{"shasum":"73b6140fbb881b71559c4f8bfde3d9a4b3d27693","size":10852,"noattachment":false,"key":"/tarn/-/tarn-3.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/tarn/download/tarn-3.0.2.tgz"},"_npmUser":{"name":"elhigu","email":"mikael.lepisto@vincit.com"},"directories":{},"maintainers":[{"name":"elhigu","email":""},{"name":"koskimas","email":"sami.koskimaki@vincit.com"},{"name":"tgriesser","email":"tgriesser10@gmail.com"},{"name":"wubzz","email":"wubzz94@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tarn_3.0.2_1638141117613_0.747294544919157"},"_hasShrinkwrap":false,"publish_time":1638141117747,"_cnpm_publish_time":1638141117747},"3.0.1":{"name":"tarn","version":"3.0.1","description":"Simple and robust resource pool for node.js","main":"dist/tarn.js","types":"dist/tarn.d.ts","license":"MIT","scripts":{"test":"mocha --slow 10 --timeout 5000 --reporter spec tests.js","test-bail":"mocha --slow 10 --timeout 5000 --reporter spec --bail tests.js","build":"tsc","clean":"rm -rf dist","prepublishOnly":"tsc","lint":"eslint --format codeframe \"src/**/*.ts\"","format":"prettier **/*.{js,ts} --write"},"author":{"name":"Sami Koskimäki","email":"sami.koskimaki@vincit.com","url":"https://github.com/koskimas"},"repository":{"type":"git","url":"git://github.com/vincit/tarn.js.git"},"engines":{"node":">=8.0.0"},"keywords":["pool","pooling","throttle"],"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.{js,ts}":["prettier --write","git add"]},"devDependencies":{"@types/node":"^10.17.17","@typescript-eslint/eslint-plugin":"^2.21.0","@typescript-eslint/parser":"^2.21.0","bluebird":"^3.7.2","eslint":"^6.8.0","eslint-config-prettier":"^6.10.0","eslint-plugin-prettier":"^3.1.2","expect.js":"^0.3.1","husky":"^1.3.1","lint-staged":"^9.5.0","mocha":"^7.1.0","prettier":"^1.19.1","typescript":"3.8.3"},"dependencies":{},"gitHead":"0e7416a263f507150319a605c10c743104cc05b8","bugs":{"url":"https://github.com/vincit/tarn.js/issues"},"homepage":"https://github.com/vincit/tarn.js#readme","_id":"tarn@3.0.1","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"shasum":"ebac2c6dbc6977d34d4526e0a7814200386a8aec","size":10655,"noattachment":false,"key":"/tarn/-/tarn-3.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/tarn/download/tarn-3.0.1.tgz"},"maintainers":[{"name":"elhigu","email":""},{"name":"koskimas","email":"sami.koskimaki@vincit.com"},{"name":"tgriesser","email":"tgriesser10@gmail.com"},{"name":"wubzz","email":"wubzz94@hotmail.com"}],"_npmUser":{"name":"elhigu","email":"mikael.lepisto@vincit.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tarn_3.0.1_1603622132604_0.16531942571015645"},"_hasShrinkwrap":false,"publish_time":1603622132790,"_cnpm_publish_time":1603622132790},"3.0.0":{"name":"tarn","version":"3.0.0","description":"Simple and robust resource pool for node.js","main":"dist/tarn.js","types":"dist/tarn.d.ts","license":"MIT","scripts":{"test":"mocha --slow 10 --timeout 5000 --reporter spec tests.js","test-bail":"mocha --slow 10 --timeout 5000 --reporter spec --bail tests.js","build":"tsc","clean":"rm -rf dist","prepublishOnly":"tsc","lint":"eslint --format codeframe \"src/**/*.ts\"","format":"prettier **/*.{js,ts} --write"},"author":{"name":"Sami Koskimäki","email":"sami.koskimaki@vincit.com","url":"https://github.com/koskimas"},"repository":{"type":"git","url":"git://github.com/vincit/tarn.js.git"},"engines":{"node":">=8.0.0"},"keywords":["pool","pooling","throttle"],"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.{js,ts}":["prettier --write","git add"]},"devDependencies":{"@types/node":"^10.17.17","@typescript-eslint/eslint-plugin":"^2.21.0","@typescript-eslint/parser":"^2.21.0","bluebird":"^3.7.2","eslint":"^6.8.0","eslint-config-prettier":"^6.10.0","eslint-plugin-prettier":"^3.1.2","expect.js":"^0.3.1","husky":"^1.3.1","lint-staged":"^9.5.0","mocha":"^7.1.0","prettier":"^1.19.1","typescript":"3.8.3"},"dependencies":{},"gitHead":"b577cfc3b1e2f193c5a6a18645f5ac97dcc75600","bugs":{"url":"https://github.com/vincit/tarn.js/issues"},"homepage":"https://github.com/vincit/tarn.js#readme","_id":"tarn@3.0.0","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"shasum":"a4082405216c0cce182b8b4cb2639c52c1e870d4","size":10517,"noattachment":false,"key":"/tarn/-/tarn-3.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/tarn/download/tarn-3.0.0.tgz"},"maintainers":[{"name":"elhigu","email":""},{"name":"koskimas","email":"sami.koskimaki@vincit.com"},{"name":"tgriesser","email":"tgriesser10@gmail.com"},{"name":"wubzz","email":"wubzz94@hotmail.com"}],"_npmUser":{"name":"elhigu","email":"mikael.lepisto@vincit.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tarn_3.0.0_1587168615381_0.44685570245517225"},"_hasShrinkwrap":false,"publish_time":1587168615559,"_cnpm_publish_time":1587168615559},"2.0.0":{"name":"tarn","version":"2.0.0","description":"Simple and robust resource pool for node.js","main":"lib/tarn.js","types":"lib/tarn.d.ts","license":"MIT","scripts":{"test":"mocha --slow 10 --timeout 5000 --reporter spec tests.js","test-bail":"mocha --slow 10 --timeout 5000 --reporter spec --bail tests.js","build":"tsc","clean":"rm -rf lib","prepublishOnly":"tsc","format":"prettier **/*.{js,ts} --write"},"author":{"name":"Sami Koskimäki","email":"sami.koskimaki@vincit.com","url":"https://github.com/koskimas"},"repository":{"type":"git","url":"git://github.com/vincit/tarn.js.git"},"engines":{"node":">=8.0.0"},"keywords":["pool","pooling","throttle"],"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.{js,ts}":["prettier --write","git add"]},"devDependencies":{"@types/node":"^10.5.2","bluebird":"^3.5.3","expect.js":"^0.3.1","husky":"^1.3.1","lint-staged":"^8.0.4","mocha":"^5.2.0","prettier":"^1.13.7","typescript":"3.2.4"},"dependencies":{},"gitHead":"270a295d87b40be0252a11aaf06bda402e622fda","bugs":{"url":"https://github.com/vincit/tarn.js/issues"},"homepage":"https://github.com/vincit/tarn.js#readme","_id":"tarn@2.0.0","_npmVersion":"6.4.1","_nodeVersion":"8.10.0","_npmUser":{"name":"elhigu","email":"mikael.lepisto@vincit.com"},"dist":{"shasum":"c68499f69881f99ae955b4317ca7d212d942fdee","size":9060,"noattachment":false,"key":"/tarn/-/tarn-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/tarn/download/tarn-2.0.0.tgz"},"maintainers":[{"name":"elhigu","email":""},{"name":"koskimas","email":"sami.koskimaki@vincit.com"},{"name":"tgriesser","email":"tgriesser10@gmail.com"},{"name":"wubzz","email":"wubzz94@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tarn_2.0.0_1562056470858_0.5208130928016157"},"_hasShrinkwrap":false,"publish_time":1562056470973,"_cnpm_publish_time":1562056470973},"1.1.5":{"name":"tarn","version":"1.1.5","description":"Simple and robust resource pool for node.js","main":"lib/tarn.js","types":"lib/tarn.d.ts","license":"MIT","scripts":{"test":"mocha --slow 10 --timeout 5000 --reporter spec tests.js","test-bail":"mocha --slow 10 --timeout 5000 --reporter spec --bail tests.js","build":"tsc","clean":"rm -rf lib","prepublishOnly":"tsc","format":"prettier **/*.{js,ts} --write"},"author":{"name":"Sami Koskimäki","email":"sami.koskimaki@vincit.com","url":"https://github.com/koskimas"},"repository":{"type":"git","url":"git://github.com/vincit/tarn.js.git"},"engines":{"node":">=4.0.0"},"keywords":["pool","pooling","throttle"],"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.{js,ts}":["prettier --write","git add"]},"devDependencies":{"@types/node":"^10.5.2","bluebird":"^3.5.3","expect.js":"^0.3.1","husky":"^1.3.1","lint-staged":"^8.0.4","mocha":"^5.2.0","prettier":"^1.13.7","typescript":"3.2.4"},"dependencies":{},"gitHead":"d2553fe92d07616fbaa0fd2cc4913a100f445597","bugs":{"url":"https://github.com/vincit/tarn.js/issues"},"homepage":"https://github.com/vincit/tarn.js#readme","_id":"tarn@1.1.5","_npmVersion":"6.4.1","_nodeVersion":"8.10.0","_npmUser":{"name":"elhigu","email":"mikael.lepisto@vincit.com"},"dist":{"shasum":"7be88622e951738b9fa3fb77477309242cdddc2d","size":7625,"noattachment":false,"key":"/tarn/-/tarn-1.1.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/tarn/download/tarn-1.1.5.tgz"},"maintainers":[{"name":"elhigu","email":""},{"name":"koskimas","email":"sami.koskimaki@vincit.com"},{"name":"tgriesser","email":"tgriesser10@gmail.com"},{"name":"wubzz","email":"wubzz94@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tarn_1.1.5_1554559539423_0.6115447038639885"},"_hasShrinkwrap":false,"publish_time":1554559539578,"_cnpm_publish_time":1554559539578},"1.1.4":{"name":"tarn","version":"1.1.4","description":"Simple and robust resource pool for node.js","main":"lib/tarn.js","license":"MIT","scripts":{"test":"mocha --slow 10 --timeout 5000 --reporter spec tests.js","test-bail":"mocha --slow 10 --timeout 5000 --reporter spec --bail tests.js"},"author":{"name":"Sami Koskimäki","email":"sami.koskimaki@vincit.com","url":"https://github.com/koskimas"},"repository":{"type":"git","url":"git://github.com/vincit/tarn.js.git"},"engines":{"node":">=4.0.0"},"keywords":["pool","pooling","throttle"],"files":["README.md","LICENSE","lib/*"],"devDependencies":{"bluebird":"^3.5.1","expect.js":"^0.3.1","mocha":"^4.1.0"},"dependencies":{},"gitHead":"bf18700b1543d6a863c2f0ae0c2a34c8f6cd9db9","bugs":{"url":"https://github.com/vincit/tarn.js/issues"},"homepage":"https://github.com/vincit/tarn.js#readme","_id":"tarn@1.1.4","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"koskimas","email":"sami.koskimaki@vincit.com"},"dist":{"shasum":"aeeb85964b1afa0bbf381359c1167df237c27b6a","size":5900,"noattachment":false,"key":"/tarn/-/tarn-1.1.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/tarn/download/tarn-1.1.4.tgz"},"maintainers":[{"name":"elhigu","email":""},{"name":"koskimas","email":"sami.koskimaki@vincit.com"},{"name":"tgriesser","email":"tgriesser10@gmail.com"},{"name":"wubzz","email":"wubzz94@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tarn_1.1.4_1519867849331_0.5619752589036919"},"_hasShrinkwrap":false,"publish_time":1519867849431,"_cnpm_publish_time":1519867849431},"1.1.3":{"name":"tarn","version":"1.1.3","description":"Simple and robust resource pool for node.js","main":"lib/tarn.js","license":"MIT","scripts":{"test":"mocha --slow 10 --timeout 5000 --reporter spec tests.js","test-bail":"mocha --slow 10 --timeout 5000 --reporter spec --bail tests.js"},"author":{"name":"Sami Koskimäki","email":"sami.koskimaki@vincit.com","url":"https://github.com/koskimas"},"repository":{"type":"git","url":"git://github.com/vincit/tarn.js.git"},"engines":{"node":">=4.0.0"},"keywords":["pool","pooling","throttle"],"files":["README.md","LICENSE","lib/*"],"devDependencies":{"bluebird":"^3.5.1","expect.js":"^0.3.1","mocha":"^4.1.0"},"dependencies":{},"gitHead":"04ba822a7a4c753a81b993ba1158f541145e3af0","bugs":{"url":"https://github.com/vincit/tarn.js/issues"},"homepage":"https://github.com/vincit/tarn.js#readme","_id":"tarn@1.1.3","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"koskimas","email":"sami.koskimaki@vincit.com"},"dist":{"shasum":"ea4178afe99223bf5dbb3ca4ed30b89fbb1d78e9","size":5894,"noattachment":false,"key":"/tarn/-/tarn-1.1.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/tarn/download/tarn-1.1.3.tgz"},"maintainers":[{"name":"elhigu","email":""},{"name":"koskimas","email":"sami.koskimaki@vincit.com"},{"name":"tgriesser","email":"tgriesser10@gmail.com"},{"name":"wubzz","email":"wubzz94@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tarn_1.1.3_1519852049289_0.8514957038603488"},"_hasShrinkwrap":false,"publish_time":1519852049336,"_cnpm_publish_time":1519852049336},"1.1.2":{"name":"tarn","version":"1.1.2","description":"Simple and robust resource pool for node.js","main":"lib/tarn.js","license":"MIT","scripts":{"test":"mocha --slow 10 --timeout 5000 --reporter spec tests.js","test-bail":"mocha --slow 10 --timeout 5000 --reporter spec --bail tests.js"},"author":{"name":"Sami Koskimäki","email":"sami.koskimaki@vincit.com","url":"https://github.com/koskimas"},"repository":{"type":"git","url":"git://github.com/vincit/tarn.js.git"},"engines":{"node":">=4.0.0"},"keywords":["pool","pooling","throttle"],"files":["README.md","LICENSE","lib/*"],"devDependencies":{"bluebird":"^3.5.1","expect.js":"^0.3.1","mocha":"^4.1.0"},"dependencies":{},"gitHead":"6ec3642accfbe5c4d7446285e0415feaf0b1a065","bugs":{"url":"https://github.com/vincit/tarn.js/issues"},"homepage":"https://github.com/vincit/tarn.js#readme","_id":"tarn@1.1.2","_shasum":"22e66b505ffc6c8f9d13616e82c9b19a3261d31b","_from":".","_npmVersion":"2.14.2","_nodeVersion":"4.0.0","_npmUser":{"name":"koskimas","email":"sami.koskimaki@vincit.com"},"dist":{"shasum":"22e66b505ffc6c8f9d13616e82c9b19a3261d31b","size":5799,"noattachment":false,"key":"/tarn/-/tarn-1.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/tarn/download/tarn-1.1.2.tgz"},"maintainers":[{"name":"elhigu","email":""},{"name":"koskimas","email":"sami.koskimaki@vincit.com"},{"name":"tgriesser","email":"tgriesser10@gmail.com"},{"name":"wubzz","email":"wubzz94@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tarn-1.1.2.tgz_1517828051065_0.3129298484418541"},"directories":{},"publish_time":1517828051955,"_hasShrinkwrap":false,"_cnpm_publish_time":1517828051955},"1.1.1":{"name":"tarn","version":"1.1.1","description":"Simple and robust resource pool for node.js","main":"lib/tarn.js","license":"MIT","scripts":{"test":"mocha --slow 10 --timeout 5000 --reporter spec tests.js","test-bail":"mocha --slow 10 --timeout 5000 --reporter spec --bail tests.js"},"author":{"name":"Sami Koskimäki","email":"sami.koskimaki@vincit.com","url":"https://github.com/koskimas"},"repository":{"type":"git","url":"git://github.com/vincit/tarn.js.git"},"engines":{"node":">=4.0.0"},"keywords":["pool","pooling","throttle"],"files":["README.md","LICENSE","lib/*"],"devDependencies":{"bluebird":"^3.5.1","expect.js":"^0.3.1","mocha":"^4.1.0"},"dependencies":{},"gitHead":"fd80bd5f5bfc99009ccc012366c8c5f1bd63e1c7","bugs":{"url":"https://github.com/vincit/tarn.js/issues"},"homepage":"https://github.com/vincit/tarn.js#readme","_id":"tarn@1.1.1","_shasum":"592e7a764c5e39abcce37bd4834a1b8c0bba6025","_from":".","_npmVersion":"2.14.2","_nodeVersion":"4.0.0","_npmUser":{"name":"koskimas","email":"sami.koskimaki@vincit.com"},"dist":{"shasum":"592e7a764c5e39abcce37bd4834a1b8c0bba6025","size":5901,"noattachment":false,"key":"/tarn/-/tarn-1.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/tarn/download/tarn-1.1.1.tgz"},"maintainers":[{"name":"elhigu","email":""},{"name":"koskimas","email":"sami.koskimaki@vincit.com"},{"name":"tgriesser","email":"tgriesser10@gmail.com"},{"name":"wubzz","email":"wubzz94@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tarn-1.1.1.tgz_1517779962170_0.7730869855731726"},"directories":{},"publish_time":1517779963142,"_hasShrinkwrap":false,"_cnpm_publish_time":1517779963142},"1.1.0":{"name":"tarn","version":"1.1.0","description":"Simple and robust resource pool for node.js","main":"lib/tarn.js","license":"MIT","scripts":{"test":"mocha --slow 10 --timeout 5000 --reporter spec tests.js","test-bail":"mocha --slow 10 --timeout 5000 --reporter spec --bail tests.js"},"author":{"name":"Sami Koskimäki","email":"sami.koskimaki@vincit.com","url":"https://github.com/koskimas"},"repository":{"type":"git","url":"git://github.com/vincit/tarn.js.git"},"engines":{"node":">=6.0.0"},"keywords":["pool","pooling","throttle"],"files":["README.md","LICENSE","lib/*"],"devDependencies":{"bluebird":"^3.5.1","expect.js":"^0.3.1","mocha":"^4.1.0"},"dependencies":{},"gitHead":"3ec7869042c51b39a9d1325cc5b30bd81acd4714","bugs":{"url":"https://github.com/vincit/tarn.js/issues"},"homepage":"https://github.com/vincit/tarn.js#readme","_id":"tarn@1.1.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"koskimas","email":"sami.koskimaki@vincit.com"},"dist":{"shasum":"ef824d1cbb516e8eef8dbf5b24630b77bc1555f3","size":5814,"noattachment":false,"key":"/tarn/-/tarn-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/tarn/download/tarn-1.1.0.tgz"},"maintainers":[{"name":"elhigu","email":""},{"name":"koskimas","email":"sami.koskimaki@vincit.com"},{"name":"tgriesser","email":"tgriesser10@gmail.com"},{"name":"wubzz","email":"wubzz94@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tarn-1.1.0.tgz_1517569558924_0.22986174072138965"},"directories":{},"publish_time":1517569559798,"_hasShrinkwrap":false,"_cnpm_publish_time":1517569559798},"1.0.0":{"name":"tarn","version":"1.0.0","description":"Simple and robust resource pool for node.js","main":"lib/tarn.js","license":"MIT","scripts":{"test":"mocha --slow 10 --timeout 5000 --reporter spec tests.js","test-bail":"mocha --slow 10 --timeout 5000 --reporter spec --bail tests.js"},"author":{"name":"Sami Koskimäki","email":"sami.koskimaki@vincit.com","url":"https://github.com/koskimas"},"repository":{"type":"git","url":"git://github.com/vincit/tarn.js.git"},"engines":{"node":">=6.0.0"},"keywords":["pool","pooling","throttle"],"files":["README.md","LICENSE","lib/*"],"devDependencies":{"bluebird":"^3.5.1","expect.js":"^0.3.1","mocha":"^4.1.0"},"dependencies":{},"gitHead":"84195c9fc81f175dcee3dc18f9f9ba1ecc439170","bugs":{"url":"https://github.com/vincit/tarn.js/issues"},"homepage":"https://github.com/vincit/tarn.js#readme","_id":"tarn@1.0.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"koskimas","email":"sami.koskimaki@vincit.com"},"dist":{"shasum":"fafff6ff17f7f4fe1ce6713f75143525bde264c3","size":5541,"noattachment":false,"key":"/tarn/-/tarn-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/tarn/download/tarn-1.0.0.tgz"},"maintainers":[{"name":"elhigu","email":""},{"name":"koskimas","email":"sami.koskimaki@vincit.com"},{"name":"tgriesser","email":"tgriesser10@gmail.com"},{"name":"wubzz","email":"wubzz94@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tarn-1.0.0.tgz_1515045290183_0.5587976861279458"},"directories":{},"publish_time":1515045290312,"_hasShrinkwrap":false,"_cnpm_publish_time":1515045290312},"0.1.5":{"name":"tarn","version":"0.1.5","description":"Simple and robust resource pool for node.js","main":"index.js","license":"MIT","scripts":{"test":"mocha --slow 10 --timeout 5000 --reporter spec tests.js","test-bail":"mocha --slow 10 --timeout 5000 --reporter spec --bail tests.js"},"author":{"name":"Sami Koskimäki","email":"sami.koskimaki@vincit.com","url":"https://github.com/koskimas"},"repository":{"type":"git","url":"git://github.com/vincit/tarn.js.git"},"keywords":["pool","pooling","throttle"],"files":["README.md","LICENSE","index.js"],"devDependencies":{"expect.js":"^0.3.1","mocha":"^3.0.2"},"dependencies":{"bluebird":"^3.4.6"},"gitHead":"7771dd3bea69f65f9822e6d2925151cfe52dc280","bugs":{"url":"https://github.com/vincit/tarn.js/issues"},"homepage":"https://github.com/vincit/tarn.js#readme","_id":"tarn@0.1.5","_shasum":"b73add52daae823461563d4e27acf5ccaa8934da","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.4.0","_npmUser":{"name":"koskimas","email":"sami.koskimaki@vincit.com"},"dist":{"shasum":"b73add52daae823461563d4e27acf5ccaa8934da","size":4413,"noattachment":false,"key":"/tarn/-/tarn-0.1.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/tarn/download/tarn-0.1.5.tgz"},"maintainers":[{"name":"elhigu","email":""},{"name":"koskimas","email":"sami.koskimaki@vincit.com"},{"name":"tgriesser","email":"tgriesser10@gmail.com"},{"name":"wubzz","email":"wubzz94@hotmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/tarn-0.1.5.tgz_1475050942957_0.25201451359316707"},"directories":{},"publish_time":1475050943553,"_cnpm_publish_time":1475050943553,"_hasShrinkwrap":false},"0.1.4":{"name":"tarn","version":"0.1.4","description":"Simple and robust resource pool for node.js","main":"index.js","license":"MIT","scripts":{"test":"mocha --slow 10 --timeout 5000 --reporter spec tests.js","test-bail":"mocha --slow 10 --timeout 5000 --reporter spec --bail tests.js"},"author":{"name":"Sami Koskimäki","email":"sami.koskimaki@vincit.com","url":"https://github.com/koskimas"},"repository":{"type":"git","url":"git://github.com/vincit/tarn.js.git"},"keywords":["pool","pooling","throttle"],"files":["README.md","LICENSE","index.js"],"devDependencies":{"expect.js":"^0.3.1","mocha":"^3.0.2"},"dependencies":{"bluebird":"^3.4.6"},"gitHead":"d0b63a70e598f0def324a6f2bd42802c3bf4f041","bugs":{"url":"https://github.com/vincit/tarn.js/issues"},"homepage":"https://github.com/vincit/tarn.js#readme","_id":"tarn@0.1.4","_shasum":"beed21f371ee41e552330d72d2fe54956208e588","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.4.0","_npmUser":{"name":"koskimas","email":"sami.koskimaki@vincit.com"},"dist":{"shasum":"beed21f371ee41e552330d72d2fe54956208e588","size":4315,"noattachment":false,"key":"/tarn/-/tarn-0.1.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/tarn/download/tarn-0.1.4.tgz"},"maintainers":[{"name":"elhigu","email":""},{"name":"koskimas","email":"sami.koskimaki@vincit.com"},{"name":"tgriesser","email":"tgriesser10@gmail.com"},{"name":"wubzz","email":"wubzz94@hotmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/tarn-0.1.4.tgz_1474981024107_0.9749206500127912"},"directories":{},"publish_time":1474981025601,"_cnpm_publish_time":1474981025601,"_hasShrinkwrap":false},"0.1.3":{"name":"tarn","version":"0.1.3","description":"Simple and robust resource pool for node.js","main":"index.js","license":"MIT","scripts":{"test":"mocha --slow 10 --timeout 5000 --reporter spec tests.js","test-bail":"mocha --slow 10 --timeout 5000 --reporter spec --bail tests.js"},"author":{"name":"Sami Koskimäki","email":"sami.koskimaki@vincit.com","url":"https://github.com/koskimas"},"repository":{"type":"git","url":"git://github.com/vincit/tarn.js.git"},"keywords":["pool","pooling","throttle"],"files":["README.md","LICENSE","index.js"],"devDependencies":{"expect.js":"^0.3.1","mocha":"^3.0.2"},"dependencies":{"bluebird":"^3.4.6"},"gitHead":"09e911feeda857dd0047fb28c1bfa7a12cf1f392","bugs":{"url":"https://github.com/vincit/tarn.js/issues"},"homepage":"https://github.com/vincit/tarn.js#readme","_id":"tarn@0.1.3","_shasum":"2d056232856259b0e3a62f896af7286df4c79c97","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.4.0","_npmUser":{"name":"koskimas","email":"sami.koskimaki@vincit.com"},"dist":{"shasum":"2d056232856259b0e3a62f896af7286df4c79c97","size":4312,"noattachment":false,"key":"/tarn/-/tarn-0.1.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/tarn/download/tarn-0.1.3.tgz"},"maintainers":[{"name":"elhigu","email":""},{"name":"koskimas","email":"sami.koskimaki@vincit.com"},{"name":"tgriesser","email":"tgriesser10@gmail.com"},{"name":"wubzz","email":"wubzz94@hotmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tarn-0.1.3.tgz_1474975217276_0.5070517659187317"},"directories":{},"publish_time":1474975219169,"_cnpm_publish_time":1474975219169,"_hasShrinkwrap":false},"0.1.2":{"name":"tarn","version":"0.1.2","description":"Simple and robust resource pool for node.js","main":"index.js","license":"MIT","scripts":{"test":"mocha --slow 10 --timeout 5000 --reporter spec tests.js","test-bail":"mocha --slow 10 --timeout 5000 --reporter spec --bail tests.js"},"author":{"name":"Sami Koskimäki","email":"sami.koskimaki@vincit.com","url":"https://github.com/koskimas"},"repository":{"type":"git","url":"git://github.com/vincit/tarn.js.git"},"keywords":["pool","pooling","throttle"],"files":["README.md","LICENSE","index.js"],"devDependencies":{"expect.js":"^0.3.1","mocha":"^3.0.2"},"dependencies":{"bluebird":"^3.4.6"},"gitHead":"82ba89783a55bce5e409ce080f0ffcdb0a5ff68d","bugs":{"url":"https://github.com/vincit/tarn.js/issues"},"homepage":"https://github.com/vincit/tarn.js#readme","_id":"tarn@0.1.2","_shasum":"2c0d4b6f0941a90d9e4e72d3c43f16e9a06cd47d","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.4.0","_npmUser":{"name":"koskimas","email":"sami.koskimaki@vincit.com"},"dist":{"shasum":"2c0d4b6f0941a90d9e4e72d3c43f16e9a06cd47d","size":4010,"noattachment":false,"key":"/tarn/-/tarn-0.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/tarn/download/tarn-0.1.2.tgz"},"maintainers":[{"name":"elhigu","email":""},{"name":"koskimas","email":"sami.koskimaki@vincit.com"},{"name":"tgriesser","email":"tgriesser10@gmail.com"},{"name":"wubzz","email":"wubzz94@hotmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/tarn-0.1.2.tgz_1474970578325_0.25843495642766356"},"directories":{},"publish_time":1474970579736,"_cnpm_publish_time":1474970579736,"_hasShrinkwrap":false},"0.1.1":{"name":"tarn","version":"0.1.1","description":"Simple and robust resource pool for node.js","main":"index.js","license":"MIT","scripts":{"test":"mocha --slow 10 --timeout 5000 --reporter spec tests.js","test-bail":"mocha --slow 10 --timeout 5000 --reporter spec --bail tests.js"},"author":{"name":"Sami Koskimäki","email":"sami.koskimaki@vincit.com","url":"https://github.com/koskimas"},"repository":{"type":"git","url":"git://github.com/vincit/tarn.js.git"},"keywords":["pool","pooling","throttle"],"files":["README.md","LICENSE","index.js"],"devDependencies":{"expect.js":"^0.3.1","mocha":"^3.0.2"},"dependencies":{"bluebird":"^3.4.6"},"gitHead":"ab7355793221dc2db747a7f93852ff60ad20acc2","bugs":{"url":"https://github.com/vincit/tarn.js/issues"},"homepage":"https://github.com/vincit/tarn.js#readme","_id":"tarn@0.1.1","_shasum":"d8050516778b5b1571407ab2dc4ac986bc136cca","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.4.0","_npmUser":{"name":"koskimas","email":"sami.koskimaki@vincit.com"},"dist":{"shasum":"d8050516778b5b1571407ab2dc4ac986bc136cca","size":3988,"noattachment":false,"key":"/tarn/-/tarn-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/tarn/download/tarn-0.1.1.tgz"},"maintainers":[{"name":"elhigu","email":""},{"name":"koskimas","email":"sami.koskimaki@vincit.com"},{"name":"tgriesser","email":"tgriesser10@gmail.com"},{"name":"wubzz","email":"wubzz94@hotmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tarn-0.1.1.tgz_1474966235683_0.9089838343206793"},"directories":{},"publish_time":1474966237284,"_cnpm_publish_time":1474966237284,"_hasShrinkwrap":false},"0.1.0":{"name":"tarn","version":"0.1.0","description":"Simple and robust resource pool for node.js","main":"index.js","license":"MIT","scripts":{"test":"mocha --slow 10 --timeout 5000 --reporter spec tests.js"},"author":{"name":"Sami Koskimäki","email":"sami.koskimaki@vincit.com","url":"https://github.com/koskimas"},"repository":{"type":"git","url":"git://github.com/vincit/tarn.js.git"},"keywords":["pool","pooling","throttle"],"files":["README.md","LICENSE","index.js"],"devDependencies":{"expect.js":"^0.3.1","mocha":"^3.0.2"},"dependencies":{"bluebird":"^3.4.6"},"gitHead":"d47c8a5bdc5214078b256ac998b63cf4f5c09771","bugs":{"url":"https://github.com/vincit/tarn.js/issues"},"homepage":"https://github.com/vincit/tarn.js#readme","_id":"tarn@0.1.0","_shasum":"c168ed0164644578f8622bd5674094d1a1f30bce","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.4.0","_npmUser":{"name":"koskimas","email":"sami.koskimaki@vincit.com"},"dist":{"shasum":"c168ed0164644578f8622bd5674094d1a1f30bce","size":3610,"noattachment":false,"key":"/tarn/-/tarn-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/tarn/download/tarn-0.1.0.tgz"},"maintainers":[{"name":"elhigu","email":""},{"name":"koskimas","email":"sami.koskimaki@vincit.com"},{"name":"tgriesser","email":"tgriesser10@gmail.com"},{"name":"wubzz","email":"wubzz94@hotmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/tarn-0.1.0.tgz_1474927799141_0.16747787175700068"},"directories":{},"publish_time":1474927800533,"_cnpm_publish_time":1474927800533,"_hasShrinkwrap":false}},"readme":"[![Build Status](https://travis-ci.org/Vincit/tarn.js.svg?branch=master)](https://travis-ci.org/Vincit/tarn.js)\n\n## Why yet another resource pool?\n\nTarn is focused on robustness and ability to recover from errors. Tarn has timeouts for all operations\nthat can fail or timeout so that you should never end up with pool full of crap. Tarn has a comprehensive\ntest suite and we are committed to adding tests and fixing all bugs that are found.\n\nTarn will always remain simple.\n\n## Install\n\n```\nnpm install tarn\n```\n\n## Usage\n\n```js\nconst { Pool, TimeoutError } = require('tarn');\n\nconst pool = new Pool({\n  // Function that creates a resource. You can either pass the resource\n  // to the callback(error, resource) or return a promise that resolves the resource\n  // (but not both) Callback syntax will be deprecated at some point.\n  create: cb => {\n    cb(null, new SomeResource());\n  },\n\n  // Validates a connection before it is used. Return true or false\n  // from it. If false is returned, the resource is destroyed and\n  // another one is acquired. Should return a Promise if validate is\n  // an async function.\n  validate: resource => {\n    return true;\n  },\n\n  // Function that destroys a resource, should return a promise if\n  // destroying is an asynchronous operation.\n  destroy: someResource => {\n    someResource.cleanup();\n  },\n\n  // logger function, noop by default\n  log: (message, logLevel) => console.log(`${logLevel}: ${message}`)\n\n  // minimum size\n  min: 2,\n\n  // maximum size\n  max: 10,\n\n  // acquire promises are rejected after this many milliseconds\n  // if a resource cannot be acquired\n  acquireTimeoutMillis: 30000,\n\n  // create operations are cancelled after this many milliseconds\n  // if a resource cannot be acquired\n  createTimeoutMillis: 30000,\n\n  // destroy operations are awaited for at most this many milliseconds\n  // new resources will be created after this timeout\n  destroyTimeoutMillis: 5000,\n\n  // free resouces are destroyed after this many milliseconds\n  idleTimeoutMillis: 30000,\n\n  // how often to check for idle resources to destroy\n  reapIntervalMillis: 1000,\n\n  // how long to idle after failed create before trying again\n  createRetryIntervalMillis: 200,\n\n  // If true, when a create fails, the first pending acquire is\n  // rejected with the error. If this is false (the default) then\n  // create is retried until acquireTimeoutMillis milliseconds has\n  // passed.\n  propagateCreateError: false\n});\n\n// acquires a resource. The promise is rejected with `tarn.TimeoutError`\n// after `acquireTimeoutMillis` if a resource could not be acquired.\nconst acquire = pool.acquire();\n\n// acquire can be aborted using the abort method.\n// If acquire had triggered creating a new resource in the pool\n// creation will continue and it is not aborted.\nacquire.abort();\n\n// the acquire object has a promise property that gets resolved with\n// the acquired resource\ntry {\n  const resource = await acquire.promise;\n} catch (err) {\n  // if the acquire times out an error of class TimeoutError is thrown\n  if (err instanceof TimeoutError) {\n    console.log('timeout');\n  }\n}\n\n// releases the resource.\npool.release(resource);\n\n// returns the number of non-free resources\npool.numUsed();\n\n// returns the number of free resources\npool.numFree();\n\n// how many acquires are waiting for a resource to be released\npool.numPendingAcquires();\n\n// how many asynchronous create calls are running\npool.numPendingCreates();\n\n// waits for all resources to be returned to the pool and destroys them.\n// pool cannot be used after this.\nawait pool.destroy();\n\n// The following examples add synchronous event handlers. For example, to\n// allow externally collecting pool behaviour diagnostic data.\n// If any of these hooks fail, all errors are caught and warnings are logged.\n\n// resource is acquired from pool\npool.on('acquireRequest', eventId => {});\npool.on('acquireSuccess', (eventId, resource) => {});\npool.on('acquireFail', (eventId, err) => {});\n\n// resource returned to pool\npool.on('release', resource => {});\n\n// resource was created and added to the pool\npool.on('createRequest', eventId => {});\npool.on('createSuccess', (eventId, resource) => {});\npool.on('createFail', (eventId, err) => {});\n\n// resource is destroyed and evicted from pool\n// resource may or may not be invalid when destroySuccess / destroyFail is called\npool.on('destroyRequest', (eventId, resource) => {});\npool.on('destroySuccess', (eventId, resource) => {});\npool.on('destroyFail', (eventId, resource, err) => {});\n\n// when internal reaping event clock is activated / deactivated\npool.on('startReaping', () => {});\npool.on('stopReaping', () => {});\n\n// pool is destroyed (after poolDestroySuccess all event handlers are also cleared)\npool.on('poolDestroyRequest', eventId => {});\npool.on('poolDestroySuccess', eventId => {});\n\n// remove single event listener\npool.removeListener(eventName, listener);\n\n// remove all listeners from an event\npool.removeAllListeners(eventName);\n```\n\n## Changelog\n\n### Master\n\n### 3.0.2 2021-11-29\n\n- Valid resources with rejected acquires are returned to the pool #68\n\n### 3.0.1 2020-10-25\n\n- Added triggering missing createFail event on timeout error - fixes #57\n\n### 3.0.0 2020-04-18\n\n- Async validation support, now validation resource function can return a promise #45\n- Fixed releasing abandoned resource after creation when create timeout #48\n\nReleased as major version, because async validation support did require lots of internal changes, which may cause subtle difference in behavior.\n\n### 2.0.0 2019-06-02\n\n- Accidentally published breaking changes in 1.2.0. Unpublished it and published again with correct version number 2.0.0 #33\n\n### 1.2.0 2019-06-02 (UNPUBLISHED)\n\n- Passing unknown options throws an error #19 #32\n- Diagnostic event handlers to allow monitoring pool behaviour #14 #23\n- Dropped node 6 support #25 #28\n- pool.destroy() now always waits for all pending destroys to finish before resolving #29\n\n### 1.1.5 2019-04-06\n\n- Added changelog #22\n- Handle opt.destroy() being a promise with destroyTimeout #16\n- Explicitly silence bluebird warnings #17\n- Add strict typings via TypeScript #10\n","_attachments":{},"homepage":"https://github.com/vincit/tarn.js#readme","bugs":{"url":"https://github.com/vincit/tarn.js/issues"},"license":"MIT"}