@vinicunca/perkakas 1.14.0 → 1.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (563) hide show
  1. package/dist/add-prop.cjs +1 -1
  2. package/dist/add-prop.cjs.map +1 -1
  3. package/dist/add-prop.js.map +1 -1
  4. package/dist/add.cjs +1 -1
  5. package/dist/add.cjs.map +1 -1
  6. package/dist/add.js.map +1 -1
  7. package/dist/all-pass.cjs +1 -1
  8. package/dist/all-pass.cjs.map +1 -1
  9. package/dist/all-pass.js.map +1 -1
  10. package/dist/any-pass.cjs +1 -1
  11. package/dist/any-pass.cjs.map +1 -1
  12. package/dist/any-pass.js.map +1 -1
  13. package/dist/{binary-search-cutoff-index-TJlnoie4.js → binary-search-cutoff-index-CRPy-dOJ.js} +1 -1
  14. package/dist/{binary-search-cutoff-index-TJlnoie4.js.map → binary-search-cutoff-index-CRPy-dOJ.js.map} +1 -1
  15. package/dist/binary-search-cutoff-index-CdUUMUB1.cjs +2 -0
  16. package/dist/{binary-search-cutoff-index-CLFtXYPc.cjs.map → binary-search-cutoff-index-CdUUMUB1.cjs.map} +1 -1
  17. package/dist/capitalize.cjs +1 -1
  18. package/dist/capitalize.cjs.map +1 -1
  19. package/dist/capitalize.js.map +1 -1
  20. package/dist/ceil.cjs +1 -1
  21. package/dist/ceil.cjs.map +1 -1
  22. package/dist/ceil.js +1 -1
  23. package/dist/ceil.js.map +1 -1
  24. package/dist/chunk.cjs +1 -1
  25. package/dist/chunk.cjs.map +1 -1
  26. package/dist/chunk.js.map +1 -1
  27. package/dist/clamp.cjs +1 -1
  28. package/dist/clamp.cjs.map +1 -1
  29. package/dist/clamp.js.map +1 -1
  30. package/dist/clone.cjs +1 -1
  31. package/dist/clone.cjs.map +1 -1
  32. package/dist/clone.js.map +1 -1
  33. package/dist/concat.cjs +1 -1
  34. package/dist/concat.cjs.map +1 -1
  35. package/dist/concat.js.map +1 -1
  36. package/dist/conditional.cjs +2 -1
  37. package/dist/conditional.cjs.map +1 -0
  38. package/dist/conditional.js +2 -1
  39. package/dist/conditional.js.map +1 -0
  40. package/dist/constant.cjs.map +1 -1
  41. package/dist/constant.js.map +1 -1
  42. package/dist/count-by.cjs +1 -1
  43. package/dist/count-by.cjs.map +1 -1
  44. package/dist/count-by.js.map +1 -1
  45. package/dist/{curry-from-lazy-CtH1dp14.js → curry-from-lazy-BoPMn2L_.js} +1 -1
  46. package/dist/{curry-from-lazy-CtH1dp14.js.map → curry-from-lazy-BoPMn2L_.js.map} +1 -1
  47. package/dist/{curry-from-lazy-BvN_VKlH.cjs → curry-from-lazy-mdjeRP1g.cjs} +2 -2
  48. package/dist/{curry-from-lazy-BvN_VKlH.cjs.map → curry-from-lazy-mdjeRP1g.cjs.map} +1 -1
  49. package/dist/curry-on-Et2NUOHd.js +2 -0
  50. package/dist/curry-on-Et2NUOHd.js.map +1 -0
  51. package/dist/curry-on-wBH_q-mO.cjs +2 -0
  52. package/dist/curry-on-wBH_q-mO.cjs.map +1 -0
  53. package/dist/{curry-order-rules-DsJSy3gX.cjs → curry-order-rules-CacOTzfW.cjs} +2 -2
  54. package/dist/{curry-order-rules-DsJSy3gX.cjs.map → curry-order-rules-CacOTzfW.cjs.map} +1 -1
  55. package/dist/{curry-order-rules-BLyCSMdZ.js → curry-order-rules-Dage-BeC.js} +1 -1
  56. package/dist/{curry-order-rules-BLyCSMdZ.js.map → curry-order-rules-Dage-BeC.js.map} +1 -1
  57. package/dist/curry.cjs +1 -1
  58. package/dist/curry.cjs.map +1 -1
  59. package/dist/curry.js +1 -1
  60. package/dist/curry.js.map +1 -1
  61. package/dist/debounce.cjs.map +1 -1
  62. package/dist/debounce.js.map +1 -1
  63. package/dist/default-to.cjs +1 -1
  64. package/dist/default-to.cjs.map +1 -1
  65. package/dist/default-to.js.map +1 -1
  66. package/dist/difference-with.cjs +1 -1
  67. package/dist/difference-with.cjs.map +1 -1
  68. package/dist/difference-with.js +1 -1
  69. package/dist/difference-with.js.map +1 -1
  70. package/dist/difference.cjs +1 -1
  71. package/dist/difference.cjs.map +1 -1
  72. package/dist/difference.js +1 -1
  73. package/dist/difference.js.map +1 -1
  74. package/dist/divide.cjs +1 -1
  75. package/dist/divide.cjs.map +1 -1
  76. package/dist/divide.js.map +1 -1
  77. package/dist/do-nothing.cjs.map +1 -1
  78. package/dist/do-nothing.js.map +1 -1
  79. package/dist/drop-first-by.cjs +1 -1
  80. package/dist/drop-first-by.cjs.map +1 -1
  81. package/dist/drop-first-by.js +1 -1
  82. package/dist/drop-first-by.js.map +1 -1
  83. package/dist/drop-last-while.cjs +1 -1
  84. package/dist/drop-last-while.cjs.map +1 -1
  85. package/dist/drop-last-while.js.map +1 -1
  86. package/dist/drop-last.cjs +1 -1
  87. package/dist/drop-last.cjs.map +1 -1
  88. package/dist/drop-last.js.map +1 -1
  89. package/dist/drop-while.cjs +1 -1
  90. package/dist/drop-while.cjs.map +1 -1
  91. package/dist/drop-while.js.map +1 -1
  92. package/dist/drop.cjs +1 -1
  93. package/dist/drop.cjs.map +1 -1
  94. package/dist/drop.js +1 -1
  95. package/dist/drop.js.map +1 -1
  96. package/dist/ends-with.cjs +1 -1
  97. package/dist/ends-with.cjs.map +1 -1
  98. package/dist/ends-with.js.map +1 -1
  99. package/dist/entries.cjs +1 -1
  100. package/dist/entries.cjs.map +1 -1
  101. package/dist/entries.js.map +1 -1
  102. package/dist/evolve.cjs +1 -1
  103. package/dist/evolve.cjs.map +1 -1
  104. package/dist/evolve.js.map +1 -1
  105. package/dist/filter.cjs +1 -1
  106. package/dist/filter.cjs.map +1 -1
  107. package/dist/filter.js +1 -1
  108. package/dist/filter.js.map +1 -1
  109. package/dist/find-index.cjs +1 -1
  110. package/dist/find-index.cjs.map +1 -1
  111. package/dist/find-index.js.map +1 -1
  112. package/dist/find-last-index.cjs +1 -1
  113. package/dist/find-last-index.cjs.map +1 -1
  114. package/dist/find-last-index.js.map +1 -1
  115. package/dist/find-last.cjs +1 -1
  116. package/dist/find-last.cjs.map +1 -1
  117. package/dist/find-last.js.map +1 -1
  118. package/dist/find.cjs +1 -1
  119. package/dist/find.cjs.map +1 -1
  120. package/dist/find.js +1 -1
  121. package/dist/find.js.map +1 -1
  122. package/dist/first-by.cjs +1 -1
  123. package/dist/first-by.cjs.map +1 -1
  124. package/dist/first-by.js +1 -1
  125. package/dist/first-by.js.map +1 -1
  126. package/dist/first.cjs +1 -1
  127. package/dist/first.cjs.map +1 -1
  128. package/dist/first.js +1 -1
  129. package/dist/first.js.map +1 -1
  130. package/dist/flat-map.cjs +1 -1
  131. package/dist/flat-map.cjs.map +1 -1
  132. package/dist/flat-map.js.map +1 -1
  133. package/dist/flat.cjs +1 -1
  134. package/dist/flat.cjs.map +1 -1
  135. package/dist/flat.js +1 -1
  136. package/dist/flat.js.map +1 -1
  137. package/dist/floor.cjs +1 -1
  138. package/dist/floor.cjs.map +1 -1
  139. package/dist/floor.js +1 -1
  140. package/dist/floor.js.map +1 -1
  141. package/dist/for-each-obj.cjs +1 -1
  142. package/dist/for-each-obj.cjs.map +1 -1
  143. package/dist/for-each-obj.js.map +1 -1
  144. package/dist/for-each.cjs +1 -1
  145. package/dist/for-each.cjs.map +1 -1
  146. package/dist/for-each.js.map +1 -1
  147. package/dist/from-entries.cjs +1 -1
  148. package/dist/from-entries.cjs.map +1 -1
  149. package/dist/from-entries.js.map +1 -1
  150. package/dist/from-keys.cjs +1 -1
  151. package/dist/from-keys.cjs.map +1 -1
  152. package/dist/from-keys.js.map +1 -1
  153. package/dist/funnel.cjs.map +1 -1
  154. package/dist/funnel.js.map +1 -1
  155. package/dist/group-by-prop.cjs +1 -1
  156. package/dist/group-by-prop.cjs.map +1 -1
  157. package/dist/group-by-prop.js.map +1 -1
  158. package/dist/group-by.cjs +1 -1
  159. package/dist/group-by.cjs.map +1 -1
  160. package/dist/group-by.js.map +1 -1
  161. package/dist/has-at-least.cjs +1 -1
  162. package/dist/has-at-least.cjs.map +1 -1
  163. package/dist/has-at-least.js.map +1 -1
  164. package/dist/has-prop.cjs +2 -0
  165. package/dist/has-prop.cjs.map +1 -0
  166. package/dist/has-prop.js +2 -0
  167. package/dist/has-prop.js.map +1 -0
  168. package/dist/has-sub-object.cjs +1 -1
  169. package/dist/has-sub-object.cjs.map +1 -1
  170. package/dist/has-sub-object.js.map +1 -1
  171. package/dist/heap-BK0Y5t1Y.cjs +2 -0
  172. package/dist/{heap-C0zPQGC0.cjs.map → heap-BK0Y5t1Y.cjs.map} +1 -1
  173. package/dist/{heap-M6D40vkc.js → heap-CL5ahv5n.js} +2 -2
  174. package/dist/{heap-M6D40vkc.js.map → heap-CL5ahv5n.js.map} +1 -1
  175. package/dist/human-readable-file-size.cjs.map +1 -1
  176. package/dist/human-readable-file-size.js.map +1 -1
  177. package/dist/identity.cjs.map +1 -1
  178. package/dist/identity.js.map +1 -1
  179. package/dist/index-by.cjs +1 -1
  180. package/dist/index-by.cjs.map +1 -1
  181. package/dist/index-by.js.map +1 -1
  182. package/dist/index.cjs +1 -1
  183. package/dist/index.cjs.map +1 -1
  184. package/dist/index.d.cts +174 -202
  185. package/dist/index.d.cts.map +1 -1
  186. package/dist/index.d.ts +174 -202
  187. package/dist/index.d.ts.map +1 -1
  188. package/dist/index.js +1 -1
  189. package/dist/index.js.map +1 -1
  190. package/dist/intersection-with.cjs +1 -1
  191. package/dist/intersection-with.cjs.map +1 -1
  192. package/dist/intersection-with.js +1 -1
  193. package/dist/intersection-with.js.map +1 -1
  194. package/dist/intersection.cjs +1 -1
  195. package/dist/intersection.cjs.map +1 -1
  196. package/dist/intersection.js +1 -1
  197. package/dist/intersection.js.map +1 -1
  198. package/dist/invert.cjs +1 -1
  199. package/dist/invert.cjs.map +1 -1
  200. package/dist/invert.js.map +1 -1
  201. package/dist/is-array.cjs.map +1 -1
  202. package/dist/is-array.js.map +1 -1
  203. package/dist/is-big-int.cjs.map +1 -1
  204. package/dist/is-big-int.js.map +1 -1
  205. package/dist/is-boolean.cjs.map +1 -1
  206. package/dist/is-boolean.js.map +1 -1
  207. package/dist/is-date.cjs.map +1 -1
  208. package/dist/is-date.js.map +1 -1
  209. package/dist/is-deep-equal.cjs +1 -1
  210. package/dist/is-deep-equal.cjs.map +1 -1
  211. package/dist/is-deep-equal.js +1 -1
  212. package/dist/is-deep-equal.js.map +1 -1
  213. package/dist/is-defined.cjs.map +1 -1
  214. package/dist/is-defined.js.map +1 -1
  215. package/dist/is-empty.cjs.map +1 -1
  216. package/dist/is-empty.js.map +1 -1
  217. package/dist/is-emptyish.cjs.map +1 -1
  218. package/dist/is-emptyish.js.map +1 -1
  219. package/dist/is-error.cjs.map +1 -1
  220. package/dist/is-error.js.map +1 -1
  221. package/dist/is-function.cjs.map +1 -1
  222. package/dist/is-function.js.map +1 -1
  223. package/dist/is-included-in.cjs.map +1 -1
  224. package/dist/is-included-in.js.map +1 -1
  225. package/dist/is-non-null.cjs.map +1 -1
  226. package/dist/is-non-null.js.map +1 -1
  227. package/dist/is-non-nullish.cjs.map +1 -1
  228. package/dist/is-non-nullish.js.map +1 -1
  229. package/dist/is-not.cjs.map +1 -1
  230. package/dist/is-not.js.map +1 -1
  231. package/dist/is-nullish.cjs.map +1 -1
  232. package/dist/is-nullish.js.map +1 -1
  233. package/dist/is-number.cjs.map +1 -1
  234. package/dist/is-number.js.map +1 -1
  235. package/dist/is-object-type.cjs.map +1 -1
  236. package/dist/is-object-type.js.map +1 -1
  237. package/dist/is-plain-object.cjs.map +1 -1
  238. package/dist/is-plain-object.js.map +1 -1
  239. package/dist/is-promise.cjs.map +1 -1
  240. package/dist/is-promise.js.map +1 -1
  241. package/dist/is-shallow-equal.cjs +1 -1
  242. package/dist/is-shallow-equal.cjs.map +1 -1
  243. package/dist/is-shallow-equal.js.map +1 -1
  244. package/dist/is-strict-equal.cjs +1 -1
  245. package/dist/is-strict-equal.cjs.map +1 -1
  246. package/dist/is-strict-equal.js.map +1 -1
  247. package/dist/is-string.cjs.map +1 -1
  248. package/dist/is-string.js.map +1 -1
  249. package/dist/is-symbol.cjs.map +1 -1
  250. package/dist/is-symbol.js.map +1 -1
  251. package/dist/is-truthy.cjs.map +1 -1
  252. package/dist/is-truthy.js.map +1 -1
  253. package/dist/join.cjs +1 -1
  254. package/dist/join.cjs.map +1 -1
  255. package/dist/join.js.map +1 -1
  256. package/dist/key-codes.cjs.map +1 -1
  257. package/dist/key-codes.js.map +1 -1
  258. package/dist/keys.cjs +1 -1
  259. package/dist/keys.cjs.map +1 -1
  260. package/dist/keys.js.map +1 -1
  261. package/dist/last.cjs +1 -1
  262. package/dist/last.cjs.map +1 -1
  263. package/dist/last.js.map +1 -1
  264. package/dist/{lazy-data-last-impl-Vt_M0l7X.js → lazy-data-last-impl--3B10z3s.js} +1 -1
  265. package/dist/{lazy-data-last-impl-Vt_M0l7X.js.map → lazy-data-last-impl--3B10z3s.js.map} +1 -1
  266. package/dist/lazy-data-last-impl-Dd5zjCfU.cjs +2 -0
  267. package/dist/{lazy-data-last-impl-B05ZpguF.cjs.map → lazy-data-last-impl-Dd5zjCfU.cjs.map} +1 -1
  268. package/dist/length.cjs +1 -1
  269. package/dist/length.cjs.map +1 -1
  270. package/dist/length.js.map +1 -1
  271. package/dist/map-keys.cjs +1 -1
  272. package/dist/map-keys.cjs.map +1 -1
  273. package/dist/map-keys.js.map +1 -1
  274. package/dist/map-to-obj.cjs +1 -1
  275. package/dist/map-to-obj.cjs.map +1 -1
  276. package/dist/map-to-obj.js.map +1 -1
  277. package/dist/map-values.cjs +1 -1
  278. package/dist/map-values.cjs.map +1 -1
  279. package/dist/map-values.js.map +1 -1
  280. package/dist/map-with-feedback.cjs +1 -1
  281. package/dist/map-with-feedback.cjs.map +1 -1
  282. package/dist/map-with-feedback.js +1 -1
  283. package/dist/map-with-feedback.js.map +1 -1
  284. package/dist/map.cjs +1 -1
  285. package/dist/map.cjs.map +1 -1
  286. package/dist/map.js.map +1 -1
  287. package/dist/mean-by.cjs +1 -1
  288. package/dist/mean-by.cjs.map +1 -1
  289. package/dist/mean-by.js.map +1 -1
  290. package/dist/mean.cjs +1 -1
  291. package/dist/mean.cjs.map +1 -1
  292. package/dist/mean.js.map +1 -1
  293. package/dist/median.cjs +1 -1
  294. package/dist/median.cjs.map +1 -1
  295. package/dist/median.js.map +1 -1
  296. package/dist/merge-all.cjs.map +1 -1
  297. package/dist/merge-all.js.map +1 -1
  298. package/dist/merge-deep.cjs +1 -1
  299. package/dist/merge-deep.cjs.map +1 -1
  300. package/dist/merge-deep.js.map +1 -1
  301. package/dist/merge.cjs +1 -1
  302. package/dist/merge.cjs.map +1 -1
  303. package/dist/merge.js.map +1 -1
  304. package/dist/multiply.cjs +1 -1
  305. package/dist/multiply.cjs.map +1 -1
  306. package/dist/multiply.js.map +1 -1
  307. package/dist/{nth-by-zZ3RM-mR.cjs → nth-by-BrkoqeV2.cjs} +2 -2
  308. package/dist/{nth-by-zZ3RM-mR.cjs.map → nth-by-BrkoqeV2.cjs.map} +1 -1
  309. package/dist/{nth-by-DhfNV5xd.js → nth-by-DGcGGvJX.js} +2 -2
  310. package/dist/{nth-by-DhfNV5xd.js.map → nth-by-DGcGGvJX.js.map} +1 -1
  311. package/dist/nth-by.cjs +1 -1
  312. package/dist/nth-by.js +1 -1
  313. package/dist/obj-of.cjs +1 -1
  314. package/dist/obj-of.cjs.map +1 -1
  315. package/dist/obj-of.js.map +1 -1
  316. package/dist/omit-by.cjs +1 -1
  317. package/dist/omit-by.cjs.map +1 -1
  318. package/dist/omit-by.js.map +1 -1
  319. package/dist/omit.cjs +1 -1
  320. package/dist/omit.cjs.map +1 -1
  321. package/dist/omit.js.map +1 -1
  322. package/dist/once.cjs.map +1 -1
  323. package/dist/once.js.map +1 -1
  324. package/dist/only.cjs +1 -1
  325. package/dist/only.cjs.map +1 -1
  326. package/dist/only.js.map +1 -1
  327. package/dist/partial-bind.cjs.map +1 -1
  328. package/dist/partial-bind.js.map +1 -1
  329. package/dist/partial-last-bind.cjs.map +1 -1
  330. package/dist/partial-last-bind.js.map +1 -1
  331. package/dist/partition.cjs +1 -1
  332. package/dist/partition.cjs.map +1 -1
  333. package/dist/partition.js.map +1 -1
  334. package/dist/path-or.cjs +1 -1
  335. package/dist/path-or.cjs.map +1 -1
  336. package/dist/path-or.js.map +1 -1
  337. package/dist/pick-by.cjs +1 -1
  338. package/dist/pick-by.cjs.map +1 -1
  339. package/dist/pick-by.js.map +1 -1
  340. package/dist/pick.cjs +1 -1
  341. package/dist/pick.cjs.map +1 -1
  342. package/dist/pick.js.map +1 -1
  343. package/dist/pipe.cjs +1 -1
  344. package/dist/pipe.cjs.map +1 -1
  345. package/dist/pipe.js +1 -1
  346. package/dist/pipe.js.map +1 -1
  347. package/dist/piped.cjs +1 -1
  348. package/dist/piped.cjs.map +1 -1
  349. package/dist/piped.js.map +1 -1
  350. package/dist/product.cjs +1 -1
  351. package/dist/product.cjs.map +1 -1
  352. package/dist/product.js.map +1 -1
  353. package/dist/prop.cjs.map +1 -1
  354. package/dist/prop.js.map +1 -1
  355. package/dist/pull-object.cjs +1 -1
  356. package/dist/pull-object.cjs.map +1 -1
  357. package/dist/pull-object.js.map +1 -1
  358. package/dist/random-big-int.cjs.map +1 -1
  359. package/dist/random-big-int.js.map +1 -1
  360. package/dist/random-integer.cjs.map +1 -1
  361. package/dist/random-integer.js.map +1 -1
  362. package/dist/random-string.cjs +1 -1
  363. package/dist/random-string.cjs.map +1 -1
  364. package/dist/random-string.js.map +1 -1
  365. package/dist/range.cjs +1 -1
  366. package/dist/range.cjs.map +1 -1
  367. package/dist/range.js.map +1 -1
  368. package/dist/rank-by.cjs +1 -1
  369. package/dist/rank-by.cjs.map +1 -1
  370. package/dist/rank-by.js +1 -1
  371. package/dist/rank-by.js.map +1 -1
  372. package/dist/reduce.cjs +1 -1
  373. package/dist/reduce.cjs.map +1 -1
  374. package/dist/reduce.js.map +1 -1
  375. package/dist/reverse.cjs +1 -1
  376. package/dist/reverse.cjs.map +1 -1
  377. package/dist/reverse.js.map +1 -1
  378. package/dist/round.cjs +1 -1
  379. package/dist/round.cjs.map +1 -1
  380. package/dist/round.js +1 -1
  381. package/dist/round.js.map +1 -1
  382. package/dist/sample.cjs +1 -1
  383. package/dist/sample.cjs.map +1 -1
  384. package/dist/sample.js.map +1 -1
  385. package/dist/set-path.cjs +1 -1
  386. package/dist/set-path.cjs.map +1 -1
  387. package/dist/set-path.js.map +1 -1
  388. package/dist/set.cjs +1 -1
  389. package/dist/set.cjs.map +1 -1
  390. package/dist/set.js.map +1 -1
  391. package/dist/shuffle.cjs +1 -1
  392. package/dist/shuffle.cjs.map +1 -1
  393. package/dist/shuffle.js.map +1 -1
  394. package/dist/sleep.cjs.map +1 -1
  395. package/dist/sleep.js.map +1 -1
  396. package/dist/slice-string.cjs.map +1 -1
  397. package/dist/slice-string.js.map +1 -1
  398. package/dist/slugify.cjs.map +1 -1
  399. package/dist/slugify.js.map +1 -1
  400. package/dist/sort-by.cjs +1 -1
  401. package/dist/sort-by.cjs.map +1 -1
  402. package/dist/sort-by.js +1 -1
  403. package/dist/sort-by.js.map +1 -1
  404. package/dist/sort.cjs +1 -1
  405. package/dist/sort.cjs.map +1 -1
  406. package/dist/sort.js.map +1 -1
  407. package/dist/sorted-index-by.cjs +1 -1
  408. package/dist/sorted-index-by.cjs.map +1 -1
  409. package/dist/sorted-index-by.js +1 -1
  410. package/dist/sorted-index-by.js.map +1 -1
  411. package/dist/sorted-index-with.cjs +1 -1
  412. package/dist/sorted-index-with.cjs.map +1 -1
  413. package/dist/sorted-index-with.js +1 -1
  414. package/dist/sorted-index-with.js.map +1 -1
  415. package/dist/sorted-index.cjs +1 -1
  416. package/dist/sorted-index.cjs.map +1 -1
  417. package/dist/sorted-index.js +1 -1
  418. package/dist/sorted-index.js.map +1 -1
  419. package/dist/sorted-last-index-by.cjs +1 -1
  420. package/dist/sorted-last-index-by.cjs.map +1 -1
  421. package/dist/sorted-last-index-by.js +1 -1
  422. package/dist/sorted-last-index-by.js.map +1 -1
  423. package/dist/sorted-last-index.cjs +1 -1
  424. package/dist/sorted-last-index.cjs.map +1 -1
  425. package/dist/sorted-last-index.js +1 -1
  426. package/dist/sorted-last-index.js.map +1 -1
  427. package/dist/splice.cjs +1 -1
  428. package/dist/splice.cjs.map +1 -1
  429. package/dist/splice.js +1 -1
  430. package/dist/splice.js.map +1 -1
  431. package/dist/split-at.cjs +1 -1
  432. package/dist/split-at.cjs.map +1 -1
  433. package/dist/split-at.js.map +1 -1
  434. package/dist/split-when.cjs +1 -1
  435. package/dist/split-when.cjs.map +1 -1
  436. package/dist/split-when.js.map +1 -1
  437. package/dist/split.cjs.map +1 -1
  438. package/dist/split.js.map +1 -1
  439. package/dist/starts-with.cjs +1 -1
  440. package/dist/starts-with.cjs.map +1 -1
  441. package/dist/starts-with.js.map +1 -1
  442. package/dist/string-to-path.cjs.map +1 -1
  443. package/dist/string-to-path.js.map +1 -1
  444. package/dist/subtract.cjs +1 -1
  445. package/dist/subtract.cjs.map +1 -1
  446. package/dist/subtract.js.map +1 -1
  447. package/dist/sum-by.cjs +1 -1
  448. package/dist/sum-by.cjs.map +1 -1
  449. package/dist/sum-by.js.map +1 -1
  450. package/dist/sum.cjs +1 -1
  451. package/dist/sum.cjs.map +1 -1
  452. package/dist/sum.js.map +1 -1
  453. package/dist/swap-in-place-CllcD0HG.cjs +2 -0
  454. package/dist/{swap-in-place-D1vasegg.cjs.map → swap-in-place-CllcD0HG.cjs.map} +1 -1
  455. package/dist/{swap-in-place-BzNaxwB3.js → swap-in-place-ubtnp8en.js} +1 -1
  456. package/dist/{swap-in-place-BzNaxwB3.js.map → swap-in-place-ubtnp8en.js.map} +1 -1
  457. package/dist/swap-indices.cjs +1 -1
  458. package/dist/swap-indices.cjs.map +1 -1
  459. package/dist/swap-indices.js.map +1 -1
  460. package/dist/swap-props.cjs +1 -1
  461. package/dist/swap-props.cjs.map +1 -1
  462. package/dist/swap-props.js.map +1 -1
  463. package/dist/take-first-by.cjs +1 -1
  464. package/dist/take-first-by.cjs.map +1 -1
  465. package/dist/take-first-by.js +1 -1
  466. package/dist/take-first-by.js.map +1 -1
  467. package/dist/take-last-while.cjs +1 -1
  468. package/dist/take-last-while.cjs.map +1 -1
  469. package/dist/take-last-while.js.map +1 -1
  470. package/dist/take-last.cjs +1 -1
  471. package/dist/take-last.cjs.map +1 -1
  472. package/dist/take-last.js.map +1 -1
  473. package/dist/take-while.cjs +1 -1
  474. package/dist/take-while.cjs.map +1 -1
  475. package/dist/take-while.js.map +1 -1
  476. package/dist/take.cjs +1 -1
  477. package/dist/take.cjs.map +1 -1
  478. package/dist/take.js +1 -1
  479. package/dist/take.js.map +1 -1
  480. package/dist/tap.cjs +1 -1
  481. package/dist/tap.cjs.map +1 -1
  482. package/dist/tap.js.map +1 -1
  483. package/dist/times.cjs +1 -1
  484. package/dist/times.cjs.map +1 -1
  485. package/dist/times.js.map +1 -1
  486. package/dist/to-camel-case.cjs +1 -1
  487. package/dist/to-camel-case.cjs.map +1 -1
  488. package/dist/to-camel-case.js +1 -1
  489. package/dist/to-camel-case.js.map +1 -1
  490. package/dist/to-kebab-case.cjs +1 -1
  491. package/dist/to-kebab-case.cjs.map +1 -1
  492. package/dist/to-kebab-case.js +1 -1
  493. package/dist/to-kebab-case.js.map +1 -1
  494. package/dist/to-lower-case.cjs +1 -1
  495. package/dist/to-lower-case.cjs.map +1 -1
  496. package/dist/to-lower-case.js.map +1 -1
  497. package/dist/to-single-BOkjnmkm.cjs +2 -0
  498. package/dist/{to-single-BunGuk7o.cjs.map → to-single-BOkjnmkm.cjs.map} +1 -1
  499. package/dist/{to-single-XEXXW73e.js → to-single-D6t2BxVq.js} +1 -1
  500. package/dist/{to-single-XEXXW73e.js.map → to-single-D6t2BxVq.js.map} +1 -1
  501. package/dist/to-snake-case.cjs +1 -1
  502. package/dist/to-snake-case.cjs.map +1 -1
  503. package/dist/to-snake-case.js +1 -1
  504. package/dist/to-snake-case.js.map +1 -1
  505. package/dist/to-title-case.cjs +1 -1
  506. package/dist/to-title-case.cjs.map +1 -1
  507. package/dist/to-title-case.js +1 -1
  508. package/dist/to-title-case.js.map +1 -1
  509. package/dist/to-upper-case.cjs +1 -1
  510. package/dist/to-upper-case.cjs.map +1 -1
  511. package/dist/to-upper-case.js.map +1 -1
  512. package/dist/truncate.cjs.map +1 -1
  513. package/dist/truncate.js.map +1 -1
  514. package/dist/uncapitalize.cjs +1 -1
  515. package/dist/uncapitalize.cjs.map +1 -1
  516. package/dist/uncapitalize.js.map +1 -1
  517. package/dist/unique-by.cjs +1 -1
  518. package/dist/unique-by.cjs.map +1 -1
  519. package/dist/unique-by.js +1 -1
  520. package/dist/unique-by.js.map +1 -1
  521. package/dist/unique-with.cjs +1 -1
  522. package/dist/unique-with.cjs.map +1 -1
  523. package/dist/unique-with.js +1 -1
  524. package/dist/unique-with.js.map +1 -1
  525. package/dist/unique.cjs +1 -1
  526. package/dist/unique.cjs.map +1 -1
  527. package/dist/unique.js +1 -1
  528. package/dist/unique.js.map +1 -1
  529. package/dist/utility-evaluators-BGM19SpK.cjs +2 -0
  530. package/dist/{utility-evaluators-C8koSp9T.cjs.map → utility-evaluators-BGM19SpK.cjs.map} +1 -1
  531. package/dist/{utility-evaluators-ZAaUtL2Z.js → utility-evaluators-DDW55xeL.js} +1 -1
  532. package/dist/{utility-evaluators-ZAaUtL2Z.js.map → utility-evaluators-DDW55xeL.js.map} +1 -1
  533. package/dist/values.cjs +1 -1
  534. package/dist/values.cjs.map +1 -1
  535. package/dist/values.js.map +1 -1
  536. package/dist/when.cjs.map +1 -1
  537. package/dist/when.js.map +1 -1
  538. package/dist/{with-precision-CgRuf7Wl.js → with-precision-D-84B_By.js} +1 -1
  539. package/dist/{with-precision-CgRuf7Wl.js.map → with-precision-D-84B_By.js.map} +1 -1
  540. package/dist/{with-precision-DVi9325n.cjs → with-precision-Dy5W6bdk.cjs} +2 -2
  541. package/dist/{with-precision-DVi9325n.cjs.map → with-precision-Dy5W6bdk.cjs.map} +1 -1
  542. package/dist/{words-C8Rd_80F.cjs → words-B-9EXtsW.cjs} +2 -2
  543. package/dist/{words-C8Rd_80F.cjs.map → words-B-9EXtsW.cjs.map} +1 -1
  544. package/dist/{words-CYZ0Lyko.js → words-CN1Qil5U.js} +2 -2
  545. package/dist/{words-CYZ0Lyko.js.map → words-CN1Qil5U.js.map} +1 -1
  546. package/dist/zip-with.cjs +1 -1
  547. package/dist/zip-with.cjs.map +1 -1
  548. package/dist/zip-with.js +1 -1
  549. package/dist/zip-with.js.map +1 -1
  550. package/dist/zip.cjs +1 -1
  551. package/dist/zip.cjs.map +1 -1
  552. package/dist/zip.js.map +1 -1
  553. package/package.json +11 -11
  554. package/dist/binary-search-cutoff-index-CLFtXYPc.cjs +0 -2
  555. package/dist/conditional-3wcaMG9k.cjs +0 -2
  556. package/dist/conditional-3wcaMG9k.cjs.map +0 -1
  557. package/dist/conditional-CTEJD5TX.js +0 -2
  558. package/dist/conditional-CTEJD5TX.js.map +0 -1
  559. package/dist/heap-C0zPQGC0.cjs +0 -2
  560. package/dist/lazy-data-last-impl-B05ZpguF.cjs +0 -2
  561. package/dist/swap-in-place-D1vasegg.cjs +0 -2
  562. package/dist/to-single-BunGuk7o.cjs +0 -2
  563. package/dist/utility-evaluators-C8koSp9T.cjs +0 -2
