umt 2.3.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/README.md +277 -16
  2. package/module/Array/chunk.js +5 -3
  3. package/module/Array/chunk.js.map +1 -1
  4. package/module/Array/dualPivotQuickSort.d.ts +1 -2
  5. package/module/Array/dualPivotQuickSort.js +5 -26
  6. package/module/Array/dualPivotQuickSort.js.map +1 -1
  7. package/module/Array/groupBy.js +8 -7
  8. package/module/Array/groupBy.js.map +1 -1
  9. package/module/Array/index.d.ts +1 -0
  10. package/module/Array/index.js +1 -0
  11. package/module/Array/index.js.map +1 -1
  12. package/module/Array/quickSort.js +7 -25
  13. package/module/Array/quickSort.js.map +1 -1
  14. package/module/Array/sortingHelpers/applyInsertionSortIfNeeded.d.ts +13 -0
  15. package/module/Array/sortingHelpers/applyInsertionSortIfNeeded.js +20 -0
  16. package/module/Array/sortingHelpers/applyInsertionSortIfNeeded.js.map +1 -0
  17. package/module/Array/sortingHelpers/rangeValidator.d.ts +17 -0
  18. package/module/Array/sortingHelpers/rangeValidator.js +26 -0
  19. package/module/Array/sortingHelpers/rangeValidator.js.map +1 -0
  20. package/module/Array/timSort.js +2 -20
  21. package/module/Array/timSort.js.map +1 -1
  22. package/module/Array/ultraNumberSort.d.ts +7 -0
  23. package/module/Array/ultraNumberSort.js +373 -0
  24. package/module/Array/ultraNumberSort.js.map +1 -0
  25. package/module/Tool/pipe.d.ts +1 -1
  26. package/module/Tool/pipe.js.map +1 -1
  27. package/module/Validate/object/core.d.ts +2 -6
  28. package/module/Validate/object/core.js.map +1 -1
  29. package/module/Validate/type.d.ts +1 -0
  30. package/module/es5/Array/chunk.js +5 -3
  31. package/module/es5/Array/dualPivotQuickSort.d.ts +1 -2
  32. package/module/es5/Array/dualPivotQuickSort.js +8 -28
  33. package/module/es5/Array/groupBy.js +8 -7
  34. package/module/es5/Array/index.d.ts +1 -0
  35. package/module/es5/Array/index.js +11 -0
  36. package/module/es5/Array/quickSort.js +10 -25
  37. package/module/es5/Array/sortingHelpers/applyInsertionSortIfNeeded.d.ts +13 -0
  38. package/module/es5/Array/sortingHelpers/applyInsertionSortIfNeeded.js +25 -0
  39. package/module/es5/Array/sortingHelpers/rangeValidator.d.ts +17 -0
  40. package/module/es5/Array/sortingHelpers/rangeValidator.js +35 -0
  41. package/module/es5/Array/timSort.js +2 -20
  42. package/module/es5/Array/ultraNumberSort.d.ts +7 -0
  43. package/module/es5/Array/ultraNumberSort.js +475 -0
  44. package/module/es5/Tool/pipe.d.ts +1 -1
  45. package/module/es5/Validate/object/core.d.ts +2 -6
  46. package/module/es5/Validate/type.d.ts +1 -0
  47. package/module/es5/tsconfig.tsbuildinfo +1 -1
  48. package/package.json +24 -20
  49. package/module/es5/tests/integration/Array/drop-and-first.test.d.ts +0 -1
  50. package/module/es5/tests/integration/Array/drop-and-first.test.js +0 -34
  51. package/module/es5/tests/integration/Tool/parseJson-and-Validate.test.d.ts +0 -1
  52. package/module/es5/tests/integration/Tool/parseJson-and-Validate.test.js +0 -80
  53. package/module/es5/tests/unit/Advance/rangeAdvance.test.d.ts +0 -1
  54. package/module/es5/tests/unit/Advance/rangeAdvance.test.js +0 -26
  55. package/module/es5/tests/unit/Array/arraysJoin.test.d.ts +0 -1
  56. package/module/es5/tests/unit/Array/arraysJoin.test.js +0 -19
  57. package/module/es5/tests/unit/Array/binarySearch.test.d.ts +0 -1
  58. package/module/es5/tests/unit/Array/binarySearch.test.js +0 -32
  59. package/module/es5/tests/unit/Array/checkFlagAlignment.test.d.ts +0 -1
  60. package/module/es5/tests/unit/Array/checkFlagAlignment.test.js +0 -206
  61. package/module/es5/tests/unit/Array/chunk.test.d.ts +0 -1
  62. package/module/es5/tests/unit/Array/chunk.test.js +0 -51
  63. package/module/es5/tests/unit/Array/compact.test.d.ts +0 -1
  64. package/module/es5/tests/unit/Array/compact.test.js +0 -53
  65. package/module/es5/tests/unit/Array/compareFunctionDefault.test.d.ts +0 -1
  66. package/module/es5/tests/unit/Array/compareFunctionDefault.test.js +0 -29
  67. package/module/es5/tests/unit/Array/drop.test.d.ts +0 -1
  68. package/module/es5/tests/unit/Array/drop.test.js +0 -84
  69. package/module/es5/tests/unit/Array/dualPivotQuickSort.test.d.ts +0 -1
  70. package/module/es5/tests/unit/Array/dualPivotQuickSort.test.js +0 -87
  71. package/module/es5/tests/unit/Array/first.test.d.ts +0 -1
  72. package/module/es5/tests/unit/Array/first.test.js +0 -28
  73. package/module/es5/tests/unit/Array/generateNumberArray.test.d.ts +0 -1
  74. package/module/es5/tests/unit/Array/generateNumberArray.test.js +0 -34
  75. package/module/es5/tests/unit/Array/getArraysCommon.test.d.ts +0 -1
  76. package/module/es5/tests/unit/Array/getArraysCommon.test.js +0 -40
  77. package/module/es5/tests/unit/Array/getArraysDiff.test.d.ts +0 -1
  78. package/module/es5/tests/unit/Array/getArraysDiff.test.js +0 -99
  79. package/module/es5/tests/unit/Array/groupBy.test.d.ts +0 -1
  80. package/module/es5/tests/unit/Array/groupBy.test.js +0 -87
  81. package/module/es5/tests/unit/Array/insertionSort.test.d.ts +0 -1
  82. package/module/es5/tests/unit/Array/insertionSort.test.js +0 -37
  83. package/module/es5/tests/unit/Array/mergeSort.test.d.ts +0 -1
  84. package/module/es5/tests/unit/Array/mergeSort.test.js +0 -49
  85. package/module/es5/tests/unit/Array/pop.test.d.ts +0 -1
  86. package/module/es5/tests/unit/Array/pop.test.js +0 -50
  87. package/module/es5/tests/unit/Array/quickSort.test.d.ts +0 -1
  88. package/module/es5/tests/unit/Array/quickSort.test.js +0 -118
  89. package/module/es5/tests/unit/Array/randomSelect.test.d.ts +0 -1
  90. package/module/es5/tests/unit/Array/randomSelect.test.js +0 -51
  91. package/module/es5/tests/unit/Array/range.test.d.ts +0 -1
  92. package/module/es5/tests/unit/Array/range.test.js +0 -42
  93. package/module/es5/tests/unit/Array/shuffle.test.d.ts +0 -1
  94. package/module/es5/tests/unit/Array/shuffle.test.js +0 -84
  95. package/module/es5/tests/unit/Array/shuffle2DArray.test.d.ts +0 -1
  96. package/module/es5/tests/unit/Array/shuffle2DArray.test.js +0 -90
  97. package/module/es5/tests/unit/Array/sum.test.d.ts +0 -1
  98. package/module/es5/tests/unit/Array/sum.test.js +0 -44
  99. package/module/es5/tests/unit/Array/timSort.test.d.ts +0 -1
  100. package/module/es5/tests/unit/Array/timSort.test.js +0 -128
  101. package/module/es5/tests/unit/Array/zip.test.d.ts +0 -1
  102. package/module/es5/tests/unit/Array/zip.test.js +0 -69
  103. package/module/es5/tests/unit/Array/zipLongest.test.d.ts +0 -1
  104. package/module/es5/tests/unit/Array/zipLongest.test.js +0 -74
  105. package/module/es5/tests/unit/Color/cmykToRgba.test.d.ts +0 -1
  106. package/module/es5/tests/unit/Color/cmykToRgba.test.js +0 -58
  107. package/module/es5/tests/unit/Color/hexaToRgba.test.d.ts +0 -1
  108. package/module/es5/tests/unit/Color/hexaToRgba.test.js +0 -115
  109. package/module/es5/tests/unit/Color/hslaToRgba.test.d.ts +0 -1
  110. package/module/es5/tests/unit/Color/hslaToRgba.test.js +0 -141
  111. package/module/es5/tests/unit/Color/rgbaToCmyk.test.d.ts +0 -1
  112. package/module/es5/tests/unit/Color/rgbaToCmyk.test.js +0 -139
  113. package/module/es5/tests/unit/Color/rgbaToHexA.test.d.ts +0 -1
  114. package/module/es5/tests/unit/Color/rgbaToHexA.test.js +0 -114
  115. package/module/es5/tests/unit/Color/rgbaToHsla.test.d.ts +0 -1
  116. package/module/es5/tests/unit/Color/rgbaToHsla.test.js +0 -190
  117. package/module/es5/tests/unit/Consts/clock.test.d.ts +0 -1
  118. package/module/es5/tests/unit/Consts/clock.test.js +0 -71
  119. package/module/es5/tests/unit/Consts/httpClientErrorStatus.test.d.ts +0 -1
  120. package/module/es5/tests/unit/Consts/httpClientErrorStatus.test.js +0 -33
  121. package/module/es5/tests/unit/Consts/httpInformationalStatus.test.d.ts +0 -1
  122. package/module/es5/tests/unit/Consts/httpInformationalStatus.test.js +0 -13
  123. package/module/es5/tests/unit/Consts/httpRedirectionStatus.test.d.ts +0 -1
  124. package/module/es5/tests/unit/Consts/httpRedirectionStatus.test.js +0 -16
  125. package/module/es5/tests/unit/Consts/httpServerErrorStatus.test.d.ts +0 -1
  126. package/module/es5/tests/unit/Consts/httpServerErrorStatus.test.js +0 -15
  127. package/module/es5/tests/unit/Consts/httpStatus.test.d.ts +0 -1
  128. package/module/es5/tests/unit/Consts/httpStatus.test.js +0 -82
  129. package/module/es5/tests/unit/Consts/httpSuccessStatus.test.d.ts +0 -1
  130. package/module/es5/tests/unit/Consts/httpSuccessStatus.test.js +0 -16
  131. package/module/es5/tests/unit/Date/birthday.test.d.ts +0 -1
  132. package/module/es5/tests/unit/Date/birthday.test.js +0 -31
  133. package/module/es5/tests/unit/Date/dateRange.test.d.ts +0 -1
  134. package/module/es5/tests/unit/Date/dateRange.test.js +0 -40
  135. package/module/es5/tests/unit/Date/dayOfWeek.test.d.ts +0 -1
  136. package/module/es5/tests/unit/Date/dayOfWeek.test.js +0 -39
  137. package/module/es5/tests/unit/Date/deleteSpace.test.d.ts +0 -1
  138. package/module/es5/tests/unit/Date/deleteSpace.test.js +0 -35
  139. package/module/es5/tests/unit/Date/format.test.d.ts +0 -1
  140. package/module/es5/tests/unit/Date/format.test.js +0 -50
  141. package/module/es5/tests/unit/Date/getDay.test.d.ts +0 -1
  142. package/module/es5/tests/unit/Date/getDay.test.js +0 -40
  143. package/module/es5/tests/unit/Date/getTimezoneOffsetString.test.d.ts +0 -1
  144. package/module/es5/tests/unit/Date/getTimezoneOffsetString.test.js +0 -26
  145. package/module/es5/tests/unit/Date/isLeapYear.test.d.ts +0 -1
  146. package/module/es5/tests/unit/Date/isLeapYear.test.js +0 -30
  147. package/module/es5/tests/unit/Date/new.test.d.ts +0 -1
  148. package/module/es5/tests/unit/Date/new.test.js +0 -39
  149. package/module/es5/tests/unit/Date/now.test.d.ts +0 -1
  150. package/module/es5/tests/unit/Date/now.test.js +0 -42
  151. package/module/es5/tests/unit/Error/safeExecute.test.d.ts +0 -1
  152. package/module/es5/tests/unit/Error/safeExecute.test.js +0 -75
  153. package/module/es5/tests/unit/Function/curry.test.d.ts +0 -1
  154. package/module/es5/tests/unit/Function/curry.test.js +0 -138
  155. package/module/es5/tests/unit/IP/cidrToLong.test.d.ts +0 -1
  156. package/module/es5/tests/unit/IP/cidrToLong.test.js +0 -32
  157. package/module/es5/tests/unit/IP/cidrToSubnetMask.test.d.ts +0 -1
  158. package/module/es5/tests/unit/IP/cidrToSubnetMask.test.js +0 -36
  159. package/module/es5/tests/unit/IP/getIpClass.test.d.ts +0 -1
  160. package/module/es5/tests/unit/IP/getIpClass.test.js +0 -36
  161. package/module/es5/tests/unit/IP/getNetworkAddress.test.d.ts +0 -1
  162. package/module/es5/tests/unit/IP/getNetworkAddress.test.js +0 -40
  163. package/module/es5/tests/unit/IP/ipToBinaryString.test.d.ts +0 -1
  164. package/module/es5/tests/unit/IP/ipToBinaryString.test.js +0 -46
  165. package/module/es5/tests/unit/IP/ipToLong.test.d.ts +0 -1
  166. package/module/es5/tests/unit/IP/ipToLong.test.js +0 -34
  167. package/module/es5/tests/unit/IP/isInRange.test.d.ts +0 -1
  168. package/module/es5/tests/unit/IP/isInRange.test.js +0 -82
  169. package/module/es5/tests/unit/IP/isPrivateIp.test.d.ts +0 -1
  170. package/module/es5/tests/unit/IP/isPrivateIp.test.js +0 -26
  171. package/module/es5/tests/unit/IP/longToIp.test.d.ts +0 -1
  172. package/module/es5/tests/unit/IP/longToIp.test.js +0 -39
  173. package/module/es5/tests/unit/IP/subnetMaskToCidr.test.d.ts +0 -1
  174. package/module/es5/tests/unit/IP/subnetMaskToCidr.test.js +0 -41
  175. package/module/es5/tests/unit/Math/addition.test.d.ts +0 -1
  176. package/module/es5/tests/unit/Math/addition.test.js +0 -79
  177. package/module/es5/tests/unit/Math/average.test.d.ts +0 -1
  178. package/module/es5/tests/unit/Math/average.test.js +0 -48
  179. package/module/es5/tests/unit/Math/bitwise.test.d.ts +0 -1
  180. package/module/es5/tests/unit/Math/bitwise.test.js +0 -62
  181. package/module/es5/tests/unit/Math/calculator/calculator.test.d.ts +0 -1
  182. package/module/es5/tests/unit/Math/calculator/calculator.test.js +0 -76
  183. package/module/es5/tests/unit/Math/calculator/calculatorInitialization.test.d.ts +0 -1
  184. package/module/es5/tests/unit/Math/calculator/calculatorInitialization.test.js +0 -21
  185. package/module/es5/tests/unit/Math/calculator/convertCurrency.test.d.ts +0 -1
  186. package/module/es5/tests/unit/Math/calculator/convertCurrency.test.js +0 -40
  187. package/module/es5/tests/unit/Math/calculator/literalExpression.test.d.ts +0 -1
  188. package/module/es5/tests/unit/Math/calculator/literalExpression.test.js +0 -51
  189. package/module/es5/tests/unit/Math/degToRad.test.d.ts +0 -1
  190. package/module/es5/tests/unit/Math/degToRad.test.js +0 -50
  191. package/module/es5/tests/unit/Math/deviationValue.test.d.ts +0 -1
  192. package/module/es5/tests/unit/Math/deviationValue.test.js +0 -30
  193. package/module/es5/tests/unit/Math/division.test.d.ts +0 -1
  194. package/module/es5/tests/unit/Math/division.test.js +0 -81
  195. package/module/es5/tests/unit/Math/factorial.test.d.ts +0 -1
  196. package/module/es5/tests/unit/Math/factorial.test.js +0 -26
  197. package/module/es5/tests/unit/Math/factorize.test.d.ts +0 -1
  198. package/module/es5/tests/unit/Math/factorize.test.js +0 -38
  199. package/module/es5/tests/unit/Math/flexibleNumberConversion.test.d.ts +0 -1
  200. package/module/es5/tests/unit/Math/flexibleNumberConversion.test.js +0 -195
  201. package/module/es5/tests/unit/Math/gcd.test.d.ts +0 -1
  202. package/module/es5/tests/unit/Math/gcd.test.js +0 -35
  203. package/module/es5/tests/unit/Math/getDecimalLength.test.d.ts +0 -1
  204. package/module/es5/tests/unit/Math/getDecimalLength.test.js +0 -44
  205. package/module/es5/tests/unit/Math/lcm.test.d.ts +0 -1
  206. package/module/es5/tests/unit/Math/lcm.test.js +0 -43
  207. package/module/es5/tests/unit/Math/linearCongruentialGenerator.test.d.ts +0 -1
  208. package/module/es5/tests/unit/Math/linearCongruentialGenerator.test.js +0 -25
  209. package/module/es5/tests/unit/Math/mathConverter.test.d.ts +0 -1
  210. package/module/es5/tests/unit/Math/mathConverter.test.js +0 -37
  211. package/module/es5/tests/unit/Math/mathSeparator.test.d.ts +0 -1
  212. package/module/es5/tests/unit/Math/mathSeparator.test.js +0 -59
  213. package/module/es5/tests/unit/Math/max.test.d.ts +0 -1
  214. package/module/es5/tests/unit/Math/max.test.js +0 -22
  215. package/module/es5/tests/unit/Math/median.test.d.ts +0 -1
  216. package/module/es5/tests/unit/Math/median.test.js +0 -17
  217. package/module/es5/tests/unit/Math/min.test.d.ts +0 -1
  218. package/module/es5/tests/unit/Math/min.test.js +0 -22
  219. package/module/es5/tests/unit/Math/multiples.test.d.ts +0 -1
  220. package/module/es5/tests/unit/Math/multiples.test.js +0 -30
  221. package/module/es5/tests/unit/Math/multiplication.test.d.ts +0 -1
  222. package/module/es5/tests/unit/Math/multiplication.test.js +0 -48
  223. package/module/es5/tests/unit/Math/nCr.test.d.ts +0 -1
  224. package/module/es5/tests/unit/Math/nCr.test.js +0 -34
  225. package/module/es5/tests/unit/Math/nHr.test.d.ts +0 -1
  226. package/module/es5/tests/unit/Math/nHr.test.js +0 -35
  227. package/module/es5/tests/unit/Math/nPr.test.d.ts +0 -1
  228. package/module/es5/tests/unit/Math/nPr.test.js +0 -38
  229. package/module/es5/tests/unit/Math/primeFactorization.test.d.ts +0 -1
  230. package/module/es5/tests/unit/Math/primeFactorization.test.js +0 -84
  231. package/module/es5/tests/unit/Math/quotient.test.d.ts +0 -1
  232. package/module/es5/tests/unit/Math/quotient.test.js +0 -36
  233. package/module/es5/tests/unit/Math/radToDeg.test.d.ts +0 -1
  234. package/module/es5/tests/unit/Math/radToDeg.test.js +0 -50
  235. package/module/es5/tests/unit/Math/random.test.d.ts +0 -1
  236. package/module/es5/tests/unit/Math/random.test.js +0 -61
  237. package/module/es5/tests/unit/Math/reduce.test.d.ts +0 -1
  238. package/module/es5/tests/unit/Math/reduce.test.js +0 -93
  239. package/module/es5/tests/unit/Math/repeatedTrial.test.d.ts +0 -1
  240. package/module/es5/tests/unit/Math/repeatedTrial.test.js +0 -39
  241. package/module/es5/tests/unit/Math/roundOf.test.d.ts +0 -1
  242. package/module/es5/tests/unit/Math/roundOf.test.js +0 -40
  243. package/module/es5/tests/unit/Math/solveEquation.test.d.ts +0 -1
  244. package/module/es5/tests/unit/Math/solveEquation.test.js +0 -24
  245. package/module/es5/tests/unit/Math/standardDeviation.test.d.ts +0 -1
  246. package/module/es5/tests/unit/Math/standardDeviation.test.js +0 -23
  247. package/module/es5/tests/unit/Math/subtract.test.d.ts +0 -1
  248. package/module/es5/tests/unit/Math/subtract.test.js +0 -46
  249. package/module/es5/tests/unit/Math/toBaseN.test.d.ts +0 -1
  250. package/module/es5/tests/unit/Math/toBaseN.test.js +0 -40
  251. package/module/es5/tests/unit/Math/toCelsius.test.d.ts +0 -1
  252. package/module/es5/tests/unit/Math/toCelsius.test.js +0 -18
  253. package/module/es5/tests/unit/Math/toKelvin.test.d.ts +0 -1
  254. package/module/es5/tests/unit/Math/toKelvin.test.js +0 -18
  255. package/module/es5/tests/unit/Math/uuidv7.test.d.ts +0 -1
  256. package/module/es5/tests/unit/Math/uuidv7.test.js +0 -33
  257. package/module/es5/tests/unit/Math/valueSwap.test.d.ts +0 -1
  258. package/module/es5/tests/unit/Math/valueSwap.test.js +0 -28
  259. package/module/es5/tests/unit/Math/xoshiro256.test.d.ts +0 -1
  260. package/module/es5/tests/unit/Math/xoshiro256.test.js +0 -33
  261. package/module/es5/tests/unit/Object/has.test.d.ts +0 -1
  262. package/module/es5/tests/unit/Object/has.test.js +0 -60
  263. package/module/es5/tests/unit/Object/keyBy.test.d.ts +0 -1
  264. package/module/es5/tests/unit/Object/keyBy.test.js +0 -120
  265. package/module/es5/tests/unit/Object/pick.test.d.ts +0 -1
  266. package/module/es5/tests/unit/Object/pick.test.js +0 -109
  267. package/module/es5/tests/unit/Object/pickDeep.test.d.ts +0 -1
  268. package/module/es5/tests/unit/Object/pickDeep.test.js +0 -222
  269. package/module/es5/tests/unit/Simple/Array/quickSortSimple.test.d.ts +0 -1
  270. package/module/es5/tests/unit/Simple/Array/quickSortSimple.test.js +0 -18
  271. package/module/es5/tests/unit/Simple/Date/dayOfWeekSimple.test.d.ts +0 -1
  272. package/module/es5/tests/unit/Simple/Date/dayOfWeekSimple.test.js +0 -58
  273. package/module/es5/tests/unit/Simple/Math/deviationValueSimple.test.d.ts +0 -1
  274. package/module/es5/tests/unit/Simple/Math/deviationValueSimple.test.js +0 -43
  275. package/module/es5/tests/unit/String/deleteSpaces.test.d.ts +0 -1
  276. package/module/es5/tests/unit/String/deleteSpaces.test.js +0 -22
  277. package/module/es5/tests/unit/String/formatString.test.d.ts +0 -1
  278. package/module/es5/tests/unit/String/formatString.test.js +0 -47
  279. package/module/es5/tests/unit/String/fromBase64.test.d.ts +0 -1
  280. package/module/es5/tests/unit/String/fromBase64.test.js +0 -37
  281. package/module/es5/tests/unit/String/hasNoLetters.test.d.ts +0 -1
  282. package/module/es5/tests/unit/String/hasNoLetters.test.js +0 -29
  283. package/module/es5/tests/unit/String/padEnd.test.d.ts +0 -1
  284. package/module/es5/tests/unit/String/padEnd.test.js +0 -22
  285. package/module/es5/tests/unit/String/padStart.test.d.ts +0 -1
  286. package/module/es5/tests/unit/String/padStart.test.js +0 -40
  287. package/module/es5/tests/unit/String/randomString.test.d.ts +0 -1
  288. package/module/es5/tests/unit/String/randomString.test.js +0 -21
  289. package/module/es5/tests/unit/String/randomStringInitialization.test.d.ts +0 -1
  290. package/module/es5/tests/unit/String/randomStringInitialization.test.js +0 -25
  291. package/module/es5/tests/unit/String/reverseString.test.d.ts +0 -1
  292. package/module/es5/tests/unit/String/reverseString.test.js +0 -35
  293. package/module/es5/tests/unit/String/toBase64.test.d.ts +0 -1
  294. package/module/es5/tests/unit/String/toBase64.test.js +0 -20
  295. package/module/es5/tests/unit/String/toHalfWidth.test.d.ts +0 -1
  296. package/module/es5/tests/unit/String/toHalfWidth.test.js +0 -16
  297. package/module/es5/tests/unit/String/trimCharacters.test.d.ts +0 -1
  298. package/module/es5/tests/unit/String/trimCharacters.test.js +0 -17
  299. package/module/es5/tests/unit/String/trimEndCharacters.test.d.ts +0 -1
  300. package/module/es5/tests/unit/String/trimEndCharacters.test.js +0 -33
  301. package/module/es5/tests/unit/String/trimStartCharacters.test.d.ts +0 -1
  302. package/module/es5/tests/unit/String/trimStartCharacters.test.js +0 -33
  303. package/module/es5/tests/unit/Time/convertTime.test.d.ts +0 -1
  304. package/module/es5/tests/unit/Time/convertTime.test.js +0 -135
  305. package/module/es5/tests/unit/Time/normalizeTimeUnit.test.d.ts +0 -1
  306. package/module/es5/tests/unit/Time/normalizeTimeUnit.test.js +0 -29
  307. package/module/es5/tests/unit/Tool/createPipeline.test.d.ts +0 -1
  308. package/module/es5/tests/unit/Tool/createPipeline.test.js +0 -184
  309. package/module/es5/tests/unit/Tool/parseJson.test.d.ts +0 -1
  310. package/module/es5/tests/unit/Tool/parseJson.test.js +0 -46
  311. package/module/es5/tests/unit/Tool/pipe.test.d.ts +0 -1
  312. package/module/es5/tests/unit/Tool/pipe.test.js +0 -445
  313. package/module/es5/tests/unit/UA/extractBrowserFromUserAgent.test.d.ts +0 -1
  314. package/module/es5/tests/unit/UA/extractBrowserFromUserAgent.test.js +0 -47
  315. package/module/es5/tests/unit/UA/extractDeviceFromUserAgent.test.d.ts +0 -1
  316. package/module/es5/tests/unit/UA/extractDeviceFromUserAgent.test.js +0 -55
  317. package/module/es5/tests/unit/UA/extractOsFromUserAgent.test.d.ts +0 -1
  318. package/module/es5/tests/unit/UA/extractOsFromUserAgent.test.js +0 -57
  319. package/module/es5/tests/unit/UA/parseUserAgent.test.d.ts +0 -1
  320. package/module/es5/tests/unit/UA/parseUserAgent.test.js +0 -95
  321. package/module/es5/tests/unit/Unit/unitConverterInitialization.test.d.ts +0 -1
  322. package/module/es5/tests/unit/Unit/unitConverterInitialization.test.js +0 -40
  323. package/module/es5/tests/unit/Validate/array/core.test.d.ts +0 -1
  324. package/module/es5/tests/unit/Validate/array/core.test.js +0 -86
  325. package/module/es5/tests/unit/Validate/boolean/core.test.d.ts +0 -1
  326. package/module/es5/tests/unit/Validate/boolean/core.test.js +0 -29
  327. package/module/es5/tests/unit/Validate/core/core.test.d.ts +0 -1
  328. package/module/es5/tests/unit/Validate/core/core.test.js +0 -87
  329. package/module/es5/tests/unit/Validate/isArray.test.d.ts +0 -1
  330. package/module/es5/tests/unit/Validate/isArray.test.js +0 -36
  331. package/module/es5/tests/unit/Validate/isDictionaryObject.test.d.ts +0 -1
  332. package/module/es5/tests/unit/Validate/isDictionaryObject.test.js +0 -62
  333. package/module/es5/tests/unit/Validate/isDouble.test.d.ts +0 -1
  334. package/module/es5/tests/unit/Validate/isDouble.test.js +0 -47
  335. package/module/es5/tests/unit/Validate/isEqual.test.d.ts +0 -1
  336. package/module/es5/tests/unit/Validate/isEqual.test.js +0 -74
  337. package/module/es5/tests/unit/Validate/isNotEmpty.test.d.ts +0 -1
  338. package/module/es5/tests/unit/Validate/isNotEmpty.test.js +0 -43
  339. package/module/es5/tests/unit/Validate/isNumber.test.d.ts +0 -1
  340. package/module/es5/tests/unit/Validate/isNumber.test.js +0 -77
  341. package/module/es5/tests/unit/Validate/isPerfectSquare.test.d.ts +0 -1
  342. package/module/es5/tests/unit/Validate/isPerfectSquare.test.js +0 -27
  343. package/module/es5/tests/unit/Validate/isPrimeNumber.test.d.ts +0 -1
  344. package/module/es5/tests/unit/Validate/isPrimeNumber.test.js +0 -51
  345. package/module/es5/tests/unit/Validate/isValueNaN.test.d.ts +0 -1
  346. package/module/es5/tests/unit/Validate/isValueNaN.test.js +0 -54
  347. package/module/es5/tests/unit/Validate/number/core.test.d.ts +0 -1
  348. package/module/es5/tests/unit/Validate/number/core.test.js +0 -36
  349. package/module/es5/tests/unit/Validate/number/double.test.d.ts +0 -1
  350. package/module/es5/tests/unit/Validate/number/double.test.js +0 -23
  351. package/module/es5/tests/unit/Validate/number/even.test.d.ts +0 -1
  352. package/module/es5/tests/unit/Validate/number/even.test.js +0 -23
  353. package/module/es5/tests/unit/Validate/number/maxValue.test.d.ts +0 -1
  354. package/module/es5/tests/unit/Validate/number/maxValue.test.js +0 -20
  355. package/module/es5/tests/unit/Validate/number/minValue.test.d.ts +0 -1
  356. package/module/es5/tests/unit/Validate/number/minValue.test.js +0 -20
  357. package/module/es5/tests/unit/Validate/number/odd.test.d.ts +0 -1
  358. package/module/es5/tests/unit/Validate/number/odd.test.js +0 -23
  359. package/module/es5/tests/unit/Validate/number/prime.test.d.ts +0 -1
  360. package/module/es5/tests/unit/Validate/number/prime.test.js +0 -25
  361. package/module/es5/tests/unit/Validate/object/core.test.d.ts +0 -1
  362. package/module/es5/tests/unit/Validate/object/core.test.js +0 -79
  363. package/module/es5/tests/unit/Validate/string/core.test.d.ts +0 -1
  364. package/module/es5/tests/unit/Validate/string/core.test.js +0 -27
  365. package/module/es5/tests/unit/Validate/string/email.test.d.ts +0 -1
  366. package/module/es5/tests/unit/Validate/string/email.test.js +0 -21
  367. package/module/es5/tests/unit/Validate/string/length.test.d.ts +0 -1
  368. package/module/es5/tests/unit/Validate/string/length.test.js +0 -18
  369. package/module/es5/tests/unit/Validate/string/maxLength.test.d.ts +0 -1
  370. package/module/es5/tests/unit/Validate/string/maxLength.test.js +0 -18
  371. package/module/es5/tests/unit/Validate/string/minLength.test.d.ts +0 -1
  372. package/module/es5/tests/unit/Validate/string/minLength.test.js +0 -18
  373. package/module/es5/tests/unit/Validate/string/numberString.test.d.ts +0 -1
  374. package/module/es5/tests/unit/Validate/string/numberString.test.js +0 -22
  375. package/module/es5/tests/unit/Validate/string/regexMatch.test.d.ts +0 -1
  376. package/module/es5/tests/unit/Validate/string/regexMatch.test.js +0 -29
  377. package/module/es5/tests/unit/Validate/string/uuid.test.d.ts +0 -1
  378. package/module/es5/tests/unit/Validate/string/uuid.test.js +0 -72
  379. package/module/es5/tests/unit/types/arrayType.test.d.ts +0 -1
  380. package/module/es5/tests/unit/types/arrayType.test.js +0 -11
  381. package/module/es5/tests/unit/types/clockType.test.d.ts +0 -1
  382. package/module/es5/tests/unit/types/clockType.test.js +0 -37
