ts-data-forge 1.0.2 → 1.2.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 (144) hide show
  1. package/dist/functional/optional.d.mts +14 -8
  2. package/dist/functional/optional.d.mts.map +1 -1
  3. package/dist/functional/optional.mjs +11 -11
  4. package/dist/functional/optional.mjs.map +1 -1
  5. package/dist/functional/result.d.mts +14 -8
  6. package/dist/functional/result.d.mts.map +1 -1
  7. package/dist/functional/result.mjs +11 -11
  8. package/dist/functional/result.mjs.map +1 -1
  9. package/dist/index.mjs +1 -1
  10. package/dist/number/branded-types/finite-number.d.mts +6 -6
  11. package/dist/number/branded-types/finite-number.d.mts.map +1 -1
  12. package/dist/number/branded-types/finite-number.mjs +4 -4
  13. package/dist/number/branded-types/finite-number.mjs.map +1 -1
  14. package/dist/number/branded-types/int.d.mts +3 -3
  15. package/dist/number/branded-types/int.d.mts.map +1 -1
  16. package/dist/number/branded-types/int.mjs +4 -4
  17. package/dist/number/branded-types/int.mjs.map +1 -1
  18. package/dist/number/branded-types/int16.d.mts +3 -3
  19. package/dist/number/branded-types/int16.d.mts.map +1 -1
  20. package/dist/number/branded-types/int16.mjs +2 -2
  21. package/dist/number/branded-types/int16.mjs.map +1 -1
  22. package/dist/number/branded-types/int32.d.mts +3 -3
  23. package/dist/number/branded-types/int32.d.mts.map +1 -1
  24. package/dist/number/branded-types/int32.mjs +2 -2
  25. package/dist/number/branded-types/int32.mjs.map +1 -1
  26. package/dist/number/branded-types/non-negative-finite-number.d.mts +5 -5
  27. package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
  28. package/dist/number/branded-types/non-negative-finite-number.mjs +3 -3
  29. package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
  30. package/dist/number/branded-types/non-negative-int16.d.mts +1 -1
  31. package/dist/number/branded-types/non-negative-int16.mjs +2 -2
  32. package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
  33. package/dist/number/branded-types/non-negative-int32.d.mts +1 -1
  34. package/dist/number/branded-types/non-negative-int32.mjs +2 -2
  35. package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
  36. package/dist/number/branded-types/non-zero-finite-number.d.mts +6 -6
  37. package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
  38. package/dist/number/branded-types/non-zero-finite-number.mjs +4 -4
  39. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
  40. package/dist/number/branded-types/non-zero-int.d.mts +3 -3
  41. package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
  42. package/dist/number/branded-types/non-zero-int.mjs +4 -4
  43. package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
  44. package/dist/number/branded-types/non-zero-int16.d.mts +3 -3
  45. package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
  46. package/dist/number/branded-types/non-zero-int16.mjs +2 -2
  47. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
  48. package/dist/number/branded-types/non-zero-int32.d.mts +3 -3
  49. package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
  50. package/dist/number/branded-types/non-zero-int32.mjs +2 -2
  51. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
  52. package/dist/number/branded-types/non-zero-safe-int.d.mts +3 -3
  53. package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
  54. package/dist/number/branded-types/non-zero-safe-int.mjs +2 -2
  55. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
  56. package/dist/number/branded-types/non-zero-uint16.d.mts +1 -1
  57. package/dist/number/branded-types/non-zero-uint16.mjs +2 -2
  58. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
  59. package/dist/number/branded-types/non-zero-uint32.d.mts +1 -1
  60. package/dist/number/branded-types/non-zero-uint32.mjs +2 -2
  61. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
  62. package/dist/number/branded-types/positive-finite-number.d.mts +5 -5
  63. package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
  64. package/dist/number/branded-types/positive-finite-number.mjs +3 -3
  65. package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
  66. package/dist/number/branded-types/positive-int.d.mts +1 -1
  67. package/dist/number/branded-types/positive-int.mjs +3 -3
  68. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  69. package/dist/number/branded-types/positive-int16.d.mts +1 -1
  70. package/dist/number/branded-types/positive-int16.mjs +2 -2
  71. package/dist/number/branded-types/positive-int16.mjs.map +1 -1
  72. package/dist/number/branded-types/positive-int32.d.mts +1 -1
  73. package/dist/number/branded-types/positive-int32.mjs +2 -2
  74. package/dist/number/branded-types/positive-int32.mjs.map +1 -1
  75. package/dist/number/branded-types/positive-safe-int.d.mts +1 -1
  76. package/dist/number/branded-types/positive-safe-int.mjs +2 -2
  77. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  78. package/dist/number/branded-types/positive-uint16.d.mts +1 -1
  79. package/dist/number/branded-types/positive-uint16.mjs +2 -2
  80. package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
  81. package/dist/number/branded-types/positive-uint32.d.mts +1 -1
  82. package/dist/number/branded-types/positive-uint32.mjs +2 -2
  83. package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
  84. package/dist/number/branded-types/safe-int.d.mts +3 -3
  85. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  86. package/dist/number/branded-types/safe-int.mjs +2 -2
  87. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  88. package/dist/number/branded-types/safe-uint.d.mts +1 -1
  89. package/dist/number/branded-types/safe-uint.mjs +2 -2
  90. package/dist/number/branded-types/safe-uint.mjs.map +1 -1
  91. package/dist/number/branded-types/uint.d.mts +1 -1
  92. package/dist/number/branded-types/uint.mjs +3 -3
  93. package/dist/number/branded-types/uint.mjs.map +1 -1
  94. package/dist/number/branded-types/uint16.d.mts +1 -1
  95. package/dist/number/branded-types/uint16.mjs +2 -2
  96. package/dist/number/branded-types/uint16.mjs.map +1 -1
  97. package/dist/number/branded-types/uint32.d.mts +1 -1
  98. package/dist/number/branded-types/uint32.mjs +2 -2
  99. package/dist/number/branded-types/uint32.mjs.map +1 -1
  100. package/dist/number/enum/int8.mjs +2 -2
  101. package/dist/number/enum/int8.mjs.map +1 -1
  102. package/dist/number/enum/uint8.d.mts.map +1 -1
  103. package/dist/number/enum/uint8.mjs +2 -2
  104. package/dist/number/enum/uint8.mjs.map +1 -1
  105. package/dist/number/index.mjs +1 -1
  106. package/dist/number/refined-number-utils.d.mts +8 -8
  107. package/dist/number/refined-number-utils.d.mts.map +1 -1
  108. package/dist/number/refined-number-utils.mjs +8 -7
  109. package/dist/number/refined-number-utils.mjs.map +1 -1
  110. package/dist/object/object.d.mts +2 -2
  111. package/dist/object/object.d.mts.map +1 -1
  112. package/package.json +2 -2
  113. package/src/functional/optional.mts +22 -15
  114. package/src/functional/result.mts +23 -15
  115. package/src/number/branded-types/finite-number.mts +18 -16
  116. package/src/number/branded-types/int.mts +8 -8
  117. package/src/number/branded-types/int16.mts +4 -4
  118. package/src/number/branded-types/int32.mts +4 -4
  119. package/src/number/branded-types/non-negative-finite-number.mts +13 -13
  120. package/src/number/branded-types/non-negative-int16.mts +4 -4
  121. package/src/number/branded-types/non-negative-int32.mts +4 -4
  122. package/src/number/branded-types/non-zero-finite-number.mts +18 -18
  123. package/src/number/branded-types/non-zero-int.mts +8 -8
  124. package/src/number/branded-types/non-zero-int16.mts +4 -4
  125. package/src/number/branded-types/non-zero-int32.mts +4 -4
  126. package/src/number/branded-types/non-zero-safe-int.mts +4 -4
  127. package/src/number/branded-types/non-zero-uint16.mts +4 -4
  128. package/src/number/branded-types/non-zero-uint32.mts +4 -4
  129. package/src/number/branded-types/positive-finite-number.mts +23 -19
  130. package/src/number/branded-types/positive-int.mts +6 -6
  131. package/src/number/branded-types/positive-int16.mts +4 -4
  132. package/src/number/branded-types/positive-int32.mts +4 -4
  133. package/src/number/branded-types/positive-safe-int.mts +4 -4
  134. package/src/number/branded-types/positive-uint16.mts +4 -4
  135. package/src/number/branded-types/positive-uint32.mts +4 -4
  136. package/src/number/branded-types/safe-int.mts +4 -4
  137. package/src/number/branded-types/safe-uint.mts +4 -4
  138. package/src/number/branded-types/uint.mts +6 -6
  139. package/src/number/branded-types/uint16.mts +4 -4
  140. package/src/number/branded-types/uint32.mts +4 -4
  141. package/src/number/enum/int8.mts +3 -3
  142. package/src/number/enum/uint8.mts +10 -8
  143. package/src/number/refined-number-utils.mts +28 -23
  144. package/src/object/object.mts +6 -6