package/dist/index.d.ts CHANGED
@@ -1395,65 +1395,6 @@ type K = IsLiteral<boolean>;
1395
1395
  */
1396
1396
  type IsLiteral<T> = IsPrimitive<T> extends true ? IsNotFalse<IsLiteralUnion<T>> : false;
1397
1397
  //#endregion
1398
- //#region node_modules/.pnpm/type-fest@5.6.0/node_modules/type-fest/source/is-null.d.ts
1399
- /**
1400
- Returns a boolean for whether the given type is `null`.
1401
-
1402
- @example
1403
- ```
1404
- import type {IsNull} from 'type-fest';
1405
-
1406
- type NonNullFallback<T, Fallback> = IsNull<T> extends true ? Fallback : T;
1407
-
1408
- type Example1 = NonNullFallback<null, string>;
1409
- //=> string
1410
-
1411
- type Example2 = NonNullFallback<number, string>;
1412
- //=> number
1413
- ```
1414
-
1415
- @category Type Guard
1416
- @category Utilities
1417
- */
1418
- type IsNull<T> = [T] extends [null] ? true : false;
1419
- //#endregion
1420
- //#region node_modules/.pnpm/type-fest@5.6.0/node_modules/type-fest/source/is-unknown.d.ts
1421
- /**
1422
- Returns a boolean for whether the given type is `unknown`.
1423
-
1424
- @link https://github.com/dsherret/conditional-type-checks/pull/16
1425
-
1426
- Useful in type utilities, such as when dealing with unknown data from API calls.
1427
-
1428
- @example
1429
- ```
1430
- import type {IsUnknown} from 'type-fest';
1431
-
1432
- type A = IsUnknown<unknown>;
1433
- //=> true
1434
-
1435
- type B = IsUnknown<any>;
1436
- //=> false
1437
-
1438
- type C = IsUnknown<never>;
1439
- //=> false
1440
-
1441
- type D = IsUnknown<unknown[]>;
1442
- //=> false
1443
-
1444
- type E = IsUnknown<object>;
1445
- //=> false
1446
-
1447
- type F = IsUnknown<string>;
1448
- //=> false
1449
- ```
1450
-
1451
- @category Utilities
1452
- */
1453
- type IsUnknown<T> = (unknown extends T // `T` can be `unknown` or `any`
1454
- ? IsNull<T> extends false // `any` can be `null`, but `unknown` can't be
1455
- ? true : false : false);
1456
- //#endregion
1457
1398
  //#region node_modules/.pnpm/type-fest@5.6.0/node_modules/type-fest/source/tuple-of.d.ts
