ts-data-forge 14.10.1 → 14.11.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 +34 -1
- package/dist/array/impl/array-utils-reducing-value.d.mts.map +1 -1
- package/dist/array/impl/array-utils-reducing-value.mjs +4 -3
- package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
- package/dist/array/impl/array-utils-slice-clamped.mjs +1 -1
- package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -1
- package/dist/array/impl/array-utils-slicing.d.mts.map +1 -1
- package/dist/array/impl/array-utils-slicing.mjs +10 -3
- package/dist/array/impl/array-utils-slicing.mjs.map +1 -1
- package/dist/array/impl/array-utils-transformation.d.mts.map +1 -1
- package/dist/array/impl/array-utils-transformation.mjs +3 -3
- package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
- package/dist/array/impl/array-utils-validation.d.mts.map +1 -1
- package/dist/array/impl/array-utils-validation.mjs +2 -1
- package/dist/array/impl/array-utils-validation.mjs.map +1 -1
- package/dist/built-in-tag.d.mts +22 -0
- package/dist/built-in-tag.d.mts.map +1 -0
- package/dist/built-in-tag.mjs +34 -0
- package/dist/built-in-tag.mjs.map +1 -0
- package/dist/collections/imap-mapped.mjs +6 -3
- package/dist/collections/imap-mapped.mjs.map +1 -1
- package/dist/collections/imap.mjs +6 -3
- package/dist/collections/imap.mjs.map +1 -1
- package/dist/collections/stack.mjs +3 -3
- package/dist/collections/stack.mjs.map +1 -1
- package/dist/iterator/range.d.mts +1 -1
- package/dist/iterator/range.d.mts.map +1 -1
- package/dist/iterator/range.mjs +5 -2
- package/dist/iterator/range.mjs.map +1 -1
- package/dist/json/json.d.mts.map +1 -1
- package/dist/json/json.mjs +13 -47
- package/dist/json/json.mjs.map +1 -1
- package/dist/number/branded-types/finite-number.d.mts +4 -9
- package/dist/number/branded-types/finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/finite-number.mjs +9 -9
- package/dist/number/branded-types/finite-number.mjs.map +1 -1
- package/dist/number/branded-types/int.d.mts +3 -9
- package/dist/number/branded-types/int.d.mts.map +1 -1
- package/dist/number/branded-types/int.mjs +9 -10
- package/dist/number/branded-types/int.mjs.map +1 -1
- package/dist/number/branded-types/int16.d.mts +3 -18
- package/dist/number/branded-types/int16.d.mts.map +1 -1
- package/dist/number/branded-types/int16.mjs +9 -10
- package/dist/number/branded-types/int16.mjs.map +1 -1
- package/dist/number/branded-types/int32.d.mts +3 -14
- package/dist/number/branded-types/int32.d.mts.map +1 -1
- package/dist/number/branded-types/int32.mjs +9 -10
- package/dist/number/branded-types/int32.mjs.map +1 -1
- package/dist/number/branded-types/negative-finite-number.d.mts +4 -16
- package/dist/number/branded-types/negative-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/negative-finite-number.mjs +9 -10
- package/dist/number/branded-types/negative-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/negative-int.d.mts +3 -16
- package/dist/number/branded-types/negative-int.d.mts.map +1 -1
- package/dist/number/branded-types/negative-int.mjs +9 -11
- package/dist/number/branded-types/negative-int.mjs.map +1 -1
- package/dist/number/branded-types/negative-safe-int.d.mts +3 -17
- package/dist/number/branded-types/negative-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/negative-safe-int.mjs +9 -11
- package/dist/number/branded-types/negative-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.d.mts +4 -14
- package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.mjs +9 -9
- package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int16.d.mts +3 -19
- package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int16.mjs +9 -10
- package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int32.d.mts +3 -17
- package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int32.mjs +9 -10
- package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-positive-finite-number.d.mts +4 -14
- package/dist/number/branded-types/non-positive-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-positive-finite-number.mjs +9 -9
- package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-positive-int.d.mts +3 -14
- package/dist/number/branded-types/non-positive-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-positive-int.mjs +9 -10
- package/dist/number/branded-types/non-positive-int.mjs.map +1 -1
- package/dist/number/branded-types/non-positive-safe-int.d.mts +3 -15
- package/dist/number/branded-types/non-positive-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-positive-safe-int.mjs +9 -10
- package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.d.mts +4 -10
- package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.mjs +9 -10
- package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int.d.mts +3 -10
- package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int.mjs +9 -11
- package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int16.d.mts +3 -19
- package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int16.mjs +12 -11
- package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int32.d.mts +3 -15
- package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int32.mjs +12 -11
- package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.d.mts +6 -14
- package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.mjs +9 -13
- package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.d.mts +3 -20
- package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.mjs +9 -11
- package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.d.mts +3 -18
- package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.mjs +9 -11
- package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
- package/dist/number/branded-types/positive-finite-number.d.mts +4 -16
- package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/positive-finite-number.mjs +9 -9
- package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/positive-int.d.mts +3 -16
- package/dist/number/branded-types/positive-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int.mjs +9 -10
- package/dist/number/branded-types/positive-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-int16.d.mts +3 -21
- package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int16.mjs +9 -10
- package/dist/number/branded-types/positive-int16.mjs.map +1 -1
- package/dist/number/branded-types/positive-int32.d.mts +3 -19
- package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int32.mjs +9 -10
- package/dist/number/branded-types/positive-int32.mjs.map +1 -1
- package/dist/number/branded-types/positive-safe-int.d.mts +5 -19
- package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-safe-int.mjs +9 -11
- package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint16.d.mts +3 -20
- package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint16.mjs +9 -10
- package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint32.d.mts +3 -18
- package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint32.mjs +9 -10
- package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
- package/dist/number/branded-types/safe-int.d.mts +5 -12
- package/dist/number/branded-types/safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/safe-int.mjs +9 -12
- package/dist/number/branded-types/safe-int.mjs.map +1 -1
- package/dist/number/branded-types/safe-uint.d.mts +3 -15
- package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
- package/dist/number/branded-types/safe-uint.mjs +9 -11
- package/dist/number/branded-types/safe-uint.mjs.map +1 -1
- package/dist/number/branded-types/uint.d.mts +3 -14
- package/dist/number/branded-types/uint.d.mts.map +1 -1
- package/dist/number/branded-types/uint.mjs +9 -10
- package/dist/number/branded-types/uint.mjs.map +1 -1
- package/dist/number/branded-types/uint16.d.mts +3 -18
- package/dist/number/branded-types/uint16.d.mts.map +1 -1
- package/dist/number/branded-types/uint16.mjs +9 -10
- package/dist/number/branded-types/uint16.mjs.map +1 -1
- package/dist/number/branded-types/uint32.d.mts +3 -16
- package/dist/number/branded-types/uint32.d.mts.map +1 -1
- package/dist/number/branded-types/uint32.mjs +9 -10
- package/dist/number/branded-types/uint32.mjs.map +1 -1
- package/dist/number/enum/int8.d.mts +13 -15
- package/dist/number/enum/int8.d.mts.map +1 -1
- package/dist/number/enum/int8.mjs +20 -25
- package/dist/number/enum/int8.mjs.map +1 -1
- package/dist/number/enum/uint8.d.mts +12 -14
- package/dist/number/enum/uint8.d.mts.map +1 -1
- package/dist/number/enum/uint8.mjs +18 -23
- package/dist/number/enum/uint8.mjs.map +1 -1
- package/dist/number/index.d.mts +1 -1
- package/dist/number/index.d.mts.map +1 -1
- package/dist/number/index.mjs +1 -1
- package/dist/number/index.mjs.map +1 -1
- package/dist/number/num/impl/index.d.mts +2 -0
- package/dist/number/num/impl/index.d.mts.map +1 -0
- package/dist/number/num/impl/index.mjs +2 -0
- package/dist/number/num/impl/index.mjs.map +1 -0
- package/dist/number/num/impl/num.d.mts +531 -0
- package/dist/number/num/impl/num.d.mts.map +1 -0
- package/dist/number/num/impl/num.mjs +542 -0
- package/dist/number/num/impl/num.mjs.map +1 -0
- package/dist/number/num/index.d.mts +17 -0
- package/dist/number/num/index.d.mts.map +1 -0
- package/dist/number/num/index.mjs +17 -0
- package/dist/number/num/index.mjs.map +1 -0
- package/dist/number/operators/finite-number.d.mts +16 -0
- package/dist/number/operators/finite-number.d.mts.map +1 -0
- package/dist/number/operators/finite-number.mjs +7 -0
- package/dist/number/operators/finite-number.mjs.map +1 -0
- package/dist/number/operators/int.d.mts +16 -0
- package/dist/number/operators/int.d.mts.map +1 -0
- package/dist/number/operators/int.mjs +8 -0
- package/dist/number/operators/int.mjs.map +1 -0
- package/dist/number/operators/int16.d.mts +25 -0
- package/dist/number/operators/int16.d.mts.map +1 -0
- package/dist/number/operators/int16.mjs +8 -0
- package/dist/number/operators/int16.mjs.map +1 -0
- package/dist/number/operators/int32.d.mts +21 -0
- package/dist/number/operators/int32.d.mts.map +1 -0
- package/dist/number/operators/int32.mjs +8 -0
- package/dist/number/operators/int32.mjs.map +1 -0
- package/dist/number/operators/int8.d.mts +24 -0
- package/dist/number/operators/int8.d.mts.map +1 -0
- package/dist/number/operators/int8.mjs +8 -0
- package/dist/number/operators/int8.mjs.map +1 -0
- package/dist/number/operators/negative-finite-number.d.mts +11 -0
- package/dist/number/operators/negative-finite-number.d.mts.map +1 -0
- package/dist/number/operators/negative-finite-number.mjs +8 -0
- package/dist/number/operators/negative-finite-number.mjs.map +1 -0
- package/dist/number/operators/negative-int.d.mts +10 -0
- package/dist/number/operators/negative-int.d.mts.map +1 -0
- package/dist/number/operators/negative-int.mjs +9 -0
- package/dist/number/operators/negative-int.mjs.map +1 -0
- package/dist/number/operators/negative-safe-int.d.mts +10 -0
- package/dist/number/operators/negative-safe-int.d.mts.map +1 -0
- package/dist/number/operators/negative-safe-int.mjs +9 -0
- package/dist/number/operators/negative-safe-int.mjs.map +1 -0
- package/dist/number/operators/non-negative-finite-number.d.mts +22 -0
- package/dist/number/operators/non-negative-finite-number.d.mts.map +1 -0
- package/dist/number/operators/non-negative-finite-number.mjs +7 -0
- package/dist/number/operators/non-negative-finite-number.mjs.map +1 -0
- package/dist/number/operators/non-negative-int16.d.mts +27 -0
- package/dist/number/operators/non-negative-int16.d.mts.map +1 -0
- package/dist/number/operators/non-negative-int16.mjs +8 -0
- package/dist/number/operators/non-negative-int16.mjs.map +1 -0
- package/dist/number/operators/non-negative-int32.d.mts +25 -0
- package/dist/number/operators/non-negative-int32.d.mts.map +1 -0
- package/dist/number/operators/non-negative-int32.mjs +8 -0
- package/dist/number/operators/non-negative-int32.mjs.map +1 -0
- package/dist/number/operators/non-positive-finite-number.d.mts +11 -0
- package/dist/number/operators/non-positive-finite-number.d.mts.map +1 -0
- package/dist/number/operators/non-positive-finite-number.mjs +7 -0
- package/dist/number/operators/non-positive-finite-number.mjs.map +1 -0
- package/dist/number/operators/non-positive-int.d.mts +10 -0
- package/dist/number/operators/non-positive-int.d.mts.map +1 -0
- package/dist/number/operators/non-positive-int.mjs +8 -0
- package/dist/number/operators/non-positive-int.mjs.map +1 -0
- package/dist/number/operators/non-positive-safe-int.d.mts +10 -0
- package/dist/number/operators/non-positive-safe-int.d.mts.map +1 -0
- package/dist/number/operators/non-positive-safe-int.mjs +8 -0
- package/dist/number/operators/non-positive-safe-int.mjs.map +1 -0
- package/dist/number/operators/non-zero-finite-number.d.mts +16 -0
- package/dist/number/operators/non-zero-finite-number.d.mts.map +1 -0
- package/dist/number/operators/non-zero-finite-number.mjs +8 -0
- package/dist/number/operators/non-zero-finite-number.mjs.map +1 -0
- package/dist/number/operators/non-zero-int.d.mts +10 -0
- package/dist/number/operators/non-zero-int.d.mts.map +1 -0
- package/dist/number/operators/non-zero-int.mjs +9 -0
- package/dist/number/operators/non-zero-int.mjs.map +1 -0
- package/dist/number/operators/non-zero-int16.d.mts +10 -0
- package/dist/number/operators/non-zero-int16.d.mts.map +1 -0
- package/dist/number/operators/non-zero-int16.mjs +9 -0
- package/dist/number/operators/non-zero-int16.mjs.map +1 -0
- package/dist/number/operators/non-zero-int32.d.mts +10 -0
- package/dist/number/operators/non-zero-int32.d.mts.map +1 -0
- package/dist/number/operators/non-zero-int32.mjs +9 -0
- package/dist/number/operators/non-zero-int32.mjs.map +1 -0
- package/dist/number/operators/non-zero-safe-int.d.mts +10 -0
- package/dist/number/operators/non-zero-safe-int.d.mts.map +1 -0
- package/dist/number/operators/non-zero-safe-int.mjs +11 -0
- package/dist/number/operators/non-zero-safe-int.mjs.map +1 -0
- package/dist/number/operators/non-zero-uint16.d.mts +2 -0
- package/dist/number/operators/non-zero-uint16.d.mts.map +1 -0
- package/dist/number/operators/non-zero-uint16.mjs +9 -0
- package/dist/number/operators/non-zero-uint16.mjs.map +1 -0
- package/dist/number/operators/non-zero-uint32.d.mts +2 -0
- package/dist/number/operators/non-zero-uint32.d.mts.map +1 -0
- package/dist/number/operators/non-zero-uint32.mjs +9 -0
- package/dist/number/operators/non-zero-uint32.mjs.map +1 -0
- package/dist/number/operators/positive-finite-number.d.mts +23 -0
- package/dist/number/operators/positive-finite-number.d.mts.map +1 -0
- package/dist/number/operators/positive-finite-number.mjs +7 -0
- package/dist/number/operators/positive-finite-number.mjs.map +1 -0
- package/dist/number/operators/positive-int.d.mts +23 -0
- package/dist/number/operators/positive-int.d.mts.map +1 -0
- package/dist/number/operators/positive-int.mjs +8 -0
- package/dist/number/operators/positive-int.mjs.map +1 -0
- package/dist/number/operators/positive-int16.d.mts +28 -0
- package/dist/number/operators/positive-int16.d.mts.map +1 -0
- package/dist/number/operators/positive-int16.mjs +8 -0
- package/dist/number/operators/positive-int16.mjs.map +1 -0
- package/dist/number/operators/positive-int32.d.mts +26 -0
- package/dist/number/operators/positive-int32.d.mts.map +1 -0
- package/dist/number/operators/positive-int32.mjs +8 -0
- package/dist/number/operators/positive-int32.mjs.map +1 -0
- package/dist/number/operators/positive-safe-int.d.mts +24 -0
- package/dist/number/operators/positive-safe-int.d.mts.map +1 -0
- package/dist/number/operators/positive-safe-int.mjs +9 -0
- package/dist/number/operators/positive-safe-int.mjs.map +1 -0
- package/dist/number/operators/positive-uint16.d.mts +27 -0
- package/dist/number/operators/positive-uint16.d.mts.map +1 -0
- package/dist/number/operators/positive-uint16.mjs +8 -0
- package/dist/number/operators/positive-uint16.mjs.map +1 -0
- package/dist/number/operators/positive-uint32.d.mts +25 -0
- package/dist/number/operators/positive-uint32.d.mts.map +1 -0
- package/dist/number/operators/positive-uint32.mjs +8 -0
- package/dist/number/operators/positive-uint32.mjs.map +1 -0
- package/dist/number/operators/safe-int.d.mts +17 -0
- package/dist/number/operators/safe-int.d.mts.map +1 -0
- package/dist/number/operators/safe-int.mjs +10 -0
- package/dist/number/operators/safe-int.mjs.map +1 -0
- package/dist/number/operators/safe-uint.d.mts +22 -0
- package/dist/number/operators/safe-uint.d.mts.map +1 -0
- package/dist/number/operators/safe-uint.mjs +9 -0
- package/dist/number/operators/safe-uint.mjs.map +1 -0
- package/dist/number/operators/uint.d.mts +14 -0
- package/dist/number/operators/uint.d.mts.map +1 -0
- package/dist/number/operators/uint.mjs +8 -0
- package/dist/number/operators/uint.mjs.map +1 -0
- package/dist/number/operators/uint16.d.mts +25 -0
- package/dist/number/operators/uint16.d.mts.map +1 -0
- package/dist/number/operators/uint16.mjs +8 -0
- package/dist/number/operators/uint16.mjs.map +1 -0
- package/dist/number/operators/uint32.d.mts +23 -0
- package/dist/number/operators/uint32.d.mts.map +1 -0
- package/dist/number/operators/uint32.mjs +8 -0
- package/dist/number/operators/uint32.mjs.map +1 -0
- package/dist/number/operators/uint8.d.mts +24 -0
- package/dist/number/operators/uint8.d.mts.map +1 -0
- package/dist/number/operators/uint8.mjs +8 -0
- package/dist/number/operators/uint8.mjs.map +1 -0
- package/dist/number/refined-number-utils.d.mts +2 -2
- package/dist/number/refined-number-utils.d.mts.map +1 -1
- package/dist/number/refined-number-utils.mjs +1 -1
- package/dist/number/refined-number-utils.mjs.map +1 -1
- package/dist/object/object.d.mts +8 -0
- package/dist/object/object.d.mts.map +1 -1
- package/dist/object/object.mjs +17 -5
- package/dist/object/object.mjs.map +1 -1
- package/dist/others/fast-deep-equal.mjs +1 -1
- package/dist/others/fast-deep-equal.mjs.map +1 -1
- package/dist/others/replace-equal-deep.mjs +10 -3
- package/dist/others/replace-equal-deep.mjs.map +1 -1
- package/package.json +22 -9
- package/src/array/impl/array-utils-reducing-value.mts +4 -3
- package/src/array/impl/array-utils-shape-invariants.test.mts +1 -1
- package/src/array/impl/array-utils-slice-clamped.mts +1 -1
- package/src/array/impl/array-utils-slicing.mts +12 -3
- package/src/array/impl/array-utils-transformation.mts +7 -3
- package/src/array/impl/array-utils-transformation.test.mts +52 -3
- package/src/array/impl/array-utils-validation.mts +2 -1
- package/src/built-in-tag.mts +59 -0
- package/src/built-in-tag.test.mts +215 -0
- package/src/collections/imap-mapped.mts +6 -4
- package/src/collections/imap-mapped.test.mts +27 -0
- package/src/collections/imap.mts +6 -4
- package/src/collections/imap.test.mts +13 -0
- package/src/collections/stack.mts +3 -3
- package/src/iterator/range.mts +10 -2
- package/src/iterator/range.test.mts +7 -0
- package/src/json/json.mts +17 -57
- package/src/json/json.test.mts +32 -0
- package/src/number/branded-types/finite-number.mts +23 -25
- package/src/number/branded-types/int.mts +20 -26
- package/src/number/branded-types/int16.mts +21 -26
- package/src/number/branded-types/int32.mts +21 -26
- package/src/number/branded-types/negative-finite-number.mts +25 -26
- package/src/number/branded-types/negative-int.mts +20 -27
- package/src/number/branded-types/negative-safe-int.mts +23 -28
- package/src/number/branded-types/non-negative-finite-number.mts +24 -25
- package/src/number/branded-types/non-negative-int16.mts +23 -26
- package/src/number/branded-types/non-negative-int32.mts +23 -26
- package/src/number/branded-types/non-positive-finite-number.mts +24 -25
- package/src/number/branded-types/non-positive-int.mts +20 -26
- package/src/number/branded-types/non-positive-safe-int.mts +21 -26
- package/src/number/branded-types/non-zero-finite-number.mts +23 -25
- package/src/number/branded-types/non-zero-int.mts +19 -25
- package/src/number/branded-types/non-zero-int16.mts +27 -28
- package/src/number/branded-types/non-zero-int32.mts +27 -28
- package/src/number/branded-types/non-zero-safe-int.mts +25 -35
- package/src/number/branded-types/non-zero-uint16.mts +24 -28
- package/src/number/branded-types/non-zero-uint32.mts +24 -28
- package/src/number/branded-types/positive-finite-number.mts +25 -25
- package/src/number/branded-types/positive-int.mts +21 -26
- package/src/number/branded-types/positive-int16.mts +23 -26
- package/src/number/branded-types/positive-int32.mts +23 -26
- package/src/number/branded-types/positive-safe-int.mts +24 -31
- package/src/number/branded-types/positive-uint16.mts +23 -26
- package/src/number/branded-types/positive-uint32.mts +23 -26
- package/src/number/branded-types/safe-int.mts +22 -29
- package/src/number/branded-types/safe-uint.mts +21 -27
- package/src/number/branded-types/uint.mts +21 -26
- package/src/number/branded-types/uint16.mts +21 -26
- package/src/number/branded-types/uint32.mts +21 -26
- package/src/number/enum/int8.mts +40 -52
- package/src/number/enum/uint8.mts +40 -48
- package/src/number/index.mts +1 -1
- package/src/number/num/impl/index.mts +1 -0
- package/src/number/num/impl/num.mts +715 -0
- package/src/number/{num.test.mts → num/impl/num.test.mts} +17 -5
- package/src/number/num/index.mts +16 -0
- package/src/number/num-arithmetic.test.mts +1 -1
- package/src/number/operators/finite-number.mts +20 -0
- package/src/number/operators/int.mts +20 -0
- package/src/number/operators/int16.mts +33 -0
- package/src/number/operators/int32.mts +33 -0
- package/src/number/operators/int8.mts +18 -0
- package/src/number/operators/negative-finite-number.mts +22 -0
- package/src/number/operators/negative-int.mts +22 -0
- package/src/number/operators/negative-safe-int.mts +32 -0
- package/src/number/operators/non-negative-finite-number.mts +32 -0
- package/src/number/operators/non-negative-int16.mts +33 -0
- package/src/number/operators/non-negative-int32.mts +33 -0
- package/src/number/operators/non-positive-finite-number.mts +21 -0
- package/src/number/operators/non-positive-int.mts +21 -0
- package/src/number/operators/non-positive-safe-int.mts +31 -0
- package/src/number/operators/non-zero-finite-number.mts +21 -0
- package/src/number/operators/non-zero-int.mts +22 -0
- package/src/number/operators/non-zero-int16.mts +32 -0
- package/src/number/operators/non-zero-int32.mts +32 -0
- package/src/number/operators/non-zero-safe-int.mts +34 -0
- package/src/number/operators/non-zero-uint16.mts +32 -0
- package/src/number/operators/non-zero-uint32.mts +32 -0
- package/src/number/operators/positive-finite-number.mts +32 -0
- package/src/number/operators/positive-int.mts +32 -0
- package/src/number/operators/positive-int16.mts +33 -0
- package/src/number/operators/positive-int32.mts +33 -0
- package/src/number/operators/positive-safe-int.mts +34 -0
- package/src/number/operators/positive-uint16.mts +33 -0
- package/src/number/operators/positive-uint32.mts +33 -0
- package/src/number/operators/safe-int.mts +35 -0
- package/src/number/operators/safe-uint.mts +33 -0
- package/src/number/operators/uint.mts +31 -0
- package/src/number/operators/uint16.mts +32 -0
- package/src/number/operators/uint32.mts +32 -0
- package/src/number/operators/uint8.mts +16 -0
- package/src/number/refined-number-utils.mts +4 -4
- package/src/object/object.mts +33 -5
- package/src/object/object.test.mts +55 -0
- package/src/others/fast-deep-equal.mts +1 -1
- package/src/others/replace-equal-deep.mts +11 -4
- package/src/others/replace-equal-deep.test.mts +26 -0
- package/dist/number/num.d.mts +0 -546
- package/dist/number/num.d.mts.map +0 -1
- package/dist/number/num.mjs +0 -559
- package/dist/number/num.mjs.map +0 -1
- package/src/guard/is-error.test.mts +0 -145
- package/src/number/num.mts +0 -731
|
@@ -1,37 +1,25 @@
|
|
|
1
1
|
import type { NonNegativeInt16 as TtfImported_NonNegativeInt16 } from 'ts-type-forge';
|
|
2
2
|
import { expectType } from '../../expect-type.mjs';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export type NonNegativeInt16 = TtfImported_NonNegativeInt16;
|
|
6
|
-
|
|
7
|
-
type ElementType = NonNegativeInt16;
|
|
8
|
-
|
|
9
|
-
const typeNameInMessage = 'a non-negative integer in [0, 2^15)';
|
|
10
|
-
|
|
11
|
-
const {
|
|
3
|
+
import {
|
|
12
4
|
MAX_VALUE,
|
|
13
5
|
MIN_VALUE,
|
|
14
6
|
add,
|
|
15
|
-
castType,
|
|
16
7
|
div,
|
|
17
8
|
fromNumber,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
min: min_,
|
|
9
|
+
max as max_,
|
|
10
|
+
min as min_,
|
|
21
11
|
mul,
|
|
22
12
|
pow,
|
|
23
13
|
random,
|
|
24
14
|
sub,
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
typeNameInMessage,
|
|
34
|
-
} as const);
|
|
15
|
+
} from '../operators/non-negative-int16.mjs';
|
|
16
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
17
|
+
|
|
18
|
+
export type NonNegativeInt16 = TtfImported_NonNegativeInt16;
|
|
19
|
+
|
|
20
|
+
type ElementType = NonNegativeInt16;
|
|
21
|
+
|
|
22
|
+
const typeNameInMessage = 'a non-negative integer in [0, 2^15)';
|
|
35
23
|
|
|
36
24
|
/**
|
|
37
25
|
* Type guard that checks if a value is a non-negative integer in [0, 2^15).
|
|
@@ -42,7 +30,8 @@ const {
|
|
|
42
30
|
* @param value - The value to check
|
|
43
31
|
* @returns `true` if the value is a non-negative integer in [0, 2^15), `false` otherwise
|
|
44
32
|
*/
|
|
45
|
-
export const isNonNegativeInt16 = is
|
|
33
|
+
export const isNonNegativeInt16 = (value: number): value is NonNegativeInt16 =>
|
|
34
|
+
Number.isSafeInteger(value) && 0 <= value && value <= 2 ** 15 - 1;
|
|
46
35
|
|
|
47
36
|
/**
|
|
48
37
|
* Casts a `number` to the `NonNegativeInt16` branded type.
|
|
@@ -54,7 +43,15 @@ export const isNonNegativeInt16 = is;
|
|
|
54
43
|
* @returns The value as a `NonNegativeInt16`
|
|
55
44
|
* @throws {TypeError} If the value is not a non-negative integer in [0, 2^15)
|
|
56
45
|
*/
|
|
57
|
-
export const asNonNegativeInt16 =
|
|
46
|
+
export const asNonNegativeInt16 = <N extends number>(
|
|
47
|
+
value: N,
|
|
48
|
+
): NonNegativeInt16 & N => {
|
|
49
|
+
if (!isNonNegativeInt16(value)) {
|
|
50
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return value;
|
|
54
|
+
};
|
|
58
55
|
|
|
59
56
|
/**
|
|
60
57
|
* Namespace providing type-safe operations for the `NonNegativeInt16` branded
|
|
@@ -71,7 +68,7 @@ export const NonNegativeInt16 = {
|
|
|
71
68
|
* @returns `true` if the value is a non-negative integer in [0, 2^15), `false` otherwise
|
|
72
69
|
* @see {@link isNonNegativeInt16} for usage examples
|
|
73
70
|
*/
|
|
74
|
-
is,
|
|
71
|
+
is: isNonNegativeInt16,
|
|
75
72
|
|
|
76
73
|
/**
|
|
77
74
|
* The smallest value representable as `NonNegativeInt16` (the lower
|
|
@@ -1,37 +1,25 @@
|
|
|
1
1
|
import type { NonNegativeInt32 as TtfImported_NonNegativeInt32 } from 'ts-type-forge';
|
|
2
2
|
import { expectType } from '../../expect-type.mjs';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export type NonNegativeInt32 = TtfImported_NonNegativeInt32;
|
|
6
|
-
|
|
7
|
-
type ElementType = NonNegativeInt32;
|
|
8
|
-
|
|
9
|
-
const typeNameInMessage = 'a non-negative integer in [0, 2^31)';
|
|
10
|
-
|
|
11
|
-
const {
|
|
3
|
+
import {
|
|
12
4
|
MAX_VALUE,
|
|
13
5
|
MIN_VALUE,
|
|
14
6
|
add,
|
|
15
|
-
castType,
|
|
16
7
|
div,
|
|
17
8
|
fromNumber,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
min: min_,
|
|
9
|
+
max as max_,
|
|
10
|
+
min as min_,
|
|
21
11
|
mul,
|
|
22
12
|
pow,
|
|
23
13
|
random,
|
|
24
14
|
sub,
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
typeNameInMessage,
|
|
34
|
-
} as const);
|
|
15
|
+
} from '../operators/non-negative-int32.mjs';
|
|
16
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
17
|
+
|
|
18
|
+
export type NonNegativeInt32 = TtfImported_NonNegativeInt32;
|
|
19
|
+
|
|
20
|
+
type ElementType = NonNegativeInt32;
|
|
21
|
+
|
|
22
|
+
const typeNameInMessage = 'a non-negative integer in [0, 2^31)';
|
|
35
23
|
|
|
36
24
|
/**
|
|
37
25
|
* Type guard that checks if a value is a non-negative integer in [0, 2^31).
|
|
@@ -42,7 +30,8 @@ const {
|
|
|
42
30
|
* @param value - The value to check
|
|
43
31
|
* @returns `true` if the value is a non-negative integer in [0, 2^31), `false` otherwise
|
|
44
32
|
*/
|
|
45
|
-
export const isNonNegativeInt32 = is
|
|
33
|
+
export const isNonNegativeInt32 = (value: number): value is NonNegativeInt32 =>
|
|
34
|
+
Number.isSafeInteger(value) && 0 <= value && value <= 2 ** 31 - 1;
|
|
46
35
|
|
|
47
36
|
/**
|
|
48
37
|
* Casts a `number` to the `NonNegativeInt32` branded type.
|
|
@@ -54,7 +43,15 @@ export const isNonNegativeInt32 = is;
|
|
|
54
43
|
* @returns The value as a `NonNegativeInt32`
|
|
55
44
|
* @throws {TypeError} If the value is not a non-negative integer in [0, 2^31)
|
|
56
45
|
*/
|
|
57
|
-
export const asNonNegativeInt32 =
|
|
46
|
+
export const asNonNegativeInt32 = <N extends number>(
|
|
47
|
+
value: N,
|
|
48
|
+
): NonNegativeInt32 & N => {
|
|
49
|
+
if (!isNonNegativeInt32(value)) {
|
|
50
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return value;
|
|
54
|
+
};
|
|
58
55
|
|
|
59
56
|
/**
|
|
60
57
|
* Namespace providing type-safe operations for the `NonNegativeInt32` branded
|
|
@@ -71,7 +68,7 @@ export const NonNegativeInt32 = {
|
|
|
71
68
|
* @returns `true` if the value is a non-negative integer in [0, 2^31), `false` otherwise
|
|
72
69
|
* @see {@link isNonNegativeInt32} for usage examples
|
|
73
70
|
*/
|
|
74
|
-
is,
|
|
71
|
+
is: isNonNegativeInt32,
|
|
75
72
|
|
|
76
73
|
/**
|
|
77
74
|
* The smallest value representable as `NonNegativeInt32` (the lower
|
|
@@ -1,32 +1,21 @@
|
|
|
1
1
|
import type { NonPositiveFiniteNumber as TtfImported_NonPositiveFiniteNumber } from 'ts-type-forge';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export type NonPositiveFiniteNumber = TtfImported_NonPositiveFiniteNumber;
|
|
5
|
-
|
|
6
|
-
type ElementType = NonPositiveFiniteNumber;
|
|
7
|
-
|
|
8
|
-
const typeNameInMessage = 'a non-positive finite number';
|
|
9
|
-
|
|
10
|
-
const {
|
|
2
|
+
import {
|
|
11
3
|
MAX_VALUE,
|
|
12
4
|
add,
|
|
13
|
-
castType,
|
|
14
5
|
fromNumber,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
min: min_,
|
|
6
|
+
max as max_,
|
|
7
|
+
min as min_,
|
|
18
8
|
pow,
|
|
19
9
|
random,
|
|
20
10
|
sub,
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
} as const);
|
|
11
|
+
} from '../operators/non-positive-finite-number.mjs';
|
|
12
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
13
|
+
|
|
14
|
+
export type NonPositiveFiniteNumber = TtfImported_NonPositiveFiniteNumber;
|
|
15
|
+
|
|
16
|
+
type ElementType = NonPositiveFiniteNumber;
|
|
17
|
+
|
|
18
|
+
const typeNameInMessage = 'a non-positive finite number';
|
|
30
19
|
|
|
31
20
|
const floor = (
|
|
32
21
|
x: ElementType,
|
|
@@ -71,7 +60,9 @@ const round = (
|
|
|
71
60
|
* @param value - The value to check
|
|
72
61
|
* @returns `true` if the value is a non-positive finite number, `false` otherwise
|
|
73
62
|
*/
|
|
74
|
-
export const isNonPositiveFiniteNumber =
|
|
63
|
+
export const isNonPositiveFiniteNumber = (
|
|
64
|
+
value: number,
|
|
65
|
+
): value is NonPositiveFiniteNumber => Number.isFinite(value) && value <= 0;
|
|
75
66
|
|
|
76
67
|
/**
|
|
77
68
|
* Casts a `number` to the `NonPositiveFiniteNumber` branded type.
|
|
@@ -83,7 +74,15 @@ export const isNonPositiveFiniteNumber = is;
|
|
|
83
74
|
* @returns The value as a `NonPositiveFiniteNumber`
|
|
84
75
|
* @throws {TypeError} If the value is not a non-positive finite number
|
|
85
76
|
*/
|
|
86
|
-
export const asNonPositiveFiniteNumber =
|
|
77
|
+
export const asNonPositiveFiniteNumber = <N extends number>(
|
|
78
|
+
value: N,
|
|
79
|
+
): NonPositiveFiniteNumber & N => {
|
|
80
|
+
if (!isNonPositiveFiniteNumber(value)) {
|
|
81
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return value;
|
|
85
|
+
};
|
|
87
86
|
|
|
88
87
|
/**
|
|
89
88
|
* Namespace providing type-safe operations for the `NonPositiveFiniteNumber`
|
|
@@ -99,7 +98,7 @@ export const NonPositiveFiniteNumber = {
|
|
|
99
98
|
* @returns `true` if the value is a non-positive finite number, `false` otherwise
|
|
100
99
|
* @see {@link isNonPositiveFiniteNumber} for usage examples
|
|
101
100
|
*/
|
|
102
|
-
is,
|
|
101
|
+
is: isNonPositiveFiniteNumber,
|
|
103
102
|
|
|
104
103
|
/**
|
|
105
104
|
* The largest value representable as `NonPositiveFiniteNumber` (the upper
|
|
@@ -1,33 +1,18 @@
|
|
|
1
1
|
import type { NonPositiveInt as TtfImported_NonPositiveInt } from 'ts-type-forge';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export type NonPositiveInt = TtfImported_NonPositiveInt;
|
|
5
|
-
|
|
6
|
-
type ElementType = NonPositiveInt;
|
|
7
|
-
|
|
8
|
-
const typeNameInMessage = 'a non-positive integer';
|
|
9
|
-
|
|
10
|
-
const {
|
|
2
|
+
import {
|
|
11
3
|
MAX_VALUE,
|
|
12
4
|
add,
|
|
13
|
-
castType,
|
|
14
5
|
fromNumber,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
min: min_,
|
|
6
|
+
max as max_,
|
|
7
|
+
min as min_,
|
|
18
8
|
pow,
|
|
19
9
|
random,
|
|
20
10
|
sub,
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
integerOrSafeInteger: 'Integer',
|
|
27
|
-
MIN_VALUE: -Number.MAX_VALUE,
|
|
28
|
-
MAX_VALUE: 0,
|
|
29
|
-
typeNameInMessage,
|
|
30
|
-
} as const);
|
|
11
|
+
} from '../operators/non-positive-int.mjs';
|
|
12
|
+
|
|
13
|
+
export type NonPositiveInt = TtfImported_NonPositiveInt;
|
|
14
|
+
|
|
15
|
+
const typeNameInMessage = 'a non-positive integer';
|
|
31
16
|
|
|
32
17
|
/**
|
|
33
18
|
* Type guard that checks if a value is a non-positive integer.
|
|
@@ -39,7 +24,8 @@ const {
|
|
|
39
24
|
* @param value - The value to check
|
|
40
25
|
* @returns `true` if the value is a non-positive integer, `false` otherwise
|
|
41
26
|
*/
|
|
42
|
-
export const isNonPositiveInt = is
|
|
27
|
+
export const isNonPositiveInt = (value: number): value is NonPositiveInt =>
|
|
28
|
+
Number.isInteger(value) && value <= 0;
|
|
43
29
|
|
|
44
30
|
/**
|
|
45
31
|
* Casts a `number` to the `NonPositiveInt` branded type.
|
|
@@ -51,7 +37,15 @@ export const isNonPositiveInt = is;
|
|
|
51
37
|
* @returns The value as a `NonPositiveInt`
|
|
52
38
|
* @throws {TypeError} If the value is not a non-positive integer
|
|
53
39
|
*/
|
|
54
|
-
export const asNonPositiveInt =
|
|
40
|
+
export const asNonPositiveInt = <N extends number>(
|
|
41
|
+
value: N,
|
|
42
|
+
): NonPositiveInt & N => {
|
|
43
|
+
if (!isNonPositiveInt(value)) {
|
|
44
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return value;
|
|
48
|
+
};
|
|
55
49
|
|
|
56
50
|
/**
|
|
57
51
|
* Namespace providing type-safe operations for the `NonPositiveInt` branded
|
|
@@ -72,7 +66,7 @@ export const NonPositiveInt = {
|
|
|
72
66
|
* @returns `true` if the value is a non-positive integer, `false` otherwise
|
|
73
67
|
* @see {@link isNonPositiveInt} for usage examples
|
|
74
68
|
*/
|
|
75
|
-
is,
|
|
69
|
+
is: isNonPositiveInt,
|
|
76
70
|
|
|
77
71
|
/**
|
|
78
72
|
* The largest value representable as `NonPositiveInt` (the upper saturation
|
|
@@ -1,34 +1,19 @@
|
|
|
1
1
|
import type { NonPositiveSafeInt as TtfImported_NonPositiveSafeInt } from 'ts-type-forge';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export type NonPositiveSafeInt = TtfImported_NonPositiveSafeInt;
|
|
5
|
-
|
|
6
|
-
type ElementType = NonPositiveSafeInt;
|
|
7
|
-
|
|
8
|
-
const typeNameInMessage = 'a non-positive safe integer';
|
|
9
|
-
|
|
10
|
-
const {
|
|
2
|
+
import {
|
|
11
3
|
MAX_VALUE,
|
|
12
4
|
MIN_VALUE,
|
|
13
5
|
add,
|
|
14
|
-
castType,
|
|
15
6
|
fromNumber,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
min: min_,
|
|
7
|
+
max as max_,
|
|
8
|
+
min as min_,
|
|
19
9
|
pow,
|
|
20
10
|
random,
|
|
21
11
|
sub,
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
integerOrSafeInteger: 'SafeInteger',
|
|
28
|
-
MIN_VALUE: Number.MIN_SAFE_INTEGER,
|
|
29
|
-
MAX_VALUE: 0,
|
|
30
|
-
typeNameInMessage,
|
|
31
|
-
} as const);
|
|
12
|
+
} from '../operators/non-positive-safe-int.mjs';
|
|
13
|
+
|
|
14
|
+
export type NonPositiveSafeInt = TtfImported_NonPositiveSafeInt;
|
|
15
|
+
|
|
16
|
+
const typeNameInMessage = 'a non-positive safe integer';
|
|
32
17
|
|
|
33
18
|
/**
|
|
34
19
|
* Type guard that checks if a value is a non-positive safe integer.
|
|
@@ -39,7 +24,9 @@ const {
|
|
|
39
24
|
* @param value - The value to check
|
|
40
25
|
* @returns `true` if the value is a non-positive safe integer, `false` otherwise
|
|
41
26
|
*/
|
|
42
|
-
export const isNonPositiveSafeInt =
|
|
27
|
+
export const isNonPositiveSafeInt = (
|
|
28
|
+
value: number,
|
|
29
|
+
): value is NonPositiveSafeInt => Number.isSafeInteger(value) && value <= 0;
|
|
43
30
|
|
|
44
31
|
/**
|
|
45
32
|
* Casts a `number` to the `NonPositiveSafeInt` branded type.
|
|
@@ -51,7 +38,15 @@ export const isNonPositiveSafeInt = is;
|
|
|
51
38
|
* @returns The value as a `NonPositiveSafeInt`
|
|
52
39
|
* @throws {TypeError} If the value is not a non-positive safe integer
|
|
53
40
|
*/
|
|
54
|
-
export const asNonPositiveSafeInt =
|
|
41
|
+
export const asNonPositiveSafeInt = <N extends number>(
|
|
42
|
+
value: N,
|
|
43
|
+
): NonPositiveSafeInt & N => {
|
|
44
|
+
if (!isNonPositiveSafeInt(value)) {
|
|
45
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return value;
|
|
49
|
+
};
|
|
55
50
|
|
|
56
51
|
/**
|
|
57
52
|
* Namespace providing type-safe operations for the `NonPositiveSafeInt` branded
|
|
@@ -68,7 +63,7 @@ export const NonPositiveSafeInt = {
|
|
|
68
63
|
* @returns `true` if the value is a non-positive safe integer, `false` otherwise
|
|
69
64
|
* @see {@link isNonPositiveSafeInt} for usage examples
|
|
70
65
|
*/
|
|
71
|
-
is,
|
|
66
|
+
is: isNonPositiveSafeInt,
|
|
72
67
|
|
|
73
68
|
/**
|
|
74
69
|
* The smallest value representable as `NonPositiveSafeInt` (the lower
|
|
@@ -5,7 +5,16 @@ import type {
|
|
|
5
5
|
NonZeroFiniteNumber as TtfImported_NonZeroFiniteNumber,
|
|
6
6
|
} from 'ts-type-forge';
|
|
7
7
|
import { expectType } from '../../expect-type.mjs';
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
abs,
|
|
10
|
+
div,
|
|
11
|
+
max as max_,
|
|
12
|
+
min as min_,
|
|
13
|
+
mul,
|
|
14
|
+
pow,
|
|
15
|
+
randomNonZero as random,
|
|
16
|
+
} from '../operators/non-zero-finite-number.mjs';
|
|
17
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
9
18
|
|
|
10
19
|
export type NonZeroFiniteNumber = TtfImported_NonZeroFiniteNumber;
|
|
11
20
|
|
|
@@ -13,27 +22,6 @@ type ElementType = NonZeroFiniteNumber;
|
|
|
13
22
|
|
|
14
23
|
const typeNameInMessage = 'a non-zero finite number';
|
|
15
24
|
|
|
16
|
-
const {
|
|
17
|
-
abs,
|
|
18
|
-
castType,
|
|
19
|
-
div,
|
|
20
|
-
is,
|
|
21
|
-
max: max_,
|
|
22
|
-
min: min_,
|
|
23
|
-
mul,
|
|
24
|
-
pow,
|
|
25
|
-
randomNonZero: random,
|
|
26
|
-
} = TsDataForgeInternals.RefinedNumberUtils.operatorsForFloat<
|
|
27
|
-
ElementType,
|
|
28
|
-
number,
|
|
29
|
-
number
|
|
30
|
-
>({
|
|
31
|
-
nonZero: true,
|
|
32
|
-
MIN_VALUE: -Number.MAX_VALUE,
|
|
33
|
-
MAX_VALUE: Number.MAX_VALUE,
|
|
34
|
-
typeNameInMessage,
|
|
35
|
-
} as const);
|
|
36
|
-
|
|
37
25
|
const floor = (
|
|
38
26
|
x: ElementType,
|
|
39
27
|
): TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType> =>
|
|
@@ -73,7 +61,9 @@ expectType<
|
|
|
73
61
|
* @param value - The value to check
|
|
74
62
|
* @returns `true` if the value is a non-zero finite number, `false` otherwise
|
|
75
63
|
*/
|
|
76
|
-
export const isNonZeroFiniteNumber =
|
|
64
|
+
export const isNonZeroFiniteNumber = (
|
|
65
|
+
value: number,
|
|
66
|
+
): value is NonZeroFiniteNumber => Number.isFinite(value) && value !== 0;
|
|
77
67
|
|
|
78
68
|
/**
|
|
79
69
|
* Casts a `number` to the `NonZeroFiniteNumber` branded type.
|
|
@@ -85,7 +75,15 @@ export const isNonZeroFiniteNumber = is;
|
|
|
85
75
|
* @returns The value as a `NonZeroFiniteNumber`
|
|
86
76
|
* @throws {TypeError} If the value is not a non-zero finite number
|
|
87
77
|
*/
|
|
88
|
-
export const asNonZeroFiniteNumber =
|
|
78
|
+
export const asNonZeroFiniteNumber = <N extends number>(
|
|
79
|
+
value: N,
|
|
80
|
+
): NonZeroFiniteNumber & N => {
|
|
81
|
+
if (!isNonZeroFiniteNumber(value)) {
|
|
82
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return value;
|
|
86
|
+
};
|
|
89
87
|
|
|
90
88
|
/**
|
|
91
89
|
* Namespace providing type-safe operations for the `NonZeroFiniteNumber`
|
|
@@ -101,7 +99,7 @@ export const NonZeroFiniteNumber = {
|
|
|
101
99
|
* @returns `true` if the value is a non-zero finite number, `false` otherwise
|
|
102
100
|
* @see {@link isNonZeroFiniteNumber} for usage examples
|
|
103
101
|
*/
|
|
104
|
-
is,
|
|
102
|
+
is: isNonZeroFiniteNumber,
|
|
105
103
|
|
|
106
104
|
/**
|
|
107
105
|
* Returns the absolute value of a non-zero finite number.
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import type { NonZeroInt as TtfImported_NonZeroInt } from 'ts-type-forge';
|
|
2
2
|
import { expectType } from '../../expect-type.mjs';
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
abs,
|
|
5
|
+
max as max_,
|
|
6
|
+
min as min_,
|
|
7
|
+
mul,
|
|
8
|
+
pow,
|
|
9
|
+
randomNonZero as random,
|
|
10
|
+
} from '../operators/non-zero-int.mjs';
|
|
11
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
4
12
|
|
|
5
13
|
export type NonZeroInt = TtfImported_NonZeroInt;
|
|
6
14
|
|
|
@@ -8,27 +16,6 @@ type ElementType = NonZeroInt;
|
|
|
8
16
|
|
|
9
17
|
const typeNameInMessage = 'a non-zero integer';
|
|
10
18
|
|
|
11
|
-
const {
|
|
12
|
-
abs,
|
|
13
|
-
castType,
|
|
14
|
-
is,
|
|
15
|
-
max: max_,
|
|
16
|
-
min: min_,
|
|
17
|
-
mul,
|
|
18
|
-
pow,
|
|
19
|
-
randomNonZero: random,
|
|
20
|
-
} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<
|
|
21
|
-
ElementType,
|
|
22
|
-
number,
|
|
23
|
-
number
|
|
24
|
-
>({
|
|
25
|
-
integerOrSafeInteger: 'Integer',
|
|
26
|
-
nonZero: true,
|
|
27
|
-
MIN_VALUE: -Number.MAX_VALUE,
|
|
28
|
-
MAX_VALUE: Number.MAX_VALUE,
|
|
29
|
-
typeNameInMessage,
|
|
30
|
-
} as const);
|
|
31
|
-
|
|
32
19
|
/**
|
|
33
20
|
* Type guard that checks if a value is a non-zero integer.
|
|
34
21
|
*
|
|
@@ -38,7 +25,8 @@ const {
|
|
|
38
25
|
* @param value - The value to check
|
|
39
26
|
* @returns `true` if the value is a non-zero integer, `false` otherwise
|
|
40
27
|
*/
|
|
41
|
-
export const isNonZeroInt = is
|
|
28
|
+
export const isNonZeroInt = (value: number): value is NonZeroInt =>
|
|
29
|
+
Number.isInteger(value) && value !== 0;
|
|
42
30
|
|
|
43
31
|
/**
|
|
44
32
|
* Casts a `number` to the `NonZeroInt` branded type.
|
|
@@ -50,7 +38,13 @@ export const isNonZeroInt = is;
|
|
|
50
38
|
* @returns The value as a `NonZeroInt`
|
|
51
39
|
* @throws {TypeError} If the value is not a non-zero integer
|
|
52
40
|
*/
|
|
53
|
-
export const asNonZeroInt =
|
|
41
|
+
export const asNonZeroInt = <N extends number>(value: N): NonZeroInt & N => {
|
|
42
|
+
if (!isNonZeroInt(value)) {
|
|
43
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return value;
|
|
47
|
+
};
|
|
54
48
|
|
|
55
49
|
/**
|
|
56
50
|
* Namespace providing type-safe operations for the `NonZeroInt` branded type.
|
|
@@ -70,7 +64,7 @@ export const NonZeroInt = {
|
|
|
70
64
|
* @returns `true` if the value is a non-zero integer, `false` otherwise
|
|
71
65
|
* @see {@link isNonZeroInt} for usage examples
|
|
72
66
|
*/
|
|
73
|
-
is,
|
|
67
|
+
is: isNonZeroInt,
|
|
74
68
|
|
|
75
69
|
/**
|
|
76
70
|
* Returns the absolute value of a non-zero integer.
|
|
@@ -1,36 +1,23 @@
|
|
|
1
1
|
import type { NonZeroInt16 as TtfImported_NonZeroInt16 } from 'ts-type-forge';
|
|
2
2
|
import { expectType } from '../../expect-type.mjs';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export type NonZeroInt16 = TtfImported_NonZeroInt16;
|
|
6
|
-
|
|
7
|
-
type ElementType = NonZeroInt16;
|
|
8
|
-
|
|
9
|
-
const typeNameInMessage = 'a non-zero integer in [-2^15, 2^15)';
|
|
10
|
-
|
|
11
|
-
const {
|
|
3
|
+
import {
|
|
12
4
|
MAX_VALUE,
|
|
13
5
|
MIN_VALUE,
|
|
14
6
|
abs,
|
|
15
|
-
castType,
|
|
16
7
|
fromNumber,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
min: min_,
|
|
8
|
+
max as max_,
|
|
9
|
+
min as min_,
|
|
20
10
|
mul,
|
|
21
11
|
pow,
|
|
22
|
-
randomNonZero
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
MAX_VALUE: 2 ** 15 - 1,
|
|
32
|
-
typeNameInMessage,
|
|
33
|
-
} as const);
|
|
12
|
+
randomNonZero as random,
|
|
13
|
+
} from '../operators/non-zero-int16.mjs';
|
|
14
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
15
|
+
|
|
16
|
+
export type NonZeroInt16 = TtfImported_NonZeroInt16;
|
|
17
|
+
|
|
18
|
+
type ElementType = NonZeroInt16;
|
|
19
|
+
|
|
20
|
+
const typeNameInMessage = 'a non-zero integer in [-2^15, 2^15)';
|
|
34
21
|
|
|
35
22
|
/**
|
|
36
23
|
* Type guard that checks if a value is a non-zero integer in [-2^15, 2^15).
|
|
@@ -41,7 +28,11 @@ const {
|
|
|
41
28
|
* @param value - The value to check
|
|
42
29
|
* @returns `true` if the value is a non-zero integer in [-2^15, 2^15), `false` otherwise
|
|
43
30
|
*/
|
|
44
|
-
export const isNonZeroInt16 = is
|
|
31
|
+
export const isNonZeroInt16 = (value: number): value is NonZeroInt16 =>
|
|
32
|
+
Number.isSafeInteger(value) &&
|
|
33
|
+
value !== 0 &&
|
|
34
|
+
-(2 ** 15) <= value &&
|
|
35
|
+
value <= 2 ** 15 - 1;
|
|
45
36
|
|
|
46
37
|
/**
|
|
47
38
|
* Casts a `number` to the `NonZeroInt16` branded type.
|
|
@@ -53,7 +44,15 @@ export const isNonZeroInt16 = is;
|
|
|
53
44
|
* @returns The value as a `NonZeroInt16`
|
|
54
45
|
* @throws {TypeError} If the value is not a non-zero integer in [-2^15, 2^15)
|
|
55
46
|
*/
|
|
56
|
-
export const asNonZeroInt16 =
|
|
47
|
+
export const asNonZeroInt16 = <N extends number>(
|
|
48
|
+
value: N,
|
|
49
|
+
): NonZeroInt16 & N => {
|
|
50
|
+
if (!isNonZeroInt16(value)) {
|
|
51
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return value;
|
|
55
|
+
};
|
|
57
56
|
|
|
58
57
|
/**
|
|
59
58
|
* Namespace providing type-safe operations for the `NonZeroInt16` branded type.
|
|
@@ -69,7 +68,7 @@ export const NonZeroInt16 = {
|
|
|
69
68
|
* @returns `true` if the value is a non-zero integer in [-2^15, 2^15), `false` otherwise
|
|
70
69
|
* @see {@link isNonZeroInt16} for usage examples
|
|
71
70
|
*/
|
|
72
|
-
is,
|
|
71
|
+
is: isNonZeroInt16,
|
|
73
72
|
|
|
74
73
|
/**
|
|
75
74
|
* The smallest value representable as `NonZeroInt16` (the lower saturation
|