formulab 0.33.0 → 0.33.1

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 CHANGED
@@ -5,6 +5,23 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.33.1] - 2026-09-03
9
+
10
+ ### Fixed
11
+
12
+ - **`safety/wbgtCalculate()` heat-stress threshold table partially verified.** `WBGT_THRESHOLDS`
13
+ has carried an unverified "Based on ACGIH TLV guidelines" attribution since it was written -
14
+ ACGIH's TLV table is copyrighted and not freely available, and ISO 7243's own reference-value
15
+ table is not in its free sample. A peer-reviewed source reproducing both tables with citation
16
+ (Parsons K, 2006, "Heat Stress Standard ISO 7243 and its Global Application", Industrial Health
17
+ 44, 368-379) is now available: its Table 1 (ISO 7243) confirms the existing `heavy` (26/23) and
18
+ `veryHeavy` (25/20) acclimatized/unacclimatized values exactly, against the table's "sensible air
19
+ movement" column - no value change, `@reference` added, golden tests pinned. `light` and
20
+ `moderate` do **not** match either that table's rows or ACGIH's TLV table (Table 6 in the same
21
+ source) and remain unverified pending a source that resolves the mismatch - values unchanged,
22
+ per the "don't swap one unverified figure for another" policy already documented on this
23
+ constant. See `WBGT_THRESHOLDS` JSDoc for the full breakdown.
24
+
8
25
  ## [0.33.0] - 2026-09-02
9
26
 
10
27
  ### Added
@@ -23,7 +23,7 @@ import type { WbgtInput, WbgtResult } from './types.js';
23
23
  * - danger: WBGT > threshold
24
24
  *
25
25
  * The 2 degree caution band is a margin chosen here, not part of the index, and the
26
- * threshold it is measured from is itself unverified - see WBGT_THRESHOLDS above.
26
+ * threshold it is measured from is only partly verified - see WBGT_THRESHOLDS above.
27
27
  *
28
28
  * @param input - WBGT input parameters
29
29
  * @returns WBGT result with index, threshold, and status
