umt 2.1.2 → 2.2.1

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 (921) hide show
  1. package/module/Advance/rangeAdvance.d.ts +10 -6
  2. package/module/Advance/rangeAdvance.js +10 -6
  3. package/module/Advance/rangeAdvance.js.map +1 -1
  4. package/module/Array/arraysJoin.d.ts +4 -4
  5. package/module/Array/arraysJoin.js +4 -4
  6. package/module/Array/binarySearch.d.ts +4 -3
  7. package/module/Array/binarySearch.js +4 -3
  8. package/module/Array/binarySearch.js.map +1 -1
  9. package/module/Array/checkFlagAlignment.d.ts +3 -3
  10. package/module/Array/checkFlagAlignment.js +7 -7
  11. package/module/Array/checkFlagAlignment.js.map +1 -1
  12. package/module/Array/chunk.d.ts +4 -4
  13. package/module/Array/compact.d.ts +8 -0
  14. package/module/Array/compact.js +8 -0
  15. package/module/Array/compact.js.map +1 -1
  16. package/module/Array/compareFunctionDefault.d.ts +13 -0
  17. package/module/Array/compareFunctionDefault.js +13 -0
  18. package/module/Array/compareFunctionDefault.js.map +1 -1
  19. package/module/Array/drop.d.ts +5 -5
  20. package/module/Array/drop.js +5 -5
  21. package/module/Array/dualPivotQuickSort.d.ts +16 -0
  22. package/module/Array/dualPivotQuickSort.js +152 -0
  23. package/module/Array/dualPivotQuickSort.js.map +1 -0
  24. package/module/Array/first.d.ts +3 -3
  25. package/module/Array/first.js +3 -3
  26. package/module/Array/generateNumberArray.d.ts +6 -6
  27. package/module/Array/generateNumberArray.js +6 -6
  28. package/module/Array/getArraysCommon.d.ts +4 -4
  29. package/module/Array/getArraysCommon.js +4 -4
  30. package/module/Array/getArraysDiff.d.ts +4 -4
  31. package/module/Array/getArraysDiff.js +4 -4
  32. package/module/Array/groupBy.d.ts +8 -4
  33. package/module/Array/groupBy.js +8 -4
  34. package/module/Array/groupBy.js.map +1 -1
  35. package/module/Array/index.d.ts +1 -0
  36. package/module/Array/index.js +1 -0
  37. package/module/Array/index.js.map +1 -1
  38. package/module/Array/insertionSort.d.ts +8 -7
  39. package/module/Array/insertionSort.js +6 -6
  40. package/module/Array/insertionSort.js.map +1 -1
  41. package/module/Array/mergeSort.d.ts +6 -5
  42. package/module/Array/mergeSort.js +9 -9
  43. package/module/Array/mergeSort.js.map +1 -1
  44. package/module/Array/quickSort.d.ts +12 -11
  45. package/module/Array/quickSort.js +44 -10
  46. package/module/Array/quickSort.js.map +1 -1
  47. package/module/Array/randomSelect.d.ts +5 -5
  48. package/module/Array/randomSelect.js +5 -5
  49. package/module/Array/range.d.ts +5 -5
  50. package/module/Array/range.js +26 -10
  51. package/module/Array/range.js.map +1 -1
  52. package/module/Array/shuffle.d.ts +3 -3
  53. package/module/Array/shuffle.js +3 -3
  54. package/module/Array/shuffle2DArray.d.ts +4 -4
  55. package/module/Array/shuffle2DArray.js +6 -6
  56. package/module/Array/shuffle2DArray.js.map +1 -1
  57. package/module/Array/sum.d.ts +3 -3
  58. package/module/Array/sum.js +4 -4
  59. package/module/Array/sum.js.map +1 -1
  60. package/module/Array/timSort.d.ts +13 -11
  61. package/module/Array/timSort.js +33 -9
  62. package/module/Array/timSort.js.map +1 -1
  63. package/module/Array/zip.d.ts +6 -3
  64. package/module/Array/zip.js +6 -3
  65. package/module/Array/zip.js.map +1 -1
  66. package/module/Array/zipLongest.d.ts +8 -5
  67. package/module/Array/zipLongest.js +8 -5
  68. package/module/Array/zipLongest.js.map +1 -1
  69. package/module/Color/cmykToRgba.d.ts +7 -7
  70. package/module/Color/cmykToRgba.js +12 -12
  71. package/module/Color/cmykToRgba.js.map +1 -1
  72. package/module/Color/hexaToRgba.d.ts +4 -3
  73. package/module/Color/hexaToRgba.js +18 -7
  74. package/module/Color/hexaToRgba.js.map +1 -1
  75. package/module/Color/hslaToRgba.d.ts +7 -6
  76. package/module/Color/hslaToRgba.js +19 -15
  77. package/module/Color/hslaToRgba.js.map +1 -1
  78. package/module/Color/rgbaToCmyk.d.ts +3 -3
  79. package/module/Color/rgbaToCmyk.js +14 -3
  80. package/module/Color/rgbaToCmyk.js.map +1 -1
  81. package/module/Color/rgbaToHexA.d.ts +4 -4
  82. package/module/Color/rgbaToHexA.js +5 -5
  83. package/module/Color/rgbaToHexA.js.map +1 -1
  84. package/module/Color/rgbaToHsla.d.ts +4 -3
  85. package/module/Color/rgbaToHsla.js +15 -3
  86. package/module/Color/rgbaToHsla.js.map +1 -1
  87. package/module/Consts/clock.d.ts +11 -11
  88. package/module/Consts/clock.js +11 -11
  89. package/module/Consts/httpStatus/httpClientErrorStatus.d.ts +28 -0
  90. package/module/Consts/httpStatus/httpClientErrorStatus.js +28 -0
  91. package/module/Consts/httpStatus/httpClientErrorStatus.js.map +1 -1
  92. package/module/Consts/httpStatus/httpInformationalStatus.d.ts +9 -0
  93. package/module/Consts/httpStatus/httpInformationalStatus.js +9 -0
  94. package/module/Consts/httpStatus/httpInformationalStatus.js.map +1 -1
  95. package/module/Consts/httpStatus/httpRedirectionStatus.d.ts +11 -0
  96. package/module/Consts/httpStatus/httpRedirectionStatus.js +11 -0
  97. package/module/Consts/httpStatus/httpRedirectionStatus.js.map +1 -1
  98. package/module/Consts/httpStatus/httpServerErrorStatus.d.ts +10 -0
  99. package/module/Consts/httpStatus/httpServerErrorStatus.js +10 -0
  100. package/module/Consts/httpStatus/httpServerErrorStatus.js.map +1 -1
  101. package/module/Consts/httpStatus/httpSuccessStatus.d.ts +11 -0
  102. package/module/Consts/httpStatus/httpSuccessStatus.js +11 -0
  103. package/module/Consts/httpStatus/httpSuccessStatus.js.map +1 -1
  104. package/module/Date/birthday.d.ts +7 -6
  105. package/module/Date/birthday.js +7 -6
  106. package/module/Date/birthday.js.map +1 -1
  107. package/module/Date/dateRange.d.ts +7 -4
  108. package/module/Date/dateRange.js +7 -4
  109. package/module/Date/dateRange.js.map +1 -1
  110. package/module/Date/dayOfWeek.d.ts +4 -4
  111. package/module/Date/dayOfWeek.js +4 -4
  112. package/module/Date/format.d.ts +30 -4
  113. package/module/Date/format.js +30 -4
  114. package/module/Date/format.js.map +1 -1
  115. package/module/Date/getDay.d.ts +8 -5
  116. package/module/Date/getDay.js +8 -5
  117. package/module/Date/getDay.js.map +1 -1
  118. package/module/Date/getTimezoneOffsetString.d.ts +3 -3
  119. package/module/Date/getTimezoneOffsetString.js +3 -3
  120. package/module/Date/isLeapYear.d.ts +8 -3
  121. package/module/Date/isLeapYear.js +8 -3
  122. package/module/Date/isLeapYear.js.map +1 -1
  123. package/module/Date/new.d.ts +20 -20
  124. package/module/Date/new.js +21 -21
  125. package/module/Date/new.js.map +1 -1
  126. package/module/Date/now.d.ts +7 -4
  127. package/module/Date/now.js +7 -4
  128. package/module/Date/now.js.map +1 -1
  129. package/module/Error/safeExecute.d.ts +21 -0
  130. package/module/Error/safeExecute.js +20 -0
  131. package/module/Error/safeExecute.js.map +1 -1
  132. package/module/IP/cidrToLong.d.ts +4 -3
  133. package/module/IP/cidrToLong.js +10 -4
  134. package/module/IP/cidrToLong.js.map +1 -1
  135. package/module/IP/cidrToSubnetMask.d.ts +4 -3
  136. package/module/IP/cidrToSubnetMask.js +4 -3
  137. package/module/IP/cidrToSubnetMask.js.map +1 -1
  138. package/module/IP/getIpClass.d.ts +3 -3
  139. package/module/IP/getIpClass.js +30 -18
  140. package/module/IP/getIpClass.js.map +1 -1
  141. package/module/IP/getNetworkAddress.d.ts +5 -4
  142. package/module/IP/getNetworkAddress.js +36 -6
  143. package/module/IP/getNetworkAddress.js.map +1 -1
  144. package/module/IP/ipToBinaryString.d.ts +4 -3
  145. package/module/IP/ipToBinaryString.js +32 -7
  146. package/module/IP/ipToBinaryString.js.map +1 -1
  147. package/module/IP/ipToLong.d.ts +4 -3
  148. package/module/IP/ipToLong.js +4 -3
  149. package/module/IP/ipToLong.js.map +1 -1
  150. package/module/IP/isInRange.d.ts +6 -5
  151. package/module/IP/isInRange.js +33 -7
  152. package/module/IP/isInRange.js.map +1 -1
  153. package/module/IP/isPrivateIp.d.ts +4 -3
  154. package/module/IP/isPrivateIp.js +17 -9
  155. package/module/IP/isPrivateIp.js.map +1 -1
  156. package/module/IP/longToIp.d.ts +4 -3
  157. package/module/IP/longToIp.js +16 -4
  158. package/module/IP/longToIp.js.map +1 -1
  159. package/module/IP/subnetMaskToCidr.d.ts +4 -3
  160. package/module/IP/subnetMaskToCidr.js +28 -12
  161. package/module/IP/subnetMaskToCidr.js.map +1 -1
  162. package/module/Math/addition.d.ts +3 -3
  163. package/module/Math/addition.js +3 -3
  164. package/module/Math/average.d.ts +7 -4
  165. package/module/Math/average.js +7 -4
  166. package/module/Math/average.js.map +1 -1
  167. package/module/Math/bitwise.d.ts +5 -5
  168. package/module/Math/bitwise.js +5 -5
  169. package/module/Math/calculator/calculator.d.ts +9 -7
  170. package/module/Math/calculator/calculator.js +9 -7
  171. package/module/Math/calculator/calculator.js.map +1 -1
  172. package/module/Math/calculator/calculatorInitialization.d.ts +4 -3
  173. package/module/Math/calculator/calculatorInitialization.js +6 -5
  174. package/module/Math/calculator/calculatorInitialization.js.map +1 -1
  175. package/module/Math/calculator/convertCurrency.d.ts +6 -4
  176. package/module/Math/calculator/convertCurrency.js +6 -4
  177. package/module/Math/calculator/convertCurrency.js.map +1 -1
  178. package/module/Math/calculator/core.js +13 -13
  179. package/module/Math/calculator/core.js.map +1 -1
  180. package/module/Math/calculator/literalExpression.d.ts +5 -3
  181. package/module/Math/calculator/literalExpression.js +12 -10
  182. package/module/Math/calculator/literalExpression.js.map +1 -1
  183. package/module/Math/degToRad.d.ts +3 -3
  184. package/module/Math/degToRad.js +3 -3
  185. package/module/Math/deviationValue.d.ts +5 -5
  186. package/module/Math/deviationValue.js +5 -5
  187. package/module/Math/division.d.ts +5 -5
  188. package/module/Math/division.js +31 -21
  189. package/module/Math/division.js.map +1 -1
  190. package/module/Math/factorial.d.ts +3 -3
  191. package/module/Math/factorial.js +3 -3
  192. package/module/Math/factorize.d.ts +3 -3
  193. package/module/Math/factorize.js +3 -3
  194. package/module/Math/flexibleNumberConversion.d.ts +11 -11
  195. package/module/Math/flexibleNumberConversion.js +19 -19
  196. package/module/Math/flexibleNumberConversion.js.map +1 -1
  197. package/module/Math/gcd.d.ts +5 -5
  198. package/module/Math/gcd.js +6 -6
  199. package/module/Math/gcd.js.map +1 -1
  200. package/module/Math/getDecimalLength.d.ts +7 -4
  201. package/module/Math/getDecimalLength.js +9 -5
  202. package/module/Math/getDecimalLength.js.map +1 -1
  203. package/module/Math/lcm.d.ts +4 -4
  204. package/module/Math/lcm.js +5 -5
  205. package/module/Math/lcm.js.map +1 -1
  206. package/module/Math/linearCongruentialGenerator.d.ts +6 -6
  207. package/module/Math/linearCongruentialGenerator.js +6 -6
  208. package/module/Math/mathConverter.d.ts +7 -3
  209. package/module/Math/mathConverter.js +7 -3
  210. package/module/Math/mathConverter.js.map +1 -1
  211. package/module/Math/mathSeparator.d.ts +8 -3
  212. package/module/Math/mathSeparator.js +8 -3
  213. package/module/Math/mathSeparator.js.map +1 -1
  214. package/module/Math/max.d.ts +4 -3
  215. package/module/Math/max.js +4 -3
  216. package/module/Math/max.js.map +1 -1
  217. package/module/Math/median.d.ts +3 -3
  218. package/module/Math/median.js +3 -3
  219. package/module/Math/min.d.ts +4 -3
  220. package/module/Math/min.js +4 -3
  221. package/module/Math/min.js.map +1 -1
  222. package/module/Math/multiples.d.ts +4 -4
  223. package/module/Math/multiples.js +4 -4
  224. package/module/Math/multiplication.d.ts +3 -3
  225. package/module/Math/multiplication.js +3 -3
  226. package/module/Math/nCr.d.ts +7 -4
  227. package/module/Math/nCr.js +7 -4
  228. package/module/Math/nCr.js.map +1 -1
  229. package/module/Math/nHr.d.ts +7 -4
  230. package/module/Math/nHr.js +7 -4
  231. package/module/Math/nHr.js.map +1 -1
  232. package/module/Math/nPr.d.ts +7 -4
  233. package/module/Math/nPr.js +7 -4
  234. package/module/Math/nPr.js.map +1 -1
  235. package/module/Math/primeFactorization.d.ts +6 -3
  236. package/module/Math/primeFactorization.js +11 -8
  237. package/module/Math/primeFactorization.js.map +1 -1
  238. package/module/Math/quotient.d.ts +7 -4
  239. package/module/Math/quotient.js +7 -4
  240. package/module/Math/quotient.js.map +1 -1
  241. package/module/Math/radToDeg.d.ts +5 -3
  242. package/module/Math/radToDeg.js +5 -3
  243. package/module/Math/radToDeg.js.map +1 -1
  244. package/module/Math/random.d.ts +6 -5
  245. package/module/Math/random.js +6 -5
  246. package/module/Math/random.js.map +1 -1
  247. package/module/Math/reduce.d.ts +9 -4
  248. package/module/Math/reduce.js +16 -6
  249. package/module/Math/reduce.js.map +1 -1
  250. package/module/Math/repeatedTrial.d.ts +5 -5
  251. package/module/Math/repeatedTrial.js +5 -5
  252. package/module/Math/roundOf.d.ts +7 -5
  253. package/module/Math/roundOf.js +8 -6
  254. package/module/Math/roundOf.js.map +1 -1
  255. package/module/Math/solveEquation.d.ts +12 -13
  256. package/module/Math/solveEquation.js +32 -37
  257. package/module/Math/solveEquation.js.map +1 -1
  258. package/module/Math/standardDeviation.d.ts +8 -3
  259. package/module/Math/standardDeviation.js +13 -7
  260. package/module/Math/standardDeviation.js.map +1 -1
  261. package/module/Math/subtract.d.ts +10 -4
  262. package/module/Math/subtract.js +12 -6
  263. package/module/Math/subtract.js.map +1 -1
  264. package/module/Math/toBaseN.d.ts +8 -6
  265. package/module/Math/toBaseN.js +9 -7
  266. package/module/Math/toBaseN.js.map +1 -1
  267. package/module/Math/toCelsius.d.ts +5 -3
  268. package/module/Math/toCelsius.js +5 -3
  269. package/module/Math/toCelsius.js.map +1 -1
  270. package/module/Math/toKelvin.d.ts +5 -3
  271. package/module/Math/toKelvin.js +5 -3
  272. package/module/Math/toKelvin.js.map +1 -1
  273. package/module/Math/uuidv7.d.ts +10 -2
  274. package/module/Math/uuidv7.js +10 -2
  275. package/module/Math/uuidv7.js.map +1 -1
  276. package/module/Math/valueSwap.d.ts +5 -4
  277. package/module/Math/valueSwap.js +5 -4
  278. package/module/Math/valueSwap.js.map +1 -1
  279. package/module/Math/xoshiro256.d.ts +8 -3
  280. package/module/Math/xoshiro256.js +8 -3
  281. package/module/Math/xoshiro256.js.map +1 -1
  282. package/module/Object/has.d.ts +4 -4
  283. package/module/Object/has.js +4 -4
  284. package/module/Object/keyBy.d.ts +3 -3
  285. package/module/Object/keyBy.js +4 -4
  286. package/module/Object/pick.d.ts +6 -6
  287. package/module/Object/pick.js +6 -6
  288. package/module/Object/pickDeep.d.ts +7 -7
  289. package/module/Object/pickDeep.js +7 -7
  290. package/module/Simple/Array/quickSortSimple.d.ts +9 -7
  291. package/module/Simple/Array/quickSortSimple.js +7 -6
  292. package/module/Simple/Array/quickSortSimple.js.map +1 -1
  293. package/module/Simple/Date/birthdaySimple.d.ts +4 -4
  294. package/module/Simple/Date/birthdaySimple.js +4 -4
  295. package/module/Simple/Date/dayOfWeekSimple.d.ts +4 -4
  296. package/module/Simple/Date/nowSimple.d.ts +3 -3
  297. package/module/Simple/Date/nowSimple.js +3 -3
  298. package/module/Simple/Math/deviationValueSimple.d.ts +10 -11
  299. package/module/Simple/Math/deviationValueSimple.js +14 -13
  300. package/module/Simple/Math/deviationValueSimple.js.map +1 -1
  301. package/module/String/deleteSpaces.d.ts +8 -4
  302. package/module/String/deleteSpaces.js +8 -4
  303. package/module/String/deleteSpaces.js.map +1 -1
  304. package/module/String/formatString.d.ts +8 -8
  305. package/module/String/formatString.js +7 -7
  306. package/module/String/formatString.js.map +1 -1
  307. package/module/String/fromBase64.d.ts +4 -3
  308. package/module/String/fromBase64.js +15 -9
  309. package/module/String/fromBase64.js.map +1 -1
  310. package/module/String/hasNoLetters.d.ts +9 -3
  311. package/module/String/hasNoLetters.js +12 -6
  312. package/module/String/hasNoLetters.js.map +1 -1
  313. package/module/String/padEnd.d.ts +5 -5
  314. package/module/String/padEnd.js +5 -5
  315. package/module/String/padStart.d.ts +11 -5
  316. package/module/String/padStart.js +17 -5
  317. package/module/String/padStart.js.map +1 -1
  318. package/module/String/randomString.d.ts +4 -4
  319. package/module/String/randomString.js +4 -4
  320. package/module/String/randomStringInitialization.d.ts +3 -3
  321. package/module/String/randomStringInitialization.js +3 -3
  322. package/module/String/reverseString.d.ts +3 -3
  323. package/module/String/reverseString.js +3 -3
  324. package/module/String/toBase64.d.ts +3 -3
  325. package/module/String/toBase64.js +3 -3
  326. package/module/String/toHalfWidth.d.ts +3 -3
  327. package/module/String/toHalfWidth.js +3 -3
  328. package/module/String/trimCharacters.d.ts +4 -4
  329. package/module/String/trimCharacters.js +4 -4
  330. package/module/String/trimEndCharacters.d.ts +10 -4
  331. package/module/String/trimEndCharacters.js +10 -4
  332. package/module/String/trimEndCharacters.js.map +1 -1
  333. package/module/String/trimStartCharacters.d.ts +10 -4
  334. package/module/String/trimStartCharacters.js +10 -4
  335. package/module/String/trimStartCharacters.js.map +1 -1
  336. package/module/Time/convertTime.d.ts +6 -6
  337. package/module/Time/convertTime.js +12 -11
  338. package/module/Time/convertTime.js.map +1 -1
  339. package/module/Tool/createPipeline.d.ts +8 -6
  340. package/module/Tool/createPipeline.js +6 -5
  341. package/module/Tool/createPipeline.js.map +1 -1
  342. package/module/Tool/parseJson.d.ts +7 -0
  343. package/module/Tool/parseJson.js +7 -0
  344. package/module/Tool/parseJson.js.map +1 -1
  345. package/module/UA/extractBrowserFromUserAgent.d.ts +12 -0
  346. package/module/UA/extractBrowserFromUserAgent.js +22 -5
  347. package/module/UA/extractBrowserFromUserAgent.js.map +1 -1
  348. package/module/UA/extractDeviceFromUserAgent.d.ts +12 -0
  349. package/module/UA/extractDeviceFromUserAgent.js +12 -0
  350. package/module/UA/extractDeviceFromUserAgent.js.map +1 -1
  351. package/module/UA/extractOsFromUserAgent.d.ts +12 -0
  352. package/module/UA/extractOsFromUserAgent.js +12 -0
  353. package/module/UA/extractOsFromUserAgent.js.map +1 -1
  354. package/module/UA/parseUserAgent.d.ts +16 -0
  355. package/module/UA/parseUserAgent.js +16 -0
  356. package/module/UA/parseUserAgent.js.map +1 -1
  357. package/module/Unit/unitConverterInitialization.d.ts +15 -0
  358. package/module/Unit/unitConverterInitialization.js +15 -0
  359. package/module/Unit/unitConverterInitialization.js.map +1 -1
  360. package/module/Validate/array/core.d.ts +12 -0
  361. package/module/Validate/array/core.js +15 -3
  362. package/module/Validate/array/core.js.map +1 -1
  363. package/module/Validate/boolean/core.d.ts +9 -0
  364. package/module/Validate/boolean/core.js +9 -0
  365. package/module/Validate/boolean/core.js.map +1 -1
  366. package/module/Validate/core/index.d.ts +10 -0
  367. package/module/Validate/core/index.js +11 -1
  368. package/module/Validate/core/index.js.map +1 -1
  369. package/module/Validate/isArray.d.ts +3 -3
  370. package/module/Validate/isArray.js +3 -3
  371. package/module/Validate/isBrowser.d.ts +1 -1
  372. package/module/Validate/isBrowser.js +1 -1
  373. package/module/Validate/isBun.d.ts +1 -1
  374. package/module/Validate/isBun.js +1 -2
  375. package/module/Validate/isBun.js.map +1 -1
  376. package/module/Validate/isDictionaryObject.d.ts +3 -3
  377. package/module/Validate/isDictionaryObject.js +3 -3
  378. package/module/Validate/isDouble.d.ts +4 -4
  379. package/module/Validate/isDouble.js +4 -4
  380. package/module/Validate/isNode.d.ts +1 -1
  381. package/module/Validate/isNode.js +1 -1
  382. package/module/Validate/isNodeWebkit.d.ts +1 -1
  383. package/module/Validate/isNodeWebkit.js +1 -1
  384. package/module/Validate/isNotEmpty.d.ts +3 -3
  385. package/module/Validate/isNotEmpty.js +4 -4
  386. package/module/Validate/isNotEmpty.js.map +1 -1
  387. package/module/Validate/isNumber.d.ts +4 -4
  388. package/module/Validate/isNumber.js +10 -4
  389. package/module/Validate/isNumber.js.map +1 -1
  390. package/module/Validate/isPerfectSquare.d.ts +8 -3
  391. package/module/Validate/isPerfectSquare.js +8 -3
  392. package/module/Validate/isPerfectSquare.js.map +1 -1
  393. package/module/Validate/isPrimeNumber.d.ts +7 -3
  394. package/module/Validate/isPrimeNumber.js +8 -4
  395. package/module/Validate/isPrimeNumber.js.map +1 -1
  396. package/module/Validate/isValueNaN.d.ts +7 -5
  397. package/module/Validate/isValueNaN.js +7 -5
  398. package/module/Validate/isValueNaN.js.map +1 -1
  399. package/module/Validate/number/core.d.ts +11 -0
  400. package/module/Validate/number/core.js +11 -0
  401. package/module/Validate/number/core.js.map +1 -1
  402. package/module/Validate/number/double.d.ts +9 -0
  403. package/module/Validate/number/double.js +9 -0
  404. package/module/Validate/number/double.js.map +1 -1
  405. package/module/Validate/number/even.d.ts +9 -0
  406. package/module/Validate/number/even.js +9 -0
  407. package/module/Validate/number/even.js.map +1 -1
  408. package/module/Validate/number/maxValue.d.ts +10 -0
  409. package/module/Validate/number/maxValue.js +10 -0
  410. package/module/Validate/number/maxValue.js.map +1 -1
  411. package/module/Validate/number/minValue.d.ts +10 -0
  412. package/module/Validate/number/minValue.js +10 -0
  413. package/module/Validate/number/minValue.js.map +1 -1
  414. package/module/Validate/number/prime.d.ts +9 -0
  415. package/module/Validate/number/prime.js +9 -0
  416. package/module/Validate/number/prime.js.map +1 -1
  417. package/module/Validate/object/core.d.ts +11 -0
  418. package/module/Validate/object/core.js +11 -0
  419. package/module/Validate/object/core.js.map +1 -1
  420. package/module/Validate/string/core.d.ts +11 -0
  421. package/module/Validate/string/core.js +11 -0
  422. package/module/Validate/string/core.js.map +1 -1
  423. package/module/Validate/string/email.d.ts +9 -0
  424. package/module/Validate/string/email.js +10 -1
  425. package/module/Validate/string/email.js.map +1 -1
  426. package/module/Validate/string/length.d.ts +11 -0
  427. package/module/Validate/string/length.js +11 -0
  428. package/module/Validate/string/length.js.map +1 -1
  429. package/module/Validate/string/maxLength.d.ts +10 -0
  430. package/module/Validate/string/maxLength.js +10 -0
  431. package/module/Validate/string/maxLength.js.map +1 -1
  432. package/module/Validate/string/minLength.d.ts +10 -0
  433. package/module/Validate/string/minLength.js +10 -0
  434. package/module/Validate/string/minLength.js.map +1 -1
  435. package/module/Validate/string/numberString.d.ts +9 -0
  436. package/module/Validate/string/numberString.js +9 -0
  437. package/module/Validate/string/numberString.js.map +1 -1
  438. package/module/Validate/string/regexMatch.d.ts +10 -0
  439. package/module/Validate/string/regexMatch.js +10 -0
  440. package/module/Validate/string/regexMatch.js.map +1 -1
  441. package/module/Validate/string/uuid.d.ts +8 -3
  442. package/module/Validate/string/uuid.js +9 -4
  443. package/module/Validate/string/uuid.js.map +1 -1
  444. package/module/Validate/type.d.ts +22 -0
  445. package/module/es5/Advance/rangeAdvance.d.ts +10 -6
  446. package/module/es5/Advance/rangeAdvance.js +10 -6
  447. package/module/es5/Array/arraysJoin.d.ts +4 -4
  448. package/module/es5/Array/arraysJoin.js +4 -4
  449. package/module/es5/Array/binarySearch.d.ts +4 -3
  450. package/module/es5/Array/binarySearch.js +4 -3
  451. package/module/es5/Array/checkFlagAlignment.d.ts +3 -3
  452. package/module/es5/Array/checkFlagAlignment.js +7 -7
  453. package/module/es5/Array/chunk.d.ts +4 -4
  454. package/module/es5/Array/chunk.js +4 -4
  455. package/module/es5/Array/compact.d.ts +8 -0
  456. package/module/es5/Array/compact.js +8 -0
  457. package/module/es5/Array/compareFunctionDefault.d.ts +13 -0
  458. package/module/es5/Array/compareFunctionDefault.js +13 -0
  459. package/module/es5/Array/drop.d.ts +5 -5
  460. package/module/es5/Array/drop.js +5 -5
  461. package/module/es5/Array/dualPivotQuickSort.d.ts +16 -0
  462. package/module/es5/Array/dualPivotQuickSort.js +201 -0
  463. package/module/es5/Array/first.d.ts +3 -3
  464. package/module/es5/Array/first.js +3 -3
  465. package/module/es5/Array/generateNumberArray.d.ts +6 -6
  466. package/module/es5/Array/generateNumberArray.js +6 -6
  467. package/module/es5/Array/getArraysCommon.d.ts +4 -4
  468. package/module/es5/Array/getArraysCommon.js +4 -4
  469. package/module/es5/Array/getArraysDiff.d.ts +4 -4
  470. package/module/es5/Array/getArraysDiff.js +4 -4
  471. package/module/es5/Array/groupBy.d.ts +8 -4
  472. package/module/es5/Array/groupBy.js +8 -4
  473. package/module/es5/Array/index.d.ts +1 -0
  474. package/module/es5/Array/index.js +11 -0
  475. package/module/es5/Array/insertionSort.d.ts +8 -7
  476. package/module/es5/Array/insertionSort.js +6 -6
  477. package/module/es5/Array/mergeSort.d.ts +6 -5
  478. package/module/es5/Array/mergeSort.js +9 -9
  479. package/module/es5/Array/quickSort.d.ts +12 -11
  480. package/module/es5/Array/quickSort.js +47 -10
  481. package/module/es5/Array/randomSelect.d.ts +5 -5
  482. package/module/es5/Array/randomSelect.js +5 -5
  483. package/module/es5/Array/range.d.ts +5 -5
  484. package/module/es5/Array/range.js +28 -10
  485. package/module/es5/Array/shuffle.d.ts +3 -3
  486. package/module/es5/Array/shuffle.js +3 -3
  487. package/module/es5/Array/shuffle2DArray.d.ts +4 -4
  488. package/module/es5/Array/shuffle2DArray.js +6 -6
  489. package/module/es5/Array/sum.d.ts +3 -3
  490. package/module/es5/Array/sum.js +4 -4
  491. package/module/es5/Array/timSort.d.ts +13 -11
  492. package/module/es5/Array/timSort.js +36 -9
  493. package/module/es5/Array/zip.d.ts +6 -3
  494. package/module/es5/Array/zip.js +6 -3
  495. package/module/es5/Array/zipLongest.d.ts +8 -5
  496. package/module/es5/Array/zipLongest.js +8 -5
  497. package/module/es5/Color/cmykToRgba.d.ts +7 -7
  498. package/module/es5/Color/cmykToRgba.js +12 -12
  499. package/module/es5/Color/hexaToRgba.d.ts +4 -3
  500. package/module/es5/Color/hexaToRgba.js +18 -6
  501. package/module/es5/Color/hslaToRgba.d.ts +7 -6
  502. package/module/es5/Color/hslaToRgba.js +19 -13
  503. package/module/es5/Color/rgbaToCmyk.d.ts +3 -3
  504. package/module/es5/Color/rgbaToCmyk.js +7 -3
  505. package/module/es5/Color/rgbaToHexA.d.ts +4 -4
  506. package/module/es5/Color/rgbaToHexA.js +5 -5
  507. package/module/es5/Color/rgbaToHsla.d.ts +4 -3
  508. package/module/es5/Color/rgbaToHsla.js +8 -3
  509. package/module/es5/Consts/clock.d.ts +11 -11
  510. package/module/es5/Consts/clock.js +11 -11
  511. package/module/es5/Consts/httpStatus/httpClientErrorStatus.d.ts +28 -0
  512. package/module/es5/Consts/httpStatus/httpClientErrorStatus.js +28 -0
  513. package/module/es5/Consts/httpStatus/httpInformationalStatus.d.ts +9 -0
  514. package/module/es5/Consts/httpStatus/httpInformationalStatus.js +9 -0
  515. package/module/es5/Consts/httpStatus/httpRedirectionStatus.d.ts +11 -0
  516. package/module/es5/Consts/httpStatus/httpRedirectionStatus.js +11 -0
  517. package/module/es5/Consts/httpStatus/httpServerErrorStatus.d.ts +10 -0
  518. package/module/es5/Consts/httpStatus/httpServerErrorStatus.js +10 -0
  519. package/module/es5/Consts/httpStatus/httpSuccessStatus.d.ts +11 -0
  520. package/module/es5/Consts/httpStatus/httpSuccessStatus.js +11 -0
  521. package/module/es5/Date/birthday.d.ts +7 -6
  522. package/module/es5/Date/birthday.js +7 -6
  523. package/module/es5/Date/dateRange.d.ts +7 -4
  524. package/module/es5/Date/dateRange.js +7 -4
  525. package/module/es5/Date/dayOfWeek.d.ts +4 -4
  526. package/module/es5/Date/dayOfWeek.js +4 -4
  527. package/module/es5/Date/format.d.ts +30 -4
  528. package/module/es5/Date/format.js +30 -4
  529. package/module/es5/Date/getDay.d.ts +8 -5
  530. package/module/es5/Date/getDay.js +8 -5
  531. package/module/es5/Date/getTimezoneOffsetString.d.ts +3 -3
  532. package/module/es5/Date/getTimezoneOffsetString.js +3 -3
  533. package/module/es5/Date/isLeapYear.d.ts +8 -3
  534. package/module/es5/Date/isLeapYear.js +8 -3
  535. package/module/es5/Date/new.d.ts +20 -20
  536. package/module/es5/Date/new.js +21 -21
  537. package/module/es5/Date/now.d.ts +7 -4
  538. package/module/es5/Date/now.js +7 -4
  539. package/module/es5/Error/safeExecute.d.ts +21 -0
  540. package/module/es5/Error/safeExecute.js +36 -0
  541. package/module/es5/IP/cidrToLong.d.ts +4 -3
  542. package/module/es5/IP/cidrToLong.js +7 -3
  543. package/module/es5/IP/cidrToSubnetMask.d.ts +4 -3
  544. package/module/es5/IP/cidrToSubnetMask.js +4 -3
  545. package/module/es5/IP/getIpClass.d.ts +3 -3
  546. package/module/es5/IP/getIpClass.js +44 -18
  547. package/module/es5/IP/getNetworkAddress.d.ts +5 -4
  548. package/module/es5/IP/getNetworkAddress.js +35 -6
  549. package/module/es5/IP/ipToBinaryString.d.ts +4 -3
  550. package/module/es5/IP/ipToBinaryString.js +44 -5
  551. package/module/es5/IP/ipToLong.d.ts +4 -3
  552. package/module/es5/IP/ipToLong.js +4 -3
  553. package/module/es5/IP/isInRange.d.ts +6 -5
  554. package/module/es5/IP/isInRange.js +34 -7
  555. package/module/es5/IP/isPrivateIp.d.ts +4 -3
  556. package/module/es5/IP/isPrivateIp.js +30 -17
  557. package/module/es5/IP/longToIp.d.ts +4 -3
  558. package/module/es5/IP/longToIp.js +17 -5
  559. package/module/es5/IP/subnetMaskToCidr.d.ts +4 -3
  560. package/module/es5/IP/subnetMaskToCidr.js +33 -12
  561. package/module/es5/Math/addition.d.ts +3 -3
  562. package/module/es5/Math/addition.js +3 -3
  563. package/module/es5/Math/average.d.ts +7 -4
  564. package/module/es5/Math/average.js +7 -4
  565. package/module/es5/Math/bitwise.d.ts +5 -5
  566. package/module/es5/Math/bitwise.js +5 -5
  567. package/module/es5/Math/calculator/calculator.d.ts +9 -7
  568. package/module/es5/Math/calculator/calculator.js +9 -7
  569. package/module/es5/Math/calculator/calculatorInitialization.d.ts +4 -3
  570. package/module/es5/Math/calculator/calculatorInitialization.js +6 -5
  571. package/module/es5/Math/calculator/convertCurrency.d.ts +6 -4
  572. package/module/es5/Math/calculator/convertCurrency.js +6 -4
  573. package/module/es5/Math/calculator/core.js +13 -13
  574. package/module/es5/Math/calculator/literalExpression.d.ts +5 -3
  575. package/module/es5/Math/calculator/literalExpression.js +12 -10
  576. package/module/es5/Math/degToRad.d.ts +3 -3
  577. package/module/es5/Math/degToRad.js +3 -3
  578. package/module/es5/Math/deviationValue.d.ts +5 -5
  579. package/module/es5/Math/deviationValue.js +5 -5
  580. package/module/es5/Math/division.d.ts +5 -5
  581. package/module/es5/Math/division.js +35 -21
  582. package/module/es5/Math/factorial.d.ts +3 -3
  583. package/module/es5/Math/factorial.js +3 -3
  584. package/module/es5/Math/factorize.d.ts +3 -3
  585. package/module/es5/Math/factorize.js +3 -3
  586. package/module/es5/Math/flexibleNumberConversion.d.ts +11 -11
  587. package/module/es5/Math/flexibleNumberConversion.js +19 -19
  588. package/module/es5/Math/gcd.d.ts +5 -5
  589. package/module/es5/Math/gcd.js +6 -6
  590. package/module/es5/Math/getDecimalLength.d.ts +7 -4
  591. package/module/es5/Math/getDecimalLength.js +9 -5
  592. package/module/es5/Math/lcm.d.ts +4 -4
  593. package/module/es5/Math/lcm.js +5 -5
  594. package/module/es5/Math/linearCongruentialGenerator.d.ts +6 -6
  595. package/module/es5/Math/linearCongruentialGenerator.js +6 -6
  596. package/module/es5/Math/mathConverter.d.ts +7 -3
  597. package/module/es5/Math/mathConverter.js +7 -3
  598. package/module/es5/Math/mathSeparator.d.ts +8 -3
  599. package/module/es5/Math/mathSeparator.js +8 -3
  600. package/module/es5/Math/max.d.ts +4 -3
  601. package/module/es5/Math/max.js +4 -3
  602. package/module/es5/Math/median.d.ts +3 -3
  603. package/module/es5/Math/median.js +3 -3
  604. package/module/es5/Math/min.d.ts +4 -3
  605. package/module/es5/Math/min.js +4 -3
  606. package/module/es5/Math/multiples.d.ts +4 -4
  607. package/module/es5/Math/multiples.js +4 -4
  608. package/module/es5/Math/multiplication.d.ts +3 -3
  609. package/module/es5/Math/multiplication.js +3 -3
  610. package/module/es5/Math/nCr.d.ts +7 -4
  611. package/module/es5/Math/nCr.js +7 -4
  612. package/module/es5/Math/nHr.d.ts +7 -4
  613. package/module/es5/Math/nHr.js +7 -4
  614. package/module/es5/Math/nPr.d.ts +7 -4
  615. package/module/es5/Math/nPr.js +7 -4
  616. package/module/es5/Math/primeFactorization.d.ts +6 -3
  617. package/module/es5/Math/primeFactorization.js +11 -8
  618. package/module/es5/Math/quotient.d.ts +7 -4
  619. package/module/es5/Math/quotient.js +7 -4
  620. package/module/es5/Math/radToDeg.d.ts +5 -3
  621. package/module/es5/Math/radToDeg.js +5 -3
  622. package/module/es5/Math/random.d.ts +6 -5
  623. package/module/es5/Math/random.js +6 -5
  624. package/module/es5/Math/reduce.d.ts +9 -4
  625. package/module/es5/Math/reduce.js +14 -8
  626. package/module/es5/Math/repeatedTrial.d.ts +5 -5
  627. package/module/es5/Math/repeatedTrial.js +5 -5
  628. package/module/es5/Math/roundOf.d.ts +7 -5
  629. package/module/es5/Math/roundOf.js +8 -6
  630. package/module/es5/Math/solveEquation.d.ts +12 -13
  631. package/module/es5/Math/solveEquation.js +34 -38
  632. package/module/es5/Math/standardDeviation.d.ts +8 -3
  633. package/module/es5/Math/standardDeviation.js +16 -7
  634. package/module/es5/Math/subtract.d.ts +10 -4
  635. package/module/es5/Math/subtract.js +12 -6
  636. package/module/es5/Math/toBaseN.d.ts +8 -6
  637. package/module/es5/Math/toBaseN.js +9 -7
  638. package/module/es5/Math/toCelsius.d.ts +5 -3
  639. package/module/es5/Math/toCelsius.js +5 -3
  640. package/module/es5/Math/toKelvin.d.ts +5 -3
  641. package/module/es5/Math/toKelvin.js +5 -3
  642. package/module/es5/Math/uuidv7.d.ts +10 -2
  643. package/module/es5/Math/uuidv7.js +10 -2
  644. package/module/es5/Math/valueSwap.d.ts +5 -4
  645. package/module/es5/Math/valueSwap.js +5 -4
  646. package/module/es5/Math/xoshiro256.d.ts +8 -3
  647. package/module/es5/Math/xoshiro256.js +8 -3
  648. package/module/es5/Object/has.d.ts +4 -4
  649. package/module/es5/Object/has.js +4 -4
  650. package/module/es5/Object/keyBy.d.ts +3 -3
  651. package/module/es5/Object/keyBy.js +4 -4
  652. package/module/es5/Object/pick.d.ts +6 -6
  653. package/module/es5/Object/pick.js +6 -6
  654. package/module/es5/Object/pickDeep.d.ts +7 -7
  655. package/module/es5/Object/pickDeep.js +7 -7
  656. package/module/es5/Simple/Array/quickSortSimple.d.ts +9 -7
  657. package/module/es5/Simple/Array/quickSortSimple.js +7 -6
  658. package/module/es5/Simple/Date/birthdaySimple.d.ts +4 -4
  659. package/module/es5/Simple/Date/birthdaySimple.js +4 -4
  660. package/module/es5/Simple/Date/dayOfWeekSimple.d.ts +4 -4
  661. package/module/es5/Simple/Date/dayOfWeekSimple.js +4 -4
  662. package/module/es5/Simple/Date/nowSimple.d.ts +3 -3
  663. package/module/es5/Simple/Date/nowSimple.js +3 -3
  664. package/module/es5/Simple/Math/deviationValueSimple.d.ts +10 -11
  665. package/module/es5/Simple/Math/deviationValueSimple.js +23 -12
  666. package/module/es5/String/deleteSpaces.d.ts +8 -4
  667. package/module/es5/String/deleteSpaces.js +8 -4
  668. package/module/es5/String/formatString.d.ts +8 -8
  669. package/module/es5/String/formatString.js +7 -7
  670. package/module/es5/String/fromBase64.d.ts +4 -3
  671. package/module/es5/String/fromBase64.js +14 -9
  672. package/module/es5/String/hasNoLetters.d.ts +9 -3
  673. package/module/es5/String/hasNoLetters.js +12 -6
  674. package/module/es5/String/padEnd.d.ts +5 -5
  675. package/module/es5/String/padEnd.js +5 -5
  676. package/module/es5/String/padStart.d.ts +11 -5
  677. package/module/es5/String/padStart.js +20 -5
  678. package/module/es5/String/randomString.d.ts +4 -4
  679. package/module/es5/String/randomString.js +4 -4
  680. package/module/es5/String/randomStringInitialization.d.ts +3 -3
  681. package/module/es5/String/randomStringInitialization.js +3 -3
  682. package/module/es5/String/reverseString.d.ts +3 -3
  683. package/module/es5/String/reverseString.js +3 -3
  684. package/module/es5/String/toBase64.d.ts +3 -3
  685. package/module/es5/String/toBase64.js +3 -3
  686. package/module/es5/String/toHalfWidth.d.ts +3 -3
  687. package/module/es5/String/toHalfWidth.js +3 -3
  688. package/module/es5/String/trimCharacters.d.ts +4 -4
  689. package/module/es5/String/trimCharacters.js +4 -4
  690. package/module/es5/String/trimEndCharacters.d.ts +10 -4
  691. package/module/es5/String/trimEndCharacters.js +10 -4
  692. package/module/es5/String/trimStartCharacters.d.ts +10 -4
  693. package/module/es5/String/trimStartCharacters.js +10 -4
  694. package/module/es5/Time/convertTime.d.ts +6 -6
  695. package/module/es5/Time/convertTime.js +12 -11
  696. package/module/es5/Tool/createPipeline.d.ts +8 -6
  697. package/module/es5/Tool/createPipeline.js +10 -8
  698. package/module/es5/Tool/parseJson.d.ts +7 -0
  699. package/module/es5/Tool/parseJson.js +7 -0
  700. package/module/es5/UA/extractBrowserFromUserAgent.d.ts +12 -0
  701. package/module/es5/UA/extractBrowserFromUserAgent.js +22 -5
  702. package/module/es5/UA/extractDeviceFromUserAgent.d.ts +12 -0
  703. package/module/es5/UA/extractDeviceFromUserAgent.js +12 -0
  704. package/module/es5/UA/extractOsFromUserAgent.d.ts +12 -0
  705. package/module/es5/UA/extractOsFromUserAgent.js +12 -0
  706. package/module/es5/UA/parseUserAgent.d.ts +16 -0
  707. package/module/es5/UA/parseUserAgent.js +16 -0
  708. package/module/es5/Unit/unitConverterInitialization.d.ts +15 -0
  709. package/module/es5/Unit/unitConverterInitialization.js +15 -0
  710. package/module/es5/Validate/array/core.d.ts +12 -0
  711. package/module/es5/Validate/array/core.js +15 -4
  712. package/module/es5/Validate/boolean/core.d.ts +9 -0
  713. package/module/es5/Validate/boolean/core.js +10 -0
  714. package/module/es5/Validate/core/index.d.ts +10 -0
  715. package/module/es5/Validate/core/index.js +13 -1
  716. package/module/es5/Validate/isArray.d.ts +3 -3
  717. package/module/es5/Validate/isArray.js +3 -3
  718. package/module/es5/Validate/isBrowser.d.ts +1 -1
  719. package/module/es5/Validate/isBrowser.js +1 -1
  720. package/module/es5/Validate/isBun.d.ts +1 -1
  721. package/module/es5/Validate/isBun.js +1 -2
  722. package/module/es5/Validate/isDictionaryObject.d.ts +3 -3
  723. package/module/es5/Validate/isDictionaryObject.js +3 -3
  724. package/module/es5/Validate/isDouble.d.ts +4 -4
  725. package/module/es5/Validate/isDouble.js +4 -4
  726. package/module/es5/Validate/isNode.d.ts +1 -1
  727. package/module/es5/Validate/isNode.js +1 -1
  728. package/module/es5/Validate/isNodeWebkit.d.ts +1 -1
  729. package/module/es5/Validate/isNodeWebkit.js +1 -1
  730. package/module/es5/Validate/isNotEmpty.d.ts +3 -3
  731. package/module/es5/Validate/isNotEmpty.js +4 -4
  732. package/module/es5/Validate/isNumber.d.ts +4 -4
  733. package/module/es5/Validate/isNumber.js +11 -4
  734. package/module/es5/Validate/isPerfectSquare.d.ts +8 -3
  735. package/module/es5/Validate/isPerfectSquare.js +8 -3
  736. package/module/es5/Validate/isPrimeNumber.d.ts +7 -3
  737. package/module/es5/Validate/isPrimeNumber.js +8 -4
  738. package/module/es5/Validate/isValueNaN.d.ts +7 -5
  739. package/module/es5/Validate/isValueNaN.js +7 -5
  740. package/module/es5/Validate/number/core.d.ts +11 -0
  741. package/module/es5/Validate/number/core.js +12 -0
  742. package/module/es5/Validate/number/double.d.ts +9 -0
  743. package/module/es5/Validate/number/double.js +10 -0
  744. package/module/es5/Validate/number/even.d.ts +9 -0
  745. package/module/es5/Validate/number/even.js +10 -0
  746. package/module/es5/Validate/number/maxValue.d.ts +10 -0
  747. package/module/es5/Validate/number/maxValue.js +11 -0
  748. package/module/es5/Validate/number/minValue.d.ts +10 -0
  749. package/module/es5/Validate/number/minValue.js +11 -0
  750. package/module/es5/Validate/number/prime.d.ts +9 -0
  751. package/module/es5/Validate/number/prime.js +10 -0
  752. package/module/es5/Validate/object/core.d.ts +11 -0
  753. package/module/es5/Validate/object/core.js +12 -0
  754. package/module/es5/Validate/string/core.d.ts +11 -0
  755. package/module/es5/Validate/string/core.js +12 -0
  756. package/module/es5/Validate/string/email.d.ts +9 -0
  757. package/module/es5/Validate/string/email.js +11 -1
  758. package/module/es5/Validate/string/length.d.ts +11 -0
  759. package/module/es5/Validate/string/length.js +12 -0
  760. package/module/es5/Validate/string/maxLength.d.ts +10 -0
  761. package/module/es5/Validate/string/maxLength.js +11 -0
  762. package/module/es5/Validate/string/minLength.d.ts +10 -0
  763. package/module/es5/Validate/string/minLength.js +11 -0
  764. package/module/es5/Validate/string/numberString.d.ts +9 -0
  765. package/module/es5/Validate/string/numberString.js +10 -0
  766. package/module/es5/Validate/string/regexMatch.d.ts +10 -0
  767. package/module/es5/Validate/string/regexMatch.js +11 -0
  768. package/module/es5/Validate/string/uuid.d.ts +8 -3
  769. package/module/es5/Validate/string/uuid.js +10 -4
  770. package/module/es5/Validate/type.d.ts +22 -0
  771. package/module/es5/tests/integration/Array/drop-and-first.test.js +20 -0
  772. package/module/es5/tests/integration/Tool/parseJson-and-Validate.test.js +68 -14
  773. package/module/es5/tests/unit/Array/arraysJoin.test.js +15 -3
  774. package/module/es5/tests/unit/Array/checkFlagAlignment.test.js +10 -10
  775. package/module/es5/tests/unit/Array/compact.test.js +17 -17
  776. package/module/es5/tests/unit/Array/compareFunctionDefault.test.d.ts +1 -0
  777. package/module/es5/tests/unit/Array/compareFunctionDefault.test.js +29 -0
  778. package/module/es5/tests/unit/Array/drop.test.js +10 -10
  779. package/module/es5/tests/unit/Array/dualPivotQuickSort.test.d.ts +1 -0
  780. package/module/es5/tests/unit/Array/dualPivotQuickSort.test.js +87 -0
  781. package/module/es5/tests/unit/Array/generateNumberArray.test.js +6 -6
  782. package/module/es5/tests/unit/Array/getArraysCommon.test.js +36 -4
  783. package/module/es5/tests/unit/Array/getArraysDiff.test.js +14 -14
  784. package/module/es5/tests/unit/Array/groupBy.test.js +6 -6
  785. package/module/es5/tests/unit/Array/insertionSort.test.js +8 -8
  786. package/module/es5/tests/unit/Array/mergeSort.test.js +34 -5
  787. package/module/es5/tests/unit/Array/quickSort.test.js +76 -11
  788. package/module/es5/tests/unit/Array/randomSelect.test.js +11 -6
  789. package/module/es5/tests/unit/Array/range.test.js +25 -4
  790. package/module/es5/tests/unit/Array/shuffle.test.js +53 -6
  791. package/module/es5/tests/unit/Array/shuffle2DArray.test.js +51 -8
  792. package/module/es5/tests/unit/Array/sum.test.js +40 -2
  793. package/module/es5/tests/unit/Array/timSort.test.js +89 -9
  794. package/module/es5/tests/unit/Array/zip.test.js +48 -9
  795. package/module/es5/tests/unit/Array/zipLongest.test.js +52 -9
  796. package/module/es5/tests/unit/Color/cmykToRgba.test.js +3 -3
  797. package/module/es5/tests/unit/Color/hexaToRgba.test.js +53 -1
  798. package/module/es5/tests/unit/Color/hslaToRgba.test.js +35 -53
  799. package/module/es5/tests/unit/Color/rgbaToCmyk.test.js +67 -1
  800. package/module/es5/tests/unit/Color/rgbaToHsla.test.js +91 -1
  801. package/module/es5/tests/unit/Consts/clock.test.js +51 -18
  802. package/module/es5/tests/unit/Consts/httpStatus.test.js +9 -0
  803. package/module/es5/tests/unit/Date/birthday.test.d.ts +1 -0
  804. package/module/es5/tests/unit/Date/birthday.test.js +31 -0
  805. package/module/es5/tests/unit/Date/dateRange.test.d.ts +1 -0
  806. package/module/es5/tests/unit/Date/dateRange.test.js +40 -0
  807. package/module/es5/tests/unit/Date/dayOfWeek.test.js +5 -5
  808. package/module/es5/tests/unit/Date/format.test.js +22 -0
  809. package/module/es5/tests/unit/Date/getDay.test.d.ts +1 -0
  810. package/module/es5/tests/unit/Date/getDay.test.js +40 -0
  811. package/module/es5/tests/unit/Date/getTimezoneOffsetString.test.js +3 -3
  812. package/module/es5/tests/unit/Date/isLeapYear.test.d.ts +1 -0
  813. package/module/es5/tests/unit/Date/isLeapYear.test.js +30 -0
  814. package/module/es5/tests/unit/Date/new.test.d.ts +1 -0
  815. package/module/es5/tests/unit/Date/new.test.js +39 -0
  816. package/module/es5/tests/unit/Date/now.test.d.ts +1 -0
  817. package/module/es5/tests/unit/Date/now.test.js +42 -0
  818. package/module/es5/tests/unit/Error/safeExecute.test.js +69 -15
  819. package/module/es5/tests/unit/IP/cidrToLong.test.js +27 -5
  820. package/module/es5/tests/unit/IP/cidrToSubnetMask.test.js +29 -10
  821. package/module/es5/tests/unit/IP/getIpClass.test.js +29 -18
  822. package/module/es5/tests/unit/IP/getNetworkAddress.test.js +35 -14
  823. package/module/es5/tests/unit/IP/ipToBinaryString.test.js +38 -9
  824. package/module/es5/tests/unit/IP/ipToLong.test.js +27 -13
  825. package/module/es5/tests/unit/IP/isInRange.test.js +75 -4
  826. package/module/es5/tests/unit/IP/isPrivateIp.test.js +18 -12
  827. package/module/es5/tests/unit/IP/longToIp.test.d.ts +1 -0
  828. package/module/es5/tests/unit/IP/longToIp.test.js +39 -0
  829. package/module/es5/tests/unit/IP/subnetMaskToCidr.test.js +34 -20
  830. package/module/es5/tests/unit/Math/average.test.js +40 -18
  831. package/module/es5/tests/unit/Math/bitwise.test.js +14 -14
  832. package/module/es5/tests/unit/Math/calculator/calculator.test.js +9 -9
  833. package/module/es5/tests/unit/Math/calculator/calculatorInitialization.test.js +16 -5
  834. package/module/es5/tests/unit/Math/calculator/convertCurrency.test.js +12 -12
  835. package/module/es5/tests/unit/Math/calculator/literalExpression.test.js +8 -8
  836. package/module/es5/tests/unit/Math/degToRad.test.js +10 -10
  837. package/module/es5/tests/unit/Math/deviationValue.test.js +12 -12
  838. package/module/es5/tests/unit/Math/division.test.js +72 -25
  839. package/module/es5/tests/unit/Math/factorial.test.js +4 -4
  840. package/module/es5/tests/unit/Math/factorize.test.js +34 -9
  841. package/module/es5/tests/unit/Math/flexibleNumberConversion.test.js +75 -75
  842. package/module/es5/tests/unit/Math/gcd.test.js +5 -5
  843. package/module/es5/tests/unit/Math/getDecimalLength.test.js +40 -4
  844. package/module/es5/tests/unit/Math/lcm.test.js +16 -9
  845. package/module/es5/tests/unit/Math/linearCongruentialGenerator.test.js +4 -4
  846. package/module/es5/tests/unit/Math/mathConverter.test.js +13 -13
  847. package/module/es5/tests/unit/Math/mathSeparator.test.js +23 -5
  848. package/module/es5/tests/unit/Math/max.test.js +18 -3
  849. package/module/es5/tests/unit/Math/median.test.js +4 -4
  850. package/module/es5/tests/unit/Math/min.test.js +18 -3
  851. package/module/es5/tests/unit/Math/multiples.test.js +26 -10
  852. package/module/es5/tests/unit/Math/multiplication.test.js +43 -9
  853. package/module/es5/tests/unit/Math/nCr.test.js +27 -14
  854. package/module/es5/tests/unit/Math/nHr.test.js +28 -15
  855. package/module/es5/tests/unit/Math/nPr.test.js +31 -14
  856. package/module/es5/tests/unit/Math/primeFactorization.test.js +79 -8
  857. package/module/es5/tests/unit/Math/quotient.test.js +32 -10
  858. package/module/es5/tests/unit/Math/radToDeg.test.js +39 -38
  859. package/module/es5/tests/unit/Math/random.test.js +55 -17
  860. package/module/es5/tests/unit/Math/reduce.test.js +87 -8
  861. package/module/es5/tests/unit/Math/repeatedTrial.test.js +35 -5
  862. package/module/es5/tests/unit/Math/roundOf.test.js +36 -11
  863. package/module/es5/tests/unit/Math/solveEquation.test.js +20 -20
  864. package/module/es5/tests/unit/Math/standardDeviation.test.js +19 -2
  865. package/module/es5/tests/unit/Math/subtract.test.js +14 -2
  866. package/module/es5/tests/unit/Math/toBaseN.test.js +36 -19
  867. package/module/es5/tests/unit/Math/toCelsius.test.js +14 -2
  868. package/module/es5/tests/unit/Math/toKelvin.test.js +14 -2
  869. package/module/es5/tests/unit/Math/uuidv7.test.js +6 -6
  870. package/module/es5/tests/unit/Math/valueSwap.test.js +24 -6
  871. package/module/es5/tests/unit/Math/xoshiro256.test.js +22 -11
  872. package/module/es5/tests/unit/Object/keyBy.test.js +6 -6
  873. package/module/es5/tests/unit/Object/pick.test.js +11 -11
  874. package/module/es5/tests/unit/Object/pickDeep.test.js +15 -15
  875. package/module/es5/tests/unit/Simple/Array/quickSortSimple.test.js +4 -4
  876. package/module/es5/tests/unit/Simple/Math/deviationValueSimple.test.js +39 -3
  877. package/module/es5/tests/unit/String/deleteSpaces.test.d.ts +1 -0
  878. package/module/es5/tests/unit/String/deleteSpaces.test.js +22 -0
  879. package/module/es5/tests/unit/String/formatString.test.js +41 -14
  880. package/module/es5/tests/unit/String/fromBase64.test.js +19 -8
  881. package/module/es5/tests/unit/String/hasNoLetters.test.js +20 -24
  882. package/module/es5/tests/unit/String/padEnd.test.js +5 -5
  883. package/module/es5/tests/unit/String/padStart.test.js +32 -19
  884. package/module/es5/tests/unit/String/randomString.test.js +3 -3
  885. package/module/es5/tests/unit/String/randomStringInitialization.test.js +2 -2
  886. package/module/es5/tests/unit/String/reverseString.test.js +10 -12
  887. package/module/es5/tests/unit/String/toBase64.test.js +5 -5
  888. package/module/es5/tests/unit/String/toHalfWidth.test.js +3 -3
  889. package/module/es5/tests/unit/String/trimCharacters.test.js +4 -4
  890. package/module/es5/tests/unit/String/trimEndCharacters.test.js +17 -7
  891. package/module/es5/tests/unit/String/trimStartCharacters.test.js +23 -10
  892. package/module/es5/tests/unit/Time/convertTime.test.js +40 -46
  893. package/module/es5/tests/unit/Tool/createPipeline.test.js +15 -15
  894. package/module/es5/tests/unit/UA/extractBrowserFromUserAgent.test.d.ts +1 -0
  895. package/module/es5/tests/unit/UA/extractBrowserFromUserAgent.test.js +47 -0
  896. package/module/es5/tests/unit/UA/extractDeviceFromUserAgent.test.d.ts +1 -0
  897. package/module/es5/tests/unit/UA/extractDeviceFromUserAgent.test.js +55 -0
  898. package/module/es5/tests/unit/UA/extractOsFromUserAgent.test.d.ts +1 -0
  899. package/module/es5/tests/unit/UA/extractOsFromUserAgent.test.js +57 -0
  900. package/module/es5/tests/unit/Unit/unitConverterInitialization.test.js +27 -25
  901. package/module/es5/tests/unit/Validate/array/core.test.js +39 -10
  902. package/module/es5/tests/unit/Validate/core/core.test.d.ts +1 -0
  903. package/module/es5/tests/unit/Validate/core/core.test.js +87 -0
  904. package/module/es5/tests/unit/Validate/isArray.test.js +11 -0
  905. package/module/es5/tests/unit/Validate/isDictionaryObject.test.js +15 -1
  906. package/module/es5/tests/unit/Validate/isDouble.test.js +21 -4
  907. package/module/es5/tests/unit/Validate/isNotEmpty.test.js +3 -3
  908. package/module/es5/tests/unit/Validate/isNumber.test.js +67 -29
  909. package/module/es5/tests/unit/Validate/isPerfectSquare.test.js +5 -0
  910. package/module/es5/tests/unit/Validate/isPrimeNumber.test.js +14 -4
  911. package/module/es5/tests/unit/Validate/isValueNaN.test.js +50 -11
  912. package/module/es5/tests/unit/Validate/string/uuid.test.js +13 -13
  913. package/module/es5/tsconfig.tsbuildinfo +1 -1
  914. package/module/es5/types/array/compareFunction.d.ts +2 -0
  915. package/module/es5/types/array/compareFunction.js +5 -0
  916. package/module/es5/types/time/timeUnit.d.ts +1 -1
  917. package/module/types/array/compareFunction.d.ts +2 -0
  918. package/module/types/array/compareFunction.js +2 -0
  919. package/module/types/array/compareFunction.js.map +1 -0
  920. package/module/types/time/timeUnit.d.ts +1 -1
  921. package/package.json +2 -1
