ts-data-forge 14.6.2 → 14.6.3

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.
Files changed (182) hide show
  1. package/dist/array/impl/array-utils-creation.mjs +103 -103
  2. package/dist/array/impl/array-utils-element-access.mjs +46 -46
  3. package/dist/array/impl/array-utils-iterators.mjs +54 -54
  4. package/dist/array/impl/array-utils-length-bounded-array-cast.mjs +49 -49
  5. package/dist/array/impl/array-utils-length-bounded-array-guard.mjs +40 -40
  6. package/dist/array/impl/array-utils-length-bounded-tuple-cast.mjs +42 -42
  7. package/dist/array/impl/array-utils-length-bounded-tuple-guard.mjs +46 -46
  8. package/dist/array/impl/array-utils-modification.mjs +4 -4
  9. package/dist/array/impl/array-utils-reducing-value.mjs +11 -11
  10. package/dist/array/impl/array-utils-search.mjs +6 -6
  11. package/dist/array/impl/array-utils-set-op.mjs +116 -116
  12. package/dist/array/impl/array-utils-size.mjs +6 -6
  13. package/dist/array/impl/array-utils-slice-clamped.mjs +1 -1
  14. package/dist/array/impl/array-utils-slicing.mjs +56 -56
  15. package/dist/array/impl/array-utils-transformation.mjs +156 -156
  16. package/dist/array/impl/array-utils-validation.mjs +36 -36
  17. package/dist/collections/imap-mapped.mjs +195 -195
  18. package/dist/collections/imap.mjs +143 -143
  19. package/dist/collections/iset-mapped.mjs +320 -320
  20. package/dist/collections/iset.mjs +207 -207
  21. package/dist/collections/queue.mjs +130 -130
  22. package/dist/collections/stack.mjs +125 -125
  23. package/dist/expect-type.mjs +68 -68
  24. package/dist/functional/async-result/impl/async-result-flat-map.mjs +3 -3
  25. package/dist/functional/async-result/impl/async-result-map-err.mjs +2 -2
  26. package/dist/functional/async-result/impl/async-result-map.mjs +2 -2
  27. package/dist/functional/async-result/impl/async-result-unwrap-or.mjs +31 -31
  28. package/dist/functional/optional/impl/optional-expect-to-be.mjs +1 -1
  29. package/dist/functional/optional/impl/optional-filter.mjs +1 -1
  30. package/dist/functional/optional/impl/optional-flat-map.mjs +1 -1
  31. package/dist/functional/optional/impl/optional-from-nullable.mjs +24 -24
  32. package/dist/functional/optional/impl/optional-is-none.mjs +19 -19
  33. package/dist/functional/optional/impl/optional-is-optional.mjs +18 -18
  34. package/dist/functional/optional/impl/optional-is-some.mjs +20 -20
  35. package/dist/functional/optional/impl/optional-map.mjs +2 -2
  36. package/dist/functional/optional/impl/optional-match.mjs +2 -2
  37. package/dist/functional/optional/impl/optional-none.mjs +16 -16
  38. package/dist/functional/optional/impl/optional-or-else.mjs +1 -1
  39. package/dist/functional/optional/impl/optional-some.mjs +19 -19
  40. package/dist/functional/optional/impl/optional-to-nullable.mjs +26 -26
  41. package/dist/functional/optional/impl/optional-unwrap-or.mjs +1 -1
  42. package/dist/functional/optional/impl/optional-unwrap-throw.mjs +28 -28
  43. package/dist/functional/optional/impl/optional-unwrap.mjs +1 -1
  44. package/dist/functional/optional/impl/optional-zip.mjs +32 -32
  45. package/dist/functional/optional/impl/tag.mjs +1 -1
  46. package/dist/functional/pipe.mjs +19 -19
  47. package/dist/functional/result/impl/result-err.mjs +25 -25
  48. package/dist/functional/result/impl/result-expect-to-be.mjs +2 -2
  49. package/dist/functional/result/impl/result-flat-map.mjs +4 -4
  50. package/dist/functional/result/impl/result-fold.mjs +4 -4
  51. package/dist/functional/result/impl/result-from-optional.mjs +2 -2
  52. package/dist/functional/result/impl/result-from-promise.mjs +34 -34
  53. package/dist/functional/result/impl/result-from-throwable.mjs +29 -29
  54. package/dist/functional/result/impl/result-is-err.mjs +19 -19
  55. package/dist/functional/result/impl/result-is-ok.mjs +19 -19
  56. package/dist/functional/result/impl/result-is-result.mjs +19 -19
  57. package/dist/functional/result/impl/result-map-err.mjs +4 -4
  58. package/dist/functional/result/impl/result-map.mjs +4 -4
  59. package/dist/functional/result/impl/result-match.mjs +3 -3
  60. package/dist/functional/result/impl/result-ok.mjs +25 -25
  61. package/dist/functional/result/impl/result-or-else.mjs +2 -2
  62. package/dist/functional/result/impl/result-safe-try.mjs +15 -15
  63. package/dist/functional/result/impl/result-safe-unwrap.mjs +33 -33
  64. package/dist/functional/result/impl/result-swap.mjs +20 -20
  65. package/dist/functional/result/impl/result-to-optional.mjs +27 -27
  66. package/dist/functional/result/impl/result-unwrap-err-or.mjs +2 -2
  67. package/dist/functional/result/impl/result-unwrap-err-throw.mjs +31 -31
  68. package/dist/functional/result/impl/result-unwrap-err.mjs +30 -30
  69. package/dist/functional/result/impl/result-unwrap-ok-or.mjs +2 -2
  70. package/dist/functional/result/impl/result-unwrap-ok.mjs +1 -1
  71. package/dist/functional/result/impl/result-unwrap-throw.mjs +31 -31
  72. package/dist/functional/result/impl/result-zip.mjs +29 -29
  73. package/dist/functional/result/impl/tag.mjs +1 -1
  74. package/dist/functional/ternary-result/impl/tag.mjs +2 -2
  75. package/dist/functional/ternary-result/impl/ternary-result-err.mjs +13 -13
  76. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs +4 -4
  77. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs +4 -4
  78. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs +18 -18
  79. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs +17 -17
  80. package/dist/functional/ternary-result/impl/ternary-result-is-err.mjs +17 -17
  81. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs +19 -19
  82. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs +19 -19
  83. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs +18 -18
  84. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs +2 -2
  85. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs +3 -3
  86. package/dist/functional/ternary-result/impl/ternary-result-map.mjs +4 -4
  87. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs +14 -14
  88. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs +19 -19
  89. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs +19 -19
  90. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs +17 -17
  91. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs +1 -1
  92. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs +20 -20
  93. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs +18 -18
  94. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs +17 -17
  95. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs +16 -16
  96. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs +31 -31
  97. package/dist/functional/ternary-result/impl/variant-name.mjs +1 -1
  98. package/dist/guard/has-key.mjs +41 -41
  99. package/dist/guard/is-non-empty-string.mjs +37 -37
  100. package/dist/guard/is-non-null-object.mjs +34 -34
  101. package/dist/guard/is-primitive.mjs +31 -31
  102. package/dist/guard/is-record.mjs +86 -86
  103. package/dist/guard/is-type.mjs +387 -387
  104. package/dist/guard/key-is-in.mjs +40 -40
  105. package/dist/iterator/range.mjs +1 -1
  106. package/dist/json/json.mjs +289 -289
  107. package/dist/number/branded-types/finite-number.mjs +116 -116
  108. package/dist/number/branded-types/int.mjs +223 -223
  109. package/dist/number/branded-types/int16.mjs +116 -116
  110. package/dist/number/branded-types/int32.mjs +116 -116
  111. package/dist/number/branded-types/negative-finite-number.mjs +126 -126
  112. package/dist/number/branded-types/negative-int.mjs +104 -104
  113. package/dist/number/branded-types/negative-safe-int.mjs +104 -104
  114. package/dist/number/branded-types/non-negative-finite-number.mjs +132 -132
  115. package/dist/number/branded-types/non-negative-int16.mjs +113 -113
  116. package/dist/number/branded-types/non-negative-int32.mjs +113 -113
  117. package/dist/number/branded-types/non-positive-finite-number.mjs +116 -116
  118. package/dist/number/branded-types/non-positive-int.mjs +97 -97
  119. package/dist/number/branded-types/non-positive-safe-int.mjs +98 -98
  120. package/dist/number/branded-types/non-zero-finite-number.mjs +112 -112
  121. package/dist/number/branded-types/non-zero-int.mjs +82 -82
  122. package/dist/number/branded-types/non-zero-int16.mjs +95 -95
  123. package/dist/number/branded-types/non-zero-int32.mjs +95 -95
  124. package/dist/number/branded-types/non-zero-safe-int.mjs +99 -99
  125. package/dist/number/branded-types/non-zero-uint16.mjs +95 -95
  126. package/dist/number/branded-types/non-zero-uint32.mjs +95 -95
  127. package/dist/number/branded-types/positive-finite-number.mjs +134 -134
  128. package/dist/number/branded-types/positive-int.mjs +237 -237
  129. package/dist/number/branded-types/positive-int16.mjs +110 -110
  130. package/dist/number/branded-types/positive-int32.mjs +110 -110
  131. package/dist/number/branded-types/positive-safe-int.mjs +268 -268
  132. package/dist/number/branded-types/positive-uint16.mjs +110 -110
  133. package/dist/number/branded-types/positive-uint32.mjs +110 -110
  134. package/dist/number/branded-types/safe-int.mjs +259 -259
  135. package/dist/number/branded-types/safe-uint.mjs +111 -111
  136. package/dist/number/branded-types/uint.mjs +225 -225
  137. package/dist/number/branded-types/uint16.mjs +108 -108
  138. package/dist/number/branded-types/uint32.mjs +108 -108
  139. package/dist/number/enum/int8.mjs +118 -118
  140. package/dist/number/enum/uint8.mjs +109 -109
  141. package/dist/number/num-arithmetic-types.mjs +1 -1
  142. package/dist/number/num.mjs +478 -478
  143. package/dist/number/refined-number-utils.mjs +170 -170
  144. package/dist/object/object.mjs +234 -234
  145. package/dist/others/cast-mutable.mjs +33 -33
  146. package/dist/others/cast-readonly.mjs +32 -32
  147. package/dist/others/debounce-function.mjs +13 -13
  148. package/dist/others/fast-deep-equal.mjs +14 -14
  149. package/dist/others/if-then.mjs +29 -29
  150. package/dist/others/tuple.mjs +50 -50
  151. package/dist/others/unknown-to-string.mjs +38 -38
  152. package/dist/promise/promise.mjs +47 -47
  153. package/dist/string/str.mjs +177 -177
  154. package/dist/types.mjs +1 -1
  155. package/package.json +6 -6
  156. package/src/guard/is-type.test.mts +2 -2
  157. package/src/number/branded-types/finite-number.test.mts +1 -1
  158. package/src/number/branded-types/int.test.mts +1 -1
  159. package/src/number/branded-types/int16.test.mts +1 -1
  160. package/src/number/branded-types/int32.test.mts +1 -1
  161. package/src/number/branded-types/non-negative-finite-number.test.mts +1 -1
  162. package/src/number/branded-types/non-negative-int16.test.mts +1 -1
  163. package/src/number/branded-types/non-negative-int32.test.mts +1 -1
  164. package/src/number/branded-types/non-zero-finite-number.test.mts +1 -1
  165. package/src/number/branded-types/non-zero-int.test.mts +1 -1
  166. package/src/number/branded-types/non-zero-int16.test.mts +1 -1
  167. package/src/number/branded-types/non-zero-int32.test.mts +1 -1
  168. package/src/number/branded-types/non-zero-safe-int.test.mts +1 -1
  169. package/src/number/branded-types/non-zero-uint16.test.mts +1 -1
  170. package/src/number/branded-types/non-zero-uint32.test.mts +1 -1
  171. package/src/number/branded-types/positive-finite-number.test.mts +1 -1
  172. package/src/number/branded-types/positive-int.test.mts +1 -1
  173. package/src/number/branded-types/positive-int16.test.mts +1 -1
  174. package/src/number/branded-types/positive-int32.test.mts +1 -1
  175. package/src/number/branded-types/positive-safe-int.test.mts +1 -1
  176. package/src/number/branded-types/positive-uint16.test.mts +1 -1
  177. package/src/number/branded-types/positive-uint32.test.mts +1 -1
  178. package/src/number/branded-types/safe-int.test.mts +1 -1
  179. package/src/number/branded-types/safe-uint.test.mts +1 -1
  180. package/src/number/branded-types/uint.test.mts +1 -1
  181. package/src/number/branded-types/uint16.test.mts +1 -1
  182. package/src/number/branded-types/uint32.test.mts +1 -1
