ts-data-forge 3.2.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 (426) hide show
  1. package/README.md +45 -21
  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 +3 -0
  83. package/dist/entry-point.d.mts.map +1 -0
  84. package/dist/entry-point.mjs +62 -0
  85. package/dist/entry-point.mjs.map +1 -0
  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 +14 -127
  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/dist/types.d.mts +1 -1
  300. package/package.json +54 -50
  301. package/src/array/impl/array-utils-creation.mts +192 -0
  302. package/src/array/{array-utils-creation.test.mts → impl/array-utils-creation.test.mts} +121 -72
  303. package/src/array/impl/array-utils-element-access.mts +115 -0
  304. package/src/array/impl/array-utils-element-access.test.mts +151 -0
  305. package/src/array/impl/array-utils-iterators.mts +79 -0
  306. package/src/array/impl/array-utils-iterators.test.mts +98 -0
  307. package/src/array/impl/array-utils-modification.mts +434 -0
  308. package/src/array/{array-utils-modification.test.mts → impl/array-utils-modification.test.mts} +41 -28
  309. package/src/array/{array-utils-overload-type-error.test.mts → impl/array-utils-overload-type-error.test.mts} +33 -33
  310. package/src/array/impl/array-utils-reducing-value.mts +551 -0
  311. package/src/array/{array-utils-reducing-value.test.mts → impl/array-utils-reducing-value.test.mts} +45 -50
  312. package/src/array/impl/array-utils-search.mts +509 -0
  313. package/src/array/impl/array-utils-search.test.mts +346 -0
  314. package/src/array/impl/array-utils-set-op.mts +166 -0
  315. package/src/array/{array-utils-set-op.test.mts → impl/array-utils-set-op.test.mts} +42 -35
  316. package/src/array/impl/array-utils-size.mts +30 -0
  317. package/src/array/impl/array-utils-size.test.mts +9 -0
  318. package/src/array/impl/array-utils-slice-clamped.mts +51 -0
  319. package/src/array/{array-utils-slice-clamped.test.mts → impl/array-utils-slice-clamped.test.mts} +12 -12
  320. package/src/array/impl/array-utils-slicing.mts +275 -0
  321. package/src/array/impl/array-utils-slicing.test.mts +158 -0
  322. package/src/array/impl/array-utils-transformation.mts +746 -0
  323. package/src/array/{array-utils-transformation.test.mts → impl/array-utils-transformation.test.mts} +662 -889
  324. package/src/array/impl/array-utils-validation.mts +241 -0
  325. package/src/array/{array-utils-validation.test.mts → impl/array-utils-validation.test.mts} +194 -107
  326. package/src/array/{array.test.mts → impl/array.test.mts} +2 -2
  327. package/src/array/impl/index.mts +12 -0
  328. package/src/array/index.mts +1 -1
  329. package/src/collections/imap-mapped.mts +99 -265
  330. package/src/collections/imap.mts +477 -174
  331. package/src/collections/imap.test.mts +12 -19
  332. package/src/collections/iset-mapped.mts +892 -358
  333. package/src/collections/iset.mts +429 -213
  334. package/src/collections/queue.mts +174 -200
  335. package/src/collections/stack.mts +172 -245
  336. package/src/collections/stack.test.mts +9 -1
  337. package/src/entry-point.mts +2 -0
  338. package/src/expect-type.mts +43 -172
  339. package/src/functional/match.mts +35 -145
  340. package/src/functional/optional.mts +285 -163
  341. package/src/functional/optional.test.mts +4 -1
  342. package/src/functional/pipe.mts +60 -113
  343. package/src/functional/result.mts +452 -351
  344. package/src/functional/result.test.mts +9 -2
  345. package/src/globals.d.mts +12 -5
  346. package/src/guard/has-key.mts +23 -74
  347. package/src/guard/is-non-empty-string.mts +20 -87
  348. package/src/guard/is-non-null-object.mts +14 -84
  349. package/src/guard/is-non-null-object.test.mts +1 -1
  350. package/src/guard/is-primitive.mts +13 -126
  351. package/src/guard/is-primitive.test.mts +1 -1
  352. package/src/guard/is-record.mts +21 -132
  353. package/src/guard/is-record.test.mts +0 -1
  354. package/src/guard/is-type.mts +201 -238
  355. package/src/guard/is-type.test.mts +7 -7
  356. package/src/guard/key-is-in.mts +22 -139
  357. package/src/index.mts +0 -1
  358. package/src/iterator/range.mts +29 -62
  359. package/src/json/json.mts +202 -134
  360. package/src/json/json.test.mts +1 -3
  361. package/src/number/branded-types/finite-number.mts +27 -159
  362. package/src/number/branded-types/int.mts +122 -120
  363. package/src/number/branded-types/int16.mts +22 -30
  364. package/src/number/branded-types/int16.test.mts +24 -24
  365. package/src/number/branded-types/int32.mts +22 -31
  366. package/src/number/branded-types/int32.test.mts +39 -39
  367. package/src/number/branded-types/non-negative-finite-number.mts +31 -39
  368. package/src/number/branded-types/non-negative-int16.mts +24 -34
  369. package/src/number/branded-types/non-negative-int16.test.mts +16 -16
  370. package/src/number/branded-types/non-negative-int32.mts +26 -35
  371. package/src/number/branded-types/non-negative-int32.test.mts +30 -30
  372. package/src/number/branded-types/non-zero-finite-number.mts +25 -40
  373. package/src/number/branded-types/non-zero-int.mts +15 -30
  374. package/src/number/branded-types/non-zero-int16.mts +27 -35
  375. package/src/number/branded-types/non-zero-int16.test.mts +26 -26
  376. package/src/number/branded-types/non-zero-int32.mts +29 -36
  377. package/src/number/branded-types/non-zero-int32.test.mts +45 -42
  378. package/src/number/branded-types/non-zero-safe-int.mts +39 -40
  379. package/src/number/branded-types/non-zero-uint16.mts +24 -35
  380. package/src/number/branded-types/non-zero-uint16.test.mts +16 -16
  381. package/src/number/branded-types/non-zero-uint32.mts +24 -35
  382. package/src/number/branded-types/non-zero-uint32.test.mts +28 -28
  383. package/src/number/branded-types/positive-finite-number.mts +29 -43
  384. package/src/number/branded-types/positive-int.mts +134 -124
  385. package/src/number/branded-types/positive-int16.mts +24 -35
  386. package/src/number/branded-types/positive-int16.test.mts +14 -14
  387. package/src/number/branded-types/positive-int32.mts +24 -35
  388. package/src/number/branded-types/positive-int32.test.mts +26 -26
  389. package/src/number/branded-types/positive-safe-int.mts +160 -34
  390. package/src/number/branded-types/positive-uint16.mts +24 -35
  391. package/src/number/branded-types/positive-uint16.test.mts +16 -16
  392. package/src/number/branded-types/positive-uint32.mts +26 -36
  393. package/src/number/branded-types/positive-uint32.test.mts +31 -28
  394. package/src/number/branded-types/safe-int.mts +142 -101
  395. package/src/number/branded-types/safe-uint.mts +25 -34
  396. package/src/number/branded-types/uint.mts +121 -30
  397. package/src/number/branded-types/uint16.mts +26 -34
  398. package/src/number/branded-types/uint16.test.mts +16 -16
  399. package/src/number/branded-types/uint32.mts +26 -68
  400. package/src/number/branded-types/uint32.test.mts +28 -28
  401. package/src/number/enum/int8.mts +39 -170
  402. package/src/number/enum/uint8.mts +46 -155
  403. package/src/number/num.mts +157 -212
  404. package/src/number/num.test.mts +4 -4
  405. package/src/number/refined-number-utils.mts +109 -26
  406. package/src/object/object.mts +130 -212
  407. package/src/object/object.test.mts +29 -0
  408. package/src/others/cast-mutable.mts +13 -89
  409. package/src/others/cast-mutable.test.mts +80 -0
  410. package/src/others/cast-readonly.mts +13 -169
  411. package/src/others/if-then.mts +6 -83
  412. package/src/others/map-nullable.mts +12 -136
  413. package/src/others/map-nullable.test.mts +6 -6
  414. package/src/others/memoize-function.mts +14 -157
  415. package/src/others/tuple.mts +33 -151
  416. package/src/others/unknown-to-string.mts +15 -127
  417. package/src/others/unknown-to-string.test.mts +14 -2
  418. package/src/promise/promise.mts +34 -21
  419. package/src/promise/promise.test.mts +43 -0
  420. package/dist/array/array-utils.d.mts +0 -2956
  421. package/dist/array/array-utils.d.mts.map +0 -1
  422. package/dist/array/array-utils.mjs +0 -1838
  423. package/dist/array/array-utils.mjs.map +0 -1
  424. package/src/array/array-utils-search.test.mts +0 -169
  425. package/src/array/array-utils-slicing.test.mts +0 -274
  426. package/src/array/array-utils.mts +0 -4834
