formulab 0.13.1 → 0.13.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.
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,12 @@ 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.13.2] - 2026-06-12
|
|
9
|
+
|
|
10
|
+
### Changed (breaking within 0.x)
|
|
11
|
+
|
|
12
|
+
- **`beamLoad()` (construction): `LoadResult | null` migrated to the standard error policy** — now **throws `RangeError`** with a per-constraint message (non-positive span, missing `uniformLoad`/`pointLoad` for the selected load type) instead of returning `null`, matching ERRORS.md and the 0.13.0 utility migration. Also adds a new guard: `pointPosition` outside `[0, span]` now throws (previously produced physically meaningless negative moments). Return type is non-nullable. Reported by online-tools: ISSUE-20260612-formulab-beamload-null-returns.
|
|
13
|
+
|
|
8
14
|
## [0.13.1] - 2026-06-12
|
|
9
15
|
|
|
10
16
|
### Added
|
|
@@ -6,7 +6,9 @@ import type { LoadInput, LoadResult } from './types.js';
|
|
|
6
6
|
* uniform, concentrated, or combined loading.
|
|
7
7
|
*
|
|
8
8
|
* @param input - Beam load input parameters
|
|
9
|
-
* @returns Load analysis result
|
|
9
|
+
* @returns Load analysis result
|
|
10
|
+
* @throws RangeError if span is not positive, a required load value for the
|
|
11
|
+
* selected load type is missing, or pointPosition lies outside [0, span]
|
|
10
12
|
*/
|
|
11
|
-
export declare function beamLoad(input: LoadInput): LoadResult
|
|
13
|
+
export declare function beamLoad(input: LoadInput): LoadResult;
|
|
12
14
|
//# sourceMappingURL=beamLoad.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beamLoad.d.ts","sourceRoot":"","sources":["../../src/construction/beamLoad.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD
|
|
1
|
+
{"version":3,"file":"beamLoad.d.ts","sourceRoot":"","sources":["../../src/construction/beamLoad.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CAyJrD"}
|
|
@@ -5,26 +5,33 @@
|
|
|
5
5
|
* uniform, concentrated, or combined loading.
|
|
6
6
|
*
|
|
7
7
|
* @param input - Beam load input parameters
|
|
8
|
-
* @returns Load analysis result
|
|
8
|
+
* @returns Load analysis result
|
|
9
|
+
* @throws RangeError if span is not positive, a required load value for the
|
|
10
|
+
* selected load type is missing, or pointPosition lies outside [0, span]
|
|
9
11
|
*/
|
|
10
12
|
export function beamLoad(input) {
|
|
11
13
|
const { loadType, support, span, uniformLoad, pointLoad, pointPosition } = input;
|
|
12
14
|
// Validate span
|
|
13
15
|
if (span <= 0) {
|
|
14
|
-
|
|
16
|
+
throw new RangeError('span must be greater than 0');
|
|
15
17
|
}
|
|
16
18
|
// Validate required inputs based on load type
|
|
17
19
|
if (loadType === 'uniform' && (uniformLoad === undefined || uniformLoad === null)) {
|
|
18
|
-
|
|
20
|
+
throw new RangeError('uniformLoad is required for uniform load type');
|
|
19
21
|
}
|
|
20
22
|
if (loadType === 'concentrated' && (pointLoad === undefined || pointLoad === null)) {
|
|
21
|
-
|
|
23
|
+
throw new RangeError('pointLoad is required for concentrated load type');
|
|
22
24
|
}
|
|
23
25
|
if (loadType === 'combined') {
|
|
24
|
-
if (uniformLoad === undefined || uniformLoad === null)
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
if (uniformLoad === undefined || uniformLoad === null) {
|
|
27
|
+
throw new RangeError('uniformLoad is required for combined load type');
|
|
28
|
+
}
|
|
29
|
+
if (pointLoad === undefined || pointLoad === null) {
|
|
30
|
+
throw new RangeError('pointLoad is required for combined load type');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (pointPosition !== undefined && pointPosition !== null && (pointPosition < 0 || pointPosition > span)) {
|
|
34
|
+
throw new RangeError('pointPosition must be within [0, span]');
|
|
28
35
|
}
|
|
29
36
|
const w = uniformLoad ?? 0;
|
|
30
37
|
const P = pointLoad ?? 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beamLoad.js","sourceRoot":"","sources":["../../src/construction/beamLoad.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"beamLoad.js","sourceRoot":"","sources":["../../src/construction/beamLoad.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "formulab",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.2",
|
|
4
4
|
"description": "Manufacturing & Engineering calculation formulas library - 182 industrial calculations across 15 domains for OEE, Cpk, SPC, FMEA, Nelson Rules, metal weight, CNC machining, GD&T, battery, environmental, pipe flow, logistics, IE time study, and more",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|