@@ -6,141 +6,141 @@ const { MAX_VALUE, add, castType, fromNumber, is, max: max_, min: min_, pow, ran
6
6
  typeNameInMessage,
7
7
  });
8
8
  const floor = (x) =>
9
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
9
+
10
10
  Math.floor(x);
11
11
  const ceil = (x) =>
12
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
12
+
13
13
  Math.ceil(x);
14
14
  const round = (x) =>
15
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
15
+
16
16
  Math.round(x);
17
- /**
18
- * Type guard that checks if a value is a non-positive finite number.
19
- *
20
- * Returns `true` only for a finite value — never `NaN`, `Infinity`, or
21
- * `-Infinity`.
22
- *
23
- * @param value - The value to check
24
- * @returns `true` if the value is a non-positive finite number, `false` otherwise
25
- */
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
26
  export const isNonPositiveFiniteNumber = is;
27
- /**
28
- * Casts a `number` to the `NonPositiveFiniteNumber` branded type.
29
- *
30
- * Validates that the value is a non-positive finite number and returns it with
31
- * the `NonPositiveFiniteNumber` brand. Throws a `TypeError` otherwise.
32
- *
33
- * @param value - The value to cast
34
- * @returns The value as a `NonPositiveFiniteNumber`
35
- * @throws {TypeError} If the value is not a non-positive finite number
36
- */
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
37
  export const asNonPositiveFiniteNumber = castType;
