formulab 0.1.11 → 0.5.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 (332) hide show
  1. package/CHANGELOG.md +107 -10
  2. package/README.md +109 -17
  3. package/dist/automotive/brakingDistance.d.ts +16 -0
  4. package/dist/automotive/brakingDistance.d.ts.map +1 -0
  5. package/dist/automotive/brakingDistance.js +47 -0
  6. package/dist/automotive/brakingDistance.js.map +1 -0
  7. package/dist/automotive/index.d.ts +2 -1
  8. package/dist/automotive/index.d.ts.map +1 -1
  9. package/dist/automotive/index.js +1 -0
  10. package/dist/automotive/index.js.map +1 -1
  11. package/dist/automotive/types.d.ts +16 -0
  12. package/dist/automotive/types.d.ts.map +1 -1
  13. package/dist/battery/batteryPackConfig.d.ts +10 -0
  14. package/dist/battery/batteryPackConfig.d.ts.map +1 -0
  15. package/dist/battery/batteryPackConfig.js +28 -0
  16. package/dist/battery/batteryPackConfig.js.map +1 -0
  17. package/dist/battery/bmsBalancing.d.ts +11 -0
  18. package/dist/battery/bmsBalancing.d.ts.map +1 -0
  19. package/dist/battery/bmsBalancing.js +47 -0
  20. package/dist/battery/bmsBalancing.js.map +1 -0
  21. package/dist/battery/cRate.d.ts +10 -0
  22. package/dist/battery/cRate.d.ts.map +1 -0
  23. package/dist/battery/cRate.js +29 -0
  24. package/dist/battery/cRate.js.map +1 -0
  25. package/dist/battery/chargingProfile.d.ts +11 -0
  26. package/dist/battery/chargingProfile.d.ts.map +1 -0
  27. package/dist/battery/chargingProfile.js +38 -0
  28. package/dist/battery/chargingProfile.js.map +1 -0
  29. package/dist/battery/cycleLife.d.ts +11 -0
  30. package/dist/battery/cycleLife.d.ts.map +1 -0
  31. package/dist/battery/cycleLife.js +70 -0
  32. package/dist/battery/cycleLife.js.map +1 -0
  33. package/dist/battery/energyDensity.d.ts +10 -0
  34. package/dist/battery/energyDensity.d.ts.map +1 -0
  35. package/dist/battery/energyDensity.js +20 -0
  36. package/dist/battery/energyDensity.js.map +1 -0
  37. package/dist/battery/index.d.ts +12 -0
  38. package/dist/battery/index.d.ts.map +1 -0
  39. package/dist/battery/index.js +12 -0
  40. package/dist/battery/index.js.map +1 -0
  41. package/dist/battery/internalResistance.d.ts +11 -0
  42. package/dist/battery/internalResistance.d.ts.map +1 -0
  43. package/dist/battery/internalResistance.js +18 -0
  44. package/dist/battery/internalResistance.js.map +1 -0
  45. package/dist/battery/selfDischarge.d.ts +10 -0
  46. package/dist/battery/selfDischarge.d.ts.map +1 -0
  47. package/dist/battery/selfDischarge.js +17 -0
  48. package/dist/battery/selfDischarge.js.map +1 -0
  49. package/dist/battery/stateOfHealth.d.ts +11 -0
  50. package/dist/battery/stateOfHealth.d.ts.map +1 -0
  51. package/dist/battery/stateOfHealth.js +33 -0
  52. package/dist/battery/stateOfHealth.js.map +1 -0
  53. package/dist/battery/thermalRunaway.d.ts +11 -0
  54. package/dist/battery/thermalRunaway.d.ts.map +1 -0
  55. package/dist/battery/thermalRunaway.js +28 -0
  56. package/dist/battery/thermalRunaway.js.map +1 -0
  57. package/dist/battery/types.d.ts +175 -0
  58. package/dist/battery/types.d.ts.map +1 -0
  59. package/dist/battery/types.js +5 -0
  60. package/dist/battery/types.js.map +1 -0
  61. package/dist/chemical/dilution.d.ts.map +1 -1
  62. package/dist/chemical/dilution.js +21 -24
  63. package/dist/chemical/dilution.js.map +1 -1
  64. package/dist/chemical/heatTransfer.d.ts +16 -0
  65. package/dist/chemical/heatTransfer.d.ts.map +1 -0
  66. package/dist/chemical/heatTransfer.js +85 -0
  67. package/dist/chemical/heatTransfer.js.map +1 -0
  68. package/dist/chemical/index.d.ts +3 -1
  69. package/dist/chemical/index.d.ts.map +1 -1
  70. package/dist/chemical/index.js +2 -0
  71. package/dist/chemical/index.js.map +1 -1
  72. package/dist/chemical/pipeFlow.d.ts +17 -0
  73. package/dist/chemical/pipeFlow.d.ts.map +1 -0
  74. package/dist/chemical/pipeFlow.js +112 -0
  75. package/dist/chemical/pipeFlow.js.map +1 -0
  76. package/dist/chemical/reactor.js +2 -2
  77. package/dist/chemical/reactor.js.map +1 -1
  78. package/dist/chemical/types.d.ts +82 -10
  79. package/dist/chemical/types.d.ts.map +1 -1
  80. package/dist/construction/index.d.ts +2 -1
  81. package/dist/construction/index.d.ts.map +1 -1
  82. package/dist/construction/index.js +1 -0
  83. package/dist/construction/index.js.map +1 -1
  84. package/dist/construction/momentOfInertia.d.ts +17 -0
  85. package/dist/construction/momentOfInertia.d.ts.map +1 -0
  86. package/dist/construction/momentOfInertia.js +204 -0
  87. package/dist/construction/momentOfInertia.js.map +1 -0
  88. package/dist/construction/pert.d.ts.map +1 -1
  89. package/dist/construction/pert.js +1 -17
  90. package/dist/construction/pert.js.map +1 -1
  91. package/dist/construction/types.d.ts +50 -0
  92. package/dist/construction/types.d.ts.map +1 -1
  93. package/dist/electronics/index.d.ts +2 -1
  94. package/dist/electronics/index.d.ts.map +1 -1
  95. package/dist/electronics/index.js +1 -0
  96. package/dist/electronics/index.js.map +1 -1
  97. package/dist/electronics/ohmsLaw.d.ts +12 -0
  98. package/dist/electronics/ohmsLaw.d.ts.map +1 -0
  99. package/dist/electronics/ohmsLaw.js +69 -0
  100. package/dist/electronics/ohmsLaw.js.map +1 -0
  101. package/dist/electronics/types.d.ts +24 -0
  102. package/dist/electronics/types.d.ts.map +1 -1
  103. package/dist/energy/carbonFootprint.d.ts.map +1 -1
  104. package/dist/energy/carbonFootprint.js +2 -1
  105. package/dist/energy/carbonFootprint.js.map +1 -1
  106. package/dist/energy/index.d.ts +2 -1
  107. package/dist/energy/index.d.ts.map +1 -1
  108. package/dist/energy/index.js +1 -0
  109. package/dist/energy/index.js.map +1 -1
  110. package/dist/energy/powerCost.d.ts.map +1 -1
  111. package/dist/energy/powerCost.js +2 -1
  112. package/dist/energy/powerCost.js.map +1 -1
  113. package/dist/energy/solarOutput.d.ts +14 -0
  114. package/dist/energy/solarOutput.d.ts.map +1 -0
  115. package/dist/energy/solarOutput.js +54 -0
  116. package/dist/energy/solarOutput.js.map +1 -0
  117. package/dist/energy/types.d.ts +20 -0
  118. package/dist/energy/types.d.ts.map +1 -1
  119. package/dist/environmental/emissionsIntensity.d.ts +11 -0
  120. package/dist/environmental/emissionsIntensity.d.ts.map +1 -0
  121. package/dist/environmental/emissionsIntensity.js +26 -0
  122. package/dist/environmental/emissionsIntensity.js.map +1 -0
  123. package/dist/environmental/energyIntensity.d.ts +11 -0
  124. package/dist/environmental/energyIntensity.d.ts.map +1 -0
  125. package/dist/environmental/energyIntensity.js +19 -0
  126. package/dist/environmental/energyIntensity.js.map +1 -0
  127. package/dist/environmental/esgSummary.d.ts +11 -0
  128. package/dist/environmental/esgSummary.d.ts.map +1 -0
  129. package/dist/environmental/esgSummary.js +39 -0
  130. package/dist/environmental/esgSummary.js.map +1 -0
  131. package/dist/environmental/gwpCalculator.d.ts +11 -0
  132. package/dist/environmental/gwpCalculator.d.ts.map +1 -0
  133. package/dist/environmental/gwpCalculator.js +31 -0
  134. package/dist/environmental/gwpCalculator.js.map +1 -0
  135. package/dist/environmental/index.d.ts +12 -0
  136. package/dist/environmental/index.d.ts.map +1 -0
  137. package/dist/environmental/index.js +12 -0
  138. package/dist/environmental/index.js.map +1 -0
  139. package/dist/environmental/productCarbonFootprint.d.ts +11 -0
  140. package/dist/environmental/productCarbonFootprint.d.ts.map +1 -0
  141. package/dist/environmental/productCarbonFootprint.js +29 -0
  142. package/dist/environmental/productCarbonFootprint.js.map +1 -0
  143. package/dist/environmental/scope1Emissions.d.ts +11 -0
  144. package/dist/environmental/scope1Emissions.d.ts.map +1 -0
  145. package/dist/environmental/scope1Emissions.js +35 -0
  146. package/dist/environmental/scope1Emissions.js.map +1 -0
  147. package/dist/environmental/scope2Emissions.d.ts +11 -0
  148. package/dist/environmental/scope2Emissions.d.ts.map +1 -0
  149. package/dist/environmental/scope2Emissions.js +49 -0
  150. package/dist/environmental/scope2Emissions.js.map +1 -0
  151. package/dist/environmental/scope3Emissions.d.ts +11 -0
  152. package/dist/environmental/scope3Emissions.d.ts.map +1 -0
  153. package/dist/environmental/scope3Emissions.js +36 -0
  154. package/dist/environmental/scope3Emissions.js.map +1 -0
  155. package/dist/environmental/types.d.ts +165 -0
  156. package/dist/environmental/types.d.ts.map +1 -0
  157. package/dist/environmental/types.js +5 -0
  158. package/dist/environmental/types.js.map +1 -0
  159. package/dist/environmental/vocEmissions.d.ts +11 -0
  160. package/dist/environmental/vocEmissions.d.ts.map +1 -0
  161. package/dist/environmental/vocEmissions.js +23 -0
  162. package/dist/environmental/vocEmissions.js.map +1 -0
  163. package/dist/environmental/waterFootprint.d.ts +11 -0
  164. package/dist/environmental/waterFootprint.d.ts.map +1 -0
  165. package/dist/environmental/waterFootprint.js +21 -0
  166. package/dist/environmental/waterFootprint.js.map +1 -0
  167. package/dist/index.d.ts +3 -0
  168. package/dist/index.d.ts.map +1 -1
  169. package/dist/index.js +3 -0
  170. package/dist/index.js.map +1 -1
  171. package/dist/logistics/cbm.d.ts +7 -2
  172. package/dist/logistics/cbm.d.ts.map +1 -1
  173. package/dist/logistics/cbm.js +7 -2
  174. package/dist/logistics/cbm.js.map +1 -1
  175. package/dist/logistics/fillRate.d.ts.map +1 -1
  176. package/dist/logistics/fillRate.js +1 -17
  177. package/dist/logistics/fillRate.js.map +1 -1
  178. package/dist/logistics/safetyStock.d.ts.map +1 -1
  179. package/dist/logistics/safetyStock.js +2 -55
  180. package/dist/logistics/safetyStock.js.map +1 -1
  181. package/dist/machining/boltCircle.d.ts +16 -0
  182. package/dist/machining/boltCircle.d.ts.map +1 -0
  183. package/dist/machining/boltCircle.js +36 -0
  184. package/dist/machining/boltCircle.js.map +1 -0
  185. package/dist/machining/boringBarDeflection.d.ts +17 -0
  186. package/dist/machining/boringBarDeflection.d.ts.map +1 -0
  187. package/dist/machining/boringBarDeflection.js +54 -0
  188. package/dist/machining/boringBarDeflection.js.map +1 -0
  189. package/dist/machining/cuspHeight.d.ts +15 -0
  190. package/dist/machining/cuspHeight.d.ts.map +1 -0
  191. package/dist/machining/cuspHeight.js +23 -0
  192. package/dist/machining/cuspHeight.js.map +1 -0
  193. package/dist/machining/cycleTimeEstimator.d.ts +18 -0
  194. package/dist/machining/cycleTimeEstimator.d.ts.map +1 -0
  195. package/dist/machining/cycleTimeEstimator.js +62 -0
  196. package/dist/machining/cycleTimeEstimator.js.map +1 -0
  197. package/dist/machining/effectiveDiameter.d.ts +17 -0
  198. package/dist/machining/effectiveDiameter.d.ts.map +1 -0
  199. package/dist/machining/effectiveDiameter.js +24 -0
  200. package/dist/machining/effectiveDiameter.js.map +1 -0
  201. package/dist/machining/gaugeBlockStack.d.ts +16 -0
  202. package/dist/machining/gaugeBlockStack.d.ts.map +1 -0
  203. package/dist/machining/gaugeBlockStack.js +138 -0
  204. package/dist/machining/gaugeBlockStack.js.map +1 -0
  205. package/dist/machining/index.d.ts +14 -0
  206. package/dist/machining/index.d.ts.map +1 -0
  207. package/dist/machining/index.js +14 -0
  208. package/dist/machining/index.js.map +1 -0
  209. package/dist/machining/radialChipThinning.d.ts +18 -0
  210. package/dist/machining/radialChipThinning.d.ts.map +1 -0
  211. package/dist/machining/radialChipThinning.js +30 -0
  212. package/dist/machining/radialChipThinning.js.map +1 -0
  213. package/dist/machining/sineBarHeight.d.ts +16 -0
  214. package/dist/machining/sineBarHeight.d.ts.map +1 -0
  215. package/dist/machining/sineBarHeight.js +32 -0
  216. package/dist/machining/sineBarHeight.js.map +1 -0
  217. package/dist/machining/threadOverWires.d.ts +21 -0
  218. package/dist/machining/threadOverWires.d.ts.map +1 -0
  219. package/dist/machining/threadOverWires.js +54 -0
  220. package/dist/machining/threadOverWires.js.map +1 -0
  221. package/dist/machining/toolDeflection.d.ts +16 -0
  222. package/dist/machining/toolDeflection.d.ts.map +1 -0
  223. package/dist/machining/toolDeflection.js +36 -0
  224. package/dist/machining/toolDeflection.js.map +1 -0
  225. package/dist/machining/triangleSolver.d.ts +21 -0
  226. package/dist/machining/triangleSolver.d.ts.map +1 -0
  227. package/dist/machining/triangleSolver.js +120 -0
  228. package/dist/machining/triangleSolver.js.map +1 -0
  229. package/dist/machining/truePosition.d.ts +19 -0
  230. package/dist/machining/truePosition.d.ts.map +1 -0
  231. package/dist/machining/truePosition.js +44 -0
  232. package/dist/machining/truePosition.js.map +1 -0
  233. package/dist/machining/types.d.ts +201 -0
  234. package/dist/machining/types.d.ts.map +1 -0
  235. package/dist/machining/types.js +2 -0
  236. package/dist/machining/types.js.map +1 -0
  237. package/dist/math.d.ts +26 -0
  238. package/dist/math.d.ts.map +1 -0
  239. package/dist/math.js +95 -0
  240. package/dist/math.js.map +1 -0
  241. package/dist/metal/bendAllowance.d.ts.map +1 -1
  242. package/dist/metal/bendAllowance.js +2 -1
  243. package/dist/metal/bendAllowance.js.map +1 -1
  244. package/dist/metal/bolt.d.ts.map +1 -1
  245. package/dist/metal/bolt.js +3 -3
  246. package/dist/metal/bolt.js.map +1 -1
  247. package/dist/metal/flangeSpec.d.ts +10 -0
  248. package/dist/metal/flangeSpec.d.ts.map +1 -0
  249. package/dist/metal/flangeSpec.js +81 -0
  250. package/dist/metal/flangeSpec.js.map +1 -0
  251. package/dist/metal/index.d.ts +4 -1
  252. package/dist/metal/index.d.ts.map +1 -1
  253. package/dist/metal/index.js +3 -0
  254. package/dist/metal/index.js.map +1 -1
  255. package/dist/metal/materialGradeConverter.d.ts +10 -0
  256. package/dist/metal/materialGradeConverter.d.ts.map +1 -0
  257. package/dist/metal/materialGradeConverter.js +78 -0
  258. package/dist/metal/materialGradeConverter.js.map +1 -0
  259. package/dist/metal/metalWeight.d.ts +13 -3
  260. package/dist/metal/metalWeight.d.ts.map +1 -1
  261. package/dist/metal/metalWeight.js +24 -35
  262. package/dist/metal/metalWeight.js.map +1 -1
  263. package/dist/metal/pipeSpec.d.ts +10 -0
  264. package/dist/metal/pipeSpec.d.ts.map +1 -0
  265. package/dist/metal/pipeSpec.js +96 -0
  266. package/dist/metal/pipeSpec.js.map +1 -0
  267. package/dist/metal/roughness.js +1 -1
  268. package/dist/metal/roughness.js.map +1 -1
  269. package/dist/metal/types.d.ts +86 -13
  270. package/dist/metal/types.d.ts.map +1 -1
  271. package/dist/metal/weldHeat.js +1 -1
  272. package/dist/metal/weldHeat.js.map +1 -1
  273. package/dist/metal/welding.d.ts.map +1 -1
  274. package/dist/metal/welding.js +3 -2
  275. package/dist/metal/welding.js.map +1 -1
  276. package/dist/quality/controlChart.d.ts +26 -0
  277. package/dist/quality/controlChart.d.ts.map +1 -0
  278. package/dist/quality/controlChart.js +216 -0
  279. package/dist/quality/controlChart.js.map +1 -0
  280. package/dist/quality/cpk.d.ts +16 -4
  281. package/dist/quality/cpk.d.ts.map +1 -1
  282. package/dist/quality/cpk.js +16 -4
  283. package/dist/quality/cpk.js.map +1 -1
  284. package/dist/quality/dpmo.d.ts.map +1 -1
  285. package/dist/quality/dpmo.js +1 -61
  286. package/dist/quality/dpmo.js.map +1 -1
  287. package/dist/quality/index.d.ts +2 -1
  288. package/dist/quality/index.d.ts.map +1 -1
  289. package/dist/quality/index.js +1 -0
  290. package/dist/quality/index.js.map +1 -1
  291. package/dist/quality/oee.d.ts +12 -1
  292. package/dist/quality/oee.d.ts.map +1 -1
  293. package/dist/quality/oee.js +21 -9
  294. package/dist/quality/oee.js.map +1 -1
  295. package/dist/quality/ppk.d.ts.map +1 -1
  296. package/dist/quality/ppk.js +1 -16
  297. package/dist/quality/ppk.js.map +1 -1
  298. package/dist/quality/ppm.d.ts.map +1 -1
  299. package/dist/quality/ppm.js +1 -80
  300. package/dist/quality/ppm.js.map +1 -1
  301. package/dist/quality/types.d.ts +31 -0
  302. package/dist/quality/types.d.ts.map +1 -1
  303. package/dist/safety/fallClearance.d.ts.map +1 -1
  304. package/dist/safety/fallClearance.js +5 -4
  305. package/dist/safety/fallClearance.js.map +1 -1
  306. package/dist/safety/index.d.ts +2 -1
  307. package/dist/safety/index.d.ts.map +1 -1
  308. package/dist/safety/index.js +1 -0
  309. package/dist/safety/index.js.map +1 -1
  310. package/dist/safety/nioshLifting.d.ts +19 -10
  311. package/dist/safety/nioshLifting.d.ts.map +1 -1
  312. package/dist/safety/nioshLifting.js +19 -10
  313. package/dist/safety/nioshLifting.js.map +1 -1
  314. package/dist/safety/types.d.ts +19 -0
  315. package/dist/safety/types.d.ts.map +1 -1
  316. package/dist/safety/ventilationRate.d.ts +12 -0
  317. package/dist/safety/ventilationRate.d.ts.map +1 -0
  318. package/dist/safety/ventilationRate.js +71 -0
  319. package/dist/safety/ventilationRate.js.map +1 -0
  320. package/dist/utility/index.d.ts +1 -1
  321. package/dist/utility/index.d.ts.map +1 -1
  322. package/dist/utility/types.d.ts +0 -16
  323. package/dist/utility/types.d.ts.map +1 -1
  324. package/dist/utils.d.ts +3 -2
  325. package/dist/utils.d.ts.map +1 -1
  326. package/dist/utils.js +6 -4
  327. package/dist/utils.js.map +1 -1
  328. package/package.json +34 -3
  329. package/dist/utility/qrcode.d.ts +0 -30
  330. package/dist/utility/qrcode.d.ts.map +0 -1
  331. package/dist/utility/qrcode.js +0 -30
  332. package/dist/utility/qrcode.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"welding.d.ts","sourceRoot":"","sources":["../../src/metal/welding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAgC,MAAM,YAAY,CAAC;AA2C5F;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CAwC1D"}
