formulab 0.15.0 → 0.18.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.
Files changed (92) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/README.md +7 -7
  3. package/dist/chemical/reliefValve.d.ts +8 -0
  4. package/dist/chemical/reliefValve.d.ts.map +1 -1
  5. package/dist/chemical/reliefValve.js +18 -1
  6. package/dist/chemical/reliefValve.js.map +1 -1
  7. package/dist/chemical/types.d.ts +2 -0
  8. package/dist/chemical/types.d.ts.map +1 -1
  9. package/dist/construction/brick.d.ts +1 -0
  10. package/dist/construction/brick.d.ts.map +1 -1
  11. package/dist/construction/brick.js +13 -0
  12. package/dist/construction/brick.js.map +1 -1
  13. package/dist/construction/concreteMix.d.ts +1 -0
  14. package/dist/construction/concreteMix.d.ts.map +1 -1
  15. package/dist/construction/concreteMix.js +7 -0
  16. package/dist/construction/concreteMix.js.map +1 -1
  17. package/dist/construction/rebar.d.ts +1 -0
  18. package/dist/construction/rebar.d.ts.map +1 -1
  19. package/dist/construction/rebar.js +4 -0
  20. package/dist/construction/rebar.js.map +1 -1
  21. package/dist/construction/stair.d.ts +2 -0
  22. package/dist/construction/stair.d.ts.map +1 -1
  23. package/dist/construction/stair.js +15 -2
  24. package/dist/construction/stair.js.map +1 -1
  25. package/dist/electronics/resistor.d.ts +2 -0
  26. package/dist/electronics/resistor.d.ts.map +1 -1
  27. package/dist/electronics/resistor.js +47 -14
  28. package/dist/electronics/resistor.js.map +1 -1
  29. package/dist/electronics/trace.d.ts +1 -0
  30. package/dist/electronics/trace.d.ts.map +1 -1
  31. package/dist/electronics/trace.js +10 -0
  32. package/dist/electronics/trace.js.map +1 -1
  33. package/dist/energy/solarOutput.d.ts +18 -8
  34. package/dist/energy/solarOutput.d.ts.map +1 -1
  35. package/dist/energy/solarOutput.js +92 -22
  36. package/dist/energy/solarOutput.js.map +1 -1
  37. package/dist/energy/types.d.ts.map +1 -1
  38. package/dist/environmental/energyIntensity.d.ts +1 -0
  39. package/dist/environmental/energyIntensity.d.ts.map +1 -1
  40. package/dist/environmental/energyIntensity.js +7 -0
  41. package/dist/environmental/energyIntensity.js.map +1 -1
  42. package/dist/environmental/productCarbonFootprint.d.ts +5 -1
  43. package/dist/environmental/productCarbonFootprint.d.ts.map +1 -1
  44. package/dist/environmental/productCarbonFootprint.js +14 -2
  45. package/dist/environmental/productCarbonFootprint.js.map +1 -1
  46. package/dist/environmental/vocEmissions.d.ts +3 -1
  47. package/dist/environmental/vocEmissions.d.ts.map +1 -1
  48. package/dist/environmental/vocEmissions.js +16 -2
  49. package/dist/environmental/vocEmissions.js.map +1 -1
  50. package/dist/environmental/waterFootprint.d.ts +3 -1
  51. package/dist/environmental/waterFootprint.d.ts.map +1 -1
  52. package/dist/environmental/waterFootprint.js +11 -4
  53. package/dist/environmental/waterFootprint.js.map +1 -1
  54. package/dist/math.d.ts +0 -4
  55. package/dist/math.d.ts.map +1 -1
  56. package/dist/math.js +0 -6
  57. package/dist/math.js.map +1 -1
  58. package/dist/metal/hardness.d.ts +5 -0
  59. package/dist/metal/hardness.d.ts.map +1 -1
  60. package/dist/metal/hardness.js +13 -3
  61. package/dist/metal/hardness.js.map +1 -1
  62. package/dist/metal/roughness.d.ts +7 -0
  63. package/dist/metal/roughness.d.ts.map +1 -1
  64. package/dist/metal/roughness.js +15 -1
  65. package/dist/metal/roughness.js.map +1 -1
  66. package/dist/metal/types.d.ts +5 -1
  67. package/dist/metal/types.d.ts.map +1 -1
  68. package/dist/metal/weldHeat.d.ts +5 -0
  69. package/dist/metal/weldHeat.d.ts.map +1 -1
  70. package/dist/metal/weldHeat.js +27 -7
  71. package/dist/metal/weldHeat.js.map +1 -1
  72. package/dist/quality/aql.d.ts +9 -0
  73. package/dist/quality/aql.d.ts.map +1 -1
  74. package/dist/quality/aql.js +40 -21
  75. package/dist/quality/aql.js.map +1 -1
  76. package/dist/quality/ppm.d.ts +4 -0
  77. package/dist/quality/ppm.d.ts.map +1 -1
  78. package/dist/quality/ppm.js +17 -4
  79. package/dist/quality/ppm.js.map +1 -1
  80. package/dist/quality/types.d.ts +15 -1
  81. package/dist/quality/types.d.ts.map +1 -1
  82. package/dist/safety/illuminance.d.ts +7 -0
  83. package/dist/safety/illuminance.d.ts.map +1 -1
  84. package/dist/safety/illuminance.js +10 -2
  85. package/dist/safety/illuminance.js.map +1 -1
  86. package/dist/safety/index.d.ts +1 -1
  87. package/dist/safety/index.d.ts.map +1 -1
  88. package/dist/safety/index.js +1 -1
  89. package/dist/safety/index.js.map +1 -1
  90. package/dist/safety/types.d.ts +2 -0
  91. package/dist/safety/types.d.ts.map +1 -1
  92. package/package.json +2 -2
