{"_id":"45","_rev":"11-14242cc45aaca11ee066f68baf905023","name":"45","description":"A functionally-oriented test runner","dist-tags":{"latest":"1.7.0"},"versions":{"0.1.0":{"name":"45","version":"0.1.0","main":"lib/index.js","typings":"lib/index.d.ts","bin":{"45":"bin/45.js"},"description":"A functionally-oriented test runner","scripts":{"test:lint":"northbrook tslint","test:unit":"npm run build && node bin/45.js","test":"npm run test:lint && npm run test:unit","commit":"northbrook commit","build":"northbrook tsc","preversion":"npm run build","release":"northbrook release"},"repository":{"type":"git","url":"git+https://github.com/TylorS/45.git"},"keywords":["45","functional","test","runner","assert"],"author":{"name":"Tylor Steinberger","email":"tlsteinberger167@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/TylorS/45/issues"},"homepage":"https://github.com/TylorS/45#readme","devDependencies":{"@motorcycle/tslint":"^1.3.0","@northbrook/tsc":"^1.0.7","@northbrook/tslint":"^2.1.7","@types/glob-expand":"^0.0.30","@types/node":"^7.0.4","mocha":"^3.2.0","northbrook":"^4.6.0","tslint":"^4.4.2","typescript":"^2.1.5"},"dependencies":{"@typed/curry":"^1.0.1","buba":"^4.0.2","glob-expand":"^0.2.1","lodash.isequal":"^4.5.0","object-inspect":"^1.2.1","ts-node":"^2.0.0","typed-colors":"^1.0.0","typed-figures":"^1.0.0"},"gitHead":"13e581c70d100181910fcc044b19ce82182b54c4","_id":"45@0.1.0","_shasum":"43bd4a775f42f9630bd7513743a752bb8ea408f9","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.5.0","_npmUser":{"name":"tylors","email":"tlsteinberger167@gmail.com"},"dist":{"shasum":"43bd4a775f42f9630bd7513743a752bb8ea408f9","tarball":"https://registry.npmjs.org/45/-/45-0.1.0.tgz","integrity":"sha512-8t0nobNOvqrcS2d4AZ/uULKE5lDaWxmnKF0Zp0b6RrNf+RraZ9jU766UPE8YexPVKsmqYOOP3Ie5iBGAeWV72A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEz6elU//637CSyVtojGwFu/YxgN9cdr6vSjY9EKCrHsAiBvqPGp5aoA+8scbpis5gyna/syzY5vG/8+g0fJtXCSyQ=="}]},"maintainers":[{"name":"tylors","email":"tlsteinberger167@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/45-0.1.0.tgz_1486205092814_0.8441725643351674"}},"0.1.1":{"name":"45","version":"0.1.1","main":"lib/index.js","typings":"lib/index.d.ts","bin":{"45":"bin/45.js"},"description":"A functionally-oriented test runner","scripts":{"test:lint":"northbrook tslint","test:unit":"npm run build && node bin/45.js","test":"npm run test:lint && npm run test:unit","commit":"northbrook commit","build":"northbrook tsc","preversion":"npm run build","release":"northbrook release"},"repository":{"type":"git","url":"git+https://github.com/TylorS/45.git"},"keywords":["45","functional","test","runner","assert"],"author":{"name":"Tylor Steinberger","email":"tlsteinberger167@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/TylorS/45/issues"},"homepage":"https://github.com/TylorS/45#readme","devDependencies":{"@motorcycle/tslint":"^1.3.0","@northbrook/tsc":"^1.0.7","@northbrook/tslint":"^2.1.7","@types/glob-expand":"^0.0.30","@types/node":"^7.0.4","mocha":"^3.2.0","northbrook":"^4.6.0","tslint":"^4.4.2","typescript":"^2.1.5"},"dependencies":{"@typed/curry":"^1.0.1","buba":"^4.0.2","glob-expand":"^0.2.1","lodash.isequal":"^4.5.0","object-inspect":"^1.2.1","ts-node":"^2.0.0","typed-colors":"^1.0.0","typed-figures":"^1.0.0"},"gitHead":"2c5554eaf2479273759c9e58b423aefa0d1b33d4","_id":"45@0.1.1","_shasum":"646bfcda4208d0ee326aa121643b9596b3040689","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.5.0","_npmUser":{"name":"tylors","email":"tlsteinberger167@gmail.com"},"dist":{"shasum":"646bfcda4208d0ee326aa121643b9596b3040689","tarball":"https://registry.npmjs.org/45/-/45-0.1.1.tgz","integrity":"sha512-ppZcZzeDIt8CjIxKALhzjYiMm3/wZAS5O6RcplMhw3EOFS7otw4E6KNVbZTtJVZhlX5iemagUQLqGfxVg3IkNQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHDrDA0Ouhd73XPM1TkYjoPOfUpcAKcx9yPYYMmAjvRrAiBfLIrR77oAKfFlrZC+2U/j1aR1gNo39AoWxEOB9klavg=="}]},"maintainers":[{"name":"tylors","email":"tlsteinberger167@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/45-0.1.1.tgz_1486228360062_0.8856724125798792"}},"1.0.0":{"name":"45","version":"1.0.0","main":"lib/index.js","typings":"lib/index.d.ts","bin":{"45":"bin/45.js"},"description":"A functionally-oriented test runner","scripts":{"test:lint":"northbrook tslint","test:unit":"npm run build && node bin/45.js","test":"npm run test:lint --silent && npm run test:unit --silent","commit":"northbrook commit","build":"northbrook tsc","preversion":"npm run build","release":"northbrook release"},"repository":{"type":"git","url":"git+https://github.com/TylorS/45.git"},"keywords":["45","functional","test","runner","assert"],"author":{"name":"Tylor Steinberger","email":"tlsteinberger167@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/TylorS/45/issues"},"homepage":"https://github.com/TylorS/45#readme","devDependencies":{"@motorcycle/tslint":"^1.3.0","@northbrook/tsc":"^1.0.7","@northbrook/tslint":"^2.1.7","@types/glob-expand":"^0.0.30","@types/node":"^7.0.4","mocha":"^3.2.0","northbrook":"^4.6.0","tslint":"^4.4.2","typescript":"^2.1.5"},"dependencies":{"4.5":"^0.5.0","typed-colors":"^1.0.0","typed-figures":"^1.0.0"},"gitHead":"1334d0668d506c37db269e027e882c733d4ef970","_id":"45@1.0.0","_shasum":"278899d11541f8f019abbfd65869000d04c1321c","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.5.0","_npmUser":{"name":"tylors","email":"tlsteinberger167@gmail.com"},"dist":{"shasum":"278899d11541f8f019abbfd65869000d04c1321c","tarball":"https://registry.npmjs.org/45/-/45-1.0.0.tgz","integrity":"sha512-kqMUZ6AKD2bzCriu4W/bTaELQ1FkG84qMjq4Xe5aymiHO88/6OTSOMe3c3X/X37Zl2FRxi0E35M/9DhKp9df9w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIADvTry3HfcpcENIIsAfZLdSUmo7auPcLeWvxvMxQnUOAiAVKwER6kOKsKhTwWbWm2JmRGEaaT4hJO2xuCuwyTHmoA=="}]},"maintainers":[{"name":"tylors","email":"tlsteinberger167@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/45-1.0.0.tgz_1487345479804_0.5579021063167602"}},"1.1.0":{"name":"45","version":"1.1.0","main":"lib/index.js","jsnext:main":"lib.es2015/index.js","module":"lib.es2015/index.js","typings":"lib/index.d.ts","bin":{"45":"bin/45.js"},"description":"A functionally-oriented test runner","scripts":{"build":"yarn build:commonjs && yarn build:es2015","build:commonjs":"tsc -P .config/tsconfig.commonjs.json","build:es2015":"tsc -P .config/tsconfig.es2015.json","changelog":"conventional-changelog -i CHANGELOG.md -s -r 0 -p angular","clean":"rimraf lib lib.es2015","commit":"git-cz","commitmsg":"validate-commit-msg","postchangelog":"git add CHANGELOG.md && git commit -m 'docs(CHANGELOG): amend changelog'","postversion":"npm run changelog && git push origin master --tags && npm publish","preversion":"yarn test && yarn build && yarn login","release:major":"npm version major -m 'chore(package): v%s'","release:minor":"npm version minor -m 'chore(package): v%s'","test":"yarn test:lint && yarn test:unit","test:lint":"tslint src/**/*.ts","test:unit":"npm run build && node bin/45.js"},"repository":{"type":"git","url":"git+https://github.com/TylorS/45.git"},"keywords":["45","functional","test","runner","assert"],"author":{"name":"Tylor Steinberger","email":"tlsteinberger167@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/TylorS/45/issues"},"homepage":"https://github.com/TylorS/45#readme","devDependencies":{"@motorcycle/tslint":"^1.3.0","@types/glob-expand":"^0.0.30","@types/node":"^7.0.5","commitizen":"^2.9.6","conventional-changelog-cli":"^1.2.0","cz-conventional-changelog":"^2.0.0","husky":"^0.13.2","tslint":"^4.5.1","typescript":"^2.2.1","validate-commit-msg":"^2.11.1"},"dependencies":{"4.5":"^0.5.0","buba":"^4.0.2","glob-expand":"^0.2.1","ts-node":"^2.1.0","typed-colors":"^1.0.0","typed-figures":"^1.0.0"},"gitHead":"3f247b259c7b2e1f13031042fc264b2754fcb71c","_id":"45@1.1.0","_shasum":"a535a82799195b505271b0258fc28d39f3bad45b","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.5.0","_npmUser":{"name":"tylors","email":"tlsteinberger167@gmail.com"},"dist":{"shasum":"a535a82799195b505271b0258fc28d39f3bad45b","tarball":"https://registry.npmjs.org/45/-/45-1.1.0.tgz","integrity":"sha512-VIGvuEppNamiiEKa8rWatzppdWmOsdppcHrg4aQ895fc6z3j/YnNtUebE5Z1pLnPpjKdG+63L4cLv8paquIArA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID4zJrq3ahiIWYbnyjHVKfdXHGYSgiQ9hXfAWpG0jJLOAiAISKcL2BCP9HvtQgVKxiBqG0pjBpPGfAGcaSy7syrTIg=="}]},"maintainers":[{"name":"tylors","email":"tlsteinberger167@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/45-1.1.0.tgz_1488492603700_0.6141668460331857"}},"1.2.0":{"name":"45","version":"1.2.0","main":"lib/index.js","jsnext:main":"lib.es2015/index.js","module":"lib.es2015/index.js","typings":"lib/index.d.ts","bin":{"45":"bin/45.js"},"description":"A functionally-oriented test runner","scripts":{"build":"yarn build:commonjs && yarn build:es2015","build:commonjs":"tsc -P .config/tsconfig.commonjs.json","build:es2015":"tsc -P .config/tsconfig.es2015.json","changelog":"conventional-changelog -i CHANGELOG.md -s -r 0 -p angular","clean":"rimraf lib lib.es2015","commit":"git-cz","commitmsg":"validate-commit-msg","postchangelog":"git add CHANGELOG.md && git commit -m 'docs(CHANGELOG): amend changelog'","postversion":"npm run changelog && git push origin master --tags && npm publish","preversion":"yarn test && yarn build && yarn login","release:major":"npm version major -m 'chore(package): v%s'","release:minor":"npm version minor -m 'chore(package): v%s'","test":"yarn test:lint && yarn test:unit","test:lint":"tslint src/**/*.ts","test:unit":"npm run build && node bin/45.js"},"repository":{"type":"git","url":"git+https://github.com/TylorS/45.git"},"keywords":["45","functional","test","runner","assert"],"author":{"name":"Tylor Steinberger","email":"tlsteinberger167@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/TylorS/45/issues"},"homepage":"https://github.com/TylorS/45#readme","devDependencies":{"@motorcycle/tslint":"^1.3.0","@types/glob-expand":"^0.0.30","@types/node":"^7.0.5","commitizen":"^2.9.6","conventional-changelog-cli":"^1.2.0","cz-conventional-changelog":"^2.0.0","husky":"^0.13.2","tslint":"^4.5.1","typescript":"^2.2.1","validate-commit-msg":"^2.11.1"},"dependencies":{"4.5":"^0.5.0","buba":"^4.0.2","glob-expand":"^0.2.1","ts-node":"^2.1.0","typed-colors":"^1.0.0","typed-figures":"^1.0.0"},"gitHead":"fdfbde6cd1dab26fc3d55479446bd8d26e8b28e4","_id":"45@1.2.0","_shasum":"8ef7b7a206581cffe515485b2a472217a29fab04","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.5.0","_npmUser":{"name":"tylors","email":"tlsteinberger167@gmail.com"},"dist":{"shasum":"8ef7b7a206581cffe515485b2a472217a29fab04","tarball":"https://registry.npmjs.org/45/-/45-1.2.0.tgz","integrity":"sha512-8es6Ko4q/H2Fy5HQKWMQDPu1kw6CAkyyRVqqGMDlAmGTU3iZCE5E/ZSgWx0tZ6u0U/FULqZYIdYb7ATWUlKnAA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHdAzT3ck14/w1W6d4OA3O0lAtH8y4W/FTsjM1FsnS0SAiBT4TuKEi+lqacmwYEdEhHiiecXeeMlSjFFNwbotPg6Nw=="}]},"maintainers":[{"name":"tylors","email":"tlsteinberger167@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/45-1.2.0.tgz_1488496388078_0.7682264244649559"}},"1.3.0":{"name":"45","version":"1.3.0","main":"lib/index.js","jsnext:main":"lib.es2015/index.js","module":"lib.es2015/index.js","typings":"lib/index.d.ts","bin":{"45":"bin/45.js"},"description":"A functionally-oriented test runner","scripts":{"build":"yarn build:commonjs && yarn build:es2015","build:commonjs":"tsc -P .config/tsconfig.commonjs.json","build:es2015":"tsc -P .config/tsconfig.es2015.json","changelog":"conventional-changelog -i CHANGELOG.md -s -r 0 -p angular","clean":"rimraf lib lib.es2015","commit":"git-cz","commitmsg":"validate-commit-msg","postchangelog":"git add CHANGELOG.md && git commit -m 'docs(CHANGELOG): amend changelog'","postversion":"npm run changelog && git push origin master --tags && npm publish","preversion":"yarn test && yarn build && yarn login","release:major":"npm version major -m 'chore(package): v%s'","release:minor":"npm version minor -m 'chore(package): v%s'","test":"yarn test:lint && yarn test:unit","test:lint":"tslint src/**/*.ts","test:unit":"npm run build && node bin/45.js"},"repository":{"type":"git","url":"git+https://github.com/TylorS/45.git"},"keywords":["45","functional","test","runner","assert"],"author":{"name":"Tylor Steinberger","email":"tlsteinberger167@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/TylorS/45/issues"},"homepage":"https://github.com/TylorS/45#readme","devDependencies":{"@motorcycle/tslint":"^1.3.0","@types/glob-expand":"^0.0.30","@types/node":"^7.0.5","commitizen":"^2.9.6","conventional-changelog-cli":"^1.2.0","cz-conventional-changelog":"^2.0.0","husky":"^0.13.2","most":"^1.2.2","tslint":"^4.5.1","typescript":"^2.2.1","validate-commit-msg":"^2.11.1"},"dependencies":{"4.5":"^0.5.0","buba":"^4.0.2","glob-expand":"^0.2.1","symbol-observable":"^1.0.4","ts-node":"^2.1.0","typed-colors":"^1.0.0","typed-figures":"^1.0.0"},"gitHead":"c840271e4189a64560705640d4a880ee97ea3176","_id":"45@1.3.0","_shasum":"51f53cd121a81cf2a4a892dcc0ebd6cd8be0c8f6","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.5.0","_npmUser":{"name":"tylors","email":"tlsteinberger167@gmail.com"},"dist":{"shasum":"51f53cd121a81cf2a4a892dcc0ebd6cd8be0c8f6","tarball":"https://registry.npmjs.org/45/-/45-1.3.0.tgz","integrity":"sha512-FFYOF9akNnRLJnqDdgaADI3KvBIDgy/gcA6CYflgeH3IsSekP0EcsgxP2hxjiFU0lVzGapfyz5QoWgyYKIMb7w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEnqSaTmeB2oW3rLleRsf24a8iVpCDdHq2lkIpItaIfAAiAxEb9oqRdaeZtQM+7+mUkDRJrNvWVNRAIEuIUlBEt+7w=="}]},"maintainers":[{"name":"tylors","email":"tlsteinberger167@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/45-1.3.0.tgz_1488500350026_0.07977807009592652"}},"1.4.0":{"name":"45","version":"1.4.0","main":"lib/index.js","jsnext:main":"lib.es2015/index.js","module":"lib.es2015/index.js","typings":"lib/index.d.ts","bin":{"45":"bin/45.js"},"description":"A functionally-oriented test runner","scripts":{"build":"yarn build:commonjs && yarn build:es2015","build:commonjs":"tsc -P .config/tsconfig.commonjs.json","build:es2015":"tsc -P .config/tsconfig.es2015.json","changelog":"conventional-changelog -i CHANGELOG.md -s -r 0 -p angular","clean":"rimraf lib lib.es2015","commit":"git-cz","commitmsg":"validate-commit-msg","postchangelog":"git add CHANGELOG.md && git commit -m 'docs(CHANGELOG): amend changelog'","postversion":"npm run changelog && git push origin master --tags && npm publish","preversion":"yarn test && yarn build && yarn login","release:major":"npm version major -m 'chore(package): v%s'","release:minor":"npm version minor -m 'chore(package): v%s'","test":"yarn test:lint && yarn test:unit","test:lint":"tslint src/**/*.ts","test:unit":"npm run build && node bin/45.js"},"repository":{"type":"git","url":"git+https://github.com/TylorS/45.git"},"keywords":["45","functional","test","runner","assert"],"author":{"name":"Tylor Steinberger","email":"tlsteinberger167@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/TylorS/45/issues"},"homepage":"https://github.com/TylorS/45#readme","devDependencies":{"@motorcycle/tslint":"^1.3.0","@types/glob-expand":"^0.0.30","@types/node":"^7.0.5","commitizen":"^2.9.6","conventional-changelog-cli":"^1.2.0","cz-conventional-changelog":"^2.0.0","husky":"^0.13.2","most":"^1.2.2","tslint":"^4.5.1","typescript":"^2.2.1","validate-commit-msg":"^2.11.1"},"dependencies":{"4.5":"^0.5.0","buba":"^4.0.2","glob-expand":"^0.2.1","symbol-observable":"^1.0.4","ts-node":"^2.1.0","typed-colors":"^1.0.0","typed-figures":"^1.0.0"},"gitHead":"7267334f3f42c54804e66c04af0320cd6ab3a831","_id":"45@1.4.0","_shasum":"e3f69e578b018149bd053b92cd929cc72f195467","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.5.0","_npmUser":{"name":"tylors","email":"tlsteinberger167@gmail.com"},"dist":{"shasum":"e3f69e578b018149bd053b92cd929cc72f195467","tarball":"https://registry.npmjs.org/45/-/45-1.4.0.tgz","integrity":"sha512-UvOmSQ/LWB7aHGcafCQSE/hOW+bFZNU/i0JRA3W3jlKaP6kml0ogA9nrB8zN5K+SAKE4RrBJEnls9yCm01WR8w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5klsCzUZqxTDDbSvLZivJD18FeAWKzlsPiqwYIT/dMwIhALzD13SbV1aF1sT0UCi5fIm+kJh4FBKFIh3BHQ92jQO+"}]},"maintainers":[{"name":"tylors","email":"tlsteinberger167@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/45-1.4.0.tgz_1488500481622_0.34392168023623526"}},"1.5.0":{"name":"45","version":"1.5.0","main":"lib/index.js","jsnext:main":"lib.es2015/index.js","module":"lib.es2015/index.js","typings":"lib/index.d.ts","bin":{"45":"bin/45.js"},"description":"A functionally-oriented test runner","scripts":{"build":"yarn build:commonjs && yarn build:es2015","build:commonjs":"tsc -P .config/tsconfig.commonjs.json","build:es2015":"tsc -P .config/tsconfig.es2015.json","changelog":"conventional-changelog -i CHANGELOG.md -s -r 0 -p angular","clean":"rimraf lib lib.es2015","commit":"git-cz","commitmsg":"validate-commit-msg","postchangelog":"git add CHANGELOG.md && git commit -m 'docs(CHANGELOG): amend changelog'","postversion":"npm run changelog && git push origin master --tags && npm publish","preversion":"yarn test && yarn build && yarn login","release:major":"npm version major -m 'chore(package): v%s'","release:minor":"npm version minor -m 'chore(package): v%s'","test":"yarn test:lint && yarn test:unit","test:lint":"tslint src/**/*.ts","test:unit":"npm run build && node bin/45.js"},"repository":{"type":"git","url":"git+https://github.com/TylorS/45.git"},"keywords":["45","functional","test","runner","assert"],"author":{"name":"Tylor Steinberger","email":"tlsteinberger167@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/TylorS/45/issues"},"homepage":"https://github.com/TylorS/45#readme","devDependencies":{"@motorcycle/tslint":"^1.3.0","@types/glob-expand":"^0.0.30","@types/node":"^7.0.5","commitizen":"^2.9.6","conventional-changelog-cli":"^1.2.0","cz-conventional-changelog":"^2.0.0","husky":"^0.13.2","most":"^1.2.2","tslint":"^4.5.1","typescript":"^2.2.1","validate-commit-msg":"^2.11.1"},"dependencies":{"4.5":"^0.5.0","buba":"^4.0.2","glob-expand":"^0.2.1","symbol-observable":"^1.0.4","ts-node":"^2.1.0","typed-colors":"^1.0.0","typed-figures":"^1.0.0"},"gitHead":"1b4aab6e7adfefa942de65a8916b1232e346669b","_id":"45@1.5.0","_shasum":"2dfbe35baf41ae1fb7270ad6fc2207181415344b","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.5.0","_npmUser":{"name":"tylors","email":"tlsteinberger167@gmail.com"},"dist":{"shasum":"2dfbe35baf41ae1fb7270ad6fc2207181415344b","tarball":"https://registry.npmjs.org/45/-/45-1.5.0.tgz","integrity":"sha512-4g9PdTuwBfWgt/SlNxTDBAJP6jmjADX7Jzb12XSguMO+UiHbVL8gSlFE0PIsEZgMe0ELsZQ22Bbwj10DLLc1TA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCw0kMyJeucBlHqmX4+2ePT0sLtNFEpt9XbnoY4KaYMNwIhAOakni6PGeNUsG2cJD99wJT9Rp4caQkzgkHLdsiJBiQM"}]},"maintainers":[{"name":"tylors","email":"tlsteinberger167@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/45-1.5.0.tgz_1488503678428_0.34022971149533987"}},"1.6.0":{"name":"45","version":"1.6.0","main":"lib/index.js","jsnext:main":"lib.es2015/index.js","module":"lib.es2015/index.js","typings":"lib/index.d.ts","bin":{"45":"bin/45.js"},"description":"A functionally-oriented test runner","scripts":{"build":"yarn build:commonjs && yarn build:es2015","build:commonjs":"tsc -P .config/tsconfig.commonjs.json","build:es2015":"tsc -P .config/tsconfig.es2015.json","changelog":"conventional-changelog -i CHANGELOG.md -s -r 0 -p angular","clean":"rimraf lib lib.es2015","commit":"git-cz","commitmsg":"validate-commit-msg","postchangelog":"git add CHANGELOG.md && git commit -m 'docs(CHANGELOG): amend changelog'","postversion":"npm run changelog && git push origin master --tags && npm publish","preversion":"yarn test && yarn build && yarn login","release:major":"npm version major -m 'chore(package): v%s'","release:minor":"npm version minor -m 'chore(package): v%s'","test":"yarn test:lint && yarn test:unit","test:lint":"tslint src/**/*.ts","test:unit":"npm run build && node bin/45.js"},"repository":{"type":"git","url":"git+https://github.com/TylorS/45.git"},"keywords":["45","functional","test","runner","assert"],"author":{"name":"Tylor Steinberger","email":"tlsteinberger167@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/TylorS/45/issues"},"homepage":"https://github.com/TylorS/45#readme","devDependencies":{"@motorcycle/tslint":"^1.3.0","@types/glob-expand":"^0.0.30","@types/node":"^7.0.5","commitizen":"^2.9.6","conventional-changelog-cli":"^1.2.0","cz-conventional-changelog":"^2.0.0","husky":"^0.13.2","most":"^1.2.2","tslint":"^4.5.1","typescript":"^2.2.1","validate-commit-msg":"^2.11.1"},"dependencies":{"4.5":"^0.5.0","buba":"^4.0.2","glob-expand":"^0.2.1","symbol-observable":"^1.0.4","ts-node":"^2.1.0","typed-colors":"^1.0.0","typed-figures":"^1.0.0"},"gitHead":"44c8e8a82e2e220e8ffd975eca4fb10821f50d11","_id":"45@1.6.0","_shasum":"eda025606e5619c9a2cbbbea3295f0da02f4e9e0","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.5.0","_npmUser":{"name":"tylors","email":"tlsteinberger167@gmail.com"},"dist":{"shasum":"eda025606e5619c9a2cbbbea3295f0da02f4e9e0","tarball":"https://registry.npmjs.org/45/-/45-1.6.0.tgz","integrity":"sha512-uh2J8ZoAHFo38OcRXzLGSss0nQf+uegY22s2jDmEF4vFmnWORh/v4yvatwnOgXVY++VzEJRY1ItMnlp59ZJ4Zg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC62BbBYHCNiXJ/eTCZI7MnsrFCsmkuGkaxs06FUCDnJAIhANzkGwYzeluDLxY3k6s+vQk2wjNkI0xoq0rhPAiB+5Rx"}]},"maintainers":[{"name":"tylors","email":"tlsteinberger167@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/45-1.6.0.tgz_1488503778667_0.3010291517712176"}},"1.7.0":{"name":"45","version":"1.7.0","main":"lib/index.js","jsnext:main":"lib.es2015/index.js","module":"lib.es2015/index.js","typings":"lib/index.d.ts","bin":{"45":"bin/45.js"},"description":"A functionally-oriented test runner","scripts":{"build":"yarn build:commonjs && yarn build:es2015","build:commonjs":"tsc -P .config/tsconfig.commonjs.json","build:es2015":"tsc -P .config/tsconfig.es2015.json","changelog":"conventional-changelog -i CHANGELOG.md -s -r 0 -p angular","clean":"rimraf lib lib.es2015","commit":"git-cz","commitmsg":"validate-commit-msg","postchangelog":"git add CHANGELOG.md && git commit -m 'docs(CHANGELOG): amend changelog'","postversion":"npm run changelog && git push origin master --tags && npm publish","preversion":"yarn test && yarn build && yarn login","release:major":"npm version major -m 'chore(package): v%s'","release:minor":"npm version minor -m 'chore(package): v%s'","test":"yarn test:lint && yarn test:unit","test:lint":"tslint 'src/**/*.ts'","test:unit":"npm run build && node bin/45.js"},"repository":{"type":"git","url":"git+https://github.com/TylorS/45.git"},"keywords":["45","functional","test","runner","assert"],"author":{"name":"Tylor Steinberger","email":"tlsteinberger167@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/TylorS/45/issues"},"homepage":"https://github.com/TylorS/45#readme","devDependencies":{"@motorcycle/tslint":"^1.3.0","@types/glob-expand":"^0.0.30","@types/node":"^7.0.5","commitizen":"^2.9.6","conventional-changelog-cli":"^1.2.0","cz-conventional-changelog":"^2.0.0","husky":"^0.13.2","most":"^1.2.2","tslint":"^4.5.1","typescript":"^2.2.1","validate-commit-msg":"^2.11.1"},"dependencies":{"4.5":"^0.5.0","@typed/sequence":"^1.1.0","buba":"^4.0.2","glob-expand":"^0.2.1","symbol-observable":"^1.0.4","ts-node":"^2.1.0","typed-colors":"^1.0.0","typed-figures":"^1.0.0"},"gitHead":"509534b474e03641a302d32750301b7ce6e7910a","_id":"45@1.7.0","_shasum":"54e6ab03997f66cf2aa5bfb8ef5c7da70476bcc9","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.5.0","_npmUser":{"name":"tylors","email":"tlsteinberger167@gmail.com"},"dist":{"shasum":"54e6ab03997f66cf2aa5bfb8ef5c7da70476bcc9","tarball":"https://registry.npmjs.org/45/-/45-1.7.0.tgz","integrity":"sha512-iRv/97t8GrNUl4ROZkW77Jx2Q0CdoLwvnx4xRA3IP52TRAIwCBTizX/LilBkLLP9nDersqTfab1d3VS9fY8UzA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDAdSTd3UvuRFdKAOrAGjpcqK4F3K1OTW5VExkssxJrDAiALjCaXywICPp4N7ra7LhnwUiveAtPIJ/fzi2Hmqw/ETA=="}]},"maintainers":[{"name":"tylors","email":"tlsteinberger167@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/45-1.7.0.tgz_1488546096246_0.9563639888074249"}}},"readme":"# 45\n\n> A functionally-oriented test runner\n\n`45` is the fast and functional test runner that is easy to use and gets out of\nyour way.\n\n## Let me have it!\n```sh\nnpm install --save-dev 45\n```\n\n## Features\n\n- Does not rely on globals\n- Test failure if no assertions are returned\n- Lazy, monadic, and curried test assertions via [`4.5`](https://github.com/TylorS/4.5)\n- Promise, Observable, and Async/Await support\n- Runs all tests in parallel\n- ES2015 and TypeScript support out-of-box\n\n## Basic Usage\n\nCreate a test file\n\n```js\n// test/foo.js\n\n// ES2015\nimport { describe, given, it, equals } from '45';\n\nexport const test = describe('Array', [\n  given('a few numbers', [\n    it('has length greater than 0', () => {\n      return equals([1, 2, 3].length > 0, true);\n    })\n  ])\n])\n\nexport const otherTest = it('equals 4', () => {\n  return equals(4, 4);\n})\n\n// commonjs\nconst { describe, given, it, equals } = require('45');\n\nexports.test = describe('Array', [\n  given('a few numbers', [\n    it('has length greater than 0', () => {\n      return equals([1, 2, 3].length > 0, true);\n    })\n  ])\n])\n\nexports.otherTest = it('equals 4', () => {\n  return equals(4, 4);\n})\n```\n\nIn your terminal run\n\n```sh\n./node_modules/.bin/45 test/foo.js\n# Supports globs\n./node_modules/.bin/45 test/*.js\n\n# or without parameters\n# by default it will search for all .test and .spec files in src/ folder\n# and for all files in test/ and tests/ folders\n./node_modules/.bin/45\n```\n\nAnd you should see:\n\n![basic-test](./.assets/basic_test.png)\n\n## Tests\n\nWhen running 45 from the command line, it will look for all test files\nit can, collecting all exports, of no particular export name, that adhere\nto the `Test` interface described in the [types](#types) section. This means\nthat 45 can be extended to handle new test types not offered here via 3rd\nparty libraries.\n\nAll 45 `Test`s must return objects adhering to the `Assertion` interface\ndescribed in the [Types](#types) section. Many assertions are re-exported by this\nlibrary from [4.5](https://github.com/TylorS/4.5). Though a number are provided\nby default -- 3rd party libraries implementing the `Assertion` interface can be used\n100% freely.\n\n#### `describe(thing: string, tests: Array<Test>): Test`\n\nAllows collecting many `Test`s together as a larger whole. All tests are\nrun in parallel.\n\n```typescript\nimport { describe } from '45';\n\nexport const test = describe('My Thing', [ ... ])\n```\n\n#### `given(parameters: string, tests: Array<Test>): Test`\n\nJust like `describe` in that it allows collecting many `Test`s together as a\nlarger whole, but allows for more descriptive test suites. All tests are run in\nparallel.\n\n```typescript\nimport { describe, given } from '45';\n\nexport const test = describe('My thing', [\n  given(`a b and c`, [\n    it('does ...', () => { ... })\n  ])\n])\n```\n\n#### `it(does: string, testFn: TestFn): Test`\n\nPrimitive test type which allows providing a callback to\nactually perform assertions. By default, will timeout at 2000 milliseconds.\n\n```typescript\nimport { it, pass } from '45';\n\nexport const test = it('does things', () => {\n  return pass(1);\n})\n```\n\n#### `timeout(ms: number, test: Test): Test`\n\nAllows adjusting the amount of time a test can take to complete.\n\n```typescript\nimport { it, timeout, equals } from '45';\n\nexport const failing = it('fails', () => {\n  return new Promise((resolve) => {\n    setTimeout(resolve, 3000, 1)\n  })\n    .then(equals(1));\n})\n\nexport const passing = timeout(3500, it('passes', () => {\n  return new Promise((resolve) => {\n    setTimeout(resolve, 3000, 1)\n  })\n    .then(equals(1));\n}));\n```\n\n#### `beforeEach(hook: () => any, tests: Array<Test>): Test`\n\nAllow running a hook before a series of tests. This will run the containing array\nof tests one after another.\n\n```typescript\nimport { beforeEach, describe, given, it } from './';\n\nimport { equals } from '4.5';\n\nlet x = 0;\n\nexport const test = describe('beforeEach', [\n  given(`a function and an array of tests`, [\n    beforeEach(() => { x++; }, [\n      it('runs beforeEach test', () => {\n        return equals(1, x);\n      }),\n\n      it('runs beforeEach test every time', () => {\n        return equals(2, x);\n      }),\n    ]),\n  ]),\n]);\n```\n\n## Assertions (re-exported from 4.5)\n\n- All functions of arity 2 or more are curried.\n- All types are defined below in the [types](#types) section.\n\n#### `equals<A>(expected: A, actual: A): Assertion<A>`\n\nAsserts two values `expected` and `actual` to have value equality.\n\n#### `is<A>(expected: A, actual: A): Assertion<A>`\n\nAsserts two values `expected` and `actual` to have referential equality.\n\n#### `pass<A>(value: A): Assertion<A>`\n\nCreates an assertion which always passes with a given value.\n\n#### `fail(message: any): Assertion<void>`\n\nCreates an assertion which will always fail with a given message.\n\n#### `throws(fn: () => any): Assertion<Error>`\n\nCreates an assertion that tests that a given function throws and error.\n\n## Assertion combinators (re-exported from 4.5)\n\n#### `map<A, B>(fn: (a: A) => B, assertion: Assertion<A>): Assertion<B>`\n\nGiven a function it maps one assertion value to another.\n\n```typescript\nimport { it, map, equals } from '45';\n\nexport const test = it('maps a value from type A to type B', () => {\n  const add1 = (x: number) => x + 1;\n\n  return map(add1 /* called with 1 */, equals(1, 1)) // Assertion<2>;\n});\n```\n\n#### `ap<A, B>(fn: Assertion<(a: A) => B>, value: Assertion<A>): Assertion<B>`\n\nGiven an assertion containing a function from `a` to `b`, and an assertion\nof `a` returns an assertion of type `b`.\n\n```typescript\nimport { it, ap, pass } from '45';\n\nexport const test = it('applys fn to a value', () => {\n  const add1 = (x: number) => x + 1;\n\n  const fn: Assertion<(x: number) => number> = pass(add1);\n  const value: Assertion<number> = pass(1);\n\n  return ap(fn, value); // returns an assertion containing the value 2\n});\n```\n\n#### `chain<A, B>(fn: (a: A) => Assertion<B>, assertion: Assertion<A>): Assertion<B>`\n\nGiven a function from one value a to Assertion b and an assertion of type a, returns an assertion of type b\nUseful for making many assertions using the values from the previous assertion.\n\n```typescript\nimport { it, chain, equals, map }\n\nexport const test = it('chains many assertions', () => {\n  const add1 = (x: number) => x + 1;\n\n  const oneIsOne = equals(1, 1);\n  const isTwo = equals(2); // don't forget, all assertions are curried!\n  const isThree = equals(3);\n\n  return chain(isThree, map(add1, chain(isTwo, map(add1, oneIsOne))));\n})\n```\n\n#### `bimap`\n\nType signature is to long for the header :smile:\n\n```typescript\nbimap<A, B>(\n  failure: (message: string) => string,\n  success: (a: A) => B,\n  assertion: Assertion<A>): Assertion<B>;\n```\n\nSimilar to `map` but also allows adjusting error messages.\n\nUseful for creating your own error messages.\n\n```typescript\nimport { bimap, equals, fail, pass } from '45';\n\nexport const test = it('allows adjusting error message', () => {\n  return bimap(() => 'Sadly 1 is not correct', fail /* should not pass*/, fail(1));\n});\n```\n\n#### `concat(one: Assertion<A>, two: Assertion<A>): Assertion<A>`\n\nChain together 2 assertions.\n\n```typescript\nimport { concat, pass, it } from '45';\n\nexport const test = it('concatenates', () => {\n  return concat(pass(1), pass(2)); // passes if and only if both assertions pass.\n});\n```\n\n## Types\n\n```typescript\n// 45 interfaces\nexport interface Test {\n  name: string;\n  timeout: number;\n  run(): Promise<Assertion<any>>;\n  showStatus: boolean;\n}\n\nexport type TestFn =\n  (() => Assertion<any>) |\n  (() => Promise<Assertion<any>>) |\n  (() => Observable<Assertion<any>>);\n\nexport interface TestResult {\n  failures: number;\n  message: string;\n}\n\nexport type Observable<A> =\n  {\n    subscribe(observer: Observer<A>): Subscription;\n  }\n\nexport type Observer<A> =\n  {\n    next(value: A): any;\n    error(err: any): any;\n    complete(): any;\n  }\n\nexport type Subscription =\n  {\n    unsubscribe(): any;\n  }\n\n// 4.5 re-exported interfaces\n\nexport interface Assertion<T> {\n  verify(verification: Verification<T>): void;\n}\n\nexport interface Verification<T> {\n  success(actual: T): any;\n  failure(message: string): any;\n}\n```","maintainers":[{"name":"tylors","email":"tlsteinberger167@gmail.com"}],"time":{"modified":"2022-06-12T14:07:43.970Z","created":"2017-02-04T10:44:53.448Z","0.1.0":"2017-02-04T10:44:53.448Z","0.1.1":"2017-02-04T17:12:41.962Z","1.0.0":"2017-02-17T15:31:20.376Z","1.1.0":"2017-03-02T22:10:05.731Z","1.2.0":"2017-03-02T23:13:08.717Z","1.3.0":"2017-03-03T00:19:10.674Z","1.4.0":"2017-03-03T00:21:22.238Z","1.5.0":"2017-03-03T01:14:40.610Z","1.6.0":"2017-03-03T01:16:19.314Z","1.7.0":"2017-03-03T13:01:36.956Z"},"homepage":"https://github.com/TylorS/45#readme","keywords":["45","functional","test","runner","assert"],"repository":{"type":"git","url":"git+https://github.com/TylorS/45.git"},"author":{"name":"Tylor Steinberger","email":"tlsteinberger167@gmail.com"},"bugs":{"url":"https://github.com/TylorS/45/issues"},"license":"MIT","readmeFilename":"README.md"}