ts-data-forge 6.13.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/README.md +2 -2
  2. package/dist/array/impl/array-utils-iterators.mjs +6 -0
  3. package/dist/array/impl/array-utils-iterators.mjs.map +1 -1
  4. package/dist/array/impl/array-utils-modification.mjs +6 -0
  5. package/dist/array/impl/array-utils-modification.mjs.map +1 -1
  6. package/dist/array/impl/array-utils-reducing-value.mjs +6 -0
  7. package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
  8. package/dist/array/impl/array-utils-search.mjs +6 -0
  9. package/dist/array/impl/array-utils-search.mjs.map +1 -1
  10. package/dist/array/impl/array-utils-slice-clamped.mjs +6 -0
  11. package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -1
  12. package/dist/array/impl/array-utils-slicing.mjs +6 -0
  13. package/dist/array/impl/array-utils-slicing.mjs.map +1 -1
  14. package/dist/array/impl/array-utils-transformation.mjs +6 -0
  15. package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
  16. package/dist/array/impl/array-utils-validation.mjs +6 -0
  17. package/dist/array/impl/array-utils-validation.mjs.map +1 -1
  18. package/dist/collections/imap-mapped.mjs +6 -0
  19. package/dist/collections/imap-mapped.mjs.map +1 -1
  20. package/dist/collections/imap.mjs +6 -0
  21. package/dist/collections/imap.mjs.map +1 -1
  22. package/dist/collections/iset-mapped.mjs +6 -0
  23. package/dist/collections/iset-mapped.mjs.map +1 -1
  24. package/dist/collections/iset.mjs +6 -0
  25. package/dist/collections/iset.mjs.map +1 -1
  26. package/dist/collections/queue.mjs +6 -0
  27. package/dist/collections/queue.mjs.map +1 -1
  28. package/dist/collections/stack.mjs +6 -0
  29. package/dist/collections/stack.mjs.map +1 -1
  30. package/dist/entry-point.mjs +6 -0
  31. package/dist/entry-point.mjs.map +1 -1
  32. package/dist/functional/pipe.d.mts +6 -18
  33. package/dist/functional/pipe.d.mts.map +1 -1
  34. package/dist/functional/pipe.mjs +35 -15
  35. package/dist/functional/pipe.mjs.map +1 -1
  36. package/dist/index.mjs +6 -0
  37. package/dist/index.mjs.map +1 -1
  38. package/dist/iterator/range.mjs +6 -0
  39. package/dist/iterator/range.mjs.map +1 -1
  40. package/dist/json/json.mjs +6 -0
  41. package/dist/json/json.mjs.map +1 -1
  42. package/dist/number/branded-types/finite-number.d.mts +1 -1
  43. package/dist/number/branded-types/index.d.mts +6 -0
  44. package/dist/number/branded-types/index.d.mts.map +1 -1
  45. package/dist/number/branded-types/index.mjs +6 -0
  46. package/dist/number/branded-types/index.mjs.map +1 -1
  47. package/dist/number/branded-types/int.d.mts +1 -2
  48. package/dist/number/branded-types/int.d.mts.map +1 -1
  49. package/dist/number/branded-types/int16.d.mts +2 -3
  50. package/dist/number/branded-types/int16.d.mts.map +1 -1
  51. package/dist/number/branded-types/int32.d.mts +2 -3
  52. package/dist/number/branded-types/int32.d.mts.map +1 -1
  53. package/dist/number/branded-types/negative-finite-number.d.mts +143 -0
  54. package/dist/number/branded-types/negative-finite-number.d.mts.map +1 -0
  55. package/dist/number/branded-types/negative-finite-number.mjs +156 -0
  56. package/dist/number/branded-types/negative-finite-number.mjs.map +1 -0
  57. package/dist/number/branded-types/negative-int.d.mts +120 -0
  58. package/dist/number/branded-types/negative-int.d.mts.map +1 -0
  59. package/dist/number/branded-types/negative-int.mjs +125 -0
  60. package/dist/number/branded-types/negative-int.mjs.map +1 -0
  61. package/dist/number/branded-types/negative-safe-int.d.mts +132 -0
  62. package/dist/number/branded-types/negative-safe-int.d.mts.map +1 -0
  63. package/dist/number/branded-types/negative-safe-int.mjs +136 -0
  64. package/dist/number/branded-types/negative-safe-int.mjs.map +1 -0
  65. package/dist/number/branded-types/non-negative-finite-number.d.mts +1 -1
  66. package/dist/number/branded-types/non-negative-int16.d.mts +1 -1
  67. package/dist/number/branded-types/non-negative-int32.d.mts +1 -1
  68. package/dist/number/branded-types/non-positive-finite-number.d.mts +130 -0
  69. package/dist/number/branded-types/non-positive-finite-number.d.mts.map +1 -0
  70. package/dist/number/branded-types/non-positive-finite-number.mjs +134 -0
  71. package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -0
  72. package/dist/number/branded-types/non-positive-int.d.mts +224 -0
  73. package/dist/number/branded-types/non-positive-int.d.mts.map +1 -0
  74. package/dist/number/branded-types/non-positive-int.mjs +222 -0
  75. package/dist/number/branded-types/non-positive-int.mjs.map +1 -0
  76. package/dist/number/branded-types/non-positive-safe-int.d.mts +119 -0
  77. package/dist/number/branded-types/non-positive-safe-int.d.mts.map +1 -0
  78. package/dist/number/branded-types/non-positive-safe-int.mjs +116 -0
  79. package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -0
  80. package/dist/number/branded-types/non-zero-finite-number.d.mts +5 -17
  81. package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
  82. package/dist/number/branded-types/non-zero-finite-number.mjs +5 -17
  83. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
  84. package/dist/number/branded-types/non-zero-int.d.mts +5 -33
  85. package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
  86. package/dist/number/branded-types/non-zero-int.mjs +5 -25
  87. package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
  88. package/dist/number/branded-types/non-zero-int16.d.mts +6 -43
  89. package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
  90. package/dist/number/branded-types/non-zero-int16.mjs +5 -25
  91. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
  92. package/dist/number/branded-types/non-zero-int32.d.mts +6 -39
  93. package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
  94. package/dist/number/branded-types/non-zero-int32.mjs +5 -25
  95. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
  96. package/dist/number/branded-types/non-zero-safe-int.d.mts +5 -37
  97. package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
  98. package/dist/number/branded-types/non-zero-safe-int.mjs +5 -28
  99. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
  100. package/dist/number/branded-types/non-zero-uint16.d.mts +6 -33
  101. package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
  102. package/dist/number/branded-types/non-zero-uint16.mjs +5 -17
  103. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
  104. package/dist/number/branded-types/non-zero-uint32.d.mts +6 -31
  105. package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
  106. package/dist/number/branded-types/non-zero-uint32.mjs +5 -17
  107. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
  108. package/dist/number/branded-types/positive-finite-number.d.mts +4 -2
  109. package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
  110. package/dist/number/branded-types/positive-int.d.mts +4 -2
  111. package/dist/number/branded-types/positive-int.d.mts.map +1 -1
  112. package/dist/number/branded-types/positive-int16.d.mts +4 -2
  113. package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
  114. package/dist/number/branded-types/positive-int32.d.mts +4 -2
  115. package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
  116. package/dist/number/branded-types/positive-safe-int.d.mts +4 -2
  117. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
  118. package/dist/number/branded-types/positive-uint16.d.mts +4 -2
  119. package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
  120. package/dist/number/branded-types/positive-uint32.d.mts +4 -2
  121. package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
  122. package/dist/number/branded-types/safe-int.d.mts +1 -2
  123. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  124. package/dist/number/branded-types/safe-uint.d.mts +1 -1
  125. package/dist/number/branded-types/uint.d.mts +1 -1
  126. package/dist/number/branded-types/uint16.d.mts +1 -1
  127. package/dist/number/branded-types/uint32.d.mts +1 -1
  128. package/dist/number/index.d.mts +1 -0
  129. package/dist/number/index.d.mts.map +1 -1
  130. package/dist/number/index.mjs +6 -0
  131. package/dist/number/index.mjs.map +1 -1
  132. package/dist/number/num-arithmetic-types.d.mts +74 -0
  133. package/dist/number/num-arithmetic-types.d.mts.map +1 -0
  134. package/dist/number/num-arithmetic-types.mjs +2 -0
  135. package/dist/number/num-arithmetic-types.mjs.map +1 -0
  136. package/dist/number/num.d.mts +53 -9
  137. package/dist/number/num.d.mts.map +1 -1
  138. package/dist/number/num.mjs +64 -12
  139. package/dist/number/num.mjs.map +1 -1
  140. package/dist/number/refined-number-utils.d.mts +12 -9
  141. package/dist/number/refined-number-utils.d.mts.map +1 -1
  142. package/dist/number/refined-number-utils.mjs.map +1 -1
  143. package/dist/object/object.mjs +6 -0
  144. package/dist/object/object.mjs.map +1 -1
  145. package/package.json +5 -2
  146. package/src/functional/pipe.mts +104 -78
  147. package/src/functional/pipe.test.mts +57 -1
  148. package/src/number/branded-types/index.mts +6 -0
  149. package/src/number/branded-types/negative-finite-number.mts +210 -0
  150. package/src/number/branded-types/negative-finite-number.test.mts +172 -0
  151. package/src/number/branded-types/negative-int.mts +160 -0
  152. package/src/number/branded-types/negative-int.test.mts +146 -0
  153. package/src/number/branded-types/negative-safe-int.mts +173 -0
  154. package/src/number/branded-types/negative-safe-int.test.mts +120 -0
  155. package/src/number/branded-types/non-positive-finite-number.mts +191 -0
  156. package/src/number/branded-types/non-positive-finite-number.test.mts +286 -0
  157. package/src/number/branded-types/non-positive-int.mts +251 -0
  158. package/src/number/branded-types/non-positive-int.test.mts +197 -0
  159. package/src/number/branded-types/non-positive-safe-int.mts +147 -0
  160. package/src/number/branded-types/non-positive-safe-int.test.mts +223 -0
  161. package/src/number/branded-types/non-zero-finite-number.mts +14 -22
  162. package/src/number/branded-types/non-zero-finite-number.test.mts +0 -12
  163. package/src/number/branded-types/non-zero-int.mts +10 -32
  164. package/src/number/branded-types/non-zero-int.test.mts +0 -20
  165. package/src/number/branded-types/non-zero-int16.mts +8 -32
  166. package/src/number/branded-types/non-zero-int16.test.mts +0 -30
  167. package/src/number/branded-types/non-zero-int32.mts +8 -32
  168. package/src/number/branded-types/non-zero-int32.test.mts +0 -30
  169. package/src/number/branded-types/non-zero-safe-int.mts +8 -35
  170. package/src/number/branded-types/non-zero-safe-int.test.mts +0 -32
  171. package/src/number/branded-types/non-zero-uint16.mts +8 -22
  172. package/src/number/branded-types/non-zero-uint16.test.mts +0 -16
  173. package/src/number/branded-types/non-zero-uint32.mts +8 -22
  174. package/src/number/branded-types/non-zero-uint32.test.mts +0 -16
  175. package/src/number/index.mts +1 -0
  176. package/src/number/num-arithmetic-types.mts +269 -0
  177. package/src/number/num-arithmetic-types.test.mts +130 -0
  178. package/src/number/num-arithmetic.test.mts +102 -0
  179. package/src/number/num.mts +96 -15
  180. package/src/number/refined-number-utils.mts +19 -9
  181. package/src/others/map-nullable.test.mts +3 -4