@@ -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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"}
@@ -3,6 +3,7 @@ import type { TraceInput, TraceResult } from './types.js';
3
3
  * Calculate PCB trace width using IPC-2221 formula
4
4
  * @param input - Trace parameters (current, temp rise, copper weight, layer)
5
5
  * @returns Trace width and related calculations
6
+ * @throws {RangeError} current ≤ 0, tempRise ≤ 0, or copperWeight ≤ 0
6
7
  */
7
8
  export declare function traceWidth(input: TraceInput): TraceResult;
8
9
  //# sourceMappingURL=trace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/electronics/trace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAmC1D;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CA6CzD"}
1
+ {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/electronics/trace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAmC1D;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAuDzD"}
@@ -31,9 +31,19 @@ const COPPER_RESISTIVITY = 0.6787;
31
31
  * Calculate PCB trace width using IPC-2221 formula
32
32
  * @param input - Trace parameters (current, temp rise, copper weight, layer)
33
33
  * @returns Trace width and related calculations
34
+ * @throws {RangeError} current ≤ 0, tempRise ≤ 0, or copperWeight ≤ 0
34
35
  */
35
36
  export function traceWidth(input) {
36
37
  const { current, tempRise, copperWeight, layer } = input;
38
+ if (current <= 0) {
39
+ throw new RangeError('current must be greater than 0');
40
+ }
41
+ if (tempRise <= 0) {
42
+ throw new RangeError('tempRise must be greater than 0');
43
+ }
44
+ if (copperWeight <= 0) {
45
+ throw new RangeError('copperWeight must be greater than 0');
46
+ }
37
47
  // Get constants for the layer type
38
48
  const constants = IPC2221_CONSTANTS[layer];
39
49
  // IPC-2221 formula:
@@ -1 +1 @@
1
- {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/electronics/trace.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC;;GAEG;AAEH;;;GAGG;AACH,MAAM,iBAAiB,GAAG;IACxB,QAAQ,EAAE;QACR,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,KAAK;KACT;IACD,QAAQ,EAAE;QACR,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,KAAK;KACT;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAEtC;;GAEG;AACH,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAiB;IAC1C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAEzD,mCAAmC;IACnC,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAE3C,oBAAoB;IACpB,wCAAwC;IACxC,SAAS;IACT,wBAAwB;IACxB,kDAAkD;IAClD,+BAA+B;IAC/B,aAAa;IACb,cAAc;IACd,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EACzD,CAAC,GAAG,SAAS,CAAC,CAAC,CAChB,CAAC;IAEF,2BAA2B;IAC3B,MAAM,eAAe,GAAG,YAAY,GAAG,uBAAuB,CAAC;IAE/D,2BAA2B;IAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,GAAG,eAAe,EAAE,CAAC,CAAC,CAAC;IAE7D,oCAAoC;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IAE/C,0EAA0E;IAC1E,MAAM,UAAU,GAAG,OAAO,CAAC,kBAAkB,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC;IAEjE,gCAAgC;IAChC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;IAErD,gCAAgC;IAChC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;IAE7D,OAAO;QACL,SAAS;QACT,OAAO;QACP,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACtC,UAAU;QACV,WAAW;QACX,SAAS;KACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/electronics/trace.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC;;GAEG;AAEH;;;GAGG;AACH,MAAM,iBAAiB,GAAG;IACxB,QAAQ,EAAE;QACR,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,KAAK;KACT;IACD,QAAQ,EAAE;QACR,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,KAAK;KACT;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAEtC;;GAEG;AACH,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,KAAiB;IAC1C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAEzD,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB,MAAM,IAAI,UAAU,CAAC,gCAAgC,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,UAAU,CAAC,iCAAiC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,UAAU,CAAC,qCAAqC,CAAC,CAAC;IAC9D,CAAC;IAED,mCAAmC;IACnC,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAE3C,oBAAoB;IACpB,wCAAwC;IACxC,SAAS;IACT,wBAAwB;IACxB,kDAAkD;IAClD,+BAA+B;IAC/B,aAAa;IACb,cAAc;IACd,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EACzD,CAAC,GAAG,SAAS,CAAC,CAAC,CAChB,CAAC;IAEF,2BAA2B;IAC3B,MAAM,eAAe,GAAG,YAAY,GAAG,uBAAuB,CAAC;IAE/D,2BAA2B;IAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,GAAG,eAAe,EAAE,CAAC,CAAC,CAAC;IAE7D,oCAAoC;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IAE/C,0EAA0E;IAC1E,MAAM,UAAU,GAAG,OAAO,CAAC,kBAAkB,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC;IAEjE,gCAAgC;IAChC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;IAErD,gCAAgC;IAChC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;IAE7D,OAAO;QACL,SAAS;QACT,OAAO;QACP,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACtC,UAAU;QACV,WAAW;QACX,SAAS;KACV,CAAC;AACJ,CAAC"}
@@ -1,16 +1,26 @@
1
1
  import type { SolarOutputInput, SolarOutputResult } from './types.js';
2
2
  /**
3
- * Solar Panel Output Calculator (PVWatts-based estimation)
3
+ * Solar Panel Output Calculator (PVWatts-style estimation)
4
4
  *
5
- * Estimates daily/monthly/annual energy production from a photovoltaic system.
6
- * Uses simplified NREL PVWatts methodology with tilt and azimuth corrections.
5
+ * Estimates daily/monthly/annual energy production from a photovoltaic system. Peak sun
6
+ * hours carry the site's climate; the tilt/orientation factor is computed physically via
7
+ * the isotropic-sky transposition (Liu & Jordan) integrated over the year, normalized to
8
+ * the best equator-facing tilt.
7
9
  *
8
- * Reference: NREL PVWatts Calculator methodology
10
+ * Reference: NREL PVWatts methodology (concept); Liu & Jordan (1963) isotropic sky;
11
+ * Duffie & Beckman, Solar Engineering of Thermal Processes (solar geometry).
9
12
  *
10
- * @throws {RangeError} Panel wattage must be positive
11
- * @throws {RangeError} Panel count must be positive
12
- * @throws {RangeError} Peak sun hours must be positive
13
- * @throws {RangeError} System efficiency must be between 0 and 1
13
+ * Replaces the former cos-approximation with a 0.5 floor, which pinned any away-facing
14
+ * array at exactly 50% of optimal regardless of tilt. Under this model a north-facing 30°
15
+ * array at latitude 37 lands near 0.61 and a steep (60°) north array near 0.38 —
16
+ * consistent with fixed-orientation literature (Lave & Kleissl 2011: north at latitude
17
+ * tilt ≈ 0.6-0.7 across CONUS) and PVWatts-derived tables for E/W (≈ 0.75-0.85, here
18
+ * 0.85) and flat (≈ 0.88, here 0.88). Tilt now matters for away-facing arrays instead of
19
+ * every one reporting exactly 50%.
20
+ *
21
+ * @throws {RangeError} panelWattage/panelCount/peakSunHours ≤ 0
22
+ * @throws {RangeError} systemEfficiency outside (0, 1]
23
+ * @throws {RangeError} tiltAngle outside [0, 90], or |latitude| > 90
14
24
  * @param input - panel specs, sun hours, orientation
15
25
  * @returns energy production estimates
16
26
  */
@@ -1 +1 @@
1
- {"version":3,"file":"solarOutput.d.ts","sourceRoot":"","sources":["../../src/energy/solarOutput.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEtE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CA+CtE"}
1
+ {"version":3,"file":"solarOutput.d.ts","sourceRoot":"","sources":["../../src/energy/solarOutput.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA6EtE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAkCtE"}
@@ -1,16 +1,95 @@
1
1
  import { roundTo } from '../utils.js';
2
+ // Annual-average share of global horizontal irradiance that is diffuse (temperate climates).
3
+ // Documented model assumption; the diffuse component is what keeps an away-facing array
4
+ // above zero (real north-facing yield is ~35-50% of optimal, not the 50% a hard floor gives).
5
+ const DIFFUSE_FRACTION = 0.3;
6
+ // Ground reflectance for the reflected component (grass/roof average).
7
+ const GROUND_ALBEDO = 0.2;
8
+ const DEG = Math.PI / 180;
2
9
  /**
3
- * Solar Panel Output Calculator (PVWatts-based estimation)
10
+ * Relative annual plane-of-array insolation index (arbitrary units) via the isotropic-sky
11
+ * transposition (Liu & Jordan) integrated over the year with standard solar geometry
12
+ * (declination and hour-angle sweep; Duffie & Beckman, Solar Engineering of Thermal
13
+ * Processes, eq. 1.6.2/1.6.5). Constant-sky simplification: DNI is constant while the sun
14
+ * is up and GHI splits into a fixed beam/diffuse ratio — adequate for a RELATIVE
15
+ * tilt/orientation factor, not for absolute yield (peak sun hours carry the climate).
16
+ * (An air-mass-attenuated variant was evaluated and rejected: it shifts the flat-array
17
+ * anchor away from published PVWatts-derived values without improving the others.)
4
18
  *
5
- * Estimates daily/monthly/annual energy production from a photovoltaic system.
6
- * Uses simplified NREL PVWatts methodology with tilt and azimuth corrections.
19
+ * @param tiltDeg panel tilt from horizontal, 0-90
20
+ * @param azimuthDeg panel azimuth offset from equator-facing, degrees (±180)
21
+ * @param latDeg site latitude; the geometry uses |lat| with azimuth measured from
22
+ * the equator-facing direction (south in the northern hemisphere,
23
+ * north in the southern)
24
+ */
25
+ function poaIndex(tiltDeg, azimuthDeg, latDeg) {
26
+ const phi = Math.abs(latDeg) * DEG;
27
+ const beta = tiltDeg * DEG;
28
+ const gamma = azimuthDeg * DEG;
29
+ const sinPhi = Math.sin(phi), cosPhi = Math.cos(phi);
30
+ const sinBeta = Math.sin(beta), cosBeta = Math.cos(beta);
31
+ const cosGamma = Math.cos(gamma), sinGamma = Math.sin(gamma);
32
+ const diffuseSky = DIFFUSE_FRACTION * (1 + cosBeta) / 2;
33
+ const groundRefl = GROUND_ALBEDO * (1 - cosBeta) / 2;
34
+ let sum = 0;
35
+ for (let day = 2; day < 365; day += 5) {
36
+ const delta = 23.45 * DEG * Math.sin((2 * Math.PI * (284 + day)) / 365);
37
+ const sinDelta = Math.sin(delta), cosDelta = Math.cos(delta);
38
+ // hour angle sweep, 15-minute steps
39
+ for (let omegaDeg = -180; omegaDeg < 180; omegaDeg += 3.75) {
40
+ const omega = omegaDeg * DEG;
41
+ const cosZ = sinPhi * sinDelta + cosPhi * cosDelta * Math.cos(omega);
42
+ if (cosZ <= 0)
43
+ continue; // sun below horizon
44
+ // Angle of incidence on the tilted plane (Duffie & Beckman eq. 1.6.2)
45
+ const cosTheta = sinDelta * sinPhi * cosBeta
46
+ - sinDelta * cosPhi * sinBeta * cosGamma
47
+ + cosDelta * cosPhi * cosBeta * Math.cos(omega)
48
+ + cosDelta * sinPhi * sinBeta * cosGamma * Math.cos(omega)
49
+ + cosDelta * sinBeta * sinGamma * Math.sin(omega);
50
+ // GHI ∝ cosZ with a fixed beam/diffuse split; DNI ∝ (1 - Fd)
51
+ const beam = (1 - DIFFUSE_FRACTION) * Math.max(0, cosTheta);
52
+ sum += beam + (diffuseSky + groundRefl) * cosZ;
53
+ }
54
+ }
55
+ return sum;
56
+ }
57
+ /**
58
+ * Annual tilt/orientation efficiency relative to the best equator-facing tilt at this
59
+ * latitude (the normalizer scans tilt 0-90° at azimuth 0, so the ratio is ≤ 1 by
60
+ * construction — no clamping involved).
61
+ */
62
+ function tiltOrientationEfficiency(tiltDeg, azimuthDeg, latDeg) {
63
+ let best = 0;
64
+ for (let t = 0; t <= 90; t += 1) {
65
+ const v = poaIndex(t, 0, latDeg);
66
+ if (v > best)
67
+ best = v;
68
+ }
69
+ return best > 0 ? poaIndex(tiltDeg, azimuthDeg, latDeg) / best : 0;
70
+ }
71
+ /**
72
+ * Solar Panel Output Calculator (PVWatts-style estimation)
73
+ *
74
+ * Estimates daily/monthly/annual energy production from a photovoltaic system. Peak sun
75
+ * hours carry the site's climate; the tilt/orientation factor is computed physically via
76
+ * the isotropic-sky transposition (Liu & Jordan) integrated over the year, normalized to
77
+ * the best equator-facing tilt.
78
+ *
79
+ * Reference: NREL PVWatts methodology (concept); Liu & Jordan (1963) isotropic sky;
80
+ * Duffie & Beckman, Solar Engineering of Thermal Processes (solar geometry).
7
81
  *
8
- * Reference: NREL PVWatts Calculator methodology
82
+ * Replaces the former cos-approximation with a 0.5 floor, which pinned any away-facing
83
+ * array at exactly 50% of optimal regardless of tilt. Under this model a north-facing 30°
84
+ * array at latitude 37 lands near 0.61 and a steep (60°) north array near 0.38 —
85
+ * consistent with fixed-orientation literature (Lave & Kleissl 2011: north at latitude
86
+ * tilt ≈ 0.6-0.7 across CONUS) and PVWatts-derived tables for E/W (≈ 0.75-0.85, here
87
+ * 0.85) and flat (≈ 0.88, here 0.88). Tilt now matters for away-facing arrays instead of
88
+ * every one reporting exactly 50%.
9
89
  *
10
- * @throws {RangeError} Panel wattage must be positive
11
- * @throws {RangeError} Panel count must be positive
12
- * @throws {RangeError} Peak sun hours must be positive
13
- * @throws {RangeError} System efficiency must be between 0 and 1
90
+ * @throws {RangeError} panelWattage/panelCount/peakSunHours 0
91
+ * @throws {RangeError} systemEfficiency outside (0, 1]
92
+ * @throws {RangeError} tiltAngle outside [0, 90], or |latitude| > 90
14
93
  * @param input - panel specs, sun hours, orientation
15
94
  * @returns energy production estimates
16
95
  */
@@ -24,22 +103,13 @@ export function solarOutput(input) {
24
103
  throw new RangeError('Peak sun hours must be positive');
25
104
  if (systemEfficiency <= 0 || systemEfficiency > 1)
26
105
  throw new RangeError('System efficiency must be between 0 and 1');
106
+ if (tiltAngle < 0 || tiltAngle > 90)
107
+ throw new RangeError('tiltAngle must be between 0 and 90 degrees');
108
+ if (latitude < -90 || latitude > 90)
109
+ throw new RangeError('latitude must be between -90 and 90 degrees');
27
110
  // System size in kW
28
111
  const systemSizeKw = (panelWattage * panelCount) / 1000;
29
- // Tilt efficiency factor
30
- // Optimal tilt ≈ latitude (simplified PVWatts model)
31
- // Deviation from optimal reduces output by ~cos(deviation)
32
- const optimalTilt = Math.abs(latitude);
33
- const tiltDeviation = Math.abs(tiltAngle - optimalTilt);
34
- // For every degree off optimal, roughly 0.5% loss (simplified)
35
- // But cap at cos-based model
36
- const tiltDeviationRad = (tiltDeviation * Math.PI) / 180;
37
- const tiltFactor = Math.max(0.5, Math.cos(tiltDeviationRad * 0.5));
38
- // Azimuth efficiency (0° = due south in northern hemisphere)
39
- // Every degree off south reduces by ~cos(azimuth) for large offsets
40
- const azimuthRad = (Math.abs(azimuthOffset) * Math.PI) / 180;
41
- const azimuthFactor = Math.max(0.5, Math.cos(azimuthRad * 0.6));
42
- const tiltEfficiency = tiltFactor * azimuthFactor;
112
+ const tiltEfficiency = tiltOrientationEfficiency(tiltAngle, azimuthOffset, latitude);
43
113
  // Daily output = system size (kW) × PSH × system efficiency × tilt efficiency
44
114
  const dailyOutputKwh = systemSizeKw * peakSunHours * systemEfficiency * tiltEfficiency;
45
115
  const monthlyOutputKwh = dailyOutputKwh * 30;
@@ -1 +1 @@
1
- {"version":3,"file":"solarOutput.js","sourceRoot":"","sources":["../../src/energy/solarOutput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,EACJ,YAAY,EAAE,UAAU,EAAE,YAAY,EACtC,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,GACrD,GAAG,KAAK,CAAC;IAEV,IAAI,YAAY,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,gCAAgC,CAAC,CAAC;IAC9E,IAAI,UAAU,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,8BAA8B,CAAC,CAAC;IAC1E,IAAI,YAAY,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,iCAAiC,CAAC,CAAC;IAC/E,IAAI,gBAAgB,IAAI,CAAC,IAAI,gBAAgB,GAAG,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,2CAA2C,CAAC,CAAC;IAErH,oBAAoB;IACpB,MAAM,YAAY,GAAG,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC;IAExD,yBAAyB;IACzB,qDAAqD;IACrD,2DAA2D;IAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC;IACxD,+DAA+D;IAC/D,6BAA6B;IAC7B,MAAM,gBAAgB,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC,CAAC;IAEnE,6DAA6D;IAC7D,oEAAoE;IACpE,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAC7D,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC;IAEhE,MAAM,cAAc,GAAG,UAAU,GAAG,aAAa,CAAC;IAElD,8EAA8E;IAC9E,MAAM,cAAc,GAAG,YAAY,GAAG,YAAY,GAAG,gBAAgB,GAAG,cAAc,CAAC;IACvF,MAAM,gBAAgB,GAAG,cAAc,GAAG,EAAE,CAAC;IAC7C,MAAM,eAAe,GAAG,cAAc,GAAG,GAAG,CAAC;IAE7C,yEAAyE;IACzE,MAAM,cAAc,GAAG,cAAc,GAAG,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;IAE5D,OAAO;QACL,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACtC,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAC1C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC9C,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;QAC5C,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAC1C,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;KAC3C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"solarOutput.js","sourceRoot":"","sources":["../../src/energy/solarOutput.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/energy/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/energy/types.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import type { EnergyIntensityInput, EnergyIntensityResult } from './types.js';
6
6
  * @reference ISO 50001 Energy Management
7
7
  * @param input - Total energy, production units, optional revenue
8
8
  * @returns Energy intensity in MJ/unit, kWh/unit, and optionally MJ/USD
9
+ * @throws {RangeError} totalEnergyMJ < 0, or productionUnits ≤ 0
9
10
  */
10
11
  export declare function energyIntensity(input: EnergyIntensityInput): EnergyIntensityResult;
11
12
  //# sourceMappingURL=energyIntensity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"energyIntensity.d.ts","sourceRoot":"","sources":["../../src/environmental/energyIntensity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE9E;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,qBAAqB,CAUlF"}
1
+ {"version":3,"file":"energyIntensity.d.ts","sourceRoot":"","sources":["../../src/environmental/energyIntensity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE9E;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,qBAAqB,CAiBlF"}
@@ -6,9 +6,16 @@ import { roundTo } from '../utils.js';
6
6
  * @reference ISO 50001 Energy Management
7
7
  * @param input - Total energy, production units, optional revenue
8
8
  * @returns Energy intensity in MJ/unit, kWh/unit, and optionally MJ/USD
9
+ * @throws {RangeError} totalEnergyMJ < 0, or productionUnits ≤ 0
9
10
  */
10
11
  export function energyIntensity(input) {
11
12
  const { totalEnergyMJ, productionUnits, revenueUsd } = input;
13
+ if (totalEnergyMJ < 0) {
14
+ throw new RangeError('totalEnergyMJ must not be negative');
15
+ }
16
+ if (productionUnits <= 0) {
17
+ throw new RangeError('productionUnits must be greater than 0');
18
+ }
12
19
  const mjPerUnit = roundTo(totalEnergyMJ / productionUnits, 4);
13
20
  const kwhPerUnit = roundTo(mjPerUnit / 3.6, 4);
14
21
  const mjPerRevenue = revenueUsd != null && revenueUsd > 0
@@ -1 +1 @@
1
- {"version":3,"file":"energyIntensity.js","sourceRoot":"","sources":["../../src/environmental/energyIntensity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAE7D,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,GAAG,eAAe,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,UAAU,IAAI,IAAI,IAAI,UAAU,GAAG,CAAC;QACvD,CAAC,CAAC,OAAO,CAAC,aAAa,GAAG,UAAU,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"energyIntensity.js","sourceRoot":"","sources":["../../src/environmental/energyIntensity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAE7D,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,UAAU,CAAC,oCAAoC,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,UAAU,CAAC,wCAAwC,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,GAAG,eAAe,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,UAAU,IAAI,IAAI,IAAI,UAAU,GAAG,CAAC;QACvD,CAAC,CAAC,OAAO,CAAC,aAAa,GAAG,UAAU,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AACjD,CAAC"}
@@ -5,7 +5,11 @@ import type { ProductCarbonFootprintInput, ProductCarbonFootprintResult } from '
5
5
  * @formula total = Σ stages, perUnit = total / quantity
6
6
  * @reference ISO 14067, PAS 2050
7
7
  * @param input - Lifecycle stages with CO2 and production quantity
8
- * @returns Total and per-unit carbon footprint with stage breakdown
8
+ * @returns Total and per-unit carbon footprint with stage breakdown. Negative stage
9
+ * values are valid (end-of-life recycling credits). When the total is ≤ 0 the stage
10
+ * percentages are reported as 0 (valid-but-degenerate; a share of a non-positive
11
+ * total is not meaningful).
12
+ * @throws {RangeError} empty stages, or productionQuantity ≤ 0
9
13
  */
10
14
  export declare function productCarbonFootprint(input: ProductCarbonFootprintInput): ProductCarbonFootprintResult;
11
15
  //# sourceMappingURL=productCarbonFootprint.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"productCarbonFootprint.d.ts","sourceRoot":"","sources":["../../src/environmental/productCarbonFootprint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAE5F;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,GAAG,4BAA4B,CAyBvG"}
1
+ {"version":3,"file":"productCarbonFootprint.d.ts","sourceRoot":"","sources":["../../src/environmental/productCarbonFootprint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAE5F;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,GAAG,4BAA4B,CAkCvG"}
@@ -5,16 +5,28 @@ import { roundTo } from '../utils.js';
5
5
  * @formula total = Σ stages, perUnit = total / quantity
6
6
  * @reference ISO 14067, PAS 2050
7
7
  * @param input - Lifecycle stages with CO2 and production quantity
8
- * @returns Total and per-unit carbon footprint with stage breakdown
8
+ * @returns Total and per-unit carbon footprint with stage breakdown. Negative stage
9
+ * values are valid (end-of-life recycling credits). When the total is ≤ 0 the stage
10
+ * percentages are reported as 0 (valid-but-degenerate; a share of a non-positive
11
+ * total is not meaningful).
12
+ * @throws {RangeError} empty stages, or productionQuantity ≤ 0
9
13
  */
10
14
  export function productCarbonFootprint(input) {
11
15
  const { stages, productionQuantity } = input;
16
+ if (!stages || stages.length === 0) {
17
+ throw new RangeError('stages must contain at least one lifecycle stage');
18
+ }
19
+ if (productionQuantity <= 0) {
20
+ throw new RangeError('productionQuantity must be greater than 0');
21
+ }
12
22
  const totalCo2Kg = roundTo(stages.reduce((sum, s) => sum + s.co2Kg, 0), 2);
13
23
  const perUnitCo2Kg = roundTo(totalCo2Kg / productionQuantity, 4);
14
24
  const stageBreakdown = stages.map(s => ({
15
25
  name: s.name,
16
26
  co2Kg: roundTo(s.co2Kg, 2),
17
- percent: roundTo((s.co2Kg / totalCo2Kg) * 100, 1),
27
+ // totalCo2Kg ≤ 0 (zero stages, or credits outweighing emissions) report 0%, not NaN
28
+ // or a misleading share of a negative total
29
+ percent: totalCo2Kg > 0 ? roundTo((s.co2Kg / totalCo2Kg) * 100, 1) : 0,
18
30
  }));
19
31
  let dominantStage = stages[0].name;
20
32
  let maxCo2 = stages[0].co2Kg;
@@ -1 +1 @@
1
- {"version":3,"file":"productCarbonFootprint.js","sourceRoot":"","sources":["../../src/environmental/productCarbonFootprint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAkC;IACvE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAC;IAE7C,MAAM,UAAU,GAAG,OAAO,CACxB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAC3C,CAAC,CACF,CAAC;IACF,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,GAAG,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAEjE,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;KAClD,CAAC,CAAC,CAAC;IAEJ,IAAI,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnC,IAAI,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC;YACrB,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC;YACjB,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"productCarbonFootprint.js","sourceRoot":"","sources":["../../src/environmental/productCarbonFootprint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAkC;IACvE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAC;IAE7C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,UAAU,CAAC,kDAAkD,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,kBAAkB,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,UAAU,CAAC,2CAA2C,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CACxB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAC3C,CAAC,CACF,CAAC;IACF,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,GAAG,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAEjE,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1B,sFAAsF;QACtF,4CAA4C;QAC5C,OAAO,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACvE,CAAC,CAAC,CAAC;IAEJ,IAAI,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnC,IAAI,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC;YACrB,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC;YACjB,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC;AACrE,CAAC"}
@@ -5,7 +5,9 @@ import type { VocEmissionsInput, VocEmissionsResult } from './types.js';
5
5
  * @formula emitted = total × (1 - captureEff × destructionEff)
6
6
  * @reference EPA AP-42, CARB guidelines
7
7
  * @param input - Total VOC, capture efficiency, destruction efficiency
8
- * @returns Emitted, captured, and destroyed VOC amounts
8
+ * @returns Emitted, captured, and destroyed VOC amounts. totalVocKg = 0 (no VOC used)
9
+ * is valid-but-degenerate: reductionPercent is reported as 0.
10
+ * @throws {RangeError} totalVocKg < 0, or an efficiency outside [0, 1]
9
11
  */
10
12
  export declare function vocEmissions(input: VocEmissionsInput): VocEmissionsResult;
11
13
  //# sourceMappingURL=vocEmissions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vocEmissions.d.ts","sourceRoot":"","sources":["../../src/environmental/vocEmissions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAExE;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CAczE"}
1
+ {"version":3,"file":"vocEmissions.d.ts","sourceRoot":"","sources":["../../src/environmental/vocEmissions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAExE;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CA2BzE"}
@@ -5,14 +5,28 @@ import { roundTo } from '../utils.js';
5
5
  * @formula emitted = total × (1 - captureEff × destructionEff)
6
6
  * @reference EPA AP-42, CARB guidelines
7
7
  * @param input - Total VOC, capture efficiency, destruction efficiency
8
- * @returns Emitted, captured, and destroyed VOC amounts
8
+ * @returns Emitted, captured, and destroyed VOC amounts. totalVocKg = 0 (no VOC used)
9
+ * is valid-but-degenerate: reductionPercent is reported as 0.
10
+ * @throws {RangeError} totalVocKg < 0, or an efficiency outside [0, 1]
9
11
  */
10
12
  export function vocEmissions(input) {
11
13
  const { totalVocKg, captureEfficiency, destructionEfficiency } = input;
14
+ if (totalVocKg < 0) {
15
+ throw new RangeError('totalVocKg must not be negative');
16
+ }
17
+ if (captureEfficiency < 0 || captureEfficiency > 1) {
18
+ throw new RangeError('captureEfficiency must be between 0 and 1');
19
+ }
20
+ if (destructionEfficiency < 0 || destructionEfficiency > 1) {
21
+ throw new RangeError('destructionEfficiency must be between 0 and 1');
22
+ }
12
23
  const capturedVocKg = roundTo(totalVocKg * captureEfficiency, 2);
13
24
  const destroyedVocKg = roundTo(capturedVocKg * destructionEfficiency, 2);
14
25
  const emittedVocKg = roundTo(totalVocKg - destroyedVocKg, 2);
15
- const reductionPercent = roundTo((destroyedVocKg / totalVocKg) * 100, 2);
26
+ // totalVocKg = 0 is valid-but-degenerate report 0%, not NaN
27
+ const reductionPercent = totalVocKg > 0
28
+ ? roundTo((destroyedVocKg / totalVocKg) * 100, 2)
29
+ : 0;
16
30
  return {
17
31
  emittedVocKg,
18
32
  capturedVocKg,
@@ -1 +1 @@
1
- {"version":3,"file":"vocEmissions.js","sourceRoot":"","sources":["../../src/environmental/vocEmissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,GAAG,KAAK,CAAC;IAEvE,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,GAAG,iBAAiB,EAAE,CAAC,CAAC,CAAC;IACjE,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa,GAAG,qBAAqB,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,GAAG,cAAc,EAAE,CAAC,CAAC,CAAC;IAC7D,MAAM,gBAAgB,GAAG,OAAO,CAAC,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;IAEzE,OAAO;QACL,YAAY;QACZ,aAAa;QACb,cAAc;QACd,gBAAgB;KACjB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"vocEmissions.js","sourceRoot":"","sources":["../../src/environmental/vocEmissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,GAAG,KAAK,CAAC;IAEvE,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,UAAU,CAAC,iCAAiC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,iBAAiB,GAAG,CAAC,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,UAAU,CAAC,2CAA2C,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,qBAAqB,GAAG,CAAC,IAAI,qBAAqB,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,UAAU,CAAC,+CAA+C,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,GAAG,iBAAiB,EAAE,CAAC,CAAC,CAAC;IACjE,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa,GAAG,qBAAqB,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,GAAG,cAAc,EAAE,CAAC,CAAC,CAAC;IAC7D,8DAA8D;IAC9D,MAAM,gBAAgB,GAAG,UAAU,GAAG,CAAC;QACrC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC,CAAC;IAEN,OAAO;QACL,YAAY;QACZ,aAAa;QACb,cAAc;QACd,gBAAgB;KACjB,CAAC;AACJ,CAAC"}
@@ -5,7 +5,9 @@ import type { WaterFootprintInput, WaterFootprintResult } from './types.js';
5
5
  * @formula total = blue + green + grey
6
6
  * @reference Water Footprint Network, ISO 14046
7
7
  * @param input - Blue, green, grey water volumes
8
- * @returns Total water footprint with percentage breakdown
8
+ * @returns Total water footprint with percentage breakdown. An all-zero footprint is
9
+ * valid-but-degenerate: percentages are reported as 0.
10
+ * @throws {RangeError} any water volume < 0
9
11
  */
10
12
  export declare function waterFootprint(input: WaterFootprintInput): WaterFootprintResult;
11
13
  //# sourceMappingURL=waterFootprint.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"waterFootprint.d.ts","sourceRoot":"","sources":["../../src/environmental/waterFootprint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE5E;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAa/E"}
1
+ {"version":3,"file":"waterFootprint.d.ts","sourceRoot":"","sources":["../../src/environmental/waterFootprint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE5E;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAmB/E"}
@@ -5,14 +5,21 @@ import { roundTo } from '../utils.js';
5
5
  * @formula total = blue + green + grey
6
6
  * @reference Water Footprint Network, ISO 14046
7
7
  * @param input - Blue, green, grey water volumes
8
- * @returns Total water footprint with percentage breakdown
8
+ * @returns Total water footprint with percentage breakdown. An all-zero footprint is
9
+ * valid-but-degenerate: percentages are reported as 0.
10
+ * @throws {RangeError} any water volume < 0
9
11
  */
10
12
  export function waterFootprint(input) {
11
13
  const { blueWaterM3, greenWaterM3, greyWaterM3, productionUnits } = input;
14
+ if (blueWaterM3 < 0 || greenWaterM3 < 0 || greyWaterM3 < 0) {
15
+ throw new RangeError('water volumes must not be negative');
16
+ }
12
17
  const totalWaterM3 = roundTo(blueWaterM3 + greenWaterM3 + greyWaterM3, 2);
13
- const bluePercent = roundTo((blueWaterM3 / totalWaterM3) * 100, 1);
14
- const greenPercent = roundTo((greenWaterM3 / totalWaterM3) * 100, 1);
15
- const greyPercent = roundTo((greyWaterM3 / totalWaterM3) * 100, 1);
18
+ // totalWaterM3 = 0 is valid-but-degenerate report 0%, not NaN
19
+ const pct = (v) => totalWaterM3 > 0 ? roundTo((v / totalWaterM3) * 100, 1) : 0;
20
+ const bluePercent = pct(blueWaterM3);
21
+ const greenPercent = pct(greenWaterM3);
22
+ const greyPercent = pct(greyWaterM3);
16
23
  const perUnitM3 = productionUnits != null && productionUnits > 0
17
24
  ? roundTo(totalWaterM3 / productionUnits, 4)
18
25
  : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"waterFootprint.js","sourceRoot":"","sources":["../../src/environmental/waterFootprint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAE1E,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,GAAG,YAAY,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,WAAW,GAAG,YAAY,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,YAAY,GAAG,YAAY,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,WAAW,GAAG,YAAY,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;IAEnE,MAAM,SAAS,GAAG,eAAe,IAAI,IAAI,IAAI,eAAe,GAAG,CAAC;QAC9D,CAAC,CAAC,OAAO,CAAC,YAAY,GAAG,eAAe,EAAE,CAAC,CAAC;QAC5C,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AAC7E,CAAC"}
1
+ {"version":3,"file":"waterFootprint.js","sourceRoot":"","sources":["../../src/environmental/waterFootprint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAE1E,IAAI,WAAW,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,UAAU,CAAC,oCAAoC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,GAAG,YAAY,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC;IAC1E,gEAAgE;IAChE,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;IAErC,MAAM,SAAS,GAAG,eAAe,IAAI,IAAI,IAAI,eAAe,GAAG,CAAC;QAC9D,CAAC,CAAC,OAAO,CAAC,YAAY,GAAG,eAAe,EAAE,CAAC,CAAC;QAC5C,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AAC7E,CAAC"}
package/dist/math.d.ts CHANGED
@@ -19,8 +19,4 @@ export declare function normalCDF(x: number): number;
19
19
  * @returns z-score such that P(Z ≤ z) = p
20
20
  */
21
21
  export declare function normalInvCDF(p: number): number;
22
- /**
23
- * Clamp a value to a range [min, max].
24
- */
25
- export declare function clamp(value: number, min: number, max: number): number;
26
22
  //# sourceMappingURL=math.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAe3C;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAsD9C;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAErE"}
1
+ {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAe3C;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAsD9C"}
package/dist/math.js CHANGED
@@ -86,10 +86,4 @@ export function normalInvCDF(p) {
86
86
  ((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1);
87
87
  }
88
88
  }
89
- /**
90
- * Clamp a value to a range [min, max].
91
- */
92
- export function clamp(value, min, max) {
93
- return Math.max(min, Math.min(max, value));
94
- }
95
89
  //# sourceMappingURL=math.js.map
package/dist/math.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"math.js","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,MAAM,EAAE,GAAG,WAAW,CAAC;IACvB,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC;IACxB,MAAM,EAAE,GAAG,WAAW,CAAC;IACvB,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC;IACxB,MAAM,EAAE,GAAG,WAAW,CAAC;IACvB,MAAM,CAAC,GAAG,SAAS,CAAC;IAEpB,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAExC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACjC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAE9F,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,CAAS;IACpC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,QAAQ,CAAC;IAC7B,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC5B,IAAI,CAAC,KAAK,GAAG;QAAE,OAAO,CAAC,CAAC;IAExB,MAAM,CAAC,GAAG;QACR,CAAC,mBAAmB;QACpB,mBAAmB;QACnB,CAAC,mBAAmB;QACpB,mBAAmB;QACnB,CAAC,mBAAmB;QACpB,mBAAmB;KACpB,CAAC;IACF,MAAM,CAAC,GAAG;QACR,CAAC,mBAAmB;QACpB,mBAAmB;QACnB,CAAC,mBAAmB;QACpB,mBAAmB;QACnB,CAAC,mBAAmB;KACrB,CAAC;IACF,MAAM,CAAC,GAAG;QACR,CAAC,oBAAoB;QACrB,CAAC,oBAAoB;QACrB,CAAC,mBAAmB;QACpB,CAAC,mBAAmB;QACpB,mBAAmB;QACnB,mBAAmB;KACpB,CAAC;IACF,MAAM,CAAC,GAAG;QACR,oBAAoB;QACpB,oBAAoB;QACpB,mBAAmB;QACnB,mBAAmB;KACpB,CAAC;IAEF,MAAM,IAAI,GAAG,OAAO,CAAC;IACrB,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC;IAEvB,IAAI,CAAS,EAAE,CAAS,CAAC;IAEzB,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;QACb,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;SAAM,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACZ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC9E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,CAAC;SAAM,CAAC;QACN,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;IAC3D,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"math.js","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,11 @@ export declare const CONVERSION_TABLE: ConversionRow[];
9
9
  /**
10
10
  * Convert a hardness value from one scale to all scales using
11
11
  * linear interpolation on the conversion table.
12
+ *
13
+ * Inputs outside the table (e.g. HRC below 20 or above 68) are clamped to the boundary
14
+ * row and disclosed via `outOfTableRange: true` — the returned values are then a boundary
15
+ * approximation, not a conversion of the input. Exact boundary hits are table hits and
16
+ * are not flagged. Interpolation within the table is the method's intended behavior.
12
17
  */
13
18
  export declare function hardness(input: HardnessInput): HardnessResult;
14
19
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"hardness.d.ts","sourceRoot":"","sources":["../../src/metal/hardness.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE/E,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAID,eAAO,MAAM,gBAAgB,EAAE,aAAa,EAY3C,CAAC;AAoBF;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CA6C7D"}
1
+ {"version":3,"file":"hardness.d.ts","sourceRoot":"","sources":["../../src/metal/hardness.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE/E,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAID,eAAO,MAAM,gBAAgB,EAAE,aAAa,EAY3C,CAAC;AAoBF;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAmD7D"}