@sapphire/iterator-utilities 1.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 (379) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +765 -0
  3. package/dist/cjs/index.cjs +385 -0
  4. package/dist/cjs/index.cjs.map +1 -0
  5. package/dist/cjs/index.d.cts +55 -0
  6. package/dist/cjs/lib/append.cjs +15 -0
  7. package/dist/cjs/lib/append.cjs.map +1 -0
  8. package/dist/cjs/lib/append.d.cts +21 -0
  9. package/dist/cjs/lib/at.cjs +18 -0
  10. package/dist/cjs/lib/at.cjs.map +1 -0
  11. package/dist/cjs/lib/at.d.cts +25 -0
  12. package/dist/cjs/lib/average.cjs +21 -0
  13. package/dist/cjs/lib/average.cjs.map +1 -0
  14. package/dist/cjs/lib/average.d.cts +25 -0
  15. package/dist/cjs/lib/chain.cjs +16 -0
  16. package/dist/cjs/lib/chain.cjs.map +1 -0
  17. package/dist/cjs/lib/chain.d.cts +20 -0
  18. package/dist/cjs/lib/chunk.cjs +27 -0
  19. package/dist/cjs/lib/chunk.cjs.map +1 -0
  20. package/dist/cjs/lib/chunk.d.cts +20 -0
  21. package/dist/cjs/lib/compact.cjs +14 -0
  22. package/dist/cjs/lib/compact.cjs.map +1 -0
  23. package/dist/cjs/lib/compact.d.cts +19 -0
  24. package/dist/cjs/lib/compress.cjs +24 -0
  25. package/dist/cjs/lib/compress.cjs.map +1 -0
  26. package/dist/cjs/lib/compress.d.cts +26 -0
  27. package/dist/cjs/lib/contains.cjs +18 -0
  28. package/dist/cjs/lib/contains.cjs.map +1 -0
  29. package/dist/cjs/lib/contains.d.cts +25 -0
  30. package/dist/cjs/lib/count.cjs +19 -0
  31. package/dist/cjs/lib/count.cjs.map +1 -0
  32. package/dist/cjs/lib/count.d.cts +24 -0
  33. package/dist/cjs/lib/cycle.cjs +23 -0
  34. package/dist/cjs/lib/cycle.cjs.map +1 -0
  35. package/dist/cjs/lib/cycle.d.cts +21 -0
  36. package/dist/cjs/lib/difference.cjs +18 -0
  37. package/dist/cjs/lib/difference.cjs.map +1 -0
  38. package/dist/cjs/lib/difference.d.cts +25 -0
  39. package/dist/cjs/lib/drop.cjs +28 -0
  40. package/dist/cjs/lib/drop.cjs.map +1 -0
  41. package/dist/cjs/lib/drop.d.cts +21 -0
  42. package/dist/cjs/lib/dropLast.cjs +23 -0
  43. package/dist/cjs/lib/dropLast.cjs.map +1 -0
  44. package/dist/cjs/lib/dropLast.d.cts +25 -0
  45. package/dist/cjs/lib/dropWhile.cjs +22 -0
  46. package/dist/cjs/lib/dropWhile.cjs.map +1 -0
  47. package/dist/cjs/lib/dropWhile.d.cts +24 -0
  48. package/dist/cjs/lib/empty.cjs +14 -0
  49. package/dist/cjs/lib/empty.cjs.map +1 -0
  50. package/dist/cjs/lib/empty.d.cts +17 -0
  51. package/dist/cjs/lib/enumerate.cjs +17 -0
  52. package/dist/cjs/lib/enumerate.cjs.map +1 -0
  53. package/dist/cjs/lib/enumerate.d.cts +24 -0
  54. package/dist/cjs/lib/every.cjs +21 -0
  55. package/dist/cjs/lib/every.cjs.map +1 -0
  56. package/dist/cjs/lib/every.d.cts +29 -0
  57. package/dist/cjs/lib/filter.cjs +21 -0
  58. package/dist/cjs/lib/filter.cjs.map +1 -0
  59. package/dist/cjs/lib/filter.d.cts +22 -0
  60. package/dist/cjs/lib/find.cjs +15 -0
  61. package/dist/cjs/lib/find.cjs.map +1 -0
  62. package/dist/cjs/lib/find.d.cts +26 -0
  63. package/dist/cjs/lib/findIndex.cjs +23 -0
  64. package/dist/cjs/lib/findIndex.cjs.map +1 -0
  65. package/dist/cjs/lib/findIndex.d.cts +25 -0
  66. package/dist/cjs/lib/first.cjs +14 -0
  67. package/dist/cjs/lib/first.cjs.map +1 -0
  68. package/dist/cjs/lib/first.d.cts +24 -0
  69. package/dist/cjs/lib/flat.cjs +16 -0
  70. package/dist/cjs/lib/flat.cjs.map +1 -0
  71. package/dist/cjs/lib/flat.d.cts +20 -0
  72. package/dist/cjs/lib/flatMap.cjs +19 -0
  73. package/dist/cjs/lib/flatMap.cjs.map +1 -0
  74. package/dist/cjs/lib/flatMap.d.cts +21 -0
  75. package/dist/cjs/lib/forEach.cjs +19 -0
  76. package/dist/cjs/lib/forEach.cjs.map +1 -0
  77. package/dist/cjs/lib/forEach.d.cts +24 -0
  78. package/dist/cjs/lib/from.cjs +25 -0
  79. package/dist/cjs/lib/from.cjs.map +1 -0
  80. package/dist/cjs/lib/from.d.cts +21 -0
  81. package/dist/cjs/lib/indexOf.cjs +22 -0
  82. package/dist/cjs/lib/indexOf.cjs.map +1 -0
  83. package/dist/cjs/lib/indexOf.d.cts +25 -0
  84. package/dist/cjs/lib/intersect.cjs +16 -0
  85. package/dist/cjs/lib/intersect.cjs.map +1 -0
  86. package/dist/cjs/lib/intersect.d.cts +26 -0
  87. package/dist/cjs/lib/isEmpty.cjs +14 -0
  88. package/dist/cjs/lib/isEmpty.cjs.map +1 -0
  89. package/dist/cjs/lib/isEmpty.d.cts +26 -0
  90. package/dist/cjs/lib/last.cjs +18 -0
  91. package/dist/cjs/lib/last.cjs.map +1 -0
  92. package/dist/cjs/lib/last.d.cts +24 -0
  93. package/dist/cjs/lib/map.cjs +19 -0
  94. package/dist/cjs/lib/map.cjs.map +1 -0
  95. package/dist/cjs/lib/map.d.cts +20 -0
  96. package/dist/cjs/lib/max.cjs +20 -0
  97. package/dist/cjs/lib/max.cjs.map +1 -0
  98. package/dist/cjs/lib/max.d.cts +25 -0
  99. package/dist/cjs/lib/min.cjs +20 -0
  100. package/dist/cjs/lib/min.cjs.map +1 -0
  101. package/dist/cjs/lib/min.d.cts +25 -0
  102. package/dist/cjs/lib/partition.cjs +26 -0
  103. package/dist/cjs/lib/partition.cjs.map +1 -0
  104. package/dist/cjs/lib/partition.d.cts +33 -0
  105. package/dist/cjs/lib/peekable.cjs +32 -0
  106. package/dist/cjs/lib/peekable.cjs.map +1 -0
  107. package/dist/cjs/lib/peekable.d.cts +35 -0
  108. package/dist/cjs/lib/prepend.cjs +17 -0
  109. package/dist/cjs/lib/prepend.cjs.map +1 -0
  110. package/dist/cjs/lib/prepend.d.cts +22 -0
  111. package/dist/cjs/lib/product.cjs +19 -0
  112. package/dist/cjs/lib/product.cjs.map +1 -0
  113. package/dist/cjs/lib/product.d.cts +24 -0
  114. package/dist/cjs/lib/range.cjs +37 -0
  115. package/dist/cjs/lib/range.cjs.map +1 -0
  116. package/dist/cjs/lib/range.d.cts +33 -0
  117. package/dist/cjs/lib/reduce.cjs +32 -0
  118. package/dist/cjs/lib/reduce.cjs.map +1 -0
  119. package/dist/cjs/lib/reduce.d.cts +33 -0
  120. package/dist/cjs/lib/repeat.cjs +20 -0
  121. package/dist/cjs/lib/repeat.cjs.map +1 -0
  122. package/dist/cjs/lib/repeat.d.cts +20 -0
  123. package/dist/cjs/lib/reverse.cjs +20 -0
  124. package/dist/cjs/lib/reverse.cjs.map +1 -0
  125. package/dist/cjs/lib/reverse.d.cts +26 -0
  126. package/dist/cjs/lib/shared/_assertFunction.cjs +17 -0
  127. package/dist/cjs/lib/shared/_assertFunction.cjs.map +1 -0
  128. package/dist/cjs/lib/shared/_assertFunction.d.cts +3 -0
  129. package/dist/cjs/lib/shared/_assertNotNegative.cjs +17 -0
  130. package/dist/cjs/lib/shared/_assertNotNegative.cjs.map +1 -0
  131. package/dist/cjs/lib/shared/_assertNotNegative.d.cts +3 -0
  132. package/dist/cjs/lib/shared/_assertPositive.cjs +17 -0
  133. package/dist/cjs/lib/shared/_assertPositive.cjs.map +1 -0
  134. package/dist/cjs/lib/shared/_assertPositive.d.cts +3 -0
  135. package/dist/cjs/lib/shared/_makeIterableIterator.cjs +19 -0
  136. package/dist/cjs/lib/shared/_makeIterableIterator.cjs.map +1 -0
  137. package/dist/cjs/lib/shared/_makeIterableIterator.d.cts +3 -0
  138. package/dist/cjs/lib/shared/_toIntegerOrInfinityOrThrow.cjs +21 -0
  139. package/dist/cjs/lib/shared/_toIntegerOrInfinityOrThrow.cjs.map +1 -0
  140. package/dist/cjs/lib/shared/_toIntegerOrInfinityOrThrow.d.cts +3 -0
  141. package/dist/cjs/lib/shared/_toIntegerOrThrow.cjs +21 -0
  142. package/dist/cjs/lib/shared/_toIntegerOrThrow.cjs.map +1 -0
  143. package/dist/cjs/lib/shared/_toIntegerOrThrow.d.cts +3 -0
  144. package/dist/cjs/lib/shared/_toNumberOrThrow.cjs +34 -0
  145. package/dist/cjs/lib/shared/_toNumberOrThrow.cjs.map +1 -0
  146. package/dist/cjs/lib/shared/_toNumberOrThrow.d.cts +8 -0
  147. package/dist/cjs/lib/slice.cjs +44 -0
  148. package/dist/cjs/lib/slice.cjs.map +1 -0
  149. package/dist/cjs/lib/slice.d.cts +62 -0
  150. package/dist/cjs/lib/some.cjs +22 -0
  151. package/dist/cjs/lib/some.cjs.map +1 -0
  152. package/dist/cjs/lib/some.d.cts +33 -0
  153. package/dist/cjs/lib/sorted.cjs +14 -0
  154. package/dist/cjs/lib/sorted.cjs.map +1 -0
  155. package/dist/cjs/lib/sorted.d.cts +25 -0
  156. package/dist/cjs/lib/starMap.cjs +19 -0
  157. package/dist/cjs/lib/starMap.cjs.map +1 -0
  158. package/dist/cjs/lib/starMap.d.cts +28 -0
  159. package/dist/cjs/lib/sum.cjs +19 -0
  160. package/dist/cjs/lib/sum.cjs.map +1 -0
  161. package/dist/cjs/lib/sum.d.cts +25 -0
  162. package/dist/cjs/lib/take.cjs +25 -0
  163. package/dist/cjs/lib/take.cjs.map +1 -0
  164. package/dist/cjs/lib/take.d.cts +21 -0
  165. package/dist/cjs/lib/takeLast.cjs +31 -0
  166. package/dist/cjs/lib/takeLast.cjs.map +1 -0
  167. package/dist/cjs/lib/takeLast.d.cts +25 -0
  168. package/dist/cjs/lib/tee.cjs +39 -0
  169. package/dist/cjs/lib/tee.cjs.map +1 -0
  170. package/dist/cjs/lib/tee.d.cts +25 -0
  171. package/dist/cjs/lib/toArray.cjs +14 -0
  172. package/dist/cjs/lib/toArray.cjs.map +1 -0
  173. package/dist/cjs/lib/toArray.d.cts +36 -0
  174. package/dist/cjs/lib/toIterableIterator.cjs +19 -0
  175. package/dist/cjs/lib/toIterableIterator.cjs.map +1 -0
  176. package/dist/cjs/lib/toIterableIterator.d.cts +32 -0
  177. package/dist/cjs/lib/union.cjs +22 -0
  178. package/dist/cjs/lib/union.cjs.map +1 -0
  179. package/dist/cjs/lib/union.d.cts +20 -0
  180. package/dist/cjs/lib/unique.cjs +14 -0
  181. package/dist/cjs/lib/unique.cjs.map +1 -0
  182. package/dist/cjs/lib/unique.d.cts +20 -0
  183. package/dist/cjs/lib/unzip.cjs +37 -0
  184. package/dist/cjs/lib/unzip.cjs.map +1 -0
  185. package/dist/cjs/lib/unzip.d.cts +32 -0
  186. package/dist/cjs/lib/zip.cjs +24 -0
  187. package/dist/cjs/lib/zip.cjs.map +1 -0
  188. package/dist/cjs/lib/zip.d.cts +30 -0
  189. package/dist/esm/chunk-G5GHKT7C.mjs +6 -0
  190. package/dist/esm/chunk-G5GHKT7C.mjs.map +1 -0
  191. package/dist/esm/index.d.mts +55 -0
  192. package/dist/esm/index.mjs +56 -0
  193. package/dist/esm/index.mjs.map +1 -0
  194. package/dist/esm/lib/append.d.mts +21 -0
  195. package/dist/esm/lib/append.mjs +11 -0
  196. package/dist/esm/lib/append.mjs.map +1 -0
  197. package/dist/esm/lib/at.d.mts +25 -0
  198. package/dist/esm/lib/at.mjs +15 -0
  199. package/dist/esm/lib/at.mjs.map +1 -0
  200. package/dist/esm/lib/average.d.mts +25 -0
  201. package/dist/esm/lib/average.mjs +18 -0
  202. package/dist/esm/lib/average.mjs.map +1 -0
  203. package/dist/esm/lib/chain.d.mts +20 -0
  204. package/dist/esm/lib/chain.mjs +13 -0
  205. package/dist/esm/lib/chain.mjs.map +1 -0
  206. package/dist/esm/lib/chunk.d.mts +20 -0
  207. package/dist/esm/lib/chunk.mjs +24 -0
  208. package/dist/esm/lib/chunk.mjs.map +1 -0
  209. package/dist/esm/lib/compact.d.mts +19 -0
  210. package/dist/esm/lib/compact.mjs +11 -0
  211. package/dist/esm/lib/compact.mjs.map +1 -0
  212. package/dist/esm/lib/compress.d.mts +26 -0
  213. package/dist/esm/lib/compress.mjs +21 -0
  214. package/dist/esm/lib/compress.mjs.map +1 -0
  215. package/dist/esm/lib/contains.d.mts +25 -0
  216. package/dist/esm/lib/contains.mjs +15 -0
  217. package/dist/esm/lib/contains.mjs.map +1 -0
  218. package/dist/esm/lib/count.d.mts +24 -0
  219. package/dist/esm/lib/count.mjs +16 -0
  220. package/dist/esm/lib/count.mjs.map +1 -0
  221. package/dist/esm/lib/cycle.d.mts +21 -0
  222. package/dist/esm/lib/cycle.mjs +20 -0
  223. package/dist/esm/lib/cycle.mjs.map +1 -0
  224. package/dist/esm/lib/difference.d.mts +25 -0
  225. package/dist/esm/lib/difference.mjs +13 -0
  226. package/dist/esm/lib/difference.mjs.map +1 -0
  227. package/dist/esm/lib/drop.d.mts +21 -0
  228. package/dist/esm/lib/drop.mjs +24 -0
  229. package/dist/esm/lib/drop.mjs.map +1 -0
  230. package/dist/esm/lib/dropLast.d.mts +25 -0
  231. package/dist/esm/lib/dropLast.mjs +19 -0
  232. package/dist/esm/lib/dropLast.mjs.map +1 -0
  233. package/dist/esm/lib/dropWhile.d.mts +24 -0
  234. package/dist/esm/lib/dropWhile.mjs +18 -0
  235. package/dist/esm/lib/dropWhile.mjs.map +1 -0
  236. package/dist/esm/lib/empty.d.mts +17 -0
  237. package/dist/esm/lib/empty.mjs +11 -0
  238. package/dist/esm/lib/empty.mjs.map +1 -0
  239. package/dist/esm/lib/enumerate.d.mts +24 -0
  240. package/dist/esm/lib/enumerate.mjs +14 -0
  241. package/dist/esm/lib/enumerate.mjs.map +1 -0
  242. package/dist/esm/lib/every.d.mts +29 -0
  243. package/dist/esm/lib/every.mjs +18 -0
  244. package/dist/esm/lib/every.mjs.map +1 -0
  245. package/dist/esm/lib/filter.d.mts +22 -0
  246. package/dist/esm/lib/filter.mjs +17 -0
  247. package/dist/esm/lib/filter.mjs.map +1 -0
  248. package/dist/esm/lib/find.d.mts +26 -0
  249. package/dist/esm/lib/find.mjs +12 -0
  250. package/dist/esm/lib/find.mjs.map +1 -0
  251. package/dist/esm/lib/findIndex.d.mts +25 -0
  252. package/dist/esm/lib/findIndex.mjs +20 -0
  253. package/dist/esm/lib/findIndex.mjs.map +1 -0
  254. package/dist/esm/lib/first.d.mts +24 -0
  255. package/dist/esm/lib/first.mjs +11 -0
  256. package/dist/esm/lib/first.mjs.map +1 -0
  257. package/dist/esm/lib/flat.d.mts +20 -0
  258. package/dist/esm/lib/flat.mjs +13 -0
  259. package/dist/esm/lib/flat.mjs.map +1 -0
  260. package/dist/esm/lib/flatMap.d.mts +21 -0
  261. package/dist/esm/lib/flatMap.mjs +16 -0
  262. package/dist/esm/lib/flatMap.mjs.map +1 -0
  263. package/dist/esm/lib/forEach.d.mts +24 -0
  264. package/dist/esm/lib/forEach.mjs +16 -0
  265. package/dist/esm/lib/forEach.mjs.map +1 -0
  266. package/dist/esm/lib/from.d.mts +21 -0
  267. package/dist/esm/lib/from.mjs +22 -0
  268. package/dist/esm/lib/from.mjs.map +1 -0
  269. package/dist/esm/lib/indexOf.d.mts +25 -0
  270. package/dist/esm/lib/indexOf.mjs +18 -0
  271. package/dist/esm/lib/indexOf.mjs.map +1 -0
  272. package/dist/esm/lib/intersect.d.mts +26 -0
  273. package/dist/esm/lib/intersect.mjs +13 -0
  274. package/dist/esm/lib/intersect.mjs.map +1 -0
  275. package/dist/esm/lib/isEmpty.d.mts +26 -0
  276. package/dist/esm/lib/isEmpty.mjs +11 -0
  277. package/dist/esm/lib/isEmpty.mjs.map +1 -0
  278. package/dist/esm/lib/last.d.mts +24 -0
  279. package/dist/esm/lib/last.mjs +15 -0
  280. package/dist/esm/lib/last.mjs.map +1 -0
  281. package/dist/esm/lib/map.d.mts +20 -0
  282. package/dist/esm/lib/map.mjs +16 -0
  283. package/dist/esm/lib/map.mjs.map +1 -0
  284. package/dist/esm/lib/max.d.mts +25 -0
  285. package/dist/esm/lib/max.mjs +17 -0
  286. package/dist/esm/lib/max.mjs.map +1 -0
  287. package/dist/esm/lib/min.d.mts +25 -0
  288. package/dist/esm/lib/min.mjs +17 -0
  289. package/dist/esm/lib/min.mjs.map +1 -0
  290. package/dist/esm/lib/partition.d.mts +33 -0
  291. package/dist/esm/lib/partition.mjs +23 -0
  292. package/dist/esm/lib/partition.mjs.map +1 -0
  293. package/dist/esm/lib/peekable.d.mts +35 -0
  294. package/dist/esm/lib/peekable.mjs +29 -0
  295. package/dist/esm/lib/peekable.mjs.map +1 -0
  296. package/dist/esm/lib/prepend.d.mts +22 -0
  297. package/dist/esm/lib/prepend.mjs +14 -0
  298. package/dist/esm/lib/prepend.mjs.map +1 -0
  299. package/dist/esm/lib/product.d.mts +24 -0
  300. package/dist/esm/lib/product.mjs +16 -0
  301. package/dist/esm/lib/product.mjs.map +1 -0
  302. package/dist/esm/lib/range.d.mts +33 -0
  303. package/dist/esm/lib/range.mjs +34 -0
  304. package/dist/esm/lib/range.mjs.map +1 -0
  305. package/dist/esm/lib/reduce.d.mts +33 -0
  306. package/dist/esm/lib/reduce.mjs +29 -0
  307. package/dist/esm/lib/reduce.mjs.map +1 -0
  308. package/dist/esm/lib/repeat.d.mts +20 -0
  309. package/dist/esm/lib/repeat.mjs +17 -0
  310. package/dist/esm/lib/repeat.mjs.map +1 -0
  311. package/dist/esm/lib/reverse.d.mts +26 -0
  312. package/dist/esm/lib/reverse.mjs +17 -0
  313. package/dist/esm/lib/reverse.mjs.map +1 -0
  314. package/dist/esm/lib/shared/_assertFunction.d.mts +3 -0
  315. package/dist/esm/lib/shared/_assertFunction.mjs +14 -0
  316. package/dist/esm/lib/shared/_assertFunction.mjs.map +1 -0
  317. package/dist/esm/lib/shared/_assertNotNegative.d.mts +3 -0
  318. package/dist/esm/lib/shared/_assertNotNegative.mjs +14 -0
  319. package/dist/esm/lib/shared/_assertNotNegative.mjs.map +1 -0
  320. package/dist/esm/lib/shared/_assertPositive.d.mts +3 -0
  321. package/dist/esm/lib/shared/_assertPositive.mjs +14 -0
  322. package/dist/esm/lib/shared/_assertPositive.mjs.map +1 -0
  323. package/dist/esm/lib/shared/_makeIterableIterator.d.mts +3 -0
  324. package/dist/esm/lib/shared/_makeIterableIterator.mjs +16 -0
  325. package/dist/esm/lib/shared/_makeIterableIterator.mjs.map +1 -0
  326. package/dist/esm/lib/shared/_toIntegerOrInfinityOrThrow.d.mts +3 -0
  327. package/dist/esm/lib/shared/_toIntegerOrInfinityOrThrow.mjs +18 -0
  328. package/dist/esm/lib/shared/_toIntegerOrInfinityOrThrow.mjs.map +1 -0
  329. package/dist/esm/lib/shared/_toIntegerOrThrow.d.mts +3 -0
  330. package/dist/esm/lib/shared/_toIntegerOrThrow.mjs +18 -0
  331. package/dist/esm/lib/shared/_toIntegerOrThrow.mjs.map +1 -0
  332. package/dist/esm/lib/shared/_toNumberOrThrow.d.mts +8 -0
  333. package/dist/esm/lib/shared/_toNumberOrThrow.mjs +31 -0
  334. package/dist/esm/lib/shared/_toNumberOrThrow.mjs.map +1 -0
  335. package/dist/esm/lib/slice.d.mts +62 -0
  336. package/dist/esm/lib/slice.mjs +41 -0
  337. package/dist/esm/lib/slice.mjs.map +1 -0
  338. package/dist/esm/lib/some.d.mts +33 -0
  339. package/dist/esm/lib/some.mjs +19 -0
  340. package/dist/esm/lib/some.mjs.map +1 -0
  341. package/dist/esm/lib/sorted.d.mts +25 -0
  342. package/dist/esm/lib/sorted.mjs +11 -0
  343. package/dist/esm/lib/sorted.mjs.map +1 -0
  344. package/dist/esm/lib/starMap.d.mts +28 -0
  345. package/dist/esm/lib/starMap.mjs +16 -0
  346. package/dist/esm/lib/starMap.mjs.map +1 -0
  347. package/dist/esm/lib/sum.d.mts +25 -0
  348. package/dist/esm/lib/sum.mjs +16 -0
  349. package/dist/esm/lib/sum.mjs.map +1 -0
  350. package/dist/esm/lib/take.d.mts +21 -0
  351. package/dist/esm/lib/take.mjs +22 -0
  352. package/dist/esm/lib/take.mjs.map +1 -0
  353. package/dist/esm/lib/takeLast.d.mts +25 -0
  354. package/dist/esm/lib/takeLast.mjs +28 -0
  355. package/dist/esm/lib/takeLast.mjs.map +1 -0
  356. package/dist/esm/lib/tee.d.mts +25 -0
  357. package/dist/esm/lib/tee.mjs +36 -0
  358. package/dist/esm/lib/tee.mjs.map +1 -0
  359. package/dist/esm/lib/toArray.d.mts +36 -0
  360. package/dist/esm/lib/toArray.mjs +11 -0
  361. package/dist/esm/lib/toArray.mjs.map +1 -0
  362. package/dist/esm/lib/toIterableIterator.d.mts +32 -0
  363. package/dist/esm/lib/toIterableIterator.mjs +16 -0
  364. package/dist/esm/lib/toIterableIterator.mjs.map +1 -0
  365. package/dist/esm/lib/union.d.mts +20 -0
  366. package/dist/esm/lib/union.mjs +19 -0
  367. package/dist/esm/lib/union.mjs.map +1 -0
  368. package/dist/esm/lib/unique.d.mts +20 -0
  369. package/dist/esm/lib/unique.mjs +11 -0
  370. package/dist/esm/lib/unique.mjs.map +1 -0
  371. package/dist/esm/lib/unzip.d.mts +32 -0
  372. package/dist/esm/lib/unzip.mjs +34 -0
  373. package/dist/esm/lib/unzip.mjs.map +1 -0
  374. package/dist/esm/lib/zip.d.mts +30 -0
  375. package/dist/esm/lib/zip.mjs +21 -0
  376. package/dist/esm/lib/zip.mjs.map +1 -0
  377. package/dist/iife/index.global.js +834 -0
  378. package/dist/iife/index.global.js.map +1 -0
  379. package/package.json +692 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc","sourcesContent":["export * from './lib/append';\nexport * from './lib/at';\nexport * from './lib/average';\nexport * from './lib/chain';\nexport * from './lib/chunk';\nexport * from './lib/compact';\nexport * from './lib/compress';\nexport * from './lib/contains';\nexport * from './lib/count';\nexport * from './lib/cycle';\nexport * from './lib/difference';\nexport * from './lib/drop';\nexport * from './lib/dropLast';\nexport * from './lib/dropWhile';\nexport * from './lib/empty';\nexport * from './lib/enumerate';\nexport * from './lib/every';\nexport * from './lib/filter';\nexport * from './lib/find';\nexport * from './lib/findIndex';\nexport * from './lib/first';\nexport * from './lib/flat';\nexport * from './lib/flatMap';\nexport * from './lib/forEach';\nexport * from './lib/from';\nexport * from './lib/indexOf';\nexport * from './lib/intersect';\nexport * from './lib/isEmpty';\nexport * from './lib/last';\nexport * from './lib/map';\nexport * from './lib/max';\nexport * from './lib/min';\nexport * from './lib/partition';\nexport * from './lib/peekable';\nexport * from './lib/prepend';\nexport * from './lib/product';\nexport * from './lib/range';\nexport * from './lib/reduce';\nexport * from './lib/repeat';\nexport * from './lib/reverse';\nexport * from './lib/slice';\nexport * from './lib/some';\nexport * from './lib/sorted';\nexport * from './lib/starMap';\nexport * from './lib/sum';\nexport * from './lib/take';\nexport * from './lib/takeLast';\nexport * from './lib/tee';\nexport * from './lib/toArray';\nexport * from './lib/toIterableIterator';\nexport * from './lib/union';\nexport * from './lib/unique';\nexport * from './lib/unzip';\nexport * from './lib/zip';\n"]}
