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,41 +1,25 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
SafeUint,
|
|
3
|
-
PositiveSafeInt as TtfImported_PositiveSafeInt,
|
|
4
|
-
} from 'ts-type-forge';
|
|
1
|
+
import type { PositiveSafeInt as TtfImported_PositiveSafeInt } from 'ts-type-forge';
|
|
5
2
|
import { expectType } from '../../expect-type.mjs';
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
export type PositiveSafeInt = TtfImported_PositiveSafeInt;
|
|
9
|
-
|
|
10
|
-
type ElementType = PositiveSafeInt;
|
|
11
|
-
|
|
12
|
-
const typeNameInMessage = 'a positive safe integer';
|
|
13
|
-
|
|
14
|
-
const {
|
|
3
|
+
import {
|
|
15
4
|
MAX_VALUE,
|
|
16
5
|
MIN_VALUE,
|
|
17
6
|
add,
|
|
18
|
-
castType,
|
|
19
7
|
div,
|
|
20
8
|
fromNumber,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
min: min_,
|
|
9
|
+
max as max_,
|
|
10
|
+
min as min_,
|
|
24
11
|
mul,
|
|
25
12
|
pow,
|
|
26
13
|
random,
|
|
27
14
|
sub,
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
MAX_VALUE: Number.MAX_SAFE_INTEGER as SafeUint,
|
|
37
|
-
typeNameInMessage,
|
|
38
|
-
} as const);
|
|
15
|
+
} from '../operators/positive-safe-int.mjs';
|
|
16
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
17
|
+
|
|
18
|
+
export type PositiveSafeInt = TtfImported_PositiveSafeInt;
|
|
19
|
+
|
|
20
|
+
type ElementType = PositiveSafeInt;
|
|
21
|
+
|
|
22
|
+
const typeNameInMessage = 'a positive safe integer';
|
|
39
23
|
|
|
40
24
|
/**
|
|
41
25
|
* Type guard that checks if a value is a positive safe integer.
|
|
@@ -58,7 +42,8 @@ const {
|
|
|
58
42
|
* @param value - The value to check
|
|
59
43
|
* @returns `true` if the value is a positive safe integer, `false` otherwise
|
|
60
44
|
*/
|
|
61
|
-
export const isPositiveSafeInt = is
|
|
45
|
+
export const isPositiveSafeInt = (value: number): value is PositiveSafeInt =>
|
|
46
|
+
Number.isSafeInteger(value) && value >= 1;
|
|
62
47
|
|
|
63
48
|
/**
|
|
64
49
|
* Casts a `number` to the `PositiveSafeInt` branded type.
|
|
@@ -80,7 +65,15 @@ export const isPositiveSafeInt = is;
|
|
|
80
65
|
* @returns The value as a `PositiveSafeInt`
|
|
81
66
|
* @throws {TypeError} If the value is not a positive safe integer
|
|
82
67
|
*/
|
|
83
|
-
export const asPositiveSafeInt =
|
|
68
|
+
export const asPositiveSafeInt = <N extends number>(
|
|
69
|
+
value: N,
|
|
70
|
+
): PositiveSafeInt & N => {
|
|
71
|
+
if (!isPositiveSafeInt(value)) {
|
|
72
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return value;
|
|
76
|
+
};
|
|
84
77
|
|
|
85
78
|
/**
|
|
86
79
|
* Namespace providing type-safe operations for the `PositiveSafeInt` branded
|
|
@@ -109,7 +102,7 @@ export const PositiveSafeInt = {
|
|
|
109
102
|
* @returns `true` if the value is a positive safe integer, `false` otherwise
|
|
110
103
|
* @see {@link isPositiveSafeInt} for usage examples
|
|
111
104
|
*/
|
|
112
|
-
is,
|
|
105
|
+
is: isPositiveSafeInt,
|
|
113
106
|
|
|
114
107
|
/**
|
|
115
108
|
* The smallest value representable as `PositiveSafeInt` (the lower saturation
|
|
@@ -1,37 +1,25 @@
|
|
|
1
1
|
import type { PositiveUint16 as TtfImported_PositiveUint16 } from 'ts-type-forge';
|
|
2
2
|
import { expectType } from '../../expect-type.mjs';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export type PositiveUint16 = TtfImported_PositiveUint16;
|
|
6
|
-
|
|
7
|
-
type ElementType = PositiveUint16;
|
|
8
|
-
|
|
9
|
-
const typeNameInMessage = 'a positive 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
|
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-uint16.mjs';
|
|
16
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
17
|
+
|
|
18
|
+
export type PositiveUint16 = TtfImported_PositiveUint16;
|
|
19
|
+
|
|
20
|
+
type ElementType = PositiveUint16;
|
|
21
|
+
|
|
22
|
+
const typeNameInMessage = 'a positive integer in [1, 2^16)';
|
|
35
23
|
|
|
36
24
|
/**
|
|
37
25
|
* Type guard that checks if a value is a positive integer in [1, 2^16).
|
|
@@ -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^16), `false` otherwise
|
|
44
32
|
*/
|
|
45
|
-
export const isPositiveUint16 = is
|
|
33
|
+
export const isPositiveUint16 = (value: number): value is PositiveUint16 =>
|
|
34
|
+
Number.isSafeInteger(value) && 1 <= value && value <= 2 ** 16 - 1;
|
|
46
35
|
|
|
47
36
|
/**
|
|
48
37
|
* Casts a `number` to the `PositiveUint16` branded type.
|
|
@@ -54,7 +43,15 @@ export const isPositiveUint16 = is;
|
|
|
54
43
|
* @returns The value as a `PositiveUint16`
|
|
55
44
|
* @throws {TypeError} If the value is not a positive integer in [1, 2^16)
|
|
56
45
|
*/
|
|
57
|
-
export const asPositiveUint16 =
|
|
46
|
+
export const asPositiveUint16 = <N extends number>(
|
|
47
|
+
value: N,
|
|
48
|
+
): PositiveUint16 & N => {
|
|
49
|
+
if (!isPositiveUint16(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 `PositiveUint16` branded
|
|
@@ -71,7 +68,7 @@ export const PositiveUint16 = {
|
|
|
71
68
|
* @returns `true` if the value is a positive integer in [1, 2^16), `false` otherwise
|
|
72
69
|
* @see {@link isPositiveUint16} for usage examples
|
|
73
70
|
*/
|
|
74
|
-
is,
|
|
71
|
+
is: isPositiveUint16,
|
|
75
72
|
|
|
76
73
|
/**
|
|
77
74
|
* The smallest value representable as `PositiveUint16` (the lower saturation
|
|
@@ -1,37 +1,25 @@
|
|
|
1
1
|
import type { PositiveUint32 as TtfImported_PositiveUint32 } from 'ts-type-forge';
|
|
2
2
|
import { expectType } from '../../expect-type.mjs';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export type PositiveUint32 = TtfImported_PositiveUint32;
|
|
6
|
-
|
|
7
|
-
type ElementType = PositiveUint32;
|
|
8
|
-
|
|
9
|
-
const typeNameInMessage = 'a positive 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
|
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-uint32.mjs';
|
|
16
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
17
|
+
|
|
18
|
+
export type PositiveUint32 = TtfImported_PositiveUint32;
|
|
19
|
+
|
|
20
|
+
type ElementType = PositiveUint32;
|
|
21
|
+
|
|
22
|
+
const typeNameInMessage = 'a positive integer in [1, 2^32)';
|
|
35
23
|
|
|
36
24
|
/**
|
|
37
25
|
* Type guard that checks if a value is a positive integer in [1, 2^32).
|
|
@@ -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^32), `false` otherwise
|
|
44
32
|
*/
|
|
45
|
-
export const isPositiveUint32 = is
|
|
33
|
+
export const isPositiveUint32 = (value: number): value is PositiveUint32 =>
|
|
34
|
+
Number.isSafeInteger(value) && 1 <= value && value <= 2 ** 32 - 1;
|
|
46
35
|
|
|
47
36
|
/**
|
|
48
37
|
* Casts a `number` to the `PositiveUint32` branded type.
|
|
@@ -54,7 +43,15 @@ export const isPositiveUint32 = is;
|
|
|
54
43
|
* @returns The value as a `PositiveUint32`
|
|
55
44
|
* @throws {TypeError} If the value is not a positive integer in [1, 2^32)
|
|
56
45
|
*/
|
|
57
|
-
export const asPositiveUint32 =
|
|
46
|
+
export const asPositiveUint32 = <N extends number>(
|
|
47
|
+
value: N,
|
|
48
|
+
): PositiveUint32 & N => {
|
|
49
|
+
if (!isPositiveUint32(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 `PositiveUint32` branded
|
|
@@ -71,7 +68,7 @@ export const PositiveUint32 = {
|
|
|
71
68
|
* @returns `true` if the value is a positive integer in [1, 2^32), `false` otherwise
|
|
72
69
|
* @see {@link isPositiveUint32} for usage examples
|
|
73
70
|
*/
|
|
74
|
-
is,
|
|
71
|
+
is: isPositiveUint32,
|
|
75
72
|
|
|
76
73
|
/**
|
|
77
74
|
* The smallest value representable as `PositiveUint32` (the lower saturation
|
|
@@ -1,40 +1,26 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SafeInt as TtfImported_SafeInt } from 'ts-type-forge';
|
|
2
2
|
import { expectType } from '../../expect-type.mjs';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export type SafeInt = TtfImported_SafeInt;
|
|
6
|
-
|
|
7
|
-
type ElementType = SafeInt;
|
|
8
|
-
|
|
9
|
-
const typeNameInMessage = 'a safe integer';
|
|
10
|
-
|
|
11
|
-
const {
|
|
3
|
+
import {
|
|
12
4
|
MAX_VALUE,
|
|
13
5
|
MIN_VALUE,
|
|
14
6
|
abs,
|
|
15
7
|
add,
|
|
16
|
-
castType,
|
|
17
8
|
div,
|
|
18
9
|
fromNumber,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
min: min_,
|
|
10
|
+
max as max_,
|
|
11
|
+
min as min_,
|
|
22
12
|
mul,
|
|
23
13
|
pow,
|
|
24
14
|
random,
|
|
25
15
|
sub,
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
// eslint-disable-next-line total-functions/no-unsafe-type-assertion, math/prefer-number-max-safe-integer
|
|
35
|
-
MAX_VALUE: Number.MAX_SAFE_INTEGER as SafeUint,
|
|
36
|
-
typeNameInMessage,
|
|
37
|
-
} as const);
|
|
16
|
+
} from '../operators/safe-int.mjs';
|
|
17
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
18
|
+
|
|
19
|
+
export type SafeInt = TtfImported_SafeInt;
|
|
20
|
+
|
|
21
|
+
type ElementType = SafeInt;
|
|
22
|
+
|
|
23
|
+
const typeNameInMessage = 'a safe integer';
|
|
38
24
|
|
|
39
25
|
/**
|
|
40
26
|
* Type guard that checks if a value is a safe integer.
|
|
@@ -54,7 +40,8 @@ const {
|
|
|
54
40
|
* @param value - The value to check
|
|
55
41
|
* @returns `true` if the value is a safe integer, `false` otherwise
|
|
56
42
|
*/
|
|
57
|
-
export const isSafeInt = is
|
|
43
|
+
export const isSafeInt = (value: number): value is SafeInt =>
|
|
44
|
+
Number.isSafeInteger(value);
|
|
58
45
|
|
|
59
46
|
/**
|
|
60
47
|
* Casts a `number` to the `SafeInt` branded type.
|
|
@@ -76,7 +63,13 @@ export const isSafeInt = is;
|
|
|
76
63
|
* @returns The value as a `SafeInt`
|
|
77
64
|
* @throws {TypeError} If the value is not a safe integer
|
|
78
65
|
*/
|
|
79
|
-
export const asSafeInt =
|
|
66
|
+
export const asSafeInt = <N extends number>(value: N): SafeInt & N => {
|
|
67
|
+
if (!isSafeInt(value)) {
|
|
68
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return value;
|
|
72
|
+
};
|
|
80
73
|
|
|
81
74
|
/**
|
|
82
75
|
* Namespace providing type-safe operations for the `SafeInt` branded type.
|
|
@@ -102,7 +95,7 @@ export const SafeInt = {
|
|
|
102
95
|
* @returns `true` if the value is a safe integer, `false` otherwise
|
|
103
96
|
* @see {@link isSafeInt} for usage examples
|
|
104
97
|
*/
|
|
105
|
-
is,
|
|
98
|
+
is: isSafeInt,
|
|
106
99
|
|
|
107
100
|
/**
|
|
108
101
|
* The smallest value representable as `SafeInt` (the lower saturation target
|
|
@@ -1,38 +1,25 @@
|
|
|
1
1
|
import type { SafeUint as TtfImported_SafeUint } from 'ts-type-forge';
|
|
2
2
|
import { expectType } from '../../expect-type.mjs';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export type SafeUint = TtfImported_SafeUint;
|
|
6
|
-
|
|
7
|
-
type ElementType = SafeUint;
|
|
8
|
-
|
|
9
|
-
const typeNameInMessage = 'a non-negative safe integer';
|
|
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
|
-
MAX_VALUE: Number.MAX_SAFE_INTEGER as SafeUint,
|
|
34
|
-
typeNameInMessage,
|
|
35
|
-
} as const);
|
|
15
|
+
} from '../operators/safe-uint.mjs';
|
|
16
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
17
|
+
|
|
18
|
+
export type SafeUint = TtfImported_SafeUint;
|
|
19
|
+
|
|
20
|
+
type ElementType = SafeUint;
|
|
21
|
+
|
|
22
|
+
const typeNameInMessage = 'a non-negative safe integer';
|
|
36
23
|
|
|
37
24
|
/**
|
|
38
25
|
* Type guard that checks if a value is a non-negative safe integer.
|
|
@@ -43,7 +30,8 @@ const {
|
|
|
43
30
|
* @param value - The value to check
|
|
44
31
|
* @returns `true` if the value is a non-negative safe integer, `false` otherwise
|
|
45
32
|
*/
|
|
46
|
-
export const isSafeUint = is
|
|
33
|
+
export const isSafeUint = (value: number): value is SafeUint =>
|
|
34
|
+
Number.isSafeInteger(value) && value >= 0;
|
|
47
35
|
|
|
48
36
|
/**
|
|
49
37
|
* Casts a `number` to the `SafeUint` branded type.
|
|
@@ -55,7 +43,13 @@ export const isSafeUint = is;
|
|
|
55
43
|
* @returns The value as a `SafeUint`
|
|
56
44
|
* @throws {TypeError} If the value is not a non-negative safe integer
|
|
57
45
|
*/
|
|
58
|
-
export const asSafeUint =
|
|
46
|
+
export const asSafeUint = <N extends number>(value: N): SafeUint & N => {
|
|
47
|
+
if (!isSafeUint(value)) {
|
|
48
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return value;
|
|
52
|
+
};
|
|
59
53
|
|
|
60
54
|
/**
|
|
61
55
|
* Namespace providing type-safe operations for the `SafeUint` branded type.
|
|
@@ -71,7 +65,7 @@ export const SafeUint = {
|
|
|
71
65
|
* @returns `true` if the value is a non-negative safe integer, `false` otherwise
|
|
72
66
|
* @see {@link isSafeUint} for usage examples
|
|
73
67
|
*/
|
|
74
|
-
is,
|
|
68
|
+
is: isSafeUint,
|
|
75
69
|
|
|
76
70
|
/**
|
|
77
71
|
* The smallest value representable as `SafeUint` (the lower saturation target
|
|
@@ -1,36 +1,24 @@
|
|
|
1
1
|
import type { Uint as TtfImported_Uint } from 'ts-type-forge';
|
|
2
2
|
import { expectType } from '../../expect-type.mjs';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export type Uint = TtfImported_Uint;
|
|
6
|
-
|
|
7
|
-
type ElementType = Uint;
|
|
8
|
-
|
|
9
|
-
const typeNameInMessage = 'a non-negative 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/uint.mjs';
|
|
15
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
16
|
+
|
|
17
|
+
export type Uint = TtfImported_Uint;
|
|
18
|
+
|
|
19
|
+
type ElementType = Uint;
|
|
20
|
+
|
|
21
|
+
const typeNameInMessage = 'a non-negative integer';
|
|
34
22
|
|
|
35
23
|
/**
|
|
36
24
|
* Type guard that checks if a value is a non-negative integer.
|
|
@@ -52,7 +40,8 @@ const {
|
|
|
52
40
|
* @param value - The value to check
|
|
53
41
|
* @returns `true` if the value is a non-negative integer, `false` otherwise
|
|
54
42
|
*/
|
|
55
|
-
export const isUint = is
|
|
43
|
+
export const isUint = (value: number): value is Uint =>
|
|
44
|
+
Number.isInteger(value) && value >= 0;
|
|
56
45
|
|
|
57
46
|
/**
|
|
58
47
|
* Casts a `number` to the `Uint` branded type.
|
|
@@ -74,7 +63,13 @@ export const isUint = is;
|
|
|
74
63
|
* @returns The value as an `Uint`
|
|
75
64
|
* @throws {TypeError} If the value is not a non-negative integer
|
|
76
65
|
*/
|
|
77
|
-
export const asUint =
|
|
66
|
+
export const asUint = <N extends number>(value: N): Uint & N => {
|
|
67
|
+
if (!isUint(value)) {
|
|
68
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return value;
|
|
72
|
+
};
|
|
78
73
|
|
|
79
74
|
/**
|
|
80
75
|
* Namespace providing type-safe operations for the `Uint` branded type.
|
|
@@ -104,7 +99,7 @@ export const Uint = {
|
|
|
104
99
|
* @returns `true` if the value is a non-negative integer, `false` otherwise
|
|
105
100
|
* @see {@link isUint} for usage examples
|
|
106
101
|
*/
|
|
107
|
-
is,
|
|
102
|
+
is: isUint,
|
|
108
103
|
|
|
109
104
|
/**
|
|
110
105
|
* The smallest value representable as `Uint` (the lower saturation target of
|
|
@@ -1,37 +1,25 @@
|
|
|
1
1
|
import type { Uint16 as TtfImported_Uint16 } from 'ts-type-forge';
|
|
2
2
|
import { expectType } from '../../expect-type.mjs';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export type Uint16 = TtfImported_Uint16;
|
|
6
|
-
|
|
7
|
-
type ElementType = Uint16;
|
|
8
|
-
|
|
9
|
-
const typeNameInMessage = 'a non-negative integer less than 2^16';
|
|
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/uint16.mjs';
|
|
16
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
17
|
+
|
|
18
|
+
export type Uint16 = TtfImported_Uint16;
|
|
19
|
+
|
|
20
|
+
type ElementType = Uint16;
|
|
21
|
+
|
|
22
|
+
const typeNameInMessage = 'a non-negative integer less than 2^16';
|
|
35
23
|
|
|
36
24
|
/**
|
|
37
25
|
* Type guard that checks if a value is a non-negative integer less than 2^16.
|
|
@@ -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 less than 2^16, `false` otherwise
|
|
44
32
|
*/
|
|
45
|
-
export const isUint16 = is
|
|
33
|
+
export const isUint16 = (value: number): value is Uint16 =>
|
|
34
|
+
Number.isSafeInteger(value) && 0 <= value && value <= 2 ** 16 - 1;
|
|
46
35
|
|
|
47
36
|
/**
|
|
48
37
|
* Casts a `number` to the `Uint16` branded type.
|
|
@@ -54,7 +43,13 @@ export const isUint16 = is;
|
|
|
54
43
|
* @returns The value as an `Uint16`
|
|
55
44
|
* @throws {TypeError} If the value is not a non-negative integer less than 2^16
|
|
56
45
|
*/
|
|
57
|
-
export const asUint16 =
|
|
46
|
+
export const asUint16 = <N extends number>(value: N): Uint16 & N => {
|
|
47
|
+
if (!isUint16(value)) {
|
|
48
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return value;
|
|
52
|
+
};
|
|
58
53
|
|
|
59
54
|
/**
|
|
60
55
|
* Namespace providing type-safe operations for the `Uint16` branded type.
|
|
@@ -70,7 +65,7 @@ export const Uint16 = {
|
|
|
70
65
|
* @returns `true` if the value is a non-negative integer less than 2^16, `false` otherwise
|
|
71
66
|
* @see {@link isUint16} for usage examples
|
|
72
67
|
*/
|
|
73
|
-
is,
|
|
68
|
+
is: isUint16,
|
|
74
69
|
|
|
75
70
|
/**
|
|
76
71
|
* The smallest value representable as `Uint16` (the lower saturation target
|
|
@@ -1,37 +1,25 @@
|
|
|
1
1
|
import type { Uint32 as TtfImported_Uint32 } from 'ts-type-forge';
|
|
2
2
|
import { expectType } from '../../expect-type.mjs';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export type Uint32 = TtfImported_Uint32;
|
|
6
|
-
|
|
7
|
-
type ElementType = Uint32;
|
|
8
|
-
|
|
9
|
-
const typeNameInMessage = 'a non-negative integer less than 2^32';
|
|
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/uint32.mjs';
|
|
16
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
17
|
+
|
|
18
|
+
export type Uint32 = TtfImported_Uint32;
|
|
19
|
+
|
|
20
|
+
type ElementType = Uint32;
|
|
21
|
+
|
|
22
|
+
const typeNameInMessage = 'a non-negative integer less than 2^32';
|
|
35
23
|
|
|
36
24
|
/**
|
|
37
25
|
* Type guard that checks if a value is a non-negative integer less than 2^32.
|
|
@@ -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 less than 2^32, `false` otherwise
|
|
44
32
|
*/
|
|
45
|
-
export const isUint32 = is
|
|
33
|
+
export const isUint32 = (value: number): value is Uint32 =>
|
|
34
|
+
Number.isSafeInteger(value) && 0 <= value && value <= 2 ** 32 - 1;
|
|
46
35
|
|
|
47
36
|
/**
|
|
48
37
|
* Casts a `number` to the `Uint32` branded type.
|
|
@@ -54,7 +43,13 @@ export const isUint32 = is;
|
|
|
54
43
|
* @returns The value as an `Uint32`
|
|
55
44
|
* @throws {TypeError} If the value is not a non-negative integer less than 2^32
|
|
56
45
|
*/
|
|
57
|
-
export const asUint32 =
|
|
46
|
+
export const asUint32 = <N extends number>(value: N): Uint32 & N => {
|
|
47
|
+
if (!isUint32(value)) {
|
|
48
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return value;
|
|
52
|
+
};
|
|
58
53
|
|
|
59
54
|
/**
|
|
60
55
|
* Namespace providing type-safe operations for the `Uint32` branded type.
|
|
@@ -70,7 +65,7 @@ export const Uint32 = {
|
|
|
70
65
|
* @returns `true` if the value is a non-negative integer less than 2^32, `false` otherwise
|
|
71
66
|
* @see {@link isUint32} for usage examples
|
|
72
67
|
*/
|
|
73
|
-
is,
|
|
68
|
+
is: isUint32,
|
|
74
69
|
|
|
75
70
|
/**
|
|
76
71
|
* The smallest value representable as `Uint32` (the lower saturation target
|