1
+ {"version":3,"file":"welding.d.ts","sourceRoot":"","sources":["../../src/metal/welding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAgC,MAAM,YAAY,CAAC;AA2C5F;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CAwC1D"}
@@ -1,3 +1,4 @@
1
+ import { roundTo } from '../utils.js';
1
2
  // Electrode database by base metal
2
3
  const ELECTRODES = {
3
4
  mildSteel: [
@@ -56,8 +57,8 @@ export function welding(input) {
56
57
  : allRods.filter(r => ALL_POSITION.has(r.designation));
57
58
  const rodDiameter = getRodDiameter(thickness);
58
59
  // Current range: diameter x (25 to 45) A/mm
59
- const currentMin = Math.round(rodDiameter * 25);
60
- const currentMax = Math.round(rodDiameter * 45);
60
+ const currentMin = roundTo(rodDiameter * 25, 0);
61
+ const currentMax = roundTo(rodDiameter * 45, 0);
61
62
  const notes = [];
62
63
  if (baseMetal === 'aluminum') {
63
64
  notes.push('Preheat 150-200°C recommended for thick sections');
@@ -1 +1 @@
1
- {"version":3,"file":"welding.js","sourceRoot":"","sources":["../../src/metal/welding.ts"],"names":[],"mappings":"AAEA,mCAAmC;AACnC,MAAM,UAAU,GAA2C;IACzD,SAAS,EAAE;QACT,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,sCAAsC,EAAE;QACvG,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,0CAA0C,EAAE;QAC3G,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,4CAA4C,EAAE;QAC7G,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,uCAAuC,EAAE;KACzG;IACD,aAAa,EAAE;QACb,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,yCAAyC,EAAE;QAC7G,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,8CAA8C,EAAE;QAClH,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,6CAA6C,EAAE;KAClH;IACD,cAAc,EAAE;QACd,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,4CAA4C,EAAE;QAChH,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,uCAAuC,EAAE;QAC3G,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,iDAAiD,EAAE;KACtH;IACD,QAAQ,EAAE;QACR,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,uCAAuC,EAAE;QAC1G,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,sCAAsC,EAAE;QAC3G,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,wCAAwC,EAAE;KACzG;IACD,QAAQ,EAAE;QACR,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,qCAAqC,EAAE;QACtG,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,qCAAqC,EAAE;KACvG;CACF,CAAC;AAEF,0BAA0B;AAC1B,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAEjL,yCAAyC;AACzC,SAAS,cAAc,CAAC,SAAiB;IACvC,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IAC/B,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IAC/B,IAAI,SAAS,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IAChC,IAAI,SAAS,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IAChC,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAEjD,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC9F,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAE5C,qBAAqB;IACrB,MAAM,aAAa,GAAG,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,YAAY,CAAC;IACvE,MAAM,eAAe,GAAG,aAAa;QACnC,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IAEzD,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE9C,4CAA4C;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;IAEhD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAC/D,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO;QACL,eAAe;QACf,WAAW;QACX,YAAY,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE;QAClD,KAAK;KACN,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"welding.js","sourceRoot":"","sources":["../../src/metal/welding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { ControlChartInput, ControlChartResult } from './types.js';
2
+ /**
3
+ * SPC Control Chart Calculator (X-bar/R and X-bar/S)
4
+ *
5
+ * @formula X-bar/R method:
6
+ * - σ̂ = R̄ / d₂
7
+ * - UCL_X̄ = X̿ + A₂R̄, LCL_X̄ = X̿ − A₂R̄
8
+ * - UCL_R = D₄R̄, LCL_R = D₃R̄
9
+ *
10
+ * @formula X-bar/S method:
11
+ * - σ̂ = S̄ / c₄
12
+ * - UCL_X̄ = X̿ + A₃S̄, LCL_X̄ = X̿ − A₃S̄
13
+ * - UCL_S = B₄S̄, LCL_S = B₃S̄
14
+ *
15
+ * @reference AIAG (2005). "Statistical Process Control (SPC)", 2nd Ed.
16
+ * @reference ASTM E2587-16. Standard Practice for Use of Control Charts.
17
+ * @reference Wheeler, D. J. & Chambers, D. S. (1992). "Understanding Statistical Process Control".
18
+ *
19
+ * @validation Constants verified against AIAG/ASTM tables for n = 2..25:
20
+ * n=5: A₂=0.577, D₃=0, D₄=2.114, d₂=2.326
21
+ *
22
+ * @param input - chart type and subgroup data
23
+ * @returns control limits, subgroup statistics, out-of-control points
24
+ */
25
+ export declare function controlChart(input: ControlChartInput): ControlChartResult;
26
+ //# sourceMappingURL=controlChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controlChart.d.ts","sourceRoot":"","sources":["../../src/quality/controlChart.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAA8B,MAAM,YAAY,CAAC;AA4EpG;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CAwBzE"}
@@ -0,0 +1,216 @@
1
+ import { roundTo } from '../utils.js';
2
+ /**
3
+ * SPC Control Chart Constants (AIAG SPC Reference Manual / ASTM E2587-16)
4
+ * Cross-referenced: MIT 2.810, Bessegato reference table, Quality America
5
+ *
6
+ * Keyed by subgroup size n (2..25)
7
+ */
8
+ const XBAR_R_CONSTANTS = {
9
+ 2: { A2: 1.880, D3: 0, D4: 3.267, d2: 1.128 },
10
+ 3: { A2: 1.023, D3: 0, D4: 2.574, d2: 1.693 },
11
+ 4: { A2: 0.729, D3: 0, D4: 2.282, d2: 2.059 },
12
+ 5: { A2: 0.577, D3: 0, D4: 2.114, d2: 2.326 },
13
+ 6: { A2: 0.483, D3: 0, D4: 2.004, d2: 2.534 },
14
+ 7: { A2: 0.419, D3: 0.076, D4: 1.924, d2: 2.704 },
15
+ 8: { A2: 0.373, D3: 0.136, D4: 1.864, d2: 2.847 },
16
+ 9: { A2: 0.337, D3: 0.184, D4: 1.816, d2: 2.970 },
17
+ 10: { A2: 0.308, D3: 0.223, D4: 1.777, d2: 3.078 },
18
+ 11: { A2: 0.285, D3: 0.256, D4: 1.744, d2: 3.173 },
19
+ 12: { A2: 0.266, D3: 0.283, D4: 1.717, d2: 3.258 },
20
+ 13: { A2: 0.249, D3: 0.307, D4: 1.693, d2: 3.336 },
21
+ 14: { A2: 0.235, D3: 0.328, D4: 1.672, d2: 3.407 },
22
+ 15: { A2: 0.223, D3: 0.347, D4: 1.653, d2: 3.472 },
23
+ 16: { A2: 0.212, D3: 0.363, D4: 1.637, d2: 3.532 },
24
+ 17: { A2: 0.203, D3: 0.378, D4: 1.622, d2: 3.588 },
25
+ 18: { A2: 0.194, D3: 0.391, D4: 1.608, d2: 3.640 },
26
+ 19: { A2: 0.187, D3: 0.403, D4: 1.597, d2: 3.689 },
27
+ 20: { A2: 0.180, D3: 0.415, D4: 1.585, d2: 3.735 },
28
+ 21: { A2: 0.173, D3: 0.425, D4: 1.575, d2: 3.778 },
29
+ 22: { A2: 0.167, D3: 0.434, D4: 1.566, d2: 3.819 },
30
+ 23: { A2: 0.162, D3: 0.443, D4: 1.557, d2: 3.858 },
31
+ 24: { A2: 0.157, D3: 0.451, D4: 1.548, d2: 3.895 },
32
+ 25: { A2: 0.153, D3: 0.459, D4: 1.541, d2: 3.931 },
33
+ };
34
+ const XBAR_S_CONSTANTS = {
35
+ 2: { A3: 2.659, B3: 0, B4: 3.267, c4: 0.7979 },
36
+ 3: { A3: 1.954, B3: 0, B4: 2.568, c4: 0.8862 },
37
+ 4: { A3: 1.628, B3: 0, B4: 2.266, c4: 0.9213 },
38
+ 5: { A3: 1.427, B3: 0, B4: 2.089, c4: 0.9400 },
39
+ 6: { A3: 1.287, B3: 0.030, B4: 1.970, c4: 0.9515 },
40
+ 7: { A3: 1.182, B3: 0.118, B4: 1.882, c4: 0.9594 },
41
+ 8: { A3: 1.099, B3: 0.185, B4: 1.815, c4: 0.9650 },
42
+ 9: { A3: 1.032, B3: 0.239, B4: 1.761, c4: 0.9693 },
43
+ 10: { A3: 0.975, B3: 0.284, B4: 1.716, c4: 0.9727 },
44
+ 11: { A3: 0.927, B3: 0.321, B4: 1.679, c4: 0.9754 },
45
+ 12: { A3: 0.886, B3: 0.354, B4: 1.646, c4: 0.9776 },
46
+ 13: { A3: 0.850, B3: 0.382, B4: 1.618, c4: 0.9794 },
47
+ 14: { A3: 0.817, B3: 0.406, B4: 1.594, c4: 0.9810 },
48
+ 15: { A3: 0.789, B3: 0.428, B4: 1.572, c4: 0.9823 },
49
+ 16: { A3: 0.763, B3: 0.448, B4: 1.552, c4: 0.9835 },
50
+ 17: { A3: 0.739, B3: 0.466, B4: 1.534, c4: 0.9845 },
51
+ 18: { A3: 0.718, B3: 0.482, B4: 1.518, c4: 0.9854 },
52
+ 19: { A3: 0.698, B3: 0.497, B4: 1.503, c4: 0.9862 },
53
+ 20: { A3: 0.680, B3: 0.510, B4: 1.490, c4: 0.9869 },
54
+ 21: { A3: 0.663, B3: 0.523, B4: 1.477, c4: 0.9876 },
55
+ 22: { A3: 0.647, B3: 0.534, B4: 1.466, c4: 0.9882 },
56
+ 23: { A3: 0.633, B3: 0.545, B4: 1.455, c4: 0.9887 },
57
+ 24: { A3: 0.619, B3: 0.555, B4: 1.445, c4: 0.9892 },
58
+ 25: { A3: 0.606, B3: 0.565, B4: 1.435, c4: 0.9896 },
59
+ };
60
+ function mean(arr) {
61
+ return arr.reduce((s, v) => s + v, 0) / arr.length;
62
+ }
63
+ function range(arr) {
64
+ return Math.max(...arr) - Math.min(...arr);
65
+ }
66
+ function stdDev(arr) {
67
+ const m = mean(arr);
68
+ const variance = arr.reduce((s, v) => s + (v - m) * (v - m), 0) / (arr.length - 1);
69
+ return Math.sqrt(variance);
70
+ }
71
+ /**
72
+ * SPC Control Chart Calculator (X-bar/R and X-bar/S)
73
+ *
74
+ * @formula X-bar/R method:
75
+ * - σ̂ = R̄ / d₂
76
+ * - UCL_X̄ = X̿ + A₂R̄, LCL_X̄ = X̿ − A₂R̄
77
+ * - UCL_R = D₄R̄, LCL_R = D₃R̄
78
+ *
79
+ * @formula X-bar/S method:
80
+ * - σ̂ = S̄ / c₄
81
+ * - UCL_X̄ = X̿ + A₃S̄, LCL_X̄ = X̿ − A₃S̄
82
+ * - UCL_S = B₄S̄, LCL_S = B₃S̄
83
+ *
84
+ * @reference AIAG (2005). "Statistical Process Control (SPC)", 2nd Ed.
85
+ * @reference ASTM E2587-16. Standard Practice for Use of Control Charts.
86
+ * @reference Wheeler, D. J. & Chambers, D. S. (1992). "Understanding Statistical Process Control".
87
+ *
88
+ * @validation Constants verified against AIAG/ASTM tables for n = 2..25:
89
+ * n=5: A₂=0.577, D₃=0, D₄=2.114, d₂=2.326
90
+ *
91
+ * @param input - chart type and subgroup data
92
+ * @returns control limits, subgroup statistics, out-of-control points
93
+ */
94
+ export function controlChart(input) {
95
+ const { chartType, subgroups } = input;
96
+ if (subgroups.length < 2) {
97
+ throw new Error('At least 2 subgroups are required');
98
+ }
99
+ const n = subgroups[0].length;
100
+ if (n < 2 || n > 25) {
101
+ throw new Error('Subgroup size must be between 2 and 25');
102
+ }
103
+ // Validate consistent subgroup size
104
+ for (let i = 0; i < subgroups.length; i++) {
105
+ if (subgroups[i].length !== n) {
106
+ throw new Error(`Subgroup ${i + 1} has size ${subgroups[i].length}, expected ${n}`);
107
+ }
108
+ }
109
+ if (chartType === 'xbarR') {
110
+ return calcXbarR(subgroups, n);
111
+ }
112
+ else {
113
+ return calcXbarS(subgroups, n);
114
+ }
115
+ }
116
+ function calcXbarR(subgroups, n) {
117
+ const constants = XBAR_R_CONSTANTS[n];
118
+ // Calculate subgroup statistics
119
+ const subgroupMeans = subgroups.map(sg => mean(sg));
120
+ const subgroupRanges = subgroups.map(sg => range(sg));
121
+ // Grand mean and average range
122
+ const grandMean = mean(subgroupMeans);
123
+ const rBar = mean(subgroupRanges);
124
+ // Sigma estimate: σ̂ = R̄ / d₂
125
+ const sigmaEstimate = rBar / constants.d2;
126
+ // X-bar control limits
127
+ const xBarLimits = {
128
+ centerLine: roundTo(grandMean, 4),
129
+ ucl: roundTo(grandMean + constants.A2 * rBar, 4),
130
+ lcl: roundTo(grandMean - constants.A2 * rBar, 4),
131
+ };
132
+ // R chart control limits
133
+ const rLimits = {
134
+ centerLine: roundTo(rBar, 4),
135
+ ucl: roundTo(constants.D4 * rBar, 4),
136
+ lcl: roundTo(Math.max(0, constants.D3 * rBar), 4),
137
+ };
138
+ // Subgroup stats and out-of-control detection
139
+ const outOfControlPoints = [];
140
+ const subgroupStats = subgroups.map((_sg, i) => {
141
+ const sgMean = subgroupMeans[i];
142
+ const sgRange = subgroupRanges[i];
143
+ const ooc = sgMean < xBarLimits.lcl || sgMean > xBarLimits.ucl
144
+ || sgRange > rLimits.ucl || (rLimits.lcl > 0 && sgRange < rLimits.lcl);
145
+ if (ooc)
146
+ outOfControlPoints.push(i);
147
+ return {
148
+ index: i,
149
+ mean: roundTo(sgMean, 4),
150
+ range: roundTo(sgRange, 4),
151
+ outOfControl: ooc,
152
+ };
153
+ });
154
+ return {
155
+ chartType: 'xbarR',
156
+ subgroupSize: n,
157
+ xBarLimits,
158
+ rOrSLimits: rLimits,
159
+ subgroupStats,
160
+ grandMean: roundTo(grandMean, 4),
161
+ sigmaEstimate: roundTo(sigmaEstimate, 4),
162
+ outOfControlPoints,
163
+ processCapable: outOfControlPoints.length === 0,
164
+ };
165
+ }
166
+ function calcXbarS(subgroups, n) {
167
+ const constants = XBAR_S_CONSTANTS[n];
168
+ // Calculate subgroup statistics
169
+ const subgroupMeans = subgroups.map(sg => mean(sg));
170
+ const subgroupStdDevs = subgroups.map(sg => stdDev(sg));
171
+ // Grand mean and average std dev
172
+ const grandMean = mean(subgroupMeans);
173
+ const sBar = mean(subgroupStdDevs);
174
+ // Sigma estimate: σ̂ = S̄ / c₄
175
+ const sigmaEstimate = sBar / constants.c4;
176
+ // X-bar control limits
177
+ const xBarLimits = {
178
+ centerLine: roundTo(grandMean, 4),
179
+ ucl: roundTo(grandMean + constants.A3 * sBar, 4),
180
+ lcl: roundTo(grandMean - constants.A3 * sBar, 4),
181
+ };
182
+ // S chart control limits
183
+ const sLimits = {
184
+ centerLine: roundTo(sBar, 4),
185
+ ucl: roundTo(constants.B4 * sBar, 4),
186
+ lcl: roundTo(Math.max(0, constants.B3 * sBar), 4),
187
+ };
188
+ // Subgroup stats and out-of-control detection
189
+ const outOfControlPoints = [];
190
+ const subgroupStats = subgroups.map((_sg, i) => {
191
+ const sgMean = subgroupMeans[i];
192
+ const sgStdDev = subgroupStdDevs[i];
193
+ const ooc = sgMean < xBarLimits.lcl || sgMean > xBarLimits.ucl
194
+ || sgStdDev > sLimits.ucl || (sLimits.lcl > 0 && sgStdDev < sLimits.lcl);
195
+ if (ooc)
196
+ outOfControlPoints.push(i);
197
+ return {
198
+ index: i,
199
+ mean: roundTo(sgMean, 4),
200
+ stdDev: roundTo(sgStdDev, 4),
201
+ outOfControl: ooc,
202
+ };
203
+ });
204
+ return {
205
+ chartType: 'xbarS',
206
+ subgroupSize: n,
207
+ xBarLimits,
208
+ rOrSLimits: sLimits,
209
+ subgroupStats,
210
+ grandMean: roundTo(grandMean, 4),
211
+ sigmaEstimate: roundTo(sigmaEstimate, 4),
212
+ outOfControlPoints,
213
+ processCapable: outOfControlPoints.length === 0,
214
+ };
215
+ }
216
+ //# sourceMappingURL=controlChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controlChart.js","sourceRoot":"","sources":["../../src/quality/controlChart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;GAKG;AACH,MAAM,gBAAgB,GAAuE;IAC3F,CAAC,EAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,CAAC,EAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,CAAC,EAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,CAAC,EAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,CAAC,EAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,CAAC,EAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,CAAC,EAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,CAAC,EAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;CACnD,CAAC;AAEF,MAAM,gBAAgB,GAAuE;IAC3F,CAAC,EAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,CAAC,EAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,CAAC,EAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,CAAC,EAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,CAAC,EAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,CAAC,EAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,CAAC,EAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,CAAC,EAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IACnD,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,E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"}
@@ -2,10 +2,22 @@ import type { CpkInput, CpkResult } from './types.js';
2
2
  /**
3
3
  * Calculate Cpk (Process Capability Index)
4
4
  *
5
- * Cp = (USL - LSL) / (6 * sigma) - Process capability (potential)
6
- * Cpu = (USL - mean) / (3 * sigma) - Upper capability
7
- * Cpl = (mean - LSL) / (3 * sigma) - Lower capability
8
- * Cpk = min(Cpu, Cpl) - Process capability index (actual)
5
+ * @formula
6
+ * - Cp = (USL - LSL) / () Process potential
7
+ * - Cpu = (USL - mean) / (3σ) Upper capability
8
+ * - Cpl = (mean - LSL) / () — Lower capability
9
+ * - Cpk = min(Cpu, Cpl) — Actual capability
10
+ * - Sigma Level = 3 × Cpk
11
+ *
12
+ * @reference Montgomery, D. C. "Introduction to Statistical Quality Control", 7th Ed. Wiley.
13
+ * @reference ISO 22514-2:2017. Statistical methods in process management — Capability and performance.
14
+ *
15
+ * @units USL/LSL/mean/stdDev: same unit (e.g., mm, g); Cpk is dimensionless
16
+ *
17
+ * @validation
18
+ * - Cpk ≥ 1.33: Capable process (4σ from nearest spec)
19
+ * - Cpk ≥ 2.00: Six Sigma process (6σ from nearest spec)
20
+ * - Cpk = Cp when process is perfectly centered
9
21
  *
10
22
  * @param input - Cpk input parameters
11
23
  * @returns Cpk result with capability indices and sigma level
@@ -1 +1 @@
1
- {"version":3,"file":"cpk.d.ts","sourceRoot":"","sources":["../../src/quality/cpk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;;;;;GAUG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CAuC9C"}
1
+ {"version":3,"file":"cpk.d.ts","sourceRoot":"","sources":["../../src/quality/cpk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CAuC9C"}
@@ -1,10 +1,22 @@
1
1
  /**
2
2
  * Calculate Cpk (Process Capability Index)
3
3
  *
4
- * Cp = (USL - LSL) / (6 * sigma) - Process capability (potential)
5
- * Cpu = (USL - mean) / (3 * sigma) - Upper capability
6
- * Cpl = (mean - LSL) / (3 * sigma) - Lower capability
7
- * Cpk = min(Cpu, Cpl) - Process capability index (actual)
4
+ * @formula
5
+ * - Cp = (USL - LSL) / () Process potential
6
+ * - Cpu = (USL - mean) / (3σ) Upper capability
7
+ * - Cpl = (mean - LSL) / () — Lower capability
8
+ * - Cpk = min(Cpu, Cpl) — Actual capability
9
+ * - Sigma Level = 3 × Cpk
10
+ *
11
+ * @reference Montgomery, D. C. "Introduction to Statistical Quality Control", 7th Ed. Wiley.
12
+ * @reference ISO 22514-2:2017. Statistical methods in process management — Capability and performance.
13
+ *
14
+ * @units USL/LSL/mean/stdDev: same unit (e.g., mm, g); Cpk is dimensionless
15
+ *
16
+ * @validation
17
+ * - Cpk ≥ 1.33: Capable process (4σ from nearest spec)
18
+ * - Cpk ≥ 2.00: Six Sigma process (6σ from nearest spec)
19
+ * - Cpk = Cp when process is perfectly centered
8
20
  *
9
21
  * @param input - Cpk input parameters
10
22
  * @returns Cpk result with capability indices and sigma level
@@ -1 +1 @@
1
- {"version":3,"file":"cpk.js","sourceRoot":"","sources":["../../src/quality/cpk.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,GAAG,CAAC,KAAe;IACjC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzC,8DAA8D;IAC9D,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAChB,OAAO;YACL,EAAE,EAAE,CAAC;YACL,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,CAAC;YACN,UAAU,EAAE,CAAC;SACd,CAAC;IACJ,CAAC;IAED,sBAAsB;IACtB,MAAM,SAAS,GAAG,GAAG,GAAG,GAAG,CAAC;IAE5B,iCAAiC;IACjC,MAAM,EAAE,GAAG,SAAS,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAEpC,mCAAmC;IACnC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAExC,mCAAmC;IACnC,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAExC,sBAAsB;IACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEpC,sCAAsC;IACtC,MAAM,UAAU,GAAG,CAAC,GAAG,QAAQ,CAAC;IAEhC,OAAO;QACL,EAAE;QACF,GAAG,EAAE,QAAQ;QACb,GAAG;QACH,GAAG;QACH,UAAU;KACX,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"cpk.js","sourceRoot":"","sources":["../../src/quality/cpk.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,GAAG,CAAC,KAAe;IACjC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzC,8DAA8D;IAC9D,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAChB,OAAO;YACL,EAAE,EAAE,CAAC;YACL,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,CAAC;YACN,UAAU,EAAE,CAAC;SACd,CAAC;IACJ,CAAC;IAED,sBAAsB;IACtB,MAAM,SAAS,GAAG,GAAG,GAAG,GAAG,CAAC;IAE5B,iCAAiC;IACjC,MAAM,EAAE,GAAG,SAAS,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAEpC,mCAAmC;IACnC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAExC,mCAAmC;IACnC,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAExC,sBAAsB;IACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEpC,sCAAsC;IACtC,MAAM,UAAU,GAAG,CAAC,GAAG,QAAQ,CAAC;IAEhC,OAAO;QACL,EAAE;QACF,GAAG,EAAE,QAAQ;QACb,GAAG;QACH,GAAG;QACH,UAAU;KACX,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dpmo.d.ts","sourceRoot":"","sources":["../../src/quality/dpmo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA+ExD;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CAiCjD"}
1
+ {"version":3,"file":"dpmo.d.ts","sourceRoot":"","sources":["../../src/quality/dpmo.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAkBxD;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CAiCjD"}
@@ -1,65 +1,5 @@
1
1
  import { roundTo } from '../utils.js';
2
- /**
3
- * Approximation of the inverse normal CDF (probit function)
4
- * Uses Abramowitz and Stegun approximation
5
- */
6
- function normalInvCDF(p) {
7
- if (p <= 0)
8
- return -Infinity;
9
- if (p >= 1)
10
- return Infinity;
11
- if (p === 0.5)
12
- return 0;
13
- // Use rational approximation
14
- const a = [
15
- -3.969683028665376e1,
16
- 2.209460984245205e2,
17
- -2.759285104469687e2,
18
- 1.383577518672690e2,
19
- -3.066479806614716e1,
20
- 2.506628277459239e0,
21
- ];
22
- const b = [
23
- -5.447609879822406e1,
24
- 1.615858368580409e2,
25
- -1.556989798598866e2,
26
- 6.680131188771972e1,
27
- -1.328068155288572e1,
28
- ];
29
- const c = [
30
- -7.784894002430293e-3,
31
- -3.223964580411365e-1,
32
- -2.400758277161838e0,
33
- -2.549732539343734e0,
34
- 4.374664141464968e0,
35
- 2.938163982698783e0,
36
- ];
37
- const d = [
38
- 7.784695709041462e-3,
39
- 3.224671290700398e-1,
40
- 2.445134137142996e0,
41
- 3.754408661907416e0,
42
- ];
43
- const pLow = 0.02425;
44
- const pHigh = 1 - pLow;
45
- let q, r;
46
- if (p < pLow) {
47
- q = Math.sqrt(-2 * Math.log(p));
48
- return (((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4]) * q + c[5]) /
49
- ((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1);
50
- }
51
- else if (p <= pHigh) {
52
- q = p - 0.5;
53
- r = q * q;
54
- return (((((a[0] * r + a[1]) * r + a[2]) * r + a[3]) * r + a[4]) * r + a[5]) * q /
55
- (((((b[0] * r + b[1]) * r + b[2]) * r + b[3]) * r + b[4]) * r + 1);
56
- }
57
- else {
58
- q = Math.sqrt(-2 * Math.log(1 - p));
59
- return -(((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4]) * q + c[5]) /
60
- ((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1);
61
- }
62
- }
2
+ import { normalInvCDF } from '../math.js';
63
3
  /**
64
4
  * Convert DPMO to Sigma level using normal distribution
65
5
  * Sigma = normalInvCDF(1 - DPMO/1000000) + 1.5 (with 1.5 sigma shift)
@@ -1 +1 @@
1
- {"version":3,"file":"dpmo.js","sourceRoot":"","sources":["../../src/quality/dpmo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dpmo.js","sourceRoot":"","sources":["../../src/quality/dpmo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C;;;GAGG;AACH,SAAS,WAAW,CAAC,SAAiB;IACpC,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC,kBAAkB;IAChD,IAAI,SAAS,IAAI,OAAO;QAAE,OAAO,CAAC,CAAC,CAAC,gBAAgB;IAEpD,+BAA+B;IAC/B,MAAM,aAAa,GAAG,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC;IAC9C,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAE3C,mEAAmE;IACnE,OAAO,MAAM,GAAG,GAAG,CAAC;AACtB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,IAAI,CAAC,KAAgB;IACnC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAEhD,wBAAwB;IACxB,IAAI,KAAK,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC;IAED,gCAAgC;IAChC,MAAM,kBAAkB,GAAG,KAAK,GAAG,aAAa,CAAC;IAEjD,iBAAiB;IACjB,MAAM,SAAS,GAAG,CAAC,OAAO,GAAG,kBAAkB,CAAC,GAAG,OAAO,CAAC;IAE3D,mCAAmC;IACnC,MAAM,GAAG,GAAG,OAAO,GAAG,KAAK,CAAC;IAE5B,mCAAmC;IACnC,MAAM,UAAU,GAAG,CAAC,OAAO,GAAG,kBAAkB,CAAC,GAAG,GAAG,CAAC;IAExD,6BAA6B;IAC7B,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC;IAErD,wBAAwB;IACxB,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IAE1C,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3B,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QAC/B,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;KACnC,CAAC;AACJ,CAAC"}
@@ -11,5 +11,6 @@ export { ppk } from './ppk.js';
11
11
  export { ppm } from './ppm.js';
12
12
  export { rpn } from './rpn.js';
13
13
  export { yieldCalc } from './yield.js';
14
- export type { OeeRawData, OeeInput, OeeResult, CpkInput, CpkResult, CycleTimeInput, CycleTimeResult, TimeUnit, TaktTimeInput, TaktTimeResult, InspectionLevel, AqlInput, AqlResult, DowntimeInput, DowntimeResult, DpmoInput, DpmoResult, BalancingTask, LineBalancingInput, WorkStation, PositionalWeight, LineBalancingResult, MtbfInput, MtbfResult, PpkInput, PpkResult, ConvertFrom, PpmInput, PpmResult, RpnInput, RiskLevel, RpnResult, YieldInput, YieldResult, } from './types.js';
14
+ export { controlChart } from './controlChart.js';
15
+ export type { OeeRawData, OeeInput, OeeResult, CpkInput, CpkResult, CycleTimeInput, CycleTimeResult, TimeUnit, TaktTimeInput, TaktTimeResult, InspectionLevel, AqlInput, AqlResult, DowntimeInput, DowntimeResult, DpmoInput, DpmoResult, BalancingTask, LineBalancingInput, WorkStation, PositionalWeight, LineBalancingResult, MtbfInput, MtbfResult, PpkInput, PpkResult, ConvertFrom, PpmInput, PpmResult, RpnInput, RiskLevel, RpnResult, YieldInput, YieldResult, ControlChartType, ControlChartInput, ControlLimit, SubgroupStat, ControlChartResult, } from './types.js';
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/quality/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,YAAY,EAEV,UAAU,EACV,QAAQ,EACR,SAAS,EAET,QAAQ,EACR,SAAS,EAET,cAAc,EACd,eAAe,EAEf,QAAQ,EACR,aAAa,EACb,cAAc,EAEd,eAAe,EACf,QAAQ,EACR,SAAS,EAET,aAAa,EACb,cAAc,EAEd,SAAS,EACT,UAAU,EAEV,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EAEnB,SAAS,EACT,UAAU,EAEV,QAAQ,EACR,SAAS,EAET,WAAW,EACX,QAAQ,EACR,SAAS,EAET,QAAQ,EACR,SAAS,EACT,SAAS,EAET,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/quality/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,YAAY,EAEV,UAAU,EACV,QAAQ,EACR,SAAS,EAET,QAAQ,EACR,SAAS,EAET,cAAc,EACd,eAAe,EAEf,QAAQ,EACR,aAAa,EACb,cAAc,EAEd,eAAe,EACf,QAAQ,EACR,SAAS,EAET,aAAa,EACb,cAAc,EAEd,SAAS,EACT,UAAU,EAEV,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EAEnB,SAAS,EACT,UAAU,EAEV,QAAQ,EACR,SAAS,EAET,WAAW,EACX,QAAQ,EACR,SAAS,EAET,QAAQ,EACR,SAAS,EACT,SAAS,EAET,UAAU,EACV,WAAW,EAEX,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
@@ -12,4 +12,5 @@ export { ppk } from './ppk.js';
12
12
  export { ppm } from './ppm.js';
13
13
  export { rpn } from './rpn.js';
14
14
  export { yieldCalc } from './yield.js';
15
+ export { controlChart } from './controlChart.js';
15
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/quality/index.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/quality/index.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -2,7 +2,18 @@ import type { OeeInput, OeeResult } from './types.js';
2
2
  /**
3
3
  * Calculate OEE (Overall Equipment Effectiveness)
4
4
  *
5
- * OEE = Availability x Performance x Quality
5
+ * @formula OEE = Availability × Performance × Quality
6
+ * - Availability = Run Time / Planned Production Time
7
+ * - Performance = (Ideal Cycle Time × Total Count) / Run Time
8
+ * - Quality = Good Count / Total Count
9
+ *
10
+ * @reference JIPM (1999). "TPM for Workshop Leaders", 3rd Ed.
11
+ * @reference ISO 22400-2:2014. Key performance indicators for manufacturing operations.
12
+ * @reference Nakajima, S. (1988). "Introduction to TPM". Productivity Press.
13
+ *
14
+ * @units plannedTime: minutes, runTime: minutes, idealCycleTime: minutes/piece
15
+ *
16
+ * @validation World-class benchmarks: A ≥ 90%, P ≥ 95%, Q ≥ 99.9% → OEE ≈ 85%
6
17
  *
7
18
  * @param input - OEE input parameters with raw production data
8
19
  * @returns OEE result with factors (0-1) and percentages (0-100)
@@ -1 +1 @@
1
- {"version":3,"file":"oee.d.ts","sourceRoot":"","sources":["../../src/quality/oee.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;;;GAQG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CAmD9C"}
1
+ {"version":3,"file":"oee.d.ts","sourceRoot":"","sources":["../../src/quality/oee.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CAmD9C"}
@@ -1,7 +1,19 @@
1
+ import { roundTo } from '../utils.js';
1
2
  /**
2
3
  * Calculate OEE (Overall Equipment Effectiveness)
3
4
  *
4
- * OEE = Availability x Performance x Quality
5
+ * @formula OEE = Availability × Performance × Quality
6
+ * - Availability = Run Time / Planned Production Time
7
+ * - Performance = (Ideal Cycle Time × Total Count) / Run Time
8
+ * - Quality = Good Count / Total Count
9
+ *
10
+ * @reference JIPM (1999). "TPM for Workshop Leaders", 3rd Ed.
11
+ * @reference ISO 22400-2:2014. Key performance indicators for manufacturing operations.
12
+ * @reference Nakajima, S. (1988). "Introduction to TPM". Productivity Press.
13
+ *
14
+ * @units plannedTime: minutes, runTime: minutes, idealCycleTime: minutes/piece
15
+ *
16
+ * @validation World-class benchmarks: A ≥ 90%, P ≥ 95%, Q ≥ 99.9% → OEE ≈ 85%
5
17
  *
6
18
  * @param input - OEE input parameters with raw production data
7
19
  * @returns OEE result with factors (0-1) and percentages (0-100)
@@ -36,16 +48,16 @@ export function oee(input) {
36
48
  const oeeValue = availability * performance * quality;
37
49
  return {
38
50
  factors: {
39
- availability,
40
- performance,
41
- quality,
42
- oee: oeeValue,
51
+ availability: roundTo(availability, 4),
52
+ performance: roundTo(performance, 4),
53
+ quality: roundTo(quality, 4),
54
+ oee: roundTo(oeeValue, 4),
43
55
  },
44
56
  percentages: {
45
- availability: availability * 100,
46
- performance: performance * 100,
47
- quality: quality * 100,
48
- oee: oeeValue * 100,
57
+ availability: roundTo(availability * 100, 1),
58
+ performance: roundTo(performance * 100, 1),
59
+ quality: roundTo(quality * 100, 1),
60
+ oee: roundTo(oeeValue * 100, 1),
49
61
  },
50
62
  };
51
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"oee.js","sourceRoot":"","sources":["../../src/quality/oee.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,UAAU,GAAG,CAAC,KAAe;IACjC,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1B,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAEhF,+CAA+C;IAC/C,IAAI,SAAS,GAAG,UAAU,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,6BAA6B,SAAS,+BAA+B,UAAU,GAAG,CACnF,CAAC;IACJ,CAAC;IAED,uCAAuC;IACvC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,SAAS,sBAAsB,CAAC,CAAC;IAChF,CAAC;IAED,sDAAsD;IACtD,IAAI,WAAW,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,cAAc,IAAI,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QAC9E,OAAO;YACL,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;YAChE,WAAW,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;SACrE,CAAC;IACJ,CAAC;IAED,yCAAyC;IACzC,MAAM,YAAY,GAAG,OAAO,GAAG,WAAW,CAAC;IAE3C,4DAA4D;IAC5D,4DAA4D;IAC5D,MAAM,WAAW,GAAG,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,OAAO,CAAC;IAE5D,qCAAqC;IACrC,MAAM,OAAO,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5D,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,CAAC;IAEtD,OAAO;QACL,OAAO,EAAE;YACP,YAAY;YACZ,WAAW;YACX,OAAO;YACP,GAAG,EAAE,QAAQ;SACd;QACD,WAAW,EAAE;YACX,YAAY,EAAE,YAAY,GAAG,GAAG;YAChC,WAAW,EAAE,WAAW,GAAG,GAAG;YAC9B,OAAO,EAAE,OAAO,GAAG,GAAG;YACtB,GAAG,EAAE,QAAQ,GAAG,GAAG;SACpB;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"oee.js","sourceRoot":"","sources":["../../src/quality/oee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,GAAG,CAAC,KAAe;IACjC,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1B,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAEhF,+CAA+C;IAC/C,IAAI,SAAS,GAAG,UAAU,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,6BAA6B,SAAS,+BAA+B,UAAU,GAAG,CACnF,CAAC;IACJ,CAAC;IAED,uCAAuC;IACvC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,SAAS,sBAAsB,CAAC,CAAC;IAChF,CAAC;IAED,sDAAsD;IACtD,IAAI,WAAW,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,cAAc,IAAI,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QAC9E,OAAO;YACL,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;YAChE,WAAW,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;SACrE,CAAC;IACJ,CAAC;IAED,yCAAyC;IACzC,MAAM,YAAY,GAAG,OAAO,GAAG,WAAW,CAAC;IAE3C,4DAA4D;IAC5D,4DAA4D;IAC5D,MAAM,WAAW,GAAG,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,OAAO,CAAC;IAE5D,qCAAqC;IACrC,MAAM,OAAO,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5D,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,CAAC;IAEtD,OAAO;QACL,OAAO,EAAE;YACP,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;YACtC,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YACpC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5B,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC1B;QACD,WAAW,EAAE;YACX,YAAY,EAAE,OAAO,CAAC,YAAY,GAAG,GAAG,EAAE,CAAC,CAAC;YAC5C,WAAW,EAAE,OAAO,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,CAAC;YAC1C,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC;YAClC,GAAG,EAAE,OAAO,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC;SAChC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ppk.d.ts","sourceRoot":"","sources":["../../src/quality/ppk.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAsBtD;;;;;;;;;;;GAWG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CAkC9C"}
1
+ {"version":3,"file":"ppk.d.ts","sourceRoot":"","sources":["../../src/quality/ppk.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;;;;;;GAWG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CAkC9C"}
@@ -1,20 +1,5 @@
1
1
  import { roundTo } from '../utils.js';
2
- /**
3
- * Standard normal CDF approximation using Abramowitz and Stegun
4
- */
5
- function normalCDF(x) {
6
- const a1 = 0.254829592;
7
- const a2 = -0.284496736;
8
- const a3 = 1.421413741;
9
- const a4 = -1.453152027;
10
- const a5 = 1.061405429;
11
- const p = 0.3275911;
12
- const sign = x < 0 ? -1 : 1;
13
- x = Math.abs(x) / Math.sqrt(2);
14
- const t = 1.0 / (1.0 + p * x);
15
- const y = 1.0 - (((((a5 * t + a4) * t) + a3) * t + a2) * t + a1) * t * Math.exp(-x * x);
16
- return 0.5 * (1.0 + sign * y);
17
- }
2
+ import { normalCDF } from '../math.js';
18
3
  /**
19
4
  * Calculate Process Performance Index (Ppk)
20
5
  * Similar to Cpk but uses overall (long-term) standard deviation
@@ -1 +1 @@
1
- {"version":3,"file":"ppk.js","sourceRoot":"","sources":["../../src/quality/ppk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;GAEG;AACH,SAAS,SAAS,CAAC,CAAS;IAC1B,MAAM,EAAE,GAAG,WAAW,CAAC;IACvB,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC;IACxB,MAAM,EAAE,GAAG,WAAW,CAAC;IACvB,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC;IACxB,MAAM,EAAE,GAAG,WAAW,CAAC;IACvB,MAAM,CAAC,GAAG,SAAS,CAAC;IAEpB,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE/B,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAExF,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,GAAG,CAAC,KAAe;IACjC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzC,wBAAwB;IACxB,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAChB,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACnF,CAAC;IAED,4CAA4C;IAC5C,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAEtC,wBAAwB;IACxB,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAE5C,gCAAgC;IAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAE5C,6DAA6D;IAC7D,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IACrC,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IACrC,MAAM,iBAAiB,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;IAExE,wBAAwB;IACxB,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC;IAE3B,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAClB,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzB,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChD,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;KACzB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ppk.js","sourceRoot":"","sources":["../../src/quality/ppk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,GAAG,CAAC,KAAe;IACjC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzC,wBAAwB;IACxB,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAChB,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACnF,CAAC;IAED,4CAA4C;IAC5C,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAEtC,wBAAwB;IACxB,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAE5C,gCAAgC;IAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAE5C,6DAA6D;IAC7D,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IACrC,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IACrC,MAAM,iBAAiB,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;IAExE,wBAAwB;IACxB,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC;IAE3B,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAClB,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzB,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChD,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;KACzB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ppm.d.ts","sourceRoot":"","sources":["../../src/quality/ppm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAyGtD;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CA2B9C"}
1
+ {"version":3,"file":"ppm.d.ts","sourceRoot":"","sources":["../../src/quality/ppm.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAoBtD;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CA2B9C"}