@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,24 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Creates a new iterator without the elements that satisfy the specified test.
5
+ *
6
+ * @param iterable An iterator to drop values from.
7
+ * @param callbackFn A function to execute for each element produced by the iterator. It should return a falsy value to make the element yielded by the iterator helper, and a truthy value otherwise.
8
+ * @returns An iterator that produces elements from the given iterator that don't satisfy the specified test.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { dropWhile } from '@sapphire/iterator-utilities';
13
+ *
14
+ * const iterable = dropWhile([1, 2, 3, 4, 5], (value) => value < 3);
15
+ * console.log([...iterable]);
16
+ * // Output: [3, 4, 5]
17
+ * ```
18
+ *
19
+ * @seealso {@link filter} or {@link takeWhile} for the opposite behavior.
20
+ */
21
+ declare function dropWhile<const ElementType, const FilteredType extends ElementType>(iterable: IterableResolvable<ElementType>, callbackFn: (element: ElementType, index: number) => element is FilteredType): IterableIterator<Exclude<ElementType, FilteredType>>;
22
+ declare function dropWhile<const ElementType>(iterable: IterableResolvable<ElementType>, callbackFn: (element: ElementType, index: number) => boolean): IterableIterator<ElementType>;
23
+
24
+ export { dropWhile, dropWhile as skipWhile };
@@ -0,0 +1,18 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { assertFunction } from './shared/_assertFunction.mjs';
3
+ import { toIterableIterator } from './toIterableIterator.mjs';
4
+
5
+ function* dropWhile(iterable, callbackFn) {
6
+ callbackFn = assertFunction(callbackFn);
7
+ let index = 0;
8
+ for (const value of toIterableIterator(iterable)) {
9
+ if (!callbackFn(value, index++)) {
10
+ yield value;
11
+ }
12
+ }
13
+ }
14
+ __name(dropWhile, "dropWhile");
15
+
16
+ export { dropWhile, dropWhile as skipWhile };
17
+ //# sourceMappingURL=out.js.map
18
+ //# sourceMappingURL=dropWhile.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/dropWhile.ts"],"names":[],"mappings":";;;;;AACA,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AA4B5B,UAAU,UAChB,UACA,YACgC;AAChC,eAAa,eAAe,UAAU;AAEtC,MAAI,QAAQ;AACZ,aAAW,SAAS,mBAAmB,QAAQ,GAAG;AACjD,QAAI,CAAC,WAAW,OAAO,OAAO,GAAG;AAChC,YAAM;AAAA,IACP;AAAA,EACD;AACD;AAZiB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { assertFunction } from './shared/_assertFunction';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Creates a new iterator without the elements that satisfy the specified test.\n *\n * @param iterable An iterator to drop values from.\n * @param callbackFn A function to execute for each element produced by the iterator. It should return a falsy value to make the element yielded by the iterator helper, and a truthy value otherwise.\n * @returns An iterator that produces elements from the given iterator that don't satisfy the specified test.\n *\n * @example\n * ```typescript\n * import { dropWhile } from '@sapphire/iterator-utilities';\n *\n * const iterable = dropWhile([1, 2, 3, 4, 5], (value) => value < 3);\n * console.log([...iterable]);\n * // Output: [3, 4, 5]\n * ```\n *\n * @seealso {@link filter} or {@link takeWhile} for the opposite behavior.\n */\nexport function dropWhile<const ElementType, const FilteredType extends ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => element is FilteredType\n): IterableIterator<Exclude<ElementType, FilteredType>>;\nexport function dropWhile<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => boolean\n): IterableIterator<ElementType>;\nexport function* dropWhile<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => boolean\n): IterableIterator<ElementType> {\n\tcallbackFn = assertFunction(callbackFn);\n\n\tlet index = 0;\n\tfor (const value of toIterableIterator(iterable)) {\n\t\tif (!callbackFn(value, index++)) {\n\t\t\tyield value;\n\t\t}\n\t}\n}\n\nexport { dropWhile as skipWhile };\n"]}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Creates an empty iterator.
3
+ *
4
+ * @returns An empty iterator.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { empty } from '@sapphire/iterator-utilities';
9
+ *
10
+ * const iterable = empty();
11
+ * console.log([...iterable]);
12
+ * // Output: []
13
+ * ```
14
+ */
15
+ declare function empty<const ElementType = never>(): IterableIterator<ElementType>;
16
+
17
+ export { empty };
@@ -0,0 +1,11 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { makeIterableIterator } from './shared/_makeIterableIterator.mjs';
3
+
4
+ function empty() {
5
+ return makeIterableIterator(() => ({ done: true, value: void 0 }));
6
+ }
7
+ __name(empty, "empty");
8
+
9
+ export { empty };
10
+ //# sourceMappingURL=out.js.map
11
+ //# sourceMappingURL=empty.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/empty.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,4BAA4B;AAgB9B,SAAS,QAAkE;AACjF,SAAO,qBAAkC,OAAO,EAAE,MAAM,MAAM,OAAO,OAAU,EAAE;AAClF;AAFgB","sourcesContent":["import { makeIterableIterator } from './shared/_makeIterableIterator';\n\n/**\n * Creates an empty iterator.\n *\n * @returns An empty iterator.\n *\n * @example\n * ```typescript\n * import { empty } from '@sapphire/iterator-utilities';\n *\n * const iterable = empty();\n * console.log([...iterable]);\n * // Output: []\n * ```\n */\nexport function empty<const ElementType = never>(): IterableIterator<ElementType> {\n\treturn makeIterableIterator<ElementType>(() => ({ done: true, value: undefined }));\n}\n"]}
@@ -0,0 +1,24 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Creates a new iterable that yields the index and value of each element.
5
+ *
6
+ * @param iterable An iterator to enumerate.
7
+ * @returns An iterator that yields the index and value of each element in the source iterator.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { enumerate } from '@sapphire/iterator-utilities';
12
+ *
13
+ * const iterable = ['a', 'b', 'c'];
14
+ * for (const [index, value] of enumerate(iterable)) {
15
+ * console.log(`Index: ${index}, Value: ${value}`);
16
+ * // Output: Index: 0, Value: a
17
+ * // Output: Index: 1, Value: b
18
+ * // Output: Index: 2, Value: c
19
+ * }
20
+ * ```
21
+ */
22
+ declare function enumerate<const ElementType>(iterable: IterableResolvable<ElementType>): IterableIterator<[number, ElementType]>;
23
+
24
+ export { enumerate };
@@ -0,0 +1,14 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { toIterableIterator } from './toIterableIterator.mjs';
3
+
4
+ function* enumerate(iterable) {
5
+ let index = 0;
6
+ for (const value of toIterableIterator(iterable)) {
7
+ yield [index++, value];
8
+ }
9
+ }
10
+ __name(enumerate, "enumerate");
11
+
12
+ export { enumerate };
13
+ //# sourceMappingURL=out.js.map
14
+ //# sourceMappingURL=enumerate.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/enumerate.ts"],"names":[],"mappings":";;;;;AACA,SAAS,0BAA0B;AAqB5B,UAAU,UAA6B,UAAoF;AACjI,MAAI,QAAQ;AACZ,aAAW,SAAS,mBAAmB,QAAQ,GAAG;AACjD,UAAM,CAAC,SAAS,KAAK;AAAA,EACtB;AACD;AALiB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Creates a new iterable that yields the index and value of each element.\n *\n * @param iterable An iterator to enumerate.\n * @returns An iterator that yields the index and value of each element in the source iterator.\n *\n * @example\n * ```typescript\n * import { enumerate } from '@sapphire/iterator-utilities';\n *\n * const iterable = ['a', 'b', 'c'];\n * for (const [index, value] of enumerate(iterable)) {\n * \tconsole.log(`Index: ${index}, Value: ${value}`);\n * \t// Output: Index: 0, Value: a\n * \t// Output: Index: 1, Value: b\n * \t// Output: Index: 2, Value: c\n * }\n * ```\n */\nexport function* enumerate<const ElementType>(iterable: IterableResolvable<ElementType>): IterableIterator<[number, ElementType]> {\n\tlet index = 0;\n\tfor (const value of toIterableIterator(iterable)) {\n\t\tyield [index++, value];\n\t}\n}\n"]}
@@ -0,0 +1,29 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Tests whether all elements in the iterable pass the test implemented by the provided function.
5
+ *
6
+ * @param iterable The iterator to check.
7
+ * @param callbackFn A function to execute for each element produced by the iterator. It should return a truthy value to indicate the element passes the test, and a falsy value otherwise.
8
+ * @returns `true` if callbackFn returns a truthy value for every element. Otherwise, `false`.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { every } from '@sapphire/iterator-utilities';
13
+ *
14
+ * const iterable = [1, 2, 3, 4, 5];
15
+ * console.log(every(iterable, (value) => value < 10));
16
+ * // Output: true
17
+ *
18
+ * console.log(every(iterable, (value) => value < 3));
19
+ * // Output: false
20
+ * ```
21
+ *
22
+ * @remarks
23
+ *
24
+ * This function consumes the entire iterator.
25
+ */
26
+ declare function every<const ElementType, const FilteredType extends ElementType>(iterable: IterableResolvable<ElementType>, callbackFn: (element: ElementType, index: number) => element is FilteredType): iterable is IterableIterator<FilteredType>;
27
+ declare function every<const ElementType>(iterable: IterableResolvable<ElementType>, callbackFn: (element: ElementType, index: number) => boolean): boolean;
28
+
29
+ export { every };
@@ -0,0 +1,18 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { assertFunction } from './shared/_assertFunction.mjs';
3
+ import { toIterableIterator } from './toIterableIterator.mjs';
4
+
5
+ function every(iterable, callbackFn) {
6
+ callbackFn = assertFunction(callbackFn);
7
+ let index = 0;
8
+ for (const value of toIterableIterator(iterable)) {
9
+ if (!callbackFn(value, index++))
10
+ return false;
11
+ }
12
+ return true;
13
+ }
14
+ __name(every, "every");
15
+
16
+ export { every };
17
+ //# sourceMappingURL=out.js.map
18
+ //# sourceMappingURL=every.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/every.ts"],"names":[],"mappings":";;;;;AACA,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AAiC5B,SAAS,MAAyB,UAA2C,YAA8D;AACjJ,eAAa,eAAe,UAAU;AAEtC,MAAI,QAAQ;AACZ,aAAW,SAAS,mBAAmB,QAAQ,GAAG;AACjD,QAAI,CAAC,WAAW,OAAO,OAAO;AAAG,aAAO;AAAA,EACzC;AAEA,SAAO;AACR;AATgB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { assertFunction } from './shared/_assertFunction';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Tests whether all elements in the iterable pass the test implemented by the provided function.\n *\n * @param iterable The iterator to check.\n * @param callbackFn A function to execute for each element produced by the iterator. It should return a truthy value to indicate the element passes the test, and a falsy value otherwise.\n * @returns `true` if callbackFn returns a truthy value for every element. Otherwise, `false`.\n *\n * @example\n * ```typescript\n * import { every } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(every(iterable, (value) => value < 10));\n * // Output: true\n *\n * console.log(every(iterable, (value) => value < 3));\n * // Output: false\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function every<const ElementType, const FilteredType extends ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => element is FilteredType\n): iterable is IterableIterator<FilteredType>;\nexport function every<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => boolean\n): boolean;\nexport function every<const ElementType>(iterable: IterableResolvable<ElementType>, callbackFn: (element: ElementType, index: number) => boolean) {\n\tcallbackFn = assertFunction(callbackFn);\n\n\tlet index = 0;\n\tfor (const value of toIterableIterator(iterable)) {\n\t\tif (!callbackFn(value, index++)) return false;\n\t}\n\n\treturn true;\n}\n"]}
@@ -0,0 +1,22 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Creates an iterable with the elements that pass the test implemented by the provided function.
5
+ *
6
+ * @param iterable The iterator to filter.
7
+ * @param callbackFn A function to execute for each element produced by the iterator. It should return a truthy value to make the element yielded by the iterator helper, and a falsy value otherwise.
8
+ * @returns An iterator that produces elements from the given iterator that satisfy the specified test.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { filter } from '@sapphire/iterator-utilities';
13
+ *
14
+ * const iterable = [1, 2, 3, 4, 5];
15
+ * console.log([...filter(iterable, (value) => value % 2 === 0)]);
16
+ * // Output: [2, 4]
17
+ * ```
18
+ */
19
+ declare function filter<const ElementType, const FilteredType extends ElementType>(iterable: IterableResolvable<ElementType>, callbackFn: (element: ElementType, index: number) => element is FilteredType): IterableIterator<FilteredType>;
20
+ declare function filter<const ElementType>(iterable: IterableResolvable<ElementType>, callbackFn: (element: ElementType, index: number) => boolean): IterableIterator<ElementType>;
21
+
22
+ export { filter, filter as takeWhile };
@@ -0,0 +1,17 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { assertFunction } from './shared/_assertFunction.mjs';
3
+ import { toIterableIterator } from './toIterableIterator.mjs';
4
+
5
+ function* filter(iterable, callbackFn) {
6
+ callbackFn = assertFunction(callbackFn);
7
+ let index = 0;
8
+ for (const value of toIterableIterator(iterable)) {
9
+ if (callbackFn(value, index++))
10
+ yield value;
11
+ }
12
+ }
13
+ __name(filter, "filter");
14
+
15
+ export { filter, filter as takeWhile };
16
+ //# sourceMappingURL=out.js.map
17
+ //# sourceMappingURL=filter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/filter.ts"],"names":[],"mappings":";;;;;AACA,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AA0B5B,UAAU,OAChB,UACA,YACgC;AAChC,eAAa,eAAe,UAAU;AAEtC,MAAI,QAAQ;AACZ,aAAW,SAAS,mBAAmB,QAAQ,GAAG;AACjD,QAAI,WAAW,OAAO,OAAO;AAAG,YAAM;AAAA,EACvC;AACD;AAViB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { assertFunction } from './shared/_assertFunction';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Creates an iterable with the elements that pass the test implemented by the provided function.\n *\n * @param iterable The iterator to filter.\n * @param callbackFn A function to execute for each element produced by the iterator. It should return a truthy value to make the element yielded by the iterator helper, and a falsy value otherwise.\n * @returns An iterator that produces elements from the given iterator that satisfy the specified test.\n *\n * @example\n * ```typescript\n * import { filter } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...filter(iterable, (value) => value % 2 === 0)]);\n * // Output: [2, 4]\n * ```\n */\nexport function filter<const ElementType, const FilteredType extends ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => element is FilteredType\n): IterableIterator<FilteredType>;\nexport function filter<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => boolean\n): IterableIterator<ElementType>;\nexport function* filter<ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => boolean\n): IterableIterator<ElementType> {\n\tcallbackFn = assertFunction(callbackFn);\n\n\tlet index = 0;\n\tfor (const value of toIterableIterator(iterable)) {\n\t\tif (callbackFn(value, index++)) yield value;\n\t}\n}\n\nexport { filter as takeWhile };\n"]}
@@ -0,0 +1,26 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Advances the iterable until it finds the element, returning it if it's found and `undefined` otherwise.
5
+ *
6
+ * @param iterable An iterator to search for a value in.
7
+ * @param callbackFn A function that determines if a value is the one being searched for.
8
+ * @returns
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { find } from '@sapphire/iterator-utilities';
13
+ *
14
+ * const iterable = [1, 2, 3, 4, 5];
15
+ * console.log(find(iterable, (value) => value % 2 === 0));
16
+ * // Output: 2
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 find<const ElementType, const FilteredType extends ElementType>(iterable: IterableResolvable<ElementType>, callbackFn: (element: ElementType, index: number) => element is FilteredType): FilteredType | undefined;
24
+ declare function find<const ElementType>(iterable: IterableResolvable<ElementType>, callbackFn: (element: ElementType, index: number) => boolean): ElementType | undefined;
25
+
26
+ export { find };
@@ -0,0 +1,12 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { filter } from './filter.mjs';
3
+ import { first } from './first.mjs';
4
+
5
+ function find(iterable, callbackFn) {
6
+ return first(filter(iterable, callbackFn));
7
+ }
8
+ __name(find, "find");
9
+
10
+ export { find };
11
+ //# sourceMappingURL=out.js.map
12
+ //# sourceMappingURL=find.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/find.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,cAAc;AACvB,SAAS,aAAa;AA+Bf,SAAS,KACf,UACA,YAC0B;AAC1B,SAAO,MAAM,OAAO,UAAU,UAAU,CAAC;AAC1C;AALgB","sourcesContent":["import { filter } from './filter';\nimport { first } from './first';\nimport type { IterableResolvable } from './from';\n\n/**\n * Advances the iterable until it finds the element, returning it if it's found and `undefined` otherwise.\n *\n * @param iterable An iterator to search for a value in.\n * @param callbackFn A function that determines if a value is the one being searched for.\n * @returns\n *\n * @example\n * ```typescript\n * import { find } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(find(iterable, (value) => value % 2 === 0));\n * // Output: 2\n * ```\n *\n * @remarks\n *\n * This function consumes the iterator until the value is found or the iterator is exhausted.\n */\nexport function find<const ElementType, const FilteredType extends ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => element is FilteredType\n): FilteredType | undefined;\nexport function find<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => boolean\n): ElementType | undefined;\nexport function find<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => boolean\n): ElementType | undefined {\n\treturn first(filter(iterable, callbackFn));\n}\n"]}
@@ -0,0 +1,25 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Advances the iterable until it finds the element, returning its index if it's found and `-1` otherwise.
5
+ *
6
+ * @param iterable An iterator to search for an element in.
7
+ * @param callbackFn A function that determines if an element is the one being searched for.
8
+ * @returns The index of the first element that satisfies the predicate, or `-1` if no elements satisfy the predicate.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { findIndex } from '@sapphire/iterator-utilities';
13
+ *
14
+ * const iterable = [1, 2, 3, 4, 5];
15
+ * console.log(findIndex(iterable, (value) => value % 2 === 0));
16
+ * // Output: 1
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 findIndex<const ElementType>(iterable: IterableResolvable<ElementType>, callbackFn: (element: ElementType, index: number) => boolean): number;
24
+
25
+ export { findIndex };
@@ -0,0 +1,20 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { assertFunction } from './shared/_assertFunction.mjs';
3
+ import { toIterableIterator } from './toIterableIterator.mjs';
4
+
5
+ function findIndex(iterable, callbackFn) {
6
+ callbackFn = assertFunction(callbackFn);
7
+ let index = 0;
8
+ for (const element of toIterableIterator(iterable)) {
9
+ if (callbackFn(element, index)) {
10
+ return index;
11
+ }
12
+ index++;
13
+ }
14
+ return -1;
15
+ }
16
+ __name(findIndex, "findIndex");
17
+
18
+ export { findIndex };
19
+ //# sourceMappingURL=out.js.map
20
+ //# sourceMappingURL=findIndex.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/findIndex.ts"],"names":[],"mappings":";;;;;AACA,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AAsB5B,SAAS,UACf,UACA,YACS;AACT,eAAa,eAAe,UAAU;AAEtC,MAAI,QAAQ;AACZ,aAAW,WAAW,mBAAmB,QAAQ,GAAG;AACnD,QAAI,WAAW,SAAS,KAAK,GAAG;AAC/B,aAAO;AAAA,IACR;AAEA;AAAA,EACD;AAEA,SAAO;AACR;AAhBgB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { assertFunction } from './shared/_assertFunction';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Advances the iterable until it finds the element, returning its index if it's found and `-1` otherwise.\n *\n * @param iterable An iterator to search for an element in.\n * @param callbackFn A function that determines if an element is the one being searched for.\n * @returns The index of the first element that satisfies the predicate, or `-1` if no elements satisfy the predicate.\n *\n * @example\n * ```typescript\n * import { findIndex } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(findIndex(iterable, (value) => value % 2 === 0));\n * // Output: 1\n * ```\n *\n * @remarks\n *\n * This function consumes the iterator until the value is found or the iterator is exhausted.\n */\nexport function findIndex<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => boolean\n): number {\n\tcallbackFn = assertFunction(callbackFn);\n\n\tlet index = 0;\n\tfor (const element of toIterableIterator(iterable)) {\n\t\tif (callbackFn(element, index)) {\n\t\t\treturn index;\n\t\t}\n\n\t\tindex++;\n\t}\n\n\treturn -1;\n}\n"]}
@@ -0,0 +1,24 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Consumes the first element of the iterable, returning it if it's found and `undefined` otherwise.
5
+ *
6
+ * @param iterable The iterator to return the first value of.
7
+ * @returns The first value of the iterator, or `undefined` if the iterator is empty.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { first } from '@sapphire/iterator-utilities';
12
+ *
13
+ * const iterable = [1, 2, 3, 4, 5];
14
+ * console.log(first(iterable));
15
+ * // Output: 1
16
+ * ```
17
+ *
18
+ * @remarks
19
+ *
20
+ * This function consumes the first value of the iterator.
21
+ */
22
+ declare function first<const ElementType>(iterable: IterableResolvable<ElementType>): ElementType | undefined;
23
+
24
+ export { first };
@@ -0,0 +1,11 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { from } from './from.mjs';
3
+
4
+ function first(iterable) {
5
+ return from(iterable).next().value;
6
+ }
7
+ __name(first, "first");
8
+
9
+ export { first };
10
+ //# sourceMappingURL=out.js.map
11
+ //# sourceMappingURL=first.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/first.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,YAAqC;AAqBvC,SAAS,MAAyB,UAAoE;AAC5G,SAAO,KAAK,QAAQ,EAAE,KAAK,EAAE;AAC9B;AAFgB","sourcesContent":["import { from, type IterableResolvable } from './from';\n\n/**\n * Consumes the first element of the iterable, returning it if it's found and `undefined` otherwise.\n *\n * @param iterable The iterator to return the first value of.\n * @returns The first value of the iterator, or `undefined` if the iterator is empty.\n *\n * @example\n * ```typescript\n * import { first } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(first(iterable));\n * // Output: 1\n * ```\n *\n * @remarks\n *\n * This function consumes the first value of the iterator.\n */\nexport function first<const ElementType>(iterable: IterableResolvable<ElementType>): ElementType | undefined {\n\treturn from(iterable).next().value;\n}\n"]}
@@ -0,0 +1,20 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Creates an iterable that yields the elements of each iterable in the input iterable.
5
+ *
6
+ * @param iterables An iterator to map.
7
+ * @returns An iterator that yields the entries of each iterator.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { flat } from '@sapphire/iterator-utilities';
12
+ *
13
+ * const iterable = flat([[1, 2], [3, 4], [5, 6]]);
14
+ * console.log([...iterable]);
15
+ * // Output: [1, 2, 3, 4, 5, 6]
16
+ * ```
17
+ */
18
+ declare function flat<const ElementType>(iterables: IterableResolvable<IterableResolvable<ElementType>>): IterableIterator<ElementType>;
19
+
20
+ export { flat };
@@ -0,0 +1,13 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { toIterableIterator } from './toIterableIterator.mjs';
3
+
4
+ function* flat(iterables) {
5
+ for (const value of toIterableIterator(iterables)) {
6
+ yield* toIterableIterator(value);
7
+ }
8
+ }
9
+ __name(flat, "flat");
10
+
11
+ export { flat };
12
+ //# sourceMappingURL=out.js.map
13
+ //# sourceMappingURL=flat.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/flat.ts"],"names":[],"mappings":";;;;;AACA,SAAS,0BAA0B;AAiB5B,UAAU,KAAwB,WAA+F;AACvI,aAAW,SAAS,mBAAmB,SAAS,GAAG;AAClD,WAAO,mBAAmB,KAAK;AAAA,EAChC;AACD;AAJiB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Creates an iterable that yields the elements of each iterable in the input iterable.\n *\n * @param iterables An iterator to map.\n * @returns An iterator that yields the entries of each iterator.\n *\n * @example\n * ```typescript\n * import { flat } from '@sapphire/iterator-utilities';\n *\n * const iterable = flat([[1, 2], [3, 4], [5, 6]]);\n * console.log([...iterable]);\n * // Output: [1, 2, 3, 4, 5, 6]\n * ```\n */\nexport function* flat<const ElementType>(iterables: IterableResolvable<IterableResolvable<ElementType>>): IterableIterator<ElementType> {\n\tfor (const value of toIterableIterator(iterables)) {\n\t\tyield* toIterableIterator(value);\n\t}\n}\n"]}
@@ -0,0 +1,21 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Creates an iterable that yields the elements of each iterable returned by the provided function on each element of the input iterable.
5
+ *
6
+ * @param iterable An iterator to map.
7
+ * @param callbackFn A function to execute for each element produced by the iterator. It should return an iterator or iterable that yields elements to be yielded by `flatMap()`, or a single non-iterator/iterable value to be yielded.
8
+ * @returns An iterator that applies a function to each element of the input iterator and yields the results.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { flatMap } from '@sapphire/iterator-utilities';
13
+ *
14
+ * const iterable = [1, 2, 3];
15
+ * console.log([...flatMap(iterable, (value) => [value, value * 2])]);
16
+ * // Output: [1, 2, 2, 4, 3, 6]
17
+ * ```
18
+ */
19
+ declare function flatMap<const ElementType, const MappedType>(iterable: IterableResolvable<ElementType>, callbackFn: (element: ElementType, index: number) => IterableResolvable<MappedType>): IterableIterator<MappedType>;
20
+
21
+ export { flatMap };
@@ -0,0 +1,16 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { assertFunction } from './shared/_assertFunction.mjs';
3
+ import { toIterableIterator } from './toIterableIterator.mjs';
4
+
5
+ function* flatMap(iterable, callbackFn) {
6
+ callbackFn = assertFunction(callbackFn);
7
+ let index = 0;
8
+ for (const value of toIterableIterator(iterable)) {
9
+ yield* toIterableIterator(callbackFn(value, index++));
10
+ }
11
+ }
12
+ __name(flatMap, "flatMap");
13
+
14
+ export { flatMap };
15
+ //# sourceMappingURL=out.js.map
16
+ //# sourceMappingURL=flatMap.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/flatMap.ts"],"names":[],"mappings":";;;;;AACA,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AAkB5B,UAAU,QAChB,UACA,YAC+B;AAC/B,eAAa,eAAe,UAAU;AAEtC,MAAI,QAAQ;AACZ,aAAW,SAAS,mBAAmB,QAAQ,GAAG;AACjD,WAAO,mBAAmB,WAAW,OAAO,OAAO,CAAC;AAAA,EACrD;AACD;AAViB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { assertFunction } from './shared/_assertFunction';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Creates an iterable that yields the elements of each iterable returned by the provided function on each element of the input iterable.\n *\n * @param iterable An iterator to map.\n * @param callbackFn A function to execute for each element produced by the iterator. It should return an iterator or iterable that yields elements to be yielded by `flatMap()`, or a single non-iterator/iterable value to be yielded.\n * @returns An iterator that applies a function to each element of the input iterator and yields the results.\n *\n * @example\n * ```typescript\n * import { flatMap } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3];\n * console.log([...flatMap(iterable, (value) => [value, value * 2])]);\n * // Output: [1, 2, 2, 4, 3, 6]\n * ```\n */\nexport function* flatMap<const ElementType, const MappedType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => IterableResolvable<MappedType>\n): IterableIterator<MappedType> {\n\tcallbackFn = assertFunction(callbackFn);\n\n\tlet index = 0;\n\tfor (const value of toIterableIterator(iterable)) {\n\t\tyield* toIterableIterator(callbackFn(value, index++));\n\t}\n}\n"]}
@@ -0,0 +1,24 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Executes a provided function once for each iterable element.
5
+ *
6
+ * @param iterable An iterator to iterate over.
7
+ * @param callbackFn A function to execute for each element produced by the iterator. Its return value is discarded.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { forEach } from '@sapphire/iterator-utilities';
12
+ *
13
+ * const iterable = [1, 2, 3, 4, 5];
14
+ * forEach(iterable, (value) => console.log(value));
15
+ * // Output: 1, 2, 3, 4, 5
16
+ * ```
17
+ *
18
+ * @remarks
19
+ *
20
+ * This function consumes the entire iterator.
21
+ */
22
+ declare function forEach<const ElementType>(iterable: IterableResolvable<ElementType>, callbackFn: (element: ElementType, index: number) => void): void;
23
+
24
+ export { forEach };
@@ -0,0 +1,16 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { assertFunction } from './shared/_assertFunction.mjs';
3
+ import { toIterableIterator } from './toIterableIterator.mjs';
4
+
5
+ function forEach(iterable, callbackFn) {
6
+ callbackFn = assertFunction(callbackFn);
7
+ let index = 0;
8
+ for (const element of toIterableIterator(iterable)) {
9
+ callbackFn(element, index++);
10
+ }
11
+ }
12
+ __name(forEach, "forEach");
13
+
14
+ export { forEach };
15
+ //# sourceMappingURL=out.js.map
16
+ //# sourceMappingURL=forEach.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/forEach.ts"],"names":[],"mappings":";;;;;AACA,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AAqB5B,SAAS,QACf,UACA,YACO;AACP,eAAa,eAAe,UAAU;AAEtC,MAAI,QAAQ;AACZ,aAAW,WAAW,mBAAmB,QAAQ,GAAG;AACnD,eAAW,SAAS,OAAO;AAAA,EAC5B;AACD;AAVgB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { assertFunction } from './shared/_assertFunction';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Executes a provided function once for each iterable element.\n *\n * @param iterable An iterator to iterate over.\n * @param callbackFn A function to execute for each element produced by the iterator. Its return value is discarded.\n *\n * @example\n * ```typescript\n * import { forEach } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * forEach(iterable, (value) => console.log(value));\n * // Output: 1, 2, 3, 4, 5\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function forEach<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => void\n): void {\n\tcallbackFn = assertFunction(callbackFn);\n\n\tlet index = 0;\n\tfor (const element of toIterableIterator(iterable)) {\n\t\tcallbackFn(element, index++);\n\t}\n}\n"]}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Resolves an iterable from an iterable or iterator-like object.
3
+ *
4
+ * @param value The value to convert to an iterator.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { from } from '@sapphire/iterator-utilities';
9
+ *
10
+ * const iterable = from([1, 2, 3, 4, 5]);
11
+ * for (const element of iterable) {
12
+ * console.log(element);
13
+ * // Output: 1, 2, 3, 4, 5
14
+ * }
15
+ * ```
16
+ */
17
+ declare function from<const ElementType, const ResolvableType extends IterableResolvable<ElementType>>(value: ResolvableType): IterableResolved<ResolvableType>;
18
+ type IterableResolvable<ElementType> = Iterable<ElementType> | Iterator<ElementType> | IterableIterator<ElementType>;
19
+ type IterableResolved<Type> = Type extends IterableIterator<infer Output> ? IterableIterator<Output> : Type extends Iterable<infer Output> ? Iterator<Output> : Type extends Iterator<infer Output> ? Iterator<Output> : never;
20
+
21
+ export { type IterableResolvable, type IterableResolved, from };
@@ -0,0 +1,22 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+
3
+ // src/lib/from.ts
4
+ function from(value) {
5
+ if (typeof value === "object" && value !== null) {
6
+ if (typeof value[Symbol.iterator] === "function") {
7
+ return value[Symbol.iterator]();
8
+ }
9
+ if (typeof value.next === "function") {
10
+ return value;
11
+ }
12
+ }
13
+ if (typeof value === "string") {
14
+ return value[Symbol.iterator]();
15
+ }
16
+ throw new TypeError(`${String(value)} cannot be converted to an iterable`);
17
+ }
18
+ __name(from, "from");
19
+
20
+ export { from };
21
+ //# sourceMappingURL=out.js.map
22
+ //# sourceMappingURL=from.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/from.ts"],"names":[],"mappings":";;;;;AAmBO,SAAS,KAAK,OAAY;AAChC,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAChD,QAAI,OAAO,MAAM,OAAO,QAAQ,MAAM,YAAY;AACjD,aAAO,MAAM,OAAO,QAAQ,EAAE;AAAA,IAC/B;AAEA,QAAI,OAAO,MAAM,SAAS,YAAY;AACrC,aAAO;AAAA,IACR;AAAA,EACD;AAEA,MAAI,OAAO,UAAU,UAAU;AAC9B,WAAO,MAAM,OAAO,QAAQ,EAAE;AAAA,EAC/B;AAEA,QAAM,IAAI,UAAU,GAAG,OAAO,KAAK,CAAC,qCAAqC;AAC1E;AAhBgB","sourcesContent":["/**\n * Resolves an iterable from an iterable or iterator-like object.\n *\n * @param value The value to convert to an iterator.\n *\n * @example\n * ```typescript\n * import { from } from '@sapphire/iterator-utilities';\n *\n * const iterable = from([1, 2, 3, 4, 5]);\n * for (const element of iterable) {\n * \tconsole.log(element);\n * \t// Output: 1, 2, 3, 4, 5\n * }\n * ```\n */\nexport function from<const ElementType, const ResolvableType extends IterableResolvable<ElementType>>(\n\tvalue: ResolvableType\n): IterableResolved<ResolvableType>;\nexport function from(value: any) {\n\tif (typeof value === 'object' && value !== null) {\n\t\tif (typeof value[Symbol.iterator] === 'function') {\n\t\t\treturn value[Symbol.iterator]();\n\t\t}\n\n\t\tif (typeof value.next === 'function') {\n\t\t\treturn value;\n\t\t}\n\t}\n\n\tif (typeof value === 'string') {\n\t\treturn value[Symbol.iterator]();\n\t}\n\n\tthrow new TypeError(`${String(value)} cannot be converted to an iterable`);\n}\n\nexport type IterableResolvable<ElementType> = Iterable<ElementType> | Iterator<ElementType> | IterableIterator<ElementType>;\n\nexport type IterableResolved<Type> =\n\tType extends IterableIterator<infer Output>\n\t\t? IterableIterator<Output>\n\t\t: Type extends Iterable<infer Output>\n\t\t\t? Iterator<Output>\n\t\t\t: Type extends Iterator<infer Output>\n\t\t\t\t? Iterator<Output>\n\t\t\t\t: never;\n"]}
@@ -0,0 +1,25 @@
1
+ import { IterableResolvable } from './from.mjs';
2
+
3
+ /**
4
+ * Advances the iterable until it finds the element, returning its index if it's found and `-1` otherwise.
5
+ *
6
+ * @param iterable An iterator to search for a value in.
7
+ * @param value The value to search for.
8
+ * @returns The index of the first occurrence of the value in the iterator, or `-1` if the value is not found.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { indexOf } from '@sapphire/iterator-utilities';
13
+ *
14
+ * const iterable = [1, 2, 3, 4, 5];
15
+ * console.log(indexOf(iterable, 3));
16
+ * // Output: 2
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 indexOf<const ElementType>(iterable: IterableResolvable<ElementType>, value: ElementType): number;
24
+
25
+ export { indexOf, indexOf as position };
@@ -0,0 +1,18 @@
1
+ import { __name } from '../chunk-G5GHKT7C.mjs';
2
+ import { toIterableIterator } from './toIterableIterator.mjs';
3
+
4
+ function indexOf(iterable, value) {
5
+ let index = 0;
6
+ for (const element of toIterableIterator(iterable)) {
7
+ if (element === value) {
8
+ return index;
9
+ }
10
+ index++;
11
+ }
12
+ return -1;
13
+ }
14
+ __name(indexOf, "indexOf");
15
+
16
+ export { indexOf, indexOf as position };
17
+ //# sourceMappingURL=out.js.map
18
+ //# sourceMappingURL=indexOf.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/indexOf.ts"],"names":[],"mappings":";;;;;AACA,SAAS,0BAA0B;AAsB5B,SAAS,QAA2B,UAA2C,OAA4B;AACjH,MAAI,QAAQ;AACZ,aAAW,WAAW,mBAAmB,QAAQ,GAAG;AACnD,QAAI,YAAY,OAAO;AACtB,aAAO;AAAA,IACR;AAEA;AAAA,EACD;AAEA,SAAO;AACR;AAXgB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Advances the iterable until it finds the element, returning its index if it's found and `-1` otherwise.\n *\n * @param iterable An iterator to search for a value in.\n * @param value The value to search for.\n * @returns The index of the first occurrence of the value in the iterator, or `-1` if the value is not found.\n *\n * @example\n * ```typescript\n * import { indexOf } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(indexOf(iterable, 3));\n * // Output: 2\n * ```\n *\n * @remarks\n *\n * This function consumes the iterator until the value is found or the iterator is exhausted.\n */\nexport function indexOf<const ElementType>(iterable: IterableResolvable<ElementType>, value: ElementType): number {\n\tlet index = 0;\n\tfor (const element of toIterableIterator(iterable)) {\n\t\tif (element === value) {\n\t\t\treturn index;\n\t\t}\n\n\t\tindex++;\n\t}\n\n\treturn -1;\n}\n\nexport { indexOf as position };\n"]}