ts-data-forge 3.3.0 → 3.3.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 (424) hide show
  1. package/README.md +37 -13
  2. package/dist/array/impl/array-utils-creation.d.mts +116 -0
  3. package/dist/array/impl/array-utils-creation.d.mts.map +1 -0
  4. package/dist/array/impl/array-utils-creation.mjs +110 -0
  5. package/dist/array/impl/array-utils-creation.mjs.map +1 -0
  6. package/dist/array/impl/array-utils-element-access.d.mts +61 -0
  7. package/dist/array/impl/array-utils-element-access.d.mts.map +1 -0
  8. package/dist/array/impl/array-utils-element-access.mjs +66 -0
  9. package/dist/array/impl/array-utils-element-access.mjs.map +1 -0
  10. package/dist/array/impl/array-utils-iterators.d.mts +59 -0
  11. package/dist/array/impl/array-utils-iterators.d.mts.map +1 -0
  12. package/dist/array/impl/array-utils-iterators.mjs +104 -0
  13. package/dist/array/impl/array-utils-iterators.mjs.map +1 -0
  14. package/dist/array/impl/array-utils-modification.d.mts +154 -0
  15. package/dist/array/impl/array-utils-modification.d.mts.map +1 -0
  16. package/dist/array/impl/array-utils-modification.mjs +139 -0
  17. package/dist/array/impl/array-utils-modification.mjs.map +1 -0
  18. package/dist/array/impl/array-utils-reducing-value.d.mts +214 -0
  19. package/dist/array/impl/array-utils-reducing-value.d.mts.map +1 -0
  20. package/dist/array/impl/array-utils-reducing-value.mjs +160 -0
  21. package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -0
  22. package/dist/array/impl/array-utils-search.d.mts +179 -0
  23. package/dist/array/impl/array-utils-search.d.mts.map +1 -0
  24. package/dist/array/impl/array-utils-search.mjs +153 -0
  25. package/dist/array/impl/array-utils-search.mjs.map +1 -0
  26. package/dist/array/impl/array-utils-set-op.d.mts +100 -0
  27. package/dist/array/impl/array-utils-set-op.d.mts.map +1 -0
  28. package/dist/array/impl/array-utils-set-op.mjs +137 -0
  29. package/dist/array/impl/array-utils-set-op.mjs.map +1 -0
  30. package/dist/array/impl/array-utils-size.d.mts +24 -0
  31. package/dist/array/impl/array-utils-size.d.mts.map +1 -0
  32. package/dist/array/impl/array-utils-size.mjs +28 -0
  33. package/dist/array/impl/array-utils-size.mjs.map +1 -0
  34. package/dist/array/impl/array-utils-slice-clamped.d.mts +18 -0
  35. package/dist/array/impl/array-utils-slice-clamped.d.mts.map +1 -0
  36. package/dist/array/impl/array-utils-slice-clamped.mjs +49 -0
  37. package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -0
  38. package/dist/array/impl/array-utils-slicing.d.mts +120 -0
  39. package/dist/array/impl/array-utils-slicing.d.mts.map +1 -0
  40. package/dist/array/impl/array-utils-slicing.mjs +140 -0
  41. package/dist/array/impl/array-utils-slicing.mjs.map +1 -0
  42. package/dist/array/impl/array-utils-transformation.d.mts +348 -0
  43. package/dist/array/impl/array-utils-transformation.d.mts.map +1 -0
  44. package/dist/array/impl/array-utils-transformation.mjs +331 -0
  45. package/dist/array/impl/array-utils-transformation.mjs.map +1 -0
  46. package/dist/array/impl/array-utils-validation.d.mts +149 -0
  47. package/dist/array/impl/array-utils-validation.d.mts.map +1 -0
  48. package/dist/array/impl/array-utils-validation.mjs +166 -0
  49. package/dist/array/impl/array-utils-validation.mjs.map +1 -0
  50. package/dist/array/impl/index.d.mts +13 -0
  51. package/dist/array/impl/index.d.mts.map +1 -0
  52. package/dist/array/impl/index.mjs +13 -0
  53. package/dist/array/impl/index.mjs.map +1 -0
  54. package/dist/array/index.d.mts +1 -1
  55. package/dist/array/index.d.mts.map +1 -1
  56. package/dist/array/index.mjs +2 -1
  57. package/dist/array/index.mjs.map +1 -1
  58. package/dist/collections/imap-mapped.d.mts +83 -253
  59. package/dist/collections/imap-mapped.d.mts.map +1 -1
  60. package/dist/collections/imap-mapped.mjs +33 -164
  61. package/dist/collections/imap-mapped.mjs.map +1 -1
  62. package/dist/collections/imap.d.mts +436 -163
  63. package/dist/collections/imap.d.mts.map +1 -1
  64. package/dist/collections/imap.mjs +74 -94
  65. package/dist/collections/imap.mjs.map +1 -1
  66. package/dist/collections/iset-mapped.d.mts +828 -345
  67. package/dist/collections/iset-mapped.d.mts.map +1 -1
  68. package/dist/collections/iset-mapped.mjs +200 -242
  69. package/dist/collections/iset-mapped.mjs.map +1 -1
  70. package/dist/collections/iset.d.mts +397 -205
  71. package/dist/collections/iset.d.mts.map +1 -1
  72. package/dist/collections/iset.mjs +102 -184
  73. package/dist/collections/iset.mjs.map +1 -1
  74. package/dist/collections/queue.d.mts +155 -135
  75. package/dist/collections/queue.d.mts.map +1 -1
  76. package/dist/collections/queue.mjs +55 -156
  77. package/dist/collections/queue.mjs.map +1 -1
  78. package/dist/collections/stack.d.mts +154 -154
  79. package/dist/collections/stack.d.mts.map +1 -1
  80. package/dist/collections/stack.mjs +54 -203
  81. package/dist/collections/stack.mjs.map +1 -1
  82. package/dist/entry-point.d.mts +1 -0
  83. package/dist/entry-point.d.mts.map +1 -1
  84. package/dist/entry-point.mjs +2 -1
  85. package/dist/entry-point.mjs.map +1 -1
  86. package/dist/expect-type.d.mts +43 -172
  87. package/dist/expect-type.d.mts.map +1 -1
  88. package/dist/expect-type.mjs +43 -172
  89. package/dist/expect-type.mjs.map +1 -1
  90. package/dist/functional/match.d.mts +35 -140
  91. package/dist/functional/match.d.mts.map +1 -1
  92. package/dist/functional/match.mjs.map +1 -1
  93. package/dist/functional/optional.d.mts +282 -160
  94. package/dist/functional/optional.d.mts.map +1 -1
  95. package/dist/functional/optional.mjs +131 -71
  96. package/dist/functional/optional.mjs.map +1 -1
  97. package/dist/functional/pipe.d.mts +59 -113
  98. package/dist/functional/pipe.d.mts.map +1 -1
  99. package/dist/functional/pipe.mjs.map +1 -1
  100. package/dist/functional/result.d.mts +433 -332
  101. package/dist/functional/result.d.mts.map +1 -1
  102. package/dist/functional/result.mjs +233 -239
  103. package/dist/functional/result.mjs.map +1 -1
  104. package/dist/globals.d.mts +12 -5
  105. package/dist/guard/has-key.d.mts +23 -74
  106. package/dist/guard/has-key.d.mts.map +1 -1
  107. package/dist/guard/has-key.mjs +23 -74
  108. package/dist/guard/has-key.mjs.map +1 -1
  109. package/dist/guard/is-non-empty-string.d.mts +20 -87
  110. package/dist/guard/is-non-empty-string.d.mts.map +1 -1
  111. package/dist/guard/is-non-empty-string.mjs +20 -87
  112. package/dist/guard/is-non-empty-string.mjs.map +1 -1
  113. package/dist/guard/is-non-null-object.d.mts +14 -84
  114. package/dist/guard/is-non-null-object.d.mts.map +1 -1
  115. package/dist/guard/is-non-null-object.mjs +14 -84
  116. package/dist/guard/is-non-null-object.mjs.map +1 -1
  117. package/dist/guard/is-primitive.d.mts +13 -126
  118. package/dist/guard/is-primitive.d.mts.map +1 -1
  119. package/dist/guard/is-primitive.mjs +13 -126
  120. package/dist/guard/is-primitive.mjs.map +1 -1
  121. package/dist/guard/is-record.d.mts +21 -132
  122. package/dist/guard/is-record.d.mts.map +1 -1
  123. package/dist/guard/is-record.mjs +21 -132
  124. package/dist/guard/is-record.mjs.map +1 -1
  125. package/dist/guard/is-type.d.mts +201 -238
  126. package/dist/guard/is-type.d.mts.map +1 -1
  127. package/dist/guard/is-type.mjs +201 -238
  128. package/dist/guard/is-type.mjs.map +1 -1
  129. package/dist/guard/key-is-in.d.mts +22 -139
  130. package/dist/guard/key-is-in.d.mts.map +1 -1
  131. package/dist/guard/key-is-in.mjs +22 -139
  132. package/dist/guard/key-is-in.mjs.map +1 -1
  133. package/dist/index.d.mts +0 -1
  134. package/dist/index.d.mts.map +1 -1
  135. package/dist/index.mjs +0 -1
  136. package/dist/index.mjs.map +1 -1
  137. package/dist/iterator/range.d.mts +29 -62
  138. package/dist/iterator/range.d.mts.map +1 -1
  139. package/dist/iterator/range.mjs.map +1 -1
  140. package/dist/json/json.d.mts +191 -121
  141. package/dist/json/json.d.mts.map +1 -1
  142. package/dist/json/json.mjs +238 -136
  143. package/dist/json/json.mjs.map +1 -1
  144. package/dist/number/branded-types/finite-number.d.mts +24 -156
  145. package/dist/number/branded-types/finite-number.d.mts.map +1 -1
  146. package/dist/number/branded-types/finite-number.mjs +27 -159
  147. package/dist/number/branded-types/finite-number.mjs.map +1 -1
  148. package/dist/number/branded-types/int.d.mts +122 -120
  149. package/dist/number/branded-types/int.d.mts.map +1 -1
  150. package/dist/number/branded-types/int.mjs +122 -120
  151. package/dist/number/branded-types/int.mjs.map +1 -1
  152. package/dist/number/branded-types/int16.d.mts +22 -30
  153. package/dist/number/branded-types/int16.d.mts.map +1 -1
  154. package/dist/number/branded-types/int16.mjs +22 -30
  155. package/dist/number/branded-types/int16.mjs.map +1 -1
  156. package/dist/number/branded-types/int32.d.mts +22 -31
  157. package/dist/number/branded-types/int32.d.mts.map +1 -1
  158. package/dist/number/branded-types/int32.mjs +22 -31
  159. package/dist/number/branded-types/int32.mjs.map +1 -1
  160. package/dist/number/branded-types/non-negative-finite-number.d.mts +28 -36
  161. package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
  162. package/dist/number/branded-types/non-negative-finite-number.mjs +31 -39
  163. package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
  164. package/dist/number/branded-types/non-negative-int16.d.mts +24 -34
  165. package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
  166. package/dist/number/branded-types/non-negative-int16.mjs +24 -34
  167. package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
  168. package/dist/number/branded-types/non-negative-int32.d.mts +26 -35
  169. package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
  170. package/dist/number/branded-types/non-negative-int32.mjs +26 -35
  171. package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
  172. package/dist/number/branded-types/non-zero-finite-number.d.mts +22 -37
  173. package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
  174. package/dist/number/branded-types/non-zero-finite-number.mjs +25 -40
  175. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
  176. package/dist/number/branded-types/non-zero-int.d.mts +15 -30
  177. package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
  178. package/dist/number/branded-types/non-zero-int.mjs +15 -30
  179. package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
  180. package/dist/number/branded-types/non-zero-int16.d.mts +27 -35
  181. package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
  182. package/dist/number/branded-types/non-zero-int16.mjs +27 -35
  183. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
  184. package/dist/number/branded-types/non-zero-int32.d.mts +29 -36
  185. package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
  186. package/dist/number/branded-types/non-zero-int32.mjs +29 -36
  187. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
  188. package/dist/number/branded-types/non-zero-safe-int.d.mts +37 -38
  189. package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
  190. package/dist/number/branded-types/non-zero-safe-int.mjs +39 -40
  191. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
  192. package/dist/number/branded-types/non-zero-uint16.d.mts +24 -35
  193. package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
  194. package/dist/number/branded-types/non-zero-uint16.mjs +24 -35
  195. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
  196. package/dist/number/branded-types/non-zero-uint32.d.mts +24 -35
  197. package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
  198. package/dist/number/branded-types/non-zero-uint32.mjs +24 -35
  199. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
  200. package/dist/number/branded-types/positive-finite-number.d.mts +26 -40
  201. package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
  202. package/dist/number/branded-types/positive-finite-number.mjs +29 -43
  203. package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
  204. package/dist/number/branded-types/positive-int.d.mts +133 -123
  205. package/dist/number/branded-types/positive-int.d.mts.map +1 -1
  206. package/dist/number/branded-types/positive-int.mjs +133 -123
  207. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  208. package/dist/number/branded-types/positive-int16.d.mts +24 -35
  209. package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
  210. package/dist/number/branded-types/positive-int16.mjs +24 -35
  211. package/dist/number/branded-types/positive-int16.mjs.map +1 -1
  212. package/dist/number/branded-types/positive-int32.d.mts +24 -35
  213. package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
  214. package/dist/number/branded-types/positive-int32.mjs +24 -35
  215. package/dist/number/branded-types/positive-int32.mjs.map +1 -1
  216. package/dist/number/branded-types/positive-safe-int.d.mts +159 -33
  217. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
  218. package/dist/number/branded-types/positive-safe-int.mjs +160 -34
  219. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  220. package/dist/number/branded-types/positive-uint16.d.mts +24 -35
  221. package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
  222. package/dist/number/branded-types/positive-uint16.mjs +24 -35
  223. package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
  224. package/dist/number/branded-types/positive-uint32.d.mts +26 -36
  225. package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
  226. package/dist/number/branded-types/positive-uint32.mjs +26 -36
  227. package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
  228. package/dist/number/branded-types/safe-int.d.mts +140 -99
  229. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  230. package/dist/number/branded-types/safe-int.mjs +142 -101
  231. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  232. package/dist/number/branded-types/safe-uint.d.mts +24 -33
  233. package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
  234. package/dist/number/branded-types/safe-uint.mjs +25 -34
  235. package/dist/number/branded-types/safe-uint.mjs.map +1 -1
  236. package/dist/number/branded-types/uint.d.mts +121 -30
  237. package/dist/number/branded-types/uint.d.mts.map +1 -1
  238. package/dist/number/branded-types/uint.mjs +121 -30
  239. package/dist/number/branded-types/uint.mjs.map +1 -1
  240. package/dist/number/branded-types/uint16.d.mts +26 -34
  241. package/dist/number/branded-types/uint16.d.mts.map +1 -1
  242. package/dist/number/branded-types/uint16.mjs +26 -34
  243. package/dist/number/branded-types/uint16.mjs.map +1 -1
  244. package/dist/number/branded-types/uint32.d.mts +26 -68
  245. package/dist/number/branded-types/uint32.d.mts.map +1 -1
  246. package/dist/number/branded-types/uint32.mjs +26 -68
  247. package/dist/number/branded-types/uint32.mjs.map +1 -1
  248. package/dist/number/enum/int8.d.mts +37 -101
  249. package/dist/number/enum/int8.d.mts.map +1 -1
  250. package/dist/number/enum/int8.mjs +39 -170
  251. package/dist/number/enum/int8.mjs.map +1 -1
  252. package/dist/number/enum/uint8.d.mts +45 -55
  253. package/dist/number/enum/uint8.d.mts.map +1 -1
  254. package/dist/number/enum/uint8.mjs +46 -155
  255. package/dist/number/enum/uint8.mjs.map +1 -1
  256. package/dist/number/num.d.mts +145 -206
  257. package/dist/number/num.d.mts.map +1 -1
  258. package/dist/number/num.mjs +143 -199
  259. package/dist/number/num.mjs.map +1 -1
  260. package/dist/number/refined-number-utils.d.mts +97 -21
  261. package/dist/number/refined-number-utils.d.mts.map +1 -1
  262. package/dist/number/refined-number-utils.mjs +91 -20
  263. package/dist/number/refined-number-utils.mjs.map +1 -1
  264. package/dist/object/object.d.mts +126 -208
  265. package/dist/object/object.d.mts.map +1 -1
  266. package/dist/object/object.mjs +68 -102
  267. package/dist/object/object.mjs.map +1 -1
  268. package/dist/others/cast-mutable.d.mts +12 -88
  269. package/dist/others/cast-mutable.d.mts.map +1 -1
  270. package/dist/others/cast-mutable.mjs +13 -89
  271. package/dist/others/cast-mutable.mjs.map +1 -1
  272. package/dist/others/cast-readonly.d.mts +12 -168
  273. package/dist/others/cast-readonly.d.mts.map +1 -1
  274. package/dist/others/cast-readonly.mjs +13 -169
  275. package/dist/others/cast-readonly.mjs.map +1 -1
  276. package/dist/others/if-then.d.mts +6 -83
  277. package/dist/others/if-then.d.mts.map +1 -1
  278. package/dist/others/if-then.mjs +6 -83
  279. package/dist/others/if-then.mjs.map +1 -1
  280. package/dist/others/map-nullable.d.mts +12 -136
  281. package/dist/others/map-nullable.d.mts.map +1 -1
  282. package/dist/others/map-nullable.mjs.map +1 -1
  283. package/dist/others/memoize-function.d.mts +14 -157
  284. package/dist/others/memoize-function.d.mts.map +1 -1
  285. package/dist/others/memoize-function.mjs +14 -157
  286. package/dist/others/memoize-function.mjs.map +1 -1
  287. package/dist/others/tuple.d.mts +33 -151
  288. package/dist/others/tuple.d.mts.map +1 -1
  289. package/dist/others/tuple.mjs +33 -151
  290. package/dist/others/tuple.mjs.map +1 -1
  291. package/dist/others/unknown-to-string.d.mts +11 -125
  292. package/dist/others/unknown-to-string.d.mts.map +1 -1
  293. package/dist/others/unknown-to-string.mjs +12 -126
  294. package/dist/others/unknown-to-string.mjs.map +1 -1
  295. package/dist/promise/promise.d.mts +33 -20
  296. package/dist/promise/promise.d.mts.map +1 -1
  297. package/dist/promise/promise.mjs +34 -21
  298. package/dist/promise/promise.mjs.map +1 -1
  299. package/package.json +47 -39
  300. package/src/array/impl/array-utils-creation.mts +192 -0
  301. package/src/array/{array-utils-creation.test.mts → impl/array-utils-creation.test.mts} +121 -72
  302. package/src/array/impl/array-utils-element-access.mts +115 -0
  303. package/src/array/impl/array-utils-element-access.test.mts +151 -0
  304. package/src/array/impl/array-utils-iterators.mts +79 -0
  305. package/src/array/impl/array-utils-iterators.test.mts +98 -0
  306. package/src/array/impl/array-utils-modification.mts +434 -0
  307. package/src/array/{array-utils-modification.test.mts → impl/array-utils-modification.test.mts} +41 -28
  308. package/src/array/{array-utils-overload-type-error.test.mts → impl/array-utils-overload-type-error.test.mts} +33 -33
  309. package/src/array/impl/array-utils-reducing-value.mts +551 -0
  310. package/src/array/{array-utils-reducing-value.test.mts → impl/array-utils-reducing-value.test.mts} +45 -50
  311. package/src/array/impl/array-utils-search.mts +509 -0
  312. package/src/array/impl/array-utils-search.test.mts +346 -0
  313. package/src/array/impl/array-utils-set-op.mts +166 -0
  314. package/src/array/{array-utils-set-op.test.mts → impl/array-utils-set-op.test.mts} +42 -35
  315. package/src/array/impl/array-utils-size.mts +30 -0
  316. package/src/array/impl/array-utils-size.test.mts +9 -0
  317. package/src/array/impl/array-utils-slice-clamped.mts +51 -0
  318. package/src/array/{array-utils-slice-clamped.test.mts → impl/array-utils-slice-clamped.test.mts} +12 -12
  319. package/src/array/impl/array-utils-slicing.mts +275 -0
  320. package/src/array/impl/array-utils-slicing.test.mts +158 -0
  321. package/src/array/impl/array-utils-transformation.mts +746 -0
  322. package/src/array/{array-utils-transformation.test.mts → impl/array-utils-transformation.test.mts} +662 -889
  323. package/src/array/impl/array-utils-validation.mts +241 -0
  324. package/src/array/{array-utils-validation.test.mts → impl/array-utils-validation.test.mts} +194 -107
  325. package/src/array/{array.test.mts → impl/array.test.mts} +2 -2
  326. package/src/array/impl/index.mts +12 -0
  327. package/src/array/index.mts +1 -1
  328. package/src/collections/imap-mapped.mts +99 -265
  329. package/src/collections/imap.mts +477 -174
  330. package/src/collections/imap.test.mts +12 -19
  331. package/src/collections/iset-mapped.mts +892 -358
  332. package/src/collections/iset.mts +429 -213
  333. package/src/collections/queue.mts +174 -200
  334. package/src/collections/stack.mts +172 -245
  335. package/src/collections/stack.test.mts +9 -1
  336. package/src/entry-point.mts +1 -0
  337. package/src/expect-type.mts +43 -172
  338. package/src/functional/match.mts +35 -145
  339. package/src/functional/optional.mts +285 -163
  340. package/src/functional/optional.test.mts +4 -1
  341. package/src/functional/pipe.mts +60 -113
  342. package/src/functional/result.mts +452 -351
  343. package/src/functional/result.test.mts +9 -2
  344. package/src/globals.d.mts +12 -5
  345. package/src/guard/has-key.mts +23 -74
  346. package/src/guard/is-non-empty-string.mts +20 -87
  347. package/src/guard/is-non-null-object.mts +14 -84
  348. package/src/guard/is-non-null-object.test.mts +1 -1
  349. package/src/guard/is-primitive.mts +13 -126
  350. package/src/guard/is-primitive.test.mts +1 -1
  351. package/src/guard/is-record.mts +21 -132
  352. package/src/guard/is-type.mts +201 -238
  353. package/src/guard/is-type.test.mts +7 -7
  354. package/src/guard/key-is-in.mts +22 -139
  355. package/src/index.mts +0 -1
  356. package/src/iterator/range.mts +29 -62
  357. package/src/json/json.mts +202 -134
  358. package/src/json/json.test.mts +1 -3
  359. package/src/number/branded-types/finite-number.mts +27 -159
  360. package/src/number/branded-types/int.mts +122 -120
  361. package/src/number/branded-types/int16.mts +22 -30
  362. package/src/number/branded-types/int16.test.mts +24 -24
  363. package/src/number/branded-types/int32.mts +22 -31
  364. package/src/number/branded-types/int32.test.mts +39 -39
  365. package/src/number/branded-types/non-negative-finite-number.mts +31 -39
  366. package/src/number/branded-types/non-negative-int16.mts +24 -34
  367. package/src/number/branded-types/non-negative-int16.test.mts +16 -16
  368. package/src/number/branded-types/non-negative-int32.mts +26 -35
  369. package/src/number/branded-types/non-negative-int32.test.mts +30 -30
  370. package/src/number/branded-types/non-zero-finite-number.mts +25 -40
  371. package/src/number/branded-types/non-zero-int.mts +15 -30
  372. package/src/number/branded-types/non-zero-int16.mts +27 -35
  373. package/src/number/branded-types/non-zero-int16.test.mts +26 -26
  374. package/src/number/branded-types/non-zero-int32.mts +29 -36
  375. package/src/number/branded-types/non-zero-int32.test.mts +45 -42
  376. package/src/number/branded-types/non-zero-safe-int.mts +39 -40
  377. package/src/number/branded-types/non-zero-uint16.mts +24 -35
  378. package/src/number/branded-types/non-zero-uint16.test.mts +16 -16
  379. package/src/number/branded-types/non-zero-uint32.mts +24 -35
  380. package/src/number/branded-types/non-zero-uint32.test.mts +28 -28
  381. package/src/number/branded-types/positive-finite-number.mts +29 -43
  382. package/src/number/branded-types/positive-int.mts +134 -124
  383. package/src/number/branded-types/positive-int16.mts +24 -35
  384. package/src/number/branded-types/positive-int16.test.mts +14 -14
  385. package/src/number/branded-types/positive-int32.mts +24 -35
  386. package/src/number/branded-types/positive-int32.test.mts +26 -26
  387. package/src/number/branded-types/positive-safe-int.mts +160 -34
  388. package/src/number/branded-types/positive-uint16.mts +24 -35
  389. package/src/number/branded-types/positive-uint16.test.mts +16 -16
  390. package/src/number/branded-types/positive-uint32.mts +26 -36
  391. package/src/number/branded-types/positive-uint32.test.mts +31 -28
  392. package/src/number/branded-types/safe-int.mts +142 -101
  393. package/src/number/branded-types/safe-uint.mts +25 -34
  394. package/src/number/branded-types/uint.mts +121 -30
  395. package/src/number/branded-types/uint16.mts +26 -34
  396. package/src/number/branded-types/uint16.test.mts +16 -16
  397. package/src/number/branded-types/uint32.mts +26 -68
  398. package/src/number/branded-types/uint32.test.mts +28 -28
  399. package/src/number/enum/int8.mts +39 -170
  400. package/src/number/enum/uint8.mts +46 -155
  401. package/src/number/num.mts +157 -212
  402. package/src/number/num.test.mts +4 -4
  403. package/src/number/refined-number-utils.mts +109 -26
  404. package/src/object/object.mts +130 -212
  405. package/src/object/object.test.mts +29 -0
  406. package/src/others/cast-mutable.mts +13 -89
  407. package/src/others/cast-mutable.test.mts +80 -0
  408. package/src/others/cast-readonly.mts +13 -169
  409. package/src/others/if-then.mts +6 -83
  410. package/src/others/map-nullable.mts +12 -136
  411. package/src/others/map-nullable.test.mts +6 -6
  412. package/src/others/memoize-function.mts +14 -157
  413. package/src/others/tuple.mts +33 -151
  414. package/src/others/unknown-to-string.mts +12 -126
  415. package/src/others/unknown-to-string.test.mts +13 -1
  416. package/src/promise/promise.mts +34 -21
  417. package/src/promise/promise.test.mts +43 -0
  418. package/dist/array/array-utils.d.mts +0 -2956
  419. package/dist/array/array-utils.d.mts.map +0 -1
  420. package/dist/array/array-utils.mjs +0 -1838
  421. package/dist/array/array-utils.mjs.map +0 -1
  422. package/src/array/array-utils-search.test.mts +0 -169
  423. package/src/array/array-utils-slicing.test.mts +0 -274
  424. package/src/array/array-utils.mts +0 -4834