@@ -4,6 +4,7 @@ export * from "./checkFlagAlignment";
4
4
  export * from "./chunk";
5
5
  export * from "./compact";
6
6
  export * from "./drop";
7
+ export * from "./dualPivotQuickSort";
7
8
  export * from "./first";
8
9
  export * from "./generateNumberArray";
9
10
  export * from "./getArraysCommon";
@@ -4,6 +4,7 @@ export * from "./checkFlagAlignment";
4
4
  export * from "./chunk";
5
5
  export * from "./compact";
6
6
  export * from "./drop";
7
+ export * from "./dualPivotQuickSort";
7
8
  export * from "./first";
8
9
  export * from "./generateNumberArray";
9
10
  export * from "./getArraysCommon";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Array/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Array/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC"}
@@ -1,11 +1,12 @@
1
+ import type { CompareFunction } from "../types/array/compareFunction";
1
2
  /**
2
- * 挿入ソートを使用して配列をソート
3
+ * Sort an array using insertion sort algorithm
3
4
  *
4
- * @param array ソートする配列
5
- * @param compareFunction 比較関数
6
- * @param start ソートを開始する配列のインデックス
7
- * @param end ソートを終了する配列のインデックス
8
- * @returns ソートされた配列
5
+ * @param array Array to sort
6
+ * @param compareFunction Function to compare two elements
7
+ * @param start Starting index for sorting (inclusive)
8
+ * @param end Ending index for sorting (inclusive)
9
+ * @returns Sorted array
9
10
  *
10
11
  * @example
11
12
  * const numbers = [4, 2, 7, 1, 3];
@@ -19,4 +20,4 @@
19
20
  * const numbers = [4, 2, 7, 1, 3];
20
21
  * insertionSort(numbers, undefined, 1, 3); // [4, 1, 2, 7, 3]
21
22
  */
