@daiso-tech/core 0.1.4 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/_shared/utilities.js +19 -0
  3. package/dist/cjs/_shared/utilities.js.map +1 -0
  4. package/dist/cjs/collection/_shared.js +4 -2
  5. package/dist/cjs/collection/_shared.js.map +1 -1
  6. package/dist/cjs/collection/async-iterable-collection/_shared/_module.js +1 -1
  7. package/dist/cjs/collection/async-iterable-collection/_shared/_module.js.map +1 -1
  8. package/dist/cjs/collection/async-iterable-collection/_shared/async-chunk-iterable.js +8 -7
  9. package/dist/cjs/collection/async-iterable-collection/_shared/async-chunk-iterable.js.map +1 -1
  10. package/dist/cjs/collection/async-iterable-collection/_shared/{async-chunk-whilte-iterable.js → async-chunk-while-iterable.js} +14 -16
  11. package/dist/cjs/collection/async-iterable-collection/_shared/async-chunk-while-iterable.js.map +1 -0
  12. package/dist/cjs/collection/async-iterable-collection/_shared/async-collapse-iterable.js +1 -2
  13. package/dist/cjs/collection/async-iterable-collection/_shared/async-collapse-iterable.js.map +1 -1
  14. package/dist/cjs/collection/async-iterable-collection/_shared/async-count-by-iterable.js +3 -6
  15. package/dist/cjs/collection/async-iterable-collection/_shared/async-count-by-iterable.js.map +1 -1
  16. package/dist/cjs/collection/async-iterable-collection/_shared/async-cross-join-iterable.js +19 -18
  17. package/dist/cjs/collection/async-iterable-collection/_shared/async-cross-join-iterable.js.map +1 -1
  18. package/dist/cjs/collection/async-iterable-collection/_shared/async-entries-iterable.js +1 -8
  19. package/dist/cjs/collection/async-iterable-collection/_shared/async-entries-iterable.js.map +1 -1
  20. package/dist/cjs/collection/async-iterable-collection/_shared/async-filter-iterable.js +6 -9
  21. package/dist/cjs/collection/async-iterable-collection/_shared/async-filter-iterable.js.map +1 -1
  22. package/dist/cjs/collection/async-iterable-collection/_shared/async-flat-map-iterable.js +3 -6
  23. package/dist/cjs/collection/async-iterable-collection/_shared/async-flat-map-iterable.js.map +1 -1
  24. package/dist/cjs/collection/async-iterable-collection/_shared/async-group-by-iterable.js +12 -13
  25. package/dist/cjs/collection/async-iterable-collection/_shared/async-group-by-iterable.js.map +1 -1
  26. package/dist/cjs/collection/async-iterable-collection/_shared/async-insert-after-iterable.js +5 -12
  27. package/dist/cjs/collection/async-iterable-collection/_shared/async-insert-after-iterable.js.map +1 -1
  28. package/dist/cjs/collection/async-iterable-collection/_shared/async-insert-before-iterable.js +5 -12
  29. package/dist/cjs/collection/async-iterable-collection/_shared/async-insert-before-iterable.js.map +1 -1
  30. package/dist/cjs/collection/async-iterable-collection/_shared/async-map-iterable.js +3 -6
  31. package/dist/cjs/collection/async-iterable-collection/_shared/async-map-iterable.js.map +1 -1
  32. package/dist/cjs/collection/async-iterable-collection/_shared/async-merge-iterable.js +1 -2
  33. package/dist/cjs/collection/async-iterable-collection/_shared/async-merge-iterable.js.map +1 -1
  34. package/dist/cjs/collection/async-iterable-collection/_shared/async-pad-end-iterable.js +1 -4
  35. package/dist/cjs/collection/async-iterable-collection/_shared/async-pad-end-iterable.js.map +1 -1
  36. package/dist/cjs/collection/async-iterable-collection/_shared/async-pad-start-iterable.js +1 -4
  37. package/dist/cjs/collection/async-iterable-collection/_shared/async-pad-start-iterable.js.map +1 -1
  38. package/dist/cjs/collection/async-iterable-collection/_shared/async-partion-iterable.js +12 -19
  39. package/dist/cjs/collection/async-iterable-collection/_shared/async-partion-iterable.js.map +1 -1
  40. package/dist/cjs/collection/async-iterable-collection/_shared/async-repeat-iterable.js +2 -3
  41. package/dist/cjs/collection/async-iterable-collection/_shared/async-repeat-iterable.js.map +1 -1
  42. package/dist/cjs/collection/async-iterable-collection/_shared/async-reverse-iterable.js +3 -10
  43. package/dist/cjs/collection/async-iterable-collection/_shared/async-reverse-iterable.js.map +1 -1
  44. package/dist/cjs/collection/async-iterable-collection/_shared/async-shuffle-iterable.js +4 -2
  45. package/dist/cjs/collection/async-iterable-collection/_shared/async-shuffle-iterable.js.map +1 -1
  46. package/dist/cjs/collection/async-iterable-collection/_shared/async-skip-iterable.js +4 -9
  47. package/dist/cjs/collection/async-iterable-collection/_shared/async-skip-iterable.js.map +1 -1
  48. package/dist/cjs/collection/async-iterable-collection/_shared/async-skip-until-iterable.js +5 -12
  49. package/dist/cjs/collection/async-iterable-collection/_shared/async-skip-until-iterable.js.map +1 -1
  50. package/dist/cjs/collection/async-iterable-collection/_shared/async-slice-iterable.js +2 -4
  51. package/dist/cjs/collection/async-iterable-collection/_shared/async-slice-iterable.js.map +1 -1
  52. package/dist/cjs/collection/async-iterable-collection/_shared/async-sliding-iterable.js +4 -11
  53. package/dist/cjs/collection/async-iterable-collection/_shared/async-sliding-iterable.js.map +1 -1
  54. package/dist/cjs/collection/async-iterable-collection/_shared/async-split-iterable.js +7 -9
  55. package/dist/cjs/collection/async-iterable-collection/_shared/async-split-iterable.js.map +1 -1
  56. package/dist/cjs/collection/async-iterable-collection/_shared/async-take-iterable.js +4 -9
  57. package/dist/cjs/collection/async-iterable-collection/_shared/async-take-iterable.js.map +1 -1
  58. package/dist/cjs/collection/async-iterable-collection/_shared/async-take-until-iterable.js +6 -9
  59. package/dist/cjs/collection/async-iterable-collection/_shared/async-take-until-iterable.js.map +1 -1
  60. package/dist/cjs/collection/async-iterable-collection/_shared/async-tap-iterable.js +1 -2
  61. package/dist/cjs/collection/async-iterable-collection/_shared/async-tap-iterable.js.map +1 -1
  62. package/dist/cjs/collection/async-iterable-collection/_shared/async-unique-iterable.js +2 -5
  63. package/dist/cjs/collection/async-iterable-collection/_shared/async-unique-iterable.js.map +1 -1
  64. package/dist/cjs/collection/async-iterable-collection/_shared/async-update-iterable.js +6 -9
  65. package/dist/cjs/collection/async-iterable-collection/_shared/async-update-iterable.js.map +1 -1
  66. package/dist/cjs/collection/async-iterable-collection/_shared/async-when-iterable.js +1 -2
  67. package/dist/cjs/collection/async-iterable-collection/_shared/async-when-iterable.js.map +1 -1
  68. package/dist/cjs/collection/async-iterable-collection/_shared/async-zip-iterable.js.map +1 -1
  69. package/dist/cjs/collection/async-iterable-collection/async-iterable-collection.js +173 -228
  70. package/dist/cjs/collection/async-iterable-collection/async-iterable-collection.js.map +1 -1
  71. package/dist/cjs/collection/iterable-collection/_shared/_module.js +1 -1
  72. package/dist/cjs/collection/iterable-collection/_shared/_module.js.map +1 -1
  73. package/dist/cjs/collection/iterable-collection/_shared/chunk-iterable.js +8 -7
  74. package/dist/cjs/collection/iterable-collection/_shared/chunk-iterable.js.map +1 -1
  75. package/dist/cjs/collection/iterable-collection/_shared/{chunk-whilte-iterable.js → chunk-while-iterable.js} +12 -14
  76. package/dist/cjs/collection/iterable-collection/_shared/chunk-while-iterable.js.map +1 -0
  77. package/dist/cjs/collection/iterable-collection/_shared/collapse-iterable.js +1 -2
  78. package/dist/cjs/collection/iterable-collection/_shared/collapse-iterable.js.map +1 -1
  79. package/dist/cjs/collection/iterable-collection/_shared/count-by-iterable.js +3 -6
  80. package/dist/cjs/collection/iterable-collection/_shared/count-by-iterable.js.map +1 -1
  81. package/dist/cjs/collection/iterable-collection/_shared/cross-join-iterable.js +26 -20
  82. package/dist/cjs/collection/iterable-collection/_shared/cross-join-iterable.js.map +1 -1
  83. package/dist/cjs/collection/iterable-collection/_shared/entries-iterable.js +2 -9
  84. package/dist/cjs/collection/iterable-collection/_shared/entries-iterable.js.map +1 -1
  85. package/dist/cjs/collection/iterable-collection/_shared/filter-iterable.js +3 -6
  86. package/dist/cjs/collection/iterable-collection/_shared/filter-iterable.js.map +1 -1
  87. package/dist/cjs/collection/iterable-collection/_shared/flat-map-iterable.js +3 -6
  88. package/dist/cjs/collection/iterable-collection/_shared/flat-map-iterable.js.map +1 -1
  89. package/dist/cjs/collection/iterable-collection/_shared/group-by-iterable.js +10 -12
  90. package/dist/cjs/collection/iterable-collection/_shared/group-by-iterable.js.map +1 -1
  91. package/dist/cjs/collection/iterable-collection/_shared/insert-after-iterable.js +3 -6
  92. package/dist/cjs/collection/iterable-collection/_shared/insert-after-iterable.js.map +1 -1
  93. package/dist/cjs/collection/iterable-collection/_shared/insert-before-iterable.js +3 -6
  94. package/dist/cjs/collection/iterable-collection/_shared/insert-before-iterable.js.map +1 -1
  95. package/dist/cjs/collection/iterable-collection/_shared/map-iterable.js +3 -6
  96. package/dist/cjs/collection/iterable-collection/_shared/map-iterable.js.map +1 -1
  97. package/dist/cjs/collection/iterable-collection/_shared/merge-iterable.js +1 -2
  98. package/dist/cjs/collection/iterable-collection/_shared/merge-iterable.js.map +1 -1
  99. package/dist/cjs/collection/iterable-collection/_shared/pad-end-iterable.js +2 -6
  100. package/dist/cjs/collection/iterable-collection/_shared/pad-end-iterable.js.map +1 -1
  101. package/dist/cjs/collection/iterable-collection/_shared/pad-start-iterable.js +2 -6
  102. package/dist/cjs/collection/iterable-collection/_shared/pad-start-iterable.js.map +1 -1
  103. package/dist/cjs/collection/iterable-collection/_shared/partion-iterable.js +9 -11
  104. package/dist/cjs/collection/iterable-collection/_shared/partion-iterable.js.map +1 -1
  105. package/dist/cjs/collection/iterable-collection/_shared/repeat-iterable.js +2 -3
  106. package/dist/cjs/collection/iterable-collection/_shared/repeat-iterable.js.map +1 -1
  107. package/dist/cjs/collection/iterable-collection/_shared/reverse-iterable.js +4 -12
  108. package/dist/cjs/collection/iterable-collection/_shared/reverse-iterable.js.map +1 -1
  109. package/dist/cjs/collection/iterable-collection/_shared/shuffle-iterable.js +5 -4
  110. package/dist/cjs/collection/iterable-collection/_shared/shuffle-iterable.js.map +1 -1
  111. package/dist/cjs/collection/iterable-collection/_shared/skip-iterable.js +4 -9
  112. package/dist/cjs/collection/iterable-collection/_shared/skip-iterable.js.map +1 -1
  113. package/dist/cjs/collection/iterable-collection/_shared/skip-until-iterable.js +3 -6
  114. package/dist/cjs/collection/iterable-collection/_shared/skip-until-iterable.js.map +1 -1
  115. package/dist/cjs/collection/iterable-collection/_shared/slice-iterable.js +3 -6
  116. package/dist/cjs/collection/iterable-collection/_shared/slice-iterable.js.map +1 -1
  117. package/dist/cjs/collection/iterable-collection/_shared/sliding-iterable.js +4 -11
  118. package/dist/cjs/collection/iterable-collection/_shared/sliding-iterable.js.map +1 -1
  119. package/dist/cjs/collection/iterable-collection/_shared/sort-iterable.js +1 -2
  120. package/dist/cjs/collection/iterable-collection/_shared/sort-iterable.js.map +1 -1
  121. package/dist/cjs/collection/iterable-collection/_shared/split-iterable.js +7 -9
  122. package/dist/cjs/collection/iterable-collection/_shared/split-iterable.js.map +1 -1
  123. package/dist/cjs/collection/iterable-collection/_shared/take-iterable.js +4 -9
  124. package/dist/cjs/collection/iterable-collection/_shared/take-iterable.js.map +1 -1
  125. package/dist/cjs/collection/iterable-collection/_shared/take-until-iterable.js +3 -6
  126. package/dist/cjs/collection/iterable-collection/_shared/take-until-iterable.js.map +1 -1
  127. package/dist/cjs/collection/iterable-collection/_shared/tap-iterable.js +1 -2
  128. package/dist/cjs/collection/iterable-collection/_shared/tap-iterable.js.map +1 -1
  129. package/dist/cjs/collection/iterable-collection/_shared/unique-iterable.js +3 -6
  130. package/dist/cjs/collection/iterable-collection/_shared/unique-iterable.js.map +1 -1
  131. package/dist/cjs/collection/iterable-collection/_shared/update-iterable.js +3 -6
  132. package/dist/cjs/collection/iterable-collection/_shared/update-iterable.js.map +1 -1
  133. package/dist/cjs/collection/iterable-collection/_shared/when-iterable.js +1 -2
  134. package/dist/cjs/collection/iterable-collection/_shared/when-iterable.js.map +1 -1
  135. package/dist/cjs/collection/iterable-collection/_shared/zip-iterable.js +1 -2
  136. package/dist/cjs/collection/iterable-collection/_shared/zip-iterable.js.map +1 -1
  137. package/dist/cjs/collection/iterable-collection/iterable-collection.js +161 -251
  138. package/dist/cjs/collection/iterable-collection/iterable-collection.js.map +1 -1
  139. package/dist/cjs/collection/list-collection/list-collection.js +213 -299
  140. package/dist/cjs/collection/list-collection/list-collection.js.map +1 -1
  141. package/dist/cjs/contracts/collection/_shared.js +17 -10
  142. package/dist/cjs/contracts/collection/_shared.js.map +1 -1
  143. package/dist/esm/_shared/utilities.js +15 -0
  144. package/dist/esm/_shared/utilities.js.map +1 -0
  145. package/dist/esm/collection/_shared.js +4 -2
  146. package/dist/esm/collection/_shared.js.map +1 -1
  147. package/dist/esm/collection/async-iterable-collection/_shared/_module.js +1 -1
  148. package/dist/esm/collection/async-iterable-collection/_shared/_module.js.map +1 -1
  149. package/dist/esm/collection/async-iterable-collection/_shared/async-chunk-iterable.js +8 -7
  150. package/dist/esm/collection/async-iterable-collection/_shared/async-chunk-iterable.js.map +1 -1
  151. package/dist/esm/collection/async-iterable-collection/_shared/async-chunk-while-iterable.js +37 -0
  152. package/dist/esm/collection/async-iterable-collection/_shared/async-chunk-while-iterable.js.map +1 -0
  153. package/dist/esm/collection/async-iterable-collection/_shared/async-collapse-iterable.js +1 -2
  154. package/dist/esm/collection/async-iterable-collection/_shared/async-collapse-iterable.js.map +1 -1
  155. package/dist/esm/collection/async-iterable-collection/_shared/async-count-by-iterable.js +3 -6
  156. package/dist/esm/collection/async-iterable-collection/_shared/async-count-by-iterable.js.map +1 -1
  157. package/dist/esm/collection/async-iterable-collection/_shared/async-cross-join-iterable.js +19 -18
  158. package/dist/esm/collection/async-iterable-collection/_shared/async-cross-join-iterable.js.map +1 -1
  159. package/dist/esm/collection/async-iterable-collection/_shared/async-entries-iterable.js +1 -8
  160. package/dist/esm/collection/async-iterable-collection/_shared/async-entries-iterable.js.map +1 -1
  161. package/dist/esm/collection/async-iterable-collection/_shared/async-filter-iterable.js +6 -9
  162. package/dist/esm/collection/async-iterable-collection/_shared/async-filter-iterable.js.map +1 -1
  163. package/dist/esm/collection/async-iterable-collection/_shared/async-flat-map-iterable.js +3 -6
  164. package/dist/esm/collection/async-iterable-collection/_shared/async-flat-map-iterable.js.map +1 -1
  165. package/dist/esm/collection/async-iterable-collection/_shared/async-group-by-iterable.js +12 -13
  166. package/dist/esm/collection/async-iterable-collection/_shared/async-group-by-iterable.js.map +1 -1
  167. package/dist/esm/collection/async-iterable-collection/_shared/async-insert-after-iterable.js +6 -13
  168. package/dist/esm/collection/async-iterable-collection/_shared/async-insert-after-iterable.js.map +1 -1
  169. package/dist/esm/collection/async-iterable-collection/_shared/async-insert-before-iterable.js +6 -13
  170. package/dist/esm/collection/async-iterable-collection/_shared/async-insert-before-iterable.js.map +1 -1
  171. package/dist/esm/collection/async-iterable-collection/_shared/async-map-iterable.js +3 -6
  172. package/dist/esm/collection/async-iterable-collection/_shared/async-map-iterable.js.map +1 -1
  173. package/dist/esm/collection/async-iterable-collection/_shared/async-merge-iterable.js +1 -2
  174. package/dist/esm/collection/async-iterable-collection/_shared/async-merge-iterable.js.map +1 -1
  175. package/dist/esm/collection/async-iterable-collection/_shared/async-pad-end-iterable.js +1 -4
  176. package/dist/esm/collection/async-iterable-collection/_shared/async-pad-end-iterable.js.map +1 -1
  177. package/dist/esm/collection/async-iterable-collection/_shared/async-pad-start-iterable.js +1 -4
  178. package/dist/esm/collection/async-iterable-collection/_shared/async-pad-start-iterable.js.map +1 -1
  179. package/dist/esm/collection/async-iterable-collection/_shared/async-partion-iterable.js +13 -20
  180. package/dist/esm/collection/async-iterable-collection/_shared/async-partion-iterable.js.map +1 -1
  181. package/dist/esm/collection/async-iterable-collection/_shared/async-repeat-iterable.js +2 -3
  182. package/dist/esm/collection/async-iterable-collection/_shared/async-repeat-iterable.js.map +1 -1
  183. package/dist/esm/collection/async-iterable-collection/_shared/async-reverse-iterable.js +3 -10
  184. package/dist/esm/collection/async-iterable-collection/_shared/async-reverse-iterable.js.map +1 -1
  185. package/dist/esm/collection/async-iterable-collection/_shared/async-shuffle-iterable.js +4 -2
  186. package/dist/esm/collection/async-iterable-collection/_shared/async-shuffle-iterable.js.map +1 -1
  187. package/dist/esm/collection/async-iterable-collection/_shared/async-skip-iterable.js +4 -9
  188. package/dist/esm/collection/async-iterable-collection/_shared/async-skip-iterable.js.map +1 -1
  189. package/dist/esm/collection/async-iterable-collection/_shared/async-skip-until-iterable.js +6 -13
  190. package/dist/esm/collection/async-iterable-collection/_shared/async-skip-until-iterable.js.map +1 -1
  191. package/dist/esm/collection/async-iterable-collection/_shared/async-slice-iterable.js +2 -4
  192. package/dist/esm/collection/async-iterable-collection/_shared/async-slice-iterable.js.map +1 -1
  193. package/dist/esm/collection/async-iterable-collection/_shared/async-sliding-iterable.js +4 -11
  194. package/dist/esm/collection/async-iterable-collection/_shared/async-sliding-iterable.js.map +1 -1
  195. package/dist/esm/collection/async-iterable-collection/_shared/async-split-iterable.js +7 -9
  196. package/dist/esm/collection/async-iterable-collection/_shared/async-split-iterable.js.map +1 -1
  197. package/dist/esm/collection/async-iterable-collection/_shared/async-take-iterable.js +4 -9
  198. package/dist/esm/collection/async-iterable-collection/_shared/async-take-iterable.js.map +1 -1
  199. package/dist/esm/collection/async-iterable-collection/_shared/async-take-until-iterable.js +6 -9
  200. package/dist/esm/collection/async-iterable-collection/_shared/async-take-until-iterable.js.map +1 -1
  201. package/dist/esm/collection/async-iterable-collection/_shared/async-tap-iterable.js +1 -2
  202. package/dist/esm/collection/async-iterable-collection/_shared/async-tap-iterable.js.map +1 -1
  203. package/dist/esm/collection/async-iterable-collection/_shared/async-unique-iterable.js +2 -5
  204. package/dist/esm/collection/async-iterable-collection/_shared/async-unique-iterable.js.map +1 -1
  205. package/dist/esm/collection/async-iterable-collection/_shared/async-update-iterable.js +6 -9
  206. package/dist/esm/collection/async-iterable-collection/_shared/async-update-iterable.js.map +1 -1
  207. package/dist/esm/collection/async-iterable-collection/_shared/async-when-iterable.js +1 -2
  208. package/dist/esm/collection/async-iterable-collection/_shared/async-when-iterable.js.map +1 -1
  209. package/dist/esm/collection/async-iterable-collection/_shared/async-zip-iterable.js.map +1 -1
  210. package/dist/esm/collection/async-iterable-collection/async-iterable-collection.js +174 -229
  211. package/dist/esm/collection/async-iterable-collection/async-iterable-collection.js.map +1 -1
  212. package/dist/esm/collection/iterable-collection/_shared/_module.js +1 -1
  213. package/dist/esm/collection/iterable-collection/_shared/_module.js.map +1 -1
  214. package/dist/esm/collection/iterable-collection/_shared/chunk-iterable.js +8 -7
  215. package/dist/esm/collection/iterable-collection/_shared/chunk-iterable.js.map +1 -1
  216. package/dist/esm/collection/iterable-collection/_shared/{chunk-whilte-iterable.js → chunk-while-iterable.js} +12 -14
  217. package/dist/esm/collection/iterable-collection/_shared/chunk-while-iterable.js.map +1 -0
  218. package/dist/esm/collection/iterable-collection/_shared/collapse-iterable.js +1 -2
  219. package/dist/esm/collection/iterable-collection/_shared/collapse-iterable.js.map +1 -1
  220. package/dist/esm/collection/iterable-collection/_shared/count-by-iterable.js +3 -6
  221. package/dist/esm/collection/iterable-collection/_shared/count-by-iterable.js.map +1 -1
  222. package/dist/esm/collection/iterable-collection/_shared/cross-join-iterable.js +24 -18
  223. package/dist/esm/collection/iterable-collection/_shared/cross-join-iterable.js.map +1 -1
  224. package/dist/esm/collection/iterable-collection/_shared/entries-iterable.js +3 -10
  225. package/dist/esm/collection/iterable-collection/_shared/entries-iterable.js.map +1 -1
  226. package/dist/esm/collection/iterable-collection/_shared/filter-iterable.js +3 -6
  227. package/dist/esm/collection/iterable-collection/_shared/filter-iterable.js.map +1 -1
  228. package/dist/esm/collection/iterable-collection/_shared/flat-map-iterable.js +3 -6
  229. package/dist/esm/collection/iterable-collection/_shared/flat-map-iterable.js.map +1 -1
  230. package/dist/esm/collection/iterable-collection/_shared/group-by-iterable.js +10 -12
  231. package/dist/esm/collection/iterable-collection/_shared/group-by-iterable.js.map +1 -1
  232. package/dist/esm/collection/iterable-collection/_shared/insert-after-iterable.js +3 -6
  233. package/dist/esm/collection/iterable-collection/_shared/insert-after-iterable.js.map +1 -1
  234. package/dist/esm/collection/iterable-collection/_shared/insert-before-iterable.js +3 -6
  235. package/dist/esm/collection/iterable-collection/_shared/insert-before-iterable.js.map +1 -1
  236. package/dist/esm/collection/iterable-collection/_shared/map-iterable.js +3 -6
  237. package/dist/esm/collection/iterable-collection/_shared/map-iterable.js.map +1 -1
  238. package/dist/esm/collection/iterable-collection/_shared/merge-iterable.js +1 -2
  239. package/dist/esm/collection/iterable-collection/_shared/merge-iterable.js.map +1 -1
  240. package/dist/esm/collection/iterable-collection/_shared/pad-end-iterable.js +2 -6
  241. package/dist/esm/collection/iterable-collection/_shared/pad-end-iterable.js.map +1 -1
  242. package/dist/esm/collection/iterable-collection/_shared/pad-start-iterable.js +2 -6
  243. package/dist/esm/collection/iterable-collection/_shared/pad-start-iterable.js.map +1 -1
  244. package/dist/esm/collection/iterable-collection/_shared/partion-iterable.js +9 -11
  245. package/dist/esm/collection/iterable-collection/_shared/partion-iterable.js.map +1 -1
  246. package/dist/esm/collection/iterable-collection/_shared/repeat-iterable.js +2 -3
  247. package/dist/esm/collection/iterable-collection/_shared/repeat-iterable.js.map +1 -1
  248. package/dist/esm/collection/iterable-collection/_shared/reverse-iterable.js +4 -12
  249. package/dist/esm/collection/iterable-collection/_shared/reverse-iterable.js.map +1 -1
  250. package/dist/esm/collection/iterable-collection/_shared/shuffle-iterable.js +5 -4
  251. package/dist/esm/collection/iterable-collection/_shared/shuffle-iterable.js.map +1 -1
  252. package/dist/esm/collection/iterable-collection/_shared/skip-iterable.js +4 -9
  253. package/dist/esm/collection/iterable-collection/_shared/skip-iterable.js.map +1 -1
  254. package/dist/esm/collection/iterable-collection/_shared/skip-until-iterable.js +3 -6
  255. package/dist/esm/collection/iterable-collection/_shared/skip-until-iterable.js.map +1 -1
  256. package/dist/esm/collection/iterable-collection/_shared/slice-iterable.js +3 -6
  257. package/dist/esm/collection/iterable-collection/_shared/slice-iterable.js.map +1 -1
  258. package/dist/esm/collection/iterable-collection/_shared/sliding-iterable.js +4 -11
  259. package/dist/esm/collection/iterable-collection/_shared/sliding-iterable.js.map +1 -1
  260. package/dist/esm/collection/iterable-collection/_shared/sort-iterable.js +1 -2
  261. package/dist/esm/collection/iterable-collection/_shared/sort-iterable.js.map +1 -1
  262. package/dist/esm/collection/iterable-collection/_shared/split-iterable.js +7 -9
  263. package/dist/esm/collection/iterable-collection/_shared/split-iterable.js.map +1 -1
  264. package/dist/esm/collection/iterable-collection/_shared/take-iterable.js +4 -9
  265. package/dist/esm/collection/iterable-collection/_shared/take-iterable.js.map +1 -1
  266. package/dist/esm/collection/iterable-collection/_shared/take-until-iterable.js +3 -6
  267. package/dist/esm/collection/iterable-collection/_shared/take-until-iterable.js.map +1 -1
  268. package/dist/esm/collection/iterable-collection/_shared/tap-iterable.js +1 -2
  269. package/dist/esm/collection/iterable-collection/_shared/tap-iterable.js.map +1 -1
  270. package/dist/esm/collection/iterable-collection/_shared/unique-iterable.js +3 -6
  271. package/dist/esm/collection/iterable-collection/_shared/unique-iterable.js.map +1 -1
  272. package/dist/esm/collection/iterable-collection/_shared/update-iterable.js +3 -6
  273. package/dist/esm/collection/iterable-collection/_shared/update-iterable.js.map +1 -1
  274. package/dist/esm/collection/iterable-collection/_shared/when-iterable.js +1 -2
  275. package/dist/esm/collection/iterable-collection/_shared/when-iterable.js.map +1 -1
  276. package/dist/esm/collection/iterable-collection/_shared/zip-iterable.js +1 -2
  277. package/dist/esm/collection/iterable-collection/_shared/zip-iterable.js.map +1 -1
  278. package/dist/esm/collection/iterable-collection/iterable-collection.js +162 -252
  279. package/dist/esm/collection/iterable-collection/iterable-collection.js.map +1 -1
  280. package/dist/esm/collection/list-collection/list-collection.js +214 -300
  281. package/dist/esm/collection/list-collection/list-collection.js.map +1 -1
  282. package/dist/esm/contracts/collection/_shared.js +12 -6
  283. package/dist/esm/contracts/collection/_shared.js.map +1 -1
  284. package/dist/types/_shared/types.d.ts +5 -0
  285. package/dist/types/_shared/utilities.d.ts +3 -0
  286. package/dist/types/collection/async-iterable-collection/_shared/_module.d.ts +1 -1
  287. package/dist/types/collection/async-iterable-collection/_shared/async-chunk-iterable.d.ts +2 -1
  288. package/dist/types/collection/async-iterable-collection/_shared/async-chunk-while-iterable.d.ts +12 -0
  289. package/dist/types/collection/async-iterable-collection/_shared/async-count-by-iterable.d.ts +3 -3
  290. package/dist/types/collection/async-iterable-collection/_shared/async-cross-join-iterable.d.ts +6 -5
  291. package/dist/types/collection/async-iterable-collection/_shared/async-entries-iterable.d.ts +3 -4
  292. package/dist/types/collection/async-iterable-collection/_shared/async-filter-iterable.d.ts +2 -3
  293. package/dist/types/collection/async-iterable-collection/_shared/async-flat-map-iterable.d.ts +1 -2
  294. package/dist/types/collection/async-iterable-collection/_shared/async-group-by-iterable.d.ts +4 -4
  295. package/dist/types/collection/async-iterable-collection/_shared/async-insert-after-iterable.d.ts +4 -4
  296. package/dist/types/collection/async-iterable-collection/_shared/async-insert-before-iterable.d.ts +4 -4
  297. package/dist/types/collection/async-iterable-collection/_shared/async-map-iterable.d.ts +1 -2
  298. package/dist/types/collection/async-iterable-collection/_shared/async-merge-iterable.d.ts +1 -1
  299. package/dist/types/collection/async-iterable-collection/_shared/async-pad-end-iterable.d.ts +2 -1
  300. package/dist/types/collection/async-iterable-collection/_shared/async-pad-start-iterable.d.ts +2 -1
  301. package/dist/types/collection/async-iterable-collection/_shared/async-partion-iterable.d.ts +4 -4
  302. package/dist/types/collection/async-iterable-collection/_shared/async-repeat-iterable.d.ts +2 -1
  303. package/dist/types/collection/async-iterable-collection/_shared/async-reverse-iterable.d.ts +3 -3
  304. package/dist/types/collection/async-iterable-collection/_shared/async-shuffle-iterable.d.ts +2 -1
  305. package/dist/types/collection/async-iterable-collection/_shared/async-skip-iterable.d.ts +1 -2
  306. package/dist/types/collection/async-iterable-collection/_shared/async-skip-until-iterable.d.ts +2 -3
  307. package/dist/types/collection/async-iterable-collection/_shared/async-slice-iterable.d.ts +1 -2
  308. package/dist/types/collection/async-iterable-collection/_shared/async-sliding-iterable.d.ts +1 -2
  309. package/dist/types/collection/async-iterable-collection/_shared/async-split-iterable.d.ts +3 -3
  310. package/dist/types/collection/async-iterable-collection/_shared/async-take-iterable.d.ts +1 -2
  311. package/dist/types/collection/async-iterable-collection/_shared/async-take-until-iterable.d.ts +2 -3
  312. package/dist/types/collection/async-iterable-collection/_shared/async-unique-iterable.d.ts +1 -2
  313. package/dist/types/collection/async-iterable-collection/_shared/async-update-iterable.d.ts +5 -6
  314. package/dist/types/collection/async-iterable-collection/_shared/async-zip-iterable.d.ts +2 -1
  315. package/dist/types/collection/async-iterable-collection/async-iterable-collection.d.ts +56 -54
  316. package/dist/types/collection/iterable-collection/_shared/_module.d.ts +1 -1
  317. package/dist/types/collection/iterable-collection/_shared/{chunk-whilte-iterable.d.ts → chunk-while-iterable.d.ts} +1 -2
  318. package/dist/types/collection/iterable-collection/_shared/count-by-iterable.d.ts +3 -3
  319. package/dist/types/collection/iterable-collection/_shared/cross-join-iterable.d.ts +5 -8
  320. package/dist/types/collection/iterable-collection/_shared/entries-iterable.d.ts +2 -3
  321. package/dist/types/collection/iterable-collection/_shared/filter-iterable.d.ts +1 -2
  322. package/dist/types/collection/iterable-collection/_shared/flat-map-iterable.d.ts +1 -2
  323. package/dist/types/collection/iterable-collection/_shared/group-by-iterable.d.ts +3 -3
  324. package/dist/types/collection/iterable-collection/_shared/insert-after-iterable.d.ts +1 -2
  325. package/dist/types/collection/iterable-collection/_shared/insert-before-iterable.d.ts +1 -2
  326. package/dist/types/collection/iterable-collection/_shared/map-iterable.d.ts +1 -2
  327. package/dist/types/collection/iterable-collection/_shared/partion-iterable.d.ts +1 -2
  328. package/dist/types/collection/iterable-collection/_shared/reverse-iterable.d.ts +1 -2
  329. package/dist/types/collection/iterable-collection/_shared/shuffle-iterable.d.ts +2 -1
  330. package/dist/types/collection/iterable-collection/_shared/skip-iterable.d.ts +1 -2
  331. package/dist/types/collection/iterable-collection/_shared/skip-until-iterable.d.ts +1 -2
  332. package/dist/types/collection/iterable-collection/_shared/slice-iterable.d.ts +1 -2
  333. package/dist/types/collection/iterable-collection/_shared/sliding-iterable.d.ts +1 -2
  334. package/dist/types/collection/iterable-collection/_shared/split-iterable.d.ts +1 -2
  335. package/dist/types/collection/iterable-collection/_shared/take-iterable.d.ts +1 -2
  336. package/dist/types/collection/iterable-collection/_shared/take-until-iterable.d.ts +1 -2
  337. package/dist/types/collection/iterable-collection/_shared/unique-iterable.d.ts +1 -2
  338. package/dist/types/collection/iterable-collection/_shared/update-iterable.d.ts +4 -5
  339. package/dist/types/collection/iterable-collection/_shared/zip-iterable.d.ts +1 -1
  340. package/dist/types/collection/iterable-collection/iterable-collection.d.ts +56 -54
  341. package/dist/types/collection/list-collection/list-collection.d.ts +57 -54
  342. package/dist/types/contracts/collection/_shared.d.ts +14 -158
  343. package/dist/types/contracts/collection/async-collection.contract.d.ts +430 -284
  344. package/dist/types/contracts/collection/collection.contract.d.ts +417 -260
  345. package/package.json +2 -1
  346. package/dist/cjs/collection/async-iterable-collection/_shared/async-chunk-whilte-iterable.js.map +0 -1
  347. package/dist/cjs/collection/iterable-collection/_shared/chunk-whilte-iterable.js.map +0 -1
  348. package/dist/esm/collection/async-iterable-collection/_shared/async-chunk-whilte-iterable.js +0 -39
  349. package/dist/esm/collection/async-iterable-collection/_shared/async-chunk-whilte-iterable.js.map +0 -1
  350. package/dist/esm/collection/iterable-collection/_shared/chunk-whilte-iterable.js.map +0 -1
  351. package/dist/types/collection/async-iterable-collection/_shared/async-chunk-whilte-iterable.d.ts +0 -12
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ListCollection = void 0;
4
4
  const _shared_1 = require("../../collection/_shared");
