@sapphire/iterator-utilities 1.0.3-next.fc35dd86 → 2.0.0-next.1e7d2dec

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/dist/cjs/index.cjs +217 -0
  2. package/dist/cjs/index.d.cts +32 -9
  3. package/dist/cjs/lib/all.cjs +12 -0
  4. package/dist/cjs/lib/all.cjs.map +1 -0
  5. package/dist/cjs/lib/all.d.cts +2 -0
  6. package/dist/cjs/lib/any.cjs +12 -0
  7. package/dist/cjs/lib/any.cjs.map +1 -0
  8. package/dist/cjs/lib/any.d.cts +2 -0
  9. package/dist/cjs/lib/collect.cjs +12 -0
  10. package/dist/cjs/lib/collect.cjs.map +1 -0
  11. package/dist/cjs/lib/collect.d.cts +2 -0
  12. package/dist/cjs/lib/collectInto.cjs +17 -0
  13. package/dist/cjs/lib/collectInto.cjs.map +1 -0
  14. package/dist/cjs/lib/collectInto.d.cts +29 -0
  15. package/dist/cjs/lib/compare.cjs +15 -0
  16. package/dist/cjs/lib/compare.cjs.map +1 -0
  17. package/dist/cjs/lib/compare.d.cts +32 -0
  18. package/dist/cjs/lib/compareBy.cjs +26 -0
  19. package/dist/cjs/lib/compareBy.cjs.map +1 -0
  20. package/dist/cjs/lib/compareBy.d.cts +31 -0
  21. package/dist/cjs/lib/drop.cjs +0 -1
  22. package/dist/cjs/lib/drop.cjs.map +1 -1
  23. package/dist/cjs/lib/drop.d.cts +1 -1
  24. package/dist/cjs/lib/dropLast.cjs +0 -1
  25. package/dist/cjs/lib/dropLast.cjs.map +1 -1
  26. package/dist/cjs/lib/dropLast.d.cts +1 -1
  27. package/dist/cjs/lib/dropWhile.cjs +0 -1
  28. package/dist/cjs/lib/dropWhile.cjs.map +1 -1
  29. package/dist/cjs/lib/dropWhile.d.cts +1 -1
  30. package/dist/cjs/lib/equal.cjs +15 -0
  31. package/dist/cjs/lib/equal.cjs.map +1 -0
  32. package/dist/cjs/lib/equal.d.cts +26 -0
  33. package/dist/cjs/lib/equalBy.cjs +23 -0
  34. package/dist/cjs/lib/equalBy.cjs.map +1 -0
  35. package/dist/cjs/lib/equalBy.d.cts +27 -0
  36. package/dist/cjs/lib/filter.cjs +0 -1
  37. package/dist/cjs/lib/filter.cjs.map +1 -1
  38. package/dist/cjs/lib/filter.d.cts +1 -1
  39. package/dist/cjs/lib/fuse.cjs +26 -0
  40. package/dist/cjs/lib/fuse.cjs.map +1 -0
  41. package/dist/cjs/lib/fuse.d.cts +47 -0
  42. package/dist/cjs/lib/greaterOrEqualThan.cjs +17 -0
  43. package/dist/cjs/lib/greaterOrEqualThan.cjs.map +1 -0
  44. package/dist/cjs/lib/greaterOrEqualThan.d.cts +32 -0
  45. package/dist/cjs/lib/greaterThan.cjs +17 -0
  46. package/dist/cjs/lib/greaterThan.cjs.map +1 -0
  47. package/dist/cjs/lib/greaterThan.d.cts +32 -0
  48. package/dist/cjs/lib/indexOf.cjs +0 -1
  49. package/dist/cjs/lib/indexOf.cjs.map +1 -1
  50. package/dist/cjs/lib/indexOf.d.cts +1 -1
  51. package/dist/cjs/lib/inspect.cjs +25 -0
  52. package/dist/cjs/lib/inspect.cjs.map +1 -0
  53. package/dist/cjs/lib/inspect.d.cts +39 -0
  54. package/dist/cjs/lib/intersperse.cjs +35 -0
  55. package/dist/cjs/lib/intersperse.cjs.map +1 -0
  56. package/dist/cjs/lib/intersperse.d.cts +30 -0
  57. package/dist/cjs/lib/isSorted.cjs +15 -0
  58. package/dist/cjs/lib/isSorted.cjs.map +1 -0
  59. package/dist/cjs/lib/isSorted.d.cts +35 -0
  60. package/dist/cjs/lib/isSortedBy.cjs +26 -0
  61. package/dist/cjs/lib/isSortedBy.cjs.map +1 -0
  62. package/dist/cjs/lib/isSortedBy.d.cts +32 -0
  63. package/dist/cjs/lib/isSortedByKey.cjs +29 -0
  64. package/dist/cjs/lib/isSortedByKey.cjs.map +1 -0
  65. package/dist/cjs/lib/isSortedByKey.d.cts +30 -0
  66. package/dist/cjs/lib/lessOrEqualThan.cjs +17 -0
  67. package/dist/cjs/lib/lessOrEqualThan.cjs.map +1 -0
  68. package/dist/cjs/lib/lessOrEqualThan.d.cts +32 -0
  69. package/dist/cjs/lib/lessThan.cjs +17 -0
  70. package/dist/cjs/lib/lessThan.cjs.map +1 -0
  71. package/dist/cjs/lib/lessThan.d.cts +32 -0
  72. package/dist/cjs/lib/max.cjs +3 -7
  73. package/dist/cjs/lib/max.cjs.map +1 -1
  74. package/dist/cjs/lib/max.d.cts +8 -3
  75. package/dist/cjs/lib/maxBy.cjs +27 -0
  76. package/dist/cjs/lib/maxBy.cjs.map +1 -0
  77. package/dist/cjs/lib/maxBy.d.cts +31 -0
  78. package/dist/cjs/lib/maxByKey.cjs +32 -0
  79. package/dist/cjs/lib/maxByKey.cjs.map +1 -0
  80. package/dist/cjs/lib/maxByKey.d.cts +32 -0
  81. package/dist/cjs/lib/min.cjs +3 -7
  82. package/dist/cjs/lib/min.cjs.map +1 -1
  83. package/dist/cjs/lib/min.d.cts +8 -3
  84. package/dist/cjs/lib/minBy.cjs +27 -0
  85. package/dist/cjs/lib/minBy.cjs.map +1 -0
  86. package/dist/cjs/lib/minBy.d.cts +31 -0
  87. package/dist/cjs/lib/minByKey.cjs +32 -0
  88. package/dist/cjs/lib/minByKey.cjs.map +1 -0
  89. package/dist/cjs/lib/minByKey.d.cts +31 -0
  90. package/dist/cjs/lib/notEqual.cjs +15 -0
  91. package/dist/cjs/lib/notEqual.cjs.map +1 -0
  92. package/dist/cjs/lib/notEqual.d.cts +26 -0
  93. package/dist/cjs/lib/nth.cjs +12 -0
  94. package/dist/cjs/lib/nth.cjs.map +1 -0
  95. package/dist/cjs/lib/nth.d.cts +2 -0
  96. package/dist/cjs/lib/position.cjs +12 -0
  97. package/dist/cjs/lib/position.cjs.map +1 -0
  98. package/dist/cjs/lib/position.d.cts +2 -0
  99. package/dist/cjs/lib/reverse.cjs +2 -5
  100. package/dist/cjs/lib/reverse.cjs.map +1 -1
  101. package/dist/cjs/lib/shared/_compare.cjs +36 -0
  102. package/dist/cjs/lib/shared/_compare.cjs.map +1 -0
  103. package/dist/cjs/lib/shared/_compare.d.cts +20 -0
  104. package/dist/cjs/lib/shared/comparators.cjs +28 -0
  105. package/dist/cjs/lib/shared/comparators.cjs.map +1 -0
  106. package/dist/cjs/lib/shared/comparators.d.cts +34 -0
  107. package/dist/cjs/lib/skip.cjs +12 -0
  108. package/dist/cjs/lib/skip.cjs.map +1 -0
  109. package/dist/cjs/lib/skip.d.cts +2 -0
  110. package/dist/cjs/lib/skipLast.cjs +12 -0
  111. package/dist/cjs/lib/skipLast.cjs.map +1 -0
  112. package/dist/cjs/lib/skipLast.d.cts +2 -0
  113. package/dist/cjs/lib/skipWhile.cjs +12 -0
  114. package/dist/cjs/lib/skipWhile.cjs.map +1 -0
  115. package/dist/cjs/lib/skipWhile.d.cts +2 -0
  116. package/dist/cjs/lib/stepBy.cjs +29 -0
  117. package/dist/cjs/lib/stepBy.cjs.map +1 -0
  118. package/dist/cjs/lib/stepBy.d.cts +24 -0
  119. package/dist/cjs/lib/takeWhile.cjs +12 -0
  120. package/dist/cjs/lib/takeWhile.cjs.map +1 -0
  121. package/dist/cjs/lib/takeWhile.d.cts +2 -0
  122. package/dist/esm/index.d.mts +32 -9
  123. package/dist/esm/index.mjs +31 -0
  124. package/dist/esm/lib/all.d.mts +2 -0
  125. package/dist/esm/lib/all.mjs +4 -0
  126. package/dist/esm/lib/all.mjs.map +1 -0
  127. package/dist/esm/lib/any.d.mts +2 -0
  128. package/dist/esm/lib/any.mjs +4 -0
  129. package/dist/esm/lib/any.mjs.map +1 -0
  130. package/dist/esm/lib/collect.d.mts +2 -0
  131. package/dist/esm/lib/collect.mjs +4 -0
  132. package/dist/esm/lib/collect.mjs.map +1 -0
  133. package/dist/esm/lib/collectInto.d.mts +29 -0
  134. package/dist/esm/lib/collectInto.mjs +14 -0
  135. package/dist/esm/lib/collectInto.mjs.map +1 -0
  136. package/dist/esm/lib/compare.d.mts +32 -0
  137. package/dist/esm/lib/compare.mjs +12 -0
  138. package/dist/esm/lib/compare.mjs.map +1 -0
  139. package/dist/esm/lib/compareBy.d.mts +31 -0
  140. package/dist/esm/lib/compareBy.mjs +23 -0
  141. package/dist/esm/lib/compareBy.mjs.map +1 -0
  142. package/dist/esm/lib/drop.d.mts +1 -1
  143. package/dist/esm/lib/drop.mjs +1 -1
  144. package/dist/esm/lib/drop.mjs.map +1 -1
  145. package/dist/esm/lib/dropLast.d.mts +1 -1
  146. package/dist/esm/lib/dropLast.mjs +1 -1
  147. package/dist/esm/lib/dropLast.mjs.map +1 -1
  148. package/dist/esm/lib/dropWhile.d.mts +1 -1
  149. package/dist/esm/lib/dropWhile.mjs +1 -1
  150. package/dist/esm/lib/dropWhile.mjs.map +1 -1
  151. package/dist/esm/lib/equal.d.mts +26 -0
  152. package/dist/esm/lib/equal.mjs +11 -0
  153. package/dist/esm/lib/equal.mjs.map +1 -0
  154. package/dist/esm/lib/equalBy.d.mts +27 -0
  155. package/dist/esm/lib/equalBy.mjs +19 -0
  156. package/dist/esm/lib/equalBy.mjs.map +1 -0
  157. package/dist/esm/lib/filter.d.mts +1 -1
  158. package/dist/esm/lib/filter.mjs +1 -1
  159. package/dist/esm/lib/filter.mjs.map +1 -1
  160. package/dist/esm/lib/fuse.d.mts +47 -0
  161. package/dist/esm/lib/fuse.mjs +23 -0
  162. package/dist/esm/lib/fuse.mjs.map +1 -0
  163. package/dist/esm/lib/greaterOrEqualThan.d.mts +32 -0
  164. package/dist/esm/lib/greaterOrEqualThan.mjs +13 -0
  165. package/dist/esm/lib/greaterOrEqualThan.mjs.map +1 -0
  166. package/dist/esm/lib/greaterThan.d.mts +32 -0
  167. package/dist/esm/lib/greaterThan.mjs +13 -0
  168. package/dist/esm/lib/greaterThan.mjs.map +1 -0
  169. package/dist/esm/lib/indexOf.d.mts +1 -1
  170. package/dist/esm/lib/indexOf.mjs +1 -1
  171. package/dist/esm/lib/indexOf.mjs.map +1 -1
  172. package/dist/esm/lib/inspect.d.mts +39 -0
  173. package/dist/esm/lib/inspect.mjs +22 -0
  174. package/dist/esm/lib/inspect.mjs.map +1 -0
  175. package/dist/esm/lib/intersperse.d.mts +30 -0
  176. package/dist/esm/lib/intersperse.mjs +32 -0
  177. package/dist/esm/lib/intersperse.mjs.map +1 -0
  178. package/dist/esm/lib/isSorted.d.mts +35 -0
  179. package/dist/esm/lib/isSorted.mjs +12 -0
  180. package/dist/esm/lib/isSorted.mjs.map +1 -0
  181. package/dist/esm/lib/isSortedBy.d.mts +32 -0
  182. package/dist/esm/lib/isSortedBy.mjs +23 -0
  183. package/dist/esm/lib/isSortedBy.mjs.map +1 -0
  184. package/dist/esm/lib/isSortedByKey.d.mts +30 -0
  185. package/dist/esm/lib/isSortedByKey.mjs +26 -0
  186. package/dist/esm/lib/isSortedByKey.mjs.map +1 -0
  187. package/dist/esm/lib/lessOrEqualThan.d.mts +32 -0
  188. package/dist/esm/lib/lessOrEqualThan.mjs +13 -0
  189. package/dist/esm/lib/lessOrEqualThan.mjs.map +1 -0
  190. package/dist/esm/lib/lessThan.d.mts +32 -0
  191. package/dist/esm/lib/lessThan.mjs +13 -0
  192. package/dist/esm/lib/lessThan.mjs.map +1 -0
  193. package/dist/esm/lib/max.d.mts +8 -3
  194. package/dist/esm/lib/max.mjs +3 -7
  195. package/dist/esm/lib/max.mjs.map +1 -1
  196. package/dist/esm/lib/maxBy.d.mts +31 -0
  197. package/dist/esm/lib/maxBy.mjs +24 -0
  198. package/dist/esm/lib/maxBy.mjs.map +1 -0
  199. package/dist/esm/lib/maxByKey.d.mts +32 -0
  200. package/dist/esm/lib/maxByKey.mjs +29 -0
  201. package/dist/esm/lib/maxByKey.mjs.map +1 -0
  202. package/dist/esm/lib/min.d.mts +8 -3
  203. package/dist/esm/lib/min.mjs +3 -7
  204. package/dist/esm/lib/min.mjs.map +1 -1
  205. package/dist/esm/lib/minBy.d.mts +31 -0
  206. package/dist/esm/lib/minBy.mjs +24 -0
  207. package/dist/esm/lib/minBy.mjs.map +1 -0
  208. package/dist/esm/lib/minByKey.d.mts +31 -0
  209. package/dist/esm/lib/minByKey.mjs +29 -0
  210. package/dist/esm/lib/minByKey.mjs.map +1 -0
  211. package/dist/esm/lib/notEqual.d.mts +26 -0
  212. package/dist/esm/lib/notEqual.mjs +11 -0
  213. package/dist/esm/lib/notEqual.mjs.map +1 -0
  214. package/dist/esm/lib/nth.d.mts +2 -0
  215. package/dist/esm/lib/nth.mjs +4 -0
  216. package/dist/esm/lib/nth.mjs.map +1 -0
  217. package/dist/esm/lib/position.d.mts +2 -0
  218. package/dist/esm/lib/position.mjs +4 -0
  219. package/dist/esm/lib/position.mjs.map +1 -0
  220. package/dist/esm/lib/reverse.mjs +2 -5
  221. package/dist/esm/lib/reverse.mjs.map +1 -1
  222. package/dist/esm/lib/shared/_compare.d.mts +20 -0
  223. package/dist/esm/lib/shared/_compare.mjs +30 -0
  224. package/dist/esm/lib/shared/_compare.mjs.map +1 -0
  225. package/dist/esm/lib/shared/comparators.d.mts +34 -0
  226. package/dist/esm/lib/shared/comparators.mjs +21 -0
  227. package/dist/esm/lib/shared/comparators.mjs.map +1 -0
  228. package/dist/esm/lib/skip.d.mts +2 -0
  229. package/dist/esm/lib/skip.mjs +4 -0
  230. package/dist/esm/lib/skip.mjs.map +1 -0
  231. package/dist/esm/lib/skipLast.d.mts +2 -0
  232. package/dist/esm/lib/skipLast.mjs +4 -0
  233. package/dist/esm/lib/skipLast.mjs.map +1 -0
  234. package/dist/esm/lib/skipWhile.d.mts +2 -0
  235. package/dist/esm/lib/skipWhile.mjs +4 -0
  236. package/dist/esm/lib/skipWhile.mjs.map +1 -0
  237. package/dist/esm/lib/stepBy.d.mts +24 -0
  238. package/dist/esm/lib/stepBy.mjs +26 -0
  239. package/dist/esm/lib/stepBy.mjs.map +1 -0
  240. package/dist/esm/lib/takeWhile.d.mts +2 -0
  241. package/dist/esm/lib/takeWhile.mjs +4 -0
  242. package/dist/esm/lib/takeWhile.mjs.map +1 -0
  243. package/dist/iife/index.global.js +391 -49
  244. package/dist/iife/index.global.js.map +1 -1
  245. package/package.json +292 -22
