ts-data-forge 5.0.0 → 5.1.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 (532) hide show
  1. package/README.md +55 -6
  2. package/dist/array/impl/array-utils-creation.d.mts +14 -0
  3. package/dist/array/impl/array-utils-creation.d.mts.map +1 -1
  4. package/dist/array/impl/array-utils-creation.mjs +12 -0
  5. package/dist/array/impl/array-utils-creation.mjs.map +1 -1
  6. package/dist/array/impl/array-utils-element-access.d.mts +10 -0
  7. package/dist/array/impl/array-utils-element-access.d.mts.map +1 -1
  8. package/dist/array/impl/array-utils-element-access.mjs +7 -0
  9. package/dist/array/impl/array-utils-element-access.mjs.map +1 -1
  10. package/dist/array/impl/array-utils-modification.d.mts +14 -0
  11. package/dist/array/impl/array-utils-modification.d.mts.map +1 -1
  12. package/dist/array/impl/array-utils-modification.mjs +1 -0
  13. package/dist/array/impl/array-utils-modification.mjs.map +1 -1
  14. package/dist/array/impl/array-utils-reducing-value.d.mts +26 -2
  15. package/dist/array/impl/array-utils-reducing-value.d.mts.map +1 -1
  16. package/dist/array/impl/array-utils-reducing-value.mjs +2 -1
  17. package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
  18. package/dist/array/impl/array-utils-search.d.mts +30 -0
  19. package/dist/array/impl/array-utils-search.d.mts.map +1 -1
  20. package/dist/array/impl/array-utils-search.mjs +1 -0
  21. package/dist/array/impl/array-utils-search.mjs.map +1 -1
  22. package/dist/array/impl/array-utils-set-op.d.mts +13 -0
  23. package/dist/array/impl/array-utils-set-op.d.mts.map +1 -1
  24. package/dist/array/impl/array-utils-set-op.mjs +13 -0
  25. package/dist/array/impl/array-utils-set-op.mjs.map +1 -1
  26. package/dist/array/impl/array-utils-size.d.mts +3 -0
  27. package/dist/array/impl/array-utils-size.d.mts.map +1 -1
  28. package/dist/array/impl/array-utils-size.mjs +3 -0
  29. package/dist/array/impl/array-utils-size.mjs.map +1 -1
  30. package/dist/array/impl/array-utils-slice-clamped.d.mts +2 -0
  31. package/dist/array/impl/array-utils-slice-clamped.d.mts.map +1 -1
  32. package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -1
  33. package/dist/array/impl/array-utils-slicing.d.mts +15 -0
  34. package/dist/array/impl/array-utils-slicing.d.mts.map +1 -1
  35. package/dist/array/impl/array-utils-slicing.mjs +7 -0
  36. package/dist/array/impl/array-utils-slicing.mjs.map +1 -1
  37. package/dist/array/impl/array-utils-transformation.d.mts +27 -0
  38. package/dist/array/impl/array-utils-transformation.d.mts.map +1 -1
  39. package/dist/array/impl/array-utils-transformation.mjs +7 -0
  40. package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
  41. package/dist/array/impl/array-utils-validation.d.mts +17 -0
  42. package/dist/array/impl/array-utils-validation.d.mts.map +1 -1
  43. package/dist/array/impl/array-utils-validation.mjs +11 -0
  44. package/dist/array/impl/array-utils-validation.mjs.map +1 -1
  45. package/dist/collections/imap-mapped.mjs +1 -0
  46. package/dist/collections/imap-mapped.mjs.map +1 -1
  47. package/dist/collections/imap.d.mts +20 -0
  48. package/dist/collections/imap.d.mts.map +1 -1
  49. package/dist/collections/imap.mjs +3 -0
  50. package/dist/collections/imap.mjs.map +1 -1
  51. package/dist/collections/iset-mapped.d.mts +27 -0
  52. package/dist/collections/iset-mapped.d.mts.map +1 -1
  53. package/dist/collections/iset-mapped.mjs +7 -0
  54. package/dist/collections/iset-mapped.mjs.map +1 -1
  55. package/dist/collections/iset.d.mts +29 -0
  56. package/dist/collections/iset.d.mts.map +1 -1
  57. package/dist/collections/iset.mjs +7 -0
  58. package/dist/collections/iset.mjs.map +1 -1
  59. package/dist/collections/queue.d.mts +40 -0
  60. package/dist/collections/queue.d.mts.map +1 -1
  61. package/dist/collections/queue.mjs +9 -0
  62. package/dist/collections/queue.mjs.map +1 -1
  63. package/dist/collections/stack.d.mts +35 -0
  64. package/dist/collections/stack.d.mts.map +1 -1
  65. package/dist/collections/stack.mjs +8 -0
  66. package/dist/collections/stack.mjs.map +1 -1
  67. package/dist/entry-point.mjs +1 -1
  68. package/dist/functional/match.d.mts.map +1 -1
  69. package/dist/functional/match.mjs.map +1 -1
  70. package/dist/functional/optional/impl/optional-expect-to-be.d.mts +1 -0
  71. package/dist/functional/optional/impl/optional-expect-to-be.d.mts.map +1 -1
  72. package/dist/functional/optional/impl/optional-expect-to-be.mjs.map +1 -1
  73. package/dist/functional/optional/impl/optional-filter.d.mts +3 -0
  74. package/dist/functional/optional/impl/optional-filter.d.mts.map +1 -1
  75. package/dist/functional/optional/impl/optional-filter.mjs.map +1 -1
  76. package/dist/functional/optional/impl/optional-flat-map.d.mts +2 -0
  77. package/dist/functional/optional/impl/optional-flat-map.d.mts.map +1 -1
  78. package/dist/functional/optional/impl/optional-flat-map.mjs.map +1 -1
  79. package/dist/functional/optional/impl/optional-from-nullable.d.mts +2 -0
  80. package/dist/functional/optional/impl/optional-from-nullable.d.mts.map +1 -1
  81. package/dist/functional/optional/impl/optional-from-nullable.mjs +2 -0
  82. package/dist/functional/optional/impl/optional-from-nullable.mjs.map +1 -1
  83. package/dist/functional/optional/impl/optional-is-optional.d.mts +2 -0
  84. package/dist/functional/optional/impl/optional-is-optional.d.mts.map +1 -1
  85. package/dist/functional/optional/impl/optional-is-optional.mjs +2 -0
  86. package/dist/functional/optional/impl/optional-is-optional.mjs.map +1 -1
  87. package/dist/functional/optional/impl/optional-is-some.d.mts +1 -0
  88. package/dist/functional/optional/impl/optional-is-some.d.mts.map +1 -1
  89. package/dist/functional/optional/impl/optional-is-some.mjs +1 -0
  90. package/dist/functional/optional/impl/optional-is-some.mjs.map +1 -1
  91. package/dist/functional/optional/impl/optional-map.d.mts +2 -0
  92. package/dist/functional/optional/impl/optional-map.d.mts.map +1 -1
  93. package/dist/functional/optional/impl/optional-map.mjs.map +1 -1
  94. package/dist/functional/optional/impl/optional-none.d.mts +2 -0
  95. package/dist/functional/optional/impl/optional-none.d.mts.map +1 -1
  96. package/dist/functional/optional/impl/optional-none.mjs +2 -0
  97. package/dist/functional/optional/impl/optional-none.mjs.map +1 -1
  98. package/dist/functional/optional/impl/optional-or-else.d.mts +4 -0
  99. package/dist/functional/optional/impl/optional-or-else.d.mts.map +1 -1
  100. package/dist/functional/optional/impl/optional-or-else.mjs.map +1 -1
  101. package/dist/functional/optional/impl/optional-some.d.mts +3 -1
  102. package/dist/functional/optional/impl/optional-some.d.mts.map +1 -1
  103. package/dist/functional/optional/impl/optional-some.mjs +2 -0
  104. package/dist/functional/optional/impl/optional-some.mjs.map +1 -1
  105. package/dist/functional/optional/impl/optional-to-nullable.d.mts +2 -0
  106. package/dist/functional/optional/impl/optional-to-nullable.d.mts.map +1 -1
  107. package/dist/functional/optional/impl/optional-to-nullable.mjs +2 -0
  108. package/dist/functional/optional/impl/optional-to-nullable.mjs.map +1 -1
  109. package/dist/functional/optional/impl/optional-unwrap-or.d.mts +3 -0
  110. package/dist/functional/optional/impl/optional-unwrap-or.d.mts.map +1 -1
  111. package/dist/functional/optional/impl/optional-unwrap-or.mjs.map +1 -1
  112. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts +1 -0
  113. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts.map +1 -1
  114. package/dist/functional/optional/impl/optional-unwrap-throw.mjs +1 -0
  115. package/dist/functional/optional/impl/optional-unwrap-throw.mjs.map +1 -1
  116. package/dist/functional/optional/impl/optional-unwrap.d.mts +2 -0
  117. package/dist/functional/optional/impl/optional-unwrap.d.mts.map +1 -1
  118. package/dist/functional/optional/impl/optional-unwrap.mjs.map +1 -1
  119. package/dist/functional/optional/impl/optional-zip.d.mts +2 -0
  120. package/dist/functional/optional/impl/optional-zip.d.mts.map +1 -1
  121. package/dist/functional/optional/impl/optional-zip.mjs +2 -0
  122. package/dist/functional/optional/impl/optional-zip.mjs.map +1 -1
  123. package/dist/functional/result/impl/result-err.d.mts +3 -1
  124. package/dist/functional/result/impl/result-err.d.mts.map +1 -1
  125. package/dist/functional/result/impl/result-err.mjs +2 -0
  126. package/dist/functional/result/impl/result-err.mjs.map +1 -1
  127. package/dist/functional/result/impl/result-expect-to-be.d.mts +1 -0
  128. package/dist/functional/result/impl/result-expect-to-be.d.mts.map +1 -1
  129. package/dist/functional/result/impl/result-expect-to-be.mjs.map +1 -1
  130. package/dist/functional/result/impl/result-flat-map.d.mts +5 -0
  131. package/dist/functional/result/impl/result-flat-map.d.mts.map +1 -1
  132. package/dist/functional/result/impl/result-flat-map.mjs.map +1 -1
  133. package/dist/functional/result/impl/result-fold.d.mts +4 -0
  134. package/dist/functional/result/impl/result-fold.d.mts.map +1 -1
  135. package/dist/functional/result/impl/result-fold.mjs.map +1 -1
  136. package/dist/functional/result/impl/result-from-promise.d.mts +3 -0
  137. package/dist/functional/result/impl/result-from-promise.d.mts.map +1 -1
  138. package/dist/functional/result/impl/result-from-promise.mjs +3 -0
  139. package/dist/functional/result/impl/result-from-promise.mjs.map +1 -1
  140. package/dist/functional/result/impl/result-from-throwable.d.mts +2 -0
  141. package/dist/functional/result/impl/result-from-throwable.d.mts.map +1 -1
  142. package/dist/functional/result/impl/result-from-throwable.mjs +4 -1
  143. package/dist/functional/result/impl/result-from-throwable.mjs.map +1 -1
  144. package/dist/functional/result/impl/result-is-err.d.mts +2 -0
  145. package/dist/functional/result/impl/result-is-err.d.mts.map +1 -1
  146. package/dist/functional/result/impl/result-is-err.mjs +2 -0
  147. package/dist/functional/result/impl/result-is-err.mjs.map +1 -1
  148. package/dist/functional/result/impl/result-is-ok.d.mts +2 -0
  149. package/dist/functional/result/impl/result-is-ok.d.mts.map +1 -1
  150. package/dist/functional/result/impl/result-is-ok.mjs +2 -0
  151. package/dist/functional/result/impl/result-is-ok.mjs.map +1 -1
  152. package/dist/functional/result/impl/result-is-result.d.mts +4 -0
  153. package/dist/functional/result/impl/result-is-result.d.mts.map +1 -1
  154. package/dist/functional/result/impl/result-is-result.mjs +4 -0
  155. package/dist/functional/result/impl/result-is-result.mjs.map +1 -1
  156. package/dist/functional/result/impl/result-map-err.d.mts +3 -0
  157. package/dist/functional/result/impl/result-map-err.d.mts.map +1 -1
  158. package/dist/functional/result/impl/result-map-err.mjs.map +1 -1
  159. package/dist/functional/result/impl/result-map.d.mts +4 -0
  160. package/dist/functional/result/impl/result-map.d.mts.map +1 -1
  161. package/dist/functional/result/impl/result-map.mjs.map +1 -1
  162. package/dist/functional/result/impl/result-ok.d.mts +3 -1
  163. package/dist/functional/result/impl/result-ok.d.mts.map +1 -1
  164. package/dist/functional/result/impl/result-ok.mjs +2 -0
  165. package/dist/functional/result/impl/result-ok.mjs.map +1 -1
  166. package/dist/functional/result/impl/result-or-else.d.mts +4 -0
  167. package/dist/functional/result/impl/result-or-else.d.mts.map +1 -1
  168. package/dist/functional/result/impl/result-or-else.mjs.map +1 -1
  169. package/dist/functional/result/impl/result-swap.d.mts +2 -0
  170. package/dist/functional/result/impl/result-swap.d.mts.map +1 -1
  171. package/dist/functional/result/impl/result-swap.mjs +2 -0
  172. package/dist/functional/result/impl/result-swap.mjs.map +1 -1
  173. package/dist/functional/result/impl/result-to-optional.d.mts +2 -0
  174. package/dist/functional/result/impl/result-to-optional.d.mts.map +1 -1
  175. package/dist/functional/result/impl/result-to-optional.mjs +2 -0
  176. package/dist/functional/result/impl/result-to-optional.mjs.map +1 -1
  177. package/dist/functional/result/impl/result-unwrap-err-or.d.mts +3 -0
  178. package/dist/functional/result/impl/result-unwrap-err-or.d.mts.map +1 -1
  179. package/dist/functional/result/impl/result-unwrap-err-or.mjs.map +1 -1
  180. package/dist/functional/result/impl/result-unwrap-err-throw.d.mts +2 -0
  181. package/dist/functional/result/impl/result-unwrap-err-throw.d.mts.map +1 -1
  182. package/dist/functional/result/impl/result-unwrap-err-throw.mjs +2 -0
  183. package/dist/functional/result/impl/result-unwrap-err-throw.mjs.map +1 -1
  184. package/dist/functional/result/impl/result-unwrap-err.d.mts +1 -0
  185. package/dist/functional/result/impl/result-unwrap-err.d.mts.map +1 -1
  186. package/dist/functional/result/impl/result-unwrap-err.mjs +1 -0
  187. package/dist/functional/result/impl/result-unwrap-err.mjs.map +1 -1
  188. package/dist/functional/result/impl/result-unwrap-ok-or.d.mts +3 -0
  189. package/dist/functional/result/impl/result-unwrap-ok-or.d.mts.map +1 -1
  190. package/dist/functional/result/impl/result-unwrap-ok-or.mjs.map +1 -1
  191. package/dist/functional/result/impl/result-unwrap-ok.d.mts +1 -0
  192. package/dist/functional/result/impl/result-unwrap-ok.d.mts.map +1 -1
  193. package/dist/functional/result/impl/result-unwrap-ok.mjs.map +1 -1
  194. package/dist/functional/result/impl/result-unwrap-throw.d.mts +2 -0
  195. package/dist/functional/result/impl/result-unwrap-throw.d.mts.map +1 -1
  196. package/dist/functional/result/impl/result-unwrap-throw.mjs +2 -0
  197. package/dist/functional/result/impl/result-unwrap-throw.mjs.map +1 -1
  198. package/dist/functional/result/impl/result-zip.d.mts +3 -1
  199. package/dist/functional/result/impl/result-zip.d.mts.map +1 -1
  200. package/dist/functional/result/impl/result-zip.mjs +3 -1
  201. package/dist/functional/result/impl/result-zip.mjs.map +1 -1
  202. package/dist/functional/ternary-result/impl/ternary-result-err.d.mts +2 -1
  203. package/dist/functional/ternary-result/impl/ternary-result-err.d.mts.map +1 -1
  204. package/dist/functional/ternary-result/impl/ternary-result-err.mjs +1 -0
  205. package/dist/functional/ternary-result/impl/ternary-result-err.mjs.map +1 -1
  206. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.d.mts +1 -0
  207. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.d.mts.map +1 -1
  208. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs.map +1 -1
  209. package/dist/functional/ternary-result/impl/ternary-result-flat-map.d.mts +4 -0
  210. package/dist/functional/ternary-result/impl/ternary-result-flat-map.d.mts.map +1 -1
  211. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs.map +1 -1
  212. package/dist/functional/ternary-result/impl/ternary-result-fold.d.mts +2 -0
  213. package/dist/functional/ternary-result/impl/ternary-result-fold.d.mts.map +1 -1
  214. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs.map +1 -1
  215. package/dist/functional/ternary-result/impl/ternary-result-from-promise.d.mts +2 -0
  216. package/dist/functional/ternary-result/impl/ternary-result-from-promise.d.mts.map +1 -1
  217. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs +2 -0
  218. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs.map +1 -1
  219. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.d.mts +2 -0
  220. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.d.mts.map +1 -1
  221. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs +4 -1
  222. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs.map +1 -1
  223. package/dist/functional/ternary-result/impl/ternary-result-is-ok.d.mts +1 -0
  224. package/dist/functional/ternary-result/impl/ternary-result-is-ok.d.mts.map +1 -1
  225. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs +1 -0
  226. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs.map +1 -1
  227. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.d.mts +4 -0
  228. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.d.mts.map +1 -1
  229. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs +4 -0
  230. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs.map +1 -1
  231. package/dist/functional/ternary-result/impl/ternary-result-is-warn.d.mts +1 -0
  232. package/dist/functional/ternary-result/impl/ternary-result-is-warn.d.mts.map +1 -1
  233. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs +1 -0
  234. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs.map +1 -1
  235. package/dist/functional/ternary-result/impl/ternary-result-map-err.d.mts +3 -0
  236. package/dist/functional/ternary-result/impl/ternary-result-map-err.d.mts.map +1 -1
  237. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs.map +1 -1
  238. package/dist/functional/ternary-result/impl/ternary-result-map-warn.d.mts +3 -0
  239. package/dist/functional/ternary-result/impl/ternary-result-map-warn.d.mts.map +1 -1
  240. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs.map +1 -1
  241. package/dist/functional/ternary-result/impl/ternary-result-map.d.mts +6 -0
  242. package/dist/functional/ternary-result/impl/ternary-result-map.d.mts.map +1 -1
  243. package/dist/functional/ternary-result/impl/ternary-result-map.mjs.map +1 -1
  244. package/dist/functional/ternary-result/impl/ternary-result-ok.d.mts +1 -1
  245. package/dist/functional/ternary-result/impl/ternary-result-ok.d.mts.map +1 -1
  246. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs.map +1 -1
  247. package/dist/functional/ternary-result/impl/ternary-result-or-else.d.mts +2 -0
  248. package/dist/functional/ternary-result/impl/ternary-result-or-else.d.mts.map +1 -1
  249. package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs.map +1 -1
  250. package/dist/functional/ternary-result/impl/ternary-result-to-optional.d.mts +2 -0
  251. package/dist/functional/ternary-result/impl/ternary-result-to-optional.d.mts.map +1 -1
  252. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs +2 -0
  253. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs.map +1 -1
  254. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.d.mts +2 -0
  255. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.d.mts.map +1 -1
  256. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs.map +1 -1
  257. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.d.mts +1 -0
  258. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.d.mts.map +1 -1
  259. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs +1 -0
  260. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs.map +1 -1
  261. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.d.mts +2 -0
  262. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.d.mts.map +1 -1
  263. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs +2 -0
  264. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs.map +1 -1
  265. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.d.mts +2 -0
  266. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.d.mts.map +1 -1
  267. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs.map +1 -1
  268. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.d.mts +2 -0
  269. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.d.mts.map +1 -1
  270. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs.map +1 -1
  271. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.d.mts +1 -0
  272. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.d.mts.map +1 -1
  273. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs +1 -0
  274. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs.map +1 -1
  275. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.d.mts +2 -0
  276. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.d.mts.map +1 -1
  277. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs.map +1 -1
  278. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.d.mts +1 -0
  279. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.d.mts.map +1 -1
  280. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs +1 -0
  281. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs.map +1 -1
  282. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.d.mts +2 -0
  283. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.d.mts.map +1 -1
  284. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs +2 -0
  285. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs.map +1 -1
  286. package/dist/functional/ternary-result/impl/ternary-result-warn.d.mts +1 -1
  287. package/dist/functional/ternary-result/impl/ternary-result-warn.d.mts.map +1 -1
  288. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs.map +1 -1
  289. package/dist/functional/ternary-result/impl/ternary-result-zip.d.mts +4 -0
  290. package/dist/functional/ternary-result/impl/ternary-result-zip.d.mts.map +1 -1
  291. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs +4 -0
  292. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs.map +1 -1
  293. package/dist/globals.d.mts +10 -0
  294. package/dist/guard/index.mjs +1 -1
  295. package/dist/guard/is-record.d.mts +31 -0
  296. package/dist/guard/is-record.d.mts.map +1 -1
  297. package/dist/guard/is-record.mjs +32 -1
  298. package/dist/guard/is-record.mjs.map +1 -1
  299. package/dist/guard/is-type.d.mts +3 -0
  300. package/dist/guard/is-type.d.mts.map +1 -1
  301. package/dist/guard/is-type.mjs +3 -0
  302. package/dist/guard/is-type.mjs.map +1 -1
  303. package/dist/guard/key-is-in.d.mts +1 -0
  304. package/dist/guard/key-is-in.d.mts.map +1 -1
  305. package/dist/guard/key-is-in.mjs +1 -0
  306. package/dist/guard/key-is-in.mjs.map +1 -1
  307. package/dist/index.mjs +1 -1
  308. package/dist/iterator/range.d.mts +4 -0
  309. package/dist/iterator/range.d.mts.map +1 -1
  310. package/dist/iterator/range.mjs +1 -0
  311. package/dist/iterator/range.mjs.map +1 -1
  312. package/dist/json/json.d.mts +21 -0
  313. package/dist/json/json.d.mts.map +1 -1
  314. package/dist/json/json.mjs +22 -0
  315. package/dist/json/json.mjs.map +1 -1
  316. package/dist/number/branded-types/int.d.mts +14 -0
  317. package/dist/number/branded-types/int.d.mts.map +1 -1
  318. package/dist/number/branded-types/int.mjs +14 -0
  319. package/dist/number/branded-types/int.mjs.map +1 -1
  320. package/dist/number/branded-types/non-zero-safe-int.mjs +2 -2
  321. package/dist/number/branded-types/positive-int.d.mts +14 -0
  322. package/dist/number/branded-types/positive-int.d.mts.map +1 -1
  323. package/dist/number/branded-types/positive-int.mjs +14 -0
  324. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  325. package/dist/number/branded-types/positive-safe-int.d.mts +21 -0
  326. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
  327. package/dist/number/branded-types/positive-safe-int.mjs +22 -1
  328. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  329. package/dist/number/branded-types/safe-int.d.mts +21 -0
  330. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  331. package/dist/number/branded-types/safe-int.mjs +23 -2
  332. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  333. package/dist/number/branded-types/safe-uint.mjs +1 -1
  334. package/dist/number/branded-types/uint.d.mts +12 -0
  335. package/dist/number/branded-types/uint.d.mts.map +1 -1
  336. package/dist/number/branded-types/uint.mjs +12 -0
  337. package/dist/number/branded-types/uint.mjs.map +1 -1
  338. package/dist/number/num.d.mts +9 -0
  339. package/dist/number/num.d.mts.map +1 -1
  340. package/dist/number/num.mjs +8 -1
  341. package/dist/number/num.mjs.map +1 -1
  342. package/dist/number/refined-number-utils.d.mts +22 -0
  343. package/dist/number/refined-number-utils.d.mts.map +1 -1
  344. package/dist/number/refined-number-utils.mjs +23 -0
  345. package/dist/number/refined-number-utils.mjs.map +1 -1
  346. package/dist/object/object.d.mts +9 -0
  347. package/dist/object/object.d.mts.map +1 -1
  348. package/dist/object/object.mjs +7 -0
  349. package/dist/object/object.mjs.map +1 -1
  350. package/dist/others/map-nullable.mjs.map +1 -1
  351. package/dist/others/tuple.d.mts +11 -0
  352. package/dist/others/tuple.d.mts.map +1 -1
  353. package/dist/others/tuple.mjs +11 -0
  354. package/dist/others/tuple.mjs.map +1 -1
  355. package/dist/others/unknown-to-string.d.mts.map +1 -1
  356. package/dist/others/unknown-to-string.mjs +2 -1
  357. package/dist/others/unknown-to-string.mjs.map +1 -1
  358. package/dist/promise/promise.d.mts +4 -0
  359. package/dist/promise/promise.d.mts.map +1 -1
  360. package/dist/promise/promise.mjs +5 -0
  361. package/dist/promise/promise.mjs.map +1 -1
  362. package/package.json +20 -24
  363. package/src/array/impl/array-utils-creation.mts +20 -0
  364. package/src/array/impl/array-utils-creation.test.mts +71 -0
  365. package/src/array/impl/array-utils-element-access.mts +13 -0
  366. package/src/array/impl/array-utils-element-access.test.mts +21 -0
  367. package/src/array/impl/array-utils-iterators.test.mts +17 -0
  368. package/src/array/impl/array-utils-modification.mts +40 -0
  369. package/src/array/impl/array-utils-modification.test.mts +75 -0
  370. package/src/array/impl/array-utils-overload-type-error.test.mts +19 -0
  371. package/src/array/impl/array-utils-reducing-value.mts +55 -9
  372. package/src/array/impl/array-utils-reducing-value.test.mts +90 -0
  373. package/src/array/impl/array-utils-search.mts +53 -0
  374. package/src/array/impl/array-utils-search.test.mts +51 -0
  375. package/src/array/impl/array-utils-set-op.mts +19 -0
  376. package/src/array/impl/array-utils-set-op.test.mts +116 -0
  377. package/src/array/impl/array-utils-size.mts +3 -0
  378. package/src/array/impl/array-utils-size.test.mts +1 -0
  379. package/src/array/impl/array-utils-slice-clamped.mts +7 -0
  380. package/src/array/impl/array-utils-slice-clamped.test.mts +20 -0
  381. package/src/array/impl/array-utils-slicing.mts +27 -0
  382. package/src/array/impl/array-utils-slicing.test.mts +57 -0
  383. package/src/array/impl/array-utils-transformation.mts +58 -0
  384. package/src/array/impl/array-utils-transformation.test.mts +113 -1
  385. package/src/array/impl/array-utils-validation.mts +23 -0
  386. package/src/array/impl/array-utils-validation.test.mts +96 -0
  387. package/src/array/impl/array.test.mts +12 -0
  388. package/src/collections/imap-mapped.mts +11 -0
  389. package/src/collections/imap-mapped.test.mts +70 -0
  390. package/src/collections/imap.mts +32 -0
  391. package/src/collections/imap.test.mts +106 -0
  392. package/src/collections/iset-mapped.mts +35 -0
  393. package/src/collections/iset-mapped.test.mts +111 -0
  394. package/src/collections/iset.mts +34 -0
  395. package/src/collections/iset.test.mts +193 -0
  396. package/src/collections/queue.mts +53 -0
  397. package/src/collections/queue.test.mts +32 -0
  398. package/src/collections/stack.mts +42 -0
  399. package/src/collections/stack.test.mts +44 -0
  400. package/src/functional/match.mts +16 -0
  401. package/src/functional/match.test.mts +2 -0
  402. package/src/functional/optional/impl/optional-expect-to-be.mts +3 -0
  403. package/src/functional/optional/impl/optional-filter.mts +6 -0
  404. package/src/functional/optional/impl/optional-flat-map.mts +4 -0
  405. package/src/functional/optional/impl/optional-from-nullable.mts +2 -0
  406. package/src/functional/optional/impl/optional-is-optional.mts +2 -0
  407. package/src/functional/optional/impl/optional-is-some.mts +1 -0
  408. package/src/functional/optional/impl/optional-map.mts +5 -0
  409. package/src/functional/optional/impl/optional-none.mts +2 -0
  410. package/src/functional/optional/impl/optional-or-else.mts +6 -0
  411. package/src/functional/optional/impl/optional-some.mts +3 -1
  412. package/src/functional/optional/impl/optional-to-nullable.mts +2 -0
  413. package/src/functional/optional/impl/optional-unwrap-or.mts +5 -0
  414. package/src/functional/optional/impl/optional-unwrap-throw.mts +1 -0
  415. package/src/functional/optional/impl/optional-unwrap.mts +2 -0
  416. package/src/functional/optional/impl/optional-zip.mts +2 -0
  417. package/src/functional/optional.test.mts +73 -0
  418. package/src/functional/pipe.test.mts +3 -0
  419. package/src/functional/result/impl/result-err.mts +3 -1
  420. package/src/functional/result/impl/result-expect-to-be.mts +3 -0
  421. package/src/functional/result/impl/result-flat-map.mts +7 -0
  422. package/src/functional/result/impl/result-fold.mts +6 -0
  423. package/src/functional/result/impl/result-from-promise.mts +3 -0
  424. package/src/functional/result/impl/result-from-throwable.mts +6 -1
  425. package/src/functional/result/impl/result-is-err.mts +2 -0
  426. package/src/functional/result/impl/result-is-ok.mts +2 -0
  427. package/src/functional/result/impl/result-is-result.mts +4 -0
  428. package/src/functional/result/impl/result-map-err.mts +5 -0
  429. package/src/functional/result/impl/result-map.mts +6 -0
  430. package/src/functional/result/impl/result-ok.mts +3 -1
  431. package/src/functional/result/impl/result-or-else.mts +6 -0
  432. package/src/functional/result/impl/result-swap.mts +2 -0
  433. package/src/functional/result/impl/result-to-optional.mts +2 -0
  434. package/src/functional/result/impl/result-unwrap-err-or.mts +5 -0
  435. package/src/functional/result/impl/result-unwrap-err-throw.mts +2 -0
  436. package/src/functional/result/impl/result-unwrap-err.mts +1 -0
  437. package/src/functional/result/impl/result-unwrap-ok-or.mts +5 -0
  438. package/src/functional/result/impl/result-unwrap-ok.mts +2 -0
  439. package/src/functional/result/impl/result-unwrap-throw.mts +2 -0
  440. package/src/functional/result/impl/result-zip.mts +3 -1
  441. package/src/functional/result.test.mts +88 -0
  442. package/src/functional/ternary-result/impl/ternary-result-err.mts +2 -1
  443. package/src/functional/ternary-result/impl/ternary-result-expect-to-be.mts +4 -0
  444. package/src/functional/ternary-result/impl/ternary-result-flat-map.mts +7 -0
  445. package/src/functional/ternary-result/impl/ternary-result-fold.mts +5 -0
  446. package/src/functional/ternary-result/impl/ternary-result-from-promise.mts +2 -0
  447. package/src/functional/ternary-result/impl/ternary-result-from-throwable.mts +5 -1
  448. package/src/functional/ternary-result/impl/ternary-result-is-ok.mts +1 -0
  449. package/src/functional/ternary-result/impl/ternary-result-is-ternary-result.mts +4 -0
  450. package/src/functional/ternary-result/impl/ternary-result-is-warn.mts +1 -0
  451. package/src/functional/ternary-result/impl/ternary-result-map-err.mts +6 -0
  452. package/src/functional/ternary-result/impl/ternary-result-map-warn.mts +6 -0
  453. package/src/functional/ternary-result/impl/ternary-result-map.mts +9 -0
  454. package/src/functional/ternary-result/impl/ternary-result-ok.mts +1 -1
  455. package/src/functional/ternary-result/impl/ternary-result-or-else.mts +5 -0
  456. package/src/functional/ternary-result/impl/ternary-result-to-optional.mts +2 -0
  457. package/src/functional/ternary-result/impl/ternary-result-unwrap-err-or.mts +5 -0
  458. package/src/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mts +1 -0
  459. package/src/functional/ternary-result/impl/ternary-result-unwrap-err.mts +2 -0
  460. package/src/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mts +5 -0
  461. package/src/functional/ternary-result/impl/ternary-result-unwrap-ok.mts +3 -0
  462. package/src/functional/ternary-result/impl/ternary-result-unwrap-throw.mts +1 -0
  463. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mts +5 -0
  464. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mts +1 -0
  465. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn.mts +2 -0
  466. package/src/functional/ternary-result/impl/ternary-result-warn.mts +4 -1
  467. package/src/functional/ternary-result/impl/ternary-result-zip.mts +4 -0
  468. package/src/functional/ternary-result.test.mts +91 -0
  469. package/src/globals.d.mts +10 -0
  470. package/src/guard/has-key.test.mts +9 -0
  471. package/src/guard/is-non-empty-string.test.mts +20 -0
  472. package/src/guard/is-non-null-object.test.mts +19 -0
  473. package/src/guard/is-primitive.test.mts +23 -0
  474. package/src/guard/is-record.mts +34 -0
  475. package/src/guard/is-record.test.mts +21 -0
  476. package/src/guard/is-type.mts +3 -0
  477. package/src/guard/is-type.test.mts +134 -0
  478. package/src/guard/key-is-in.mts +1 -0
  479. package/src/iterator/range.mts +9 -0
  480. package/src/json/json.mts +29 -0
  481. package/src/json/json.test.mts +87 -0
  482. package/src/number/branded-types/finite-number.test.mts +38 -0
  483. package/src/number/branded-types/int.mts +14 -0
  484. package/src/number/branded-types/int.test.mts +42 -0
  485. package/src/number/branded-types/int16.test.mts +47 -0
  486. package/src/number/branded-types/int32.test.mts +47 -0
  487. package/src/number/branded-types/non-negative-finite-number.test.mts +40 -0
  488. package/src/number/branded-types/non-negative-int16.test.mts +43 -0
  489. package/src/number/branded-types/non-negative-int32.test.mts +43 -0
  490. package/src/number/branded-types/non-zero-finite-number.test.mts +51 -0
  491. package/src/number/branded-types/non-zero-int.test.mts +53 -0
  492. package/src/number/branded-types/non-zero-int16.test.mts +44 -0
  493. package/src/number/branded-types/non-zero-int32.test.mts +44 -0
  494. package/src/number/branded-types/non-zero-safe-int.mts +2 -2
  495. package/src/number/branded-types/non-zero-safe-int.test.mts +62 -0
  496. package/src/number/branded-types/non-zero-uint16.test.mts +37 -0
  497. package/src/number/branded-types/non-zero-uint32.test.mts +37 -0
  498. package/src/number/branded-types/positive-finite-number.test.mts +45 -0
  499. package/src/number/branded-types/positive-int.mts +14 -0
  500. package/src/number/branded-types/positive-int.test.mts +47 -0
  501. package/src/number/branded-types/positive-int16.test.mts +35 -0
  502. package/src/number/branded-types/positive-int32.test.mts +35 -0
  503. package/src/number/branded-types/positive-safe-int.mts +22 -1
  504. package/src/number/branded-types/positive-safe-int.test.mts +49 -0
  505. package/src/number/branded-types/positive-uint16.test.mts +37 -0
  506. package/src/number/branded-types/positive-uint32.test.mts +37 -0
  507. package/src/number/branded-types/safe-int.mts +23 -2
  508. package/src/number/branded-types/safe-int.test.mts +52 -0
  509. package/src/number/branded-types/safe-uint.mts +1 -1
  510. package/src/number/branded-types/safe-uint.test.mts +48 -0
  511. package/src/number/branded-types/uint.mts +12 -0
  512. package/src/number/branded-types/uint.test.mts +43 -0
  513. package/src/number/branded-types/uint16.test.mts +41 -0
  514. package/src/number/branded-types/uint32.test.mts +41 -0
  515. package/src/number/enum/int8.test.mts +6 -0
  516. package/src/number/enum/uint8.test.mts +6 -0
  517. package/src/number/num.mts +12 -1
  518. package/src/number/num.test.mts +62 -0
  519. package/src/number/refined-number-utils.mts +25 -0
  520. package/src/object/object.mts +15 -0
  521. package/src/object/object.test.mts +10 -0
  522. package/src/others/cast-mutable.test.mts +7 -0
  523. package/src/others/cast-readonly.test.mts +17 -0
  524. package/src/others/if-then.test.mts +16 -0
  525. package/src/others/map-nullable.mts +3 -0
  526. package/src/others/map-nullable.test.mts +27 -0
  527. package/src/others/memoize-function.test.mts +41 -0
  528. package/src/others/tuple.mts +11 -0
  529. package/src/others/unknown-to-string.mts +4 -1
  530. package/src/others/unknown-to-string.test.mts +10 -0
  531. package/src/promise/promise.mts +4 -0
  532. package/src/promise/promise.test.mts +1 -0
