formulab 0.26.0 → 0.26.2

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 (35) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/dist/construction/concreteMix.d.ts.map +1 -1
  3. package/dist/construction/concreteMix.js +9 -0
  4. package/dist/construction/concreteMix.js.map +1 -1
  5. package/dist/construction/stair.d.ts.map +1 -1
  6. package/dist/construction/stair.js +13 -2
  7. package/dist/construction/stair.js.map +1 -1
  8. package/dist/electronics/resistor.d.ts.map +1 -1
  9. package/dist/electronics/resistor.js +8 -1
  10. package/dist/electronics/resistor.js.map +1 -1
  11. package/dist/metal/bearing.d.ts +8 -0
  12. package/dist/metal/bearing.d.ts.map +1 -1
  13. package/dist/metal/bearing.js +8 -0
  14. package/dist/metal/bearing.js.map +1 -1
  15. package/dist/metal/bendAllowance.d.ts.map +1 -1
  16. package/dist/metal/bendAllowance.js +16 -3
  17. package/dist/metal/bendAllowance.js.map +1 -1
  18. package/dist/metal/roughness.d.ts.map +1 -1
  19. package/dist/metal/roughness.js +17 -0
  20. package/dist/metal/roughness.js.map +1 -1
  21. package/dist/metal/screw.d.ts.map +1 -1
  22. package/dist/metal/screw.js +11 -0
  23. package/dist/metal/screw.js.map +1 -1
  24. package/dist/metal/tap.d.ts +7 -0
  25. package/dist/metal/tap.d.ts.map +1 -1
  26. package/dist/metal/tap.js +7 -0
  27. package/dist/metal/tap.js.map +1 -1
  28. package/dist/safety/havsCalculate.d.ts.map +1 -1
  29. package/dist/safety/havsCalculate.js +18 -3
  30. package/dist/safety/havsCalculate.js.map +1 -1
  31. package/dist/safety/wbgtCalculate.d.ts +7 -0
  32. package/dist/safety/wbgtCalculate.d.ts.map +1 -1
  33. package/dist/safety/wbgtCalculate.js +21 -2
  34. package/dist/safety/wbgtCalculate.js.map +1 -1
  35. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,69 @@ 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.26.2] - 2026-08-06
9
+
10
+ ### Changed
11
+
12
+ - **Formulas that do come from a standard now name it — and one table says it could not be checked.**
13
+
14
+ The previous release covered constants whose origin was unstated. This one covers the
15
+ opposite case: calculations that follow a published standard exactly, while the code said
16
+ nothing about it. A reader could not tell which figures were fixed by a standard and which
17
+ were the library's own choices, and that is the difference between a value that must not
18
+ drift and one that may.
19
+
20
+ - `metal/bearing` — the rating life exponents cite ISO 281, and the doc now says what makes
21
+ the result the *basic* rating life rather than a modified one.
22
+ - `metal/tap` — the profile factors cite ISO 68-1, and the 75% thread engagement default is
23
+ now named for what it is: a shop convention layered on top of that geometry, prescribed by
24
+ nothing.
25
+ - `metal/screw` — the diameter/pitch series and the clearance hole series are tabulated, not
26
+ derived, so a disagreement is a transcription error. The doc says so and cites the series.
27
+ - `electronics/resistor` — the colour code cites IEC 60062, and the doc distinguishes a
28
+ definition from a measurement.
29
+ - `metal/roughness` — records that the grade notation and the profile parameters behind Ra
30
+ and Rz were superseded at the end of 2021, while the values themselves are unchanged.
31
+
32
+ - **`safety/wbgt` — the index formula is sourced; the exposure limits are marked unverified.**
33
+
34
+ The weightings match ISO 7243 exactly and now cite it. The limit table beside them does not
35
+ get the same treatment: it has long been described as threshold limit values, but the
36
+ published table it would come from is not freely available, and secondary sources disagree
37
+ on both the figures and which column belongs to acclimatized workers. The values are left
38
+ as they are — substituting one unverified figure for another is not an improvement — and
39
+ the uncertainty is stated where a caller will see it, together with the fact that the
40
+ caution band is a margin chosen here rather than part of the index.
41
+
42
+ ## [0.26.1] - 2026-08-06
43
+
44
+ ### Changed
45
+
46
+ - **Constants that decide a verdict now say where they come from — or that nothing backs them.**
47
+
48
+ A constant read through a comparison to produce a warning or a status is doing more work
49
+ than one that is merely displayed: when its origin is unstated, a caller cannot tell a
50
+ legal limit from a shop convention, and a threshold that is quietly too narrow or too wide
51
+ produces a verdict nobody can audit. Every such constant in the library was reviewed. No
52
+ value changed — replacing an unsourced figure with another unsourced figure is not an
53
+ improvement.
54
+
55
+ - `safety/havsCalculate` — the hand-arm vibration action and limit values now cite
56
+ Directive 2002/44/EC, Article 3(1), and say so explicitly: the status returned is a
57
+ statement about that regime, not a universal one. Other jurisdictions set their own
58
+ figures on their own basis.
59
+ - `construction/stair` — the auto-calculation riser heights are comfort figures, and they
60
+ are narrower than any model code permits. They now say that outright, so a result derived
61
+ from them is not presented as a code check.
62
+ - `construction/concreteMix` — the mix table claimed to be "based on standard mix design
63
+ proportions" without naming a standard, which is worse than saying nothing: it asserts a
64
+ backing that does not exist. It now states that the proportions are conventional, and that
65
+ the higher grades are outside what a nominal-mix table covers at all.
66
+ - `metal/roughness` — the grade table's identifier names a standard, but only part of it
67
+ comes from one. The grade-to-Ra series does; the Rz column does not, because no standard
68
+ defines a general conversion between the two — they measure different things. The two are
69
+ now separated in the comment, and results derived from the Rz column are called estimates.
70
+
8
71
  ## [0.26.0] - 2026-08-04