38
- /**
39
- * Namespace providing type-safe operations for the `NonPositiveFiniteNumber`
40
- * branded type.
41
- *
42
- * The `NonPositiveFiniteNumber` type represents a non-positive finite number.
43
- */
38
+
39
+
40
+
41
+
42
+
43
+
44
44
  export const NonPositiveFiniteNumber = {
45
- /**
46
- * Type guard that checks if a value is a non-positive finite number.
47
- *
48
- * @param value - The value to check
49
- * @returns `true` if the value is a non-positive finite number, `false` otherwise
50
- * @see {@link isNonPositiveFiniteNumber} for usage examples
51
- */
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
52
  is,
53
- /**
54
- * The largest value representable as `NonPositiveFiniteNumber` (the upper
55
- * saturation target of `fromNumber`).
56
- */
53
+
54
+
55
+
56
+
57
57
  MAX_VALUE,
58
- /**
59
- * Returns the smallest of the given non-positive finite numbers.
60
- *
61
- * @param values - The non-positive finite numbers to compare (at least one required)
62
- * @returns The smallest value as a `NonPositiveFiniteNumber`
63
- */
58
+
59
+
60
+
61
+
62
+
63
+
64
64
  min: min_,
65
- /**
66
- * Returns the largest of the given non-positive finite numbers.
67
- *
68
- * @param values - The non-positive finite numbers to compare (at least one required)
69
- * @returns The largest value as a `NonPositiveFiniteNumber`
70
- */
65
+
66
+
67
+
68
+
69
+
70
+
71
71
  max: max_,
72
- /**
73
- * Converts an arbitrary `number` into a `NonPositiveFiniteNumber`, saturating
74
- * it into the range `[MIN_VALUE, MAX_VALUE]`.
75
- *
76
- * Unlike `asNonPositiveFiniteNumber`, this is total: out-of-range inputs are
77
- * clamped to the nearest representable `NonPositiveFiniteNumber` instead of
78
- * throwing.
79
- *
80
- * @param value - The value to convert
81
- * @returns The value as a `NonPositiveFiniteNumber`
82
- */
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
+
83
83
  fromNumber,
84
- /**
85
- * Returns the greatest integer less than or equal to a non-positive finite
86
- * number.
87
- *
88
- * @param a - The non-positive finite number value
89
- * @returns The floored value as an integer
90
- */
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
91
  floor,
92
- /**
93
- * Returns the smallest integer greater than or equal to a non-positive finite
94
- * number.
95
- *
96
- * @param a - The non-positive finite number value
97
- * @returns The ceiled value as an integer
98
- */
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
99
  ceil,
100
- /**
101
- * Returns the value of a non-positive finite number rounded to the nearest
102
- * integer.
103
- *
104
- * @param a - The non-positive finite number value
105
- * @returns The rounded value as an integer
106
- */
100
+
101
+
102
+
103
+
104
+
105
+
106
+
107
107
  round,
108
- /**
109
- * Generates a random `NonPositiveFiniteNumber` within the given range.
110
- *
111
- * The range is inclusive on both ends.
112
- *
113
- * @param min - The minimum value (inclusive)
114
- * @param max - The maximum value (inclusive)
115
- * @returns A random `NonPositiveFiniteNumber` in `[min, max]`
116
- */
108
+
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
117
  random,
118
- /**
119
- * Raises `a` to the power `b`, returning `a ** b` as a
120
- * `NonPositiveFiniteNumber`.
121
- *
122
- * @param a - The base non-positive finite number
123
- * @param b - The exponent non-positive finite number
124
- * @returns `a ** b` as a `NonPositiveFiniteNumber`
125
- */
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
126
  pow,
127
- /**
128
- * Adds two non-positive finite numbers, returning `a + b` as a
129
- * `NonPositiveFiniteNumber`.
130
- *
131
- * @param a - The first non-positive finite number
132
- * @param b - The second non-positive finite number
133
- * @returns The sum of `a` and `b` as a `NonPositiveFiniteNumber`
134
- */
127
+
128
+
129
+
130
+
131
+
132
+
133
+
134
+
135
135
  add,
136
- /**
137
- * Subtracts two non-positive finite numbers, returning `a - b` as a
138
- * `NonPositiveFiniteNumber`.
139
- *
140
- * @param a - The first non-positive finite number
141
- * @param b - The second non-positive finite number
142
- * @returns The difference of `a` and `b` as a `NonPositiveFiniteNumber`
143
- */
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+
144
144
  sub,
145
145
  };
