ts-data-forge 8.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 (429) 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/entry-point.mjs +1 -0
  55. package/dist/entry-point.mjs.map +1 -1
  56. package/dist/expect-type.d.mts +1 -1
  57. package/dist/expect-type.d.mts.map +1 -1
  58. package/dist/expect-type.mjs +1 -69
  59. package/dist/expect-type.mjs.map +1 -1
  60. package/dist/functional/match.mjs +9 -9
  61. package/dist/functional/match.mjs.map +1 -1
  62. package/dist/functional/optional/impl/optional-expect-to-be.mjs +13 -14
  63. package/dist/functional/optional/impl/optional-expect-to-be.mjs.map +1 -1
  64. package/dist/functional/optional/impl/optional-filter.mjs +14 -15
  65. package/dist/functional/optional/impl/optional-filter.mjs.map +1 -1
  66. package/dist/functional/optional/impl/optional-flat-map.mjs +10 -11
  67. package/dist/functional/optional/impl/optional-flat-map.mjs.map +1 -1
  68. package/dist/functional/optional/impl/optional-from-nullable.d.mts.map +1 -1
  69. package/dist/functional/optional/impl/optional-from-nullable.mjs +1 -25
  70. package/dist/functional/optional/impl/optional-from-nullable.mjs.map +1 -1
  71. package/dist/functional/optional/impl/optional-is-none.d.mts.map +1 -1
  72. package/dist/functional/optional/impl/optional-is-none.mjs +0 -19
  73. package/dist/functional/optional/impl/optional-is-none.mjs.map +1 -1
  74. package/dist/functional/optional/impl/optional-is-optional.d.mts.map +1 -1
  75. package/dist/functional/optional/impl/optional-is-optional.mjs +1 -23
  76. package/dist/functional/optional/impl/optional-is-optional.mjs.map +1 -1
  77. package/dist/functional/optional/impl/optional-is-some.d.mts.map +1 -1
  78. package/dist/functional/optional/impl/optional-is-some.mjs +0 -20
  79. package/dist/functional/optional/impl/optional-is-some.mjs.map +1 -1
  80. package/dist/functional/optional/impl/optional-map.mjs +13 -14
  81. package/dist/functional/optional/impl/optional-map.mjs.map +1 -1
  82. package/dist/functional/optional/impl/optional-none.mjs +0 -16
  83. package/dist/functional/optional/impl/optional-none.mjs.map +1 -1
  84. package/dist/functional/optional/impl/optional-or-else.mjs +10 -11
  85. package/dist/functional/optional/impl/optional-or-else.mjs.map +1 -1
  86. package/dist/functional/optional/impl/optional-some.d.mts.map +1 -1
  87. package/dist/functional/optional/impl/optional-some.mjs +2 -21
  88. package/dist/functional/optional/impl/optional-some.mjs.map +1 -1
  89. package/dist/functional/optional/impl/optional-to-nullable.d.mts.map +1 -1
  90. package/dist/functional/optional/impl/optional-to-nullable.mjs +1 -27
  91. package/dist/functional/optional/impl/optional-to-nullable.mjs.map +1 -1
  92. package/dist/functional/optional/impl/optional-unwrap-or.mjs +9 -10
  93. package/dist/functional/optional/impl/optional-unwrap-or.mjs.map +1 -1
  94. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts.map +1 -1
  95. package/dist/functional/optional/impl/optional-unwrap-throw.mjs +4 -32
  96. package/dist/functional/optional/impl/optional-unwrap-throw.mjs.map +1 -1
  97. package/dist/functional/optional/impl/optional-unwrap.mjs +4 -4
  98. package/dist/functional/optional/impl/optional-unwrap.mjs.map +1 -1
  99. package/dist/functional/optional/impl/optional-zip.d.mts.map +1 -1
  100. package/dist/functional/optional/impl/optional-zip.mjs +1 -35
  101. package/dist/functional/optional/impl/optional-zip.mjs.map +1 -1
  102. package/dist/functional/optional/impl/tag.mjs +2 -3
  103. package/dist/functional/optional/impl/tag.mjs.map +1 -1
  104. package/dist/functional/pipe.d.mts.map +1 -1
  105. package/dist/functional/pipe.mjs +9 -34
  106. package/dist/functional/pipe.mjs.map +1 -1
  107. package/dist/functional/result/impl/result-err.d.mts.map +1 -1
  108. package/dist/functional/result/impl/result-err.mjs +2 -27
  109. package/dist/functional/result/impl/result-err.mjs.map +1 -1
  110. package/dist/functional/result/impl/result-expect-to-be.mjs +13 -15
  111. package/dist/functional/result/impl/result-expect-to-be.mjs.map +1 -1
  112. package/dist/functional/result/impl/result-flat-map.mjs +16 -16
  113. package/dist/functional/result/impl/result-flat-map.mjs.map +1 -1
  114. package/dist/functional/result/impl/result-fold.mjs +16 -16
  115. package/dist/functional/result/impl/result-fold.mjs.map +1 -1
  116. package/dist/functional/result/impl/result-from-promise.d.mts.map +1 -1
  117. package/dist/functional/result/impl/result-from-promise.mjs +4 -31
  118. package/dist/functional/result/impl/result-from-promise.mjs.map +1 -1
  119. package/dist/functional/result/impl/result-from-throwable.d.mts.map +1 -1
  120. package/dist/functional/result/impl/result-from-throwable.mjs +8 -38
  121. package/dist/functional/result/impl/result-from-throwable.mjs.map +1 -1
  122. package/dist/functional/result/impl/result-is-err.d.mts.map +1 -1
  123. package/dist/functional/result/impl/result-is-err.mjs +0 -19
  124. package/dist/functional/result/impl/result-is-err.mjs.map +1 -1
  125. package/dist/functional/result/impl/result-is-ok.d.mts.map +1 -1
  126. package/dist/functional/result/impl/result-is-ok.mjs +0 -19
  127. package/dist/functional/result/impl/result-is-ok.mjs.map +1 -1
  128. package/dist/functional/result/impl/result-is-result.d.mts.map +1 -1
  129. package/dist/functional/result/impl/result-is-result.mjs +1 -23
  130. package/dist/functional/result/impl/result-is-result.mjs.map +1 -1
  131. package/dist/functional/result/impl/result-map-err.mjs +16 -16
  132. package/dist/functional/result/impl/result-map-err.mjs.map +1 -1
  133. package/dist/functional/result/impl/result-map.mjs +16 -16
  134. package/dist/functional/result/impl/result-map.mjs.map +1 -1
  135. package/dist/functional/result/impl/result-ok.d.mts.map +1 -1
  136. package/dist/functional/result/impl/result-ok.mjs +2 -27
  137. package/dist/functional/result/impl/result-ok.mjs.map +1 -1
  138. package/dist/functional/result/impl/result-or-else.mjs +10 -12
  139. package/dist/functional/result/impl/result-or-else.mjs.map +1 -1
  140. package/dist/functional/result/impl/result-swap.d.mts.map +1 -1
  141. package/dist/functional/result/impl/result-swap.mjs +4 -22
  142. package/dist/functional/result/impl/result-swap.mjs.map +1 -1
  143. package/dist/functional/result/impl/result-to-optional.d.mts.map +1 -1
  144. package/dist/functional/result/impl/result-to-optional.mjs +0 -27
  145. package/dist/functional/result/impl/result-to-optional.mjs.map +1 -1
  146. package/dist/functional/result/impl/result-unwrap-err-or.mjs +9 -11
  147. package/dist/functional/result/impl/result-unwrap-err-or.mjs.map +1 -1
  148. package/dist/functional/result/impl/result-unwrap-err-throw.d.mts.map +1 -1
  149. package/dist/functional/result/impl/result-unwrap-err-throw.mjs +13 -40
  150. package/dist/functional/result/impl/result-unwrap-err-throw.mjs.map +1 -1
  151. package/dist/functional/result/impl/result-unwrap-err.d.mts.map +1 -1
  152. package/dist/functional/result/impl/result-unwrap-err.mjs +4 -32
  153. package/dist/functional/result/impl/result-unwrap-err.mjs.map +1 -1
  154. package/dist/functional/result/impl/result-unwrap-ok-or.mjs +9 -11
  155. package/dist/functional/result/impl/result-unwrap-ok-or.mjs.map +1 -1
  156. package/dist/functional/result/impl/result-unwrap-ok.mjs +4 -4
  157. package/dist/functional/result/impl/result-unwrap-ok.mjs.map +1 -1
  158. package/dist/functional/result/impl/result-unwrap-throw.d.mts.map +1 -1
  159. package/dist/functional/result/impl/result-unwrap-throw.mjs +4 -35
  160. package/dist/functional/result/impl/result-unwrap-throw.mjs.map +1 -1
  161. package/dist/functional/result/impl/result-zip.d.mts.map +1 -1
  162. package/dist/functional/result/impl/result-zip.mjs +1 -34
  163. package/dist/functional/result/impl/result-zip.mjs.map +1 -1
  164. package/dist/functional/result/impl/tag.mjs +2 -3
  165. package/dist/functional/result/impl/tag.mjs.map +1 -1
  166. package/dist/functional/ternary-result/impl/tag.mjs +3 -5
  167. package/dist/functional/ternary-result/impl/tag.mjs.map +1 -1
  168. package/dist/functional/ternary-result/impl/ternary-result-err.d.mts.map +1 -1
  169. package/dist/functional/ternary-result/impl/ternary-result-err.mjs +2 -15
  170. package/dist/functional/ternary-result/impl/ternary-result-err.mjs.map +1 -1
  171. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs +13 -13
  172. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs.map +1 -1
  173. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs +27 -26
  174. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs.map +1 -1
  175. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs +21 -22
  176. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs.map +1 -1
  177. package/dist/functional/ternary-result/impl/ternary-result-from-promise.d.mts.map +1 -1
  178. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs +4 -20
  179. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs.map +1 -1
  180. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.d.mts.map +1 -1
  181. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs +7 -25
  182. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs.map +1 -1
  183. package/dist/functional/ternary-result/impl/ternary-result-is-err.d.mts.map +1 -1
  184. package/dist/functional/ternary-result/impl/ternary-result-is-err.mjs +0 -17
  185. package/dist/functional/ternary-result/impl/ternary-result-is-err.mjs.map +1 -1
  186. package/dist/functional/ternary-result/impl/ternary-result-is-ok.d.mts.map +1 -1
  187. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs +0 -19
  188. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs.map +1 -1
  189. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.d.mts.map +1 -1
  190. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs +1 -25
  191. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs.map +1 -1
  192. package/dist/functional/ternary-result/impl/ternary-result-is-warn.d.mts.map +1 -1
  193. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs +0 -18
  194. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs.map +1 -1
  195. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs +13 -15
  196. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs.map +1 -1
  197. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs +18 -18
  198. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs.map +1 -1
  199. package/dist/functional/ternary-result/impl/ternary-result-map.mjs +21 -22
  200. package/dist/functional/ternary-result/impl/ternary-result-map.mjs.map +1 -1
  201. package/dist/functional/ternary-result/impl/ternary-result-ok.d.mts.map +1 -1
  202. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs +2 -16
  203. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs.map +1 -1
  204. package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs +9 -9
  205. package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs.map +1 -1
  206. package/dist/functional/ternary-result/impl/ternary-result-to-optional.d.mts.map +1 -1
  207. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs +4 -22
  208. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs.map +1 -1
  209. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs +9 -9
  210. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs.map +1 -1
  211. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.d.mts.map +1 -1
  212. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs +12 -27
  213. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs.map +1 -1
  214. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.d.mts.map +1 -1
  215. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs +4 -19
  216. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs.map +1 -1
  217. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs +9 -9
  218. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs.map +1 -1
  219. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs +4 -5
  220. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs.map +1 -1
  221. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.d.mts.map +1 -1
  222. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs +15 -27
  223. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs.map +1 -1
  224. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs +9 -9
  225. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs.map +1 -1
  226. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.d.mts.map +1 -1
  227. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs +10 -24
  228. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs.map +1 -1
  229. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.d.mts.map +1 -1
  230. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs +4 -19
  231. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs.map +1 -1
  232. package/dist/functional/ternary-result/impl/ternary-result-warn.d.mts.map +1 -1
  233. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs +3 -19
  234. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs.map +1 -1
  235. package/dist/functional/ternary-result/impl/ternary-result-zip.d.mts.map +1 -1
  236. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs +14 -45
  237. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs.map +1 -1
  238. package/dist/functional/ternary-result/impl/variant-name.d.mts +1 -1
  239. package/dist/functional/ternary-result/impl/variant-name.d.mts.map +1 -1
  240. package/dist/functional/ternary-result/impl/variant-name.mjs +8 -9
  241. package/dist/functional/ternary-result/impl/variant-name.mjs.map +1 -1
  242. package/dist/functional/ternary-result/ternary-result.d.mts.map +1 -1
  243. package/dist/guard/has-key.d.mts.map +1 -1
  244. package/dist/guard/has-key.mjs +0 -41
  245. package/dist/guard/has-key.mjs.map +1 -1
  246. package/dist/guard/index.d.mts +1 -0
  247. package/dist/guard/index.d.mts.map +1 -1
  248. package/dist/guard/index.mjs +1 -0
  249. package/dist/guard/index.mjs.map +1 -1
  250. package/dist/guard/is-length-bounded-string.d.mts +164 -0
  251. package/dist/guard/is-length-bounded-string.d.mts.map +1 -0
  252. package/dist/guard/is-length-bounded-string.mjs +7 -0
  253. package/dist/guard/is-length-bounded-string.mjs.map +1 -0
  254. package/dist/guard/is-non-empty-string.d.mts +1 -1
  255. package/dist/guard/is-non-empty-string.d.mts.map +1 -1
  256. package/dist/guard/is-non-empty-string.mjs +1 -38
  257. package/dist/guard/is-non-empty-string.mjs.map +1 -1
  258. package/dist/guard/is-non-null-object.d.mts.map +1 -1
  259. package/dist/guard/is-non-null-object.mjs +1 -35
  260. package/dist/guard/is-non-null-object.mjs.map +1 -1
  261. package/dist/guard/is-primitive.d.mts.map +1 -1
  262. package/dist/guard/is-primitive.mjs +12 -43
  263. package/dist/guard/is-primitive.mjs.map +1 -1
  264. package/dist/guard/is-record.d.mts.map +1 -1
  265. package/dist/guard/is-record.mjs +0 -86
  266. package/dist/guard/is-record.mjs.map +1 -1
  267. package/dist/guard/is-type.d.mts.map +1 -1
  268. package/dist/guard/is-type.mjs +12 -399
  269. package/dist/guard/is-type.mjs.map +1 -1
  270. package/dist/guard/key-is-in.d.mts.map +1 -1
  271. package/dist/guard/key-is-in.mjs +0 -40
  272. package/dist/guard/key-is-in.mjs.map +1 -1
  273. package/dist/index.mjs +1 -0
  274. package/dist/index.mjs.map +1 -1
  275. package/dist/iterator/range.mjs +16 -16
  276. package/dist/iterator/range.mjs.map +1 -1
  277. package/dist/json/json.d.mts.map +1 -1
  278. package/dist/json/json.mjs +52 -340
  279. package/dist/json/json.mjs.map +1 -1
  280. package/dist/number/branded-types/finite-number.d.mts +3 -3
  281. package/dist/number/branded-types/finite-number.mjs +135 -154
  282. package/dist/number/branded-types/finite-number.mjs.map +1 -1
  283. package/dist/number/branded-types/int.d.mts +4 -4
  284. package/dist/number/branded-types/int.mjs +205 -245
  285. package/dist/number/branded-types/int.mjs.map +1 -1
  286. package/dist/number/branded-types/int16.d.mts +15 -15
  287. package/dist/number/branded-types/int16.mjs +116 -123
  288. package/dist/number/branded-types/int16.mjs.map +1 -1
  289. package/dist/number/branded-types/int32.d.mts +11 -11
  290. package/dist/number/branded-types/int32.mjs +116 -123
  291. package/dist/number/branded-types/int32.mjs.map +1 -1
  292. package/dist/number/branded-types/negative-finite-number.d.mts +4 -4
  293. package/dist/number/branded-types/negative-finite-number.mjs +129 -144
  294. package/dist/number/branded-types/negative-finite-number.mjs.map +1 -1
  295. package/dist/number/branded-types/negative-int.d.mts +5 -5
  296. package/dist/number/branded-types/negative-int.mjs +94 -113
  297. package/dist/number/branded-types/negative-int.mjs.map +1 -1
  298. package/dist/number/branded-types/negative-safe-int.d.mts +5 -5
  299. package/dist/number/branded-types/negative-safe-int.mjs +103 -124
  300. package/dist/number/branded-types/negative-safe-int.mjs.map +1 -1
  301. package/dist/number/branded-types/non-negative-finite-number.d.mts +5 -5
  302. package/dist/number/branded-types/non-negative-finite-number.mjs +136 -142
  303. package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
  304. package/dist/number/branded-types/non-negative-int16.d.mts +16 -16
  305. package/dist/number/branded-types/non-negative-int16.mjs +109 -118
  306. package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
  307. package/dist/number/branded-types/non-negative-int32.d.mts +12 -12
  308. package/dist/number/branded-types/non-negative-int32.mjs +110 -119
  309. package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
  310. package/dist/number/branded-types/non-positive-finite-number.d.mts +3 -3
  311. package/dist/number/branded-types/non-positive-finite-number.mjs +120 -124
  312. package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -1
  313. package/dist/number/branded-types/non-positive-int.d.mts +4 -4
  314. package/dist/number/branded-types/non-positive-int.mjs +167 -212
  315. package/dist/number/branded-types/non-positive-int.mjs.map +1 -1
  316. package/dist/number/branded-types/non-positive-safe-int.d.mts +4 -4
  317. package/dist/number/branded-types/non-positive-safe-int.mjs +95 -106
  318. package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -1
  319. package/dist/number/branded-types/non-zero-finite-number.d.mts +4 -4
  320. package/dist/number/branded-types/non-zero-finite-number.mjs +114 -123
  321. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
  322. package/dist/number/branded-types/non-zero-int.d.mts +2 -2
  323. package/dist/number/branded-types/non-zero-int.mjs +72 -83
  324. package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
  325. package/dist/number/branded-types/non-zero-int16.d.mts +7 -7
  326. package/dist/number/branded-types/non-zero-int16.mjs +96 -107
  327. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
  328. package/dist/number/branded-types/non-zero-int32.d.mts +5 -5
  329. package/dist/number/branded-types/non-zero-int32.mjs +97 -108
  330. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
  331. package/dist/number/branded-types/non-zero-safe-int.d.mts +2 -2
  332. package/dist/number/branded-types/non-zero-safe-int.mjs +100 -111
  333. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
  334. package/dist/number/branded-types/non-zero-uint16.d.mts +8 -8
  335. package/dist/number/branded-types/non-zero-uint16.mjs +96 -107
  336. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
  337. package/dist/number/branded-types/non-zero-uint32.d.mts +6 -6
  338. package/dist/number/branded-types/non-zero-uint32.mjs +96 -107
  339. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
  340. package/dist/number/branded-types/positive-finite-number.d.mts +8 -8
  341. package/dist/number/branded-types/positive-finite-number.mjs +139 -141
  342. package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
  343. package/dist/number/branded-types/positive-int.d.mts +11 -11
  344. package/dist/number/branded-types/positive-int.mjs +228 -271
  345. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  346. package/dist/number/branded-types/positive-int16.d.mts +19 -19
  347. package/dist/number/branded-types/positive-int16.mjs +109 -118
  348. package/dist/number/branded-types/positive-int16.mjs.map +1 -1
  349. package/dist/number/branded-types/positive-int32.d.mts +15 -15
  350. package/dist/number/branded-types/positive-int32.mjs +109 -118
  351. package/dist/number/branded-types/positive-int32.mjs.map +1 -1
  352. package/dist/number/branded-types/positive-safe-int.d.mts +11 -11
  353. package/dist/number/branded-types/positive-safe-int.mjs +244 -275
  354. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  355. package/dist/number/branded-types/positive-uint16.d.mts +17 -17
  356. package/dist/number/branded-types/positive-uint16.mjs +109 -118
  357. package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
  358. package/dist/number/branded-types/positive-uint32.d.mts +13 -13
  359. package/dist/number/branded-types/positive-uint32.mjs +110 -119
  360. package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
  361. package/dist/number/branded-types/safe-int.d.mts +4 -4
  362. package/dist/number/branded-types/safe-int.mjs +251 -292
  363. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  364. package/dist/number/branded-types/safe-uint.d.mts +8 -8
  365. package/dist/number/branded-types/safe-uint.mjs +111 -119
  366. package/dist/number/branded-types/safe-uint.mjs.map +1 -1
  367. package/dist/number/branded-types/uint.d.mts +8 -8
  368. package/dist/number/branded-types/uint.mjs +198 -225
  369. package/dist/number/branded-types/uint.mjs.map +1 -1
  370. package/dist/number/branded-types/uint16.d.mts +14 -14
  371. package/dist/number/branded-types/uint16.mjs +109 -119
  372. package/dist/number/branded-types/uint16.mjs.map +1 -1
  373. package/dist/number/branded-types/uint32.d.mts +10 -10
  374. package/dist/number/branded-types/uint32.mjs +110 -117
  375. package/dist/number/branded-types/uint32.mjs.map +1 -1
  376. package/dist/number/enum/int8.mjs +119 -145
  377. package/dist/number/enum/int8.mjs.map +1 -1
  378. package/dist/number/enum/uint8.mjs +107 -121
  379. package/dist/number/enum/uint8.mjs.map +1 -1
  380. package/dist/number/num.d.mts +2 -2
  381. package/dist/number/num.d.mts.map +1 -1
  382. package/dist/number/num.mjs +76 -537
  383. package/dist/number/num.mjs.map +1 -1
  384. package/dist/number/refined-number-utils.d.mts +1 -1
  385. package/dist/number/refined-number-utils.d.mts.map +1 -1
  386. package/dist/number/refined-number-utils.mjs +127 -263
  387. package/dist/number/refined-number-utils.mjs.map +1 -1
  388. package/dist/object/object.d.mts.map +1 -1
  389. package/dist/object/object.mjs +107 -222
  390. package/dist/object/object.mjs.map +1 -1
  391. package/dist/others/cast-mutable.d.mts.map +1 -1
  392. package/dist/others/cast-mutable.mjs +8 -37
  393. package/dist/others/cast-mutable.mjs.map +1 -1
  394. package/dist/others/cast-readonly.d.mts.map +1 -1
  395. package/dist/others/cast-readonly.mjs +8 -36
  396. package/dist/others/cast-readonly.mjs.map +1 -1
  397. package/dist/others/debounce-function.d.mts.map +1 -1
  398. package/dist/others/debounce-function.mjs +7 -16
  399. package/dist/others/debounce-function.mjs.map +1 -1
  400. package/dist/others/fast-deep-equal.d.mts.map +1 -1
  401. package/dist/others/fast-deep-equal.mjs +43 -59
  402. package/dist/others/fast-deep-equal.mjs.map +1 -1
  403. package/dist/others/if-then.d.mts.map +1 -1
  404. package/dist/others/if-then.mjs +0 -29
  405. package/dist/others/if-then.mjs.map +1 -1
  406. package/dist/others/map-nullable.mjs +9 -9
  407. package/dist/others/map-nullable.mjs.map +1 -1
  408. package/dist/others/memoize-function.mjs +12 -12
  409. package/dist/others/memoize-function.mjs.map +1 -1
  410. package/dist/others/tuple.d.mts.map +1 -1
  411. package/dist/others/tuple.mjs +0 -50
  412. package/dist/others/tuple.mjs.map +1 -1
  413. package/dist/others/unknown-to-string.d.mts.map +1 -1
  414. package/dist/others/unknown-to-string.mjs +41 -88
  415. package/dist/others/unknown-to-string.mjs.map +1 -1
  416. package/dist/promise/promise.d.mts.map +1 -1
  417. package/dist/promise/promise.mjs +4 -49
  418. package/dist/promise/promise.mjs.map +1 -1
  419. package/package.json +17 -16
  420. package/src/array/impl/array-utils-transformation.mts +1 -2
  421. package/src/array/impl/array-utils-transformation.test.mts +3 -36
  422. package/src/array/impl/array-utils-validation.test.mts +1 -3
  423. package/src/expect-type.mts +4 -5
  424. package/src/functional/ternary-result/ternary-result.mts +2 -6
  425. package/src/guard/index.mts +1 -0
  426. package/src/guard/is-length-bounded-string.mts +199 -0
  427. package/src/guard/is-length-bounded-string.test.mts +170 -0
  428. package/src/number/refined-number-utils.mts +1 -9
  429. package/src/object/object.mts +25 -23
