ts-data-forge 14.10.2 → 14.11.1
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 +2 -2
- 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/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 +20 -2
- package/dist/json/json.d.mts.map +1 -1
- package/dist/json/json.mjs +18 -0
- 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.mjs +1 -1
- 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/package.json +23 -10
- 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 +6 -2
- package/src/array/impl/array-utils-transformation.test.mts +44 -1
- 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/stack.mts +3 -3
- package/src/iterator/range.mts +10 -2
- package/src/iterator/range.test.mts +7 -0
- package/src/json/json.mts +20 -2
- package/src/json/json.test.mts +63 -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} +4 -4
- 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 +1 -1
- package/src/others/fast-deep-equal.mts +1 -1
- package/src/others/replace-equal-deep.test.mts +0 -2
- package/dist/number/num.d.mts +0 -550
- package/dist/number/num.d.mts.map +0 -1
- package/dist/number/num.mjs +0 -563
- package/dist/number/num.mjs.map +0 -1
- package/src/guard/is-error.test.mts +0 -145
- package/src/number/num.mts +0 -735
|
@@ -1,38 +1,26 @@
|
|
|
1
1
|
import type { Int32 as TtfImported_Int32 } from 'ts-type-forge';
|
|
2
2
|
import { expectType } from '../../expect-type.mjs';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export type Int32 = TtfImported_Int32;
|
|
6
|
-
|
|
7
|
-
type ElementType = Int32;
|
|
8
|
-
|
|
9
|
-
const typeNameInMessage = 'an integer in [-2^31, 2^31)';
|
|
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
|
-
typeNameInMessage,
|
|
35
|
-
} as const);
|
|
16
|
+
} from '../operators/int32.mjs';
|
|
17
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
18
|
+
|
|
19
|
+
export type Int32 = TtfImported_Int32;
|
|
20
|
+
|
|
21
|
+
type ElementType = Int32;
|
|
22
|
+
|
|
23
|
+
const typeNameInMessage = 'an integer in [-2^31, 2^31)';
|
|
36
24
|
|
|
37
25
|
/**
|
|
38
26
|
* Type guard that checks if a value is an integer in [-2^31, 2^31).
|
|
@@ -43,7 +31,8 @@ const {
|
|
|
43
31
|
* @param value - The value to check
|
|
44
32
|
* @returns `true` if the value is an integer in [-2^31, 2^31), `false` otherwise
|
|
45
33
|
*/
|
|
46
|
-
export const isInt32 = is
|
|
34
|
+
export const isInt32 = (value: number): value is Int32 =>
|
|
35
|
+
Number.isSafeInteger(value) && -(2 ** 31) <= value && value <= 2 ** 31 - 1;
|
|
47
36
|
|
|
48
37
|
/**
|
|
49
38
|
* Casts a `number` to the `Int32` branded type.
|
|
@@ -55,7 +44,13 @@ export const isInt32 = is;
|
|
|
55
44
|
* @returns The value as an `Int32`
|
|
56
45
|
* @throws {TypeError} If the value is not an integer in [-2^31, 2^31)
|
|
57
46
|
*/
|
|
58
|
-
export const asInt32 =
|
|
47
|
+
export const asInt32 = <N extends number>(value: N): Int32 & N => {
|
|
48
|
+
if (!isInt32(value)) {
|
|
49
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return value;
|
|
53
|
+
};
|
|
59
54
|
|
|
60
55
|
/**
|
|
61
56
|
* Namespace providing type-safe operations for the `Int32` branded type.
|
|
@@ -71,7 +66,7 @@ export const Int32 = {
|
|
|
71
66
|
* @returns `true` if the value is an integer in [-2^31, 2^31), `false` otherwise
|
|
72
67
|
* @see {@link isInt32} for usage examples
|
|
73
68
|
*/
|
|
74
|
-
is,
|
|
69
|
+
is: isInt32,
|
|
75
70
|
|
|
76
71
|
/**
|
|
77
72
|
* The smallest value representable as `Int32` (the lower saturation target of
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import type { NegativeFiniteNumber as TtfImported_NegativeFiniteNumber } from 'ts-type-forge';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
MAX_VALUE,
|
|
4
|
+
add,
|
|
5
|
+
fromNumber,
|
|
6
|
+
max as max_,
|
|
7
|
+
min as min_,
|
|
8
|
+
pow,
|
|
9
|
+
random,
|
|
10
|
+
sub,
|
|
11
|
+
} from '../operators/negative-finite-number.mjs';
|
|
12
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
3
13
|
import { PositiveFiniteNumber } from './positive-finite-number.mjs';
|
|
4
14
|
|
|
5
15
|
export type NegativeFiniteNumber = TtfImported_NegativeFiniteNumber;
|
|
@@ -8,28 +18,6 @@ type ElementType = NegativeFiniteNumber;
|
|
|
8
18
|
|
|
9
19
|
const typeNameInMessage = 'a negative finite number';
|
|
10
20
|
|
|
11
|
-
const {
|
|
12
|
-
MAX_VALUE,
|
|
13
|
-
add,
|
|
14
|
-
castType,
|
|
15
|
-
fromNumber,
|
|
16
|
-
is,
|
|
17
|
-
max: max_,
|
|
18
|
-
min: min_,
|
|
19
|
-
pow,
|
|
20
|
-
random,
|
|
21
|
-
sub,
|
|
22
|
-
} = TsDataForgeInternals.RefinedNumberUtils.operatorsForFloat<
|
|
23
|
-
ElementType,
|
|
24
|
-
number,
|
|
25
|
-
number
|
|
26
|
-
>({
|
|
27
|
-
nonZero: true,
|
|
28
|
-
MIN_VALUE: -Number.MAX_VALUE,
|
|
29
|
-
MAX_VALUE: -Number.MIN_VALUE,
|
|
30
|
-
typeNameInMessage,
|
|
31
|
-
} as const);
|
|
32
|
-
|
|
33
21
|
const abs = (x: ElementType): PositiveFiniteNumber =>
|
|
34
22
|
PositiveFiniteNumber.fromNumber(Math.abs(x));
|
|
35
23
|
|
|
@@ -70,7 +58,10 @@ const round = (
|
|
|
70
58
|
* @param value - The value to check
|
|
71
59
|
* @returns `true` if the value is a negative finite number, `false` otherwise
|
|
72
60
|
*/
|
|
73
|
-
export const isNegativeFiniteNumber =
|
|
61
|
+
export const isNegativeFiniteNumber = (
|
|
62
|
+
value: number,
|
|
63
|
+
): value is NegativeFiniteNumber =>
|
|
64
|
+
Number.isFinite(value) && value <= -Number.MIN_VALUE;
|
|
74
65
|
|
|
75
66
|
/**
|
|
76
67
|
* Casts a `number` to the `NegativeFiniteNumber` branded type.
|
|
@@ -82,7 +73,15 @@ export const isNegativeFiniteNumber = is;
|
|
|
82
73
|
* @returns The value as a `NegativeFiniteNumber`
|
|
83
74
|
* @throws {TypeError} If the value is not a negative finite number
|
|
84
75
|
*/
|
|
85
|
-
export const asNegativeFiniteNumber =
|
|
76
|
+
export const asNegativeFiniteNumber = <N extends number>(
|
|
77
|
+
value: N,
|
|
78
|
+
): NegativeFiniteNumber & N => {
|
|
79
|
+
if (!isNegativeFiniteNumber(value)) {
|
|
80
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return value;
|
|
84
|
+
};
|
|
86
85
|
|
|
87
86
|
/**
|
|
88
87
|
* Namespace providing type-safe operations for the `NegativeFiniteNumber`
|
|
@@ -98,7 +97,7 @@ export const NegativeFiniteNumber = {
|
|
|
98
97
|
* @returns `true` if the value is a negative finite number, `false` otherwise
|
|
99
98
|
* @see {@link isNegativeFiniteNumber} for usage examples
|
|
100
99
|
*/
|
|
101
|
-
is,
|
|
100
|
+
is: isNegativeFiniteNumber,
|
|
102
101
|
|
|
103
102
|
/**
|
|
104
103
|
* The largest value representable as `NegativeFiniteNumber` (the upper
|
|
@@ -2,7 +2,16 @@ import type {
|
|
|
2
2
|
NegativeInt as TtfImported_NegativeInt,
|
|
3
3
|
WithSmallInt,
|
|
4
4
|
} from 'ts-type-forge';
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
MAX_VALUE,
|
|
7
|
+
add,
|
|
8
|
+
fromNumber,
|
|
9
|
+
max as max_,
|
|
10
|
+
min as min_,
|
|
11
|
+
pow,
|
|
12
|
+
random,
|
|
13
|
+
sub,
|
|
14
|
+
} from '../operators/negative-int.mjs';
|
|
6
15
|
import { PositiveInt } from './positive-int.mjs';
|
|
7
16
|
|
|
8
17
|
export type NegativeInt = TtfImported_NegativeInt;
|
|
@@ -11,29 +20,6 @@ type ElementType = NegativeInt;
|
|
|
11
20
|
|
|
12
21
|
const typeNameInMessage = 'a negative integer';
|
|
13
22
|
|
|
14
|
-
const {
|
|
15
|
-
MAX_VALUE,
|
|
16
|
-
add,
|
|
17
|
-
castType,
|
|
18
|
-
fromNumber,
|
|
19
|
-
is,
|
|
20
|
-
max: max_,
|
|
21
|
-
min: min_,
|
|
22
|
-
pow,
|
|
23
|
-
random,
|
|
24
|
-
sub,
|
|
25
|
-
} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<
|
|
26
|
-
ElementType,
|
|
27
|
-
number,
|
|
28
|
-
-1
|
|
29
|
-
>({
|
|
30
|
-
integerOrSafeInteger: 'Integer',
|
|
31
|
-
nonZero: true,
|
|
32
|
-
MIN_VALUE: -Number.MAX_VALUE,
|
|
33
|
-
MAX_VALUE: -1,
|
|
34
|
-
typeNameInMessage,
|
|
35
|
-
} as const);
|
|
36
|
-
|
|
37
23
|
const abs = (x: WithSmallInt<ElementType>): PositiveInt =>
|
|
38
24
|
PositiveInt.fromNumber(Math.abs(x));
|
|
39
25
|
|
|
@@ -46,7 +32,8 @@ const abs = (x: WithSmallInt<ElementType>): PositiveInt =>
|
|
|
46
32
|
* @param value - The value to check
|
|
47
33
|
* @returns `true` if the value is a negative integer, `false` otherwise
|
|
48
34
|
*/
|
|
49
|
-
export const isNegativeInt = is
|
|
35
|
+
export const isNegativeInt = (value: number): value is NegativeInt =>
|
|
36
|
+
Number.isInteger(value) && value <= -1;
|
|
50
37
|
|
|
51
38
|
/**
|
|
52
39
|
* Casts a `number` to the `NegativeInt` branded type.
|
|
@@ -58,7 +45,13 @@ export const isNegativeInt = is;
|
|
|
58
45
|
* @returns The value as a `NegativeInt`
|
|
59
46
|
* @throws {TypeError} If the value is not a negative integer
|
|
60
47
|
*/
|
|
61
|
-
export const asNegativeInt =
|
|
48
|
+
export const asNegativeInt = <N extends number>(value: N): NegativeInt & N => {
|
|
49
|
+
if (!isNegativeInt(value)) {
|
|
50
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return value;
|
|
54
|
+
};
|
|
62
55
|
|
|
63
56
|
/**
|
|
64
57
|
* Namespace providing type-safe operations for the `NegativeInt` branded type.
|
|
@@ -78,7 +71,7 @@ export const NegativeInt = {
|
|
|
78
71
|
* @returns `true` if the value is a negative integer, `false` otherwise
|
|
79
72
|
* @see {@link isNegativeInt} for usage examples
|
|
80
73
|
*/
|
|
81
|
-
is,
|
|
74
|
+
is: isNegativeInt,
|
|
82
75
|
|
|
83
76
|
/**
|
|
84
77
|
* The largest value representable as `NegativeInt` (the upper saturation
|
|
@@ -2,38 +2,24 @@ import type {
|
|
|
2
2
|
NegativeSafeInt as TtfImported_NegativeSafeInt,
|
|
3
3
|
WithSmallInt,
|
|
4
4
|
} from 'ts-type-forge';
|
|
5
|
-
import {
|
|
6
|
-
import { PositiveSafeInt } from './positive-safe-int.mjs';
|
|
7
|
-
|
|
8
|
-
export type NegativeSafeInt = TtfImported_NegativeSafeInt;
|
|
9
|
-
|
|
10
|
-
type ElementType = NegativeSafeInt;
|
|
11
|
-
|
|
12
|
-
const typeNameInMessage = 'a negative safe integer';
|
|
13
|
-
|
|
14
|
-
const {
|
|
5
|
+
import {
|
|
15
6
|
MAX_VALUE,
|
|
16
7
|
MIN_VALUE,
|
|
17
8
|
add,
|
|
18
|
-
castType,
|
|
19
9
|
fromNumber,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
min: min_,
|
|
10
|
+
max as max_,
|
|
11
|
+
min as min_,
|
|
23
12
|
pow,
|
|
24
13
|
random,
|
|
25
14
|
sub,
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
MAX_VALUE: -1,
|
|
35
|
-
typeNameInMessage,
|
|
36
|
-
} as const);
|
|
15
|
+
} from '../operators/negative-safe-int.mjs';
|
|
16
|
+
import { PositiveSafeInt } from './positive-safe-int.mjs';
|
|
17
|
+
|
|
18
|
+
export type NegativeSafeInt = TtfImported_NegativeSafeInt;
|
|
19
|
+
|
|
20
|
+
type ElementType = NegativeSafeInt;
|
|
21
|
+
|
|
22
|
+
const typeNameInMessage = 'a negative safe integer';
|
|
37
23
|
|
|
38
24
|
const abs = (x: WithSmallInt<ElementType>): PositiveSafeInt =>
|
|
39
25
|
PositiveSafeInt.fromNumber(Math.abs(x));
|
|
@@ -47,7 +33,8 @@ const abs = (x: WithSmallInt<ElementType>): PositiveSafeInt =>
|
|
|
47
33
|
* @param value - The value to check
|
|
48
34
|
* @returns `true` if the value is a negative safe integer, `false` otherwise
|
|
49
35
|
*/
|
|
50
|
-
export const isNegativeSafeInt = is
|
|
36
|
+
export const isNegativeSafeInt = (value: number): value is NegativeSafeInt =>
|
|
37
|
+
Number.isSafeInteger(value) && value <= -1;
|
|
51
38
|
|
|
52
39
|
/**
|
|
53
40
|
* Casts a `number` to the `NegativeSafeInt` branded type.
|
|
@@ -59,7 +46,15 @@ export const isNegativeSafeInt = is;
|
|
|
59
46
|
* @returns The value as a `NegativeSafeInt`
|
|
60
47
|
* @throws {TypeError} If the value is not a negative safe integer
|
|
61
48
|
*/
|
|
62
|
-
export const asNegativeSafeInt =
|
|
49
|
+
export const asNegativeSafeInt = <N extends number>(
|
|
50
|
+
value: N,
|
|
51
|
+
): NegativeSafeInt & N => {
|
|
52
|
+
if (!isNegativeSafeInt(value)) {
|
|
53
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return value;
|
|
57
|
+
};
|
|
63
58
|
|
|
64
59
|
/**
|
|
65
60
|
* Namespace providing type-safe operations for the `NegativeSafeInt` branded
|
|
@@ -76,7 +71,7 @@ export const NegativeSafeInt = {
|
|
|
76
71
|
* @returns `true` if the value is a negative safe integer, `false` otherwise
|
|
77
72
|
* @see {@link isNegativeSafeInt} for usage examples
|
|
78
73
|
*/
|
|
79
|
-
is,
|
|
74
|
+
is: isNegativeSafeInt,
|
|
80
75
|
|
|
81
76
|
/**
|
|
82
77
|
* The smallest value representable as `NegativeSafeInt` (the lower saturation
|
|
@@ -3,36 +3,25 @@ import type {
|
|
|
3
3
|
Uint,
|
|
4
4
|
} from 'ts-type-forge';
|
|
5
5
|
import { expectType } from '../../expect-type.mjs';
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
export type NonNegativeFiniteNumber = TtfImported_NonNegativeFiniteNumber;
|
|
9
|
-
|
|
10
|
-
type ElementType = NonNegativeFiniteNumber;
|
|
11
|
-
|
|
12
|
-
const typeNameInMessage = 'a non-negative finite number';
|
|
13
|
-
|
|
14
|
-
const {
|
|
6
|
+
import {
|
|
15
7
|
MIN_VALUE,
|
|
16
8
|
add,
|
|
17
|
-
castType,
|
|
18
9
|
div,
|
|
19
10
|
fromNumber,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
min: min_,
|
|
11
|
+
max as max_,
|
|
12
|
+
min as min_,
|
|
23
13
|
mul,
|
|
24
14
|
pow,
|
|
25
15
|
random,
|
|
26
16
|
sub,
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
} as const);
|
|
17
|
+
} from '../operators/non-negative-finite-number.mjs';
|
|
18
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
19
|
+
|
|
20
|
+
export type NonNegativeFiniteNumber = TtfImported_NonNegativeFiniteNumber;
|
|
21
|
+
|
|
22
|
+
type ElementType = NonNegativeFiniteNumber;
|
|
23
|
+
|
|
24
|
+
const typeNameInMessage = 'a non-negative finite number';
|
|
36
25
|
|
|
37
26
|
const floor = (
|
|
38
27
|
x: ElementType,
|
|
@@ -65,7 +54,9 @@ expectType<TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>, Uint>(
|
|
|
65
54
|
* @param value - The value to check
|
|
66
55
|
* @returns `true` if the value is a non-negative finite number, `false` otherwise
|
|
67
56
|
*/
|
|
68
|
-
export const isNonNegativeFiniteNumber =
|
|
57
|
+
export const isNonNegativeFiniteNumber = (
|
|
58
|
+
value: number,
|
|
59
|
+
): value is NonNegativeFiniteNumber => Number.isFinite(value) && value >= 0;
|
|
69
60
|
|
|
70
61
|
/**
|
|
71
62
|
* Casts a `number` to the `NonNegativeFiniteNumber` branded type.
|
|
@@ -77,7 +68,15 @@ export const isNonNegativeFiniteNumber = is;
|
|
|
77
68
|
* @returns The value as a `NonNegativeFiniteNumber`
|
|
78
69
|
* @throws {TypeError} If the value is not a non-negative finite number
|
|
79
70
|
*/
|
|
80
|
-
export const asNonNegativeFiniteNumber =
|
|
71
|
+
export const asNonNegativeFiniteNumber = <N extends number>(
|
|
72
|
+
value: N,
|
|
73
|
+
): NonNegativeFiniteNumber & N => {
|
|
74
|
+
if (!isNonNegativeFiniteNumber(value)) {
|
|
75
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return value;
|
|
79
|
+
};
|
|
81
80
|
|
|
82
81
|
/**
|
|
83
82
|
* Namespace providing type-safe operations for the `NonNegativeFiniteNumber`
|
|
@@ -93,7 +92,7 @@ export const NonNegativeFiniteNumber = {
|
|
|
93
92
|
* @returns `true` if the value is a non-negative finite number, `false` otherwise
|
|
94
93
|
* @see {@link isNonNegativeFiniteNumber} for usage examples
|
|
95
94
|
*/
|
|
96
|
-
is,
|
|
95
|
+
is: isNonNegativeFiniteNumber,
|
|
97
96
|
|
|
98
97
|
/**
|
|
99
98
|
* The smallest value representable as `NonNegativeFiniteNumber` (the lower
|
|
@@ -1,37 +1,25 @@
|
|
|
1
1
|
import type { NonNegativeInt16 as TtfImported_NonNegativeInt16 } from 'ts-type-forge';
|
|
2
2
|
import { expectType } from '../../expect-type.mjs';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export type NonNegativeInt16 = TtfImported_NonNegativeInt16;
|
|
6
|
-
|
|
7
|
-
type ElementType = NonNegativeInt16;
|
|
8
|
-
|
|
9
|
-
const typeNameInMessage = 'a non-negative integer in [0, 2^15)';
|
|
10
|
-
|
|
11
|
-
const {
|
|
3
|
+
import {
|
|
12
4
|
MAX_VALUE,
|
|
13
5
|
MIN_VALUE,
|
|
14
6
|
add,
|
|
15
|
-
castType,
|
|
16
7
|
div,
|
|
17
8
|
fromNumber,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
min: min_,
|
|
9
|
+
max as max_,
|
|
10
|
+
min as min_,
|
|
21
11
|
mul,
|
|
22
12
|
pow,
|
|
23
13
|
random,
|
|
24
14
|
sub,
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
typeNameInMessage,
|
|
34
|
-
} as const);
|
|
15
|
+
} from '../operators/non-negative-int16.mjs';
|
|
16
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
17
|
+
|
|
18
|
+
export type NonNegativeInt16 = TtfImported_NonNegativeInt16;
|
|
19
|
+
|
|
20
|
+
type ElementType = NonNegativeInt16;
|
|
21
|
+
|
|
22
|
+
const typeNameInMessage = 'a non-negative integer in [0, 2^15)';
|
|
35
23
|
|
|
36
24
|
/**
|
|
37
25
|
* Type guard that checks if a value is a non-negative integer in [0, 2^15).
|
|
@@ -42,7 +30,8 @@ const {
|
|
|
42
30
|
* @param value - The value to check
|
|
43
31
|
* @returns `true` if the value is a non-negative integer in [0, 2^15), `false` otherwise
|
|
44
32
|
*/
|
|
45
|
-
export const isNonNegativeInt16 = is
|
|
33
|
+
export const isNonNegativeInt16 = (value: number): value is NonNegativeInt16 =>
|
|
34
|
+
Number.isSafeInteger(value) && 0 <= value && value <= 2 ** 15 - 1;
|
|
46
35
|
|
|
47
36
|
/**
|
|
48
37
|
* Casts a `number` to the `NonNegativeInt16` branded type.
|
|
@@ -54,7 +43,15 @@ export const isNonNegativeInt16 = is;
|
|
|
54
43
|
* @returns The value as a `NonNegativeInt16`
|
|
55
44
|
* @throws {TypeError} If the value is not a non-negative integer in [0, 2^15)
|
|
56
45
|
*/
|
|
57
|
-
export const asNonNegativeInt16 =
|
|
46
|
+
export const asNonNegativeInt16 = <N extends number>(
|
|
47
|
+
value: N,
|
|
48
|
+
): NonNegativeInt16 & N => {
|
|
49
|
+
if (!isNonNegativeInt16(value)) {
|
|
50
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return value;
|
|
54
|
+
};
|
|
58
55
|
|
|
59
56
|
/**
|
|
60
57
|
* Namespace providing type-safe operations for the `NonNegativeInt16` branded
|
|
@@ -71,7 +68,7 @@ export const NonNegativeInt16 = {
|
|
|
71
68
|
* @returns `true` if the value is a non-negative integer in [0, 2^15), `false` otherwise
|
|
72
69
|
* @see {@link isNonNegativeInt16} for usage examples
|
|
73
70
|
*/
|
|
74
|
-
is,
|
|
71
|
+
is: isNonNegativeInt16,
|
|
75
72
|
|
|
76
73
|
/**
|
|
77
74
|
* The smallest value representable as `NonNegativeInt16` (the lower
|
|
@@ -1,37 +1,25 @@
|
|
|
1
1
|
import type { NonNegativeInt32 as TtfImported_NonNegativeInt32 } from 'ts-type-forge';
|
|
2
2
|
import { expectType } from '../../expect-type.mjs';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export type NonNegativeInt32 = TtfImported_NonNegativeInt32;
|
|
6
|
-
|
|
7
|
-
type ElementType = NonNegativeInt32;
|
|
8
|
-
|
|
9
|
-
const typeNameInMessage = 'a non-negative integer in [0, 2^31)';
|
|
10
|
-
|
|
11
|
-
const {
|
|
3
|
+
import {
|
|
12
4
|
MAX_VALUE,
|
|
13
5
|
MIN_VALUE,
|
|
14
6
|
add,
|
|
15
|
-
castType,
|
|
16
7
|
div,
|
|
17
8
|
fromNumber,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
min: min_,
|
|
9
|
+
max as max_,
|
|
10
|
+
min as min_,
|
|
21
11
|
mul,
|
|
22
12
|
pow,
|
|
23
13
|
random,
|
|
24
14
|
sub,
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
typeNameInMessage,
|
|
34
|
-
} as const);
|
|
15
|
+
} from '../operators/non-negative-int32.mjs';
|
|
16
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
17
|
+
|
|
18
|
+
export type NonNegativeInt32 = TtfImported_NonNegativeInt32;
|
|
19
|
+
|
|
20
|
+
type ElementType = NonNegativeInt32;
|
|
21
|
+
|
|
22
|
+
const typeNameInMessage = 'a non-negative integer in [0, 2^31)';
|
|
35
23
|
|
|
36
24
|
/**
|
|
37
25
|
* Type guard that checks if a value is a non-negative integer in [0, 2^31).
|
|
@@ -42,7 +30,8 @@ const {
|
|
|
42
30
|
* @param value - The value to check
|
|
43
31
|
* @returns `true` if the value is a non-negative integer in [0, 2^31), `false` otherwise
|
|
44
32
|
*/
|
|
45
|
-
export const isNonNegativeInt32 = is
|
|
33
|
+
export const isNonNegativeInt32 = (value: number): value is NonNegativeInt32 =>
|
|
34
|
+
Number.isSafeInteger(value) && 0 <= value && value <= 2 ** 31 - 1;
|
|
46
35
|
|
|
47
36
|
/**
|
|
48
37
|
* Casts a `number` to the `NonNegativeInt32` branded type.
|
|
@@ -54,7 +43,15 @@ export const isNonNegativeInt32 = is;
|
|
|
54
43
|
* @returns The value as a `NonNegativeInt32`
|
|
55
44
|
* @throws {TypeError} If the value is not a non-negative integer in [0, 2^31)
|
|
56
45
|
*/
|
|
57
|
-
export const asNonNegativeInt32 =
|
|
46
|
+
export const asNonNegativeInt32 = <N extends number>(
|
|
47
|
+
value: N,
|
|
48
|
+
): NonNegativeInt32 & N => {
|
|
49
|
+
if (!isNonNegativeInt32(value)) {
|
|
50
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return value;
|
|
54
|
+
};
|
|
58
55
|
|
|
59
56
|
/**
|
|
60
57
|
* Namespace providing type-safe operations for the `NonNegativeInt32` branded
|
|
@@ -71,7 +68,7 @@ export const NonNegativeInt32 = {
|
|
|
71
68
|
* @returns `true` if the value is a non-negative integer in [0, 2^31), `false` otherwise
|
|
72
69
|
* @see {@link isNonNegativeInt32} for usage examples
|
|
73
70
|
*/
|
|
74
|
-
is,
|
|
71
|
+
is: isNonNegativeInt32,
|
|
75
72
|
|
|
76
73
|
/**
|
|
77
74
|
* The smallest value representable as `NonNegativeInt32` (the lower
|
|
@@ -1,32 +1,21 @@
|
|
|
1
1
|
import type { NonPositiveFiniteNumber as TtfImported_NonPositiveFiniteNumber } from 'ts-type-forge';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export type NonPositiveFiniteNumber = TtfImported_NonPositiveFiniteNumber;
|
|
5
|
-
|
|
6
|
-
type ElementType = NonPositiveFiniteNumber;
|
|
7
|
-
|
|
8
|
-
const typeNameInMessage = 'a non-positive finite number';
|
|
9
|
-
|
|
10
|
-
const {
|
|
2
|
+
import {
|
|
11
3
|
MAX_VALUE,
|
|
12
4
|
add,
|
|
13
|
-
castType,
|
|
14
5
|
fromNumber,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
min: min_,
|
|
6
|
+
max as max_,
|
|
7
|
+
min as min_,
|
|
18
8
|
pow,
|
|
19
9
|
random,
|
|
20
10
|
sub,
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
} as const);
|
|
11
|
+
} from '../operators/non-positive-finite-number.mjs';
|
|
12
|
+
import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
13
|
+
|
|
14
|
+
export type NonPositiveFiniteNumber = TtfImported_NonPositiveFiniteNumber;
|
|
15
|
+
|
|
16
|
+
type ElementType = NonPositiveFiniteNumber;
|
|
17
|
+
|
|
18
|
+
const typeNameInMessage = 'a non-positive finite number';
|
|
30
19
|
|
|
31
20
|
const floor = (
|
|
32
21
|
x: ElementType,
|
|
@@ -71,7 +60,9 @@ const round = (
|
|
|
71
60
|
* @param value - The value to check
|
|
72
61
|
* @returns `true` if the value is a non-positive finite number, `false` otherwise
|
|
73
62
|
*/
|
|
74
|
-
export const isNonPositiveFiniteNumber =
|
|
63
|
+
export const isNonPositiveFiniteNumber = (
|
|
64
|
+
value: number,
|
|
65
|
+
): value is NonPositiveFiniteNumber => Number.isFinite(value) && value <= 0;
|
|
75
66
|
|
|
76
67
|
/**
|
|
77
68
|
* Casts a `number` to the `NonPositiveFiniteNumber` branded type.
|
|
@@ -83,7 +74,15 @@ export const isNonPositiveFiniteNumber = is;
|
|
|
83
74
|
* @returns The value as a `NonPositiveFiniteNumber`
|
|
84
75
|
* @throws {TypeError} If the value is not a non-positive finite number
|
|
85
76
|
*/
|
|
86
|
-
export const asNonPositiveFiniteNumber =
|
|
77
|
+
export const asNonPositiveFiniteNumber = <N extends number>(
|
|
78
|
+
value: N,
|
|
79
|
+
): NonPositiveFiniteNumber & N => {
|
|
80
|
+
if (!isNonPositiveFiniteNumber(value)) {
|
|
81
|
+
throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return value;
|
|
85
|
+
};
|
|
87
86
|
|
|
88
87
|
/**
|
|
89
88
|
* Namespace providing type-safe operations for the `NonPositiveFiniteNumber`
|
|
@@ -99,7 +98,7 @@ export const NonPositiveFiniteNumber = {
|
|
|
99
98
|
* @returns `true` if the value is a non-positive finite number, `false` otherwise
|
|
100
99
|
* @see {@link isNonPositiveFiniteNumber} for usage examples
|
|
101
100
|
*/
|
|
102
|
-
is,
|
|
101
|
+
is: isNonPositiveFiniteNumber,
|
|
103
102
|
|
|
104
103
|
/**
|
|
105
104
|
* The largest value representable as `NonPositiveFiniteNumber` (the upper
|