{"_id":"res-profiles","_rev":"27-f3ad4b5aeb7ca8e02a1f742b3af7361a","name":"res-profiles","dist-tags":{"latest":"1.2.26"},"versions":{"1.0.0":{"name":"res-profiles","version":"1.0.0","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.0.0","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"05bcff17f2ba5363f7d259c26436dd2d7344d2b0","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.0.0.tgz","fileCount":75,"integrity":"sha512-A+tKrxdnwJb4niq7LSoHbqp8LD/us2qwK2KkJKnFQj70IAF4nVf2MD+AbUBDEezrNhsbxkEjrZF0Y3Tb3lP3UQ==","signatures":[{"sig":"MEQCIAaSU1ekOV+xJL4BVOSU9kleo7QnEc6z5hZpuZ66qJxkAiBRnaVpM97yWX0h2l6/+iW0ISLyg+/vU1rginscnpVEXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":203828},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p .","format":"prettier --write src/**/*.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.0.0_1756441479992_0.9063665211238059","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"res-profiles","version":"1.2.1","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.1","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"bada3aac819e028787c23e0d257713bb7c3ff749","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.1.tgz","fileCount":95,"integrity":"sha512-7s+FFwXMPlfIm/577A7wpJHJ4BFU3krClv5a8JrL2zTZdOdNLeu0cTx+k5/eE0WMpRU7VmwoY7cz/yFW9VWLdw==","signatures":[{"sig":"MEUCIHLHVPihKv0Rc+W8dQOWIixtSSwWpmX1+WWdTNMfhxB7AiEA+h93QOqMwFs297eGN95yPPMUJKom5I1zbt+ac01LBQU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4830255},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.1_1756667203747_0.08139356662719388","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"res-profiles","version":"1.2.2","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.2","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"01752fa7d871a43f81a7e76f423519d621cd2762","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.2.tgz","fileCount":95,"integrity":"sha512-mZx9p+EOBrQp1yiAKFOYneaXkRS/JysNtAfY+4h+/fvQr4PwIOyUILQLZ9i1yWtr0QhvBpamwPLQoog7OrnWkA==","signatures":[{"sig":"MEQCIGusk8gGSjju4GdqyUPEdW9mIt1ZIijOINI2bxr/v/leAiAExRSoJKQPKE8mtxkjaWIeGjHhLhspVVU5iEDLjyG0EA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3852333},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.2_1756669077340_0.8372517819592034","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"res-profiles","version":"1.2.3","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.3","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"c8ff3dfdc3a562759ad9e519e63f089fc4596ee2","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.3.tgz","fileCount":99,"integrity":"sha512-2n7KyMGwtyjMlVjvB25bfwApvu+cLvcTwZEbvx49+C0ayq1Yy0DK/JeyaxGkKxs54zY6VymIhwnjRfn+FGeLGQ==","signatures":[{"sig":"MEUCIHvRBLyeWvkYxnh8KDiLjVJYwSGbBu1AnCyBcW7CEdSQAiEAukVanZMoPpKDGBxd3vXVSLzJFHYmJKN5rYxQ8NsFA1s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3865262},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.3_1756682707915_0.3900843004584835","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"res-profiles","version":"1.2.4","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.4","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"63731bc4591af81f821860965e99cf8a7d536bfd","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.4.tgz","fileCount":107,"integrity":"sha512-3WI1FfwhZbuuwwXADt6g4klGO6BsQM4QPdLUF2UsD9ZYVp8jALBIaNAbLsc0YU2Sy/jBwAwxyRv6qgw+kmdB+g==","signatures":[{"sig":"MEUCIQDEhZ4sD9x2o4T4AviGJhyiuO4UdBBQnqoq/RxonKnvAQIgelNLJ1/BNCRWC90htLbuggdeXQs8kb7yjkkyormXvbI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3905928},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.4_1756683458661_0.1609729713164707","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"res-profiles","version":"1.2.5","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.5","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"f5ae8db1d162aca9ffc5adcaf73870562fd1abb1","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.5.tgz","fileCount":107,"integrity":"sha512-8Xr3pRzEbttHitdSVusjWerQ+hcOcuuFkgOFQ+mW7nDnOn4OmNDdQ70DNmTZA6IpSdqJbdtWqEh+rC95XNqumQ==","signatures":[{"sig":"MEYCIQCDngKZzsdarU3Rb7Q+FpUQyNgv0M/P5Rcu8W+I6gKMJAIhAIbdlD2GxjBw5pteTLIlE1DUvhDfIcMiqv/H2VuOrAf1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3947304},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.5_1756686163761_0.2888602182342572","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"res-profiles","version":"1.2.6","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.6","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"f09dd8cc336f9215fcd6f667beaf5268508c3ca2","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.6.tgz","fileCount":107,"integrity":"sha512-MqEHpmwcne7mwTl61kxdO9r+kgdWcczFg7ydOrrtASKn0bf8O8z0Ip2bu1uow272VekTDJI/8IARt79joYw/Hw==","signatures":[{"sig":"MEUCIQCD3ukcAnd2g/yuukiuDW30lZGG11XbDcu1gYJOPetPHAIgeBsV44/C+eJwxcEb47C1elIVGF5FkSa3ECO40nnC6DA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4013604},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.6_1756686622757_0.052862909027251215","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"res-profiles","version":"1.2.7","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.7","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"1fd8807b4d0acda304f9be32278d9d10f1febc2e","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.7.tgz","fileCount":107,"integrity":"sha512-PlGv6eOIn0PxLH6a5RoVDXMOZ1BQMLbx78wwi+swJFn7X2nwiniunUaro+z9cTktssvp9oxUK0KcJOa7n3q9EA==","signatures":[{"sig":"MEUCIAyMRqgibagKu55wjzRnfjG6xsxojXN1qgIj10te7UlZAiEA8Fpi8iTMdeIikKREGCHDAQIJww9ZswV/l5fDir+sAGA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4067360},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.7_1756686912418_0.9039062538357325","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"name":"res-profiles","version":"1.2.8","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.8","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"f010e1e3eb2eba662178a2801d4fc476a857e666","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.8.tgz","fileCount":107,"integrity":"sha512-f2+R/z8gDw7UATcWJCy+YP0uxbUg6lS7ldE83GZMb/Jqq2RPAmIONOqFkYW8UtRs1LtLQKA4e6xmsGHp4sNSaw==","signatures":[{"sig":"MEQCIGYmyB3XJtSIHytiWtUSEJC+1rnB1AV8isHt2HPAwx3kAiA3pf4w/gbZeF4P6FbY28I4R4FaBZDzPMVJtC7QzUu/Gw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4124750},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.8_1756687365730_0.47466516577455087","host":"s3://npm-registry-packages-npm-production"}},"1.2.9":{"name":"res-profiles","version":"1.2.9","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.9","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"f4fcdbecd3282cfa2fb42ae832fade28b3c3f025","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.9.tgz","fileCount":107,"integrity":"sha512-Jvfv87tWl2A0DfmW03RREOUUogcJuyqAKx4iHEtHLK78RZf/q+OsSLiok/onxS6jNmr8ZSg2wfvIh4S74x26OA==","signatures":[{"sig":"MEQCIG0dVAzfg7AtkeZt2wjVQFKX/ZGfxC9TzTBs3d5XQzV7AiBAu72mKte5zFG5UhGIDO677o9dxWE6tf8g7ucBErF7IQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4187550},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.9_1756687660466_0.3228280844662508","host":"s3://npm-registry-packages-npm-production"}},"1.2.10":{"name":"res-profiles","version":"1.2.10","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.10","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"70b76c9794af0740602e46e3cce798692837a740","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.10.tgz","fileCount":107,"integrity":"sha512-cW/BCZnNiuJQKhX6H4vHkpV4Lv5/HcdM2Q8l0TdncUgDWisDxmtXbx1wN2k0ARl7E3M6/iHmlMVMZSA5iXhIjg==","signatures":[{"sig":"MEQCIAX8QTCXW7Bg47OJwzPsyLDtVJlPEcv3/9aKf/3vAmAtAiBFrvrXWmMQN7HLXGFTpfSOg/7peJDbBUGUpFJ5SM8HEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4251299},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.10_1756688138808_0.6774659448745153","host":"s3://npm-registry-packages-npm-production"}},"1.2.11":{"name":"res-profiles","version":"1.2.11","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.11","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"874bcbbf6710eb44ce18167b038a2fbccd5cbb39","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.11.tgz","fileCount":107,"integrity":"sha512-aS+vxbZFe0fVgB8GNstGczdaUUzVpPDhtJMVnMW0PfnNkVV3iBqIk8Hhkv4esitAI4RmWjDSXe5BVJOmoBB+BA==","signatures":[{"sig":"MEQCIC2YCeNy816qvhal7SU1VLqNHjZebiVIYVYtznCWQPBWAiARmtOfzBrDBItbmtKD/7NlmKn6BRx3qv53Nm1bEWWTRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4330745},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.11_1756688480810_0.6378766055845855","host":"s3://npm-registry-packages-npm-production"}},"1.2.12":{"name":"res-profiles","version":"1.2.12","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.12","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"69b6c7fee8ed28dfd13b32879dfa5d92c434ea16","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.12.tgz","fileCount":107,"integrity":"sha512-G7yyH/1rrFOvsjTzDNtCzEMVvjP8zV0THjYPQg8zIOw02jNI559XIme0Z8eoz0MT7dTFHvUpuYYq3xVs7PvX4w==","signatures":[{"sig":"MEUCIB++YeU0VwRtUmdbaXdzUfD6pA0TYIsjSd3f/XSUR5s2AiEAzve5/Wl6CIKkR3yJIre10QlSAdWijjxsOTyikHNwKTU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4382007},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.12_1756688759929_0.22632040130357378","host":"s3://npm-registry-packages-npm-production"}},"1.2.13":{"name":"res-profiles","version":"1.2.13","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.13","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"0d29b52571a11f7688df145b2ae3ab024cb014c7","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.13.tgz","fileCount":107,"integrity":"sha512-9GyuFyvPV2H07lmYXUHVwxc7fd+/2+jobHukO7/vS0G3vqOSuDVBcsDn6aeB9vFiP0tPZ5+SioZy3as89hrcIw==","signatures":[{"sig":"MEYCIQCiMwOdx5oqH3DCoD+8bwEw+WtOIKtl/sg++vjQ+MsYMgIhAMeumagZQzer8d2GZG2Fe7EN5Lho/LOI++q3b6EhiWf3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4433269},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.13_1756689348049_0.7164478515659378","host":"s3://npm-registry-packages-npm-production"}},"1.2.14":{"name":"res-profiles","version":"1.2.14","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.14","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"292b89316d244d1582f789481b7a04ced621d970","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.14.tgz","fileCount":107,"integrity":"sha512-c16z84ePWB7DT/e5+RCrCZMURHexmyCoT82VAisZyHoaFY2JqBhwu+upnRKcc1GxoMxKis53xjZj7BuIiZjy7Q==","signatures":[{"sig":"MEQCIAVSDc64TvbH5qC9hyhg81IQSbLWh/1PfYe5+cl597FRAiAUsBIVbRis8Q4kEtupCzZsdt38QZkZteNpW62RlFM1sA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4504028},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.14_1756690035601_0.4587299269882765","host":"s3://npm-registry-packages-npm-production"}},"1.2.15":{"name":"res-profiles","version":"1.2.15","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.15","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"47cd5e8a22105fa1046f3303b09bbb63ea6d0689","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.15.tgz","fileCount":107,"integrity":"sha512-1+fXQuAfHzRhZURqMsKdIVqjtlvWtn7tHV11jma5UpbFyvffCYK0w/zhTDGzGlK9XxlW82EmJxL8cesM2HNieQ==","signatures":[{"sig":"MEUCIQDXUxqHGK5aUtdS6OcHZvITMcM1Z6tVCF4ml7W7g1GwIQIgNp6cJrY3QfWpmgrhkFOJwe7LY0pJqYzQRrO6YbvMyqE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4571483},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.15_1756691177626_0.3771076456971676","host":"s3://npm-registry-packages-npm-production"}},"1.2.16":{"name":"res-profiles","version":"1.2.16","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.16","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"8a8244baf9ab26b39c375582eb8676dc4b1a9305","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.16.tgz","fileCount":119,"integrity":"sha512-SSJMo6r6ZySrd2ZZQwSZzP+YQ8Y0DV87bSAp0wWnl2/BUrsfDss1drb6jWx2uNpsUr4N1pvNb5o9uVyzYy+9Vw==","signatures":[{"sig":"MEQCIE1L22Wf2YvpSb+jC834No/6Z4KxJjWH4YyPAW5llY2TAiBwwkC1nq2qteI8bJzxiiSkjk+Qv0eXTrmShKqdib0NPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8279957},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","audit:coverage":"ts-node src/cli/auditCoverage.ts","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.16_1756692199878_0.20633926706416994","host":"s3://npm-registry-packages-npm-production"}},"1.2.17":{"name":"res-profiles","version":"1.2.17","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.17","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"7e84c2dd69ce06278bda773f5cc01833b19dc74c","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.17.tgz","fileCount":119,"integrity":"sha512-rpobbpp6ZrvzqhIbBen81gs7CIqry1UXlqqd8eNVythprR0TVJACsT2Wr3x1NeI0jSVfQWBmsobG5r0RiFUCaA==","signatures":[{"sig":"MEQCIACZzkQ5E6gebRViHV0Bp1PfjzmPkCEaTsRZ4jo4DQzvAiAO3zXICTiuHx3HXNXhz7AGsLBJ5WVrnOipC+MRjEyvog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6803823},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","audit:coverage":"ts-node src/cli/auditCoverage.ts","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.17_1756693428492_0.33347879957471704","host":"s3://npm-registry-packages-npm-production"}},"1.2.18":{"name":"res-profiles","version":"1.2.18","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.18","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"f4a1e9d46a2811277b761a357fd7fc0699955a59","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.18.tgz","fileCount":123,"integrity":"sha512-ibVB9I7SvC/d46t0dRlR1T5w6xgQgXFihkxVcL1TXLr+gpVLojhFy+TNmHZkYPsBlScSi1LtMoptARF4aXsHcA==","signatures":[{"sig":"MEUCIQCkaFqkjvDckK/Td2fGmr+Yg4sp4rGJLvjtC3koURdTtQIgTRVMu2bOulhVEmtmBfTpux636AbXdf1q7XjWb/j4w9w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6918465},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","csv:fix":"ts-node src/cli/fixCsv.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","audit:coverage":"ts-node src/cli/auditCoverage.ts","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.18_1756695451576_0.5699774653962983","host":"s3://npm-registry-packages-npm-production"}},"1.2.19":{"name":"res-profiles","version":"1.2.19","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.19","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"64882b96ef50f0dba562862da1e106349b4a84e9","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.19.tgz","fileCount":131,"integrity":"sha512-HxAw/L3JS0JNqxnsgKIYNND40+pCMP1Pfe1lFSLD4y+MOla1/j5X/AE5vv6Hy4Tabw0p4rLUucS8uVKc0XtDWw==","signatures":[{"sig":"MEUCIDXbFECclwBye1f991uqqCxO3c/Rxc7Y9IBIHpmJhe8lAiEA30dUAK64BIibfOWugns7dkbJ0MXP26Ss5ARhrK0ZXec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7265046},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","csv:fix":"ts-node src/cli/fixCsv.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","audit:diff":"ts-node src/cli/diffCoverage.ts","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","migrate:trims":"ts-node src/cli/migrateTrimPurity.ts","audit:coverage":"ts-node src/cli/auditCoverage.ts","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.19_1756696700038_0.5287280362990652","host":"s3://npm-registry-packages-npm-production"}},"1.2.20":{"name":"res-profiles","version":"1.2.20","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.20","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"72acb050e6e5ee4546c2377bc28e772dcae58743","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.20.tgz","fileCount":135,"integrity":"sha512-l4QSJpInV4OFMAMPD9QHSMs/ZU1gUpQudwJ3YOFndJyDsB7VLTRx2yUp8uKQa2l70/p9SinhSY4DX4LhFHTWvg==","signatures":[{"sig":"MEUCIQD/cVC/qySdAOexAw4XMjDfzgwWQ+zEs55vRBOoDsRQKAIgDf7tPgWn7FCmfIP0gpvGkoheKgiMa+yKt22aKPNCJsA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5432228},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","csv:fix":"ts-node src/cli/fixCsv.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","audit:diff":"ts-node src/cli/diffCoverage.ts","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","migrate:trims":"ts-node src/cli/migrateTrimPurity.ts","audit:coverage":"ts-node src/cli/auditCoverage.ts","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.20_1756697849163_0.061454634315302625","host":"s3://npm-registry-packages-npm-production"}},"1.2.21":{"name":"res-profiles","version":"1.2.21","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.21","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"a6c1fc915a9cad155b36339eef7a174be6a6ebeb","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.21.tgz","fileCount":135,"integrity":"sha512-sDFBjLNuVllg51pQjS5Aj5dLRhhFNsdaJFP62VKOLE+6LXI3rboYWdgmJaU9E//C69CihT1KmMeA4jbDM8lA5w==","signatures":[{"sig":"MEQCIAEcdmscf4U7lACg48qrN6vP3yRnBCWY4kHdPdKd28OcAiBlI/jUpznmYzgrWT9VQ39vCktg04wiTGujr54DcV7mjw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5594371},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","csv:fix":"ts-node src/cli/fixCsv.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","audit:diff":"ts-node src/cli/diffCoverage.ts","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","migrate:trims":"ts-node src/cli/migrateTrimPurity.ts","audit:coverage":"ts-node src/cli/auditCoverage.ts","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.21_1756701718026_0.03728041605541543","host":"s3://npm-registry-packages-npm-production"}},"1.2.22":{"name":"res-profiles","version":"1.2.22","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.22","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"c92af67a6fa01af5485533d81aefe4642955794a","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.22.tgz","fileCount":151,"integrity":"sha512-LRma2qGP1gmHf5n+3hVWyIGkTSXuLtlhNYRp1v+hbsxbkSLFwb7HgficNupTjK6sdJMs+7jAfvzS50eVu+4mtA==","signatures":[{"sig":"MEQCIBCgtYLFTH0N8zljolhqMVaMXbFaDrVNsrY8ShxWWzzSAiARkVzOya8C30Sormwy05c3L27xgW1rDz4uROTmiL6+RA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5737495},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","csv:fix":"ts-node src/cli/fixCsv.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","audit:diff":"ts-node src/cli/diffCoverage.ts","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","migrate:trims":"ts-node src/cli/migrateTrimPurity.ts","purge:chassis":"ts-node src/cli/purgeWrongChassis.ts","audit:coverage":"ts-node src/cli/auditCoverage.ts","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts","report:unmatched":"ts-node src/cli/reportUnmatched.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.22_1756758103331_0.6313093300158932","host":"s3://npm-registry-packages-npm-production"}},"1.2.23":{"name":"res-profiles","version":"1.2.23","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.23","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"24160ed1e37e4fa19b1bb2321d858e9ca5a2398f","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.23.tgz","fileCount":184,"integrity":"sha512-mnT1Dhds7OrU3lo2fpVl5vLK7OZV6aDKKoVSwOed2d7Djp+MtXiPeRGIY1qNMlCgZ/jxHz+BKIKJkpRJArueMg==","signatures":[{"sig":"MEYCIQCPn0VqgH8WSzgT6yOwL3++hkzi1w6MhL1rhDYLaYK0OAIhAIcWAZP/UDyYENrbnT5Ev0GF82EwfY6n2P21dnB74BTy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6883857},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"},"./worker/engineSanity":{"types":"./dist/worker/engineSanity.d.ts","import":"./dist/worker/engineSanity.js"},"./worker/baselineCheck":{"types":"./dist/worker/baselineCheck.d.ts","import":"./dist/worker/baselineCheck.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","csv:fix":"ts-node src/cli/fixCsv.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","audit:diff":"ts-node src/cli/diffCoverage.ts","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","audit:engine":"ts-node src/cli/auditEngineSanity.ts","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","plan:targets":"ts-node src/cli/planTargets.ts","migrate:trims":"ts-node src/cli/migrateTrimPurity.ts","purge:chassis":"ts-node src/cli/purgeWrongChassis.ts","audit:coverage":"ts-node src/cli/auditCoverage.ts","backfill:worker":"ts-node src/cli/backfillWorkerBaselines.ts","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts","gen:targets:plan":"ts-node src/cli/genTargetsPlan.ts","report:unmatched":"ts-node src/cli/reportUnmatched.ts","gen:targets:write":"ts-node src/cli/genTargetsWrite.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.23_1756866412657_0.05251713505699018","host":"s3://npm-registry-packages-npm-production"}},"1.2.24":{"name":"res-profiles","version":"1.2.24","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.24","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"fb519a57ee2361e29e41cb9144253136698a09b2","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.24.tgz","fileCount":188,"integrity":"sha512-OhPHym6fSUTPBEwh9a8EoydZftelyFKF6oJzS9+1M+2azQgsnyGg+F8+auxqSsfhoCJ8rL9ktXZ1BElhzt/qkA==","signatures":[{"sig":"MEQCIH5g2ymInm68HzywHJb+Pn3/EQaO1JKflLijeUfo+tSzAiBx3kBbBXBF6cHegR0WGVrFXS/h0k375DDHjEAo4o4cGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6921624},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"},"./worker/engineSanity":{"types":"./dist/worker/engineSanity.d.ts","import":"./dist/worker/engineSanity.js"},"./worker/baselineCheck":{"types":"./dist/worker/baselineCheck.d.ts","import":"./dist/worker/baselineCheck.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","csv:fix":"ts-node src/cli/fixCsv.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","audit:diff":"ts-node src/cli/diffCoverage.ts","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","audit:engine":"ts-node src/cli/auditEngineSanity.ts","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","plan:targets":"ts-node src/cli/planTargets.ts","migrate:trims":"ts-node src/cli/migrateTrimPurity.ts","purge:chassis":"ts-node src/cli/purgeWrongChassis.ts","purge:invalid":"ts-node src/cli/purgeInvalid.ts","audit:coverage":"ts-node src/cli/auditCoverage.ts","backfill:worker":"ts-node src/cli/backfillWorkerBaselines.ts","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts","gen:targets:plan":"ts-node src/cli/genTargetsPlan.ts","report:unmatched":"ts-node src/cli/reportUnmatched.ts","gen:targets:write":"ts-node src/cli/genTargetsWrite.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.24_1756867302862_0.8589162463151039","host":"s3://npm-registry-packages-npm-production"}},"1.2.25":{"name":"res-profiles","version":"1.2.25","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","_id":"res-profiles@1.2.25","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"dist":{"shasum":"f067c5e854618c85d066c080b48d4cfc168a9e01","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.25.tgz","fileCount":196,"integrity":"sha512-dKmsqVI/5eFoSc3Ib4TStHDTPgXu/ZeGocSTCeRuP3jqp4OryhnSSjv70mjRLxlYZ6kM4joo+LN8Bzrdwp7wFg==","signatures":[{"sig":"MEUCIQC2VeGskIS6vdIBOOxGqiLpkLJjO6lSc355l/+XtJxFvgIgefDmZmSgnnIiCTaaokvurXTh9nWodZvXU/ec+qm6x2A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7090183},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker/index.d.ts","import":"./dist/worker/index.js","worker":"./dist/worker/index.js"},"./worker/canon":{"types":"./dist/worker/canon.d.ts","import":"./dist/worker/canon.js"},"./worker/engineSanity":{"types":"./dist/worker/engineSanity.d.ts","import":"./dist/worker/engineSanity.js"},"./worker/baselineCheck":{"types":"./dist/worker/baselineCheck.d.ts","import":"./dist/worker/baselineCheck.js"}},"scripts":{"dev":"node dist/cli/dev.js","lint":"eslint src/**/*.ts","test":"vitest run","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","format":"prettier --write src/**/*.ts","csv:fix":"ts-node src/cli/fixCsv.ts","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","audit:diff":"ts-node src/cli/diffCoverage.ts","gen:worker":"ts-node src/cli/exportForWorker.ts","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","audit:engine":"ts-node src/cli/auditEngineSanity.ts","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","plan:targets":"ts-node src/cli/planTargets.ts","migrate:trims":"ts-node src/cli/migrateTrimPurity.ts","purge:chassis":"ts-node src/cli/purgeWrongChassis.ts","purge:invalid":"ts-node src/cli/purgeInvalid.ts","audit:coverage":"ts-node src/cli/auditCoverage.ts","backfill:worker":"ts-node src/cli/backfillWorkerBaselines.ts","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts","gen:targets:plan":"ts-node src/cli/genTargetsPlan.ts","report:unmatched":"ts-node src/cli/reportUnmatched.ts","gen:targets:write":"ts-node src/cli/genTargetsWrite.ts","migrate:trims:engine":"ts-node src/cli/migrateTrimsFromEngine.ts"},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"_npmVersion":"11.5.2","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.12.0","zod":"^3.22.4","yargs":"^17.7.2","lodash":"^4.17.21","fast-csv":"^5.0.0","fs-extra":"^11.2.0","csv-parser":"^3.0.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^1.1.0","ts-node":"^10.9.2","prettier":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.5","@types/yargs":"^17.0.32","@types/lodash":"^4.14.202","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/res-profiles_1.2.25_1756868046662_0.10073999941509149","host":"s3://npm-registry-packages-npm-production"}},"1.2.26":{"name":"res-profiles","version":"1.2.26","description":"RES vehicle profiles, engine coefficients, and performance evaluation library","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"},"./worker":{"worker":"./dist/worker/index.js","import":"./dist/worker/index.js","types":"./dist/worker/index.d.ts"},"./worker/engineSanity":{"import":"./dist/worker/engineSanity.js","types":"./dist/worker/engineSanity.d.ts"},"./worker/baselineCheck":{"import":"./dist/worker/baselineCheck.js","types":"./dist/worker/baselineCheck.d.ts"},"./worker/canon":{"import":"./dist/worker/canon.js","types":"./dist/worker/canon.d.ts"}},"scripts":{"dev":"node dist/cli/dev.js","build":"tsc -p . && tsc -p tsconfig.worker.json && npm run gen:worker","test":"vitest run","gen:bmw":"node dist/cli/generateProfiles.js --make BMW --years 2010-2025","gen:bmw:all":"ts-node src/cli/generateBmwCoverage.ts --years 1985-2025","gen:worker":"ts-node src/cli/exportForWorker.ts","audit:coverage":"ts-node src/cli/auditCoverage.ts","audit:diff":"ts-node src/cli/diffCoverage.ts","report:unmatched":"ts-node src/cli/reportUnmatched.ts","purge:chassis":"ts-node src/cli/purgeWrongChassis.ts","import:specs":"ts-node src/cli/importSpecs.ts --file data/specs/bmw_specs.csv","plan:targets":"ts-node src/cli/planTargets.ts","gen:targets:plan":"ts-node src/cli/genTargetsPlan.ts","gen:targets:write":"ts-node src/cli/genTargetsWrite.ts","baselines:apply":"ts-node src/cli/applyBaselinesFromOEM.ts","audit:engine":"ts-node src/cli/auditEngineSanity.ts","backfill:worker":"ts-node src/cli/backfillWorkerBaselines.ts","purge:invalid":"ts-node src/cli/purgeInvalid.ts","migrate:trims:engine":"ts-node src/cli/migrateTrimsFromEngine.ts","purge:usdm":"ts-node src/cli/purgeUSDMInvalids.ts","csv:fix":"ts-node src/cli/fixCsv.ts","migrate:trims":"ts-node src/cli/migrateTrimPurity.ts","validate":"node dist/cli/validateProfiles.js","calibrate":"node dist/cli/calibrate.js","lint":"eslint src/**/*.ts","format":"prettier --write src/**/*.ts"},"keywords":["res","vehicle","profiles","performance","evaluation","mods"],"author":{"name":"RES"},"license":"MIT","dependencies":{"zod":"^3.22.4","ajv":"^8.12.0","ajv-formats":"^2.1.1","fast-csv":"^5.0.0","csv-parser":"^3.0.0","yargs":"^17.7.2","fs-extra":"^11.2.0","lodash":"^4.17.21"},"devDependencies":{"typescript":"^5.3.3","ts-node":"^10.9.2","vitest":"^1.1.0","@types/node":"^20.10.5","@types/lodash":"^4.14.202","@types/yargs":"^17.0.32","@types/fs-extra":"^11.0.4","eslint":"^8.56.0","prettier":"^3.1.1"},"publishConfig":{"access":"public"},"engines":{"node":">=18.0.0"},"_id":"res-profiles@1.2.26","_nodeVersion":"24.5.0","_npmVersion":"11.5.2","dist":{"integrity":"sha512-en1LdgWvUQRJ8eLiWMAPfaE+cdls2ZtMoEH2usJezDN5dj7G9ILIfs9+rrLWSv481wUSkCGjpoboB/NTBNBlPg==","shasum":"682a77ff51975a644a47d3444378e73abc53490c","tarball":"https://registry.npmjs.org/res-profiles/-/res-profiles-1.2.26.tgz","fileCount":200,"unpackedSize":7218602,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIA8lXjyYliseZKLBk1/dgWpJPH0sQ8WHLfaBvoo9PDG6AiEAgtiNBu/+0j/9HeBLAfOjBF7/KKSLo/moiG81bY3DhzY="}]},"_npmUser":{"name":"resapp","email":"jmccarthy@resapp.app"},"directories":{},"maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/res-profiles_1.2.26_1756903327575_0.7900286869229551"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-29T04:24:39.868Z","modified":"2025-09-03T12:42:08.004Z","1.0.0":"2025-08-29T04:24:40.211Z","1.2.1":"2025-08-31T19:06:44.062Z","1.2.2":"2025-08-31T19:37:57.549Z","1.2.3":"2025-08-31T23:25:08.130Z","1.2.4":"2025-08-31T23:37:38.908Z","1.2.5":"2025-09-01T00:22:43.946Z","1.2.6":"2025-09-01T00:30:23.026Z","1.2.7":"2025-09-01T00:35:12.677Z","1.2.8":"2025-09-01T00:42:46.005Z","1.2.9":"2025-09-01T00:47:40.678Z","1.2.10":"2025-09-01T00:55:39.041Z","1.2.11":"2025-09-01T01:01:21.040Z","1.2.12":"2025-09-01T01:06:00.149Z","1.2.13":"2025-09-01T01:15:48.344Z","1.2.14":"2025-09-01T01:27:15.862Z","1.2.15":"2025-09-01T01:46:17.868Z","1.2.16":"2025-09-01T02:03:20.117Z","1.2.17":"2025-09-01T02:23:48.791Z","1.2.18":"2025-09-01T02:57:31.790Z","1.2.19":"2025-09-01T03:18:20.260Z","1.2.20":"2025-09-01T03:37:29.485Z","1.2.21":"2025-09-01T04:41:58.243Z","1.2.22":"2025-09-01T20:21:43.602Z","1.2.23":"2025-09-03T02:26:52.908Z","1.2.24":"2025-09-03T02:41:43.147Z","1.2.25":"2025-09-03T02:54:06.856Z","1.2.26":"2025-09-03T12:42:07.805Z"},"author":{"name":"RES"},"license":"MIT","keywords":["res","vehicle","profiles","performance","evaluation","mods"],"description":"RES vehicle profiles, engine coefficients, and performance evaluation library","maintainers":[{"name":"resapp","email":"jmccarthy@resapp.app"}],"readme":"# res-profiles\n\nRES vehicle profiles, engine coefficients, and performance evaluation library.\n\n## Purpose\n\nThis package provides a comprehensive backend for vehicle performance estimation, including:\n- **Data**: Vehicle profiles, engine-family coefficients, modification ontology, and validation datasets\n- **Core Library**: Performance evaluation, modification normalization, VIN-to-profile matching, and calibration utilities\n- **CLIs**: Tools to generate, validate, and calibrate data\n\n## Installation\n\n```bash\nnpm install res-profiles\n```\n\n## Quick Start\n\n```typescript\nimport { evaluate, normalizeMods, matchVinToProfile, loadProfiles } from 'res-profiles';\n\n// Load vehicle profiles\nconst profiles = await loadProfiles();\n\n// Match VIN to profile\nconst { profile } = matchVinToProfile({\n  year: 2019,\n  make: 'BMW',\n  model: 'M340i',\n  engine_code: 'B58B30O1',\n  drivetrain: 'AWD',\n  trans: 'AT8',\n  market: 'USDM'\n}, profiles);\n\n// Normalize modification text\nconst mods = normalizeMods('BM3 Stage 2 E30, catless DP, VRSF IC', 'BMW_B58');\n\n// Evaluate performance\nconst result = evaluate(profile, mods, {\n  surface: 'Street',\n  tires: 'MaxPerf',\n  tempF: 70,\n  da_ft: 500\n});\n\nconsole.log(result);\n// {\n//   whp: 425,\n//   zeroTo60: 3.6,\n//   quarterET: 12.0,\n//   trap: 118,\n//   sustainHint: 'IC upgrade improves sustained performance'\n// }\n```\n\n## Core Functions\n\n### `evaluate(profile, mods, env)`\nCalculates performance metrics for a vehicle with modifications:\n- **Inputs**: CarProfile, NormalizedMods, EvaluationEnvironment\n- **Outputs**: Wheel HP, 0-60 time, quarter mile ET, trap speed\n- **Features**: Turbo pressure-ratio modeling, fuel system gains, traction scoring\n\n### `normalizeMods(freeText, overlay)`\nConverts free-text modification descriptions to structured format:\n- **Inputs**: Text description, engine family overlay\n- **Outputs**: NormalizedMods object\n- **Features**: Rule-based parsing, schema validation, AI-ready stub\n\n### `matchVinToProfile(vinDecoded, profiles)`\nFinds the best matching vehicle profile:\n- **Inputs**: Decoded VIN data, profile array\n- **Outputs**: Matched profile with confidence level\n- **Features**: Engine code primary key, fallback scoring\n\n## Data Structure\n\n### Vehicle Profiles\nEach profile contains:\n- **Identity**: Make, model, year, engine family/code\n- **Powertrain**: Crank HP/TQ, redline, displacement\n- **Chassis**: Weight, drag coefficient, frontal area\n- **Baselines**: Stock performance metrics\n- **Coefficients**: Engine-specific tuning parameters\n- **Validation**: Confidence tier (Bronze/Silver/Gold), source\n\n### Confidence Tiers\n- **Bronze**: Generated profiles with estimated parameters\n- **Silver**: Validated against some real-world data\n- **Gold**: Fully validated with comprehensive testing\n\n### Model Versioning\nProfiles include `modelVersion` field (e.g., \"2025-08-RES-v1\") for tracking updates and compatibility.\n\n## CLI Tools\n\n### Development\n```bash\nnpm run dev          # Demo evaluation with sample data\n```\n\n### Data Generation\n```bash\nnpm run gen:bmw      # Generate BMW profiles 2010-2025\n```\n\n### Validation\n```bash\nnpm run validate     # Validate all profiles against schemas\n```\n\n### Calibration\n```bash\nnpm run calibrate    # Calibrate constants against test data\n```\n\n## Development\n\n### Prerequisites\n- Node.js 18+\n- TypeScript 5.3+\n\n### Setup\n```bash\nnpm install\nnpm run build\nnpm test\n```\n\n### Project Structure\n```\nres-profiles/\n├─ /src\n│  ├─ /types          # Zod schemas + TypeScript types\n│  ├─ /constants      # Performance constants & gain tables\n│  ├─ /lib            # Core library functions\n│  └─ /cli            # Command-line tools\n├─ /data              # Seed data & validation sets\n├─ /schemas           # JSON Schema definitions\n└─ /tests             # Vitest test suite\n```\n\n## Performance Model\n\nThe evaluation engine uses a physics-based approach:\n- **Baseline**: Crank HP × drivetrain efficiency\n- **Turbo/SC**: Pressure ratio model with efficiency curves\n- **Fuel System**: Ethanol content scaling\n- **Air Path**: Intake, intercooler, and exhaust gains\n- **Traction**: Tire type, surface, and drivetrain effects\n\nConstants (a0-a2, b0-b2, c0-c2) are calibrated against validation data and can be refined using the calibration CLI.\n\n## Contributing\n\n1. Follow TypeScript strict mode and ESLint rules\n2. Add tests for new functionality\n3. Update schemas when modifying data structures\n4. Use semantic versioning for releases\n\n## License\n\nMIT\n","readmeFilename":"README.md"}