@@ -1,46 +1,40 @@
1
1
  /**
2
2
  * Type guard that checks if a value is a positive integer.
3
3
  *
4
- * A positive integer is any integer greater than zero (>= 1).
5
- * This excludes zero, negative numbers, and non-integers.
6
- *
7
- * @param value - The value to check
8
- * @returns `true` if the value is a positive integer, `false` otherwise
4
+ * A positive integer is any integer greater than zero (>= 1). This excludes
5
+ * zero, negative numbers, and non-integers.
9
6
  *
10
7
  * @example
11
- * ```typescript
12
- * isPositiveInt(5); // true
13
- * isPositiveInt(1); // true
14
- * isPositiveInt(0); // false (zero is not positive)
15
- * isPositiveInt(-1); // false (negative)
16
- * isPositiveInt(5.5); // false (not an integer)
17
- * isPositiveInt(NaN); // false
8
+ *
9
+ * ```ts
10
+ * assert.ok(isPositiveInt(5));
11
+ * assert.notOk(isPositiveInt(0));
12
+ * assert.ok(PositiveInt.is(10));
18
13
  * ```
14
+ *
15
+ * @param value - The value to check
16
+ * @returns `true` if the value is a positive integer, `false` otherwise
19
17
  */
20
18
  export declare const isPositiveInt: (a: number) => a is PositiveInt;