1458
1399
  /**
1459
1400
  Create a tuple type of the specified length with elements of the specified type.
@@ -4166,100 +4107,6 @@ type ArraySliceHelper<Array_ extends readonly unknown[], Start extends number =
4166
4107
  ? 0 : GreaterThan<AddResult, 0> extends true ? AddResult : 0 : never : Start), PositiveE extends number = (IsNegative<End> extends true ? Sum$1<ArrayLength, End> : End)> = true extends [IsNegative<PositiveS>, LessThanOrEqual<PositiveE, PositiveS>, GreaterThanOrEqual<PositiveS, ArrayLength>][number] ? [] : ArraySliceByPositiveIndex<Array_, TupleMin<[PositiveS, ArrayLength]>, TupleMin<[PositiveE, ArrayLength]>>;
4167
4108
  type ArraySliceByPositiveIndex<Array_ extends readonly unknown[], Start extends number, End extends number, Result extends Array<Array_[number]> = []> = Start extends End ? Result : ArraySliceByPositiveIndex<Array_, Sum$1<Start, 1>, End, [...Result, Array_[Start]]>;
4168
4109
  //#endregion
4169
- //#region node_modules/.pnpm/type-fest@5.6.0/node_modules/type-fest/source/fixed-length-array.d.ts
4170
- /**
4171
- Methods to exclude.
4172
- */
4173
- type ArrayLengthMutationKeys = 'splice' | 'push' | 'pop' | 'shift' | 'unshift';
4174
- /**
4175
- Create a type that represents an array of the given type and length. The `Array` prototype methods that manipulate its length are excluded from the resulting type.
4176
-
4177
- The problem with the built-in tuple type is that it allows mutating methods like `push`, `pop` etc, which can cause issues, like in the following example:
4178
-
4179
- @example
4180
- ```
4181
- const color: [number, number, number] = [255, 128, 64];
4182
-
4183
- function toHex([r, g, b]: readonly [number, number, number]) {
4184
- return `#${r.toString(16)}${g.toString(16)}${b.toString(16)}`;
4185
- }
4186
-
4187
- color.pop(); // Allowed
4188
-
4189
- console.log(toHex(color)); // Compiles fine, but fails at runtime since index `2` no longer contains a `number`.
4190
- ```
4191
-
4192
- `ArrayLengthMutationKeys` solves this problem by excluding methods like `push`, `pop` etc from the resulting type.
4193
-
4194
- @example
4195
- ```
4196
- import type {FixedLengthArray} from 'type-fest';
4197
-
4198
- const color: FixedLengthArray<number, 3> = [255, 128, 64];
4199
-
4200
- // @ts-expect-error
4201
- color.pop();
4202
- // Error: Property 'pop' does not exist on type 'FixedLengthArray<number, 3>'.
4203
- ```
4204
-
4205
- Use-cases:
4206
- - Declaring fixed-length tuples or arrays with a large number of items.
4207
- - Creating an array of coordinates with a static length, for example, length of 3 for a 3D vector.
4208
-
4209
- @example
4210
- ```
4211
- import type {FixedLengthArray} from 'type-fest';
4212
-
4213
- let color: FixedLengthArray<number, 3> = [255, 128, 64];
4214
-
4215
- const red = color[0];
4216
- //=> number
4217
- const green = color[1];
4218
- //=> number
4219
- const blue = color[2];
4220
- //=> number
4221
-
4222
- // @ts-expect-error
4223
- const alpha = color[3];
4224
- // Error: Property '3' does not exist on type 'FixedLengthArray<number, 3>'.
4225
-
4226
- // You can write to valid indices.
4227
- color[0] = 128;
4228
- color[1] = 64;
4229
- color[2] = 32;
4230
-
4231
- // But you cannot write to out-of-bounds indices.
4232
- // @ts-expect-error
4233
- color[3] = 0.5;
4234
- // Error: Property '3' does not exist on type 'FixedLengthArray<number, 3>'.
4235
-
4236
- // @ts-expect-error
4237
- color.push(0.5);
4238
- // Error: Property 'push' does not exist on type 'FixedLengthArray<number, 3>'.
4239
-
4240
- // @ts-expect-error
4241
- color = [0, 128, 255, 0.5];
4242
- // Error: Type '[number, number, number, number]' is not assignable to type 'FixedLengthArray<number, 3>'. Types of property 'length' are incompatible.
4243
-
4244
- // @ts-expect-error
4245
- color.length = 4;
4246
- // Error: Cannot assign to 'length' because it is a read-only property.
4247
-
4248
- function toHex([r, g, b]: readonly [number, number, number]) {
4249
- return `#${r.toString(16)}${g.toString(16)}${b.toString(16)}`;
4250
- }
4251
-
4252
- console.log(toHex(color)); // `FixedLengthArray<number, 3>` is assignable to `readonly [number, number, number]`.
4253
- ```
4254
-
4255
- @category Array
4256
- */
4257
- type FixedLengthArray<Element, Length extends number> = Except<TupleOf<Length, Element>, ArrayLengthMutationKeys | number | 'length'> & {
4258
- readonly length: Length;
4259
- } & (number extends Length ? {
4260
- [n: number]: Element;
4261
- } : {});
4262
- //#endregion
4263
4110
  //#region node_modules/.pnpm/type-fest@5.6.0/node_modules/type-fest/source/int-range.d.ts
