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,36 +1,23 @@
|
|
|
1
1
|
import type { NonZeroInt32 as TtfImported_NonZeroInt32 } from 'ts-type-forge';
|
|
2
2
|
import { expectType } from '../../expect-type.mjs';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export type NonZeroInt32 = TtfImported_NonZeroInt32;
|
|
6
|
-
|
|
7
|
-
type ElementType = NonZeroInt32;
|
|
8
|
-
|
|
9
|
-
const typeNameInMessage = 'a non-zero integer in [-2^31, 2^31)';
|
|
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 ** 31 - 1,
|
|
32
|
-
typeNameInMessage,
|
|
33
|
-
} as const);
|
|
12
|
+
randomNonZero as random,
|
|
13
|
+
} from '../operators/non-zero-int32.mjs';
|
|
14
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
15
|
+
|
|
16
|
+
export type NonZeroInt32 = TtfImported_NonZeroInt32;
|
|
17
|
+
|
|
18
|
+
type ElementType = NonZeroInt32;
|
|
19
|
+
|
|
20
|
+
const typeNameInMessage = 'a non-zero integer in [-2^31, 2^31)';
|
|
34
21
|
|
|
35
22
|
/**
|
|
36
23
|
* Type guard that checks if a value is a non-zero integer in [-2^31, 2^31).
|
|
@@ -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^31, 2^31), `false` otherwise
|
|
43
30
|
*/
|
|
44
|
-
export const isNonZeroInt32 = is
|
|
31
|
+
export const isNonZeroInt32 = (value: number): value is NonZeroInt32 =>
|
|
32
|
+
Number.isSafeInteger(value) &&
|
|
33
|
+
value !== 0 &&
|
|
34
|
+
-(2 ** 31) <= value &&
|
|
35
|
+
value <= 2 ** 31 - 1;
|
|
45
36
|
|
|
46
37
|
/**
|
|
47
38
|
* Casts a `number` to the `NonZeroInt32` branded type.
|
|
@@ -53,7 +44,15 @@ export const isNonZeroInt32 = is;
|
|
|
53
44
|
* @returns The value as a `NonZeroInt32`
|
|
54
45
|
* @throws {TypeError} If the value is not a non-zero integer in [-2^31, 2^31)
|
|
55
46
|
*/
|
|
56
|
-
export const asNonZeroInt32 =
|
|
47
|
+
export const asNonZeroInt32 = <N extends number>(
|
|
48
|
+
value: N,
|
|
49
|
+
): NonZeroInt32 & N => {
|
|
50
|
+
if (!isNonZeroInt32(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 `NonZeroInt32` branded type.
|
|
@@ -69,7 +68,7 @@ export const NonZeroInt32 = {
|
|
|
69
68
|
* @returns `true` if the value is a non-zero integer in [-2^31, 2^31), `false` otherwise
|
|
70
69
|
* @see {@link isNonZeroInt32} for usage examples
|
|
71
70
|
*/
|
|
72
|
-
is,
|
|
71
|
+
is: isNonZeroInt32,
|
|
73
72
|
|
|
74
73
|
/**
|
|
75
74
|
* The smallest value representable as `NonZeroInt32` (the lower saturation
|
|
@@ -1,42 +1,23 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
SafeInt,
|
|
3
|
-
SafeUint,
|
|
4
|
-
NonZeroSafeInt as TtfImported_NonZeroSafeInt,
|
|
5
|
-
} from 'ts-type-forge';
|
|
1
|
+
import type { NonZeroSafeInt as TtfImported_NonZeroSafeInt } from 'ts-type-forge';
|
|
6
2
|
import { expectType } from '../../expect-type.mjs';
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
export type NonZeroSafeInt = TtfImported_NonZeroSafeInt;
|
|
10
|
-
|
|
11
|
-
type ElementType = NonZeroSafeInt;
|
|
12
|
-
|
|
13
|
-
const typeNameInMessage = 'a non-zero safe integer';
|
|
14
|
-
|
|
15
|
-
const {
|
|
3
|
+
import {
|
|
16
4
|
MAX_VALUE,
|
|
17
5
|
MIN_VALUE,
|
|
18
6
|
abs,
|
|
19
|
-
castType,
|
|
20
7
|
fromNumber,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
min: min_,
|
|
8
|
+
max as max_,
|
|
9
|
+
min as min_,
|
|
24
10
|
mul,
|
|
25
11
|
pow,
|
|
26
|
-
randomNonZero
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
MIN_VALUE: Number.MIN_SAFE_INTEGER as SafeInt,
|
|
36
|
-
// eslint-disable-next-line total-functions/no-unsafe-type-assertion, math/prefer-number-max-safe-integer
|
|
37
|
-
MAX_VALUE: Number.MAX_SAFE_INTEGER as SafeUint,
|
|
38
|
-
typeNameInMessage,
|
|
39
|
-
} as const);
|
|
12
|
+
randomNonZero as random,
|
|
13
|
+
} from '../operators/non-zero-safe-int.mjs';
|
|
14
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
15
|
+
|
|
16
|
+
export type NonZeroSafeInt = TtfImported_NonZeroSafeInt;
|
|
17
|
+
|
|
18
|
+
type ElementType = NonZeroSafeInt;
|
|
19
|
+
|
|
20
|
+
const typeNameInMessage = 'a non-zero safe integer';
|
|
40
21
|
|
|
41
22
|
/**
|
|
42
23
|
* Type guard that checks if a value is a non-zero safe integer.
|
|
@@ -47,7 +28,8 @@ const {
|
|
|
47
28
|
* @param value - The value to check
|
|
48
29
|
* @returns `true` if the value is a non-zero safe integer, `false` otherwise
|
|
49
30
|
*/
|
|
50
|
-
export const isNonZeroSafeInt = is
|
|
31
|
+
export const isNonZeroSafeInt = (value: number): value is NonZeroSafeInt =>
|
|
32
|
+
Number.isSafeInteger(value) && value !== 0;
|
|
51
33
|
|
|
52
34
|
/**
|
|
53
35
|
* Casts a `number` to the `NonZeroSafeInt` branded type.
|
|
@@ -59,7 +41,15 @@ export const isNonZeroSafeInt = is;
|
|
|
59
41
|
* @returns The value as a `NonZeroSafeInt`
|
|
60
42
|
* @throws {TypeError} If the value is not a non-zero safe integer
|
|
61
43
|
*/
|
|
62
|
-
export const asNonZeroSafeInt =
|
|
44
|
+
export const asNonZeroSafeInt = <N extends number>(
|
|
45
|
+
value: N,
|
|
46
|
+
): NonZeroSafeInt & N => {
|
|
47
|
+
if (!isNonZeroSafeInt(value)) {
|
|
48
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return value;
|
|
52
|
+
};
|
|
63
53
|
|
|
64
54
|
/**
|
|
65
55
|
* Namespace providing type-safe operations for the `NonZeroSafeInt` branded
|
|
@@ -76,7 +66,7 @@ export const NonZeroSafeInt = {
|
|
|
76
66
|
* @returns `true` if the value is a non-zero safe integer, `false` otherwise
|
|
77
67
|
* @see {@link isNonZeroSafeInt} for usage examples
|
|
78
68
|
*/
|
|
79
|
-
is,
|
|
69
|
+
is: isNonZeroSafeInt,
|
|
80
70
|
|
|
81
71
|
/**
|
|
82
72
|
* The smallest value representable as `NonZeroSafeInt` (the lower saturation
|
|
@@ -1,36 +1,23 @@
|
|
|
1
1
|
import type { NonZeroUint16 as TtfImported_NonZeroUint16 } from 'ts-type-forge';
|
|
2
2
|
import { expectType } from '../../expect-type.mjs';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export type NonZeroUint16 = TtfImported_NonZeroUint16;
|
|
6
|
-
|
|
7
|
-
type ElementType = NonZeroUint16;
|
|
8
|
-
|
|
9
|
-
const typeNameInMessage = 'a non-zero integer in [1, 2^16)';
|
|
10
|
-
|
|
11
|
-
const {
|
|
3
|
+
import {
|
|
12
4
|
MAX_VALUE,
|
|
13
5
|
MIN_VALUE,
|
|
14
6
|
add,
|
|
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 ** 16 - 1,
|
|
32
|
-
typeNameInMessage,
|
|
33
|
-
} as const);
|
|
12
|
+
randomNonZero as random,
|
|
13
|
+
} from '../operators/non-zero-uint16.mjs';
|
|
14
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
15
|
+
|
|
16
|
+
export type NonZeroUint16 = TtfImported_NonZeroUint16;
|
|
17
|
+
|
|
18
|
+
type ElementType = NonZeroUint16;
|
|
19
|
+
|
|
20
|
+
const typeNameInMessage = 'a non-zero integer in [1, 2^16)';
|
|
34
21
|
|
|
35
22
|
/**
|
|
36
23
|
* Type guard that checks if a value is a non-zero integer in [1, 2^16).
|
|
@@ -41,7 +28,8 @@ const {
|
|
|
41
28
|
* @param value - The value to check
|
|
42
29
|
* @returns `true` if the value is a non-zero integer in [1, 2^16), `false` otherwise
|
|
43
30
|
*/
|
|
44
|
-
export const isNonZeroUint16 = is
|
|
31
|
+
export const isNonZeroUint16 = (value: number): value is NonZeroUint16 =>
|
|
32
|
+
Number.isSafeInteger(value) && 1 <= value && value <= 2 ** 16 - 1;
|
|
45
33
|
|
|
46
34
|
/**
|
|
47
35
|
* Casts a `number` to the `NonZeroUint16` branded type.
|
|
@@ -53,7 +41,15 @@ export const isNonZeroUint16 = is;
|
|
|
53
41
|
* @returns The value as a `NonZeroUint16`
|
|
54
42
|
* @throws {TypeError} If the value is not a non-zero integer in [1, 2^16)
|
|
55
43
|
*/
|
|
56
|
-
export const asNonZeroUint16 =
|
|
44
|
+
export const asNonZeroUint16 = <N extends number>(
|
|
45
|
+
value: N,
|
|
46
|
+
): NonZeroUint16 & N => {
|
|
47
|
+
if (!isNonZeroUint16(value)) {
|
|
48
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return value;
|
|
52
|
+
};
|
|
57
53
|
|
|
58
54
|
/**
|
|
59
55
|
* Namespace providing type-safe operations for the `NonZeroUint16` branded
|
|
@@ -70,7 +66,7 @@ export const NonZeroUint16 = {
|
|
|
70
66
|
* @returns `true` if the value is a non-zero integer in [1, 2^16), `false` otherwise
|
|
71
67
|
* @see {@link isNonZeroUint16} for usage examples
|
|
72
68
|
*/
|
|
73
|
-
is,
|
|
69
|
+
is: isNonZeroUint16,
|
|
74
70
|
|
|
75
71
|
/**
|
|
76
72
|
* The smallest value representable as `NonZeroUint16` (the lower saturation
|
|
@@ -1,36 +1,23 @@
|
|
|
1
1
|
import type { NonZeroUint32 as TtfImported_NonZeroUint32 } from 'ts-type-forge';
|
|
2
2
|
import { expectType } from '../../expect-type.mjs';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export type NonZeroUint32 = TtfImported_NonZeroUint32;
|
|
6
|
-
|
|
7
|
-
type ElementType = NonZeroUint32;
|
|
8
|
-
|
|
9
|
-
const typeNameInMessage = 'a non-zero integer in [1, 2^32)';
|
|
10
|
-
|
|
11
|
-
const {
|
|
3
|
+
import {
|
|
12
4
|
MAX_VALUE,
|
|
13
5
|
MIN_VALUE,
|
|
14
6
|
add,
|
|
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 ** 32 - 1,
|
|
32
|
-
typeNameInMessage,
|
|
33
|
-
} as const);
|
|
12
|
+
randomNonZero as random,
|
|
13
|
+
} from '../operators/non-zero-uint32.mjs';
|
|
14
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
15
|
+
|
|
16
|
+
export type NonZeroUint32 = TtfImported_NonZeroUint32;
|
|
17
|
+
|
|
18
|
+
type ElementType = NonZeroUint32;
|
|
19
|
+
|
|
20
|
+
const typeNameInMessage = 'a non-zero integer in [1, 2^32)';
|
|
34
21
|
|
|
35
22
|
/**
|
|
36
23
|
* Type guard that checks if a value is a non-zero integer in [1, 2^32).
|
|
@@ -41,7 +28,8 @@ const {
|
|
|
41
28
|
* @param value - The value to check
|
|
42
29
|
* @returns `true` if the value is a non-zero integer in [1, 2^32), `false` otherwise
|
|
43
30
|
*/
|
|
44
|
-
export const isNonZeroUint32 = is
|
|
31
|
+
export const isNonZeroUint32 = (value: number): value is NonZeroUint32 =>
|
|
32
|
+
Number.isSafeInteger(value) && 1 <= value && value <= 2 ** 32 - 1;
|
|
45
33
|
|
|
46
34
|
/**
|
|
47
35
|
* Casts a `number` to the `NonZeroUint32` branded type.
|
|
@@ -53,7 +41,15 @@ export const isNonZeroUint32 = is;
|
|
|
53
41
|
* @returns The value as a `NonZeroUint32`
|
|
54
42
|
* @throws {TypeError} If the value is not a non-zero integer in [1, 2^32)
|
|
55
43
|
*/
|
|
56
|
-
export const asNonZeroUint32 =
|
|
44
|
+
export const asNonZeroUint32 = <N extends number>(
|
|
45
|
+
value: N,
|
|
46
|
+
): NonZeroUint32 & N => {
|
|
47
|
+
if (!isNonZeroUint32(value)) {
|
|
48
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return value;
|
|
52
|
+
};
|
|
57
53
|
|
|
58
54
|
/**
|
|
59
55
|
* Namespace providing type-safe operations for the `NonZeroUint32` branded
|
|
@@ -70,7 +66,7 @@ export const NonZeroUint32 = {
|
|
|
70
66
|
* @returns `true` if the value is a non-zero integer in [1, 2^32), `false` otherwise
|
|
71
67
|
* @see {@link isNonZeroUint32} for usage examples
|
|
72
68
|
*/
|
|
73
|
-
is,
|
|
69
|
+
is: isNonZeroUint32,
|
|
74
70
|
|
|
75
71
|
/**
|
|
76
72
|
* The smallest value representable as `NonZeroUint32` (the lower saturation
|
|
@@ -4,36 +4,25 @@ import type {
|
|
|
4
4
|
Uint,
|
|
5
5
|
} from 'ts-type-forge';
|
|
6
6
|
import { expectType } from '../../expect-type.mjs';
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
export type PositiveFiniteNumber = TtfImported_PositiveFiniteNumber;
|
|
10
|
-
|
|
11
|
-
type ElementType = PositiveFiniteNumber;
|
|
12
|
-
|
|
13
|
-
const typeNameInMessage = 'a positive finite number';
|
|
14
|
-
|
|
15
|
-
const {
|
|
7
|
+
import {
|
|
16
8
|
MIN_VALUE,
|
|
17
9
|
add,
|
|
18
|
-
castType,
|
|
19
10
|
div,
|
|
20
11
|
fromNumber,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
min: min_,
|
|
12
|
+
max as max_,
|
|
13
|
+
min as min_,
|
|
24
14
|
mul,
|
|
25
15
|
pow,
|
|
26
16
|
random,
|
|
27
17
|
sub,
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
} as const);
|
|
18
|
+
} from '../operators/positive-finite-number.mjs';
|
|
19
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
20
|
+
|
|
21
|
+
export type PositiveFiniteNumber = TtfImported_PositiveFiniteNumber;
|
|
22
|
+
|
|
23
|
+
type ElementType = PositiveFiniteNumber;
|
|
24
|
+
|
|
25
|
+
const typeNameInMessage = 'a positive finite number';
|
|
37
26
|
|
|
38
27
|
const floor = (
|
|
39
28
|
x: ElementType,
|
|
@@ -86,7 +75,10 @@ expectType<
|
|
|
86
75
|
* @param value - The value to check
|
|
87
76
|
* @returns `true` if the value is a positive finite number, `false` otherwise
|
|
88
77
|
*/
|
|
89
|
-
export const isPositiveFiniteNumber =
|
|
78
|
+
export const isPositiveFiniteNumber = (
|
|
79
|
+
value: number,
|
|
80
|
+
): value is PositiveFiniteNumber =>
|
|
81
|
+
Number.isFinite(value) && value >= Number.MIN_VALUE;
|
|
90
82
|
|
|
91
83
|
/**
|
|
92
84
|
* Casts a `number` to the `PositiveFiniteNumber` branded type.
|
|
@@ -98,7 +90,15 @@ export const isPositiveFiniteNumber = is;
|
|
|
98
90
|
* @returns The value as a `PositiveFiniteNumber`
|
|
99
91
|
* @throws {TypeError} If the value is not a positive finite number
|
|
100
92
|
*/
|
|
101
|
-
export const asPositiveFiniteNumber =
|
|
93
|
+
export const asPositiveFiniteNumber = <N extends number>(
|
|
94
|
+
value: N,
|
|
95
|
+
): PositiveFiniteNumber & N => {
|
|
96
|
+
if (!isPositiveFiniteNumber(value)) {
|
|
97
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return value;
|
|
101
|
+
};
|
|
102
102
|
|
|
103
103
|
/**
|
|
104
104
|
* Namespace providing type-safe operations for the `PositiveFiniteNumber`
|
|
@@ -114,7 +114,7 @@ export const PositiveFiniteNumber = {
|
|
|
114
114
|
* @returns `true` if the value is a positive finite number, `false` otherwise
|
|
115
115
|
* @see {@link isPositiveFiniteNumber} for usage examples
|
|
116
116
|
*/
|
|
117
|
-
is,
|
|
117
|
+
is: isPositiveFiniteNumber,
|
|
118
118
|
|
|
119
119
|
/**
|
|
120
120
|
* The smallest value representable as `PositiveFiniteNumber` (the lower
|
|
@@ -1,36 +1,24 @@
|
|
|
1
1
|
import type { PositiveInt as TtfImported_PositiveInt } from 'ts-type-forge';
|
|
2
2
|
import { expectType } from '../../expect-type.mjs';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export type PositiveInt = TtfImported_PositiveInt;
|
|
6
|
-
|
|
7
|
-
type ElementType = PositiveInt;
|
|
8
|
-
|
|
9
|
-
const typeNameInMessage = 'a positive integer';
|
|
10
|
-
|
|
11
|
-
const {
|
|
3
|
+
import {
|
|
12
4
|
MIN_VALUE,
|
|
13
5
|
add,
|
|
14
|
-
castType,
|
|
15
6
|
div,
|
|
16
7
|
fromNumber,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
min: min_,
|
|
8
|
+
max as max_,
|
|
9
|
+
min as min_,
|
|
20
10
|
mul,
|
|
21
11
|
pow,
|
|
22
12
|
random,
|
|
23
13
|
sub,
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
typeNameInMessage,
|
|
33
|
-
} as const);
|
|
14
|
+
} from '../operators/positive-int.mjs';
|
|
15
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
16
|
+
|
|
17
|
+
export type PositiveInt = TtfImported_PositiveInt;
|
|
18
|
+
|
|
19
|
+
type ElementType = PositiveInt;
|
|
20
|
+
|
|
21
|
+
const typeNameInMessage = 'a positive integer';
|
|
34
22
|
|
|
35
23
|
/**
|
|
36
24
|
* Type guard that checks if a value is a positive integer.
|
|
@@ -51,7 +39,8 @@ const {
|
|
|
51
39
|
* @param value - The value to check
|
|
52
40
|
* @returns `true` if the value is a positive integer, `false` otherwise
|
|
53
41
|
*/
|
|
54
|
-
export const isPositiveInt = is
|
|
42
|
+
export const isPositiveInt = (value: number): value is PositiveInt =>
|
|
43
|
+
Number.isInteger(value) && value >= 1;
|
|
55
44
|
|
|
56
45
|
/**
|
|
57
46
|
* Casts a `number` to the `PositiveInt` branded type.
|
|
@@ -73,7 +62,13 @@ export const isPositiveInt = is;
|
|
|
73
62
|
* @returns The value as a `PositiveInt`
|
|
74
63
|
* @throws {TypeError} If the value is not a positive integer
|
|
75
64
|
*/
|
|
76
|
-
export const asPositiveInt =
|
|
65
|
+
export const asPositiveInt = <N extends number>(value: N): PositiveInt & N => {
|
|
66
|
+
if (!isPositiveInt(value)) {
|
|
67
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return value;
|
|
71
|
+
};
|
|
77
72
|
|
|
78
73
|
/**
|
|
79
74
|
* Namespace providing type-safe operations for the `PositiveInt` branded type.
|
|
@@ -103,7 +98,7 @@ export const PositiveInt = {
|
|
|
103
98
|
* @returns `true` if the value is a positive integer, `false` otherwise
|
|
104
99
|
* @see {@link isPositiveInt} for usage examples
|
|
105
100
|
*/
|
|
106
|
-
is,
|
|
101
|
+
is: isPositiveInt,
|
|
107
102
|
|
|
108
103
|
/**
|
|
109
104
|
* The smallest value representable as `PositiveInt` (the lower saturation
|
|
@@ -1,37 +1,25 @@
|
|
|
1
1
|
import type { PositiveInt16 as TtfImported_PositiveInt16 } from 'ts-type-forge';
|
|
2
2
|
import { expectType } from '../../expect-type.mjs';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export type PositiveInt16 = TtfImported_PositiveInt16;
|
|
6
|
-
|
|
7
|
-
type ElementType = PositiveInt16;
|
|
8
|
-
|
|
9
|
-
const typeNameInMessage = 'a positive integer in [1, 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/positive-int16.mjs';
|
|
16
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
17
|
+
|
|
18
|
+
export type PositiveInt16 = TtfImported_PositiveInt16;
|
|
19
|
+
|
|
20
|
+
type ElementType = PositiveInt16;
|
|
21
|
+
|
|
22
|
+
const typeNameInMessage = 'a positive integer in [1, 2^15)';
|
|
35
23
|
|
|
36
24
|
/**
|
|
37
25
|
* Type guard that checks if a value is a positive integer in [1, 2^15).
|
|
@@ -42,7 +30,8 @@ const {
|
|
|
42
30
|
* @param value - The value to check
|
|
43
31
|
* @returns `true` if the value is a positive integer in [1, 2^15), `false` otherwise
|
|
44
32
|
*/
|
|
45
|
-
export const isPositiveInt16 = is
|
|
33
|
+
export const isPositiveInt16 = (value: number): value is PositiveInt16 =>
|
|
34
|
+
Number.isSafeInteger(value) && 1 <= value && value <= 2 ** 15 - 1;
|
|
46
35
|
|
|
47
36
|
/**
|
|
48
37
|
* Casts a `number` to the `PositiveInt16` branded type.
|
|
@@ -54,7 +43,15 @@ export const isPositiveInt16 = is;
|
|
|
54
43
|
* @returns The value as a `PositiveInt16`
|
|
55
44
|
* @throws {TypeError} If the value is not a positive integer in [1, 2^15)
|
|
56
45
|
*/
|
|
57
|
-
export const asPositiveInt16 =
|
|
46
|
+
export const asPositiveInt16 = <N extends number>(
|
|
47
|
+
value: N,
|
|
48
|
+
): PositiveInt16 & N => {
|
|
49
|
+
if (!isPositiveInt16(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 `PositiveInt16` branded
|
|
@@ -71,7 +68,7 @@ export const PositiveInt16 = {
|
|
|
71
68
|
* @returns `true` if the value is a positive integer in [1, 2^15), `false` otherwise
|
|
72
69
|
* @see {@link isPositiveInt16} for usage examples
|
|
73
70
|
*/
|
|
74
|
-
is,
|
|
71
|
+
is: isPositiveInt16,
|
|
75
72
|
|
|
76
73
|
/**
|
|
77
74
|
* The smallest value representable as `PositiveInt16` (the lower saturation
|
|
@@ -1,37 +1,25 @@
|
|
|
1
1
|
import type { PositiveInt32 as TtfImported_PositiveInt32 } from 'ts-type-forge';
|
|
2
2
|
import { expectType } from '../../expect-type.mjs';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export type PositiveInt32 = TtfImported_PositiveInt32;
|
|
6
|
-
|
|
7
|
-
type ElementType = PositiveInt32;
|
|
8
|
-
|
|
9
|
-
const typeNameInMessage = 'a positive integer in [1, 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/positive-int32.mjs';
|
|
16
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
17
|
+
|
|
18
|
+
export type PositiveInt32 = TtfImported_PositiveInt32;
|
|
19
|
+
|
|
20
|
+
type ElementType = PositiveInt32;
|
|
21
|
+
|
|
22
|
+
const typeNameInMessage = 'a positive integer in [1, 2^31)';
|
|
35
23
|
|
|
36
24
|
/**
|
|
37
25
|
* Type guard that checks if a value is a positive integer in [1, 2^31).
|
|
@@ -42,7 +30,8 @@ const {
|
|
|
42
30
|
* @param value - The value to check
|
|
43
31
|
* @returns `true` if the value is a positive integer in [1, 2^31), `false` otherwise
|
|
44
32
|
*/
|
|
45
|
-
export const isPositiveInt32 = is
|
|
33
|
+
export const isPositiveInt32 = (value: number): value is PositiveInt32 =>
|
|
34
|
+
Number.isSafeInteger(value) && 1 <= value && value <= 2 ** 31 - 1;
|
|
46
35
|
|
|
47
36
|
/**
|
|
48
37
|
* Casts a `number` to the `PositiveInt32` branded type.
|
|
@@ -54,7 +43,15 @@ export const isPositiveInt32 = is;
|
|
|
54
43
|
* @returns The value as a `PositiveInt32`
|
|
55
44
|
* @throws {TypeError} If the value is not a positive integer in [1, 2^31)
|
|
56
45
|
*/
|
|
57
|
-
export const asPositiveInt32 =
|
|
46
|
+
export const asPositiveInt32 = <N extends number>(
|
|
47
|
+
value: N,
|
|
48
|
+
): PositiveInt32 & N => {
|
|
49
|
+
if (!isPositiveInt32(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 `PositiveInt32` branded
|
|
@@ -71,7 +68,7 @@ export const PositiveInt32 = {
|
|
|
71
68
|
* @returns `true` if the value is a positive integer in [1, 2^31), `false` otherwise
|
|
72
69
|
* @see {@link isPositiveInt32} for usage examples
|
|
73
70
|
*/
|
|
74
|
-
is,
|
|
71
|
+
is: isPositiveInt32,
|
|
75
72
|
|
|
76
73
|
/**
|
|
77
74
|
* The smallest value representable as `PositiveInt32` (the lower saturation
|