21
19
  /**
22
20
  * Casts a number to a PositiveInt branded type.
23
21
  *
24
- * This function validates that the input is a positive integer (>= 1)
25
- * and returns it with the PositiveInt brand. This ensures type safety
26
- * for operations that require strictly positive integer values.
27
- *
28
- * @param value - The value to cast
29
- * @returns The value as a PositiveInt branded type
30
- * @throws {TypeError} If the value is not a positive integer
22
+ * This function validates that the input is a positive integer (>= 1) and
23
+ * returns it with the PositiveInt brand. This ensures type safety for
24
+ * operations that require strictly positive integer values.
31
25
  *
32
26
  * @example
33
- * ```typescript
34
- * const count = asPositiveInt(5); // PositiveInt
35
- * const length = asPositiveInt(100); // PositiveInt
36
- * const one = asPositiveInt(1); // PositiveInt (minimum valid)
37
27
  *
38
- * // These throw TypeError:
39
- * // asPositiveInt(0); // Zero is not positive
40
- * // asPositiveInt(-1); // Negative numbers not allowed
41
- * // asPositiveInt(5.5); // Not an integer
42
- * // asPositiveInt(Infinity); // Not finite
28
+ * ```ts
29
+ * const branded = asPositiveInt(7);
30
+ *
31
+ * assert(branded === 7);
32
+ * assert.ok(PositiveInt.is(branded));
43
33
  * ```
34
+ *
35
+ * @param value - The value to cast
36
+ * @returns The value as a PositiveInt branded type
37
+ * @throws {TypeError} If the value is not a positive integer
44
38
  */
