@sapphire/iterator-utilities 1.1.0-next.63f6019b.0 → 2.0.0-next.1e7d2dec

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 (468) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +81 -15
  3. package/dist/cjs/index.cjs +218 -1
  4. package/dist/cjs/index.cjs.map +1 -1
  5. package/dist/cjs/index.d.cts +33 -10
  6. package/dist/cjs/lib/all.cjs +12 -0
  7. package/dist/cjs/lib/all.cjs.map +1 -0
  8. package/dist/cjs/lib/all.d.cts +2 -0
  9. package/dist/cjs/lib/any.cjs +12 -0
  10. package/dist/cjs/lib/any.cjs.map +1 -0
  11. package/dist/cjs/lib/any.d.cts +2 -0
  12. package/dist/cjs/lib/append.cjs +1 -1
  13. package/dist/cjs/lib/append.cjs.map +1 -1
  14. package/dist/cjs/lib/at.cjs +1 -1
  15. package/dist/cjs/lib/at.cjs.map +1 -1
  16. package/dist/cjs/lib/average.cjs +1 -1
  17. package/dist/cjs/lib/average.cjs.map +1 -1
  18. package/dist/cjs/lib/chain.cjs +1 -1
  19. package/dist/cjs/lib/chain.cjs.map +1 -1
  20. package/dist/cjs/lib/chunk.cjs +1 -1
  21. package/dist/cjs/lib/chunk.cjs.map +1 -1
  22. package/dist/cjs/lib/collect.cjs +12 -0
  23. package/dist/cjs/lib/collect.cjs.map +1 -0
  24. package/dist/cjs/lib/collect.d.cts +2 -0
  25. package/dist/cjs/lib/collectInto.cjs +17 -0
  26. package/dist/cjs/lib/collectInto.cjs.map +1 -0
  27. package/dist/cjs/lib/collectInto.d.cts +29 -0
  28. package/dist/cjs/lib/compact.cjs +1 -1
  29. package/dist/cjs/lib/compact.cjs.map +1 -1
  30. package/dist/cjs/lib/compare.cjs +15 -0
  31. package/dist/cjs/lib/compare.cjs.map +1 -0
  32. package/dist/cjs/lib/compare.d.cts +32 -0
  33. package/dist/cjs/lib/compareBy.cjs +26 -0
  34. package/dist/cjs/lib/compareBy.cjs.map +1 -0
  35. package/dist/cjs/lib/compareBy.d.cts +31 -0
  36. package/dist/cjs/lib/compress.cjs +1 -1
  37. package/dist/cjs/lib/compress.cjs.map +1 -1
  38. package/dist/cjs/lib/contains.cjs +2 -3
  39. package/dist/cjs/lib/contains.cjs.map +1 -1
  40. package/dist/cjs/lib/count.cjs +1 -1
  41. package/dist/cjs/lib/count.cjs.map +1 -1
  42. package/dist/cjs/lib/cycle.cjs +1 -1
  43. package/dist/cjs/lib/cycle.cjs.map +1 -1
  44. package/dist/cjs/lib/difference.cjs +1 -1
  45. package/dist/cjs/lib/difference.cjs.map +1 -1
  46. package/dist/cjs/lib/drop.cjs +4 -8
  47. package/dist/cjs/lib/drop.cjs.map +1 -1
  48. package/dist/cjs/lib/drop.d.cts +1 -1
  49. package/dist/cjs/lib/dropLast.cjs +2 -4
  50. package/dist/cjs/lib/dropLast.cjs.map +1 -1
  51. package/dist/cjs/lib/dropLast.d.cts +1 -1
  52. package/dist/cjs/lib/dropWhile.cjs +1 -2
  53. package/dist/cjs/lib/dropWhile.cjs.map +1 -1
  54. package/dist/cjs/lib/dropWhile.d.cts +1 -1
  55. package/dist/cjs/lib/empty.cjs +1 -1
  56. package/dist/cjs/lib/empty.cjs.map +1 -1
  57. package/dist/cjs/lib/enumerate.cjs +1 -1
  58. package/dist/cjs/lib/enumerate.cjs.map +1 -1
  59. package/dist/cjs/lib/equal.cjs +15 -0
  60. package/dist/cjs/lib/equal.cjs.map +1 -0
  61. package/dist/cjs/lib/equal.d.cts +26 -0
  62. package/dist/cjs/lib/equalBy.cjs +23 -0
  63. package/dist/cjs/lib/equalBy.cjs.map +1 -0
  64. package/dist/cjs/lib/equalBy.d.cts +27 -0
  65. package/dist/cjs/lib/every.cjs +2 -3
  66. package/dist/cjs/lib/every.cjs.map +1 -1
  67. package/dist/cjs/lib/filter.cjs +2 -4
  68. package/dist/cjs/lib/filter.cjs.map +1 -1
  69. package/dist/cjs/lib/filter.d.cts +1 -1
  70. package/dist/cjs/lib/find.cjs +1 -1
  71. package/dist/cjs/lib/find.cjs.map +1 -1
  72. package/dist/cjs/lib/findIndex.cjs +1 -1
  73. package/dist/cjs/lib/findIndex.cjs.map +1 -1
  74. package/dist/cjs/lib/first.cjs +1 -1
  75. package/dist/cjs/lib/first.cjs.map +1 -1
  76. package/dist/cjs/lib/flat.cjs +1 -1
  77. package/dist/cjs/lib/flat.cjs.map +1 -1
  78. package/dist/cjs/lib/flatMap.cjs +1 -1
  79. package/dist/cjs/lib/flatMap.cjs.map +1 -1
  80. package/dist/cjs/lib/forEach.cjs +1 -1
  81. package/dist/cjs/lib/forEach.cjs.map +1 -1
  82. package/dist/cjs/lib/from.cjs +1 -1
  83. package/dist/cjs/lib/from.cjs.map +1 -1
  84. package/dist/cjs/lib/fuse.cjs +26 -0
  85. package/dist/cjs/lib/fuse.cjs.map +1 -0
  86. package/dist/cjs/lib/fuse.d.cts +47 -0
  87. package/dist/cjs/lib/greaterOrEqualThan.cjs +17 -0
  88. package/dist/cjs/lib/greaterOrEqualThan.cjs.map +1 -0
  89. package/dist/cjs/lib/greaterOrEqualThan.d.cts +32 -0
  90. package/dist/cjs/lib/greaterThan.cjs +17 -0
  91. package/dist/cjs/lib/greaterThan.cjs.map +1 -0
  92. package/dist/cjs/lib/greaterThan.d.cts +32 -0
  93. package/dist/cjs/lib/indexOf.cjs +1 -2
  94. package/dist/cjs/lib/indexOf.cjs.map +1 -1
  95. package/dist/cjs/lib/indexOf.d.cts +1 -1
  96. package/dist/cjs/lib/inspect.cjs +25 -0
  97. package/dist/cjs/lib/inspect.cjs.map +1 -0
  98. package/dist/cjs/lib/inspect.d.cts +39 -0
  99. package/dist/cjs/lib/intersect.cjs +1 -1
  100. package/dist/cjs/lib/intersect.cjs.map +1 -1
  101. package/dist/cjs/lib/intersperse.cjs +35 -0
  102. package/dist/cjs/lib/intersperse.cjs.map +1 -0
  103. package/dist/cjs/lib/intersperse.d.cts +30 -0
  104. package/dist/cjs/lib/isEmpty.cjs +1 -1
  105. package/dist/cjs/lib/isEmpty.cjs.map +1 -1
  106. package/dist/cjs/lib/isSorted.cjs +15 -0
  107. package/dist/cjs/lib/isSorted.cjs.map +1 -0
  108. package/dist/cjs/lib/isSorted.d.cts +35 -0
  109. package/dist/cjs/lib/isSortedBy.cjs +26 -0
  110. package/dist/cjs/lib/isSortedBy.cjs.map +1 -0
  111. package/dist/cjs/lib/isSortedBy.d.cts +32 -0
  112. package/dist/cjs/lib/isSortedByKey.cjs +29 -0
  113. package/dist/cjs/lib/isSortedByKey.cjs.map +1 -0
  114. package/dist/cjs/lib/isSortedByKey.d.cts +30 -0
  115. package/dist/cjs/lib/last.cjs +1 -1
  116. package/dist/cjs/lib/last.cjs.map +1 -1
  117. package/dist/cjs/lib/lessOrEqualThan.cjs +17 -0
  118. package/dist/cjs/lib/lessOrEqualThan.cjs.map +1 -0
  119. package/dist/cjs/lib/lessOrEqualThan.d.cts +32 -0
  120. package/dist/cjs/lib/lessThan.cjs +17 -0
  121. package/dist/cjs/lib/lessThan.cjs.map +1 -0
  122. package/dist/cjs/lib/lessThan.d.cts +32 -0
  123. package/dist/cjs/lib/map.cjs +1 -1
  124. package/dist/cjs/lib/map.cjs.map +1 -1
  125. package/dist/cjs/lib/max.cjs +4 -9
  126. package/dist/cjs/lib/max.cjs.map +1 -1
  127. package/dist/cjs/lib/max.d.cts +8 -3
  128. package/dist/cjs/lib/maxBy.cjs +27 -0
  129. package/dist/cjs/lib/maxBy.cjs.map +1 -0
  130. package/dist/cjs/lib/maxBy.d.cts +31 -0
  131. package/dist/cjs/lib/maxByKey.cjs +32 -0
  132. package/dist/cjs/lib/maxByKey.cjs.map +1 -0
  133. package/dist/cjs/lib/maxByKey.d.cts +32 -0
  134. package/dist/cjs/lib/min.cjs +4 -9
  135. package/dist/cjs/lib/min.cjs.map +1 -1
  136. package/dist/cjs/lib/min.d.cts +8 -3
  137. package/dist/cjs/lib/minBy.cjs +27 -0
  138. package/dist/cjs/lib/minBy.cjs.map +1 -0
  139. package/dist/cjs/lib/minBy.d.cts +31 -0
  140. package/dist/cjs/lib/minByKey.cjs +32 -0
  141. package/dist/cjs/lib/minByKey.cjs.map +1 -0
  142. package/dist/cjs/lib/minByKey.d.cts +31 -0
  143. package/dist/cjs/lib/notEqual.cjs +15 -0
  144. package/dist/cjs/lib/notEqual.cjs.map +1 -0
  145. package/dist/cjs/lib/notEqual.d.cts +26 -0
  146. package/dist/cjs/lib/nth.cjs +12 -0
  147. package/dist/cjs/lib/nth.cjs.map +1 -0
  148. package/dist/cjs/lib/nth.d.cts +2 -0
  149. package/dist/cjs/lib/partition.cjs +1 -1
  150. package/dist/cjs/lib/partition.cjs.map +1 -1
  151. package/dist/cjs/lib/peekable.cjs +2 -3
  152. package/dist/cjs/lib/peekable.cjs.map +1 -1
  153. package/dist/cjs/lib/peekable.d.cts +1 -1
  154. package/dist/cjs/lib/position.cjs +12 -0
  155. package/dist/cjs/lib/position.cjs.map +1 -0
  156. package/dist/cjs/lib/position.d.cts +2 -0
  157. package/dist/cjs/lib/prepend.cjs +1 -1
  158. package/dist/cjs/lib/prepend.cjs.map +1 -1
  159. package/dist/cjs/lib/product.cjs +1 -1
  160. package/dist/cjs/lib/product.cjs.map +1 -1
  161. package/dist/cjs/lib/range.cjs +1 -1
  162. package/dist/cjs/lib/range.cjs.map +1 -1
  163. package/dist/cjs/lib/reduce.cjs +2 -3
  164. package/dist/cjs/lib/reduce.cjs.map +1 -1
  165. package/dist/cjs/lib/repeat.cjs +1 -1
  166. package/dist/cjs/lib/repeat.cjs.map +1 -1
  167. package/dist/cjs/lib/reverse.cjs +3 -6
  168. package/dist/cjs/lib/reverse.cjs.map +1 -1
  169. package/dist/cjs/lib/shared/_assertFunction.cjs +1 -1
  170. package/dist/cjs/lib/shared/_assertFunction.cjs.map +1 -1
  171. package/dist/cjs/lib/shared/_assertNotNegative.cjs +1 -1
  172. package/dist/cjs/lib/shared/_assertNotNegative.cjs.map +1 -1
  173. package/dist/cjs/lib/shared/_assertPositive.cjs +1 -1
  174. package/dist/cjs/lib/shared/_assertPositive.cjs.map +1 -1
  175. package/dist/cjs/lib/shared/_compare.cjs +36 -0
  176. package/dist/cjs/lib/shared/_compare.cjs.map +1 -0
  177. package/dist/cjs/lib/shared/_compare.d.cts +20 -0
  178. package/dist/cjs/lib/shared/_makeIterableIterator.cjs +1 -1
  179. package/dist/cjs/lib/shared/_makeIterableIterator.cjs.map +1 -1
  180. package/dist/cjs/lib/shared/_toIntegerOrInfinityOrThrow.cjs +4 -7
  181. package/dist/cjs/lib/shared/_toIntegerOrInfinityOrThrow.cjs.map +1 -1
  182. package/dist/cjs/lib/shared/_toIntegerOrThrow.cjs +4 -7
  183. package/dist/cjs/lib/shared/_toIntegerOrThrow.cjs.map +1 -1
  184. package/dist/cjs/lib/shared/_toNumberOrThrow.cjs +1 -1
  185. package/dist/cjs/lib/shared/_toNumberOrThrow.cjs.map +1 -1
  186. package/dist/cjs/lib/shared/comparators.cjs +28 -0
  187. package/dist/cjs/lib/shared/comparators.cjs.map +1 -0
  188. package/dist/cjs/lib/shared/comparators.d.cts +34 -0
  189. package/dist/cjs/lib/skip.cjs +12 -0
  190. package/dist/cjs/lib/skip.cjs.map +1 -0
  191. package/dist/cjs/lib/skip.d.cts +2 -0
  192. package/dist/cjs/lib/skipLast.cjs +12 -0
  193. package/dist/cjs/lib/skipLast.cjs.map +1 -0
  194. package/dist/cjs/lib/skipLast.d.cts +2 -0
  195. package/dist/cjs/lib/skipWhile.cjs +12 -0
  196. package/dist/cjs/lib/skipWhile.cjs.map +1 -0
  197. package/dist/cjs/lib/skipWhile.d.cts +2 -0
  198. package/dist/cjs/lib/slice.cjs +2 -3
  199. package/dist/cjs/lib/slice.cjs.map +1 -1
  200. package/dist/cjs/lib/some.cjs +1 -1
  201. package/dist/cjs/lib/some.cjs.map +1 -1
  202. package/dist/cjs/lib/sorted.cjs +1 -1
  203. package/dist/cjs/lib/sorted.cjs.map +1 -1
  204. package/dist/cjs/lib/starMap.cjs +1 -1
  205. package/dist/cjs/lib/starMap.cjs.map +1 -1
  206. package/dist/cjs/lib/stepBy.cjs +29 -0
  207. package/dist/cjs/lib/stepBy.cjs.map +1 -0
  208. package/dist/cjs/lib/stepBy.d.cts +24 -0
  209. package/dist/cjs/lib/sum.cjs +1 -1
  210. package/dist/cjs/lib/sum.cjs.map +1 -1
  211. package/dist/cjs/lib/take.cjs +2 -3
  212. package/dist/cjs/lib/take.cjs.map +1 -1
  213. package/dist/cjs/lib/takeLast.cjs +3 -5
  214. package/dist/cjs/lib/takeLast.cjs.map +1 -1
  215. package/dist/cjs/lib/takeWhile.cjs +12 -0
  216. package/dist/cjs/lib/takeWhile.cjs.map +1 -0
  217. package/dist/cjs/lib/takeWhile.d.cts +2 -0
  218. package/dist/cjs/lib/tee.cjs +2 -3
  219. package/dist/cjs/lib/tee.cjs.map +1 -1
  220. package/dist/cjs/lib/toArray.cjs +1 -1
  221. package/dist/cjs/lib/toArray.cjs.map +1 -1
  222. package/dist/cjs/lib/toIterableIterator.cjs +1 -1
  223. package/dist/cjs/lib/toIterableIterator.cjs.map +1 -1
  224. package/dist/cjs/lib/union.cjs +1 -1
  225. package/dist/cjs/lib/union.cjs.map +1 -1
  226. package/dist/cjs/lib/union.d.cts +1 -0
  227. package/dist/cjs/lib/unique.cjs +1 -1
  228. package/dist/cjs/lib/unique.cjs.map +1 -1
  229. package/dist/cjs/lib/unzip.cjs +2 -3
  230. package/dist/cjs/lib/unzip.cjs.map +1 -1
  231. package/dist/cjs/lib/zip.cjs +2 -3
  232. package/dist/cjs/lib/zip.cjs.map +1 -1
  233. package/dist/esm/{chunk-G5GHKT7C.mjs → chunk-PAWJFY3S.mjs} +2 -2
  234. package/dist/esm/chunk-PAWJFY3S.mjs.map +1 -0
  235. package/dist/esm/index.d.mts +33 -10
  236. package/dist/esm/index.mjs +32 -1
  237. package/dist/esm/index.mjs.map +1 -1
  238. package/dist/esm/lib/all.d.mts +2 -0
  239. package/dist/esm/lib/all.mjs +4 -0
  240. package/dist/esm/lib/all.mjs.map +1 -0
  241. package/dist/esm/lib/any.d.mts +2 -0
  242. package/dist/esm/lib/any.mjs +4 -0
  243. package/dist/esm/lib/any.mjs.map +1 -0
  244. package/dist/esm/lib/append.mjs +2 -2
  245. package/dist/esm/lib/append.mjs.map +1 -1
  246. package/dist/esm/lib/at.mjs +2 -2
  247. package/dist/esm/lib/at.mjs.map +1 -1
  248. package/dist/esm/lib/average.mjs +2 -2
  249. package/dist/esm/lib/average.mjs.map +1 -1
  250. package/dist/esm/lib/chain.mjs +2 -2
  251. package/dist/esm/lib/chain.mjs.map +1 -1
  252. package/dist/esm/lib/chunk.mjs +2 -2
  253. package/dist/esm/lib/chunk.mjs.map +1 -1
  254. package/dist/esm/lib/collect.d.mts +2 -0
  255. package/dist/esm/lib/collect.mjs +4 -0
  256. package/dist/esm/lib/collect.mjs.map +1 -0
  257. package/dist/esm/lib/collectInto.d.mts +29 -0
  258. package/dist/esm/lib/collectInto.mjs +14 -0
  259. package/dist/esm/lib/collectInto.mjs.map +1 -0
  260. package/dist/esm/lib/compact.mjs +2 -2
  261. package/dist/esm/lib/compact.mjs.map +1 -1
  262. package/dist/esm/lib/compare.d.mts +32 -0
  263. package/dist/esm/lib/compare.mjs +12 -0
  264. package/dist/esm/lib/compare.mjs.map +1 -0
  265. package/dist/esm/lib/compareBy.d.mts +31 -0
  266. package/dist/esm/lib/compareBy.mjs +23 -0
  267. package/dist/esm/lib/compareBy.mjs.map +1 -0
  268. package/dist/esm/lib/compress.mjs +2 -2
  269. package/dist/esm/lib/compress.mjs.map +1 -1
  270. package/dist/esm/lib/contains.mjs +3 -4
  271. package/dist/esm/lib/contains.mjs.map +1 -1
  272. package/dist/esm/lib/count.mjs +2 -2
  273. package/dist/esm/lib/count.mjs.map +1 -1
  274. package/dist/esm/lib/cycle.mjs +2 -2
  275. package/dist/esm/lib/cycle.mjs.map +1 -1
  276. package/dist/esm/lib/difference.mjs +2 -2
  277. package/dist/esm/lib/difference.mjs.map +1 -1
  278. package/dist/esm/lib/drop.d.mts +1 -1
  279. package/dist/esm/lib/drop.mjs +6 -9
  280. package/dist/esm/lib/drop.mjs.map +1 -1
  281. package/dist/esm/lib/dropLast.d.mts +1 -1
  282. package/dist/esm/lib/dropLast.mjs +4 -5
  283. package/dist/esm/lib/dropLast.mjs.map +1 -1
  284. package/dist/esm/lib/dropWhile.d.mts +1 -1
  285. package/dist/esm/lib/dropWhile.mjs +3 -3
  286. package/dist/esm/lib/dropWhile.mjs.map +1 -1
  287. package/dist/esm/lib/empty.mjs +2 -2
  288. package/dist/esm/lib/empty.mjs.map +1 -1
  289. package/dist/esm/lib/enumerate.mjs +2 -2
  290. package/dist/esm/lib/enumerate.mjs.map +1 -1
  291. package/dist/esm/lib/equal.d.mts +26 -0
  292. package/dist/esm/lib/equal.mjs +11 -0
  293. package/dist/esm/lib/equal.mjs.map +1 -0
  294. package/dist/esm/lib/equalBy.d.mts +27 -0
  295. package/dist/esm/lib/equalBy.mjs +19 -0
  296. package/dist/esm/lib/equalBy.mjs.map +1 -0
  297. package/dist/esm/lib/every.mjs +3 -4
  298. package/dist/esm/lib/every.mjs.map +1 -1
  299. package/dist/esm/lib/filter.d.mts +1 -1
  300. package/dist/esm/lib/filter.mjs +4 -5
  301. package/dist/esm/lib/filter.mjs.map +1 -1
  302. package/dist/esm/lib/find.mjs +2 -2
  303. package/dist/esm/lib/find.mjs.map +1 -1
  304. package/dist/esm/lib/findIndex.mjs +2 -2
  305. package/dist/esm/lib/findIndex.mjs.map +1 -1
  306. package/dist/esm/lib/first.mjs +2 -2
  307. package/dist/esm/lib/first.mjs.map +1 -1
  308. package/dist/esm/lib/flat.mjs +2 -2
  309. package/dist/esm/lib/flat.mjs.map +1 -1
  310. package/dist/esm/lib/flatMap.mjs +2 -2
  311. package/dist/esm/lib/flatMap.mjs.map +1 -1
  312. package/dist/esm/lib/forEach.mjs +2 -2
  313. package/dist/esm/lib/forEach.mjs.map +1 -1
  314. package/dist/esm/lib/from.mjs +2 -2
  315. package/dist/esm/lib/from.mjs.map +1 -1
  316. package/dist/esm/lib/fuse.d.mts +47 -0
  317. package/dist/esm/lib/fuse.mjs +23 -0
  318. package/dist/esm/lib/fuse.mjs.map +1 -0
  319. package/dist/esm/lib/greaterOrEqualThan.d.mts +32 -0
  320. package/dist/esm/lib/greaterOrEqualThan.mjs +13 -0
  321. package/dist/esm/lib/greaterOrEqualThan.mjs.map +1 -0
  322. package/dist/esm/lib/greaterThan.d.mts +32 -0
  323. package/dist/esm/lib/greaterThan.mjs +13 -0
  324. package/dist/esm/lib/greaterThan.mjs.map +1 -0
  325. package/dist/esm/lib/indexOf.d.mts +1 -1
  326. package/dist/esm/lib/indexOf.mjs +3 -3
  327. package/dist/esm/lib/indexOf.mjs.map +1 -1
  328. package/dist/esm/lib/inspect.d.mts +39 -0
  329. package/dist/esm/lib/inspect.mjs +22 -0
  330. package/dist/esm/lib/inspect.mjs.map +1 -0
  331. package/dist/esm/lib/intersect.mjs +2 -2
  332. package/dist/esm/lib/intersect.mjs.map +1 -1
  333. package/dist/esm/lib/intersperse.d.mts +30 -0
  334. package/dist/esm/lib/intersperse.mjs +32 -0
  335. package/dist/esm/lib/intersperse.mjs.map +1 -0
  336. package/dist/esm/lib/isEmpty.mjs +2 -2
  337. package/dist/esm/lib/isEmpty.mjs.map +1 -1
  338. package/dist/esm/lib/isSorted.d.mts +35 -0
  339. package/dist/esm/lib/isSorted.mjs +12 -0
  340. package/dist/esm/lib/isSorted.mjs.map +1 -0
  341. package/dist/esm/lib/isSortedBy.d.mts +32 -0
  342. package/dist/esm/lib/isSortedBy.mjs +23 -0
  343. package/dist/esm/lib/isSortedBy.mjs.map +1 -0
  344. package/dist/esm/lib/isSortedByKey.d.mts +30 -0
  345. package/dist/esm/lib/isSortedByKey.mjs +26 -0
  346. package/dist/esm/lib/isSortedByKey.mjs.map +1 -0
  347. package/dist/esm/lib/last.mjs +2 -2
  348. package/dist/esm/lib/last.mjs.map +1 -1
  349. package/dist/esm/lib/lessOrEqualThan.d.mts +32 -0
  350. package/dist/esm/lib/lessOrEqualThan.mjs +13 -0
  351. package/dist/esm/lib/lessOrEqualThan.mjs.map +1 -0
  352. package/dist/esm/lib/lessThan.d.mts +32 -0
  353. package/dist/esm/lib/lessThan.mjs +13 -0
  354. package/dist/esm/lib/lessThan.mjs.map +1 -0
  355. package/dist/esm/lib/map.mjs +2 -2
  356. package/dist/esm/lib/map.mjs.map +1 -1
  357. package/dist/esm/lib/max.d.mts +8 -3
  358. package/dist/esm/lib/max.mjs +5 -10
  359. package/dist/esm/lib/max.mjs.map +1 -1
  360. package/dist/esm/lib/maxBy.d.mts +31 -0
  361. package/dist/esm/lib/maxBy.mjs +24 -0
  362. package/dist/esm/lib/maxBy.mjs.map +1 -0
  363. package/dist/esm/lib/maxByKey.d.mts +32 -0
  364. package/dist/esm/lib/maxByKey.mjs +29 -0
  365. package/dist/esm/lib/maxByKey.mjs.map +1 -0
  366. package/dist/esm/lib/min.d.mts +8 -3
  367. package/dist/esm/lib/min.mjs +5 -10
  368. package/dist/esm/lib/min.mjs.map +1 -1
  369. package/dist/esm/lib/minBy.d.mts +31 -0
  370. package/dist/esm/lib/minBy.mjs +24 -0
  371. package/dist/esm/lib/minBy.mjs.map +1 -0
  372. package/dist/esm/lib/minByKey.d.mts +31 -0
  373. package/dist/esm/lib/minByKey.mjs +29 -0
  374. package/dist/esm/lib/minByKey.mjs.map +1 -0
  375. package/dist/esm/lib/notEqual.d.mts +26 -0
  376. package/dist/esm/lib/notEqual.mjs +11 -0
  377. package/dist/esm/lib/notEqual.mjs.map +1 -0
  378. package/dist/esm/lib/nth.d.mts +2 -0
  379. package/dist/esm/lib/nth.mjs +4 -0
  380. package/dist/esm/lib/nth.mjs.map +1 -0
  381. package/dist/esm/lib/partition.mjs +2 -2
  382. package/dist/esm/lib/partition.mjs.map +1 -1
  383. package/dist/esm/lib/peekable.d.mts +1 -1
  384. package/dist/esm/lib/peekable.mjs +3 -4
  385. package/dist/esm/lib/peekable.mjs.map +1 -1
  386. package/dist/esm/lib/position.d.mts +2 -0
  387. package/dist/esm/lib/position.mjs +4 -0
  388. package/dist/esm/lib/position.mjs.map +1 -0
  389. package/dist/esm/lib/prepend.mjs +2 -2
  390. package/dist/esm/lib/prepend.mjs.map +1 -1
  391. package/dist/esm/lib/product.mjs +2 -2
  392. package/dist/esm/lib/product.mjs.map +1 -1
  393. package/dist/esm/lib/range.mjs +2 -2
  394. package/dist/esm/lib/range.mjs.map +1 -1
  395. package/dist/esm/lib/reduce.mjs +3 -4
  396. package/dist/esm/lib/reduce.mjs.map +1 -1
  397. package/dist/esm/lib/repeat.mjs +2 -2
  398. package/dist/esm/lib/repeat.mjs.map +1 -1
  399. package/dist/esm/lib/reverse.mjs +4 -7
  400. package/dist/esm/lib/reverse.mjs.map +1 -1
  401. package/dist/esm/lib/shared/_assertFunction.mjs +2 -2
  402. package/dist/esm/lib/shared/_assertFunction.mjs.map +1 -1
  403. package/dist/esm/lib/shared/_assertNotNegative.mjs +2 -2
  404. package/dist/esm/lib/shared/_assertNotNegative.mjs.map +1 -1
  405. package/dist/esm/lib/shared/_assertPositive.mjs +2 -2
  406. package/dist/esm/lib/shared/_assertPositive.mjs.map +1 -1
  407. package/dist/esm/lib/shared/_compare.d.mts +20 -0
  408. package/dist/esm/lib/shared/_compare.mjs +30 -0
  409. package/dist/esm/lib/shared/_compare.mjs.map +1 -0
  410. package/dist/esm/lib/shared/_makeIterableIterator.mjs +2 -2
  411. package/dist/esm/lib/shared/_makeIterableIterator.mjs.map +1 -1
  412. package/dist/esm/lib/shared/_toIntegerOrInfinityOrThrow.mjs +5 -8
  413. package/dist/esm/lib/shared/_toIntegerOrInfinityOrThrow.mjs.map +1 -1
  414. package/dist/esm/lib/shared/_toIntegerOrThrow.mjs +5 -8
  415. package/dist/esm/lib/shared/_toIntegerOrThrow.mjs.map +1 -1
  416. package/dist/esm/lib/shared/_toNumberOrThrow.mjs +2 -2
  417. package/dist/esm/lib/shared/_toNumberOrThrow.mjs.map +1 -1
  418. package/dist/esm/lib/shared/comparators.d.mts +34 -0
  419. package/dist/esm/lib/shared/comparators.mjs +21 -0
  420. package/dist/esm/lib/shared/comparators.mjs.map +1 -0
  421. package/dist/esm/lib/skip.d.mts +2 -0
  422. package/dist/esm/lib/skip.mjs +4 -0
  423. package/dist/esm/lib/skip.mjs.map +1 -0
  424. package/dist/esm/lib/skipLast.d.mts +2 -0
  425. package/dist/esm/lib/skipLast.mjs +4 -0
  426. package/dist/esm/lib/skipLast.mjs.map +1 -0
  427. package/dist/esm/lib/skipWhile.d.mts +2 -0
  428. package/dist/esm/lib/skipWhile.mjs +4 -0
  429. package/dist/esm/lib/skipWhile.mjs.map +1 -0
  430. package/dist/esm/lib/slice.mjs +3 -4
  431. package/dist/esm/lib/slice.mjs.map +1 -1
  432. package/dist/esm/lib/some.mjs +2 -2
  433. package/dist/esm/lib/some.mjs.map +1 -1
  434. package/dist/esm/lib/sorted.mjs +2 -2
  435. package/dist/esm/lib/sorted.mjs.map +1 -1
  436. package/dist/esm/lib/starMap.mjs +2 -2
  437. package/dist/esm/lib/starMap.mjs.map +1 -1
  438. package/dist/esm/lib/stepBy.d.mts +24 -0
  439. package/dist/esm/lib/stepBy.mjs +26 -0
  440. package/dist/esm/lib/stepBy.mjs.map +1 -0
  441. package/dist/esm/lib/sum.mjs +2 -2
  442. package/dist/esm/lib/sum.mjs.map +1 -1
  443. package/dist/esm/lib/take.mjs +3 -4
  444. package/dist/esm/lib/take.mjs.map +1 -1
  445. package/dist/esm/lib/takeLast.mjs +4 -6
  446. package/dist/esm/lib/takeLast.mjs.map +1 -1
  447. package/dist/esm/lib/takeWhile.d.mts +2 -0
  448. package/dist/esm/lib/takeWhile.mjs +4 -0
  449. package/dist/esm/lib/takeWhile.mjs.map +1 -0
  450. package/dist/esm/lib/tee.mjs +3 -4
  451. package/dist/esm/lib/tee.mjs.map +1 -1
  452. package/dist/esm/lib/toArray.mjs +2 -2
  453. package/dist/esm/lib/toArray.mjs.map +1 -1
  454. package/dist/esm/lib/toIterableIterator.mjs +2 -2
  455. package/dist/esm/lib/toIterableIterator.mjs.map +1 -1
  456. package/dist/esm/lib/union.d.mts +1 -0
  457. package/dist/esm/lib/union.mjs +2 -2
  458. package/dist/esm/lib/union.mjs.map +1 -1
  459. package/dist/esm/lib/unique.mjs +2 -2
  460. package/dist/esm/lib/unique.mjs.map +1 -1
  461. package/dist/esm/lib/unzip.mjs +3 -4
  462. package/dist/esm/lib/unzip.mjs.map +1 -1
  463. package/dist/esm/lib/zip.mjs +3 -4
  464. package/dist/esm/lib/zip.mjs.map +1 -1
  465. package/dist/iife/index.global.js +413 -95
  466. package/dist/iife/index.global.js.map +1 -1
  467. package/package.json +299 -28
  468. package/dist/esm/chunk-G5GHKT7C.mjs.map +0 -1
