{"_id":"@awatters_flatiron/tsvector","_rev":"2-fcc8d7f65dba9b819107fcea85e0f090","name":"@awatters_flatiron/tsvector","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@awatters_flatiron/tsvector","version":"1.0.0","keywords":[],"author":"","license":"ISC","_id":"@awatters_flatiron/tsvector@1.0.0","maintainers":[{"name":"awatters_flatiron","email":"awatters@simonsfoundation.org"}],"dist":{"shasum":"adc565584743f13a4b87a3eea47eef507b38aa2a","tarball":"https://registry.npmjs.org/@awatters_flatiron/tsvector/-/tsvector-1.0.0.tgz","fileCount":14,"integrity":"sha512-/9ijvGbAyPIzbQOB7BRRFCiAyV92FMmB9biUz+wMdP9RWuiqnSJU7yIc4GxtCKe918TTdu3BpiVuxPI8IbwY3A==","signatures":[{"sig":"MEUCIQCumOcEGvtdEo9rXrJH4xFBWOWJkuT/HXulLiE9NhmbtwIgdhmPvepxxjjpKUGrNyeb+T1dxXI1DZcMpDypK+HbRVI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36647},"main":"dist/tsVector.js","type":"module","types":"./dist/index.d.ts","module":"dist/tsVector.mjs","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/tsVector.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/tsVector.js"}}},"gitHead":"9d54ad87f29f31836291c120cba795c36999609b","scripts":{"dev":"vite","docs":"typedoc && cp docs-assets/*.* docs/","test":"vitest","build":"vite build","test:e2e":"vite build && npx playwright test","test:coverage":"vitest --coverage"},"_npmUser":{"name":"awatters_flatiron","email":"awatters@simonsfoundation.org"},"_npmVersion":"10.8.1","description":"Quick and dirty and minimalist vector and matrix operations in Typescript.  KISS.","directories":{},"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.2.0","vitest":"^3.0.7","typedoc":"^0.28.17","typescript":"^5.7.3","vite-plugin-dts":"^4.5.1","@playwright/test":"^1.50.1","@vitest/coverage-v8":"^3.0.7"},"_npmOperationalInternal":{"tmp":"tmp/tsvector_1.0.0_1773412456072_0.6227982779048586","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@awatters_flatiron/tsvector","type":"module","version":"1.0.1","description":"Quick and dirty and minimalist vector and matrix operations in Typescript.  KISS.","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/tsVector.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/tsVector.js"}}},"main":"dist/tsVector.js","module":"dist/tsVector.mjs","types":"./dist/index.d.ts","scripts":{"build":"vite build","test":"vitest","dev":"vite","test:e2e":"vite build && npx playwright test","test:coverage":"vitest --coverage","docs":"typedoc && cp docs-assets/*.* docs/"},"keywords":[],"author":"","license":"ISC","devDependencies":{"@playwright/test":"^1.50.1","@vitest/coverage-v8":"^3.0.7","typedoc":"^0.28.17","typescript":"^5.7.3","vite":"^6.2.0","vite-plugin-dts":"^4.5.1","vitest":"^3.0.7"},"_id":"@awatters_flatiron/tsvector@1.0.1","gitHead":"4d3baef26a0cb9bd99404c7dbe908a3faf7e13f5","_nodeVersion":"20.16.0","_npmVersion":"10.8.1","dist":{"integrity":"sha512-i2BhOX0Fnigtlw/G68qEpwTkZbFvsH1DCYs12A0qCTi7Rof9eI/GIP3YTOLDa6JY0IdySW3lWdODoQddSE/PBA==","shasum":"4f9ba7dfd56fc6847059c6918d6a8433fe14a1bf","tarball":"https://registry.npmjs.org/@awatters_flatiron/tsvector/-/tsvector-1.0.1.tgz","fileCount":14,"unpackedSize":36710,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD/f8oSktIyS5LfjSCJCOxIjBphYxzzK4kxu0IzJwJ1lgIhALXCqOSnnIfg1kVfOFZvxsPWf0+zAJ3ax9RKsdCS0usU"}]},"_npmUser":{"name":"awatters_flatiron","email":"awatters@simonsfoundation.org"},"directories":{},"maintainers":[{"name":"awatters_flatiron","email":"awatters@simonsfoundation.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tsvector_1.0.1_1773413544499_0.5111975437284084"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-13T14:34:15.981Z","modified":"2026-03-13T14:52:24.793Z","1.0.0":"2026-03-13T14:34:16.229Z","1.0.1":"2026-03-13T14:52:24.671Z"},"license":"ISC","keywords":[],"description":"Quick and dirty and minimalist vector and matrix operations in Typescript.  KISS.","maintainers":[{"name":"awatters_flatiron","email":"awatters@simonsfoundation.org"}],"readme":"# tsVector\nQuick and dirty and minimalist vector and matrix operations in Typescript.  KISS.\n\n📖 **[API Documentation](https://aaronwatters.github.io/tsVector/)**\n📖 **[Tutorial](https://aaronwatters.github.io/tsVector/tutorial.html)**\n\nThis library supplies simple math operations useful for implementing\ninteractive graphics in javascript (among other purposes).\n\nIt is also a bit like a \"hello world\" typescript library implementation.\n\n![CI](https://github.com/AaronWatters/tsVector/actions/workflows/ci.yml/badge.svg)\n![npm version](https://img.shields.io/npm/v/@awatters_flatiron/tsvector)\n![npm downloads](https://img.shields.io/npm/dm/@awatters_flatiron/tsvector)\n![bundle size](https://img.shields.io/bundlephobia/minzip/@awatters_flatiron/tsvector)\n![License](https://img.shields.io/badge/license-BSD%202--Clause-blue)\n![GitHub stars](https://img.shields.io/github/stars/AaronWatters/tsVector.svg)\n\n## Using this library in another project\n\nYou can add the latest `tsVector` to any JavaScript or TypeScript project from npm or github\n\nTo install from npm:\n\n```bash\nnpm install @awatters_flatiron/tsvector\n```\n\nTo install from github:\n\n```bash\nnpm install github:AaronWatters/tsVector\n```\n\nnpm will fetch the repository and add it to your `package.json` dependencies.\n\n### Import the library\n\nAfter installation, import using the package name `tsvector`:\n\n**TypeScript / ES modules**\n\n```typescript\nimport { /* functions you need */ } from \"tsvector\";\n```\n\n**CommonJS**\n\n```javascript\nconst tsVector = require(\"tsvector\");\n```\n\n## Development\n\n### Install dependencies\n\n```bash\nnpm install\n```\n\n### Run the dev server\n\nStart the Vite development server to preview the library in the browser:\n\n```bash\nnpm run dev\n```\n\nThe server will print a local URL (e.g. `http://localhost:5173`) that you can open in your browser.\n\n### Run tests\n\n```bash\nnpm test\n```\n\n### Generate a code coverage report\n\nRun the test suite with coverage instrumentation:\n\n```bash\nnpm run test:coverage\n```\n\nAfter the run completes, an HTML report is written to the `coverage/` directory.\nOpen `coverage/index.html` in your browser to explore the results.\n\n> **Note:** The `coverage/` directory is listed in `.gitignore` and will not be committed to the repository.\n\n### Generate API documentation\n\nGenerate comprehensive API documentation using TypeDoc:\n\n```bash\nnpm run docs\n```\n\nThis command will:\n- Generate API documentation from your TypeScript source code\n- Create an HTML documentation site in the `docs/` directory\n- Include a tutorial page with getting started information\n\nAfter generation, open `docs/index.html` in your browser to view the documentation. The documentation includes:\n- Complete API reference for all exported functions and types\n- Type information and parameter descriptions\n- A tutorial page accessible from the navigation menu\n\n> **Note:** The `docs/` directory is listed in `.gitignore` and regenerated as needed. You can customize the documentation by editing `typedoc.json` and the tutorial content in `docs-assets/tutorial.html`. The documentation is also automatically built and published to [GitHub Pages](https://aaronwatters.github.io/tsVector/) on every push to `main`.\n\n## GitHub Actions CI\n\nThis repository includes a CI workflow at [`.github/workflows/ci.yml`](.github/workflows/ci.yml) that automatically runs the test suite on every push and pull request.\n\nThe workflow has two jobs:\n\n| Job | Tool | Command |\n|-----|------|---------|\n| **Unit Tests** | Vitest | `npm test -- --run` |\n| **End-to-End Tests** | Playwright | `npm run test:e2e` |\n\nThe Playwright job also uploads its HTML report as a downloadable **artifact** (retained for 30 days) so you can inspect failures without re-running locally.\n\nA separate workflow at [`.github/workflows/docs.yml`](.github/workflows/docs.yml) automatically generates and publishes the API documentation to [GitHub Pages](https://aaronwatters.github.io/tsVector/) on every push to `main`.\n\n### Enabling Actions on your fork\n\nGitHub Actions are enabled by default on the original repository.  If you have\nforked the repository and Actions are not running, follow these steps:\n\n1. Open your fork on GitHub.\n2. Click the **Actions** tab near the top of the page.\n3. If Actions have been disabled, GitHub shows a banner — click **\"I understand my workflows, go ahead and enable them\"**.\n4. Actions will now run automatically on every push and pull request to your fork.\n\n### Viewing results and artifacts\n\n1. Go to the **Actions** tab of the repository.\n2. Click any workflow run to see individual job logs.\n3. Scroll down to the **Artifacts** section at the bottom of the run summary to download the `playwright-report` produced by the e2e job.\n","readmeFilename":"README.md"}