@@ -1 +1 @@
1
- {"version":3,"file":"wbgtCalculate.d.ts","sourceRoot":"","sources":["../../src/safety/wbgtCalculate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAqB,MAAM,YAAY,CAAC;AA0B3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CAyC1D"}
1
+ {"version":3,"file":"wbgtCalculate.d.ts","sourceRoot":"","sources":["../../src/safety/wbgtCalculate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAqB,MAAM,YAAY,CAAC;AAwC3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CAyC1D"}
@@ -1,12 +1,26 @@
1
1
  /**
2
2
  * WBGT limits in degrees Celsius by workload and acclimatization state.
3
3
  *
4
- * ⚠️ Unlike the index formula below, these figures carry no verified source. They have
5
- * long been described here as threshold limit values, but the published table they would
6
- * come from is not freely available, so the attribution could not be confirmed - neither
7
- * the numbers themselves nor which column belongs to acclimatized workers. Several
8
- * schemes publish limits on this shape with values a degree or two apart, and they are
9
- * stated on different bases (some as a limit, some as an action level).
4
+ * `heavy` and `veryHeavy` are verified against ISO 7243 Table 1 (metabolic rate classes
5
+ * 200 < M < 260 W/m2 and M > 260 W/m2 respectively), using the table's "sensible air
6
+ * movement" column - the bracketed alternate values the standard gives for those two
7
+ * classes. Source: Parsons K (2006), "Heat Stress Standard ISO 7243 and its Global
8
+ * Application", Industrial Health 44, 368-379, Table 1 (a peer-reviewed reproduction of
9
+ * the standard's table, cited, since the standard itself is not freely available).
10
+ *
11
+ * @reference ISO 7243, Table 1 (via Parsons 2006, Table 1) - heavy/veryHeavy only
12
+ *
13
+ * ⚠️ `light` and `moderate` remain unverified. They do not match ISO 7243 Table 1's
14
+ * Light (65 < M < 130 W/m2) or Moderate (130 < M < 200 W/m2) rows (30/29 and 28/26
15
+ * respectively), nor ACGIH's TLV table (Table 6 in the same source: continuous-work
16
+ * columns 30.0/26.7 for light/moderate) reproduced alongside it. The published table
17
+ * these two figures would come from is still not identified, so neither the numbers
18
+ * nor which column is acclimatized is confirmed for them.
19
+ *
20
+ * ISO 7243 also has a fifth, lower metabolic class ("Resting", M < 65 W/m2) that this
21
+ * 4-class enum has no slot for - the mismatch on light/moderate may in part be a
22
+ * consequence of that missing class rather than a wrong pair of numbers, but this has
23
+ * not been established.
10
24
  *
11
25
  * They are left unchanged, because substituting one unverified figure for another is not
12
26
  * an improvement. Treat a status returned from them as a screening indication and check
@@ -42,7 +56,7 @@ const WBGT_THRESHOLDS = {
42
56
  * - danger: WBGT > threshold
43
57
  *
44
58
  * The 2 degree caution band is a margin chosen here, not part of the index, and the
45
- * threshold it is measured from is itself unverified - see WBGT_THRESHOLDS above.
59
+ * threshold it is measured from is only partly verified - see WBGT_THRESHOLDS above.
46
60
  *
47
61
  * @param input - WBGT input parameters
48
62
  * @returns WBGT result with index, threshold, and status
@@ -1 +1 @@
1
- {"version":3,"file":"wbgtCalculate.js","sourceRoot":"","sources":["../../src/safety/wbgtCalculate.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,MAAM,eAAe,GAGjB;IACF,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;IAC/C,QAAQ,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;IAClD,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;IAC/C,SAAS,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;CACpD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,aAAa,CAAC,KAAgB;IAC5C,MAAM,EACJ,WAAW,EACX,WAAW,EACX,SAAS,EACT,SAAS,EACT,QAAQ,EACR,cAAc,GACf,GAAG,KAAK,CAAC;IAEV,iBAAiB;IACjB,IAAI,IAAY,CAAC;IACjB,IAAI,SAAS,EAAE,CAAC;QACd,0BAA0B;QAC1B,IAAI,GAAG,GAAG,GAAG,WAAW,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,WAAW,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,uCAAuC;QACvC,IAAI,GAAG,GAAG,GAAG,WAAW,GAAG,GAAG,GAAG,SAAS,CAAC;IAC7C,CAAC;IAED,sDAAsD;IACtD,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,cAAc;QAC9B,CAAC,CAAC,UAAU,CAAC,YAAY;QACzB,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC;IAE9B,mBAAmB;IACnB,IAAI,MAAqC,CAAC;IAC1C,IAAI,IAAI,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,MAAM,CAAC;IAClB,CAAC;SAAM,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,QAAQ,CAAC;IACpB,CAAC;IAED,OAAO;QACL,IAAI;QACJ,SAAS;QACT,MAAM;KACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"wbgtCalculate.js","sourceRoot":"","sources":["../../src/safety/wbgtCalculate.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,eAAe,GAGjB;IACF,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;IAC/C,QAAQ,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;IAClD,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;IAC/C,SAAS,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;CACpD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,aAAa,CAAC,KAAgB;IAC5C,MAAM,EACJ,WAAW,EACX,WAAW,EACX,SAAS,EACT,SAAS,EACT,QAAQ,EACR,cAAc,GACf,GAAG,KAAK,CAAC;IAEV,iBAAiB;IACjB,IAAI,IAAY,CAAC;IACjB,IAAI,SAAS,EAAE,CAAC;QACd,0BAA0B;QAC1B,IAAI,GAAG,GAAG,GAAG,WAAW,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,WAAW,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,uCAAuC;QACvC,IAAI,GAAG,GAAG,GAAG,WAAW,GAAG,GAAG,GAAG,SAAS,CAAC;IAC7C,CAAC;IAED,sDAAsD;IACtD,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,cAAc;QAC9B,CAAC,CAAC,UAAU,CAAC,YAAY;QACzB,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC;IAE9B,mBAAmB;IACnB,IAAI,MAAqC,CAAC;IAC1C,IAAI,IAAI,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,MAAM,CAAC;IAClB,CAAC;SAAM,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,QAAQ,CAAC;IACpB,CAAC;IAED,OAAO;QACL,IAAI;QACJ,SAAS;QACT,MAAM;KACP,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "formulab",
3
- "version": "0.33.0",
3
+ "version": "0.33.1",
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",