@mdigitalcn/utils 2.0.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 (581) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +228 -0
  3. package/dist/esm/array/checkValueInArray.js +2 -0
  4. package/dist/esm/array/checkValueInArray.js.map +1 -0
  5. package/dist/esm/array/chunk.js +2 -0
  6. package/dist/esm/array/chunk.js.map +1 -0
  7. package/dist/esm/array/collectBy.js +2 -0
  8. package/dist/esm/array/collectBy.js.map +1 -0
  9. package/dist/esm/array/compact.js +2 -0
  10. package/dist/esm/array/compact.js.map +1 -0
  11. package/dist/esm/array/countBy.js +2 -0
  12. package/dist/esm/array/countBy.js.map +1 -0
  13. package/dist/esm/array/difference.js +2 -0
  14. package/dist/esm/array/difference.js.map +1 -0
  15. package/dist/esm/array/drop.js +2 -0
  16. package/dist/esm/array/drop.js.map +1 -0
  17. package/dist/esm/array/dropWhile.js +2 -0
  18. package/dist/esm/array/dropWhile.js.map +1 -0
  19. package/dist/esm/array/first.js +2 -0
  20. package/dist/esm/array/first.js.map +1 -0
  21. package/dist/esm/array/flatten.js +2 -0
  22. package/dist/esm/array/flatten.js.map +1 -0
  23. package/dist/esm/array/groupBy.js +2 -0
  24. package/dist/esm/array/groupBy.js.map +1 -0
  25. package/dist/esm/array/index.js +2 -0
  26. package/dist/esm/array/index.js.map +1 -0
  27. package/dist/esm/array/intersection.js +2 -0
  28. package/dist/esm/array/intersection.js.map +1 -0
  29. package/dist/esm/array/keyBy.js +2 -0
  30. package/dist/esm/array/keyBy.js.map +1 -0
  31. package/dist/esm/array/last.js +2 -0
  32. package/dist/esm/array/last.js.map +1 -0
  33. package/dist/esm/array/maxBy.js +2 -0
  34. package/dist/esm/array/maxBy.js.map +1 -0
  35. package/dist/esm/array/minBy.js +2 -0
  36. package/dist/esm/array/minBy.js.map +1 -0
  37. package/dist/esm/array/partition.js +2 -0
  38. package/dist/esm/array/partition.js.map +1 -0
  39. package/dist/esm/array/sameElementsInArrays.js +2 -0
  40. package/dist/esm/array/sameElementsInArrays.js.map +1 -0
  41. package/dist/esm/array/sample.js +2 -0
  42. package/dist/esm/array/sample.js.map +1 -0
  43. package/dist/esm/array/shuffle.js +2 -0
  44. package/dist/esm/array/shuffle.js.map +1 -0
  45. package/dist/esm/array/sortBy.js +2 -0
  46. package/dist/esm/array/sortBy.js.map +1 -0
  47. package/dist/esm/array/take.js +2 -0
  48. package/dist/esm/array/take.js.map +1 -0
  49. package/dist/esm/array/takeWhile.js +2 -0
  50. package/dist/esm/array/takeWhile.js.map +1 -0
  51. package/dist/esm/array/union.js +2 -0
  52. package/dist/esm/array/union.js.map +1 -0
  53. package/dist/esm/array/uniq.js +2 -0
  54. package/dist/esm/array/uniq.js.map +1 -0
  55. package/dist/esm/array/uniqBy.js +2 -0
  56. package/dist/esm/array/uniqBy.js.map +1 -0
  57. package/dist/esm/array/without.js +2 -0
  58. package/dist/esm/array/without.js.map +1 -0
  59. package/dist/esm/array/xor.js +2 -0
  60. package/dist/esm/array/xor.js.map +1 -0
  61. package/dist/esm/array/zip.js +2 -0
  62. package/dist/esm/array/zip.js.map +1 -0
  63. package/dist/esm/array/zipObject.js +2 -0
  64. package/dist/esm/array/zipObject.js.map +1 -0
  65. package/dist/esm/file/anyToString.js +2 -0
  66. package/dist/esm/file/anyToString.js.map +1 -0
  67. package/dist/esm/file/convertToFormData.js +2 -0
  68. package/dist/esm/file/convertToFormData.js.map +1 -0
  69. package/dist/esm/file/decodeURIValue.js +2 -0
  70. package/dist/esm/file/decodeURIValue.js.map +1 -0
  71. package/dist/esm/file/downloadFile.js +2 -0
  72. package/dist/esm/file/downloadFile.js.map +1 -0
  73. package/dist/esm/file/getBase64.js +2 -0
  74. package/dist/esm/file/getBase64.js.map +1 -0
  75. package/dist/esm/file/index.js +2 -0
  76. package/dist/esm/file/index.js.map +1 -0
  77. package/dist/esm/file/isFileArray.js +2 -0
  78. package/dist/esm/file/isFileArray.js.map +1 -0
  79. package/dist/esm/function/compose.js +2 -0
  80. package/dist/esm/function/compose.js.map +1 -0
  81. package/dist/esm/function/curry.js +2 -0
  82. package/dist/esm/function/curry.js.map +1 -0
  83. package/dist/esm/function/debounce.js +2 -0
  84. package/dist/esm/function/debounce.js.map +1 -0
  85. package/dist/esm/function/hexToRgba.js +2 -0
  86. package/dist/esm/function/hexToRgba.js.map +1 -0
  87. package/dist/esm/function/identity.js +2 -0
  88. package/dist/esm/function/identity.js.map +1 -0
  89. package/dist/esm/function/index.js +2 -0
  90. package/dist/esm/function/index.js.map +1 -0
  91. package/dist/esm/function/memoize.js +2 -0
  92. package/dist/esm/function/memoize.js.map +1 -0
  93. package/dist/esm/function/negate.js +2 -0
  94. package/dist/esm/function/negate.js.map +1 -0
  95. package/dist/esm/function/noop.js +2 -0
  96. package/dist/esm/function/noop.js.map +1 -0
  97. package/dist/esm/function/once.js +2 -0
  98. package/dist/esm/function/once.js.map +1 -0
  99. package/dist/esm/function/partial.js +2 -0
  100. package/dist/esm/function/partial.js.map +1 -0
  101. package/dist/esm/function/pipe.js +2 -0
  102. package/dist/esm/function/pipe.js.map +1 -0
  103. package/dist/esm/function/queryString.js +2 -0
  104. package/dist/esm/function/queryString.js.map +1 -0
  105. package/dist/esm/function/throttle.js +2 -0
  106. package/dist/esm/function/throttle.js.map +1 -0
  107. package/dist/esm/index.js +2 -0
  108. package/dist/esm/index.js.map +1 -0
  109. package/dist/esm/math/clamp.js +2 -0
  110. package/dist/esm/math/clamp.js.map +1 -0
  111. package/dist/esm/math/inRange.js +2 -0
  112. package/dist/esm/math/inRange.js.map +1 -0
  113. package/dist/esm/math/index.js +2 -0
  114. package/dist/esm/math/index.js.map +1 -0
  115. package/dist/esm/math/mean.js +2 -0
  116. package/dist/esm/math/mean.js.map +1 -0
  117. package/dist/esm/math/median.js +2 -0
  118. package/dist/esm/math/median.js.map +1 -0
  119. package/dist/esm/math/random.js +2 -0
  120. package/dist/esm/math/random.js.map +1 -0
  121. package/dist/esm/math/range.js +2 -0
  122. package/dist/esm/math/range.js.map +1 -0
  123. package/dist/esm/math/round.js +2 -0
  124. package/dist/esm/math/round.js.map +1 -0
  125. package/dist/esm/math/sum.js +2 -0
  126. package/dist/esm/math/sum.js.map +1 -0
  127. package/dist/esm/object/cloneDeep.js +2 -0
  128. package/dist/esm/object/cloneDeep.js.map +1 -0
  129. package/dist/esm/object/findKey.js +2 -0
  130. package/dist/esm/object/findKey.js.map +1 -0
  131. package/dist/esm/object/flattenObject.js +2 -0
  132. package/dist/esm/object/flattenObject.js.map +1 -0
  133. package/dist/esm/object/get.js +2 -0
  134. package/dist/esm/object/get.js.map +1 -0
  135. package/dist/esm/object/getTrue.js +2 -0
  136. package/dist/esm/object/getTrue.js.map +1 -0
  137. package/dist/esm/object/has.js +2 -0
  138. package/dist/esm/object/has.js.map +1 -0
  139. package/dist/esm/object/index.js +2 -0
  140. package/dist/esm/object/index.js.map +1 -0
  141. package/dist/esm/object/invert.js +2 -0
  142. package/dist/esm/object/invert.js.map +1 -0
  143. package/dist/esm/object/isEmpty.js +2 -0
  144. package/dist/esm/object/isEmpty.js.map +1 -0
  145. package/dist/esm/object/jsonParse.js +2 -0
  146. package/dist/esm/object/jsonParse.js.map +1 -0
  147. package/dist/esm/object/mapKeys.js +2 -0
  148. package/dist/esm/object/mapKeys.js.map +1 -0
  149. package/dist/esm/object/mapValues.js +2 -0
  150. package/dist/esm/object/mapValues.js.map +1 -0
  151. package/dist/esm/object/mergeDeep.js +2 -0
  152. package/dist/esm/object/mergeDeep.js.map +1 -0
  153. package/dist/esm/object/omit.js +2 -0
  154. package/dist/esm/object/omit.js.map +1 -0
  155. package/dist/esm/object/omitBy.js +2 -0
  156. package/dist/esm/object/omitBy.js.map +1 -0
  157. package/dist/esm/object/path.js +2 -0
  158. package/dist/esm/object/path.js.map +1 -0
  159. package/dist/esm/object/pathOr.js +2 -0
  160. package/dist/esm/object/pathOr.js.map +1 -0
  161. package/dist/esm/object/pick.js +2 -0
  162. package/dist/esm/object/pick.js.map +1 -0
  163. package/dist/esm/object/pickBy.js +2 -0
  164. package/dist/esm/object/pickBy.js.map +1 -0
  165. package/dist/esm/object/prop.js +2 -0
  166. package/dist/esm/object/prop.js.map +1 -0
  167. package/dist/esm/object/propOr.js +2 -0
  168. package/dist/esm/object/propOr.js.map +1 -0
  169. package/dist/esm/object/set.js +2 -0
  170. package/dist/esm/object/set.js.map +1 -0
  171. package/dist/esm/predicate/index.js +2 -0
  172. package/dist/esm/predicate/index.js.map +1 -0
  173. package/dist/esm/predicate/isArray.js +2 -0
  174. package/dist/esm/predicate/isArray.js.map +1 -0
  175. package/dist/esm/predicate/isBoolean.js +2 -0
  176. package/dist/esm/predicate/isBoolean.js.map +1 -0
  177. package/dist/esm/predicate/isDate.js +2 -0
  178. package/dist/esm/predicate/isDate.js.map +1 -0
  179. package/dist/esm/predicate/isEqual.js +2 -0
  180. package/dist/esm/predicate/isEqual.js.map +1 -0
  181. package/dist/esm/predicate/isError.js +2 -0
  182. package/dist/esm/predicate/isError.js.map +1 -0
  183. package/dist/esm/predicate/isFunction.js +2 -0
  184. package/dist/esm/predicate/isFunction.js.map +1 -0
  185. package/dist/esm/predicate/isNil.js +2 -0
  186. package/dist/esm/predicate/isNil.js.map +1 -0
  187. package/dist/esm/predicate/isNumber.js +2 -0
  188. package/dist/esm/predicate/isNumber.js.map +1 -0
  189. package/dist/esm/predicate/isPlainObject.js +2 -0
  190. package/dist/esm/predicate/isPlainObject.js.map +1 -0
  191. package/dist/esm/predicate/isPrimitive.js +2 -0
  192. package/dist/esm/predicate/isPrimitive.js.map +1 -0
  193. package/dist/esm/predicate/isPromise.js +2 -0
  194. package/dist/esm/predicate/isPromise.js.map +1 -0
  195. package/dist/esm/predicate/isString.js +2 -0
  196. package/dist/esm/predicate/isString.js.map +1 -0
  197. package/dist/esm/promise/attempt.js +2 -0
  198. package/dist/esm/promise/attempt.js.map +1 -0
  199. package/dist/esm/promise/delay.js +2 -0
  200. package/dist/esm/promise/delay.js.map +1 -0
  201. package/dist/esm/promise/index.js +2 -0
  202. package/dist/esm/promise/index.js.map +1 -0
  203. package/dist/esm/promise/invariant.js +2 -0
  204. package/dist/esm/promise/invariant.js.map +1 -0
  205. package/dist/esm/promise/retry.js +2 -0
  206. package/dist/esm/promise/retry.js.map +1 -0
  207. package/dist/esm/promise/timeout.js +2 -0
  208. package/dist/esm/promise/timeout.js.map +1 -0
  209. package/dist/esm/react/hooks/useClickOutside.js +3 -0
  210. package/dist/esm/react/hooks/useClickOutside.js.map +1 -0
  211. package/dist/esm/react/hooks/useCopyToClipboard.js +3 -0
  212. package/dist/esm/react/hooks/useCopyToClipboard.js.map +1 -0
  213. package/dist/esm/react/hooks/useDebounce.js +3 -0
  214. package/dist/esm/react/hooks/useDebounce.js.map +1 -0
  215. package/dist/esm/react/hooks/useIntersectionObserver.js +3 -0
  216. package/dist/esm/react/hooks/useIntersectionObserver.js.map +1 -0
  217. package/dist/esm/react/hooks/useIsMounted.js +3 -0
  218. package/dist/esm/react/hooks/useIsMounted.js.map +1 -0
  219. package/dist/esm/react/hooks/useLocalStorage.js +3 -0
  220. package/dist/esm/react/hooks/useLocalStorage.js.map +1 -0
  221. package/dist/esm/react/hooks/useMediaQuery.js +3 -0
  222. package/dist/esm/react/hooks/useMediaQuery.js.map +1 -0
  223. package/dist/esm/react/hooks/useMountEffect.js +3 -0
  224. package/dist/esm/react/hooks/useMountEffect.js.map +1 -0
  225. package/dist/esm/react/hooks/usePrevious.js +3 -0
  226. package/dist/esm/react/hooks/usePrevious.js.map +1 -0
  227. package/dist/esm/react/hooks/useScreenSize.js +3 -0
  228. package/dist/esm/react/hooks/useScreenSize.js.map +1 -0
  229. package/dist/esm/react/hooks/useSessionStorage.js +3 -0
  230. package/dist/esm/react/hooks/useSessionStorage.js.map +1 -0
  231. package/dist/esm/react/hooks/useThrottle.js +3 -0
  232. package/dist/esm/react/hooks/useThrottle.js.map +1 -0
  233. package/dist/esm/react/hooks/useToggle.js +3 -0
  234. package/dist/esm/react/hooks/useToggle.js.map +1 -0
  235. package/dist/esm/react/hooks/useUpdateEffect.js +3 -0
  236. package/dist/esm/react/hooks/useUpdateEffect.js.map +1 -0
  237. package/dist/esm/react/index.js +2 -0
  238. package/dist/esm/react/index.js.map +1 -0
  239. package/dist/esm/react/utils/clsx.js +2 -0
  240. package/dist/esm/react/utils/clsx.js.map +1 -0
  241. package/dist/esm/react/utils/createContext.js +3 -0
  242. package/dist/esm/react/utils/createContext.js.map +1 -0
  243. package/dist/esm/react/utils/displayField.js +2 -0
  244. package/dist/esm/react/utils/displayField.js.map +1 -0
  245. package/dist/esm/string/camelCase.js +2 -0
  246. package/dist/esm/string/camelCase.js.map +1 -0
  247. package/dist/esm/string/capitalize.js +2 -0
  248. package/dist/esm/string/capitalize.js.map +1 -0
  249. package/dist/esm/string/deburr.js +2 -0
  250. package/dist/esm/string/deburr.js.map +1 -0
  251. package/dist/esm/string/escapeHtml.js +2 -0
  252. package/dist/esm/string/escapeHtml.js.map +1 -0
  253. package/dist/esm/string/escapeRegExp.js +2 -0
  254. package/dist/esm/string/escapeRegExp.js.map +1 -0
  255. package/dist/esm/string/formatBytes.js +2 -0
  256. package/dist/esm/string/formatBytes.js.map +1 -0
  257. package/dist/esm/string/formatDuration.js +2 -0
  258. package/dist/esm/string/formatDuration.js.map +1 -0
  259. package/dist/esm/string/formatNumber.js +2 -0
  260. package/dist/esm/string/formatNumber.js.map +1 -0
  261. package/dist/esm/string/htmlToText.js +2 -0
  262. package/dist/esm/string/htmlToText.js.map +1 -0
  263. package/dist/esm/string/index.js +2 -0
  264. package/dist/esm/string/index.js.map +1 -0
  265. package/dist/esm/string/kebabCase.js +2 -0
  266. package/dist/esm/string/kebabCase.js.map +1 -0
  267. package/dist/esm/string/maskString.js +2 -0
  268. package/dist/esm/string/maskString.js.map +1 -0
  269. package/dist/esm/string/pascalCase.js +2 -0
  270. package/dist/esm/string/pascalCase.js.map +1 -0
  271. package/dist/esm/string/pluralize.js +2 -0
  272. package/dist/esm/string/pluralize.js.map +1 -0
  273. package/dist/esm/string/slugify.js +2 -0
  274. package/dist/esm/string/slugify.js.map +1 -0
  275. package/dist/esm/string/snakeCase.js +2 -0
  276. package/dist/esm/string/snakeCase.js.map +1 -0
  277. package/dist/esm/string/startCase.js +2 -0
  278. package/dist/esm/string/startCase.js.map +1 -0
  279. package/dist/esm/string/template.js +2 -0
  280. package/dist/esm/string/template.js.map +1 -0
  281. package/dist/esm/string/truncateString.js +2 -0
  282. package/dist/esm/string/truncateString.js.map +1 -0
  283. package/dist/esm/string/words.js +2 -0
  284. package/dist/esm/string/words.js.map +1 -0
  285. package/dist/esm/validation/index.js +2 -0
  286. package/dist/esm/validation/index.js.map +1 -0
  287. package/dist/esm/validation/validateFileSizeByType.js +2 -0
  288. package/dist/esm/validation/validateFileSizeByType.js.map +1 -0
  289. package/dist/types/array/checkValueInArray.d.ts +23 -0
  290. package/dist/types/array/checkValueInArray.d.ts.map +1 -0
  291. package/dist/types/array/chunk.d.ts +15 -0
  292. package/dist/types/array/chunk.d.ts.map +1 -0
  293. package/dist/types/array/collectBy.d.ts +21 -0
  294. package/dist/types/array/collectBy.d.ts.map +1 -0
  295. package/dist/types/array/compact.d.ts +19 -0
  296. package/dist/types/array/compact.d.ts.map +1 -0
  297. package/dist/types/array/countBy.d.ts +13 -0
  298. package/dist/types/array/countBy.d.ts.map +1 -0
  299. package/dist/types/array/difference.d.ts +14 -0
  300. package/dist/types/array/difference.d.ts.map +1 -0
  301. package/dist/types/array/drop.d.ts +14 -0
  302. package/dist/types/array/drop.d.ts.map +1 -0
  303. package/dist/types/array/dropWhile.d.ts +13 -0
  304. package/dist/types/array/dropWhile.d.ts.map +1 -0
  305. package/dist/types/array/first.d.ts +13 -0
  306. package/dist/types/array/first.d.ts.map +1 -0
  307. package/dist/types/array/flatten.d.ts +13 -0
  308. package/dist/types/array/flatten.d.ts.map +1 -0
  309. package/dist/types/array/groupBy.d.ts +17 -0
  310. package/dist/types/array/groupBy.d.ts.map +1 -0
  311. package/dist/types/array/index.d.ts +31 -0
  312. package/dist/types/array/index.d.ts.map +1 -0
  313. package/dist/types/array/intersection.d.ts +14 -0
  314. package/dist/types/array/intersection.d.ts.map +1 -0
  315. package/dist/types/array/keyBy.d.ts +15 -0
  316. package/dist/types/array/keyBy.d.ts.map +1 -0
  317. package/dist/types/array/last.d.ts +13 -0
  318. package/dist/types/array/last.d.ts.map +1 -0
  319. package/dist/types/array/maxBy.d.ts +13 -0
  320. package/dist/types/array/maxBy.d.ts.map +1 -0
  321. package/dist/types/array/minBy.d.ts +13 -0
  322. package/dist/types/array/minBy.d.ts.map +1 -0
  323. package/dist/types/array/partition.d.ts +13 -0
  324. package/dist/types/array/partition.d.ts.map +1 -0
  325. package/dist/types/array/sameElementsInArrays.d.ts +15 -0
  326. package/dist/types/array/sameElementsInArrays.d.ts.map +1 -0
  327. package/dist/types/array/sample.d.ts +12 -0
  328. package/dist/types/array/sample.d.ts.map +1 -0
  329. package/dist/types/array/shuffle.d.ts +12 -0
  330. package/dist/types/array/shuffle.d.ts.map +1 -0
  331. package/dist/types/array/sortBy.d.ts +20 -0
  332. package/dist/types/array/sortBy.d.ts.map +1 -0
  333. package/dist/types/array/take.d.ts +14 -0
  334. package/dist/types/array/take.d.ts.map +1 -0
  335. package/dist/types/array/takeWhile.d.ts +13 -0
  336. package/dist/types/array/takeWhile.d.ts.map +1 -0
  337. package/dist/types/array/union.d.ts +13 -0
  338. package/dist/types/array/union.d.ts.map +1 -0
  339. package/dist/types/array/uniq.d.ts +12 -0
  340. package/dist/types/array/uniq.d.ts.map +1 -0
  341. package/dist/types/array/uniqBy.d.ts +12 -0
  342. package/dist/types/array/uniqBy.d.ts.map +1 -0
  343. package/dist/types/array/without.d.ts +13 -0
  344. package/dist/types/array/without.d.ts.map +1 -0
  345. package/dist/types/array/xor.d.ts +13 -0
  346. package/dist/types/array/xor.d.ts.map +1 -0
  347. package/dist/types/array/zip.d.ts +15 -0
  348. package/dist/types/array/zip.d.ts.map +1 -0
  349. package/dist/types/array/zipObject.d.ts +13 -0
  350. package/dist/types/array/zipObject.d.ts.map +1 -0
  351. package/dist/types/file/anyToString.d.ts +24 -0
  352. package/dist/types/file/anyToString.d.ts.map +1 -0
  353. package/dist/types/file/convertToFormData.d.ts +19 -0
  354. package/dist/types/file/convertToFormData.d.ts.map +1 -0
  355. package/dist/types/file/decodeURIValue.d.ts +22 -0
  356. package/dist/types/file/decodeURIValue.d.ts.map +1 -0
  357. package/dist/types/file/downloadFile.d.ts +28 -0
  358. package/dist/types/file/downloadFile.d.ts.map +1 -0
  359. package/dist/types/file/getBase64.d.ts +20 -0
  360. package/dist/types/file/getBase64.d.ts.map +1 -0
  361. package/dist/types/file/index.d.ts +7 -0
  362. package/dist/types/file/index.d.ts.map +1 -0
  363. package/dist/types/file/isFileArray.d.ts +13 -0
  364. package/dist/types/file/isFileArray.d.ts.map +1 -0
  365. package/dist/types/function/compose.d.ts +24 -0
  366. package/dist/types/function/compose.d.ts.map +1 -0
  367. package/dist/types/function/curry.d.ts +39 -0
  368. package/dist/types/function/curry.d.ts.map +1 -0
  369. package/dist/types/function/debounce.d.ts +36 -0
  370. package/dist/types/function/debounce.d.ts.map +1 -0
  371. package/dist/types/function/hexToRgba.d.ts +19 -0
  372. package/dist/types/function/hexToRgba.d.ts.map +1 -0
  373. package/dist/types/function/identity.d.ts +24 -0
  374. package/dist/types/function/identity.d.ts.map +1 -0
  375. package/dist/types/function/index.d.ts +16 -0
  376. package/dist/types/function/index.d.ts.map +1 -0
  377. package/dist/types/function/memoize.d.ts +20 -0
  378. package/dist/types/function/memoize.d.ts.map +1 -0
  379. package/dist/types/function/negate.d.ts +12 -0
  380. package/dist/types/function/negate.d.ts.map +1 -0
  381. package/dist/types/function/noop.d.ts +27 -0
  382. package/dist/types/function/noop.d.ts.map +1 -0
  383. package/dist/types/function/once.d.ts +22 -0
  384. package/dist/types/function/once.d.ts.map +1 -0
  385. package/dist/types/function/partial.d.ts +17 -0
  386. package/dist/types/function/partial.d.ts.map +1 -0
  387. package/dist/types/function/pipe.d.ts +24 -0
  388. package/dist/types/function/pipe.d.ts.map +1 -0
  389. package/dist/types/function/queryString.d.ts +44 -0
  390. package/dist/types/function/queryString.d.ts.map +1 -0
  391. package/dist/types/function/throttle.d.ts +35 -0
  392. package/dist/types/function/throttle.d.ts.map +1 -0
  393. package/dist/types/index.d.ts +18 -0
  394. package/dist/types/index.d.ts.map +1 -0
  395. package/dist/types/math/clamp.d.ts +15 -0
  396. package/dist/types/math/clamp.d.ts.map +1 -0
  397. package/dist/types/math/inRange.d.ts +18 -0
  398. package/dist/types/math/inRange.d.ts.map +1 -0
  399. package/dist/types/math/index.d.ts +9 -0
  400. package/dist/types/math/index.d.ts.map +1 -0
  401. package/dist/types/math/mean.d.ts +11 -0
  402. package/dist/types/math/mean.d.ts.map +1 -0
  403. package/dist/types/math/median.d.ts +15 -0
  404. package/dist/types/math/median.d.ts.map +1 -0
  405. package/dist/types/math/random.d.ts +27 -0
  406. package/dist/types/math/random.d.ts.map +1 -0
  407. package/dist/types/math/range.d.ts +18 -0
  408. package/dist/types/math/range.d.ts.map +1 -0
  409. package/dist/types/math/round.d.ts +16 -0
  410. package/dist/types/math/round.d.ts.map +1 -0
  411. package/dist/types/math/sum.d.ts +11 -0
  412. package/dist/types/math/sum.d.ts.map +1 -0
  413. package/dist/types/object/cloneDeep.d.ts +18 -0
  414. package/dist/types/object/cloneDeep.d.ts.map +1 -0
  415. package/dist/types/object/findKey.d.ts +14 -0
  416. package/dist/types/object/findKey.d.ts.map +1 -0
  417. package/dist/types/object/flattenObject.d.ts +16 -0
  418. package/dist/types/object/flattenObject.d.ts.map +1 -0
  419. package/dist/types/object/get.d.ts +22 -0
  420. package/dist/types/object/get.d.ts.map +1 -0
  421. package/dist/types/object/getTrue.d.ts +12 -0
  422. package/dist/types/object/getTrue.d.ts.map +1 -0
  423. package/dist/types/object/has.d.ts +15 -0
  424. package/dist/types/object/has.d.ts.map +1 -0
  425. package/dist/types/object/index.d.ts +22 -0
  426. package/dist/types/object/index.d.ts.map +1 -0
  427. package/dist/types/object/invert.d.ts +13 -0
  428. package/dist/types/object/invert.d.ts.map +1 -0
  429. package/dist/types/object/isEmpty.d.ts +23 -0
  430. package/dist/types/object/isEmpty.d.ts.map +1 -0
  431. package/dist/types/object/jsonParse.d.ts +21 -0
  432. package/dist/types/object/jsonParse.d.ts.map +1 -0
  433. package/dist/types/object/mapKeys.d.ts +17 -0
  434. package/dist/types/object/mapKeys.d.ts.map +1 -0
  435. package/dist/types/object/mapValues.d.ts +17 -0
  436. package/dist/types/object/mapValues.d.ts.map +1 -0
  437. package/dist/types/object/mergeDeep.d.ts +20 -0
  438. package/dist/types/object/mergeDeep.d.ts.map +1 -0
  439. package/dist/types/object/omit.d.ts +13 -0
  440. package/dist/types/object/omit.d.ts.map +1 -0
  441. package/dist/types/object/omitBy.d.ts +17 -0
  442. package/dist/types/object/omitBy.d.ts.map +1 -0
  443. package/dist/types/object/path.d.ts +13 -0
  444. package/dist/types/object/path.d.ts.map +1 -0
  445. package/dist/types/object/pathOr.d.ts +14 -0
  446. package/dist/types/object/pathOr.d.ts.map +1 -0
  447. package/dist/types/object/pick.d.ts +13 -0
  448. package/dist/types/object/pick.d.ts.map +1 -0
  449. package/dist/types/object/pickBy.d.ts +17 -0
  450. package/dist/types/object/pickBy.d.ts.map +1 -0
  451. package/dist/types/object/prop.d.ts +31 -0
  452. package/dist/types/object/prop.d.ts.map +1 -0
  453. package/dist/types/object/propOr.d.ts +39 -0
  454. package/dist/types/object/propOr.d.ts.map +1 -0
  455. package/dist/types/object/set.d.ts +16 -0
  456. package/dist/types/object/set.d.ts.map +1 -0
  457. package/dist/types/predicate/index.d.ts +16 -0
  458. package/dist/types/predicate/index.d.ts.map +1 -0
  459. package/dist/types/predicate/isArray.d.ts +14 -0
  460. package/dist/types/predicate/isArray.d.ts.map +1 -0
  461. package/dist/types/predicate/isBoolean.d.ts +14 -0
  462. package/dist/types/predicate/isBoolean.d.ts.map +1 -0
  463. package/dist/types/predicate/isDate.d.ts +16 -0
  464. package/dist/types/predicate/isDate.d.ts.map +1 -0
  465. package/dist/types/predicate/isEqual.d.ts +18 -0
  466. package/dist/types/predicate/isEqual.d.ts.map +1 -0
  467. package/dist/types/predicate/isError.d.ts +14 -0
  468. package/dist/types/predicate/isError.d.ts.map +1 -0
  469. package/dist/types/predicate/isFunction.d.ts +14 -0
  470. package/dist/types/predicate/isFunction.d.ts.map +1 -0
  471. package/dist/types/predicate/isNil.d.ts +33 -0
  472. package/dist/types/predicate/isNil.d.ts.map +1 -0
  473. package/dist/types/predicate/isNumber.d.ts +17 -0
  474. package/dist/types/predicate/isNumber.d.ts.map +1 -0
  475. package/dist/types/predicate/isPlainObject.d.ts +18 -0
  476. package/dist/types/predicate/isPlainObject.d.ts.map +1 -0
  477. package/dist/types/predicate/isPrimitive.d.ts +18 -0
  478. package/dist/types/predicate/isPrimitive.d.ts.map +1 -0
  479. package/dist/types/predicate/isPromise.d.ts +14 -0
  480. package/dist/types/predicate/isPromise.d.ts.map +1 -0
  481. package/dist/types/predicate/isString.d.ts +14 -0
  482. package/dist/types/predicate/isString.d.ts.map +1 -0
  483. package/dist/types/promise/attempt.d.ts +28 -0
  484. package/dist/types/promise/attempt.d.ts.map +1 -0
  485. package/dist/types/promise/delay.d.ts +26 -0
  486. package/dist/types/promise/delay.d.ts.map +1 -0
  487. package/dist/types/promise/index.d.ts +10 -0
  488. package/dist/types/promise/index.d.ts.map +1 -0
  489. package/dist/types/promise/invariant.d.ts +18 -0
  490. package/dist/types/promise/invariant.d.ts.map +1 -0
  491. package/dist/types/promise/retry.d.ts +36 -0
  492. package/dist/types/promise/retry.d.ts.map +1 -0
  493. package/dist/types/promise/timeout.d.ts +30 -0
  494. package/dist/types/promise/timeout.d.ts.map +1 -0
  495. package/dist/types/react/hooks/index.d.ts +21 -0
  496. package/dist/types/react/hooks/index.d.ts.map +1 -0
  497. package/dist/types/react/hooks/useClickOutside.d.ts +116 -0
  498. package/dist/types/react/hooks/useClickOutside.d.ts.map +1 -0
  499. package/dist/types/react/hooks/useCopyToClipboard.d.ts +22 -0
  500. package/dist/types/react/hooks/useCopyToClipboard.d.ts.map +1 -0
  501. package/dist/types/react/hooks/useDebounce.d.ts +57 -0
  502. package/dist/types/react/hooks/useDebounce.d.ts.map +1 -0
  503. package/dist/types/react/hooks/useIntersectionObserver.d.ts +118 -0
  504. package/dist/types/react/hooks/useIntersectionObserver.d.ts.map +1 -0
  505. package/dist/types/react/hooks/useIsMounted.d.ts +26 -0
  506. package/dist/types/react/hooks/useIsMounted.d.ts.map +1 -0
  507. package/dist/types/react/hooks/useLocalStorage.d.ts +78 -0
  508. package/dist/types/react/hooks/useLocalStorage.d.ts.map +1 -0
  509. package/dist/types/react/hooks/useMediaQuery.d.ts +85 -0
  510. package/dist/types/react/hooks/useMediaQuery.d.ts.map +1 -0
  511. package/dist/types/react/hooks/useMountEffect.d.ts +107 -0
  512. package/dist/types/react/hooks/useMountEffect.d.ts.map +1 -0
  513. package/dist/types/react/hooks/usePrevious.d.ts +88 -0
  514. package/dist/types/react/hooks/usePrevious.d.ts.map +1 -0
  515. package/dist/types/react/hooks/useScreenSize.d.ts +37 -0
  516. package/dist/types/react/hooks/useScreenSize.d.ts.map +1 -0
  517. package/dist/types/react/hooks/useSessionStorage.d.ts +49 -0
  518. package/dist/types/react/hooks/useSessionStorage.d.ts.map +1 -0
  519. package/dist/types/react/hooks/useThrottle.d.ts +62 -0
  520. package/dist/types/react/hooks/useThrottle.d.ts.map +1 -0
  521. package/dist/types/react/hooks/useToggle.d.ts +89 -0
  522. package/dist/types/react/hooks/useToggle.d.ts.map +1 -0
  523. package/dist/types/react/hooks/useUpdateEffect.d.ts +91 -0
  524. package/dist/types/react/hooks/useUpdateEffect.d.ts.map +1 -0
  525. package/dist/types/react/index.d.ts +9 -0
  526. package/dist/types/react/index.d.ts.map +1 -0
  527. package/dist/types/react/utils/clsx.d.ts +31 -0
  528. package/dist/types/react/utils/clsx.d.ts.map +1 -0
  529. package/dist/types/react/utils/createContext.d.ts +27 -0
  530. package/dist/types/react/utils/createContext.d.ts.map +1 -0
  531. package/dist/types/react/utils/displayField.d.ts +18 -0
  532. package/dist/types/react/utils/displayField.d.ts.map +1 -0
  533. package/dist/types/react/utils/index.d.ts +5 -0
  534. package/dist/types/react/utils/index.d.ts.map +1 -0
  535. package/dist/types/string/camelCase.d.ts +16 -0
  536. package/dist/types/string/camelCase.d.ts.map +1 -0
  537. package/dist/types/string/capitalize.d.ts +11 -0
  538. package/dist/types/string/capitalize.d.ts.map +1 -0
  539. package/dist/types/string/deburr.d.ts +14 -0
  540. package/dist/types/string/deburr.d.ts.map +1 -0
  541. package/dist/types/string/escapeHtml.d.ts +17 -0
  542. package/dist/types/string/escapeHtml.d.ts.map +1 -0
  543. package/dist/types/string/escapeRegExp.d.ts +13 -0
  544. package/dist/types/string/escapeRegExp.d.ts.map +1 -0
  545. package/dist/types/string/formatBytes.d.ts +16 -0
  546. package/dist/types/string/formatBytes.d.ts.map +1 -0
  547. package/dist/types/string/formatDuration.d.ts +15 -0
  548. package/dist/types/string/formatDuration.d.ts.map +1 -0
  549. package/dist/types/string/formatNumber.d.ts +20 -0
  550. package/dist/types/string/formatNumber.d.ts.map +1 -0
  551. package/dist/types/string/htmlToText.d.ts +29 -0
  552. package/dist/types/string/htmlToText.d.ts.map +1 -0
  553. package/dist/types/string/index.d.ts +20 -0
  554. package/dist/types/string/index.d.ts.map +1 -0
  555. package/dist/types/string/kebabCase.d.ts +16 -0
  556. package/dist/types/string/kebabCase.d.ts.map +1 -0
  557. package/dist/types/string/maskString.d.ts +18 -0
  558. package/dist/types/string/maskString.d.ts.map +1 -0
  559. package/dist/types/string/pascalCase.d.ts +14 -0
  560. package/dist/types/string/pascalCase.d.ts.map +1 -0
  561. package/dist/types/string/pluralize.d.ts +17 -0
  562. package/dist/types/string/pluralize.d.ts.map +1 -0
  563. package/dist/types/string/slugify.d.ts +15 -0
  564. package/dist/types/string/slugify.d.ts.map +1 -0
  565. package/dist/types/string/snakeCase.d.ts +16 -0
  566. package/dist/types/string/snakeCase.d.ts.map +1 -0
  567. package/dist/types/string/startCase.d.ts +14 -0
  568. package/dist/types/string/startCase.d.ts.map +1 -0
  569. package/dist/types/string/template.d.ts +15 -0
  570. package/dist/types/string/template.d.ts.map +1 -0
  571. package/dist/types/string/truncateString.d.ts +13 -0
  572. package/dist/types/string/truncateString.d.ts.map +1 -0
  573. package/dist/types/string/words.d.ts +16 -0
  574. package/dist/types/string/words.d.ts.map +1 -0
  575. package/dist/types/types/index.d.ts +44 -0
  576. package/dist/types/types/index.d.ts.map +1 -0
  577. package/dist/types/validation/index.d.ts +5 -0
  578. package/dist/types/validation/index.d.ts.map +1 -0
  579. package/dist/types/validation/validateFileSizeByType.d.ts +32 -0
  580. package/dist/types/validation/validateFileSizeByType.d.ts.map +1 -0
  581. package/package.json +109 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatBytes.js","sources":["../../../src/string/formatBytes.ts"],"sourcesContent":["/**\n * Formats a byte count into a human-readable string.\n *\n * @example\n * formatBytes(0) // '0 B'\n * formatBytes(1024) // '1 KB'\n * formatBytes(1536, 1) // '1.5 KB'\n * formatBytes(1073741824) // '1 GB'\n * formatBytes(1234567890, 2) // '1.15 GB'\n *\n * @param bytes - Number of bytes\n * @param decimals - Decimal places (default: 2)\n * @returns Formatted string (e.g., '1.5 MB')\n */\nexport function formatBytes(bytes: number, decimals: number = 2): string {\n if (bytes === 0) return '0 B';\n const k = 1024;\n const dm = Math.max(0, decimals);\n const sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n}\n"],"names":["formatBytes","bytes","decimals","dm","Math","max","i","floor","log","parseFloat","pow","toFixed"],"mappings":"SAcgBA,EAAYC,EAAeC,EAAmB,GAC5D,GAAc,IAAVD,EAAa,MAAO,MACxB,MACME,EAAKC,KAAKC,IAAI,EAAGH,GAEjBI,EAAIF,KAAKG,MAAMH,KAAKI,IAAIP,GAASG,KAAKI,IAHlC,OAIV,MAAO,GAAGC,YAAYR,EAAQG,KAAKM,IAJzB,KAIgCJ,IAAIK,QAAQR,OAFxC,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,MAEwBG,IACtE"}