4264
4111
  /**
4265
4112
  Generate a union of numbers between a specified start (inclusive) and end (exclusive), with an optional step.
@@ -5117,7 +4964,7 @@ type TuplePartsWithoutRequired<T extends IterableContainer, Suffix extends Array
5117
4964
  */
5118
4965
  suffix: Suffix;
5119
4966
  };
5120
- type TuplePartsWithoutFixed<T extends IterableContainer, Optional extends Array<unknown> = []> = T extends readonly [(infer Head)?, ...infer Tail] ? Or<T extends readonly [] ? true : false, Array<T[number]> extends Tail ? true : false> extends true ? {
4967
+ type TuplePartsWithoutFixed<T extends IterableContainer, Optional extends Array<unknown> = []> = T extends readonly [(infer Head)?, ...infer Tail] ? (T extends readonly [] ? true : Array<T[number]> extends Tail ? true : false) extends true ? {
5121
4968
  /**
5122
4969
  * A *fixed* tuple that defines the part of a tuple where all its
5123
4970
  * elements are suffixed with the optional operator (`?`); but with
@@ -5521,7 +5368,7 @@ declare function constant<const T>(value: T): <Args extends ReadonlyArray<unknow
5521
5368
  *
5522
5369
  * [For an interactive deeper dive and explanation see the following playground](https://www.typescriptlang.org/play/?noUncheckedIndexedAccess=true#code/PTAEBUAsEsGdQE4FMDGB7BATUdQCIAjNAVwDtMlM8AaHAF1EgEN4nQAzaU6OpUWJAzTtQAayQBPWADpQASQZMANrDSIkAR2LRk8HgHJYAKBCg0BAFaoGdNcwBufZUrMi6kJAFtpRuhIAOfABCJOSUoAC8oABKqBiYADwABv7InAAeAPoAJADeeB5KSmh4oAA++ADuGEpUAL5JtHiqnoIwpADmeAB8ANxGJmBQuMjoWDjweGREZBRUtDyMLKBMpDiknNy8-IKuoP5osLDQBEp84lKyCoaDZpbWoOjEtY9opHRMXKCkb3zCoO4vAC0GgfH5AqAAKqkGZhbBRWJjRIpNLQLJ5WB0BBcDoNJotNo4nr9W4AMQwK1IEggAC4IKAkOleOR4AAFJgIOjQZQJcDdUAEakUTZct60AjEGwedaOBACCbfNCKJSVJhSW5Y4hIWQAdQ8a0WuE1fEqfBQq34aoBzAY4AV0E8-iU0BQPCU1P8HK5ylAAApDcZTJptPZlEh3sDQOzOdylLzugBKXwBPhyWByR3O110d3R71xvmRKNe2PxhlM8OYeB2gD8+AkpTpeFIeBJpj14ZWKBQSCOOJW+wQaH8e0BAtCczuVhQtpTAGUUNj-AxzWtw7BiMhrUwGKlh7dGXA6Ho1mPzNPFOQGaQN1uePBwdqjBQUEoOWa3pjQEEAPKQgByAAiACigF0iEsyUP06A3gwsKTlEv4ASBgEANp4KkSAZJkhTFHgAC6-SmKAJEAHo1gM7b6l2PZ9p0A57iO-xjtME7hOe1i0JU1H6D80IoB4KDiJgchhOklAAILdr2sBJLcuDhkwpzhOA86LtAy6PBabzutet4mjaAIpvQoAAFSeNAHSQHQpkCkg4qSisKhoLcMHHBQCDWmaLAGUgd4MJgaC9qQ+gMIeX5fGe9wzrQqgmU8LzKHFBBILcSSQZslBJD4L5vlubkMABSFAaBdLQvBUFGAVoCsZB8JQv+xUoehmHYbhJSEbcJGgORlFDDAegPggWocBSpmmasEjjYOw57EVf4lYBvSgNxLqQKArSrA+hnODN-jwMItzzchoErFueDDqKpDKDQK0wAJCqMkwM66dxO6gEkealo+-zHYt3RyaYm03jsnirFy5pFBIy1xaa+jYIygQztaRpqMgdCbms+gSPoDkMIs6OY-AvH6AAhMmEJpuVbEiZmLpuhIX0+lEaYZk69M5ozJY8tTdV9F1PUUbcervbt7i4MDg3bvjaxg1SWkCLAtC9kjsa6e4hx8O4726MwEKrLcHHI6aG2WdZ3xIOEthLOQZzjnVlLYLVcLqEi8ACJ6CA7u6tCrJgrmrKF6i6W8OB09mrx+a6n7K44azcZ2gLUmD4g7De2rSD4QA).
5523
5370
  */
5524
- type IsBounded<T> = (T extends unknown ? Or<IsBoundedString<T>, Or<IsNumericLiteral<T>, IsSymbolLiteral<T>>> : never) extends true ? true : false;
5371
+ type IsBounded<T> = (T extends unknown ? IsBoundedString<T> extends true ? true : IsNumericLiteral<T> extends true ? true : IsSymbolLiteral<T> extends true ? true : false : never) extends true ? true : false;
5525
5372
  /**
5526
5373
  * Literal strings can be unbounded when they are a template literal which
5527
5374
  * contains non-literal components (e.g. `prefix_${string}`), this is because
@@ -5986,6 +5833,11 @@ type DropFixedTuple<T, N, IncludePrefixes = false, Dropped extends Array<unknown
5986
5833
  /**
5987
5834
  * Removes first `n` elements from the `array`.
5988
5835
  *
5836
+ * Related operations:
5837
+ * - `dropLast` - same, but from the end of the array.
5838
+ * - `splice` - to remove or insert at an arbitrary index.
5839
+ * - `take` - to keep the first `n` instead.
5840
+ *
5989
5841
  * @param array - The target array.
5990
5842
  * @param n - The number of elements to skip.
5991
5843
  * @signature
@@ -6000,6 +5852,11 @@ declare function drop<T extends IterableContainer, N extends number>(array: T, n
6000
5852
  /**
6001
5853
  * Removes first `n` elements from the `array`.
6002
5854
  *
5855
+ * Related operations:
5856
+ * - `dropLast` - same, but from the end of the array.
5857
+ * - `splice` - to remove or insert at an arbitrary index.
5858
+ * - `take` - to keep the first `n` instead.
5859
+ *
6003
5860
  * @param n - The number of elements to skip.
6004
5861
  * @signature
6005
5862
  * drop(n)(array)
@@ -6096,6 +5953,11 @@ declare function dropFirstBy<T>(n: number, ...rules: Readonly<NonEmptyArray<Orde
6096
5953
  /**
6097
5954
  * Removes last `n` elements from the `array`.
6098
5955
  *
5956
+ * Related operations:
5957
+ * - `drop` - same, but from the start of the array.
5958
+ * - `splice` - to remove or insert at an arbitrary index.
5959
+ * - `takeLast` - to keep the last `n` instead.
5960
+ *
6099
5961
  * @param array - The target array.
6100
5962
  * @param n - The number of elements to skip.
6101
5963
  * @signature
@@ -6109,6 +5971,11 @@ declare function dropLast<T extends IterableContainer>(array: T, n: number): Arr
6109
5971
  /**
6110
5972
  * Removes last `n` elements from the `array`.
6111
5973
  *
5974
+ * Related operations:
5975
+ * - `drop` - same, but from the start of the array.
5976
+ * - `splice` - to remove or insert at an arbitrary index.
5977
+ * - `takeLast` - to keep the last `n` instead.
5978
+ *
6112
5979
  * @param n - The number of elements to skip.
6113
5980
  * @signature
6114
5981
  * dropLast(n)(array)
@@ -6385,6 +6252,9 @@ type NonRefinedFilteredArray<T extends IterableContainer, IsItemIncluded extends
6385
6252
  * the elements from the given array that pass the test implemented by the
6386
6253
  * provided function. Equivalent to `Array.prototype.filter`.
6387
6254
  *
6255
+ * Related operations:
6256
+ * - `splice` - to shape the array by *position* rather than by *value*.
6257
+ *
6388
6258
  * @param data - The array to filter.
6389
6259
  * @param predicate - A function to execute for each element in the array. It
6390
6260
  * should return `true` to keep the element in the resulting array, and `false`
@@ -6406,6 +6276,9 @@ declare function filter<T extends IterableContainer, IsItemIncluded extends bool
6406
6276
  * the elements from the given array that pass the test implemented by the
6407
6277
  * provided function. Equivalent to `Array.prototype.filter`.
6408
6278
  *
6279
+ * Related operations:
6280
+ * - `splice` - to shape the array by *position* rather than by *value*.
6281
+ *
6409
6282
  * @param predicate - A function to execute for each element in the array. It
6410
6283
  * should return `true` to keep the element in the resulting array, and `false`
6411
6284
  * otherwise.
@@ -6976,7 +6849,7 @@ type FromEntriesTuple<E, Rest> = E extends Entry ? FromEntries<Rest> & Record<E[
6976
6849
  type FromEntriesArray<Entries extends IterableContainer<Entry>> = string extends AllKeys$1<Entries> ? Record<string, Entries[number][1]> : number extends AllKeys$1<Entries> ? Record<number, Entries[number][1]> : symbol extends AllKeys$1<Entries> ? Record<symbol, Entries[number][1]> : FromEntriesArrayWithLiteralKeys<Entries>;
6977
6850
  type FromEntriesArrayWithLiteralKeys<Entries extends IterableContainer<Entry>> = { [P in AllKeys$1<Entries>]?: ValueForKey<Entries, P> };
6978
6851
  type AllKeys$1<Entries extends IterableContainer<Entry>> = Extract<Entries[number], Entry>[0];
6979
- type ValueForKey<Entries extends IterableContainer<Entry>, K extends PropertyKey> = (Extract<Entries[number], Entry<K>> extends never ? Entries[number] : Extract<Entries[number], Entry<K>>)[1];
6852
+ type ValueForKey<Entries extends IterableContainer<Entry>, K extends PropertyKey> = (IsNever<Extract<Entries[number], Entry<K>>> extends true ? Entries[number] : Extract<Entries[number], Entry<K>>)[1];
6980
6853
  /**
6981
6854
  * Creates a new object from an array of tuples by pairing up first and second elements as {[key]: value}.
6982
6855
  * If a tuple is not supplied for any element in the array, the element will be ignored
@@ -7290,10 +7163,10 @@ declare function groupBy<T, Key extends PropertyKey = PropertyKey>(data: Readonl
7290
7163
  declare function groupBy<T, Key extends PropertyKey = PropertyKey>(callbackfn: (value: T, index: number, data: ReadonlyArray<T>) => Key | undefined): (items: ReadonlyArray<T>) => BoundedPartial<Record<Key, NonEmptyArray<T>>>;
7291
7164
  //#endregion
7292
7165
  //#region src/internal/types/array-required-prefix.d.ts
7293
- type ArrayRequiredPrefix<T extends IterableContainer, N extends number> = IsLiteral<N> extends true ? T extends unknown ? ClampedIntegerSubtract<N, [...TupleParts<T>['required'], ...TupleParts<T>['suffix']]['length']> extends infer Remainder extends number ? Remainder extends 0 ? T : And<GreaterThan<Remainder, TupleParts<T>['optional']['length']>, IsNever<TupleParts<T>['item']>> extends true ? PerkakasTypeError<'ArrayRequiredPrefix', 'The input tuple cannot satisfy the minimum', {
7166
+ type ArrayRequiredPrefix<T extends IterableContainer, N extends number> = IsLiteral<N> extends true ? T extends unknown ? ClampedIntegerSubtract<N, [...TupleParts<T>['required'], ...TupleParts<T>['suffix']]['length']> extends infer Remainder extends number ? Remainder extends 0 ? T : GreaterThan<Remainder, TupleParts<T>['optional']['length']> extends true ? IsNever<TupleParts<T>['item']> extends true ? PerkakasTypeError<'ArrayRequiredPrefix', 'The input tuple cannot satisfy the minimum', {
7294
7167
  type: never;
7295
7168
  metadata: [T, N];
7296
- }> : WithSameReadonly<T, [...TupleParts<T>['required'], ...OptionalTupleRequiredPrefix<TupleParts<T>['optional'], Remainder>, ...TupleOf<ClampedIntegerSubtract<Remainder, TupleParts<T>['optional']['length']>, TupleParts<T>['item']>, ...CoercedArray<TupleParts<T>['item']>, ...TupleParts<T>['suffix']]> : PerkakasTypeError<'ArrayRequiredPrefix', 'Remainder didn\'t compute to a number?!', {
7169
+ }> : ExpandedRequiredPrefix<T, Remainder> : ExpandedRequiredPrefix<T, Remainder> : PerkakasTypeError<'ArrayRequiredPrefix', 'Remainder didn\'t compute to a number?!', {
7297
7170
  type: never;
7298
7171
  metadata: [T, N];
7299
7172
  }> : PerkakasTypeError<'ArrayRequiredPrefix', 'Failed to distribute union?!', {
@@ -7303,6 +7176,7 @@ type ArrayRequiredPrefix<T extends IterableContainer, N extends number> = IsLite
7303
7176
  type: never;
7304
7177
  metadata: N;
7305
7178
  }>;
7179
+ type ExpandedRequiredPrefix<T extends IterableContainer, Remainder extends number> = WithSameReadonly<T, [...TupleParts<T>['required'], ...OptionalTupleRequiredPrefix<TupleParts<T>['optional'], Remainder>, ...NTuple<TupleParts<T>['item'], ClampedIntegerSubtract<Remainder, TupleParts<T>['optional']['length']>>, ...CoercedArray<TupleParts<T>['item']>, ...TupleParts<T>['suffix']]>;
7306
7180
  type WithSameReadonly<Source, Destination> = IsEqual$1<Source, Readonly<Source>> extends true ? Readonly<Destination> : Destination;
7307
7181
  type OptionalTupleRequiredPrefix<T extends Array<unknown>, N, Prefix extends Array<unknown> = []> = Prefix['length'] extends N ? [...Prefix, ...Partial<T>] : T extends readonly [infer Head, ...infer Rest] ? OptionalTupleRequiredPrefix<Rest, N, [...Prefix, Head]> : Prefix;
7308
7182
  //#endregion
@@ -7315,7 +7189,7 @@ type ItemsSuperObject<T extends IterableContainer> = AllUnionFields<Exclude<T[nu
7315
7189
  type FixEmptyObject<T> = IsNever<keyof T> extends true ? EmptyObject : T;
7316
7190
  type EnsureValuesAreNonEmpty<T extends Record<PropertyKey, IterableContainer>> = Simplify<Omit<T, PossiblyEmptyArrayKeys<T>> & BoundedPartial<CoercedNonEmptyValues<Pick<T, PossiblyEmptyArrayKeys<T>>>>>;
7317
7191
  type PossiblyEmptyArrayKeys<T extends Record<PropertyKey, IterableContainer>> = keyof T extends infer Key extends unknown ? Key extends keyof T ? IsNonEmptyArray<T[Key]> extends true ? never : Key : never : never;
7318
- type IsNonEmptyArray<T extends IterableContainer> = Or<IsNonEmptyFixedTuple<TupleParts<T>['required']>, IsNonEmptyFixedTuple<TupleParts<T>['suffix']>>;
7192
+ type IsNonEmptyArray<T extends IterableContainer> = IsNonEmptyFixedTuple<TupleParts<T>['required']> extends true ? true : IsNonEmptyFixedTuple<TupleParts<T>['suffix']> extends true ? true : false;
7319
7193
  type IsNonEmptyFixedTuple<T> = IsNever<Extract<T, readonly []>>;
7320
7194
  type CoercedNonEmptyValues<T extends Record<PropertyKey, IterableContainer>> = { [P in keyof T]: ArrayRequiredPrefix<T[P], 1> };
7321
7195
  /**
@@ -7438,12 +7312,56 @@ declare function hasAtLeast(data: IterableContainer, minimum: number): boolean;
7438
7312
  declare function hasAtLeast<N extends number>(minimum: IsNumericLiteral<N> extends true ? N : never): <T extends IterableContainer>(data: IterableContainer | T) => data is ArrayRequiredPrefix<T, N>;
7439
7313
  declare function hasAtLeast(minimum: number): (data: IterableContainer) => boolean;
7440
7314
  //#endregion
7315
+ //#region src/has-prop.d.ts
7316
+ type NonArray<T> = T extends ReadonlyArray<unknown> ? never : T;
7317
+ type HasProp<T, Key extends PropertyKey> = T extends ReadonlyArray<unknown> ? never : T extends unknown ? Key extends keyof T ? Simplify<T & Required<Pick<T, Key>>> : never : never;
7318
+ /**
7319
+ * Checks if `data` has a prop `key`.
7320
+ *
7321
+ * Uses [`Object.hasOwn`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwn)
7322
+ * which only checks own properties, skipping properties inherited through the
7323
+ * prototype chain.
7324
+ *
7325
+ * - Use `prop` to read the value.
7326
+ *
7327
+ * @param data - The object to test.
7328
+ * @param key - The key to look up.
7329
+ * @signature
7330
+ * hasProp(data, key)
7331
+ * @example
7332
+ * hasProp({ a: 1 }, "a"); //=> true
7333
+ * @dataFirst
7334
+ * @category Guard
7335
+ */
7336
+ declare function hasProp<T extends object, Key extends KeysOfUnion<T>>(data: NonArray<T>, key: IsBounded<Key> extends true ? Key : never): data is HasProp<T, Key>;
7337
+ declare function hasProp<T extends object>(data: T, key: KeysOfUnion<T>): boolean;
7338
+ /**
7339
+ * Checks if `data` has a prop `key`.
7340
+ *
7341
+ * Uses [`Object.hasOwn`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwn)
7342
+ * which only checks own properties, skipping properties inherited through the
7343
+ * prototype chain.
7344
+ *
7345
+ * - Use `prop` to read the value.
7346
+ *
7347
+ * @param key - The key to look up.
7348
+ * @signature
7349
+ * hasProp(key)(data)
7350
+ * @example
7351
+ * pipe({ a: 1 }, hasProp("a")); //=> true
7352
+ * filter([] as { a?: number }[], hasProp("a")); //=> typed as { a: number }[]
7353
+ * @dataLast
7354
+ * @category Guard
7355
+ */
7356
+ declare function hasProp<T extends object, Key extends KeysOfUnion<T>>(key: IsBounded<Key> extends true ? Key : never): (data: NonArray<T>) => data is HasProp<T, Key>;
7357
+ declare function hasProp<T extends object>(key: KeysOfUnion<T>): (data: T) => boolean;
7358
+ //#endregion
7441
7359
  //#region src/has-sub-object.d.ts
7442
7360
  declare const HAS_SUB_OBJECT_BRAND: unique symbol;
7443
7361
  type HasSubObjectGuard<T, S> = Simplify<Tagged<S & T, typeof HAS_SUB_OBJECT_BRAND>>;
7444
- type HasSubObjectObjectValue<A, B> = Partial<{ [Key in keyof A & keyof B]: A[Key] & B[Key] extends never ? B[Key] : A[Key] | B[Key] extends object ? HasSubObjectObjectValue<A[Key], B[Key]> : A[Key] & B[Key] extends object ? B[Key] : A[Key] }> & { [Key in Exclude<keyof A, keyof B> | Exclude<keyof B, keyof A>]: Key extends keyof B ? B[Key] : never };
7445
- type HasSubObjectData<Data, SubObject, RData = Required<Data>, RSubObject = Required<SubObject>> = Partial<{ [Key in keyof RData & keyof RSubObject]: RData[Key] & RSubObject[Key] extends never ? RSubObject[Key] : RData[Key] | RSubObject[Key] extends object ? HasSubObjectObjectValue<RData[Key], RSubObject[Key]> : RData[Key] & RSubObject[Key] extends object ? RSubObject[Key] : RData[Key] }> & { [Key in Exclude<keyof SubObject, keyof Data>]: SubObject[Key] };
7446
- type HasSubObjectSubObject<SubObject, Data, RSubObject = Required<SubObject>, RData = Required<Data>> = Partial<{ [Key in keyof RData & keyof RSubObject]: RData[Key] & RSubObject[Key] extends never ? RData[Key] : RData[Key] | RSubObject[Key] extends object ? HasSubObjectObjectValue<RSubObject[Key], RData[Key]> : RData[Key] & RSubObject[Key] extends object ? RData[Key] : RSubObject[Key] }> & Record<Exclude<keyof SubObject, keyof Data>, never>;
7362
+ type HasSubObjectObjectValue<A, B> = Partial<{ [Key in keyof A & keyof B]: IsNever<A[Key] & B[Key]> extends true ? B[Key] : A[Key] | B[Key] extends object ? HasSubObjectObjectValue<A[Key], B[Key]> : A[Key] & B[Key] extends object ? B[Key] : A[Key] }> & { [Key in Exclude<keyof A, keyof B> | Exclude<keyof B, keyof A>]: Key extends keyof B ? B[Key] : never };
7363
+ type HasSubObjectData<Data, SubObject, RData = Required<Data>, RSubObject = Required<SubObject>> = Partial<{ [Key in keyof RData & keyof RSubObject]: IsNever<RData[Key] & RSubObject[Key]> extends true ? RSubObject[Key] : RData[Key] | RSubObject[Key] extends object ? HasSubObjectObjectValue<RData[Key], RSubObject[Key]> : RData[Key] & RSubObject[Key] extends object ? RSubObject[Key] : RData[Key] }> & { [Key in Exclude<keyof SubObject, keyof Data>]: SubObject[Key] };
7364
+ type HasSubObjectSubObject<SubObject, Data, RSubObject = Required<SubObject>, RData = Required<Data>> = Partial<{ [Key in keyof RData & keyof RSubObject]: IsNever<RData[Key] & RSubObject[Key]> extends true ? RData[Key] : RData[Key] | RSubObject[Key] extends object ? HasSubObjectObjectValue<RSubObject[Key], RData[Key]> : RData[Key] & RSubObject[Key] extends object ? RData[Key] : RSubObject[Key] }> & Record<Exclude<keyof SubObject, keyof Data>, never>;
7447
7365
  /**
7448
7366
  * Checks if `subObject` is a sub-object of `object`, which means for every
7449
7367
  * property and value in `subObject`, there's the same property in `object`
@@ -7683,7 +7601,7 @@ declare function invert<T extends object>(): (object: T) => Inverted<T>;
7683
7601
  * @example
7684
7602
  * function isMyType<T>(data: T | MyType): data is NarrowedTo<T, MyType> { ... }
7685
7603
  */
7686
- type NarrowedTo<T, Base> = Extract<T, Base> extends never ? Base : IsAny<T> extends true ? Base : Extract<T, Base>;
7604
+ type NarrowedTo<T, Base> = IsNever<Extract<T, Base>> extends true ? Base : IsAny<T> extends true ? Base : Extract<T, Base>;
7687
7605
  //#endregion
7688
7606
  //#region src/is-array.d.ts
7689
7607
  /**
@@ -7757,11 +7675,11 @@ declare function isDate(data: unknown): data is Date;
7757
7675
  * for objects all props will be compared recursively.
7758
7676
  *
7759
7677
  * The built-in Date and RegExp are special-cased and will be compared by their
7760
- * values.
7678
+ * values. Objects with a `null` prototype are comparable to plain objects by
7679
+ * their enumerable properties.
7761
7680
  *
7762
7681
  * !IMPORTANT: TypedArrays and symbol properties of objects are not supported
7763
- * right now and might result in unexpected behavior. Please open an issue in
7764
- * the Perkakas github project if you need support for these types.
7682
+ * right now and might result in unexpected behavior.
7765
7683
  *
7766
7684
  * The result would be narrowed to the second value so that the function can be
7767
7685
  * used as a type guard.
@@ -7792,11 +7710,11 @@ declare function isDeepEqual<T>(data: T, other: T): boolean;
7792
7710
  * for objects all props will be compared recursively.
7793
7711
  *
7794
7712
  * The built-in Date and RegExp are special-cased and will be compared by their
7795
- * values.
7713
+ * values. Objects with a `null` prototype are comparable to plain objects by
7714
+ * their enumerable properties.
7796
7715
  *
7797
7716
  * !IMPORTANT: TypedArrays and symbol properties of objects are not supported
7798
- * right now and might result in unexpected behavior. Please open an issue in
7799
- * the Perkakas github project if you need support for these types.
7717
+ * right now and might result in unexpected behavior.
7800
7718
  *
7801
7719
  * The result would be narrowed to the second value so that the function can be
7802
7720
  * used as a type guard.
@@ -7883,14 +7801,14 @@ declare const EMPTYISH_BRAND: unique symbol;
7883
7801
  type Empty<T> = Tagged<T, typeof EMPTYISH_BRAND>;
7884
7802
  type Emptyish<T> = (T extends string ? '' : never) | (T extends object ? EmptyishObjectLike<T> : never) | (T extends null ? null : never) | (T extends undefined ? undefined : never);
7885
7803
  type EmptyishObjectLike<T extends object> = T extends ReadonlyArray<unknown> ? EmptyishArray<T> : T extends ReadonlyMap<infer Key, unknown> ? T extends Map<unknown, unknown> ? Empty<T> : ReadonlyMap<Key, never> : T extends ReadonlySet<unknown> ? T extends Set<unknown> ? Empty<T> : ReadonlySet<never> : EmptyishObject<T>;
7886
- type EmptyishArray<T extends ReadonlyArray<unknown>> = T extends readonly [] ? T : And<IsEqual$1<TupleParts<T>['required'], []>, IsEqual$1<TupleParts<T>['suffix'], []>> extends true ? T extends Array<unknown> ? Empty<T> : readonly [] : never;
7804
+ type EmptyishArray<T extends ReadonlyArray<unknown>> = T extends readonly [] ? T : TupleParts<T>['required'] extends readonly [] ? TupleParts<T>['suffix'] extends readonly [] ? T extends Array<unknown> ? Empty<T> : readonly [] : never : never;
7887
7805
  type EmptyishObject<T extends object> = T extends {
7888
7806
  length: infer Length extends number;
7889
7807
  } ? T extends string ? never : EmptyishArbitrary<T, Length> : T extends {
7890
7808
  size: infer Size extends number;
7891
7809
  } ? EmptyishArbitrary<T, Size> : IsNever<ValueOf<T>> extends true ? T : HasRequiredKeys<OmitIndexSignature<T>> extends true ? never : HasWritableKeys<T> extends true ? Empty<T> : { readonly [P in keyof T]: never };
7892
7810
  type EmptyishArbitrary<T, N> = IsNumericLiteral<N> extends true ? [0] extends [N] ? [N] extends [0] ? T : Empty<T> : never : Empty<T>;
7893
- type ShouldNotNarrow<T> = Or<Or<IsAny<T>, IsUnknown<T>>, IsEqual$1<T, {}>>;
7811
+ type ShouldNotNarrow<T> = unknown extends T ? true : IsAny<T> extends true ? true : IsEqual$1<T, {}> extends true ? true : false;
7894
7812
  /**
7895
7813
  * A function that checks if the input is empty. Empty is defined as anything
7896
7814
  * exposing a numerical `length`, or `size` property that is equal to `0`. This
@@ -7944,7 +7862,7 @@ declare function isEmptyish<T>(data: ShouldNotNarrow<T> extends true ? never : T
7944
7862
  declare function isEmptyish(data: unknown): boolean;
7945
7863
  //#endregion
7946
7864
  //#region src/is-error.d.ts
7947
- type DefinitelyError<T> = Extract<T, Error> extends never ? Error : Extract<T, Error>;
7865
+ type DefinitelyError<T> = IsNever<Extract<T, Error>> extends true ? Error : Extract<T, Error>;
7948
7866
  /**
7949
7867
  * A function that checks if the passed parameter is an Error and narrows its type accordingly.
7950
7868
  *
@@ -8499,8 +8417,8 @@ declare const KEY_CODES: {
8499
8417
  //#region src/keys.d.ts
8500
8418
  type Keys<T> = T extends IterableContainer ? ArrayKeys<T> : ObjectKeys<T>;
8501
8419
  type ArrayKeys<T extends IterableContainer> = { -readonly [Index in keyof T]: Index extends number | string ? ToString<IsIndexAfterSpread<T, Index> extends true ? number : Index> : never };
8502
- type IsIndexAfterSpread<T extends IterableContainer, Index extends number | string> = IndicesAfterSpread<T> extends never ? false : Index extends `${IndicesAfterSpread<T>}` ? true : false;
8503
- type IndicesAfterSpread<T extends ReadonlyArray<unknown> | [], Iterations extends ReadonlyArray<unknown> = []> = T[number] extends never ? never : T extends readonly [unknown, ...infer Tail] ? IndicesAfterSpread<Tail, [unknown, ...Iterations]> : T extends readonly [...infer Head, unknown] ? IndicesAfterSpread<Head, [unknown, ...Iterations]> | Iterations['length'] : Iterations['length'];
8420
+ type IsIndexAfterSpread<T extends IterableContainer, Index extends number | string> = IsNever<IndicesAfterSpread<T>> extends true ? false : Index extends `${IndicesAfterSpread<T>}` ? true : false;
8421
+ type IndicesAfterSpread<T extends ReadonlyArray<unknown> | [], Iterations extends ReadonlyArray<unknown> = []> = IsNever<T[number]> extends true ? never : T extends readonly [unknown, ...infer Tail] ? IndicesAfterSpread<Tail, [unknown, ...Iterations]> : T extends readonly [...infer Head, unknown] ? IndicesAfterSpread<Head, [unknown, ...Iterations]> | Iterations['length'] : Iterations['length'];
8504
8422
  type ObjectKeys<T> = T extends Record<PropertyKey, never> ? [] : Array<EnumerableStringKeyOf<T>>;
8505
8423
  /**
8506
8424
  * Returns a new array containing the keys of the array or object.
@@ -8638,7 +8556,7 @@ type MappedKeys<T, Key extends PropertyKey> = MaybePartial<T, Key, Record<Key, E
8638
8556
  *
8639
8557
  * @see BoundedPartial
8640
8558
  */
8641
- type MaybePartial<T, Key extends PropertyKey, Output> = And<IsBounded<Key>, Or<IsUnion<Key>, CouldBeEmpty<T>>> extends true ? Partial<Output> : Output;
8559
+ type MaybePartial<T, Key extends PropertyKey, Output> = IsBounded<Key> extends true ? IsUnion<Key> extends true ? Partial<Output> : CouldBeEmpty<T> extends true ? Partial<Output> : Output : Output;
8642
8560
  /**
8643
8561
  * Types that are extendable by `{}` are also satisfied by an empty object and
8644
8562
  * thus _could be empty_.
@@ -9236,7 +9154,7 @@ type PartialEnumerableKeysNarrowed<T extends object, S> = Simplify<ExactProps$1<
9236
9154
  type ExactProps$1<T, S> = { -readonly [P in keyof T as IsExactProp$1<T, P, S> extends true ? P : never]: Exclude<T[P], S> };
9237
9155
  type PartialProps$1<T, S> = { -readonly [P in keyof T as IsPartialProp$1<T, P, S> extends true ? P : never]?: Exclude<T[P], S> };
9238
9156
  type IsExactProp$1<T, P extends keyof T, S> = P extends symbol ? false : T[P] extends Exclude<T[P], S> ? S extends T[P] ? false : true : false;
9239
- type IsPartialProp$1<T, P extends keyof T, S> = P extends symbol ? false : Or<IsExactProp$1<T, P, S>, IsNever<Exclude<Required<T>[P], S>>> extends true ? false : true;
9157
+ type IsPartialProp$1<T, P extends keyof T, S> = P extends symbol ? false : IsExactProp$1<T, P, S> extends true ? false : IsNever<Exclude<Required<T>[P], S>> extends true ? false : true;
9240
9158
  /**
9241
9159
  * Creates a shallow copy of the data, and then removes any keys that the
9242
9160
  * predicate rejects. Symbol keys are not passed to the predicate and would be
@@ -9292,11 +9210,11 @@ declare function once<T>(fn: () => T): () => T;
9292
9210
  //#region src/only.d.ts
9293
9211
  type Only<T extends IterableContainer> = T extends readonly [...Array<unknown>, unknown, unknown] | readonly [] | readonly [unknown, ...Array<unknown>, unknown] | readonly [unknown, unknown, ...Array<unknown>] ? undefined : T extends readonly [unknown] ? T[number] : T[number] | undefined;
9294
9212
  /**
9295
- * Returns the first and only element of `array`, or undefined otherwise.
9213
+ * Returns the first and only element of `data`, or undefined otherwise.
9296
9214
  *
9297
- * @param array - The target array.
9215
+ * @param data - The target array.
9298
9216
  * @signature
9299
- * only(array)
9217
+ * only(data)
9300
9218
  * @example
9301
9219
  * only([]) // => undefined
9302
9220
  * only([1]) // => 1
@@ -9304,12 +9222,12 @@ type Only<T extends IterableContainer> = T extends readonly [...Array<unknown>,
9304
9222
  * @dataFirst
9305
9223
  * @category Array
9306
9224
  */
9307
- declare function only<T extends IterableContainer>(array: Readonly<T>): Only<T>;
9225
+ declare function only<T extends IterableContainer>(data: T): Only<T>;
9308
9226
  /**
9309
- * Returns the first and only element of `array`, or undefined otherwise.
9227
+ * Returns the first and only element of `data`, or undefined otherwise.
9310
9228
  *
9311
9229
  * @signature
9312
- * only()(array)
9230
+ * only()(data)
9313
9231
  * @example
9314
9232
  * pipe([], only()); // => undefined
9315
9233
  * pipe([1], only()); // => 1
@@ -9317,7 +9235,7 @@ declare function only<T extends IterableContainer>(array: Readonly<T>): Only<T>;
9317
9235
  * @dataLast
9318
9236
  * @category Array
9319
9237
  */
9320
- declare function only<T extends IterableContainer>(): (array: Readonly<T>) => Only<T>;
9238
+ declare function only<T extends IterableContainer>(): (data: T) => Only<T>;
9321
9239
  //#endregion
9322
9240
  //#region src/internal/types/tuple-splits.d.ts
9323
9241
  /**
@@ -9913,6 +9831,8 @@ type NonPropertyKey = object | null | undefined;
9913
9831
  * validated against the object type to provide stronger type safety, better
9914
9832
  * compile-time errors, and to enable autocompletion in IDEs.
9915
9833
  *
9834
+ * To check whether a key exists on the object, use `hasProp`.
9835
+ *
9916
9836
  * @param data - The object or array to access.
9917
9837
  * @param key - The key(s) for the property to extract.
9918
9838
  * @signature
@@ -9943,6 +9863,8 @@ declare function prop<T extends NonPropertyKey, Key0 extends KeysDeep<T, []>, Ke
9943
9863
  * validated against the object type to provide stronger type safety, better
9944
9864
  * compile-time errors, and to enable autocompletion in IDEs.
9945
9865
  *
9866
+ * To check whether a key exists on the object, use `hasProp`.
9867
+ *
9946
9868
  * @param key - The key(s) for the property to extract.
9947
9869
  * @signature
9948
9870
  * prop(...keys)(data);
@@ -10052,7 +9974,7 @@ declare function randomBigInt(from: bigint, to: bigint): bigint;
10052
9974
  //#endregion
10053
9975
  //#region src/random-integer.d.ts
10054
9976
  type MaxLiteral = 1000;
10055
- type RandomInteger<From extends number, To extends number> = Or<IsNever<NonNegativeInteger<From>>, IsNever<NonNegativeInteger<To>>> extends true ? number : IsEqual$1<From, To> extends true ? From : GreaterThan<From, To> extends true ? never : GreaterThanOrEqual<To, MaxLiteral> extends true ? number : IntRangeInclusive<From, To>;
9977
+ type RandomInteger<From extends number, To extends number> = IsNever<NonNegativeInteger<From>> extends true ? number : IsNever<NonNegativeInteger<To>> extends true ? number : IsEqual$1<From, To> extends true ? From : GreaterThan<From, To> extends true ? never : GreaterThanOrEqual<To, MaxLiteral> extends true ? number : IntRangeInclusive<From, To>;
10056
9978
  /**
10057
9979
  * Generate a random integer between `from` and `to` (inclusive).
10058
9980
  *
@@ -10307,7 +10229,7 @@ declare function round(value: number, precision: number): number;
10307
10229
  declare function round(precision: number): (value: number) => number;
10308
10230
  //#endregion
10309
10231
  //#region src/sample.d.ts
10310
- type Sampled<T extends IterableContainer, N extends number> = Or<IsEqual$1<N, 0>, IsEqual$1<T['length'], 0>> extends true ? [] : IsNever<NonNegativeInteger<N>> extends true ? SampledPrimitive<T> : IsLongerThan$1<T, N> extends true ? SampledLiteral<T, N> : Writable$1<T>;
10232
+ type Sampled<T extends IterableContainer, N extends number> = [N] extends [0] ? [] : [T['length']] extends [0] ? [] : IsNever<NonNegativeInteger<N>> extends true ? SampledPrimitive<T> : IsLongerThan$1<T, N> extends true ? SampledLiteral<T, N> : Writable$1<T>;
10311
10233
  /**
10312
10234
  * When N is not a non-negative integer **literal** we can't use it in our
10313
10235
  * reconstructing logic so we fallback to a simpler definition of the output of
@@ -10318,11 +10240,15 @@ type SampledPrimitive<T extends IterableContainer> = [...FixedSubTuples<TuplePar
10318
10240
  * Knowing N is a non-negative literal integer we can construct all sub-tuples
10319
10241
  * of T that are exactly N elements long.
10320
10242
  */
10321
- type SampledLiteral<T extends IterableContainer, N extends number> = Extract<FixedSubTuples<[...TupleParts<T>['required'], ...(IsNever<TupleParts<T>['item']> extends true ? [] : NTuple<TupleParts<T>['item'], N>), ...TupleParts<T>['suffix']]>, FixedLengthArray<unknown, N>> | SubSampled<TupleParts<T>['required'], TupleParts<T>['item'], TupleParts<T>['suffix'], N>;
10243
+ type SampledLiteral<T extends IterableContainer, N extends number> = Combinations<[...TupleParts<T>['required'], ...(IsNever<TupleParts<T>['item']> extends true ? [] : NTuple<TupleParts<T>['item'], N>), ...TupleParts<T>['suffix']], N> | SubSampled<TupleParts<T>['required'], TupleParts<T>['item'], TupleParts<T>['suffix'], N>;
10322
10244
  type SubSampled<Prefix extends ReadonlyArray<unknown>, Item, Suffix extends ReadonlyArray<unknown>, N extends number> = IsLongerThan$1<[...Prefix, ...Suffix], N> extends true ? never : [...Prefix, ...Suffix]['length'] extends N ? never : [...Prefix, ...Suffix] | SubSampled<[...Prefix, Item], Item, Suffix, N>;
10323
- type IsLongerThan$1<T extends ReadonlyArray<unknown>, N extends number> = IsEqual$1<T[N], undefined> extends true ? false : true;
10245
+ type IsLongerThan$1<T extends ReadonlyArray<unknown>, N extends number> = [T[N]] extends [undefined] ? false : true;
10324
10246
  type FixedSubTuples<T> = T extends readonly [infer Head, ...infer Rest] ? // For each element we either take it or skip it, and recurse over the rest.
10325
10247
  FixedSubTuples<Rest> | [Head, ...FixedSubTuples<Rest>] : [];
10248
+ /**
10249
+ * Compute all combinations (sub-tuples) of T of exactly length N.
10250
+ */
10251
+ type Combinations<T extends IterableContainer, N extends number, Counter extends ReadonlyArray<unknown> = []> = N extends unknown ? Counter['length'] extends N ? [] : T extends readonly [infer Head, ...infer Rest] ? [Head, ...Combinations<Rest, N, [unknown, ...Counter]>] | Combinations<Rest, N, Counter> : never : never;
10326
10252
  /**
10327
10253
  * Returns a random subset of size `sampleSize` from `array`.
10328
10254
  *
@@ -10951,36 +10877,56 @@ declare function sortedLastIndexBy<T>(item: T, valueFunction: (item: T, index: n
10951
10877
  //#endregion
10952
10878
  //#region src/splice.d.ts
10953
10879
  /**
10954
- * Removes elements from an array and, inserts new elements in their place.
10880
+ * Removes elements from an array and, optionally, inserts new elements in
10881
+ * their place.
10955
10882
  *
10956
- * @param items - The array to splice.
10883
+ * Related operations:
10884
+ * - `drop` - to skip past the first `n` elements.
10885
+ * - `dropLast` - to skip past the last `n` elements.
10886
+ * - `filter` - to shape the array by *value* rather than by *position*.
10887
+ * - `swapIndices` - to swap two elements by their indices.
10888
+ * - `take` - to keep only the first `n` elements.
10889
+ * - `takeLast` - to keep only the last `n` elements.
10890
+ *
10891
+ * @param data - The array to splice.
10957
10892
  * @param start - The index from which to start removing elements.
10958
10893
  * @param deleteCount - The number of elements to remove.
10959
- * @param replacement - The elements to insert into the array in place of the deleted elements.
10894
+ * @param replacement - Elements to insert at the cutoff point.
10960
10895
  * @signature
10961
- * splice(items, start, deleteCount, replacement)
10896
+ * splice(data, start, deleteCount);
10897
+ * splice(data, start, deleteCount, replacement);
10962
10898
  * @example
10963
- * splice([1,2,3,4,5,6,7,8], 2, 3, []); //=> [1,2,6,7,8]
10899
+ * splice([1,2,3,4,5,6,7,8], 2, 3); //=> [1,2,6,7,8]
10964
10900
  * splice([1,2,3,4,5,6,7,8], 2, 3, [9, 10]); //=> [1,2,9,10,6,7,8]
10965
10901
  * @dataFirst
10966
10902
  * @category Array
10967
10903
  */
10968
- declare function splice<T>(items: ReadonlyArray<T>, start: number, deleteCount: number, replacement: ReadonlyArray<T>): Array<T>;
10904
+ declare function splice<T extends IterableContainer>(data: T, start: number, deleteCount: number, replacement?: ReadonlyArray<T[number]>): Array<T[number]>;
10969
10905
  /**
10970
- * Removes elements from an array and, inserts new elements in their place.
10906
+ * Removes elements from an array and, optionally, inserts new elements in
10907
+ * their place.
10908
+ *
10909
+ * Related operations:
10910
+ * - `drop` - to skip past the first `n` elements.
10911
+ * - `dropLast` - to skip past the last `n` elements.
10912
+ * - `filter` - to shape the array by *value* rather than by *position*.
10913
+ * - `swapIndices` - to swap two elements by their indices.
10914
+ * - `take` - to keep only the first `n` elements.
10915
+ * - `takeLast` - to keep only the last `n` elements.
10971
10916
  *
10972
10917
  * @param start - The index from which to start removing elements.
10973
10918
  * @param deleteCount - The number of elements to remove.
10974
- * @param replacement - The elements to insert into the array in place of the deleted elements.
10919
+ * @param replacement - Elements to insert at the cutoff point.
10975
10920
  * @signature
10976
- * splice(start, deleteCount, replacement)(items)
10921
+ * splice(start, deleteCount)(data);
10922
+ * splice(start, deleteCount, replacement)(data);
10977
10923
  * @example
10978
- * pipe([1,2,3,4,5,6,7,8], splice(2, 3, [])) // => [1,2,6,7,8]
10924
+ * pipe([1,2,3,4,5,6,7,8], splice(2, 3)) // => [1,2,6,7,8]
10979
10925
  * pipe([1,2,3,4,5,6,7,8], splice(2, 3, [9, 10])) // => [1,2,9,10,6,7,8]
10980
10926
  * @dataLast
10981
10927
  * @category Array
10982
10928
  */
10983
- declare function splice<T>(start: number, deleteCount: number, replacement: ReadonlyArray<T>): (items: ReadonlyArray<T>) => Array<T>;
10929
+ declare function splice<T extends IterableContainer>(start: number, deleteCount: number, replacement?: ReadonlyArray<T[number]>): (data: T) => Array<T[number]>;
10984
10930
  //#endregion
10985
10931
  //#region src/split.d.ts
10986
10932
  type BuiltInReturnType = ReturnType<typeof String.prototype.split>;
@@ -11323,7 +11269,7 @@ type IsNonNegative<T extends number> = number extends T ? false : `${T}` extends
11323
11269
  type CharactersTuple<T extends string> = string extends T ? Array<string> : T extends `${infer C}${infer R}` ? [C, ...CharactersTuple<R>] : [];
11324
11270
  type SwapArrayInternal<T extends IterableContainer, Index1 extends number, Index2 extends number, Position extends ReadonlyArray<unknown> = [], Original extends IterableContainer = T> = T extends readonly [infer AtPosition, ...infer Rest] ? [Position['length'] extends Index1 ? Original[Index2] : Position['length'] extends Index2 ? Original[Index1] : AtPosition, ...SwapArrayInternal<Rest, Index1, Index2, [unknown, ...Position], Original>] : T;
11325
11271
  type SwapString<T extends string, K1 extends number, K2 extends number> = Join<SwapArray<CharactersTuple<T>, K1, K2>, ''>;
11326
- type SwapArray<T extends IterableContainer, K1 extends number, K2 extends number> = And<IsNonNegative<K1>, IsNonNegative<K2>> extends true ? And<isLessThan<K1, T['length']>, isLessThan<K2, T['length']>> extends true ? SwapArrayInternal<T, K1, K2> : T : Array<T[number]>;
11272
+ type SwapArray<T extends IterableContainer, K1 extends number, K2 extends number> = IsNonNegative<K1> extends true ? IsNonNegative<K2> extends true ? isLessThan<K1, T['length']> extends true ? isLessThan<K2, T['length']> extends true ? SwapArrayInternal<T, K1, K2> : T : T : Array<T[number]> : Array<T[number]>;
11327
11273
  type SwappedIndices<T extends IterableContainer | string, K1 extends number, K2 extends number> = T extends string ? SwapString<T, K1, K2> : T extends IterableContainer ? SwapArray<T, K1, K2> : never;
11328
11274
  /**
11329
11275
  * Swaps the positions of two elements in an array or string at the provided indices.
@@ -11332,6 +11278,9 @@ type SwappedIndices<T extends IterableContainer | string, K1 extends number, K2
11332
11278
  *
11333
11279
  * If either index is out of bounds the result would be a shallow copy of the input, as-is.
11334
11280
  *
11281
+ * Related operations:
11282
+ * - `splice` - for more general positional edits (remove a slice, insert at an index).
11283
+ *
11335
11284
  * @param data - The item to be manipulated. This can be an array, or a string.
11336
11285
  * @param index1 - The first index.
11337
11286
  * @param index2 - The second index.
@@ -11353,6 +11302,9 @@ declare function swapIndices<T extends IterableContainer | string, K1 extends nu
11353
11302
  *
11354
11303
  * If either index is out of bounds the result would be a shallow copy of the input, as-is.
11355
11304
  *
11305
+ * Related operations:
11306
+ * - `splice` - for more general positional edits (remove a slice, insert at an index).
11307
+ *
11356
11308
  * @param index1 - The first index.
11357
11309
  * @param index2 - The second index.
11358
11310
  * @returns Returns the manipulated array or string.
@@ -11402,6 +11354,11 @@ declare function swapProps<T extends object, K1 extends keyof T, K2 extends keyo
11402
11354
  /**
11403
11355
  * Returns the first `n` elements of `array`.
11404
11356
  *
11357
+ * Related operations:
11358
+ * - `drop` - to skip past the first `n` instead.
11359
+ * - `splice` - to remove or insert at an arbitrary index.
11360
+ * - `takeLast` - same, but from the end of the array.
11361
+ *
11405
11362
  * @param array - The array.
11406
11363
  * @param n - The number of elements to take.
11407
11364
  * @signature
@@ -11416,6 +11373,11 @@ declare function take<T extends IterableContainer>(array: T, n: number): Array<T
11416
11373
  /**
11417
11374
  * Returns the first `n` elements of `array`.
11418
11375
  *
11376
+ * Related operations:
11377
+ * - `drop` - to skip past the first `n` instead.
11378
+ * - `splice` - to remove or insert at an arbitrary index.
11379
+ * - `takeLast` - same, but from the end of the array.
11380
+ *
11419
11381
  * @param n - The number of elements to take.
11420
11382
  * @signature
11421
11383
  * take(n)(array)
@@ -11466,6 +11428,11 @@ declare function takeFirstBy<T>(n: number, ...rules: Readonly<NonEmptyArray<Orde
11466
11428
  /**
11467
11429
  * Takes the last `n` elements from the `array`.
11468
11430
  *
11431
+ * Related operations:
11432
+ * - `dropLast` - to skip past the last `n` instead.
11433
+ * - `splice` - to remove or insert at an arbitrary index.
11434
+ * - `take` - same, but from the start of the array.
11435
+ *
11469
11436
  * @param array - The target array.
11470
11437
  * @param n - The number of elements to take.
11471
11438
  * @signature
@@ -11479,6 +11446,11 @@ declare function takeLast<T extends IterableContainer>(array: T, n: number): Arr
11479
11446
  /**
11480
11447
  * Take the last `n` elements from the `array`.
11481
11448
  *
11449
+ * Related operations:
11450
+ * - `dropLast` - to skip past the last `n` instead.
11451
+ * - `splice` - to remove or insert at an arbitrary index.
11452
+ * - `take` - same, but from the start of the array.
11453
+ *
11482
11454
  * @param n - The number of elements to take.
11483
11455
  * @signature
11484
11456
  * takeLast(n)(array)
@@ -11636,7 +11608,7 @@ declare function times<T>(fn: (index: number) => T): <N extends number>(count: N
11636
11608
  * A simplified version of type-fest's `ApplyDefaultOptions` which isn't
11637
11609
  * exported. It allows us to provide a default fallback for an optional option.
11638
11610
  */
11639
- type OptionalOptionsWithDefaults<T, Provided extends T, Defaults extends T> = Merge<Defaults, { [Key in keyof Provided as Extract<Provided[Key], undefined> extends never ? Key : never]: Provided[Key] }> & Required<T>;
11611
+ type OptionalOptionsWithDefaults<T, Provided extends T, Defaults extends T> = Merge<Defaults, { [Key in keyof Provided as IsNever<Extract<Provided[Key], undefined>> extends true ? Key : never]: Provided[Key] }> & Required<T>;
11640
11612
  //#endregion
11641
11613
  //#region src/to-camel-case.d.ts
11642
11614
  declare const DEFAULT_PRESERVE_CONSECUTIVE_UPPERCASE$1 = true;
@@ -12024,7 +11996,7 @@ interface TruncateOptions {
12024
11996
  }
12025
11997
  declare const DEFAULT_OMISSION = "...";
12026
11998
  type Truncate<S extends string, N extends number, Options extends TruncateOptions> = IsNever<NonNegativeInteger<N>> extends true ? string : IsStringLiteral<S> extends true ? TruncateWithOptions<S, N, Options extends Pick<Required<TruncateOptions>, 'omission'> ? Options['omission'] : typeof DEFAULT_OMISSION, Options extends Pick<Required<TruncateOptions>, 'separator'> ? Options['separator'] : undefined> : string;
12027
- type TruncateWithOptions<S extends string, N extends number, Omission extends string, Separator extends string | RegExp | undefined> = N extends unknown ? IsEqual$1<N, 0> extends true ? '' : Omission extends unknown ? IsStringLiteral<Omission> extends true ? IsEqual$1<ClampedIntegerSubtract<N, StringLength<Omission>>, 0> extends true ? TruncateLiterals<Omission, N, ''> : And<IsStringLiteral<S>, IsEqual$1<Separator, undefined>> extends true ? TruncateLiterals<S, N, Omission> : string : string : never : never;
11999
+ type TruncateWithOptions<S extends string, N extends number, Omission extends string, Separator extends string | RegExp | undefined> = N extends unknown ? [N] extends [0] ? '' : Omission extends unknown ? IsStringLiteral<Omission> extends true ? [ClampedIntegerSubtract<N, StringLength<Omission>>] extends [0] ? TruncateLiterals<Omission, N, ''> : IsStringLiteral<S> extends true ? [Separator] extends [undefined] ? TruncateLiterals<S, N, Omission> : string : string : string : never : never;
12028
12000
  /**
12029
12001
  * This is the actual implementation of the truncation logic. It assumes all
12030
12002
  * its params are literals and valid.
@@ -12490,5 +12462,5 @@ declare function zipWith<T1 extends IterableContainer, T2 extends IterableContai
12490
12462
  //#region src/index.d.ts
12491
12463
  declare const isBrowser: boolean;
12492
12464
  //#endregion
12493
- export { DeepPartial, KEY_CODES, add, addProp, allPass, anyPass, capitalize, ceil, chunk, clamp, clone, concat, conditional, constant, countBy, curry, debounce, defaultTo, difference, differenceWith, divide, doNothing, drop, dropFirstBy, dropLast, dropLastWhile, dropWhile, endsWith, entries, evolve, filter, find, findIndex, findLast, findLastIndex, first, firstBy, flat, flatMap, floor, forEach, forEachObj, fromEntries, fromKeys, funnel, groupBy, groupByProp, hasAtLeast, hasSubObject, humanReadableFileSize, identity, indexBy, intersection, intersectionWith, invert, isArray, isBigInt, isBoolean, isBrowser, isDate, isDeepEqual, isDefined, isEmpty, isEmptyish, isError, isFunction, isIncludedIn, isNonNull, isNonNullish, isNot, isNullish, isNumber, isObjectType, isPlainObject, isPromise, isShallowEqual, isStrictEqual, isString, isSymbol, isTruthy, join, keys, last, length, map, mapKeys, mapToObj, mapValues, mapWithFeedback, mean, meanBy, median, merge, mergeAll, mergeDeep, multiply, nthBy, objOf, omit, omitBy, once, only, partialBind, partialLastBind, partition, pathOr, pick, pickBy, pipe, piped, product, prop, pullObject, randomBigInt, randomInteger, randomString, range, rankBy, reduce, reverse, round, sample, set, setPath, shuffle, sleep, sliceString, slugify, sort, sortBy, sortedIndex, sortedIndexBy, sortedIndexWith, sortedLastIndex, sortedLastIndexBy, splice, split, splitAt, splitWhen, startsWith, stringToPath, subtract, sum, sumBy, swapIndices, swapProps, take, takeFirstBy, takeLast, takeLastWhile, takeWhile, tap, times, toCamelCase, toKebabCase, toLowerCase, toSnakeCase, toTitleCase, toUpperCase, truncate, uncapitalize, unique, uniqueBy, uniqueWith, values, when, zip, zipWith, EMPTYISH_BRAND, HAS_SUB_OBJECT_BRAND, PerkakasErrorSymbol, emptyObjectSymbol, tag };
12465
+ export { DeepPartial, KEY_CODES, add, addProp, allPass, anyPass, capitalize, ceil, chunk, clamp, clone, concat, conditional, constant, countBy, curry, debounce, defaultTo, difference, differenceWith, divide, doNothing, drop, dropFirstBy, dropLast, dropLastWhile, dropWhile, endsWith, entries, evolve, filter, find, findIndex, findLast, findLastIndex, first, firstBy, flat, flatMap, floor, forEach, forEachObj, fromEntries, fromKeys, funnel, groupBy, groupByProp, hasAtLeast, hasProp, hasSubObject, humanReadableFileSize, identity, indexBy, intersection, intersectionWith, invert, isArray, isBigInt, isBoolean, isBrowser, isDate, isDeepEqual, isDefined, isEmpty, isEmptyish, isError, isFunction, isIncludedIn, isNonNull, isNonNullish, isNot, isNullish, isNumber, isObjectType, isPlainObject, isPromise, isShallowEqual, isStrictEqual, isString, isSymbol, isTruthy, join, keys, last, length, map, mapKeys, mapToObj, mapValues, mapWithFeedback, mean, meanBy, median, merge, mergeAll, mergeDeep, multiply, nthBy, objOf, omit, omitBy, once, only, partialBind, partialLastBind, partition, pathOr, pick, pickBy, pipe, piped, product, prop, pullObject, randomBigInt, randomInteger, randomString, range, rankBy, reduce, reverse, round, sample, set, setPath, shuffle, sleep, sliceString, slugify, sort, sortBy, sortedIndex, sortedIndexBy, sortedIndexWith, sortedLastIndex, sortedLastIndexBy, splice, split, splitAt, splitWhen, startsWith, stringToPath, subtract, sum, sumBy, swapIndices, swapProps, take, takeFirstBy, takeLast, takeLastWhile, takeWhile, tap, times, toCamelCase, toKebabCase, toLowerCase, toSnakeCase, toTitleCase, toUpperCase, truncate, uncapitalize, unique, uniqueBy, uniqueWith, values, when, zip, zipWith, EMPTYISH_BRAND, HAS_SUB_OBJECT_BRAND, PerkakasErrorSymbol, emptyObjectSymbol, tag };
12494
12466
  //# sourceMappingURL=index.d.ts.map