{"bin":{"uvu":"bin.js"},"bugs":{"url":"https://github.com/lukeed/uvu/issues"},"dist":{"shasum":"45d9b70c2d41a7305fdf709b91bfdb4a79baee13","tarball":"https://registry.npmjs.org/uvu/-/uvu-0.4.0-next.3.tgz","fileCount":15,"integrity":"sha512-8QNWF86OZXXvTKDkMu0kmnfVxDOh90IkawkwAqJb+Js80LYwhwM+pz7PXJUN5CUmvZ7PkiJzd0g3Q37fnfwZAA==","signatures":[{"sig":"MEUCICtLBprO6EpEawCGHCy2IxzImRDOVMxIuQfxaAFH1IHyAiEAusdRcVRMsduo9oUr/pgOAdbLyLuzS1dTK7U2yfbb1+w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":46295,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMsg4CRA9TVsSAnZWagAA5W4P/jQltbOzNlhqvIwIBz92\nR5NIwOz1kqB9b9AvjAslZHm1ylbJS8h27uM64t3qwprfwOKlJVAQrZF/ejQU\nYNnzFhZqHlw5Z1CuYZR64D5W04KaUcnxv7j+sCuQhWgoLmtn99HSc7MRXtqe\nPvAq4USuHDShfk+020fOmTpVUNiJLc//9B3Bztkx+sVedtXS2MgWLwaw8o6i\nn2JL10US/zyiLVdfTBm/UcATqvg0kiXSO6VzG+6obpUyvHxksoz9R0p5pb91\nONrTTXb1l8R+nYYYvCxlA/+9yYCgFdf2AE/l6EpDPGpVJoZEeVasN+bCgQzD\nVG75k75yx9K+Ix/hAcUscqQ1E7hYswk79lfjcsA95p4qQPVrDYSPo3pG25GK\nx5HsYOOn9dMZrelwF0v+vCUGgVVV6E2DXaUpfQyqvc88GjTNujeBcdqmoJ0Y\nouCkbkJhuYtnbrBbkINJX0UOum3goaR/HqzWKHA49Px5fPv8v/i6VNIfB/Ce\nThwvCoEfuhDXn+1DaJhTsTf+o2yd7uXNJVWNyp0Uuj5nEjoLC2XnTWQloMk/\noUzwDFN+HfbVCxlcYUox3N+x7nAIB7oNQros72JTUW+nODys/tkKeagh6pcW\n8S+oT7HZWTzBj7M2Ifc3qvHyafuvhO8CPXdEvshV+ydrx8J7ze94qitjNBRQ\nZ5qs\r\n=2Vol\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","name":"uvu","modes":{"diff":"src/diff.js","parse":"src/parse.js","assert":"src/assert.js","default":"src/index.js"},"types":"index.d.ts","module":"dist/index.mjs","readme":"<div align=\"center\">\n  <img src=\"shots/uvu.jpg\" alt=\"uvu\" height=\"120\" />\n</div>\n\n<div align=\"center\">\n  <a href=\"https://npmjs.org/package/uvu\">\n    <img src=\"https://badgen.now.sh/npm/v/uvu\" alt=\"version\" />\n  </a>\n  <a href=\"https://github.com/lukeed/uvu/actions\">\n    <img src=\"https://github.com/lukeed/uvu/workflows/CI/badge.svg\" alt=\"CI\" />\n  </a>\n  <a href=\"https://npmjs.org/package/uvu\">\n    <img src=\"https://badgen.now.sh/npm/dm/uvu\" alt=\"downloads\" />\n  </a>\n  <a href=\"https://packagephobia.now.sh/result?p=uvu\">\n    <img src=\"https://packagephobia.now.sh/badge?p=uvu\" alt=\"install size\" />\n  </a>\n</div>\n\n<div align=\"center\">\n  <b>uvu</b> is an extremely fast and lightweight test runner for Node.js and the browser<br>\n  <b>U</b>ltimate <b>V</b>elocity, <b>U</b>nleashed<br><br>\n  <img width=\"380\" alt=\"example with suites\" src=\"shots/suites.gif\"/>\n</div>\n\n\n## Features\n\n* Super [lightweight](https://npm.anvaka.com/#!/view/2d/uvu)\n* Extremely [performant](#benchmarks)\n* Individually executable test files\n* Supports `async`/`await` tests\n* Supports native ES Modules\n* Browser-Compatible\n* Familiar API\n\n\n## Install\n\n```\n$ npm install --save-dev uvu\n```\n\n\n## Usage\n\n> Check out [`/examples`](/examples) for a list of working demos!\n\n```js\n// tests/demo.js\nimport { test } from 'uvu';\nimport * as assert from 'uvu/assert';\n\ntest('Math.sqrt()', () => {\n  assert.is(Math.sqrt(4), 2);\n  assert.is(Math.sqrt(144), 12);\n  assert.is(Math.sqrt(2), Math.SQRT2);\n});\n\ntest('JSON', () => {\n  const input = {\n    foo: 'hello',\n    bar: 'world'\n  };\n\n  const output = JSON.stringify(input);\n\n  assert.snapshot(output, `{\"foo\":\"hello\",\"bar\":\"world\"}`);\n  assert.equal(JSON.parse(output), input, 'matches original');\n});\n\ntest.run();\n```\n\nThen execute this test file:\n\n```sh\n# via `uvu` cli, for all `/tests/**` files\n$ uvu -r esm tests\n\n# via `node` directly, for file isolation\n$ node -r esm tests/demo.js\n```\n\n> [View the `uvu` CLI documentation](/docs/cli.md)\n\n\n## Assertions\n\nThe [`uvu/assert`](/docs/api.assert.md) module is _completely_ optional.\n\nIn fact, you may use any assertion library, including Node's native [`assert`](https://nodejs.org/api/assert.html) module! This works because `uvu` relies on thrown Errors to detect failures. Implicitly, this also means that any uncaught exceptions and/or unhandled `Promise` rejections will result in a failure, which is what you want!\n\n\n## API\n\n### Module: `uvu`\n\n> [View `uvu` API documentation](/docs/api.uvu.md)\n\nThe main entry from which you will import the `test` or `suite` methods.\n\n### Module: `uvu/assert`\n\n> [View `uvu/assert` API documentation](/docs/api.assert.md)\n\nA collection of assertion methods to use within your tests. Please note that:\n\n* these are browser compatible\n* these are _completely_ optional\n\n\n## Benchmarks\n\n> via the [`/bench`](/bench) directory with Node v10.21.0\n\nBelow you'll find each test runner with two timing values:\n\n* the `took ___` value is the total process execution time – from startup to termination\n* the parenthesis value (`(___)`) is the self-reported execution time, if known\n\nEach test runner's `stdout` is printed to the console to verify all assertions pass.<br>Said output is excluded below for brevity.\n\n```\n~> \"ava\"   took   594ms  (  ???  )\n~> \"jest\"  took   962ms  (356  ms)\n~> \"mocha\" took   209ms  (  4  ms)\n~> \"tape\"  took   122ms  (  ???  )\n~> \"uvu\"   took    72ms  (  1.3ms)\n```\n\n\n## License\n\nMIT © [Luke Edwards](https://lukeed.com)\n","engines":{"node":">=8"},"exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"},"./run":{"import":"./run/index.mjs","require":"./run/index.js"},"./diff":{"import":"./diff/index.mjs","require":"./diff/index.js"},"./parse":{"import":"./parse/index.mjs","require":"./parse/index.js"},"./assert":{"import":"./assert/index.mjs","require":"./assert/index.js"}},"gitHead":"992fefcbc417c954dc63a5d8cf1a6047aa53edf9","license":"MIT","scripts":{"test":"node test","build":"bundt"},"_npmUser":{"name":"lukeed","email":"luke@lukeed.com"},"homepage":"https://github.com/lukeed/uvu#readme","keywords":["assert","diffs","runner","snapshot","test"],"repository":{"url":"git+https://github.com/lukeed/uvu.git","type":"git"},"_npmVersion":"6.14.6","description":"uvu is an extremely fast and lightweight test runner for Node.js and the browser","directories":{},"maintainers":[{"name":"lukeed","email":"luke@lukeed.com"}],"_nodeVersion":"12.18.3","dependencies":{"diff":"^4.0.2","sade":"^1.7.3","kleur":"^4.0.3","dequal":"^1.0.0","totalist":"^1.1.0"},"_hasShrinkwrap":false,"_moduleAliases":{"uvu":"src/index.js","uvu/diff":"src/diff.js","uvu/assert":"src/assert.js"},"readmeFilename":"readme.md","devDependencies":{"esm":"3.2.25","bundt":"1.0.1","module-alias":"2.2.2"},"_npmOperationalInternal":{"tmp":"tmp/uvu_0.4.0-next.3_1597163576358_0.7159004879454434","host":"s3://npm-registry-packages"},"_id":"uvu@0.4.0-next.3","version":"0.4.0-next.3"}