@@ -0,0 +1,2 @@
1
+ export { filter as takeWhile } from './filter.mjs';
2
+ import './from.mjs';
@@ -0,0 +1,4 @@
1
+ import '../chunk-PAWJFY3S.mjs';
2
+ export { filter as takeWhile } from './filter.mjs';
3
+ //# sourceMappingURL=takeWhile.mjs.map
4
+ //# sourceMappingURL=takeWhile.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"takeWhile.mjs","sourcesContent":[]}
@@ -4,6 +4,15 @@ var SapphireIteratorUtilities = (function (exports) {
4
4
  var __defProp = Object.defineProperty;
5
5
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
6
 
7
+ // src/lib/shared/_assertFunction.ts
8
+ function assertFunction(value) {
9
+ if (typeof value !== "function") {
10
+ throw new TypeError(`${value} must be a function`);
11
+ }
12
+ return value;
13
+ }
14
+ __name(assertFunction, "assertFunction");
15
+
7
16
  // src/lib/from.ts
8
17
  function from(value) {
9
18
  if (typeof value === "object" && value !== null) {
@@ -42,6 +51,30 @@ var SapphireIteratorUtilities = (function (exports) {
42
51
  }
43
52
  __name(toIterableIterator, "toIterableIterator");
44
53
 
54
+ // src/lib/every.ts
55
+ function every(iterable, callbackFn) {
56
+ callbackFn = assertFunction(callbackFn);
57
+ let index = 0;
58
+ for (const value of toIterableIterator(iterable)) {
59
+ if (!callbackFn(value, index++)) return false;
60
+ }
61
+ return true;
62
+ }
63
+ __name(every, "every");
64
+
65
+ // src/lib/some.ts
66
+ function some(iterable, callbackFn) {
67
+ callbackFn = assertFunction(callbackFn);
68
+ let index = 0;
69
+ for (const value of toIterableIterator(iterable)) {
70
+ if (callbackFn(value, index++)) {
71
+ return true;
72
+ }
73
+ }
74
+ return false;
75
+ }
76
+ __name(some, "some");
77
+
45
78
  // src/lib/chain.ts
46
79
  function* chain(...iterables) {
47
80
  for (const iterable of iterables) {
@@ -133,15 +166,6 @@ var SapphireIteratorUtilities = (function (exports) {
133
166
  }
134
167
  __name(at, "at");
135
168
 
136
- // src/lib/shared/_assertFunction.ts
137
- function assertFunction(value) {
138
- if (typeof value !== "function") {
139
- throw new TypeError(`${value} must be a function`);
140
- }
141
- return value;
142
- }
143
- __name(assertFunction, "assertFunction");
144
-
145
169
  // src/lib/map.ts
146
170
  function* map(iterable, callbackFn) {
147
171
  callbackFn = assertFunction(callbackFn);
@@ -200,6 +224,21 @@ var SapphireIteratorUtilities = (function (exports) {
200
224
  }
201
225
  __name(chunk, "chunk");
202
226
 
227
+ // src/lib/toArray.ts
228
+ function toArray(iterable) {
229
+ return [...toIterableIterator(iterable)];
230
+ }
231
+ __name(toArray, "toArray");
232
+
233
+ // src/lib/collectInto.ts
234
+ function collectInto(iterable, output) {
235
+ for (const value of toIterableIterator(iterable)) {
236
+ output.push(value);
237
+ }
238
+ return output;
239
+ }
240
+ __name(collectInto, "collectInto");
241
+
203
242
  // src/lib/filter.ts
204
243
  function* filter(iterable, callbackFn) {
205
244
  callbackFn = assertFunction(callbackFn);
@@ -216,6 +255,69 @@ var SapphireIteratorUtilities = (function (exports) {
216
255
  }
217
256
  __name(compact, "compact");
218
257
 
258
+ // src/lib/shared/_compare.ts
259
+ function compareIteratorElements(x, y, comparator) {
260
+ if (typeof x === "undefined") {
261
+ if (typeof y === "undefined") return 0;
262
+ return 1;
263
+ }
264
+ if (typeof y === "undefined") {
265
+ return -1;
266
+ }
267
+ return comparator(x, y);
268
+ }
269
+ __name(compareIteratorElements, "compareIteratorElements");
270
+ function orderingIsLess(ordering) {
271
+ return ordering < 0;
272
+ }
273
+ __name(orderingIsLess, "orderingIsLess");
274
+ function orderingIsEqual(ordering) {
275
+ return ordering === 0;
276
+ }
277
+ __name(orderingIsEqual, "orderingIsEqual");
278
+ function orderingIsGreater(ordering) {
279
+ return ordering > 0;
280
+ }
281
+ __name(orderingIsGreater, "orderingIsGreater");
282
+
283
+ // src/lib/compareBy.ts
284
+ function compareBy(iterable, other, comparator) {
285
+ const iterator1 = from(other);
286
+ for (const x of toIterableIterator(iterable)) {
287
+ const result1 = iterator1.next();
288
+ if (result1.done) return 1;
289
+ const y = result1.value;
290
+ const comparison = compareIteratorElements(x, y, comparator);
291
+ if (!orderingIsEqual(comparison)) {
292
+ return orderingIsLess(comparison) ? -1 : 1;
293
+ }
294
+ }
295
+ return iterator1.next().done ? 0 : -1;
296
+ }
297
+ __name(compareBy, "compareBy");
298
+
299
+ // src/lib/shared/comparators.ts
300
+ function swap(cb) {
301
+ return (x, y) => 0 - cb(x, y);
302
+ }
303
+ __name(swap, "swap");
304
+ function defaultCompare(x, y) {
305
+ return ascNumber(String(x), String(y));
306
+ }
307
+ __name(defaultCompare, "defaultCompare");
308
+ var descString = swap(defaultCompare);
309
+ function ascNumber(x, y) {
310
+ return (x > y) - (x < y);
311
+ }
312
+ __name(ascNumber, "ascNumber");
313
+ var descNumber = swap(ascNumber);
314
+
315
+ // src/lib/compare.ts
316
+ function compare(iterable, other) {
317
+ return compareBy(iterable, other, defaultCompare);
318
+ }
319
+ __name(compare, "compare");
320
+
219
321
  // src/lib/compress.ts
220
322
  function* compress(iterable, selectors) {
221
323
  const resolvedSelectors = from(selectors);
@@ -285,12 +387,6 @@ var SapphireIteratorUtilities = (function (exports) {
285
387
  }
286
388
  __name(take, "take");
287
389
 
288
- // src/lib/toArray.ts
289
- function toArray(iterable) {
290
- return [...toIterableIterator(iterable)];
291
- }
292
- __name(toArray, "toArray");
293
-
294
390
  // src/lib/dropLast.ts
295
391
  function dropLast(iterable, count2) {
296
392
  count2 = assertNotNegative(toIntegerOrInfinityOrThrow(count2), count2);
@@ -321,16 +417,23 @@ var SapphireIteratorUtilities = (function (exports) {
321
417
  }
322
418
  __name(enumerate, "enumerate");
323
419
 
324
- // src/lib/every.ts
325
- function every(iterable, callbackFn) {
420
+ // src/lib/equalBy.ts
421
+ function equalBy(iterable, other, callbackFn) {
326
422
  callbackFn = assertFunction(callbackFn);
327
- let index = 0;
328
- for (const value of toIterableIterator(iterable)) {
329
- if (!callbackFn(value, index++)) return false;
423
+ const iterator1 = from(other);
424
+ for (const value0 of toIterableIterator(iterable)) {
425
+ const result1 = iterator1.next();
426
+ if (result1.done || !callbackFn(value0, result1.value)) return false;
330
427
  }
331
- return true;
428
+ return iterator1.next().done === true;
332
429
  }
333
- __name(every, "every");
430
+ __name(equalBy, "equalBy");
431
+
432
+ // src/lib/equal.ts
433
+ function equal(iterable, other) {
434
+ return equalBy(iterable, other, (a, b) => a === b);
435
+ }
436
+ __name(equal, "equal");
334
437
 
335
438
  // src/lib/find.ts
336
439
  function find(iterable, callbackFn) {
@@ -380,6 +483,37 @@ var SapphireIteratorUtilities = (function (exports) {
380
483
  }
381
484
  __name(forEach, "forEach");
382
485
 
486
+ // src/lib/fuse.ts
487
+ function fuse(iterable) {
488
+ let ended = false;
489
+ const iterator = toIterableIterator(iterable);
490
+ return makeIterableIterator(() => {
491
+ if (ended) {
492
+ return { done: true, value: void 0 };
493
+ }
494
+ const result = iterator.next();
495
+ if (result.done) {
496
+ ended = true;
497
+ }
498
+ return result;
499
+ });
500
+ }
501
+ __name(fuse, "fuse");
502
+
503
+ // src/lib/greaterOrEqualThan.ts
504
+ function greaterOrEqualThan(iterable, other) {
505
+ const result = compare(iterable, other);
506
+ return !orderingIsLess(result);
507
+ }
508
+ __name(greaterOrEqualThan, "greaterOrEqualThan");
509
+
510
+ // src/lib/greaterThan.ts
511
+ function greaterThan(iterable, other) {
512
+ const result = compare(iterable, other);
513
+ return orderingIsGreater(result);
514
+ }
515
+ __name(greaterThan, "greaterThan");
516
+
383
517
  // src/lib/indexOf.ts
384
518
  function indexOf(iterable, value) {
385
519
  let index = 0;
@@ -393,6 +527,21 @@ var SapphireIteratorUtilities = (function (exports) {
393
527
  }
394
528
  __name(indexOf, "indexOf");
395
529
 
530
+ // src/lib/inspect.ts
531
+ function inspect(iterable, callbackFn) {
532
+ callbackFn = assertFunction(callbackFn);
533
+ let index = 0;
534
+ const iterator = from(iterable);
535
+ return makeIterableIterator(() => {
536
+ const result = iterator.next();
537
+ if (!result.done) {
538
+ callbackFn(result.value, index++);
539
+ }
540
+ return result;
541
+ });
542
+ }
543
+ __name(inspect, "inspect");
544
+
396
545
  // src/lib/intersect.ts
397
546
  function intersect(first2, second) {
398
547
  const set = new Set(toIterableIterator(second));
@@ -400,12 +549,78 @@ var SapphireIteratorUtilities = (function (exports) {
400
549
  }
401
550
  __name(intersect, "intersect");
402
551
 
552
+ // src/lib/intersperse.ts
553
+ function intersperse(iterable, separator) {
554
+ let started = false;
555
+ let nextItem;
556
+ let nextItemTaken = false;
557
+ const iterator = from(iterable);
558
+ return makeIterableIterator(() => {
559
+ if (started) {
560
+ if (nextItemTaken) {
561
+ nextItemTaken = false;
562
+ return { done: false, value: nextItem };
563
+ }
564
+ const result = iterator.next();
565
+ if (result.done) {
566
+ return { done: true, value: void 0 };
567
+ }
568
+ nextItem = result.value;
569
+ nextItemTaken = true;
570
+ return { done: false, value: separator };
571
+ }
572
+ started = true;
573
+ return iterator.next();
574
+ });
575
+ }
576
+ __name(intersperse, "intersperse");
577
+
403
578
  // src/lib/isEmpty.ts
404
579
  function isEmpty(iterable) {
405
580
  return from(iterable).next().done ?? false;
406
581
  }
407
582
  __name(isEmpty, "isEmpty");
408
583
 
584
+ // src/lib/isSortedBy.ts
585
+ function isSortedBy(iterable, comparator) {
586
+ comparator = assertFunction(comparator);
587
+ const iterator = toIterableIterator(iterable);
588
+ const result = iterator.next();
589
+ if (result.done) return true;
590
+ let previous = result.value;
591
+ for (const current of iterator) {
592
+ const comparison = compareIteratorElements(previous, current, comparator);
593
+ if (orderingIsGreater(comparison)) return false;
594
+ previous = current;
595
+ }
596
+ return true;
597
+ }
598
+ __name(isSortedBy, "isSortedBy");
599
+
600
+ // src/lib/isSorted.ts
601
+ function isSorted(iterable) {
602
+ return isSortedBy(iterable, defaultCompare);
603
+ }
604
+ __name(isSorted, "isSorted");
605
+
606
+ // src/lib/isSortedByKey.ts
607
+ function isSortedByKey(iterable, callbackFn, comparator = defaultCompare) {
608
+ callbackFn = assertFunction(callbackFn);
609
+ const iterator = toIterableIterator(iterable);
610
+ const result = iterator.next();
611
+ if (result.done) return true;
612
+ let previousKey = callbackFn(result.value, 0);
613
+ let index = 1;
614
+ for (const current of iterator) {
615
+ const currentKey = callbackFn(current, index++);
616
+ const comparison = compareIteratorElements(previousKey, currentKey, comparator);
617
+ if (orderingIsGreater(comparison)) return false;
618
+ previousKey = currentKey;
619
+ }
620
+ return true;
621
+ }
622
+ __name(isSortedByKey, "isSortedByKey");
623
+
409
624
  // src/lib/last.ts
410
625
  function last(iterable) {
411
626
  let last2;
@@ -416,26 +631,114 @@ var SapphireIteratorUtilities = (function (exports) {
416
631
  }
417
632
  __name(last, "last");
418
633
 
634
+ // src/lib/lessOrEqualThan.ts
635
+ function lessOrEqualThan(iterable, other) {
636
+ const result = compare(iterable, other);
637
+ return !orderingIsGreater(result);
638
+ }
639
+ __name(lessOrEqualThan, "lessOrEqualThan");
640
+
641
+ // src/lib/lessThan.ts
642
+ function lessThan(iterable, other) {
643
+ const result = compare(iterable, other);
644
+ return orderingIsLess(result);
645
+ }
646
+ __name(lessThan, "lessThan");
647
+
648
+ // src/lib/maxBy.ts
649
+ function maxBy(iterable, comparator) {
650
+ comparator = assertFunction(comparator);
651
+ const iterator = toIterableIterator(iterable);
652
+ const first2 = iterator.next();
653
+ if (first2.done) return null;
654
+ let maximum = first2.value;
655
+ for (const value of iterator) {
656
+ const comparison = compareIteratorElements(value, maximum, comparator);
657
+ if (!orderingIsLess(comparison)) {
658
+ maximum = value;
659
+ }
660
+ }
661
+ return maximum;
662
+ }
663
+ __name(maxBy, "maxBy");
664
+
419
665
  // src/lib/max.ts
420
666
  function max(iterable) {
421
- let max2 = null;
422
- for (const value of map(iterable, toNumberOrThrow)) {
423
- if (max2 === null || value > max2) max2 = value;
424
- }
425
- return max2;
667
+ return maxBy(iterable, defaultCompare);
426
668
  }
427
669
  __name(max, "max");
428
670
 
671
+ // src/lib/maxByKey.ts
672
+ function maxByKey(iterable, callbackFn, comparator = defaultCompare) {
673
+ callbackFn = assertFunction(callbackFn);
674
+ const iterator = toIterableIterator(iterable);
675
+ const first2 = iterator.next();
676
+ if (first2.done) return null;
677
+ let maximum = first2.value;
678
+ let maximumKey = callbackFn(maximum, 0);
679
+ let index = 1;
680
+ for (const value of iterator) {
681
+ const key = callbackFn(value, index++);
682
+ const comparison = compareIteratorElements(maximumKey, key, comparator);
683
+ if (!orderingIsGreater(comparison)) {
684
+ maximum = value;
685
+ maximumKey = key;
686
+ }
687
+ }
688
+ return maximum;
689
+ }
690
+ __name(maxByKey, "maxByKey");
691
+
692
+ // src/lib/minBy.ts
693
+ function minBy(iterable, comparator) {
694
+ comparator = assertFunction(comparator);
695
+ const iterator = toIterableIterator(iterable);
696
+ const first2 = iterator.next();
697
+ if (first2.done) return null;
698
+ let minimum = first2.value;
699
+ for (const value of iterator) {
700
+ const comparison = compareIteratorElements(value, minimum, comparator);
701
+ if (!orderingIsGreater(comparison)) {
702
+ minimum = value;
703
+ }
704
+ }
705
+ return minimum;
706
+ }
707
+ __name(minBy, "minBy");
708
+
429
709
  // src/lib/min.ts
430
710
  function min(iterable) {
431
- let min2 = null;
432
- for (const value of map(iterable, toNumberOrThrow)) {
433
- if (min2 === null || value < min2) min2 = value;
434
- }
435
- return min2;
711
+ return minBy(iterable, defaultCompare);
436
712
  }
437
713
  __name(min, "min");
438
714
 
715
+ // src/lib/minByKey.ts
716
+ function minByKey(iterable, callbackFn, comparator = defaultCompare) {
717
+ callbackFn = assertFunction(callbackFn);
718
+ const iterator = toIterableIterator(iterable);
719
+ const first2 = iterator.next();
720
+ if (first2.done) return null;
721
+ let minimum = first2.value;
722
+ let minimumKey = callbackFn(minimum, 0);
723
+ let index = 1;
724
+ for (const value of iterator) {
725
+ const key = callbackFn(value, index++);
726
+ const comparison = compareIteratorElements(minimumKey, key, comparator);
727
+ if (!orderingIsLess(comparison)) {
728
+ minimum = value;
729
+ minimumKey = key;
730
+ }
731
+ }
732
+ return minimum;
733
+ }
734
+ __name(minByKey, "minByKey");
735
+
736
+ // src/lib/notEqual.ts
737
+ function notEqual(iterable, other) {
738
+ return !equal(iterable, other);
739
+ }
740
+ __name(notEqual, "notEqual");
741
+
439
742
  // src/lib/partition.ts
440
743
  function partition(iterable, predicate) {
441
744
  predicate = assertFunction(predicate);
@@ -558,10 +861,7 @@ var SapphireIteratorUtilities = (function (exports) {
558
861
 
559
862
  // src/lib/reverse.ts
560
863
  function* reverse(iterable) {
561
- const items = [];
562
- for (const item of toIterableIterator(iterable)) {
563
- items.push(item);
564
- }
864
+ const items = toArray(iterable);
565
865
  for (let i = items.length - 1; i >= 0; i--) {
566
866
  yield items[i];
567
867
  }
@@ -614,19 +914,6 @@ var SapphireIteratorUtilities = (function (exports) {
614
914
  }
615
915
  __name(slice, "slice");
616
916
 
617
- // src/lib/some.ts
618
- function some(iterable, callbackFn) {
619
- callbackFn = assertFunction(callbackFn);
620
- let index = 0;
621
- for (const value of toIterableIterator(iterable)) {
622
- if (callbackFn(value, index++)) {
623
- return true;
624
- }
625
- }
626
- return false;
627
- }
628
- __name(some, "some");
629
-
630
917
  // src/lib/sorted.ts
631
918
  function sorted(iterable, compareFn) {
632
919
  return toArray(iterable).sort(compareFn).values();
@@ -642,6 +929,24 @@ var SapphireIteratorUtilities = (function (exports) {
642
929
  }
643
930
  __name(starMap, "starMap");
644
931
 
932
+ // src/lib/stepBy.ts
933
+ function stepBy(iterable, step) {
934
+ step = assertPositive(toIntegerOrInfinityOrThrow(step), step);
935
+ const iterator = from(iterable);
936
+ return makeIterableIterator(() => {
937
+ const result = iterator.next();
938
+ if (result.done) {
939
+ return { done: true, value: void 0 };
940
+ }
941
+ for (let i = 0; i < step - 1; i++) {
942
+ const result2 = iterator.next();
943
+ if (result2.done) break;
944
+ }
945
+ return { done: false, value: result.value };
946
+ });
947
+ }
948
+ __name(stepBy, "stepBy");
949
+
645
950
  // src/lib/sum.ts
646
951
  function sum(iterable) {
647
952
  let sum2 = 0;
@@ -740,23 +1045,38 @@ var SapphireIteratorUtilities = (function (exports) {
740
1045
  }
741
1046
  __name(zip, "zip");
742
1047
 
1048
+ exports.all = every;
1049
+ exports.any = some;
743
1050
  exports.append = append;
1051
+ exports.ascNumber = ascNumber;
1052
+ exports.ascString = defaultCompare;
744
1053
  exports.at = at;
745
1054
  exports.average = average;
746
1055
  exports.chain = chain;
747
1056
  exports.chunk = chunk;
1057
+ exports.collect = toArray;
1058
+ exports.collectInto = collectInto;
748
1059
  exports.compact = compact;
1060
+ exports.compare = compare;
1061
+ exports.compareBy = compareBy;
749
1062
  exports.compress = compress;
750
1063
  exports.concat = append;
751
1064
  exports.contains = contains;
752
1065
  exports.count = count;
753
1066
  exports.cycle = cycle;
1067
+ exports.defaultCompare = defaultCompare;
1068
+ exports.descNumber = descNumber;
1069
+ exports.descString = descString;
754
1070
  exports.difference = difference;
755
1071
  exports.drop = drop;
756
1072
  exports.dropLast = dropLast;
757
1073
  exports.dropWhile = dropWhile;
758
1074
  exports.empty = empty;
759
1075
  exports.enumerate = enumerate;
1076
+ exports.eq = equal;
1077
+ exports.eqBy = equalBy;
1078
+ exports.equal = equal;
1079
+ exports.equalBy = equalBy;
760
1080
  exports.every = every;
761
1081
  exports.except = difference;
762
1082
  exports.filter = filter;
@@ -767,13 +1087,34 @@ var SapphireIteratorUtilities = (function (exports) {
767
1087
  exports.flatMap = flatMap;
768
1088
  exports.forEach = forEach;
769
1089
  exports.from = from;
1090
+ exports.fuse = fuse;
1091
+ exports.ge = greaterOrEqualThan;
1092
+ exports.greaterOrEqualThan = greaterOrEqualThan;
1093
+ exports.greaterThan = greaterThan;
1094
+ exports.gt = greaterThan;
770
1095
  exports.indexOf = indexOf;
1096
+ exports.inspect = inspect;
771
1097
  exports.intersect = intersect;
1098
+ exports.intersperse = intersperse;
772
1099
  exports.isEmpty = isEmpty;
1100
+ exports.isSorted = isSorted;
1101
+ exports.isSortedBy = isSortedBy;
1102
+ exports.isSortedByKey = isSortedByKey;
773
1103
  exports.last = last;
1104
+ exports.le = lessOrEqualThan;
1105
+ exports.lessOrEqualThan = lessOrEqualThan;
1106
+ exports.lessThan = lessThan;
1107
+ exports.lt = lessThan;
774
1108
  exports.map = map;
775
1109
  exports.max = max;
1110
+ exports.maxBy = maxBy;
1111
+ exports.maxByKey = maxByKey;
776
1112
  exports.min = min;
1113
+ exports.minBy = minBy;
1114
+ exports.minByKey = minByKey;
1115
+ exports.ne = notEqual;
1116
+ exports.notEqual = notEqual;
1117
+ exports.nth = at;
777
1118
  exports.omit = difference;
778
1119
  exports.partition = partition;
779
1120
  exports.peekable = peekable;
@@ -791,6 +1132,7 @@ var SapphireIteratorUtilities = (function (exports) {
791
1132
  exports.some = some;
792
1133
  exports.sorted = sorted;
793
1134
  exports.starMap = starMap;
1135
+ exports.stepBy = stepBy;
794
1136
  exports.sum = sum;
795
1137
  exports.take = take;
796
1138
  exports.takeLast = takeLast;