formulab 0.45.0 → 0.47.0

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,45 @@ 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.47.0] - 2026-09-15
9
+
10
+ ### Fixed
11
+
12
+ - **`metal/flangeSpec()` ASME B16.5 table corrected against public B16.5 tables.** Cross-checked
13
+ against several independent public tables that agree with each other (apiint.com, texasflange.com,
14
+ wermac.org, the zzsteels catalog, hardhatengineer.com):
15
+ - `raisedFaceDiameter` was wrong in 21 of 24 rows. For NPS 6–12 it held the pipe OD (for example
16
+ NPS 6: 168.3 → 215.9 mm).
17
+ - `thickness` was wrong in most rows. It is now the minimum flange thickness excluding the raised
18
+ face (for example NPS 4 Class 150: 19.1 → 22.4 mm).
19
+ - Bolt sizes were wrong in several rows.
20
+ - Weights were off by up to about 30% (for example NPS 12 Class 150: 27 → 37 kg).
21
+ - Class 300/600 OD and bolt circle values get small rounding corrections (≤ 0.5 mm).
22
+ - **`boltSize` is now the B16.5 inch bolt with its ISO stud equivalent**, for example `'5/8" (M16)'`.
23
+ **Breaking** for callers matching the old metric-only strings.
24
+
25
+ ### Added
26
+
27
+ - Tests for invariants between rows (raised face < bolt circle < OD; a higher class never has a
28
+ smaller OD, bolt circle or thickness; the raised face is not the pipe OD) and golden rows citing the
29
+ public tables.
30
+
31
+ ## [0.46.0] - 2026-09-15
32
+
33
+ ### Added
34
+
35
+ - **`electronics/viaCurrent()` returns `platingThicknessMm` and `barrelOuterDiameterMm`** — the
36
+ plated ring's wall and outer diameter (hole + 2 × plating), so the ring whose area is
37
+ `crossSectionMm2` can be drawn without re-deriving it.
38
+
39
+ ### Fixed
40
+
41
+ - **`viaCurrent()` documentation named the wrong method.** It said "IPC-2152 approximation" and
42
+ called `k = 0.048` the internal-layer constant. The computation is the IPC-2221 conductor formula
43
+ with the **external**-layer constant applied to the barrel's copper ring — the common via
44
+ convention (IPC-2221 internal layers use `k = 0.024`). No numeric change; a test now pins the
45
+ formula to that provenance.
46
+
8
47
  ## [0.45.0] - 2026-09-15
9
48
 
10
49
  ### Added
