{"bin":{"uvu":"bin.js"},"bugs":{"url":"https://github.com/lukeed/uvu/issues"},"dist":{"shasum":"b939085b4fd94f7ecca385aa5fda9e7f34adf90a","tarball":"https://registry.npmjs.org/uvu/-/uvu-0.4.0-next.2.tgz","fileCount":15,"integrity":"sha512-5anLV6mZ9JNQZtKyYn8Gkg+iFSslbn0+ovnrHXXzfAtw4O59ezDZJYLQ4NixZ9MeH0+b2ttUfdVat6W+JPOdtg==","signatures":[{"sig":"MEQCIBHV0DRht/1zpb3i9KVKD+kgA/qRimyvNRDkP+0a+7AoAiBvCbn/I//JW+N+xvTglF2OZIoAU30flfqzXV3RGgdj2g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45799,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKvN8CRA9TVsSAnZWagAAeTcQAIb1sgrxhL5JUFr5pghr\n19JYHz7dt12+ISSDjtPBpO7WYa/w9ZjbroNT9hSTbJLRePgYVShck4OJhwqI\nUSsFls7ob9aBWv1S34WWLn/t0x1CXF1g3cTtOmAj/hSXblYLAq1uAiTAl+Kf\nnICpjGCpX15zLem3pqt6woxSIbmpsYnQHHeiPeif/zBXS2HDXmVgyjhN7H5K\nlxwxMnbYjrZ6EhhTZ8hJaS6DReMms8JgUL3lfox9dvtntWoQWADltXTWi6Pp\nAbu4NObZaIMBFRc4XIZ+WwLALd/7UEHdOOuwetqLJ504PyyBzcfLTQOVDkc+\nDN5N4mHmMbRVceamBf9Dg6/2WNmOvZNLCMgIR66a71FhclLbcSgt0DUbeP3s\nhaVuFdUfQSJkH6GeQtqKRhhmpQwBwD85F/y2VzWlmw0oMaH+gAEktB6bpE73\nx8mfmGZVv+K/E33juJil36LJU2QvaOTIuv36X54ulI/o/MhaLfxTPa6awaSS\noeC3fXr/Lvw1m2sJagG/yChJG9o9CGu8TGArA3oyWqv6wQMO9NcR1707JkvM\nF7Z1ig0PV5Kqo/BYdq4vxXXFZXjeKFdc60c+ooixqQPe+7ETtIgFvhwngQDY\n47eRZl9X8v822nTbr3Zt+6larh8Z8hIXXjiuSh2QU2eAkPhs1uhQQ4Jmgp30\n89y+\r\n=LzH9\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":"042c301661c3fe3288762a26535613d08f0f5237","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.7","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":"14.7.0","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.2_1596650363446_0.749565536491231","host":"s3://npm-registry-packages"},"_id":"uvu@0.4.0-next.2","version":"0.4.0-next.2"}