@vinicunca/perkakas 1.9.0 → 1.13.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.
- package/dist/add-prop.cjs +1 -1
- package/dist/add-prop.d.cts +46 -4
- package/dist/add-prop.d.cts.map +1 -0
- package/dist/add-prop.d.ts +46 -4
- package/dist/add-prop.d.ts.map +1 -0
- package/dist/add-prop.js +2 -1
- package/dist/add-prop.js.map +1 -0
- package/dist/add.cjs +1 -1
- package/dist/add.d.cts +34 -2
- package/dist/add.d.cts.map +1 -0
- package/dist/add.d.ts +34 -2
- package/dist/add.d.ts.map +1 -0
- package/dist/add.js +2 -1
- package/dist/add.js.map +1 -0
- package/dist/all-pass.cjs +1 -1
- package/dist/all-pass.d.cts +37 -2
- package/dist/all-pass.d.cts.map +1 -0
- package/dist/all-pass.d.ts +37 -2
- package/dist/all-pass.d.ts.map +1 -0
- package/dist/all-pass.js +2 -1
- package/dist/all-pass.js.map +1 -0
- package/dist/any-pass.cjs +1 -1
- package/dist/any-pass.d.cts +37 -2
- package/dist/any-pass.d.cts.map +1 -0
- package/dist/any-pass.d.ts +37 -2
- package/dist/any-pass.d.ts.map +1 -0
- package/dist/any-pass.js +2 -1
- package/dist/any-pass.js.map +1 -0
- package/dist/array-required-prefix-BFDM7eSS.d.cts +26 -0
- package/dist/array-required-prefix-BFDM7eSS.d.cts.map +1 -0
- package/dist/array-required-prefix-DwpaLy0D.d.ts +26 -0
- package/dist/array-required-prefix-DwpaLy0D.d.ts.map +1 -0
- package/dist/binary-search-cutoff-index-CN25H71A.js +2 -0
- package/dist/binary-search-cutoff-index-CN25H71A.js.map +1 -0
- package/dist/binary-search-cutoff-index-ClkmTCR5.cjs +1 -0
- package/dist/bounded-partial-CPc1XU57.d.ts +17 -0
- package/dist/bounded-partial-CPc1XU57.d.ts.map +1 -0
- package/dist/bounded-partial-CtOsGqxa.d.cts +17 -0
- package/dist/bounded-partial-CtOsGqxa.d.cts.map +1 -0
- package/dist/capitalize.cjs +1 -0
- package/dist/capitalize.d.cts +53 -0
- package/dist/capitalize.d.cts.map +1 -0
- package/dist/capitalize.d.ts +53 -0
- package/dist/capitalize.d.ts.map +1 -0
- package/dist/capitalize.js +2 -0
- package/dist/capitalize.js.map +1 -0
- package/dist/ceil.cjs +1 -1
- package/dist/ceil.d.cts +39 -2
- package/dist/ceil.d.cts.map +1 -0
- package/dist/ceil.d.ts +39 -2
- package/dist/ceil.d.ts.map +1 -0
- package/dist/ceil.js +2 -1
- package/dist/ceil.js.map +1 -0
- package/dist/chunk.cjs +1 -1
- package/dist/chunk.d.cts +76 -9
- package/dist/chunk.d.cts.map +1 -0
- package/dist/chunk.d.ts +76 -9
- package/dist/chunk.d.ts.map +1 -0
- package/dist/chunk.js +2 -1
- package/dist/chunk.js.map +1 -0
- package/dist/clamp.cjs +1 -1
- package/dist/clamp.d.cts +37 -2
- package/dist/clamp.d.cts.map +1 -0
- package/dist/clamp.d.ts +37 -2
- package/dist/clamp.d.ts.map +1 -0
- package/dist/clamp.js +2 -1
- package/dist/clamp.js.map +1 -0
- package/dist/clamped-integer-subtract-C-AIuFhk.d.ts +11 -0
- package/dist/clamped-integer-subtract-C-AIuFhk.d.ts.map +1 -0
- package/dist/clamped-integer-subtract-DueGS_u_.d.cts +11 -0
- package/dist/clamped-integer-subtract-DueGS_u_.d.cts.map +1 -0
- package/dist/clone.cjs +1 -1
- package/dist/clone.d.cts +35 -2
- package/dist/clone.d.cts.map +1 -0
- package/dist/clone.d.ts +35 -2
- package/dist/clone.d.ts.map +1 -0
- package/dist/clone.js +2 -1
- package/dist/clone.js.map +1 -0
- package/dist/coerced-array-BKR9Bvsl.d.cts +17 -0
- package/dist/coerced-array-BKR9Bvsl.d.cts.map +1 -0
- package/dist/coerced-array-BfTLxqLo.d.ts +17 -0
- package/dist/coerced-array-BfTLxqLo.d.ts.map +1 -0
- package/dist/concat.cjs +1 -1
- package/dist/concat.d.cts +41 -3
- package/dist/concat.d.cts.map +1 -0
- package/dist/concat.d.ts +41 -3
- package/dist/concat.d.ts.map +1 -0
- package/dist/concat.js +2 -1
- package/dist/concat.js.map +1 -0
- package/dist/conditional-6ff4g8Sy.cjs +1 -0
- package/dist/conditional-Br0uqqc9.d.cts +221 -0
- package/dist/conditional-Br0uqqc9.d.cts.map +1 -0
- package/dist/conditional-CDez6uXp.d.ts +221 -0
- package/dist/conditional-CDez6uXp.d.ts.map +1 -0
- package/dist/conditional-WbmvQs8H.js +2 -0
- package/dist/conditional-WbmvQs8H.js.map +1 -0
- package/dist/conditional.cjs +1 -1
- package/dist/conditional.d.cts +1 -1
- package/dist/conditional.d.ts +1 -1
- package/dist/conditional.js +1 -1
- package/dist/constant.cjs +1 -1
- package/dist/constant.d.cts +32 -2
- package/dist/constant.d.cts.map +1 -0
- package/dist/constant.d.ts +32 -2
- package/dist/constant.d.ts.map +1 -0
- package/dist/constant.js +2 -1
- package/dist/constant.js.map +1 -0
- package/dist/count-by.cjs +1 -1
- package/dist/count-by.d.cts +42 -4
- package/dist/count-by.d.cts.map +1 -0
- package/dist/count-by.d.ts +42 -4
- package/dist/count-by.d.ts.map +1 -0
- package/dist/count-by.js +2 -1
- package/dist/count-by.js.map +1 -0
- package/dist/curry-BsY0Z8jH.cjs +1 -0
- package/dist/curry-CKDQ1osk.d.ts +70 -0
- package/dist/curry-CKDQ1osk.d.ts.map +1 -0
- package/dist/curry-NmniqyJ0.js +2 -0
- package/dist/curry-NmniqyJ0.js.map +1 -0
- package/dist/curry-from-lazy-BCGvmhyS.cjs +1 -0
- package/dist/curry-from-lazy-PQ0BbG-7.js +2 -0
- package/dist/curry-from-lazy-PQ0BbG-7.js.map +1 -0
- package/dist/curry-mh6BKSIA.d.cts +70 -0
- package/dist/curry-mh6BKSIA.d.cts.map +1 -0
- package/dist/curry-order-rules-BoF09Dq2.d.cts +48 -0
- package/dist/curry-order-rules-BoF09Dq2.d.cts.map +1 -0
- package/dist/curry-order-rules-ClqHrs8_.cjs +1 -0
- package/dist/curry-order-rules-CoO4bk5I.d.ts +48 -0
- package/dist/curry-order-rules-CoO4bk5I.d.ts.map +1 -0
- package/dist/curry-order-rules-DwrF-_P1.js +2 -0
- package/dist/curry-order-rules-DwrF-_P1.js.map +1 -0
- package/dist/curry.cjs +1 -1
- package/dist/curry.d.cts +1 -1
- package/dist/curry.d.ts +1 -1
- package/dist/curry.js +1 -1
- package/dist/debounce.cjs +1 -1
- package/dist/debounce.d.cts +98 -2
- package/dist/debounce.d.cts.map +1 -0
- package/dist/debounce.d.ts +98 -2
- package/dist/debounce.d.ts.map +1 -0
- package/dist/debounce.js +2 -1
- package/dist/debounce.js.map +1 -0
- package/dist/deduped-DdwAYzXs.d.cts +23 -0
- package/dist/deduped-DdwAYzXs.d.cts.map +1 -0
- package/dist/deduped-RY-1u-ns.d.ts +23 -0
- package/dist/deduped-RY-1u-ns.d.ts.map +1 -0
- package/dist/difference-with.cjs +1 -1
- package/dist/difference-with.d.cts +48 -2
- package/dist/difference-with.d.cts.map +1 -0
- package/dist/difference-with.d.ts +48 -2
- package/dist/difference-with.d.ts.map +1 -0
- package/dist/difference-with.js +2 -1
- package/dist/difference-with.js.map +1 -0
- package/dist/difference.cjs +1 -1
- package/dist/difference.d.cts +37 -2
- package/dist/difference.d.cts.map +1 -0
- package/dist/difference.d.ts +37 -2
- package/dist/difference.d.ts.map +1 -0
- package/dist/difference.js +2 -1
- package/dist/difference.js.map +1 -0
- package/dist/dist-8XtUY3ad.cjs +114 -0
- package/dist/dist-Bd1vawFi.js +103 -0
- package/dist/dist-Bd1vawFi.js.map +1 -0
- package/dist/divide.cjs +1 -1
- package/dist/divide.d.cts +33 -2
- package/dist/divide.d.cts.map +1 -0
- package/dist/divide.d.ts +33 -2
- package/dist/divide.d.ts.map +1 -0
- package/dist/divide.js +2 -1
- package/dist/divide.js.map +1 -0
- package/dist/do-nothing.cjs +1 -1
- package/dist/do-nothing.d.cts +28 -2
- package/dist/do-nothing.d.cts.map +1 -0
- package/dist/do-nothing.d.ts +28 -2
- package/dist/do-nothing.d.ts.map +1 -0
- package/dist/do-nothing.js +2 -1
- package/dist/do-nothing.js.map +1 -0
- package/dist/drop-first-by.cjs +1 -1
- package/dist/drop-first-by.d.cts +41 -4
- package/dist/drop-first-by.d.cts.map +1 -0
- package/dist/drop-first-by.d.ts +41 -4
- package/dist/drop-first-by.d.ts.map +1 -0
- package/dist/drop-first-by.js +2 -1
- package/dist/drop-first-by.js.map +1 -0
- package/dist/drop-last-while.cjs +1 -1
- package/dist/drop-last-while.d.cts +36 -3
- package/dist/drop-last-while.d.cts.map +1 -0
- package/dist/drop-last-while.d.ts +36 -3
- package/dist/drop-last-while.d.ts.map +1 -0
- package/dist/drop-last-while.js +2 -1
- package/dist/drop-last-while.js.map +1 -0
- package/dist/drop-last.cjs +1 -1
- package/dist/drop-last.d.cts +32 -3
- package/dist/drop-last.d.cts.map +1 -0
- package/dist/drop-last.d.ts +32 -3
- package/dist/drop-last.d.ts.map +1 -0
- package/dist/drop-last.js +2 -1
- package/dist/drop-last.js.map +1 -0
- package/dist/drop-while.cjs +1 -1
- package/dist/drop-while.d.cts +36 -3
- package/dist/drop-while.d.cts.map +1 -0
- package/dist/drop-while.d.ts +36 -3
- package/dist/drop-while.d.ts.map +1 -0
- package/dist/drop-while.js +2 -1
- package/dist/drop-while.js.map +1 -0
- package/dist/drop.cjs +1 -1
- package/dist/drop.d.cts +40 -8
- package/dist/drop.d.cts.map +1 -0
- package/dist/drop.d.ts +40 -8
- package/dist/drop.d.ts.map +1 -0
- package/dist/drop.js +2 -1
- package/dist/drop.js.map +1 -0
- package/dist/entries.cjs +1 -1
- package/dist/entries.d.cts +31 -3
- package/dist/entries.d.cts.map +1 -0
- package/dist/entries.d.ts +31 -3
- package/dist/entries.d.ts.map +1 -0
- package/dist/entries.js +2 -1
- package/dist/entries.js.map +1 -0
- package/dist/enumerable-string-key-of-CZQf3ld_.d.ts +17 -0
- package/dist/enumerable-string-key-of-CZQf3ld_.d.ts.map +1 -0
- package/dist/enumerable-string-key-of-DhcNc5iz.d.cts +17 -0
- package/dist/enumerable-string-key-of-DhcNc5iz.d.cts.map +1 -0
- package/dist/enumerable-string-keyed-value-of-CRlVAvdp.d.ts +12 -0
- package/dist/enumerable-string-keyed-value-of-CRlVAvdp.d.ts.map +1 -0
- package/dist/enumerable-string-keyed-value-of-icm2q60J.d.cts +12 -0
- package/dist/enumerable-string-keyed-value-of-icm2q60J.d.cts.map +1 -0
- package/dist/evolve.cjs +1 -1
- package/dist/evolve.d.cts +101 -3
- package/dist/evolve.d.cts.map +1 -0
- package/dist/evolve.d.ts +101 -3
- package/dist/evolve.d.ts.map +1 -0
- package/dist/evolve.js +2 -1
- package/dist/evolve.js.map +1 -0
- package/dist/filter.cjs +1 -1
- package/dist/filter.d.cts +50 -7
- package/dist/filter.d.cts.map +1 -0
- package/dist/filter.d.ts +50 -7
- package/dist/filter.d.ts.map +1 -0
- package/dist/filter.js +2 -1
- package/dist/filter.js.map +1 -0
- package/dist/filtered-array-C--8loav.d.cts +22 -0
- package/dist/filtered-array-C--8loav.d.cts.map +1 -0
- package/dist/filtered-array-wtIEwdU7.d.ts +22 -0
- package/dist/filtered-array-wtIEwdU7.d.ts.map +1 -0
- package/dist/find-index.cjs +1 -1
- package/dist/find-index.d.cts +50 -2
- package/dist/find-index.d.cts.map +1 -0
- package/dist/find-index.d.ts +50 -2
- package/dist/find-index.d.ts.map +1 -0
- package/dist/find-index.js +2 -1
- package/dist/find-index.js.map +1 -0
- package/dist/find-last-index.cjs +1 -1
- package/dist/find-last-index.d.cts +50 -2
- package/dist/find-last-index.d.cts.map +1 -0
- package/dist/find-last-index.d.ts +50 -2
- package/dist/find-last-index.d.ts.map +1 -0
- package/dist/find-last-index.js +2 -1
- package/dist/find-last-index.js.map +1 -0
- package/dist/find-last.cjs +1 -1
- package/dist/find-last.d.cts +62 -2
- package/dist/find-last.d.cts.map +1 -0
- package/dist/find-last.d.ts +62 -2
- package/dist/find-last.d.ts.map +1 -0
- package/dist/find-last.js +2 -1
- package/dist/find-last.js.map +1 -0
- package/dist/find.cjs +1 -1
- package/dist/find.d.cts +64 -2
- package/dist/find.d.cts.map +1 -0
- package/dist/find.d.ts +64 -2
- package/dist/find.d.ts.map +1 -0
- package/dist/find.js +2 -1
- package/dist/find.js.map +1 -0
- package/dist/first-by.cjs +1 -1
- package/dist/first-by.d.cts +60 -5
- package/dist/first-by.d.cts.map +1 -0
- package/dist/first-by.d.ts +60 -5
- package/dist/first-by.d.ts.map +1 -0
- package/dist/first-by.js +2 -1
- package/dist/first-by.js.map +1 -0
- package/dist/first.cjs +1 -1
- package/dist/first.d.cts +40 -3
- package/dist/first.d.cts.map +1 -0
- package/dist/first.d.ts +40 -3
- package/dist/first.d.ts.map +1 -0
- package/dist/first.js +2 -1
- package/dist/first.js.map +1 -0
- package/dist/flat-map.cjs +1 -1
- package/dist/flat-map.d.cts +47 -2
- package/dist/flat-map.d.cts.map +1 -0
- package/dist/flat-map.d.ts +47 -2
- package/dist/flat-map.d.ts.map +1 -0
- package/dist/flat-map.js +2 -1
- package/dist/flat-map.js.map +1 -0
- package/dist/flat.cjs +1 -1
- package/dist/flat.d.cts +53 -3
- package/dist/flat.d.cts.map +1 -0
- package/dist/flat.d.ts +53 -3
- package/dist/flat.d.ts.map +1 -0
- package/dist/flat.js +2 -1
- package/dist/flat.js.map +1 -0
- package/dist/floor.cjs +1 -1
- package/dist/floor.d.cts +39 -2
- package/dist/floor.d.cts.map +1 -0
- package/dist/floor.d.ts +39 -2
- package/dist/floor.d.ts.map +1 -0
- package/dist/floor.js +2 -1
- package/dist/floor.js.map +1 -0
- package/dist/for-each-obj.cjs +1 -1
- package/dist/for-each-obj.d.cts +47 -5
- package/dist/for-each-obj.d.cts.map +1 -0
- package/dist/for-each-obj.d.ts +47 -5
- package/dist/for-each-obj.d.ts.map +1 -0
- package/dist/for-each-obj.js +2 -1
- package/dist/for-each-obj.js.map +1 -0
- package/dist/for-each.cjs +1 -1
- package/dist/for-each.d.cts +54 -3
- package/dist/for-each.d.cts.map +1 -0
- package/dist/for-each.d.ts +54 -3
- package/dist/for-each.d.ts.map +1 -0
- package/dist/for-each.js +2 -1
- package/dist/for-each.js.map +1 -0
- package/dist/from-entries.cjs +1 -1
- package/dist/from-entries.d.cts +68 -4
- package/dist/from-entries.d.cts.map +1 -0
- package/dist/from-entries.d.ts +68 -4
- package/dist/from-entries.d.ts.map +1 -0
- package/dist/from-entries.js +2 -1
- package/dist/from-entries.js.map +1 -0
- package/dist/from-keys.cjs +1 -1
- package/dist/from-keys.d.cts +60 -5
- package/dist/from-keys.d.cts.map +1 -0
- package/dist/from-keys.d.ts +60 -5
- package/dist/from-keys.d.ts.map +1 -0
- package/dist/from-keys.js +2 -1
- package/dist/from-keys.js.map +1 -0
- package/dist/funnel.cjs +1 -1
- package/dist/funnel.d.cts +155 -2
- package/dist/funnel.d.cts.map +1 -0
- package/dist/funnel.d.ts +155 -2
- package/dist/funnel.d.ts.map +1 -0
- package/dist/funnel.js +2 -1
- package/dist/funnel.js.map +1 -0
- package/dist/funnel.lodash-debounce-with-cached-value.test.cjs +1 -1
- package/dist/funnel.lodash-debounce-with-cached-value.test.js +1 -1
- package/dist/funnel.lodash-debounce-with-cached-value.test.js.map +1 -1
- package/dist/funnel.lodash-debounce.test.cjs +1 -1
- package/dist/funnel.lodash-debounce.test.js +1 -1
- package/dist/funnel.lodash-debounce.test.js.map +1 -1
- package/dist/funnel.lodash-throttle-with-cached-value.test.cjs +1 -1
- package/dist/funnel.lodash-throttle-with-cached-value.test.js +1 -1
- package/dist/funnel.lodash-throttle-with-cached-value.test.js.map +1 -1
- package/dist/funnel.lodash-throttle.test.cjs +1 -1
- package/dist/funnel.lodash-throttle.test.js +1 -1
- package/dist/funnel.lodash-throttle.test.js.map +1 -1
- package/dist/funnel.perkakas-debounce.test.cjs +1 -1
- package/dist/funnel.perkakas-debounce.test.js +1 -1
- package/dist/funnel.perkakas-debounce.test.js.map +1 -1
- package/dist/funnel.reference-batch.test.cjs +1 -1
- package/dist/funnel.reference-batch.test.js +1 -1
- package/dist/funnel.reference-batch.test.js.map +1 -1
- package/dist/funnel.test-d.cjs +1 -1
- package/dist/funnel.test-d.js +1 -1
- package/dist/funnel.test-d.js.map +1 -1
- package/dist/funnel.test.cjs +1 -1
- package/dist/funnel.test.js +1 -1
- package/dist/funnel.test.js.map +1 -1
- package/dist/group-by-prop.cjs +1 -1
- package/dist/group-by-prop.d.cts +89 -11
- package/dist/group-by-prop.d.cts.map +1 -0
- package/dist/group-by-prop.d.ts +89 -11
- package/dist/group-by-prop.d.ts.map +1 -0
- package/dist/group-by-prop.js +2 -1
- package/dist/group-by-prop.js.map +1 -0
- package/dist/group-by.cjs +1 -1
- package/dist/group-by.d.cts +69 -5
- package/dist/group-by.d.cts.map +1 -0
- package/dist/group-by.d.ts +69 -5
- package/dist/group-by.d.ts.map +1 -0
- package/dist/group-by.js +2 -1
- package/dist/group-by.js.map +1 -0
- package/dist/has-at-least-BXwOPLQK.cjs +1 -0
- package/dist/has-at-least-Coy9sM-B.js +2 -0
- package/dist/has-at-least-Coy9sM-B.js.map +1 -0
- package/dist/has-at-least.cjs +1 -1
- package/dist/has-at-least.d.cts +59 -8
- package/dist/has-at-least.d.cts.map +1 -0
- package/dist/has-at-least.d.ts +59 -8
- package/dist/has-at-least.d.ts.map +1 -0
- package/dist/has-at-least.js +1 -1
- package/dist/has-sub-object.cjs +1 -1
- package/dist/has-sub-object.d.cts +44 -2
- package/dist/has-sub-object.d.cts.map +1 -0
- package/dist/has-sub-object.d.ts +44 -2
- package/dist/has-sub-object.d.ts.map +1 -0
- package/dist/has-sub-object.js +2 -1
- package/dist/has-sub-object.js.map +1 -0
- package/dist/heap-BhpfhYWj.js +2 -0
- package/dist/heap-BhpfhYWj.js.map +1 -0
- package/dist/heap-DWDhbxfx.cjs +1 -0
- package/dist/human-readable-file-size.cjs +1 -1
- package/dist/human-readable-file-size.d.cts +17 -2
- package/dist/human-readable-file-size.d.cts.map +1 -0
- package/dist/human-readable-file-size.d.ts +17 -2
- package/dist/human-readable-file-size.d.ts.map +1 -0
- package/dist/human-readable-file-size.js +2 -1
- package/dist/human-readable-file-size.js.map +1 -0
- package/dist/identity.cjs +1 -1
- package/dist/identity.d.cts +22 -2
- package/dist/identity.d.cts.map +1 -0
- package/dist/identity.d.ts +22 -2
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +2 -1
- package/dist/identity.js.map +1 -0
- package/dist/index-by.cjs +1 -1
- package/dist/index-by.d.cts +53 -4
- package/dist/index-by.d.cts.map +1 -0
- package/dist/index-by.d.ts +53 -4
- package/dist/index-by.d.ts.map +1 -0
- package/dist/index-by.js +2 -1
- package/dist/index-by.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +158 -185
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +158 -185
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/int-range-inclusive-BlGXX6Cz.d.ts +15 -0
- package/dist/int-range-inclusive-BlGXX6Cz.d.ts.map +1 -0
- package/dist/int-range-inclusive-KocNpK0p.d.cts +15 -0
- package/dist/int-range-inclusive-KocNpK0p.d.cts.map +1 -0
- package/dist/intersection-with.cjs +1 -1
- package/dist/intersection-with.d.cts +54 -2
- package/dist/intersection-with.d.cts.map +1 -0
- package/dist/intersection-with.d.ts +54 -2
- package/dist/intersection-with.d.ts.map +1 -0
- package/dist/intersection-with.js +2 -1
- package/dist/intersection-with.js.map +1 -0
- package/dist/intersection.cjs +1 -1
- package/dist/intersection.d.cts +37 -2
- package/dist/intersection.d.cts.map +1 -0
- package/dist/intersection.d.ts +37 -2
- package/dist/intersection.d.ts.map +1 -0
- package/dist/intersection.js +2 -1
- package/dist/intersection.js.map +1 -0
- package/dist/invert.cjs +1 -1
- package/dist/invert.d.cts +33 -3
- package/dist/invert.d.cts.map +1 -0
- package/dist/invert.d.ts +33 -3
- package/dist/invert.d.ts.map +1 -0
- package/dist/invert.js +2 -1
- package/dist/invert.js.map +1 -0
- package/dist/is-array.cjs +1 -1
- package/dist/is-array.d.cts +21 -3
- package/dist/is-array.d.cts.map +1 -0
- package/dist/is-array.d.ts +21 -3
- package/dist/is-array.d.ts.map +1 -0
- package/dist/is-array.js +2 -1
- package/dist/is-array.js.map +1 -0
- package/dist/is-big-int.cjs +1 -1
- package/dist/is-big-int.d.cts +22 -3
- package/dist/is-big-int.d.cts.map +1 -0
- package/dist/is-big-int.d.ts +22 -3
- package/dist/is-big-int.d.ts.map +1 -0
- package/dist/is-big-int.js +2 -1
- package/dist/is-big-int.js.map +1 -0
- package/dist/is-boolean.cjs +1 -1
- package/dist/is-boolean.d.cts +21 -3
- package/dist/is-boolean.d.cts.map +1 -0
- package/dist/is-boolean.d.ts +21 -3
- package/dist/is-boolean.d.ts.map +1 -0
- package/dist/is-boolean.js +2 -1
- package/dist/is-boolean.js.map +1 -0
- package/dist/is-bounded-record-Bx4n8QB0.d.ts +34 -0
- package/dist/is-bounded-record-Bx4n8QB0.d.ts.map +1 -0
- package/dist/is-bounded-record-DV6ZQk9H.d.cts +34 -0
- package/dist/is-bounded-record-DV6ZQk9H.d.cts.map +1 -0
- package/dist/is-date.cjs +1 -1
- package/dist/is-date.d.cts +17 -2
- package/dist/is-date.d.cts.map +1 -0
- package/dist/is-date.d.ts +17 -2
- package/dist/is-date.d.ts.map +1 -0
- package/dist/is-date.js +2 -1
- package/dist/is-date.js.map +1 -0
- package/dist/is-deep-equal.cjs +1 -1
- package/dist/is-deep-equal.d.cts +71 -2
- package/dist/is-deep-equal.d.cts.map +1 -0
- package/dist/is-deep-equal.d.ts +71 -2
- package/dist/is-deep-equal.d.ts.map +1 -0
- package/dist/is-deep-equal.js +2 -1
- package/dist/is-deep-equal.js.map +1 -0
- package/dist/is-defined.cjs +1 -1
- package/dist/is-defined.d.cts +19 -2
- package/dist/is-defined.d.cts.map +1 -0
- package/dist/is-defined.d.ts +19 -2
- package/dist/is-defined.d.ts.map +1 -0
- package/dist/is-defined.js +2 -1
- package/dist/is-defined.js.map +1 -0
- package/dist/is-empty.cjs +1 -1
- package/dist/is-empty.d.cts +35 -3
- package/dist/is-empty.d.cts.map +1 -0
- package/dist/is-empty.d.ts +35 -3
- package/dist/is-empty.d.ts.map +1 -0
- package/dist/is-empty.js +2 -1
- package/dist/is-empty.js.map +1 -0
- package/dist/is-emptyish-9tX94IVx.d.cts +73 -0
- package/dist/is-emptyish-9tX94IVx.d.cts.map +1 -0
- package/dist/is-emptyish-DVFGJe-T.d.ts +73 -0
- package/dist/is-emptyish-DVFGJe-T.d.ts.map +1 -0
- package/dist/is-emptyish.cjs +1 -1
- package/dist/is-emptyish.d.cts +1 -5
- package/dist/is-emptyish.d.ts +1 -5
- package/dist/is-emptyish.js +2 -1
- package/dist/is-emptyish.js.map +1 -0
- package/dist/is-emptyish.test-d.cjs +1 -1
- package/dist/is-emptyish.test-d.d.cts.map +1 -1
- package/dist/is-emptyish.test-d.d.ts.map +1 -1
- package/dist/is-emptyish.test-d.js +1 -1
- package/dist/is-emptyish.test-d.js.map +1 -1
- package/dist/is-emptyish.test.cjs +1 -1
- package/dist/is-emptyish.test.js +1 -1
- package/dist/is-emptyish.test.js.map +1 -1
- package/dist/is-error.cjs +1 -1
- package/dist/is-error.d.cts +18 -2
- package/dist/is-error.d.cts.map +1 -0
- package/dist/is-error.d.ts +18 -2
- package/dist/is-error.d.ts.map +1 -0
- package/dist/is-error.js +2 -1
- package/dist/is-error.js.map +1 -0
- package/dist/is-function.cjs +1 -1
- package/dist/is-function.d.cts +21 -2
- package/dist/is-function.d.cts.map +1 -0
- package/dist/is-function.d.ts +21 -2
- package/dist/is-function.d.ts.map +1 -0
- package/dist/is-function.js +2 -1
- package/dist/is-function.js.map +1 -0
- package/dist/is-included-in.cjs +1 -1
- package/dist/is-included-in.d.cts +109 -4
- package/dist/is-included-in.d.cts.map +1 -0
- package/dist/is-included-in.d.ts +109 -4
- package/dist/is-included-in.d.ts.map +1 -0
- package/dist/is-included-in.js +2 -1
- package/dist/is-included-in.js.map +1 -0
- package/dist/is-non-null.cjs +1 -1
- package/dist/is-non-null.d.cts +19 -2
- package/dist/is-non-null.d.cts.map +1 -0
- package/dist/is-non-null.d.ts +19 -2
- package/dist/is-non-null.d.ts.map +1 -0
- package/dist/is-non-null.js +2 -1
- package/dist/is-non-null.js.map +1 -0
- package/dist/is-non-nullish.cjs +1 -1
- package/dist/is-non-nullish.d.cts +20 -2
- package/dist/is-non-nullish.d.cts.map +1 -0
- package/dist/is-non-nullish.d.ts +20 -2
- package/dist/is-non-nullish.d.ts.map +1 -0
- package/dist/is-non-nullish.js +2 -1
- package/dist/is-non-nullish.js.map +1 -0
- package/dist/is-not.cjs +1 -1
- package/dist/is-not.d.cts +19 -2
- package/dist/is-not.d.cts.map +1 -0
- package/dist/is-not.d.ts +19 -2
- package/dist/is-not.d.ts.map +1 -0
- package/dist/is-not.js +2 -1
- package/dist/is-not.js.map +1 -0
- package/dist/is-nullish.cjs +1 -1
- package/dist/is-nullish.d.cts +23 -3
- package/dist/is-nullish.d.cts.map +1 -0
- package/dist/is-nullish.d.ts +23 -3
- package/dist/is-nullish.d.ts.map +1 -0
- package/dist/is-nullish.js +2 -1
- package/dist/is-nullish.js.map +1 -0
- package/dist/is-number.cjs +1 -1
- package/dist/is-number.d.cts +22 -3
- package/dist/is-number.d.cts.map +1 -0
- package/dist/is-number.d.ts +22 -3
- package/dist/is-number.d.ts.map +1 -0
- package/dist/is-number.js +2 -1
- package/dist/is-number.js.map +1 -0
- package/dist/is-object-type.cjs +1 -1
- package/dist/is-object-type.d.cts +35 -3
- package/dist/is-object-type.d.cts.map +1 -0
- package/dist/is-object-type.d.ts +35 -3
- package/dist/is-object-type.d.ts.map +1 -0
- package/dist/is-object-type.js +2 -1
- package/dist/is-object-type.js.map +1 -0
- package/dist/is-plain-object.cjs +1 -1
- package/dist/is-plain-object.d.cts +33 -3
- package/dist/is-plain-object.d.cts.map +1 -0
- package/dist/is-plain-object.d.ts +33 -3
- package/dist/is-plain-object.d.ts.map +1 -0
- package/dist/is-plain-object.js +2 -1
- package/dist/is-plain-object.js.map +1 -0
- package/dist/is-promise.cjs +1 -1
- package/dist/is-promise.d.cts +18 -2
- package/dist/is-promise.d.cts.map +1 -0
- package/dist/is-promise.d.ts +18 -2
- package/dist/is-promise.d.ts.map +1 -0
- package/dist/is-promise.js +2 -1
- package/dist/is-promise.js.map +1 -0
- package/dist/is-shallow-equal.cjs +1 -1
- package/dist/is-shallow-equal.d.cts +71 -2
- package/dist/is-shallow-equal.d.cts.map +1 -0
- package/dist/is-shallow-equal.d.ts +71 -2
- package/dist/is-shallow-equal.d.ts.map +1 -0
- package/dist/is-shallow-equal.js +2 -1
- package/dist/is-shallow-equal.js.map +1 -0
- package/dist/is-strict-equal.cjs +1 -1
- package/dist/is-strict-equal.d.cts +67 -2
- package/dist/is-strict-equal.d.cts.map +1 -0
- package/dist/is-strict-equal.d.ts +67 -2
- package/dist/is-strict-equal.d.ts.map +1 -0
- package/dist/is-strict-equal.js +2 -1
- package/dist/is-strict-equal.js.map +1 -0
- package/dist/is-string.cjs +1 -1
- package/dist/is-string.d.cts +20 -3
- package/dist/is-string.d.cts.map +1 -0
- package/dist/is-string.d.ts +20 -3
- package/dist/is-string.d.ts.map +1 -0
- package/dist/is-string.js +2 -1
- package/dist/is-string.js.map +1 -0
- package/dist/is-symbol.cjs +1 -1
- package/dist/is-symbol.d.cts +20 -3
- package/dist/is-symbol.d.cts.map +1 -0
- package/dist/is-symbol.d.ts +20 -3
- package/dist/is-symbol.d.ts.map +1 -0
- package/dist/is-symbol.js +2 -1
- package/dist/is-symbol.js.map +1 -0
- package/dist/is-truthy.cjs +1 -1
- package/dist/is-truthy.d.cts +21 -2
- package/dist/is-truthy.d.cts.map +1 -0
- package/dist/is-truthy.d.ts +21 -2
- package/dist/is-truthy.d.ts.map +1 -0
- package/dist/is-truthy.js +2 -1
- package/dist/is-truthy.js.map +1 -0
- package/dist/iterable-container-1TN3AJ3s.d.cts +17 -0
- package/dist/iterable-container-1TN3AJ3s.d.cts.map +1 -0
- package/dist/iterable-container-Dv5vSKht.d.ts +17 -0
- package/dist/iterable-container-Dv5vSKht.d.ts.map +1 -0
- package/dist/join.cjs +1 -1
- package/dist/join.d.cts +46 -2
- package/dist/join.d.cts.map +1 -0
- package/dist/join.d.ts +46 -2
- package/dist/join.d.ts.map +1 -0
- package/dist/join.js +2 -1
- package/dist/join.js.map +1 -0
- package/dist/key-codes.cjs +1 -1
- package/dist/key-codes.d.cts +29 -2
- package/dist/key-codes.d.cts.map +1 -0
- package/dist/key-codes.d.ts +29 -2
- package/dist/key-codes.d.ts.map +1 -0
- package/dist/key-codes.js +2 -1
- package/dist/key-codes.js.map +1 -0
- package/dist/keys.cjs +1 -1
- package/dist/keys.d.cts +38 -5
- package/dist/keys.d.cts.map +1 -0
- package/dist/keys.d.ts +38 -5
- package/dist/keys.d.ts.map +1 -0
- package/dist/keys.js +2 -1
- package/dist/keys.js.map +1 -0
- package/dist/last.cjs +1 -1
- package/dist/last.d.cts +37 -3
- package/dist/last.d.cts.map +1 -0
- package/dist/last.d.ts +37 -3
- package/dist/last.d.ts.map +1 -0
- package/dist/last.js +2 -1
- package/dist/last.js.map +1 -0
- package/dist/lazy-data-last-impl-D4kLybyP.cjs +1 -0
- package/dist/lazy-data-last-impl-R05wr4K6.js +2 -0
- package/dist/lazy-data-last-impl-R05wr4K6.js.map +1 -0
- package/dist/length.cjs +1 -1
- package/dist/length.d.cts +28 -2
- package/dist/length.d.cts.map +1 -0
- package/dist/length.d.ts +28 -2
- package/dist/length.d.ts.map +1 -0
- package/dist/length.js +2 -1
- package/dist/length.js.map +1 -0
- package/dist/magic-string.es-94aXgwpn.js +15 -0
- package/dist/magic-string.es-94aXgwpn.js.map +1 -0
- package/dist/magic-string.es-CGYIWauW.cjs +15 -0
- package/dist/map-keys.cjs +1 -1
- package/dist/map-keys.d.cts +34 -7
- package/dist/map-keys.d.cts.map +1 -0
- package/dist/map-keys.d.ts +34 -7
- package/dist/map-keys.d.ts.map +1 -0
- package/dist/map-keys.js +2 -1
- package/dist/map-keys.js.map +1 -0
- package/dist/map-to-obj.cjs +1 -1
- package/dist/map-to-obj.d.cts +68 -2
- package/dist/map-to-obj.d.cts.map +1 -0
- package/dist/map-to-obj.d.ts +68 -2
- package/dist/map-to-obj.d.ts.map +1 -0
- package/dist/map-to-obj.js +2 -1
- package/dist/map-to-obj.js.map +1 -0
- package/dist/map-values.cjs +1 -1
- package/dist/map-values.d.cts +42 -5
- package/dist/map-values.d.cts.map +1 -0
- package/dist/map-values.d.ts +42 -5
- package/dist/map-values.d.ts.map +1 -0
- package/dist/map-values.js +2 -1
- package/dist/map-values.js.map +1 -0
- package/dist/map-with-feedback.cjs +1 -1
- package/dist/map-with-feedback.d.cts +54 -4
- package/dist/map-with-feedback.d.cts.map +1 -0
- package/dist/map-with-feedback.d.ts +54 -4
- package/dist/map-with-feedback.d.ts.map +1 -0
- package/dist/map-with-feedback.js +2 -1
- package/dist/map-with-feedback.js.map +1 -0
- package/dist/map.cjs +1 -1
- package/dist/map.d.cts +47 -4
- package/dist/map.d.cts.map +1 -0
- package/dist/map.d.ts +47 -4
- package/dist/map.d.ts.map +1 -0
- package/dist/map.js +2 -1
- package/dist/map.js.map +1 -0
- package/dist/mapped-BbrC9t3s.d.ts +7 -0
- package/dist/mapped-BbrC9t3s.d.ts.map +1 -0
- package/dist/mapped-CkRNfTnY.d.cts +7 -0
- package/dist/mapped-CkRNfTnY.d.cts.map +1 -0
- package/dist/mean-by.cjs +1 -1
- package/dist/mean-by.d.cts +35 -2
- package/dist/mean-by.d.cts.map +1 -0
- package/dist/mean-by.d.ts +35 -2
- package/dist/mean-by.d.ts.map +1 -0
- package/dist/mean-by.js +2 -1
- package/dist/mean-by.js.map +1 -0
- package/dist/merge-all-CISawx-J.d.cts +42 -0
- package/dist/merge-all-CISawx-J.d.cts.map +1 -0
- package/dist/merge-all-DJ6n7R1b.d.ts +42 -0
- package/dist/merge-all-DJ6n7R1b.d.ts.map +1 -0
- package/dist/merge-all.cjs +1 -1
- package/dist/merge-all.d.cts +1 -5
- package/dist/merge-all.d.ts +1 -5
- package/dist/merge-all.js +2 -1
- package/dist/merge-all.js.map +1 -0
- package/dist/merge-deep.cjs +1 -1
- package/dist/merge-deep.d.cts +37 -2
- package/dist/merge-deep.d.cts.map +1 -0
- package/dist/merge-deep.d.ts +37 -2
- package/dist/merge-deep.d.ts.map +1 -0
- package/dist/merge-deep.js +2 -1
- package/dist/merge-deep.js.map +1 -0
- package/dist/merge.cjs +1 -1
- package/dist/merge.d.cts +57 -2
- package/dist/merge.d.cts.map +1 -0
- package/dist/merge.d.ts +57 -2
- package/dist/merge.d.ts.map +1 -0
- package/dist/merge.js +2 -1
- package/dist/merge.js.map +1 -0
- package/dist/multiply.cjs +1 -1
- package/dist/multiply.d.cts +33 -2
- package/dist/multiply.d.cts.map +1 -0
- package/dist/multiply.d.ts +33 -2
- package/dist/multiply.d.ts.map +1 -0
- package/dist/multiply.js +2 -1
- package/dist/multiply.js.map +1 -0
- package/dist/n-tuple-BkMobYQ9.d.cts +12 -0
- package/dist/n-tuple-BkMobYQ9.d.cts.map +1 -0
- package/dist/n-tuple-zo5g_mSL.d.ts +12 -0
- package/dist/n-tuple-zo5g_mSL.d.ts.map +1 -0
- package/dist/narrowed-to-B7tkuY2k.d.ts +15 -0
- package/dist/narrowed-to-B7tkuY2k.d.ts.map +1 -0
- package/dist/narrowed-to-D_6H-aZW.d.cts +15 -0
- package/dist/narrowed-to-D_6H-aZW.d.cts.map +1 -0
- package/dist/non-empty-array-DHAKSw6t.d.ts +5 -0
- package/dist/non-empty-array-DHAKSw6t.d.ts.map +1 -0
- package/dist/non-empty-array-NDjbHRjk.d.cts +5 -0
- package/dist/non-empty-array-NDjbHRjk.d.cts.map +1 -0
- package/dist/nth-by-Bby4vIbZ.cjs +1 -0
- package/dist/nth-by-JP3-Htbo.js +2 -0
- package/dist/nth-by-JP3-Htbo.js.map +1 -0
- package/dist/nth-by.cjs +1 -1
- package/dist/nth-by.d.cts +42 -5
- package/dist/nth-by.d.cts.map +1 -0
- package/dist/nth-by.d.ts +42 -5
- package/dist/nth-by.d.ts.map +1 -0
- package/dist/nth-by.js +1 -1
- package/dist/obj-of.cjs +1 -1
- package/dist/obj-of.d.cts +27 -2
- package/dist/obj-of.d.cts.map +1 -0
- package/dist/obj-of.d.ts +27 -2
- package/dist/obj-of.d.ts.map +1 -0
- package/dist/obj-of.js +2 -1
- package/dist/obj-of.js.map +1 -0
- package/dist/omit-DI8DRDHj.d.ts +71 -0
- package/dist/omit-DI8DRDHj.d.ts.map +1 -0
- package/dist/omit-DQiCiWAg.d.cts +71 -0
- package/dist/omit-DQiCiWAg.d.cts.map +1 -0
- package/dist/omit-by.cjs +1 -1
- package/dist/omit-by.d.cts +52 -6
- package/dist/omit-by.d.cts.map +1 -0
- package/dist/omit-by.d.ts +52 -6
- package/dist/omit-by.d.ts.map +1 -0
- package/dist/omit-by.js +2 -1
- package/dist/omit-by.js.map +1 -0
- package/dist/omit.cjs +1 -1
- package/dist/omit.d.cts +1 -1
- package/dist/omit.d.ts +1 -1
- package/dist/omit.js +2 -1
- package/dist/omit.js.map +1 -0
- package/dist/once.cjs +1 -1
- package/dist/once.d.cts +17 -2
- package/dist/once.d.cts.map +1 -0
- package/dist/once.d.ts +17 -2
- package/dist/once.d.ts.map +1 -0
- package/dist/once.js +2 -1
- package/dist/once.js.map +1 -0
- package/dist/only.cjs +1 -1
- package/dist/only.d.cts +34 -3
- package/dist/only.d.cts.map +1 -0
- package/dist/only.d.ts +34 -3
- package/dist/only.d.ts.map +1 -0
- package/dist/only.js +2 -1
- package/dist/only.js.map +1 -0
- package/dist/optional-options-with-defaults-BFaBSKkF.d.ts +12 -0
- package/dist/optional-options-with-defaults-BFaBSKkF.d.ts.map +1 -0
- package/dist/optional-options-with-defaults-BZVW8GfC.d.cts +12 -0
- package/dist/optional-options-with-defaults-BZVW8GfC.d.cts.map +1 -0
- package/dist/partial-array-CQF5oggb.d.cts +12 -0
- package/dist/partial-array-CQF5oggb.d.cts.map +1 -0
- package/dist/partial-array-DU-2Vkyx.d.ts +12 -0
- package/dist/partial-array-DU-2Vkyx.d.ts.map +1 -0
- package/dist/partition-by-union-BztEpKVh.d.cts +20 -0
- package/dist/partition-by-union-BztEpKVh.d.cts.map +1 -0
- package/dist/partition-by-union-DnfiiEMU.d.ts +20 -0
- package/dist/partition-by-union-DnfiiEMU.d.ts.map +1 -0
- package/dist/partition.cjs +1 -1
- package/dist/partition.d.cts +51 -2
- package/dist/partition.d.cts.map +1 -0
- package/dist/partition.d.ts +51 -2
- package/dist/partition.d.ts.map +1 -0
- package/dist/partition.js +2 -1
- package/dist/partition.js.map +1 -0
- package/dist/path-or.cjs +1 -1
- package/dist/path-or.d.cts +87 -2
- package/dist/path-or.d.cts.map +1 -0
- package/dist/path-or.d.ts +87 -2
- package/dist/path-or.d.ts.map +1 -0
- package/dist/path-or.js +2 -1
- package/dist/path-or.js.map +1 -0
- package/dist/perkakas-type-error-B9ULNhW0.d.ts +19 -0
- package/dist/perkakas-type-error-B9ULNhW0.d.ts.map +1 -0
- package/dist/perkakas-type-error-ClCCHBW1.d.cts +19 -0
- package/dist/perkakas-type-error-ClCCHBW1.d.cts.map +1 -0
- package/dist/pick-by.cjs +1 -1
- package/dist/pick-by.d.cts +68 -6
- package/dist/pick-by.d.cts.map +1 -0
- package/dist/pick-by.d.ts +68 -6
- package/dist/pick-by.d.ts.map +1 -0
- package/dist/pick-by.js +2 -1
- package/dist/pick-by.js.map +1 -0
- package/dist/pick.cjs +1 -1
- package/dist/pick.d.cts +55 -7
- package/dist/pick.d.cts.map +1 -0
- package/dist/pick.d.ts +55 -7
- package/dist/pick.d.ts.map +1 -0
- package/dist/pick.js +2 -1
- package/dist/pick.js.map +1 -0
- package/dist/pipe-CB7Lufqv.cjs +1 -0
- package/dist/pipe-CZKusDA-.js +2 -0
- package/dist/pipe-CZKusDA-.js.map +1 -0
- package/dist/pipe.cjs +1 -1
- package/dist/pipe.d.cts +106 -2
- package/dist/pipe.d.cts.map +1 -0
- package/dist/pipe.d.ts +106 -2
- package/dist/pipe.d.ts.map +1 -0
- package/dist/pipe.js +1 -1
- package/dist/piped.cjs +1 -1
- package/dist/piped.d.cts +31 -2
- package/dist/piped.d.cts.map +1 -0
- package/dist/piped.d.ts +31 -2
- package/dist/piped.d.ts.map +1 -0
- package/dist/piped.js +2 -1
- package/dist/piped.js.map +1 -0
- package/dist/product.cjs +1 -1
- package/dist/product.d.cts +52 -3
- package/dist/product.d.cts.map +1 -0
- package/dist/product.d.ts +52 -3
- package/dist/product.d.ts.map +1 -0
- package/dist/product.js +2 -1
- package/dist/product.js.map +1 -0
- package/dist/prop-D-4cFXSd.d.cts +85 -0
- package/dist/prop-D-4cFXSd.d.cts.map +1 -0
- package/dist/prop-DL-oRBeN.d.ts +85 -0
- package/dist/prop-DL-oRBeN.d.ts.map +1 -0
- package/dist/prop.cjs +1 -1
- package/dist/prop.d.cts +1 -7
- package/dist/prop.d.ts +1 -7
- package/dist/prop.js +2 -1
- package/dist/prop.js.map +1 -0
- package/dist/pull-object.cjs +1 -1
- package/dist/pull-object.d.cts +70 -5
- package/dist/pull-object.d.cts.map +1 -0
- package/dist/pull-object.d.ts +70 -5
- package/dist/pull-object.d.ts.map +1 -0
- package/dist/pull-object.js +2 -1
- package/dist/pull-object.js.map +1 -0
- package/dist/random-integer.cjs +1 -1
- package/dist/random-integer.d.cts +23 -3
- package/dist/random-integer.d.cts.map +1 -0
- package/dist/random-integer.d.ts +23 -3
- package/dist/random-integer.d.ts.map +1 -0
- package/dist/random-integer.js +2 -1
- package/dist/random-integer.js.map +1 -0
- package/dist/random-string.cjs +1 -1
- package/dist/random-string.d.cts +29 -2
- package/dist/random-string.d.cts.map +1 -0
- package/dist/random-string.d.ts +29 -2
- package/dist/random-string.d.ts.map +1 -0
- package/dist/random-string.js +2 -1
- package/dist/random-string.js.map +1 -0
- package/dist/range.cjs +1 -1
- package/dist/range.d.cts +27 -2
- package/dist/range.d.cts.map +1 -0
- package/dist/range.d.ts +27 -2
- package/dist/range.d.ts.map +1 -0
- package/dist/range.js +2 -1
- package/dist/range.js.map +1 -0
- package/dist/rank-by.cjs +1 -1
- package/dist/rank-by.d.cts +45 -4
- package/dist/rank-by.d.cts.map +1 -0
- package/dist/rank-by.d.ts +45 -4
- package/dist/rank-by.d.ts.map +1 -0
- package/dist/rank-by.js +2 -1
- package/dist/rank-by.js.map +1 -0
- package/dist/reduce.cjs +1 -1
- package/dist/reduce.d.cts +53 -2
- package/dist/reduce.d.cts.map +1 -0
- package/dist/reduce.d.ts +53 -2
- package/dist/reduce.d.ts.map +1 -0
- package/dist/reduce.js +2 -1
- package/dist/reduce.js.map +1 -0
- package/dist/reordered-array-BWG6tVSK.d.ts +7 -0
- package/dist/reordered-array-BWG6tVSK.d.ts.map +1 -0
- package/dist/reordered-array-CmReuxDi.d.cts +7 -0
- package/dist/reordered-array-CmReuxDi.d.cts.map +1 -0
- package/dist/reverse.cjs +1 -1
- package/dist/reverse.d.cts +29 -2
- package/dist/reverse.d.cts.map +1 -0
- package/dist/reverse.d.ts +29 -2
- package/dist/reverse.d.ts.map +1 -0
- package/dist/reverse.js +2 -1
- package/dist/reverse.js.map +1 -0
- package/dist/round.cjs +1 -1
- package/dist/round.d.cts +39 -2
- package/dist/round.d.cts.map +1 -0
- package/dist/round.d.ts +39 -2
- package/dist/round.d.ts.map +1 -0
- package/dist/round.js +2 -1
- package/dist/round.js.map +1 -0
- package/dist/sample.cjs +1 -1
- package/dist/sample.d.cts +69 -8
- package/dist/sample.d.cts.map +1 -0
- package/dist/sample.d.ts +69 -8
- package/dist/sample.d.ts.map +1 -0
- package/dist/sample.js +2 -1
- package/dist/sample.js.map +1 -0
- package/dist/set-path.cjs +1 -1
- package/dist/set-path.d.cts +47 -3
- package/dist/set-path.d.cts.map +1 -0
- package/dist/set-path.d.ts +47 -3
- package/dist/set-path.d.ts.map +1 -0
- package/dist/set-path.js +2 -1
- package/dist/set-path.js.map +1 -0
- package/dist/set.cjs +1 -1
- package/dist/set.d.cts +40 -4
- package/dist/set.d.cts.map +1 -0
- package/dist/set.d.ts +40 -4
- package/dist/set.d.ts.map +1 -0
- package/dist/set.js +2 -1
- package/dist/set.js.map +1 -0
- package/dist/shuffle.cjs +1 -1
- package/dist/shuffle.d.cts +31 -4
- package/dist/shuffle.d.cts.map +1 -0
- package/dist/shuffle.d.ts +31 -4
- package/dist/shuffle.d.ts.map +1 -0
- package/dist/shuffle.js +2 -1
- package/dist/shuffle.js.map +1 -0
- package/dist/sleep.cjs +1 -1
- package/dist/sleep.d.cts +16 -2
- package/dist/sleep.d.cts.map +1 -0
- package/dist/sleep.d.ts +16 -2
- package/dist/sleep.d.ts.map +1 -0
- package/dist/sleep.js +2 -1
- package/dist/sleep.js.map +1 -0
- package/dist/slice-string.cjs +1 -1
- package/dist/slice-string.d.cts +41 -2
- package/dist/slice-string.d.cts.map +1 -0
- package/dist/slice-string.d.ts +41 -2
- package/dist/slice-string.d.ts.map +1 -0
- package/dist/slice-string.js +2 -1
- package/dist/slice-string.js.map +1 -0
- package/dist/slugify.cjs +1 -1
- package/dist/slugify.d.cts +15 -2
- package/dist/slugify.d.cts.map +1 -0
- package/dist/slugify.d.ts +15 -2
- package/dist/slugify.d.ts.map +1 -0
- package/dist/slugify.js +2 -1
- package/dist/slugify.js.map +1 -0
- package/dist/sort-by.cjs +1 -1
- package/dist/sort-by.d.cts +88 -6
- package/dist/sort-by.d.cts.map +1 -0
- package/dist/sort-by.d.ts +88 -6
- package/dist/sort-by.d.ts.map +1 -0
- package/dist/sort-by.js +2 -1
- package/dist/sort-by.js.map +1 -0
- package/dist/sort.cjs +1 -1
- package/dist/sort.d.cts +39 -4
- package/dist/sort.d.cts.map +1 -0
- package/dist/sort.d.ts +39 -4
- package/dist/sort.d.ts.map +1 -0
- package/dist/sort.js +2 -1
- package/dist/sort.js.map +1 -0
- package/dist/sorted-index-by.cjs +1 -1
- package/dist/sorted-index-by.d.cts +70 -2
- package/dist/sorted-index-by.d.cts.map +1 -0
- package/dist/sorted-index-by.d.ts +70 -2
- package/dist/sorted-index-by.d.ts.map +1 -0
- package/dist/sorted-index-by.js +2 -1
- package/dist/sorted-index-by.js.map +1 -0
- package/dist/sorted-index-with.cjs +1 -1
- package/dist/sorted-index-with.d.cts +72 -2
- package/dist/sorted-index-with.d.cts.map +1 -0
- package/dist/sorted-index-with.d.ts +72 -2
- package/dist/sorted-index-with.d.ts.map +1 -0
- package/dist/sorted-index-with.js +2 -1
- package/dist/sorted-index-with.js.map +1 -0
- package/dist/sorted-index.cjs +1 -1
- package/dist/sorted-index.d.cts +45 -2
- package/dist/sorted-index.d.cts.map +1 -0
- package/dist/sorted-index.d.ts +45 -2
- package/dist/sorted-index.d.ts.map +1 -0
- package/dist/sorted-index.js +2 -1
- package/dist/sorted-index.js.map +1 -0
- package/dist/sorted-last-index-by.cjs +1 -1
- package/dist/sorted-last-index-by.d.cts +72 -2
- package/dist/sorted-last-index-by.d.cts.map +1 -0
- package/dist/sorted-last-index-by.d.ts +72 -2
- package/dist/sorted-last-index-by.d.ts.map +1 -0
- package/dist/sorted-last-index-by.js +2 -1
- package/dist/sorted-last-index-by.js.map +1 -0
- package/dist/sorted-last-index.cjs +1 -1
- package/dist/sorted-last-index.d.cts +45 -2
- package/dist/sorted-last-index.d.cts.map +1 -0
- package/dist/sorted-last-index.d.ts +45 -2
- package/dist/sorted-last-index.d.ts.map +1 -0
- package/dist/sorted-last-index.js +2 -1
- package/dist/sorted-last-index.js.map +1 -0
- package/dist/splice.cjs +1 -1
- package/dist/splice.d.cts +35 -2
- package/dist/splice.d.cts.map +1 -0
- package/dist/splice.d.ts +35 -2
- package/dist/splice.d.ts.map +1 -0
- package/dist/splice.js +2 -1
- package/dist/splice.js.map +1 -0
- package/dist/split-at.cjs +1 -1
- package/dist/split-at.d.cts +31 -2
- package/dist/split-at.d.cts.map +1 -0
- package/dist/split-at.d.ts +31 -2
- package/dist/split-at.d.ts.map +1 -0
- package/dist/split-at.js +2 -1
- package/dist/split-at.js.map +1 -0
- package/dist/split-when.cjs +1 -1
- package/dist/split-when.d.cts +29 -2
- package/dist/split-when.d.cts.map +1 -0
- package/dist/split-when.d.ts +29 -2
- package/dist/split-when.d.ts.map +1 -0
- package/dist/split-when.js +2 -1
- package/dist/split-when.js.map +1 -0
- package/dist/split.cjs +1 -1
- package/dist/split.d.cts +62 -2
- package/dist/split.d.cts.map +1 -0
- package/dist/split.d.ts +62 -2
- package/dist/split.d.ts.map +1 -0
- package/dist/split.js +2 -1
- package/dist/split.js.map +1 -0
- package/dist/strict-function-BBgKFNUw.d.ts +26 -0
- package/dist/strict-function-BBgKFNUw.d.ts.map +1 -0
- package/dist/strict-function-CPTwDgnZ.d.cts +26 -0
- package/dist/strict-function-CPTwDgnZ.d.cts.map +1 -0
- package/dist/string-to-path.cjs +1 -1
- package/dist/string-to-path.d.cts +39 -2
- package/dist/string-to-path.d.cts.map +1 -0
- package/dist/string-to-path.d.ts +39 -2
- package/dist/string-to-path.d.ts.map +1 -0
- package/dist/string-to-path.js +2 -1
- package/dist/string-to-path.js.map +1 -0
- package/dist/subtract.cjs +1 -1
- package/dist/subtract.d.cts +35 -2
- package/dist/subtract.d.cts.map +1 -0
- package/dist/subtract.d.ts +35 -2
- package/dist/subtract.d.ts.map +1 -0
- package/dist/subtract.js +2 -1
- package/dist/subtract.js.map +1 -0
- package/dist/sum-by.cjs +1 -1
- package/dist/sum-by.d.cts +57 -3
- package/dist/sum-by.d.cts.map +1 -0
- package/dist/sum-by.d.ts +57 -3
- package/dist/sum-by.d.ts.map +1 -0
- package/dist/sum-by.js +2 -1
- package/dist/sum-by.js.map +1 -0
- package/dist/sum.cjs +1 -1
- package/dist/sum.d.cts +50 -3
- package/dist/sum.d.cts.map +1 -0
- package/dist/sum.d.ts +50 -3
- package/dist/sum.d.ts.map +1 -0
- package/dist/sum.js +2 -1
- package/dist/sum.js.map +1 -0
- package/dist/swap-in-place-BHkB_mvV.cjs +1 -0
- package/dist/swap-in-place-C_jXKHuD.js +2 -0
- package/dist/swap-in-place-C_jXKHuD.js.map +1 -0
- package/dist/swap-indices.cjs +1 -1
- package/dist/swap-indices.d.cts +61 -3
- package/dist/swap-indices.d.cts.map +1 -0
- package/dist/swap-indices.d.ts +61 -3
- package/dist/swap-indices.d.ts.map +1 -0
- package/dist/swap-indices.js +2 -1
- package/dist/swap-indices.js.map +1 -0
- package/dist/swap-props.cjs +1 -1
- package/dist/swap-props.d.cts +34 -2
- package/dist/swap-props.d.cts.map +1 -0
- package/dist/swap-props.d.ts +34 -2
- package/dist/swap-props.d.ts.map +1 -0
- package/dist/swap-props.js +2 -1
- package/dist/swap-props.js.map +1 -0
- package/dist/take-first-by.cjs +1 -1
- package/dist/take-first-by.d.cts +41 -4
- package/dist/take-first-by.d.cts.map +1 -0
- package/dist/take-first-by.d.ts +41 -4
- package/dist/take-first-by.d.ts.map +1 -0
- package/dist/take-first-by.js +2 -1
- package/dist/take-first-by.js.map +1 -0
- package/dist/take-last-while.cjs +1 -1
- package/dist/take-last-while.d.cts +36 -3
- package/dist/take-last-while.d.cts.map +1 -0
- package/dist/take-last-while.d.ts +36 -3
- package/dist/take-last-while.d.ts.map +1 -0
- package/dist/take-last-while.js +2 -1
- package/dist/take-last-while.js.map +1 -0
- package/dist/take-last.cjs +1 -1
- package/dist/take-last.d.cts +32 -3
- package/dist/take-last.d.cts.map +1 -0
- package/dist/take-last.d.ts +32 -3
- package/dist/take-last.d.ts.map +1 -0
- package/dist/take-last.js +2 -1
- package/dist/take-last.js.map +1 -0
- package/dist/take-while.cjs +1 -1
- package/dist/take-while.d.cts +34 -3
- package/dist/take-while.d.cts.map +1 -0
- package/dist/take-while.d.ts +34 -3
- package/dist/take-while.d.ts.map +1 -0
- package/dist/take-while.js +2 -1
- package/dist/take-while.js.map +1 -0
- package/dist/take.cjs +1 -1
- package/dist/take.d.cts +34 -3
- package/dist/take.d.cts.map +1 -0
- package/dist/take.d.ts +34 -3
- package/dist/take.d.ts.map +1 -0
- package/dist/take.js +2 -1
- package/dist/take.js.map +1 -0
- package/dist/tap.cjs +1 -1
- package/dist/tap.d.cts +42 -2
- package/dist/tap.d.cts.map +1 -0
- package/dist/tap.d.ts +42 -2
- package/dist/tap.d.ts.map +1 -0
- package/dist/tap.js +2 -1
- package/dist/tap.js.map +1 -0
- package/dist/times.cjs +1 -1
- package/dist/times.d.cts +48 -2
- package/dist/times.d.cts.map +1 -0
- package/dist/times.d.ts +48 -2
- package/dist/times.d.ts.map +1 -0
- package/dist/times.js +2 -1
- package/dist/times.js.map +1 -0
- package/dist/to-camel-case.cjs +1 -1
- package/dist/to-camel-case.d.cts +84 -3
- package/dist/to-camel-case.d.cts.map +1 -0
- package/dist/to-camel-case.d.ts +84 -3
- package/dist/to-camel-case.d.ts.map +1 -0
- package/dist/to-camel-case.js +2 -1
- package/dist/to-camel-case.js.map +1 -0
- package/dist/to-kebab-case.cjs +1 -1
- package/dist/to-kebab-case.d.cts +60 -3
- package/dist/to-kebab-case.d.cts.map +1 -0
- package/dist/to-kebab-case.d.ts +60 -3
- package/dist/to-kebab-case.d.ts.map +1 -0
- package/dist/to-kebab-case.js +2 -1
- package/dist/to-kebab-case.js.map +1 -0
- package/dist/to-lower-case.cjs +1 -0
- package/dist/to-lower-case.d.cts +51 -0
- package/dist/to-lower-case.d.cts.map +1 -0
- package/dist/to-lower-case.d.ts +51 -0
- package/dist/to-lower-case.d.ts.map +1 -0
- package/dist/to-lower-case.js +2 -0
- package/dist/to-lower-case.js.map +1 -0
- package/dist/to-single-BKYbBic-.js +2 -0
- package/dist/to-single-BKYbBic-.js.map +1 -0
- package/dist/to-single-Chq_hKEk.cjs +1 -0
- package/dist/to-snake-case.cjs +1 -1
- package/dist/to-snake-case.d.cts +60 -3
- package/dist/to-snake-case.d.cts.map +1 -0
- package/dist/to-snake-case.d.ts +60 -3
- package/dist/to-snake-case.d.ts.map +1 -0
- package/dist/to-snake-case.js +2 -1
- package/dist/to-snake-case.js.map +1 -0
- package/dist/to-string-DkC3zRUJ.d.cts +13 -0
- package/dist/to-string-DkC3zRUJ.d.cts.map +1 -0
- package/dist/to-string-YIFx2KS6.d.ts +13 -0
- package/dist/to-string-YIFx2KS6.d.ts.map +1 -0
- package/dist/to-title-case.cjs +1 -0
- package/dist/to-title-case.d.cts +86 -0
- package/dist/to-title-case.d.cts.map +1 -0
- package/dist/to-title-case.d.ts +86 -0
- package/dist/to-title-case.d.ts.map +1 -0
- package/dist/to-title-case.js +2 -0
- package/dist/to-title-case.js.map +1 -0
- package/dist/to-upper-case.cjs +1 -0
- package/dist/to-upper-case.d.cts +51 -0
- package/dist/to-upper-case.d.cts.map +1 -0
- package/dist/to-upper-case.d.ts +51 -0
- package/dist/to-upper-case.d.ts.map +1 -0
- package/dist/to-upper-case.js +2 -0
- package/dist/to-upper-case.js.map +1 -0
- package/dist/tuple-parts-BYI4o8Vk.d.ts +89 -0
- package/dist/tuple-parts-BYI4o8Vk.d.ts.map +1 -0
- package/dist/tuple-parts-CzQQupgi.d.cts +89 -0
- package/dist/tuple-parts-CzQQupgi.d.cts.map +1 -0
- package/dist/type.helpers.cjs +0 -1
- package/dist/type.helpers.d.cts +5 -2
- package/dist/type.helpers.d.cts.map +1 -0
- package/dist/type.helpers.d.ts +5 -2
- package/dist/type.helpers.d.ts.map +1 -0
- package/dist/type.helpers.js +0 -1
- package/dist/uncapitalize.cjs +1 -0
- package/dist/uncapitalize.d.cts +51 -0
- package/dist/uncapitalize.d.cts.map +1 -0
- package/dist/uncapitalize.d.ts +51 -0
- package/dist/uncapitalize.d.ts.map +1 -0
- package/dist/uncapitalize.js +2 -0
- package/dist/uncapitalize.js.map +1 -0
- package/dist/unique-by.cjs +1 -1
- package/dist/unique-by.d.cts +44 -5
- package/dist/unique-by.d.cts.map +1 -0
- package/dist/unique-by.d.ts +44 -5
- package/dist/unique-by.d.ts.map +1 -0
- package/dist/unique-by.js +2 -1
- package/dist/unique-by.js.map +1 -0
- package/dist/unique-with.cjs +1 -1
- package/dist/unique-with.d.cts +46 -5
- package/dist/unique-with.d.cts.map +1 -0
- package/dist/unique-with.d.ts +46 -5
- package/dist/unique-with.d.ts.map +1 -0
- package/dist/unique-with.js +2 -1
- package/dist/unique-with.js.map +1 -0
- package/dist/unique.cjs +1 -1
- package/dist/unique.d.cts +39 -5
- package/dist/unique.d.cts.map +1 -0
- package/dist/unique.d.ts +39 -5
- package/dist/unique.d.ts.map +1 -0
- package/dist/unique.js +2 -1
- package/dist/unique.js.map +1 -0
- package/dist/upsert-prop-0hwik6JJ.d.cts +8 -0
- package/dist/upsert-prop-0hwik6JJ.d.cts.map +1 -0
- package/dist/upsert-prop-_NpaZwm4.d.ts +8 -0
- package/dist/upsert-prop-_NpaZwm4.d.ts.map +1 -0
- package/dist/utility-evaluators-Boc-TMbq.js +2 -0
- package/dist/utility-evaluators-Boc-TMbq.js.map +1 -0
- package/dist/utility-evaluators-CAbODbuk.cjs +1 -0
- package/dist/values.cjs +1 -1
- package/dist/values.d.cts +38 -4
- package/dist/values.d.cts.map +1 -0
- package/dist/values.d.ts +38 -4
- package/dist/values.d.ts.map +1 -0
- package/dist/values.js +2 -1
- package/dist/values.js.map +1 -0
- package/dist/with-precision-CQ90Walk.js +2 -0
- package/dist/with-precision-CQ90Walk.js.map +1 -0
- package/dist/with-precision-dQAYLrgr.cjs +1 -0
- package/dist/words-DQCM5umD.js +3 -0
- package/dist/words-DQCM5umD.js.map +1 -0
- package/dist/words-DRQKxzLU.cjs +2 -0
- package/dist/zip-with.cjs +1 -1
- package/dist/zip-with.d.cts +50 -3
- package/dist/zip-with.d.cts.map +1 -0
- package/dist/zip-with.d.ts +50 -3
- package/dist/zip-with.d.ts.map +1 -0
- package/dist/zip-with.js +2 -1
- package/dist/zip-with.js.map +1 -0
- package/dist/zip.cjs +1 -1
- package/dist/zip.d.cts +38 -3
- package/dist/zip.d.cts.map +1 -0
- package/dist/zip.d.ts +38 -3
- package/dist/zip.d.ts.map +1 -0
- package/dist/zip.js +2 -1
- package/dist/zip.js.map +1 -0
- package/package.json +10 -14
- package/dist/add-BSDYck57.d.ts +0 -34
- package/dist/add-BSDYck57.d.ts.map +0 -1
- package/dist/add-CbtGbPU8.cjs +0 -1
- package/dist/add-D2WnMolJ.d.cts +0 -34
- package/dist/add-D2WnMolJ.d.cts.map +0 -1
- package/dist/add-XyDHfOBw.js +0 -2
- package/dist/add-XyDHfOBw.js.map +0 -1
- package/dist/add-prop-BxqZdgPd.cjs +0 -1
- package/dist/add-prop-C9l3pJs4.d.ts +0 -46
- package/dist/add-prop-C9l3pJs4.d.ts.map +0 -1
- package/dist/add-prop-CX56m6sR.js +0 -2
- package/dist/add-prop-CX56m6sR.js.map +0 -1
- package/dist/add-prop-tIjpXGRH.d.cts +0 -46
- package/dist/add-prop-tIjpXGRH.d.cts.map +0 -1
- package/dist/all-pass-BCivJ27h.d.cts +0 -37
- package/dist/all-pass-BCivJ27h.d.cts.map +0 -1
- package/dist/all-pass-CbkTeBNa.d.ts +0 -37
- package/dist/all-pass-CbkTeBNa.d.ts.map +0 -1
- package/dist/all-pass-Dm8Dnhq7.cjs +0 -1
- package/dist/all-pass-TOwgGHEo.js +0 -2
- package/dist/all-pass-TOwgGHEo.js.map +0 -1
- package/dist/any-pass-B1tqZ-S8.js +0 -2
- package/dist/any-pass-B1tqZ-S8.js.map +0 -1
- package/dist/any-pass-BHpbzKfX.d.ts +0 -37
- package/dist/any-pass-BHpbzKfX.d.ts.map +0 -1
- package/dist/any-pass-BUlFAsyd.d.cts +0 -37
- package/dist/any-pass-BUlFAsyd.d.cts.map +0 -1
- package/dist/any-pass-UiZWZkzr.cjs +0 -1
- package/dist/array-required-prefix-BHFg-BKr.d.ts +0 -26
- package/dist/array-required-prefix-BHFg-BKr.d.ts.map +0 -1
- package/dist/array-required-prefix-FSH3Acx8.d.cts +0 -26
- package/dist/array-required-prefix-FSH3Acx8.d.cts.map +0 -1
- package/dist/binary-search-cutoff-index-BZF3GL7H.cjs +0 -1
- package/dist/binary-search-cutoff-index-YVs_m4IY.js +0 -2
- package/dist/binary-search-cutoff-index-YVs_m4IY.js.map +0 -1
- package/dist/bounded-partial-A89bt7Kj.d.cts +0 -17
- package/dist/bounded-partial-A89bt7Kj.d.cts.map +0 -1
- package/dist/bounded-partial-DfemQln9.d.ts +0 -17
- package/dist/bounded-partial-DfemQln9.d.ts.map +0 -1
- package/dist/case.transform-BXzx2bAJ.cjs +0 -1
- package/dist/case.transform-DJYiGJG0.js +0 -2
- package/dist/case.transform-DJYiGJG0.js.map +0 -1
- package/dist/case.types-D-4qwVN-.d.cts +0 -19
- package/dist/case.types-D-4qwVN-.d.cts.map +0 -1
- package/dist/case.types-D5NB5m6p.d.ts +0 -19
- package/dist/case.types-D5NB5m6p.d.ts.map +0 -1
- package/dist/ceil--cMT2iUp.js +0 -2
- package/dist/ceil--cMT2iUp.js.map +0 -1
- package/dist/ceil-BfPd1zim.d.cts +0 -39
- package/dist/ceil-BfPd1zim.d.cts.map +0 -1
- package/dist/ceil-CgjlA1iG.cjs +0 -1
- package/dist/ceil-t6jtFzmr.d.ts +0 -39
- package/dist/ceil-t6jtFzmr.d.ts.map +0 -1
- package/dist/chunk-C__yw06N.d.cts +0 -76
- package/dist/chunk-C__yw06N.d.cts.map +0 -1
- package/dist/chunk-Hsv7c06B.d.ts +0 -76
- package/dist/chunk-Hsv7c06B.d.ts.map +0 -1
- package/dist/chunk-_kldYmb1.cjs +0 -1
- package/dist/chunk-dIPp871Q.js +0 -2
- package/dist/chunk-dIPp871Q.js.map +0 -1
- package/dist/clamp-Cnh0Qg03.cjs +0 -1
- package/dist/clamp-DMX7Ua7I.d.cts +0 -37
- package/dist/clamp-DMX7Ua7I.d.cts.map +0 -1
- package/dist/clamp-D_5sgYkv.d.ts +0 -37
- package/dist/clamp-D_5sgYkv.d.ts.map +0 -1
- package/dist/clamp-zR5XX002.js +0 -2
- package/dist/clamp-zR5XX002.js.map +0 -1
- package/dist/clamped-integer-subtract-DId0tRjp.d.cts +0 -11
- package/dist/clamped-integer-subtract-DId0tRjp.d.cts.map +0 -1
- package/dist/clamped-integer-subtract-Dh3vTnRH.d.ts +0 -11
- package/dist/clamped-integer-subtract-Dh3vTnRH.d.ts.map +0 -1
- package/dist/clone-1QjPrzdD.d.cts +0 -35
- package/dist/clone-1QjPrzdD.d.cts.map +0 -1
- package/dist/clone-BcAGB1C1.js +0 -2
- package/dist/clone-BcAGB1C1.js.map +0 -1
- package/dist/clone-CY68Bkn3.d.ts +0 -35
- package/dist/clone-CY68Bkn3.d.ts.map +0 -1
- package/dist/clone-DyRAAJkh.cjs +0 -1
- package/dist/coerced-array-Fezc8pIu.d.ts +0 -17
- package/dist/coerced-array-Fezc8pIu.d.ts.map +0 -1
- package/dist/coerced-array-kVJtBrMl.d.cts +0 -17
- package/dist/coerced-array-kVJtBrMl.d.cts.map +0 -1
- package/dist/concat-BOAliAPo.d.ts +0 -41
- package/dist/concat-BOAliAPo.d.ts.map +0 -1
- package/dist/concat-BdgaaV6q.d.cts +0 -41
- package/dist/concat-BdgaaV6q.d.cts.map +0 -1
- package/dist/concat-CVEXmYnw.js +0 -2
- package/dist/concat-CVEXmYnw.js.map +0 -1
- package/dist/concat-Cg3I4d7x.cjs +0 -1
- package/dist/conditional-81kit9Lg.cjs +0 -1
- package/dist/conditional-BW7TbnuD.d.ts +0 -221
- package/dist/conditional-BW7TbnuD.d.ts.map +0 -1
- package/dist/conditional-BivA0O7M.d.cts +0 -221
- package/dist/conditional-BivA0O7M.d.cts.map +0 -1
- package/dist/conditional-ClGfJoeu.js +0 -2
- package/dist/conditional-ClGfJoeu.js.map +0 -1
- package/dist/constant-BoufjloF.d.ts +0 -32
- package/dist/constant-BoufjloF.d.ts.map +0 -1
- package/dist/constant-BuIJ9GIn.cjs +0 -1
- package/dist/constant-DD3Fj3xH.d.cts +0 -32
- package/dist/constant-DD3Fj3xH.d.cts.map +0 -1
- package/dist/constant-DrpDXHc7.js +0 -2
- package/dist/constant-DrpDXHc7.js.map +0 -1
- package/dist/count-by-CYv2OHvx.d.cts +0 -42
- package/dist/count-by-CYv2OHvx.d.cts.map +0 -1
- package/dist/count-by-DUtzS9CI.cjs +0 -1
- package/dist/count-by-DZwTr8U_.js +0 -2
- package/dist/count-by-DZwTr8U_.js.map +0 -1
- package/dist/count-by-gwHw1EiK.d.ts +0 -42
- package/dist/count-by-gwHw1EiK.d.ts.map +0 -1
- package/dist/curry-2mBj-wsI.d.ts +0 -68
- package/dist/curry-2mBj-wsI.d.ts.map +0 -1
- package/dist/curry-BPVIsvo3.cjs +0 -1
- package/dist/curry-CzZjDrpv.js +0 -2
- package/dist/curry-CzZjDrpv.js.map +0 -1
- package/dist/curry-from-lazy-BDH06qZ-.cjs +0 -1
- package/dist/curry-from-lazy-BR-hoRDR.js +0 -2
- package/dist/curry-from-lazy-BR-hoRDR.js.map +0 -1
- package/dist/curry-gLBYaLmk.d.cts +0 -68
- package/dist/curry-gLBYaLmk.d.cts.map +0 -1
- package/dist/curry-order-rules-1zjlAgqa.d.cts +0 -48
- package/dist/curry-order-rules-1zjlAgqa.d.cts.map +0 -1
- package/dist/curry-order-rules-BuA7D1F4.js +0 -2
- package/dist/curry-order-rules-BuA7D1F4.js.map +0 -1
- package/dist/curry-order-rules-D2zI7gpB.d.ts +0 -48
- package/dist/curry-order-rules-D2zI7gpB.d.ts.map +0 -1
- package/dist/curry-order-rules-UcuuWkKd.cjs +0 -1
- package/dist/debounce-6x-eQzOn.cjs +0 -1
- package/dist/debounce-BNkJBFrQ.d.cts +0 -96
- package/dist/debounce-BNkJBFrQ.d.cts.map +0 -1
- package/dist/debounce-BzjeDvY7.d.ts +0 -96
- package/dist/debounce-BzjeDvY7.d.ts.map +0 -1
- package/dist/debounce-C9xIAomT.js +0 -2
- package/dist/debounce-C9xIAomT.js.map +0 -1
- package/dist/deduped-CAglY8bF.d.cts +0 -23
- package/dist/deduped-CAglY8bF.d.cts.map +0 -1
- package/dist/deduped-Dru_XVLX.d.ts +0 -23
- package/dist/deduped-Dru_XVLX.d.ts.map +0 -1
- package/dist/difference-B5WQzd-Z.cjs +0 -1
- package/dist/difference-C1tclXTn.d.cts +0 -37
- package/dist/difference-C1tclXTn.d.cts.map +0 -1
- package/dist/difference-Dgeqsjn_.js +0 -2
- package/dist/difference-Dgeqsjn_.js.map +0 -1
- package/dist/difference-sizBcrek.d.ts +0 -37
- package/dist/difference-sizBcrek.d.ts.map +0 -1
- package/dist/difference-with-CNN8MVj2.cjs +0 -1
- package/dist/difference-with-CTy1JWpg.d.cts +0 -48
- package/dist/difference-with-CTy1JWpg.d.cts.map +0 -1
- package/dist/difference-with-CiySHDr9.js +0 -2
- package/dist/difference-with-CiySHDr9.js.map +0 -1
- package/dist/difference-with-rgSm5BHb.d.ts +0 -48
- package/dist/difference-with-rgSm5BHb.d.ts.map +0 -1
- package/dist/dist-3WF0YzcR.cjs +0 -343
- package/dist/dist-C2nNPffG.js +0 -291
- package/dist/dist-C2nNPffG.js.map +0 -1
- package/dist/divide-BI9ShWGE.js +0 -2
- package/dist/divide-BI9ShWGE.js.map +0 -1
- package/dist/divide-BrqILGpr.d.ts +0 -33
- package/dist/divide-BrqILGpr.d.ts.map +0 -1
- package/dist/divide-C8COFm-b.d.cts +0 -33
- package/dist/divide-C8COFm-b.d.cts.map +0 -1
- package/dist/divide-ZFT5ZqJ0.cjs +0 -1
- package/dist/do-nothing-Be29JGDG.js +0 -2
- package/dist/do-nothing-Be29JGDG.js.map +0 -1
- package/dist/do-nothing-Cc1faYu6.cjs +0 -1
- package/dist/do-nothing-POjs7puG.d.ts +0 -28
- package/dist/do-nothing-POjs7puG.d.ts.map +0 -1
- package/dist/do-nothing-xUCzRm4m.d.cts +0 -28
- package/dist/do-nothing-xUCzRm4m.d.cts.map +0 -1
- package/dist/drop-Bmm5QDJI.d.cts +0 -40
- package/dist/drop-Bmm5QDJI.d.cts.map +0 -1
- package/dist/drop-BvsV-rBc.js +0 -2
- package/dist/drop-BvsV-rBc.js.map +0 -1
- package/dist/drop-C-tVyU4K.cjs +0 -1
- package/dist/drop-Dsq8aU8R.d.ts +0 -40
- package/dist/drop-Dsq8aU8R.d.ts.map +0 -1
- package/dist/drop-first-by-CSqeAzwS.d.cts +0 -41
- package/dist/drop-first-by-CSqeAzwS.d.cts.map +0 -1
- package/dist/drop-first-by-CXGGBmyr.d.ts +0 -41
- package/dist/drop-first-by-CXGGBmyr.d.ts.map +0 -1
- package/dist/drop-first-by-Cclqg5G_.js +0 -2
- package/dist/drop-first-by-Cclqg5G_.js.map +0 -1
- package/dist/drop-first-by-DJOgP-yE.cjs +0 -1
- package/dist/drop-last-BvC1IbNA.d.ts +0 -32
- package/dist/drop-last-BvC1IbNA.d.ts.map +0 -1
- package/dist/drop-last-CX8JXA1b.cjs +0 -1
- package/dist/drop-last-CuCKuM4n.js +0 -2
- package/dist/drop-last-CuCKuM4n.js.map +0 -1
- package/dist/drop-last-oiDr5Owj.d.cts +0 -32
- package/dist/drop-last-oiDr5Owj.d.cts.map +0 -1
- package/dist/drop-last-while-C_hHfAhU.d.cts +0 -36
- package/dist/drop-last-while-C_hHfAhU.d.cts.map +0 -1
- package/dist/drop-last-while-DMzZWC3Y.cjs +0 -1
- package/dist/drop-last-while-StSGe_bf.js +0 -2
- package/dist/drop-last-while-StSGe_bf.js.map +0 -1
- package/dist/drop-last-while-qFzYXyPx.d.ts +0 -36
- package/dist/drop-last-while-qFzYXyPx.d.ts.map +0 -1
- package/dist/drop-while-BCln-hAn.js +0 -2
- package/dist/drop-while-BCln-hAn.js.map +0 -1
- package/dist/drop-while-BGbJsU8z.cjs +0 -1
- package/dist/drop-while-BhqTfWFO.d.ts +0 -36
- package/dist/drop-while-BhqTfWFO.d.ts.map +0 -1
- package/dist/drop-while-T3z_MbtJ.d.cts +0 -36
- package/dist/drop-while-T3z_MbtJ.d.cts.map +0 -1
- package/dist/entries--JP88NsB.d.cts +0 -31
- package/dist/entries--JP88NsB.d.cts.map +0 -1
- package/dist/entries-B1cH8giK.cjs +0 -1
- package/dist/entries-Bsl_GQTu.js +0 -2
- package/dist/entries-Bsl_GQTu.js.map +0 -1
- package/dist/entries-Dr63hPk4.d.ts +0 -31
- package/dist/entries-Dr63hPk4.d.ts.map +0 -1
- package/dist/enumerable-string-key-of-D2OpyD6n.d.cts +0 -17
- package/dist/enumerable-string-key-of-D2OpyD6n.d.cts.map +0 -1
- package/dist/enumerable-string-key-of-nnI9DYHk.d.ts +0 -17
- package/dist/enumerable-string-key-of-nnI9DYHk.d.ts.map +0 -1
- package/dist/enumerable-string-keyed-value-of-D0kMm_yz.d.ts +0 -12
- package/dist/enumerable-string-keyed-value-of-D0kMm_yz.d.ts.map +0 -1
- package/dist/enumerable-string-keyed-value-of-aov5dXss.d.cts +0 -12
- package/dist/enumerable-string-keyed-value-of-aov5dXss.d.cts.map +0 -1
- package/dist/evolve-3KidXCB8.d.ts +0 -101
- package/dist/evolve-3KidXCB8.d.ts.map +0 -1
- package/dist/evolve-BReerpSa.js +0 -2
- package/dist/evolve-BReerpSa.js.map +0 -1
- package/dist/evolve-DOxUNkYX.d.cts +0 -101
- package/dist/evolve-DOxUNkYX.d.cts.map +0 -1
- package/dist/evolve-DtSJxJiM.cjs +0 -1
- package/dist/filter-Bg-TEmtZ.d.ts +0 -50
- package/dist/filter-Bg-TEmtZ.d.ts.map +0 -1
- package/dist/filter-CH_YQe9A.js +0 -2
- package/dist/filter-CH_YQe9A.js.map +0 -1
- package/dist/filter-CkFzFT5Q.d.cts +0 -50
- package/dist/filter-CkFzFT5Q.d.cts.map +0 -1
- package/dist/filter-DsjklegV.cjs +0 -1
- package/dist/filtered-array-CPOk8m8s.d.ts +0 -13
- package/dist/filtered-array-CPOk8m8s.d.ts.map +0 -1
- package/dist/filtered-array-DQcAXQDD.d.cts +0 -13
- package/dist/filtered-array-DQcAXQDD.d.cts.map +0 -1
- package/dist/find-Bc-wGZYR.d.cts +0 -64
- package/dist/find-Bc-wGZYR.d.cts.map +0 -1
- package/dist/find-BuO4hH8Z.cjs +0 -1
- package/dist/find-DR6lM3gh.js +0 -2
- package/dist/find-DR6lM3gh.js.map +0 -1
- package/dist/find-DwyDwHfH.d.ts +0 -64
- package/dist/find-DwyDwHfH.d.ts.map +0 -1
- package/dist/find-index-CojMwOU1.cjs +0 -1
- package/dist/find-index-CzHRd1Ey.js +0 -2
- package/dist/find-index-CzHRd1Ey.js.map +0 -1
- package/dist/find-index-DlVnTeBV.d.ts +0 -50
- package/dist/find-index-DlVnTeBV.d.ts.map +0 -1
- package/dist/find-index-mVR2WVAJ.d.cts +0 -50
- package/dist/find-index-mVR2WVAJ.d.cts.map +0 -1
- package/dist/find-last-Bd6eGQR1.d.ts +0 -62
- package/dist/find-last-Bd6eGQR1.d.ts.map +0 -1
- package/dist/find-last-DqGxSxQ-.d.cts +0 -62
- package/dist/find-last-DqGxSxQ-.d.cts.map +0 -1
- package/dist/find-last-gCcPzwJP.js +0 -2
- package/dist/find-last-gCcPzwJP.js.map +0 -1
- package/dist/find-last-index-C-wdKiKp.cjs +0 -1
- package/dist/find-last-index-C4il48Y6.d.cts +0 -50
- package/dist/find-last-index-C4il48Y6.d.cts.map +0 -1
- package/dist/find-last-index-DSUbOIoQ.d.ts +0 -50
- package/dist/find-last-index-DSUbOIoQ.d.ts.map +0 -1
- package/dist/find-last-index-DuYnKTXJ.js +0 -2
- package/dist/find-last-index-DuYnKTXJ.js.map +0 -1
- package/dist/find-last-yrb1RLMJ.cjs +0 -1
- package/dist/first-C3rp67g0.d.cts +0 -40
- package/dist/first-C3rp67g0.d.cts.map +0 -1
- package/dist/first-CWP5DfBE.d.ts +0 -40
- package/dist/first-CWP5DfBE.d.ts.map +0 -1
- package/dist/first-DDQc8owl.js +0 -2
- package/dist/first-DDQc8owl.js.map +0 -1
- package/dist/first-Dbxt3OEg.cjs +0 -1
- package/dist/first-by-B5IsCexF.js +0 -2
- package/dist/first-by-B5IsCexF.js.map +0 -1
- package/dist/first-by-BzxRBZ5J.cjs +0 -1
- package/dist/first-by-Dm9iyhMz.d.cts +0 -60
- package/dist/first-by-Dm9iyhMz.d.cts.map +0 -1
- package/dist/first-by-DopEPVKr.d.ts +0 -60
- package/dist/first-by-DopEPVKr.d.ts.map +0 -1
- package/dist/flat-BayJJsR-.cjs +0 -1
- package/dist/flat-CJrZ3ALE.d.cts +0 -53
- package/dist/flat-CJrZ3ALE.d.cts.map +0 -1
- package/dist/flat-Cd7pIXar.js +0 -2
- package/dist/flat-Cd7pIXar.js.map +0 -1
- package/dist/flat-CfT3an2x.d.ts +0 -53
- package/dist/flat-CfT3an2x.d.ts.map +0 -1
- package/dist/flat-map-1WAgW39N.js +0 -2
- package/dist/flat-map-1WAgW39N.js.map +0 -1
- package/dist/flat-map-BI-sJd2B.cjs +0 -1
- package/dist/flat-map-Do5YLueq.d.cts +0 -47
- package/dist/flat-map-Do5YLueq.d.cts.map +0 -1
- package/dist/flat-map-jJBhHtYT.d.ts +0 -47
- package/dist/flat-map-jJBhHtYT.d.ts.map +0 -1
- package/dist/floor-Bj0O0YjY.cjs +0 -1
- package/dist/floor-C_xareFD.js +0 -2
- package/dist/floor-C_xareFD.js.map +0 -1
- package/dist/floor-DTUexUEb.d.ts +0 -39
- package/dist/floor-DTUexUEb.d.ts.map +0 -1
- package/dist/floor-bA1oX38x.d.cts +0 -39
- package/dist/floor-bA1oX38x.d.cts.map +0 -1
- package/dist/for-each-BtbPzNDc.cjs +0 -1
- package/dist/for-each-C0JwQxWw.d.ts +0 -54
- package/dist/for-each-C0JwQxWw.d.ts.map +0 -1
- package/dist/for-each-CYTR5H9O.d.cts +0 -54
- package/dist/for-each-CYTR5H9O.d.cts.map +0 -1
- package/dist/for-each-ClKbAv3A.js +0 -2
- package/dist/for-each-ClKbAv3A.js.map +0 -1
- package/dist/for-each-obj-B6BJwtgs.cjs +0 -1
- package/dist/for-each-obj-CJFU3pj_.js +0 -2
- package/dist/for-each-obj-CJFU3pj_.js.map +0 -1
- package/dist/for-each-obj-q_fip-TI.d.ts +0 -47
- package/dist/for-each-obj-q_fip-TI.d.ts.map +0 -1
- package/dist/for-each-obj-yV90UbvE.d.cts +0 -47
- package/dist/for-each-obj-yV90UbvE.d.cts.map +0 -1
- package/dist/from-entries-CToFI5yO.d.cts +0 -68
- package/dist/from-entries-CToFI5yO.d.cts.map +0 -1
- package/dist/from-entries-D6f6Bd0l.js +0 -2
- package/dist/from-entries-D6f6Bd0l.js.map +0 -1
- package/dist/from-entries-DDkKcu-p.cjs +0 -1
- package/dist/from-entries-DRBY1dKq.d.ts +0 -68
- package/dist/from-entries-DRBY1dKq.d.ts.map +0 -1
- package/dist/from-keys-CI2PJlIM.cjs +0 -1
- package/dist/from-keys-DJe8xU7b.js +0 -2
- package/dist/from-keys-DJe8xU7b.js.map +0 -1
- package/dist/from-keys-Ds1mndVk.d.cts +0 -60
- package/dist/from-keys-Ds1mndVk.d.cts.map +0 -1
- package/dist/from-keys-DsvEWPvE.d.ts +0 -60
- package/dist/from-keys-DsvEWPvE.d.ts.map +0 -1
- package/dist/funnel-CEbURcmp.js +0 -2
- package/dist/funnel-CEbURcmp.js.map +0 -1
- package/dist/funnel-CL-QFpGk.cjs +0 -1
- package/dist/funnel-CMyhp3Kv.d.ts +0 -155
- package/dist/funnel-CMyhp3Kv.d.ts.map +0 -1
- package/dist/funnel-DRrT4WPx.d.cts +0 -155
- package/dist/funnel-DRrT4WPx.d.cts.map +0 -1
- package/dist/group-by-057Glgkg.cjs +0 -1
- package/dist/group-by-8exEDbij.js +0 -2
- package/dist/group-by-8exEDbij.js.map +0 -1
- package/dist/group-by-DDS1NPHf.d.cts +0 -69
- package/dist/group-by-DDS1NPHf.d.cts.map +0 -1
- package/dist/group-by-DXW8niUS.d.ts +0 -69
- package/dist/group-by-DXW8niUS.d.ts.map +0 -1
- package/dist/group-by-prop-ByeUoeXV.cjs +0 -1
- package/dist/group-by-prop-CcSzCSuu.d.cts +0 -89
- package/dist/group-by-prop-CcSzCSuu.d.cts.map +0 -1
- package/dist/group-by-prop-DDkWErlP.d.ts +0 -89
- package/dist/group-by-prop-DDkWErlP.d.ts.map +0 -1
- package/dist/group-by-prop-Gi66eXCp.js +0 -2
- package/dist/group-by-prop-Gi66eXCp.js.map +0 -1
- package/dist/has-at-least-6iRvhsST.js +0 -2
- package/dist/has-at-least-6iRvhsST.js.map +0 -1
- package/dist/has-at-least-BbYfXc8L.d.cts +0 -59
- package/dist/has-at-least-BbYfXc8L.d.cts.map +0 -1
- package/dist/has-at-least-D-ahiJB6.cjs +0 -1
- package/dist/has-at-least-QYnhvh7S.d.ts +0 -59
- package/dist/has-at-least-QYnhvh7S.d.ts.map +0 -1
- package/dist/has-sub-object-C7LwzJ88.js +0 -2
- package/dist/has-sub-object-C7LwzJ88.js.map +0 -1
- package/dist/has-sub-object-DjlCWSUi.cjs +0 -1
- package/dist/has-sub-object-oUnH6b7a.d.cts +0 -44
- package/dist/has-sub-object-oUnH6b7a.d.cts.map +0 -1
- package/dist/has-sub-object-tnHnkr8o.d.ts +0 -44
- package/dist/has-sub-object-tnHnkr8o.d.ts.map +0 -1
- package/dist/heap-BrQEhV5W.js +0 -2
- package/dist/heap-BrQEhV5W.js.map +0 -1
- package/dist/heap-CpdbyWAN.cjs +0 -1
- package/dist/human-readable-file-size-BtprvwQj.cjs +0 -1
- package/dist/human-readable-file-size-CPeHO1Te.js +0 -2
- package/dist/human-readable-file-size-CPeHO1Te.js.map +0 -1
- package/dist/human-readable-file-size-D5VzlCuv.d.ts +0 -17
- package/dist/human-readable-file-size-D5VzlCuv.d.ts.map +0 -1
- package/dist/human-readable-file-size-DtwHNZes.d.cts +0 -17
- package/dist/human-readable-file-size-DtwHNZes.d.cts.map +0 -1
- package/dist/identity-BAryUWbs.cjs +0 -1
- package/dist/identity-CPDLj9Cq.d.cts +0 -22
- package/dist/identity-CPDLj9Cq.d.cts.map +0 -1
- package/dist/identity-D3aX0VUB.d.ts +0 -22
- package/dist/identity-D3aX0VUB.d.ts.map +0 -1
- package/dist/identity-D7NWGnLw.js +0 -2
- package/dist/identity-D7NWGnLw.js.map +0 -1
- package/dist/index-by-BJH9P6kU.cjs +0 -1
- package/dist/index-by-CNa3p-Is.d.cts +0 -53
- package/dist/index-by-CNa3p-Is.d.cts.map +0 -1
- package/dist/index-by-CZTWSQPX.d.ts +0 -53
- package/dist/index-by-CZTWSQPX.d.ts.map +0 -1
- package/dist/index-by-adSf-XkW.js +0 -2
- package/dist/index-by-adSf-XkW.js.map +0 -1
- package/dist/int-range-inclusive-DZG3R2Xl.d.cts +0 -15
- package/dist/int-range-inclusive-DZG3R2Xl.d.cts.map +0 -1
- package/dist/int-range-inclusive-DzLDwln0.d.ts +0 -15
- package/dist/int-range-inclusive-DzLDwln0.d.ts.map +0 -1
- package/dist/intersection-C7uJ0cq1.d.ts +0 -37
- package/dist/intersection-C7uJ0cq1.d.ts.map +0 -1
- package/dist/intersection-CaBWENw7.d.cts +0 -37
- package/dist/intersection-CaBWENw7.d.cts.map +0 -1
- package/dist/intersection-Crt0YdjH.js +0 -2
- package/dist/intersection-Crt0YdjH.js.map +0 -1
- package/dist/intersection-pxjmHAj1.cjs +0 -1
- package/dist/intersection-with-DlHJvAUn.js +0 -2
- package/dist/intersection-with-DlHJvAUn.js.map +0 -1
- package/dist/intersection-with-Dre9A1oC.d.cts +0 -54
- package/dist/intersection-with-Dre9A1oC.d.cts.map +0 -1
- package/dist/intersection-with-J-TfLFKn.d.ts +0 -54
- package/dist/intersection-with-J-TfLFKn.d.ts.map +0 -1
- package/dist/intersection-with-X3fvRkLr.cjs +0 -1
- package/dist/invert-DhET3F4O.cjs +0 -1
- package/dist/invert-DsEwwjea.js +0 -2
- package/dist/invert-DsEwwjea.js.map +0 -1
- package/dist/invert-V1ZPyP7T.d.ts +0 -33
- package/dist/invert-V1ZPyP7T.d.ts.map +0 -1
- package/dist/invert-W6EUYMws.d.cts +0 -33
- package/dist/invert-W6EUYMws.d.cts.map +0 -1
- package/dist/is-array-DAz7gkMm.d.cts +0 -21
- package/dist/is-array-DAz7gkMm.d.cts.map +0 -1
- package/dist/is-array-DWFX2okh.js +0 -2
- package/dist/is-array-DWFX2okh.js.map +0 -1
- package/dist/is-array-DWisKd2S.d.ts +0 -21
- package/dist/is-array-DWisKd2S.d.ts.map +0 -1
- package/dist/is-array-KzYs6pgh.cjs +0 -1
- package/dist/is-big-int-Cgisg7DN.cjs +0 -1
- package/dist/is-big-int-CnWK6SmP.js +0 -2
- package/dist/is-big-int-CnWK6SmP.js.map +0 -1
- package/dist/is-big-int-DmUEnRHP.d.ts +0 -22
- package/dist/is-big-int-DmUEnRHP.d.ts.map +0 -1
- package/dist/is-big-int-Dow1Lswh.d.cts +0 -22
- package/dist/is-big-int-Dow1Lswh.d.cts.map +0 -1
- package/dist/is-boolean-BSqxj-_d.d.ts +0 -21
- package/dist/is-boolean-BSqxj-_d.d.ts.map +0 -1
- package/dist/is-boolean-CZKz4ij3.js +0 -2
- package/dist/is-boolean-CZKz4ij3.js.map +0 -1
- package/dist/is-boolean-DADmOIbu.cjs +0 -1
- package/dist/is-boolean-NhoGl1jZ.d.cts +0 -21
- package/dist/is-boolean-NhoGl1jZ.d.cts.map +0 -1
- package/dist/is-bounded-record-DEQ2a3_Y.d.ts +0 -34
- package/dist/is-bounded-record-DEQ2a3_Y.d.ts.map +0 -1
- package/dist/is-bounded-record-kpsb1wQA.d.cts +0 -34
- package/dist/is-bounded-record-kpsb1wQA.d.cts.map +0 -1
- package/dist/is-date--gIC--NA.d.cts +0 -17
- package/dist/is-date--gIC--NA.d.cts.map +0 -1
- package/dist/is-date-CNebQb0Y.cjs +0 -1
- package/dist/is-date-DKKVtHVY.js +0 -2
- package/dist/is-date-DKKVtHVY.js.map +0 -1
- package/dist/is-date-pSRD0Bm_.d.ts +0 -17
- package/dist/is-date-pSRD0Bm_.d.ts.map +0 -1
- package/dist/is-deep-equal-C5PnLPx2.d.ts +0 -71
- package/dist/is-deep-equal-C5PnLPx2.d.ts.map +0 -1
- package/dist/is-deep-equal-CtBdM4eT.d.cts +0 -71
- package/dist/is-deep-equal-CtBdM4eT.d.cts.map +0 -1
- package/dist/is-deep-equal-D7dqs3e2.js +0 -2
- package/dist/is-deep-equal-D7dqs3e2.js.map +0 -1
- package/dist/is-deep-equal-DR9xJg8D.cjs +0 -1
- package/dist/is-defined-3Qp6lmQw.d.cts +0 -19
- package/dist/is-defined-3Qp6lmQw.d.cts.map +0 -1
- package/dist/is-defined-Bjs-PriY.d.ts +0 -19
- package/dist/is-defined-Bjs-PriY.d.ts.map +0 -1
- package/dist/is-defined-BnbPFPUx.cjs +0 -1
- package/dist/is-defined-bdl8LRyD.js +0 -2
- package/dist/is-defined-bdl8LRyD.js.map +0 -1
- package/dist/is-empty-BSkgk0sE.js +0 -2
- package/dist/is-empty-BSkgk0sE.js.map +0 -1
- package/dist/is-empty-CFT22qg4.d.cts +0 -35
- package/dist/is-empty-CFT22qg4.d.cts.map +0 -1
- package/dist/is-empty-DumZFkEX.d.ts +0 -35
- package/dist/is-empty-DumZFkEX.d.ts.map +0 -1
- package/dist/is-empty-s3B43K38.cjs +0 -1
- package/dist/is-emptyish-CtpYRY75.cjs +0 -1
- package/dist/is-emptyish-DAVU8RH1.d.cts +0 -74
- package/dist/is-emptyish-DAVU8RH1.d.cts.map +0 -1
- package/dist/is-emptyish-DTm1VZz9.d.ts +0 -74
- package/dist/is-emptyish-DTm1VZz9.d.ts.map +0 -1
- package/dist/is-emptyish-EQIjUNpM.js +0 -2
- package/dist/is-emptyish-EQIjUNpM.js.map +0 -1
- package/dist/is-error-3lCqN0ZV.cjs +0 -1
- package/dist/is-error-78KeswTB.js +0 -2
- package/dist/is-error-78KeswTB.js.map +0 -1
- package/dist/is-error-BaSTm9Oy.d.ts +0 -18
- package/dist/is-error-BaSTm9Oy.d.ts.map +0 -1
- package/dist/is-error-CRs0usTg.d.cts +0 -18
- package/dist/is-error-CRs0usTg.d.cts.map +0 -1
- package/dist/is-function-BwWA5uZn.js +0 -2
- package/dist/is-function-BwWA5uZn.js.map +0 -1
- package/dist/is-function-CUUJoPVT.d.cts +0 -18
- package/dist/is-function-CUUJoPVT.d.cts.map +0 -1
- package/dist/is-function-DCafs0vu.cjs +0 -1
- package/dist/is-function-RTVlC34T.d.ts +0 -18
- package/dist/is-function-RTVlC34T.d.ts.map +0 -1
- package/dist/is-included-in-BPf-vizg.d.ts +0 -110
- package/dist/is-included-in-BPf-vizg.d.ts.map +0 -1
- package/dist/is-included-in-Bgc9XbPZ.d.cts +0 -110
- package/dist/is-included-in-Bgc9XbPZ.d.cts.map +0 -1
- package/dist/is-included-in-Cyf_CvyT.cjs +0 -1
- package/dist/is-included-in-sNQGRURb.js +0 -2
- package/dist/is-included-in-sNQGRURb.js.map +0 -1
- package/dist/is-non-null-BN4w5Uvv.d.cts +0 -19
- package/dist/is-non-null-BN4w5Uvv.d.cts.map +0 -1
- package/dist/is-non-null-ByX4cCc9.js +0 -2
- package/dist/is-non-null-ByX4cCc9.js.map +0 -1
- package/dist/is-non-null-CkhUFCj7.d.ts +0 -19
- package/dist/is-non-null-CkhUFCj7.d.ts.map +0 -1
- package/dist/is-non-null-ottNSI71.cjs +0 -1
- package/dist/is-non-nullish-CPYxcbdK.js +0 -2
- package/dist/is-non-nullish-CPYxcbdK.js.map +0 -1
- package/dist/is-non-nullish-Ck7WAiku.cjs +0 -1
- package/dist/is-non-nullish-D6EU-vIp.d.cts +0 -20
- package/dist/is-non-nullish-D6EU-vIp.d.cts.map +0 -1
- package/dist/is-non-nullish-O32x0PJp.d.ts +0 -20
- package/dist/is-non-nullish-O32x0PJp.d.ts.map +0 -1
- package/dist/is-not-5po8Jiji.js +0 -2
- package/dist/is-not-5po8Jiji.js.map +0 -1
- package/dist/is-not-B79O9f2H.d.cts +0 -19
- package/dist/is-not-B79O9f2H.d.cts.map +0 -1
- package/dist/is-not-CKGCp6DY.cjs +0 -1
- package/dist/is-not-z407hGYJ.d.ts +0 -19
- package/dist/is-not-z407hGYJ.d.ts.map +0 -1
- package/dist/is-nullish-BteQyA9v.d.cts +0 -23
- package/dist/is-nullish-BteQyA9v.d.cts.map +0 -1
- package/dist/is-nullish-DKHeGyyL.d.ts +0 -23
- package/dist/is-nullish-DKHeGyyL.d.ts.map +0 -1
- package/dist/is-nullish-DsOHhzVN.cjs +0 -1
- package/dist/is-nullish-eD1lRML3.js +0 -2
- package/dist/is-nullish-eD1lRML3.js.map +0 -1
- package/dist/is-number-BcIAUIAp.cjs +0 -1
- package/dist/is-number-D5aNK4nm.js +0 -2
- package/dist/is-number-D5aNK4nm.js.map +0 -1
- package/dist/is-number-DaMxsCJY.d.cts +0 -22
- package/dist/is-number-DaMxsCJY.d.cts.map +0 -1
- package/dist/is-number-DzdwnoDa.d.ts +0 -22
- package/dist/is-number-DzdwnoDa.d.ts.map +0 -1
- package/dist/is-object-type-Br10rDJO.js +0 -2
- package/dist/is-object-type-Br10rDJO.js.map +0 -1
- package/dist/is-object-type-CwFmkcim.cjs +0 -1
- package/dist/is-object-type-CyHq8ZXF.d.ts +0 -35
- package/dist/is-object-type-CyHq8ZXF.d.ts.map +0 -1
- package/dist/is-object-type-DVooIUX6.d.cts +0 -35
- package/dist/is-object-type-DVooIUX6.d.cts.map +0 -1
- package/dist/is-plain-object-CDsM3KdY.d.ts +0 -33
- package/dist/is-plain-object-CDsM3KdY.d.ts.map +0 -1
- package/dist/is-plain-object-D0HZzwPq.cjs +0 -1
- package/dist/is-plain-object-DOXTHODS.js +0 -2
- package/dist/is-plain-object-DOXTHODS.js.map +0 -1
- package/dist/is-plain-object-DecAYLun.d.cts +0 -33
- package/dist/is-plain-object-DecAYLun.d.cts.map +0 -1
- package/dist/is-promise-BpAIAlCO.d.ts +0 -18
- package/dist/is-promise-BpAIAlCO.d.ts.map +0 -1
- package/dist/is-promise-DKPEFNFZ.js +0 -2
- package/dist/is-promise-DKPEFNFZ.js.map +0 -1
- package/dist/is-promise-DRSq5wEE.cjs +0 -1
- package/dist/is-promise-saPDFGFp.d.cts +0 -18
- package/dist/is-promise-saPDFGFp.d.cts.map +0 -1
- package/dist/is-shallow-equal-B3YqLsBe.d.cts +0 -71
- package/dist/is-shallow-equal-B3YqLsBe.d.cts.map +0 -1
- package/dist/is-shallow-equal-DNhuWvj5.cjs +0 -1
- package/dist/is-shallow-equal-Dayqg3hM.d.ts +0 -71
- package/dist/is-shallow-equal-Dayqg3hM.d.ts.map +0 -1
- package/dist/is-shallow-equal-jy-Wc8By.js +0 -2
- package/dist/is-shallow-equal-jy-Wc8By.js.map +0 -1
- package/dist/is-strict-equal-BQ047FFm.cjs +0 -1
- package/dist/is-strict-equal-BQM-tE1X.js +0 -2
- package/dist/is-strict-equal-BQM-tE1X.js.map +0 -1
- package/dist/is-strict-equal-C6jYmsHn.d.cts +0 -67
- package/dist/is-strict-equal-C6jYmsHn.d.cts.map +0 -1
- package/dist/is-strict-equal-DvclxPsa.d.ts +0 -67
- package/dist/is-strict-equal-DvclxPsa.d.ts.map +0 -1
- package/dist/is-string-B83nHaQh.js +0 -2
- package/dist/is-string-B83nHaQh.js.map +0 -1
- package/dist/is-string-BK2vkP8W.d.cts +0 -20
- package/dist/is-string-BK2vkP8W.d.cts.map +0 -1
- package/dist/is-string-D1w9IRAG.cjs +0 -1
- package/dist/is-string-D5z2VqeQ.d.ts +0 -20
- package/dist/is-string-D5z2VqeQ.d.ts.map +0 -1
- package/dist/is-symbol-B1Yc8iCa.d.ts +0 -20
- package/dist/is-symbol-B1Yc8iCa.d.ts.map +0 -1
- package/dist/is-symbol-DSaXqtX_.js +0 -2
- package/dist/is-symbol-DSaXqtX_.js.map +0 -1
- package/dist/is-symbol-Dx93-2c5.cjs +0 -1
- package/dist/is-symbol-H_7hDq7Q.d.cts +0 -20
- package/dist/is-symbol-H_7hDq7Q.d.cts.map +0 -1
- package/dist/is-truthy-BFdRDfry.cjs +0 -1
- package/dist/is-truthy-C1WJ8zAI.d.ts +0 -21
- package/dist/is-truthy-C1WJ8zAI.d.ts.map +0 -1
- package/dist/is-truthy-D1g6XOIx.d.cts +0 -21
- package/dist/is-truthy-D1g6XOIx.d.cts.map +0 -1
- package/dist/is-truthy-DdEaJPQQ.js +0 -2
- package/dist/is-truthy-DdEaJPQQ.js.map +0 -1
- package/dist/is-union-BEGCMhOi.d.cts +0 -8
- package/dist/is-union-BEGCMhOi.d.cts.map +0 -1
- package/dist/is-union-J33UR5By.d.ts +0 -8
- package/dist/is-union-J33UR5By.d.ts.map +0 -1
- package/dist/iterable-container-F9CDF7ym.d.ts +0 -17
- package/dist/iterable-container-F9CDF7ym.d.ts.map +0 -1
- package/dist/iterable-container-V5sa0V_H.d.cts +0 -17
- package/dist/iterable-container-V5sa0V_H.d.cts.map +0 -1
- package/dist/join--7n-DVDj.cjs +0 -1
- package/dist/join-4yKLlh5c.d.ts +0 -46
- package/dist/join-4yKLlh5c.d.ts.map +0 -1
- package/dist/join-CZYvKMw4.js +0 -2
- package/dist/join-CZYvKMw4.js.map +0 -1
- package/dist/join-CbbVPKt_.d.cts +0 -46
- package/dist/join-CbbVPKt_.d.cts.map +0 -1
- package/dist/key-codes-ByQBd50u.cjs +0 -1
- package/dist/key-codes-CJWglLzd.d.ts +0 -29
- package/dist/key-codes-CJWglLzd.d.ts.map +0 -1
- package/dist/key-codes-CW_h1fS2.js +0 -2
- package/dist/key-codes-CW_h1fS2.js.map +0 -1
- package/dist/key-codes-fdCwcoqz.d.cts +0 -29
- package/dist/key-codes-fdCwcoqz.d.cts.map +0 -1
- package/dist/keys-APJaOoMR.d.cts +0 -38
- package/dist/keys-APJaOoMR.d.cts.map +0 -1
- package/dist/keys-Bc49dTec.cjs +0 -1
- package/dist/keys-CBnpHqzM.js +0 -2
- package/dist/keys-CBnpHqzM.js.map +0 -1
- package/dist/keys-x6dKCfFA.d.ts +0 -38
- package/dist/keys-x6dKCfFA.d.ts.map +0 -1
- package/dist/last-Bx1XNJrF.cjs +0 -1
- package/dist/last-CBuqaTHO.d.cts +0 -37
- package/dist/last-CBuqaTHO.d.cts.map +0 -1
- package/dist/last-ZdVVx6Tu.js +0 -2
- package/dist/last-ZdVVx6Tu.js.map +0 -1
- package/dist/last-tkqFh097.d.ts +0 -37
- package/dist/last-tkqFh097.d.ts.map +0 -1
- package/dist/lazy-data-last-impl-3PAFkslW.cjs +0 -1
- package/dist/lazy-data-last-impl-7QfM1xXg.js +0 -2
- package/dist/lazy-data-last-impl-7QfM1xXg.js.map +0 -1
- package/dist/length-Cf8v7Hwo.d.ts +0 -28
- package/dist/length-Cf8v7Hwo.d.ts.map +0 -1
- package/dist/length-Cw7iRuYX.d.cts +0 -28
- package/dist/length-Cw7iRuYX.d.cts.map +0 -1
- package/dist/length-DiqattjR.js +0 -2
- package/dist/length-DiqattjR.js.map +0 -1
- package/dist/length-rb507eQr.cjs +0 -1
- package/dist/magic-string.es-BHciF6Gu.cjs +0 -15
- package/dist/magic-string.es-XyuAJnkF.js +0 -15
- package/dist/magic-string.es-XyuAJnkF.js.map +0 -1
- package/dist/map-BTCo1Rpc.js +0 -2
- package/dist/map-BTCo1Rpc.js.map +0 -1
- package/dist/map-Cmj9L5gx.cjs +0 -1
- package/dist/map-Dpve3OoX.d.cts +0 -47
- package/dist/map-Dpve3OoX.d.cts.map +0 -1
- package/dist/map-f3pOunUI.d.ts +0 -47
- package/dist/map-f3pOunUI.d.ts.map +0 -1
- package/dist/map-keys-B7baqkbT.cjs +0 -1
- package/dist/map-keys-Chytp_UR.d.ts +0 -34
- package/dist/map-keys-Chytp_UR.d.ts.map +0 -1
- package/dist/map-keys-DPQg2CMM.js +0 -2
- package/dist/map-keys-DPQg2CMM.js.map +0 -1
- package/dist/map-keys-DZ0wIN0l.d.cts +0 -34
- package/dist/map-keys-DZ0wIN0l.d.cts.map +0 -1
- package/dist/map-to-obj-CfeVuha3.cjs +0 -1
- package/dist/map-to-obj-D1BIHf9X.d.cts +0 -68
- package/dist/map-to-obj-D1BIHf9X.d.cts.map +0 -1
- package/dist/map-to-obj-IjZ2yHXn.js +0 -2
- package/dist/map-to-obj-IjZ2yHXn.js.map +0 -1
- package/dist/map-to-obj-Yv4TEpVO.d.ts +0 -68
- package/dist/map-to-obj-Yv4TEpVO.d.ts.map +0 -1
- package/dist/map-values-DDG0CbSW.cjs +0 -1
- package/dist/map-values-DapykDGD.d.cts +0 -42
- package/dist/map-values-DapykDGD.d.cts.map +0 -1
- package/dist/map-values-DkVteTt6.d.ts +0 -42
- package/dist/map-values-DkVteTt6.d.ts.map +0 -1
- package/dist/map-values-nrF_e_JQ.js +0 -2
- package/dist/map-values-nrF_e_JQ.js.map +0 -1
- package/dist/map-with-feedback-BLbVHk60.d.cts +0 -54
- package/dist/map-with-feedback-BLbVHk60.d.cts.map +0 -1
- package/dist/map-with-feedback-BVCETjRx.d.ts +0 -54
- package/dist/map-with-feedback-BVCETjRx.d.ts.map +0 -1
- package/dist/map-with-feedback-Bj_06j0Q.js +0 -2
- package/dist/map-with-feedback-Bj_06j0Q.js.map +0 -1
- package/dist/map-with-feedback-i5amOlPH.cjs +0 -1
- package/dist/mapped-D_2uTivv.d.cts +0 -7
- package/dist/mapped-D_2uTivv.d.cts.map +0 -1
- package/dist/mapped-PAfazoND.d.ts +0 -7
- package/dist/mapped-PAfazoND.d.ts.map +0 -1
- package/dist/mean-by-BnIWNvSM.d.cts +0 -35
- package/dist/mean-by-BnIWNvSM.d.cts.map +0 -1
- package/dist/mean-by-DMCyv3tB.d.ts +0 -35
- package/dist/mean-by-DMCyv3tB.d.ts.map +0 -1
- package/dist/mean-by-XExXfgtG.js +0 -2
- package/dist/mean-by-XExXfgtG.js.map +0 -1
- package/dist/mean-by-tq1hvU1o.cjs +0 -1
- package/dist/merge-C7r_ADfR.d.cts +0 -57
- package/dist/merge-C7r_ADfR.d.cts.map +0 -1
- package/dist/merge-CbaUe6Ce.js +0 -2
- package/dist/merge-CbaUe6Ce.js.map +0 -1
- package/dist/merge-D1COnjDQ.d.ts +0 -57
- package/dist/merge-D1COnjDQ.d.ts.map +0 -1
- package/dist/merge-InCPrnnC.cjs +0 -1
- package/dist/merge-all-B8XyKhEY.cjs +0 -1
- package/dist/merge-all-CxK7_hBZ.d.ts +0 -42
- package/dist/merge-all-CxK7_hBZ.d.ts.map +0 -1
- package/dist/merge-all-DtHtd1Pc.d.cts +0 -42
- package/dist/merge-all-DtHtd1Pc.d.cts.map +0 -1
- package/dist/merge-all-TsJlQ-YU.js +0 -2
- package/dist/merge-all-TsJlQ-YU.js.map +0 -1
- package/dist/merge-deep-CB4Q8rQS.js +0 -2
- package/dist/merge-deep-CB4Q8rQS.js.map +0 -1
- package/dist/merge-deep-DAnh57IN.d.ts +0 -37
- package/dist/merge-deep-DAnh57IN.d.ts.map +0 -1
- package/dist/merge-deep-_Ie14BHM.cjs +0 -1
- package/dist/merge-deep-kkzayvS3.d.cts +0 -37
- package/dist/merge-deep-kkzayvS3.d.cts.map +0 -1
- package/dist/multiply-1PF_OS8E.js +0 -2
- package/dist/multiply-1PF_OS8E.js.map +0 -1
- package/dist/multiply-BT0u3zsh.cjs +0 -1
- package/dist/multiply-Bo8j2rQi.d.cts +0 -33
- package/dist/multiply-Bo8j2rQi.d.cts.map +0 -1
- package/dist/multiply-CBpoZQpr.d.ts +0 -33
- package/dist/multiply-CBpoZQpr.d.ts.map +0 -1
- package/dist/n-tuple-CU6777y4.d.ts +0 -12
- package/dist/n-tuple-CU6777y4.d.ts.map +0 -1
- package/dist/n-tuple-Co_jgwEn.d.cts +0 -12
- package/dist/n-tuple-Co_jgwEn.d.cts.map +0 -1
- package/dist/narrowed-to-BLLrlAhb.d.ts +0 -15
- package/dist/narrowed-to-BLLrlAhb.d.ts.map +0 -1
- package/dist/narrowed-to-BTrqm7Xt.d.cts +0 -15
- package/dist/narrowed-to-BTrqm7Xt.d.cts.map +0 -1
- package/dist/no-infer-CFhWzPzc.d.cts +0 -5
- package/dist/no-infer-CFhWzPzc.d.cts.map +0 -1
- package/dist/no-infer-DmkBZblw.d.ts +0 -5
- package/dist/no-infer-DmkBZblw.d.ts.map +0 -1
- package/dist/non-empty-array-BfTfvDYg.d.ts +0 -5
- package/dist/non-empty-array-BfTfvDYg.d.ts.map +0 -1
- package/dist/non-empty-array-D3ZRHApS.d.cts +0 -5
- package/dist/non-empty-array-D3ZRHApS.d.cts.map +0 -1
- package/dist/nth-by-BZiAVAjT.cjs +0 -1
- package/dist/nth-by-CK-aOfcg.d.cts +0 -42
- package/dist/nth-by-CK-aOfcg.d.cts.map +0 -1
- package/dist/nth-by-CebpSYpY.d.ts +0 -42
- package/dist/nth-by-CebpSYpY.d.ts.map +0 -1
- package/dist/nth-by-Ol9Thsua.js +0 -2
- package/dist/nth-by-Ol9Thsua.js.map +0 -1
- package/dist/obj-of-BHle5r-f.js +0 -2
- package/dist/obj-of-BHle5r-f.js.map +0 -1
- package/dist/obj-of-CWMITxro.d.cts +0 -27
- package/dist/obj-of-CWMITxro.d.cts.map +0 -1
- package/dist/obj-of-D8oOjocO.d.ts +0 -27
- package/dist/obj-of-D8oOjocO.d.ts.map +0 -1
- package/dist/obj-of-UU0PjTXp.cjs +0 -1
- package/dist/omit-CbVbZe6B.js +0 -2
- package/dist/omit-CbVbZe6B.js.map +0 -1
- package/dist/omit-DJ4Q7wfp.d.cts +0 -29
- package/dist/omit-DJ4Q7wfp.d.cts.map +0 -1
- package/dist/omit-DY21j6I-.d.ts +0 -29
- package/dist/omit-DY21j6I-.d.ts.map +0 -1
- package/dist/omit-Ljg-nRSD.cjs +0 -1
- package/dist/omit-by-DO-qeqAW.cjs +0 -1
- package/dist/omit-by-DTipg3uJ.d.ts +0 -52
- package/dist/omit-by-DTipg3uJ.d.ts.map +0 -1
- package/dist/omit-by-DXSSUFwz.d.cts +0 -52
- package/dist/omit-by-DXSSUFwz.d.cts.map +0 -1
- package/dist/omit-by-QzqJAuk3.js +0 -2
- package/dist/omit-by-QzqJAuk3.js.map +0 -1
- package/dist/once-BbDFCS7l.js +0 -2
- package/dist/once-BbDFCS7l.js.map +0 -1
- package/dist/once-BrpjaAJS.cjs +0 -1
- package/dist/once-Cr_DJNbf.d.cts +0 -17
- package/dist/once-Cr_DJNbf.d.cts.map +0 -1
- package/dist/once-YBm4xrPC.d.ts +0 -17
- package/dist/once-YBm4xrPC.d.ts.map +0 -1
- package/dist/only-D2B9O0Kn.d.ts +0 -34
- package/dist/only-D2B9O0Kn.d.ts.map +0 -1
- package/dist/only-DltQiNme.cjs +0 -1
- package/dist/only-aG2aEsjs.js +0 -2
- package/dist/only-aG2aEsjs.js.map +0 -1
- package/dist/only-oROrZ51q.d.cts +0 -34
- package/dist/only-oROrZ51q.d.cts.map +0 -1
- package/dist/partial-array-CzOnr197.d.cts +0 -12
- package/dist/partial-array-CzOnr197.d.cts.map +0 -1
- package/dist/partial-array-DSctnYXY.d.ts +0 -12
- package/dist/partial-array-DSctnYXY.d.ts.map +0 -1
- package/dist/partition-CIBacxWc.d.ts +0 -51
- package/dist/partition-CIBacxWc.d.ts.map +0 -1
- package/dist/partition-CP0fPbGt.cjs +0 -1
- package/dist/partition-LBHIQgBS.d.cts +0 -51
- package/dist/partition-LBHIQgBS.d.cts.map +0 -1
- package/dist/partition-e274M9T9.js +0 -2
- package/dist/partition-e274M9T9.js.map +0 -1
- package/dist/path-or-D-RyTkoO.cjs +0 -1
- package/dist/path-or-D2Gn-2iU.js +0 -2
- package/dist/path-or-D2Gn-2iU.js.map +0 -1
- package/dist/path-or-DvWnAQUG.d.cts +0 -87
- package/dist/path-or-DvWnAQUG.d.cts.map +0 -1
- package/dist/path-or-ld_fRiaZ.d.ts +0 -87
- package/dist/path-or-ld_fRiaZ.d.ts.map +0 -1
- package/dist/perkakas-type-error-0tHtaPbi.d.cts +0 -19
- package/dist/perkakas-type-error-0tHtaPbi.d.cts.map +0 -1
- package/dist/perkakas-type-error-2yBU0Drj.d.ts +0 -19
- package/dist/perkakas-type-error-2yBU0Drj.d.ts.map +0 -1
- package/dist/pick-ChVH4t7j.d.cts +0 -66
- package/dist/pick-ChVH4t7j.d.cts.map +0 -1
- package/dist/pick-DH_wjXvd.cjs +0 -1
- package/dist/pick-DeXJU-DB.js +0 -2
- package/dist/pick-DeXJU-DB.js.map +0 -1
- package/dist/pick-DvCrGRHa.d.ts +0 -66
- package/dist/pick-DvCrGRHa.d.ts.map +0 -1
- package/dist/pick-by-BuU3hu7X.d.ts +0 -68
- package/dist/pick-by-BuU3hu7X.d.ts.map +0 -1
- package/dist/pick-by-CKRuN-_s.cjs +0 -1
- package/dist/pick-by-CM_x6iCC.js +0 -2
- package/dist/pick-by-CM_x6iCC.js.map +0 -1
- package/dist/pick-by-WPJjBk-W.d.cts +0 -68
- package/dist/pick-by-WPJjBk-W.d.cts.map +0 -1
- package/dist/pipe-BbenIdBH.d.cts +0 -34
- package/dist/pipe-BbenIdBH.d.cts.map +0 -1
- package/dist/pipe-CtsfTnqv.js +0 -2
- package/dist/pipe-CtsfTnqv.js.map +0 -1
- package/dist/pipe-D_b9Li8m.d.ts +0 -34
- package/dist/pipe-D_b9Li8m.d.ts.map +0 -1
- package/dist/pipe-DlFjc4Wf.cjs +0 -1
- package/dist/piped-C3tPJts-.d.cts +0 -31
- package/dist/piped-C3tPJts-.d.cts.map +0 -1
- package/dist/piped-CbukZpTA.js +0 -2
- package/dist/piped-CbukZpTA.js.map +0 -1
- package/dist/piped-DRdfIujb.d.ts +0 -31
- package/dist/piped-DRdfIujb.d.ts.map +0 -1
- package/dist/piped-xRnbs0j5.cjs +0 -1
- package/dist/product-6SFVh3Ue.js +0 -2
- package/dist/product-6SFVh3Ue.js.map +0 -1
- package/dist/product-DeZAtdWP.d.ts +0 -52
- package/dist/product-DeZAtdWP.d.ts.map +0 -1
- package/dist/product-FQWHadxM.d.cts +0 -52
- package/dist/product-FQWHadxM.d.cts.map +0 -1
- package/dist/product-RjN37mez.cjs +0 -1
- package/dist/prop-BicXDh5Z.cjs +0 -1
- package/dist/prop-CVQFcKcc.js +0 -2
- package/dist/prop-CVQFcKcc.js.map +0 -1
- package/dist/prop-aaMksFMG.d.cts +0 -86
- package/dist/prop-aaMksFMG.d.cts.map +0 -1
- package/dist/prop-i2Omh4sY.d.ts +0 -86
- package/dist/prop-i2Omh4sY.d.ts.map +0 -1
- package/dist/pull-object-Cv7mJb_D.js +0 -2
- package/dist/pull-object-Cv7mJb_D.js.map +0 -1
- package/dist/pull-object-DMKC8D-3.d.ts +0 -70
- package/dist/pull-object-DMKC8D-3.d.ts.map +0 -1
- package/dist/pull-object-DQm_yoEt.cjs +0 -1
- package/dist/pull-object-wIntRbAJ.d.cts +0 -70
- package/dist/pull-object-wIntRbAJ.d.cts.map +0 -1
- package/dist/random-integer-B4c6QM_c.d.cts +0 -23
- package/dist/random-integer-B4c6QM_c.d.cts.map +0 -1
- package/dist/random-integer-BXqTHUFz.js +0 -2
- package/dist/random-integer-BXqTHUFz.js.map +0 -1
- package/dist/random-integer-B_hsewtO.d.ts +0 -23
- package/dist/random-integer-B_hsewtO.d.ts.map +0 -1
- package/dist/random-integer-DsXZVStb.cjs +0 -1
- package/dist/random-string-BFN3qW9t.cjs +0 -1
- package/dist/random-string-BNn5RWaf.d.cts +0 -29
- package/dist/random-string-BNn5RWaf.d.cts.map +0 -1
- package/dist/random-string-DPGmbg8C.js +0 -2
- package/dist/random-string-DPGmbg8C.js.map +0 -1
- package/dist/random-string-_YPVxJwf.d.ts +0 -29
- package/dist/random-string-_YPVxJwf.d.ts.map +0 -1
- package/dist/range-CqCDf4gs.js +0 -2
- package/dist/range-CqCDf4gs.js.map +0 -1
- package/dist/range-D3Rravct.d.ts +0 -27
- package/dist/range-D3Rravct.d.ts.map +0 -1
- package/dist/range-DPikJdPT.cjs +0 -1
- package/dist/range-IHSbe6ns.d.cts +0 -27
- package/dist/range-IHSbe6ns.d.cts.map +0 -1
- package/dist/rank-by-BAvkwO1T.d.ts +0 -45
- package/dist/rank-by-BAvkwO1T.d.ts.map +0 -1
- package/dist/rank-by-B_tfHDQl.cjs +0 -1
- package/dist/rank-by-BbvZnY3X.d.cts +0 -45
- package/dist/rank-by-BbvZnY3X.d.cts.map +0 -1
- package/dist/rank-by-C1qfJCHd.js +0 -2
- package/dist/rank-by-C1qfJCHd.js.map +0 -1
- package/dist/reduce-CrxiKHBX.cjs +0 -1
- package/dist/reduce-DeOCr-Lz.d.ts +0 -53
- package/dist/reduce-DeOCr-Lz.d.ts.map +0 -1
- package/dist/reduce-DsDQdDwu.js +0 -2
- package/dist/reduce-DsDQdDwu.js.map +0 -1
- package/dist/reduce-jhUIIUcp.d.cts +0 -53
- package/dist/reduce-jhUIIUcp.d.cts.map +0 -1
- package/dist/reordered-array-BJFUtOkp.d.ts +0 -7
- package/dist/reordered-array-BJFUtOkp.d.ts.map +0 -1
- package/dist/reordered-array-ikr9o4WE.d.cts +0 -7
- package/dist/reordered-array-ikr9o4WE.d.cts.map +0 -1
- package/dist/reverse-BC8XHQfI.cjs +0 -1
- package/dist/reverse-BYHaMWmD.d.ts +0 -29
- package/dist/reverse-BYHaMWmD.d.ts.map +0 -1
- package/dist/reverse-Qt4C74U1.js +0 -2
- package/dist/reverse-Qt4C74U1.js.map +0 -1
- package/dist/reverse-ntEUPfSi.d.cts +0 -29
- package/dist/reverse-ntEUPfSi.d.cts.map +0 -1
- package/dist/round-BiiwjQ6h.d.cts +0 -39
- package/dist/round-BiiwjQ6h.d.cts.map +0 -1
- package/dist/round-CXiXOypy.d.ts +0 -39
- package/dist/round-CXiXOypy.d.ts.map +0 -1
- package/dist/round-D2BDbobr.js +0 -2
- package/dist/round-D2BDbobr.js.map +0 -1
- package/dist/round-h0B_SE5h.cjs +0 -1
- package/dist/sample-BbYf0CTH.d.cts +0 -69
- package/dist/sample-BbYf0CTH.d.cts.map +0 -1
- package/dist/sample-Bxl7znd8.js +0 -2
- package/dist/sample-Bxl7znd8.js.map +0 -1
- package/dist/sample-CaYEaqQj.d.ts +0 -69
- package/dist/sample-CaYEaqQj.d.ts.map +0 -1
- package/dist/sample-SB8BUKF1.cjs +0 -1
- package/dist/set-BFeeSSaN.d.ts +0 -40
- package/dist/set-BFeeSSaN.d.ts.map +0 -1
- package/dist/set-CStLHN6U.cjs +0 -1
- package/dist/set-Pvxm6bqo.d.cts +0 -40
- package/dist/set-Pvxm6bqo.d.cts.map +0 -1
- package/dist/set-o55m5TqJ.js +0 -2
- package/dist/set-o55m5TqJ.js.map +0 -1
- package/dist/set-path-9jpMmvFF.d.ts +0 -47
- package/dist/set-path-9jpMmvFF.d.ts.map +0 -1
- package/dist/set-path-BTr40N0b.js +0 -2
- package/dist/set-path-BTr40N0b.js.map +0 -1
- package/dist/set-path-CGt8p1TJ.d.cts +0 -47
- package/dist/set-path-CGt8p1TJ.d.cts.map +0 -1
- package/dist/set-path-D31WORus.cjs +0 -1
- package/dist/shuffle-8A3aANRh.d.ts +0 -31
- package/dist/shuffle-8A3aANRh.d.ts.map +0 -1
- package/dist/shuffle-BCbs5P_6.cjs +0 -1
- package/dist/shuffle-Ch-T2UYk.d.cts +0 -31
- package/dist/shuffle-Ch-T2UYk.d.cts.map +0 -1
- package/dist/shuffle-CmC8Wx4C.js +0 -2
- package/dist/shuffle-CmC8Wx4C.js.map +0 -1
- package/dist/sleep-1rGV3wAg.cjs +0 -1
- package/dist/sleep-BgAxArXl.d.cts +0 -16
- package/dist/sleep-BgAxArXl.d.cts.map +0 -1
- package/dist/sleep-DvzRMgY-.js +0 -2
- package/dist/sleep-DvzRMgY-.js.map +0 -1
- package/dist/sleep-y-yAF7nh.d.ts +0 -16
- package/dist/sleep-y-yAF7nh.d.ts.map +0 -1
- package/dist/slice-string-C_sr11Yl.js +0 -2
- package/dist/slice-string-C_sr11Yl.js.map +0 -1
- package/dist/slice-string-DDjoN-CB.d.cts +0 -41
- package/dist/slice-string-DDjoN-CB.d.cts.map +0 -1
- package/dist/slice-string-T3sXkO_K.cjs +0 -1
- package/dist/slice-string-e2668-0a.d.ts +0 -41
- package/dist/slice-string-e2668-0a.d.ts.map +0 -1
- package/dist/slugify-02-IFAOz.cjs +0 -1
- package/dist/slugify-BdGkKaj7.d.ts +0 -15
- package/dist/slugify-BdGkKaj7.d.ts.map +0 -1
- package/dist/slugify-CEC6lPso.js +0 -2
- package/dist/slugify-CEC6lPso.js.map +0 -1
- package/dist/slugify-DVioAYr7.d.cts +0 -15
- package/dist/slugify-DVioAYr7.d.cts.map +0 -1
- package/dist/sort-BZjbaFeJ.d.cts +0 -39
- package/dist/sort-BZjbaFeJ.d.cts.map +0 -1
- package/dist/sort-BgfyDhxW.cjs +0 -1
- package/dist/sort-BpxPLnEH.d.ts +0 -39
- package/dist/sort-BpxPLnEH.d.ts.map +0 -1
- package/dist/sort-D6nlyfod.js +0 -2
- package/dist/sort-D6nlyfod.js.map +0 -1
- package/dist/sort-by-8to821Mp.js +0 -2
- package/dist/sort-by-8to821Mp.js.map +0 -1
- package/dist/sort-by-CH6n9bWf.d.ts +0 -88
- package/dist/sort-by-CH6n9bWf.d.ts.map +0 -1
- package/dist/sort-by-CtJoPjKN.cjs +0 -1
- package/dist/sort-by-DoBfFSu4.d.cts +0 -88
- package/dist/sort-by-DoBfFSu4.d.cts.map +0 -1
- package/dist/sorted-index-C7n8fUow.d.ts +0 -45
- package/dist/sorted-index-C7n8fUow.d.ts.map +0 -1
- package/dist/sorted-index-Cb-4kSWR.js +0 -2
- package/dist/sorted-index-Cb-4kSWR.js.map +0 -1
- package/dist/sorted-index-WmPsJZWy.d.cts +0 -45
- package/dist/sorted-index-WmPsJZWy.d.cts.map +0 -1
- package/dist/sorted-index-by-BGDi-4BL.cjs +0 -1
- package/dist/sorted-index-by-C-5Yb-j2.js +0 -2
- package/dist/sorted-index-by-C-5Yb-j2.js.map +0 -1
- package/dist/sorted-index-by-D9WveGrc.d.cts +0 -70
- package/dist/sorted-index-by-D9WveGrc.d.cts.map +0 -1
- package/dist/sorted-index-by-wSsKYW7Z.d.ts +0 -70
- package/dist/sorted-index-by-wSsKYW7Z.d.ts.map +0 -1
- package/dist/sorted-index-r_y0xd5n.cjs +0 -1
- package/dist/sorted-index-with-BAbLX5vT.js +0 -2
- package/dist/sorted-index-with-BAbLX5vT.js.map +0 -1
- package/dist/sorted-index-with-BDoZKE2t.cjs +0 -1
- package/dist/sorted-index-with-CKynJFKP.d.cts +0 -72
- package/dist/sorted-index-with-CKynJFKP.d.cts.map +0 -1
- package/dist/sorted-index-with-rq5dPCX_.d.ts +0 -72
- package/dist/sorted-index-with-rq5dPCX_.d.ts.map +0 -1
- package/dist/sorted-last-index-BXVeuqVW.d.cts +0 -45
- package/dist/sorted-last-index-BXVeuqVW.d.cts.map +0 -1
- package/dist/sorted-last-index-CwZ0vU7v.cjs +0 -1
- package/dist/sorted-last-index-DKDuZV51.d.ts +0 -45
- package/dist/sorted-last-index-DKDuZV51.d.ts.map +0 -1
- package/dist/sorted-last-index-by-Bwy_FXV3.cjs +0 -1
- package/dist/sorted-last-index-by-CypmQpWR.d.cts +0 -72
- package/dist/sorted-last-index-by-CypmQpWR.d.cts.map +0 -1
- package/dist/sorted-last-index-by-D6I-_BRT.js +0 -2
- package/dist/sorted-last-index-by-D6I-_BRT.js.map +0 -1
- package/dist/sorted-last-index-by-tKmeBThm.d.ts +0 -72
- package/dist/sorted-last-index-by-tKmeBThm.d.ts.map +0 -1
- package/dist/sorted-last-index-eCG7G76u.js +0 -2
- package/dist/sorted-last-index-eCG7G76u.js.map +0 -1
- package/dist/splice-BAV6QQGX.cjs +0 -1
- package/dist/splice-Bqzh0vwZ.d.ts +0 -35
- package/dist/splice-Bqzh0vwZ.d.ts.map +0 -1
- package/dist/splice-Rtj9OHe-.d.cts +0 -35
- package/dist/splice-Rtj9OHe-.d.cts.map +0 -1
- package/dist/splice-jmQkkqUQ.js +0 -2
- package/dist/splice-jmQkkqUQ.js.map +0 -1
- package/dist/split-4732uYSL.d.cts +0 -62
- package/dist/split-4732uYSL.d.cts.map +0 -1
- package/dist/split-BCgeOz9S.cjs +0 -1
- package/dist/split-D84V9L6V.d.ts +0 -62
- package/dist/split-D84V9L6V.d.ts.map +0 -1
- package/dist/split-at-G5niCG-J.js +0 -2
- package/dist/split-at-G5niCG-J.js.map +0 -1
- package/dist/split-at-HLOqEHH2.d.cts +0 -31
- package/dist/split-at-HLOqEHH2.d.cts.map +0 -1
- package/dist/split-at-Jc3Rqy7v.cjs +0 -1
- package/dist/split-at-u6HErcio.d.ts +0 -31
- package/dist/split-at-u6HErcio.d.ts.map +0 -1
- package/dist/split-i3LJTbq2.js +0 -2
- package/dist/split-i3LJTbq2.js.map +0 -1
- package/dist/split-when-CI6Rp9P6.d.ts +0 -29
- package/dist/split-when-CI6Rp9P6.d.ts.map +0 -1
- package/dist/split-when-CSgkl-FL.cjs +0 -1
- package/dist/split-when-D7haKyST.d.cts +0 -29
- package/dist/split-when-D7haKyST.d.cts.map +0 -1
- package/dist/split-when-b4N1TSSY.js +0 -2
- package/dist/split-when-b4N1TSSY.js.map +0 -1
- package/dist/string-to-path-BNoivDR4.d.ts +0 -39
- package/dist/string-to-path-BNoivDR4.d.ts.map +0 -1
- package/dist/string-to-path-CjAuFrpj.d.cts +0 -39
- package/dist/string-to-path-CjAuFrpj.d.cts.map +0 -1
- package/dist/string-to-path-DzBIAH5I.js +0 -2
- package/dist/string-to-path-DzBIAH5I.js.map +0 -1
- package/dist/string-to-path-wZDfvAnJ.cjs +0 -1
- package/dist/subtract-5cWDnOqs.d.ts +0 -35
- package/dist/subtract-5cWDnOqs.d.ts.map +0 -1
- package/dist/subtract-D1qLZDfq.js +0 -2
- package/dist/subtract-D1qLZDfq.js.map +0 -1
- package/dist/subtract-gGSDVCQa.d.cts +0 -35
- package/dist/subtract-gGSDVCQa.d.cts.map +0 -1
- package/dist/subtract-y93SO1gw.cjs +0 -1
- package/dist/sum-B69a1sb5.cjs +0 -1
- package/dist/sum-BHYsbVr5.js +0 -2
- package/dist/sum-BHYsbVr5.js.map +0 -1
- package/dist/sum-CEgbjhbj.d.ts +0 -50
- package/dist/sum-CEgbjhbj.d.ts.map +0 -1
- package/dist/sum-CyC38gTv.d.cts +0 -50
- package/dist/sum-CyC38gTv.d.cts.map +0 -1
- package/dist/sum-by-CTPKc8na.d.ts +0 -57
- package/dist/sum-by-CTPKc8na.d.ts.map +0 -1
- package/dist/sum-by-Cke8ybTY.cjs +0 -1
- package/dist/sum-by-DH-LAQQ3.d.cts +0 -57
- package/dist/sum-by-DH-LAQQ3.d.cts.map +0 -1
- package/dist/sum-by-DKfgHdcr.js +0 -2
- package/dist/sum-by-DKfgHdcr.js.map +0 -1
- package/dist/swap-in-place-BBqaxzzG.js +0 -2
- package/dist/swap-in-place-BBqaxzzG.js.map +0 -1
- package/dist/swap-in-place-CJrU2n1_.cjs +0 -1
- package/dist/swap-indices-CsuHWDbY.cjs +0 -1
- package/dist/swap-indices-DWG9tWCr.d.cts +0 -61
- package/dist/swap-indices-DWG9tWCr.d.cts.map +0 -1
- package/dist/swap-indices-DWsQg1W8.d.ts +0 -61
- package/dist/swap-indices-DWsQg1W8.d.ts.map +0 -1
- package/dist/swap-indices-inhV1_Nb.js +0 -2
- package/dist/swap-indices-inhV1_Nb.js.map +0 -1
- package/dist/swap-props-BRHZP2h5.d.cts +0 -34
- package/dist/swap-props-BRHZP2h5.d.cts.map +0 -1
- package/dist/swap-props-mp8Z9OU_.js +0 -2
- package/dist/swap-props-mp8Z9OU_.js.map +0 -1
- package/dist/swap-props-pgUf_Wxo.d.ts +0 -34
- package/dist/swap-props-pgUf_Wxo.d.ts.map +0 -1
- package/dist/swap-props-zfImAv9P.cjs +0 -1
- package/dist/take-BXMJXDQ_.cjs +0 -1
- package/dist/take-CT43kXAi.d.cts +0 -34
- package/dist/take-CT43kXAi.d.cts.map +0 -1
- package/dist/take-CpuzOFEZ.d.ts +0 -34
- package/dist/take-CpuzOFEZ.d.ts.map +0 -1
- package/dist/take-cbRFuvDN.js +0 -2
- package/dist/take-cbRFuvDN.js.map +0 -1
- package/dist/take-first-by-CBMKdWli.d.cts +0 -41
- package/dist/take-first-by-CBMKdWli.d.cts.map +0 -1
- package/dist/take-first-by-CHK8ZUbR.d.ts +0 -41
- package/dist/take-first-by-CHK8ZUbR.d.ts.map +0 -1
- package/dist/take-first-by-DkMHTJNU.js +0 -2
- package/dist/take-first-by-DkMHTJNU.js.map +0 -1
- package/dist/take-first-by-DpgN2xxt.cjs +0 -1
- package/dist/take-last-BHz1vsOl.d.cts +0 -32
- package/dist/take-last-BHz1vsOl.d.cts.map +0 -1
- package/dist/take-last-BySlnmMM.js +0 -2
- package/dist/take-last-BySlnmMM.js.map +0 -1
- package/dist/take-last-C8Ig0Lip.cjs +0 -1
- package/dist/take-last-F6ZCTILY.d.ts +0 -32
- package/dist/take-last-F6ZCTILY.d.ts.map +0 -1
- package/dist/take-last-while-BX9WWFOz.cjs +0 -1
- package/dist/take-last-while-CT3sSTp3.d.ts +0 -36
- package/dist/take-last-while-CT3sSTp3.d.ts.map +0 -1
- package/dist/take-last-while-Cegja0hc.d.cts +0 -36
- package/dist/take-last-while-Cegja0hc.d.cts.map +0 -1
- package/dist/take-last-while-t3GonJ5e.js +0 -2
- package/dist/take-last-while-t3GonJ5e.js.map +0 -1
- package/dist/take-while--cm-kJ_K.d.cts +0 -34
- package/dist/take-while--cm-kJ_K.d.cts.map +0 -1
- package/dist/take-while-CW0i9IV4.js +0 -2
- package/dist/take-while-CW0i9IV4.js.map +0 -1
- package/dist/take-while-Cr9jQRE3.d.ts +0 -34
- package/dist/take-while-Cr9jQRE3.d.ts.map +0 -1
- package/dist/take-while-ygIVi5-P.cjs +0 -1
- package/dist/tap--cZcReMV.d.cts +0 -42
- package/dist/tap--cZcReMV.d.cts.map +0 -1
- package/dist/tap-BPowGH7O.cjs +0 -1
- package/dist/tap-C0PU_aGY.js +0 -2
- package/dist/tap-C0PU_aGY.js.map +0 -1
- package/dist/tap-DB9pGeM0.d.ts +0 -42
- package/dist/tap-DB9pGeM0.d.ts.map +0 -1
- package/dist/times-BCzPBzWg.cjs +0 -1
- package/dist/times-DA4WYnau.js +0 -2
- package/dist/times-DA4WYnau.js.map +0 -1
- package/dist/times-DAGaGp7f.d.cts +0 -48
- package/dist/times-DAGaGp7f.d.cts.map +0 -1
- package/dist/times-Ng9jlovV.d.ts +0 -48
- package/dist/times-Ng9jlovV.d.ts.map +0 -1
- package/dist/to-camel-case-B1HuBfci.d.cts +0 -32
- package/dist/to-camel-case-B1HuBfci.d.cts.map +0 -1
- package/dist/to-camel-case-WO0dL27L.d.ts +0 -32
- package/dist/to-camel-case-WO0dL27L.d.ts.map +0 -1
- package/dist/to-camel-case-tT8RIKVL.js +0 -2
- package/dist/to-camel-case-tT8RIKVL.js.map +0 -1
- package/dist/to-camel-case-wmrPCKNp.cjs +0 -1
- package/dist/to-capital-case-BIjC2jMF.cjs +0 -1
- package/dist/to-capital-case-CYqHmNSL.d.ts +0 -31
- package/dist/to-capital-case-CYqHmNSL.d.ts.map +0 -1
- package/dist/to-capital-case-D1ln-ILr.js +0 -2
- package/dist/to-capital-case-D1ln-ILr.js.map +0 -1
- package/dist/to-capital-case-DngZyTk7.d.cts +0 -31
- package/dist/to-capital-case-DngZyTk7.d.cts.map +0 -1
- package/dist/to-capital-case.cjs +0 -1
- package/dist/to-capital-case.d.cts +0 -3
- package/dist/to-capital-case.d.ts +0 -3
- package/dist/to-capital-case.js +0 -1
- package/dist/to-constant-case-BVmc0wYZ.js +0 -2
- package/dist/to-constant-case-BVmc0wYZ.js.map +0 -1
- package/dist/to-constant-case-CH7D926n.d.ts +0 -31
- package/dist/to-constant-case-CH7D926n.d.ts.map +0 -1
- package/dist/to-constant-case-DaNGBqkE.d.cts +0 -31
- package/dist/to-constant-case-DaNGBqkE.d.cts.map +0 -1
- package/dist/to-constant-case-DfXuQ9Au.cjs +0 -1
- package/dist/to-constant-case.cjs +0 -1
- package/dist/to-constant-case.d.cts +0 -3
- package/dist/to-constant-case.d.ts +0 -3
- package/dist/to-constant-case.js +0 -1
- package/dist/to-kebab-case-B8wAcWY6.d.cts +0 -31
- package/dist/to-kebab-case-B8wAcWY6.d.cts.map +0 -1
- package/dist/to-kebab-case-Da16i23C.js +0 -2
- package/dist/to-kebab-case-Da16i23C.js.map +0 -1
- package/dist/to-kebab-case-DyJq9Sqj.cjs +0 -1
- package/dist/to-kebab-case-jT7kXDMG.d.ts +0 -31
- package/dist/to-kebab-case-jT7kXDMG.d.ts.map +0 -1
- package/dist/to-no-case-B4DuAjFF.d.ts +0 -31
- package/dist/to-no-case-B4DuAjFF.d.ts.map +0 -1
- package/dist/to-no-case-BsyVJqj5.d.cts +0 -31
- package/dist/to-no-case-BsyVJqj5.d.cts.map +0 -1
- package/dist/to-no-case-DZm6y_Cf.cjs +0 -1
- package/dist/to-no-case-DazuTIzG.js +0 -2
- package/dist/to-no-case-DazuTIzG.js.map +0 -1
- package/dist/to-no-case.cjs +0 -1
- package/dist/to-no-case.d.cts +0 -3
- package/dist/to-no-case.d.ts +0 -3
- package/dist/to-no-case.js +0 -1
- package/dist/to-pascal-case-Cjm8uy9M.js +0 -2
- package/dist/to-pascal-case-Cjm8uy9M.js.map +0 -1
- package/dist/to-pascal-case-Di24w1qQ.cjs +0 -1
- package/dist/to-pascal-case-TdeM4wWD.d.ts +0 -32
- package/dist/to-pascal-case-TdeM4wWD.d.ts.map +0 -1
- package/dist/to-pascal-case-hd10cE4M.d.cts +0 -32
- package/dist/to-pascal-case-hd10cE4M.d.cts.map +0 -1
- package/dist/to-pascal-case.cjs +0 -1
- package/dist/to-pascal-case.d.cts +0 -3
- package/dist/to-pascal-case.d.ts +0 -3
- package/dist/to-pascal-case.js +0 -1
- package/dist/to-pascal-snake-case-3JOABceO.cjs +0 -1
- package/dist/to-pascal-snake-case-C5Jjt7Er.d.ts +0 -31
- package/dist/to-pascal-snake-case-C5Jjt7Er.d.ts.map +0 -1
- package/dist/to-pascal-snake-case-DuZWwHNK.js +0 -2
- package/dist/to-pascal-snake-case-DuZWwHNK.js.map +0 -1
- package/dist/to-pascal-snake-case-bL7k-rIr.d.cts +0 -31
- package/dist/to-pascal-snake-case-bL7k-rIr.d.cts.map +0 -1
- package/dist/to-pascal-snake-case.cjs +0 -1
- package/dist/to-pascal-snake-case.d.cts +0 -3
- package/dist/to-pascal-snake-case.d.ts +0 -3
- package/dist/to-pascal-snake-case.js +0 -1
- package/dist/to-sentence-case-31yfUXQs.d.cts +0 -31
- package/dist/to-sentence-case-31yfUXQs.d.cts.map +0 -1
- package/dist/to-sentence-case-BzGleBYL.js +0 -2
- package/dist/to-sentence-case-BzGleBYL.js.map +0 -1
- package/dist/to-sentence-case-c7-rA8Uk.cjs +0 -1
- package/dist/to-sentence-case-vSCr9C4o.d.ts +0 -31
- package/dist/to-sentence-case-vSCr9C4o.d.ts.map +0 -1
- package/dist/to-sentence-case.cjs +0 -1
- package/dist/to-sentence-case.d.cts +0 -3
- package/dist/to-sentence-case.d.ts +0 -3
- package/dist/to-sentence-case.js +0 -1
- package/dist/to-single-Bnq9l8Zp.cjs +0 -1
- package/dist/to-single-bHVECPzX.js +0 -2
- package/dist/to-single-bHVECPzX.js.map +0 -1
- package/dist/to-snake-case-4jsaz20Q.d.ts +0 -31
- package/dist/to-snake-case-4jsaz20Q.d.ts.map +0 -1
- package/dist/to-snake-case-C1HTdh8M.d.cts +0 -31
- package/dist/to-snake-case-C1HTdh8M.d.cts.map +0 -1
- package/dist/to-snake-case-CYkfkVbX.js +0 -2
- package/dist/to-snake-case-CYkfkVbX.js.map +0 -1
- package/dist/to-snake-case-DlYZGTpp.cjs +0 -1
- package/dist/to-string-B9YWszXY.d.ts +0 -13
- package/dist/to-string-B9YWszXY.d.ts.map +0 -1
- package/dist/to-string-gK5yUyfp.d.cts +0 -13
- package/dist/to-string-gK5yUyfp.d.cts.map +0 -1
- package/dist/to-train-case-A7o8wL1K.js +0 -2
- package/dist/to-train-case-A7o8wL1K.js.map +0 -1
- package/dist/to-train-case-B850iOGZ.d.cts +0 -31
- package/dist/to-train-case-B850iOGZ.d.cts.map +0 -1
- package/dist/to-train-case-CE2vqVsH.cjs +0 -1
- package/dist/to-train-case-DMommV4G.d.ts +0 -31
- package/dist/to-train-case-DMommV4G.d.ts.map +0 -1
- package/dist/to-train-case.cjs +0 -1
- package/dist/to-train-case.d.cts +0 -3
- package/dist/to-train-case.d.ts +0 -3
- package/dist/to-train-case.js +0 -1
- package/dist/tuple-parts-BIyABPYv.d.cts +0 -89
- package/dist/tuple-parts-BIyABPYv.d.cts.map +0 -1
- package/dist/tuple-parts-Du2iVN8H.d.ts +0 -89
- package/dist/tuple-parts-Du2iVN8H.d.ts.map +0 -1
- package/dist/type.helpers-1V2lXyqJ.d.ts +0 -10
- package/dist/type.helpers-1V2lXyqJ.d.ts.map +0 -1
- package/dist/type.helpers-DRN0iRW5.cjs +0 -0
- package/dist/type.helpers-Dmf6ppyq.d.cts +0 -10
- package/dist/type.helpers-Dmf6ppyq.d.cts.map +0 -1
- package/dist/type.helpers-eVB6l9f9.js +0 -0
- package/dist/unique-BMVWEHgx.cjs +0 -1
- package/dist/unique-BiGTIN5e.js +0 -2
- package/dist/unique-BiGTIN5e.js.map +0 -1
- package/dist/unique-DQ6D857b.d.ts +0 -39
- package/dist/unique-DQ6D857b.d.ts.map +0 -1
- package/dist/unique-Dlp6H7Md.d.cts +0 -39
- package/dist/unique-Dlp6H7Md.d.cts.map +0 -1
- package/dist/unique-by-B06g2psm.d.ts +0 -44
- package/dist/unique-by-B06g2psm.d.ts.map +0 -1
- package/dist/unique-by-BPYs6c1v.d.cts +0 -44
- package/dist/unique-by-BPYs6c1v.d.cts.map +0 -1
- package/dist/unique-by-Dh4QjQ3_.js +0 -2
- package/dist/unique-by-Dh4QjQ3_.js.map +0 -1
- package/dist/unique-by-Ds6Uwfxl.cjs +0 -1
- package/dist/unique-with-CLhkmrmv.d.cts +0 -46
- package/dist/unique-with-CLhkmrmv.d.cts.map +0 -1
- package/dist/unique-with-DMT11QX0.cjs +0 -1
- package/dist/unique-with-hw-xxeGX.js +0 -2
- package/dist/unique-with-hw-xxeGX.js.map +0 -1
- package/dist/unique-with-nNna0tkx.d.ts +0 -46
- package/dist/unique-with-nNna0tkx.d.ts.map +0 -1
- package/dist/upsert-prop-Dtu5xY0L.d.cts +0 -9
- package/dist/upsert-prop-Dtu5xY0L.d.cts.map +0 -1
- package/dist/upsert-prop-s1QJNSeE.d.ts +0 -9
- package/dist/upsert-prop-s1QJNSeE.d.ts.map +0 -1
- package/dist/utility-evaluators-CnQVdcZv.js +0 -2
- package/dist/utility-evaluators-CnQVdcZv.js.map +0 -1
- package/dist/utility-evaluators-DqJcWENu.cjs +0 -1
- package/dist/values-CNsZ_qqm.js +0 -2
- package/dist/values-CNsZ_qqm.js.map +0 -1
- package/dist/values-Ysa_tL5c.d.cts +0 -38
- package/dist/values-Ysa_tL5c.d.cts.map +0 -1
- package/dist/values-cuYNPlL0.cjs +0 -1
- package/dist/values-q2WIUOzl.d.ts +0 -38
- package/dist/values-q2WIUOzl.d.ts.map +0 -1
- package/dist/with-precision-BgF-Y_mF.cjs +0 -1
- package/dist/with-precision-BoiuafbM.js +0 -2
- package/dist/with-precision-BoiuafbM.js.map +0 -1
- package/dist/zip-Bx1gp9g8.js +0 -2
- package/dist/zip-Bx1gp9g8.js.map +0 -1
- package/dist/zip-CItdS_iZ.d.ts +0 -38
- package/dist/zip-CItdS_iZ.d.ts.map +0 -1
- package/dist/zip-CSvsKjDN.d.cts +0 -38
- package/dist/zip-CSvsKjDN.d.cts.map +0 -1
- package/dist/zip-DoQHstmA.cjs +0 -1
- package/dist/zip-with-BEpLRmfK.d.ts +0 -50
- package/dist/zip-with-BEpLRmfK.d.ts.map +0 -1
- package/dist/zip-with-CYcCKziW.d.cts +0 -50
- package/dist/zip-with-CYcCKziW.d.cts.map +0 -1
- package/dist/zip-with-CxR_nx2Y.cjs +0 -1
- package/dist/zip-with-cxqqhe-S.js +0 -2
- package/dist/zip-with-cxqqhe-S.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{constant as e}from"./constant.js";import{a as t,i as n,n as r,r as i}from"./dist-Bd1vawFi.js";import{funnel as a}from"./funnel.js";import{identity as o}from"./identity.js";import{sleep as s}from"./sleep.js";function c(e,{timing:t,waitMs:n,maxWaitMs:r}){if(r!==void 0&&n!==void 0&&r<n)throw Error(`debounce: maxWaitMs (${r.toString()}) cannot be less than waitMs (${n.toString()})`);let i,o=a(t=>{i=e(...t)},{reducer:(e,...t)=>t,minQuietPeriodMs:n??r??0,...r!==void 0&&{maxBurstDurationMs:r},...t===`leading`?{triggerAt:`start`}:t===`both`?{triggerAt:`both`}:{triggerAt:`end`}});return{call:(...e)=>(o.call(...e),i),flush:()=>(o.flush(),i),cancel:()=>{o.cancel()},get isPending(){return!o.isIdle},get cachedValue(){return i}}}n(`main functionality`,()=>{t(`should debounce a function`,async()=>{let e=i.fn(o()),t=c(e,{waitMs:32});r([t.call(`a`),t.call(`b`),t.call(`c`)]).toStrictEqual([void 0,void 0,void 0]),r(e).toHaveBeenCalledTimes(0),await s(128),r(e).toHaveBeenCalledTimes(1),r([t.call(`d`),t.call(`e`),t.call(`f`)]).toStrictEqual([`c`,`c`,`c`]),r(e).toHaveBeenCalledTimes(1),await s(256),r(e).toHaveBeenCalledTimes(2)}),t("subsequent debounced calls return the last `func` result",async()=>{let e=c(o(),{waitMs:32});e.call(`a`),await s(64),r(e.call(`b`)).toBe(`a`),await s(128),r(e.call(`c`)).toBe(`b`)}),t("should not immediately call `func` when `wait` is `0`",async()=>{let e=i.fn(),t=c(e,{});t.call(),t.call(),r(e).toHaveBeenCalledTimes(0),await s(5),r(e).toHaveBeenCalledTimes(1)}),t(`should apply default options`,async()=>{let e=i.fn();c(e,{waitMs:32}).call(),r(e).toHaveBeenCalledTimes(0),await s(64),r(e).toHaveBeenCalledTimes(1)}),t("should support a `leading` option",async()=>{let e=i.fn(),t=i.fn(),n=c(e,{waitMs:32,timing:`leading`});n.call(),r(e).toHaveBeenCalledTimes(1);let a=c(t,{waitMs:32,timing:`both`});a.call(),a.call(),r(t).toHaveBeenCalledTimes(1),await s(64),r(t).toHaveBeenCalledTimes(2),n.call(),r(e).toHaveBeenCalledTimes(2)}),t("subsequent leading debounced calls return the last `func` result",async()=>{let e=c(o(),{waitMs:32,timing:`leading`});r([e.call(`a`),e.call(`b`)]).toStrictEqual([`a`,`a`]),await s(64),r([e.call(`c`),e.call(`d`)]).toStrictEqual([`c`,`c`])}),t("should support a `trailing` option",async()=>{let e=i.fn();c(e,{waitMs:32,timing:`trailing`}).call(),r(e).toHaveBeenCalledTimes(0),await s(64),r(e).toHaveBeenCalledTimes(1)})}),n(`optional param maxWaitMs`,()=>{t("should support a `maxWait` option",async()=>{let e=i.fn(),t=c(e,{waitMs:32,maxWaitMs:64});t.call(`a`),t.call(`b`),r(e).toHaveBeenCalledTimes(0),await s(128),r(e).toHaveBeenCalledTimes(1),t.call(`c`),t.call(`d`),r(e).toHaveBeenCalledTimes(1),await s(256),r(e).toHaveBeenCalledTimes(2)}),t("should support `maxWait` in a tight loop",async()=>{let e=i.fn(),t=i.fn(),n=c(e,{waitMs:32,maxWaitMs:128}),a=c(t,{waitMs:96}),o=Date.now();for(;Date.now()-o<320;)n.call(),a.call();await s(1),r(t).toHaveBeenCalledTimes(0),r(e).not.toHaveBeenCalledTimes(0)}),t("should queue a trailing call for subsequent debounced calls after `maxWait`",async()=>{let e=i.fn(),t=c(e,{waitMs:200,maxWaitMs:200});t.call(),setTimeout(()=>{t.call()},190),setTimeout(()=>{t.call()},200),setTimeout(()=>{t.call()},210),await s(500),r(e).toHaveBeenCalledTimes(2)}),t("should cancel `maxDelayed` when `delayed` is invoked",async()=>{let e=i.fn(),t=c(e,{waitMs:32,maxWaitMs:64});t.call(),await s(128),t.call(),r(e).toHaveBeenCalledTimes(1),await s(192),r(e).toHaveBeenCalledTimes(2)}),t(`works like a leaky bucket when only maxWaitMs is set`,async()=>{let e=i.fn(),t=c(e,{maxWaitMs:32});t.call(),r(e).toHaveBeenCalledTimes(0),await s(16),t.call(),r(e).toHaveBeenCalledTimes(0),await s(17),r(e).toHaveBeenCalledTimes(1)})}),n(`additional functionality`,()=>{t(`can cancel before the timer starts`,async()=>{let e=c(o(),{waitMs:32});r(()=>{e.cancel()}).not.toThrowError(),r(e.call(`hello`)).toBeUndefined(),await s(32),r(e.call(`world`)).toBe(`hello`)}),t(`can cancel the timer`,async()=>{let t=i.fn(e(`Hello, World!`)),n=c(t,{waitMs:32});r(n.call()).toBeUndefined(),r(t).toHaveBeenCalledTimes(0),await s(1),r(n.call()).toBeUndefined(),r(t).toHaveBeenCalledTimes(0),n.cancel(),await s(32),r(n.call()).toBeUndefined(),r(t).toHaveBeenCalledTimes(0),await s(32),r(n.call()).toBe(`Hello, World!`),r(t).toHaveBeenCalledTimes(1)}),t(`can cancel after the timer ends`,async()=>{let e=c(o(),{waitMs:32});r(e.call(`hello`)).toBeUndefined(),await s(32),r(e.call(`world`)).toBe(`hello`),r(()=>{e.cancel()}).not.toThrowError()}),t(`can cancel maxWait timer`,async()=>{let e=c(o(),{waitMs:16,maxWaitMs:32});r(e.call(`hello`)).toBeUndefined(),await s(1),e.cancel(),await s(32),r(e.call(`world`)).toBeUndefined()}),t(`can return a cached value`,()=>{let e=c(o(),{timing:`leading`,waitMs:32});r(e.cachedValue).toBeUndefined(),r(e.call(`hello`)).toBe(`hello`),r(e.cachedValue).toBe(`hello`)}),t(`can check for inflight timers (trailing)`,async()=>{let e=c(o(),{waitMs:32});r(e.isPending).toBe(!1),r(e.call(`hello`)).toBeUndefined(),r(e.isPending).toBe(!0),await s(1),r(e.isPending).toBe(!0),await s(32),r(e.isPending).toBe(!1)}),t(`can check for inflight timers (leading)`,async()=>{let e=c(o(),{timing:`leading`,waitMs:32});r(e.isPending).toBe(!1),r(e.call(`hello`)).toBe(`hello`),r(e.isPending).toBe(!0),await s(1),r(e.isPending).toBe(!0),await s(32),r(e.isPending).toBe(!1)}),t(`can flush before a cool-down`,async()=>{let e=c(o(),{waitMs:32});r(e.flush()).toBeUndefined(),r(e.call(`hello`)).toBeUndefined(),await s(32),r(e.call(`world`)).toBe(`hello`)}),t(`can flush during a cool-down`,async()=>{let e=c(o(),{waitMs:32});r(e.call(`hello`)).toBeUndefined(),await s(1),r(e.call(`world`)).toBeUndefined(),await s(1),r(e.flush()).toBe(`world`)}),t(`can flush after a cool-down`,async()=>{let e=c(o(),{waitMs:32});r(e.call(`hello`)).toBeUndefined(),await s(32),r(e.flush()).toBe(`hello`)})}),n(`errors`,()=>{t(`prevents maxWaitMs to be less then waitMs`,()=>{r(()=>c(o(),{waitMs:32,maxWaitMs:16})).toThrowError(`debounce: maxWaitMs (16) cannot be less than waitMs (32)`)})});
|
|
2
2
|
//# sourceMappingURL=funnel.perkakas-debounce.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"funnel.perkakas-debounce.test.js","names":["cachedValue: ReturnType<F> | undefined"],"sources":["../src/funnel.perkakas-debounce.test.ts"],"sourcesContent":["/* eslint-disable function-paren-newline, no-nested-ternary, ts/explicit-function-return-type, ts/no-explicit-any --\n * These aren't useful for a reference implementation!\n */\n\nimport { describe, expect, it, vi } from 'vitest';\nimport { constant } from './constant';\nimport { funnel } from './funnel';\nimport { identity } from './identity';\nimport { sleep } from './sleep';\n\ninterface Debouncer<\n F extends (...args: any) => unknown,\n IsNullable extends boolean = true,\n> {\n readonly call: (\n ...args: Parameters<F>\n ) => ReturnType<F> | (true extends IsNullable ? undefined : never);\n readonly cancel: () => void;\n readonly flush: () => ReturnType<F> | undefined;\n readonly isPending: boolean;\n readonly cachedValue: ReturnType<F> | undefined;\n}\n\ninterface DebounceOptions {\n readonly waitMs?: number;\n readonly maxWaitMs?: number;\n}\n\n/**\n * A reference implementation of the now deprecated `debounce` function using\n * the `funnel` function instead. While you update your codebase you can copy\n * this function as-is and use it as a drop-in replacement; but we recommend\n * eventually inlining the call to `funnel` so you can adjust the function to\n * your specific needs.\n *\n * The following tests in this file are the original tests for debounce.\n *\n * @see debounce\n */\nfunction debounce<F extends (...args: any) => any>(\n func: F,\n options: DebounceOptions & { readonly timing?: 'trailing' },\n): Debouncer<F>;\nfunction debounce<F extends (...args: any) => any>(\n func: F,\n options:\n | (DebounceOptions & { readonly timing: 'both' })\n | (Omit<DebounceOptions, 'maxWaitMs'> & { readonly timing: 'leading' }),\n): Debouncer<F, false>;\nfunction debounce<F extends (...args: any) => any>(\n func: F,\n {\n timing,\n waitMs,\n maxWaitMs,\n }: DebounceOptions & {\n readonly timing?: 'both' | 'leading' | 'trailing';\n },\n) {\n if (maxWaitMs !== undefined && waitMs !== undefined && maxWaitMs < waitMs) {\n throw new Error(\n `debounce: maxWaitMs (${maxWaitMs.toString()}) cannot be less than waitMs (${waitMs.toString()})`,\n );\n }\n\n let cachedValue: ReturnType<F> | undefined;\n\n const debouncingFunnel = funnel(\n (args: Parameters<F>) => {\n // Every time the function is invoked the cached value is updated.\n cachedValue = func(...args) as ReturnType<F>;\n },\n {\n // Debounce stores the latest args it was called with for the next invocation of the callback.\n reducer: (_, ...args: Parameters<F>) => args,\n minQuietPeriodMs: waitMs ?? maxWaitMs ?? 0,\n ...(maxWaitMs !== undefined && { maxBurstDurationMs: maxWaitMs }),\n ...(timing === 'leading'\n ? { triggerAt: 'start' }\n : timing === 'both'\n ? { triggerAt: 'both' }\n : { triggerAt: 'end' }),\n },\n );\n\n return {\n call: (...args: Parameters<F>) => {\n debouncingFunnel.call(...args);\n return cachedValue;\n },\n\n flush: () => {\n debouncingFunnel.flush();\n return cachedValue;\n },\n\n cancel: () => {\n debouncingFunnel.cancel();\n },\n\n get isPending() {\n return !debouncingFunnel.isIdle;\n },\n\n get cachedValue() {\n return cachedValue;\n },\n };\n}\n\ndescribe('main functionality', () => {\n it('should debounce a function', async () => {\n const mockFn = vi.fn<(x: string) => string>(identity());\n const debouncer = debounce(mockFn, { waitMs: 32 });\n\n expect([\n debouncer.call('a'),\n debouncer.call('b'),\n debouncer.call('c'),\n ]).toStrictEqual([undefined, undefined, undefined]);\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(128);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n expect([\n debouncer.call('d'),\n debouncer.call('e'),\n debouncer.call('f'),\n ]).toStrictEqual(['c', 'c', 'c']);\n expect(mockFn).toHaveBeenCalledTimes(1);\n\n await sleep(256);\n\n expect(mockFn).toHaveBeenCalledTimes(2);\n });\n\n it('subsequent debounced calls return the last `func` result', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n debouncer.call('a');\n await sleep(64);\n\n expect(debouncer.call('b')).toBe('a');\n\n await sleep(128);\n\n expect(debouncer.call('c')).toBe('b');\n });\n\n it('should not immediately call `func` when `wait` is `0`', async () => {\n const mockFn = vi.fn<() => void>();\n const debouncer = debounce(mockFn, {});\n debouncer.call();\n debouncer.call();\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(5);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n });\n\n it('should apply default options', async () => {\n const mockFn = vi.fn<() => void>();\n const debouncer = debounce(mockFn, { waitMs: 32 });\n debouncer.call();\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(64);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n });\n\n it('should support a `leading` option', async () => {\n const leadingMockFn = vi.fn<() => void>();\n const bothMockFn = vi.fn<() => void>();\n const withLeading = debounce(leadingMockFn, {\n waitMs: 32,\n timing: 'leading',\n });\n withLeading.call();\n\n expect(leadingMockFn).toHaveBeenCalledTimes(1);\n\n const withLeadingAndTrailing = debounce(bothMockFn, {\n waitMs: 32,\n timing: 'both',\n });\n withLeadingAndTrailing.call();\n withLeadingAndTrailing.call();\n\n expect(bothMockFn).toHaveBeenCalledTimes(1);\n\n await sleep(64);\n\n expect(bothMockFn).toHaveBeenCalledTimes(2);\n\n withLeading.call();\n\n expect(leadingMockFn).toHaveBeenCalledTimes(2);\n });\n\n it('subsequent leading debounced calls return the last `func` result', async () => {\n const debouncer = debounce(identity(), { waitMs: 32, timing: 'leading' });\n\n expect([debouncer.call('a'), debouncer.call('b')]).toStrictEqual([\n 'a',\n 'a',\n ]);\n\n await sleep(64);\n\n expect([debouncer.call('c'), debouncer.call('d')]).toStrictEqual([\n 'c',\n 'c',\n ]);\n });\n\n it('should support a `trailing` option', async () => {\n const mockFn = vi.fn<() => void>();\n const withTrailing = debounce(mockFn, { waitMs: 32, timing: 'trailing' });\n withTrailing.call();\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(64);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n });\n});\n\ndescribe('optional param maxWaitMs', () => {\n it('should support a `maxWait` option', async () => {\n const mockFn = vi.fn<(x: string) => void>();\n const debouncer = debounce(mockFn, { waitMs: 32, maxWaitMs: 64 });\n debouncer.call('a');\n debouncer.call('b');\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(128);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n\n debouncer.call('c');\n debouncer.call('d');\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n\n await sleep(256);\n\n expect(mockFn).toHaveBeenCalledTimes(2);\n });\n\n it('should support `maxWait` in a tight loop', async () => {\n const withMockFn = vi.fn<() => void>();\n const withoutMockFn = vi.fn<() => void>();\n const withMaxWait = debounce(withMockFn, { waitMs: 32, maxWaitMs: 128 });\n const withoutMaxWait = debounce(withoutMockFn, { waitMs: 96 });\n const start = Date.now();\n while (Date.now() - start < 320) {\n withMaxWait.call();\n withoutMaxWait.call();\n }\n await sleep(1);\n\n expect(withoutMockFn).toHaveBeenCalledTimes(0);\n expect(withMockFn).not.toHaveBeenCalledTimes(0);\n });\n\n it('should queue a trailing call for subsequent debounced calls after `maxWait`', async () => {\n const mockFn = vi.fn<() => void>();\n const debouncer = debounce(mockFn, { waitMs: 200, maxWaitMs: 200 });\n debouncer.call();\n setTimeout(() => {\n debouncer.call();\n }, 190);\n setTimeout(() => {\n debouncer.call();\n }, 200);\n setTimeout(() => {\n debouncer.call();\n }, 210);\n await sleep(500);\n\n expect(mockFn).toHaveBeenCalledTimes(2);\n });\n\n it('should cancel `maxDelayed` when `delayed` is invoked', async () => {\n const mockFn = vi.fn<() => void>();\n const debouncer = debounce(mockFn, { waitMs: 32, maxWaitMs: 64 });\n debouncer.call();\n await sleep(128);\n debouncer.call();\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n\n await sleep(192);\n\n expect(mockFn).toHaveBeenCalledTimes(2);\n });\n\n it('works like a leaky bucket when only maxWaitMs is set', async () => {\n const mockFn = vi.fn<() => void>();\n const debouncer = debounce(mockFn, { maxWaitMs: 32 });\n debouncer.call();\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(16);\n // Without maxWaitMs this call would cause the actual invocation to be\n // postponed for a full window.\n debouncer.call();\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(17);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n });\n});\n\ndescribe('additional functionality', () => {\n it('can cancel before the timer starts', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(() => {\n debouncer.cancel();\n }).not.toThrow();\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(32);\n\n expect(debouncer.call('world')).toBe('hello');\n });\n\n it('can cancel the timer', async () => {\n const mockFn = vi.fn<() => string>(constant('Hello, World!'));\n const debouncer = debounce(mockFn, { waitMs: 32 });\n\n expect(debouncer.call()).toBeUndefined();\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(1);\n\n expect(debouncer.call()).toBeUndefined();\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n debouncer.cancel();\n await sleep(32);\n\n expect(debouncer.call()).toBeUndefined();\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(32);\n\n expect(debouncer.call()).toBe('Hello, World!');\n expect(mockFn).toHaveBeenCalledTimes(1);\n });\n\n it('can cancel after the timer ends', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(32);\n\n expect(debouncer.call('world')).toBe('hello');\n expect(() => {\n debouncer.cancel();\n }).not.toThrow();\n });\n\n it('can cancel maxWait timer', async () => {\n const debouncer = debounce(identity(), { waitMs: 16, maxWaitMs: 32 });\n\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(1);\n debouncer.cancel();\n await sleep(32);\n\n expect(debouncer.call('world')).toBeUndefined();\n });\n\n it('can return a cached value', () => {\n const debouncer = debounce(identity(), { timing: 'leading', waitMs: 32 });\n\n expect(debouncer.cachedValue).toBeUndefined();\n expect(debouncer.call('hello')).toBe('hello');\n expect(debouncer.cachedValue).toBe('hello');\n });\n\n it('can check for inflight timers (trailing)', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(debouncer.isPending).toBe(false);\n expect(debouncer.call('hello')).toBeUndefined();\n expect(debouncer.isPending).toBe(true);\n\n await sleep(1);\n\n expect(debouncer.isPending).toBe(true);\n\n await sleep(32);\n\n expect(debouncer.isPending).toBe(false);\n });\n\n it('can check for inflight timers (leading)', async () => {\n const debouncer = debounce(identity(), { timing: 'leading', waitMs: 32 });\n\n expect(debouncer.isPending).toBe(false);\n expect(debouncer.call('hello')).toBe('hello');\n expect(debouncer.isPending).toBe(true);\n\n await sleep(1);\n\n expect(debouncer.isPending).toBe(true);\n\n await sleep(32);\n\n expect(debouncer.isPending).toBe(false);\n });\n\n it('can flush before a cool-down', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(debouncer.flush()).toBeUndefined();\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(32);\n\n expect(debouncer.call('world')).toBe('hello');\n });\n\n it('can flush during a cool-down', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(1);\n\n expect(debouncer.call('world')).toBeUndefined();\n\n await sleep(1);\n\n expect(debouncer.flush()).toBe('world');\n });\n\n it('can flush after a cool-down', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(32);\n\n expect(debouncer.flush()).toBe('hello');\n });\n});\n\ndescribe('errors', () => {\n it('prevents maxWaitMs to be less then waitMs', () => {\n expect(() => debounce(identity(), { waitMs: 32, maxWaitMs: 16 })).toThrow(\n 'debounce: maxWaitMs (16) cannot be less than waitMs (32)',\n );\n });\n});\n"],"mappings":"8QAiDA,SAAS,EACP,EACA,CACE,SACA,SACA,aAIF,CACA,GAAI,IAAc,IAAA,IAAa,IAAW,IAAA,IAAa,EAAY,EACjE,MAAU,MACR,wBAAwB,EAAU,UAAU,CAAC,gCAAgC,EAAO,UAAU,CAAC,GAChG,CAGH,IAAIA,EAEE,EAAmB,EACtB,GAAwB,CAEvB,EAAc,EAAK,GAAG,EAAK,EAE7B,CAEE,SAAU,EAAG,GAAG,IAAwB,EACxC,iBAAkB,GAAU,GAAa,EACzC,GAAI,IAAc,IAAA,IAAa,CAAE,mBAAoB,EAAW,CAChE,GAAI,IAAW,UACX,CAAE,UAAW,QAAS,CACtB,IAAW,OACT,CAAE,UAAW,OAAQ,CACrB,CAAE,UAAW,MAAO,CAC3B,CACF,CAED,MAAO,CACL,MAAO,GAAG,KACR,EAAiB,KAAK,GAAG,EAAK,CACvB,GAGT,WACE,EAAiB,OAAO,CACjB,GAGT,WAAc,CACZ,EAAiB,QAAQ,EAG3B,IAAI,WAAY,CACd,MAAO,CAAC,EAAiB,QAG3B,IAAI,aAAc,CAChB,OAAO,GAEV,CAGH,EAAS,yBAA4B,CACnC,EAAG,6BAA8B,SAAY,CAC3C,IAAM,EAAS,EAAG,GAA0B,GAAU,CAAC,CACjD,EAAY,EAAS,EAAQ,CAAE,OAAQ,GAAI,CAAC,CAElD,EAAO,CACL,EAAU,KAAK,IAAI,CACnB,EAAU,KAAK,IAAI,CACnB,EAAU,KAAK,IAAI,CACpB,CAAC,CAAC,cAAc,CAAC,IAAA,GAAW,IAAA,GAAW,IAAA,GAAU,CAAC,CACnD,EAAO,EAAO,CAAC,sBAAsB,EAAE,CAEvC,MAAM,EAAM,IAAI,CAEhB,EAAO,EAAO,CAAC,sBAAsB,EAAE,CACvC,EAAO,CACL,EAAU,KAAK,IAAI,CACnB,EAAU,KAAK,IAAI,CACnB,EAAU,KAAK,IAAI,CACpB,CAAC,CAAC,cAAc,CAAC,IAAK,IAAK,IAAI,CAAC,CACjC,EAAO,EAAO,CAAC,sBAAsB,EAAE,CAEvC,MAAM,EAAM,IAAI,CAEhB,EAAO,EAAO,CAAC,sBAAsB,EAAE,EACvC,CAEF,EAAG,2DAA4D,SAAY,CACzE,IAAM,EAAY,EAAS,GAAU,CAAE,CAAE,OAAQ,GAAI,CAAC,CACtD,EAAU,KAAK,IAAI,CACnB,MAAM,EAAM,GAAG,CAEf,EAAO,EAAU,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAErC,MAAM,EAAM,IAAI,CAEhB,EAAO,EAAU,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,EACrC,CAEF,EAAG,wDAAyD,SAAY,CACtE,IAAM,EAAS,EAAG,IAAgB,CAC5B,EAAY,EAAS,EAAQ,EAAE,CAAC,CACtC,EAAU,MAAM,CAChB,EAAU,MAAM,CAEhB,EAAO,EAAO,CAAC,sBAAsB,EAAE,CAEvC,MAAM,EAAM,EAAE,CAEd,EAAO,EAAO,CAAC,sBAAsB,EAAE,EACvC,CAEF,EAAG,+BAAgC,SAAY,CAC7C,IAAM,EAAS,EAAG,IAAgB,CAChB,EAAS,EAAQ,CAAE,OAAQ,GAAI,CAAC,CACxC,MAAM,CAEhB,EAAO,EAAO,CAAC,sBAAsB,EAAE,CAEvC,MAAM,EAAM,GAAG,CAEf,EAAO,EAAO,CAAC,sBAAsB,EAAE,EACvC,CAEF,EAAG,oCAAqC,SAAY,CAClD,IAAM,EAAgB,EAAG,IAAgB,CACnC,EAAa,EAAG,IAAgB,CAChC,EAAc,EAAS,EAAe,CAC1C,OAAQ,GACR,OAAQ,UACT,CAAC,CACF,EAAY,MAAM,CAElB,EAAO,EAAc,CAAC,sBAAsB,EAAE,CAE9C,IAAM,EAAyB,EAAS,EAAY,CAClD,OAAQ,GACR,OAAQ,OACT,CAAC,CACF,EAAuB,MAAM,CAC7B,EAAuB,MAAM,CAE7B,EAAO,EAAW,CAAC,sBAAsB,EAAE,CAE3C,MAAM,EAAM,GAAG,CAEf,EAAO,EAAW,CAAC,sBAAsB,EAAE,CAE3C,EAAY,MAAM,CAElB,EAAO,EAAc,CAAC,sBAAsB,EAAE,EAC9C,CAEF,EAAG,mEAAoE,SAAY,CACjF,IAAM,EAAY,EAAS,GAAU,CAAE,CAAE,OAAQ,GAAI,OAAQ,UAAW,CAAC,CAEzE,EAAO,CAAC,EAAU,KAAK,IAAI,CAAE,EAAU,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAC/D,IACA,IACD,CAAC,CAEF,MAAM,EAAM,GAAG,CAEf,EAAO,CAAC,EAAU,KAAK,IAAI,CAAE,EAAU,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAC/D,IACA,IACD,CAAC,EACF,CAEF,EAAG,qCAAsC,SAAY,CACnD,IAAM,EAAS,EAAG,IAAgB,CACb,EAAS,EAAQ,CAAE,OAAQ,GAAI,OAAQ,WAAY,CAAC,CAC5D,MAAM,CAEnB,EAAO,EAAO,CAAC,sBAAsB,EAAE,CAEvC,MAAM,EAAM,GAAG,CAEf,EAAO,EAAO,CAAC,sBAAsB,EAAE,EACvC,EACF,CAEF,EAAS,+BAAkC,CACzC,EAAG,oCAAqC,SAAY,CAClD,IAAM,EAAS,EAAG,IAAyB,CACrC,EAAY,EAAS,EAAQ,CAAE,OAAQ,GAAI,UAAW,GAAI,CAAC,CACjE,EAAU,KAAK,IAAI,CACnB,EAAU,KAAK,IAAI,CAEnB,EAAO,EAAO,CAAC,sBAAsB,EAAE,CAEvC,MAAM,EAAM,IAAI,CAEhB,EAAO,EAAO,CAAC,sBAAsB,EAAE,CAEvC,EAAU,KAAK,IAAI,CACnB,EAAU,KAAK,IAAI,CAEnB,EAAO,EAAO,CAAC,sBAAsB,EAAE,CAEvC,MAAM,EAAM,IAAI,CAEhB,EAAO,EAAO,CAAC,sBAAsB,EAAE,EACvC,CAEF,EAAG,2CAA4C,SAAY,CACzD,IAAM,EAAa,EAAG,IAAgB,CAChC,EAAgB,EAAG,IAAgB,CACnC,EAAc,EAAS,EAAY,CAAE,OAAQ,GAAI,UAAW,IAAK,CAAC,CAClE,EAAiB,EAAS,EAAe,CAAE,OAAQ,GAAI,CAAC,CACxD,EAAQ,KAAK,KAAK,CACxB,KAAO,KAAK,KAAK,CAAG,EAAQ,KAC1B,EAAY,MAAM,CAClB,EAAe,MAAM,CAEvB,MAAM,EAAM,EAAE,CAEd,EAAO,EAAc,CAAC,sBAAsB,EAAE,CAC9C,EAAO,EAAW,CAAC,IAAI,sBAAsB,EAAE,EAC/C,CAEF,EAAG,8EAA+E,SAAY,CAC5F,IAAM,EAAS,EAAG,IAAgB,CAC5B,EAAY,EAAS,EAAQ,CAAE,OAAQ,IAAK,UAAW,IAAK,CAAC,CACnE,EAAU,MAAM,CAChB,eAAiB,CACf,EAAU,MAAM,EACf,IAAI,CACP,eAAiB,CACf,EAAU,MAAM,EACf,IAAI,CACP,eAAiB,CACf,EAAU,MAAM,EACf,IAAI,CACP,MAAM,EAAM,IAAI,CAEhB,EAAO,EAAO,CAAC,sBAAsB,EAAE,EACvC,CAEF,EAAG,uDAAwD,SAAY,CACrE,IAAM,EAAS,EAAG,IAAgB,CAC5B,EAAY,EAAS,EAAQ,CAAE,OAAQ,GAAI,UAAW,GAAI,CAAC,CACjE,EAAU,MAAM,CAChB,MAAM,EAAM,IAAI,CAChB,EAAU,MAAM,CAEhB,EAAO,EAAO,CAAC,sBAAsB,EAAE,CAEvC,MAAM,EAAM,IAAI,CAEhB,EAAO,EAAO,CAAC,sBAAsB,EAAE,EACvC,CAEF,EAAG,uDAAwD,SAAY,CACrE,IAAM,EAAS,EAAG,IAAgB,CAC5B,EAAY,EAAS,EAAQ,CAAE,UAAW,GAAI,CAAC,CACrD,EAAU,MAAM,CAEhB,EAAO,EAAO,CAAC,sBAAsB,EAAE,CAEvC,MAAM,EAAM,GAAG,CAGf,EAAU,MAAM,CAEhB,EAAO,EAAO,CAAC,sBAAsB,EAAE,CAEvC,MAAM,EAAM,GAAG,CAEf,EAAO,EAAO,CAAC,sBAAsB,EAAE,EACvC,EACF,CAEF,EAAS,+BAAkC,CACzC,EAAG,qCAAsC,SAAY,CACnD,IAAM,EAAY,EAAS,GAAU,CAAE,CAAE,OAAQ,GAAI,CAAC,CAEtD,MAAa,CACX,EAAU,QAAQ,EAClB,CAAC,IAAI,SAAS,CAChB,EAAO,EAAU,KAAK,QAAQ,CAAC,CAAC,eAAe,CAE/C,MAAM,EAAM,GAAG,CAEf,EAAO,EAAU,KAAK,QAAQ,CAAC,CAAC,KAAK,QAAQ,EAC7C,CAEF,EAAG,uBAAwB,SAAY,CACrC,IAAM,EAAS,EAAG,GAAiB,EAAS,gBAAgB,CAAC,CACvD,EAAY,EAAS,EAAQ,CAAE,OAAQ,GAAI,CAAC,CAElD,EAAO,EAAU,MAAM,CAAC,CAAC,eAAe,CACxC,EAAO,EAAO,CAAC,sBAAsB,EAAE,CAEvC,MAAM,EAAM,EAAE,CAEd,EAAO,EAAU,MAAM,CAAC,CAAC,eAAe,CACxC,EAAO,EAAO,CAAC,sBAAsB,EAAE,CAEvC,EAAU,QAAQ,CAClB,MAAM,EAAM,GAAG,CAEf,EAAO,EAAU,MAAM,CAAC,CAAC,eAAe,CACxC,EAAO,EAAO,CAAC,sBAAsB,EAAE,CAEvC,MAAM,EAAM,GAAG,CAEf,EAAO,EAAU,MAAM,CAAC,CAAC,KAAK,gBAAgB,CAC9C,EAAO,EAAO,CAAC,sBAAsB,EAAE,EACvC,CAEF,EAAG,kCAAmC,SAAY,CAChD,IAAM,EAAY,EAAS,GAAU,CAAE,CAAE,OAAQ,GAAI,CAAC,CAEtD,EAAO,EAAU,KAAK,QAAQ,CAAC,CAAC,eAAe,CAE/C,MAAM,EAAM,GAAG,CAEf,EAAO,EAAU,KAAK,QAAQ,CAAC,CAAC,KAAK,QAAQ,CAC7C,MAAa,CACX,EAAU,QAAQ,EAClB,CAAC,IAAI,SAAS,EAChB,CAEF,EAAG,2BAA4B,SAAY,CACzC,IAAM,EAAY,EAAS,GAAU,CAAE,CAAE,OAAQ,GAAI,UAAW,GAAI,CAAC,CAErE,EAAO,EAAU,KAAK,QAAQ,CAAC,CAAC,eAAe,CAE/C,MAAM,EAAM,EAAE,CACd,EAAU,QAAQ,CAClB,MAAM,EAAM,GAAG,CAEf,EAAO,EAAU,KAAK,QAAQ,CAAC,CAAC,eAAe,EAC/C,CAEF,EAAG,gCAAmC,CACpC,IAAM,EAAY,EAAS,GAAU,CAAE,CAAE,OAAQ,UAAW,OAAQ,GAAI,CAAC,CAEzE,EAAO,EAAU,YAAY,CAAC,eAAe,CAC7C,EAAO,EAAU,KAAK,QAAQ,CAAC,CAAC,KAAK,QAAQ,CAC7C,EAAO,EAAU,YAAY,CAAC,KAAK,QAAQ,EAC3C,CAEF,EAAG,2CAA4C,SAAY,CACzD,IAAM,EAAY,EAAS,GAAU,CAAE,CAAE,OAAQ,GAAI,CAAC,CAEtD,EAAO,EAAU,UAAU,CAAC,KAAK,GAAM,CACvC,EAAO,EAAU,KAAK,QAAQ,CAAC,CAAC,eAAe,CAC/C,EAAO,EAAU,UAAU,CAAC,KAAK,GAAK,CAEtC,MAAM,EAAM,EAAE,CAEd,EAAO,EAAU,UAAU,CAAC,KAAK,GAAK,CAEtC,MAAM,EAAM,GAAG,CAEf,EAAO,EAAU,UAAU,CAAC,KAAK,GAAM,EACvC,CAEF,EAAG,0CAA2C,SAAY,CACxD,IAAM,EAAY,EAAS,GAAU,CAAE,CAAE,OAAQ,UAAW,OAAQ,GAAI,CAAC,CAEzE,EAAO,EAAU,UAAU,CAAC,KAAK,GAAM,CACvC,EAAO,EAAU,KAAK,QAAQ,CAAC,CAAC,KAAK,QAAQ,CAC7C,EAAO,EAAU,UAAU,CAAC,KAAK,GAAK,CAEtC,MAAM,EAAM,EAAE,CAEd,EAAO,EAAU,UAAU,CAAC,KAAK,GAAK,CAEtC,MAAM,EAAM,GAAG,CAEf,EAAO,EAAU,UAAU,CAAC,KAAK,GAAM,EACvC,CAEF,EAAG,+BAAgC,SAAY,CAC7C,IAAM,EAAY,EAAS,GAAU,CAAE,CAAE,OAAQ,GAAI,CAAC,CAEtD,EAAO,EAAU,OAAO,CAAC,CAAC,eAAe,CACzC,EAAO,EAAU,KAAK,QAAQ,CAAC,CAAC,eAAe,CAE/C,MAAM,EAAM,GAAG,CAEf,EAAO,EAAU,KAAK,QAAQ,CAAC,CAAC,KAAK,QAAQ,EAC7C,CAEF,EAAG,+BAAgC,SAAY,CAC7C,IAAM,EAAY,EAAS,GAAU,CAAE,CAAE,OAAQ,GAAI,CAAC,CAEtD,EAAO,EAAU,KAAK,QAAQ,CAAC,CAAC,eAAe,CAE/C,MAAM,EAAM,EAAE,CAEd,EAAO,EAAU,KAAK,QAAQ,CAAC,CAAC,eAAe,CAE/C,MAAM,EAAM,EAAE,CAEd,EAAO,EAAU,OAAO,CAAC,CAAC,KAAK,QAAQ,EACvC,CAEF,EAAG,8BAA+B,SAAY,CAC5C,IAAM,EAAY,EAAS,GAAU,CAAE,CAAE,OAAQ,GAAI,CAAC,CAEtD,EAAO,EAAU,KAAK,QAAQ,CAAC,CAAC,eAAe,CAE/C,MAAM,EAAM,GAAG,CAEf,EAAO,EAAU,OAAO,CAAC,CAAC,KAAK,QAAQ,EACvC,EACF,CAEF,EAAS,aAAgB,CACvB,EAAG,gDAAmD,CACpD,MAAa,EAAS,GAAU,CAAE,CAAE,OAAQ,GAAI,UAAW,GAAI,CAAC,CAAC,CAAC,QAChE,2DACD,EACD,EACF"}
|
|
1
|
+
{"version":3,"file":"funnel.perkakas-debounce.test.js","names":["cachedValue: ReturnType<F> | undefined"],"sources":["../src/funnel.perkakas-debounce.test.ts"],"sourcesContent":["/* eslint-disable no-nested-ternary, ts/explicit-function-return-type --\n * These aren't useful for a reference implementation!\n */\n\nimport type { StrictFunction } from './internal/types/strict-function';\nimport { describe, expect, it, vi } from 'vitest';\nimport { constant } from './constant';\nimport { funnel } from './funnel';\nimport { identity } from './identity';\nimport { sleep } from './sleep';\n\ninterface Debouncer<F extends StrictFunction, IsNullable extends boolean = true> {\n readonly call: (\n ...args: Parameters<F>\n ) => ReturnType<F> | (true extends IsNullable ? undefined : never);\n readonly cancel: () => void;\n readonly flush: () => ReturnType<F> | undefined;\n readonly isPending: boolean;\n readonly cachedValue: ReturnType<F> | undefined;\n}\n\ninterface DebounceOptions {\n readonly waitMs?: number;\n readonly maxWaitMs?: number;\n}\n\n/**\n * A reference implementation of the now deprecated `debounce` function using\n * the `funnel` function instead. While you update your codebase you can copy\n * this function as-is and use it as a drop-in replacement; but we recommend\n * eventually inlining the call to `funnel` so you can adjust the function to\n * your specific needs.\n *\n * The following tests in this file are the original tests for debounce.\n *\n * @see debounce\n */\nfunction debounce<F extends StrictFunction>(\n func: F,\n options: DebounceOptions & { readonly timing?: 'trailing' },\n): Debouncer<F>;\nfunction debounce<F extends StrictFunction>(\n func: F,\n options:\n | (DebounceOptions & { readonly timing: 'both' })\n | (Omit<DebounceOptions, 'maxWaitMs'> & { readonly timing: 'leading' }),\n): Debouncer<F, false>;\nfunction debounce<F extends StrictFunction>(\n func: F,\n {\n timing,\n waitMs,\n maxWaitMs,\n }: DebounceOptions & {\n readonly timing?: 'both' | 'leading' | 'trailing';\n },\n) {\n if (maxWaitMs !== undefined && waitMs !== undefined && maxWaitMs < waitMs) {\n throw new Error(\n `debounce: maxWaitMs (${maxWaitMs.toString()}) cannot be less than waitMs (${waitMs.toString()})`,\n );\n }\n\n let cachedValue: ReturnType<F> | undefined;\n\n const debouncingFunnel = funnel(\n (args: Parameters<F>) => {\n // @ts-expect-error [ts2345, ts2322] -- TypeScript infers the generic sub-\n // types too eagerly, making itself blind to the fact that the types\n // match here.\n cachedValue = func(...args) as ReturnType<F>;\n },\n {\n // Debounce stores the latest args it was called with for the next invocation of the callback.\n reducer: (_, ...args: Parameters<F>) => args,\n minQuietPeriodMs: waitMs ?? maxWaitMs ?? 0,\n ...(maxWaitMs !== undefined && { maxBurstDurationMs: maxWaitMs }),\n ...(timing === 'leading'\n ? { triggerAt: 'start' }\n : timing === 'both'\n ? { triggerAt: 'both' }\n : { triggerAt: 'end' }),\n },\n );\n\n return {\n call: (...args: Parameters<F>) => {\n debouncingFunnel.call(...args);\n return cachedValue;\n },\n\n flush: () => {\n debouncingFunnel.flush();\n return cachedValue;\n },\n\n cancel: () => {\n debouncingFunnel.cancel();\n },\n\n get isPending() {\n return !debouncingFunnel.isIdle;\n },\n\n get cachedValue() {\n return cachedValue;\n },\n };\n}\n\ndescribe('main functionality', () => {\n it('should debounce a function', async () => {\n const mockFn = vi.fn<(x: string) => string>(identity());\n const debouncer = debounce(mockFn, { waitMs: 32 });\n\n expect([\n debouncer.call('a'),\n debouncer.call('b'),\n debouncer.call('c'),\n ]).toStrictEqual([undefined, undefined, undefined]);\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(128);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n expect([\n debouncer.call('d'),\n debouncer.call('e'),\n debouncer.call('f'),\n ]).toStrictEqual(['c', 'c', 'c']);\n expect(mockFn).toHaveBeenCalledTimes(1);\n\n await sleep(256);\n\n expect(mockFn).toHaveBeenCalledTimes(2);\n });\n\n it('subsequent debounced calls return the last `func` result', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n debouncer.call('a');\n await sleep(64);\n\n expect(debouncer.call('b')).toBe('a');\n\n await sleep(128);\n\n expect(debouncer.call('c')).toBe('b');\n });\n\n it('should not immediately call `func` when `wait` is `0`', async () => {\n const mockFn = vi.fn<() => void>();\n const debouncer = debounce(mockFn, {});\n debouncer.call();\n debouncer.call();\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(5);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n });\n\n it('should apply default options', async () => {\n const mockFn = vi.fn<() => void>();\n const debouncer = debounce(mockFn, { waitMs: 32 });\n debouncer.call();\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(64);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n });\n\n it('should support a `leading` option', async () => {\n const leadingMockFn = vi.fn<() => void>();\n const bothMockFn = vi.fn<() => void>();\n const withLeading = debounce(leadingMockFn, {\n waitMs: 32,\n timing: 'leading',\n });\n withLeading.call();\n\n expect(leadingMockFn).toHaveBeenCalledTimes(1);\n\n const withLeadingAndTrailing = debounce(bothMockFn, {\n waitMs: 32,\n timing: 'both',\n });\n withLeadingAndTrailing.call();\n withLeadingAndTrailing.call();\n\n expect(bothMockFn).toHaveBeenCalledTimes(1);\n\n await sleep(64);\n\n expect(bothMockFn).toHaveBeenCalledTimes(2);\n\n withLeading.call();\n\n expect(leadingMockFn).toHaveBeenCalledTimes(2);\n });\n\n it('subsequent leading debounced calls return the last `func` result', async () => {\n const debouncer = debounce(identity(), { waitMs: 32, timing: 'leading' });\n\n expect([debouncer.call('a'), debouncer.call('b')]).toStrictEqual([\n 'a',\n 'a',\n ]);\n\n await sleep(64);\n\n expect([debouncer.call('c'), debouncer.call('d')]).toStrictEqual([\n 'c',\n 'c',\n ]);\n });\n\n it('should support a `trailing` option', async () => {\n const mockFn = vi.fn<() => void>();\n const withTrailing = debounce(mockFn, { waitMs: 32, timing: 'trailing' });\n withTrailing.call();\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(64);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n });\n});\n\ndescribe('optional param maxWaitMs', () => {\n it('should support a `maxWait` option', async () => {\n const mockFn = vi.fn<(x: string) => void>();\n const debouncer = debounce(mockFn, { waitMs: 32, maxWaitMs: 64 });\n debouncer.call('a');\n debouncer.call('b');\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(128);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n\n debouncer.call('c');\n debouncer.call('d');\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n\n await sleep(256);\n\n expect(mockFn).toHaveBeenCalledTimes(2);\n });\n\n it('should support `maxWait` in a tight loop', async () => {\n const withMockFn = vi.fn<() => void>();\n const withoutMockFn = vi.fn<() => void>();\n const withMaxWait = debounce(withMockFn, { waitMs: 32, maxWaitMs: 128 });\n const withoutMaxWait = debounce(withoutMockFn, { waitMs: 96 });\n const start = Date.now();\n while (Date.now() - start < 320) {\n withMaxWait.call();\n withoutMaxWait.call();\n }\n await sleep(1);\n\n expect(withoutMockFn).toHaveBeenCalledTimes(0);\n expect(withMockFn).not.toHaveBeenCalledTimes(0);\n });\n\n it('should queue a trailing call for subsequent debounced calls after `maxWait`', async () => {\n const mockFn = vi.fn<() => void>();\n const debouncer = debounce(mockFn, { waitMs: 200, maxWaitMs: 200 });\n debouncer.call();\n setTimeout(() => {\n debouncer.call();\n }, 190);\n setTimeout(() => {\n debouncer.call();\n }, 200);\n setTimeout(() => {\n debouncer.call();\n }, 210);\n await sleep(500);\n\n expect(mockFn).toHaveBeenCalledTimes(2);\n });\n\n it('should cancel `maxDelayed` when `delayed` is invoked', async () => {\n const mockFn = vi.fn<() => void>();\n const debouncer = debounce(mockFn, { waitMs: 32, maxWaitMs: 64 });\n debouncer.call();\n await sleep(128);\n debouncer.call();\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n\n await sleep(192);\n\n expect(mockFn).toHaveBeenCalledTimes(2);\n });\n\n it('works like a leaky bucket when only maxWaitMs is set', async () => {\n const mockFn = vi.fn<() => void>();\n const debouncer = debounce(mockFn, { maxWaitMs: 32 });\n debouncer.call();\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(16);\n // Without maxWaitMs this call would cause the actual invocation to be\n // postponed for a full window.\n debouncer.call();\n\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(17);\n\n expect(mockFn).toHaveBeenCalledTimes(1);\n });\n});\n\ndescribe('additional functionality', () => {\n it('can cancel before the timer starts', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(() => {\n debouncer.cancel();\n }).not.toThrowError();\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(32);\n\n expect(debouncer.call('world')).toBe('hello');\n });\n\n it('can cancel the timer', async () => {\n const mockFn = vi.fn<() => string>(constant('Hello, World!'));\n const debouncer = debounce(mockFn, { waitMs: 32 });\n\n expect(debouncer.call()).toBeUndefined();\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(1);\n\n expect(debouncer.call()).toBeUndefined();\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n debouncer.cancel();\n await sleep(32);\n\n expect(debouncer.call()).toBeUndefined();\n expect(mockFn).toHaveBeenCalledTimes(0);\n\n await sleep(32);\n\n expect(debouncer.call()).toBe('Hello, World!');\n expect(mockFn).toHaveBeenCalledTimes(1);\n });\n\n it('can cancel after the timer ends', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(32);\n\n expect(debouncer.call('world')).toBe('hello');\n expect(() => {\n debouncer.cancel();\n }).not.toThrowError();\n });\n\n it('can cancel maxWait timer', async () => {\n const debouncer = debounce(identity(), { waitMs: 16, maxWaitMs: 32 });\n\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(1);\n debouncer.cancel();\n await sleep(32);\n\n expect(debouncer.call('world')).toBeUndefined();\n });\n\n it('can return a cached value', () => {\n const debouncer = debounce(identity(), { timing: 'leading', waitMs: 32 });\n\n expect(debouncer.cachedValue).toBeUndefined();\n expect(debouncer.call('hello')).toBe('hello');\n expect(debouncer.cachedValue).toBe('hello');\n });\n\n it('can check for inflight timers (trailing)', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(debouncer.isPending).toBe(false);\n expect(debouncer.call('hello')).toBeUndefined();\n expect(debouncer.isPending).toBe(true);\n\n await sleep(1);\n\n expect(debouncer.isPending).toBe(true);\n\n await sleep(32);\n\n expect(debouncer.isPending).toBe(false);\n });\n\n it('can check for inflight timers (leading)', async () => {\n const debouncer = debounce(identity(), { timing: 'leading', waitMs: 32 });\n\n expect(debouncer.isPending).toBe(false);\n expect(debouncer.call('hello')).toBe('hello');\n expect(debouncer.isPending).toBe(true);\n\n await sleep(1);\n\n expect(debouncer.isPending).toBe(true);\n\n await sleep(32);\n\n expect(debouncer.isPending).toBe(false);\n });\n\n it('can flush before a cool-down', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(debouncer.flush()).toBeUndefined();\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(32);\n\n expect(debouncer.call('world')).toBe('hello');\n });\n\n it('can flush during a cool-down', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(1);\n\n expect(debouncer.call('world')).toBeUndefined();\n\n await sleep(1);\n\n expect(debouncer.flush()).toBe('world');\n });\n\n it('can flush after a cool-down', async () => {\n const debouncer = debounce(identity(), { waitMs: 32 });\n\n expect(debouncer.call('hello')).toBeUndefined();\n\n await sleep(32);\n\n expect(debouncer.flush()).toBe('hello');\n });\n});\n\ndescribe('errors', () => {\n it('prevents maxWaitMs to be less then waitMs', () => {\n expect(() => debounce(identity(), { waitMs: 32, maxWaitMs: 16 })).toThrowError(\n 'debounce: maxWaitMs (16) cannot be less than waitMs (32)',\n );\n });\n});\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./dist-
|
|
1
|
+
const e=require(`./dist-8XtUY3ad.cjs`),t=require(`./do-nothing.cjs`),n=require(`./from-keys.cjs`),r=require(`./funnel.cjs`);function i(e,t,n=0){let i=r.funnel(n=>{e(n.map(({params:e})=>e)).then(e=>{for(let[r,{params:i,promiseCallbacks:[a]}]of n.entries())a(t(e,r,...i))}).catch(e=>{for(let{promiseCallbacks:[,t]}of n)t(e)})},{reducer:(e,t)=>[...e??[],t],maxBurstDurationMs:n,triggerAt:`end`});return{...i,call:async(...e)=>new Promise((...t)=>{i.call({promiseCallbacks:t,params:e})})}}e.i(`showcase`,()=>{e.a(`results as object`,async()=>{let t=e.r.fn(async e=>n.fromKeys(e,e=>e.length)),r=i(async e=>await t(e.flat()),(e,t,n)=>e[n]),a=[r.call(`short`),r.call(`medium`),r.call(`loooooooooooooong`)];e.n(t).toHaveBeenCalledTimes(0);let[o,s,c]=await Promise.all(a);e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`short`,`medium`,`loooooooooooooong`]),e.n(t).toHaveLastResolvedWith({short:5,medium:6,loooooooooooooong:17}),e.n(o).toBe(5),e.n(s).toBe(6),e.n(c).toBe(17)}),e.a(`results as array`,async()=>{let t=e.r.fn(async e=>e.map(e=>e.length)),n=i(async e=>await t(e.flat()),(e,t)=>e[t]),r=[n.call(`short`),n.call(`medium`),n.call(`loooooooooooooong`)];e.n(t).toHaveBeenCalledTimes(0);let[a,o,s]=await Promise.all(r);e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`short`,`medium`,`loooooooooooooong`]),e.n(t).toHaveLastResolvedWith([5,6,17]),e.n(a).toBe(5),e.n(o).toBe(6),e.n(s).toBe(17)}),e.a(`error handling`,async()=>{let n=i(async e=>{if(e.length>1)throw Error(`Batch too big! ${JSON.stringify(e)}`)},t.doNothing());await e.n(n.call(`a`)).resolves.toBeUndefined(),await e.n(Promise.all([n.call(`hello`),n.call(`world`)])).rejects.toThrowError(`Batch too big! [["hello"],["world"]]`)})});
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{doNothing as e}from"./do-nothing.js";import{fromKeys as t}from"./from-keys.js";import{a as n,i as r,n as i,r as a}from"./dist-Bd1vawFi.js";import{funnel as o}from"./funnel.js";function s(e,t,n=0){let r=o(n=>{e(n.map(({params:e})=>e)).then(e=>{for(let[r,{params:i,promiseCallbacks:[a]}]of n.entries())a(t(e,r,...i))}).catch(e=>{for(let{promiseCallbacks:[,t]}of n)t(e)})},{reducer:(e,t)=>[...e??[],t],maxBurstDurationMs:n,triggerAt:`end`});return{...r,call:async(...e)=>new Promise((...t)=>{r.call({promiseCallbacks:t,params:e})})}}r(`showcase`,()=>{n(`results as object`,async()=>{let e=a.fn(async e=>t(e,e=>e.length)),n=s(async t=>await e(t.flat()),(e,t,n)=>e[n]),r=[n.call(`short`),n.call(`medium`),n.call(`loooooooooooooong`)];i(e).toHaveBeenCalledTimes(0);let[o,c,l]=await Promise.all(r);i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`short`,`medium`,`loooooooooooooong`]),i(e).toHaveLastResolvedWith({short:5,medium:6,loooooooooooooong:17}),i(o).toBe(5),i(c).toBe(6),i(l).toBe(17)}),n(`results as array`,async()=>{let e=a.fn(async e=>e.map(e=>e.length)),t=s(async t=>await e(t.flat()),(e,t)=>e[t]),n=[t.call(`short`),t.call(`medium`),t.call(`loooooooooooooong`)];i(e).toHaveBeenCalledTimes(0);let[r,o,c]=await Promise.all(n);i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`short`,`medium`,`loooooooooooooong`]),i(e).toHaveLastResolvedWith([5,6,17]),i(r).toBe(5),i(o).toBe(6),i(c).toBe(17)}),n(`error handling`,async()=>{let t=s(async e=>{if(e.length>1)throw Error(`Batch too big! ${JSON.stringify(e)}`)},e());await i(t.call(`a`)).resolves.toBeUndefined(),await i(Promise.all([t.call(`hello`),t.call(`world`)])).rejects.toThrowError(`Batch too big! [["hello"],["world"]]`)})});
|
|
2
2
|
//# sourceMappingURL=funnel.reference-batch.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"funnel.reference-batch.test.js","names":["expect"],"sources":["../src/funnel.reference-batch.test.ts"],"sourcesContent":["/* eslint-disable ts/explicit-function-return-type, ts/no-explicit-any --\n * These aren't useful for a reference implementation!\n */\n\nimport { describe, expect, it, vi } from 'vitest';\nimport { doNothing } from './do-nothing';\nimport { fromKeys } from './from-keys';\nimport { funnel } from './funnel';\n\ninterface BatchRequest<Params extends Array<any>, Result> {\n readonly params: Params;\n readonly promiseCallbacks: Readonly<\n Parameters<ConstructorParameters<typeof Promise<Result>>[0]>\n >;\n}\n\n/**\n * A reference implementation for an async batching utility function built on\n * top of the `funnel` general purpose execution utility function. It will\n * accumulate all params passed to an async `call` method within the defined\n * burst duration and then use an async executor to process them in one\n * invocation. It then extracts an individual result for each call which is\n * used to resolve the original call.\n *\n * This allows synchronizing multiple async calls while keeping each call site\n * isolated from the rest (for example, as react components).\n *\n * This reference implementation can be copied into your project as-is, or you\n * can use it as the basis for a more complex implementation with additional\n * features.\n *\n * @param callback - The main function that takes a batch and returns an\n * aggregated response. The typing for the it's parameters will derive the\n * typing for the extractor and the `call` method.\n * @param extractor - A function that takes the aggregated response and extracts\n * from it the result for each individual call. The function is called with both\n * the index in the batch, and the params passed to the `call` method. This\n * allows handling APIs that return batch results as both objects and arrays.\n * @param maxBurstDurationMs - The period of time where the batcher would\n * collect params before triggering the executor. When set to 0 the batcher\n * does not incur any additional delays to the execution and would trigger at\n * the next tick, just like a regular async function would. This is also the\n * default value.\n * @returns A Funnel object with the `call` method augmented to support async\n * response.\n */\nfunction batch<Params extends Array<any>, BatchResponse, Result>(\n callback: (requests: ReadonlyArray<Params>) => Promise<BatchResponse>,\n extractor: (\n response: BatchResponse,\n index: number,\n ...params: Params\n ) => Result,\n maxBurstDurationMs = 0,\n) {\n const batchFunnel = funnel(\n // Passes all accumulated parameters to the callback and then extracts the response for each individual call via the extractor.\n (requests: ReadonlyArray<BatchRequest<Params, Result>>) => {\n callback(requests.map(({ params }) => params))\n // On success we iterate again over all calls and allow the extractor to pull a value out of the aggregated response for each one.\n .then((response) => {\n for (const [\n index,\n {\n params,\n promiseCallbacks: [resolve],\n },\n ] of requests.entries()) {\n const result = extractor(response, index, ...params);\n resolve(result);\n }\n })\n\n // On error we simply pass the error along to all reject callbacks.\n .catch((error) => {\n for (const {\n promiseCallbacks: [, reject],\n } of requests) {\n reject(error);\n }\n });\n },\n {\n // Reducer: Accumulates the parameters for each call, together with the promise executor callbacks needed to resolve or reject the call.\n reducer: (requests, request: BatchRequest<Params, Result>) => [\n ...(requests ?? []),\n request,\n ],\n maxBurstDurationMs,\n triggerAt: 'end',\n },\n );\n\n return {\n ...batchFunnel,\n\n call: async (...params: Params) =>\n new Promise<Result>((...promiseCallbacks) => {\n batchFunnel.call({ promiseCallbacks, params });\n }),\n };\n}\n\ndescribe('showcase', () => {\n it('results as object', async () => {\n const mockApi = vi.fn<\n (words: ReadonlyArray<string>) => Promise<Record<string, number>>\n
|
|
1
|
+
{"version":3,"file":"funnel.reference-batch.test.js","names":["expect"],"sources":["../src/funnel.reference-batch.test.ts"],"sourcesContent":["/* eslint-disable ts/explicit-function-return-type, ts/no-explicit-any --\n * These aren't useful for a reference implementation!\n */\n\nimport { describe, expect, it, vi } from 'vitest';\nimport { doNothing } from './do-nothing';\nimport { fromKeys } from './from-keys';\nimport { funnel } from './funnel';\n\ninterface BatchRequest<Params extends Array<any>, Result> {\n readonly params: Params;\n readonly promiseCallbacks: Readonly<\n Parameters<ConstructorParameters<typeof Promise<Result>>[0]>\n >;\n}\n\n/**\n * A reference implementation for an async batching utility function built on\n * top of the `funnel` general purpose execution utility function. It will\n * accumulate all params passed to an async `call` method within the defined\n * burst duration and then use an async executor to process them in one\n * invocation. It then extracts an individual result for each call which is\n * used to resolve the original call.\n *\n * This allows synchronizing multiple async calls while keeping each call site\n * isolated from the rest (for example, as react components).\n *\n * This reference implementation can be copied into your project as-is, or you\n * can use it as the basis for a more complex implementation with additional\n * features.\n *\n * @param callback - The main function that takes a batch and returns an\n * aggregated response. The typing for the it's parameters will derive the\n * typing for the extractor and the `call` method.\n * @param extractor - A function that takes the aggregated response and extracts\n * from it the result for each individual call. The function is called with both\n * the index in the batch, and the params passed to the `call` method. This\n * allows handling APIs that return batch results as both objects and arrays.\n * @param maxBurstDurationMs - The period of time where the batcher would\n * collect params before triggering the executor. When set to 0 the batcher\n * does not incur any additional delays to the execution and would trigger at\n * the next tick, just like a regular async function would. This is also the\n * default value.\n * @returns A Funnel object with the `call` method augmented to support async\n * response.\n */\nfunction batch<Params extends Array<any>, BatchResponse, Result>(\n callback: (requests: ReadonlyArray<Params>) => Promise<BatchResponse>,\n extractor: (\n response: BatchResponse,\n index: number,\n ...params: Params\n ) => Result,\n maxBurstDurationMs = 0,\n) {\n const batchFunnel = funnel(\n // Passes all accumulated parameters to the callback and then extracts the response for each individual call via the extractor.\n (requests: ReadonlyArray<BatchRequest<Params, Result>>) => {\n callback(requests.map(({ params }) => params))\n // On success we iterate again over all calls and allow the extractor to pull a value out of the aggregated response for each one.\n .then((response) => {\n for (const [\n index,\n {\n params,\n promiseCallbacks: [resolve],\n },\n ] of requests.entries()) {\n const result = extractor(response, index, ...params);\n resolve(result);\n }\n })\n\n // On error we simply pass the error along to all reject callbacks.\n .catch((error) => {\n for (const {\n promiseCallbacks: [, reject],\n } of requests) {\n reject(error);\n }\n });\n },\n {\n // Reducer: Accumulates the parameters for each call, together with the promise executor callbacks needed to resolve or reject the call.\n reducer: (requests, request: BatchRequest<Params, Result>) => [\n ...(requests ?? []),\n request,\n ],\n maxBurstDurationMs,\n triggerAt: 'end',\n },\n );\n\n return {\n ...batchFunnel,\n\n call: async (...params: Params) =>\n new Promise<Result>((...promiseCallbacks) => {\n batchFunnel.call({ promiseCallbacks, params });\n }),\n };\n}\n\ndescribe('showcase', () => {\n it('results as object', async () => {\n const mockApi = vi.fn<\n (words: ReadonlyArray<string>) => Promise<Record<string, number>>\n >(async (words) => fromKeys(words, (word) => word.length));\n\n const countLettersApi = batch(\n // We only need to type the `requests` param of the `executor` callback.\n // All other types are derived from it.\n async (requests: ReadonlyArray<[word: string]>) =>\n await mockApi(requests.flat()),\n (response, _, word) => response[word],\n );\n\n const prepared = [\n countLettersApi.call('short'),\n countLettersApi.call('medium'),\n countLettersApi.call('loooooooooooooong'),\n ];\n\n expect(mockApi).toHaveBeenCalledTimes(0);\n\n const [shortResult, mediumResult, longResult] = await Promise.all(prepared);\n\n expect(mockApi).toHaveBeenCalledTimes(1);\n expect(mockApi).toHaveBeenLastCalledWith([\n 'short',\n 'medium',\n 'loooooooooooooong',\n ]);\n expect(mockApi).toHaveLastResolvedWith({\n short: 5,\n medium: 6,\n loooooooooooooong: 17,\n });\n expect(shortResult).toBe(5);\n expect(mediumResult).toBe(6);\n expect(longResult).toBe(17);\n });\n\n it('results as array', async () => {\n const mockApi = vi.fn<\n (words: ReadonlyArray<string>) => Promise<ReadonlyArray<number>>\n >(async (words) => words.map((word) => word.length));\n\n const countLettersApi = batch(\n // We only need to type the `requests` param of the `executor` callback.\n // All other types are derived from it.\n async (requests: ReadonlyArray<[word: string]>) =>\n await mockApi(requests.flat()),\n (response, index) => response[index],\n );\n\n const prepared = [\n countLettersApi.call('short'),\n countLettersApi.call('medium'),\n countLettersApi.call('loooooooooooooong'),\n ];\n\n expect(mockApi).toHaveBeenCalledTimes(0);\n\n const [shortResult, mediumResult, longResult] = await Promise.all(prepared);\n\n expect(mockApi).toHaveBeenCalledTimes(1);\n expect(mockApi).toHaveBeenLastCalledWith([\n 'short',\n 'medium',\n 'loooooooooooooong',\n ]);\n expect(mockApi).toHaveLastResolvedWith([5, 6, 17]);\n expect(shortResult).toBe(5);\n expect(mediumResult).toBe(6);\n expect(longResult).toBe(17);\n });\n\n it('error handling', async () => {\n const failingApi = batch(\n // We only need to type the `requests` param of the `executor` callback.\n // All other types are derived from it.\n async (requests: ReadonlyArray<[id: string]>) => {\n if (requests.length > 1) {\n throw new Error(`Batch too big! ${JSON.stringify(requests)}`);\n }\n },\n doNothing(),\n );\n\n await expect(failingApi.call('a')).resolves.toBeUndefined();\n\n await expect(\n Promise.all([failingApi.call('hello'), failingApi.call('world')]),\n ).rejects.toThrowError('Batch too big! [[\"hello\"],[\"world\"]]');\n });\n});\n"],"mappings":"uLA8CA,SAAS,EACP,EACA,EAKA,EAAqB,EACrB,CACA,IAAM,EAAc,EAEjB,GAA0D,CACzD,EAAS,EAAS,KAAK,CAAE,YAAa,EAAO,CAAC,CAE3C,KAAM,GAAa,CAClB,IAAK,GAAM,CACT,EACA,CACE,SACA,iBAAkB,CAAC,OAElB,EAAS,SAAS,CAErB,EADe,EAAU,EAAU,EAAO,GAAG,EAAO,CACrC,EAEjB,CAGD,MAAO,GAAU,CAChB,IAAK,GAAM,CACT,iBAAkB,EAAG,MAClB,EACH,EAAO,EAAM,EAEf,EAEN,CAEE,SAAU,EAAU,IAA0C,CAC5D,GAAI,GAAY,EAAE,CAClB,EACD,CACD,qBACA,UAAW,MACZ,CACF,CAED,MAAO,CACL,GAAG,EAEH,KAAM,MAAO,GAAG,IACd,IAAI,SAAiB,GAAG,IAAqB,CAC3C,EAAY,KAAK,CAAE,mBAAkB,SAAQ,CAAC,EAC9C,CACL,CAGH,EAAS,eAAkB,CACzB,EAAG,oBAAqB,SAAY,CAClC,IAAM,EAAU,EAAG,GAEjB,KAAO,IAAU,EAAS,EAAQ,GAAS,EAAK,OAAO,CAAC,CAEpD,EAAkB,EAGtB,KAAO,IACL,MAAM,EAAQ,EAAS,MAAM,CAAC,EAC/B,EAAU,EAAG,IAAS,EAAS,GACjC,CAEK,EAAW,CACf,EAAgB,KAAK,QAAQ,CAC7B,EAAgB,KAAK,SAAS,CAC9B,EAAgB,KAAK,oBAAoB,CAC1C,CAED,EAAO,EAAQ,CAAC,sBAAsB,EAAE,CAExC,GAAM,CAAC,EAAa,EAAc,GAAc,MAAM,QAAQ,IAAI,EAAS,CAE3E,EAAO,EAAQ,CAAC,sBAAsB,EAAE,CACxC,EAAO,EAAQ,CAAC,yBAAyB,CACvC,QACA,SACA,oBACD,CAAC,CACF,EAAO,EAAQ,CAAC,uBAAuB,CACrC,MAAO,EACP,OAAQ,EACR,kBAAmB,GACpB,CAAC,CACF,EAAO,EAAY,CAAC,KAAK,EAAE,CAC3B,EAAO,EAAa,CAAC,KAAK,EAAE,CAC5B,EAAO,EAAW,CAAC,KAAK,GAAG,EAC3B,CAEF,EAAG,mBAAoB,SAAY,CACjC,IAAM,EAAU,EAAG,GAEjB,KAAO,IAAU,EAAM,IAAK,GAAS,EAAK,OAAO,CAAC,CAE9C,EAAkB,EAGtB,KAAO,IACL,MAAM,EAAQ,EAAS,MAAM,CAAC,EAC/B,EAAU,IAAU,EAAS,GAC/B,CAEK,EAAW,CACf,EAAgB,KAAK,QAAQ,CAC7B,EAAgB,KAAK,SAAS,CAC9B,EAAgB,KAAK,oBAAoB,CAC1C,CAED,EAAO,EAAQ,CAAC,sBAAsB,EAAE,CAExC,GAAM,CAAC,EAAa,EAAc,GAAc,MAAM,QAAQ,IAAI,EAAS,CAE3E,EAAO,EAAQ,CAAC,sBAAsB,EAAE,CACxC,EAAO,EAAQ,CAAC,yBAAyB,CACvC,QACA,SACA,oBACD,CAAC,CACF,EAAO,EAAQ,CAAC,uBAAuB,CAAC,EAAG,EAAG,GAAG,CAAC,CAClD,EAAO,EAAY,CAAC,KAAK,EAAE,CAC3B,EAAO,EAAa,CAAC,KAAK,EAAE,CAC5B,EAAO,EAAW,CAAC,KAAK,GAAG,EAC3B,CAEF,EAAG,iBAAkB,SAAY,CAC/B,IAAM,EAAa,EAGjB,KAAO,IAA0C,CAC/C,GAAI,EAAS,OAAS,EACpB,MAAU,MAAM,kBAAkB,KAAK,UAAU,EAAS,GAAG,EAGjE,GAAW,CACZ,CAED,MAAMA,EAAO,EAAW,KAAK,IAAI,CAAC,CAAC,SAAS,eAAe,CAE3D,MAAMA,EACJ,QAAQ,IAAI,CAAC,EAAW,KAAK,QAAQ,CAAE,EAAW,KAAK,QAAQ,CAAC,CAAC,CAClE,CAAC,QAAQ,aAAa,uCAAuC,EAC9D,EACF"}
|
package/dist/funnel.test-d.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./dist-
|
|
1
|
+
const e=require(`./dist-8XtUY3ad.cjs`),t=require(`./do-nothing.cjs`),n=require(`./funnel.cjs`);e.i(`'call' method args`,()=>{e.a(`no args`,()=>{(0,e.t.expectTypeOf)(n.funnel(t.doNothing(),{reducer:e=>`test`,triggerAt:`start`}).call).parameters.toEqualTypeOf()}),e.a(`non-optional args`,()=>{(0,e.t.expectTypeOf)(n.funnel(t.doNothing(),{reducer:(e,t,n,r)=>`test`,triggerAt:`start`}).call).parameters.toEqualTypeOf()}),e.a(`optional args`,()=>{(0,e.t.expectTypeOf)(n.funnel(t.doNothing(),{reducer:(e,t)=>`test`,triggerAt:`start`}).call).parameters.toEqualTypeOf()}),e.a(`rest args`,()=>{(0,e.t.expectTypeOf)(n.funnel(t.doNothing(),{reducer:(e,...t)=>`test`,triggerAt:`start`}).call).parameters.toEqualTypeOf()})}),e.i(`derive the reducer accumulator type from the executor param`,()=>{e.a(`simple types`,()=>{n.funnel(e=>{},{reducer:t=>((0,e.t.expectTypeOf)(t).toEqualTypeOf(),t),triggerAt:`start`})}),e.a(`arrays`,()=>{n.funnel(e=>{},{reducer:t=>((0,e.t.expectTypeOf)(t).toEqualTypeOf(),t),triggerAt:`start`})}),e.a(`objects`,()=>{n.funnel(e=>{},{reducer:t=>((0,e.t.expectTypeOf)(t).toEqualTypeOf(),t),triggerAt:`start`})})}),e.i(`prevent bad options`,()=>{e.a(`minGapMs cannot be the only option with timing: end`,()=>{n.funnel(t.doNothing(),{minGapMs:100}),n.funnel(t.doNothing(),{triggerAt:`end`,minGapMs:100}),n.funnel(t.doNothing(),{triggerAt:`start`,minGapMs:100}),n.funnel(t.doNothing(),{triggerAt:`both`,minGapMs:100})})});
|
package/dist/funnel.test-d.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{doNothing as e}from"./do-nothing.js";import{a as t,i as n,t as r}from"./dist-Bd1vawFi.js";import{funnel as i}from"./funnel.js";n(`'call' method args`,()=>{t(`no args`,()=>{r(i(e(),{reducer:e=>`test`,triggerAt:`start`}).call).parameters.toEqualTypeOf()}),t(`non-optional args`,()=>{r(i(e(),{reducer:(e,t,n,r)=>`test`,triggerAt:`start`}).call).parameters.toEqualTypeOf()}),t(`optional args`,()=>{r(i(e(),{reducer:(e,t)=>`test`,triggerAt:`start`}).call).parameters.toEqualTypeOf()}),t(`rest args`,()=>{r(i(e(),{reducer:(e,...t)=>`test`,triggerAt:`start`}).call).parameters.toEqualTypeOf()})}),n(`derive the reducer accumulator type from the executor param`,()=>{t(`simple types`,()=>{i(e=>{},{reducer:e=>(r(e).toEqualTypeOf(),e),triggerAt:`start`})}),t(`arrays`,()=>{i(e=>{},{reducer:e=>(r(e).toEqualTypeOf(),e),triggerAt:`start`})}),t(`objects`,()=>{i(e=>{},{reducer:e=>(r(e).toEqualTypeOf(),e),triggerAt:`start`})})}),n(`prevent bad options`,()=>{t(`minGapMs cannot be the only option with timing: end`,()=>{i(e(),{minGapMs:100}),i(e(),{triggerAt:`end`,minGapMs:100}),i(e(),{triggerAt:`start`,minGapMs:100}),i(e(),{triggerAt:`both`,minGapMs:100})})});
|
|
2
2
|
//# sourceMappingURL=funnel.test-d.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"funnel.test-d.js","names":[],"sources":["../src/funnel.test-d.ts"],"sourcesContent":["/* eslint-disable ts/no-unused-vars -- We just want to build types, we don't care about using the params... */\n\nimport { describe, expectTypeOf, it } from 'vitest';\nimport { doNothing } from './do-nothing';\nimport { funnel } from './funnel';\n\ndescribe('\\'call\\' method args', () => {\n it('no args', () => {\n const foo = funnel(doNothing(), {\n reducer: (_: 'test' | undefined) => 'test' as const,\n triggerAt: 'start',\n });\n\n expectTypeOf(foo.call).parameters.toEqualTypeOf<[]>();\n });\n\n it('non-optional args', () => {\n const foo = funnel(doNothing(), {\n // @ts-expect-error [ts(6133)] -- We want to use explicit names, not prefixed with _\n reducer: (_: 'test' | undefined, a: string, b: number, c: boolean) =>\n 'test' as const,\n\n triggerAt: 'start',\n });\n\n expectTypeOf(foo.call).parameters.toEqualTypeOf<\n [a: string, b: number, c: boolean]\n >();\n });\n\n it('optional args', () => {\n const foo = funnel(doNothing(), {\n // @ts-expect-error [ts(6133)] -- We want to use explicit names, not prefixed with _\n reducer: (_: 'test' | undefined, a?: string) => 'test' as const,\n triggerAt: 'start',\n });\n\n expectTypeOf(foo.call).parameters.toEqualTypeOf<[a?: string | undefined]>();\n });\n\n it('rest args', () => {\n const foo = funnel(doNothing(), {\n reducer:\n // @ts-expect-error [ts(6133)] -- We want to use explicit names, not prefixed with _\n (_: 'test' | undefined, ...as: Array<string>) => 'test' as const,\n\n triggerAt: 'start',\n });\n\n expectTypeOf(foo.call).parameters.toEqualTypeOf<Array<string>>();\n });\n});\n\ndescribe('derive the reducer accumulator type from the executor param', () => {\n it('simple types', () => {\n funnel(\n (_: number) => {\n // do nothing\n },\n {\n reducer: (reduced) => {\n expectTypeOf(reduced).toEqualTypeOf<number | undefined>();\n\n return reduced!;\n },\n triggerAt: 'start',\n },\n );\n });\n\n it('arrays', () => {\n funnel(\n (_: ReadonlyArray<number>) => {\n // do nothing,\n },\n {\n reducer: (reduced) => {\n expectTypeOf(reduced).toEqualTypeOf<\n ReadonlyArray<number> | undefined\n >();\n\n return reduced!;\n },\n triggerAt: 'start',\n },\n );\n });\n\n it('objects', () => {\n funnel(\n (_: { readonly a: number }) => {\n // do nothing\n },\n {\n reducer: (reduced) => {\n expectTypeOf(reduced).toEqualTypeOf<\n { readonly a: number } | undefined\n >();\n\n return reduced!;\n },\n triggerAt: 'start',\n },\n );\n });\n});\n\ndescribe('prevent bad options', () => {\n it('minGapMs cannot be the only option with timing: end', () => {\n funnel(\n doNothing(),\n // @ts-expect-error [ts(2345)] -- minGapMs cannot be set alone]\n { minGapMs: 100 },\n );\n\n funnel(\n doNothing(),\n // @ts-expect-error [ts(2345)] -- minGapMs cannot be set alone]\n { triggerAt: 'end', minGapMs: 100 },\n );\n\n // But it works with \"start\" and \"both\"\n\n funnel(doNothing(), { triggerAt: 'start', minGapMs: 100 });\n funnel(doNothing(), { triggerAt: 'both', minGapMs: 100 });\n });\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"funnel.test-d.js","names":[],"sources":["../src/funnel.test-d.ts"],"sourcesContent":["/* eslint-disable ts/no-unused-vars -- We just want to build types, we don't care about using the params... */\n\nimport { describe, expectTypeOf, it } from 'vitest';\nimport { doNothing } from './do-nothing';\nimport { funnel } from './funnel';\n\ndescribe('\\'call\\' method args', () => {\n it('no args', () => {\n const foo = funnel(doNothing(), {\n reducer: (_: 'test' | undefined) => 'test' as const,\n triggerAt: 'start',\n });\n\n expectTypeOf(foo.call).parameters.toEqualTypeOf<[]>();\n });\n\n it('non-optional args', () => {\n const foo = funnel(doNothing(), {\n // @ts-expect-error [ts(6133)] -- We want to use explicit names, not prefixed with _\n reducer: (_: 'test' | undefined, a: string, b: number, c: boolean) =>\n 'test' as const,\n\n triggerAt: 'start',\n });\n\n expectTypeOf(foo.call).parameters.toEqualTypeOf<\n [a: string, b: number, c: boolean]\n >();\n });\n\n it('optional args', () => {\n const foo = funnel(doNothing(), {\n // @ts-expect-error [ts(6133)] -- We want to use explicit names, not prefixed with _\n reducer: (_: 'test' | undefined, a?: string) => 'test' as const,\n triggerAt: 'start',\n });\n\n expectTypeOf(foo.call).parameters.toEqualTypeOf<[a?: string | undefined]>();\n });\n\n it('rest args', () => {\n const foo = funnel(doNothing(), {\n reducer:\n // @ts-expect-error [ts(6133)] -- We want to use explicit names, not prefixed with _\n (_: 'test' | undefined, ...as: Array<string>) => 'test' as const,\n\n triggerAt: 'start',\n });\n\n expectTypeOf(foo.call).parameters.toEqualTypeOf<Array<string>>();\n });\n});\n\ndescribe('derive the reducer accumulator type from the executor param', () => {\n it('simple types', () => {\n funnel(\n (_: number) => {\n // do nothing\n },\n {\n reducer: (reduced) => {\n expectTypeOf(reduced).toEqualTypeOf<number | undefined>();\n\n return reduced!;\n },\n triggerAt: 'start',\n },\n );\n });\n\n it('arrays', () => {\n funnel(\n (_: ReadonlyArray<number>) => {\n // do nothing,\n },\n {\n reducer: (reduced) => {\n expectTypeOf(reduced).toEqualTypeOf<\n ReadonlyArray<number> | undefined\n >();\n\n return reduced!;\n },\n triggerAt: 'start',\n },\n );\n });\n\n it('objects', () => {\n funnel(\n (_: { readonly a: number }) => {\n // do nothing\n },\n {\n reducer: (reduced) => {\n expectTypeOf(reduced).toEqualTypeOf<\n { readonly a: number } | undefined\n >();\n\n return reduced!;\n },\n triggerAt: 'start',\n },\n );\n });\n});\n\ndescribe('prevent bad options', () => {\n it('minGapMs cannot be the only option with timing: end', () => {\n funnel(\n doNothing(),\n // @ts-expect-error [ts(2345)] -- minGapMs cannot be set alone]\n { minGapMs: 100 },\n );\n\n funnel(\n doNothing(),\n // @ts-expect-error [ts(2345)] -- minGapMs cannot be set alone]\n { triggerAt: 'end', minGapMs: 100 },\n );\n\n // But it works with \"start\" and \"both\"\n\n funnel(doNothing(), { triggerAt: 'start', minGapMs: 100 });\n funnel(doNothing(), { triggerAt: 'both', minGapMs: 100 });\n });\n});\n"],"mappings":"sIAMA,EAAS,yBAA8B,CACrC,EAAG,cAAiB,CAMlB,EALY,EAAO,GAAW,CAAE,CAC9B,QAAU,GAA0B,OACpC,UAAW,QACZ,CAAC,CAEe,KAAK,CAAC,WAAW,eAAmB,EACrD,CAEF,EAAG,wBAA2B,CAS5B,EARY,EAAO,GAAW,CAAE,CAE9B,SAAU,EAAuB,EAAW,EAAW,IACrD,OAEF,UAAW,QACZ,CAAC,CAEe,KAAK,CAAC,WAAW,eAE/B,EACH,CAEF,EAAG,oBAAuB,CAOxB,EANY,EAAO,GAAW,CAAE,CAE9B,SAAU,EAAuB,IAAe,OAChD,UAAW,QACZ,CAAC,CAEe,KAAK,CAAC,WAAW,eAAyC,EAC3E,CAEF,EAAG,gBAAmB,CASpB,EARY,EAAO,GAAW,CAAE,CAC9B,SAEG,EAAuB,GAAG,IAAsB,OAEnD,UAAW,QACZ,CAAC,CAEe,KAAK,CAAC,WAAW,eAA8B,EAChE,EACF,CAEF,EAAS,kEAAqE,CAC5E,EAAG,mBAAsB,CACvB,EACG,GAAc,GAGf,CACE,QAAU,IACR,EAAa,EAAQ,CAAC,eAAmC,CAElD,GAET,UAAW,QACZ,CACF,EACD,CAEF,EAAG,aAAgB,CACjB,EACG,GAA6B,GAG9B,CACE,QAAU,IACR,EAAa,EAAQ,CAAC,eAEnB,CAEI,GAET,UAAW,QACZ,CACF,EACD,CAEF,EAAG,cAAiB,CAClB,EACG,GAA8B,GAG/B,CACE,QAAU,IACR,EAAa,EAAQ,CAAC,eAEnB,CAEI,GAET,UAAW,QACZ,CACF,EACD,EACF,CAEF,EAAS,0BAA6B,CACpC,EAAG,0DAA6D,CAC9D,EACE,GAAW,CAEX,CAAE,SAAU,IAAK,CAClB,CAED,EACE,GAAW,CAEX,CAAE,UAAW,MAAO,SAAU,IAAK,CACpC,CAID,EAAO,GAAW,CAAE,CAAE,UAAW,QAAS,SAAU,IAAK,CAAC,CAC1D,EAAO,GAAW,CAAE,CAAE,UAAW,OAAQ,SAAU,IAAK,CAAC,EACzD,EACF"}
|
package/dist/funnel.test.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./dist-3WF0YzcR.cjs`),t=require(`./constant-BuIJ9GIn.cjs`),n=require(`./do-nothing-Cc1faYu6.cjs`),r=require(`./funnel-CL-QFpGk.cjs`),i=require(`./sleep-1rGV3wAg.cjs`),a=16;function o(e,t){return e===void 0?[t]:[...e,t]}e.describe(`reducer behavior`,()=>{e.it(`passes the reduced arg to the executor`,()=>{let n=e.vi.fn();r.funnel(n,{reducer:t.constant(`hello world`),triggerAt:`start`,minQuietPeriodMs:16}).call(),e.globalExpect(n).toHaveBeenCalledTimes(1),e.globalExpect(n).toHaveBeenLastCalledWith(`hello world`)}),e.it(`reduces call args`,async()=>{let t=e.vi.fn(e=>{}),n=r.funnel(t,{reducer:(e,t)=>(e??0)+t,minQuietPeriodMs:32,triggerAt:`end`});n.call(1),n.call(2),n.call(3),await i.sleep(16),n.call(4),n.call(5),n.call(6),await i.sleep(32),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith(21)}),e.it(`does not invoke if reduceArgs returns undefined`,async()=>{let n=e.vi.fn();r.funnel(n,{reducer:t.constant(void 0),triggerAt:`end`,minQuietPeriodMs:16}).call(),await i.sleep(32),e.globalExpect(n).toHaveBeenCalledTimes(0)}),e.it(`supports multiple arguments`,()=>{let t=e.vi.fn();r.funnel(t,{reducer:(e,t,n,r)=>[e,t,n,r],triggerAt:`start`,minQuietPeriodMs:16}).call(1,`a`,!0),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([void 0,1,`a`,!0])}),e.it(`reducer isn't called again when 'invokedAt: start'`,async()=>{let t=e.vi.fn(o),a=r.funnel(n.doNothing(),{reducer:t,triggerAt:`start`,minQuietPeriodMs:16});a.call(`a`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith(void 0,`a`),a.call(`b`),a.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(32),e.globalExpect(t).toHaveBeenCalledTimes(1)})}),e.describe(`non-trivial (>0ms) timer duration`,()=>{e.describe(`delay timer`,()=>{e.it(`invokedAt: start`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`,minGapMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(1),n.call(`d`),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`d`])}),e.it(`invokedAt: both`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(2),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(3),e.globalExpect(t).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),e.it(`invocations in the middle of a window`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(.75*16),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(.75*16),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])})}),e.describe(`burst timer`,()=>{e.it(`invokedAt: start`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(1),n.call(`d`),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`d`])}),e.it(`invokedAt: both`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(3),e.globalExpect(t).toHaveBeenLastCalledWith([`d`]),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(4),e.globalExpect(t).toHaveBeenLastCalledWith([`e`,`f`])}),e.it(`invokedAt: end`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(0),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`,`b`,`c`]),n.call(`e`),n.call(`f`),n.call(`g`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`e`,`f`,`g`])}),e.it(`invocations in the middle of a window`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(0),await i.sleep(.9*16),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(0),await i.sleep(.1*16),e.globalExpect(t).toHaveBeenCalledTimes(0),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`,`b`,`c`,`d`,`e`,`f`])}),e.it(`maxBurstDurationMs limits the burst duration`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,minQuietPeriodMs:16,maxBurstDurationMs:32,triggerAt:`end`});n.call(`a`),await i.sleep(.75*16),n.call(`b`),await i.sleep(.75*16),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(0),await i.sleep(.75*16),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`,`b`,`c`])})}),e.describe(`both timers`,()=>{e.it(`delay is longer than burst`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,minGapMs:32,minQuietPeriodMs:16,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),e.it(`burst is longer than delay`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,minGapMs:16,minQuietPeriodMs:32,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),e.it(`burst and delay are equal`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,minGapMs:16,minQuietPeriodMs:16,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`,`c`]),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(3),e.globalExpect(t).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),e.it(`delay and maxBurstDurationMs are equal`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,minGapMs:16,minQuietPeriodMs:32,maxBurstDurationMs:16,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`,`c`]),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(3),e.globalExpect(t).toHaveBeenLastCalledWith([`d`,`e`,`f`])})})}),e.describe(`immediate (===0) timer durations`,()=>{e.describe(`delay timer`,()=>{e.it(`invokedAt: start`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`,minGapMs:0});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`d`]),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(2)}),e.it(`invokedAt: both`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:0});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`,`c`]),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(3),e.globalExpect(t).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),e.it(`with a non-trivial burst timer`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:16});n.call(`a`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),n.call(`b`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`])})}),e.describe(`burst timer`,()=>{e.it(`invokedAt: start`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`d`]),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(2)}),e.it(`invokedAt: both`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(3),e.globalExpect(t).toHaveBeenLastCalledWith([`d`]),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(4),e.globalExpect(t).toHaveBeenLastCalledWith([`e`,`f`])}),e.it(`invokedAt: end`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(0),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`,`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),e.it(`with a non-trivial delay timer`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:16,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`])}),e.it(`burst timer with non-trivial maxBurstDuration`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,minQuietPeriodMs:0,maxBurstDurationMs:16,triggerAt:`end`});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(0),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`,`b`,`c`])})}),e.it(`both timers`,async()=>{let t=e.vi.fn();r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:0}).call(`a`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(1)}),e.it(`maxBurstDurationMs = 0 limits the burst immediately`,async()=>{let t=e.vi.fn();r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:16,maxBurstDurationMs:0}).call(`a`),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`])}),e.it(`all timeouts zero`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:0,maxBurstDurationMs:0});n.call(`a`),n.call(`b`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`])})}),e.describe(`default minQuietPeriodMs === 0 when minGapMs is not defined`,()=>{e.it(`invokedAt: start`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`});n.call(`a`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),n.call(`b`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(1),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`c`])}),e.it(`invokedAt: both`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`});n.call(`a`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),n.call(`b`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(0),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`]),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(3),e.globalExpect(t).toHaveBeenLastCalledWith([`c`])})}),e.describe(`utility functions`,()=>{e.describe(`flush`,()=>{e.it(`flush triggers an immediate invocation`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),n.flush(),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`,`b`,`c`]),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(1)}),e.it(`flush during active burst`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:32});n.call(`a`),n.call(`b`),n.call(`c`),await i.sleep(16),n.flush(),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`,`b`,`c`]),await i.sleep(32),e.globalExpect(t).toHaveBeenCalledTimes(1)})}),e.describe(`cancel`,()=>{e.it(`cancel prevents invocation`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),n.cancel(),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(0)}),e.it(`cancel during delay period`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`,minGapMs:32});n.call(`a`),n.call(`b`),await i.sleep(16),n.cancel(),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(1)})}),e.describe(`isIdle`,()=>{e.it(`isIdle reflects the funnel's state`,()=>{let t=r.funnel(e.vi.fn(),{reducer:o,triggerAt:`end`,minQuietPeriodMs:16});e.globalExpect(t.isIdle).toBe(!0),t.call(`a`),e.globalExpect(t.isIdle).toBe(!1),t.cancel(),e.globalExpect(t.isIdle).toBe(!0)}),e.it(`isIdle works when burst duration is 0`,async()=>{let t=r.funnel(e.vi.fn(),{reducer:o,triggerAt:`end`,minQuietPeriodMs:0});e.globalExpect(t.isIdle).toBe(!0),t.call(`a`),t.call(`b`),t.call(`c`),e.globalExpect(t.isIdle).toBe(!1),await i.sleep(0),e.globalExpect(t.isIdle).toBe(!0)})})}),e.describe(`edge-cases`,()=>{e.it(`bursts that start late don't prevent delayed invocations`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minQuietPeriodMs:16,minGapMs:32});n.call(`a`),n.call(`b`),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(1.5*16),e.globalExpect(t).toHaveBeenCalledTimes(1),n.call(`d`),n.call(`e`),n.call(`f`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(.5*16),e.globalExpect(t).toHaveBeenCalledTimes(2),e.globalExpect(t).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),e.it(`delay timeouts don't cause an invocation in the middle of bursts`,async()=>{let t=e.vi.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minQuietPeriodMs:32,minGapMs:16});n.call(`a`),e.globalExpect(t).toHaveBeenCalledTimes(1),e.globalExpect(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),n.call(`b`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(16),n.call(`c`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(16),n.call(`d`),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.globalExpect(t).toHaveBeenCalledTimes(2)})});
|
|
1
|
+
const e=require(`./dist-8XtUY3ad.cjs`),t=require(`./constant.cjs`),n=require(`./do-nothing.cjs`),r=require(`./funnel.cjs`),i=require(`./sleep.cjs`),a=16;function o(e,t){return e===void 0?[t]:[...e,t]}e.i(`reducer behavior`,()=>{e.a(`passes the reduced arg to the executor`,()=>{let n=e.r.fn();r.funnel(n,{reducer:t.constant(`hello world`),triggerAt:`start`,minQuietPeriodMs:16}).call(),e.n(n).toHaveBeenCalledTimes(1),e.n(n).toHaveBeenLastCalledWith(`hello world`)}),e.a(`reduces call args`,async()=>{let t=e.r.fn(e=>{}),n=r.funnel(t,{reducer:(e,t)=>(e??0)+t,minQuietPeriodMs:32,triggerAt:`end`});n.call(1),n.call(2),n.call(3),await i.sleep(16),n.call(4),n.call(5),n.call(6),await i.sleep(32),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith(21)}),e.a(`does not invoke if reduceArgs returns undefined`,async()=>{let n=e.r.fn();r.funnel(n,{reducer:t.constant(void 0),triggerAt:`end`,minQuietPeriodMs:16}).call(),await i.sleep(32),e.n(n).toHaveBeenCalledTimes(0)}),e.a(`supports multiple arguments`,()=>{let t=e.r.fn();r.funnel(t,{reducer:(e,t,n,r)=>[e,t,n,r],triggerAt:`start`,minQuietPeriodMs:16}).call(1,`a`,!0),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([void 0,1,`a`,!0])}),e.a(`reducer isn't called again when 'invokedAt: start'`,async()=>{let t=e.r.fn(o),a=r.funnel(n.doNothing(),{reducer:t,triggerAt:`start`,minQuietPeriodMs:16});a.call(`a`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith(void 0,`a`),a.call(`b`),a.call(`c`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(32),e.n(t).toHaveBeenCalledTimes(1)})}),e.i(`non-trivial (>0ms) timer duration`,()=>{e.i(`delay timer`,()=>{e.a(`invokedAt: start`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`,minGapMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(1),n.call(`d`),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`d`])}),e.a(`invokedAt: both`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(2),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(3),e.n(t).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),e.a(`invocations in the middle of a window`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(.75*16),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(.75*16),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])})}),e.i(`burst timer`,()=>{e.a(`invokedAt: start`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(1),n.call(`d`),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`d`])}),e.a(`invokedAt: both`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(3),e.n(t).toHaveBeenLastCalledWith([`d`]),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(4),e.n(t).toHaveBeenLastCalledWith([`e`,`f`])}),e.a(`invokedAt: end`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(0),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`,`b`,`c`]),n.call(`e`),n.call(`f`),n.call(`g`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`e`,`f`,`g`])}),e.a(`invocations in the middle of a window`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(0),await i.sleep(.9*16),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(0),await i.sleep(.1*16),e.n(t).toHaveBeenCalledTimes(0),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`,`b`,`c`,`d`,`e`,`f`])}),e.a(`maxBurstDurationMs limits the burst duration`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,minQuietPeriodMs:16,maxBurstDurationMs:32,triggerAt:`end`});n.call(`a`),await i.sleep(.75*16),n.call(`b`),await i.sleep(.75*16),n.call(`c`),e.n(t).toHaveBeenCalledTimes(0),await i.sleep(.75*16),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`,`b`,`c`])})}),e.i(`both timers`,()=>{e.a(`delay is longer than burst`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,minGapMs:32,minQuietPeriodMs:16,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),e.a(`burst is longer than delay`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,minGapMs:16,minQuietPeriodMs:32,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),e.a(`burst and delay are equal`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,minGapMs:16,minQuietPeriodMs:16,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`,`c`]),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(3),e.n(t).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),e.a(`delay and maxBurstDurationMs are equal`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,minGapMs:16,minQuietPeriodMs:32,maxBurstDurationMs:16,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`,`c`]),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(3),e.n(t).toHaveBeenLastCalledWith([`d`,`e`,`f`])})})}),e.i(`immediate (===0) timer durations`,()=>{e.i(`delay timer`,()=>{e.a(`invokedAt: start`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`,minGapMs:0});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`d`]),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(2)}),e.a(`invokedAt: both`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:0});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`,`c`]),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(3),e.n(t).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),e.a(`with a non-trivial burst timer`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:16});n.call(`a`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),n.call(`b`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`])})}),e.i(`burst timer`,()=>{e.a(`invokedAt: start`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`d`]),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(2)}),e.a(`invokedAt: both`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(3),e.n(t).toHaveBeenLastCalledWith([`d`]),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(4),e.n(t).toHaveBeenLastCalledWith([`e`,`f`])}),e.a(`invokedAt: end`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(0),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`,`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),e.a(`with a non-trivial delay timer`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:16,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`])}),e.a(`burst timer with non-trivial maxBurstDuration`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,minQuietPeriodMs:0,maxBurstDurationMs:16,triggerAt:`end`});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(0),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`,`b`,`c`])})}),e.a(`both timers`,async()=>{let t=e.r.fn();r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:0}).call(`a`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(1)}),e.a(`maxBurstDurationMs = 0 limits the burst immediately`,async()=>{let t=e.r.fn();r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:16,maxBurstDurationMs:0}).call(`a`),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`])}),e.a(`all timeouts zero`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:0,maxBurstDurationMs:0});n.call(`a`),n.call(`b`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`])})}),e.i(`default minQuietPeriodMs === 0 when minGapMs is not defined`,()=>{e.a(`invokedAt: start`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`});n.call(`a`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),n.call(`b`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(1),n.call(`c`),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`c`])}),e.a(`invokedAt: both`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`});n.call(`a`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),n.call(`b`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(0),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`]),n.call(`c`),e.n(t).toHaveBeenCalledTimes(3),e.n(t).toHaveBeenLastCalledWith([`c`])})}),e.i(`utility functions`,()=>{e.i(`flush`,()=>{e.a(`flush triggers an immediate invocation`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),n.flush(),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`,`b`,`c`]),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(1)}),e.a(`flush during active burst`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:32});n.call(`a`),n.call(`b`),n.call(`c`),await i.sleep(16),n.flush(),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`,`b`,`c`]),await i.sleep(32),e.n(t).toHaveBeenCalledTimes(1)})}),e.i(`cancel`,()=>{e.a(`cancel prevents invocation`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),n.cancel(),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(0)}),e.a(`cancel during delay period`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`start`,minGapMs:32});n.call(`a`),n.call(`b`),await i.sleep(16),n.cancel(),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(1)})}),e.i(`isIdle`,()=>{e.a(`isIdle reflects the funnel's state`,()=>{let t=r.funnel(e.r.fn(),{reducer:o,triggerAt:`end`,minQuietPeriodMs:16});e.n(t.isIdle).toBe(!0),t.call(`a`),e.n(t.isIdle).toBe(!1),t.cancel(),e.n(t.isIdle).toBe(!0)}),e.a(`isIdle works when burst duration is 0`,async()=>{let t=r.funnel(e.r.fn(),{reducer:o,triggerAt:`end`,minQuietPeriodMs:0});e.n(t.isIdle).toBe(!0),t.call(`a`),t.call(`b`),t.call(`c`),e.n(t.isIdle).toBe(!1),await i.sleep(0),e.n(t.isIdle).toBe(!0)})})}),e.i(`edge-cases`,()=>{e.a(`bursts that start late don't prevent delayed invocations`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minQuietPeriodMs:16,minGapMs:32});n.call(`a`),n.call(`b`),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(1.5*16),e.n(t).toHaveBeenCalledTimes(1),n.call(`d`),n.call(`e`),n.call(`f`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(.5*16),e.n(t).toHaveBeenCalledTimes(2),e.n(t).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),e.a(`delay timeouts don't cause an invocation in the middle of bursts`,async()=>{let t=e.r.fn(),n=r.funnel(t,{reducer:o,triggerAt:`both`,minQuietPeriodMs:32,minGapMs:16});n.call(`a`),e.n(t).toHaveBeenCalledTimes(1),e.n(t).toHaveBeenLastCalledWith([`a`]),await i.sleep(16),n.call(`b`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(16),n.call(`c`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(16),n.call(`d`),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(1),await i.sleep(16),e.n(t).toHaveBeenCalledTimes(2)})});
|
package/dist/funnel.test.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{describe as e,globalExpect as t,it as n,vi as r}from"./dist-C2nNPffG.js";import{constant as i}from"./constant-DrpDXHc7.js";import{doNothing as a}from"./do-nothing-Be29JGDG.js";import{funnel as o}from"./funnel-CEbURcmp.js";import{sleep as s}from"./sleep-DvzRMgY-.js";function c(e,t){return e===void 0?[t]:[...e,t]}e(`reducer behavior`,()=>{n(`passes the reduced arg to the executor`,()=>{let e=r.fn();o(e,{reducer:i(`hello world`),triggerAt:`start`,minQuietPeriodMs:16}).call(),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith(`hello world`)}),n(`reduces call args`,async()=>{let e=r.fn(e=>{}),n=o(e,{reducer:(e,t)=>(e??0)+t,minQuietPeriodMs:32,triggerAt:`end`});n.call(1),n.call(2),n.call(3),await s(16),n.call(4),n.call(5),n.call(6),await s(32),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith(21)}),n(`does not invoke if reduceArgs returns undefined`,async()=>{let e=r.fn();o(e,{reducer:i(void 0),triggerAt:`end`,minQuietPeriodMs:16}).call(),await s(32),t(e).toHaveBeenCalledTimes(0)}),n(`supports multiple arguments`,()=>{let e=r.fn();o(e,{reducer:(e,t,n,r)=>[e,t,n,r],triggerAt:`start`,minQuietPeriodMs:16}).call(1,`a`,!0),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([void 0,1,`a`,!0])}),n(`reducer isn't called again when 'invokedAt: start'`,async()=>{let e=r.fn(c),n=o(a(),{reducer:e,triggerAt:`start`,minQuietPeriodMs:16});n.call(`a`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith(void 0,`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),await s(32),t(e).toHaveBeenCalledTimes(1)})}),e(`non-trivial (>0ms) timer duration`,()=>{e(`delay timer`,()=>{n(`invokedAt: start`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`start`,minGapMs:16});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(16),t(e).toHaveBeenCalledTimes(1),n.call(`d`),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`d`])}),n(`invokedAt: both`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`,minGapMs:16});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(16),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(2),await s(16),t(e).toHaveBeenCalledTimes(3),t(e).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),n(`invocations in the middle of a window`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`,minGapMs:16});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(.75*16),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(1),await s(.75*16),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])})}),e(`burst timer`,()=>{n(`invokedAt: start`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`start`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(16),t(e).toHaveBeenCalledTimes(1),n.call(`d`),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`d`])}),n(`invokedAt: both`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(16),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(3),t(e).toHaveBeenLastCalledWith([`d`]),await s(16),t(e).toHaveBeenCalledTimes(4),t(e).toHaveBeenLastCalledWith([`e`,`f`])}),n(`invokedAt: end`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(0),await s(16),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`,`b`,`c`]),n.call(`e`),n.call(`f`),n.call(`g`),t(e).toHaveBeenCalledTimes(1),await s(16),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`e`,`f`,`g`])}),n(`invocations in the middle of a window`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(0),await s(.9*16),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(0),await s(.1*16),t(e).toHaveBeenCalledTimes(0),await s(16),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`,`b`,`c`,`d`,`e`,`f`])}),n(`maxBurstDurationMs limits the burst duration`,async()=>{let e=r.fn(),n=o(e,{reducer:c,minQuietPeriodMs:16,maxBurstDurationMs:32,triggerAt:`end`});n.call(`a`),await s(.75*16),n.call(`b`),await s(.75*16),n.call(`c`),t(e).toHaveBeenCalledTimes(0),await s(.75*16),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`,`b`,`c`])})}),e(`both timers`,()=>{n(`delay is longer than burst`,async()=>{let e=r.fn(),n=o(e,{reducer:c,minGapMs:32,minQuietPeriodMs:16,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(16),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(1),await s(16),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),n(`burst is longer than delay`,async()=>{let e=r.fn(),n=o(e,{reducer:c,minGapMs:16,minQuietPeriodMs:32,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(16),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(1),await s(16),t(e).toHaveBeenCalledTimes(1),await s(16),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),n(`burst and delay are equal`,async()=>{let e=r.fn(),n=o(e,{reducer:c,minGapMs:16,minQuietPeriodMs:16,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(16),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`,`c`]),await s(16),t(e).toHaveBeenCalledTimes(3),t(e).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),n(`delay and maxBurstDurationMs are equal`,async()=>{let e=r.fn(),n=o(e,{reducer:c,minGapMs:16,minQuietPeriodMs:32,maxBurstDurationMs:16,triggerAt:`both`});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(16),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`,`c`]),await s(16),t(e).toHaveBeenCalledTimes(3),t(e).toHaveBeenLastCalledWith([`d`,`e`,`f`])})})}),e(`immediate (===0) timer durations`,()=>{e(`delay timer`,()=>{n(`invokedAt: start`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`start`,minGapMs:0});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(0),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`d`]),await s(0),t(e).toHaveBeenCalledTimes(2)}),n(`invokedAt: both`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`,minGapMs:0});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(0),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`,`c`]),await s(0),t(e).toHaveBeenCalledTimes(3),t(e).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),n(`with a non-trivial burst timer`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:16});n.call(`a`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),n.call(`b`),t(e).toHaveBeenCalledTimes(1),await s(16),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`])})}),e(`burst timer`,()=>{n(`invokedAt: start`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`start`,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(0),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`d`]),await s(0),t(e).toHaveBeenCalledTimes(2)}),n(`invokedAt: both`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(0),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(3),t(e).toHaveBeenLastCalledWith([`d`]),await s(0),t(e).toHaveBeenCalledTimes(4),t(e).toHaveBeenLastCalledWith([`e`,`f`])}),n(`invokedAt: end`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(0),await s(0),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`,`b`,`c`]),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(1),await s(0),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),n(`with a non-trivial delay timer`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`,minGapMs:16,minQuietPeriodMs:0});n.call(`a`),n.call(`b`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(0),t(e).toHaveBeenCalledTimes(1),await s(16),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`])}),n(`burst timer with non-trivial maxBurstDuration`,async()=>{let e=r.fn(),n=o(e,{reducer:c,minQuietPeriodMs:0,maxBurstDurationMs:16,triggerAt:`end`});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(0),await s(0),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`,`b`,`c`])})}),n(`both timers`,async()=>{let e=r.fn();o(e,{reducer:c,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:0}).call(`a`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(0),t(e).toHaveBeenCalledTimes(1)}),n(`maxBurstDurationMs = 0 limits the burst immediately`,async()=>{let e=r.fn();o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:16,maxBurstDurationMs:0}).call(`a`),await s(0),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`])}),n(`all timeouts zero`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:0,maxBurstDurationMs:0});n.call(`a`),n.call(`b`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(0),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`])})}),e(`default minQuietPeriodMs === 0 when minGapMs is not defined`,()=>{n(`invokedAt: start`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`start`});n.call(`a`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),n.call(`b`),t(e).toHaveBeenCalledTimes(1),await s(0),t(e).toHaveBeenCalledTimes(1),n.call(`c`),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`c`])}),n(`invokedAt: both`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`});n.call(`a`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),n.call(`b`),t(e).toHaveBeenCalledTimes(1),await s(0),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`]),n.call(`c`),t(e).toHaveBeenCalledTimes(3),t(e).toHaveBeenLastCalledWith([`c`])})}),e(`utility functions`,()=>{e(`flush`,()=>{n(`flush triggers an immediate invocation`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),n.flush(),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`,`b`,`c`]),await s(16),t(e).toHaveBeenCalledTimes(1)}),n(`flush during active burst`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:32});n.call(`a`),n.call(`b`),n.call(`c`),await s(16),n.flush(),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`,`b`,`c`]),await s(32),t(e).toHaveBeenCalledTimes(1)})}),e(`cancel`,()=>{n(`cancel prevents invocation`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:16});n.call(`a`),n.call(`b`),n.call(`c`),n.cancel(),await s(16),t(e).toHaveBeenCalledTimes(0)}),n(`cancel during delay period`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`start`,minGapMs:32});n.call(`a`),n.call(`b`),await s(16),n.cancel(),await s(16),t(e).toHaveBeenCalledTimes(1)})}),e(`isIdle`,()=>{n(`isIdle reflects the funnel's state`,()=>{let e=o(r.fn(),{reducer:c,triggerAt:`end`,minQuietPeriodMs:16});t(e.isIdle).toBe(!0),e.call(`a`),t(e.isIdle).toBe(!1),e.cancel(),t(e.isIdle).toBe(!0)}),n(`isIdle works when burst duration is 0`,async()=>{let e=o(r.fn(),{reducer:c,triggerAt:`end`,minQuietPeriodMs:0});t(e.isIdle).toBe(!0),e.call(`a`),e.call(`b`),e.call(`c`),t(e.isIdle).toBe(!1),await s(0),t(e.isIdle).toBe(!0)})})}),e(`edge-cases`,()=>{n(`bursts that start late don't prevent delayed invocations`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`,minQuietPeriodMs:16,minGapMs:32});n.call(`a`),n.call(`b`),n.call(`c`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(1.5*16),t(e).toHaveBeenCalledTimes(1),n.call(`d`),n.call(`e`),n.call(`f`),t(e).toHaveBeenCalledTimes(1),await s(.5*16),t(e).toHaveBeenCalledTimes(2),t(e).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),n(`delay timeouts don't cause an invocation in the middle of bursts`,async()=>{let e=r.fn(),n=o(e,{reducer:c,triggerAt:`both`,minQuietPeriodMs:32,minGapMs:16});n.call(`a`),t(e).toHaveBeenCalledTimes(1),t(e).toHaveBeenLastCalledWith([`a`]),await s(16),n.call(`b`),t(e).toHaveBeenCalledTimes(1),await s(16),n.call(`c`),t(e).toHaveBeenCalledTimes(1),await s(16),n.call(`d`),t(e).toHaveBeenCalledTimes(1),await s(16),t(e).toHaveBeenCalledTimes(1),await s(16),t(e).toHaveBeenCalledTimes(2)})});
|
|
1
|
+
import{constant as e}from"./constant.js";import{doNothing as t}from"./do-nothing.js";import{a as n,i as r,n as i,r as a}from"./dist-Bd1vawFi.js";import{funnel as o}from"./funnel.js";import{sleep as s}from"./sleep.js";function c(e,t){return e===void 0?[t]:[...e,t]}r(`reducer behavior`,()=>{n(`passes the reduced arg to the executor`,()=>{let t=a.fn();o(t,{reducer:e(`hello world`),triggerAt:`start`,minQuietPeriodMs:16}).call(),i(t).toHaveBeenCalledTimes(1),i(t).toHaveBeenLastCalledWith(`hello world`)}),n(`reduces call args`,async()=>{let e=a.fn(e=>{}),t=o(e,{reducer:(e,t)=>(e??0)+t,minQuietPeriodMs:32,triggerAt:`end`});t.call(1),t.call(2),t.call(3),await s(16),t.call(4),t.call(5),t.call(6),await s(32),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith(21)}),n(`does not invoke if reduceArgs returns undefined`,async()=>{let t=a.fn();o(t,{reducer:e(void 0),triggerAt:`end`,minQuietPeriodMs:16}).call(),await s(32),i(t).toHaveBeenCalledTimes(0)}),n(`supports multiple arguments`,()=>{let e=a.fn();o(e,{reducer:(e,t,n,r)=>[e,t,n,r],triggerAt:`start`,minQuietPeriodMs:16}).call(1,`a`,!0),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([void 0,1,`a`,!0])}),n(`reducer isn't called again when 'invokedAt: start'`,async()=>{let e=a.fn(c),n=o(t(),{reducer:e,triggerAt:`start`,minQuietPeriodMs:16});n.call(`a`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith(void 0,`a`),n.call(`b`),n.call(`c`),i(e).toHaveBeenCalledTimes(1),await s(32),i(e).toHaveBeenCalledTimes(1)})}),r(`non-trivial (>0ms) timer duration`,()=>{r(`delay timer`,()=>{n(`invokedAt: start`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`start`,minGapMs:16});t.call(`a`),t.call(`b`),t.call(`c`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`]),await s(16),i(e).toHaveBeenCalledTimes(1),t.call(`d`),i(e).toHaveBeenCalledTimes(2),i(e).toHaveBeenLastCalledWith([`d`])}),n(`invokedAt: both`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`both`,minGapMs:16});t.call(`a`),t.call(`b`),t.call(`c`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`]),await s(16),i(e).toHaveBeenCalledTimes(2),i(e).toHaveBeenLastCalledWith([`b`,`c`]),t.call(`d`),t.call(`e`),t.call(`f`),i(e).toHaveBeenCalledTimes(2),await s(16),i(e).toHaveBeenCalledTimes(3),i(e).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),n(`invocations in the middle of a window`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`both`,minGapMs:16});t.call(`a`),t.call(`b`),t.call(`c`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`]),await s(.75*16),t.call(`d`),t.call(`e`),t.call(`f`),i(e).toHaveBeenCalledTimes(1),await s(.75*16),i(e).toHaveBeenCalledTimes(2),i(e).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])})}),r(`burst timer`,()=>{n(`invokedAt: start`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`start`,minQuietPeriodMs:16});t.call(`a`),t.call(`b`),t.call(`c`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`]),await s(16),i(e).toHaveBeenCalledTimes(1),t.call(`d`),i(e).toHaveBeenCalledTimes(2),i(e).toHaveBeenLastCalledWith([`d`])}),n(`invokedAt: both`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`both`,minQuietPeriodMs:16});t.call(`a`),t.call(`b`),t.call(`c`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`]),await s(16),i(e).toHaveBeenCalledTimes(2),i(e).toHaveBeenLastCalledWith([`b`,`c`]),t.call(`d`),t.call(`e`),t.call(`f`),i(e).toHaveBeenCalledTimes(3),i(e).toHaveBeenLastCalledWith([`d`]),await s(16),i(e).toHaveBeenCalledTimes(4),i(e).toHaveBeenLastCalledWith([`e`,`f`])}),n(`invokedAt: end`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:16});t.call(`a`),t.call(`b`),t.call(`c`),i(e).toHaveBeenCalledTimes(0),await s(16),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`,`b`,`c`]),t.call(`e`),t.call(`f`),t.call(`g`),i(e).toHaveBeenCalledTimes(1),await s(16),i(e).toHaveBeenCalledTimes(2),i(e).toHaveBeenLastCalledWith([`e`,`f`,`g`])}),n(`invocations in the middle of a window`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:16});t.call(`a`),t.call(`b`),t.call(`c`),i(e).toHaveBeenCalledTimes(0),await s(.9*16),t.call(`d`),t.call(`e`),t.call(`f`),i(e).toHaveBeenCalledTimes(0),await s(.1*16),i(e).toHaveBeenCalledTimes(0),await s(16),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`,`b`,`c`,`d`,`e`,`f`])}),n(`maxBurstDurationMs limits the burst duration`,async()=>{let e=a.fn(),t=o(e,{reducer:c,minQuietPeriodMs:16,maxBurstDurationMs:32,triggerAt:`end`});t.call(`a`),await s(.75*16),t.call(`b`),await s(.75*16),t.call(`c`),i(e).toHaveBeenCalledTimes(0),await s(.75*16),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`,`b`,`c`])})}),r(`both timers`,()=>{n(`delay is longer than burst`,async()=>{let e=a.fn(),t=o(e,{reducer:c,minGapMs:32,minQuietPeriodMs:16,triggerAt:`both`});t.call(`a`),t.call(`b`),t.call(`c`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`]),await s(16),t.call(`d`),t.call(`e`),t.call(`f`),i(e).toHaveBeenCalledTimes(1),await s(16),i(e).toHaveBeenCalledTimes(2),i(e).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),n(`burst is longer than delay`,async()=>{let e=a.fn(),t=o(e,{reducer:c,minGapMs:16,minQuietPeriodMs:32,triggerAt:`both`});t.call(`a`),t.call(`b`),t.call(`c`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`]),await s(16),t.call(`d`),t.call(`e`),t.call(`f`),i(e).toHaveBeenCalledTimes(1),await s(16),i(e).toHaveBeenCalledTimes(1),await s(16),i(e).toHaveBeenCalledTimes(2),i(e).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),n(`burst and delay are equal`,async()=>{let e=a.fn(),t=o(e,{reducer:c,minGapMs:16,minQuietPeriodMs:16,triggerAt:`both`});t.call(`a`),t.call(`b`),t.call(`c`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`]),await s(16),t.call(`d`),t.call(`e`),t.call(`f`),i(e).toHaveBeenCalledTimes(2),i(e).toHaveBeenLastCalledWith([`b`,`c`]),await s(16),i(e).toHaveBeenCalledTimes(3),i(e).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),n(`delay and maxBurstDurationMs are equal`,async()=>{let e=a.fn(),t=o(e,{reducer:c,minGapMs:16,minQuietPeriodMs:32,maxBurstDurationMs:16,triggerAt:`both`});t.call(`a`),t.call(`b`),t.call(`c`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`]),await s(16),t.call(`d`),t.call(`e`),t.call(`f`),i(e).toHaveBeenCalledTimes(2),i(e).toHaveBeenLastCalledWith([`b`,`c`]),await s(16),i(e).toHaveBeenCalledTimes(3),i(e).toHaveBeenLastCalledWith([`d`,`e`,`f`])})})}),r(`immediate (===0) timer durations`,()=>{r(`delay timer`,()=>{n(`invokedAt: start`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`start`,minGapMs:0});t.call(`a`),t.call(`b`),t.call(`c`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`]),await s(0),t.call(`d`),t.call(`e`),t.call(`f`),i(e).toHaveBeenCalledTimes(2),i(e).toHaveBeenLastCalledWith([`d`]),await s(0),i(e).toHaveBeenCalledTimes(2)}),n(`invokedAt: both`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`both`,minGapMs:0});t.call(`a`),t.call(`b`),t.call(`c`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`]),await s(0),t.call(`d`),t.call(`e`),t.call(`f`),i(e).toHaveBeenCalledTimes(2),i(e).toHaveBeenLastCalledWith([`b`,`c`]),await s(0),i(e).toHaveBeenCalledTimes(3),i(e).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),n(`with a non-trivial burst timer`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:16});t.call(`a`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`]),t.call(`b`),i(e).toHaveBeenCalledTimes(1),await s(16),i(e).toHaveBeenCalledTimes(2),i(e).toHaveBeenLastCalledWith([`b`])})}),r(`burst timer`,()=>{n(`invokedAt: start`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`start`,minQuietPeriodMs:0});t.call(`a`),t.call(`b`),t.call(`c`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`]),await s(0),t.call(`d`),t.call(`e`),t.call(`f`),i(e).toHaveBeenCalledTimes(2),i(e).toHaveBeenLastCalledWith([`d`]),await s(0),i(e).toHaveBeenCalledTimes(2)}),n(`invokedAt: both`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`both`,minQuietPeriodMs:0});t.call(`a`),t.call(`b`),t.call(`c`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`]),await s(0),i(e).toHaveBeenCalledTimes(2),i(e).toHaveBeenLastCalledWith([`b`,`c`]),t.call(`d`),t.call(`e`),t.call(`f`),i(e).toHaveBeenCalledTimes(3),i(e).toHaveBeenLastCalledWith([`d`]),await s(0),i(e).toHaveBeenCalledTimes(4),i(e).toHaveBeenLastCalledWith([`e`,`f`])}),n(`invokedAt: end`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:0});t.call(`a`),t.call(`b`),t.call(`c`),i(e).toHaveBeenCalledTimes(0),await s(0),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`,`b`,`c`]),t.call(`d`),t.call(`e`),t.call(`f`),i(e).toHaveBeenCalledTimes(1),await s(0),i(e).toHaveBeenCalledTimes(2),i(e).toHaveBeenLastCalledWith([`d`,`e`,`f`])}),n(`with a non-trivial delay timer`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`both`,minGapMs:16,minQuietPeriodMs:0});t.call(`a`),t.call(`b`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`]),await s(0),i(e).toHaveBeenCalledTimes(1),await s(16),i(e).toHaveBeenCalledTimes(2),i(e).toHaveBeenLastCalledWith([`b`])}),n(`burst timer with non-trivial maxBurstDuration`,async()=>{let e=a.fn(),t=o(e,{reducer:c,minQuietPeriodMs:0,maxBurstDurationMs:16,triggerAt:`end`});t.call(`a`),t.call(`b`),t.call(`c`),i(e).toHaveBeenCalledTimes(0),await s(0),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`,`b`,`c`])})}),n(`both timers`,async()=>{let e=a.fn();o(e,{reducer:c,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:0}).call(`a`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`]),await s(0),i(e).toHaveBeenCalledTimes(1)}),n(`maxBurstDurationMs = 0 limits the burst immediately`,async()=>{let e=a.fn();o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:16,maxBurstDurationMs:0}).call(`a`),await s(0),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`])}),n(`all timeouts zero`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`both`,minGapMs:0,minQuietPeriodMs:0,maxBurstDurationMs:0});t.call(`a`),t.call(`b`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`]),await s(0),i(e).toHaveBeenCalledTimes(2),i(e).toHaveBeenLastCalledWith([`b`])})}),r(`default minQuietPeriodMs === 0 when minGapMs is not defined`,()=>{n(`invokedAt: start`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`start`});t.call(`a`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`]),t.call(`b`),i(e).toHaveBeenCalledTimes(1),await s(0),i(e).toHaveBeenCalledTimes(1),t.call(`c`),i(e).toHaveBeenCalledTimes(2),i(e).toHaveBeenLastCalledWith([`c`])}),n(`invokedAt: both`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`both`});t.call(`a`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`]),t.call(`b`),i(e).toHaveBeenCalledTimes(1),await s(0),i(e).toHaveBeenCalledTimes(2),i(e).toHaveBeenLastCalledWith([`b`]),t.call(`c`),i(e).toHaveBeenCalledTimes(3),i(e).toHaveBeenLastCalledWith([`c`])})}),r(`utility functions`,()=>{r(`flush`,()=>{n(`flush triggers an immediate invocation`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:16});t.call(`a`),t.call(`b`),t.call(`c`),t.flush(),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`,`b`,`c`]),await s(16),i(e).toHaveBeenCalledTimes(1)}),n(`flush during active burst`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:32});t.call(`a`),t.call(`b`),t.call(`c`),await s(16),t.flush(),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`,`b`,`c`]),await s(32),i(e).toHaveBeenCalledTimes(1)})}),r(`cancel`,()=>{n(`cancel prevents invocation`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`end`,minQuietPeriodMs:16});t.call(`a`),t.call(`b`),t.call(`c`),t.cancel(),await s(16),i(e).toHaveBeenCalledTimes(0)}),n(`cancel during delay period`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`start`,minGapMs:32});t.call(`a`),t.call(`b`),await s(16),t.cancel(),await s(16),i(e).toHaveBeenCalledTimes(1)})}),r(`isIdle`,()=>{n(`isIdle reflects the funnel's state`,()=>{let e=o(a.fn(),{reducer:c,triggerAt:`end`,minQuietPeriodMs:16});i(e.isIdle).toBe(!0),e.call(`a`),i(e.isIdle).toBe(!1),e.cancel(),i(e.isIdle).toBe(!0)}),n(`isIdle works when burst duration is 0`,async()=>{let e=o(a.fn(),{reducer:c,triggerAt:`end`,minQuietPeriodMs:0});i(e.isIdle).toBe(!0),e.call(`a`),e.call(`b`),e.call(`c`),i(e.isIdle).toBe(!1),await s(0),i(e.isIdle).toBe(!0)})})}),r(`edge-cases`,()=>{n(`bursts that start late don't prevent delayed invocations`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`both`,minQuietPeriodMs:16,minGapMs:32});t.call(`a`),t.call(`b`),t.call(`c`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`]),await s(1.5*16),i(e).toHaveBeenCalledTimes(1),t.call(`d`),t.call(`e`),t.call(`f`),i(e).toHaveBeenCalledTimes(1),await s(.5*16),i(e).toHaveBeenCalledTimes(2),i(e).toHaveBeenLastCalledWith([`b`,`c`,`d`,`e`,`f`])}),n(`delay timeouts don't cause an invocation in the middle of bursts`,async()=>{let e=a.fn(),t=o(e,{reducer:c,triggerAt:`both`,minQuietPeriodMs:32,minGapMs:16});t.call(`a`),i(e).toHaveBeenCalledTimes(1),i(e).toHaveBeenLastCalledWith([`a`]),await s(16),t.call(`b`),i(e).toHaveBeenCalledTimes(1),await s(16),t.call(`c`),i(e).toHaveBeenCalledTimes(1),await s(16),t.call(`d`),i(e).toHaveBeenCalledTimes(1),await s(16),i(e).toHaveBeenCalledTimes(1),await s(16),i(e).toHaveBeenCalledTimes(2)})});
|
|
2
2
|
//# sourceMappingURL=funnel.test.js.map
|