@fluixi/utils 1.0.0-alpha.53

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 (354) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +73 -0
  3. package/dist/index.cjs +1 -0
  4. package/dist/index.d.ts +2 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +1 -0
  7. package/dist/index.mjs +1 -0
  8. package/dist/lib/array/advanced.cjs +1 -0
  9. package/dist/lib/array/advanced.d.ts +1116 -0
  10. package/dist/lib/array/advanced.d.ts.map +1 -0
  11. package/dist/lib/array/advanced.js +2429 -0
  12. package/dist/lib/array/advanced.mjs +1 -0
  13. package/dist/lib/array/array.cjs +1 -0
  14. package/dist/lib/array/array.d.ts +6 -0
  15. package/dist/lib/array/array.d.ts.map +1 -0
  16. package/dist/lib/array/array.js +31 -0
  17. package/dist/lib/array/array.mjs +1 -0
  18. package/dist/lib/array/index.cjs +1 -0
  19. package/dist/lib/array/index.d.ts +4 -0
  20. package/dist/lib/array/index.d.ts.map +1 -0
  21. package/dist/lib/array/index.js +3 -0
  22. package/dist/lib/array/index.mjs +1 -0
  23. package/dist/lib/array/utils.cjs +1 -0
  24. package/dist/lib/array/utils.d.ts +100 -0
  25. package/dist/lib/array/utils.d.ts.map +1 -0
  26. package/dist/lib/array/utils.js +165 -0
  27. package/dist/lib/array/utils.mjs +1 -0
  28. package/dist/lib/color/color.cjs +1 -0
  29. package/dist/lib/color/color.d.ts +366 -0
  30. package/dist/lib/color/color.d.ts.map +1 -0
  31. package/dist/lib/color/color.js +722 -0
  32. package/dist/lib/color/color.mjs +1 -0
  33. package/dist/lib/color/constants.cjs +1 -0
  34. package/dist/lib/color/constants.d.ts +361 -0
  35. package/dist/lib/color/constants.d.ts.map +1 -0
  36. package/dist/lib/color/constants.js +358 -0
  37. package/dist/lib/color/constants.mjs +1 -0
  38. package/dist/lib/color/conversions.cjs +1 -0
  39. package/dist/lib/color/conversions.d.ts +166 -0
  40. package/dist/lib/color/conversions.d.ts.map +1 -0
  41. package/dist/lib/color/conversions.js +766 -0
  42. package/dist/lib/color/conversions.mjs +1 -0
  43. package/dist/lib/color/helpers.cjs +1 -0
  44. package/dist/lib/color/helpers.d.ts +75 -0
  45. package/dist/lib/color/helpers.d.ts.map +1 -0
  46. package/dist/lib/color/helpers.js +419 -0
  47. package/dist/lib/color/helpers.mjs +1 -0
  48. package/dist/lib/color/index.cjs +1 -0
  49. package/dist/lib/color/index.d.ts +12 -0
  50. package/dist/lib/color/index.d.ts.map +1 -0
  51. package/dist/lib/color/index.js +15 -0
  52. package/dist/lib/color/index.mjs +1 -0
  53. package/dist/lib/color/types.cjs +1 -0
  54. package/dist/lib/color/types.d.ts +179 -0
  55. package/dist/lib/color/types.d.ts.map +1 -0
  56. package/dist/lib/color/types.js +1 -0
  57. package/dist/lib/color/types.mjs +0 -0
  58. package/dist/lib/color/utils.cjs +1 -0
  59. package/dist/lib/color/utils.d.ts +199 -0
  60. package/dist/lib/color/utils.d.ts.map +1 -0
  61. package/dist/lib/color/utils.js +858 -0
  62. package/dist/lib/color/utils.mjs +1 -0
  63. package/dist/lib/compare/comparators.cjs +1 -0
  64. package/dist/lib/compare/comparators.d.ts +65 -0
  65. package/dist/lib/compare/comparators.d.ts.map +1 -0
  66. package/dist/lib/compare/comparators.js +210 -0
  67. package/dist/lib/compare/comparators.mjs +1 -0
  68. package/dist/lib/compare/index.cjs +1 -0
  69. package/dist/lib/compare/index.d.ts +2 -0
  70. package/dist/lib/compare/index.d.ts.map +1 -0
  71. package/dist/lib/compare/index.js +1 -0
  72. package/dist/lib/compare/index.mjs +1 -0
  73. package/dist/lib/crypto/hash.cjs +1 -0
  74. package/dist/lib/crypto/hash.d.ts +6 -0
  75. package/dist/lib/crypto/hash.d.ts.map +1 -0
  76. package/dist/lib/crypto/hash.js +53 -0
  77. package/dist/lib/crypto/hash.mjs +1 -0
  78. package/dist/lib/crypto/index.cjs +1 -0
  79. package/dist/lib/crypto/index.d.ts +2 -0
  80. package/dist/lib/crypto/index.d.ts.map +1 -0
  81. package/dist/lib/crypto/index.js +1 -0
  82. package/dist/lib/crypto/index.mjs +1 -0
  83. package/dist/lib/dom/events.cjs +1 -0
  84. package/dist/lib/dom/events.d.ts +159 -0
  85. package/dist/lib/dom/events.d.ts.map +1 -0
  86. package/dist/lib/dom/events.js +50 -0
  87. package/dist/lib/dom/events.mjs +1 -0
  88. package/dist/lib/dom/index.cjs +1 -0
  89. package/dist/lib/dom/index.d.ts +3 -0
  90. package/dist/lib/dom/index.d.ts.map +1 -0
  91. package/dist/lib/dom/index.js +2 -0
  92. package/dist/lib/dom/index.mjs +1 -0
  93. package/dist/lib/dom/utils.cjs +1 -0
  94. package/dist/lib/dom/utils.d.ts +6 -0
  95. package/dist/lib/dom/utils.d.ts.map +1 -0
  96. package/dist/lib/dom/utils.js +37 -0
  97. package/dist/lib/dom/utils.mjs +1 -0
  98. package/dist/lib/functions/functions.cjs +1 -0
  99. package/dist/lib/functions/functions.d.ts +329 -0
  100. package/dist/lib/functions/functions.d.ts.map +1 -0
  101. package/dist/lib/functions/functions.js +585 -0
  102. package/dist/lib/functions/functions.mjs +1 -0
  103. package/dist/lib/functions/index.cjs +1 -0
  104. package/dist/lib/functions/index.d.ts +3 -0
  105. package/dist/lib/functions/index.d.ts.map +1 -0
  106. package/dist/lib/functions/index.js +1 -0
  107. package/dist/lib/functions/index.mjs +1 -0
  108. package/dist/lib/functions/types.cjs +1 -0
  109. package/dist/lib/functions/types.d.ts +2 -0
  110. package/dist/lib/functions/types.d.ts.map +1 -0
  111. package/dist/lib/functions/types.js +1 -0
  112. package/dist/lib/functions/types.mjs +0 -0
  113. package/dist/lib/helpers.cjs +1 -0
  114. package/dist/lib/helpers.d.ts +13 -0
  115. package/dist/lib/helpers.d.ts.map +1 -0
  116. package/dist/lib/helpers.js +66 -0
  117. package/dist/lib/helpers.mjs +1 -0
  118. package/dist/lib/index.cjs +1 -0
  119. package/dist/lib/index.d.ts +6 -0
  120. package/dist/lib/index.d.ts.map +1 -0
  121. package/dist/lib/index.js +8 -0
  122. package/dist/lib/index.mjs +1 -0
  123. package/dist/lib/maths/constants.cjs +1 -0
  124. package/dist/lib/maths/constants.d.ts +84 -0
  125. package/dist/lib/maths/constants.d.ts.map +1 -0
  126. package/dist/lib/maths/constants.js +79 -0
  127. package/dist/lib/maths/constants.mjs +1 -0
  128. package/dist/lib/maths/fn/advanced.cjs +1 -0
  129. package/dist/lib/maths/fn/advanced.d.ts +149 -0
  130. package/dist/lib/maths/fn/advanced.d.ts.map +1 -0
  131. package/dist/lib/maths/fn/advanced.js +264 -0
  132. package/dist/lib/maths/fn/advanced.mjs +1 -0
  133. package/dist/lib/maths/fn/basic.cjs +1 -0
  134. package/dist/lib/maths/fn/basic.d.ts +182 -0
  135. package/dist/lib/maths/fn/basic.d.ts.map +1 -0
  136. package/dist/lib/maths/fn/basic.js +343 -0
  137. package/dist/lib/maths/fn/basic.mjs +1 -0
  138. package/dist/lib/maths/fn/complex.cjs +1 -0
  139. package/dist/lib/maths/fn/complex.d.ts +153 -0
  140. package/dist/lib/maths/fn/complex.d.ts.map +1 -0
  141. package/dist/lib/maths/fn/complex.js +383 -0
  142. package/dist/lib/maths/fn/complex.mjs +1 -0
  143. package/dist/lib/maths/fn/index.cjs +1 -0
  144. package/dist/lib/maths/fn/index.d.ts +10 -0
  145. package/dist/lib/maths/fn/index.d.ts.map +1 -0
  146. package/dist/lib/maths/fn/index.js +9 -0
  147. package/dist/lib/maths/fn/index.mjs +1 -0
  148. package/dist/lib/maths/fn/trigo.cjs +1 -0
  149. package/dist/lib/maths/fn/trigo.d.ts +147 -0
  150. package/dist/lib/maths/fn/trigo.d.ts.map +1 -0
  151. package/dist/lib/maths/fn/trigo.js +227 -0
  152. package/dist/lib/maths/fn/trigo.mjs +1 -0
  153. package/dist/lib/maths/fn/vector.cjs +1 -0
  154. package/dist/lib/maths/fn/vector.d.ts +512 -0
  155. package/dist/lib/maths/fn/vector.d.ts.map +1 -0
  156. package/dist/lib/maths/fn/vector.js +1136 -0
  157. package/dist/lib/maths/fn/vector.mjs +1 -0
  158. package/dist/lib/maths/formatter.cjs +1 -0
  159. package/dist/lib/maths/formatter.d.ts +35 -0
  160. package/dist/lib/maths/formatter.d.ts.map +1 -0
  161. package/dist/lib/maths/formatter.js +56 -0
  162. package/dist/lib/maths/formatter.mjs +1 -0
  163. package/dist/lib/maths/guards.cjs +1 -0
  164. package/dist/lib/maths/guards.d.ts +166 -0
  165. package/dist/lib/maths/guards.d.ts.map +1 -0
  166. package/dist/lib/maths/guards.js +315 -0
  167. package/dist/lib/maths/guards.mjs +1 -0
  168. package/dist/lib/maths/index.cjs +1 -0
  169. package/dist/lib/maths/index.d.ts +24 -0
  170. package/dist/lib/maths/index.d.ts.map +1 -0
  171. package/dist/lib/maths/index.js +29 -0
  172. package/dist/lib/maths/index.mjs +1 -0
  173. package/dist/lib/maths/parser.cjs +1 -0
  174. package/dist/lib/maths/parser.d.ts +20 -0
  175. package/dist/lib/maths/parser.d.ts.map +1 -0
  176. package/dist/lib/maths/parser.js +78 -0
  177. package/dist/lib/maths/parser.mjs +1 -0
  178. package/dist/lib/maths/random.cjs +1 -0
  179. package/dist/lib/maths/random.d.ts +27 -0
  180. package/dist/lib/maths/random.d.ts.map +1 -0
  181. package/dist/lib/maths/random.js +49 -0
  182. package/dist/lib/maths/random.mjs +1 -0
  183. package/dist/lib/maths/types/advanced.cjs +1 -0
  184. package/dist/lib/maths/types/advanced.d.ts +357 -0
  185. package/dist/lib/maths/types/advanced.d.ts.map +1 -0
  186. package/dist/lib/maths/types/advanced.js +5 -0
  187. package/dist/lib/maths/types/advanced.mjs +0 -0
  188. package/dist/lib/maths/types/basic.cjs +1 -0
  189. package/dist/lib/maths/types/basic.d.ts +95 -0
  190. package/dist/lib/maths/types/basic.d.ts.map +1 -0
  191. package/dist/lib/maths/types/basic.js +5 -0
  192. package/dist/lib/maths/types/basic.mjs +0 -0
  193. package/dist/lib/maths/types/index.cjs +1 -0
  194. package/dist/lib/maths/types/index.d.ts +4 -0
  195. package/dist/lib/maths/types/index.d.ts.map +1 -0
  196. package/dist/lib/maths/types/index.js +3 -0
  197. package/dist/lib/maths/types/index.mjs +0 -0
  198. package/dist/lib/maths/types/negative.cjs +1 -0
  199. package/dist/lib/maths/types/negative.d.ts +51 -0
  200. package/dist/lib/maths/types/negative.d.ts.map +1 -0
  201. package/dist/lib/maths/types/negative.js +5 -0
  202. package/dist/lib/maths/types/negative.mjs +0 -0
  203. package/dist/lib/maths/types/operations.cjs +1 -0
  204. package/dist/lib/maths/types/operations.d.ts +188 -0
  205. package/dist/lib/maths/types/operations.d.ts.map +1 -0
  206. package/dist/lib/maths/types/operations.js +6 -0
  207. package/dist/lib/maths/types/operations.mjs +0 -0
  208. package/dist/lib/object/clone.cjs +1 -0
  209. package/dist/lib/object/clone.d.ts +46 -0
  210. package/dist/lib/object/clone.d.ts.map +1 -0
  211. package/dist/lib/object/clone.js +104 -0
  212. package/dist/lib/object/clone.mjs +1 -0
  213. package/dist/lib/object/diff.cjs +1 -0
  214. package/dist/lib/object/diff.d.ts +203 -0
  215. package/dist/lib/object/diff.d.ts.map +1 -0
  216. package/dist/lib/object/diff.js +805 -0
  217. package/dist/lib/object/diff.mjs +1 -0
  218. package/dist/lib/object/getter-setter.cjs +1 -0
  219. package/dist/lib/object/getter-setter.d.ts +361 -0
  220. package/dist/lib/object/getter-setter.d.ts.map +1 -0
  221. package/dist/lib/object/getter-setter.js +1771 -0
  222. package/dist/lib/object/getter-setter.mjs +1 -0
  223. package/dist/lib/object/index.cjs +6 -0
  224. package/dist/lib/object/index.d.ts +13 -0
  225. package/dist/lib/object/index.d.ts.map +1 -0
  226. package/dist/lib/object/index.js +12 -0
  227. package/dist/lib/object/index.mjs +6 -0
  228. package/dist/lib/object/merge.cjs +1 -0
  229. package/dist/lib/object/merge.d.ts +93 -0
  230. package/dist/lib/object/merge.d.ts.map +1 -0
  231. package/dist/lib/object/merge.js +474 -0
  232. package/dist/lib/object/merge.mjs +1 -0
  233. package/dist/lib/object/object.cjs +1 -0
  234. package/dist/lib/object/object.d.ts +128 -0
  235. package/dist/lib/object/object.d.ts.map +1 -0
  236. package/dist/lib/object/object.js +432 -0
  237. package/dist/lib/object/object.mjs +1 -0
  238. package/dist/lib/object/omit.cjs +1 -0
  239. package/dist/lib/object/omit.d.ts +351 -0
  240. package/dist/lib/object/omit.d.ts.map +1 -0
  241. package/dist/lib/object/omit.js +656 -0
  242. package/dist/lib/object/omit.mjs +1 -0
  243. package/dist/lib/object/reconcile.cjs +1 -0
  244. package/dist/lib/object/reconcile.d.ts +7 -0
  245. package/dist/lib/object/reconcile.d.ts.map +1 -0
  246. package/dist/lib/object/reconcile.js +122 -0
  247. package/dist/lib/object/reconcile.mjs +1 -0
  248. package/dist/lib/object/selector.cjs +1 -0
  249. package/dist/lib/object/selector.d.ts +50 -0
  250. package/dist/lib/object/selector.d.ts.map +1 -0
  251. package/dist/lib/object/selector.js +371 -0
  252. package/dist/lib/object/selector.mjs +1 -0
  253. package/dist/lib/object/sort.cjs +1 -0
  254. package/dist/lib/object/sort.d.ts +149 -0
  255. package/dist/lib/object/sort.d.ts.map +1 -0
  256. package/dist/lib/object/sort.js +298 -0
  257. package/dist/lib/object/sort.mjs +1 -0
  258. package/dist/lib/object/transform.cjs +1 -0
  259. package/dist/lib/object/transform.d.ts +620 -0
  260. package/dist/lib/object/transform.d.ts.map +1 -0
  261. package/dist/lib/object/transform.js +1058 -0
  262. package/dist/lib/object/transform.mjs +1 -0
  263. package/dist/lib/object/types.cjs +1 -0
  264. package/dist/lib/object/types.d.ts +250 -0
  265. package/dist/lib/object/types.d.ts.map +1 -0
  266. package/dist/lib/object/types.js +1 -0
  267. package/dist/lib/object/types.mjs +0 -0
  268. package/dist/lib/object/utils.cjs +6 -0
  269. package/dist/lib/object/utils.d.ts +165 -0
  270. package/dist/lib/object/utils.d.ts.map +1 -0
  271. package/dist/lib/object/utils.js +444 -0
  272. package/dist/lib/object/utils.mjs +6 -0
  273. package/dist/lib/primitive/boolean/boolean.cjs +1 -0
  274. package/dist/lib/primitive/boolean/boolean.d.ts +276 -0
  275. package/dist/lib/primitive/boolean/boolean.d.ts.map +1 -0
  276. package/dist/lib/primitive/boolean/boolean.js +615 -0
  277. package/dist/lib/primitive/boolean/boolean.mjs +1 -0
  278. package/dist/lib/primitive/boolean/index.cjs +1 -0
  279. package/dist/lib/primitive/boolean/index.d.ts +3 -0
  280. package/dist/lib/primitive/boolean/index.d.ts.map +1 -0
  281. package/dist/lib/primitive/boolean/index.js +2 -0
  282. package/dist/lib/primitive/boolean/index.mjs +1 -0
  283. package/dist/lib/primitive/boolean/types.cjs +1 -0
  284. package/dist/lib/primitive/boolean/types.d.ts +14 -0
  285. package/dist/lib/primitive/boolean/types.d.ts.map +1 -0
  286. package/dist/lib/primitive/boolean/types.js +1 -0
  287. package/dist/lib/primitive/boolean/types.mjs +0 -0
  288. package/dist/lib/primitive/date/date.cjs +1 -0
  289. package/dist/lib/primitive/date/date.d.ts +641 -0
  290. package/dist/lib/primitive/date/date.d.ts.map +1 -0
  291. package/dist/lib/primitive/date/date.js +1998 -0
  292. package/dist/lib/primitive/date/date.mjs +1 -0
  293. package/dist/lib/primitive/date/index.cjs +1 -0
  294. package/dist/lib/primitive/date/index.d.ts +3 -0
  295. package/dist/lib/primitive/date/index.d.ts.map +1 -0
  296. package/dist/lib/primitive/date/index.js +2 -0
  297. package/dist/lib/primitive/date/index.mjs +1 -0
  298. package/dist/lib/primitive/date/types.cjs +1 -0
  299. package/dist/lib/primitive/date/types.d.ts +205 -0
  300. package/dist/lib/primitive/date/types.d.ts.map +1 -0
  301. package/dist/lib/primitive/date/types.js +7 -0
  302. package/dist/lib/primitive/date/types.mjs +0 -0
  303. package/dist/lib/primitive/index.cjs +5 -0
  304. package/dist/lib/primitive/index.d.ts +5 -0
  305. package/dist/lib/primitive/index.d.ts.map +1 -0
  306. package/dist/lib/primitive/index.js +4 -0
  307. package/dist/lib/primitive/index.mjs +5 -0
  308. package/dist/lib/primitive/string/index.cjs +5 -0
  309. package/dist/lib/primitive/string/index.d.ts +3 -0
  310. package/dist/lib/primitive/string/index.d.ts.map +1 -0
  311. package/dist/lib/primitive/string/index.js +2 -0
  312. package/dist/lib/primitive/string/index.mjs +5 -0
  313. package/dist/lib/primitive/string/parser-2.cjs +8 -0
  314. package/dist/lib/primitive/string/parser-2.d.ts +17 -0
  315. package/dist/lib/primitive/string/parser-2.d.ts.map +1 -0
  316. package/dist/lib/primitive/string/parser-2.js +656 -0
  317. package/dist/lib/primitive/string/parser-2.mjs +8 -0
  318. package/dist/lib/primitive/string/parser.cjs +3 -0
  319. package/dist/lib/primitive/string/parser.d.ts +9 -0
  320. package/dist/lib/primitive/string/parser.d.ts.map +1 -0
  321. package/dist/lib/primitive/string/parser.js +775 -0
  322. package/dist/lib/primitive/string/parser.mjs +3 -0
  323. package/dist/lib/primitive/string/string.cjs +5 -0
  324. package/dist/lib/primitive/string/string.d.ts +535 -0
  325. package/dist/lib/primitive/string/string.d.ts.map +1 -0
  326. package/dist/lib/primitive/string/string.js +1301 -0
  327. package/dist/lib/primitive/string/string.mjs +5 -0
  328. package/dist/lib/primitive/string/types.cjs +1 -0
  329. package/dist/lib/primitive/string/types.d.ts +318 -0
  330. package/dist/lib/primitive/string/types.d.ts.map +1 -0
  331. package/dist/lib/primitive/string/types.js +5 -0
  332. package/dist/lib/primitive/string/types.mjs +0 -0
  333. package/dist/lib/primitive/types.cjs +1 -0
  334. package/dist/lib/primitive/types.d.ts +27 -0
  335. package/dist/lib/primitive/types.d.ts.map +1 -0
  336. package/dist/lib/primitive/types.js +1 -0
  337. package/dist/lib/primitive/types.mjs +0 -0
  338. package/dist/lib/url/index.cjs +1 -0
  339. package/dist/lib/url/index.d.ts +3 -0
  340. package/dist/lib/url/index.d.ts.map +1 -0
  341. package/dist/lib/url/index.js +2 -0
  342. package/dist/lib/url/index.mjs +1 -0
  343. package/dist/lib/url/parser.cjs +1 -0
  344. package/dist/lib/url/parser.d.ts +216 -0
  345. package/dist/lib/url/parser.d.ts.map +1 -0
  346. package/dist/lib/url/parser.js +488 -0
  347. package/dist/lib/url/parser.mjs +1 -0
  348. package/dist/lib/url/types.cjs +1 -0
  349. package/dist/lib/url/types.d.ts +18 -0
  350. package/dist/lib/url/types.d.ts.map +1 -0
  351. package/dist/lib/url/types.js +1 -0
  352. package/dist/lib/url/types.mjs +0 -0
  353. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  354. package/package.json +150 -0