@@ -1,6 +1,7 @@
1
1
  import { type Decrement, type FiniteNumber, type Increment, type Index, type Int, type Min, type NaNType, type NegativeIndex, type NonNegativeNumber, type NonZeroNumber, type PositiveNumber, type PositiveSafeIntWithSmallInt, type RelaxedExclude, type SmallInt, type SmallUint } from 'ts-type-forge';
2
2
  import { Result } from '../functional/index.mjs';
3
3
  import { type SmallPositiveInt } from '../types.mjs';
4
+ import { type AddResult, type DivIntResult, type DivResult, type MulResult, type SubResult } from './num-arithmetic-types.mjs';
4
5
  /**
5
6
  * Namespace providing utility functions for number manipulation and validation.
6
7
  *
@@ -395,17 +396,60 @@ export declare namespace Num {
395
396
  export function clamp(target: number, lowerBound: number, upperBound: number): number;
396
397
  export function clamp(lowerBound: number, upperBound: number): (target: number) => number;
397
398
  /**
398
- * Performs type-safe division with compile-time zero-check.
399
+ * Adds two numbers, returning the tightest sound branded result type.
400
+ *
401
+ * The sign of the result is computed exactly (e.g. a non-negative plus a
402
+ * non-negative is non-negative); the integer/finite level is preserved, with
403
+ * `SafeInt` operands widening to `Int` because the sum may exceed the safe
404
+ * range. No clamping is performed — for a result that stays inside a bounded
405
+ * type, use that type's branded `add` instead.
406
+ *
407
+ * @param a - The first addend.
408
+ * @param b - The second addend.
409
+ * @returns `a + b`, typed as the tightest branded type guaranteed to contain
410
+ * it.
411
+ */
412
+ export const add: <A extends number, B extends number>(a: A, b: B) => AddResult<A, B>;
413
+ /**
414
+ * Subtracts `b` from `a`, returning the tightest sound branded result type.
399
415
  *
400
- * This function leverages TypeScript's type system to prevent division by
401
- * zero at compile time. The divisor must be typed as NonZeroNumber or a
402
- * non-zero numeric literal.
416
+ * The sign is computed exactly; the level is preserved (with `SafeInt`
417
+ * widening to `Int`). No clamping — for saturating subtraction that stays in a
418
+ * bounded type (e.g. `Uint.sub` clamping at `0`), use that type's branded
419
+ * `sub`.
403
420
  *
404
- * @param a - The dividend
405
- * @param b - The divisor (must be non-zero, enforced by types)
406
- * @returns The quotient of a / b
421
+ * @param a - The minuend.
422
+ * @param b - The subtrahend.
423
+ * @returns `a - b`, typed as the tightest branded type guaranteed to contain
424
+ * it.
425
+ */
426
+ export const sub: <A extends number, B extends number>(a: A, b: B) => SubResult<A, B>;
427
+ /**
428
+ * Multiplies two numbers, returning the tightest sound branded result type.
429
+ *
430
+ * The sign follows the usual product rule (e.g. negative times negative is
431
+ * positive); the level is preserved (with `SafeInt` widening to `Int`). No
432
+ * clamping.
433
+ *
434
+ * @param a - The first factor.
435
+ * @param b - The second factor.
436
+ * @returns `a * b`, typed as the tightest branded type guaranteed to contain
437
+ * it.
438
+ */
439
+ export const mul: <A extends number, B extends number>(a: A, b: B) => MulResult<A, B>;
440
+ /**
441
+ * Performs type-safe exact division with a compile-time zero-check.
442
+ *
443
+ * The divisor must be typed as `NonZeroNumber` or a non-zero numeric literal.
444
+ * The result sign follows the quotient rule; because exact division can be
445
+ * fractional, the level is `finite` (or `number`).
446
+ *
447
+ * @param a - The dividend.
448
+ * @param b - The divisor (must be non-zero, enforced by types).
449
+ * @returns `a / b`, typed as the tightest branded type guaranteed to contain
450
+ * it.
407
451
  */
