{"_id":"@adam-rocska/units-and-measurement","_rev":"4-10f5e0b006a344c64891e114fa548213","name":"@adam-rocska/units-and-measurement","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@adam-rocska/units-and-measurement","version":"1.0.0","keywords":["units","measurement","unit-conversion","numeric-calculations","quantities","unit-aware","type-safe","types","typescript","ts","js","javascript","node","nodejs","math","dimension","scaling","measurement-units","unit-operations","unit-management","arithmetic-operations","comparison","tree-shaking","modular","type predicates","value extraction","boilerplate-free","measurements library"],"author":{"url":"https://adam-rocska.github.io","name":"Ádám László Rocska"},"license":"MIT","_id":"@adam-rocska/units-and-measurement@1.0.0","maintainers":[{"name":"adam-rocska","email":"rocska.adam@gmail.com"}],"homepage":"https://github.com/adam-rocska/units-and-measurement-typescript#readme","bugs":{"url":"https://github.com/adam-rocska/units-and-measurement-typescript/issues"},"dist":{"shasum":"95d645e12e3167d03993c50dc7c956cea475ef4b","tarball":"https://registry.npmjs.org/@adam-rocska/units-and-measurement/-/units-and-measurement-1.0.0.tgz","fileCount":117,"integrity":"sha512-y9979rOSwRgtwQf5DpNPGQSjL7ZKgesrhp8aDl6V9DP8ExsWyzDjt1YwyFnjkgT3qhNL3nNMQa7MLJNcAGrZig==","signatures":[{"sig":"MEUCIEL1rWKifhYAlT1owYBsUXk1F0K8sveqNUf6tJkWO0j4AiEAzfVu3lwZc3gmxu+X+fiuUBJY908WBWVARxTPZ+vZSyg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":625816},"jest":{"transform":{"^.+\\.(t|j)sx?$":["@swc/jest"]},"testTimeout":1000,"moduleNameMapper":{"^!(.*)$":"<rootDir>/$1","^@adam-rocska/units-and-measurement$":"<rootDir>/src/index.ts","^@adam-rocska/units-and-measurement/area$":"<rootDir>/src/area/index.ts","^@adam-rocska/units-and-measurement/mass$":"<rootDir>/src/mass/index.ts","^@adam-rocska/units-and-measurement/angle$":"<rootDir>/src/angle/index.ts","^@adam-rocska/units-and-measurement/power$":"<rootDir>/src/power/index.ts","^@adam-rocska/units-and-measurement/speed$":"<rootDir>/src/speed/index.ts","^@adam-rocska/units-and-measurement/energy$":"<rootDir>/src/energy/index.ts","^@adam-rocska/units-and-measurement/length$":"<rootDir>/src/length/index.ts","^@adam-rocska/units-and-measurement/volume$":"<rootDir>/src/volume/index.ts","^@adam-rocska/units-and-measurement/duration$":"<rootDir>/src/duration/index.ts","^@adam-rocska/units-and-measurement/pressure$":"<rootDir>/src/pressure/index.ts","^@adam-rocska/units-and-measurement/frequency$":"<rootDir>/src/frequency/index.ts","^@adam-rocska/units-and-measurement/dispersion$":"<rootDir>/src/dispersion/index.ts","^@adam-rocska/units-and-measurement/operations$":"<rootDir>/src/operations/index.ts","^@adam-rocska/units-and-measurement/illuminance$":"<rootDir>/src/illuminance/index.ts","^@adam-rocska/units-and-measurement/information$":"<rootDir>/src/information/index.ts","^@adam-rocska/units-and-measurement/temperature$":"<rootDir>/src/temperature/index.ts","^@adam-rocska/units-and-measurement/acceleration$":"<rootDir>/src/acceleration/index.ts","^@adam-rocska/units-and-measurement/electric-charge$":"<rootDir>/src/electric-charge/index.ts","^@adam-rocska/units-and-measurement/electric-current$":"<rootDir>/src/electric-current/index.ts","^@adam-rocska/units-and-measurement/concentration-mass$":"<rootDir>/src/concentration-mass/index.ts","^@adam-rocska/units-and-measurement/electric-resistance$":"<rootDir>/src/electric-resistance/index.ts","^@adam-rocska/units-and-measurement/electric-potential-difference$":"<rootDir>/src/electric-potential-difference/index.ts"},"moduleDirectories":["node_modules"],"collectCoverageFrom":["src/**/*.ts"],"testPathIgnorePatterns":["/node_modules/"]},"main":"./dist/cjs/index.js","_from":"file:adam-rocska-units-and-measurement-1.0.0.tgz","types":"./dist/cjs/index.d.ts","module":"./dist/es/index.mjs","exports":{".":{"import":{"types":"./dist/es/index.d.mts","default":"./dist/es/index.mjs"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}},"./area":{"import":{"types":"./dist/es/area.d.mts","default":"./dist/es/area.mjs"},"require":{"types":"./dist/cjs/area.d.ts","default":"./dist/cjs/area.js"}},"./mass":{"import":{"types":"./dist/es/mass.d.mts","default":"./dist/es/mass.mjs"},"require":{"types":"./dist/cjs/mass.d.ts","default":"./dist/cjs/mass.js"}},"./angle":{"import":{"types":"./dist/es/angle.d.mts","default":"./dist/es/angle.mjs"},"require":{"types":"./dist/cjs/angle.d.ts","default":"./dist/cjs/angle.js"}},"./power":{"import":{"types":"./dist/es/power.d.mts","default":"./dist/es/power.mjs"},"require":{"types":"./dist/cjs/power.d.ts","default":"./dist/cjs/power.js"}},"./speed":{"import":{"types":"./dist/es/speed.d.mts","default":"./dist/es/speed.mjs"},"require":{"types":"./dist/cjs/speed.d.ts","default":"./dist/cjs/speed.js"}},"./energy":{"import":{"types":"./dist/es/energy.d.mts","default":"./dist/es/energy.mjs"},"require":{"types":"./dist/cjs/energy.d.ts","default":"./dist/cjs/energy.js"}},"./length":{"import":{"types":"./dist/es/length.d.mts","default":"./dist/es/length.mjs"},"require":{"types":"./dist/cjs/length.d.ts","default":"./dist/cjs/length.js"}},"./volume":{"import":{"types":"./dist/es/volume.d.mts","default":"./dist/es/volume.mjs"},"require":{"types":"./dist/cjs/volume.d.ts","default":"./dist/cjs/volume.js"}},"./duration":{"import":{"types":"./dist/es/duration.d.mts","default":"./dist/es/duration.mjs"},"require":{"types":"./dist/cjs/duration.d.ts","default":"./dist/cjs/duration.js"}},"./pressure":{"import":{"types":"./dist/es/pressure.d.mts","default":"./dist/es/pressure.mjs"},"require":{"types":"./dist/cjs/pressure.d.ts","default":"./dist/cjs/pressure.js"}},"./frequency":{"import":{"types":"./dist/es/frequency.d.mts","default":"./dist/es/frequency.mjs"},"require":{"types":"./dist/cjs/frequency.d.ts","default":"./dist/cjs/frequency.js"}},"./dispersion":{"import":{"types":"./dist/es/dispersion.d.mts","default":"./dist/es/dispersion.mjs"},"require":{"types":"./dist/cjs/dispersion.d.ts","default":"./dist/cjs/dispersion.js"}},"./operations":{"import":{"types":"./dist/es/operations.d.mts","default":"./dist/es/operations.mjs"},"require":{"types":"./dist/cjs/operations.d.ts","default":"./dist/cjs/operations.js"}},"./illuminance":{"import":{"types":"./dist/es/illuminance.d.mts","default":"./dist/es/illuminance.mjs"},"require":{"types":"./dist/cjs/illuminance.d.ts","default":"./dist/cjs/illuminance.js"}},"./information":{"import":{"types":"./dist/es/information.d.mts","default":"./dist/es/information.mjs"},"require":{"types":"./dist/cjs/information.d.ts","default":"./dist/cjs/information.js"}},"./temperature":{"import":{"types":"./dist/es/temperature.d.mts","default":"./dist/es/temperature.mjs"},"require":{"types":"./dist/cjs/temperature.d.ts","default":"./dist/cjs/temperature.js"}},"./acceleration":{"import":{"types":"./dist/es/acceleration.d.mts","default":"./dist/es/acceleration.mjs"},"require":{"types":"./dist/cjs/acceleration.d.ts","default":"./dist/cjs/acceleration.js"}},"./package.json":"./package.json","./electric-charge":{"import":{"types":"./dist/es/electric-charge.d.mts","default":"./dist/es/electric-charge.mjs"},"require":{"types":"./dist/cjs/electric-charge.d.ts","default":"./dist/cjs/electric-charge.js"}},"./electric-current":{"import":{"types":"./dist/es/electric-current.d.mts","default":"./dist/es/electric-current.mjs"},"require":{"types":"./dist/cjs/electric-current.d.ts","default":"./dist/cjs/electric-current.js"}},"./concentration-mass":{"import":{"types":"./dist/es/concentration-mass.d.mts","default":"./dist/es/concentration-mass.mjs"},"require":{"types":"./dist/cjs/concentration-mass.d.ts","default":"./dist/cjs/concentration-mass.js"}},"./electric-resistance":{"import":{"types":"./dist/es/electric-resistance.d.mts","default":"./dist/es/electric-resistance.mjs"},"require":{"types":"./dist/cjs/electric-resistance.d.ts","default":"./dist/cjs/electric-resistance.js"}},"./electric-potential-difference":{"import":{"types":"./dist/es/electric-potential-difference.d.mts","default":"./dist/es/electric-potential-difference.mjs"},"require":{"types":"./dist/cjs/electric-potential-difference.d.ts","default":"./dist/cjs/electric-potential-difference.js"}}},"funding":[{"url":"https://github.com/sponsors/adam-rocska","type":"github"}],"scripts":{"test":"jest --env node","build":"bunchee","check":"pnpm eslint && pnpm attw --pack","clean":"rimraf dist"},"_npmUser":{"name":"adam-rocska","email":"rocska.adam@gmail.com"},"_resolved":"/tmp/7efe539dd25b007b897302526fc2a6e5/adam-rocska-units-and-measurement-1.0.0.tgz","_integrity":"sha512-y9979rOSwRgtwQf5DpNPGQSjL7ZKgesrhp8aDl6V9DP8ExsWyzDjt1YwyFnjkgT3qhNL3nNMQa7MLJNcAGrZig==","repository":{"url":"git+https://github.com/adam-rocska/units-and-measurement-typescript.git","type":"git"},"_npmVersion":"10.8.2","description":"A TypeScript library for handling units and measurements with support for multiple formats (tuples, objects, strings, dimensions) and operations (arithmetic, comparison). Modular, tree-shakable, and designed for safe, boilerplate-free usage.","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","pnpm":"^9.9.0","eslint":"^8.57.0","rimraf":"^6.0.1","bunchee":"^5.4.0","@swc/jest":"^0.2.36","type-fest":"^4.26.0","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.5.4","eslint-config-next":"14.2.5","@tsconfig/strictest":"^2.0.5","@arethetypeswrong/cli":"^0.16.1"},"_npmOperationalInternal":{"tmp":"tmp/units-and-measurement_1.0.0_1725736646837_0.72564123471677","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@adam-rocska/units-and-measurement","version":"1.0.1","keywords":["units","measurement","unit-conversion","numeric-calculations","quantities","unit-aware","type-safe","types","typescript","ts","js","javascript","node","nodejs","math","dimension","scaling","measurement-units","unit-operations","unit-management","arithmetic-operations","comparison","tree-shaking","modular","type predicates","value extraction","boilerplate-free","measurements library"],"author":{"url":"https://adam-rocska.github.io","name":"Ádám László Rocska"},"license":"MIT","_id":"@adam-rocska/units-and-measurement@1.0.1","maintainers":[{"name":"adam-rocska","email":"rocska.adam@gmail.com"}],"homepage":"https://github.com/adam-rocska/units-and-measurement-typescript#readme","bugs":{"url":"https://github.com/adam-rocska/units-and-measurement-typescript/issues"},"dist":{"shasum":"ad2140cfa7596f52686a28d323817e415eebc07a","tarball":"https://registry.npmjs.org/@adam-rocska/units-and-measurement/-/units-and-measurement-1.0.1.tgz","fileCount":117,"integrity":"sha512-EHcWXDNM7jrXkGvjdZY07JMJvV5lc2ESTAGf1EP+8DqrpXMB8W8ji1YHVet62ShDUlDZaJVn02Uh5qdNTsFCpg==","signatures":[{"sig":"MEUCIA/+TzagItyyuR4UxAXvZR343LsEZ1Ms0yapjZbzU072AiEA6y3Vh9+GnkbDeCn6HwKGCQigING2DjZfIj/VDP+t4y0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adam-rocska%2funits-and-measurement@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":624784},"main":"./dist/cjs/index.js","pnpm":{"overrides":{"flatted":"3.4.2"}},"types":"./dist/cjs/index.d.ts","module":"./dist/es/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"import":{"types":"./dist/es/index.d.mts","default":"./dist/es/index.mjs"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}},"./area":{"import":{"types":"./dist/es/area.d.mts","default":"./dist/es/area.mjs"},"require":{"types":"./dist/cjs/area.d.ts","default":"./dist/cjs/area.js"}},"./mass":{"import":{"types":"./dist/es/mass.d.mts","default":"./dist/es/mass.mjs"},"require":{"types":"./dist/cjs/mass.d.ts","default":"./dist/cjs/mass.js"}},"./angle":{"import":{"types":"./dist/es/angle.d.mts","default":"./dist/es/angle.mjs"},"require":{"types":"./dist/cjs/angle.d.ts","default":"./dist/cjs/angle.js"}},"./power":{"import":{"types":"./dist/es/power.d.mts","default":"./dist/es/power.mjs"},"require":{"types":"./dist/cjs/power.d.ts","default":"./dist/cjs/power.js"}},"./speed":{"import":{"types":"./dist/es/speed.d.mts","default":"./dist/es/speed.mjs"},"require":{"types":"./dist/cjs/speed.d.ts","default":"./dist/cjs/speed.js"}},"./energy":{"import":{"types":"./dist/es/energy.d.mts","default":"./dist/es/energy.mjs"},"require":{"types":"./dist/cjs/energy.d.ts","default":"./dist/cjs/energy.js"}},"./length":{"import":{"types":"./dist/es/length.d.mts","default":"./dist/es/length.mjs"},"require":{"types":"./dist/cjs/length.d.ts","default":"./dist/cjs/length.js"}},"./volume":{"import":{"types":"./dist/es/volume.d.mts","default":"./dist/es/volume.mjs"},"require":{"types":"./dist/cjs/volume.d.ts","default":"./dist/cjs/volume.js"}},"./duration":{"import":{"types":"./dist/es/duration.d.mts","default":"./dist/es/duration.mjs"},"require":{"types":"./dist/cjs/duration.d.ts","default":"./dist/cjs/duration.js"}},"./pressure":{"import":{"types":"./dist/es/pressure.d.mts","default":"./dist/es/pressure.mjs"},"require":{"types":"./dist/cjs/pressure.d.ts","default":"./dist/cjs/pressure.js"}},"./frequency":{"import":{"types":"./dist/es/frequency.d.mts","default":"./dist/es/frequency.mjs"},"require":{"types":"./dist/cjs/frequency.d.ts","default":"./dist/cjs/frequency.js"}},"./dispersion":{"import":{"types":"./dist/es/dispersion.d.mts","default":"./dist/es/dispersion.mjs"},"require":{"types":"./dist/cjs/dispersion.d.ts","default":"./dist/cjs/dispersion.js"}},"./operations":{"import":{"types":"./dist/es/operations.d.mts","default":"./dist/es/operations.mjs"},"require":{"types":"./dist/cjs/operations.d.ts","default":"./dist/cjs/operations.js"}},"./illuminance":{"import":{"types":"./dist/es/illuminance.d.mts","default":"./dist/es/illuminance.mjs"},"require":{"types":"./dist/cjs/illuminance.d.ts","default":"./dist/cjs/illuminance.js"}},"./information":{"import":{"types":"./dist/es/information.d.mts","default":"./dist/es/information.mjs"},"require":{"types":"./dist/cjs/information.d.ts","default":"./dist/cjs/information.js"}},"./temperature":{"import":{"types":"./dist/es/temperature.d.mts","default":"./dist/es/temperature.mjs"},"require":{"types":"./dist/cjs/temperature.d.ts","default":"./dist/cjs/temperature.js"}},"./acceleration":{"import":{"types":"./dist/es/acceleration.d.mts","default":"./dist/es/acceleration.mjs"},"require":{"types":"./dist/cjs/acceleration.d.ts","default":"./dist/cjs/acceleration.js"}},"./package.json":"./package.json","./electric-charge":{"import":{"types":"./dist/es/electric-charge.d.mts","default":"./dist/es/electric-charge.mjs"},"require":{"types":"./dist/cjs/electric-charge.d.ts","default":"./dist/cjs/electric-charge.js"}},"./electric-current":{"import":{"types":"./dist/es/electric-current.d.mts","default":"./dist/es/electric-current.mjs"},"require":{"types":"./dist/cjs/electric-current.d.ts","default":"./dist/cjs/electric-current.js"}},"./concentration-mass":{"import":{"types":"./dist/es/concentration-mass.d.mts","default":"./dist/es/concentration-mass.mjs"},"require":{"types":"./dist/cjs/concentration-mass.d.ts","default":"./dist/cjs/concentration-mass.js"}},"./electric-resistance":{"import":{"types":"./dist/es/electric-resistance.d.mts","default":"./dist/es/electric-resistance.mjs"},"require":{"types":"./dist/cjs/electric-resistance.d.ts","default":"./dist/cjs/electric-resistance.js"}},"./electric-potential-difference":{"import":{"types":"./dist/es/electric-potential-difference.d.mts","default":"./dist/es/electric-potential-difference.mjs"},"require":{"types":"./dist/cjs/electric-potential-difference.d.ts","default":"./dist/cjs/electric-potential-difference.js"}}},"funding":[{"url":"https://github.com/sponsors/adam-rocska","type":"github"}],"gitHead":"d3874f7af5a8b449740c7b70c541d735c8400806","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\" \"eslint.config.mjs\" \"vitest.config.mts\"","test":"vitest run","build":"bunchee","check":"pnpm lint && pnpm typecheck && npm_config_cache=.npm-cache pnpm attw --pack","clean":"rimraf dist","typecheck":"tsc --noEmit -p tsconfig.json && tsc --noEmit -p test/tsconfig.json","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7f054df4-0834-4ae7-863b-80cf29aaeb7d"}},"repository":{"url":"git+https://github.com/adam-rocska/units-and-measurement-typescript.git","type":"git"},"_npmVersion":"11.11.0","description":"A TypeScript library for handling units and measurements with support for multiple formats (tuples, objects, strings, dimensions) and operations (arithmetic, comparison). Modular, tree-shakable, and designed for safe, boilerplate-free usage.","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.3","devDependencies":{"pnpm":"^10.33.3","eslint":"^10.3.0","rimraf":"^6.1.3","vitest":"^4.1.5","bunchee":"^6.10.0","type-fest":"^5.6.0","typescript":"^6.0.3","@types/node":"^25.6.0","@tsconfig/strictest":"^2.0.8","@vitest/coverage-v8":"^4.1.5","@arethetypeswrong/cli":"^0.18.2","@typescript-eslint/parser":"^8.59.2"},"_npmOperationalInternal":{"tmp":"tmp/units-and-measurement_1.0.1_1777973206072_0.7418797017161158","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@adam-rocska/units-and-measurement","version":"1.1.0","keywords":["units","measurement","unit-conversion","numeric-calculations","quantities","unit-aware","type-safe","types","typescript","ts","js","javascript","node","nodejs","math","dimension","scaling","measurement-units","unit-operations","unit-management","arithmetic-operations","comparison","tree-shaking","modular","type predicates","value extraction","boilerplate-free","measurements library"],"author":{"url":"https://adam-rocska.github.io","name":"Ádám László Rocska"},"license":"MIT","_id":"@adam-rocska/units-and-measurement@1.1.0","maintainers":[{"name":"adam-rocska","email":"rocska.adam@gmail.com"}],"homepage":"https://github.com/adam-rocska/units-and-measurement-typescript#readme","bugs":{"url":"https://github.com/adam-rocska/units-and-measurement-typescript/issues"},"dist":{"shasum":"9d0275751ba355efc6bef4f335ce36def00966fb","tarball":"https://registry.npmjs.org/@adam-rocska/units-and-measurement/-/units-and-measurement-1.1.0.tgz","fileCount":117,"integrity":"sha512-vbgBR8A6yAmWe3vaDGJLCwXz9vT6T7Vd690PFCoOjAXsa/cA1s/nsrxUKoMLF098CjYjEngIZpuSFRiS14OBPQ==","signatures":[{"sig":"MEUCIQDmONSUkt2CkUhUb4FBqdCPAZ0pqz4DLR9KO6p+4F757AIgTf2/TbgAVbdxbGiCHttDSLiXDYiJSwvGpp/GuJrNi6A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adam-rocska%2funits-and-measurement@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":659621},"main":"./dist/cjs/index.js","types":"./dist/cjs/index.d.ts","module":"./dist/es/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"import":{"types":"./dist/es/index.d.mts","default":"./dist/es/index.mjs"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}},"./area":{"import":{"types":"./dist/es/area.d.mts","default":"./dist/es/area.mjs"},"require":{"types":"./dist/cjs/area.d.ts","default":"./dist/cjs/area.js"}},"./mass":{"import":{"types":"./dist/es/mass.d.mts","default":"./dist/es/mass.mjs"},"require":{"types":"./dist/cjs/mass.d.ts","default":"./dist/cjs/mass.js"}},"./angle":{"import":{"types":"./dist/es/angle.d.mts","default":"./dist/es/angle.mjs"},"require":{"types":"./dist/cjs/angle.d.ts","default":"./dist/cjs/angle.js"}},"./power":{"import":{"types":"./dist/es/power.d.mts","default":"./dist/es/power.mjs"},"require":{"types":"./dist/cjs/power.d.ts","default":"./dist/cjs/power.js"}},"./speed":{"import":{"types":"./dist/es/speed.d.mts","default":"./dist/es/speed.mjs"},"require":{"types":"./dist/cjs/speed.d.ts","default":"./dist/cjs/speed.js"}},"./energy":{"import":{"types":"./dist/es/energy.d.mts","default":"./dist/es/energy.mjs"},"require":{"types":"./dist/cjs/energy.d.ts","default":"./dist/cjs/energy.js"}},"./length":{"import":{"types":"./dist/es/length.d.mts","default":"./dist/es/length.mjs"},"require":{"types":"./dist/cjs/length.d.ts","default":"./dist/cjs/length.js"}},"./volume":{"import":{"types":"./dist/es/volume.d.mts","default":"./dist/es/volume.mjs"},"require":{"types":"./dist/cjs/volume.d.ts","default":"./dist/cjs/volume.js"}},"./duration":{"import":{"types":"./dist/es/duration.d.mts","default":"./dist/es/duration.mjs"},"require":{"types":"./dist/cjs/duration.d.ts","default":"./dist/cjs/duration.js"}},"./pressure":{"import":{"types":"./dist/es/pressure.d.mts","default":"./dist/es/pressure.mjs"},"require":{"types":"./dist/cjs/pressure.d.ts","default":"./dist/cjs/pressure.js"}},"./frequency":{"import":{"types":"./dist/es/frequency.d.mts","default":"./dist/es/frequency.mjs"},"require":{"types":"./dist/cjs/frequency.d.ts","default":"./dist/cjs/frequency.js"}},"./dispersion":{"import":{"types":"./dist/es/dispersion.d.mts","default":"./dist/es/dispersion.mjs"},"require":{"types":"./dist/cjs/dispersion.d.ts","default":"./dist/cjs/dispersion.js"}},"./operations":{"import":{"types":"./dist/es/operations.d.mts","default":"./dist/es/operations.mjs"},"require":{"types":"./dist/cjs/operations.d.ts","default":"./dist/cjs/operations.js"}},"./illuminance":{"import":{"types":"./dist/es/illuminance.d.mts","default":"./dist/es/illuminance.mjs"},"require":{"types":"./dist/cjs/illuminance.d.ts","default":"./dist/cjs/illuminance.js"}},"./information":{"import":{"types":"./dist/es/information.d.mts","default":"./dist/es/information.mjs"},"require":{"types":"./dist/cjs/information.d.ts","default":"./dist/cjs/information.js"}},"./temperature":{"import":{"types":"./dist/es/temperature.d.mts","default":"./dist/es/temperature.mjs"},"require":{"types":"./dist/cjs/temperature.d.ts","default":"./dist/cjs/temperature.js"}},"./acceleration":{"import":{"types":"./dist/es/acceleration.d.mts","default":"./dist/es/acceleration.mjs"},"require":{"types":"./dist/cjs/acceleration.d.ts","default":"./dist/cjs/acceleration.js"}},"./package.json":"./package.json","./electric-charge":{"import":{"types":"./dist/es/electric-charge.d.mts","default":"./dist/es/electric-charge.mjs"},"require":{"types":"./dist/cjs/electric-charge.d.ts","default":"./dist/cjs/electric-charge.js"}},"./electric-current":{"import":{"types":"./dist/es/electric-current.d.mts","default":"./dist/es/electric-current.mjs"},"require":{"types":"./dist/cjs/electric-current.d.ts","default":"./dist/cjs/electric-current.js"}},"./concentration-mass":{"import":{"types":"./dist/es/concentration-mass.d.mts","default":"./dist/es/concentration-mass.mjs"},"require":{"types":"./dist/cjs/concentration-mass.d.ts","default":"./dist/cjs/concentration-mass.js"}},"./electric-resistance":{"import":{"types":"./dist/es/electric-resistance.d.mts","default":"./dist/es/electric-resistance.mjs"},"require":{"types":"./dist/cjs/electric-resistance.d.ts","default":"./dist/cjs/electric-resistance.js"}},"./electric-potential-difference":{"import":{"types":"./dist/es/electric-potential-difference.d.mts","default":"./dist/es/electric-potential-difference.mjs"},"require":{"types":"./dist/cjs/electric-potential-difference.d.ts","default":"./dist/cjs/electric-potential-difference.js"}}},"funding":[{"url":"https://github.com/sponsors/adam-rocska","type":"github"}],"gitHead":"92255133d2644fe205f5e9622f1bd4dca16fb01b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\" \"eslint.config.mjs\" \"vitest.config.mts\"","test":"vitest run","build":"bunchee","check":"pnpm lint && pnpm typecheck && npm_config_cache=.npm-cache pnpm attw --pack","clean":"rimraf dist","typecheck":"tsc --noEmit -p tsconfig.json && tsc --noEmit -p test/tsconfig.json","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7f054df4-0834-4ae7-863b-80cf29aaeb7d"}},"repository":{"url":"git+https://github.com/adam-rocska/units-and-measurement-typescript.git","type":"git"},"_npmVersion":"11.11.0","description":"A TypeScript library for handling units and measurements with support for multiple formats (tuples, objects, strings, dimensions) and operations (arithmetic, comparison). Modular, tree-shakable, and designed for safe, boilerplate-free usage.","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.0.8","devDependencies":{"pnpm":"^11.0.8","eslint":"^10.3.0","rimraf":"^6.1.3","vitest":"^4.1.5","bunchee":"^6.10.0","type-fest":"^5.6.0","typescript":"^6.0.3","@types/node":"^25.6.0","@tsconfig/strictest":"^2.0.8","@vitest/coverage-v8":"^4.1.5","@arethetypeswrong/cli":"^0.18.2","@typescript-eslint/parser":"^8.59.2"},"_npmOperationalInternal":{"tmp":"tmp/units-and-measurement_1.1.0_1778250006374_0.6634056416562002","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@adam-rocska/units-and-measurement","version":"1.2.0","description":"A TypeScript library for handling units and measurements with support for multiple formats (tuples, objects, strings, dimensions) and operations (arithmetic, comparison, ratios). Modular, tree-shakable, and designed for safe, boilerplate-free usage.","keywords":["units","measurement","unit-conversion","numeric-calculations","quantities","unit-aware","type-safe","types","typescript","ts","js","javascript","node","nodejs","math","dimension","scaling","measurement-units","unit-operations","unit-management","arithmetic-operations","comparison","tree-shaking","modular","type predicates","value extraction","boilerplate-free","measurements library"],"author":{"name":"Ádám László Rocska","url":"https://adam-rocska.github.io"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/adam-rocska/units-and-measurement-typescript.git"},"bugs":{"url":"https://github.com/adam-rocska/units-and-measurement-typescript/issues"},"funding":[{"type":"github","url":"https://github.com/sponsors/adam-rocska"}],"engines":{"node":">=20.0.0"},"publishConfig":{"access":"public"},"packageManager":"pnpm@11.0.8","scripts":{"clean":"rimraf dist","build":"bunchee","lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\" \"eslint.config.mjs\" \"vitest.config.mts\"","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","typecheck":"tsc --noEmit -p tsconfig.json && tsc --noEmit -p test/tsconfig.json","check":"pnpm lint && pnpm typecheck && npm_config_cache=.npm-cache pnpm attw --pack"},"devDependencies":{"@arethetypeswrong/cli":"^0.18.2","@tsconfig/strictest":"^2.0.8","@types/node":"^25.6.0","@typescript-eslint/parser":"^8.59.2","@vitest/coverage-v8":"^4.1.5","bunchee":"^6.10.0","eslint":"^10.3.0","pnpm":"^11.0.8","rimraf":"^6.1.3","type-fest":"^5.6.0","typescript":"^6.0.3","vitest":"^4.1.5"},"main":"./dist/cjs/index.js","module":"./dist/es/index.mjs","types":"./dist/cjs/index.d.ts","exports":{"./package.json":"./package.json",".":{"import":{"types":"./dist/es/index.d.mts","default":"./dist/es/index.mjs"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}},"./operations":{"import":{"types":"./dist/es/operations.d.mts","default":"./dist/es/operations.mjs"},"require":{"types":"./dist/cjs/operations.d.ts","default":"./dist/cjs/operations.js"}},"./length":{"import":{"types":"./dist/es/length.d.mts","default":"./dist/es/length.mjs"},"require":{"types":"./dist/cjs/length.d.ts","default":"./dist/cjs/length.js"}},"./volume":{"import":{"types":"./dist/es/volume.d.mts","default":"./dist/es/volume.mjs"},"require":{"types":"./dist/cjs/volume.d.ts","default":"./dist/cjs/volume.js"}},"./angle":{"import":{"types":"./dist/es/angle.d.mts","default":"./dist/es/angle.mjs"},"require":{"types":"./dist/cjs/angle.d.ts","default":"./dist/cjs/angle.js"}},"./area":{"import":{"types":"./dist/es/area.d.mts","default":"./dist/es/area.mjs"},"require":{"types":"./dist/cjs/area.d.ts","default":"./dist/cjs/area.js"}},"./mass":{"import":{"types":"./dist/es/mass.d.mts","default":"./dist/es/mass.mjs"},"require":{"types":"./dist/cjs/mass.d.ts","default":"./dist/cjs/mass.js"}},"./pressure":{"import":{"types":"./dist/es/pressure.d.mts","default":"./dist/es/pressure.mjs"},"require":{"types":"./dist/cjs/pressure.d.ts","default":"./dist/cjs/pressure.js"}},"./acceleration":{"import":{"types":"./dist/es/acceleration.d.mts","default":"./dist/es/acceleration.mjs"},"require":{"types":"./dist/cjs/acceleration.d.ts","default":"./dist/cjs/acceleration.js"}},"./duration":{"import":{"types":"./dist/es/duration.d.mts","default":"./dist/es/duration.mjs"},"require":{"types":"./dist/cjs/duration.d.ts","default":"./dist/cjs/duration.js"}},"./frequency":{"import":{"types":"./dist/es/frequency.d.mts","default":"./dist/es/frequency.mjs"},"require":{"types":"./dist/cjs/frequency.d.ts","default":"./dist/cjs/frequency.js"}},"./speed":{"import":{"types":"./dist/es/speed.d.mts","default":"./dist/es/speed.mjs"},"require":{"types":"./dist/cjs/speed.d.ts","default":"./dist/cjs/speed.js"}},"./energy":{"import":{"types":"./dist/es/energy.d.mts","default":"./dist/es/energy.mjs"},"require":{"types":"./dist/cjs/energy.d.ts","default":"./dist/cjs/energy.js"}},"./power":{"import":{"types":"./dist/es/power.d.mts","default":"./dist/es/power.mjs"},"require":{"types":"./dist/cjs/power.d.ts","default":"./dist/cjs/power.js"}},"./temperature":{"import":{"types":"./dist/es/temperature.d.mts","default":"./dist/es/temperature.mjs"},"require":{"types":"./dist/cjs/temperature.d.ts","default":"./dist/cjs/temperature.js"}},"./illuminance":{"import":{"types":"./dist/es/illuminance.d.mts","default":"./dist/es/illuminance.mjs"},"require":{"types":"./dist/cjs/illuminance.d.ts","default":"./dist/cjs/illuminance.js"}},"./electric-charge":{"import":{"types":"./dist/es/electric-charge.d.mts","default":"./dist/es/electric-charge.mjs"},"require":{"types":"./dist/cjs/electric-charge.d.ts","default":"./dist/cjs/electric-charge.js"}},"./electric-current":{"import":{"types":"./dist/es/electric-current.d.mts","default":"./dist/es/electric-current.mjs"},"require":{"types":"./dist/cjs/electric-current.d.ts","default":"./dist/cjs/electric-current.js"}},"./electric-potential-difference":{"import":{"types":"./dist/es/electric-potential-difference.d.mts","default":"./dist/es/electric-potential-difference.mjs"},"require":{"types":"./dist/cjs/electric-potential-difference.d.ts","default":"./dist/cjs/electric-potential-difference.js"}},"./electric-resistance":{"import":{"types":"./dist/es/electric-resistance.d.mts","default":"./dist/es/electric-resistance.mjs"},"require":{"types":"./dist/cjs/electric-resistance.d.ts","default":"./dist/cjs/electric-resistance.js"}},"./concentration-mass":{"import":{"types":"./dist/es/concentration-mass.d.mts","default":"./dist/es/concentration-mass.mjs"},"require":{"types":"./dist/cjs/concentration-mass.d.ts","default":"./dist/cjs/concentration-mass.js"}},"./dispersion":{"import":{"types":"./dist/es/dispersion.d.mts","default":"./dist/es/dispersion.mjs"},"require":{"types":"./dist/cjs/dispersion.d.ts","default":"./dist/cjs/dispersion.js"}},"./information":{"import":{"types":"./dist/es/information.d.mts","default":"./dist/es/information.mjs"},"require":{"types":"./dist/cjs/information.d.ts","default":"./dist/cjs/information.js"}}},"gitHead":"cb27fe5fb296f4e821762e1a1cc3dc90b7a5b641","_id":"@adam-rocska/units-and-measurement@1.2.0","homepage":"https://github.com/adam-rocska/units-and-measurement-typescript#readme","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-mBnZ8/STbztVec+Mz9DH932z0gny52SebtSJ/y3n+IVtuF7KqbtQ3t1u1lpFSkLFU1msaNGzFgqsW7Emj0lrXA==","shasum":"b9e1b8caf93880c44fdad9dcdf8db850335935f7","tarball":"https://registry.npmjs.org/@adam-rocska/units-and-measurement/-/units-and-measurement-1.2.0.tgz","fileCount":117,"unpackedSize":662167,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adam-rocska%2funits-and-measurement@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCFg0mUSB6JrXkPXpoP1TdLRQJxveK7E1tBMD38DtuN2AIhAKZDqtj55cMM2e0Of9vyFzQEz0cFPTl6r411kone9Opi"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7f054df4-0834-4ae7-863b-80cf29aaeb7d"}},"directories":{},"maintainers":[{"name":"adam-rocska","email":"rocska.adam@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/units-and-measurement_1.2.0_1778251910810_0.4999929741319291"},"_hasShrinkwrap":false}},"time":{"created":"2024-09-07T19:17:26.693Z","modified":"2026-05-08T14:51:51.320Z","1.0.0":"2024-09-07T19:17:27.000Z","1.0.1":"2026-05-05T09:26:46.223Z","1.1.0":"2026-05-08T14:20:06.554Z","1.2.0":"2026-05-08T14:51:50.970Z"},"bugs":{"url":"https://github.com/adam-rocska/units-and-measurement-typescript/issues"},"author":{"name":"Ádám László Rocska","url":"https://adam-rocska.github.io"},"license":"MIT","homepage":"https://github.com/adam-rocska/units-and-measurement-typescript#readme","keywords":["units","measurement","unit-conversion","numeric-calculations","quantities","unit-aware","type-safe","types","typescript","ts","js","javascript","node","nodejs","math","dimension","scaling","measurement-units","unit-operations","unit-management","arithmetic-operations","comparison","tree-shaking","modular","type predicates","value extraction","boilerplate-free","measurements library"],"repository":{"type":"git","url":"git+https://github.com/adam-rocska/units-and-measurement-typescript.git"},"description":"A TypeScript library for handling units and measurements with support for multiple formats (tuples, objects, strings, dimensions) and operations (arithmetic, comparison, ratios). Modular, tree-shakable, and designed for safe, boilerplate-free usage.","maintainers":[{"name":"adam-rocska","email":"rocska.adam@gmail.com"}],"readme":"# TypeScript Units and Measurement\n\n[![NPM Version](https://img.shields.io/npm/v/@adam-rocska/units-and-measurement.svg)](https://www.npmjs.com/package/@adam-rocska/units-and-measurement)\n[![License](https://img.shields.io/npm/l/@adam-rocska/units-and-measurement)](https://github.com/adam-rocska/units-and-measurement-typescript/blob/master/LICENSE)\n\n`@adam-rocska/units-and-measurement` is a TypeScript library for\nrepresenting measurements, converting between known units, and comparing or\ncombining compatible measurements without repeating conversion code.\n\nIt supports four measurement shapes:\n\n- String measurements such as `\"15px\"`.\n- Tuple measurements such as `[15, \"px\"]`.\n- Object measurements such as `{ value: 15, unit: \"px\" }`.\n- Dimension measurements such as `inches(11)`, with same-dimension conversion\n  properties like `.cm`, `.m`, and `.ft`.\n\n## Installation\n\n```bash\npnpm add @adam-rocska/units-and-measurement\n```\n\n```bash\nnpm install @adam-rocska/units-and-measurement\n```\n\nThe package targets Node.js 20 and newer and ships TypeScript declarations.\n\n## Quick Start\n\n```typescript\nimport {dimension} from \"@adam-rocska/units-and-measurement\";\nimport {add, areEqual} from \"@adam-rocska/units-and-measurement/operations\";\nimport {\n  centimeters,\n  inches,\n  meters,\n  type Length,\n} from \"@adam-rocska/units-and-measurement/length\";\n\nconst pageWidth: Length = inches(8.5);\nconst margin = centimeters(2);\n\nconsole.log(pageWidth.cm.value);\nconsole.log(pageWidth.cm.unit);\n\nconst usableWidth = add(pageWidth, margin);\n\nif (usableWidth !== undefined && dimension.isMeasurement(usableWidth)) {\n  console.log(dimension.toFixed(usableWidth.cm, 2).value);\n}\n\nif (areEqual(meters(1), centimeters(100))) {\n  console.log(\"Same length.\");\n}\n```\n\n## Package Entry Points\n\nUse the root package for generic measurement helpers and representation\nnamespaces:\n\n```typescript\nimport {\n  object,\n  string,\n  tuple,\n  unit,\n  value,\n} from \"@adam-rocska/units-and-measurement\";\n\nconst asString = string.measurement(12, \"px\");\nconst asTuple = tuple.measurement(12, \"px\");\nconst asObject = object.measurement(12, \"px\");\n\nconsole.log(value(asString), unit(asTuple), asObject.value);\n```\n\nUse the operations submodule for arithmetic, comparison, proportionality, and\ncommon-unit conversion:\n\n```typescript\nimport {add, greaterThan, proportion, toCommonUnit} from \"@adam-rocska/units-and-measurement/operations\";\nimport {centimeters, meters} from \"@adam-rocska/units-and-measurement/length\";\n\nconst total = add(meters(2), centimeters(50));\nconst normalized = toCommonUnit(meters(2), centimeters(50));\nconst ratio = proportion(meters(2), centimeters(50));\n\nconsole.log(total);\nconsole.log(normalized);\nconsole.log(ratio);\nconsole.log(greaterThan(meters(2), centimeters(50)));\n```\n\nUse dimension submodules when you want ready-made unit conversion factories:\n\n```typescript\nimport {kilometers, meters} from \"@adam-rocska/units-and-measurement/length\";\nimport {celsius, fahrenheit} from \"@adam-rocska/units-and-measurement/temperature\";\n\nconsole.log(kilometers(1).m.value);\nconsole.log(meters(1609.34).mi.value);\nconsole.log(celsius(0).K.value);\nconsole.log(fahrenheit(32)[\"°C\"].value);\n```\n\n## Built-In Dimensions\n\nEach dimension submodule exports:\n\n- A symbol union type, such as `LengthSymbol`.\n- A symbol list, such as `lengthSymbols`.\n- A symbol predicate, such as `isLengthSymbol`.\n- A dimension measurement type, such as `Length`.\n- The dimension object, such as `length`.\n- Named factory aliases, such as `meters`, `inches`, and `centimeters`.\n\nAvailable dimension entry points:\n\n| Import path suffix | Dimension object | Measurement type |\n| ------------------ | ---------------- | ---------------- |\n| `/acceleration` | `acceleration` | `Acceleration` |\n| `/angle` | `angle` | `Angle` |\n| `/area` | `area` | `Area` |\n| `/concentration-mass` | `concentrationMass` | `ConcentrationMass` |\n| `/dispersion` | `dispersion` | `Dispersion` |\n| `/duration` | `duration` | `Duration` |\n| `/electric-charge` | `electricCharge` | `ElectricCharge` |\n| `/electric-current` | `electricCurrent` | `ElectricCurrent` |\n| `/electric-potential-difference` | `electricPotentialDifference` | `ElectricPotentialDifference` |\n| `/electric-resistance` | `electricResistance` | `ElectricResistance` |\n| `/energy` | `energy` | `Energy` |\n| `/frequency` | `frequency` | `Frequency` |\n| `/illuminance` | `illuminance` | `Illuminance` |\n| `/information` | `information` | `Information` |\n| `/length` | `length` | `Length` |\n| `/mass` | `mass` | `Mass` |\n| `/power` | `power` | `Power` |\n| `/pressure` | `pressure` | `Pressure` |\n| `/speed` | `speed` | `Speed` |\n| `/temperature` | `temperature` | `Temperature` |\n| `/volume` | `volume` | `Volume` |\n\nMore detail is available in [docs/dimensions.md](docs/dimensions.md).\n\n## Custom Dimensions\n\nCustom dimensions can be created from conversion rules. The conversion base is\nthe unit whose coefficient is `1`.\n\n```typescript\nimport {dimension as d} from \"@adam-rocska/units-and-measurement\";\n\ntype CurrencySymbol = \"USD\" | \"cent\";\n\nconst currency = d.dimension<CurrencySymbol>({\n  USD: d.linearConversion(1),\n  cent: d.linearConversion(0.01),\n});\n\nconst invoiceTotal = currency.USD(19.99);\n\nconsole.log(invoiceTotal.cent.value);\n```\n\n## Documentation\n\n- [Usage guide](docs/usage.md)\n- [Dimension reference](docs/dimensions.md)\n- [Development guide](docs/development.md)\n- [Contribution guide](CONTRIBUTING.md)\n\n## Development\n\n```bash\npnpm install\npnpm test\npnpm typecheck\npnpm lint\npnpm check\npnpm build\n```\n\n`pnpm check` runs linting, TypeScript checks, and package export validation.\n","readmeFilename":"README.md"}