@vielzeug/toolkit 1.1.2 → 2.0.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/README.md +419 -0
- package/dist/array/chunk.cjs +2 -2
- package/dist/array/chunk.cjs.map +1 -1
- package/dist/array/chunk.d.ts +29 -0
- package/dist/array/chunk.d.ts.map +1 -0
- package/dist/array/chunk.js +22 -24
- package/dist/array/chunk.js.map +1 -1
- package/dist/array/contains.cjs +2 -2
- package/dist/array/contains.cjs.map +1 -1
- package/dist/array/contains.d.ts +19 -0
- package/dist/array/contains.d.ts.map +1 -0
- package/dist/array/contains.js +12 -9
- package/dist/array/contains.js.map +1 -1
- package/dist/array/fold.cjs +2 -0
- package/dist/array/fold.cjs.map +1 -0
- package/dist/array/fold.d.ts +21 -0
- package/dist/array/fold.d.ts.map +1 -0
- package/dist/array/fold.js +19 -0
- package/dist/array/fold.js.map +1 -0
- package/dist/array/group.cjs +2 -2
- package/dist/array/group.cjs.map +1 -1
- package/dist/array/group.d.ts +19 -0
- package/dist/array/group.d.ts.map +1 -0
- package/dist/array/group.js +18 -15
- package/dist/array/group.js.map +1 -1
- package/dist/array/index.d.ts +16 -0
- package/dist/array/index.d.ts.map +1 -0
- package/dist/array/keyBy.cjs +2 -0
- package/dist/array/keyBy.cjs.map +1 -0
- package/dist/array/keyBy.d.ts +20 -0
- package/dist/array/keyBy.d.ts.map +1 -0
- package/dist/array/keyBy.js +19 -0
- package/dist/array/keyBy.js.map +1 -0
- package/dist/array/list.cjs +2 -2
- package/dist/array/list.cjs.map +1 -1
- package/dist/array/list.d.ts +58 -0
- package/dist/array/list.d.ts.map +1 -0
- package/dist/array/list.js +103 -106
- package/dist/array/list.js.map +1 -1
- package/dist/array/pick.cjs +2 -2
- package/dist/array/pick.cjs.map +1 -1
- package/dist/array/pick.d.ts +19 -0
- package/dist/array/pick.d.ts.map +1 -0
- package/dist/array/pick.js +15 -14
- package/dist/array/pick.js.map +1 -1
- package/dist/array/remoteList.cjs +2 -2
- package/dist/array/remoteList.cjs.map +1 -1
- package/dist/array/remoteList.d.ts +64 -0
- package/dist/array/remoteList.d.ts.map +1 -0
- package/dist/array/remoteList.js +121 -122
- package/dist/array/remoteList.js.map +1 -1
- package/dist/array/replace.cjs +2 -0
- package/dist/array/replace.cjs.map +1 -0
- package/dist/array/replace.d.ts +20 -0
- package/dist/array/replace.d.ts.map +1 -0
- package/dist/array/replace.js +19 -0
- package/dist/array/replace.js.map +1 -0
- package/dist/array/rotate.cjs +2 -0
- package/dist/array/rotate.cjs.map +1 -0
- package/dist/array/rotate.d.ts +22 -0
- package/dist/array/rotate.d.ts.map +1 -0
- package/dist/array/rotate.js +19 -0
- package/dist/array/rotate.js.map +1 -0
- package/dist/array/search.cjs +2 -2
- package/dist/array/search.cjs.map +1 -1
- package/dist/array/search.d.ts +19 -0
- package/dist/array/search.d.ts.map +1 -0
- package/dist/array/search.js +23 -13
- package/dist/array/search.js.map +1 -1
- package/dist/array/select.cjs +2 -2
- package/dist/array/select.cjs.map +1 -1
- package/dist/array/select.d.ts +21 -0
- package/dist/array/select.d.ts.map +1 -0
- package/dist/array/select.js +16 -15
- package/dist/array/select.js.map +1 -1
- package/dist/array/sort.cjs +2 -2
- package/dist/array/sort.cjs.map +1 -1
- package/dist/array/sort.d.ts +26 -0
- package/dist/array/sort.d.ts.map +1 -0
- package/dist/array/sort.js +18 -12
- package/dist/array/sort.js.map +1 -1
- package/dist/array/toggle.cjs +2 -0
- package/dist/array/toggle.cjs.map +1 -0
- package/dist/array/toggle.d.ts +29 -0
- package/dist/array/toggle.d.ts.map +1 -0
- package/dist/array/toggle.js +9 -0
- package/dist/array/toggle.js.map +1 -0
- package/dist/array/uniq.cjs +2 -2
- package/dist/array/uniq.cjs.map +1 -1
- package/dist/array/uniq.d.ts +21 -0
- package/dist/array/uniq.d.ts.map +1 -0
- package/dist/array/uniq.js +15 -17
- package/dist/array/uniq.js.map +1 -1
- package/dist/async/attempt.cjs +2 -2
- package/dist/async/attempt.cjs.map +1 -1
- package/dist/async/attempt.d.ts +40 -0
- package/dist/async/attempt.d.ts.map +1 -0
- package/dist/async/attempt.js +19 -14
- package/dist/async/attempt.js.map +1 -1
- package/dist/async/defer.cjs +2 -2
- package/dist/async/defer.cjs.map +1 -1
- package/dist/async/defer.d.ts +23 -0
- package/dist/async/defer.d.ts.map +1 -0
- package/dist/async/defer.js +12 -9
- package/dist/async/defer.js.map +1 -1
- package/dist/async/index.d.ts +12 -0
- package/dist/async/index.d.ts.map +1 -0
- package/dist/async/parallel.cjs +2 -2
- package/dist/async/parallel.cjs.map +1 -1
- package/dist/async/parallel.d.ts +31 -0
- package/dist/async/parallel.d.ts.map +1 -0
- package/dist/async/parallel.js +26 -27
- package/dist/async/parallel.js.map +1 -1
- package/dist/async/pool.cjs +2 -2
- package/dist/async/pool.cjs.map +1 -1
- package/dist/async/pool.d.ts +21 -0
- package/dist/async/pool.d.ts.map +1 -0
- package/dist/async/pool.js +23 -21
- package/dist/async/pool.js.map +1 -1
- package/dist/async/predict.cjs +2 -2
- package/dist/async/predict.cjs.map +1 -1
- package/dist/async/predict.d.ts +24 -0
- package/dist/async/predict.d.ts.map +1 -0
- package/dist/async/predict.js +10 -12
- package/dist/async/predict.js.map +1 -1
- package/dist/async/queue.cjs +2 -2
- package/dist/async/queue.cjs.map +1 -1
- package/dist/async/queue.d.ts +43 -0
- package/dist/async/queue.d.ts.map +1 -0
- package/dist/async/queue.js +52 -56
- package/dist/async/queue.js.map +1 -1
- package/dist/async/race.cjs +2 -2
- package/dist/async/race.cjs.map +1 -1
- package/dist/async/race.d.ts +16 -0
- package/dist/async/race.d.ts.map +1 -0
- package/dist/async/race.js +8 -7
- package/dist/async/race.js.map +1 -1
- package/dist/async/retry.cjs +2 -2
- package/dist/async/retry.cjs.map +1 -1
- package/dist/async/retry.d.ts +32 -0
- package/dist/async/retry.d.ts.map +1 -0
- package/dist/async/retry.js +19 -24
- package/dist/async/retry.js.map +1 -1
- package/dist/async/scheduler.cjs +2 -0
- package/dist/async/scheduler.cjs.map +1 -0
- package/dist/async/scheduler.d.ts +51 -0
- package/dist/async/scheduler.d.ts.map +1 -0
- package/dist/async/scheduler.js +43 -0
- package/dist/async/scheduler.js.map +1 -0
- package/dist/async/sleep.cjs +2 -2
- package/dist/async/sleep.cjs.map +1 -1
- package/dist/async/sleep.d.ts +16 -0
- package/dist/async/sleep.d.ts.map +1 -0
- package/dist/async/sleep.js +11 -11
- package/dist/async/sleep.js.map +1 -1
- package/dist/async/waitFor.cjs +2 -2
- package/dist/async/waitFor.cjs.map +1 -1
- package/dist/async/waitFor.d.ts +33 -0
- package/dist/async/waitFor.d.ts.map +1 -0
- package/dist/async/waitFor.js +29 -36
- package/dist/async/waitFor.js.map +1 -1
- package/dist/date/expires.cjs +2 -2
- package/dist/date/expires.cjs.map +1 -1
- package/dist/date/expires.d.ts +15 -0
- package/dist/date/expires.d.ts.map +1 -0
- package/dist/date/expires.js +11 -10
- package/dist/date/expires.js.map +1 -1
- package/dist/date/index.d.ts +4 -0
- package/dist/date/index.d.ts.map +1 -0
- package/dist/date/interval.cjs +2 -2
- package/dist/date/interval.cjs.map +1 -1
- package/dist/date/interval.d.ts +25 -0
- package/dist/date/interval.d.ts.map +1 -0
- package/dist/date/interval.js +31 -37
- package/dist/date/interval.js.map +1 -1
- package/dist/date/timeDiff.cjs +2 -2
- package/dist/date/timeDiff.cjs.map +1 -1
- package/dist/date/timeDiff.d.ts +24 -0
- package/dist/date/timeDiff.d.ts.map +1 -0
- package/dist/date/timeDiff.js +58 -25
- package/dist/date/timeDiff.js.map +1 -1
- package/dist/function/assert.cjs +2 -3
- package/dist/function/assert.cjs.map +1 -1
- package/dist/function/assert.d.ts +38 -0
- package/dist/function/assert.d.ts.map +1 -0
- package/dist/function/assert.js +13 -11
- package/dist/function/assert.js.map +1 -1
- package/dist/function/assertParams.cjs +2 -2
- package/dist/function/assertParams.cjs.map +1 -1
- package/dist/function/assertParams.d.ts +24 -0
- package/dist/function/assertParams.d.ts.map +1 -0
- package/dist/function/assertParams.js +13 -12
- package/dist/function/assertParams.js.map +1 -1
- package/dist/function/compare.cjs +2 -2
- package/dist/function/compare.cjs.map +1 -1
- package/dist/function/compare.d.ts +23 -0
- package/dist/function/compare.d.ts.map +1 -0
- package/dist/function/compare.js +22 -21
- package/dist/function/compare.js.map +1 -1
- package/dist/function/compareBy.cjs +2 -2
- package/dist/function/compareBy.cjs.map +1 -1
- package/dist/function/compareBy.d.ts +24 -0
- package/dist/function/compareBy.d.ts.map +1 -0
- package/dist/function/compareBy.js +15 -14
- package/dist/function/compareBy.js.map +1 -1
- package/dist/function/compose.cjs +2 -2
- package/dist/function/compose.cjs.map +1 -1
- package/dist/function/compose.d.ts +22 -0
- package/dist/function/compose.d.ts.map +1 -0
- package/dist/function/compose.js +10 -13
- package/dist/function/compose.js.map +1 -1
- package/dist/function/curry.cjs +2 -2
- package/dist/function/curry.cjs.map +1 -1
- package/dist/function/curry.d.ts +21 -0
- package/dist/function/curry.d.ts.map +1 -0
- package/dist/function/curry.js +8 -7
- package/dist/function/curry.js.map +1 -1
- package/dist/function/debounce.cjs +2 -2
- package/dist/function/debounce.cjs.map +1 -1
- package/dist/function/debounce.d.ts +12 -0
- package/dist/function/debounce.d.ts.map +1 -0
- package/dist/function/debounce.js +34 -26
- package/dist/function/debounce.js.map +1 -1
- package/dist/function/fp.cjs +2 -2
- package/dist/function/fp.cjs.map +1 -1
- package/dist/function/fp.d.ts +24 -0
- package/dist/function/fp.d.ts.map +1 -0
- package/dist/function/fp.js +6 -10
- package/dist/function/fp.js.map +1 -1
- package/dist/function/index.d.ts +13 -0
- package/dist/function/index.d.ts.map +1 -0
- package/dist/function/memo.cjs +2 -2
- package/dist/function/memo.cjs.map +1 -1
- package/dist/function/memo.d.ts +30 -0
- package/dist/function/memo.d.ts.map +1 -0
- package/dist/function/memo.js +16 -24
- package/dist/function/memo.js.map +1 -1
- package/dist/function/once.cjs +2 -2
- package/dist/function/once.cjs.map +1 -1
- package/dist/function/once.d.ts +24 -0
- package/dist/function/once.d.ts.map +1 -0
- package/dist/function/once.js +10 -10
- package/dist/function/once.js.map +1 -1
- package/dist/function/pipe.cjs +2 -2
- package/dist/function/pipe.cjs.map +1 -1
- package/dist/function/pipe.d.ts +23 -0
- package/dist/function/pipe.d.ts.map +1 -0
- package/dist/function/pipe.js +10 -10
- package/dist/function/pipe.js.map +1 -1
- package/dist/function/throttle.cjs +2 -2
- package/dist/function/throttle.cjs.map +1 -1
- package/dist/function/throttle.d.ts +21 -0
- package/dist/function/throttle.d.ts.map +1 -0
- package/dist/function/throttle.js +45 -37
- package/dist/function/throttle.js.map +1 -1
- package/dist/index.cjs +1 -2
- package/dist/index.d.ts +77 -2813
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +75 -253
- package/dist/math/abs.cjs +2 -2
- package/dist/math/abs.cjs.map +1 -1
- package/dist/math/abs.d.ts +17 -0
- package/dist/math/abs.d.ts.map +1 -0
- package/dist/math/abs.js +7 -6
- package/dist/math/abs.js.map +1 -1
- package/dist/math/allocate.cjs +2 -2
- package/dist/math/allocate.cjs.map +1 -1
- package/dist/math/allocate.d.ts +24 -0
- package/dist/math/allocate.d.ts.map +1 -0
- package/dist/math/allocate.js +20 -28
- package/dist/math/allocate.js.map +1 -1
- package/dist/math/average.cjs +2 -2
- package/dist/math/average.cjs.map +1 -1
- package/dist/math/average.d.ts +16 -0
- package/dist/math/average.d.ts.map +1 -0
- package/dist/math/average.js +13 -24
- package/dist/math/average.js.map +1 -1
- package/dist/math/clamp.cjs +2 -2
- package/dist/math/clamp.cjs.map +1 -1
- package/dist/math/clamp.d.ts +18 -0
- package/dist/math/clamp.d.ts.map +1 -0
- package/dist/math/clamp.js +7 -6
- package/dist/math/clamp.js.map +1 -1
- package/dist/math/distribute.cjs +2 -2
- package/dist/math/distribute.cjs.map +1 -1
- package/dist/math/distribute.d.ts +24 -0
- package/dist/math/distribute.d.ts.map +1 -0
- package/dist/math/distribute.js +14 -17
- package/dist/math/distribute.js.map +1 -1
- package/dist/math/index.d.ts +14 -0
- package/dist/math/index.d.ts.map +1 -0
- package/dist/math/linspace.cjs +2 -0
- package/dist/math/linspace.cjs.map +1 -0
- package/dist/math/linspace.d.ts +19 -0
- package/dist/math/linspace.d.ts.map +1 -0
- package/dist/math/linspace.js +11 -0
- package/dist/math/linspace.js.map +1 -0
- package/dist/math/max.cjs +2 -2
- package/dist/math/max.cjs.map +1 -1
- package/dist/math/max.d.ts +23 -0
- package/dist/math/max.d.ts.map +1 -0
- package/dist/math/max.js +10 -11
- package/dist/math/max.js.map +1 -1
- package/dist/math/median.cjs +2 -2
- package/dist/math/median.cjs.map +1 -1
- package/dist/math/median.d.ts +17 -0
- package/dist/math/median.d.ts.map +1 -0
- package/dist/math/median.js +11 -10
- package/dist/math/median.js.map +1 -1
- package/dist/math/min.cjs +2 -2
- package/dist/math/min.cjs.map +1 -1
- package/dist/math/min.d.ts +23 -0
- package/dist/math/min.d.ts.map +1 -0
- package/dist/math/min.js +10 -11
- package/dist/math/min.js.map +1 -1
- package/dist/math/percent.cjs +2 -0
- package/dist/math/percent.cjs.map +1 -0
- package/dist/math/percent.d.ts +19 -0
- package/dist/math/percent.d.ts.map +1 -0
- package/dist/math/percent.js +8 -0
- package/dist/math/percent.js.map +1 -0
- package/dist/math/range.cjs +2 -2
- package/dist/math/range.cjs.map +1 -1
- package/dist/math/range.d.ts +23 -0
- package/dist/math/range.d.ts.map +1 -0
- package/dist/math/range.js +28 -17
- package/dist/math/range.js.map +1 -1
- package/dist/math/round.cjs +2 -2
- package/dist/math/round.cjs.map +1 -1
- package/dist/math/round.d.ts +21 -0
- package/dist/math/round.d.ts.map +1 -0
- package/dist/math/round.js +9 -8
- package/dist/math/round.js.map +1 -1
- package/dist/math/sum.cjs +2 -2
- package/dist/math/sum.cjs.map +1 -1
- package/dist/math/sum.d.ts +17 -0
- package/dist/math/sum.d.ts.map +1 -0
- package/dist/math/sum.js +11 -14
- package/dist/math/sum.js.map +1 -1
- package/dist/money/currency.cjs +2 -2
- package/dist/money/currency.cjs.map +1 -1
- package/dist/money/currency.d.ts +30 -0
- package/dist/money/currency.d.ts.map +1 -0
- package/dist/money/currency.js +19 -47
- package/dist/money/currency.js.map +1 -1
- package/dist/money/exchange.cjs +2 -2
- package/dist/money/exchange.cjs.map +1 -1
- package/dist/money/exchange.d.ts +29 -0
- package/dist/money/exchange.d.ts.map +1 -0
- package/dist/money/exchange.js +12 -12
- package/dist/money/exchange.js.map +1 -1
- package/dist/money/index.d.ts +4 -0
- package/dist/money/index.d.ts.map +1 -0
- package/dist/money/types.d.ts +9 -0
- package/dist/money/types.d.ts.map +1 -0
- package/dist/object/diff.cjs +2 -2
- package/dist/object/diff.cjs.map +1 -1
- package/dist/object/diff.d.ts +26 -0
- package/dist/object/diff.d.ts.map +1 -0
- package/dist/object/diff.js +19 -17
- package/dist/object/diff.js.map +1 -1
- package/dist/object/index.d.ts +9 -0
- package/dist/object/index.d.ts.map +1 -0
- package/dist/object/merge.cjs +2 -2
- package/dist/object/merge.cjs.map +1 -1
- package/dist/object/merge.d.ts +44 -0
- package/dist/object/merge.d.ts.map +1 -0
- package/dist/object/merge.js +27 -21
- package/dist/object/merge.js.map +1 -1
- package/dist/object/parseJSON.cjs +2 -2
- package/dist/object/parseJSON.cjs.map +1 -1
- package/dist/object/parseJSON.d.ts +32 -0
- package/dist/object/parseJSON.d.ts.map +1 -0
- package/dist/object/parseJSON.js +17 -18
- package/dist/object/parseJSON.js.map +1 -1
- package/dist/object/path.cjs +2 -2
- package/dist/object/path.cjs.map +1 -1
- package/dist/object/path.d.ts +32 -0
- package/dist/object/path.d.ts.map +1 -0
- package/dist/object/path.js +25 -23
- package/dist/object/path.js.map +1 -1
- package/dist/object/proxy.cjs +2 -0
- package/dist/object/proxy.cjs.map +1 -0
- package/dist/object/proxy.d.ts +30 -0
- package/dist/object/proxy.d.ts.map +1 -0
- package/dist/object/proxy.js +21 -0
- package/dist/object/proxy.js.map +1 -0
- package/dist/object/prune.cjs +2 -0
- package/dist/object/prune.cjs.map +1 -0
- package/dist/object/prune.d.ts +21 -0
- package/dist/object/prune.d.ts.map +1 -0
- package/dist/object/prune.js +31 -0
- package/dist/object/prune.js.map +1 -0
- package/dist/object/seek.cjs +2 -2
- package/dist/object/seek.cjs.map +1 -1
- package/dist/object/seek.d.ts +2 -0
- package/dist/object/seek.d.ts.map +1 -0
- package/dist/object/seek.js +25 -12
- package/dist/object/seek.js.map +1 -1
- package/dist/object/stash.cjs +2 -0
- package/dist/object/stash.cjs.map +1 -0
- package/dist/object/stash.d.ts +45 -0
- package/dist/object/stash.d.ts.map +1 -0
- package/dist/object/stash.js +99 -0
- package/dist/object/stash.js.map +1 -0
- package/dist/random/draw.cjs +2 -2
- package/dist/random/draw.cjs.map +1 -1
- package/dist/random/draw.d.ts +16 -0
- package/dist/random/draw.d.ts.map +1 -0
- package/dist/random/draw.js +13 -10
- package/dist/random/draw.js.map +1 -1
- package/dist/random/index.d.ts +5 -0
- package/dist/random/index.d.ts.map +1 -0
- package/dist/random/random.cjs +2 -2
- package/dist/random/random.cjs.map +1 -1
- package/dist/random/random.d.ts +14 -0
- package/dist/random/random.d.ts.map +1 -0
- package/dist/random/random.js +16 -9
- package/dist/random/random.js.map +1 -1
- package/dist/random/shuffle.cjs +2 -2
- package/dist/random/shuffle.cjs.map +1 -1
- package/dist/random/shuffle.d.ts +17 -0
- package/dist/random/shuffle.d.ts.map +1 -0
- package/dist/random/shuffle.js +18 -14
- package/dist/random/shuffle.js.map +1 -1
- package/dist/random/uuid.cjs +2 -2
- package/dist/random/uuid.cjs.map +1 -1
- package/dist/random/uuid.d.ts +12 -0
- package/dist/random/uuid.d.ts.map +1 -0
- package/dist/random/uuid.js +7 -9
- package/dist/random/uuid.js.map +1 -1
- package/dist/string/_caseUtils.cjs +2 -2
- package/dist/string/_caseUtils.cjs.map +1 -1
- package/dist/string/_caseUtils.d.ts +13 -0
- package/dist/string/_caseUtils.d.ts.map +1 -0
- package/dist/string/_caseUtils.js +8 -8
- package/dist/string/_caseUtils.js.map +1 -1
- package/dist/string/camelCase.cjs +2 -2
- package/dist/string/camelCase.cjs.map +1 -1
- package/dist/string/camelCase.d.ts +14 -0
- package/dist/string/camelCase.d.ts.map +1 -0
- package/dist/string/camelCase.js +8 -7
- package/dist/string/camelCase.js.map +1 -1
- package/dist/string/index.d.ts +7 -0
- package/dist/string/index.d.ts.map +1 -0
- package/dist/string/kebabCase.cjs +2 -2
- package/dist/string/kebabCase.cjs.map +1 -1
- package/dist/string/kebabCase.d.ts +15 -0
- package/dist/string/kebabCase.d.ts.map +1 -0
- package/dist/string/kebabCase.js +8 -7
- package/dist/string/kebabCase.js.map +1 -1
- package/dist/string/pascalCase.cjs +2 -2
- package/dist/string/pascalCase.cjs.map +1 -1
- package/dist/string/pascalCase.d.ts +15 -0
- package/dist/string/pascalCase.d.ts.map +1 -0
- package/dist/string/pascalCase.js +8 -7
- package/dist/string/pascalCase.js.map +1 -1
- package/dist/string/similarity.cjs +2 -2
- package/dist/string/similarity.cjs.map +1 -1
- package/dist/string/similarity.d.ts +20 -0
- package/dist/string/similarity.d.ts.map +1 -0
- package/dist/string/similarity.js +20 -36
- package/dist/string/similarity.js.map +1 -1
- package/dist/string/snakeCase.cjs +2 -2
- package/dist/string/snakeCase.cjs.map +1 -1
- package/dist/string/snakeCase.d.ts +15 -0
- package/dist/string/snakeCase.d.ts.map +1 -0
- package/dist/string/snakeCase.js +8 -7
- package/dist/string/snakeCase.js.map +1 -1
- package/dist/string/truncate.cjs +2 -2
- package/dist/string/truncate.cjs.map +1 -1
- package/dist/string/truncate.d.ts +28 -0
- package/dist/string/truncate.d.ts.map +1 -0
- package/dist/string/truncate.js +20 -17
- package/dist/string/truncate.js.map +1 -1
- package/dist/toolkit.cjs +2 -0
- package/dist/toolkit.cjs.map +1 -0
- package/dist/toolkit.js +1523 -0
- package/dist/toolkit.js.map +1 -0
- package/dist/typed/index.d.ts +24 -0
- package/dist/typed/index.d.ts.map +1 -0
- package/dist/typed/is.cjs +2 -2
- package/dist/typed/is.cjs.map +1 -1
- package/dist/typed/is.d.ts +95 -0
- package/dist/typed/is.d.ts.map +1 -0
- package/dist/typed/is.js +54 -42
- package/dist/typed/is.js.map +1 -1
- package/dist/typed/isArray.cjs +2 -2
- package/dist/typed/isArray.cjs.map +1 -1
- package/dist/typed/isArray.d.ts +16 -0
- package/dist/typed/isArray.d.ts.map +1 -0
- package/dist/typed/isArray.js +8 -8
- package/dist/typed/isArray.js.map +1 -1
- package/dist/typed/isBoolean.cjs +2 -2
- package/dist/typed/isBoolean.cjs.map +1 -1
- package/dist/typed/isBoolean.d.ts +23 -0
- package/dist/typed/isBoolean.d.ts.map +1 -0
- package/dist/typed/isBoolean.js +7 -6
- package/dist/typed/isBoolean.js.map +1 -1
- package/dist/typed/isDate.cjs +2 -2
- package/dist/typed/isDate.cjs.map +1 -1
- package/dist/typed/isDate.d.ts +16 -0
- package/dist/typed/isDate.d.ts.map +1 -0
- package/dist/typed/isDate.js +7 -8
- package/dist/typed/isDate.js.map +1 -1
- package/dist/typed/isDefined.cjs +2 -2
- package/dist/typed/isDefined.cjs.map +1 -1
- package/dist/typed/isDefined.d.ts +19 -0
- package/dist/typed/isDefined.d.ts.map +1 -0
- package/dist/typed/isDefined.js +7 -6
- package/dist/typed/isDefined.js.map +1 -1
- package/dist/typed/isEmpty.cjs +2 -2
- package/dist/typed/isEmpty.cjs.map +1 -1
- package/dist/typed/isEmpty.d.ts +24 -0
- package/dist/typed/isEmpty.d.ts.map +1 -0
- package/dist/typed/isEmpty.js +8 -9
- package/dist/typed/isEmpty.js.map +1 -1
- package/dist/typed/isEqual.cjs +2 -2
- package/dist/typed/isEqual.cjs.map +1 -1
- package/dist/typed/isEqual.d.ts +24 -0
- package/dist/typed/isEqual.d.ts.map +1 -0
- package/dist/typed/isEqual.js +27 -28
- package/dist/typed/isEqual.js.map +1 -1
- package/dist/typed/isEven.cjs +2 -2
- package/dist/typed/isEven.cjs.map +1 -1
- package/dist/typed/isEven.d.ts +9 -0
- package/dist/typed/isEven.d.ts.map +1 -0
- package/dist/typed/isEven.js +7 -6
- package/dist/typed/isEven.js.map +1 -1
- package/dist/typed/isFunction.cjs +2 -2
- package/dist/typed/isFunction.cjs.map +1 -1
- package/dist/typed/isFunction.d.ts +16 -0
- package/dist/typed/isFunction.d.ts.map +1 -0
- package/dist/typed/isFunction.js +7 -8
- package/dist/typed/isFunction.js.map +1 -1
- package/dist/typed/isMatch.cjs +2 -2
- package/dist/typed/isMatch.cjs.map +1 -1
- package/dist/typed/isMatch.d.ts +23 -0
- package/dist/typed/isMatch.d.ts.map +1 -0
- package/dist/typed/isMatch.js +16 -18
- package/dist/typed/isMatch.js.map +1 -1
- package/dist/typed/isNegative.cjs +2 -2
- package/dist/typed/isNegative.cjs.map +1 -1
- package/dist/typed/isNegative.d.ts +26 -0
- package/dist/typed/isNegative.d.ts.map +1 -0
- package/dist/typed/isNegative.js +7 -6
- package/dist/typed/isNegative.js.map +1 -1
- package/dist/typed/isNil.cjs +2 -2
- package/dist/typed/isNil.cjs.map +1 -1
- package/dist/typed/isNil.d.ts +17 -0
- package/dist/typed/isNil.d.ts.map +1 -0
- package/dist/typed/isNil.js +7 -8
- package/dist/typed/isNil.js.map +1 -1
- package/dist/typed/isNumber.cjs +2 -2
- package/dist/typed/isNumber.cjs.map +1 -1
- package/dist/typed/isNumber.d.ts +16 -0
- package/dist/typed/isNumber.d.ts.map +1 -0
- package/dist/typed/isNumber.js +8 -8
- package/dist/typed/isNumber.js.map +1 -1
- package/dist/typed/isObject.cjs +2 -2
- package/dist/typed/isObject.cjs.map +1 -1
- package/dist/typed/isObject.d.ts +19 -0
- package/dist/typed/isObject.d.ts.map +1 -0
- package/dist/typed/isObject.js +8 -8
- package/dist/typed/isObject.js.map +1 -1
- package/dist/typed/isOdd.cjs +2 -2
- package/dist/typed/isOdd.cjs.map +1 -1
- package/dist/typed/isOdd.d.ts +9 -0
- package/dist/typed/isOdd.d.ts.map +1 -0
- package/dist/typed/isOdd.js +7 -6
- package/dist/typed/isOdd.js.map +1 -1
- package/dist/typed/isPositive.cjs +2 -2
- package/dist/typed/isPositive.cjs.map +1 -1
- package/dist/typed/isPositive.d.ts +26 -0
- package/dist/typed/isPositive.d.ts.map +1 -0
- package/dist/typed/isPositive.js +7 -6
- package/dist/typed/isPositive.js.map +1 -1
- package/dist/typed/isPrimitive.cjs +2 -2
- package/dist/typed/isPrimitive.cjs.map +1 -1
- package/dist/typed/isPrimitive.d.ts +18 -0
- package/dist/typed/isPrimitive.d.ts.map +1 -0
- package/dist/typed/isPrimitive.js +8 -9
- package/dist/typed/isPrimitive.js.map +1 -1
- package/dist/typed/isPromise.cjs +2 -2
- package/dist/typed/isPromise.cjs.map +1 -1
- package/dist/typed/isPromise.d.ts +17 -0
- package/dist/typed/isPromise.d.ts.map +1 -0
- package/dist/typed/isPromise.js +7 -9
- package/dist/typed/isPromise.js.map +1 -1
- package/dist/typed/isRegex.cjs +2 -2
- package/dist/typed/isRegex.cjs.map +1 -1
- package/dist/typed/isRegex.d.ts +21 -0
- package/dist/typed/isRegex.d.ts.map +1 -0
- package/dist/typed/isRegex.js +7 -6
- package/dist/typed/isRegex.js.map +1 -1
- package/dist/typed/isString.cjs +2 -2
- package/dist/typed/isString.cjs.map +1 -1
- package/dist/typed/isString.d.ts +16 -0
- package/dist/typed/isString.d.ts.map +1 -0
- package/dist/typed/isString.js +8 -8
- package/dist/typed/isString.js.map +1 -1
- package/dist/typed/isWithin.cjs +2 -2
- package/dist/typed/isWithin.cjs.map +1 -1
- package/dist/typed/isWithin.d.ts +20 -0
- package/dist/typed/isWithin.d.ts.map +1 -0
- package/dist/typed/isWithin.js +9 -9
- package/dist/typed/isWithin.js.map +1 -1
- package/dist/typed/isZero.cjs +2 -2
- package/dist/typed/isZero.cjs.map +1 -1
- package/dist/typed/isZero.d.ts +25 -0
- package/dist/typed/isZero.d.ts.map +1 -0
- package/dist/typed/isZero.js +7 -6
- package/dist/typed/isZero.js.map +1 -1
- package/dist/typed/typeOf.cjs +2 -2
- package/dist/typed/typeOf.cjs.map +1 -1
- package/dist/typed/typeOf.d.ts +30 -0
- package/dist/typed/typeOf.d.ts.map +1 -0
- package/dist/typed/typeOf.js +11 -13
- package/dist/typed/typeOf.js.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +77 -12
- package/dist/array/aggregate.cjs +0 -2
- package/dist/array/aggregate.cjs.map +0 -1
- package/dist/array/aggregate.js +0 -16
- package/dist/array/aggregate.js.map +0 -1
- package/dist/array/alternate.cjs +0 -2
- package/dist/array/alternate.cjs.map +0 -1
- package/dist/array/alternate.js +0 -9
- package/dist/array/alternate.js.map +0 -1
- package/dist/array/arrange.cjs +0 -2
- package/dist/array/arrange.cjs.map +0 -1
- package/dist/array/arrange.js +0 -6
- package/dist/array/arrange.js.map +0 -1
- package/dist/array/compact.cjs +0 -2
- package/dist/array/compact.cjs.map +0 -1
- package/dist/array/compact.js +0 -9
- package/dist/array/compact.js.map +0 -1
- package/dist/array/every.cjs +0 -2
- package/dist/array/every.cjs.map +0 -1
- package/dist/array/every.js +0 -14
- package/dist/array/every.js.map +0 -1
- package/dist/array/filter.cjs +0 -2
- package/dist/array/filter.cjs.map +0 -1
- package/dist/array/filter.js +0 -14
- package/dist/array/filter.js.map +0 -1
- package/dist/array/find.cjs +0 -2
- package/dist/array/find.cjs.map +0 -1
- package/dist/array/find.js +0 -14
- package/dist/array/find.js.map +0 -1
- package/dist/array/findIndex.cjs +0 -2
- package/dist/array/findIndex.cjs.map +0 -1
- package/dist/array/findIndex.js +0 -14
- package/dist/array/findIndex.js.map +0 -1
- package/dist/array/findLast.cjs +0 -2
- package/dist/array/findLast.cjs.map +0 -1
- package/dist/array/findLast.js +0 -14
- package/dist/array/findLast.js.map +0 -1
- package/dist/array/flatten.cjs +0 -2
- package/dist/array/flatten.cjs.map +0 -1
- package/dist/array/flatten.js +0 -7
- package/dist/array/flatten.js.map +0 -1
- package/dist/array/map.cjs +0 -2
- package/dist/array/map.cjs.map +0 -1
- package/dist/array/map.js +0 -18
- package/dist/array/map.js.map +0 -1
- package/dist/array/reduce.cjs +0 -2
- package/dist/array/reduce.cjs.map +0 -1
- package/dist/array/reduce.js +0 -16
- package/dist/array/reduce.js.map +0 -1
- package/dist/array/shift.cjs +0 -2
- package/dist/array/shift.cjs.map +0 -1
- package/dist/array/shift.js +0 -13
- package/dist/array/shift.js.map +0 -1
- package/dist/array/some.cjs +0 -2
- package/dist/array/some.cjs.map +0 -1
- package/dist/array/some.js +0 -14
- package/dist/array/some.js.map +0 -1
- package/dist/array/substitute.cjs +0 -2
- package/dist/array/substitute.cjs.map +0 -1
- package/dist/array/substitute.js +0 -13
- package/dist/array/substitute.js.map +0 -1
- package/dist/async/delay.cjs +0 -2
- package/dist/async/delay.cjs.map +0 -1
- package/dist/async/delay.js +0 -8
- package/dist/async/delay.js.map +0 -1
- package/dist/function/proxy.cjs +0 -2
- package/dist/function/proxy.cjs.map +0 -1
- package/dist/function/proxy.js +0 -22
- package/dist/function/proxy.js.map +0 -1
- package/dist/function/prune.cjs +0 -2
- package/dist/function/prune.cjs.map +0 -1
- package/dist/function/prune.js +0 -30
- package/dist/function/prune.js.map +0 -1
- package/dist/function/worker.cjs +0 -14
- package/dist/function/worker.cjs.map +0 -1
- package/dist/function/worker.js +0 -29
- package/dist/function/worker.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/logit/dist/logit.cjs +0 -2
- package/dist/logit/dist/logit.cjs.map +0 -1
- package/dist/logit/dist/logit.js +0 -263
- package/dist/logit/dist/logit.js.map +0 -1
- package/dist/math/add.cjs +0 -2
- package/dist/math/add.cjs.map +0 -1
- package/dist/math/add.js +0 -9
- package/dist/math/add.js.map +0 -1
- package/dist/math/boil.cjs +0 -2
- package/dist/math/boil.cjs.map +0 -1
- package/dist/math/boil.js +0 -17
- package/dist/math/boil.js.map +0 -1
- package/dist/math/divide.cjs +0 -2
- package/dist/math/divide.cjs.map +0 -1
- package/dist/math/divide.js +0 -11
- package/dist/math/divide.js.map +0 -1
- package/dist/math/multiply.cjs +0 -2
- package/dist/math/multiply.cjs.map +0 -1
- package/dist/math/multiply.js +0 -9
- package/dist/math/multiply.js.map +0 -1
- package/dist/math/rate.cjs +0 -2
- package/dist/math/rate.cjs.map +0 -1
- package/dist/math/rate.js +0 -9
- package/dist/math/rate.js.map +0 -1
- package/dist/math/subtract.cjs +0 -2
- package/dist/math/subtract.cjs.map +0 -1
- package/dist/math/subtract.js +0 -9
- package/dist/math/subtract.js.map +0 -1
- package/dist/object/cache.cjs +0 -2
- package/dist/object/cache.cjs.map +0 -1
- package/dist/object/cache.js +0 -63
- package/dist/object/cache.js.map +0 -1
- package/dist/object/clone.cjs +0 -2
- package/dist/object/clone.cjs.map +0 -1
- package/dist/object/clone.js +0 -17
- package/dist/object/clone.js.map +0 -1
- package/dist/object/entries.cjs +0 -2
- package/dist/object/entries.cjs.map +0 -1
- package/dist/object/entries.js +0 -9
- package/dist/object/entries.js.map +0 -1
- package/dist/object/keys.cjs +0 -2
- package/dist/object/keys.cjs.map +0 -1
- package/dist/object/keys.js +0 -9
- package/dist/object/keys.js.map +0 -1
- package/dist/object/values.cjs +0 -2
- package/dist/object/values.cjs.map +0 -1
- package/dist/object/values.js +0 -9
- package/dist/object/values.js.map +0 -1
- package/dist/typed/ge.cjs +0 -2
- package/dist/typed/ge.cjs.map +0 -1
- package/dist/typed/ge.js +0 -7
- package/dist/typed/ge.js.map +0 -1
- package/dist/typed/gt.cjs +0 -2
- package/dist/typed/gt.cjs.map +0 -1
- package/dist/typed/gt.js +0 -7
- package/dist/typed/gt.js.map +0 -1
- package/dist/typed/le.cjs +0 -2
- package/dist/typed/le.cjs.map +0 -1
- package/dist/typed/le.js +0 -7
- package/dist/typed/le.js.map +0 -1
- package/dist/typed/lt.cjs +0 -2
- package/dist/typed/lt.cjs.map +0 -1
- package/dist/typed/lt.js +0 -7
- package/dist/typed/lt.js.map +0 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates an array of numbers progressing from start up to, but not including, end. A step is used to specify the difference between each number in the array.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* const start = 0;
|
|
7
|
+
* const stop = 10;
|
|
8
|
+
* const step = 2;
|
|
9
|
+
*
|
|
10
|
+
* range(start, stop, step) // [0, 2, 4, 6, 8];
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @param start - The start of the range.
|
|
14
|
+
* @param stop - The end of the range.
|
|
15
|
+
* @param step - The value to increment or decrement by.
|
|
16
|
+
*
|
|
17
|
+
* @returns The range of numbers.
|
|
18
|
+
*
|
|
19
|
+
* @throws {TypeError} If start, stop, or step are not finite numbers.
|
|
20
|
+
* @throws {Error} If step is 0 or if range exceeds maximum size.
|
|
21
|
+
*/
|
|
22
|
+
export declare function range(start: number, stop: number, step: number): number[];
|
|
23
|
+
//# sourceMappingURL=range.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../src/math/range.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,YAoB9D"}
|
package/dist/math/range.js
CHANGED
|
@@ -1,18 +1,29 @@
|
|
|
1
|
-
import { assert as
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
import { assert as e } from "../function/assert.js";
|
|
2
|
+
//#region src/math/range.ts
|
|
3
|
+
function t(t, n, r) {
|
|
4
|
+
if (e(Number.isFinite(t) && Number.isFinite(n) && Number.isFinite(r), "start, stop, and step must be finite numbers", {
|
|
5
|
+
args: {
|
|
6
|
+
start: t,
|
|
7
|
+
step: r,
|
|
8
|
+
stop: n
|
|
9
|
+
},
|
|
10
|
+
type: TypeError
|
|
11
|
+
}), e(r !== 0, "Step cannot be 0", {
|
|
12
|
+
args: { step: r },
|
|
13
|
+
type: Error
|
|
14
|
+
}), t === n) return [];
|
|
15
|
+
let i = Math.max(0, Math.ceil((n - t) / r + 2 ** -52));
|
|
16
|
+
return e(i <= 1e7, "Range exceeds maximum allowed size of 10,000,000", {
|
|
17
|
+
args: {
|
|
18
|
+
length: i,
|
|
19
|
+
start: t,
|
|
20
|
+
step: r,
|
|
21
|
+
stop: n
|
|
22
|
+
},
|
|
23
|
+
type: Error
|
|
24
|
+
}), Array.from({ length: i }, (e, n) => t + n * r);
|
|
14
25
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
//# sourceMappingURL=range.js.map
|
|
26
|
+
//#endregion
|
|
27
|
+
export { t as range };
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=range.js.map
|
package/dist/math/range.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"range.js","sources":["../../src/math/range.ts"],"sourcesContent":["import { assert } from '../function/assert';\n\n/**\n * Creates an array of numbers progressing from start up to, but not including, end. A step is used to specify the difference between each number in the array.\n *\n * @example\n * ```ts\n * const start = 0;\n * const stop = 10;\n * const step = 2;\n *\n * range(start, stop, step) // [0, 2, 4, 6, 8];\n * ```\n *\n * @param start - The start of the range.\n * @param stop - The end of the range.\n * @param step - The value to increment or decrement by.\n *\n * @returns The range of numbers.\n *\n * @throws {TypeError} If start, stop, or step are not finite numbers.\n * @throws {Error} If step is 0 or if range exceeds maximum size.\n */\nexport function range(start: number, stop: number, step: number) {\n assert(\n Number.isFinite(start) && Number.isFinite(stop) && Number.isFinite(step),\n 'start, stop, and step must be finite numbers',\n { args: { start, step, stop }, type: TypeError },\n );\n assert(step !== 0, 'Step cannot be 0', { args: { step }, type: Error });\n\n if (start === stop) {\n return [];\n }\n\n const length = Math.max(0, Math.ceil((stop - start) / step + Number.EPSILON));\n\n assert(length <= 10_000_000, 'Range exceeds maximum allowed size of 10,000,000', {\n args: { length, start, step, stop },\n type: Error,\n });\n\n return Array.from({ length }, (_, i) => start + i * step);\n}\n"],"
|
|
1
|
+
{"version":3,"file":"range.js","names":[],"sources":["../../src/math/range.ts"],"sourcesContent":["import { assert } from '../function/assert';\n\n/**\n * Creates an array of numbers progressing from start up to, but not including, end. A step is used to specify the difference between each number in the array.\n *\n * @example\n * ```ts\n * const start = 0;\n * const stop = 10;\n * const step = 2;\n *\n * range(start, stop, step) // [0, 2, 4, 6, 8];\n * ```\n *\n * @param start - The start of the range.\n * @param stop - The end of the range.\n * @param step - The value to increment or decrement by.\n *\n * @returns The range of numbers.\n *\n * @throws {TypeError} If start, stop, or step are not finite numbers.\n * @throws {Error} If step is 0 or if range exceeds maximum size.\n */\nexport function range(start: number, stop: number, step: number) {\n assert(\n Number.isFinite(start) && Number.isFinite(stop) && Number.isFinite(step),\n 'start, stop, and step must be finite numbers',\n { args: { start, step, stop }, type: TypeError },\n );\n assert(step !== 0, 'Step cannot be 0', { args: { step }, type: Error });\n\n if (start === stop) {\n return [];\n }\n\n const length = Math.max(0, Math.ceil((stop - start) / step + Number.EPSILON));\n\n assert(length <= 10_000_000, 'Range exceeds maximum allowed size of 10,000,000', {\n args: { length, start, step, stop },\n type: Error,\n });\n\n return Array.from({ length }, (_, i) => start + i * step);\n}\n"],"mappings":";;AAuBA,SAAgB,EAAM,GAAe,GAAc,GAAc;AAQ/D,KAPA,EACE,OAAO,SAAS,EAAM,IAAI,OAAO,SAAS,EAAK,IAAI,OAAO,SAAS,EAAK,EACxE,gDACA;EAAE,MAAM;GAAE;GAAO;GAAM;GAAM;EAAE,MAAM;EAAW,CACjD,EACD,EAAO,MAAS,GAAG,oBAAoB;EAAE,MAAM,EAAE,SAAM;EAAE,MAAM;EAAO,CAAC,EAEnE,MAAU,EACZ,QAAO,EAAE;CAGX,IAAM,IAAS,KAAK,IAAI,GAAG,KAAK,MAAM,IAAO,KAAS,aAAsB,CAAC;AAO7E,QALA,EAAO,KAAU,KAAY,oDAAoD;EAC/E,MAAM;GAAE;GAAQ;GAAO;GAAM;GAAM;EACnC,MAAM;EACP,CAAC,EAEK,MAAM,KAAK,EAAE,WAAQ,GAAG,GAAG,MAAM,IAAQ,IAAI,EAAK"}
|
package/dist/math/round.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
//# sourceMappingURL=round.cjs.map
|
|
1
|
+
function e(e,t=0,n=Math.round){if(t===0)return n(e);let r=10**Math.max(-323,Math.min(t,292));return n(e*r)/r}exports.round=e;
|
|
2
|
+
//# sourceMappingURL=round.cjs.map
|
package/dist/math/round.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"round.cjs","sources":["../../src/math/round.ts"],"sourcesContent":["/**\n * Rounds a number to a specified number of decimal places.\n *\n * The `precision` argument is limited to be within the range of -323 to +292 to avoid NaN results.\n *\n * @example\n * ```ts\n * round(123.456) // 123\n * round(123.456, -1) // 120\n * round(123.456, 1, Math.ceil) // 123.5\n * round(123.456, 1, Math.floor) // 123.4\n * ```\n *\n * @param value - The number to round.\n * @param precision - The number of decimal places to round to.\n * @param [parser] - (optional) function to convert the number to a value.\n *\n * @returns The rounded number.\n */\nexport function round(value: number, precision = 0, parser: (value: number) => number = Math.round): number {\n if (precision === 0) return parser(value);\n\n const factor = 10 ** Math.max(-323, Math.min(precision, 292));\n return parser(value * factor) / factor;\n}\n"],"
|
|
1
|
+
{"version":3,"file":"round.cjs","names":[],"sources":["../../src/math/round.ts"],"sourcesContent":["/**\n * Rounds a number to a specified number of decimal places.\n *\n * The `precision` argument is limited to be within the range of -323 to +292 to avoid NaN results.\n *\n * @example\n * ```ts\n * round(123.456) // 123\n * round(123.456, -1) // 120\n * round(123.456, 1, Math.ceil) // 123.5\n * round(123.456, 1, Math.floor) // 123.4\n * ```\n *\n * @param value - The number to round.\n * @param precision - The number of decimal places to round to.\n * @param [parser] - (optional) function to convert the number to a value.\n *\n * @returns The rounded number.\n */\nexport function round(value: number, precision = 0, parser: (value: number) => number = Math.round): number {\n if (precision === 0) return parser(value);\n\n const factor = 10 ** Math.max(-323, Math.min(precision, 292));\n\n return parser(value * factor) / factor;\n}\n"],"mappings":"AAmBA,SAAgB,EAAM,EAAe,EAAY,EAAG,EAAoC,KAAK,MAAe,CAC1G,GAAI,IAAc,EAAG,OAAO,EAAO,EAAM,CAEzC,IAAM,EAAS,IAAM,KAAK,IAAI,KAAM,KAAK,IAAI,EAAW,IAAI,CAAC,CAE7D,OAAO,EAAO,EAAQ,EAAO,CAAG"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rounds a number to a specified number of decimal places.
|
|
3
|
+
*
|
|
4
|
+
* The `precision` argument is limited to be within the range of -323 to +292 to avoid NaN results.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* round(123.456) // 123
|
|
9
|
+
* round(123.456, -1) // 120
|
|
10
|
+
* round(123.456, 1, Math.ceil) // 123.5
|
|
11
|
+
* round(123.456, 1, Math.floor) // 123.4
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* @param value - The number to round.
|
|
15
|
+
* @param precision - The number of decimal places to round to.
|
|
16
|
+
* @param [parser] - (optional) function to convert the number to a value.
|
|
17
|
+
*
|
|
18
|
+
* @returns The rounded number.
|
|
19
|
+
*/
|
|
20
|
+
export declare function round(value: number, precision?: number, parser?: (value: number) => number): number;
|
|
21
|
+
//# sourceMappingURL=round.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"round.d.ts","sourceRoot":"","sources":["../../src/math/round.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,SAAI,EAAE,MAAM,GAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAmB,GAAG,MAAM,CAM1G"}
|
package/dist/math/round.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
//#region src/math/round.ts
|
|
2
|
+
function e(e, t = 0, n = Math.round) {
|
|
3
|
+
if (t === 0) return n(e);
|
|
4
|
+
let r = 10 ** Math.max(-323, Math.min(t, 292));
|
|
5
|
+
return n(e * r) / r;
|
|
5
6
|
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
//# sourceMappingURL=round.js.map
|
|
7
|
+
//#endregion
|
|
8
|
+
export { e as round };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=round.js.map
|
package/dist/math/round.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"round.js","sources":["../../src/math/round.ts"],"sourcesContent":["/**\n * Rounds a number to a specified number of decimal places.\n *\n * The `precision` argument is limited to be within the range of -323 to +292 to avoid NaN results.\n *\n * @example\n * ```ts\n * round(123.456) // 123\n * round(123.456, -1) // 120\n * round(123.456, 1, Math.ceil) // 123.5\n * round(123.456, 1, Math.floor) // 123.4\n * ```\n *\n * @param value - The number to round.\n * @param precision - The number of decimal places to round to.\n * @param [parser] - (optional) function to convert the number to a value.\n *\n * @returns The rounded number.\n */\nexport function round(value: number, precision = 0, parser: (value: number) => number = Math.round): number {\n if (precision === 0) return parser(value);\n\n const factor = 10 ** Math.max(-323, Math.min(precision, 292));\n return parser(value * factor) / factor;\n}\n"],"
|
|
1
|
+
{"version":3,"file":"round.js","names":[],"sources":["../../src/math/round.ts"],"sourcesContent":["/**\n * Rounds a number to a specified number of decimal places.\n *\n * The `precision` argument is limited to be within the range of -323 to +292 to avoid NaN results.\n *\n * @example\n * ```ts\n * round(123.456) // 123\n * round(123.456, -1) // 120\n * round(123.456, 1, Math.ceil) // 123.5\n * round(123.456, 1, Math.floor) // 123.4\n * ```\n *\n * @param value - The number to round.\n * @param precision - The number of decimal places to round to.\n * @param [parser] - (optional) function to convert the number to a value.\n *\n * @returns The rounded number.\n */\nexport function round(value: number, precision = 0, parser: (value: number) => number = Math.round): number {\n if (precision === 0) return parser(value);\n\n const factor = 10 ** Math.max(-323, Math.min(precision, 292));\n\n return parser(value * factor) / factor;\n}\n"],"mappings":";AAmBA,SAAgB,EAAM,GAAe,IAAY,GAAG,IAAoC,KAAK,OAAe;AAC1G,KAAI,MAAc,EAAG,QAAO,EAAO,EAAM;CAEzC,IAAM,IAAS,MAAM,KAAK,IAAI,MAAM,KAAK,IAAI,GAAW,IAAI,CAAC;AAE7D,QAAO,EAAO,IAAQ,EAAO,GAAG"}
|
package/dist/math/sum.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
//# sourceMappingURL=sum.cjs.map
|
|
1
|
+
function e(e,t){return e.length===0?0:e.reduce((e,n)=>{let r=t?t(n):n;if(Number.isNaN(r))throw TypeError(`Cannot sum NaN values`);return e+r},0)}exports.sum=e;
|
|
2
|
+
//# sourceMappingURL=sum.cjs.map
|
package/dist/math/sum.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sum.cjs","sources":["../../src/math/sum.ts"],"sourcesContent":["/**\n * Sum numbers in an array or numbers mapped by a callback function.\n *\n * @example\n * ```ts\n * sum([1, 2, 3]) // 6\n * sum([{value: 1}, {value: 2}, {value: 3}], (item) => item.value) // 6\n * sum(['apple', 'banana', 'cherry']) // TypeError\n * ```\n *\n * @param array - The array to sum.\n * @param callback - An optional callback function to map the values.\n *\n * @returns The sum of the numbers in the array or the sum of the mapped values.\n */\nexport function sum<T>(array: T[], callback?: (item: T) => number): number
|
|
1
|
+
{"version":3,"file":"sum.cjs","names":[],"sources":["../../src/math/sum.ts"],"sourcesContent":["/**\n * Sum numbers in an array or numbers mapped by a callback function.\n *\n * @example\n * ```ts\n * sum([1, 2, 3]) // 6\n * sum([{value: 1}, {value: 2}, {value: 3}], (item) => item.value) // 6\n * sum(['apple', 'banana', 'cherry']) // TypeError\n * ```\n *\n * @param array - The array to sum.\n * @param callback - An optional callback function to map the values.\n *\n * @returns The sum of the numbers in the array or the sum of the mapped values.\n */\nexport function sum<T>(array: T[], callback?: (item: T) => number): number {\n if (array.length === 0) return 0;\n\n return array.reduce<number>((acc, item) => {\n const val = callback ? callback(item) : (item as unknown as number);\n\n if (Number.isNaN(val)) {\n throw new TypeError('Cannot sum NaN values');\n }\n\n return acc + val;\n }, 0);\n}\n"],"mappings":"AAeA,SAAgB,EAAO,EAAY,EAAwC,CAGzE,OAFI,EAAM,SAAW,EAAU,EAExB,EAAM,QAAgB,EAAK,IAAS,CACzC,IAAM,EAAM,EAAW,EAAS,EAAK,CAAI,EAEzC,GAAI,OAAO,MAAM,EAAI,CACnB,MAAU,UAAU,wBAAwB,CAG9C,OAAO,EAAM,GACZ,EAAE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sum numbers in an array or numbers mapped by a callback function.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* sum([1, 2, 3]) // 6
|
|
7
|
+
* sum([{value: 1}, {value: 2}, {value: 3}], (item) => item.value) // 6
|
|
8
|
+
* sum(['apple', 'banana', 'cherry']) // TypeError
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* @param array - The array to sum.
|
|
12
|
+
* @param callback - An optional callback function to map the values.
|
|
13
|
+
*
|
|
14
|
+
* @returns The sum of the numbers in the array or the sum of the mapped values.
|
|
15
|
+
*/
|
|
16
|
+
export declare function sum<T>(array: T[], callback?: (item: T) => number): number;
|
|
17
|
+
//# sourceMappingURL=sum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sum.d.ts","sourceRoot":"","sources":["../../src/math/sum.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,CAYzE"}
|
package/dist/math/sum.js
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
throw new TypeError("Cannot sum NaN values");
|
|
9
|
-
return o + e;
|
|
10
|
-
}, 0);
|
|
1
|
+
//#region src/math/sum.ts
|
|
2
|
+
function e(e, t) {
|
|
3
|
+
return e.length === 0 ? 0 : e.reduce((e, n) => {
|
|
4
|
+
let r = t ? t(n) : n;
|
|
5
|
+
if (Number.isNaN(r)) throw TypeError("Cannot sum NaN values");
|
|
6
|
+
return e + r;
|
|
7
|
+
}, 0);
|
|
11
8
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
//# sourceMappingURL=sum.js.map
|
|
9
|
+
//#endregion
|
|
10
|
+
export { e as sum };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=sum.js.map
|
package/dist/math/sum.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sum.js","sources":["../../src/math/sum.ts"],"sourcesContent":["/**\n * Sum numbers in an array or numbers mapped by a callback function.\n *\n * @example\n * ```ts\n * sum([1, 2, 3]) // 6\n * sum([{value: 1}, {value: 2}, {value: 3}], (item) => item.value) // 6\n * sum(['apple', 'banana', 'cherry']) // TypeError\n * ```\n *\n * @param array - The array to sum.\n * @param callback - An optional callback function to map the values.\n *\n * @returns The sum of the numbers in the array or the sum of the mapped values.\n */\nexport function sum<T>(array: T[], callback?: (item: T) => number): number
|
|
1
|
+
{"version":3,"file":"sum.js","names":[],"sources":["../../src/math/sum.ts"],"sourcesContent":["/**\n * Sum numbers in an array or numbers mapped by a callback function.\n *\n * @example\n * ```ts\n * sum([1, 2, 3]) // 6\n * sum([{value: 1}, {value: 2}, {value: 3}], (item) => item.value) // 6\n * sum(['apple', 'banana', 'cherry']) // TypeError\n * ```\n *\n * @param array - The array to sum.\n * @param callback - An optional callback function to map the values.\n *\n * @returns The sum of the numbers in the array or the sum of the mapped values.\n */\nexport function sum<T>(array: T[], callback?: (item: T) => number): number {\n if (array.length === 0) return 0;\n\n return array.reduce<number>((acc, item) => {\n const val = callback ? callback(item) : (item as unknown as number);\n\n if (Number.isNaN(val)) {\n throw new TypeError('Cannot sum NaN values');\n }\n\n return acc + val;\n }, 0);\n}\n"],"mappings":";AAeA,SAAgB,EAAO,GAAY,GAAwC;AAGzE,QAFI,EAAM,WAAW,IAAU,IAExB,EAAM,QAAgB,GAAK,MAAS;EACzC,IAAM,IAAM,IAAW,EAAS,EAAK,GAAI;AAEzC,MAAI,OAAO,MAAM,EAAI,CACnB,OAAU,UAAU,wBAAwB;AAG9C,SAAO,IAAM;IACZ,EAAE"}
|
package/dist/money/currency.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
//# sourceMappingURL=currency.cjs.map
|
|
1
|
+
function e(e,n={}){let{locale:r=`en-US`,maximumFractionDigits:i,minimumFractionDigits:a,style:o=`symbol`}=n,s=t(e.currency),c=10**s,l=Number(e.amount)/c;return new Intl.NumberFormat(r,{currency:e.currency,currencyDisplay:o,maximumFractionDigits:i??s,minimumFractionDigits:a??s,style:`currency`}).format(l)}function t(e){return new Intl.NumberFormat(`en`,{currency:e,style:`currency`}).resolvedOptions().maximumFractionDigits??2}exports.currency=e;
|
|
2
|
+
//# sourceMappingURL=currency.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currency.cjs","sources":["../../src/money/currency.ts"],"sourcesContent":["import type { Money } from './types';\n\n/**\n * Options for currency formatting.\n */\nexport type CurrencyFormatOptions = {\n locale?: string; // BCP 47 language tag (e.g., 'en-US', 'de-DE')\n
|
|
1
|
+
{"version":3,"file":"currency.cjs","names":[],"sources":["../../src/money/currency.ts"],"sourcesContent":["import type { Money } from './types';\n\n/**\n * Options for currency formatting.\n */\nexport type CurrencyFormatOptions = {\n locale?: string; // BCP 47 language tag (e.g., 'en-US', 'de-DE')\n maximumFractionDigits?: number; // Maximum decimal places\n minimumFractionDigits?: number; // Minimum decimal places\n style?: 'symbol' | 'code' | 'name'; // Display style\n};\n\n/**\n * Formats a monetary amount as a currency string with proper locale and symbol.\n * Handles decimal places automatically based on currency.\n *\n * @example\n * ```ts\n * const money = { amount: 123456n, currency: 'USD' };\n *\n * currency(money); // '$1,234.56' (default en-US)\n * currency(money, { locale: 'de-DE' }); // '1.234,56 $'\n * currency(money, { style: 'code' }); // 'USD 1,234.56'\n * currency(money, { style: 'name' }); // '1,234.56 US dollars'\n * ```\n *\n * @param money - Money object to format\n * @param options - Formatting options\n * @returns Formatted currency string\n */\nexport function currency(money: Money, options: CurrencyFormatOptions = {}): string {\n const { locale = 'en-US', maximumFractionDigits, minimumFractionDigits, style = 'symbol' } = options;\n\n // Get decimal places for currency (default to 2 for most currencies)\n const decimalPlaces = getCurrencyDecimals(money.currency);\n\n // Convert bigint amount to decimal (divide by 10^decimalPlaces)\n const divisor = 10 ** decimalPlaces;\n const amount = Number(money.amount) / divisor;\n\n const formatter = new Intl.NumberFormat(locale, {\n currency: money.currency,\n currencyDisplay: style,\n maximumFractionDigits: maximumFractionDigits ?? decimalPlaces,\n minimumFractionDigits: minimumFractionDigits ?? decimalPlaces,\n style: 'currency',\n });\n\n return formatter.format(amount);\n}\n\nfunction getCurrencyDecimals(currencyCode: string): number {\n return (\n new Intl.NumberFormat('en', { currency: currencyCode, style: 'currency' }).resolvedOptions()\n .maximumFractionDigits ?? 2\n );\n}\n"],"mappings":"AA8BA,SAAgB,EAAS,EAAc,EAAiC,EAAE,CAAU,CAClF,GAAM,CAAE,SAAS,QAAS,wBAAuB,wBAAuB,QAAQ,UAAa,EAGvF,EAAgB,EAAoB,EAAM,SAAS,CAGnD,EAAU,IAAM,EAChB,EAAS,OAAO,EAAM,OAAO,CAAG,EAUtC,OARkB,IAAI,KAAK,aAAa,EAAQ,CAC9C,SAAU,EAAM,SAChB,gBAAiB,EACjB,sBAAuB,GAAyB,EAChD,sBAAuB,GAAyB,EAChD,MAAO,WACR,CAAC,CAEe,OAAO,EAAO,CAGjC,SAAS,EAAoB,EAA8B,CACzD,OACE,IAAI,KAAK,aAAa,KAAM,CAAE,SAAU,EAAc,MAAO,WAAY,CAAC,CAAC,iBAAiB,CACzF,uBAAyB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Money } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Options for currency formatting.
|
|
4
|
+
*/
|
|
5
|
+
export type CurrencyFormatOptions = {
|
|
6
|
+
locale?: string;
|
|
7
|
+
maximumFractionDigits?: number;
|
|
8
|
+
minimumFractionDigits?: number;
|
|
9
|
+
style?: 'symbol' | 'code' | 'name';
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Formats a monetary amount as a currency string with proper locale and symbol.
|
|
13
|
+
* Handles decimal places automatically based on currency.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* const money = { amount: 123456n, currency: 'USD' };
|
|
18
|
+
*
|
|
19
|
+
* currency(money); // '$1,234.56' (default en-US)
|
|
20
|
+
* currency(money, { locale: 'de-DE' }); // '1.234,56 $'
|
|
21
|
+
* currency(money, { style: 'code' }); // 'USD 1,234.56'
|
|
22
|
+
* currency(money, { style: 'name' }); // '1,234.56 US dollars'
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @param money - Money object to format
|
|
26
|
+
* @param options - Formatting options
|
|
27
|
+
* @returns Formatted currency string
|
|
28
|
+
*/
|
|
29
|
+
export declare function currency(money: Money, options?: CurrencyFormatOptions): string;
|
|
30
|
+
//# sourceMappingURL=currency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"currency.d.ts","sourceRoot":"","sources":["../../src/money/currency.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;CACpC,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,qBAA0B,GAAG,MAAM,CAmBlF"}
|
package/dist/money/currency.js
CHANGED
|
@@ -1,49 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
case "name":
|
|
12
|
-
r = "name";
|
|
13
|
-
break;
|
|
14
|
-
default:
|
|
15
|
-
r = "symbol";
|
|
16
|
-
}
|
|
17
|
-
return new Intl.NumberFormat(t, {
|
|
18
|
-
currency: e.currency,
|
|
19
|
-
currencyDisplay: r,
|
|
20
|
-
maximumFractionDigits: a ?? n,
|
|
21
|
-
minimumFractionDigits: s ?? n,
|
|
22
|
-
style: "currency"
|
|
23
|
-
}).format(o);
|
|
1
|
+
//#region src/money/currency.ts
|
|
2
|
+
function e(e, n = {}) {
|
|
3
|
+
let { locale: r = "en-US", maximumFractionDigits: i, minimumFractionDigits: a, style: o = "symbol" } = n, s = t(e.currency), c = 10 ** s, l = Number(e.amount) / c;
|
|
4
|
+
return new Intl.NumberFormat(r, {
|
|
5
|
+
currency: e.currency,
|
|
6
|
+
currencyDisplay: o,
|
|
7
|
+
maximumFractionDigits: i ?? s,
|
|
8
|
+
minimumFractionDigits: a ?? s,
|
|
9
|
+
style: "currency"
|
|
10
|
+
}).format(l);
|
|
24
11
|
}
|
|
25
|
-
function
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
"GNF",
|
|
31
|
-
"JPY",
|
|
32
|
-
"KMF",
|
|
33
|
-
"KRW",
|
|
34
|
-
"MGA",
|
|
35
|
-
"PYG",
|
|
36
|
-
"RWF",
|
|
37
|
-
"UGX",
|
|
38
|
-
"VND",
|
|
39
|
-
"VUV",
|
|
40
|
-
"XAF",
|
|
41
|
-
"XOF",
|
|
42
|
-
"XPF"
|
|
43
|
-
], t = ["BHD", "IQD", "JOD", "KWD", "LYD", "OMR", "TND"];
|
|
44
|
-
return c.includes(e.toUpperCase()) ? 0 : t.includes(e.toUpperCase()) ? 3 : 2;
|
|
12
|
+
function t(e) {
|
|
13
|
+
return new Intl.NumberFormat("en", {
|
|
14
|
+
currency: e,
|
|
15
|
+
style: "currency"
|
|
16
|
+
}).resolvedOptions().maximumFractionDigits ?? 2;
|
|
45
17
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
//# sourceMappingURL=currency.js.map
|
|
18
|
+
//#endregion
|
|
19
|
+
export { e as currency };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=currency.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currency.js","sources":["../../src/money/currency.ts"],"sourcesContent":["import type { Money } from './types';\n\n/**\n * Options for currency formatting.\n */\nexport type CurrencyFormatOptions = {\n locale?: string; // BCP 47 language tag (e.g., 'en-US', 'de-DE')\n
|
|
1
|
+
{"version":3,"file":"currency.js","names":[],"sources":["../../src/money/currency.ts"],"sourcesContent":["import type { Money } from './types';\n\n/**\n * Options for currency formatting.\n */\nexport type CurrencyFormatOptions = {\n locale?: string; // BCP 47 language tag (e.g., 'en-US', 'de-DE')\n maximumFractionDigits?: number; // Maximum decimal places\n minimumFractionDigits?: number; // Minimum decimal places\n style?: 'symbol' | 'code' | 'name'; // Display style\n};\n\n/**\n * Formats a monetary amount as a currency string with proper locale and symbol.\n * Handles decimal places automatically based on currency.\n *\n * @example\n * ```ts\n * const money = { amount: 123456n, currency: 'USD' };\n *\n * currency(money); // '$1,234.56' (default en-US)\n * currency(money, { locale: 'de-DE' }); // '1.234,56 $'\n * currency(money, { style: 'code' }); // 'USD 1,234.56'\n * currency(money, { style: 'name' }); // '1,234.56 US dollars'\n * ```\n *\n * @param money - Money object to format\n * @param options - Formatting options\n * @returns Formatted currency string\n */\nexport function currency(money: Money, options: CurrencyFormatOptions = {}): string {\n const { locale = 'en-US', maximumFractionDigits, minimumFractionDigits, style = 'symbol' } = options;\n\n // Get decimal places for currency (default to 2 for most currencies)\n const decimalPlaces = getCurrencyDecimals(money.currency);\n\n // Convert bigint amount to decimal (divide by 10^decimalPlaces)\n const divisor = 10 ** decimalPlaces;\n const amount = Number(money.amount) / divisor;\n\n const formatter = new Intl.NumberFormat(locale, {\n currency: money.currency,\n currencyDisplay: style,\n maximumFractionDigits: maximumFractionDigits ?? decimalPlaces,\n minimumFractionDigits: minimumFractionDigits ?? decimalPlaces,\n style: 'currency',\n });\n\n return formatter.format(amount);\n}\n\nfunction getCurrencyDecimals(currencyCode: string): number {\n return (\n new Intl.NumberFormat('en', { currency: currencyCode, style: 'currency' }).resolvedOptions()\n .maximumFractionDigits ?? 2\n );\n}\n"],"mappings":";AA8BA,SAAgB,EAAS,GAAc,IAAiC,EAAE,EAAU;CAClF,IAAM,EAAE,YAAS,SAAS,0BAAuB,0BAAuB,WAAQ,aAAa,GAGvF,IAAgB,EAAoB,EAAM,SAAS,EAGnD,IAAU,MAAM,GAChB,IAAS,OAAO,EAAM,OAAO,GAAG;AAUtC,QARkB,IAAI,KAAK,aAAa,GAAQ;EAC9C,UAAU,EAAM;EAChB,iBAAiB;EACjB,uBAAuB,KAAyB;EAChD,uBAAuB,KAAyB;EAChD,OAAO;EACR,CAAC,CAEe,OAAO,EAAO;;AAGjC,SAAS,EAAoB,GAA8B;AACzD,QACE,IAAI,KAAK,aAAa,MAAM;EAAE,UAAU;EAAc,OAAO;EAAY,CAAC,CAAC,iBAAiB,CACzF,yBAAyB"}
|
package/dist/money/exchange.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
//# sourceMappingURL=exchange.cjs.map
|
|
1
|
+
function e(e,t){if(e.currency!==t.from)throw Error(`Currency mismatch: expected ${t.from}, got ${e.currency}`);let n=BigInt(Math.round(t.rate*1e6));return{amount:e.amount*n/1000000n,currency:t.to}}exports.exchange=e;
|
|
2
|
+
//# sourceMappingURL=exchange.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exchange.cjs","sources":["../../src/money/exchange.ts"],"sourcesContent":["import type { Money } from './types';\n\n/**\n * Exchange rate for currency conversion.\n */\nexport type ExchangeRate = {\n from: string; // Source currency code\n
|
|
1
|
+
{"version":3,"file":"exchange.cjs","names":[],"sources":["../../src/money/exchange.ts"],"sourcesContent":["import type { Money } from './types';\n\n/**\n * Exchange rate for currency conversion.\n */\nexport type ExchangeRate = {\n from: string; // Source currency code\n rate: number; // Exchange rate multiplier\n to: string; // Target currency code\n};\n\n/**\n * Converts money from one currency to another using the provided exchange rate.\n * Maintains precision by using bigint arithmetic.\n *\n * @example\n * ```ts\n * const usd = { amount: 100000n, currency: 'USD' }; // $1,000.00\n * const rate = { from: 'USD', to: 'EUR', rate: 0.85 };\n *\n * exchange(usd, rate);\n * // { amount: 85000n, currency: 'EUR' } // €850.00\n * ```\n *\n * @param money - Money to convert\n * @param rate - Exchange rate information\n * @returns Converted money in target currency\n * @throws {Error} If source currency doesn't match rate.from\n */\nexport function exchange(money: Money, rate: ExchangeRate): Money {\n if (money.currency !== rate.from) {\n throw new Error(`Currency mismatch: expected ${rate.from}, got ${money.currency}`);\n }\n\n // Convert rate to avoid floating point issues\n // Multiply by 1000000 for precision, then divide back\n const rateBigInt = BigInt(Math.round(rate.rate * 1000000));\n const convertedAmount = (money.amount * rateBigInt) / 1000000n;\n\n return {\n amount: convertedAmount,\n currency: rate.to,\n };\n}\n"],"mappings":"AA6BA,SAAgB,EAAS,EAAc,EAA2B,CAChE,GAAI,EAAM,WAAa,EAAK,KAC1B,MAAU,MAAM,+BAA+B,EAAK,KAAK,QAAQ,EAAM,WAAW,CAKpF,IAAM,EAAa,OAAO,KAAK,MAAM,EAAK,KAAO,IAAQ,CAAC,CAG1D,MAAO,CACL,OAHuB,EAAM,OAAS,EAAc,SAIpD,SAAU,EAAK,GAChB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Money } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Exchange rate for currency conversion.
|
|
4
|
+
*/
|
|
5
|
+
export type ExchangeRate = {
|
|
6
|
+
from: string;
|
|
7
|
+
rate: number;
|
|
8
|
+
to: string;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Converts money from one currency to another using the provided exchange rate.
|
|
12
|
+
* Maintains precision by using bigint arithmetic.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* const usd = { amount: 100000n, currency: 'USD' }; // $1,000.00
|
|
17
|
+
* const rate = { from: 'USD', to: 'EUR', rate: 0.85 };
|
|
18
|
+
*
|
|
19
|
+
* exchange(usd, rate);
|
|
20
|
+
* // { amount: 85000n, currency: 'EUR' } // €850.00
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @param money - Money to convert
|
|
24
|
+
* @param rate - Exchange rate information
|
|
25
|
+
* @returns Converted money in target currency
|
|
26
|
+
* @throws {Error} If source currency doesn't match rate.from
|
|
27
|
+
*/
|
|
28
|
+
export declare function exchange(money: Money, rate: ExchangeRate): Money;
|
|
29
|
+
//# sourceMappingURL=exchange.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exchange.d.ts","sourceRoot":"","sources":["../../src/money/exchange.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,GAAG,KAAK,CAchE"}
|
package/dist/money/exchange.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
//#region src/money/exchange.ts
|
|
2
|
+
function e(e, t) {
|
|
3
|
+
if (e.currency !== t.from) throw Error(`Currency mismatch: expected ${t.from}, got ${e.currency}`);
|
|
4
|
+
let n = BigInt(Math.round(t.rate * 1e6));
|
|
5
|
+
return {
|
|
6
|
+
amount: e.amount * n / 1000000n,
|
|
7
|
+
currency: t.to
|
|
8
|
+
};
|
|
9
9
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
//# sourceMappingURL=exchange.js.map
|
|
10
|
+
//#endregion
|
|
11
|
+
export { e as exchange };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=exchange.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exchange.js","sources":["../../src/money/exchange.ts"],"sourcesContent":["import type { Money } from './types';\n\n/**\n * Exchange rate for currency conversion.\n */\nexport type ExchangeRate = {\n from: string; // Source currency code\n
|
|
1
|
+
{"version":3,"file":"exchange.js","names":[],"sources":["../../src/money/exchange.ts"],"sourcesContent":["import type { Money } from './types';\n\n/**\n * Exchange rate for currency conversion.\n */\nexport type ExchangeRate = {\n from: string; // Source currency code\n rate: number; // Exchange rate multiplier\n to: string; // Target currency code\n};\n\n/**\n * Converts money from one currency to another using the provided exchange rate.\n * Maintains precision by using bigint arithmetic.\n *\n * @example\n * ```ts\n * const usd = { amount: 100000n, currency: 'USD' }; // $1,000.00\n * const rate = { from: 'USD', to: 'EUR', rate: 0.85 };\n *\n * exchange(usd, rate);\n * // { amount: 85000n, currency: 'EUR' } // €850.00\n * ```\n *\n * @param money - Money to convert\n * @param rate - Exchange rate information\n * @returns Converted money in target currency\n * @throws {Error} If source currency doesn't match rate.from\n */\nexport function exchange(money: Money, rate: ExchangeRate): Money {\n if (money.currency !== rate.from) {\n throw new Error(`Currency mismatch: expected ${rate.from}, got ${money.currency}`);\n }\n\n // Convert rate to avoid floating point issues\n // Multiply by 1000000 for precision, then divide back\n const rateBigInt = BigInt(Math.round(rate.rate * 1000000));\n const convertedAmount = (money.amount * rateBigInt) / 1000000n;\n\n return {\n amount: convertedAmount,\n currency: rate.to,\n };\n}\n"],"mappings":";AA6BA,SAAgB,EAAS,GAAc,GAA2B;AAChE,KAAI,EAAM,aAAa,EAAK,KAC1B,OAAU,MAAM,+BAA+B,EAAK,KAAK,QAAQ,EAAM,WAAW;CAKpF,IAAM,IAAa,OAAO,KAAK,MAAM,EAAK,OAAO,IAAQ,CAAC;AAG1D,QAAO;EACL,QAHuB,EAAM,SAAS,IAAc;EAIpD,UAAU,EAAK;EAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/money/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/money/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC"}
|
package/dist/object/diff.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
//# sourceMappingURL=diff.cjs.map
|
|
1
|
+
const e=require(`../typed/isEqual.cjs`),t=require(`../typed/isObject.cjs`);var n=Symbol(`deleted`);function r(i,a,o=e.isEqual){if(!i&&!a)return{};let s={};for(let e of new Set([...Object.keys(i??{}),...Object.keys(a??{})])){let c=i?.[e],l=a?.[e];if(t.isObject(c)&&t.isObject(l)){let t=r(c,l,o);Object.keys(t).length>0&&(s[e]=t)}else o(c,l)||(s[e]=a!=null&&e in a&&(i==null||!(e in i))?n:c)}return s}exports.DELETED=n,exports.diff=r;
|
|
2
|
+
//# sourceMappingURL=diff.cjs.map
|
package/dist/object/diff.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.cjs","sources":["../../src/object/diff.ts"],"sourcesContent":["import { isEqual } from '../typed/isEqual';\nimport { isObject } from '../typed/isObject';\
|
|
1
|
+
{"version":3,"file":"diff.cjs","names":[],"sources":["../../src/object/diff.ts"],"sourcesContent":["import type { Obj } from '../types';\n\nimport { isEqual } from '../typed/isEqual';\nimport { isObject } from '../typed/isObject';\n\n/** Sentinel value returned by `diff` when a key exists in `prev` but not in `curr`. */\nexport const DELETED: unique symbol = Symbol('deleted');\n\nexport type DiffResult<T extends Obj> = { [K in keyof T]?: T[K] | typeof DELETED };\n\n/**\n * Computes the difference between two objects.\n *\n * Keys present in `prev` but absent in `curr` are marked with the `DELETED` sentinel.\n *\n * @example\n * ```ts\n * import { diff, DELETED } from '@vielzeug/toolkit';\n *\n * diff({ a: 1, b: 2 }, { a: 1, b: 2, c: 3 }); // { c: DELETED }\n * diff({ a: 1, b: 99 }, { a: 1, b: 2 }); // { b: 99 }\n * ```\n *\n * @param curr - The current object.\n * @param prev - The previous object.\n * @param [compareFn] - A custom function to compare values.\n * @returns An object containing new/modified/deleted properties.\n */\nexport function diff<T extends Obj>(\n curr?: T,\n prev?: T,\n compareFn: (a: unknown, b: unknown) => boolean = isEqual,\n): DiffResult<T> {\n if (!curr && !prev) return {};\n\n const result: Record<string, unknown> = {};\n\n for (const key of new Set([...Object.keys(curr ?? {}), ...Object.keys(prev ?? {})])) {\n const _curr = curr?.[key];\n const _prev = prev?.[key];\n\n if (isObject(_curr) && isObject(_prev)) {\n const nestedDiff = diff(_curr as Obj, _prev as Obj, compareFn);\n\n if (Object.keys(nestedDiff).length > 0) {\n result[key] = nestedDiff;\n }\n } else if (!compareFn(_curr, _prev)) {\n const wasDeleted = prev != null && key in prev && (curr == null || !(key in curr));\n\n result[key] = wasDeleted ? DELETED : _curr;\n }\n }\n\n return result as DiffResult<T>;\n}\n"],"mappings":"2EAMA,IAAa,EAAyB,OAAO,UAAU,CAsBvD,SAAgB,EACd,EACA,EACA,EAAiD,EAAA,QAClC,CACf,GAAI,CAAC,GAAQ,CAAC,EAAM,MAAO,EAAE,CAE7B,IAAM,EAAkC,EAAE,CAE1C,IAAK,IAAM,KAAO,IAAI,IAAI,CAAC,GAAG,OAAO,KAAK,GAAQ,EAAE,CAAC,CAAE,GAAG,OAAO,KAAK,GAAQ,EAAE,CAAC,CAAC,CAAC,CAAE,CACnF,IAAM,EAAQ,IAAO,GACf,EAAQ,IAAO,GAErB,GAAI,EAAA,SAAS,EAAM,EAAI,EAAA,SAAS,EAAM,CAAE,CACtC,IAAM,EAAa,EAAK,EAAc,EAAc,EAAU,CAE1D,OAAO,KAAK,EAAW,CAAC,OAAS,IACnC,EAAO,GAAO,QAEN,EAAU,EAAO,EAAM,GAGjC,EAAO,GAFY,GAAQ,MAAQ,KAAO,IAAS,GAAQ,MAAQ,EAAE,KAAO,IAEjD,EAAU,GAIzC,OAAO"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Obj } from '../types';
|
|
2
|
+
/** Sentinel value returned by `diff` when a key exists in `prev` but not in `curr`. */
|
|
3
|
+
export declare const DELETED: unique symbol;
|
|
4
|
+
export type DiffResult<T extends Obj> = {
|
|
5
|
+
[K in keyof T]?: T[K] | typeof DELETED;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Computes the difference between two objects.
|
|
9
|
+
*
|
|
10
|
+
* Keys present in `prev` but absent in `curr` are marked with the `DELETED` sentinel.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { diff, DELETED } from '@vielzeug/toolkit';
|
|
15
|
+
*
|
|
16
|
+
* diff({ a: 1, b: 2 }, { a: 1, b: 2, c: 3 }); // { c: DELETED }
|
|
17
|
+
* diff({ a: 1, b: 99 }, { a: 1, b: 2 }); // { b: 99 }
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @param curr - The current object.
|
|
21
|
+
* @param prev - The previous object.
|
|
22
|
+
* @param [compareFn] - A custom function to compare values.
|
|
23
|
+
* @returns An object containing new/modified/deleted properties.
|
|
24
|
+
*/
|
|
25
|
+
export declare function diff<T extends Obj>(curr?: T, prev?: T, compareFn?: (a: unknown, b: unknown) => boolean): DiffResult<T>;
|
|
26
|
+
//# sourceMappingURL=diff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/object/diff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAKpC,uFAAuF;AACvF,eAAO,MAAM,OAAO,EAAE,OAAO,MAA0B,CAAC;AAExD,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,GAAG,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,OAAO;CAAE,CAAC;AAEnF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,GAAG,EAChC,IAAI,CAAC,EAAE,CAAC,EACR,IAAI,CAAC,EAAE,CAAC,EACR,SAAS,GAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,KAAK,OAAiB,GACvD,UAAU,CAAC,CAAC,CAAC,CAuBf"}
|