ts-data-forge 3.2.0 → 3.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (426) hide show
  1. package/README.md +45 -21
  2. package/dist/array/impl/array-utils-creation.d.mts +116 -0
  3. package/dist/array/impl/array-utils-creation.d.mts.map +1 -0
  4. package/dist/array/impl/array-utils-creation.mjs +110 -0
  5. package/dist/array/impl/array-utils-creation.mjs.map +1 -0
  6. package/dist/array/impl/array-utils-element-access.d.mts +61 -0
  7. package/dist/array/impl/array-utils-element-access.d.mts.map +1 -0
  8. package/dist/array/impl/array-utils-element-access.mjs +66 -0
  9. package/dist/array/impl/array-utils-element-access.mjs.map +1 -0
  10. package/dist/array/impl/array-utils-iterators.d.mts +59 -0
  11. package/dist/array/impl/array-utils-iterators.d.mts.map +1 -0
  12. package/dist/array/impl/array-utils-iterators.mjs +104 -0
  13. package/dist/array/impl/array-utils-iterators.mjs.map +1 -0
  14. package/dist/array/impl/array-utils-modification.d.mts +154 -0
  15. package/dist/array/impl/array-utils-modification.d.mts.map +1 -0
  16. package/dist/array/impl/array-utils-modification.mjs +139 -0
  17. package/dist/array/impl/array-utils-modification.mjs.map +1 -0
  18. package/dist/array/impl/array-utils-reducing-value.d.mts +214 -0
  19. package/dist/array/impl/array-utils-reducing-value.d.mts.map +1 -0
  20. package/dist/array/impl/array-utils-reducing-value.mjs +160 -0
  21. package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -0
  22. package/dist/array/impl/array-utils-search.d.mts +179 -0
  23. package/dist/array/impl/array-utils-search.d.mts.map +1 -0
  24. package/dist/array/impl/array-utils-search.mjs +153 -0
  25. package/dist/array/impl/array-utils-search.mjs.map +1 -0
  26. package/dist/array/impl/array-utils-set-op.d.mts +100 -0
  27. package/dist/array/impl/array-utils-set-op.d.mts.map +1 -0
  28. package/dist/array/impl/array-utils-set-op.mjs +137 -0
  29. package/dist/array/impl/array-utils-set-op.mjs.map +1 -0
  30. package/dist/array/impl/array-utils-size.d.mts +24 -0
  31. package/dist/array/impl/array-utils-size.d.mts.map +1 -0
  32. package/dist/array/impl/array-utils-size.mjs +28 -0
  33. package/dist/array/impl/array-utils-size.mjs.map +1 -0
  34. package/dist/array/impl/array-utils-slice-clamped.d.mts +18 -0
  35. package/dist/array/impl/array-utils-slice-clamped.d.mts.map +1 -0
  36. package/dist/array/impl/array-utils-slice-clamped.mjs +49 -0
  37. package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -0
  38. package/dist/array/impl/array-utils-slicing.d.mts +120 -0
  39. package/dist/array/impl/array-utils-slicing.d.mts.map +1 -0
  40. package/dist/array/impl/array-utils-slicing.mjs +140 -0
  41. package/dist/array/impl/array-utils-slicing.mjs.map +1 -0
  42. package/dist/array/impl/array-utils-transformation.d.mts +348 -0
  43. package/dist/array/impl/array-utils-transformation.d.mts.map +1 -0
  44. package/dist/array/impl/array-utils-transformation.mjs +331 -0
  45. package/dist/array/impl/array-utils-transformation.mjs.map +1 -0
  46. package/dist/array/impl/array-utils-validation.d.mts +149 -0
  47. package/dist/array/impl/array-utils-validation.d.mts.map +1 -0
  48. package/dist/array/impl/array-utils-validation.mjs +166 -0
  49. package/dist/array/impl/array-utils-validation.mjs.map +1 -0
  50. package/dist/array/impl/index.d.mts +13 -0
  51. package/dist/array/impl/index.d.mts.map +1 -0
  52. package/dist/array/impl/index.mjs +13 -0
  53. package/dist/array/impl/index.mjs.map +1 -0
  54. package/dist/array/index.d.mts +1 -1
  55. package/dist/array/index.d.mts.map +1 -1
  56. package/dist/array/index.mjs +2 -1
  57. package/dist/array/index.mjs.map +1 -1
  58. package/dist/collections/imap-mapped.d.mts +83 -253
  59. package/dist/collections/imap-mapped.d.mts.map +1 -1
  60. package/dist/collections/imap-mapped.mjs +33 -164
  61. package/dist/collections/imap-mapped.mjs.map +1 -1
  62. package/dist/collections/imap.d.mts +436 -163
  63. package/dist/collections/imap.d.mts.map +1 -1
  64. package/dist/collections/imap.mjs +74 -94
  65. package/dist/collections/imap.mjs.map +1 -1
  66. package/dist/collections/iset-mapped.d.mts +828 -345
  67. package/dist/collections/iset-mapped.d.mts.map +1 -1
  68. package/dist/collections/iset-mapped.mjs +200 -242
  69. package/dist/collections/iset-mapped.mjs.map +1 -1
  70. package/dist/collections/iset.d.mts +397 -205
  71. package/dist/collections/iset.d.mts.map +1 -1
  72. package/dist/collections/iset.mjs +102 -184
  73. package/dist/collections/iset.mjs.map +1 -1
  74. package/dist/collections/queue.d.mts +155 -135
  75. package/dist/collections/queue.d.mts.map +1 -1
  76. package/dist/collections/queue.mjs +55 -156
  77. package/dist/collections/queue.mjs.map +1 -1
  78. package/dist/collections/stack.d.mts +154 -154
  79. package/dist/collections/stack.d.mts.map +1 -1
  80. package/dist/collections/stack.mjs +54 -203
  81. package/dist/collections/stack.mjs.map +1 -1
  82. package/dist/entry-point.d.mts +3 -0
  83. package/dist/entry-point.d.mts.map +1 -0
  84. package/dist/entry-point.mjs +62 -0
  85. package/dist/entry-point.mjs.map +1 -0
  86. package/dist/expect-type.d.mts +43 -172
  87. package/dist/expect-type.d.mts.map +1 -1
  88. package/dist/expect-type.mjs +43 -172
  89. package/dist/expect-type.mjs.map +1 -1
  90. package/dist/functional/match.d.mts +35 -140
  91. package/dist/functional/match.d.mts.map +1 -1
  92. package/dist/functional/match.mjs.map +1 -1
  93. package/dist/functional/optional.d.mts +282 -160
  94. package/dist/functional/optional.d.mts.map +1 -1
  95. package/dist/functional/optional.mjs +131 -71
  96. package/dist/functional/optional.mjs.map +1 -1
  97. package/dist/functional/pipe.d.mts +59 -113
  98. package/dist/functional/pipe.d.mts.map +1 -1
  99. package/dist/functional/pipe.mjs.map +1 -1
  100. package/dist/functional/result.d.mts +433 -332
  101. package/dist/functional/result.d.mts.map +1 -1
  102. package/dist/functional/result.mjs +233 -239
  103. package/dist/functional/result.mjs.map +1 -1
  104. package/dist/globals.d.mts +12 -5
  105. package/dist/guard/has-key.d.mts +23 -74
  106. package/dist/guard/has-key.d.mts.map +1 -1
  107. package/dist/guard/has-key.mjs +23 -74
  108. package/dist/guard/has-key.mjs.map +1 -1
  109. package/dist/guard/is-non-empty-string.d.mts +20 -87
  110. package/dist/guard/is-non-empty-string.d.mts.map +1 -1
  111. package/dist/guard/is-non-empty-string.mjs +20 -87
  112. package/dist/guard/is-non-empty-string.mjs.map +1 -1
  113. package/dist/guard/is-non-null-object.d.mts +14 -84
  114. package/dist/guard/is-non-null-object.d.mts.map +1 -1
  115. package/dist/guard/is-non-null-object.mjs +14 -84
  116. package/dist/guard/is-non-null-object.mjs.map +1 -1
  117. package/dist/guard/is-primitive.d.mts +13 -126
  118. package/dist/guard/is-primitive.d.mts.map +1 -1
  119. package/dist/guard/is-primitive.mjs +13 -126
  120. package/dist/guard/is-primitive.mjs.map +1 -1
  121. package/dist/guard/is-record.d.mts +21 -132
  122. package/dist/guard/is-record.d.mts.map +1 -1
  123. package/dist/guard/is-record.mjs +21 -132
  124. package/dist/guard/is-record.mjs.map +1 -1
  125. package/dist/guard/is-type.d.mts +201 -238
  126. package/dist/guard/is-type.d.mts.map +1 -1
  127. package/dist/guard/is-type.mjs +201 -238
  128. package/dist/guard/is-type.mjs.map +1 -1
  129. package/dist/guard/key-is-in.d.mts +22 -139
  130. package/dist/guard/key-is-in.d.mts.map +1 -1
  131. package/dist/guard/key-is-in.mjs +22 -139
  132. package/dist/guard/key-is-in.mjs.map +1 -1
  133. package/dist/index.d.mts +0 -1
  134. package/dist/index.d.mts.map +1 -1
  135. package/dist/index.mjs +0 -1
  136. package/dist/index.mjs.map +1 -1
  137. package/dist/iterator/range.d.mts +29 -62
  138. package/dist/iterator/range.d.mts.map +1 -1
  139. package/dist/iterator/range.mjs.map +1 -1
  140. package/dist/json/json.d.mts +191 -121
  141. package/dist/json/json.d.mts.map +1 -1
  142. package/dist/json/json.mjs +238 -136
  143. package/dist/json/json.mjs.map +1 -1
  144. package/dist/number/branded-types/finite-number.d.mts +24 -156
  145. package/dist/number/branded-types/finite-number.d.mts.map +1 -1
  146. package/dist/number/branded-types/finite-number.mjs +27 -159
  147. package/dist/number/branded-types/finite-number.mjs.map +1 -1
  148. package/dist/number/branded-types/int.d.mts +122 -120
  149. package/dist/number/branded-types/int.d.mts.map +1 -1
  150. package/dist/number/branded-types/int.mjs +122 -120
  151. package/dist/number/branded-types/int.mjs.map +1 -1
  152. package/dist/number/branded-types/int16.d.mts +22 -30
  153. package/dist/number/branded-types/int16.d.mts.map +1 -1
  154. package/dist/number/branded-types/int16.mjs +22 -30
  155. package/dist/number/branded-types/int16.mjs.map +1 -1
  156. package/dist/number/branded-types/int32.d.mts +22 -31
  157. package/dist/number/branded-types/int32.d.mts.map +1 -1
  158. package/dist/number/branded-types/int32.mjs +22 -31
  159. package/dist/number/branded-types/int32.mjs.map +1 -1
  160. package/dist/number/branded-types/non-negative-finite-number.d.mts +28 -36
  161. package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
  162. package/dist/number/branded-types/non-negative-finite-number.mjs +31 -39
  163. package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
  164. package/dist/number/branded-types/non-negative-int16.d.mts +24 -34
  165. package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
  166. package/dist/number/branded-types/non-negative-int16.mjs +24 -34
  167. package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
  168. package/dist/number/branded-types/non-negative-int32.d.mts +26 -35
  169. package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
  170. package/dist/number/branded-types/non-negative-int32.mjs +26 -35
  171. package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
  172. package/dist/number/branded-types/non-zero-finite-number.d.mts +22 -37
  173. package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
  174. package/dist/number/branded-types/non-zero-finite-number.mjs +25 -40
  175. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
  176. package/dist/number/branded-types/non-zero-int.d.mts +15 -30
  177. package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
  178. package/dist/number/branded-types/non-zero-int.mjs +15 -30
  179. package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
  180. package/dist/number/branded-types/non-zero-int16.d.mts +27 -35
  181. package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
  182. package/dist/number/branded-types/non-zero-int16.mjs +27 -35
  183. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
  184. package/dist/number/branded-types/non-zero-int32.d.mts +29 -36
  185. package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
  186. package/dist/number/branded-types/non-zero-int32.mjs +29 -36
  187. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
  188. package/dist/number/branded-types/non-zero-safe-int.d.mts +37 -38
  189. package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
  190. package/dist/number/branded-types/non-zero-safe-int.mjs +39 -40
  191. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
  192. package/dist/number/branded-types/non-zero-uint16.d.mts +24 -35
  193. package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
  194. package/dist/number/branded-types/non-zero-uint16.mjs +24 -35
  195. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
  196. package/dist/number/branded-types/non-zero-uint32.d.mts +24 -35
  197. package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
  198. package/dist/number/branded-types/non-zero-uint32.mjs +24 -35
  199. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
  200. package/dist/number/branded-types/positive-finite-number.d.mts +26 -40
  201. package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
  202. package/dist/number/branded-types/positive-finite-number.mjs +29 -43
  203. package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
  204. package/dist/number/branded-types/positive-int.d.mts +133 -123
  205. package/dist/number/branded-types/positive-int.d.mts.map +1 -1
  206. package/dist/number/branded-types/positive-int.mjs +133 -123
  207. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  208. package/dist/number/branded-types/positive-int16.d.mts +24 -35
  209. package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
  210. package/dist/number/branded-types/positive-int16.mjs +24 -35
  211. package/dist/number/branded-types/positive-int16.mjs.map +1 -1
  212. package/dist/number/branded-types/positive-int32.d.mts +24 -35
  213. package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
  214. package/dist/number/branded-types/positive-int32.mjs +24 -35
  215. package/dist/number/branded-types/positive-int32.mjs.map +1 -1
  216. package/dist/number/branded-types/positive-safe-int.d.mts +159 -33
  217. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
  218. package/dist/number/branded-types/positive-safe-int.mjs +160 -34
  219. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  220. package/dist/number/branded-types/positive-uint16.d.mts +24 -35
  221. package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
  222. package/dist/number/branded-types/positive-uint16.mjs +24 -35
  223. package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
  224. package/dist/number/branded-types/positive-uint32.d.mts +26 -36
  225. package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
  226. package/dist/number/branded-types/positive-uint32.mjs +26 -36
  227. package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
  228. package/dist/number/branded-types/safe-int.d.mts +140 -99
  229. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  230. package/dist/number/branded-types/safe-int.mjs +142 -101
  231. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  232. package/dist/number/branded-types/safe-uint.d.mts +24 -33
  233. package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
  234. package/dist/number/branded-types/safe-uint.mjs +25 -34
  235. package/dist/number/branded-types/safe-uint.mjs.map +1 -1
  236. package/dist/number/branded-types/uint.d.mts +121 -30
  237. package/dist/number/branded-types/uint.d.mts.map +1 -1
  238. package/dist/number/branded-types/uint.mjs +121 -30
  239. package/dist/number/branded-types/uint.mjs.map +1 -1
  240. package/dist/number/branded-types/uint16.d.mts +26 -34
  241. package/dist/number/branded-types/uint16.d.mts.map +1 -1
  242. package/dist/number/branded-types/uint16.mjs +26 -34
  243. package/dist/number/branded-types/uint16.mjs.map +1 -1
  244. package/dist/number/branded-types/uint32.d.mts +26 -68
  245. package/dist/number/branded-types/uint32.d.mts.map +1 -1
  246. package/dist/number/branded-types/uint32.mjs +26 -68
  247. package/dist/number/branded-types/uint32.mjs.map +1 -1
  248. package/dist/number/enum/int8.d.mts +37 -101
  249. package/dist/number/enum/int8.d.mts.map +1 -1
  250. package/dist/number/enum/int8.mjs +39 -170
  251. package/dist/number/enum/int8.mjs.map +1 -1
  252. package/dist/number/enum/uint8.d.mts +45 -55
  253. package/dist/number/enum/uint8.d.mts.map +1 -1
  254. package/dist/number/enum/uint8.mjs +46 -155
  255. package/dist/number/enum/uint8.mjs.map +1 -1
  256. package/dist/number/num.d.mts +145 -206
  257. package/dist/number/num.d.mts.map +1 -1
  258. package/dist/number/num.mjs +143 -199
  259. package/dist/number/num.mjs.map +1 -1
  260. package/dist/number/refined-number-utils.d.mts +97 -21
  261. package/dist/number/refined-number-utils.d.mts.map +1 -1
  262. package/dist/number/refined-number-utils.mjs +91 -20
  263. package/dist/number/refined-number-utils.mjs.map +1 -1
  264. package/dist/object/object.d.mts +126 -208
  265. package/dist/object/object.d.mts.map +1 -1
  266. package/dist/object/object.mjs +68 -102
  267. package/dist/object/object.mjs.map +1 -1
  268. package/dist/others/cast-mutable.d.mts +12 -88
  269. package/dist/others/cast-mutable.d.mts.map +1 -1
  270. package/dist/others/cast-mutable.mjs +13 -89
  271. package/dist/others/cast-mutable.mjs.map +1 -1
  272. package/dist/others/cast-readonly.d.mts +12 -168
  273. package/dist/others/cast-readonly.d.mts.map +1 -1
  274. package/dist/others/cast-readonly.mjs +13 -169
  275. package/dist/others/cast-readonly.mjs.map +1 -1
  276. package/dist/others/if-then.d.mts +6 -83
  277. package/dist/others/if-then.d.mts.map +1 -1
  278. package/dist/others/if-then.mjs +6 -83
  279. package/dist/others/if-then.mjs.map +1 -1
  280. package/dist/others/map-nullable.d.mts +12 -136
  281. package/dist/others/map-nullable.d.mts.map +1 -1
  282. package/dist/others/map-nullable.mjs.map +1 -1
  283. package/dist/others/memoize-function.d.mts +14 -157
  284. package/dist/others/memoize-function.d.mts.map +1 -1
  285. package/dist/others/memoize-function.mjs +14 -157
  286. package/dist/others/memoize-function.mjs.map +1 -1
  287. package/dist/others/tuple.d.mts +33 -151
  288. package/dist/others/tuple.d.mts.map +1 -1
  289. package/dist/others/tuple.mjs +33 -151
  290. package/dist/others/tuple.mjs.map +1 -1
  291. package/dist/others/unknown-to-string.d.mts +11 -125
  292. package/dist/others/unknown-to-string.d.mts.map +1 -1
  293. package/dist/others/unknown-to-string.mjs +14 -127
  294. package/dist/others/unknown-to-string.mjs.map +1 -1
  295. package/dist/promise/promise.d.mts +33 -20
  296. package/dist/promise/promise.d.mts.map +1 -1
  297. package/dist/promise/promise.mjs +34 -21
  298. package/dist/promise/promise.mjs.map +1 -1
  299. package/dist/types.d.mts +1 -1
  300. package/package.json +54 -50
  301. package/src/array/impl/array-utils-creation.mts +192 -0
  302. package/src/array/{array-utils-creation.test.mts → impl/array-utils-creation.test.mts} +121 -72
  303. package/src/array/impl/array-utils-element-access.mts +115 -0
  304. package/src/array/impl/array-utils-element-access.test.mts +151 -0
  305. package/src/array/impl/array-utils-iterators.mts +79 -0
  306. package/src/array/impl/array-utils-iterators.test.mts +98 -0
  307. package/src/array/impl/array-utils-modification.mts +434 -0
  308. package/src/array/{array-utils-modification.test.mts → impl/array-utils-modification.test.mts} +41 -28
  309. package/src/array/{array-utils-overload-type-error.test.mts → impl/array-utils-overload-type-error.test.mts} +33 -33
  310. package/src/array/impl/array-utils-reducing-value.mts +551 -0
  311. package/src/array/{array-utils-reducing-value.test.mts → impl/array-utils-reducing-value.test.mts} +45 -50
  312. package/src/array/impl/array-utils-search.mts +509 -0
  313. package/src/array/impl/array-utils-search.test.mts +346 -0
  314. package/src/array/impl/array-utils-set-op.mts +166 -0
  315. package/src/array/{array-utils-set-op.test.mts → impl/array-utils-set-op.test.mts} +42 -35
  316. package/src/array/impl/array-utils-size.mts +30 -0
  317. package/src/array/impl/array-utils-size.test.mts +9 -0
  318. package/src/array/impl/array-utils-slice-clamped.mts +51 -0
  319. package/src/array/{array-utils-slice-clamped.test.mts → impl/array-utils-slice-clamped.test.mts} +12 -12
  320. package/src/array/impl/array-utils-slicing.mts +275 -0
  321. package/src/array/impl/array-utils-slicing.test.mts +158 -0
  322. package/src/array/impl/array-utils-transformation.mts +746 -0
  323. package/src/array/{array-utils-transformation.test.mts → impl/array-utils-transformation.test.mts} +662 -889
  324. package/src/array/impl/array-utils-validation.mts +241 -0
  325. package/src/array/{array-utils-validation.test.mts → impl/array-utils-validation.test.mts} +194 -107
  326. package/src/array/{array.test.mts → impl/array.test.mts} +2 -2
  327. package/src/array/impl/index.mts +12 -0
  328. package/src/array/index.mts +1 -1
  329. package/src/collections/imap-mapped.mts +99 -265
  330. package/src/collections/imap.mts +477 -174
  331. package/src/collections/imap.test.mts +12 -19
  332. package/src/collections/iset-mapped.mts +892 -358
  333. package/src/collections/iset.mts +429 -213
  334. package/src/collections/queue.mts +174 -200
  335. package/src/collections/stack.mts +172 -245
  336. package/src/collections/stack.test.mts +9 -1
  337. package/src/entry-point.mts +2 -0
  338. package/src/expect-type.mts +43 -172
  339. package/src/functional/match.mts +35 -145
  340. package/src/functional/optional.mts +285 -163
  341. package/src/functional/optional.test.mts +4 -1
  342. package/src/functional/pipe.mts +60 -113
  343. package/src/functional/result.mts +452 -351
  344. package/src/functional/result.test.mts +9 -2
  345. package/src/globals.d.mts +12 -5
  346. package/src/guard/has-key.mts +23 -74
  347. package/src/guard/is-non-empty-string.mts +20 -87
  348. package/src/guard/is-non-null-object.mts +14 -84
  349. package/src/guard/is-non-null-object.test.mts +1 -1
  350. package/src/guard/is-primitive.mts +13 -126
  351. package/src/guard/is-primitive.test.mts +1 -1
  352. package/src/guard/is-record.mts +21 -132
  353. package/src/guard/is-record.test.mts +0 -1
  354. package/src/guard/is-type.mts +201 -238
  355. package/src/guard/is-type.test.mts +7 -7
  356. package/src/guard/key-is-in.mts +22 -139
  357. package/src/index.mts +0 -1
  358. package/src/iterator/range.mts +29 -62
  359. package/src/json/json.mts +202 -134
  360. package/src/json/json.test.mts +1 -3
  361. package/src/number/branded-types/finite-number.mts +27 -159
  362. package/src/number/branded-types/int.mts +122 -120
  363. package/src/number/branded-types/int16.mts +22 -30
  364. package/src/number/branded-types/int16.test.mts +24 -24
  365. package/src/number/branded-types/int32.mts +22 -31
  366. package/src/number/branded-types/int32.test.mts +39 -39
  367. package/src/number/branded-types/non-negative-finite-number.mts +31 -39
  368. package/src/number/branded-types/non-negative-int16.mts +24 -34
  369. package/src/number/branded-types/non-negative-int16.test.mts +16 -16
  370. package/src/number/branded-types/non-negative-int32.mts +26 -35
  371. package/src/number/branded-types/non-negative-int32.test.mts +30 -30
  372. package/src/number/branded-types/non-zero-finite-number.mts +25 -40
  373. package/src/number/branded-types/non-zero-int.mts +15 -30
  374. package/src/number/branded-types/non-zero-int16.mts +27 -35
  375. package/src/number/branded-types/non-zero-int16.test.mts +26 -26
  376. package/src/number/branded-types/non-zero-int32.mts +29 -36
  377. package/src/number/branded-types/non-zero-int32.test.mts +45 -42
  378. package/src/number/branded-types/non-zero-safe-int.mts +39 -40
  379. package/src/number/branded-types/non-zero-uint16.mts +24 -35
  380. package/src/number/branded-types/non-zero-uint16.test.mts +16 -16
  381. package/src/number/branded-types/non-zero-uint32.mts +24 -35
  382. package/src/number/branded-types/non-zero-uint32.test.mts +28 -28
  383. package/src/number/branded-types/positive-finite-number.mts +29 -43
  384. package/src/number/branded-types/positive-int.mts +134 -124
  385. package/src/number/branded-types/positive-int16.mts +24 -35
  386. package/src/number/branded-types/positive-int16.test.mts +14 -14
  387. package/src/number/branded-types/positive-int32.mts +24 -35
  388. package/src/number/branded-types/positive-int32.test.mts +26 -26
  389. package/src/number/branded-types/positive-safe-int.mts +160 -34
  390. package/src/number/branded-types/positive-uint16.mts +24 -35
  391. package/src/number/branded-types/positive-uint16.test.mts +16 -16
  392. package/src/number/branded-types/positive-uint32.mts +26 -36
  393. package/src/number/branded-types/positive-uint32.test.mts +31 -28
  394. package/src/number/branded-types/safe-int.mts +142 -101
  395. package/src/number/branded-types/safe-uint.mts +25 -34
  396. package/src/number/branded-types/uint.mts +121 -30
  397. package/src/number/branded-types/uint16.mts +26 -34
  398. package/src/number/branded-types/uint16.test.mts +16 -16
  399. package/src/number/branded-types/uint32.mts +26 -68
  400. package/src/number/branded-types/uint32.test.mts +28 -28
  401. package/src/number/enum/int8.mts +39 -170
  402. package/src/number/enum/uint8.mts +46 -155
  403. package/src/number/num.mts +157 -212
  404. package/src/number/num.test.mts +4 -4
  405. package/src/number/refined-number-utils.mts +109 -26
  406. package/src/object/object.mts +130 -212
  407. package/src/object/object.test.mts +29 -0
  408. package/src/others/cast-mutable.mts +13 -89
  409. package/src/others/cast-mutable.test.mts +80 -0
  410. package/src/others/cast-readonly.mts +13 -169
  411. package/src/others/if-then.mts +6 -83
  412. package/src/others/map-nullable.mts +12 -136
  413. package/src/others/map-nullable.test.mts +6 -6
  414. package/src/others/memoize-function.mts +14 -157
  415. package/src/others/tuple.mts +33 -151
  416. package/src/others/unknown-to-string.mts +15 -127
  417. package/src/others/unknown-to-string.test.mts +14 -2
  418. package/src/promise/promise.mts +34 -21
  419. package/src/promise/promise.test.mts +43 -0
  420. package/dist/array/array-utils.d.mts +0 -2956
  421. package/dist/array/array-utils.d.mts.map +0 -1
  422. package/dist/array/array-utils.mjs +0 -1838
  423. package/dist/array/array-utils.mjs.map +0 -1
  424. package/src/array/array-utils-search.test.mts +0 -169
  425. package/src/array/array-utils-slicing.test.mts +0 -274
  426. package/src/array/array-utils.mts +0 -4834