@@ -0,0 +1,21 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Appends iterables to the end of the first iterable, returning a new iterable combining all of them. It's similar to concatenating arrays or doing `[...a, ...b, ...c]`.
5
+ *
6
+ * @param iterable The iterator to append values to.
7
+ * @param iterables The iterables to append to the iterator.
8
+ * @returns An iterator that yields the values of the provided iterator followed by the values of the provided iterables.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { append } from '@sapphire/iterator-utilities';
13
+ *
14
+ * const iterable = append([1, 2, 3], [4, 5, 6], [7, 8, 9]);
15
+ * console.log([...iterable]);
16
+ * // Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]
17
+ * ```
18
+ */
19
+ declare function append<const ElementType>(iterable: IterableResolvable<ElementType>, ...iterables: IterableResolvable<ElementType>[]): IterableIterator<ElementType>;
20
+
21
+ export { append, append as concat };
@@ -0,0 +1,11 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { chain } from './chain.mjs';
3
+
4
+ function append(iterable, ...iterables) {
5
+ return chain(iterable, ...iterables);
6
+ }
7
+ __name(append, "append");
8
+
9
+ export { append, append as concat };
10
+ //# sourceMappingURL=out.js.map
11
+ //# sourceMappingURL=append.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/append.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,aAAa;AAmBf,SAAS,OACf,aACG,WAC6B;AAChC,SAAO,MAAM,UAAU,GAAG,SAAS;AACpC;AALgB","sourcesContent":["import { chain } from './chain';\nimport type { IterableResolvable } from './from';\n\n/**\n * Appends iterables to the end of the first iterable, returning a new iterable combining all of them. It's similar to concatenating arrays or doing `[...a, ...b, ...c]`.\n *\n * @param iterable The iterator to append values to.\n * @param iterables The iterables to append to the iterator.\n * @returns An iterator that yields the values of the provided iterator followed by the values of the provided iterables.\n *\n * @example\n * ```typescript\n * import { append } from '@sapphire/iterator-utilities';\n *\n * const iterable = append([1, 2, 3], [4, 5, 6], [7, 8, 9]);\n * console.log([...iterable]);\n * // Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]\n * ```\n */\nexport function append<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\t...iterables: IterableResolvable<ElementType>[]\n): IterableIterator<ElementType> {\n\treturn chain(iterable, ...iterables);\n}\n\nexport { append as concat };\n"]}
@@ -0,0 +1,25 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Advances the iterable to the `n`th element and returns it. If the iterable is exhausted before reaching the `n`th element, it returns `undefined`.
5
+ *
6
+ * @param iterable An iterator to return an element from.
7
+ * @param index The index of the element to retrieve.
8
+ * @returns The element at the specified index, or `undefined` if the index is out of range.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { at } from '@sapphire/iterator-utilities';
13
+ *
14
+ * const iterable = [1, 2, 3, 4, 5];
15
+ * console.log(at(iterable, 2));
16
+ * // Output: 3
17
+ * ```
18
+ *
19
+ * @remarks
20
+ *
21
+ * This function consumes the input iterator up to the specified index.
22
+ */
23
+ declare function at<const ElementType>(iterable: IterableResolvable<ElementType>, index: number): ElementType | undefined;
24
+
25
+ export { at };
@@ -0,0 +1,15 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { drop } from './drop.mjs';
3
+ import { first } from './first.mjs';
4
+ import { assertNotNegative } from './shared/_assertNotNegative.mjs';
5
+ import { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow.mjs';
6
+
7
+ function at(iterable, index) {
8
+ index = assertNotNegative(toIntegerOrInfinityOrThrow(index), index);
9
+ return first(index === 0 ? iterable : drop(iterable, index));
10
+ }
11
+ __name(at, "at");
12
+
13
+ export { at };
14
+ //# sourceMappingURL=out.js.map
15
+ //# sourceMappingURL=at.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/at.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,YAAY;AACrB,SAAS,aAAa;AAEtB,SAAS,yBAAyB;AAClC,SAAS,kCAAkC;AAsBpC,SAAS,GAAsB,UAA2C,OAAwC;AACxH,UAAQ,kBAAkB,2BAA2B,KAAK,GAAG,KAAK;AAClE,SAAO,MAAM,UAAU,IAAI,WAAW,KAAK,UAAU,KAAK,CAAC;AAC5D;AAHgB","sourcesContent":["import { drop } from './drop';\nimport { first } from './first';\nimport type { IterableResolvable } from './from';\nimport { assertNotNegative } from './shared/_assertNotNegative';\nimport { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow';\n\n/**\n * Advances the iterable to the `n`th element and returns it. If the iterable is exhausted before reaching the `n`th element, it returns `undefined`.\n *\n * @param iterable An iterator to return an element from.\n * @param index The index of the element to retrieve.\n * @returns The element at the specified index, or `undefined` if the index is out of range.\n *\n * @example\n * ```typescript\n * import { at } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(at(iterable, 2));\n * // Output: 3\n * ```\n *\n * @remarks\n *\n * This function consumes the input iterator up to the specified index.\n */\nexport function at<const ElementType>(iterable: IterableResolvable<ElementType>, index: number): ElementType | undefined {\n\tindex = assertNotNegative(toIntegerOrInfinityOrThrow(index), index);\n\treturn first(index === 0 ? iterable : drop(iterable, index));\n}\n"]}
@@ -0,0 +1,25 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+ import { NumberResolvable } from './shared/_toNumberOrThrow.mjs';
3
+
4
+ /**
5
+ * Consumes the iterable and returns the average value of all the elements. If the iterable is empty, it returns `null`.
6
+ *
7
+ * @param iterable The iterator to calculate the average of.
8
+ * @returns The average of the sequence of numbers, or `null` if the sequence is empty or contains only non-number values.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { average } from '@sapphire/iterator-utilities';
13
+ *
14
+ * const iterable = [1, 2, 3, 4, 5];
15
+ * console.log(average(iterable));
16
+ * // Output: 3
17
+ * ```
18
+ *
19
+ * @remarks
20
+ *
21
+ * This function consumes the entire iterator.
22
+ */
23
+ declare function average(iterable: IterableResolvable<NumberResolvable>): number | null;
24
+
25
+ export { average };
@@ -0,0 +1,18 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { map } from './map.mjs';
3
+ import { toNumberOrThrow } from './shared/_toNumberOrThrow.mjs';
4
+
5
+ function average(iterable) {
6
+ let sum = 0;
7
+ let total = 0;
8
+ for (const value of map(iterable, toNumberOrThrow)) {
9
+ sum += value;
10
+ total++;
11
+ }
12
+ return total === 0 ? null : sum / total;
13
+ }
14
+ __name(average, "average");
15
+
16
+ export { average };
17
+ //# sourceMappingURL=out.js.map
18
+ //# sourceMappingURL=average.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/average.ts"],"names":[],"mappings":";;;;;AACA,SAAS,WAAW;AACpB,SAAS,uBAA8C;AAqBhD,SAAS,QAAQ,UAA+D;AACtF,MAAI,MAAM;AACV,MAAI,QAAQ;AACZ,aAAW,SAAS,IAAI,UAAU,eAAe,GAAG;AACnD,WAAO;AACP;AAAA,EACD;AAEA,SAAO,UAAU,IAAI,OAAO,MAAM;AACnC;AATgB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { map } from './map';\nimport { toNumberOrThrow, type NumberResolvable } from './shared/_toNumberOrThrow';\n\n/**\n * Consumes the iterable and returns the average value of all the elements. If the iterable is empty, it returns `null`.\n *\n * @param iterable The iterator to calculate the average of.\n * @returns The average of the sequence of numbers, or `null` if the sequence is empty or contains only non-number values.\n *\n * @example\n * ```typescript\n * import { average } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(average(iterable));\n * // Output: 3\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function average(iterable: IterableResolvable<NumberResolvable>): number | null {\n\tlet sum = 0;\n\tlet total = 0;\n\tfor (const value of map(iterable, toNumberOrThrow)) {\n\t\tsum += value;\n\t\ttotal++;\n\t}\n\n\treturn total === 0 ? null : sum / total;\n}\n"]}
@@ -0,0 +1,20 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Similar to `append`, but takes an iterable of iterables and chains them together.
5
+ *
6
+ * @param iterables The iterators to chain together.
7
+ * @returns An iterator that yields the values of the provided iterators in order.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { chain } from '@sapphire/iterator-utilities';
12
+ *
13
+ * const iterable = chain([1, 2, 3], [4, 5, 6], [7, 8, 9]);
14
+ * console.log([...iterable]);
15
+ * // Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]
16
+ * ```
17
+ */
18
+ declare function chain<const ElementType>(...iterables: IterableResolvable<ElementType>[]): IterableIterator<ElementType>;
19
+
20
+ export { chain };
@@ -0,0 +1,13 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { toIterableIterator } from './toIterableIterator.mjs';
3
+
4
+ function* chain(...iterables) {
5
+ for (const iterable of iterables) {
6
+ yield* toIterableIterator(iterable);
7
+ }
8
+ }
9
+ __name(chain, "chain");
10
+
11
+ export { chain };
12
+ //# sourceMappingURL=out.js.map
13
+ //# sourceMappingURL=chain.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/chain.ts"],"names":[],"mappings":";;;;;AACA,SAAS,0BAA0B;AAiB5B,UAAU,SAA4B,WAA6E;AACzH,aAAW,YAAY,WAAW;AACjC,WAAO,mBAAmB,QAAQ;AAAA,EACnC;AACD;AAJiB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Similar to `append`, but takes an iterable of iterables and chains them together.\n *\n * @param iterables The iterators to chain together.\n * @returns An iterator that yields the values of the provided iterators in order.\n *\n * @example\n * ```typescript\n * import { chain } from '@sapphire/iterator-utilities';\n *\n * const iterable = chain([1, 2, 3], [4, 5, 6], [7, 8, 9]);\n * console.log([...iterable]);\n * // Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]\n * ```\n */\nexport function* chain<const ElementType>(...iterables: IterableResolvable<ElementType>[]): IterableIterator<ElementType> {\n\tfor (const iterable of iterables) {\n\t\tyield* toIterableIterator(iterable);\n\t}\n}\n"]}
@@ -0,0 +1,20 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Chunks the iterable into arrays of at most `size` elements.
5
+ *
6
+ * @param iterable The iterator whose elements to chunk.
7
+ * @param size The maximum size of each chunk.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { chunk } from '@sapphire/iterator-utilities';
12
+ *
13
+ * const iterable = [1, 2, 3, 4, 5];
14
+ * console.log([...chunk(iterable, 2)]);
15
+ * // Output: [[1, 2], [3, 4], [5]]
16
+ * ```
17
+ */
18
+ declare function chunk<const ElementType>(iterable: IterableResolvable<ElementType>, size: number): IterableIterator<ElementType[]>;
19
+
20
+ export { chunk };
@@ -0,0 +1,24 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { assertPositive } from './shared/_assertPositive.mjs';
3
+ import { toIntegerOrThrow } from './shared/_toIntegerOrThrow.mjs';
4
+ import { toIterableIterator } from './toIterableIterator.mjs';
5
+
6
+ function* chunk(iterable, size) {
7
+ size = assertPositive(toIntegerOrThrow(size), size);
8
+ let buffer = [];
9
+ for (const element of toIterableIterator(iterable)) {
10
+ buffer.push(element);
11
+ if (buffer.length === size) {
12
+ yield buffer;
13
+ buffer = [];
14
+ }
15
+ }
16
+ if (buffer.length) {
17
+ yield buffer;
18
+ }
19
+ }
20
+ __name(chunk, "chunk");
21
+
22
+ export { chunk };
23
+ //# sourceMappingURL=out.js.map
24
+ //# sourceMappingURL=chunk.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/chunk.ts"],"names":[],"mappings":";;;;;AACA,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB;AACjC,SAAS,0BAA0B;AAiB5B,UAAU,MAAyB,UAA2C,MAA+C;AACnI,SAAO,eAAe,iBAAiB,IAAI,GAAG,IAAI;AAElD,MAAI,SAAwB,CAAC;AAC7B,aAAW,WAAW,mBAAmB,QAAQ,GAAG;AACnD,WAAO,KAAK,OAAO;AAEnB,QAAI,OAAO,WAAW,MAAM;AAC3B,YAAM;AACN,eAAS,CAAC;AAAA,IACX;AAAA,EACD;AAEA,MAAI,OAAO,QAAQ;AAClB,UAAM;AAAA,EACP;AACD;AAhBiB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { assertPositive } from './shared/_assertPositive';\nimport { toIntegerOrThrow } from './shared/_toIntegerOrThrow';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Chunks the iterable into arrays of at most `size` elements.\n *\n * @param iterable The iterator whose elements to chunk.\n * @param size The maximum size of each chunk.\n *\n * @example\n * ```typescript\n * import { chunk } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...chunk(iterable, 2)]);\n * // Output: [[1, 2], [3, 4], [5]]\n * ```\n */\nexport function* chunk<const ElementType>(iterable: IterableResolvable<ElementType>, size: number): IterableIterator<ElementType[]> {\n\tsize = assertPositive(toIntegerOrThrow(size), size);\n\n\tlet buffer: ElementType[] = [];\n\tfor (const element of toIterableIterator(iterable)) {\n\t\tbuffer.push(element);\n\n\t\tif (buffer.length === size) {\n\t\t\tyield buffer;\n\t\t\tbuffer = [];\n\t\t}\n\t}\n\n\tif (buffer.length) {\n\t\tyield buffer;\n\t}\n}\n"]}
@@ -0,0 +1,19 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Creates a new iterable that yields all the non-nullish values (`null` and `undefined`) from the iterable.
5
+ *
6
+ * @param iterable An iterator that contains elements to be compacted.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { compact } from '@sapphire/iterator-utilities';
11
+ *
12
+ * const iterable = [1, null, 2, undefined, 3];
13
+ * console.log([...compact(iterable)]);
14
+ * // Output: [1, 2, 3]
15
+ * ```
16
+ */
17
+ declare function compact<const ElementType>(iterable: IterableResolvable<ElementType | null | undefined>): IterableIterator<ElementType>;
18
+
19
+ export { compact };
@@ -0,0 +1,11 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { filter } from './filter.mjs';
3
+
4
+ function compact(iterable) {
5
+ return filter(iterable, (value) => value !== null && value !== void 0);
6
+ }
7
+ __name(compact, "compact");
8
+
9
+ export { compact };
10
+ //# sourceMappingURL=out.js.map
11
+ //# sourceMappingURL=compact.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/compact.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,cAAc;AAiBhB,SAAS,QAA2B,UAA6F;AACvI,SAAO,OAAO,UAAU,CAAC,UAAgC,UAAU,QAAQ,UAAU,MAAS;AAC/F;AAFgB","sourcesContent":["import { filter } from './filter';\nimport type { IterableResolvable } from './from';\n\n/**\n * Creates a new iterable that yields all the non-nullish values (`null` and `undefined`) from the iterable.\n *\n * @param iterable An iterator that contains elements to be compacted.\n *\n * @example\n * ```typescript\n * import { compact } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, null, 2, undefined, 3];\n * console.log([...compact(iterable)]);\n * // Output: [1, 2, 3]\n * ```\n */\nexport function compact<const ElementType>(iterable: IterableResolvable<ElementType | null | undefined>): IterableIterator<ElementType> {\n\treturn filter(iterable, (value): value is ElementType => value !== null && value !== undefined);\n}\n"]}
@@ -0,0 +1,26 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Creates a new iterable of the first iterable based on the truthiness of the corresponding element in the second iterable.
5
+ *
6
+ * @param iterable An iterator that contains elements to be compressed.
7
+ * @param selectors The selectors that determine which elements to include in the result.
8
+ * @returns An iterator that contains only the elements from the input iterator that correspond to `true` values in the
9
+ * selectors iterator.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { compress } from '@sapphire/iterator-utilities';
14
+ *
15
+ * const iterable = compress([1, 2, 3, 4, 5], [true, false, true, false, true]);
16
+ * console.log([...iterable]);
17
+ * // Output: [1, 3, 5]
18
+ * ```
19
+ *
20
+ * @remarks
21
+ *
22
+ * This function consumes both input iterators until either is exhausted.
23
+ */
24
+ declare function compress<const ElementType>(iterable: IterableResolvable<ElementType>, selectors: IterableResolvable<boolean>): IterableIterator<ElementType>;
25
+
26
+ export { compress };
@@ -0,0 +1,21 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { from } from './from.mjs';
3
+ import { toIterableIterator } from './toIterableIterator.mjs';
4
+
5
+ function* compress(iterable, selectors) {
6
+ const resolvedSelectors = from(selectors);
7
+ for (const resolvedIterableResult of toIterableIterator(iterable)) {
8
+ const selectorResult = resolvedSelectors.next();
9
+ if (selectorResult.done) {
10
+ return;
11
+ }
12
+ if (selectorResult.value) {
13
+ yield resolvedIterableResult;
14
+ }
15
+ }
16
+ }
17
+ __name(compress, "compress");
18
+
19
+ export { compress };
20
+ //# sourceMappingURL=out.js.map
21
+ //# sourceMappingURL=compress.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/compress.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,YAAqC;AAC9C,SAAS,0BAA0B;AAuB5B,UAAU,SAChB,UACA,WACgC;AAChC,QAAM,oBAAoB,KAAK,SAAS;AACxC,aAAW,0BAA0B,mBAAmB,QAAQ,GAAG;AAClE,UAAM,iBAAiB,kBAAkB,KAAK;AAC9C,QAAI,eAAe,MAAM;AACxB;AAAA,IACD;AAEA,QAAI,eAAe,OAAO;AACzB,YAAM;AAAA,IACP;AAAA,EACD;AACD;AAfiB","sourcesContent":["import { from, type IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Creates a new iterable of the first iterable based on the truthiness of the corresponding element in the second iterable.\n *\n * @param iterable An iterator that contains elements to be compressed.\n * @param selectors The selectors that determine which elements to include in the result.\n * @returns An iterator that contains only the elements from the input iterator that correspond to `true` values in the\n * selectors iterator.\n *\n * @example\n * ```typescript\n * import { compress } from '@sapphire/iterator-utilities';\n *\n * const iterable = compress([1, 2, 3, 4, 5], [true, false, true, false, true]);\n * console.log([...iterable]);\n * // Output: [1, 3, 5]\n * ```\n *\n * @remarks\n *\n * This function consumes both input iterators until either is exhausted.\n */\nexport function* compress<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tselectors: IterableResolvable<boolean>\n): IterableIterator<ElementType> {\n\tconst resolvedSelectors = from(selectors);\n\tfor (const resolvedIterableResult of toIterableIterator(iterable)) {\n\t\tconst selectorResult = resolvedSelectors.next();\n\t\tif (selectorResult.done) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (selectorResult.value) {\n\t\t\tyield resolvedIterableResult;\n\t\t}\n\t}\n}\n"]}
@@ -0,0 +1,25 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Advances the iterable until it finds the element, returning `true` if it's found and `false` otherwise.
5
+ *
6
+ * @param iterable The iterator in which to locate a value.
7
+ * @param value The value to locate in the iterator.
8
+ * @returns `true` if the value is found in the iterator; otherwise, `false`.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { contains } from '@sapphire/iterator-utilities';
13
+ *
14
+ * const iterable = [1, 2, 3, 4, 5];
15
+ * console.log(contains(iterable, 3));
16
+ * // Output: true
17
+ * ```
18
+ *
19
+ * @remarks
20
+ *
21
+ * This function consumes the iterator until the value is found or the iterator is exhausted.
22
+ */
23
+ declare function contains<const ElementType>(iterable: IterableResolvable<ElementType>, value: ElementType): boolean;
24
+
25
+ export { contains };
@@ -0,0 +1,15 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { toIterableIterator } from './toIterableIterator.mjs';
3
+
4
+ function contains(iterable, value) {
5
+ for (const element of toIterableIterator(iterable)) {
6
+ if (element === value)
7
+ return true;
8
+ }
9
+ return false;
10
+ }
11
+ __name(contains, "contains");
12
+
13
+ export { contains };
14
+ //# sourceMappingURL=out.js.map
15
+ //# sourceMappingURL=contains.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/contains.ts"],"names":[],"mappings":";;;;;AACA,SAAS,0BAA0B;AAsB5B,SAAS,SAA4B,UAA2C,OAA6B;AACnH,aAAW,WAAW,mBAAmB,QAAQ,GAAG;AACnD,QAAI,YAAY;AAAO,aAAO;AAAA,EAC/B;AAEA,SAAO;AACR;AANgB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Advances the iterable until it finds the element, returning `true` if it's found and `false` otherwise.\n *\n * @param iterable The iterator in which to locate a value.\n * @param value The value to locate in the iterator.\n * @returns `true` if the value is found in the iterator; otherwise, `false`.\n *\n * @example\n * ```typescript\n * import { contains } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(contains(iterable, 3));\n * // Output: true\n * ```\n *\n * @remarks\n *\n * This function consumes the iterator until the value is found or the iterator is exhausted.\n */\nexport function contains<const ElementType>(iterable: IterableResolvable<ElementType>, value: ElementType): boolean {\n\tfor (const element of toIterableIterator(iterable)) {\n\t\tif (element === value) return true;\n\t}\n\n\treturn false;\n}\n"]}
@@ -0,0 +1,24 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Consumes the iterable and returns the number of elements.
5
+ *
6
+ * @param iterable An iterator that contains elements to be counted.
7
+ * @returns The number of elements in the input iterator.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { count } from '@sapphire/iterator-utilities';
12
+ *
13
+ * const iterable = [1, 2, 3, 4, 5];
14
+ * console.log(count(iterable));
15
+ * // Output: 5
16
+ * ```
17
+ *
18
+ * @remarks
19
+ *
20
+ * This function consumes the entire iterator.
21
+ */
22
+ declare function count<const ElementType>(iterable: IterableResolvable<ElementType>): number;
23
+
24
+ export { count };
@@ -0,0 +1,16 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { from } from './from.mjs';
3
+
4
+ function count(iterable) {
5
+ let count2 = 0;
6
+ const resolvedIterable = from(iterable);
7
+ while (!resolvedIterable.next().done) {
8
+ count2++;
9
+ }
10
+ return count2;
11
+ }
12
+ __name(count, "count");
13
+
14
+ export { count };
15
+ //# sourceMappingURL=out.js.map
16
+ //# sourceMappingURL=count.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/count.ts"],"names":["count"],"mappings":";;;;;AAAA,SAAS,YAAqC;AAqBvC,SAAS,MAAyB,UAAmD;AAC3F,MAAIA,SAAQ;AACZ,QAAM,mBAAmB,KAAK,QAAQ;AACtC,SAAO,CAAC,iBAAiB,KAAK,EAAE,MAAM;AACrC,IAAAA;AAAA,EACD;AAEA,SAAOA;AACR;AARgB","sourcesContent":["import { from, type IterableResolvable } from './from';\n\n/**\n * Consumes the iterable and returns the number of elements.\n *\n * @param iterable An iterator that contains elements to be counted.\n * @returns The number of elements in the input iterator.\n *\n * @example\n * ```typescript\n * import { count } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(count(iterable));\n * // Output: 5\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function count<const ElementType>(iterable: IterableResolvable<ElementType>): number {\n\tlet count = 0;\n\tconst resolvedIterable = from(iterable);\n\twhile (!resolvedIterable.next().done) {\n\t\tcount++;\n\t}\n\n\treturn count;\n}\n"]}
@@ -0,0 +1,21 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Creates an infinite iterable by cycling through the elements of the input iterable.
5
+ *
6
+ * @param iterable An iterator to cycle over.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { cycle } from '@sapphire/iterator-utilities';
11
+ *
12
+ * const iterable = cycle([1, 2, 3]);
13
+ * for (const element of iterable) {
14
+ * console.log(element);
15
+ * // Output: 1, 2, 3, 1, 2, 3, 1, 2, 3, ...
16
+ * }
17
+ * ```
18
+ */
19
+ declare function cycle<const ElementType>(iterable: IterableResolvable<ElementType>): IterableIterator<ElementType>;
20
+
21
+ export { cycle };
@@ -0,0 +1,20 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { toIterableIterator } from './toIterableIterator.mjs';
3
+
4
+ function* cycle(iterable) {
5
+ const results = [];
6
+ for (const element of toIterableIterator(iterable)) {
7
+ yield element;
8
+ results.push(element);
9
+ }
10
+ while (results.length > 0) {
11
+ for (const element of results) {
12
+ yield element;
13
+ }
14
+ }
15
+ }
16
+ __name(cycle, "cycle");
17
+
18
+ export { cycle };
19
+ //# sourceMappingURL=out.js.map
20
+ //# sourceMappingURL=cycle.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/cycle.ts"],"names":[],"mappings":";;;;;AACA,SAAS,0BAA0B;AAkB5B,UAAU,MAAyB,UAA0E;AACnH,QAAM,UAAU,CAAC;AACjB,aAAW,WAAW,mBAAmB,QAAQ,GAAG;AACnD,UAAM;AACN,YAAQ,KAAK,OAAO;AAAA,EACrB;AAEA,SAAO,QAAQ,SAAS,GAAG;AAC1B,eAAW,WAAW,SAAS;AAC9B,YAAM;AAAA,IACP;AAAA,EACD;AACD;AAZiB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Creates an infinite iterable by cycling through the elements of the input iterable.\n *\n * @param iterable An iterator to cycle over.\n *\n * @example\n * ```typescript\n * import { cycle } from '@sapphire/iterator-utilities';\n *\n * const iterable = cycle([1, 2, 3]);\n * for (const element of iterable) {\n * \tconsole.log(element);\n * \t// Output: 1, 2, 3, 1, 2, 3, 1, 2, 3, ...\n * }\n * ```\n */\nexport function* cycle<const ElementType>(iterable: IterableResolvable<ElementType>): IterableIterator<ElementType> {\n\tconst results = [] as ElementType[];\n\tfor (const element of toIterableIterator(iterable)) {\n\t\tyield element;\n\t\tresults.push(element);\n\t}\n\n\twhile (results.length > 0) {\n\t\tfor (const element of results) {\n\t\t\tyield element;\n\t\t}\n\t}\n}\n"]}
@@ -0,0 +1,25 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Creates an iterable with the elements of the first iterable that are not in the second iterable.
5
+ *
6
+ * @param first An iterator to return elements from.
7
+ * @param second An iterator that contains elements to exclude from the result.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { difference } from '@sapphire/iterator-utilities';
12
+ *
13
+ * const first = [1, 2, 3, 4, 5];
14
+ * const second = [3, 4, 5, 6, 7];
15
+ * console.log([...difference(first, second)]);
16
+ * // Output: [1, 2]
17
+ * ```
18
+ *
19
+ * @remarks
20
+ *
21
+ * This function consumes the entire `second` iterator to build the set of elements to exclude from `first`.
22
+ */
23
+ declare function difference<const ElementType>(first: IterableResolvable<ElementType>, second: IterableResolvable<ElementType>): IterableIterator<ElementType>;
24
+
25
+ export { difference, difference as except, difference as omit };
@@ -0,0 +1,13 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { filter } from './filter.mjs';
3
+ import { toIterableIterator } from './toIterableIterator.mjs';
4
+
5
+ function difference(first, second) {
6
+ const set = new Set(toIterableIterator(second));
7
+ return filter(first, (value) => !set.has(value));
8
+ }
9
+ __name(difference, "difference");
10
+
11
+ export { difference, difference as except, difference as omit };
12
+ //# sourceMappingURL=out.js.map
13
+ //# sourceMappingURL=difference.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/difference.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,cAAc;AAEvB,SAAS,0BAA0B;AAsB5B,SAAS,WACf,OACA,QACgC;AAChC,QAAM,MAAM,IAAI,IAAI,mBAAmB,MAAM,CAAC;AAC9C,SAAO,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC;AAChD;AANgB","sourcesContent":["import { filter } from './filter';\nimport type { IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Creates an iterable with the elements of the first iterable that are not in the second iterable.\n *\n * @param first An iterator to return elements from.\n * @param second An iterator that contains elements to exclude from the result.\n *\n * @example\n * ```typescript\n * import { difference } from '@sapphire/iterator-utilities';\n *\n * const first = [1, 2, 3, 4, 5];\n * const second = [3, 4, 5, 6, 7];\n * console.log([...difference(first, second)]);\n * // Output: [1, 2]\n * ```\n *\n * @remarks\n *\n * This function consumes the entire `second` iterator to build the set of elements to exclude from `first`.\n */\nexport function difference<const ElementType>(\n\tfirst: IterableResolvable<ElementType>,\n\tsecond: IterableResolvable<ElementType>\n): IterableIterator<ElementType> {\n\tconst set = new Set(toIterableIterator(second));\n\treturn filter(first, (value) => !set.has(value));\n}\n\nexport { difference as except, difference as omit };\n"]}
@@ -0,0 +1,21 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Advances the iterable by `count` elements from the iterable.
5
+ *
6
+ * @param iterable An iterator to drop values from.
7
+ * @param count The number of elements to drop from the start of the iteration.
8
+ * @returns An iterator that contains the elements of the provided iterator, except for the first `count` elements.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { drop } from '@sapphire/iterator-utilities';
13
+ *
14
+ * const iterable = drop(iterator, 2);
15
+ * console.log([...iterable]);
16
+ * // Output: [3, 4, 5]
17
+ * ```
18
+ */
19
+ declare function drop<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType>;
20
+
21
+ export { drop, drop as skip };
@@ -0,0 +1,24 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { empty } from './empty.mjs';
3
+ import { assertNotNegative } from './shared/_assertNotNegative.mjs';
4
+ import { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow.mjs';
5
+ import { toIterableIterator } from './toIterableIterator.mjs';
6
+
7
+ function drop(iterable, count) {
8
+ count = assertNotNegative(toIntegerOrInfinityOrThrow(count), count);
9
+ const resolvedIterable = toIterableIterator(iterable);
10
+ if (count === 0)
11
+ return resolvedIterable;
12
+ if (count === Number.POSITIVE_INFINITY)
13
+ return empty();
14
+ for (let i = 0; i < count; i++) {
15
+ if (resolvedIterable.next().done)
16
+ break;
17
+ }
18
+ return resolvedIterable;
19
+ }
20
+ __name(drop, "drop");
21
+
22
+ export { drop, drop as skip };
23
+ //# sourceMappingURL=out.js.map
24
+ //# sourceMappingURL=drop.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/drop.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,aAAa;AAEtB,SAAS,yBAAyB;AAClC,SAAS,kCAAkC;AAC3C,SAAS,0BAA0B;AAkB5B,SAAS,KAAwB,UAA2C,OAA8C;AAChI,UAAQ,kBAAkB,2BAA2B,KAAK,GAAG,KAAK;AAClE,QAAM,mBAAmB,mBAAmB,QAAQ;AAGpD,MAAI,UAAU;AAAG,WAAO;AAExB,MAAI,UAAU,OAAO;AAAmB,WAAO,MAAM;AAErD,WAAS,IAAI,GAAG,IAAI,OAAO,KAAK;AAC/B,QAAI,iBAAiB,KAAK,EAAE;AAAM;AAAA,EACnC;AAEA,SAAO;AACR;AAdgB","sourcesContent":["import { empty } from './empty';\nimport type { IterableResolvable } from './from';\nimport { assertNotNegative } from './shared/_assertNotNegative';\nimport { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Advances the iterable by `count` elements from the iterable.\n *\n * @param iterable An iterator to drop values from.\n * @param count The number of elements to drop from the start of the iteration.\n * @returns An iterator that contains the elements of the provided iterator, except for the first `count` elements.\n *\n * @example\n * ```typescript\n * import { drop } from '@sapphire/iterator-utilities';\n *\n * const iterable = drop(iterator, 2);\n * console.log([...iterable]);\n * // Output: [3, 4, 5]\n * ```\n */\nexport function drop<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType> {\n\tcount = assertNotNegative(toIntegerOrInfinityOrThrow(count), count);\n\tconst resolvedIterable = toIterableIterator(iterable);\n\n\t// If the count is 0, return the original iterable:\n\tif (count === 0) return resolvedIterable;\n\t// If the count is infinite, return an empty iterable:\n\tif (count === Number.POSITIVE_INFINITY) return empty();\n\n\tfor (let i = 0; i < count; i++) {\n\t\tif (resolvedIterable.next().done) break;\n\t}\n\n\treturn resolvedIterable;\n}\n\nexport { drop as skip };\n"]}
@@ -0,0 +1,25 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Consumes the iterable, creating a new iterator without the last `count` elements from the iterable.
5
+ *
6
+ * @param iterable An iterator to drop values from.
7
+ * @param count The number of values to drop from the end of the iterator.
8
+ * @returns An iterator that contains the elements of the provided iterator, except for the last `count` elements.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { dropLast } from '@sapphire/iterator-utilities';
13
+ *
14
+ * const iterable = dropLast([1, 2, 3, 4, 5], 2);
15
+ * console.log([...iterable]);
16
+ * // Output: [1, 2, 3]
17
+ * ```
18
+ *
19
+ * @remarks
20
+ *
21
+ * This function consumes the entire iterator.
22
+ */
23
+ declare function dropLast<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType>;
24
+
25
+ export { dropLast, dropLast as skipLast };
@@ -0,0 +1,19 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { empty } from './empty.mjs';
3
+ import { assertNotNegative } from './shared/_assertNotNegative.mjs';
4
+ import { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow.mjs';
5
+ import { take } from './take.mjs';
6
+ import { toArray } from './toArray.mjs';
7
+
8
+ function dropLast(iterable, count) {
9
+ count = assertNotNegative(toIntegerOrInfinityOrThrow(count), count);
10
+ const array = toArray(iterable);
11
+ if (array.length <= count)
12
+ return empty();
13
+ return take(array.values(), array.length - count);
14
+ }
15
+ __name(dropLast, "dropLast");
16
+
17
+ export { dropLast, dropLast as skipLast };
18
+ //# sourceMappingURL=out.js.map
19
+ //# sourceMappingURL=dropLast.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/dropLast.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,aAAa;AAEtB,SAAS,yBAAyB;AAClC,SAAS,kCAAkC;AAC3C,SAAS,YAAY;AACrB,SAAS,eAAe;AAsBjB,SAAS,SAA4B,UAA2C,OAA8C;AACpI,UAAQ,kBAAkB,2BAA2B,KAAK,GAAG,KAAK;AAClE,QAAM,QAAQ,QAAQ,QAAQ;AAC9B,MAAI,MAAM,UAAU;AAAO,WAAO,MAAM;AACxC,SAAO,KAAK,MAAM,OAAO,GAAG,MAAM,SAAS,KAAK;AACjD;AALgB","sourcesContent":["import { empty } from './empty';\nimport type { IterableResolvable } from './from';\nimport { assertNotNegative } from './shared/_assertNotNegative';\nimport { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow';\nimport { take } from './take';\nimport { toArray } from './toArray';\n\n/**\n * Consumes the iterable, creating a new iterator without the last `count` elements from the iterable.\n *\n * @param iterable An iterator to drop values from.\n * @param count The number of values to drop from the end of the iterator.\n * @returns An iterator that contains the elements of the provided iterator, except for the last `count` elements.\n *\n * @example\n * ```typescript\n * import { dropLast } from '@sapphire/iterator-utilities';\n *\n * const iterable = dropLast([1, 2, 3, 4, 5], 2);\n * console.log([...iterable]);\n * // Output: [1, 2, 3]\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function dropLast<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType> {\n\tcount = assertNotNegative(toIntegerOrInfinityOrThrow(count), count);\n\tconst array = toArray(iterable);\n\tif (array.length <= count) return empty();\n\treturn take(array.values(), array.length - count);\n}\n\nexport { dropLast as skipLast };\n"]}