formulab 0.1.0 → 0.1.11

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 (164) hide show
  1. package/CHANGELOG.md +185 -1
  2. package/README.md +38 -31
  3. package/dist/automotive/gearRatio.d.ts +2 -2
  4. package/dist/automotive/gearRatio.d.ts.map +1 -1
  5. package/dist/automotive/gearRatio.js +1 -1
  6. package/dist/automotive/gearRatio.js.map +1 -1
  7. package/dist/automotive/index.d.ts +1 -1
  8. package/dist/automotive/index.d.ts.map +1 -1
  9. package/dist/automotive/types.d.ts +2 -2
  10. package/dist/automotive/types.d.ts.map +1 -1
  11. package/dist/chemical/injectionCycle.d.ts +3 -0
  12. package/dist/chemical/injectionCycle.d.ts.map +1 -1
  13. package/dist/chemical/injectionCycle.js +1 -4
  14. package/dist/chemical/injectionCycle.js.map +1 -1
  15. package/dist/chemical/ph.d.ts +3 -0
  16. package/dist/chemical/ph.d.ts.map +1 -1
  17. package/dist/chemical/ph.js +1 -4
  18. package/dist/chemical/ph.js.map +1 -1
  19. package/dist/chemical/reactor.d.ts +3 -0
  20. package/dist/chemical/reactor.d.ts.map +1 -1
  21. package/dist/chemical/reactor.js +1 -4
  22. package/dist/chemical/reactor.js.map +1 -1
  23. package/dist/chemical/shelfLife.d.ts.map +1 -1
  24. package/dist/chemical/shelfLife.js +1 -7
  25. package/dist/chemical/shelfLife.js.map +1 -1
  26. package/dist/electronics/awg.d.ts.map +1 -1
  27. package/dist/electronics/awg.js +1 -4
  28. package/dist/electronics/awg.js.map +1 -1
  29. package/dist/electronics/capacitor.d.ts +3 -0
  30. package/dist/electronics/capacitor.d.ts.map +1 -1
  31. package/dist/electronics/capacitor.js +1 -4
  32. package/dist/electronics/capacitor.js.map +1 -1
  33. package/dist/electronics/led.d.ts.map +1 -1
  34. package/dist/electronics/led.js +1 -4
  35. package/dist/electronics/led.js.map +1 -1
  36. package/dist/electronics/smt-takt.d.ts +3 -0
  37. package/dist/electronics/smt-takt.d.ts.map +1 -1
  38. package/dist/electronics/smt-takt.js +1 -4
  39. package/dist/electronics/smt-takt.js.map +1 -1
  40. package/dist/electronics/solder.d.ts +3 -0
  41. package/dist/electronics/solder.d.ts.map +1 -1
  42. package/dist/electronics/solder.js +1 -4
  43. package/dist/electronics/solder.js.map +1 -1
  44. package/dist/electronics/stencil.d.ts.map +1 -1
  45. package/dist/electronics/stencil.js +1 -4
  46. package/dist/electronics/stencil.js.map +1 -1
  47. package/dist/electronics/trace.d.ts.map +1 -1
  48. package/dist/electronics/trace.js +1 -4
  49. package/dist/electronics/trace.js.map +1 -1
  50. package/dist/electronics/via.d.ts.map +1 -1
  51. package/dist/electronics/via.js +1 -4
  52. package/dist/electronics/via.js.map +1 -1
  53. package/dist/index.d.ts +7 -2
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +7 -2
  56. package/dist/index.js.map +1 -1
  57. package/dist/logistics/eoq.d.ts.map +1 -1
  58. package/dist/logistics/eoq.js +11 -0
  59. package/dist/logistics/eoq.js.map +1 -1
  60. package/dist/metal/bearing.d.ts.map +1 -1
  61. package/dist/metal/bearing.js +1 -4
  62. package/dist/metal/bearing.js.map +1 -1
  63. package/dist/metal/bolt.d.ts.map +1 -1
  64. package/dist/metal/bolt.js +1 -4
  65. package/dist/metal/bolt.js.map +1 -1
  66. package/dist/metal/cutting.d.ts.map +1 -1
  67. package/dist/metal/cutting.js +1 -4
  68. package/dist/metal/cutting.js.map +1 -1
  69. package/dist/metal/cuttingStock.d.ts.map +1 -1
  70. package/dist/metal/cuttingStock.js +1 -4
  71. package/dist/metal/cuttingStock.js.map +1 -1
  72. package/dist/metal/gear.d.ts.map +1 -1
  73. package/dist/metal/gear.js +1 -4
  74. package/dist/metal/gear.js.map +1 -1
  75. package/dist/metal/hardness.d.ts.map +1 -1
  76. package/dist/metal/hardness.js +1 -4
  77. package/dist/metal/hardness.js.map +1 -1
  78. package/dist/metal/pressFit.d.ts.map +1 -1
  79. package/dist/metal/pressFit.js +1 -4
  80. package/dist/metal/pressFit.js.map +1 -1
  81. package/dist/metal/pressTonnage.d.ts +10 -4
  82. package/dist/metal/pressTonnage.d.ts.map +1 -1
  83. package/dist/metal/pressTonnage.js +199 -25
  84. package/dist/metal/pressTonnage.js.map +1 -1
  85. package/dist/metal/roughness.d.ts.map +1 -1
  86. package/dist/metal/roughness.js +1 -4
  87. package/dist/metal/roughness.js.map +1 -1
  88. package/dist/metal/screw.d.ts.map +1 -1
  89. package/dist/metal/screw.js +1 -4
  90. package/dist/metal/screw.js.map +1 -1
  91. package/dist/metal/spring.d.ts.map +1 -1
  92. package/dist/metal/spring.js +1 -4
  93. package/dist/metal/spring.js.map +1 -1
  94. package/dist/metal/tap.d.ts.map +1 -1
  95. package/dist/metal/tap.js +1 -4
  96. package/dist/metal/tap.js.map +1 -1
  97. package/dist/metal/thread.d.ts.map +1 -1
  98. package/dist/metal/thread.js +1 -4
  99. package/dist/metal/thread.js.map +1 -1
  100. package/dist/metal/tolerance.d.ts.map +1 -1
  101. package/dist/metal/tolerance.js +1 -4
  102. package/dist/metal/tolerance.js.map +1 -1
  103. package/dist/metal/types.d.ts +14 -0
  104. package/dist/metal/types.d.ts.map +1 -1
  105. package/dist/metal/vibration.d.ts.map +1 -1
  106. package/dist/metal/vibration.js +1 -4
  107. package/dist/metal/vibration.js.map +1 -1
  108. package/dist/metal/weldHeat.d.ts +2 -1
  109. package/dist/metal/weldHeat.d.ts.map +1 -1
  110. package/dist/metal/weldHeat.js +203 -44
  111. package/dist/metal/weldHeat.js.map +1 -1
  112. package/dist/quality/aql.d.ts.map +1 -1
  113. package/dist/quality/aql.js +1 -4
  114. package/dist/quality/aql.js.map +1 -1
  115. package/dist/quality/downtime.d.ts.map +1 -1
  116. package/dist/quality/downtime.js +1 -4
  117. package/dist/quality/downtime.js.map +1 -1
  118. package/dist/quality/dpmo.d.ts.map +1 -1
  119. package/dist/quality/dpmo.js +1 -4
  120. package/dist/quality/dpmo.js.map +1 -1
  121. package/dist/quality/lineBalancing.d.ts.map +1 -1
  122. package/dist/quality/lineBalancing.js +1 -4
  123. package/dist/quality/lineBalancing.js.map +1 -1
  124. package/dist/quality/mtbf.d.ts.map +1 -1
  125. package/dist/quality/mtbf.js +1 -4
  126. package/dist/quality/mtbf.js.map +1 -1
  127. package/dist/quality/oee.d.ts +1 -0
  128. package/dist/quality/oee.d.ts.map +1 -1
  129. package/dist/quality/oee.js +9 -0
  130. package/dist/quality/oee.js.map +1 -1
  131. package/dist/quality/ppk.d.ts.map +1 -1
  132. package/dist/quality/ppk.js +1 -4
  133. package/dist/quality/ppk.js.map +1 -1
  134. package/dist/quality/ppm.d.ts.map +1 -1
  135. package/dist/quality/ppm.js +1 -4
  136. package/dist/quality/ppm.js.map +1 -1
  137. package/dist/quality/rpn.d.ts.map +1 -1
  138. package/dist/quality/rpn.js +1 -4
  139. package/dist/quality/rpn.js.map +1 -1
  140. package/dist/quality/yield.d.ts.map +1 -1
  141. package/dist/quality/yield.js +1 -4
  142. package/dist/quality/yield.js.map +1 -1
  143. package/dist/safety/fallClearance.d.ts +12 -3
  144. package/dist/safety/fallClearance.d.ts.map +1 -1
  145. package/dist/safety/fallClearance.js +72 -17
  146. package/dist/safety/fallClearance.js.map +1 -1
  147. package/dist/safety/types.d.ts +6 -0
  148. package/dist/safety/types.d.ts.map +1 -1
  149. package/dist/utility/assignment.d.ts.map +1 -1
  150. package/dist/utility/assignment.js +1 -7
  151. package/dist/utility/assignment.js.map +1 -1
  152. package/dist/utility/index.d.ts +1 -1
  153. package/dist/utility/index.d.ts.map +1 -1
  154. package/dist/utility/index.js +1 -1
  155. package/dist/utility/index.js.map +1 -1
  156. package/dist/utility/unit.d.ts +1 -1
  157. package/dist/utility/unit.d.ts.map +1 -1
  158. package/dist/utility/unit.js +2 -8
  159. package/dist/utility/unit.js.map +1 -1
  160. package/dist/utils.d.ts +4 -1
  161. package/dist/utils.d.ts.map +1 -1
  162. package/dist/utils.js +9 -2
  163. package/dist/utils.js.map +1 -1
  164. package/package.json +4 -2
