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.
- package/CHANGELOG.md +144 -0
- package/LICENSE +21 -0
- package/README.md +403 -0
- package/dist/automotive/batteryRuntime.d.ts +14 -0
- package/dist/automotive/batteryRuntime.d.ts.map +1 -0
- package/dist/automotive/batteryRuntime.js +38 -0
- package/dist/automotive/batteryRuntime.js.map +1 -0
- package/dist/automotive/evCharging.d.ts +14 -0
- package/dist/automotive/evCharging.d.ts.map +1 -0
- package/dist/automotive/evCharging.js +48 -0
- package/dist/automotive/evCharging.js.map +1 -0
- package/dist/automotive/fuelEconomy.d.ts +15 -0
- package/dist/automotive/fuelEconomy.d.ts.map +1 -0
- package/dist/automotive/fuelEconomy.js +61 -0
- package/dist/automotive/fuelEconomy.js.map +1 -0
- package/dist/automotive/gearRatio.d.ts +15 -0
- package/dist/automotive/gearRatio.d.ts.map +1 -0
- package/dist/automotive/gearRatio.js +39 -0
- package/dist/automotive/gearRatio.js.map +1 -0
- package/dist/automotive/index.d.ts +9 -0
- package/dist/automotive/index.d.ts.map +1 -0
- package/dist/automotive/index.js +9 -0
- package/dist/automotive/index.js.map +1 -0
- package/dist/automotive/power.d.ts +14 -0
- package/dist/automotive/power.d.ts.map +1 -0
- package/dist/automotive/power.js +52 -0
- package/dist/automotive/power.js.map +1 -0
- package/dist/automotive/tireCompare.d.ts +9 -0
- package/dist/automotive/tireCompare.d.ts.map +1 -0
- package/dist/automotive/tireCompare.js +54 -0
- package/dist/automotive/tireCompare.js.map +1 -0
- package/dist/automotive/torque.d.ts +14 -0
- package/dist/automotive/torque.d.ts.map +1 -0
- package/dist/automotive/torque.js +52 -0
- package/dist/automotive/torque.js.map +1 -0
- package/dist/automotive/types.d.ts +114 -0
- package/dist/automotive/types.d.ts.map +1 -0
- package/dist/automotive/types.js +2 -0
- package/dist/automotive/types.js.map +1 -0
- package/dist/chemical/batch.d.ts +12 -0
- package/dist/chemical/batch.d.ts.map +1 -0
- package/dist/chemical/batch.js +36 -0
- package/dist/chemical/batch.js.map +1 -0
- package/dist/chemical/concentration.d.ts +15 -0
- package/dist/chemical/concentration.d.ts.map +1 -0
- package/dist/chemical/concentration.js +45 -0
- package/dist/chemical/concentration.js.map +1 -0
- package/dist/chemical/dilution.d.ts +12 -0
- package/dist/chemical/dilution.d.ts.map +1 -0
- package/dist/chemical/dilution.js +68 -0
- package/dist/chemical/dilution.js.map +1 -0
- package/dist/chemical/index.d.ts +9 -0
- package/dist/chemical/index.d.ts.map +1 -0
- package/dist/chemical/index.js +9 -0
- package/dist/chemical/index.js.map +1 -0
- package/dist/chemical/injectionCycle.d.ts +19 -0
- package/dist/chemical/injectionCycle.d.ts.map +1 -0
- package/dist/chemical/injectionCycle.js +170 -0
- package/dist/chemical/injectionCycle.js.map +1 -0
- package/dist/chemical/ph.d.ts +13 -0
- package/dist/chemical/ph.d.ts.map +1 -0
- package/dist/chemical/ph.js +83 -0
- package/dist/chemical/ph.js.map +1 -0
- package/dist/chemical/reactor.d.ts +19 -0
- package/dist/chemical/reactor.d.ts.map +1 -0
- package/dist/chemical/reactor.js +57 -0
- package/dist/chemical/reactor.js.map +1 -0
- package/dist/chemical/shelfLife.d.ts +15 -0
- package/dist/chemical/shelfLife.d.ts.map +1 -0
- package/dist/chemical/shelfLife.js +36 -0
- package/dist/chemical/shelfLife.js.map +1 -0
- package/dist/chemical/types.d.ts +144 -0
- package/dist/chemical/types.d.ts.map +1 -0
- package/dist/chemical/types.js +2 -0
- package/dist/chemical/types.js.map +1 -0
- package/dist/construction/aggregate.d.ts +33 -0
- package/dist/construction/aggregate.d.ts.map +1 -0
- package/dist/construction/aggregate.js +92 -0
- package/dist/construction/aggregate.js.map +1 -0
- package/dist/construction/beamLoad.d.ts +12 -0
- package/dist/construction/beamLoad.d.ts.map +1 -0
- package/dist/construction/beamLoad.js +156 -0
- package/dist/construction/beamLoad.js.map +1 -0
- package/dist/construction/brick.d.ts +17 -0
- package/dist/construction/brick.d.ts.map +1 -0
- package/dist/construction/brick.js +53 -0
- package/dist/construction/brick.js.map +1 -0
- package/dist/construction/concreteMix.d.ts +9 -0
- package/dist/construction/concreteMix.d.ts.map +1 -0
- package/dist/construction/concreteMix.js +31 -0
- package/dist/construction/concreteMix.js.map +1 -0
- package/dist/construction/earthwork.d.ts +13 -0
- package/dist/construction/earthwork.d.ts.map +1 -0
- package/dist/construction/earthwork.js +25 -0
- package/dist/construction/earthwork.js.map +1 -0
- package/dist/construction/formwork.d.ts +9 -0
- package/dist/construction/formwork.d.ts.map +1 -0
- package/dist/construction/formwork.js +61 -0
- package/dist/construction/formwork.js.map +1 -0
- package/dist/construction/index.d.ts +13 -0
- package/dist/construction/index.d.ts.map +1 -0
- package/dist/construction/index.js +13 -0
- package/dist/construction/index.js.map +1 -0
- package/dist/construction/pert.d.ts +15 -0
- package/dist/construction/pert.d.ts.map +1 -0
- package/dist/construction/pert.js +207 -0
- package/dist/construction/pert.js.map +1 -0
- package/dist/construction/rebar.d.ts +16 -0
- package/dist/construction/rebar.d.ts.map +1 -0
- package/dist/construction/rebar.js +43 -0
- package/dist/construction/rebar.js.map +1 -0
- package/dist/construction/roof.d.ts +16 -0
- package/dist/construction/roof.d.ts.map +1 -0
- package/dist/construction/roof.js +65 -0
- package/dist/construction/roof.js.map +1 -0
- package/dist/construction/slope.d.ts +14 -0
- package/dist/construction/slope.d.ts.map +1 -0
- package/dist/construction/slope.js +54 -0
- package/dist/construction/slope.js.map +1 -0
- package/dist/construction/stair.d.ts +17 -0
- package/dist/construction/stair.d.ts.map +1 -0
- package/dist/construction/stair.js +69 -0
- package/dist/construction/stair.js.map +1 -0
- package/dist/construction/types.d.ts +219 -0
- package/dist/construction/types.d.ts.map +1 -0
- package/dist/construction/types.js +2 -0
- package/dist/construction/types.js.map +1 -0
- package/dist/electronics/awg.d.ts +9 -0
- package/dist/electronics/awg.d.ts.map +1 -0
- package/dist/electronics/awg.js +66 -0
- package/dist/electronics/awg.js.map +1 -0
- package/dist/electronics/capacitor.d.ts +9 -0
- package/dist/electronics/capacitor.d.ts.map +1 -0
- package/dist/electronics/capacitor.js +51 -0
- package/dist/electronics/capacitor.js.map +1 -0
- package/dist/electronics/index.d.ts +12 -0
- package/dist/electronics/index.d.ts.map +1 -0
- package/dist/electronics/index.js +12 -0
- package/dist/electronics/index.js.map +1 -0
- package/dist/electronics/led.d.ts +9 -0
- package/dist/electronics/led.d.ts.map +1 -0
- package/dist/electronics/led.js +72 -0
- package/dist/electronics/led.js.map +1 -0
- package/dist/electronics/reflow.d.ts +12 -0
- package/dist/electronics/reflow.d.ts.map +1 -0
- package/dist/electronics/reflow.js +77 -0
- package/dist/electronics/reflow.js.map +1 -0
- package/dist/electronics/resistor.d.ts +8 -0
- package/dist/electronics/resistor.d.ts.map +1 -0
- package/dist/electronics/resistor.js +137 -0
- package/dist/electronics/resistor.js.map +1 -0
- package/dist/electronics/smt-takt.d.ts +8 -0
- package/dist/electronics/smt-takt.d.ts.map +1 -0
- package/dist/electronics/smt-takt.js +59 -0
- package/dist/electronics/smt-takt.js.map +1 -0
- package/dist/electronics/solder.d.ts +8 -0
- package/dist/electronics/solder.d.ts.map +1 -0
- package/dist/electronics/solder.js +46 -0
- package/dist/electronics/solder.js.map +1 -0
- package/dist/electronics/stencil.d.ts +9 -0
- package/dist/electronics/stencil.d.ts.map +1 -0
- package/dist/electronics/stencil.js +78 -0
- package/dist/electronics/stencil.js.map +1 -0
- package/dist/electronics/trace.d.ts +8 -0
- package/dist/electronics/trace.d.ts.map +1 -0
- package/dist/electronics/trace.js +75 -0
- package/dist/electronics/trace.js.map +1 -0
- package/dist/electronics/types.d.ts +145 -0
- package/dist/electronics/types.d.ts.map +1 -0
- package/dist/electronics/types.js +2 -0
- package/dist/electronics/types.js.map +1 -0
- package/dist/electronics/via.d.ts +12 -0
- package/dist/electronics/via.d.ts.map +1 -0
- package/dist/electronics/via.js +63 -0
- package/dist/electronics/via.js.map +1 -0
- package/dist/energy/carbonFootprint.d.ts +13 -0
- package/dist/energy/carbonFootprint.d.ts.map +1 -0
- package/dist/energy/carbonFootprint.js +41 -0
- package/dist/energy/carbonFootprint.js.map +1 -0
- package/dist/energy/compressedAirCost.d.ts +14 -0
- package/dist/energy/compressedAirCost.d.ts.map +1 -0
- package/dist/energy/compressedAirCost.js +39 -0
- package/dist/energy/compressedAirCost.js.map +1 -0
- package/dist/energy/index.d.ts +8 -0
- package/dist/energy/index.d.ts.map +1 -0
- package/dist/energy/index.js +8 -0
- package/dist/energy/index.js.map +1 -0
- package/dist/energy/motorEfficiency.d.ts +14 -0
- package/dist/energy/motorEfficiency.d.ts.map +1 -0
- package/dist/energy/motorEfficiency.js +47 -0
- package/dist/energy/motorEfficiency.js.map +1 -0
- package/dist/energy/pfCorrection.d.ts +15 -0
- package/dist/energy/pfCorrection.d.ts.map +1 -0
- package/dist/energy/pfCorrection.js +56 -0
- package/dist/energy/pfCorrection.js.map +1 -0
- package/dist/energy/powerCost.d.ts +15 -0
- package/dist/energy/powerCost.d.ts.map +1 -0
- package/dist/energy/powerCost.js +37 -0
- package/dist/energy/powerCost.js.map +1 -0
- package/dist/energy/types.d.ts +119 -0
- package/dist/energy/types.d.ts.map +1 -0
- package/dist/energy/types.js +2 -0
- package/dist/energy/types.js.map +1 -0
- package/dist/energy/vfdSavings.d.ts +16 -0
- package/dist/energy/vfdSavings.d.ts.map +1 -0
- package/dist/energy/vfdSavings.js +57 -0
- package/dist/energy/vfdSavings.js.map +1 -0
- package/dist/food/calorie.d.ts +13 -0
- package/dist/food/calorie.d.ts.map +1 -0
- package/dist/food/calorie.js +42 -0
- package/dist/food/calorie.js.map +1 -0
- package/dist/food/expiry.d.ts +13 -0
- package/dist/food/expiry.d.ts.map +1 -0
- package/dist/food/expiry.js +58 -0
- package/dist/food/expiry.js.map +1 -0
- package/dist/food/haccp.d.ts +18 -0
- package/dist/food/haccp.d.ts.map +1 -0
- package/dist/food/haccp.js +70 -0
- package/dist/food/haccp.js.map +1 -0
- package/dist/food/index.d.ts +6 -0
- package/dist/food/index.d.ts.map +1 -0
- package/dist/food/index.js +6 -0
- package/dist/food/index.js.map +1 -0
- package/dist/food/nutrition.d.ts +12 -0
- package/dist/food/nutrition.d.ts.map +1 -0
- package/dist/food/nutrition.js +75 -0
- package/dist/food/nutrition.js.map +1 -0
- package/dist/food/types.d.ts +104 -0
- package/dist/food/types.d.ts.map +1 -0
- package/dist/food/types.js +2 -0
- package/dist/food/types.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/logistics/cbm.d.ts +12 -0
- package/dist/logistics/cbm.d.ts.map +1 -0
- package/dist/logistics/cbm.js +37 -0
- package/dist/logistics/cbm.js.map +1 -0
- package/dist/logistics/containerFit.d.ts +12 -0
- package/dist/logistics/containerFit.d.ts.map +1 -0
- package/dist/logistics/containerFit.js +73 -0
- package/dist/logistics/containerFit.js.map +1 -0
- package/dist/logistics/dimWeight.d.ts +13 -0
- package/dist/logistics/dimWeight.d.ts.map +1 -0
- package/dist/logistics/dimWeight.js +50 -0
- package/dist/logistics/dimWeight.js.map +1 -0
- package/dist/logistics/eoq.d.ts +18 -0
- package/dist/logistics/eoq.d.ts.map +1 -0
- package/dist/logistics/eoq.js +42 -0
- package/dist/logistics/eoq.js.map +1 -0
- package/dist/logistics/fillRate.d.ts +22 -0
- package/dist/logistics/fillRate.d.ts.map +1 -0
- package/dist/logistics/fillRate.js +84 -0
- package/dist/logistics/fillRate.js.map +1 -0
- package/dist/logistics/freightClass.d.ts +12 -0
- package/dist/logistics/freightClass.d.ts.map +1 -0
- package/dist/logistics/freightClass.js +68 -0
- package/dist/logistics/freightClass.js.map +1 -0
- package/dist/logistics/index.d.ts +15 -0
- package/dist/logistics/index.d.ts.map +1 -0
- package/dist/logistics/index.js +15 -0
- package/dist/logistics/index.js.map +1 -0
- package/dist/logistics/kanban.d.ts +19 -0
- package/dist/logistics/kanban.d.ts.map +1 -0
- package/dist/logistics/kanban.js +48 -0
- package/dist/logistics/kanban.js.map +1 -0
- package/dist/logistics/pallet3d.d.ts +16 -0
- package/dist/logistics/pallet3d.d.ts.map +1 -0
- package/dist/logistics/pallet3d.js +380 -0
- package/dist/logistics/pallet3d.js.map +1 -0
- package/dist/logistics/palletStack.d.ts +12 -0
- package/dist/logistics/palletStack.d.ts.map +1 -0
- package/dist/logistics/palletStack.js +65 -0
- package/dist/logistics/palletStack.js.map +1 -0
- package/dist/logistics/pickTime.d.ts +17 -0
- package/dist/logistics/pickTime.d.ts.map +1 -0
- package/dist/logistics/pickTime.js +70 -0
- package/dist/logistics/pickTime.js.map +1 -0
- package/dist/logistics/safetyStock.d.ts +24 -0
- package/dist/logistics/safetyStock.d.ts.map +1 -0
- package/dist/logistics/safetyStock.js +99 -0
- package/dist/logistics/safetyStock.js.map +1 -0
- package/dist/logistics/shipping.d.ts +16 -0
- package/dist/logistics/shipping.d.ts.map +1 -0
- package/dist/logistics/shipping.js +115 -0
- package/dist/logistics/shipping.js.map +1 -0
- package/dist/logistics/tsp.d.ts +12 -0
- package/dist/logistics/tsp.d.ts.map +1 -0
- package/dist/logistics/tsp.js +166 -0
- package/dist/logistics/tsp.js.map +1 -0
- package/dist/logistics/types.d.ts +315 -0
- package/dist/logistics/types.d.ts.map +1 -0
- package/dist/logistics/types.js +5 -0
- package/dist/logistics/types.js.map +1 -0
- package/dist/metal/bearing.d.ts +11 -0
- package/dist/metal/bearing.d.ts.map +1 -0
- package/dist/metal/bearing.js +32 -0
- package/dist/metal/bearing.js.map +1 -0
- package/dist/metal/bendAllowance.d.ts +13 -0
- package/dist/metal/bendAllowance.d.ts.map +1 -0
- package/dist/metal/bendAllowance.js +75 -0
- package/dist/metal/bendAllowance.js.map +1 -0
- package/dist/metal/bolt.d.ts +32 -0
- package/dist/metal/bolt.d.ts.map +1 -0
- package/dist/metal/bolt.js +149 -0
- package/dist/metal/bolt.js.map +1 -0
- package/dist/metal/cutting.d.ts +10 -0
- package/dist/metal/cutting.d.ts.map +1 -0
- package/dist/metal/cutting.js +55 -0
- package/dist/metal/cutting.js.map +1 -0
- package/dist/metal/cuttingStock.d.ts +8 -0
- package/dist/metal/cuttingStock.d.ts.map +1 -0
- package/dist/metal/cuttingStock.js +89 -0
- package/dist/metal/cuttingStock.js.map +1 -0
- package/dist/metal/flatPattern.d.ts +12 -0
- package/dist/metal/flatPattern.d.ts.map +1 -0
- package/dist/metal/flatPattern.js +50 -0
- package/dist/metal/flatPattern.js.map +1 -0
- package/dist/metal/gear.d.ts +13 -0
- package/dist/metal/gear.d.ts.map +1 -0
- package/dist/metal/gear.js +79 -0
- package/dist/metal/gear.js.map +1 -0
- package/dist/metal/hardness.d.ts +15 -0
- package/dist/metal/hardness.d.ts.map +1 -0
- package/dist/metal/hardness.js +77 -0
- package/dist/metal/hardness.js.map +1 -0
- package/dist/metal/index.d.ts +24 -0
- package/dist/metal/index.d.ts.map +1 -0
- package/dist/metal/index.js +24 -0
- package/dist/metal/index.js.map +1 -0
- package/dist/metal/kFactorReverse.d.ts +19 -0
- package/dist/metal/kFactorReverse.d.ts.map +1 -0
- package/dist/metal/kFactorReverse.js +39 -0
- package/dist/metal/kFactorReverse.js.map +1 -0
- package/dist/metal/material.d.ts +5 -0
- package/dist/metal/material.d.ts.map +1 -0
- package/dist/metal/material.js +56 -0
- package/dist/metal/material.js.map +1 -0
- package/dist/metal/metalWeight.d.ts +10 -0
- package/dist/metal/metalWeight.d.ts.map +1 -0
- package/dist/metal/metalWeight.js +82 -0
- package/dist/metal/metalWeight.js.map +1 -0
- package/dist/metal/pressFit.d.ts +15 -0
- package/dist/metal/pressFit.d.ts.map +1 -0
- package/dist/metal/pressFit.js +96 -0
- package/dist/metal/pressFit.js.map +1 -0
- package/dist/metal/pressTonnage.d.ts +13 -0
- package/dist/metal/pressTonnage.d.ts.map +1 -0
- package/dist/metal/pressTonnage.js +86 -0
- package/dist/metal/pressTonnage.js.map +1 -0
- package/dist/metal/roughness.d.ts +6 -0
- package/dist/metal/roughness.d.ts.map +1 -0
- package/dist/metal/roughness.js +62 -0
- package/dist/metal/roughness.js.map +1 -0
- package/dist/metal/screw.d.ts +7 -0
- package/dist/metal/screw.d.ts.map +1 -0
- package/dist/metal/screw.js +44 -0
- package/dist/metal/screw.js.map +1 -0
- package/dist/metal/spring.d.ts +11 -0
- package/dist/metal/spring.d.ts.map +1 -0
- package/dist/metal/spring.js +59 -0
- package/dist/metal/spring.js.map +1 -0
- package/dist/metal/tap.d.ts +16 -0
- package/dist/metal/tap.d.ts.map +1 -0
- package/dist/metal/tap.js +62 -0
- package/dist/metal/tap.js.map +1 -0
- package/dist/metal/thread.d.ts +8 -0
- package/dist/metal/thread.d.ts.map +1 -0
- package/dist/metal/thread.js +75 -0
- package/dist/metal/thread.js.map +1 -0
- package/dist/metal/tolerance.d.ts +6 -0
- package/dist/metal/tolerance.d.ts.map +1 -0
- package/dist/metal/tolerance.js +113 -0
- package/dist/metal/tolerance.js.map +1 -0
- package/dist/metal/types.d.ts +494 -0
- package/dist/metal/types.d.ts.map +1 -0
- package/dist/metal/types.js +2 -0
- package/dist/metal/types.js.map +1 -0
- package/dist/metal/vibration.d.ts +6 -0
- package/dist/metal/vibration.d.ts.map +1 -0
- package/dist/metal/vibration.js +153 -0
- package/dist/metal/vibration.js.map +1 -0
- package/dist/metal/weldHeat.d.ts +6 -0
- package/dist/metal/weldHeat.d.ts.map +1 -0
- package/dist/metal/weldHeat.js +138 -0
- package/dist/metal/weldHeat.js.map +1 -0
- package/dist/metal/welding.d.ts +6 -0
- package/dist/metal/welding.d.ts.map +1 -0
- package/dist/metal/welding.js +80 -0
- package/dist/metal/welding.js.map +1 -0
- package/dist/quality/aql.d.ts +10 -0
- package/dist/quality/aql.d.ts.map +1 -0
- package/dist/quality/aql.js +104 -0
- package/dist/quality/aql.js.map +1 -0
- package/dist/quality/cpk.d.ts +14 -0
- package/dist/quality/cpk.d.ts.map +1 -0
- package/dist/quality/cpk.js +44 -0
- package/dist/quality/cpk.js.map +1 -0
- package/dist/quality/cycle.d.ts +11 -0
- package/dist/quality/cycle.d.ts.map +1 -0
- package/dist/quality/cycle.js +55 -0
- package/dist/quality/cycle.js.map +1 -0
- package/dist/quality/downtime.d.ts +9 -0
- package/dist/quality/downtime.d.ts.map +1 -0
- package/dist/quality/downtime.js +28 -0
- package/dist/quality/downtime.js.map +1 -0
- package/dist/quality/dpmo.d.ts +10 -0
- package/dist/quality/dpmo.d.ts.map +1 -0
- package/dist/quality/dpmo.js +114 -0
- package/dist/quality/dpmo.js.map +1 -0
- package/dist/quality/index.d.ts +15 -0
- package/dist/quality/index.d.ts.map +1 -0
- package/dist/quality/index.js +15 -0
- package/dist/quality/index.js.map +1 -0
- package/dist/quality/lineBalancing.d.ts +9 -0
- package/dist/quality/lineBalancing.d.ts.map +1 -0
- package/dist/quality/lineBalancing.js +185 -0
- package/dist/quality/lineBalancing.js.map +1 -0
- package/dist/quality/mtbf.d.ts +13 -0
- package/dist/quality/mtbf.d.ts.map +1 -0
- package/dist/quality/mtbf.js +48 -0
- package/dist/quality/mtbf.js.map +1 -0
- package/dist/quality/oee.d.ts +11 -0
- package/dist/quality/oee.d.ts.map +1 -0
- package/dist/quality/oee.js +43 -0
- package/dist/quality/oee.js.map +1 -0
- package/dist/quality/ppk.d.ts +15 -0
- package/dist/quality/ppk.d.ts.map +1 -0
- package/dist/quality/ppk.js +61 -0
- package/dist/quality/ppk.js.map +1 -0
- package/dist/quality/ppm.d.ts +9 -0
- package/dist/quality/ppm.d.ts.map +1 -0
- package/dist/quality/ppm.js +134 -0
- package/dist/quality/ppm.js.map +1 -0
- package/dist/quality/rpn.d.ts +11 -0
- package/dist/quality/rpn.d.ts.map +1 -0
- package/dist/quality/rpn.js +48 -0
- package/dist/quality/rpn.js.map +1 -0
- package/dist/quality/takt.d.ts +13 -0
- package/dist/quality/takt.d.ts.map +1 -0
- package/dist/quality/takt.js +44 -0
- package/dist/quality/takt.js.map +1 -0
- package/dist/quality/types.d.ts +261 -0
- package/dist/quality/types.d.ts.map +1 -0
- package/dist/quality/types.js +2 -0
- package/dist/quality/types.js.map +1 -0
- package/dist/quality/yield.d.ts +12 -0
- package/dist/quality/yield.d.ts.map +1 -0
- package/dist/quality/yield.js +56 -0
- package/dist/quality/yield.js.map +1 -0
- package/dist/safety/fallClearance.d.ts +12 -0
- package/dist/safety/fallClearance.d.ts.map +1 -0
- package/dist/safety/fallClearance.js +37 -0
- package/dist/safety/fallClearance.js.map +1 -0
- package/dist/safety/havsCalculate.d.ts +16 -0
- package/dist/safety/havsCalculate.d.ts.map +1 -0
- package/dist/safety/havsCalculate.js +103 -0
- package/dist/safety/havsCalculate.js.map +1 -0
- package/dist/safety/index.d.ts +8 -0
- package/dist/safety/index.d.ts.map +1 -0
- package/dist/safety/index.js +8 -0
- package/dist/safety/index.js.map +1 -0
- package/dist/safety/nioshLifting.d.ts +21 -0
- package/dist/safety/nioshLifting.d.ts.map +1 -0
- package/dist/safety/nioshLifting.js +164 -0
- package/dist/safety/nioshLifting.js.map +1 -0
- package/dist/safety/noiseExposure.d.ts +22 -0
- package/dist/safety/noiseExposure.d.ts.map +1 -0
- package/dist/safety/noiseExposure.js +76 -0
- package/dist/safety/noiseExposure.js.map +1 -0
- package/dist/safety/respiratorCalculate.d.ts +14 -0
- package/dist/safety/respiratorCalculate.d.ts.map +1 -0
- package/dist/safety/respiratorCalculate.js +90 -0
- package/dist/safety/respiratorCalculate.js.map +1 -0
- package/dist/safety/types.d.ts +93 -0
- package/dist/safety/types.d.ts.map +1 -0
- package/dist/safety/types.js +2 -0
- package/dist/safety/types.js.map +1 -0
- package/dist/safety/wbgtCalculate.d.ts +25 -0
- package/dist/safety/wbgtCalculate.d.ts.map +1 -0
- package/dist/safety/wbgtCalculate.js +65 -0
- package/dist/safety/wbgtCalculate.js.map +1 -0
- package/dist/utility/assignment.d.ts +11 -0
- package/dist/utility/assignment.d.ts.map +1 -0
- package/dist/utility/assignment.js +113 -0
- package/dist/utility/assignment.js.map +1 -0
- package/dist/utility/index.d.ts +4 -0
- package/dist/utility/index.d.ts.map +1 -0
- package/dist/utility/index.js +4 -0
- package/dist/utility/index.js.map +1 -0
- package/dist/utility/qrcode.d.ts +30 -0
- package/dist/utility/qrcode.d.ts.map +1 -0
- package/dist/utility/qrcode.js +30 -0
- package/dist/utility/qrcode.js.map +1 -0
- package/dist/utility/types.d.ts +64 -0
- package/dist/utility/types.d.ts.map +1 -0
- package/dist/utility/types.js +2 -0
- package/dist/utility/types.js.map +1 -0
- package/dist/utility/unit.d.ts +25 -0
- package/dist/utility/unit.d.ts.map +1 -0
- package/dist/utility/unit.js +136 -0
- package/dist/utility/unit.js.map +1 -0
- package/dist/utils.d.ts +9 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +12 -0
- package/dist/utils.js.map +1 -0
- 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 @@
|
|
|
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"}
|