@@ -9,73 +9,54 @@ const { MIN_VALUE, MAX_VALUE, min: min_, max: max_, pow, add, sub, mul, div, ran
9
9
  typeNameInMessage,
10
10
  });
11
11
  /**
12
- * Checks if a number is a NonZeroUint32 (32-bit non-zero unsigned integer in the range [1, 2^32)).
12
+ * Checks if a number is a NonZeroUint32 (32-bit non-zero unsigned integer in
13
+ * the range [1, 2^32)).
14
+ *
13
15
  * @param value The value to check.
14
16
  * @returns `true` if the value is a NonZeroUint32, `false` otherwise.
15
17
  */
16
18
  const isNonZeroUint32 = is;
17
19
  /**
18
20
  * Casts a number to a NonZeroUint32 type.
21
+ *
19
22
  * @param value The value to cast.
20
23
  * @returns The value as a NonZeroUint32 type.
21
24
  * @throws {TypeError} If the value is not a non-zero integer in [1, 2^32).
22
- * @example
23
- * ```typescript
24
- * const x = asNonZeroUint32(1000); // NonZeroUint32
25
- * const y = asNonZeroUint32(4294967295); // NonZeroUint32
26
- * // asNonZeroUint32(0); // throws TypeError
27
- * // asNonZeroUint32(-1); // throws TypeError
28
- * // asNonZeroUint32(4294967296); // throws TypeError
29
- * ```
30
25
  */