5
5
  const _module_1 = require("../../contracts/collection/_module");
6
+ const utilities_1 = require("../../_shared/utilities");
6
7
  class ListCollection {
7
8
  array;
8
9
  constructor(iterable = []) {
@@ -14,25 +15,23 @@ class ListCollection {
14
15
  toIterator() {
15
16
  return this[Symbol.iterator]();
16
17
  }
17
- entries(_throwOnIndexOverflow) {
18
+ entries() {
18
19
  try {
19
20
  return new ListCollection(this.array.entries());
20
21
  }
21
22
  catch (error) {
22
- if (error instanceof _module_1.CollectionError ||
23
- error instanceof TypeError) {
23
+ if (error instanceof _module_1.CollectionError) {
24
24
  throw error;
25
25
  }
26
26
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
27
27
  }
28
28
  }
29
- keys(_throwOnIndexOverflow) {
29
+ keys() {
30
30
  try {
31
31
  return new ListCollection(this.array.keys());
32
32
  }
33
33
  catch (error) {
34
- if (error instanceof _module_1.CollectionError ||
35
- error instanceof TypeError) {
34
+ if (error instanceof _module_1.CollectionError) {
36
35
  throw error;
37
36
  }
38
37
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -41,89 +40,81 @@ class ListCollection {
41
40
  values() {
42
41
  return new ListCollection(this);
43
42
  }
44
- filter(predicateFn, _throwOnIndexOverflow) {
43
+ filter(predicateFn) {
45
44
  try {
46
45
  return new ListCollection(this.array.filter((item, index) => predicateFn(item, index, this)));
47
46
  }
48
47
  catch (error) {
49
- if (error instanceof _module_1.CollectionError ||
50
- error instanceof TypeError) {
48
+ if (error instanceof _module_1.CollectionError) {
51
49
  throw error;
52
50
  }
53
51
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
54
52
  }
55
53
  }
56
- reject(predicateFn, _throwOnIndexOverflow) {
54
+ reject(predicateFn) {
57
55
  try {
58
56
  return new ListCollection(this.array.filter((item, index) => !predicateFn(item, index, this)));
59
57
  }
60
58
  catch (error) {
61
- if (error instanceof _module_1.CollectionError ||
62
- error instanceof TypeError) {
59
+ if (error instanceof _module_1.CollectionError) {
63
60
  throw error;
64
61
  }
65
62
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
66
63
  }
67
64
  }
68
- map(mapFn, _throwOnIndexOverflow) {
65
+ map(mapFn) {
69
66
  try {
70
67
  return new ListCollection(this.array.map((item, index) => mapFn(item, index, this)));
71
68
  }
72
69
  catch (error) {
73
- if (error instanceof _module_1.CollectionError ||
74
- error instanceof TypeError) {
70
+ if (error instanceof _module_1.CollectionError) {
75
71
  throw error;
76
72
  }
77
73
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
78
74
  }
79
75
  }
80
- reduce(settings) {
76
+ reduce(reduceFn, initialValue) {
81
77
  try {
82
- if (settings.initialValue === undefined && this.isEmpty()) {
83
- throw new TypeError("Reduce of empty array must be inputed a initial value");
78
+ if (initialValue === undefined && this.isEmpty()) {
79
+ throw new _module_1.TypeCollectionError("Reduce of empty array must be inputed a initial value");
84
80
  }
85
- if (settings.initialValue !== undefined) {
86
- return this.array.reduce((initialValue, item, index) => settings.reduceFn(initialValue, item, index, this), settings.initialValue);
81
+ if (initialValue !== undefined) {
82
+ return this.array.reduce((initialValue, item, index) => reduceFn(initialValue, item, index, this), initialValue);
87
83
  }
88
84
  return this.array.reduce((initialValue, item, index) => {
89
- const reduce = settings.reduceFn;
85
+ const reduce = reduceFn;
90
86
  return reduce(initialValue, item, index, this);
91
87
  });
92
88
  }
93
89
  catch (error) {
94
- if (error instanceof _module_1.CollectionError ||
95
- error instanceof TypeError) {
90
+ if (error instanceof _module_1.CollectionError) {
96
91
  throw error;
97
92
  }
98
93
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
99
94
  }
100
95
  }
101
- join(settings) {
96
+ join(separator = ",") {
102
97
  try {
103
- return this.reduce({
104
- reduceFn(str, item) {
105
- if (typeof item !== "string") {
106
- throw new TypeError("Item type is invalid must be string");
107
- }
108
- const separator = settings?.seperator ?? ",";
109
- return str + separator + item;
110
- },
111
- });
98
+ for (const item of this) {
99
+ if (typeof item !== "string") {
100
+ throw new _module_1.TypeCollectionError("Item type is invalid must be string");
101
+ }
102
+ }
103
+ return this.array.join(separator);
112
104
  }
113
105
  catch (error) {
114
- if (error instanceof _module_1.CollectionError ||
115
- error instanceof TypeError) {
106
+ if (error instanceof _module_1.CollectionError) {
116
107
  throw error;
117
108
  }
118
109
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
119
110
  }
120
111
  }
121
112
  collapse() {
122
- const items = [];
123
113
  try {
114
+ const items = [];
124
115
  for (const item of this.array) {
125
116
  if ((0, _shared_1.isIterable)(item)) {
126
- items.push(...items);
117
+ items.push(...item);
127
118
  }
128
119
  else {
129
120
  items.push(item);
@@ -132,28 +123,26 @@ class ListCollection {
132
123
  return new ListCollection(items);
133
124
  }
134
125
  catch (error) {
135
- if (error instanceof _module_1.CollectionError ||
136
- error instanceof TypeError) {
126
+ if (error instanceof _module_1.CollectionError) {
137
127
  throw error;
138
128
  }
139
129
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
140
130
  }
141
131
  }
142
- flatMap(mapFn, _throwOnIndexOverflow) {
132
+ flatMap(mapFn) {
143
133
  try {
144
134
  return new ListCollection(this.array.flatMap((item, index) => [
145
135
  ...mapFn(item, index, this),
146
136
  ]));
147
137
  }
148
138
  catch (error) {
149
- if (error instanceof _module_1.CollectionError ||
150
- error instanceof TypeError) {
139
+ if (error instanceof _module_1.CollectionError) {
151
140
  throw error;
152
141
  }
153
142
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
154
143
  }
155
144
  }
156
- update(predicateFn, mapFn, _throwOnIndexOverflow) {
145
+ change(predicateFn, mapFn) {
157
146
  try {
158
147
  return new ListCollection(this.array.map((item, index) => {
159
148
  if (predicateFn(item, index, this)) {
@@ -163,39 +152,43 @@ class ListCollection {
163
152
  }));
164
153
  }
165
154
  catch (error) {
166
- if (error instanceof _module_1.CollectionError ||
167
- error instanceof TypeError) {
155
+ if (error instanceof _module_1.CollectionError) {
168
156
  throw error;
169
157
  }
170
158
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
171
159
  }
172
160
  }
173
- page(settings) {
174
- const { page, pageSize } = settings;
161
+ page(page, pageSize) {
175
162
  if (page < 0) {
176
163
  return this.skip(page * pageSize).take(pageSize);
177
164
  }
178
- return this.skip((page - 1) * pageSize).take(page * pageSize);
165
+ return this.skip((page - 1) * pageSize).take(pageSize);
179
166
  }
180
167
  sum() {
181
- return this.reduce({
182
- reduceFn: (sum, item) => {
183
- if (typeof item !== "number") {
184
- throw new TypeError("Item type is invalid must be number");
185
- }
186
- return sum + item;
187
- },
188
- initialValue: 0,
189
- });
168
+ if (this.isEmpty()) {
169
+ throw new _module_1.EmptyCollectionError("Collection is empty therby operation cannot be performed");
170
+ }
171
+ return this.reduce((sum, item) => {
172
+ if (typeof item !== "number") {
173
+ throw new _module_1.TypeCollectionError("Item type is invalid must be number");
174
+ }
175
+ return sum + item;
176
+ }, 0);
190
177
  }
191
178
  average() {
179
+ if (this.isEmpty()) {
180
+ throw new _module_1.EmptyCollectionError("Collection is empty therby operation cannot be performed");
181
+ }
192
182
  return (this.sum() / this.size());
193
183
  }
194
- median(_throwOnIndexOverflow) {
184
+ median() {
195
185
  try {
186
+ if (this.isEmpty()) {
187
+ throw new _module_1.EmptyCollectionError("Collection is empty therby operation cannot be performed");
188
+ }
196
189
  const nbrs = this.array.map((item) => {
197
190
  if (typeof item !== "number") {
198
- throw new TypeError("Item type is invalid must be number");
191
+ throw new _module_1.TypeCollectionError("Item type is invalid must be number");
199
192
  }
200
193
  return item;
201
194
  }), index = Math.floor(this.array.length / 2), isEven = this.array.length % 2 === 0, a = nbrs[index];
@@ -212,8 +205,7 @@ class ListCollection {
212
205
  return a;
213
206
  }
214
207
  catch (error) {
215
- if (error instanceof _module_1.CollectionError ||
216
- error instanceof TypeError) {
208
+ if (error instanceof _module_1.CollectionError) {
217
209
  throw error;
218
210
  }
219
211
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -221,10 +213,13 @@ class ListCollection {
221
213
  }
222
214
  min() {
223
215
  try {
216
+ if (this.isEmpty()) {
217
+ throw new _module_1.EmptyCollectionError("Collection is empty therby operation cannot be performed");
218
+ }
224
219
  let min = 0;
225
220
  for (const item of this.array) {
226
221
  if (typeof item !== "number") {
227
- throw new TypeError("Item type is invalid must be number");
222
+ throw new _module_1.TypeCollectionError("Item type is invalid must be number");
228
223
  }
229
224
  if (min === 0) {
230
225
  min = item;
@@ -236,8 +231,7 @@ class ListCollection {
236
231
  return min;
237
232
  }
238
233
  catch (error) {
239
- if (error instanceof _module_1.CollectionError ||
240
- error instanceof TypeError) {
234
+ if (error instanceof _module_1.CollectionError) {
241
235
  throw error;
242
236
  }
243
237
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -245,10 +239,13 @@ class ListCollection {
245
239
  }
246
240
  max() {
247
241
  try {
242
+ if (this.isEmpty()) {
243
+ throw new _module_1.EmptyCollectionError("Collection is empty therby operation cannot be performed");
244
+ }
248
245
  let max = 0;
249
246
  for (const item of this.array) {
250
247
  if (typeof item !== "number") {
251
- throw new TypeError("Item type is invalid must be number");
248
+ throw new _module_1.TypeCollectionError("Item type is invalid must be number");
252
249
  }
253
250
  if (max === 0) {
254
251
  max = item;
@@ -260,62 +257,60 @@ class ListCollection {
260
257
  return max;
261
258
  }
262
259
  catch (error) {
263
- if (error instanceof _module_1.CollectionError ||
264
- error instanceof TypeError) {
260
+ if (error instanceof _module_1.CollectionError) {
265
261
  throw error;
266
262
  }
267
263
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
268
264
  }
269
265
  }
270
- percentage(predicateFn, _throwOnIndexOverflow) {
266
+ percentage(predicateFn) {
271
267
  try {
268
+ if (this.isEmpty()) {
269
+ throw new _module_1.EmptyCollectionError("Collection is empty therby operation cannot be performed");
270
+ }
272
271
  return (this.count(predicateFn) / this.size()) * 100;
273
272
  }
274
273
  catch (error) {
275
- if (error instanceof _module_1.CollectionError ||
276
- error instanceof TypeError) {
274
+ if (error instanceof _module_1.CollectionError) {
277
275
  throw error;
278
276
  }
279
277
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
280
278
  }
281
279
  }
282
- some(predicateFn, _throwOnIndexOverflow) {
280
+ some(predicateFn) {
283
281
  try {
284
282
  return this.array.some((item, index) => predicateFn(item, index, this));
285
283
  }
286
284
  catch (error) {
287
- if (error instanceof _module_1.CollectionError ||
288
- error instanceof TypeError) {
285
+ if (error instanceof _module_1.CollectionError) {
289
286
  throw error;
290
287
  }
291
288
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
292
289
  }
293
290
  }
294
- every(predicateFn, _throwOnIndexOverflow) {
291
+ every(predicateFn) {
295
292
  try {
296
293
  return this.array.every((item, index) => predicateFn(item, index, this));
297
294
  }
298
295
  catch (error) {
299
- if (error instanceof _module_1.CollectionError ||
300
- error instanceof TypeError) {
296
+ if (error instanceof _module_1.CollectionError) {
301
297
  throw error;
302
298
  }
303
299
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
304
300
  }
305
301
  }
306
- take(limit, _throwOnIndexOverflow) {
302
+ take(limit) {
307
303
  try {
308
304
  return new ListCollection(this.array.slice(0, limit));
309
305
  }
310
306
  catch (error) {
311
- if (error instanceof _module_1.CollectionError ||
312
- error instanceof TypeError) {
307
+ if (error instanceof _module_1.CollectionError) {
313
308
  throw error;
314
309
  }
315
310
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
316
311
  }
317
312
  }
318
- takeUntil(predicateFn, _throwOnIndexOverflow) {
313
+ takeUntil(predicateFn) {
319
314
  try {
320
315
  const items = [];
321
316
  for (const [index, item] of this.array.entries()) {
@@ -327,38 +322,35 @@ class ListCollection {
327
322
  return new ListCollection(items);
328
323
  }
329
324
  catch (error) {
330
- if (error instanceof _module_1.CollectionError ||
331
- error instanceof TypeError) {
325
+ if (error instanceof _module_1.CollectionError) {
332
326
  throw error;
333
327
  }
334
328
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
335
329
  }
336
330
  }
337
- takeWhile(predicateFn, _throwOnIndexOverflow) {
331
+ takeWhile(predicateFn) {
338
332
  try {
339
333
  return this.takeUntil((...arguments_) => !predicateFn(...arguments_));
340
334
  }
341
335
  catch (error) {
342
- if (error instanceof _module_1.CollectionError ||
343
- error instanceof TypeError) {
336
+ if (error instanceof _module_1.CollectionError) {
344
337
  throw error;
345
338
  }
346
339
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
347
340
  }
348
341
  }
349
- skip(offset, _throwOnIndexOverflow) {
342
+ skip(offset) {
350
343
  try {
351
344
  return new ListCollection(this.array.slice(offset));
352
345
  }
353
346
  catch (error) {
354
- if (error instanceof _module_1.CollectionError ||
355
- error instanceof TypeError) {
347
+ if (error instanceof _module_1.CollectionError) {
356
348
  throw error;
357
349
  }
358
350
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
359
351
  }
360
352
  }
361
- skipUntil(predicateFn, _throwOnIndexOverflow) {
353
+ skipUntil(predicateFn) {
362
354
  try {
363
355
  let hasMatched = false;
364
356
  const items = [];
@@ -373,20 +365,18 @@ class ListCollection {
373
365
  return new ListCollection(items);
374
366
  }
375
367
  catch (error) {
376
- if (error instanceof _module_1.CollectionError ||
377
- error instanceof TypeError) {
368
+ if (error instanceof _module_1.CollectionError) {
378
369
  throw error;
379
370
  }
380
371
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
381
372
  }
382
373
  }
383
- skipWhile(predicateFn, _throwOnIndexOverflow) {
374
+ skipWhile(predicateFn) {
384
375
  try {
385
376
  return this.skipUntil((...arguments_) => !predicateFn(...arguments_));
386
377
  }
387
378
  catch (error) {
388
- if (error instanceof _module_1.CollectionError ||
389
- error instanceof TypeError) {
379
+ if (error instanceof _module_1.CollectionError) {
390
380
  throw error;
391
381
  }
392
382
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -400,8 +390,7 @@ class ListCollection {
400
390
  return this;
401
391
  }
402
392
  catch (error) {
403
- if (error instanceof _module_1.CollectionError ||
404
- error instanceof TypeError) {
393
+ if (error instanceof _module_1.CollectionError) {
405
394
  throw error;
406
395
  }
407
396
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -412,8 +401,7 @@ class ListCollection {
412
401
  return this.when(this.isEmpty(), callback);
413
402
  }
414
403
  catch (error) {
415
- if (error instanceof _module_1.CollectionError ||
416
- error instanceof TypeError) {
404
+ if (error instanceof _module_1.CollectionError) {
417
405
  throw error;
418
406
  }
419
407
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -424,8 +412,7 @@ class ListCollection {
424
412
  return this.when(!condition, callback);
425
413
  }
426
414
  catch (error) {
427
- if (error instanceof _module_1.CollectionError ||
428
- error instanceof TypeError) {
415
+ if (error instanceof _module_1.CollectionError) {
429
416
  throw error;
430
417
  }
431
418
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -436,8 +423,7 @@ class ListCollection {
436
423
  return this.when(this.isNotEmpty(), callback);
437
424
  }
438
425
  catch (error) {
439
- if (error instanceof _module_1.CollectionError ||
440
- error instanceof TypeError) {
426
+ if (error instanceof _module_1.CollectionError) {
441
427
  throw error;
442
428
  }
443
429
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -448,8 +434,7 @@ class ListCollection {
448
434
  return callback(this);
449
435
  }
450
436
  catch (error) {
451
- if (error instanceof _module_1.CollectionError ||
452
- error instanceof TypeError) {
437
+ if (error instanceof _module_1.CollectionError) {
453
438
  throw error;
454
439
  }
455
440
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -461,8 +446,7 @@ class ListCollection {
461
446
  return new ListCollection(this);
462
447
  }
463
448
  catch (error) {
464
- if (error instanceof _module_1.CollectionError ||
465
- error instanceof TypeError) {
449
+ if (error instanceof _module_1.CollectionError) {
466
450
  throw error;
467
451
  }
468
452
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -477,14 +461,13 @@ class ListCollection {
477
461
  return new ListCollection(chunks);
478
462
  }
479
463
  catch (error) {
480
- if (error instanceof _module_1.CollectionError ||
481
- error instanceof TypeError) {
464
+ if (error instanceof _module_1.CollectionError) {
482
465
  throw error;
483
466
  }
484
467
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
485
468
  }
486
469
  }
487
- chunkWhile(predicateFn, _throwOnIndexOverflow) {
470
+ chunkWhile(predicateFn) {
488
471
  try {
489
472
  let currentChunk = new ListCollection([]);
490
473
  const chunks = [];
@@ -504,14 +487,13 @@ class ListCollection {
504
487
  return new ListCollection(chunks);
505
488
  }
506
489
  catch (error) {
507
- if (error instanceof _module_1.CollectionError ||
508
- error instanceof TypeError) {
490
+ if (error instanceof _module_1.CollectionError) {
509
491
  throw error;
510
492
  }
511
493
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
512
494
  }
513
495
  }
514
- split(chunkAmount, _throwOnIndexOverflow) {
496
+ split(chunkAmount) {
515
497
  try {
516
498
  const size = this.size(), minChunkSize = Math.floor(size / chunkAmount), restSize = size % chunkAmount, chunkSizes = Array.from({
517
499
  length: chunkAmount,
@@ -532,14 +514,13 @@ class ListCollection {
532
514
  return new ListCollection(chunks);
533
515
  }
534
516
  catch (error) {
535
- if (error instanceof _module_1.CollectionError ||
536
- error instanceof TypeError) {
517
+ if (error instanceof _module_1.CollectionError) {
537
518
  throw error;
538
519
  }
539
520
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
540
521
  }
541
522
  }
542
- partition(predicateFn, _throwOnIndexOverflow) {
523
+ partition(predicateFn) {
543
524
  try {
544
525
  const chunkA = [], chunkB = [];
545
526
  for (const [index, item] of this.array.entries()) {
@@ -556,16 +537,14 @@ class ListCollection {
556
537
  ]);
557
538
  }
558
539
  catch (error) {
559
- if (error instanceof _module_1.CollectionError ||
560
- error instanceof TypeError) {
540
+ if (error instanceof _module_1.CollectionError) {
561
541
  throw error;
562
542
  }
563
543
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
564
544
  }
565
545
  }
566
- sliding(settings) {
546
+ sliding(chunkSize, step = chunkSize - 1) {
567
547
  try {
568
- const { chunkSize, step = chunkSize - 1 } = settings;
569
548
  let chunks = new ListCollection([]);
570
549
  if (step <= 0) {
571
550
  return new ListCollection([]);
@@ -573,12 +552,7 @@ class ListCollection {
573
552
  for (let index = 0; index < this.size(); index += step) {
574
553
  const start = index;
575
554
  const end = index + chunkSize;
576
- chunks = chunks.append([
577
- this.slice({
578
- start,
579
- end,
580
- }),
581
- ]);
555
+ chunks = chunks.append([this.slice(start, end)]);
582
556
  if (end >= this.size()) {
583
557
  break;
584
558
  }
@@ -586,18 +560,17 @@ class ListCollection {
586
560
  return chunks;
587
561
  }
588
562
  catch (error) {
589
- if (error instanceof _module_1.CollectionError ||
590
- error instanceof TypeError) {
563
+ if (error instanceof _module_1.CollectionError) {
591
564
  throw error;
592
565
  }
593
566
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
594
567
  }
595
568
  }
596
- groupBy(settings) {
569
+ groupBy(selectFn = (item) => item) {
597
570
  try {
598
- const map = new Map(), callback = (settings?.selectFn ?? ((item) => item));
571
+ const map = new Map();
599
572
  for (const [index, item] of this.array.entries()) {
600
- const key = callback(item, index, this);
573
+ const key = selectFn(item, index, this);
601
574
  let collection = map.get(key);
602
575
  if (collection === undefined) {
603
576
  collection = new ListCollection([]);
@@ -608,18 +581,17 @@ class ListCollection {
608
581
  return new ListCollection(map);
609
582
  }
610
583
  catch (error) {
611
- if (error instanceof _module_1.CollectionError ||
612
- error instanceof TypeError) {
584
+ if (error instanceof _module_1.CollectionError) {
613
585
  throw error;
614
586
  }
615
587
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
616
588
  }
617
589
  }
618
- countBy(settings) {
590
+ countBy(selectFn = (item) => item) {
619
591
  try {
620
- const map = new Map(), callback = (settings?.selectFn ?? ((item) => item));
592
+ const map = new Map();
621
593
  for (const [index, item] of this.array.entries()) {
622
- const key = callback(item, index, this);
594
+ const key = selectFn(item, index, this);
623
595
  if (!map.has(key)) {
624
596
  map.set(key, 0);
625
597
  }
@@ -631,18 +603,17 @@ class ListCollection {
631
603
  return new ListCollection(map);
632
604
  }
633
605
  catch (error) {
634
- if (error instanceof _module_1.CollectionError ||
635
- error instanceof TypeError) {
606
+ if (error instanceof _module_1.CollectionError) {
636
607
  throw error;
637
608
  }
638
609
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
639
610
  }
640
611
  }
641
- unique(settings) {
612
+ unique(selectFn = (item) => item) {
642
613
  try {
643
- const set = new Set([]), callback = (settings?.selectFn ?? ((item) => item)), items = [];
614
+ const set = new Set([]), items = [];
644
615
  for (const [index, item] of this.array.entries()) {
645
- const item_ = callback(item, index, this);
616
+ const item_ = selectFn(item, index, this);
646
617
  if (!set.has(item_)) {
647
618
  items.push(item);
648
619
  }
@@ -651,8 +622,7 @@ class ListCollection {
651
622
  return new ListCollection(items);
652
623
  }
653
624
  catch (error) {
654
- if (error instanceof _module_1.CollectionError ||
655
- error instanceof TypeError) {
625
+ if (error instanceof _module_1.CollectionError) {
656
626
  throw error;
657
627
  }
658
628
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -669,8 +639,7 @@ class ListCollection {
669
639
  });
670
640
  }
671
641
  catch (error) {
672
- if (error instanceof _module_1.CollectionError ||
673
- error instanceof TypeError) {
642
+ if (error instanceof _module_1.CollectionError) {
674
643
  throw error;
675
644
  }
676
645
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -679,14 +648,13 @@ class ListCollection {
679
648
  repeat(amount) {
680
649
  try {
681
650
  let collection = new ListCollection([]);
682
- for (let index = 0; index < amount - 1; index++) {
651
+ for (let index = 0; index < amount; index++) {
683
652
  collection = collection.append(this);
684
653
  }
685
654
  return collection;
686
655
  }
687
656
  catch (error) {
688
- if (error instanceof _module_1.CollectionError ||
689
- error instanceof TypeError) {
657
+ if (error instanceof _module_1.CollectionError) {
690
658
  throw error;
691
659
  }
692
660
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -712,8 +680,7 @@ class ListCollection {
712
680
  return new ListCollection(resultItemsArray);
713
681
  }
714
682
  catch (error) {
715
- if (error instanceof _module_1.CollectionError ||
716
- error instanceof TypeError) {
683
+ if (error instanceof _module_1.CollectionError) {
717
684
  throw error;
718
685
  }
719
686
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -739,20 +706,18 @@ class ListCollection {
739
706
  return new ListCollection(resultItemsArray);
740
707
  }
741
708
  catch (error) {
742
- if (error instanceof _module_1.CollectionError ||
743
- error instanceof TypeError) {
709
+ if (error instanceof _module_1.CollectionError) {
744
710
  throw error;
745
711
  }
746
712
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
747
713
  }
748
714
  }
749
- slice(settings) {
715
+ slice(start, end) {
750
716
  try {
751
- return new ListCollection(this.array.slice(settings?.start, settings?.end));
717
+ return new ListCollection(this.array.slice(start, end));
752
718
  }
753
719
  catch (error) {
754
- if (error instanceof _module_1.CollectionError ||
755
- error instanceof TypeError) {
720
+ if (error instanceof _module_1.CollectionError) {
756
721
  throw error;
757
722
  }
758
723
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -763,8 +728,7 @@ class ListCollection {
763
728
  return new ListCollection([...iterable, ...this.array]);
764
729
  }
765
730
  catch (error) {
766
- if (error instanceof _module_1.CollectionError ||
767
- error instanceof TypeError) {
731
+ if (error instanceof _module_1.CollectionError) {
768
732
  throw error;
769
733
  }
770
734
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -775,14 +739,13 @@ class ListCollection {
775
739
  return new ListCollection([...this.array, ...iterable]);
776
740
  }
777
741
  catch (error) {
778
- if (error instanceof _module_1.CollectionError ||
779
- error instanceof TypeError) {
742
+ if (error instanceof _module_1.CollectionError) {
780
743
  throw error;
781
744
  }
782
745
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
783
746
  }
784
747
  }
785
- insertBefore(predicateFn, iterable, _throwOnIndexOverflow) {
748
+ insertBefore(predicateFn, iterable) {
786
749
  try {
787
750
  const index = this.array.findIndex((item, index) => predicateFn(item, index, this));
788
751
  if (index === -1) {
@@ -793,14 +756,13 @@ class ListCollection {
793
756
  return new ListCollection(newArray);
794
757
  }
795
758
  catch (error) {
796
- if (error instanceof _module_1.CollectionError ||
797
- error instanceof TypeError) {
759
+ if (error instanceof _module_1.CollectionError) {
798
760
  throw error;
799
761
  }
800
762
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
801
763
  }
802
764
  }
803
- insertAfter(predicateFn, iterable, _throwOnIndexOverflow) {
765
+ insertAfter(predicateFn, iterable) {
804
766
  try {
805
767
  const index = this.array.findIndex((item, index) => predicateFn(item, index, this));
806
768
  if (index === -1) {
@@ -814,35 +776,39 @@ class ListCollection {
814
776
  ]);
815
777
  }
816
778
  catch (error) {
817
- if (error instanceof _module_1.CollectionError ||
818
- error instanceof TypeError) {
779
+ if (error instanceof _module_1.CollectionError) {
819
780
  throw error;
820
781
  }
821
782
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
822
783
  }
823
784
  }
824
- crossJoin(...iterables) {
785
+ crossJoin(iterable) {
825
786
  try {
826
- return new ListCollection([
827
- this,
828
- ...iterables.map((iterable) => new ListCollection(iterable)),
829
- ]).reduce({
830
- reduceFn: (a, b) => {
831
- return a
832
- .map((x) => b.map((y) => {
833
- return x.append([y]);
834
- }))
835
- .reduce({
836
- reduceFn: (c, b) => c.append(b),
837
- initialValue: new ListCollection([]),
787
+ const array = [
788
+ [...this],
789
+ [...iterable],
790
+ ]
791
+ .reduce((a, b) => {
792
+ return a
793
+ .map((x) => {
794
+ return b.map((y) => {
795
+ return [...x, y];
838
796
  });
839
- },
840
- initialValue: new ListCollection([new ListCollection([])]),
797
+ })
798
+ .reduce((c, b) => [...c, ...b], []);
799
+ }, [[]])
800
+ .map((combination) => {
801
+ return combination.reduce((a, b) => {
802
+ return [
803
+ ...a,
804
+ ...((0, _shared_1.isIterable)(b) ? b : [b]),
805
+ ];
806
+ }, []);
841
807
  });
808
+ return new ListCollection(array);
842
809
  }
843
810
  catch (error) {
844
- if (error instanceof _module_1.CollectionError ||
845
- error instanceof TypeError) {
811
+ if (error instanceof _module_1.CollectionError) {
846
812
  throw error;
847
813
  }
848
814
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -866,8 +832,7 @@ class ListCollection {
866
832
  return new ListCollection(items);
867
833
  }
868
834
  catch (error) {
869
- if (error instanceof _module_1.CollectionError ||
870
- error instanceof TypeError) {
835
+ if (error instanceof _module_1.CollectionError) {
871
836
  throw error;
872
837
  }
873
838
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -878,30 +843,28 @@ class ListCollection {
878
843
  return new ListCollection(this.array.sort(comparator));
879
844
  }
880
845
  catch (error) {
881
- if (error instanceof _module_1.CollectionError ||
882
- error instanceof TypeError) {
846
+ if (error instanceof _module_1.CollectionError) {
883
847
  throw error;
884
848
  }
885
849
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
886
850
  }
887
851
  }
888
- reverse(_settings) {
852
+ reverse(_chunkSize) {
889
853
  try {
890
854
  return new ListCollection([...this.array].reverse());
891
855
  }
892
856
  catch (error) {
893
- if (error instanceof _module_1.CollectionError ||
894
- error instanceof TypeError) {
857
+ if (error instanceof _module_1.CollectionError) {
895
858
  throw error;
896
859
  }
897
860
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
898
861
  }
899
862
  }
900
- shuffle() {
863
+ shuffle(mathRandom = Math.random) {
901
864
  try {
902
865
  const newArray = [...this.array];
903
866
  for (let i = newArray.length - 1; i > 0; i--) {
904
- const j = Math.floor(Math.random() * (i + 1));
867
+ const j = Math.floor(mathRandom() * (i + 1));
905
868
  const temp = newArray[i];
906
869
  if (newArray[j] !== undefined) {
907
870
  newArray[i] = newArray[j];
@@ -913,34 +876,28 @@ class ListCollection {
913
876
  return new ListCollection(newArray);
914
877
  }
915
878
  catch (error) {
916
- if (error instanceof _module_1.CollectionError ||
917
- error instanceof TypeError) {
879
+ if (error instanceof _module_1.CollectionError) {
918
880
  throw error;
919
881
  }
920
882
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
921
883
  }
922
884
  }
923
- first(settings) {
885
+ first(predicateFn) {
924
886
  try {
925
- return this.firstOr({
926
- defaultValue: null,
927
- ...settings,
928
- });
887
+ return this.firstOr(null, predicateFn);
929
888
  }
930
889
  catch (error) {
931
- if (error instanceof _module_1.CollectionError ||
932
- error instanceof TypeError) {
890
+ if (error instanceof _module_1.CollectionError) {
933
891
  throw error;
934
892
  }
935
893
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
936
894
  }
937
895
  }
938
- firstOr(settings) {
896
+ firstOr(defaultValue, predicateFn) {
939
897
  try {
940
- const { predicateFn: filter } = settings;
941
- if (filter) {
898
+ if (predicateFn) {
942
899
  for (const [index, item] of this.array.entries()) {
943
- if (filter(item, index, this)) {
900
+ if (predicateFn(item, index, this)) {
944
901
  return item;
945
902
  }
946
903
  }
@@ -951,59 +908,47 @@ class ListCollection {
951
908
  return firstItem;
952
909
  }
953
910
  }
954
- const { defaultValue } = settings;
955
- if (typeof defaultValue === "function") {
956
- const defaultFn = defaultValue;
957
- return defaultFn();
958
- }
959
- return defaultValue;
911
+ return (0, utilities_1.simplifyLazyable)(defaultValue);
960
912
  }
961
913
  catch (error) {
962
- if (error instanceof _module_1.CollectionError ||
963
- error instanceof TypeError) {
914
+ if (error instanceof _module_1.CollectionError) {
964
915
  throw error;
965
916
  }
966
917
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
967
918
  }
968
919
  }
969
- firstOrFail(settings) {
920
+ firstOrFail(predicateFn) {
970
921
  try {
971
- const item = this.first(settings);
922
+ const item = this.first(predicateFn);
972
923
  if (item === null) {
973
- throw new _module_1.ItemNotFoundError("Item was not found");
924
+ throw new _module_1.ItemNotFoundCollectionError("Item was not found");
974
925
  }
975
926
  return item;
976
927
  }
977
928
  catch (error) {
978
- if (error instanceof _module_1.CollectionError ||
979
- error instanceof TypeError) {
929
+ if (error instanceof _module_1.CollectionError) {
980
930
  throw error;
981
931
  }
982
932
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
983
933
  }
984
934
  }
985
- last(settings) {
935
+ last(predicateFn) {
986
936
  try {
987
- return this.lastOr({
988
- ...settings,
989
- defaultValue: null,
990
- });
937
+ return this.lastOr(null, predicateFn);
991
938
  }
992
939
  catch (error) {
993
- if (error instanceof _module_1.CollectionError ||
994
- error instanceof TypeError) {
940
+ if (error instanceof _module_1.CollectionError) {
995
941
  throw error;
996
942
  }
997
943
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
998
944
  }
999
945
  }
1000
- lastOr(settings) {
946
+ lastOr(defaultValue, predicateFn) {
1001
947
  try {
1002
- const { predicateFn: filter } = settings;
1003
- if (filter) {
948
+ if (predicateFn) {
1004
949
  let matchedItem = null;
1005
950
  for (const [index, item] of this.array.entries()) {
1006
- if (filter(item, index, this)) {
951
+ if (predicateFn(item, index, this)) {
1007
952
  matchedItem = item;
1008
953
  }
1009
954
  }
@@ -1017,50 +962,42 @@ class ListCollection {
1017
962
  return lastItem;
1018
963
  }
1019
964
  }
1020
- const { defaultValue } = settings;
1021
- if (typeof defaultValue === "function") {
1022
- const defaultFn = defaultValue;
1023
- return defaultFn();
1024
- }
1025
- return defaultValue;
965
+ return (0, utilities_1.simplifyLazyable)(defaultValue);
1026
966
  }
1027
967
  catch (error) {
1028
- if (error instanceof _module_1.CollectionError ||
1029
- error instanceof TypeError) {
968
+ if (error instanceof _module_1.CollectionError) {
1030
969
  throw error;
1031
970
  }
1032
971
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
1033
972
  }
1034
973
  }
1035
- lastOrFail(settings) {
974
+ lastOrFail(predicateFn) {
1036
975
  try {
1037
- const item = this.last(settings);
976
+ const item = this.last(predicateFn);
1038
977
  if (item === null) {
1039
- throw new _module_1.ItemNotFoundError("Item was not found");
978
+ throw new _module_1.ItemNotFoundCollectionError("Item was not found");
1040
979
  }
1041
980
  return item;
1042
981
  }
1043
982
  catch (error) {
1044
- if (error instanceof _module_1.CollectionError ||
1045
- error instanceof TypeError) {
983
+ if (error instanceof _module_1.CollectionError) {
1046
984
  throw error;
1047
985
  }
1048
986
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
1049
987
  }
1050
988
  }
1051
- before(predicateFn, _throwOnIndexOverflow) {
989
+ before(predicateFn) {
1052
990
  try {
1053
991
  return this.beforeOr(null, predicateFn);
1054
992
  }
1055
993
  catch (error) {
1056
- if (error instanceof _module_1.CollectionError ||
1057
- error instanceof TypeError) {
994
+ if (error instanceof _module_1.CollectionError) {
1058
995
  throw error;
1059
996
  }
1060
997
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
1061
998
  }
1062
999
  }
1063
- beforeOr(defaultValue, predicateFn, _throwOnIndexOverflow) {
1000
+ beforeOr(defaultValue, predicateFn) {
1064
1001
  try {
1065
1002
  for (const [index, item] of this.array.entries()) {
1066
1003
  const beforeItem = this.array[index - 1];
@@ -1069,49 +1006,42 @@ class ListCollection {
1069
1006
  return beforeItem;
1070
1007
  }
1071
1008
  }
1072
- if (typeof defaultValue === "function") {
1073
- const defaultFn = defaultValue;
1074
- return defaultFn();
1075
- }
1076
- return defaultValue;
1009
+ return (0, utilities_1.simplifyLazyable)(defaultValue);
1077
1010
  }
1078
1011
  catch (error) {
1079
- if (error instanceof _module_1.CollectionError ||
1080
- error instanceof TypeError) {
1012
+ if (error instanceof _module_1.CollectionError) {
1081
1013
  throw error;
1082
1014
  }
1083
1015
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
1084
1016
  }
1085
1017
  }
1086
- beforeOrFail(predicateFn, _throwOnIndexOverflow) {
1018
+ beforeOrFail(predicateFn) {
1087
1019
  try {
1088
1020
  const item = this.before(predicateFn);
1089
1021
  if (item === null) {
1090
- throw new _module_1.ItemNotFoundError("Item was not found");
1022
+ throw new _module_1.ItemNotFoundCollectionError("Item was not found");
1091
1023
  }
1092
1024
  return item;
1093
1025
  }
1094
1026
  catch (error) {
1095
- if (error instanceof _module_1.CollectionError ||
1096
- error instanceof TypeError) {
1027
+ if (error instanceof _module_1.CollectionError) {
1097
1028
  throw error;
1098
1029
  }
1099
1030
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
1100
1031
  }
1101
1032
  }
1102
- after(predicateFn, _throwOnIndexOverflow) {
1033
+ after(predicateFn) {
1103
1034
  try {
1104
1035
  return this.afterOr(null, predicateFn);
1105
1036
  }
1106
1037
  catch (error) {
1107
- if (error instanceof _module_1.CollectionError ||
1108
- error instanceof TypeError) {
1038
+ if (error instanceof _module_1.CollectionError) {
1109
1039
  throw error;
1110
1040
  }
1111
1041
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
1112
1042
  }
1113
1043
  }
1114
- afterOr(defaultValue, predicateFn, _throwOnIndexOverflow) {
1044
+ afterOr(defaultValue, predicateFn) {
1115
1045
  try {
1116
1046
  for (const [index, item] of this.array.entries()) {
1117
1047
  const beforeItem = this.array[index + 1];
@@ -1120,37 +1050,31 @@ class ListCollection {
1120
1050
  return beforeItem;
1121
1051
  }
1122
1052
  }
1123
- if (typeof defaultValue === "function") {
1124
- const defaultFn = defaultValue;
1125
- return defaultFn();
1126
- }
1127
- return defaultValue;
1053
+ return (0, utilities_1.simplifyLazyable)(defaultValue);
1128
1054
  }
1129
1055
  catch (error) {
1130
- if (error instanceof _module_1.CollectionError ||
1131
- error instanceof TypeError) {
1056
+ if (error instanceof _module_1.CollectionError) {
1132
1057
  throw error;
1133
1058
  }
1134
1059
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
1135
1060
  }
1136
1061
  }
1137
- afterOrFail(predicateFn, _throwOnIndexOverflow) {
1062
+ afterOrFail(predicateFn) {
1138
1063
  try {
1139
1064
  const item = this.after(predicateFn);
1140
1065
  if (item === null) {
1141
- throw new _module_1.ItemNotFoundError("Item was not found");
1066
+ throw new _module_1.ItemNotFoundCollectionError("Item was not found");
1142
1067
  }
1143
1068
  return item;
1144
1069
  }
1145
1070
  catch (error) {
1146
- if (error instanceof _module_1.CollectionError ||
1147
- error instanceof TypeError) {
1071
+ if (error instanceof _module_1.CollectionError) {
1148
1072
  throw error;
1149
1073
  }
1150
1074
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
1151
1075
  }
1152
1076
  }
1153
- sole(predicateFn, _throwOnIndexOverflow) {
1077
+ sole(predicateFn) {
1154
1078
  try {
1155
1079
  const matchedItems = [];
1156
1080
  for (const [index, item] of this.array.entries()) {
@@ -1158,18 +1082,17 @@ class ListCollection {
1158
1082
  matchedItems.push(item);
1159
1083
  }
1160
1084
  if (matchedItems.length > 1) {
1161
- throw new _module_1.MultipleItemsFoundError("Multiple items were found");
1085
+ throw new _module_1.MultipleItemsFoundCollectionError("Multiple items were found");
1162
1086
  }
1163
1087
  }
1164
1088
  const [matchedItem] = matchedItems;
1165
1089
  if (matchedItem === undefined) {
1166
- throw new _module_1.ItemNotFoundError("Item was not found");
1090
+ throw new _module_1.ItemNotFoundCollectionError("Item was not found");
1167
1091
  }
1168
1092
  return matchedItem;
1169
1093
  }
1170
1094
  catch (error) {
1171
- if (error instanceof _module_1.CollectionError ||
1172
- error instanceof TypeError) {
1095
+ if (error instanceof _module_1.CollectionError) {
1173
1096
  throw error;
1174
1097
  }
1175
1098
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -1180,32 +1103,29 @@ class ListCollection {
1180
1103
  return this.filter((_item, index) => index % step === 0);
1181
1104
  }
1182
1105
  catch (error) {
1183
- if (error instanceof _module_1.CollectionError ||
1184
- error instanceof TypeError) {
1106
+ if (error instanceof _module_1.CollectionError) {
1185
1107
  throw error;
1186
1108
  }
1187
1109
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
1188
1110
  }
1189
1111
  }
1190
- count(predicateFn, _throwOnIndexOverflow) {
1112
+ count(predicateFn) {
1191
1113
  try {
1192
1114
  return this.filter(predicateFn).size();
1193
1115
  }
1194
1116
  catch (error) {
1195
- if (error instanceof _module_1.CollectionError ||
1196
- error instanceof TypeError) {
1117
+ if (error instanceof _module_1.CollectionError) {
1197
1118
  throw error;
1198
1119
  }
1199
1120
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
1200
1121
  }
1201
1122
  }
1202
- size(_throwOnIndexOverflow) {
1123
+ size() {
1203
1124
  try {
1204
1125
  return this.array.length;
1205
1126
  }
1206
1127
  catch (error) {
1207
- if (error instanceof _module_1.CollectionError ||
1208
- error instanceof TypeError) {
1128
+ if (error instanceof _module_1.CollectionError) {
1209
1129
  throw error;
1210
1130
  }
1211
1131
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -1216,8 +1136,7 @@ class ListCollection {
1216
1136
  return this.array.length === 0;
1217
1137
  }
1218
1138
  catch (error) {
1219
- if (error instanceof _module_1.CollectionError ||
1220
- error instanceof TypeError) {
1139
+ if (error instanceof _module_1.CollectionError) {
1221
1140
  throw error;
1222
1141
  }
1223
1142
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -1228,26 +1147,24 @@ class ListCollection {
1228
1147
  return this.array.length !== 0;
1229
1148
  }
1230
1149
  catch (error) {
1231
- if (error instanceof _module_1.CollectionError ||
1232
- error instanceof TypeError) {
1150
+ if (error instanceof _module_1.CollectionError) {
1233
1151
  throw error;
1234
1152
  }
1235
1153
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
1236
1154
  }
1237
1155
  }
1238
- searchFirst(predicateFn, _throwOnIndexOverflow) {
1156
+ searchFirst(predicateFn) {
1239
1157
  try {
1240
1158
  return this.array.findIndex((item, index) => predicateFn(item, index, this));
1241
1159
  }
1242
1160
  catch (error) {
1243
- if (error instanceof _module_1.CollectionError ||
1244
- error instanceof TypeError) {
1161
+ if (error instanceof _module_1.CollectionError) {
1245
1162
  throw error;
1246
1163
  }
1247
1164
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
1248
1165
  }
1249
1166
  }
1250
- searchLast(predicateFn, _throwOnIndexOverflow) {
1167
+ searchLast(predicateFn) {
1251
1168
  try {
1252
1169
  let matchedIndex = -1;
1253
1170
  for (const [index, item] of this.array.entries()) {
@@ -1258,22 +1175,20 @@ class ListCollection {
1258
1175
  return matchedIndex;
1259
1176
  }
1260
1177
  catch (error) {
1261
- if (error instanceof _module_1.CollectionError ||
1262
- error instanceof TypeError) {
1178
+ if (error instanceof _module_1.CollectionError) {
1263
1179
  throw error;
1264
1180
  }
1265
1181
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
1266
1182
  }
1267
1183
  }
1268
- forEach(callback, _throwOnIndexOverflow) {
1184
+ forEach(callback) {
1269
1185
  try {
1270
1186
  for (const [index, item] of this.array.entries()) {
1271
1187
  callback(item, index, this);
1272
1188
  }
1273
1189
  }
1274
1190
  catch (error) {
1275
- if (error instanceof _module_1.CollectionError ||
1276
- error instanceof TypeError) {
1191
+ if (error instanceof _module_1.CollectionError) {
1277
1192
  throw error;
1278
1193
  }
1279
1194
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);
@@ -1284,8 +1199,7 @@ class ListCollection {
1284
1199
  return [...this.array];
1285
1200
  }
1286
1201
  catch (error) {
1287
- if (error instanceof _module_1.CollectionError ||
1288
- error instanceof TypeError) {
1202
+ if (error instanceof _module_1.CollectionError) {
1289
1203
  throw error;
1290
1204
  }
1291
1205
  throw new _module_1.UnexpectedCollectionError(`Unexpected error "${String(error)}" occured`, error);