@@ -4,6 +4,15 @@ var SapphireIteratorUtilities = (function (exports) {
4
4
  var __defProp = Object.defineProperty;
5
5
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
6
 
7
+ // src/lib/shared/_assertFunction.ts
8
+ function assertFunction(value) {
9
+ if (typeof value !== "function") {
10
+ throw new TypeError(`${value} must be a function`);
11
+ }
12
+ return value;
13
+ }
14
+ __name(assertFunction, "assertFunction");
15
+
7
16
  // src/lib/from.ts
8
17
  function from(value) {
9
18
  if (typeof value === "object" && value !== null) {
@@ -42,6 +51,30 @@ var SapphireIteratorUtilities = (function (exports) {
42
51
  }
43
52
  __name(toIterableIterator, "toIterableIterator");
44
53
 
54
+ // src/lib/every.ts
55
+ function every(iterable, callbackFn) {
56
+ callbackFn = assertFunction(callbackFn);
57
+ let index = 0;
58
+ for (const value of toIterableIterator(iterable)) {
59
+ if (!callbackFn(value, index++)) return false;
60
+ }
61
+ return true;
62
+ }
63
+ __name(every, "every");
64
+
65
+ // src/lib/some.ts
66
+ function some(iterable, callbackFn) {
67
+ callbackFn = assertFunction(callbackFn);
68
+ let index = 0;
69
+ for (const value of toIterableIterator(iterable)) {
70
+ if (callbackFn(value, index++)) {
71
+ return true;
72
+ }
73
+ }
74
+ return false;
75
+ }
76
+ __name(some, "some");
77
+
45
78
  // src/lib/chain.ts
46
79
  function* chain(...iterables) {
47
80
  for (const iterable of iterables) {
@@ -100,12 +133,9 @@ var SapphireIteratorUtilities = (function (exports) {
100
133
  // src/lib/shared/_toIntegerOrInfinityOrThrow.ts
101
134
  function toIntegerOrInfinityOrThrow(value) {
102
135
  const number = toNumberOrThrow(value);
103
- if (Number.isNaN(number) || number === 0)
104
- return 0;
105
- if (number === Number.POSITIVE_INFINITY)
106
- return Number.POSITIVE_INFINITY;
107
- if (number === Number.NEGATIVE_INFINITY)
108
- return Number.NEGATIVE_INFINITY;
136
+ if (Number.isNaN(number) || number === 0) return 0;
137
+ if (number === Number.POSITIVE_INFINITY) return Number.POSITIVE_INFINITY;
138
+ if (number === Number.NEGATIVE_INFINITY) return Number.NEGATIVE_INFINITY;
109
139
  return Math.trunc(number);
110
140
  }
111
141
  __name(toIntegerOrInfinityOrThrow, "toIntegerOrInfinityOrThrow");
@@ -114,13 +144,10 @@ var SapphireIteratorUtilities = (function (exports) {
114
144
  function drop(iterable, count2) {
115
145
  count2 = assertNotNegative(toIntegerOrInfinityOrThrow(count2), count2);
116
146
  const resolvedIterable = toIterableIterator(iterable);
117
- if (count2 === 0)
118
- return resolvedIterable;
119
- if (count2 === Number.POSITIVE_INFINITY)
120
- return empty();
147
+ if (count2 === 0) return resolvedIterable;
148
+ if (count2 === Number.POSITIVE_INFINITY) return empty();
121
149
  for (let i = 0; i < count2; i++) {
122
- if (resolvedIterable.next().done)
123
- break;
150
+ if (resolvedIterable.next().done) break;
124
151
  }
125
152
  return resolvedIterable;
126
153
  }
@@ -139,15 +166,6 @@ var SapphireIteratorUtilities = (function (exports) {
139
166
  }
140
167
  __name(at, "at");
141
168
 
142
- // src/lib/shared/_assertFunction.ts
143
- function assertFunction(value) {
144
- if (typeof value !== "function") {
145
- throw new TypeError(`${value} must be a function`);
146
- }
147
- return value;
148
- }
149
- __name(assertFunction, "assertFunction");
150
-
151
169
  // src/lib/map.ts
152
170
  function* map(iterable, callbackFn) {
153
171
  callbackFn = assertFunction(callbackFn);
@@ -182,12 +200,9 @@ var SapphireIteratorUtilities = (function (exports) {
182
200
  // src/lib/shared/_toIntegerOrThrow.ts
183
201
  function toIntegerOrThrow(value) {
184
202
  const number = toNumberOrThrow(value);
185
- if (Number.isNaN(number) || number === 0)
186
- return 0;
187
- if (number === Number.POSITIVE_INFINITY)
188
- throw new RangeError("+Infinity cannot be represented as an integer");
189
- if (number === Number.NEGATIVE_INFINITY)
190
- throw new RangeError("-Infinity cannot be represented as an integer");
203
+ if (Number.isNaN(number) || number === 0) return 0;
204
+ if (number === Number.POSITIVE_INFINITY) throw new RangeError("+Infinity cannot be represented as an integer");
205
+ if (number === Number.NEGATIVE_INFINITY) throw new RangeError("-Infinity cannot be represented as an integer");
191
206
  return Math.trunc(number);
192
207
  }
193
208
  __name(toIntegerOrThrow, "toIntegerOrThrow");
@@ -209,13 +224,27 @@ var SapphireIteratorUtilities = (function (exports) {
209
224
  }
210
225
  __name(chunk, "chunk");
211
226
 
227
+ // src/lib/toArray.ts
228
+ function toArray(iterable) {
229
+ return [...toIterableIterator(iterable)];
230
+ }
231
+ __name(toArray, "toArray");
232
+
233
+ // src/lib/collectInto.ts
234
+ function collectInto(iterable, output) {
235
+ for (const value of toIterableIterator(iterable)) {
236
+ output.push(value);
237
+ }
238
+ return output;
239
+ }
240
+ __name(collectInto, "collectInto");
241
+
212
242
  // src/lib/filter.ts
213
243
  function* filter(iterable, callbackFn) {
214
244
  callbackFn = assertFunction(callbackFn);
215
245
  let index = 0;
216
246
  for (const value of toIterableIterator(iterable)) {
217
- if (callbackFn(value, index++))
218
- yield value;
247
+ if (callbackFn(value, index++)) yield value;
219
248
  }
220
249
  }
221
250
  __name(filter, "filter");
@@ -226,6 +255,69 @@ var SapphireIteratorUtilities = (function (exports) {
226
255
  }
227
256
  __name(compact, "compact");
228
257
 
258
+ // src/lib/shared/_compare.ts
259
+ function compareIteratorElements(x, y, comparator) {
260
+ if (typeof x === "undefined") {
261
+ if (typeof y === "undefined") return 0;
262
+ return 1;
263
+ }
264
+ if (typeof y === "undefined") {
265
+ return -1;
266
+ }
267
+ return comparator(x, y);
268
+ }
269
+ __name(compareIteratorElements, "compareIteratorElements");
270
+ function orderingIsLess(ordering) {
271
+ return ordering < 0;
272
+ }
273
+ __name(orderingIsLess, "orderingIsLess");
274
+ function orderingIsEqual(ordering) {
275
+ return ordering === 0;
276
+ }
277
+ __name(orderingIsEqual, "orderingIsEqual");
278
+ function orderingIsGreater(ordering) {
279
+ return ordering > 0;
280
+ }
281
+ __name(orderingIsGreater, "orderingIsGreater");
282
+
283
+ // src/lib/compareBy.ts
284
+ function compareBy(iterable, other, comparator) {
285
+ const iterator1 = from(other);
286
+ for (const x of toIterableIterator(iterable)) {
287
+ const result1 = iterator1.next();
288
+ if (result1.done) return 1;
289
+ const y = result1.value;
290
+ const comparison = compareIteratorElements(x, y, comparator);
291
+ if (!orderingIsEqual(comparison)) {
292
+ return orderingIsLess(comparison) ? -1 : 1;
293
+ }
294
+ }
295
+ return iterator1.next().done ? 0 : -1;
296
+ }
297
+ __name(compareBy, "compareBy");
298
+
299
+ // src/lib/shared/comparators.ts
300
+ function swap(cb) {
301
+ return (x, y) => 0 - cb(x, y);
302
+ }
303
+ __name(swap, "swap");
304
+ function defaultCompare(x, y) {
305
+ return ascNumber(String(x), String(y));
306
+ }
307
+ __name(defaultCompare, "defaultCompare");
308
+ var descString = swap(defaultCompare);
309
+ function ascNumber(x, y) {
310
+ return (x > y) - (x < y);
311
+ }
312
+ __name(ascNumber, "ascNumber");
313
+ var descNumber = swap(ascNumber);
314
+
315
+ // src/lib/compare.ts
316
+ function compare(iterable, other) {
317
+ return compareBy(iterable, other, defaultCompare);
318
+ }
319
+ __name(compare, "compare");
320
+
229
321
  // src/lib/compress.ts
230
322
  function* compress(iterable, selectors) {
231
323
  const resolvedSelectors = from(selectors);
@@ -244,8 +336,7 @@ var SapphireIteratorUtilities = (function (exports) {
244
336
  // src/lib/contains.ts
245
337
  function contains(iterable, value) {
246
338
  for (const element of toIterableIterator(iterable)) {
247
- if (element === value)
248
- return true;
339
+ if (element === value) return true;
249
340
  }
250
341
  return false;
251
342
  }
@@ -287,8 +378,7 @@ var SapphireIteratorUtilities = (function (exports) {
287
378
  // src/lib/take.ts
288
379
  function take(iterable, count2) {
289
380
  count2 = assertNotNegative(toIntegerOrInfinityOrThrow(count2), count2);
290
- if (count2 === 0)
291
- return empty();
381
+ if (count2 === 0) return empty();
292
382
  let i = 0;
293
383
  const resolvedIterable = from(iterable);
294
384
  return makeIterableIterator(
@@ -297,18 +387,11 @@ var SapphireIteratorUtilities = (function (exports) {
297
387
  }
298
388
  __name(take, "take");
299
389
 
300
- // src/lib/toArray.ts
301
- function toArray(iterable) {
302
- return [...toIterableIterator(iterable)];
303
- }
304
- __name(toArray, "toArray");
305
-
306
390
  // src/lib/dropLast.ts
307
391
  function dropLast(iterable, count2) {
308
392
  count2 = assertNotNegative(toIntegerOrInfinityOrThrow(count2), count2);
309
393
  const array = toArray(iterable);
310
- if (array.length <= count2)
311
- return empty();
394
+ if (array.length <= count2) return empty();
312
395
  return take(array.values(), array.length - count2);
313
396
  }
314
397
  __name(dropLast, "dropLast");
@@ -334,17 +417,23 @@ var SapphireIteratorUtilities = (function (exports) {
334
417
  }
335
418
  __name(enumerate, "enumerate");
336
419
 
337
- // src/lib/every.ts
338
- function every(iterable, callbackFn) {
420
+ // src/lib/equalBy.ts
421
+ function equalBy(iterable, other, callbackFn) {
339
422
  callbackFn = assertFunction(callbackFn);
340
- let index = 0;
341
- for (const value of toIterableIterator(iterable)) {
342
- if (!callbackFn(value, index++))
343
- return false;
423
+ const iterator1 = from(other);
424
+ for (const value0 of toIterableIterator(iterable)) {
425
+ const result1 = iterator1.next();
426
+ if (result1.done || !callbackFn(value0, result1.value)) return false;
344
427
  }
345
- return true;
428
+ return iterator1.next().done === true;
346
429
  }
347
- __name(every, "every");
430
+ __name(equalBy, "equalBy");
431
+
432
+ // src/lib/equal.ts
433
+ function equal(iterable, other) {
434
+ return equalBy(iterable, other, (a, b) => a === b);
435
+ }
436
+ __name(equal, "equal");
348
437
 
349
438
  // src/lib/find.ts
350
439
  function find(iterable, callbackFn) {
@@ -394,6 +483,37 @@ var SapphireIteratorUtilities = (function (exports) {
394
483
  }
395
484
  __name(forEach, "forEach");
396
485
 
486
+ // src/lib/fuse.ts
487
+ function fuse(iterable) {
488
+ let ended = false;
489
+ const iterator = toIterableIterator(iterable);
490
+ return makeIterableIterator(() => {
491
+ if (ended) {
492
+ return { done: true, value: void 0 };
493
+ }
494
+ const result = iterator.next();
495
+ if (result.done) {
496
+ ended = true;
497
+ }
498
+ return result;
499
+ });
500
+ }
501
+ __name(fuse, "fuse");
502
+
503
+ // src/lib/greaterOrEqualThan.ts
504
+ function greaterOrEqualThan(iterable, other) {
505
+ const result = compare(iterable, other);
506
+ return !orderingIsLess(result);
507
+ }
508
+ __name(greaterOrEqualThan, "greaterOrEqualThan");
509
+
510
+ // src/lib/greaterThan.ts
511
+ function greaterThan(iterable, other) {
512
+ const result = compare(iterable, other);
513
+ return orderingIsGreater(result);
514
+ }
515
+ __name(greaterThan, "greaterThan");
516
+
397
517
  // src/lib/indexOf.ts
398
518
  function indexOf(iterable, value) {
399
519
  let index = 0;
@@ -407,6 +527,21 @@ var SapphireIteratorUtilities = (function (exports) {
407
527
  }
408
528
  __name(indexOf, "indexOf");
409
529
 
530
+ // src/lib/inspect.ts
531
+ function inspect(iterable, callbackFn) {
532
+ callbackFn = assertFunction(callbackFn);
533
+ let index = 0;
534
+ const iterator = from(iterable);
535
+ return makeIterableIterator(() => {
536
+ const result = iterator.next();
537
+ if (!result.done) {
538
+ callbackFn(result.value, index++);
539
+ }
540
+ return result;
541
+ });
542
+ }
543
+ __name(inspect, "inspect");
544
+
410
545
  // src/lib/intersect.ts
411
546
  function intersect(first2, second) {
412
547
  const set = new Set(toIterableIterator(second));
@@ -414,12 +549,78 @@ var SapphireIteratorUtilities = (function (exports) {
414
549
  }
415
550
  __name(intersect, "intersect");
416
551
 
552
+ // src/lib/intersperse.ts
553
+ function intersperse(iterable, separator) {
554
+ let started = false;
555
+ let nextItem;
556
+ let nextItemTaken = false;
557
+ const iterator = from(iterable);
558
+ return makeIterableIterator(() => {
559
+ if (started) {
560
+ if (nextItemTaken) {
561
+ nextItemTaken = false;
562
+ return { done: false, value: nextItem };
563
+ }
564
+ const result = iterator.next();
565
+ if (result.done) {
566
+ return { done: true, value: void 0 };
567
+ }
568
+ nextItem = result.value;
569
+ nextItemTaken = true;
570
+ return { done: false, value: separator };
571
+ }
572
+ started = true;
573
+ return iterator.next();
574
+ });
575
+ }
576
+ __name(intersperse, "intersperse");
577
+
417
578
  // src/lib/isEmpty.ts
418
579
  function isEmpty(iterable) {
419
580
  return from(iterable).next().done ?? false;
420
581
  }
421
582
  __name(isEmpty, "isEmpty");
422
583
 
584
+ // src/lib/isSortedBy.ts
585
+ function isSortedBy(iterable, comparator) {
586
+ comparator = assertFunction(comparator);
587
+ const iterator = toIterableIterator(iterable);
588
+ const result = iterator.next();
589
+ if (result.done) return true;
590
+ let previous = result.value;
591
+ for (const current of iterator) {
592
+ const comparison = compareIteratorElements(previous, current, comparator);
593
+ if (orderingIsGreater(comparison)) return false;
594
+ previous = current;
595
+ }
596
+ return true;
597
+ }
598
+ __name(isSortedBy, "isSortedBy");
599
+
600
+ // src/lib/isSorted.ts
601
+ function isSorted(iterable) {
602
+ return isSortedBy(iterable, defaultCompare);
603
+ }
604
+ __name(isSorted, "isSorted");
605
+
606
+ // src/lib/isSortedByKey.ts
607
+ function isSortedByKey(iterable, callbackFn, comparator = defaultCompare) {
608
+ callbackFn = assertFunction(callbackFn);
609
+ const iterator = toIterableIterator(iterable);
610
+ const result = iterator.next();
611
+ if (result.done) return true;
612
+ let previousKey = callbackFn(result.value, 0);
613
+ let index = 1;
614
+ for (const current of iterator) {
615
+ const currentKey = callbackFn(current, index++);
616
+ const comparison = compareIteratorElements(previousKey, currentKey, comparator);
617
+ if (orderingIsGreater(comparison)) return false;
618
+ previousKey = currentKey;
619
+ }
620
+ return true;
621
+ }
622
+ __name(isSortedByKey, "isSortedByKey");
623
+
423
624
  // src/lib/last.ts
424
625
  function last(iterable) {
425
626
  let last2;
@@ -430,28 +631,114 @@ var SapphireIteratorUtilities = (function (exports) {
430
631
  }
431
632
  __name(last, "last");
432
633
 
634
+ // src/lib/lessOrEqualThan.ts
635
+ function lessOrEqualThan(iterable, other) {
636
+ const result = compare(iterable, other);
637
+ return !orderingIsGreater(result);
638
+ }
639
+ __name(lessOrEqualThan, "lessOrEqualThan");
640
+
641
+ // src/lib/lessThan.ts
642
+ function lessThan(iterable, other) {
643
+ const result = compare(iterable, other);
644
+ return orderingIsLess(result);
645
+ }
646
+ __name(lessThan, "lessThan");
647
+
648
+ // src/lib/maxBy.ts
649
+ function maxBy(iterable, comparator) {
650
+ comparator = assertFunction(comparator);
651
+ const iterator = toIterableIterator(iterable);
652
+ const first2 = iterator.next();
653
+ if (first2.done) return null;
654
+ let maximum = first2.value;
655
+ for (const value of iterator) {
656
+ const comparison = compareIteratorElements(value, maximum, comparator);
657
+ if (!orderingIsLess(comparison)) {
658
+ maximum = value;
659
+ }
660
+ }
661
+ return maximum;
662
+ }
663
+ __name(maxBy, "maxBy");
664
+
433
665
  // src/lib/max.ts
434
666
  function max(iterable) {
435
- let max2 = null;
436
- for (const value of map(iterable, toNumberOrThrow)) {
437
- if (max2 === null || value > max2)
438
- max2 = value;
439
- }
440
- return max2;
667
+ return maxBy(iterable, defaultCompare);
441
668
  }
442
669
  __name(max, "max");
443
670
 
671
+ // src/lib/maxByKey.ts
672
+ function maxByKey(iterable, callbackFn, comparator = defaultCompare) {
673
+ callbackFn = assertFunction(callbackFn);
674
+ const iterator = toIterableIterator(iterable);
675
+ const first2 = iterator.next();
676
+ if (first2.done) return null;
677
+ let maximum = first2.value;
678
+ let maximumKey = callbackFn(maximum, 0);
679
+ let index = 1;
680
+ for (const value of iterator) {
681
+ const key = callbackFn(value, index++);
682
+ const comparison = compareIteratorElements(maximumKey, key, comparator);
683
+ if (!orderingIsGreater(comparison)) {
684
+ maximum = value;
685
+ maximumKey = key;
686
+ }
687
+ }
688
+ return maximum;
689
+ }
690
+ __name(maxByKey, "maxByKey");
691
+
692
+ // src/lib/minBy.ts
693
+ function minBy(iterable, comparator) {
694
+ comparator = assertFunction(comparator);
695
+ const iterator = toIterableIterator(iterable);
696
+ const first2 = iterator.next();
697
+ if (first2.done) return null;
698
+ let minimum = first2.value;
699
+ for (const value of iterator) {
700
+ const comparison = compareIteratorElements(value, minimum, comparator);
701
+ if (!orderingIsGreater(comparison)) {
702
+ minimum = value;
703
+ }
704
+ }
705
+ return minimum;
706
+ }
707
+ __name(minBy, "minBy");
708
+
444
709
  // src/lib/min.ts
445
710
  function min(iterable) {
446
- let min2 = null;
447
- for (const value of map(iterable, toNumberOrThrow)) {
448
- if (min2 === null || value < min2)
449
- min2 = value;
450
- }
451
- return min2;
711
+ return minBy(iterable, defaultCompare);
452
712
  }
453
713
  __name(min, "min");
454
714
 
715
+ // src/lib/minByKey.ts
716
+ function minByKey(iterable, callbackFn, comparator = defaultCompare) {
717
+ callbackFn = assertFunction(callbackFn);
718
+ const iterator = toIterableIterator(iterable);
719
+ const first2 = iterator.next();
720
+ if (first2.done) return null;
721
+ let minimum = first2.value;
722
+ let minimumKey = callbackFn(minimum, 0);
723
+ let index = 1;
724
+ for (const value of iterator) {
725
+ const key = callbackFn(value, index++);
726
+ const comparison = compareIteratorElements(minimumKey, key, comparator);
727
+ if (!orderingIsLess(comparison)) {
728
+ minimum = value;
729
+ minimumKey = key;
730
+ }
731
+ }
732
+ return minimum;
733
+ }
734
+ __name(minByKey, "minByKey");
735
+
736
+ // src/lib/notEqual.ts
737
+ function notEqual(iterable, other) {
738
+ return !equal(iterable, other);
739
+ }
740
+ __name(notEqual, "notEqual");
741
+
455
742
  // src/lib/partition.ts
456
743
  function partition(iterable, predicate) {
457
744
  predicate = assertFunction(predicate);
@@ -483,8 +770,7 @@ var SapphireIteratorUtilities = (function (exports) {
483
770
  return resolvedIterable.next();
484
771
  },
485
772
  peek() {
486
- peeked = peeked ?? resolvedIterable.next();
487
- return peeked;
773
+ return peeked ??= resolvedIterable.next();
488
774
  },
489
775
  [Symbol.iterator]() {
490
776
  return this;
@@ -549,8 +835,7 @@ var SapphireIteratorUtilities = (function (exports) {
549
835
  const resolvedIterable = toIterableIterator(iterable);
550
836
  if (arguments.length < 3) {
551
837
  const firstValue = resolvedIterable.next();
552
- if (firstValue.done)
553
- throw new TypeError("Reduce of empty iterator with no initial value");
838
+ if (firstValue.done) throw new TypeError("Reduce of empty iterator with no initial value");
554
839
  index = 1;
555
840
  accumulator = firstValue.value;
556
841
  } else {
@@ -576,10 +861,7 @@ var SapphireIteratorUtilities = (function (exports) {
576
861
 
577
862
  // src/lib/reverse.ts
578
863
  function* reverse(iterable) {
579
- const items = [];
580
- for (const item of toIterableIterator(iterable)) {
581
- items.push(item);
582
- }
864
+ const items = toArray(iterable);
583
865
  for (let i = items.length - 1; i >= 0; i--) {
584
866
  yield items[i];
585
867
  }
@@ -589,10 +871,8 @@ var SapphireIteratorUtilities = (function (exports) {
589
871
  // src/lib/takeLast.ts
590
872
  function takeLast(iterable, count2) {
591
873
  count2 = assertNotNegative(toIntegerOrInfinityOrThrow(count2), count2);
592
- if (count2 === 0)
593
- return empty();
594
- if (count2 === Number.POSITIVE_INFINITY)
595
- return toIterableIterator(iterable);
874
+ if (count2 === 0) return empty();
875
+ if (count2 === Number.POSITIVE_INFINITY) return toIterableIterator(iterable);
596
876
  const array = toArray(iterable);
597
877
  let i = Math.max(0, array.length - count2);
598
878
  return makeIterableIterator(() => {
@@ -629,25 +909,11 @@ var SapphireIteratorUtilities = (function (exports) {
629
909
  }
630
910
  return take(takeLast(iterable, -start), end - start);
631
911
  }
632
- if (start >= end)
633
- return empty();
912
+ if (start >= end) return empty();
634
913
  return end === Number.POSITIVE_INFINITY ? drop(iterable, start) : take(drop(iterable, start), end - start);
635
914
  }
636
915
  __name(slice, "slice");
637
916
 
638
- // src/lib/some.ts
639
- function some(iterable, callbackFn) {
640
- callbackFn = assertFunction(callbackFn);
641
- let index = 0;
642
- for (const value of toIterableIterator(iterable)) {
643
- if (callbackFn(value, index++)) {
644
- return true;
645
- }
646
- }
647
- return false;
648
- }
649
- __name(some, "some");
650
-
651
917
  // src/lib/sorted.ts
652
918
  function sorted(iterable, compareFn) {
653
919
  return toArray(iterable).sort(compareFn).values();
@@ -663,6 +929,24 @@ var SapphireIteratorUtilities = (function (exports) {
663
929
  }
664
930
  __name(starMap, "starMap");
665
931
 
932
+ // src/lib/stepBy.ts
933
+ function stepBy(iterable, step) {
934
+ step = assertPositive(toIntegerOrInfinityOrThrow(step), step);
935
+ const iterator = from(iterable);
936
+ return makeIterableIterator(() => {
937
+ const result = iterator.next();
938
+ if (result.done) {
939
+ return { done: true, value: void 0 };
940
+ }
941
+ for (let i = 0; i < step - 1; i++) {
942
+ const result2 = iterator.next();
943
+ if (result2.done) break;
944
+ }
945
+ return { done: false, value: result.value };
946
+ });
947
+ }
948
+ __name(stepBy, "stepBy");
949
+
666
950
  // src/lib/sum.ts
667
951
  function sum(iterable) {
668
952
  let sum2 = 0;
@@ -676,8 +960,7 @@ var SapphireIteratorUtilities = (function (exports) {
676
960
  // src/lib/tee.ts
677
961
  function tee(iterable, count2) {
678
962
  count2 = assertNotNegative(toIntegerOrThrow(count2), count2);
679
- if (count2 === 0)
680
- return [];
963
+ if (count2 === 0) return [];
681
964
  const entries = [];
682
965
  const indexes = toArray(repeat(0, count2));
683
966
  const resolvedIterable = from(iterable);
@@ -731,8 +1014,7 @@ var SapphireIteratorUtilities = (function (exports) {
731
1014
  }
732
1015
  const size = firstResult.value.length;
733
1016
  const results = [];
734
- for (let i = 0; i < size; i++)
735
- results.push([firstResult.value[i]]);
1017
+ for (let i = 0; i < size; i++) results.push([firstResult.value[i]]);
736
1018
  for (const entries of resolvedIterable) {
737
1019
  if (!Array.isArray(entries)) {
738
1020
  throw new Error("Cannot unzip an iterable that does not yield an array");
@@ -755,8 +1037,7 @@ var SapphireIteratorUtilities = (function (exports) {
755
1037
  const results = [];
756
1038
  for (const resolvedIterable of resolvedIterables) {
757
1039
  const result = resolvedIterable.next();
758
- if (result.done)
759
- return;
1040
+ if (result.done) return;
760
1041
  results.push(result.value);
761
1042
  }
762
1043
  yield results;
@@ -764,23 +1045,38 @@ var SapphireIteratorUtilities = (function (exports) {
764
1045
  }
765
1046
  __name(zip, "zip");
766
1047
 
1048
+ exports.all = every;
1049
+ exports.any = some;
767
1050
  exports.append = append;
1051
+ exports.ascNumber = ascNumber;
1052
+ exports.ascString = defaultCompare;
768
1053
  exports.at = at;
769
1054
  exports.average = average;
770
1055
  exports.chain = chain;
771
1056
  exports.chunk = chunk;
1057
+ exports.collect = toArray;
1058
+ exports.collectInto = collectInto;
772
1059
  exports.compact = compact;
1060
+ exports.compare = compare;
1061
+ exports.compareBy = compareBy;
773
1062
  exports.compress = compress;
774
1063
  exports.concat = append;
775
1064
  exports.contains = contains;
776
1065
  exports.count = count;
777
1066
  exports.cycle = cycle;
1067
+ exports.defaultCompare = defaultCompare;
1068
+ exports.descNumber = descNumber;
1069
+ exports.descString = descString;
778
1070
  exports.difference = difference;
779
1071
  exports.drop = drop;
780
1072
  exports.dropLast = dropLast;
781
1073
  exports.dropWhile = dropWhile;
782
1074
  exports.empty = empty;
783
1075
  exports.enumerate = enumerate;
1076
+ exports.eq = equal;
1077
+ exports.eqBy = equalBy;
1078
+ exports.equal = equal;
1079
+ exports.equalBy = equalBy;
784
1080
  exports.every = every;
785
1081
  exports.except = difference;
786
1082
  exports.filter = filter;
@@ -791,13 +1087,34 @@ var SapphireIteratorUtilities = (function (exports) {
791
1087
  exports.flatMap = flatMap;
792
1088
  exports.forEach = forEach;
793
1089
  exports.from = from;
1090
+ exports.fuse = fuse;
1091
+ exports.ge = greaterOrEqualThan;
1092
+ exports.greaterOrEqualThan = greaterOrEqualThan;
1093
+ exports.greaterThan = greaterThan;
1094
+ exports.gt = greaterThan;
794
1095
  exports.indexOf = indexOf;
1096
+ exports.inspect = inspect;
795
1097
  exports.intersect = intersect;
1098
+ exports.intersperse = intersperse;
796
1099
  exports.isEmpty = isEmpty;
1100
+ exports.isSorted = isSorted;
1101
+ exports.isSortedBy = isSortedBy;
1102
+ exports.isSortedByKey = isSortedByKey;
797
1103
  exports.last = last;
1104
+ exports.le = lessOrEqualThan;
1105
+ exports.lessOrEqualThan = lessOrEqualThan;
1106
+ exports.lessThan = lessThan;
1107
+ exports.lt = lessThan;
798
1108
  exports.map = map;
799
1109
  exports.max = max;
1110
+ exports.maxBy = maxBy;
1111
+ exports.maxByKey = maxByKey;
800
1112
  exports.min = min;
1113
+ exports.minBy = minBy;
1114
+ exports.minByKey = minByKey;
1115
+ exports.ne = notEqual;
1116
+ exports.notEqual = notEqual;
1117
+ exports.nth = at;
801
1118
  exports.omit = difference;
802
1119
  exports.partition = partition;
803
1120
  exports.peekable = peekable;
@@ -815,6 +1132,7 @@ var SapphireIteratorUtilities = (function (exports) {
815
1132
  exports.some = some;
816
1133
  exports.sorted = sorted;
817
1134
  exports.starMap = starMap;
1135
+ exports.stepBy = stepBy;
818
1136
  exports.sum = sum;
819
1137
  exports.take = take;
820
1138
  exports.takeLast = takeLast;
@@ -830,5 +1148,5 @@ var SapphireIteratorUtilities = (function (exports) {
830
1148
  return exports;
831
1149
 
832
1150
  })({});
833
- //# sourceMappingURL=out.js.map
1151
+ //# sourceMappingURL=index.global.js.map
834
1152
  //# sourceMappingURL=index.global.js.map