{"_id":"@dricosr/iforge-edp-values","_rev":"8-7cf353627d9821d41fc7fd4d7bbdfb2b","name":"@dricosr/iforge-edp-values","dist-tags":{"latest":"0.4.7"},"versions":{"0.3.2":{"name":"@dricosr/iforge-edp-values","version":"0.3.2","keywords":["iforge-edp","units","engineering","values","cad","mathjs","esm"],"author":{"name":"Adriano Ribeiro"},"license":"MIT","_id":"@dricosr/iforge-edp-values@0.3.2","maintainers":[{"name":"dricosr","email":"dricosr@hotmail.com"}],"homepage":"https://github.com/Dricosr/iforge-edp-values#readme","bugs":{"url":"https://github.com/Dricosr/iforge-edp-values/issues"},"dist":{"shasum":"3f6927159bbb6cb0f864e1fdd363fd221d778212","tarball":"https://registry.npmjs.org/@dricosr/iforge-edp-values/-/iforge-edp-values-0.3.2.tgz","fileCount":70,"integrity":"sha512-JqY2wcPdkbIJybSoU7Jz6Cs01tGuY/eRErnn23FTpt8Xj6kqtlusRWDCoJj+cKxdaT6icqGPGcQtWHVOzA8sfQ==","signatures":[{"sig":"MEUCIDkaCAU7ww3wXCE6efDmjR/d9brZX+EFFxU65at+SogWAiEAmW4Sw5j++0nWT0XeJ9GDhxY9zurzphWdkduXWTE1vs4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5564016},"main":"./dist/index.cjs.js","type":"module","module":"./dist/index.esm.js","browser":"./dist/index.iife.min.js","engines":{"node":">=24.0.0"},"exports":{".":{"import":"./dist/index.esm.js","default":"./dist/index.esm.js","require":"./dist/index.cjs.js"}},"gitHead":"f1f31924c87916f07c4aabceeb58b329a460695b","scripts":{"test":"vitest run","build":"rollup -c","test:watch":"vitest","build:watch":"rollup -c --watch","test:visual":"vitest run tests/visual","test:coverage":"vitest run --coverage","prepublishOnly":"npm test && npm run build","check:customizations":"node ./scripts/check-customizations.mjs"},"_npmUser":{"name":"dricosr","email":"dricosr@hotmail.com"},"repository":{"url":"git+https://github.com/Dricosr/iforge-edp-values.git","type":"git"},"_npmVersion":"11.0.0","description":"Structured engineering values with type, quantity, unit conversion, internal normalization and UI formatting for iForge EDP.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"mathjs":"15.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"4.60.2","vitest":"4.1.5","@vitest/coverage-v8":"4.1.5","@rollup/plugin-terser":"1.0.0","@rollup/plugin-commonjs":"29.0.2","@rollup/plugin-node-resolve":"16.0.3"},"peerDependencies":{"mathjs":">=15.0.0"},"peerDependenciesMeta":{"mathjs":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/iforge-edp-values_0.3.2_1777401008270_0.897435269859961","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@dricosr/iforge-edp-values","version":"0.4.1","keywords":["iforge-edp","units","engineering","values","cad","mathjs","esm"],"author":{"name":"Adriano Ribeiro"},"license":"MIT","_id":"@dricosr/iforge-edp-values@0.4.1","maintainers":[{"name":"dricosr","email":"dricosr@hotmail.com"}],"homepage":"https://github.com/Dricosr/iforge-edp-values#readme","bugs":{"url":"https://github.com/Dricosr/iforge-edp-values/issues"},"dist":{"shasum":"4ec28ada77aac9094311bde7dd87e297f6cfa95b","tarball":"https://registry.npmjs.org/@dricosr/iforge-edp-values/-/iforge-edp-values-0.4.1.tgz","fileCount":95,"integrity":"sha512-gqL8oyIYLAQRbE8v8PtngNZabJINK+EjG3wPHZOEJ4RpV0RIiZVOXsospK271JMATj5coPJp3/WZUF4g+mpauQ==","signatures":[{"sig":"MEUCIQDgGX87AxurAqo0llxVHVZvkyWDbiNaqkTj8HNhU2lA3AIgKyDOVjj3peMS/cfPZgohCtb6U9Iy8L4N0JzsfN1SQ6s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5838196},"main":"./dist/index.cjs.js","type":"module","module":"./dist/index.esm.js","browser":"./dist/index.iife.min.js","engines":{"node":">=24.0.0"},"exports":{".":{"import":"./dist/index.esm.js","default":"./dist/index.esm.js","require":"./dist/index.cjs.js"}},"gitHead":"d348d25798a0085d7a4663a8fb80f62d631d8617","scripts":{"test":"vitest run","build":"rollup -c","test:watch":"vitest","build:watch":"rollup -c --watch","test:visual":"vitest run tests/visual","test:coverage":"vitest run --coverage","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"dricosr","email":"dricosr@hotmail.com"},"repository":{"url":"git+https://github.com/Dricosr/iforge-edp-values.git","type":"git"},"_npmVersion":"11.0.0","description":"Structured engineering values with type, quantity, unit conversion, internal normalization and UI formatting for iForge EDP.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"mathjs":"15.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"4.60.2","vitest":"4.1.5","@vitest/coverage-v8":"4.1.5","@rollup/plugin-terser":"1.0.0","@rollup/plugin-commonjs":"29.0.2","@rollup/plugin-node-resolve":"16.0.3"},"peerDependencies":{"mathjs":">=15.0.0"},"peerDependenciesMeta":{"mathjs":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/iforge-edp-values_0.4.1_1777596459856_0.5426036017372142","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@dricosr/iforge-edp-values","version":"0.4.2","keywords":["iforge-edp","units","engineering","values","cad","mathjs","esm"],"author":{"name":"Adriano Ribeiro"},"license":"MIT","_id":"@dricosr/iforge-edp-values@0.4.2","maintainers":[{"name":"dricosr","email":"dricosr@hotmail.com"}],"homepage":"https://github.com/Dricosr/iforge-edp-values#readme","bugs":{"url":"https://github.com/Dricosr/iforge-edp-values/issues"},"dist":{"shasum":"77596f7c436c0819c3dcf9f7b9a469023da13529","tarball":"https://registry.npmjs.org/@dricosr/iforge-edp-values/-/iforge-edp-values-0.4.2.tgz","fileCount":95,"integrity":"sha512-7moDfnAEn+D6GrNcfr4iwFNK+WuzqnYe0hi5m2UAfQ4sUvzyAJ50hg+sstTDWUiJSbmvGxuxepEVegTv7td41w==","signatures":[{"sig":"MEQCIEuMznczd31Z7KhBG+rCHxeZ95jnW6or8s7WNxF1mHJUAiB/XlGuG1W23mZViOCo0z7TqpeGTD+f2f3dIcNb5mNFjA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5837844},"main":"./dist/index.cjs.js","type":"module","module":"./dist/index.esm.js","browser":"./dist/index.iife.min.js","engines":{"node":">=24.0.0"},"exports":{".":{"import":"./dist/index.esm.js","default":"./dist/index.esm.js","require":"./dist/index.cjs.js"}},"gitHead":"f4dc94303c48229fdfaf802e4b6eb0f092bb31d8","scripts":{"test":"vitest run","build":"rollup -c","test:watch":"vitest","build:watch":"rollup -c --watch","test:visual":"vitest run tests/visual","test:coverage":"vitest run --coverage","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"dricosr","email":"dricosr@hotmail.com"},"repository":{"url":"git+https://github.com/Dricosr/iforge-edp-values.git","type":"git"},"_npmVersion":"11.0.0","description":"Structured engineering values with type, quantity, unit conversion, internal normalization and UI formatting for iForge EDP.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"mathjs":"15.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"4.60.2","vitest":"4.1.5","@vitest/coverage-v8":"4.1.5","@rollup/plugin-terser":"1.0.0","@rollup/plugin-commonjs":"29.0.2","@rollup/plugin-node-resolve":"16.0.3"},"peerDependencies":{"mathjs":">=15.0.0"},"peerDependenciesMeta":{"mathjs":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/iforge-edp-values_0.4.2_1777602149044_0.16690948986219034","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@dricosr/iforge-edp-values","version":"0.4.3","keywords":["iforge-edp","units","engineering","values","cad","mathjs","esm"],"author":{"name":"Adriano Ribeiro"},"license":"MIT","_id":"@dricosr/iforge-edp-values@0.4.3","maintainers":[{"name":"dricosr","email":"dricosr@hotmail.com"}],"homepage":"https://github.com/Dricosr/iforge-edp-values#readme","bugs":{"url":"https://github.com/Dricosr/iforge-edp-values/issues"},"dist":{"shasum":"8db3581de0f3cc1fabfc63263124a657ac6efaa9","tarball":"https://registry.npmjs.org/@dricosr/iforge-edp-values/-/iforge-edp-values-0.4.3.tgz","fileCount":95,"integrity":"sha512-cgf3Fz5fu29Gw51gluy4YGAjHpyqaQm0feyy+iN/n5gb/YvRQwf2+YB+V14dZ2DbpyHRhMCtjCFN10ieADK11Q==","signatures":[{"sig":"MEUCICDETOXUaj/ryUx6yUeGeYA8l1DrJyMsK1jW7fbRg5ZpAiEAqfaNTVQc4jhVMrjt4jiNY+kpfPCXW7w4cbCfEGVSvyc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5838394},"main":"./dist/index.cjs.js","type":"module","module":"./dist/index.esm.js","browser":"./dist/index.iife.min.js","engines":{"node":">=24.0.0"},"exports":{".":{"import":"./dist/index.esm.js","default":"./dist/index.esm.js","require":"./dist/index.cjs.js"}},"gitHead":"efd4d47eeb5ee95b7d096a4fc6607df64ba4539e","scripts":{"test":"vitest run","build":"rollup -c","test:watch":"vitest","build:watch":"rollup -c --watch","test:visual":"vitest run tests/visual","test:coverage":"vitest run --coverage","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"dricosr","email":"dricosr@hotmail.com"},"repository":{"url":"git+https://github.com/Dricosr/iforge-edp-values.git","type":"git"},"_npmVersion":"11.0.0","description":"Structured engineering values with type, quantity, unit conversion, internal normalization and UI formatting for iForge EDP.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"mathjs":"15.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"4.60.2","vitest":"4.1.5","@vitest/coverage-v8":"4.1.5","@rollup/plugin-terser":"1.0.0","@rollup/plugin-commonjs":"29.0.2","@rollup/plugin-node-resolve":"16.0.3"},"peerDependencies":{"mathjs":">=15.0.0"},"peerDependenciesMeta":{"mathjs":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/iforge-edp-values_0.4.3_1777610180600_0.5286331386176562","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@dricosr/iforge-edp-values","version":"0.4.4","keywords":["iforge-edp","units","engineering","values","cad","mathjs","esm"],"author":{"name":"Adriano Ribeiro"},"license":"MIT","_id":"@dricosr/iforge-edp-values@0.4.4","maintainers":[{"name":"dricosr","email":"dricosr@hotmail.com"}],"homepage":"https://github.com/Dricosr/iforge-edp-values#readme","bugs":{"url":"https://github.com/Dricosr/iforge-edp-values/issues"},"dist":{"shasum":"63f2919b6a0e09c55b64e44e4000a2760af64148","tarball":"https://registry.npmjs.org/@dricosr/iforge-edp-values/-/iforge-edp-values-0.4.4.tgz","fileCount":97,"integrity":"sha512-8jhdyrwvXFKh4F4UvJlYIzkbGAdyRCyOoz3++6LRY26Lj0sIa+C234ihAy54GggAm7hRfJVmJ8kJeDS0HlC/AQ==","signatures":[{"sig":"MEQCIBNp6TuI/lXSi92GsAfcAVs2IRy2kLJ1OjdyRy0r+7IiAiB7bWxLJ9oKjeCQJRC4cfVKzrc11QSJzRZjfL+cP7Ts0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5833966},"main":"./dist/index.cjs.js","type":"module","module":"./dist/index.esm.js","browser":"./dist/index.iife.min.js","engines":{"node":">=24.0.0"},"exports":{".":{"import":"./dist/index.esm.js","default":"./dist/index.esm.js","require":"./dist/index.cjs.js"}},"gitHead":"f3e72c7a2aa9f0c390cbd68e5d62b3565b062a92","scripts":{"test":"vitest run","build":"rollup -c","test:watch":"vitest","build:watch":"rollup -c --watch","test:visual":"vitest run tests/visual","test:coverage":"vitest run --coverage","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"dricosr","email":"dricosr@hotmail.com"},"repository":{"url":"git+https://github.com/Dricosr/iforge-edp-values.git","type":"git"},"_npmVersion":"11.0.0","description":"Structured engineering values with type, quantity, unit conversion, internal normalization and UI formatting for iForge EDP.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"mathjs":"15.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"4.60.2","vitest":"4.1.5","@vitest/coverage-v8":"4.1.5","@rollup/plugin-terser":"1.0.0","@rollup/plugin-commonjs":"29.0.2","@rollup/plugin-node-resolve":"16.0.3"},"peerDependencies":{"mathjs":">=15.0.0"},"peerDependenciesMeta":{"mathjs":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/iforge-edp-values_0.4.4_1777613133925_0.7559854055008064","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@dricosr/iforge-edp-values","version":"0.4.5","keywords":["iforge-edp","units","engineering","values","cad","mathjs","esm"],"author":{"name":"Adriano Ribeiro"},"license":"MIT","_id":"@dricosr/iforge-edp-values@0.4.5","maintainers":[{"name":"dricosr","email":"dricosr@hotmail.com"}],"homepage":"https://github.com/Dricosr/iforge-edp-values#readme","bugs":{"url":"https://github.com/Dricosr/iforge-edp-values/issues"},"dist":{"shasum":"b9397f0ff1ee7595f1e33461a8fcd51f75bd30c2","tarball":"https://registry.npmjs.org/@dricosr/iforge-edp-values/-/iforge-edp-values-0.4.5.tgz","fileCount":97,"integrity":"sha512-sqc6c8RvXDPrdOTiJNGyEr0H/IdybKwRG9pzz69v2a4rXCtq639IP0J9pQZm25ES8Na4QKvkKMDcdPlKNj1e0Q==","signatures":[{"sig":"MEUCIQCb/hU3gQuTPWtvi74Fe5qLFTBL6qAJa3GZIjGf+doK6QIgAXAMhAXrWM6hBGhdlTJ+9pXRwVxXeUf4bFAWYNw3qsg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5833943},"main":"./dist/index.cjs.js","type":"module","module":"./dist/index.esm.js","browser":"./dist/index.iife.min.js","engines":{"node":">=24.0.0"},"exports":{".":{"import":"./dist/index.esm.js","default":"./dist/index.esm.js","require":"./dist/index.cjs.js"}},"gitHead":"aba6f0b9a187e4a18cc5363c722c87e0d263eee0","scripts":{"test":"vitest run","build":"rollup -c","test:watch":"vitest","build:watch":"rollup -c --watch","test:visual":"vitest run tests/visual","test:coverage":"vitest run --coverage","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"dricosr","email":"dricosr@hotmail.com"},"repository":{"url":"git+https://github.com/Dricosr/iforge-edp-values.git","type":"git"},"_npmVersion":"11.0.0","description":"Structured engineering values with type, quantity, unit conversion, internal normalization and UI formatting for iForge EDP.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"mathjs":"15.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"4.60.2","vitest":"4.1.5","@vitest/coverage-v8":"4.1.5","@rollup/plugin-terser":"1.0.0","@rollup/plugin-commonjs":"29.0.2","@rollup/plugin-node-resolve":"16.0.3"},"peerDependencies":{"mathjs":">=15.0.0"},"peerDependenciesMeta":{"mathjs":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/iforge-edp-values_0.4.5_1777682856592_0.16674284214422386","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"@dricosr/iforge-edp-values","version":"0.4.6","keywords":["iforge-edp","units","engineering","values","cad","mathjs","esm"],"author":{"name":"Adriano Ribeiro"},"license":"MIT","_id":"@dricosr/iforge-edp-values@0.4.6","maintainers":[{"name":"dricosr","email":"dricosr@hotmail.com"}],"homepage":"https://github.com/Dricosr/iforge-edp-values#readme","bugs":{"url":"https://github.com/Dricosr/iforge-edp-values/issues"},"dist":{"shasum":"422e5d3b283fcc7a3b4f6a5d633083222ec59863","tarball":"https://registry.npmjs.org/@dricosr/iforge-edp-values/-/iforge-edp-values-0.4.6.tgz","fileCount":97,"integrity":"sha512-uPO/VB7BlwrP4xH4awlfFMSSu9BjUN2ehIUmQfWbD0F4cNTXZ6ldtE4kjAu8o0YWlloJMiMdGBb+yyZi6vg15A==","signatures":[{"sig":"MEYCIQDDSHEDg2vLOy7rdfcIMfmKogHLS88IwjVlP5Sw2yB+8QIhAI5WsOsYDyLg33DudB4CTPYVL6t5/fC00xWZtvT5h9kq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5872652},"main":"./dist/index.cjs.js","type":"module","module":"./dist/index.esm.js","browser":"./dist/index.iife.min.js","engines":{"node":">=24.0.0"},"exports":{".":{"import":"./dist/index.esm.js","default":"./dist/index.esm.js","require":"./dist/index.cjs.js"}},"gitHead":"11982ff7d131d9cd836bee1d35aa0f473801f8c3","scripts":{"test":"vitest run","build":"rollup -c","test:watch":"vitest","build:watch":"rollup -c --watch","test:visual":"vitest run tests/visual","test:coverage":"vitest run --coverage","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"dricosr","email":"dricosr@hotmail.com"},"repository":{"url":"git+https://github.com/Dricosr/iforge-edp-values.git","type":"git"},"_npmVersion":"11.0.0","description":"Structured engineering values with type, quantity, unit conversion, internal normalization and UI formatting for iForge EDP.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"mathjs":"15.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"4.60.2","vitest":"4.1.5","@vitest/coverage-v8":"4.1.5","@rollup/plugin-terser":"1.0.0","@rollup/plugin-commonjs":"29.0.2","@rollup/plugin-node-resolve":"16.0.3"},"peerDependencies":{"mathjs":">=15.0.0"},"peerDependenciesMeta":{"mathjs":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/iforge-edp-values_0.4.6_1777687552956_0.4109633205759087","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"@dricosr/iforge-edp-values","version":"0.4.7","description":"Structured engineering values with type, quantity, unit conversion, internal normalization and UI formatting for iForge EDP.","type":"module","main":"./dist/index.cjs.js","module":"./dist/index.esm.js","browser":"./dist/index.iife.min.js","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.cjs.js","default":"./dist/index.esm.js"}},"publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"scripts":{"build":"rollup -c","build:watch":"rollup -c --watch","prepublishOnly":"npm test && npm run build","test":"vitest run","test:visual":"vitest run tests/visual","test:watch":"vitest","test:coverage":"vitest run --coverage"},"keywords":["iforge-edp","engineering","units","unit-conversion","aec","bim","cad","mathjs","esm","fractional-inch","imperial"],"author":{"name":"Adriano Ribeiro"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Dricosr/iforge-edp-values.git"},"bugs":{"url":"https://github.com/Dricosr/iforge-edp-values/issues"},"homepage":"https://values.iforge.org/","dependencies":{"mathjs":"15.2.0"},"peerDependencies":{"mathjs":">=15.0.0"},"peerDependenciesMeta":{"mathjs":{"optional":false}},"devDependencies":{"@rollup/plugin-commonjs":"29.0.2","@rollup/plugin-node-resolve":"16.0.3","@rollup/plugin-terser":"1.0.0","@vitest/coverage-v8":"4.1.5","rollup":"4.60.2","vite":"8.0.10","vitest":"4.1.5"},"engines":{"node":">=24.0.0"},"_id":"@dricosr/iforge-edp-values@0.4.7","gitHead":"92587f236b56b18094306d86e551654e63942aa4","_nodeVersion":"24.12.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-JH8yfE9OYUly/bH5qisvHaYtSuv0TsIdF6rRSWQxEGnEtwo+4o2LZgn94GfWVYCAvexmmlqlTFSJlzroOvlgqw==","shasum":"af3c702516d573b2a5f7b36b55239b3c01b2c5be","tarball":"https://registry.npmjs.org/@dricosr/iforge-edp-values/-/iforge-edp-values-0.4.7.tgz","fileCount":97,"unpackedSize":5811016,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC6w8beorGfRHAOKjqwpZesA7+HiTsSY54v9ikNq7sgxAIhANBz1ipB5Bi+DCBFe24uYfKJo32578u8Y9kB4tG8DGK5"}]},"_npmUser":{"name":"dricosr","email":"dricosr@hotmail.com"},"directories":{},"maintainers":[{"name":"dricosr","email":"dricosr@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/iforge-edp-values_0.4.7_1777698030800_0.6388164890579413"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-28T18:30:08.122Z","modified":"2026-05-02T05:00:31.152Z","0.3.2":"2026-04-28T18:30:08.497Z","0.4.1":"2026-05-01T00:47:40.076Z","0.4.2":"2026-05-01T02:22:29.332Z","0.4.3":"2026-05-01T04:36:20.774Z","0.4.4":"2026-05-01T05:25:34.162Z","0.4.5":"2026-05-02T00:47:36.804Z","0.4.6":"2026-05-02T02:05:53.309Z","0.4.7":"2026-05-02T05:00:31.032Z"},"bugs":{"url":"https://github.com/Dricosr/iforge-edp-values/issues"},"author":{"name":"Adriano Ribeiro"},"license":"MIT","homepage":"https://values.iforge.org/","keywords":["iforge-edp","engineering","units","unit-conversion","aec","bim","cad","mathjs","esm","fractional-inch","imperial"],"repository":{"type":"git","url":"git+https://github.com/Dricosr/iforge-edp-values.git"},"description":"Structured engineering values with type, quantity, unit conversion, internal normalization and UI formatting for iForge EDP.","maintainers":[{"name":"dricosr","email":"dricosr@hotmail.com"}],"readme":"﻿# iforge-edp-values\r\n\r\n[![npm version](https://img.shields.io/npm/v/@dricosr/iforge-edp-values)](https://www.npmjs.com/package/@dricosr/iforge-edp-values)\r\n[![license](https://img.shields.io/npm/l/@dricosr/iforge-edp-values)](./LICENSE)\r\n[![node](https://img.shields.io/node/v/@dricosr/iforge-edp-values)](https://nodejs.org/)\r\n\r\nStructured engineering values for AEC/industrial applications. Type-safe unit conversion, internal SI normalization, and UI-friendly formatting — built on [Math.js](https://mathjs.org/).\r\n\r\n[Live demo](https://values.iforge.org/) · [Specification](./spec/en-us/spec.md) · [Changelog](./CHANGELOG.md)\r\n\r\n## Features\r\n\r\n- **12 engineering quantities**: length, area, volume, angle, temperature, mass, force, pressure, time, ratio, bool, and count\r\n- **Automatic SI normalization**: every value converts to a stable internal unit (meters, radians, pascals…) regardless of input unit\r\n- **Precision gating**: display precision is automatically capped by the domain's internal resolution (e.g. millimeter values never show more than 1 decimal place)\r\n- **Fractional inch I/O**: full imperial support following ANSI/ASME Y14.5 — parse `\"1 1/4\"`, format `2.375 → \"2 3/8\"`, with four precision tiers (construction, precision, machining, fine)\r\n- **BIM/AEC output presets**: curated presets for millimeter modeling, meter annotations, square-meter schedules, kilonewton structural loads, kilopascal HVAC, and more\r\n- **Zero-dependency browser usage**: works in the browser via import maps — no CDN, no bundler\r\n- **Pure ESM** (`.mjs`), tree-shakeable, no TypeScript\r\n\r\n## Install\r\n\r\n```bash\r\nnpm install @dricosr/iforge-edp-values\r\n```\r\n\r\n## Usage\r\n\r\n```js\r\nimport { createValue, tryCreateValue, formatDisplayValue, formatEditValue } from \"@dricosr/iforge-edp-values\";\r\n\r\n// Create a structured engineering value\r\nconst value = createValue({\r\n  value: 2002,\r\n  valueType: \"number\",\r\n  quantity: \"length\",\r\n  unit: \"mm\",\r\n  output: { id: \"beam-1\", unit: \"m\", precision: 3 }\r\n});\r\n\r\nconsole.log(value.internal);\r\n// { value: 2.002, unit: \"m\" }\r\n\r\nconsole.log(formatDisplayValue(value));\r\n// \"2.002 m\"\r\n\r\nconsole.log(formatEditValue(value, { unit: \"mm\", precision: 4 }));\r\n// \"2002.0\"\r\n\r\n// Validate user input\r\nconst result = tryCreateValue({\r\n  value: \"10,5\",\r\n  valueType: \"number\",\r\n  quantity: \"length\",\r\n  unit: \"mm\"\r\n});\r\n\r\nconsole.log(result);\r\n// { ok: false, value: null, error: ValueInputError { code: \"invalid_numeric_value\", ... } }\r\n```\r\n\r\n### Fractional inches\r\n\r\n```js\r\nimport { createValue, FractionalInchOutput, UNIT_TOKENS } from \"@dricosr/iforge-edp-values\";\r\n\r\nconst pipe = createValue({\r\n  value: \"1 1/4\",\r\n  valueType: \"number\",\r\n  quantity: \"length\",\r\n  unit: UNIT_TOKENS.INCH,\r\n  output: new FractionalInchOutput({ id: \"nps-1-1-4\", prefix: \"⌀ \" })\r\n});\r\n\r\nconsole.log(pipe.input.formatForDisplay());  // '⌀ 1 1/4\"'\r\nconsole.log(pipe.input.formatForEdit());     // \"1 1/4\"\r\nconsole.log(pipe.internal);                  // { value: 0.03175, unit: \"m\" }\r\n```\r\n\r\n### Output presets\r\n\r\n```js\r\nimport { OUTPUT_PRESETS, PARAMETER_SAMPLES, createValuePreview } from \"@dricosr/iforge-edp-values\";\r\n\r\n// Explore available presets\r\nconsole.log(OUTPUT_PRESETS[\"pressure:hvac-kilopascal\"].name);\r\n// \"HVAC Pressure (kPa)\"\r\n\r\n// Preview a parameter with a preset\r\nconst preview = createValuePreview({\r\n  parameter: PARAMETER_SAMPLES[\"length:beam-span\"],\r\n  output: { presetId: \"length:annotation-meter\" }\r\n});\r\n\r\nconsole.log(preview.previews.display);\r\n// \"7.200 m\"\r\n```\r\n\r\n## Supported quantities\r\n\r\n| Quantity | Internal unit | Example inputs |\r\n| --- | --- | --- |\r\n| `length` | `m` | `mm`, `cm`, `m`, `in`, `ft` |\r\n| `area` | `m^2` | `mm^2`, `cm^2`, `m^2` |\r\n| `volume` | `m^3` | `mm^3`, `cm^3`, `m^3` |\r\n| `angle` | `rad` | `deg`, `rad` |\r\n| `temperature` | `degC` | `degC`, `degF`, `K` |\r\n| `mass` | `kg` | `g`, `kg`, `lb` |\r\n| `force` | `N` | `N`, `kN`, `lbf` |\r\n| `pressure` | `Pa` | `Pa`, `kPa`, `bar`, `psi` |\r\n| `time` | `s` | `s`, `min`, `h` |\r\n| `ratio` | — | dimensionless |\r\n| `bool` | — | `true` / `false` with configurable labels |\r\n| `count` | — | discrete integer counts (`un`) |\r\n\r\nValue types: `string`, `integer`, `float`, `boolean`.\r\n\r\n## Documentation\r\n\r\n- **[Specification](./spec/en-us/spec.md)** — domain rules: quantities, internal units, resolution limits, display constraints\r\n- **[API Reference](#api-reference)** — all public exports with descriptions\r\n- **[Fractional Inch Guide](#fractional-inch-io)** — imperial piping, sheet metal, fasteners, and construction\r\n- **[Browser Usage](#browser-usage)** — import maps setup for zero-dependency browser loading\r\n\r\n---\r\n\r\n## API Reference\r\n\r\n### Core functions\r\n\r\n| Export | Description |\r\n| --- | --- |\r\n| `createValue(options)` | Parse input into a structured value with `input` and `internal` fields |\r\n| `tryCreateValue(options)` | Safe parse returning `{ ok, value, error }` for UI validation |\r\n| `createValuePreview(options)` | Build a preview payload (display + edit) from a sample parameter and output preset |\r\n| `formatDisplayValue(value, options?)` | Human-readable string with unit and affixes |\r\n| `formatEditValue(value, options?)` | Plain number string for input fields, precision-capped |\r\n| `convertValue({ value, fromUnit, toUnit })` | Raw unit conversion via Math.js |\r\n\r\n### Configuration classes\r\n\r\n| Export | Description |\r\n| --- | --- |\r\n| `Output` | Output configuration: target unit, precision, prefix/suffix affixes |\r\n| `CustomOutputAffix` | User-defined prefix or suffix character sequence |\r\n| `FractionalInchOutput` | Drop-in `Output` replacement for fractional inch I/O |\r\n| `FractionalInchParser` | Parse `\"1 1/4\"` → `1.25` with validation |\r\n| `FractionalInchFormatter` | Format `1.25` → `\"1 1/4\"` with automatic reduction |\r\n\r\n### Presets and samples\r\n\r\n| Export | Description |\r\n| --- | --- |\r\n| `OUTPUT_PRESETS` | Curated BIM/AEC output presets by quantity |\r\n| `PARAMETER_SAMPLES` | Realistic parameter samples grouped by quantity |\r\n| `FRACTIONAL_INCH_DENOMINATORS` | Precision tier constants: `CONSTRUCTION`, `PRECISION`, `MACHINING`, `FINE` |\r\n\r\n### Advanced (specialist classes)\r\n\r\nFor advanced composition, the package also exports: `ValueFactory`, `UnitConverter`, `InternalResolutionApplier`, `DisplayPrecisionService`, `DisplayPrecisionResolver`, `DisplayValueFormatter`, `EditValueFormatter`, `QuantityProfileRegistry`, and per-quantity profiles (`LengthQuantityProfile`, `AreaQuantityProfile`, …).\r\n\r\n---\r\n\r\n## Fractional inch I/O\r\n\r\nThe library provides specialized handling for fractional inches — the imperial standard for pipe diameters (NPS), sheet metal thickness, fastener sizes, lumber dimensions, and construction measurements. Follows **ANSI/ASME Y14.5** and **ISO 129-1**.\r\n\r\n### Precision tiers\r\n\r\n| Tier | Max denominator | Use case |\r\n| --- | --- | --- |\r\n| `CONSTRUCTION` | 1/16 | Piping, lumber, framing, valve sizes |\r\n| `PRECISION` | 1/32 | Sheet metal, plate thickness |\r\n| `MACHINING` | 1/64 | Machining, tooling, general fabrication |\r\n| `FINE` | 1/128 | Tool & die, fine machining, metrology |\r\n\r\n### Validation rules\r\n\r\n- Denominator must be a power of 2 (2, 4, 8, 16, 32, 64, 128)\r\n- Fraction must be proper (numerator < denominator)\r\n- Only one fraction per input; accepts space (`1 1/4`), hyphen (`1-1/4`), or decimal (`1.25`)\r\n\r\n### Real-world examples\r\n\r\n| Domain | Input | Output |\r\n| --- | --- | --- |\r\n| NPS 2\" pipe OD | `2.375` in | `⌀ 2 3/8\"` |\r\n| 16 ga sheet metal | `0.0625` in | `1/16\"` |\r\n| 1/4\"-20 UNC fastener | `0.250` in | `1/4\"` |\r\n| 2×4 lumber (actual) | `1.5` in | `1 1/2\"` |\r\n\r\n---\r\n\r\n## Browser usage\r\n\r\nWorks in the browser without a build step using [import maps](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script/type/importmap):\r\n\r\n```html\r\n<script type=\"importmap\">\r\n{\r\n  \"imports\": {\r\n    \"mathjs\": \"/mathjs/index.js\",\r\n    \"@dricosr/iforge-edp-values\": \"/iforge-edp-values/index.mjs\"\r\n  }\r\n}\r\n</script>\r\n\r\n<script type=\"module\">\r\n  import { createValue, formatDisplayValue } from \"@dricosr/iforge-edp-values\"\r\n</script>\r\n```\r\n\r\nRequires serving `mathjs/lib/esm` and the library's `src/` as static files from your Express server. See the [specification](./spec/en-us/spec.md) for full setup details.\r\n\r\n---\r\n\r\n## Build\r\n\r\n```bash\r\ngit clone https://github.com/Dricosr/iforge-edp-values.git\r\ncd iforge-edp-values\r\nnpm install\r\nnpm run build       # ESM + CJS + IIFE → dist/\r\n```\r\n\r\n## Test\r\n\r\n```bash\r\nnpm test                # all tests (Vitest)\r\nnpm run test:visual     # visual I/O tests only\r\nnpm run test:coverage   # with coverage report\r\n```\r\n\r\n> **Windows users**: run Vitest from PowerShell or bash — `cmd.exe` has known incompatibilities with Vitest 4.x.\r\n\r\n---\r\n\r\n## Design principles\r\n\r\n- Calculations always use `internal.value` (SI); user input is preserved but never used for computation\r\n- Unit preference belongs to the UI or project config — not stored in the value\r\n- Display precision is always capped by the quantity's internal resolution\r\n- Small specialist classes with single responsibilities; shared constants in dedicated catalogs\r\n- Quantity-specific behavior lives in specialist profiles, not generic conditionals\r\n\r\n---\r\n\r\n## Contributing\r\n\r\nContributions are welcome — bug reports, documentation improvements, new quantity profiles, and code changes. See [CONTRIBUTING.md](./CONTRIBUTING.md) for setup instructions and guidelines.\r\n\r\nThis project follows a [Code of Conduct](./CODE_OF_CONDUCT.md). By participating you agree to abide by its terms.\r\n\r\n## License\r\n\r\n[MIT](./LICENSE) — © 2026 Adriano Ribeiro\r\n","readmeFilename":"README.md"}