ts-data-forge 14.6.1 → 14.6.3

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 (420) hide show
  1. package/dist/array/impl/array-utils-creation.mjs +126 -26
  2. package/dist/array/impl/array-utils-creation.mjs.map +1 -1
  3. package/dist/array/impl/array-utils-element-access.mjs +63 -30
  4. package/dist/array/impl/array-utils-element-access.mjs.map +1 -1
  5. package/dist/array/impl/array-utils-iterators.mjs +68 -52
  6. package/dist/array/impl/array-utils-iterators.mjs.map +1 -1
  7. package/dist/array/impl/array-utils-length-bounded-array-cast.mjs +109 -73
  8. package/dist/array/impl/array-utils-length-bounded-array-cast.mjs.map +1 -1
  9. package/dist/array/impl/array-utils-length-bounded-array-guard.mjs +70 -32
  10. package/dist/array/impl/array-utils-length-bounded-array-guard.mjs.map +1 -1
  11. package/dist/array/impl/array-utils-length-bounded-tuple-cast.mjs +102 -73
  12. package/dist/array/impl/array-utils-length-bounded-tuple-cast.mjs.map +1 -1
  13. package/dist/array/impl/array-utils-length-bounded-tuple-guard.mjs +77 -33
  14. package/dist/array/impl/array-utils-length-bounded-tuple-guard.mjs.map +1 -1
  15. package/dist/array/impl/array-utils-modification.mjs +75 -122
  16. package/dist/array/impl/array-utils-modification.mjs.map +1 -1
  17. package/dist/array/impl/array-utils-reducing-value.mjs +99 -149
  18. package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
  19. package/dist/array/impl/array-utils-search.mjs +112 -136
  20. package/dist/array/impl/array-utils-search.mjs.map +1 -1
  21. package/dist/array/impl/array-utils-set-op.mjs +146 -38
  22. package/dist/array/impl/array-utils-set-op.mjs.map +1 -1
  23. package/dist/array/impl/array-utils-size.mjs +10 -8
  24. package/dist/array/impl/array-utils-size.mjs.map +1 -1
  25. package/dist/array/impl/array-utils-slice-clamped.mjs +13 -50
  26. package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -1
  27. package/dist/array/impl/array-utils-slicing.mjs +92 -76
  28. package/dist/array/impl/array-utils-slicing.mjs.map +1 -1
  29. package/dist/array/impl/array-utils-transformation.mjs +291 -199
  30. package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
  31. package/dist/array/impl/array-utils-validation.mjs +53 -55
  32. package/dist/array/impl/array-utils-validation.mjs.map +1 -1
  33. package/dist/array/impl/index.mjs +17 -17
  34. package/dist/array/impl/index.mjs.map +1 -1
  35. package/dist/array/index.mjs +2 -3
  36. package/dist/array/index.mjs.map +1 -1
  37. package/dist/collections/imap-mapped.mjs +335 -292
  38. package/dist/collections/imap-mapped.mjs.map +1 -1
  39. package/dist/collections/imap.mjs +280 -239
  40. package/dist/collections/imap.mjs.map +1 -1
  41. package/dist/collections/index.mjs +7 -7
  42. package/dist/collections/index.mjs.map +1 -1
  43. package/dist/collections/iset-mapped.mjs +448 -265
  44. package/dist/collections/iset-mapped.mjs.map +1 -1
  45. package/dist/collections/iset.mjs +328 -201
  46. package/dist/collections/iset.mjs.map +1 -1
  47. package/dist/collections/queue.mjs +181 -149
  48. package/dist/collections/queue.mjs.map +1 -1
  49. package/dist/collections/stack.mjs +167 -138
  50. package/dist/collections/stack.mjs.map +1 -1
  51. package/dist/entry-point.mjs +4 -77
  52. package/dist/entry-point.mjs.map +1 -1
  53. package/dist/expect-type.mjs +69 -3
  54. package/dist/expect-type.mjs.map +1 -1
  55. package/dist/functional/async-result/async-result.mjs +2 -3
  56. package/dist/functional/async-result/async-result.mjs.map +1 -1
  57. package/dist/functional/async-result/impl/async-result-flat-map.mjs +18 -20
  58. package/dist/functional/async-result/impl/async-result-flat-map.mjs.map +1 -1
  59. package/dist/functional/async-result/impl/async-result-from-promise.mjs +9 -10
  60. package/dist/functional/async-result/impl/async-result-from-promise.mjs.map +1 -1
  61. package/dist/functional/async-result/impl/async-result-from-throwable.mjs +12 -14
  62. package/dist/functional/async-result/impl/async-result-from-throwable.mjs.map +1 -1
  63. package/dist/functional/async-result/impl/async-result-map-err.mjs +15 -18
  64. package/dist/functional/async-result/impl/async-result-map-err.mjs.map +1 -1
  65. package/dist/functional/async-result/impl/async-result-map.mjs +15 -18
  66. package/dist/functional/async-result/impl/async-result-map.mjs.map +1 -1
  67. package/dist/functional/async-result/impl/async-result-unwrap-or.mjs +35 -8
  68. package/dist/functional/async-result/impl/async-result-unwrap-or.mjs.map +1 -1
  69. package/dist/functional/async-result/impl/index.mjs +8 -7
  70. package/dist/functional/async-result/impl/index.mjs.map +1 -1
  71. package/dist/functional/async-result/impl/types.mjs +2 -2
  72. package/dist/functional/async-result/impl/types.mjs.map +1 -1
  73. package/dist/functional/async-result/index.mjs +2 -3
  74. package/dist/functional/async-result/index.mjs.map +1 -1
  75. package/dist/functional/index.mjs +7 -11
  76. package/dist/functional/index.mjs.map +1 -1
  77. package/dist/functional/match.mjs +27 -13
  78. package/dist/functional/match.mjs.map +1 -1
  79. package/dist/functional/optional/impl/index.mjs +19 -18
  80. package/dist/functional/optional/impl/index.mjs.map +1 -1
  81. package/dist/functional/optional/impl/optional-expect-to-be.mjs +15 -17
  82. package/dist/functional/optional/impl/optional-expect-to-be.mjs.map +1 -1
  83. package/dist/functional/optional/impl/optional-filter.mjs +16 -18
  84. package/dist/functional/optional/impl/optional-filter.mjs.map +1 -1
  85. package/dist/functional/optional/impl/optional-flat-map.mjs +12 -14
  86. package/dist/functional/optional/impl/optional-flat-map.mjs.map +1 -1
  87. package/dist/functional/optional/impl/optional-from-nullable.mjs +24 -3
  88. package/dist/functional/optional/impl/optional-from-nullable.mjs.map +1 -1
  89. package/dist/functional/optional/impl/optional-is-none.mjs +19 -3
  90. package/dist/functional/optional/impl/optional-is-none.mjs.map +1 -1
  91. package/dist/functional/optional/impl/optional-is-optional.mjs +24 -6
  92. package/dist/functional/optional/impl/optional-is-optional.mjs.map +1 -1
  93. package/dist/functional/optional/impl/optional-is-some.mjs +20 -3
  94. package/dist/functional/optional/impl/optional-is-some.mjs.map +1 -1
  95. package/dist/functional/optional/impl/optional-map.mjs +15 -17
  96. package/dist/functional/optional/impl/optional-map.mjs.map +1 -1
  97. package/dist/functional/optional/impl/optional-match.mjs +15 -17
  98. package/dist/functional/optional/impl/optional-match.mjs.map +1 -1
  99. package/dist/functional/optional/impl/optional-none.mjs +16 -3
  100. package/dist/functional/optional/impl/optional-none.mjs.map +1 -1
  101. package/dist/functional/optional/impl/optional-or-else.mjs +12 -14
  102. package/dist/functional/optional/impl/optional-or-else.mjs.map +1 -1
  103. package/dist/functional/optional/impl/optional-some.mjs +22 -6
  104. package/dist/functional/optional/impl/optional-some.mjs.map +1 -1
  105. package/dist/functional/optional/impl/optional-to-nullable.mjs +26 -3
  106. package/dist/functional/optional/impl/optional-to-nullable.mjs.map +1 -1
  107. package/dist/functional/optional/impl/optional-unwrap-or.mjs +11 -13
  108. package/dist/functional/optional/impl/optional-unwrap-or.mjs.map +1 -1
  109. package/dist/functional/optional/impl/optional-unwrap-throw.mjs +33 -8
  110. package/dist/functional/optional/impl/optional-unwrap-throw.mjs.map +1 -1
  111. package/dist/functional/optional/impl/optional-unwrap.mjs +6 -9
  112. package/dist/functional/optional/impl/optional-unwrap.mjs.map +1 -1
  113. package/dist/functional/optional/impl/optional-zip.mjs +34 -3
  114. package/dist/functional/optional/impl/optional-zip.mjs.map +1 -1
  115. package/dist/functional/optional/impl/tag.mjs +3 -4
  116. package/dist/functional/optional/impl/tag.mjs.map +1 -1
  117. package/dist/functional/optional/impl/types.mjs +2 -2
  118. package/dist/functional/optional/impl/types.mjs.map +1 -1
  119. package/dist/functional/optional/index.mjs +2 -3
  120. package/dist/functional/optional/index.mjs.map +1 -1
  121. package/dist/functional/optional/optional.mjs +2 -3
  122. package/dist/functional/optional/optional.mjs.map +1 -1
  123. package/dist/functional/pipe.mjs +42 -14
  124. package/dist/functional/pipe.mjs.map +1 -1
  125. package/dist/functional/result/impl/index.mjs +28 -27
  126. package/dist/functional/result/impl/index.mjs.map +1 -1
  127. package/dist/functional/result/impl/result-err.mjs +28 -6
  128. package/dist/functional/result/impl/result-err.mjs.map +1 -1
  129. package/dist/functional/result/impl/result-expect-to-be.mjs +16 -17
  130. package/dist/functional/result/impl/result-expect-to-be.mjs.map +1 -1
  131. package/dist/functional/result/impl/result-flat-map.mjs +17 -20
  132. package/dist/functional/result/impl/result-flat-map.mjs.map +1 -1
  133. package/dist/functional/result/impl/result-fold.mjs +17 -20
  134. package/dist/functional/result/impl/result-fold.mjs.map +1 -1
  135. package/dist/functional/result/impl/result-from-optional.mjs +16 -19
  136. package/dist/functional/result/impl/result-from-optional.mjs.map +1 -1
  137. package/dist/functional/result/impl/result-from-promise.mjs +35 -6
  138. package/dist/functional/result/impl/result-from-promise.mjs.map +1 -1
  139. package/dist/functional/result/impl/result-from-throwable.mjs +40 -13
  140. package/dist/functional/result/impl/result-from-throwable.mjs.map +1 -1
  141. package/dist/functional/result/impl/result-is-err.mjs +19 -3
  142. package/dist/functional/result/impl/result-is-err.mjs.map +1 -1
  143. package/dist/functional/result/impl/result-is-ok.mjs +19 -3
  144. package/dist/functional/result/impl/result-is-ok.mjs.map +1 -1
  145. package/dist/functional/result/impl/result-is-result.mjs +23 -5
  146. package/dist/functional/result/impl/result-is-result.mjs.map +1 -1
  147. package/dist/functional/result/impl/result-map-err.mjs +17 -20
  148. package/dist/functional/result/impl/result-map-err.mjs.map +1 -1
  149. package/dist/functional/result/impl/result-map.mjs +17 -20
  150. package/dist/functional/result/impl/result-map.mjs.map +1 -1
  151. package/dist/functional/result/impl/result-match.mjs +16 -20
  152. package/dist/functional/result/impl/result-match.mjs.map +1 -1
  153. package/dist/functional/result/impl/result-ok.mjs +28 -6
  154. package/dist/functional/result/impl/result-ok.mjs.map +1 -1
  155. package/dist/functional/result/impl/result-or-else.mjs +13 -14
  156. package/dist/functional/result/impl/result-or-else.mjs.map +1 -1
  157. package/dist/functional/result/impl/result-safe-try.mjs +32 -21
  158. package/dist/functional/result/impl/result-safe-try.mjs.map +1 -1
  159. package/dist/functional/result/impl/result-safe-unwrap.mjs +39 -11
  160. package/dist/functional/result/impl/result-safe-unwrap.mjs.map +1 -1
  161. package/dist/functional/result/impl/result-swap.mjs +21 -6
  162. package/dist/functional/result/impl/result-swap.mjs.map +1 -1
  163. package/dist/functional/result/impl/result-to-optional.mjs +28 -5
  164. package/dist/functional/result/impl/result-to-optional.mjs.map +1 -1
  165. package/dist/functional/result/impl/result-unwrap-err-or.mjs +12 -13
  166. package/dist/functional/result/impl/result-unwrap-err-or.mjs.map +1 -1
  167. package/dist/functional/result/impl/result-unwrap-err-throw.mjs +42 -19
  168. package/dist/functional/result/impl/result-unwrap-err-throw.mjs.map +1 -1
  169. package/dist/functional/result/impl/result-unwrap-err.mjs +31 -6
  170. package/dist/functional/result/impl/result-unwrap-err.mjs.map +1 -1
  171. package/dist/functional/result/impl/result-unwrap-ok-or.mjs +12 -13
  172. package/dist/functional/result/impl/result-unwrap-ok-or.mjs.map +1 -1
  173. package/dist/functional/result/impl/result-unwrap-ok.mjs +6 -9
  174. package/dist/functional/result/impl/result-unwrap-ok.mjs.map +1 -1
  175. package/dist/functional/result/impl/result-unwrap-throw.mjs +37 -10
  176. package/dist/functional/result/impl/result-unwrap-throw.mjs.map +1 -1
  177. package/dist/functional/result/impl/result-zip.mjs +33 -3
  178. package/dist/functional/result/impl/result-zip.mjs.map +1 -1
  179. package/dist/functional/result/impl/tag.mjs +3 -4
  180. package/dist/functional/result/impl/tag.mjs.map +1 -1
  181. package/dist/functional/result/impl/types.mjs +2 -2
  182. package/dist/functional/result/impl/types.mjs.map +1 -1
  183. package/dist/functional/result/index.mjs +2 -3
  184. package/dist/functional/result/index.mjs.map +1 -1
  185. package/dist/functional/result/result.mjs +2 -3
  186. package/dist/functional/result/result.mjs.map +1 -1
  187. package/dist/functional/ternary-result/impl/index.mjs +29 -28
  188. package/dist/functional/ternary-result/impl/index.mjs.map +1 -1
  189. package/dist/functional/ternary-result/impl/tag.mjs +5 -5
  190. package/dist/functional/ternary-result/impl/tag.mjs.map +1 -1
  191. package/dist/functional/ternary-result/impl/ternary-result-err.mjs +16 -6
  192. package/dist/functional/ternary-result/impl/ternary-result-err.mjs.map +1 -1
  193. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs +15 -18
  194. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs.map +1 -1
  195. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs +29 -33
  196. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs.map +1 -1
  197. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs +24 -26
  198. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs.map +1 -1
  199. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs +19 -6
  200. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs.map +1 -1
  201. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs +27 -12
  202. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs.map +1 -1
  203. package/dist/functional/ternary-result/impl/ternary-result-is-err.mjs +17 -3
  204. package/dist/functional/ternary-result/impl/ternary-result-is-err.mjs.map +1 -1
  205. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs +19 -3
  206. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs.map +1 -1
  207. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs +26 -6
  208. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs.map +1 -1
  209. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs +18 -3
  210. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs.map +1 -1
  211. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs +17 -18
  212. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs.map +1 -1
  213. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs +20 -23
  214. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs.map +1 -1
  215. package/dist/functional/ternary-result/impl/ternary-result-map.mjs +24 -26
  216. package/dist/functional/ternary-result/impl/ternary-result-map.mjs.map +1 -1
  217. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs +17 -6
  218. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs.map +1 -1
  219. package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs +11 -14
  220. package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs.map +1 -1
  221. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs +22 -8
  222. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs.map +1 -1
  223. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs +11 -14
  224. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs.map +1 -1
  225. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs +29 -18
  226. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs.map +1 -1
  227. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs +18 -6
  228. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs.map +1 -1
  229. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs +11 -14
  230. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs.map +1 -1
  231. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs +6 -8
  232. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs.map +1 -1
  233. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs +31 -23
  234. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs.map +1 -1
  235. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs +11 -14
  236. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs.map +1 -1
  237. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs +26 -16
  238. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs.map +1 -1
  239. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs +18 -6
  240. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs.map +1 -1
  241. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs +20 -7
  242. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs.map +1 -1
  243. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs +46 -18
  244. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs.map +1 -1
  245. package/dist/functional/ternary-result/impl/types.mjs +2 -2
  246. package/dist/functional/ternary-result/impl/types.mjs.map +1 -1
  247. package/dist/functional/ternary-result/impl/variant-name.mjs +11 -13
  248. package/dist/functional/ternary-result/impl/variant-name.mjs.map +1 -1
  249. package/dist/functional/ternary-result/index.mjs +2 -3
  250. package/dist/functional/ternary-result/index.mjs.map +1 -1
  251. package/dist/functional/ternary-result/ternary-result.mjs +2 -3
  252. package/dist/functional/ternary-result/ternary-result.mjs.map +1 -1
  253. package/dist/guard/has-key.mjs +42 -3
  254. package/dist/guard/has-key.mjs.map +1 -1
  255. package/dist/guard/index.mjs +8 -8
  256. package/dist/guard/index.mjs.map +1 -1
  257. package/dist/guard/is-non-empty-string.mjs +38 -3
  258. package/dist/guard/is-non-empty-string.mjs.map +1 -1
  259. package/dist/guard/is-non-null-object.mjs +35 -3
  260. package/dist/guard/is-non-null-object.mjs.map +1 -1
  261. package/dist/guard/is-primitive.mjs +46 -15
  262. package/dist/guard/is-primitive.mjs.map +1 -1
  263. package/dist/guard/is-record.mjs +87 -4
  264. package/dist/guard/is-record.mjs.map +1 -1
  265. package/dist/guard/is-type.mjs +404 -19
  266. package/dist/guard/is-type.mjs.map +1 -1
  267. package/dist/guard/key-is-in.mjs +41 -3
  268. package/dist/guard/key-is-in.mjs.map +1 -1
  269. package/dist/index.mjs +12 -65
  270. package/dist/index.mjs.map +1 -1
  271. package/dist/iterator/index.mjs +2 -2
  272. package/dist/iterator/index.mjs.map +1 -1
  273. package/dist/iterator/range.mjs +18 -56
  274. package/dist/iterator/range.mjs.map +1 -1
  275. package/dist/json/index.mjs +2 -2
  276. package/dist/json/index.mjs.map +1 -1
  277. package/dist/json/json.mjs +346 -105
  278. package/dist/json/json.mjs.map +1 -1
  279. package/dist/number/branded-types/finite-number.mjs +148 -137
  280. package/dist/number/branded-types/finite-number.mjs.map +1 -1
  281. package/dist/number/branded-types/index.mjs +33 -33
  282. package/dist/number/branded-types/index.mjs.map +1 -1
  283. package/dist/number/branded-types/int.mjs +245 -209
  284. package/dist/number/branded-types/int.mjs.map +1 -1
  285. package/dist/number/branded-types/int16.mjs +141 -131
  286. package/dist/number/branded-types/int16.mjs.map +1 -1
  287. package/dist/number/branded-types/int32.mjs +141 -131
  288. package/dist/number/branded-types/int32.mjs.map +1 -1
  289. package/dist/number/branded-types/negative-finite-number.mjs +155 -149
  290. package/dist/number/branded-types/negative-finite-number.mjs.map +1 -1
  291. package/dist/number/branded-types/negative-int.mjs +125 -110
  292. package/dist/number/branded-types/negative-int.mjs.map +1 -1
  293. package/dist/number/branded-types/negative-safe-int.mjs +126 -115
  294. package/dist/number/branded-types/negative-safe-int.mjs.map +1 -1
  295. package/dist/number/branded-types/non-negative-finite-number.mjs +164 -154
  296. package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
  297. package/dist/number/branded-types/non-negative-int16.mjs +137 -125
  298. package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
  299. package/dist/number/branded-types/non-negative-int32.mjs +137 -125
  300. package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
  301. package/dist/number/branded-types/non-positive-finite-number.mjs +143 -139
  302. package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -1
  303. package/dist/number/branded-types/non-positive-int.mjs +116 -99
  304. package/dist/number/branded-types/non-positive-int.mjs.map +1 -1
  305. package/dist/number/branded-types/non-positive-safe-int.mjs +118 -107
  306. package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -1
  307. package/dist/number/branded-types/non-zero-finite-number.mjs +144 -129
  308. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
  309. package/dist/number/branded-types/non-zero-int.mjs +102 -82
  310. package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
  311. package/dist/number/branded-types/non-zero-int16.mjs +118 -105
  312. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
  313. package/dist/number/branded-types/non-zero-int32.mjs +118 -105
  314. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
  315. package/dist/number/branded-types/non-zero-safe-int.mjs +121 -107
  316. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
  317. package/dist/number/branded-types/non-zero-uint16.mjs +118 -104
  318. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
  319. package/dist/number/branded-types/non-zero-uint32.mjs +118 -104
  320. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
  321. package/dist/number/branded-types/positive-finite-number.mjs +167 -160
  322. package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
  323. package/dist/number/branded-types/positive-int.mjs +260 -224
  324. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  325. package/dist/number/branded-types/positive-int16.mjs +134 -122
  326. package/dist/number/branded-types/positive-int16.mjs.map +1 -1
  327. package/dist/number/branded-types/positive-int32.mjs +134 -122
  328. package/dist/number/branded-types/positive-int32.mjs.map +1 -1
  329. package/dist/number/branded-types/positive-safe-int.mjs +291 -257
  330. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  331. package/dist/number/branded-types/positive-uint16.mjs +134 -122
  332. package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
  333. package/dist/number/branded-types/positive-uint32.mjs +134 -122
  334. package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
  335. package/dist/number/branded-types/safe-int.mjs +283 -254
  336. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  337. package/dist/number/branded-types/safe-uint.mjs +134 -123
  338. package/dist/number/branded-types/safe-uint.mjs.map +1 -1
  339. package/dist/number/branded-types/uint.mjs +248 -211
  340. package/dist/number/branded-types/uint.mjs.map +1 -1
  341. package/dist/number/branded-types/uint16.mjs +132 -121
  342. package/dist/number/branded-types/uint16.mjs.map +1 -1
  343. package/dist/number/branded-types/uint32.mjs +132 -121
  344. package/dist/number/branded-types/uint32.mjs.map +1 -1
  345. package/dist/number/enum/index.mjs +3 -3
  346. package/dist/number/enum/index.mjs.map +1 -1
  347. package/dist/number/enum/int8.mjs +146 -131
  348. package/dist/number/enum/int8.mjs.map +1 -1
  349. package/dist/number/enum/uint8.mjs +133 -119
  350. package/dist/number/enum/uint8.mjs.map +1 -1
  351. package/dist/number/index.mjs +6 -37
  352. package/dist/number/index.mjs.map +1 -1
  353. package/dist/number/num-arithmetic-types.mjs +42 -1
  354. package/dist/number/num-arithmetic-types.mjs.map +1 -1
  355. package/dist/number/num.mjs +549 -91
  356. package/dist/number/num.mjs.map +1 -1
  357. package/dist/number/refined-number-utils.mjs +294 -133
  358. package/dist/number/refined-number-utils.mjs.map +1 -1
  359. package/dist/object/index.mjs +2 -2
  360. package/dist/object/index.mjs.map +1 -1
  361. package/dist/object/object.mjs +356 -203
  362. package/dist/object/object.mjs.map +1 -1
  363. package/dist/others/cast-mutable.mjs +38 -11
  364. package/dist/others/cast-mutable.mjs.map +1 -1
  365. package/dist/others/cast-readonly.mjs +37 -11
  366. package/dist/others/cast-readonly.mjs.map +1 -1
  367. package/dist/others/debounce-function.mjs +22 -11
  368. package/dist/others/debounce-function.mjs.map +1 -1
  369. package/dist/others/fast-deep-equal.mjs +70 -51
  370. package/dist/others/fast-deep-equal.mjs.map +1 -1
  371. package/dist/others/if-then.mjs +31 -4
  372. package/dist/others/if-then.mjs.map +1 -1
  373. package/dist/others/index.mjs +10 -10
  374. package/dist/others/index.mjs.map +1 -1
  375. package/dist/others/map-nullable.mjs +11 -13
  376. package/dist/others/map-nullable.mjs.map +1 -1
  377. package/dist/others/memoize-function.mjs +14 -16
  378. package/dist/others/memoize-function.mjs.map +1 -1
  379. package/dist/others/tuple.mjs +51 -3
  380. package/dist/others/tuple.mjs.map +1 -1
  381. package/dist/others/unknown-to-string.mjs +91 -47
  382. package/dist/others/unknown-to-string.mjs.map +1 -1
  383. package/dist/promise/index.mjs +2 -2
  384. package/dist/promise/index.mjs.map +1 -1
  385. package/dist/promise/promise.mjs +49 -8
  386. package/dist/promise/promise.mjs.map +1 -1
  387. package/dist/string/index.mjs +2 -2
  388. package/dist/string/index.mjs.map +1 -1
  389. package/dist/string/str.mjs +250 -83
  390. package/dist/string/str.mjs.map +1 -1
  391. package/dist/types.mjs +2 -1
  392. package/dist/types.mjs.map +1 -1
  393. package/package.json +6 -7
  394. package/src/guard/is-type.test.mts +2 -2
  395. package/src/number/branded-types/finite-number.test.mts +1 -1
  396. package/src/number/branded-types/int.test.mts +1 -1
  397. package/src/number/branded-types/int16.test.mts +1 -1
  398. package/src/number/branded-types/int32.test.mts +1 -1
  399. package/src/number/branded-types/non-negative-finite-number.test.mts +1 -1
  400. package/src/number/branded-types/non-negative-int16.test.mts +1 -1
  401. package/src/number/branded-types/non-negative-int32.test.mts +1 -1
  402. package/src/number/branded-types/non-zero-finite-number.test.mts +1 -1
  403. package/src/number/branded-types/non-zero-int.test.mts +1 -1
  404. package/src/number/branded-types/non-zero-int16.test.mts +1 -1
  405. package/src/number/branded-types/non-zero-int32.test.mts +1 -1
  406. package/src/number/branded-types/non-zero-safe-int.test.mts +1 -1
  407. package/src/number/branded-types/non-zero-uint16.test.mts +1 -1
  408. package/src/number/branded-types/non-zero-uint32.test.mts +1 -1
  409. package/src/number/branded-types/positive-finite-number.test.mts +1 -1
  410. package/src/number/branded-types/positive-int.test.mts +1 -1
  411. package/src/number/branded-types/positive-int16.test.mts +1 -1
  412. package/src/number/branded-types/positive-int32.test.mts +1 -1
  413. package/src/number/branded-types/positive-safe-int.test.mts +1 -1
  414. package/src/number/branded-types/positive-uint16.test.mts +1 -1
  415. package/src/number/branded-types/positive-uint32.test.mts +1 -1
  416. package/src/number/branded-types/safe-int.test.mts +1 -1
  417. package/src/number/branded-types/safe-uint.test.mts +1 -1
  418. package/src/number/branded-types/uint.test.mts +1 -1
  419. package/src/number/branded-types/uint16.test.mts +1 -1
  420. package/src/number/branded-types/uint32.test.mts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"str.mjs","sources":["../../src/string/str.mts"],"sourcesContent":["import {\n type BoundedLengthString,\n type FixedLengthString,\n type MaxLengthString,\n type MinLengthString,\n type NonEmptyString,\n type SupportedLength,\n} from 'ts-type-forge';\n\n/**\n * Namespace providing type guards and runtime-checked casts for the branded\n * length-constrained string types (`MinLengthString`, `MaxLengthString`,\n * `BoundedLengthString`, `FixedLengthString`).\n *\n * Lengths are measured in UTF-16 code units (the same unit as\n * `String.prototype.length`), so characters outside the Basic Multilingual\n * Plane (e.g. emoji) count as 2.\n */\nexport namespace Str {\n /**\n * Type guard that checks if a string has at least `minLength` characters.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows the input to `MinLengthString<MinLength>` while preserving the\n * original string type (e.g. literal types) via intersection.\n * - The result participates in the length-constraint subtyping relation: for\n * example, a value narrowed to `MinLengthString<3>` is assignable to\n * `MinLengthString<1>` (= `NonEmptyString`).\n *\n * @example\n *\n * ```ts\n * const input: string = 'very-secret-password';\n *\n * assert.isTrue(Str.isMinLengthString(12, input));\n *\n * assert.isFalse(Str.isMinLengthString(12, 'short'));\n *\n * if (Str.isMinLengthString(12, input)) {\n * const nonEmpty: NonEmptyString = input; // OK (12 >= 1)\n *\n * assert.isTrue(nonEmpty.length >= 12);\n * }\n * ```\n *\n * @template MinLength - The minimum number of characters (inclusive).\n * @template S - The input string type (literal types are preserved).\n * @param minLength - The minimum number of characters (inclusive).\n * @param s - The string to check.\n * @returns `true` if `s.length >= minLength`, `false` otherwise. When `true`,\n * TypeScript narrows `s` to `MinLengthString<MinLength> & S`.\n */\n export const isMinLengthString = <\n MinLength extends SupportedLength,\n S extends string,\n >(\n minLength: MinLength,\n s: S,\n ): s is MinLengthString<MinLength> & S => s.length >= minLength;\n\n /**\n * Type guard that checks if a string has at most `maxLength` characters.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows the input to `MaxLengthString<MaxLength>` while preserving the\n * original string type (e.g. literal types) via intersection.\n * - The result participates in the length-constraint subtyping relation: for\n * example, a value narrowed to `MaxLengthString<16>` is assignable to\n * `MaxLengthString<32>`.\n *\n * @example\n *\n * ```ts\n * const input: string = 'noshiro';\n *\n * assert.isTrue(Str.isMaxLengthString(32, input));\n *\n * assert.isFalse(Str.isMaxLengthString(3, input));\n *\n * if (Str.isMaxLengthString(32, input)) {\n * const relaxed: MaxLengthString<64> = input; // OK (32 <= 64)\n *\n * assert.isTrue(relaxed.length <= 32);\n * }\n * ```\n *\n * @template MaxLength - The maximum number of characters (inclusive).\n * @template S - The input string type (literal types are preserved).\n * @param maxLength - The maximum number of characters (inclusive).\n * @param s - The string to check.\n * @returns `true` if `s.length <= maxLength`, `false` otherwise. When `true`,\n * TypeScript narrows `s` to `MaxLengthString<MaxLength> & S`.\n */\n export const isMaxLengthString = <\n MaxLength extends SupportedLength,\n S extends string,\n >(\n maxLength: MaxLength,\n s: S,\n ): s is MaxLengthString<MaxLength> & S => s.length <= maxLength;\n\n /**\n * Type guard that checks if a string's length is within the inclusive range\n * `[minLength, maxLength]`.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows the input to `BoundedLengthString<MinLength, MaxLength>` while\n * preserving the original string type (e.g. literal types) via intersection.\n * - Since `BoundedLengthString` is the intersection of `MinLengthString` and\n * `MaxLengthString`, the narrowed value is assignable to both, and both\n * bounds can be weakened independently.\n *\n * @example\n *\n * ```ts\n * const input: string = 'user-12345678';\n *\n * assert.isTrue(Str.isBoundedLengthString(8, 16, input));\n *\n * assert.isFalse(Str.isBoundedLengthString(8, 16, 'user'));\n *\n * if (Str.isBoundedLengthString(8, 16, input)) {\n * const userId: BoundedLengthString<1, 255> = input; // OK ([8, 16] ⊆ [1, 255])\n *\n * assert.isTrue(userId.length >= 8 && userId.length <= 16);\n * }\n * ```\n *\n * @template MinLength - The minimum number of characters (inclusive).\n * @template MaxLength - The maximum number of characters (inclusive).\n * @template S - The input string type (literal types are preserved).\n * @param minLength - The minimum number of characters (inclusive).\n * @param maxLength - The maximum number of characters (inclusive).\n * @param s - The string to check.\n * @returns `true` if `minLength <= s.length && s.length <= maxLength`, `false`\n * otherwise. When `true`, TypeScript narrows `s` to\n * `BoundedLengthString<MinLength, MaxLength> & S`.\n */\n export const isBoundedLengthString = <\n MinLength extends SupportedLength,\n MaxLength extends SupportedLength,\n S extends string,\n >(\n minLength: MinLength,\n maxLength: MaxLength,\n s: S,\n ): s is BoundedLengthString<MinLength, MaxLength> & S =>\n s.length >= minLength && s.length <= maxLength;\n\n /**\n * Type guard that checks if a string has exactly `length` characters.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows the input to `FixedLengthString<Length>` while preserving the\n * original string type (e.g. literal types) via intersection.\n * - Since `FixedLengthString<Length>` is defined as\n * `BoundedLengthString<Length, Length>`, the narrowed value is assignable to\n * any `MinLengthString<N>` with `N <= Length` and any `MaxLengthString<N>`\n * with `N >= Length`.\n *\n * @example\n *\n * ```ts\n * const input: string = 'JP';\n *\n * assert.isTrue(Str.isFixedLengthString(2, input));\n *\n * assert.isFalse(Str.isFixedLengthString(3, input));\n *\n * if (Str.isFixedLengthString(2, input)) {\n * const atMost5: MaxLengthString<5> = input; // OK (2 <= 5)\n *\n * assert.isTrue(atMost5.length === 2);\n * }\n * ```\n *\n * @template Length - The exact number of characters.\n * @template S - The input string type (literal types are preserved).\n * @param length - The exact number of characters.\n * @param s - The string to check.\n * @returns `true` if `s.length === length`, `false` otherwise. When `true`,\n * TypeScript narrows `s` to `FixedLengthString<Length> & S`.\n */\n export const isFixedLengthString = <\n Length extends SupportedLength,\n S extends string,\n >(\n length: Length,\n s: S,\n ): s is FixedLengthString<Length> & S => s.length === length;\n\n /**\n * Casts a string to `MinLengthString<MinLength>` after checking that it has\n * at least `minLength` characters.\n *\n * Use this instead of writing `s as unknown as MinLengthString<N>`: the\n * length is verified at runtime, and the original string type (e.g. literal\n * types) is preserved via intersection.\n *\n * Supports a curried overload: calling it with only `minLength` returns a\n * function that casts a string, which is convenient for `pipe`/`map`.\n *\n * @example\n *\n * ```ts\n * const password = Str.asMinLengthString(12, 'very-secret-password');\n *\n * const nonEmpty: NonEmptyString = password; // OK (>= 1)\n *\n * assert.isTrue(nonEmpty.length >= 12);\n *\n * // curried version\n * const asPassword = Str.asMinLengthString(12);\n *\n * assert.strictEqual(asPassword('another-secret'), 'another-secret');\n *\n * assert.throws(() => Str.asMinLengthString(12, 'short')); // length 5 < 12\n * ```\n *\n * @template MinLength - The minimum number of characters (inclusive).\n * @template S - The input string type (literal types are preserved).\n * @param minLength - The minimum number of characters (inclusive).\n * @param s - The string to cast.\n * @returns `s` typed as `MinLengthString<MinLength> & S`.\n * @throws {TypeError} If `s.length < minLength`.\n */\n export function asMinLengthString<\n MinLength extends SupportedLength,\n S extends string,\n >(minLength: MinLength, s: S): MinLengthString<MinLength> & S;\n\n // Curried version\n export function asMinLengthString<MinLength extends SupportedLength>(\n minLength: MinLength,\n ): <S extends string>(s: S) => MinLengthString<MinLength> & S;\n\n export function asMinLengthString(\n ...args:\n | readonly [minLength: SupportedLength, s: string]\n | readonly [minLength: SupportedLength]\n ): string | ((s: string) => string) {\n switch (args.length) {\n case 2:\n return asMinLengthStringImpl(...args);\n\n case 1:\n return (s) => asMinLengthStringImpl(args[0], s);\n }\n }\n\n const asMinLengthStringImpl = (\n minLength: SupportedLength,\n s: string,\n ): string => {\n const actualLength = s.length;\n\n if (!isMinLengthString(minLength, s)) {\n throw new TypeError(\n `Expected a string of length >= ${minLength}, got a string of length ${actualLength}`,\n );\n }\n\n return s;\n };\n\n /**\n * Casts a string to `MaxLengthString<MaxLength>` after checking that it has\n * at most `maxLength` characters.\n *\n * Use this instead of writing `s as unknown as MaxLengthString<N>`: the\n * length is verified at runtime, and the original string type (e.g. literal\n * types) is preserved via intersection.\n *\n * Supports a curried overload: calling it with only `maxLength` returns a\n * function that casts a string, which is convenient for `pipe`/`map`.\n *\n * @example\n *\n * ```ts\n * const userName = Str.asMaxLengthString(32, 'noshiro');\n *\n * const relaxed: MaxLengthString<64> = userName; // OK (32 <= 64)\n *\n * assert.isTrue(relaxed.length <= 32);\n *\n * // curried version\n * const asUserName = Str.asMaxLengthString(32);\n *\n * assert.strictEqual(asUserName('another-user'), 'another-user');\n *\n * assert.throws(() => Str.asMaxLengthString(3, 'noshiro')); // length 7 > 3\n * ```\n *\n * @template MaxLength - The maximum number of characters (inclusive).\n * @template S - The input string type (literal types are preserved).\n * @param maxLength - The maximum number of characters (inclusive).\n * @param s - The string to cast.\n * @returns `s` typed as `MaxLengthString<MaxLength> & S`.\n * @throws {TypeError} If `s.length > maxLength`.\n */\n export function asMaxLengthString<\n MaxLength extends SupportedLength,\n S extends string,\n >(maxLength: MaxLength, s: S): MaxLengthString<MaxLength> & S;\n\n // Curried version\n export function asMaxLengthString<MaxLength extends SupportedLength>(\n maxLength: MaxLength,\n ): <S extends string>(s: S) => MaxLengthString<MaxLength> & S;\n\n export function asMaxLengthString(\n ...args:\n | readonly [maxLength: SupportedLength, s: string]\n | readonly [maxLength: SupportedLength]\n ): string | ((s: string) => string) {\n switch (args.length) {\n case 2:\n return asMaxLengthStringImpl(...args);\n\n case 1:\n return (s) => asMaxLengthStringImpl(args[0], s);\n }\n }\n\n const asMaxLengthStringImpl = (\n maxLength: SupportedLength,\n s: string,\n ): string => {\n const actualLength = s.length;\n\n if (!isMaxLengthString(maxLength, s)) {\n throw new TypeError(\n `Expected a string of length <= ${maxLength}, got a string of length ${actualLength}`,\n );\n }\n\n return s;\n };\n\n /**\n * Casts a string to `BoundedLengthString<MinLength, MaxLength>` after\n * checking that its length is within the inclusive range\n * `[minLength, maxLength]`.\n *\n * Use this instead of writing `s as unknown as BoundedLengthString<M, N>`:\n * the length is verified at runtime, and the original string type (e.g.\n * literal types) is preserved via intersection.\n *\n * Supports a curried overload: calling it with only `minLength` and\n * `maxLength` returns a function that casts a string, which is convenient for\n * `pipe`/`map`.\n *\n * @example\n *\n * ```ts\n * const userId = Str.asBoundedLengthString(8, 16, 'user-12345678');\n *\n * const relaxed: BoundedLengthString<1, 255> = userId; // OK ([8, 16] ⊆ [1, 255])\n *\n * assert.isTrue(relaxed.length >= 8 && relaxed.length <= 16);\n *\n * // curried version\n * const asUserId = Str.asBoundedLengthString(8, 16);\n *\n * assert.strictEqual(asUserId('user-87654321'), 'user-87654321');\n *\n * assert.throws(() => Str.asBoundedLengthString(8, 16, 'user')); // length 4 < 8\n * ```\n *\n * @template MinLength - The minimum number of characters (inclusive).\n * @template MaxLength - The maximum number of characters (inclusive).\n * @template S - The input string type (literal types are preserved).\n * @param minLength - The minimum number of characters (inclusive).\n * @param maxLength - The maximum number of characters (inclusive).\n * @param s - The string to cast.\n * @returns `s` typed as `BoundedLengthString<MinLength, MaxLength> & S`.\n * @throws {TypeError} If `s.length < minLength` or `s.length > maxLength`.\n */\n export function asBoundedLengthString<\n MinLength extends SupportedLength,\n MaxLength extends SupportedLength,\n S extends string,\n >(\n minLength: MinLength,\n maxLength: MaxLength,\n s: S,\n ): BoundedLengthString<MinLength, MaxLength> & S;\n\n // Curried version\n export function asBoundedLengthString<\n MinLength extends SupportedLength,\n MaxLength extends SupportedLength,\n >(\n minLength: MinLength,\n maxLength: MaxLength,\n ): <S extends string>(s: S) => BoundedLengthString<MinLength, MaxLength> & S;\n\n export function asBoundedLengthString(\n ...args:\n | readonly [\n minLength: SupportedLength,\n maxLength: SupportedLength,\n s: string,\n ]\n | readonly [minLength: SupportedLength, maxLength: SupportedLength]\n ): string | ((s: string) => string) {\n switch (args.length) {\n case 3:\n return asBoundedLengthStringImpl(...args);\n\n case 2:\n return (s) => asBoundedLengthStringImpl(...args, s);\n }\n }\n\n const asBoundedLengthStringImpl = (\n minLength: SupportedLength,\n maxLength: SupportedLength,\n s: string,\n ): string => {\n const actualLength = s.length;\n\n if (!isBoundedLengthString(minLength, maxLength, s)) {\n throw new TypeError(\n `Expected a string of length in [${minLength}, ${maxLength}], got a string of length ${actualLength}`,\n );\n }\n\n return s;\n };\n\n /**\n * Casts a string to `FixedLengthString<Length>` after checking that it has\n * exactly `length` characters.\n *\n * Use this instead of writing `s as unknown as FixedLengthString<N>`: the\n * length is verified at runtime, and the original string type (e.g. literal\n * types) is preserved via intersection.\n *\n * Supports a curried overload: calling it with only `length` returns a\n * function that casts a string, which is convenient for `pipe`/`map`.\n *\n * @example\n *\n * ```ts\n * const countryCode = Str.asFixedLengthString(2, 'JP');\n *\n * const atMost5: MaxLengthString<5> = countryCode; // OK (2 <= 5)\n *\n * assert.isTrue(atMost5.length === 2);\n *\n * // curried version\n * const asCountryCode = Str.asFixedLengthString(2);\n *\n * assert.strictEqual(asCountryCode('US'), 'US');\n *\n * assert.throws(() => Str.asFixedLengthString(3, 'JP')); // length 2 !== 3\n * ```\n *\n * @template Length - The exact number of characters.\n * @template S - The input string type (literal types are preserved).\n * @param length - The exact number of characters.\n * @param s - The string to cast.\n * @returns `s` typed as `FixedLengthString<Length> & S`.\n * @throws {TypeError} If `s.length !== length`.\n */\n export function asFixedLengthString<\n Length extends SupportedLength,\n S extends string,\n >(length: Length, s: S): FixedLengthString<Length> & S;\n\n // Curried version\n export function asFixedLengthString<Length extends SupportedLength>(\n length: Length,\n ): <S extends string>(s: S) => FixedLengthString<Length> & S;\n\n export function asFixedLengthString(\n ...args:\n | readonly [length: SupportedLength, s: string]\n | readonly [length: SupportedLength]\n ): string | ((s: string) => string) {\n switch (args.length) {\n case 2:\n return asFixedLengthStringImpl(...args);\n\n case 1:\n return (s) => asFixedLengthStringImpl(args[0], s);\n }\n }\n\n const asFixedLengthStringImpl = (\n length: SupportedLength,\n s: string,\n ): string => {\n const actualLength = s.length;\n\n if (!isFixedLengthString(length, s)) {\n throw new TypeError(\n `Expected a string of length ${length}, got a string of length ${actualLength}`,\n );\n }\n\n return s;\n };\n\n /**\n * Casts a string to `NonEmptyString` after checking that it has at least one\n * character.\n *\n * `NonEmptyString` is an alias of `MinLengthString<1>`, so this is the\n * length-1 specialization of {@link asMinLengthString}. Use this instead of\n * writing `s as unknown as NonEmptyString`: the length is verified at\n * runtime, and the original string type (e.g. literal types) is preserved\n * via intersection.\n *\n * @example\n *\n * ```ts\n * const name = Str.asNonEmptyString('noshiro');\n *\n * const nonEmpty: NonEmptyString = name; // OK\n *\n * assert.isTrue(nonEmpty.length >= 1);\n *\n * assert.throws(() => Str.asNonEmptyString('')); // length 0 < 1\n * ```\n *\n * @template S - The input string type (literal types are preserved).\n * @param s - The string to cast.\n * @returns `s` typed as `NonEmptyString & S`.\n * @throws {TypeError} If `s` is empty.\n */\n export const asNonEmptyString = <S extends string>(\n s: S,\n ): NonEmptyString & S => {\n if (!isMinLengthString(1, s)) {\n throw new TypeError('Expected a non-empty string, got an empty string');\n }\n\n return s;\n };\n}\n"],"names":["Str"],"mappings":"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"}