408
- export const div: (a: number, b: NonZeroNumber | SmallInt<"!=0">) => number;
452
+ export const div: <A extends number, B extends NonZeroNumber | SmallInt<"!=0">>(a: A, b: B) => DivResult<A, B>;
409
453
  /**
410
454
  * Performs integer division using floor division.
411
455
  *
@@ -419,7 +463,7 @@ export declare namespace Num {
419
463
  * @param b - The divisor
420
464
  * @returns The integer quotient, or `NaN` if b is zero
421
465
  */
422
- export const divInt: (a: number, b: NonZeroNumber | SmallInt<"!=0">) => number;
466
+ export const divInt: <A extends number, B extends NonZeroNumber | SmallInt<"!=0">>(a: A, b: B) => DivIntResult<A, B>;
423
467
  /**
424
468
  * Rounds a number to a specified number of decimal places.
425
469
  *
@@ -1 +1 @@
1
- {"version":3,"file":"num.d.mts","sourceRoot":"","sources":["../../src/number/num.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"num.d.mts","sourceRoot":"","sources":["../../src/number/num.mts"],"names":[],"mappings":"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"}
@@ -381,19 +381,68 @@ var Num;
381
381
  }
382
382
  Num.clamp = clamp;
383
383
  /**
384
- * Performs type-safe division with compile-time zero-check.
384
+ * Adds two numbers, returning the tightest sound branded result type.
385
+ *
386
+ * The sign of the result is computed exactly (e.g. a non-negative plus a
387
+ * non-negative is non-negative); the integer/finite level is preserved, with
388
+ * `SafeInt` operands widening to `Int` because the sum may exceed the safe
389
+ * range. No clamping is performed — for a result that stays inside a bounded
390
+ * type, use that type's branded `add` instead.
391
+ *
392
+ * @param a - The first addend.
393
+ * @param b - The second addend.
394
+ * @returns `a + b`, typed as the tightest branded type guaranteed to contain
395
+ * it.
396
+ */
397
+ Num.add = (a, b) =>
398
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
399
+ (a + b);
400
+ /**
401
+ * Subtracts `b` from `a`, returning the tightest sound branded result type.
385
402
  *
386
- * This function leverages TypeScript's type system to prevent division by
387
- * zero at compile time. The divisor must be typed as NonZeroNumber or a
388
- * non-zero numeric literal.
403
+ * The sign is computed exactly; the level is preserved (with `SafeInt`
404
+ * widening to `Int`). No clamping — for saturating subtraction that stays in a
405
+ * bounded type (e.g. `Uint.sub` clamping at `0`), use that type's branded
406
+ * `sub`.
389
407
  *
390
- * @param a - The dividend
391
- * @param b - The divisor (must be non-zero, enforced by types)
392
- * @returns The quotient of a / b
408
+ * @param a - The minuend.
409
+ * @param b - The subtrahend.
410
+ * @returns `a - b`, typed as the tightest branded type guaranteed to contain
411
+ * it.
412
+ */
413
+ Num.sub = (a, b) =>
414
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
415
+ (a - b);
416
+ /**
417
+ * Multiplies two numbers, returning the tightest sound branded result type.
418
+ *
419
+ * The sign follows the usual product rule (e.g. negative times negative is
420
+ * positive); the level is preserved (with `SafeInt` widening to `Int`). No
421
+ * clamping.
422
+ *
423
+ * @param a - The first factor.
424
+ * @param b - The second factor.
425
+ * @returns `a * b`, typed as the tightest branded type guaranteed to contain
426
+ * it.
427
+ */
428
+ Num.mul = (a, b) =>
429
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
430
+ (a * b);
431
+ /**
432
+ * Performs type-safe exact division with a compile-time zero-check.
433
+ *
434
+ * The divisor must be typed as `NonZeroNumber` or a non-zero numeric literal.
435
+ * The result sign follows the quotient rule; because exact division can be
436
+ * fractional, the level is `finite` (or `number`).
437
+ *
438
+ * @param a - The dividend.
439
+ * @param b - The divisor (must be non-zero, enforced by types).
440
+ * @returns `a / b`, typed as the tightest branded type guaranteed to contain
441
+ * it.
393
442
  */