package/dist/utils.d.ts CHANGED
@@ -1,9 +1,12 @@
1
1
  /**
2
2
  * Round a number to the specified number of decimal places
3
3
  *
4
+ * Uses epsilon correction to handle floating-point precision issues.
5
+ * Example: roundTo(0.615, 2) correctly returns 0.62, not 0.61
6
+ *
4
7
  * @param value - The number to round
5
8
  * @param decimals - Number of decimal places (default: 2)
6
- * @returns Rounded number
9
+ * @returns Rounded number, or the original value if NaN/Infinity
7
10
  */
8
11
  export declare function roundTo(value: number, decimals?: number): number;
9
12
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CAGnE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CAOnE"}
package/dist/utils.js CHANGED
@@ -1,12 +1,19 @@
1
1
  /**
2
2
  * Round a number to the specified number of decimal places
3
3
  *
4
+ * Uses epsilon correction to handle floating-point precision issues.
5
+ * Example: roundTo(0.615, 2) correctly returns 0.62, not 0.61
6
+ *
4
7
  * @param value - The number to round
5
8
  * @param decimals - Number of decimal places (default: 2)
6
- * @returns Rounded number
9
+ * @returns Rounded number, or the original value if NaN/Infinity
7
10
  */
8
11
  export function roundTo(value, decimals = 2) {
12
+ if (!Number.isFinite(value)) {
13
+ return value;
14
+ }
9
15
  const factor = Math.pow(10, decimals);
10
- return Math.round(value * factor) / factor;
16
+ // Add epsilon correction for floating-point precision
17
+ return Math.round((value + Number.EPSILON) * factor) / factor;
11
18
  }
12
19
  //# sourceMappingURL=utils.js.map
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,WAAmB,CAAC;IACzD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACtC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,WAAmB,CAAC;IACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACtC,sDAAsD;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;AAChE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "formulab",
3
- "version": "0.1.0",
3
+ "version": "0.1.11",
4
4
  "description": "Manufacturing & Engineering calculation formulas library - 100+ industrial calculations for OEE, Cpk, metal weight, logistics, and more",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -64,7 +64,8 @@
64
64
  ],
65
65
  "scripts": {
66
66
  "build": "tsc",
67
- "test": "vitest run --passWithNoTests",
67
+ "test": "vitest run",
68
+ "test:coverage": "vitest run --coverage",
68
69
  "test:watch": "vitest",
69
70
  "clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
70
71
  "prepublishOnly": "npm run clean && npm run build && npm run test"
@@ -111,6 +112,7 @@
111
112
  "node": ">=18"
112
113
  },
113
114
  "devDependencies": {
115
+ "@vitest/coverage-v8": "^3.2.4",
114
116
  "typescript": "^5.7.0",
115
117
  "vitest": "^3.0.0"
116
118
  }