formulab 0.38.0 → 0.40.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 +56 -0
- package/dist/chemical/flowControl.d.ts +1 -0
- package/dist/chemical/flowControl.d.ts.map +1 -1
- package/dist/chemical/flowControl.js +10 -0
- package/dist/chemical/flowControl.js.map +1 -1
- package/dist/chemical/injectionCycle.d.ts +1 -0
- package/dist/chemical/injectionCycle.d.ts.map +1 -1
- package/dist/chemical/injectionCycle.js +8 -1
- package/dist/chemical/injectionCycle.js.map +1 -1
- package/dist/chemical/reactor.d.ts +1 -0
- package/dist/chemical/reactor.d.ts.map +1 -1
- package/dist/chemical/reactor.js +5 -0
- package/dist/chemical/reactor.js.map +1 -1
- package/dist/chemical/shelfLife.d.ts +1 -0
- package/dist/chemical/shelfLife.d.ts.map +1 -1
- package/dist/chemical/shelfLife.js +5 -0
- package/dist/chemical/shelfLife.js.map +1 -1
- package/dist/energy/insulationRoi.d.ts +2 -2
- package/dist/energy/insulationRoi.d.ts.map +1 -1
- package/dist/energy/insulationRoi.js +8 -2
- package/dist/energy/insulationRoi.js.map +1 -1
- package/dist/logistics/containerFit.d.ts +1 -0
- package/dist/logistics/containerFit.d.ts.map +1 -1
- package/dist/logistics/containerFit.js +5 -0
- package/dist/logistics/containerFit.js.map +1 -1
- package/dist/logistics/pallet3d.d.ts +1 -0
- package/dist/logistics/pallet3d.d.ts.map +1 -1
- package/dist/logistics/pallet3d.js +7 -0
- package/dist/logistics/pallet3d.js.map +1 -1
- package/dist/logistics/palletStack.d.ts +1 -0
- package/dist/logistics/palletStack.d.ts.map +1 -1
- package/dist/logistics/palletStack.js +5 -0
- package/dist/logistics/palletStack.js.map +1 -1
- package/dist/logistics/safetyStock.d.ts +1 -0
- package/dist/logistics/safetyStock.d.ts.map +1 -1
- package/dist/logistics/safetyStock.js +5 -0
- package/dist/logistics/safetyStock.js.map +1 -1
- package/dist/machining/cycleTimeEstimator.d.ts +1 -0
- package/dist/machining/cycleTimeEstimator.d.ts.map +1 -1
- package/dist/machining/cycleTimeEstimator.js +4 -0
- package/dist/machining/cycleTimeEstimator.js.map +1 -1
- package/dist/machining/sineBarHeight.d.ts +1 -0
- package/dist/machining/sineBarHeight.d.ts.map +1 -1
- package/dist/machining/sineBarHeight.js +10 -0
- package/dist/machining/sineBarHeight.js.map +1 -1
- package/dist/machining/toolDeflection.d.ts +1 -0
- package/dist/machining/toolDeflection.d.ts.map +1 -1
- package/dist/machining/toolDeflection.js +3 -0
- package/dist/machining/toolDeflection.js.map +1 -1
- package/dist/math.d.ts +26 -0
- package/dist/math.d.ts.map +1 -1
- package/dist/math.js +19 -0
- package/dist/math.js.map +1 -1
- package/dist/metal/minBendRadius.d.ts +1 -1
- package/dist/metal/pressTonnage.d.ts +3 -1
- package/dist/metal/pressTonnage.d.ts.map +1 -1
- package/dist/metal/pressTonnage.js +15 -1
- package/dist/metal/pressTonnage.js.map +1 -1
- package/dist/metal/vibration.d.ts +1 -0
- package/dist/metal/vibration.d.ts.map +1 -1
- package/dist/metal/vibration.js +13 -0
- package/dist/metal/vibration.js.map +1 -1
- package/dist/quality/index.d.ts +1 -1
- package/dist/quality/index.d.ts.map +1 -1
- package/dist/quality/oee.d.ts +4 -2
- package/dist/quality/oee.d.ts.map +1 -1
- package/dist/quality/oee.js +30 -15
- package/dist/quality/oee.js.map +1 -1
- package/dist/quality/types.d.ts +12 -0
- package/dist/quality/types.d.ts.map +1 -1
- package/dist/quality/weibull.d.ts +1 -0
- package/dist/quality/weibull.d.ts.map +1 -1
- package/dist/quality/weibull.js +16 -0
- package/dist/quality/weibull.js.map +1 -1
- package/dist/quality/yield.d.ts +3 -1
- package/dist/quality/yield.d.ts.map +1 -1
- package/dist/quality/yield.js +17 -25
- package/dist/quality/yield.js.map +1 -1
- package/dist/safety/index.d.ts +1 -1
- package/dist/safety/index.d.ts.map +1 -1
- package/dist/safety/nioshLifting.d.ts +2 -1
- package/dist/safety/nioshLifting.d.ts.map +1 -1
- package/dist/safety/nioshLifting.js +14 -3
- package/dist/safety/nioshLifting.js.map +1 -1
- package/dist/safety/noiseExposure.d.ts.map +1 -1
- package/dist/safety/noiseExposure.js +13 -9
- package/dist/safety/noiseExposure.js.map +1 -1
- package/dist/safety/types.d.ts +15 -0
- package/dist/safety/types.d.ts.map +1 -1
- package/package.json +3 -2
package/dist/quality/weibull.js
CHANGED
|
@@ -12,9 +12,25 @@ import { roundTo } from '../utils.js';
|
|
|
12
12
|
*
|
|
13
13
|
* @reference Abernethy, R.B. "The New Weibull Handbook", 5th Ed.
|
|
14
14
|
* @reference IEC 61649:2008 — Weibull Analysis
|
|
15
|
+
* @throws RangeError if fewer than 2 failure times are given, any is not greater than 0, all are identical, or missionTime is negative
|
|
15
16
|
*/
|
|
16
17
|
export function weibull(input) {
|
|
17
18
|
const { failureTimes, missionTime } = input;
|
|
19
|
+
// Median rank regression fits a line through (ln t, ln ln(1/(1−F))): it needs at least two
|
|
20
|
+
// distinct positive times, or the log is undefined and the slope divides by zero.
|
|
21
|
+
if (failureTimes.length < 2) {
|
|
22
|
+
throw new RangeError('At least 2 failure times are required');
|
|
23
|
+
}
|
|
24
|
+
if (failureTimes.some((t) => !(t > 0))) {
|
|
25
|
+
throw new RangeError('All failure times must be greater than 0');
|
|
26
|
+
}
|
|
27
|
+
if (failureTimes.every((t) => t === failureTimes[0])) {
|
|
28
|
+
throw new RangeError('failure times must not all be identical');
|
|
29
|
+
}
|
|
30
|
+
// R(t) raises t/η to a fractional power.
|
|
31
|
+
if (missionTime != null && !(missionTime >= 0)) {
|
|
32
|
+
throw new RangeError('missionTime must not be negative');
|
|
33
|
+
}
|
|
18
34
|
// Sort failure times ascending
|
|
19
35
|
const sorted = [...failureTimes].sort((a, b) => a - b);
|
|
20
36
|
const n = sorted.length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"weibull.js","sourceRoot":"","sources":["../../src/quality/weibull.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC
|
|
1
|
+
{"version":3,"file":"weibull.js","sourceRoot":"","sources":["../../src/quality/weibull.ts"],"names":[],"mappings":"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"}
|
package/dist/quality/yield.d.ts
CHANGED
|
@@ -6,7 +6,9 @@ import type { YieldInput, YieldResult } from './types.js';
|
|
|
6
6
|
* RTY = Product of all FPY values (cumulative yield)
|
|
7
7
|
*
|
|
8
8
|
* @param input - Yield input parameters
|
|
9
|
-
* @returns Yield analysis result
|
|
9
|
+
* @returns Yield analysis result, with `cascade` — 100 % reduced by each step's FPY in step
|
|
10
|
+
* order (unrounded; the last step's `remaining` is RTY)
|
|
11
|
+
* @throws {RangeError} no steps; a step with total ≤ 0, good < 0, or good > total
|
|
10
12
|
*/
|
|
11
13
|
export declare function yieldCalc(input: YieldInput): YieldResult;
|
|
12
14
|
//# sourceMappingURL=yield.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yield.d.ts","sourceRoot":"","sources":["../../src/quality/yield.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"yield.d.ts","sourceRoot":"","sources":["../../src/quality/yield.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAwCxD"}
|
package/dist/quality/yield.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { roundTo } from '../utils.js';
|
|
2
|
+
import { multiplicativeCascade } from '../math.js';
|
|
2
3
|
/**
|
|
3
4
|
* Calculate First Pass Yield (FPY) and Rolled Throughput Yield (RTY)
|
|
4
5
|
*
|
|
@@ -6,41 +7,31 @@ import { roundTo } from '../utils.js';
|
|
|
6
7
|
* RTY = Product of all FPY values (cumulative yield)
|
|
7
8
|
*
|
|
8
9
|
* @param input - Yield input parameters
|
|
9
|
-
* @returns Yield analysis result
|
|
10
|
+
* @returns Yield analysis result, with `cascade` — 100 % reduced by each step's FPY in step
|
|
11
|
+
* order (unrounded; the last step's `remaining` is RTY)
|
|
12
|
+
* @throws {RangeError} no steps; a step with total ≤ 0, good < 0, or good > total
|
|
10
13
|
*/
|
|
11
14
|
export function yieldCalc(input) {
|
|
12
15
|
const { steps } = input;
|
|
13
|
-
// Handle empty or invalid input
|
|
14
16
|
if (!steps || steps.length === 0) {
|
|
15
|
-
|
|
16
|
-
fpyPerStep: [],
|
|
17
|
-
averageFpy: 0,
|
|
18
|
-
rty: 0,
|
|
19
|
-
totalInput: 0,
|
|
20
|
-
expectedOutput: 0,
|
|
21
|
-
};
|
|
17
|
+
throw new RangeError('steps must contain at least one process step');
|
|
22
18
|
}
|
|
23
|
-
|
|
24
|
-
const fpyPerStep = [];
|
|
25
|
-
let rtyDecimal = 1;
|
|
26
|
-
for (const step of steps) {
|
|
19
|
+
steps.forEach((step, i) => {
|
|
27
20
|
if (step.total <= 0) {
|
|
28
|
-
|
|
29
|
-
rtyDecimal = 0;
|
|
21
|
+
throw new RangeError(`step ${i + 1}: total (${step.total}) must be positive`);
|
|
30
22
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
fpyPerStep.push(roundTo(fpy * 100, 2));
|
|
34
|
-
rtyDecimal *= fpy;
|
|
23
|
+
if (step.good < 0 || step.good > step.total) {
|
|
24
|
+
throw new RangeError(`step ${i + 1}: good (${step.good}) must be between 0 and total (${step.total})`);
|
|
35
25
|
}
|
|
36
|
-
}
|
|
37
|
-
|
|
26
|
+
});
|
|
27
|
+
const fpyDecimals = steps.map((step) => step.good / step.total);
|
|
28
|
+
const fpyPerStep = fpyDecimals.map((fpy) => roundTo(fpy * 100, 2));
|
|
29
|
+
const cascade = multiplicativeCascade(100, fpyDecimals.map((multiplier, i) => ({ factor: i, multiplier })));
|
|
30
|
+
const rtyDecimal = cascade[cascade.length - 1].remaining / 100;
|
|
38
31
|
const sumFpy = fpyPerStep.reduce((acc, val) => acc + val, 0);
|
|
39
|
-
const averageFpy =
|
|
40
|
-
// Calculate RTY (Rolled Throughput Yield)
|
|
32
|
+
const averageFpy = roundTo(sumFpy / fpyPerStep.length, 2);
|
|
41
33
|
const rty = roundTo(rtyDecimal * 100, 2);
|
|
42
|
-
|
|
43
|
-
const totalInput = steps[0]?.total ?? 0;
|
|
34
|
+
const totalInput = steps[0].total;
|
|
44
35
|
const expectedOutput = roundTo(totalInput * rtyDecimal, 0);
|
|
45
36
|
return {
|
|
46
37
|
fpyPerStep,
|
|
@@ -48,6 +39,7 @@ export function yieldCalc(input) {
|
|
|
48
39
|
rty,
|
|
49
40
|
totalInput,
|
|
50
41
|
expectedOutput,
|
|
42
|
+
cascade,
|
|
51
43
|
};
|
|
52
44
|
}
|
|
53
45
|
//# sourceMappingURL=yield.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yield.js","sourceRoot":"","sources":["../../src/quality/yield.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"yield.js","sourceRoot":"","sources":["../../src/quality/yield.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGnD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,SAAS,CAAC,KAAiB;IACzC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAExB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,UAAU,CAAC,8CAA8C,CAAC,CAAC;IACvE,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACxB,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,KAAK,oBAAoB,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5C,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,IAAI,kCAAkC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACzG,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnE,MAAM,OAAO,GAAG,qBAAqB,CACnC,GAAG,EACH,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAChE,CAAC;IACF,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;IAE/D,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,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAE1D,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;IAEzC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAClC,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;IAE3D,OAAO;QACL,UAAU;QACV,UAAU;QACV,GAAG;QACH,UAAU;QACV,cAAc;QACd,OAAO;KACR,CAAC;AACJ,CAAC"}
|
package/dist/safety/index.d.ts
CHANGED
|
@@ -12,5 +12,5 @@ export { ergonomicRisk } from './ergonomicRisk.js';
|
|
|
12
12
|
export { arcFlash } from './arcFlash.js';
|
|
13
13
|
export { confinedSpace } from './confinedSpace.js';
|
|
14
14
|
export { lel } from './lel.js';
|
|
15
|
-
export type { VentilationActivityLevel, SpaceType, VentilationRateInput, VentilationRateResult, FallClearanceInput, FallClearanceResult, CouplingQuality, WorkDuration, NioshInput, NioshResult, NoiseExposure, NoiseExposureInput, NoiseExposureResult, WorkloadIntensity, WbgtInput, WbgtResult, ToolExposure, HavsInput, HavsResult, RespiratorType, RespiratorInput, RespiratorResult, LadderAngleInput, LadderAngleResult, IlluminanceInput, IlluminanceResult, ThermalComfortInput, ThermalComfortResult, RebaInput, RebaResult, ArcFlashInput, ArcFlashResult, ConfinedSpaceInput, ConfinedSpaceResult, GasComponent, LelInput, LelResult, } from './types.js';
|
|
15
|
+
export type { VentilationActivityLevel, SpaceType, VentilationRateInput, VentilationRateResult, FallClearanceInput, FallClearanceResult, CouplingQuality, WorkDuration, NioshInput, NioshResult, CascadeStep, NoiseExposure, NoiseExposureInput, NoiseExposureContribution, NoiseExposureResult, WorkloadIntensity, WbgtInput, WbgtResult, ToolExposure, HavsInput, HavsResult, RespiratorType, RespiratorInput, RespiratorResult, LadderAngleInput, LadderAngleResult, IlluminanceInput, IlluminanceResult, ThermalComfortInput, ThermalComfortResult, RebaInput, RebaResult, ArcFlashInput, ArcFlashResult, ConfinedSpaceInput, ConfinedSpaceResult, GasComponent, LelInput, LelResult, } from './types.js';
|
|
16
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/safety/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG/B,YAAY,EAEV,wBAAwB,EACxB,SAAS,EACT,oBAAoB,EACpB,qBAAqB,EAErB,kBAAkB,EAClB,mBAAmB,EAEnB,eAAe,EACf,YAAY,EACZ,UAAU,EACV,WAAW,EAEX,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EAEnB,iBAAiB,EACjB,SAAS,EACT,UAAU,EAEV,YAAY,EACZ,SAAS,EACT,UAAU,EAEV,cAAc,EACd,eAAe,EACf,gBAAgB,EAEhB,gBAAgB,EAChB,iBAAiB,EAEjB,gBAAgB,EAChB,iBAAiB,EAEjB,mBAAmB,EACnB,oBAAoB,EAEpB,SAAS,EACT,UAAU,EAEV,aAAa,EACb,cAAc,EAEd,kBAAkB,EAClB,mBAAmB,EAEnB,YAAY,EACZ,QAAQ,EACR,SAAS,GACV,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/safety/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG/B,YAAY,EAEV,wBAAwB,EACxB,SAAS,EACT,oBAAoB,EACpB,qBAAqB,EAErB,kBAAkB,EAClB,mBAAmB,EAEnB,eAAe,EACf,YAAY,EACZ,UAAU,EACV,WAAW,EACX,WAAW,EAEX,aAAa,EACb,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EAEnB,iBAAiB,EACjB,SAAS,EACT,UAAU,EAEV,YAAY,EACZ,SAAS,EACT,UAAU,EAEV,cAAc,EACd,eAAe,EACf,gBAAgB,EAEhB,gBAAgB,EAChB,iBAAiB,EAEjB,gBAAgB,EAChB,iBAAiB,EAEjB,mBAAmB,EACnB,oBAAoB,EAEpB,SAAS,EACT,UAAU,EAEV,aAAa,EACb,cAAc,EAEd,kBAAkB,EAClB,mBAAmB,EAEnB,YAAY,EACZ,QAAQ,EACR,SAAS,GACV,MAAM,YAAY,CAAC"}
|
|
@@ -24,7 +24,8 @@ import type { NioshInput, NioshResult } from './types.js';
|
|
|
24
24
|
* - Risk: low (LI ≤ 1), moderate (1 < LI ≤ 2), high (LI > 2)
|
|
25
25
|
*
|
|
26
26
|
* @param input - NIOSH lifting parameters
|
|
27
|
-
* @returns NIOSH results including RWL, LI, multipliers, and
|
|
27
|
+
* @returns NIOSH results including RWL, LI, multipliers, risk level, and `cascade` — LC reduced
|
|
28
|
+
* by each multiplier in equation order (unrounded; the last step's `remaining` is RWL)
|
|
28
29
|
* @throws {RangeError} any distance, angle, frequency, or loadWeight is negative.
|
|
29
30
|
* @remarks Distances below the equation's domain (H, D < 25 cm) are clamped per the
|
|
30
31
|
* NIOSH spec rather than rejected. When the frequency multiplier drives RWL to 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nioshLifting.d.ts","sourceRoot":"","sources":["../../src/safety/nioshLifting.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nioshLifting.d.ts","sourceRoot":"","sources":["../../src/safety/nioshLifting.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EAGZ,MAAM,YAAY,CAAC;AAsHpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAgF3D"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { roundTo } from '../utils.js';
|
|
2
|
+
import { multiplicativeCascade } from '../math.js';
|
|
2
3
|
// NIOSH Lifting Equation constants
|
|
3
4
|
const LC = 23; // Load Constant in kg
|
|
4
5
|
// Frequency Multiplier (FM) lookup table — NIOSH 94-110 Table 5
|
|
@@ -126,7 +127,8 @@ function getCouplingMultiplier(coupling, verticalDistance) {
|
|
|
126
127
|
* - Risk: low (LI ≤ 1), moderate (1 < LI ≤ 2), high (LI > 2)
|
|
127
128
|
*
|
|
128
129
|
* @param input - NIOSH lifting parameters
|
|
129
|
-
* @returns NIOSH results including RWL, LI, multipliers, and
|
|
130
|
+
* @returns NIOSH results including RWL, LI, multipliers, risk level, and `cascade` — LC reduced
|
|
131
|
+
* by each multiplier in equation order (unrounded; the last step's `remaining` is RWL)
|
|
130
132
|
* @throws {RangeError} any distance, angle, frequency, or loadWeight is negative.
|
|
131
133
|
* @remarks Distances below the equation's domain (H, D < 25 cm) are clamped per the
|
|
132
134
|
* NIOSH spec rather than rejected. When the frequency multiplier drives RWL to 0
|
|
@@ -160,8 +162,16 @@ export function nioshLifting(input) {
|
|
|
160
162
|
const fm = getFrequencyMultiplier(frequency, duration, verticalDistance);
|
|
161
163
|
// CM: Coupling Multiplier (from lookup table)
|
|
162
164
|
const cm = getCouplingMultiplier(coupling, verticalDistance);
|
|
163
|
-
// Calculate RWL
|
|
164
|
-
const
|
|
165
|
+
// Calculate RWL, and the same product as running steps from LC
|
|
166
|
+
const cascade = multiplicativeCascade(LC, [
|
|
167
|
+
{ factor: 'hm', multiplier: hm },
|
|
168
|
+
{ factor: 'vm', multiplier: vm },
|
|
169
|
+
{ factor: 'dm', multiplier: dm },
|
|
170
|
+
{ factor: 'am', multiplier: am },
|
|
171
|
+
{ factor: 'fm', multiplier: fm },
|
|
172
|
+
{ factor: 'cm', multiplier: cm },
|
|
173
|
+
]);
|
|
174
|
+
const rwl = cascade[cascade.length - 1].remaining;
|
|
165
175
|
// Calculate Lifting Index (rounded so the returned index and risk level agree)
|
|
166
176
|
const liftingIndex = rwl > 0 ? roundTo(loadWeight / rwl, 2) : Infinity;
|
|
167
177
|
// Determine risk level
|
|
@@ -185,6 +195,7 @@ export function nioshLifting(input) {
|
|
|
185
195
|
fm,
|
|
186
196
|
cm,
|
|
187
197
|
riskLevel,
|
|
198
|
+
cascade,
|
|
188
199
|
};
|
|
189
200
|
}
|
|
190
201
|
//# sourceMappingURL=nioshLifting.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nioshLifting.js","sourceRoot":"","sources":["../../src/safety/nioshLifting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"nioshLifting.js","sourceRoot":"","sources":["../../src/safety/nioshLifting.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"noiseExposure.d.ts","sourceRoot":"","sources":["../../src/safety/noiseExposure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAkB1E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,
|
|
1
|
+
{"version":3,"file":"noiseExposure.d.ts","sourceRoot":"","sources":["../../src/safety/noiseExposure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAkB1E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CAoD5E"}
|
|
@@ -42,17 +42,20 @@ export function noiseExposure(input) {
|
|
|
42
42
|
throw new RangeError('exposure duration must not be negative');
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
//
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const { soundLevel, duration } = exposure;
|
|
45
|
+
// Each exposure's share Cn/Tn; the dose is their sum. Exposures below 80 dB have
|
|
46
|
+
// no finite allowable time and contribute nothing.
|
|
47
|
+
const contributions = exposures.map(({ soundLevel, duration }) => {
|
|
49
48
|
const allowableTime = getAllowableTime(soundLevel);
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
const counted = allowableTime !== Infinity;
|
|
50
|
+
return {
|
|
51
|
+
soundLevel,
|
|
52
|
+
duration,
|
|
53
|
+
allowableTime: counted ? allowableTime : null,
|
|
54
|
+
dosePercent: counted ? (duration / allowableTime) * 100 : 0,
|
|
55
|
+
};
|
|
56
|
+
});
|
|
54
57
|
// Dose as percentage
|
|
55
|
-
const dose =
|
|
58
|
+
const dose = contributions.reduce((sum, c) => sum + c.dosePercent, 0);
|
|
56
59
|
// Calculate TWA (8-hour Time Weighted Average)
|
|
57
60
|
// TWA = 16.61 x log10(D/100) + 90
|
|
58
61
|
// If dose is 0, TWA is undefined (use a low value)
|
|
@@ -77,6 +80,7 @@ export function noiseExposure(input) {
|
|
|
77
80
|
}
|
|
78
81
|
return {
|
|
79
82
|
dose,
|
|
83
|
+
contributions,
|
|
80
84
|
twa,
|
|
81
85
|
status,
|
|
82
86
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"noiseExposure.js","sourceRoot":"","sources":["../../src/safety/noiseExposure.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,UAAkB;IAC1C,2DAA2D;IAC3D,4DAA4D;IAC5D,IAAI,UAAU,GAAG,EAAE,EAAE,CAAC;QACpB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAE5B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,UAAU,CAAC,wCAAwC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"noiseExposure.js","sourceRoot":"","sources":["../../src/safety/noiseExposure.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,UAAkB;IAC1C,2DAA2D;IAC3D,4DAA4D;IAC5D,IAAI,UAAU,GAAG,EAAE,EAAE,CAAC;QACpB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAE5B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,UAAU,CAAC,wCAAwC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,mDAAmD;IACnD,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC/D,MAAM,aAAa,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,aAAa,KAAK,QAAQ,CAAC;QAC3C,OAAO;YACL,UAAU;YACV,QAAQ;YACR,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI;YAC7C,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;SAC5D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,qBAAqB;IACrB,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEtE,+CAA+C;IAC/C,kCAAkC;IAClC,mDAAmD;IACnD,IAAI,GAAW,CAAC;IAChB,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,gCAAgC;QAChC,GAAG,GAAG,CAAC,CAAC;IACV,CAAC;IAED,mBAAmB;IACnB,IAAI,MAAkD,CAAC;IACvD,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;QACf,MAAM,GAAG,WAAW,CAAC;IACvB,CAAC;SAAM,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,MAAM,GAAG,gBAAgB,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC;IAED,OAAO;QACL,IAAI;QACJ,aAAa;QACb,GAAG;QACH,MAAM;KACP,CAAC;AACJ,CAAC"}
|
package/dist/safety/types.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { CascadeStep } from '../math.js';
|
|
2
|
+
export type { CascadeStep };
|
|
1
3
|
export interface FallClearanceInput {
|
|
2
4
|
lanyardLength: number;
|
|
3
5
|
decelerationDistance: number;
|
|
@@ -39,6 +41,11 @@ export interface NioshResult {
|
|
|
39
41
|
fm: number;
|
|
40
42
|
cm: number;
|
|
41
43
|
riskLevel: 'low' | 'moderate' | 'high';
|
|
44
|
+
/**
|
|
45
|
+
* The load constant (23 kg) reduced by HM, VM, DM, AM, FM, CM in equation order.
|
|
46
|
+
* Unrounded; the last step's `remaining` is RWL.
|
|
47
|
+
*/
|
|
48
|
+
cascade: CascadeStep<'hm' | 'vm' | 'dm' | 'am' | 'fm' | 'cm'>[];
|
|
42
49
|
}
|
|
43
50
|
export interface NoiseExposure {
|
|
44
51
|
soundLevel: number;
|
|
@@ -47,8 +54,16 @@ export interface NoiseExposure {
|
|
|
47
54
|
export interface NoiseExposureInput {
|
|
48
55
|
exposures: NoiseExposure[];
|
|
49
56
|
}
|
|
57
|
+
export interface NoiseExposureContribution {
|
|
58
|
+
soundLevel: number;
|
|
59
|
+
duration: number;
|
|
60
|
+
allowableTime: number | null;
|
|
61
|
+
dosePercent: number;
|
|
62
|
+
}
|
|
50
63
|
export interface NoiseExposureResult {
|
|
51
64
|
dose: number;
|
|
65
|
+
/** One entry per input exposure, in input order. `dosePercent` values sum to `dose`. */
|
|
66
|
+
contributions: NoiseExposureContribution[];
|
|
52
67
|
twa: number;
|
|
53
68
|
status: 'compliant' | 'actionRequired' | 'exceeds';
|
|
54
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/safety/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/safety/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "formulab",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.40.0",
|
|
4
4
|
"description": "Manufacturing & Engineering calculation formulas library - 203 industrial calculations across 15 domains for OEE, Cpk, SPC, FMEA, Nelson Rules, metal weight, CNC machining, GD&T, battery, environmental, pipe flow, logistics, IE time study, and more",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -175,6 +175,7 @@
|
|
|
175
175
|
"clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
176
176
|
"audit:constant-provenance": "node scripts/audit-constant-provenance.mjs src",
|
|
177
177
|
"check:dependency-drift": "node scripts/check-dependency-drift.mjs",
|
|
178
|
-
"check:function-counts": "node scripts/count-functions.mjs"
|
|
178
|
+
"check:function-counts": "node scripts/count-functions.mjs",
|
|
179
|
+
"check:nonfinite-outputs": "node scripts/check-nonfinite-outputs.mjs"
|
|
179
180
|
}
|
|
180
181
|
}
|