ts-data-forge 9.0.0 → 9.0.1

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 (409) hide show
  1. package/dist/array/impl/array-utils-creation.d.mts.map +1 -1
  2. package/dist/array/impl/array-utils-creation.mjs +17 -112
  3. package/dist/array/impl/array-utils-creation.mjs.map +1 -1
  4. package/dist/array/impl/array-utils-element-access.d.mts.map +1 -1
  5. package/dist/array/impl/array-utils-element-access.mjs +22 -61
  6. package/dist/array/impl/array-utils-element-access.mjs.map +1 -1
  7. package/dist/array/impl/array-utils-iterators.d.mts.map +1 -1
  8. package/dist/array/impl/array-utils-iterators.mjs +9 -63
  9. package/dist/array/impl/array-utils-iterators.mjs.map +1 -1
  10. package/dist/array/impl/array-utils-modification.mjs +78 -78
  11. package/dist/array/impl/array-utils-modification.mjs.map +1 -1
  12. package/dist/array/impl/array-utils-reducing-value.mjs +95 -89
  13. package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
  14. package/dist/array/impl/array-utils-search.mjs +100 -92
  15. package/dist/array/impl/array-utils-search.mjs.map +1 -1
  16. package/dist/array/impl/array-utils-set-op.d.mts.map +1 -1
  17. package/dist/array/impl/array-utils-set-op.mjs +31 -141
  18. package/dist/array/impl/array-utils-set-op.mjs.map +1 -1
  19. package/dist/array/impl/array-utils-size.d.mts.map +1 -1
  20. package/dist/array/impl/array-utils-size.mjs +4 -8
  21. package/dist/array/impl/array-utils-size.mjs.map +1 -1
  22. package/dist/array/impl/array-utils-slice-clamped.mjs +11 -12
  23. package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -1
  24. package/dist/array/impl/array-utils-slicing.d.mts.map +1 -1
  25. package/dist/array/impl/array-utils-slicing.mjs +44 -96
  26. package/dist/array/impl/array-utils-slicing.mjs.map +1 -1
  27. package/dist/array/impl/array-utils-transformation.d.mts +1 -1
  28. package/dist/array/impl/array-utils-transformation.d.mts.map +1 -1
  29. package/dist/array/impl/array-utils-transformation.mjs +150 -292
  30. package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
  31. package/dist/array/impl/array-utils-validation.d.mts.map +1 -1
  32. package/dist/array/impl/array-utils-validation.mjs +18 -169
  33. package/dist/array/impl/array-utils-validation.mjs.map +1 -1
  34. package/dist/collections/imap-mapped.d.mts.map +1 -1
  35. package/dist/collections/imap-mapped.mjs +243 -330
  36. package/dist/collections/imap-mapped.mjs.map +1 -1
  37. package/dist/collections/imap.d.mts.map +1 -1
  38. package/dist/collections/imap.mjs +190 -275
  39. package/dist/collections/imap.mjs.map +1 -1
  40. package/dist/collections/iset-mapped.d.mts +1 -1
  41. package/dist/collections/iset-mapped.d.mts.map +1 -1
  42. package/dist/collections/iset-mapped.mjs +222 -444
  43. package/dist/collections/iset-mapped.mjs.map +1 -1
  44. package/dist/collections/iset.d.mts +1 -1
  45. package/dist/collections/iset.d.mts.map +1 -1
  46. package/dist/collections/iset.mjs +158 -324
  47. package/dist/collections/iset.mjs.map +1 -1
  48. package/dist/collections/queue.d.mts.map +1 -1
  49. package/dist/collections/queue.mjs +106 -178
  50. package/dist/collections/queue.mjs.map +1 -1
  51. package/dist/collections/stack.d.mts.map +1 -1
  52. package/dist/collections/stack.mjs +95 -165
  53. package/dist/collections/stack.mjs.map +1 -1
  54. package/dist/expect-type.d.mts +1 -1
  55. package/dist/expect-type.d.mts.map +1 -1
  56. package/dist/expect-type.mjs +1 -69
  57. package/dist/expect-type.mjs.map +1 -1
  58. package/dist/functional/match.mjs +9 -9
  59. package/dist/functional/match.mjs.map +1 -1
  60. package/dist/functional/optional/impl/optional-expect-to-be.mjs +13 -14
  61. package/dist/functional/optional/impl/optional-expect-to-be.mjs.map +1 -1
  62. package/dist/functional/optional/impl/optional-filter.mjs +14 -15
  63. package/dist/functional/optional/impl/optional-filter.mjs.map +1 -1
  64. package/dist/functional/optional/impl/optional-flat-map.mjs +10 -11
  65. package/dist/functional/optional/impl/optional-flat-map.mjs.map +1 -1
  66. package/dist/functional/optional/impl/optional-from-nullable.d.mts.map +1 -1
  67. package/dist/functional/optional/impl/optional-from-nullable.mjs +1 -25
  68. package/dist/functional/optional/impl/optional-from-nullable.mjs.map +1 -1
  69. package/dist/functional/optional/impl/optional-is-none.d.mts.map +1 -1
  70. package/dist/functional/optional/impl/optional-is-none.mjs +0 -19
  71. package/dist/functional/optional/impl/optional-is-none.mjs.map +1 -1
  72. package/dist/functional/optional/impl/optional-is-optional.d.mts.map +1 -1
  73. package/dist/functional/optional/impl/optional-is-optional.mjs +1 -23
  74. package/dist/functional/optional/impl/optional-is-optional.mjs.map +1 -1
  75. package/dist/functional/optional/impl/optional-is-some.d.mts.map +1 -1
  76. package/dist/functional/optional/impl/optional-is-some.mjs +0 -20
  77. package/dist/functional/optional/impl/optional-is-some.mjs.map +1 -1
  78. package/dist/functional/optional/impl/optional-map.mjs +13 -14
  79. package/dist/functional/optional/impl/optional-map.mjs.map +1 -1
  80. package/dist/functional/optional/impl/optional-none.mjs +0 -16
  81. package/dist/functional/optional/impl/optional-none.mjs.map +1 -1
  82. package/dist/functional/optional/impl/optional-or-else.mjs +10 -11
  83. package/dist/functional/optional/impl/optional-or-else.mjs.map +1 -1
  84. package/dist/functional/optional/impl/optional-some.d.mts.map +1 -1
  85. package/dist/functional/optional/impl/optional-some.mjs +2 -21
  86. package/dist/functional/optional/impl/optional-some.mjs.map +1 -1
  87. package/dist/functional/optional/impl/optional-to-nullable.d.mts.map +1 -1
  88. package/dist/functional/optional/impl/optional-to-nullable.mjs +1 -27
  89. package/dist/functional/optional/impl/optional-to-nullable.mjs.map +1 -1
  90. package/dist/functional/optional/impl/optional-unwrap-or.mjs +9 -10
  91. package/dist/functional/optional/impl/optional-unwrap-or.mjs.map +1 -1
  92. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts.map +1 -1
  93. package/dist/functional/optional/impl/optional-unwrap-throw.mjs +4 -32
  94. package/dist/functional/optional/impl/optional-unwrap-throw.mjs.map +1 -1
  95. package/dist/functional/optional/impl/optional-unwrap.mjs +4 -4
  96. package/dist/functional/optional/impl/optional-unwrap.mjs.map +1 -1
  97. package/dist/functional/optional/impl/optional-zip.d.mts.map +1 -1
  98. package/dist/functional/optional/impl/optional-zip.mjs +1 -35
  99. package/dist/functional/optional/impl/optional-zip.mjs.map +1 -1
  100. package/dist/functional/optional/impl/tag.mjs +2 -3
  101. package/dist/functional/optional/impl/tag.mjs.map +1 -1
  102. package/dist/functional/pipe.d.mts.map +1 -1
  103. package/dist/functional/pipe.mjs +9 -34
  104. package/dist/functional/pipe.mjs.map +1 -1
  105. package/dist/functional/result/impl/result-err.d.mts.map +1 -1
  106. package/dist/functional/result/impl/result-err.mjs +2 -27
  107. package/dist/functional/result/impl/result-err.mjs.map +1 -1
  108. package/dist/functional/result/impl/result-expect-to-be.mjs +13 -15
  109. package/dist/functional/result/impl/result-expect-to-be.mjs.map +1 -1
  110. package/dist/functional/result/impl/result-flat-map.mjs +16 -16
  111. package/dist/functional/result/impl/result-flat-map.mjs.map +1 -1
  112. package/dist/functional/result/impl/result-fold.mjs +16 -16
  113. package/dist/functional/result/impl/result-fold.mjs.map +1 -1
  114. package/dist/functional/result/impl/result-from-promise.d.mts.map +1 -1
  115. package/dist/functional/result/impl/result-from-promise.mjs +4 -31
  116. package/dist/functional/result/impl/result-from-promise.mjs.map +1 -1
  117. package/dist/functional/result/impl/result-from-throwable.d.mts.map +1 -1
  118. package/dist/functional/result/impl/result-from-throwable.mjs +8 -38
  119. package/dist/functional/result/impl/result-from-throwable.mjs.map +1 -1
  120. package/dist/functional/result/impl/result-is-err.d.mts.map +1 -1
  121. package/dist/functional/result/impl/result-is-err.mjs +0 -19
  122. package/dist/functional/result/impl/result-is-err.mjs.map +1 -1
  123. package/dist/functional/result/impl/result-is-ok.d.mts.map +1 -1
  124. package/dist/functional/result/impl/result-is-ok.mjs +0 -19
  125. package/dist/functional/result/impl/result-is-ok.mjs.map +1 -1
  126. package/dist/functional/result/impl/result-is-result.d.mts.map +1 -1
  127. package/dist/functional/result/impl/result-is-result.mjs +1 -23
  128. package/dist/functional/result/impl/result-is-result.mjs.map +1 -1
  129. package/dist/functional/result/impl/result-map-err.mjs +16 -16
  130. package/dist/functional/result/impl/result-map-err.mjs.map +1 -1
  131. package/dist/functional/result/impl/result-map.mjs +16 -16
  132. package/dist/functional/result/impl/result-map.mjs.map +1 -1
  133. package/dist/functional/result/impl/result-ok.d.mts.map +1 -1
  134. package/dist/functional/result/impl/result-ok.mjs +2 -27
  135. package/dist/functional/result/impl/result-ok.mjs.map +1 -1
  136. package/dist/functional/result/impl/result-or-else.mjs +10 -12
  137. package/dist/functional/result/impl/result-or-else.mjs.map +1 -1
  138. package/dist/functional/result/impl/result-swap.d.mts.map +1 -1
  139. package/dist/functional/result/impl/result-swap.mjs +4 -22
  140. package/dist/functional/result/impl/result-swap.mjs.map +1 -1
  141. package/dist/functional/result/impl/result-to-optional.d.mts.map +1 -1
  142. package/dist/functional/result/impl/result-to-optional.mjs +0 -27
  143. package/dist/functional/result/impl/result-to-optional.mjs.map +1 -1
  144. package/dist/functional/result/impl/result-unwrap-err-or.mjs +9 -11
  145. package/dist/functional/result/impl/result-unwrap-err-or.mjs.map +1 -1
  146. package/dist/functional/result/impl/result-unwrap-err-throw.d.mts.map +1 -1
  147. package/dist/functional/result/impl/result-unwrap-err-throw.mjs +13 -40
  148. package/dist/functional/result/impl/result-unwrap-err-throw.mjs.map +1 -1
  149. package/dist/functional/result/impl/result-unwrap-err.d.mts.map +1 -1
  150. package/dist/functional/result/impl/result-unwrap-err.mjs +4 -32
  151. package/dist/functional/result/impl/result-unwrap-err.mjs.map +1 -1
  152. package/dist/functional/result/impl/result-unwrap-ok-or.mjs +9 -11
  153. package/dist/functional/result/impl/result-unwrap-ok-or.mjs.map +1 -1
  154. package/dist/functional/result/impl/result-unwrap-ok.mjs +4 -4
  155. package/dist/functional/result/impl/result-unwrap-ok.mjs.map +1 -1
  156. package/dist/functional/result/impl/result-unwrap-throw.d.mts.map +1 -1
  157. package/dist/functional/result/impl/result-unwrap-throw.mjs +4 -35
  158. package/dist/functional/result/impl/result-unwrap-throw.mjs.map +1 -1
  159. package/dist/functional/result/impl/result-zip.d.mts.map +1 -1
  160. package/dist/functional/result/impl/result-zip.mjs +1 -34
  161. package/dist/functional/result/impl/result-zip.mjs.map +1 -1
  162. package/dist/functional/result/impl/tag.mjs +2 -3
  163. package/dist/functional/result/impl/tag.mjs.map +1 -1
  164. package/dist/functional/ternary-result/impl/tag.mjs +3 -5
  165. package/dist/functional/ternary-result/impl/tag.mjs.map +1 -1
  166. package/dist/functional/ternary-result/impl/ternary-result-err.d.mts.map +1 -1
  167. package/dist/functional/ternary-result/impl/ternary-result-err.mjs +2 -15
  168. package/dist/functional/ternary-result/impl/ternary-result-err.mjs.map +1 -1
  169. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs +13 -13
  170. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs.map +1 -1
  171. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs +27 -26
  172. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs.map +1 -1
  173. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs +21 -22
  174. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs.map +1 -1
  175. package/dist/functional/ternary-result/impl/ternary-result-from-promise.d.mts.map +1 -1
  176. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs +4 -20
  177. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs.map +1 -1
  178. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.d.mts.map +1 -1
  179. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs +7 -25
  180. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs.map +1 -1
  181. package/dist/functional/ternary-result/impl/ternary-result-is-err.d.mts.map +1 -1
  182. package/dist/functional/ternary-result/impl/ternary-result-is-err.mjs +0 -17
  183. package/dist/functional/ternary-result/impl/ternary-result-is-err.mjs.map +1 -1
  184. package/dist/functional/ternary-result/impl/ternary-result-is-ok.d.mts.map +1 -1
  185. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs +0 -19
  186. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs.map +1 -1
  187. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.d.mts.map +1 -1
  188. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs +1 -25
  189. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs.map +1 -1
  190. package/dist/functional/ternary-result/impl/ternary-result-is-warn.d.mts.map +1 -1
  191. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs +0 -18
  192. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs.map +1 -1
  193. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs +13 -15
  194. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs.map +1 -1
  195. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs +18 -18
  196. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs.map +1 -1
  197. package/dist/functional/ternary-result/impl/ternary-result-map.mjs +21 -22
  198. package/dist/functional/ternary-result/impl/ternary-result-map.mjs.map +1 -1
  199. package/dist/functional/ternary-result/impl/ternary-result-ok.d.mts.map +1 -1
  200. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs +2 -16
  201. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs.map +1 -1
  202. package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs +9 -9
  203. package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs.map +1 -1
  204. package/dist/functional/ternary-result/impl/ternary-result-to-optional.d.mts.map +1 -1
  205. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs +4 -22
  206. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs.map +1 -1
  207. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs +9 -9
  208. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs.map +1 -1
  209. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.d.mts.map +1 -1
  210. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs +12 -27
  211. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs.map +1 -1
  212. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.d.mts.map +1 -1
  213. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs +4 -19
  214. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs.map +1 -1
  215. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs +9 -9
  216. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs.map +1 -1
  217. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs +4 -5
  218. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs.map +1 -1
  219. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.d.mts.map +1 -1
  220. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs +15 -27
  221. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs.map +1 -1
  222. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs +9 -9
  223. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs.map +1 -1
  224. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.d.mts.map +1 -1
  225. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs +10 -24
  226. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs.map +1 -1
  227. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.d.mts.map +1 -1
  228. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs +4 -19
  229. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs.map +1 -1
  230. package/dist/functional/ternary-result/impl/ternary-result-warn.d.mts.map +1 -1
  231. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs +3 -19
  232. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs.map +1 -1
  233. package/dist/functional/ternary-result/impl/ternary-result-zip.d.mts.map +1 -1
  234. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs +14 -45
  235. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs.map +1 -1
  236. package/dist/functional/ternary-result/impl/variant-name.d.mts +1 -1
  237. package/dist/functional/ternary-result/impl/variant-name.d.mts.map +1 -1
  238. package/dist/functional/ternary-result/impl/variant-name.mjs +8 -9
  239. package/dist/functional/ternary-result/impl/variant-name.mjs.map +1 -1
  240. package/dist/guard/has-key.d.mts.map +1 -1
  241. package/dist/guard/has-key.mjs +0 -41
  242. package/dist/guard/has-key.mjs.map +1 -1
  243. package/dist/guard/is-length-bounded-string.d.mts.map +1 -1
  244. package/dist/guard/is-length-bounded-string.mjs +0 -157
  245. package/dist/guard/is-length-bounded-string.mjs.map +1 -1
  246. package/dist/guard/is-non-empty-string.d.mts +1 -1
  247. package/dist/guard/is-non-empty-string.d.mts.map +1 -1
  248. package/dist/guard/is-non-empty-string.mjs +1 -38
  249. package/dist/guard/is-non-empty-string.mjs.map +1 -1
  250. package/dist/guard/is-non-null-object.d.mts.map +1 -1
  251. package/dist/guard/is-non-null-object.mjs +1 -35
  252. package/dist/guard/is-non-null-object.mjs.map +1 -1
  253. package/dist/guard/is-primitive.d.mts.map +1 -1
  254. package/dist/guard/is-primitive.mjs +12 -43
  255. package/dist/guard/is-primitive.mjs.map +1 -1
  256. package/dist/guard/is-record.d.mts.map +1 -1
  257. package/dist/guard/is-record.mjs +0 -86
  258. package/dist/guard/is-record.mjs.map +1 -1
  259. package/dist/guard/is-type.d.mts.map +1 -1
  260. package/dist/guard/is-type.mjs +12 -399
  261. package/dist/guard/is-type.mjs.map +1 -1
  262. package/dist/guard/key-is-in.d.mts.map +1 -1
  263. package/dist/guard/key-is-in.mjs +0 -40
  264. package/dist/guard/key-is-in.mjs.map +1 -1
  265. package/dist/iterator/range.mjs +16 -16
  266. package/dist/iterator/range.mjs.map +1 -1
  267. package/dist/json/json.d.mts.map +1 -1
  268. package/dist/json/json.mjs +52 -340
  269. package/dist/json/json.mjs.map +1 -1
  270. package/dist/number/branded-types/finite-number.d.mts +3 -3
  271. package/dist/number/branded-types/finite-number.mjs +135 -154
  272. package/dist/number/branded-types/finite-number.mjs.map +1 -1
  273. package/dist/number/branded-types/int.d.mts +4 -4
  274. package/dist/number/branded-types/int.mjs +205 -245
  275. package/dist/number/branded-types/int.mjs.map +1 -1
  276. package/dist/number/branded-types/int16.d.mts +15 -15
  277. package/dist/number/branded-types/int16.mjs +116 -123
  278. package/dist/number/branded-types/int16.mjs.map +1 -1
  279. package/dist/number/branded-types/int32.d.mts +11 -11
  280. package/dist/number/branded-types/int32.mjs +116 -123
  281. package/dist/number/branded-types/int32.mjs.map +1 -1
  282. package/dist/number/branded-types/negative-finite-number.d.mts +4 -4
  283. package/dist/number/branded-types/negative-finite-number.mjs +129 -144
  284. package/dist/number/branded-types/negative-finite-number.mjs.map +1 -1
  285. package/dist/number/branded-types/negative-int.d.mts +5 -5
  286. package/dist/number/branded-types/negative-int.mjs +94 -113
  287. package/dist/number/branded-types/negative-int.mjs.map +1 -1
  288. package/dist/number/branded-types/negative-safe-int.d.mts +5 -5
  289. package/dist/number/branded-types/negative-safe-int.mjs +103 -124
  290. package/dist/number/branded-types/negative-safe-int.mjs.map +1 -1
  291. package/dist/number/branded-types/non-negative-finite-number.d.mts +5 -5
  292. package/dist/number/branded-types/non-negative-finite-number.mjs +136 -142
  293. package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
  294. package/dist/number/branded-types/non-negative-int16.d.mts +16 -16
  295. package/dist/number/branded-types/non-negative-int16.mjs +109 -118
  296. package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
  297. package/dist/number/branded-types/non-negative-int32.d.mts +12 -12
  298. package/dist/number/branded-types/non-negative-int32.mjs +110 -119
  299. package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
  300. package/dist/number/branded-types/non-positive-finite-number.d.mts +3 -3
  301. package/dist/number/branded-types/non-positive-finite-number.mjs +120 -124
  302. package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -1
  303. package/dist/number/branded-types/non-positive-int.d.mts +4 -4
  304. package/dist/number/branded-types/non-positive-int.mjs +167 -212
  305. package/dist/number/branded-types/non-positive-int.mjs.map +1 -1
  306. package/dist/number/branded-types/non-positive-safe-int.d.mts +4 -4
  307. package/dist/number/branded-types/non-positive-safe-int.mjs +95 -106
  308. package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -1
  309. package/dist/number/branded-types/non-zero-finite-number.d.mts +4 -4
  310. package/dist/number/branded-types/non-zero-finite-number.mjs +114 -123
  311. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
  312. package/dist/number/branded-types/non-zero-int.d.mts +2 -2
  313. package/dist/number/branded-types/non-zero-int.mjs +72 -83
  314. package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
  315. package/dist/number/branded-types/non-zero-int16.d.mts +7 -7
  316. package/dist/number/branded-types/non-zero-int16.mjs +96 -107
  317. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
  318. package/dist/number/branded-types/non-zero-int32.d.mts +5 -5
  319. package/dist/number/branded-types/non-zero-int32.mjs +97 -108
  320. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
  321. package/dist/number/branded-types/non-zero-safe-int.d.mts +2 -2
  322. package/dist/number/branded-types/non-zero-safe-int.mjs +100 -111
  323. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
  324. package/dist/number/branded-types/non-zero-uint16.d.mts +8 -8
  325. package/dist/number/branded-types/non-zero-uint16.mjs +96 -107
  326. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
  327. package/dist/number/branded-types/non-zero-uint32.d.mts +6 -6
  328. package/dist/number/branded-types/non-zero-uint32.mjs +96 -107
  329. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
  330. package/dist/number/branded-types/positive-finite-number.d.mts +8 -8
  331. package/dist/number/branded-types/positive-finite-number.mjs +139 -141
  332. package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
  333. package/dist/number/branded-types/positive-int.d.mts +11 -11
  334. package/dist/number/branded-types/positive-int.mjs +228 -271
  335. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  336. package/dist/number/branded-types/positive-int16.d.mts +19 -19
  337. package/dist/number/branded-types/positive-int16.mjs +109 -118
  338. package/dist/number/branded-types/positive-int16.mjs.map +1 -1
  339. package/dist/number/branded-types/positive-int32.d.mts +15 -15
  340. package/dist/number/branded-types/positive-int32.mjs +109 -118
  341. package/dist/number/branded-types/positive-int32.mjs.map +1 -1
  342. package/dist/number/branded-types/positive-safe-int.d.mts +11 -11
  343. package/dist/number/branded-types/positive-safe-int.mjs +244 -275
  344. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  345. package/dist/number/branded-types/positive-uint16.d.mts +17 -17
  346. package/dist/number/branded-types/positive-uint16.mjs +109 -118
  347. package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
  348. package/dist/number/branded-types/positive-uint32.d.mts +13 -13
  349. package/dist/number/branded-types/positive-uint32.mjs +110 -119
  350. package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
  351. package/dist/number/branded-types/safe-int.d.mts +4 -4
  352. package/dist/number/branded-types/safe-int.mjs +251 -292
  353. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  354. package/dist/number/branded-types/safe-uint.d.mts +8 -8
  355. package/dist/number/branded-types/safe-uint.mjs +111 -119
  356. package/dist/number/branded-types/safe-uint.mjs.map +1 -1
  357. package/dist/number/branded-types/uint.d.mts +8 -8
  358. package/dist/number/branded-types/uint.mjs +198 -225
  359. package/dist/number/branded-types/uint.mjs.map +1 -1
  360. package/dist/number/branded-types/uint16.d.mts +14 -14
  361. package/dist/number/branded-types/uint16.mjs +109 -119
  362. package/dist/number/branded-types/uint16.mjs.map +1 -1
  363. package/dist/number/branded-types/uint32.d.mts +10 -10
  364. package/dist/number/branded-types/uint32.mjs +110 -117
  365. package/dist/number/branded-types/uint32.mjs.map +1 -1
  366. package/dist/number/enum/int8.mjs +119 -145
  367. package/dist/number/enum/int8.mjs.map +1 -1
  368. package/dist/number/enum/uint8.mjs +107 -121
  369. package/dist/number/enum/uint8.mjs.map +1 -1
  370. package/dist/number/num.d.mts +2 -2
  371. package/dist/number/num.d.mts.map +1 -1
  372. package/dist/number/num.mjs +76 -537
  373. package/dist/number/num.mjs.map +1 -1
  374. package/dist/number/refined-number-utils.d.mts +1 -1
  375. package/dist/number/refined-number-utils.d.mts.map +1 -1
  376. package/dist/number/refined-number-utils.mjs +127 -263
  377. package/dist/number/refined-number-utils.mjs.map +1 -1
  378. package/dist/object/object.d.mts.map +1 -1
  379. package/dist/object/object.mjs +107 -222
  380. package/dist/object/object.mjs.map +1 -1
  381. package/dist/others/cast-mutable.d.mts.map +1 -1
  382. package/dist/others/cast-mutable.mjs +8 -37
  383. package/dist/others/cast-mutable.mjs.map +1 -1
  384. package/dist/others/cast-readonly.d.mts.map +1 -1
  385. package/dist/others/cast-readonly.mjs +8 -36
  386. package/dist/others/cast-readonly.mjs.map +1 -1
  387. package/dist/others/debounce-function.d.mts.map +1 -1
  388. package/dist/others/debounce-function.mjs +7 -16
  389. package/dist/others/debounce-function.mjs.map +1 -1
  390. package/dist/others/fast-deep-equal.d.mts.map +1 -1
  391. package/dist/others/fast-deep-equal.mjs +43 -59
  392. package/dist/others/fast-deep-equal.mjs.map +1 -1
  393. package/dist/others/if-then.d.mts.map +1 -1
  394. package/dist/others/if-then.mjs +0 -29
  395. package/dist/others/if-then.mjs.map +1 -1
  396. package/dist/others/map-nullable.mjs +9 -9
  397. package/dist/others/map-nullable.mjs.map +1 -1
  398. package/dist/others/memoize-function.mjs +12 -12
  399. package/dist/others/memoize-function.mjs.map +1 -1
  400. package/dist/others/tuple.d.mts.map +1 -1
  401. package/dist/others/tuple.mjs +0 -50
  402. package/dist/others/tuple.mjs.map +1 -1
  403. package/dist/others/unknown-to-string.d.mts.map +1 -1
  404. package/dist/others/unknown-to-string.mjs +41 -88
  405. package/dist/others/unknown-to-string.mjs.map +1 -1
  406. package/dist/promise/promise.d.mts.map +1 -1
  407. package/dist/promise/promise.mjs +4 -49
  408. package/dist/promise/promise.mjs.map +1 -1
  409. package/package.json +8 -7