9
72
 
10
73
  ### Added
@@ -1 +1 @@
1
- {"version":3,"file":"concreteMix.d.ts","sourceRoot":"","sources":["../../src/construction/concreteMix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAwB/E;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAsBhE"}
1
+ {"version":3,"file":"concreteMix.d.ts","sourceRoot":"","sources":["../../src/construction/concreteMix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA6B/E;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAsBhE"}
@@ -1,4 +1,13 @@
1
1
  import { roundTo } from '../utils.js';
2
+ /**
3
+ * Concrete mix proportions by grade.
4
+ *
5
+ * These are conventional nominal proportions and cement contents in common use; no
6
+ * normative source is attached to them, and in particular the higher grades are not
7
+ * taken from a standard's nominal-mix table — above the lower grades, codes generally
8
+ * call for a designed mix proven by trial batches rather than a fixed ratio. Treat the
9
+ * figures as a starting point for estimating quantities, not as a specified mix.
10
+ */
2
11
  const MIX_DESIGNS = {
3
12
  '15': { cementPerM3: 280, sandRatio: 2, gravelRatio: 4, wcRatio: 0.60, ratioString: '1 : 2 : 4' },
4
13
  '20': { cementPerM3: 330, sandRatio: 1.5, gravelRatio: 3, wcRatio: 0.55, ratioString: '1 : 1.5 : 3' },
@@ -1 +1 @@
1
- {"version":3,"file":"concreteMix.js","sourceRoot":"","sources":["../../src/construction/concreteMix.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AActC,MAAM,WAAW,GAAqC;IACpD,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE;IACjG,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;IACrG,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE;IACjG,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE;IACjG,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;IACrG,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;CACtG,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,KAAoB;IAC9C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAChC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,UAAU,CAAC,2BAA2B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,UAAU,CAAC,+BAA+B,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAElD,OAAO;QACL,MAAM;QACN,IAAI;QACJ,MAAM;QACN,KAAK;QACL,KAAK,EAAE,MAAM,CAAC,WAAW;KAC1B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"concreteMix.js","sourceRoot":"","sources":["../../src/construction/concreteMix.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAUtC;;;;;;;;GAQG;AACH,MAAM,WAAW,GAAqC;IACpD,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE;IACjG,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;IACrG,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE;IACjG,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE;IACjG,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;IACrG,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;CACtG,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,KAAoB;IAC9C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAChC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,UAAU,CAAC,2BAA2B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,UAAU,CAAC,+BAA+B,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAElD,OAAO;QACL,MAAM;QACN,IAAI;QACJ,MAAM;QACN,KAAK;QACL,KAAK,EAAE,MAAM,CAAC,WAAW;KAC1B,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"stair.d.ts","sourceRoot":"","sources":["../../src/construction/stair.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAQ1D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAiEpD"}
1
+ {"version":3,"file":"stair.d.ts","sourceRoot":"","sources":["../../src/construction/stair.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAmB1D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAiEpD"}
@@ -1,8 +1,19 @@
1
1
  import { roundTo } from '../utils.js';
2
- // Default comfortable riser height range: 150-180mm
2
+ /**
3
+ * Riser heights used when the caller asks for auto-calculation, in millimetres.
4
+ *
5
+ * These are comfort figures in common use, not limits taken from a building code, and
6
+ * they are deliberately narrower than any code band: model codes permit risers well
7
+ * below 150mm and above 180mm. Nothing here decides code compliance, and a result
8
+ * produced from these values must not be presented as a code check — the applicable
9
+ * limits depend on jurisdiction and on whether the stair is residential or commercial.
10
+ *
11
+ * They only steer the riser count when `riserHeight` is 0 ("auto"); an explicit
12
+ * `riserHeight` is used as given.
13
+ */
3
14
  const MIN_RISER = 150;
4
15
  const MAX_RISER = 180;
5
- const DEFAULT_RISER = 170; // Target riser height for auto-calculation
16
+ const DEFAULT_RISER = 170;
6
17
  /**
7
18
  * Calculate stair dimensions
8
19
  *
@@ -1 +1 @@
1
- {"version":3,"file":"stair.js","sourceRoot":"","sources":["../../src/construction/stair.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stair.js","sourceRoot":"","sources":["../../src/construction/stair.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resistor.d.ts","sourceRoot":"","sources":["../../src/electronics/resistor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAa,MAAM,YAAY,CAAC;AA6H3E;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAsDnE"}
1
+ {"version":3,"file":"resistor.d.ts","sourceRoot":"","sources":["../../src/electronics/resistor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAa,MAAM,YAAY,CAAC;AAoI3E;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAsDnE"}
@@ -1,5 +1,12 @@
1
1
  /**
2
- * Color code values for resistor bands
2
+ * Digit value carried by each band colour.
3
+ *
4
+ * This is a definition rather than a measurement: the colour-to-digit assignment is what
5
+ * the marking code says it is, so a wrong entry here is a decoding error, not an
6
+ * inaccuracy. Gold and silver carry no digit and are negative sentinels, meaningful only
7
+ * in the multiplier and tolerance positions.
8
+ *
9
+ * @reference IEC 60062, marking codes for resistors and capacitors.
3
10
  */
4
11
  const COLOR_VALUES = {
5
12
  black: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"resistor.js","sourceRoot":"","sources":["../../src/electronics/resistor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resistor.js","sourceRoot":"","sources":["../../src/electronics/resistor.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,14 @@ import type { BearingInput, BearingResult } from './types.js';
7
7
  * p = 3 for ball bearings
8
8
  * p = 10/3 for roller bearings
9
9
  *
10
+ * The exponents are not free parameters: they come from the Lundberg-Palmgren fatigue
11
+ * model and are what makes this the *basic* rating life, the life 90% of a large group
12
+ * of apparently identical bearings reaches or exceeds. A caller wanting a modified life
13
+ * has to apply the reliability and operating-condition factors on top; this returns the
14
+ * unadjusted figure.
15
+ *
16
+ * @reference ISO 281, basic dynamic load rating and basic rating life.
17
+ *
10
18
  * @throws RangeError if dynamicLoadRating, equivalentLoad, or rpm is not positive
11
19
  */
12
20
  export declare function bearing(input: BearingInput): BearingResult;
@@ -1 +1 @@
1
- {"version":3,"file":"bearing.d.ts","sourceRoot":"","sources":["../../src/metal/bearing.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE9D;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CA6B1D"}
1
+ {"version":3,"file":"bearing.d.ts","sourceRoot":"","sources":["../../src/metal/bearing.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE9D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CA6B1D"}
@@ -7,6 +7,14 @@ import { roundTo } from '../utils.js';
7
7
  * p = 3 for ball bearings
8
8
  * p = 10/3 for roller bearings
9
9
  *
10
+ * The exponents are not free parameters: they come from the Lundberg-Palmgren fatigue
11
+ * model and are what makes this the *basic* rating life, the life 90% of a large group
12
+ * of apparently identical bearings reaches or exceeds. A caller wanting a modified life
13
+ * has to apply the reliability and operating-condition factors on top; this returns the
14
+ * unadjusted figure.
15
+ *
16
+ * @reference ISO 281, basic dynamic load rating and basic rating life.
17
+ *
10
18
  * @throws RangeError if dynamicLoadRating, equivalentLoad, or rpm is not positive
11
19
  */
12
20
  export function bearing(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"bearing.js","sourceRoot":"","sources":["../../src/metal/bearing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;GASG;AACH,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAEtE,kBAAkB;IAClB,IAAI,iBAAiB,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,UAAU,CAAC,0CAA0C,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,UAAU,CAAC,uCAAuC,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACb,MAAM,IAAI,UAAU,CAAC,4BAA4B,CAAC,CAAC;IACrD,CAAC;IAED,mEAAmE;IACnE,MAAM,YAAY,GAAG,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEzD,6BAA6B;IAC7B,MAAM,SAAS,GAAG,iBAAiB,GAAG,cAAc,CAAC;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAE9C,yCAAyC;IACzC,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;IAE5C,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;KACvC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"bearing.js","sourceRoot":"","sources":["../../src/metal/bearing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAEtE,kBAAkB;IAClB,IAAI,iBAAiB,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,UAAU,CAAC,0CAA0C,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,UAAU,CAAC,uCAAuC,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACb,MAAM,IAAI,UAAU,CAAC,4BAA4B,CAAC,CAAC;IACrD,CAAC;IAED,mEAAmE;IACnE,MAAM,YAAY,GAAG,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEzD,6BAA6B;IAC7B,MAAM,SAAS,GAAG,iBAAiB,GAAG,cAAc,CAAC;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAE9C,yCAAyC;IACzC,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;IAE5C,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;KACvC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bendAllowance.d.ts","sourceRoot":"","sources":["../../src/metal/bendAllowance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAmB,MAAM,YAAY,CAAC;AA8B3F;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CAgD5E"}
1
+ {"version":3,"file":"bendAllowance.d.ts","sourceRoot":"","sources":["../../src/metal/bendAllowance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAmB,MAAM,YAAY,CAAC;AA2C3F;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CAgD5E"}
@@ -1,7 +1,15 @@
1
1
  import { roundTo } from '../utils.js';
2
2
  /**
3
- * Default K-factor values by material
4
- * K-factor represents the position of the neutral axis relative to thickness
3
+ * Default K-factor values by material.
4
+ *
5
+ * K-factor is the neutral-axis position as a fraction of thickness. It is empirical:
6
+ * it varies with forming method, tooling and lot, so the source matters as much as
7
+ * the number.
8
+ *
9
+ * These are conventional air-bending defaults in common shop use; no normative source
10
+ * is attached to them. They are a starting point, not a specification. Callers that
11
+ * need a traceable figure should pass `input.kFactor` explicitly, or derive one from a
12
+ * measured flat length via `kFactorReverse`.
5
13
  */
6
14
  const K_FACTOR_TABLE = {
7
15
  mildSteel: 0.44,
@@ -11,7 +19,12 @@ const K_FACTOR_TABLE = {
11
19
  custom: 0.44,
12
20
  };
13
21
  /**
14
- * Minimum bend radius multiplier (x thickness) by material
22
+ * Minimum bend radius multiplier (x thickness) by material.
23
+ *
24
+ * Like the K-factor table above, these are conventional shop defaults, not values
25
+ * drawn from a specific standard's table. Treat them as a starting point for a
26
+ * feasibility check, not a specification limit; verify against tooling and material
27
+ * datasheets for production use.
15
28
  */
16
29
  const MIN_BEND_RADIUS_MULTIPLIER = {
17
30
  mildSteel: 1.0,
@@ -1 +1 @@
1
- {"version":3,"file":"bendAllowance.js","sourceRoot":"","sources":["../../src/metal/bendAllowance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;GAGG;AACH,MAAM,cAAc,GAAoC;IACtD,SAAS,EAAE,IAAI;IACf,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,IAAI;IAClB,MAAM,EAAE,IAAI;CACb,CAAC;AAEF;;GAEG;AACH,MAAM,0BAA0B,GAAoC;IAClE,SAAS,EAAE,GAAG;IACd,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,GAAG;IACjB,MAAM,EAAE,GAAG;CACZ,CAAC;AAEF;;GAEG;AACH,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,GAAG,WAAW,EAAE,GAAG,KAAK,CAAC;IAC7E,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,mDAAmD;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE1D,gCAAgC;IAChC,MAAM,aAAa,GAAG,0BAA0B,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IAEvE,sCAAsC;IACtC,MAAM,eAAe,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC;IAEjE,6CAA6C;IAC7C,IAAI,YAAY,GAAG,aAAa,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,YAAY,yCAAyC,aAAa,KAAK,CAAC,CAAC;IAC3G,CAAC;IAED,+BAA+B;IAC/B,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,uBAAuB,SAAS,+BAA+B,CAAC,CAAC;IACjF,CAAC;IAED,gCAAgC;IAChC,MAAM,YAAY,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAEjD,gCAAgC;IAChC,mEAAmE;IACnE,MAAM,EAAE,GAAG,YAAY,GAAG,CAAC,YAAY,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAE/D,mCAAmC;IACnC,sDAAsD;IACtD,MAAM,YAAY,GAAG,YAAY,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEjE,gCAAgC;IAChC,qBAAqB;IACrB,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;IAEzB,OAAO;QACL,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE,EAAE;QACjB,cAAc,EAAE,IAAI;QACpB,OAAO;QACP,eAAe;QACf,aAAa;QACb,QAAQ;KACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"bendAllowance.js","sourceRoot":"","sources":["../../src/metal/bendAllowance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;;;GAWG;AACH,MAAM,cAAc,GAAoC;IACtD,SAAS,EAAE,IAAI;IACf,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,IAAI;IAClB,MAAM,EAAE,IAAI;CACb,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,0BAA0B,GAAoC;IAClE,SAAS,EAAE,GAAG;IACd,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,GAAG;IACjB,MAAM,EAAE,GAAG;CACZ,CAAC;AAEF;;GAEG;AACH,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,GAAG,WAAW,EAAE,GAAG,KAAK,CAAC;IAC7E,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,mDAAmD;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE1D,gCAAgC;IAChC,MAAM,aAAa,GAAG,0BAA0B,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IAEvE,sCAAsC;IACtC,MAAM,eAAe,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC;IAEjE,6CAA6C;IAC7C,IAAI,YAAY,GAAG,aAAa,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,YAAY,yCAAyC,aAAa,KAAK,CAAC,CAAC;IAC3G,CAAC;IAED,+BAA+B;IAC/B,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,uBAAuB,SAAS,+BAA+B,CAAC,CAAC;IACjF,CAAC;IAED,gCAAgC;IAChC,MAAM,YAAY,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAEjD,gCAAgC;IAChC,mEAAmE;IACnE,MAAM,EAAE,GAAG,YAAY,GAAG,CAAC,YAAY,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAE/D,mCAAmC;IACnC,sDAAsD;IACtD,MAAM,YAAY,GAAG,YAAY,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEjE,gCAAgC;IAChC,qBAAqB;IACrB,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;IAEzB,OAAO;QACL,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE,EAAE;QACjB,cAAc,EAAE,IAAI;QACpB,OAAO;QACP,eAAe;QACf,aAAa;QACb,QAAQ;KACT,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"roughness.d.ts","sourceRoot":"","sources":["../../src/metal/roughness.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA8BlE;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAoChE"}
1
+ {"version":3,"file":"roughness.d.ts","sourceRoot":"","sources":["../../src/metal/roughness.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA+ClE;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAoChE"}
@@ -1,4 +1,21 @@
1
1
  import { roundTo } from '../utils.js';
2
+ /**
3
+ * Roughness grade numbers with their Ra values in micrometres, and an Rz column.
4
+ *
5
+ * The N-grade to Ra pairing is the standard series, where each step doubles Ra from
6
+ * 0.025 at N1 to 50 at N12. **The Rz column is not**: no standard defines a general
7
+ * conversion between Ra and Rz, because they measure different things — one is an
8
+ * average deviation, the other a peak-to-valley height. The figures here follow the
9
+ * common Rz = 4 x Ra rule of thumb, and any single Ra corresponds to a spread of Rz
10
+ * values in practice, widening as the surface gets rougher. Results derived from the
11
+ * Rz column are estimates, not conversions between specified quantities.
12
+ *
13
+ * The grade-number notation and the profile-parameter definitions behind Ra and Rz were
14
+ * both withdrawn at the end of 2021 and superseded by the ISO 21920 series. The values
15
+ * are unchanged and the notation is still in wide use on drawings, which is why it is
16
+ * still carried here, but callers writing new documentation should expect the newer
17
+ * series to be cited instead.
18
+ */
2
19
  const ISO_1302_TABLE = [
3
20
  { n: 1, ra: 0.025, rz: 0.1 },
4
21
  { n: 2, ra: 0.05, rz: 0.2 },
@@ -1 +1 @@
1
- {"version":3,"file":"roughness.js","sourceRoot":"","sources":["../../src/metal/roughness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"roughness.js","sourceRoot":"","sources":["../../src/metal/roughness.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"screw.d.ts","sourceRoot":"","sources":["../../src/metal/screw.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAa,MAAM,YAAY,CAAC;AAmBrE,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAmBpD"}
1
+ {"version":3,"file":"screw.d.ts","sourceRoot":"","sources":["../../src/metal/screw.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAa,MAAM,YAAY,CAAC;AA8BrE,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAmBpD"}
@@ -1,4 +1,15 @@
1
1
  import { roundTo } from '../utils.js';
2
+ /**
3
+ * Nominal diameters with their coarse and fine pitches, and clearance hole diameters.
4
+ *
5
+ * The diameter and pitch pairings are the metric thread series; the clearance holes are
6
+ * the close and normal (free) series for the same nominal sizes. Neither is a derived
7
+ * figure - both are tabulated, so a value that disagrees with the standard is a
8
+ * transcription error rather than a rounding difference.
9
+ *
10
+ * @reference ISO 261 (general plan) and ISO 262 (selected sizes) for the thread series;
11
+ * ISO 273 for clearance holes.
12
+ */
2
13
  const SCREW_TABLE = {
3
14
  'M1.6': { nominal: 1.6, coarsePitch: 0.35, finePitch: 0.2, clearanceClose: 1.7, clearanceFree: 2.0 },
4
15
  'M2': { nominal: 2, coarsePitch: 0.4, finePitch: 0.25, clearanceClose: 2.2, clearanceFree: 2.6 },
@@ -1 +1 @@
1
- {"version":3,"file":"screw.js","sourceRoot":"","sources":["../../src/metal/screw.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screw.js","sourceRoot":"","sources":["../../src/metal/screw.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,13 @@ import type { TapInput, TapResult } from './types.js';
11
11
  * For Unified threads (UNC/UNF):
12
12
  * - Convert TPI to pitch: p = 25.4 / TPI
13
13
  * - Same formulas apply
14
+ *
15
+ * The 0.866025 and 1.0825 factors are the geometry of the 60 degree basic profile, not
16
+ * chosen constants. The thread percentage is a shop choice on top of that geometry: 75%
17
+ * is the usual default because it keeps most of the strength for much less tapping
18
+ * torque, but it is a convention, and no standard prescribes it.
19
+ *
20
+ * @reference ISO 68-1, basic profile for ISO general purpose metric screw threads.
14
21
  */
15
22
  export declare function tap(input: TapInput): TapResult;
16
23
  //# sourceMappingURL=tap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tap.d.ts","sourceRoot":"","sources":["../../src/metal/tap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;;;;;;;GAYG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CA6C9C"}
1
+ {"version":3,"file":"tap.d.ts","sourceRoot":"","sources":["../../src/metal/tap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CA6C9C"}
package/dist/metal/tap.js CHANGED
@@ -11,6 +11,13 @@ import { roundTo } from '../utils.js';
11
11
  * For Unified threads (UNC/UNF):
12
12
  * - Convert TPI to pitch: p = 25.4 / TPI
13
13
  * - Same formulas apply
14
+ *
15
+ * The 0.866025 and 1.0825 factors are the geometry of the 60 degree basic profile, not
16
+ * chosen constants. The thread percentage is a shop choice on top of that geometry: 75%
17
+ * is the usual default because it keeps most of the strength for much less tapping
18
+ * torque, but it is a convention, and no standard prescribes it.
19
+ *
20
+ * @reference ISO 68-1, basic profile for ISO general purpose metric screw threads.
14
21
  */
15
22
  export function tap(input) {
16
23
  const { standard, majorDiameter, pitch: inputPitch, threadPercentage = 75 } = input;
@@ -1 +1 @@
1
- {"version":3,"file":"tap.js","sourceRoot":"","sources":["../../src/metal/tap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,GAAG,CAAC,KAAe;IACjC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;IAEpF,kBAAkB;IAClB,IAAI,aAAa,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,sCAAsC,CAAC,CAAC;IACrF,IAAI,UAAU,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,8BAA8B,CAAC,CAAC;IAE1E,kDAAkD;IAClD,MAAM,KAAK,GAAG,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC;IAErE,6CAA6C;IAC7C,qCAAqC;IACrC,MAAM,CAAC,GAAG,QAAQ,GAAG,KAAK,CAAC;IAE3B,0BAA0B;IAC1B,gCAAgC;IAChC,4EAA4E;IAC5E,sEAAsE;IAEtE,kDAAkD;IAClD,2CAA2C;IAC3C,MAAM,YAAY,GAAG,aAAa,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAEhD,2CAA2C;IAC3C,qDAAqD;IACrD,MAAM,OAAO,GAAG,aAAa,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAE3C,+CAA+C;IAC/C,kDAAkD;IAClD,uCAAuC;IACvC,8CAA8C;IAC9C,EAAE;IACF,2DAA2D;IAC3D,2DAA2D;IAE3D,MAAM,sBAAsB,GAAG,gBAAgB,GAAG,GAAG,CAAC;IACtD,MAAM,YAAY,GAAG,aAAa,GAAG,CAAC,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;IAEzE,OAAO;QACL,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACtC,aAAa,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACvC,aAAa,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAClC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC9C,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;KAC5B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tap.js","sourceRoot":"","sources":["../../src/metal/tap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,GAAG,CAAC,KAAe;IACjC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;IAEpF,kBAAkB;IAClB,IAAI,aAAa,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,sCAAsC,CAAC,CAAC;IACrF,IAAI,UAAU,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,8BAA8B,CAAC,CAAC;IAE1E,kDAAkD;IAClD,MAAM,KAAK,GAAG,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC;IAErE,6CAA6C;IAC7C,qCAAqC;IACrC,MAAM,CAAC,GAAG,QAAQ,GAAG,KAAK,CAAC;IAE3B,0BAA0B;IAC1B,gCAAgC;IAChC,4EAA4E;IAC5E,sEAAsE;IAEtE,kDAAkD;IAClD,2CAA2C;IAC3C,MAAM,YAAY,GAAG,aAAa,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAEhD,2CAA2C;IAC3C,qDAAqD;IACrD,MAAM,OAAO,GAAG,aAAa,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAE3C,+CAA+C;IAC/C,kDAAkD;IAClD,uCAAuC;IACvC,8CAA8C;IAC9C,EAAE;IACF,2DAA2D;IAC3D,2DAA2D;IAE3D,MAAM,sBAAsB,GAAG,gBAAgB,GAAG,GAAG,CAAC;IACtD,MAAM,YAAY,GAAG,aAAa,GAAG,CAAC,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;IAEzE,OAAO;QACL,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACtC,aAAa,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACvC,aAAa,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAClC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC9C,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;KAC5B,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"havsCalculate.d.ts","sourceRoot":"","sources":["../../src/safety/havsCalculate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAgB,MAAM,YAAY,CAAC;AAyEtE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CAwC1D"}
1
+ {"version":3,"file":"havsCalculate.d.ts","sourceRoot":"","sources":["../../src/safety/havsCalculate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAgB,MAAM,YAAY,CAAC;AAwFtE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CAwC1D"}
@@ -1,8 +1,23 @@
1
- // Exposure Action Value (EAV) = 2.5 m/s²
1
+ /**
2
+ * Daily exposure action value (EAV) for hand-arm vibration, in m/s² A(8).
3
+ *
4
+ * @reference Directive 2002/44/EC, Article 3(1)(b): "the daily exposure action value
5
+ * standardised to an eight-hour reference period shall be 2,5 m/s2".
6
+ */
2
7
  const EAV = 2.5;
3
- // Exposure Limit Value (ELV) = 5.0 m/s²
8
+ /**
9
+ * Daily exposure limit value (ELV) for hand-arm vibration, in m/s² A(8).
10
+ *
11
+ * @reference Directive 2002/44/EC, Article 3(1)(a): "the daily exposure limit value
12
+ * standardised to an eight-hour reference period shall be 5 m/s2".
13
+ *
14
+ * Both values are those of the European regime and are what `determineStatus` compares
15
+ * against. Other jurisdictions set their own figures — notably the ACGIH TLV, which is
16
+ * stated on a different basis — so a status returned here is a statement about the
17
+ * Directive, not a universal one.
18
+ */
4
19
  const ELV = 5.0;
5
- // Reference period T0 = 8 hours
20
+ /** Reference period T0 for A(8), in hours, per the same article. */
6
21
  const T0 = 8;
7
22
  /**
8
23
  * Calculate partial A(8) exposure for a single tool
@@ -1 +1 @@
1
- {"version":3,"file":"havsCalculate.js","sourceRoot":"","sources":["../../src/safety/havsCalculate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"havsCalculate.js","sourceRoot":"","sources":["../../src/safety/havsCalculate.ts"],"names":[],"mappings":"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"}
@@ -13,11 +13,18 @@ import type { WbgtInput, WbgtResult } from './types.js';
13
13
  * - Tg = Globe Temperature (C)
14
14
  * - Ta = Dry Bulb / Air Temperature (C)
15
15
  *
16
+ * The weightings are those of the index itself, not a choice made here.
17
+ *
18
+ * @reference ISO 7243:2017, WBGT index for the assessment of heat stress.
19
+ *
16
20
  * Status is determined by comparing WBGT to threshold:
17
21
  * - safe: WBGT < threshold - 2
18
22
  * - caution: threshold - 2 <= WBGT <= threshold
19
23
  * - danger: WBGT > threshold
20
24
  *
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.
27
+ *
21
28
  * @param input - WBGT input parameters
22
29
  * @returns WBGT result with index, threshold, and status
23
30
  */
@@ -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;AAc3E;;;;;;;;;;;;;;;;;;;;;GAqBG;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;AA0B3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CAyC1D"}
@@ -1,5 +1,17 @@
1
- // WBGT threshold values based on workload and acclimatization status
2
- // Based on ACGIH TLV guidelines
1
+ /**
2
+ * WBGT limits in degrees Celsius by workload and acclimatization state.
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).
10
+ *
11
+ * They are left unchanged, because substituting one unverified figure for another is not
12
+ * an improvement. Treat a status returned from them as a screening indication and check
13
+ * it against whichever scheme applies where the work is done, rather than as a limit.
14
+ */
3
15
  const WBGT_THRESHOLDS = {
4
16
  light: { acclimatized: 31, unacclimatized: 28 },
5
17
  moderate: { acclimatized: 28, unacclimatized: 25 },
@@ -20,11 +32,18 @@ const WBGT_THRESHOLDS = {
20
32
  * - Tg = Globe Temperature (C)
21
33
  * - Ta = Dry Bulb / Air Temperature (C)
22
34
  *
35
+ * The weightings are those of the index itself, not a choice made here.
36
+ *
37
+ * @reference ISO 7243:2017, WBGT index for the assessment of heat stress.
38
+ *
23
39
  * Status is determined by comparing WBGT to threshold:
24
40
  * - safe: WBGT < threshold - 2
25
41
  * - caution: threshold - 2 <= WBGT <= threshold
26
42
  * - danger: WBGT > threshold
27
43
  *
44
+ * 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.
46
+ *
28
47
  * @param input - WBGT input parameters
29
48
  * @returns WBGT result with index, threshold, and status
30
49
  */
@@ -1 +1 @@
1
- {"version":3,"file":"wbgtCalculate.js","sourceRoot":"","sources":["../../src/safety/wbgtCalculate.ts"],"names":[],"mappings":"AAEA,qEAAqE;AACrE,gCAAgC;AAChC,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;;;;;;;;;;;;;;;;;;;;;GAqBG;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;;;;;;;;;;;;;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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "formulab",
3
- "version": "0.26.0",
3
+ "version": "0.26.2",
4
4
  "description": "Manufacturing & Engineering calculation formulas library - 211 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",