394
443
  Num.div = (a, b) =>
395
- // eslint-disable-next-line total-functions/no-partial-division
396
- a / b;
444
+ // eslint-disable-next-line total-functions/no-partial-division, total-functions/no-unsafe-type-assertion
445
+ (a / b);
397
446
  /**
398
447
  * Performs integer division using floor division.
399
448
  *
@@ -407,9 +456,12 @@ var Num;
407
456
  * @param b - The divisor
408
457
  * @returns The integer quotient, or `NaN` if b is zero
409
458
  */
410
- Num.divInt = (a, b) =>
411
- // eslint-disable-next-line total-functions/no-partial-division
412
- Math.floor(Math.floor(a) / Math.floor(b));
459
+ Num.divInt = (a, b) => {
460
+ // eslint-disable-next-line total-functions/no-partial-division
461
+ const quotient = Math.floor(Math.floor(a) / Math.floor(b));
462
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
463
+ return quotient;
464
+ };
413
465
  /**
414
466
  * Rounds a number to a specified number of decimal places.
415
467
  *
@@ -1 +1 @@
1
- {"version":3,"file":"num.mjs","sources":["../../src/number/num.mts"],"sourcesContent":[null],"names":["Result.err","Result.ok"],"mappings":"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"}
1
+ {"version":3,"file":"num.mjs","sources":["../../src/number/num.mts"],"sourcesContent":[null],"names":["Result.err","Result.ok"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type Brand, type ChangeBaseBrand, type GetBrandValuePart, type Int, type IntersectBrand, type NonNegativeNumber, type NonZeroNumber, type RelaxedExclude, type TypeEq, type UnknownBrand, type UnwrapBrandFalseKeys, type UnwrapBrandTrueKeys, type WithSmallInt } from 'ts-type-forge';
1
+ import { type Brand, type ChangeBaseBrand, type GetBrandValuePart, type Int, type IntersectBrand, type NonNegativeNumber, type NonZeroNumber, type PositiveNumber, type RelaxedExclude, type TypeEq, type UnknownBrand, type UnwrapBrandFalseKeys, type UnwrapBrandTrueKeys, type WithSmallInt } from 'ts-type-forge';
2
2
  /** @internal */
