formulab 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (508) hide show
  1. package/CHANGELOG.md +144 -0
  2. package/LICENSE +21 -0
  3. package/README.md +403 -0
  4. package/dist/automotive/batteryRuntime.d.ts +14 -0
  5. package/dist/automotive/batteryRuntime.d.ts.map +1 -0
  6. package/dist/automotive/batteryRuntime.js +38 -0
  7. package/dist/automotive/batteryRuntime.js.map +1 -0
  8. package/dist/automotive/evCharging.d.ts +14 -0
  9. package/dist/automotive/evCharging.d.ts.map +1 -0
  10. package/dist/automotive/evCharging.js +48 -0
  11. package/dist/automotive/evCharging.js.map +1 -0
  12. package/dist/automotive/fuelEconomy.d.ts +15 -0
  13. package/dist/automotive/fuelEconomy.d.ts.map +1 -0
  14. package/dist/automotive/fuelEconomy.js +61 -0
  15. package/dist/automotive/fuelEconomy.js.map +1 -0
  16. package/dist/automotive/gearRatio.d.ts +15 -0
  17. package/dist/automotive/gearRatio.d.ts.map +1 -0
  18. package/dist/automotive/gearRatio.js +39 -0
  19. package/dist/automotive/gearRatio.js.map +1 -0
  20. package/dist/automotive/index.d.ts +9 -0
  21. package/dist/automotive/index.d.ts.map +1 -0
  22. package/dist/automotive/index.js +9 -0
  23. package/dist/automotive/index.js.map +1 -0
  24. package/dist/automotive/power.d.ts +14 -0
  25. package/dist/automotive/power.d.ts.map +1 -0
  26. package/dist/automotive/power.js +52 -0
  27. package/dist/automotive/power.js.map +1 -0
  28. package/dist/automotive/tireCompare.d.ts +9 -0
  29. package/dist/automotive/tireCompare.d.ts.map +1 -0
  30. package/dist/automotive/tireCompare.js +54 -0
  31. package/dist/automotive/tireCompare.js.map +1 -0
  32. package/dist/automotive/torque.d.ts +14 -0
  33. package/dist/automotive/torque.d.ts.map +1 -0
  34. package/dist/automotive/torque.js +52 -0
  35. package/dist/automotive/torque.js.map +1 -0
  36. package/dist/automotive/types.d.ts +114 -0
  37. package/dist/automotive/types.d.ts.map +1 -0
  38. package/dist/automotive/types.js +2 -0
  39. package/dist/automotive/types.js.map +1 -0
  40. package/dist/chemical/batch.d.ts +12 -0
  41. package/dist/chemical/batch.d.ts.map +1 -0
  42. package/dist/chemical/batch.js +36 -0
  43. package/dist/chemical/batch.js.map +1 -0
  44. package/dist/chemical/concentration.d.ts +15 -0
  45. package/dist/chemical/concentration.d.ts.map +1 -0
  46. package/dist/chemical/concentration.js +45 -0
  47. package/dist/chemical/concentration.js.map +1 -0
  48. package/dist/chemical/dilution.d.ts +12 -0
  49. package/dist/chemical/dilution.d.ts.map +1 -0
  50. package/dist/chemical/dilution.js +68 -0
  51. package/dist/chemical/dilution.js.map +1 -0
  52. package/dist/chemical/index.d.ts +9 -0
  53. package/dist/chemical/index.d.ts.map +1 -0
  54. package/dist/chemical/index.js +9 -0
  55. package/dist/chemical/index.js.map +1 -0
  56. package/dist/chemical/injectionCycle.d.ts +19 -0
  57. package/dist/chemical/injectionCycle.d.ts.map +1 -0
  58. package/dist/chemical/injectionCycle.js +170 -0
  59. package/dist/chemical/injectionCycle.js.map +1 -0
  60. package/dist/chemical/ph.d.ts +13 -0
  61. package/dist/chemical/ph.d.ts.map +1 -0
  62. package/dist/chemical/ph.js +83 -0
  63. package/dist/chemical/ph.js.map +1 -0
  64. package/dist/chemical/reactor.d.ts +19 -0
  65. package/dist/chemical/reactor.d.ts.map +1 -0
  66. package/dist/chemical/reactor.js +57 -0
  67. package/dist/chemical/reactor.js.map +1 -0
  68. package/dist/chemical/shelfLife.d.ts +15 -0
  69. package/dist/chemical/shelfLife.d.ts.map +1 -0
  70. package/dist/chemical/shelfLife.js +36 -0
  71. package/dist/chemical/shelfLife.js.map +1 -0
  72. package/dist/chemical/types.d.ts +144 -0
  73. package/dist/chemical/types.d.ts.map +1 -0
  74. package/dist/chemical/types.js +2 -0
  75. package/dist/chemical/types.js.map +1 -0
  76. package/dist/construction/aggregate.d.ts +33 -0
  77. package/dist/construction/aggregate.d.ts.map +1 -0
  78. package/dist/construction/aggregate.js +92 -0
  79. package/dist/construction/aggregate.js.map +1 -0
  80. package/dist/construction/beamLoad.d.ts +12 -0
  81. package/dist/construction/beamLoad.d.ts.map +1 -0
  82. package/dist/construction/beamLoad.js +156 -0
  83. package/dist/construction/beamLoad.js.map +1 -0
  84. package/dist/construction/brick.d.ts +17 -0
  85. package/dist/construction/brick.d.ts.map +1 -0
  86. package/dist/construction/brick.js +53 -0
  87. package/dist/construction/brick.js.map +1 -0
  88. package/dist/construction/concreteMix.d.ts +9 -0
  89. package/dist/construction/concreteMix.d.ts.map +1 -0
  90. package/dist/construction/concreteMix.js +31 -0
  91. package/dist/construction/concreteMix.js.map +1 -0
  92. package/dist/construction/earthwork.d.ts +13 -0
  93. package/dist/construction/earthwork.d.ts.map +1 -0
  94. package/dist/construction/earthwork.js +25 -0
  95. package/dist/construction/earthwork.js.map +1 -0
  96. package/dist/construction/formwork.d.ts +9 -0
  97. package/dist/construction/formwork.d.ts.map +1 -0
  98. package/dist/construction/formwork.js +61 -0
  99. package/dist/construction/formwork.js.map +1 -0
  100. package/dist/construction/index.d.ts +13 -0
  101. package/dist/construction/index.d.ts.map +1 -0
  102. package/dist/construction/index.js +13 -0
  103. package/dist/construction/index.js.map +1 -0
  104. package/dist/construction/pert.d.ts +15 -0
  105. package/dist/construction/pert.d.ts.map +1 -0
  106. package/dist/construction/pert.js +207 -0
  107. package/dist/construction/pert.js.map +1 -0
  108. package/dist/construction/rebar.d.ts +16 -0
  109. package/dist/construction/rebar.d.ts.map +1 -0
  110. package/dist/construction/rebar.js +43 -0
  111. package/dist/construction/rebar.js.map +1 -0
  112. package/dist/construction/roof.d.ts +16 -0
  113. package/dist/construction/roof.d.ts.map +1 -0
  114. package/dist/construction/roof.js +65 -0
  115. package/dist/construction/roof.js.map +1 -0
  116. package/dist/construction/slope.d.ts +14 -0
  117. package/dist/construction/slope.d.ts.map +1 -0
  118. package/dist/construction/slope.js +54 -0
  119. package/dist/construction/slope.js.map +1 -0
  120. package/dist/construction/stair.d.ts +17 -0
  121. package/dist/construction/stair.d.ts.map +1 -0
  122. package/dist/construction/stair.js +69 -0
  123. package/dist/construction/stair.js.map +1 -0
  124. package/dist/construction/types.d.ts +219 -0
  125. package/dist/construction/types.d.ts.map +1 -0
  126. package/dist/construction/types.js +2 -0
  127. package/dist/construction/types.js.map +1 -0
  128. package/dist/electronics/awg.d.ts +9 -0
  129. package/dist/electronics/awg.d.ts.map +1 -0
  130. package/dist/electronics/awg.js +66 -0
  131. package/dist/electronics/awg.js.map +1 -0
  132. package/dist/electronics/capacitor.d.ts +9 -0
  133. package/dist/electronics/capacitor.d.ts.map +1 -0
  134. package/dist/electronics/capacitor.js +51 -0
  135. package/dist/electronics/capacitor.js.map +1 -0
  136. package/dist/electronics/index.d.ts +12 -0
  137. package/dist/electronics/index.d.ts.map +1 -0
  138. package/dist/electronics/index.js +12 -0
  139. package/dist/electronics/index.js.map +1 -0
  140. package/dist/electronics/led.d.ts +9 -0
  141. package/dist/electronics/led.d.ts.map +1 -0
  142. package/dist/electronics/led.js +72 -0
  143. package/dist/electronics/led.js.map +1 -0
  144. package/dist/electronics/reflow.d.ts +12 -0
  145. package/dist/electronics/reflow.d.ts.map +1 -0
  146. package/dist/electronics/reflow.js +77 -0
  147. package/dist/electronics/reflow.js.map +1 -0
  148. package/dist/electronics/resistor.d.ts +8 -0
  149. package/dist/electronics/resistor.d.ts.map +1 -0
  150. package/dist/electronics/resistor.js +137 -0
  151. package/dist/electronics/resistor.js.map +1 -0
  152. package/dist/electronics/smt-takt.d.ts +8 -0
  153. package/dist/electronics/smt-takt.d.ts.map +1 -0
  154. package/dist/electronics/smt-takt.js +59 -0
  155. package/dist/electronics/smt-takt.js.map +1 -0
  156. package/dist/electronics/solder.d.ts +8 -0
  157. package/dist/electronics/solder.d.ts.map +1 -0
  158. package/dist/electronics/solder.js +46 -0
  159. package/dist/electronics/solder.js.map +1 -0
  160. package/dist/electronics/stencil.d.ts +9 -0
  161. package/dist/electronics/stencil.d.ts.map +1 -0
  162. package/dist/electronics/stencil.js +78 -0
  163. package/dist/electronics/stencil.js.map +1 -0
  164. package/dist/electronics/trace.d.ts +8 -0
  165. package/dist/electronics/trace.d.ts.map +1 -0
  166. package/dist/electronics/trace.js +75 -0
  167. package/dist/electronics/trace.js.map +1 -0
  168. package/dist/electronics/types.d.ts +145 -0
  169. package/dist/electronics/types.d.ts.map +1 -0
  170. package/dist/electronics/types.js +2 -0
  171. package/dist/electronics/types.js.map +1 -0
  172. package/dist/electronics/via.d.ts +12 -0
  173. package/dist/electronics/via.d.ts.map +1 -0
  174. package/dist/electronics/via.js +63 -0
  175. package/dist/electronics/via.js.map +1 -0
  176. package/dist/energy/carbonFootprint.d.ts +13 -0
  177. package/dist/energy/carbonFootprint.d.ts.map +1 -0
  178. package/dist/energy/carbonFootprint.js +41 -0
  179. package/dist/energy/carbonFootprint.js.map +1 -0
  180. package/dist/energy/compressedAirCost.d.ts +14 -0
  181. package/dist/energy/compressedAirCost.d.ts.map +1 -0
  182. package/dist/energy/compressedAirCost.js +39 -0
  183. package/dist/energy/compressedAirCost.js.map +1 -0
  184. package/dist/energy/index.d.ts +8 -0
  185. package/dist/energy/index.d.ts.map +1 -0
  186. package/dist/energy/index.js +8 -0
  187. package/dist/energy/index.js.map +1 -0
  188. package/dist/energy/motorEfficiency.d.ts +14 -0
  189. package/dist/energy/motorEfficiency.d.ts.map +1 -0
  190. package/dist/energy/motorEfficiency.js +47 -0
  191. package/dist/energy/motorEfficiency.js.map +1 -0
  192. package/dist/energy/pfCorrection.d.ts +15 -0
  193. package/dist/energy/pfCorrection.d.ts.map +1 -0
  194. package/dist/energy/pfCorrection.js +56 -0
  195. package/dist/energy/pfCorrection.js.map +1 -0
  196. package/dist/energy/powerCost.d.ts +15 -0
  197. package/dist/energy/powerCost.d.ts.map +1 -0
  198. package/dist/energy/powerCost.js +37 -0
  199. package/dist/energy/powerCost.js.map +1 -0
  200. package/dist/energy/types.d.ts +119 -0
  201. package/dist/energy/types.d.ts.map +1 -0
  202. package/dist/energy/types.js +2 -0
  203. package/dist/energy/types.js.map +1 -0
  204. package/dist/energy/vfdSavings.d.ts +16 -0
  205. package/dist/energy/vfdSavings.d.ts.map +1 -0
  206. package/dist/energy/vfdSavings.js +57 -0
  207. package/dist/energy/vfdSavings.js.map +1 -0
  208. package/dist/food/calorie.d.ts +13 -0
  209. package/dist/food/calorie.d.ts.map +1 -0
  210. package/dist/food/calorie.js +42 -0
  211. package/dist/food/calorie.js.map +1 -0
  212. package/dist/food/expiry.d.ts +13 -0
  213. package/dist/food/expiry.d.ts.map +1 -0
  214. package/dist/food/expiry.js +58 -0
  215. package/dist/food/expiry.js.map +1 -0
  216. package/dist/food/haccp.d.ts +18 -0
  217. package/dist/food/haccp.d.ts.map +1 -0
  218. package/dist/food/haccp.js +70 -0
  219. package/dist/food/haccp.js.map +1 -0
  220. package/dist/food/index.d.ts +6 -0
  221. package/dist/food/index.d.ts.map +1 -0
  222. package/dist/food/index.js +6 -0
  223. package/dist/food/index.js.map +1 -0
  224. package/dist/food/nutrition.d.ts +12 -0
  225. package/dist/food/nutrition.d.ts.map +1 -0
  226. package/dist/food/nutrition.js +75 -0
  227. package/dist/food/nutrition.js.map +1 -0
  228. package/dist/food/types.d.ts +104 -0
  229. package/dist/food/types.d.ts.map +1 -0
  230. package/dist/food/types.js +2 -0
  231. package/dist/food/types.js.map +1 -0
  232. package/dist/index.d.ts +7 -0
  233. package/dist/index.d.ts.map +1 -0
  234. package/dist/index.js +9 -0
  235. package/dist/index.js.map +1 -0
  236. package/dist/logistics/cbm.d.ts +12 -0
  237. package/dist/logistics/cbm.d.ts.map +1 -0
  238. package/dist/logistics/cbm.js +37 -0
  239. package/dist/logistics/cbm.js.map +1 -0
  240. package/dist/logistics/containerFit.d.ts +12 -0
  241. package/dist/logistics/containerFit.d.ts.map +1 -0
  242. package/dist/logistics/containerFit.js +73 -0
  243. package/dist/logistics/containerFit.js.map +1 -0
  244. package/dist/logistics/dimWeight.d.ts +13 -0
  245. package/dist/logistics/dimWeight.d.ts.map +1 -0
  246. package/dist/logistics/dimWeight.js +50 -0
  247. package/dist/logistics/dimWeight.js.map +1 -0
  248. package/dist/logistics/eoq.d.ts +18 -0
  249. package/dist/logistics/eoq.d.ts.map +1 -0
  250. package/dist/logistics/eoq.js +42 -0
  251. package/dist/logistics/eoq.js.map +1 -0
  252. package/dist/logistics/fillRate.d.ts +22 -0
  253. package/dist/logistics/fillRate.d.ts.map +1 -0
  254. package/dist/logistics/fillRate.js +84 -0
  255. package/dist/logistics/fillRate.js.map +1 -0
  256. package/dist/logistics/freightClass.d.ts +12 -0
  257. package/dist/logistics/freightClass.d.ts.map +1 -0
  258. package/dist/logistics/freightClass.js +68 -0
  259. package/dist/logistics/freightClass.js.map +1 -0
  260. package/dist/logistics/index.d.ts +15 -0
  261. package/dist/logistics/index.d.ts.map +1 -0
  262. package/dist/logistics/index.js +15 -0
  263. package/dist/logistics/index.js.map +1 -0
  264. package/dist/logistics/kanban.d.ts +19 -0
  265. package/dist/logistics/kanban.d.ts.map +1 -0
  266. package/dist/logistics/kanban.js +48 -0
  267. package/dist/logistics/kanban.js.map +1 -0
  268. package/dist/logistics/pallet3d.d.ts +16 -0
  269. package/dist/logistics/pallet3d.d.ts.map +1 -0
  270. package/dist/logistics/pallet3d.js +380 -0
  271. package/dist/logistics/pallet3d.js.map +1 -0
  272. package/dist/logistics/palletStack.d.ts +12 -0
  273. package/dist/logistics/palletStack.d.ts.map +1 -0
  274. package/dist/logistics/palletStack.js +65 -0
  275. package/dist/logistics/palletStack.js.map +1 -0
  276. package/dist/logistics/pickTime.d.ts +17 -0
  277. package/dist/logistics/pickTime.d.ts.map +1 -0
  278. package/dist/logistics/pickTime.js +70 -0
  279. package/dist/logistics/pickTime.js.map +1 -0
  280. package/dist/logistics/safetyStock.d.ts +24 -0
  281. package/dist/logistics/safetyStock.d.ts.map +1 -0
  282. package/dist/logistics/safetyStock.js +99 -0
  283. package/dist/logistics/safetyStock.js.map +1 -0
  284. package/dist/logistics/shipping.d.ts +16 -0
  285. package/dist/logistics/shipping.d.ts.map +1 -0
  286. package/dist/logistics/shipping.js +115 -0
  287. package/dist/logistics/shipping.js.map +1 -0
  288. package/dist/logistics/tsp.d.ts +12 -0
  289. package/dist/logistics/tsp.d.ts.map +1 -0
  290. package/dist/logistics/tsp.js +166 -0
  291. package/dist/logistics/tsp.js.map +1 -0
  292. package/dist/logistics/types.d.ts +315 -0
  293. package/dist/logistics/types.d.ts.map +1 -0
  294. package/dist/logistics/types.js +5 -0
  295. package/dist/logistics/types.js.map +1 -0
  296. package/dist/metal/bearing.d.ts +11 -0
  297. package/dist/metal/bearing.d.ts.map +1 -0
  298. package/dist/metal/bearing.js +32 -0
  299. package/dist/metal/bearing.js.map +1 -0
  300. package/dist/metal/bendAllowance.d.ts +13 -0
  301. package/dist/metal/bendAllowance.d.ts.map +1 -0
  302. package/dist/metal/bendAllowance.js +75 -0
  303. package/dist/metal/bendAllowance.js.map +1 -0
  304. package/dist/metal/bolt.d.ts +32 -0
  305. package/dist/metal/bolt.d.ts.map +1 -0
  306. package/dist/metal/bolt.js +149 -0
  307. package/dist/metal/bolt.js.map +1 -0
  308. package/dist/metal/cutting.d.ts +10 -0
  309. package/dist/metal/cutting.d.ts.map +1 -0
  310. package/dist/metal/cutting.js +55 -0
  311. package/dist/metal/cutting.js.map +1 -0
  312. package/dist/metal/cuttingStock.d.ts +8 -0
  313. package/dist/metal/cuttingStock.d.ts.map +1 -0
  314. package/dist/metal/cuttingStock.js +89 -0
  315. package/dist/metal/cuttingStock.js.map +1 -0
  316. package/dist/metal/flatPattern.d.ts +12 -0
  317. package/dist/metal/flatPattern.d.ts.map +1 -0
  318. package/dist/metal/flatPattern.js +50 -0
  319. package/dist/metal/flatPattern.js.map +1 -0
  320. package/dist/metal/gear.d.ts +13 -0
  321. package/dist/metal/gear.d.ts.map +1 -0
  322. package/dist/metal/gear.js +79 -0
  323. package/dist/metal/gear.js.map +1 -0
  324. package/dist/metal/hardness.d.ts +15 -0
  325. package/dist/metal/hardness.d.ts.map +1 -0
  326. package/dist/metal/hardness.js +77 -0
  327. package/dist/metal/hardness.js.map +1 -0
  328. package/dist/metal/index.d.ts +24 -0
  329. package/dist/metal/index.d.ts.map +1 -0
  330. package/dist/metal/index.js +24 -0
  331. package/dist/metal/index.js.map +1 -0
  332. package/dist/metal/kFactorReverse.d.ts +19 -0
  333. package/dist/metal/kFactorReverse.d.ts.map +1 -0
  334. package/dist/metal/kFactorReverse.js +39 -0
  335. package/dist/metal/kFactorReverse.js.map +1 -0
  336. package/dist/metal/material.d.ts +5 -0
  337. package/dist/metal/material.d.ts.map +1 -0
  338. package/dist/metal/material.js +56 -0
  339. package/dist/metal/material.js.map +1 -0
  340. package/dist/metal/metalWeight.d.ts +10 -0
  341. package/dist/metal/metalWeight.d.ts.map +1 -0
  342. package/dist/metal/metalWeight.js +82 -0
  343. package/dist/metal/metalWeight.js.map +1 -0
  344. package/dist/metal/pressFit.d.ts +15 -0
  345. package/dist/metal/pressFit.d.ts.map +1 -0
  346. package/dist/metal/pressFit.js +96 -0
  347. package/dist/metal/pressFit.js.map +1 -0
  348. package/dist/metal/pressTonnage.d.ts +13 -0
  349. package/dist/metal/pressTonnage.d.ts.map +1 -0
  350. package/dist/metal/pressTonnage.js +86 -0
  351. package/dist/metal/pressTonnage.js.map +1 -0
  352. package/dist/metal/roughness.d.ts +6 -0
  353. package/dist/metal/roughness.d.ts.map +1 -0
  354. package/dist/metal/roughness.js +62 -0
  355. package/dist/metal/roughness.js.map +1 -0
  356. package/dist/metal/screw.d.ts +7 -0
  357. package/dist/metal/screw.d.ts.map +1 -0
  358. package/dist/metal/screw.js +44 -0
  359. package/dist/metal/screw.js.map +1 -0
  360. package/dist/metal/spring.d.ts +11 -0
  361. package/dist/metal/spring.d.ts.map +1 -0
  362. package/dist/metal/spring.js +59 -0
  363. package/dist/metal/spring.js.map +1 -0
  364. package/dist/metal/tap.d.ts +16 -0
  365. package/dist/metal/tap.d.ts.map +1 -0
  366. package/dist/metal/tap.js +62 -0
  367. package/dist/metal/tap.js.map +1 -0
  368. package/dist/metal/thread.d.ts +8 -0
  369. package/dist/metal/thread.d.ts.map +1 -0
  370. package/dist/metal/thread.js +75 -0
  371. package/dist/metal/thread.js.map +1 -0
  372. package/dist/metal/tolerance.d.ts +6 -0
  373. package/dist/metal/tolerance.d.ts.map +1 -0
  374. package/dist/metal/tolerance.js +113 -0
  375. package/dist/metal/tolerance.js.map +1 -0
  376. package/dist/metal/types.d.ts +494 -0
  377. package/dist/metal/types.d.ts.map +1 -0
  378. package/dist/metal/types.js +2 -0
  379. package/dist/metal/types.js.map +1 -0
  380. package/dist/metal/vibration.d.ts +6 -0
  381. package/dist/metal/vibration.d.ts.map +1 -0
  382. package/dist/metal/vibration.js +153 -0
  383. package/dist/metal/vibration.js.map +1 -0
  384. package/dist/metal/weldHeat.d.ts +6 -0
  385. package/dist/metal/weldHeat.d.ts.map +1 -0
  386. package/dist/metal/weldHeat.js +138 -0
  387. package/dist/metal/weldHeat.js.map +1 -0
  388. package/dist/metal/welding.d.ts +6 -0
  389. package/dist/metal/welding.d.ts.map +1 -0
  390. package/dist/metal/welding.js +80 -0
  391. package/dist/metal/welding.js.map +1 -0
  392. package/dist/quality/aql.d.ts +10 -0
  393. package/dist/quality/aql.d.ts.map +1 -0
  394. package/dist/quality/aql.js +104 -0
  395. package/dist/quality/aql.js.map +1 -0
  396. package/dist/quality/cpk.d.ts +14 -0
  397. package/dist/quality/cpk.d.ts.map +1 -0
  398. package/dist/quality/cpk.js +44 -0
  399. package/dist/quality/cpk.js.map +1 -0
  400. package/dist/quality/cycle.d.ts +11 -0
  401. package/dist/quality/cycle.d.ts.map +1 -0
  402. package/dist/quality/cycle.js +55 -0
  403. package/dist/quality/cycle.js.map +1 -0
  404. package/dist/quality/downtime.d.ts +9 -0
  405. package/dist/quality/downtime.d.ts.map +1 -0
  406. package/dist/quality/downtime.js +28 -0
  407. package/dist/quality/downtime.js.map +1 -0
  408. package/dist/quality/dpmo.d.ts +10 -0
  409. package/dist/quality/dpmo.d.ts.map +1 -0
  410. package/dist/quality/dpmo.js +114 -0
  411. package/dist/quality/dpmo.js.map +1 -0
  412. package/dist/quality/index.d.ts +15 -0
  413. package/dist/quality/index.d.ts.map +1 -0
  414. package/dist/quality/index.js +15 -0
  415. package/dist/quality/index.js.map +1 -0
  416. package/dist/quality/lineBalancing.d.ts +9 -0
  417. package/dist/quality/lineBalancing.d.ts.map +1 -0
  418. package/dist/quality/lineBalancing.js +185 -0
  419. package/dist/quality/lineBalancing.js.map +1 -0
  420. package/dist/quality/mtbf.d.ts +13 -0
  421. package/dist/quality/mtbf.d.ts.map +1 -0
  422. package/dist/quality/mtbf.js +48 -0
  423. package/dist/quality/mtbf.js.map +1 -0
  424. package/dist/quality/oee.d.ts +11 -0
  425. package/dist/quality/oee.d.ts.map +1 -0
  426. package/dist/quality/oee.js +43 -0
  427. package/dist/quality/oee.js.map +1 -0
  428. package/dist/quality/ppk.d.ts +15 -0
  429. package/dist/quality/ppk.d.ts.map +1 -0
  430. package/dist/quality/ppk.js +61 -0
  431. package/dist/quality/ppk.js.map +1 -0
  432. package/dist/quality/ppm.d.ts +9 -0
  433. package/dist/quality/ppm.d.ts.map +1 -0
  434. package/dist/quality/ppm.js +134 -0
  435. package/dist/quality/ppm.js.map +1 -0
  436. package/dist/quality/rpn.d.ts +11 -0
  437. package/dist/quality/rpn.d.ts.map +1 -0
  438. package/dist/quality/rpn.js +48 -0
  439. package/dist/quality/rpn.js.map +1 -0
  440. package/dist/quality/takt.d.ts +13 -0
  441. package/dist/quality/takt.d.ts.map +1 -0
  442. package/dist/quality/takt.js +44 -0
  443. package/dist/quality/takt.js.map +1 -0
  444. package/dist/quality/types.d.ts +261 -0
  445. package/dist/quality/types.d.ts.map +1 -0
  446. package/dist/quality/types.js +2 -0
  447. package/dist/quality/types.js.map +1 -0
  448. package/dist/quality/yield.d.ts +12 -0
  449. package/dist/quality/yield.d.ts.map +1 -0
  450. package/dist/quality/yield.js +56 -0
  451. package/dist/quality/yield.js.map +1 -0
  452. package/dist/safety/fallClearance.d.ts +12 -0
  453. package/dist/safety/fallClearance.d.ts.map +1 -0
  454. package/dist/safety/fallClearance.js +37 -0
  455. package/dist/safety/fallClearance.js.map +1 -0
  456. package/dist/safety/havsCalculate.d.ts +16 -0
  457. package/dist/safety/havsCalculate.d.ts.map +1 -0
  458. package/dist/safety/havsCalculate.js +103 -0
  459. package/dist/safety/havsCalculate.js.map +1 -0
  460. package/dist/safety/index.d.ts +8 -0
  461. package/dist/safety/index.d.ts.map +1 -0
  462. package/dist/safety/index.js +8 -0
  463. package/dist/safety/index.js.map +1 -0
  464. package/dist/safety/nioshLifting.d.ts +21 -0
  465. package/dist/safety/nioshLifting.d.ts.map +1 -0
  466. package/dist/safety/nioshLifting.js +164 -0
  467. package/dist/safety/nioshLifting.js.map +1 -0
  468. package/dist/safety/noiseExposure.d.ts +22 -0
  469. package/dist/safety/noiseExposure.d.ts.map +1 -0
  470. package/dist/safety/noiseExposure.js +76 -0
  471. package/dist/safety/noiseExposure.js.map +1 -0
  472. package/dist/safety/respiratorCalculate.d.ts +14 -0
  473. package/dist/safety/respiratorCalculate.d.ts.map +1 -0
  474. package/dist/safety/respiratorCalculate.js +90 -0
  475. package/dist/safety/respiratorCalculate.js.map +1 -0
  476. package/dist/safety/types.d.ts +93 -0
  477. package/dist/safety/types.d.ts.map +1 -0
  478. package/dist/safety/types.js +2 -0
  479. package/dist/safety/types.js.map +1 -0
  480. package/dist/safety/wbgtCalculate.d.ts +25 -0
  481. package/dist/safety/wbgtCalculate.d.ts.map +1 -0
  482. package/dist/safety/wbgtCalculate.js +65 -0
  483. package/dist/safety/wbgtCalculate.js.map +1 -0
  484. package/dist/utility/assignment.d.ts +11 -0
  485. package/dist/utility/assignment.d.ts.map +1 -0
  486. package/dist/utility/assignment.js +113 -0
  487. package/dist/utility/assignment.js.map +1 -0
  488. package/dist/utility/index.d.ts +4 -0
  489. package/dist/utility/index.d.ts.map +1 -0
  490. package/dist/utility/index.js +4 -0
  491. package/dist/utility/index.js.map +1 -0
  492. package/dist/utility/qrcode.d.ts +30 -0
  493. package/dist/utility/qrcode.d.ts.map +1 -0
  494. package/dist/utility/qrcode.js +30 -0
  495. package/dist/utility/qrcode.js.map +1 -0
  496. package/dist/utility/types.d.ts +64 -0
  497. package/dist/utility/types.d.ts.map +1 -0
  498. package/dist/utility/types.js +2 -0
  499. package/dist/utility/types.js.map +1 -0
  500. package/dist/utility/unit.d.ts +25 -0
  501. package/dist/utility/unit.d.ts.map +1 -0
  502. package/dist/utility/unit.js +136 -0
  503. package/dist/utility/unit.js.map +1 -0
  504. package/dist/utils.d.ts +9 -0
  505. package/dist/utils.d.ts.map +1 -0
  506. package/dist/utils.js +12 -0
  507. package/dist/utils.js.map +1 -0
  508. package/package.json +117 -0