@@ -0,0 +1 @@
1
+ "use strict";var S=Object.defineProperty;var Me=Object.getOwnPropertyDescriptor;var ze=Object.getOwnPropertyNames;var Ce=Object.prototype.hasOwnProperty;var Ee=(r,e)=>{for(var n in e)S(r,n,{get:e[n],enumerable:!0})},Fe=(r,e,n,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ze(e))!Ce.call(r,o)&&o!==n&&S(r,o,{get:()=>e[o],enumerable:!(t=Me(e,o))||t.enumerable});return r};var Se=r=>Fe(S({},"__esModule",{value:!0}),r);var xn={};Ee(xn,{Constants:()=>p,DEGREES_IN_CIRCLE:()=>Q,DEGREES_PER_RADIAN:()=>k,E:()=>$,GRADIANS_IN_CIRCLE:()=>Y,LN10:()=>O,LN2:()=>G,LOG10E:()=>Z,LOG2E:()=>U,PHI:()=>j,PI:()=>g,RADIANS_IN_CIRCLE:()=>X,RADIANS_PER_DEGREE:()=>H,SQRT1_2:()=>B,SQRT2:()=>L,abs:()=>tr,acos:()=>pe,acosh:()=>ge,add:()=>W,addComplex:()=>Hr,addFractions:()=>Cr,addVectors2D:()=>Br,angleBetween2D:()=>Ur,approxEqual:()=>We,argumentComplex:()=>M,asin:()=>xe,asinh:()=>ye,atan:()=>fe,atan2:()=>be,atanh:()=>he,average:()=>fr,cbrt:()=>Nr,ceil:()=>or,clamp:()=>z,conjugateComplex:()=>Jr,cos:()=>se,cosh:()=>de,cot:()=>we,crossProduct3D:()=>Lr,csc:()=>Ne,degToGrad:()=>oe,degToRad:()=>ne,distance2D:()=>Zr,distance3D:()=>Qr,divide:()=>v,divideComplex:()=>Wr,dotProduct2D:()=>T,dotProduct3D:()=>jr,evaluatePolynomial:()=>zr,exp:()=>Vr,factorial:()=>cr,floor:()=>ur,formatBytes:()=>tn,formatCurrency:()=>nn,formatNumber:()=>en,formatPercent:()=>on,fromPolarComplex:()=>N,gcd:()=>h,gradToDeg:()=>ue,invLerp:()=>I,isComplexNumber:()=>Le,isEven:()=>ke,isFiniteNumber:()=>_e,isFloat:()=>Pe,isFraction:()=>Be,isInRange:()=>Ye,isInt:()=>Ie,isInteger:()=>qe,isMatrix:()=>Ge,isNegative:()=>Ue,isNonNegative:()=>Ze,isNonPositive:()=>Qe,isNumber:()=>Ae,isNumeric:()=>Re,isNumericString:()=>K,isOdd:()=>He,isPositive:()=>Oe,isPowerOfTwo:()=>Je,isPrime:()=>Ke,isSafeInteger:()=>Te,isVector2D:()=>$e,isVector3D:()=>je,isZero:()=>Xe,lcm:()=>sr,lerp:()=>R,lerp2D:()=>Xr,ln:()=>Dr,lnComplex:()=>ee,log:()=>hr,log10:()=>yr,log2:()=>gr,magnitude2D:()=>V,magnitude3D:()=>A,magnitude4D:()=>qr,magnitudeComplex:()=>w,mapRange:()=>ar,max:()=>pr,median:()=>lr,min:()=>xr,modulo:()=>rr,multiplyComplex:()=>q,multiplyFractions:()=>Er,normalize:()=>Tr,normalize2D:()=>_r,normalize3D:()=>$r,normalizeDegrees:()=>me,normalizeRadians:()=>ie,nthRoot:()=>wr,parseIntSafe:()=>an,percentage:()=>Fr,power:()=>er,powerComplex:()=>re,product:()=>dr,radToDeg:()=>te,randomBool:()=>cn,randomFloat:()=>mn,randomInt:()=>un,range:()=>Ir,rotate2D:()=>Yr,round:()=>d,scaleVector2D:()=>Or,sec:()=>Ve,sign:()=>mr,simplifyFraction:()=>C,sin:()=>ce,sinh:()=>le,solveQuadratic:()=>Mr,sqrt:()=>nr,sqrtComplex:()=>vr,subtract:()=>J,subtractComplex:()=>Kr,subtractVectors2D:()=>Gr,sum:()=>br,tan:()=>ae,tanh:()=>De,toBase:()=>Sr,toNumber:()=>sn,toOrdinal:()=>Rr,toPolarComplex:()=>_,trunc:()=>ir,truncateDecimals:()=>Ar,wrap:()=>Pr});module.exports=Se(xn);var g=3.141592653589793,$=2.718281828459045,j=1.618033988749894,L=1.4142135623730951,B=.7071067811865476,G=.6931471805599453,O=2.302585092994046,U=1.4426950408889634,Z=.4342944819032518,Q=360,X=2*g,Y=400,k=180/g,H=g/180,p={PI:g,E:$,PHI:j,SQRT2:L,SQRT1_2:B,LN2:G,LN10:O,LOG2E:U,LOG10E:Z,DEGREES_IN_CIRCLE:Q,RADIANS_IN_CIRCLE:X,GRADIANS_IN_CIRCLE:Y,DEGREES_PER_RADIAN:k,RADIANS_PER_DEGREE:H};var K=r=>{let e=r.trim();if(e===""||!/^[-+]?\d*\.?\d+(?:[eE][-+]?\d+)?$/.test(e))return!1;let n=Number(e);return Number.isFinite(n)},Re=r=>typeof r=="number"?Number.isFinite(r):typeof r=="string"?K(r):!1,Ie=r=>{if(typeof r=="number")return Number.isInteger(r);if(typeof r=="string"){let n=r.trim();if(!n||!/^[-+]?\d+$/.test(n))return!1;let t=Number(n);return Number.isInteger(t)&&Number.isFinite(t)}if(typeof r=="boolean"||r==null||Array.isArray(r))return!1;let e=Number(r);return!Number.isNaN(e)&&Number.isInteger(e)&&Number.isFinite(e)},Ae=r=>typeof r=="number"&&Number.isFinite(r),Te=r=>typeof r=="number"&&Number.isSafeInteger(r),Pe=r=>typeof r!="number"||!Number.isFinite(r)?!1:!Number.isInteger(r);function qe(r){return Number.isInteger(r)}function _e(r){return Number.isFinite(r)}function $e(r){return typeof r=="object"&&r!==null&&"x"in r&&"y"in r&&typeof r.x=="number"&&typeof r.y=="number"}function je(r){return typeof r=="object"&&r!==null&&"x"in r&&"y"in r&&"z"in r&&typeof r.x=="number"&&typeof r.y=="number"&&typeof r.z=="number"}function Le(r){return typeof r=="object"&&r!==null&&"real"in r&&"imag"in r&&typeof r.real=="number"&&typeof r.imag=="number"}function Be(r){return typeof r=="object"&&r!==null&&"numerator"in r&&"denominator"in r&&typeof r.numerator=="number"&&typeof r.denominator=="number"&&r.denominator!==0}function Ge(r){return typeof r=="object"&&r!==null&&"rows"in r&&"columns"in r&&"data"in r&&typeof r.rows=="number"&&typeof r.columns=="number"&&Array.isArray(r.data)&&r.data.every(e=>Array.isArray(e))}var Oe=r=>Number.isFinite(r)&&r>0,Ue=r=>Number.isFinite(r)&&r<0;function Ze(r){return Number.isFinite(r)&&r>=0}function Qe(r){return Number.isFinite(r)&&r<=0}var Xe=(r,e=1e-10)=>Number.isFinite(r)&&Math.abs(r)<e;function Ye(r,e,n,t=!0){return t?r>=e&&r<=n:r>e&&r<n}function ke(r){return(r&1)===0}function He(r){return(r&1)===1}var Ke=r=>{if(!Number.isInteger(r)||r<=1)return!1;if(r<=3)return!0;if(r%2===0||r%3===0)return!1;for(let e=5;e*e<=r;e+=6)if(r%e===0||r%(e+2)===0)return!1;return!0},We=(r,e,n=Math.E)=>{if(r===e)return!0;if(!Number.isFinite(r)||!Number.isFinite(e))return r===e;let t=Math.abs(r),o=Math.abs(e),u=Math.abs(r-e);return r===0||e===0||u<n?u<n:u>n?!1:u/Math.min(t+o,Number.MAX_SAFE_INTEGER)<n},Je=r=>r>0&&(r&r-1)===0;function W(r,e){return r+e}function J(r,e){return r-e}var v=(r,e,n)=>e===0?n!==void 0?n:NaN:r/e;function rr(r,e){return r%e}function er(r,e){return Math.pow(r,e)}function nr(r){if(r<0)throw new Error("Cannot calculate square root of negative number");return Math.sqrt(r)}function tr(r){return Math.abs(r)}var d=(r,e=0,n="round")=>{if(n==="david")return ve(r,e,n);if(!Number.isFinite(r))return r;if(e===0)return Math[n](r);if(e<0){let y=10**-e;return Math[n](r/y)*y}let t=10**e,o=Math.pow(2,-52),u=r*t,i=Math.sign(u)*o*Math.abs(u),s;switch(n){case"round":s=Math.round(u+i);break;case"ceil":s=Math.ceil(u-o);break;case"floor":s=Math.floor(u+o);break;case"trunc":s=u<0?Math.ceil(u):Math.floor(u);break;default:s=Math.round(u+i)}return s/t},ve=(r,e=0,n="round")=>{let t=Math.abs(r),o=r<0?-1:1;if(e===0)return Math.round(t)*o;if(!Number.isFinite(t))return t*o;let u=10**e,i=t*u,s=Math.pow(2,-53),y=Math.sign(i)*s*Math.abs(i);return i+=y,Math.round(i)/u*o},or=(r,e=0)=>d(r,e,"ceil"),ur=(r,e=0)=>d(r,e,"floor"),ir=(r,e=0)=>d(r,e,"trunc"),z=(r,e,n)=>(e>n&&([e,n]=[n,e]),r<e?e:r>n?n:r);function mr(r){return r>0?1:r<0?-1:0}function cr(r){if(!Number.isInteger(r)||r<0)throw new Error("Factorial is only defined for non-negative integers");if(r===0||r===1)return 1;let e=1;for(let n=2;n<=r;n++)e*=n;return e}function h(r,e){for(r=Math.abs(r),e=Math.abs(e);e!==0;){let n=e;e=r%e,r=n}return r}function sr(r,e){return Math.abs(r*e)/h(r,e)}function R(r,e,n){return r+(e-r)*z(n,0,1)}var I=(r,e,n)=>z((n-r)/(e-r),0,1),ar=(r,e,n,t,o)=>{let u=I(e,n,r);return R(t,o,u)};function xr(...r){return Math.min(...r)}function pr(...r){return Math.max(...r)}var fr=(...r)=>{if(!Array.isArray(r)||r.length===0)return 0;let e=0,n=0;for(let t of r)Number.isFinite(t)&&(e+=t,n++);return n===0?0:e/n},br=(...r)=>Array.isArray(r)?r.reduce((e,n)=>e+(Number.isFinite(n)?n:0),0):0,lr=(...r)=>{if(!Array.isArray(r)||r.length===0)return 0;let e=r.filter(Number.isFinite);if(e.length===0)return 0;e.sort((t,o)=>t-o);let n=Math.floor(e.length/2);return e.length%2===0?(e[n-1]+e[n])/2:e[n]};function dr(...r){return r.reduce((e,n)=>e*n,1)}function Dr(r){if(r<=0)throw new Error("Natural logarithm is only defined for positive numbers");return Math.log(r)}function yr(r){if(r<=0)throw new Error("Logarithm is only defined for positive numbers");return Math.log10(r)}function gr(r){if(r<=0)throw new Error("Logarithm is only defined for positive numbers");return Math.log2(r)}function hr(r,e){if(r<=0||e<=0)throw new Error("Logarithm is only defined for positive numbers and bases");return Math.log(r)/Math.log(e)}function Vr(r){return Math.exp(r)}function Nr(r){return Math.cbrt(r)}function wr(r,e){if(e===0)throw new Error("Cannot calculate 0th root");if(r<0&&e%2===0)throw new Error("Cannot calculate even root of negative number");let n=1/e;return Math.sign(r)*Math.pow(Math.abs(r),n)}function Mr(r,e,n){if(r===0)return e===0?[]:[-n/e];let t=e*e-4*r*n;if(t<0)return[];if(t===0)return[-e/(2*r)];{let o=Math.sqrt(t);return[(-e-o)/(2*r),(-e+o)/(2*r)]}}function zr(r,e){let n=0;for(let t=0;t<r.length;t++)n=n*e+r[t];return n}function C(r){let e=h(r.numerator,r.denominator);return{numerator:r.numerator/e,denominator:r.denominator/e}}function Cr(r,e){let n=r.numerator*e.denominator+e.numerator*r.denominator,t=r.denominator*e.denominator;return C({numerator:n,denominator:t})}function Er(r,e){let n=r.numerator*e.numerator,t=r.denominator*e.denominator;return C({numerator:n,denominator:t})}var Fr=(r,e,n=2)=>{if(e===0)return 0;let t=r/e*100;return d(t,n)},Sr=(r,e,n=1)=>{if(e<2||e>36)throw new Error("Base must be between 2 and 36");return r.toString(e).padStart(n,"0")},Rr=r=>{let e=["th","st","nd","rd"],n=r%100;return r+(e[(n-20)%10]||e[n]||e[0])},Ir=(r,e,n=1)=>{let t=[];if(n===0)return t;if(n>0)for(let o=r;o<e;o+=n)t.push(o);else for(let o=r;o>e;o+=n)t.push(o);return t},Ar=(r,e)=>{if(!Number.isFinite(r))return r;let n=10**e;return Math.trunc(r*n)/n},Tr=(r,e,n)=>e===n?0:(r-e)/(n-e),Pr=(r,e,n)=>{let t=n-e;return((r-e)%t+t)%t+e};function a(r,e){if(typeof r!="number"||!Number.isFinite(r))throw new Error(`${e} must be a finite number, got ${r}`)}function f(r){return Math.abs(r)<1e-9}function m(r,e="Vector2D"){if(!r||typeof r!="object")throw new Error(`${e} must be an object`);a(r.x,`${e}.x`),a(r.y,`${e}.y`)}function b(r,e="Vector3D"){if(!r||typeof r!="object")throw new Error(`${e} must be an object`);a(r.x,`${e}.x`),a(r.y,`${e}.y`),a(r.z,`${e}.z`)}function rn(r,e="Vector4D"){if(!r||typeof r!="object")throw new Error(`${e} must be an object`);a(r.x,`${e}.x`),a(r.y,`${e}.y`),a(r.z,`${e}.z`),a(r.w,`${e}.w`)}function V(r){m(r);let e=Math.sqrt(r.x*r.x+r.y*r.y);return f(e)?0:e}function A(r){b(r);let e=Math.sqrt(r.x*r.x+r.y*r.y+r.z*r.z);return f(e)?0:e}function qr(r){rn(r);let e=Math.sqrt(r.x*r.x+r.y*r.y+r.z*r.z+r.w*r.w);return f(e)?0:e}function _r(r){m(r);let e=V(r);if(f(e))throw new Error("Cannot normalize zero or near-zero vector");return{x:r.x/e,y:r.y/e}}function $r(r){b(r);let e=A(r);if(f(e))throw new Error("Cannot normalize zero or near-zero vector");return{x:r.x/e,y:r.y/e,z:r.z/e}}function T(r,e){return m(r,"First vector"),m(e,"Second vector"),r.x*e.x+r.y*e.y}function jr(r,e){return b(r,"First vector"),b(e,"Second vector"),r.x*e.x+r.y*e.y+r.z*e.z}function Lr(r,e){return b(r,"First vector"),b(e,"Second vector"),{x:r.y*e.z-r.z*e.y,y:r.z*e.x-r.x*e.z,z:r.x*e.y-r.y*e.x}}function Br(r,e){return m(r,"First vector"),m(e,"Second vector"),{x:r.x+e.x,y:r.y+e.y}}function Gr(r,e){return m(r,"First vector"),m(e,"Second vector"),{x:r.x-e.x,y:r.y-e.y}}function Or(r,e){return m(r),a(e,"scalar"),{x:r.x*e,y:r.y*e}}function Ur(r,e){m(r,"First vector"),m(e,"Second vector");let n=T(r,e),t=V(r),o=V(e);if(f(t)||f(o))throw new Error("Cannot calculate angle with zero or near-zero vector");let u=Math.max(-1,Math.min(1,n/(t*o)));return Math.acos(u)}function Zr(r,e){m(r,"First point"),m(e,"Second point");let n=e.x-r.x,t=e.y-r.y,o=Math.sqrt(n*n+t*t);return f(o)?0:o}function Qr(r,e){b(r,"First point"),b(e,"Second point");let n=e.x-r.x,t=e.y-r.y,o=e.z-r.z,u=Math.sqrt(n*n+t*t+o*o);return f(u)?0:u}function Xr(r,e,n){return m(r,"Start vector"),m(e,"End vector"),a(n,"t"),{x:r.x+(e.x-r.x)*n,y:r.y+(e.y-r.y)*n}}function Yr(r,e){m(r),a(e,"angle");let n=Math.cos(e),t=Math.sin(e);return{x:r.x*n-r.y*t,y:r.x*t+r.y*n}}var P=2*Math.PI;function x(r){return Math.abs(r)<1e-10}function kr(r,e){return Math.abs(r-e)<1e-10}function l(r){return{real:x(r.real)?0:r.real,imag:x(r.imag)?0:r.imag}}function D(r,e){if(typeof r!="number"||!Number.isFinite(r))throw new Error(`${e} must be a finite number, got ${r}`)}function c(r,e="Complex number"){if(!r||typeof r!="object")throw new Error(`${e} must be an object`);D(r.real,`${e}.real`),D(r.imag,`${e}.imag`)}function E(r,e=0){return D(r,"real"),D(e,"imag"),l({real:r,imag:e})}function Hr(r,e){return c(r,"First complex number"),c(e,"Second complex number"),l({real:r.real+e.real,imag:r.imag+e.imag})}function Kr(r,e){return c(r,"First complex number"),c(e,"Second complex number"),l({real:r.real-e.real,imag:r.imag-e.imag})}function q(r,e){return c(r,"First complex number"),c(e,"Second complex number"),l({real:r.real*e.real-r.imag*e.imag,imag:r.real*e.imag+r.imag*e.real})}function Wr(r,e){c(r,"Numerator complex number"),c(e,"Denominator complex number");let n=e.real*e.real+e.imag*e.imag;if(x(n))throw new Error("Cannot divide by zero or near-zero complex number");return l({real:(r.real*e.real+r.imag*e.imag)/n,imag:(r.imag*e.real-r.real*e.imag)/n})}function w(r){c(r);let e=Math.sqrt(r.real*r.real+r.imag*r.imag);return x(e)?0:e}function Jr(r){return c(r),l({real:r.real,imag:-r.imag})}function M(r){return c(r),x(r.real)&&x(r.imag)?0:Math.atan2(r.imag,r.real)}function _(r){return c(r),{magnitude:w(r),angle:M(r)}}function N(r,e){if(D(r,"magnitude"),D(e,"angle"),r<-1e-10)throw new Error("Magnitude must be non-negative");let n=e%P;n>Math.PI&&(n-=P),n<=-Math.PI&&(n+=P);let t=Math.max(0,r);return l({real:t*Math.cos(n),imag:t*Math.sin(n)})}function vr(r){if(c(r),x(r.real)&&x(r.imag)){let i=E(0,0);return[i,i]}let e=w(r),n=M(r),t=Math.sqrt(e),o=n/2,u=o+Math.PI;return[N(t,o),N(t,u)]}function re(r,e){if(c(r),D(e,"exponent"),x(e))return E(1,0);if(kr(e,1))return E(r.real,r.imag);if(kr(e,2))return q(r,r);if(x(r.real)&&x(r.imag)){if(e>0)return E(0,0);if(e<0)throw new Error("Cannot raise zero to a negative power")}let n=_(r),t=Math.pow(n.magnitude,e),o=t<-1e-10?Math.abs(t):Math.max(0,t),u=n.angle*e;return N(o,u)}function ee(r){c(r);let e=w(r);if(x(e))throw new Error("Cannot take logarithm of zero or near-zero complex number");let n=M(r);return l({real:Math.log(e),imag:n})}function ne(r){return r*p.RADIANS_PER_DEGREE}function te(r){return r*p.DEGREES_PER_RADIAN}function oe(r){return r*(p.GRADIANS_IN_CIRCLE/p.DEGREES_IN_CIRCLE)}function ue(r){return r*(p.DEGREES_IN_CIRCLE/p.GRADIANS_IN_CIRCLE)}function ie(r){let e=p.RADIANS_IN_CIRCLE,n=r%e;return n<0&&(n+=e),n}function me(r){let e=r%p.DEGREES_IN_CIRCLE;return e<0&&(e+=p.DEGREES_IN_CIRCLE),e}function ce(r){return Math.sin(r)}function se(r){return Math.cos(r)}function ae(r){let e=Math.cos(r);if(Math.abs(e)<1e-10)throw new Error("Tangent undefined for this angle (cosine is zero)");return Math.tan(r)}function xe(r){if(r<-1||r>1)throw new Error("Arcsine is only defined for values between -1 and 1");return Math.asin(r)}function pe(r){if(r<-1||r>1)throw new Error("Arccosine is only defined for values between -1 and 1");return Math.acos(r)}function fe(r){return Math.atan(r)}function be(r,e){return Math.atan2(r,e)}function le(r){return Math.sinh(r)}function de(r){return Math.cosh(r)}function De(r){return Math.tanh(r)}function ye(r){return Math.asinh(r)}function ge(r){if(r<1)throw new Error("Inverse hyperbolic cosine is only defined for x >= 1");return Math.acosh(r)}function he(r){if(Math.abs(r)>=1)throw new Error("Inverse hyperbolic tangent is only defined for |x| < 1");return Math.atanh(r)}function Ve(r){let e=Math.cos(r);if(Math.abs(e)<1e-10)throw new Error("Secant undefined for this angle (cosine is zero)");return 1/e}function Ne(r){let e=Math.sin(r);if(Math.abs(e)<1e-10)throw new Error("Cosecant undefined for this angle (sine is zero)");return 1/e}function we(r){let e=Math.tan(r);if(Math.abs(e)<1e-10)throw new Error("Cotangent undefined for this angle (tangent is zero)");return 1/e}var en=(r,e={})=>{let{locale:n="en-US",minimumFractionDigits:t=0,maximumFractionDigits:o=20}=e;return new Intl.NumberFormat(n,{minimumFractionDigits:t,maximumFractionDigits:o}).format(r)},nn=(r,e="USD",n="en-US")=>new Intl.NumberFormat(n,{style:"currency",currency:e}).format(r),tn=(r,e=2)=>{if(r===0)return"0 Bytes";let n=1024,t=e<0?0:e,o=["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"],u=Math.floor(Math.log(r)/Math.log(n));return`${parseFloat((r/Math.pow(n,u)).toFixed(t))} ${o[u]}`},on=(r,e=2,n="en-US")=>{let t=r*100;return new Intl.NumberFormat(n,{style:"percent",minimumFractionDigits:0,maximumFractionDigits:Math.max(0,e)}).format(t/100)};var un=(r,e)=>{let[n,t]=r<=e?[r,e]:[e,r];if(typeof crypto<"u"&&crypto.getRandomValues){let o=t-n+1,u=4294967295,i=new Uint32Array(1),s;do crypto.getRandomValues(i),s=i[0]/(u+1);while(s>=1-1%o/1);return Math.floor(s*o)+n}return Math.floor(Math.random()*(t-n+1))+n},mn=(r,e)=>{let[n,t]=r<=e?[r,e]:[e,r];return Math.random()*(t-n)+n},cn=(r=.5)=>Math.random()<r;var sn=(r,e)=>{if(typeof r=="number")return Number.isFinite(r)?r:e!==void 0?e:NaN;if(r==null)return e!==void 0?e:NaN;if(typeof r=="boolean")return r?1:0;if(typeof r=="string"){let t=r.trim();if(t==="")return e!==void 0?e:NaN;let o=Number(t);return Number.isFinite(o)?o:e!==void 0?e:NaN}let n=Number(r);return Number.isFinite(n)?n:e!==void 0?e:NaN},an=(r,e=10,n)=>{let t=r.trim();if(t==="")return n!==void 0?n:NaN;if(e===16){let u=/^(-?)0?x?([0-9a-fA-F]+)$/,i=t.match(u);if(i){let s=i[1]?-1:1,y=i[2],F=parseInt(y,16);return isNaN(F)?n!==void 0?n:NaN:s*F}}let o=parseInt(t,e);if(isNaN(o))return n!==void 0?n:NaN;if(e!==16&&e!==10){let u="0123456789abcdefghijklmnopqrstuvwxyz".slice(0,e);if(!new RegExp(`^[-+]?[${u}]+$`,"i").test(t))return n!==void 0?n:NaN}return o};
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Complete mathematical utilities library.
3
+ * Tree-shakable: Only import what you need!
4
+ *
5
+ * @example
6
+ * ```typescript
7
+ * // Import specific functions
8
+ * import { add, multiply } from './math-utils/functions';
9
+ * import type { Vector2D } from './math-utils/types';
10
+ *
11
+ * // Or import everything
12
+ * import * as MathUtils from './math-utils';
13
+ * ```
14
+ *
15
+ * @module MathUtils
16
+ */
17
+ export * from './types/index.js';
18
+ export * from './constants.js';
19
+ export * from './guards.js';
20
+ export * from './fn/index.js';
21
+ export * from './formatter.js';
22
+ export * from './random.js';
23
+ export * from './parser.js';
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/maths/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;EAeE;AAGF,cAAc,kBAAkB,CAAC;AAGjC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,aAAa,CAAC;AAG5B,cAAc,eAAe,CAAC;AAG9B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Complete mathematical utilities library.
3
+ * Tree-shakable: Only import what you need!
4
+ *
5
+ * @example
6
+ * ```typescript
7
+ * // Import specific functions
8
+ * import { add, multiply } from './math-utils/functions';
9
+ * import type { Vector2D } from './math-utils/types';
10
+ *
11
+ * // Or import everything
12
+ * import * as MathUtils from './math-utils';
13
+ * ```
14
+ *
15
+ * @module MathUtils
16
+ */
17
+ // Export types
18
+ export * from './types/index.js';
19
+ // Export constants
20
+ export * from './constants.js';
21
+ // Export type guards
22
+ export * from './guards.js';
23
+ // Export functions
24
+ export * from './fn/index.js';
25
+ // Export formatters
26
+ export * from './formatter.js';
27
+ // Export utilities
28
+ export * from './random.js';
29
+ export * from './parser.js';
@@ -0,0 +1 @@
1
+ var g=3.141592653589793,$=2.718281828459045,j=1.618033988749894,L=1.4142135623730951,B=.7071067811865476,G=.6931471805599453,O=2.302585092994046,U=1.4426950408889634,Z=.4342944819032518,Q=360,X=2*g,Y=400,k=180/g,H=g/180,p={PI:g,E:$,PHI:j,SQRT2:L,SQRT1_2:B,LN2:G,LN10:O,LOG2E:U,LOG10E:Z,DEGREES_IN_CIRCLE:Q,RADIANS_IN_CIRCLE:X,GRADIANS_IN_CIRCLE:Y,DEGREES_PER_RADIAN:k,RADIANS_PER_DEGREE:H};var K=r=>{let e=r.trim();if(e===""||!/^[-+]?\d*\.?\d+(?:[eE][-+]?\d+)?$/.test(e))return!1;let n=Number(e);return Number.isFinite(n)},Ce=r=>typeof r=="number"?Number.isFinite(r):typeof r=="string"?K(r):!1,Ee=r=>{if(typeof r=="number")return Number.isInteger(r);if(typeof r=="string"){let n=r.trim();if(!n||!/^[-+]?\d+$/.test(n))return!1;let t=Number(n);return Number.isInteger(t)&&Number.isFinite(t)}if(typeof r=="boolean"||r==null||Array.isArray(r))return!1;let e=Number(r);return!Number.isNaN(e)&&Number.isInteger(e)&&Number.isFinite(e)},Fe=r=>typeof r=="number"&&Number.isFinite(r),Se=r=>typeof r=="number"&&Number.isSafeInteger(r),Re=r=>typeof r!="number"||!Number.isFinite(r)?!1:!Number.isInteger(r);function Ie(r){return Number.isInteger(r)}function Ae(r){return Number.isFinite(r)}function Te(r){return typeof r=="object"&&r!==null&&"x"in r&&"y"in r&&typeof r.x=="number"&&typeof r.y=="number"}function Pe(r){return typeof r=="object"&&r!==null&&"x"in r&&"y"in r&&"z"in r&&typeof r.x=="number"&&typeof r.y=="number"&&typeof r.z=="number"}function qe(r){return typeof r=="object"&&r!==null&&"real"in r&&"imag"in r&&typeof r.real=="number"&&typeof r.imag=="number"}function _e(r){return typeof r=="object"&&r!==null&&"numerator"in r&&"denominator"in r&&typeof r.numerator=="number"&&typeof r.denominator=="number"&&r.denominator!==0}function $e(r){return typeof r=="object"&&r!==null&&"rows"in r&&"columns"in r&&"data"in r&&typeof r.rows=="number"&&typeof r.columns=="number"&&Array.isArray(r.data)&&r.data.every(e=>Array.isArray(e))}var je=r=>Number.isFinite(r)&&r>0,Le=r=>Number.isFinite(r)&&r<0;function Be(r){return Number.isFinite(r)&&r>=0}function Ge(r){return Number.isFinite(r)&&r<=0}var Oe=(r,e=1e-10)=>Number.isFinite(r)&&Math.abs(r)<e;function Ue(r,e,n,t=!0){return t?r>=e&&r<=n:r>e&&r<n}function Ze(r){return(r&1)===0}function Qe(r){return(r&1)===1}var Xe=r=>{if(!Number.isInteger(r)||r<=1)return!1;if(r<=3)return!0;if(r%2===0||r%3===0)return!1;for(let e=5;e*e<=r;e+=6)if(r%e===0||r%(e+2)===0)return!1;return!0},Ye=(r,e,n=Math.E)=>{if(r===e)return!0;if(!Number.isFinite(r)||!Number.isFinite(e))return r===e;let t=Math.abs(r),o=Math.abs(e),u=Math.abs(r-e);return r===0||e===0||u<n?u<n:u>n?!1:u/Math.min(t+o,Number.MAX_SAFE_INTEGER)<n},ke=r=>r>0&&(r&r-1)===0;function W(r,e){return r+e}function J(r,e){return r-e}var v=(r,e,n)=>e===0?n!==void 0?n:NaN:r/e;function rr(r,e){return r%e}function er(r,e){return Math.pow(r,e)}function nr(r){if(r<0)throw new Error("Cannot calculate square root of negative number");return Math.sqrt(r)}function tr(r){return Math.abs(r)}var y=(r,e=0,n="round")=>{if(n==="david")return or(r,e,n);if(!Number.isFinite(r))return r;if(e===0)return Math[n](r);if(e<0){let D=10**-e;return Math[n](r/D)*D}let t=10**e,o=Math.pow(2,-52),u=r*t,i=Math.sign(u)*o*Math.abs(u),s;switch(n){case"round":s=Math.round(u+i);break;case"ceil":s=Math.ceil(u-o);break;case"floor":s=Math.floor(u+o);break;case"trunc":s=u<0?Math.ceil(u):Math.floor(u);break;default:s=Math.round(u+i)}return s/t},or=(r,e=0,n="round")=>{let t=Math.abs(r),o=r<0?-1:1;if(e===0)return Math.round(t)*o;if(!Number.isFinite(t))return t*o;let u=10**e,i=t*u,s=Math.pow(2,-53),D=Math.sign(i)*s*Math.abs(i);return i+=D,Math.round(i)/u*o},ur=(r,e=0)=>y(r,e,"ceil"),ir=(r,e=0)=>y(r,e,"floor"),mr=(r,e=0)=>y(r,e,"trunc"),E=(r,e,n)=>(e>n&&([e,n]=[n,e]),r<e?e:r>n?n:r);function cr(r){return r>0?1:r<0?-1:0}function sr(r){if(!Number.isInteger(r)||r<0)throw new Error("Factorial is only defined for non-negative integers");if(r===0||r===1)return 1;let e=1;for(let n=2;n<=r;n++)e*=n;return e}function h(r,e){for(r=Math.abs(r),e=Math.abs(e);e!==0;){let n=e;e=r%e,r=n}return r}function ar(r,e){return Math.abs(r*e)/h(r,e)}function R(r,e,n){return r+(e-r)*E(n,0,1)}var I=(r,e,n)=>E((n-r)/(e-r),0,1),xr=(r,e,n,t,o)=>{let u=I(e,n,r);return R(t,o,u)};function pr(...r){return Math.min(...r)}function fr(...r){return Math.max(...r)}var br=(...r)=>{if(!Array.isArray(r)||r.length===0)return 0;let e=0,n=0;for(let t of r)Number.isFinite(t)&&(e+=t,n++);return n===0?0:e/n},lr=(...r)=>Array.isArray(r)?r.reduce((e,n)=>e+(Number.isFinite(n)?n:0),0):0,dr=(...r)=>{if(!Array.isArray(r)||r.length===0)return 0;let e=r.filter(Number.isFinite);if(e.length===0)return 0;e.sort((t,o)=>t-o);let n=Math.floor(e.length/2);return e.length%2===0?(e[n-1]+e[n])/2:e[n]};function Dr(...r){return r.reduce((e,n)=>e*n,1)}function yr(r){if(r<=0)throw new Error("Natural logarithm is only defined for positive numbers");return Math.log(r)}function gr(r){if(r<=0)throw new Error("Logarithm is only defined for positive numbers");return Math.log10(r)}function hr(r){if(r<=0)throw new Error("Logarithm is only defined for positive numbers");return Math.log2(r)}function Vr(r,e){if(r<=0||e<=0)throw new Error("Logarithm is only defined for positive numbers and bases");return Math.log(r)/Math.log(e)}function Nr(r){return Math.exp(r)}function wr(r){return Math.cbrt(r)}function Mr(r,e){if(e===0)throw new Error("Cannot calculate 0th root");if(r<0&&e%2===0)throw new Error("Cannot calculate even root of negative number");let n=1/e;return Math.sign(r)*Math.pow(Math.abs(r),n)}function zr(r,e,n){if(r===0)return e===0?[]:[-n/e];let t=e*e-4*r*n;if(t<0)return[];if(t===0)return[-e/(2*r)];{let o=Math.sqrt(t);return[(-e-o)/(2*r),(-e+o)/(2*r)]}}function Cr(r,e){let n=0;for(let t=0;t<r.length;t++)n=n*e+r[t];return n}function F(r){let e=h(r.numerator,r.denominator);return{numerator:r.numerator/e,denominator:r.denominator/e}}function Er(r,e){let n=r.numerator*e.denominator+e.numerator*r.denominator,t=r.denominator*e.denominator;return F({numerator:n,denominator:t})}function Fr(r,e){let n=r.numerator*e.numerator,t=r.denominator*e.denominator;return F({numerator:n,denominator:t})}var Sr=(r,e,n=2)=>{if(e===0)return 0;let t=r/e*100;return y(t,n)},Rr=(r,e,n=1)=>{if(e<2||e>36)throw new Error("Base must be between 2 and 36");return r.toString(e).padStart(n,"0")},Ir=r=>{let e=["th","st","nd","rd"],n=r%100;return r+(e[(n-20)%10]||e[n]||e[0])},Ar=(r,e,n=1)=>{let t=[];if(n===0)return t;if(n>0)for(let o=r;o<e;o+=n)t.push(o);else for(let o=r;o>e;o+=n)t.push(o);return t},Tr=(r,e)=>{if(!Number.isFinite(r))return r;let n=10**e;return Math.trunc(r*n)/n},Pr=(r,e,n)=>e===n?0:(r-e)/(n-e),qr=(r,e,n)=>{let t=n-e;return((r-e)%t+t)%t+e};function a(r,e){if(typeof r!="number"||!Number.isFinite(r))throw new Error(`${e} must be a finite number, got ${r}`)}function f(r){return Math.abs(r)<1e-9}function m(r,e="Vector2D"){if(!r||typeof r!="object")throw new Error(`${e} must be an object`);a(r.x,`${e}.x`),a(r.y,`${e}.y`)}function b(r,e="Vector3D"){if(!r||typeof r!="object")throw new Error(`${e} must be an object`);a(r.x,`${e}.x`),a(r.y,`${e}.y`),a(r.z,`${e}.z`)}function _r(r,e="Vector4D"){if(!r||typeof r!="object")throw new Error(`${e} must be an object`);a(r.x,`${e}.x`),a(r.y,`${e}.y`),a(r.z,`${e}.z`),a(r.w,`${e}.w`)}function V(r){m(r);let e=Math.sqrt(r.x*r.x+r.y*r.y);return f(e)?0:e}function A(r){b(r);let e=Math.sqrt(r.x*r.x+r.y*r.y+r.z*r.z);return f(e)?0:e}function $r(r){_r(r);let e=Math.sqrt(r.x*r.x+r.y*r.y+r.z*r.z+r.w*r.w);return f(e)?0:e}function jr(r){m(r);let e=V(r);if(f(e))throw new Error("Cannot normalize zero or near-zero vector");return{x:r.x/e,y:r.y/e}}function Lr(r){b(r);let e=A(r);if(f(e))throw new Error("Cannot normalize zero or near-zero vector");return{x:r.x/e,y:r.y/e,z:r.z/e}}function T(r,e){return m(r,"First vector"),m(e,"Second vector"),r.x*e.x+r.y*e.y}function Br(r,e){return b(r,"First vector"),b(e,"Second vector"),r.x*e.x+r.y*e.y+r.z*e.z}function Gr(r,e){return b(r,"First vector"),b(e,"Second vector"),{x:r.y*e.z-r.z*e.y,y:r.z*e.x-r.x*e.z,z:r.x*e.y-r.y*e.x}}function Or(r,e){return m(r,"First vector"),m(e,"Second vector"),{x:r.x+e.x,y:r.y+e.y}}function Ur(r,e){return m(r,"First vector"),m(e,"Second vector"),{x:r.x-e.x,y:r.y-e.y}}function Zr(r,e){return m(r),a(e,"scalar"),{x:r.x*e,y:r.y*e}}function Qr(r,e){m(r,"First vector"),m(e,"Second vector");let n=T(r,e),t=V(r),o=V(e);if(f(t)||f(o))throw new Error("Cannot calculate angle with zero or near-zero vector");let u=Math.max(-1,Math.min(1,n/(t*o)));return Math.acos(u)}function Xr(r,e){m(r,"First point"),m(e,"Second point");let n=e.x-r.x,t=e.y-r.y,o=Math.sqrt(n*n+t*t);return f(o)?0:o}function Yr(r,e){b(r,"First point"),b(e,"Second point");let n=e.x-r.x,t=e.y-r.y,o=e.z-r.z,u=Math.sqrt(n*n+t*t+o*o);return f(u)?0:u}function kr(r,e,n){return m(r,"Start vector"),m(e,"End vector"),a(n,"t"),{x:r.x+(e.x-r.x)*n,y:r.y+(e.y-r.y)*n}}function Hr(r,e){m(r),a(e,"angle");let n=Math.cos(e),t=Math.sin(e);return{x:r.x*n-r.y*t,y:r.x*t+r.y*n}}var S=2*Math.PI;function x(r){return Math.abs(r)<1e-10}function P(r,e){return Math.abs(r-e)<1e-10}function l(r){return{real:x(r.real)?0:r.real,imag:x(r.imag)?0:r.imag}}function d(r,e){if(typeof r!="number"||!Number.isFinite(r))throw new Error(`${e} must be a finite number, got ${r}`)}function c(r,e="Complex number"){if(!r||typeof r!="object")throw new Error(`${e} must be an object`);d(r.real,`${e}.real`),d(r.imag,`${e}.imag`)}function N(r,e=0){return d(r,"real"),d(e,"imag"),l({real:r,imag:e})}function Kr(r,e){return c(r,"First complex number"),c(e,"Second complex number"),l({real:r.real+e.real,imag:r.imag+e.imag})}function Wr(r,e){return c(r,"First complex number"),c(e,"Second complex number"),l({real:r.real-e.real,imag:r.imag-e.imag})}function q(r,e){return c(r,"First complex number"),c(e,"Second complex number"),l({real:r.real*e.real-r.imag*e.imag,imag:r.real*e.imag+r.imag*e.real})}function Jr(r,e){c(r,"Numerator complex number"),c(e,"Denominator complex number");let n=e.real*e.real+e.imag*e.imag;if(x(n))throw new Error("Cannot divide by zero or near-zero complex number");return l({real:(r.real*e.real+r.imag*e.imag)/n,imag:(r.imag*e.real-r.real*e.imag)/n})}function M(r){c(r);let e=Math.sqrt(r.real*r.real+r.imag*r.imag);return x(e)?0:e}function vr(r){return c(r),l({real:r.real,imag:-r.imag})}function z(r){return c(r),x(r.real)&&x(r.imag)?0:Math.atan2(r.imag,r.real)}function _(r){return c(r),{magnitude:M(r),angle:z(r)}}function w(r,e){if(d(r,"magnitude"),d(e,"angle"),r<-1e-10)throw new Error("Magnitude must be non-negative");let n=e%S;n>Math.PI&&(n-=S),n<=-Math.PI&&(n+=S);let t=Math.max(0,r);return l({real:t*Math.cos(n),imag:t*Math.sin(n)})}function re(r){if(c(r),x(r.real)&&x(r.imag)){let i=N(0,0);return[i,i]}let e=M(r),n=z(r),t=Math.sqrt(e),o=n/2,u=o+Math.PI;return[w(t,o),w(t,u)]}function ee(r,e){if(c(r),d(e,"exponent"),x(e))return N(1,0);if(P(e,1))return N(r.real,r.imag);if(P(e,2))return q(r,r);if(x(r.real)&&x(r.imag)){if(e>0)return N(0,0);if(e<0)throw new Error("Cannot raise zero to a negative power")}let n=_(r),t=Math.pow(n.magnitude,e),o=t<-1e-10?Math.abs(t):Math.max(0,t),u=n.angle*e;return w(o,u)}function ne(r){c(r);let e=M(r);if(x(e))throw new Error("Cannot take logarithm of zero or near-zero complex number");let n=z(r);return l({real:Math.log(e),imag:n})}function te(r){return r*p.RADIANS_PER_DEGREE}function oe(r){return r*p.DEGREES_PER_RADIAN}function ue(r){return r*(p.GRADIANS_IN_CIRCLE/p.DEGREES_IN_CIRCLE)}function ie(r){return r*(p.DEGREES_IN_CIRCLE/p.GRADIANS_IN_CIRCLE)}function me(r){let e=p.RADIANS_IN_CIRCLE,n=r%e;return n<0&&(n+=e),n}function ce(r){let e=r%p.DEGREES_IN_CIRCLE;return e<0&&(e+=p.DEGREES_IN_CIRCLE),e}function se(r){return Math.sin(r)}function ae(r){return Math.cos(r)}function xe(r){let e=Math.cos(r);if(Math.abs(e)<1e-10)throw new Error("Tangent undefined for this angle (cosine is zero)");return Math.tan(r)}function pe(r){if(r<-1||r>1)throw new Error("Arcsine is only defined for values between -1 and 1");return Math.asin(r)}function fe(r){if(r<-1||r>1)throw new Error("Arccosine is only defined for values between -1 and 1");return Math.acos(r)}function be(r){return Math.atan(r)}function le(r,e){return Math.atan2(r,e)}function de(r){return Math.sinh(r)}function De(r){return Math.cosh(r)}function ye(r){return Math.tanh(r)}function ge(r){return Math.asinh(r)}function he(r){if(r<1)throw new Error("Inverse hyperbolic cosine is only defined for x >= 1");return Math.acosh(r)}function Ve(r){if(Math.abs(r)>=1)throw new Error("Inverse hyperbolic tangent is only defined for |x| < 1");return Math.atanh(r)}function Ne(r){let e=Math.cos(r);if(Math.abs(e)<1e-10)throw new Error("Secant undefined for this angle (cosine is zero)");return 1/e}function we(r){let e=Math.sin(r);if(Math.abs(e)<1e-10)throw new Error("Cosecant undefined for this angle (sine is zero)");return 1/e}function Me(r){let e=Math.tan(r);if(Math.abs(e)<1e-10)throw new Error("Cotangent undefined for this angle (tangent is zero)");return 1/e}var an=(r,e={})=>{let{locale:n="en-US",minimumFractionDigits:t=0,maximumFractionDigits:o=20}=e;return new Intl.NumberFormat(n,{minimumFractionDigits:t,maximumFractionDigits:o}).format(r)},xn=(r,e="USD",n="en-US")=>new Intl.NumberFormat(n,{style:"currency",currency:e}).format(r),pn=(r,e=2)=>{if(r===0)return"0 Bytes";let n=1024,t=e<0?0:e,o=["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"],u=Math.floor(Math.log(r)/Math.log(n));return`${parseFloat((r/Math.pow(n,u)).toFixed(t))} ${o[u]}`},fn=(r,e=2,n="en-US")=>{let t=r*100;return new Intl.NumberFormat(n,{style:"percent",minimumFractionDigits:0,maximumFractionDigits:Math.max(0,e)}).format(t/100)};var ln=(r,e)=>{let[n,t]=r<=e?[r,e]:[e,r];if(typeof crypto<"u"&&crypto.getRandomValues){let o=t-n+1,u=4294967295,i=new Uint32Array(1),s;do crypto.getRandomValues(i),s=i[0]/(u+1);while(s>=1-1%o/1);return Math.floor(s*o)+n}return Math.floor(Math.random()*(t-n+1))+n},dn=(r,e)=>{let[n,t]=r<=e?[r,e]:[e,r];return Math.random()*(t-n)+n},Dn=(r=.5)=>Math.random()<r;var gn=(r,e)=>{if(typeof r=="number")return Number.isFinite(r)?r:e!==void 0?e:NaN;if(r==null)return e!==void 0?e:NaN;if(typeof r=="boolean")return r?1:0;if(typeof r=="string"){let t=r.trim();if(t==="")return e!==void 0?e:NaN;let o=Number(t);return Number.isFinite(o)?o:e!==void 0?e:NaN}let n=Number(r);return Number.isFinite(n)?n:e!==void 0?e:NaN},hn=(r,e=10,n)=>{let t=r.trim();if(t==="")return n!==void 0?n:NaN;if(e===16){let u=/^(-?)0?x?([0-9a-fA-F]+)$/,i=t.match(u);if(i){let s=i[1]?-1:1,D=i[2],C=parseInt(D,16);return isNaN(C)?n!==void 0?n:NaN:s*C}}let o=parseInt(t,e);if(isNaN(o))return n!==void 0?n:NaN;if(e!==16&&e!==10){let u="0123456789abcdefghijklmnopqrstuvwxyz".slice(0,e);if(!new RegExp(`^[-+]?[${u}]+$`,"i").test(t))return n!==void 0?n:NaN}return o};export{p as Constants,Q as DEGREES_IN_CIRCLE,k as DEGREES_PER_RADIAN,$ as E,Y as GRADIANS_IN_CIRCLE,O as LN10,G as LN2,Z as LOG10E,U as LOG2E,j as PHI,g as PI,X as RADIANS_IN_CIRCLE,H as RADIANS_PER_DEGREE,B as SQRT1_2,L as SQRT2,tr as abs,fe as acos,he as acosh,W as add,Kr as addComplex,Er as addFractions,Or as addVectors2D,Qr as angleBetween2D,Ye as approxEqual,z as argumentComplex,pe as asin,ge as asinh,be as atan,le as atan2,Ve as atanh,br as average,wr as cbrt,ur as ceil,E as clamp,vr as conjugateComplex,ae as cos,De as cosh,Me as cot,Gr as crossProduct3D,we as csc,ue as degToGrad,te as degToRad,Xr as distance2D,Yr as distance3D,v as divide,Jr as divideComplex,T as dotProduct2D,Br as dotProduct3D,Cr as evaluatePolynomial,Nr as exp,sr as factorial,ir as floor,pn as formatBytes,xn as formatCurrency,an as formatNumber,fn as formatPercent,w as fromPolarComplex,h as gcd,ie as gradToDeg,I as invLerp,qe as isComplexNumber,Ze as isEven,Ae as isFiniteNumber,Re as isFloat,_e as isFraction,Ue as isInRange,Ee as isInt,Ie as isInteger,$e as isMatrix,Le as isNegative,Be as isNonNegative,Ge as isNonPositive,Fe as isNumber,Ce as isNumeric,K as isNumericString,Qe as isOdd,je as isPositive,ke as isPowerOfTwo,Xe as isPrime,Se as isSafeInteger,Te as isVector2D,Pe as isVector3D,Oe as isZero,ar as lcm,R as lerp,kr as lerp2D,yr as ln,ne as lnComplex,Vr as log,gr as log10,hr as log2,V as magnitude2D,A as magnitude3D,$r as magnitude4D,M as magnitudeComplex,xr as mapRange,fr as max,dr as median,pr as min,rr as modulo,q as multiplyComplex,Fr as multiplyFractions,Pr as normalize,jr as normalize2D,Lr as normalize3D,ce as normalizeDegrees,me as normalizeRadians,Mr as nthRoot,hn as parseIntSafe,Sr as percentage,er as power,ee as powerComplex,Dr as product,oe as radToDeg,Dn as randomBool,dn as randomFloat,ln as randomInt,Ar as range,Hr as rotate2D,y as round,Zr as scaleVector2D,Ne as sec,cr as sign,F as simplifyFraction,se as sin,de as sinh,zr as solveQuadratic,nr as sqrt,re as sqrtComplex,J as subtract,Wr as subtractComplex,Ur as subtractVectors2D,lr as sum,xe as tan,ye as tanh,Rr as toBase,gn as toNumber,Ir as toOrdinal,_ as toPolarComplex,mr as trunc,Tr as truncateDecimals,qr as wrap};
@@ -0,0 +1 @@
1
+ "use strict";var N=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var T=(e,n)=>{for(var t in n)N(e,t,{get:n[t],enumerable:!0})},h=(e,n,t,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of f(n))!g.call(e,r)&&r!==t&&N(e,r,{get:()=>n[r],enumerable:!(i=p(n,r))||i.enumerable});return e};var x=e=>h(N({},"__esModule",{value:!0}),e);var w={};T(w,{parseIntSafe:()=>F,toNumber:()=>y});module.exports=x(w);var y=(e,n)=>{if(typeof e=="number")return Number.isFinite(e)?e:n!==void 0?n:NaN;if(e==null)return n!==void 0?n:NaN;if(typeof e=="boolean")return e?1:0;if(typeof e=="string"){let i=e.trim();if(i==="")return n!==void 0?n:NaN;let r=Number(i);return Number.isFinite(r)?r:n!==void 0?n:NaN}let t=Number(e);return Number.isFinite(t)?t:n!==void 0?n:NaN},F=(e,n=10,t)=>{let i=e.trim();if(i==="")return t!==void 0?t:NaN;if(n===16){let u=/^(-?)0?x?([0-9a-fA-F]+)$/,s=i.match(u);if(s){let m=s[1]?-1:1,d=s[2],o=parseInt(d,16);return isNaN(o)?t!==void 0?t:NaN:m*o}}let r=parseInt(i,n);if(isNaN(r))return t!==void 0?t:NaN;if(n!==16&&n!==10){let u="0123456789abcdefghijklmnopqrstuvwxyz".slice(0,n);if(!new RegExp(`^[-+]?[${u}]+$`,"i").test(i))return t!==void 0?t:NaN}return r};
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Safely converts any value to a number with fallback
3
+ * @param value - The value to convert
4
+ * @param fallback - Fallback value if conversion fails (default: NaN)
5
+ * @returns The converted number or fallback
6
+ * @example
7
+ * toNumber("42") // 42
8
+ * toNumber("abc", 0) // 0
9
+ * toNumber(null, 100) // 100
10
+ */
11
+ export declare const toNumber: <T = number>(value: unknown, fallback?: T) => number | T;
12
+ /**
13
+ * Parses a string to integer with validation
14
+ * Optimized: Regex check before parsing
15
+ * @param value - String to parse
16
+ * @param radix - Numeric base (default: 10)
17
+ * @returns Parsed integer or fallback
18
+ */
19
+ export declare const parseIntSafe: <T = number>(value: string, radix?: number, fallback?: T) => number | T;
20
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/lib/maths/parser.ts"],"names":[],"mappings":"AACA;;;;;;;;;EASE;AACF,eAAO,MAAM,QAAQ,GAAI,CAAC,GAAG,MAAM,EACjC,OAAO,OAAO,EACd,WAAW,CAAC,KACX,MAAM,GAAG,CA+BX,CAAC;AAGF;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,GAAG,MAAM,EACrC,OAAO,MAAM,EACb,QAAO,MAAW,EAClB,WAAW,CAAC,KACX,MAAM,GAAG,CAqCX,CAAC"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Safely converts any value to a number with fallback
3
+ * @param value - The value to convert
4
+ * @param fallback - Fallback value if conversion fails (default: NaN)
5
+ * @returns The converted number or fallback
6
+ * @example
7
+ * toNumber("42") // 42
8
+ * toNumber("abc", 0) // 0
9
+ * toNumber(null, 100) // 100
10
+ */
11
+ export const toNumber = (value, fallback) => {
12
+ // Fast path: already a number
13
+ if (typeof value === 'number') {
14
+ return Number.isFinite(value) ? value : (fallback !== undefined ? fallback : NaN);
15
+ }
16
+ // Fast path: null/undefined
17
+ if (value == null) {
18
+ return fallback !== undefined ? fallback : NaN;
19
+ }
20
+ // Fast path: boolean
21
+ if (typeof value === 'boolean') {
22
+ return value ? 1 : 0;
23
+ }
24
+ // Fast path: string
25
+ if (typeof value === 'string') {
26
+ const trimmed = value.trim();
27
+ if (trimmed === '') {
28
+ return fallback !== undefined ? fallback : NaN;
29
+ }
30
+ // Use Number() for conversion (faster than parseFloat for our use case)
31
+ const num = Number(trimmed);
32
+ return Number.isFinite(num) ? num : (fallback !== undefined ? fallback : NaN);
33
+ }
34
+ // For other types, attempt conversion
35
+ const num = Number(value);
36
+ return Number.isFinite(num) ? num : (fallback !== undefined ? fallback : NaN);
37
+ };
38
+ /**
39
+ * Parses a string to integer with validation
40
+ * Optimized: Regex check before parsing
41
+ * @param value - String to parse
42
+ * @param radix - Numeric base (default: 10)
43
+ * @returns Parsed integer or fallback
44
+ */
45
+ export const parseIntSafe = (value, radix = 10, fallback) => {
46
+ const trimmed = value.trim();
47
+ if (trimmed === '') {
48
+ return fallback !== undefined ? fallback : NaN;
49
+ }
50
+ // Allow hex digits for radix 16
51
+ if (radix === 16) {
52
+ // Allow hex format: optional 0x prefix, then hex digits
53
+ const hexRegex = /^(-?)0?x?([0-9a-fA-F]+)$/;
54
+ const match = trimmed.match(hexRegex);
55
+ if (match) {
56
+ const sign = match[1] ? -1 : 1;
57
+ const hexStr = match[2];
58
+ const parsed = parseInt(hexStr, 16);
59
+ return !isNaN(parsed) ? sign * parsed : (fallback !== undefined ? fallback : NaN);
60
+ }
61
+ }
62
+ // For other radices, use standard parseInt with validation
63
+ const parsed = parseInt(trimmed, radix);
64
+ if (isNaN(parsed)) {
65
+ return fallback !== undefined ? fallback : NaN;
66
+ }
67
+ // Validate that the entire string was consumed for the given radix
68
+ // (except for hex which we already handled)
69
+ if (radix !== 16 && radix !== 10) {
70
+ // For other radices, ensure the string only contains valid digits
71
+ const validDigits = '0123456789abcdefghijklmnopqrstuvwxyz'.slice(0, radix);
72
+ const pattern = new RegExp(`^[-+]?[${validDigits}]+$`, 'i');
73
+ if (!pattern.test(trimmed)) {
74
+ return fallback !== undefined ? fallback : NaN;
75
+ }
76
+ }
77
+ return parsed;
78
+ };
@@ -0,0 +1 @@
1
+ var d=(e,n)=>{if(typeof e=="number")return Number.isFinite(e)?e:n!==void 0?n:NaN;if(e==null)return n!==void 0?n:NaN;if(typeof e=="boolean")return e?1:0;if(typeof e=="string"){let r=e.trim();if(r==="")return n!==void 0?n:NaN;let i=Number(r);return Number.isFinite(i)?i:n!==void 0?n:NaN}let t=Number(e);return Number.isFinite(t)?t:n!==void 0?n:NaN},p=(e,n=10,t)=>{let r=e.trim();if(r==="")return t!==void 0?t:NaN;if(n===16){let u=/^(-?)0?x?([0-9a-fA-F]+)$/,s=r.match(u);if(s){let o=s[1]?-1:1,m=s[2],N=parseInt(m,16);return isNaN(N)?t!==void 0?t:NaN:o*N}}let i=parseInt(r,n);if(isNaN(i))return t!==void 0?t:NaN;if(n!==16&&n!==10){let u="0123456789abcdefghijklmnopqrstuvwxyz".slice(0,n);if(!new RegExp(`^[-+]?[${u}]+$`,"i").test(r))return t!==void 0?t:NaN}return i};export{p as parseIntSafe,d as toNumber};
@@ -0,0 +1 @@
1
+ "use strict";var u=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var s=(r,e)=>{for(var n in e)u(r,n,{get:e[n],enumerable:!0})},F=(r,e,n,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of b(e))!m.call(r,o)&&o!==n&&u(r,o,{get:()=>e[o],enumerable:!(t=c(e,o))||t.enumerable});return r};var M=r=>F(u({},"__esModule",{value:!0}),r);var h={};s(h,{randomBool:()=>f,randomFloat:()=>y,randomInt:()=>p});module.exports=M(h);var p=(r,e)=>{let[n,t]=r<=e?[r,e]:[e,r];if(typeof crypto<"u"&&crypto.getRandomValues){let o=t-n+1,d=4294967295,l=new Uint32Array(1),a;do crypto.getRandomValues(l),a=l[0]/(d+1);while(a>=1-1%o/1);return Math.floor(a*o)+n}return Math.floor(Math.random()*(t-n+1))+n},y=(r,e)=>{let[n,t]=r<=e?[r,e]:[e,r];return Math.random()*(t-n)+n},f=(r=.5)=>Math.random()<r;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Generates a random integer between min and max (inclusive)
3
+ * @function randomInt
4
+ * @param min - Minimum value (inclusive)
5
+ * @param max - Maximum value (inclusive)
6
+ * @returns Random integer
7
+ * Optimized: Single Math.random call with proper scaling
8
+ */
9
+ export declare const randomInt: (min: number, max: number) => number;
10
+ /**
11
+ * Generates a random float between min and max (exclusive of max)
12
+ * @function randomFloat
13
+ * @param min - Minimum value (inclusive)
14
+ * @param max - Maximum value (exclusive)
15
+ * @returns Random float
16
+ * Optimized: Single Math.random call
17
+ */
18
+ export declare const randomFloat: (min: number, max: number) => number;
19
+ /**
20
+ * Generates a random boolean with optional probability
21
+ * @function randomBool
22
+ * @param probability - Probability of returning true (default: 0.5)
23
+ * @returns Random boolean
24
+ * Optimized: Single comparison
25
+ */
26
+ export declare const randomBool: (probability?: number) => boolean;
27
+ //# sourceMappingURL=random.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../../../src/lib/maths/random.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAsBpD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAGtD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,cAAa,MAAY,KAAG,OAEtD,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Generates a random integer between min and max (inclusive)
3
+ * @function randomInt
4
+ * @param min - Minimum value (inclusive)
5
+ * @param max - Maximum value (inclusive)
6
+ * @returns Random integer
7
+ * Optimized: Single Math.random call with proper scaling
8
+ */
9
+ export const randomInt = (min, max) => {
10
+ // Ensure min <= max
11
+ const [realMin, realMax] = min <= max ? [min, max] : [max, min];
12
+ // Use crypto.getRandomValues if available for better randomness
13
+ if (typeof crypto !== 'undefined' && crypto.getRandomValues) {
14
+ const range = realMax - realMin + 1;
15
+ const maxSafe = 0xFFFFFFFF; // Max value for Uint32
16
+ const byteArray = new Uint32Array(1);
17
+ // Generate until we get a value in the safe range
18
+ let randomValue;
19
+ do {
20
+ crypto.getRandomValues(byteArray);
21
+ randomValue = byteArray[0] / (maxSafe + 1);
22
+ } while (randomValue >= 1 - (1 % range) / 1);
23
+ return Math.floor(randomValue * range) + realMin;
24
+ }
25
+ // Fallback to Math.random
26
+ return Math.floor(Math.random() * (realMax - realMin + 1)) + realMin;
27
+ };
28
+ /**
29
+ * Generates a random float between min and max (exclusive of max)
30
+ * @function randomFloat
31
+ * @param min - Minimum value (inclusive)
32
+ * @param max - Maximum value (exclusive)
33
+ * @returns Random float
34
+ * Optimized: Single Math.random call
35
+ */
36
+ export const randomFloat = (min, max) => {
37
+ const [realMin, realMax] = min <= max ? [min, max] : [max, min];
38
+ return Math.random() * (realMax - realMin) + realMin;
39
+ };
40
+ /**
41
+ * Generates a random boolean with optional probability
42
+ * @function randomBool
43
+ * @param probability - Probability of returning true (default: 0.5)
44
+ * @returns Random boolean
45
+ * Optimized: Single comparison
46
+ */
47
+ export const randomBool = (probability = 0.5) => {
48
+ return Math.random() < probability;
49
+ };
@@ -0,0 +1 @@
1
+ var d=(r,e)=>{let[n,o]=r<=e?[r,e]:[e,r];if(typeof crypto<"u"&&crypto.getRandomValues){let a=o-n+1,l=4294967295,u=new Uint32Array(1),t;do crypto.getRandomValues(u),t=u[0]/(l+1);while(t>=1-1%a/1);return Math.floor(t*a)+n}return Math.floor(Math.random()*(o-n+1))+n},c=(r,e)=>{let[n,o]=r<=e?[r,e]:[e,r];return Math.random()*(o-n)+n},b=(r=.5)=>Math.random()<r;export{b as randomBool,c as randomFloat,d as randomInt};
@@ -0,0 +1 @@
1
+ "use strict";var o=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var y=(r,e,a,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of u(e))!l.call(r,n)&&n!==a&&o(r,n,{get:()=>e[n],enumerable:!(t=d(e,n))||t.enumerable});return r};var m=r=>y(o({},"__esModule",{value:!0}),r);var b={};module.exports=m(b);