@@ -1,5 +1,5 @@
1
1
  import { expectType } from '../../expect-type.mjs';
2
- import { TsVerifiedInternals } from '../refined-number-utils.mjs';
2
+ import { TsDataForgeInternals } from '../refined-number-utils.mjs';
3
3
 
4
4
  const typeNameInMessage = 'an non-negative integer less than 256';
5
5
 
@@ -10,12 +10,14 @@ const {
10
10
  is: isImpl,
11
11
  castType: castTypeImpl,
12
12
  clamp: clampImpl,
13
- } = TsVerifiedInternals.RefinedNumberUtils.operatorsForInteger<Uint16, 0, 255>({
14
- integerOrSafeInteger: 'SafeInteger',
15
- MIN_VALUE: 0,
16
- MAX_VALUE: 255,
17
- typeNameInMessage,
18
- } as const);
13
+ } = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<Uint16, 0, 255>(
14
+ {
15
+ integerOrSafeInteger: 'SafeInteger',
16
+ MIN_VALUE: 0,
17
+ MAX_VALUE: 255,
18
+ typeNameInMessage,
19
+ } as const,
20
+ );
19
21
 
20
22
  /**
21
23
  * Type guard that checks if a value is an 8-bit unsigned integer.
@@ -286,7 +288,7 @@ export const Uint8 = {
286
288
 
287
289
  expectType<
288
290
  keyof typeof Uint8,
289
- keyof TsVerifiedInternals.RefinedNumberUtils.NumberClass<
291
+ keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<
290
292
  Uint16,
291
293
  'int' | 'non-negative' | 'range'
292
294
  >
@@ -3,7 +3,7 @@ import { pipe } from '../functional/index.mjs';
3
3
  import { Num } from './num.mjs';
4
4
 
5
5
  /** @internal */