@@ -1,405 +1,18 @@
1
- /**
2
- * Type guard that checks if a value is `undefined`.
3
- *
4
- * **Type Narrowing Behavior:**
5
- *
6
- * - Narrows the input type to `undefined` when `true`
7
- * - Useful for explicit undefined checks
8
- *
9
- * @example
10
- *
11
- * ```ts
12
- * const values: readonly (number | undefined)[] = [1, undefined, 2] as const;
13
- *
14
- * const undefinedValues = values.filter(isUndefined);
15
- *
16
- * assert.deepStrictEqual(undefinedValues, [undefined]);
17
- * ```
18
- *
19
- * @param u - The value to check
20
- * @returns `true` if `u` is `undefined`, `false` otherwise. When `true`,
21
- * TypeScript narrows the type to `undefined`.
22
- */
23
- const isUndefined = (u) => u === undefined;
24
- /**
25
- * Type guard that checks if a value is not `undefined`.
26
- *
27
- * **Type Narrowing Behavior:**
28
- *
29
- * - Excludes `undefined` from the input type when `true`
30
- * - Preserves all other types in the union
31
- * - Commonly used to filter out undefined values
32
- *
33
- * @example
34
- *
35
- * ```ts
36
- * const values: readonly (number | undefined)[] = [1, undefined, 2] as const;
37
- *
38
- * const definedValues = values.filter(isNotUndefined);
39
- *
40
- * assert.deepStrictEqual(definedValues, [1, 2]);
41
- * ```
42
- *
43
- * @template T - The type of the input value
44
- * @param u - The value to check
45
- * @returns `true` if `u` is not `undefined`, `false` otherwise. When `true`,
46
- * TypeScript excludes `undefined` from the type.
47
- */
48
- const isNotUndefined = (u) => u !== undefined;
49
- /**
50
- * Type guard that checks if a value is a boolean.
51
- *
52
- * **Type Narrowing Behavior:**
53
- *
54
- * - Narrows `unknown` to `boolean` when `true`
55
- * - Preserves literal boolean types (`true | false`)
56
- *
57
- * @example
58
- *
59
- * ```ts
60
- * const flags: readonly unknown[] = [true, 'no', false] as const;
61
- *
62
- * const booleans = flags.filter(isBoolean);
63
- *
64
- * assert.deepStrictEqual(booleans, [true, false]);
65
- * ```
66
- *
67
- * @param u - The value to check
68
- * @returns `true` if `u` is a boolean, `false` otherwise. When `true`,
69
- * TypeScript narrows the type to `boolean`.
70
- */
71
- const isBoolean = (u) => typeof u === 'boolean';
72
- /**
73
- * Type guard that checks if a value is not a boolean.
74
- *
75
- * **Type Narrowing Behavior:**
76
- *
77
- * - Excludes `boolean` from the input type when `true`
78
- * - Preserves all other types in the union
79
- *
80
- * @example
81
- *
82
- * ```ts
83
- * const flags: readonly unknown[] = [true, 'no', false] as const;
84
- *
85
- * const nonBooleans = flags.filter(isNotBoolean);
86
- *
87
- * assert.deepStrictEqual(nonBooleans, ['no']);
88
- * ```
89
- *
90
- * @template T - The type of the input value
91
- * @param u - The value to check
92
- * @returns `true` if `u` is not a boolean, `false` otherwise. When `true`,
93
- * TypeScript excludes `boolean` from the type.
94
- */
95
- const isNotBoolean = (u) => typeof u !== 'boolean';
96
- /**
97
- * Type guard that checks if a value is a number.
98
- *
99
- * **Type Narrowing Behavior:**
100
- *
101
- * - Narrows `unknown` to `number` when `true`
102
- * - Includes `NaN`, `Infinity`, and `-Infinity` as valid numbers
103
- * - Preserves literal number types when possible
104
- *
105
- * @example
106
- *
107
- * ```ts
108
- * const mixed: readonly unknown[] = [1, '2', 3] as const;
109
- *
110
- * const numbers = mixed.filter(isNumber);
111
- *
112
- * assert.deepStrictEqual(numbers, [1, 3]);
113
- * ```
114
- *
115
- * @param u - The value to check
116
- * @returns `true` if `u` is a number, `false` otherwise. When `true`,
117
- * TypeScript narrows the type to `number`.
118
- */
119
- const isNumber = (u) => typeof u === 'number';
120
- /**
121
- * Type guard that checks if a value is not a number.
122
- *
123
- * **Type Narrowing Behavior:**
124
- *
125
- * - Excludes `number` from the input type when `true`
126
- * - Preserves all other types in the union
127
- *
128
- * @example
129
- *
130
- * ```ts
131
- * const mixed: readonly unknown[] = [1, '2', 3] as const;
132
- *
133
- * const nonNumbers = mixed.filter(isNotNumber);
134
- *
135
- * assert.deepStrictEqual(nonNumbers, ['2']);
136
- * ```
137
- *
138
- * @template T - The type of the input value
139
- * @param u - The value to check
140
- * @returns `true` if `u` is not a number, `false` otherwise. When `true`,
141
- * TypeScript excludes `number` from the type.
142
- */
143
- const isNotNumber = (u) => typeof u !== 'number';
144
- /**
145
- * Type guard that checks if a value is a bigint.
146
- *
147
- * **Type Narrowing Behavior:**
148
- *
149
- * - Narrows `unknown` to `bigint` when `true`
150
- * - Identifies values created with `BigInt()` constructor or `n` suffix
151
- *
152
- * @example
153
- *
154
- * ```ts
155
- * const values: readonly unknown[] = [1n, 2, 3n] as const;
156
- *
157
- * const bigints = values.filter(isBigint);
158
- *
159
- * assert.deepStrictEqual(bigints, [1n, 3n]);
160
- * ```
161
- *
162
- * @param u - The value to check
163
- * @returns `true` if `u` is a bigint, `false` otherwise. When `true`,
164
- * TypeScript narrows the type to `bigint`.
165
- */
166
- const isBigint = (u) => typeof u === 'bigint';
167
- /**
168
- * Type guard that checks if a value is not a bigint.
169
- *
170
- * **Type Narrowing Behavior:**
171
- *
172
- * - Excludes `bigint` from the input type when `true`
173
- * - Preserves all other types in the union
174
- *
175
- * @example
176
- *
177
- * ```ts
178
- * const values: readonly unknown[] = [1n, 2, 3n] as const;
179
- *
180
- * const nonBigints = values.filter(isNotBigint);
181
- *
182
- * assert.deepStrictEqual(nonBigints, [2]);
183
- * ```
184
- *
185
- * @template T - The type of the input value
186
- * @param u - The value to check
187
- * @returns `true` if `u` is not a bigint, `false` otherwise. When `true`,
188
- * TypeScript excludes `bigint` from the type.
189
- */
190
- const isNotBigint = (u) => typeof u !== 'bigint';
191
- /**
192
- * Type guard that checks if a value is a string.
193
- *
194
- * **Type Narrowing Behavior:**
195
- *
196
- * - Narrows `unknown` to `string` when `true`
197
- * - Preserves literal string types when possible
198
- * - Includes empty strings
199
- *
200
- * @example
201
- *
202
- * ```ts
203
- * const values: readonly unknown[] = ['Ada', 42, 'Lovelace'] as const;
204
- *
205
- * const strings = values.filter(isString);
206
- *
207
- * assert.deepStrictEqual(strings, ['Ada', 'Lovelace']);
208
- * ```
209
- *
210
- * @param u - The value to check
211
- * @returns `true` if `u` is a string, `false` otherwise. When `true`,
212
- * TypeScript narrows the type to `string`.
213
- */
214
- const isString = (u) => typeof u === 'string';
215
- /**
216
- * Type guard that checks if a value is not a string.
217
- *
218
- * **Type Narrowing Behavior:**
219
- *
220
- * - Excludes `string` from the input type when `true`
221
- * - Preserves all other types in the union
222
- *
223
- * @example
224
- *
225
- * ```ts
226
- * const values: readonly unknown[] = ['Ada', 42, 'Lovelace'] as const;
227
- *
228
- * const nonStrings = values.filter(isNotString);
229
- *
230
- * assert.deepStrictEqual(nonStrings, [42]);
231
- * ```
232
- *
233
- * @template T - The type of the input value
234
- * @param u - The value to check
235
- * @returns `true` if `u` is not a string, `false` otherwise. When `true`,
236
- * TypeScript excludes `string` from the type.
237
- */
238
- const isNotString = (u) => typeof u !== 'string';
239
- /**
240
- * Type guard that checks if a value is a symbol.
241
- *
242
- * **Type Narrowing Behavior:**
243
- *
244
- * - Narrows `unknown` to `symbol` when `true`
245
- * - Identifies values created with `Symbol()` constructor
246
- *
247
- * @example
248
- *
249
- * ```ts
250
- * const id = Symbol('id');
251
- *
252
- * const shared = Symbol.for('shared');
253
- *
254
- * const tokens: readonly unknown[] = [id, 'shared', shared] as const;
255
- *
256
- * const symbols = tokens.filter(isSymbol);
257
- *
258
- * assert.deepStrictEqual(symbols, [id, shared]);
259
- * ```
260
- *
261
- * @param u - The value to check
262
- * @returns `true` if `u` is a symbol, `false` otherwise. When `true`,
263
- * TypeScript narrows the type to `symbol`.
264
- */
265
- const isSymbol = (u) => typeof u === 'symbol';
266
- /**
267
- * Type guard that checks if a value is not a symbol.
268
- *
269
- * **Type Narrowing Behavior:**
270
- *
271
- * - Excludes `symbol` from the input type when `true`
272
- * - Preserves all other types in the union
273
- *
274
- * @example
275
- *
276
- * ```ts
277
- * const id = Symbol('id');
278
- *
279
- * const tokens: readonly unknown[] = [id, 'shared'] as const;
280
- *
281
- * const nonSymbols = tokens.filter(isNotSymbol);
282
- *
283
- * assert.deepStrictEqual(nonSymbols, ['shared']);
284
- * ```
285
- *
286
- * @template T - The type of the input value
287
- * @param u - The value to check
288
- * @returns `true` if `u` is not a symbol, `false` otherwise. When `true`,
289
- * TypeScript excludes `symbol` from the type.
290
- */
291
- const isNotSymbol = (u) => typeof u !== 'symbol';
292
- /**
293
- * Type guard that checks if a value is `null`.
294
- *
295
- * **Type Narrowing Behavior:**
296
- *
297
- * - Narrows the input type to `null` when `true`
298
- * - Useful for explicit null checks
299
- *
300
- * @example
301
- *
302
- * ```ts
303
- * const values: readonly (number | null)[] = [null, 5] as const;
304
- *
305
- * const nullValues = values.filter(isNull);
306
- *
307
- * assert.deepStrictEqual(nullValues, [null]);
308
- * ```
309
- *
310
- * @param u - The value to check
311
- * @returns `true` if `u` is `null`, `false` otherwise. When `true`, TypeScript
312
- * narrows the type to `null`.
313
- */
1
+ const isUndefined = (u) => u === void 0;
2
+ const isNotUndefined = (u) => u !== void 0;
3
+ const isBoolean = (u) => typeof u === "boolean";
4
+ const isNotBoolean = (u) => typeof u !== "boolean";
5
+ const isNumber = (u) => typeof u === "number";
6
+ const isNotNumber = (u) => typeof u !== "number";
7
+ const isBigint = (u) => typeof u === "bigint";
8
+ const isNotBigint = (u) => typeof u !== "bigint";
9
+ const isString = (u) => typeof u === "string";
10
+ const isNotString = (u) => typeof u !== "string";
11
+ const isSymbol = (u) => typeof u === "symbol";
12
+ const isNotSymbol = (u) => typeof u !== "symbol";
314
13
  const isNull = (u) => u === null;
