@vinicunca/perkakas 1.5.0 → 1.7.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 (569) hide show
  1. package/dist/add-prop.cjs +1 -1
  2. package/dist/add-prop.d.cts +1 -1
  3. package/dist/add-prop.d.ts +1 -1
  4. package/dist/add-prop.js +1 -1
  5. package/dist/add.cjs +1 -1
  6. package/dist/add.js +1 -1
  7. package/dist/all-pass.cjs +1 -1
  8. package/dist/all-pass.js +1 -1
  9. package/dist/any-pass.cjs +1 -1
  10. package/dist/any-pass.js +1 -1
  11. package/dist/array-required-prefix-Ck4lHkbA.d.cts +33 -0
  12. package/dist/array-required-prefix-DXv_WnmG.d.ts +33 -0
  13. package/dist/bounded-partial-BqwRN49U.d.cts +15 -0
  14. package/dist/bounded-partial-BzynYDVs.d.ts +15 -0
  15. package/dist/ceil.cjs +1 -1
  16. package/dist/ceil.js +1 -1
  17. package/dist/{chunk-AJQEGHF5.cjs → chunk-22AQJBPW.cjs} +1 -1
  18. package/dist/chunk-2HQM73IT.cjs +1 -0
  19. package/dist/chunk-2XGSSTCA.js +1 -0
  20. package/dist/chunk-3DOG24FJ.cjs +1 -0
  21. package/dist/{chunk-6ENW2VLC.cjs → chunk-3LC3CLYE.cjs} +1 -1
  22. package/dist/chunk-44LUF6RO.js +1 -0
  23. package/dist/chunk-4BTTPOEU.cjs +1 -0
  24. package/dist/chunk-4Y6KJJOW.js +1 -0
  25. package/dist/chunk-5PMGMODH.js +1 -0
  26. package/dist/{chunk-GVYLRJPB.cjs → chunk-66JP4PUG.cjs} +1 -1
  27. package/dist/chunk-6M4IYQFZ.js +1 -0
  28. package/dist/chunk-76VE5EC6.cjs +1 -0
  29. package/dist/{chunk-TNA73S2T.cjs → chunk-7C7R7JNX.cjs} +1 -1
  30. package/dist/{chunk-WONMP5WS.js → chunk-7V7IBWP5.js} +1 -1
  31. package/dist/chunk-B6SBIS6W.js +1 -0
  32. package/dist/chunk-BEMQAYI5.cjs +1 -0
  33. package/dist/chunk-BKBHW2XJ.js +1 -0
  34. package/dist/chunk-BSNCALDT.cjs +1 -0
  35. package/dist/chunk-CTGIT5TY.js +1 -0
  36. package/dist/{chunk-UGWBDJPI.cjs → chunk-D4TUHKBA.cjs} +1 -1
  37. package/dist/chunk-EK7ODJWE.js +1 -0
  38. package/dist/chunk-FGMSPUSF.cjs +1 -0
  39. package/dist/chunk-FIO5FNV2.js +1 -0
  40. package/dist/chunk-FOUZI2Q3.cjs +1 -0
  41. package/dist/chunk-GRKRFDIL.js +1 -0
  42. package/dist/chunk-GW4KDK3D.cjs +1 -0
  43. package/dist/chunk-HSNPZS6R.cjs +1 -0
  44. package/dist/chunk-ITDJLXHO.js +1 -0
  45. package/dist/{chunk-FLQYTU5W.cjs → chunk-JHFSYEXB.cjs} +1 -1
  46. package/dist/{chunk-WCPENZWH.js → chunk-JI5FJX2E.js} +1 -1
  47. package/dist/chunk-JYWIRZ2Z.js +1 -0
  48. package/dist/chunk-K26HQR4Y.cjs +1 -0
  49. package/dist/chunk-KYMVIFAW.cjs +1 -0
  50. package/dist/chunk-MBGSSEZN.cjs +1 -0
  51. package/dist/{chunk-22IDCBFS.js → chunk-MPWQN3WY.js} +1 -1
  52. package/dist/chunk-NHTBBY2L.js +1 -0
  53. package/dist/chunk-NQUTCPKD.js +1 -0
  54. package/dist/{chunk-ZQXE6PIV.cjs → chunk-NVCXF5UR.cjs} +1 -1
  55. package/dist/chunk-O74TUGYF.js +1 -0
  56. package/dist/chunk-OKBFQ7B6.js +1 -0
  57. package/dist/{chunk-MHEODCN3.cjs → chunk-OMHZCALN.cjs} +1 -1
  58. package/dist/chunk-P7RCAO7P.cjs +438 -0
  59. package/dist/chunk-QGF2XNZS.cjs +1 -0
  60. package/dist/chunk-R4O7XE2F.cjs +1 -0
  61. package/dist/chunk-RMOD5JNB.cjs +1 -0
  62. package/dist/chunk-RTFVY5D4.cjs +1 -0
  63. package/dist/chunk-SG2YWG6U.cjs +1 -0
  64. package/dist/chunk-SXNRBENP.cjs +1 -0
  65. package/dist/chunk-TSP3FU72.cjs +1 -0
  66. package/dist/chunk-TVMG2NYC.js +1 -0
  67. package/dist/chunk-TWCEO47X.cjs +1 -0
  68. package/dist/{chunk-L4FN2W5Q.cjs → chunk-TXPRX236.cjs} +1 -1
  69. package/dist/{chunk-3K7SNX4D.cjs → chunk-UURK6I3D.cjs} +1 -1
  70. package/dist/chunk-UWMBE6BM.js +1 -0
  71. package/dist/{chunk-VBH6SKKO.js → chunk-VI2QG3FU.js} +1 -1
  72. package/dist/chunk-XCG2UC6T.js +1 -0
  73. package/dist/chunk-YCSQX2SY.js +1 -0
  74. package/dist/{chunk-6XVLHSPK.js → chunk-YRVN4PYH.js} +1 -1
  75. package/dist/chunk-YWIXN5BR.js +1 -0
  76. package/dist/chunk-Z23BZCCD.js +438 -0
  77. package/dist/{chunk-EDZFEURO.js → chunk-Z5YZYBC2.js} +1 -1
  78. package/dist/chunk-Z7D7Q6U3.js +1 -0
  79. package/dist/chunk-ZITGCTSW.js +1 -0
  80. package/dist/chunk-ZMG3NQDL.js +1 -0
  81. package/dist/chunk.cjs +1 -1
  82. package/dist/chunk.d.cts +37 -41
  83. package/dist/chunk.d.ts +37 -41
  84. package/dist/chunk.js +1 -1
  85. package/dist/clamp.cjs +1 -1
  86. package/dist/clamp.js +1 -1
  87. package/dist/clamped-integer-subtract-DZ7rsJE4.d.cts +15 -0
  88. package/dist/clamped-integer-subtract-DZ7rsJE4.d.ts +15 -0
  89. package/dist/clone.cjs +1 -1
  90. package/dist/clone.js +1 -1
  91. package/dist/coerced-array-DRz3tqda.d.cts +14 -0
  92. package/dist/coerced-array-DRz3tqda.d.ts +14 -0
  93. package/dist/concat.cjs +1 -1
  94. package/dist/concat.js +1 -1
  95. package/dist/conditional.cjs +1 -1
  96. package/dist/conditional.d.cts +133 -43
  97. package/dist/conditional.d.ts +133 -43
  98. package/dist/conditional.js +1 -1
  99. package/dist/constant.cjs +1 -1
  100. package/dist/constant.js +1 -1
  101. package/dist/count-by.cjs +1 -1
  102. package/dist/count-by.d.cts +5 -4
  103. package/dist/count-by.d.ts +5 -4
  104. package/dist/count-by.js +1 -1
  105. package/dist/curry.cjs +1 -1
  106. package/dist/curry.js +1 -1
  107. package/dist/debounce.cjs +1 -1
  108. package/dist/debounce.js +1 -1
  109. package/dist/difference-with.cjs +1 -1
  110. package/dist/difference-with.js +1 -1
  111. package/dist/difference.cjs +1 -1
  112. package/dist/difference.js +1 -1
  113. package/dist/divide.cjs +1 -1
  114. package/dist/divide.js +1 -1
  115. package/dist/do-nothing.cjs +1 -1
  116. package/dist/do-nothing.js +1 -1
  117. package/dist/drop-first-by.cjs +1 -1
  118. package/dist/drop-first-by.d.cts +1 -1
  119. package/dist/drop-first-by.d.ts +1 -1
  120. package/dist/drop-first-by.js +1 -1
  121. package/dist/drop-last-while.cjs +1 -1
  122. package/dist/drop-last-while.js +1 -1
  123. package/dist/drop-last.cjs +1 -1
  124. package/dist/drop-last.js +1 -1
  125. package/dist/drop-while.cjs +1 -1
  126. package/dist/drop-while.js +1 -1
  127. package/dist/drop.cjs +1 -1
  128. package/dist/drop.d.cts +18 -30
  129. package/dist/drop.d.ts +18 -30
  130. package/dist/drop.js +1 -1
  131. package/dist/entries.cjs +1 -1
  132. package/dist/entries.d.cts +8 -5
  133. package/dist/entries.d.ts +8 -5
  134. package/dist/entries.js +1 -1
  135. package/dist/{enumerable-string-key-of-BQ4aR5ep.d.cts → enumerable-string-key-of-C4gsorXe.d.ts} +3 -1
  136. package/dist/{enumerable-string-key-of-BQ4aR5ep.d.ts → enumerable-string-key-of-D8w_3Yg8.d.cts} +3 -1
  137. package/dist/enumerable-string-keyed-value-of-BU9R_cEk.d.cts +9 -0
  138. package/dist/enumerable-string-keyed-value-of-BU9R_cEk.d.ts +9 -0
  139. package/dist/evolve.cjs +1 -1
  140. package/dist/evolve.js +1 -1
  141. package/dist/filter.cjs +1 -1
  142. package/dist/filter.d.cts +12 -4
  143. package/dist/filter.d.ts +12 -4
  144. package/dist/filter.js +1 -1
  145. package/dist/filtered-array-BCjySbC6.d.cts +18 -0
  146. package/dist/filtered-array-JKATL39M.d.ts +18 -0
  147. package/dist/find-index.cjs +1 -1
  148. package/dist/find-index.js +1 -1
  149. package/dist/find-last-index.cjs +1 -1
  150. package/dist/find-last-index.js +1 -1
  151. package/dist/find-last.cjs +1 -1
  152. package/dist/find-last.js +1 -1
  153. package/dist/find.cjs +1 -1
  154. package/dist/find.js +1 -1
  155. package/dist/first-by.cjs +1 -1
  156. package/dist/first-by.d.cts +1 -1
  157. package/dist/first-by.d.ts +1 -1
  158. package/dist/first-by.js +1 -1
  159. package/dist/first.cjs +1 -1
  160. package/dist/first.js +1 -1
  161. package/dist/flat-map.cjs +1 -1
  162. package/dist/flat-map.js +1 -1
  163. package/dist/flat.cjs +1 -1
  164. package/dist/flat.d.cts +2 -5
  165. package/dist/flat.d.ts +2 -5
  166. package/dist/flat.js +1 -1
  167. package/dist/floor.cjs +1 -1
  168. package/dist/floor.js +1 -1
  169. package/dist/for-each-obj.cjs +1 -1
  170. package/dist/for-each-obj.d.cts +3 -2
  171. package/dist/for-each-obj.d.ts +3 -2
  172. package/dist/for-each-obj.js +1 -1
  173. package/dist/for-each.cjs +1 -1
  174. package/dist/for-each.js +1 -1
  175. package/dist/from-entries.cjs +1 -1
  176. package/dist/from-entries.d.cts +4 -2
  177. package/dist/from-entries.d.ts +4 -2
  178. package/dist/from-entries.js +1 -1
  179. package/dist/from-keys.cjs +1 -1
  180. package/dist/from-keys.d.cts +4 -3
  181. package/dist/from-keys.d.ts +4 -3
  182. package/dist/from-keys.js +1 -1
  183. package/dist/funnel.cjs +1 -1
  184. package/dist/funnel.d.cts +7 -7
  185. package/dist/funnel.d.ts +7 -7
  186. package/dist/funnel.js +1 -1
  187. package/dist/funnel.lodash-debounce-with-cached-value.test.cjs +1 -1
  188. package/dist/funnel.lodash-debounce-with-cached-value.test.js +1 -1
  189. package/dist/funnel.lodash-debounce.test.cjs +1 -1
  190. package/dist/funnel.lodash-debounce.test.js +1 -1
  191. package/dist/funnel.lodash-throttle-with-cached-value.test.cjs +1 -1
  192. package/dist/funnel.lodash-throttle-with-cached-value.test.js +1 -1
  193. package/dist/funnel.lodash-throttle.test.cjs +1 -1
  194. package/dist/funnel.lodash-throttle.test.js +1 -1
  195. package/dist/funnel.perkakas-debounce.test.cjs +1 -0
  196. package/dist/funnel.perkakas-debounce.test.js +1 -0
  197. package/dist/funnel.reference-batch.test.cjs +1 -1
  198. package/dist/funnel.reference-batch.test.js +1 -1
  199. package/dist/funnel.test-d.cjs +1 -1
  200. package/dist/funnel.test-d.js +1 -1
  201. package/dist/funnel.test.cjs +1 -1
  202. package/dist/funnel.test.js +1 -1
  203. package/dist/group-by-prop.cjs +1 -0
  204. package/dist/group-by-prop.d.cts +93 -0
  205. package/dist/group-by-prop.d.ts +93 -0
  206. package/dist/group-by-prop.js +1 -0
  207. package/dist/group-by.cjs +1 -1
  208. package/dist/group-by.d.cts +15 -4
  209. package/dist/group-by.d.ts +15 -4
  210. package/dist/group-by.js +1 -1
  211. package/dist/has-at-least.cjs +1 -1
  212. package/dist/has-at-least.d.cts +7 -15
  213. package/dist/has-at-least.d.ts +7 -15
  214. package/dist/has-at-least.js +1 -1
  215. package/dist/has-sub-object.cjs +1 -1
  216. package/dist/has-sub-object.js +1 -1
  217. package/dist/human-readable-file-size.cjs +1 -1
  218. package/dist/human-readable-file-size.js +1 -1
  219. package/dist/identity.cjs +1 -1
  220. package/dist/identity.js +1 -1
  221. package/dist/if-D4QIikQ1.d.cts +5 -0
  222. package/dist/if-D4QIikQ1.d.ts +5 -0
  223. package/dist/index-by.cjs +1 -1
  224. package/dist/index-by.d.cts +5 -4
  225. package/dist/index-by.d.ts +5 -4
  226. package/dist/index-by.js +1 -1
  227. package/dist/index.cjs +1 -1
  228. package/dist/index.d.cts +15 -8
  229. package/dist/index.d.ts +15 -8
  230. package/dist/index.js +1 -1
  231. package/dist/intersection-with.cjs +1 -1
  232. package/dist/intersection-with.js +1 -1
  233. package/dist/intersection.cjs +1 -1
  234. package/dist/intersection.js +1 -1
  235. package/dist/invert.cjs +1 -1
  236. package/dist/invert.d.cts +2 -1
  237. package/dist/invert.d.ts +2 -1
  238. package/dist/invert.js +1 -1
  239. package/dist/is-array.cjs +1 -1
  240. package/dist/is-array.js +1 -1
  241. package/dist/is-big-int.cjs +1 -1
  242. package/dist/is-big-int.js +1 -1
  243. package/dist/is-boolean.cjs +1 -1
  244. package/dist/is-boolean.js +1 -1
  245. package/dist/is-bounded-record-C9WAwfA8.d.cts +30 -0
  246. package/dist/is-bounded-record-C9WAwfA8.d.ts +30 -0
  247. package/dist/is-date.cjs +1 -1
  248. package/dist/is-date.js +1 -1
  249. package/dist/is-deep-equal.cjs +1 -1
  250. package/dist/is-deep-equal.js +1 -1
  251. package/dist/is-defined.cjs +1 -1
  252. package/dist/is-defined.js +1 -1
  253. package/dist/is-empty.cjs +1 -1
  254. package/dist/is-empty.js +1 -1
  255. package/dist/is-error.cjs +1 -1
  256. package/dist/is-error.js +1 -1
  257. package/dist/is-function.cjs +1 -1
  258. package/dist/is-function.js +1 -1
  259. package/dist/is-included-in.cjs +1 -1
  260. package/dist/is-included-in.js +1 -1
  261. package/dist/is-non-null.cjs +1 -1
  262. package/dist/is-non-null.js +1 -1
  263. package/dist/is-non-nullish.cjs +1 -1
  264. package/dist/is-non-nullish.js +1 -1
  265. package/dist/is-not.cjs +1 -1
  266. package/dist/is-not.js +1 -1
  267. package/dist/is-nullish.cjs +1 -1
  268. package/dist/is-nullish.js +1 -1
  269. package/dist/is-number.cjs +1 -1
  270. package/dist/is-number.js +1 -1
  271. package/dist/is-object-type.cjs +1 -1
  272. package/dist/is-object-type.js +1 -1
  273. package/dist/is-plain-object.cjs +1 -1
  274. package/dist/is-plain-object.js +1 -1
  275. package/dist/is-promise.cjs +1 -1
  276. package/dist/is-promise.js +1 -1
  277. package/dist/is-shallow-equal.cjs +1 -1
  278. package/dist/is-shallow-equal.js +1 -1
  279. package/dist/is-strict-equal.cjs +1 -1
  280. package/dist/is-strict-equal.js +1 -1
  281. package/dist/is-string.cjs +1 -1
  282. package/dist/is-string.js +1 -1
  283. package/dist/is-symbol.cjs +1 -1
  284. package/dist/is-symbol.js +1 -1
  285. package/dist/is-truthy.cjs +1 -1
  286. package/dist/is-truthy.js +1 -1
  287. package/dist/join.cjs +1 -1
  288. package/dist/join.js +1 -1
  289. package/dist/key-codes.cjs +1 -1
  290. package/dist/key-codes.js +1 -1
  291. package/dist/keys.cjs +1 -1
  292. package/dist/keys.d.cts +4 -3
  293. package/dist/keys.d.ts +4 -3
  294. package/dist/keys.js +1 -1
  295. package/dist/last.cjs +1 -1
  296. package/dist/last.js +1 -1
  297. package/dist/length.cjs +1 -1
  298. package/dist/length.js +1 -1
  299. package/dist/magic-string.es-2ADFIHOO.cjs +13 -0
  300. package/dist/magic-string.es-PNCTE22R.js +13 -0
  301. package/dist/map-keys.cjs +1 -1
  302. package/dist/map-keys.d.cts +8 -6
  303. package/dist/map-keys.d.ts +8 -6
  304. package/dist/map-keys.js +1 -1
  305. package/dist/map-to-obj.cjs +1 -1
  306. package/dist/map-to-obj.d.cts +30 -12
  307. package/dist/map-to-obj.d.ts +30 -12
  308. package/dist/map-to-obj.js +1 -1
  309. package/dist/map-values.cjs +1 -1
  310. package/dist/map-values.d.cts +3 -2
  311. package/dist/map-values.d.ts +3 -2
  312. package/dist/map-values.js +1 -1
  313. package/dist/map-with-feedback.cjs +1 -1
  314. package/dist/map-with-feedback.js +1 -1
  315. package/dist/map.cjs +1 -1
  316. package/dist/map.js +1 -1
  317. package/dist/mean-by.cjs +1 -1
  318. package/dist/mean-by.js +1 -1
  319. package/dist/merge-all.cjs +1 -1
  320. package/dist/merge-all.d.cts +2 -1
  321. package/dist/merge-all.d.ts +2 -1
  322. package/dist/merge-all.js +1 -1
  323. package/dist/merge-deep.cjs +1 -1
  324. package/dist/merge-deep.js +1 -1
  325. package/dist/merge.cjs +1 -1
  326. package/dist/merge.js +1 -1
  327. package/dist/multiply.cjs +1 -1
  328. package/dist/multiply.js +1 -1
  329. package/dist/nth-by.cjs +1 -1
  330. package/dist/nth-by.d.cts +1 -1
  331. package/dist/nth-by.d.ts +1 -1
  332. package/dist/nth-by.js +1 -1
  333. package/dist/obj-of.cjs +1 -1
  334. package/dist/obj-of.js +1 -1
  335. package/dist/omit-by.cjs +1 -1
  336. package/dist/omit-by.d.cts +7 -6
  337. package/dist/omit-by.d.ts +7 -6
  338. package/dist/omit-by.js +1 -1
  339. package/dist/omit.cjs +1 -1
  340. package/dist/omit.js +1 -1
  341. package/dist/once.cjs +1 -1
  342. package/dist/once.js +1 -1
  343. package/dist/only.cjs +1 -1
  344. package/dist/only.js +1 -1
  345. package/dist/partial-array-Vnf1fBtl.d.cts +10 -0
  346. package/dist/partial-array-Vnf1fBtl.d.ts +10 -0
  347. package/dist/partition.cjs +1 -1
  348. package/dist/partition.js +1 -1
  349. package/dist/path-or.cjs +1 -1
  350. package/dist/path-or.js +1 -1
  351. package/dist/perkakas-type-error-8wPb8T2y.d.cts +17 -0
  352. package/dist/perkakas-type-error-8wPb8T2y.d.ts +17 -0
  353. package/dist/pick-by.cjs +1 -1
  354. package/dist/pick-by.d.cts +11 -11
  355. package/dist/pick-by.d.ts +11 -11
  356. package/dist/pick-by.js +1 -1
  357. package/dist/pick.cjs +1 -1
  358. package/dist/pick.d.cts +52 -7
  359. package/dist/pick.d.ts +52 -7
  360. package/dist/pick.js +1 -1
  361. package/dist/pipe.cjs +1 -1
  362. package/dist/pipe.js +1 -1
  363. package/dist/piped.cjs +1 -1
  364. package/dist/piped.js +1 -1
  365. package/dist/product.cjs +1 -1
  366. package/dist/product.js +1 -1
  367. package/dist/prop.cjs +1 -1
  368. package/dist/prop.js +1 -1
  369. package/dist/pull-object.cjs +1 -1
  370. package/dist/pull-object.d.cts +5 -4
  371. package/dist/pull-object.d.ts +5 -4
  372. package/dist/pull-object.js +1 -1
  373. package/dist/random-integer.cjs +1 -1
  374. package/dist/random-integer.js +1 -1
  375. package/dist/random-string.cjs +1 -1
  376. package/dist/random-string.js +1 -1
  377. package/dist/range.cjs +1 -1
  378. package/dist/range.js +1 -1
  379. package/dist/rank-by.cjs +1 -1
  380. package/dist/rank-by.d.cts +1 -1
  381. package/dist/rank-by.d.ts +1 -1
  382. package/dist/rank-by.js +1 -1
  383. package/dist/reduce.cjs +1 -1
  384. package/dist/reduce.js +1 -1
  385. package/dist/reverse.cjs +1 -1
  386. package/dist/reverse.js +1 -1
  387. package/dist/round.cjs +1 -1
  388. package/dist/round.js +1 -1
  389. package/dist/sample.cjs +1 -1
  390. package/dist/sample.js +1 -1
  391. package/dist/set-path.cjs +1 -1
  392. package/dist/set-path.d.cts +18 -7
  393. package/dist/set-path.d.ts +18 -7
  394. package/dist/set-path.js +1 -1
  395. package/dist/set.cjs +1 -1
  396. package/dist/set.d.cts +1 -1
  397. package/dist/set.d.ts +1 -1
  398. package/dist/set.js +1 -1
  399. package/dist/shuffle.cjs +1 -1
  400. package/dist/shuffle.js +1 -1
  401. package/dist/sleep.cjs +1 -1
  402. package/dist/sleep.js +1 -1
  403. package/dist/slice-string.cjs +1 -1
  404. package/dist/slice-string.js +1 -1
  405. package/dist/slugify.cjs +1 -1
  406. package/dist/slugify.js +1 -1
  407. package/dist/sort-by.cjs +1 -1
  408. package/dist/sort-by.d.cts +1 -1
  409. package/dist/sort-by.d.ts +1 -1
  410. package/dist/sort-by.js +1 -1
  411. package/dist/sort.cjs +1 -1
  412. package/dist/sort.js +1 -1
  413. package/dist/sorted-index-by.cjs +1 -1
  414. package/dist/sorted-index-by.js +1 -1
  415. package/dist/sorted-index-with.cjs +1 -1
  416. package/dist/sorted-index-with.js +1 -1
  417. package/dist/sorted-index.cjs +1 -1
  418. package/dist/sorted-index.js +1 -1
  419. package/dist/sorted-last-index-by.cjs +1 -1
  420. package/dist/sorted-last-index-by.js +1 -1
  421. package/dist/sorted-last-index.cjs +1 -1
  422. package/dist/sorted-last-index.js +1 -1
  423. package/dist/splice.cjs +1 -1
  424. package/dist/splice.js +1 -1
  425. package/dist/split-at.cjs +1 -1
  426. package/dist/split-at.js +1 -1
  427. package/dist/split-when.cjs +1 -1
  428. package/dist/split-when.js +1 -1
  429. package/dist/split.cjs +1 -1
  430. package/dist/split.js +1 -1
  431. package/dist/string-to-path.cjs +1 -1
  432. package/dist/string-to-path.d.cts +33 -11
  433. package/dist/string-to-path.d.ts +33 -11
  434. package/dist/string-to-path.js +1 -1
  435. package/dist/subtract.cjs +1 -1
  436. package/dist/subtract.js +1 -1
  437. package/dist/sum-by.cjs +1 -1
  438. package/dist/sum-by.js +1 -1
  439. package/dist/sum.cjs +1 -1
  440. package/dist/sum.js +1 -1
  441. package/dist/swap-indices.cjs +1 -1
  442. package/dist/swap-indices.js +1 -1
  443. package/dist/swap-props.cjs +1 -1
  444. package/dist/swap-props.js +1 -1
  445. package/dist/take-first-by.cjs +1 -1
  446. package/dist/take-first-by.d.cts +1 -1
  447. package/dist/take-first-by.d.ts +1 -1
  448. package/dist/take-first-by.js +1 -1
  449. package/dist/take-last-while.cjs +1 -1
  450. package/dist/take-last-while.d.cts +2 -0
  451. package/dist/take-last-while.d.ts +2 -0
  452. package/dist/take-last-while.js +1 -1
  453. package/dist/take-last.cjs +1 -1
  454. package/dist/take-last.js +1 -1
  455. package/dist/take-while.cjs +1 -1
  456. package/dist/take-while.d.cts +2 -0
  457. package/dist/take-while.d.ts +2 -0
  458. package/dist/take-while.js +1 -1
  459. package/dist/take.cjs +1 -1
  460. package/dist/take.js +1 -1
  461. package/dist/tap.cjs +1 -1
  462. package/dist/tap.js +1 -1
  463. package/dist/times.cjs +1 -1
  464. package/dist/times.d.cts +1 -9
  465. package/dist/times.d.ts +1 -9
  466. package/dist/times.js +1 -1
  467. package/dist/to-camel-case.cjs +1 -1
  468. package/dist/to-camel-case.js +1 -1
  469. package/dist/to-capital-case.cjs +1 -1
  470. package/dist/to-capital-case.js +1 -1
  471. package/dist/to-constant-case.cjs +1 -1
  472. package/dist/to-constant-case.js +1 -1
  473. package/dist/to-kebab-case.cjs +1 -1
  474. package/dist/to-kebab-case.js +1 -1
  475. package/dist/to-no-case.cjs +1 -1
  476. package/dist/to-no-case.js +1 -1
  477. package/dist/to-pascal-case.cjs +1 -1
  478. package/dist/to-pascal-case.js +1 -1
  479. package/dist/to-pascal-snake-case.cjs +1 -1
  480. package/dist/to-pascal-snake-case.js +1 -1
  481. package/dist/to-sentence-case.cjs +1 -1
  482. package/dist/to-sentence-case.js +1 -1
  483. package/dist/to-snake-case.cjs +1 -1
  484. package/dist/to-snake-case.js +1 -1
  485. package/dist/to-string-DO8zw6jS.d.cts +11 -0
  486. package/dist/to-string-DO8zw6jS.d.ts +11 -0
  487. package/dist/to-train-case.cjs +1 -1
  488. package/dist/to-train-case.js +1 -1
  489. package/dist/tuple-parts-BTivqbtT.d.ts +86 -0
  490. package/dist/tuple-parts-v6av7LMU.d.cts +86 -0
  491. package/dist/unique-by.cjs +1 -1
  492. package/dist/unique-by.js +1 -1
  493. package/dist/unique-with.cjs +1 -1
  494. package/dist/unique-with.js +1 -1
  495. package/dist/unique.cjs +1 -1
  496. package/dist/unique.js +1 -1
  497. package/dist/{upsert-prop-tIHFi_F_.d.cts → upsert-prop-Cc3jEW9l.d.cts} +1 -2
  498. package/dist/{upsert-prop-D0N8486l.d.ts → upsert-prop-CdUtD50i.d.ts} +1 -2
  499. package/dist/values.cjs +1 -1
  500. package/dist/values.d.cts +1 -1
  501. package/dist/values.d.ts +1 -1
  502. package/dist/values.js +1 -1
  503. package/dist/zip-with.cjs +1 -1
  504. package/dist/zip-with.js +1 -1
  505. package/dist/zip.cjs +1 -1
  506. package/dist/zip.js +1 -1
  507. package/package.json +12 -12
  508. package/dist/chunk-2MU3SHCO.js +0 -1
  509. package/dist/chunk-3CFBQYOQ.js +0 -1
  510. package/dist/chunk-5SAUYUEK.js +0 -1
  511. package/dist/chunk-5VXKW6SI.cjs +0 -1
  512. package/dist/chunk-6HSB3NFW.js +0 -1
  513. package/dist/chunk-6L5XEBJG.js +0 -1
  514. package/dist/chunk-A2PAJNYA.js +0 -1
  515. package/dist/chunk-APUBIDDU.cjs +0 -1
  516. package/dist/chunk-AWXJSK4F.js +0 -1
  517. package/dist/chunk-B5QDOWVQ.cjs +0 -1
  518. package/dist/chunk-B7RHAPUE.js +0 -1
  519. package/dist/chunk-BOOMUHPG.js +0 -1
  520. package/dist/chunk-CZLV6ZLZ.js +0 -1
  521. package/dist/chunk-DLXKXNZT.js +0 -1
  522. package/dist/chunk-F3JXHUP4.cjs +0 -1
  523. package/dist/chunk-FMUPPQZE.js +0 -1
  524. package/dist/chunk-GFQXVPLP.cjs +0 -1
  525. package/dist/chunk-GOUUMCT7.cjs +0 -1
  526. package/dist/chunk-HRK4GMT2.cjs +0 -1
  527. package/dist/chunk-I7K3Z4BT.js +0 -1
  528. package/dist/chunk-ICYGL2YZ.js +0 -1
  529. package/dist/chunk-IJ4I5A3K.js +0 -1
  530. package/dist/chunk-IXGOK22A.cjs +0 -1
  531. package/dist/chunk-L4ITKDYB.cjs +0 -1
  532. package/dist/chunk-MBC7VZHY.js +0 -1
  533. package/dist/chunk-NQGMUM3E.cjs +0 -1
  534. package/dist/chunk-OBWPUDD3.cjs +0 -1
  535. package/dist/chunk-OEJ5J23C.js +0 -1
  536. package/dist/chunk-OL2TQDYM.cjs +0 -1
  537. package/dist/chunk-PIF5X7RQ.cjs +0 -1
  538. package/dist/chunk-PWHX2554.js +0 -1
  539. package/dist/chunk-QQMFHVPX.cjs +0 -1
  540. package/dist/chunk-SQZULO7V.js +0 -1
  541. package/dist/chunk-THE6MSJO.cjs +0 -1
  542. package/dist/chunk-UDSRBKNR.js +0 -1
  543. package/dist/chunk-UUYCL4G2.js +0 -1
  544. package/dist/chunk-VRZNQSZN.cjs +0 -1
  545. package/dist/chunk-WYM2JV5T.cjs +0 -1
  546. package/dist/chunk-XLGD5ZUY.cjs +0 -1
  547. package/dist/chunk-XU4TDKMD.cjs +0 -1
  548. package/dist/chunk-YCM6N46T.js +0 -1
  549. package/dist/chunk-Z46FX2Y4.js +0 -1
  550. package/dist/enumerable-string-keyed-value-of-CLzltniW.d.cts +0 -15
  551. package/dist/enumerable-string-keyed-value-of-CLzltniW.d.ts +0 -15
  552. package/dist/exact-record-Dhbe_K-E.d.ts +0 -5
  553. package/dist/exact-record-_isi2JMR.d.cts +0 -5
  554. package/dist/funnel.remeda-debounce.test.cjs +0 -1
  555. package/dist/funnel.remeda-debounce.test.js +0 -1
  556. package/dist/if-bounded-record-Drd4UbBU.d.cts +0 -29
  557. package/dist/if-bounded-record-Drd4UbBU.d.ts +0 -29
  558. package/dist/n-tuple-5jljrt4c.d.cts +0 -10
  559. package/dist/n-tuple-5jljrt4c.d.ts +0 -10
  560. package/dist/reconstructed-record-DchLaSO8.d.cts +0 -10
  561. package/dist/reconstructed-record-DuxOLlMs.d.ts +0 -10
  562. package/dist/take-last-while.spec-d-.cjs +0 -1
  563. package/dist/take-last-while.spec-d-.d.cts +0 -2
  564. package/dist/take-last-while.spec-d-.d.ts +0 -2
  565. package/dist/take-last-while.spec-d-.js +0 -1
  566. package/dist/tuple-parts-CP0H7BrE.d.cts +0 -37
  567. package/dist/tuple-parts-CP0H7BrE.d.ts +0 -37
  568. /package/dist/{funnel.remeda-debounce.test.d.cts → funnel.perkakas-debounce.test.d.cts} +0 -0
  569. /package/dist/{funnel.remeda-debounce.test.d.ts → funnel.perkakas-debounce.test.d.ts} +0 -0
