ts-data-forge 3.3.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (664) 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 +60 -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 +213 -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 +162 -0
  21. package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -0
  22. package/dist/array/impl/array-utils-search.d.mts +178 -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 +329 -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 -254
  59. package/dist/collections/imap-mapped.d.mts.map +1 -1
  60. package/dist/collections/imap-mapped.mjs +40 -170
  61. package/dist/collections/imap-mapped.mjs.map +1 -1
  62. package/dist/collections/imap.d.mts +436 -164
  63. package/dist/collections/imap.d.mts.map +1 -1
  64. package/dist/collections/imap.mjs +83 -101
  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 -136
  75. package/dist/collections/queue.d.mts.map +1 -1
  76. package/dist/collections/queue.mjs +59 -160
  77. package/dist/collections/queue.mjs.map +1 -1
  78. package/dist/collections/stack.d.mts +154 -155
  79. package/dist/collections/stack.d.mts.map +1 -1
  80. package/dist/collections/stack.mjs +58 -207
  81. package/dist/collections/stack.mjs.map +1 -1
  82. package/dist/entry-point.d.mts +2 -0
  83. package/dist/entry-point.d.mts.map +1 -1
  84. package/dist/entry-point.mjs +8 -5
  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/index.d.mts +2 -2
  91. package/dist/functional/index.d.mts.map +1 -1
  92. package/dist/functional/index.mjs +4 -2
  93. package/dist/functional/index.mjs.map +1 -1
  94. package/dist/functional/match.d.mts +35 -140
  95. package/dist/functional/match.d.mts.map +1 -1
  96. package/dist/functional/match.mjs.map +1 -1
  97. package/dist/functional/optional/impl/index.d.mts +18 -0
  98. package/dist/functional/optional/impl/index.d.mts.map +1 -0
  99. package/dist/functional/optional/impl/index.mjs +17 -0
  100. package/dist/functional/optional/impl/index.mjs.map +1 -0
  101. package/dist/functional/optional/impl/optional-expect-to-be.d.mts +29 -0
  102. package/dist/functional/optional/impl/optional-expect-to-be.d.mts.map +1 -0
  103. package/dist/functional/optional/impl/optional-expect-to-be.mjs +25 -0
  104. package/dist/functional/optional/impl/optional-expect-to-be.mjs.map +1 -0
  105. package/dist/functional/optional/impl/optional-filter.d.mts +29 -0
  106. package/dist/functional/optional/impl/optional-filter.d.mts.map +1 -0
  107. package/dist/functional/optional/impl/optional-filter.mjs +28 -0
  108. package/dist/functional/optional/impl/optional-filter.mjs.map +1 -0
  109. package/dist/functional/optional/impl/optional-flat-map.d.mts +33 -0
  110. package/dist/functional/optional/impl/optional-flat-map.d.mts.map +1 -0
  111. package/dist/functional/optional/impl/optional-flat-map.mjs +21 -0
  112. package/dist/functional/optional/impl/optional-flat-map.mjs.map +1 -0
  113. package/dist/functional/optional/impl/optional-from-nullable.d.mts +24 -0
  114. package/dist/functional/optional/impl/optional-from-nullable.d.mts.map +1 -0
  115. package/dist/functional/optional/impl/optional-from-nullable.mjs +29 -0
  116. package/dist/functional/optional/impl/optional-from-nullable.mjs.map +1 -0
  117. package/dist/functional/optional/impl/optional-is-none.d.mts +22 -0
  118. package/dist/functional/optional/impl/optional-is-none.d.mts.map +1 -0
  119. package/dist/functional/optional/impl/optional-is-none.mjs +25 -0
  120. package/dist/functional/optional/impl/optional-is-none.mjs.map +1 -0
  121. package/dist/functional/optional/impl/optional-is-optional.d.mts +18 -0
  122. package/dist/functional/optional/impl/optional-is-optional.d.mts.map +1 -0
  123. package/dist/functional/optional/impl/optional-is-optional.mjs +27 -0
  124. package/dist/functional/optional/impl/optional-is-optional.mjs.map +1 -0
  125. package/dist/functional/optional/impl/optional-is-some.d.mts +22 -0
  126. package/dist/functional/optional/impl/optional-is-some.d.mts.map +1 -0
  127. package/dist/functional/optional/impl/optional-is-some.mjs +25 -0
  128. package/dist/functional/optional/impl/optional-is-some.mjs.map +1 -0
  129. package/dist/functional/optional/impl/optional-map.d.mts +31 -0
  130. package/dist/functional/optional/impl/optional-map.d.mts.map +1 -0
  131. package/dist/functional/optional/impl/optional-map.mjs +25 -0
  132. package/dist/functional/optional/impl/optional-map.mjs.map +1 -0
  133. package/dist/functional/optional/impl/optional-none.d.mts +16 -0
  134. package/dist/functional/optional/impl/optional-none.d.mts.map +1 -0
  135. package/dist/functional/optional/impl/optional-none.mjs +20 -0
  136. package/dist/functional/optional/impl/optional-none.mjs.map +1 -0
  137. package/dist/functional/optional/impl/optional-or-else.d.mts +35 -0
  138. package/dist/functional/optional/impl/optional-or-else.d.mts.map +1 -0
  139. package/dist/functional/optional/impl/optional-or-else.mjs +19 -0
  140. package/dist/functional/optional/impl/optional-or-else.mjs.map +1 -0
  141. package/dist/functional/optional/impl/optional-some.d.mts +19 -0
  142. package/dist/functional/optional/impl/optional-some.d.mts.map +1 -0
  143. package/dist/functional/optional/impl/optional-some.mjs +26 -0
  144. package/dist/functional/optional/impl/optional-some.mjs.map +1 -0
  145. package/dist/functional/optional/impl/optional-to-nullable.d.mts +27 -0
  146. package/dist/functional/optional/impl/optional-to-nullable.d.mts.map +1 -0
  147. package/dist/functional/optional/impl/optional-to-nullable.mjs +31 -0
  148. package/dist/functional/optional/impl/optional-to-nullable.mjs.map +1 -0
  149. package/dist/functional/optional/impl/optional-unwrap-or.d.mts +33 -0
  150. package/dist/functional/optional/impl/optional-unwrap-or.d.mts.map +1 -0
  151. package/dist/functional/optional/impl/optional-unwrap-or.mjs +19 -0
  152. package/dist/functional/optional/impl/optional-unwrap-or.mjs.map +1 -0
  153. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts +29 -0
  154. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts.map +1 -0
  155. package/dist/functional/optional/impl/optional-unwrap-throw.mjs +38 -0
  156. package/dist/functional/optional/impl/optional-unwrap-throw.mjs.map +1 -0
  157. package/dist/functional/optional/impl/optional-unwrap.d.mts +28 -0
  158. package/dist/functional/optional/impl/optional-unwrap.d.mts.map +1 -0
  159. package/dist/functional/optional/impl/optional-unwrap.mjs +11 -0
  160. package/dist/functional/optional/impl/optional-unwrap.mjs.map +1 -0
  161. package/dist/functional/optional/impl/optional-zip.d.mts +31 -0
  162. package/dist/functional/optional/impl/optional-zip.d.mts.map +1 -0
  163. package/dist/functional/optional/impl/optional-zip.mjs +39 -0
  164. package/dist/functional/optional/impl/optional-zip.mjs.map +1 -0
  165. package/dist/functional/optional/impl/tag.d.mts +5 -0
  166. package/dist/functional/optional/impl/tag.d.mts.map +1 -0
  167. package/dist/functional/optional/impl/tag.mjs +7 -0
  168. package/dist/functional/optional/impl/tag.mjs.map +1 -0
  169. package/dist/functional/optional/impl/types.d.mts +22 -0
  170. package/dist/functional/optional/impl/types.d.mts.map +1 -0
  171. package/dist/functional/optional/impl/types.mjs +2 -0
  172. package/dist/functional/optional/impl/types.mjs.map +1 -0
  173. package/dist/functional/optional/index.d.mts +2 -0
  174. package/dist/functional/optional/index.d.mts.map +1 -0
  175. package/dist/functional/optional/index.mjs +3 -0
  176. package/dist/functional/optional/index.mjs.map +1 -0
  177. package/dist/functional/pipe.d.mts +63 -117
  178. package/dist/functional/pipe.d.mts.map +1 -1
  179. package/dist/functional/pipe.mjs +4 -3
  180. package/dist/functional/pipe.mjs.map +1 -1
  181. package/dist/functional/result/impl/index.d.mts +24 -0
  182. package/dist/functional/result/impl/index.d.mts.map +1 -0
  183. package/dist/functional/result/impl/index.mjs +23 -0
  184. package/dist/functional/result/impl/index.mjs.map +1 -0
  185. package/dist/functional/result/impl/result-err.d.mts +25 -0
  186. package/dist/functional/result/impl/result-err.d.mts.map +1 -0
  187. package/dist/functional/result/impl/result-err.mjs +32 -0
  188. package/dist/functional/result/impl/result-err.mjs.map +1 -0
  189. package/dist/functional/result/impl/result-expect-to-be.d.mts +27 -0
  190. package/dist/functional/result/impl/result-expect-to-be.d.mts.map +1 -0
  191. package/dist/functional/result/impl/result-expect-to-be.mjs +26 -0
  192. package/dist/functional/result/impl/result-expect-to-be.mjs.map +1 -0
  193. package/dist/functional/result/impl/result-flat-map.d.mts +39 -0
  194. package/dist/functional/result/impl/result-flat-map.d.mts.map +1 -0
  195. package/dist/functional/result/impl/result-flat-map.mjs +24 -0
  196. package/dist/functional/result/impl/result-flat-map.mjs.map +1 -0
  197. package/dist/functional/result/impl/result-fold.d.mts +45 -0
  198. package/dist/functional/result/impl/result-fold.d.mts.map +1 -0
  199. package/dist/functional/result/impl/result-fold.mjs +26 -0
  200. package/dist/functional/result/impl/result-fold.mjs.map +1 -0
  201. package/dist/functional/result/impl/result-from-promise.d.mts +32 -0
  202. package/dist/functional/result/impl/result-from-promise.d.mts.map +1 -0
  203. package/dist/functional/result/impl/result-from-promise.mjs +32 -0
  204. package/dist/functional/result/impl/result-from-promise.mjs.map +1 -0
  205. package/dist/functional/result/impl/result-from-throwable.d.mts +29 -0
  206. package/dist/functional/result/impl/result-from-throwable.d.mts.map +1 -0
  207. package/dist/functional/result/impl/result-from-throwable.mjs +46 -0
  208. package/dist/functional/result/impl/result-from-throwable.mjs.map +1 -0
  209. package/dist/functional/result/impl/result-is-err.d.mts +20 -0
  210. package/dist/functional/result/impl/result-is-err.d.mts.map +1 -0
  211. package/dist/functional/result/impl/result-is-err.mjs +23 -0
  212. package/dist/functional/result/impl/result-is-err.mjs.map +1 -0
  213. package/dist/functional/result/impl/result-is-ok.d.mts +20 -0
  214. package/dist/functional/result/impl/result-is-ok.d.mts.map +1 -0
  215. package/dist/functional/result/impl/result-is-ok.mjs +23 -0
  216. package/dist/functional/result/impl/result-is-ok.mjs.map +1 -0
  217. package/dist/functional/result/impl/result-is-result.d.mts +17 -0
  218. package/dist/functional/result/impl/result-is-result.d.mts.map +1 -0
  219. package/dist/functional/result/impl/result-is-result.mjs +26 -0
  220. package/dist/functional/result/impl/result-is-result.mjs.map +1 -0
  221. package/dist/functional/result/impl/result-map-err.d.mts +33 -0
  222. package/dist/functional/result/impl/result-map-err.d.mts.map +1 -0
  223. package/dist/functional/result/impl/result-map-err.mjs +25 -0
  224. package/dist/functional/result/impl/result-map-err.mjs.map +1 -0
  225. package/dist/functional/result/impl/result-map.d.mts +34 -0
  226. package/dist/functional/result/impl/result-map.d.mts.map +1 -0
  227. package/dist/functional/result/impl/result-map.mjs +25 -0
  228. package/dist/functional/result/impl/result-map.mjs.map +1 -0
  229. package/dist/functional/result/impl/result-ok.d.mts +25 -0
  230. package/dist/functional/result/impl/result-ok.d.mts.map +1 -0
  231. package/dist/functional/result/impl/result-ok.mjs +32 -0
  232. package/dist/functional/result/impl/result-ok.mjs.map +1 -0
  233. package/dist/functional/result/impl/result-or-else.d.mts +32 -0
  234. package/dist/functional/result/impl/result-or-else.d.mts.map +1 -0
  235. package/dist/functional/result/impl/result-or-else.mjs +20 -0
  236. package/dist/functional/result/impl/result-or-else.mjs.map +1 -0
  237. package/dist/functional/result/impl/result-swap.d.mts +20 -0
  238. package/dist/functional/result/impl/result-swap.d.mts.map +1 -0
  239. package/dist/functional/result/impl/result-swap.mjs +28 -0
  240. package/dist/functional/result/impl/result-swap.mjs.map +1 -0
  241. package/dist/functional/result/impl/result-to-optional.d.mts +28 -0
  242. package/dist/functional/result/impl/result-to-optional.d.mts.map +1 -0
  243. package/dist/functional/result/impl/result-to-optional.mjs +34 -0
  244. package/dist/functional/result/impl/result-to-optional.mjs.map +1 -0
  245. package/dist/functional/result/impl/result-unwrap-err-or.d.mts +29 -0
  246. package/dist/functional/result/impl/result-unwrap-err-or.d.mts.map +1 -0
  247. package/dist/functional/result/impl/result-unwrap-err-or.mjs +20 -0
  248. package/dist/functional/result/impl/result-unwrap-err-or.mjs.map +1 -0
  249. package/dist/functional/result/impl/result-unwrap-err-throw.d.mts +30 -0
  250. package/dist/functional/result/impl/result-unwrap-err-throw.d.mts.map +1 -0
  251. package/dist/functional/result/impl/result-unwrap-err-throw.mjs +47 -0
  252. package/dist/functional/result/impl/result-unwrap-err-throw.mjs.map +1 -0
  253. package/dist/functional/result/impl/result-unwrap-err.d.mts +31 -0
  254. package/dist/functional/result/impl/result-unwrap-err.d.mts.map +1 -0
  255. package/dist/functional/result/impl/result-unwrap-err.mjs +36 -0
  256. package/dist/functional/result/impl/result-unwrap-err.mjs.map +1 -0
  257. package/dist/functional/result/impl/result-unwrap-ok-or.d.mts +29 -0
  258. package/dist/functional/result/impl/result-unwrap-ok-or.d.mts.map +1 -0
  259. package/dist/functional/result/impl/result-unwrap-ok-or.mjs +20 -0
  260. package/dist/functional/result/impl/result-unwrap-ok-or.mjs.map +1 -0
  261. package/dist/functional/result/impl/result-unwrap-ok.d.mts +23 -0
  262. package/dist/functional/result/impl/result-unwrap-ok.d.mts.map +1 -0
  263. package/dist/functional/result/impl/result-unwrap-ok.mjs +11 -0
  264. package/dist/functional/result/impl/result-unwrap-ok.mjs.map +1 -0
  265. package/dist/functional/result/impl/result-unwrap-throw.d.mts +30 -0
  266. package/dist/functional/result/impl/result-unwrap-throw.d.mts.map +1 -0
  267. package/dist/functional/result/impl/result-unwrap-throw.mjs +41 -0
  268. package/dist/functional/result/impl/result-unwrap-throw.mjs.map +1 -0
  269. package/dist/functional/result/impl/result-zip.d.mts +29 -0
  270. package/dist/functional/result/impl/result-zip.d.mts.map +1 -0
  271. package/dist/functional/result/impl/result-zip.mjs +38 -0
  272. package/dist/functional/result/impl/result-zip.mjs.map +1 -0
  273. package/dist/functional/result/impl/tag.d.mts +5 -0
  274. package/dist/functional/result/impl/tag.d.mts.map +1 -0
  275. package/dist/functional/result/impl/tag.mjs +7 -0
  276. package/dist/functional/result/impl/tag.mjs.map +1 -0
  277. package/dist/functional/result/impl/types.d.mts +29 -0
  278. package/dist/functional/result/impl/types.d.mts.map +1 -0
  279. package/dist/functional/result/impl/types.mjs +2 -0
  280. package/dist/functional/result/impl/types.mjs.map +1 -0
  281. package/dist/functional/result/index.d.mts +2 -0
  282. package/dist/functional/result/index.d.mts.map +1 -0
  283. package/dist/functional/result/index.mjs +3 -0
  284. package/dist/functional/result/index.mjs.map +1 -0
  285. package/dist/globals.d.mts +95 -5
  286. package/dist/guard/has-key.d.mts +23 -74
  287. package/dist/guard/has-key.d.mts.map +1 -1
  288. package/dist/guard/has-key.mjs +23 -74
  289. package/dist/guard/has-key.mjs.map +1 -1
  290. package/dist/guard/is-non-empty-string.d.mts +20 -87
  291. package/dist/guard/is-non-empty-string.d.mts.map +1 -1
  292. package/dist/guard/is-non-empty-string.mjs +20 -87
  293. package/dist/guard/is-non-empty-string.mjs.map +1 -1
  294. package/dist/guard/is-non-null-object.d.mts +14 -84
  295. package/dist/guard/is-non-null-object.d.mts.map +1 -1
  296. package/dist/guard/is-non-null-object.mjs +14 -84
  297. package/dist/guard/is-non-null-object.mjs.map +1 -1
  298. package/dist/guard/is-primitive.d.mts +13 -126
  299. package/dist/guard/is-primitive.d.mts.map +1 -1
  300. package/dist/guard/is-primitive.mjs +13 -126
  301. package/dist/guard/is-primitive.mjs.map +1 -1
  302. package/dist/guard/is-record.d.mts +21 -132
  303. package/dist/guard/is-record.d.mts.map +1 -1
  304. package/dist/guard/is-record.mjs +21 -132
  305. package/dist/guard/is-record.mjs.map +1 -1
  306. package/dist/guard/is-type.d.mts +201 -238
  307. package/dist/guard/is-type.d.mts.map +1 -1
  308. package/dist/guard/is-type.mjs +201 -238
  309. package/dist/guard/is-type.mjs.map +1 -1
  310. package/dist/guard/key-is-in.d.mts +22 -139
  311. package/dist/guard/key-is-in.d.mts.map +1 -1
  312. package/dist/guard/key-is-in.mjs +22 -139
  313. package/dist/guard/key-is-in.mjs.map +1 -1
  314. package/dist/index.d.mts +0 -2
  315. package/dist/index.d.mts.map +1 -1
  316. package/dist/index.mjs +0 -5
  317. package/dist/index.mjs.map +1 -1
  318. package/dist/iterator/range.d.mts +29 -62
  319. package/dist/iterator/range.d.mts.map +1 -1
  320. package/dist/iterator/range.mjs.map +1 -1
  321. package/dist/json/json.d.mts +191 -122
  322. package/dist/json/json.d.mts.map +1 -1
  323. package/dist/json/json.mjs +246 -144
  324. package/dist/json/json.mjs.map +1 -1
  325. package/dist/number/branded-types/finite-number.d.mts +24 -156
  326. package/dist/number/branded-types/finite-number.d.mts.map +1 -1
  327. package/dist/number/branded-types/finite-number.mjs +28 -160
  328. package/dist/number/branded-types/finite-number.mjs.map +1 -1
  329. package/dist/number/branded-types/int.d.mts +122 -120
  330. package/dist/number/branded-types/int.d.mts.map +1 -1
  331. package/dist/number/branded-types/int.mjs +123 -121
  332. package/dist/number/branded-types/int.mjs.map +1 -1
  333. package/dist/number/branded-types/int16.d.mts +22 -30
  334. package/dist/number/branded-types/int16.d.mts.map +1 -1
  335. package/dist/number/branded-types/int16.mjs +23 -31
  336. package/dist/number/branded-types/int16.mjs.map +1 -1
  337. package/dist/number/branded-types/int32.d.mts +22 -31
  338. package/dist/number/branded-types/int32.d.mts.map +1 -1
  339. package/dist/number/branded-types/int32.mjs +23 -32
  340. package/dist/number/branded-types/int32.mjs.map +1 -1
  341. package/dist/number/branded-types/non-negative-finite-number.d.mts +28 -36
  342. package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
  343. package/dist/number/branded-types/non-negative-finite-number.mjs +32 -40
  344. package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
  345. package/dist/number/branded-types/non-negative-int16.d.mts +24 -34
  346. package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
  347. package/dist/number/branded-types/non-negative-int16.mjs +25 -35
  348. package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
  349. package/dist/number/branded-types/non-negative-int32.d.mts +26 -35
  350. package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
  351. package/dist/number/branded-types/non-negative-int32.mjs +27 -36
  352. package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
  353. package/dist/number/branded-types/non-zero-finite-number.d.mts +22 -37
  354. package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
  355. package/dist/number/branded-types/non-zero-finite-number.mjs +26 -41
  356. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
  357. package/dist/number/branded-types/non-zero-int.d.mts +15 -30
  358. package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
  359. package/dist/number/branded-types/non-zero-int.mjs +16 -31
  360. package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
  361. package/dist/number/branded-types/non-zero-int16.d.mts +27 -35
  362. package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
  363. package/dist/number/branded-types/non-zero-int16.mjs +28 -36
  364. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
  365. package/dist/number/branded-types/non-zero-int32.d.mts +29 -36
  366. package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
  367. package/dist/number/branded-types/non-zero-int32.mjs +30 -37
  368. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
  369. package/dist/number/branded-types/non-zero-safe-int.d.mts +37 -38
  370. package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
  371. package/dist/number/branded-types/non-zero-safe-int.mjs +40 -41
  372. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
  373. package/dist/number/branded-types/non-zero-uint16.d.mts +24 -35
  374. package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
  375. package/dist/number/branded-types/non-zero-uint16.mjs +25 -36
  376. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
  377. package/dist/number/branded-types/non-zero-uint32.d.mts +24 -35
  378. package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
  379. package/dist/number/branded-types/non-zero-uint32.mjs +25 -36
  380. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
  381. package/dist/number/branded-types/positive-finite-number.d.mts +26 -40
  382. package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
  383. package/dist/number/branded-types/positive-finite-number.mjs +30 -44
  384. package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
  385. package/dist/number/branded-types/positive-int.d.mts +133 -123
  386. package/dist/number/branded-types/positive-int.d.mts.map +1 -1
  387. package/dist/number/branded-types/positive-int.mjs +134 -124
  388. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  389. package/dist/number/branded-types/positive-int16.d.mts +24 -35
  390. package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
  391. package/dist/number/branded-types/positive-int16.mjs +25 -36
  392. package/dist/number/branded-types/positive-int16.mjs.map +1 -1
  393. package/dist/number/branded-types/positive-int32.d.mts +24 -35
  394. package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
  395. package/dist/number/branded-types/positive-int32.mjs +25 -36
  396. package/dist/number/branded-types/positive-int32.mjs.map +1 -1
  397. package/dist/number/branded-types/positive-safe-int.d.mts +159 -33
  398. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
  399. package/dist/number/branded-types/positive-safe-int.mjs +161 -35
  400. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  401. package/dist/number/branded-types/positive-uint16.d.mts +24 -35
  402. package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
  403. package/dist/number/branded-types/positive-uint16.mjs +25 -36
  404. package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
  405. package/dist/number/branded-types/positive-uint32.d.mts +26 -36
  406. package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
  407. package/dist/number/branded-types/positive-uint32.mjs +27 -37
  408. package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
  409. package/dist/number/branded-types/safe-int.d.mts +140 -99
  410. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  411. package/dist/number/branded-types/safe-int.mjs +143 -102
  412. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  413. package/dist/number/branded-types/safe-uint.d.mts +24 -33
  414. package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
  415. package/dist/number/branded-types/safe-uint.mjs +26 -35
  416. package/dist/number/branded-types/safe-uint.mjs.map +1 -1
  417. package/dist/number/branded-types/uint.d.mts +121 -30
  418. package/dist/number/branded-types/uint.d.mts.map +1 -1
  419. package/dist/number/branded-types/uint.mjs +122 -31
  420. package/dist/number/branded-types/uint.mjs.map +1 -1
  421. package/dist/number/branded-types/uint16.d.mts +26 -34
  422. package/dist/number/branded-types/uint16.d.mts.map +1 -1
  423. package/dist/number/branded-types/uint16.mjs +27 -35
  424. package/dist/number/branded-types/uint16.mjs.map +1 -1
  425. package/dist/number/branded-types/uint32.d.mts +26 -68
  426. package/dist/number/branded-types/uint32.d.mts.map +1 -1
  427. package/dist/number/branded-types/uint32.mjs +27 -69
  428. package/dist/number/branded-types/uint32.mjs.map +1 -1
  429. package/dist/number/enum/int8.d.mts +37 -101
  430. package/dist/number/enum/int8.d.mts.map +1 -1
  431. package/dist/number/enum/int8.mjs +40 -171
  432. package/dist/number/enum/int8.mjs.map +1 -1
  433. package/dist/number/enum/uint8.d.mts +45 -55
  434. package/dist/number/enum/uint8.d.mts.map +1 -1
  435. package/dist/number/enum/uint8.mjs +47 -156
  436. package/dist/number/enum/uint8.mjs.map +1 -1
  437. package/dist/number/num.d.mts +145 -206
  438. package/dist/number/num.d.mts.map +1 -1
  439. package/dist/number/num.mjs +143 -199
  440. package/dist/number/num.mjs.map +1 -1
  441. package/dist/number/refined-number-utils.d.mts +97 -21
  442. package/dist/number/refined-number-utils.d.mts.map +1 -1
  443. package/dist/number/refined-number-utils.mjs +91 -22
  444. package/dist/number/refined-number-utils.mjs.map +1 -1
  445. package/dist/object/object.d.mts +126 -208
  446. package/dist/object/object.d.mts.map +1 -1
  447. package/dist/object/object.mjs +68 -102
  448. package/dist/object/object.mjs.map +1 -1
  449. package/dist/others/cast-mutable.d.mts +12 -88
  450. package/dist/others/cast-mutable.d.mts.map +1 -1
  451. package/dist/others/cast-mutable.mjs +13 -89
  452. package/dist/others/cast-mutable.mjs.map +1 -1
  453. package/dist/others/cast-readonly.d.mts +12 -168
  454. package/dist/others/cast-readonly.d.mts.map +1 -1
  455. package/dist/others/cast-readonly.mjs +13 -169
  456. package/dist/others/cast-readonly.mjs.map +1 -1
  457. package/dist/others/if-then.d.mts +6 -83
  458. package/dist/others/if-then.d.mts.map +1 -1
  459. package/dist/others/if-then.mjs +6 -83
  460. package/dist/others/if-then.mjs.map +1 -1
  461. package/dist/others/map-nullable.d.mts +12 -136
  462. package/dist/others/map-nullable.d.mts.map +1 -1
  463. package/dist/others/map-nullable.mjs.map +1 -1
  464. package/dist/others/memoize-function.d.mts +14 -157
  465. package/dist/others/memoize-function.d.mts.map +1 -1
  466. package/dist/others/memoize-function.mjs +14 -157
  467. package/dist/others/memoize-function.mjs.map +1 -1
  468. package/dist/others/tuple.d.mts +33 -151
  469. package/dist/others/tuple.d.mts.map +1 -1
  470. package/dist/others/tuple.mjs +33 -151
  471. package/dist/others/tuple.mjs.map +1 -1
  472. package/dist/others/unknown-to-string.d.mts +11 -125
  473. package/dist/others/unknown-to-string.d.mts.map +1 -1
  474. package/dist/others/unknown-to-string.mjs +12 -126
  475. package/dist/others/unknown-to-string.mjs.map +1 -1
  476. package/dist/promise/promise.d.mts +33 -21
  477. package/dist/promise/promise.d.mts.map +1 -1
  478. package/dist/promise/promise.mjs +36 -24
  479. package/dist/promise/promise.mjs.map +1 -1
  480. package/package.json +58 -44
  481. package/src/array/impl/array-utils-creation.mts +192 -0
  482. package/src/array/{array-utils-creation.test.mts → impl/array-utils-creation.test.mts} +121 -72
  483. package/src/array/impl/array-utils-element-access.mts +115 -0
  484. package/src/array/impl/array-utils-element-access.test.mts +151 -0
  485. package/src/array/impl/array-utils-iterators.mts +79 -0
  486. package/src/array/impl/array-utils-iterators.test.mts +98 -0
  487. package/src/array/impl/array-utils-modification.mts +434 -0
  488. package/src/array/{array-utils-modification.test.mts → impl/array-utils-modification.test.mts} +41 -28
  489. package/src/array/{array-utils-overload-type-error.test.mts → impl/array-utils-overload-type-error.test.mts} +33 -33
  490. package/src/array/impl/array-utils-reducing-value.mts +535 -0
  491. package/src/array/{array-utils-reducing-value.test.mts → impl/array-utils-reducing-value.test.mts} +53 -58
  492. package/src/array/impl/array-utils-search.mts +509 -0
  493. package/src/array/impl/array-utils-search.test.mts +346 -0
  494. package/src/array/impl/array-utils-set-op.mts +166 -0
  495. package/src/array/{array-utils-set-op.test.mts → impl/array-utils-set-op.test.mts} +42 -35
  496. package/src/array/impl/array-utils-size.mts +30 -0
  497. package/src/array/impl/array-utils-size.test.mts +9 -0
  498. package/src/array/impl/array-utils-slice-clamped.mts +51 -0
  499. package/src/array/{array-utils-slice-clamped.test.mts → impl/array-utils-slice-clamped.test.mts} +13 -13
  500. package/src/array/impl/array-utils-slicing.mts +275 -0
  501. package/src/array/impl/array-utils-slicing.test.mts +158 -0
  502. package/src/array/impl/array-utils-transformation.mts +746 -0
  503. package/src/array/{array-utils-transformation.test.mts → impl/array-utils-transformation.test.mts} +662 -889
  504. package/src/array/impl/array-utils-validation.mts +241 -0
  505. package/src/array/{array-utils-validation.test.mts → impl/array-utils-validation.test.mts} +194 -107
  506. package/src/array/{array.test.mts → impl/array.test.mts} +2 -2
  507. package/src/array/impl/index.mts +12 -0
  508. package/src/array/index.mts +1 -1
  509. package/src/collections/imap-mapped.mts +99 -265
  510. package/src/collections/imap.mts +477 -174
  511. package/src/collections/imap.test.mts +12 -19
  512. package/src/collections/iset-mapped.mts +892 -358
  513. package/src/collections/iset.mts +429 -213
  514. package/src/collections/queue.mts +174 -200
  515. package/src/collections/stack.mts +172 -245
  516. package/src/collections/stack.test.mts +9 -1
  517. package/src/entry-point.mts +2 -0
  518. package/src/expect-type.mts +43 -172
  519. package/src/functional/index.mts +2 -2
  520. package/src/functional/match.mts +35 -145
  521. package/src/functional/optional/impl/index.mts +17 -0
  522. package/src/functional/optional/impl/optional-expect-to-be.mts +65 -0
  523. package/src/functional/optional/impl/optional-filter.mts +71 -0
  524. package/src/functional/optional/impl/optional-flat-map.mts +67 -0
  525. package/src/functional/optional/impl/optional-from-nullable.mts +28 -0
  526. package/src/functional/optional/impl/optional-is-none.mts +25 -0
  527. package/src/functional/optional/impl/optional-is-optional.mts +27 -0
  528. package/src/functional/optional/impl/optional-is-some.mts +25 -0
  529. package/src/functional/optional/impl/optional-map.mts +69 -0
  530. package/src/functional/optional/impl/optional-none.mts +17 -0
  531. package/src/functional/optional/impl/optional-or-else.mts +73 -0
  532. package/src/functional/optional/impl/optional-some.mts +23 -0
  533. package/src/functional/optional/impl/optional-to-nullable.mts +31 -0
  534. package/src/functional/optional/impl/optional-unwrap-or.mts +64 -0
  535. package/src/functional/optional/impl/optional-unwrap-throw.mts +39 -0
  536. package/src/functional/optional/impl/optional-unwrap.mts +41 -0
  537. package/src/functional/optional/impl/optional-zip.mts +40 -0
  538. package/src/functional/optional/impl/tag.mts +6 -0
  539. package/src/functional/optional/impl/types.mts +28 -0
  540. package/src/functional/optional/index.mts +1 -0
  541. package/src/functional/optional.test.mts +11 -9
  542. package/src/functional/pipe.mts +65 -118
  543. package/src/functional/pipe.test.mts +1 -1
  544. package/src/functional/result/impl/index.mts +23 -0
  545. package/src/functional/result/impl/result-err.mts +29 -0
  546. package/src/functional/result/impl/result-expect-to-be.mts +63 -0
  547. package/src/functional/result/impl/result-flat-map.mts +79 -0
  548. package/src/functional/result/impl/result-fold.mts +95 -0
  549. package/src/functional/result/impl/result-from-promise.mts +39 -0
  550. package/src/functional/result/impl/result-from-throwable.mts +42 -0
  551. package/src/functional/result/impl/result-is-err.mts +23 -0
  552. package/src/functional/result/impl/result-is-ok.mts +23 -0
  553. package/src/functional/result/impl/result-is-result.mts +23 -0
  554. package/src/functional/result/impl/result-map-err.mts +72 -0
  555. package/src/functional/result/impl/result-map.mts +73 -0
  556. package/src/functional/result/impl/result-ok.mts +29 -0
  557. package/src/functional/result/impl/result-or-else.mts +63 -0
  558. package/src/functional/result/impl/result-swap.mts +28 -0
  559. package/src/functional/result/impl/result-to-optional.mts +34 -0
  560. package/src/functional/result/impl/result-unwrap-err-or.mts +60 -0
  561. package/src/functional/result/impl/result-unwrap-err-throw.mts +53 -0
  562. package/src/functional/result/impl/result-unwrap-err.mts +36 -0
  563. package/src/functional/result/impl/result-unwrap-ok-or.mts +60 -0
  564. package/src/functional/result/impl/result-unwrap-ok.mts +35 -0
  565. package/src/functional/result/impl/result-unwrap-throw.mts +43 -0
  566. package/src/functional/result/impl/result-zip.mts +39 -0
  567. package/src/functional/result/impl/tag.mts +6 -0
  568. package/src/functional/result/impl/types.mts +35 -0
  569. package/src/functional/result/index.mts +1 -0
  570. package/src/functional/result.test.mts +14 -6
  571. package/src/globals.d.mts +95 -5
  572. package/src/guard/has-key.mts +23 -74
  573. package/src/guard/is-non-empty-string.mts +20 -87
  574. package/src/guard/is-non-empty-string.test.mts +1 -1
  575. package/src/guard/is-non-null-object.mts +14 -84
  576. package/src/guard/is-non-null-object.test.mts +4 -4
  577. package/src/guard/is-primitive.mts +13 -126
  578. package/src/guard/is-primitive.test.mts +4 -4
  579. package/src/guard/is-record.mts +21 -132
  580. package/src/guard/is-type.mts +201 -238
  581. package/src/guard/is-type.test.mts +10 -10
  582. package/src/guard/key-is-in.mts +22 -139
  583. package/src/index.mts +0 -2
  584. package/src/iterator/range.mts +29 -62
  585. package/src/json/json.mts +202 -134
  586. package/src/json/json.test.mts +1 -3
  587. package/src/number/branded-types/finite-number.mts +34 -166
  588. package/src/number/branded-types/int.mts +129 -127
  589. package/src/number/branded-types/int16.mts +31 -39
  590. package/src/number/branded-types/int16.test.mts +24 -24
  591. package/src/number/branded-types/int32.mts +31 -40
  592. package/src/number/branded-types/int32.test.mts +39 -39
  593. package/src/number/branded-types/non-negative-finite-number.mts +39 -47
  594. package/src/number/branded-types/non-negative-int16.mts +33 -43
  595. package/src/number/branded-types/non-negative-int16.test.mts +16 -16
  596. package/src/number/branded-types/non-negative-int32.mts +35 -44
  597. package/src/number/branded-types/non-negative-int32.test.mts +30 -30
  598. package/src/number/branded-types/non-zero-finite-number.mts +32 -47
  599. package/src/number/branded-types/non-zero-int.mts +22 -37
  600. package/src/number/branded-types/non-zero-int16.mts +36 -44
  601. package/src/number/branded-types/non-zero-int16.test.mts +26 -26
  602. package/src/number/branded-types/non-zero-int32.mts +38 -45
  603. package/src/number/branded-types/non-zero-int32.test.mts +45 -42
  604. package/src/number/branded-types/non-zero-safe-int.mts +48 -49
  605. package/src/number/branded-types/non-zero-uint16.mts +33 -44
  606. package/src/number/branded-types/non-zero-uint16.test.mts +16 -16
  607. package/src/number/branded-types/non-zero-uint32.mts +33 -44
  608. package/src/number/branded-types/non-zero-uint32.test.mts +28 -28
  609. package/src/number/branded-types/positive-finite-number.mts +37 -51
  610. package/src/number/branded-types/positive-int.mts +142 -132
  611. package/src/number/branded-types/positive-int16.mts +33 -44
  612. package/src/number/branded-types/positive-int16.test.mts +14 -14
  613. package/src/number/branded-types/positive-int32.mts +33 -44
  614. package/src/number/branded-types/positive-int32.test.mts +26 -26
  615. package/src/number/branded-types/positive-safe-int.mts +169 -43
  616. package/src/number/branded-types/positive-uint16.mts +33 -44
  617. package/src/number/branded-types/positive-uint16.test.mts +16 -16
  618. package/src/number/branded-types/positive-uint32.mts +35 -45
  619. package/src/number/branded-types/positive-uint32.test.mts +31 -28
  620. package/src/number/branded-types/safe-int.mts +151 -110
  621. package/src/number/branded-types/safe-uint.mts +34 -43
  622. package/src/number/branded-types/uint.mts +129 -38
  623. package/src/number/branded-types/uint16.mts +35 -43
  624. package/src/number/branded-types/uint16.test.mts +16 -16
  625. package/src/number/branded-types/uint32.mts +35 -77
  626. package/src/number/branded-types/uint32.test.mts +28 -28
  627. package/src/number/enum/int8.mts +42 -173
  628. package/src/number/enum/int8.test.mts +9 -9
  629. package/src/number/enum/uint8.mts +49 -158
  630. package/src/number/enum/uint8.test.mts +8 -8
  631. package/src/number/num.mts +157 -212
  632. package/src/number/num.test.mts +4 -4
  633. package/src/number/refined-number-utils.mts +109 -26
  634. package/src/object/object.mts +130 -212
  635. package/src/object/object.test.mts +29 -0
  636. package/src/others/cast-mutable.mts +13 -89
  637. package/src/others/cast-mutable.test.mts +80 -0
  638. package/src/others/cast-readonly.mts +13 -169
  639. package/src/others/if-then.mts +6 -83
  640. package/src/others/map-nullable.mts +12 -136
  641. package/src/others/map-nullable.test.mts +6 -6
  642. package/src/others/memoize-function.mts +14 -157
  643. package/src/others/tuple.mts +33 -151
  644. package/src/others/unknown-to-string.mts +12 -126
  645. package/src/others/unknown-to-string.test.mts +13 -1
  646. package/src/promise/promise.mts +34 -21
  647. package/src/promise/promise.test.mts +43 -0
  648. package/dist/array/array-utils.d.mts +0 -2956
  649. package/dist/array/array-utils.d.mts.map +0 -1
  650. package/dist/array/array-utils.mjs +0 -1838
  651. package/dist/array/array-utils.mjs.map +0 -1
  652. package/dist/functional/optional.d.mts +0 -360
  653. package/dist/functional/optional.d.mts.map +0 -1
  654. package/dist/functional/optional.mjs +0 -268
  655. package/dist/functional/optional.mjs.map +0 -1
  656. package/dist/functional/result.d.mts +0 -611
  657. package/dist/functional/result.d.mts.map +0 -1
  658. package/dist/functional/result.mjs +0 -545
  659. package/dist/functional/result.mjs.map +0 -1
  660. package/src/array/array-utils-search.test.mts +0 -169
  661. package/src/array/array-utils-slicing.test.mts +0 -274
  662. package/src/array/array-utils.mts +0 -4834
  663. package/src/functional/optional.mts +0 -591
  664. package/src/functional/result.mts +0 -986