315
- /**
316
- * Type guard that checks if a value is not `null`.
317
- *
318
- * **Type Narrowing Behavior:**
319
- *
320
- * - Excludes `null` from the input type when `true`
321
- * - Preserves all other types including `undefined`
322
- * - Commonly used to filter out null values
323
- *
324
- * @example
325
- *
326
- * ```ts
327
- * const values: readonly (number | null)[] = [null, 5] as const;
328
- *
329
- * const nonNullValues = values.filter(isNotNull);
330
- *
331
- * assert.deepStrictEqual(nonNullValues, [5]);
332
- * ```
333
- *
334
- * @template T - The type of the input value (which could be `null`)
335
- * @param u - The value to check
336
- * @returns `true` if `u` is not `null`, `false` otherwise. When `true`,
337
- * TypeScript excludes `null` from the type.
338
- */
339
14
  const isNotNull = (u) => u !== null;
340
- /**
341
- * Type guard that checks if a value is `null` or `undefined` (nullish).
342
- *
343
- * This function uses the loose equality operator (`==`) to check for both
344
- * `null` and `undefined` in a single comparison, which is the standard
345
- * JavaScript idiom for nullish checks.
346
- *
347
- * **Type Narrowing Behavior:**
348
- *
349
- * - Narrows the input type to `null | undefined` when `true`
350
- * - Useful for checking if a value is "nullish" (either null or undefined)
351
- *
352
- * @example
353
- *
354
- * ```ts
355
- * const values: readonly (string | null | undefined)[] = [
356
- * 'Ada',
357
- * null,
358
- * undefined,
359
- * ] as const;
360
- *
361
- * const nullishValues = values.filter(isNullish);
362
- *
363
- * assert.deepStrictEqual(nullishValues, [null, undefined]);
364
- * ```
365
- *
366
- * @param u - The value to check
367
- * @returns `true` if `u` is `null` or `undefined`, `false` otherwise. When
368
- * `true`, TypeScript narrows the type to `null | undefined`.
369
- */
370
15
  const isNullish = (u) => u == null;