31
26
  const asNonZeroUint32 = castType;
32
27
  /**
33
- * Namespace providing type-safe arithmetic operations for 32-bit non-zero unsigned integers.
34
- *
35
- * All operations automatically clamp results to the valid NonZeroUint32 range [1, 4294967295].
36
- * This ensures that all arithmetic maintains the 32-bit non-zero unsigned integer constraint,
37
- * with results below 1 clamped to MIN_VALUE and overflow results clamped to MAX_VALUE.
38
- *
39
- * @example
40
- * ```typescript
41
- * const a = asNonZeroUint32(4000000000);
42
- * const b = asNonZeroUint32(1000000000);
43
- *
44
- * // Arithmetic operations with automatic clamping and non-zero constraint
45
- * const sum = NonZeroUint32.add(a, b); // NonZeroUint32 (4294967295 - clamped to MAX_VALUE)
46
- * const diff = NonZeroUint32.sub(a, b); // NonZeroUint32 (3000000000)
47
- * const reverseDiff = NonZeroUint32.sub(b, a); // NonZeroUint32 (1 - clamped to MIN_VALUE)
48
- * const product = NonZeroUint32.mul(a, b); // NonZeroUint32 (4294967295 - clamped due to overflow)
49
- *
50
- * // Range operations (maintaining non-zero constraint)
51
- * const clamped = NonZeroUint32.clamp(-100); // NonZeroUint32 (1)
52
- * const minimum = NonZeroUint32.min(a, b); // NonZeroUint32 (1000000000)
53
- * const maximum = NonZeroUint32.max(a, b); // NonZeroUint32 (4000000000)
28
+ * Namespace providing type-safe arithmetic operations for 32-bit non-zero
29
+ * unsigned integers.
54
30
  *
55
- * // Utility operations
56
- * const random = NonZeroUint32.random(); // NonZeroUint32 (random value in [1, 4294967295])
57
- * const power = NonZeroUint32.pow(asNonZeroUint32(2), asNonZeroUint32(20)); // NonZeroUint32 (1048576)
58
- * ```
31
+ * All operations automatically clamp results to the valid NonZeroUint32 range
32
+ * [1, 4294967295]. This ensures that all arithmetic maintains the 32-bit
33
+ * non-zero unsigned integer constraint, with results below 1 clamped to
34
+ * MIN_VALUE and overflow results clamped to MAX_VALUE.
59
35
  */