@@ -1 +1 @@
1
- import{a as t}from"./chunk-5SAUYUEK.js";import{a as e}from"./chunk-J6WPJH72.js";function s(...n){return e(r,n,t(a))}function r([n]){return n}function a(){return o}function o(n){return{hasNext:!0,next:n,done:!0}}export{s as a};
1
+ import{a as t}from"./chunk-NHTBBY2L.js";import{a as e}from"./chunk-J6WPJH72.js";function s(...n){return e(r,n,t(a))}function r([n]){return n}function a(){return o}function o(n){return{hasNext:!0,next:n,done:!0}}export{s as a};
@@ -0,0 +1 @@
1
+ import{a as t}from"./chunk-J6WPJH72.js";function i(...e){return t(s,e)}function s(e,o){let r={};for(let n of o)n in e&&(r[n]=e[n]);return r}export{i as a};
@@ -0,0 +1 @@
1
+ import{a as r}from"./chunk-EPU4K3DD.js";import{a as t}from"./chunk-J6WPJH72.js";function m(...e){return t(o,e,i)}function o(e,n){return e.filter(n)}function i(e){return(n,a,d)=>e(n,a,d)?{done:!1,hasNext:!0,next:n}:r}export{m as a};
@@ -0,0 +1 @@
1
+ var d=/^(?:0|[1-9]\d*)$/u;function s(i){let t=[],a=/\.{0,4096}(?<propName>[^.[\]]+)|\['(?<quoted>.{0,4096}?)'\]|\["(?<doubleQuoted>.{0,4096}?)"\]|\[(?<unquoted>.{0,4096}?)\]/uy,n;for(;(n=a.exec(i))!==null;){let{propName:e,quoted:o,doubleQuoted:u,unquoted:r}=n.groups;if(r!==void 0){t.push(...s(r));continue}t.push(e===void 0?o??u:d.test(e)?Number(e):e)}return t}export{s as a};
package/dist/chunk.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkL4ITKDYBcjs = require('./chunk-L4ITKDYB.cjs');require('./chunk-XR72I63W.cjs');require('./chunk-GZJMERDJ.cjs');exports.chunk = _chunkL4ITKDYBcjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk2HQM73ITcjs = require('./chunk-2HQM73IT.cjs');require('./chunk-XR72I63W.cjs');require('./chunk-GZJMERDJ.cjs');require('./chunk-MBGSSEZN.cjs');exports.chunk = _chunk2HQM73ITcjs.a;
package/dist/chunk.d.cts CHANGED
@@ -1,9 +1,19 @@
1
- import { IsNumericLiteral, LessThan, IfNever, Subtract, ValueOf, IntRange } from 'type-fest';
1
+ import { IsNumericLiteral, LessThan, IfNever, ValueOf, Subtract, IntRange } from 'type-fest';
2
2
  import { I as IntRangeInclusive } from './int-range-inclusive-Cn-qsrAN.cjs';
