formulab 0.13.5 → 0.13.7

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 (110) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/automotive/batteryRuntime.d.ts +1 -1
  3. package/dist/automotive/batteryRuntime.d.ts.map +1 -1
  4. package/dist/automotive/batteryRuntime.js +4 -1
  5. package/dist/automotive/batteryRuntime.js.map +1 -1
  6. package/dist/chemical/ph.d.ts.map +1 -1
  7. package/dist/chemical/ph.js +5 -7
  8. package/dist/chemical/ph.js.map +1 -1
  9. package/dist/chemical/pid.js +3 -3
  10. package/dist/chemical/pid.js.map +1 -1
  11. package/dist/construction/slope.d.ts.map +1 -1
  12. package/dist/construction/slope.js +6 -1
  13. package/dist/construction/slope.js.map +1 -1
  14. package/dist/electronics/smt-takt.d.ts.map +1 -1
  15. package/dist/electronics/smt-takt.js +4 -16
  16. package/dist/electronics/smt-takt.js.map +1 -1
  17. package/dist/electronics/solder.d.ts.map +1 -1
  18. package/dist/electronics/solder.js +5 -8
  19. package/dist/electronics/solder.js.map +1 -1
  20. package/dist/energy/motorEfficiency.d.ts.map +1 -1
  21. package/dist/energy/motorEfficiency.js +5 -8
  22. package/dist/energy/motorEfficiency.js.map +1 -1
  23. package/dist/logistics/dimWeight.d.ts.map +1 -1
  24. package/dist/logistics/dimWeight.js +8 -10
  25. package/dist/logistics/dimWeight.js.map +1 -1
  26. package/dist/logistics/fillRate.d.ts.map +1 -1
  27. package/dist/logistics/fillRate.js +2 -9
  28. package/dist/logistics/fillRate.js.map +1 -1
  29. package/dist/logistics/freightClass.d.ts.map +1 -1
  30. package/dist/logistics/freightClass.js +8 -9
  31. package/dist/logistics/freightClass.js.map +1 -1
  32. package/dist/logistics/kanban.d.ts.map +1 -1
  33. package/dist/logistics/kanban.js +8 -2
  34. package/dist/logistics/kanban.js.map +1 -1
  35. package/dist/logistics/pickTime.d.ts.map +1 -1
  36. package/dist/logistics/pickTime.js +4 -12
  37. package/dist/logistics/pickTime.js.map +1 -1
  38. package/dist/metal/bolt.d.ts.map +1 -1
  39. package/dist/metal/bolt.js +12 -36
  40. package/dist/metal/bolt.js.map +1 -1
  41. package/dist/metal/pressFit.d.ts.map +1 -1
  42. package/dist/metal/pressFit.js +8 -12
  43. package/dist/metal/pressFit.js.map +1 -1
  44. package/dist/metal/spring.d.ts.map +1 -1
  45. package/dist/metal/spring.js +6 -8
  46. package/dist/metal/spring.js.map +1 -1
  47. package/dist/metal/tap.d.ts.map +1 -1
  48. package/dist/metal/tap.js +4 -9
  49. package/dist/metal/tap.js.map +1 -1
  50. package/dist/metal/types.d.ts +23 -0
  51. package/dist/metal/types.d.ts.map +1 -1
  52. package/dist/metal/weldHeat.d.ts +5 -1
  53. package/dist/metal/weldHeat.d.ts.map +1 -1
  54. package/dist/metal/weldHeat.js +31 -4
  55. package/dist/metal/weldHeat.js.map +1 -1
  56. package/dist/metal/welding.d.ts.map +1 -1
  57. package/dist/metal/welding.js +2 -3
  58. package/dist/metal/welding.js.map +1 -1
  59. package/dist/quality/aql.d.ts.map +1 -1
  60. package/dist/quality/aql.js +6 -2
  61. package/dist/quality/aql.js.map +1 -1
  62. package/dist/safety/arcFlash.d.ts +3 -0
  63. package/dist/safety/arcFlash.d.ts.map +1 -1
  64. package/dist/safety/arcFlash.js +18 -0
  65. package/dist/safety/arcFlash.js.map +1 -1
  66. package/dist/safety/confinedSpace.d.ts +5 -0
  67. package/dist/safety/confinedSpace.d.ts.map +1 -1
  68. package/dist/safety/confinedSpace.js +20 -0
  69. package/dist/safety/confinedSpace.js.map +1 -1
  70. package/dist/safety/ergonomicRisk.d.ts +4 -0
  71. package/dist/safety/ergonomicRisk.d.ts.map +1 -1
  72. package/dist/safety/ergonomicRisk.js +7 -0
  73. package/dist/safety/ergonomicRisk.js.map +1 -1
  74. package/dist/safety/fallClearance.d.ts +5 -0
  75. package/dist/safety/fallClearance.d.ts.map +1 -1
  76. package/dist/safety/fallClearance.js +16 -0
  77. package/dist/safety/fallClearance.js.map +1 -1
  78. package/dist/safety/havsCalculate.d.ts +3 -0
  79. package/dist/safety/havsCalculate.d.ts.map +1 -1
  80. package/dist/safety/havsCalculate.js +8 -0
  81. package/dist/safety/havsCalculate.js.map +1 -1
  82. package/dist/safety/illuminance.d.ts +2 -0
  83. package/dist/safety/illuminance.d.ts.map +1 -1
  84. package/dist/safety/illuminance.js +4 -16
  85. package/dist/safety/illuminance.js.map +1 -1
  86. package/dist/safety/ladderAngle.d.ts +2 -0
  87. package/dist/safety/ladderAngle.d.ts.map +1 -1
  88. package/dist/safety/ladderAngle.js +14 -0
  89. package/dist/safety/ladderAngle.js.map +1 -1
  90. package/dist/safety/lel.d.ts +5 -0
  91. package/dist/safety/lel.d.ts.map +1 -1
  92. package/dist/safety/lel.js +19 -6
  93. package/dist/safety/lel.js.map +1 -1
  94. package/dist/safety/nioshLifting.d.ts +5 -0
  95. package/dist/safety/nioshLifting.d.ts.map +1 -1
  96. package/dist/safety/nioshLifting.js +13 -0
  97. package/dist/safety/nioshLifting.js.map +1 -1
  98. package/dist/safety/noiseExposure.d.ts +3 -0
  99. package/dist/safety/noiseExposure.d.ts.map +1 -1
  100. package/dist/safety/noiseExposure.js +8 -0
  101. package/dist/safety/noiseExposure.js.map +1 -1
  102. package/dist/safety/respiratorCalculate.d.ts +3 -0
  103. package/dist/safety/respiratorCalculate.d.ts.map +1 -1
  104. package/dist/safety/respiratorCalculate.js +10 -2
  105. package/dist/safety/respiratorCalculate.js.map +1 -1
  106. package/dist/safety/thermalComfort.d.ts +5 -0
  107. package/dist/safety/thermalComfort.d.ts.map +1 -1
  108. package/dist/safety/thermalComfort.js +17 -0
  109. package/dist/safety/thermalComfort.js.map +1 -1
  110. package/package.json +1 -1