@@ -167,6 +167,8 @@ export interface ViaInput {
167
167
  export interface ViaResult {
168
168
  currentCapacity: number;
169
169
  crossSectionMm2: number;
170
+ platingThicknessMm: number;
171
+ barrelOuterDiameterMm: number;
170
172
  thermalResistance: number;
171
173
  resistanceMOhm: number;
172
174
  powerDissipation: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/electronics/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/electronics/types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { ViaInput, ViaResult } from './types.js';
2
2
  /**
3
- * Calculate PCB via current capacity using IPC-2152 approximation
3
+ * Calculate PCB via current capacity with the IPC-2221 conductor formula (external-layer constant)
4
+ * applied to the plated barrel's copper ring
4
5
  *
5
6
  * The cross-sectional area is the copper ring: π × [(r_outer)² - (r_inner)²]
6
7
  * Where r_outer = holeDiameter/2 + platingThickness and r_inner = holeDiameter/2
@@ -1 +1 @@
1
- {"version":3,"file":"via.d.ts","sourceRoot":"","sources":["../../src/electronics/via.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAiBtD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CAwDrD"}
1
+ {"version":3,"file":"via.d.ts","sourceRoot":"","sources":["../../src/electronics/via.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAmBtD;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CA0DrD"}
@@ -4,14 +4,17 @@ import { roundTo } from '../utils.js';
4
4
  */
5
5
  // Copper resistivity at 20°C in Ω·mm²/m
6
6
  const COPPER_RESISTIVITY = 0.01724;
7
- // IPC-2152 via current capacity constants
7
+ // IPC-2221 conductor formula constants — external-layer k (IPC-2221 internal layers use k = 0.024).
8
8
  // I = k × ΔT^b × A^c
9
- // For internal vias: k=0.048, b=0.44, c=0.725 (similar to internal traces)
9
+ // A via has no chart of its own in IPC-2221; the common convention applies the conductor formula to
10
+ // the plated barrel's copper cross-section with the external constant, since the barrel reaches both
11
+ // outer surfaces. IPC-2152 gives more detailed thermal guidance but is not what this computes.
10
12
  const IPC_K = 0.048;
11
13
  const IPC_B = 0.44;
12
14
  const IPC_C = 0.725;
13
15
  /**
14
- * Calculate PCB via current capacity using IPC-2152 approximation
16
+ * Calculate PCB via current capacity with the IPC-2221 conductor formula (external-layer constant)
17
+ * applied to the plated barrel's copper ring
15
18
  *
16
19
  * The cross-sectional area is the copper ring: π × [(r_outer)² - (r_inner)²]
17
20
  * Where r_outer = holeDiameter/2 + platingThickness and r_inner = holeDiameter/2
@@ -43,9 +46,9 @@ export function viaCurrent(input) {
43
46
  const outerRadius = innerRadius + platingMm;
44
47
  // Cross-sectional area of the copper ring (mm²)
45
48
  const crossSectionMm2 = Math.PI * (outerRadius * outerRadius - innerRadius * innerRadius);
46
- // For IPC-2152, convert area to mils² (1 mm = 39.37 mils)
49
+ // The IPC-2221 formula takes the area in mils² (1 mm = 39.37 mils)
47
50
  const crossSectionMils2 = crossSectionMm2 * 39.37 * 39.37;
48
- // Current capacity using IPC-2152 formula (similar to internal layer)
51
+ // Current capacity, IPC-2221 conductor formula with the external-layer constant
49
52
  // I = k × ΔT^b × A^c
50
53
  const currentCapacity = IPC_K * Math.pow(tempRise, IPC_B) * Math.pow(crossSectionMils2, IPC_C);
51
54
  // Via resistance (Ω)
@@ -63,6 +66,8 @@ export function viaCurrent(input) {
63
66
  return {
64
67
  currentCapacity: roundTo(currentCapacity, 2),
65
68
  crossSectionMm2: roundTo(crossSectionMm2, 5),
69
+ platingThicknessMm: roundTo(platingMm, 6),
70
+ barrelOuterDiameterMm: roundTo(outerRadius * 2, 6),
66
71
  thermalResistance: roundTo(thermalResistance, 2),
67
72
  resistanceMOhm: roundTo(resistanceMOhm, 4),
68
73
  powerDissipation: roundTo(powerDissipation, 2),
@@ -1 +1 @@
1
- {"version":3,"file":"via.js","sourceRoot":"","sources":["../../src/electronics/via.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC;;GAEG;AAEH,wCAAwC;AACxC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAEnC,0CAA0C;AAC1C,qBAAqB;AACrB,2EAA2E;AAC3E,MAAM,KAAK,GAAG,KAAK,CAAC;AACpB,MAAM,KAAK,GAAG,IAAI,CAAC;AACnB,MAAM,KAAK,GAAG,KAAK,CAAC;AAEpB;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAC,KAAe;IACxC,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEtE,kBAAkB;IAClB,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,UAAU,CAAC,qCAAqC,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,UAAU,CAAC,yCAAyC,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,UAAU,CAAC,kCAAkC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,UAAU,CAAC,iCAAiC,CAAC,CAAC;IAC1D,CAAC;IAED,0CAA0C;IAC1C,MAAM,SAAS,GAAG,gBAAgB,GAAG,IAAI,CAAC;IAE1C,kCAAkC;IAClC,MAAM,WAAW,GAAG,YAAY,GAAG,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;IAE5C,gDAAgD;IAChD,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC;IAE1F,0DAA0D;IAC1D,MAAM,iBAAiB,GAAG,eAAe,GAAG,KAAK,GAAG,KAAK,CAAC;IAE1D,sEAAsE;IACtE,qBAAqB;IACrB,MAAM,eAAe,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IAE/F,qBAAqB;IACrB,0DAA0D;IAC1D,MAAM,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC;IACpC,MAAM,UAAU,GAAG,CAAC,kBAAkB,GAAG,UAAU,CAAC,GAAG,eAAe,CAAC;IACvE,MAAM,cAAc,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,gBAAgB;IAE1D,gDAAgD;IAChD,2EAA2E;IAC3E,4CAA4C;IAC5C,MAAM,2BAA2B,GAAG,GAAG,CAAC;IACxC,MAAM,iBAAiB,GAAG,UAAU,GAAG,CAAC,2BAA2B,GAAG,eAAe,GAAG,OAAO,CAAC,CAAC;IAEjG,4CAA4C;IAC5C,MAAM,gBAAgB,GAAG,eAAe,GAAG,eAAe,GAAG,UAAU,GAAG,IAAI,CAAC;IAE/E,OAAO;QACL,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;QAC5C,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;QAC5C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChD,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAC1C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;KAC/C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"via.js","sourceRoot":"","sources":["../../src/electronics/via.ts"],"names":[],"mappings":"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"}
@@ -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;AA2DnF;;;;;;;;;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,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB,CA8BnE"}
@@ -1,47 +1,56 @@
1
1
  /**
2
- * ASME B16.5 Welding Neck flange dimensions
2
+ * ASME B16.5 Welding Neck flange dimensions (raised face)
3
+ *
4
+ * Values are the published inch dimensions × 25.4, cross-checked 2026-09-15 against public B16.5 tables
5
+ * that agree with each other (apiint.com · texasflange.com · wermac.org · zzsteels.com catalog ·
6
+ * hardhatengineer.com). `thickness` is the minimum flange thickness excluding the raised face.
7
+ * `boltSize` is the B16.5 inch bolt with its ISO stud equivalent. `weight` is an approximate forged WN
8
+ * weight (hardhatengineer, agreeing with the zzsteels catalog within about 1 kg).
9
+ *
10
+ * An earlier table had the pipe OD in the raised-face column for most sizes and minimum thicknesses and
11
+ * bolt sizes from other rows.
3
12
  * @reference ASME B16.5 (Class 150, 300, 600)
4
13
  */
5
14
  const ASME_B16_5 = {
6
15
  '1': {
7
- '150': { od: 108.0, thickness: 14.2, boltCircle: 79.4, boltHoles: 4, boltSize: 'M12', raisedFace: 50.8, weight: 1.1 },
8
- '300': { od: 124.0, thickness: 17.5, boltCircle: 88.9, boltHoles: 4, boltSize: 'M16', raisedFace: 50.8, weight: 2.1 },
9
- '600': { od: 124.0, thickness: 20.6, boltCircle: 88.9, boltHoles: 4, boltSize: 'M16', raisedFace: 50.8, weight: 2.5 },
16
+ '150': { od: 108.0, thickness: 12.7, boltCircle: 79.4, boltHoles: 4, boltSize: '1/2" (M14)', raisedFace: 50.8, weight: 1.4 },
17
+ '300': { od: 124.0, thickness: 15.7, boltCircle: 88.9, boltHoles: 4, boltSize: '5/8" (M16)', raisedFace: 50.8, weight: 1.8 },
18
+ '600': { od: 124.0, thickness: 17.5, boltCircle: 88.9, boltHoles: 4, boltSize: '5/8" (M16)', raisedFace: 50.8, weight: 1.8 },
10
19
  },
11
20
  '2': {
12
- '150': { od: 152.4, thickness: 15.7, boltCircle: 120.7, boltHoles: 4, boltSize: 'M16', raisedFace: 73.0, weight: 2.5 },
13
- '300': { od: 165.1, thickness: 20.6, boltCircle: 127.0, boltHoles: 8, boltSize: 'M16', raisedFace: 73.0, weight: 4.1 },
14
- '600': { od: 165.1, thickness: 25.4, boltCircle: 127.0, boltHoles: 8, boltSize: 'M16', raisedFace: 73.0, weight: 5.0 },
21
+ '150': { od: 152.4, thickness: 17.5, boltCircle: 120.7, boltHoles: 4, boltSize: '5/8" (M16)', raisedFace: 92.1, weight: 2.7 },
22
+ '300': { od: 165.1, thickness: 20.6, boltCircle: 127.0, boltHoles: 8, boltSize: '5/8" (M16)', raisedFace: 92.1, weight: 4.1 },
23
+ '600': { od: 165.1, thickness: 25.4, boltCircle: 127.0, boltHoles: 8, boltSize: '5/8" (M16)', raisedFace: 92.1, weight: 5.5 },
15
24
  },
16
25
  '3': {
17
- '150': { od: 190.5, thickness: 17.5, boltCircle: 152.4, boltHoles: 4, boltSize: 'M16', raisedFace: 98.4, weight: 3.9 },
18
- '300': { od: 210.0, thickness: 22.4, boltCircle: 168.3, boltHoles: 8, boltSize: 'M20', raisedFace: 98.4, weight: 6.3 },
19
- '600': { od: 210.0, thickness: 28.4, boltCircle: 168.3, boltHoles: 8, boltSize: 'M20', raisedFace: 98.4, weight: 8.0 },
26
+ '150': { od: 190.5, thickness: 22.4, boltCircle: 152.4, boltHoles: 4, boltSize: '5/8" (M16)', raisedFace: 127.0, weight: 4.6 },
27
+ '300': { od: 209.6, thickness: 26.9, boltCircle: 168.3, boltHoles: 8, boltSize: '3/4" (M20)', raisedFace: 127.0, weight: 6.8 },
28
+ '600': { od: 209.6, thickness: 31.8, boltCircle: 168.3, boltHoles: 8, boltSize: '3/4" (M20)', raisedFace: 127.0, weight: 10.5 },
20
29
  },
21
30
  '4': {
22
- '150': { od: 228.6, thickness: 19.1, boltCircle: 190.5, boltHoles: 8, boltSize: 'M16', raisedFace: 122.2, weight: 5.5 },
23
- '300': { od: 254.0, thickness: 25.4, boltCircle: 200.0, boltHoles: 8, boltSize: 'M20', raisedFace: 122.2, weight: 9.3 },
24
- '600': { od: 273.1, thickness: 31.8, boltCircle: 215.9, boltHoles: 8, boltSize: 'M22', raisedFace: 122.2, weight: 14.0 },
31
+ '150': { od: 228.6, thickness: 22.4, boltCircle: 190.5, boltHoles: 8, boltSize: '5/8" (M16)', raisedFace: 157.2, weight: 6.8 },
32
+ '300': { od: 254.0, thickness: 30.2, boltCircle: 200.2, boltHoles: 8, boltSize: '3/4" (M20)', raisedFace: 157.2, weight: 11.4 },
33
+ '600': { od: 273.1, thickness: 38.1, boltCircle: 215.9, boltHoles: 8, boltSize: '7/8" (M24)', raisedFace: 157.2, weight: 19.1 },
25
34
  },
26
35
  '6': {
27
- '150': { od: 279.4, thickness: 22.4, boltCircle: 241.3, boltHoles: 8, boltSize: 'M20', raisedFace: 168.3, weight: 8.6 },
28
- '300': { od: 318.0, thickness: 28.4, boltCircle: 269.9, boltHoles: 12, boltSize: 'M20', raisedFace: 168.3, weight: 17.0 },
29
- '600': { od: 355.6, thickness: 36.6, boltCircle: 292.1, boltHoles: 12, boltSize: 'M22', raisedFace: 168.3, weight: 28.0 },
36
+ '150': { od: 279.4, thickness: 23.9, boltCircle: 241.3, boltHoles: 8, boltSize: '3/4" (M20)', raisedFace: 215.9, weight: 10.9 },
37
+ '300': { od: 317.5, thickness: 35.1, boltCircle: 269.9, boltHoles: 12, boltSize: '3/4" (M20)', raisedFace: 215.9, weight: 19.1 },
38
+ '600': { od: 355.6, thickness: 47.8, boltCircle: 292.1, boltHoles: 12, boltSize: '1" (M27)', raisedFace: 215.9, weight: 36.0 },
30
39
  },
31
40
  '8': {
32
- '150': { od: 342.9, thickness: 24.4, boltCircle: 298.5, boltHoles: 8, boltSize: 'M20', raisedFace: 219.1, weight: 13.0 },
33
- '300': { od: 381.0, thickness: 33.3, boltCircle: 330.2, boltHoles: 12, boltSize: 'M22', raisedFace: 219.1, weight: 27.0 },
34
- '600': { od: 419.1, thickness: 42.9, boltCircle: 349.3, boltHoles: 12, boltSize: 'M25', raisedFace: 219.1, weight: 45.0 },
41
+ '150': { od: 342.9, thickness: 26.9, boltCircle: 298.5, boltHoles: 8, boltSize: '3/4" (M20)', raisedFace: 269.9, weight: 17.7 },
42
+ '300': { od: 381.0, thickness: 39.6, boltCircle: 330.2, boltHoles: 12, boltSize: '7/8" (M24)', raisedFace: 269.9, weight: 31.0 },
43
+ '600': { od: 419.1, thickness: 55.6, boltCircle: 349.3, boltHoles: 12, boltSize: '1-1/8" (M30)', raisedFace: 269.9, weight: 55.0 },
35
44
  },
36
45
  '10': {
37
- '150': { od: 406.4, thickness: 26.9, boltCircle: 362.0, boltHoles: 12, boltSize: 'M22', raisedFace: 273.1, weight: 19.0 },
38
- '300': { od: 444.5, thickness: 36.6, boltCircle: 387.4, boltHoles: 16, boltSize: 'M25', raisedFace: 273.1, weight: 38.0 },
39
- '600': { od: 508.0, thickness: 50.8, boltCircle: 431.8, boltHoles: 16, boltSize: 'M30', raisedFace: 273.1, weight: 70.0 },
46
+ '150': { od: 406.4, thickness: 28.4, boltCircle: 362.0, boltHoles: 12, boltSize: '7/8" (M24)', raisedFace: 323.9, weight: 24.0 },
47
+ '300': { od: 444.5, thickness: 46.0, boltCircle: 387.4, boltHoles: 16, boltSize: '1" (M27)', raisedFace: 323.9, weight: 42.0 },
48
+ '600': { od: 508.0, thickness: 63.5, boltCircle: 431.8, boltHoles: 16, boltSize: '1-1/4" (M33)', raisedFace: 323.9, weight: 86.0 },
40
49
  },
41
50
  '12': {
42
- '150': { od: 482.6, thickness: 28.4, boltCircle: 431.8, boltHoles: 12, boltSize: 'M22', raisedFace: 323.9, weight: 27.0 },
43
- '300': { od: 521.0, thickness: 39.6, boltCircle: 450.8, boltHoles: 16, boltSize: 'M25', raisedFace: 323.9, weight: 54.0 },
44
- '600': { od: 559.0, thickness: 55.6, boltCircle: 489.0, boltHoles: 20, boltSize: 'M30', raisedFace: 323.9, weight: 95.0 },
51
+ '150': { od: 482.6, thickness: 30.2, boltCircle: 431.8, boltHoles: 12, boltSize: '7/8" (M24)', raisedFace: 381.0, weight: 37.0 },
52
+ '300': { od: 520.7, thickness: 49.3, boltCircle: 450.9, boltHoles: 16, boltSize: '1-1/8" (M30)', raisedFace: 381.0, weight: 64.0 },
53
+ '600': { od: 558.8, thickness: 66.5, boltCircle: 489.0, boltHoles: 20, boltSize: '1-1/4" (M33)', raisedFace: 381.0, weight: 102.0 },
45
54
  },
46
55
  };
47
56
  /**
@@ -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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "formulab",
3
- "version": "0.45.0",
3
+ "version": "0.47.0",
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",