3
3
  import { I as IterableContainer } from './iterable-container-BTpDVdNc.cjs';
4
- import { N as NTuple } from './n-tuple-5jljrt4c.cjs';
5
4
  import { N as NonEmptyArray } from './non-empty-array-C9Od1wmF.cjs';
6
- import { T as TupleParts } from './tuple-parts-CP0H7BrE.cjs';
5
+ import { P as PartialArray } from './partial-array-Vnf1fBtl.cjs';
6
+ import { T as TupleParts } from './tuple-parts-v6av7LMU.cjs';
7
+ import './perkakas-type-error-8wPb8T2y.cjs';
8
+
9
+ /**
10
+ * An array with *exactly* N elements in it.
11
+ *
12
+ * Only literal N values are supported. For very large N the type might result
13
+ * in a recurse depth error. For negative N the type would result in an infinite
14
+ * recursion. None of these have protections because this is an internal type!
15
+ */
16
+ type NTuple<T, N extends number, Result extends Array<unknown> = []> = Result['length'] extends N ? Result : NTuple<T, N, [...Result, T]>;
7
17
 
8
18
  /**
9
19
  * This prevents typescript from failing on complex arrays and large chunks.
@@ -14,71 +24,53 @@ import { T as TupleParts } from './tuple-parts-CP0H7BrE.cjs';
14
24
  * See the type tests for an example.
15
25
  */