1
+ {"version":3,"file":"str.mjs","sourceRoot":"","sources":["../../src/string/str.mts"],"names":[],"mappings":"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"}
package/dist/types.mjs CHANGED
@@ -1,2 +1,3 @@
1
+ export {};
1
2
 
2
- //# sourceMappingURL=types.mjs.map
3
+ //# sourceMappingURL=types.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.mts"],"names":[],"mappings":";AAkIA,oBAAoB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-data-forge",
3
- "version": "14.6.1",
3
+ "version": "14.6.3",
4
4
  "private": false,
5
5
  "keywords": [
6
6
  "typescript",
@@ -42,21 +42,20 @@
42
42
  "devDependencies": {
43
43
  "@emotion/react": "11.14.0",
44
44
  "@emotion/styled": "11.14.1",
45
- "@mui/material": "9.3.1",
45
+ "@mui/material": "9.4.0",
46
46
  "@types/react": "19.2.18",
47
47
  "@vitest/browser-playwright": "4.1.11",
48
48
  "dedent": "1.7.2",
49
- "eslint-config-typed": "5.10.1",
50
- "eslint-plugin-ts-fortress": "1.0.6",
51
- "eslint-plugin-ts-type-forge": "0.7.2",
49
+ "eslint-config-typed": "5.11.1",
50
+ "eslint-plugin-ts-fortress": "1.2.0",
51
+ "eslint-plugin-ts-type-forge": "0.8.1",
52
52
  "immer": "11.1.18",
53
53
  "playwright": "1.62.1",
54
54
  "prettier": "3.9.6",
55
55
  "prettier-plugin-organize-imports": "4.3.0",
56
56
  "prettier-plugin-packagejson": "3.0.2",
57
57
  "react": "19.2.8",
58
- "rollup": "4.62.5",
59
- "ts-repo-utils": "10.4.0",
58
+ "ts-repo-utils": "10.6.0",
60
59
  "typedoc": "0.28.20",
61
60
  "typedoc-github-theme": "0.4.0",
62
61
  "vite": "8.2.2"
@@ -124,7 +124,7 @@ describe(isString, () => {
124
124
 
125
125
  assert.isTrue(isString('123'));
126
126
 
127
- assert.isTrue(isString(`template`));
127
+ assert.isTrue(isString('template'));
128
128
  });
129
129
 
130
130
  test('should return false for non-strings', () => {
@@ -408,7 +408,7 @@ describe(isNotString, () => {
408
408
 
409
409
  assert.isFalse(isNotString('123'));
410
410
 
411
- assert.isFalse(isNotString(`template`));
411
+ assert.isFalse(isNotString('template'));
412
412
  });
413
413
 
414
414
  test('should return true for non-string values', () => {
@@ -42,7 +42,7 @@ describe('FiniteNumber test', () => {
42
42
  { name: 'Number.POSITIVE_INFINITY', value: Number.POSITIVE_INFINITY },
43
43
  { name: 'Number.NEGATIVE_INFINITY', value: Number.NEGATIVE_INFINITY },
44
44
  ] as const)(
45
- `asFiniteNumber($name) should throw a TypeError`,
45
+ 'asFiniteNumber($name) should throw a TypeError',
46
46
  ({ value }) => {
47
47
  expect(() => asFiniteNumber(value)).toThrow(
48
48
  new TypeError(`Expected a finite number, got: ${value}`),
@@ -47,7 +47,7 @@ describe('Int test', () => {
47
47
  { name: 'Number.NEGATIVE_INFINITY', value: Number.NEGATIVE_INFINITY },
48
48
  { name: '1.2', value: 1.2 },
49
49
  { name: '-3.4', value: -3.4 },
50
- ] as const)(`asInt($name) should throw a TypeError`, ({ value }) => {
50
+ ] as const)('asInt($name) should throw a TypeError', ({ value }) => {
51
51
  expect(() => asInt(value)).toThrow(
52
52
  new TypeError(`Expected an integer, got: ${value}`),
53
53
  );
@@ -57,7 +57,7 @@ describe('Int16 test', () => {
57
57
  { name: 'Number.NEGATIVE_INFINITY', value: Number.NEGATIVE_INFINITY },
58
58
  { name: '1.2', value: 1.2 },
59
59
  { name: '-3.4', value: -3.4 },
60
- ] as const)(`asInt16($name) should throw a TypeError`, ({ value }) => {
60
+ ] as const)('asInt16($name) should throw a TypeError', ({ value }) => {
61
61
  expect(() => asInt16(value)).toThrow(
62
62
  new TypeError(`Expected an integer in [-2^15, 2^15), got: ${value}`),
63
63
  );
@@ -57,7 +57,7 @@ describe('Int32 test', () => {
57
57
  { name: 'Number.NEGATIVE_INFINITY', value: Number.NEGATIVE_INFINITY },
58
58
  { name: '1.2', value: 1.2 },
59
59
  { name: '-3.4', value: -3.4 },
60
- ] as const)(`asInt32($name) should throw a TypeError`, ({ value }) => {
60
+ ] as const)('asInt32($name) should throw a TypeError', ({ value }) => {
61
61
  expect(() => asInt32(value)).toThrow(
62
62
  new TypeError(`Expected an integer in [-2^31, 2^31), got: ${value}`),
63
63
  );
@@ -56,7 +56,7 @@ describe('NonNegativeFiniteNumber test', () => {
56
56
  { name: 'Number.NEGATIVE_INFINITY', value: Number.NEGATIVE_INFINITY },
57
57
  { name: '-1.2', value: -1.2 },
58
58
  ] as const)(
59
- `asNonNegativeFiniteNumber($name) should throw a TypeError`,
59
+ 'asNonNegativeFiniteNumber($name) should throw a TypeError',
60
60
  ({ value }) => {
61
61
  expect(() => asNonNegativeFiniteNumber(value)).toThrow(
62
62
  new TypeError(`Expected a non-negative finite number, got: ${value}`),
@@ -66,7 +66,7 @@ describe('NonNegativeInt16 test', () => {
66
66
  { name: '-1', value: -1 },
67
67
  { name: '32768', value: 32_768 },
68
68
  ] as const)(
69
- `asNonNegativeInt16($name) should throw a TypeError`,
69
+ 'asNonNegativeInt16($name) should throw a TypeError',
70
70
  ({ value }) => {
71
71
  expect(() => asNonNegativeInt16(value)).toThrow(
72
72
  new TypeError(
@@ -66,7 +66,7 @@ describe('NonNegativeInt32 test', () => {
66
66
  { name: '-1', value: -1 },
67
67
  { name: '2147483648', value: 2_147_483_648 },
68
68
  ] as const)(
69
- `asNonNegativeInt32($name) should throw a TypeError`,
69
+ 'asNonNegativeInt32($name) should throw a TypeError',
70
70
  ({ value }) => {
71
71
  expect(() => asNonNegativeInt32(value)).toThrow(
72
72
  new TypeError(
@@ -58,7 +58,7 @@ describe('NonZeroFiniteNumber test', () => {
58
58
  { name: 'Number.NEGATIVE_INFINITY', value: Number.NEGATIVE_INFINITY },
59
59
  { name: '0', value: 0 },
60
60
  ] as const)(
61
- `asNonZeroFiniteNumber($name) should throw a TypeError`,
61
+ 'asNonZeroFiniteNumber($name) should throw a TypeError',
62
62
  ({ value }) => {
63
63
  expect(() => asNonZeroFiniteNumber(value)).toThrow(
64
64
  new TypeError(`Expected a non-zero finite number, got: ${value}`),
@@ -51,7 +51,7 @@ describe('NonZeroInt test', () => {
51
51
  { name: '1.2', value: 1.2 },
52
52
  { name: '-3.4', value: -3.4 },
53
53
  { name: '0', value: 0 },
54
- ] as const)(`asNonZeroInt($name) should throw a TypeError`, ({ value }) => {
54
+ ] as const)('asNonZeroInt($name) should throw a TypeError', ({ value }) => {
55
55
  expect(() => asNonZeroInt(value)).toThrow(
56
56
  new TypeError(`Expected a non-zero integer, got: ${value}`),
57
57
  );
@@ -64,7 +64,7 @@ describe('NonZeroInt16 test', () => {
64
64
  { name: '32768', value: 32_768 },
65
65
  { name: '-32769', value: -32_769 },
66
66
  ] as const)(
67
- `asNonZeroInt16($name) should throw a TypeError`,
67
+ 'asNonZeroInt16($name) should throw a TypeError',
68
68
  ({ value }) => {
69
69
  expect(() => asNonZeroInt16(value)).toThrow(
70
70
  new TypeError(
@@ -64,7 +64,7 @@ describe('NonZeroInt32 test', () => {
64
64
  { name: '2147483648', value: 2_147_483_648 },
65
65
  { name: '-2147483649', value: -2_147_483_649 },
66
66
  ] as const)(
67
- `asNonZeroInt32($name) should throw a TypeError`,
67
+ 'asNonZeroInt32($name) should throw a TypeError',
68
68
  ({ value }) => {
69
69
  expect(() => asNonZeroInt32(value)).toThrow(
70
70
  new TypeError(
@@ -74,7 +74,7 @@ describe('NonZeroSafeInt test', () => {
74
74
  { name: '-3.4', value: -3.4 },
75
75
  { name: '0', value: 0 },
76
76
  ] as const)(
77
- `asNonZeroSafeInt($name) should throw a TypeError`,
77
+ 'asNonZeroSafeInt($name) should throw a TypeError',
78
78
  ({ value }) => {
79
79
  expect(() => asNonZeroSafeInt(value)).toThrow(
80
80
  new TypeError(`Expected a non-zero safe integer, got: ${value}`),
@@ -68,7 +68,7 @@ describe('NonZeroUint16 test', () => {
68
68
  { name: '-1', value: -1 },
69
69
  { name: '65536', value: 65_536 },
70
70
  ] as const)(
71
- `asNonZeroUint16($name) should throw a TypeError`,
71
+ 'asNonZeroUint16($name) should throw a TypeError',
72
72
  ({ value }) => {
73
73
  expect(() => asNonZeroUint16(value)).toThrow(
74
74
  new TypeError(
@@ -68,7 +68,7 @@ describe('NonZeroUint32 test', () => {
68
68
  { name: '-1', value: -1 },
69
69
  { name: '4294967296', value: 4_294_967_296 },
70
70
  ] as const)(
71
- `asNonZeroUint32($name) should throw a TypeError`,
71
+ 'asNonZeroUint32($name) should throw a TypeError',
72
72
  ({ value }) => {
73
73
  expect(() => asNonZeroUint32(value)).toThrow(
74
74
  new TypeError(
@@ -62,7 +62,7 @@ describe('PositiveFiniteNumber test', () => {
62
62
  { name: 'Number.NEGATIVE_INFINITY', value: Number.NEGATIVE_INFINITY },
63
63
  { name: '-1.2', value: -1.2 },
64
64
  ] as const)(
65
- `asPositiveFiniteNumber($name) should throw a TypeError`,
65
+ 'asPositiveFiniteNumber($name) should throw a TypeError',
66
66
  ({ value }) => {
67
67
  expect(() => asPositiveFiniteNumber(value)).toThrow(
68
68
  new TypeError(`Expected a positive finite number, got: ${value}`),
@@ -59,7 +59,7 @@ describe('PositiveInt test', () => {
59
59
  { name: '0', value: 0 },
60
60
  { name: '-1', value: -1 },
61
61
  ] as const)(
62
- `asPositiveInt($name) should throw a TypeError`,
62
+ 'asPositiveInt($name) should throw a TypeError',
63
63
  ({ value }) => {
64
64
  expect(() => asPositiveInt(value)).toThrow(
65
65
  new TypeError(`Expected a positive integer, got: ${value}`),
@@ -66,7 +66,7 @@ describe('PositiveInt16 test', () => {
66
66
  { name: '-1', value: -1 },
67
67
  { name: '32768', value: 32_768 },
68
68
  ] as const)(
69
- `asPositiveInt16($name) should throw a TypeError`,
69
+ 'asPositiveInt16($name) should throw a TypeError',
70
70
  ({ value }) => {
71
71
  expect(() => asPositiveInt16(value)).toThrow(
72
72
  new TypeError(
@@ -66,7 +66,7 @@ describe('PositiveInt32 test', () => {
66
66
  { name: '-1', value: -1 },
67
67
  { name: '2147483648', value: 2_147_483_648 },
68
68
  ] as const)(
69
- `asPositiveInt32($name) should throw a TypeError`,
69
+ 'asPositiveInt32($name) should throw a TypeError',
70
70
  ({ value }) => {
71
71
  expect(() => asPositiveInt32(value)).toThrow(
72
72
  new TypeError(
@@ -77,7 +77,7 @@ describe('PositiveSafeInt test', () => {
77
77
  { name: '0', value: 0 },
78
78
  { name: '-1', value: -1 },
79
79
  ] as const)(
80
- `asPositiveSafeInt($name) should throw a TypeError`,
80
+ 'asPositiveSafeInt($name) should throw a TypeError',
81
81
  ({ value }) => {
82
82
  expect(() => asPositiveSafeInt(value)).toThrow(
83
83
  new TypeError(`Expected a positive safe integer, got: ${value}`),
@@ -68,7 +68,7 @@ describe('PositiveUint16 test', () => {
68
68
  { name: '-1', value: -1 },
69
69
  { name: '65536', value: 65_536 },
70
70
  ] as const)(
71
- `asPositiveUint16($name) should throw a TypeError`,
71
+ 'asPositiveUint16($name) should throw a TypeError',
72
72
  ({ value }) => {
73
73
  expect(() => asPositiveUint16(value)).toThrow(
74
74
  new TypeError(
@@ -68,7 +68,7 @@ describe('PositiveUint32 test', () => {
68
68
  { name: '-1', value: -1 },
69
69
  { name: '4294967296', value: 4_294_967_296 },
70
70
  ] as const)(
71
- `asPositiveUint32($name) should throw a TypeError`,
71
+ 'asPositiveUint32($name) should throw a TypeError',
72
72
  ({ value }) => {
73
73
  expect(() => asPositiveUint32(value)).toThrow(
74
74
  new TypeError(
@@ -60,7 +60,7 @@ describe('SafeInt test', () => {
60
60
  { name: 'Number.NEGATIVE_INFINITY', value: Number.NEGATIVE_INFINITY },
61
61
  { name: '1.2', value: 1.2 },
62
62
  { name: '-3.4', value: -3.4 },
63
- ] as const)(`asSafeInt($name) should throw a TypeError`, ({ value }) => {
63
+ ] as const)('asSafeInt($name) should throw a TypeError', ({ value }) => {
64
64
  expect(() => asSafeInt(value)).toThrow(
65
65
  new TypeError(`Expected a safe integer, got: ${value}`),
66
66
  );
@@ -59,7 +59,7 @@ describe('SafeUint test', () => {
59
59
  { name: '1.2', value: 1.2 },
60
60
  { name: '-3.4', value: -3.4 },
61
61
  { name: '-1', value: -1 },
62
- ] as const)(`asSafeUint($name) should throw a TypeError`, ({ value }) => {
62
+ ] as const)('asSafeUint($name) should throw a TypeError', ({ value }) => {
63
63
  expect(() => asSafeUint(value)).toThrow(
64
64
  new TypeError(`Expected a non-negative safe integer, got: ${value}`),
65
65
  );
@@ -51,7 +51,7 @@ describe('Uint test', () => {
51
51
  { name: '1.2', value: 1.2 },
52
52
  { name: '-3.4', value: -3.4 },
53
53
  { name: '-1', value: -1 },
54
- ] as const)(`asUint($name) should throw a TypeError`, ({ value }) => {
54
+ ] as const)('asUint($name) should throw a TypeError', ({ value }) => {
55
55
  expect(() => asUint(value)).toThrow(
56
56
  new TypeError(`Expected a non-negative integer, got: ${value}`),
57
57
  );
@@ -54,7 +54,7 @@ describe('Uint16 test', () => {
54
54
  { name: '1.2', value: 1.2 },
55
55
  { name: '-3.4', value: -3.4 },
56
56
  { name: '-1', value: -1 },
57
- ] as const)(`asUint16($name) should throw a TypeError`, ({ value }) => {
57
+ ] as const)('asUint16($name) should throw a TypeError', ({ value }) => {
58
58
  expect(() => asUint16(value)).toThrow(
59
59
  new TypeError(
60
60
  `Expected a non-negative integer less than 2^16, got: ${value}`,
@@ -54,7 +54,7 @@ describe('Uint32 test', () => {
54
54
  { name: '1.2', value: 1.2 },
55
55
  { name: '-3.4', value: -3.4 },
56
56
  { name: '-1', value: -1 },
57
- ] as const)(`asUint32($name) should throw a TypeError`, ({ value }) => {
57
+ ] as const)('asUint32($name) should throw a TypeError', ({ value }) => {
58
58
  expect(() => asUint32(value)).toThrow(
59
59
  new TypeError(
60
60
  `Expected a non-negative integer less than 2^32, got: ${value}`,