371
- /**
372
- * Type guard that checks if a value is not `null` or `undefined` (non-nullish).
373
- *
374
- * This function uses the loose inequality operator (`!=`) to check that a value
375
- * is neither `null` nor `undefined` in a single comparison. This is equivalent
376
- * to TypeScript's `NonNullable<T>` utility type.
377
- *
378
- * **Type Narrowing Behavior:**
379
- *
380
- * - Excludes both `null` and `undefined` from the input type when `true`
381
- * - Equivalent to applying TypeScript's `NonNullable<T>` utility type
382
- * - Commonly used to filter out nullish values from arrays
383
- *
384
- * @example
385
- *
386
- * ```ts
387
- * const values: readonly (string | null | undefined)[] = [
388
- * 'Ada',
389
- * null,
390
- * undefined,
391
- * ] as const;
392
- *
393
- * const definedValues = values.filter(isNonNullish);
394
- *
395
- * assert.deepStrictEqual(definedValues, ['Ada']);
396
- * ```
397
- *
398
- * @template T - The type of the input value
399
- * @param u - The value to check
400
- * @returns `true` if `u` is not `null` and not `undefined`, `false` otherwise.
401
- * When `true`, TypeScript narrows the type to `NonNullable<T>`.
402
- */
403
16
  const isNonNullish = (u) => u != null;