146
146
  //# sourceMappingURL=non-positive-finite-number.mjs.map
@@ -6,114 +6,114 @@ const { MAX_VALUE, add, castType, fromNumber, is, max: max_, min: min_, pow, ran
6
6
  MAX_VALUE: 0,
7
7
  typeNameInMessage,
8
8
  });
9
- /**
10
- * Type guard that checks if a value is a non-positive integer.
11
- *
12
- * Returns `true` for a non-positive integer — a value with no fractional
13
- * component, including values outside the safe integer range (unlike
14
- * `SafeInt`).
15
- *
16
- * @param value - The value to check
17
- * @returns `true` if the value is a non-positive integer, `false` otherwise
18
- */
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
19
  export const isNonPositiveInt = is;
20
- /**
21
- * Casts a `number` to the `NonPositiveInt` branded type.
22
- *
23
- * Validates that the value is a non-positive integer and returns it with the
24
- * `NonPositiveInt` brand. Throws a `TypeError` otherwise.
25
- *
26
- * @param value - The value to cast
27
- * @returns The value as a `NonPositiveInt`
28
- * @throws {TypeError} If the value is not a non-positive integer
29
- */
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
30
  export const asNonPositiveInt = castType;
31
- /**
32
- * Namespace providing type-safe operations for the `NonPositiveInt` branded
33
- * type.
34
- *
35
- * The `NonPositiveInt` type represents a non-positive integer. Division (`div`)
36
- * uses floor division.
37
- *
38
- * Unlike `SafeInt`, `NonPositiveInt` allows values outside the safe integer
39
- * range (±2^53 − 1), so very large magnitudes may lose precision in
40
- * JavaScript's `number` type.
41
- */
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
42
  export const NonPositiveInt = {
43
- /**
44
- * Type guard that checks if a value is a non-positive integer.
45
- *
46
- * @param value - The value to check
47
- * @returns `true` if the value is a non-positive integer, `false` otherwise
48
- * @see {@link isNonPositiveInt} for usage examples
49
- */
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
50
  is,
51
- /**
52
- * The largest value representable as `NonPositiveInt` (the upper saturation
53
- * target of `fromNumber`).
54
- */
51
+
52
+
53
+
54
+
55
55
  MAX_VALUE,
56
- /**
57
- * Returns the smallest of the given non-positive integers.
58
- *
59
- * @param values - The non-positive integers to compare (at least one required)
60
- * @returns The smallest value as a `NonPositiveInt`
61
- */
56
+
57
+
58
+
59
+
60
+
61
+
62
62
  min: min_,
63
- /**
64
- * Returns the largest of the given non-positive integers.
65
- *
66
- * @param values - The non-positive integers to compare (at least one required)
67
- * @returns The largest value as a `NonPositiveInt`
68
- */
63
+
64
+
65
+
66
+
67
+
68
+
69
69
  max: max_,
70
- /**
71
- * Converts an arbitrary `number` into a `NonPositiveInt`, rounding to the
72
- * nearest integer and saturating the result into the range `[MIN_VALUE,
73
- * MAX_VALUE]`.
74
- *
75
- * Unlike `asNonPositiveInt`, this is total: out-of-range inputs are clamped
76
- * to the nearest representable `NonPositiveInt` instead of throwing.
77
- *
78
- * @param value - The value to convert
79
- * @returns The value as a `NonPositiveInt`
80
- */
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
81
  fromNumber,
82
- /**
83
- * Generates a random `NonPositiveInt` within the given range.
84
- *
85
- * The range is inclusive on both ends.
86
- *
87
- * @param min - The minimum value (inclusive)
88
- * @param max - The maximum value (inclusive)
89
- * @returns A random `NonPositiveInt` in `[min, max]`
90
- */
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
91
  random,
92
- /**
93
- * Raises `a` to the power `b`, returning `a ** b` as a `NonPositiveInt`
94
- * (floored to an integer).
95
- *
96
- * @param a - The base non-positive integer
97
- * @param b - The exponent non-positive integer
98
- * @returns `a ** b` as a `NonPositiveInt`
99
- */
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+
100
100
  pow,
101
- /**
102
- * Adds two non-positive integers, returning `a + b` as a `NonPositiveInt`.
103
- *
104
- * @param a - The first non-positive integer
105
- * @param b - The second non-positive integer
106
- * @returns The sum of `a` and `b` as a `NonPositiveInt`
107
- */
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
108
  add,
109
- /**
110
- * Subtracts two non-positive integers, returning `a - b` as a
111
- * `NonPositiveInt`.
112
- *
113
- * @param a - The first non-positive integer
114
- * @param b - The second non-positive integer
115
- * @returns The difference of `a` and `b` as a `NonPositiveInt`
116
- */
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
117
  sub,
118
118
  };