@@ -15,12 +15,13 @@ exports.groupBy = void 0;
15
15
  * groupBy(["apple", "banana", "carrot"], (str) => str[0]); // { 'a': ['apple'], 'b': ['banana'], 'c': ['carrot'] }
16
16
  */
17
17
  var groupBy = exports.groupBy = function groupBy(array, iteratee) {
18
- return array.reduce(function (accumulator, value, index, array) {
18
+ var result = Object.create(null);
19
+ var length = array.length;
20
+ for (var index = 0; index < length; index++) {
21
+ var value = array[index];
19
22
  var key = iteratee(value, index, array);
20
- if (!accumulator[key]) {
21
- accumulator[key] = [];
22
- }
23
- accumulator[key].push(value);
24
- return accumulator;
25
- }, {});
23
+ // biome-ignore lint/suspicious/noAssignInExpressions: <explanation>
24
+ (result[key] || (result[key] = [])).push(value);
25
+ }
26
+ return result;
26
27
  };
@@ -20,5 +20,6 @@ export * from "./shuffle";
20
20
  export * from "./shuffle2DArray";
21
21
  export * from "./sum";
22
22
  export * from "./timSort";
23
+ export * from "./ultraNumberSort";
23
24
  export * from "./zip";
24
25
  export * from "./zipLongest";