@@ -7,16 +7,16 @@ const typeNameInMessage = 'a non-zero finite number';
7
7
 
8
8
  const {
9
9
  abs,
10
- min: min_,
11
- max: max_,
12
- pow,
13
10
  add,
14
- sub,
15
- mul,
11
+ castType,
16
12
  div,
17
- randomNonZero: random,
18
13
  is,
19
- castType,
14
+ max: max_,
15
+ min: min_,
16
+ mul,
17
+ pow,
18
+ randomNonZero: random,
19
+ sub,
20
20
  } = TsDataForgeInternals.RefinedNumberUtils.operatorsForFloat<
21
21
  ElementType,
22
22
  number,
@@ -33,19 +33,19 @@ const {
33
33
  const floor = (
34
34
  x: ElementType,
35
35
  ): TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType> =>
36
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
36
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
37
37
  Math.floor(x) as TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;
38
38
 
39
39
  const ceil = (
40
40
  x: ElementType,
41
41
  ): TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType> =>
42
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
42
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
43
43
  Math.ceil(x) as TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;
44
44
 
45
45
  const round = (
46
46
  x: ElementType,
47
47
  ): TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType> =>
48
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
48
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
49
49
  Math.round(x) as TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;
50
50
 
51
51
  expectType<
@@ -62,6 +62,7 @@ expectType<
62
62
 
63
63
  /**
64
64
  * Checks if a number is a NonZeroFiniteNumber (a finite number that is not 0).
65
+ *
65
66
  * @param value The value to check.
66
67
  * @returns `true` if the value is a NonZeroFiniteNumber, `false` otherwise.
67
68
  */
@@ -69,61 +70,34 @@ export const isNonZeroFiniteNumber = is;
69
70
 
70
71
  /**
71
72
  * Casts a number to a NonZeroFiniteNumber type.
73
+ *
72
74
  * @param value The value to cast.
73
75
  * @returns The value as a NonZeroFiniteNumber type.
74
76
  * @throws {TypeError} If the value is not a non-zero finite number.
75
- * @example
76
- * ```typescript
77
- * const x = asNonZeroFiniteNumber(5.5); // NonZeroFiniteNumber
78
- * const y = asNonZeroFiniteNumber(-3.2); // NonZeroFiniteNumber
79
- * // asNonZeroFiniteNumber(0); // throws TypeError
80
- * // asNonZeroFiniteNumber(Infinity); // throws TypeError
81
- * ```
82
77
  */
83
78
  export const asNonZeroFiniteNumber = castType;
84
79
 
85
80
  /**
86
- * Namespace providing type-safe arithmetic operations for non-zero finite numbers.
87
- *
88
- * All operations maintain the non-zero constraint while ensuring results remain finite
89
- * (excluding NaN and Infinity). This type is useful for values that must never be zero,
90
- * such as denominators, scaling factors, and ratios.
91
- *
92
- * @example
93
- * ```typescript
94
- * const factor = asNonZeroFiniteNumber(2.5);
95
- * const multiplier = asNonZeroFiniteNumber(-1.5);
96
- *
97
- * // Arithmetic operations that preserve non-zero constraint
98
- * const result = NonZeroFiniteNumber.add(factor, multiplier); // NonZeroFiniteNumber (1.0)
99
- * const difference = NonZeroFiniteNumber.sub(factor, multiplier); // NonZeroFiniteNumber (4.0)
100
- * const product = NonZeroFiniteNumber.mul(factor, multiplier); // NonZeroFiniteNumber (-3.75)
101
- * const quotient = NonZeroFiniteNumber.div(factor, multiplier); // NonZeroFiniteNumber (-1.666...)
102
- *
103
- * // Utility operations
104
- * const absolute = NonZeroFiniteNumber.abs(multiplier); // NonZeroFiniteNumber (1.5)
105
- * const minimum = NonZeroFiniteNumber.min(factor, multiplier); // NonZeroFiniteNumber (-1.5)
106
- * const maximum = NonZeroFiniteNumber.max(factor, multiplier); // NonZeroFiniteNumber (2.5)
107
- *
108
- * // Rounding operations (return NonZeroInt)
109
- * const rounded = NonZeroFiniteNumber.round(factor); // NonZeroInt (3)
110
- * const floored = NonZeroFiniteNumber.floor(factor); // NonZeroInt (2)
111
- * const ceiled = NonZeroFiniteNumber.ceil(factor); // NonZeroInt (3)
81
+ * Namespace providing type-safe arithmetic operations for non-zero finite
82
+ * numbers.
112
83
  *
113
- * // Random generation
114
- * const randomValue = NonZeroFiniteNumber.random(); // NonZeroFiniteNumber (random non-zero value)
115
- * ```
84
+ * All operations maintain the non-zero constraint while ensuring results remain
85
+ * finite (excluding NaN and Infinity). This type is useful for values that must
86
+ * never be zero, such as denominators, scaling factors, and ratios.
116
87
  */
117
88
  export const NonZeroFiniteNumber = {
118
89
  /**
119
90
  * Type guard to check if a value is a NonZeroFiniteNumber.
91
+ *
120
92
  * @param value The value to check.
121
- * @returns `true` if the value is a non-zero finite number, `false` otherwise.
93
+ * @returns `true` if the value is a non-zero finite number, `false`
94
+ * otherwise.
122
95
  */
123
96
  is,
124
97
 
125
98
  /**
126
99
  * Returns the absolute value of a non-zero finite number.
100
+ *
127
101
  * @param a The NonZeroFiniteNumber.
128
102
  * @returns The absolute value as a NonZeroFiniteNumber.
129
103
  */
@@ -131,6 +105,7 @@ export const NonZeroFiniteNumber = {
131
105
 
132
106
  /**
133
107
  * Returns the smaller of two NonZeroFiniteNumber values.
108
+ *
134
109
  * @param a The first NonZeroFiniteNumber.
135
110
  * @param b The second NonZeroFiniteNumber.
136
111
  * @returns The minimum value as a NonZeroFiniteNumber.
@@ -139,6 +114,7 @@ export const NonZeroFiniteNumber = {
139
114
 
140
115
  /**
141
116
  * Returns the larger of two NonZeroFiniteNumber values.
117
+ *
142
118
  * @param a The first NonZeroFiniteNumber.
143
119
  * @param b The second NonZeroFiniteNumber.
144
120
  * @returns The maximum value as a NonZeroFiniteNumber.
@@ -147,6 +123,7 @@ export const NonZeroFiniteNumber = {
147
123
 
148
124
  /**
149
125
  * Rounds down a NonZeroFiniteNumber to the nearest integer.
126
+ *
150
127
  * @param x The NonZeroFiniteNumber to round down.
151
128
  * @returns The floor value as a NonZeroInt.
152
129
  */
@@ -154,6 +131,7 @@ export const NonZeroFiniteNumber = {
154
131
 
155
132
  /**
156
133
  * Rounds up a NonZeroFiniteNumber to the nearest integer.
134
+ *
157
135
  * @param x The NonZeroFiniteNumber to round up.
158
136
  * @returns The ceiling value as a NonZeroInt.
159
137
  */
@@ -161,6 +139,7 @@ export const NonZeroFiniteNumber = {
161
139
 
162
140
  /**
163
141
  * Rounds a NonZeroFiniteNumber to the nearest integer.
142
+ *
164
143
  * @param x The NonZeroFiniteNumber to round.
165
144
  * @returns The rounded value as a NonZeroInt.
166
145
  */
@@ -168,12 +147,14 @@ export const NonZeroFiniteNumber = {
168
147
 
169
148
  /**
170
149
  * Generates a random NonZeroFiniteNumber value.
150
+ *
171
151
  * @returns A random non-zero finite number.
172
152
  */
173
153
  random,
174
154
 
175
155
  /**
176
156
  * Raises a NonZeroFiniteNumber to the power of another NonZeroFiniteNumber.
157
+ *
177
158
  * @param a The base NonZeroFiniteNumber.
178
159
  * @param b The exponent NonZeroFiniteNumber.
179
160
  * @returns `a ** b` as a NonZeroFiniteNumber.
@@ -182,6 +163,7 @@ export const NonZeroFiniteNumber = {
182
163
 
183
164
  /**
184
165
  * Adds two NonZeroFiniteNumber values.
166
+ *
185
167
  * @param a The first NonZeroFiniteNumber.
186
168
  * @param b The second NonZeroFiniteNumber.
187
169
  * @returns `a + b` as a NonZeroFiniteNumber.
@@ -190,6 +172,7 @@ export const NonZeroFiniteNumber = {
190
172
 
191
173
  /**
192
174
  * Subtracts one NonZeroFiniteNumber from another.
175
+ *
193
176
  * @param a The minuend NonZeroFiniteNumber.
194
177
  * @param b The subtrahend NonZeroFiniteNumber.
195
178
  * @returns `a - b` as a NonZeroFiniteNumber.
@@ -198,6 +181,7 @@ export const NonZeroFiniteNumber = {
198
181
 
199
182
  /**
200
183
  * Multiplies two NonZeroFiniteNumber values.
184
+ *
201
185
  * @param a The first NonZeroFiniteNumber.
202
186
  * @param b The second NonZeroFiniteNumber.
203
187
  * @returns `a * b` as a NonZeroFiniteNumber.
@@ -206,6 +190,7 @@ export const NonZeroFiniteNumber = {
206
190
 
207
191
  /**
208
192
  * Divides one NonZeroFiniteNumber by another.
193
+ *
209
194
  * @param a The dividend NonZeroFiniteNumber.
210
195
  * @param b The divisor NonZeroFiniteNumber.
211
196
  * @returns `a / b` as a NonZeroFiniteNumber.
@@ -7,16 +7,16 @@ const typeNameInMessage = 'a non-zero integer';
7
7
 
8
8
  const {
9
9
  abs,
10
- min: min_,
11
- max: max_,
12
- pow,
13
10
  add,
14
- sub,
15
- mul,
11
+ castType,
16
12
  div,
17
- randomNonZero: random,
18
13
  is,
19
- castType,
14
+ max: max_,
15
+ min: min_,
16
+ mul,
17
+ pow,
18
+ randomNonZero: random,
19
+ sub,
20
20
  } = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<
21
21
  ElementType,
22
22
  number,
@@ -31,6 +31,7 @@ const {
31
31
 
32
32
  /**
33
33
  * Checks if a number is a NonZeroInt.
34
+ *
34
35
  * @param value The value to check.
35
36
  * @returns `true` if the value is a NonZeroInt, `false` otherwise.
36
37
  */
@@ -38,49 +39,24 @@ export const isNonZeroInt = is;
38
39
 
39
40
  /**
40
41
  * Casts a number to a NonZeroInt type.
42
+ *
41
43
  * @param value The value to cast.
42
44
  * @returns The value as a NonZeroInt type.
43
45
  * @throws {TypeError} If the value is not a non-zero integer.
44
- * @example
45
- * ```typescript
46
- * const x = asNonZeroInt(5); // NonZeroInt
47
- * const y = asNonZeroInt(-3); // NonZeroInt
48
- * // asNonZeroInt(0); // throws TypeError
49
- * // asNonZeroInt(1.5); // throws TypeError
50
- * ```
51
46
  */
52
47
  export const asNonZeroInt = castType;
53
48
 
54
49
  /**
55
50
  * Namespace providing type-safe arithmetic operations for non-zero integers.
56
51
  *
57
- * All operations maintain the non-zero constraint, ensuring that results are always valid NonZeroInt values.
58
- * Division operations return floor division results, and all arithmetic maintains integer precision.
59
- *
60
- * @example
61
- * ```typescript
62
- * const a = asNonZeroInt(10);
63
- * const b = asNonZeroInt(-5);
64
- *
65
- * // Arithmetic operations
66
- * const sum = NonZeroInt.add(a, b); // NonZeroInt (5)
67
- * const diff = NonZeroInt.sub(a, b); // NonZeroInt (15)
68
- * const product = NonZeroInt.mul(a, b); // NonZeroInt (-50)
69
- * const quotient = NonZeroInt.div(a, b); // NonZeroInt (-2)
70
- *
71
- * // Utility operations
72
- * const absolute = NonZeroInt.abs(b); // NonZeroInt (5)
73
- * const power = NonZeroInt.pow(a, asNonZeroInt(2)); // NonZeroInt (100)
74
- * const minimum = NonZeroInt.min(a, b); // NonZeroInt (-5)
75
- * const maximum = NonZeroInt(a, b); // NonZeroInt (10)
76
- *
77
- * // Random generation
78
- * const randomInt = NonZeroInt.random(); // NonZeroInt (random non-zero integer)
79
- * ```
52
+ * All operations maintain the non-zero constraint, ensuring that results are
53
+ * always valid NonZeroInt values. Division operations return floor division
54
+ * results, and all arithmetic maintains integer precision.
80
55
  */
81
56
  export const NonZeroInt = {
82
57
  /**
83
58
  * Type guard to check if a value is a NonZeroInt.
59
+ *
84
60
  * @param value The value to check.
85
61
  * @returns `true` if the value is a non-zero integer, `false` otherwise.
86
62
  */
@@ -88,6 +64,7 @@ export const NonZeroInt = {
88
64
 
89
65
  /**
90
66
  * Returns the absolute value of a non-zero integer.
67
+ *
91
68
  * @param a The non-zero integer.
92
69
  * @returns The absolute value as a NonZeroInt.
93
70
  */
@@ -95,6 +72,7 @@ export const NonZeroInt = {
95
72
 
96
73
  /**
97
74
  * Returns the smaller of two non-zero integers.
75
+ *
98
76
  * @param a The first non-zero integer.
99
77
  * @param b The second non-zero integer.
100
78
  * @returns The minimum value as a NonZeroInt.
@@ -103,6 +81,7 @@ export const NonZeroInt = {
103
81
 
104
82
  /**
105
83
  * Returns the larger of two non-zero integers.
84
+ *
106
85
  * @param a The first non-zero integer.
107
86
  * @param b The second non-zero integer.
108
87
  * @returns The maximum value as a NonZeroInt.
@@ -111,12 +90,14 @@ export const NonZeroInt = {
111
90
 
112
91
  /**
113
92
  * Generates a random non-zero integer.
93
+ *
114
94
  * @returns A random NonZeroInt value.
115
95
  */
116
96
  random,
117
97
 
118
98
  /**
119
99
  * Raises a non-zero integer to the power of another non-zero integer.
100
+ *
120
101
  * @param a The base non-zero integer.
121
102
  * @param b The exponent non-zero integer.
122
103
  * @returns `a ** b` as a NonZeroInt.
@@ -125,6 +106,7 @@ export const NonZeroInt = {
125
106
 
126
107
  /**
127
108
  * Adds two non-zero integers.
109
+ *
128
110
  * @param a The first non-zero integer.
129
111
  * @param b The second non-zero integer.
130
112
  * @returns `a + b` as a NonZeroInt.
@@ -133,6 +115,7 @@ export const NonZeroInt = {
133
115
 
134
116
  /**
135
117
  * Subtracts one non-zero integer from another.
118
+ *
136
119
  * @param a The minuend non-zero integer.
137
120
  * @param b The subtrahend non-zero integer.
138
121
  * @returns `a - b` as a NonZeroInt.
@@ -141,6 +124,7 @@ export const NonZeroInt = {
141
124
 
142
125
  /**
143
126
  * Multiplies two non-zero integers.
127
+ *
144
128
  * @param a The first non-zero integer.
145
129
  * @param b The second non-zero integer.
146
130
  * @returns `a * b` as a NonZeroInt.
@@ -149,6 +133,7 @@ export const NonZeroInt = {
149
133
 
150
134
  /**
151
135
  * Divides one non-zero integer by another using floor division.
136
+ *
152
137
  * @param a The dividend non-zero integer.
153
138
  * @param b The divisor non-zero integer.
154
139
  * @returns `⌊a / b⌋` as a NonZeroInt.
@@ -6,20 +6,20 @@ type ElementType = NonZeroInt16;
6
6
  const typeNameInMessage = 'a non-zero integer in [-2^15, 2^15)';
7
7
 
8
8
  const {
9
- MIN_VALUE,
10
9
  MAX_VALUE,
10
+ MIN_VALUE,
11
11
  abs,
12
- min: min_,
13
- max: max_,
14
- pow,
15
12
  add,
16
- sub,
17
- mul,
18
- div,
19
- randomNonZero: random,
20
- is,
21
13
  castType,
22
14
  clamp,
15
+ div,
16
+ is,
17
+ max: max_,
18
+ min: min_,
19
+ mul,
20
+ pow,
21
+ randomNonZero: random,
22
+ sub,
23
23
  } = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<
24
24
  ElementType,
25
25
  number,
@@ -33,7 +33,9 @@ const {
33
33
  } as const);
34
34
 
35
35
  /**
36
- * Checks if a number is a NonZeroInt16 (16-bit non-zero signed integer in the range [-2^15, 2^15) excluding 0).
36
+ * Checks if a number is a NonZeroInt16 (16-bit non-zero signed integer in the
37
+ * range [-2^15, 2^15) excluding 0).
38
+ *
37
39
  * @param value The value to check.
38
40
  * @returns `true` if the value is a NonZeroInt16, `false` otherwise.
39
41
  */
@@ -41,69 +43,49 @@ export const isNonZeroInt16 = is;
41
43
 
42
44
  /**
43
45
  * Casts a number to a NonZeroInt16 type.
46
+ *
44
47
  * @param value The value to cast.
45
48
  * @returns The value as a NonZeroInt16 type.
46
49
  * @throws {TypeError} If the value is not a non-zero integer in [-2^15, 2^15).
47
- * @example
48
- * ```typescript
49
- * const x = asNonZeroInt16(1000); // NonZeroInt16
50
- * const y = asNonZeroInt16(-1000); // NonZeroInt16
51
- * // asNonZeroInt16(0); // throws TypeError
52
- * // asNonZeroInt16(32768); // throws TypeError
53
- * ```
54
50
  */
55
51
  export const asNonZeroInt16 = castType;
56
52
 
57
53
  /**
58
- * Namespace providing type-safe arithmetic operations for 16-bit non-zero signed integers.
59
- *
60
- * All operations automatically clamp results to the valid NonZeroInt16 range [-32768, 32767]
61
- * excluding 0. This ensures that all arithmetic maintains the 16-bit non-zero signed integer
62
- * constraint, preventing zero results and overflow.
63
- *
64
- * @example
65
- * ```typescript
66
- * const a = asNonZeroInt16(30000);
67
- * const b = asNonZeroInt16(-10000);
68
- *
69
- * // Arithmetic operations with automatic clamping and non-zero constraint
70
- * const sum = NonZeroInt16.add(a, b); // NonZeroInt16 (20000)
71
- * const diff = NonZeroInt16.sub(a, b); // NonZeroInt16 (32767 - clamped to MAX_VALUE)
72
- * const product = NonZeroInt16.mul(a, b); // NonZeroInt16 (-32768 - clamped to MIN_VALUE)
73
- *
74
- * // Utility operations
75
- * const absolute = NonZeroInt16.abs(b); // NonZeroInt16 (10000)
76
- * const minimum = NonZeroInt16.min(a, b); // NonZeroInt16 (-10000)
77
- * const maximum = NonZeroInt16.max(a, b); // NonZeroInt16 (30000)
54
+ * Namespace providing type-safe arithmetic operations for 16-bit non-zero
55
+ * signed integers.
78
56
  *
79
- * // Range operations (avoiding zero)
80
- * const clamped = NonZeroInt16.clamp(0); // NonZeroInt16 (1 or -1, avoiding zero)
81
- * const random = NonZeroInt16.random(); // NonZeroInt16 (random non-zero value in range)
82
- * const power = NonZeroInt16.pow(asNonZeroInt16(2), asNonZeroInt16(10)); // NonZeroInt16 (1024)
83
- * ```
57
+ * All operations automatically clamp results to the valid NonZeroInt16 range
58
+ * [-32768, 32767] excluding 0. This ensures that all arithmetic maintains the
59
+ * 16-bit non-zero signed integer constraint, preventing zero results and
60
+ * overflow.
84
61
  */
85
62
  export const NonZeroInt16 = {
86
63
  /**
87
64
  * Type guard to check if a value is a NonZeroInt16.
65
+ *
88
66
  * @param value The value to check.
89
- * @returns `true` if the value is a 16-bit non-zero signed integer, `false` otherwise.
67
+ * @returns `true` if the value is a 16-bit non-zero signed integer, `false`
68
+ * otherwise.
90
69
  */
91
70
  is,
92
71
 
93
72
  /**
94
73
  * The minimum value for a 16-bit non-zero signed integer.
74
+ *
95
75
  * @readonly
96
76
  */
97
77
  MIN_VALUE,
98
78
 
99
79
  /**
100
80
  * The maximum value for a 16-bit non-zero signed integer.
81
+ *
101
82
  * @readonly
102
83
  */
103
84
  MAX_VALUE,
104
85
 
105
86
  /**
106
87
  * Returns the absolute value of a 16-bit non-zero signed integer.
88
+ *
107
89
  * @param a The NonZeroInt16 value.
108
90
  * @returns The absolute value as a NonZeroInt16, clamped to valid range.
109
91
  */
@@ -111,6 +93,7 @@ export const NonZeroInt16 = {
111
93
 
112
94
  /**
113
95
  * Returns the smaller of two NonZeroInt16 values.
96
+ *
114
97
  * @param a The first NonZeroInt16.
115
98
  * @param b The second NonZeroInt16.
116
99
  * @returns The minimum value as a NonZeroInt16.
@@ -119,6 +102,7 @@ export const NonZeroInt16 = {
119
102
 
120
103
  /**
121
104
  * Returns the larger of two NonZeroInt16 values.
105
+ *
122
106
  * @param a The first NonZeroInt16.
123
107
  * @param b The second NonZeroInt16.
124
108
  * @returns The maximum value as a NonZeroInt16.
@@ -127,6 +111,7 @@ export const NonZeroInt16 = {
127
111
 
128
112
  /**
129
113
  * Clamps a number to the NonZeroInt16 range (avoiding zero).
114
+ *
130
115
  * @param value The number to clamp.
131
116
  * @returns The value clamped to [-32768, 32767] \ {0} as a NonZeroInt16.
132
117
  */
@@ -134,12 +119,15 @@ export const NonZeroInt16 = {
134
119
 
135
120
  /**
136
121
  * Generates a random NonZeroInt16 value within the valid range.
137
- * @returns A random NonZeroInt16 between MIN_VALUE and MAX_VALUE (excluding 0).
122
+ *
123
+ * @returns A random NonZeroInt16 between MIN_VALUE and MAX_VALUE (excluding
124
+ * 0).
138
125
  */
139
126
  random,
140
127
 
141
128
  /**
142
129
  * Raises a NonZeroInt16 to the power of another NonZeroInt16.
130
+ *
143
131
  * @param a The base NonZeroInt16.
144
132
  * @param b The exponent NonZeroInt16.
145
133
  * @returns `a ** b` clamped to [-32768, 32767] as a NonZeroInt16.
@@ -148,6 +136,7 @@ export const NonZeroInt16 = {
148
136
 
149
137
  /**
150
138
  * Adds two NonZeroInt16 values.
139
+ *
151
140
  * @param a The first NonZeroInt16.
152
141
  * @param b The second NonZeroInt16.
153
142
  * @returns `a + b` clamped to [-32768, 32767] as a NonZeroInt16.
@@ -156,6 +145,7 @@ export const NonZeroInt16 = {
156
145
 
157
146
  /**
158
147
  * Subtracts one NonZeroInt16 from another.
148
+ *
159
149
  * @param a The minuend NonZeroInt16.
160
150
  * @param b The subtrahend NonZeroInt16.
161
151
  * @returns `a - b` clamped to [-32768, 32767] as a NonZeroInt16.
@@ -164,6 +154,7 @@ export const NonZeroInt16 = {
164
154
 
165
155
  /**
166
156
  * Multiplies two NonZeroInt16 values.
157
+ *
167
158
  * @param a The first NonZeroInt16.
168
159
  * @param b The second NonZeroInt16.
169
160
  * @returns `a * b` clamped to [-32768, 32767] as a NonZeroInt16.
@@ -172,6 +163,7 @@ export const NonZeroInt16 = {
172
163
 
173
164
  /**
174
165
  * Divides one NonZeroInt16 by another using floor division.
166
+ *
175
167
  * @param a The dividend NonZeroInt16.
176
168
  * @param b The divisor NonZeroInt16.
177
169
  * @returns `⌊a / b⌋` clamped to [-32768, 32767] as a NonZeroInt16.
@@ -11,8 +11,8 @@ describe('NonZeroInt16', () => {
11
11
  test('accepts valid non-zero int16 values', () => {
12
12
  expect(() => asNonZeroInt16(1)).not.toThrow();
13
13
  expect(() => asNonZeroInt16(-1)).not.toThrow();
14
- expect(() => asNonZeroInt16(32767)).not.toThrow(); // 2^15 - 1
15
- expect(() => asNonZeroInt16(-32768)).not.toThrow(); // -2^15
14
+ expect(() => asNonZeroInt16(32_767)).not.toThrow(); // 2^15 - 1
15
+ expect(() => asNonZeroInt16(-32_768)).not.toThrow(); // -2^15
16
16
  });
17
17
 
18
18
  test('rejects zero', () => {
@@ -20,10 +20,10 @@ describe('NonZeroInt16', () => {
20
20
  });
21
21
 
22
22
  test('rejects values outside int16 range', () => {
23
- expect(() => asNonZeroInt16(32768)).toThrow(TypeError); // 2^15
24
- expect(() => asNonZeroInt16(-32769)).toThrow(TypeError); // -2^15 - 1
25
- expect(() => asNonZeroInt16(65536)).toThrow(TypeError);
26
- expect(() => asNonZeroInt16(-65536)).toThrow(TypeError);
23
+ expect(() => asNonZeroInt16(32_768)).toThrow(TypeError); // 2^15
24
+ expect(() => asNonZeroInt16(-32_769)).toThrow(TypeError); // -2^15 - 1
25
+ expect(() => asNonZeroInt16(65_536)).toThrow(TypeError);
26
+ expect(() => asNonZeroInt16(-65_536)).toThrow(TypeError);
27
27
  });
28
28
 
29
29
  test('rejects non-integers', () => {
@@ -37,8 +37,8 @@ describe('NonZeroInt16', () => {
37
37
  test('returns the same value for valid inputs', () => {
38
38
  expect(asNonZeroInt16(5)).toBe(5);
39
39
  expect(asNonZeroInt16(-10)).toBe(-10);
40
- expect(asNonZeroInt16(32767)).toBe(32767);
41
- expect(asNonZeroInt16(-32768)).toBe(-32768);
40
+ expect(asNonZeroInt16(32_767)).toBe(32_767);
41
+ expect(asNonZeroInt16(-32_768)).toBe(-32_768);
42
42
  });
43
43
 
44
44
  test.each([
@@ -48,8 +48,8 @@ describe('NonZeroInt16', () => {
48
48
  { name: '1.2', value: 1.2 },
49
49
  { name: '-3.4', value: -3.4 },
50
50
  { name: '0', value: 0 },
51
- { name: '32768', value: 32768 },
52
- { name: '-32769', value: -32769 },
51
+ { name: '32768', value: 32_768 },
52
+ { name: '-32769', value: -32_769 },
53
53
  ] as const)(
54
54
  `asNonZeroInt16($name) should throw a TypeError`,
55
55
  ({ value }) => {
@@ -66,8 +66,8 @@ describe('NonZeroInt16', () => {
66
66
  test('correctly identifies non-zero int16 values', () => {
67
67
  expect(isNonZeroInt16(1)).toBe(true);
68
68
  expect(isNonZeroInt16(-1)).toBe(true);
69
- expect(isNonZeroInt16(32767)).toBe(true);
70
- expect(isNonZeroInt16(-32768)).toBe(true);
69
+ expect(isNonZeroInt16(32_767)).toBe(true);
70
+ expect(isNonZeroInt16(-32_768)).toBe(true);
71
71
  });
72
72
 
73
73
  test('correctly identifies zero', () => {
@@ -75,10 +75,10 @@ describe('NonZeroInt16', () => {
75
75
  });
76
76
 
77
77
  test('correctly identifies values outside int16 range', () => {
78
- expect(isNonZeroInt16(32768)).toBe(false);
79
- expect(isNonZeroInt16(-32769)).toBe(false);
80
- expect(isNonZeroInt16(65536)).toBe(false);
81
- expect(isNonZeroInt16(-65536)).toBe(false);
78
+ expect(isNonZeroInt16(32_768)).toBe(false);
79
+ expect(isNonZeroInt16(-32_769)).toBe(false);
80
+ expect(isNonZeroInt16(65_536)).toBe(false);
81
+ expect(isNonZeroInt16(-65_536)).toBe(false);
82
82
  });
83
83
 
84
84
  test('correctly identifies non-integers', () => {
@@ -100,8 +100,8 @@ describe('NonZeroInt16', () => {
100
100
 
101
101
  describe('constants', () => {
102
102
  test('MIN_VALUE and MAX_VALUE', () => {
103
- expect(NonZeroInt16.MIN_VALUE).toBe(-32768);
104
- expect(NonZeroInt16.MAX_VALUE).toBe(32767);
103
+ expect(NonZeroInt16.MIN_VALUE).toBe(-32_768);
104
+ expect(NonZeroInt16.MAX_VALUE).toBe(32_767);
105
105
  });
106
106
  });
107
107
 
@@ -124,19 +124,19 @@ describe('NonZeroInt16', () => {
124
124
 
125
125
  test('add (with clamping)', () => {
126
126
  const result = NonZeroInt16.add(
127
- asNonZeroInt16(32000),
127
+ asNonZeroInt16(32_000),
128
128
  asNonZeroInt16(1000),
129
129
  );
130
- expect(result).toBe(32767); // clamped to max
130
+ expect(result).toBe(32_767); // clamped to max
131
131
  expect(NonZeroInt16.add(a, b)).toBe(150);
132
132
  });
133
133
 
134
134
  test('sub (with clamping)', () => {
135
135
  const result = NonZeroInt16.sub(
136
- asNonZeroInt16(-32000),
136
+ asNonZeroInt16(-32_000),
137
137
  asNonZeroInt16(1000),
138
138
  );
139
- expect(result).toBe(-32768); // clamped to min
139
+ expect(result).toBe(-32_768); // clamped to min
140
140
  expect(NonZeroInt16.sub(a, b)).toBe(50);
141
141
  });
142
142
 
@@ -145,7 +145,7 @@ describe('NonZeroInt16', () => {
145
145
  asNonZeroInt16(1000),
146
146
  asNonZeroInt16(100),
147
147
  );
148
- expect(result).toBe(32767); // clamped to max
148
+ expect(result).toBe(32_767); // clamped to max
149
149
  expect(NonZeroInt16.mul(asNonZeroInt16(10), asNonZeroInt16(5))).toBe(50);
150
150
  });
151
151
 
@@ -157,7 +157,7 @@ describe('NonZeroInt16', () => {
157
157
 
158
158
  test('pow (with clamping)', () => {
159
159
  const result = NonZeroInt16.pow(asNonZeroInt16(200), asNonZeroInt16(3));
160
- expect(result).toBe(32767); // clamped to max
160
+ expect(result).toBe(32_767); // clamped to max
161
161
  expect(NonZeroInt16.pow(asNonZeroInt16(2), asNonZeroInt16(3))).toBe(8);
162
162
  });
163
163
  });
@@ -180,8 +180,8 @@ describe('NonZeroInt16', () => {
180
180
  test('generates values within NonZeroInt16 range', () => {
181
181
  for (const _ of range(10)) {
182
182
  const result = NonZeroInt16.random(-20, 20);
183
- expect(result).toBeGreaterThanOrEqual(-32768);
184
- expect(result).toBeLessThanOrEqual(32767);
183
+ expect(result).toBeGreaterThanOrEqual(-32_768);
184
+ expect(result).toBeLessThanOrEqual(32_767);
185
185
  }
186
186
  });
187
187
  });