formulab 0.13.4 → 0.13.6

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 (152) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/automotive/batteryRuntime.d.ts +1 -0
  3. package/dist/automotive/batteryRuntime.d.ts.map +1 -1
  4. package/dist/automotive/batteryRuntime.js +9 -9
  5. package/dist/automotive/batteryRuntime.js.map +1 -1
  6. package/dist/automotive/evCharging.d.ts +2 -0
  7. package/dist/automotive/evCharging.d.ts.map +1 -1
  8. package/dist/automotive/evCharging.js +4 -17
  9. package/dist/automotive/evCharging.js.map +1 -1
  10. package/dist/automotive/fuelEconomy.d.ts +1 -0
  11. package/dist/automotive/fuelEconomy.d.ts.map +1 -1
  12. package/dist/automotive/fuelEconomy.js +3 -8
  13. package/dist/automotive/fuelEconomy.js.map +1 -1
  14. package/dist/automotive/gearRatio.d.ts +1 -0
  15. package/dist/automotive/gearRatio.d.ts.map +1 -1
  16. package/dist/automotive/gearRatio.js +3 -9
  17. package/dist/automotive/gearRatio.js.map +1 -1
  18. package/dist/chemical/ph.d.ts.map +1 -1
  19. package/dist/chemical/ph.js +5 -7
  20. package/dist/chemical/ph.js.map +1 -1
  21. package/dist/chemical/pid.js +3 -3
  22. package/dist/chemical/pid.js.map +1 -1
  23. package/dist/construction/pert.d.ts +3 -2
  24. package/dist/construction/pert.d.ts.map +1 -1
  25. package/dist/construction/pert.js +11 -7
  26. package/dist/construction/pert.js.map +1 -1
  27. package/dist/construction/slope.d.ts.map +1 -1
  28. package/dist/construction/slope.js +6 -1
  29. package/dist/construction/slope.js.map +1 -1
  30. package/dist/electronics/smt-takt.d.ts.map +1 -1
  31. package/dist/electronics/smt-takt.js +4 -16
  32. package/dist/electronics/smt-takt.js.map +1 -1
  33. package/dist/electronics/solder.d.ts.map +1 -1
  34. package/dist/electronics/solder.js +5 -8
  35. package/dist/electronics/solder.js.map +1 -1
  36. package/dist/electronics/via.d.ts +4 -2
  37. package/dist/electronics/via.d.ts.map +1 -1
  38. package/dist/electronics/via.js +14 -3
  39. package/dist/electronics/via.js.map +1 -1
  40. package/dist/energy/degreeDay.d.ts +1 -0
  41. package/dist/energy/degreeDay.d.ts.map +1 -1
  42. package/dist/energy/degreeDay.js +2 -1
  43. package/dist/energy/degreeDay.js.map +1 -1
  44. package/dist/energy/insulationRoi.d.ts +2 -0
  45. package/dist/energy/insulationRoi.d.ts.map +1 -1
  46. package/dist/energy/insulationRoi.js +13 -10
  47. package/dist/energy/insulationRoi.js.map +1 -1
  48. package/dist/energy/motorEfficiency.d.ts.map +1 -1
  49. package/dist/energy/motorEfficiency.js +5 -8
  50. package/dist/energy/motorEfficiency.js.map +1 -1
  51. package/dist/food/calorie.d.ts +1 -0
  52. package/dist/food/calorie.d.ts.map +1 -1
  53. package/dist/food/calorie.js +9 -2
  54. package/dist/food/calorie.js.map +1 -1
  55. package/dist/logistics/dimWeight.d.ts.map +1 -1
  56. package/dist/logistics/dimWeight.js +8 -10
  57. package/dist/logistics/dimWeight.js.map +1 -1
  58. package/dist/logistics/fillRate.d.ts.map +1 -1
  59. package/dist/logistics/fillRate.js +2 -9
  60. package/dist/logistics/fillRate.js.map +1 -1
  61. package/dist/logistics/freightClass.d.ts.map +1 -1
  62. package/dist/logistics/freightClass.js +8 -9
  63. package/dist/logistics/freightClass.js.map +1 -1
  64. package/dist/logistics/kanban.d.ts.map +1 -1
  65. package/dist/logistics/kanban.js +8 -2
  66. package/dist/logistics/kanban.js.map +1 -1
  67. package/dist/logistics/pickTime.d.ts.map +1 -1
  68. package/dist/logistics/pickTime.js +4 -12
  69. package/dist/logistics/pickTime.js.map +1 -1
  70. package/dist/logistics/shipping.d.ts +4 -2
  71. package/dist/logistics/shipping.d.ts.map +1 -1
  72. package/dist/logistics/shipping.js +13 -6
  73. package/dist/logistics/shipping.js.map +1 -1
  74. package/dist/logistics/tsp.d.ts +2 -1
  75. package/dist/logistics/tsp.d.ts.map +1 -1
  76. package/dist/logistics/tsp.js +2 -1
  77. package/dist/logistics/tsp.js.map +1 -1
  78. package/dist/metal/bearing.d.ts +2 -0
  79. package/dist/metal/bearing.d.ts.map +1 -1
  80. package/dist/metal/bearing.js +10 -2
  81. package/dist/metal/bearing.js.map +1 -1
  82. package/dist/metal/bolt.d.ts.map +1 -1
  83. package/dist/metal/bolt.js +12 -36
  84. package/dist/metal/bolt.js.map +1 -1
  85. package/dist/metal/cutting.d.ts +2 -0
  86. package/dist/metal/cutting.d.ts.map +1 -1
  87. package/dist/metal/cutting.js +3 -1
  88. package/dist/metal/cutting.js.map +1 -1
  89. package/dist/metal/cuttingStock.d.ts +4 -1
  90. package/dist/metal/cuttingStock.d.ts.map +1 -1
  91. package/dist/metal/cuttingStock.js +15 -6
  92. package/dist/metal/cuttingStock.js.map +1 -1
  93. package/dist/metal/material.d.ts +6 -1
  94. package/dist/metal/material.d.ts.map +1 -1
  95. package/dist/metal/material.js +11 -4
  96. package/dist/metal/material.js.map +1 -1
  97. package/dist/metal/pressFit.d.ts.map +1 -1
  98. package/dist/metal/pressFit.js +8 -12
  99. package/dist/metal/pressFit.js.map +1 -1
  100. package/dist/metal/pressTonnage.d.ts +1 -0
  101. package/dist/metal/pressTonnage.d.ts.map +1 -1
  102. package/dist/metal/pressTonnage.js +3 -13
  103. package/dist/metal/pressTonnage.js.map +1 -1
  104. package/dist/metal/roughness.d.ts +2 -0
  105. package/dist/metal/roughness.d.ts.map +1 -1
  106. package/dist/metal/roughness.js +4 -2
  107. package/dist/metal/roughness.js.map +1 -1
  108. package/dist/metal/screw.d.ts +3 -1
  109. package/dist/metal/screw.d.ts.map +1 -1
  110. package/dist/metal/screw.js +5 -2
  111. package/dist/metal/screw.js.map +1 -1
  112. package/dist/metal/spring.d.ts.map +1 -1
  113. package/dist/metal/spring.js +6 -8
  114. package/dist/metal/spring.js.map +1 -1
  115. package/dist/metal/tap.d.ts.map +1 -1
  116. package/dist/metal/tap.js +4 -9
  117. package/dist/metal/tap.js.map +1 -1
  118. package/dist/metal/thread.d.ts +3 -1
  119. package/dist/metal/thread.d.ts.map +1 -1
  120. package/dist/metal/thread.js +8 -4
  121. package/dist/metal/thread.js.map +1 -1
  122. package/dist/metal/tolerance.d.ts +4 -1
  123. package/dist/metal/tolerance.d.ts.map +1 -1
  124. package/dist/metal/tolerance.js +12 -6
  125. package/dist/metal/tolerance.js.map +1 -1
  126. package/dist/metal/vibration.d.ts +3 -0
  127. package/dist/metal/vibration.d.ts.map +1 -1
  128. package/dist/metal/vibration.js +28 -10
  129. package/dist/metal/vibration.js.map +1 -1
  130. package/dist/metal/weldHeat.d.ts +2 -0
  131. package/dist/metal/weldHeat.d.ts.map +1 -1
  132. package/dist/metal/weldHeat.js +13 -15
  133. package/dist/metal/weldHeat.js.map +1 -1
  134. package/dist/metal/welding.d.ts.map +1 -1
  135. package/dist/metal/welding.js +2 -3
  136. package/dist/metal/welding.js.map +1 -1
  137. package/dist/quality/aql.d.ts.map +1 -1
  138. package/dist/quality/aql.js +6 -2
  139. package/dist/quality/aql.js.map +1 -1
  140. package/dist/quality/dpmo.d.ts +1 -0
  141. package/dist/quality/dpmo.d.ts.map +1 -1
  142. package/dist/quality/dpmo.js +7 -3
  143. package/dist/quality/dpmo.js.map +1 -1
  144. package/dist/quality/lineBalancing.d.ts +4 -2
  145. package/dist/quality/lineBalancing.d.ts.map +1 -1
  146. package/dist/quality/lineBalancing.js +18 -9
  147. package/dist/quality/lineBalancing.js.map +1 -1
  148. package/dist/quality/mtbf.d.ts +2 -0
  149. package/dist/quality/mtbf.d.ts.map +1 -1
  150. package/dist/quality/mtbf.js +8 -9
  151. package/dist/quality/mtbf.js.map +1 -1
  152. package/package.json +1 -1