@@ -1,221 +1,176 @@
1
1
  import { TsDataForgeInternals } from '../refined-number-utils.mjs';
2
2
 
3
- const typeNameInMessage = 'a non-positive integer';
4
- const { MAX_VALUE, add, castType, clamp, is, max: max_, min: min_, pow, random, sub, } = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger({
5
- integerOrSafeInteger: 'Integer',
6
- MIN_VALUE: -Number.MAX_VALUE,
7
- MAX_VALUE: 0,
8
- typeNameInMessage,
3
+ const typeNameInMessage = "a non-positive integer";
4
+ const {
5
+ MAX_VALUE,
6
+ add,
7
+ castType,
8
+ clamp,
9
+ is,
10
+ max: max_,
11
+ min: min_,
12
+ pow,
13
+ random,
14
+ sub
15
+ } = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger({
16
+ integerOrSafeInteger: "Integer",
17
+ MIN_VALUE: -Number.MAX_VALUE,
18
+ MAX_VALUE: 0,
19
+ typeNameInMessage
9
20
  });
10
- /**
11
- * Type guard that checks if a value is a non-positive integer.
12
- *
13
- * A non-positive integer is any integer less than or equal to zero (<= 0).
14
- * This includes zero and all negative integers, but excludes positive numbers
15
- * and non-integers.
16
- *
17
- * @example
18
- *
19
- * ```ts
20
- * assert.isTrue(isNonPositiveInt(0));
21
- *
22
- * assert.isTrue(isNonPositiveInt(-5));
23
- *
24
- * assert.isFalse(isNonPositiveInt(1));
25
- * ```
26
- *
27
- * @param value - The value to check
28
- * @returns `true` if the value is a non-positive integer, `false` otherwise
29
- */
30
21
  const isNonPositiveInt = is;
31
- /**
32
- * Casts a number to a NonPositiveInt branded type.
33
- *
34
- * This function validates that the input is a non-positive integer (<= 0) and
35
- * returns it with the NonPositiveInt brand. This ensures type safety for
36
- * operations that require non-positive integer values.
37
- *
38
- * @example
39
- *
40
- * ```ts
41
- * const branded = asNonPositiveInt(-7);
42
- *
43
- * assert.isTrue(branded === -7);
44
- *
45
- * assert.isTrue(NonPositiveInt.is(branded));
46
- * ```
47
- *
48
- * @param value - The value to cast
49
- * @returns The value as a NonPositiveInt branded type
50
- * @throws {TypeError} If the value is not a non-positive integer
51
- */
52
22
  const asNonPositiveInt = castType;
53
- /**
54
- * Namespace providing type-safe operations for NonPositiveInt branded types.
55
- *
56
- * NonPositiveInt represents integers that are less than or equal to zero (<= 0).
57
- * All operations automatically clamp results to maintain the non-positive
58
- * constraint, ensuring that arithmetic operations never produce positive values.
59
- *
60
- * This type is essential for:
61
- *
62
- * - Debts and negative balances
63
- * - Penalties and reductions
64
- * - Offsets and adjustments (downward)
65
- * - Negative counts or differences
66
- * - Depth or altitude below a reference point
67
- */
68
23
  const NonPositiveInt = {
69
- /**
70
- * Type guard that checks if a value is a non-positive integer.
71
- *
72
- * @example
73
- *
74
- * ```ts
75
- * const value: number = -42;
76
- *
77
- * if (NonPositiveInt.is(value)) {
78
- * // value is now typed as NonPositiveInt
79
- * const debt = value;
80
- * }
81
- * ```
82
- *
83
- * @param value - The value to check
84
- * @returns `true` if the value is a non-positive integer, `false` otherwise
85
- */
86
- is,
87
- /**
88
- * The maximum value for a non-positive integer.
89
- *
90
- * @readonly
91
- */
92
- MAX_VALUE,
93
- /**
94
- * Returns the smaller of two non-positive integers.
95
- *
96
- * Since non-positive integers range from negative infinity to 0, the smaller
97
- * value is the one further from zero (more negative).
98
- *
99
- * @example
100
- *
101
- * ```ts
102
- * const result = NonPositiveInt.min(-5, -10);
103
- *
104
- * assert.strictEqual(result, -10);
105
- * ```
106
- *
107
- * @param a - The first non-positive integer
108
- * @param b - The second non-positive integer
109
- * @returns The minimum value as a non-positive integer
110
- */
111
- min: min_,
112
- /**
113
- * Returns the larger of two non-positive integers.
114
- *
115
- * Since non-positive integers range from negative infinity to 0, the larger
116
- * value is the one closer to zero (less negative).
117
- *
118
- * @example
119
- *
120
- * ```ts
121
- * const result = NonPositiveInt.max(-5, -10);
122
- *
123
- * assert.strictEqual(result, -5);
124
- * ```
125
- *
126
- * @param a - The first non-positive integer
127
- * @param b - The second non-positive integer
128
- * @returns The maximum value as a non-positive integer
129
- */
130
- max: max_,
131
- /**
132
- * Clamps a number to the non-positive integer range.
133
- *
134
- * Any positive value is clamped to 0 (the maximum non-positive integer).
135
- * Negative values are preserved as long as they are valid integers.
136
- *
137
- * @example
138
- *
139
- * ```ts
140
- * assert.strictEqual(NonPositiveInt.clamp(5), 0);
141
- *
142
- * assert.strictEqual(NonPositiveInt.clamp(-5), -5);
143
- *
144
- * assert.strictEqual(NonPositiveInt.clamp(0), 0);
145
- * ```
146
- *
147
- * @param value - The number to clamp
148
- * @returns The value clamped to the non-positive integer range
149
- */
150
- clamp,
151
- /**
152
- * Generates a random non-positive integer value.
153
- *
154
- * @example
155
- *
156
- * ```ts
157
- * const randomValue = NonPositiveInt.random();
158
- *
159
- * assert.isTrue(NonPositiveInt.is(randomValue));
160
- * ```
161
- *
162
- * @returns A random non-positive integer
163
- */
164
- random,
165
- /**
166
- * Raises a non-positive integer to the power of another non-positive integer.
167
- *
168
- * The result is clamped to the non-positive integer range.
169
- *
170
- * @example
171
- *
172
- * ```ts
173
- * const result = NonPositiveInt.pow(-2, -1);
174
- * ```
175
- *
176
- * @param a - The base non-positive integer
177
- * @param b - The exponent non-positive integer
178
- * @returns `a ** b` clamped to the non-positive integer range
179
- */
180
- pow,
181
- /**
182
- * Adds two non-positive integers.
183
- *
184
- * The result is clamped to the non-positive integer range. If the sum is
185
- * positive, it is clamped to 0.
186
- *
187
- * @example
188
- *
189
- * ```ts
190
- * assert.strictEqual(NonPositiveInt.add(-5, -3), -8);
191
- *
192
- * assert.strictEqual(NonPositiveInt.add(-5, 10), 0);
193
- * ```
194
- *
195
- * @param a - The first non-positive integer
196
- * @param b - The second non-positive integer
197
- * @returns `a + b` clamped to the non-positive integer range
198
- */
199
- add,
200
- /**
201
- * Subtracts one non-positive integer from another.
202
- *
203
- * The result is clamped to the non-positive integer range. If the result is
204
- * positive, it is clamped to 0.
205
- *
206
- * @example
207
- *
208
- * ```ts
209
- * assert.strictEqual(NonPositiveInt.sub(-10, -3), -7);
210
- *
211
- * assert.strictEqual(NonPositiveInt.sub(-10, 5), 0);
212
- * ```
213
- *
214
- * @param a - The minuend non-positive integer
215
- * @param b - The subtrahend non-positive integer
216
- * @returns `a - b` clamped to the non-positive integer range
217
- */
218
- sub,
24
+ /**
25
+ * Type guard that checks if a value is a non-positive integer.
26
+ *
27
+ * @example
28
+ *
29
+ * ```ts
30
+ * const value: number = -42;
31
+ *
32
+ * if (NonPositiveInt.is(value)) {
33
+ * // value is now typed as NonPositiveInt
34
+ * const debt = value;
35
+ * }
36
+ * ```
37
+ *
38
+ * @param value - The value to check
39
+ * @returns `true` if the value is a non-positive integer, `false` otherwise
40
+ */
41
+ is,
42
+ /**
43
+ * The maximum value for a non-positive integer.
44
+ *
45
+ * @readonly
46
+ */
47
+ MAX_VALUE,
48
+ /**
49
+ * Returns the smaller of two non-positive integers.
50
+ *
51
+ * Since non-positive integers range from negative infinity to 0, the smaller
52
+ * value is the one further from zero (more negative).
53
+ *
54
+ * @example
55
+ *
56
+ * ```ts
57
+ * const result = NonPositiveInt.min(-5, -10);
58
+ *
59
+ * assert.strictEqual(result, -10);
60
+ * ```
61
+ *
62
+ * @param a - The first non-positive integer
63
+ * @param b - The second non-positive integer
64
+ * @returns The minimum value as a non-positive integer
65
+ */
66
+ min: min_,
67
+ /**
68
+ * Returns the larger of two non-positive integers.
69
+ *
70
+ * Since non-positive integers range from negative infinity to 0, the larger
71
+ * value is the one closer to zero (less negative).
72
+ *
73
+ * @example
74
+ *
75
+ * ```ts
76
+ * const result = NonPositiveInt.max(-5, -10);
77
+ *
78
+ * assert.strictEqual(result, -5);
79
+ * ```
80
+ *
81
+ * @param a - The first non-positive integer
82
+ * @param b - The second non-positive integer
83
+ * @returns The maximum value as a non-positive integer
84
+ */
85
+ max: max_,
86
+ /**
87
+ * Clamps a number to the non-positive integer range.
88
+ *
89
+ * Any positive value is clamped to 0 (the maximum non-positive integer).
90
+ * Negative values are preserved as long as they are valid integers.
91
+ *
92
+ * @example
93
+ *
94
+ * ```ts
95
+ * assert.strictEqual(NonPositiveInt.clamp(5), 0);
96
+ *
97
+ * assert.strictEqual(NonPositiveInt.clamp(-5), -5);
98
+ *
99
+ * assert.strictEqual(NonPositiveInt.clamp(0), 0);
100
+ * ```
101
+ *
102
+ * @param value - The number to clamp
103
+ * @returns The value clamped to the non-positive integer range
104
+ */
105
+ clamp,
106
+ /**
107
+ * Generates a random non-positive integer value.
108
+ *
109
+ * @example
110
+ *
111
+ * ```ts
112
+ * const randomValue = NonPositiveInt.random();
113
+ *
114
+ * assert.isTrue(NonPositiveInt.is(randomValue));
115
+ * ```
116
+ *
117
+ * @returns A random non-positive integer
118
+ */
119
+ random,
120
+ /**
121
+ * Raises a non-positive integer to the power of another non-positive integer.
122
+ *
123
+ * The result is clamped to the non-positive integer range.
124
+ *
125
+ * @example
126
+ *
127
+ * ```ts
128
+ * const result = NonPositiveInt.pow(-2, -1);
129
+ * ```
130
+ *
131
+ * @param a - The base non-positive integer
132
+ * @param b - The exponent non-positive integer
133
+ * @returns `a ** b` clamped to the non-positive integer range
134
+ */
135
+ pow,
136
+ /**
137
+ * Adds two non-positive integers.
138
+ *
139
+ * The result is clamped to the non-positive integer range. If the sum is
140
+ * positive, it is clamped to 0.
141
+ *
142
+ * @example
143
+ *
144
+ * ```ts
145
+ * assert.strictEqual(NonPositiveInt.add(-5, -3), -8);
146
+ *
147
+ * assert.strictEqual(NonPositiveInt.add(-5, 10), 0);
148
+ * ```
149
+ *
150
+ * @param a - The first non-positive integer
151
+ * @param b - The second non-positive integer
152
+ * @returns `a + b` clamped to the non-positive integer range
153
+ */
154
+ add,
155
+ /**
156
+ * Subtracts one non-positive integer from another.
157
+ *
158
+ * The result is clamped to the non-positive integer range. If the result is
159
+ * positive, it is clamped to 0.
160
+ *
161
+ * @example
162
+ *
163
+ * ```ts
164
+ * assert.strictEqual(NonPositiveInt.sub(-10, -3), -7);
165
+ *
166
+ * assert.strictEqual(NonPositiveInt.sub(-10, 5), 0);
167
+ * ```
168
+ *
169
+ * @param a - The minuend non-positive integer
170
+ * @param b - The subtrahend non-positive integer
171
+ * @returns `a - b` clamped to the non-positive integer range
172
+ */
173
+ sub
219
174
  };
220
175
 
221
176
  export { NonPositiveInt, asNonPositiveInt, isNonPositiveInt };
@@ -1 +1 @@
1
- {"version":3,"file":"non-positive-int.mjs","sources":["../../../src/number/branded-types/non-positive-int.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAOA,MAAM,iBAAiB,GAAG,wBAAwB;AAElD,MAAM,EACJ,SAAS,EACT,GAAG,EACH,QAAQ,EACR,KAAK,EACL,EAAE,EACF,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EACH,MAAM,EACN,GAAG,GACJ,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,mBAAmB,CAI7D;AACA,IAAA,oBAAoB,EAAE,SAAS;AAC/B,IAAA,SAAS,EAAE,CAAC,MAAM,CAAC,SAAS;AAC5B,IAAA,SAAS,EAAE,CAAC;IACZ,iBAAiB;AACT,CAAA,CAAC;AAEX;;;;;;;;;;;;;;;;;;;AAmBG;AACI,MAAM,gBAAgB,GAAG;AAEhC;;;;;;;;;;;;;;;;;;;;AAoBG;AACI,MAAM,gBAAgB,GAAG;AAEhC;;;;;;;;;;;;;;AAcG;AACI,MAAM,cAAc,GAAG;AAC5B;;;;;;;;;;;;;;;;AAgBG;IACH,EAAE;AAEF;;;;AAIG;IACH,SAAS;AAET;;;;;;;;;;;;;;;;;AAiBG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;;;;;;;;;;;;;AAiBG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;;;;;;;;;;;;;;AAkBG;IACH,KAAK;AAEL;;;;;;;;;;;;AAYG;IACH,MAAM;AAEN;;;;;;;;;;;;;;AAcG;IACH,GAAG;AAEH;;;;;;;;;;;;;;;;;AAiBG;IACH,GAAG;AAEH;;;;;;;;;;;;;;;;;AAiBG;IACH,GAAG;;;;;"}
1
+ {"version":3,"file":"non-positive-int.mjs","sources":["../../../src/number/branded-types/non-positive-int.mts"],"sourcesContent":["import { type NonPositiveInt as TtfImported_NonPositiveInt } from 'ts-type-forge';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonPositiveInt = TtfImported_NonPositiveInt;\n\ntype ElementType = NonPositiveInt;\n\nconst typeNameInMessage = 'a non-positive integer';\n\nconst {\n MAX_VALUE,\n add,\n castType,\n clamp,\n is,\n max: max_,\n min: min_,\n pow,\n random,\n sub,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n number,\n 0\n>({\n integerOrSafeInteger: 'Integer',\n MIN_VALUE: -Number.MAX_VALUE,\n MAX_VALUE: 0,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a non-positive integer.\n *\n * A non-positive integer is any integer less than or equal to zero (<= 0).\n * This includes zero and all negative integers, but excludes positive numbers\n * and non-integers.\n *\n * @example\n *\n * ```ts\n * assert.isTrue(isNonPositiveInt(0));\n *\n * assert.isTrue(isNonPositiveInt(-5));\n *\n * assert.isFalse(isNonPositiveInt(1));\n * ```\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-positive integer, `false` otherwise\n */\nexport const isNonPositiveInt = is;\n\n/**\n * Casts a number to a NonPositiveInt branded type.\n *\n * This function validates that the input is a non-positive integer (<= 0) and\n * returns it with the NonPositiveInt brand. This ensures type safety for\n * operations that require non-positive integer values.\n *\n * @example\n *\n * ```ts\n * const branded = asNonPositiveInt(-7);\n *\n * assert.isTrue(branded === -7);\n *\n * assert.isTrue(NonPositiveInt.is(branded));\n * ```\n *\n * @param value - The value to cast\n * @returns The value as a NonPositiveInt branded type\n * @throws {TypeError} If the value is not a non-positive integer\n */\nexport const asNonPositiveInt = castType;\n\n/**\n * Namespace providing type-safe operations for NonPositiveInt branded types.\n *\n * NonPositiveInt represents integers that are less than or equal to zero (<= 0).\n * All operations automatically clamp results to maintain the non-positive\n * constraint, ensuring that arithmetic operations never produce positive values.\n *\n * This type is essential for:\n *\n * - Debts and negative balances\n * - Penalties and reductions\n * - Offsets and adjustments (downward)\n * - Negative counts or differences\n * - Depth or altitude below a reference point\n */\nexport const NonPositiveInt = {\n /**\n * Type guard that checks if a value is a non-positive integer.\n *\n * @example\n *\n * ```ts\n * const value: number = -42;\n *\n * if (NonPositiveInt.is(value)) {\n * // value is now typed as NonPositiveInt\n * const debt = value;\n * }\n * ```\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-positive integer, `false` otherwise\n */\n is,\n\n /**\n * The maximum value for a non-positive integer.\n *\n * @readonly\n */\n MAX_VALUE,\n\n /**\n * Returns the smaller of two non-positive integers.\n *\n * Since non-positive integers range from negative infinity to 0, the smaller\n * value is the one further from zero (more negative).\n *\n * @example\n *\n * ```ts\n * const result = NonPositiveInt.min(-5, -10);\n *\n * assert.strictEqual(result, -10);\n * ```\n *\n * @param a - The first non-positive integer\n * @param b - The second non-positive integer\n * @returns The minimum value as a non-positive integer\n */\n min: min_,\n\n /**\n * Returns the larger of two non-positive integers.\n *\n * Since non-positive integers range from negative infinity to 0, the larger\n * value is the one closer to zero (less negative).\n *\n * @example\n *\n * ```ts\n * const result = NonPositiveInt.max(-5, -10);\n *\n * assert.strictEqual(result, -5);\n * ```\n *\n * @param a - The first non-positive integer\n * @param b - The second non-positive integer\n * @returns The maximum value as a non-positive integer\n */\n max: max_,\n\n /**\n * Clamps a number to the non-positive integer range.\n *\n * Any positive value is clamped to 0 (the maximum non-positive integer).\n * Negative values are preserved as long as they are valid integers.\n *\n * @example\n *\n * ```ts\n * assert.strictEqual(NonPositiveInt.clamp(5), 0);\n *\n * assert.strictEqual(NonPositiveInt.clamp(-5), -5);\n *\n * assert.strictEqual(NonPositiveInt.clamp(0), 0);\n * ```\n *\n * @param value - The number to clamp\n * @returns The value clamped to the non-positive integer range\n */\n clamp,\n\n /**\n * Generates a random non-positive integer value.\n *\n * @example\n *\n * ```ts\n * const randomValue = NonPositiveInt.random();\n *\n * assert.isTrue(NonPositiveInt.is(randomValue));\n * ```\n *\n * @returns A random non-positive integer\n */\n random,\n\n /**\n * Raises a non-positive integer to the power of another non-positive integer.\n *\n * The result is clamped to the non-positive integer range.\n *\n * @example\n *\n * ```ts\n * const result = NonPositiveInt.pow(-2, -1);\n * ```\n *\n * @param a - The base non-positive integer\n * @param b - The exponent non-positive integer\n * @returns `a ** b` clamped to the non-positive integer range\n */\n pow,\n\n /**\n * Adds two non-positive integers.\n *\n * The result is clamped to the non-positive integer range. If the sum is\n * positive, it is clamped to 0.\n *\n * @example\n *\n * ```ts\n * assert.strictEqual(NonPositiveInt.add(-5, -3), -8);\n *\n * assert.strictEqual(NonPositiveInt.add(-5, 10), 0);\n * ```\n *\n * @param a - The first non-positive integer\n * @param b - The second non-positive integer\n * @returns `a + b` clamped to the non-positive integer range\n */\n add,\n\n /**\n * Subtracts one non-positive integer from another.\n *\n * The result is clamped to the non-positive integer range. If the result is\n * positive, it is clamped to 0.\n *\n * @example\n *\n * ```ts\n * assert.strictEqual(NonPositiveInt.sub(-10, -3), -7);\n *\n * assert.strictEqual(NonPositiveInt.sub(-10, 5), 0);\n * ```\n *\n * @param a - The minuend non-positive integer\n * @param b - The subtrahend non-positive integer\n * @returns `a - b` clamped to the non-positive integer range\n */\n sub,\n} as const;\n"],"names":[],"mappings":";;AAOA,MAAM,iBAAA,GAAoB,wBAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,EAAA;AAAA,EACA,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,IAAA;AAAA,EACL,GAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,GAAI,oBAAA,CAAqB,mBAAmB,mBAAA,CAI1C;AAAA,EACA,oBAAA,EAAsB,SAAA;AAAA,EACtB,SAAA,EAAW,CAAC,MAAA,CAAO,SAAA;AAAA,EACnB,SAAA,EAAW,CAAA;AAAA,EACX;AACF,CAAU,CAAA;AAsBH,MAAM,gBAAA,GAAmB;AAuBzB,MAAM,gBAAA,GAAmB;AAiBzB,MAAM,cAAA,GAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkB5B,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBA,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBL,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAqBL,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBA;AACF;;;;"}
@@ -16,14 +16,14 @@ export declare const isNonPositiveSafeInt: (a: number) => a is TtfImported_NonPo
16
16
  * @throws {TypeError} If the value is not a non-positive safe integer.
17
17
  */
18
18
  export declare const asNonPositiveSafeInt: <N extends number>(x: N) => number & {
19
- readonly NaNValue: false;
20
- readonly Finite: true;
21
- readonly Int: true;
22
- readonly "<=0": true;
23
19
  readonly "< 2^15": true;
24
20
  readonly "< 2^16": true;
25
21
  readonly "< 2^31": true;
26
22
  readonly "< 2^32": true;
23
+ readonly "<=0": true;
24
+ readonly Finite: true;
25
+ readonly Int: true;
26
+ readonly NaNValue: false;
27
27
  readonly SafeInt: true;
28
28
  } & Readonly<{
29
29
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
@@ -1,115 +1,104 @@
1
1
  import { TsDataForgeInternals } from '../refined-number-utils.mjs';
2
2
 
3
- const typeNameInMessage = 'a non-positive safe integer';
4
- const { MAX_VALUE, MIN_VALUE, add, castType, clamp, is, max: max_, min: min_, pow, random, sub, } = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger({
5
- integerOrSafeInteger: 'SafeInteger',
6
- MIN_VALUE: Number.MIN_SAFE_INTEGER,
7
- MAX_VALUE: 0,
8
- typeNameInMessage,
3
+ const typeNameInMessage = "a non-positive safe integer";
4
+ const {
5
+ MAX_VALUE,
6
+ MIN_VALUE,
7
+ add,
8
+ castType,
9
+ clamp,
10
+ is,
11
+ max: max_,
12
+ min: min_,
13
+ pow,
14
+ random,
15
+ sub
16
+ } = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger({
17
+ integerOrSafeInteger: "SafeInteger",
18
+ MIN_VALUE: Number.MIN_SAFE_INTEGER,
19
+ MAX_VALUE: 0,
20
+ typeNameInMessage
9
21
  });
10
- /**
11
- * Checks if a number is a NonPositiveSafeInt (non-positive safe integer in the
12
- * range [Number.MIN_SAFE_INTEGER, 0]).
13
- *
14
- * @param value The value to check.
15
- * @returns `true` if the value is a NonPositiveSafeInt, `false` otherwise.
16
- */
17
22
  const isNonPositiveSafeInt = is;
18
- /**
19
- * Casts a number to a NonPositiveSafeInt type.
20
- *
21
- * @param value The value to cast.
22
- * @returns The value as a NonPositiveSafeInt type.
23
- * @throws {TypeError} If the value is not a non-positive safe integer.
24
- */
25
23
  const asNonPositiveSafeInt = castType;
26
- /**
27
- * Namespace providing type-safe arithmetic operations for non-positive
28
- * safe integers.
29
- *
30
- * All operations automatically clamp results to the valid NonPositiveSafeInt
31
- * range [Number.MIN_SAFE_INTEGER, 0]. This ensures that all arithmetic
32
- * maintains the non-positive safe integer constraint, with positive results
33
- * clamped to 0 and underflow results clamped to MIN_VALUE.
34
- */
35
24
  const NonPositiveSafeInt = {
36
- /**
37
- * Type guard to check if a value is a NonPositiveSafeInt.
38
- *
39
- * @param value The value to check.
40
- * @returns `true` if the value is a non-positive safe integer, `false`
41
- * otherwise.
42
- */
43
- is,
44
- /**
45
- * The minimum value for a non-positive safe integer.
46
- *
47
- * @readonly
48
- */
49
- MIN_VALUE,
50
- /**
51
- * The maximum value for a non-positive safe integer.
52
- *
53
- * @readonly
54
- */
55
- MAX_VALUE,
56
- /**
57
- * Returns the smaller of two NonPositiveSafeInt values.
58
- *
59
- * @param a The first NonPositiveSafeInt.
60
- * @param b The second NonPositiveSafeInt.
61
- * @returns The minimum value as a NonPositiveSafeInt.
62
- */
63
- min: min_,
64
- /**
65
- * Returns the larger of two NonPositiveSafeInt values.
66
- *
67
- * @param a The first NonPositiveSafeInt.
68
- * @param b The second NonPositiveSafeInt.
69
- * @returns The maximum value as a NonPositiveSafeInt.
70
- */
71
- max: max_,
72
- /**
73
- * Clamps a number to the NonPositiveSafeInt range.
74
- *
75
- * @param value The number to clamp.
76
- * @returns The value clamped to [Number.MIN_SAFE_INTEGER, 0] as a
77
- * NonPositiveSafeInt.
78
- */
79
- clamp,
80
- /**
81
- * Generates a random NonPositiveSafeInt value within the valid range.
82
- *
83
- * @returns A random NonPositiveSafeInt between Number.MIN_SAFE_INTEGER and 0.
84
- */
85
- random,
86
- /**
87
- * Raises a NonPositiveSafeInt to the power of another NonPositiveSafeInt.
88
- *
89
- * @param a The base NonPositiveSafeInt.
90
- * @param b The exponent NonPositiveSafeInt.
91
- * @returns `a ** b` clamped to [Number.MIN_SAFE_INTEGER, 0] as a
92
- * NonPositiveSafeInt.
93
- */
94
- pow,
95
- /**
96
- * Adds two NonPositiveSafeInt values.
97
- *
98
- * @param a The first NonPositiveSafeInt.
99
- * @param b The second NonPositiveSafeInt.
100
- * @returns `a + b` clamped to [Number.MIN_SAFE_INTEGER, 0] as a
101
- * NonPositiveSafeInt.
102
- */
103
- add,
104
- /**
105
- * Subtracts one NonPositiveSafeInt from another.
106
- *
107
- * @param a The minuend NonPositiveSafeInt.
108
- * @param b The subtrahend NonPositiveSafeInt.
109
- * @returns `a - b` clamped to [Number.MIN_SAFE_INTEGER, 0] as a
110
- * NonPositiveSafeInt (maximum 0).
111
- */
112
- sub,
25
+ /**
26
+ * Type guard to check if a value is a NonPositiveSafeInt.
27
+ *
28
+ * @param value The value to check.
29
+ * @returns `true` if the value is a non-positive safe integer, `false`
30
+ * otherwise.
31
+ */
32
+ is,
33
+ /**
34
+ * The minimum value for a non-positive safe integer.
35
+ *
36
+ * @readonly
37
+ */
38
+ MIN_VALUE,
39
+ /**
40
+ * The maximum value for a non-positive safe integer.
41
+ *
42
+ * @readonly
43
+ */
44
+ MAX_VALUE,
45
+ /**
46
+ * Returns the smaller of two NonPositiveSafeInt values.
47
+ *
48
+ * @param a The first NonPositiveSafeInt.
49
+ * @param b The second NonPositiveSafeInt.
50
+ * @returns The minimum value as a NonPositiveSafeInt.
51
+ */
52
+ min: min_,
53
+ /**
54
+ * Returns the larger of two NonPositiveSafeInt values.
55
+ *
56
+ * @param a The first NonPositiveSafeInt.
57
+ * @param b The second NonPositiveSafeInt.
58
+ * @returns The maximum value as a NonPositiveSafeInt.
59
+ */
60
+ max: max_,
61
+ /**
62
+ * Clamps a number to the NonPositiveSafeInt range.
63
+ *
64
+ * @param value The number to clamp.
65
+ * @returns The value clamped to [Number.MIN_SAFE_INTEGER, 0] as a
66
+ * NonPositiveSafeInt.
67
+ */
68
+ clamp,
69
+ /**
70
+ * Generates a random NonPositiveSafeInt value within the valid range.
71
+ *
72
+ * @returns A random NonPositiveSafeInt between Number.MIN_SAFE_INTEGER and 0.
73
+ */
74
+ random,
75
+ /**
76
+ * Raises a NonPositiveSafeInt to the power of another NonPositiveSafeInt.
77
+ *
78
+ * @param a The base NonPositiveSafeInt.
79
+ * @param b The exponent NonPositiveSafeInt.
80
+ * @returns `a ** b` clamped to [Number.MIN_SAFE_INTEGER, 0] as a
81
+ * NonPositiveSafeInt.
82
+ */
83
+ pow,
84
+ /**
85
+ * Adds two NonPositiveSafeInt values.
86
+ *
87
+ * @param a The first NonPositiveSafeInt.
88
+ * @param b The second NonPositiveSafeInt.
89
+ * @returns `a + b` clamped to [Number.MIN_SAFE_INTEGER, 0] as a
90
+ * NonPositiveSafeInt.
91
+ */
92
+ add,
93
+ /**
94
+ * Subtracts one NonPositiveSafeInt from another.
95
+ *
96
+ * @param a The minuend NonPositiveSafeInt.
97
+ * @param b The subtrahend NonPositiveSafeInt.
98
+ * @returns `a - b` clamped to [Number.MIN_SAFE_INTEGER, 0] as a
99
+ * NonPositiveSafeInt (maximum 0).
100
+ */
101
+ sub
113
102
  };
114
103
 
115
104
  export { NonPositiveSafeInt, asNonPositiveSafeInt, isNonPositiveSafeInt };