16
26
  type MAX_LITERAL_SIZE = 350;
17
- type Chunk<T extends IterableContainer, N extends number> = T extends readonly [] ? [] : IsNumericLiteral<N> extends true ? LessThan<N, 1> extends true ? never : LessThan<N, MAX_LITERAL_SIZE> extends true ? [
18
- ...LiteralChunk<T, N>
19
- ] : GenericChunk<T> : GenericChunk<T>;
20
- type LiteralChunk<T, N extends number, Parts extends TupleParts<T> = TupleParts<T>> = ([...Parts['prefix'], ...Parts['suffix']]['length'] extends 0 ? [] : never) | ChunkInfinite<ChunkFinite<Parts['prefix'], N>, Parts['item'], Parts['suffix'], N>;
27
+ type Chunk<T extends IterableContainer, N extends number> = T extends readonly [] ? [] : IsNumericLiteral<N> extends true ? LessThan<N, 1> extends true ? never : LessThan<N, MAX_LITERAL_SIZE> extends true ? [...LiteralChunk<T, N>] : GenericChunk<T> : GenericChunk<T>;
28
+ type LiteralChunk<T extends IterableContainer, N extends number> = ChunkRestElement<ChunkFixedTuple<TuplePrefix<T>, N>, TupleParts<T>['item'], TupleParts<T>['suffix'], N> | ([...TuplePrefix<T>, ...TupleParts<T>['suffix']] extends readonly [] ? [] : never);
21
29
  /**
22
- * This type **only** works if the input array `T` is a finite tuple (
23
- * `[number, "abc", true, { a: "hello" }]` etc..., and it doesn't contain a rest
24
- * parameter). For these inputs the chunked output could be computed as literal
25
- * finite tuples too.
30
+ * This type **only** works if the input array `T` is a fixed tuple. For these
31
+ * inputs the chunked output could be computed as literal finite tuples too.
26
32
  */