404
17
 
405
18
  export { isBigint, isBoolean, isNonNullish, isNotBigint, isNotBoolean, isNotNull, isNotNumber, isNotString, isNotSymbol, isNotUndefined, isNull, isNullish, isNumber, isString, isSymbol, isUndefined };
@@ -1 +1 @@
1
- {"version":3,"file":"is-type.mjs","sources":["../../src/guard/is-type.mts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,MAAM,WAAW,GAAG,CAAC,CAAU,KAAqB,CAAC,KAAK;AAEjE;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AACI,MAAM,cAAc,GAAG,CAAK,CAAI,KACrC,CAAC,KAAK;AAER;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,MAAM,SAAS,GAAG,CAAC,CAAU,KAAmB,OAAO,CAAC,KAAK;AAEpE;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,YAAY,GAAG,CAAK,CAAI,KACnC,OAAO,CAAC,KAAK;AAEf;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,QAAQ,GAAG,CAAC,CAAU,KAAkB,OAAO,CAAC,KAAK;AAElE;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,WAAW,GAAG,CAAK,CAAI,KAClC,OAAO,CAAC,KAAK;AAEf;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,MAAM,QAAQ,GAAG,CAAC,CAAU,KAAkB,OAAO,CAAC,KAAK;AAElE;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,WAAW,GAAG,CAAK,CAAI,KAClC,OAAO,CAAC,KAAK;AAEf;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,QAAQ,GAAG,CAAC,CAAU,KAAkB,OAAO,CAAC,KAAK;AAElE;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,WAAW,GAAG,CAAK,CAAI,KAClC,OAAO,CAAC,KAAK;AAEf;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;AACI,MAAM,QAAQ,GAAG,CAAC,CAAU,KAAkB,OAAO,CAAC,KAAK;AAElE;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACI,MAAM,WAAW,GAAG,CAAK,CAAI,KAClC,OAAO,CAAC,KAAK;AAEf;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,MAAM,MAAM,GAAG,CAAC,CAAU,KAAgB,CAAC,KAAK;AAEvD;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AACI,MAAM,SAAS,GAAG,CAAK,CAAW,KAAa,CAAC,KAAK;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;AACI,MAAM,SAAS,GAAG,CAAC,CAAU,KAA4B,CAAC,IAAI;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BG;AACI,MAAM,YAAY,GAAG,CAAK,CAAI,KAA0B,CAAC,IAAI;;;;"}
1
+ {"version":3,"file":"is-type.mjs","sources":["../../src/guard/is-type.mts"],"sourcesContent":["import { type RelaxedExclude } from 'ts-type-forge';\n\n/**\n * Type guard that checks if a value is `undefined`.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows the input type to `undefined` when `true`\n * - Useful for explicit undefined checks\n *\n * @example\n *\n * ```ts\n * const values: readonly (number | undefined)[] = [1, undefined, 2] as const;\n *\n * const undefinedValues = values.filter(isUndefined);\n *\n * assert.deepStrictEqual(undefinedValues, [undefined]);\n * ```\n *\n * @param u - The value to check\n * @returns `true` if `u` is `undefined`, `false` otherwise. When `true`,\n * TypeScript narrows the type to `undefined`.\n */\nexport const isUndefined = (u: unknown): u is undefined => u === undefined;\n\n/**\n * Type guard that checks if a value is not `undefined`.\n *\n * **Type Narrowing Behavior:**\n *\n * - Excludes `undefined` from the input type when `true`\n * - Preserves all other types in the union\n * - Commonly used to filter out undefined values\n *\n * @example\n *\n * ```ts\n * const values: readonly (number | undefined)[] = [1, undefined, 2] as const;\n *\n * const definedValues = values.filter(isNotUndefined);\n *\n * assert.deepStrictEqual(definedValues, [1, 2]);\n * ```\n *\n * @template T - The type of the input value\n * @param u - The value to check\n * @returns `true` if `u` is not `undefined`, `false` otherwise. When `true`,\n * TypeScript excludes `undefined` from the type.\n */\nexport const isNotUndefined = <T,>(u: T): u is RelaxedExclude<T, undefined> =>\n u !== undefined;\n\n/**\n * Type guard that checks if a value is a boolean.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows `unknown` to `boolean` when `true`\n * - Preserves literal boolean types (`true | false`)\n *\n * @example\n *\n * ```ts\n * const flags: readonly unknown[] = [true, 'no', false] as const;\n *\n * const booleans = flags.filter(isBoolean);\n *\n * assert.deepStrictEqual(booleans, [true, false]);\n * ```\n *\n * @param u - The value to check\n * @returns `true` if `u` is a boolean, `false` otherwise. When `true`,\n * TypeScript narrows the type to `boolean`.\n */\nexport const isBoolean = (u: unknown): u is boolean => typeof u === 'boolean';\n\n/**\n * Type guard that checks if a value is not a boolean.\n *\n * **Type Narrowing Behavior:**\n *\n * - Excludes `boolean` from the input type when `true`\n * - Preserves all other types in the union\n *\n * @example\n *\n * ```ts\n * const flags: readonly unknown[] = [true, 'no', false] as const;\n *\n * const nonBooleans = flags.filter(isNotBoolean);\n *\n * assert.deepStrictEqual(nonBooleans, ['no']);\n * ```\n *\n * @template T - The type of the input value\n * @param u - The value to check\n * @returns `true` if `u` is not a boolean, `false` otherwise. When `true`,\n * TypeScript excludes `boolean` from the type.\n */\nexport const isNotBoolean = <T,>(u: T): u is RelaxedExclude<T, boolean> =>\n typeof u !== 'boolean';\n\n/**\n * Type guard that checks if a value is a number.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows `unknown` to `number` when `true`\n * - Includes `NaN`, `Infinity`, and `-Infinity` as valid numbers\n * - Preserves literal number types when possible\n *\n * @example\n *\n * ```ts\n * const mixed: readonly unknown[] = [1, '2', 3] as const;\n *\n * const numbers = mixed.filter(isNumber);\n *\n * assert.deepStrictEqual(numbers, [1, 3]);\n * ```\n *\n * @param u - The value to check\n * @returns `true` if `u` is a number, `false` otherwise. When `true`,\n * TypeScript narrows the type to `number`.\n */\nexport const isNumber = (u: unknown): u is number => typeof u === 'number';\n\n/**\n * Type guard that checks if a value is not a number.\n *\n * **Type Narrowing Behavior:**\n *\n * - Excludes `number` from the input type when `true`\n * - Preserves all other types in the union\n *\n * @example\n *\n * ```ts\n * const mixed: readonly unknown[] = [1, '2', 3] as const;\n *\n * const nonNumbers = mixed.filter(isNotNumber);\n *\n * assert.deepStrictEqual(nonNumbers, ['2']);\n * ```\n *\n * @template T - The type of the input value\n * @param u - The value to check\n * @returns `true` if `u` is not a number, `false` otherwise. When `true`,\n * TypeScript excludes `number` from the type.\n */\nexport const isNotNumber = <T,>(u: T): u is RelaxedExclude<T, number> =>\n typeof u !== 'number';\n\n/**\n * Type guard that checks if a value is a bigint.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows `unknown` to `bigint` when `true`\n * - Identifies values created with `BigInt()` constructor or `n` suffix\n *\n * @example\n *\n * ```ts\n * const values: readonly unknown[] = [1n, 2, 3n] as const;\n *\n * const bigints = values.filter(isBigint);\n *\n * assert.deepStrictEqual(bigints, [1n, 3n]);\n * ```\n *\n * @param u - The value to check\n * @returns `true` if `u` is a bigint, `false` otherwise. When `true`,\n * TypeScript narrows the type to `bigint`.\n */\nexport const isBigint = (u: unknown): u is bigint => typeof u === 'bigint';\n\n/**\n * Type guard that checks if a value is not a bigint.\n *\n * **Type Narrowing Behavior:**\n *\n * - Excludes `bigint` from the input type when `true`\n * - Preserves all other types in the union\n *\n * @example\n *\n * ```ts\n * const values: readonly unknown[] = [1n, 2, 3n] as const;\n *\n * const nonBigints = values.filter(isNotBigint);\n *\n * assert.deepStrictEqual(nonBigints, [2]);\n * ```\n *\n * @template T - The type of the input value\n * @param u - The value to check\n * @returns `true` if `u` is not a bigint, `false` otherwise. When `true`,\n * TypeScript excludes `bigint` from the type.\n */\nexport const isNotBigint = <T,>(u: T): u is RelaxedExclude<T, bigint> =>\n typeof u !== 'bigint';\n\n/**\n * Type guard that checks if a value is a string.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows `unknown` to `string` when `true`\n * - Preserves literal string types when possible\n * - Includes empty strings\n *\n * @example\n *\n * ```ts\n * const values: readonly unknown[] = ['Ada', 42, 'Lovelace'] as const;\n *\n * const strings = values.filter(isString);\n *\n * assert.deepStrictEqual(strings, ['Ada', 'Lovelace']);\n * ```\n *\n * @param u - The value to check\n * @returns `true` if `u` is a string, `false` otherwise. When `true`,\n * TypeScript narrows the type to `string`.\n */\nexport const isString = (u: unknown): u is string => typeof u === 'string';\n\n/**\n * Type guard that checks if a value is not a string.\n *\n * **Type Narrowing Behavior:**\n *\n * - Excludes `string` from the input type when `true`\n * - Preserves all other types in the union\n *\n * @example\n *\n * ```ts\n * const values: readonly unknown[] = ['Ada', 42, 'Lovelace'] as const;\n *\n * const nonStrings = values.filter(isNotString);\n *\n * assert.deepStrictEqual(nonStrings, [42]);\n * ```\n *\n * @template T - The type of the input value\n * @param u - The value to check\n * @returns `true` if `u` is not a string, `false` otherwise. When `true`,\n * TypeScript excludes `string` from the type.\n */\nexport const isNotString = <T,>(u: T): u is RelaxedExclude<T, string> =>\n typeof u !== 'string';\n\n/**\n * Type guard that checks if a value is a symbol.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows `unknown` to `symbol` when `true`\n * - Identifies values created with `Symbol()` constructor\n *\n * @example\n *\n * ```ts\n * const id = Symbol('id');\n *\n * const shared = Symbol.for('shared');\n *\n * const tokens: readonly unknown[] = [id, 'shared', shared] as const;\n *\n * const symbols = tokens.filter(isSymbol);\n *\n * assert.deepStrictEqual(symbols, [id, shared]);\n * ```\n *\n * @param u - The value to check\n * @returns `true` if `u` is a symbol, `false` otherwise. When `true`,\n * TypeScript narrows the type to `symbol`.\n */\nexport const isSymbol = (u: unknown): u is symbol => typeof u === 'symbol';\n\n/**\n * Type guard that checks if a value is not a symbol.\n *\n * **Type Narrowing Behavior:**\n *\n * - Excludes `symbol` from the input type when `true`\n * - Preserves all other types in the union\n *\n * @example\n *\n * ```ts\n * const id = Symbol('id');\n *\n * const tokens: readonly unknown[] = [id, 'shared'] as const;\n *\n * const nonSymbols = tokens.filter(isNotSymbol);\n *\n * assert.deepStrictEqual(nonSymbols, ['shared']);\n * ```\n *\n * @template T - The type of the input value\n * @param u - The value to check\n * @returns `true` if `u` is not a symbol, `false` otherwise. When `true`,\n * TypeScript excludes `symbol` from the type.\n */\nexport const isNotSymbol = <T,>(u: T): u is RelaxedExclude<T, symbol> =>\n typeof u !== 'symbol';\n\n/**\n * Type guard that checks if a value is `null`.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows the input type to `null` when `true`\n * - Useful for explicit null checks\n *\n * @example\n *\n * ```ts\n * const values: readonly (number | null)[] = [null, 5] as const;\n *\n * const nullValues = values.filter(isNull);\n *\n * assert.deepStrictEqual(nullValues, [null]);\n * ```\n *\n * @param u - The value to check\n * @returns `true` if `u` is `null`, `false` otherwise. When `true`, TypeScript\n * narrows the type to `null`.\n */\nexport const isNull = (u: unknown): u is null => u === null;\n\n/**\n * Type guard that checks if a value is not `null`.\n *\n * **Type Narrowing Behavior:**\n *\n * - Excludes `null` from the input type when `true`\n * - Preserves all other types including `undefined`\n * - Commonly used to filter out null values\n *\n * @example\n *\n * ```ts\n * const values: readonly (number | null)[] = [null, 5] as const;\n *\n * const nonNullValues = values.filter(isNotNull);\n *\n * assert.deepStrictEqual(nonNullValues, [5]);\n * ```\n *\n * @template T - The type of the input value (which could be `null`)\n * @param u - The value to check\n * @returns `true` if `u` is not `null`, `false` otherwise. When `true`,\n * TypeScript excludes `null` from the type.\n */\nexport const isNotNull = <T,>(u: T | null): u is T => u !== null;\n\n/**\n * Type guard that checks if a value is `null` or `undefined` (nullish).\n *\n * This function uses the loose equality operator (`==`) to check for both\n * `null` and `undefined` in a single comparison, which is the standard\n * JavaScript idiom for nullish checks.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows the input type to `null | undefined` when `true`\n * - Useful for checking if a value is \"nullish\" (either null or undefined)\n *\n * @example\n *\n * ```ts\n * const values: readonly (string | null | undefined)[] = [\n * 'Ada',\n * null,\n * undefined,\n * ] as const;\n *\n * const nullishValues = values.filter(isNullish);\n *\n * assert.deepStrictEqual(nullishValues, [null, undefined]);\n * ```\n *\n * @param u - The value to check\n * @returns `true` if `u` is `null` or `undefined`, `false` otherwise. When\n * `true`, TypeScript narrows the type to `null | undefined`.\n */\nexport const isNullish = (u: unknown): u is null | undefined => u == null;\n\n/**\n * Type guard that checks if a value is not `null` or `undefined` (non-nullish).\n *\n * This function uses the loose inequality operator (`!=`) to check that a value\n * is neither `null` nor `undefined` in a single comparison. This is equivalent\n * to TypeScript's `NonNullable<T>` utility type.\n *\n * **Type Narrowing Behavior:**\n *\n * - Excludes both `null` and `undefined` from the input type when `true`\n * - Equivalent to applying TypeScript's `NonNullable<T>` utility type\n * - Commonly used to filter out nullish values from arrays\n *\n * @example\n *\n * ```ts\n * const values: readonly (string | null | undefined)[] = [\n * 'Ada',\n * null,\n * undefined,\n * ] as const;\n *\n * const definedValues = values.filter(isNonNullish);\n *\n * assert.deepStrictEqual(definedValues, ['Ada']);\n * ```\n *\n * @template T - The type of the input value\n * @param u - The value to check\n * @returns `true` if `u` is not `null` and not `undefined`, `false` otherwise.\n * When `true`, TypeScript narrows the type to `NonNullable<T>`.\n */\nexport const isNonNullish = <T,>(u: T): u is NonNullable<T> => u != null;\n"],"names":[],"mappings":"AAwBO,MAAM,WAAA,GAAc,CAAC,CAAA,KAA+B,CAAA,KAAM;AA0B1D,MAAM,cAAA,GAAiB,CAAK,CAAA,KACjC,CAAA,KAAM;AAwBD,MAAM,SAAA,GAAY,CAAC,CAAA,KAA6B,OAAO,CAAA,KAAM;AAyB7D,MAAM,YAAA,GAAe,CAAK,CAAA,KAC/B,OAAO,CAAA,KAAM;AAyBR,MAAM,QAAA,GAAW,CAAC,CAAA,KAA4B,OAAO,CAAA,KAAM;AAyB3D,MAAM,WAAA,GAAc,CAAK,CAAA,KAC9B,OAAO,CAAA,KAAM;AAwBR,MAAM,QAAA,GAAW,CAAC,CAAA,KAA4B,OAAO,CAAA,KAAM;AAyB3D,MAAM,WAAA,GAAc,CAAK,CAAA,KAC9B,OAAO,CAAA,KAAM;AAyBR,MAAM,QAAA,GAAW,CAAC,CAAA,KAA4B,OAAO,CAAA,KAAM;AAyB3D,MAAM,WAAA,GAAc,CAAK,CAAA,KAC9B,OAAO,CAAA,KAAM;AA4BR,MAAM,QAAA,GAAW,CAAC,CAAA,KAA4B,OAAO,CAAA,KAAM;AA2B3D,MAAM,WAAA,GAAc,CAAK,CAAA,KAC9B,OAAO,CAAA,KAAM;AAwBR,MAAM,MAAA,GAAS,CAAC,CAAA,KAA0B,CAAA,KAAM;AA0BhD,MAAM,SAAA,GAAY,CAAK,CAAA,KAAwB,CAAA,KAAM;AAgCrD,MAAM,SAAA,GAAY,CAAC,CAAA,KAAsC,CAAA,IAAK;AAkC9D,MAAM,YAAA,GAAe,CAAK,CAAA,KAA8B,CAAA,IAAK;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"key-is-in.d.mts","sourceRoot":"","sources":["../../src/guard/key-is-in.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,OAAO,GAClB,KAAK,CAAC,CAAC,SAAS,WAAW,EAC3B,KAAK,CAAC,CAAC,SAAS,aAAa,EAE7B,KAAK,CAAC,EACN,KAAK,CAAC,KACL,GAAG,IAAI,CAAC,GAAG,MAAM,OAAO,GAA8B,CAAC"}
1
+ {"version":3,"file":"key-is-in.d.mts","sourceRoot":"","sources":["../../src/guard/key-is-in.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,OAAO,GAClB,KAAK,CAAC,CAAC,SAAS,WAAW,EAC3B,KAAK,CAAC,CAAC,SAAS,aAAa,OAExB,CAAC,OACD,CAAC,KACL,GAAG,IAAI,CAAC,GAAG,MAAM,OAAO,GAA8B,CAAC"}
@@ -1,43 +1,3 @@
1
- /**
2
- * Type guard that checks if a key exists as an own property in an object.
3
- *
4
- * This function is similar to `hasKey()` but with reversed parameter order and
5
- * different type narrowing behavior. While `hasKey()` narrows the object type,
6
- * `keyIsIn()` narrows the key type to be a valid key of the given object.
7
- *
8
- * **Type Narrowing Behavior:**
9
- *
10
- * - Narrows the key type to be a key that exists in the object (`K & keyof R`)
11
- * - Useful when you have a dynamic key and want to ensure it's valid for a
12
- * specific object
13
- * - The object type remains unchanged
14
- *
15
- * **Implementation:** Uses `Object.hasOwn()` to check for own properties (not
16
- * inherited).
17
- *
18
- * @example
19
- *
20
- * ```ts
21
- * const user = { id: 1, name: 'Ada' } as const;
22
- *
23
- * const maybeKey: string = 'name';
24
- *
25
- * if (keyIsIn(maybeKey, user)) {
26
- * assert.isTrue(user[maybeKey] === 'Ada');
27
- * } else {
28
- * assert.fail();
29
- * }
30
- * ```
31
- *
32
- * @template K - The type of the key to check, must extend PropertyKey (string |
33
- * number | symbol)
34
- * @template R - The type of the record (object), must extend UnknownRecord
35
- * @param key - The key to check for
36
- * @param obj - The object to check within
37
- * @returns `true` if `key` is an own property of `obj`, `false` otherwise. When
38
- * `true`, TypeScript narrows the key type to be a valid key of the object.
39
- * @see {@link hasKey} - Similar function that narrows the object type instead of the key type
40
- */
41
1
  const keyIsIn = (key, obj) => Object.hasOwn(obj, key);
42
2
 
43
3
  export { keyIsIn };
@@ -1 +1 @@
1
- {"version":3,"file":"key-is-in.mjs","sources":["../../src/guard/key-is-in.mts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCG;AACI,MAAM,OAAO,GAAG,CAIrB,GAAM,EACN,GAAM,KAC0B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG;;;;"}
1
+ {"version":3,"file":"key-is-in.mjs","sources":["../../src/guard/key-is-in.mts"],"sourcesContent":["import { type UnknownRecord } from 'ts-type-forge';\n\n/**\n * Type guard that checks if a key exists as an own property in an object.\n *\n * This function is similar to `hasKey()` but with reversed parameter order and\n * different type narrowing behavior. While `hasKey()` narrows the object type,\n * `keyIsIn()` narrows the key type to be a valid key of the given object.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows the key type to be a key that exists in the object (`K & keyof R`)\n * - Useful when you have a dynamic key and want to ensure it's valid for a\n * specific object\n * - The object type remains unchanged\n *\n * **Implementation:** Uses `Object.hasOwn()` to check for own properties (not\n * inherited).\n *\n * @example\n *\n * ```ts\n * const user = { id: 1, name: 'Ada' } as const;\n *\n * const maybeKey: string = 'name';\n *\n * if (keyIsIn(maybeKey, user)) {\n * assert.isTrue(user[maybeKey] === 'Ada');\n * } else {\n * assert.fail();\n * }\n * ```\n *\n * @template K - The type of the key to check, must extend PropertyKey (string |\n * number | symbol)\n * @template R - The type of the record (object), must extend UnknownRecord\n * @param key - The key to check for\n * @param obj - The object to check within\n * @returns `true` if `key` is an own property of `obj`, `false` otherwise. When\n * `true`, TypeScript narrows the key type to be a valid key of the object.\n * @see {@link hasKey} - Similar function that narrows the object type instead of the key type\n */\nexport const keyIsIn = <\n const K extends PropertyKey,\n const R extends UnknownRecord,\n>(\n key: K,\n obj: R,\n): key is K & keyof typeof obj => Object.hasOwn(obj, key);\n"],"names":[],"mappings":"AA0CO,MAAM,UAAU,CAIrB,GAAA,EACA,QACgC,MAAA,CAAO,MAAA,CAAO,KAAK,GAAG;;;;"}
@@ -36,23 +36,23 @@ import '../number/num.mjs';
36
36
  import '../number/refined-number-utils.mjs';
37
37
 
38
38
  function* range(...args) {
39
- switch (args.length) {
40
- case 1: {
41
- const [end] = args;
42
- for (const i of range(0, end, 1)) {
43
- yield i;
44
- }
45
- break;
46
- }
47
- case 2:
48
- // falls through
49
- case 3: {
50
- const [start, end, step = 1] = args;
51
- for (let mut_i = asSafeInt(start); step > 0 ? mut_i < end : mut_i > end; mut_i = SafeInt.add(mut_i, asSafeInt(step))) {
52
- yield mut_i;
53
- }
54
- }
39
+ switch (args.length) {
40
+ case 1: {
41
+ const [end] = args;
42
+ for (const i of range(0, end, 1)) {
43
+ yield i;
44
+ }
45
+ break;
55
46
  }
47
+ case 2:
48
+ // falls through
49
+ case 3: {
50
+ const [start, end, step = 1] = args;
51
+ for (let mut_i = asSafeInt(start); step > 0 ? mut_i < end : mut_i > end; mut_i = SafeInt.add(mut_i, asSafeInt(step))) {
52
+ yield mut_i;
53
+ }
54
+ }
55
+ }
56
56
  }
57
57
 
58
58
  export { range };
@@ -1 +1 @@
1
- {"version":3,"file":"range.mjs","sources":["../../src/iterator/range.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAsFiB,KAAK,CACpB,GAAG,IAME,EAAA;AAEL,IAAA,QAAQ,IAAI,CAAC,MAAM;QACjB,KAAK,CAAC,EAAE;AACN,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI;AAElB,YAAA,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;AAChC,gBAAA,MAAM,CAAC;YACT;YAEA;QACF;AAEA,QAAA,KAAK,CAAC;;QAGN,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI;AAEnC,YAAA,KACE,IAAI,KAAK,GAAY,SAAS,CAAC,KAAK,CAAC,EACrC,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,EACpC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,EAC3C;AACA,gBAAA,MAAM,KAAK;YACb;QACF;;AAEJ;;;;"}
1
+ {"version":3,"file":"range.mjs","sources":["../../src/iterator/range.mts"],"sourcesContent":["import {\n type NonZeroSafeInt,\n type PositiveSafeInt,\n type SafeUint,\n type WithSmallInt,\n} from 'ts-type-forge';\nimport { SafeInt, asSafeInt } from '../number/index.mjs';\n\n/**\n * Generates a sequence of numbers within a specified range using a generator\n * function.\n *\n * This function creates a generator that yields numbers from `start`\n * (inclusive) to `end` (exclusive) with the specified `step`\n * increment/decrement. The function implements the JavaScript iterator\n * protocol, making it compatible with for-of loops, spread operator,\n * Array.from(), and other iterator consumers.\n *\n * The function has two overloaded signatures:\n *\n * 1. For non-negative ranges: accepts SafeUint parameters and optional positive\n * step\n * 2. For general ranges: accepts SafeInt parameters and optional non-zero step\n *\n * **Generator Behavior:**\n *\n * - Yields values lazily (computed on-demand)\n * - Returns `void` when iteration completes\n * - Does not accept sent values (next parameter is ignored)\n * - Automatically handles direction based on step sign and start/end relationship\n *\n * **Step Parameter Behavior:**\n *\n * - Positive step: iterates from start toward end (start < end expected)\n * - Negative step: iterates from start toward end (start > end expected)\n * - Zero step: not allowed (NonZeroSafeInt constraint)\n * - Default step: 1 (positive direction)\n *\n * **Edge Cases:**\n *\n * - When start equals end: yields no values (empty sequence)\n * - When step direction conflicts with start/end relationship: yields no values\n * - All parameters must be safe integers (within JavaScript's safe integer range)\n *\n * @example\n *\n * ```ts\n * const zeroToThree = Array.from(range(0, 3));\n *\n * const threeToZero = Array.from(range(3, 0, -1));\n *\n * const defaultEnd = Array.from(range(4));\n *\n * assert.deepStrictEqual(zeroToThree, [0, 1, 2]);\n *\n * assert.deepStrictEqual(threeToZero, [3, 2, 1]);\n *\n * assert.deepStrictEqual(defaultEnd, [0, 1, 2, 3]);\n * ```\n *\n * @template T - The specific SafeInt or SafeUint type being generated\n * @param start - The starting number of the sequence (inclusive). Must be a\n * safe integer.\n * @param end - The end number of the sequence (exclusive). Must be a safe\n * integer.\n * @param step - The increment or decrement value. Defaults to 1. Must be\n * non-zero safe integer.\n * @returns A Generator object that yields safe integers in the specified range.\n */\nexport function range(\n end: WithSmallInt<SafeUint, MaxInt>,\n): Generator<SafeUint, void, unknown>;\n\nexport function range(\n start: WithSmallInt<SafeUint, MaxInt>,\n end: WithSmallInt<SafeUint, MaxInt>,\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n step?: WithSmallInt<PositiveSafeInt, MaxInt>,\n): Generator<SafeUint, void, unknown>;\n\nexport function range(\n start: WithSmallInt<SafeInt, MaxInt>,\n end: WithSmallInt<SafeInt, MaxInt>,\n step?: WithSmallInt<NonZeroSafeInt, MaxInt>,\n): Generator<SafeInt, void, unknown>;\n\nexport function* range(\n ...args:\n | readonly [end: WithSmallInt<SafeInt, MaxInt>]\n | readonly [\n start: WithSmallInt<SafeInt, MaxInt>,\n end: WithSmallInt<SafeInt, MaxInt>,\n step?: WithSmallInt<NonZeroSafeInt, MaxInt>,\n ]\n): Generator<SafeInt, void, unknown> {\n switch (args.length) {\n case 1: {\n const [end] = args;\n\n for (const i of range(0, end, 1)) {\n yield i;\n }\n\n break;\n }\n\n case 2:\n\n // falls through\n case 3: {\n const [start, end, step = 1] = args;\n\n for (\n let mut_i: SafeInt = asSafeInt(start);\n step > 0 ? mut_i < end : mut_i > end;\n mut_i = SafeInt.add(mut_i, asSafeInt(step))\n ) {\n yield mut_i;\n }\n }\n }\n}\n\ntype MaxInt = 512;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsFO,UAAU,SACZ,IAAA,EAOgC;AACnC,EAAA,QAAQ,KAAK,MAAA;AAAQ,IACnB,KAAK,CAAA,EAAG;AACN,MAAA,MAAM,CAAC,GAAG,CAAA,GAAI,IAAA;AAEd,MAAA,KAAA,MAAW,CAAA,IAAK,KAAA,CAAM,CAAA,EAAG,GAAA,EAAK,CAAC,CAAA,EAAG;AAChC,QAAA,MAAM,CAAA;AAAA,MACR;AAEA,MAAA;AAAA,IACF;AAAA,IAEA,KAAK,CAAA;AAAA;AAAA,IAGL,KAAK,CAAA,EAAG;AACN,MAAA,MAAM,CAAC,KAAA,EAAO,GAAA,EAAK,IAAA,GAAO,CAAC,CAAA,GAAI,IAAA;AAE/B,MAAA,KAAA,IACM,QAAiB,SAAA,CAAU,KAAK,CAAA,EACpC,IAAA,GAAO,IAAI,KAAA,GAAQ,GAAA,GAAM,KAAA,GAAQ,GAAA,EACjC,QAAQ,OAAA,CAAQ,GAAA,CAAI,OAAO,SAAA,CAAU,IAAI,CAAC,CAAA,EAC1C;AACA,QAAA,MAAM,KAAA;AAAA,MACR;AAAA,IACF;AAAA;AAEJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"json.d.mts","sourceRoot":"","sources":["../../src/json/json.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAQ,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAIvD;;;;GAIG;AACH,yBAAiB,IAAI,CAAC;IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACI,MAAM,KAAK,GAChB,MAAM,MAAM,EACZ,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,OAAO,KAClE,MAAM,CAAC,SAAS,EAAE,MAAM,CAc1B,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+DG;IACI,MAAM,SAAS,GACpB,OAAO,OAAO,EACd,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,EAChE,QAAQ,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,KACzC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,CAQnC,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgEG;IACI,MAAM,iBAAiB,GAC5B,OAAO,OAAO,EACd,yBAAyB,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EACrD,QAAQ,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,KACzC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,CAUnC,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4EG;IACI,MAAM,kBAAkB,GAC7B,OAAO,aAAa,EACpB,QAAQ,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,KACzC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,CAMnC,CAAC;CACH"}
1
+ {"version":3,"file":"json.d.mts","sourceRoot":"","sources":["../../src/json/json.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAQ,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAIvD;;;;GAIG;AACH,yBAAiB,IAAI,CAAC;IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACI,MAAM,KAAK,SACV,MAAM,YACF,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,OAAO,KAClE,MAAM,CAAC,SAAS,EAAE,MAAM,CAc1B,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+DG;IACI,MAAM,SAAS,UACb,OAAO,aACH,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,UACxD,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,KACzC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,CAQnC,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgEG;IACI,MAAM,iBAAiB,UACrB,OAAO,2BACW,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,UAC7C,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,KACzC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,CAUnC,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4EG;IACI,MAAM,kBAAkB,UACtB,aAAa,UACZ,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,KACzC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,CAMnC,CAAC;CACH"}