@@ -125,9 +125,22 @@ function getCouplingMultiplier(coupling, verticalDistance) {
125
125
  *
126
126
  * @param input - NIOSH lifting parameters
127
127
  * @returns NIOSH results including RWL, LI, multipliers, and risk level
128
+ * @throws {RangeError} any distance, angle, frequency, or loadWeight is negative.
129
+ * @remarks Distances below the equation's domain (H, D < 25 cm) are clamped per the
130
+ * NIOSH spec rather than rejected. When the frequency multiplier drives RWL to 0
131
+ * (sustained high-frequency lifting), liftingIndex is Infinity — an intentional
132
+ * sentinel meaning "no weight is acceptable for this task".
128
133
  */
129
134
  export function nioshLifting(input) {
130
135
  const { horizontalDistance, verticalDistance, verticalTravel, asymmetryAngle, frequency, duration, coupling, loadWeight, } = input;
136
+ if (horizontalDistance < 0 ||
137
+ verticalDistance < 0 ||
138
+ verticalTravel < 0 ||
139
+ asymmetryAngle < 0 ||
140
+ frequency < 0 ||
141
+ loadWeight < 0) {
142
+ throw new RangeError('distances, asymmetryAngle, frequency, and loadWeight must not be negative');
143
+ }
131
144
  // Calculate multipliers
132
145
  // HM: Horizontal Multiplier (25/H), max 1.0, H must be >= 25cm
133
146
  const h = Math.max(horizontalDistance, 25);
@@ -1 +1 @@
1
- {"version":3,"file":"nioshLifting.js","sourceRoot":"","sources":["../../src/safety/nioshLifting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nioshLifting.js","sourceRoot":"","sources":["../../src/safety/nioshLifting.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,9 @@ import type { NoiseExposureInput, NoiseExposureResult } from './types.js';
17
17
  *
18
18
  * @param input - Noise exposure input with array of exposures
19
19
  * @returns Noise exposure result with dose, TWA, and status
20
+ * @throws {RangeError} an exposure entry has a negative duration.
21
+ * @remarks An empty exposure list (no significant noise) is a valid input that
22
+ * reports a compliant 0% dose.
20
23
  */
21
24
  export declare function noiseExposure(input: NoiseExposureInput): NoiseExposureResult;
22
25
  //# sourceMappingURL=noiseExposure.d.ts.map
@@ -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;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CA0C5E"}
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,CAgD5E"}
@@ -31,9 +31,17 @@ function getAllowableTime(soundLevel) {
31
31
  *
32
32
  * @param input - Noise exposure input with array of exposures
33
33
  * @returns Noise exposure result with dose, TWA, and status
34
+ * @throws {RangeError} an exposure entry has a negative duration.
35
+ * @remarks An empty exposure list (no significant noise) is a valid input that
36
+ * reports a compliant 0% dose.
34
37
  */
35
38
  export function noiseExposure(input) {
36
39
  const { exposures } = input;
40
+ for (const exposure of exposures) {
41
+ if (exposure.duration < 0) {
42
+ throw new RangeError('exposure duration must not be negative');
43
+ }
44
+ }
37
45
  // Calculate dose as sum of (Cn/Tn)
38
46
  let doseSum = 0;
39
47
  for (const exposure of exposures) {
@@ -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;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAE5B,mCAAmC;IACnC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;QAC1C,MAAM,aAAa,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,IAAI,QAAQ,GAAG,aAAa,CAAC;QACtC,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,MAAM,IAAI,GAAG,OAAO,GAAG,GAAG,CAAC;IAE3B,+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,GAAG;QACH,MAAM;KACP,CAAC;AACJ,CAAC"}
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,mCAAmC;IACnC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;QAC1C,MAAM,aAAa,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,IAAI,QAAQ,GAAG,aAAa,CAAC;QACtC,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,MAAM,IAAI,GAAG,OAAO,GAAG,GAAG,CAAC;IAE3B,+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,GAAG;QACH,MAAM;KACP,CAAC;AACJ,CAAC"}
@@ -9,6 +9,9 @@ import type { RespiratorInput, RespiratorResult } from './types.js';
9
9
  *
10
10
  * @param input - Respirator input parameters
11
11
  * @returns Respirator results including MUC, APF, and protection assessment
12
+ * @throws {RangeError} oel is not greater than 0, or concentration is negative
13
+ * @remarks When concentration is 0 (no hazard present), safetyMargin is Infinity —
14
+ * an intentional sentinel meaning "any respirator is infinitely adequate".
12
15
  */
13
16
  export declare function respiratorCalculate(input: RespiratorInput): RespiratorResult;
14
17
  //# sourceMappingURL=respiratorCalculate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"respiratorCalculate.d.ts","sourceRoot":"","sources":["../../src/safety/respiratorCalculate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAkB,MAAM,YAAY,CAAC;AA2DpF;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB,CA8B5E"}
1
+ {"version":3,"file":"respiratorCalculate.d.ts","sourceRoot":"","sources":["../../src/safety/respiratorCalculate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAkB,MAAM,YAAY,CAAC;AA2DpF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB,CAqC5E"}
@@ -32,8 +32,7 @@ function calculateMUC(apf, oel) {
32
32
  * concentration exceeds the occupational exposure limit.
33
33
  */
34
34
  function calculateHazardRatio(concentration, oel) {
35
- if (oel <= 0)
36
- return Infinity;
35
+ // oel > 0 is guaranteed by the caller's input validation
37
36
  return concentration / oel;
38
37
  }
39
38
  /**
@@ -62,9 +61,18 @@ function calculateSafetyMargin(apf, requiredAPF) {
62
61
  *
63
62
  * @param input - Respirator input parameters
64
63
  * @returns Respirator results including MUC, APF, and protection assessment
64
+ * @throws {RangeError} oel is not greater than 0, or concentration is negative
65
+ * @remarks When concentration is 0 (no hazard present), safetyMargin is Infinity —
66
+ * an intentional sentinel meaning "any respirator is infinitely adequate".
65
67
  */
66
68
  export function respiratorCalculate(input) {
67
69
  const { concentration, oel, respiratorType } = input;
70
+ if (oel <= 0) {
71
+ throw new RangeError('oel (occupational exposure limit) must be greater than 0');
72
+ }
73
+ if (concentration < 0) {
74
+ throw new RangeError('concentration must not be negative');
75
+ }
68
76
  // Get APF for selected respirator type
69
77
  const apf = APF_VALUES[respiratorType];
70
78
  // Calculate MUC
@@ -1 +1 @@
1
- {"version":3,"file":"respiratorCalculate.js","sourceRoot":"","sources":["../../src/safety/respiratorCalculate.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,GAAmC;IACjD,qBAAqB,EAAE,EAAE;IACzB,WAAW,EAAE,EAAE;IACf,gBAAgB,EAAE,EAAE;IACpB,mBAAmB,EAAE,EAAE;IACvB,cAAc,EAAE,EAAE;IAClB,wBAAwB,EAAE,IAAI;IAC9B,mBAAmB,EAAE,EAAE;IACvB,mBAAmB,EAAE,EAAE;IACvB,sBAAsB,EAAE,IAAI;IAC5B,SAAS,EAAE,KAAK;CACjB,CAAC;AAEF;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,GAAW,EAAE,GAAW;IAC5C,OAAO,GAAG,GAAG,GAAG,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAAC,aAAqB,EAAE,GAAW;IAC9D,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO,aAAa,GAAG,GAAG,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,WAAmB;IAC/C,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,GAAW,EAAE,WAAmB;IAC7D,IAAI,WAAW,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IACtC,OAAO,GAAG,GAAG,WAAW,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAsB;IACxD,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAErD,uCAAuC;IACvC,MAAM,GAAG,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAEvC,gBAAgB;IAChB,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEnC,yBAAyB;IACzB,MAAM,WAAW,GAAG,oBAAoB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IAE7D,yBAAyB;IACzB,MAAM,WAAW,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAEtD,kCAAkC;IAClC,4EAA4E;IAC5E,MAAM,kBAAkB,GAAG,aAAa,IAAI,GAAG,CAAC;IAEhD,0BAA0B;IAC1B,MAAM,YAAY,GAAG,qBAAqB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAE7D,OAAO;QACL,GAAG;QACH,GAAG;QACH,WAAW;QACX,WAAW;QACX,kBAAkB;QAClB,YAAY;KACb,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"respiratorCalculate.js","sourceRoot":"","sources":["../../src/safety/respiratorCalculate.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,GAAmC;IACjD,qBAAqB,EAAE,EAAE;IACzB,WAAW,EAAE,EAAE;IACf,gBAAgB,EAAE,EAAE;IACpB,mBAAmB,EAAE,EAAE;IACvB,cAAc,EAAE,EAAE;IAClB,wBAAwB,EAAE,IAAI;IAC9B,mBAAmB,EAAE,EAAE;IACvB,mBAAmB,EAAE,EAAE;IACvB,sBAAsB,EAAE,IAAI;IAC5B,SAAS,EAAE,KAAK;CACjB,CAAC;AAEF;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,GAAW,EAAE,GAAW;IAC5C,OAAO,GAAG,GAAG,GAAG,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAAC,aAAqB,EAAE,GAAW;IAC9D,yDAAyD;IACzD,OAAO,aAAa,GAAG,GAAG,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,WAAmB;IAC/C,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,GAAW,EAAE,WAAmB;IAC7D,IAAI,WAAW,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IACtC,OAAO,GAAG,GAAG,WAAW,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAsB;IACxD,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAErD,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACb,MAAM,IAAI,UAAU,CAAC,0DAA0D,CAAC,CAAC;IACnF,CAAC;IACD,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,UAAU,CAAC,oCAAoC,CAAC,CAAC;IAC7D,CAAC;IAED,uCAAuC;IACvC,MAAM,GAAG,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAEvC,gBAAgB;IAChB,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEnC,yBAAyB;IACzB,MAAM,WAAW,GAAG,oBAAoB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IAE7D,yBAAyB;IACzB,MAAM,WAAW,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAEtD,kCAAkC;IAClC,4EAA4E;IAC5E,MAAM,kBAAkB,GAAG,aAAa,IAAI,GAAG,CAAC;IAEhD,0BAA0B;IAC1B,MAAM,YAAY,GAAG,qBAAqB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAE7D,OAAO;QACL,GAAG;QACH,GAAG;QACH,WAAW;QACX,WAAW;QACX,kBAAkB;QAClB,YAAY;KACb,CAAC;AACJ,CAAC"}
@@ -9,6 +9,11 @@ import type { ThermalComfortInput, ThermalComfortResult } from './types.js';
9
9
  * @reference ISO 7730:2005 — Ergonomics of the thermal environment
10
10
  * @reference ASHRAE Standard 55-2020
11
11
  * @reference pythermalcomfort reference implementation
12
+ *
13
+ * @throws {RangeError} relativeHumidity outside 0–100, metabolicRate ≤ 0,
14
+ * clothingInsulation < 0, or airVelocity < 0.
15
+ * @remarks Air and radiant temperatures are in °C and may be negative, so they
16
+ * are not range-checked.
12
17
  */
13
18
  export declare function thermalComfort(input: ThermalComfortInput): ThermalComfortResult;
14
19
  //# sourceMappingURL=thermalComfort.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"thermalComfort.d.ts","sourceRoot":"","sources":["../../src/safety/thermalComfort.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE5E;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAkF/E"}
1
+ {"version":3,"file":"thermalComfort.d.ts","sourceRoot":"","sources":["../../src/safety/thermalComfort.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE5E;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CA+F/E"}
@@ -9,9 +9,26 @@ import { roundTo } from '../utils.js';
9
9
  * @reference ISO 7730:2005 — Ergonomics of the thermal environment
10
10
  * @reference ASHRAE Standard 55-2020
11
11
  * @reference pythermalcomfort reference implementation
12
+ *
13
+ * @throws {RangeError} relativeHumidity outside 0–100, metabolicRate ≤ 0,
14
+ * clothingInsulation < 0, or airVelocity < 0.
15
+ * @remarks Air and radiant temperatures are in °C and may be negative, so they
16
+ * are not range-checked.
12
17
  */
13
18
  export function thermalComfort(input) {
14
19
  const { airTemp, radiantTemp, airVelocity, relativeHumidity, metabolicRate, clothingInsulation } = input;
20
+ if (relativeHumidity < 0 || relativeHumidity > 100) {
21
+ throw new RangeError('relativeHumidity must be between 0 and 100');
22
+ }
23
+ if (metabolicRate <= 0) {
24
+ throw new RangeError('metabolicRate must be greater than 0');
25
+ }
26
+ if (clothingInsulation < 0) {
27
+ throw new RangeError('clothingInsulation must not be negative');
28
+ }
29
+ if (airVelocity < 0) {
30
+ throw new RangeError('airVelocity must not be negative');
31
+ }
15
32
  const M = metabolicRate * 58.15; // W/m²
16
33
  const W = 0;
17
34
  const Icl = clothingInsulation * 0.155; // m²·K/W
@@ -1 +1 @@
1
- {"version":3,"file":"thermalComfort.js","sourceRoot":"","sources":["../../src/safety/thermalComfort.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thermalComfort.js","sourceRoot":"","sources":["../../src/safety/thermalComfort.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "formulab",
3
- "version": "0.13.5",
3
+ "version": "0.13.7",
4
4
  "description": "Manufacturing & Engineering calculation formulas library - 182 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",