@@ -0,0 +1,145 @@
1
+ export type PasteType = 'sac305' | 'sn63pb37' | 'sac387' | 'snbi58';
2
+ export interface ReflowInput {
3
+ pasteType: PasteType;
4
+ }
5
+ export interface ReflowResult {
6
+ pasteType: string;
7
+ meltingPoint: number;
8
+ preheatRate: string;
9
+ preheatTemp: string;
10
+ preheatTime: string;
11
+ soakTemp: string;
12
+ soakTime: string;
13
+ peakTemp: string;
14
+ timeAboveLiquidus: string;
15
+ coolingRate: string;
16
+ totalProfileTime: string;
17
+ }
18
+ export type BandCount = 4 | 5 | 6;
19
+ export type ColorName = 'black' | 'brown' | 'red' | 'orange' | 'yellow' | 'green' | 'blue' | 'violet' | 'grey' | 'white' | 'gold' | 'silver';
20
+ export interface ResistorBands {
21
+ bandCount: BandCount;
22
+ bands: ColorName[];
23
+ }
24
+ export interface ResistorResult {
25
+ resistance: number;
26
+ tolerance: number;
27
+ tempCoeff?: number;
28
+ formatted: string;
29
+ }
30
+ export interface SmtTaktInput {
31
+ placementRate: number;
32
+ componentsPerBoard: number;
33
+ boardsPerPanel: number;
34
+ setupTimeSec: number;
35
+ availableTimeMin: number;
36
+ }
37
+ export interface SmtTaktResult {
38
+ placementTimeSec: number;
39
+ totalCycleTimeSec: number;
40
+ boardsPerHour: number;
41
+ totalBoardsPerShift: number;
42
+ lineUtilization: number;
43
+ }
44
+ export interface SolderInput {
45
+ padCount: number;
46
+ avgPadArea: number;
47
+ stencilThickness: number;
48
+ transferEfficiency: number;
49
+ density: number;
50
+ boardsPerPanel: number;
51
+ panelCount: number;
52
+ }
53
+ export interface SolderResult {
54
+ volumePerBoard: number;
55
+ weightPerBoard: number;
56
+ totalVolume: number;
57
+ totalWeight: number;
58
+ totalWeightKg: number;
59
+ }
60
+ export type TraceLayer = 'external' | 'internal';
61
+ export interface TraceInput {
62
+ current: number;
63
+ tempRise: number;
64
+ copperWeight: number;
65
+ layer: TraceLayer;
66
+ }
67
+ export interface TraceResult {
68
+ widthMils: number;
69
+ widthMm: number;
70
+ crossSection: number;
71
+ resistance: number;
72
+ voltageDrop: number;
73
+ powerLoss: number;
74
+ }
75
+ export type AwgMaterial = 'copper' | 'aluminum';
76
+ export interface AwgInput {
77
+ awg: number;
78
+ material: AwgMaterial;
79
+ tempC: number;
80
+ }
81
+ export interface AwgResult {
82
+ diameterMm: number;
83
+ diameterMils: number;
84
+ areaMm2: number;
85
+ areaCircularMils: number;
86
+ resistancePerM: number;
87
+ resistancePerFt: number;
88
+ currentCapacity: number;
89
+ }
90
+ export interface CapacitorCodeInput {
91
+ code: string;
92
+ }
93
+ export interface CapacitorCodeResult {
94
+ picofarads: number;
95
+ nanofarads: number;
96
+ microfarads: number;
97
+ formatted: string;
98
+ significantFigures: number;
99
+ multiplier: number;
100
+ }
101
+ export interface LedResistorInput {
102
+ supplyVoltage: number;
103
+ forwardVoltage: number;
104
+ forwardCurrent: number;
105
+ }
106
+ export interface LedResistorResult {
107
+ resistance: number;
108
+ standardResistance: number;
109
+ powerDissipation: number;
110
+ actualCurrent: number;
111
+ }
112
+ export type ApertureShape = 'rectangle' | 'circle';
113
+ export type ComponentType = 'bga' | 'qfp' | 'chip' | 'sot' | 'general';
114
+ export interface StencilInput {
115
+ shape: ApertureShape;
116
+ apertureWidth: number;
117
+ apertureLength: number;
118
+ stencilThickness: number;
119
+ componentType: ComponentType;
120
+ }
121
+ export interface StencilResult {
122
+ apertureArea: number;
123
+ wallArea: number;
124
+ areaRatio: number;
125
+ aspectRatio: number;
126
+ areaRatioOk: boolean;
127
+ aspectRatioOk: boolean;
128
+ recommendedAreaRatio: number;
129
+ recommendedAspectRatio: number;
130
+ status: 'good' | 'marginal' | 'poor';
131
+ }
132
+ export interface ViaInput {
133
+ holeDiameter: number;
134
+ platingThickness: number;
135
+ viaLength: number;
136
+ tempRise: number;
137
+ }
138
+ export interface ViaResult {
139
+ currentCapacity: number;
140
+ crossSectionMm2: number;
141
+ thermalResistance: number;
142
+ resistanceMOhm: number;
143
+ powerDissipation: number;
144
+ }
145
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/electronics/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/electronics/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import type { ViaInput, ViaResult } from './types.js';
2
+ /**
3
+ * Calculate PCB via current capacity using IPC-2152 approximation
4
+ *
5
+ * The cross-sectional area is the copper ring: π × [(r_outer)² - (r_inner)²]
6
+ * Where r_outer = holeDiameter/2 + platingThickness and r_inner = holeDiameter/2
7
+ *
8
+ * @param input - Via hole diameter, plating thickness, via length, and temp rise
9
+ * @returns Via current capacity and related properties, or null if invalid
10
+ */
11
+ export declare function viaCurrent(input: ViaInput): ViaResult | null;
12
+ //# sourceMappingURL=via.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"via.d.ts","sourceRoot":"","sources":["../../src/electronics/via.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAoBtD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,CA+C5D"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Round to specified decimal places
3
+ */
4
+ function roundTo(value, decimals) {
5
+ const factor = Math.pow(10, decimals);
6
+ return Math.round(value * factor) / factor;
7
+ }
8
+ // Copper resistivity at 20°C in Ω·mm²/m
9
+ const COPPER_RESISTIVITY = 0.01724;
10
+ // IPC-2152 via current capacity constants
11
+ // I = k × ΔT^b × A^c
12
+ // For internal vias: k=0.048, b=0.44, c=0.725 (similar to internal traces)
13
+ const IPC_K = 0.048;
14
+ const IPC_B = 0.44;
15
+ const IPC_C = 0.725;
16
+ /**
17
+ * Calculate PCB via current capacity using IPC-2152 approximation
18
+ *
19
+ * The cross-sectional area is the copper ring: π × [(r_outer)² - (r_inner)²]
20
+ * Where r_outer = holeDiameter/2 + platingThickness and r_inner = holeDiameter/2
21
+ *
22
+ * @param input - Via hole diameter, plating thickness, via length, and temp rise
23
+ * @returns Via current capacity and related properties, or null if invalid
24
+ */
25
+ export function viaCurrent(input) {
26
+ const { holeDiameter, platingThickness, viaLength, tempRise } = input;
27
+ // Validate inputs
28
+ if (holeDiameter <= 0 || platingThickness <= 0 || viaLength <= 0 || tempRise <= 0) {
29
+ return null;
30
+ }
31
+ // Convert plating thickness from μm to mm
32
+ const platingMm = platingThickness / 1000;
33
+ // Calculate inner and outer radii
34
+ const innerRadius = holeDiameter / 2;
35
+ const outerRadius = innerRadius + platingMm;
36
+ // Cross-sectional area of the copper ring (mm²)
37
+ const crossSectionMm2 = Math.PI * (outerRadius * outerRadius - innerRadius * innerRadius);
38
+ // For IPC-2152, convert area to mils² (1 mm = 39.37 mils)
39
+ const crossSectionMils2 = crossSectionMm2 * 39.37 * 39.37;
40
+ // Current capacity using IPC-2152 formula (similar to internal layer)
41
+ // I = k × ΔT^b × A^c
42
+ const currentCapacity = IPC_K * Math.pow(tempRise, IPC_B) * Math.pow(crossSectionMils2, IPC_C);
43
+ // Via resistance (Ω)
44
+ // R = ρ × L / A (where ρ is in Ω·mm²/m, L in m, A in mm²)
45
+ const viaLengthM = viaLength / 1000;
46
+ const resistance = (COPPER_RESISTIVITY * viaLengthM) / crossSectionMm2;
47
+ const resistanceMOhm = resistance * 1000; // Convert to mΩ
48
+ // Thermal resistance approximation (simplified)
49
+ // For a cylindrical via: Rth ≈ L / (k × A) where k is thermal conductivity
50
+ // Copper thermal conductivity ≈ 385 W/(m·K)
51
+ const COPPER_THERMAL_CONDUCTIVITY = 385;
52
+ const thermalResistance = viaLengthM / (COPPER_THERMAL_CONDUCTIVITY * crossSectionMm2 / 1000000);
53
+ // Power dissipation at maximum current (mW)
54
+ const powerDissipation = currentCapacity * currentCapacity * resistance * 1000;
55
+ return {
56
+ currentCapacity: roundTo(currentCapacity, 2),
57
+ crossSectionMm2: roundTo(crossSectionMm2, 5),
58
+ thermalResistance: roundTo(thermalResistance, 2),
59
+ resistanceMOhm: roundTo(resistanceMOhm, 4),
60
+ powerDissipation: roundTo(powerDissipation, 2),
61
+ };
62
+ }
63
+ //# sourceMappingURL=via.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"via.js","sourceRoot":"","sources":["../../src/electronics/via.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,SAAS,OAAO,CAAC,KAAa,EAAE,QAAgB;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACtC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;AAC7C,CAAC;AAED,wCAAwC;AACxC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAEnC,0CAA0C;AAC1C,qBAAqB;AACrB,2EAA2E;AAC3E,MAAM,KAAK,GAAG,KAAK,CAAC;AACpB,MAAM,KAAK,GAAG,IAAI,CAAC;AACnB,MAAM,KAAK,GAAG,KAAK,CAAC;AAEpB;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,KAAe;IACxC,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEtE,kBAAkB;IAClB,IAAI,YAAY,IAAI,CAAC,IAAI,gBAAgB,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0CAA0C;IAC1C,MAAM,SAAS,GAAG,gBAAgB,GAAG,IAAI,CAAC;IAE1C,kCAAkC;IAClC,MAAM,WAAW,GAAG,YAAY,GAAG,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;IAE5C,gDAAgD;IAChD,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC;IAE1F,0DAA0D;IAC1D,MAAM,iBAAiB,GAAG,eAAe,GAAG,KAAK,GAAG,KAAK,CAAC;IAE1D,sEAAsE;IACtE,qBAAqB;IACrB,MAAM,eAAe,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IAE/F,qBAAqB;IACrB,0DAA0D;IAC1D,MAAM,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC;IACpC,MAAM,UAAU,GAAG,CAAC,kBAAkB,GAAG,UAAU,CAAC,GAAG,eAAe,CAAC;IACvE,MAAM,cAAc,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,gBAAgB;IAE1D,gDAAgD;IAChD,2EAA2E;IAC3E,4CAA4C;IAC5C,MAAM,2BAA2B,GAAG,GAAG,CAAC;IACxC,MAAM,iBAAiB,GAAG,UAAU,GAAG,CAAC,2BAA2B,GAAG,eAAe,GAAG,OAAO,CAAC,CAAC;IAEjG,4CAA4C;IAC5C,MAAM,gBAAgB,GAAG,eAAe,GAAG,eAAe,GAAG,UAAU,GAAG,IAAI,CAAC;IAE/E,OAAO;QACL,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;QAC5C,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;QAC5C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChD,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAC1C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;KAC/C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { CarbonFootprintInput, CarbonFootprintResult } from './types.js';
2
+ /**
3
+ * Calculate carbon footprint from electricity usage
4
+ *
5
+ * CO2 (kg) = electricity usage (kWh) * emission factor (g CO2/kWh) / 1000
6
+ * Trees equivalent = CO2 (kg) / 21.76 (kg CO2 absorbed per tree per year)
7
+ * Cars equivalent = CO2 (kg) / 4600 (kg CO2 emitted per car per year)
8
+ *
9
+ * @param input - Carbon footprint input parameters
10
+ * @returns Carbon footprint result with CO2 emissions and environmental equivalents
11
+ */
12
+ export declare function carbonFootprint(input: CarbonFootprintInput): CarbonFootprintResult;
13
+ //# sourceMappingURL=carbonFootprint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carbonFootprint.d.ts","sourceRoot":"","sources":["../../src/energy/carbonFootprint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAQ9E;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,qBAAqB,CA4BlF"}
@@ -0,0 +1,41 @@
1
+ // Constants for environmental equivalents
2
+ // Average tree absorbs ~21.76 kg CO2 per year (EPA estimate)
3
+ const KG_CO2_PER_TREE_PER_YEAR = 21.76;
4
+ // Average passenger vehicle emits ~4,600 kg CO2 per year (EPA estimate)
5
+ const KG_CO2_PER_CAR_PER_YEAR = 4600;
6
+ /**
7
+ * Calculate carbon footprint from electricity usage
8
+ *
9
+ * CO2 (kg) = electricity usage (kWh) * emission factor (g CO2/kWh) / 1000
10
+ * Trees equivalent = CO2 (kg) / 21.76 (kg CO2 absorbed per tree per year)
11
+ * Cars equivalent = CO2 (kg) / 4600 (kg CO2 emitted per car per year)
12
+ *
13
+ * @param input - Carbon footprint input parameters
14
+ * @returns Carbon footprint result with CO2 emissions and environmental equivalents
15
+ */
16
+ export function carbonFootprint(input) {
17
+ const { electricityUsage, emissionFactor } = input;
18
+ // Handle edge case - zero usage
19
+ if (electricityUsage <= 0) {
20
+ return {
21
+ co2Kg: 0,
22
+ co2Tonnes: 0,
23
+ treesEquivalent: 0,
24
+ carsEquivalent: 0,
25
+ };
26
+ }
27
+ // Calculate CO2 emissions
28
+ // emission factor is in g CO2/kWh, convert to kg
29
+ const co2Kg = (electricityUsage * emissionFactor) / 1000;
30
+ const co2Tonnes = co2Kg / 1000;
31
+ // Calculate environmental equivalents
32
+ const treesEquivalent = Math.round(co2Kg / KG_CO2_PER_TREE_PER_YEAR);
33
+ const carsEquivalent = co2Kg / KG_CO2_PER_CAR_PER_YEAR;
34
+ return {
35
+ co2Kg,
36
+ co2Tonnes,
37
+ treesEquivalent,
38
+ carsEquivalent,
39
+ };
40
+ }
41
+ //# sourceMappingURL=carbonFootprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carbonFootprint.js","sourceRoot":"","sources":["../../src/energy/carbonFootprint.ts"],"names":[],"mappings":"AAEA,0CAA0C;AAC1C,6DAA6D;AAC7D,MAAM,wBAAwB,GAAG,KAAK,CAAC;AACvC,wEAAwE;AACxE,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAEnD,gCAAgC;IAChC,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO;YACL,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,CAAC;YACZ,eAAe,EAAE,CAAC;YAClB,cAAc,EAAE,CAAC;SAClB,CAAC;IACJ,CAAC;IAED,0BAA0B;IAC1B,iDAAiD;IACjD,MAAM,KAAK,GAAG,CAAC,gBAAgB,GAAG,cAAc,CAAC,GAAG,IAAI,CAAC;IACzD,MAAM,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC;IAE/B,sCAAsC;IACtC,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,wBAAwB,CAAC,CAAC;IACrE,MAAM,cAAc,GAAG,KAAK,GAAG,uBAAuB,CAAC;IAEvD,OAAO;QACL,KAAK;QACL,SAAS;QACT,eAAe;QACf,cAAc;KACf,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { CompressedAirCostInput, CompressedAirCostResult } from './types.js';
2
+ /**
3
+ * Calculate compressed air production cost
4
+ *
5
+ * Electricity cost = compressor power (kW) * running hours * electricity rate ($/kWh)
6
+ * Total cost = electricity cost + maintenance cost
7
+ * Cost per m3 = total cost / air output (m3)
8
+ * Cost per CFM = cost per m3 / 35.3147 (m3 to CFM conversion)
9
+ *
10
+ * @param input - Compressed air cost input parameters
11
+ * @returns Compressed air cost result
12
+ */
13
+ export declare function compressedAirCost(input: CompressedAirCostInput): CompressedAirCostResult;
14
+ //# sourceMappingURL=compressedAirCost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compressedAirCost.d.ts","sourceRoot":"","sources":["../../src/energy/compressedAirCost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAKlF;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,uBAAuB,CA6BxF"}
@@ -0,0 +1,39 @@
1
+ // Conversion factor: 1 m3 = 35.3147 CFM (cubic feet per minute)
2
+ const M3_TO_CFM = 35.3147;
3
+ /**
4
+ * Calculate compressed air production cost
5
+ *
6
+ * Electricity cost = compressor power (kW) * running hours * electricity rate ($/kWh)
7
+ * Total cost = electricity cost + maintenance cost
8
+ * Cost per m3 = total cost / air output (m3)
9
+ * Cost per CFM = cost per m3 / 35.3147 (m3 to CFM conversion)
10
+ *
11
+ * @param input - Compressed air cost input parameters
12
+ * @returns Compressed air cost result
13
+ */
14
+ export function compressedAirCost(input) {
15
+ const { compressorPower, runningHours, electricityRate, airOutput, maintenanceCost } = input;
16
+ // Handle edge case - invalid inputs
17
+ if (compressorPower <= 0 || runningHours <= 0 || airOutput <= 0) {
18
+ return {
19
+ electricityCost: 0,
20
+ totalCost: 0,
21
+ costPerM3: 0,
22
+ costPerCfm: 0,
23
+ };
24
+ }
25
+ // Calculate electricity cost
26
+ const electricityCost = compressorPower * runningHours * electricityRate;
27
+ // Calculate total cost
28
+ const totalCost = electricityCost + maintenanceCost;
29
+ // Calculate cost per unit volume
30
+ const costPerM3 = totalCost / airOutput;
31
+ const costPerCfm = costPerM3 / M3_TO_CFM;
32
+ return {
33
+ electricityCost,
34
+ totalCost,
35
+ costPerM3,
36
+ costPerCfm,
37
+ };
38
+ }
39
+ //# sourceMappingURL=compressedAirCost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compressedAirCost.js","sourceRoot":"","sources":["../../src/energy/compressedAirCost.ts"],"names":[],"mappings":"AAEA,gEAAgE;AAChE,MAAM,SAAS,GAAG,OAAO,CAAC;AAE1B;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAA6B;IAC7D,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAE7F,oCAAoC;IACpC,IAAI,eAAe,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QAChE,OAAO;YACL,eAAe,EAAE,CAAC;YAClB,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC;SACd,CAAC;IACJ,CAAC;IAED,6BAA6B;IAC7B,MAAM,eAAe,GAAG,eAAe,GAAG,YAAY,GAAG,eAAe,CAAC;IAEzE,uBAAuB;IACvB,MAAM,SAAS,GAAG,eAAe,GAAG,eAAe,CAAC;IAEpD,iCAAiC;IACjC,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IACxC,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IAEzC,OAAO;QACL,eAAe;QACf,SAAS;QACT,SAAS;QACT,UAAU;KACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { carbonFootprint } from './carbonFootprint.js';
2
+ export { compressedAirCost } from './compressedAirCost.js';
3
+ export { motorEfficiency } from './motorEfficiency.js';
4
+ export { pfCorrection } from './pfCorrection.js';
5
+ export { powerCost } from './powerCost.js';
6
+ export { vfdSavings } from './vfdSavings.js';
7
+ export type { CarbonFootprintInput, CarbonFootprintResult, CompressedAirCostInput, CompressedAirCostResult, MotorEfficiencyInput, MotorEfficiencyResult, PfCorrectionInput, PfCorrectionResult, PowerCostInput, PowerCostResult, VfdSavingsInput, VfdSavingsResult, } from './types.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/energy/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,YAAY,EAEV,oBAAoB,EACpB,qBAAqB,EAErB,sBAAsB,EACtB,uBAAuB,EAEvB,oBAAoB,EACpB,qBAAqB,EAErB,iBAAiB,EACjB,kBAAkB,EAElB,cAAc,EACd,eAAe,EAEf,eAAe,EACf,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ // Energy domain formulas
2
+ export { carbonFootprint } from './carbonFootprint.js';
3
+ export { compressedAirCost } from './compressedAirCost.js';
4
+ export { motorEfficiency } from './motorEfficiency.js';
5
+ export { pfCorrection } from './pfCorrection.js';
6
+ export { powerCost } from './powerCost.js';
7
+ export { vfdSavings } from './vfdSavings.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/energy/index.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { MotorEfficiencyInput, MotorEfficiencyResult } from './types.js';
2
+ /**
3
+ * Calculate motor efficiency upgrade economics
4
+ *
5
+ * Annual energy = motor power (kW) * running hours * load factor / efficiency
6
+ * Annual cost = annual energy * electricity rate
7
+ * Annual savings = current annual cost - new annual cost
8
+ * Payback period = upgrade cost / annual savings
9
+ *
10
+ * @param input - Motor efficiency input parameters
11
+ * @returns Motor efficiency result with costs, savings, and payback period
12
+ */
13
+ export declare function motorEfficiency(input: MotorEfficiencyInput): MotorEfficiencyResult;
14
+ //# sourceMappingURL=motorEfficiency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motorEfficiency.d.ts","sourceRoot":"","sources":["../../src/energy/motorEfficiency.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE9E;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,qBAAqB,CAgDlF"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Calculate motor efficiency upgrade economics
3
+ *
4
+ * Annual energy = motor power (kW) * running hours * load factor / efficiency
5
+ * Annual cost = annual energy * electricity rate
6
+ * Annual savings = current annual cost - new annual cost
7
+ * Payback period = upgrade cost / annual savings
8
+ *
9
+ * @param input - Motor efficiency input parameters
10
+ * @returns Motor efficiency result with costs, savings, and payback period
11
+ */
12
+ export function motorEfficiency(input) {
13
+ const { motorPower, runningHours, currentEfficiency, newEfficiency, electricityRate, loadFactor, upgradeCost, } = input;
14
+ // Handle edge case - invalid efficiency values
15
+ if (currentEfficiency <= 0 || newEfficiency <= 0) {
16
+ return {
17
+ currentAnnualCost: 0,
18
+ newAnnualCost: 0,
19
+ annualSavings: 0,
20
+ energySavings: 0,
21
+ paybackPeriod: null,
22
+ };
23
+ }
24
+ // Calculate annual energy consumption for each efficiency level
25
+ // Energy = Power * Hours * LoadFactor / Efficiency
26
+ const currentAnnualEnergy = (motorPower * runningHours * loadFactor) / currentEfficiency;
27
+ const newAnnualEnergy = (motorPower * runningHours * loadFactor) / newEfficiency;
28
+ // Calculate annual costs
29
+ const currentAnnualCost = currentAnnualEnergy * electricityRate;
30
+ const newAnnualCost = newAnnualEnergy * electricityRate;
31
+ // Calculate savings
32
+ const annualSavings = currentAnnualCost - newAnnualCost;
33
+ const energySavings = currentAnnualEnergy - newAnnualEnergy;
34
+ // Calculate payback period
35
+ let paybackPeriod = null;
36
+ if (upgradeCost !== undefined && upgradeCost > 0 && annualSavings > 0) {
37
+ paybackPeriod = upgradeCost / annualSavings;
38
+ }
39
+ return {
40
+ currentAnnualCost,
41
+ newAnnualCost,
42
+ annualSavings,
43
+ energySavings,
44
+ paybackPeriod,
45
+ };
46
+ }
47
+ //# sourceMappingURL=motorEfficiency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motorEfficiency.js","sourceRoot":"","sources":["../../src/energy/motorEfficiency.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,EACJ,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,UAAU,EACV,WAAW,GACZ,GAAG,KAAK,CAAC;IAEV,+CAA+C;IAC/C,IAAI,iBAAiB,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;QACjD,OAAO;YACL,iBAAiB,EAAE,CAAC;YACpB,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,IAAI;SACpB,CAAC;IACJ,CAAC;IAED,gEAAgE;IAChE,mDAAmD;IACnD,MAAM,mBAAmB,GAAG,CAAC,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC,GAAG,iBAAiB,CAAC;IACzF,MAAM,eAAe,GAAG,CAAC,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC,GAAG,aAAa,CAAC;IAEjF,yBAAyB;IACzB,MAAM,iBAAiB,GAAG,mBAAmB,GAAG,eAAe,CAAC;IAChE,MAAM,aAAa,GAAG,eAAe,GAAG,eAAe,CAAC;IAExD,oBAAoB;IACpB,MAAM,aAAa,GAAG,iBAAiB,GAAG,aAAa,CAAC;IACxD,MAAM,aAAa,GAAG,mBAAmB,GAAG,eAAe,CAAC;IAE5D,2BAA2B;IAC3B,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtE,aAAa,GAAG,WAAW,GAAG,aAAa,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,iBAAiB;QACjB,aAAa;QACb,aAAa;QACb,aAAa;QACb,aAAa;KACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { PfCorrectionInput, PfCorrectionResult } from './types.js';
2
+ /**
3
+ * Calculate power factor correction requirements and savings
4
+ *
5
+ * Formula: kVAR required = kW * (tan(arccos(PF_current)) - tan(arccos(PF_target)))
6
+ *
7
+ * Where:
8
+ * - kVA = kW / PF (apparent power)
9
+ * - tan(arccos(PF)) gives the reactive power factor
10
+ *
11
+ * @param input - Power factor correction input parameters
12
+ * @returns Power factor correction result with kVAR, costs, and savings
13
+ */
14
+ export declare function pfCorrection(input: PfCorrectionInput): PfCorrectionResult;
15
+ //# sourceMappingURL=pfCorrection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pfCorrection.d.ts","sourceRoot":"","sources":["../../src/energy/pfCorrection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAExE;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CA4DzE"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Calculate power factor correction requirements and savings
3
+ *
4
+ * Formula: kVAR required = kW * (tan(arccos(PF_current)) - tan(arccos(PF_target)))
5
+ *
6
+ * Where:
7
+ * - kVA = kW / PF (apparent power)
8
+ * - tan(arccos(PF)) gives the reactive power factor
9
+ *
10
+ * @param input - Power factor correction input parameters
11
+ * @returns Power factor correction result with kVAR, costs, and savings
12
+ */
13
+ export function pfCorrection(input) {
14
+ const { kW, currentPf, targetPf, electricityRate, monthlyUsageHours, pfPenaltyRate, pfPenaltyThreshold, capacitorCostPerKvar, } = input;
15
+ // Calculate current and target apparent power (kVA)
16
+ const currentKva = kW / currentPf;
17
+ const targetKva = kW / targetPf;
18
+ // Calculate required kVAR using the formula:
19
+ // kVAR = kW * (tan(arccos(PF_current)) - tan(arccos(PF_target)))
20
+ const currentAngle = Math.acos(currentPf);
21
+ const targetAngle = Math.acos(targetPf);
22
+ const kvarRequired = kW * (Math.tan(currentAngle) - Math.tan(targetAngle));
23
+ // Calculate capacitor cost
24
+ const capacitorCost = kvarRequired * capacitorCostPerKvar;
25
+ // Calculate monthly energy consumption (kWh)
26
+ const monthlyKwh = kW * monthlyUsageHours;
27
+ // Calculate PF penalty
28
+ // Penalty is typically applied when PF is below threshold
29
+ // Penalty = (threshold - actual PF) / 0.01 * penalty rate * energy cost
30
+ const calculatePenalty = (pf) => {
31
+ if (pf >= pfPenaltyThreshold)
32
+ return 0;
33
+ const penaltySteps = Math.floor((pfPenaltyThreshold - pf) * 100);
34
+ return penaltySteps * pfPenaltyRate * monthlyKwh * electricityRate;
35
+ };
36
+ const currentMonthlyPenalty = calculatePenalty(currentPf);
37
+ const newMonthlyPenalty = calculatePenalty(targetPf);
38
+ // Monthly savings from avoided penalties
39
+ const monthlySavings = currentMonthlyPenalty - newMonthlyPenalty;
40
+ // Annual savings
41
+ const annualSavings = monthlySavings * 12;
42
+ // Payback period in months (return 0 if no savings)
43
+ const paybackMonths = monthlySavings > 0 ? capacitorCost / monthlySavings : 0;
44
+ return {
45
+ currentKva,
46
+ targetKva,
47
+ kvarRequired,
48
+ capacitorCost,
49
+ currentMonthlyPenalty,
50
+ newMonthlyPenalty,
51
+ monthlySavings,
52
+ annualSavings,
53
+ paybackMonths,
54
+ };
55
+ }
56
+ //# sourceMappingURL=pfCorrection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pfCorrection.js","sourceRoot":"","sources":["../../src/energy/pfCorrection.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EACJ,EAAE,EACF,SAAS,EACT,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,oBAAoB,GACrB,GAAG,KAAK,CAAC;IAEV,oDAAoD;IACpD,MAAM,UAAU,GAAG,EAAE,GAAG,SAAS,CAAC;IAClC,MAAM,SAAS,GAAG,EAAE,GAAG,QAAQ,CAAC;IAEhC,6CAA6C;IAC7C,iEAAiE;IACjE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,YAAY,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IAE3E,2BAA2B;IAC3B,MAAM,aAAa,GAAG,YAAY,GAAG,oBAAoB,CAAC;IAE1D,6CAA6C;IAC7C,MAAM,UAAU,GAAG,EAAE,GAAG,iBAAiB,CAAC;IAE1C,uBAAuB;IACvB,0DAA0D;IAC1D,wEAAwE;IACxE,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAU,EAAE;QAC9C,IAAI,EAAE,IAAI,kBAAkB;YAAE,OAAO,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,kBAAkB,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;QACjE,OAAO,YAAY,GAAG,aAAa,GAAG,UAAU,GAAG,eAAe,CAAC;IACrE,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC1D,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAErD,yCAAyC;IACzC,MAAM,cAAc,GAAG,qBAAqB,GAAG,iBAAiB,CAAC;IAEjE,iBAAiB;IACjB,MAAM,aAAa,GAAG,cAAc,GAAG,EAAE,CAAC;IAE1C,oDAAoD;IACpD,MAAM,aAAa,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9E,OAAO;QACL,UAAU;QACV,SAAS;QACT,YAAY;QACZ,aAAa;QACb,qBAAqB;QACrB,iBAAiB;QACjB,cAAc;QACd,aAAa;QACb,aAAa;KACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { PowerCostInput, PowerCostResult } from './types.js';
2
+ /**
3
+ * Calculate power cost including energy, demand, power factor penalty, and fixed charges
4
+ *
5
+ * Energy cost = energy consumption (kWh) * energy rate ($/kWh)
6
+ * Demand cost = demand peak (kW) * demand rate ($/kW)
7
+ * PF penalty = (threshold - actual PF) / 0.01 * penalty rate * (energy cost + demand cost)
8
+ * (only if actual PF < threshold)
9
+ * Total cost = energy cost + demand cost + PF penalty + fixed charges
10
+ *
11
+ * @param input - Power cost input parameters
12
+ * @returns Power cost result with breakdown of all costs
13
+ */
14
+ export declare function powerCost(input: PowerCostInput): PowerCostResult;
15
+ //# sourceMappingURL=powerCost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powerCost.d.ts","sourceRoot":"","sources":["../../src/energy/powerCost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElE;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAqChE"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Calculate power cost including energy, demand, power factor penalty, and fixed charges
3
+ *
4
+ * Energy cost = energy consumption (kWh) * energy rate ($/kWh)
5
+ * Demand cost = demand peak (kW) * demand rate ($/kW)
6
+ * PF penalty = (threshold - actual PF) / 0.01 * penalty rate * (energy cost + demand cost)
7
+ * (only if actual PF < threshold)
8
+ * Total cost = energy cost + demand cost + PF penalty + fixed charges
9
+ *
10
+ * @param input - Power cost input parameters
11
+ * @returns Power cost result with breakdown of all costs
12
+ */
13
+ export function powerCost(input) {
14
+ const { energyConsumption, energyRate, demandPeak, demandRate, powerFactor, pfPenaltyThreshold, pfPenaltyRate, fixedCharges, } = input;
15
+ // Calculate energy cost
16
+ const energyCost = energyConsumption * energyRate;
17
+ // Calculate demand cost
18
+ const demandCost = demandPeak * demandRate;
19
+ // Calculate power factor penalty
20
+ let pfPenalty = 0;
21
+ if (powerFactor < pfPenaltyThreshold && pfPenaltyRate > 0) {
22
+ // Number of 0.01 steps below threshold
23
+ const stepsBelow = Math.round((pfPenaltyThreshold - powerFactor) / 0.01);
24
+ // Penalty is applied to energy + demand costs
25
+ pfPenalty = stepsBelow * pfPenaltyRate * (energyCost + demandCost);
26
+ }
27
+ // Calculate total cost
28
+ const totalCost = energyCost + demandCost + pfPenalty + fixedCharges;
29
+ return {
30
+ energyCost,
31
+ demandCost,
32
+ pfPenalty,
33
+ fixedCharges,
34
+ totalCost,
35
+ };
36
+ }
37
+ //# sourceMappingURL=powerCost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powerCost.js","sourceRoot":"","sources":["../../src/energy/powerCost.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EACJ,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,YAAY,GACb,GAAG,KAAK,CAAC;IAEV,wBAAwB;IACxB,MAAM,UAAU,GAAG,iBAAiB,GAAG,UAAU,CAAC;IAElD,wBAAwB;IACxB,MAAM,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;IAE3C,iCAAiC;IACjC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,WAAW,GAAG,kBAAkB,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QAC1D,uCAAuC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,kBAAkB,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;QACzE,8CAA8C;QAC9C,SAAS,GAAG,UAAU,GAAG,aAAa,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC;IACrE,CAAC;IAED,uBAAuB;IACvB,MAAM,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,YAAY,CAAC;IAErE,OAAO;QACL,UAAU;QACV,UAAU;QACV,SAAS;QACT,YAAY;QACZ,SAAS;KACV,CAAC;AACJ,CAAC"}