@@ -25,14 +25,19 @@ describe(isUndefined, () => {
25
25
 
26
26
  test('should return false for non-undefined values', () => {
27
27
  expect(isUndefined(null)).toBe(false);
28
+
28
29
  expect(isUndefined(0)).toBe(false);
30
+
29
31
  expect(isUndefined('')).toBe(false);
32
+
30
33
  expect(isUndefined(false)).toBe(false);
34
+
31
35
  expect(isUndefined({})).toBe(false);
32
36
  });
33
37
 
34
38
  test('should act as a type guard', () => {
35
39
  const value: string | undefined = undefined;
40
+
36
41
  if (isUndefined(value)) {
37
42
  expectType<typeof value, undefined>('=');
38
43
  }
@@ -46,13 +51,17 @@ describe(isNotUndefined, () => {
46
51
 
47
52
  test('should return true for non-undefined values', () => {
48
53
  expect(isNotUndefined(null)).toBe(true);
54
+
49
55
  expect(isNotUndefined(0)).toBe(true);
56
+
50
57
  expect(isNotUndefined('')).toBe(true);
58
+
51
59
  expect(isNotUndefined(false)).toBe(true);
52
60
  });
53
61
 
54
62
  test('should narrow types correctly', () => {
55
63
  const value: string | undefined = 'test';
64
+
56
65
  if (isNotUndefined(value)) {
57
66
  expectType<typeof value, string>('=');
58
67
  }
@@ -66,14 +75,19 @@ describe(isNull, () => {
66
75
 
67
76
  test('should return false for non-null values', () => {
68
77
  expect(isNull(undefined)).toBe(false);
78
+
69
79
  expect(isNull(0)).toBe(false);
80
+
70
81
  expect(isNull('')).toBe(false);
82
+
71
83
  expect(isNull(false)).toBe(false);
84
+
72
85
  expect(isNull({})).toBe(false);
73
86
  });
74
87
 
75
88
  test('should act as a type guard', () => {
76
89
  const value: string | null = null;
90
+
77
91
  if (isNull(value)) {
78
92
  expectType<typeof value, null>('=');
79
93
  }
@@ -87,12 +101,15 @@ describe(isNotNull, () => {
87
101
 
88
102
  test('should return true for non-null values', () => {
89
103
  expect(isNotNull(undefined)).toBe(true);
104
+
90
105
  expect(isNotNull(0)).toBe(true);
106
+
91
107
  expect(isNotNull('')).toBe(true);
92
108
  });
93
109
 
94
110
  test('should narrow types correctly', () => {
95
111
  const value: string | null = 'test';
112
+
96
113
  if (isNotNull(value)) {
97
114
  expectType<typeof value, string>('=');
98
115
  }
@@ -102,22 +119,30 @@ describe(isNotNull, () => {
102
119
  describe(isString, () => {
103
120
  test('should return true for strings', () => {
104
121
  expect(isString('')).toBe(true);
122
+
105
123
  expect(isString('hello')).toBe(true);
124
+
106
125
  expect(isString('123')).toBe(true);
126
+
107
127
  expect(isString(`template`)).toBe(true);
108
128
  });
109
129
 
110
130
  test('should return false for non-strings', () => {
111
131
  expect(isString(123)).toBe(false);
132
+
112
133
  expect(isString(true)).toBe(false);
134
+
113
135
  expect(isString(null)).toBe(false);
136
+
114
137
  expect(isString(undefined)).toBe(false);
138
+
115
139
  // eslint-disable-next-line unicorn/new-for-builtins
116
140
  expect(isString(new String('hello'))).toBe(false);
117
141
  });
118
142
 
119
143
  test('should act as a type guard', () => {
120
144
  const value: unknown = 'test';
145
+
121
146
  if (isString(value)) {
122
147
  expectType<typeof value, string>('=');
123
148
 
@@ -129,24 +154,34 @@ describe(isString, () => {
129
154
  describe(isNumber, () => {
130
155
  test('should return true for numbers', () => {
131
156
  expect(isNumber(0)).toBe(true);
157
+
132
158
  expect(isNumber(42)).toBe(true);
159
+
133
160
  expect(isNumber(-3.14)).toBe(true);
161
+
134
162
  expect(isNumber(Number.NaN)).toBe(true);
163
+
135
164
  expect(isNumber(Number.POSITIVE_INFINITY)).toBe(true);
165
+
136
166
  expect(isNumber(Number.NEGATIVE_INFINITY)).toBe(true);
137
167
  });
138
168
 
139
169
  test('should return false for non-numbers', () => {
140
170
  expect(isNumber('123')).toBe(false);
171
+
141
172
  expect(isNumber(true)).toBe(false);
173
+
142
174
  expect(isNumber(null)).toBe(false);
175
+
143
176
  expect(isNumber(123n)).toBe(false);
177
+
144
178
  // eslint-disable-next-line unicorn/new-for-builtins
145
179
  expect(isNumber(new Number(42))).toBe(false);
146
180
  });
147
181
 
148
182
  test('should act as a type guard', () => {
149
183
  const value: unknown = 42;
184
+
150
185
  if (isNumber(value)) {
151
186
  expectType<typeof value, number>('=');
152
187
 
@@ -158,19 +193,25 @@ describe(isNumber, () => {
158
193
  describe(isBigint, () => {
159
194
  test('should return true for bigints', () => {
160
195
  expect(isBigint(0n)).toBe(true);
196
+
161
197
  expect(isBigint(123n)).toBe(true);
198
+
162
199
  expect(isBigint(-456n)).toBe(true);
163
200
  });
164
201
 
165
202
  test('should return false for non-bigints', () => {
166
203
  expect(isBigint(123)).toBe(false);
204
+
167
205
  expect(isBigint('123')).toBe(false);
206
+
168
207
  expect(isBigint(true)).toBe(false);
208
+
169
209
  expect(isBigint(null)).toBe(false);
170
210
  });
171
211
 
172
212
  test('should act as a type guard', () => {
173
213
  const value: unknown = 123n;
214
+
174
215
  if (isBigint(value)) {
175
216
  expectType<typeof value, bigint>('=');
176
217
 
@@ -182,20 +223,26 @@ describe(isBigint, () => {
182
223
  describe(isBoolean, () => {
183
224
  test('should return true for booleans', () => {
184
225
  expect(isBoolean(true)).toBe(true);
226
+
185
227
  expect(isBoolean(false)).toBe(true);
186
228
  });
187
229
 
188
230
  test('should return false for non-booleans', () => {
189
231
  expect(isBoolean(1)).toBe(false);
232
+
190
233
  expect(isBoolean(0)).toBe(false);
234
+
191
235
  expect(isBoolean('true')).toBe(false);
236
+
192
237
  expect(isBoolean(null)).toBe(false);
238
+
193
239
  // eslint-disable-next-line unicorn/new-for-builtins
194
240
  expect(isBoolean(new Boolean(true))).toBe(false);
195
241
  });
196
242
 
197
243
  test('should act as a type guard', () => {
198
244
  const value: unknown = true;
245
+
199
246
  if (isBoolean(value)) {
200
247
  expectType<typeof value, boolean>('=');
201
248
 
@@ -207,18 +254,23 @@ describe(isBoolean, () => {
207
254
  describe(isSymbol, () => {
208
255
  test('should return true for symbols', () => {
209
256
  expect(isSymbol(Symbol())).toBe(true);
257
+
210
258
  expect(isSymbol(Symbol('test'))).toBe(true);
259
+
211
260
  expect(isSymbol(Symbol.iterator)).toBe(true);
212
261
  });
213
262
 
214
263
  test('should return false for non-symbols', () => {
215
264
  expect(isSymbol('symbol')).toBe(false);
265
+
216
266
  expect(isSymbol(123)).toBe(false);
267
+
217
268
  expect(isSymbol(null)).toBe(false);
218
269
  });
219
270
 
220
271
  test('should act as a type guard', () => {
221
272
  const value: unknown = Symbol('test');
273
+
222
274
  if (isSymbol(value)) {
223
275
  expectType<typeof value, symbol>('=');
224
276
 
@@ -230,22 +282,31 @@ describe(isSymbol, () => {
230
282
  describe(isNotBoolean, () => {
231
283
  test('should return false for boolean values', () => {
232
284
  expect(isNotBoolean(true)).toBe(false);
285
+
233
286
  expect(isNotBoolean(false)).toBe(false);
234
287
  });
235
288
 
236
289
  test('should return true for non-boolean values', () => {
237
290
  expect(isNotBoolean(0)).toBe(true);
291
+
238
292
  expect(isNotBoolean(1)).toBe(true);
293
+
239
294
  expect(isNotBoolean('true')).toBe(true);
295
+
240
296
  expect(isNotBoolean('false')).toBe(true);
297
+
241
298
  expect(isNotBoolean(null)).toBe(true);
299
+
242
300
  expect(isNotBoolean(undefined)).toBe(true);
301
+
243
302
  expect(isNotBoolean({})).toBe(true);
303
+
244
304
  expect(isNotBoolean([])).toBe(true);
245
305
  });
246
306
 
247
307
  test('should act as a type guard', () => {
248
308
  const value: string | number | boolean = 'test';
309
+
249
310
  if (isNotBoolean(value)) {
250
311
  expectType<typeof value, string | number>('<=');
251
312
 
@@ -258,27 +319,41 @@ describe(isNotBoolean, () => {
258
319
  describe(isNotNumber, () => {
259
320
  test('should return false for number values', () => {
260
321
  expect(isNotNumber(0)).toBe(false);
322
+
261
323
  expect(isNotNumber(42)).toBe(false);
324
+
262
325
  expect(isNotNumber(-3.14)).toBe(false);
326
+
263
327
  expect(isNotNumber(Number.NaN)).toBe(false);
328
+
264
329
  expect(isNotNumber(Number.POSITIVE_INFINITY)).toBe(false);
330
+
265
331
  expect(isNotNumber(Number.NEGATIVE_INFINITY)).toBe(false);
266
332
  });
267
333
 
268
334
  test('should return true for non-number values', () => {
269
335
  expect(isNotNumber('123')).toBe(true);
336
+
270
337
  expect(isNotNumber(true)).toBe(true);
338
+
271
339
  expect(isNotNumber(false)).toBe(true);
340
+
272
341
  expect(isNotNumber(null)).toBe(true);
342
+
273
343
  expect(isNotNumber(undefined)).toBe(true);
344
+
274
345
  expect(isNotNumber(123n)).toBe(true);
346
+
275
347
  expect(isNotNumber({})).toBe(true);
348
+
276
349
  expect(isNotNumber([])).toBe(true);
350
+
277
351
  expect(isNotNumber(Symbol('test'))).toBe(true);
278
352
  });
279
353
 
280
354
  test('should act as a type guard', () => {
281
355
  const value: string | number | boolean = 'test';
356
+
282
357
  if (isNotNumber(value)) {
283
358
  expectType<typeof value, string | boolean>('<=');
284
359
 
@@ -292,23 +367,33 @@ describe(isNotNumber, () => {
292
367
  describe(isNotBigint, () => {
293
368
  test('should return false for bigint values', () => {
294
369
  expect(isNotBigint(0n)).toBe(false);
370
+
295
371
  expect(isNotBigint(123n)).toBe(false);
372
+
296
373
  expect(isNotBigint(-456n)).toBe(false);
297
374
  });
298
375
 
299
376
  test('should return true for non-bigint values', () => {
300
377
  expect(isNotBigint(123)).toBe(true);
378
+
301
379
  expect(isNotBigint('123')).toBe(true);
380
+
302
381
  expect(isNotBigint(true)).toBe(true);
382
+
303
383
  expect(isNotBigint(false)).toBe(true);
384
+
304
385
  expect(isNotBigint(null)).toBe(true);
386
+
305
387
  expect(isNotBigint(undefined)).toBe(true);
388
+
306
389
  expect(isNotBigint({})).toBe(true);
390
+
307
391
  expect(isNotBigint(Symbol('test'))).toBe(true);
308
392
  });
309
393
 
310
394
  test('should act as a type guard', () => {
311
395
  const value: number | bigint = 123;
396
+
312
397
  if (isNotBigint(value)) {
313
398
  expectType<typeof value, number>('<=');
314
399
 
@@ -320,25 +405,37 @@ describe(isNotBigint, () => {
320
405
  describe(isNotString, () => {
321
406
  test('should return false for string values', () => {
322
407
  expect(isNotString('')).toBe(false);
408
+
323
409
  expect(isNotString('hello')).toBe(false);
410
+
324
411
  expect(isNotString('123')).toBe(false);
412
+
325
413
  expect(isNotString(`template`)).toBe(false);
326
414
  });
327
415
 
328
416
  test('should return true for non-string values', () => {
329
417
  expect(isNotString(123)).toBe(true);
418
+
330
419
  expect(isNotString(true)).toBe(true);
420
+
331
421
  expect(isNotString(false)).toBe(true);
422
+
332
423
  expect(isNotString(null)).toBe(true);
424
+
333
425
  expect(isNotString(undefined)).toBe(true);
426
+
334
427
  expect(isNotString({})).toBe(true);
428
+
335
429
  expect(isNotString([])).toBe(true);
430
+
336
431
  expect(isNotString(Symbol('test'))).toBe(true);
432
+
337
433
  expect(isNotString(123n)).toBe(true);
338
434
  });
339
435
 
340
436
  test('should act as a type guard', () => {
341
437
  const value: string | number | boolean = 42;
438
+
342
439
  if (isNotString(value)) {
343
440
  expectType<typeof value, number | boolean>('<=');
344
441
 
@@ -352,24 +449,35 @@ describe(isNotString, () => {
352
449
  describe(isNotSymbol, () => {
353
450
  test('should return false for symbol values', () => {
354
451
  expect(isNotSymbol(Symbol())).toBe(false);
452
+
355
453
  expect(isNotSymbol(Symbol('test'))).toBe(false);
454
+
356
455
  expect(isNotSymbol(Symbol.iterator)).toBe(false);
357
456
  });
358
457
 
359
458
  test('should return true for non-symbol values', () => {
360
459
  expect(isNotSymbol('symbol')).toBe(true);
460
+
361
461
  expect(isNotSymbol(123)).toBe(true);
462
+
362
463
  expect(isNotSymbol(true)).toBe(true);
464
+
363
465
  expect(isNotSymbol(false)).toBe(true);
466
+
364
467
  expect(isNotSymbol(null)).toBe(true);
468
+
365
469
  expect(isNotSymbol(undefined)).toBe(true);
470
+
366
471
  expect(isNotSymbol({})).toBe(true);
472
+
367
473
  expect(isNotSymbol([])).toBe(true);
474
+
368
475
  expect(isNotSymbol(123n)).toBe(true);
369
476
  });
370
477
 
371
478
  test('should act as a type guard', () => {
372
479
  const value: string | number | symbol = 'test';
480
+
373
481
  if (isNotSymbol(value)) {
374
482
  expectType<typeof value, string | number>('<=');
375
483
 
@@ -381,22 +489,31 @@ describe(isNotSymbol, () => {
381
489
  describe(isNullish, () => {
382
490
  test('should return true for null and undefined', () => {
383
491
  expect(isNullish(null)).toBe(true);
492
+
384
493
  expect(isNullish(undefined)).toBe(true);
385
494
  });
386
495
 
387
496
  test('should return false for non-nullish values', () => {
388
497
  expect(isNullish(0)).toBe(false);
498
+
389
499
  expect(isNullish(false)).toBe(false);
500
+
390
501
  expect(isNullish('')).toBe(false);
502
+
391
503
  expect(isNullish('null')).toBe(false);
504
+
392
505
  expect(isNullish('undefined')).toBe(false);
506
+
393
507
  expect(isNullish({})).toBe(false);
508
+
394
509
  expect(isNullish([])).toBe(false);
510
+
395
511
  expect(isNullish(Number.NaN)).toBe(false);
396
512
  });
397
513
 
398
514
  test('should act as a type guard', () => {
399
515
  const value: string | null | undefined = null;
516
+
400
517
  if (isNullish(value)) {
401
518
  expectType<typeof value, null | undefined>('<=');
402
519
 
@@ -408,6 +525,7 @@ describe(isNullish, () => {
408
525
  test('should handle edge cases', () => {
409
526
  // Test that it uses loose equality (==)
410
527
  expect(isNullish(null)).toBe(true);
528
+
411
529
  expect(isNullish(undefined)).toBe(true);
412
530
  });
413
531
  });
@@ -415,24 +533,35 @@ describe(isNullish, () => {
415
533
  describe(isNonNullish, () => {
416
534
  test('should return false for null and undefined', () => {
417
535
  expect(isNonNullish(null)).toBe(false);
536
+
418
537
  expect(isNonNullish(undefined)).toBe(false);
419
538
  });
420
539
 
421
540
  test('should return true for non-nullish values', () => {
422
541
  expect(isNonNullish(0)).toBe(true);
542
+
423
543
  expect(isNonNullish(false)).toBe(true);
544
+
424
545
  expect(isNonNullish('')).toBe(true);
546
+
425
547
  expect(isNonNullish('null')).toBe(true);
548
+
426
549
  expect(isNonNullish('undefined')).toBe(true);
550
+
427
551
  expect(isNonNullish({})).toBe(true);
552
+
428
553
  expect(isNonNullish([])).toBe(true);
554
+
429
555
  expect(isNonNullish(Number.NaN)).toBe(true);
556
+
430
557
  expect(isNonNullish(Symbol('test'))).toBe(true);
558
+
431
559
  expect(isNonNullish(123n)).toBe(true);
432
560
  });
433
561
 
434
562
  test('should act as a type guard', () => {
435
563
  const value: string | null | undefined = 'test';
564
+
436
565
  if (isNonNullish(value)) {
437
566
  expectType<typeof value, string>('<=');
438
567
 
@@ -450,6 +579,7 @@ describe(isNonNullish, () => {
450
579
  ];
451
580
 
452
581
  const definedItems = items.filter(isNonNullish);
582
+
453
583
  expectType<typeof definedItems, string[]>('<=');
454
584
 
455
585
  expect(definedItems).toHaveLength(3);
@@ -459,6 +589,7 @@ describe(isNonNullish, () => {
459
589
 
460
590
  test('should handle complex union types', () => {
461
591
  type ComplexType = string | number | boolean | null | undefined;
592
+
462
593
  const value: ComplexType = 42;
463
594
 
464
595
  if (isNonNullish(value)) {
@@ -494,12 +625,15 @@ describe('type guard behavior in complex scenarios', () => {
494
625
  ];
495
626
 
496
627
  const nonNullish = mixed.filter(isNonNullish);
628
+
497
629
  expectType<typeof nonNullish, (string | number | boolean)[]>('<=');
498
630
 
499
631
  const nonBooleans = nonNullish.filter(isNotBoolean);
632
+
500
633
  expectType<typeof nonBooleans, (string | number)[]>('<=');
501
634
 
502
635
  const strings = nonBooleans.filter(isNotNumber);
636
+
503
637
  expectType<typeof strings, string[]>('<=');
504
638
 
505
639
  assert.deepStrictEqual(strings, ['hello', 'world']);
@@ -19,6 +19,7 @@
19
19
  *
20
20
  * ```ts
21
21
  * const user = { id: 1, name: 'Ada' } as const;
22
+ *
22
23
  * const maybeKey: string = 'name';
23
24
  *
24
25
  * if (keyIsIn(maybeKey, user)) {
@@ -40,11 +40,15 @@ import { SafeInt, asSafeInt } from '../number/index.mjs';
40
40
  *
41
41
  * ```ts
42
42
  * const zeroToThree = Array.from(range(0, 3));
43
+ *
43
44
  * const threeToZero = Array.from(range(3, 0, -1));
45
+ *
44
46
  * const defaultEnd = Array.from(range(4));
45
47
  *
46
48
  * assert.deepStrictEqual(zeroToThree, [0, 1, 2]);
49
+ *
47
50
  * assert.deepStrictEqual(threeToZero, [3, 2, 1]);
51
+ *
48
52
  * assert.deepStrictEqual(defaultEnd, [0, 1, 2, 3]);
49
53
  * ```
50
54
  *
@@ -86,15 +90,20 @@ export function* range(
86
90
  switch (args.length) {
87
91
  case 1: {
88
92
  const [end] = args;
93
+
89
94
  for (const i of range(0, end, 1)) {
90
95
  yield i;
91
96
  }
97
+
92
98
  break;
93
99
  }
94
100
 
95
101
  case 2:
102
+
103
+ // falls through
96
104
  case 3: {
97
105
  const [start, end, step = 1] = args;
106
+
98
107
  for (
99
108
  let mut_i: SafeInt = asSafeInt(start);
100
109
  step > 0 ? mut_i < end : mut_i > end;
package/src/json/json.mts CHANGED
@@ -21,12 +21,15 @@ export namespace Json {
21
21
  *
22
22
  * ```ts
23
23
  * const validJson = '{"name": "Alice", "age": 30}';
24
+ *
24
25
  * const invalidJson = '{invalid json}';
25
26
  *
26
27
  * const parsed = Json.parse(validJson);
28
+ *
27
29
  * const failed = Json.parse(invalidJson);
28
30
  *
29
31
  * assert.ok(Result.isOk(parsed));
32
+ *
30
33
  * if (Result.isOk(parsed)) {
31
34
  * assert.deepStrictEqual(parsed.value, { name: 'Alice', age: 30 });
32
35
  * }
@@ -35,10 +38,12 @@ export namespace Json {
35
38
  *
36
39
  * // With reviver
37
40
  * const jsonWithDate = '{"created": "2024-01-01T00:00:00.000Z"}';
41
+ *
38
42
  * const withReviver = Json.parse(jsonWithDate, (key, value) => {
39
43
  * if (key === 'created' && typeof value === 'string') {
40
44
  * return new Date(value);
41
45
  * }
46
+ *
42
47
  * return value;
43
48
  * });
44
49
  *
@@ -71,6 +76,7 @@ export namespace Json {
71
76
  );
72
77
  } catch (error: unknown) {
73
78
  const errStr = unknownToString(error);
79
+
74
80
  return Result.err(errStr);
75
81
  }
76
82
  };
@@ -91,22 +97,27 @@ export namespace Json {
91
97
  *
92
98
  * // Basic stringify
93
99
  * const basic = Json.stringify(data);
100
+ *
94
101
  * assert.ok(Result.isOk(basic));
102
+ *
95
103
  * if (Result.isOk(basic)) {
96
104
  * assert(basic.value === '{"name":"Bob","age":25,"active":true}');
97
105
  * }
98
106
  *
99
107
  * // With formatting
100
108
  * const formatted = Json.stringify(data, undefined, 2);
109
+ *
101
110
  * assert.ok(Result.isOk(formatted));
102
111
  *
103
112
  * // With replacer
104
113
  * const filtered = Json.stringify(data, (key, value) => {
105
114
  * if (key === 'age') return undefined; // omit age field
115
+ *
106
116
  * return value;
107
117
  * });
108
118
  *
109
119
  * assert.ok(Result.isOk(filtered));
120
+ *
110
121
  * if (Result.isOk(filtered)) {
111
122
  * assert(isString(filtered.value));
112
123
  *
@@ -143,6 +154,7 @@ export namespace Json {
143
154
  return Result.ok(JSON.stringify(value, replacer, space));
144
155
  } catch (error) {
145
156
  const errStr = unknownToString(error);
157
+
146
158
  return Result.err(errStr);
147
159
  }
148
160
  };
@@ -171,21 +183,26 @@ export namespace Json {
171
183
  * const safeJson = Json.stringifySelected(user, ['id', 'name', 'role']);
172
184
  *
173
185
  * assert.ok(Result.isOk(safeJson));
186
+ *
174
187
  * if (Result.isOk(safeJson)) {
175
188
  * assert(isString(safeJson.value));
176
189
  *
177
190
  * const parsed: unknown = JSON.parse(safeJson.value);
191
+ *
178
192
  * assert.deepStrictEqual(parsed, {
179
193
  * id: 1,
180
194
  * name: 'Charlie',
181
195
  * role: 'admin',
182
196
  * });
197
+ *
183
198
  * assert.ok(!safeJson.value.includes('password'));
199
+ *
184
200
  * assert.ok(!safeJson.value.includes('email'));
185
201
  * }
186
202
  *
187
203
  * // With formatting
188
204
  * const formatted = Json.stringifySelected(user, ['id', 'name'], 2);
205
+ *
189
206
  * assert.ok(Result.isOk(formatted));
190
207
  * ```
191
208
  *
@@ -218,6 +235,7 @@ export namespace Json {
218
235
  );
219
236
  } catch (error) {
220
237
  const errStr = unknownToString(error);
238
+
221
239
  return Result.err(errStr);
222
240
  }
223
241
  };
@@ -250,16 +268,20 @@ export namespace Json {
250
268
  * const sorted = Json.stringifySortedKey(unorderedData);
251
269
  *
252
270
  * assert.ok(Result.isOk(sorted));
271
+ *
253
272
  * if (Result.isOk(sorted)) {
254
273
  * // Keys should appear in alphabetical order
255
274
  * const expected =
256
275
  * '{"apple":2,"mango":3,"nested":{"alpha":"a","beta":"b","zulu":"z"},"zebra":1}';
276
+ *
257
277
  * assert(sorted.value === expected);
258
278
  * }
259
279
  *
260
280
  * // With formatting
261
281
  * const formatted = Json.stringifySortedKey(unorderedData, 2);
282
+ *
262
283
  * assert.ok(Result.isOk(formatted));
284
+ *
263
285
  * if (Result.isOk(formatted)) {
264
286
  * assert(isString(formatted.value));
265
287
  *
@@ -267,9 +289,11 @@ export namespace Json {
267
289
  * assert.ok(
268
290
  * formatted.value.indexOf('"apple"') < formatted.value.indexOf('"mango"'),
269
291
  * );
292
+ *
270
293
  * assert.ok(
271
294
  * formatted.value.indexOf('"mango"') < formatted.value.indexOf('"nested"'),
272
295
  * );
296
+ *
273
297
  * assert.ok(
274
298
  * formatted.value.indexOf('"nested"') < formatted.value.indexOf('"zebra"'),
275
299
  * );
@@ -321,10 +345,13 @@ const keysDeepImpl = (
321
345
  ): void => {
322
346
  for (const k of Object.keys(obj)) {
323
347
  mut_keys.push(k);
348
+
324
349
  const o = obj[k];
350
+
325
351
  if (isRecord(o)) {
326
352
  keysDeepImpl(o, mut_keys);
327
353
  }
354
+
328
355
  if (Array.isArray(o)) {
329
356
  for (const li of o) {
330
357
  if (isRecord(li)) {
@@ -349,6 +376,8 @@ const keysDeepImpl = (
349
376
  */
350
377
  const keysDeep = (obj: UnknownRecord): readonly string[] => {
351
378
  const mut_keys: string[] = [];
379
+
352
380
  keysDeepImpl(obj, mut_keys);
381
+
353
382
  return mut_keys;
354
383
  };