22
- export declare const insertionSort: <T>(array: T[], compareFunction?: (a: T, b: T) => number, start?: number, end?: number) => T[];
23
+ export declare const insertionSort: <T>(array: T[], compareFunction?: CompareFunction<T>, start?: number, end?: number) => T[];
@@ -1,12 +1,12 @@
1
1
  import { compareFunctionDefault } from "./compareFunctionDefault";
2
2
  /**
3
- * 挿入ソートを使用して配列をソート
3
+ * Sort an array using insertion sort algorithm
4
4
  *
5
- * @param array ソートする配列
6
- * @param compareFunction 比較関数
7
- * @param start ソートを開始する配列のインデックス
8
- * @param end ソートを終了する配列のインデックス
9
- * @returns ソートされた配列
5
+ * @param array Array to sort
6
+ * @param compareFunction Function to compare two elements
7
+ * @param start Starting index for sorting (inclusive)
8
+ * @param end Ending index for sorting (inclusive)
9
+ * @returns Sorted array
10
10
  *
11
11
  * @example
12
12
  * const numbers = [4, 2, 7, 1, 3];
@@ -1 +1 @@
1
- {"version":3,"file":"insertionSort.js","sourceRoot":"","sources":["../../src/Array/insertionSort.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,KAAU,EACV,kBAA0C,CAAA,sBAAyB,CAAA,EACnE,KAAK,GAAG,CAAC,EACT,MAAc,KAAK,CAAC,MAAM,GAAG,CAAC,EACzB,EAAE;IACP,KAAK,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,MAAM,GAAG,KAAK,IAAI,eAAe,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACxE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAClC,MAAM,EAAE,CAAC;QACX,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACzB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
1
+ {"version":3,"file":"insertionSort.js","sourceRoot":"","sources":["../../src/Array/insertionSort.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAIlE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,KAAU,EACV,kBAAsC,CAAA,sBAAyB,CAAA,EAC/D,KAAK,GAAG,CAAC,EACT,MAAc,KAAK,CAAC,MAAM,GAAG,CAAC,EACzB,EAAE;IACP,KAAK,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,MAAM,GAAG,KAAK,IAAI,eAAe,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACxE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAClC,MAAM,EAAE,CAAC;QACX,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACzB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
@@ -1,8 +1,9 @@
1
+ import type { CompareFunction } from "../types/array/compareFunction";
1
2
  /**
2
- * マージソート
3
- * @param {T[]} array 配列
4
- * @param {(a: T, b: T) => number} compareFunction 比較関数
5
- * @returns T[]
3
+ * Merge sort implementation
4
+ * @param {T[]} array Array to sort
5
+ * @param {(a: T, b: T) => number} compareFunction Comparison function
6
+ * @returns {T[]} Sorted array
6
7
  * @example mergeSort([1, 3, 2, 4, 5], (a, b) => a - b); // [1, 2, 3, 4, 5]
7
8
  */