package/src/json/json.mts CHANGED
@@ -7,57 +7,55 @@ import { castMutable, unknownToString } from '../others/index.mjs';
7
7
  * A collection of type-safe JSON utility functions that provide safe parsing,
8
8
  * stringification, and manipulation of JSON data. All functions return `Result`
9
9
  * types to handle errors without throwing exceptions.
10
- *
11
- * @example Basic usage
12
- * ```typescript
13
- * import { Json, Result } from 'ts-data-forge';
14
- *
15
- * // Parse JSON safely
16
- * const parseResult = Json.parse('{"name": "Alice", "age": 30}');
17
- * if (Result.isOk(parseResult)) {
18
- * console.log(parseResult.value); // { name: 'Alice', age: 30 }
19
- * }
20
- *
21
- * // Stringify with error handling
22
- * const stringifyResult = Json.stringify({ name: 'Bob', age: 25 });
23
- * if (Result.isOk(stringifyResult)) {
24
- * console.log(stringifyResult.value); // '{"name":"Bob","age":25}'
25
- * }
26
- * ```
27
10
  */
28
11
  export namespace Json {
29
12
  /**
30
- * Safely converts a JSON string into a JavaScript value without throwing exceptions.
31
- *
32
- * This function provides type-safe JSON parsing by wrapping the native `JSON.parse`
33
- * in a `Result` type, allowing you to handle parsing errors gracefully without
34
- * try-catch blocks.
35
- *
36
- * @param text - A valid JSON string to parse. Can contain any valid JSON data type:
37
- * primitives (string, number, boolean, null), arrays, or objects.
38
- * @param reviver - Optional function that transforms parsed values. Called for each
39
- * key-value pair in the JSON. The function receives the key name and parsed value,
40
- * and should return the transformed value. For nested objects, inner objects are
41
- * processed before outer objects.
42
- * @returns A `Result<JsonValue, string>` containing:
43
- * - On success: `Result.ok(parsedValue)` where `parsedValue` is the parsed JSON
44
- * - On failure: `Result.err(errorMessage)` where `errorMessage` describes the parsing error
13
+ * Safely converts a JSON string into a JavaScript value without throwing
14
+ * exceptions.
45
15
  *
46
- * @example
47
- * ```typescript
48
- * const result = Json.parse('{"name": "John", "age": 30}');
49
- * if (Result.isOk(result)) {
50
- * console.log(result.value.name); // 'John'
51
- * }
52
- * ```
16
+ * This function provides type-safe JSON parsing by wrapping the native
17
+ * `JSON.parse` in a `Result` type, allowing you to handle parsing errors
18
+ * gracefully without try-catch blocks.
53
19
  *
54
20
  * @example
55
- * ```typescript
56
- * const invalid = Json.parse('invalid json');
57
- * if (Result.isErr(invalid)) {
58
- * console.log('Parse failed:', invalid.value);
21
+ *
22
+ * ```ts
23
+ * const validJson = '{"name": "Alice", "age": 30}';
24
+ * const invalidJson = '{invalid json}';
25
+ *
26
+ * const parsed = Json.parse(validJson);
27
+ * const failed = Json.parse(invalidJson);
28
+ *
29
+ * assert.ok(Result.isOk(parsed));
30
+ * if (Result.isOk(parsed)) {
31
+ * assert.deepStrictEqual(parsed.value, { name: 'Alice', age: 30 });
59
32
  * }
33
+ *
34
+ * assert.ok(Result.isErr(failed));
35
+ *
36
+ * // With reviver
37
+ * const jsonWithDate = '{"created": "2024-01-01T00:00:00.000Z"}';
38
+ * const withReviver = Json.parse(jsonWithDate, (key, value) => {
39
+ * if (key === 'created' && typeof value === 'string') {
40
+ * return new Date(value);
41
+ * }
42
+ * return value;
43
+ * });
44
+ *
45
+ * assert.ok(Result.isOk(withReviver));
60
46
  * ```
47
+ *
48
+ * @param text - A valid JSON string to parse. Can contain any valid JSON data
49
+ * type: primitives (string, number, boolean, null), arrays, or objects.
50
+ * @param reviver - Optional function that transforms parsed values. Called
51
+ * for each key-value pair in the JSON. The function receives the key name
52
+ * and parsed value, and should return the transformed value. For nested
53
+ * objects, inner objects are processed before outer objects.
54
+ * @returns A `Result<JsonValue, string>` containing:
55
+ *
56
+ * - On success: `Result.ok(parsedValue)` where `parsedValue` is the parsed JSON
57
+ * - On failure: `Result.err(errorMessage)` where `errorMessage` describes the
58
+ * parsing error
61
59
  */
62
60
  export const parse = (
63
61
  text: string,
@@ -67,7 +65,7 @@ export namespace Json {
67
65
  return Result.ok(
68
66
  JSON.parse(
69
67
  text,
70
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
68
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
71
69
  reviver as (this: unknown, key: string, value: unknown) => unknown,
72
70
  ),
73
71
  );
@@ -78,44 +76,61 @@ export namespace Json {
78
76
  };
79
77
 
80
78
  /**
81
- * Safely converts a JavaScript value to a JSON string without throwing exceptions.
82
- *
83
- * This function provides type-safe JSON stringification by wrapping the native
84
- * `JSON.stringify` in a `Result` type, allowing you to handle serialization errors
85
- * gracefully (such as circular references or BigInt values).
86
- *
87
- * @param value - The JavaScript value to serialize. Can be any value that JSON.stringify
88
- * accepts: primitives, objects, arrays. Non-serializable values (functions, undefined,
89
- * symbols) will be omitted or converted to null according to JSON.stringify behavior.
90
- * @param replacer - Optional function that transforms values during serialization.
91
- * Called for each key-value pair. Should return the value to be serialized, or
92
- * undefined to omit the property from the result.
93
- * @param space - Optional parameter for formatting the output JSON:
94
- * - Number (1-10): Number of spaces to indent each level
95
- * - String: String to use for indentation (first 10 characters)
96
- * - undefined/null: No formatting (compact output)
97
- * @returns A `Result<string, string>` containing:
98
- * - On success: `Result.ok(jsonString)` where `jsonString` is the serialized JSON
99
- * - On failure: `Result.err(errorMessage)` where `errorMessage` describes the error
79
+ * Safely converts a JavaScript value to a JSON string without throwing
80
+ * exceptions.
81
+ *
82
+ * This function provides type-safe JSON stringification by wrapping the
83
+ * native `JSON.stringify` in a `Result` type, allowing you to handle
84
+ * serialization errors gracefully (such as circular references or BigInt
85
+ * values).
100
86
  *
101
87
  * @example
102
- * ```typescript
103
- * const obj = { name: 'John', age: 30 };
104
- * const result = Json.stringify(obj);
105
- * if (Result.isOk(result)) {
106
- * console.log(result.value); // '{"name":"John","age":30}'
88
+ *
89
+ * ```ts
90
+ * const data = { name: 'Bob', age: 25, active: true };
91
+ *
92
+ * // Basic stringify
93
+ * const basic = Json.stringify(data);
94
+ * assert.ok(Result.isOk(basic));
95
+ * if (Result.isOk(basic)) {
96
+ * assert(basic.value === '{"name":"Bob","age":25,"active":true}');
107
97
  * }
108
- * ```
109
98
  *
110
- * @example Error handling
111
- * ```typescript
112
- * const circular: any = { name: 'test' };
113
- * circular.self = circular;
114
- * const error = Json.stringify(circular);
115
- * if (Result.isErr(error)) {
116
- * console.log('Stringify failed:', error.value);
99
+ * // With formatting
100
+ * const formatted = Json.stringify(data, undefined, 2);
101
+ * assert.ok(Result.isOk(formatted));
102
+ *
103
+ * // With replacer
104
+ * const filtered = Json.stringify(data, (key, value) => {
105
+ * if (key === 'age') return undefined; // omit age field
106
+ * return value;
107
+ * });
108
+ *
109
+ * assert.ok(Result.isOk(filtered));
110
+ * if (Result.isOk(filtered)) {
111
+ * assert.ok(!filtered.value.includes('age'));
117
112
  * }
118
113
  * ```
114
+ *
115
+ * @param value - The JavaScript value to serialize. Can be any value that
116
+ * JSON.stringify accepts: primitives, objects, arrays. Non-serializable
117
+ * values (functions, undefined, symbols) will be omitted or converted to
118
+ * null according to JSON.stringify behavior.
119
+ * @param replacer - Optional function that transforms values during
120
+ * serialization. Called for each key-value pair. Should return the value to
121
+ * be serialized, or undefined to omit the property from the result.
122
+ * @param space - Optional parameter for formatting the output JSON:
123
+ *
124
+ * - Number (1-10): Number of spaces to indent each level
125
+ * - String: String to use for indentation (first 10 characters)
126
+ * - Undefined/null: No formatting (compact output)
127
+ *
128
+ * @returns A `Result<string, string>` containing:
129
+ *
130
+ * - On success: `Result.ok(jsonString)` where `jsonString` is the serialized
131
+ * JSON
132
+ * - On failure: `Result.err(errorMessage)` where `errorMessage` describes the
133
+ * error
119
134
  */
120
135
  export const stringify = (
121
136
  value: unknown,
@@ -131,40 +146,62 @@ export namespace Json {
131
146
  };
132
147
 
133
148
  /**
134
- * Safely converts a JavaScript value to a JSON string, including only the specified properties.
149
+ * Safely converts a JavaScript value to a JSON string, including only the
150
+ * specified properties.
135
151
  *
136
- * This function provides selective serialization by allowing you to specify exactly which
137
- * object properties should be included in the resulting JSON. It's useful for creating
138
- * filtered or minimal representations of objects, such as for API responses or logging.
139
- *
140
- * @param value - The JavaScript value to serialize. While any value is accepted,
141
- * the property filtering only applies to objects and nested objects.
142
- * @param propertiesToBeSelected - Optional array of property names (strings) and array
143
- * indices (numbers) to include in the serialization. If provided, only these properties
144
- * will appear in the output JSON. If undefined, all properties are included.
145
- * @param space - Optional formatting parameter:
146
- * - Number (1-10): Number of spaces to indent each level
147
- * - String: String to use for indentation (first 10 characters)
148
- * - undefined/null: No formatting (compact output)
149
- * @returns A `Result<string, string>` containing:
150
- * - On success: `Result.ok(jsonString)` with only selected properties
151
- * - On failure: `Result.err(errorMessage)` describing the serialization error
152
+ * This function provides selective serialization by allowing you to specify
153
+ * exactly which object properties should be included in the resulting JSON.
154
+ * It's useful for creating filtered or minimal representations of objects,
155
+ * such as for API responses or logging.
152
156
  *
153
157
  * @example
154
- * ```typescript
158
+ *
159
+ * ```ts
155
160
  * const user = {
156
161
  * id: 1,
157
- * name: 'Alice',
158
- * email: 'alice@example.com',
159
- * password: 'secret123'
162
+ * name: 'Charlie',
163
+ * email: 'charlie@example.com',
164
+ * password: 'secret123',
165
+ * role: 'admin',
160
166
  * };
161
167
  *
162
- * const publicFields = Json.stringifySelected(user, ['id', 'name', 'email']);
163
- * if (Result.isOk(publicFields)) {
164
- * console.log(publicFields.value);
165
- * // '{"id":1,"name":"Alice","email":"alice@example.com"}'
168
+ * // Select only safe properties to serialize
169
+ * const safeJson = Json.stringifySelected(user, ['id', 'name', 'role']);
170
+ *
171
+ * assert.ok(Result.isOk(safeJson));
172
+ * if (Result.isOk(safeJson)) {
173
+ * const parsed: unknown = JSON.parse(safeJson.value);
174
+ * assert.deepStrictEqual(parsed, {
175
+ * id: 1,
176
+ * name: 'Charlie',
177
+ * role: 'admin',
178
+ * });
179
+ * assert.ok(!safeJson.value.includes('password'));
180
+ * assert.ok(!safeJson.value.includes('email'));
166
181
  * }
182
+ *
183
+ * // With formatting
184
+ * const formatted = Json.stringifySelected(user, ['id', 'name'], 2);
185
+ * assert.ok(Result.isOk(formatted));
167
186
  * ```
187
+ *
188
+ * @param value - The JavaScript value to serialize. While any value is
189
+ * accepted, the property filtering only applies to objects and nested
190
+ * objects.
191
+ * @param propertiesToBeSelected - Optional array of property names (strings)
192
+ * and array indices (numbers) to include in the serialization. If provided,
193
+ * only these properties will appear in the output JSON. If undefined, all
194
+ * properties are included.
195
+ * @param space - Optional formatting parameter:
196
+ *
197
+ * - Number (1-10): Number of spaces to indent each level
198
+ * - String: String to use for indentation (first 10 characters)
199
+ * - Undefined/null: No formatting (compact output)
200
+ *
201
+ * @returns A `Result<string, string>` containing:
202
+ *
203
+ * - On success: `Result.ok(jsonString)` with only selected properties
204
+ * - On failure: `Result.err(errorMessage)` describing the serialization error
168
205
  */
169
206
  export const stringifySelected = (
170
207
  value: unknown,
@@ -182,38 +219,71 @@ export namespace Json {
182
219
  };
183
220
 
184
221
  /**
185
- * Safely converts a JavaScript record to a JSON string with keys sorted alphabetically at all levels.
222
+ * Safely converts a JavaScript record to a JSON string with keys sorted
223
+ * alphabetically at all levels.
186
224
  *
187
- * This function creates deterministic JSON output by ensuring that object keys appear in
188
- * alphabetical order at every level of nesting. This is particularly useful for creating
189
- * consistent output for comparison, hashing, caching, or when you need reproducible JSON
190
- * representations across different JavaScript engines or runs.
191
- *
192
- * @param value - An object (`UnknownRecord`) to serialize. Must be a plain object
193
- * (not an array, primitive, or null). Nested objects and arrays within the object
194
- * will also have their keys sorted alphabetically.
195
- * @param space - Optional formatting parameter:
196
- * - Number (1-10): Number of spaces to indent each level
197
- * - String: String to use for indentation (first 10 characters)
198
- * - undefined/null: No formatting (compact output)
199
- * @returns A `Result<string, string>` containing:
200
- * - On success: `Result.ok(jsonString)` with all object keys sorted alphabetically
201
- * - On failure: `Result.err(errorMessage)` describing the serialization error
225
+ * This function creates deterministic JSON output by ensuring that object
226
+ * keys appear in alphabetical order at every level of nesting. This is
227
+ * particularly useful for creating consistent output for comparison, hashing,
228
+ * caching, or when you need reproducible JSON representations across
229
+ * different JavaScript engines or runs.
202
230
  *
203
231
  * @example
204
- * ```typescript
205
- * const unsortedObj = {
206
- * zebra: 'animal',
207
- * apple: 'fruit',
208
- * banana: 'fruit'
232
+ *
233
+ * ```ts
234
+ * const unorderedData = {
235
+ * zebra: 1,
236
+ * apple: 2,
237
+ * mango: 3,
238
+ * nested: {
239
+ * zulu: 'z',
240
+ * alpha: 'a',
241
+ * beta: 'b',
242
+ * },
209
243
  * };
210
244
  *
211
- * const sorted = Json.stringifySortedKey(unsortedObj);
245
+ * // Keys will be sorted alphabetically at all levels
246
+ * const sorted = Json.stringifySortedKey(unorderedData);
247
+ *
248
+ * assert.ok(Result.isOk(sorted));
212
249
  * if (Result.isOk(sorted)) {
213
- * console.log(sorted.value);
214
- * // '{"apple":"fruit","banana":"fruit","zebra":"animal"}'
250
+ * // Keys should appear in alphabetical order
251
+ * const expected =
252
+ * '{"apple":2,"mango":3,"nested":{"alpha":"a","beta":"b","zulu":"z"},"zebra":1}';
253
+ * assert(sorted.value === expected);
254
+ * }
255
+ *
256
+ * // With formatting
257
+ * const formatted = Json.stringifySortedKey(unorderedData, 2);
258
+ * assert.ok(Result.isOk(formatted));
259
+ * if (Result.isOk(formatted)) {
260
+ * // Check that keys are in order (first key should be "apple")
261
+ * assert.ok(
262
+ * formatted.value.indexOf('"apple"') < formatted.value.indexOf('"mango"'),
263
+ * );
264
+ * assert.ok(
265
+ * formatted.value.indexOf('"mango"') < formatted.value.indexOf('"nested"'),
266
+ * );
267
+ * assert.ok(
268
+ * formatted.value.indexOf('"nested"') < formatted.value.indexOf('"zebra"'),
269
+ * );
215
270
  * }
216
271
  * ```
272
+ *
273
+ * @param value - An object (`UnknownRecord`) to serialize. Must be a plain
274
+ * object (not an array, primitive, or null). Nested objects and arrays
275
+ * within the object will also have their keys sorted alphabetically.
276
+ * @param space - Optional formatting parameter:
277
+ *
278
+ * - Number (1-10): Number of spaces to indent each level
279
+ * - String: String to use for indentation (first 10 characters)
280
+ * - Undefined/null: No formatting (compact output)
281
+ *
282
+ * @returns A `Result<string, string>` containing:
283
+ *
284
+ * - On success: `Result.ok(jsonString)` with all object keys sorted
285
+ * alphabetically
286
+ * - On failure: `Result.err(errorMessage)` describing the serialization error
217
287
  */
218
288
  export const stringifySortedKey = (
219
289
  value: UnknownRecord,
@@ -228,16 +298,15 @@ export namespace Json {
228
298
  }
229
299
 
230
300
  /**
301
+ * @param obj - The record to extract keys from. Must be a plain object.
302
+ * @param mut_keys - A mutable array to accumulate the collected keys. This
303
+ * array will be modified in-place by the function for performance reasons.
231
304
  * @internal
232
305
  * Recursively collects all property keys from a nested object structure.
233
306
  *
234
307
  * This helper function traverses an object and its nested objects and arrays,
235
308
  * collecting all string keys found at any level of nesting. The function mutates
236
309
  * the provided keys array for performance reasons.
237
- *
238
- * @param obj - The record to extract keys from. Must be a plain object.
239
- * @param mut_keys - A mutable array to accumulate the collected keys. This array
240
- * will be modified in-place by the function for performance reasons.
241
310
  */
242
311
  const keysDeepImpl = (
243
312
  obj: UnknownRecord,
@@ -261,17 +330,16 @@ const keysDeepImpl = (
261
330
  };
262
331
 
263
332
  /**
333
+ * @param obj - The record to extract keys from. Must be a plain object.
334
+ * @returns A readonly array of all string keys found in the object and its
335
+ * nested objects/arrays. May contain duplicates if the same key appears at
336
+ * multiple levels.
264
337
  * @internal
265
338
  * Extracts all property keys from a nested object structure into a flat array.
266
339
  *
267
340
  * This function serves as a safe wrapper around `keysDeepImpl`, creating a new
268
341
  * mutable array and passing it to the recursive implementation. The result
269
342
  * contains all keys found at any level of nesting within the input object.
270
- *
271
- * @param obj - The record to extract keys from. Must be a plain object.
272
- * @returns A readonly array of all string keys found in the object and its
273
- * nested objects/arrays. May contain duplicates if the same key appears
274
- * at multiple levels.
275
343
  */
276
344
  const keysDeep = (obj: UnknownRecord): readonly string[] => {
277
345
  const mut_keys: string[] = [];
@@ -216,11 +216,10 @@ describe('stringify', () => {
216
216
  expect(Json.stringify(Symbol('test'))).toStrictEqual(Result.ok(undefined));
217
217
  expect(Json.stringify(() => {})).toStrictEqual(Result.ok(undefined));
218
218
  // BigInt should cause an error
219
- expect(Result.isErr(Json.stringify(BigInt(123)))).toBe(true);
219
+ expect(Result.isErr(Json.stringify(123n))).toBe(true);
220
220
  });
221
221
 
222
222
  test('should handle circular references', () => {
223
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
224
223
  const mut_obj: any = { a: 1 };
225
224
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
226
225
  mut_obj.circular = mut_obj;
@@ -242,7 +241,6 @@ describe('stringify', () => {
242
241
  });
243
242
 
244
243
  test('should not throw errors', () => {
245
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
246
244
  const mut_circularArray: any[] = [];
247
245
  mut_circularArray.push(mut_circularArray);
248
246