27
- type ChunkFinite<T, N extends number, Result = []> = T extends readonly [infer Head, ...infer Rest] ? ChunkFinite<Rest, N, Result extends [
33
+ type ChunkFixedTuple<T, N extends number, Result = []> = T extends readonly [infer Head, ...infer Rest] ? ChunkFixedTuple<Rest, N, Result extends [
28
34
  ...infer Previous extends Array<Array<unknown>>,
29
35
  infer Current extends Array<unknown>
30
- ] ? Current['length'] extends N ? [
31
- ...Previous,
32
- Current,
33
- [Head]
34
- ] : [
35
- ...Previous,
36
- [...Current, Head]
37
- ] : [
38
- [Head]
39
- ]> : Result;
36
+ ] ? Current['length'] extends N ? [...Previous, Current, [Head]] : [...Previous, [...Current, Head]] : [[Head]]> : Result;
40
37
  /**
41
38
  * Here lies the main complexity of building the chunk type. It takes the prefix
42
39
  * chunks, the rest param item type, and the suffix (not chunked!) and it
43
40
  * creates all possible combinations of adding items to the prefix and suffix
44
41
  * for all possible scenarios for how many items the rest param "represents".
45
42
  */
46
- type ChunkInfinite<PrefixChunks, Item, Suffix extends Array<unknown>, N extends number> = IfNever<Item, PrefixChunks, PrefixChunks extends [
43
+ type ChunkRestElement<PrefixChunks, Item, Suffix extends Array<unknown>, N extends number> = IfNever<Item, PrefixChunks, PrefixChunks extends [
47
44
  ...infer PrefixFullChunks extends Array<Array<unknown>>,
48
45
  infer LastPrefixChunk extends Array<unknown>
49
- ] ? [
50
- ...PrefixFullChunks,
51
- [
52
- ...LastPrefixChunk,
53
- ...NTuple<Item, Subtract<N, LastPrefixChunk['length']>>
54
- ],
55
- ...Array<NTuple<Item, N>>,
56
- ...SuffixChunk<Suffix, Item, N>
57
- ] | ValueOf<{
46
+ ] ? ValueOf<{
58
47
  [Padding in IntRangeInclusive<0, Subtract<N, LastPrefixChunk['length']>>]: [
59
48
  ...PrefixFullChunks,
60
- ...ChunkFinite<[
49
+ ...ChunkFixedTuple<[
61
50
  ...LastPrefixChunk,
62
51
  ...NTuple<Item, Padding>,
63
52
  ...Suffix
64
53
  ], N>
65
54
  ];
66
- }> : [
55
+ }> | [
56
+ ...PrefixFullChunks,
57
+ [
58
+ ...LastPrefixChunk,
59
+ ...NTuple<Item, Subtract<N, LastPrefixChunk['length']>>
60
+ ],
67
61
  ...Array<NTuple<Item, N>>,
68
62
  ...SuffixChunk<Suffix, Item, N>
69
- ]>;
63
+ ] : [...Array<NTuple<Item, N>>, ...SuffixChunk<Suffix, Item, N>]>;
70
64
  /**
71
65
  * This type assumes it takes a finite tuple that represents the suffix of our
72
66
  * input array. It builds all possible combinations of adding items to the
73
67
  * **head** of the suffix in order to pad the suffix until the last chunk is
74
68
  * full.
75
69
  */
76
- type SuffixChunk<T extends Array<unknown>, Item, N extends number> = T extends readonly [] ? [
77
- ValueOf<{
78
- [K in IntRangeInclusive<1, N>]: NTuple<Item, K>;
79
- }>
80
- ] : ValueOf<{
81
- [Padding in IntRange<0, N>]: ChunkFinite<[
70
+ type SuffixChunk<T extends Array<unknown>, Item, N extends number> = T extends readonly [] ? [ValueOf<{
71
+ [K in IntRangeInclusive<1, N>]: NTuple<Item, K>;
72
+ }>] : ValueOf<{
73
+ [Padding in IntRange<0, N>]: ChunkFixedTuple<[
82
74
  ...NTuple<Item, Padding>,
83
75
  ...T
84
76
  ], N>;
@@ -88,6 +80,10 @@ type SuffixChunk<T extends Array<unknown>, Item, N extends number> = T extends r
88
80
  * our output based on if we know for sure that the array is empty or not.
89
81
  */
90
82
  type GenericChunk<T extends IterableContainer> = T extends readonly [...Array<unknown>, unknown] | readonly [unknown, ...Array<unknown>] ? NonEmptyArray<NonEmptyArray<T[number]>> : Array<NonEmptyArray<T[number]>>;
83
+ type TuplePrefix<T extends IterableContainer> = [
84
+ ...TupleParts<T>['required'],
85
+ ...PartialArray<TupleParts<T>['optional']>
86
+ ];
91
87
  /**
92
88
  * Split an array into groups the length of `size`. If `array` can't be split evenly, the final chunk will be the remaining elements.
93
89
  *
package/dist/chunk.d.ts CHANGED
@@ -1,9 +1,19 @@
1
- import { IsNumericLiteral, LessThan, IfNever, Subtract, ValueOf, IntRange } from 'type-fest';
1
+ import { IsNumericLiteral, LessThan, IfNever, ValueOf, Subtract, IntRange } from 'type-fest';
2
2
  import { I as IntRangeInclusive } from './int-range-inclusive-Cn-qsrAN.js';
3
3
  import { I as IterableContainer } from './iterable-container-BTpDVdNc.js';
4
- import { N as NTuple } from './n-tuple-5jljrt4c.js';
5
4
  import { N as NonEmptyArray } from './non-empty-array-C9Od1wmF.js';
6
- import { T as TupleParts } from './tuple-parts-CP0H7BrE.js';
5
+ import { P as PartialArray } from './partial-array-Vnf1fBtl.js';
6
+ import { T as TupleParts } from './tuple-parts-BTivqbtT.js';
7
+ import './perkakas-type-error-8wPb8T2y.js';
8
+
9
+ /**
10
+ * An array with *exactly* N elements in it.
11
+ *
12
+ * Only literal N values are supported. For very large N the type might result
13
+ * in a recurse depth error. For negative N the type would result in an infinite
14
+ * recursion. None of these have protections because this is an internal type!
15
+ */
16
+ type NTuple<T, N extends number, Result extends Array<unknown> = []> = Result['length'] extends N ? Result : NTuple<T, N, [...Result, T]>;
7
17
 
8
18
  /**
9
19
  * This prevents typescript from failing on complex arrays and large chunks.
@@ -14,71 +24,53 @@ import { T as TupleParts } from './tuple-parts-CP0H7BrE.js';
14
24
  * See the type tests for an example.
15
25
  */
16
26
  type MAX_LITERAL_SIZE = 350;
17
- type Chunk<T extends IterableContainer, N extends number> = T extends readonly [] ? [] : IsNumericLiteral<N> extends true ? LessThan<N, 1> extends true ? never : LessThan<N, MAX_LITERAL_SIZE> extends true ? [
18
- ...LiteralChunk<T, N>
19
- ] : GenericChunk<T> : GenericChunk<T>;
20
- type LiteralChunk<T, N extends number, Parts extends TupleParts<T> = TupleParts<T>> = ([...Parts['prefix'], ...Parts['suffix']]['length'] extends 0 ? [] : never) | ChunkInfinite<ChunkFinite<Parts['prefix'], N>, Parts['item'], Parts['suffix'], N>;
27
+ type Chunk<T extends IterableContainer, N extends number> = T extends readonly [] ? [] : IsNumericLiteral<N> extends true ? LessThan<N, 1> extends true ? never : LessThan<N, MAX_LITERAL_SIZE> extends true ? [...LiteralChunk<T, N>] : GenericChunk<T> : GenericChunk<T>;
28
+ type LiteralChunk<T extends IterableContainer, N extends number> = ChunkRestElement<ChunkFixedTuple<TuplePrefix<T>, N>, TupleParts<T>['item'], TupleParts<T>['suffix'], N> | ([...TuplePrefix<T>, ...TupleParts<T>['suffix']] extends readonly [] ? [] : never);
21
29
  /**
22
- * This type **only** works if the input array `T` is a finite tuple (
23
- * `[number, "abc", true, { a: "hello" }]` etc..., and it doesn't contain a rest
24
- * parameter). For these inputs the chunked output could be computed as literal
25
- * finite tuples too.
30
+ * This type **only** works if the input array `T` is a fixed tuple. For these
31
+ * inputs the chunked output could be computed as literal finite tuples too.
26
32
  */
27
- type ChunkFinite<T, N extends number, Result = []> = T extends readonly [infer Head, ...infer Rest] ? ChunkFinite<Rest, N, Result extends [
33
+ type ChunkFixedTuple<T, N extends number, Result = []> = T extends readonly [infer Head, ...infer Rest] ? ChunkFixedTuple<Rest, N, Result extends [
28
34
  ...infer Previous extends Array<Array<unknown>>,
29
35
  infer Current extends Array<unknown>
30
- ] ? Current['length'] extends N ? [
31
- ...Previous,
32
- Current,
33
- [Head]
34
- ] : [
35
- ...Previous,
36
- [...Current, Head]
37
- ] : [
38
- [Head]
39
- ]> : Result;
36
+ ] ? Current['length'] extends N ? [...Previous, Current, [Head]] : [...Previous, [...Current, Head]] : [[Head]]> : Result;
40
37
  /**
41
38
  * Here lies the main complexity of building the chunk type. It takes the prefix
42
39
  * chunks, the rest param item type, and the suffix (not chunked!) and it
43
40
  * creates all possible combinations of adding items to the prefix and suffix
44
41
  * for all possible scenarios for how many items the rest param "represents".
45
42
  */
46
- type ChunkInfinite<PrefixChunks, Item, Suffix extends Array<unknown>, N extends number> = IfNever<Item, PrefixChunks, PrefixChunks extends [
43
+ type ChunkRestElement<PrefixChunks, Item, Suffix extends Array<unknown>, N extends number> = IfNever<Item, PrefixChunks, PrefixChunks extends [
47
44
  ...infer PrefixFullChunks extends Array<Array<unknown>>,
48
45
  infer LastPrefixChunk extends Array<unknown>
49
- ] ? [
50
- ...PrefixFullChunks,
51
- [
52
- ...LastPrefixChunk,
53
- ...NTuple<Item, Subtract<N, LastPrefixChunk['length']>>
54
- ],
55
- ...Array<NTuple<Item, N>>,
56
- ...SuffixChunk<Suffix, Item, N>
57
- ] | ValueOf<{
46
+ ] ? ValueOf<{
58
47
  [Padding in IntRangeInclusive<0, Subtract<N, LastPrefixChunk['length']>>]: [
59
48
  ...PrefixFullChunks,
60
- ...ChunkFinite<[
49
+ ...ChunkFixedTuple<[
61
50
  ...LastPrefixChunk,
62
51
  ...NTuple<Item, Padding>,
63
52
  ...Suffix
64
53
  ], N>
65
54
  ];
66
- }> : [
55
+ }> | [
56
+ ...PrefixFullChunks,
57
+ [
58
+ ...LastPrefixChunk,
59
+ ...NTuple<Item, Subtract<N, LastPrefixChunk['length']>>
60
+ ],
67
61
  ...Array<NTuple<Item, N>>,
68
62
  ...SuffixChunk<Suffix, Item, N>
69
- ]>;
63
+ ] : [...Array<NTuple<Item, N>>, ...SuffixChunk<Suffix, Item, N>]>;
70
64
  /**
71
65
  * This type assumes it takes a finite tuple that represents the suffix of our
72
66
  * input array. It builds all possible combinations of adding items to the
73
67
  * **head** of the suffix in order to pad the suffix until the last chunk is
74
68
  * full.
75
69
  */
76
- type SuffixChunk<T extends Array<unknown>, Item, N extends number> = T extends readonly [] ? [
77
- ValueOf<{
78
- [K in IntRangeInclusive<1, N>]: NTuple<Item, K>;
79
- }>
80
- ] : ValueOf<{
81
- [Padding in IntRange<0, N>]: ChunkFinite<[
70
+ type SuffixChunk<T extends Array<unknown>, Item, N extends number> = T extends readonly [] ? [ValueOf<{
71
+ [K in IntRangeInclusive<1, N>]: NTuple<Item, K>;
72
+ }>] : ValueOf<{
73
+ [Padding in IntRange<0, N>]: ChunkFixedTuple<[
82
74
  ...NTuple<Item, Padding>,
83
75
  ...T
84
76
  ], N>;
@@ -88,6 +80,10 @@ type SuffixChunk<T extends Array<unknown>, Item, N extends number> = T extends r
88
80
  * our output based on if we know for sure that the array is empty or not.
89
81
  */
90
82
  type GenericChunk<T extends IterableContainer> = T extends readonly [...Array<unknown>, unknown] | readonly [unknown, ...Array<unknown>] ? NonEmptyArray<NonEmptyArray<T[number]>> : Array<NonEmptyArray<T[number]>>;
83
+ type TuplePrefix<T extends IterableContainer> = [
84
+ ...TupleParts<T>['required'],
85
+ ...PartialArray<TupleParts<T>['optional']>
86
+ ];
91
87
  /**
92
88
  * Split an array into groups the length of `size`. If `array` can't be split evenly, the final chunk will be the remaining elements.
93
89
  *
package/dist/chunk.js CHANGED
@@ -1 +1 @@
1
- import{a}from"./chunk-I7K3Z4BT.js";import"./chunk-J6WPJH72.js";import"./chunk-KGPDVVVV.js";export{a as chunk};
1
+ import{a}from"./chunk-UWMBE6BM.js";import"./chunk-J6WPJH72.js";import"./chunk-KGPDVVVV.js";import"./chunk-EK7ODJWE.js";export{a as chunk};
package/dist/clamp.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkRXUYF4A4cjs = require('./chunk-RXUYF4A4.cjs');require('./chunk-XR72I63W.cjs');require('./chunk-GZJMERDJ.cjs');exports.clamp = _chunkRXUYF4A4cjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkRXUYF4A4cjs = require('./chunk-RXUYF4A4.cjs');require('./chunk-XR72I63W.cjs');require('./chunk-GZJMERDJ.cjs');require('./chunk-MBGSSEZN.cjs');exports.clamp = _chunkRXUYF4A4cjs.a;
package/dist/clamp.js CHANGED
@@ -1 +1 @@
1
- import{a}from"./chunk-CR5H624Z.js";import"./chunk-J6WPJH72.js";import"./chunk-KGPDVVVV.js";export{a as clamp};
1
+ import{a}from"./chunk-CR5H624Z.js";import"./chunk-J6WPJH72.js";import"./chunk-KGPDVVVV.js";import"./chunk-EK7ODJWE.js";export{a as clamp};
@@ -0,0 +1,15 @@
1
+ /**
2
+ * We built our own version of Subtract instead of using type-fest's one
3
+ * because we needed a simpler implementation that isn't as prone to excessive
4
+ * recursion issues and that is clamped at 0 so that we don't need to handle
5
+ * negative values using even more utilities.
6
+ */
7
+ type ClampedIntegerSubtract<Minuend, Subtrahend, SubtrahendBag extends Array<unknown> = [], ResultBag extends Array<unknown> = []> = [...SubtrahendBag, ...ResultBag]['length'] extends Minuend ? ResultBag['length'] : SubtrahendBag['length'] extends Subtrahend ? ClampedIntegerSubtract<Minuend, Subtrahend, SubtrahendBag, [
8
+ ...ResultBag,
9
+ unknown
10
+ ]> : ClampedIntegerSubtract<Minuend, Subtrahend, [
11
+ ...SubtrahendBag,
12
+ unknown
13
+ ], ResultBag>;
14
+
15
+ export type { ClampedIntegerSubtract as C };
@@ -0,0 +1,15 @@
1
+ /**
2
+ * We built our own version of Subtract instead of using type-fest's one
3
+ * because we needed a simpler implementation that isn't as prone to excessive
4
+ * recursion issues and that is clamped at 0 so that we don't need to handle
5
+ * negative values using even more utilities.
6
+ */
7
+ type ClampedIntegerSubtract<Minuend, Subtrahend, SubtrahendBag extends Array<unknown> = [], ResultBag extends Array<unknown> = []> = [...SubtrahendBag, ...ResultBag]['length'] extends Minuend ? ResultBag['length'] : SubtrahendBag['length'] extends Subtrahend ? ClampedIntegerSubtract<Minuend, Subtrahend, SubtrahendBag, [
8
+ ...ResultBag,
9
+ unknown
10
+ ]> : ClampedIntegerSubtract<Minuend, Subtrahend, [
11
+ ...SubtrahendBag,
12
+ unknown
13
+ ], ResultBag>;
14
+
15
+ export type { ClampedIntegerSubtract as C };
package/dist/clone.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkGFQXVPLPcjs = require('./chunk-GFQXVPLP.cjs');require('./chunk-XR72I63W.cjs');require('./chunk-GZJMERDJ.cjs');exports.clone = _chunkGFQXVPLPcjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkQGF2XNZScjs = require('./chunk-QGF2XNZS.cjs');require('./chunk-XR72I63W.cjs');require('./chunk-GZJMERDJ.cjs');require('./chunk-MBGSSEZN.cjs');exports.clone = _chunkQGF2XNZScjs.a;
package/dist/clone.js CHANGED
@@ -1 +1 @@
1
- import{a}from"./chunk-ICYGL2YZ.js";import"./chunk-J6WPJH72.js";import"./chunk-KGPDVVVV.js";export{a as clone};
1
+ import{a}from"./chunk-JYWIRZ2Z.js";import"./chunk-J6WPJH72.js";import"./chunk-KGPDVVVV.js";import"./chunk-EK7ODJWE.js";export{a as clone};
@@ -0,0 +1,14 @@
1
+ import { IfNever } from 'type-fest';
2
+
3
+ /**
4
+ * `never[]` and `[]` are not the same type, and in some cases they aren't
5
+ * interchangeable.
6
+ *
7
+ * This type makes it easier to use the result of TupleParts when the input is a
8
+ * fixed-length tuple but we still want to spread the rest of the array. e.g.
9
+ * `[...CoercedArray<TupleParts<T>["item"]>, ...TupleParts<T>["suffix"]]`.
10
+ *
11
+ */
12
+ type CoercedArray<T> = IfNever<T, [], Array<T>>;
13
+
14
+ export type { CoercedArray as C };
@@ -0,0 +1,14 @@
1
+ import { IfNever } from 'type-fest';
2
+
3
+ /**
4
+ * `never[]` and `[]` are not the same type, and in some cases they aren't
5
+ * interchangeable.
6
+ *
7
+ * This type makes it easier to use the result of TupleParts when the input is a
8
+ * fixed-length tuple but we still want to spread the rest of the array. e.g.
9
+ * `[...CoercedArray<TupleParts<T>["item"]>, ...TupleParts<T>["suffix"]]`.
10
+ *
11
+ */
12
+ type CoercedArray<T> = IfNever<T, [], Array<T>>;
13
+
14
+ export type { CoercedArray as C };
package/dist/concat.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkYJDSLML5cjs = require('./chunk-YJDSLML5.cjs');require('./chunk-XR72I63W.cjs');require('./chunk-GZJMERDJ.cjs');exports.concat = _chunkYJDSLML5cjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkYJDSLML5cjs = require('./chunk-YJDSLML5.cjs');require('./chunk-XR72I63W.cjs');require('./chunk-GZJMERDJ.cjs');require('./chunk-MBGSSEZN.cjs');exports.concat = _chunkYJDSLML5cjs.a;
package/dist/concat.js CHANGED
@@ -1 +1 @@
1
- import{a}from"./chunk-32JKKR4M.js";import"./chunk-J6WPJH72.js";import"./chunk-KGPDVVVV.js";export{a as concat};
1
+ import{a}from"./chunk-32JKKR4M.js";import"./chunk-J6WPJH72.js";import"./chunk-KGPDVVVV.js";import"./chunk-EK7ODJWE.js";export{a as concat};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkWYM2JV5Tcjs = require('./chunk-WYM2JV5T.cjs');exports.conditional = _chunkWYM2JV5Tcjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk4BTTPOEUcjs = require('./chunk-4BTTPOEU.cjs');require('./chunk-MBGSSEZN.cjs');exports.conditional = _chunk4BTTPOEUcjs.a;