{"versions":{"0.0.1":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"0.0.1","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","test":"mocha"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","defer","deferred"],"devDependencies":{"@types/mocha":"^2.2.42","chai":"^3.5","mocha":"^3","pre-commit":"^1.1","typescript":"^2.5.2"},"dependencies":{"throat":"^4.1.0"},"gitHead":"4292719b77215269fa3d1e1b84690a9c78048666","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@0.0.1","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-1bxZab4R56yYeAZGbz2DQLlnNOyP72ISY+HrPpyHQBJCNkLehoxoX3y89OsJ1iz0Dcwp2ODEgolBO0p5oVaBEQ==","shasum":"34c689dd80054572995bf55b4336d422107ed20e","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-0.0.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDixUU6XdbvyMnNbxlrxDZnO0zsfD/mdu6uadJkojK7PQIhAJMtVhvdZKXc9TNLEl9chn2Zi6ggoZtLcVu4yZIPU2iG"}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already-0.0.1.tgz_1505235946914_0.850465027615428"},"directories":{},"contributors":[]},"0.0.2":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"0.0.2","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","test":"mocha"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","defer","deferred"],"devDependencies":{"@types/mocha":"^2.2.42","chai":"^3.5","mocha":"^3","pre-commit":"^1.1","typescript":"^2.5.2"},"dependencies":{"throat":"^4.1.0"},"gitHead":"3d9db12582f2d8c0c9a14ebc61dcbf76467a3feb","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@0.0.2","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-g7ctmtKyJXM9hzkWUO5xLaOHrMf05485KD2K+e1JEHChkiJygQIRqXhHjpgL+Lfy1U9oz96MLTj6Z5dGWx6YKA==","shasum":"278ad07de3fcbbef469b6779922271f56137c247","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-0.0.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDp8NC9o1W0cP69FZX5ZDYlFo88wwY3GgZ3HpyMHZksWQIgIHg8yMN2gPER/qu+8ToQgfBlm6+Jj7EndBiOPVdmEi4="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already-0.0.2.tgz_1505237693016_0.3642682917416096"},"directories":{},"contributors":[]},"0.1.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"0.1.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","test":"mocha"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","defer","deferred"],"devDependencies":{"@types/mocha":"^2.2.42","chai":"^3.5","mocha":"^3","pre-commit":"^1.1","typescript":"^2.5.2"},"dependencies":{"throat":"^4.1.0"},"gitHead":"76e28a830960b42e2101a87bb6b472c50f07dbd1","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@0.1.0","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-PTuEDub9EFaiz2DB0RBYq5icm0qBExX80y7+UkP+sC8WFi8zcC+RyD+HzQR5ma/DYOlF/8t8BbYJYfwaq6Fuyw==","shasum":"591bc9983f7e1431d45ff4faa8859057a012862c","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-0.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCiHNzu4CuaWex2JuPIDFivEehdHfJ1tzITcfES+Vs++AIhAJm8u7F6AXZZsLg/gv7Et5OpMO3gcFTcBTg97n4RUK0m"}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already-0.1.0.tgz_1505308217781_0.3077139309607446"},"directories":{},"contributors":[]},"0.2.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"0.2.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","test":"mocha"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","defer","deferred"],"devDependencies":{"@types/mocha":"2.x","chai":"3.x","mocha":"3.x","pre-commit":"1.x","sinon":"3.x","typescript":"2.5.x"},"dependencies":{"throat":"4.x"},"gitHead":"9d177bb37cb120d108c8f8dda8dd9c1e2869d061","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@0.2.0","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-TUMnT+AHQkwiuJOC0YR2id12xmyvkdrfhwRmnqoKtK5OFzyKmqPEucWQM5zxxPY118/+FD7XSdkzqVSeOF+kIw==","shasum":"b6ae216cdc1c4f43aa40796ee5c3270f3eaab154","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-0.2.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFoubuiLGwdwqAWigcI4zcDgMG5f6sCq45C9flOskU8BAiEApC/uZ56SWqwrj2nbSW+xxkH6v+0OihjhAPnfgj5tcJA="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already-0.2.0.tgz_1505382797726_0.6410458099562675"},"directories":{},"contributors":[]},"0.3.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"0.3.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","test":"mocha"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","defer","deferred"],"devDependencies":{"@types/mocha":"2.x","chai":"3.x","mocha":"3.x","pre-commit":"1.x","sinon":"3.x","typescript":"2.5.x"},"dependencies":{"throat":"4.x"},"gitHead":"9e76ab28414e87f38585110b074fa6fc14a7202f","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@0.3.0","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-ZPSDtK7grXHJ/ns5F/rEaJrR1Z2zqZuVZTb7AHb4F2WxFhY33Bcq2vtlDasP8nhRhG8wxDx3yK5xJkT6mgWGZA==","shasum":"1081b4a8eb8d81ad95c40013f6536f19f0980825","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-0.3.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD86/d2u0Uje5fUMID+Ma/CQsYcbnn51Bf6TsSRw8TB2QIhANO3IyesWk+KjbLMDydWr0g/HCh7GugTjVr5NMNvnYbO"}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already-0.3.0.tgz_1505388408217_0.9496935121715069"},"directories":{},"contributors":[]},"0.3.1":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"0.3.1","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","test":"mocha"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","defer","deferred"],"devDependencies":{"@types/mocha":"2.x","chai":"3.x","mocha":"3.x","pre-commit":"1.x","sinon":"3.x","typescript":"2.5.x"},"dependencies":{"throat":"4.x"},"gitHead":"5d887730e5fb2bb417ca39efb55469c5d2d9286b","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@0.3.1","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-ekZBqB8CDkogFEgWaDPuEwTtZAFi+tsi8QEHaCZuuG5NCkwrc5iHIQjPnQG/jFfZJ1PXhJ9nk/VIftZj1f9wng==","shasum":"9e00591ad3df21779c4500e5ea1c675c972cf00e","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-0.3.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHDjcAeZ5NVLrr8Op43xERzBTh3lhEpDZFdvWVXDP4YDAiA4nVCYSlK34vFR1XVzk5DMN6UtnWo48+4lbBhevReTgw=="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already-0.3.1.tgz_1505389197425_0.5104775195941329"},"directories":{},"contributors":[]},"0.4.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"0.4.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","test":"mocha"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","defer","deferred"],"devDependencies":{"@types/mocha":"2.x","chai":"3.x","mocha":"3.x","pre-commit":"1.x","sinon":"3.x","typescript":"2.5.x"},"dependencies":{"throat":"4.x"},"gitHead":"09066d9cb34147b71cff984fdc393f2737c4f4b3","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@0.4.0","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-l+TpKRI9z+wx7zP7jVZD5JVPElpjv5jnZAfZugmVOwRoJbzbmfxEYybGPTvIslvh501CHgURGN4MlzssDQOt/Q==","shasum":"99dc5bba6f2ee4b77b05a498d0a30ddffa0e5376","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-0.4.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA9dCqNCc/GiOyGH2k1ddK2xeO2Bm5jfwa+24oX5k9iAAiEA83uL5psxFB+Ja/IjmTFEwR5m7h7G6TWMRMo+58vb1lY="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already-0.4.0.tgz_1505394680146_0.7052472811192274"},"directories":{},"contributors":[]},"0.5.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"0.5.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","test":"mocha"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","defer","deferred"],"devDependencies":{"@types/mocha":"2.x","chai":"3.x","mocha":"3.x","pre-commit":"1.x","sinon":"3.x","typescript":"2.5.x"},"dependencies":{"throat":"4.x"},"gitHead":"9234e2f741cc421efb18bf10b40566e6eba91019","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@0.5.0","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-yZ3O3YT+Z6AoIkRG1NCT+A2+LEXjukxbeADR+QwPlthkWydJ8H/kundLJ6p3q1Hb9mkmmiBcg/zy1aJKi9wu9w==","shasum":"47823c2037726c2f7552eae94fdbe71486c9563a","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-0.5.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHTP2rn5eADAwu619m8IUavdNZiM7SLcDLyrw79Q/1FeAiEAtSRybNJLngwiQjHx+xEJvzuqn6v6LEcUYHdll8rkPKQ="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already-0.5.0.tgz_1505462103730_0.8283943796996027"},"directories":{},"contributors":[]},"0.6.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"0.6.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","test":"mocha"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","defer","deferred"],"devDependencies":{"@types/mocha":"2.x","chai":"3.x","mocha":"3.x","pre-commit":"1.x","sinon":"3.x","typescript":"2.5.x"},"dependencies":{"throat":"4.x"},"gitHead":"59e3be1c70609e4528b6855fbe0b1fd454d42852","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@0.6.0","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-Ygu1XFArFXUUchffZDgcAi8Z3WXCDar45UtzNoono54nJZRmU3FHMtMiC8b/6IJH4axblV8YtZ2Wyy3Bocps2w==","shasum":"740240ea815c300c6414b19eb76af014aef15919","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-0.6.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzYXuxZwWxqYpLmVAaZ1DTqI1Bp02sycOnuekMj2RUcgIgYM/VNI/XVocK6qgM8MG/wJxi/hC063Gt+qmtrH461NU="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already-0.6.0.tgz_1505721853140_0.3396248745266348"},"directories":{},"contributors":[]},"0.7.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"0.7.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","test":"mocha"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","defer","deferred"],"devDependencies":{"@types/mocha":"2.x","chai":"3.x","mocha":"3.x","pre-commit":"1.x","sinon":"3.x","typescript":"2.5.x"},"dependencies":{"throat":"4.x"},"gitHead":"05f92f69fe7e340f5b7d80c5cfb5f46e124e2963","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@0.7.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-i1niDQYXxAwQ9evWpbUVyJUbIRfxhXREoBloG18ilJaPJlpAU5jsVvXLjrGTBddVLZe/aRdM63yJJ+fToYyk0Q==","shasum":"68e52005060a2da1c6dffcfce7efe44143896509","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-0.7.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCs0GPt6eBh8/M6YIjiyXnPBynwErYz7Zk8S0g1udvrjQIhANrVA/+OWhP0U5I4WFrBVcA5M6qLkoX+UAti+gpFCiPD"}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already-0.7.0.tgz_1510223486171_0.2667841271031648"},"directories":{},"contributors":[]},"0.7.1":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"0.7.1","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","test":"istanbul cover node_modules/.bin/_mocha -- --bail --check-leaks","test-nocov":"mocha --bail --check-leaks"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","defer","deferred"],"devDependencies":{"@types/mocha":"2.x","chai":"3.x","coveralls":"2.x","istanbul":"1.1.0-alpha.1","mocha":"3.x","pre-commit":"1.x","sinon":"3.x","typescript":"2.5.x"},"dependencies":{"throat":"4.x"},"gitHead":"658395950b9983b2281fc5e0997aeb72863b1cda","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@0.7.1","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-EXQ/w6s8d/P9/FCJbrVw9SnjB+AJPilI1h/SX5jqJaYTdGo3dvuQb73d/81wISyac2GjU8cE/JiHDYmQfs+SCg==","shasum":"a999eaf3e0b9268888c3b0d55e046e1dc53a3e70","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-0.7.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC7AiJkTLRehHeutlD0qxmvPAp7n42M5YdDVv36m3G4CAIgGsV1CIUFp5E7IM6uh2xB+3UUJtovgjiy6vi44UTt9wo="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already-0.7.1.tgz_1512383918261_0.5203522311057895"},"directories":{},"contributors":[]},"1.0.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.0.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","test":"istanbul cover node_modules/.bin/_mocha -- --bail --check-leaks","test-nocov":"mocha --bail --check-leaks"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","defer","deferred"],"devDependencies":{"@types/mocha":"2.x","chai":"3.x","coveralls":"2.x","istanbul":"1.1.0-alpha.1","mocha":"3.x","pre-commit":"1.x","sinon":"3.x","typescript":"2.5.x"},"dependencies":{"throat":"4.x"},"gitHead":"33a8b4ffaf7c129e540f1d5d1cd82d5392f79df2","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.0.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-Jfpqrhn0oVWFYMbvkMwfiq+ldDgh20Qlp147ByDihdgtGlbOGY2sNXSwdlJ2AAGySwKHosYiqmGe4DAP0jWMXw==","shasum":"6342d6e35e6840b229580c38d20b0d8bdc3716c3","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.0.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICnV61F5FlDkGtr8gOFrkHFAIibhP5SDp2UOIAs9jDRDAiEA0sG+QRPuWyVkxet2HqoAI4byo0PxDTmZ0rHvKEmab50="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already-1.0.0.tgz_1512479112485_0.9519859624560922"},"directories":{},"contributors":[]},"1.0.1":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.0.1","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","test":"istanbul cover node_modules/.bin/_mocha -- --bail --check-leaks","test-nocov":"mocha --bail --check-leaks"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","defer","deferred"],"devDependencies":{"@types/mocha":"2.x","chai":"3.x","coveralls":"2.x","istanbul":"1.1.0-alpha.1","mocha":"3.x","pre-commit":"1.x","sinon":"3.x","typescript":"2.5.x"},"dependencies":{"throat":"4.x"},"gitHead":"253cdd2ec86be749e991f4ba50321fb15e205265","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.0.1","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-chPP76yxMuN3yE4b5jheHEBXybmCTRpezJ03FPCzuJwxzS3DSgI7njX2IaH5qBo3tZeOh9iUft9S/hBBD4YoEw==","shasum":"0734628bbef608140924b847cbe3631fa832bfe6","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.0.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIArbim6ohXlM8njOhxZnJgY1WJsMD5BkXw+LIg5uud+KAiAQt0ToZ5emUzwQ1EFC1qlFNlrXaIFjgthrfiBJ3+u3hA=="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already-1.0.1.tgz_1512740199776_0.5479261258151382"},"directories":{},"contributors":[]},"1.0.2":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.0.2","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","test":"istanbul cover node_modules/.bin/_mocha -- --bail --check-leaks","test-nocov":"mocha --bail --check-leaks"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","defer","deferred"],"devDependencies":{"@types/mocha":"2.x","chai":"3.x","coveralls":"2.x","istanbul":"1.1.0-alpha.1","mocha":"3.x","pre-commit":"1.x","sinon":"3.x","typescript":"2.5.x"},"dependencies":{"throat":"4.x"},"gitHead":"099570da93322392c2cd1863c521082922c991e3","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.0.2","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-ybIEalBD5klED/+5jl4LNvWlpnN2rgsgOcpD6rL0dUzXrZLdUWIHeh0zRhr1WLH1gVNmXuFOP/3zshUFvbLaaA==","shasum":"ad8520f08064b3064852b255a902ec365fa30934","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.0.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA6ciW+fL9xZjsijmqU5DixviTE4GT/OK43XGFwM8heqAiA8UvHFXQUC3ngXx5lSBXBjpTJ7kYAoz/8jEc47vs4EmQ=="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already-1.0.2.tgz_1512988718082_0.9164841698948294"},"directories":{},"contributors":[]},"1.0.3":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.0.3","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","test":"istanbul cover node_modules/.bin/_mocha -- --bail --check-leaks","test-nocov":"mocha --bail --check-leaks"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","defer","deferred"],"devDependencies":{"@types/mocha":"2.x","chai":"3.x","coveralls":"2.x","istanbul":"1.1.0-alpha.1","mocha":"3.x","pre-commit":"1.x","sinon":"3.x","typescript":"2.5.x"},"dependencies":{"throat":"4.x"},"gitHead":"4828e94dad3f4950f254a4b61b5127663531bd78","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.0.3","_npmVersion":"5.5.1","_nodeVersion":"9.2.1","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-Z5sXEtg0OCMSTY+owkD63utJR6QnDAz/IYqK49x/5PqphnRSsICJnb4jnAlxCbpKWPKz+ojOAeFbTwn1UXRY4Q==","shasum":"a0c438647f2382d6a5aa8e9c751e4a51ef06d040","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.0.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGVQNirVnnM6gVuUX4XoFAG9+jVg3bofQMvKptC4UxAGAiEAif/44LvWT1oG5OdFZ+3NwuwEEYgVSsJitYmD4n7CAjA="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already-1.0.3.tgz_1513289217470_0.6458838258404285"},"directories":{},"contributors":[]},"1.1.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.1.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","test":"istanbul cover node_modules/.bin/_mocha -- --bail --check-leaks","test-nocov":"mocha --bail --check-leaks"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","defer","deferred"],"devDependencies":{"@types/mocha":"2.x","chai":"3.x","coveralls":"2.x","istanbul":"1.1.0-alpha.1","mocha":"3.x","pre-commit":"1.x","sinon":"3.x","typescript":"2.5.x"},"dependencies":{"throat":"4.x"},"gitHead":"2308c9b23b59c6cbfae6bc1bb73145025b2454fd","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.1.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-jRekvn1YhI5NWLak9vVvf43DlqyWKWvmlPaIUKP+IQk5OzWRK6tT28gVPIHOgnaBCVvagYvjInuoLOXAwio3wQ==","shasum":"3b3d16d547b46a0c64736325b39d027141908509","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFr7sKSQ38jV5cZdrtaIA4uNS9xRhBnTOmiSB3j4rNfQAiEA5cE1HGEEB4KvxUrd5v4lpJjP5P0N/3uTDdhpNFvl6JQ="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already-1.1.0.tgz_1515587848638_0.8802040845621377"},"directories":{},"contributors":[]},"1.2.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.2.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","mocha":"mocha --bail --check-leaks","test":"nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"2.x","@types/sinon":"4.x","chai":"4.x","coveralls":"3.x","mocha":"5.x","nyc":"11.x","pre-commit":"1.x","sinon":"4.x","source-map-support":"0.x","typescript":"2.7.x"},"dependencies":{"throat":"4.x"},"gitHead":"cf16df71075001b087ab06e74076828dbdb28728","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.2.0","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-6htdPpOQvUNi/jYIS+RHNg63zNxtGtkAq89SAV1gZPR9HGKHPRVulAgUOnMdZfI2fdRUFmIIbkiC7LHGUD80mw==","shasum":"e66578bdd15fde604c9459946477a061bd24beb5","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.2.0.tgz","fileCount":10,"unpackedSize":129443,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+E/ZwLNeDMyRinnT4CdByj2OysH9VxmsWm6Od+8M/gQIhAL8wun94+jKMgnBzboKD5An/3HDqGRLJJt1ZIdHzriv8"}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.2.0_1518010402293_0.9162433652410376"},"_hasShrinkwrap":false,"contributors":[]},"1.2.1":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.2.1","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","mocha":"mocha --bail --check-leaks","test":"nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"2.x","@types/sinon":"4.x","chai":"4.x","coveralls":"3.x","mocha":"5.x","nyc":"11.x","pre-commit":"1.x","sinon":"4.x","source-map-support":"0.x","typescript":"2.7.x"},"dependencies":{"throat":"4.x"},"gitHead":"2e652c59ac33eb12688ae0e7743818e5b2f398d2","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.2.1","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-pTSYqghawwFYCbpNAzCWBraHSY/1qAq6tN6/RmlUYXwZJsH0pYiVcNqcJjah8JPF8wUqbgmh2x2/Op1QJfui6A==","shasum":"89ebc6026ad7b66c424960c414cf7aa038b19ae8","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.2.1.tgz","fileCount":10,"unpackedSize":133032,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGPN8smS+JJfcpQFjmYuBy4WXIfnXElyFE5+r5TPZ4zaAiEAnHnsO3HeR+DhNVPKnvLiOLnDOz2wa+nPCMklIvERaQg="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.2.1_1518441861868_0.2535524646054874"},"_hasShrinkwrap":false,"contributors":[]},"1.2.2":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.2.2","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","mocha":"mocha --bail --check-leaks","test":"nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"5.x","@types/sinon":"5.x","chai":"4.x","coveralls":"3.x","mocha":"5.x","nyc":"12.x","pre-commit":"1.x","sinon":"5.x","source-map-support":"0.x","typescript":"2.9.x"},"dependencies":{"throat":"4.x"},"gitHead":"851b0b23de007e7ea9be1b3c8b460e0bf6706f8a","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.2.2","_npmVersion":"5.6.0","_nodeVersion":"9.6.1","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-TaiLBDZDHkAMMFnym9mHxKi1oaQddH6RsPbRVFoRkIyDUqSvvBe8dTLFzGooUztLeUFzax59V+UJY8BfRvNMZA==","shasum":"e76048e71a9bacfa69401941dfa303445838a3ae","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.2.2.tgz","fileCount":11,"unpackedSize":193292,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbF6HHCRA9TVsSAnZWagAAvfMQAIkhTQQRIlz3eNukR0AR\n12BNn+AKjrF4Hd+hxy0mQeeTixi3gdQL8mzm/TShmzMDCeycTuCRa9Q2Jynd\nHb/jPatSNS+sAbUQEbjX9UaaVeGxWVUBrsfhlQyNfUE+dj8rkXLw41l96Uvm\nDaOkYtmaHoL6hGtJeN0sNuukFILVJcteUSWRLrdB3Lb9rQq65TDdP190zi1p\nA0oOYBROjhDwYBwLpjbOd272efK6wjRpAWnyIs2l3xb6SAz6veilBq6cM8kW\n09bvJQNIBkrmUjIcRpAkExBWvScAjrIdf6Ih771VVozNLxGNaoLf4iRD7PcZ\nDO4aleB3zof1K+PnWSjfYoMiswH6Nrbi4+Wcork7VhbaY71uKfzFKkouH3wy\nH75GkxrwYVvJuUrSpRXVfZPRVCGaWb7urX4bHP6TOn4zlyU+E4+Z1ddJ79Wl\nyziFsEwwLFK+rGdHKqM7IP9zoj48Z2Xr2ZcEzhdsPm0BsOQ7hzuOpPSdewHr\nnK5f3bvkl1UctjwqOkQNziTPUa8HuFSbWl/8d/0XPTvDz5a0rfp7XrwrOukd\nEdlxhiY0zixqFgBxCrlWk8CwGQuMjY40axbaowVM0eoTDnDnfB0FN7UKaz/M\nsIMNWF7MObsWwvmxbS91aphhYGPIJKR+73c8z827KGLFVy64ifusGZgKHmk8\nXj0c\r\n=27FA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG3YHE9gaIkfwO33k446HPoDyUiaP+ZxduDgVAXl/drCAiEAuUDbjp4T9Sn+EghgKf+JR/vRmhm281BOIGc8wA1hlrQ="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.2.2_1528275396399_0.19679808074741567"},"_hasShrinkwrap":false,"contributors":[]},"1.3.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.3.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","mocha":"mocha --bail --check-leaks","test":"nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"5.x","@types/sinon":"5.x","chai":"4.x","coveralls":"3.x","mocha":"5.x","nyc":"13.x","pre-commit":"1.x","sinon":"6.x","source-map-support":"0.x","typescript":"3.x"},"dependencies":{"throat":"4.x"},"gitHead":"b5ebd4c8758bb99f21dec3f90d392b4e6913a9fb","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.3.0","_npmVersion":"6.1.0","_nodeVersion":"10.6.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-0o+bt46JGOGtaWOSBww1BRWiZSFfig/A6PlEykrEdc8jugqET+IF8h6PGX6EbTNUcoImUf7VZAJl8G1VSPhP7Q==","shasum":"d965ae1f98bc54ba2a97423b8eca8b1fe16b517e","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.3.0.tgz","fileCount":11,"unpackedSize":189819,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbp+IJCRA9TVsSAnZWagAAkY0QAJvw0kFNgx6F5LIIlKMZ\n+4fvmhBm/6nVLU5/yUZvP8DDhaWQjOpRcVFV9uRhC49ujECd4UNaGsIJuejR\npkfWI4G26CkW/11FHFgL7xNON4Gg1bui+qgWAuaS0nh17UJmxc5b+6BtEkmf\nwrsolz+EtnN8VgNV8D4cejSic2WWDf7BaOMf0LgVe52b2Vnv1ljFfgrppQY9\n1q3GdYAN0jxmfUBPcANsT+mO7QhXTKj1KrXk5Bhj+oZbb/bjP0pG8S+3QGoS\nfR+lJZpyrDugJLIMgmFs2wnmw+Xs6wc+/GUpNb1b+0T2VgU0Ux6jrVbLhJBp\n7ahS/x8MAJlGPQAart20ZhBb6DE6wyDL3c1etEzkuYXq3c9P2/1Ytuyoqf0X\nuI9EbVANd8evZPEUBR8rgXVV2BZN+vsz82eU0k7LW0Cr/Ng0cumGXLUpwrB8\nu2+TANN+Oq+JyCmWBsm9VU94AqRKA5w/BLQcTE8KkHk+IaTM6+YfQBqMcS4k\nR2LJDuxzsyz639a542JW8B2H2vJSErg/xtvRus6+8ame9UoGTJc7QoGoFS+B\n2Lgz6uSXSfp4uGkD81TzGPjdZ6Hrpg9ABpOF64LXJzVLIy7tfIi6yuEA+ZJ/\nKbC9vlm93IDkcZHEJ4j3T6IDdTperEQ3EPRFLShJdAdtQwheTGkF+LgfUp+o\nfqT7\r\n=dOyq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC7I5vka/H0VwnB5kNOp/DouHt2cfmx7+cbay7Wv2vTGQIhALbVY2UuFNjRkFF/EM79GOIb+KPFKXyWLJZqWWSm/bGd"}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.3.0_1537729032937_0.8535361241842685"},"_hasShrinkwrap":false,"contributors":[]},"1.3.1":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.3.1","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","mocha":"mocha --bail --check-leaks","test":"nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"5.x","@types/sinon":"5.x","chai":"4.x","coveralls":"3.x","mocha":"5.x","nyc":"13.x","pre-commit":"1.x","sinon":"6.x","source-map-support":"0.x","typescript":"3.x"},"dependencies":{"throat":"4.x"},"gitHead":"e054563fced548e64008dd620ef3f6af4f9e4e7f","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.3.1","_npmVersion":"6.1.0","_nodeVersion":"10.6.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-hy4ELY9SaqiXEkMrzvHDTxecgREGSoTAegp1ifoOIK3pWSv9eMQHw3xGhIkemlfnZYJ+9sWKvcE+VUULy26USQ==","shasum":"6fee31c25f7c08f0334f98f323f3e1fb7b3270c3","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.3.1.tgz","fileCount":11,"unpackedSize":189819,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbp+OGCRA9TVsSAnZWagAA8hwP+wVfRRmL3/hId21JNVHv\nxtfM5yQB5ecNOdBYqvU7bpQz+HIQK9Y2N4lddPZoG2qpRxAZ0esWrybRh2Mk\nVC4cDpPekKClqQIkud/8rWSePJPZfH+BmRufB8crdKuCaZo2SAAn8vtldi9I\nf1t6MRqpokJva2a1KvHwOMsvp221zfK30yhCq/S0jEQWO0bOAVrk2KYnWzb1\n4mqPvT2hb6PXIxNalubB38Dqwwog2P4+jkjdWD2s+dvxiyA4sFpiQpfS1V8O\nn+ChV3pk85bu0ZrYY4pgfMj/M/+abAu5dNAVldifGV5TGtzWAG0xVklcTeKm\nn76S/e31StrwmqruE3yMfpFXjJtFQKDHslQ/NiszCUvi08+bSMqGoRKGq5BY\nqNw7JXrZS4xeDBx1uOFtw0uINvn2ETmu2/IfHzwVBESESfzsu9hcPZ3Yvnds\nVwkcinF+5J0xbSjEcj0WwmwO/jad1kRR8MnzkVUClblpbx+37j+9+/GME3KB\nR2iApwJ0kgGBNqrL1gMz1AcwiSaQYdcG7zS1L+5cJtuQPVcrj1o7fpIXfEqR\nKx1akI3Fb9zB09iBdOwO0mEuDQfyFVBHNje4oIvtMyZuGt75kQGNyC7LBsPF\nbc94jVsXu3PYnNUNuyVRGG7IqGv5ZpnbtTb58omC9dlnKsdQUOwnN+c74Ljr\n8gfu\r\n=huKC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGG9R9OlNEw4gw4V/fv4fcE9V8P1DbWGJ8NXRrEQC5UbAiEAh1LBS+KRrIVdzFi/GjnCMMN1eWX/+5bHPj1aHwf8GlA="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.3.1_1537729413346_0.24117290824851545"},"_hasShrinkwrap":false,"contributors":[]},"1.3.2":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.3.2","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","mocha":"mocha --bail --check-leaks","test":"nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"5.x","@types/sinon":"5.x","chai":"4.x","coveralls":"3.x","mocha":"5.x","nyc":"13.x","pre-commit":"1.x","sinon":"6.x","source-map-support":"0.x","typescript":"3.x"},"dependencies":{"throat":"4.x"},"gitHead":"a7dfbdde9e1c31c40cbabca5184a99950c65b2b5","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.3.2","_npmVersion":"6.2.0","_nodeVersion":"10.9.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-ICW1uy9jEZQtmlCdQ672yOQ1MXIfNJ67iB13GW7qABuxw1Z3W7yMv3IY9bTE80KZ5jSi2E7/kUAdqiIMq7zxoA==","shasum":"17899742b54fa2488faf3a02dec8adb3e0e4a875","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.3.2.tgz","fileCount":10,"unpackedSize":137326,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbqM5KCRA9TVsSAnZWagAAi+8P/0mZDyv1xcOFJG9Ilgdx\nHTEbzU15QdXZHDI4uqdk0mCfqParWERKN0y32DGAaUMeGRpMlJJKlm++YisD\nc3LrnBxpip3TUqMJtaUxriS8ekbknVFvv7oPFbhAd4fOZVvX8VQrpYZTHcWn\ny/N53anp2s6jHcGQEY49pvO59RgNRS4csZGflqk9jV4WWB3n96kpfnhIPBQ3\n40wTEc5ik9KrYYmXA8XsAMT9vqIwCPtXf+d+fLvdk3XzRIaLX7XlPor8vQ4o\nm6qNQ2GSfOj4Ewc3LXxTWyO5mr+EScDIS9ZY9JGfJ6f6VqcH8XRxCpm5ZCwf\nG5E5AVx6vHH+y16muPG7rxVUNu+L8h0nKd+Pcp1y+7A38NMjtAe/UY++1ajf\nAm9I35qQ6oXZjatysE9+82lsgkQ4j2c0jvyrAcX6jwDL20MKMuQeiSXfqn6M\nSR9DhttCxdJChCFaFhB/i7iZUK5WZ7O1vH6NqU1+reeLszbei3c/jmzH6hsR\njrmNsCORxCXcWSuTbNiPbaU/CPZM7M5u7hjehIInwrBED3SieQpAt1aanLgR\nVUfr/vypj6gtVQn8spwQZoPVQpjzeFNzyeT4pVj5rPxLShQFWJBhHx1rklfO\nBIrbwMw26VHw7N1DXJoNSHr1z/s7yLa61f6S/nvrpY6zXv3jeSO3aPLuwxIU\ns9cE\r\n=PrGS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH9VNOJvDIaYy3V5xjJxmAkMeoEXgtO509Tz4FQErl+YAiEAjLENK8aNIX7kXjZDq5dilM9QWhlr7QqXe7DdhLYk8rs="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.3.2_1537789513916_0.1373678428579217"},"_hasShrinkwrap":false,"contributors":[]},"1.3.3":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.3.3","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","mocha":"mocha --bail --check-leaks","test":"nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"5.x","@types/sinon":"5.x","chai":"4.x","coveralls":"3.x","mocha":"5.x","nyc":"13.x","pre-commit":"1.x","sinon":"6.x","source-map-support":"0.x","typescript":"3.x"},"dependencies":{"throat":"4.x"},"gitHead":"f91212c5d1a670ecfb94a43d5166fbac5fa64103","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.3.3","_npmVersion":"6.2.0","_nodeVersion":"10.9.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-/v3HYszhP01I3g51TLOhi07v1DiOfoQSmq+S4jWZ2LNZqZzn4ctnZcP2pYH73wiAhJ+IoiwzbnrAhs4LWmn8oQ==","shasum":"d804c3109f963c2481a463f7e97687b3f8812905","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.3.3.tgz","fileCount":10,"unpackedSize":138408,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbqhbyCRA9TVsSAnZWagAAmf8P/A6fEu2wqZeWCHgNvSPJ\nXBDOS1w2bFDgq/2cd5go0zUnqNYyZocwBw0J+ehDYgUy3uTDRI38Z72pVYiS\nDYpZOs1ykn6PHPuwsZGmTqEi5narqAQuWrT7TAW4lCnDPTEc3jKjRrxzgnQS\nxxX32gr47Q3PtGpwEoYsXeYDnROH5Ps+6yyuYlrhkSIqvhS4MoPOa708btQd\neRuItxJwzeLjiT9BBvJ+jIIk8u/kzoysDO6J8sKJSLWrv07eFFMt51mmjVet\noXmkjyGtQrDe+Qw5PVPbm/0e9gOXlxmr5aFS0omHh/lmvZ1Mox3NizEZGjg1\ndzTmoW13zUD8PHMT9aoaDh+FoL6YK5uSUvjz43ZCAy4lW0va4w6A5MotfG4t\nr20IneqOfHvhQ7GvQ4hUQm9RnHsEUoM1EpMqnIDpT8PtvyIQd9EOl+68iXhL\nK4ATavSTPir5dTdOE9qbBJ9Od3pMScb4MtBrNVhdvQMGxmqYVCESvN8gJl08\nl/1KRruerqI93dyId7eYyCiAay2W0qmLjeB49Kl3dvcVb72UwyvMUUPMXsIC\nxs+lrywijpi7wlPBNal0DwlMzO7YUIarDd8C0MRRsz5JGzWYgO6jp5VKKNim\n0+4MnujuN8uCjOA0lA5/+2XxYvisxAspY9lDjPwNvSfK0x3uW5fe10denaMJ\nBVm2\r\n=3Vuq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA1pIMp5UdbasOpfbxr4f6XkeT5tTMEbTJQXrSMVWo+xAiEAqEGL0b/6s4Zh8zWDzhfw2Lxnlysf/7mvwW4CN/EjiXc="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.3.3_1537873649677_0.6444198197868674"},"_hasShrinkwrap":false,"contributors":[]},"1.3.4":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.3.4","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","mocha":"mocha --bail --check-leaks","test":"nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"5.x","@types/sinon":"5.x","chai":"4.x","coveralls":"3.x","mocha":"5.x","nyc":"13.x","pre-commit":"1.x","sinon":"7.x","source-map-support":"0.x","typescript":"3.x"},"dependencies":{"throat":"4.x"},"gitHead":"3d0f4ebef3bb75f2bbd46cea0d37ae67fc854174","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.3.4","_npmVersion":"6.2.0","_nodeVersion":"10.9.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-dV8/K8x+QZ67wAQw53J3ETfldg3DP6OkrRVgOnMEKvsPjmJ+Gyjr1afbQyrJGnnX9vQDAijjfvPsiWfQrJBKJA==","shasum":"032c64d4179d2bd3c52c698c764812c0134fa36d","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.3.4.tgz","fileCount":10,"unpackedSize":138131,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb2H5ICRA9TVsSAnZWagAAtL8P/R+JDxI06z92AcFd0RkD\nt1NJdKsr2zFO1ZeTwsKYBB25/0OkPJvJWtN7XO3Zahe71GFqay2u7wpoEwot\nxSkblvTmQLwRmNcSeWjTb8jSzb2BeoGshPMWDhpf4KL0zVwcZUVKtTM/+QFC\nglrHeiOMpUoqEWLAoe86ROvv3h02MFNeKdZ9C1xC1INU9198G2MvuVSFKlHg\nGQuhxfnAHpQGYY5WyvvEJzObD8E0Onm0fLLaBhVICaoVJk0dtE5V6pRLlwRN\nu9Louut5VQy8wUm6Bc30EEyy5l+NusuMb+Nkp4MxqpkhmOGQSXTsQvKC4Row\nWHmx55vth52EKCKJynerhyEnRTF1Zz13IlifQZXC7iK1SGN9mr9Vm7GVVAuq\nuKgKexk1jzzkbQBKSVz0M5Afwm5IaBYUslATLa8PRSWeDjCiCLKIUj0MQ+I/\nNfK1j+XNqP/G/J1t8qyah/Yp8KjfXrzr+JUBOUYJsuKlfn+xd/HBBUq5c5VH\nGsNEly4xcfeeN6vm/JzkisaMXac8WYoo1hc7O2E0k/YNXkaCW+3jNZ3vcuR5\nTr5yDJq+yfiByXKvyD68j6TK8ekhdjIxSdeKLtEFRcgttWLiJ0zOAO5W10Ig\nkEtCUclnPkkRKdYy3mpTapMFLoV/d+3BrCG9+7o1BfWUxxM7lNcZu2yHxll3\n/G2M\r\n=Bv2m\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDVPs1OV6p9C7RSwxXvrWK+Y/JNxOY+1iSFaMngVgvf0AiEAiU8UhSuQ/z69kCfJHfQZQ3KlVJQsWQZECdnOzR+YkdI="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.3.4_1540914759404_0.5485582308585351"},"_hasShrinkwrap":false,"contributors":[]},"1.3.5":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.3.5","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","mocha":"mocha --bail --check-leaks","test":"nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"5.x","@types/sinon":"5.x","chai":"4.x","coveralls":"3.x","mocha":"5.x","nyc":"13.x","pre-commit":"1.x","sinon":"7.x","source-map-support":"0.x","typescript":"3.x"},"dependencies":{"throat":"4.x"},"gitHead":"716cec5d5e097b4113fe8c3055ee1a433e71b8b6","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.3.5","_npmVersion":"6.2.0","_nodeVersion":"10.9.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-uoi72uOKv+M8D8xKvOe1OO1ioFd6v8SiOLSHbYRMbstD87MZV+nrCJpWH6BhlrvGm3lCKWEY36zz1J3Qudv/2w==","shasum":"854a1f0b7c7e95a41203e121b4881bf3a2a829bb","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.3.5.tgz","fileCount":10,"unpackedSize":138131,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb9VHLCRA9TVsSAnZWagAAj64P/R/RkEVuAcaqd/hr2bPf\n7Rlf5gtnofhP86B3T6p4ICLU7hJLdfTgCf8rpkEE3j4emWpeKFKox4RjwElM\n6OIPYpzz9XWy8QwXiMe7mr4rqYqwdpoBe04zK1DpzW5E4sUKLE2vcuHl4gEU\nZgusIjnlhen0imrVMC/QHlzEmWStX5ZU4J0BSu6j7CxvQe1Q5/RXHIpC5iAf\nXHla3gXworzVXdHYTyz8YWBf5rjm7a/nhwMq9nd1/v7xv6YlxXlPKLHK+4rX\n5xIyeiHdKrPVuiV9jKYYM7GqLAzfwA34T3n/TI9WHgTjKYVQe/5COgMqNaKE\nI5spyvYnLfZQefzk+mogVAOmSWmBX/ASFZS9bDZQdfNhCusv9Z7rZ/P/uu1d\ngLM7SZNpLCpgKmjKnaKMzL5jPEnnGd44uFQdWzpXdewIJ8TnY62qSFx0sgdy\nsLthcCipQURawwDOBHpIipAijj3xJlHuMtvFFs6nLKRUCzER7BivLlxSZPQX\nfEZ2ZvI2bDuCxyO5+TdyNTPIjHqBa85p5w2Tfwd9j9PGS7v/VafYDmM3Evgl\njCD10PvaAP6nxxj8CLVkccHATp1s7MwkO9w2jJbFM2KoSD0ObyTtYcmUg0Ow\nD8pRS6gmTIWYuNUXXkEIAKZb/favjg7zyuddLWDfL6RPUrP8DBh5SRo9E9Ag\nSs6V\r\n=E0Jx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHW7XsfWapJB9nZOtGj8YvpeRel04i0cV+J7+LXsj45nAiBEPfHAO2imVK1YdcF1dzHW7eeFdfCIoYdR/gMC4HrTqw=="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.3.5_1542803914941_0.7002747823522113"},"_hasShrinkwrap":false,"contributors":[]},"1.3.6":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.3.6","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","mocha":"mocha --bail --check-leaks","test":"nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html","travis-deploy-once":"travis-deploy-once","semantic-release":"semantic-release","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"5.x","@types/sinon":"5.x","chai":"4.x","coveralls":"3.x","cz-conventional-changelog":"2.x","mocha":"5.x","nyc":"13.x","pre-commit":"1.x","semantic-release":"15.x","sinon":"7.x","source-map-support":"0.x","travis-deploy-once":"5.x","typescript":"3.x"},"dependencies":{"throat":"4.x"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"0f87016ef40aafe2185ebcf356b52356a4d315ae","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.3.6","_npmVersion":"6.4.1","_nodeVersion":"11.3.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-ifInpRE81behq4DU2osiTcZMVyXZeJPhRedsa2BNYSEKT3w+hkPhc8f8eQhzFUrO/aFepremgpj4SoFg5LVnIg==","shasum":"5e76bcfafed09cd8fb6e41a1d0dbe6151420e65c","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.3.6.tgz","fileCount":9,"unpackedSize":85604,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcBBWRCRA9TVsSAnZWagAALLMQAJQvdveHx6aZV0Y0xg5q\nO6q6yPN+gCGrns9N7cOSZdG4YZXBrwGZrlCKoOrRt8Dab7jLvLJ1jvuvXAEu\nDtOYLxSanBoghGust2XNZwNeeOcMVg9aBHghaWfBxBA9c1sDP//3kjMVRAiM\nNHCGl9Wl9hwZJWLUYY9W40zcDkTPLvK+DgB2TkagshwzglIuOKWgvP5IL14o\nUmcV6aUh0zCeJTeOA5G283jPtA9i1Li60KNoQy2kWgqOcNmFIWhH0+Z+pRtq\nKuvk4ZaMzxWmPoM1LA3d6HrlFufCyaessUUPIlmkLG4g+JEYuw4Sp7mcFv2j\nWtJ6Ttvm9tgV8SDZWV/wK5HW56ntr2c5vtL31cPTia/YKbZ/fL9LEPxOchED\nRcqcs/iBSBQvtGDow6eyoVUDHI+tfrgwh5gB6hOwXCecbkuGAP6x6MnSQvqX\n3uchZqWrpV2r+8HaPDG2utEZIOPu4CZFUgnbCh42Cz7hTWvJOa2ZVDtGc5gT\nyxVYtUOV/NqHX+2YrZZhgeIDVPEYfAPNAtZ8eT9T7QtgsjQL81wBpi6Xe845\nSi9h6Hu5Ia6iL3G2qIHYgQHUzHAa7mnvDLHaKAZ+HXsR/oufmOxqh74Sv3/z\nKHNiUteNjiz4G5d8dXbRfeVz6BLMjgtetYi/jKg3C0s/hY6fDg/XIyzQ99bT\n6K9+\r\n=fN/S\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAPVlvxZ7e7gGgH2NvtJb+Do3z6GEJea/EuACpJKq/kMAiEAk/cKDQKPYw43UjWUyxvPzEVFVTqPCsCpsiFZQPzLQqs="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.3.6_1543771535897_0.875469856082661"},"_hasShrinkwrap":false,"contributors":[]},"1.3.7":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.3.7","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","mocha":"mocha --bail --check-leaks","test":"nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html","travis-deploy-once":"travis-deploy-once","semantic-release":"semantic-release","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"5.x","@types/sinon":"5.x","chai":"4.x","coveralls":"3.x","cz-conventional-changelog":"2.x","mocha":"5.x","nyc":"13.x","pre-commit":"1.x","semantic-release":"15.x","sinon":"7.x","source-map-support":"0.x","travis-deploy-once":"5.x","typescript":"3.x"},"dependencies":{"throat":"4.x"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"ae8ff3f4cf78f268eb82186dfa08a8f5268f4809","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.3.7","_npmVersion":"6.4.1","_nodeVersion":"11.3.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-SC2UW4VHE/qspSbDyaA+VMaphZlYsO2vtw+qq0uRs0JBD1jq2nY70LlNXqaWHID+/aF3n0rL2rqL7r9nURoNIQ==","shasum":"a231e09633211e6c93ae0cb432faa9c62c6e4288","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.3.7.tgz","fileCount":9,"unpackedSize":85580,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcCFNOCRA9TVsSAnZWagAA66kP/iIsxkPF5T9kgGJmyzRh\nTpbdtq9T3jAOEaAB/CevMG3or3yXEdmcuqY4KlRGYVEH9t1Ov2A0bagmTW8G\nvr+Ttq94Sa9LEPrfac7h+fVED16BSiR4cbCTdzewqOv43fvpyvvnms0OWUkn\nhEexdl4EeXJdb7gbwmnr/yQtGFQa6p/qFA7f0qx4b5te6s7LxSo/bY1iT6xs\nTLsV0hM9K9UyWvQKZT2674A0BA44qvhrwWQ3GsvKl5dpxVWRidtUz3Dv7pyF\n/RsDGvVqBFDz9XuNReNRx766wUpWvChaV7yUAosUFB+Sk8aU4hSBFeX0wz6r\nADjJWSiwH06U6Mz7ggSAgPop4GRgH8x37ykIKokZrRd8PxwV3btnOND1yxd+\nepUoMp50OWtFc2EA2sOYOWPqwX0Qaiu2SKui1qfB8qqb9/spHpkywF9+NZlR\nwIm06gx3mPvCm1TcFmxmqLDzy8QPyoVzu94mLPD8oXmJBuE9oV9LVNbqkwC+\nTjAPuzC+v7gC+9dJe3bVtiW6QUBxT2yeEshdNkl+fLFsxvBKGyGqvIr1HxrP\nd3z3bsjhsIAt6GM8pXVrHCxUCRvoLcazwQkwKzltS9GFb8evvCUvSl1unToN\nQyBXK+cFH3hCnyt109nhUCfA9wuUDQAJmOMbOXupmERzVLK6UgTBqxsd90e0\ndIfX\r\n=w7em\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGgf7kHirtSkuyaoCt2V4nan4gmDobjqG0KWeDp/pbpBAiEAhXjCGVqf/XipvaBkpLFxsq6hVvNNfUHqljlYKEf/PAQ="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.3.7_1544049482910_0.5711433882013861"},"_hasShrinkwrap":false,"contributors":[]},"1.3.8":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.3.8","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","mocha":"mocha --bail --check-leaks","test":"nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html","travis-deploy-once":"travis-deploy-once","semantic-release":"semantic-release","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"5.x","@types/sinon":"5.x","chai":"4.x","coveralls":"3.x","cz-conventional-changelog":"2.x","mocha":"5.x","nyc":"13.x","pre-commit":"1.x","semantic-release":"15.x","sinon":"7.x","source-map-support":"0.x","travis-deploy-once":"5.x","typescript":"3.x"},"dependencies":{"throat":"4.x"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"74b48405202ac52466251e6ff40e50d1fcba9bf8","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.3.8","_npmVersion":"6.4.1","_nodeVersion":"11.3.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-0agnS9NsFxrF3h2pAwLCxsfETdsTkjM0s8EdP5GRCnOcqPZErLL8YzzU0/kobbVVyc1sXOTa+ngPVoXawVfj8Q==","shasum":"6878f120acf37ba5416e993ffbbb49376bb4eec8","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.3.8.tgz","fileCount":9,"unpackedSize":85556,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcCFUpCRA9TVsSAnZWagAAkygP/RK8HfW8hAT+vo73FEX1\nyyzvhns0ByZ4AGTZOusIJCDKhjc/XOP3dicQayqiHgUMZjHEsD38gcS35iaQ\nqXcBPptjdWWi59EROr+yAs9hUEi58SWKXFPLwaWHYRwqAm8fwvvcaASQiQVm\nh9HLododG0GWrnZmly63nBOkjVqgWy7GNsnlvqK1b9cu2O6GwlJgNJEC33Go\n6/BNgHWBrND0HsimwCtKJxyjwUShhKb8QnZ42hPYhlIlfzwMChCAytnirsD+\n1qTd89Ug6xljBJOnFR0SLldc1VTZ76OYBzKDaJGYlPBqiHsvM6koQheo0KH/\nWRjzxa6skzIxoINddgTZnkVfBR3CuktY5e/xaq24FEOvm45zmRFhWFA/r2jQ\nFw7ctICfpEF+E69HtImtQrNoxu0cN2blzXM/L30qWrhKAjzYHdGsp5I+mdkC\nQzK6zcvQ22AWvAFZ9DSU270z7yJ0qQwpUBetphatz2GTCQGOFzhLja1V7gCo\n1xqBzYO99KXTW4coY3kAD+49E4n3+K0QZHmMiWlqbebx/gBW+yYyvsRcNZXf\noEz7RlSRa7zrTcOolPXtlklAaS6yRG/sWC1nngGtmMPkwqJowmUa2T+sRwZb\nPsu5KrOcUGa4Al2t8L3OOZ9BEd5i30N9S2RTB9mtaEFuomYXtwgSYcclKJ4D\niUon\r\n=lfuf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClsGG/u3UoAJFC7bDptYmTpTajHCGQFn/K09Ik8CtHIwIgNoCy9QTIaWfRcl0t6DNJ/saVHoNJflTSDUDmUSDAwAw="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.3.8_1544049960581_0.4020437741961269"},"_hasShrinkwrap":false,"contributors":[]},"1.3.9":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.3.9","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","mocha":"mocha --bail --check-leaks","test":"nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html","travis-deploy-once":"travis-deploy-once","semantic-release":"semantic-release","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"5.x","@types/sinon":"5.x","chai":"4.x","coveralls":"3.x","cz-conventional-changelog":"2.x","mocha":"5.x","nyc":"13.x","pre-commit":"1.x","semantic-release":"15.x","sinon":"7.x","source-map-support":"0.x","travis-deploy-once":"5.x","typescript":"3.x"},"dependencies":{"throat":"4.x"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"206a349d2bf63f454af07351ab50a725c1b5dd4d","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.3.9","_npmVersion":"6.4.1","_nodeVersion":"11.3.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-LjXRUT4gFpt+lWj8/hTT3fRaTpu0+a9X58x/MxnI1+gkN11vT4EhARty9TzVllIXRRXf8xbeysBceJCb9yJjPw==","shasum":"ed6020437dffd7b76083c79c9cdfe150d0fad0a1","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.3.9.tgz","fileCount":9,"unpackedSize":85568,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcCFtQCRA9TVsSAnZWagAAV+0P/0Bc9CH6AAo+LcMX5yo1\n8HzVtK/CK2CPB01pG0uNik52BnhOQ/MOO7R8eDkoiwN9xAXFZA8pAumhVD7O\nJb29UsgE1EJXzCDnSf0f8dmCBgSq1hWZ+TY+0JSIJIW8RoD03aMkWnyRXmzG\nu8HHI56a5cjGMUgFLHW9MpNnxEe1RweqFXJFtZ1XI+LoZkLeAstqhvtyxeeN\nfnZgrp7ScORrrl+RRN2uwkB+PDISeU0h6V+RZ3KAD9eRcC0Ub/5EmooJmBzX\nFH/ier2UWfORef5kIijCS+gvlOU6WSF1MTdI5iqKe4MYdTB++RLMRiLNfj1E\n3laRJSGaYNT+gZGuAKLuIkyd/YreHOU1e5dUl82xbKQM5+XsN2ycipMP8GNw\nB2HPlAyn8hTbkvF9uUAADOlJXiFRNB8wsjb3atvX8oPVNHOCTpOHlTmAnc0b\n6FtEN3s0Vlb4ngwGtp+1bAxQyV22ha2MSZtbkMuEyOSuRVZqrZGOcTownh5b\nbc0Jtu+Gpz8GOmfiOQ1LbyMrBkB8sytLiTksANavM9l+wNwz5XjhO0/a4Mtv\nIhen/e1XlOMyWaUSlQHeGNM9+4HIlRaYqHFq0xZNEIrvmwNPJSJphrpborRT\nnLM4sWrSadcq4PBUK72OJ5vf5LuP1nmDheNy7MqDSgGHyYKfTDKAyjd3hfSU\nwaTw\r\n=aYlp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkT+nwbxWBdDx+9H1ZOggeMzKbnkRTgTevykbxn8NyXwIgDSREPQIDzyxMjRavrYhYGhmvv8qxVR9e7KzD9vUsMOQ="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.3.9_1544051535876_0.8627549267785919"},"_hasShrinkwrap":false,"contributors":[]},"1.3.10":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.3.10","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","mocha":"mocha --bail --check-leaks","test":"nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html","travis-deploy-once":"travis-deploy-once","semantic-release":"semantic-release","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"5.x","@types/sinon":"7.x","chai":"4.x","coveralls":"3.x","cz-conventional-changelog":"2.x","mocha":"5.x","nyc":"13.x","pre-commit":"1.x","semantic-release":"15.x","sinon":"7.x","source-map-support":"0.x","travis-deploy-once":"5.x","typescript":"3.x"},"dependencies":{"throat":"4.x"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"7f5c70f7908bb7555f3648c0c1de2e219ea5d5ad","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.3.10","_npmVersion":"6.5.0","_nodeVersion":"11.5.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-fqXi1m+5OWOeP+jVL4yU66E6NSvRoVog1o8+DQirGKS3UPG596moO9phSWkV+lXDr6J9zmK2M0kLSANlkGu3tA==","shasum":"dc4aea9e001e11cbba77091e393eb4a19681c06d","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.3.10.tgz","fileCount":9,"unpackedSize":85724,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcH99TCRA9TVsSAnZWagAAjW8P/i+aFhaI8Bkr46e/bnOs\nbKCGYXZX6LrGXjL9tjeDDNtLI8XEfQQFaz/yPkZx8YJyQhi5eWvdRO5+pgwK\ngUM5d6F7kGe2Cl/uYHzg/1/yqTAiO2JN5o96AHzUSfJ8pBYsf4m0Hltm4GGq\nrX/wl23ya22vOU50YPYhXcTgr2wRNEmx7QIml8z5elnGur5jjVuj8PlmklsA\nMujDV2fY4Q0O77iF79IjdNLyV0QlvcGZg0i3vVVjE/mHN762hwk42SbaJpuV\nMPFs/QhBSPrbOgAZ7wAEcT0XHDEobw2qpQMxmwE6XA8K1H0wz2xz/0R5srtn\nTww3OzneImshwwZiQHcWWiXcLr4Z97ylrkYS0YA4Y+7XRBB7ApgaU53e4bGG\nK+ty1mEGEbPwDKBZtRc9pUxeaTUhqfy0Kq+HEFMWKSOGEkvSWsVcf9m5Eb2m\nYkXyRa25lUiNmRHC7PQI9lNHjTpJaAIfojo7vDWJya6Zgdgush7AdTa0WJ1+\nXQYde38GDzP4b2NvguMzP7/VnvfvutqNVdb4ZfIZphvXSI/YA1tWaHusfuU2\n9GBPvv8wpDgCypLgHm4xIzFkDPLW/eYbnLLwMr2P3dtEOMTaaOmjMybajlJM\nMxveQzIM4+hcHjtFhbhvXE+Ib6/MimD+w9Km+KLQ6ExCvqs3WukiFHlpsfCC\nXMOd\r\n=oqB8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGQXfFkkHlvTAXf3tq6mJ9cif1s3Khg0Y8Mv8Np7xN7hAiAWJQwGd/PlK1o4tZifQjWAjH+KC0GKXT3lU0RZ/dmCVA=="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.3.10_1545592658451_0.4729025167147498"},"_hasShrinkwrap":false,"contributors":[]},"1.3.11":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.3.11","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","lint":"tslint --project .","mocha":"mocha --bail --check-leaks","test":"npm run lint && node_modules/.bin/nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html","travis-deploy-once":"travis-deploy-once","semantic-release":"semantic-release","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","concurrent","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"5.x","@types/sinon":"7.x","chai":"4.x","commitizen":"3.x","coveralls":"3.x","cz-conventional-changelog":"2.x","mocha":"5.x","nyc":"13.x","pre-commit":"1.x","semantic-release":"15.x","sinon":"7.x","source-map-support":"0.x","travis-deploy-once":"5.x","tslint":"5.x","typescript":"3.x"},"dependencies":{"throat":"4.x"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"d6c6b799a61d24def380bb6224434efd790f4d78","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.3.11","_npmVersion":"6.5.0","_nodeVersion":"11.5.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-29pTXRiOKN372+8taqGGLWhZB9NTK34ysCphDdEPGI+wyIiSnr/dQxfiCCvrYqbeeUR1bfFjWcmTzCQnYix+EA==","shasum":"e4230034341d9603846e824c8bdf45f77c76fd30","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.3.11.tgz","fileCount":9,"unpackedSize":85450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcIjLqCRA9TVsSAnZWagAA/TUP/0S8SFrZz+W2uaTZvyhv\nHNVZbiGCXjnlSw6MXPDGBFWiZOf4c72lbaBwk3+vXw6cxCjHUinypFqtPlAi\n/Qy7/t8OLPbDkDSc05H7Q4fNAR2Ie8E+Y4ipBipIUwa74536DzvNum9Ro5i7\nfDoUM5uHlbvxxssTIphIBBKIL5wToWu823ndi6IqVRqh369uCfAxWbQLbLbs\no5wU/z9j/MqqT4ydd0R7394YOKzeue0SJqsXgKK1uNXigZeVwgmtNiqcO7PW\niil1oUckqwF/8EhDNBcYcE//2owooAWZqdh+pOAOxdnRR7T6wD90F+/1pT6B\n/rkDeBRjZZ9pjy5klkjVqZxdJw3uo6WMTM9Y7MifNSeEBeD8ACwjvkdjt4Fa\nPFpvhXEgOmUmk5lE9GqPqnV2JEpG+p7PypvVpumNKo1kf0zDgjIo32dV/N7k\neuV0ANuVLHh2CwH9UJ32Kt2sUM+lucRsQq3cezMELkLUlOlFHSCT91GW4+gS\nienalR8eoyW1LrJKiZ1G42iGp850PQX5DrBYAnYXqW7xdLHGtPEwAI2lycWU\nKN/b+PGD0Dc6lj5AHCamB5p66qkhiu32KNXo+okbitwAlHblO4nMW5eedFo4\n3sXFszrEcWzTnMw2ksrzPCLx73CVp8fEYunRaWOv3Ok5vAQLIcVcl29ZQmaQ\nw68V\r\n=fPuO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC8pyLLDTOPleSlt4NVpFTYGEp/2XHCMcJiNoDP1J/9rgIgbLT0W2FOkdXyVaxOqhbJQHQF9OF9H0wQ1Xg5LP7ns8g="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.3.11_1545745129522_0.40173259962357855"},"_hasShrinkwrap":false,"contributors":[]},"1.4.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.4.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","lint":"tslint --project .","mocha":"mocha --bail --check-leaks","test":"npm run lint && node_modules/.bin/nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html","travis-deploy-once":"travis-deploy-once","semantic-release":"semantic-release","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","concurrent","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"5.x","@types/sinon":"7.x","chai":"4.x","commitizen":"3.x","coveralls":"3.x","cz-conventional-changelog":"2.x","mocha":"5.x","nyc":"13.x","pre-commit":"1.x","semantic-release":"15.x","sinon":"7.x","source-map-support":"0.x","travis-deploy-once":"5.x","tslint":"5.x","typescript":"3.x"},"dependencies":{"throat":"4.x"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"6fade4622982489494d09ce83a95c4e68e046709","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.4.0","_npmVersion":"6.5.0","_nodeVersion":"11.6.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-d1TYxDn2umFnYs83A7gkhS1iGs4g1jzeYLg9gvzynjgKcGf6Q5PG+JoLZz7Zxi7Fgm/ks0jSvFa778bwRp9lLA==","shasum":"ed9c4a8521bde0cdcaff5fbf48d8cf53bd7c4ffe","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.4.0.tgz","fileCount":9,"unpackedSize":100175,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcPl38CRA9TVsSAnZWagAAZSQP/2lVh2o/SqkOTFf90qW9\nceZEkGUQvgPtVzaBUyDK1ZZ4mvLEFW8c8LiIqsSGDTW+lVgvLYzDjrX/RBeW\n1k/Y0RK1CpEI/EDwvBrdd2dxTq1dXi/Q1ziPzI579vI6M16bLEqdAIzNwBsZ\noD2BV7W9PG639UfxrnT9WxAol93RYU/9yDqlYVyHbihu4TjEhB4d7114zA4Y\n8cf3WUkQhOuCmfeMTKgmv5Hj7cJSs/mp3Prxot51UDUrkq+C6upM8S/LHZto\nULxqnNKCl18gOfbr8V1DqHGk/OHlw9KYIK9jogPKeLfgDHlKIKaobUfLqZ/E\npJPrH/Iq7YoM3hjE1tQgCh9mOvVcgK0joMNng0hbXAQTdNftG6Du6AG3g37k\nuz4+hnMIun4TKinSzQQsjI/Tvr3/3NwPVfDbhenpVTJDpqzXPZg5X5lHMMKK\nblWqKomNC3oLXkVLSEX6TGmGfas3+Dq71KV89jOWqHcibdlZdnZ3quQIvYRq\ncC42ynAyM9e5y+Jz41DPwJTk9lDdKqohIne6oZLZklFUYDR7Xa9FH98V4p2Z\nLO7MFQhw4DoFCA5u7upHMyzN9PmC2ODsVHaGx3KXn6MfTm9vd/GG35uio9VE\nNbDF+x17XiHgepluJH8WaBsgZWnHVa779kWy1P+y8m6MaCrE+dyJBIaYhLpe\nWAp9\r\n=VxyU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICx9ugZBxLrBb9vf1MnXFreFnAz6M0yhSQChdRk+Pn+vAiBqrBAaEJsG/Xn38cpnxSD849iPNr2jIo8GBEOgzvnlNQ=="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.4.0_1547591163526_0.23252296982984078"},"_hasShrinkwrap":false,"contributors":[]},"1.4.1":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.4.1","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","lint":"tslint --project .","mocha":"mocha --bail --check-leaks","test":"npm run lint && node_modules/.bin/nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html","travis-deploy-once":"travis-deploy-once","semantic-release":"semantic-release","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","concurrent","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"5.x","@types/sinon":"7.x","chai":"4.x","commitizen":"3.x","coveralls":"3.x","cz-conventional-changelog":"2.x","mocha":"5.x","nyc":"13.x","pre-commit":"1.x","semantic-release":"15.x","sinon":"7.x","source-map-support":"0.x","travis-deploy-once":"5.x","tslint":"5.x","typescript":"3.x"},"dependencies":{"throat":"4.x"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"e09c5bfe714bf1bd277cd2c1cae138d7588d99c8","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.4.1","_npmVersion":"6.5.0","_nodeVersion":"11.6.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-i/CBmRrHl2tc4F9cw/OBWhXmmc2Z6Wh7MlldvM/7X9DMFzDYKlvUc7jUEoKbkPbCb4wI1XxMUruxUbZ5Ssri7w==","shasum":"18d444f7171352f7655d01e7135dd7fc347b5241","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.4.1.tgz","fileCount":9,"unpackedSize":100201,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcPmLjCRA9TVsSAnZWagAAmToP/0ATwv+Wk9sqHdpC4MNh\nu9VbOehkm39X83RZuBeqj0c4WaF6PLeMFHA168by63yDzUsJywmS5KPIfW5N\nID0tZdPnsJZARPJKHBxrL/8cc6vwuBlComKbWl1rGgAdGAU7SsgJMNaDkzRR\n8HlSaN3WGt+8ApfpXvV5F3rVTMvx3kZVzwTJab2P2H3rJx9v9OWAjwDu2UU5\n91nzbTp48xNgPW9wFdBchVuS8iYJANY/rSLZXLTUE0n8fStIkbJTbDt2l2oC\nceL7wE689oevoUWQ5JABIJHYHV/nrJshg7XHsTYCPSt5I+isZ54oFM9VsN1y\nQ1OY/h0c07aFvHFeoKaF1qq25hxEMeJ+qbeTShKK2ExxKgVcMJkX0WyFahdB\n2Acr5DFAiWBehOk8VIM62L3ndhWtYO2bkYdv3Re/iaXJ7y19UiziJRnL8EEd\numZb2AjWJoV8AjGZ7i2Kdn38AjaS9dUN6ppTN7Nz1NLut1NAYbmxS6lKyY2Z\nBRo0bZeBKpM3tgl93iu+iem/8HrHnjjpEbaHyvvonTOqf8JmKZ2tG4FBX4mM\n9WNtq8P/4bPHv8qGAmsk4CpAhg+vrykUAPiBt123AdNdcR1LwDIdcQb6gO0a\n9x7abs67aPLFqE+wRYvufgcBExnJyeLZu029zZi0BmwBNs6dt/3wMFanka8n\n/lEU\r\n=7Msx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIECPZN+QtMjGWooRJy4OyNwNGN7reO57uXggwWZlWASZAiApB1qgCuXOZawZIvmg0ZHYKnsJwOmh0dlHfNa++YLjvw=="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.4.1_1547592418525_0.7679405264590327"},"_hasShrinkwrap":false,"contributors":[]},"1.5.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.5.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","lint":"tslint --project .","mocha":"mocha --bail --check-leaks","test":"npm run lint && node_modules/.bin/nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html","travis-deploy-once":"travis-deploy-once","semantic-release":"semantic-release","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","concurrent","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"5.x","@types/sinon":"7.x","chai":"4.x","commitizen":"3.x","coveralls":"3.x","cz-conventional-changelog":"2.x","mocha":"5.x","nyc":"13.x","pre-commit":"1.x","semantic-release":"15.x","sinon":"7.x","source-map-support":"0.x","travis-deploy-once":"5.x","tslint":"5.x","typescript":"3.x"},"dependencies":{"throat":"4.x"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"1029f14cedd5585355d99931d421b45eef81953f","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.5.0","_npmVersion":"6.5.0","_nodeVersion":"11.6.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-aBQeFniF1M+6PkTtpbh3/NYsr4OBQF1jDcxvJGys2XSbS5eEhTQEQ1D0CWS0G1uAhap9TKj6HTpGL5N422SlJg==","shasum":"1882e05076e6bb5caf60371f37562618340580fa","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.5.0.tgz","fileCount":9,"unpackedSize":102584,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcPncPCRA9TVsSAnZWagAA+iMP/3jJ85SqAmVEkG4GpQbB\nhdLUir6LMAeMUqk2V2u0AaoBIX/oOj2kbb5WUn5eI9QZ1O9x2N8ShF0gIySD\nYp0bgHiMRGFazZ+GudmzTwp+zCaCnQkJzDYt61jXR6W9Ae1KriFkVk97Mwub\nFcXffA0ODeb8OwCZm/UsxGyWsKHEX1d1u72FCLY+bCWb5w6hesGwvdAp7WDw\nKXRw0gjv3Lk5KzaSWSYDkOER/+t4TiYTir3+RH7TXzcjx3je8gbGCZaZGPG9\nTjcYrnqY5WDM5rhcUIlU6ReDzx7j2o42IOUDWjYbBIgxINtUg3CEljMaADkt\nr5mdgk8khw44POiX+vGYOLDl6sdnDudiUqXbaFM3kGsgnnRCYE3yMr1FJF6r\nfnOXokvh9nO6X17l3Gj1BKUt/ZQ+rYoewtJfXHDuGVjLHO+k4kSyO2azZx6o\nLAVTcvvLy3MjjHcHxRLaMks3e+42dPLOmlEeQp75O8KKFCFBE1xoZw4eIH0n\nEcP8k5J1vNWDuASLDzSwT5C3guNKCvzw5A8AceZTKwE9YCyTtgGTKpDz9SNX\n+SX5/dPgHJ+k1B3cdlVR0TrUtRZ3Su5aIehRPeOATStyPPYcQkgZqcat/Xjt\nd9ZphTC/vXiA11envW9L4TadBXQaTN1R1Qqk28PBBAq1wizWj55KpcHgax5S\nvrsn\r\n=rtgC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICMEK99bJLjaffcIDvVE+C0uHi0Cy3g4p2G53vyDDojAAiBN/vZgBx0YQYyNScBq2XOBVeCNZOl7zijiAlyLjVqQNQ=="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.5.0_1547597582423_0.22374230549126772"},"_hasShrinkwrap":false,"contributors":[]},"1.6.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.6.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","lint":"tslint --project .","mocha":"mocha --bail --check-leaks","test":"npm run lint && node_modules/.bin/nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html","travis-deploy-once":"travis-deploy-once","semantic-release":"semantic-release","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","concurrent","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"5.x","@types/sinon":"7.x","chai":"4.x","commitizen":"3.x","coveralls":"3.x","cz-conventional-changelog":"2.x","mocha":"5.x","nyc":"13.x","pre-commit":"1.x","semantic-release":"15.x","sinon":"7.x","source-map-support":"0.x","travis-deploy-once":"5.x","tslint":"5.x","typescript":"3.x"},"dependencies":{"throat":"4.x"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"1d1f24b5eeff89eee43536eea489bacd78d3049f","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.6.0","_npmVersion":"6.5.0","_nodeVersion":"11.6.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-U/Ej/lzdBYTc2XrugcL5EpJlADvO65t3IFl4f1cDz+rwPBc8gvhsMjHAuxvaSFvVmVGpQtlvEK26pcdgPvazxA==","shasum":"39da0b15aea02e0e6ee6706971516a3c0c3ee466","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.6.0.tgz","fileCount":9,"unpackedSize":107698,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcP6AQCRA9TVsSAnZWagAAR8QP/AgjyQv/JHZ2nNW2qUFA\nNcsfIPlTj//riFLrQqtbJ1p/Y2r8dIEC9opBKpukigemUZI3XqIEL1kBIjW1\ncSzKLqW7uWVG/6fSaiUvWJk57vr+MFuQ8dhJhcwwZR2ntzerTJI9bRY/j/Xs\nSL3X1WNjPOTsKUDoj6rVr7zUlin7vDgo4yeicWx+aelZ2131KOv1I5BrId3Y\nt6Y1ArcVsGeKHG3OSRs4GMyB+VsES7qr5gd6sFssVFMbKpu/x22Asdnck6vU\n1QvKkWYyJY+uJ8mtTc0Foh8tXQ1nfCqnZVG/HH55FSR8bcTJqjgbKMqiM9Mn\n1Vx189mWC7dbdPsS29zCrOJPmOyCzni5QFVBZ5Dq/6ZeQ4TFkdnDPjRMYxHE\nAW3N7+LrkcLXMfWcbFtCYFihp3JBEKW7+beU2EeKDYx1IL0J6XSwelwHkgKU\nlN7nTB8UlJhETW1HZ443R2BwX/vv9HEo4eCDPBBI6F+3lqQBg6aNpb3xvyWB\n4KltnZatIzmMCKkaEvebNVKMsPhFpj2VmpKDikBcm5Of0KddOF3REybOu8Fr\ntuknysexhLco9LQdgXV7n7as33dqBQ1qeORxc4sqxh2r4AUv5Kv8PvYCHp8x\n3Q5sTDltZLxZdMl2tM0B6UEcuxS9MZiW3YkoFpgfGvgjVQFEooQSVKSITtyy\nWhrq\r\n=H1r3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2KjTxYOIMcAL9jEoiE4FJCjfvQKvpVRTrdoNUv7qMnQIhAKkNa2hiIfZ/ZTBUu4bHPgOYrU5k+eF1vvDSrbllrAb8"}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.6.0_1547673615508_0.5816842601835417"},"_hasShrinkwrap":false,"contributors":[]},"1.6.1":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.6.1","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","lint":"tslint --project .","mocha":"mocha --bail --check-leaks","test":"npm run lint && node_modules/.bin/nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html","travis-deploy-once":"travis-deploy-once","semantic-release":"semantic-release","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","concurrent","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"5.x","@types/sinon":"7.x","chai":"4.x","commitizen":"3.x","coveralls":"3.x","cz-conventional-changelog":"2.x","mocha":"5.x","nyc":"13.x","pre-commit":"1.x","semantic-release":"15.x","sinon":"7.x","source-map-support":"0.x","travis-deploy-once":"5.x","tslint":"5.x","typescript":"3.x"},"dependencies":{"throat":"4.x"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"d46de39988a9075f9c2bffea8e247874d982f27c","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.6.1","_npmVersion":"6.5.0","_nodeVersion":"11.8.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-Ls/zWstGTo6Yb0ste7kuSL208EDwzs9cVt65YhQmC4s+GxbA4OdQfkGzdMR7qqUom0n+HwyKdcd96zOtDjDjGg==","shasum":"67a7a7e4f003fd872549b78cb0690e572a6e5bb4","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.6.1.tgz","fileCount":9,"unpackedSize":108537,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcUCHYCRA9TVsSAnZWagAAe1sP/RchCuWDEofXZXFEKgsI\n7q058vonYblVUqgEh+DCiwdlaIhRNn7/akd1NPWiXp6Yhyc98vbDWhxsy9CR\nhTwyDQAmz1oL8Elf7unfiBur/LvHrdY1T/+w1JR72q29N/gLJn73ErcB0MnX\nFCKm/JsT/Wx7sE8ZKM9JRL6SkvFbhH9HMzS0qyEME6Ws/sAIXlqrta6OMHik\ncNgEmvdfx8LaxI5f9g+zQs6KpS8jpXkL7Icpo5X9qNEVRMSuynjO6vazurXc\nw84bR5OAb/SS6wXHU7kuFGuEO1dQnBoscu/2ScxVRRDkKPeBsfVOqZVS4zxZ\n+zYmFGk37oqzkJFapOwFgv7gvbVsfmnaqGSJsiIDe7gsCRgShYQNOopiXf01\nlBHGqwgR2JZqNX+IIBtMxSI0TeRhvSYw+Qh/am5cfGiHXfn1tZndOkp2iUtc\nWKbxAqjsLZ1MtqfNdrJeYo2PEnEaKercW0JHQxyS8ksSMf8MsDxDfh/FqKpe\nBrSbXXCSKTTuSlzS3V0eICzzRmYLCchL86oYGrY1x3gyjBLwAg1ZpvXNQFSY\nrm19JeQvvKKmptlUjt3BV6W+zIVsIIQb7foFKhvqSmfuhgA0IIttiulSDvm7\nDxgD9IDt5otiqv4zD7MFFzW7gYq5kM5XzFIUXfmP1K75imKjI1xf70+B1tCS\n85/S\r\n=4YLm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD6J8Ly4eDrwnBgqpptBFYvDnaOPhJPko8Ls60ZCRgdrgIhAKzQ/2StSuF0gVREQCb2ilhd/jSOnABU/OjwMoK+mX8q"}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.6.1_1548755416005_0.30306187828534936"},"_hasShrinkwrap":false,"contributors":[]},"1.7.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.7.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","lint":"tslint --project .","mocha":"mocha --bail --check-leaks","test":"npm run lint && node_modules/.bin/nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html","travis-deploy-once":"travis-deploy-once","semantic-release":"semantic-release","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","concurrent","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"5.x","@types/sinon":"7.x","chai":"4.x","commitizen":"3.x","coveralls":"3.x","cz-conventional-changelog":"2.x","mocha":"6.x","nyc":"13.x","pre-commit":"1.x","semantic-release":"15.x","sinon":"7.x","source-map-support":"0.x","travis-deploy-once":"5.x","tslint":"5.x","typescript":"3.x"},"dependencies":{"throat":"4.x"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"08d26ca253861050ec2d224e5e59b00083b2e63c","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.7.0","_npmVersion":"6.5.0","_nodeVersion":"11.12.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-NIBBRKQVUtK86hvLAWY0UqA2sXpNvkLwORo8K0lFeo2RfzNI0ZkjacdS/1FzOyUWbXRHPmsR3+iFtxQNxc6iVA==","shasum":"68f3f137c69a314c62c9497a6e5703a5641e35f6","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.7.0.tgz","fileCount":9,"unpackedSize":115225,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclelKCRA9TVsSAnZWagAAtYEP/iJDE9wZ4QAfZ9+gNGAA\no5YxCoTjYtRjj9P36O1Rry/zgvQiR4MMIwien1Ws6Mjt75Na0ULJ8RfNsEzm\nfoOoxeoAAK/mXRgLHQO/SrLY1/6Ok/Mgz3NY9jDiEIw2UV/hvYIegr0w/idL\noixzMSi8mhzINNMu3ikPUd0efb3zTzeDyfWbcDk3KaDWgaE7mcdSwiaNbov+\nV1ZaT7b1YsBOrN4bUD24sOXDLbLsgqlr6hF2Z4F2w8Jfv0HRm7Uq/7e5egK7\nQSPSKKhWkTkVcEM9BPytCwQtr7NG0gb4HQSLrIIpRa95gZ6pdikhia1CU43P\nqV4BnJ5MuOyf3/lOxe6UYEgXO6FMBohPkygxGenmfL+teRcgTD8oU9Gkdbnh\nTJbFEobEW+mY7+yVVKJc9c4aIJo3OKLOcbO2QT93TqlxGOrapuXwriG5Suoo\nlMMLJ+wRheDMKpyDDIG+QOKgoJsgi+8PKenTSvoUbXZDEiIjwqd5QCV/4862\nVRaSjFpnZSmlYi1a1GjSBaurS6G/X/Ud4XgIW8d0jbIn4sRLar8bqJm+sJGp\nPZf5oITOgutqV6YAbbhj8xvdeYyRLSUDNyGrnRQ257tOOSAmZ0qUfhVjgsN8\nfZBV3M1Tj2ERCu6PHd20vd+lEYiGg8qF49JsxUyzJHWFotHQPlE4WsR6mz03\nPxst\r\n=zwV+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDCd1qdvUxTVna8FFvK1ix9ref8INTKJML4y78uQHj9HAiA2qGIHC5YTswXHUAjbYTJNrmSfvzXRFaJGRfFTz+YsnQ=="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.7.0_1553328457608_0.7116271988244971"},"_hasShrinkwrap":false,"contributors":[]},"1.7.1":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.7.1","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","lint":"tslint --project .","mocha":"mocha --bail --check-leaks","test":"npm run lint && node_modules/.bin/nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html","travis-deploy-once":"travis-deploy-once","semantic-release":"semantic-release","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","concurrent","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"5.x","@types/sinon":"7.x","chai":"4.x","commitizen":"3.x","coveralls":"3.x","cz-conventional-changelog":"2.x","mocha":"6.x","nyc":"13.x","pre-commit":"1.x","semantic-release":"15.x","sinon":"7.x","source-map-support":"0.x","travis-deploy-once":"5.x","tslint":"5.x","typescript":"3.x"},"dependencies":{"throat":"4.x"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"4a9c32ff0d4ae4437f03db70926b846a0a0dea9f","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.7.1","_npmVersion":"6.5.0","_nodeVersion":"11.12.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-yWb7o0evaOOLE0YaQXmh6d3UNQU4Zl/5tRn6N/77FF1INZ2e6T1FDuKPhp0aXl//py5a7aVn4lWeHkSoCkuZ9A==","shasum":"28731860eed68b8d8f6020a3032571aa7ffe9e28","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.7.1.tgz","fileCount":9,"unpackedSize":115473,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmSXUCRA9TVsSAnZWagAAqDQP/3a+0e/3vluVJH8EAHBV\nmNH/sZ4vF7984f7e/czpNfOJ8P36QrNM9UrFaWYd2NhnoPJzBejjetRRA4jY\nIG+P/VbPnmb7U1qMKd3GTyaT8EEbqFP9mLmkFH7Uk9Vp4n1e2kEAVURz7jDE\nxD+cOJuYdzQHgLQ9PooAK4A29G/GUxZY1KG7hczeVgL/uBGF2kiyREZSMFB9\nxd6oo1oLVXrVRJ6bY2r3jCMEFMfapsEQqSIne3j8ogiWkWUqNwcEIIIPlnpD\nSeEof6jg5LC6Imlf6Nf8aH0ZD7ChWTYp6TJZYJCkQbOkypo6AO81QvgT6F0e\n3ZGEiQSjT2rBkiN2O2kbszwFZhKUu08R3BtamhgSyAic5sm0T2/98x0GNFst\ny77bDcFMUu02/piG1N0IgVnuxigPalePHFnJFKoCLTL/IlaExLr0si6rby9g\n/EaxLMpjGIHbKvndkWM2TG7nNEsz7ao1AD2qBX8rT0VnCy+iapBOLz9Pdp7P\noPOjiCY/eI0mXD8fvB8mL733tCPi+a1wtN4ovPmTW3L8q9FeAUFeKN4TIq5Q\nZwskdQ3DR7Tr8ipf7zUkndKDMKTBKro/E3DzIkwlyRISiby0bmFF1CBxdk/Z\nl2laYzxJGgVQ26+Tn6lPjb+TrPEflLcM9462BJAtP3SHtUZMIfjJCYcSlJ5X\nQpkY\r\n=CJg+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCu0bujoAb2dJovTKs7kysKmB6keOwWSAa9T16V20fEgQIgO6FSZtoA21wFjZu447G66jqQZfiKxM6i5iqozR6+M9g="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.7.1_1553540562799_0.9645182713410627"},"_hasShrinkwrap":false,"contributors":[]},"1.8.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.8.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build":"scripts/build.sh","lint":"tslint --project .","mocha":"mocha --bail --check-leaks","test":"npm run lint && node_modules/.bin/nyc npm run mocha","buildtest":"npm run build && npm run test","coverage":"nyc report --reporter=html","travis-deploy-once":"travis-deploy-once","semantic-release":"semantic-release","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","concurrent","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/chai":"4.x","@types/mocha":"5.x","@types/sinon":"7.x","chai":"4.x","commitizen":"3.x","coveralls":"3.x","cz-conventional-changelog":"2.x","mocha":"6.x","nyc":"13.x","pre-commit":"1.x","semantic-release":"15.x","sinon":"7.x","source-map-support":"0.x","travis-deploy-once":"5.x","tslint":"5.x","typescript":"3.x"},"dependencies":{"throat":"4.x"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"5f14b2e82be2b110b08d4384dfc6f3ebe318cf35","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.8.0","_npmVersion":"6.5.0","_nodeVersion":"12.2.0","_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"dist":{"integrity":"sha512-NrR/uctgnZrdF0VAUxwJGLZw2gK/9eQMygiy2XFC57dA1lU06hJQabrboplUiFmcpRPWY6qQoQPz65aiX8RS8A==","shasum":"7cb401ed1a7281b023fa5ead0b738409abed5f45","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.8.0.tgz","fileCount":9,"unpackedSize":122474,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0veTCRA9TVsSAnZWagAA2MwQAKF1PQr3Fe1u2zhxnj6l\nPoztARgG1Vt6g37tTzgGYPM+HdVkdCEprBqBksLXDcud732s8Gin3aRWnDlG\nX/SQP/KnIue+QO0OGfP/fBDydCHHtFHmtvjNbOEvcCwozjYluNm0vQhv4/4b\n21jKjdwn0w76Gjp1nR/+5GsbAUHgX5c1f3L+a9vVS/9rFhJP3RC+r68QRhMQ\npJmdQKCg7JLTUcGT7ehSX76svipswuh31XBjicMjdrR0s+Uf3PR0O7bmp4aH\nlb0463OKhwgvC5pOVbSuiS9/PywL8vsSJkIXNb1kXl1sCbR5n3qsaS7v/noS\nWFWmO8lTziGKlaYkurBRAUyhzbxbIPFsr7rZfD/9RB651vOTUJgLIg/ouDd+\nVKJqtZ2bJP6I0TYbGropq61/7mQTTcsdalyq4BgwFWihNqA6NmrkkSizJGAs\n/ZYtaej9l8BRmD3+UvaEqV0iy8OD9Oia/VocQWt8jz/yP1UL5SgGBhlTx6Ou\nfcn/Ut0L+PRuhej+63Vcr/m6ZXNDN7TgKqKiIdW45xyJzb3iGOdHJr0IEy5k\niVPcG0wJfLBjqilnD7yZ+KEWrj4wctRJRefe35BPkkYgoz9TGh9wg6ebyhZu\n9DmZJMd5sgx5FG6uxs76cYKXMtQ6Evn7qloZ+THGjAzwt5Zn7We9ggMgAmN0\nxidx\r\n=c4XF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBpwZl2aVBQ1YETCmMppH6hFWPulc8mx9uxkT5prlXr3AiAJEhdSnPYqsJiD9JDtzo1qVS8YgAUJhUT7rSrV3wr3lA=="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.8.0_1557329809817_0.3922905668073351"},"_hasShrinkwrap":false,"contributors":[]},"1.9.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.9.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build:dist":"scripts/build.sh dist ./tsconfig.prod.json --module commonjs -t esnext","build:es5":"scripts/build.sh es5 ./tsconfig.prod.json -t es5","build:test-out":"scripts/build.sh test-out ./tsconfig.test.json","build:test-out-es5":"scripts/build.sh test-out-es5 ./tsconfig.test.json -t es5 && scripts/rewrite-es5-test.js","build:lib":"concurrently 'yarn build:dist' 'yarn build:es5'","build:test":"concurrently 'yarn build:test-out' 'yarn build:test-out-es5'","build":"yarn build:lib && yarn build:test","lint":"tslint --project .","jest":"jest --coverage","test":"npm run lint && npm run jest","buildtest":"npm run build && npm run test","coveralls":"cat coverage/lcov.info | node_modules/.bin/coveralls","travis-deploy-once":"travis-deploy-once","semantic-release":"semantic-release","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","concurrent","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/jest":"^24","commitizen":"3.x","concurrently":"^4.1.1","coveralls":"3.x","cz-conventional-changelog":"2.x","jest":"^24","pre-commit":"1.x","rimraf":"^2.6.3","semantic-release":"15.x","trace-unhandled":"^1.0.1","travis-deploy-once":"5.x","ts-jest":"^24.0.2","tslint":"5.x","typescript":"3.x"},"dependencies":{"throat":"^5.0.0"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"340b4ab1ef014a563fec2c1d214257c2b0498905","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.9.0","_nodeVersion":"12.6.0","_npmVersion":"6.10.0","dist":{"integrity":"sha512-BiWXDKi5r17EK/h59RkEwxEzEoxjtAkl8HyrEnycP8osmOOn7tx1kuEuGnOLhDTKZ3er7Sf3QXtXXZBnDKxEIQ==","shasum":"501221366eaafc5e3edbe6be4dc86f74ada3fe99","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.9.0.tgz","fileCount":9,"unpackedSize":136415,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHTDUCRA9TVsSAnZWagAAcrIP/0DledPqV8iqvAE8IeWB\nHSCN+vvpDTtVvABtANDCdpontjW6niHmmGXdBBb2V3NYFqGy7/V/0dP4z9j3\nYPEVJ04LhTCS3QL4lT5vR4W37qkWOa4fBFADaORudQtBT0hXAsIaUJLNQjvx\nJBApIDTUSYk1ZNR9s/jnb9apEQUUYvphU2tLYGm4ICN3t8aLTmm3z4xHh+l8\nAPP8UT+07fhI+PgETnxVP7DMFbbqnIs6xtHuQLxO3wCsyqkz6gdkZQSSWeYv\n2E5yXpczC8aaiNogHSiwGC0igb7y/8iZGQpnzUHL4eI7BZMGXCQkwc96Zrik\nd+rDXcV0B2cwShyMtYTmWYqAA9JXXmKOP+ly0c2gjRXZRVbJSls2AWra00sI\nQ1hLDSYnq36pp6Gmwf/ttZfOpNMBHm522/dRlZUuvgXoDB1HHbfqeSVLDFmC\n1x3FmqI9yc8XEW//sHfwtp8tR3SATk4rEGW3gzMayVTLDKxFOcAwSQguHuNG\n8CgNnlAo4P8DxPQ/AOuk6f0BWk9LQaE33SzI1L0un6AWXZOkI7s6QfxfuRZf\ndOvFra0GVGisegJShF1plr4jc+6oXHKFpatp8LIXwMu6ngU1uAPDMr13E55V\n1vNNdzWu5fBwIfiApcPhjsgsvfdUgcYyxitMMiv9ePy4TiXDZs/rkAeCrr6M\nuwnf\r\n=tfSx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIByKnBoN6+w1os3EngSyqLboVLeM3ZX5mEVoqfFbYq7QAiBSe6dJvULN15HnLmKYHh+wf2/a/v+gUoVeA6DymFGVog=="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.9.0_1562194131576_0.768847418239939"},"_hasShrinkwrap":false,"contributors":[]},"1.10.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.10.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build:dist":"scripts/build.sh dist ./tsconfig.prod.json --module commonjs -t esnext","build:es5":"scripts/build.sh es5 ./tsconfig.prod.json -t es5","build:test-out":"scripts/build.sh test-out ./tsconfig.test.json","build:test-out-es5":"scripts/build.sh test-out-es5 ./tsconfig.test.json -t es5 && scripts/rewrite-es5-test.js","build:lib":"concurrently 'yarn build:dist' 'yarn build:es5'","build:test":"concurrently 'yarn build:test-out' 'yarn build:test-out-es5'","build":"yarn build:lib && yarn build:test","lint":"tslint --project .","jest":"jest --coverage","test":"npm run lint && npm run jest","buildtest":"npm run build && npm run test","coveralls":"cat coverage/lcov.info | node_modules/.bin/coveralls","travis-deploy-once":"travis-deploy-once","semantic-release":"semantic-release","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","concurrent","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/jest":"^24","commitizen":"^4.0.3","concurrently":"^5.0.0","coveralls":"3.x","cz-conventional-changelog":"^3.0.2","jest":"^24","pre-commit":"1.x","rimraf":"^3.0.0","semantic-release":"15.x","trace-unhandled":"^1.0.1","travis-deploy-once":"5.x","ts-jest":"^24.0.2","tslint":"5.x","typescript":"3.x"},"dependencies":{"throat":"^5.0.0"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"65faeb5ba4194dcb5ad046813b7a50d889f09213","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.10.0","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-TYizJ15d58IPjEcsIGEgp0lAALwnEobzFTl9/SW4Q5xI51y8OYHwS5NRtUUhi3WzMWneysxf4Zj5HRdK9smMaw==","shasum":"1b2b260d840591ada9c5f1a2b91d45461c319c90","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.10.0.tgz","fileCount":9,"unpackedSize":140255,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeE0khCRA9TVsSAnZWagAA8ksQAJxIS3oOj1D/Rjt2uv3i\nDOqSvPy7cq/Z93TqFdHe6kDMS++C3MOQYO2e8Pg4sNYLUj1yTD0tyinMUZ/I\n6SWVMODdrsx+m69mDeA8T/XNpaY/Je/heKfvC0gnTSVulVRfFMiCzmzLgu02\nnrM41UGR25m4UliXHjTcPJOba91XJ1upvgPj8nZrteKRmy17cSPsqB75rhIt\n4tJtMJ7RyYx58z9aRnzo+0dL7M1YJfKzV/5eC/v2zSLx8S48sslFtZy/U7B8\nhZtQ/ayWC08sb43CxXOL3i+Dgl6X6lwT6QLaGIqZQsZSOHlJFer/h0PpnHhA\noUZyg6WXZVBf5HmCDH1FhKnVhJzXlHHD1WYMl2EcTucoRNspr6r9aYmxQEyW\ncvLXttx2KU0jtpv32YsTiLtknc1n7PVP9F9iESDWOQQFJ/svZuf5SZI95W1n\nhgJJqVeSh8yWPxRwHZyAI8rXP5cYodu+bU3vlN1Iv9nSrlTOU4PdTuAasZf7\nHhY+OyCaOjVmzZfeif4d/F1EyjCkOmlrdSUeqfZLneb0S55sJAoF58LExYal\nx7cXolww2a/6YhZR3Iaw4tSKPMhFL8Kzg3yLjsrTnEEpqHzpxoYPvQQehfWd\n5QWFpoYY4XOPqWQOAYOAAp8exGydOdpOGyKa24ihbme6iK/RK+YTdEGzdAoV\nHIyn\r\n=kvG1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTsQlvktXGJCb8Qe/0X8C/cdPV/1yvtC9F+EtDUNW8ywIgEuPBvbzE/S/ZIMMjbTjyTE8kKe0od13SdsW3lP4mJJ8="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.10.0_1578322208707_0.47726827033556507"},"_hasShrinkwrap":false,"contributors":[]},"1.10.1":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.10.1","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","scripts":{"build:dist":"scripts/build.sh dist ./tsconfig.prod.json --module commonjs -t esnext","build:es5":"scripts/build.sh es5 ./tsconfig.prod.json -t es5","build:test-out":"scripts/build.sh test-out ./tsconfig.test.json","build:test-out-es5":"scripts/build.sh test-out-es5 ./tsconfig.test.json -t es5 && scripts/rewrite-es5-test.js","build:lib":"concurrently 'yarn build:dist' 'yarn build:es5'","build:test":"concurrently 'yarn build:test-out' 'yarn build:test-out-es5'","build":"yarn build:lib && yarn build:test","lint":"tslint --project .","jest":"jest --coverage","test":"yarn lint && yarn jest","buildtest":"yarn build && yarn test","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","concurrent","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@types/jest":"^24.9.1","commitizen":"^4.0.3","concurrently":"^5.1.0","cz-conventional-changelog":"^3.0.2","jest":"^25.1.0","pre-commit":"1.x","rimraf":"^3.0.0","trace-unhandled":"^1.0.1","ts-jest":"^25.0.0","tslint":"6.0.0","typescript":"3.7.5"},"dependencies":{"throat":"^5.0.0"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"9ec96e62e6ba82427388cf68bf1db343530bec77","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.10.1","_nodeVersion":"12.14.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-FaMa4odrBioSPGqBD3MsIqmUT0S6ZVImb4pnzEAFQCPZfRZ5xu5aDIF7L6B9x7ciHCGBZtN4SQ85KYYiAupUAA==","shasum":"55abed522fc1fc928a3bd0d31e5257ab4cc752e1","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.10.1.tgz","fileCount":9,"unpackedSize":140001,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeLrCMCRA9TVsSAnZWagAA21gP/A23bDwbFf0PyO4Ybdky\nj2OV7WkVL32snyehczFfNoRzkM4GScqSsopb+NKcv//PGW+kZejju8HiJOgS\nvGMZJCoHMZM7wnHGjOUiwnZJcuaAxtFMU2KK+0bCYvOH4nRSs5uFvrjeFrbL\nM60P+kpDlkEmWV+ZYeYb0UXvSKmr0chgHq5impmktE6ICo9iqbrkZJWznIS2\nyVUFcGpIiBitDA6CZM6YN2JP56tRMgqwvXIIlzLeGHqWbZoayuKjm0J/zGhv\nU0qTDkeaSresvDG74A8PEMayFvQlH4teJ9HZw4p564jSIHlMTLN0z5W7efoN\nMfkmvTByZMLFCCE3T7pKd4EDkJ8DmRGqKLNWBIpGK9ReyApKNE7W8uhGXa8d\n26Wj3As4w3b7raUOJUPkDvY7tGDzq8fBqDQ8GiDZJhTZ0bYFTEYxyZygfwEu\n0I+h5RAk6IKix7ylMGnV6eUxcJSdwlyWTUH9cJz4xAWEuaM0FKlPIEngY7s/\nrZCBHWTQ2fjwaWKuBzam3r51b96bL/i2YvjWioAfDYOo7FfTLYly70JqKcZC\nlEiNgt5oegIgYzxoZSO0XY3AFB2EmHDiT/2t8UsaT8iOoubIQA+YtpPrERV6\nY1YAY4KTIVJQXw1+iUPd0Kfvyxe8CQkFdDhJk0s9l06Ne6hs6oEo6ePmmkdt\n1NC6\r\n=dYFs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKMazu/DCqPn6SUXNvoosArbCpMq6QGzNSLNmbvkGt7wIgPaW0RhnkV8TWhOazKGkhV7JkycNDwH+qkM6MJFtrorA="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.10.1_1580118155726_0.918938470070509"},"_hasShrinkwrap":false,"contributors":[]},"1.11.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.11.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","exports":{"import":"./dist-mjs/index.js","require":"./dist/index.js"},"scripts":{"build:dist":"scripts/build.sh dist ./tsconfig.prod.json --module commonjs -t esnext","build:dist-mjs":"scripts/build.sh dist-mjs ./tsconfig.prod.json --module ESNext -t esnext","build:es5":"scripts/build.sh es5 ./tsconfig.prod.json -t es5","build:test-out":"scripts/build.sh test-out ./tsconfig.test.json","build:test-out-mjs":"scripts/build.sh test-out-mjs ./tsconfig.test.json --module commonjs -t esnext && scripts/rewrite-mjs-test.js","build:test-out-es5":"scripts/build.sh test-out-es5 ./tsconfig.test.json -t es5 && scripts/rewrite-es5-test.js","build:lib":"concurrently 'yarn build:dist' 'yarn build:dist-mjs' 'yarn build:es5'","build:test":"concurrently 'yarn build:test-out' 'yarn build:test-out-mjs' 'yarn build:test-out-es5'","build":"yarn build:lib && yarn build:test","lint":"tslint --project .","jest":"jest --coverage","test":"yarn lint && yarn jest","buildtest":"yarn build && yarn test","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","concurrent","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@babel/plugin-transform-modules-commonjs":"^7.8.3","@babel/preset-typescript":"^7.8.3","@types/jest":"^25.1.4","commitizen":"^4.0.3","concurrently":"^5.1.0","cz-conventional-changelog":"^3.1.0","jest":"^25.1.0","pre-commit":"1.x","rimraf":"^3.0.2","trace-unhandled":"^1.0.1","ts-jest":"^25.2.1","tslint":"6.1.0","typescript":"3.8.3"},"dependencies":{"throat":"^5.0.0"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"80c9bb31f0c794684b68b4201ba19ff6a1d1d478","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.11.0","_nodeVersion":"12.16.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-sfEbPgfxmc1nlzNaZYP87od9EUuhK6YifYv7ItClYm7Y3pPmZarTXbeTDtBp4GJ8rO9n3iaYH8ig9Jln3DZcHQ==","shasum":"823a3d12831fd01fd44d1d6f6ebb1c21e055cd30","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.11.0.tgz","fileCount":12,"unpackedSize":186779,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJebjGmCRA9TVsSAnZWagAAkxEQAJaxvEqdfKJwOsBTIuo7\nI+BvFU3vf5l485kbqG+XJ/Fj5xo9zzyVMGCGKzIOFR7E8t7yR9SoNiaZWMqs\nyCmsrtCLdobSPqvJxCP8/3/LNEJOnXrSTOZjQ6Ic1AaZA0eOApYpD3+raHXu\nhZfwQtBUG4JV8fYRxkUxrzaVZssmr6cFUZKlMTTdHwa8NjpDpCURI54KM8oO\nbAlN7gyoJu6OyMnKAASxZ3e3cQ46mARBqZWZLTZrJi/0mQhEwmPB/bio8uPv\nRSFM97Cq2h0sdZuiAK2hPDp4SxMIuu4Zbd6OaT0vsE5dIX+uE6xwggrcG465\nrcG2EVUZuN49l7oLrscQhO345bVdKDta98f7JYS5+uELKTJMqX7YNnttGof3\nq7thRoU4RK6RoOF6cFZQZRSHUaEn6Y/402LtDbUsEhHk4HAQotNZJVn+on9n\n9OIYKMF27MD0Uxt3it+8it7ErMmyJUxrgNHG+IKXC4CVgv9QaPkilPcapqRp\nZg2pJrPa3fkxFSo+YNEjvjv1Ckd3CKL5WpeRgZDu5P/VMFImdmLzaI1rZxg2\nv/hDPH+IT89gNVYNMbQVZWyO/gC2e3yTmfatn67x8zS2+Z3aiQtQjrnt7qrZ\ntbl0CsXF3ulD++S0cQXiW10OGL2Q6Qn1kXGmtFFuq6n6O3sZ57A3HyqxLX8J\nJjF5\r\n=CfRF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLKT+rnFOPIQKdrKQyLCzLna7smTeqpqVJAbzJtseMgwIhAKTUtPBYIzxNhSdH8A1jj0QNs2GiuhZXBI6O+tTDDZWb"}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.11.0_1584279973484_0.38660781712531267"},"_hasShrinkwrap":false,"contributors":[]},"1.11.1":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.11.1","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","exports":{"import":"./dist-mjs/index.js","require":"./dist/index.js"},"scripts":{"build:dist":"scripts/build.sh dist ./tsconfig.prod.json --module commonjs -t esnext","build:dist-mjs":"scripts/build.sh dist-mjs ./tsconfig.prod.json --module ESNext -t esnext","build:es5":"scripts/build.sh es5 ./tsconfig.prod.json -t es5","build:test-out":"scripts/build.sh test-out ./tsconfig.test.json","build:test-out-mjs":"scripts/build.sh test-out-mjs ./tsconfig.test.json --module commonjs -t esnext && scripts/rewrite-mjs-test.js","build:test-out-es5":"scripts/build.sh test-out-es5 ./tsconfig.test.json -t es5 && scripts/rewrite-es5-test.js","build:lib":"concurrently 'yarn build:dist' 'yarn build:dist-mjs' 'yarn build:es5'","build:test":"concurrently 'yarn build:test-out' 'yarn build:test-out-mjs' 'yarn build:test-out-es5'","build":"yarn build:lib && yarn build:test","lint":"tslint --project .","jest":"jest --coverage","test":"yarn lint && yarn jest","buildtest":"yarn build && yarn test","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","concurrent","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@babel/plugin-transform-modules-commonjs":"^7.8.3","@babel/preset-typescript":"^7.8.3","@types/jest":"^25.1.4","commitizen":"^4.0.3","concurrently":"^5.1.0","cz-conventional-changelog":"^3.1.0","jest":"^25.1.0","pre-commit":"1.x","rimraf":"^3.0.2","trace-unhandled":"^1.0.1","ts-jest":"^25.2.1","tslint":"6.1.0","typescript":"3.8.3"},"dependencies":{"throat":"^5.0.0"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"fe00e08bc8b95b6edb11a2791dd772acff5d24a3","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.11.1","_nodeVersion":"12.16.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-CusdnaFhhjhVGVBIlaxJ6FBNjxx0OOkEuXXyVVDe7PK1Kv2ulw2/OUBpXRBQ6+4+iA4trYu64ccUEb3aLxpD9w==","shasum":"3224cbc7985bc6fb20697bb3397a80b3d36694e3","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.11.1.tgz","fileCount":12,"unpackedSize":187155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJebjPGCRA9TVsSAnZWagAADhUP/jtZi5FlQXW72M74BMIy\nXXOG8g2rHcs2b3kvduNxzcAkkg5pzTgFSrIc6pB/qC+og05EULnpp+tt0SeF\nYz9G22wr1pZXQTnLBalyOX7sMRA4pIcw0nFpltxuA/CnCsjuWUXNe7Xf0AQh\nMkWviKqmHeKmge4U5W/AM8/V76eo6P1x4ltJ5wHLN/dw06nISkhIFtXvykfY\nJOxzfAF0eZlbZOSkyP7j6U/Xq9USFW0/4TJC11BYeD/fqzDHTLoZDKCZbWdr\niqg7KL1Lv9Y8JDYOXcsnhiDx3uKJeTUypbV1VwQbwOZ+3+lbacEcQSmoSoNK\nxsBLnhwQozqt1CBYMwTAmXNSU3JKCK0YjtuVEmAJjwvHq8ix+kpzoLigmJ6a\ndl11NuzdV5rkcEfNWyXt+HPI7IRWvYiwWO+a215jXeLHN3qDPigdZC+o+7Aa\nvc1nMokRa433Lf9+tGvMKcQzSOk9Pu8ULsQ/YLNATSOU+t/zUGmXFiIdoYWq\n9oRfVZmT9HZkiFH7tr2nSjA0kEDezMTooe+c0XGIld3oMMZ8pkiU25QqMYgF\n5GS8vBMQ6h9O1d5aYea6uxXM02CRkdzkHPNJosxR1UpBmLqXVdm9r/9VagL9\nh+dqgWYISK99E132seOI/IXrfHicRVHzE2QPpES2clgV1ZJENH8aUBQ+foyc\nME3d\r\n=noqZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICsK8CuAfJqeXgInnUVUTGAhoRL3B09OSA3+KIKdvedxAiEA7HINdxvUIm0eaHPBoKyC1ENzrDdI4ZCF0CUPA4EKJ+M="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.11.1_1584280518075_0.003906450338395651"},"_hasShrinkwrap":false,"contributors":[]},"1.12.0-beta.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.12.0-beta.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"https://github.com/grantila/already"},"types":"./dist/index.d.ts","main":"./dist/index.js","exports":{"import":"./dist-mjs/index.js","require":"./dist/index.js"},"scripts":{"build:dist":"scripts/build.sh dist ./tsconfig.prod.json --module commonjs -t ES2017","build:dist-mjs":"scripts/build.sh dist-mjs ./tsconfig.prod.json --module ESNext -t ES2017","build:es5":"scripts/build.sh es5 ./tsconfig.prod.json -t es5 --downlevelIteration","build:test-out":"scripts/build.sh test-out ./tsconfig.test.json","build:test-out-mjs":"scripts/build.sh test-out-mjs ./tsconfig.test.json --module commonjs -t esnext && scripts/rewrite-mjs-test.js","build:test-out-es5":"scripts/build.sh test-out-es5 ./tsconfig.test.json -t es5 && scripts/rewrite-es5-test.js","build:lib":"concurrently 'yarn build:dist' 'yarn build:dist-mjs' 'yarn build:es5'","build:test":"concurrently 'yarn build:test-out' 'yarn build:test-out-mjs' 'yarn build:test-out-es5'","build":"yarn build:lib && yarn build:test","lint":"node_modules/.bin/tslint --project .","jest":"node_modules/.bin/jest --coverage","test":"yarn lint && yarn jest","buildtest":"yarn build && yarn test","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","concurrent","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@babel/plugin-syntax-optional-chaining":"^7.8.3","@babel/plugin-transform-modules-commonjs":"^7.8.3","@babel/preset-typescript":"^7.8.3","@types/jest":"^25.1.4","commitizen":"^4.0.3","concurrently":"^5.1.0","cz-conventional-changelog":"^3.1.0","jest":"^25.1.0","pre-commit":"1.x","rimraf":"^3.0.2","trace-unhandled":"^1.0.1","ts-jest":"^25.2.1","tslint":"6.1.0","typescript":"3.8.3"},"dependencies":{"throat":"^5.0.0"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readmeFilename":"README.md","licenseText":"The MIT License (MIT)\n\nCopyright (c) 2015 Gustaf Räntilä\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n","_id":"already@1.12.0-beta.0","dist":{"shasum":"e1b8af585d8c4fa7c677103eb2b304d1f698994e","integrity":"sha512-DjKc6hOpFUaCOwwTLOvN1N0bcE7PshBEDFxxhuRjc4m6C7c/NS6tE0A4MR3PUp2SGz5ti7KoXu5HWiEolf9lvQ==","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.12.0-beta.0.tgz","fileCount":16,"unpackedSize":191513,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJecARjCRA9TVsSAnZWagAAtREP/jqMQV6sge0wzheUyVU6\noONOyVcOiWavq66nweoGVrXvx+GvgCZa7i9VN7iVDOUQNRRGQ8tuFMDe6X6J\nHtc0KuuGqjrP8ectCksetOwHOb8oEuKBVo5bMvQYZkDRAv6/FuYj3h7Vesy4\nJsRSLM+q9Iz69iQH8FPCE4ZLFPXxDuOtwwjVpA5nV7XcNZpeNo+m4hPfdHtt\nB6lrG0ZMp0sAqsLNsIZxmeyJ1SalyXNxNh4hIGa98nTz4oeZHPZ9dHw4eK00\nvLdyppCrKgq3L5VIPtK2PhmkGraC5h+/2tz+lReFoeoO4x8mA01Ff4nNkbEe\nUE+xPGr4H7HFSaIZULA/TSJ7Z8K3bIGLi2hgfECBoxY5rWuIpoUyNQDKZ/F3\njcf5TDTRJTCIeUXIG5/WtdO59ybrtixJtI0bA988TQafCE15S4ddM/dRwshO\nOS0x4cETWLXIx03rGe0r4Keqb7w/gkG7V4s+TED3KXhiD8uxhtTvKnAwhttD\njRXFo1rlLWfAmPI/qyG0OekAgK50Kk1op3z5ho/GDUKG56z7Ryv2GQMgx0D7\nOPKM3ERv/etonMxgVrz+KTLyJyiUTdVd9o3w9mSr1KpP5jB/9X1tKu46/I/i\njU069uJL9yxO1MIRAcdZLrNIkb8q7ro836pgLQ8FRp8896NFBE+gi2AcNlwr\nvNr/\r\n=GTBJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD2IchVOPASx8QLpoWNJp7255KnC3/oDU8jpziCKtj6ogIgPkFC3jRSuUwHh8nPu8sxsSM/ed8zXgsXG8/BCnbuzXU="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.12.0-beta.0_1584399459271_0.6019577976894974"},"_hasShrinkwrap":false,"contributors":[]},"1.12.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.12.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","exports":{"import":"./dist-mjs/index.js","require":"./dist/index.js"},"scripts":{"build:dist":"scripts/build.sh dist ./tsconfig.prod.json --module commonjs -t ES2017","build:dist-mjs":"scripts/build.sh dist-mjs ./tsconfig.prod.json --module ESNext -t ES2017","build:es5":"scripts/build.sh es5 ./tsconfig.prod.json -t es5 --downlevelIteration","build:test-out":"scripts/build.sh test-out ./tsconfig.test.json","build:test-out-mjs":"scripts/build.sh test-out-mjs ./tsconfig.test.json --module commonjs -t esnext && scripts/rewrite-mjs-test.js","build:test-out-es5":"scripts/build.sh test-out-es5 ./tsconfig.test.json -t es5 && scripts/rewrite-es5-test.js","build:lib":"concurrently 'yarn build:dist' 'yarn build:dist-mjs' 'yarn build:es5'","build:test":"concurrently 'yarn build:test-out' 'yarn build:test-out-mjs' 'yarn build:test-out-es5'","build":"yarn build:lib && yarn build:test","lint":"tslint --project .","jest":"jest --coverage","test":"yarn lint && yarn jest","buildtest":"yarn build && yarn test","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","concurrent","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@babel/plugin-syntax-optional-chaining":"^7.8.3","@babel/plugin-transform-modules-commonjs":"^7.8.3","@babel/preset-typescript":"^7.8.3","@types/jest":"^25.1.4","commitizen":"^4.0.3","concurrently":"^5.1.0","cz-conventional-changelog":"^3.1.0","jest":"^25.1.0","pre-commit":"1.x","rimraf":"^3.0.2","trace-unhandled":"^1.0.1","ts-jest":"^25.2.1","tslint":"6.1.0","typescript":"3.8.3"},"dependencies":{"throat":"^5.0.0"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"a82d33c413ef60ce70aea3fe73b5458a8f2f6086","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.12.0","_nodeVersion":"12.16.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-JOq+vzTKA3qheL4rOcTYvdUwUhLFrUSiRshlDxxj+7CJTQlw9qHGveuMzEbyGRfoOscREA1gqJxxTnK7GDAfxQ==","shasum":"50f63ed461a62be5dd37d05795766bf0e685f3c6","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.12.0.tgz","fileCount":12,"unpackedSize":190302,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJecApgCRA9TVsSAnZWagAA4OIP/2RT6ux8MlI17Qv75O0K\n1h/zovbFqDclKEJl6JPkL5zzQBo0oO8EB3LJm9BmZiCJq9buacDjlauRlRFD\nK65sjK/mJC/sYB3QUGXbSTl6qUTxjt7ES3LWD7DQVS3OHK1BpY7aVzCKcGbe\nHN/DeV6qjeQqOhgYvGftVIk116YakEJPlEqVwnnJ3YdqsVSRcLxMI89MaZ0L\nTsRlImY5lGCznT5ZUvtv8s8iDgMqCxxzmYhHCwq7hygEj+96L3m7uy3svwoC\nc/OHg8hTWrOFKhx0vmP+KTgo5XX9lXUHN6uqf8BvWc7qTQkNCEt7NI6tlpUZ\nGf229M/kn/ZmKl6JiSjdD1/WApXlZY8AfYLZCkAKe6mBeG9HIUnNHKuEqHsa\n0/HsYuq8QBYNIfGRzD4pCYlXvaiybsMlhpDt3AWSkPRpW++1a/XNLFgoCyJm\niBlReOrgmEr4+XR6qXZqAVKa+F9wbwfdk8uqzEsjDavcXdk5u9rj8tOwJhO9\n19vxtCy6AU3NoR8rIsonL6blnYJQtK0L2dJCANXIB3T0TNaEvPschjsxfoiu\n2BKj2ODDL02o9yddTthm15h4YylE0PHHo+DquoN6Hiljv2j0qZ8VGqOIy9Qs\nVroqpnt7Vg2701/RmS80e3x3nLWnDiT83P5VSuxvWaGNJn3rY1xombLG3Pb0\n0mt4\r\n=7Fd4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkXSwUM/UVIJr5pC9LVI5S0fWo5GOQ8xoOM7T/G7q5MAIgCbwBU7qGECN6w4/jySkI8k1/zbDuam1ywzeNyJsQELw="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.12.0_1584400991979_0.194751615831942"},"_hasShrinkwrap":false,"contributors":[]},"1.12.1":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.12.1","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","exports":{"import":"./dist-mjs/index.js","require":"./dist/index.js"},"scripts":{"build:dist":"scripts/build.sh dist ./tsconfig.prod.json --module commonjs -t ES2017","build:dist-mjs":"scripts/build.sh dist-mjs ./tsconfig.prod.json --module ESNext -t ES2017","build:es5":"scripts/build.sh es5 ./tsconfig.prod.json -t es5 --downlevelIteration","build:test-out":"scripts/build.sh test-out ./tsconfig.test.json","build:test-out-mjs":"scripts/build.sh test-out-mjs ./tsconfig.test.json --module commonjs -t esnext && scripts/rewrite-mjs-test.js","build:test-out-es5":"scripts/build.sh test-out-es5 ./tsconfig.test.json -t es5 && scripts/rewrite-es5-test.js","build:lib":"concurrently 'yarn build:dist' 'yarn build:dist-mjs' 'yarn build:es5'","build:test":"concurrently 'yarn build:test-out' 'yarn build:test-out-mjs' 'yarn build:test-out-es5'","build":"yarn build:lib && yarn build:test","lint":"tslint --project .","jest":"jest --coverage","test":"yarn lint && yarn jest","buildtest":"yarn build && yarn test","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","concurrent","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@babel/plugin-syntax-optional-chaining":"^7.8.3","@babel/plugin-transform-modules-commonjs":"^7.8.3","@babel/preset-typescript":"^7.8.3","@types/jest":"^25.1.4","commitizen":"^4.0.3","concurrently":"^5.1.0","cz-conventional-changelog":"^3.1.0","jest":"^25.1.0","pre-commit":"1.x","rimraf":"^3.0.2","trace-unhandled":"^1.0.1","ts-jest":"^25.2.1","tslint":"6.1.0","typescript":"3.8.3"},"dependencies":{"throat":"^5.0.0"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"8c2600778bfdf2f65d9a831e1a55aaa9278f9813","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.12.1","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-OMBlGywbLsbitaL0C4/TgirXUt919xIvyjpsKY1efbETxrlFHxLHXi+GOr7idAxIytHmttdrULyz6+vCEJyWnQ==","shasum":"95a2b3532d5ff669339e4117c507bf4a883088af","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.12.1.tgz","fileCount":9,"unpackedSize":135442,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezRIOCRA9TVsSAnZWagAAI6sQAInzV1PFtn5yXU9tlpeL\nZczg8FusWDXbq1YhHxBt4yzr27B2O6h2YAIiGcShAGEsNOFYuExqD0WdzOg0\n+nj8VeeW0u86JZhsfoDKnuitbs6JX0p90a+hI8gkhJcU7g4MK+VEZtlXAK2J\noplElyHDgiD6M9tA/KcXmtKv65f73C8ZyWJ6M7cT+4zcjVQ3fUOVVfvOIkRs\n7EgrEaMvMtIQXWEvldfdaXVoW/NhKh2OScZcmGqa6MRJVqvi36hNfPHCYBKK\nhKl9qng23mKwCwYfAUHAGtDfVtHoMItPMDS26f3Xwq5/rCuvHzIC7ugNzb+3\nLa8iS7Cs6FgApCv1LYCwFmsrbch0WmUqWpce/xf7HNbocJaLXK6ezTxby7/M\nIaTLEIdCtxO42C+YweMO4zkGNLEt3J8+2vlNKbqWpbJgbcEZWuLYVFqQVos9\nCwQLkjFLI63mi0KquorUZV2oTDbg1Lfbsxnd9QaR8RFoQcP53R4zinM5HaJs\ngKpbEzA4hzLeH/iXSoFHy7sKy0+kRyOBOTSyjdecK37iGzmD9jeuG99fEw7V\nL3QQ90M5UOxC8uw+HEfSeDZ1QtXpfh0AzUjIdykuJQOGfYeXd236ajFb3Rib\nq2t6ypR0PQ5KS0Gmi5bMv4qn79mxAY0WeTeLkfDRPM6QRrKHvzDxzytpqC0k\n3QvJ\r\n=SdGE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDAH0QGYCArV3oNygkubEObb/q3w6HbcX1s8zFkyKBbSAiEAq/byC1HHvDIU6ijRIs5oEUYqzDYt9pQ6l9UMZRR9fiw="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.12.1_1590497806110_0.7109622064481309"},"_hasShrinkwrap":false,"contributors":[]},"1.13.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.13.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","exports":{"import":"./dist-mjs/index.js","require":"./dist/index.js"},"scripts":{"build:dist":"scripts/build.sh dist ./tsconfig.prod.json --module commonjs -t ES2017","build:dist-mjs":"scripts/build.sh dist-mjs ./tsconfig.prod.json --module ESNext -t ES2017","build:es5":"scripts/build.sh es5 ./tsconfig.prod.json -t es5 --downlevelIteration","build:test-out":"scripts/build.sh test-out ./tsconfig.test.json","build:test-out-mjs":"scripts/build.sh test-out-mjs ./tsconfig.test.json --module commonjs -t esnext && scripts/rewrite-mjs-test.js","build:test-out-es5":"scripts/build.sh test-out-es5 ./tsconfig.test.json -t es5 && scripts/rewrite-es5-test.js","build:lib":"concurrently 'yarn build:dist' 'yarn build:dist-mjs' 'yarn build:es5'","build:test":"concurrently 'yarn build:test-out' 'yarn build:test-out-mjs' 'yarn build:test-out-es5'","build":"yarn build:lib && yarn build:test","lint":"tslint --project .","jest":"jest --coverage","test":"yarn lint && yarn jest","buildtest":"yarn build && yarn test","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","extensions","utilities","concurrent","finally","map","filter","props","tap","each","defer","deferred"],"devDependencies":{"@babel/plugin-syntax-optional-chaining":"^7.8.3","@babel/plugin-transform-modules-commonjs":"^7.9.6","@babel/preset-typescript":"^7.9.0","@types/jest":"^25.2.3","commitizen":"^4.1.2","concurrently":"^5.2.0","cz-conventional-changelog":"^3.2.0","jest":"^26.0.1","pre-commit":"1.x","rimraf":"^3.0.2","trace-unhandled":"^1.0.1","ts-jest":"^26.0.0","tslint":"6.1.2","typescript":"3.9.3"},"dependencies":{"throat":"^5.0.0"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"bcc753652c342c3460d021a587a9d04df71689d2","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.13.0","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-SU1OQaWOUzRv8+udz9QyPTeh6XFYf/bbxA2T2fl3z0FLZlYaYOivVvxHo+xGB/1gfeXQb4wQTG571FMKoNFZVA==","shasum":"30ddf842bcd80b78393fcf1b913983ac934fd773","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.13.0.tgz","fileCount":9,"unpackedSize":136360,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezYyICRA9TVsSAnZWagAAT2UP/jP5GmdaMA4sKrVL0GKb\n2Fy/Z8CtQoJaojrYjdARa52XssscBY6fZJcsP5qdokxQp5RVyWy0ZFcixtEV\nLDnlmSZww/A5DCsIEJMFSlT52RoQFWyY0R10rxC0bnSjcSnLryN1goUnLms/\nF+82Bg5x+tcD8ZdL5NWnzGIbhO1LPWdhaT44NG5upEfKgqLCVD71rxSgxzK6\nDoJ9QaJKJV4S1Ddri9wTgtv1CMF2yEzmDuQv4O5VTAkFR6ektFgOQbZ9ZdaG\ndePJ3BDLIzCXm4WH1s3qhrdtIanGAzwBOmpz5vUrIJBhsdq12FUD5qmsk1TO\n5E0O8qRt4LcGw6tWTfaQulf89mbMbRXRotVJAqpCsxh0ufMyRrNSJZzLzvZe\nlnSvOYPDUCi9eUb/EYYXSndoa44wcJWwtAQBYHNJnu6bAx0mQZ1WEwXEvqoo\nhcO0J4CrP/yPB1NetLrJKUzP67rs5FDTaPgfNTlTKMSNf5tNU5MXRVaGYZS4\nj/+iLGCcSjrw+ZSwF5x2TRxJ8uMK4r/ZWjeEqoPUGadZ43Y9p+XKpUrGj86W\n4Z+VEgeM4jH+3CK0VzbESOc0AB2Li/5t8ghZe9JWAtVChVNlMXaEh94oYBhq\nlTu0w4khBHtVC+c9L3Eq6QO7TogRbT+Xs8xWlbbmpf+OCAg4jAeZWgHpqhoz\n9g8j\r\n=WpmA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDF/9ObQdo2GsjfwxOnLd9g5XHviiaN0I3gr6ljZOK7gAIgJJ4Uv/aoC4KSh5mKJglmnX2TjA8Q49lorP/7WT9sZvk="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.13.0_1590529159324_0.5246331822292223"},"_hasShrinkwrap":false,"contributors":[]},"1.13.1":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.13.1","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","exports":{"import":"./dist-mjs/index.js","require":"./dist/index.js"},"scripts":{"build:dist":"scripts/build.sh dist ./tsconfig.prod.json --module commonjs -t ES2017","build:dist-mjs":"scripts/build.sh dist-mjs ./tsconfig.prod.json --module ESNext -t ES2017","build:es5":"scripts/build.sh es5 ./tsconfig.prod.json -t es5 --downlevelIteration","build:test-out":"scripts/build.sh test-out ./tsconfig.test.json","build:test-out-mjs":"scripts/build.sh test-out-mjs ./tsconfig.test.json --module commonjs -t esnext && scripts/rewrite-mjs-test.js","build:test-out-es5":"scripts/build.sh test-out-es5 ./tsconfig.test.json -t es5 && scripts/rewrite-es5-test.js","build:lib":"concurrently 'yarn build:dist' 'yarn build:dist-mjs' 'yarn build:es5'","build:test":"concurrently 'yarn build:test-out' 'yarn build:test-out-mjs' 'yarn build:test-out-es5'","build":"yarn build:lib && yarn build:test","lint":"tslint --project .","jest":"jest --coverage","test":"yarn lint && yarn jest","buildtest":"yarn build && yarn test","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","concurrency","map","filter","finally","props","tap","each","defer","deferred","concurrent","extensions","utilities"],"devDependencies":{"@babel/plugin-syntax-optional-chaining":"^7.8.3","@babel/plugin-transform-modules-commonjs":"^7.10.4","@babel/preset-typescript":"^7.10.4","@types/jest":"^26.0.9","commitizen":"^4.1.2","concurrently":"^5.3.0","cz-conventional-changelog":"^3.2.0","jest":"^26.4.0","pre-commit":"1.x","rimraf":"^3.0.2","trace-unhandled":"^1.0.1","ts-jest":"^26.2.0","tslint":"6.1.3","typescript":"3.9.7"},"dependencies":{"throat":"^5.0.0"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"5598ee002b7be99fd0d0b0192c3a3bbe92309109","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.13.1","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-ojPT/SKoeeoRKJ1pY+WAlgkS1pA86sMSpHHv3VQlWh+XfjzmWumeGYmi6i5hc2Jsxm97xZ6xPMFAymB/2Eoh8w==","shasum":"f745b0352b4f84a905421decfb08f7b35d01b151","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.13.1.tgz","fileCount":9,"unpackedSize":136743,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNuORCRA9TVsSAnZWagAAogMP/Azw6pCaFai+XOS9xLMc\nfRB5Ia3gvS2C+bL/4njrZdGxqf37LAPMyvwQG/wTKOvjQdDLpdt/SdTli5Kw\nutwM0utpZt83sfbMlH+0n8ij5ea2WRPmacxD43b5tOaHSlDjZRAjRpWyUzOb\ncknZgmEtFuBgpf1XFOpqpjapEo0mZ4+Iv0GNGP69vMS9XOtQuD1lE73M3Nom\nwpcy8j/+tyog/c1gfjhOLwfTn5zYbYjY8XpTuXcv5HkNjeg7ozBmI2wsjkCw\nHvQq+1zzHWziWI82am3ws5Et80iprNJO4Xyq79L5e9mf0zxgobXgsHfVB+ZO\nO+WT++8JSGA401RNKlZPdIKgLP0chkoJQxNW7CmGvEsEYbWYd/O0U/2lEJrE\nxBoL80FOu+0klAOBCuBgychysEhPRtgKjMymdtElqYeJIfFm3SYQA1SqsZQH\nBUuV/QawG8jJ+Bm461Gb1KV23QAsH9rxwlI2pPeKt4DqAj86I9d8p5d7pnHi\nc3ovIV6u2dowNn+rh9v8ZNg39PekGg53Ve5bJtxk0sy8BwE+vvO1/rtq+6XG\nXmHZGBRcQMTlDJoSxuTim7nLA9G22K3hSVm0qEvogGWvO9jB1mdbAPDIgR8b\nnLcacQ0mVmGXNgko5QM0go4pTg8uEnRMGeiFCFjro1UG4yN5ysD1P8SHQ5xr\nuXFk\r\n=AgMZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICwYMqpGsfClnOzRGmW9DcLM9fGvDXABSBN/3677TXTGAiBkmK4s4ZaEzpdl9qwQWqftXvsKh8EO20m3NxtKF0awTg=="}]},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.13.1_1597432721165_0.08069142622535241"},"_hasShrinkwrap":false,"contributors":[]},"1.13.2":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"1.13.2","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","exports":{"import":"./dist-mjs/index.js","require":"./dist/index.js"},"scripts":{"build:dist":"scripts/build.sh dist ./tsconfig.prod.json --module commonjs -t ES2017","build:dist-mjs":"scripts/build.sh dist-mjs ./tsconfig.prod.json --module ESNext -t ES2017","build:es5":"scripts/build.sh es5 ./tsconfig.prod.json -t es5 --downlevelIteration","build:test-out":"scripts/build.sh test-out ./tsconfig.test.json","build:test-out-mjs":"scripts/build.sh test-out-mjs ./tsconfig.test.json --module commonjs -t esnext && scripts/rewrite-mjs-test.js","build:test-out-es5":"scripts/build.sh test-out-es5 ./tsconfig.test.json -t es5 && scripts/rewrite-es5-test.js","build:lib":"concurrently 'yarn build:dist' 'yarn build:dist-mjs' 'yarn build:es5'","build:test":"concurrently 'yarn build:test-out' 'yarn build:test-out-mjs' 'yarn build:test-out-es5'","build":"yarn build:lib && yarn build:test","lint":"tslint --project .","jest":"jest --coverage","test":"yarn lint && yarn jest","buildtest":"yarn build && yarn test","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","concurrency","map","filter","finally","props","tap","each","defer","deferred","concurrent","extensions","utilities"],"devDependencies":{"@babel/plugin-syntax-optional-chaining":"^7.8.3","@babel/plugin-transform-modules-commonjs":"^7.12.1","@babel/preset-typescript":"^7.12.7","@types/jest":"^26.0.15","commitizen":"^4.2.2","concurrently":"^5.3.0","cz-conventional-changelog":"^3.3.0","jest":"^26.6.3","pre-commit":"1.x","rimraf":"^3.0.2","trace-unhandled":"^1.0.1","ts-jest":"^26.4.4","tslint":"6.1.3","typescript":"4.1.2"},"dependencies":{"throat":"^5.0.0"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"a055d231d0b29306d5ddbcaf84122b05a834b567","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@1.13.2","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-GU0ZqMhSetZeDlivqttmAmd2UpCbPSucziaDJcCN2NdOTedzaJTqZZwHHuGJvp0Us1wzQG0vSqFqax1SqgH8Aw==","shasum":"1441d2ae975f4a9b5ac2f53b4fa062af1d46b77d","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-1.13.2.tgz","fileCount":9,"unpackedSize":136829,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfv/pXCRA9TVsSAnZWagAAnVYP/1f5ZGMTyrCzMuTwLrXp\nr12nwuUvkWfhH77dGo8oYc668a8xKsXjHKxiR53KjcOX0WS6tkzzBBUVw2lS\nMrgQDjFyFAX8qt/pu5pLbNrOcwHHcwFxrt5VlFVOkyfI6Pl+U/FUjAB8IS2c\nVSRKYNSKYeXP1Pa6ylRSD3AA4FFQ3L1e298Ftpb7o9+94wuDUbzWUnqXVH5K\nTIpX9XPeVOkCMpwnyL8hvFVOB4siA8J7arCmP4qakuboJawVaTsc9Ndb/Ygk\nShDOAwH8R7fvZuqhcTEN+5PrWv4mZeEgg3Ua+52IopqdJZ7sU5P7FmFmMhTY\nmQt2Ls5niGOdy4Cl47gXrbMJd0QWTBdrMGIc1Wo8bZizDpn8Z78D/AVJUmYt\n0l5MeLZKuZtSlxmoMkIJFSNk/35SwtnYUrE2vslXMdYo7epAGTO7d7FLhdlZ\nFTDyPIVFkwrGEPKf0b8lQCBwBlrifnmQJciLZ8yqFjY5qDc+dq4GoE/9PjS3\n/mX2H/nm73c48aD0lgoGNetjx9wcgx2b0EGFbaCihl+raoGrO+rT7lUdReyy\nOzCcQ7wWMeOnMrnY0tWDI8q9amADUr0Vs+VKwDTIjFbuvVwh5g4OCyth9aw4\n8Ax8INoPXS2C8wKki/uPDTvzpfOP7zWGW07tqUKPTumpxN2erRnBXws/OAGY\nZqdt\r\n=Fbi+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDSaabWRfvMzon28KcMvdU0YQbVs8n/YD9J9zu1/yAh7QIhAInE/bQXFvSRLlxuywb1KHCQAbTtufK0juirKCVO9xmy"}]},"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_1.13.2_1606416982890_0.3934545571544714"},"_hasShrinkwrap":false,"contributors":[]},"2.0.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"2.0.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"types":"./dist/index.d.ts","main":"./dist/index.js","exports":{"import":"./dist-mjs/index.js","require":"./dist/index.js"},"scripts":{"build:dist":"scripts/build.sh dist ./tsconfig.prod.json --module CommonJS -t ES2019","build:dist-mjs":"scripts/build.sh dist-mjs ./tsconfig.prod.json --module ESNext -t ES2019","build:test-out":"scripts/build.sh test-out ./tsconfig.test.json","build:test-out-mjs":"scripts/build.sh test-out-mjs ./tsconfig.test.json --module CommonJS -t esnext && scripts/rewrite-mjs-test.js","build:lib":"concurrently 'yarn build:dist' 'yarn build:dist-mjs'","build:test":"concurrently 'yarn build:test-out' 'yarn build:test-out-mjs'","build":"yarn build:lib && yarn build:test","lint":"tslint --project .","jest":"jest --coverage","test":"yarn lint && yarn jest","buildtest":"yarn build && yarn test","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","concurrency","map","filter","finally","props","tap","each","defer","deferred","concurrent","extensions","utilities"],"devDependencies":{"@babel/plugin-syntax-optional-chaining":"^7.8.3","@babel/plugin-transform-modules-commonjs":"^7.12.1","@babel/preset-typescript":"^7.12.7","@types/jest":"^26.0.15","commitizen":"^4.2.2","concurrently":"^5.3.0","cz-conventional-changelog":"^3.3.0","jest":"^26.6.3","pre-commit":"1.x","rimraf":"^3.0.2","trace-unhandled":"^1.0.1","ts-jest":"^26.4.4","tslint":"6.1.3","typescript":"4.1.2"},"dependencies":{"throat":"^5.0.0"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"33352557bc3a656f0cf292951f5cf0862d252e91","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@2.0.0","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-UsH7xBb9CoFBTdTBGkuyUmQKLQ+GSlclwSU2WZ9qBOcx14rc3uyXKP5tItUrRBUuXxuWZQtDcw5EU7jpNGjyrw==","shasum":"c8ccfa6455544844644a8c6240c89997f21f1913","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-2.0.0.tgz","fileCount":7,"unpackedSize":92331,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgzv0CCRA9TVsSAnZWagAAr0QQAIrGcMPoRofiGM9xkGMW\n2+QWObTaaTncy6eMdgjh7DiY+7EqquPamWbk184B0T0Qz5srDoVkOxY0jw35\n4FblL8nbQi+W1cNcHIJaEUybImXG+LuWtwgPZv/dvpX/y5+1XXkioapkizCr\nzUQ78ZndzwQlme/d3PM1FmCeg+NzpKz8+Fhk50vlRsu2zG2xPDIu8TDOF6Vq\ndy0TUm0CFz0jxjvqJLAcy+jDyCR7beXQmjjVwZgVMkSvoOMj9n6Ui1sZfMgO\nu4SkRZkrLWb0OkBAZLTzbq8zERIqXL5zuOZuFllNm5rG4Nm9lowcoTgaysQu\npMBQiKblLe0HTPjG9na+86MyiZe3UUK8wf9k5JQDZgBIp2W/Nn1P0AIfcqkg\n8YiRPSaqtfQK7OFwHly4G9v6LsILHHJXLoMwDjAFjjdN1Vyut8LwGaWgp3z9\nq5rLjfU2yLKlfmEa1RLYK8fqePP+RN2EmnESnMLgnCZ/foY7DP4xOy9PxXB0\nqZwbkbhF/HGhgQ/abw3d21S2SW2jEZ+rFWqNUahQMxOsrO4EeF5+KXqFNcXb\nmW9VMRF0Wo5cf/3epPjdpW1OJjWnO2+0+CEC7T/VaKsslULFUoLD/aGgme5t\nAd9N8dYg5HDDM03lykuHaDjpfO+IcNvkTyEUQjpql7ot/YrRWN46fHX73/Pj\nsOJn\r\n=trFU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCuh3D5h1EQ+0JLhNRnW/z7g8kV+z3SmbvtyySljfXpYAIhAPYTfe1C+h+lYkOuHwRjqO1+TYU+Ghry3/5BUFMkpGDU"}]},"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_2.0.0_1624177922228_0.6971258650406205"},"_hasShrinkwrap":false,"contributors":[]},"2.1.0":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"2.1.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{"import":"./dist-mjs/index.js","require":"./dist/index.js"},"scripts":{"build:dist":"scripts/build.sh dist ./tsconfig.prod.json --module CommonJS -t ES2019","build:dist-mjs":"scripts/build.sh dist-mjs ./tsconfig.prod.json --module ESNext -t ES2019","build:test-out":"scripts/build.sh test-out ./tsconfig.test.json","build:test-out-mjs":"scripts/build.sh test-out-mjs ./tsconfig.test.json --module CommonJS -t esnext && scripts/rewrite-mjs-test.js","build:lib":"concurrently 'yarn build:dist' 'yarn build:dist-mjs'","build:test":"concurrently 'yarn build:test-out' 'yarn build:test-out-mjs'","build":"yarn build:lib && yarn build:test","lint":"true","jest":"jest --coverage","test":"yarn lint && yarn jest","buildtest":"yarn build && yarn test","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","concurrency","map","filter","props","tap","each","defer","deferred","concurrent","extensions","utilities"],"devDependencies":{"@babel/plugin-syntax-optional-chaining":"^7.8.3","@babel/plugin-transform-modules-commonjs":"^7.12.1","@babel/preset-typescript":"^7.12.7","@types/jest":"^26.0.15","commitizen":"^4.2.2","concurrently":"^6.2.0","cz-conventional-changelog":"^3.3.0","jest":"^26.6.3","pre-commit":"1.x","rimraf":"^3.0.2","trace-unhandled":"^2.0.1","ts-jest":"^26.4.4","tslint":"6.1.3","typescript":"4.3.4"},"dependencies":{},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"0b2534f80416c53a0767111f3d65ea30cb07b488","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@2.1.0","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-9lutcUXY7wdK9Opkfu3LS/8FJecssqnvR9N+s/JnakP/rmqheSzdT1cAfBBs9dSQDcCVo3MLtBfmIztTbs+ugg==","shasum":"2ef4643f7d81ea4d71b0ef42ae357c9d4c124469","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-2.1.0.tgz","fileCount":7,"unpackedSize":97690,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgzxdSCRA9TVsSAnZWagAAMDEP/269QodmVNTayBOyy8q1\nrR6PCF0QaYNupvffkj7XYmTtXZ8S66tZsP598ZYbJKj62/wtLG8w3qNw8pve\nUB38DboDsyU5O7yUd/TddOadj0I2KGiAioQjdEE1ExYAO5XhcgJR+aiqp9tK\n1E10HliJYx/ao61evDlb4/Ll7cDerXxnO/KoqjYuu2uHAQbkSiGTv5WIUM+C\n5c2FRXBt9pC7fY4ruFt6jFXsIPb/eTJuwuTZq5bDZeJ4AWMi2jia8nKNJFgJ\nNPGjIBLem6UNSyIkfqQOKIacuftO/fsYJjZUGvP9ktDQ7nkkEHpxwVl9jICj\n9ho9pFdJ8qkBhceJoVnVJnPGqpxzfpoRTGvN6hSICMqb9D4gIW0vIahKNoQU\nLj1DAd+bTJr5CxX2hOU5qD81FTXbLHusGB5y/boFXTqFD/gZ60n5tIg8+20E\nk7dtg6wplD5rwdf/yLBFj7/fNIjbu5H7+MvANFt4DFPC21pR0LpAAkCWK9XJ\nJQF9VFBu0zyO6cyFSEtq5P0MHqID6agcknLhQw7FVr12sMyTYG7EfKLenX6v\nlqJJ9cehFr91vt0tqVPft7431t27e5TJsq/5TlO5tFvHl9xAKuRuTfrSN9Xe\noiX9/LJQT+D+bJdzQkyyWTpW1wFmXIACfbfoNtdZwUHdOR+B9yTqYKGiy+v3\n9Lv/\r\n=xNr1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjoPwawHab3eVzHyV6ah20B6zdPqqLxamWs8deFWmH1AIhAKu7uYRd9AkGU+TTayfCrN9hQJTc4ZW6akoTTrh4oRd3"}]},"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_2.1.0_1624184658250_0.29684615149010507"},"_hasShrinkwrap":false,"contributors":[]},"2.2.0":{"name":"already","description":"Promise extensions; map, filter, etc","license":"MIT","version":"2.2.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"engines":{"node":">=12.20"},"type":"module","main":"./dist/index.js","exports":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build:lib":"scripts/build.sh dist ./tsconfig.prod.json","build:test":"scripts/build.sh test-out ./tsconfig.test.json","build":"yarn build:lib && yarn build:test","lint":"true","jest":"jest --coverage","test":"yarn lint && yarn jest","buildtest":"yarn build && yarn test","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","concurrency","map","filter","props","tap","each","defer","deferred","concurrent","extensions","utilities"],"devDependencies":{"@babel/plugin-syntax-optional-chaining":"^7.8.3","@babel/plugin-transform-modules-commonjs":"^7.15.4","@babel/preset-typescript":"^7.15.0","@types/jest":"^26.0.15","commitizen":"^4.2.2","concurrently":"^6.2.1","cz-conventional-changelog":"^3.3.0","jest":"^26.6.3","pre-commit":"1.x","rimraf":"^3.0.2","trace-unhandled":"^2.0.1","ts-jest":"^26.4.4","tslint":"6.1.3","typescript":"4.4.3"},"dependencies":{},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"39e9622bcdbb0f92eb93d95a4078ea4a5c1ff4aa","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@2.2.0","_nodeVersion":"14.17.6","_npmVersion":"6.14.15","dist":{"integrity":"sha512-uIC77OFa2xIfLi6IW4kuWR3eOO8WeduKs5f70CeTUgMULd/WbYMcfFVD4NGFwB+L1qvzSeV/V82M6hmYYywnrw==","shasum":"7671f52cb60fc8291daa07b3239e05e85b83fd79","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-2.2.0.tgz","fileCount":5,"unpackedSize":66376,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhPN+1CRA9TVsSAnZWagAA4hMP/0Fc90Fcf7pzHj79sD5v\nE8LtaiZ4JgPZx4hRNvyOuPIlFQ8NupwZB+XYUh9aXqvpsVTViTWv41xUwuKh\no+b6xdpbKvSxiN1uWEOSm8d2PuGy+Yy8DfIrAL/uVs7PNSxHStsPbLB5Rhak\nhLbTYDaA60uiO6YPLiG8oPg9ZuTh/lSoQt860SnWNKy5MI0fdnGOOSEw5QNd\nT+JaSMyzOH1+2BVGjtYB/rZyjEwgGK8uzx31ph5Okgo/CofvxkBlH61lM9MB\njiTvnIA8p12rfAEQG9awgq3T0Mik3Yyb7PtzqUIG22BNbvQFjNmDc0wl6+bR\nCANd4TtaJSmiTLSzLTvj0itKvSUVPTVYZHLAu0dVpns87BXGT7lm/AeItnGC\n4K9CzDKJNWt6pqTZn+Ok51ggAxs4H4y0ddYgpSR5Efnhm+HKbTG/qo4zI8e4\nRJ8o5332gZt6Y8PpzC5+QhBbiuKYdJWhnOF+fx8ENOmMhm9DCkfJJ5N9mNNZ\nJ/UXUsxXyV6NuCSwk2ldGCDwf97Fvyx/f5fwUvvCZlndJQTVM9JkWME5Wkiv\n2IFPvUXboRiOReGqGIYbM2OgCBZLwABOWVKzGYuaIgOTqGwAHL0RzRgfws06\np4F94jGUWCbozRO7mdw3wEZEGwuG7k2H/tqKSbq42tavS4ziqX5XCwQ1FB6+\nyotS\r\n=StD+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBhHIuAUMu98pPaS3kGDcBZQsU7ugEWElvxmHX/ztWSDAiEAyXYEmfSaMZ93VgEYchsMayxqKqy9kroydQDtBrZwzrk="}]},"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_2.2.0_1631379381281_0.12146647491101414"},"_hasShrinkwrap":false,"contributors":[]},"2.2.1":{"name":"already","description":"Promise extensions; finally, map, filter, etc","license":"MIT","version":"2.2.1","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{"import":"./dist-mjs/index.js","require":"./dist/index.js"},"scripts":{"build:dist":"scripts/build.sh dist ./tsconfig.prod.json --module CommonJS -t ES2019","build:dist-mjs":"scripts/build.sh dist-mjs ./tsconfig.prod.json --module ESNext -t ES2019","build:test-out":"scripts/build.sh test-out ./tsconfig.test.json","build:test-out-mjs":"scripts/build.sh test-out-mjs ./tsconfig.test.json --module CommonJS -t esnext && scripts/rewrite-mjs-test.js","build:lib":"concurrently 'yarn build:dist' 'yarn build:dist-mjs'","build:test":"concurrently 'yarn build:test-out' 'yarn build:test-out-mjs'","build":"yarn build:lib && yarn build:test","lint":"true","jest":"jest --coverage","test":"yarn lint && yarn jest","buildtest":"yarn build && yarn test","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","concurrency","map","filter","props","tap","each","defer","deferred","concurrent","extensions","utilities"],"devDependencies":{"@babel/plugin-syntax-optional-chaining":"^7.8.3","@babel/plugin-transform-modules-commonjs":"^7.12.1","@babel/preset-typescript":"^7.12.7","@types/jest":"^26.0.15","commitizen":"^4.2.2","concurrently":"^6.2.0","cz-conventional-changelog":"^3.3.0","jest":"^26.6.3","pre-commit":"1.x","rimraf":"^3.0.2","trace-unhandled":"^2.0.1","ts-jest":"^26.4.4","tslint":"6.1.3","typescript":"4.3.4"},"dependencies":{},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"3fe2cc8aaac2133d8964b620871b954a8ac27249","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@2.2.1","_nodeVersion":"14.17.6","_npmVersion":"6.14.15","dist":{"integrity":"sha512-qk6RIVMS/R1yTvBzfIL1T76PsIL7DIVCINoLuFw2YXKLpLtsTobqdChMs8m3OhuPS3CEE3+Ra5ibYiqdyogbsQ==","shasum":"98c257baa0d3fe62d85163ff288235ba11e3f188","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-2.2.1.tgz","fileCount":7,"unpackedSize":97690,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhPOGTCRA9TVsSAnZWagAALOoP/A2/D156Y/UoZqJE/whR\nl2OVQ8TrY/9DEQAl00pAsi1qc+TAEwgwtr/+JP87HhhA31V0kX/YVlsIcgDV\num/wMkb46878i1V91A8wEeBJGbUyFqzCaMiOE5XDnmU2+LpcRt7bAsthaZoz\n4LtmWiAxwT7wzQvo4RczsH2PUblc4iBK4xAbrmt1DoNz8wDFMHn6b2VgAlYW\ncn4SXEoQU1xNl7H+Npu2qV/UGMWWmnVYu5pMz/RXjHzdbEJhDG1yAmXYSqoS\nLdFNOrbxEqVry0c/Yar507L90B1yin+Bi//CTVkwXh3+D3FyjVh8nFXWRuO5\nLLAK+ZuRVQAxhD4PtB8qNi1wJb7+RJUMA85lVgnzgSYSwtBeIHagBy79pnSk\nq90Vtaa5rV/JkuCRzueRRiprNuIZ+U8cpJKDtitUkDfKNRhuSKe7Wp8ex6e0\n2S+gTMc1mQB9shAe9vO7hDU6e46Z1rrA6sE95eY8u1x0ZEaPnM88F161JdbO\nLuYxTimZjbCpBBw8hLm4Yi1bQtwrix1lDE4B6ombfi9fgwgDp+dOC5eKmGry\noeY8FQARCG6r+8NzRbFaODz7ddd0x3HQlA8DyQcc1w0zkZp7Sj08JDjMnlYa\nLEbsVqMR+OKZhF7+xhYJMgYM+B4zWzT05P8skbEHKmA8V3JfTEXGUI33auN+\n/Z5I\r\n=zsnW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCrg/iib7UCG8kcJSEvfQFk6IaMF8+xjLmMT5v+cWrPKgIhAILuLkxuzlhQkoY+SANKGYOkt3w9TBE0B+p2IQeDVWkH"}]},"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_2.2.1_1631379859445_0.7313195125764604"},"_hasShrinkwrap":false,"contributors":[]},"3.0.0":{"name":"already","description":"Promise extensions; map, filter, etc","license":"MIT","version":"3.0.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"engines":{"node":"^12.20.0 || ^14.13.1 || >=16.0.0"},"type":"module","main":"./dist/index.js","exports":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build:lib":"scripts/build.sh dist ./tsconfig.prod.json","build:test":"scripts/build.sh test-out ./tsconfig.test.json","build":"yarn build:lib && yarn build:test","lint":"true","jest":"jest --coverage","test":"yarn lint && yarn jest","buildtest":"yarn build && yarn test","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","concurrency","map","filter","props","tap","each","defer","deferred","concurrent","extensions","utilities"],"devDependencies":{"@babel/plugin-syntax-optional-chaining":"^7.8.3","@babel/plugin-transform-modules-commonjs":"^7.15.4","@babel/preset-typescript":"^7.15.0","@types/jest":"^26.0.15","commitizen":"^4.2.2","concurrently":"^6.2.1","cz-conventional-changelog":"^3.3.0","jest":"^26.6.3","pre-commit":"1.x","rimraf":"^3.0.2","trace-unhandled":"^2.0.1","ts-jest":"^26.4.4","tslint":"6.1.3","typescript":"4.4.3"},"dependencies":{},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"4206e4ea70451513ea6458698c08039ff8513360","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@3.0.0","_nodeVersion":"14.17.6","_npmVersion":"6.14.15","dist":{"integrity":"sha512-FdPll9Wf/dg/Uxc914DazE+hZArMxQ9sW1Mf1yVI/Z0QKkMX3xBfi2gZ3iRUFRfOfuMuKFAR5aU6cs9uw7wg2g==","shasum":"f0d2c2c8b7b6cbbc5d773ef87b6386fde3ae7f74","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-3.0.0.tgz","fileCount":5,"unpackedSize":66425,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhPORKCRA9TVsSAnZWagAA8CQP/iKmAw25P3vR9Pfb+U0+\nj70jzeuCMWb1MusnvXczpDwiSja1Amzp/OsP4lWr+FoScMDO+4Khs/yTtbAL\nflTF8OjLcdsyQ54SQl2EG5qpkAwLvCM2IwrAoLCM5+KmqsaNEjvHmGE7eLpA\n8/G8ZC8Fy1DTtBEgmLkTey9V6RCQF2SlTEJwQV99pM2eDKkPUiHjGCtzaiaP\nrHlVDs9dXdTguBm3jm66+gz4ds4PLO+r+0RSmZRfHNxqUQHKiw76UXewqkam\nCV4zSCcUI4zPOivX05poGeFnDXffJPg2JlN/bPmCyp8fnzNRmPD5L9dVUgQ0\nHXY1WP0CLFUetO1vQjOpgxyA9K/PCZAxgD31TL595c7wKKetN1RERw6XjWTL\n3iIYP+JZf0b2eI9762n2SbrCgzU/0V9EllVeS5DOU05tLFEosfXC/isxowy4\nJZIJIY0e/lCI0R6+GOdYY2xz+NQ6B/qhi16WCMLVijiNif8JFZyVjHJTktSN\nT1g5AZYzUDAj9kKBi1G/UqmNQnblMLQB9mdfvJl6ZlE+7EEbhV9Y5FHOkVWT\nOkM11+8SFs11kJR5B7Rf/gHqznzm8/P3qggGQJcQN4BblURrBt5x0JX3iVx2\nvBOsQX4/jrH9Dtv2eGO0lS8UHbtXyZxOeDru89Gr+EtK2u+T2jyJpFu/zmnP\nzd1b\r\n=yZxk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGfiBmaQ7sT51zHqIlR0hFXsiJ+fZWsZAddj3GfWiXRAIhAOIcIe12Y2BNz66fJIQr59HXEEH/haBzJYPr7do/ZwTw"}]},"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_3.0.0_1631380554642_0.4595662446971165"},"_hasShrinkwrap":false,"contributors":[]},"3.1.0":{"name":"already","description":"Promise extensions; map, filter, etc","license":"MIT","version":"3.1.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"engines":{"node":"^12.20.0 || ^14.13.1 || >=16.0.0"},"type":"module","main":"./dist/index.js","exports":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build:lib":"scripts/build.sh dist ./tsconfig.prod.json","build:test":"scripts/build.sh test-out ./tsconfig.test.json","build":"yarn build:lib && yarn build:test","lint":"true","jest":"jest --coverage","test":"yarn lint && yarn jest","buildtest":"yarn build && yarn test","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","concurrency","map","filter","props","tap","each","defer","deferred","concurrent","extensions","utilities"],"devDependencies":{"@babel/plugin-syntax-optional-chaining":"^7.8.3","@babel/plugin-transform-modules-commonjs":"^7.15.4","@babel/preset-typescript":"^7.15.0","@types/jest":"^26.0.15","commitizen":"^4.2.2","concurrently":"^6.2.1","cz-conventional-changelog":"^3.3.0","jest":"^26.6.3","pre-commit":"1.x","rimraf":"^3.0.2","trace-unhandled":"^2.0.1","ts-jest":"^26.4.4","tslint":"6.1.3","typescript":"4.4.3"},"dependencies":{},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"8e0dcba1fbc105e1ffc5ad620cb23bf1f2e1c2f3","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@3.1.0","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-8tVrvg/cLjw5uWGHU9vf0ZiJuz6JrOc9rlf/wozyZkogtgxdIrqXCcfMmR4PGzTx1vof1P6zioTSHTntevsPyQ==","shasum":"6dde52f53065c76b1d9b47653bb46f3380c9a7f2","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-3.1.0.tgz","fileCount":5,"unpackedSize":68143,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGGYg+5DhMnjqGw25ZZfobqyuywbCeItdZ4rswdVfk/gAiAuzdd4/Si3wjs73XzShIys+r1zNe1j6+DJT0oxNFWmEQ=="}]},"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_3.1.0_1633772378336_0.561459950833193"},"_hasShrinkwrap":false,"contributors":[]},"3.1.1":{"name":"already","description":"Promise extensions; map, filter, etc","license":"MIT","version":"3.1.1","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"engines":{"node":"^12.20.0 || ^14.13.1 || >=16.0.0"},"type":"module","main":"./dist/index.js","exports":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build:lib":"scripts/build.sh dist ./tsconfig.prod.json","build:test":"scripts/build.sh test-out ./tsconfig.test.json","build":"yarn build:lib && yarn build:test","lint":"true","jest":"jest --coverage","test":"yarn lint && yarn jest","buildtest":"yarn build && yarn test","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","concurrency","map","filter","props","tap","each","defer","deferred","concurrent","extensions","utilities"],"devDependencies":{"@babel/plugin-syntax-optional-chaining":"^7.8.3","@babel/plugin-transform-modules-commonjs":"^7.15.4","@babel/preset-typescript":"^7.15.0","@types/jest":"^26.0.15","commitizen":"^4.2.2","concurrently":"^6.2.1","cz-conventional-changelog":"^3.3.0","jest":"^26.6.3","pre-commit":"1.x","rimraf":"^3.0.2","trace-unhandled":"^2.0.1","ts-jest":"^26.4.4","tslint":"6.1.3","typescript":"4.4.3"},"dependencies":{},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"e24316c78c02c05c2e00a131dfe2cf65369215e3","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@3.1.1","_nodeVersion":"14.18.2","_npmVersion":"6.14.15","dist":{"integrity":"sha512-UBftOXORHrTOHsxMVgteuH83tiQtbnKefl/bOyGn7fvfKxPJfXX69v9aA0RDUygXLn5yRVBFq57HSdL9KFcUcA==","shasum":"8d920cef312bc5603dc4e9eff362665c5ccf97e0","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-3.1.1.tgz","fileCount":5,"unpackedSize":68110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhvlpBCRA9TVsSAnZWagAAZL0QAJw4eq/DS3P/5ICEIJHt\nrZY2ebyNerDTuqCVI9ahZRPtJYBWIb5TgIHqI00LWJR/t/ZQbo5dsGh/8k9s\nDb6c8kt9EiMNdkOorl0hm2Wk/JbfkxxtgFkOYYXFbRjkUjhEfwjzz/nVVzEH\n7JavJUOPvRXzg8ZI6ClWbCT2XUJM4MVvG19Re/2yyW/tk6Dp+44bEPTFGc4A\nvHj1NyI5IP4kG2pGeY0qMRb0QWAbj1ll0TmCHpYrdtNdsOEJ4Ed2kIUuyI/S\nDM5DppNDrlK+P2KRhyrLCSoi6dBuA3ohNz/AFj1sWChAKSBAxGCqt/wIyUoU\nT9oFi6/nmyiVeZydZt1BuxmgwslDOyT1T/YKlxpDpxkcdHxwnBHB1Dk9qD0V\nVj4/CBmEBF1YXWsMnjdC7fzueOWGDeUMq7dZ5g2VivcgRDGTKfT/wlLevxVH\nXLOxWxkdf3VDuVqMbzyJxgDXmMWPZbxLQb3MQjRQO9eOM7he1MEhL5pesaT+\noiHU7aqAZb5+V8WL+80e63WDyqawf5G1ndEF1004fWwMAEbZZmuNz5CrRvPg\nsb+AZGZ9FJmbQ1TttjOeZjKco38bf2/tcGYLF/hay4giro3r9frssYQ8BioZ\n2PvCbAdokJ2U5enhayiIQDl98kFKr+bZ3p5z++ihLlT7hOQNUtEPApwfUkoY\nwOsl\r\n=CIAP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDm/CcIFaeJkwkgoNDjsq1ug+CgpeVSlmJjvzVXFwOZqAIhAIXJ68AWpsQusf1gVt3kWxlTr7bn76CMMLUnpy/jAZOL"}]},"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_3.1.1_1639864897023_0.6184084069133835"},"_hasShrinkwrap":false,"contributors":[]},"3.2.0":{"name":"already","description":"Promise extensions; map, filter, etc","license":"MIT","version":"3.2.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"engines":{"node":"^12.20.0 || ^14.13.1 || >=16.0.0"},"type":"module","main":"./dist/index.js","exports":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build:lib":"scripts/build.sh dist ./tsconfig.prod.json","build:test":"scripts/build.sh test-out ./tsconfig.test.json","build":"yarn build:lib && yarn build:test","lint":"true","jest":"jest --coverage","test":"yarn lint && yarn jest","buildtest":"yarn build && yarn test","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","concurrency","map","filter","props","tap","each","defer","deferred","concurrent","extensions","utilities"],"devDependencies":{"@babel/plugin-syntax-optional-chaining":"^7.8.3","@babel/plugin-transform-modules-commonjs":"^7.16.5","@babel/preset-typescript":"^7.16.5","@types/jest":"^26.0.15","commitizen":"^4.2.2","concurrently":"^6.5.1","cz-conventional-changelog":"^3.3.0","jest":"^26.6.3","pre-commit":"1.x","rimraf":"^3.0.2","trace-unhandled":"^2.0.1","ts-jest":"^26.4.4","tslint":"6.1.3","typescript":"4.5.4"},"dependencies":{},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"0280855679de666d1467ae33ad29adc1d4536106","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@3.2.0","_nodeVersion":"14.18.2","_npmVersion":"6.14.15","dist":{"integrity":"sha512-2Kz5CP3zuJQrXDpO/G47BwiBa/oAnHKahRZ4wNk1hox2PZmZNh/hnyIhIGSPXrkUqQNjLz+S/dkKyDmwpbAIMg==","shasum":"a9d3d67408f0e834680d34075fc41eb7ab22f3b7","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-3.2.0.tgz","fileCount":5,"unpackedSize":71921,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhzXffCRA9TVsSAnZWagAA8E4P/1k9dB8ihVjTbMCpJu/9\nrPpuCgi6im6jwVZoAf9jn6vQlVb8qU4WtijkjY/RRqCUSyuAp+gkoSj5QTyJ\nkBeM14/P260j0D9LdhH6/GSDhW8ScYMQnUCw0wfgW4svnSDUugjy0gnOx9LY\nClboI8fbKKfdwW3DdZqW+5C362k9d/mk/DCIyihkUAXnd/+J2Xps/BGgpWP9\nRe+MZxOXn1fucosbJd2Jt12nWUOGaVOUaTmLOBJolc4+t2Yuzp4mVmdozpPU\ncIJq5ZV0Cp0dyi/uz/dCitphUvowFhJEFVJV1gx60qY/eVx6StE1Ycc1B9ny\nEZ7/HahingnfAzcbOXt86te4pB++poPtN/fnOr9Pn6gtyyM4YO9b1CBTspJ2\nbclA2N7LdE7mdKFvpcTzYh2NEyjfv0VnOJND4X257KkKO5SfoPXE4BAAOhCY\n0kxVJNReZ24eDbB2rVoEGXzffLVp+ae1EpxdPXkFSLWUqEUAMDBpmY+hUgni\n9Ms/DoJTm8m0RFu7F9ca/lAjvzPSD0jkBdOPE4i6LOMI7xjalJx8nkzVLpvp\nSgqqPhbV0lZCdgUCMEXJ7Ih7Qij8PXj6vONtxD4N+mx1W2cenH1n/VUXRyW7\nUEwyng/cQmCfeEyHR5hoj0PuIJ3gKl4z76i8+PvGKE5/uDrCp0nO5bQoAW8F\nNCkb\r\n=1k/1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBaT0COlylIhA6bnqu0cqBUO+MIla0/CleQSpKpx443YAiA1gg1aXeBoqBPB8J/wSsZ/f2DCZZisk3DAXlkRU7JcgA=="}]},"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_3.2.0_1640855518864_0.06911790787360217"},"_hasShrinkwrap":false,"contributors":[]},"3.3.0":{"name":"already","description":"Promise extensions; map, filter, etc","license":"MIT","version":"3.3.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"engines":{"node":"^12.20.0 || ^14.13.1 || >=16.0.0"},"type":"module","main":"./dist/index.js","exports":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build:lib":"scripts/build.sh dist ./tsconfig.prod.json","build:test":"scripts/build.sh test-out ./tsconfig.test.json","build":"yarn build:lib && yarn build:test","lint":"true","jest":"jest --coverage","test":"yarn lint && yarn jest","buildtest":"yarn build && yarn test","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","concurrency","map","filter","props","tap","each","defer","deferred","concurrent","extensions","utilities"],"devDependencies":{"@babel/plugin-syntax-optional-chaining":"^7.8.3","@babel/plugin-transform-modules-commonjs":"^7.16.5","@babel/preset-typescript":"^7.16.5","@types/jest":"^26.0.15","commitizen":"^4.2.2","concurrently":"^6.5.1","cz-conventional-changelog":"^3.3.0","jest":"^26.6.3","pre-commit":"1.x","rimraf":"^3.0.2","trace-unhandled":"^2.0.1","ts-jest":"^26.4.4","tslint":"6.1.3","typescript":"4.5.4"},"dependencies":{},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"96bc7e6f2e6da24ef8a520e9c8bc6b9c8d5d402b","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@3.3.0","_nodeVersion":"14.18.2","_npmVersion":"6.14.15","dist":{"integrity":"sha512-ADGyKddqEp8t/Wu4ITc0y9GGsgZDgyMeMk38AM5qrPK7VEjNAYD87QGTGGgNhSQahmjw76V3mi+3fJRwPJXcTw==","shasum":"a5e5becd167cf537b45f8f1c23d331488ed77003","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-3.3.0.tgz","fileCount":5,"unpackedSize":73017,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhzzbECRA9TVsSAnZWagAAaVkP/2ct0PfnagzA+YhrSmPQ\nEXyFGDuPb999QakAv2f78r59HALdH2kFJl5Rechlz5QHi5S21WzbyelQgjfZ\na/+DE2gKoeL8roVqH6KRq8MNvl/ZbEUZHhmrpsTj13+6d6jtHEJ4HGAfY9rU\nDG6zDldpkG7cvylElHlxUDWWv9hE109P7UkLnna1f/pPqE5cjLAb2335gShS\nWBz8OfjhyKMizLudGuK3AU5QTWgd/sq4NwJASOSMPY26LjUq9XkbIlcsnRZK\nJVKOjktOCTYyqR5tqBe1ormLlwPS5yqfx6/GTqNWmljwjxM3OyNv3SNeASpS\nXFS8hppqJhveYLIPTVoIecplS/WVYQVh1ZFdV9573t3j6NHU/57EJH+ljFtQ\nsb2ah+wQFQEHJNn7CmmItNMU1jbED51J875WAUXphi7ZTwRurNlBUa177iTC\nXZUOAn2cTJdplNNUL32rjADOBrMT8EsAFFxWuVch5ket7AgMnu8yPoy3+UIw\nsyE5Xxow5AC52KMqPVTZMCP0uzaRBfsr9cOfm8t88t8Dmy5sad2Eo2d/hYCd\n3434HTsPZYQaHAINaq22LKztJABDuf+w8vhetawUfL7t5kVaYd3YaU0uDzQd\nTRn4L+JY3GbePQCwfzjLGrAxVQV5Y0f9sBZaX0NYdUxckHsqJ87tz30M5nlZ\nG8p7\r\n=N2bq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC40yyaZjbtEvAUvfPHBkLQMKnuKPJUD7YPCrhgNOqm7AIgWDNZptoWpVXhQfG82hkE5e/PX34aGKqQyBXufX6wwY0="}]},"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_3.3.0_1640969924570_0.8594228040221348"},"_hasShrinkwrap":false,"contributors":[]},"3.4.0":{"name":"already","description":"Promise extensions; map, filter, etc","license":"MIT","version":"3.4.0","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"engines":{"node":"^12.20.0 || ^14.13.1 || >=16.0.0"},"type":"module","main":"./dist/index.js","exports":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build:lib":"scripts/build.sh dist ./tsconfig.prod.json","build:test":"scripts/build.sh test-out ./tsconfig.test.json","build":"yarn build:lib && yarn build:test","lint":"true","jest":"jest --coverage","test":"yarn lint && yarn jest","buildtest":"yarn build && yarn test","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","concurrency","map","filter","props","tap","each","defer","deferred","concurrent","extensions","utilities"],"devDependencies":{"@babel/plugin-syntax-optional-chaining":"^7.8.3","@babel/plugin-transform-modules-commonjs":"^7.16.5","@babel/preset-typescript":"^7.16.5","@types/jest":"^26.0.15","commitizen":"^4.2.2","concurrently":"^6.5.1","cz-conventional-changelog":"^3.3.0","jest":"^26.6.3","pre-commit":"1.x","rimraf":"^3.0.2","trace-unhandled":"^2.0.1","ts-jest":"^26.4.4","tslint":"6.1.3","typescript":"4.5.4"},"dependencies":{},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"4e9eba685be25b8b9014b6ec68139fc66765e2be","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@3.4.0","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-l2neHYJryLga4BiKsVdO3c3E5dCl1OgkKS4pr3nDyxQRABywIyI3MuNaUypj2tLQKy7PFJ5CUrQ7Waa+eVn4Fg==","shasum":"d32aab4be75ae2352a16f26d688393fc79675c18","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-3.4.0.tgz","fileCount":5,"unpackedSize":76701,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCX+WLiHDvBW73U0HtvVwoXbrohtEIMuJUhz945DcNLNAIgdZesMnBo1eRmvFL2rw6MRAmuugYUQ2/s6089wQIrzts="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi+of/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoqpw//WqLQZ0rbkfUBZRs9VhFl3H/NuWTMPJJpqN4IW78UJJRY3pEo\r\nBUW8r/bZjbUl4gVxFhtx9LWq/viDqX+GHLobyw4RdweCsB1nK77+kE6uxeqW\r\n40cLthOgirqhXjtTVlgsVT2nwY3xGiuHoSN+yTLNYF3HWjRucJ3TvC67XOna\r\n6J6W0xXpdrPrbTpG73R5eiVBDaWAa2Ad2kBeiw19FZL/bB7vD33UewaB8Dyf\r\n/ahvrJL1SrIFpis66q1ahS0sx12aUPvKafOyB0Z8wu0O0lzN+zkjFGdeIXqe\r\nwh0nOWnd7MDu3AR8AqJAfJ3hgrqDSHVn8Z9hJnhm/+3IElKkgtQf3Ta63fzs\r\n8bXVRbKn6LVbCnKNDpmRw5K8ZggCs9EX/Vu7//3M1IyOGuFRiPZlbExINJdM\r\nB3aZvqkH4bwAXzxVOCOxjXri+K14A7IHsCNVsIZxUO4E+nKA5Xq3AqmTkkwT\r\nsxHUvzrAHWYocdMKAK1b5oj748LNrHs2IUAj6gdQOnV/6szBanLsF9rcNcuA\r\nZOH2To+D2i2Y4BmIMcQwQYrRD6PjAApgMBUC95s8ln6OX6PF8s1rlrgt87PR\r\npJwRBPBN1PVUjNC9dxJWYWjFVTBgDr1wvpd4zpPbIBTxiMTRD/DFa0g6ebhf\r\nEPif2x/5BLMpVSzvj2+LvXWcjy0oyUhTPl4=\r\n=+akn\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_3.4.0_1660585983030_0.48821505922200825"},"_hasShrinkwrap":false,"contributors":[]},"3.4.1":{"name":"already","description":"Promise extensions; map, filter, etc","license":"MIT","version":"3.4.1","author":{"name":"Gustaf Räntilä","email":"g.rantila@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/grantila/already.git"},"engines":{"node":"^12.20.0 || ^14.13.1 || >=16.0.0"},"type":"module","main":"./dist/index.js","exports":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build:lib":"scripts/build.sh dist ./tsconfig.prod.json","build:test":"scripts/build.sh test-out ./tsconfig.test.json","build":"yarn build:lib && yarn build:test","lint":"true","jest":"jest --coverage","test":"yarn lint && yarn jest","buildtest":"yarn build && yarn test","cz":"git-cz"},"pre-commit":["build","test"],"keywords":["promise","concurrency","map","filter","props","tap","each","defer","deferred","concurrent","extensions","utilities"],"devDependencies":{"@babel/plugin-syntax-optional-chaining":"^7.8.3","@babel/plugin-transform-modules-commonjs":"^7.16.5","@babel/preset-typescript":"^7.16.5","@types/jest":"^26.0.15","commitizen":"^4.2.2","concurrently":"^6.5.1","cz-conventional-changelog":"^3.3.0","jest":"^26.6.3","pre-commit":"1.x","rimraf":"^3.0.2","trace-unhandled":"^2.0.1","ts-jest":"^26.4.4","tslint":"6.1.3","typescript":"4.9.4"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"packageManager":"yarn@3.3.1","gitHead":"c35d4c3b59625706398febc9e44c54d1641965b7","bugs":{"url":"https://github.com/grantila/already/issues"},"homepage":"https://github.com/grantila/already#readme","_id":"already@3.4.1","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-A/pPsRla+kGQ8fOEbQOZ0MaWWC8LMR5P1KTtvrcf8AYHBujFF/UofNfHAVIVsXhu9AWV+BRrVt/lXuiouZzLCw==","shasum":"b4946eee0dedaf69ab6ac08655f3b3c60e93bbfb","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/already/-/already-3.4.1.tgz","fileCount":5,"unpackedSize":76535,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDgnY3GimWaAWJpnGXJuI1RSSOoXsUs46GNa7SMR3Pe3AiBkSSmdLsh1a6CHW+HXKfwQHw6yOO/DuDnAKmnGADo8WA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvop6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpsyxAAi+p2fcvEYSmUDjckL5Igkqvl0+qvNQPRIhe08tg8HD7+JOuc\r\nmaKCI+rhuSW6tKJz/mEfmsUwXCvys+lPlrrFlEFEA/kFMFA91r7HN1DcbeUD\r\nxQ2HCOFOuFMdOWmGfMjrZu3NqsJ70Ub9Vogp/Jc6c2HFkhhQllR7iBOof0SI\r\ndAwv03xH67Zi/ev2ecixRZ2ioZ4Mt1X4Zg0qp4JZU85aA8Bo5RmP2lJn8omn\r\nEkbyDQpJwwYn3qzg8M+30McM1UxxkMn2sKPrkRtbrGQTASKq1afkSc7ag3vS\r\n+f2wjq/smUgI7jg/gwp5FEdkz+qk/OMymI1wcKn+2+8yLrU2pXFG5+9f3+iP\r\n/lfesURBtmfLY858hJzV2U1Yffy44YCu/tZ+bkLJGnZfUPo24fzOXVVxsN0e\r\nHNPHoP7ZIW0qNASOABTBPPdydYedmxIkNyn65tJcZljW/050ATNls3Kukmt3\r\n4N2TcaxQ28+pu4l4ub/tMq6m95XWG/zt0+vNnOtBIVWm+3BdxLMEZsVHWW6+\r\nGBeS8zYZSgysESPH37Tymbf21BGAf1XgNo3ZJgEliwmbAXCWxZXdq+G25k1b\r\nGpw3D7AWXmMqTdOoxYsMD0pIl8pYU3ZUx0PyLz8Jx6rpfCt/xdSopbhT+rkG\r\n149hO//YMe9+SexpRz2Zz8WHdt7bmlywOOM=\r\n=M7Vc\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anonymous","email":"g.rantila@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"g.rantila@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/already_3.4.1_1673431673796_0.39984477390379625"},"_hasShrinkwrap":false,"contributors":[]}},"dist-tags":{"latest":"3.4.1","beta":"1.12.0-beta.0"},"name":"already","time":{"modified":"2023-01-11T10:12:07.080Z","created":"2022-01-26T22:55:15.304Z","0.0.1":"2017-09-12T17:05:47.879Z","0.0.2":"2017-09-12T17:34:54.035Z","0.1.0":"2017-09-13T13:10:18.924Z","0.2.0":"2017-09-14T09:53:18.810Z","0.3.0":"2017-09-14T11:26:49.264Z","0.3.1":"2017-09-14T11:39:58.460Z","0.4.0":"2017-09-14T13:11:21.227Z","0.5.0":"2017-09-15T07:55:04.780Z","0.6.0":"2017-09-18T08:04:14.133Z","0.7.0":"2017-11-09T10:31:27.835Z","0.7.1":"2017-12-04T10:38:39.787Z","1.0.0":"2017-12-05T13:05:13.887Z","1.0.1":"2017-12-08T13:36:41.062Z","1.0.2":"2017-12-11T10:38:39.277Z","1.0.3":"2017-12-14T22:06:58.593Z","1.1.0":"2018-01-10T12:37:29.831Z","1.2.0":"2018-02-07T13:33:23.046Z","1.2.1":"2018-02-12T13:24:22.788Z","1.2.2":"2018-06-06T08:56:37.806Z","1.3.0":"2018-09-23T18:57:13.117Z","1.3.1":"2018-09-23T19:03:33.463Z","1.3.2":"2018-09-24T11:45:14.058Z","1.3.3":"2018-09-25T11:07:29.874Z","1.3.4":"2018-10-30T15:52:39.533Z","1.3.5":"2018-11-21T12:38:35.048Z","1.3.6":"2018-12-02T17:25:36.024Z","1.3.7":"2018-12-05T22:38:06.156Z","1.3.8":"2018-12-05T22:46:00.745Z","1.3.9":"2018-12-05T23:12:16.061Z","1.3.10":"2018-12-23T19:17:38.624Z","1.3.11":"2018-12-25T13:38:49.700Z","1.4.0":"2019-01-15T22:26:03.643Z","1.4.1":"2019-01-15T22:46:58.647Z","1.5.0":"2019-01-16T00:13:02.525Z","1.6.0":"2019-01-16T21:20:15.716Z","1.6.1":"2019-01-29T09:50:16.122Z","1.7.0":"2019-03-23T08:07:37.720Z","1.7.1":"2019-03-25T19:02:43.203Z","1.8.0":"2019-05-08T15:36:49.950Z","1.9.0":"2019-07-03T22:48:51.708Z","1.10.0":"2020-01-06T14:50:08.861Z","1.10.1":"2020-01-27T09:42:35.903Z","1.11.0":"2020-03-15T13:46:13.629Z","1.11.1":"2020-03-15T13:55:18.223Z","1.12.0-beta.0":"2020-03-16T22:57:39.450Z","1.12.0":"2020-03-16T23:23:12.124Z","1.12.1":"2020-05-26T12:56:46.326Z","1.13.0":"2020-05-26T21:39:19.498Z","1.13.1":"2020-08-14T19:18:41.433Z","1.13.2":"2020-11-26T18:56:23.151Z","2.0.0":"2021-06-20T08:32:02.412Z","2.1.0":"2021-06-20T10:24:18.400Z","2.2.0":"2021-09-11T16:56:21.443Z","2.2.1":"2021-09-11T17:04:19.573Z","3.0.0":"2021-09-11T17:15:54.761Z","3.1.0":"2021-10-09T09:39:38.503Z","3.1.1":"2021-12-18T22:01:37.234Z","3.2.0":"2021-12-30T09:11:59.046Z","3.3.0":"2021-12-31T16:58:44.702Z","3.4.0":"2022-08-15T17:53:03.237Z","3.4.1":"2023-01-11T10:07:53.981Z"},"readme":"[![npm version][npm-image]][npm-url]\n[![downloads][downloads-image]][npm-url]\n[![build status][build-image]][build-url]\n[![coverage status][coverage-image]][coverage-url]\n[![greenkeeper badge][greenkeeper-image]][greenkeeper-url]\n[![Language grade: JavaScript][lgtm-image]][lgtm-url]\n\n# Already\n\n`already` is a set of promise helper functions which many of them are also found in libraries such as Bluebird.\n\nThe functions are standalone and depends on no particular Promise implementation and therefore works well for JavaScript's built-in Promise.\n\nThe library is written in TypeScript, so typings are provided. It is exported only as an [ESM package](esm-package)!\n\n\n# Versions\n\n * Since version 2, `Finally` and `Try` are removed. They should be replaced with `Promise.prototype.finally` and async functions.\n * Since version 3, it's only exported as an [ESM package](esm-package).\n\n\n# Types\n  * [PromiseOf\\<P\\>](#PromiseOf)\n  * [PromiseElement\\<P\\>](#PromiseElement)\n  * [EnsurePromise\\<P\\>](#EnsurePromise)\n  * [EnsureNotPromise\\<P\\>](#EnsureNotPromise)\n  * [IfPromise\\<P, T, U\\>](#IfPromise)\n  * [IfNotPromise\\<P, T, U\\>](#IfNotPromise)\n\n# Functions\n\n  * [concurrent](#concurrent)\n      <br>&emsp;Run a function with certain concurrency\n  * [delay](#delay)\n      <br>&emsp;Create a promise which resolved after a certain time\n  * [tap](#tap)\n      <br>&emsp;_\"Listen\"_ to a promise version in a `.then`-chain without modifying the value\n  * [props](#props)\n      <br>&emsp;`Promise.all` but for objects/properties\n  * [filter](#filter)\n      <br>&emsp;Asynchronuos version of `Array.prototype.filter`\n  * [map](#map)\n      <br>&emsp;Asynchronuos version of `Array.prototype.map`\n  * [flatMap](#flatmap)\n      <br>&emsp;Asynchronuos version of `Array.prototype.flatMap`\n  * [reduce](#reduce)\n      <br>&emsp;Asynchronuos version of `Array.prototype.reduce`\n  * [each](#each)\n      <br>&emsp;Asynchronuos version of `Array.prototype.forEach`\n  * [some](#some)\n      <br>&emsp;Asynchronuos version of `Array.prototype.some`\n  * [once](#once)\n      <br>&emsp;Wrap a function and ensure it only runs once (with asynchrony)\n  * [retry](#retry)\n      <br>&emsp;Asynchronously retry a function call\n  * [defer](#defer)\n      <br>&emsp;Create a promise and extract its `resolve`/`reject` functions\n  * [deferSet](#deferset)\n      <br>&emsp;Create a set of deferred promises\n  * [reflect](#reflect)\n      <br>&emsp;Get a promise's resolved value or rejected error in a success flow\n  * [inspect](#inspect)\n      <br>&emsp;Inspect a promise. Is it pending? Is it rejected?\n  * [specific](#specific)\n      <br>&emsp;Catch _specific_ types, like many languages have error type matching in subsequent `catch` statements\n  * [rethrow](#rethrow)\n      <br>&emsp;Ensure a callback re-throws (to not silently swallow errors)\n  * [timeout](#timeout)\n      <br>&emsp;Timeout a promise (race it against a timer)\n  * [wrapFunction](#wrapfunction)\n      <br>&emsp;Wrap a function with a potentially asynchronous prolog and/or epilog (e.g. init/cleanup)\n  * [funnel](#funnel)\n      <br>&emsp;Ensure certain parts of a function is executed without concurrency (think asynchrony _barrier_)\n\n---\n\n# Types\n\n## PromiseOf\n\n`PromiseOf< P >` returns the Promise wrapped value of `P`, unless it's already a promise, where the promise itself is returned instead.\n\n  * For `P` (being `Promise< E >`), it returns `P`\n    * E.g. `Promise< string >` ⇒ `Promise< string >`\n  * For non-promise `E`, it returns `Promise< E >`\n    * E.g. `string` ⇒ `Promise< string >`\n\n\n## PromiseElement\n\n`PromiseElement< P >` returns the element type of a promise, or the type itself if it isn't wrapped in a promise.\n\n  * For `P` (being `Promise< E >`), it returns `E`\n    * E.g. `Promise< string >` ⇒ `string`\n  * For non-promise `E`, it returns `E`\n    * E.g. `string` ⇒ `string`\n\n## EnsurePromise\n\n`EnsurePromise< P >` returns `P` if it is a promise. Otherwise the type is `never`.\n\n\n## EnsureNotPromise\n\n`EnsureNotPromise< T >` returns `T` if it is **not** a promise. Otherwise the type is `never`.\n\n\n## IfPromise\n\n`IfPromise< P, T[, U = never] >` returns `T` if `P` is a promise, otherwise returns `U`.\n\n\n## IfNotPromise\n\n`IfNotPromise< P, T[, U = never] >` returns `U` if `P` is a promise, otherwise returns `T`.\n\n\n# Functions\n\n## concurrent\n\nSince version 2 of this package, the dependency on `throat` was removed. This function works like throat; it wraps a function with concurrency, returning a new function that can be called repeatedly, but will only call the underlying function with the provided concurrency.\n\nThe function takes a concurrency option, and optionally the function to be wrapped. If the second argument isn't passed, the returned function takes a function as first argument. This allows you to run separate functions, yet guarantee a maximum concurrency.\n\n```ts\nimport { concurrent } from 'already'\n\n// function readSomethingFromDb(): Promise<any>;\n\nconst concurrently = concurrent( 3, readSomethingFromDb );\n\n// This will ensure <readSomethingFromDb> isn't called more than 3 times concurrently\nconst results = await Promise.all(\n    listOfIds.map( id => concurrently( id ) )\n);\n```\n\nor without specifying the function, so that different functions can share concurrency:\n\n```ts\nimport { concurrent } from 'already'\n\nconst concurrently = concurrent( 3 );\n\nconst results = await Promise.all(\n    listOfThings.map( thing =>\n        typeof thing === 'string'\n        ? concurrently( readSomethingElse, thing )\n        : concurrently( readSomethingFromDb, thing )\n    )\n);\n```\n\n\n## delay\n\nThe standalone `delay` function takes a milliseconds argument and returns a promise which is resolved after that time. An optional value can be given too, resolving in a promise with this future value.\n\n```ts\nimport { delay } from 'already'\n\ndelay( 100 ).then( ( ) => console.log( \"100ms has passed\" ) )\n// or\ndelay( 100, \"foo\" ).then( val => console.log( val ) )\n```\n\nIt can also be used to delay a promise chain **if it is resolved**, using `delayChain`. The delay will be ignored if the upstream promise contains an error.\n\n```ts\nimport { delayChain } from 'already'\n\nsomePromise\n.then( delayChain( 100 ) )\n```\n\nTo always delay a chain, regardless of whether it was resolved or rejected, use:\n\n```ts\nsomePromise\n.finally( delayChain( 100 ) )\n```\n\n\n## tap\n\nA similar function to `then` is `tap` which is called only on resolved promises. The callback cannot alter the value flow of the promise, i.e. it cannot have a return value. This is useful for logging/debugging, etc. If it returns a promise, it will be awaited before letting the flow continue down the promise chain.\n\nNote; If the `tap` callback either throws an error, or returns a promise which is rejected, **the flow will continue with this error** and not the upstream value.\n\n```ts\nimport { tap } from 'already'\n\nsomePromise\n.then( tap( value => { /* tap handler where the value is available */ } ) )\n```\n\n## props\n\nAs an alternative to `Promise.all( )` which awaits all promises in an array, `props( )` awaits all properties in an object.\n\nThe properties are enumerated and awaited as `Promise.all( )`, so if any of the promises are rejected, the same flow will happen as when calling `Promise.all( )` (i.e. the returned promise will contain the error/errors).\n\n```ts\nimport { props } from 'already'\n\nprops( { a: someValue, b: somePromise } )\n.then( ( { a, b } ) => { /* a and b are now values (not promises) */ } )\n```\n\nObviously, `props` can be used in a promise chain, by just refering to the function rather than calling it.\n\n```ts\nimport { props } from 'already'\n\nPromise.resolve( { a: someValue, b: somePromise } )\n.then( props )\n.then( ( { a, b } ) => { /* a and b are now values (not promises) */ } )\n```\n\n\n## filter\n\nThe `filter` helper can operate on arrays of promises, and will do the same as waiting for all promises in the array and then applying `array.filter( )` on the result. If the filter callback returns a promise, it will be awaited (and expected to eventually become a `boolean`). This eventual value will determine whether to include the value or not in the resulting array.\n\n```ts\nimport { filter } from 'already'\n\nsomePromiseToAnArrayOfPromisesAndValues\n.then( filter( item => item.shouldBeIncluded ) )\n```\n\n### filter concurrency\n\nBy default, the values will be filtered as fast as possible, but sometimes it is preferable to only spawn *n* number of filter callback calls concurrently, e.g. if they perform network/database requests. This can be done by providing an optional object with the `concurrency` property set. This will include awaiting both the upstream values (if the array contains promises) as well as the filter callback results if they are promises. New filter callbacks will not be called if more than *n* promises are being awaited.\n\n```ts\nimport { filter } from 'already'\n\nsomePromiseToAnArrayOfPromisesAndValues\n.then( filter( { concurrency: 4 }, item => item.shouldBeIncluded( ) ) )\n```\n\n### filter without a promise chain\n\nThe `filter` function can be called without a promise chain, and act on an array of values or promises as the first argument.\n\n```ts\nimport { filter } from 'already'\n\nconst outArray = await filter( inArray, filterFun );\n// or with custom concurrency:\nconst outArray = await filter( inArray, { concurrency: 4 }, filterFun );\n```\n\n### filter operations chunked by idle time\n\nSome filter operations (predicate functions) are heavy on calculations. To not starve the system (e.g. a browser) from CPU resources, the filter can be chopped up in smaller chunks with either a `setTimeout(0)` or by using [`requestIdleCallback`](https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback).\n\nThe options used to specify concurrency can instead specify `chunk`. This implies a concurrency of 1, i.e. no concurrency. Chunking is mostly useful in synchronously heavy operations, not asynchronous.\n\nSpecify a chunk time explicitly, e.g. 50ms:\n\n```ts\nimport { filter } from 'already'\n\nconst outArray = await filter( inArray, { chunk: 50 }, filterFun );\n```\n\nor use `requestIdleCallback` to try to maintain a hang-free experience in browsers:\n\n```ts\nimport { filter } from 'already'\n\nconst outArray = await filter( inArray, { chunk: 'idle' }, filterFun );\n```\n\n\n## map\n\nSame as with `filter`, `map` acts like awaiting all promises in an array, and then applying `array.map( )` on the result. Also, just like with `filter`, it will await the resulting promises from the map callback (if they actually are promises).\n\n```ts\nimport { map } from 'already'\n\nsomePromiseToAnArrayOfPromisesAndValues\n.then( map( item => JSON.stringify( item ) ) )\n```\n\n### map concurrency\n\nLike with `filter`, `map` allows a custom concurrency.\n\n```ts\nimport { map } from 'already'\n\nsomePromiseToAnArrayOfPromisesAndValues\n.then( map( { concurrency: 4 }, item => queryDB( item ) ) )\n```\n\n### map without a promise chain\n\nThe `map` function can be called without a promise chain, just like `filter`.\n\n```ts\nimport { map } from 'already'\n\nconst outArray = await map( inArray, mapFun );\n// or with custom concurrency:\nconst outArray = await map( inArray, { concurrency: 4 }, mapFun );\n```\n\n### map operations chunked by idle time\n\nSome map operations (predicate functions) are heavy on calculations, just like `filter`. And for [the same reasons](#filter-operations-chunked-by-idle-time), you can select `chunk` to chunk up a map operation to not starve system from CPU resources in (synchronously) heavy map operations:\n\nSpecify a chunk time explicitly, e.g. 50ms:\n\n```ts\nimport { map } from 'already'\n\nconst outArray = await map( inArray, { chunk: 50 }, mapFun );\n```\n\nor use `requestIdleCallback` to try to maintain a hang-free experience in browsers:\n\n```ts\nimport { map } from 'already'\n\nconst outArray = await map( inArray, { chunk: 'idle' }, mapFun );\n```\n\n\n## flatMap\n\nSame as with `map`, but flattens the first-level potential arrays, and awaits the values if they are async. Can be used within a promise chain, or standalone taking the input array as first argument, an optional options object, and then the mapper function, just like [`map`](#map).\n\n```ts\nimport { flatMap } from 'already'\n\nsomePromiseToAnArrayOfPromisesAndValues\n.then( flatMap( { concurrency: 8 }, item =>\n    item.hasTwo\n    ? [ asyncJob( item.first ), asyncJob( item.second ) ]\n    : asyncJob( item )\n) )\n```\n\n\n## reduce\n\nReducing (folding) over an iterable of values or promises is easily done with `reduce( )`. The reducer function can return promises, and they will be awaited before continuing with the next value.\n\nThe mechanism for this follows the reasoning behind Bluebird's [`reduce`](http://bluebirdjs.com/docs/api/promise.reduce.html) in how the initial value is handled, and the last argument in the reducer function being a number, not an array.\n\n```ts\nimport { reduce } from 'already'\n\nsomePromiseToAnArray\n.then( reduce( reducerFn[, initialValue ] ) )\n\n// or on an array\n\nreduce( arrayOrIterable, reducerFn[, initialValue ] )\n```\n\nIf called within a promise chain (as the first example above), the `reduce` takes one or two arguments, a reducer function and an optional initial value.\n\nIf called outside a promise chain, it also takes the array (or any other iterable, or promise to any such) as the first argument.\n\nThe reducer function is on the format\n\n```ts\nreduce( accumulator: R, current: T, index: number, length: number ) => R | PromiseLike< R >;\n```\n\nThe `accumulator` has the same type as the return value (although the return can be asynchronous), which is the *reduced* type `R`. The `current` is of type `T`, which is what the input array consists of (although it may consist of `PromiseLike< T >` too).\n\nThis means that the returned type from `reduce` doesn't need to be the same as the input, although **this is only true if `initialValue` is set**. If it is set, it will be used as the first `accumulator`, and `index` will begin at `0`. If `initialValue` is left unset (or is `undefined`), `R` and `T` must be the same, and  `index` will begin at `1`, since the first call will use the first index in the input as `accumulator` and the second as `current`.\n\n`length` is the length of the input iterable/array, which is the same logic as in Bluebird, and **unlike** how Javascript's `Array.reduce` works (where you get the *array* as fourth argument).\n\n\n## each\n\n`each` iterates an array of promises or values, very much like `map`, although with a default `concurrency` of `1`.\n\nThe iterator function cannot return a value (or it will be ignored), but can return an empty promise which will be awaited before the next iteration. It's like `tap` but for elements in an array.\n\nThe return value of `each` is the input array unmodified.\n\nIf any of the iterator function calls throws an exception, or returns a rejected promise, the iteration will end and the return of `each` will be a promise rejected with this error.\n\n```ts\nimport { each } from 'already'\n\nsomePromiseToAnArrayOfPromisesAndValues\n.then( each( item => { doSomethingWith( item ); } ) )\n.then( /* input array is here and unmodified */ )\n\n// or provide the array as first argument:\n\nconst outArray = await each( inArray, iteratorFun );\n// outArray ~ inArray, not necessarily the *same* array, but the same content\n```\n\n### Concurrency and time-chunking\n\nJust like `filter` and `map` have [concurrency](#filter-concurrency) and [time-chunking](#filter-operations-chunked-by-idle-time) options, so does `each`. An optional argument before the predicate/iterator function can be used.\n\nFor concurrency:\n\n```ts\nimport { each } from 'already'\n\nawait each( array, { concurrency: 4 }, iteratorFun );\n```\n\nand for time-chunking:\n\n```ts\nimport { each } from 'already'\n\n// Time-chunk every 50 milliseconds\nawait each( array, { chunk: 50 }, iteratorFun );\n// Time-chunk dynamically based on requestIdleCallback()\nawait each( array, { chunk: 'idle' }, iteratorFun );\n```\n\n\n## some\n\nJust like filter, map and reduce which here are implemented closely mimicing the Array prototype functions but supporting asynchrony, `some` works similar to [`Array.some()`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/some). The return is different though, in that it doesn't necessarily return a promise to `true` or `false`, but rather a promise of the *truthy* value (of type `T`) or `false`.\n\nThe return type not being coerced to `true` upon match, makes it ideal in situations where `reduce` would otherwise be used only to find the first match. `some` may perform better, since it stops iterating on first match, while `reduce` would complete the iteration before it returns.\n\nLike `filter`, `map` and `reduce` above, it supports a promise to a list, promises as values in the list, and an asynchronous predicate function.\n\n```ts\nimport { some } from 'already'\n\nsomePromiseToAnArray\n.then( some( predicateFn ) )\n.then( ( t: T | false ) => { ... } ) // T is the return type of predicateFn\n\n// or on an array\n\nconst t = await some( arrayOrIterable, predicateFn );\n// t is of type T (the return type of predicateFn) or false\n```\n\n### Example\n\n```ts\nimport { some } from 'already'\n\nconst arr = [ 1, 2, 3 ];\n\nasync function pred( num: number ): Promise< string >\n{\n    // ... Implementation goes here\n}\n\nconst val = await some( arr, pred );\n// val is now either a string (the first truthy match) or false\n```\n\n\n## once\n\nTo ensure a function is only called once, use `once()`. It handles both synchronous and asynchronous functions, in that you can await the wrapped function call. It will return the value returned from the wrapped function, every time the wrapper is called. It also comes in two shapes:\n\n```ts\nimport { once } from 'already'\n\n// Single function\nconst once1 = once( myFunction ); // Wrap a function\nconst ret1 = once1( ); // Will invoke myFunction\nconst ret2 = once1( ); // Will do nothing\n// ret1 === ret2\n\n// Multiple functions\nconst once2 = once( ); // Make dynamic wrapper\nonce2( myFunction1 ); // Will invoke myFunction1\nonce2( myFunction2 ); // Will invoke myFunction2\nonce2( myFunction1 ); // Will do nothing\nonce2( myFunction2 ); // Will do nothing\n```\n\nThe dynamic approach is achieved by calling `once( )` without arguments. The result wrapper can be called with different functions, and every unique function will only be invoked once.\n\nIf the functions are asynchronous, just await the wrapper call:\n\n```ts\n// Single function\nconst once1 = once( myFunction ); // Wrap a function\nawait once1( ); // Will invoke myFunction\nawait once1( ); // Will do nothing\n\n// Multiple functions\nconst once2 = once( ); // Make dynamic wrapper\nawait once2( myFunction1 ); // Will invoke myFunction1\nawait once2( myFunction2 ); // Will invoke myFunction2\nawait once2( myFunction1 ); // Will do nothing\nawait once2( myFunction2 ); // Will do nothing\n```\n\nEven if the functions are invoked immediately after each other, they won't be invoked twice, but they will all wait for the wrapped function to complete:\n\n```ts\nasync function myFunction( ) { ... }\nconst once1 = once( myFunction );\nconst promise = once1( ); // Will invoke myFunction\nawait once1( ); // Will not invoke myFunction, but await its completion!\n```\n\nYou can pass an argument to the function if it takes one. It will still only call the function once, regardless of the argument (unlike memoize functions):\n\n```ts\nconst once1 = once( ( n: number ) => n * 3 ); // Wrap a function\n12 === await once1( 4 ); // Will invoke myFunction\n12 === await once1( 5 ); // Will do nothing (but return the old value)\n```\n\n\n## retry\n\nThe `retry( )` function can be used to call a function and \"retry\" (call it again) if it threw an exception, or returned a rejected promise.\n\nThe `retry( times, fn [, retryable ] )` function takes a number for maximum number of retries as first argument, and the function to call as the second argument. If `times` is 1, it will **retry** once, i.e. potentially calling `fn` two times.\n\nThe return value of `retry` is the same as that of `fn` as it will return the result of a *successful* call to `fn( )`.\n\nThe function is transparently handling callback functions (`fn`) returning *values* or *promises*.\n\nThe third and optional argument is a predicate function taking the error thrown/rejected from `fn`. It should return `true` if the error is *retryable*, and `false` if the error is not retryable and should propagate out of `retry` immediately.\n\nSynchronous example:\n\n```ts\nfunction tryOpenFileSync( ) { /* ... */ } // Might throw\n\n// Only retry ENOENT errors\nconst fd = retry(\n    Infinity,\n    tryOpenFileSync,\n    err => err.code === 'ENOENT'\n);\n```\n\nAsynchronous example:\n\n```ts\nasync function sendMessage( ) { /* ... */ } // Might return a rejected promise\n\n// Try sending 3 times. NOTE: await\nconst anything = await retry( 3, sendMessage );\n```\n\n\n## defer\n\nThe `defer` function template returns an object containing both a promise and its resolve/reject functions. This is generally an anti-pattern, and `new Promise( ... )` should be preferred, but this is sometimes necessary (or at least very useful).\n\n```ts\nimport { defer } from 'already'\n\nconst deferred = defer< string >( );\ndeferred.promise; // The promise.\ndeferred.resolve; // The resolve function.\ndeferred.reject;  // The reject function.\n\ndeferred.resolve( \"foo\" ); // deferred.promise is now resolved to \"foo\"\n```\n\n### Empty defer\n\nTo create a defer object backed by a `Promise< void >`, creating it through `defer< void >( )` will not suffice. The returned object's `resolve` function will require an argument. Instead, create with an explicit void argument:\n\n```ts\nconst deferred = defer( void 0 );\ndeferred.resolve( ); // This is now legal, typewise\n```\n\n\n## deferSet\n\nInstead of creating a lot of defer objects, e.g. in unit tests to trigger asynchrony in a certain order, `deferSet` is a cleaner way.\n\nA *\"defer set\"* is a dynamically growable set of indexes (numbers) which can be awaited, resolved or rejected at any time.\n\n`deferSet( )` returns an object (of a class `OrderedAsynchrony`). This has the helper functions:\n\n * `wait( index | [indices...] ) -> Promise< void >`\n * `resolve( index | [indices...] ) -> Promise< void >`\n * `reject( index | [indices...] ) -> Promise< void >`\n\n```ts\nimport { deferSet } from 'already'\n\nconst order = deferSet( );\n\norder.resolve( 0 ); // Resolve index 0\nawait order.wait( 0 ); // Wait for promise 0 (which was resolved above)\n```\n\nThe above will work fine, it's basically creating a `defer`, resolving it and then awaiting its promise. This will deadlock:\n\n```ts\nawait order.wait( 0 ); // Will wait forever\norder.resolve( 0 );\n```\n\nIt's possible to wait, resolve and reject multiple indices at once, by specifying an array instead. And `wait` can take an optional index (or array of indices) to resolve, as well as an optional index (or array of indices) to reject.\n\nThe return value of `wait( )`, `resolve( )` and `reject( )` is a promise *and* the defer set itself.\n\n```ts\n// Do stuff, and eventually trigger certain index resolutions.\ndoFoo( ).then( ( ) => { order.resolve( 0 ); } ); // Eventually resolves index 0\ndoBar( ).then( ( ) => { order.resolve( [ 1, 3 ] ); } ); // Eventually resolves index 1 and 3\n// etc.\n\nawait order.wait( [ 0, 1, 3 ], 2 ); // Await index 0, 1 and 3, resolve index 2.\norder.reject( 4 ); // Will reject index 4 with an error.\nawait order.wait( 4 ); // Will (asynchronously) throw.\n```\n\n\n## reflect\n\nA promise can be either resolved or rejected, but sometimes it's convenient to have a shared flow for either occasion. That's when `reflect` comes in handy. It takes a promise as argument, and returns a promise to a `Reflection` object which contains the *value* **or** *error*, and the booleans `isResolved` and `isRejected`.\n\n```ts\nimport { reflect } from 'already'\n\nconst somePromise = Math.random( ) < 0.5\n    ? Promise.resolve( 1 )\n    : Promise.reject( new Error( ) );\n\nconst reflection = await reflect( somePromise );\nconst { value, error, isResolved, isRejected } = reflection;\n\nif ( isResolved )\n    doSomethingWithValue( value );\nelse\n    handleError( error );\n```\n\nThe `Reflection` type has the form:\n\n```ts\ninterface Reflection< T >\n{\n\terror?: Error;\n\tvalue?: T;\n\tisResolved: boolean;\n\tisRejected: boolean;\n}\n```\n\n\n## inspect\n\nIn some cases is it useful to synchronously know if a promise is pending, resolved or rejected. Some promise libraries provide this on the promise as `isPending( )` functions e.g.\n\nWith `already`, wrap the promise in an *InspectablePromise* using the `inspect( )` function.\n\n```ts\nimport { inspect } from 'already'\n\nconst inspectable = inspect( somePromise );\ninspectable.promise    // <Promise> A new promise, chained from `somePromise`\ninspectable.isPending  // <boolean>\ninspectable.isResolved // <boolean>\ninspectable.isRejected // <boolean>\n```\n\n**Note;** The returned object's promise must be used in the rest of the application, rather than the upstream promise (the one given as argument to `inspect`). It is technically not the same promise, and a rejection will otherwise likely result in an \"Unhandled promise rejection\" warning, or worse.\n\n**Note;** The returned object will always be in *pending-mode* when the function returns, i.e. `isPending` will be `true` and `isResolved` and `isRejected` will both be `false`. Only after the next tick will these values have been settled. To ensure the right value \"immediately\", `await` the inspect return, to allow the value to settle:\n\n```ts\nimport { inspect } from 'already'\n\nconst inspectable = await inspect( somePromise );\n// inspectable.is{Pending|Resolved|Rejected} are now settled\n```\n\n\n## deferInspectable\n\nA combination of `defer` and `inspect` is sometimes useful, where `deferInspectable` comes in handy.\n\n```ts\nimport { deferInspectable } from 'already'\n\nconst deferred = deferInspectable< T >( );\ndeferred.promise    // The promise.\ndeferred.resolve;   // The resolve function.\ndeferred.reject;    // The reject function.\ndeferred.isPending  // <boolean>\ndeferred.isResolved // <boolean>\ndeferred.isRejected // <boolean>\n```\n\nFor promises of `void` type, in TypeScript create it with `deferInspectable( void 0 )`.\n\nUnlike `inspect`, the values are immediately correct, no `await` is necessary to settle the values. Also, when `resolve()` and `reject()` are called, the `is*` booleans are synchronously set.\n\n\n## specific\n\nThe `specific` function can be used in a `.catch( ... )` handler to filter the catch for specific errors only. Its logic is taken from Bluebird's [`catch`](http://bluebirdjs.com/docs/api/catch.html).\n\nThe syntax is\n\n```ts\nspecific( filter | [ filters ], handlerFn )\n```\n\nwhere the `filter` (or an array of such) is either an error constructor, a predicate function or an object, and `handlerFn` is the error handler.\n\nError constructors are checked with `instanceof`, predicate functions get the error object and must return `true` or `false`, and custom objects are shallowly checked key-by-key for `==` match. If the predicate function throws, the promise chain will contain this error.\n\n```ts\nimport { specific } from 'already'\n\nsomePromise\n.catch( specific( MyError, err => { /* handler */ } ) )\n.catch( specific( isHttpClientError, err => { /* handler */ } ) )\n.catch( specific( { minorIssue: true }, err => { /* handler */ } ) )\n.catch( err => { /* any other error, OR if the above error handlers threw */ } )\n```\n\n\n## rethrow\n\nAnother `catch` helper is `rethrow` which allows a function to be called as an error handler, but ensures it rethrows the upstream error.\nNote; if the callback function throws an error, or returns a rejected promise, this error will flow through rather than the upstream error.\n\nThe callback can either return nothing (synchronously) or an empty promise, which will be awaited before continuing with rethrowing.\n\nThe callback will get the error as argument.\n\n```ts\nimport { rethrow } from 'already'\n\nsomePromise\n.catch( rethrow( err => { /* handler */ } ) )\n// the promise is still rejected\n```\n\nor, combined with `specific`:\n\n```ts\nimport { specific, rethrow } from 'already'\n\nsomePromise\n.catch( specific( MyError, rethrow( err => { /* handler */ } ) ) )\n.catch( err => { /* handler */ } ) // will always be called, if somePromise was rejected\n```\n\n\n## timeout\n\nTo race a promise against a timer (to run code within a certain timeframe), use `timeout`. It is basically a `Promise.race()` against a [`delay()`](#delay), with a nice API. The first argument is the promise to race, and the second is the number of milliseconds to wait for at most.\n\nThe promise returned from `timeout()` will never be rejected. It will be resolved within the timeout period.\n\nThe value of the returned promise is an object on the form:\n\n```ts\ninterface TimeoutValue< T >\n{\n\ttimedout: boolean;\n\treflection?: Reflection< T >; // If the promise did NOT timeout\n\tpromise: Promise< T >;\n}\n```\n\nCode can check if `timedout` is true or false. If it's true, the `promise` property can be used to further wait for the completion (at least a `catch` should be registered to handle errors). If `timedout` is false, the `reflection` property is of type [`Reflection`](#reflect) and contains the value or error.\n\n```ts\nimport { timeout } from 'already'\n\nconst { timedout, reflection, promise } = await timeout( somePromise, 3000 );\n\nif ( timedout )\n{\n    // The promise timed out\n    promise.catch( err =>\n        console.error( `Timed out promise eventually failed`, err.stack )\n    );\n}\nelse\n{\n    // The promise was resolved or rejected\n    if ( reflection.isResolved )\n    {\n        doSomething( reflection.value );\n    }\n    else\n    {\n        handleError( reflection.error );\n    }\n}\n```\n\n\n## wrapFunction\n\nIn many cases, wrapping a function with custom 'before' and 'after' hooks is useful, e.g. in unit tests. When working with asynchronous code, this may sound easier than it really is, especially in a type safe manner. The 'before' handler, the wrapped function and the 'after' handler can all be either synchronous or asynchronous, and the returned (wrapped) function should reflect this and be synchronous if possible, otherwise asynchronous.\n\n`wrapFunction` takes a 'before' handler (a function) which is supposed to return an 'after' handler. It returns a new function which takes the target function as argument and performs the invocation by 1) calling the 'before' function, 2) calling the target function and 3) calling the 'after' function (returned by the 'before' function)\n\n```ts\nimport { wrapFunction } from 'already'\n\nconst wrapFactory = wrapFunction(\n    ( ) =>\n    {\n        // Do stuff before\n        console.log( \"before\" );\n        // ...\n\n        return ( ) =>\n        {\n            // Do stuff after, e.g. clean up\n            console.log( \"after\" );\n        }\n    }\n);\n\nfunction aUsefulFunction( )\n{\n    // Imagine this function to be useful, and we want to wrap it\n    console.log( \"useful\" );\n    return \"yo\";\n}\n\n// Call aUsefulFunction but wrap the call\nconst ret = wrapFactory( aUsefulFunction );\n\nexpect( ret ).to.equal( \"yo\" );\n\n// Console output:\n// before\n// useful\n// after\n```\n\nThe before handler can also take an optional argument, which then must be provided when invoking the wrapper.\n\n```ts\nconst wrapFactory = wrapFunction(\n    ( hookData: string ) =>\n    {\n        // Do stuff before\n        console.log( hookData );\n        // ...\n\n        return ( ) =>\n        {\n            // Do stuff after, e.g. clean up\n            console.log( \"after\" );\n        }\n    }\n);\n\nfunction aUsefulFunction( )\n{\n    // Imagine this function to be useful, and we want to wrap it\n    console.log( \"useful\" );\n    return \"yo\";\n}\n\n// Call aUsefulFunction but wrap the call\nconst ret = wrapFactory( \"before\", aUsefulFunction );\n\nexpect( ret ).to.equal( \"yo\" );\n\n// Console output:\n// before\n// useful\n// after\n```\n\nAnd all three functions can be synchronous or asynchronous, e.g.\n\n```ts\nconst wrapFactory = wrapFunction(\n    async ( hookData: string ) =>\n    {\n        // Do stuff before\n        console.log( hookData );\n        // ...\n\n        return ( ) =>\n        {\n            // Do stuff after, e.g. clean up\n            console.log( \"after\" );\n        }\n    }\n);\n\nfunction aUsefulFunction( )\n{\n    // Imagine this function to be useful, and we want to wrap it\n    console.log( \"useful\" );\n    return \"yo\";\n}\n\n// Call aUsefulFunction but wrap the call\nconst ret = await wrapFactory( \"before\", aUsefulFunction );\n\nexpect( ret ).to.equal( \"yo\" );\n\n// Console output:\n// before\n// useful\n// after\n```\n\n\n## funnel\n\nEnsuring exclusive calls to a function can be implemented in multiple ways. With asynchrony, this gets quite complicated.\n\nMany problems can be generalized to only running one function at a time (awaiting it if necessary). For this, [`concurrent`](#concurrent) is useful. Sometimes a more fine grained control is desired, such as allowing a _test and early return_ as well as signalling that the concurrent logic is complete (to allow the next function call) before the whole function is complete. This results in a more understandable flow.\n\nFor this, `funnel()` is extremely handy.\n\nConsider the following example\n\n```ts\nasync function getConnection( )\n{\n    const conn = await getReusableConnection( );\n    if ( conn ) // We have a re-usable connection or will wait for one to be free\n        return conn;\n\n    // We can create (at least) 1 more connection, but maybe only 1\n    const newConn = await connect( );\n    registerToConnectionPool( newConn ); // This is now re-usable\n    return newConn;\n}\n```\n\nThe above is a connection pool, we might only want a certain number of connections. In this simple example, we can make a counter and check its value, but sometimes the counter isn't static, sometimes asynchronous \"questions\" must be asked in order to know whether to proceed or not.\n\nIs the above code safe? It isn't. Two synchronously immediate calls to `getConnection` will likely get the same answer from `getReusableConnection`, i.e. *falsy*. This means, they'll both call `connect`, although maybe just one should have done so. Only one should have created a connection, then `registerToConnectionPool` while the other should wait until the first is complete, then retry `getConnection` from scratch to see if a connection can be re-used.\n\nThe `getConnection` could be wrapped inside a [`concurrent`](#concurrent) wrapper, but that wouldn't be as performant as possible. Consider two calls to `getConnection` when there are connections in the pool, but none is free. One of the two calls should create a new connection, but while this takes place (which may take time), another might be freed. This newly freed connection should be re-usable by the second call to `getConnection`.\n\n`funnel` makes this trivial. Wrap the `getConnection` logic in a funnel. Allow concurrent access to `getReusableConnection` which is concurrency _safe_. Then create a _synchronization barrier_ (using `shouldRetry`/`retry`):\n\n```ts\nimport { funnel } from \"already\";\n\nconst connectionFunnel = funnel< Connection >( );\n// Or if pure JavaScript, just:\n// const connectionFunnel = funnel( );\n\nasync function getConnection( )\n{\n    return connectionFunnel( async ( shouldRetry, retry ) =>\n    {\n        const conn = await getReusableConnection( );\n        if ( conn ) // We have a re-usable connection or will wait for one to be free\n            return conn;\n\n        if ( shouldRetry( ) ) // <-- this and\n            return retry( );  // <-- this, is the key\n\n        // We can create (at least) 1 more connection, but maybe only 1\n        const newConn = await connect( );\n        registerToConnectionPool( newConn ); // This is now re-usable\n        return newConn;\n    } );\n}\n```\n\nWhen creating a funnel, an options object can be provided with two options:\n\n * `onEmpty` [`callback`]: will be called when the last concurrent task has finished. This can be used for cleanup. Note; This can be called multiple times, it will be called when there is no pending/waiting tasks anymore.\n * `concurrency` [`number`]: Specifies how many concurrent tasks to allow before `shouldRetry` returns `true`. (Defaults to `1`).\n\nThe callback function to the funnel can take a third argument after `shouldRetry` and `retry`, which is a function called `shortcut`. This can be used to signal that the function is complete (in terms of synchronization) earlier than when its returned promise is resolved:\n\n```ts\nimport { funnel } from \"already\";\n\nconst onEmpty = ( ) => console.log( \"Concurrent tasks finished\" );\nconst connectionFunnel = funnel( { onEmpty } );\n\nasync function getConnection( )\n{\n    return connectionFunnel( async ( shouldRetry, retry, shortcut ) =>\n    {\n        // Before shouldRetry there is no synchronization, this can be called\n        // concurrently.\n        const conn = await getReusableConnection( );\n        if ( conn )\n            return conn;\n\n        if ( shouldRetry( ) )\n            return retry( );\n\n        // Synchronization begins\n        const newConn = await connect( );\n        registerToConnectionPool( newConn );\n        // Synchronization ends\n        shortcut( ); // This will signal that synchronization is complete,\n                     // let concurrent tasks (if any) retry immediately.\n        return decorateConnection( newConn ); // Maybe (asynchronously) slow\n    } );\n}\n```\n\n\n[npm-image]: https://img.shields.io/npm/v/already.svg\n[npm-url]: https://npmjs.org/package/already\n[downloads-image]: https://img.shields.io/npm/dm/already.svg\n[build-image]: https://img.shields.io/github/workflow/status/grantila/already/Master.svg\n[build-url]: https://github.com/grantila/already/actions?query=workflow%3AMaster\n[coverage-image]: https://coveralls.io/repos/github/grantila/already/badge.svg?branch=master\n[coverage-url]: https://coveralls.io/github/grantila/already?branch=master\n[greenkeeper-image]: https://badges.greenkeeper.io/grantila/already.svg\n[greenkeeper-url]: https://greenkeeper.io/\n[lgtm-image]: https://img.shields.io/lgtm/grade/javascript/g/grantila/already.svg?logo=lgtm&logoWidth=18\n[lgtm-url]: https://lgtm.com/projects/g/grantila/already/context:javascript\n[esm-package]: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c","users":{}}