6
- export namespace TsVerifiedInternals {
6
+ export namespace TsDataForgeInternals {
7
7
  /**
8
8
  * Internal utilities for creating and managing refined (branded) number types.
9
9
  *
@@ -212,8 +212,8 @@ export namespace TsVerifiedInternals {
212
212
 
213
213
  type OperatorsForInteger<
214
214
  ElementType extends Int,
215
- MIN_VALUE extends number | undefined,
216
- MAX_VALUE extends number | undefined,
215
+ MIN_VALUE extends number,
216
+ MAX_VALUE extends number,
217
217
  ElementTypeWithSmallInt extends
218
218
  WithSmallInt<ElementType> = WithSmallInt<ElementType>,
219
219
  > = Readonly<{
@@ -254,13 +254,13 @@ export namespace TsVerifiedInternals {
254
254
  ) => ElementType;
255
255
 
256
256
  random: (
257
- min: ElementTypeWithSmallInt,
258
- max: ElementTypeWithSmallInt,
257
+ min?: ElementTypeWithSmallInt,
258
+ max?: ElementTypeWithSmallInt,
259
259
  ) => ElementType;
260
260
 
261
261
  randomNonZero: (
262
- min: ElementTypeWithSmallInt,
263
- max: ElementTypeWithSmallInt,
262
+ min?: ElementTypeWithSmallInt,
263
+ max?: ElementTypeWithSmallInt,
264
264
  ) => ElementType;
265
265
 
266
266
  castType: <N extends number>(x: N) => ElementType & N;
@@ -298,8 +298,8 @@ export namespace TsVerifiedInternals {
298
298
  */
299
299
  export const operatorsForInteger = <
300
300
  ElementType extends Int,
301
- MIN_VALUE extends number | undefined,
302
- MAX_VALUE extends number | undefined,
301
+ MIN_VALUE extends number,
302
+ MAX_VALUE extends number,
303
303
  >({
304
304
  integerOrSafeInteger,
305
305
  nonZero,
@@ -372,20 +372,20 @@ export namespace TsVerifiedInternals {
372
372
  ): ElementType => clampOrCastFn(Math.floor(x / y));
373
373
 
374
374
  const randomImpl = (
375
- min: ElementTypeWithSmallInt,
376
- max: ElementTypeWithSmallInt,
375
+ min: number = MIN_VALUE,
376
+ max: number = MAX_VALUE,
377
377
  ): number =>
378
378
  min + Math.floor((Math.max(max, min) - min + 1) * Math.random());
379
379
 
380
380
  // [-5, 5] -> floor(11 * Math.random()) + (-5)
381
381
  const random = (
382
- min: ElementTypeWithSmallInt,
383
- max: ElementTypeWithSmallInt,
382
+ min?: ElementTypeWithSmallInt,
383
+ max?: ElementTypeWithSmallInt,
384
384
  ): ElementType => clampOrCastFn(randomImpl(min, max));
385
385
 
386
386
  const randomNonZero = (
387
- min: ElementTypeWithSmallInt,
388
- max: ElementTypeWithSmallInt,
387
+ min?: ElementTypeWithSmallInt,
388
+ max?: ElementTypeWithSmallInt,
389
389
  ): ElementType => {
390
390
  while (true) {
391
391
  const r = randomImpl(min, max);
@@ -435,8 +435,8 @@ export namespace TsVerifiedInternals {
435
435
  sub: (x: ElementType, y: ElementType) => ElementType;
436
436
  mul: (x: ElementType, y: ElementType) => ElementType;
437
437
  div: (x: ElementType, y: ToNonZero<ElementType>) => ElementType;
438
- random: (min: ElementType, max: ElementType) => ElementType;
439
- randomNonZero: (min: ElementType, max: ElementType) => ElementType;
438
+ random: (min?: ElementType, max?: ElementType) => ElementType;
439
+ randomNonZero: (min?: ElementType, max?: ElementType) => ElementType;
440
440
 
441
441
  castType: <N extends number>(x: N) => ElementType & N;
442
442
 
@@ -472,8 +472,8 @@ export namespace TsVerifiedInternals {
472
472
  */
473
473
  export const operatorsForFloat = <
474
474
  ElementType extends UnknownNumberBrand,
475
- MIN_VALUE extends number | undefined,
476
- MAX_VALUE extends number | undefined,
475
+ MIN_VALUE extends number,
476
+ MAX_VALUE extends number,
477
477
  >({
478
478
  nonZero,
479
479
  MIN_VALUE,
@@ -527,12 +527,17 @@ export namespace TsVerifiedInternals {
527
527
  const div = (x: ElementType, y: ToNonZero<ElementType>): ElementType =>
528
528
  clampOrCastFn(x / y);
529
529
 
530
- const random = (min: ElementType, max: ElementType): ElementType =>
531
- clampOrCastFn(min + (Math.max(max, min) - min) * Math.random());
530
+ const randomImpl = (
531
+ min: number = MIN_VALUE,
532
+ max: number = MAX_VALUE,
533
+ ): number => min + (Math.max(max, min) - min) * Math.random();
534
+
535
+ const random = (min?: ElementType, max?: ElementType): ElementType =>
536
+ clampOrCastFn(randomImpl(min, max));
532
537
 
533
538
  const randomNonZero = (
534
- min: ElementType,
535
- max: ElementType,
539
+ min?: ElementType,
540
+ max?: ElementType,
536
541
  ): ElementType => {
537
542
  while (true) {
538
543
  const r = random(min, max);
@@ -359,12 +359,12 @@ export namespace Obj {
359
359
  >(
360
360
  entries: Entries,
361
361
  ): IsFixedLengthList<Entries> extends true
362
- ? TsVerifiedInternals.EntriesToObject<Entries>
363
- : TsVerifiedInternals.PartialIfKeyIsUnion<
364
- TsVerifiedInternals.KeysOfEntries<Entries>,
362
+ ? TsDataForgeInternals.EntriesToObject<Entries>
363
+ : TsDataForgeInternals.PartialIfKeyIsUnion<
364
+ TsDataForgeInternals.KeysOfEntries<Entries>,
365
365
  Record<
366
- TsVerifiedInternals.KeysOfEntries<Entries>,
367
- TsVerifiedInternals.ValuesOfEntries<Entries>
366
+ TsDataForgeInternals.KeysOfEntries<Entries>,
367
+ TsDataForgeInternals.ValuesOfEntries<Entries>
368
368
  >
369
369
  > => Object.fromEntries(entries) as never;
370
370
 
@@ -372,7 +372,7 @@ export namespace Obj {
372
372
  * @internal
373
373
  * Internal type utilities for the Obj module.
374
374
  */
375
- declare namespace TsVerifiedInternals {
375
+ declare namespace TsDataForgeInternals {
376
376
  type RecursionLimit = 20;
377
377
 
378
378
  /**