3
3
  export declare namespace TsDataForgeInternals {
4
4
  /**
@@ -40,7 +40,7 @@ export declare namespace TsDataForgeInternals {
40
40
  * @template N - A branded number type
41
41
  * @internal
42
42
  */
43
- export type ToNonNegative<N extends UnknownNumberBrand> = IntersectBrand<N, NonNegativeNumber>;
43
+ export type ToNonNegative<N extends UnknownNumberBrand> = '!=0' extends UnwrapBrandTrueKeys<N> ? IntersectBrand<N, PositiveNumber> : IntersectBrand<N, NonNegativeNumber>;
44
44
  /**
45
45
  * Removes the non-zero brand constraint from a branded number type. Used
46
46
  * when operations may produce zero values.
@@ -48,7 +48,7 @@ export declare namespace TsDataForgeInternals {
48
48
  * @template N - A branded number type
49
49
  * @internal
50
50
  */
51
- export type RemoveNonZeroBrandKey<N extends UnknownNumberBrand> = Brand<GetBrandValuePart<N>, RelaxedExclude<UnwrapBrandTrueKeys<N>, '!=0'> & string, UnwrapBrandFalseKeys<N> & string>;
51
+ export type RemoveNonZeroBrandKey<N extends UnknownNumberBrand> = Brand<GetBrandValuePart<N>, RelaxedExclude<UnwrapBrandTrueKeys<N>, '!=0'> & string, RelaxedExclude<UnwrapBrandFalseKeys<N>, '<=0' | '>=0'> & string>;
52
52
  type CastToInt<N> = N extends Int ? N : never;
53
53
  /**
54
54
  * Generates a type-safe API for a branded number type based on its
@@ -66,7 +66,9 @@ export declare namespace TsDataForgeInternals {
66
66
  * 'positive' | 'range'
67
67
  * @internal
68
68
  */
69
- export type NumberClass<N extends UnknownNumberBrand, classes extends 'int' | 'non-negative' | 'positive' | 'range'> = ('int' extends classes ? unknown : 'positive' extends classes ? Readonly<{
69
+ /** The closed binary arithmetic operations a branded namespace may expose. */
70
+ export type NumberClassBinOp = 'add' | 'div' | 'mul' | 'sub';
71
+ export type NumberClass<N extends UnknownNumberBrand, classes extends 'int' | 'non-negative' | 'positive' | 'range', binOps extends NumberClassBinOp = NumberClassBinOp> = ('int' extends classes ? unknown : 'positive' extends classes ? Readonly<{
70
72
  floor: (x: N, y: N) => RemoveNonZeroBrandKey<ToInt<N>>;
71
73
  ceil: (x: N, y: N) => ToInt<N>;
72
74
  round: (x: N, y: N) => RemoveNonZeroBrandKey<ToInt<N>>;
@@ -86,16 +88,17 @@ export declare namespace TsDataForgeInternals {
86
88
  MIN_VALUE: number;
87
89
  MAX_VALUE: number;
88
90
  clamp: (a: number) => N;
89
- }> : unknown) & Readonly<{
91
+ }> : unknown) & Pick<Readonly<{
92
+ add: (x: N, y: N) => N;
93
+ sub: (x: N, y: N) => N;
94
+ mul: (x: N, y: N) => N;
95
+ div: (x: N, y: ToNonZero<N>) => N;
96
+ }>, binOps> & Readonly<{
90
97
  is: (a: number) => a is N;
91
98
  min: (...values: readonly N[]) => N;
92
99
  max: (...values: readonly N[]) => N;
93
100
  random: (min: N, max: N) => N;
94
101
  pow: (x: N, y: N) => N;
95
- add: (x: N, y: N) => N;
96
- sub: (x: N, y: N) => N;
97
- mul: (x: N, y: N) => N;
98
- div: (x: N, y: ToNonZero<N>) => N;
99
102
  }>;
100
103
  type OperatorsForInteger<ElementType extends Int, MIN_VALUE extends number, MAX_VALUE extends number, ElementTypeWithSmallInt extends WithSmallInt<ElementType> = WithSmallInt<ElementType>> = Readonly<{
101
104
  MIN_VALUE: MIN_VALUE;
@@ -1 +1 @@
1
- {"version":3,"file":"refined-number-utils.d.mts","sourceRoot":"","sources":["../../src/number/refined-number-utils.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refined-number-utils.d.mts","sourceRoot":"","sources":["../../src/number/refined-number-utils.mts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"refined-number-utils.mjs","sources":["../../src/number/refined-number-utils.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAmBA;IACiB;AAAjB,CAAA,UAAiB,oBAAoB,EAAA;AAuBnC,IAAA,CAAA,UAAiB,kBAAkB,EAAA;AACjC,QAAA,MAAM,YAAY,GAChB,CACE,EAAmC,EACnC,sBAA8B,KAEhC,CAAmB,CAAI,KAAqB;AAC1C,YAAA,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;gBACV,MAAM,IAAI,SAAS,CAAC,CAAA,SAAA,EAAY,sBAAsB,CAAA,OAAA,EAAU,CAAC,CAAA,CAAE,CAAC;;AAGtE,YAAA,OAAO,CAAC;AACV,QAAA,CAAC;QAiBH,MAAM,SAAS,GAAG,CAChB,CAAI,KACsB,CAAC,KAAK,CAAC;QA2InC,MAAM,eAAe,GAAG,CACtB,GAAuB,EACvB,GAAuB,KAEvB,GAAG,KAAK;cACJ,GAAG,KAAK;AACR,kBAAE;kBACA,CAAC,CAAC,KAAK,CAAC,IAAI;cACd,GAAG,KAAK;kBACN,CAAC,CAAC,KAAK,GAAG,IAAI;kBACd,GAAG,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;QAExC,MAAM,kBAAkB,GAAG,CACzB,GAAuB,EACvB,GAAuB,KAEvB,GAAG,KAAK;cACJ,GAAG,KAAK;AACR,kBAAE;AACF,kBAAE,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;cACxB,GAAG,KAAK;AACR,kBAAE,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;kBACtB,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;AA8D3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEG;AACU,QAAA,kBAAA,CAAA,mBAAmB,GAAG,CAIjC,EACA,oBAAoB,EACpB,OAAO,EACP,SAAS,EACT,SAAS,EACT,iBAAiB,GAOjB,KAA4D;YAG5D,MAAM,EAAE,GAAG,CAAC,CAAS,KACnB,CAAC,oBAAoB,KAAK;AACxB,kBAAE,MAAM,CAAC,SAAS,CAAC,CAAC;AACpB,kBAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAC3B,iBAAC,OAAO,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AACnC,iBAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;YAEtD,MAAM,QAAQ,GAAG,YAAY,CAAc,EAAE,EAAE,iBAAiB,CAAC;AAEjE,YAAA,MAAM,KAAK,GAA6C,IAAI,CAC1D,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CACzC,CAAC,WAAW,CACX,CAAC,EAAE,KACD,CAAC,CAAS,KACR,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAChC,CAAC,KAAK;AAEP,YAAA,MAAM,aAAa,GAA+B,KAAK,IAAI,QAAQ;AAEnE,YAAA,MAAM,GAAG,GAAG,CAAC,CAA0B;;YAErC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAA+B;AAE1D,YAAA,MAAM,IAAI,GAAG,CACX,GAAG,MAA0C,KAC7B,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;AAEpD,YAAA,MAAM,IAAI,GAAG,CACX,GAAG,MAA0C,KAC7B,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;AAEpD,YAAA,MAAM,GAAG,GAAG,CACV,CAA0B,EAC1B,CAA0B,KACV,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC;AAEvC,YAAA,MAAM,GAAG,GAAG,CACV,CAA0B,EAC1B,CAA0B,KACV,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC;AAEtC,YAAA,MAAM,GAAG,GAAG,CACV,CAA0B,EAC1B,CAA0B,KACV,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC;AAEtC,YAAA,MAAM,GAAG,GAAG,CACV,CAA0B,EAC1B,CAA0B,KACV,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC;AAEtC,YAAA,MAAM,GAAG,GAAG,CACV,CAA0B,EAC1B,CAAwC,KAExC,aAAa,CACX,IAAI,CAAC,KAAK;;AAER,YAAA,CAAC,GAAG,CAAC,CACN,CACF;AAEH,YAAA,MAAM,UAAU,GAAG,CACjB,GAAA,GAAc,SAAS,EACvB,GAAA,GAAc,SAAS,KAEvB,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;;AAGlE,YAAA,MAAM,MAAM,GAAG,CACb,GAA6B,EAC7B,GAA6B,KACb,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAErD,YAAA,MAAM,aAAa,GAAG,CACpB,GAA6B,EAC7B,GAA6B,KACd;gBACf,OAAO,IAAI,EAAE;oBACX,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;AAE9B,oBAAA,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AAAE,wBAAA,OAAO,aAAa,CAAC,CAAC,CAAC;;AAEjD,YAAA,CAAC;YAED,OAAO;gBACL,SAAS;gBACT,SAAS;gBACT,EAAE;gBACF,GAAG;AACH,gBAAA,GAAG,EAAE,IAAI;AACT,gBAAA,GAAG,EAAE,IAAI;gBACT,GAAG;gBACH,GAAG;gBACH,GAAG;gBACH,GAAG;gBACH,GAAG;gBACH,MAAM;gBACN,aAAa;gBACb,QAAQ;gBAER,KAAK;;gBAEH,KAE8B;aACxB;AACZ,QAAA,CAAC;AA8BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEG;AACU,QAAA,kBAAA,CAAA,iBAAiB,GAAG,CAI/B,EACA,OAAO,EACP,SAAS,EACT,SAAS,EACT,iBAAiB,GAMjB,KAA0D;AAC1D,YAAA,MAAM,EAAE,GAAG,CAAC,CAAS,KACnB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClB,iBAAC,OAAO,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AACnC,iBAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;YAEtD,MAAM,QAAQ,GAAG,YAAY,CAAc,EAAE,EAAE,iBAAiB,CAAC;AAEjE,YAAA,MAAM,KAAK,GAA6C,IAAI,CAC1D,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CACzC,CAAC,WAAW,CACX,CAAC,EAAE,KACD,CAAC,CAAS,KACR,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CACpB,CAAC,KAAK;AAEP,YAAA,MAAM,aAAa,GAA+B,KAAK,IAAI,QAAQ;AAEnE,YAAA,MAAM,GAAG,GAAG,CAAC,CAAc;;AAEzB,YAAA,IAAI,CAAC,GAAG,CAAC,CAAC,CAA+B;AAE3C,YAAA,MAAM,IAAI,GAAG,CAAC,GAAG,MAA8B,KAC7C,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;AAEpC,YAAA,MAAM,IAAI,GAAG,CAAC,GAAG,MAA8B,KAC7C,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;AAEpC,YAAA,MAAM,GAAG,GAAG,CAAC,CAAc,EAAE,CAAc,KACzC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC;AAEvB,YAAA,MAAM,GAAG,GAAG,CAAC,CAAc,EAAE,CAAc,KACzC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC;AAEtB,YAAA,MAAM,GAAG,GAAG,CAAC,CAAc,EAAE,CAAc,KACzC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC;AAEtB,YAAA,MAAM,GAAG,GAAG,CAAC,CAAc,EAAE,CAAc,KACzC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC;AAEtB,YAAA,MAAM,GAAG,GAAG,CAAC,CAAc,EAAE,CAAyB;;AAEpD,YAAA,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC;AAEtB,YAAA,MAAM,UAAU,GAAG,CACjB,GAAA,GAAc,SAAS,EACvB,GAAA,GAAc,SAAS,KACZ,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;AAE7D,YAAA,MAAM,MAAM,GAAG,CAAC,GAAiB,EAAE,GAAiB,KAClD,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAErC,YAAA,MAAM,aAAa,GAAG,CACpB,GAAiB,EACjB,GAAiB,KACF;gBACf,OAAO,IAAI,EAAE;oBACX,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;oBAE1B,IAAI,SAAS,CAAC,CAAC,CAAC;AAAE,wBAAA,OAAO,CAAC;;AAE9B,YAAA,CAAC;YAED,OAAO;gBACL,SAAS;gBACT,SAAS;gBACT,EAAE;gBACF,GAAG;AACH,gBAAA,GAAG,EAAE,IAAI;AACT,gBAAA,GAAG,EAAE,IAAI;gBACT,GAAG;gBACH,GAAG;gBACH,GAAG;gBACH,GAAG;gBACH,GAAG;gBACH,MAAM;gBACN,aAAa;gBACb,QAAQ;;AAGR,gBAAA,KAAK,EAAE,KAEuB;aACtB;AACZ,QAAA,CAAC;AACH,IAAA,CAAC,EAzoBgB,oBAAA,CAAA,kBAAkB,KAAlB,uCAAkB,GAAA,EAAA,CAAA,CAAA;AA0oBrC,CAAC,EAjqBgB,oBAAoB,KAApB,oBAAoB,GAAA,EAAA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"refined-number-utils.mjs","sources":["../../src/number/refined-number-utils.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -2,9 +2,15 @@ import '../number/branded-types/finite-number.mjs';
2
2
  import '../number/branded-types/int.mjs';
3
3
  import '../number/branded-types/int16.mjs';
4
4
  import '../number/branded-types/int32.mjs';
5
+ import '../number/branded-types/negative-finite-number.mjs';
6
+ import '../number/branded-types/negative-int.mjs';
7
+ import '../number/branded-types/negative-safe-int.mjs';
5
8
  import '../number/branded-types/non-negative-finite-number.mjs';
6
9
  import '../number/branded-types/non-negative-int16.mjs';
7
10
  import '../number/branded-types/non-negative-int32.mjs';
11
+ import '../number/branded-types/non-positive-finite-number.mjs';
12
+ import '../number/branded-types/non-positive-int.mjs';
13
+ import '../number/branded-types/non-positive-safe-int.mjs';
8
14
  import '../number/branded-types/non-zero-finite-number.mjs';
9
15
  import '../number/branded-types/non-zero-int.mjs';
10
16
  import '../number/branded-types/non-zero-int16.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"object.mjs","sources":["../../src/object/object.mts"],"sourcesContent":[null],"names":["Arr.isNonEmpty"],"mappings":"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"}
1
+ {"version":3,"file":"object.mjs","sources":["../../src/object/object.mts"],"sourcesContent":[null],"names":["Arr.isNonEmpty"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA;;;;;;;AAOG;AACG,IAAW;AAAjB,CAAA,UAAiB,GAAG,EAAA;AAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCG;IACU,GAAA,CAAA,SAAS,GAAG,CACvB,CAAgB,EAChB,CAAgB,EAChB,EAAA,GAA0C,MAAM,CAAC,EAAE,KACxC;QACX,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAElC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAElC,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;AAAE,YAAA,OAAO,KAAK;QAErD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,IAAA,CAAC;IAyDD,SAAgB,IAAI,CAIlB,GAAG,IAA8D,EAAA;AAIjE,QAAA,QAAQ,IAAI,CAAC,MAAM;YACjB,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;AAE3B,gBAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAU,IAAI,CAAC;gBAEtC;;AAEE,gBAAA,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAClD;YAEd;YAEA,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI;gBAEnB,OAAO,CAAC,MAAS,KAAK,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;YAC1C;;IAEJ;AA5BgB,IAAA,GAAA,CAAA,IAAI,OA4BnB;IAyDD,SAAgB,IAAI,CAIlB,GAAG,IAEwC,EAAA;AAI3C,QAAA,QAAQ,IAAI,CAAC,MAAM;YACjB,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;AAE3B,gBAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAU,IAAI,CAAC;gBAEtC;;AAEE,gBAAA,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACnD;YAEd;YAEA,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI;gBAEnB,OAAO,CAA2B,MAAU,KAAI;;oBAE9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,IAA6B,CAGxD;AAED,oBAAA,OAAO,MAAM;AACf,gBAAA,CAAC;YACH;;IAEJ;AAtCgB,IAAA,GAAA,CAAA,IAAI,OAsCnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CG;AACU,IAAA,GAAA,CAAA,WAAW,GAAG,CAGzB,OAAgB;;AAWhB,IAAA,MAAM,CAAC,WAAW,CAAC,OAAO,CAAU;AAEtC;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACU,IAAA,GAAA,CAAA,KAAK,GAAG,CACnB,GAAG,OAAgB;;IAGnB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAU;IAwCxE,SAAgB,QAAQ,CAItB,GAAG,IAA8D,EAAA;AAEjE,QAAA,QAAQ,IAAI,CAAC,MAAM;YACjB,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;gBAE3B;;AAEE,gBAAA,YAAY,CAAC,MAAM,EAAE,IAAI,CAAU;YAEvC;YAEA,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI;gBAEnB,OAAO,CAAC,MAAS,KAAK,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;YAC9C;;IAEJ;AAtBgB,IAAA,GAAA,CAAA,QAAQ,WAsBvB;IAwCD,SAAgB,QAAQ,CAItB,GAAG,IAA8D,EAAA;AAEjE,QAAA,QAAQ,IAAI,CAAC,MAAM;YACjB,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;gBAE3B;;AAEE,gBAAA,YAAY,CAAC,MAAM,EAAE,IAAI,CAAU;YAEvC;YAEA,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI;gBAEnB,OAAO,CAAC,MAAS,KAAK,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;YAC9C;;IAEJ;AAtBgB,IAAA,GAAA,CAAA,QAAQ,WAsBvB;AACH,CAAC,EAlcgB,GAAG,KAAH,GAAG,GAAA,EAAA,CAAA,CAAA;AAocpB,MAAM,YAAY,GAAG,CACnB,MAAqB,EACrB,IAAkC,KACjB;AACjB,IAAA,IAAI,CAACA,UAAc,CAAC,IAAI,CAAC;AAAE,QAAA,OAAO,MAAM;AAExC,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AAEpB,IAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;AAAE,QAAA,OAAO,EAAE;AAEpC,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;IAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAE1B,IAAA,IAAI,CAACA,UAAc,CAAC,IAAI,CAAC;AAAE,QAAA,OAAO,EAAE,CAAC,IAAI,GAAG,KAAK,EAAE;AAEnD,IAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,EAAE,CAAC,IAAI,GAAG,EAAE,EAAE;IAE3C,OAAO;QACL,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC;KAClC;AACH,CAAC;AAED,MAAM,YAAY,GAAG,CACnB,MAAqB,EACrB,IAAkC,KACjB;AACjB,IAAA,IAAI,CAACA,UAAc,CAAC,IAAI,CAAC;AAAE,QAAA,OAAO,MAAM;AAExC,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;IAEpB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAE1B,IAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;AAAE,QAAA,OAAO,MAAM;IAExC,IAAI,CAACA,UAAc,CAAC,IAAI,CAAC,EAAE;QACzB,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CACnD;IACH;AAEA,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;AAE1B,IAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,MAAM;IAEnC,OAAO;AACL,QAAA,GAAG,MAAM;QACT,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC;KAClC;AACH,CAAC;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-data-forge",
3
- "version": "6.13.0",
3
+ "version": "7.0.0",
4
4
  "private": false,
5
5
  "keywords": [
6
6
  "typescript",
@@ -42,6 +42,9 @@
42
42
  "clean": "pnpm run /clean:.*/",
43
43
  "clean:logs": "npx rimraf ./*.log",
44
44
  "codemod": "run-s codemod:uncommitted:as-const fmt codemod:uncommitted:readonly fmt",
45
+ "codemod:diff": "run-s codemod:diff:as-const fmt codemod:diff:readonly fmt",
46
+ "codemod:diff:as-const": "append-as-const --diff-from origin/main '{src,scripts,samples,test}/**/*.{mts,tsx}'",
47
+ "codemod:diff:readonly": "convert-to-readonly --diff-from origin/main '{src,scripts,samples,test}/**/*.{mts,tsx}'",
45
48
  "codemod:full": "run-s codemod:full:as-const fmt codemod:full:readonly fmt",
46
49
  "codemod:full:as-const": "append-as-const '{src,scripts,samples,test}/**/*.{mts,tsx}'",
47
50
  "codemod:full:readonly": "convert-to-readonly '{src,scripts,samples,test}/**/*.{mts,tsx}'",
@@ -83,7 +86,7 @@
83
86
  },
84
87
  "dependencies": {
85
88
  "@sindresorhus/is": "^8.1.0",
86
- "ts-type-forge": "^3.2.0"
89
+ "ts-type-forge": "^4.0.0"
87
90
  },
88
91
  "devDependencies": {
89
92
  "@emotion/react": "11.14.0",
@@ -1,4 +1,4 @@
1
- import { type MergeIntersection } from 'ts-type-forge';
1
+ import { expectType } from '../expect-type.mjs';
2
2
  import { Optional, type UnknownOptional } from './optional/index.mjs';
3
3
 
4
4
  /**
@@ -19,36 +19,71 @@ import { Optional, type UnknownOptional } from './optional/index.mjs';
19
19
  * @param a The initial value to wrap in a pipe.
20
20
  * @returns A pipe object with chaining methods appropriate for the value type.
21
21
  */
22
- export function pipe<const A extends UnknownOptional>(
23
- a: A,
24
- ): PipeWithMapOptional<A>;
25
-
26
- export function pipe<const A>(a: A): PipeBase<A>;
27
-
28
- export function pipe<const A>(a: A): PipeImpl<A> {
29
- if (Optional.isOptional(a)) {
30
- return {
31
- value: a,
32
- map: (fn) => pipe(fn(a)),
33
- mapOptional: (fn) => pipe(Optional.map(a, fn)),
34
- };
35
- } else {
36
- return {
37
- value: a,
38
- map: (fn) => pipe(fn(a)),
39
- mapNullable: (fn) => pipe(a == null ? undefined : fn(a)),
40
- };
41
- }
42
- }
43
-
44
- type Pipe<A> = A extends UnknownOptional ? PipeWithMapOptional<A> : PipeBase<A>;
22
+ export const pipe = <const A,>(a: A): Pipe<A> =>
23
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
24
+ ({
25
+ value: a,
26
+ map: (fn) => pipe(fn(a)),
27
+ mapNullable: (fn) => pipe(a == null ? undefined : fn(a)),
28
+
29
+ ...(Optional.isOptional(a)
30
+ ? {
31
+ mapOptional: (fn) => pipe(Optional.map(a, fn)),
32
+ }
33
+ : {}),
34
+ }) satisfies PipeImpl<A> as unknown as Pipe<A>;
35
+
36
+ // `PipeBase<A>` is always present; the conditional only *adds* `mapOptional`
37
+ // for Optional values. Two subtleties motivate this shape:
38
+ //
39
+ // 1. The check is `[A] extends [UnknownOptional]` (a 1-tuple), not the bare
40
+ // `A extends UnknownOptional`. A bare check distributes over unions, so a
41
+ // piped union value such as `Result<D, E> | undefined` would expand into
42
+ // `Pipe<Ok<D>> | Pipe<Err<E>> | Pipe<undefined>`. Calling a chained method
43
+ // on that union of pipe objects forces TypeScript to synthesize a merged
44
+ // call signature, during which a branded member like `Ok<D>` is widened to
45
+ // its constraint (`Ok<number>`) — losing the brand `D`.
46
+ //
47
+ // 2. `value: A` lives on `PipeBase<A>`, *outside* the conditional. If `value`
48
+ // flowed through the conditional, then for a not-yet-resolved generic `A`
49
+ // the deferred true branch narrows `A` to `A & UnknownOptional`, so
50
+ // `.value` would surface as the noisy `(A & UnknownOptional) | A`. Keeping
51
+ // it on the unconditional base yields a clean `A`.
52
+ // transformer-ignore-next-line convert-to-readonly
53
+ export type Pipe<A> = PipeBase<A> &
54
+ PipeMapNullable<A> &
55
+ ([A] extends [UnknownOptional] ? PipeMapOptional<A> : unknown);
56
+
57
+ // NOTE: 以下では 'typing when used with generics' test で型エラーが出る。
58
+ // 詳細は documents/reports/pipe-typing.md の 「mapNullable を条件付きで含めるのがうまくいかない理由」を参照。
59
+ // export type Pipe<A> = PipeBase<A> &
60
+ // ([A] extends [UnknownOptional] ? PipeMapOptional<A> : unknown) &
61
+ // ([undefined] extends [A] ? PipeMapNullable<A> : unknown) &
62
+ // ([null] extends [A] ? PipeMapNullable<A> : unknown);
63
+
64
+ expectType<Optional<number>, UnknownOptional>('<=');
65
+
66
+ expectType<number | undefined, undefined>('>=');
67
+
68
+ expectType<keyof Pipe<number | undefined>, 'value' | 'map' | 'mapNullable'>(
69
+ '=',
70
+ );
71
+
72
+ expectType<
73
+ keyof Pipe<Optional<number>>,
74
+ 'value' | 'map' | 'mapNullable' | 'mapOptional'
75
+ >('=');
76
+
77
+ expectType<
78
+ keyof Pipe<Optional<number | undefined>>,
79
+ 'value' | 'map' | 'mapNullable' | 'mapOptional'
80
+ >('=');
81
+
82
+ expectType<
83
+ keyof Pipe<Optional<number> | undefined>,
84
+ 'value' | 'map' | 'mapNullable'
85
+ >('=');
45
86
 
46
- /**
47
- * @template A The type of the current value in the pipe.
48
- * @internal
49
- * Base pipe interface providing core functionality.
50
- * All pipe types extend this interface.
51
- */
52
87
  type PipeBase<A> = Readonly<{
53
88
  /** The current value being piped. */
54
89
  value: A;
@@ -71,7 +106,9 @@ type PipeBase<A> = Readonly<{
71
106
  * @returns A new pipe containing the transformed value.
72
107
  */
73
108
  map: <B>(fn: (a: A) => B) => Pipe<B>;
109
+ }>;
74
110
 
111
+ type PipeMapNullable<A> = Readonly<{
75
112
  /**
76
113
  * Maps the current value only if it's not null or undefined. If the current
77
114
  * value is null/undefined, the transformation is skipped and undefined is
@@ -100,56 +137,45 @@ type PipeBase<A> = Readonly<{
100
137
  mapNullable: <B>(fn: (a: NonNullable<A>) => B) => Pipe<B | undefined>;
101
138
  }>;
102
139
 
103
- /**
104
- * @template A The Optional type currently in the pipe.
105
- * @internal
106
- * Pipe interface for Optional values, providing Optional-aware mapping.
107
- * Extends PipeBase with mapOptional functionality for monadic operations.
108
- */
109
- type PipeWithMapOptional<A extends UnknownOptional> = MergeIntersection<
110
- PipeBase<A> &
111
- Readonly<{
112
- /**
113
- * Maps the value inside an Optional using Optional.map semantics. If the
114
- * Optional is None, the transformation is skipped and None is propagated.
115
- * If the Optional is Some, the transformation is applied to the inner
116
- * value.
117
- *
118
- * @example
119
- *
120
- * ```ts
121
- * const result = pipe(Optional.some(10))
122
- * .mapOptional((value) => value * 2)
123
- * .mapOptional((value) => value + 5);
124
- *
125
- * assert.deepStrictEqual(result.value, Optional.some(25));
126
- *
127
- * const empty = pipe(Optional.none as Optional<number>).mapOptional(
128
- * (value) => value * 2,
129
- * );
130
- *
131
- * assert.isTrue(Optional.isNone(empty.value));
132
- * ```
133
- *
134
- * @template B The type of the transformed inner value.
135
- * @param fn Function to transform the inner value of the Optional.
136
- * @returns A new pipe containing an Optional with the transformed value.
137
- */
138
- mapOptional: <B>(fn: (a: Optional.Unwrap<A>) => B) => Pipe<Optional<B>>;
139
- }>
140
- >;
140
+ type PipeMapOptional<A extends UnknownOptional> = Readonly<{
141
+ /**
142
+ * Maps the value inside an Optional using Optional.map semantics. If the
143
+ * Optional is None, the transformation is skipped and None is propagated.
144
+ * If the Optional is Some, the transformation is applied to the inner
145
+ * value.
146
+ *
147
+ * @example
148
+ *
149
+ * ```ts
150
+ * const result = pipe(Optional.some(10))
151
+ * .mapOptional((value) => value * 2)
152
+ * .mapOptional((value) => value + 5);
153
+ *
154
+ * assert.deepStrictEqual(result.value, Optional.some(25));
155
+ *
156
+ * const empty = pipe(Optional.none as Optional<number>).mapOptional(
157
+ * (value) => value * 2,
158
+ * );
159
+ *
160
+ * assert.isTrue(Optional.isNone(empty.value));
161
+ * ```
162
+ *
163
+ * @template B The type of the transformed inner value.
164
+ * @param fn Function to transform the inner value of the Optional.
165
+ * @returns A new pipe containing an Optional with the transformed value.
166
+ */
167
+ mapOptional: <B>(fn: (a: Optional.Unwrap<A>) => B) => Pipe<Optional<B>>;
168
+ }>;
141
169
 
142
170
  /** @internal */
143
171
  type Cast<T, U> = T & U;
144
172
 
145
173
  /** @internal */
146
- type PipeImpl<A> = Partial<
147
- Readonly<{
148
- value: A;
149
- map: <B>(fn: (a: A) => B) => PipeBase<B>;
150
- mapNullable: <B>(fn: (a: NonNullable<A>) => B) => PipeBase<B | undefined>;
151
- mapOptional: <B>(
152
- fn: (a: Optional.Unwrap<Cast<A, UnknownOptional>>) => B,
153
- ) => PipeBase<Optional<B>>;
154
- }>
155
- >;
174
+ type PipeImpl<A> = Readonly<{
175
+ value: A;
176
+ map: <B>(fn: (a: A) => B) => PipeImpl<B>;
177
+ mapNullable?: <B>(fn: (a: NonNullable<A>) => B) => PipeImpl<B | undefined>;
178
+ mapOptional?: <B>(
179
+ fn: (a: Optional.Unwrap<Cast<A, UnknownOptional>>) => B,
180
+ ) => PipeImpl<Optional<B>>;
181
+ }>;