formulab 0.47.0 → 0.48.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 +66 -0
- package/dist/metal/flangeSpec.d.ts +9 -0
- package/dist/metal/flangeSpec.d.ts.map +1 -1
- package/dist/metal/flangeSpec.js +11 -0
- package/dist/metal/flangeSpec.js.map +1 -1
- package/dist/metal/index.d.ts +2 -2
- package/dist/metal/index.d.ts.map +1 -1
- package/dist/metal/index.js +2 -2
- package/dist/metal/index.js.map +1 -1
- package/dist/metal/pipeSpec.d.ts +11 -7
- package/dist/metal/pipeSpec.d.ts.map +1 -1
- package/dist/metal/pipeSpec.js +30 -0
- package/dist/metal/pipeSpec.js.map +1 -1
- package/dist/safety/arcFlash.d.ts +20 -8
- package/dist/safety/arcFlash.d.ts.map +1 -1
- package/dist/safety/arcFlash.js +87 -58
- package/dist/safety/arcFlash.js.map +1 -1
- package/dist/safety/fallClearance.d.ts +24 -20
- package/dist/safety/fallClearance.d.ts.map +1 -1
- package/dist/safety/fallClearance.js +56 -92
- package/dist/safety/fallClearance.js.map +1 -1
- package/dist/safety/index.d.ts +1 -1
- package/dist/safety/index.d.ts.map +1 -1
- package/dist/safety/ladderAngle.d.ts +3 -2
- package/dist/safety/ladderAngle.d.ts.map +1 -1
- package/dist/safety/ladderAngle.js +7 -4
- package/dist/safety/ladderAngle.js.map +1 -1
- package/dist/safety/types.d.ts +19 -8
- package/dist/safety/types.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,72 @@ 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
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.48.1] - 2026-09-24
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **`safety/fallClearance()` warned about compliant values.** OSHA 1926.502(d)(16) states each limit
|
|
15
|
+
in both feet and metres: "6 feet (1.8 m)" for free fall and "3.5 feet (1.07 m)" for deceleration.
|
|
16
|
+
The two do not convert exactly. 0.48.0 compared against the exact feet value, so a deceleration
|
|
17
|
+
distance of exactly 1.07 m — the standard's own metric figure and the usual absorber rating — was
|
|
18
|
+
reported as over the limit. A value is now within the limit if it meets either stated figure.
|
|
19
|
+
|
|
20
|
+
## [0.48.0] - 2026-09-24
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- **Breaking — `ArcFlashInput`**: `enclosureType` is replaced by `equipment: 'open' | 'switchgear' |
|
|
25
|
+
'mcc' | 'panel' | 'cable'` (IEEE 1584-2002 Table 4 classes; `box` becomes `switchgear`), and
|
|
26
|
+
`grounding: 'grounded' | 'ungrounded'` is now required (use `ungrounded` for high-resistance
|
|
27
|
+
grounded systems).
|
|
28
|
+
- `arcFlash()` throws a `RangeError` for inputs outside the model range (208 V–15 kV, 0.7–106 kA,
|
|
29
|
+
13–152 mm gap) and for MCC or panel above 1 kV, where Table 4 gives no distance exponent.
|
|
30
|
+
- `ArcFlashResult` gains `normalizedIncidentEnergy`, `distanceExponent`, `standard`, and, at 1 kV or
|
|
31
|
+
below, `reducedArcCurrent` (85 % of the arcing current, which the guide asks to evaluate as well).
|
|
32
|
+
`arcCurrent` now has three decimal places.
|
|
33
|
+
- **Breaking — `fallClearance()`**: every height is now measured from the worker's feet, and each
|
|
34
|
+
height means one thing. `FallClearanceInput` now takes `dRingHeight` (was `workerHeight`, whose
|
|
35
|
+
comment already said D-ring height), `anchorAboveFeet` (was `anchorHeight`), and an optional
|
|
36
|
+
`workingHeight`. `rescueClearance` is removed. `FallClearanceResult` now returns `requiredClearance`
|
|
37
|
+
(was `minimumHeight`), `clearanceBelowAnchor` (the "18.5 ft" figure) and `freeFallDistance`.
|
|
38
|
+
`clearanceAboveObstacle` and `isAdequate` are `null` when `workingHeight` is not given.
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- **`safety/arcFlash()` now implements IEEE 1584-2002 as published.** The function said it followed
|
|
43
|
+
IEEE 1584-2018 but used the 2002 equations, and it got several of those wrong:
|
|
44
|
+
- The low-voltage arcing current left out K (−0.153 open, −0.097 box), so it was about 25 % too high.
|
|
45
|
+
- Cf (1.5 at 1 kV or below, 1.0 above) was chosen by enclosure type instead of by voltage.
|
|
46
|
+
- The distance exponent depended only on voltage (1.641 or 0.973). Table 4 gives it per equipment
|
|
47
|
+
class: open air and cable 2.000, switchgear 1.473 or 0.973, MCC and panel 1.641.
|
|
48
|
+
- K2 was always 0, which is the ungrounded value, although a comment called it grounded.
|
|
49
|
+
|
|
50
|
+
Checked against a published IEEE 1584-2002 worked example (Phillips, 480 V panel, 30 kA): arcing
|
|
51
|
+
current 16.761 kA and incident energy 0.969 cal/cm², both matching.
|
|
52
|
+
|
|
53
|
+
- **`safety/fallClearance()` used `anchorHeight` with two meanings.** The minimum height treated it as
|
|
54
|
+
the anchor's height above the feet. The obstacle check treated it as the anchor's height above the
|
|
55
|
+
lower level. As a result:
|
|
56
|
+
- The total fall distance never subtracted the anchor height (4.97 m where the formula gives
|
|
57
|
+
4.82 m).
|
|
58
|
+
- The free-space figure added a 0.9 m "ANSI Z359.4 rescue clearance". No such minimum could be
|
|
59
|
+
confirmed, so it is removed.
|
|
60
|
+
- The obstacle verdict compared numbers measured from different references. For a worker 0.15 m
|
|
61
|
+
below the anchor it reported "5.42 m below obstacle".
|
|
62
|
+
|
|
63
|
+
The verdict now needs the working surface height and is `null` without it. There is a new warning
|
|
64
|
+
when free fall exceeds the OSHA 1926.502(d)(16)(iii) limit of 6 ft. The remaining unsourced warnings
|
|
65
|
+
(lanyard over 1.8 m, worker height range, safety factor under 0.6 m, rescue clearance) are removed. Checked against the widely
|
|
66
|
+
published 18.5 ft figure (6 ft lanyard, 3.5 ft deceleration, 1 ft stretch, 5 ft D-ring height, 3 ft
|
|
67
|
+
safety factor).
|
|
68
|
+
|
|
69
|
+
- **`safety/ladderAngle()` `idealBaseDistance` is a quarter of the ladder's working length**, per OSHA
|
|
70
|
+
29 CFR 1926.1053(b)(5)(i), instead of a quarter of its height. The function's own 75.5° default
|
|
71
|
+
already followed the working-length rule (cos 75.5° ≈ 1/4); a quarter of the height is atan(4) ≈
|
|
72
|
+
75.96°. A 6 m ladder now gives 1.5 m, not 1.45 m.
|
|
73
|
+
|
|
8
74
|
## [0.47.0] - 2026-09-15
|
|
9
75
|
|
|
10
76
|
### Fixed
|
|
@@ -9,5 +9,14 @@ import type { FlangeSpecInput, FlangeSpecResult } from './types.js';
|
|
|
9
9
|
* @param input - Flange standard, pressure class, nominal size
|
|
10
10
|
* @returns Flange dimensions (OD, thickness, bolt pattern, weight)
|
|
11
11
|
*/
|
|
12
|
+
/**
|
|
13
|
+
* NPS designations this table covers, ascending.
|
|
14
|
+
*
|
|
15
|
+
* Exposed for the same reason as `getPipeSizes`: without it a caller building a picker, or a test
|
|
16
|
+
* asserting a property across every row, has to restate the table — and a table's copy is where the
|
|
17
|
+
* two drift apart. Sorted numerically because `Object.keys` returns index-like keys ('1', '2', '10')
|
|
18
|
+
* before the rest, not in declaration order.
|
|
19
|
+
*/
|
|
20
|
+
export declare function getFlangeSizes(): string[];
|
|
12
21
|
export declare function flangeSpec(input: FlangeSpecInput): FlangeSpecResult;
|
|
13
22
|
//# sourceMappingURL=flangeSpec.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flangeSpec.d.ts","sourceRoot":"","sources":["../../src/metal/flangeSpec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAiB,MAAM,YAAY,CAAC;AAoEnF;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB,CA8BnE"}
|
|
1
|
+
{"version":3,"file":"flangeSpec.d.ts","sourceRoot":"","sources":["../../src/metal/flangeSpec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAiB,MAAM,YAAY,CAAC;AAoEnF;;;;;;;;;GASG;AACH;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAEzC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB,CA8BnE"}
|
package/dist/metal/flangeSpec.js
CHANGED
|
@@ -63,6 +63,17 @@ const ASME_B16_5 = {
|
|
|
63
63
|
* @param input - Flange standard, pressure class, nominal size
|
|
64
64
|
* @returns Flange dimensions (OD, thickness, bolt pattern, weight)
|
|
65
65
|
*/
|
|
66
|
+
/**
|
|
67
|
+
* NPS designations this table covers, ascending.
|
|
68
|
+
*
|
|
69
|
+
* Exposed for the same reason as `getPipeSizes`: without it a caller building a picker, or a test
|
|
70
|
+
* asserting a property across every row, has to restate the table — and a table's copy is where the
|
|
71
|
+
* two drift apart. Sorted numerically because `Object.keys` returns index-like keys ('1', '2', '10')
|
|
72
|
+
* before the rest, not in declaration order.
|
|
73
|
+
*/
|
|
74
|
+
export function getFlangeSizes() {
|
|
75
|
+
return Object.keys(ASME_B16_5).sort((a, b) => Number(a) - Number(b));
|
|
76
|
+
}
|
|
66
77
|
export function flangeSpec(input) {
|
|
67
78
|
const { standard, pressureClass, nominalSize } = input;
|
|
68
79
|
if (standard === 'EN_1092_1') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flangeSpec.js","sourceRoot":"","sources":["../../src/metal/flangeSpec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flangeSpec.js","sourceRoot":"","sources":["../../src/metal/flangeSpec.ts"],"names":[],"mappings":"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"}
|
package/dist/metal/index.d.ts
CHANGED
|
@@ -29,6 +29,6 @@ export { weldStrength } from './weldStrength.js';
|
|
|
29
29
|
export { columnBuckling } from './columnBuckling.js';
|
|
30
30
|
export { beamDeflection, beamDeflectionCurve } from './beamDeflection.js';
|
|
31
31
|
export { materialGradeConverter } from './materialGradeConverter.js';
|
|
32
|
-
export { pipeSpec } from './pipeSpec.js';
|
|
33
|
-
export { flangeSpec } from './flangeSpec.js';
|
|
32
|
+
export { pipeSpec, getPipeSizes } from './pipeSpec.js';
|
|
33
|
+
export { flangeSpec, getFlangeSizes } from './flangeSpec.js';
|
|
34
34
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metal/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metal/index.ts"],"names":[],"mappings":"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"}
|
package/dist/metal/index.js
CHANGED
|
@@ -30,6 +30,6 @@ export { weldStrength } from './weldStrength.js';
|
|
|
30
30
|
export { columnBuckling } from './columnBuckling.js';
|
|
31
31
|
export { beamDeflection, beamDeflectionCurve } from './beamDeflection.js';
|
|
32
32
|
export { materialGradeConverter } from './materialGradeConverter.js';
|
|
33
|
-
export { pipeSpec } from './pipeSpec.js';
|
|
34
|
-
export { flangeSpec } from './flangeSpec.js';
|
|
33
|
+
export { pipeSpec, getPipeSizes } from './pipeSpec.js';
|
|
34
|
+
export { flangeSpec, getFlangeSizes } from './flangeSpec.js';
|
|
35
35
|
//# sourceMappingURL=index.js.map
|
package/dist/metal/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metal/index.ts"],"names":[],"mappings":"AAiJA,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE9D,YAAY;AACZ,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metal/index.ts"],"names":[],"mappings":"AAiJA,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE9D,YAAY;AACZ,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/metal/pipeSpec.d.ts
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import type { PipeSpecInput, PipeSpecResult } from './types.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* NPS designations this table covers, **sorted ascending by actual size**.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
5
|
+
* `thread` and `screw` already expose their size lists (`getMetricSizes`, `getUnifiedSizes`,
|
|
6
|
+
* `getDesignations`); this one did not, so a caller building a picker — or a test asserting a
|
|
7
|
+
* property across every row — had to restate the table, which is how a table and its copy drift
|
|
8
|
+
* apart.
|
|
9
|
+
*
|
|
10
|
+
* ⚠️ **The sort is not decoration.** `Object.keys` does not preserve declaration order here: keys
|
|
11
|
+
* that look like array indices (`'1'`, `'2'`, `'10'`) are returned first in numeric order, and only
|
|
12
|
+
* then the rest in insertion order — so the raw key order runs `1, 2, 3, 4, 6, 8, 10, 12, 14, 16,
|
|
13
|
+
* 1/2, 3/4, 1-1/4, …`. A picker built on that order lists 16" before 1/2".
|
|
11
14
|
*/
|
|
15
|
+
export declare function getPipeSizes(): string[];
|
|
12
16
|
export declare function pipeSpec(input: PipeSpecInput): PipeSpecResult;
|
|
13
17
|
//# sourceMappingURL=pipeSpec.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeSpec.d.ts","sourceRoot":"","sources":["../../src/metal/pipeSpec.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAgB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"pipeSpec.d.ts","sourceRoot":"","sources":["../../src/metal/pipeSpec.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAgB,MAAM,YAAY,CAAC;AA6E9E;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAEvC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAuD7D"}
|
package/dist/metal/pipeSpec.js
CHANGED
|
@@ -52,6 +52,36 @@ const STEEL_DENSITY = 7850; // kg/m³
|
|
|
52
52
|
* @param input - Pipe standard, nominal size, and schedule
|
|
53
53
|
* @returns Pipe dimensions (OD, wall thickness, ID, weight, areas)
|
|
54
54
|
*/
|
|
55
|
+
/**
|
|
56
|
+
* Parse an NPS designation to its numeric value in inches.
|
|
57
|
+
*
|
|
58
|
+
* Forms in this table: `'1/2'`, `'3/4'`, `'2'`, `'1-1/4'` (whole-and-fraction, hyphenated).
|
|
59
|
+
*/
|
|
60
|
+
function npsValue(nps) {
|
|
61
|
+
const [whole, fraction] = nps.split('-');
|
|
62
|
+
const base = fraction === undefined && whole.includes('/') ? 0 : Number(whole);
|
|
63
|
+
const frac = fraction ?? (whole.includes('/') ? whole : undefined);
|
|
64
|
+
if (frac === undefined)
|
|
65
|
+
return base;
|
|
66
|
+
const [num, den] = frac.split('/').map(Number);
|
|
67
|
+
return base + num / den;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* NPS designations this table covers, **sorted ascending by actual size**.
|
|
71
|
+
*
|
|
72
|
+
* `thread` and `screw` already expose their size lists (`getMetricSizes`, `getUnifiedSizes`,
|
|
73
|
+
* `getDesignations`); this one did not, so a caller building a picker — or a test asserting a
|
|
74
|
+
* property across every row — had to restate the table, which is how a table and its copy drift
|
|
75
|
+
* apart.
|
|
76
|
+
*
|
|
77
|
+
* ⚠️ **The sort is not decoration.** `Object.keys` does not preserve declaration order here: keys
|
|
78
|
+
* that look like array indices (`'1'`, `'2'`, `'10'`) are returned first in numeric order, and only
|
|
79
|
+
* then the rest in insertion order — so the raw key order runs `1, 2, 3, 4, 6, 8, 10, 12, 14, 16,
|
|
80
|
+
* 1/2, 3/4, 1-1/4, …`. A picker built on that order lists 16" before 1/2".
|
|
81
|
+
*/
|
|
82
|
+
export function getPipeSizes() {
|
|
83
|
+
return Object.keys(PIPE_DATA).sort((a, b) => npsValue(a) - npsValue(b));
|
|
84
|
+
}
|
|
55
85
|
export function pipeSpec(input) {
|
|
56
86
|
const { standard, nominalSize, schedule } = input;
|
|
57
87
|
// Normalize nominal size
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeSpec.js","sourceRoot":"","sources":["../../src/metal/pipeSpec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeSpec.js","sourceRoot":"","sources":["../../src/metal/pipeSpec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,29 @@
|
|
|
1
1
|
import type { ArcFlashInput, ArcFlashResult } from './types.js';
|
|
2
2
|
/**
|
|
3
|
-
* Arc Flash Incident Energy
|
|
3
|
+
* Arc Flash Incident Energy — IEEE 1584-2002 empirical model, PPE category per NFPA 70E
|
|
4
4
|
*
|
|
5
5
|
* @formula
|
|
6
|
-
* -
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* - Arcing current, V ≤ 1 kV:
|
|
7
|
+
* lg Ia = K + 0.662 lg Ibf + 0.0966 V + 0.000526 G + 0.5588 V lg Ibf − 0.00304 G lg Ibf
|
|
8
|
+
* (K = −0.153 open, −0.097 box; V in kV)
|
|
9
|
+
* - Arcing current, 1 kV < V ≤ 15 kV: lg Ia = 0.00402 + 0.983 lg Ibf
|
|
10
|
+
* - Normalized energy (610 mm, 0.2 s): lg En = K1 + K2 + 1.081 lg Ia + 0.0011 G
|
|
11
|
+
* (K1 = −0.792 open, −0.555 box; K2 = 0 ungrounded/high-resistance grounded, −0.113 grounded)
|
|
12
|
+
* - Incident energy: E = Cf × En × (t / 0.2) × (610 / D)^x [cal/cm²]
|
|
13
|
+
* (Cf = 1.5 for V ≤ 1 kV, 1.0 above; x from Table 4 by equipment and voltage class)
|
|
14
|
+
* - Arc flash boundary: DB = [Cf × En × (t / 0.2) × 610^x / 1.2]^(1/x) [mm, at 1.2 cal/cm²]
|
|
15
|
+
* - For V ≤ 1 kV the guide also requires a second evaluation at 85 % of Ia; `reducedArcCurrent`
|
|
16
|
+
* is that current, for reading the protective device's clearing time.
|
|
9
17
|
*
|
|
10
|
-
* @reference IEEE 1584-
|
|
11
|
-
* @reference NFPA 70E
|
|
18
|
+
* @reference IEEE 1584-2002 — Guide for Performing Arc Flash Hazard Calculations, clause 5, Table 4
|
|
19
|
+
* @reference NFPA 70E — PPE categories by incident energy
|
|
20
|
+
* @validation J. Phillips, "Arc Flash Calculation Guide" (Brainfiller), IEEE 1584-2002 worked
|
|
21
|
+
* example: 480 V, 30 kA, 25 mm panel, grounded, 1 cycle, 457.2 mm → Ia 16.761 kA,
|
|
22
|
+
* En 4.82, E 0.969 cal/cm² (4.05 J/cm²) — reproduced to the published digits
|
|
12
23
|
*
|
|
13
|
-
* @throws {RangeError} voltage
|
|
14
|
-
* or
|
|
24
|
+
* @throws {RangeError} a non-positive input; voltage outside 208–15 000 V, bolted fault current
|
|
25
|
+
* outside 0.7–106 kA or gap outside 13–152 mm (the model's fitted range); MCC or panel above 1 kV
|
|
26
|
+
* (no distance exponent in Table 4)
|
|
15
27
|
*/
|
|
16
28
|
export declare function arcFlash(input: ArcFlashInput): ArcFlashResult;
|
|
17
29
|
//# sourceMappingURL=arcFlash.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arcFlash.d.ts","sourceRoot":"","sources":["../../src/safety/arcFlash.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"arcFlash.d.ts","sourceRoot":"","sources":["../../src/safety/arcFlash.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAqB,MAAM,YAAY,CAAC;AA+BnF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CA+E7D"}
|
package/dist/safety/arcFlash.js
CHANGED
|
@@ -1,74 +1,101 @@
|
|
|
1
1
|
import { roundTo } from '../utils.js';
|
|
2
|
+
/** IEEE 1584-2002 model range (clause 4) — the empirical equations were fitted only inside it. */
|
|
3
|
+
const VOLTAGE_RANGE = { min: 208, max: 15000 }; // V
|
|
4
|
+
const BOLTED_FAULT_RANGE = { min: 0.7, max: 106 }; // kA
|
|
5
|
+
const GAP_RANGE = { min: 13, max: 152 }; // mm
|
|
2
6
|
/**
|
|
3
|
-
*
|
|
7
|
+
* Distance exponent x — IEEE 1584-2002 Table 4 ("Factors for equipment and voltage classes").
|
|
8
|
+
* The table gives no MCC/panel row above 1 kV, so those combinations are outside the model.
|
|
9
|
+
*/
|
|
10
|
+
const DISTANCE_EXPONENT = {
|
|
11
|
+
open: { low: 2.0, medium: 2.0 },
|
|
12
|
+
switchgear: { low: 1.473, medium: 0.973 },
|
|
13
|
+
mcc: { low: 1.641, medium: null },
|
|
14
|
+
panel: { low: 1.641, medium: null },
|
|
15
|
+
cable: { low: 2.0, medium: 2.0 },
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Open configuration = no enclosure (open air, cable); box configuration = enclosed equipment.
|
|
19
|
+
* This selects K (arcing current) and K1 (normalized incident energy).
|
|
20
|
+
*/
|
|
21
|
+
const ENCLOSED = {
|
|
22
|
+
open: false,
|
|
23
|
+
switchgear: true,
|
|
24
|
+
mcc: true,
|
|
25
|
+
panel: true,
|
|
26
|
+
cable: false,
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Arc Flash Incident Energy — IEEE 1584-2002 empirical model, PPE category per NFPA 70E
|
|
4
30
|
*
|
|
5
31
|
* @formula
|
|
6
|
-
* -
|
|
7
|
-
*
|
|
8
|
-
*
|
|
32
|
+
* - Arcing current, V ≤ 1 kV:
|
|
33
|
+
* lg Ia = K + 0.662 lg Ibf + 0.0966 V + 0.000526 G + 0.5588 V lg Ibf − 0.00304 G lg Ibf
|
|
34
|
+
* (K = −0.153 open, −0.097 box; V in kV)
|
|
35
|
+
* - Arcing current, 1 kV < V ≤ 15 kV: lg Ia = 0.00402 + 0.983 lg Ibf
|
|
36
|
+
* - Normalized energy (610 mm, 0.2 s): lg En = K1 + K2 + 1.081 lg Ia + 0.0011 G
|
|
37
|
+
* (K1 = −0.792 open, −0.555 box; K2 = 0 ungrounded/high-resistance grounded, −0.113 grounded)
|
|
38
|
+
* - Incident energy: E = Cf × En × (t / 0.2) × (610 / D)^x [cal/cm²]
|
|
39
|
+
* (Cf = 1.5 for V ≤ 1 kV, 1.0 above; x from Table 4 by equipment and voltage class)
|
|
40
|
+
* - Arc flash boundary: DB = [Cf × En × (t / 0.2) × 610^x / 1.2]^(1/x) [mm, at 1.2 cal/cm²]
|
|
41
|
+
* - For V ≤ 1 kV the guide also requires a second evaluation at 85 % of Ia; `reducedArcCurrent`
|
|
42
|
+
* is that current, for reading the protective device's clearing time.
|
|
9
43
|
*
|
|
10
|
-
* @reference IEEE 1584-
|
|
11
|
-
* @reference NFPA 70E
|
|
44
|
+
* @reference IEEE 1584-2002 — Guide for Performing Arc Flash Hazard Calculations, clause 5, Table 4
|
|
45
|
+
* @reference NFPA 70E — PPE categories by incident energy
|
|
46
|
+
* @validation J. Phillips, "Arc Flash Calculation Guide" (Brainfiller), IEEE 1584-2002 worked
|
|
47
|
+
* example: 480 V, 30 kA, 25 mm panel, grounded, 1 cycle, 457.2 mm → Ia 16.761 kA,
|
|
48
|
+
* En 4.82, E 0.969 cal/cm² (4.05 J/cm²) — reproduced to the published digits
|
|
12
49
|
*
|
|
13
|
-
* @throws {RangeError} voltage
|
|
14
|
-
* or
|
|
50
|
+
* @throws {RangeError} a non-positive input; voltage outside 208–15 000 V, bolted fault current
|
|
51
|
+
* outside 0.7–106 kA or gap outside 13–152 mm (the model's fitted range); MCC or panel above 1 kV
|
|
52
|
+
* (no distance exponent in Table 4)
|
|
15
53
|
*/
|
|
16
54
|
export function arcFlash(input) {
|
|
17
|
-
const { voltage, boltedFaultCurrent, workingDistance, faultClearingTime, gapBetweenConductors,
|
|
18
|
-
if (voltage <= 0)
|
|
55
|
+
const { voltage, boltedFaultCurrent, workingDistance, faultClearingTime, gapBetweenConductors, equipment, grounding } = input;
|
|
56
|
+
if (voltage <= 0)
|
|
19
57
|
throw new RangeError('voltage must be greater than 0');
|
|
20
|
-
|
|
21
|
-
if (boltedFaultCurrent <= 0) {
|
|
58
|
+
if (boltedFaultCurrent <= 0)
|
|
22
59
|
throw new RangeError('boltedFaultCurrent must be greater than 0');
|
|
23
|
-
|
|
24
|
-
if (workingDistance <= 0) {
|
|
60
|
+
if (workingDistance <= 0)
|
|
25
61
|
throw new RangeError('workingDistance must be greater than 0');
|
|
26
|
-
|
|
27
|
-
if (faultClearingTime <= 0) {
|
|
62
|
+
if (faultClearingTime <= 0)
|
|
28
63
|
throw new RangeError('faultClearingTime must be greater than 0');
|
|
29
|
-
|
|
30
|
-
if (gapBetweenConductors <= 0) {
|
|
64
|
+
if (gapBetweenConductors <= 0)
|
|
31
65
|
throw new RangeError('gapBetweenConductors must be greater than 0');
|
|
66
|
+
if (voltage < VOLTAGE_RANGE.min || voltage > VOLTAGE_RANGE.max) {
|
|
67
|
+
throw new RangeError(`voltage must be within ${VOLTAGE_RANGE.min}–${VOLTAGE_RANGE.max} V (IEEE 1584-2002 model range)`);
|
|
32
68
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const G = gapBetweenConductors; // mm
|
|
36
|
-
const t = faultClearingTime; // seconds
|
|
37
|
-
const D = workingDistance; // mm
|
|
38
|
-
// Enclosure correction factors
|
|
39
|
-
const enclosureCf = {
|
|
40
|
-
open: 1.0,
|
|
41
|
-
box: 1.5,
|
|
42
|
-
mcc: 1.5,
|
|
43
|
-
panel: 1.5,
|
|
44
|
-
cable: 1.0,
|
|
45
|
-
};
|
|
46
|
-
const Cf = enclosureCf[enclosureType] ?? 1.0;
|
|
47
|
-
// Distance exponents by voltage
|
|
48
|
-
const distanceExponent = V <= 1000 ? 1.641 : 0.973;
|
|
49
|
-
// Arcing current estimation (simplified IEEE 1584)
|
|
50
|
-
let Ia;
|
|
51
|
-
if (V <= 1000) {
|
|
52
|
-
// Low voltage
|
|
53
|
-
const logIa = 0.662 * Math.log10(Ibf) + 0.0966 * (V / 1000) + 0.000526 * G + 0.5588 * (V / 1000) * Math.log10(Ibf) - 0.00304 * G * Math.log10(Ibf);
|
|
54
|
-
Ia = Math.pow(10, logIa);
|
|
69
|
+
if (boltedFaultCurrent < BOLTED_FAULT_RANGE.min || boltedFaultCurrent > BOLTED_FAULT_RANGE.max) {
|
|
70
|
+
throw new RangeError(`boltedFaultCurrent must be within ${BOLTED_FAULT_RANGE.min}–${BOLTED_FAULT_RANGE.max} kA (IEEE 1584-2002 model range)`);
|
|
55
71
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const logIa = 0.00402 + 0.983 * Math.log10(Ibf);
|
|
59
|
-
Ia = Math.pow(10, logIa);
|
|
72
|
+
if (gapBetweenConductors < GAP_RANGE.min || gapBetweenConductors > GAP_RANGE.max) {
|
|
73
|
+
throw new RangeError(`gapBetweenConductors must be within ${GAP_RANGE.min}–${GAP_RANGE.max} mm (IEEE 1584-2002 model range)`);
|
|
60
74
|
}
|
|
61
|
-
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
const
|
|
70
|
-
const
|
|
71
|
-
|
|
75
|
+
const lowVoltage = voltage <= 1000;
|
|
76
|
+
const x = lowVoltage ? DISTANCE_EXPONENT[equipment].low : DISTANCE_EXPONENT[equipment].medium;
|
|
77
|
+
if (x === null) {
|
|
78
|
+
throw new RangeError(`equipment '${equipment}' has no distance exponent above 1 kV in IEEE 1584-2002 Table 4`);
|
|
79
|
+
}
|
|
80
|
+
const V = voltage / 1000; // kV
|
|
81
|
+
const G = gapBetweenConductors; // mm
|
|
82
|
+
const t = faultClearingTime; // s
|
|
83
|
+
const D = workingDistance; // mm
|
|
84
|
+
const lgIbf = Math.log10(boltedFaultCurrent);
|
|
85
|
+
const enclosed = ENCLOSED[equipment];
|
|
86
|
+
const K = enclosed ? -0.097 : -0.153;
|
|
87
|
+
const lgIa = lowVoltage
|
|
88
|
+
? K + 0.662 * lgIbf + 0.0966 * V + 0.000526 * G + 0.5588 * V * lgIbf - 0.00304 * G * lgIbf
|
|
89
|
+
: 0.00402 + 0.983 * lgIbf;
|
|
90
|
+
const Ia = Math.pow(10, lgIa);
|
|
91
|
+
const K1 = enclosed ? -0.555 : -0.792;
|
|
92
|
+
const K2 = grounding === 'grounded' ? -0.113 : 0;
|
|
93
|
+
const En = Math.pow(10, K1 + K2 + 1.081 * Math.log10(Ia) + 0.0011 * G);
|
|
94
|
+
const Cf = lowVoltage ? 1.5 : 1.0;
|
|
95
|
+
const scaled = Cf * En * (t / 0.2);
|
|
96
|
+
const E = scaled * Math.pow(610 / D, x);
|
|
97
|
+
const AFB = Math.pow((scaled * Math.pow(610, x)) / 1.2, 1 / x);
|
|
98
|
+
// PPE category per NFPA 70E incident-energy bands
|
|
72
99
|
let ppeCategory;
|
|
73
100
|
if (E <= 1.2)
|
|
74
101
|
ppeCategory = 0;
|
|
@@ -80,7 +107,6 @@ export function arcFlash(input) {
|
|
|
80
107
|
ppeCategory = 3;
|
|
81
108
|
else
|
|
82
109
|
ppeCategory = 4;
|
|
83
|
-
// Hazard level
|
|
84
110
|
let hazardLevel;
|
|
85
111
|
if (E <= 1.2)
|
|
86
112
|
hazardLevel = 'safe';
|
|
@@ -88,7 +114,6 @@ export function arcFlash(input) {
|
|
|
88
114
|
hazardLevel = 'danger';
|
|
89
115
|
else
|
|
90
116
|
hazardLevel = 'extreme';
|
|
91
|
-
// Required PPE description
|
|
92
117
|
const ppeDescriptions = {
|
|
93
118
|
0: 'No PPE required (E ≤ 1.2 cal/cm²)',
|
|
94
119
|
1: 'Arc-rated shirt, pants, safety glasses (4 cal/cm²)',
|
|
@@ -97,12 +122,16 @@ export function arcFlash(input) {
|
|
|
97
122
|
4: 'Arc flash suit rated > 25 cal/cm² (40 cal/cm²)',
|
|
98
123
|
};
|
|
99
124
|
return {
|
|
100
|
-
arcCurrent: roundTo(Ia,
|
|
125
|
+
arcCurrent: roundTo(Ia, 3),
|
|
126
|
+
...(lowVoltage ? { reducedArcCurrent: roundTo(0.85 * Ia, 3) } : {}),
|
|
127
|
+
normalizedIncidentEnergy: roundTo(En, 3),
|
|
101
128
|
incidentEnergy: roundTo(E, 2),
|
|
102
129
|
arcFlashBoundary: roundTo(AFB, 0),
|
|
130
|
+
distanceExponent: x,
|
|
103
131
|
ppeCategory,
|
|
104
132
|
hazardLevel,
|
|
105
133
|
requiredPPE: ppeDescriptions[ppeCategory],
|
|
134
|
+
standard: 'IEEE 1584-2002',
|
|
106
135
|
};
|
|
107
136
|
}
|
|
108
137
|
//# sourceMappingURL=arcFlash.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arcFlash.js","sourceRoot":"","sources":["../../src/safety/arcFlash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC
|
|
1
|
+
{"version":3,"file":"arcFlash.js","sourceRoot":"","sources":["../../src/safety/arcFlash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC,kGAAkG;AAClG,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAW,CAAC,CAAC,IAAI;AAC7D,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAW,CAAC,CAAC,KAAK;AACjE,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAW,CAAC,CAAC,KAAK;AAEvD;;;GAGG;AACH,MAAM,iBAAiB,GAAsE;IAC3F,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAC/B,UAAU,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;IACzC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;IACjC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;IACnC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;CACjC,CAAC;AAEF;;;GAGG;AACH,MAAM,QAAQ,GAAuC;IACnD,IAAI,EAAE,KAAK;IACX,UAAU,EAAE,IAAI;IAChB,GAAG,EAAE,IAAI;IACT,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;CACb,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAE9H,IAAI,OAAO,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,gCAAgC,CAAC,CAAC;IACzE,IAAI,kBAAkB,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,2CAA2C,CAAC,CAAC;IAC/F,IAAI,eAAe,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,wCAAwC,CAAC,CAAC;IACzF,IAAI,iBAAiB,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,0CAA0C,CAAC,CAAC;IAC7F,IAAI,oBAAoB,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,6CAA6C,CAAC,CAAC;IACnG,IAAI,OAAO,GAAG,aAAa,CAAC,GAAG,IAAI,OAAO,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC;QAC/D,MAAM,IAAI,UAAU,CAAC,0BAA0B,aAAa,CAAC,GAAG,IAAI,aAAa,CAAC,GAAG,iCAAiC,CAAC,CAAC;IAC1H,CAAC;IACD,IAAI,kBAAkB,GAAG,kBAAkB,CAAC,GAAG,IAAI,kBAAkB,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC;QAC/F,MAAM,IAAI,UAAU,CAAC,qCAAqC,kBAAkB,CAAC,GAAG,IAAI,kBAAkB,CAAC,GAAG,kCAAkC,CAAC,CAAC;IAChJ,CAAC;IACD,IAAI,oBAAoB,GAAG,SAAS,CAAC,GAAG,IAAI,oBAAoB,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC;QACjF,MAAM,IAAI,UAAU,CAAC,uCAAuC,SAAS,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,kCAAkC,CAAC,CAAC;IAChI,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,IAAI,IAAI,CAAC;IACnC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IAC9F,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACf,MAAM,IAAI,UAAU,CAAC,cAAc,SAAS,iEAAiE,CAAC,CAAC;IACjH,CAAC;IAED,MAAM,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,KAAK;IAC/B,MAAM,CAAC,GAAG,oBAAoB,CAAC,CAAC,KAAK;IACrC,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,IAAI;IACjC,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,KAAK;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAErC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACrC,MAAM,IAAI,GAAG,UAAU;QACrB,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,OAAO,GAAG,CAAC,GAAG,KAAK;QAC1F,CAAC,CAAC,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;IAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAE9B,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACtC,MAAM,EAAE,GAAG,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;IAEvE,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAClC,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAE/D,kDAAkD;IAClD,IAAI,WAA0C,CAAC;IAC/C,IAAI,CAAC,IAAI,GAAG;QAAE,WAAW,GAAG,CAAC,CAAC;SACzB,IAAI,CAAC,IAAI,CAAC;QAAE,WAAW,GAAG,CAAC,CAAC;SAC5B,IAAI,CAAC,IAAI,CAAC;QAAE,WAAW,GAAG,CAAC,CAAC;SAC5B,IAAI,CAAC,IAAI,EAAE;QAAE,WAAW,GAAG,CAAC,CAAC;;QAC7B,WAAW,GAAG,CAAC,CAAC;IAErB,IAAI,WAA0C,CAAC;IAC/C,IAAI,CAAC,IAAI,GAAG;QAAE,WAAW,GAAG,MAAM,CAAC;SAC9B,IAAI,CAAC,IAAI,EAAE;QAAE,WAAW,GAAG,QAAQ,CAAC;;QACpC,WAAW,GAAG,SAAS,CAAC;IAE7B,MAAM,eAAe,GAA2B;QAC9C,CAAC,EAAE,mCAAmC;QACtC,CAAC,EAAE,oDAAoD;QACvD,CAAC,EAAE,kDAAkD;QACrD,CAAC,EAAE,kDAAkD;QACrD,CAAC,EAAE,gDAAgD;KACpD,CAAC;IAEF,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1B,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,wBAAwB,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACxC,cAAc,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7B,gBAAgB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACjC,gBAAgB,EAAE,CAAC;QACnB,WAAW;QACX,WAAW;QACX,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC;QACzC,QAAQ,EAAE,gBAAgB;KAC3B,CAAC;AACJ,CAAC"}
|
|
@@ -1,28 +1,32 @@
|
|
|
1
1
|
import type { FallClearanceInput, FallClearanceResult } from './types.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* Implements ANSI Z359.1 and Z359.4 guidelines.
|
|
3
|
+
* Fall clearance for a personal fall arrest system on a fixed-length shock-absorbing lanyard.
|
|
5
4
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* Every height is measured from the worker's feet on the working surface, the way the anchor is
|
|
6
|
+
* located on site. After arrest the D-ring hangs lanyard + deceleration + harness stretch below the
|
|
7
|
+
* anchor and the feet a further D-ring height below that.
|
|
9
8
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
9
|
+
* @formula
|
|
10
|
+
* - Clearance below anchor = L + DD + HS + H_D + SF — the "18.5 ft" figure for a 6 ft lanyard
|
|
11
|
+
* - Total fall distance (feet travel) = L + DD + HS + H_D − A
|
|
12
|
+
* - Required clearance below the working surface = total fall distance + SF
|
|
13
|
+
* - Free fall = max(0, L + H_D − A) — the lanyard pays out before the absorber engages
|
|
14
|
+
* - With a working height W above the lower level: clearance above obstacle =
|
|
15
|
+
* W − obstacle height − required clearance, and the system is adequate when it is ≥ 0
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
17
|
+
* (L lanyard, DD deceleration distance, HS harness stretch/D-ring shift, H_D D-ring height above
|
|
18
|
+
* the feet, A anchor height above the feet, SF safety factor)
|
|
19
|
+
*
|
|
20
|
+
* @reference OSHA 29 CFR 1926.502(d)(16)(iii)–(iv) — free fall ≤ 1.8 m (6 ft), deceleration ≤ 1.07 m
|
|
21
|
+
* (3.5 ft), and the employee must not contact any lower level
|
|
22
|
+
* @reference ANSI/ASSP Z359 fall-arrest clearance practice
|
|
23
|
+
* @validation Clearance below anchor for a 6 ft lanyard, 3.5 ft deceleration, 1 ft harness stretch,
|
|
24
|
+
* 5 ft D-ring height and 3 ft safety factor = 18.5 ft (the widely published manufacturer and
|
|
25
|
+
* ARTBA worked figure)
|
|
26
|
+
*
|
|
27
|
+
* @throws {RangeError} dRingHeight ≤ 0, or lanyardLength, decelerationDistance, harnessStretch,
|
|
28
|
+
* safetyFactor, workingHeight or obstacleHeight is negative
|
|
29
|
+
* @remarks anchorAboveFeet may be negative (an anchor below the feet); the free-fall warning reports it.
|
|
26
30
|
*/
|
|
27
31
|
export declare function fallClearance(input: FallClearanceInput): FallClearanceResult;
|
|
28
32
|
//# sourceMappingURL=fallClearance.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fallClearance.d.ts","sourceRoot":"","sources":["../../src/safety/fallClearance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"fallClearance.d.ts","sourceRoot":"","sources":["../../src/safety/fallClearance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAa1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CA+C5E"}
|
|
@@ -1,109 +1,73 @@
|
|
|
1
1
|
import { roundTo } from '../utils.js';
|
|
2
|
+
/*
|
|
3
|
+
* OSHA 29 CFR 1926.502(d)(16) states each limit in both units — "6 feet (1.8 m)", "3.5 feet
|
|
4
|
+
* (1.07 m)" — and the two do not convert exactly (6 ft = 1.8288 m, 3.5 ft = 1.0668 m). A value
|
|
5
|
+
* that meets either statement complies, so the limit is the larger of the two: a 6 ft lanyard's
|
|
6
|
+
* free fall and a 1.07 m absorber rating are both within the rule.
|
|
7
|
+
*/
|
|
8
|
+
/** OSHA 29 CFR 1926.502(d)(16)(iii) — free fall. */
|
|
9
|
+
const MAX_FREE_FALL = Math.max(6 * 0.3048, 1.8); // m
|
|
10
|
+
/** OSHA 29 CFR 1926.502(d)(16)(iv) — deceleration distance. */
|
|
11
|
+
const MAX_DECELERATION = Math.max(3.5 * 0.3048, 1.07); // m
|
|
2
12
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
13
|
+
* Fall clearance for a personal fall arrest system on a fixed-length shock-absorbing lanyard.
|
|
14
|
+
*
|
|
15
|
+
* Every height is measured from the worker's feet on the working surface, the way the anchor is
|
|
16
|
+
* located on site. After arrest the D-ring hangs lanyard + deceleration + harness stretch below the
|
|
17
|
+
* anchor and the feet a further D-ring height below that.
|
|
18
|
+
*
|
|
19
|
+
* @formula
|
|
20
|
+
* - Clearance below anchor = L + DD + HS + H_D + SF — the "18.5 ft" figure for a 6 ft lanyard
|
|
21
|
+
* - Total fall distance (feet travel) = L + DD + HS + H_D − A
|
|
22
|
+
* - Required clearance below the working surface = total fall distance + SF
|
|
23
|
+
* - Free fall = max(0, L + H_D − A) — the lanyard pays out before the absorber engages
|
|
24
|
+
* - With a working height W above the lower level: clearance above obstacle =
|
|
25
|
+
* W − obstacle height − required clearance, and the system is adequate when it is ≥ 0
|
|
5
26
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* Clearance Above Obstacle = Anchor Height - (Total Fall Distance + Safety Factor) - Obstacle Height
|
|
27
|
+
* (L lanyard, DD deceleration distance, HS harness stretch/D-ring shift, H_D D-ring height above
|
|
28
|
+
* the feet, A anchor height above the feet, SF safety factor)
|
|
9
29
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
30
|
+
* @reference OSHA 29 CFR 1926.502(d)(16)(iii)–(iv) — free fall ≤ 1.8 m (6 ft), deceleration ≤ 1.07 m
|
|
31
|
+
* (3.5 ft), and the employee must not contact any lower level
|
|
32
|
+
* @reference ANSI/ASSP Z359 fall-arrest clearance practice
|
|
33
|
+
* @validation Clearance below anchor for a 6 ft lanyard, 3.5 ft deceleration, 1 ft harness stretch,
|
|
34
|
+
* 5 ft D-ring height and 3 ft safety factor = 18.5 ft (the widely published manufacturer and
|
|
35
|
+
* ARTBA worked figure)
|
|
16
36
|
*
|
|
17
|
-
* @
|
|
18
|
-
*
|
|
19
|
-
* @
|
|
20
|
-
* deceleration distance to 3.5 ft (1.07 m)
|
|
21
|
-
* @throws {RangeError} workerHeight ≤ 0, or any distance (lanyardLength,
|
|
22
|
-
* decelerationDistance, harnessStretch, safetyFactor, rescueClearance,
|
|
23
|
-
* obstacleHeight) is negative.
|
|
24
|
-
* @remarks anchorHeight ≤ 0 is NOT rejected: it is a valid (dangerous) geometry
|
|
25
|
-
* that the function reports as isAdequate=false with a warning.
|
|
37
|
+
* @throws {RangeError} dRingHeight ≤ 0, or lanyardLength, decelerationDistance, harnessStretch,
|
|
38
|
+
* safetyFactor, workingHeight or obstacleHeight is negative
|
|
39
|
+
* @remarks anchorAboveFeet may be negative (an anchor below the feet); the free-fall warning reports it.
|
|
26
40
|
*/
|
|
27
41
|
export function fallClearance(input) {
|
|
28
|
-
const { lanyardLength, decelerationDistance, harnessStretch,
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
if (
|
|
32
|
-
throw new RangeError('
|
|
33
|
-
}
|
|
34
|
-
if (lanyardLength < 0 ||
|
|
35
|
-
decelerationDistance < 0 ||
|
|
36
|
-
harnessStretch < 0 ||
|
|
37
|
-
safetyFactor < 0 ||
|
|
38
|
-
rescueClearance < 0 ||
|
|
39
|
-
obstacleHeight < 0) {
|
|
40
|
-
throw new RangeError('lanyardLength, decelerationDistance, harnessStretch, safetyFactor, rescueClearance, and obstacleHeight must not be negative');
|
|
42
|
+
const { lanyardLength: L, decelerationDistance: DD, harnessStretch: HS, dRingHeight: HD, anchorAboveFeet: A, safetyFactor: SF, workingHeight, obstacleHeight = 0, } = input;
|
|
43
|
+
if (HD <= 0)
|
|
44
|
+
throw new RangeError('dRingHeight must be greater than 0');
|
|
45
|
+
if (L < 0 || DD < 0 || HS < 0 || SF < 0 || obstacleHeight < 0 || (workingHeight !== undefined && workingHeight < 0)) {
|
|
46
|
+
throw new RangeError('lanyardLength, decelerationDistance, harnessStretch, safetyFactor, workingHeight and obstacleHeight must not be negative');
|
|
41
47
|
}
|
|
48
|
+
const clearanceBelowAnchor = L + DD + HS + HD + SF;
|
|
49
|
+
const totalFallDistance = L + DD + HS + HD - A;
|
|
50
|
+
const requiredClearance = totalFallDistance + SF;
|
|
51
|
+
const freeFallDistance = Math.max(0, L + HD - A);
|
|
52
|
+
// Judged on the reported (rounded) margin so the verdict and the number shown next to it agree.
|
|
53
|
+
const clearanceAboveObstacle = workingHeight === undefined ? null : roundTo(workingHeight - obstacleHeight - requiredClearance, 3);
|
|
54
|
+
const isAdequate = clearanceAboveObstacle === null ? null : clearanceAboveObstacle >= 0;
|
|
42
55
|
const warnings = [];
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
warnings.push('Lanyard exceeds standard 1.8m (6ft) length');
|
|
46
|
-
}
|
|
47
|
-
if (decelerationDistance > 1.07) {
|
|
48
|
-
warnings.push('Deceleration distance exceeds OSHA maximum of 1.07m (3.5ft)');
|
|
49
|
-
}
|
|
50
|
-
if (workerHeight < 1.2 || workerHeight > 2.0) {
|
|
51
|
-
warnings.push('Worker height outside typical range (1.2-2.0m)');
|
|
52
|
-
}
|
|
53
|
-
if (safetyFactor < 0.6) {
|
|
54
|
-
warnings.push('Safety factor below recommended minimum (0.6m/2ft)');
|
|
55
|
-
}
|
|
56
|
-
if (rescueClearance < 0.9) {
|
|
57
|
-
warnings.push('Rescue clearance below ANSI Z359.4 minimum (0.9m/3ft)');
|
|
58
|
-
}
|
|
59
|
-
// Calculate total fall distance (before arrest)
|
|
60
|
-
// This is the distance worker falls before deceleration device fully activates
|
|
61
|
-
const totalFallDistance = lanyardLength +
|
|
62
|
-
decelerationDistance +
|
|
63
|
-
harnessStretch +
|
|
64
|
-
workerHeight;
|
|
65
|
-
// Calculate minimum height requirement
|
|
66
|
-
// This is the minimum anchor height needed to prevent ground contact
|
|
67
|
-
const minimumHeight = totalFallDistance + safetyFactor - anchorHeight;
|
|
68
|
-
// Calculate total free space required below anchor
|
|
69
|
-
// Includes rescue clearance for post-fall positioning
|
|
70
|
-
const freeSpaceRequired = totalFallDistance + safetyFactor + rescueClearance;
|
|
71
|
-
// Calculate clearance above obstacle
|
|
72
|
-
// Positive = safe clearance exists
|
|
73
|
-
// Negative = worker would contact obstacle
|
|
74
|
-
const workerLowestPoint = anchorHeight - (totalFallDistance + safetyFactor);
|
|
75
|
-
const clearanceAboveObstacle = workerLowestPoint - obstacleHeight;
|
|
76
|
-
// Determine if the system is adequate
|
|
77
|
-
let isAdequate = null;
|
|
78
|
-
if (anchorHeight <= 0) {
|
|
79
|
-
// Anchor at or below feet level - extremely dangerous
|
|
80
|
-
isAdequate = false;
|
|
81
|
-
warnings.push('Anchor at or below foot level - fall protection inadequate');
|
|
82
|
-
}
|
|
83
|
-
else if (clearanceAboveObstacle < 0) {
|
|
84
|
-
// Worker would contact obstacle
|
|
85
|
-
isAdequate = false;
|
|
86
|
-
warnings.push(`Insufficient clearance: worker would be ${Math.abs(clearanceAboveObstacle).toFixed(2)}m below obstacle level`);
|
|
87
|
-
}
|
|
88
|
-
else if (clearanceAboveObstacle < rescueClearance) {
|
|
89
|
-
// Clearance exists but rescue may be difficult
|
|
90
|
-
isAdequate = true;
|
|
91
|
-
warnings.push('Limited clearance for rescue operations');
|
|
56
|
+
if (freeFallDistance > MAX_FREE_FALL) {
|
|
57
|
+
warnings.push(`Free fall of ${freeFallDistance.toFixed(2)} m exceeds the OSHA limit of 1.8 m (6 ft) — raise the anchor or shorten the lanyard`);
|
|
92
58
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
isAdequate = true;
|
|
59
|
+
if (DD > MAX_DECELERATION) {
|
|
60
|
+
warnings.push('Deceleration distance exceeds the OSHA limit of 1.07 m (3.5 ft)');
|
|
96
61
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
warnings.push('Consider increasing anchor height for additional safety margin');
|
|
62
|
+
if (clearanceAboveObstacle !== null && clearanceAboveObstacle < 0) {
|
|
63
|
+
warnings.push(`Insufficient clearance: ${Math.abs(clearanceAboveObstacle).toFixed(2)} m short of the required clearance above the obstacle`);
|
|
100
64
|
}
|
|
101
65
|
return {
|
|
102
66
|
totalFallDistance: roundTo(totalFallDistance, 3),
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
clearanceAboveObstacle
|
|
67
|
+
requiredClearance: roundTo(requiredClearance, 3),
|
|
68
|
+
clearanceBelowAnchor: roundTo(clearanceBelowAnchor, 3),
|
|
69
|
+
freeFallDistance: roundTo(freeFallDistance, 3),
|
|
70
|
+
clearanceAboveObstacle,
|
|
107
71
|
isAdequate,
|
|
108
72
|
warnings,
|
|
109
73
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fallClearance.js","sourceRoot":"","sources":["../../src/safety/fallClearance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC
|
|
1
|
+
{"version":3,"file":"fallClearance.js","sourceRoot":"","sources":["../../src/safety/fallClearance.ts"],"names":[],"mappings":"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"}
|
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, 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';
|
|
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, ArcFlashEquipment, 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,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACzE,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"}
|
|
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,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACzE,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,iBAAiB,EACjB,aAAa,EACb,cAAc,EAEd,kBAAkB,EAClB,mBAAmB,EAEnB,YAAY,EACZ,QAAQ,EACR,SAAS,GACV,MAAM,YAAY,CAAC"}
|
|
@@ -11,8 +11,9 @@ export declare const LADDER_COMPLIANT_ANGLE_RANGE: {
|
|
|
11
11
|
/**
|
|
12
12
|
* Calculate ladder setup angle and OSHA compliance.
|
|
13
13
|
*
|
|
14
|
-
* OSHA 4:1
|
|
15
|
-
*
|
|
14
|
+
* OSHA 4:1 rule, 29 CFR 1926.1053(b)(5)(i): the foot of the ladder sits one quarter of its working
|
|
15
|
+
* length (foot to top support) out from the support, so cos θ = 1/4 and θ ≈ 75.5°.
|
|
16
|
+
* (A quarter of the *height* instead gives atan(4) ≈ 75.96°.)
|
|
16
17
|
* Compliant range: see {@link LADDER_COMPLIANT_ANGLE_RANGE} (70°–80°).
|
|
17
18
|
*
|
|
18
19
|
* Provide ladderLength and either height or baseDistance.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ladderAngle.d.ts","sourceRoot":"","sources":["../../src/safety/ladderAngle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAKtE;;;;GAIG;AACH,eAAO,MAAM,4BAA4B;;;CAAgC,CAAC;AAE1E
|
|
1
|
+
{"version":3,"file":"ladderAngle.d.ts","sourceRoot":"","sources":["../../src/safety/ladderAngle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAKtE;;;;GAIG;AACH,eAAO,MAAM,4BAA4B;;;CAAgC,CAAC;AAE1E;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAsFtE"}
|
|
@@ -10,8 +10,9 @@ export const LADDER_COMPLIANT_ANGLE_RANGE = { min: 70, max: 80 };
|
|
|
10
10
|
/**
|
|
11
11
|
* Calculate ladder setup angle and OSHA compliance.
|
|
12
12
|
*
|
|
13
|
-
* OSHA 4:1
|
|
14
|
-
*
|
|
13
|
+
* OSHA 4:1 rule, 29 CFR 1926.1053(b)(5)(i): the foot of the ladder sits one quarter of its working
|
|
14
|
+
* length (foot to top support) out from the support, so cos θ = 1/4 and θ ≈ 75.5°.
|
|
15
|
+
* (A quarter of the *height* instead gives atan(4) ≈ 75.96°.)
|
|
15
16
|
* Compliant range: see {@link LADDER_COMPLIANT_ANGLE_RANGE} (70°–80°).
|
|
16
17
|
*
|
|
17
18
|
* Provide ladderLength and either height or baseDistance.
|
|
@@ -75,8 +76,10 @@ export function ladderAngle(input) {
|
|
|
75
76
|
else if (height !== undefined && height > 0) {
|
|
76
77
|
angle = 90;
|
|
77
78
|
}
|
|
78
|
-
// Ideal base distance
|
|
79
|
-
|
|
79
|
+
// Ideal base distance: one quarter of the working length, OSHA 29 CFR 1926.1053(b)(5)(i). This is
|
|
80
|
+
// the same rule as the 75.5° default above (cos 75.5° ≈ 1/4); a quarter of the *height* would be
|
|
81
|
+
// atan(4) ≈ 75.96°, a different ladder.
|
|
82
|
+
const idealBaseDistance = ladderLength / 4;
|
|
80
83
|
// Reach height = wall contact height + ~1m (3 feet) above contact point
|
|
81
84
|
const reachHeight = (height ?? 0) + 1.0;
|
|
82
85
|
// OSHA compliance: see LADDER_COMPLIANT_ANGLE_RANGE
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ladderAngle.js","sourceRoot":"","sources":["../../src/safety/ladderAngle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;AAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;AAE1B;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAW,CAAC;AAE1E
|
|
1
|
+
{"version":3,"file":"ladderAngle.js","sourceRoot":"","sources":["../../src/safety/ladderAngle.ts"],"names":[],"mappings":"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"}
|
package/dist/safety/types.d.ts
CHANGED
|
@@ -4,18 +4,20 @@ export interface FallClearanceInput {
|
|
|
4
4
|
lanyardLength: number;
|
|
5
5
|
decelerationDistance: number;
|
|
6
6
|
harnessStretch: number;
|
|
7
|
-
|
|
7
|
+
dRingHeight: number;
|
|
8
|
+
anchorAboveFeet: number;
|
|
8
9
|
safetyFactor: number;
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
/** m — working surface height above the lower level. Without it the adequacy verdict is `null`. */
|
|
11
|
+
workingHeight?: number;
|
|
11
12
|
obstacleHeight?: number;
|
|
12
13
|
}
|
|
13
14
|
export interface FallClearanceResult {
|
|
14
15
|
totalFallDistance: number;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
requiredClearance: number;
|
|
17
|
+
clearanceBelowAnchor: number;
|
|
18
|
+
freeFallDistance: number;
|
|
19
|
+
/** m — margin above the obstacle after the required clearance; `null` without `workingHeight`. */
|
|
20
|
+
clearanceAboveObstacle: number | null;
|
|
19
21
|
isAdequate: boolean | null;
|
|
20
22
|
warnings: string[];
|
|
21
23
|
}
|
|
@@ -234,21 +236,30 @@ export interface RebaResult {
|
|
|
234
236
|
/**
|
|
235
237
|
* Arc Flash Types — IEEE 1584 / NFPA 70E
|
|
236
238
|
*/
|
|
239
|
+
/** IEEE 1584-2002 Table 4 equipment class. `open` and `cable` have no enclosure (open configuration). */
|
|
240
|
+
export type ArcFlashEquipment = 'open' | 'switchgear' | 'mcc' | 'panel' | 'cable';
|
|
237
241
|
export interface ArcFlashInput {
|
|
238
242
|
voltage: number;
|
|
239
243
|
boltedFaultCurrent: number;
|
|
240
244
|
workingDistance: number;
|
|
241
245
|
faultClearingTime: number;
|
|
242
246
|
gapBetweenConductors: number;
|
|
243
|
-
|
|
247
|
+
equipment: ArcFlashEquipment;
|
|
248
|
+
/** `ungrounded` covers high-resistance grounded systems (K2 = 0); `grounded` is solidly grounded (K2 = −0.113). */
|
|
249
|
+
grounding: 'grounded' | 'ungrounded';
|
|
244
250
|
}
|
|
245
251
|
export interface ArcFlashResult {
|
|
246
252
|
arcCurrent: number;
|
|
253
|
+
/** 85 % of the arcing current, V ≤ 1 kV only — IEEE 1584-2002 asks for a second evaluation at it. */
|
|
254
|
+
reducedArcCurrent?: number;
|
|
255
|
+
normalizedIncidentEnergy: number;
|
|
247
256
|
incidentEnergy: number;
|
|
248
257
|
arcFlashBoundary: number;
|
|
258
|
+
distanceExponent: number;
|
|
249
259
|
ppeCategory: 0 | 1 | 2 | 3 | 4;
|
|
250
260
|
hazardLevel: 'safe' | 'danger' | 'extreme';
|
|
251
261
|
requiredPPE: string;
|
|
262
|
+
standard: 'IEEE 1584-2002';
|
|
252
263
|
}
|
|
253
264
|
/**
|
|
254
265
|
* Confined Space Atmospheric Assessment Types — OSHA 29 CFR 1910.146
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/safety/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,YAAY,EAAE,WAAW,EAAE,CAAC;AAG5B,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,
|
|
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.48.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",
|