60
36
  const NonZeroUint32 = {
61
37
  /**
62
38
  * Type guard to check if a value is a NonZeroUint32.
39
+ *
63
40
  * @param value The value to check.
64
- * @returns `true` if the value is a 32-bit non-zero unsigned integer, `false` otherwise.
41
+ * @returns `true` if the value is a 32-bit non-zero unsigned integer, `false`
42
+ * otherwise.
65
43
  */
66
44
  is,
67
45
  /**
68
46
  * The minimum value for a 32-bit non-zero unsigned integer.
47
+ *
69
48
  * @readonly
70
49
  */
71
50
  MIN_VALUE,
72
51
  /**
73
52
  * The maximum value for a 32-bit non-zero unsigned integer.
53
+ *
74
54
  * @readonly
75
55
  */
76
56
  MAX_VALUE,
77
57
  /**
78
58
  * Returns the smaller of two NonZeroUint32 values.
59
+ *
79
60
  * @param a The first NonZeroUint32.
80
61
  * @param b The second NonZeroUint32.
81
62
  * @returns The minimum value as a NonZeroUint32.
@@ -83,6 +64,7 @@ const NonZeroUint32 = {
83
64
  min: min_,
84
65
  /**
85
66
  * Returns the larger of two NonZeroUint32 values.
67
+ *
86
68
  * @param a The first NonZeroUint32.
87
69
  * @param b The second NonZeroUint32.
88
70
  * @returns The maximum value as a NonZeroUint32.
@@ -90,17 +72,20 @@ const NonZeroUint32 = {
90
72
  max: max_,
91
73
  /**
92
74
  * Clamps a number to the NonZeroUint32 range.
75
+ *
93
76
  * @param value The number to clamp.
94
77
  * @returns The value clamped to [1, 4294967295] as a NonZeroUint32.
95
78
  */
96
79
  clamp,
97
80
  /**
98
81
  * Generates a random NonZeroUint32 value within the valid range.
82
+ *
99
83
  * @returns A random NonZeroUint32 between 1 and 4294967295.
100
84
  */
101
85
  random,
102
86
  /**
103
87
  * Raises a NonZeroUint32 to the power of another NonZeroUint32.
88
+ *
104
89
  * @param a The base NonZeroUint32.
105
90
  * @param b The exponent NonZeroUint32.
106
91
  * @returns `a ** b` clamped to [1, 4294967295] as a NonZeroUint32.
@@ -108,6 +93,7 @@ const NonZeroUint32 = {
108
93
  pow,
109
94
  /**
110
95
  * Adds two NonZeroUint32 values.
96
+ *
111
97
  * @param a The first NonZeroUint32.
112
98
  * @param b The second NonZeroUint32.
113
99
  * @returns `a + b` clamped to [1, 4294967295] as a NonZeroUint32.
@@ -115,6 +101,7 @@ const NonZeroUint32 = {
115
101
  add,
116
102
  /**
117
103
  * Subtracts one NonZeroUint32 from another.
104
+ *
118
105
  * @param a The minuend NonZeroUint32.
119
106
  * @param b The subtrahend NonZeroUint32.
120
107
  * @returns `a - b` clamped to [1, 4294967295] as a NonZeroUint32 (minimum 1).
@@ -122,6 +109,7 @@ const NonZeroUint32 = {
122
109
  sub,
123
110
  /**
124
111
  * Multiplies two NonZeroUint32 values.
112
+ *
125
113
  * @param a The first NonZeroUint32.
126
114
  * @param b The second NonZeroUint32.
127
115
  * @returns `a * b` clamped to [1, 4294967295] as a NonZeroUint32.
@@ -129,6 +117,7 @@ const NonZeroUint32 = {
129
117
  mul,
130
118
  /**
131
119
  * Divides one NonZeroUint32 by another using floor division.
120
+ *
132
121
  * @param a The dividend NonZeroUint32.
133
122
  * @param b The divisor NonZeroUint32.
134
123
  * @returns `⌊a / b⌋` clamped to [1, 4294967295] as a NonZeroUint32.
@@ -1 +1 @@
1
- {"version":3,"file":"non-zero-uint32.mjs","sources":["../../../src/number/branded-types/non-zero-uint32.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA,MAAM,iBAAiB,GAAG,iCAAiC;AAE3D,MAAM,EACJ,SAAS,EACT,SAAS,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,aAAa,EAAE,MAAM,EACrB,EAAE,EACF,QAAQ,EACR,KAAK,GACN,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,mBAAmB,CAI7D;AACA,IAAA,oBAAoB,EAAE,aAAa;AACnC,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,SAAS,EAAE,CAAC;AACZ,IAAA,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;IACtB,iBAAiB;AACT,CAAA,CAAC;AAEX;;;;AAIG;AACI,MAAM,eAAe,GAAG;AAE/B;;;;;;;;;;;;;AAaG;AACI,MAAM,eAAe,GAAG;AAE/B;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACI,MAAM,aAAa,GAAG;AAC3B;;;;AAIG;IACH,EAAE;AAEF;;;AAGG;IACH,SAAS;AAET;;;AAGG;IACH,SAAS;AAET;;;;;AAKG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;AAKG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;AAIG;IACH,KAAK;AAEL;;;AAGG;IACH,MAAM;AAEN;;;;;AAKG;IACH,GAAG;AAEH;;;;;AAKG;IACH,GAAG;AAEH;;;;;AAKG;IACH,GAAG;AAEH;;;;;AAKG;IACH,GAAG;AAEH;;;;;AAKG;IACH,GAAG;;;;;"}
1
+ {"version":3,"file":"non-zero-uint32.mjs","sources":["../../../src/number/branded-types/non-zero-uint32.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA,MAAM,iBAAiB,GAAG,iCAAiC;AAE3D,MAAM,EACJ,SAAS,EACT,SAAS,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,aAAa,EAAE,MAAM,EACrB,EAAE,EACF,QAAQ,EACR,KAAK,GACN,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,mBAAmB,CAI7D;AACA,IAAA,oBAAoB,EAAE,aAAa;AACnC,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,SAAS,EAAE,CAAC;AACZ,IAAA,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;IACtB,iBAAiB;AACT,CAAA,CAAC;AAEX;;;;;;AAMG;AACI,MAAM,eAAe,GAAG;AAE/B;;;;;;AAMG;AACI,MAAM,eAAe,GAAG;AAE/B;;;;;;;;AAQG;AACI,MAAM,aAAa,GAAG;AAC3B;;;;;;AAMG;IACH,EAAE;AAEF;;;;AAIG;IACH,SAAS;AAET;;;;AAIG;IACH,SAAS;AAET;;;;;;AAMG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;;AAMG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;AAKG;IACH,KAAK;AAEL;;;;AAIG;IACH,MAAM;AAEN;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;;;;;"}
@@ -2,22 +2,17 @@ import { TsDataForgeInternals } from '../refined-number-utils.mjs';
2
2
  type ElementType = PositiveFiniteNumber;
3
3
  /**
4
4
  * Checks if a number is a PositiveFiniteNumber (a finite number > 0).
5
+ *
5
6
  * @param value The value to check.
6
7
  * @returns `true` if the value is a PositiveFiniteNumber, `false` otherwise.
7
8
  */
8
9
  export declare const isPositiveFiniteNumber: (a: number) => a is PositiveFiniteNumber;
9
10
  /**
10
11
  * Casts a number to a PositiveFiniteNumber type.
12
+ *
11
13
  * @param value The value to cast.
12
14
  * @returns The value as a PositiveFiniteNumber type.
13
15
  * @throws {TypeError} If the value is not a positive finite number.
14
- * @example
15
- * ```typescript
16
- * const x = asPositiveFiniteNumber(5.5); // PositiveFiniteNumber
17
- * const y = asPositiveFiniteNumber(0.001); // PositiveFiniteNumber
18
- * // asPositiveFiniteNumber(0); // throws TypeError
19
- * // asPositiveFiniteNumber(-1); // throws TypeError
20
- * ```
21
16
  */
22
17
  export declare const asPositiveFiniteNumber: <N extends number>(x: N) => number & {
23
18
  readonly NaNValue: false;
@@ -32,53 +27,32 @@ export declare const asPositiveFiniteNumber: <N extends number>(x: N) => number
32
27
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
33
28
  }> & N;
34
29
  /**
35
- * Namespace providing type-safe arithmetic operations for positive finite numbers.
36
- *
37
- * All operations maintain the positive constraint by clamping non-positive results to MIN_VALUE,
38
- * while ensuring results remain finite (excluding NaN and Infinity). This type is useful
39
- * for representing quantities that must always be positive, such as probabilities, magnitudes,
40
- * and physical measurements.
41
- *
42
- * @example
43
- * ```typescript
44
- * const probability = asPositiveFiniteNumber(0.75);
45
- * const rate = asPositiveFiniteNumber(1.25);
46
- *
47
- * // Arithmetic operations with positive clamping
48
- * const combined = PositiveFiniteNumber.add(probability, rate); // PositiveFiniteNumber (2.0)
49
- * const difference = PositiveFiniteNumber.sub(rate, probability); // PositiveFiniteNumber (0.5)
50
- * const scaled = PositiveFiniteNumber.mul(probability, rate); // PositiveFiniteNumber (0.9375)
51
- * const ratio = PositiveFiniteNumber.div(rate, probability); // PositiveFiniteNumber (1.666...)
52
- *
53
- * // Range operations
54
- * const clamped = PositiveFiniteNumber.clamp(-10.5); // PositiveFiniteNumber (MIN_VALUE)
55
- * const minimum = PositiveFiniteNumber.min(probability, rate); // PositiveFiniteNumber (0.75)
56
- * const maximum = PositiveFiniteNumber.max(probability, rate); // PositiveFiniteNumber (1.25)
57
- *
58
- * // Rounding operations (different return types based on operation)
59
- * const ceiled = PositiveFiniteNumber.ceil(probability); // PositiveInt (1)
60
- * const floored = PositiveFiniteNumber.floor(rate); // Uint (1)
61
- * const rounded = PositiveFiniteNumber.round(rate); // Uint (1)
30
+ * Namespace providing type-safe arithmetic operations for positive finite
31
+ * numbers.
62
32
  *
63
- * // Utility operations
64
- * const random = PositiveFiniteNumber.random(); // PositiveFiniteNumber (random positive value)
65
- * const power = PositiveFiniteNumber.pow(rate, probability); // PositiveFiniteNumber (1.18...)
66
- * ```
33
+ * All operations maintain the positive constraint by clamping non-positive
34
+ * results to MIN_VALUE, while ensuring results remain finite (excluding NaN and
35
+ * Infinity). This type is useful for representing quantities that must always
36
+ * be positive, such as probabilities, magnitudes, and physical measurements.
67
37
  */
68
38
  export declare const PositiveFiniteNumber: {
69
39
  /**
70
40
  * Type guard to check if a value is a PositiveFiniteNumber.
41
+ *
71
42
  * @param value The value to check.
72
- * @returns `true` if the value is a positive finite number, `false` otherwise.
43
+ * @returns `true` if the value is a positive finite number, `false`
44
+ * otherwise.
73
45
  */
74
46
  readonly is: (a: number) => a is PositiveFiniteNumber;
75
47
  /**
76
48
  * The minimum value for a positive finite number.
49
+ *
77
50
  * @readonly
78
51
  */
79
52
  readonly MIN_VALUE: number;
80
53
  /**
81
54
  * Returns the smaller of two PositiveFiniteNumber values.
55
+ *
82
56
  * @param a The first PositiveFiniteNumber.
83
57
  * @param b The second PositiveFiniteNumber.
84
58
  * @returns The minimum value as a PositiveFiniteNumber.
@@ -86,6 +60,7 @@ export declare const PositiveFiniteNumber: {
86
60
  readonly min: (...values: readonly PositiveFiniteNumber[]) => PositiveFiniteNumber;
87
61
  /**
88
62
  * Returns the larger of two PositiveFiniteNumber values.
63
+ *
89
64
  * @param a The first PositiveFiniteNumber.
90
65
  * @param b The second PositiveFiniteNumber.
91
66
  * @returns The maximum value as a PositiveFiniteNumber.
@@ -93,35 +68,41 @@ export declare const PositiveFiniteNumber: {
93
68
  readonly max: (...values: readonly PositiveFiniteNumber[]) => PositiveFiniteNumber;
94
69
  /**
95
70
  * Clamps a number to the positive finite range.
71
+ *
96
72
  * @param value The number to clamp.
97
73
  * @returns The value clamped to (0, +∞) as a PositiveFiniteNumber.
98
74
  */
99
75
  readonly clamp: (x: number) => PositiveFiniteNumber;
100
76
  /**
101
77
  * Rounds down a PositiveFiniteNumber to the nearest integer.
78
+ *
102
79
  * @param x The PositiveFiniteNumber to round down.
103
80
  * @returns The floor value as a Uint (can be 0).
104
81
  */
105
82
  readonly floor: (x: ElementType) => TsDataForgeInternals.RefinedNumberUtils.RemoveNonZeroBrandKey<TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>>;
106
83
  /**
107
84
  * Rounds up a PositiveFiniteNumber to the nearest integer.
85
+ *
108
86
  * @param x The PositiveFiniteNumber to round up.
109
87
  * @returns The ceiling value as a PositiveInt (always >= 1).
110
88
  */
111
89
  readonly ceil: (x: ElementType) => TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;
112
90
  /**
113
91
  * Rounds a PositiveFiniteNumber to the nearest integer.
92
+ *
114
93
  * @param x The PositiveFiniteNumber to round.
115
94
  * @returns The rounded value as a Uint (can be 0 if x < 0.5).
116
95
  */
117
96
  readonly round: (x: ElementType) => TsDataForgeInternals.RefinedNumberUtils.RemoveNonZeroBrandKey<TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>>;
118
97
  /**
119
98
  * Generates a random PositiveFiniteNumber value.
99
+ *
120
100
  * @returns A random positive finite number.
121
101
  */
122
102
  readonly random: (min?: PositiveFiniteNumber | undefined, max?: PositiveFiniteNumber | undefined) => PositiveFiniteNumber;
123
103
  /**
124
104
  * Raises a PositiveFiniteNumber to the power of another PositiveFiniteNumber.
105
+ *
125
106
  * @param a The base PositiveFiniteNumber.
126
107
  * @param b The exponent PositiveFiniteNumber.
127
108
  * @returns `a ** b` clamped to (0, +∞) as a PositiveFiniteNumber.
@@ -129,6 +110,7 @@ export declare const PositiveFiniteNumber: {
129
110
  readonly pow: (x: PositiveFiniteNumber, y: PositiveFiniteNumber) => PositiveFiniteNumber;
130
111
  /**
131
112
  * Adds two PositiveFiniteNumber values.
113
+ *
132
114
  * @param a The first PositiveFiniteNumber.
133
115
  * @param b The second PositiveFiniteNumber.
134
116
  * @returns `a + b` clamped to (0, +∞) as a PositiveFiniteNumber.
@@ -136,13 +118,16 @@ export declare const PositiveFiniteNumber: {
136
118
  readonly add: (x: PositiveFiniteNumber, y: PositiveFiniteNumber) => PositiveFiniteNumber;
137
119
  /**
138
120
  * Subtracts one PositiveFiniteNumber from another.
121
+ *
139
122
  * @param a The minuend PositiveFiniteNumber.
140
123
  * @param b The subtrahend PositiveFiniteNumber.
141
- * @returns `a - b` clamped to (0, +∞) as a PositiveFiniteNumber (minimum MIN_VALUE).
124
+ * @returns `a - b` clamped to (0, +∞) as a PositiveFiniteNumber (minimum
125
+ * MIN_VALUE).
142
126
  */
143
127
  readonly sub: (x: PositiveFiniteNumber, y: PositiveFiniteNumber) => PositiveFiniteNumber;
144
128
  /**
145
129
  * Multiplies two PositiveFiniteNumber values.
130
+ *
146
131
  * @param a The first PositiveFiniteNumber.
147
132
  * @param b The second PositiveFiniteNumber.
148
133
  * @returns `a * b` clamped to (0, +∞) as a PositiveFiniteNumber.
@@ -150,6 +135,7 @@ export declare const PositiveFiniteNumber: {
150
135
  readonly mul: (x: PositiveFiniteNumber, y: PositiveFiniteNumber) => PositiveFiniteNumber;
151
136
  /**
152
137
  * Divides one PositiveFiniteNumber by another.
138
+ *
153
139
  * @param a The dividend PositiveFiniteNumber.
154
140
  * @param b The divisor PositiveFiniteNumber.
155
141
  * @returns `a / b` clamped to (0, +∞) as a PositiveFiniteNumber.
@@ -1 +1 @@
1
- {"version":3,"file":"positive-finite-number.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-finite-number.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,KAAK,WAAW,GAAG,oBAAoB,CAAC;AAqExC;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,0CAAK,CAAC;AAEzC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;MAAW,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,oBAAoB;IAC/B;;;;OAIG;;IAGH;;;OAGG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;wBA1IA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,qBAAqB,CAC9D,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3D;IA0IC;;;;OAIG;uBArIA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC;IAuI3D;;;;OAIG;wBAtIA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,qBAAqB,CAC9D,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3D;IAsIC;;;OAGG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;;;;;;;;;;;;CAEK,CAAC"}
1
+ {"version":3,"file":"positive-finite-number.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-finite-number.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,KAAK,WAAW,GAAG,oBAAoB,CAAC;AAqExC;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,0CAAK,CAAC;AAEzC;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;MAAW,CAAC;AAE/C;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB;IAC/B;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;wBAnHA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,qBAAqB,CAC9D,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3D;IAmHC;;;;;OAKG;uBA/GA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC;IAiH3D;;;;;OAKG;wBAjHA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,qBAAqB,CAC9D,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3D;IAiHC;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;CAEK,CAAC"}
@@ -7,82 +7,56 @@ const { MIN_VALUE, min: min_, max: max_, pow, add, sub, mul, div, random, is, ca
7
7
  typeNameInMessage,
8
8
  });
9
9
  const floor = (x) =>
10
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
10
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
11
11
  Math.floor(x);
12
12
  const ceil = (x) =>
13
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
13
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
14
14
  Math.ceil(x);
15
15
  const round = (x) =>
16
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
16
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
17
17
  Math.round(x);
18
18
  /**
19
19
  * Checks if a number is a PositiveFiniteNumber (a finite number > 0).
20
+ *
20
21
  * @param value The value to check.
21
22
  * @returns `true` if the value is a PositiveFiniteNumber, `false` otherwise.
22
23
  */
23
24
  const isPositiveFiniteNumber = is;
24
25
  /**
25
26
  * Casts a number to a PositiveFiniteNumber type.
27
+ *
26
28
  * @param value The value to cast.
27
29
  * @returns The value as a PositiveFiniteNumber type.
28
30
  * @throws {TypeError} If the value is not a positive finite number.
29
- * @example
30
- * ```typescript
31
- * const x = asPositiveFiniteNumber(5.5); // PositiveFiniteNumber
32
- * const y = asPositiveFiniteNumber(0.001); // PositiveFiniteNumber
33
- * // asPositiveFiniteNumber(0); // throws TypeError
34
- * // asPositiveFiniteNumber(-1); // throws TypeError
35
- * ```
36
31
  */
37
32
  const asPositiveFiniteNumber = castType;
38
33
  /**
39
- * Namespace providing type-safe arithmetic operations for positive finite numbers.
40
- *
41
- * All operations maintain the positive constraint by clamping non-positive results to MIN_VALUE,
42
- * while ensuring results remain finite (excluding NaN and Infinity). This type is useful
43
- * for representing quantities that must always be positive, such as probabilities, magnitudes,
44
- * and physical measurements.
45
- *
46
- * @example
47
- * ```typescript
48
- * const probability = asPositiveFiniteNumber(0.75);
49
- * const rate = asPositiveFiniteNumber(1.25);
50
- *
51
- * // Arithmetic operations with positive clamping
52
- * const combined = PositiveFiniteNumber.add(probability, rate); // PositiveFiniteNumber (2.0)
53
- * const difference = PositiveFiniteNumber.sub(rate, probability); // PositiveFiniteNumber (0.5)
54
- * const scaled = PositiveFiniteNumber.mul(probability, rate); // PositiveFiniteNumber (0.9375)
55
- * const ratio = PositiveFiniteNumber.div(rate, probability); // PositiveFiniteNumber (1.666...)
56
- *
57
- * // Range operations
58
- * const clamped = PositiveFiniteNumber.clamp(-10.5); // PositiveFiniteNumber (MIN_VALUE)
59
- * const minimum = PositiveFiniteNumber.min(probability, rate); // PositiveFiniteNumber (0.75)
60
- * const maximum = PositiveFiniteNumber.max(probability, rate); // PositiveFiniteNumber (1.25)
61
- *
62
- * // Rounding operations (different return types based on operation)
63
- * const ceiled = PositiveFiniteNumber.ceil(probability); // PositiveInt (1)
64
- * const floored = PositiveFiniteNumber.floor(rate); // Uint (1)
65
- * const rounded = PositiveFiniteNumber.round(rate); // Uint (1)
34
+ * Namespace providing type-safe arithmetic operations for positive finite
35
+ * numbers.
66
36
  *
67
- * // Utility operations
68
- * const random = PositiveFiniteNumber.random(); // PositiveFiniteNumber (random positive value)
69
- * const power = PositiveFiniteNumber.pow(rate, probability); // PositiveFiniteNumber (1.18...)
70
- * ```
37
+ * All operations maintain the positive constraint by clamping non-positive
38
+ * results to MIN_VALUE, while ensuring results remain finite (excluding NaN and
39
+ * Infinity). This type is useful for representing quantities that must always
40
+ * be positive, such as probabilities, magnitudes, and physical measurements.
71
41
  */
72
42
  const PositiveFiniteNumber = {
73
43
  /**
74
44
  * Type guard to check if a value is a PositiveFiniteNumber.
45
+ *
75
46
  * @param value The value to check.
76
- * @returns `true` if the value is a positive finite number, `false` otherwise.
47
+ * @returns `true` if the value is a positive finite number, `false`
48
+ * otherwise.
77
49
  */
78
50
  is,
79
51
  /**
80
52
  * The minimum value for a positive finite number.
53
+ *
81
54
  * @readonly
82
55
  */
83
56
  MIN_VALUE,
84
57
  /**
85
58
  * Returns the smaller of two PositiveFiniteNumber values.
59
+ *
86
60
  * @param a The first PositiveFiniteNumber.
87
61
  * @param b The second PositiveFiniteNumber.
88
62
  * @returns The minimum value as a PositiveFiniteNumber.
@@ -90,6 +64,7 @@ const PositiveFiniteNumber = {
90
64
  min: min_,
91
65
  /**
92
66
  * Returns the larger of two PositiveFiniteNumber values.
67
+ *
93
68
  * @param a The first PositiveFiniteNumber.
94
69
  * @param b The second PositiveFiniteNumber.
95
70
  * @returns The maximum value as a PositiveFiniteNumber.
@@ -97,35 +72,41 @@ const PositiveFiniteNumber = {
97
72
  max: max_,
98
73
  /**
99
74
  * Clamps a number to the positive finite range.
75
+ *
100
76
  * @param value The number to clamp.
101
77
  * @returns The value clamped to (0, +∞) as a PositiveFiniteNumber.
102
78
  */
103
79
  clamp,
104
80
  /**
105
81
  * Rounds down a PositiveFiniteNumber to the nearest integer.
82
+ *
106
83
  * @param x The PositiveFiniteNumber to round down.
107
84
  * @returns The floor value as a Uint (can be 0).
108
85
  */
109
86
  floor,
110
87
  /**
111
88
  * Rounds up a PositiveFiniteNumber to the nearest integer.
89
+ *
112
90
  * @param x The PositiveFiniteNumber to round up.
113
91
  * @returns The ceiling value as a PositiveInt (always >= 1).
114
92
  */
115
93
  ceil,
116
94
  /**
117
95
  * Rounds a PositiveFiniteNumber to the nearest integer.
96
+ *
118
97
  * @param x The PositiveFiniteNumber to round.
119
98
  * @returns The rounded value as a Uint (can be 0 if x < 0.5).
120
99
  */
121
100
  round,
122
101
  /**
123
102
  * Generates a random PositiveFiniteNumber value.
103
+ *
124
104
  * @returns A random positive finite number.
125
105
  */
126
106
  random,
127
107
  /**
128
108
  * Raises a PositiveFiniteNumber to the power of another PositiveFiniteNumber.
109
+ *
129
110
  * @param a The base PositiveFiniteNumber.
130
111
  * @param b The exponent PositiveFiniteNumber.
131
112
  * @returns `a ** b` clamped to (0, +∞) as a PositiveFiniteNumber.
@@ -133,6 +114,7 @@ const PositiveFiniteNumber = {
133
114
  pow,
134
115
  /**
135
116
  * Adds two PositiveFiniteNumber values.
117
+ *
136
118
  * @param a The first PositiveFiniteNumber.
137
119
  * @param b The second PositiveFiniteNumber.
138
120
  * @returns `a + b` clamped to (0, +∞) as a PositiveFiniteNumber.
@@ -140,13 +122,16 @@ const PositiveFiniteNumber = {
140
122
  add,
141
123
  /**
142
124
  * Subtracts one PositiveFiniteNumber from another.
125
+ *
143
126
  * @param a The minuend PositiveFiniteNumber.
144
127
  * @param b The subtrahend PositiveFiniteNumber.
145
- * @returns `a - b` clamped to (0, +∞) as a PositiveFiniteNumber (minimum MIN_VALUE).
128
+ * @returns `a - b` clamped to (0, +∞) as a PositiveFiniteNumber (minimum
129
+ * MIN_VALUE).
146
130
  */
147
131
  sub,
148
132
  /**
149
133
  * Multiplies two PositiveFiniteNumber values.
134
+ *
150
135
  * @param a The first PositiveFiniteNumber.
151
136
  * @param b The second PositiveFiniteNumber.
152
137
  * @returns `a * b` clamped to (0, +∞) as a PositiveFiniteNumber.
@@ -154,6 +139,7 @@ const PositiveFiniteNumber = {
154
139
  mul,
155
140
  /**
156
141
  * Divides one PositiveFiniteNumber by another.
142
+ *
157
143
  * @param a The dividend PositiveFiniteNumber.
158
144
  * @param b The divisor PositiveFiniteNumber.
159
145
  * @returns `a / b` clamped to (0, +∞) as a PositiveFiniteNumber.
@@ -1 +1 @@
1
- {"version":3,"file":"positive-finite-number.mjs","sources":["../../../src/number/branded-types/positive-finite-number.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA,MAAM,iBAAiB,GAAG,0BAA0B;AAEpD,MAAM,EACJ,SAAS,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,MAAM,EACN,EAAE,EACF,QAAQ,EACR,KAAK,GACN,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,iBAAiB,CAI3D;IACA,SAAS,EAAE,MAAM,CAAC,SAAS;IAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;IAC3B,iBAAiB;AACT,CAAA,CAAC;AAEX,MAAM,KAAK,GAAG,CACZ,CAAc;AAId;AACA,IAAI,CAAC,KAAK,CACR,CAAC,CAGF;AAEH,MAAM,IAAI,GAAG,CACX,CAAc;AAEd;AACA,IAAI,CAAC,IAAI,CAAC,CAAC,CAA+D;AAE5E,MAAM,KAAK,GAAG,CACZ,CAAc;AAId;AACA,IAAI,CAAC,KAAK,CACR,CAAC,CAGF;AAcH;;;;AAIG;AACI,MAAM,sBAAsB,GAAG;AAEtC;;;;;;;;;;;;AAYG;AACI,MAAM,sBAAsB,GAAG;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCG;AACI,MAAM,oBAAoB,GAAG;AAClC;;;;AAIG;IACH,EAAE;AAEF;;;AAGG;IACH,SAAS;AAET;;;;;AAKG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;AAKG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;AAIG;IACH,KAAK;AAEL;;;;AAIG;IACH,KAAK;AAEL;;;;AAIG;IACH,IAAI;AAEJ;;;;AAIG;IACH,KAAK;AAEL;;;AAGG;IACH,MAAM;AAEN;;;;;AAKG;IACH,GAAG;AAEH;;;;;AAKG;IACH,GAAG;AAEH;;;;;AAKG;IACH,GAAG;AAEH;;;;;AAKG;IACH,GAAG;AAEH;;;;;AAKG;IACH,GAAG;;;;;"}
1
+ {"version":3,"file":"positive-finite-number.mjs","sources":["../../../src/number/branded-types/positive-finite-number.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA,MAAM,iBAAiB,GAAG,0BAA0B;AAEpD,MAAM,EACJ,SAAS,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,MAAM,EACN,EAAE,EACF,QAAQ,EACR,KAAK,GACN,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,iBAAiB,CAI3D;IACA,SAAS,EAAE,MAAM,CAAC,SAAS;IAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;IAC3B,iBAAiB;AACT,CAAA,CAAC;AAEX,MAAM,KAAK,GAAG,CACZ,CAAc;AAId;AACA,IAAI,CAAC,KAAK,CACR,CAAC,CAGF;AAEH,MAAM,IAAI,GAAG,CACX,CAAc;AAEd;AACA,IAAI,CAAC,IAAI,CAAC,CAAC,CAA+D;AAE5E,MAAM,KAAK,GAAG,CACZ,CAAc;AAId;AACA,IAAI,CAAC,KAAK,CACR,CAAC,CAGF;AAcH;;;;;AAKG;AACI,MAAM,sBAAsB,GAAG;AAEtC;;;;;;AAMG;AACI,MAAM,sBAAsB,GAAG;AAEtC;;;;;;;;AAQG;AACI,MAAM,oBAAoB,GAAG;AAClC;;;;;;AAMG;IACH,EAAE;AAEF;;;;AAIG;IACH,SAAS;AAET;;;;;;AAMG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;;AAMG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;AAKG;IACH,KAAK;AAEL;;;;;AAKG;IACH,KAAK;AAEL;;;;;AAKG;IACH,IAAI;AAEJ;;;;;AAKG;IACH,KAAK;AAEL;;;;AAIG;IACH,MAAM;AAEN;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;;AAOG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;;;;;"}