@@ -8,6 +8,7 @@ import type { DegreeDayInput, DegreeDayResult } from './types.js';
8
8
  *
9
9
  * @reference ASHRAE Fundamentals Handbook — Degree Day Method
10
10
  * @reference ISO 50001:2018 — Energy management systems
11
+ * @throws RangeError if dailyTemps is empty
11
12
  */
12
13
  export declare function degreeDay(input: DegreeDayInput): DegreeDayResult;
13
14
  //# sourceMappingURL=degreeDay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"degreeDay.d.ts","sourceRoot":"","sources":["../../src/energy/degreeDay.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElE;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAoChE"}
1
+ {"version":3,"file":"degreeDay.d.ts","sourceRoot":"","sources":["../../src/energy/degreeDay.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElE;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAoChE"}
@@ -8,12 +8,13 @@ import { roundTo } from '../utils.js';
8
8
  *
9
9
  * @reference ASHRAE Fundamentals Handbook — Degree Day Method
10
10
  * @reference ISO 50001:2018 — Energy management systems
11
+ * @throws RangeError if dailyTemps is empty
11
12
  */
12
13
  export function degreeDay(input) {
13
14
  const { dailyTemps, baseHeating = 18, baseCooling = 24 } = input;
14
15
  const totalDays = dailyTemps.length;
15
16
  if (totalDays === 0) {
16
- return { hdd: 0, cdd: 0, totalDays: 0, heatingDays: 0, coolingDays: 0, neutralDays: 0, avgTemp: 0 };
17
+ throw new RangeError('dailyTemps must not be empty');
17
18
  }
18
19
  let hdd = 0;
19
20
  let cdd = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"degreeDay.js","sourceRoot":"","sources":["../../src/energy/degreeDay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EAAE,UAAU,EAAE,WAAW,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;IACjE,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC;IAEpC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACtG,CAAC;IAED,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,GAAG,GAAG,CAAC,CAAC;IAEZ,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,GAAG,IAAI,IAAI,CAAC;QACZ,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC;QACnD,GAAG,IAAI,UAAU,CAAC;QAClB,GAAG,IAAI,UAAU,CAAC;QAClB,IAAI,UAAU,GAAG,CAAC;YAAE,WAAW,EAAE,CAAC;QAClC,IAAI,UAAU,GAAG,CAAC;YAAE,WAAW,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;IAC1D,MAAM,OAAO,GAAG,GAAG,GAAG,SAAS,CAAC;IAEhC,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACpB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACpB,SAAS;QACT,WAAW;QACX,WAAW;QACX,WAAW;QACX,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;KAC7B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"degreeDay.js","sourceRoot":"","sources":["../../src/energy/degreeDay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EAAE,UAAU,EAAE,WAAW,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;IACjE,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC;IAEpC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,UAAU,CAAC,8BAA8B,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,GAAG,GAAG,CAAC,CAAC;IAEZ,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,GAAG,IAAI,IAAI,CAAC;QACZ,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC;QACnD,GAAG,IAAI,UAAU,CAAC;QAClB,GAAG,IAAI,UAAU,CAAC;QAClB,IAAI,UAAU,GAAG,CAAC;YAAE,WAAW,EAAE,CAAC;QAClC,IAAI,UAAU,GAAG,CAAC;YAAE,WAAW,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;IAC1D,MAAM,OAAO,GAAG,GAAG,GAAG,SAAS,CAAC;IAEhC,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACpB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACpB,SAAS;QACT,WAAW;QACX,WAAW;QACX,WAAW;QACX,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;KAC7B,CAAC;AACJ,CAAC"}
@@ -9,6 +9,8 @@ import type { InsulationRoiInput, InsulationRoiResult } from './types.js';
9
9
  *
10
10
  * @param input - Insulation parameters
11
11
  * @returns Insulation ROI result with heat savings and payback
12
+ * @throws RangeError if surfaceArea, tempDifference, insulationK, or
13
+ * insulationThickness is not greater than 0
12
14
  */
13
15
  export declare function insulationRoi(input: InsulationRoiInput): InsulationRoiResult;
14
16
  //# sourceMappingURL=insulationRoi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"insulationRoi.d.ts","sourceRoot":"","sources":["../../src/energy/insulationRoi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE1E;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CAuD5E"}
1
+ {"version":3,"file":"insulationRoi.d.ts","sourceRoot":"","sources":["../../src/energy/insulationRoi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE1E;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CAwD5E"}
@@ -9,19 +9,22 @@ import { roundTo } from '../utils.js';
9
9
  *
10
10
  * @param input - Insulation parameters
11
11
  * @returns Insulation ROI result with heat savings and payback
12
+ * @throws RangeError if surfaceArea, tempDifference, insulationK, or
13
+ * insulationThickness is not greater than 0
12
14
  */
13
15
  export function insulationRoi(input) {
14
16
  const { surfaceArea, tempDifference, insulationK, insulationThickness, surfaceCoefficient = 10, operatingHours, energyCost, boilerEfficiency = 0.8, installationCost, } = input;
15
- if (surfaceArea <= 0 || tempDifference <= 0 || insulationK <= 0 || insulationThickness <= 0) {
16
- return {
17
- bareHeatLoss: 0,
18
- insulatedHeatLoss: 0,
19
- heatSaved: 0,
20
- heatLossReduction: 0,
21
- annualEnergySaved: 0,
22
- annualCostSaved: 0,
23
- paybackPeriod: null,
24
- };
17
+ if (surfaceArea <= 0) {
18
+ throw new RangeError('surfaceArea must be greater than 0');
19
+ }
20
+ if (tempDifference <= 0) {
21
+ throw new RangeError('tempDifference must be greater than 0');
22
+ }
23
+ if (insulationK <= 0) {
24
+ throw new RangeError('insulationK must be greater than 0');
25
+ }
26
+ if (insulationThickness <= 0) {
27
+ throw new RangeError('insulationThickness must be greater than 0');
25
28
  }
26
29
  // Bare surface heat loss: Q = h × A × ΔT (W)
27
30
  const bareHeatLoss = surfaceCoefficient * surfaceArea * tempDifference;
@@ -1 +1 @@
1
- {"version":3,"file":"insulationRoi.js","sourceRoot":"","sources":["../../src/energy/insulationRoi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EACJ,WAAW,EACX,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,kBAAkB,GAAG,EAAE,EACvB,cAAc,EACd,UAAU,EACV,gBAAgB,GAAG,GAAG,EACtB,gBAAgB,GACjB,GAAG,KAAK,CAAC;IAEV,IAAI,WAAW,IAAI,CAAC,IAAI,cAAc,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,IAAI,mBAAmB,IAAI,CAAC,EAAE,CAAC;QAC5F,OAAO;YACL,YAAY,EAAE,CAAC;YACf,iBAAiB,EAAE,CAAC;YACpB,SAAS,EAAE,CAAC;YACZ,iBAAiB,EAAE,CAAC;YACpB,iBAAiB,EAAE,CAAC;YACpB,eAAe,EAAE,CAAC;YAClB,aAAa,EAAE,IAAI;SACpB,CAAC;IACJ,CAAC;IAED,6CAA6C;IAC7C,MAAM,YAAY,GAAG,kBAAkB,GAAG,WAAW,GAAG,cAAc,CAAC;IAEvE,4DAA4D;IAC5D,MAAM,UAAU,GAAG,mBAAmB,GAAG,IAAI,CAAC,CAAC,SAAS;IACxD,MAAM,iBAAiB,GAAG,CAAC,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC;IAChF,MAAM,iBAAiB,GAAG,CAAC,WAAW,GAAG,cAAc,CAAC,GAAG,iBAAiB,CAAC;IAE7E,MAAM,SAAS,GAAG,YAAY,GAAG,iBAAiB,CAAC;IACnD,MAAM,iBAAiB,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAElF,gFAAgF;IAChF,oEAAoE;IACpE,MAAM,iBAAiB,GAAG,CAAC,SAAS,GAAG,cAAc,CAAC,GAAG,IAAI,GAAG,gBAAgB,CAAC;IACjF,MAAM,eAAe,GAAG,iBAAiB,GAAG,UAAU,CAAC;IAEvD,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,GAAG,CAAC,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;QAClF,aAAa,GAAG,gBAAgB,GAAG,eAAe,CAAC;IACrD,CAAC;IAED,OAAO;QACL,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACtC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChD,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAChC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChD,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChD,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;QAC5C,aAAa,EAAE,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;KACzE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"insulationRoi.js","sourceRoot":"","sources":["../../src/energy/insulationRoi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EACJ,WAAW,EACX,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,kBAAkB,GAAG,EAAE,EACvB,cAAc,EACd,UAAU,EACV,gBAAgB,GAAG,GAAG,EACtB,gBAAgB,GACjB,GAAG,KAAK,CAAC;IAEV,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,UAAU,CAAC,oCAAoC,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,UAAU,CAAC,uCAAuC,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,UAAU,CAAC,oCAAoC,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,mBAAmB,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,UAAU,CAAC,4CAA4C,CAAC,CAAC;IACrE,CAAC;IAED,6CAA6C;IAC7C,MAAM,YAAY,GAAG,kBAAkB,GAAG,WAAW,GAAG,cAAc,CAAC;IAEvE,4DAA4D;IAC5D,MAAM,UAAU,GAAG,mBAAmB,GAAG,IAAI,CAAC,CAAC,SAAS;IACxD,MAAM,iBAAiB,GAAG,CAAC,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC;IAChF,MAAM,iBAAiB,GAAG,CAAC,WAAW,GAAG,cAAc,CAAC,GAAG,iBAAiB,CAAC;IAE7E,MAAM,SAAS,GAAG,YAAY,GAAG,iBAAiB,CAAC;IACnD,MAAM,iBAAiB,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAElF,gFAAgF;IAChF,oEAAoE;IACpE,MAAM,iBAAiB,GAAG,CAAC,SAAS,GAAG,cAAc,CAAC,GAAG,IAAI,GAAG,gBAAgB,CAAC;IACjF,MAAM,eAAe,GAAG,iBAAiB,GAAG,UAAU,CAAC;IAEvD,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,GAAG,CAAC,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;QAClF,aAAa,GAAG,gBAAgB,GAAG,eAAe,CAAC;IACrD,CAAC;IAED,OAAO;QACL,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACtC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChD,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAChC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChD,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChD,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;QAC5C,aAAa,EAAE,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;KACzE,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"motorEfficiency.d.ts","sourceRoot":"","sources":["../../src/energy/motorEfficiency.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE9E;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,qBAAqB,CAgDlF"}
1
+ {"version":3,"file":"motorEfficiency.d.ts","sourceRoot":"","sources":["../../src/energy/motorEfficiency.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE9E;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,qBAAqB,CA6ClF"}
@@ -12,14 +12,11 @@
12
12
  export function motorEfficiency(input) {
13
13
  const { motorPower, runningHours, currentEfficiency, newEfficiency, electricityRate, loadFactor, upgradeCost, } = input;
14
14
  // Handle edge case - invalid efficiency values
15
- if (currentEfficiency <= 0 || newEfficiency <= 0) {
16
- return {
17
- currentAnnualCost: 0,
18
- newAnnualCost: 0,
19
- annualSavings: 0,
20
- energySavings: 0,
21
- paybackPeriod: null,
22
- };
15
+ if (currentEfficiency <= 0) {
16
+ throw new RangeError('currentEfficiency must be greater than 0');
17
+ }
18
+ if (newEfficiency <= 0) {
19
+ throw new RangeError('newEfficiency must be greater than 0');
23
20
  }
24
21
  // Calculate annual energy consumption for each efficiency level
25
22
  // Energy = Power * Hours * LoadFactor / Efficiency
@@ -1 +1 @@
1
- {"version":3,"file":"motorEfficiency.js","sourceRoot":"","sources":["../../src/energy/motorEfficiency.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,EACJ,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,UAAU,EACV,WAAW,GACZ,GAAG,KAAK,CAAC;IAEV,+CAA+C;IAC/C,IAAI,iBAAiB,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;QACjD,OAAO;YACL,iBAAiB,EAAE,CAAC;YACpB,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,IAAI;SACpB,CAAC;IACJ,CAAC;IAED,gEAAgE;IAChE,mDAAmD;IACnD,MAAM,mBAAmB,GAAG,CAAC,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC,GAAG,iBAAiB,CAAC;IACzF,MAAM,eAAe,GAAG,CAAC,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC,GAAG,aAAa,CAAC;IAEjF,yBAAyB;IACzB,MAAM,iBAAiB,GAAG,mBAAmB,GAAG,eAAe,CAAC;IAChE,MAAM,aAAa,GAAG,eAAe,GAAG,eAAe,CAAC;IAExD,oBAAoB;IACpB,MAAM,aAAa,GAAG,iBAAiB,GAAG,aAAa,CAAC;IACxD,MAAM,aAAa,GAAG,mBAAmB,GAAG,eAAe,CAAC;IAE5D,2BAA2B;IAC3B,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtE,aAAa,GAAG,WAAW,GAAG,aAAa,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,iBAAiB;QACjB,aAAa;QACb,aAAa;QACb,aAAa;QACb,aAAa;KACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"motorEfficiency.js","sourceRoot":"","sources":["../../src/energy/motorEfficiency.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,EACJ,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,UAAU,EACV,WAAW,GACZ,GAAG,KAAK,CAAC;IAEV,+CAA+C;IAC/C,IAAI,iBAAiB,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,UAAU,CAAC,0CAA0C,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,UAAU,CAAC,sCAAsC,CAAC,CAAC;IAC/D,CAAC;IAED,gEAAgE;IAChE,mDAAmD;IACnD,MAAM,mBAAmB,GAAG,CAAC,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC,GAAG,iBAAiB,CAAC;IACzF,MAAM,eAAe,GAAG,CAAC,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC,GAAG,aAAa,CAAC;IAEjF,yBAAyB;IACzB,MAAM,iBAAiB,GAAG,mBAAmB,GAAG,eAAe,CAAC;IAChE,MAAM,aAAa,GAAG,eAAe,GAAG,eAAe,CAAC;IAExD,oBAAoB;IACpB,MAAM,aAAa,GAAG,iBAAiB,GAAG,aAAa,CAAC;IACxD,MAAM,aAAa,GAAG,mBAAmB,GAAG,eAAe,CAAC;IAE5D,2BAA2B;IAC3B,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtE,aAAa,GAAG,WAAW,GAAG,aAAa,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,iBAAiB;QACjB,aAAa;QACb,aAAa;QACb,aAAa;QACb,aAAa;KACd,CAAC;AACJ,CAAC"}
@@ -8,6 +8,7 @@ import type { CalorieInput, CalorieResult } from './types.js';
8
8
  *
9
9
  * @param input - Calorie input parameters
10
10
  * @returns Calorie result with BMR, TDEE, and calorie goals
11
+ * @throws RangeError if weightKg, heightCm, or age is not greater than 0
11
12
  */
12
13
  export declare function calorie(input: CalorieInput): CalorieResult;
13
14
  //# sourceMappingURL=calorie.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"calorie.d.ts","sourceRoot":"","sources":["../../src/food/calorie.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAC;AAU7E;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CAyB1D"}
1
+ {"version":3,"file":"calorie.d.ts","sourceRoot":"","sources":["../../src/food/calorie.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAC;AAU7E;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CA+B1D"}
@@ -15,11 +15,18 @@ const ACTIVITY_MULTIPLIERS = {
15
15
  *
16
16
  * @param input - Calorie input parameters
17
17
  * @returns Calorie result with BMR, TDEE, and calorie goals
18
+ * @throws RangeError if weightKg, heightCm, or age is not greater than 0
18
19
  */
19
20
  export function calorie(input) {
20
21
  const { gender, age, weightKg, heightCm, activityLevel } = input;
21
- if (weightKg <= 0 || heightCm <= 0 || age <= 0) {
22
- return { bmr: 0, tdee: 0, weightLoss: 0, weightMaintain: 0, weightGain: 0 };
22
+ if (weightKg <= 0) {
23
+ throw new RangeError('weightKg must be greater than 0');
24
+ }
25
+ if (heightCm <= 0) {
26
+ throw new RangeError('heightCm must be greater than 0');
27
+ }
28
+ if (age <= 0) {
29
+ throw new RangeError('age must be greater than 0');
23
30
  }
24
31
  // Mifflin-St Jeor equation
25
32
  let bmr;
@@ -1 +1 @@
1
- {"version":3,"file":"calorie.js","sourceRoot":"","sources":["../../src/food/calorie.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC,MAAM,oBAAoB,GAAkC;IAC1D,SAAS,EAAE,GAAG;IACd,KAAK,EAAE,KAAK;IACZ,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,KAAK;IACb,UAAU,EAAE,GAAG;CAChB,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAEjE,IAAI,QAAQ,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC;IAED,2BAA2B;IAC3B,IAAI,GAAW,CAAC;IAChB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,GAAG,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,GAAG,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,GAAG,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IACxD,CAAC;IAED,MAAM,UAAU,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,GAAG,GAAG,UAAU,CAAC;IAE9B,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACtB,UAAU,EAAE,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC;QAClC,cAAc,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAChC,UAAU,EAAE,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC;KACnC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"calorie.js","sourceRoot":"","sources":["../../src/food/calorie.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC,MAAM,oBAAoB,GAAkC;IAC1D,SAAS,EAAE,GAAG;IACd,KAAK,EAAE,KAAK;IACZ,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,KAAK;IACb,UAAU,EAAE,GAAG;CAChB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAEjE,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,UAAU,CAAC,iCAAiC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,UAAU,CAAC,iCAAiC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACb,MAAM,IAAI,UAAU,CAAC,4BAA4B,CAAC,CAAC;IACrD,CAAC;IAED,2BAA2B;IAC3B,IAAI,GAAW,CAAC;IAChB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,GAAG,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,GAAG,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,GAAG,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IACxD,CAAC;IAED,MAAM,UAAU,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,GAAG,GAAG,UAAU,CAAC;IAE9B,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACtB,UAAU,EAAE,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC;QAClC,cAAc,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAChC,UAAU,EAAE,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC;KACnC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dimWeight.d.ts","sourceRoot":"","sources":["../../src/logistics/dimWeight.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAe,MAAM,YAAY,CAAC;AAa/E;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAgChE"}
1
+ {"version":3,"file":"dimWeight.d.ts","sourceRoot":"","sources":["../../src/logistics/dimWeight.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAe,MAAM,YAAY,CAAC;AAa/E;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CA0BhE"}
@@ -21,16 +21,14 @@ const DIM_FACTORS = {
21
21
  */
22
22
  export function dimWeight(input) {
23
23
  const { length, width, height, actualWeight, carrier } = input;
24
- // Handle zero/invalid inputs
25
- if (length <= 0 || width <= 0 || height <= 0 || actualWeight < 0) {
26
- return {
27
- dimensionalWeight: 0,
28
- actualWeight: 0,
29
- billableWeight: 0,
30
- dimFactor: DIM_FACTORS[carrier],
31
- isDimWeightHigher: false,
32
- };
33
- }
24
+ if (length <= 0)
25
+ throw new RangeError('length must be greater than 0');
26
+ if (width <= 0)
27
+ throw new RangeError('width must be greater than 0');
28
+ if (height <= 0)
29
+ throw new RangeError('height must be greater than 0');
30
+ if (actualWeight < 0)
31
+ throw new RangeError('actualWeight must not be negative');
34
32
  const dimFactor = DIM_FACTORS[carrier];
35
33
  // Dimensional weight = (L × W × H) / DIM factor
36
34
  // Input is in cm, output in kg
@@ -1 +1 @@
1
- {"version":3,"file":"dimWeight.js","sourceRoot":"","sources":["../../src/logistics/dimWeight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC,qEAAqE;AACrE,6BAA6B;AAC7B,mEAAmE;AACnE,wEAAwE;AACxE,4DAA4D;AAC5D,MAAM,WAAW,GAAgC;IAC/C,YAAY,EAAE,IAAI;IAClB,iBAAiB,EAAE,IAAI;IACvB,MAAM,EAAE,IAAI;CACb,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAE/D,6BAA6B;IAC7B,IAAI,MAAM,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACjE,OAAO;YACL,iBAAiB,EAAE,CAAC;YACpB,YAAY,EAAE,CAAC;YACf,cAAc,EAAE,CAAC;YACjB,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC;YAC/B,iBAAiB,EAAE,KAAK;SACzB,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAEvC,gDAAgD;IAChD,+BAA+B;IAC/B,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IAC1C,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC;IAC5D,MAAM,mBAAmB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAErD,2DAA2D;IAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IAExE,OAAO;QACL,iBAAiB;QACjB,YAAY,EAAE,mBAAmB;QACjC,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAC1C,SAAS;QACT,iBAAiB,EAAE,iBAAiB,GAAG,mBAAmB;KAC3D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"dimWeight.js","sourceRoot":"","sources":["../../src/logistics/dimWeight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC,qEAAqE;AACrE,6BAA6B;AAC7B,mEAAmE;AACnE,wEAAwE;AACxE,4DAA4D;AAC5D,MAAM,WAAW,GAAgC;IAC/C,YAAY,EAAE,IAAI;IAClB,iBAAiB,EAAE,IAAI;IACvB,MAAM,EAAE,IAAI;CACb,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAE/D,IAAI,MAAM,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,+BAA+B,CAAC,CAAC;IACvE,IAAI,KAAK,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,8BAA8B,CAAC,CAAC;IACrE,IAAI,MAAM,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,+BAA+B,CAAC,CAAC;IACvE,IAAI,YAAY,GAAG,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,mCAAmC,CAAC,CAAC;IAEhF,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAEvC,gDAAgD;IAChD,+BAA+B;IAC/B,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IAC1C,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC;IAC5D,MAAM,mBAAmB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAErD,2DAA2D;IAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IAExE,OAAO;QACL,iBAAiB;QACjB,YAAY,EAAE,mBAAmB;QACjC,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAC1C,SAAS;QACT,iBAAiB,EAAE,iBAAiB,GAAG,mBAAmB;KAC3D,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fillRate.d.ts","sourceRoot":"","sources":["../../src/logistics/fillRate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CA2B7D;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CA0BzE"}
1
+ {"version":3,"file":"fillRate.d.ts","sourceRoot":"","sources":["../../src/logistics/fillRate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAmB7D;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CA0BzE"}
@@ -11,15 +11,8 @@ import { normalCDF } from '../math.js';
11
11
  */
12
12
  export function fillRate(input) {
13
13
  const { totalOrders, filledComplete } = input;
14
- // Handle zero/invalid inputs
15
- if (totalOrders <= 0) {
16
- return {
17
- fillRate: 0,
18
- shortfallRate: 100,
19
- filledComplete: 0,
20
- shortfall: 0,
21
- };
22
- }
14
+ if (totalOrders <= 0)
15
+ throw new RangeError('totalOrders must be greater than 0');
23
16
  // Clamp filledComplete to valid range
24
17
  const actualFilled = Math.min(Math.max(0, filledComplete), totalOrders);
25
18
  const shortfall = totalOrders - actualFilled;
@@ -1 +1 @@
1
- {"version":3,"file":"fillRate.js","sourceRoot":"","sources":["../../src/logistics/fillRate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQvC;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAE9C,6BAA6B;IAC7B,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,aAAa,EAAE,GAAG;YAClB,cAAc,EAAE,CAAC;YACjB,SAAS,EAAE,CAAC;SACb,CAAC;IACJ,CAAC;IAED,sCAAsC;IACtC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,WAAW,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,WAAW,GAAG,YAAY,CAAC;IAE7C,sBAAsB;IACtB,MAAM,IAAI,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC;IAChD,MAAM,aAAa,GAAG,GAAG,GAAG,IAAI,CAAC;IAEjC,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1B,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QACxC,cAAc,EAAE,YAAY;QAC5B,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAE5C,6BAA6B;IAC7B,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,MAAM,EAAE,CAAC;YACT,YAAY,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACxC,mBAAmB,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;SAC9C,CAAC;IACJ,CAAC;IAED,gDAAgD;IAChD,MAAM,MAAM,GAAG,WAAW,GAAG,YAAY,CAAC;IAE1C,2DAA2D;IAC3D,mEAAmE;IACnE,kCAAkC;IAClC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IACtC,MAAM,mBAAmB,GAAG,GAAG,GAAG,KAAK,CAAC;IAExC,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1B,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/B,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;KACrD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"fillRate.js","sourceRoot":"","sources":["../../src/logistics/fillRate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQvC;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAE9C,IAAI,WAAW,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,oCAAoC,CAAC,CAAC;IAEjF,sCAAsC;IACtC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,WAAW,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,WAAW,GAAG,YAAY,CAAC;IAE7C,sBAAsB;IACtB,MAAM,IAAI,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC;IAChD,MAAM,aAAa,GAAG,GAAG,GAAG,IAAI,CAAC;IAEjC,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1B,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QACxC,cAAc,EAAE,YAAY;QAC5B,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAE5C,6BAA6B;IAC7B,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,MAAM,EAAE,CAAC;YACT,YAAY,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACxC,mBAAmB,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;SAC9C,CAAC;IACJ,CAAC;IAED,gDAAgD;IAChD,MAAM,MAAM,GAAG,WAAW,GAAG,YAAY,CAAC;IAE1C,2DAA2D;IAC3D,mEAAmE;IACnE,kCAAkC;IAClC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IACtC,MAAM,mBAAmB,GAAG,GAAG,GAAG,KAAK,CAAC;IAExC,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1B,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/B,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;KACrD,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"freightClass.d.ts","sourceRoot":"","sources":["../../src/logistics/freightClass.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA2BxE;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CAsCzE"}
1
+ {"version":3,"file":"freightClass.d.ts","sourceRoot":"","sources":["../../src/logistics/freightClass.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA2BxE;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CAiCzE"}
@@ -34,15 +34,14 @@ const FREIGHT_CLASS_TABLE = [
34
34
  */
35
35
  export function freightClass(input) {
36
36
  const { weight, length, width, height } = input;
37
- // Handle zero/invalid inputs
38
- if (weight <= 0 || length <= 0 || width <= 0 || height <= 0) {
39
- return {
40
- density: 0,
41
- freightClass: 0,
42
- className: 'Invalid Input',
43
- volumeCuFt: 0,
44
- };
45
- }
37
+ if (weight <= 0)
38
+ throw new RangeError('weight must be greater than 0');
39
+ if (length <= 0)
40
+ throw new RangeError('length must be greater than 0');
41
+ if (width <= 0)
42
+ throw new RangeError('width must be greater than 0');
43
+ if (height <= 0)
44
+ throw new RangeError('height must be greater than 0');
46
45
  // Calculate volume in cubic feet (input is in inches)
47
46
  const volumeCuIn = length * width * height;
48
47
  const volumeCuFt = volumeCuIn / 1728; // 12^3 = 1728 cubic inches per cubic foot
@@ -1 +1 @@
1
- {"version":3,"file":"freightClass.js","sourceRoot":"","sources":["../../src/logistics/freightClass.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"freightClass.js","sourceRoot":"","sources":["../../src/logistics/freightClass.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"kanban.d.ts","sourceRoot":"","sources":["../../src/logistics/kanban.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE5D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CAoCvD"}
1
+ {"version":3,"file":"kanban.d.ts","sourceRoot":"","sources":["../../src/logistics/kanban.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE5D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CAwCvD"}
@@ -17,8 +17,14 @@ import { roundTo } from '../utils.js';
17
17
  */
18
18
  export function kanban(input) {
19
19
  const { dailyDemand, leadTime, safetyFactor, containerQuantity } = input;
20
- // Handle zero/invalid inputs
21
- if (dailyDemand <= 0 || leadTime <= 0 || containerQuantity <= 0 || safetyFactor < 0) {
20
+ if (dailyDemand <= 0)
21
+ throw new RangeError('dailyDemand must be greater than 0');
22
+ if (leadTime <= 0)
23
+ throw new RangeError('leadTime must be greater than 0');
24
+ if (containerQuantity <= 0)
25
+ throw new RangeError('containerQuantity must be greater than 0');
26
+ // Negative safety factor is invalid but returns a zero result (not a throw)
27
+ if (safetyFactor < 0) {
22
28
  return {
23
29
  numberOfKanbans: 0,
24
30
  numberOfKanbansRounded: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"kanban.js","sourceRoot":"","sources":["../../src/logistics/kanban.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,MAAM,CAAC,KAAkB;IACvC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,iBAAiB,EAAE,GAAG,KAAK,CAAC;IAEzE,6BAA6B;IAC7B,IAAI,WAAW,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,IAAI,iBAAiB,IAAI,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACpF,OAAO;YACL,eAAe,EAAE,CAAC;YAClB,sBAAsB,EAAE,CAAC;YACzB,oBAAoB,EAAE,CAAC;YACvB,WAAW,EAAE,CAAC;YACd,gBAAgB,EAAE,CAAC;SACpB,CAAC;IACJ,CAAC;IAED,oCAAoC;IACpC,MAAM,oBAAoB,GAAG,OAAO,CAAC,WAAW,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC;IAEhE,yBAAyB;IACzB,MAAM,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC;IAE/D,8BAA8B;IAC9B,MAAM,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;IAE/E,8BAA8B;IAC9B,MAAM,eAAe,GAAG,OAAO,CAAC,gBAAgB,GAAG,iBAAiB,EAAE,CAAC,CAAC,CAAC;IAEzE,qEAAqE;IACrE,MAAM,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAE1D,OAAO;QACL,eAAe;QACf,sBAAsB;QACtB,oBAAoB;QACpB,WAAW,EAAE,MAAM;QACnB,gBAAgB;KACjB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"kanban.js","sourceRoot":"","sources":["../../src/logistics/kanban.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,MAAM,CAAC,KAAkB;IACvC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,iBAAiB,EAAE,GAAG,KAAK,CAAC;IAEzE,IAAI,WAAW,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,oCAAoC,CAAC,CAAC;IACjF,IAAI,QAAQ,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,iCAAiC,CAAC,CAAC;IAC3E,IAAI,iBAAiB,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,0CAA0C,CAAC,CAAC;IAE7F,4EAA4E;IAC5E,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,eAAe,EAAE,CAAC;YAClB,sBAAsB,EAAE,CAAC;YACzB,oBAAoB,EAAE,CAAC;YACvB,WAAW,EAAE,CAAC;YACd,gBAAgB,EAAE,CAAC;SACpB,CAAC;IACJ,CAAC;IAED,oCAAoC;IACpC,MAAM,oBAAoB,GAAG,OAAO,CAAC,WAAW,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC;IAEhE,yBAAyB;IACzB,MAAM,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC;IAE/D,8BAA8B;IAC9B,MAAM,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;IAE/E,8BAA8B;IAC9B,MAAM,eAAe,GAAG,OAAO,CAAC,gBAAgB,GAAG,iBAAiB,EAAE,CAAC,CAAC,CAAC;IAEzE,qEAAqE;IACrE,MAAM,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAE1D,OAAO;QACL,eAAe;QACf,sBAAsB;QACtB,oBAAoB;QACpB,WAAW,EAAE,MAAM;QACnB,gBAAgB;KACjB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pickTime.d.ts","sourceRoot":"","sources":["../../src/logistics/pickTime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAqE7D"}
1
+ {"version":3,"file":"pickTime.d.ts","sourceRoot":"","sources":["../../src/logistics/pickTime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CA2D7D"}
@@ -15,18 +15,10 @@ import { roundTo } from '../utils.js';
15
15
  */
16
16
  export function pickTime(input) {
17
17
  const { mode, distance, speed, itemsPerOrder, searchTimePerItem, pickTimePerItem, documentationTime, batchSize = 1, } = input;
18
- // Handle zero/invalid inputs
19
- if (speed <= 0 || itemsPerOrder <= 0) {
20
- return {
21
- travelTime: 0,
22
- searchTime: 0,
23
- pickTime: 0,
24
- documentationTime: 0,
25
- totalTime: 0,
26
- totalTimeMinutes: 0,
27
- ordersPerHour: 0,
28
- };
29
- }
18
+ if (speed <= 0)
19
+ throw new RangeError('speed must be greater than 0');
20
+ if (itemsPerOrder <= 0)
21
+ throw new RangeError('itemsPerOrder must be greater than 0');
30
22
  // Calculate base times
31
23
  // Travel time = distance / speed, convert to seconds (speed is per minute)
32
24
  const baseTravelTime = (distance / speed) * 60;
@@ -1 +1 @@
1
- {"version":3,"file":"pickTime.js","sourceRoot":"","sources":["../../src/logistics/pickTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,MAAM,EACJ,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,SAAS,GAAG,CAAC,GACd,GAAG,KAAK,CAAC;IAEV,6BAA6B;IAC7B,IAAI,KAAK,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;QACrC,OAAO;YACL,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,CAAC;YACX,iBAAiB,EAAE,CAAC;YACpB,SAAS,EAAE,CAAC;YACZ,gBAAgB,EAAE,CAAC;YACnB,aAAa,EAAE,CAAC;SACjB,CAAC;IACJ,CAAC;IAED,uBAAuB;IACvB,2EAA2E;IAC3E,MAAM,cAAc,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IAE/C,yCAAyC;IACzC,MAAM,cAAc,GAAG,aAAa,GAAG,iBAAiB,CAAC;IACzD,MAAM,YAAY,GAAG,aAAa,GAAG,eAAe,CAAC;IAErD,IAAI,UAAkB,CAAC;IACvB,IAAI,UAAkB,CAAC;IACvB,IAAI,IAAY,CAAC;IACjB,IAAI,OAAe,CAAC;IAEpB,IAAI,IAAI,KAAK,OAAO,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QACtC,0DAA0D;QAC1D,4DAA4D;QAC5D,6BAA6B;QAC7B,UAAU,GAAG,cAAc,GAAG,SAAS,CAAC;QACxC,UAAU,GAAG,cAAc,CAAC,CAAC,YAAY;QACzC,IAAI,GAAG,YAAY,CAAC,CAAC,YAAY;QACjC,OAAO,GAAG,iBAAiB,CAAC,CAAC,YAAY;IAC3C,CAAC;SAAM,CAAC;QACN,uBAAuB;QACvB,UAAU,GAAG,cAAc,CAAC;QAC5B,UAAU,GAAG,cAAc,CAAC;QAC5B,IAAI,GAAG,YAAY,CAAC;QACpB,OAAO,GAAG,iBAAiB,CAAC;IAC9B,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,IAAI,GAAG,OAAO,CAAC;IAC3D,MAAM,gBAAgB,GAAG,SAAS,GAAG,EAAE,CAAC;IAExC,8BAA8B;IAC9B,MAAM,aAAa,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3D,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAClC,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAClC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1B,iBAAiB,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACtC,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAChC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC9C,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;KACzC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"pickTime.js","sourceRoot":"","sources":["../../src/logistics/pickTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,MAAM,EACJ,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,SAAS,GAAG,CAAC,GACd,GAAG,KAAK,CAAC;IAEV,IAAI,KAAK,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,8BAA8B,CAAC,CAAC;IACrE,IAAI,aAAa,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,sCAAsC,CAAC,CAAC;IAErF,uBAAuB;IACvB,2EAA2E;IAC3E,MAAM,cAAc,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IAE/C,yCAAyC;IACzC,MAAM,cAAc,GAAG,aAAa,GAAG,iBAAiB,CAAC;IACzD,MAAM,YAAY,GAAG,aAAa,GAAG,eAAe,CAAC;IAErD,IAAI,UAAkB,CAAC;IACvB,IAAI,UAAkB,CAAC;IACvB,IAAI,IAAY,CAAC;IACjB,IAAI,OAAe,CAAC;IAEpB,IAAI,IAAI,KAAK,OAAO,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QACtC,0DAA0D;QAC1D,4DAA4D;QAC5D,6BAA6B;QAC7B,UAAU,GAAG,cAAc,GAAG,SAAS,CAAC;QACxC,UAAU,GAAG,cAAc,CAAC,CAAC,YAAY;QACzC,IAAI,GAAG,YAAY,CAAC,CAAC,YAAY;QACjC,OAAO,GAAG,iBAAiB,CAAC,CAAC,YAAY;IAC3C,CAAC;SAAM,CAAC;QACN,uBAAuB;QACvB,UAAU,GAAG,cAAc,CAAC;QAC5B,UAAU,GAAG,cAAc,CAAC;QAC5B,IAAI,GAAG,YAAY,CAAC;QACpB,OAAO,GAAG,iBAAiB,CAAC;IAC9B,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,IAAI,GAAG,OAAO,CAAC;IAC3D,MAAM,gBAAgB,GAAG,SAAS,GAAG,EAAE,CAAC;IAExC,8BAA8B;IAC9B,MAAM,aAAa,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3D,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAClC,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAClC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1B,iBAAiB,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACtC,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAChC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC9C,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;KACzC,CAAC;AACJ,CAAC"}
@@ -10,7 +10,9 @@ import type { ShippingInput, ShippingResult } from './types.js';
10
10
  * - Truck: Distance + weight based
11
11
  *
12
12
  * @param input - Shipment details
13
- * @returns Cost estimate or null if invalid input
13
+ * @returns Cost estimate
14
+ * @throws RangeError if weight or volume is not positive, distance is not
15
+ * positive for truck mode, or the shipping mode is unknown
14
16
  */
15
- export declare function shipping(input: ShippingInput): ShippingResult | null;
17
+ export declare function shipping(input: ShippingInput): ShippingResult;
16
18
  //# sourceMappingURL=shipping.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shipping.d.ts","sourceRoot":"","sources":["../../src/logistics/shipping.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,GAAG,IAAI,CAsGpE"}
1
+ {"version":3,"file":"shipping.d.ts","sourceRoot":"","sources":["../../src/logistics/shipping.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CA6G7D"}
@@ -10,12 +10,18 @@ import { roundTo } from '../utils.js';
10
10
  * - Truck: Distance + weight based
11
11
  *
12
12
  * @param input - Shipment details
13
- * @returns Cost estimate or null if invalid input
13
+ * @returns Cost estimate
14
+ * @throws RangeError if weight or volume is not positive, distance is not
15
+ * positive for truck mode, or the shipping mode is unknown
14
16
  */
15
17
  export function shipping(input) {
16
18
  const { mode, weight, volume, distance } = input;
17
- if (weight <= 0 || volume <= 0)
18
- return null;
19
+ if (weight <= 0) {
20
+ throw new RangeError('weight must be greater than 0');
21
+ }
22
+ if (volume <= 0) {
23
+ throw new RangeError('volume must be greater than 0');
24
+ }
19
25
  let volumetricWeight;
20
26
  let estimatedCost;
21
27
  let transitDays;
@@ -74,8 +80,9 @@ export function shipping(input) {
74
80
  return result;
75
81
  }
76
82
  case 'truck': {
77
- if (distance == null || distance <= 0)
78
- return null;
83
+ if (distance == null || distance <= 0) {
84
+ throw new RangeError('distance must be greater than 0 for truck mode');
85
+ }
79
86
  volumetricWeight = roundTo(volume * 333, 2);
80
87
  const chargeableWt = Math.max(weight, volumetricWeight);
81
88
  estimatedCost = roundTo(distance * 1.5 + weight * 0.02, 2);
@@ -94,7 +101,7 @@ export function shipping(input) {
94
101
  return result;
95
102
  }
96
103
  default:
97
- return null;
104
+ throw new RangeError('unknown shipping mode: ' + mode);
98
105
  }
99
106
  // For ocean modes
100
107
  const chargeableWeight = roundTo(Math.max(weight, volumetricWeight), 2);
@@ -1 +1 @@
1
- {"version":3,"file":"shipping.js","sourceRoot":"","sources":["../../src/logistics/shipping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEjD,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5C,IAAI,gBAAwB,CAAC;IAC7B,IAAI,aAAqB,CAAC;IAC1B,IAAI,WAAmB,CAAC;IACxB,IAAI,KAAa,CAAC;IAElB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,gBAAgB,GAAG,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,IAAI,CAAC;YAClB,MAAM,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,aAAa,GAAG,OAAO,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;YACzC,WAAW,GAAG,YAAY,CAAC;YAC3B,KAAK,GAAG,wEAAwE,CAAC;YACjF,MAAM;QACR,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,gBAAgB,GAAG,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,MAAM,GAAG,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;YAC/B,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3D,WAAW,GAAG,YAAY,CAAC;YAC3B,KAAK,GAAG,sEAAsE,CAAC;YAC/E,MAAM;QACR,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YACxD,aAAa,GAAG,OAAO,CAAC,YAAY,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;YAC/C,WAAW,GAAG,UAAU,CAAC;YACzB,KAAK,GAAG,sEAAsE,CAAC;YAC/E,MAAM,MAAM,GAAmB;gBAC7B,IAAI,EAAE,aAAa;gBACnB,gBAAgB,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC1C,gBAAgB;gBAChB,aAAa;gBACb,SAAS,EAAE,OAAO,CAAC,aAAa,GAAG,YAAY,EAAE,CAAC,CAAC;gBACnD,WAAW;gBACX,KAAK;aACN,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YACxD,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3D,WAAW,GAAG,UAAU,CAAC;YACzB,KAAK,GAAG,qEAAqE,CAAC;YAC9E,MAAM,MAAM,GAAmB;gBAC7B,IAAI,EAAE,iBAAiB;gBACvB,gBAAgB,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC1C,gBAAgB;gBAChB,aAAa;gBACb,SAAS,EAAE,OAAO,CAAC,aAAa,GAAG,YAAY,EAAE,CAAC,CAAC;gBACnD,WAAW;gBACX,KAAK;aACN,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YACnD,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YACxD,aAAa,GAAG,OAAO,CAAC,QAAQ,GAAG,GAAG,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC;YAC9D,WAAW,GAAG,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,cAAc,IAAI,cAAc,GAAG,CAAC,OAAO,CAAC;YAC9F,KAAK,GAAG,yCAAyC,OAAO,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,8BAA8B,CAAC;YAC1G,MAAM,MAAM,GAAmB;gBAC7B,IAAI,EAAE,OAAO;gBACb,gBAAgB,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC1C,gBAAgB;gBAChB,aAAa;gBACb,SAAS,EAAE,OAAO,CAAC,aAAa,GAAG,YAAY,EAAE,CAAC,CAAC;gBACnD,WAAW;gBACX,KAAK;aACN,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;QACD;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,UAAU,GAA2B;QACzC,SAAS,EAAE,kBAAkB;QAC7B,SAAS,EAAE,WAAW;KACvB,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI;QAC9B,gBAAgB;QAChB,gBAAgB;QAChB,aAAa;QACb,SAAS,EAAE,OAAO,CAAC,aAAa,GAAG,gBAAgB,EAAE,CAAC,CAAC;QACvD,WAAW;QACX,KAAK;KACN,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"shipping.js","sourceRoot":"","sources":["../../src/logistics/shipping.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import type { TspInput, TspResult } from './types.js';
7
7
  *
8
8
  * @param input - Array of nodes with x, y coordinates
9
9
  * @returns Tour information and distances
10
+ * @throws RangeError if nodes contains fewer than 1 element
10
11
  */
11
- export declare function tsp(input: TspInput): TspResult | null;
12
+ export declare function tsp(input: TspInput): TspResult;
12
13
  //# sourceMappingURL=tsp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tsp.d.ts","sourceRoot":"","sources":["../../src/logistics/tsp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAW,MAAM,YAAY,CAAC;AAyG/D;;;;;;;;GAQG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,CAoDrD"}
1
+ {"version":3,"file":"tsp.d.ts","sourceRoot":"","sources":["../../src/logistics/tsp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAW,MAAM,YAAY,CAAC;AAyG/D;;;;;;;;;GASG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CAoD9C"}
@@ -111,6 +111,7 @@ function bruteForce(nodes) {
111
111
  *
112
112
  * @param input - Array of nodes with x, y coordinates
113
113
  * @returns Tour information and distances
114
+ * @throws RangeError if nodes contains fewer than 1 element
114
115
  */
115
116
  export function tsp(input) {
116
117
  const { nodes } = input;
@@ -120,7 +121,7 @@ export function tsp(input) {
120
121
  nnTour: [0], nnDistance: 0, optimizedTour: [0], optimizedDistance: 0,
121
122
  improvementPercent: 0,
122
123
  };
123
- return null;
124
+ throw new RangeError('nodes must contain at least 1 element');
124
125
  }
125
126
  if (nodes.length === 2) {
126
127
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"tsp.js","sourceRoot":"","sources":["../../src/logistics/tsp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tsp.js","sourceRoot":"","sources":["../../src/logistics/tsp.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ import type { BearingInput, BearingResult } from './types.js';
6
6
  *
7
7
  * p = 3 for ball bearings
8
8
  * p = 10/3 for roller bearings
9
+ *
10
+ * @throws RangeError if dynamicLoadRating, equivalentLoad, or rpm is not positive
9
11
  */
10
12
  export declare function bearing(input: BearingInput): BearingResult;
11
13
  //# sourceMappingURL=bearing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bearing.d.ts","sourceRoot":"","sources":["../../src/metal/bearing.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE9D;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CAuB1D"}
1
+ {"version":3,"file":"bearing.d.ts","sourceRoot":"","sources":["../../src/metal/bearing.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE9D;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CA6B1D"}
@@ -6,12 +6,20 @@ import { roundTo } from '../utils.js';
6
6
  *
7
7
  * p = 3 for ball bearings
8
8
  * p = 10/3 for roller bearings
9
+ *
10
+ * @throws RangeError if dynamicLoadRating, equivalentLoad, or rpm is not positive
9
11
  */
10
12
  export function bearing(input) {
11
13
  const { bearingType, dynamicLoadRating, equivalentLoad, rpm } = input;
12
14
  // Validate inputs
13
- if (dynamicLoadRating <= 0 || equivalentLoad <= 0 || rpm <= 0) {
14
- return { l10: 0, l10h: 0, lifeExponent: 0 };
15
+ if (dynamicLoadRating <= 0) {
16
+ throw new RangeError('dynamicLoadRating must be greater than 0');
17
+ }
18
+ if (equivalentLoad <= 0) {
19
+ throw new RangeError('equivalentLoad must be greater than 0');
20
+ }
21
+ if (rpm <= 0) {
22
+ throw new RangeError('rpm must be greater than 0');
15
23
  }
16
24
  // Life exponent: p = 3 for ball bearings, 10/3 for roller bearings
17
25
  const lifeExponent = bearingType === 'ball' ? 3 : 10 / 3;
@@ -1 +1 @@
1
- {"version":3,"file":"bearing.js","sourceRoot":"","sources":["../../src/metal/bearing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAEtE,kBAAkB;IAClB,IAAI,iBAAiB,IAAI,CAAC,IAAI,cAAc,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QAC9D,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAC9C,CAAC;IAED,mEAAmE;IACnE,MAAM,YAAY,GAAG,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEzD,6BAA6B;IAC7B,MAAM,SAAS,GAAG,iBAAiB,GAAG,cAAc,CAAC;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAE9C,yCAAyC;IACzC,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;IAE5C,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;KACvC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"bearing.js","sourceRoot":"","sources":["../../src/metal/bearing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;;;;;;;;GASG;AACH,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAEtE,kBAAkB;IAClB,IAAI,iBAAiB,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,UAAU,CAAC,0CAA0C,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,UAAU,CAAC,uCAAuC,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACb,MAAM,IAAI,UAAU,CAAC,4BAA4B,CAAC,CAAC;IACrD,CAAC;IAED,mEAAmE;IACnE,MAAM,YAAY,GAAG,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEzD,6BAA6B;IAC7B,MAAM,SAAS,GAAG,iBAAiB,GAAG,cAAc,CAAC;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAE9C,yCAAyC;IACzC,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;IAE5C,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;KACvC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bolt.d.ts","sourceRoot":"","sources":["../../src/metal/bolt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CAyFjD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAQpD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAyBzD"}
1
+ {"version":3,"file":"bolt.d.ts","sourceRoot":"","sources":["../../src/metal/bolt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CA2DjD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAQpD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAyBzD"}