119
119
  //# sourceMappingURL=non-positive-int.mjs.map
@@ -6,116 +6,116 @@ const { MAX_VALUE, MIN_VALUE, add, castType, fromNumber, is, max: max_, min: min
6
6
  MAX_VALUE: 0,
7
7
  typeNameInMessage,
8
8
  });
9
- /**
10
- * Type guard that checks if a value is a non-positive safe integer.
11
- *
12
- * Returns `true` for a non-positive safe integer — a value with no fractional
13
- * component.
14
- *
15
- * @param value - The value to check
16
- * @returns `true` if the value is a non-positive safe integer, `false` otherwise
17
- */
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
18
  export const isNonPositiveSafeInt = is;
19
- /**
20
- * Casts a `number` to the `NonPositiveSafeInt` branded type.
21
- *
22
- * Validates that the value is a non-positive safe integer and returns it with
23
- * the `NonPositiveSafeInt` brand. Throws a `TypeError` otherwise.
24
- *
25
- * @param value - The value to cast
26
- * @returns The value as a `NonPositiveSafeInt`
27
- * @throws {TypeError} If the value is not a non-positive safe integer
28
- */
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
29
  export const asNonPositiveSafeInt = castType;
30
- /**
31
- * Namespace providing type-safe operations for the `NonPositiveSafeInt` branded
32
- * type.
33
- *
34
- * The `NonPositiveSafeInt` type represents a non-positive safe integer.
35
- * Division (`div`) uses floor division.
36
- */
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
37
  export const NonPositiveSafeInt = {
38
- /**
39
- * Type guard that checks if a value is a non-positive safe integer.
40
- *
41
- * @param value - The value to check
42
- * @returns `true` if the value is a non-positive safe integer, `false` otherwise
43
- * @see {@link isNonPositiveSafeInt} for usage examples
44
- */
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
45
  is,
46
- /**
47
- * The smallest value representable as `NonPositiveSafeInt` (the lower
48
- * saturation target of `fromNumber`).
49
- */
46
+
47
+
48
+
49
+
50
50
  MIN_VALUE,
51
- /**
52
- * The largest value representable as `NonPositiveSafeInt` (the upper
53
- * saturation target of `fromNumber`).
54
- */
51
+
52
+
53
+
54
+
55
55
  MAX_VALUE,
56
- /**
57
- * Returns the smallest of the given non-positive safe integers.
58
- *
59
- * @param values - The non-positive safe integers to compare (at least one required)
60
- * @returns The smallest value as a `NonPositiveSafeInt`
61
- */
56
+
57
+
58
+
59
+
60
+
61
+
62
62
  min: min_,
63
- /**
64
- * Returns the largest of the given non-positive safe integers.
65
- *
66
- * @param values - The non-positive safe integers to compare (at least one required)
67
- * @returns The largest value as a `NonPositiveSafeInt`
68
- */
63
+
64
+
65
+
66
+
67
+
68
+
69
69
  max: max_,
70
- /**
71
- * Converts an arbitrary `number` into a `NonPositiveSafeInt`, rounding to the
72
- * nearest integer and saturating the result into the range `[MIN_VALUE,
73
- * MAX_VALUE]`.
74
- *
75
- * Unlike `asNonPositiveSafeInt`, this is total: out-of-range inputs are
76
- * clamped to the nearest representable `NonPositiveSafeInt` instead of
77
- * throwing.
78
- *
79
- * @param value - The value to convert
80
- * @returns The value as a `NonPositiveSafeInt`
81
- */
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
82
  fromNumber,
83
- /**
84
- * Generates a random `NonPositiveSafeInt` within the given range.
85
- *
86
- * The range is inclusive on both ends.
87
- *
88
- * @param min - The minimum value (inclusive)
89
- * @param max - The maximum value (inclusive)
90
- * @returns A random `NonPositiveSafeInt` in `[min, max]`
91
- */
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
92
  random,
93
- /**
94
- * Raises `a` to the power `b`, returning `a ** b` as a `NonPositiveSafeInt`
95
- * (floored to an integer).
96
- *
97
- * @param a - The base non-positive safe integer
98
- * @param b - The exponent non-positive safe integer
99
- * @returns `a ** b` as a `NonPositiveSafeInt`
100
- */
93
+
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
101
  pow,
102
- /**
103
- * Adds two non-positive safe integers, returning `a + b` as a
104
- * `NonPositiveSafeInt`.
105
- *
106
- * @param a - The first non-positive safe integer
107
- * @param b - The second non-positive safe integer
108
- * @returns The sum of `a` and `b` as a `NonPositiveSafeInt`
109
- */
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
110
  add,
111
- /**
112
- * Subtracts two non-positive safe integers, returning `a - b` as a
113
- * `NonPositiveSafeInt`.
114
- *
115
- * @param a - The first non-positive safe integer
116
- * @param b - The second non-positive safe integer
117
- * @returns The difference of `a` and `b` as a `NonPositiveSafeInt`
118
- */
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
119
  sub,
120
120
  };
121
121
  //# sourceMappingURL=non-positive-safe-int.mjs.map