{"_id":"geometric-library","_rev":"46-21cd9b7c98936570c67f409d231e17a5","name":"geometric-library","dist-tags":{"latest":"1.6.4"},"versions":{"1.3.0":{"name":"geometric-library","version":"1.3.0","keywords":["geometry","vector","2d","point","line","curve"],"author":{"name":"Dante Darie","email":"dante.darie@gmail.com"},"license":"MIT","_id":"geometric-library@1.3.0","maintainers":[{"name":"dante-darie","email":"dante.darie@gmail.com"}],"homepage":"https://github.com/dante-darie/geometric-library#readme","bugs":{"url":"https://github.com/dante-darie/geometric-library/issues"},"dist":{"shasum":"0c8ed0189360db858a458ade554626ab20f7fafe","tarball":"https://registry.npmjs.org/geometric-library/-/geometric-library-1.3.0.tgz","fileCount":54,"integrity":"sha512-cTi8rKEFm7Xy68Tmcte+gMeHpsHrBvXLz7pXHqhvTOw+ff0Q0/b6DSW9JFzqEEpuM26HQ22vWge+UMIm2GN2Ng==","signatures":[{"sig":"MEUCIQCIauOMoAezkGnEmou7FdALgIZrzTF62TSnwl7U5TPSHwIgeSv89oZqlX9H1bHQ5DLI4jrKCHpnwU6DIw8dgg+axzo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/geometric-library@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":115889},"main":"dist/cjs/index.js","types":"dist/types/index.d.ts","module":"dist/esm/index.js","gitHead":"b746dfde9bb4d813fa302dd16452435ce95b40f6","scripts":{"lint":"npx eslint ./src --ext .js,.ts","test":"vitest --watch false","build":"npm run clean && npm run build:cjs && npm run build:esm && npm run build:types","clean":"rm -rf dist","prepare":"husky","lint:fix":"npx eslint ./src --ext .js,.ts --fix","prettier":"npx prettier . --write","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"vitest --watch true","build:types":"tsc --declaration --emitDeclarationOnly --outDir dist/types","test:coverage":"vitest run --coverage --watch false"},"_npmUser":{"name":"dante-darie","email":"dante.darie@gmail.com"},"deprecated":"This version is outdated. Please update to the latest version.","repository":{"url":"git+https://github.com/dante-darie/geometric-library.git","type":"git"},"_npmVersion":"10.7.0","description":"A Node based, visually agnostic implementation of geometric functions, both abstract and finite.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"decimal.js":"^10.4.3"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.0.11","eslint":"^8.57.0","vitest":"^1.6.0","prettier":"^3.3.2","typescript":"^5.1.6","@types/node":"^20.14.2","prettier-eslint":"^16.3.0","@vitest/coverage-v8":"^1.6.0","vite-tsconfig-paths":"^4.3.2","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^9.1.0","eslint-config-standard":"^17.1.0","@typescript-eslint/parser":"^7.12.0","prettier-plugin-packagejson":"^2.5.0","@typescript-eslint/eslint-plugin":"^7.12.0","eslint-import-resolver-typescript":"^3.6.1"},"_npmOperationalInternal":{"tmp":"tmp/geometric-library_1.3.0_1721204947944_0.8175710867856811","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"geometric-library","version":"1.3.1","keywords":["geometry","vector","2d","point","line","curve"],"author":{"name":"Dante Darie","email":"dante.darie@gmail.com"},"license":"MIT","_id":"geometric-library@1.3.1","maintainers":[{"name":"dante-darie","email":"dante.darie@gmail.com"}],"homepage":"https://github.com/dante-darie/geometric-library#readme","bugs":{"url":"https://github.com/dante-darie/geometric-library/issues"},"dist":{"shasum":"9347cc974d07ff5a297f7c829de20009650c168f","tarball":"https://registry.npmjs.org/geometric-library/-/geometric-library-1.3.1.tgz","fileCount":54,"integrity":"sha512-GOaoYRQbd5f01yXBFw379XAkooT6Wh9mNYWq9ugtrHTw+GpG+PZWUF7GR1DH2PLx7Cdpw/DJ75JOWnpuZRKtMQ==","signatures":[{"sig":"MEYCIQCbitE5O9DLfRuYdDPwVhpqUWhskwQOQ+slnG9X6QWc+gIhALnky8vmamwWNX49++Or/w4dzUS2uob8z79ZyMNU7T3H","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/geometric-library@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":136071},"main":"dist/cjs/index.js","types":"dist/types/index.d.ts","module":"dist/esm/index.js","gitHead":"710872eb495e33039a255d43ac2e0219bac00911","scripts":{"lint":"npx eslint ./src --ext .js,.ts","test":"vitest --watch false","build":"npm run clean && npm run build:cjs && npm run build:esm && npm run build:types","clean":"rm -rf dist","prepare":"husky","lint:fix":"npx eslint ./src --ext .js,.ts --fix","prettier":"npx prettier . --write","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","test:watch":"vitest --watch true","build:types":"tsc --project tsconfig.types.json","test:coverage":"vitest run --coverage --watch false"},"_npmUser":{"name":"dante-darie","email":"dante.darie@gmail.com"},"deprecated":"This version is outdated. Please update to the latest version.","repository":{"url":"git+https://github.com/dante-darie/geometric-library.git","type":"git"},"_npmVersion":"10.7.0","description":"A Node based, visually agnostic implementation of geometric functions, both abstract and finite.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"decimal.js":"^10.4.3"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.0.11","eslint":"^8.57.0","vitest":"^1.6.0","prettier":"^3.3.2","typescript":"^5.1.6","@types/node":"^20.14.2","prettier-eslint":"^16.3.0","@vitest/coverage-v8":"^1.6.0","vite-tsconfig-paths":"^4.3.2","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^9.1.0","eslint-config-standard":"^17.1.0","@typescript-eslint/parser":"^7.12.0","prettier-plugin-packagejson":"^2.5.0","@typescript-eslint/eslint-plugin":"^7.12.0","eslint-import-resolver-typescript":"^3.6.1"},"_npmOperationalInternal":{"tmp":"tmp/geometric-library_1.3.1_1721254690385_0.9107448956875388","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"geometric-library","version":"1.4.0","keywords":["geometry","vector","2d","point","line","curve"],"author":{"name":"Dante Darie","email":"dante.darie@gmail.com"},"license":"MIT","_id":"geometric-library@1.4.0","maintainers":[{"name":"dante-darie","email":"dante.darie@gmail.com"}],"homepage":"https://github.com/dante-darie/geometric-library#readme","bugs":{"url":"https://github.com/dante-darie/geometric-library/issues"},"dist":{"shasum":"585f3a9a4cee0a84512f9e732bd2ee6800c86f96","tarball":"https://registry.npmjs.org/geometric-library/-/geometric-library-1.4.0.tgz","fileCount":141,"integrity":"sha512-KcwDvufjIu5HbSQs7AdwQzHrz8HzNXN8Tpt+alOwQCJihqxOMGB3ClwKHi7aqp0glW5LJvFl++SmHAev/mofMA==","signatures":[{"sig":"MEQCIHoOq+O9N22MgKJzlhh3uwLpkSge5DDe0yJWdpTjlOi5AiABpBv0HnFUHIm0tFC/6cQyqRWMa8aYTKBQ/+boGrv31Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":148343},"main":"dist/cjs/index.js","types":"dist/types/index.d.ts","module":"dist/esm/index.js","gitHead":"423ebdbddfae409603f817adaee9f78055ef0c6e","scripts":{"lint":"npx eslint ./src","test":"vitest --watch false","build":"npm run clean && npm run build:cjs && npm run build:esm && npm run build:types","clean":"rm -rf dist","prepare":"husky","lint:fix":"npx eslint ./src --fix","prettier":"npx prettier . --write","build:cjs":"tsc --project tsconfig.cjs.json && tsc-alias -p tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json && tsc-alias -p tsconfig.esm.json","test:watch":"vitest --watch true","build:types":"tsc --project tsconfig.types.json && tsc-alias -p tsconfig.types.json","test:coverage":"vitest run --coverage --watch false"},"_npmUser":{"name":"dante-darie","email":"dante.darie@gmail.com"},"repository":{"url":"git+https://github.com/dante-darie/geometric-library.git","type":"git"},"_npmVersion":"10.9.4","description":"A Node based, visually agnostic implementation of geometric functions, both abstract and finite.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"decimal.js":"^10.4.3"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.0.11","eslint":"^9.39.2","vitest":"^4.0.18","globals":"^17.3.0","prettier":"^3.3.2","tsc-alias":"^1.8.16","@eslint/js":"^9.39.2","typescript":"^5.1.6","@types/node":"^22.19.8","@commitlint/cli":"^20.4.1","prettier-eslint":"^16.3.0","semantic-release":"^25.0.3","typescript-eslint":"^8.54.0","@vitest/coverage-v8":"^4.0.18","vite-tsconfig-paths":"^6.0.5","@semantic-release/git":"^10.0.1","eslint-config-prettier":"^10.1.8","eslint-plugin-import-x":"^4.16.1","@semantic-release/changelog":"^6.0.3","prettier-plugin-packagejson":"^3.0.0","@commitlint/config-conventional":"^20.4.1","eslint-import-resolver-typescript":"^4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/geometric-library_1.4.0_1770339739961_0.3172712014164334","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"geometric-library","version":"1.5.0","keywords":["geometry","vector","2d","point","line","curve"],"author":{"name":"Dante Darie","email":"dante.darie@gmail.com"},"license":"MIT","_id":"geometric-library@1.5.0","maintainers":[{"name":"dante-darie","email":"dante.darie@gmail.com"}],"homepage":"https://github.com/dante-darie/geometric-library#readme","bugs":{"url":"https://github.com/dante-darie/geometric-library/issues"},"dist":{"shasum":"8106a41efed83e4a64b85d73db4df9bd6b8e7396","tarball":"https://registry.npmjs.org/geometric-library/-/geometric-library-1.5.0.tgz","fileCount":141,"integrity":"sha512-Fy494WpSbFw5onc2hAg9+9adVZoL6b5lzVgJXtdSYAcskZuqdta12m+Erenjk4RbGq8RZ/Of/I5KgcLKTULIvw==","signatures":[{"sig":"MEQCIEiD6pRWWzIKQ3fxcpWX0AoZqyUJykh7c7FIAbQCgOxkAiAnHgA5512GL/MLu3IAVq5OSehitEfp5e9FY//WeHotVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/geometric-library@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":148343},"main":"dist/cjs/index.js","types":"dist/types/index.d.ts","module":"dist/esm/index.js","gitHead":"b0b94b190e768082e7d47d95a80e400b6e1eb0d1","scripts":{"lint":"npx eslint ./src","test":"vitest --watch false","build":"npm run clean && npm run build:cjs && npm run build:esm && npm run build:types","clean":"rm -rf dist","prepare":"husky","lint:fix":"npx eslint ./src --fix","prettier":"npx prettier . --write","build:cjs":"tsc --project tsconfig.cjs.json && tsc-alias -p tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json && tsc-alias -p tsconfig.esm.json","test:watch":"vitest --watch true","build:types":"tsc --project tsconfig.types.json && tsc-alias -p tsconfig.types.json","test:coverage":"vitest run --coverage --watch false"},"_npmUser":{"name":"dante-darie","email":"dante.darie@gmail.com"},"repository":{"url":"git+https://github.com/dante-darie/geometric-library.git","type":"git"},"_npmVersion":"10.9.4","description":"A Node based, visually agnostic implementation of geometric functions, both abstract and finite.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"decimal.js":"^10.4.3"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.0.11","eslint":"^9.39.2","vitest":"^4.0.18","globals":"^17.3.0","prettier":"^3.3.2","tsc-alias":"^1.8.16","@eslint/js":"^9.39.2","typescript":"^5.1.6","@types/node":"^22.19.8","@commitlint/cli":"^20.4.1","prettier-eslint":"^16.3.0","semantic-release":"^25.0.3","typescript-eslint":"^8.54.0","@vitest/coverage-v8":"^4.0.18","vite-tsconfig-paths":"^6.0.5","@semantic-release/git":"^10.0.1","eslint-config-prettier":"^10.1.8","eslint-plugin-import-x":"^4.16.1","@semantic-release/changelog":"^6.0.3","prettier-plugin-packagejson":"^3.0.0","@commitlint/config-conventional":"^20.4.1","eslint-import-resolver-typescript":"^4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/geometric-library_1.5.0_1770341668236_0.6935871372056273","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"geometric-library","version":"1.6.0","keywords":["geometry","vector","2d","point","line","curve"],"author":{"name":"Dante Darie","email":"dante.darie@gmail.com"},"license":"MIT","_id":"geometric-library@1.6.0","maintainers":[{"name":"dante-darie","email":"dante.darie@gmail.com"}],"homepage":"https://github.com/dante-darie/geometric-library#readme","bugs":{"url":"https://github.com/dante-darie/geometric-library/issues"},"dist":{"shasum":"cf2d70ebdb79e55a308c71e3dba8b622cdd39cf6","tarball":"https://registry.npmjs.org/geometric-library/-/geometric-library-1.6.0.tgz","fileCount":141,"integrity":"sha512-qvAmZAlFRCKcyJW3OrKeucmsVfPYraC7KmCS65g95CutMBtu27jwxDx3uDT2Vp+eeAwSGwGdTAUWGgL8xHFHcg==","signatures":[{"sig":"MEUCIQDqdJZ3SKgDhz+sBoDS7Nnc5bXKTQ+bu20GV1Q27LzK5AIgRxxIh4SPvC3tVtVJlvg0vBHJb6xc8+iAuLH0Gq0oOvE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/geometric-library@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":149916},"main":"dist/cjs/index.js","types":"dist/types/index.d.ts","module":"dist/esm/index.js","gitHead":"a7eca340842e210fa3ed37a2527d6e3eca2e7078","scripts":{"lint":"npx eslint ./src","test":"vitest --watch false","build":"npm run clean && npm run build:cjs && npm run build:esm && npm run build:types","clean":"rm -rf dist","prepare":"husky","lint:fix":"npx eslint ./src --fix","prettier":"npx prettier . --write","build:cjs":"tsc --project tsconfig.cjs.json && tsc-alias -p tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json && tsc-alias -p tsconfig.esm.json","test:watch":"vitest --watch true","build:types":"tsc --project tsconfig.types.json && tsc-alias -p tsconfig.types.json","test:coverage":"vitest run --coverage --watch false"},"_npmUser":{"name":"dante-darie","email":"dante.darie@gmail.com"},"repository":{"url":"git+https://github.com/dante-darie/geometric-library.git","type":"git"},"_npmVersion":"10.9.4","description":"A Node based, visually agnostic implementation of geometric functions, both abstract and finite.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"decimal.js":"^10.4.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.0.11","eslint":"^9.39.2","vitest":"^4.0.18","globals":"^17.3.0","prettier":"^3.3.2","tsc-alias":"^1.8.16","@eslint/js":"^9.39.2","typescript":"^5.1.6","@types/node":"^22.19.8","@commitlint/cli":"^20.4.1","prettier-eslint":"^16.3.0","semantic-release":"^25.0.3","typescript-eslint":"^8.54.0","@vitest/coverage-v8":"^4.0.18","vite-tsconfig-paths":"^6.0.5","@semantic-release/git":"^10.0.1","eslint-config-prettier":"^10.1.8","eslint-plugin-import-x":"^4.16.1","@semantic-release/changelog":"^6.0.3","prettier-plugin-packagejson":"^3.0.0","@commitlint/config-conventional":"^20.4.1","eslint-import-resolver-typescript":"^4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/geometric-library_1.6.0_1771785340586_0.21339816451436766","host":"s3://npm-registry-packages-npm-production"}},"1.6.4":{"name":"geometric-library","version":"1.6.4","description":"A Node based, visually agnostic implementation of geometric functions, both abstract and finite.","keywords":["geometry","vector","2d","point","line","curve"],"repository":{"type":"git","url":"git+https://github.com/dante-darie/geometric-library.git"},"license":"MIT","author":{"name":"Dante Darie","email":"dante.darie@gmail.com"},"main":"dist/cjs/index.js","module":"dist/esm/index.js","types":"dist/types/index.d.ts","scripts":{"build":"npm run clean && npm run build:cjs && npm run build:esm && npm run build:types","build:cjs":"tsc --project tsconfig.cjs.json && tsc-alias -p tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json && tsc-alias -p tsconfig.esm.json","build:types":"tsc --project tsconfig.types.json && tsc-alias -p tsconfig.types.json","clean":"rm -rf dist","lint":"npx eslint ./src","lint:fix":"npx eslint ./src --fix","prepare":"husky","prettier":"npx prettier . --write","test":"vitest --watch false","test:coverage":"vitest run --coverage --watch false","test:watch":"vitest --watch true"},"dependencies":{"decimal.js":"^10.4.3"},"devDependencies":{"@commitlint/cli":"^20.4.1","@commitlint/config-conventional":"^20.4.1","@eslint/js":"^9.39.2","@semantic-release/changelog":"^6.0.3","@semantic-release/git":"^10.0.1","@types/node":"^22.19.8","@vitest/coverage-v8":"^4.0.18","eslint":"^9.39.2","eslint-config-prettier":"^10.1.8","eslint-import-resolver-typescript":"^4.4.4","eslint-plugin-import-x":"^4.16.1","globals":"^17.3.0","husky":"^9.0.11","prettier":"^3.3.2","prettier-plugin-packagejson":"^3.0.0","semantic-release":"^25.0.3","tsc-alias":"^1.8.16","typescript":"^5.1.6","typescript-eslint":"^8.54.0","vite-tsconfig-paths":"^6.0.5","vitest":"^4.0.18"},"publishConfig":{"access":"public"},"gitHead":"ed212b2f6d5b9d9d373901b4a794a52beec862bd","_id":"geometric-library@1.6.4","bugs":{"url":"https://github.com/dante-darie/geometric-library/issues"},"homepage":"https://github.com/dante-darie/geometric-library#readme","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-EfZ0sCDSNpBJkvKvK79lfzPTUSmVyeceOgrTV6QyHj3qHU9iklOFGFOOh6MCa7oRZqFiy592v5W7TW5tqbUVgQ==","shasum":"f33d263e3b27c01140a33ddafb4ba59ddea1ad5c","tarball":"https://registry.npmjs.org/geometric-library/-/geometric-library-1.6.4.tgz","fileCount":141,"unpackedSize":149882,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/geometric-library@1.6.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD+2RiGURNSzb4gBP3Qet/3M2s+flMCTVS9DMvA4yvpnwIhAJ2dIh22LORy+5N3FDA6XBIRHGdOlRIRxa/a/Upz17QH"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a5235d9-75f4-4d86-8232-664bb0fa22d5"}},"directories":{},"maintainers":[{"name":"dante-darie","email":"dante.darie@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/geometric-library_1.6.4_1781041696412_0.8588525868662515"},"_hasShrinkwrap":false}},"time":{"created":"2024-07-11T18:41:19.088Z","modified":"2026-06-09T21:48:16.882Z","1.0.0":"2024-06-10T12:49:01.964Z","1.1.0":"2024-06-11T22:08:40.679Z","1.2.0":"2024-07-11T18:41:19.385Z","1.2.1":"2024-07-14T15:35:44.136Z","1.2.2":"2024-07-14T17:35:14.690Z","1.2.3":"2024-07-14T17:54:32.103Z","1.2.4":"2024-07-14T18:11:36.593Z","1.2.5":"2024-07-14T18:21:27.528Z","1.3.0":"2024-07-17T08:29:08.151Z","1.3.1":"2024-07-17T22:18:10.590Z","1.0.1":"2026-02-05T01:28:06.071Z","1.0.2":"2026-02-05T01:57:05.703Z","1.0.3":"2026-02-05T21:29:22.970Z","1.0.4":"2026-02-05T21:44:31.606Z","1.4.0":"2026-02-06T01:02:20.132Z","1.5.0":"2026-02-06T01:34:28.416Z","1.6.0":"2026-02-22T18:35:40.739Z","1.6.4":"2026-06-09T21:48:16.594Z"},"bugs":{"url":"https://github.com/dante-darie/geometric-library/issues"},"author":{"name":"Dante Darie","email":"dante.darie@gmail.com"},"license":"MIT","homepage":"https://github.com/dante-darie/geometric-library#readme","keywords":["geometry","vector","2d","point","line","curve"],"repository":{"type":"git","url":"git+https://github.com/dante-darie/geometric-library.git"},"description":"A Node based, visually agnostic implementation of geometric functions, both abstract and finite.","maintainers":[{"name":"dante-darie","email":"dante.darie@gmail.com"}],"readme":"# geometric-library\n\nA Node based, visually agnostic implementation of geometric functions, both abstract and finite.\n\n## Prerequisites\n\nThis library assumes you already have basic knowledge of geometric concepts, including:\n\n- **Abstracts**: magnitude, direction, position, coordinate, vector, point, figure, angle\n- **Figures**: line, curve, ellipse, polygon\n- **Transformations**: rotation, translation, reflection, scaling\n- **Units**: radian, degree\n\n## Installation\n\n```sh\nnpm install geometric-library\n```\n\n## Importing (ESM)\n\n```javascript\nimport { Point, Line, Vector, Angle } from 'geometric-library';\n```\n\n## Importing (CommonJS)\n\n```javascript\nconst { Point, Line, Vector, Angle } = require('geometric-library');\n```\n\n## TypeScript Types\n\nIf you're using TypeScript, you can import types and interfaces for all exported functionalities:\n\n```typescript\nimport { IPoint, TPointValues, ILine, TLineValues } from 'geometric-library';\n```\n\nThis is recommended as it will help you understand how everything works and provides full type safety.\n\n## Quick Example\n\n```typescript\nimport { Point, Vector, Line, Angle } from 'geometric-library';\n\n// Create two points and a line between them\nconst pointA = new Point([0, 0]);\nconst pointB = new Point([5, 5]);\nconst line = new Line([pointA, pointB]);\n\n// Check line properties\nconsole.log(line.slope); // 1\nconsole.log(line.yIntercept); // 0\n\n// Transform with chaining\nconst vector = new Vector([2, 3]);\nconst angle = new Angle(90, 'degrees');\npointA.translate(vector).rotate(angle);\n```\n\n## Dependencies\n\n### Decimal.js\n\nJavaScript has well-documented issues with floating-point arithmetic. This library uses [Decimal.js](https://mikemcl.github.io/decimal.js/) under the hood (via the `Calculator` utility class) to handle precision correctly.\n\nYou do **not** need to install Decimal.js separately - it is included as a dependency of this library. All math operations are routed through `Calculator`, which applies epsilon-based rounding (1e-8) to eliminate floating-point artifacts.\n\n## Documentation\n\n- **API Reference**\n  - [Abstracts](./docs/api/abstracts.md) - Flag, Angle, Magnitude, Vector, Point, Figure\n  - [Figures](./docs/api/figures.md) - Line, Polygon, Ellipse, Circle, QuadraticBezierCurve, CubicBezierCurve, ArcCurve\n  - [Utilities](./docs/api/utilities.md) - Calculator, coordinateOrigin, xAxis, yAxis, PI2\n  - [Types](./docs/api/types.md) - All interfaces and type definitions\n- **[Architecture](./docs/architecture.md)** - Design decisions, patterns, class hierarchy\n- **[Contributing](./docs/contributing.md)** - Bug reports, PRs, coding standards\n\n## References\n\n- [Intro to Bezier curves](https://iquilezles.org/articles/bezierbbox) by [Inigo Quilez](https://iquilezles.org/).\n- [Arc Implementation Notes](https://www.w3.org/TR/SVG/implnote.html#ArcImplementationNotes) from the [SVG 2 Specification](https://www.w3.org/TR/SVG).\n\n## License\n\nThis project is published and distributed under the [MIT License](./LICENSE).\n","readmeFilename":"README.md"}