@@ -245,6 +245,17 @@ Object.keys(_timSort).forEach(function (key) {
245
245
  }
246
246
  });
247
247
  });
248
+ var _ultraNumberSort = require("./ultraNumberSort");
249
+ Object.keys(_ultraNumberSort).forEach(function (key) {
250
+ if (key === "default" || key === "__esModule") return;
251
+ if (key in exports && exports[key] === _ultraNumberSort[key]) return;
252
+ Object.defineProperty(exports, key, {
253
+ enumerable: true,
254
+ get: function get() {
255
+ return _ultraNumberSort[key];
256
+ }
257
+ });
258
+ });
248
259
  var _zip = require("./zip");
249
260
  Object.keys(_zip).forEach(function (key) {
250
261
  if (key === "default" || key === "__esModule") return;
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.quickSort = void 0;
7
7
  var _compareFunctionDefault = require("./compareFunctionDefault");
8
+ var _applyInsertionSortIfNeeded = require("./sortingHelpers/applyInsertionSortIfNeeded");
9
+ var _rangeValidator = require("./sortingHelpers/rangeValidator");
8
10
  /**
9
11
  * Finds the median value among three elements in the array
10
12
  * @param array The array containing the elements
@@ -64,25 +66,6 @@ var partition = function partition(array, low, high, compareFunction) {
64
66
  }
65
67
  };
66
68
 
67
- /**
68
- * Sorts a portion of the array using insertion sort algorithm
69
- * @param array Array to sort
70
- * @param low Starting index of the range to sort
71
- * @param high Ending index of the range to sort
72
- * @param compareFunction Function to compare elements
73
- */
74
- var insertionSort = function insertionSort(array, low, high, compareFunction) {
75
- for (var index = low + 1; index <= high; index++) {
76
- var key = array[index];
77
- var currentIndex = index - 1;
78
- while (currentIndex >= low && compareFunction(array[currentIndex], key) > 0) {
79
- array[currentIndex + 1] = array[currentIndex];
80
- currentIndex--;
81
- }
82
- array[currentIndex + 1] = key;
83
- }
84
- };
85
-
86
69
  /**
87
70
  * Internal implementation of the quicksort algorithm with tail-call optimization
88
71
  * @param array Array to sort
@@ -95,8 +78,7 @@ var _sortImpl = function sortImpl(array, lowInit, highInit, compareFunction, ins
95
78
  var low = lowInit;
96
79
  var high = highInit;
97
80
  while (low < high) {
98
- if (high - low < insertionSortThreshold) {
99
- insertionSort(array, low, high, compareFunction);
81
+ if ((0, _applyInsertionSortIfNeeded.applyInsertionSortIfNeeded)(array, low, high, compareFunction, insertionSortThreshold)) {
100
82
  return;
101
83
  }
102
84
  var pivotIndex = partition(array, low, high, compareFunction);
@@ -128,9 +110,12 @@ var quickSort = exports.quickSort = function quickSort(array) {
128
110
  var startIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
129
111
  var endIndex = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : array.length - 1;
130
112
  var insertionSortThreshold = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 10;
131
- // Only sort within valid range
132
- var validStartIndex = Math.max(0, Math.min(startIndex, array.length - 1));
133
- var validEndIndex = Math.max(validStartIndex, Math.min(endIndex, array.length - 1));
134
- _sortImpl(array, validStartIndex, validEndIndex, compareFunction, insertionSortThreshold);
113
+ var _validateRange = (0, _rangeValidator.validateRange)(array, startIndex, endIndex),
114
+ validStartIndex = _validateRange.startIndex,
115
+ validEndIndex = _validateRange.endIndex,
116
+ shouldSort = _validateRange.shouldSort;
117
+ if (shouldSort) {
118
+ _sortImpl(array, validStartIndex, validEndIndex, compareFunction, insertionSortThreshold);
119
+ }
135
120
  return array;
136
121
  };
@@ -0,0 +1,13 @@
1
+ import type { CompareFunction } from "$/array/compareFunction";
2
+ /**
3
+ * Checks if a partition is small enough to apply insertion sort and applies it if so.
4
+ *
5
+ * @template T The type of elements in the array.
6
+ * @param {T[]} array The array containing the partition.
7
+ * @param {number} low The starting index of the partition.
8
+ * @param {number} high The ending index of the partition.
9
+ * @param {CompareFunction<T>} compareFunction The function to compare elements.
10
+ * @param {number} insertionSortThreshold The size threshold for switching to insertion sort.
11
+ * @returns {boolean} True if insertion sort was applied, false otherwise.
12
+ */
13
+ export declare const applyInsertionSortIfNeeded: <T>(array: T[], low: number, high: number, compareFunction: CompareFunction<T>, insertionSortThreshold: number) => boolean;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.applyInsertionSortIfNeeded = void 0;
7
+ var _insertionSort = require("@/Array/insertionSort");
8
+ /**
9
+ * Checks if a partition is small enough to apply insertion sort and applies it if so.
10
+ *
11
+ * @template T The type of elements in the array.
12
+ * @param {T[]} array The array containing the partition.
13
+ * @param {number} low The starting index of the partition.
14
+ * @param {number} high The ending index of the partition.
15
+ * @param {CompareFunction<T>} compareFunction The function to compare elements.
16
+ * @param {number} insertionSortThreshold The size threshold for switching to insertion sort.
17
+ * @returns {boolean} True if insertion sort was applied, false otherwise.
18
+ */
19
+ var applyInsertionSortIfNeeded = exports.applyInsertionSortIfNeeded = function applyInsertionSortIfNeeded(array, low, high, compareFunction, insertionSortThreshold) {
20
+ if (high - low + 1 <= insertionSortThreshold) {
21
+ (0, _insertionSort.insertionSort)(array, compareFunction, low, high);
22
+ return true;
23
+ }
24
+ return false;
25
+ };
@@ -0,0 +1,17 @@
1
+ export interface ValidatedSortRange {
2
+ startIndex: number;
3
+ endIndex: number;
4
+ shouldSort: boolean;
5
+ }
6
+ /**
7
+ * Validates and adjusts the start and end indices for an operation on an array.
8
+ * Ensures indices are within the bounds of the array.
9
+ *
10
+ * @template T The type of elements in the array.
11
+ * @param {T[]} array The array.
12
+ * @param {number} startIndex The desired starting index.
13
+ * @param {number} endIndex The desired ending index.
14
+ * @returns {ValidatedSortRange} An object containing the validated start index, end index,
15
+ * and a boolean indicating if the operation should proceed on the range.
16
+ */
17
+ export declare const validateRange: <T>(array: T[], startIndex: number, endIndex: number) => ValidatedSortRange;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.validateRange = void 0;
7
+ /**
8
+ * Validates and adjusts the start and end indices for an operation on an array.
9
+ * Ensures indices are within the bounds of the array.
10
+ *
11
+ * @template T The type of elements in the array.
12
+ * @param {T[]} array The array.
13
+ * @param {number} startIndex The desired starting index.
14
+ * @param {number} endIndex The desired ending index.
15
+ * @returns {ValidatedSortRange} An object containing the validated start index, end index,
16
+ * and a boolean indicating if the operation should proceed on the range.
17
+ */
18
+ var validateRange = exports.validateRange = function validateRange(array, startIndex, endIndex) {
19
+ var length = array.length;
20
+ // Handle empty arrays early
21
+ if (length === 0) {
22
+ return {
23
+ startIndex: 0,
24
+ endIndex: -1,
25
+ shouldSort: false
26
+ };
27
+ }
28
+ var validatedStartIndex = Math.max(0, Math.min(startIndex, length - 1));
29
+ var validatedEndIndex = Math.max(validatedStartIndex, Math.min(endIndex, length - 1));
30
+ return {
31
+ startIndex: validatedStartIndex,
32
+ endIndex: validatedEndIndex,
33
+ shouldSort: validatedEndIndex >= validatedStartIndex
34
+ };
35
+ };
@@ -5,27 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.timSort = void 0;
7
7
  var _compareFunctionDefault = require("./compareFunctionDefault");
8
+ var _insertionSort = require("@/Array/insertionSort");
8
9
  var MIN_RUN = 32;
9
10
 
10
- /**
11
- * Sorts a portion of the array using insertion sort algorithm
12
- * @param array Array to sort
13
- * @param start Starting index of the range to sort
14
- * @param end Ending index of the range to sort
15
- * @param compareFunction Function to compare elements
16
- */
17
- var insertionSort = function insertionSort(array, start, end, compareFunction) {
18
- for (var index = start + 1; index <= end; index++) {
19
- var temporary = array[index];
20
- var currentIndex = index - 1;
21
- while (currentIndex >= start && compareFunction(array[currentIndex], temporary) > 0) {
22
- array[currentIndex + 1] = array[currentIndex];
23
- currentIndex--;
24
- }
25
- array[currentIndex + 1] = temporary;
26
- }
27
- };
28
-
29
11
  /**
30
12
  * Merges two sorted portions of the array
31
13
  * @param array Array containing the portions to merge
@@ -100,7 +82,7 @@ var timSort = exports.timSort = function timSort(array) {
100
82
  var n = end - start + 1;
101
83
  var minRun = getMinRunLength(n);
102
84
  for (var index = start; index <= end; index += minRun) {
103
- insertionSort(array, index, Math.min(index + MIN_RUN - 1, end), compareFunction);
85
+ (0, _insertionSort.insertionSort)(array, compareFunction, index, Math.min(index + MIN_RUN - 1, end));
104
86
  }
105
87
  for (var size = minRun; size < n; size *= 2) {
106
88
  for (var left = start; left <= end; left += 2 * size) {
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Ultra-fast sorting specifically optimized for number arrays
3
+ * @param array Array of numbers to sort
4
+ * @param ascending Sort in ascending order if true, descending if false
5
+ * @returns Sorted array
6
+ */
7
+ export declare const ultraNumberSort: (array: number[], ascending?: boolean) => number[];