ts-data-forge 3.3.0 → 3.3.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 +37 -13
- package/dist/array/impl/array-utils-creation.d.mts +116 -0
- package/dist/array/impl/array-utils-creation.d.mts.map +1 -0
- package/dist/array/impl/array-utils-creation.mjs +110 -0
- package/dist/array/impl/array-utils-creation.mjs.map +1 -0
- package/dist/array/impl/array-utils-element-access.d.mts +61 -0
- package/dist/array/impl/array-utils-element-access.d.mts.map +1 -0
- package/dist/array/impl/array-utils-element-access.mjs +66 -0
- package/dist/array/impl/array-utils-element-access.mjs.map +1 -0
- package/dist/array/impl/array-utils-iterators.d.mts +59 -0
- package/dist/array/impl/array-utils-iterators.d.mts.map +1 -0
- package/dist/array/impl/array-utils-iterators.mjs +104 -0
- package/dist/array/impl/array-utils-iterators.mjs.map +1 -0
- package/dist/array/impl/array-utils-modification.d.mts +154 -0
- package/dist/array/impl/array-utils-modification.d.mts.map +1 -0
- package/dist/array/impl/array-utils-modification.mjs +139 -0
- package/dist/array/impl/array-utils-modification.mjs.map +1 -0
- package/dist/array/impl/array-utils-reducing-value.d.mts +214 -0
- package/dist/array/impl/array-utils-reducing-value.d.mts.map +1 -0
- package/dist/array/impl/array-utils-reducing-value.mjs +160 -0
- package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -0
- package/dist/array/impl/array-utils-search.d.mts +179 -0
- package/dist/array/impl/array-utils-search.d.mts.map +1 -0
- package/dist/array/impl/array-utils-search.mjs +153 -0
- package/dist/array/impl/array-utils-search.mjs.map +1 -0
- package/dist/array/impl/array-utils-set-op.d.mts +100 -0
- package/dist/array/impl/array-utils-set-op.d.mts.map +1 -0
- package/dist/array/impl/array-utils-set-op.mjs +137 -0
- package/dist/array/impl/array-utils-set-op.mjs.map +1 -0
- package/dist/array/impl/array-utils-size.d.mts +24 -0
- package/dist/array/impl/array-utils-size.d.mts.map +1 -0
- package/dist/array/impl/array-utils-size.mjs +28 -0
- package/dist/array/impl/array-utils-size.mjs.map +1 -0
- package/dist/array/impl/array-utils-slice-clamped.d.mts +18 -0
- package/dist/array/impl/array-utils-slice-clamped.d.mts.map +1 -0
- package/dist/array/impl/array-utils-slice-clamped.mjs +49 -0
- package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -0
- package/dist/array/impl/array-utils-slicing.d.mts +120 -0
- package/dist/array/impl/array-utils-slicing.d.mts.map +1 -0
- package/dist/array/impl/array-utils-slicing.mjs +140 -0
- package/dist/array/impl/array-utils-slicing.mjs.map +1 -0
- package/dist/array/impl/array-utils-transformation.d.mts +348 -0
- package/dist/array/impl/array-utils-transformation.d.mts.map +1 -0
- package/dist/array/impl/array-utils-transformation.mjs +331 -0
- package/dist/array/impl/array-utils-transformation.mjs.map +1 -0
- package/dist/array/impl/array-utils-validation.d.mts +149 -0
- package/dist/array/impl/array-utils-validation.d.mts.map +1 -0
- package/dist/array/impl/array-utils-validation.mjs +166 -0
- package/dist/array/impl/array-utils-validation.mjs.map +1 -0
- package/dist/array/impl/index.d.mts +13 -0
- package/dist/array/impl/index.d.mts.map +1 -0
- package/dist/array/impl/index.mjs +13 -0
- package/dist/array/impl/index.mjs.map +1 -0
- package/dist/array/index.d.mts +1 -1
- package/dist/array/index.d.mts.map +1 -1
- package/dist/array/index.mjs +2 -1
- package/dist/array/index.mjs.map +1 -1
- package/dist/collections/imap-mapped.d.mts +83 -253
- package/dist/collections/imap-mapped.d.mts.map +1 -1
- package/dist/collections/imap-mapped.mjs +33 -164
- package/dist/collections/imap-mapped.mjs.map +1 -1
- package/dist/collections/imap.d.mts +436 -163
- package/dist/collections/imap.d.mts.map +1 -1
- package/dist/collections/imap.mjs +74 -94
- package/dist/collections/imap.mjs.map +1 -1
- package/dist/collections/iset-mapped.d.mts +828 -345
- package/dist/collections/iset-mapped.d.mts.map +1 -1
- package/dist/collections/iset-mapped.mjs +200 -242
- package/dist/collections/iset-mapped.mjs.map +1 -1
- package/dist/collections/iset.d.mts +397 -205
- package/dist/collections/iset.d.mts.map +1 -1
- package/dist/collections/iset.mjs +102 -184
- package/dist/collections/iset.mjs.map +1 -1
- package/dist/collections/queue.d.mts +155 -135
- package/dist/collections/queue.d.mts.map +1 -1
- package/dist/collections/queue.mjs +55 -156
- package/dist/collections/queue.mjs.map +1 -1
- package/dist/collections/stack.d.mts +154 -154
- package/dist/collections/stack.d.mts.map +1 -1
- package/dist/collections/stack.mjs +54 -203
- package/dist/collections/stack.mjs.map +1 -1
- package/dist/entry-point.d.mts +1 -0
- package/dist/entry-point.d.mts.map +1 -1
- package/dist/entry-point.mjs +2 -1
- package/dist/entry-point.mjs.map +1 -1
- package/dist/expect-type.d.mts +43 -172
- package/dist/expect-type.d.mts.map +1 -1
- package/dist/expect-type.mjs +43 -172
- package/dist/expect-type.mjs.map +1 -1
- package/dist/functional/match.d.mts +35 -140
- package/dist/functional/match.d.mts.map +1 -1
- package/dist/functional/match.mjs.map +1 -1
- package/dist/functional/optional.d.mts +282 -160
- package/dist/functional/optional.d.mts.map +1 -1
- package/dist/functional/optional.mjs +131 -71
- package/dist/functional/optional.mjs.map +1 -1
- package/dist/functional/pipe.d.mts +59 -113
- package/dist/functional/pipe.d.mts.map +1 -1
- package/dist/functional/pipe.mjs.map +1 -1
- package/dist/functional/result.d.mts +433 -332
- package/dist/functional/result.d.mts.map +1 -1
- package/dist/functional/result.mjs +233 -239
- package/dist/functional/result.mjs.map +1 -1
- package/dist/globals.d.mts +12 -5
- package/dist/guard/has-key.d.mts +23 -74
- package/dist/guard/has-key.d.mts.map +1 -1
- package/dist/guard/has-key.mjs +23 -74
- package/dist/guard/has-key.mjs.map +1 -1
- package/dist/guard/is-non-empty-string.d.mts +20 -87
- package/dist/guard/is-non-empty-string.d.mts.map +1 -1
- package/dist/guard/is-non-empty-string.mjs +20 -87
- package/dist/guard/is-non-empty-string.mjs.map +1 -1
- package/dist/guard/is-non-null-object.d.mts +14 -84
- package/dist/guard/is-non-null-object.d.mts.map +1 -1
- package/dist/guard/is-non-null-object.mjs +14 -84
- package/dist/guard/is-non-null-object.mjs.map +1 -1
- package/dist/guard/is-primitive.d.mts +13 -126
- package/dist/guard/is-primitive.d.mts.map +1 -1
- package/dist/guard/is-primitive.mjs +13 -126
- package/dist/guard/is-primitive.mjs.map +1 -1
- package/dist/guard/is-record.d.mts +21 -132
- package/dist/guard/is-record.d.mts.map +1 -1
- package/dist/guard/is-record.mjs +21 -132
- package/dist/guard/is-record.mjs.map +1 -1
- package/dist/guard/is-type.d.mts +201 -238
- package/dist/guard/is-type.d.mts.map +1 -1
- package/dist/guard/is-type.mjs +201 -238
- package/dist/guard/is-type.mjs.map +1 -1
- package/dist/guard/key-is-in.d.mts +22 -139
- package/dist/guard/key-is-in.d.mts.map +1 -1
- package/dist/guard/key-is-in.mjs +22 -139
- package/dist/guard/key-is-in.mjs.map +1 -1
- package/dist/index.d.mts +0 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +0 -1
- package/dist/index.mjs.map +1 -1
- package/dist/iterator/range.d.mts +29 -62
- package/dist/iterator/range.d.mts.map +1 -1
- package/dist/iterator/range.mjs.map +1 -1
- package/dist/json/json.d.mts +191 -121
- package/dist/json/json.d.mts.map +1 -1
- package/dist/json/json.mjs +238 -136
- package/dist/json/json.mjs.map +1 -1
- package/dist/number/branded-types/finite-number.d.mts +24 -156
- package/dist/number/branded-types/finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/finite-number.mjs +27 -159
- package/dist/number/branded-types/finite-number.mjs.map +1 -1
- package/dist/number/branded-types/int.d.mts +122 -120
- package/dist/number/branded-types/int.d.mts.map +1 -1
- package/dist/number/branded-types/int.mjs +122 -120
- package/dist/number/branded-types/int.mjs.map +1 -1
- package/dist/number/branded-types/int16.d.mts +22 -30
- package/dist/number/branded-types/int16.d.mts.map +1 -1
- package/dist/number/branded-types/int16.mjs +22 -30
- package/dist/number/branded-types/int16.mjs.map +1 -1
- package/dist/number/branded-types/int32.d.mts +22 -31
- package/dist/number/branded-types/int32.d.mts.map +1 -1
- package/dist/number/branded-types/int32.mjs +22 -31
- package/dist/number/branded-types/int32.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.d.mts +28 -36
- package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.mjs +31 -39
- package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int16.d.mts +24 -34
- package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int16.mjs +24 -34
- package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int32.d.mts +26 -35
- package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int32.mjs +26 -35
- package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.d.mts +22 -37
- package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.mjs +25 -40
- package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int.d.mts +15 -30
- package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int.mjs +15 -30
- package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int16.d.mts +27 -35
- package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int16.mjs +27 -35
- package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int32.d.mts +29 -36
- package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int32.mjs +29 -36
- package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.d.mts +37 -38
- package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.mjs +39 -40
- package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.d.mts +24 -35
- package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.mjs +24 -35
- package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.d.mts +24 -35
- package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.mjs +24 -35
- package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
- package/dist/number/branded-types/positive-finite-number.d.mts +26 -40
- package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/positive-finite-number.mjs +29 -43
- package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/positive-int.d.mts +133 -123
- package/dist/number/branded-types/positive-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int.mjs +133 -123
- package/dist/number/branded-types/positive-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-int16.d.mts +24 -35
- package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int16.mjs +24 -35
- package/dist/number/branded-types/positive-int16.mjs.map +1 -1
- package/dist/number/branded-types/positive-int32.d.mts +24 -35
- package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int32.mjs +24 -35
- package/dist/number/branded-types/positive-int32.mjs.map +1 -1
- package/dist/number/branded-types/positive-safe-int.d.mts +159 -33
- package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-safe-int.mjs +160 -34
- package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint16.d.mts +24 -35
- package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint16.mjs +24 -35
- package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint32.d.mts +26 -36
- package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint32.mjs +26 -36
- package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
- package/dist/number/branded-types/safe-int.d.mts +140 -99
- package/dist/number/branded-types/safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/safe-int.mjs +142 -101
- package/dist/number/branded-types/safe-int.mjs.map +1 -1
- package/dist/number/branded-types/safe-uint.d.mts +24 -33
- package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
- package/dist/number/branded-types/safe-uint.mjs +25 -34
- package/dist/number/branded-types/safe-uint.mjs.map +1 -1
- package/dist/number/branded-types/uint.d.mts +121 -30
- package/dist/number/branded-types/uint.d.mts.map +1 -1
- package/dist/number/branded-types/uint.mjs +121 -30
- package/dist/number/branded-types/uint.mjs.map +1 -1
- package/dist/number/branded-types/uint16.d.mts +26 -34
- package/dist/number/branded-types/uint16.d.mts.map +1 -1
- package/dist/number/branded-types/uint16.mjs +26 -34
- package/dist/number/branded-types/uint16.mjs.map +1 -1
- package/dist/number/branded-types/uint32.d.mts +26 -68
- package/dist/number/branded-types/uint32.d.mts.map +1 -1
- package/dist/number/branded-types/uint32.mjs +26 -68
- package/dist/number/branded-types/uint32.mjs.map +1 -1
- package/dist/number/enum/int8.d.mts +37 -101
- package/dist/number/enum/int8.d.mts.map +1 -1
- package/dist/number/enum/int8.mjs +39 -170
- package/dist/number/enum/int8.mjs.map +1 -1
- package/dist/number/enum/uint8.d.mts +45 -55
- package/dist/number/enum/uint8.d.mts.map +1 -1
- package/dist/number/enum/uint8.mjs +46 -155
- package/dist/number/enum/uint8.mjs.map +1 -1
- package/dist/number/num.d.mts +145 -206
- package/dist/number/num.d.mts.map +1 -1
- package/dist/number/num.mjs +143 -199
- package/dist/number/num.mjs.map +1 -1
- package/dist/number/refined-number-utils.d.mts +97 -21
- package/dist/number/refined-number-utils.d.mts.map +1 -1
- package/dist/number/refined-number-utils.mjs +91 -20
- package/dist/number/refined-number-utils.mjs.map +1 -1
- package/dist/object/object.d.mts +126 -208
- package/dist/object/object.d.mts.map +1 -1
- package/dist/object/object.mjs +68 -102
- package/dist/object/object.mjs.map +1 -1
- package/dist/others/cast-mutable.d.mts +12 -88
- package/dist/others/cast-mutable.d.mts.map +1 -1
- package/dist/others/cast-mutable.mjs +13 -89
- package/dist/others/cast-mutable.mjs.map +1 -1
- package/dist/others/cast-readonly.d.mts +12 -168
- package/dist/others/cast-readonly.d.mts.map +1 -1
- package/dist/others/cast-readonly.mjs +13 -169
- package/dist/others/cast-readonly.mjs.map +1 -1
- package/dist/others/if-then.d.mts +6 -83
- package/dist/others/if-then.d.mts.map +1 -1
- package/dist/others/if-then.mjs +6 -83
- package/dist/others/if-then.mjs.map +1 -1
- package/dist/others/map-nullable.d.mts +12 -136
- package/dist/others/map-nullable.d.mts.map +1 -1
- package/dist/others/map-nullable.mjs.map +1 -1
- package/dist/others/memoize-function.d.mts +14 -157
- package/dist/others/memoize-function.d.mts.map +1 -1
- package/dist/others/memoize-function.mjs +14 -157
- package/dist/others/memoize-function.mjs.map +1 -1
- package/dist/others/tuple.d.mts +33 -151
- package/dist/others/tuple.d.mts.map +1 -1
- package/dist/others/tuple.mjs +33 -151
- package/dist/others/tuple.mjs.map +1 -1
- package/dist/others/unknown-to-string.d.mts +11 -125
- package/dist/others/unknown-to-string.d.mts.map +1 -1
- package/dist/others/unknown-to-string.mjs +12 -126
- package/dist/others/unknown-to-string.mjs.map +1 -1
- package/dist/promise/promise.d.mts +33 -20
- package/dist/promise/promise.d.mts.map +1 -1
- package/dist/promise/promise.mjs +34 -21
- package/dist/promise/promise.mjs.map +1 -1
- package/package.json +47 -39
- package/src/array/impl/array-utils-creation.mts +192 -0
- package/src/array/{array-utils-creation.test.mts → impl/array-utils-creation.test.mts} +121 -72
- package/src/array/impl/array-utils-element-access.mts +115 -0
- package/src/array/impl/array-utils-element-access.test.mts +151 -0
- package/src/array/impl/array-utils-iterators.mts +79 -0
- package/src/array/impl/array-utils-iterators.test.mts +98 -0
- package/src/array/impl/array-utils-modification.mts +434 -0
- package/src/array/{array-utils-modification.test.mts → impl/array-utils-modification.test.mts} +41 -28
- package/src/array/{array-utils-overload-type-error.test.mts → impl/array-utils-overload-type-error.test.mts} +33 -33
- package/src/array/impl/array-utils-reducing-value.mts +551 -0
- package/src/array/{array-utils-reducing-value.test.mts → impl/array-utils-reducing-value.test.mts} +45 -50
- package/src/array/impl/array-utils-search.mts +509 -0
- package/src/array/impl/array-utils-search.test.mts +346 -0
- package/src/array/impl/array-utils-set-op.mts +166 -0
- package/src/array/{array-utils-set-op.test.mts → impl/array-utils-set-op.test.mts} +42 -35
- package/src/array/impl/array-utils-size.mts +30 -0
- package/src/array/impl/array-utils-size.test.mts +9 -0
- package/src/array/impl/array-utils-slice-clamped.mts +51 -0
- package/src/array/{array-utils-slice-clamped.test.mts → impl/array-utils-slice-clamped.test.mts} +12 -12
- package/src/array/impl/array-utils-slicing.mts +275 -0
- package/src/array/impl/array-utils-slicing.test.mts +158 -0
- package/src/array/impl/array-utils-transformation.mts +746 -0
- package/src/array/{array-utils-transformation.test.mts → impl/array-utils-transformation.test.mts} +662 -889
- package/src/array/impl/array-utils-validation.mts +241 -0
- package/src/array/{array-utils-validation.test.mts → impl/array-utils-validation.test.mts} +194 -107
- package/src/array/{array.test.mts → impl/array.test.mts} +2 -2
- package/src/array/impl/index.mts +12 -0
- package/src/array/index.mts +1 -1
- package/src/collections/imap-mapped.mts +99 -265
- package/src/collections/imap.mts +477 -174
- package/src/collections/imap.test.mts +12 -19
- package/src/collections/iset-mapped.mts +892 -358
- package/src/collections/iset.mts +429 -213
- package/src/collections/queue.mts +174 -200
- package/src/collections/stack.mts +172 -245
- package/src/collections/stack.test.mts +9 -1
- package/src/entry-point.mts +1 -0
- package/src/expect-type.mts +43 -172
- package/src/functional/match.mts +35 -145
- package/src/functional/optional.mts +285 -163
- package/src/functional/optional.test.mts +4 -1
- package/src/functional/pipe.mts +60 -113
- package/src/functional/result.mts +452 -351
- package/src/functional/result.test.mts +9 -2
- package/src/globals.d.mts +12 -5
- package/src/guard/has-key.mts +23 -74
- package/src/guard/is-non-empty-string.mts +20 -87
- package/src/guard/is-non-null-object.mts +14 -84
- package/src/guard/is-non-null-object.test.mts +1 -1
- package/src/guard/is-primitive.mts +13 -126
- package/src/guard/is-primitive.test.mts +1 -1
- package/src/guard/is-record.mts +21 -132
- package/src/guard/is-type.mts +201 -238
- package/src/guard/is-type.test.mts +7 -7
- package/src/guard/key-is-in.mts +22 -139
- package/src/index.mts +0 -1
- package/src/iterator/range.mts +29 -62
- package/src/json/json.mts +202 -134
- package/src/json/json.test.mts +1 -3
- package/src/number/branded-types/finite-number.mts +27 -159
- package/src/number/branded-types/int.mts +122 -120
- package/src/number/branded-types/int16.mts +22 -30
- package/src/number/branded-types/int16.test.mts +24 -24
- package/src/number/branded-types/int32.mts +22 -31
- package/src/number/branded-types/int32.test.mts +39 -39
- package/src/number/branded-types/non-negative-finite-number.mts +31 -39
- package/src/number/branded-types/non-negative-int16.mts +24 -34
- package/src/number/branded-types/non-negative-int16.test.mts +16 -16
- package/src/number/branded-types/non-negative-int32.mts +26 -35
- package/src/number/branded-types/non-negative-int32.test.mts +30 -30
- package/src/number/branded-types/non-zero-finite-number.mts +25 -40
- package/src/number/branded-types/non-zero-int.mts +15 -30
- package/src/number/branded-types/non-zero-int16.mts +27 -35
- package/src/number/branded-types/non-zero-int16.test.mts +26 -26
- package/src/number/branded-types/non-zero-int32.mts +29 -36
- package/src/number/branded-types/non-zero-int32.test.mts +45 -42
- package/src/number/branded-types/non-zero-safe-int.mts +39 -40
- package/src/number/branded-types/non-zero-uint16.mts +24 -35
- package/src/number/branded-types/non-zero-uint16.test.mts +16 -16
- package/src/number/branded-types/non-zero-uint32.mts +24 -35
- package/src/number/branded-types/non-zero-uint32.test.mts +28 -28
- package/src/number/branded-types/positive-finite-number.mts +29 -43
- package/src/number/branded-types/positive-int.mts +134 -124
- package/src/number/branded-types/positive-int16.mts +24 -35
- package/src/number/branded-types/positive-int16.test.mts +14 -14
- package/src/number/branded-types/positive-int32.mts +24 -35
- package/src/number/branded-types/positive-int32.test.mts +26 -26
- package/src/number/branded-types/positive-safe-int.mts +160 -34
- package/src/number/branded-types/positive-uint16.mts +24 -35
- package/src/number/branded-types/positive-uint16.test.mts +16 -16
- package/src/number/branded-types/positive-uint32.mts +26 -36
- package/src/number/branded-types/positive-uint32.test.mts +31 -28
- package/src/number/branded-types/safe-int.mts +142 -101
- package/src/number/branded-types/safe-uint.mts +25 -34
- package/src/number/branded-types/uint.mts +121 -30
- package/src/number/branded-types/uint16.mts +26 -34
- package/src/number/branded-types/uint16.test.mts +16 -16
- package/src/number/branded-types/uint32.mts +26 -68
- package/src/number/branded-types/uint32.test.mts +28 -28
- package/src/number/enum/int8.mts +39 -170
- package/src/number/enum/uint8.mts +46 -155
- package/src/number/num.mts +157 -212
- package/src/number/num.test.mts +4 -4
- package/src/number/refined-number-utils.mts +109 -26
- package/src/object/object.mts +130 -212
- package/src/object/object.test.mts +29 -0
- package/src/others/cast-mutable.mts +13 -89
- package/src/others/cast-mutable.test.mts +80 -0
- package/src/others/cast-readonly.mts +13 -169
- package/src/others/if-then.mts +6 -83
- package/src/others/map-nullable.mts +12 -136
- package/src/others/map-nullable.test.mts +6 -6
- package/src/others/memoize-function.mts +14 -157
- package/src/others/tuple.mts +33 -151
- package/src/others/unknown-to-string.mts +12 -126
- package/src/others/unknown-to-string.test.mts +13 -1
- package/src/promise/promise.mts +34 -21
- package/src/promise/promise.test.mts +43 -0
- package/dist/array/array-utils.d.mts +0 -2956
- package/dist/array/array-utils.d.mts.map +0 -1
- package/dist/array/array-utils.mjs +0 -1838
- package/dist/array/array-utils.mjs.map +0 -1
- package/src/array/array-utils-search.test.mts +0 -169
- package/src/array/array-utils-slicing.test.mts +0 -274
- package/src/array/array-utils.mts +0 -4834
|
@@ -9,73 +9,54 @@ const { MIN_VALUE, MAX_VALUE, min: min_, max: max_, pow, add, sub, mul, div, ran
|
|
|
9
9
|
typeNameInMessage,
|
|
10
10
|
});
|
|
11
11
|
/**
|
|
12
|
-
* Checks if a number is a NonZeroUint32 (32-bit non-zero unsigned integer in
|
|
12
|
+
* Checks if a number is a NonZeroUint32 (32-bit non-zero unsigned integer in
|
|
13
|
+
* the range [1, 2^32)).
|
|
14
|
+
*
|
|
13
15
|
* @param value The value to check.
|
|
14
16
|
* @returns `true` if the value is a NonZeroUint32, `false` otherwise.
|
|
15
17
|
*/
|
|
16
18
|
const isNonZeroUint32 = is;
|
|
17
19
|
/**
|
|
18
20
|
* Casts a number to a NonZeroUint32 type.
|
|
21
|
+
*
|
|
19
22
|
* @param value The value to cast.
|
|
20
23
|
* @returns The value as a NonZeroUint32 type.
|
|
21
24
|
* @throws {TypeError} If the value is not a non-zero integer in [1, 2^32).
|
|
22
|
-
* @example
|
|
23
|
-
* ```typescript
|
|
24
|
-
* const x = asNonZeroUint32(1000); // NonZeroUint32
|
|
25
|
-
* const y = asNonZeroUint32(4294967295); // NonZeroUint32
|
|
26
|
-
* // asNonZeroUint32(0); // throws TypeError
|
|
27
|
-
* // asNonZeroUint32(-1); // throws TypeError
|
|
28
|
-
* // asNonZeroUint32(4294967296); // throws TypeError
|
|
29
|
-
* ```
|
|
30
25
|
*/
|
|
31
26
|
const asNonZeroUint32 = castType;
|
|
32
27
|
/**
|
|
33
|
-
* Namespace providing type-safe arithmetic operations for 32-bit non-zero
|
|
34
|
-
*
|
|
35
|
-
* All operations automatically clamp results to the valid NonZeroUint32 range [1, 4294967295].
|
|
36
|
-
* This ensures that all arithmetic maintains the 32-bit non-zero unsigned integer constraint,
|
|
37
|
-
* with results below 1 clamped to MIN_VALUE and overflow results clamped to MAX_VALUE.
|
|
38
|
-
*
|
|
39
|
-
* @example
|
|
40
|
-
* ```typescript
|
|
41
|
-
* const a = asNonZeroUint32(4000000000);
|
|
42
|
-
* const b = asNonZeroUint32(1000000000);
|
|
43
|
-
*
|
|
44
|
-
* // Arithmetic operations with automatic clamping and non-zero constraint
|
|
45
|
-
* const sum = NonZeroUint32.add(a, b); // NonZeroUint32 (4294967295 - clamped to MAX_VALUE)
|
|
46
|
-
* const diff = NonZeroUint32.sub(a, b); // NonZeroUint32 (3000000000)
|
|
47
|
-
* const reverseDiff = NonZeroUint32.sub(b, a); // NonZeroUint32 (1 - clamped to MIN_VALUE)
|
|
48
|
-
* const product = NonZeroUint32.mul(a, b); // NonZeroUint32 (4294967295 - clamped due to overflow)
|
|
49
|
-
*
|
|
50
|
-
* // Range operations (maintaining non-zero constraint)
|
|
51
|
-
* const clamped = NonZeroUint32.clamp(-100); // NonZeroUint32 (1)
|
|
52
|
-
* const minimum = NonZeroUint32.min(a, b); // NonZeroUint32 (1000000000)
|
|
53
|
-
* const maximum = NonZeroUint32.max(a, b); // NonZeroUint32 (4000000000)
|
|
28
|
+
* Namespace providing type-safe arithmetic operations for 32-bit non-zero
|
|
29
|
+
* unsigned integers.
|
|
54
30
|
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
31
|
+
* All operations automatically clamp results to the valid NonZeroUint32 range
|
|
32
|
+
* [1, 4294967295]. This ensures that all arithmetic maintains the 32-bit
|
|
33
|
+
* non-zero unsigned integer constraint, with results below 1 clamped to
|
|
34
|
+
* MIN_VALUE and overflow results clamped to MAX_VALUE.
|
|
59
35
|
*/
|
|
60
36
|
const NonZeroUint32 = {
|
|
61
37
|
/**
|
|
62
38
|
* Type guard to check if a value is a NonZeroUint32.
|
|
39
|
+
*
|
|
63
40
|
* @param value The value to check.
|
|
64
|
-
* @returns `true` if the value is a 32-bit non-zero unsigned integer, `false`
|
|
41
|
+
* @returns `true` if the value is a 32-bit non-zero unsigned integer, `false`
|
|
42
|
+
* otherwise.
|
|
65
43
|
*/
|
|
66
44
|
is,
|
|
67
45
|
/**
|
|
68
46
|
* The minimum value for a 32-bit non-zero unsigned integer.
|
|
47
|
+
*
|
|
69
48
|
* @readonly
|
|
70
49
|
*/
|
|
71
50
|
MIN_VALUE,
|
|
72
51
|
/**
|
|
73
52
|
* The maximum value for a 32-bit non-zero unsigned integer.
|
|
53
|
+
*
|
|
74
54
|
* @readonly
|
|
75
55
|
*/
|
|
76
56
|
MAX_VALUE,
|
|
77
57
|
/**
|
|
78
58
|
* Returns the smaller of two NonZeroUint32 values.
|
|
59
|
+
*
|
|
79
60
|
* @param a The first NonZeroUint32.
|
|
80
61
|
* @param b The second NonZeroUint32.
|
|
81
62
|
* @returns The minimum value as a NonZeroUint32.
|
|
@@ -83,6 +64,7 @@ const NonZeroUint32 = {
|
|
|
83
64
|
min: min_,
|
|
84
65
|
/**
|
|
85
66
|
* Returns the larger of two NonZeroUint32 values.
|
|
67
|
+
*
|
|
86
68
|
* @param a The first NonZeroUint32.
|
|
87
69
|
* @param b The second NonZeroUint32.
|
|
88
70
|
* @returns The maximum value as a NonZeroUint32.
|
|
@@ -90,17 +72,20 @@ const NonZeroUint32 = {
|
|
|
90
72
|
max: max_,
|
|
91
73
|
/**
|
|
92
74
|
* Clamps a number to the NonZeroUint32 range.
|
|
75
|
+
*
|
|
93
76
|
* @param value The number to clamp.
|
|
94
77
|
* @returns The value clamped to [1, 4294967295] as a NonZeroUint32.
|
|
95
78
|
*/
|
|
96
79
|
clamp,
|
|
97
80
|
/**
|
|
98
81
|
* Generates a random NonZeroUint32 value within the valid range.
|
|
82
|
+
*
|
|
99
83
|
* @returns A random NonZeroUint32 between 1 and 4294967295.
|
|
100
84
|
*/
|
|
101
85
|
random,
|
|
102
86
|
/**
|
|
103
87
|
* Raises a NonZeroUint32 to the power of another NonZeroUint32.
|
|
88
|
+
*
|
|
104
89
|
* @param a The base NonZeroUint32.
|
|
105
90
|
* @param b The exponent NonZeroUint32.
|
|
106
91
|
* @returns `a ** b` clamped to [1, 4294967295] as a NonZeroUint32.
|
|
@@ -108,6 +93,7 @@ const NonZeroUint32 = {
|
|
|
108
93
|
pow,
|
|
109
94
|
/**
|
|
110
95
|
* Adds two NonZeroUint32 values.
|
|
96
|
+
*
|
|
111
97
|
* @param a The first NonZeroUint32.
|
|
112
98
|
* @param b The second NonZeroUint32.
|
|
113
99
|
* @returns `a + b` clamped to [1, 4294967295] as a NonZeroUint32.
|
|
@@ -115,6 +101,7 @@ const NonZeroUint32 = {
|
|
|
115
101
|
add,
|
|
116
102
|
/**
|
|
117
103
|
* Subtracts one NonZeroUint32 from another.
|
|
104
|
+
*
|
|
118
105
|
* @param a The minuend NonZeroUint32.
|
|
119
106
|
* @param b The subtrahend NonZeroUint32.
|
|
120
107
|
* @returns `a - b` clamped to [1, 4294967295] as a NonZeroUint32 (minimum 1).
|
|
@@ -122,6 +109,7 @@ const NonZeroUint32 = {
|
|
|
122
109
|
sub,
|
|
123
110
|
/**
|
|
124
111
|
* Multiplies two NonZeroUint32 values.
|
|
112
|
+
*
|
|
125
113
|
* @param a The first NonZeroUint32.
|
|
126
114
|
* @param b The second NonZeroUint32.
|
|
127
115
|
* @returns `a * b` clamped to [1, 4294967295] as a NonZeroUint32.
|
|
@@ -129,6 +117,7 @@ const NonZeroUint32 = {
|
|
|
129
117
|
mul,
|
|
130
118
|
/**
|
|
131
119
|
* Divides one NonZeroUint32 by another using floor division.
|
|
120
|
+
*
|
|
132
121
|
* @param a The dividend NonZeroUint32.
|
|
133
122
|
* @param b The divisor NonZeroUint32.
|
|
134
123
|
* @returns `⌊a / b⌋` clamped to [1, 4294967295] as a NonZeroUint32.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"non-zero-uint32.mjs","sources":["../../../src/number/branded-types/non-zero-uint32.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA,MAAM,iBAAiB,GAAG,iCAAiC;AAE3D,MAAM,EACJ,SAAS,EACT,SAAS,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,aAAa,EAAE,MAAM,EACrB,EAAE,EACF,QAAQ,EACR,KAAK,GACN,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,mBAAmB,CAI7D;AACA,IAAA,oBAAoB,EAAE,aAAa;AACnC,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,SAAS,EAAE,CAAC;AACZ,IAAA,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;IACtB,iBAAiB;AACT,CAAA,CAAC;AAEX
|
|
1
|
+
{"version":3,"file":"non-zero-uint32.mjs","sources":["../../../src/number/branded-types/non-zero-uint32.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA,MAAM,iBAAiB,GAAG,iCAAiC;AAE3D,MAAM,EACJ,SAAS,EACT,SAAS,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,aAAa,EAAE,MAAM,EACrB,EAAE,EACF,QAAQ,EACR,KAAK,GACN,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,mBAAmB,CAI7D;AACA,IAAA,oBAAoB,EAAE,aAAa;AACnC,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,SAAS,EAAE,CAAC;AACZ,IAAA,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;IACtB,iBAAiB;AACT,CAAA,CAAC;AAEX;;;;;;AAMG;AACI,MAAM,eAAe,GAAG;AAE/B;;;;;;AAMG;AACI,MAAM,eAAe,GAAG;AAE/B;;;;;;;;AAQG;AACI,MAAM,aAAa,GAAG;AAC3B;;;;;;AAMG;IACH,EAAE;AAEF;;;;AAIG;IACH,SAAS;AAET;;;;AAIG;IACH,SAAS;AAET;;;;;;AAMG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;;AAMG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;AAKG;IACH,KAAK;AAEL;;;;AAIG;IACH,MAAM;AAEN;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;;;;;"}
|
|
@@ -2,22 +2,17 @@ import { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
|
2
2
|
type ElementType = PositiveFiniteNumber;
|
|
3
3
|
/**
|
|
4
4
|
* Checks if a number is a PositiveFiniteNumber (a finite number > 0).
|
|
5
|
+
*
|
|
5
6
|
* @param value The value to check.
|
|
6
7
|
* @returns `true` if the value is a PositiveFiniteNumber, `false` otherwise.
|
|
7
8
|
*/
|
|
8
9
|
export declare const isPositiveFiniteNumber: (a: number) => a is PositiveFiniteNumber;
|
|
9
10
|
/**
|
|
10
11
|
* Casts a number to a PositiveFiniteNumber type.
|
|
12
|
+
*
|
|
11
13
|
* @param value The value to cast.
|
|
12
14
|
* @returns The value as a PositiveFiniteNumber type.
|
|
13
15
|
* @throws {TypeError} If the value is not a positive finite number.
|
|
14
|
-
* @example
|
|
15
|
-
* ```typescript
|
|
16
|
-
* const x = asPositiveFiniteNumber(5.5); // PositiveFiniteNumber
|
|
17
|
-
* const y = asPositiveFiniteNumber(0.001); // PositiveFiniteNumber
|
|
18
|
-
* // asPositiveFiniteNumber(0); // throws TypeError
|
|
19
|
-
* // asPositiveFiniteNumber(-1); // throws TypeError
|
|
20
|
-
* ```
|
|
21
16
|
*/
|
|
22
17
|
export declare const asPositiveFiniteNumber: <N extends number>(x: N) => number & {
|
|
23
18
|
readonly NaNValue: false;
|
|
@@ -32,53 +27,32 @@ export declare const asPositiveFiniteNumber: <N extends number>(x: N) => number
|
|
|
32
27
|
'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
|
|
33
28
|
}> & N;
|
|
34
29
|
/**
|
|
35
|
-
* Namespace providing type-safe arithmetic operations for positive finite
|
|
36
|
-
*
|
|
37
|
-
* All operations maintain the positive constraint by clamping non-positive results to MIN_VALUE,
|
|
38
|
-
* while ensuring results remain finite (excluding NaN and Infinity). This type is useful
|
|
39
|
-
* for representing quantities that must always be positive, such as probabilities, magnitudes,
|
|
40
|
-
* and physical measurements.
|
|
41
|
-
*
|
|
42
|
-
* @example
|
|
43
|
-
* ```typescript
|
|
44
|
-
* const probability = asPositiveFiniteNumber(0.75);
|
|
45
|
-
* const rate = asPositiveFiniteNumber(1.25);
|
|
46
|
-
*
|
|
47
|
-
* // Arithmetic operations with positive clamping
|
|
48
|
-
* const combined = PositiveFiniteNumber.add(probability, rate); // PositiveFiniteNumber (2.0)
|
|
49
|
-
* const difference = PositiveFiniteNumber.sub(rate, probability); // PositiveFiniteNumber (0.5)
|
|
50
|
-
* const scaled = PositiveFiniteNumber.mul(probability, rate); // PositiveFiniteNumber (0.9375)
|
|
51
|
-
* const ratio = PositiveFiniteNumber.div(rate, probability); // PositiveFiniteNumber (1.666...)
|
|
52
|
-
*
|
|
53
|
-
* // Range operations
|
|
54
|
-
* const clamped = PositiveFiniteNumber.clamp(-10.5); // PositiveFiniteNumber (MIN_VALUE)
|
|
55
|
-
* const minimum = PositiveFiniteNumber.min(probability, rate); // PositiveFiniteNumber (0.75)
|
|
56
|
-
* const maximum = PositiveFiniteNumber.max(probability, rate); // PositiveFiniteNumber (1.25)
|
|
57
|
-
*
|
|
58
|
-
* // Rounding operations (different return types based on operation)
|
|
59
|
-
* const ceiled = PositiveFiniteNumber.ceil(probability); // PositiveInt (1)
|
|
60
|
-
* const floored = PositiveFiniteNumber.floor(rate); // Uint (1)
|
|
61
|
-
* const rounded = PositiveFiniteNumber.round(rate); // Uint (1)
|
|
30
|
+
* Namespace providing type-safe arithmetic operations for positive finite
|
|
31
|
+
* numbers.
|
|
62
32
|
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
33
|
+
* All operations maintain the positive constraint by clamping non-positive
|
|
34
|
+
* results to MIN_VALUE, while ensuring results remain finite (excluding NaN and
|
|
35
|
+
* Infinity). This type is useful for representing quantities that must always
|
|
36
|
+
* be positive, such as probabilities, magnitudes, and physical measurements.
|
|
67
37
|
*/
|
|
68
38
|
export declare const PositiveFiniteNumber: {
|
|
69
39
|
/**
|
|
70
40
|
* Type guard to check if a value is a PositiveFiniteNumber.
|
|
41
|
+
*
|
|
71
42
|
* @param value The value to check.
|
|
72
|
-
* @returns `true` if the value is a positive finite number, `false`
|
|
43
|
+
* @returns `true` if the value is a positive finite number, `false`
|
|
44
|
+
* otherwise.
|
|
73
45
|
*/
|
|
74
46
|
readonly is: (a: number) => a is PositiveFiniteNumber;
|
|
75
47
|
/**
|
|
76
48
|
* The minimum value for a positive finite number.
|
|
49
|
+
*
|
|
77
50
|
* @readonly
|
|
78
51
|
*/
|
|
79
52
|
readonly MIN_VALUE: number;
|
|
80
53
|
/**
|
|
81
54
|
* Returns the smaller of two PositiveFiniteNumber values.
|
|
55
|
+
*
|
|
82
56
|
* @param a The first PositiveFiniteNumber.
|
|
83
57
|
* @param b The second PositiveFiniteNumber.
|
|
84
58
|
* @returns The minimum value as a PositiveFiniteNumber.
|
|
@@ -86,6 +60,7 @@ export declare const PositiveFiniteNumber: {
|
|
|
86
60
|
readonly min: (...values: readonly PositiveFiniteNumber[]) => PositiveFiniteNumber;
|
|
87
61
|
/**
|
|
88
62
|
* Returns the larger of two PositiveFiniteNumber values.
|
|
63
|
+
*
|
|
89
64
|
* @param a The first PositiveFiniteNumber.
|
|
90
65
|
* @param b The second PositiveFiniteNumber.
|
|
91
66
|
* @returns The maximum value as a PositiveFiniteNumber.
|
|
@@ -93,35 +68,41 @@ export declare const PositiveFiniteNumber: {
|
|
|
93
68
|
readonly max: (...values: readonly PositiveFiniteNumber[]) => PositiveFiniteNumber;
|
|
94
69
|
/**
|
|
95
70
|
* Clamps a number to the positive finite range.
|
|
71
|
+
*
|
|
96
72
|
* @param value The number to clamp.
|
|
97
73
|
* @returns The value clamped to (0, +∞) as a PositiveFiniteNumber.
|
|
98
74
|
*/
|
|
99
75
|
readonly clamp: (x: number) => PositiveFiniteNumber;
|
|
100
76
|
/**
|
|
101
77
|
* Rounds down a PositiveFiniteNumber to the nearest integer.
|
|
78
|
+
*
|
|
102
79
|
* @param x The PositiveFiniteNumber to round down.
|
|
103
80
|
* @returns The floor value as a Uint (can be 0).
|
|
104
81
|
*/
|
|
105
82
|
readonly floor: (x: ElementType) => TsDataForgeInternals.RefinedNumberUtils.RemoveNonZeroBrandKey<TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>>;
|
|
106
83
|
/**
|
|
107
84
|
* Rounds up a PositiveFiniteNumber to the nearest integer.
|
|
85
|
+
*
|
|
108
86
|
* @param x The PositiveFiniteNumber to round up.
|
|
109
87
|
* @returns The ceiling value as a PositiveInt (always >= 1).
|
|
110
88
|
*/
|
|
111
89
|
readonly ceil: (x: ElementType) => TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;
|
|
112
90
|
/**
|
|
113
91
|
* Rounds a PositiveFiniteNumber to the nearest integer.
|
|
92
|
+
*
|
|
114
93
|
* @param x The PositiveFiniteNumber to round.
|
|
115
94
|
* @returns The rounded value as a Uint (can be 0 if x < 0.5).
|
|
116
95
|
*/
|
|
117
96
|
readonly round: (x: ElementType) => TsDataForgeInternals.RefinedNumberUtils.RemoveNonZeroBrandKey<TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>>;
|
|
118
97
|
/**
|
|
119
98
|
* Generates a random PositiveFiniteNumber value.
|
|
99
|
+
*
|
|
120
100
|
* @returns A random positive finite number.
|
|
121
101
|
*/
|
|
122
102
|
readonly random: (min?: PositiveFiniteNumber | undefined, max?: PositiveFiniteNumber | undefined) => PositiveFiniteNumber;
|
|
123
103
|
/**
|
|
124
104
|
* Raises a PositiveFiniteNumber to the power of another PositiveFiniteNumber.
|
|
105
|
+
*
|
|
125
106
|
* @param a The base PositiveFiniteNumber.
|
|
126
107
|
* @param b The exponent PositiveFiniteNumber.
|
|
127
108
|
* @returns `a ** b` clamped to (0, +∞) as a PositiveFiniteNumber.
|
|
@@ -129,6 +110,7 @@ export declare const PositiveFiniteNumber: {
|
|
|
129
110
|
readonly pow: (x: PositiveFiniteNumber, y: PositiveFiniteNumber) => PositiveFiniteNumber;
|
|
130
111
|
/**
|
|
131
112
|
* Adds two PositiveFiniteNumber values.
|
|
113
|
+
*
|
|
132
114
|
* @param a The first PositiveFiniteNumber.
|
|
133
115
|
* @param b The second PositiveFiniteNumber.
|
|
134
116
|
* @returns `a + b` clamped to (0, +∞) as a PositiveFiniteNumber.
|
|
@@ -136,13 +118,16 @@ export declare const PositiveFiniteNumber: {
|
|
|
136
118
|
readonly add: (x: PositiveFiniteNumber, y: PositiveFiniteNumber) => PositiveFiniteNumber;
|
|
137
119
|
/**
|
|
138
120
|
* Subtracts one PositiveFiniteNumber from another.
|
|
121
|
+
*
|
|
139
122
|
* @param a The minuend PositiveFiniteNumber.
|
|
140
123
|
* @param b The subtrahend PositiveFiniteNumber.
|
|
141
|
-
* @returns `a - b` clamped to (0, +∞) as a PositiveFiniteNumber (minimum
|
|
124
|
+
* @returns `a - b` clamped to (0, +∞) as a PositiveFiniteNumber (minimum
|
|
125
|
+
* MIN_VALUE).
|
|
142
126
|
*/
|
|
143
127
|
readonly sub: (x: PositiveFiniteNumber, y: PositiveFiniteNumber) => PositiveFiniteNumber;
|
|
144
128
|
/**
|
|
145
129
|
* Multiplies two PositiveFiniteNumber values.
|
|
130
|
+
*
|
|
146
131
|
* @param a The first PositiveFiniteNumber.
|
|
147
132
|
* @param b The second PositiveFiniteNumber.
|
|
148
133
|
* @returns `a * b` clamped to (0, +∞) as a PositiveFiniteNumber.
|
|
@@ -150,6 +135,7 @@ export declare const PositiveFiniteNumber: {
|
|
|
150
135
|
readonly mul: (x: PositiveFiniteNumber, y: PositiveFiniteNumber) => PositiveFiniteNumber;
|
|
151
136
|
/**
|
|
152
137
|
* Divides one PositiveFiniteNumber by another.
|
|
138
|
+
*
|
|
153
139
|
* @param a The dividend PositiveFiniteNumber.
|
|
154
140
|
* @param b The divisor PositiveFiniteNumber.
|
|
155
141
|
* @returns `a / b` clamped to (0, +∞) as a PositiveFiniteNumber.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"positive-finite-number.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-finite-number.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,KAAK,WAAW,GAAG,oBAAoB,CAAC;AAqExC
|
|
1
|
+
{"version":3,"file":"positive-finite-number.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-finite-number.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,KAAK,WAAW,GAAG,oBAAoB,CAAC;AAqExC;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,0CAAK,CAAC;AAEzC;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;MAAW,CAAC;AAE/C;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB;IAC/B;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;wBAnHA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,qBAAqB,CAC9D,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3D;IAmHC;;;;;OAKG;uBA/GA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC;IAiH3D;;;;;OAKG;wBAjHA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,qBAAqB,CAC9D,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3D;IAiHC;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;CAEK,CAAC"}
|
|
@@ -7,82 +7,56 @@ const { MIN_VALUE, min: min_, max: max_, pow, add, sub, mul, div, random, is, ca
|
|
|
7
7
|
typeNameInMessage,
|
|
8
8
|
});
|
|
9
9
|
const floor = (x) =>
|
|
10
|
-
// eslint-disable-next-line
|
|
10
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
11
11
|
Math.floor(x);
|
|
12
12
|
const ceil = (x) =>
|
|
13
|
-
// eslint-disable-next-line
|
|
13
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
14
14
|
Math.ceil(x);
|
|
15
15
|
const round = (x) =>
|
|
16
|
-
// eslint-disable-next-line
|
|
16
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
17
17
|
Math.round(x);
|
|
18
18
|
/**
|
|
19
19
|
* Checks if a number is a PositiveFiniteNumber (a finite number > 0).
|
|
20
|
+
*
|
|
20
21
|
* @param value The value to check.
|
|
21
22
|
* @returns `true` if the value is a PositiveFiniteNumber, `false` otherwise.
|
|
22
23
|
*/
|
|
23
24
|
const isPositiveFiniteNumber = is;
|
|
24
25
|
/**
|
|
25
26
|
* Casts a number to a PositiveFiniteNumber type.
|
|
27
|
+
*
|
|
26
28
|
* @param value The value to cast.
|
|
27
29
|
* @returns The value as a PositiveFiniteNumber type.
|
|
28
30
|
* @throws {TypeError} If the value is not a positive finite number.
|
|
29
|
-
* @example
|
|
30
|
-
* ```typescript
|
|
31
|
-
* const x = asPositiveFiniteNumber(5.5); // PositiveFiniteNumber
|
|
32
|
-
* const y = asPositiveFiniteNumber(0.001); // PositiveFiniteNumber
|
|
33
|
-
* // asPositiveFiniteNumber(0); // throws TypeError
|
|
34
|
-
* // asPositiveFiniteNumber(-1); // throws TypeError
|
|
35
|
-
* ```
|
|
36
31
|
*/
|
|
37
32
|
const asPositiveFiniteNumber = castType;
|
|
38
33
|
/**
|
|
39
|
-
* Namespace providing type-safe arithmetic operations for positive finite
|
|
40
|
-
*
|
|
41
|
-
* All operations maintain the positive constraint by clamping non-positive results to MIN_VALUE,
|
|
42
|
-
* while ensuring results remain finite (excluding NaN and Infinity). This type is useful
|
|
43
|
-
* for representing quantities that must always be positive, such as probabilities, magnitudes,
|
|
44
|
-
* and physical measurements.
|
|
45
|
-
*
|
|
46
|
-
* @example
|
|
47
|
-
* ```typescript
|
|
48
|
-
* const probability = asPositiveFiniteNumber(0.75);
|
|
49
|
-
* const rate = asPositiveFiniteNumber(1.25);
|
|
50
|
-
*
|
|
51
|
-
* // Arithmetic operations with positive clamping
|
|
52
|
-
* const combined = PositiveFiniteNumber.add(probability, rate); // PositiveFiniteNumber (2.0)
|
|
53
|
-
* const difference = PositiveFiniteNumber.sub(rate, probability); // PositiveFiniteNumber (0.5)
|
|
54
|
-
* const scaled = PositiveFiniteNumber.mul(probability, rate); // PositiveFiniteNumber (0.9375)
|
|
55
|
-
* const ratio = PositiveFiniteNumber.div(rate, probability); // PositiveFiniteNumber (1.666...)
|
|
56
|
-
*
|
|
57
|
-
* // Range operations
|
|
58
|
-
* const clamped = PositiveFiniteNumber.clamp(-10.5); // PositiveFiniteNumber (MIN_VALUE)
|
|
59
|
-
* const minimum = PositiveFiniteNumber.min(probability, rate); // PositiveFiniteNumber (0.75)
|
|
60
|
-
* const maximum = PositiveFiniteNumber.max(probability, rate); // PositiveFiniteNumber (1.25)
|
|
61
|
-
*
|
|
62
|
-
* // Rounding operations (different return types based on operation)
|
|
63
|
-
* const ceiled = PositiveFiniteNumber.ceil(probability); // PositiveInt (1)
|
|
64
|
-
* const floored = PositiveFiniteNumber.floor(rate); // Uint (1)
|
|
65
|
-
* const rounded = PositiveFiniteNumber.round(rate); // Uint (1)
|
|
34
|
+
* Namespace providing type-safe arithmetic operations for positive finite
|
|
35
|
+
* numbers.
|
|
66
36
|
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
37
|
+
* All operations maintain the positive constraint by clamping non-positive
|
|
38
|
+
* results to MIN_VALUE, while ensuring results remain finite (excluding NaN and
|
|
39
|
+
* Infinity). This type is useful for representing quantities that must always
|
|
40
|
+
* be positive, such as probabilities, magnitudes, and physical measurements.
|
|
71
41
|
*/
|
|
72
42
|
const PositiveFiniteNumber = {
|
|
73
43
|
/**
|
|
74
44
|
* Type guard to check if a value is a PositiveFiniteNumber.
|
|
45
|
+
*
|
|
75
46
|
* @param value The value to check.
|
|
76
|
-
* @returns `true` if the value is a positive finite number, `false`
|
|
47
|
+
* @returns `true` if the value is a positive finite number, `false`
|
|
48
|
+
* otherwise.
|
|
77
49
|
*/
|
|
78
50
|
is,
|
|
79
51
|
/**
|
|
80
52
|
* The minimum value for a positive finite number.
|
|
53
|
+
*
|
|
81
54
|
* @readonly
|
|
82
55
|
*/
|
|
83
56
|
MIN_VALUE,
|
|
84
57
|
/**
|
|
85
58
|
* Returns the smaller of two PositiveFiniteNumber values.
|
|
59
|
+
*
|
|
86
60
|
* @param a The first PositiveFiniteNumber.
|
|
87
61
|
* @param b The second PositiveFiniteNumber.
|
|
88
62
|
* @returns The minimum value as a PositiveFiniteNumber.
|
|
@@ -90,6 +64,7 @@ const PositiveFiniteNumber = {
|
|
|
90
64
|
min: min_,
|
|
91
65
|
/**
|
|
92
66
|
* Returns the larger of two PositiveFiniteNumber values.
|
|
67
|
+
*
|
|
93
68
|
* @param a The first PositiveFiniteNumber.
|
|
94
69
|
* @param b The second PositiveFiniteNumber.
|
|
95
70
|
* @returns The maximum value as a PositiveFiniteNumber.
|
|
@@ -97,35 +72,41 @@ const PositiveFiniteNumber = {
|
|
|
97
72
|
max: max_,
|
|
98
73
|
/**
|
|
99
74
|
* Clamps a number to the positive finite range.
|
|
75
|
+
*
|
|
100
76
|
* @param value The number to clamp.
|
|
101
77
|
* @returns The value clamped to (0, +∞) as a PositiveFiniteNumber.
|
|
102
78
|
*/
|
|
103
79
|
clamp,
|
|
104
80
|
/**
|
|
105
81
|
* Rounds down a PositiveFiniteNumber to the nearest integer.
|
|
82
|
+
*
|
|
106
83
|
* @param x The PositiveFiniteNumber to round down.
|
|
107
84
|
* @returns The floor value as a Uint (can be 0).
|
|
108
85
|
*/
|
|
109
86
|
floor,
|
|
110
87
|
/**
|
|
111
88
|
* Rounds up a PositiveFiniteNumber to the nearest integer.
|
|
89
|
+
*
|
|
112
90
|
* @param x The PositiveFiniteNumber to round up.
|
|
113
91
|
* @returns The ceiling value as a PositiveInt (always >= 1).
|
|
114
92
|
*/
|
|
115
93
|
ceil,
|
|
116
94
|
/**
|
|
117
95
|
* Rounds a PositiveFiniteNumber to the nearest integer.
|
|
96
|
+
*
|
|
118
97
|
* @param x The PositiveFiniteNumber to round.
|
|
119
98
|
* @returns The rounded value as a Uint (can be 0 if x < 0.5).
|
|
120
99
|
*/
|
|
121
100
|
round,
|
|
122
101
|
/**
|
|
123
102
|
* Generates a random PositiveFiniteNumber value.
|
|
103
|
+
*
|
|
124
104
|
* @returns A random positive finite number.
|
|
125
105
|
*/
|
|
126
106
|
random,
|
|
127
107
|
/**
|
|
128
108
|
* Raises a PositiveFiniteNumber to the power of another PositiveFiniteNumber.
|
|
109
|
+
*
|
|
129
110
|
* @param a The base PositiveFiniteNumber.
|
|
130
111
|
* @param b The exponent PositiveFiniteNumber.
|
|
131
112
|
* @returns `a ** b` clamped to (0, +∞) as a PositiveFiniteNumber.
|
|
@@ -133,6 +114,7 @@ const PositiveFiniteNumber = {
|
|
|
133
114
|
pow,
|
|
134
115
|
/**
|
|
135
116
|
* Adds two PositiveFiniteNumber values.
|
|
117
|
+
*
|
|
136
118
|
* @param a The first PositiveFiniteNumber.
|
|
137
119
|
* @param b The second PositiveFiniteNumber.
|
|
138
120
|
* @returns `a + b` clamped to (0, +∞) as a PositiveFiniteNumber.
|
|
@@ -140,13 +122,16 @@ const PositiveFiniteNumber = {
|
|
|
140
122
|
add,
|
|
141
123
|
/**
|
|
142
124
|
* Subtracts one PositiveFiniteNumber from another.
|
|
125
|
+
*
|
|
143
126
|
* @param a The minuend PositiveFiniteNumber.
|
|
144
127
|
* @param b The subtrahend PositiveFiniteNumber.
|
|
145
|
-
* @returns `a - b` clamped to (0, +∞) as a PositiveFiniteNumber (minimum
|
|
128
|
+
* @returns `a - b` clamped to (0, +∞) as a PositiveFiniteNumber (minimum
|
|
129
|
+
* MIN_VALUE).
|
|
146
130
|
*/
|
|
147
131
|
sub,
|
|
148
132
|
/**
|
|
149
133
|
* Multiplies two PositiveFiniteNumber values.
|
|
134
|
+
*
|
|
150
135
|
* @param a The first PositiveFiniteNumber.
|
|
151
136
|
* @param b The second PositiveFiniteNumber.
|
|
152
137
|
* @returns `a * b` clamped to (0, +∞) as a PositiveFiniteNumber.
|
|
@@ -154,6 +139,7 @@ const PositiveFiniteNumber = {
|
|
|
154
139
|
mul,
|
|
155
140
|
/**
|
|
156
141
|
* Divides one PositiveFiniteNumber by another.
|
|
142
|
+
*
|
|
157
143
|
* @param a The dividend PositiveFiniteNumber.
|
|
158
144
|
* @param b The divisor PositiveFiniteNumber.
|
|
159
145
|
* @returns `a / b` clamped to (0, +∞) as a PositiveFiniteNumber.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"positive-finite-number.mjs","sources":["../../../src/number/branded-types/positive-finite-number.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA,MAAM,iBAAiB,GAAG,0BAA0B;AAEpD,MAAM,EACJ,SAAS,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,MAAM,EACN,EAAE,EACF,QAAQ,EACR,KAAK,GACN,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,iBAAiB,CAI3D;IACA,SAAS,EAAE,MAAM,CAAC,SAAS;IAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;IAC3B,iBAAiB;AACT,CAAA,CAAC;AAEX,MAAM,KAAK,GAAG,CACZ,CAAc;AAId;AACA,IAAI,CAAC,KAAK,CACR,CAAC,CAGF;AAEH,MAAM,IAAI,GAAG,CACX,CAAc;AAEd;AACA,IAAI,CAAC,IAAI,CAAC,CAAC,CAA+D;AAE5E,MAAM,KAAK,GAAG,CACZ,CAAc;AAId;AACA,IAAI,CAAC,KAAK,CACR,CAAC,CAGF;AAcH
|
|
1
|
+
{"version":3,"file":"positive-finite-number.mjs","sources":["../../../src/number/branded-types/positive-finite-number.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA,MAAM,iBAAiB,GAAG,0BAA0B;AAEpD,MAAM,EACJ,SAAS,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,MAAM,EACN,EAAE,EACF,QAAQ,EACR,KAAK,GACN,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,iBAAiB,CAI3D;IACA,SAAS,EAAE,MAAM,CAAC,SAAS;IAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;IAC3B,iBAAiB;AACT,CAAA,CAAC;AAEX,MAAM,KAAK,GAAG,CACZ,CAAc;AAId;AACA,IAAI,CAAC,KAAK,CACR,CAAC,CAGF;AAEH,MAAM,IAAI,GAAG,CACX,CAAc;AAEd;AACA,IAAI,CAAC,IAAI,CAAC,CAAC,CAA+D;AAE5E,MAAM,KAAK,GAAG,CACZ,CAAc;AAId;AACA,IAAI,CAAC,KAAK,CACR,CAAC,CAGF;AAcH;;;;;AAKG;AACI,MAAM,sBAAsB,GAAG;AAEtC;;;;;;AAMG;AACI,MAAM,sBAAsB,GAAG;AAEtC;;;;;;;;AAQG;AACI,MAAM,oBAAoB,GAAG;AAClC;;;;;;AAMG;IACH,EAAE;AAEF;;;;AAIG;IACH,SAAS;AAET;;;;;;AAMG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;;AAMG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;AAKG;IACH,KAAK;AAEL;;;;;AAKG;IACH,KAAK;AAEL;;;;;AAKG;IACH,IAAI;AAEJ;;;;;AAKG;IACH,KAAK;AAEL;;;;AAIG;IACH,MAAM;AAEN;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;;AAOG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;;;;;"}
|