@sapphire/iterator-utilities 2.1.0-next.61eebdff → 2.1.0-next.644b9cd5

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 (199) hide show
  1. package/dist/cjs/lib/append.cjs.map +1 -1
  2. package/dist/cjs/lib/at.cjs.map +1 -1
  3. package/dist/cjs/lib/average.cjs.map +1 -1
  4. package/dist/cjs/lib/chain.cjs.map +1 -1
  5. package/dist/cjs/lib/chunk.cjs.map +1 -1
  6. package/dist/cjs/lib/collectInto.cjs.map +1 -1
  7. package/dist/cjs/lib/compact.cjs +1 -1
  8. package/dist/cjs/lib/compact.cjs.map +1 -1
  9. package/dist/cjs/lib/compare.cjs.map +1 -1
  10. package/dist/cjs/lib/compareBy.cjs.map +1 -1
  11. package/dist/cjs/lib/compress.cjs.map +1 -1
  12. package/dist/cjs/lib/contains.cjs.map +1 -1
  13. package/dist/cjs/lib/count.cjs.map +1 -1
  14. package/dist/cjs/lib/cycle.cjs.map +1 -1
  15. package/dist/cjs/lib/difference.cjs.map +1 -1
  16. package/dist/cjs/lib/drop.cjs.map +1 -1
  17. package/dist/cjs/lib/dropLast.cjs.map +1 -1
  18. package/dist/cjs/lib/dropWhile.cjs.map +1 -1
  19. package/dist/cjs/lib/empty.cjs +1 -1
  20. package/dist/cjs/lib/empty.cjs.map +1 -1
  21. package/dist/cjs/lib/enumerate.cjs.map +1 -1
  22. package/dist/cjs/lib/equal.cjs.map +1 -1
  23. package/dist/cjs/lib/equalBy.cjs.map +1 -1
  24. package/dist/cjs/lib/every.cjs.map +1 -1
  25. package/dist/cjs/lib/filter.cjs.map +1 -1
  26. package/dist/cjs/lib/find.cjs.map +1 -1
  27. package/dist/cjs/lib/findIndex.cjs.map +1 -1
  28. package/dist/cjs/lib/first.cjs.map +1 -1
  29. package/dist/cjs/lib/flat.cjs.map +1 -1
  30. package/dist/cjs/lib/flatMap.cjs.map +1 -1
  31. package/dist/cjs/lib/forEach.cjs.map +1 -1
  32. package/dist/cjs/lib/from.cjs.map +1 -1
  33. package/dist/cjs/lib/fuse.cjs +1 -1
  34. package/dist/cjs/lib/fuse.cjs.map +1 -1
  35. package/dist/cjs/lib/greaterOrEqualThan.cjs.map +1 -1
  36. package/dist/cjs/lib/greaterThan.cjs.map +1 -1
  37. package/dist/cjs/lib/indexOf.cjs.map +1 -1
  38. package/dist/cjs/lib/inspect.cjs.map +1 -1
  39. package/dist/cjs/lib/intersect.cjs.map +1 -1
  40. package/dist/cjs/lib/intersperse.cjs +1 -1
  41. package/dist/cjs/lib/intersperse.cjs.map +1 -1
  42. package/dist/cjs/lib/isEmpty.cjs.map +1 -1
  43. package/dist/cjs/lib/isSorted.cjs.map +1 -1
  44. package/dist/cjs/lib/isSortedBy.cjs.map +1 -1
  45. package/dist/cjs/lib/isSortedByKey.cjs.map +1 -1
  46. package/dist/cjs/lib/last.cjs.map +1 -1
  47. package/dist/cjs/lib/lessOrEqualThan.cjs.map +1 -1
  48. package/dist/cjs/lib/lessThan.cjs.map +1 -1
  49. package/dist/cjs/lib/map.cjs.map +1 -1
  50. package/dist/cjs/lib/max.cjs.map +1 -1
  51. package/dist/cjs/lib/maxBy.cjs.map +1 -1
  52. package/dist/cjs/lib/maxByKey.cjs.map +1 -1
  53. package/dist/cjs/lib/min.cjs.map +1 -1
  54. package/dist/cjs/lib/minBy.cjs.map +1 -1
  55. package/dist/cjs/lib/minByKey.cjs.map +1 -1
  56. package/dist/cjs/lib/notEqual.cjs.map +1 -1
  57. package/dist/cjs/lib/partition.cjs.map +1 -1
  58. package/dist/cjs/lib/peekable.cjs +1 -1
  59. package/dist/cjs/lib/peekable.cjs.map +1 -1
  60. package/dist/cjs/lib/prepend.cjs.map +1 -1
  61. package/dist/cjs/lib/product.cjs.map +1 -1
  62. package/dist/cjs/lib/range.cjs +1 -1
  63. package/dist/cjs/lib/range.cjs.map +1 -1
  64. package/dist/cjs/lib/reduce.cjs.map +1 -1
  65. package/dist/cjs/lib/repeat.cjs +1 -1
  66. package/dist/cjs/lib/repeat.cjs.map +1 -1
  67. package/dist/cjs/lib/reverse.cjs.map +1 -1
  68. package/dist/cjs/lib/shared/_assertFunction.cjs.map +1 -1
  69. package/dist/cjs/lib/shared/_assertNotNegative.cjs.map +1 -1
  70. package/dist/cjs/lib/shared/_assertPositive.cjs.map +1 -1
  71. package/dist/cjs/lib/shared/_compare.cjs.map +1 -1
  72. package/dist/cjs/lib/shared/_makeIterableIterator.cjs.map +1 -1
  73. package/dist/cjs/lib/shared/_toIntegerOrInfinityOrThrow.cjs.map +1 -1
  74. package/dist/cjs/lib/shared/_toIntegerOrThrow.cjs.map +1 -1
  75. package/dist/cjs/lib/shared/_toNumberOrThrow.cjs.map +1 -1
  76. package/dist/cjs/lib/shared/comparators.cjs.map +1 -1
  77. package/dist/cjs/lib/slice.cjs +1 -1
  78. package/dist/cjs/lib/slice.cjs.map +1 -1
  79. package/dist/cjs/lib/some.cjs.map +1 -1
  80. package/dist/cjs/lib/sorted.cjs.map +1 -1
  81. package/dist/cjs/lib/starMap.cjs.map +1 -1
  82. package/dist/cjs/lib/stepBy.cjs +1 -1
  83. package/dist/cjs/lib/stepBy.cjs.map +1 -1
  84. package/dist/cjs/lib/sum.cjs.map +1 -1
  85. package/dist/cjs/lib/take.cjs +1 -1
  86. package/dist/cjs/lib/take.cjs.map +1 -1
  87. package/dist/cjs/lib/takeLast.cjs +1 -1
  88. package/dist/cjs/lib/takeLast.cjs.map +1 -1
  89. package/dist/cjs/lib/tee.cjs +1 -1
  90. package/dist/cjs/lib/tee.cjs.map +1 -1
  91. package/dist/cjs/lib/toArray.cjs.map +1 -1
  92. package/dist/cjs/lib/toIterableIterator.cjs.map +1 -1
  93. package/dist/cjs/lib/union.cjs.map +1 -1
  94. package/dist/cjs/lib/unique.cjs.map +1 -1
  95. package/dist/cjs/lib/unzip.cjs.map +1 -1
  96. package/dist/cjs/lib/windows.cjs +1 -1
  97. package/dist/cjs/lib/windows.cjs.map +1 -1
  98. package/dist/cjs/lib/zip.cjs.map +1 -1
  99. package/dist/esm/lib/append.mjs.map +1 -1
  100. package/dist/esm/lib/at.mjs.map +1 -1
  101. package/dist/esm/lib/average.mjs.map +1 -1
  102. package/dist/esm/lib/chain.mjs.map +1 -1
  103. package/dist/esm/lib/chunk.mjs.map +1 -1
  104. package/dist/esm/lib/collectInto.mjs.map +1 -1
  105. package/dist/esm/lib/compact.mjs +1 -1
  106. package/dist/esm/lib/compact.mjs.map +1 -1
  107. package/dist/esm/lib/compare.mjs.map +1 -1
  108. package/dist/esm/lib/compareBy.mjs.map +1 -1
  109. package/dist/esm/lib/compress.mjs.map +1 -1
  110. package/dist/esm/lib/contains.mjs.map +1 -1
  111. package/dist/esm/lib/count.mjs.map +1 -1
  112. package/dist/esm/lib/cycle.mjs.map +1 -1
  113. package/dist/esm/lib/difference.mjs.map +1 -1
  114. package/dist/esm/lib/drop.mjs.map +1 -1
  115. package/dist/esm/lib/dropLast.mjs.map +1 -1
  116. package/dist/esm/lib/dropWhile.mjs.map +1 -1
  117. package/dist/esm/lib/empty.mjs +1 -1
  118. package/dist/esm/lib/empty.mjs.map +1 -1
  119. package/dist/esm/lib/enumerate.mjs.map +1 -1
  120. package/dist/esm/lib/equal.mjs.map +1 -1
  121. package/dist/esm/lib/equalBy.mjs.map +1 -1
  122. package/dist/esm/lib/every.mjs.map +1 -1
  123. package/dist/esm/lib/filter.mjs.map +1 -1
  124. package/dist/esm/lib/find.mjs.map +1 -1
  125. package/dist/esm/lib/findIndex.mjs.map +1 -1
  126. package/dist/esm/lib/first.mjs.map +1 -1
  127. package/dist/esm/lib/flat.mjs.map +1 -1
  128. package/dist/esm/lib/flatMap.mjs.map +1 -1
  129. package/dist/esm/lib/forEach.mjs.map +1 -1
  130. package/dist/esm/lib/from.mjs.map +1 -1
  131. package/dist/esm/lib/fuse.mjs +1 -1
  132. package/dist/esm/lib/fuse.mjs.map +1 -1
  133. package/dist/esm/lib/greaterOrEqualThan.mjs.map +1 -1
  134. package/dist/esm/lib/greaterThan.mjs.map +1 -1
  135. package/dist/esm/lib/indexOf.mjs.map +1 -1
  136. package/dist/esm/lib/inspect.mjs.map +1 -1
  137. package/dist/esm/lib/intersect.mjs.map +1 -1
  138. package/dist/esm/lib/intersperse.mjs +1 -1
  139. package/dist/esm/lib/intersperse.mjs.map +1 -1
  140. package/dist/esm/lib/isEmpty.mjs.map +1 -1
  141. package/dist/esm/lib/isSorted.mjs.map +1 -1
  142. package/dist/esm/lib/isSortedBy.mjs.map +1 -1
  143. package/dist/esm/lib/isSortedByKey.mjs.map +1 -1
  144. package/dist/esm/lib/last.mjs.map +1 -1
  145. package/dist/esm/lib/lessOrEqualThan.mjs.map +1 -1
  146. package/dist/esm/lib/lessThan.mjs.map +1 -1
  147. package/dist/esm/lib/map.mjs.map +1 -1
  148. package/dist/esm/lib/max.mjs.map +1 -1
  149. package/dist/esm/lib/maxBy.mjs.map +1 -1
  150. package/dist/esm/lib/maxByKey.mjs.map +1 -1
  151. package/dist/esm/lib/min.mjs.map +1 -1
  152. package/dist/esm/lib/minBy.mjs.map +1 -1
  153. package/dist/esm/lib/minByKey.mjs.map +1 -1
  154. package/dist/esm/lib/notEqual.mjs.map +1 -1
  155. package/dist/esm/lib/partition.mjs.map +1 -1
  156. package/dist/esm/lib/peekable.mjs +1 -1
  157. package/dist/esm/lib/peekable.mjs.map +1 -1
  158. package/dist/esm/lib/prepend.mjs.map +1 -1
  159. package/dist/esm/lib/product.mjs.map +1 -1
  160. package/dist/esm/lib/range.mjs +1 -1
  161. package/dist/esm/lib/range.mjs.map +1 -1
  162. package/dist/esm/lib/reduce.mjs.map +1 -1
  163. package/dist/esm/lib/repeat.mjs +1 -1
  164. package/dist/esm/lib/repeat.mjs.map +1 -1
  165. package/dist/esm/lib/reverse.mjs.map +1 -1
  166. package/dist/esm/lib/shared/_assertFunction.mjs.map +1 -1
  167. package/dist/esm/lib/shared/_assertNotNegative.mjs.map +1 -1
  168. package/dist/esm/lib/shared/_assertPositive.mjs.map +1 -1
  169. package/dist/esm/lib/shared/_compare.mjs.map +1 -1
  170. package/dist/esm/lib/shared/_makeIterableIterator.mjs.map +1 -1
  171. package/dist/esm/lib/shared/_toIntegerOrInfinityOrThrow.mjs.map +1 -1
  172. package/dist/esm/lib/shared/_toIntegerOrThrow.mjs.map +1 -1
  173. package/dist/esm/lib/shared/_toNumberOrThrow.mjs.map +1 -1
  174. package/dist/esm/lib/shared/comparators.mjs.map +1 -1
  175. package/dist/esm/lib/slice.mjs +1 -1
  176. package/dist/esm/lib/slice.mjs.map +1 -1
  177. package/dist/esm/lib/some.mjs.map +1 -1
  178. package/dist/esm/lib/sorted.mjs.map +1 -1
  179. package/dist/esm/lib/starMap.mjs.map +1 -1
  180. package/dist/esm/lib/stepBy.mjs +1 -1
  181. package/dist/esm/lib/stepBy.mjs.map +1 -1
  182. package/dist/esm/lib/sum.mjs.map +1 -1
  183. package/dist/esm/lib/take.mjs +1 -1
  184. package/dist/esm/lib/take.mjs.map +1 -1
  185. package/dist/esm/lib/takeLast.mjs +1 -1
  186. package/dist/esm/lib/takeLast.mjs.map +1 -1
  187. package/dist/esm/lib/tee.mjs +1 -1
  188. package/dist/esm/lib/tee.mjs.map +1 -1
  189. package/dist/esm/lib/toArray.mjs.map +1 -1
  190. package/dist/esm/lib/toIterableIterator.mjs.map +1 -1
  191. package/dist/esm/lib/union.mjs.map +1 -1
  192. package/dist/esm/lib/unique.mjs.map +1 -1
  193. package/dist/esm/lib/unzip.mjs.map +1 -1
  194. package/dist/esm/lib/windows.mjs +1 -1
  195. package/dist/esm/lib/windows.mjs.map +1 -1
  196. package/dist/esm/lib/zip.mjs.map +1 -1
  197. package/dist/iife/index.global.js +13 -13
  198. package/dist/iife/index.global.js.map +1 -1
  199. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/shared/_toIntegerOrThrow.ts"],"names":[],"mappings":";;;AAEO,SAAS,iBAAiB,KAAuB,EAAA;AACvD,EAAM,MAAA,MAAA,GAAS,gBAAgB,KAAK,CAAA;AACpC,EAAA,IAAI,OAAO,KAAM,CAAA,MAAM,CAAK,IAAA,MAAA,KAAW,GAAU,OAAA,CAAA;AACjD,EAAA,IAAI,WAAW,MAAO,CAAA,iBAAA,EAAyB,MAAA,IAAI,WAAW,+CAA+C,CAAA;AAC7G,EAAA,IAAI,WAAW,MAAO,CAAA,iBAAA,EAAyB,MAAA,IAAI,WAAW,+CAA+C,CAAA;AAE7G,EAAO,OAAA,IAAA,CAAK,MAAM,MAAM,CAAA;AACzB;AAPgB,MAAA,CAAA,gBAAA,EAAA,kBAAA,CAAA","file":"_toIntegerOrThrow.mjs","sourcesContent":["import { toNumberOrThrow } from './_toNumberOrThrow';\n\nexport function toIntegerOrThrow(value: number): number {\n\tconst number = toNumberOrThrow(value);\n\tif (Number.isNaN(number) || number === 0) return 0;\n\tif (number === Number.POSITIVE_INFINITY) throw new RangeError('+Infinity cannot be represented as an integer');\n\tif (number === Number.NEGATIVE_INFINITY) throw new RangeError('-Infinity cannot be represented as an integer');\n\n\treturn Math.trunc(number);\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/lib/shared/_toIntegerOrThrow.ts"],"names":[],"mappings":";;;AAEO,SAAS,iBAAiB,KAAA,EAAuB;AACvD,EAAA,MAAM,MAAA,GAAS,gBAAgB,KAAK,CAAA;AACpC,EAAA,IAAI,OAAO,KAAA,CAAM,MAAM,CAAA,IAAK,MAAA,KAAW,GAAG,OAAO,CAAA;AACjD,EAAA,IAAI,WAAW,MAAA,CAAO,iBAAA,EAAmB,MAAM,IAAI,WAAW,+CAA+C,CAAA;AAC7G,EAAA,IAAI,WAAW,MAAA,CAAO,iBAAA,EAAmB,MAAM,IAAI,WAAW,+CAA+C,CAAA;AAE7G,EAAA,OAAO,IAAA,CAAK,MAAM,MAAM,CAAA;AACzB;AAPgB,MAAA,CAAA,gBAAA,EAAA,kBAAA,CAAA","file":"_toIntegerOrThrow.mjs","sourcesContent":["import { toNumberOrThrow } from './_toNumberOrThrow';\n\nexport function toIntegerOrThrow(value: number): number {\n\tconst number = toNumberOrThrow(value);\n\tif (Number.isNaN(number) || number === 0) return 0;\n\tif (number === Number.POSITIVE_INFINITY) throw new RangeError('+Infinity cannot be represented as an integer');\n\tif (number === Number.NEGATIVE_INFINITY) throw new RangeError('-Infinity cannot be represented as an integer');\n\n\treturn Math.trunc(number);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/shared/_toNumberOrThrow.ts"],"names":[],"mappings":";;;AAAO,SAAS,gBAAgB,KAAiC,EAAA;AAChE,EAAA,QAAQ,OAAO,KAAO;AAAA,IACrB,KAAK,QAAA;AACJ,MAAM,MAAA,IAAI,UAAU,2CAA2C,CAAA;AAAA,IAChE,KAAK,QAAA;AACJ,MAAM,MAAA,IAAI,UAAU,2CAA2C,CAAA;AAAA,IAChE,KAAK,SAAA;AACJ,MAAA,OAAO,QAAQ,CAAI,GAAA,CAAA;AAAA,IACpB,KAAK,QAAA;AACJ,MAAO,OAAA,YAAA,CAAa,OAAO,KAAK,CAAA;AAAA,IACjC,KAAK,WAAA;AACJ,MAAM,MAAA,IAAI,UAAU,+CAA+C,CAAA;AAAA,IACpE;AACC,MAAA,OAAO,YAAa,CAAA,MAAA,CAAO,KAAK,CAAA,EAAG,KAAK,CAAA;AAAA;AAE3C;AAfgB,MAAA,CAAA,eAAA,EAAA,iBAAA,CAAA;AAmBhB,SAAS,YAAA,CAAa,OAAe,QAA2B,EAAA;AAC/D,EAAI,IAAA,MAAA,CAAO,KAAM,CAAA,KAAK,CAAG,EAAA;AACxB,IAAA,MAAM,IAAI,UAAA,CAAW,CAAG,EAAA,QAAQ,CAA2B,yBAAA,CAAA,CAAA;AAAA;AAG5D,EAAO,OAAA,KAAA;AACR;AANS,MAAA,CAAA,YAAA,EAAA,cAAA,CAAA","file":"_toNumberOrThrow.mjs","sourcesContent":["export function toNumberOrThrow(value: NumberResolvable): number {\n\tswitch (typeof value) {\n\t\tcase 'bigint':\n\t\t\tthrow new TypeError('Cannot convert a BigInt value to a number');\n\t\tcase 'symbol':\n\t\t\tthrow new TypeError('Cannot convert a Symbol value to a number');\n\t\tcase 'boolean':\n\t\t\treturn value ? 1 : 0;\n\t\tcase 'number':\n\t\t\treturn assertNumber(value, value);\n\t\tcase 'undefined':\n\t\t\tthrow new TypeError('Cannot convert an undefined value to a number');\n\t\tdefault:\n\t\t\treturn assertNumber(Number(value), value);\n\t}\n}\n\nexport type NumberResolvable = number | boolean | null | { valueOf(): number | boolean | null } | { [Symbol.toPrimitive](): number | boolean | null };\n\nfunction assertNumber(value: number, original: unknown): number {\n\tif (Number.isNaN(value)) {\n\t\tthrow new RangeError(`${original} must be a non-NaN number`);\n\t}\n\n\treturn value;\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/lib/shared/_toNumberOrThrow.ts"],"names":[],"mappings":";;;AAAO,SAAS,gBAAgB,KAAA,EAAiC;AAChE,EAAA,QAAQ,OAAO,KAAA;AAAO,IACrB,KAAK,QAAA;AACJ,MAAA,MAAM,IAAI,UAAU,2CAA2C,CAAA;AAAA,IAChE,KAAK,QAAA;AACJ,MAAA,MAAM,IAAI,UAAU,2CAA2C,CAAA;AAAA,IAChE,KAAK,SAAA;AACJ,MAAA,OAAO,QAAQ,CAAA,GAAI,CAAA;AAAA,IACpB,KAAK,QAAA;AACJ,MAAA,OAAO,YAAA,CAAa,OAAO,KAAK,CAAA;AAAA,IACjC,KAAK,WAAA;AACJ,MAAA,MAAM,IAAI,UAAU,+CAA+C,CAAA;AAAA,IACpE;AACC,MAAA,OAAO,YAAA,CAAa,MAAA,CAAO,KAAK,CAAA,EAAG,KAAK,CAAA;AAAA;AAE3C;AAfgB,MAAA,CAAA,eAAA,EAAA,iBAAA,CAAA;AAmBhB,SAAS,YAAA,CAAa,OAAe,QAAA,EAA2B;AAC/D,EAAA,IAAI,MAAA,CAAO,KAAA,CAAM,KAAK,CAAA,EAAG;AACxB,IAAA,MAAM,IAAI,UAAA,CAAW,CAAA,EAAG,QAAQ,CAAA,yBAAA,CAA2B,CAAA;AAAA,EAC5D;AAEA,EAAA,OAAO,KAAA;AACR;AANS,MAAA,CAAA,YAAA,EAAA,cAAA,CAAA","file":"_toNumberOrThrow.mjs","sourcesContent":["export function toNumberOrThrow(value: NumberResolvable): number {\n\tswitch (typeof value) {\n\t\tcase 'bigint':\n\t\t\tthrow new TypeError('Cannot convert a BigInt value to a number');\n\t\tcase 'symbol':\n\t\t\tthrow new TypeError('Cannot convert a Symbol value to a number');\n\t\tcase 'boolean':\n\t\t\treturn value ? 1 : 0;\n\t\tcase 'number':\n\t\t\treturn assertNumber(value, value);\n\t\tcase 'undefined':\n\t\t\tthrow new TypeError('Cannot convert an undefined value to a number');\n\t\tdefault:\n\t\t\treturn assertNumber(Number(value), value);\n\t}\n}\n\nexport type NumberResolvable = number | boolean | null | { valueOf(): number | boolean | null } | { [Symbol.toPrimitive](): number | boolean | null };\n\nfunction assertNumber(value: number, original: unknown): number {\n\tif (Number.isNaN(value)) {\n\t\tthrow new RangeError(`${original} must be a non-NaN number`);\n\t}\n\n\treturn value;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/shared/comparators.ts"],"names":[],"mappings":";;;AAEA,SAAS,KAAwB,EAAwE,EAAA;AACxG,EAAA,OAAO,CAAC,CAAG,EAAA,CAAA,KAAO,CAAI,GAAA,EAAA,CAAG,GAAG,CAAC,CAAA;AAC9B;AAFS,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAgBF,SAAS,cAAA,CAAkC,GAAgB,CAAyC,EAAA;AAI1G,EAAA,OAAO,UAAU,MAAO,CAAA,CAAC,CAAG,EAAA,MAAA,CAAO,CAAC,CAAC,CAAA;AACtC;AALgB,MAAA,CAAA,cAAA,EAAA,gBAAA,CAAA;AAQH,IAAA,UAAA,GAAa,KAAK,cAAc;AAetC,SAAS,SAAA,CAAU,GAA6B,CAAsD,EAAA;AAE5G,EAAS,OAAA,CAAA,CAAA,GAAI,MAAM,CAAI,GAAA,CAAA,CAAA;AACxB;AAHgB,MAAA,CAAA,SAAA,EAAA,WAAA,CAAA;AAIH,IAAA,UAAA,GAAa,KAAK,SAAS","file":"comparators.mjs","sourcesContent":["import type { CompareByComparator, LexicographicComparison } from './_compare';\n\nfunction swap<const ElementType>(cb: CompareByComparator<ElementType>): CompareByComparator<ElementType> {\n\treturn (x, y) => (0 - cb(x, y)) as LexicographicComparison;\n}\n\n/**\n * Compares two elements lexicographically using the default comparison algorithm.\n * @seealso 23.1.3.30.2 CompareArrayElements ({@link https://tc39.es/ecma262/#sec-comparearrayelements})\n *\n * @param x The first element to compare.\n * @param y The second element to compare.\n * @returns The lexicographic comparison of the two elements.\n *\n * @remarks\n *\n * This function is used as the comparison algorithm for {@link compareBy}.\n */\nexport function defaultCompare<const ElementType>(x: ElementType, y: ElementType): LexicographicComparison {\n\t// 5. Let xString be ? ToString(x).\n\t// 6. Let yString be ? ToString(y).\n\t// Steps 7-11 are optimized away by the usage of `ascNumber`.\n\treturn ascNumber(String(x), String(y));\n}\n\nexport { defaultCompare as ascString };\nexport const descString = swap(defaultCompare);\n\n/**\n * Compares two elements using the default comparison algorithm.\n *\n * @param x The first element to compare.\n * @param y The second element to compare.\n * @returns The numeric comparison of the two elements.\n *\n * @privateRemarks\n *\n * The implementation of this function is based on the optimized version of the\n * starship operator in Rust. The subtraction is intentional and is used to\n * determine the ordering of the two elements.\n */\nexport function ascNumber(x: number | bigint | string, y: number | bigint | string): LexicographicComparison {\n\t// @ts-expect-error: The subtraction is intentional\n\treturn ((x > y) - (x < y)) as LexicographicComparison;\n}\nexport const descNumber = swap(ascNumber);\n"]}
1
+ {"version":3,"sources":["../../../../src/lib/shared/comparators.ts"],"names":[],"mappings":";;;AAEA,SAAS,KAAwB,EAAA,EAAwE;AACxG,EAAA,OAAO,CAAC,CAAA,EAAG,CAAA,KAAO,CAAA,GAAI,EAAA,CAAG,GAAG,CAAC,CAAA;AAC9B;AAFS,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAgBF,SAAS,cAAA,CAAkC,GAAgB,CAAA,EAAyC;AAI1G,EAAA,OAAO,UAAU,MAAA,CAAO,CAAC,CAAA,EAAG,MAAA,CAAO,CAAC,CAAC,CAAA;AACtC;AALgB,MAAA,CAAA,cAAA,EAAA,gBAAA,CAAA;AAQT,IAAM,UAAA,GAAa,KAAK,cAAc;AAetC,SAAS,SAAA,CAAU,GAA6B,CAAA,EAAsD;AAE5G,EAAA,OAAA,CAAS,CAAA,GAAI,MAAM,CAAA,GAAI,CAAA,CAAA;AACxB;AAHgB,MAAA,CAAA,SAAA,EAAA,WAAA,CAAA;AAIT,IAAM,UAAA,GAAa,KAAK,SAAS","file":"comparators.mjs","sourcesContent":["import type { CompareByComparator, LexicographicComparison } from './_compare';\n\nfunction swap<const ElementType>(cb: CompareByComparator<ElementType>): CompareByComparator<ElementType> {\n\treturn (x, y) => (0 - cb(x, y)) as LexicographicComparison;\n}\n\n/**\n * Compares two elements lexicographically using the default comparison algorithm.\n * @seealso 23.1.3.30.2 CompareArrayElements ({@link https://tc39.es/ecma262/#sec-comparearrayelements})\n *\n * @param x The first element to compare.\n * @param y The second element to compare.\n * @returns The lexicographic comparison of the two elements.\n *\n * @remarks\n *\n * This function is used as the comparison algorithm for {@link compareBy}.\n */\nexport function defaultCompare<const ElementType>(x: ElementType, y: ElementType): LexicographicComparison {\n\t// 5. Let xString be ? ToString(x).\n\t// 6. Let yString be ? ToString(y).\n\t// Steps 7-11 are optimized away by the usage of `ascNumber`.\n\treturn ascNumber(String(x), String(y));\n}\n\nexport { defaultCompare as ascString };\nexport const descString = swap(defaultCompare);\n\n/**\n * Compares two elements using the default comparison algorithm.\n *\n * @param x The first element to compare.\n * @param y The second element to compare.\n * @returns The numeric comparison of the two elements.\n *\n * @privateRemarks\n *\n * The implementation of this function is based on the optimized version of the\n * starship operator in Rust. The subtraction is intentional and is used to\n * determine the ordering of the two elements.\n */\nexport function ascNumber(x: number | bigint | string, y: number | bigint | string): LexicographicComparison {\n\t// @ts-expect-error: The subtraction is intentional\n\treturn ((x > y) - (x < y)) as LexicographicComparison;\n}\nexport const descNumber = swap(ascNumber);\n"]}
@@ -11,7 +11,7 @@ function slice(iterable, start, end) {
11
11
  if (start === Number.NEGATIVE_INFINITY) {
12
12
  start = 0;
13
13
  }
14
- if (end === undefined) {
14
+ if (end === void 0) {
15
15
  return start >= 0 ? drop(iterable, start) : takeLast(iterable, -start);
16
16
  }
17
17
  end = toIntegerOrInfinityOrThrow(end);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/slice.ts"],"names":[],"mappings":";;;;;;;;AAiEO,SAAS,KAAA,CAAyB,QAA2C,EAAA,KAAA,EAAgB,GAA6C,EAAA;AAEhJ,EAAQ,KAAA,GAAA,0BAAA,CAA2B,SAAS,CAAC,CAAA;AAC7C,EAAI,IAAA,KAAA,KAAU,OAAO,iBAAmB,EAAA;AACvC,IAAQ,KAAA,GAAA,CAAA;AAAA;AAKT,EAAA,IAAI,QAAQ,SAAW,EAAA;AACtB,IAAO,OAAA,KAAA,IAAS,IACb,IAAK,CAAA,QAAA,EAAU,KAAK,CACpB,GAAA,QAAA,CAAS,QAAU,EAAA,CAAC,KAAK,CAAA;AAAA;AAG7B,EAAA,GAAA,GAAM,2BAA2B,GAAG,CAAA;AAEpC,EAAA,IAAI,MAAM,CAAG,EAAA;AAGZ,IAAI,IAAA,GAAA,KAAQ,OAAO,iBAAmB,EAAA;AACrC,MAAA,OAAO,KAAM,EAAA;AAAA;AAId,IAAA,IAAI,UAAU,CAAG,EAAA;AAChB,MAAO,OAAA,QAAA,CAAS,QAAU,EAAA,CAAC,GAAG,CAAA;AAAA;AAK/B,IAAA,IAAI,SAAS,CAAG,EAAA;AACf,MAAA,OAAO,SAAS,IAAK,CAAA,QAAA,EAAU,KAAK,CAAA,EAAG,CAAC,GAAG,CAAA;AAAA;AAK5C,IAAA,IAAI,SAAS,GAAK,EAAA;AACjB,MAAA,OAAO,KAAM,EAAA;AAAA;AAKd,IAAA,OAAO,KAAK,QAAS,CAAA,QAAA,EAAU,CAAC,KAAK,CAAA,EAAG,MAAM,KAAK,CAAA;AAAA;AAIpD,EAAI,IAAA,KAAA,IAAS,GAAK,EAAA,OAAO,KAAM,EAAA;AAG/B,EAAA,OAAO,GAAQ,KAAA,MAAA,CAAO,iBACnB,GAAA,IAAA,CAAK,QAAU,EAAA,KAAK,CACpB,GAAA,IAAA,CAAK,IAAK,CAAA,QAAA,EAAU,KAAK,CAAA,EAAG,MAAM,KAAK,CAAA;AAC3C;AArDgB,MAAA,CAAA,KAAA,EAAA,OAAA,CAAA","file":"slice.mjs","sourcesContent":["import { drop } from './drop';\nimport { dropLast } from './dropLast';\nimport { empty } from './empty';\nimport type { IterableResolvable } from './from';\nimport { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow';\nimport { take } from './take';\nimport { takeLast } from './takeLast';\n\n/**\n * Produces an iterable with the elements from the `start` index to the `end` index (exclusive).\n *\n * @param iterable The iterator to slice.\n * @param start The index at which to begin extraction.\n * @param end The index at which to end extraction.\n * @returns An iterator that contains the elements of the provided iterator from `start` to `end`.\n *\n * @example\n * ```typescript\n * import { slice } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...slice(, 1, 3)]);\n * // Output: [2, 3]\n * ```\n *\n * @example\n * ```typescript\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...slice(iterable, -2)]);\n * // Output: [4, 5]\n * ```\n *\n * @example\n * ```typescript\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...slice(iterable, 2)]);\n * // Output: [3, 4, 5]\n * ```\n *\n * @example\n * ```typescript\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...slice(iterable, 2, -1)]);\n * // Output: [3, 4]\n * ```\n *\n * @example\n * ```typescript\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...slice(iterable, -2, -1)]);\n * // Output: [4]\n * ```\n *\n * @example\n * ```typescript\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...slice(iterable, 2, 1)]);\n * // Output: []\n * ```\n *\n * @remarks\n *\n * This function consumes the input iterator based on the `start` and `end` values, therefore, you should not use the\n * original iterator after calling this function.\n */\nexport function slice<const ElementType>(iterable: IterableResolvable<ElementType>, start?: number, end?: number): IterableIterator<ElementType> {\n\t// https://tc39.es/ecma262/#sec-array.prototype.slice\n\tstart = toIntegerOrInfinityOrThrow(start ?? 0);\n\tif (start === Number.NEGATIVE_INFINITY) {\n\t\tstart = 0;\n\t}\n\n\t// 1. If end is not provided, `slice` behaves like `drop` or `takeLast`,\n\t// depending on the sign of `start`:\n\tif (end === undefined) {\n\t\treturn start >= 0 //\n\t\t\t? drop(iterable, start)\n\t\t\t: takeLast(iterable, -start);\n\t}\n\n\tend = toIntegerOrInfinityOrThrow(end);\n\t// 2. If end is negative:\n\tif (end < 0) {\n\t\t// 2.1. If `end` is `-Infinity`, end would be `0`, which will always\n\t\t// result on an empty iterator:\n\t\tif (end === Number.NEGATIVE_INFINITY) {\n\t\t\treturn empty();\n\t\t}\n\n\t\t// 2.2. If start is positive, drop the last n elements:\n\t\tif (start === 0) {\n\t\t\treturn dropLast(iterable, -end);\n\t\t}\n\n\t\t// 2.3. If the start is positive, drop the first n elements and take the\n\t\t// last m elements:\n\t\tif (start >= 0) {\n\t\t\treturn dropLast(drop(iterable, start), -end);\n\t\t}\n\n\t\t// 2.4. If the start is the same or greater than the end, return an\n\t\t// empty iterator:\n\t\tif (start >= end) {\n\t\t\treturn empty();\n\t\t}\n\n\t\t// 2.5. `start` and `end` are negative, take the elements between the\n\t\t// start and end:\n\t\treturn take(takeLast(iterable, -start), end - start);\n\t}\n\n\t// 3.0. If `start` is greater than or equal to `end`, return an empty iterator:\n\tif (start >= end) return empty();\n\n\t// 4.0. Otherwise, take the elements between `start` and `end`:\n\treturn end === Number.POSITIVE_INFINITY //\n\t\t? drop(iterable, start)\n\t\t: take(drop(iterable, start), end - start);\n}\n"]}
1
+ {"version":3,"sources":["../../../src/lib/slice.ts"],"names":[],"mappings":";;;;;;;;AAiEO,SAAS,KAAA,CAAyB,QAAA,EAA2C,KAAA,EAAgB,GAAA,EAA6C;AAEhJ,EAAA,KAAA,GAAQ,0BAAA,CAA2B,SAAS,CAAC,CAAA;AAC7C,EAAA,IAAI,KAAA,KAAU,OAAO,iBAAA,EAAmB;AACvC,IAAA,KAAA,GAAQ,CAAA;AAAA,EACT;AAIA,EAAA,IAAI,QAAQ,MAAA,EAAW;AACtB,IAAA,OAAO,KAAA,IAAS,IACb,IAAA,CAAK,QAAA,EAAU,KAAK,CAAA,GACpB,QAAA,CAAS,QAAA,EAAU,CAAC,KAAK,CAAA;AAAA,EAC7B;AAEA,EAAA,GAAA,GAAM,2BAA2B,GAAG,CAAA;AAEpC,EAAA,IAAI,MAAM,CAAA,EAAG;AAGZ,IAAA,IAAI,GAAA,KAAQ,OAAO,iBAAA,EAAmB;AACrC,MAAA,OAAO,KAAA,EAAM;AAAA,IACd;AAGA,IAAA,IAAI,UAAU,CAAA,EAAG;AAChB,MAAA,OAAO,QAAA,CAAS,QAAA,EAAU,CAAC,GAAG,CAAA;AAAA,IAC/B;AAIA,IAAA,IAAI,SAAS,CAAA,EAAG;AACf,MAAA,OAAO,SAAS,IAAA,CAAK,QAAA,EAAU,KAAK,CAAA,EAAG,CAAC,GAAG,CAAA;AAAA,IAC5C;AAIA,IAAA,IAAI,SAAS,GAAA,EAAK;AACjB,MAAA,OAAO,KAAA,EAAM;AAAA,IACd;AAIA,IAAA,OAAO,KAAK,QAAA,CAAS,QAAA,EAAU,CAAC,KAAK,CAAA,EAAG,MAAM,KAAK,CAAA;AAAA,EACpD;AAGA,EAAA,IAAI,KAAA,IAAS,GAAA,EAAK,OAAO,KAAA,EAAM;AAG/B,EAAA,OAAO,GAAA,KAAQ,MAAA,CAAO,iBAAA,GACnB,IAAA,CAAK,QAAA,EAAU,KAAK,CAAA,GACpB,IAAA,CAAK,IAAA,CAAK,QAAA,EAAU,KAAK,CAAA,EAAG,MAAM,KAAK,CAAA;AAC3C;AArDgB,MAAA,CAAA,KAAA,EAAA,OAAA,CAAA","file":"slice.mjs","sourcesContent":["import { drop } from './drop';\nimport { dropLast } from './dropLast';\nimport { empty } from './empty';\nimport type { IterableResolvable } from './from';\nimport { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow';\nimport { take } from './take';\nimport { takeLast } from './takeLast';\n\n/**\n * Produces an iterable with the elements from the `start` index to the `end` index (exclusive).\n *\n * @param iterable The iterator to slice.\n * @param start The index at which to begin extraction.\n * @param end The index at which to end extraction.\n * @returns An iterator that contains the elements of the provided iterator from `start` to `end`.\n *\n * @example\n * ```typescript\n * import { slice } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...slice(, 1, 3)]);\n * // Output: [2, 3]\n * ```\n *\n * @example\n * ```typescript\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...slice(iterable, -2)]);\n * // Output: [4, 5]\n * ```\n *\n * @example\n * ```typescript\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...slice(iterable, 2)]);\n * // Output: [3, 4, 5]\n * ```\n *\n * @example\n * ```typescript\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...slice(iterable, 2, -1)]);\n * // Output: [3, 4]\n * ```\n *\n * @example\n * ```typescript\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...slice(iterable, -2, -1)]);\n * // Output: [4]\n * ```\n *\n * @example\n * ```typescript\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...slice(iterable, 2, 1)]);\n * // Output: []\n * ```\n *\n * @remarks\n *\n * This function consumes the input iterator based on the `start` and `end` values, therefore, you should not use the\n * original iterator after calling this function.\n */\nexport function slice<const ElementType>(iterable: IterableResolvable<ElementType>, start?: number, end?: number): IterableIterator<ElementType> {\n\t// https://tc39.es/ecma262/#sec-array.prototype.slice\n\tstart = toIntegerOrInfinityOrThrow(start ?? 0);\n\tif (start === Number.NEGATIVE_INFINITY) {\n\t\tstart = 0;\n\t}\n\n\t// 1. If end is not provided, `slice` behaves like `drop` or `takeLast`,\n\t// depending on the sign of `start`:\n\tif (end === undefined) {\n\t\treturn start >= 0 //\n\t\t\t? drop(iterable, start)\n\t\t\t: takeLast(iterable, -start);\n\t}\n\n\tend = toIntegerOrInfinityOrThrow(end);\n\t// 2. If end is negative:\n\tif (end < 0) {\n\t\t// 2.1. If `end` is `-Infinity`, end would be `0`, which will always\n\t\t// result on an empty iterator:\n\t\tif (end === Number.NEGATIVE_INFINITY) {\n\t\t\treturn empty();\n\t\t}\n\n\t\t// 2.2. If start is positive, drop the last n elements:\n\t\tif (start === 0) {\n\t\t\treturn dropLast(iterable, -end);\n\t\t}\n\n\t\t// 2.3. If the start is positive, drop the first n elements and take the\n\t\t// last m elements:\n\t\tif (start >= 0) {\n\t\t\treturn dropLast(drop(iterable, start), -end);\n\t\t}\n\n\t\t// 2.4. If the start is the same or greater than the end, return an\n\t\t// empty iterator:\n\t\tif (start >= end) {\n\t\t\treturn empty();\n\t\t}\n\n\t\t// 2.5. `start` and `end` are negative, take the elements between the\n\t\t// start and end:\n\t\treturn take(takeLast(iterable, -start), end - start);\n\t}\n\n\t// 3.0. If `start` is greater than or equal to `end`, return an empty iterator:\n\tif (start >= end) return empty();\n\n\t// 4.0. Otherwise, take the elements between `start` and `end`:\n\treturn end === Number.POSITIVE_INFINITY //\n\t\t? drop(iterable, start)\n\t\t: take(drop(iterable, start), end - start);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/some.ts"],"names":[],"mappings":";;;;AAgCO,SAAS,IAAA,CACf,UACA,UACU,EAAA;AACV,EAAA,UAAA,GAAa,eAAe,UAAU,CAAA;AAEtC,EAAA,IAAI,KAAQ,GAAA,CAAA;AACZ,EAAW,KAAA,MAAA,KAAA,IAAS,kBAAmB,CAAA,QAAQ,CAAG,EAAA;AACjD,IAAI,IAAA,UAAA,CAAW,KAAO,EAAA,KAAA,EAAO,CAAG,EAAA;AAC/B,MAAO,OAAA,IAAA;AAAA;AACR;AAGD,EAAO,OAAA,KAAA;AACR;AAdgB,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA","file":"some.mjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport { assertFunction } from './shared/_assertFunction';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Advances the iterable until it finds a matching element, returning `true` if it's found and `false` otherwise.\n *\n * @param iterable An iterator to search for a value in.\n * @param callbackFn A function to execute for each element produced by the iterator. It should return a truthy value to\n * indicate the element passes the test, and a falsy value otherwise.\n * @returns `true` if the callback function returns a truthy value for at least one element. Otherwise, `false`.\n *\n * @example\n * ```typescript\n * import { some } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(some(iterable, (value) => value % 2 === 0));\n * // Output: true\n * ```\n *\n * @example\n * ```typescript\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(some(iterable, (value) => value % 6 === 0));\n * // Output: false\n * ```\n *\n * @remarks\n *\n * This function consumes the iterator until the value is found or the iterator is exhausted.\n */\nexport function some<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => boolean\n): boolean {\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\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n"]}
1
+ {"version":3,"sources":["../../../src/lib/some.ts"],"names":[],"mappings":";;;;AAgCO,SAAS,IAAA,CACf,UACA,UAAA,EACU;AACV,EAAA,UAAA,GAAa,eAAe,UAAU,CAAA;AAEtC,EAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,EAAA,KAAA,MAAW,KAAA,IAAS,kBAAA,CAAmB,QAAQ,CAAA,EAAG;AACjD,IAAA,IAAI,UAAA,CAAW,KAAA,EAAO,KAAA,EAAO,CAAA,EAAG;AAC/B,MAAA,OAAO,IAAA;AAAA,IACR;AAAA,EACD;AAEA,EAAA,OAAO,KAAA;AACR;AAdgB,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA","file":"some.mjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport { assertFunction } from './shared/_assertFunction';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Advances the iterable until it finds a matching element, returning `true` if it's found and `false` otherwise.\n *\n * @param iterable An iterator to search for a value in.\n * @param callbackFn A function to execute for each element produced by the iterator. It should return a truthy value to\n * indicate the element passes the test, and a falsy value otherwise.\n * @returns `true` if the callback function returns a truthy value for at least one element. Otherwise, `false`.\n *\n * @example\n * ```typescript\n * import { some } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(some(iterable, (value) => value % 2 === 0));\n * // Output: true\n * ```\n *\n * @example\n * ```typescript\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(some(iterable, (value) => value % 6 === 0));\n * // Output: false\n * ```\n *\n * @remarks\n *\n * This function consumes the iterator until the value is found or the iterator is exhausted.\n */\nexport function some<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => boolean\n): boolean {\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\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/sorted.ts"],"names":[],"mappings":";;;AAuBO,SAAS,MAAA,CACf,UACA,SACgC,EAAA;AAChC,EAAA,OAAO,QAAQ,QAAQ,CAAA,CAAE,IAAK,CAAA,SAAS,EAAE,MAAO,EAAA;AACjD;AALgB,MAAA,CAAA,MAAA,EAAA,QAAA,CAAA","file":"sorted.mjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toArray } from './toArray';\n\n/**\n * Consumes the iterable and returns a new iterable with the elements sorted.\n *\n * @param iterable An iterator to sort.\n * @param compareFn A function that defines the sort order. If omitted, the values are sorted in ascending order.\n * @returns An iterator that yields the values of the provided iterator in sorted order.\n *\n * @example\n * ```typescript\n * import { sorted } from '@sapphire/iterator-utilities';\n *\n * const iterable = [5, 3, 1, 4, 2];\n * console.log([...sorted(iterable)]);\n * // Output: [1, 2, 3, 4, 5]\n * ```\n *\n * @remarks\n *\n * This function consumes the entire input iterator.\n */\nexport function sorted<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcompareFn?: (a: ElementType, b: ElementType) => number\n): IterableIterator<ElementType> {\n\treturn toArray(iterable).sort(compareFn).values();\n}\n"]}
1
+ {"version":3,"sources":["../../../src/lib/sorted.ts"],"names":[],"mappings":";;;AAuBO,SAAS,MAAA,CACf,UACA,SAAA,EACgC;AAChC,EAAA,OAAO,QAAQ,QAAQ,CAAA,CAAE,IAAA,CAAK,SAAS,EAAE,MAAA,EAAO;AACjD;AALgB,MAAA,CAAA,MAAA,EAAA,QAAA,CAAA","file":"sorted.mjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toArray } from './toArray';\n\n/**\n * Consumes the iterable and returns a new iterable with the elements sorted.\n *\n * @param iterable An iterator to sort.\n * @param compareFn A function that defines the sort order. If omitted, the values are sorted in ascending order.\n * @returns An iterator that yields the values of the provided iterator in sorted order.\n *\n * @example\n * ```typescript\n * import { sorted } from '@sapphire/iterator-utilities';\n *\n * const iterable = [5, 3, 1, 4, 2];\n * console.log([...sorted(iterable)]);\n * // Output: [1, 2, 3, 4, 5]\n * ```\n *\n * @remarks\n *\n * This function consumes the entire input iterator.\n */\nexport function sorted<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcompareFn?: (a: ElementType, b: ElementType) => number\n): IterableIterator<ElementType> {\n\treturn toArray(iterable).sort(compareFn).values();\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/starMap.ts"],"names":[],"mappings":";;;;;AA0BO,UAAU,OAAA,CAChB,UACA,UAC+B,EAAA;AAC/B,EAAA,UAAA,GAAa,eAAe,UAAU,CAAA;AAEtC,EAAW,KAAA,MAAA,KAAA,IAAS,kBAAmB,CAAA,QAAQ,CAAG,EAAA;AACjD,IAAA,MAAM,UAAW,CAAA,GAAI,kBAAmB,CAAA,KAAK,CAAS,CAAA;AAAA;AAExD;AATiB,MAAA,CAAA,OAAA,EAAA,SAAA,CAAA","file":"starMap.mjs","sourcesContent":["import { type IterableResolvable } from './from';\nimport { assertFunction } from './shared/_assertFunction';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Creates an iterable with the results of calling a provided function on each element of the input iterables as the function's parameters.\n *\n * @param iterable The iterable to map over.\n * @param callbackFn The callback function to apply to each element.\n * @returns An iterable iterator that yields the mapped elements.\n *\n * @example\n * ```typescript\n * import { starMap } from '@sapphire/iterator-utilities';\n *\n * const iterable = [[1, 2], [3, 4], [5, 6]];\n * console.log([...starMap(iterable, (a, b) => a + b)]);\n * // Output: [3, 7, 11]\n * ```\n *\n * @remarks\n *\n * While very similar to {@link map}, `starMap` takes an iterable of iterables (which can be an array of tuples) and\n * calls the function with each inner iterable's values as the function's parameters. {@link map} calls the function\n * with the value and the index by comparison.\n */\nexport function* starMap<const ElementType extends IterableResolvable<any>, const MappedType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (...args: StarMapParameters<ElementType>) => MappedType\n): IterableIterator<MappedType> {\n\tcallbackFn = assertFunction(callbackFn);\n\n\tfor (const value of toIterableIterator(iterable)) {\n\t\tyield callbackFn(...(toIterableIterator(value) as any));\n\t}\n}\n\nexport type StarMapParameters<ElementType> = ElementType extends readonly [...infer ElementTypeEntry]\n\t? ElementTypeEntry\n\t: ElementType extends IterableResolvable<infer ElementType>\n\t\t? ElementType[]\n\t\t: never;\n"]}
1
+ {"version":3,"sources":["../../../src/lib/starMap.ts"],"names":[],"mappings":";;;;;AA0BO,UAAU,OAAA,CAChB,UACA,UAAA,EAC+B;AAC/B,EAAA,UAAA,GAAa,eAAe,UAAU,CAAA;AAEtC,EAAA,KAAA,MAAW,KAAA,IAAS,kBAAA,CAAmB,QAAQ,CAAA,EAAG;AACjD,IAAA,MAAM,UAAA,CAAW,GAAI,kBAAA,CAAmB,KAAK,CAAS,CAAA;AAAA,EACvD;AACD;AATiB,MAAA,CAAA,OAAA,EAAA,SAAA,CAAA","file":"starMap.mjs","sourcesContent":["import { type IterableResolvable } from './from';\nimport { assertFunction } from './shared/_assertFunction';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Creates an iterable with the results of calling a provided function on each element of the input iterables as the function's parameters.\n *\n * @param iterable The iterable to map over.\n * @param callbackFn The callback function to apply to each element.\n * @returns An iterable iterator that yields the mapped elements.\n *\n * @example\n * ```typescript\n * import { starMap } from '@sapphire/iterator-utilities';\n *\n * const iterable = [[1, 2], [3, 4], [5, 6]];\n * console.log([...starMap(iterable, (a, b) => a + b)]);\n * // Output: [3, 7, 11]\n * ```\n *\n * @remarks\n *\n * While very similar to {@link map}, `starMap` takes an iterable of iterables (which can be an array of tuples) and\n * calls the function with each inner iterable's values as the function's parameters. {@link map} calls the function\n * with the value and the index by comparison.\n */\nexport function* starMap<const ElementType extends IterableResolvable<any>, const MappedType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (...args: StarMapParameters<ElementType>) => MappedType\n): IterableIterator<MappedType> {\n\tcallbackFn = assertFunction(callbackFn);\n\n\tfor (const value of toIterableIterator(iterable)) {\n\t\tyield callbackFn(...(toIterableIterator(value) as any));\n\t}\n}\n\nexport type StarMapParameters<ElementType> = ElementType extends readonly [...infer ElementTypeEntry]\n\t? ElementTypeEntry\n\t: ElementType extends IterableResolvable<infer ElementType>\n\t\t? ElementType[]\n\t\t: never;\n"]}
@@ -10,7 +10,7 @@ function stepBy(iterable, step) {
10
10
  return makeIterableIterator(() => {
11
11
  const result = iterator.next();
12
12
  if (result.done) {
13
- return { done: true, value: undefined };
13
+ return { done: true, value: void 0 };
14
14
  }
15
15
  for (let i = 0; i < step - 1; i++) {
16
16
  const result2 = iterator.next();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/stepBy.ts"],"names":["result"],"mappings":";;;;;;AAwBO,SAAS,MAAA,CAA0B,UAA2C,IAA6C,EAAA;AACjI,EAAA,IAAA,GAAO,cAAe,CAAA,0BAAA,CAA2B,IAAI,CAAA,EAAG,IAAI,CAAA;AAE5D,EAAM,MAAA,QAAA,GAAW,KAAK,QAAQ,CAAA;AAC9B,EAAA,OAAO,qBAAkC,MAAM;AAC9C,IAAM,MAAA,MAAA,GAAS,SAAS,IAAK,EAAA;AAC7B,IAAA,IAAI,OAAO,IAAM,EAAA;AAChB,MAAA,OAAO,EAAE,IAAA,EAAM,IAAM,EAAA,KAAA,EAAO,SAAU,EAAA;AAAA;AAGvC,IAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,IAAA,GAAO,GAAG,CAAK,EAAA,EAAA;AAClC,MAAMA,MAAAA,OAAAA,GAAS,SAAS,IAAK,EAAA;AAC7B,MAAA,IAAIA,QAAO,IAAM,EAAA;AAAA;AAGlB,IAAA,OAAO,EAAE,IAAA,EAAM,KAAO,EAAA,KAAA,EAAO,OAAO,KAAM,EAAA;AAAA,GAC1C,CAAA;AACF;AAjBgB,MAAA,CAAA,MAAA,EAAA,QAAA,CAAA","file":"stepBy.mjs","sourcesContent":["import { from, type IterableResolvable } from './from';\nimport { assertPositive } from './shared/_assertPositive';\nimport { makeIterableIterator } from './shared/_makeIterableIterator';\nimport { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow';\n\n/**\n * Creates an iterator starting at the same point, but stepping by the given amount at each iteration.\n *\n * @param iterable An iterator to map over.\n * @param step A positive integer representing the step to take at each iteration.\n *\n * @example\n * ```typescript\n * import { stepBy } from '@sapphire/iterator-utilities';\n *\n * const iterable = [0, 1, 2, 3, 4, 5];\n * console.log([...stepBy(iterable, 2)]);\n * // Output: [0, 2, 4]\n * ```\n *\n * @remarks\n *\n * The first element of the iterator will always be returned, regardless of the step given.\n */\nexport function stepBy<const ElementType>(iterable: IterableResolvable<ElementType>, step: number): IterableIterator<ElementType> {\n\tstep = assertPositive(toIntegerOrInfinityOrThrow(step), step);\n\n\tconst iterator = from(iterable);\n\treturn makeIterableIterator<ElementType>(() => {\n\t\tconst result = iterator.next();\n\t\tif (result.done) {\n\t\t\treturn { done: true, value: undefined };\n\t\t}\n\n\t\tfor (let i = 0; i < step - 1; i++) {\n\t\t\tconst result = iterator.next();\n\t\t\tif (result.done) break;\n\t\t}\n\n\t\treturn { done: false, value: result.value };\n\t});\n}\n"]}
1
+ {"version":3,"sources":["../../../src/lib/stepBy.ts"],"names":["result"],"mappings":";;;;;;AAwBO,SAAS,MAAA,CAA0B,UAA2C,IAAA,EAA6C;AACjI,EAAA,IAAA,GAAO,cAAA,CAAe,0BAAA,CAA2B,IAAI,CAAA,EAAG,IAAI,CAAA;AAE5D,EAAA,MAAM,QAAA,GAAW,KAAK,QAAQ,CAAA;AAC9B,EAAA,OAAO,qBAAkC,MAAM;AAC9C,IAAA,MAAM,MAAA,GAAS,SAAS,IAAA,EAAK;AAC7B,IAAA,IAAI,OAAO,IAAA,EAAM;AAChB,MAAA,OAAO,EAAE,IAAA,EAAM,IAAA,EAAM,KAAA,EAAO,MAAA,EAAU;AAAA,IACvC;AAEA,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,GAAO,GAAG,CAAA,EAAA,EAAK;AAClC,MAAA,MAAMA,OAAAA,GAAS,SAAS,IAAA,EAAK;AAC7B,MAAA,IAAIA,QAAO,IAAA,EAAM;AAAA,IAClB;AAEA,IAAA,OAAO,EAAE,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,OAAO,KAAA,EAAM;AAAA,EAC3C,CAAC,CAAA;AACF;AAjBgB,MAAA,CAAA,MAAA,EAAA,QAAA,CAAA","file":"stepBy.mjs","sourcesContent":["import { from, type IterableResolvable } from './from';\nimport { assertPositive } from './shared/_assertPositive';\nimport { makeIterableIterator } from './shared/_makeIterableIterator';\nimport { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow';\n\n/**\n * Creates an iterator starting at the same point, but stepping by the given amount at each iteration.\n *\n * @param iterable An iterator to map over.\n * @param step A positive integer representing the step to take at each iteration.\n *\n * @example\n * ```typescript\n * import { stepBy } from '@sapphire/iterator-utilities';\n *\n * const iterable = [0, 1, 2, 3, 4, 5];\n * console.log([...stepBy(iterable, 2)]);\n * // Output: [0, 2, 4]\n * ```\n *\n * @remarks\n *\n * The first element of the iterator will always be returned, regardless of the step given.\n */\nexport function stepBy<const ElementType>(iterable: IterableResolvable<ElementType>, step: number): IterableIterator<ElementType> {\n\tstep = assertPositive(toIntegerOrInfinityOrThrow(step), step);\n\n\tconst iterator = from(iterable);\n\treturn makeIterableIterator<ElementType>(() => {\n\t\tconst result = iterator.next();\n\t\tif (result.done) {\n\t\t\treturn { done: true, value: undefined };\n\t\t}\n\n\t\tfor (let i = 0; i < step - 1; i++) {\n\t\t\tconst result = iterator.next();\n\t\t\tif (result.done) break;\n\t\t}\n\n\t\treturn { done: false, value: result.value };\n\t});\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/sum.ts"],"names":["sum"],"mappings":";;;;AAuBO,SAAS,IAAI,QAAgD,EAAA;AACnE,EAAA,IAAIA,IAAM,GAAA,CAAA;AACV,EAAA,KAAA,MAAW,KAAS,IAAA,GAAA,CAAI,QAAU,EAAA,eAAe,CAAG,EAAA;AACnD,IAAAA,IAAO,IAAA,KAAA;AAAA;AAGR,EAAOA,OAAAA,IAAAA;AACR;AAPgB,MAAA,CAAA,GAAA,EAAA,KAAA,CAAA","file":"sum.mjs","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 sum of all the elements.\n *\n * @param iterable An iterator of numbers to calculate the sum of.\n * @returns The sum of the numbers in the input iterator.\n *\n * @example\n * ```typescript\n * import { sum } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(sum(iterable));\n * // Output: 15\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function sum(iterable: IterableResolvable<NumberResolvable>) {\n\tlet sum = 0;\n\tfor (const value of map(iterable, toNumberOrThrow)) {\n\t\tsum += value;\n\t}\n\n\treturn sum;\n}\n"]}
1
+ {"version":3,"sources":["../../../src/lib/sum.ts"],"names":["sum"],"mappings":";;;;AAuBO,SAAS,IAAI,QAAA,EAAgD;AACnE,EAAA,IAAIA,IAAAA,GAAM,CAAA;AACV,EAAA,KAAA,MAAW,KAAA,IAAS,GAAA,CAAI,QAAA,EAAU,eAAe,CAAA,EAAG;AACnD,IAAAA,IAAAA,IAAO,KAAA;AAAA,EACR;AAEA,EAAA,OAAOA,IAAAA;AACR;AAPgB,MAAA,CAAA,GAAA,EAAA,KAAA,CAAA","file":"sum.mjs","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 sum of all the elements.\n *\n * @param iterable An iterator of numbers to calculate the sum of.\n * @returns The sum of the numbers in the input iterator.\n *\n * @example\n * ```typescript\n * import { sum } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(sum(iterable));\n * // Output: 15\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function sum(iterable: IterableResolvable<NumberResolvable>) {\n\tlet sum = 0;\n\tfor (const value of map(iterable, toNumberOrThrow)) {\n\t\tsum += value;\n\t}\n\n\treturn sum;\n}\n"]}
@@ -11,7 +11,7 @@ function take(iterable, count) {
11
11
  let i = 0;
12
12
  const resolvedIterable = from(iterable);
13
13
  return makeIterableIterator(
14
- () => i >= count ? { done: true, value: undefined } : (i++, resolvedIterable.next())
14
+ () => i >= count ? { done: true, value: void 0 } : (i++, resolvedIterable.next())
15
15
  );
16
16
  }
17
17
  __name(take, "take");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/take.ts"],"names":[],"mappings":";;;;;;;AAsBO,SAAS,IAAA,CAAwB,UAA2C,KAA8C,EAAA;AAChI,EAAA,KAAA,GAAQ,iBAAkB,CAAA,0BAAA,CAA2B,KAAK,CAAA,EAAG,KAAK,CAAA;AAClE,EAAI,IAAA,KAAA,KAAU,CAAG,EAAA,OAAO,KAAM,EAAA;AAE9B,EAAA,IAAI,CAAI,GAAA,CAAA;AACR,EAAM,MAAA,gBAAA,GAAmB,KAAK,QAAQ,CAAA;AACtC,EAAO,OAAA,oBAAA;AAAA,IAAkC,MACxC,CAAK,IAAA,KAAA,GACF,EAAE,IAAA,EAAM,IAAM,EAAA,KAAA,EAAO,SAAU,EAAA,IAC9B,CAAK,EAAA,EAAA,gBAAA,CAAiB,IAAK,EAAA;AAAA,GAChC;AACD;AAXgB,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA","file":"take.mjs","sourcesContent":["import { empty } from './empty';\nimport { from, type IterableResolvable } from './from';\nimport { assertNotNegative } from './shared/_assertNotNegative';\nimport { makeIterableIterator } from './shared/_makeIterableIterator';\nimport { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow';\n\n/**\n * Creates an iterable with the first `count` elements.\n *\n * @param iterable The iterator to take values from.\n * @param count The maximum number of values to take from the iterator.\n * @returns An iterator that yields at most `count` values from the provided iterator.\n *\n * @example\n * ```typescript\n * import { take } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...take(iterable, 2)]);\n * // Output: [1, 2]\n * ```\n */\nexport function take<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType> {\n\tcount = assertNotNegative(toIntegerOrInfinityOrThrow(count), count);\n\tif (count === 0) return empty();\n\n\tlet i = 0;\n\tconst resolvedIterable = from(iterable);\n\treturn makeIterableIterator<ElementType>(() =>\n\t\ti >= count //\n\t\t\t? { done: true, value: undefined }\n\t\t\t: (i++, resolvedIterable.next())\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../src/lib/take.ts"],"names":[],"mappings":";;;;;;;AAsBO,SAAS,IAAA,CAAwB,UAA2C,KAAA,EAA8C;AAChI,EAAA,KAAA,GAAQ,iBAAA,CAAkB,0BAAA,CAA2B,KAAK,CAAA,EAAG,KAAK,CAAA;AAClE,EAAA,IAAI,KAAA,KAAU,CAAA,EAAG,OAAO,KAAA,EAAM;AAE9B,EAAA,IAAI,CAAA,GAAI,CAAA;AACR,EAAA,MAAM,gBAAA,GAAmB,KAAK,QAAQ,CAAA;AACtC,EAAA,OAAO,oBAAA;AAAA,IAAkC,MACxC,CAAA,IAAK,KAAA,GACF,EAAE,IAAA,EAAM,IAAA,EAAM,KAAA,EAAO,MAAA,EAAU,IAC9B,CAAA,EAAA,EAAK,gBAAA,CAAiB,IAAA,EAAK;AAAA,GAChC;AACD;AAXgB,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA","file":"take.mjs","sourcesContent":["import { empty } from './empty';\nimport { from, type IterableResolvable } from './from';\nimport { assertNotNegative } from './shared/_assertNotNegative';\nimport { makeIterableIterator } from './shared/_makeIterableIterator';\nimport { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow';\n\n/**\n * Creates an iterable with the first `count` elements.\n *\n * @param iterable The iterator to take values from.\n * @param count The maximum number of values to take from the iterator.\n * @returns An iterator that yields at most `count` values from the provided iterator.\n *\n * @example\n * ```typescript\n * import { take } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...take(iterable, 2)]);\n * // Output: [1, 2]\n * ```\n */\nexport function take<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType> {\n\tcount = assertNotNegative(toIntegerOrInfinityOrThrow(count), count);\n\tif (count === 0) return empty();\n\n\tlet i = 0;\n\tconst resolvedIterable = from(iterable);\n\treturn makeIterableIterator<ElementType>(() =>\n\t\ti >= count //\n\t\t\t? { done: true, value: undefined }\n\t\t\t: (i++, resolvedIterable.next())\n\t);\n}\n"]}
@@ -14,7 +14,7 @@ function takeLast(iterable, count) {
14
14
  let i = Math.max(0, array.length - count);
15
15
  return makeIterableIterator(() => {
16
16
  if (i >= array.length) {
17
- return { done: true, value: undefined };
17
+ return { done: true, value: void 0 };
18
18
  }
19
19
  return { done: false, value: array[i++] };
20
20
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/takeLast.ts"],"names":[],"mappings":";;;;;;;;AA4BO,SAAS,QAAA,CAA4B,UAA2C,KAA8C,EAAA;AACpI,EAAA,KAAA,GAAQ,iBAAkB,CAAA,0BAAA,CAA2B,KAAK,CAAA,EAAG,KAAK,CAAA;AAClE,EAAI,IAAA,KAAA,KAAU,CAAG,EAAA,OAAO,KAAM,EAAA;AAC9B,EAAA,IAAI,KAAU,KAAA,MAAA,CAAO,iBAAmB,EAAA,OAAO,mBAAmB,QAAQ,CAAA;AAE1E,EAAM,MAAA,KAAA,GAAQ,QAAQ,QAAQ,CAAA;AAC9B,EAAA,IAAI,IAAI,IAAK,CAAA,GAAA,CAAI,CAAG,EAAA,KAAA,CAAM,SAAS,KAAK,CAAA;AACxC,EAAA,OAAO,qBAAkC,MAAM;AAC9C,IAAI,IAAA,CAAA,IAAK,MAAM,MAAQ,EAAA;AACtB,MAAA,OAAO,EAAE,IAAA,EAAM,IAAM,EAAA,KAAA,EAAO,SAAU,EAAA;AAAA;AAGvC,IAAA,OAAO,EAAE,IAAM,EAAA,KAAA,EAAO,KAAO,EAAA,KAAA,CAAM,GAAG,CAAE,EAAA;AAAA,GACxC,CAAA;AACF;AAdgB,MAAA,CAAA,QAAA,EAAA,UAAA,CAAA","file":"takeLast.mjs","sourcesContent":["import { empty } from './empty';\nimport type { IterableResolvable } from './from';\nimport { assertNotNegative } from './shared/_assertNotNegative';\nimport { makeIterableIterator } from './shared/_makeIterableIterator';\nimport { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow';\nimport { toArray } from './toArray';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Consumes the iterable and returns a new iterable with the last `count` elements.\n *\n * @param iterable An iterator to take values from.\n * @param count The number of values to take from the end of the iterator.\n * @returns An iterator that contains the last `count` elements of the provided iterator.\n *\n * @example\n * ```typescript\n * import { takeLast } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...takeLast(iterable, 2)]);\n * // Output: [4, 5]\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function takeLast<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType> {\n\tcount = assertNotNegative(toIntegerOrInfinityOrThrow(count), count);\n\tif (count === 0) return empty();\n\tif (count === Number.POSITIVE_INFINITY) return toIterableIterator(iterable);\n\n\tconst array = toArray(iterable);\n\tlet i = Math.max(0, array.length - count);\n\treturn makeIterableIterator<ElementType>(() => {\n\t\tif (i >= array.length) {\n\t\t\treturn { done: true, value: undefined };\n\t\t}\n\n\t\treturn { done: false, value: array[i++] };\n\t});\n}\n"]}
1
+ {"version":3,"sources":["../../../src/lib/takeLast.ts"],"names":[],"mappings":";;;;;;;;AA4BO,SAAS,QAAA,CAA4B,UAA2C,KAAA,EAA8C;AACpI,EAAA,KAAA,GAAQ,iBAAA,CAAkB,0BAAA,CAA2B,KAAK,CAAA,EAAG,KAAK,CAAA;AAClE,EAAA,IAAI,KAAA,KAAU,CAAA,EAAG,OAAO,KAAA,EAAM;AAC9B,EAAA,IAAI,KAAA,KAAU,MAAA,CAAO,iBAAA,EAAmB,OAAO,mBAAmB,QAAQ,CAAA;AAE1E,EAAA,MAAM,KAAA,GAAQ,QAAQ,QAAQ,CAAA;AAC9B,EAAA,IAAI,IAAI,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,KAAA,CAAM,SAAS,KAAK,CAAA;AACxC,EAAA,OAAO,qBAAkC,MAAM;AAC9C,IAAA,IAAI,CAAA,IAAK,MAAM,MAAA,EAAQ;AACtB,MAAA,OAAO,EAAE,IAAA,EAAM,IAAA,EAAM,KAAA,EAAO,MAAA,EAAU;AAAA,IACvC;AAEA,IAAA,OAAO,EAAE,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,KAAA,CAAM,GAAG,CAAA,EAAE;AAAA,EACzC,CAAC,CAAA;AACF;AAdgB,MAAA,CAAA,QAAA,EAAA,UAAA,CAAA","file":"takeLast.mjs","sourcesContent":["import { empty } from './empty';\nimport type { IterableResolvable } from './from';\nimport { assertNotNegative } from './shared/_assertNotNegative';\nimport { makeIterableIterator } from './shared/_makeIterableIterator';\nimport { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow';\nimport { toArray } from './toArray';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Consumes the iterable and returns a new iterable with the last `count` elements.\n *\n * @param iterable An iterator to take values from.\n * @param count The number of values to take from the end of the iterator.\n * @returns An iterator that contains the last `count` elements of the provided iterator.\n *\n * @example\n * ```typescript\n * import { takeLast } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...takeLast(iterable, 2)]);\n * // Output: [4, 5]\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function takeLast<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType> {\n\tcount = assertNotNegative(toIntegerOrInfinityOrThrow(count), count);\n\tif (count === 0) return empty();\n\tif (count === Number.POSITIVE_INFINITY) return toIterableIterator(iterable);\n\n\tconst array = toArray(iterable);\n\tlet i = Math.max(0, array.length - count);\n\treturn makeIterableIterator<ElementType>(() => {\n\t\tif (i >= array.length) {\n\t\t\treturn { done: true, value: undefined };\n\t\t}\n\n\t\treturn { done: false, value: array[i++] };\n\t});\n}\n"]}
@@ -18,7 +18,7 @@ function tee(iterable, count) {
18
18
  if (indexes[i] >= entries.length) {
19
19
  const result = resolvedIterable.next();
20
20
  if (result.done) {
21
- return { done: true, value: undefined };
21
+ return { done: true, value: void 0 };
22
22
  }
23
23
  entries.push(result.value);
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/tee.ts"],"names":["iterable"],"mappings":";;;;;;;;AA2BO,SAAS,GAAA,CAAuB,UAA2C,KAAgD,EAAA;AACjI,EAAA,KAAA,GAAQ,iBAAkB,CAAA,gBAAA,CAAiB,KAAK,CAAA,EAAG,KAAK,CAAA;AACxD,EAAI,IAAA,KAAA,KAAU,CAAG,EAAA,OAAO,EAAC;AAEzB,EAAA,MAAM,UAAU,EAAC;AACjB,EAAA,MAAM,OAAU,GAAA,OAAA,CAAQ,MAAO,CAAA,CAAA,EAAG,KAAK,CAAC,CAAA;AACxC,EAAM,MAAA,gBAAA,GAAmB,KAAK,QAAQ,CAAA;AAEtC,EAAA,MAAM,YAAY,EAAC;AACnB,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,KAAA,EAAO,CAAK,EAAA,EAAA;AAC/B,IAAMA,MAAAA,SAAAA,GAAW,qBAAkC,MAAM;AACxD,MAAA,IAAI,OAAQ,CAAA,CAAC,CAAK,IAAA,OAAA,CAAQ,MAAQ,EAAA;AACjC,QAAM,MAAA,MAAA,GAAS,iBAAiB,IAAK,EAAA;AACrC,QAAA,IAAI,OAAO,IAAM,EAAA;AAChB,UAAA,OAAO,EAAE,IAAA,EAAM,IAAM,EAAA,KAAA,EAAO,SAAU,EAAA;AAAA;AAGvC,QAAQ,OAAA,CAAA,IAAA,CAAK,OAAO,KAAK,CAAA;AAAA;AAG1B,MAAO,OAAA,EAAE,MAAM,KAAO,EAAA,KAAA,EAAO,QAAQ,OAAQ,CAAA,CAAC,GAAG,CAAE,EAAA;AAAA,KACnD,CAAA;AAED,IAAA,SAAA,CAAU,KAAKA,SAAQ,CAAA;AAAA;AAGxB,EAAO,OAAA,SAAA;AACR;AA3BgB,MAAA,CAAA,GAAA,EAAA,KAAA,CAAA","file":"tee.mjs","sourcesContent":["import { from, type IterableResolvable } from './from';\nimport { repeat } from './repeat';\nimport { assertNotNegative } from './shared/_assertNotNegative';\nimport { makeIterableIterator } from './shared/_makeIterableIterator';\nimport { toIntegerOrThrow } from './shared/_toIntegerOrThrow';\nimport { toArray } from './toArray';\n\n/**\n * Creates `count` independent iterators from the input iterable.\n *\n * @param iterable An iterator to tee.\n * @param count The number of iterators to create.\n * @returns An array of `count` iterators that each yield the same values as the input iterator.\n *\n * @example\n * ```typescript\n * import { tee } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * const [iter1, iter2] = tee(iterable, 2);\n * console.log([...iter1]);\n * // Output: [1, 2, 3, 4, 5]\n *\n * console.log([...iter2]);\n * // Output: [1, 2, 3, 4, 5]\n * ```\n */\nexport function tee<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType>[] {\n\tcount = assertNotNegative(toIntegerOrThrow(count), count);\n\tif (count === 0) return [];\n\n\tconst entries = [] as ElementType[];\n\tconst indexes = toArray(repeat(0, count));\n\tconst resolvedIterable = from(iterable);\n\n\tconst iterables = [] as IterableIterator<ElementType>[];\n\tfor (let i = 0; i < count; i++) {\n\t\tconst iterable = makeIterableIterator<ElementType>(() => {\n\t\t\tif (indexes[i] >= entries.length) {\n\t\t\t\tconst result = resolvedIterable.next();\n\t\t\t\tif (result.done) {\n\t\t\t\t\treturn { done: true, value: undefined };\n\t\t\t\t}\n\n\t\t\t\tentries.push(result.value);\n\t\t\t}\n\n\t\t\treturn { done: false, value: entries[indexes[i]++] };\n\t\t});\n\n\t\titerables.push(iterable);\n\t}\n\n\treturn iterables;\n}\n"]}
1
+ {"version":3,"sources":["../../../src/lib/tee.ts"],"names":["iterable"],"mappings":";;;;;;;;AA2BO,SAAS,GAAA,CAAuB,UAA2C,KAAA,EAAgD;AACjI,EAAA,KAAA,GAAQ,iBAAA,CAAkB,gBAAA,CAAiB,KAAK,CAAA,EAAG,KAAK,CAAA;AACxD,EAAA,IAAI,KAAA,KAAU,CAAA,EAAG,OAAO,EAAC;AAEzB,EAAA,MAAM,UAAU,EAAC;AACjB,EAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,MAAA,CAAO,CAAA,EAAG,KAAK,CAAC,CAAA;AACxC,EAAA,MAAM,gBAAA,GAAmB,KAAK,QAAQ,CAAA;AAEtC,EAAA,MAAM,YAAY,EAAC;AACnB,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,EAAO,CAAA,EAAA,EAAK;AAC/B,IAAA,MAAMA,SAAAA,GAAW,qBAAkC,MAAM;AACxD,MAAA,IAAI,OAAA,CAAQ,CAAC,CAAA,IAAK,OAAA,CAAQ,MAAA,EAAQ;AACjC,QAAA,MAAM,MAAA,GAAS,iBAAiB,IAAA,EAAK;AACrC,QAAA,IAAI,OAAO,IAAA,EAAM;AAChB,UAAA,OAAO,EAAE,IAAA,EAAM,IAAA,EAAM,KAAA,EAAO,MAAA,EAAU;AAAA,QACvC;AAEA,QAAA,OAAA,CAAQ,IAAA,CAAK,OAAO,KAAK,CAAA;AAAA,MAC1B;AAEA,MAAA,OAAO,EAAE,MAAM,KAAA,EAAO,KAAA,EAAO,QAAQ,OAAA,CAAQ,CAAC,GAAG,CAAA,EAAE;AAAA,IACpD,CAAC,CAAA;AAED,IAAA,SAAA,CAAU,KAAKA,SAAQ,CAAA;AAAA,EACxB;AAEA,EAAA,OAAO,SAAA;AACR;AA3BgB,MAAA,CAAA,GAAA,EAAA,KAAA,CAAA","file":"tee.mjs","sourcesContent":["import { from, type IterableResolvable } from './from';\nimport { repeat } from './repeat';\nimport { assertNotNegative } from './shared/_assertNotNegative';\nimport { makeIterableIterator } from './shared/_makeIterableIterator';\nimport { toIntegerOrThrow } from './shared/_toIntegerOrThrow';\nimport { toArray } from './toArray';\n\n/**\n * Creates `count` independent iterators from the input iterable.\n *\n * @param iterable An iterator to tee.\n * @param count The number of iterators to create.\n * @returns An array of `count` iterators that each yield the same values as the input iterator.\n *\n * @example\n * ```typescript\n * import { tee } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * const [iter1, iter2] = tee(iterable, 2);\n * console.log([...iter1]);\n * // Output: [1, 2, 3, 4, 5]\n *\n * console.log([...iter2]);\n * // Output: [1, 2, 3, 4, 5]\n * ```\n */\nexport function tee<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType>[] {\n\tcount = assertNotNegative(toIntegerOrThrow(count), count);\n\tif (count === 0) return [];\n\n\tconst entries = [] as ElementType[];\n\tconst indexes = toArray(repeat(0, count));\n\tconst resolvedIterable = from(iterable);\n\n\tconst iterables = [] as IterableIterator<ElementType>[];\n\tfor (let i = 0; i < count; i++) {\n\t\tconst iterable = makeIterableIterator<ElementType>(() => {\n\t\t\tif (indexes[i] >= entries.length) {\n\t\t\t\tconst result = resolvedIterable.next();\n\t\t\t\tif (result.done) {\n\t\t\t\t\treturn { done: true, value: undefined };\n\t\t\t\t}\n\n\t\t\t\tentries.push(result.value);\n\t\t\t}\n\n\t\t\treturn { done: false, value: entries[indexes[i]++] };\n\t\t});\n\n\t\titerables.push(iterable);\n\t}\n\n\treturn iterables;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/toArray.ts"],"names":[],"mappings":";;;AAkCO,SAAS,QAA2B,QAA0D,EAAA;AACpG,EAAA,OAAO,CAAC,GAAG,kBAAmB,CAAA,QAAQ,CAAC,CAAA;AACxC;AAFgB,MAAA,CAAA,OAAA,EAAA,SAAA,CAAA","file":"toArray.mjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Consumes the iterable and returns an array with all the elements.\n *\n * @param iterable The iterator to convert to an array.\n * @returns An array containing the values of the provided iterator.\n *\n * @example\n * ```typescript\n * import { toArray } from '@sapphire/iterator-utilities';\n *\n * const array = [1, 2, 3, 4, 5];\n * console.log(toArray(array));\n * // Output: [1, 2, 3, 4, 5]\n *\n * const set = new Set([1, 2, 3, 4, 5]);\n * console.log(toArray(set));\n * // Output: [1, 2, 3, 4, 5]\n *\n * const map = new Map([['a', 1], ['b', 2], ['c', 3]]);\n * console.log(toArray(map));\n * // Output: [['a', 1], ['b', 2], ['c', 3]]\n *\n * const string = 'hello';\n * console.log(toArray(string));\n * // Output: ['h', 'e', 'l', 'l', 'o']\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function toArray<const ElementType>(iterable: IterableResolvable<ElementType>): ElementType[] {\n\treturn [...toIterableIterator(iterable)];\n}\n"]}
1
+ {"version":3,"sources":["../../../src/lib/toArray.ts"],"names":[],"mappings":";;;AAkCO,SAAS,QAA2B,QAAA,EAA0D;AACpG,EAAA,OAAO,CAAC,GAAG,kBAAA,CAAmB,QAAQ,CAAC,CAAA;AACxC;AAFgB,MAAA,CAAA,OAAA,EAAA,SAAA,CAAA","file":"toArray.mjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Consumes the iterable and returns an array with all the elements.\n *\n * @param iterable The iterator to convert to an array.\n * @returns An array containing the values of the provided iterator.\n *\n * @example\n * ```typescript\n * import { toArray } from '@sapphire/iterator-utilities';\n *\n * const array = [1, 2, 3, 4, 5];\n * console.log(toArray(array));\n * // Output: [1, 2, 3, 4, 5]\n *\n * const set = new Set([1, 2, 3, 4, 5]);\n * console.log(toArray(set));\n * // Output: [1, 2, 3, 4, 5]\n *\n * const map = new Map([['a', 1], ['b', 2], ['c', 3]]);\n * console.log(toArray(map));\n * // Output: [['a', 1], ['b', 2], ['c', 3]]\n *\n * const string = 'hello';\n * console.log(toArray(string));\n * // Output: ['h', 'e', 'l', 'l', 'o']\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function toArray<const ElementType>(iterable: IterableResolvable<ElementType>): ElementType[] {\n\treturn [...toIterableIterator(iterable)];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/toIterableIterator.ts"],"names":[],"mappings":";;;;AA8BO,SAAS,mBAAsC,QAA0E,EAAA;AAC/H,EAAM,MAAA,gBAAA,GAAmB,KAAK,QAAQ,CAAA;AACtC,EAAI,IAAA,MAAA,CAAO,YAAY,gBAAkB,EAAA;AACxC,IAAO,OAAA,gBAAA;AAAA;AAGR,EAAA,OAAO,oBAAqB,CAAA,MAAM,gBAAiB,CAAA,IAAA,EAAM,CAAA;AAC1D;AAPgB,MAAA,CAAA,kBAAA,EAAA,oBAAA,CAAA","file":"toIterableIterator.mjs","sourcesContent":["import { from, type IterableResolvable } from './from';\nimport { makeIterableIterator } from './shared/_makeIterableIterator';\n\n/**\n * Creates an iterable iterator from an iterable or iterator-like object.\n *\n * @param iterable The iterable or iterable-like object to convert.\n * @returns An iterable iterator.\n *\n * @example\n * ```typescript\n * import { toIterableIterator } from '@sapphire/iterator-utilities';\n *\n * const array = [1, 2, 3, 4, 5];\n * console.log([...toIterableIterator(array)]);\n * // Output: [1, 2, 3, 4, 5]\n *\n * const set = new Set([1, 2, 3, 4, 5]);\n * console.log([...toIterableIterator(set)]);\n * // Output: [1, 2, 3, 4, 5]\n *\n * const map = new Map([['a', 1], ['b', 2], ['c', 3]]);\n * console.log([...toIterableIterator(map)]);\n * // Output: [['a', 1], ['b', 2], ['c', 3]]\n *\n * const string = 'hello';\n * console.log([...toIterableIterator(string)]);\n * // Output: ['h', 'e', 'l', 'l', 'o']\n * ```\n */\nexport function toIterableIterator<const ElementType>(iterable: IterableResolvable<ElementType>): IterableIterator<ElementType> {\n\tconst resolvedIterable = from(iterable);\n\tif (Symbol.iterator in resolvedIterable) {\n\t\treturn resolvedIterable;\n\t}\n\n\treturn makeIterableIterator(() => resolvedIterable.next());\n}\n"]}
1
+ {"version":3,"sources":["../../../src/lib/toIterableIterator.ts"],"names":[],"mappings":";;;;AA8BO,SAAS,mBAAsC,QAAA,EAA0E;AAC/H,EAAA,MAAM,gBAAA,GAAmB,KAAK,QAAQ,CAAA;AACtC,EAAA,IAAI,MAAA,CAAO,YAAY,gBAAA,EAAkB;AACxC,IAAA,OAAO,gBAAA;AAAA,EACR;AAEA,EAAA,OAAO,oBAAA,CAAqB,MAAM,gBAAA,CAAiB,IAAA,EAAM,CAAA;AAC1D;AAPgB,MAAA,CAAA,kBAAA,EAAA,oBAAA,CAAA","file":"toIterableIterator.mjs","sourcesContent":["import { from, type IterableResolvable } from './from';\nimport { makeIterableIterator } from './shared/_makeIterableIterator';\n\n/**\n * Creates an iterable iterator from an iterable or iterator-like object.\n *\n * @param iterable The iterable or iterable-like object to convert.\n * @returns An iterable iterator.\n *\n * @example\n * ```typescript\n * import { toIterableIterator } from '@sapphire/iterator-utilities';\n *\n * const array = [1, 2, 3, 4, 5];\n * console.log([...toIterableIterator(array)]);\n * // Output: [1, 2, 3, 4, 5]\n *\n * const set = new Set([1, 2, 3, 4, 5]);\n * console.log([...toIterableIterator(set)]);\n * // Output: [1, 2, 3, 4, 5]\n *\n * const map = new Map([['a', 1], ['b', 2], ['c', 3]]);\n * console.log([...toIterableIterator(map)]);\n * // Output: [['a', 1], ['b', 2], ['c', 3]]\n *\n * const string = 'hello';\n * console.log([...toIterableIterator(string)]);\n * // Output: ['h', 'e', 'l', 'l', 'o']\n * ```\n */\nexport function toIterableIterator<const ElementType>(iterable: IterableResolvable<ElementType>): IterableIterator<ElementType> {\n\tconst resolvedIterable = from(iterable);\n\tif (Symbol.iterator in resolvedIterable) {\n\t\treturn resolvedIterable;\n\t}\n\n\treturn makeIterableIterator(() => resolvedIterable.next());\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/union.ts"],"names":[],"mappings":";;;AAmBO,UAAU,SAA4B,SAA6E,EAAA;AACzH,EAAM,MAAA,IAAA,uBAAW,GAAiB,EAAA;AAClC,EAAA,KAAA,MAAW,YAAY,SAAW,EAAA;AACjC,IAAW,KAAA,MAAA,KAAA,IAAS,kBAAmB,CAAA,QAAQ,CAAG,EAAA;AACjD,MAAA,IAAI,CAAC,IAAA,CAAK,GAAI,CAAA,KAAK,CAAG,EAAA;AACrB,QAAA,IAAA,CAAK,IAAI,KAAK,CAAA;AACd,QAAM,MAAA,KAAA;AAAA;AACP;AACD;AAEF;AAViB,MAAA,CAAA,KAAA,EAAA,OAAA,CAAA","file":"union.mjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Creates an iterable with the elements that are in either input iterable.\n *\n * @param iterables The iterators to combine.\n * @returns An iterator that yields the union of the provided iterators.\n *\n * @example\n * ```typescript\n * import { union } from '@sapphire/iterator-utilities';\n *\n * const iterable1 = [1, 2, 3];\n * const iterable2 = [3, 4, 5];\n * console.log([...union(iterable1, iterable2)]);\n * // Output: [1, 2, 3, 4, 5]\n * ```\n */\nexport function* union<const ElementType>(...iterables: IterableResolvable<ElementType>[]): IterableIterator<ElementType> {\n\tconst seen = new Set<ElementType>();\n\tfor (const iterator of iterables) {\n\t\tfor (const value of toIterableIterator(iterator)) {\n\t\t\tif (!seen.has(value)) {\n\t\t\t\tseen.add(value);\n\t\t\t\tyield value;\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/lib/union.ts"],"names":[],"mappings":";;;AAmBO,UAAU,SAA4B,SAAA,EAA6E;AACzH,EAAA,MAAM,IAAA,uBAAW,GAAA,EAAiB;AAClC,EAAA,KAAA,MAAW,YAAY,SAAA,EAAW;AACjC,IAAA,KAAA,MAAW,KAAA,IAAS,kBAAA,CAAmB,QAAQ,CAAA,EAAG;AACjD,MAAA,IAAI,CAAC,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA,EAAG;AACrB,QAAA,IAAA,CAAK,IAAI,KAAK,CAAA;AACd,QAAA,MAAM,KAAA;AAAA,MACP;AAAA,IACD;AAAA,EACD;AACD;AAViB,MAAA,CAAA,KAAA,EAAA,OAAA,CAAA","file":"union.mjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Creates an iterable with the elements that are in either input iterable.\n *\n * @param iterables The iterators to combine.\n * @returns An iterator that yields the union of the provided iterators.\n *\n * @example\n * ```typescript\n * import { union } from '@sapphire/iterator-utilities';\n *\n * const iterable1 = [1, 2, 3];\n * const iterable2 = [3, 4, 5];\n * console.log([...union(iterable1, iterable2)]);\n * // Output: [1, 2, 3, 4, 5]\n * ```\n */\nexport function* union<const ElementType>(...iterables: IterableResolvable<ElementType>[]): IterableIterator<ElementType> {\n\tconst seen = new Set<ElementType>();\n\tfor (const iterator of iterables) {\n\t\tfor (const value of toIterableIterator(iterator)) {\n\t\t\tif (!seen.has(value)) {\n\t\t\t\tseen.add(value);\n\t\t\t\tyield value;\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/unique.ts"],"names":[],"mappings":";;;AAkBO,SAAS,OAA0B,QAA0E,EAAA;AAEnH,EAAA,OAAO,MAAM,QAAQ,CAAA;AACtB;AAHgB,MAAA,CAAA,MAAA,EAAA,QAAA,CAAA","file":"unique.mjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport { union } from './union';\n\n/**\n * Creates an iterable with the unique elements of the input iterable. Under the hood, it calls {@linkcode union} with the iterable itself.\n *\n * @param iterable An iterator to remove duplicates from.\n * @returns An iterator that yields the values of the provided iterator with duplicates removed.\n *\n * @example\n * ```typescript\n * import { unique } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5];\n * console.log([...unique(iterable)]);\n * // Output: [1, 2, 3, 4, 5]\n * ```\n */\nexport function unique<const ElementType>(iterable: IterableResolvable<ElementType>): IterableIterator<ElementType> {\n\t// The union of a single iterator is the iterator itself, with duplicates removed.\n\treturn union(iterable);\n}\n"]}
1
+ {"version":3,"sources":["../../../src/lib/unique.ts"],"names":[],"mappings":";;;AAkBO,SAAS,OAA0B,QAAA,EAA0E;AAEnH,EAAA,OAAO,MAAM,QAAQ,CAAA;AACtB;AAHgB,MAAA,CAAA,MAAA,EAAA,QAAA,CAAA","file":"unique.mjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport { union } from './union';\n\n/**\n * Creates an iterable with the unique elements of the input iterable. Under the hood, it calls {@linkcode union} with the iterable itself.\n *\n * @param iterable An iterator to remove duplicates from.\n * @returns An iterator that yields the values of the provided iterator with duplicates removed.\n *\n * @example\n * ```typescript\n * import { unique } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5];\n * console.log([...unique(iterable)]);\n * // Output: [1, 2, 3, 4, 5]\n * ```\n */\nexport function unique<const ElementType>(iterable: IterableResolvable<ElementType>): IterableIterator<ElementType> {\n\t// The union of a single iterator is the iterator itself, with duplicates removed.\n\treturn union(iterable);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/unzip.ts"],"names":[],"mappings":";;;AA2BO,SAAS,MAAgD,QAAuE,EAAA;AACtI,EAAM,MAAA,gBAAA,GAAmB,mBAAmB,QAAQ,CAAA;AACpD,EAAM,MAAA,WAAA,GAAc,iBAAiB,IAAK,EAAA;AAC1C,EAAA,IAAI,YAAY,IAAM,EAAA;AACrB,IAAM,MAAA,IAAI,MAAM,gCAAgC,CAAA;AAAA;AAGjD,EAAA,IAAI,CAAC,KAAA,CAAM,OAAQ,CAAA,WAAA,CAAY,KAAK,CAAG,EAAA;AACtC,IAAM,MAAA,IAAI,MAAM,uDAAuD,CAAA;AAAA;AAGxE,EAAM,MAAA,IAAA,GAAO,YAAY,KAAM,CAAA,MAAA;AAC/B,EAAA,MAAM,UAAU,EAAC;AACjB,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,IAAA,EAAM,CAAK,EAAA,EAAA,OAAA,CAAQ,IAAK,CAAA,CAAC,WAAY,CAAA,KAAA,CAAM,CAAC,CAAC,CAAC,CAAA;AAClE,EAAA,KAAA,MAAW,WAAW,gBAAkB,EAAA;AACvC,IAAA,IAAI,CAAC,KAAA,CAAM,OAAQ,CAAA,OAAO,CAAG,EAAA;AAC5B,MAAM,MAAA,IAAI,MAAM,uDAAuD,CAAA;AAAA;AAGxE,IAAI,IAAA,OAAA,CAAQ,WAAW,IAAM,EAAA;AAC5B,MAAM,MAAA,IAAI,MAAM,gEAAgE,CAAA;AAAA;AAGjF,IAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,IAAA,EAAM,CAAK,EAAA,EAAA;AAC9B,MAAA,OAAA,CAAQ,CAAC,CAAA,CAAE,IAAK,CAAA,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA;AAC3B;AAGD,EAAO,OAAA,OAAA;AACR;AA7BgB,MAAA,CAAA,KAAA,EAAA,OAAA,CAAA","file":"unzip.mjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Creates an array for each element of the input iterable, transposing the input iterable. The opposite of {@linkcode zip}.\n *\n * @param iterable An iterable to unzip.\n * @returns An array of iterables that yield the values of the original iterable.\n *\n * @example\n * ```typescript\n * import { unzip } from '@sapphire/iterator-utilities';\n *\n * const iterable = [[1, 'a'], [2, 'b'], [3, 'c']];\n * const [numbers, letters] = unzip(iterable);\n *\n * console.log(numbers);\n * // Output: [1, 2, 3]\n *\n * console.log(letters);\n * // Output: ['a', 'b', 'c']\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterable.\n */\nexport function unzip<const ElementType extends readonly any[]>(iterable: IterableResolvable<ElementType>): UnzipIterable<ElementType> {\n\tconst resolvedIterable = toIterableIterator(iterable);\n\tconst firstResult = resolvedIterable.next();\n\tif (firstResult.done) {\n\t\tthrow new Error('Cannot unzip an empty iterable');\n\t}\n\n\tif (!Array.isArray(firstResult.value)) {\n\t\tthrow new Error('Cannot unzip an iterable that does not yield an array');\n\t}\n\n\tconst size = firstResult.value.length;\n\tconst results = [] as ElementType[][];\n\tfor (let i = 0; i < size; i++) results.push([firstResult.value[i]]);\n\tfor (const entries of resolvedIterable) {\n\t\tif (!Array.isArray(entries)) {\n\t\t\tthrow new Error('Cannot unzip an iterable that does not yield an array');\n\t\t}\n\n\t\tif (entries.length !== size) {\n\t\t\tthrow new Error('Cannot unzip an iterable that yields arrays of different sizes');\n\t\t}\n\n\t\tfor (let i = 0; i < size; i++) {\n\t\t\tresults[i].push(entries[i]);\n\t\t}\n\t}\n\n\treturn results as UnzipIterable<ElementType>;\n}\n\nexport type UnzipIterable<ElementType extends readonly any[]> = {\n\t-readonly [P in keyof ElementType]: ElementType[P][];\n};\n"]}
1
+ {"version":3,"sources":["../../../src/lib/unzip.ts"],"names":[],"mappings":";;;AA2BO,SAAS,MAAgD,QAAA,EAAuE;AACtI,EAAA,MAAM,gBAAA,GAAmB,mBAAmB,QAAQ,CAAA;AACpD,EAAA,MAAM,WAAA,GAAc,iBAAiB,IAAA,EAAK;AAC1C,EAAA,IAAI,YAAY,IAAA,EAAM;AACrB,IAAA,MAAM,IAAI,MAAM,gCAAgC,CAAA;AAAA,EACjD;AAEA,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,WAAA,CAAY,KAAK,CAAA,EAAG;AACtC,IAAA,MAAM,IAAI,MAAM,uDAAuD,CAAA;AAAA,EACxE;AAEA,EAAA,MAAM,IAAA,GAAO,YAAY,KAAA,CAAM,MAAA;AAC/B,EAAA,MAAM,UAAU,EAAC;AACjB,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,EAAM,CAAA,EAAA,EAAK,OAAA,CAAQ,IAAA,CAAK,CAAC,WAAA,CAAY,KAAA,CAAM,CAAC,CAAC,CAAC,CAAA;AAClE,EAAA,KAAA,MAAW,WAAW,gBAAA,EAAkB;AACvC,IAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,EAAG;AAC5B,MAAA,MAAM,IAAI,MAAM,uDAAuD,CAAA;AAAA,IACxE;AAEA,IAAA,IAAI,OAAA,CAAQ,WAAW,IAAA,EAAM;AAC5B,MAAA,MAAM,IAAI,MAAM,gEAAgE,CAAA;AAAA,IACjF;AAEA,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,EAAM,CAAA,EAAA,EAAK;AAC9B,MAAA,OAAA,CAAQ,CAAC,CAAA,CAAE,IAAA,CAAK,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,IAC3B;AAAA,EACD;AAEA,EAAA,OAAO,OAAA;AACR;AA7BgB,MAAA,CAAA,KAAA,EAAA,OAAA,CAAA","file":"unzip.mjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Creates an array for each element of the input iterable, transposing the input iterable. The opposite of {@linkcode zip}.\n *\n * @param iterable An iterable to unzip.\n * @returns An array of iterables that yield the values of the original iterable.\n *\n * @example\n * ```typescript\n * import { unzip } from '@sapphire/iterator-utilities';\n *\n * const iterable = [[1, 'a'], [2, 'b'], [3, 'c']];\n * const [numbers, letters] = unzip(iterable);\n *\n * console.log(numbers);\n * // Output: [1, 2, 3]\n *\n * console.log(letters);\n * // Output: ['a', 'b', 'c']\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterable.\n */\nexport function unzip<const ElementType extends readonly any[]>(iterable: IterableResolvable<ElementType>): UnzipIterable<ElementType> {\n\tconst resolvedIterable = toIterableIterator(iterable);\n\tconst firstResult = resolvedIterable.next();\n\tif (firstResult.done) {\n\t\tthrow new Error('Cannot unzip an empty iterable');\n\t}\n\n\tif (!Array.isArray(firstResult.value)) {\n\t\tthrow new Error('Cannot unzip an iterable that does not yield an array');\n\t}\n\n\tconst size = firstResult.value.length;\n\tconst results = [] as ElementType[][];\n\tfor (let i = 0; i < size; i++) results.push([firstResult.value[i]]);\n\tfor (const entries of resolvedIterable) {\n\t\tif (!Array.isArray(entries)) {\n\t\t\tthrow new Error('Cannot unzip an iterable that does not yield an array');\n\t\t}\n\n\t\tif (entries.length !== size) {\n\t\t\tthrow new Error('Cannot unzip an iterable that yields arrays of different sizes');\n\t\t}\n\n\t\tfor (let i = 0; i < size; i++) {\n\t\t\tresults[i].push(entries[i]);\n\t\t}\n\t}\n\n\treturn results as UnzipIterable<ElementType>;\n}\n\nexport type UnzipIterable<ElementType extends readonly any[]> = {\n\t-readonly [P in keyof ElementType]: ElementType[P][];\n};\n"]}
@@ -11,7 +11,7 @@ function windows(iterable, count) {
11
11
  return makeIterableIterator(() => {
12
12
  while (buffer.length !== count) {
13
13
  const result = resolvedIterable.next();
14
- if (result.done) return { done: true, value: undefined };
14
+ if (result.done) return { done: true, value: void 0 };
15
15
  buffer.push(result.value);
16
16
  }
17
17
  const value = buffer.slice();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/windows.ts"],"names":[],"mappings":";;;;;;AAqBO,SAAS,OAAA,CAA2B,UAA2C,KAAgD,EAAA;AACrI,EAAA,KAAA,GAAQ,cAAe,CAAA,0BAAA,CAA2B,KAAK,CAAA,EAAG,KAAK,CAAA;AAE/D,EAAA,MAAM,SAAS,EAAC;AAChB,EAAM,MAAA,gBAAA,GAAmB,KAAK,QAAQ,CAAA;AACtC,EAAA,OAAO,qBAAoC,MAAM;AAChD,IAAO,OAAA,MAAA,CAAO,WAAW,KAAO,EAAA;AAC/B,MAAM,MAAA,MAAA,GAAS,iBAAiB,IAAK,EAAA;AACrC,MAAA,IAAI,OAAO,IAAM,EAAA,OAAO,EAAE,IAAM,EAAA,IAAA,EAAM,OAAO,SAAU,EAAA;AAEvD,MAAO,MAAA,CAAA,IAAA,CAAK,OAAO,KAAK,CAAA;AAAA;AAGzB,IAAM,MAAA,KAAA,GAAQ,OAAO,KAAM,EAAA;AAC3B,IAAA,MAAA,CAAO,KAAM,EAAA;AACb,IAAO,OAAA,EAAE,IAAM,EAAA,KAAA,EAAO,KAAM,EAAA;AAAA,GAC5B,CAAA;AACF;AAjBgB,MAAA,CAAA,OAAA,EAAA,SAAA,CAAA","file":"windows.mjs","sourcesContent":["import { from, type IterableResolvable } from './from';\nimport { assertPositive } from './shared/_assertPositive';\nimport { makeIterableIterator } from './shared/_makeIterableIterator';\nimport { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow';\n\n/**\n * Creates an iterable with arrays of `count` elements representing a sliding window.\n *\n * @param iterable The iterator to take values from.\n * @param count The maximum number of values in the window.\n * @returns An iterator that yields windows with `count` values from the provided iterator.\n *\n * @example\n * ```typescript\n * import { windows } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...windows(iterable, 2)]);\n * // Output: [[1, 2], [2, 3], [3, 4], [4, 5]]\n * ```\n */\nexport function windows<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType[]> {\n\tcount = assertPositive(toIntegerOrInfinityOrThrow(count), count);\n\n\tconst buffer = [] as ElementType[];\n\tconst resolvedIterable = from(iterable);\n\treturn makeIterableIterator<ElementType[]>(() => {\n\t\twhile (buffer.length !== count) {\n\t\t\tconst result = resolvedIterable.next();\n\t\t\tif (result.done) return { done: true, value: undefined };\n\n\t\t\tbuffer.push(result.value);\n\t\t}\n\n\t\tconst value = buffer.slice();\n\t\tbuffer.shift();\n\t\treturn { done: false, value };\n\t});\n}\n"]}
1
+ {"version":3,"sources":["../../../src/lib/windows.ts"],"names":[],"mappings":";;;;;;AAqBO,SAAS,OAAA,CAA2B,UAA2C,KAAA,EAAgD;AACrI,EAAA,KAAA,GAAQ,cAAA,CAAe,0BAAA,CAA2B,KAAK,CAAA,EAAG,KAAK,CAAA;AAE/D,EAAA,MAAM,SAAS,EAAC;AAChB,EAAA,MAAM,gBAAA,GAAmB,KAAK,QAAQ,CAAA;AACtC,EAAA,OAAO,qBAAoC,MAAM;AAChD,IAAA,OAAO,MAAA,CAAO,WAAW,KAAA,EAAO;AAC/B,MAAA,MAAM,MAAA,GAAS,iBAAiB,IAAA,EAAK;AACrC,MAAA,IAAI,OAAO,IAAA,EAAM,OAAO,EAAE,IAAA,EAAM,IAAA,EAAM,OAAO,MAAA,EAAU;AAEvD,MAAA,MAAA,CAAO,IAAA,CAAK,OAAO,KAAK,CAAA;AAAA,IACzB;AAEA,IAAA,MAAM,KAAA,GAAQ,OAAO,KAAA,EAAM;AAC3B,IAAA,MAAA,CAAO,KAAA,EAAM;AACb,IAAA,OAAO,EAAE,IAAA,EAAM,KAAA,EAAO,KAAA,EAAM;AAAA,EAC7B,CAAC,CAAA;AACF;AAjBgB,MAAA,CAAA,OAAA,EAAA,SAAA,CAAA","file":"windows.mjs","sourcesContent":["import { from, type IterableResolvable } from './from';\nimport { assertPositive } from './shared/_assertPositive';\nimport { makeIterableIterator } from './shared/_makeIterableIterator';\nimport { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow';\n\n/**\n * Creates an iterable with arrays of `count` elements representing a sliding window.\n *\n * @param iterable The iterator to take values from.\n * @param count The maximum number of values in the window.\n * @returns An iterator that yields windows with `count` values from the provided iterator.\n *\n * @example\n * ```typescript\n * import { windows } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...windows(iterable, 2)]);\n * // Output: [[1, 2], [2, 3], [3, 4], [4, 5]]\n * ```\n */\nexport function windows<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType[]> {\n\tcount = assertPositive(toIntegerOrInfinityOrThrow(count), count);\n\n\tconst buffer = [] as ElementType[];\n\tconst resolvedIterable = from(iterable);\n\treturn makeIterableIterator<ElementType[]>(() => {\n\t\twhile (buffer.length !== count) {\n\t\t\tconst result = resolvedIterable.next();\n\t\t\tif (result.done) return { done: true, value: undefined };\n\n\t\t\tbuffer.push(result.value);\n\t\t}\n\n\t\tconst value = buffer.slice();\n\t\tbuffer.shift();\n\t\treturn { done: false, value };\n\t});\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/zip.ts"],"names":[],"mappings":";;;AAwBO,UAAU,OAAmE,SAA+C,EAAA;AAClI,EAAA,MAAM,oBAAoB,SAAU,CAAA,GAAA,CAAI,CAAC,QAAa,KAAA,IAAA,CAAK,QAAQ,CAAC,CAAA;AACpE,EAAA,OAAO,IAAM,EAAA;AACZ,IAAA,MAAM,UAAU,EAAC;AACjB,IAAA,KAAA,MAAW,oBAAoB,iBAAmB,EAAA;AACjD,MAAM,MAAA,MAAA,GAAS,iBAAiB,IAAK,EAAA;AACrC,MAAA,IAAI,OAAO,IAAM,EAAA;AAEjB,MAAQ,OAAA,CAAA,IAAA,CAAK,OAAO,KAAK,CAAA;AAAA;AAG1B,IAAM,MAAA,OAAA;AAAA;AAER;AAbiB,MAAA,CAAA,GAAA,EAAA,KAAA,CAAA","file":"zip.mjs","sourcesContent":["import { from, type IterableResolvable } from './from';\n\n/**\n * Creates an iterable with the elements of the input iterables zipped together. The opposite of {@linkcode unzip}.\n *\n * @param iterables The iterables to zip together.\n * @returns A new iterable that yields the next value of each iterable in the list.\n *\n * @example\n * ```typescript\n * import { zip } from '@sapphire/iterator-utilities';\n *\n * const iterable1 = [1, 2, 3];\n * const iterable2 = ['a', 'b', 'c'];\n * const iterable3 = [true, false, true];\n *\n * console.log(zip(iterable1, iterable2, iterable3));\n * // Output: [\n * // \t[1, 'a', true],\n * // \t[2, 'b', false],\n * // \t[3, 'c', true]\n * // ]\n * ```\n */\nexport function* zip<const Iterables extends readonly IterableResolvable<any>[]>(...iterables: Iterables): ZipIterators<Iterables> {\n\tconst resolvedIterables = iterables.map((iterable) => from(iterable));\n\twhile (true) {\n\t\tconst results = [] as any[];\n\t\tfor (const resolvedIterable of resolvedIterables) {\n\t\t\tconst result = resolvedIterable.next();\n\t\t\tif (result.done) return;\n\n\t\t\tresults.push(result.value);\n\t\t}\n\n\t\tyield results as any;\n\t}\n}\n\nexport type ZipIterators<Iterators extends readonly IterableResolvable<any>[]> = IterableIterator<{\n\t-readonly [P in keyof Iterators]: Iterators[P] extends IterableResolvable<infer T> ? T : never;\n}>;\n"]}
1
+ {"version":3,"sources":["../../../src/lib/zip.ts"],"names":[],"mappings":";;;AAwBO,UAAU,OAAmE,SAAA,EAA+C;AAClI,EAAA,MAAM,oBAAoB,SAAA,CAAU,GAAA,CAAI,CAAC,QAAA,KAAa,IAAA,CAAK,QAAQ,CAAC,CAAA;AACpE,EAAA,OAAO,IAAA,EAAM;AACZ,IAAA,MAAM,UAAU,EAAC;AACjB,IAAA,KAAA,MAAW,oBAAoB,iBAAA,EAAmB;AACjD,MAAA,MAAM,MAAA,GAAS,iBAAiB,IAAA,EAAK;AACrC,MAAA,IAAI,OAAO,IAAA,EAAM;AAEjB,MAAA,OAAA,CAAQ,IAAA,CAAK,OAAO,KAAK,CAAA;AAAA,IAC1B;AAEA,IAAA,MAAM,OAAA;AAAA,EACP;AACD;AAbiB,MAAA,CAAA,GAAA,EAAA,KAAA,CAAA","file":"zip.mjs","sourcesContent":["import { from, type IterableResolvable } from './from';\n\n/**\n * Creates an iterable with the elements of the input iterables zipped together. The opposite of {@linkcode unzip}.\n *\n * @param iterables The iterables to zip together.\n * @returns A new iterable that yields the next value of each iterable in the list.\n *\n * @example\n * ```typescript\n * import { zip } from '@sapphire/iterator-utilities';\n *\n * const iterable1 = [1, 2, 3];\n * const iterable2 = ['a', 'b', 'c'];\n * const iterable3 = [true, false, true];\n *\n * console.log(zip(iterable1, iterable2, iterable3));\n * // Output: [\n * // \t[1, 'a', true],\n * // \t[2, 'b', false],\n * // \t[3, 'c', true]\n * // ]\n * ```\n */\nexport function* zip<const Iterables extends readonly IterableResolvable<any>[]>(...iterables: Iterables): ZipIterators<Iterables> {\n\tconst resolvedIterables = iterables.map((iterable) => from(iterable));\n\twhile (true) {\n\t\tconst results = [] as any[];\n\t\tfor (const resolvedIterable of resolvedIterables) {\n\t\t\tconst result = resolvedIterable.next();\n\t\t\tif (result.done) return;\n\n\t\t\tresults.push(result.value);\n\t\t}\n\n\t\tyield results as any;\n\t}\n}\n\nexport type ZipIterators<Iterators extends readonly IterableResolvable<any>[]> = IterableIterator<{\n\t-readonly [P in keyof Iterators]: Iterators[P] extends IterableResolvable<infer T> ? T : never;\n}>;\n"]}
@@ -91,7 +91,7 @@ var SapphireIteratorUtilities = (function (exports) {
91
91
 
92
92
  // src/lib/empty.ts
93
93
  function empty() {
94
- return makeIterableIterator(() => ({ done: true, value: undefined }));
94
+ return makeIterableIterator(() => ({ done: true, value: void 0 }));
95
95
  }
96
96
  __name(empty, "empty");
97
97
 
@@ -251,7 +251,7 @@ var SapphireIteratorUtilities = (function (exports) {
251
251
 
252
252
  // src/lib/compact.ts
253
253
  function compact(iterable) {
254
- return filter(iterable, (value) => value !== null && value !== undefined);
254
+ return filter(iterable, (value) => value !== null && value !== void 0);
255
255
  }
256
256
  __name(compact, "compact");
257
257
 
@@ -382,7 +382,7 @@ var SapphireIteratorUtilities = (function (exports) {
382
382
  let i = 0;
383
383
  const resolvedIterable = from(iterable);
384
384
  return makeIterableIterator(
385
- () => i >= count2 ? { done: true, value: undefined } : (i++, resolvedIterable.next())
385
+ () => i >= count2 ? { done: true, value: void 0 } : (i++, resolvedIterable.next())
386
386
  );
387
387
  }
388
388
  __name(take, "take");
@@ -489,7 +489,7 @@ var SapphireIteratorUtilities = (function (exports) {
489
489
  const iterator = toIterableIterator(iterable);
490
490
  return makeIterableIterator(() => {
491
491
  if (ended) {
492
- return { done: true, value: undefined };
492
+ return { done: true, value: void 0 };
493
493
  }
494
494
  const result = iterator.next();
495
495
  if (result.done) {
@@ -563,7 +563,7 @@ var SapphireIteratorUtilities = (function (exports) {
563
563
  }
564
564
  const result = iterator.next();
565
565
  if (result.done) {
566
- return { done: true, value: undefined };
566
+ return { done: true, value: void 0 };
567
567
  }
568
568
  nextItem = result.value;
569
569
  nextItemTaken = true;
@@ -764,7 +764,7 @@ var SapphireIteratorUtilities = (function (exports) {
764
764
  next() {
765
765
  if (peeked) {
766
766
  const value = peeked;
767
- peeked = undefined;
767
+ peeked = void 0;
768
768
  return value;
769
769
  }
770
770
  return resolvedIterable.next();
@@ -802,7 +802,7 @@ var SapphireIteratorUtilities = (function (exports) {
802
802
  function* range(start, end, step) {
803
803
  start = toNumberOrThrow(start);
804
804
  end = toNumberOrThrow(end);
805
- if (step === undefined) {
805
+ if (step === void 0) {
806
806
  step = start < end ? 1 : -1;
807
807
  } else {
808
808
  step = toNumberOrThrow(step);
@@ -854,7 +854,7 @@ var SapphireIteratorUtilities = (function (exports) {
854
854
  count2 = assertNotNegative(toNumberOrThrow(count2), count2);
855
855
  let i = 0;
856
856
  return makeIterableIterator(
857
- () => i >= count2 ? { done: true, value: undefined } : (i++, { done: false, value })
857
+ () => i >= count2 ? { done: true, value: void 0 } : (i++, { done: false, value })
858
858
  );
859
859
  }
860
860
  __name(repeat, "repeat");
@@ -877,7 +877,7 @@ var SapphireIteratorUtilities = (function (exports) {
877
877
  let i = Math.max(0, array.length - count2);
878
878
  return makeIterableIterator(() => {
879
879
  if (i >= array.length) {
880
- return { done: true, value: undefined };
880
+ return { done: true, value: void 0 };
881
881
  }
882
882
  return { done: false, value: array[i++] };
883
883
  });
@@ -890,7 +890,7 @@ var SapphireIteratorUtilities = (function (exports) {
890
890
  if (start === Number.NEGATIVE_INFINITY) {
891
891
  start = 0;
892
892
  }
893
- if (end === undefined) {
893
+ if (end === void 0) {
894
894
  return start >= 0 ? drop(iterable, start) : takeLast(iterable, -start);
895
895
  }
896
896
  end = toIntegerOrInfinityOrThrow(end);
@@ -936,7 +936,7 @@ var SapphireIteratorUtilities = (function (exports) {
936
936
  return makeIterableIterator(() => {
937
937
  const result = iterator.next();
938
938
  if (result.done) {
939
- return { done: true, value: undefined };
939
+ return { done: true, value: void 0 };
940
940
  }
941
941
  for (let i = 0; i < step - 1; i++) {
942
942
  const result2 = iterator.next();
@@ -970,7 +970,7 @@ var SapphireIteratorUtilities = (function (exports) {
970
970
  if (indexes[i] >= entries.length) {
971
971
  const result = resolvedIterable.next();
972
972
  if (result.done) {
973
- return { done: true, value: undefined };
973
+ return { done: true, value: void 0 };
974
974
  }
975
975
  entries.push(result.value);
976
976
  }
@@ -1038,7 +1038,7 @@ var SapphireIteratorUtilities = (function (exports) {
1038
1038
  return makeIterableIterator(() => {
1039
1039
  while (buffer.length !== count2) {
1040
1040
  const result = resolvedIterable.next();
1041
- if (result.done) return { done: true, value: undefined };
1041
+ if (result.done) return { done: true, value: void 0 };
1042
1042
  buffer.push(result.value);
1043
1043
  }
1044
1044
  const value = buffer.slice();