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
|
@@ -5,41 +5,37 @@ import { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
|
5
5
|
* A safe integer is an integer that can be exactly represented in JavaScript
|
|
6
6
|
* without precision loss. The range is [±(2^53 - 1)].
|
|
7
7
|
*
|
|
8
|
-
* @param value - The value to check
|
|
9
|
-
* @returns `true` if the value is a safe integer, `false` otherwise
|
|
10
|
-
*
|
|
11
8
|
* @example
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* isSafeInt(Number.MAX_SAFE_INTEGER);
|
|
15
|
-
* isSafeInt(Number.MAX_SAFE_INTEGER +
|
|
16
|
-
*
|
|
17
|
-
* isSafeInt(NaN); // false
|
|
9
|
+
*
|
|
10
|
+
* ```ts
|
|
11
|
+
* assert.ok(isSafeInt(Number.MAX_SAFE_INTEGER));
|
|
12
|
+
* assert.notOk(isSafeInt(Number.MAX_SAFE_INTEGER + 0.5));
|
|
13
|
+
* assert.ok(SafeInt.is(Number.MIN_SAFE_INTEGER));
|
|
18
14
|
* ```
|
|
15
|
+
*
|
|
16
|
+
* @param value - The value to check
|
|
17
|
+
* @returns `true` if the value is a safe integer, `false` otherwise
|
|
19
18
|
*/
|
|
20
19
|
export declare const isSafeInt: (a: number) => a is SafeInt;
|
|
21
20
|
/**
|
|
22
21
|
* Casts a number to a SafeInt branded type.
|
|
23
22
|
*
|
|
24
23
|
* This function validates that the input is a safe integer (within ±(2^53 - 1))
|
|
25
|
-
* and returns it with the SafeInt brand. This ensures type safety for
|
|
26
|
-
* that require precise integer arithmetic.
|
|
27
|
-
*
|
|
28
|
-
* @param value - The value to cast
|
|
29
|
-
* @returns The value as a SafeInt branded type
|
|
30
|
-
* @throws {TypeError} If the value is not a safe integer
|
|
24
|
+
* and returns it with the SafeInt brand. This ensures type safety for
|
|
25
|
+
* operations that require precise integer arithmetic.
|
|
31
26
|
*
|
|
32
27
|
* @example
|
|
33
|
-
* ```typescript
|
|
34
|
-
* const x = asSafeInt(5); // SafeInt
|
|
35
|
-
* const y = asSafeInt(-1000); // SafeInt
|
|
36
|
-
* const z = asSafeInt(2**50); // SafeInt (within range)
|
|
37
28
|
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
29
|
+
* ```ts
|
|
30
|
+
* const branded = asSafeInt(123);
|
|
31
|
+
*
|
|
32
|
+
* assert(branded === 123);
|
|
33
|
+
* assert.ok(SafeInt.is(branded));
|
|
42
34
|
* ```
|
|
35
|
+
*
|
|
36
|
+
* @param value - The value to cast
|
|
37
|
+
* @returns The value as a SafeInt branded type
|
|
38
|
+
* @throws {TypeError} If the value is not a safe integer
|
|
43
39
|
*/
|
|
44
40
|
export declare const asSafeInt: <N extends number>(x: N) => number & {
|
|
45
41
|
readonly NaNValue: false;
|
|
@@ -57,132 +53,149 @@ export declare const asSafeInt: <N extends number>(x: N) => number & {
|
|
|
57
53
|
* approximately ±9 quadrillion.
|
|
58
54
|
*
|
|
59
55
|
* All operations automatically clamp results to stay within the safe range,
|
|
60
|
-
* preventing precision loss that occurs with larger integers. This makes
|
|
61
|
-
* ideal for:
|
|
56
|
+
* preventing precision loss that occurs with larger integers. This makes
|
|
57
|
+
* SafeInt ideal for:
|
|
58
|
+
*
|
|
62
59
|
* - Financial calculations requiring exact cents
|
|
63
60
|
* - Database IDs and counters
|
|
64
61
|
* - Array indices and sizes
|
|
65
62
|
* - Any integer arithmetic requiring precision guarantees
|
|
66
|
-
*
|
|
67
|
-
* @example
|
|
68
|
-
* ```typescript
|
|
69
|
-
* // Near the boundary
|
|
70
|
-
* const nearMax = asSafeInt(9007199254740990);
|
|
71
|
-
* const increment = asSafeInt(10);
|
|
72
|
-
*
|
|
73
|
-
* // Automatic clamping prevents precision loss
|
|
74
|
-
* const sum = SafeInt.add(nearMax, increment); // Clamped to MAX_SAFE_INTEGER
|
|
75
|
-
* const product = SafeInt.mul(nearMax, increment); // Clamped to MAX_SAFE_INTEGER
|
|
76
|
-
*
|
|
77
|
-
* // Safe operations
|
|
78
|
-
* const a = asSafeInt(1000000);
|
|
79
|
-
* const b = asSafeInt(500);
|
|
80
|
-
*
|
|
81
|
-
* const diff = SafeInt.sub(a, b); // SafeInt (999500)
|
|
82
|
-
* const quotient = SafeInt.div(a, b); // SafeInt (2000)
|
|
83
|
-
* const power = SafeInt.pow(b, asSafeInt(2)); // SafeInt (250000)
|
|
84
|
-
*
|
|
85
|
-
* // Utility operations
|
|
86
|
-
* const absolute = SafeInt.abs(asSafeInt(-42)); // SafeInt (42)
|
|
87
|
-
* const clamped = SafeInt.clamp(2**60); // SafeInt (MAX_SAFE_INTEGER)
|
|
88
|
-
*
|
|
89
|
-
* // Random generation
|
|
90
|
-
* const die = SafeInt.random(asSafeInt(1), asSafeInt(6)); // Random 1-6
|
|
91
|
-
* ```
|
|
92
63
|
*/
|
|
93
64
|
export declare const SafeInt: {
|
|
94
65
|
/**
|
|
95
66
|
* Type guard that checks if a value is a safe integer.
|
|
96
67
|
*
|
|
68
|
+
* @example
|
|
69
|
+
*
|
|
70
|
+
* ```ts
|
|
71
|
+
* assert.ok(isSafeInt(Number.MAX_SAFE_INTEGER));
|
|
72
|
+
* assert.notOk(isSafeInt(Number.MAX_SAFE_INTEGER + 0.5));
|
|
73
|
+
* assert.ok(SafeInt.is(Number.MIN_SAFE_INTEGER));
|
|
74
|
+
* ```
|
|
75
|
+
*
|
|
97
76
|
* @param value - The value to check
|
|
98
77
|
* @returns `true` if the value is a safe integer, `false` otherwise
|
|
99
|
-
*
|
|
100
78
|
* @see {@link isSafeInt} for usage examples
|
|
101
79
|
*/
|
|
102
80
|
readonly is: (a: number) => a is SafeInt;
|
|
103
81
|
/**
|
|
104
82
|
* The minimum safe integer value (-(2^53 - 1)).
|
|
83
|
+
*
|
|
105
84
|
* @readonly
|
|
106
85
|
*/
|
|
107
86
|
readonly MIN_VALUE: SafeInt;
|
|
108
87
|
/**
|
|
109
88
|
* The maximum safe integer value (2^53 - 1).
|
|
89
|
+
*
|
|
110
90
|
* @readonly
|
|
111
91
|
*/
|
|
112
92
|
readonly MAX_VALUE: SafeUint;
|
|
113
93
|
/**
|
|
114
94
|
* Returns the absolute value of a safe integer.
|
|
115
95
|
*
|
|
116
|
-
* Note: `Math.abs(MIN_SAFE_INTEGER)` would exceed `MAX_SAFE_INTEGER`,
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
* @param a - The safe integer value
|
|
120
|
-
* @returns The absolute value as a SafeInt, clamped if necessary
|
|
96
|
+
* Note: `Math.abs(MIN_SAFE_INTEGER)` would exceed `MAX_SAFE_INTEGER`, so this
|
|
97
|
+
* function clamps the result to maintain the safe integer guarantee.
|
|
121
98
|
*
|
|
122
99
|
* @example
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
* SafeInt.abs(
|
|
100
|
+
*
|
|
101
|
+
* ```ts
|
|
102
|
+
* const negative = asSafeInt(-900);
|
|
103
|
+
* const absolute = SafeInt.abs(negative);
|
|
104
|
+
*
|
|
105
|
+
* assert(absolute === 900);
|
|
106
|
+
* assert.ok(SafeInt.is(absolute));
|
|
127
107
|
* ```
|
|
108
|
+
*
|
|
109
|
+
* @param a - The safe integer value
|
|
110
|
+
* @returns The absolute value as a SafeInt, clamped if necessary
|
|
128
111
|
*/
|
|
129
112
|
readonly abs: (x: WithSmallInt<SafeInt, 40>) => TsDataForgeInternals.RefinedNumberUtils.ToNonNegative<SafeInt>;
|
|
130
113
|
/**
|
|
131
114
|
* Returns the minimum value from a list of safe integers.
|
|
132
115
|
*
|
|
133
|
-
* @param values - The safe integers to compare (at least one required)
|
|
134
|
-
* @returns The smallest value as a SafeInt
|
|
135
|
-
*
|
|
136
116
|
* @example
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
* SafeInt.min(asSafeInt(
|
|
117
|
+
*
|
|
118
|
+
* ```ts
|
|
119
|
+
* const smallest = SafeInt.min(asSafeInt(25), asSafeInt(-14), asSafeInt(99));
|
|
120
|
+
*
|
|
121
|
+
* assert(smallest === -14);
|
|
140
122
|
* ```
|
|
123
|
+
*
|
|
124
|
+
* @param values - The safe integers to compare (at least one required)
|
|
125
|
+
* @returns The smallest value as a SafeInt
|
|
141
126
|
*/
|
|
142
127
|
readonly min: (...values: readonly WithSmallInt<SafeInt, 40>[]) => SafeInt;
|
|
143
128
|
/**
|
|
144
129
|
* Returns the maximum value from a list of safe integers.
|
|
145
130
|
*
|
|
146
|
-
* @param values - The safe integers to compare (at least one required)
|
|
147
|
-
* @returns The largest value as a SafeInt
|
|
148
|
-
*
|
|
149
131
|
* @example
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
-
* SafeInt.max(asSafeInt(
|
|
132
|
+
*
|
|
133
|
+
* ```ts
|
|
134
|
+
* const largest = SafeInt.max(asSafeInt(25), asSafeInt(-14), asSafeInt(99));
|
|
135
|
+
*
|
|
136
|
+
* assert(largest === 99);
|
|
153
137
|
* ```
|
|
138
|
+
*
|
|
139
|
+
* @param values - The safe integers to compare (at least one required)
|
|
140
|
+
* @returns The largest value as a SafeInt
|
|
154
141
|
*/
|
|
155
142
|
readonly max: (...values: readonly WithSmallInt<SafeInt, 40>[]) => SafeInt;
|
|
156
143
|
/**
|
|
157
144
|
* Clamps a number to the safe integer range.
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
*
|
|
148
|
+
* ```ts
|
|
149
|
+
* const aboveRange = SafeInt.clamp(1e20);
|
|
150
|
+
* const withinRange = SafeInt.clamp(123);
|
|
151
|
+
* const belowRange = SafeInt.clamp(-1e20);
|
|
152
|
+
*
|
|
153
|
+
* assert(aboveRange === Number.MAX_SAFE_INTEGER);
|
|
154
|
+
* assert(withinRange === 123);
|
|
155
|
+
* assert(belowRange === Number.MIN_SAFE_INTEGER);
|
|
156
|
+
* ```
|
|
157
|
+
*
|
|
158
158
|
* @param value The number to clamp.
|
|
159
|
-
* @returns The value clamped to [MIN_SAFE_INTEGER, MAX_SAFE_INTEGER] as a
|
|
159
|
+
* @returns The value clamped to [MIN_SAFE_INTEGER, MAX_SAFE_INTEGER] as a
|
|
160
|
+
* SafeInt.
|
|
160
161
|
*/
|
|
161
162
|
readonly clamp: (x: number) => SafeInt;
|
|
162
163
|
/**
|
|
163
164
|
* Generates a random safe integer within the specified range (inclusive).
|
|
164
165
|
*
|
|
165
|
-
* The range is inclusive on both ends. If min > max, they are automatically
|
|
166
|
-
*
|
|
167
|
-
* @param min - The minimum value (inclusive)
|
|
168
|
-
* @param max - The maximum value (inclusive)
|
|
169
|
-
* @returns A random SafeInt in the range [min, max]
|
|
166
|
+
* The range is inclusive on both ends. If min > max, they are automatically
|
|
167
|
+
* swapped.
|
|
170
168
|
*
|
|
171
169
|
* @example
|
|
172
|
-
* ```typescript
|
|
173
|
-
* // Dice roll
|
|
174
|
-
* const d20 = SafeInt.random(asSafeInt(1), asSafeInt(20));
|
|
175
170
|
*
|
|
176
|
-
*
|
|
177
|
-
* const
|
|
171
|
+
* ```ts
|
|
172
|
+
* const min = asSafeInt(-10);
|
|
173
|
+
* const max = asSafeInt(10);
|
|
174
|
+
* const randomValue = SafeInt.random(min, max);
|
|
178
175
|
*
|
|
179
|
-
*
|
|
180
|
-
*
|
|
176
|
+
* assert.ok(SafeInt.is(randomValue));
|
|
177
|
+
* assert.ok(randomValue >= -10 && randomValue <= 10);
|
|
181
178
|
* ```
|
|
179
|
+
*
|
|
180
|
+
* @param min - The minimum value (inclusive)
|
|
181
|
+
* @param max - The maximum value (inclusive)
|
|
182
|
+
* @returns A random SafeInt in the range [min, max]
|
|
182
183
|
*/
|
|
183
184
|
readonly random: (min?: WithSmallInt<SafeInt, 40> | undefined, max?: WithSmallInt<SafeInt, 40> | undefined) => SafeInt;
|
|
184
185
|
/**
|
|
185
186
|
* Raises a SafeInt to the power of another SafeInt.
|
|
187
|
+
*
|
|
188
|
+
* @example
|
|
189
|
+
*
|
|
190
|
+
* ```ts
|
|
191
|
+
* const base = asSafeInt(3);
|
|
192
|
+
* const exponent = asSafeInt(5);
|
|
193
|
+
* const power = SafeInt.pow(base, exponent);
|
|
194
|
+
*
|
|
195
|
+
* assert(power === 243);
|
|
196
|
+
* assert.ok(SafeInt.is(power));
|
|
197
|
+
* ```
|
|
198
|
+
*
|
|
186
199
|
* @param a The base SafeInt.
|
|
187
200
|
* @param b The exponent SafeInt.
|
|
188
201
|
* @returns `a ** b` clamped to safe integer range as a SafeInt.
|
|
@@ -190,6 +203,16 @@ export declare const SafeInt: {
|
|
|
190
203
|
readonly pow: (x: WithSmallInt<SafeInt, 40>, y: WithSmallInt<SafeInt, 40>) => SafeInt;
|
|
191
204
|
/**
|
|
192
205
|
* Adds two SafeInt values.
|
|
206
|
+
*
|
|
207
|
+
* @example
|
|
208
|
+
*
|
|
209
|
+
* ```ts
|
|
210
|
+
* const sum = SafeInt.add(asSafeInt(9), asSafeInt(4));
|
|
211
|
+
*
|
|
212
|
+
* assert(sum === 13);
|
|
213
|
+
* assert.ok(SafeInt.is(sum));
|
|
214
|
+
* ```
|
|
215
|
+
*
|
|
193
216
|
* @param a The first SafeInt.
|
|
194
217
|
* @param b The second SafeInt.
|
|
195
218
|
* @returns `a + b` clamped to safe integer range as a SafeInt.
|
|
@@ -197,6 +220,16 @@ export declare const SafeInt: {
|
|
|
197
220
|
readonly add: (x: WithSmallInt<SafeInt, 40>, y: WithSmallInt<SafeInt, 40>) => SafeInt;
|
|
198
221
|
/**
|
|
199
222
|
* Subtracts one SafeInt from another.
|
|
223
|
+
*
|
|
224
|
+
* @example
|
|
225
|
+
*
|
|
226
|
+
* ```ts
|
|
227
|
+
* const difference = SafeInt.sub(asSafeInt(9), asSafeInt(14));
|
|
228
|
+
*
|
|
229
|
+
* assert(difference === -5);
|
|
230
|
+
* assert.ok(SafeInt.is(difference));
|
|
231
|
+
* ```
|
|
232
|
+
*
|
|
200
233
|
* @param a The minuend SafeInt.
|
|
201
234
|
* @param b The subtrahend SafeInt.
|
|
202
235
|
* @returns `a - b` clamped to safe integer range as a SafeInt.
|
|
@@ -204,6 +237,16 @@ export declare const SafeInt: {
|
|
|
204
237
|
readonly sub: (x: WithSmallInt<SafeInt, 40>, y: WithSmallInt<SafeInt, 40>) => SafeInt;
|
|
205
238
|
/**
|
|
206
239
|
* Multiplies two SafeInt values.
|
|
240
|
+
*
|
|
241
|
+
* @example
|
|
242
|
+
*
|
|
243
|
+
* ```ts
|
|
244
|
+
* const product = SafeInt.mul(asSafeInt(-8), asSafeInt(7));
|
|
245
|
+
*
|
|
246
|
+
* assert(product === -56);
|
|
247
|
+
* assert.ok(SafeInt.is(product));
|
|
248
|
+
* ```
|
|
249
|
+
*
|
|
207
250
|
* @param a The first SafeInt.
|
|
208
251
|
* @param b The second SafeInt.
|
|
209
252
|
* @returns `a * b` clamped to safe integer range as a SafeInt.
|
|
@@ -212,23 +255,21 @@ export declare const SafeInt: {
|
|
|
212
255
|
/**
|
|
213
256
|
* Divides one SafeInt by another using floor division.
|
|
214
257
|
*
|
|
215
|
-
* Performs mathematical floor division: `⌊a / b⌋`.
|
|
216
|
-
*
|
|
258
|
+
* Performs mathematical floor division: `⌊a / b⌋`. The divisor must be
|
|
259
|
+
* non-zero (enforced by type constraints).
|
|
260
|
+
*
|
|
261
|
+
* @example
|
|
262
|
+
*
|
|
263
|
+
* ```ts
|
|
264
|
+
* const quotient = SafeInt.div(asSafeInt(-17), asSafeInt(5));
|
|
265
|
+
*
|
|
266
|
+
* assert(quotient === -4);
|
|
267
|
+
* assert.ok(SafeInt.is(quotient));
|
|
268
|
+
* ```
|
|
217
269
|
*
|
|
218
270
|
* @param a - The dividend
|
|
219
271
|
* @param b - The divisor (must be non-zero)
|
|
220
272
|
* @returns The integer quotient as a SafeInt
|
|
221
|
-
*
|
|
222
|
-
* @example
|
|
223
|
-
* ```typescript
|
|
224
|
-
* SafeInt.div(asSafeInt(10), asSafeInt(3)); // SafeInt (3)
|
|
225
|
-
* SafeInt.div(asSafeInt(-10), asSafeInt(3)); // SafeInt (-4)
|
|
226
|
-
*
|
|
227
|
-
* // Large number division
|
|
228
|
-
* const large = asSafeInt(1000000000000);
|
|
229
|
-
* const divisor = asSafeInt(1000000);
|
|
230
|
-
* SafeInt.div(large, divisor); // SafeInt (1000000)
|
|
231
|
-
* ```
|
|
232
273
|
*/
|
|
233
274
|
readonly div: (x: WithSmallInt<SafeInt, 40>, y: 1 | 2 | 3 | 32 | 4 | 5 | 6 | 7 | 8 | 9 | 11 | 10 | 24 | 14 | 34 | 12 | 13 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 33 | 35 | 36 | 37 | 38 | 39 | -1 | -2 | -3 | -32 | -4 | -5 | -6 | -7 | -8 | -9 | -11 | -10 | -24 | -14 | -34 | -12 | -13 | -15 | -16 | -17 | -18 | -19 | -20 | -21 | -22 | -23 | -25 | -26 | -27 | -28 | -29 | -30 | -31 | -33 | -35 | -36 | -37 | -38 | -39 | -40 | NormalizeBrandUnion<number & {
|
|
234
275
|
readonly NaNValue: false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/safe-int.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAkCnE
|
|
1
|
+
{"version":3,"file":"safe-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/safe-int.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAkCnE;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,SAAS,6BAAK,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,SAAS;;;;;;;MAAW,CAAC;AAElC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,OAAO;IAClB;;;;;;;;;;;;;;OAcG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;;;;;;;;;;;;;OAkBG;;IAGH;;;;;;;;;;;;;OAaG;;IAGH;;;;;;;;;;;;;OAaG;;IAGH;;;;;;;;;;;;;;;;;;OAkBG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;;;;;OAiBG;;IAGH;;;;;;;;;;;;;;;OAeG;;IAGH;;;;;;;;;;;;;;;OAeG;;IAGH;;;;;;;;;;;;;;;OAeG;;IAGH;;;;;;;;;;;;;;;;;;OAkBG;;;;;;;;;;CAEK,CAAC"}
|