ts-data-forge 3.3.0 → 4.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 +37 -13
- package/dist/array/impl/array-utils-creation.d.mts +116 -0
- package/dist/array/impl/array-utils-creation.d.mts.map +1 -0
- package/dist/array/impl/array-utils-creation.mjs +110 -0
- package/dist/array/impl/array-utils-creation.mjs.map +1 -0
- package/dist/array/impl/array-utils-element-access.d.mts +60 -0
- package/dist/array/impl/array-utils-element-access.d.mts.map +1 -0
- package/dist/array/impl/array-utils-element-access.mjs +66 -0
- package/dist/array/impl/array-utils-element-access.mjs.map +1 -0
- package/dist/array/impl/array-utils-iterators.d.mts +59 -0
- package/dist/array/impl/array-utils-iterators.d.mts.map +1 -0
- package/dist/array/impl/array-utils-iterators.mjs +104 -0
- package/dist/array/impl/array-utils-iterators.mjs.map +1 -0
- package/dist/array/impl/array-utils-modification.d.mts +154 -0
- package/dist/array/impl/array-utils-modification.d.mts.map +1 -0
- package/dist/array/impl/array-utils-modification.mjs +139 -0
- package/dist/array/impl/array-utils-modification.mjs.map +1 -0
- package/dist/array/impl/array-utils-reducing-value.d.mts +213 -0
- package/dist/array/impl/array-utils-reducing-value.d.mts.map +1 -0
- package/dist/array/impl/array-utils-reducing-value.mjs +162 -0
- package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -0
- package/dist/array/impl/array-utils-search.d.mts +178 -0
- package/dist/array/impl/array-utils-search.d.mts.map +1 -0
- package/dist/array/impl/array-utils-search.mjs +153 -0
- package/dist/array/impl/array-utils-search.mjs.map +1 -0
- package/dist/array/impl/array-utils-set-op.d.mts +100 -0
- package/dist/array/impl/array-utils-set-op.d.mts.map +1 -0
- package/dist/array/impl/array-utils-set-op.mjs +137 -0
- package/dist/array/impl/array-utils-set-op.mjs.map +1 -0
- package/dist/array/impl/array-utils-size.d.mts +24 -0
- package/dist/array/impl/array-utils-size.d.mts.map +1 -0
- package/dist/array/impl/array-utils-size.mjs +28 -0
- package/dist/array/impl/array-utils-size.mjs.map +1 -0
- package/dist/array/impl/array-utils-slice-clamped.d.mts +18 -0
- package/dist/array/impl/array-utils-slice-clamped.d.mts.map +1 -0
- package/dist/array/impl/array-utils-slice-clamped.mjs +49 -0
- package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -0
- package/dist/array/impl/array-utils-slicing.d.mts +120 -0
- package/dist/array/impl/array-utils-slicing.d.mts.map +1 -0
- package/dist/array/impl/array-utils-slicing.mjs +140 -0
- package/dist/array/impl/array-utils-slicing.mjs.map +1 -0
- package/dist/array/impl/array-utils-transformation.d.mts +348 -0
- package/dist/array/impl/array-utils-transformation.d.mts.map +1 -0
- package/dist/array/impl/array-utils-transformation.mjs +329 -0
- package/dist/array/impl/array-utils-transformation.mjs.map +1 -0
- package/dist/array/impl/array-utils-validation.d.mts +149 -0
- package/dist/array/impl/array-utils-validation.d.mts.map +1 -0
- package/dist/array/impl/array-utils-validation.mjs +166 -0
- package/dist/array/impl/array-utils-validation.mjs.map +1 -0
- package/dist/array/impl/index.d.mts +13 -0
- package/dist/array/impl/index.d.mts.map +1 -0
- package/dist/array/impl/index.mjs +13 -0
- package/dist/array/impl/index.mjs.map +1 -0
- package/dist/array/index.d.mts +1 -1
- package/dist/array/index.d.mts.map +1 -1
- package/dist/array/index.mjs +2 -1
- package/dist/array/index.mjs.map +1 -1
- package/dist/collections/imap-mapped.d.mts +83 -254
- package/dist/collections/imap-mapped.d.mts.map +1 -1
- package/dist/collections/imap-mapped.mjs +40 -170
- package/dist/collections/imap-mapped.mjs.map +1 -1
- package/dist/collections/imap.d.mts +436 -164
- package/dist/collections/imap.d.mts.map +1 -1
- package/dist/collections/imap.mjs +83 -101
- package/dist/collections/imap.mjs.map +1 -1
- package/dist/collections/iset-mapped.d.mts +828 -345
- package/dist/collections/iset-mapped.d.mts.map +1 -1
- package/dist/collections/iset-mapped.mjs +200 -242
- package/dist/collections/iset-mapped.mjs.map +1 -1
- package/dist/collections/iset.d.mts +397 -205
- package/dist/collections/iset.d.mts.map +1 -1
- package/dist/collections/iset.mjs +102 -184
- package/dist/collections/iset.mjs.map +1 -1
- package/dist/collections/queue.d.mts +155 -136
- package/dist/collections/queue.d.mts.map +1 -1
- package/dist/collections/queue.mjs +59 -160
- package/dist/collections/queue.mjs.map +1 -1
- package/dist/collections/stack.d.mts +154 -155
- package/dist/collections/stack.d.mts.map +1 -1
- package/dist/collections/stack.mjs +58 -207
- package/dist/collections/stack.mjs.map +1 -1
- package/dist/entry-point.d.mts +2 -0
- package/dist/entry-point.d.mts.map +1 -1
- package/dist/entry-point.mjs +8 -5
- package/dist/entry-point.mjs.map +1 -1
- package/dist/expect-type.d.mts +43 -172
- package/dist/expect-type.d.mts.map +1 -1
- package/dist/expect-type.mjs +43 -172
- package/dist/expect-type.mjs.map +1 -1
- package/dist/functional/index.d.mts +2 -2
- package/dist/functional/index.d.mts.map +1 -1
- package/dist/functional/index.mjs +4 -2
- package/dist/functional/index.mjs.map +1 -1
- package/dist/functional/match.d.mts +35 -140
- package/dist/functional/match.d.mts.map +1 -1
- package/dist/functional/match.mjs.map +1 -1
- package/dist/functional/optional/impl/index.d.mts +18 -0
- package/dist/functional/optional/impl/index.d.mts.map +1 -0
- package/dist/functional/optional/impl/index.mjs +17 -0
- package/dist/functional/optional/impl/index.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-expect-to-be.d.mts +29 -0
- package/dist/functional/optional/impl/optional-expect-to-be.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-expect-to-be.mjs +25 -0
- package/dist/functional/optional/impl/optional-expect-to-be.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-filter.d.mts +29 -0
- package/dist/functional/optional/impl/optional-filter.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-filter.mjs +28 -0
- package/dist/functional/optional/impl/optional-filter.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-flat-map.d.mts +33 -0
- package/dist/functional/optional/impl/optional-flat-map.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-flat-map.mjs +21 -0
- package/dist/functional/optional/impl/optional-flat-map.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-from-nullable.d.mts +24 -0
- package/dist/functional/optional/impl/optional-from-nullable.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-from-nullable.mjs +29 -0
- package/dist/functional/optional/impl/optional-from-nullable.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-is-none.d.mts +22 -0
- package/dist/functional/optional/impl/optional-is-none.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-is-none.mjs +25 -0
- package/dist/functional/optional/impl/optional-is-none.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-is-optional.d.mts +18 -0
- package/dist/functional/optional/impl/optional-is-optional.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-is-optional.mjs +27 -0
- package/dist/functional/optional/impl/optional-is-optional.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-is-some.d.mts +22 -0
- package/dist/functional/optional/impl/optional-is-some.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-is-some.mjs +25 -0
- package/dist/functional/optional/impl/optional-is-some.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-map.d.mts +31 -0
- package/dist/functional/optional/impl/optional-map.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-map.mjs +25 -0
- package/dist/functional/optional/impl/optional-map.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-none.d.mts +16 -0
- package/dist/functional/optional/impl/optional-none.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-none.mjs +20 -0
- package/dist/functional/optional/impl/optional-none.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-or-else.d.mts +35 -0
- package/dist/functional/optional/impl/optional-or-else.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-or-else.mjs +19 -0
- package/dist/functional/optional/impl/optional-or-else.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-some.d.mts +19 -0
- package/dist/functional/optional/impl/optional-some.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-some.mjs +26 -0
- package/dist/functional/optional/impl/optional-some.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-to-nullable.d.mts +27 -0
- package/dist/functional/optional/impl/optional-to-nullable.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-to-nullable.mjs +31 -0
- package/dist/functional/optional/impl/optional-to-nullable.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap-or.d.mts +33 -0
- package/dist/functional/optional/impl/optional-unwrap-or.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap-or.mjs +19 -0
- package/dist/functional/optional/impl/optional-unwrap-or.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap-throw.d.mts +29 -0
- package/dist/functional/optional/impl/optional-unwrap-throw.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap-throw.mjs +38 -0
- package/dist/functional/optional/impl/optional-unwrap-throw.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap.d.mts +28 -0
- package/dist/functional/optional/impl/optional-unwrap.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap.mjs +11 -0
- package/dist/functional/optional/impl/optional-unwrap.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-zip.d.mts +31 -0
- package/dist/functional/optional/impl/optional-zip.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-zip.mjs +39 -0
- package/dist/functional/optional/impl/optional-zip.mjs.map +1 -0
- package/dist/functional/optional/impl/tag.d.mts +5 -0
- package/dist/functional/optional/impl/tag.d.mts.map +1 -0
- package/dist/functional/optional/impl/tag.mjs +7 -0
- package/dist/functional/optional/impl/tag.mjs.map +1 -0
- package/dist/functional/optional/impl/types.d.mts +22 -0
- package/dist/functional/optional/impl/types.d.mts.map +1 -0
- package/dist/functional/optional/impl/types.mjs +2 -0
- package/dist/functional/optional/impl/types.mjs.map +1 -0
- package/dist/functional/optional/index.d.mts +2 -0
- package/dist/functional/optional/index.d.mts.map +1 -0
- package/dist/functional/optional/index.mjs +3 -0
- package/dist/functional/optional/index.mjs.map +1 -0
- package/dist/functional/pipe.d.mts +63 -117
- package/dist/functional/pipe.d.mts.map +1 -1
- package/dist/functional/pipe.mjs +4 -3
- package/dist/functional/pipe.mjs.map +1 -1
- package/dist/functional/result/impl/index.d.mts +24 -0
- package/dist/functional/result/impl/index.d.mts.map +1 -0
- package/dist/functional/result/impl/index.mjs +23 -0
- package/dist/functional/result/impl/index.mjs.map +1 -0
- package/dist/functional/result/impl/result-err.d.mts +25 -0
- package/dist/functional/result/impl/result-err.d.mts.map +1 -0
- package/dist/functional/result/impl/result-err.mjs +32 -0
- package/dist/functional/result/impl/result-err.mjs.map +1 -0
- package/dist/functional/result/impl/result-expect-to-be.d.mts +27 -0
- package/dist/functional/result/impl/result-expect-to-be.d.mts.map +1 -0
- package/dist/functional/result/impl/result-expect-to-be.mjs +26 -0
- package/dist/functional/result/impl/result-expect-to-be.mjs.map +1 -0
- package/dist/functional/result/impl/result-flat-map.d.mts +39 -0
- package/dist/functional/result/impl/result-flat-map.d.mts.map +1 -0
- package/dist/functional/result/impl/result-flat-map.mjs +24 -0
- package/dist/functional/result/impl/result-flat-map.mjs.map +1 -0
- package/dist/functional/result/impl/result-fold.d.mts +45 -0
- package/dist/functional/result/impl/result-fold.d.mts.map +1 -0
- package/dist/functional/result/impl/result-fold.mjs +26 -0
- package/dist/functional/result/impl/result-fold.mjs.map +1 -0
- package/dist/functional/result/impl/result-from-promise.d.mts +32 -0
- package/dist/functional/result/impl/result-from-promise.d.mts.map +1 -0
- package/dist/functional/result/impl/result-from-promise.mjs +32 -0
- package/dist/functional/result/impl/result-from-promise.mjs.map +1 -0
- package/dist/functional/result/impl/result-from-throwable.d.mts +29 -0
- package/dist/functional/result/impl/result-from-throwable.d.mts.map +1 -0
- package/dist/functional/result/impl/result-from-throwable.mjs +46 -0
- package/dist/functional/result/impl/result-from-throwable.mjs.map +1 -0
- package/dist/functional/result/impl/result-is-err.d.mts +20 -0
- package/dist/functional/result/impl/result-is-err.d.mts.map +1 -0
- package/dist/functional/result/impl/result-is-err.mjs +23 -0
- package/dist/functional/result/impl/result-is-err.mjs.map +1 -0
- package/dist/functional/result/impl/result-is-ok.d.mts +20 -0
- package/dist/functional/result/impl/result-is-ok.d.mts.map +1 -0
- package/dist/functional/result/impl/result-is-ok.mjs +23 -0
- package/dist/functional/result/impl/result-is-ok.mjs.map +1 -0
- package/dist/functional/result/impl/result-is-result.d.mts +17 -0
- package/dist/functional/result/impl/result-is-result.d.mts.map +1 -0
- package/dist/functional/result/impl/result-is-result.mjs +26 -0
- package/dist/functional/result/impl/result-is-result.mjs.map +1 -0
- package/dist/functional/result/impl/result-map-err.d.mts +33 -0
- package/dist/functional/result/impl/result-map-err.d.mts.map +1 -0
- package/dist/functional/result/impl/result-map-err.mjs +25 -0
- package/dist/functional/result/impl/result-map-err.mjs.map +1 -0
- package/dist/functional/result/impl/result-map.d.mts +34 -0
- package/dist/functional/result/impl/result-map.d.mts.map +1 -0
- package/dist/functional/result/impl/result-map.mjs +25 -0
- package/dist/functional/result/impl/result-map.mjs.map +1 -0
- package/dist/functional/result/impl/result-ok.d.mts +25 -0
- package/dist/functional/result/impl/result-ok.d.mts.map +1 -0
- package/dist/functional/result/impl/result-ok.mjs +32 -0
- package/dist/functional/result/impl/result-ok.mjs.map +1 -0
- package/dist/functional/result/impl/result-or-else.d.mts +32 -0
- package/dist/functional/result/impl/result-or-else.d.mts.map +1 -0
- package/dist/functional/result/impl/result-or-else.mjs +20 -0
- package/dist/functional/result/impl/result-or-else.mjs.map +1 -0
- package/dist/functional/result/impl/result-swap.d.mts +20 -0
- package/dist/functional/result/impl/result-swap.d.mts.map +1 -0
- package/dist/functional/result/impl/result-swap.mjs +28 -0
- package/dist/functional/result/impl/result-swap.mjs.map +1 -0
- package/dist/functional/result/impl/result-to-optional.d.mts +28 -0
- package/dist/functional/result/impl/result-to-optional.d.mts.map +1 -0
- package/dist/functional/result/impl/result-to-optional.mjs +34 -0
- package/dist/functional/result/impl/result-to-optional.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err-or.d.mts +29 -0
- package/dist/functional/result/impl/result-unwrap-err-or.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err-or.mjs +20 -0
- package/dist/functional/result/impl/result-unwrap-err-or.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err-throw.d.mts +30 -0
- package/dist/functional/result/impl/result-unwrap-err-throw.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err-throw.mjs +47 -0
- package/dist/functional/result/impl/result-unwrap-err-throw.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err.d.mts +31 -0
- package/dist/functional/result/impl/result-unwrap-err.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err.mjs +36 -0
- package/dist/functional/result/impl/result-unwrap-err.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-ok-or.d.mts +29 -0
- package/dist/functional/result/impl/result-unwrap-ok-or.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-ok-or.mjs +20 -0
- package/dist/functional/result/impl/result-unwrap-ok-or.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-ok.d.mts +23 -0
- package/dist/functional/result/impl/result-unwrap-ok.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-ok.mjs +11 -0
- package/dist/functional/result/impl/result-unwrap-ok.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-throw.d.mts +30 -0
- package/dist/functional/result/impl/result-unwrap-throw.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-throw.mjs +41 -0
- package/dist/functional/result/impl/result-unwrap-throw.mjs.map +1 -0
- package/dist/functional/result/impl/result-zip.d.mts +29 -0
- package/dist/functional/result/impl/result-zip.d.mts.map +1 -0
- package/dist/functional/result/impl/result-zip.mjs +38 -0
- package/dist/functional/result/impl/result-zip.mjs.map +1 -0
- package/dist/functional/result/impl/tag.d.mts +5 -0
- package/dist/functional/result/impl/tag.d.mts.map +1 -0
- package/dist/functional/result/impl/tag.mjs +7 -0
- package/dist/functional/result/impl/tag.mjs.map +1 -0
- package/dist/functional/result/impl/types.d.mts +29 -0
- package/dist/functional/result/impl/types.d.mts.map +1 -0
- package/dist/functional/result/impl/types.mjs +2 -0
- package/dist/functional/result/impl/types.mjs.map +1 -0
- package/dist/functional/result/index.d.mts +2 -0
- package/dist/functional/result/index.d.mts.map +1 -0
- package/dist/functional/result/index.mjs +3 -0
- package/dist/functional/result/index.mjs.map +1 -0
- package/dist/globals.d.mts +95 -5
- package/dist/guard/has-key.d.mts +23 -74
- package/dist/guard/has-key.d.mts.map +1 -1
- package/dist/guard/has-key.mjs +23 -74
- package/dist/guard/has-key.mjs.map +1 -1
- package/dist/guard/is-non-empty-string.d.mts +20 -87
- package/dist/guard/is-non-empty-string.d.mts.map +1 -1
- package/dist/guard/is-non-empty-string.mjs +20 -87
- package/dist/guard/is-non-empty-string.mjs.map +1 -1
- package/dist/guard/is-non-null-object.d.mts +14 -84
- package/dist/guard/is-non-null-object.d.mts.map +1 -1
- package/dist/guard/is-non-null-object.mjs +14 -84
- package/dist/guard/is-non-null-object.mjs.map +1 -1
- package/dist/guard/is-primitive.d.mts +13 -126
- package/dist/guard/is-primitive.d.mts.map +1 -1
- package/dist/guard/is-primitive.mjs +13 -126
- package/dist/guard/is-primitive.mjs.map +1 -1
- package/dist/guard/is-record.d.mts +21 -132
- package/dist/guard/is-record.d.mts.map +1 -1
- package/dist/guard/is-record.mjs +21 -132
- package/dist/guard/is-record.mjs.map +1 -1
- package/dist/guard/is-type.d.mts +201 -238
- package/dist/guard/is-type.d.mts.map +1 -1
- package/dist/guard/is-type.mjs +201 -238
- package/dist/guard/is-type.mjs.map +1 -1
- package/dist/guard/key-is-in.d.mts +22 -139
- package/dist/guard/key-is-in.d.mts.map +1 -1
- package/dist/guard/key-is-in.mjs +22 -139
- package/dist/guard/key-is-in.mjs.map +1 -1
- package/dist/index.d.mts +0 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +0 -5
- package/dist/index.mjs.map +1 -1
- package/dist/iterator/range.d.mts +29 -62
- package/dist/iterator/range.d.mts.map +1 -1
- package/dist/iterator/range.mjs.map +1 -1
- package/dist/json/json.d.mts +191 -122
- package/dist/json/json.d.mts.map +1 -1
- package/dist/json/json.mjs +246 -144
- package/dist/json/json.mjs.map +1 -1
- package/dist/number/branded-types/finite-number.d.mts +24 -156
- package/dist/number/branded-types/finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/finite-number.mjs +28 -160
- package/dist/number/branded-types/finite-number.mjs.map +1 -1
- package/dist/number/branded-types/int.d.mts +122 -120
- package/dist/number/branded-types/int.d.mts.map +1 -1
- package/dist/number/branded-types/int.mjs +123 -121
- package/dist/number/branded-types/int.mjs.map +1 -1
- package/dist/number/branded-types/int16.d.mts +22 -30
- package/dist/number/branded-types/int16.d.mts.map +1 -1
- package/dist/number/branded-types/int16.mjs +23 -31
- package/dist/number/branded-types/int16.mjs.map +1 -1
- package/dist/number/branded-types/int32.d.mts +22 -31
- package/dist/number/branded-types/int32.d.mts.map +1 -1
- package/dist/number/branded-types/int32.mjs +23 -32
- package/dist/number/branded-types/int32.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.d.mts +28 -36
- package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.mjs +32 -40
- package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int16.d.mts +24 -34
- package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int16.mjs +25 -35
- package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int32.d.mts +26 -35
- package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int32.mjs +27 -36
- package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.d.mts +22 -37
- package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.mjs +26 -41
- package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int.d.mts +15 -30
- package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int.mjs +16 -31
- package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int16.d.mts +27 -35
- package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int16.mjs +28 -36
- package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int32.d.mts +29 -36
- package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int32.mjs +30 -37
- package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.d.mts +37 -38
- package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.mjs +40 -41
- package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.d.mts +24 -35
- package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.mjs +25 -36
- package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.d.mts +24 -35
- package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.mjs +25 -36
- package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
- package/dist/number/branded-types/positive-finite-number.d.mts +26 -40
- package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/positive-finite-number.mjs +30 -44
- package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/positive-int.d.mts +133 -123
- package/dist/number/branded-types/positive-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int.mjs +134 -124
- package/dist/number/branded-types/positive-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-int16.d.mts +24 -35
- package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int16.mjs +25 -36
- package/dist/number/branded-types/positive-int16.mjs.map +1 -1
- package/dist/number/branded-types/positive-int32.d.mts +24 -35
- package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int32.mjs +25 -36
- package/dist/number/branded-types/positive-int32.mjs.map +1 -1
- package/dist/number/branded-types/positive-safe-int.d.mts +159 -33
- package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-safe-int.mjs +161 -35
- package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint16.d.mts +24 -35
- package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint16.mjs +25 -36
- package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint32.d.mts +26 -36
- package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint32.mjs +27 -37
- package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
- package/dist/number/branded-types/safe-int.d.mts +140 -99
- package/dist/number/branded-types/safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/safe-int.mjs +143 -102
- package/dist/number/branded-types/safe-int.mjs.map +1 -1
- package/dist/number/branded-types/safe-uint.d.mts +24 -33
- package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
- package/dist/number/branded-types/safe-uint.mjs +26 -35
- package/dist/number/branded-types/safe-uint.mjs.map +1 -1
- package/dist/number/branded-types/uint.d.mts +121 -30
- package/dist/number/branded-types/uint.d.mts.map +1 -1
- package/dist/number/branded-types/uint.mjs +122 -31
- package/dist/number/branded-types/uint.mjs.map +1 -1
- package/dist/number/branded-types/uint16.d.mts +26 -34
- package/dist/number/branded-types/uint16.d.mts.map +1 -1
- package/dist/number/branded-types/uint16.mjs +27 -35
- package/dist/number/branded-types/uint16.mjs.map +1 -1
- package/dist/number/branded-types/uint32.d.mts +26 -68
- package/dist/number/branded-types/uint32.d.mts.map +1 -1
- package/dist/number/branded-types/uint32.mjs +27 -69
- package/dist/number/branded-types/uint32.mjs.map +1 -1
- package/dist/number/enum/int8.d.mts +37 -101
- package/dist/number/enum/int8.d.mts.map +1 -1
- package/dist/number/enum/int8.mjs +40 -171
- package/dist/number/enum/int8.mjs.map +1 -1
- package/dist/number/enum/uint8.d.mts +45 -55
- package/dist/number/enum/uint8.d.mts.map +1 -1
- package/dist/number/enum/uint8.mjs +47 -156
- package/dist/number/enum/uint8.mjs.map +1 -1
- package/dist/number/num.d.mts +145 -206
- package/dist/number/num.d.mts.map +1 -1
- package/dist/number/num.mjs +143 -199
- package/dist/number/num.mjs.map +1 -1
- package/dist/number/refined-number-utils.d.mts +97 -21
- package/dist/number/refined-number-utils.d.mts.map +1 -1
- package/dist/number/refined-number-utils.mjs +91 -22
- package/dist/number/refined-number-utils.mjs.map +1 -1
- package/dist/object/object.d.mts +126 -208
- package/dist/object/object.d.mts.map +1 -1
- package/dist/object/object.mjs +68 -102
- package/dist/object/object.mjs.map +1 -1
- package/dist/others/cast-mutable.d.mts +12 -88
- package/dist/others/cast-mutable.d.mts.map +1 -1
- package/dist/others/cast-mutable.mjs +13 -89
- package/dist/others/cast-mutable.mjs.map +1 -1
- package/dist/others/cast-readonly.d.mts +12 -168
- package/dist/others/cast-readonly.d.mts.map +1 -1
- package/dist/others/cast-readonly.mjs +13 -169
- package/dist/others/cast-readonly.mjs.map +1 -1
- package/dist/others/if-then.d.mts +6 -83
- package/dist/others/if-then.d.mts.map +1 -1
- package/dist/others/if-then.mjs +6 -83
- package/dist/others/if-then.mjs.map +1 -1
- package/dist/others/map-nullable.d.mts +12 -136
- package/dist/others/map-nullable.d.mts.map +1 -1
- package/dist/others/map-nullable.mjs.map +1 -1
- package/dist/others/memoize-function.d.mts +14 -157
- package/dist/others/memoize-function.d.mts.map +1 -1
- package/dist/others/memoize-function.mjs +14 -157
- package/dist/others/memoize-function.mjs.map +1 -1
- package/dist/others/tuple.d.mts +33 -151
- package/dist/others/tuple.d.mts.map +1 -1
- package/dist/others/tuple.mjs +33 -151
- package/dist/others/tuple.mjs.map +1 -1
- package/dist/others/unknown-to-string.d.mts +11 -125
- package/dist/others/unknown-to-string.d.mts.map +1 -1
- package/dist/others/unknown-to-string.mjs +12 -126
- package/dist/others/unknown-to-string.mjs.map +1 -1
- package/dist/promise/promise.d.mts +33 -21
- package/dist/promise/promise.d.mts.map +1 -1
- package/dist/promise/promise.mjs +36 -24
- package/dist/promise/promise.mjs.map +1 -1
- package/package.json +58 -44
- package/src/array/impl/array-utils-creation.mts +192 -0
- package/src/array/{array-utils-creation.test.mts → impl/array-utils-creation.test.mts} +121 -72
- package/src/array/impl/array-utils-element-access.mts +115 -0
- package/src/array/impl/array-utils-element-access.test.mts +151 -0
- package/src/array/impl/array-utils-iterators.mts +79 -0
- package/src/array/impl/array-utils-iterators.test.mts +98 -0
- package/src/array/impl/array-utils-modification.mts +434 -0
- package/src/array/{array-utils-modification.test.mts → impl/array-utils-modification.test.mts} +41 -28
- package/src/array/{array-utils-overload-type-error.test.mts → impl/array-utils-overload-type-error.test.mts} +33 -33
- package/src/array/impl/array-utils-reducing-value.mts +535 -0
- package/src/array/{array-utils-reducing-value.test.mts → impl/array-utils-reducing-value.test.mts} +53 -58
- package/src/array/impl/array-utils-search.mts +509 -0
- package/src/array/impl/array-utils-search.test.mts +346 -0
- package/src/array/impl/array-utils-set-op.mts +166 -0
- package/src/array/{array-utils-set-op.test.mts → impl/array-utils-set-op.test.mts} +42 -35
- package/src/array/impl/array-utils-size.mts +30 -0
- package/src/array/impl/array-utils-size.test.mts +9 -0
- package/src/array/impl/array-utils-slice-clamped.mts +51 -0
- package/src/array/{array-utils-slice-clamped.test.mts → impl/array-utils-slice-clamped.test.mts} +13 -13
- package/src/array/impl/array-utils-slicing.mts +275 -0
- package/src/array/impl/array-utils-slicing.test.mts +158 -0
- package/src/array/impl/array-utils-transformation.mts +746 -0
- package/src/array/{array-utils-transformation.test.mts → impl/array-utils-transformation.test.mts} +662 -889
- package/src/array/impl/array-utils-validation.mts +241 -0
- package/src/array/{array-utils-validation.test.mts → impl/array-utils-validation.test.mts} +194 -107
- package/src/array/{array.test.mts → impl/array.test.mts} +2 -2
- package/src/array/impl/index.mts +12 -0
- package/src/array/index.mts +1 -1
- package/src/collections/imap-mapped.mts +99 -265
- package/src/collections/imap.mts +477 -174
- package/src/collections/imap.test.mts +12 -19
- package/src/collections/iset-mapped.mts +892 -358
- package/src/collections/iset.mts +429 -213
- package/src/collections/queue.mts +174 -200
- package/src/collections/stack.mts +172 -245
- package/src/collections/stack.test.mts +9 -1
- package/src/entry-point.mts +2 -0
- package/src/expect-type.mts +43 -172
- package/src/functional/index.mts +2 -2
- package/src/functional/match.mts +35 -145
- package/src/functional/optional/impl/index.mts +17 -0
- package/src/functional/optional/impl/optional-expect-to-be.mts +65 -0
- package/src/functional/optional/impl/optional-filter.mts +71 -0
- package/src/functional/optional/impl/optional-flat-map.mts +67 -0
- package/src/functional/optional/impl/optional-from-nullable.mts +28 -0
- package/src/functional/optional/impl/optional-is-none.mts +25 -0
- package/src/functional/optional/impl/optional-is-optional.mts +27 -0
- package/src/functional/optional/impl/optional-is-some.mts +25 -0
- package/src/functional/optional/impl/optional-map.mts +69 -0
- package/src/functional/optional/impl/optional-none.mts +17 -0
- package/src/functional/optional/impl/optional-or-else.mts +73 -0
- package/src/functional/optional/impl/optional-some.mts +23 -0
- package/src/functional/optional/impl/optional-to-nullable.mts +31 -0
- package/src/functional/optional/impl/optional-unwrap-or.mts +64 -0
- package/src/functional/optional/impl/optional-unwrap-throw.mts +39 -0
- package/src/functional/optional/impl/optional-unwrap.mts +41 -0
- package/src/functional/optional/impl/optional-zip.mts +40 -0
- package/src/functional/optional/impl/tag.mts +6 -0
- package/src/functional/optional/impl/types.mts +28 -0
- package/src/functional/optional/index.mts +1 -0
- package/src/functional/optional.test.mts +11 -9
- package/src/functional/pipe.mts +65 -118
- package/src/functional/pipe.test.mts +1 -1
- package/src/functional/result/impl/index.mts +23 -0
- package/src/functional/result/impl/result-err.mts +29 -0
- package/src/functional/result/impl/result-expect-to-be.mts +63 -0
- package/src/functional/result/impl/result-flat-map.mts +79 -0
- package/src/functional/result/impl/result-fold.mts +95 -0
- package/src/functional/result/impl/result-from-promise.mts +39 -0
- package/src/functional/result/impl/result-from-throwable.mts +42 -0
- package/src/functional/result/impl/result-is-err.mts +23 -0
- package/src/functional/result/impl/result-is-ok.mts +23 -0
- package/src/functional/result/impl/result-is-result.mts +23 -0
- package/src/functional/result/impl/result-map-err.mts +72 -0
- package/src/functional/result/impl/result-map.mts +73 -0
- package/src/functional/result/impl/result-ok.mts +29 -0
- package/src/functional/result/impl/result-or-else.mts +63 -0
- package/src/functional/result/impl/result-swap.mts +28 -0
- package/src/functional/result/impl/result-to-optional.mts +34 -0
- package/src/functional/result/impl/result-unwrap-err-or.mts +60 -0
- package/src/functional/result/impl/result-unwrap-err-throw.mts +53 -0
- package/src/functional/result/impl/result-unwrap-err.mts +36 -0
- package/src/functional/result/impl/result-unwrap-ok-or.mts +60 -0
- package/src/functional/result/impl/result-unwrap-ok.mts +35 -0
- package/src/functional/result/impl/result-unwrap-throw.mts +43 -0
- package/src/functional/result/impl/result-zip.mts +39 -0
- package/src/functional/result/impl/tag.mts +6 -0
- package/src/functional/result/impl/types.mts +35 -0
- package/src/functional/result/index.mts +1 -0
- package/src/functional/result.test.mts +14 -6
- package/src/globals.d.mts +95 -5
- package/src/guard/has-key.mts +23 -74
- package/src/guard/is-non-empty-string.mts +20 -87
- package/src/guard/is-non-empty-string.test.mts +1 -1
- package/src/guard/is-non-null-object.mts +14 -84
- package/src/guard/is-non-null-object.test.mts +4 -4
- package/src/guard/is-primitive.mts +13 -126
- package/src/guard/is-primitive.test.mts +4 -4
- package/src/guard/is-record.mts +21 -132
- package/src/guard/is-type.mts +201 -238
- package/src/guard/is-type.test.mts +10 -10
- package/src/guard/key-is-in.mts +22 -139
- package/src/index.mts +0 -2
- package/src/iterator/range.mts +29 -62
- package/src/json/json.mts +202 -134
- package/src/json/json.test.mts +1 -3
- package/src/number/branded-types/finite-number.mts +34 -166
- package/src/number/branded-types/int.mts +129 -127
- package/src/number/branded-types/int16.mts +31 -39
- package/src/number/branded-types/int16.test.mts +24 -24
- package/src/number/branded-types/int32.mts +31 -40
- package/src/number/branded-types/int32.test.mts +39 -39
- package/src/number/branded-types/non-negative-finite-number.mts +39 -47
- package/src/number/branded-types/non-negative-int16.mts +33 -43
- package/src/number/branded-types/non-negative-int16.test.mts +16 -16
- package/src/number/branded-types/non-negative-int32.mts +35 -44
- package/src/number/branded-types/non-negative-int32.test.mts +30 -30
- package/src/number/branded-types/non-zero-finite-number.mts +32 -47
- package/src/number/branded-types/non-zero-int.mts +22 -37
- package/src/number/branded-types/non-zero-int16.mts +36 -44
- package/src/number/branded-types/non-zero-int16.test.mts +26 -26
- package/src/number/branded-types/non-zero-int32.mts +38 -45
- package/src/number/branded-types/non-zero-int32.test.mts +45 -42
- package/src/number/branded-types/non-zero-safe-int.mts +48 -49
- package/src/number/branded-types/non-zero-uint16.mts +33 -44
- package/src/number/branded-types/non-zero-uint16.test.mts +16 -16
- package/src/number/branded-types/non-zero-uint32.mts +33 -44
- package/src/number/branded-types/non-zero-uint32.test.mts +28 -28
- package/src/number/branded-types/positive-finite-number.mts +37 -51
- package/src/number/branded-types/positive-int.mts +142 -132
- package/src/number/branded-types/positive-int16.mts +33 -44
- package/src/number/branded-types/positive-int16.test.mts +14 -14
- package/src/number/branded-types/positive-int32.mts +33 -44
- package/src/number/branded-types/positive-int32.test.mts +26 -26
- package/src/number/branded-types/positive-safe-int.mts +169 -43
- package/src/number/branded-types/positive-uint16.mts +33 -44
- package/src/number/branded-types/positive-uint16.test.mts +16 -16
- package/src/number/branded-types/positive-uint32.mts +35 -45
- package/src/number/branded-types/positive-uint32.test.mts +31 -28
- package/src/number/branded-types/safe-int.mts +151 -110
- package/src/number/branded-types/safe-uint.mts +34 -43
- package/src/number/branded-types/uint.mts +129 -38
- package/src/number/branded-types/uint16.mts +35 -43
- package/src/number/branded-types/uint16.test.mts +16 -16
- package/src/number/branded-types/uint32.mts +35 -77
- package/src/number/branded-types/uint32.test.mts +28 -28
- package/src/number/enum/int8.mts +42 -173
- package/src/number/enum/int8.test.mts +9 -9
- package/src/number/enum/uint8.mts +49 -158
- package/src/number/enum/uint8.test.mts +8 -8
- package/src/number/num.mts +157 -212
- package/src/number/num.test.mts +4 -4
- package/src/number/refined-number-utils.mts +109 -26
- package/src/object/object.mts +130 -212
- package/src/object/object.test.mts +29 -0
- package/src/others/cast-mutable.mts +13 -89
- package/src/others/cast-mutable.test.mts +80 -0
- package/src/others/cast-readonly.mts +13 -169
- package/src/others/if-then.mts +6 -83
- package/src/others/map-nullable.mts +12 -136
- package/src/others/map-nullable.test.mts +6 -6
- package/src/others/memoize-function.mts +14 -157
- package/src/others/tuple.mts +33 -151
- package/src/others/unknown-to-string.mts +12 -126
- package/src/others/unknown-to-string.test.mts +13 -1
- package/src/promise/promise.mts +34 -21
- package/src/promise/promise.test.mts +43 -0
- package/dist/array/array-utils.d.mts +0 -2956
- package/dist/array/array-utils.d.mts.map +0 -1
- package/dist/array/array-utils.mjs +0 -1838
- package/dist/array/array-utils.mjs.map +0 -1
- package/dist/functional/optional.d.mts +0 -360
- package/dist/functional/optional.d.mts.map +0 -1
- package/dist/functional/optional.mjs +0 -268
- package/dist/functional/optional.mjs.map +0 -1
- package/dist/functional/result.d.mts +0 -611
- package/dist/functional/result.d.mts.map +0 -1
- package/dist/functional/result.mjs +0 -545
- package/dist/functional/result.mjs.map +0 -1
- package/src/array/array-utils-search.test.mts +0 -169
- package/src/array/array-utils-slicing.test.mts +0 -274
- package/src/array/array-utils.mts +0 -4834
- package/src/functional/optional.mts +0 -591
- package/src/functional/result.mts +0 -986
|
@@ -3,47 +3,24 @@ type ElementType = FiniteNumber;
|
|
|
3
3
|
/**
|
|
4
4
|
* Type guard that checks if a value is a finite number.
|
|
5
5
|
*
|
|
6
|
-
* Returns `true` if the value is a finite number (not NaN, Infinity, or
|
|
7
|
-
* This is stricter than the standard number type, which includes
|
|
6
|
+
* Returns `true` if the value is a finite number (not NaN, Infinity, or
|
|
7
|
+
* -Infinity). This is stricter than the standard number type, which includes
|
|
8
|
+
* these special values.
|
|
8
9
|
*
|
|
9
10
|
* @param value - The value to check
|
|
10
11
|
* @returns `true` if the value is finite, `false` otherwise
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```typescript
|
|
14
|
-
* isFiniteNumber(42); // true
|
|
15
|
-
* isFiniteNumber(3.14); // true
|
|
16
|
-
* isFiniteNumber(-0); // true
|
|
17
|
-
* isFiniteNumber(Infinity); // false
|
|
18
|
-
* isFiniteNumber(-Infinity); // false
|
|
19
|
-
* isFiniteNumber(NaN); // false
|
|
20
|
-
* isFiniteNumber(1/0); // false (Infinity)
|
|
21
|
-
* ```
|
|
22
12
|
*/
|
|
23
13
|
export declare const isFiniteNumber: (a: number) => a is FiniteNumber;
|
|
24
14
|
/**
|
|
25
15
|
* Casts a number to a FiniteNumber branded type.
|
|
26
16
|
*
|
|
27
|
-
* This function validates that the input is finite (not NaN, Infinity, or
|
|
28
|
-
* and returns it with the FiniteNumber brand. This ensures type
|
|
29
|
-
* that require finite numeric values.
|
|
17
|
+
* This function validates that the input is finite (not NaN, Infinity, or
|
|
18
|
+
* -Infinity) and returns it with the FiniteNumber brand. This ensures type
|
|
19
|
+
* safety for operations that require finite numeric values.
|
|
30
20
|
*
|
|
31
21
|
* @param value - The value to cast
|
|
32
22
|
* @returns The value as a FiniteNumber branded type
|
|
33
23
|
* @throws {TypeError} If the value is NaN, Infinity, or -Infinity
|
|
34
|
-
*
|
|
35
|
-
* @example
|
|
36
|
-
* ```typescript
|
|
37
|
-
* const x = asFiniteNumber(5.5); // FiniteNumber
|
|
38
|
-
* const y = asFiniteNumber(-10); // FiniteNumber
|
|
39
|
-
* const z = asFiniteNumber(0); // FiniteNumber
|
|
40
|
-
*
|
|
41
|
-
* // These throw TypeError:
|
|
42
|
-
* // asFiniteNumber(Infinity); // Not finite
|
|
43
|
-
* // asFiniteNumber(-Infinity); // Not finite
|
|
44
|
-
* // asFiniteNumber(NaN); // Not a number
|
|
45
|
-
* // asFiniteNumber(Math.sqrt(-1)); // Results in NaN
|
|
46
|
-
* ```
|
|
47
24
|
*/
|
|
48
25
|
export declare const asFiniteNumber: <N extends number>(x: N) => number & {
|
|
49
26
|
readonly NaNValue: false;
|
|
@@ -55,45 +32,14 @@ export declare const asFiniteNumber: <N extends number>(x: N) => number & {
|
|
|
55
32
|
* Namespace providing type-safe operations for FiniteNumber branded types.
|
|
56
33
|
*
|
|
57
34
|
* The FiniteNumber type represents any finite numeric value, excluding the
|
|
58
|
-
* special values NaN, Infinity, and -Infinity. All operations are guaranteed
|
|
59
|
-
*
|
|
35
|
+
* special values NaN, Infinity, and -Infinity. All operations are guaranteed to
|
|
36
|
+
* maintain the finite constraint when given finite inputs.
|
|
60
37
|
*
|
|
61
38
|
* This type is essential for:
|
|
39
|
+
*
|
|
62
40
|
* - Mathematical operations that require real numbers
|
|
63
41
|
* - Preventing NaN/Infinity propagation in calculations
|
|
64
42
|
* - Ensuring numeric stability in algorithms
|
|
65
|
-
*
|
|
66
|
-
* @example
|
|
67
|
-
* ```typescript
|
|
68
|
-
* // Type validation
|
|
69
|
-
* FiniteNumber.is(3.14); // true
|
|
70
|
-
* FiniteNumber.is(Infinity); // false
|
|
71
|
-
* FiniteNumber.is(0/0); // false (NaN)
|
|
72
|
-
*
|
|
73
|
-
* // Arithmetic with guaranteed finite results
|
|
74
|
-
* const a = asFiniteNumber(10.5);
|
|
75
|
-
* const b = asFiniteNumber(3.2);
|
|
76
|
-
*
|
|
77
|
-
* const sum = FiniteNumber.add(a, b); // FiniteNumber (13.7)
|
|
78
|
-
* const diff = FiniteNumber.sub(a, b); // FiniteNumber (7.3)
|
|
79
|
-
* const product = FiniteNumber.mul(a, b); // FiniteNumber (33.6)
|
|
80
|
-
* const quotient = FiniteNumber.div(a, b); // FiniteNumber (3.28125)
|
|
81
|
-
* const power = FiniteNumber.pow(a, asFiniteNumber(2)); // FiniteNumber (110.25)
|
|
82
|
-
*
|
|
83
|
-
* // Rounding to integers
|
|
84
|
-
* const value = asFiniteNumber(5.7);
|
|
85
|
-
* const floored = FiniteNumber.floor(value); // Int (5)
|
|
86
|
-
* const ceiled = FiniteNumber.ceil(value); // Int (6)
|
|
87
|
-
* const rounded = FiniteNumber.round(value); // Int (6)
|
|
88
|
-
*
|
|
89
|
-
* // Utility operations
|
|
90
|
-
* const absolute = FiniteNumber.abs(asFiniteNumber(-42.5)); // FiniteNumber (42.5)
|
|
91
|
-
* const minimum = FiniteNumber.min(a, b, asFiniteNumber(5)); // FiniteNumber (3.2)
|
|
92
|
-
* const maximum = FiniteNumber.max(a, b, asFiniteNumber(5)); // FiniteNumber (10.5)
|
|
93
|
-
*
|
|
94
|
-
* // Random generation
|
|
95
|
-
* const rand = FiniteNumber.random(asFiniteNumber(0), asFiniteNumber(1)); // Random in [0, 1]
|
|
96
|
-
* ```
|
|
97
43
|
*/
|
|
98
44
|
export declare const FiniteNumber: {
|
|
99
45
|
/**
|
|
@@ -101,19 +47,14 @@ export declare const FiniteNumber: {
|
|
|
101
47
|
*
|
|
102
48
|
* @param value - The value to check
|
|
103
49
|
* @returns `true` if the value is finite, `false` otherwise
|
|
104
|
-
*
|
|
105
50
|
* @see {@link isFiniteNumber} for usage examples
|
|
106
51
|
*/
|
|
107
52
|
readonly is: (a: number) => a is FiniteNumber;
|
|
108
53
|
/**
|
|
109
54
|
* Returns the absolute value of a finite number.
|
|
55
|
+
*
|
|
110
56
|
* @param x - The finite number to get the absolute value of
|
|
111
57
|
* @returns The absolute value as a FiniteNumber
|
|
112
|
-
* @example
|
|
113
|
-
* ```typescript
|
|
114
|
-
* FiniteNumber.abs(asFiniteNumber(-5.5)); // FiniteNumber (5.5)
|
|
115
|
-
* FiniteNumber.abs(asFiniteNumber(3.2)); // FiniteNumber (3.2)
|
|
116
|
-
* ```
|
|
117
58
|
*/
|
|
118
59
|
readonly abs: (x: FiniteNumber) => TsDataForgeInternals.RefinedNumberUtils.ToNonNegative<FiniteNumber>;
|
|
119
60
|
/**
|
|
@@ -121,16 +62,6 @@ export declare const FiniteNumber: {
|
|
|
121
62
|
*
|
|
122
63
|
* @param values - The finite numbers to compare (at least one required)
|
|
123
64
|
* @returns The smallest value as a FiniteNumber
|
|
124
|
-
*
|
|
125
|
-
* @example
|
|
126
|
-
* ```typescript
|
|
127
|
-
* const a = asFiniteNumber(5.5);
|
|
128
|
-
* const b = asFiniteNumber(3.2);
|
|
129
|
-
* const c = asFiniteNumber(7.8);
|
|
130
|
-
*
|
|
131
|
-
* FiniteNumber.min(a, b); // FiniteNumber (3.2)
|
|
132
|
-
* FiniteNumber.min(a, b, c); // FiniteNumber (3.2)
|
|
133
|
-
* ```
|
|
134
65
|
*/
|
|
135
66
|
readonly min: (...values: readonly FiniteNumber[]) => FiniteNumber;
|
|
136
67
|
/**
|
|
@@ -138,146 +69,83 @@ export declare const FiniteNumber: {
|
|
|
138
69
|
*
|
|
139
70
|
* @param values - The finite numbers to compare (at least one required)
|
|
140
71
|
* @returns The largest value as a FiniteNumber
|
|
141
|
-
*
|
|
142
|
-
* @example
|
|
143
|
-
* ```typescript
|
|
144
|
-
* const a = asFiniteNumber(5.5);
|
|
145
|
-
* const b = asFiniteNumber(3.2);
|
|
146
|
-
* const c = asFiniteNumber(7.8);
|
|
147
|
-
*
|
|
148
|
-
* FiniteNumber.max(a, b); // FiniteNumber (7.8)
|
|
149
|
-
* FiniteNumber.max(a, b, c); // FiniteNumber (7.8)
|
|
150
|
-
* ```
|
|
151
72
|
*/
|
|
152
73
|
readonly max: (...values: readonly FiniteNumber[]) => FiniteNumber;
|
|
153
74
|
/**
|
|
154
75
|
* Returns the largest integer less than or equal to the given finite number.
|
|
76
|
+
*
|
|
155
77
|
* @param x - The finite number to floor
|
|
156
78
|
* @returns The floor value as an Int
|
|
157
|
-
* @example
|
|
158
|
-
* ```typescript
|
|
159
|
-
* FiniteNumber.floor(asFiniteNumber(5.8)); // Int (5)
|
|
160
|
-
* FiniteNumber.floor(asFiniteNumber(-5.2)); // Int (-6)
|
|
161
|
-
* ```
|
|
162
79
|
*/
|
|
163
80
|
readonly floor: (x: ElementType) => TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;
|
|
164
81
|
/**
|
|
165
|
-
* Returns the smallest integer greater than or equal to the given finite
|
|
82
|
+
* Returns the smallest integer greater than or equal to the given finite
|
|
83
|
+
* number.
|
|
84
|
+
*
|
|
166
85
|
* @param x - The finite number to ceil
|
|
167
86
|
* @returns The ceiling value as an Int
|
|
168
|
-
* @example
|
|
169
|
-
* ```typescript
|
|
170
|
-
* FiniteNumber.ceil(asFiniteNumber(5.2)); // Int (6)
|
|
171
|
-
* FiniteNumber.ceil(asFiniteNumber(-5.8)); // Int (-5)
|
|
172
|
-
* ```
|
|
173
87
|
*/
|
|
174
88
|
readonly ceil: (x: ElementType) => TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;
|
|
175
89
|
/**
|
|
176
90
|
* Rounds a finite number to the nearest integer.
|
|
91
|
+
*
|
|
177
92
|
* @param x - The finite number to round
|
|
178
93
|
* @returns The rounded value as an Int
|
|
179
|
-
* @example
|
|
180
|
-
* ```typescript
|
|
181
|
-
* FiniteNumber.round(asFiniteNumber(5.4)); // Int (5)
|
|
182
|
-
* FiniteNumber.round(asFiniteNumber(5.6)); // Int (6)
|
|
183
|
-
* FiniteNumber.round(asFiniteNumber(5.5)); // Int (6)
|
|
184
|
-
* ```
|
|
185
94
|
*/
|
|
186
95
|
readonly round: (x: ElementType) => TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;
|
|
187
96
|
/**
|
|
188
97
|
* Generates a random finite number within the specified range.
|
|
189
98
|
*
|
|
190
|
-
* The generated value is uniformly distributed in the range [min, max].
|
|
191
|
-
*
|
|
99
|
+
* The generated value is uniformly distributed in the range [min, max]. Both
|
|
100
|
+
* bounds are inclusive.
|
|
192
101
|
*
|
|
193
102
|
* @param min - The minimum value (inclusive)
|
|
194
103
|
* @param max - The maximum value (inclusive)
|
|
195
104
|
* @returns A random FiniteNumber in the range [min, max]
|
|
196
|
-
*
|
|
197
|
-
* @example
|
|
198
|
-
* ```typescript
|
|
199
|
-
* // Random percentage (0-100)
|
|
200
|
-
* const pct = FiniteNumber.random(
|
|
201
|
-
* asFiniteNumber(0),
|
|
202
|
-
* asFiniteNumber(100)
|
|
203
|
-
* );
|
|
204
|
-
*
|
|
205
|
-
* // Random coordinate (-1 to 1)
|
|
206
|
-
* const coord = FiniteNumber.random(
|
|
207
|
-
* asFiniteNumber(-1),
|
|
208
|
-
* asFiniteNumber(1)
|
|
209
|
-
* );
|
|
210
|
-
* ```
|
|
211
105
|
*/
|
|
212
106
|
readonly random: (min?: FiniteNumber | undefined, max?: FiniteNumber | undefined) => FiniteNumber;
|
|
213
107
|
/**
|
|
214
108
|
* Raises a finite number to a power.
|
|
109
|
+
*
|
|
215
110
|
* @param a - The base finite number
|
|
216
111
|
* @param b - The exponent finite number
|
|
217
112
|
* @returns `a ** b` as a FiniteNumber
|
|
218
|
-
* @example
|
|
219
|
-
* ```typescript
|
|
220
|
-
* FiniteNumber.pow(asFiniteNumber(2.5), asFiniteNumber(3)); // FiniteNumber (15.625)
|
|
221
|
-
* ```
|
|
222
113
|
*/
|
|
223
114
|
readonly pow: (x: FiniteNumber, y: FiniteNumber) => FiniteNumber;
|
|
224
115
|
/**
|
|
225
116
|
* Adds two finite numbers.
|
|
117
|
+
*
|
|
226
118
|
* @param a - First finite number
|
|
227
119
|
* @param b - Second finite number
|
|
228
120
|
* @returns `a + b` as a FiniteNumber
|
|
229
|
-
* @example
|
|
230
|
-
* ```typescript
|
|
231
|
-
* FiniteNumber.add(asFiniteNumber(5.5), asFiniteNumber(3.2)); // FiniteNumber (8.7)
|
|
232
|
-
* ```
|
|
233
121
|
*/
|
|
234
122
|
readonly add: (x: FiniteNumber, y: FiniteNumber) => FiniteNumber;
|
|
235
123
|
/**
|
|
236
124
|
* Subtracts two finite numbers.
|
|
125
|
+
*
|
|
237
126
|
* @param a - First finite number
|
|
238
127
|
* @param b - Second finite number
|
|
239
128
|
* @returns `a - b` as a FiniteNumber
|
|
240
|
-
* @example
|
|
241
|
-
* ```typescript
|
|
242
|
-
* FiniteNumber.sub(asFiniteNumber(8.7), asFiniteNumber(3.2)); // FiniteNumber (5.5)
|
|
243
|
-
* ```
|
|
244
129
|
*/
|
|
245
130
|
readonly sub: (x: FiniteNumber, y: FiniteNumber) => FiniteNumber;
|
|
246
131
|
/**
|
|
247
132
|
* Multiplies two finite numbers.
|
|
133
|
+
*
|
|
248
134
|
* @param a - First finite number
|
|
249
135
|
* @param b - Second finite number
|
|
250
136
|
* @returns `a * b` as a FiniteNumber
|
|
251
|
-
* @example
|
|
252
|
-
* ```typescript
|
|
253
|
-
* FiniteNumber.mul(asFiniteNumber(5.5), asFiniteNumber(2)); // FiniteNumber (11)
|
|
254
|
-
* ```
|
|
255
137
|
*/
|
|
256
138
|
readonly mul: (x: FiniteNumber, y: FiniteNumber) => FiniteNumber;
|
|
257
139
|
/**
|
|
258
140
|
* Divides two finite numbers.
|
|
259
141
|
*
|
|
260
|
-
* The divisor must be non-zero (enforced by type constraints).
|
|
261
|
-
*
|
|
262
|
-
*
|
|
142
|
+
* The divisor must be non-zero (enforced by type constraints). The result is
|
|
143
|
+
* guaranteed to be finite when both inputs are finite and the divisor is
|
|
144
|
+
* non-zero.
|
|
263
145
|
*
|
|
264
146
|
* @param a - The dividend
|
|
265
147
|
* @param b - The divisor (must be non-zero)
|
|
266
148
|
* @returns The quotient `a / b` as a FiniteNumber
|
|
267
|
-
*
|
|
268
|
-
* @example
|
|
269
|
-
* ```typescript
|
|
270
|
-
* const a = asFiniteNumber(11);
|
|
271
|
-
* const b = asFiniteNumber(2);
|
|
272
|
-
*
|
|
273
|
-
* FiniteNumber.div(a, b); // FiniteNumber (5.5)
|
|
274
|
-
*
|
|
275
|
-
* // With non-zero type guard
|
|
276
|
-
* const divisor = asFiniteNumber(userInput);
|
|
277
|
-
* if (Num.isNonZero(divisor)) {
|
|
278
|
-
* const result = FiniteNumber.div(a, divisor);
|
|
279
|
-
* }
|
|
280
|
-
* ```
|
|
281
149
|
*/
|
|
282
150
|
readonly div: (x: FiniteNumber, y: number & {
|
|
283
151
|
readonly NaNValue: false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finite-number.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/finite-number.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,KAAK,WAAW,GAAG,YAAY,CAAC;AAgDhC
|
|
1
|
+
{"version":3,"file":"finite-number.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/finite-number.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,KAAK,WAAW,GAAG,YAAY,CAAC;AAgDhC;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,kCAAK,CAAC;AAEjC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc;;;;;MAAW,CAAC;AAEvC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY;IACvB;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;wBAlGA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC;IAoG3D;;;;;;OAMG;uBArGA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC;IAuG3D;;;;;OAKG;wBAvGA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC;IAyG3D;;;;;;;;;OASG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;;;;OAUG;;;;;;;;CAEK,CAAC"}
|
|
@@ -1,109 +1,55 @@
|
|
|
1
1
|
import { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
2
2
|
|
|
3
3
|
const typeNameInMessage = 'a finite number';
|
|
4
|
-
const { abs,
|
|
4
|
+
const { abs, add, castType, div, is, max: max_, min: min_, mul, pow, random, sub, } = TsDataForgeInternals.RefinedNumberUtils.operatorsForFloat({
|
|
5
5
|
MIN_VALUE: -Number.MAX_VALUE,
|
|
6
6
|
MAX_VALUE: Number.MAX_VALUE,
|
|
7
7
|
typeNameInMessage,
|
|
8
8
|
});
|
|
9
9
|
const floor = (x) =>
|
|
10
|
-
// eslint-disable-next-line
|
|
10
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
11
11
|
Math.floor(x);
|
|
12
12
|
const ceil = (x) =>
|
|
13
|
-
// eslint-disable-next-line
|
|
13
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
14
14
|
Math.ceil(x);
|
|
15
15
|
const round = (x) =>
|
|
16
|
-
// eslint-disable-next-line
|
|
16
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
17
17
|
Math.round(x);
|
|
18
18
|
/**
|
|
19
19
|
* Type guard that checks if a value is a finite number.
|
|
20
20
|
*
|
|
21
|
-
* Returns `true` if the value is a finite number (not NaN, Infinity, or
|
|
22
|
-
* This is stricter than the standard number type, which includes
|
|
21
|
+
* Returns `true` if the value is a finite number (not NaN, Infinity, or
|
|
22
|
+
* -Infinity). This is stricter than the standard number type, which includes
|
|
23
|
+
* these special values.
|
|
23
24
|
*
|
|
24
25
|
* @param value - The value to check
|
|
25
26
|
* @returns `true` if the value is finite, `false` otherwise
|
|
26
|
-
*
|
|
27
|
-
* @example
|
|
28
|
-
* ```typescript
|
|
29
|
-
* isFiniteNumber(42); // true
|
|
30
|
-
* isFiniteNumber(3.14); // true
|
|
31
|
-
* isFiniteNumber(-0); // true
|
|
32
|
-
* isFiniteNumber(Infinity); // false
|
|
33
|
-
* isFiniteNumber(-Infinity); // false
|
|
34
|
-
* isFiniteNumber(NaN); // false
|
|
35
|
-
* isFiniteNumber(1/0); // false (Infinity)
|
|
36
|
-
* ```
|
|
37
27
|
*/
|
|
38
28
|
const isFiniteNumber = is;
|
|
39
29
|
/**
|
|
40
30
|
* Casts a number to a FiniteNumber branded type.
|
|
41
31
|
*
|
|
42
|
-
* This function validates that the input is finite (not NaN, Infinity, or
|
|
43
|
-
* and returns it with the FiniteNumber brand. This ensures type
|
|
44
|
-
* that require finite numeric values.
|
|
32
|
+
* This function validates that the input is finite (not NaN, Infinity, or
|
|
33
|
+
* -Infinity) and returns it with the FiniteNumber brand. This ensures type
|
|
34
|
+
* safety for operations that require finite numeric values.
|
|
45
35
|
*
|
|
46
36
|
* @param value - The value to cast
|
|
47
37
|
* @returns The value as a FiniteNumber branded type
|
|
48
38
|
* @throws {TypeError} If the value is NaN, Infinity, or -Infinity
|
|
49
|
-
*
|
|
50
|
-
* @example
|
|
51
|
-
* ```typescript
|
|
52
|
-
* const x = asFiniteNumber(5.5); // FiniteNumber
|
|
53
|
-
* const y = asFiniteNumber(-10); // FiniteNumber
|
|
54
|
-
* const z = asFiniteNumber(0); // FiniteNumber
|
|
55
|
-
*
|
|
56
|
-
* // These throw TypeError:
|
|
57
|
-
* // asFiniteNumber(Infinity); // Not finite
|
|
58
|
-
* // asFiniteNumber(-Infinity); // Not finite
|
|
59
|
-
* // asFiniteNumber(NaN); // Not a number
|
|
60
|
-
* // asFiniteNumber(Math.sqrt(-1)); // Results in NaN
|
|
61
|
-
* ```
|
|
62
39
|
*/
|
|
63
40
|
const asFiniteNumber = castType;
|
|
64
41
|
/**
|
|
65
42
|
* Namespace providing type-safe operations for FiniteNumber branded types.
|
|
66
43
|
*
|
|
67
44
|
* The FiniteNumber type represents any finite numeric value, excluding the
|
|
68
|
-
* special values NaN, Infinity, and -Infinity. All operations are guaranteed
|
|
69
|
-
*
|
|
45
|
+
* special values NaN, Infinity, and -Infinity. All operations are guaranteed to
|
|
46
|
+
* maintain the finite constraint when given finite inputs.
|
|
70
47
|
*
|
|
71
48
|
* This type is essential for:
|
|
49
|
+
*
|
|
72
50
|
* - Mathematical operations that require real numbers
|
|
73
51
|
* - Preventing NaN/Infinity propagation in calculations
|
|
74
52
|
* - Ensuring numeric stability in algorithms
|
|
75
|
-
*
|
|
76
|
-
* @example
|
|
77
|
-
* ```typescript
|
|
78
|
-
* // Type validation
|
|
79
|
-
* FiniteNumber.is(3.14); // true
|
|
80
|
-
* FiniteNumber.is(Infinity); // false
|
|
81
|
-
* FiniteNumber.is(0/0); // false (NaN)
|
|
82
|
-
*
|
|
83
|
-
* // Arithmetic with guaranteed finite results
|
|
84
|
-
* const a = asFiniteNumber(10.5);
|
|
85
|
-
* const b = asFiniteNumber(3.2);
|
|
86
|
-
*
|
|
87
|
-
* const sum = FiniteNumber.add(a, b); // FiniteNumber (13.7)
|
|
88
|
-
* const diff = FiniteNumber.sub(a, b); // FiniteNumber (7.3)
|
|
89
|
-
* const product = FiniteNumber.mul(a, b); // FiniteNumber (33.6)
|
|
90
|
-
* const quotient = FiniteNumber.div(a, b); // FiniteNumber (3.28125)
|
|
91
|
-
* const power = FiniteNumber.pow(a, asFiniteNumber(2)); // FiniteNumber (110.25)
|
|
92
|
-
*
|
|
93
|
-
* // Rounding to integers
|
|
94
|
-
* const value = asFiniteNumber(5.7);
|
|
95
|
-
* const floored = FiniteNumber.floor(value); // Int (5)
|
|
96
|
-
* const ceiled = FiniteNumber.ceil(value); // Int (6)
|
|
97
|
-
* const rounded = FiniteNumber.round(value); // Int (6)
|
|
98
|
-
*
|
|
99
|
-
* // Utility operations
|
|
100
|
-
* const absolute = FiniteNumber.abs(asFiniteNumber(-42.5)); // FiniteNumber (42.5)
|
|
101
|
-
* const minimum = FiniteNumber.min(a, b, asFiniteNumber(5)); // FiniteNumber (3.2)
|
|
102
|
-
* const maximum = FiniteNumber.max(a, b, asFiniteNumber(5)); // FiniteNumber (10.5)
|
|
103
|
-
*
|
|
104
|
-
* // Random generation
|
|
105
|
-
* const rand = FiniteNumber.random(asFiniteNumber(0), asFiniteNumber(1)); // Random in [0, 1]
|
|
106
|
-
* ```
|
|
107
53
|
*/
|
|
108
54
|
const FiniteNumber = {
|
|
109
55
|
/**
|
|
@@ -111,19 +57,14 @@ const FiniteNumber = {
|
|
|
111
57
|
*
|
|
112
58
|
* @param value - The value to check
|
|
113
59
|
* @returns `true` if the value is finite, `false` otherwise
|
|
114
|
-
*
|
|
115
60
|
* @see {@link isFiniteNumber} for usage examples
|
|
116
61
|
*/
|
|
117
62
|
is,
|
|
118
63
|
/**
|
|
119
64
|
* Returns the absolute value of a finite number.
|
|
65
|
+
*
|
|
120
66
|
* @param x - The finite number to get the absolute value of
|
|
121
67
|
* @returns The absolute value as a FiniteNumber
|
|
122
|
-
* @example
|
|
123
|
-
* ```typescript
|
|
124
|
-
* FiniteNumber.abs(asFiniteNumber(-5.5)); // FiniteNumber (5.5)
|
|
125
|
-
* FiniteNumber.abs(asFiniteNumber(3.2)); // FiniteNumber (3.2)
|
|
126
|
-
* ```
|
|
127
68
|
*/
|
|
128
69
|
abs,
|
|
129
70
|
/**
|
|
@@ -131,16 +72,6 @@ const FiniteNumber = {
|
|
|
131
72
|
*
|
|
132
73
|
* @param values - The finite numbers to compare (at least one required)
|
|
133
74
|
* @returns The smallest value as a FiniteNumber
|
|
134
|
-
*
|
|
135
|
-
* @example
|
|
136
|
-
* ```typescript
|
|
137
|
-
* const a = asFiniteNumber(5.5);
|
|
138
|
-
* const b = asFiniteNumber(3.2);
|
|
139
|
-
* const c = asFiniteNumber(7.8);
|
|
140
|
-
*
|
|
141
|
-
* FiniteNumber.min(a, b); // FiniteNumber (3.2)
|
|
142
|
-
* FiniteNumber.min(a, b, c); // FiniteNumber (3.2)
|
|
143
|
-
* ```
|
|
144
75
|
*/
|
|
145
76
|
min: min_,
|
|
146
77
|
/**
|
|
@@ -148,146 +79,83 @@ const FiniteNumber = {
|
|
|
148
79
|
*
|
|
149
80
|
* @param values - The finite numbers to compare (at least one required)
|
|
150
81
|
* @returns The largest value as a FiniteNumber
|
|
151
|
-
*
|
|
152
|
-
* @example
|
|
153
|
-
* ```typescript
|
|
154
|
-
* const a = asFiniteNumber(5.5);
|
|
155
|
-
* const b = asFiniteNumber(3.2);
|
|
156
|
-
* const c = asFiniteNumber(7.8);
|
|
157
|
-
*
|
|
158
|
-
* FiniteNumber.max(a, b); // FiniteNumber (7.8)
|
|
159
|
-
* FiniteNumber.max(a, b, c); // FiniteNumber (7.8)
|
|
160
|
-
* ```
|
|
161
82
|
*/
|
|
162
83
|
max: max_,
|
|
163
84
|
/**
|
|
164
85
|
* Returns the largest integer less than or equal to the given finite number.
|
|
86
|
+
*
|
|
165
87
|
* @param x - The finite number to floor
|
|
166
88
|
* @returns The floor value as an Int
|
|
167
|
-
* @example
|
|
168
|
-
* ```typescript
|
|
169
|
-
* FiniteNumber.floor(asFiniteNumber(5.8)); // Int (5)
|
|
170
|
-
* FiniteNumber.floor(asFiniteNumber(-5.2)); // Int (-6)
|
|
171
|
-
* ```
|
|
172
89
|
*/
|
|
173
90
|
floor,
|
|
174
91
|
/**
|
|
175
|
-
* Returns the smallest integer greater than or equal to the given finite
|
|
92
|
+
* Returns the smallest integer greater than or equal to the given finite
|
|
93
|
+
* number.
|
|
94
|
+
*
|
|
176
95
|
* @param x - The finite number to ceil
|
|
177
96
|
* @returns The ceiling value as an Int
|
|
178
|
-
* @example
|
|
179
|
-
* ```typescript
|
|
180
|
-
* FiniteNumber.ceil(asFiniteNumber(5.2)); // Int (6)
|
|
181
|
-
* FiniteNumber.ceil(asFiniteNumber(-5.8)); // Int (-5)
|
|
182
|
-
* ```
|
|
183
97
|
*/
|
|
184
98
|
ceil,
|
|
185
99
|
/**
|
|
186
100
|
* Rounds a finite number to the nearest integer.
|
|
101
|
+
*
|
|
187
102
|
* @param x - The finite number to round
|
|
188
103
|
* @returns The rounded value as an Int
|
|
189
|
-
* @example
|
|
190
|
-
* ```typescript
|
|
191
|
-
* FiniteNumber.round(asFiniteNumber(5.4)); // Int (5)
|
|
192
|
-
* FiniteNumber.round(asFiniteNumber(5.6)); // Int (6)
|
|
193
|
-
* FiniteNumber.round(asFiniteNumber(5.5)); // Int (6)
|
|
194
|
-
* ```
|
|
195
104
|
*/
|
|
196
105
|
round,
|
|
197
106
|
/**
|
|
198
107
|
* Generates a random finite number within the specified range.
|
|
199
108
|
*
|
|
200
|
-
* The generated value is uniformly distributed in the range [min, max].
|
|
201
|
-
*
|
|
109
|
+
* The generated value is uniformly distributed in the range [min, max]. Both
|
|
110
|
+
* bounds are inclusive.
|
|
202
111
|
*
|
|
203
112
|
* @param min - The minimum value (inclusive)
|
|
204
113
|
* @param max - The maximum value (inclusive)
|
|
205
114
|
* @returns A random FiniteNumber in the range [min, max]
|
|
206
|
-
*
|
|
207
|
-
* @example
|
|
208
|
-
* ```typescript
|
|
209
|
-
* // Random percentage (0-100)
|
|
210
|
-
* const pct = FiniteNumber.random(
|
|
211
|
-
* asFiniteNumber(0),
|
|
212
|
-
* asFiniteNumber(100)
|
|
213
|
-
* );
|
|
214
|
-
*
|
|
215
|
-
* // Random coordinate (-1 to 1)
|
|
216
|
-
* const coord = FiniteNumber.random(
|
|
217
|
-
* asFiniteNumber(-1),
|
|
218
|
-
* asFiniteNumber(1)
|
|
219
|
-
* );
|
|
220
|
-
* ```
|
|
221
115
|
*/
|
|
222
116
|
random,
|
|
223
117
|
/**
|
|
224
118
|
* Raises a finite number to a power.
|
|
119
|
+
*
|
|
225
120
|
* @param a - The base finite number
|
|
226
121
|
* @param b - The exponent finite number
|
|
227
122
|
* @returns `a ** b` as a FiniteNumber
|
|
228
|
-
* @example
|
|
229
|
-
* ```typescript
|
|
230
|
-
* FiniteNumber.pow(asFiniteNumber(2.5), asFiniteNumber(3)); // FiniteNumber (15.625)
|
|
231
|
-
* ```
|
|
232
123
|
*/
|
|
233
124
|
pow,
|
|
234
125
|
/**
|
|
235
126
|
* Adds two finite numbers.
|
|
127
|
+
*
|
|
236
128
|
* @param a - First finite number
|
|
237
129
|
* @param b - Second finite number
|
|
238
130
|
* @returns `a + b` as a FiniteNumber
|
|
239
|
-
* @example
|
|
240
|
-
* ```typescript
|
|
241
|
-
* FiniteNumber.add(asFiniteNumber(5.5), asFiniteNumber(3.2)); // FiniteNumber (8.7)
|
|
242
|
-
* ```
|
|
243
131
|
*/
|
|
244
132
|
add,
|
|
245
133
|
/**
|
|
246
134
|
* Subtracts two finite numbers.
|
|
135
|
+
*
|
|
247
136
|
* @param a - First finite number
|
|
248
137
|
* @param b - Second finite number
|
|
249
138
|
* @returns `a - b` as a FiniteNumber
|
|
250
|
-
* @example
|
|
251
|
-
* ```typescript
|
|
252
|
-
* FiniteNumber.sub(asFiniteNumber(8.7), asFiniteNumber(3.2)); // FiniteNumber (5.5)
|
|
253
|
-
* ```
|
|
254
139
|
*/
|
|
255
140
|
sub,
|
|
256
141
|
/**
|
|
257
142
|
* Multiplies two finite numbers.
|
|
143
|
+
*
|
|
258
144
|
* @param a - First finite number
|
|
259
145
|
* @param b - Second finite number
|
|
260
146
|
* @returns `a * b` as a FiniteNumber
|
|
261
|
-
* @example
|
|
262
|
-
* ```typescript
|
|
263
|
-
* FiniteNumber.mul(asFiniteNumber(5.5), asFiniteNumber(2)); // FiniteNumber (11)
|
|
264
|
-
* ```
|
|
265
147
|
*/
|
|
266
148
|
mul,
|
|
267
149
|
/**
|
|
268
150
|
* Divides two finite numbers.
|
|
269
151
|
*
|
|
270
|
-
* The divisor must be non-zero (enforced by type constraints).
|
|
271
|
-
*
|
|
272
|
-
*
|
|
152
|
+
* The divisor must be non-zero (enforced by type constraints). The result is
|
|
153
|
+
* guaranteed to be finite when both inputs are finite and the divisor is
|
|
154
|
+
* non-zero.
|
|
273
155
|
*
|
|
274
156
|
* @param a - The dividend
|
|
275
157
|
* @param b - The divisor (must be non-zero)
|
|
276
158
|
* @returns The quotient `a / b` as a FiniteNumber
|
|
277
|
-
*
|
|
278
|
-
* @example
|
|
279
|
-
* ```typescript
|
|
280
|
-
* const a = asFiniteNumber(11);
|
|
281
|
-
* const b = asFiniteNumber(2);
|
|
282
|
-
*
|
|
283
|
-
* FiniteNumber.div(a, b); // FiniteNumber (5.5)
|
|
284
|
-
*
|
|
285
|
-
* // With non-zero type guard
|
|
286
|
-
* const divisor = asFiniteNumber(userInput);
|
|
287
|
-
* if (Num.isNonZero(divisor)) {
|
|
288
|
-
* const result = FiniteNumber.div(a, divisor);
|
|
289
|
-
* }
|
|
290
|
-
* ```
|
|
291
159
|
*/
|
|
292
160
|
div,
|
|
293
161
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finite-number.mjs","sources":["../../../src/number/branded-types/finite-number.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA,MAAM,iBAAiB,GAAG,iBAAiB;AAE3C,MAAM,EACJ,GAAG,EACH,GAAG,
|
|
1
|
+
{"version":3,"file":"finite-number.mjs","sources":["../../../src/number/branded-types/finite-number.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA,MAAM,iBAAiB,GAAG,iBAAiB;AAE3C,MAAM,EACJ,GAAG,EACH,GAAG,EACH,QAAQ,EACR,GAAG,EACH,EAAE,EACF,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EACH,GAAG,EACH,MAAM,EACN,GAAG,GACJ,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,iBAAiB,CAI3D;AACA,IAAA,SAAS,EAAE,CAAC,MAAM,CAAC,SAAS;IAC5B,SAAS,EAAE,MAAM,CAAC,SAAS;IAC3B,iBAAiB;AACT,CAAA,CAAC;AAEX,MAAM,KAAK,GAAG,CACZ,CAAc;AAEd;AACA,IAAI,CAAC,KAAK,CAAC,CAAC,CAA+D;AAE7E,MAAM,IAAI,GAAG,CACX,CAAc;AAEd;AACA,IAAI,CAAC,IAAI,CAAC,CAAC,CAA+D;AAE5E,MAAM,KAAK,GAAG,CACZ,CAAc;AAEd;AACA,IAAI,CAAC,KAAK,CAAC,CAAC,CAA+D;AAM7E;;;;;;;;;AASG;AACI,MAAM,cAAc,GAAG;AAE9B;;;;;;;;;;AAUG;AACI,MAAM,cAAc,GAAG;AAE9B;;;;;;;;;;;;AAYG;AACI,MAAM,YAAY,GAAG;AAC1B;;;;;;AAMG;IACH,EAAE;AAEF;;;;;AAKG;IACH,GAAG;AAEH;;;;;AAKG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;AAKG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;AAKG;IACH,KAAK;AAEL;;;;;;AAMG;IACH,IAAI;AAEJ;;;;;AAKG;IACH,KAAK;AAEL;;;;;;;;;AASG;IACH,MAAM;AAEN;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;;;;;AAUG;IACH,GAAG;;;;;"}
|