8
- export declare const mergeSort: <T>(array: T[], compareFunction?: (a: T, b: T) => number) => T[];
9
+ export declare const mergeSort: <T>(array: T[], compareFunction?: CompareFunction<T>) => T[];
@@ -1,9 +1,9 @@
1
1
  import { compareFunctionDefault } from "./compareFunctionDefault";
2
2
  /**
3
- * マージソート
4
- * @param {T[]} array 配列
5
- * @param {(a: T, b: T) => number} compareFunction 比較関数
6
- * @returns T[]
3
+ * Merge sort implementation
4
+ * @param {T[]} array Array to sort
5
+ * @param {(a: T, b: T) => number} compareFunction Comparison function
6
+ * @returns {T[]} Sorted array
7
7
  * @example mergeSort([1, 3, 2, 4, 5], (a, b) => a - b); // [1, 2, 3, 4, 5]
8
8
  */
9
9
  export const mergeSort = (array, compareFunction = compareFunctionDefault) => {
@@ -16,11 +16,11 @@ export const mergeSort = (array, compareFunction = compareFunctionDefault) => {
16
16
  return merge(mergeSort(left, compareFunction), mergeSort(right, compareFunction), compareFunction);
17
17
  };
18
18
  /**
19
- * 2つの配列をマージする関数
20
- * @param left - マージする左の配列
21
- * @param right - マージする右の配列
22
- * @param compareFunction - 比較関数
23
- * @returns マージされた新しい配列
19
+ * Helper function to merge two sorted arrays
20
+ * @param left Left array to merge
21
+ * @param right Right array to merge
22
+ * @param compareFunction Comparison function to determine order
23
+ * @returns New merged array in sorted order
24
24
  */
25
25
  function merge(left, right, compareFunction) {
26
26
  const array = [];
@@ -1 +1 @@
1
- {"version":3,"file":"mergeSort.js","sourceRoot":"","sources":["../../src/Array/mergeSort.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,KAAU,EACV,kBAA0C,sBAAsB,EAC3D,EAAE;IACP,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAElC,OAAO,KAAK,CACV,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC,EAChC,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC,EACjC,eAAe,CAChB,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,SAAS,KAAK,CACZ,IAAS,EACT,KAAU,EACV,eAAuC;IAEvC,MAAM,KAAK,GAAQ,EAAE,CAAC;IACtB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACrD,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"mergeSort.js","sourceRoot":"","sources":["../../src/Array/mergeSort.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAIlE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,KAAU,EACV,kBAAsC,sBAAsB,EACvD,EAAE;IACP,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAElC,OAAO,KAAK,CACV,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC,EAChC,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC,EACjC,eAAe,CAChB,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,SAAS,KAAK,CACZ,IAAS,EACT,KAAU,EACV,eAAuC;IAEvC,MAAM,KAAK,GAAQ,EAAE,CAAC;IACtB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACrD,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACtE,CAAC"}
@@ -1,14 +1,15 @@
1
- type CompareFunction<T> = (a: T, b: T) => number;
1
+ import type { CompareFunction } from "../types/array/compareFunction";
2
2
  /**
3
- * 配列を高速にソート
4
- * QuickSortとInsertionSortを組み合わせたアルゴリズムで配列を高速にソートします
5
- * @param {T[]} array 配列
6
- * @param {CompareFunction<T>} compareFunction 比較関数
7
- * @param {number} startIndex 開始インデックス
8
- * @param {number} endIndex 終了インデックス
9
- * @param {number} insertionSortThreshold 挿入ソートの閾値
10
- * @returns T[]
11
- * @example quickSort([1, 3, 2, 4, 5], (a, b) => a - b); // [1, 2, 3, 4, 5]
3
+ * Sorts an array using a hybrid algorithm combining QuickSort and InsertionSort
4
+ * @param {T[]} array Array to sort
5
+ * @param {CompareFunction<T>} compareFunction Comparison function that returns negative if a < b, zero if a = b, positive if a > b
6
+ * @param {number} startIndex Starting index for the sort range (default: 0)
7
+ * @param {number} endIndex Ending index for the sort range (default: array.length - 1)
8
+ * @param {number} insertionSortThreshold Threshold for switching to insertion sort (default: 10)
9
+ * @returns {T[]} Sorted array
10
+ * @example
11
+ * quickSort([1, 3, 2, 4, 5]); // [1, 2, 3, 4, 5]
12
+ * quickSort([1, 3, 2], (a, b) => b - a); // [3, 2, 1]
13
+ * quickSort(['b', 'a', 'c']); // ['a', 'b', 'c']
12
14
  */
13
15
  export declare const quickSort: <T>(array: T[], compareFunction?: CompareFunction<T>, startIndex?: number, endIndex?: number, insertionSortThreshold?: number) => T[];
14
- export {};
@@ -1,4 +1,13 @@
1
1
  import { compareFunctionDefault } from "./compareFunctionDefault";
2
+ /**
3
+ * Finds the median value among three elements in the array
4
+ * @param array The array containing the elements
5
+ * @param a Index of first element
6
+ * @param b Index of second element
7
+ * @param c Index of third element
8
+ * @param compareFunction Function to compare elements
9
+ * @returns The median value among the three elements
10
+ */
2
11
  const medianOfThree = (array, a, b, c, compareFunction) => {
3
12
  const ab = compareFunction(array[a], array[b]);
4
13
  if (ab < 0) {
@@ -20,6 +29,14 @@ const medianOfThree = (array, a, b, c, compareFunction) => {
20
29
  }
21
30
  return array[b];
22
31
  };
32
+ /**
33
+ * Partitions the array around a pivot element using median-of-three strategy
34
+ * @param array Array to partition
35
+ * @param low Starting index of the partition range
36
+ * @param high Ending index of the partition range
37
+ * @param compareFunction Function to compare elements
38
+ * @returns Index of the partition point
39
+ */
23
40
  const partition = (array, low, high, compareFunction) => {
24
41
  const pivot = medianOfThree(array, low, Math.floor((low + high) / 2), high, compareFunction);
25
42
  let left = low - 1;
@@ -37,6 +54,13 @@ const partition = (array, low, high, compareFunction) => {
37
54
  [array[left], array[right]] = [array[right], array[left]];
38
55
  }
39
56
  };
57
+ /**
58
+ * Sorts a portion of the array using insertion sort algorithm
59
+ * @param array Array to sort
60
+ * @param low Starting index of the range to sort
61
+ * @param high Ending index of the range to sort
62
+ * @param compareFunction Function to compare elements
63
+ */
40
64
  const insertionSort = (array, low, high, compareFunction) => {
41
65
  for (let index = low + 1; index <= high; index++) {
42
66
  const key = array[index];
@@ -49,6 +73,14 @@ const insertionSort = (array, low, high, compareFunction) => {
49
73
  array[currentIndex + 1] = key;
50
74
  }
51
75
  };
76
+ /**
77
+ * Internal implementation of the quicksort algorithm with tail-call optimization
78
+ * @param array Array to sort
79
+ * @param lowInit Initial low index of the range to sort
80
+ * @param highInit Initial high index of the range to sort
81
+ * @param compareFunction Function to compare elements
82
+ * @param insertionSortThreshold Size threshold for switching to insertion sort
83
+ */
52
84
  const sortImpl = (array, lowInit, highInit, compareFunction, insertionSortThreshold) => {
53
85
  let low = lowInit;
54
86
  let high = highInit;
@@ -69,18 +101,20 @@ const sortImpl = (array, lowInit, highInit, compareFunction, insertionSortThresh
69
101
  }
70
102
  };
71
103
  /**
72
- * 配列を高速にソート
73
- * QuickSortとInsertionSortを組み合わせたアルゴリズムで配列を高速にソートします
74
- * @param {T[]} array 配列
75
- * @param {CompareFunction<T>} compareFunction 比較関数
76
- * @param {number} startIndex 開始インデックス
77
- * @param {number} endIndex 終了インデックス
78
- * @param {number} insertionSortThreshold 挿入ソートの閾値
79
- * @returns T[]
80
- * @example quickSort([1, 3, 2, 4, 5], (a, b) => a - b); // [1, 2, 3, 4, 5]
104
+ * Sorts an array using a hybrid algorithm combining QuickSort and InsertionSort
105
+ * @param {T[]} array Array to sort
106
+ * @param {CompareFunction<T>} compareFunction Comparison function that returns negative if a < b, zero if a = b, positive if a > b
107
+ * @param {number} startIndex Starting index for the sort range (default: 0)
108
+ * @param {number} endIndex Ending index for the sort range (default: array.length - 1)
109
+ * @param {number} insertionSortThreshold Threshold for switching to insertion sort (default: 10)
110
+ * @returns {T[]} Sorted array
111
+ * @example
112
+ * quickSort([1, 3, 2, 4, 5]); // [1, 2, 3, 4, 5]
113
+ * quickSort([1, 3, 2], (a, b) => b - a); // [3, 2, 1]
114
+ * quickSort(['b', 'a', 'c']); // ['a', 'b', 'c']
81
115
  */
82
116
  export const quickSort = (array, compareFunction = (compareFunctionDefault), startIndex = 0, endIndex = array.length - 1, insertionSortThreshold = 10) => {
83
- // 有効な範囲内でのみソートを行う
117
+ // Only sort within valid range
84
118
  const validStartIndex = Math.max(0, Math.min(startIndex, array.length - 1));
85
119
  const validEndIndex = Math.max(validStartIndex, Math.min(endIndex, array.length - 1));
86
120
  sortImpl(array, validStartIndex, validEndIndex, compareFunction, insertionSortThreshold);
@@ -1 +1 @@
1
- {"version":3,"file":"quickSort.js","sourceRoot":"","sources":["../../src/Array/quickSort.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quickSort.js","sourceRoot":"","sources":["../../src/Array/quickSort.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  /**
2
- * 配列から指定された数の要素をランダムに選択する
3
- * @param array 元の配列
4
- * @param count 選択する要素の数
5
- * @param allowDuplicates 重複を許すかどうか (デフォルトは false)
6
- * @returns ランダムに選択された要素の配列
2
+ * Randomly selects a specified number of elements from an array
3
+ * @param array Source array
4
+ * @param count Number of elements to select
5
+ * @param allowDuplicates Whether to allow duplicate selections (default: false)
6
+ * @returns Array of randomly selected elements
7
7
  * @example randomSelect([1, 2, 3, 4, 5], 2); // [3, 1]
8
8
  */
9
9
  export declare const randomSelect: <T>(array: T[], count: number, allowDuplicates?: boolean) => T[];
@@ -1,9 +1,9 @@
1
1
  /**
2
- * 配列から指定された数の要素をランダムに選択する
3
- * @param array 元の配列
4
- * @param count 選択する要素の数
5
- * @param allowDuplicates 重複を許すかどうか (デフォルトは false)
6
- * @returns ランダムに選択された要素の配列
2
+ * Randomly selects a specified number of elements from an array
3
+ * @param array Source array
4
+ * @param count Number of elements to select
5
+ * @param allowDuplicates Whether to allow duplicate selections (default: false)
6
+ * @returns Array of randomly selected elements
7
7
  * @example randomSelect([1, 2, 3, 4, 5], 2); // [3, 1]
8
8
  */
9
9
  export const randomSelect = (array, count, allowDuplicates = false) => {
@@ -1,9 +1,9 @@
1
1
  /**
2
- * 連続した数値の配列を生成する
3
- * @param start 開始数値
4
- * @param end 終了数値 (省略した場合は0からstartまでの配列を生成)
5
- * @param step ステップ数 (省略した場合は1)
6
- * @returns 連続した数値の配列
2
+ * Generates an array of sequential numbers
3
+ * @param start Starting number
4
+ * @param end Ending number (if omitted, generates array from 0 to start)
5
+ * @param step Step value (defaults to 1)
6
+ * @returns Array of sequential numbers
7
7
  * @example range(5); // [0, 1, 2, 3, 4]
8
8
  * @example range(2, 10, 2); // [2, 4, 6, 8]
9
9
  */
@@ -1,22 +1,38 @@
1
1
  /**
2
- * 連続した数値の配列を生成する
3
- * @param start 開始数値
4
- * @param end 終了数値 (省略した場合は0からstartまでの配列を生成)
5
- * @param step ステップ数 (省略した場合は1)
6
- * @returns 連続した数値の配列
2
+ * Generates an array of sequential numbers
3
+ * @param start Starting number
4
+ * @param end Ending number (if omitted, generates array from 0 to start)
5
+ * @param step Step value (defaults to 1)
6
+ * @returns Array of sequential numbers
7
7
  * @example range(5); // [0, 1, 2, 3, 4]
8
8
  * @example range(2, 10, 2); // [2, 4, 6, 8]
9
9
  */
10
10
  const range = (start, end, step = 1) => {
11
11
  const array = [];
12
- if (end) {
13
- for (let index = start; index < end; index += step) {
14
- array.push(index);
12
+ // Handle invalid step
13
+ if (step === 0) {
14
+ return array;
15
+ }
16
+ const actualStart = end === undefined ? 0 : start;
17
+ const actualEnd = end === undefined ? start : end;
18
+ // Return empty array if invalid range
19
+ if ((step > 0 && actualStart >= actualEnd) ||
20
+ (step < 0 && actualStart <= actualEnd)) {
21
+ return array;
22
+ }
23
+ // Handle both positive and negative steps
24
+ if (step > 0) {
25
+ for (let index = actualStart; index < actualEnd; index += step) {
26
+ // Handle floating point precision
27
+ const roundedValue = Number((Math.round(index * 1e10) / 1e10).toFixed(10));
28
+ array.push(roundedValue);
15
29
  }
16
30
  }
17
31
  else {
18
- for (let index = 0; index < start; index += step) {
19
- array.push(index);
32
+ for (let index = actualStart; index > actualEnd; index += step) {
33
+ // Handle floating point precision
34
+ const roundedValue = Number((Math.round(index * 1e10) / 1e10).toFixed(10));
35
+ array.push(roundedValue);
20
36
  }
21
37
  }
22
38
  return array;
@@ -1 +1 @@
1
- {"version":3,"file":"range.js","sourceRoot":"","sources":["../../src/Array/range.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,GAAY,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE;IACtD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,GAAG,EAAE,CAAC;QACR,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AACF,OAAO,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"range.js","sourceRoot":"","sources":["../../src/Array/range.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,GAAY,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE;IACtD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,sBAAsB;IACtB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,WAAW,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,MAAM,SAAS,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IAElD,sCAAsC;IACtC,IACE,CAAC,IAAI,GAAG,CAAC,IAAI,WAAW,IAAI,SAAS,CAAC;QACtC,CAAC,IAAI,GAAG,CAAC,IAAI,WAAW,IAAI,SAAS,CAAC,EACtC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,0CAA0C;IAC1C,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,KAAK,IAAI,KAAK,GAAG,WAAW,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;YAC/D,kCAAkC;YAClC,MAAM,YAAY,GAAG,MAAM,CACzB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAC9C,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,IAAI,KAAK,GAAG,WAAW,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;YAC/D,kCAAkC;YAClC,MAAM,YAAY,GAAG,MAAM,CACzB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAC9C,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AACF,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
- * 配列の要素をランダムにシャッフルする
3
- * @param array シャッフルする配列
4
- * @returns シャッフルされた配列
2
+ * Randomly shuffles the elements of an array
3
+ * @param array Array to shuffle
4
+ * @returns New array with shuffled elements
5
5
  * @example shuffle([1, 2, 3, 4, 5]); // [3, 5, 2, 4, 1]
6
6
  */
7
7
  export declare const shuffle: <T>(array: T[]) => T[];
@@ -1,7 +1,7 @@
1
1
  /**
2
- * 配列の要素をランダムにシャッフルする
3
- * @param array シャッフルする配列
4
- * @returns シャッフルされた配列
2
+ * Randomly shuffles the elements of an array
3
+ * @param array Array to shuffle
4
+ * @returns New array with shuffled elements
5
5
  * @example shuffle([1, 2, 3, 4, 5]); // [3, 5, 2, 4, 1]
6
6
  */
7
7
  export const shuffle = (array) => {
@@ -1,9 +1,9 @@
1
1
  /**
2
- * 2次元配列全体の配列をシャッフルします。
3
- * @param array シャッフルする2次元配列
4
- * @returns シャッフルされた2次元配列
2
+ * Shuffles all elements in a 2D array while maintaining the row lengths
3
+ * @param array The 2D array to shuffle
4
+ * @returns A new 2D array with shuffled elements
5
5
  * @example
6
6
  * shuffle2DArray([[1, 2], [3, 4], [5, 6]]);
7
- * // 例: [[1, 3], [6, 4], [2, 5]]
7
+ * // Result: [[1, 3], [6, 4], [2, 5]]
8
8
  */
9
9
  export declare const shuffle2DArray: <T>(array: T[][]) => T[][];
@@ -1,13 +1,13 @@
1
1
  /**
2
- * 2次元配列全体の配列をシャッフルします。
3
- * @param array シャッフルする2次元配列
4
- * @returns シャッフルされた2次元配列
2
+ * Shuffles all elements in a 2D array while maintaining the row lengths
3
+ * @param array The 2D array to shuffle
4
+ * @returns A new 2D array with shuffled elements
5
5
  * @example
6
6
  * shuffle2DArray([[1, 2], [3, 4], [5, 6]]);
7
- * // 例: [[1, 3], [6, 4], [2, 5]]
7
+ * // Result: [[1, 3], [6, 4], [2, 5]]
8
8
  */
9
9
  export const shuffle2DArray = (array) => {
10
- // 2次元配列の要素を1次元配列に平坦化し、シャッフルする
10
+ // Flatten the 2D array into 1D and shuffle it
11
11
  const flatArray = [];
12
12
  for (const subArray of array) {
13
13
  flatArray.push(...subArray);
@@ -19,7 +19,7 @@ export const shuffle2DArray = (array) => {
19
19
  flatArray[index],
20
20
  ];
21
21
  }
22
- // シャッフルされた1次元配列を2次元配列に再構成する
22
+ // Reconstruct the 2D array from the shuffled flat array
23
23
  let rowIndex = 0;
24
24
  return array.map((subArray) => {
25
25
  const newRow = flatArray.slice(rowIndex, rowIndex + subArray.length);
@@ -1 +1 @@
1
- {"version":3,"file":"shuffle2DArray.js","sourceRoot":"","sources":["../../src/Array/shuffle2DArray.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAI,KAAY,EAAS,EAAE;IACvD,8BAA8B;IAC9B,MAAM,SAAS,GAAQ,EAAE,CAAC;IAC1B,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC9B,CAAC;IACD,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG;YACtC,SAAS,CAAC,MAAM,CAAC;YACjB,SAAS,CAAC,KAAK,CAAC;SACjB,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrE,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"shuffle2DArray.js","sourceRoot":"","sources":["../../src/Array/shuffle2DArray.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAI,KAAY,EAAS,EAAE;IACvD,8CAA8C;IAC9C,MAAM,SAAS,GAAQ,EAAE,CAAC;IAC1B,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC9B,CAAC;IACD,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG;YACtC,SAAS,CAAC,MAAM,CAAC;YACjB,SAAS,CAAC,KAAK,CAAC;SACjB,CAAC;IACJ,CAAC;IAED,wDAAwD;IACxD,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrE,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
- * 配列の合計を返す
3
- * @param {number[]} x 数値型の配列
4
- * @returns 配列の合計
2
+ * Returns the sum of an array of numbers
3
+ * @param {number[]} x Array of numbers
4
+ * @returns Sum of the array elements
5
5
  * @example sum([1, 2, 3]); // 6
6
6
  */
7
7
  export declare const sum: (x: number[]) => number;
@@ -1,11 +1,11 @@
1
1
  import { addition } from "../Math/addition";
2
2
  /**
3
- * 配列の合計を返す
4
- * @param {number[]} x 数値型の配列
5
- * @returns 配列の合計
3
+ * Returns the sum of an array of numbers
4
+ * @param {number[]} x Array of numbers
5
+ * @returns Sum of the array elements
6
6
  * @example sum([1, 2, 3]); // 6
7
7
  */
8
8
  export const sum = (x) => {
9
- return x.reduce((a, b) => addition(a, b));
9
+ return x.reduce((a, b) => addition(a, b), 0);
10
10
  };
11
11
  //# sourceMappingURL=sum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sum.js","sourceRoot":"","sources":["../../src/Array/sum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAW,EAAE,EAAE;IACjC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC,CAAC"}
1
+ {"version":3,"file":"sum.js","sourceRoot":"","sources":["../../src/Array/sum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAW,EAAE,EAAE;IACjC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC"}
@@ -1,15 +1,17 @@
1
- type CompareFunction<T> = (a: T, b: T) => number;
1
+ import type { CompareFunction } from "../types/array/compareFunction";
2
2
  /**
3
- * TimSortアルゴリズムを実装した関数です。
4
- * 挿入ソートとマージソートの良い特性を組み合わせたソートアルゴリズムで、
5
- * 安定なソートを提供し、最悪のケースでもO(n log n)の時間複雑度を持ちます。
3
+ * Implementation of the TimSort algorithm, which combines the best features of
4
+ * insertion sort and merge sort. It provides a stable sort with O(n log n)
5
+ * worst-case time complexity.
6
6
  *
7
- * @param {T[]} array - ソートする配列
8
- * @param {CompareFunction<T>} [compareFunction=compareFunctionDefault<T>] -
9
- * 要素比較のための関数
10
- * @param {number} [start=0] - ソートを開始する配列のインデックス
11
- * @param {number} [end=array.length - 1] - ソートを終了する配列のインデックス
12
- * @returns {T[]} - ソートされた配列
7
+ * @param {T[]} array Array to sort
8
+ * @param {CompareFunction<T>} [compareFunction=compareFunctionDefault<T>]
9
+ * Function to compare elements
10
+ * @param {number} [start=0] Starting index for the sort range
11
+ * @param {number} [end=array.length - 1] Ending index for the sort range
12
+ * @returns {T[]} Sorted array
13
+ * @example
14
+ * timSort([3, 1, 4, 1, 5]); // [1, 1, 3, 4, 5]
15
+ * timSort(['b', 'a', 'c']); // ['a', 'b', 'c']
13
16
  */
14
17
  export declare const timSort: <T>(array: T[], compareFunction?: CompareFunction<T>, start?: number, end?: number) => T[];
15
- export {};
@@ -1,5 +1,12 @@
1
1
  import { compareFunctionDefault } from "./compareFunctionDefault";
2
2
  const MIN_RUN = 32;
3
+ /**
4
+ * Sorts a portion of the array using insertion sort algorithm
5
+ * @param array Array to sort
6
+ * @param start Starting index of the range to sort
7
+ * @param end Ending index of the range to sort
8
+ * @param compareFunction Function to compare elements
9
+ */
3
10
  const insertionSort = (array, start, end, compareFunction) => {
4
11
  for (let index = start + 1; index <= end; index++) {
5
12
  const temporary = array[index];
@@ -12,6 +19,14 @@ const insertionSort = (array, start, end, compareFunction) => {
12
19
  array[currentIndex + 1] = temporary;
13
20
  }
14
21
  };
22
+ /**
23
+ * Merges two sorted portions of the array
24
+ * @param array Array containing the portions to merge
25
+ * @param start Starting index of the first portion
26
+ * @param mid Middle index separating the two portions
27
+ * @param end Ending index of the second portion
28
+ * @param compareFunction Function to compare elements
29
+ */
15
30
  const merge = (array, start, mid, end, compareFunction) => {
16
31
  const left = array.slice(start, mid + 1);
17
32
  const right = array.slice(mid + 1, end + 1);
@@ -40,6 +55,12 @@ const merge = (array, start, mid, end, compareFunction) => {
40
55
  arrayIndex++;
41
56
  }
42
57
  };
58
+ /**
59
+ * Calculates the minimum length of a run for the given input size
60
+ * This is used to determine the size of runs for the initial insertion sort phase
61
+ * @param input Size of the array to be sorted
62
+ * @returns Minimum length of a run
63
+ */
43
64
  const getMinRunLength = (input) => {
44
65
  let n = input;
45
66
  let r = 0;
@@ -50,16 +71,19 @@ const getMinRunLength = (input) => {
50
71
  return n + r;
51
72
  };
52
73
  /**
53
- * TimSortアルゴリズムを実装した関数です。
54
- * 挿入ソートとマージソートの良い特性を組み合わせたソートアルゴリズムで、
55
- * 安定なソートを提供し、最悪のケースでもO(n log n)の時間複雑度を持ちます。
74
+ * Implementation of the TimSort algorithm, which combines the best features of
75
+ * insertion sort and merge sort. It provides a stable sort with O(n log n)
76
+ * worst-case time complexity.
56
77
  *
57
- * @param {T[]} array - ソートする配列
58
- * @param {CompareFunction<T>} [compareFunction=compareFunctionDefault<T>] -
59
- * 要素比較のための関数
60
- * @param {number} [start=0] - ソートを開始する配列のインデックス
61
- * @param {number} [end=array.length - 1] - ソートを終了する配列のインデックス
62
- * @returns {T[]} - ソートされた配列
78
+ * @param {T[]} array Array to sort
79
+ * @param {CompareFunction<T>} [compareFunction=compareFunctionDefault<T>]
80
+ * Function to compare elements
81
+ * @param {number} [start=0] Starting index for the sort range
82
+ * @param {number} [end=array.length - 1] Ending index for the sort range
83
+ * @returns {T[]} Sorted array
84
+ * @example
85
+ * timSort([3, 1, 4, 1, 5]); // [1, 1, 3, 4, 5]
86
+ * timSort(['b', 'a', 'c']); // ['a', 'b', 'c']
63
87
  */
64
88
  export const timSort = (array, compareFunction = (compareFunctionDefault), start = 0, end = array.length - 1) => {
65
89
  const n = end - start + 1;
@@ -1 +1 @@
1
- {"version":3,"file":"timSort.js","sourceRoot":"","sources":["../../src/Array/timSort.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"timSort.js","sourceRoot":"","sources":["../../src/Array/timSort.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  import type { ZipArrayType } from "../types/array/zip";
2
2
  /**
3
- * 複数の配列を受け取り、それらの配列の要素を組み合わせて新しい配列を作成します。
4
- * @param {T} arrays - 組み合わせる配列のリスト
5
- * @returns {ZipArrayType<T>} - 各配列の要素が組み合わされた新しい配列
3
+ * Creates a new array by combining elements from multiple arrays at corresponding positions
4
+ * @param {T} arrays List of arrays to combine
5
+ * @returns {ZipArrayType<T>} New array with combined elements from each input array
6
+ * @example
7
+ * zip([1, 2], ['a', 'b']); // [[1, 'a'], [2, 'b']]
8
+ * zip([1, 2, 3], ['a', 'b']); // [[1, 'a'], [2, 'b']]
6
9
  */
7
10
  export declare const zip: <T extends unknown[][]>(...arrays: T) => ZipArrayType<T>;