@@ -0,0 +1,2 @@
1
+ function o(o){if(o<1e3)return o>0?`${o}ms`:"0s";const h=Math.floor(o/1e3)%60,r=Math.floor(o/6e4)%60,t=Math.floor(o/36e5)%24,e=Math.floor(o/864e5),s=[];return e>0&&s.push(`${e}d`),t>0&&s.push(`${t}h`),r>0&&s.push(`${r}m`),h>0&&s.push(`${h}s`),s.join(" ")}export{o as formatDuration};
2
+ //# sourceMappingURL=formatDuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatDuration.js","sources":["../../../src/string/formatDuration.ts"],"sourcesContent":["/**\n * Formats milliseconds into a human-readable duration string.\n *\n * @example\n * formatDuration(0) // '0s'\n * formatDuration(5000) // '5s'\n * formatDuration(65000) // '1m 5s'\n * formatDuration(3661000) // '1h 1m 1s'\n * formatDuration(90061000) // '1d 1h 1m 1s'\n *\n * @param ms - Duration in milliseconds\n * @returns Human-readable duration string\n */\nexport function formatDuration(ms: number): string {\n if (ms < 1000) return ms > 0 ? `${ms}ms` : '0s';\n\n const seconds = Math.floor(ms / 1000) % 60;\n const minutes = Math.floor(ms / 60000) % 60;\n const hours = Math.floor(ms / 3600000) % 24;\n const days = Math.floor(ms / 86400000);\n\n const parts: string[] = [];\n if (days > 0) parts.push(`${days}d`);\n if (hours > 0) parts.push(`${hours}h`);\n if (minutes > 0) parts.push(`${minutes}m`);\n if (seconds > 0) parts.push(`${seconds}s`);\n\n return parts.join(' ');\n}\n"],"names":["formatDuration","ms","seconds","Math","floor","minutes","hours","days","parts","push","join"],"mappings":"AAaM,SAAUA,EAAeC,GAC7B,GAAIA,EAAK,IAAM,OAAOA,EAAK,EAAI,GAAGA,MAAS,KAE3C,MAAMC,EAAUC,KAAKC,MAAMH,EAAK,KAAQ,GAClCI,EAAUF,KAAKC,MAAMH,EAAK,KAAS,GACnCK,EAAQH,KAAKC,MAAMH,EAAK,MAAW,GACnCM,EAAOJ,KAAKC,MAAMH,EAAK,OAEvBO,EAAkB,GAMxB,OALID,EAAO,GAAGC,EAAMC,KAAK,GAAGF,MACxBD,EAAQ,GAAGE,EAAMC,KAAK,GAAGH,MACzBD,EAAU,GAAGG,EAAMC,KAAK,GAAGJ,MAC3BH,EAAU,GAAGM,EAAMC,KAAK,GAAGP,MAExBM,EAAME,KAAK,IACpB"}
@@ -0,0 +1,2 @@
1
+ const r=(r,t="en-US")=>{const n=Number(r);return isNaN(n)?String(r):new Intl.NumberFormat(t).format(n)};export{r as formatNumber};
2
+ //# sourceMappingURL=formatNumber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatNumber.js","sources":["../../../src/string/formatNumber.ts"],"sourcesContent":["/**\n * Formats a number or numeric string by adding thousands separators\n * according to the specified locale.\n *\n * If the value is not a number, returns the original string.\n *\n * @param {number | string} number - Number or string to format.\n * @param {string} [locale='en-US'] - Locale for formatting (e.g., 'en-US', 'ru-RU').\n * @returns {string} Formatted string with thousands separators or original value if not a number.\n *\n * @example\n * ```ts\n * formatNumber(1234567); // \"1,234,567\"\n * formatNumber(1234567, 'ru-RU'); // \"1 234 567\"\n * formatNumber(\"987654321\"); // \"987,654,321\"\n * formatNumber(\"abc\"); // \"abc\"\n * ```\n */\nexport const formatNumber = (\n number: number | string,\n locale: string = \"en-US\"\n): string => {\n const value = Number(number);\n\n if (!isNaN(value)) {\n return new Intl.NumberFormat(locale).format(value);\n }\n\n return String(number);\n};\n"],"names":["formatNumber","number","locale","value","Number","isNaN","String","Intl","NumberFormat","format"],"mappings":"AAkBO,MAAMA,EAAe,CAC1BC,EACAC,EAAiB,WAEjB,MAAMC,EAAQC,OAAOH,GAErB,OAAKI,MAAMF,GAIJG,OAAOL,GAHL,IAAIM,KAAKC,aAAaN,GAAQO,OAAON"}
@@ -0,0 +1,2 @@
1
+ function e(e){return e?e.replace(/<[^>]*>/g,"").replace(/\s+/g," ").trim():""}export{e as htmlToText};
2
+ //# sourceMappingURL=htmlToText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"htmlToText.js","sources":["../../../src/string/htmlToText.ts"],"sourcesContent":["/**\n * Converts an HTML string into plain text by removing all HTML tags,\n * normalizing whitespace, and trimming extra spaces.\n *\n * If the input is empty or falsy, returns an empty string.\n *\n * @param {string} html - The HTML string to convert.\n * @returns {string} The plain text result.\n *\n * @example\n * const html = `\n * <h1>Добро пожаловать в <b>MBank</b></h1>\n * <p>Первый цифровой <a href=\"https://mbank.example\">банк</a> в стране.</p>\n * <ul>\n * <li>Онлайн-операции</li>\n * <li>Мобильное приложение</li>\n * <li>Безопасные переводы</li>\n * </ul>\n * `;\n *\n * const text = htmlToText(html);\n * console.log(text);\n * // Output:\n * // \"Добро пожаловать в MBank Первый цифровой банк в стране. Онлайн-операции Мобильное приложение Безопасные переводы\"\n *\n\n */\nexport function htmlToText(html: string): string {\n if (!html) return \"\";\n\n return html\n .replace(/<[^>]*>/g, \"\")\n .replace(/\\s+/g, \" \")\n .trim();\n}\n"],"names":["htmlToText","html","replace","trim"],"mappings":"AA2BM,SAAUA,EAAWC,GACzB,OAAKA,EAEEA,EACJC,QAAQ,WAAY,IACpBA,QAAQ,OAAQ,KAChBC,OALe,EAMpB"}
@@ -0,0 +1,2 @@
1
+ export{capitalize}from"./capitalize.js";export{camelCase}from"./camelCase.js";export{deburr}from"./deburr.js";export{escapeHtml}from"./escapeHtml.js";export{escapeRegExp}from"./escapeRegExp.js";export{formatBytes}from"./formatBytes.js";export{formatDuration}from"./formatDuration.js";export{formatNumber}from"./formatNumber.js";export{htmlToText}from"./htmlToText.js";export{kebabCase}from"./kebabCase.js";export{maskString}from"./maskString.js";export{pascalCase}from"./pascalCase.js";export{pluralize}from"./pluralize.js";export{slugify}from"./slugify.js";export{snakeCase}from"./snakeCase.js";export{startCase}from"./startCase.js";export{template}from"./template.js";export{truncateString}from"./truncateString.js";export{words}from"./words.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import{words as o}from"./words.js";function r(r){return o(r).join("-")}export{r as kebabCase};
2
+ //# sourceMappingURL=kebabCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kebabCase.js","sources":["../../../src/string/kebabCase.ts"],"sourcesContent":["import { words } from './words.js';\n\n/**\n * Converts a string to kebab-case.\n * Handles spaces, underscores, camelCase, and PascalCase.\n *\n * @example\n * kebabCase('helloWorld') // 'hello-world'\n * kebabCase('FOO_BAR') // 'foo-bar'\n * kebabCase('some string here') // 'some-string-here'\n * kebabCase('PascalCase') // 'pascal-case'\n * kebabCase('') // ''\n *\n * @param str - String to convert\n * @returns kebab-case string\n */\nexport function kebabCase(str: string): string {\n return words(str).join('-');\n}\n"],"names":["kebabCase","str","words","join"],"mappings":"mCAgBM,SAAUA,EAAUC,GACxB,OAAOC,EAAMD,GAAKE,KAAK,IACzB"}
@@ -0,0 +1,2 @@
1
+ function e(e,t,n,r="*"){if(e.length<=t+n)return e;const c=e.slice(0,t),i=n>0?e.slice(-n):"",l=e.length-t-n;return c+r.repeat(l)+i}export{e as maskString};
2
+ //# sourceMappingURL=maskString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maskString.js","sources":["../../../src/string/maskString.ts"],"sourcesContent":["/**\n * Masks a portion of a string, revealing only start and end characters.\n * Useful for credit cards, phone numbers, emails, API keys.\n *\n * @example\n * maskString('1234567890', 4, 2) // '1234****90'\n * maskString('hello@example.com', 2, 4) // 'he***********e.com'\n * maskString('secret', 0, 0) // '******'\n * maskString('ab', 1, 1, '#') // 'ab' (nothing to mask)\n *\n * @param str - String to mask\n * @param visibleStart - Number of visible chars at start\n * @param visibleEnd - Number of visible chars at end\n * @param maskChar - Character used for masking (default: '*')\n * @returns Masked string\n */\nexport function maskString(\n str: string,\n visibleStart: number,\n visibleEnd: number,\n maskChar: string = '*'\n): string {\n if (str.length <= visibleStart + visibleEnd) return str;\n const start = str.slice(0, visibleStart);\n const end = visibleEnd > 0 ? str.slice(-visibleEnd) : '';\n const maskLen = str.length - visibleStart - visibleEnd;\n return start + maskChar.repeat(maskLen) + end;\n}\n"],"names":["maskString","str","visibleStart","visibleEnd","maskChar","length","start","slice","end","maskLen","repeat"],"mappings":"AAgBM,SAAUA,EACdC,EACAC,EACAC,EACAC,EAAmB,KAEnB,GAAIH,EAAII,QAAUH,EAAeC,EAAY,OAAOF,EACpD,MAAMK,EAAQL,EAAIM,MAAM,EAAGL,GACrBM,EAAML,EAAa,EAAIF,EAAIM,OAAOJ,GAAc,GAChDM,EAAUR,EAAII,OAASH,EAAeC,EAC5C,OAAOG,EAAQF,EAASM,OAAOD,GAAWD,CAC5C"}
@@ -0,0 +1,2 @@
1
+ import{words as r}from"./words.js";function o(o){return r(o).map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join("")}export{o as pascalCase};
2
+ //# sourceMappingURL=pascalCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pascalCase.js","sources":["../../../src/string/pascalCase.ts"],"sourcesContent":["import { words } from './words.js';\n\n/**\n * Converts a string to PascalCase.\n *\n * @example\n * pascalCase('hello world') // 'HelloWorld'\n * pascalCase('foo-bar-baz') // 'FooBarBaz'\n * pascalCase('some_snake_case') // 'SomeSnakeCase'\n * pascalCase('') // ''\n *\n * @param str - String to convert\n * @returns PascalCase string\n */\nexport function pascalCase(str: string): string {\n return words(str)\n .map(w => w.charAt(0).toUpperCase() + w.slice(1))\n .join('');\n}\n"],"names":["pascalCase","str","words","map","w","charAt","toUpperCase","slice","join"],"mappings":"mCAcM,SAAUA,EAAWC,GACzB,OAAOC,EAAMD,GACVE,IAAIC,GAAKA,EAAEC,OAAO,GAAGC,cAAgBF,EAAEG,MAAM,IAC7CC,KAAK,GACV"}
@@ -0,0 +1,2 @@
1
+ function n(n,r,t){return`${n} ${1===n?r:t??`${r}s`}`}export{n as pluralize};
2
+ //# sourceMappingURL=pluralize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluralize.js","sources":["../../../src/string/pluralize.ts"],"sourcesContent":["/**\n * Returns singular or plural form based on count.\n *\n * @example\n * pluralize(0, 'item') // '0 items'\n * pluralize(1, 'item') // '1 item'\n * pluralize(5, 'item') // '5 items'\n * pluralize(2, 'child', 'children') // '2 children'\n * pluralize(1, 'person', 'people') // '1 person'\n *\n * @param count - The number\n * @param singular - Singular form\n * @param plural - Plural form (default: singular + 's')\n * @returns Formatted count + word\n */\nexport function pluralize(count: number, singular: string, plural?: string): string {\n const word = count === 1 ? singular : (plural ?? `${singular}s`);\n return `${count} ${word}`;\n}\n"],"names":["pluralize","count","singular","plural"],"mappings":"SAegBA,EAAUC,EAAeC,EAAkBC,GAEzD,MAAO,GAAGF,KADa,IAAVA,EAAcC,EAAYC,GAAU,GAAGD,MAEtD"}
@@ -0,0 +1,2 @@
1
+ function e(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}export{e as slugify};
2
+ //# sourceMappingURL=slugify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slugify.js","sources":["../../../src/string/slugify.ts"],"sourcesContent":["/**\n * Converts a string to a URL-friendly slug.\n * Lowercases, replaces non-alphanumeric chars with hyphens, trims hyphens.\n *\n * @example\n * slugify('Hello World!') // 'hello-world'\n * slugify(' Crème Brûlée ') // 'cr-me-br-l-e'\n * slugify('foo---bar') // 'foo-bar'\n * slugify('') // ''\n *\n * @param str - String to slugify\n * @returns URL-safe slug\n */\nexport function slugify(str: string): string {\n return str\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '');\n}\n"],"names":["slugify","str","normalize","replace","toLowerCase"],"mappings":"AAaM,SAAUA,EAAQC,GACtB,OAAOA,EACJC,UAAU,OACVC,QAAQ,mBAAoB,IAC5BC,cACAD,QAAQ,cAAe,KACvBA,QAAQ,WAAY,GACzB"}
@@ -0,0 +1,2 @@
1
+ import{words as o}from"./words.js";function r(r){return o(r).join("_")}export{r as snakeCase};
2
+ //# sourceMappingURL=snakeCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snakeCase.js","sources":["../../../src/string/snakeCase.ts"],"sourcesContent":["import { words } from './words.js';\n\n/**\n * Converts a string to snake_case.\n * Handles spaces, hyphens, camelCase, and PascalCase.\n *\n * @example\n * snakeCase('helloWorld') // 'hello_world'\n * snakeCase('foo-bar-baz') // 'foo_bar_baz'\n * snakeCase('Some String Here') // 'some_string_here'\n * snakeCase('PascalCase') // 'pascal_case'\n * snakeCase('') // ''\n *\n * @param str - String to convert\n * @returns snake_case string\n */\nexport function snakeCase(str: string): string {\n return words(str).join('_');\n}\n"],"names":["snakeCase","str","words","join"],"mappings":"mCAgBM,SAAUA,EAAUC,GACxB,OAAOC,EAAMD,GAAKE,KAAK,IACzB"}
@@ -0,0 +1,2 @@
1
+ import{words as o}from"./words.js";function r(r){return o(r).map(o=>o.charAt(0).toUpperCase()+o.slice(1).toLowerCase()).join(" ")}export{r as startCase};
2
+ //# sourceMappingURL=startCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startCase.js","sources":["../../../src/string/startCase.ts"],"sourcesContent":["import { words } from './words.js';\n\n/**\n * Converts a string to Start Case (each word capitalized, separated by spaces).\n *\n * @example\n * startCase('hello world') // 'Hello World'\n * startCase('fooBarBaz') // 'Foo Bar Baz'\n * startCase('some_snake_case') // 'Some Snake Case'\n * startCase('') // ''\n *\n * @param str - String to convert\n * @returns Start Case string\n */\nexport function startCase(str: string): string {\n return words(str)\n .map(w => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase())\n .join(' ');\n}\n"],"names":["startCase","str","words","map","w","charAt","toUpperCase","slice","toLowerCase","join"],"mappings":"mCAcM,SAAUA,EAAUC,GACxB,OAAOC,EAAMD,GACVE,IAAIC,GAAKA,EAAEC,OAAO,GAAGC,cAAgBF,EAAEG,MAAM,GAAGC,eAChDC,KAAK,IACV"}
@@ -0,0 +1,2 @@
1
+ function r(r,n,t=/\{\{(.+?)\}\}/g){return r.replace(t,(r,t)=>{const e=n[t.trim()];return null!=e?String(e):""})}export{r as template};
2
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sources":["../../../src/string/template.ts"],"sourcesContent":["/**\n * Simple string template interpolation using `{{key}}` placeholders.\n *\n * @example\n * template('Hello, {{name}}!', { name: 'World' }) // 'Hello, World!'\n * template('{{a}} + {{b}} = {{c}}', { a: 1, b: 2, c: 3 }) // '1 + 2 = 3'\n * template('Hi <name>', { name: 'Ray' }, /<(.+?)>/g) // 'Hi Ray'\n *\n * @param str - Template string\n * @param data - Object with replacement values\n * @param regex - Custom pattern (default: /\\{\\{(.+?)\\}\\}/g)\n * @returns Interpolated string\n */\nexport function template(\n str: string,\n data: Record<string, any>,\n regex: RegExp = /\\{\\{(.+?)\\}\\}/g\n): string {\n return str.replace(regex, (_, key) => {\n const value = data[key.trim()];\n return value !== undefined && value !== null ? String(value) : '';\n });\n}\n"],"names":["template","str","data","regex","replace","_","key","value","trim","String"],"mappings":"AAaM,SAAUA,EACdC,EACAC,EACAC,EAAgB,kBAEhB,OAAOF,EAAIG,QAAQD,EAAO,CAACE,EAAGC,KAC5B,MAAMC,EAAQL,EAAKI,EAAIE,QACvB,OAAOD,QAAwCE,OAAOF,GAAS,IAEnE"}
@@ -0,0 +1,2 @@
1
+ function n(n,t){return n.length>t?n.substring(0,t)+"...":n}export{n as truncateString};
2
+ //# sourceMappingURL=truncateString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"truncateString.js","sources":["../../../src/string/truncateString.ts"],"sourcesContent":["/**\n * Truncates a string to a specified maximum length and adds an ellipsis (`...`) if truncated.\n *\n * @example\n * truncateString(\"Hello, world!\", 5) // \"Hello...\"\n * truncateString(\"Short\", 10) // \"Short\"\n *\n * @param str - The string to truncate\n * @param maxLength - Maximum length of the returned string\n * @returns The truncated string with ellipsis if needed, otherwise the original string\n */\nexport function truncateString(str: string, maxLength: number): string {\n if (str.length > maxLength) {\n return str.substring(0, maxLength) + \"...\";\n }\n return str;\n}\n"],"names":["truncateString","str","maxLength","length","substring"],"mappings":"AAWM,SAAUA,EAAeC,EAAaC,GAC1C,OAAID,EAAIE,OAASD,EACRD,EAAIG,UAAU,EAAGF,GAAa,MAEhCD,CACT"}
@@ -0,0 +1,2 @@
1
+ function e(e){return e?e.replace(/[^a-zA-Z0-9]+/g," ").replace(/([a-z])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").trim().toLowerCase().split(/\s+/):[]}export{e as words};
2
+ //# sourceMappingURL=words.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"words.js","sources":["../../../src/string/words.ts"],"sourcesContent":["/**\n * Splits a string into an array of words.\n * Handles spaces, hyphens, underscores, camelCase, and PascalCase boundaries.\n *\n * @example\n * words('helloWorld') // ['hello', 'world']\n * words('foo-bar_baz') // ['foo', 'bar', 'baz']\n * words('FOO_BAR') // ['foo', 'bar']\n * words('PascalCase') // ['pascal', 'case']\n * words('') // []\n *\n * @param str - String to split\n * @returns Array of lowercase words\n */\nexport function words(str: string): string[] {\n if (!str) return [];\n\n return str\n .replace(/[^a-zA-Z0-9]+/g, ' ')\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')\n .trim()\n .toLowerCase()\n .split(/\\s+/);\n}\n"],"names":["words","str","replace","trim","toLowerCase","split"],"mappings":"AAcM,SAAUA,EAAMC,GACpB,OAAKA,EAEEA,EACJC,QAAQ,iBAAkB,KAC1BA,QAAQ,kBAAmB,SAC3BA,QAAQ,wBAAyB,SACjCC,OACAC,cACAC,MAAM,OARQ,EASnB"}
@@ -0,0 +1,2 @@
1
+ export{validateFileSize}from"./validateFileSizeByType.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ function e(e,i,t,s){const o=t??(e=>e.type.startsWith("image/")?"image":e.type.startsWith("video/")?"video":"document"),r=o(e),d=i[r],a=e.size/1048576;if(void 0!==d&&a>d){return{isValid:!1,errorMessage:s??`File exceeds the limit of ${d} MB for ${r}.`,size:(e=>e.toFixed(2))(a)}}return{isValid:!0}}export{e as validateFileSize};
2
+ //# sourceMappingURL=validateFileSizeByType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateFileSizeByType.js","sources":["../../../src/validation/validateFileSizeByType.ts"],"sourcesContent":["/**\n * Validates the size of a file based on its type/category.\n * Returns an object indicating whether the file is valid and an optional error message.\n *\n * By default, supports three categories: 'image', 'video', 'document'.\n * You can provide a custom category resolver to extend support for other types.\n *\n * @param {File} file - The file to validate.\n * @param {Record<string, number>} sizeLimits - Maximum allowed sizes for each category in MB.\n * @param {(file: File) => string} [resolveCategory] - Optional function to determine the file's category.\n * @returns {{ isValid: boolean; errorMessage?: string }} Result of the validation.\n *\n * @example\n * const sizeLimits = { image: 5, video: 50, document: 10 };\n * const result = validateFileSize(fileInput.files[0], sizeLimits);\n * if (!result.isValid) {\n * console.error(result.errorMessage);\n * }\n *\n * @example\n * // Custom category resolver\n * const result = validateFileSize(file, { audio: 10, other: 5 }, file => {\n * if (file.type.startsWith('audio/')) return 'audio';\n * return 'other';\n * });\n */\nexport function validateFileSize(\n file: File,\n sizeLimits: Record<string, number>,\n resolveCategory?: (file: File) => string,\n error?: string\n): { isValid: boolean; errorMessage?: string; size?: string } {\n const categoryResolver =\n resolveCategory ??\n ((file: File) => {\n if (file.type.startsWith(\"image/\")) return \"image\";\n if (file.type.startsWith(\"video/\")) return \"video\";\n return \"document\";\n });\n\n const category = categoryResolver(file);\n const limitMB = sizeLimits[category];\n const fileSizeMB = file.size / (1024 * 1024);\n\n if (limitMB !== undefined && fileSizeMB > limitMB) {\n const formatSize = (size: number) => size.toFixed(2);\n return {\n isValid: false,\n errorMessage:\n error ?? `File exceeds the limit of ${limitMB} MB for ${category}.`,\n size: formatSize(fileSizeMB),\n };\n }\n\n return { isValid: true };\n}\n"],"names":["validateFileSize","file","sizeLimits","resolveCategory","error","categoryResolver","type","startsWith","category","limitMB","fileSizeMB","size","undefined","isValid","errorMessage","toFixed","formatSize"],"mappings":"AA0BM,SAAUA,EACdC,EACAC,EACAC,EACAC,GAEA,MAAMC,EACJF,IACEF,GACIA,EAAKK,KAAKC,WAAW,UAAkB,QACvCN,EAAKK,KAAKC,WAAW,UAAkB,QACpC,YAGLC,EAAWH,EAAiBJ,GAC5BQ,EAAUP,EAAWM,GACrBE,EAAaT,EAAKU,KAAI,QAE5B,QAAgBC,IAAZH,GAAyBC,EAAaD,EAAS,CAEjD,MAAO,CACLI,SAAS,EACTC,aACEV,GAAS,6BAA6BK,YAAkBD,KAC1DG,KALiB,CAACA,GAAiBA,EAAKI,QAAQ,GAK1CC,CAAWN,GAErB,CAEA,MAAO,CAAEG,SAAS,EACpB"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Checks if a value exists for a given key in any object within an array.
3
+ *
4
+ * Iterates over the array of objects and returns `true` if **any** object
5
+ * has the specified key and its value strictly equals the provided value.
6
+ *
7
+ * @example
8
+ * const users = [
9
+ * { id: '1', name: 'Alice' },
10
+ * { id: '2', name: 'Bob' }
11
+ * ];
12
+ *
13
+ * checkValueInArray(users, 'name', 'Alice') // true
14
+ * checkValueInArray(users, 'id', '3') // false
15
+ *
16
+ * @template T - The type of objects in the array
17
+ * @param {T[]} array - Array of objects to check
18
+ * @param {keyof T} key - Key to check in each object
19
+ * @param {T[keyof T]} value - Value to compare against
20
+ * @returns {boolean} `true` if at least one object has the key with the given value, otherwise `false`
21
+ */
22
+ export declare function checkValueInArray<T>(array: T[], key: keyof T, value: T[keyof T]): boolean;
23
+ //# sourceMappingURL=checkValueInArray.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkValueInArray.d.ts","sourceRoot":"","sources":["../../../src/array/checkValueInArray.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,KAAK,EAAE,CAAC,EAAE,EACV,GAAG,EAAE,MAAM,CAAC,EACZ,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAChB,OAAO,CAOT"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Splits an array into groups of the specified size.
3
+ *
4
+ * @example
5
+ * chunk([1, 2, 3, 4, 5], 2) // [[1, 2], [3, 4], [5]]
6
+ * chunk([1, 2, 3], 1) // [[1], [2], [3]]
7
+ * chunk([], 3) // []
8
+ *
9
+ * @param arr - Array to split
10
+ * @param size - Size of each chunk (must be > 0)
11
+ * @returns Array of chunks
12
+ * @throws {Error} If size is less than 1
13
+ */
14
+ export declare function chunk<T>(arr: readonly T[], size: number): T[][];
15
+ //# sourceMappingURL=chunk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk.d.ts","sourceRoot":"","sources":["../../../src/array/chunk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAU/D"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Splits a list into sub-lists based on a key returned from each item.
3
+ *
4
+ * @example
5
+ * const result = collectBy(
6
+ * [
7
+ * { type: 'breakfast', item: '☕️' },
8
+ * { type: 'lunch', item: '🌯' },
9
+ * { type: 'dinner', item: '🍝' },
10
+ * { type: 'breakfast', item: '🥐' },
11
+ * { type: 'lunch', item: '🍕' }
12
+ * ],
13
+ * (item) => item.type
14
+ * );
15
+ *
16
+ * @param list Array of items
17
+ * @param fn Function that extracts a key from each item
18
+ * @returns Array of groups, each group containing items with same key
19
+ */
20
+ export declare function collectBy<T, K extends string | number | symbol>(list: T[], fn: (item: T) => K): T[][];
21
+ //# sourceMappingURL=collectBy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collectBy.d.ts","sourceRoot":"","sources":["../../../src/array/collectBy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAC7D,IAAI,EAAE,CAAC,EAAE,EACT,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GACjB,CAAC,EAAE,EAAE,CAcP"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Removes all falsy values (false, null, 0, '', undefined, NaN) from an array.
3
+ * Returns a properly narrowed type excluding falsy values.
4
+ *
5
+ * @example
6
+ * compact([0, 1, false, 2, '', 3, null, undefined, NaN])
7
+ * // [1, 2, 3]
8
+ *
9
+ * @example
10
+ * compact(['hello', '', 'world', null])
11
+ * // ['hello', 'world']
12
+ *
13
+ * @param arr - Array to compact
14
+ * @returns New array without falsy values
15
+ */
16
+ type Falsy = false | null | undefined | 0 | '' | 0n;
17
+ export declare function compact<T>(arr: readonly (T | Falsy)[]): Exclude<T, Falsy>[];
18
+ export {};
19
+ //# sourceMappingURL=compact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../../src/array/compact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,KAAK,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAEpD,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAE3E"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Counts occurrences of each item based on a transformation function.
3
+ *
4
+ * @example
5
+ * countBy(['a', 'b', 'a', 'c', 'b', 'a'], x => x) // { a: 3, b: 2, c: 1 }
6
+ * countBy([1, 2, 3, 4, 5], x => x % 2 === 0 ? 'even' : 'odd') // { odd: 3, even: 2 }
7
+ *
8
+ * @param arr - Array to count
9
+ * @param fn - Function that returns the group key for each item
10
+ * @returns Object with keys and their counts
11
+ */
12
+ export declare function countBy<T>(arr: readonly T[], fn: (item: T) => string | number): Record<string, number>;
13
+ //# sourceMappingURL=countBy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countBy.d.ts","sourceRoot":"","sources":["../../../src/array/countBy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,CAAC,EACvB,GAAG,EAAE,SAAS,CAAC,EAAE,EACjB,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,GAC/B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOxB"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Returns elements from the first array that are not in the second array.
3
+ *
4
+ * @example
5
+ * difference([1, 2, 3, 4], [2, 4]) // [1, 3]
6
+ * difference(['a', 'b', 'c'], ['b']) // ['a', 'c']
7
+ * difference([1, 2], [1, 2]) // []
8
+ *
9
+ * @param arr1 - Source array
10
+ * @param arr2 - Array of elements to exclude
11
+ * @returns Array of elements only in arr1
12
+ */
13
+ export declare function difference<T>(arr1: readonly T[], arr2: readonly T[]): T[];
14
+ //# sourceMappingURL=difference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"difference.d.ts","sourceRoot":"","sources":["../../../src/array/difference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,CAGzE"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Returns all but the first n elements of an array.
3
+ *
4
+ * @example
5
+ * drop([1, 2, 3, 4, 5], 2) // [3, 4, 5]
6
+ * drop([1, 2], 5) // []
7
+ * drop([], 3) // []
8
+ *
9
+ * @param arr - Source array
10
+ * @param n - Number of elements to drop
11
+ * @returns New array without the first n elements
12
+ */
13
+ export declare function drop<T>(arr: readonly T[], n: number): T[];
14
+ //# sourceMappingURL=drop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drop.d.ts","sourceRoot":"","sources":["../../../src/array/drop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAEzD"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Drops leading elements while predicate returns true, returns the rest.
3
+ *
4
+ * @example
5
+ * dropWhile([1, 2, 3, 4, 1], x => x < 3) // [3, 4, 1]
6
+ * dropWhile([5, 4, 3], x => x > 3) // [3]
7
+ *
8
+ * @param arr - Source array
9
+ * @param fn - Predicate function
10
+ * @returns New array without leading elements that pass the predicate
11
+ */
12
+ export declare function dropWhile<T>(arr: readonly T[], fn: (item: T, index: number) => boolean): T[];
13
+ //# sourceMappingURL=dropWhile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropWhile.d.ts","sourceRoot":"","sources":["../../../src/array/dropWhile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,CAAC,EAAE,CAG5F"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Returns the first element of an array, or undefined if empty.
3
+ *
4
+ * @example
5
+ * first([1, 2, 3]) // 1
6
+ * first([]) // undefined
7
+ * first(['a', 'b']) // 'a'
8
+ *
9
+ * @param arr - Source array
10
+ * @returns First element or undefined
11
+ */
12
+ export declare function first<T>(arr: readonly T[]): T | undefined;
13
+ //# sourceMappingURL=first.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"first.d.ts","sourceRoot":"","sources":["../../../src/array/first.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAEzD"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Flattens a nested array by one level.
3
+ *
4
+ * @example
5
+ * flatten([[1, 2], [3, 4], [5]]) // [1, 2, 3, 4, 5]
6
+ * flatten([[1, [2]], [3]]) // [1, [2], 3]
7
+ * flatten([]) // []
8
+ *
9
+ * @param arr - Nested array to flatten
10
+ * @returns Flattened array (one level)
11
+ */
12
+ export declare function flatten<T>(arr: readonly (T | readonly T[])[]): T[];
13
+ //# sourceMappingURL=flatten.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flatten.d.ts","sourceRoot":"","sources":["../../../src/array/flatten.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAElE"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Groups array elements by the result of a function.
3
+ *
4
+ * @example
5
+ * groupBy([1, 2, 3, 4], x => x % 2 === 0 ? 'even' : 'odd')
6
+ * // { odd: [1, 3], even: [2, 4] }
7
+ *
8
+ * @example
9
+ * groupBy([{ type: 'a' }, { type: 'b' }, { type: 'a' }], x => x.type)
10
+ * // { a: [{ type: 'a' }, { type: 'a' }], b: [{ type: 'b' }] }
11
+ *
12
+ * @param list - Array to group
13
+ * @param fn - Function to determine group key
14
+ * @returns Object with grouped arrays
15
+ */
16
+ export declare function groupBy<T>(list: T[], fn: (item: T) => string): Record<string, T[]>;
17
+ //# sourceMappingURL=groupBy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupBy.d.ts","sourceRoot":"","sources":["../../../src/array/groupBy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,CAAC,EACvB,IAAI,EAAE,CAAC,EAAE,EACT,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GACtB,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAYrB"}
@@ -0,0 +1,31 @@
1
+ export { chunk } from './chunk.js';
2
+ export { compact } from './compact.js';
3
+ export { countBy } from './countBy.js';
4
+ export { difference } from './difference.js';
5
+ export { drop } from './drop.js';
6
+ export { dropWhile } from './dropWhile.js';
7
+ export { first } from './first.js';
8
+ export { flatten } from './flatten.js';
9
+ export { groupBy } from './groupBy.js';
10
+ export { intersection } from './intersection.js';
11
+ export { keyBy } from './keyBy.js';
12
+ export { last } from './last.js';
13
+ export { maxBy } from './maxBy.js';
14
+ export { minBy } from './minBy.js';
15
+ export { partition } from './partition.js';
16
+ export { sample } from './sample.js';
17
+ export { shuffle } from './shuffle.js';
18
+ export { sortBy } from './sortBy.js';
19
+ export { take } from './take.js';
20
+ export { takeWhile } from './takeWhile.js';
21
+ export { union } from './union.js';
22
+ export { uniq } from './uniq.js';
23
+ export { uniqBy } from './uniqBy.js';
24
+ export { without } from './without.js';
25
+ export { xor } from './xor.js';
26
+ export { zip } from './zip.js';
27
+ export { zipObject } from './zipObject.js';
28
+ export { collectBy } from './collectBy.js';
29
+ export { checkValueInArray } from './checkValueInArray.js';
30
+ export { sameElementsInArrays } from './sameElementsInArrays.js';
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/array/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Returns elements that exist in both arrays.
3
+ *
4
+ * @example
5
+ * intersection([1, 2, 3], [2, 3, 4]) // [2, 3]
6
+ * intersection(['a', 'b'], ['b', 'c']) // ['b']
7
+ * intersection([1, 2], [3, 4]) // []
8
+ *
9
+ * @param arr1 - First array
10
+ * @param arr2 - Second array
11
+ * @returns Array of common elements
12
+ */
13
+ export declare function intersection<T>(arr1: readonly T[], arr2: readonly T[]): T[];
14
+ //# sourceMappingURL=intersection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intersection.d.ts","sourceRoot":"","sources":["../../../src/array/intersection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,CAG3E"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Creates an object composed of keys generated from the results of running
3
+ * each element through the iteratee. The value of each key is the last
4
+ * element responsible for generating the key.
5
+ *
6
+ * @example
7
+ * keyBy([{ id: 'a1', name: 'Alice' }, { id: 'b2', name: 'Bob' }], item => item.id)
8
+ * // { a1: { id: 'a1', name: 'Alice' }, b2: { id: 'b2', name: 'Bob' } }
9
+ *
10
+ * @param arr - Array to index
11
+ * @param fn - Function that returns the key for each element
12
+ * @returns Object indexed by the generated keys
13
+ */
14
+ export declare function keyBy<T>(arr: readonly T[], fn: (item: T) => string | number): Record<string | number, T>;
15
+ //# sourceMappingURL=keyBy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyBy.d.ts","sourceRoot":"","sources":["../../../src/array/keyBy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CAAC,CAAC,EACrB,GAAG,EAAE,SAAS,CAAC,EAAE,EACjB,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,GAC/B,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,CAM5B"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Returns the last element of an array, or undefined if empty.
3
+ *
4
+ * @example
5
+ * last([1, 2, 3]) // 3
6
+ * last([]) // undefined
7
+ * last(['a', 'b']) // 'b'
8
+ *
9
+ * @param arr - Source array
10
+ * @returns Last element or undefined
11
+ */
12
+ export declare function last<T>(arr: readonly T[]): T | undefined;
13
+ //# sourceMappingURL=last.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"last.d.ts","sourceRoot":"","sources":["../../../src/array/last.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAExD"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Returns the element with the maximum value as determined by a function.
3
+ *
4
+ * @example
5
+ * maxBy([{ age: 30 }, { age: 20 }, { age: 25 }], x => x.age) // { age: 30 }
6
+ * maxBy([], x => x) // undefined
7
+ *
8
+ * @param arr - Array to search
9
+ * @param fn - Function that returns a numeric value for comparison
10
+ * @returns Element with the maximum value, or undefined if empty
11
+ */
12
+ export declare function maxBy<T>(arr: readonly T[], fn: (item: T) => number): T | undefined;
13
+ //# sourceMappingURL=maxBy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maxBy.d.ts","sourceRoot":"","sources":["../../../src/array/maxBy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,CAAC,GAAG,SAAS,CAYlF"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Returns the element with the minimum value as determined by a function.
3
+ *
4
+ * @example
5
+ * minBy([{ age: 30 }, { age: 20 }, { age: 25 }], x => x.age) // { age: 20 }
6
+ * minBy([], x => x) // undefined
7
+ *
8
+ * @param arr - Array to search
9
+ * @param fn - Function that returns a numeric value for comparison
10
+ * @returns Element with the minimum value, or undefined if empty
11
+ */
12
+ export declare function minBy<T>(arr: readonly T[], fn: (item: T) => number): T | undefined;
13
+ //# sourceMappingURL=minBy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minBy.d.ts","sourceRoot":"","sources":["../../../src/array/minBy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,CAAC,GAAG,SAAS,CAYlF"}
@@ -0,0 +1,13 @@
1
+ import type { Predicate } from '../types/index.js';
2
+ /**
3
+ * Partitions an array into two arrays based on a predicate.
4
+ *
5
+ * @example
6
+ * partition([1, 2, 3, 4], x => x > 2) // [[3, 4], [1, 2]]
7
+ *
8
+ * @param list - Array to partition
9
+ * @param predicate - Function to test each element
10
+ * @returns Tuple of [passed, failed] arrays
11
+ */
12
+ export declare function partition<T>(list: T[], predicate: Predicate<T>): [T[], T[]];
13
+ //# sourceMappingURL=partition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partition.d.ts","sourceRoot":"","sources":["../../../src/array/partition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAa3E"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Finds the first element that exists in all provided arrays.
3
+ *
4
+ * Works with any type (numbers, strings, booleans, etc.).
5
+ *
6
+ * @example
7
+ * sameElementInMultipleArrays([1, 2, 3], [3, 4, 5], [3, 6]) // 3
8
+ * sameElementInMultipleArrays(['a', 'b'], ['b', 'c'], ['b', 'd']) // 'b'
9
+ * sameElementInMultipleArrays([1, 2], [3, 4]) // null
10
+ *
11
+ * @param {...T[][]} arrays - Two or more arrays to check
12
+ * @returns {T | null} The first element found in all arrays, or `null` if none found
13
+ */
14
+ export declare const sameElementsInArrays: <T>(...arrays: T[][]) => T | null;
15
+ //# sourceMappingURL=sameElementsInArrays.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sameElementsInArrays.d.ts","sourceRoot":"","sources":["../../../src/array/sameElementsInArrays.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,KAAG,CAAC,GAAG,IAK9D,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Returns a random element from an array.
3
+ *
4
+ * @example
5
+ * sample([1, 2, 3, 4, 5]) // random element
6
+ * sample(['a', 'b', 'c']) // random element
7
+ *
8
+ * @param arr - Source array
9
+ * @returns Random element, or undefined if empty
10
+ */
11
+ export declare function sample<T>(arr: readonly T[]): T | undefined;
12
+ //# sourceMappingURL=sample.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sample.d.ts","sourceRoot":"","sources":["../../../src/array/sample.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAG1D"}