45
39
  export declare const asPositiveInt: <N extends number>(x: N) => number & {
46
40
  readonly NaNValue: false;
@@ -59,58 +53,38 @@ export declare const asPositiveInt: <N extends number>(x: N) => number & {
59
53
  * Namespace providing type-safe operations for PositiveInt branded types.
60
54
  *
61
55
  * PositiveInt represents integers that are strictly greater than zero (>= 1).
62
- * All operations automatically clamp results to maintain the positive constraint,
63
- * ensuring that arithmetic operations never produce zero or negative values.
56
+ * All operations automatically clamp results to maintain the positive
57
+ * constraint, ensuring that arithmetic operations never produce zero or
58
+ * negative values.
64
59
  *
65
60
  * This type is essential for:
61
+ *
66
62
  * - Array lengths and sizes (length >= 1)
67
63
  * - Counts and quantities that must be positive
68
64
  * - Denominators in division operations
69
65
  * - Loop counters and iteration counts
70
66
  * - Database primary keys and IDs
71
- *
72
- * @example
73
- * ```typescript
74
- * // Type validation
75
- * PositiveInt.is(5); // true
76
- * PositiveInt.is(1); // true (minimum value)
77
- * PositiveInt.is(0); // false
78
- * PositiveInt.is(-1); // false
79
- *
80
- * // Automatic clamping in operations
81
- * const a = asPositiveInt(10);
82
- * const b = asPositiveInt(3);
83
- *
84
- * const sum = PositiveInt.add(a, b); // PositiveInt (13)
85
- * const diff1 = PositiveInt.sub(a, b); // PositiveInt (7)
86
- * const diff2 = PositiveInt.sub(b, a); // PositiveInt (1) - clamped!
87
- * const product = PositiveInt.mul(a, b); // PositiveInt (30)
88
- * const quotient = PositiveInt.div(a, b); // PositiveInt (3)
89
- *
90
- * // Edge case: division that would be < 1
91
- * const small = PositiveInt.div(asPositiveInt(2), asPositiveInt(3)); // PositiveInt (1)
92
- *
93
- * // Range operations
94
- * const minimum = PositiveInt.min(a, b); // PositiveInt (3)
95
- * const maximum = PositiveInt.max(a, b); // PositiveInt (10)
96
- *
97
- * // Random generation
98
- * const dice = PositiveInt.random(asPositiveInt(1), asPositiveInt(6)); // 1-6
99
- * const id = PositiveInt.random(asPositiveInt(1000), asPositiveInt(9999)); // 4-digit ID
100
- * ```
101
67
  */
102
68
  export declare const PositiveInt: {
103
69
  /**
104
70
  * Type guard that checks if a value is a positive integer.
105
71
  *
72
+ * @example
73
+ *
74
+ * ```ts
75
+ * assert.ok(isPositiveInt(5));
76
+ * assert.notOk(isPositiveInt(0));
77
+ * assert.ok(PositiveInt.is(10));
78
+ * ```
79
+ *
106
80
  * @param value - The value to check
107
81
  * @returns `true` if the value is a positive integer, `false` otherwise
108
- *
109
82
  * @see {@link isPositiveInt} for usage examples
110
83
  */
111
84
  readonly is: (a: number) => a is PositiveInt;
112
85
  /**
113
86
  * The minimum value for a PositiveInt.
87
+ *
114
88
  * @readonly
115
89
  */
116
90
  readonly MIN_VALUE: 1;
@@ -120,45 +94,59 @@ export declare const PositiveInt: {
120
94
  * Since all inputs are guaranteed to be >= 1, the result is also guaranteed
121
95
  * to be a positive integer.
122
96
  *
123
- * @param values - The positive integers to compare (at least one required)
124
- * @returns The smallest value as a PositiveInt
125
- *
126
97
  * @example
127
- * ```typescript
128
- * PositiveInt.min(asPositiveInt(5), asPositiveInt(3)); // PositiveInt (3)
129
- * PositiveInt.min(asPositiveInt(10), asPositiveInt(1), asPositiveInt(7)); // PositiveInt (1)
98
+ *
99
+ * ```ts
100
+ * const smallest = PositiveInt.min(
101
+ * asPositiveInt(9),
102
+ * asPositiveInt(3),
103
+ * asPositiveInt(12),
104
+ * );
105
+ *
106
+ * assert(smallest === 3);
130
107
  * ```
108
+ *
109
+ * @param values - The positive integers to compare (at least one required)
110
+ * @returns The smallest value as a PositiveInt
131
111
  */
132
112
  readonly min: (...values: readonly WithSmallInt<PositiveInt, 40>[]) => PositiveInt;
133
113
  /**
134
114
  * Returns the maximum value from a list of positive integers.
135
115
  *
136
- * @param values - The positive integers to compare (at least one required)
137
- * @returns The largest value as a PositiveInt
138
- *
139
116
  * @example
140
- * ```typescript
141
- * PositiveInt.max(asPositiveInt(5), asPositiveInt(3)); // PositiveInt (5)
142
- * PositiveInt.max(asPositiveInt(10), asPositiveInt(1), asPositiveInt(7)); // PositiveInt (10)
117
+ *
118
+ * ```ts
119
+ * const largest = PositiveInt.max(
120
+ * asPositiveInt(9),
121
+ * asPositiveInt(3),
122
+ * asPositiveInt(12),
123
+ * );
124
+ *
125
+ * assert(largest === 12);
143
126
  * ```
127
+ *
128
+ * @param values - The positive integers to compare (at least one required)
129
+ * @returns The largest value as a PositiveInt
144
130
  */
145
131
  readonly max: (...values: readonly WithSmallInt<PositiveInt, 40>[]) => PositiveInt;
146
132
  /**
147
133
  * Clamps a number to the positive integer range.
148
134
  *
149
- * Since PositiveInt has a minimum value of 1, this function ensures
150
- * that any input less than 1 is clamped to 1.
151
- *
152
- * @param value - The number to clamp
153
- * @returns The value clamped to >= 1 as a PositiveInt
135
+ * Since PositiveInt has a minimum value of 1, this function ensures that any
136
+ * input less than 1 is clamped to 1.
154
137
  *
155
138
  * @example
156
- * ```typescript
157
- * PositiveInt.clamp(5); // PositiveInt (5)
158
- * PositiveInt.clamp(0); // PositiveInt (1) - clamped to minimum
159
- * PositiveInt.clamp(-10); // PositiveInt (1) - clamped to minimum
160
- * PositiveInt.clamp(100); // PositiveInt (100)
139
+ *
140
+ * ```ts
141
+ * const belowRange = PositiveInt.clamp(0);
142
+ * const withinRange = PositiveInt.clamp(10);
143
+ *
144
+ * assert(belowRange === 1);
145
+ * assert(withinRange === 10);
161
146
  * ```
147
+ *
148
+ * @param value - The number to clamp
149
+ * @returns The value clamped to >= 1 as a PositiveInt
162
150
  */
163
151
  readonly clamp: (x: number) => PositiveInt;
164
152
  /**
@@ -167,43 +155,55 @@ export declare const PositiveInt: {
167
155
  * Both bounds are inclusive, and both min and max must be positive integers.
168
156
  * If min > max, they are automatically swapped.
169
157
  *
158
+ * @example
159
+ *
160
+ * ```ts
161
+ * const min = asPositiveInt(3);
162
+ * const max = asPositiveInt(6);
163
+ * const randomValue = PositiveInt.random(min, max);
164
+ *
165
+ * assert.ok(PositiveInt.is(randomValue));
166
+ * assert.ok(randomValue >= 3 && randomValue <= 6);
167
+ * ```
168
+ *
170
169
  * @param min - The minimum value (inclusive, must be >= 1)
171
170
  * @param max - The maximum value (inclusive, must be >= min)
172
171
  * @returns A random PositiveInt in the range [min, max]
172
+ */
173
+ readonly random: (min?: WithSmallInt<PositiveInt, 40> | undefined, max?: WithSmallInt<PositiveInt, 40> | undefined) => PositiveInt;
174
+ /**
175
+ * Raises a positive integer to a power, ensuring the result is never less
176
+ * than 1.
173
177
  *
174
178
  * @example
175
- * ```typescript
176
- * // Dice roll
177
- * const d6 = PositiveInt.random(asPositiveInt(1), asPositiveInt(6));
178
179
  *
179
- * // Random user ID
180
- * const userId = PositiveInt.random(asPositiveInt(1000), asPositiveInt(9999));
180
+ * ```ts
181
+ * const base = asPositiveInt(2);
182
+ * const exponent = asPositiveInt(4);
183
+ * const power = PositiveInt.pow(base, exponent);
181
184
  *
182
- * // Random page count
183
- * const pages = PositiveInt.random(asPositiveInt(50), asPositiveInt(500));
185
+ * assert(power === 16);
184
186
  * ```
185
- */
186
- readonly random: (min?: WithSmallInt<PositiveInt, 40> | undefined, max?: WithSmallInt<PositiveInt, 40> | undefined) => PositiveInt;
187
- /**
188
- * Raises a positive integer to a power, ensuring the result is never less than 1.
187
+ *
189
188
  * @param a - The base positive integer
190
189
  * @param b - The exponent positive integer
191
190
  * @returns `a ** b` as a PositiveInt, but never less than 1
192
- * @example
193
- * ```typescript
194
- * PositiveInt.pow(asPositiveInt(2), asPositiveInt(3)); // PositiveInt (8)
195
- * ```
196
191
  */
197
192
  readonly pow: (x: WithSmallInt<PositiveInt, 40>, y: WithSmallInt<PositiveInt, 40>) => PositiveInt;
198
193
  /**
199
194
  * Adds two positive integers, ensuring the result is never less than 1.
195
+ *
196
+ * @example
197
+ *
198
+ * ```ts
199
+ * const sum = PositiveInt.add(asPositiveInt(4), asPositiveInt(5));
200
+ *
201
+ * assert(sum === 9);
202
+ * ```
203
+ *
200
204
  * @param a - First positive integer
201
205
  * @param b - Second positive integer
202
206
  * @returns `a + b` as a PositiveInt, but never less than 1
203
- * @example
204
- * ```typescript
205
- * PositiveInt.add(asPositiveInt(5), asPositiveInt(3)); // PositiveInt (8)
206
- * ```
207
207
  */
208
208
  readonly add: (x: WithSmallInt<PositiveInt, 40>, y: WithSmallInt<PositiveInt, 40>) => PositiveInt;
209
209
  /**
@@ -212,46 +212,56 @@ export declare const PositiveInt: {
212
212
  * If the mathematical result would be <= 0, it is clamped to 1 to maintain
213
213
  * the positive integer constraint.
214
214
  *
215
+ * @example
216
+ *
217
+ * ```ts
218
+ * const difference = PositiveInt.sub(asPositiveInt(5), asPositiveInt(7));
219
+ *
220
+ * assert(difference === 1);
221
+ * ```
222
+ *
215
223
  * @param a - The minuend (positive integer)
216
224
  * @param b - The subtrahend (positive integer)
217
225
  * @returns `max(1, a - b)` as a PositiveInt
218
- *
219
- * @example
220
- * ```typescript
221
- * PositiveInt.sub(asPositiveInt(8), asPositiveInt(3)); // PositiveInt (5)
222
- * PositiveInt.sub(asPositiveInt(3), asPositiveInt(8)); // PositiveInt (1) - clamped
223
- * PositiveInt.sub(asPositiveInt(5), asPositiveInt(5)); // PositiveInt (1) - clamped
224
- * ```
225
226
  */
226
227
  readonly sub: (x: WithSmallInt<PositiveInt, 40>, y: WithSmallInt<PositiveInt, 40>) => PositiveInt;
227
228
  /**
228
229
  * Multiplies two positive integers, ensuring the result is never less than 1.
230
+ *
231
+ * @example
232
+ *
233
+ * ```ts
234
+ * const product = PositiveInt.mul(asPositiveInt(3), asPositiveInt(7));
235
+ *
236
+ * assert(product === 21);
237
+ * ```
238
+ *
229
239
  * @param a - First positive integer
230
240
  * @param b - Second positive integer
231
241
  * @returns `a * b` as a PositiveInt, but never less than 1
232
- * @example
233
- * ```typescript
234
- * PositiveInt.mul(asPositiveInt(4), asPositiveInt(3)); // PositiveInt (12)
235
- * ```
236
242
  */
237
243
  readonly mul: (x: WithSmallInt<PositiveInt, 40>, y: WithSmallInt<PositiveInt, 40>) => PositiveInt;
238
244
  /**
239
- * Divides two positive integers using floor division, clamping to remain positive.
245
+ * Divides two positive integers using floor division, clamping to remain
246
+ * positive.
240
247
  *
241
248
  * Performs mathematical floor division: `⌊a / b⌋`. If the result would be 0
242
- * (when a < b), it is clamped to 1 to maintain the positive integer constraint.
249
+ * (when a < b), it is clamped to 1 to maintain the positive integer
250
+ * constraint.
251
+ *
252
+ * @example
253
+ *
254
+ * ```ts
255
+ * const quotient = PositiveInt.div(asPositiveInt(9), asPositiveInt(2));
256
+ * const clamped = PositiveInt.div(asPositiveInt(3), asPositiveInt(10));
257
+ *
258
+ * assert(quotient === 4);
259
+ * assert(clamped === 1);
260
+ * ```
243
261
  *
244
262
  * @param a - The dividend (positive integer)
245
263
  * @param b - The divisor (positive integer, guaranteed non-zero)
246
264
  * @returns `max(1, ⌊a / b⌋)` as a PositiveInt
247
- *
248
- * @example
249
- * ```typescript
250
- * PositiveInt.div(asPositiveInt(10), asPositiveInt(3)); // PositiveInt (3)
251
- * PositiveInt.div(asPositiveInt(9), asPositiveInt(3)); // PositiveInt (3)
252
- * PositiveInt.div(asPositiveInt(2), asPositiveInt(3)); // PositiveInt (1) - clamped
253
- * PositiveInt.div(asPositiveInt(1), asPositiveInt(5)); // PositiveInt (1) - clamped
254
- * ```
255
265
  */
256
266
  readonly div: (x: WithSmallInt<PositiveInt, 40>, y: 1 | 2 | 3 | 32 | 4 | 5 | 6 | 7 | 8 | 9 | 11 | 10 | 24 | 14 | 34 | 12 | 13 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 33 | 35 | 36 | 37 | 38 | 39 | NormalizeBrandUnion<number & {
257
267
  readonly NaNValue: false;
@@ -1 +1 @@
1
- {"version":3,"file":"positive-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-int.mts"],"names":[],"mappings":"AA+BA;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,aAAa,iCAAK,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;MAAW,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,eAAO,MAAM,WAAW;IACtB;;;;;;;OAOG;;IAGH;;;OAGG;;IAGH;;;;;;;;;;;;;;OAcG;;IAGH;;;;;;;;;;;OAWG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;;;;;OAqBG;;IAGH;;;;;;;;;OASG;;IAGH;;;;;;;;;OASG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;OASG;;IAGH;;;;;;;;;;;;;;;;;OAiBG;;;;;;;;;;;;;;CAEK,CAAC"}
1
+ {"version":3,"file":"positive-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-int.mts"],"names":[],"mappings":"AA+BA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,aAAa,iCAAK,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;MAAW,CAAC;AAEtC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,WAAW;IACtB;;;;;;;;;;;;;;OAcG;;IAGH;;;;OAIG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;;;;;OAiBG;;IAGH;;;;;;;;;;;;;;;;;;OAkBG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;;;;;OAiBG;;IAGH;;;;;;;;;;;;;;OAcG;;IAGH;;;;;;;;;;;;;;;;;OAiBG;;IAGH;;;;;;;;;;;;;;OAcG;;IAGH;;;;;;;;;;;;;;;;;;;;;OAqBG;;;;;;;;;;;;;;CAEK,CAAC"}