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,134 @@
1
+ function roundTo(value, decimals) {
2
+ const factor = Math.pow(10, decimals);
3
+ return Math.round(value * factor) / factor;
4
+ }
5
+ function clamp(value, min, max) {
6
+ return Math.max(min, Math.min(max, value));
7
+ }
8
+ /**
9
+ * Standard normal CDF approximation using Abramowitz and Stegun
10
+ */
11
+ function normalCDF(x) {
12
+ const a1 = 0.254829592;
13
+ const a2 = -0.284496736;
14
+ const a3 = 1.421413741;
15
+ const a4 = -1.453152027;
16
+ const a5 = 1.061405429;
17
+ const p = 0.3275911;
18
+ const sign = x < 0 ? -1 : 1;
19
+ x = Math.abs(x) / Math.sqrt(2);
20
+ const t = 1.0 / (1.0 + p * x);
21
+ const y = 1.0 - (((((a5 * t + a4) * t) + a3) * t + a2) * t + a1) * t * Math.exp(-x * x);
22
+ return 0.5 * (1.0 + sign * y);
23
+ }
24
+ /**
25
+ * Approximation of the inverse normal CDF (probit function)
26
+ * Uses Abramowitz and Stegun approximation
27
+ */
28
+ function normalInvCDF(p) {
29
+ if (p <= 0)
30
+ return -Infinity;
31
+ if (p >= 1)
32
+ return Infinity;
33
+ if (p === 0.5)
34
+ return 0;
35
+ // Use rational approximation
36
+ const a = [
37
+ -3.969683028665376e1,
38
+ 2.209460984245205e2,
39
+ -2.759285104469687e2,
40
+ 1.383577518672690e2,
41
+ -3.066479806614716e1,
42
+ 2.506628277459239e0,
43
+ ];
44
+ const b = [
45
+ -5.447609879822406e1,
46
+ 1.615858368580409e2,
47
+ -1.556989798598866e2,
48
+ 6.680131188771972e1,
49
+ -1.328068155288572e1,
50
+ ];
51
+ const c = [
52
+ -7.784894002430293e-3,
53
+ -3.223964580411365e-1,
54
+ -2.400758277161838e0,
55
+ -2.549732539343734e0,
56
+ 4.374664141464968e0,
57
+ 2.938163982698783e0,
58
+ ];
59
+ const d = [
60
+ 7.784695709041462e-3,
61
+ 3.224671290700398e-1,
62
+ 2.445134137142996e0,
63
+ 3.754408661907416e0,
64
+ ];
65
+ const pLow = 0.02425;
66
+ const pHigh = 1 - pLow;
67
+ let q, r;
68
+ if (p < pLow) {
69
+ q = Math.sqrt(-2 * Math.log(p));
70
+ return (((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4]) * q + c[5]) /
71
+ ((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1);
72
+ }
73
+ else if (p <= pHigh) {
74
+ q = p - 0.5;
75
+ r = q * q;
76
+ return (((((a[0] * r + a[1]) * r + a[2]) * r + a[3]) * r + a[4]) * r + a[5]) * q /
77
+ (((((b[0] * r + b[1]) * r + b[2]) * r + b[3]) * r + b[4]) * r + 1);
78
+ }
79
+ else {
80
+ q = Math.sqrt(-2 * Math.log(1 - p));
81
+ return -(((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4]) * q + c[5]) /
82
+ ((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1);
83
+ }
84
+ }
85
+ /**
86
+ * Convert sigma level to defect rate (with 1.5 sigma shift)
87
+ */
88
+ function sigmaToDefectRate(sigma) {
89
+ const yieldRate = normalCDF(sigma - 1.5);
90
+ return (1 - yieldRate) * 100;
91
+ }
92
+ /**
93
+ * Convert defect rate to sigma level (with 1.5 sigma shift)
94
+ */
95
+ function defectRateToSigma(defectRate) {
96
+ const fraction = defectRate / 100;
97
+ if (fraction <= 0)
98
+ return 6;
99
+ if (fraction >= 1)
100
+ return 0;
101
+ return normalInvCDF(1 - fraction) + 1.5;
102
+ }
103
+ /**
104
+ * Convert between PPM, defect rate, and sigma level
105
+ *
106
+ * @param input - PPM conversion input
107
+ * @returns PPM conversion result with all metrics
108
+ */
109
+ export function ppm(input) {
110
+ let defectRate;
111
+ switch (input.convertFrom) {
112
+ case 'defectRate':
113
+ defectRate = clamp(input.value, 0, 100);
114
+ break;
115
+ case 'ppm':
116
+ defectRate = clamp(input.value / 10000, 0, 100);
117
+ break;
118
+ case 'sigma':
119
+ defectRate = sigmaToDefectRate(clamp(input.value, 0, 6));
120
+ break;
121
+ }
122
+ const ppmValue = defectRate * 10000;
123
+ const dpmo = ppmValue; // For single opportunity, DPMO = PPM
124
+ const sigma = defectRateToSigma(defectRate);
125
+ const yieldRate = 100 - defectRate;
126
+ return {
127
+ defectRate: roundTo(defectRate, 4),
128
+ ppm: roundTo(ppmValue, 2),
129
+ dpmo: roundTo(dpmo, 2),
130
+ sigma: roundTo(sigma, 2),
131
+ yieldRate: roundTo(yieldRate, 4),
132
+ };
133
+ }
134
+ //# sourceMappingURL=ppm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ppm.js","sourceRoot":"","sources":["../../src/quality/ppm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { RpnInput, RpnResult } from './types.js';
2
+ /**
3
+ * Calculate Risk Priority Number (RPN) for FMEA analysis
4
+ * RPN = Severity x Occurrence x Detection
5
+ * Each factor is on a 1-10 scale, resulting in RPN range of 1-1000
6
+ *
7
+ * @param input - RPN input parameters
8
+ * @returns RPN analysis result
9
+ */
10
+ export declare function rpn(input: RpnInput): RpnResult;
11
+ //# sourceMappingURL=rpn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpn.d.ts","sourceRoot":"","sources":["../../src/quality/rpn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAa,MAAM,YAAY,CAAC;AAyBjE;;;;;;;GAOG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CAkB9C"}
@@ -0,0 +1,48 @@
1
+ function roundTo(value, decimals) {
2
+ const factor = Math.pow(10, decimals);
3
+ return Math.round(value * factor) / factor;
4
+ }
5
+ /**
6
+ * Get risk level classification based on RPN value
7
+ * Standard FMEA risk level thresholds
8
+ */
9
+ function getRiskLevel(rpnValue) {
10
+ if (rpnValue <= 50)
11
+ return 'low';
12
+ if (rpnValue <= 100)
13
+ return 'medium';
14
+ if (rpnValue <= 200)
15
+ return 'high';
16
+ return 'critical';
17
+ }
18
+ /**
19
+ * Clamp value to 1-10 scale
20
+ */
21
+ function clampScore(value) {
22
+ return Math.max(1, Math.min(10, Math.round(value)));
23
+ }
24
+ /**
25
+ * Calculate Risk Priority Number (RPN) for FMEA analysis
26
+ * RPN = Severity x Occurrence x Detection
27
+ * Each factor is on a 1-10 scale, resulting in RPN range of 1-1000
28
+ *
29
+ * @param input - RPN input parameters
30
+ * @returns RPN analysis result
31
+ */
32
+ export function rpn(input) {
33
+ const { severity, occurrence, detection } = input;
34
+ // Validate and clamp inputs to 1-10 scale
35
+ const severityScore = clampScore(severity);
36
+ const occurrenceScore = clampScore(occurrence);
37
+ const detectionScore = clampScore(detection);
38
+ // Calculate RPN
39
+ const rpnValue = severityScore * occurrenceScore * detectionScore;
40
+ return {
41
+ rpn: roundTo(rpnValue, 0),
42
+ riskLevel: getRiskLevel(rpnValue),
43
+ severityScore,
44
+ occurrenceScore,
45
+ detectionScore,
46
+ };
47
+ }
48
+ //# sourceMappingURL=rpn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpn.js","sourceRoot":"","sources":["../../src/quality/rpn.ts"],"names":[],"mappings":"AAEA,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;;;GAGG;AACH,SAAS,YAAY,CAAC,QAAgB;IACpC,IAAI,QAAQ,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,QAAQ,IAAI,GAAG;QAAE,OAAO,QAAQ,CAAC;IACrC,IAAI,QAAQ,IAAI,GAAG;QAAE,OAAO,MAAM,CAAC;IACnC,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,GAAG,CAAC,KAAe;IACjC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAElD,0CAA0C;IAC1C,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,eAAe,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IAE7C,gBAAgB;IAChB,MAAM,QAAQ,GAAG,aAAa,GAAG,eAAe,GAAG,cAAc,CAAC;IAElE,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzB,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC;QACjC,aAAa;QACb,eAAe;QACf,cAAc;KACf,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { TaktTimeInput, TaktTimeResult } from './types.js';
2
+ /**
3
+ * Calculate Takt Time
4
+ *
5
+ * Takt Time = Available Time / Customer Demand
6
+ *
7
+ * Takt time is the rate at which products must be produced to meet customer demand.
8
+ *
9
+ * @param input - Takt time input parameters
10
+ * @returns Takt time result with time per unit and max rate per hour
11
+ */
12
+ export declare function taktTime(input: TaktTimeInput): TaktTimeResult;
13
+ //# sourceMappingURL=takt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"takt.d.ts","sourceRoot":"","sources":["../../src/quality/takt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAY,MAAM,YAAY,CAAC;AAgB1E;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAwB7D"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Convert time to hours based on unit
3
+ */
4
+ function toHours(time, unit) {
5
+ switch (unit) {
6
+ case 'seconds':
7
+ return time / 3600;
8
+ case 'minutes':
9
+ return time / 60;
10
+ case 'hours':
11
+ return time;
12
+ }
13
+ }
14
+ /**
15
+ * Calculate Takt Time
16
+ *
17
+ * Takt Time = Available Time / Customer Demand
18
+ *
19
+ * Takt time is the rate at which products must be produced to meet customer demand.
20
+ *
21
+ * @param input - Takt time input parameters
22
+ * @returns Takt time result with time per unit and max rate per hour
23
+ */
24
+ export function taktTime(input) {
25
+ const { availableTime, demand, timeUnit } = input;
26
+ // Handle edge cases
27
+ if (demand <= 0 || availableTime <= 0) {
28
+ return {
29
+ taktTime: 0,
30
+ maxRatePerHour: 0,
31
+ };
32
+ }
33
+ // Takt Time = Available Time / Demand (in the same unit as input)
34
+ const takt = availableTime / demand;
35
+ // Convert available time to hours for rate calculation
36
+ const availableTimeHours = toHours(availableTime, timeUnit);
37
+ // Max rate per hour = Demand / Available Time (in hours)
38
+ const maxRatePerHour = demand / availableTimeHours;
39
+ return {
40
+ taktTime: takt,
41
+ maxRatePerHour,
42
+ };
43
+ }
44
+ //# sourceMappingURL=takt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"takt.js","sourceRoot":"","sources":["../../src/quality/takt.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,SAAS,OAAO,CAAC,IAAY,EAAE,IAAc;IAC3C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS;YACZ,OAAO,IAAI,GAAG,IAAI,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,IAAI,GAAG,EAAE,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAElD,oBAAoB;IACpB,IAAI,MAAM,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,cAAc,EAAE,CAAC;SAClB,CAAC;IACJ,CAAC;IAED,kEAAkE;IAClE,MAAM,IAAI,GAAG,aAAa,GAAG,MAAM,CAAC;IAEpC,uDAAuD;IACvD,MAAM,kBAAkB,GAAG,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAE5D,yDAAyD;IACzD,MAAM,cAAc,GAAG,MAAM,GAAG,kBAAkB,CAAC;IAEnD,OAAO;QACL,QAAQ,EAAE,IAAI;QACd,cAAc;KACf,CAAC;AACJ,CAAC"}
@@ -0,0 +1,261 @@
1
+ /**
2
+ * OEE (Overall Equipment Effectiveness) Types
3
+ */
4
+ export interface OeeRawData {
5
+ plannedTime: number;
6
+ runTime: number;
7
+ totalCount: number;
8
+ goodCount: number;
9
+ idealCycleTime: number;
10
+ }
11
+ export interface OeeInput {
12
+ rawData: OeeRawData;
13
+ }
14
+ export interface OeeResult {
15
+ factors: {
16
+ availability: number;
17
+ performance: number;
18
+ quality: number;
19
+ oee: number;
20
+ };
21
+ percentages: {
22
+ availability: number;
23
+ performance: number;
24
+ quality: number;
25
+ oee: number;
26
+ };
27
+ }
28
+ /**
29
+ * Cpk (Process Capability Index) Types
30
+ */
31
+ export interface CpkInput {
32
+ usl: number;
33
+ lsl: number;
34
+ mean: number;
35
+ stdDev: number;
36
+ }
37
+ export interface CpkResult {
38
+ cp: number;
39
+ cpk: number;
40
+ cpu: number;
41
+ cpl: number;
42
+ sigmaLevel: number;
43
+ }
44
+ /**
45
+ * Cycle Time Analysis Types
46
+ */
47
+ export interface CycleTimeInput {
48
+ measurements: number[];
49
+ target?: number;
50
+ }
51
+ export interface CycleTimeResult {
52
+ count: number;
53
+ average: number;
54
+ min: number;
55
+ max: number;
56
+ range: number;
57
+ stdDev: number;
58
+ cv: number;
59
+ }
60
+ /**
61
+ * Takt Time Types
62
+ */
63
+ export type TimeUnit = 'seconds' | 'minutes' | 'hours';
64
+ export interface TaktTimeInput {
65
+ availableTime: number;
66
+ demand: number;
67
+ timeUnit: TimeUnit;
68
+ }
69
+ export interface TaktTimeResult {
70
+ taktTime: number;
71
+ maxRatePerHour: number;
72
+ }
73
+ /**
74
+ * AQL (Acceptable Quality Level) Types
75
+ */
76
+ export type InspectionLevel = 'I' | 'II' | 'III' | 'S-1' | 'S-2' | 'S-3' | 'S-4';
77
+ export interface AqlInput {
78
+ /** Lot size (number of units in the batch) */
79
+ lotSize: number;
80
+ /** Acceptable Quality Level (e.g., 0.065, 0.1, 0.25, 0.4, 0.65, 1.0, 1.5, 2.5, 4.0, 6.5) */
81
+ aqlLevel: number;
82
+ /** Inspection level (I, II, III for general; S-1 to S-4 for special) */
83
+ inspectionLevel: InspectionLevel;
84
+ }
85
+ export interface AqlResult {
86
+ /** Sample size code letter */
87
+ sampleCode: string;
88
+ /** Number of samples to inspect */
89
+ sampleSize: number;
90
+ /** Accept number (max defects to accept) */
91
+ acceptNumber: number;
92
+ /** Reject number (min defects to reject) */
93
+ rejectNumber: number;
94
+ /** Sampling percentage of lot */
95
+ samplingPercent: number;
96
+ }
97
+ /**
98
+ * Downtime Cost Types
99
+ */
100
+ export interface DowntimeInput {
101
+ hourlyRate: number;
102
+ laborCostPerHour: number;
103
+ downtimeMinutes: number;
104
+ plannedProductionUnits: number;
105
+ unitPrice: number;
106
+ }
107
+ export interface DowntimeResult {
108
+ downtimeHours: number;
109
+ lostUnits: number;
110
+ laborCost: number;
111
+ equipmentCost: number;
112
+ lostRevenue: number;
113
+ totalCost: number;
114
+ }
115
+ /**
116
+ * DPMO (Defects Per Million Opportunities) Types
117
+ */
118
+ export interface DpmoInput {
119
+ defects: number;
120
+ units: number;
121
+ opportunities: number;
122
+ }
123
+ export interface DpmoResult {
124
+ dpmo: number;
125
+ sigmaLevel: number;
126
+ yield: number;
127
+ dpu: number;
128
+ defectRate: number;
129
+ }
130
+ /**
131
+ * Line Balancing Types
132
+ */
133
+ export interface BalancingTask {
134
+ id: string;
135
+ name: string;
136
+ time: number;
137
+ predecessors: string[];
138
+ }
139
+ export interface LineBalancingInput {
140
+ tasks: BalancingTask[];
141
+ cycleTime: number;
142
+ }
143
+ export interface WorkStation {
144
+ id: number;
145
+ tasks: {
146
+ id: string;
147
+ name: string;
148
+ time: number;
149
+ }[];
150
+ totalTime: number;
151
+ idleTime: number;
152
+ }
153
+ export interface PositionalWeight {
154
+ id: string;
155
+ name: string;
156
+ time: number;
157
+ weight: number;
158
+ }
159
+ export interface LineBalancingResult {
160
+ stations: WorkStation[];
161
+ numStations: number;
162
+ theoreticalMin: number;
163
+ lineEfficiency: number;
164
+ balanceDelay: number;
165
+ smoothnessIndex: number;
166
+ positionalWeights: PositionalWeight[];
167
+ }
168
+ /**
169
+ * MTBF (Mean Time Between Failures) Types
170
+ */
171
+ export interface MtbfInput {
172
+ /** Total operating time in hours */
173
+ totalOperatingTime: number;
174
+ /** Total repair/downtime in hours */
175
+ totalRepairTime: number;
176
+ /** Number of failures */
177
+ numberOfFailures: number;
178
+ }
179
+ export interface MtbfResult {
180
+ /** Mean Time Between Failures (hours) */
181
+ mtbf: number;
182
+ /** Mean Time To Repair (hours) */
183
+ mttr: number;
184
+ /** Availability (0-100 %) */
185
+ availability: number;
186
+ /** Failure rate (failures per hour) */
187
+ failureRate: number;
188
+ /** Reliability at time T (using exponential distribution), where T = MTBF */
189
+ reliabilityAtMtbf: number;
190
+ }
191
+ /**
192
+ * Ppk (Process Performance Index) Types
193
+ */
194
+ export interface PpkInput {
195
+ usl: number;
196
+ lsl: number;
197
+ mean: number;
198
+ stdDev: number;
199
+ }
200
+ export interface PpkResult {
201
+ pp: number;
202
+ ppk: number;
203
+ ppUpper: number;
204
+ ppLower: number;
205
+ withinSpecPercent: number;
206
+ sigma: number;
207
+ }
208
+ /**
209
+ * PPM (Parts Per Million) Conversion Types
210
+ */
211
+ export type ConvertFrom = 'defectRate' | 'ppm' | 'sigma';
212
+ export interface PpmInput {
213
+ convertFrom: ConvertFrom;
214
+ value: number;
215
+ }
216
+ export interface PpmResult {
217
+ defectRate: number;
218
+ ppm: number;
219
+ dpmo: number;
220
+ sigma: number;
221
+ yieldRate: number;
222
+ }
223
+ /**
224
+ * RPN (Risk Priority Number) Types
225
+ */
226
+ export interface RpnInput {
227
+ severity: number;
228
+ occurrence: number;
229
+ detection: number;
230
+ }
231
+ export type RiskLevel = 'low' | 'medium' | 'high' | 'critical';
232
+ export interface RpnResult {
233
+ rpn: number;
234
+ riskLevel: RiskLevel;
235
+ severityScore: number;
236
+ occurrenceScore: number;
237
+ detectionScore: number;
238
+ }
239
+ /**
240
+ * Yield (FPY/RTY) Types
241
+ */
242
+ export interface YieldInput {
243
+ /** Array of process steps, each containing [goodUnits, totalUnits] */
244
+ steps: Array<{
245
+ good: number;
246
+ total: number;
247
+ }>;
248
+ }
249
+ export interface YieldResult {
250
+ /** First Pass Yield for each step (0-100 %) */
251
+ fpyPerStep: number[];
252
+ /** Average FPY across all steps (0-100 %) */
253
+ averageFpy: number;
254
+ /** Rolled Throughput Yield = product of all FPYs (0-100 %) */
255
+ rty: number;
256
+ /** Total input units (first step) */
257
+ totalInput: number;
258
+ /** Expected output after all steps */
259
+ expectedOutput: number;
260
+ }
261
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/quality/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/quality/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import type { YieldInput, YieldResult } from './types.js';
2
+ /**
3
+ * Calculate First Pass Yield (FPY) and Rolled Throughput Yield (RTY)
4
+ *
5
+ * FPY = Good Units / Total Units (per step)
6
+ * RTY = Product of all FPY values (cumulative yield)
7
+ *
8
+ * @param input - Yield input parameters
9
+ * @returns Yield analysis result
10
+ */
11
+ export declare function yieldCalc(input: YieldInput): YieldResult;
12
+ //# sourceMappingURL=yield.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yield.d.ts","sourceRoot":"","sources":["../../src/quality/yield.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAO1D;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CA+CxD"}
@@ -0,0 +1,56 @@
1
+ function roundTo(value, decimals) {
2
+ const factor = Math.pow(10, decimals);
3
+ return Math.round(value * factor) / factor;
4
+ }
5
+ /**
6
+ * Calculate First Pass Yield (FPY) and Rolled Throughput Yield (RTY)
7
+ *
8
+ * FPY = Good Units / Total Units (per step)
9
+ * RTY = Product of all FPY values (cumulative yield)
10
+ *
11
+ * @param input - Yield input parameters
12
+ * @returns Yield analysis result
13
+ */
14
+ export function yieldCalc(input) {
15
+ const { steps } = input;
16
+ // Handle empty or invalid input
17
+ if (!steps || steps.length === 0) {
18
+ return {
19
+ fpyPerStep: [],
20
+ averageFpy: 0,
21
+ rty: 0,
22
+ totalInput: 0,
23
+ expectedOutput: 0,
24
+ };
25
+ }
26
+ // Calculate FPY for each step
27
+ const fpyPerStep = [];
28
+ let rtyDecimal = 1;
29
+ for (const step of steps) {
30
+ if (step.total <= 0) {
31
+ fpyPerStep.push(0);
32
+ rtyDecimal = 0;
33
+ }
34
+ else {
35
+ const fpy = step.good / step.total;
36
+ fpyPerStep.push(roundTo(fpy * 100, 2));
37
+ rtyDecimal *= fpy;
38
+ }
39
+ }
40
+ // Calculate average FPY
41
+ const sumFpy = fpyPerStep.reduce((acc, val) => acc + val, 0);
42
+ const averageFpy = fpyPerStep.length > 0 ? roundTo(sumFpy / fpyPerStep.length, 2) : 0;
43
+ // Calculate RTY (Rolled Throughput Yield)
44
+ const rty = roundTo(rtyDecimal * 100, 2);
45
+ // Calculate expected output
46
+ const totalInput = steps[0]?.total ?? 0;
47
+ const expectedOutput = roundTo(totalInput * rtyDecimal, 0);
48
+ return {
49
+ fpyPerStep,
50
+ averageFpy,
51
+ rty,
52
+ totalInput,
53
+ expectedOutput,
54
+ };
55
+ }
56
+ //# sourceMappingURL=yield.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yield.js","sourceRoot":"","sources":["../../src/quality/yield.ts"],"names":[],"mappings":"AAEA,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;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,KAAiB;IACzC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAExB,gCAAgC;IAChC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO;YACL,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,CAAC;YACb,GAAG,EAAE,CAAC;YACN,UAAU,EAAE,CAAC;YACb,cAAc,EAAE,CAAC;SAClB,CAAC;IACJ,CAAC;IAED,8BAA8B;IAC9B,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;YACpB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,UAAU,GAAG,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACnC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACvC,UAAU,IAAI,GAAG,CAAC;QACpB,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtF,0CAA0C;IAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;IAEzC,4BAA4B;IAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;IAE3D,OAAO;QACL,UAAU;QACV,UAAU;QACV,GAAG;QACH,UAAU;QACV,cAAc;KACf,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { FallClearanceInput, FallClearanceResult } from './types.js';
2
+ /**
3
+ * Calculate fall clearance requirements for personal fall protection systems.
4
+ *
5
+ * Total Fall Distance = Lanyard Length + Deceleration Distance + Harness Stretch + Worker Height + Safety Factor
6
+ * Minimum Height = Total Fall Distance - Anchor Height
7
+ *
8
+ * @param input - Fall clearance parameters
9
+ * @returns Fall clearance results including total fall distance and minimum height
10
+ */
11
+ export declare function fallClearance(input: FallClearanceInput): FallClearanceResult;
12
+ //# sourceMappingURL=fallClearance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fallClearance.d.ts","sourceRoot":"","sources":["../../src/safety/fallClearance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE1E;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CAqC5E"}