type-plus 6.1.0 → 6.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 (70) hide show
  1. package/README.md +10 -8
  2. package/cjs/array_plus/array_number.d.ts +4 -0
  3. package/cjs/array_plus/array_number.d.ts.map +1 -0
  4. package/cjs/{math/IsWhole.js → array_plus/array_number.js} +1 -1
  5. package/cjs/array_plus/array_number.js.map +1 -0
  6. package/cjs/array_plus/create_tuple.d.ts +2 -1
  7. package/cjs/array_plus/create_tuple.d.ts.map +1 -1
  8. package/cjs/index.d.ts +1 -1
  9. package/cjs/index.d.ts.map +1 -1
  10. package/cjs/index.js.map +1 -1
  11. package/cjs/math/Add.d.ts +1 -2
  12. package/cjs/math/Add.d.ts.map +1 -1
  13. package/cjs/math/Digit.d.ts +1 -2
  14. package/cjs/math/Digit.d.ts.map +1 -1
  15. package/cjs/math/GreaterThan.d.ts +1 -2
  16. package/cjs/math/GreaterThan.d.ts.map +1 -1
  17. package/cjs/math/Subtract.d.ts +1 -2
  18. package/cjs/math/Subtract.d.ts.map +1 -1
  19. package/cjs/math/index.d.ts +0 -2
  20. package/cjs/math/index.d.ts.map +1 -1
  21. package/cjs/number_plus/number.d.ts +67 -3
  22. package/cjs/number_plus/number.d.ts.map +1 -1
  23. package/esm/array_plus/array_number.d.ts +4 -0
  24. package/esm/array_plus/array_number.d.ts.map +1 -0
  25. package/esm/array_plus/array_number.js +2 -0
  26. package/esm/array_plus/array_number.js.map +1 -0
  27. package/esm/array_plus/create_tuple.d.ts +2 -1
  28. package/esm/array_plus/create_tuple.d.ts.map +1 -1
  29. package/esm/index.d.ts +1 -1
  30. package/esm/index.d.ts.map +1 -1
  31. package/esm/index.js.map +1 -1
  32. package/esm/math/Add.d.ts +1 -2
  33. package/esm/math/Add.d.ts.map +1 -1
  34. package/esm/math/Digit.d.ts +1 -2
  35. package/esm/math/Digit.d.ts.map +1 -1
  36. package/esm/math/GreaterThan.d.ts +1 -2
  37. package/esm/math/GreaterThan.d.ts.map +1 -1
  38. package/esm/math/Subtract.d.ts +1 -2
  39. package/esm/math/Subtract.d.ts.map +1 -1
  40. package/esm/math/index.d.ts +0 -2
  41. package/esm/math/index.d.ts.map +1 -1
  42. package/esm/number_plus/number.d.ts +67 -3
  43. package/esm/number_plus/number.d.ts.map +1 -1
  44. package/package.json +1 -1
  45. package/ts/array_plus/array_number.ts +12 -0
  46. package/ts/array_plus/create_tuple.ts +2 -1
  47. package/ts/index.ts +1 -13
  48. package/ts/math/Add.ts +1 -3
  49. package/ts/math/Digit.ts +1 -2
  50. package/ts/math/GreaterThan.ts +1 -2
  51. package/ts/math/Subtract.ts +1 -2
  52. package/ts/math/index.ts +0 -2
  53. package/ts/number_plus/number.ts +84 -7
  54. package/cjs/math/IsPositive.d.ts +0 -7
  55. package/cjs/math/IsPositive.d.ts.map +0 -1
  56. package/cjs/math/IsPositive.js +0 -3
  57. package/cjs/math/IsPositive.js.map +0 -1
  58. package/cjs/math/IsWhole.d.ts +0 -7
  59. package/cjs/math/IsWhole.d.ts.map +0 -1
  60. package/cjs/math/IsWhole.js.map +0 -1
  61. package/esm/math/IsPositive.d.ts +0 -7
  62. package/esm/math/IsPositive.d.ts.map +0 -1
  63. package/esm/math/IsPositive.js +0 -2
  64. package/esm/math/IsPositive.js.map +0 -1
  65. package/esm/math/IsWhole.d.ts +0 -7
  66. package/esm/math/IsWhole.d.ts.map +0 -1
  67. package/esm/math/IsWhole.js +0 -2
  68. package/esm/math/IsWhole.js.map +0 -1
  69. package/ts/math/IsPositive.ts +0 -10
  70. package/ts/math/IsWhole.ts +0 -10
package/README.md CHANGED
@@ -315,8 +315,8 @@ type No = IsAny<1, 'yes', 'no'> // 'no'
315
315
 
316
316
  ### Any
317
317
 
318
- - [`AnyType<T, Then = T, Else = never>`]: `T === any`.
319
- - [`IsAny<T, Then = true, Else = false>`]: `T === any` (origin: [ts-essentials]).
318
+ - [`AnyType<T, Then = T, Else = never>`](ts/any_plus/any.ts#L14): `T === any`.
319
+ - [`IsAny<T, Then = true, Else = false>`](ts/any_plus/any.ts#L29): `T === any` (origin: [ts-essentials]).
320
320
 
321
321
  ### Array
322
322
 
@@ -465,16 +465,18 @@ So you may encounter some weird behavior if your logic is complex.
465
465
 
466
466
  - [`Numeric`](ts/number_plus/number.ts#L4): either `number` or `bigint` (origin: [type-fest]).
467
467
  - [`Zero`](ts/number_plus/number.ts#L9): `0` in `number` or `bigint` (origin: [type-fest]).
468
- - [`Integer<N, Then = N, Else = never>`](ts/number_plus/number.ts#L24): is integer (origin: [type-fest]).
469
- - [`Negative<N, Then = N, Else = never>`](ts/number_plus/number.ts#39): is negative (origin: [type-fest]).
470
- - [`NonNegative<N, Then = N, Else = never>`](ts/number_plus/number.ts#58): is non-negative (origin: [type-fest])
471
- - [`NumberType<T, Then = N, Else = never>`](ts/number_plus/number.ts#L65): Is the type `T` exactly `number`.
468
+ - [`Integer<N, Then = N, Else = never>`](ts/number_plus/number.ts#L27): is integer (origin: [type-fest]).
469
+ - [`IsInteger<N, Then = true, Else = false>`](ts/number_plus/number.ts#L46): is integer.
470
+ - [`IsWhole<N, Then = true, Else = false>`](ts/number_plus/number.ts#L62): is integer.
471
+ - [`Negative<N, Then = N, Else = never>`](ts/number_plus/number.ts#L77): is negative (origin: [type-fest]).
472
+ - [`NonNegative<N, Then = N, Else = never>`](ts/number_plus/number.ts#L96): is non-negative (origin: [type-fest])
473
+ - [`NumberType<T, Then = N, Else = never>`](ts/number_plus/number.ts#L108): Is the type `T` exactly `number`.
474
+ - [`Positive<N, Then = N, Else = never>`](ts/number_plus/number.ts#L124): is positive.
475
+ - [`IsPositive<N, Then = N, Else = never>`](ts/number_plus/number.ts#L144): is positive.
472
476
 
473
477
  ### Math
474
478
 
475
479
  - `Abs<N, Fail=never>`: `Abs(N)`, `Abs<number>` returns `Fail`.
476
- - `IsPositive<N>`: is `N` a positive number literal. `IsPositive<number>` returns `false`.
477
- - `IsWhole<N>`: is `N` a whole number literal. `IsWhole<number>` returns `false`.
478
480
  - `Max<A, B, Fail=never>`: `max(A, B)`, for whole number, `Fail` otherwise.
479
481
  - `GreaterThan<A, B, Fail=never>`: `A > B` for whole numbers, `Fail` otherwise.
480
482
 
@@ -0,0 +1,4 @@
1
+ import { Add } from '../math/Add.js';
2
+ import { ArrayType } from './array.js';
3
+ export type Sum<A extends ArrayType<number[]>> = A['length'] extends 0 ? 0 : A['length'] extends 1 ? A[0] : A['length'] extends 2 ? Add<A[0], A[1]> : A extends [infer F extends number, infer S extends number, ...infer Tail extends number[]] ? Sum<[Add<F, S>, ...Tail]> : never;
4
+ //# sourceMappingURL=array_number.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array_number.d.ts","sourceRoot":"","sources":["../../ts/array_plus/array_number.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACnE,CAAC,GACD,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACrB,CAAC,CAAC,CAAC,CAAC,GACJ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACrB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GACf,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,MAAM,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,IAAI,SAAS,MAAM,EAAE,CAAC,GAC1F,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GACzB,KAAK,CAAA"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=IsWhole.js.map
3
+ //# sourceMappingURL=array_number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array_number.js","sourceRoot":"","sources":["../../ts/array_plus/array_number.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
- import type { DigitArray, IsPositive, IsWhole } from '../math/index.js';
1
+ import type { DigitArray } from '../math/index.js';
2
+ import type { IsPositive, IsWhole } from '../number_plus/number.js';
2
3
  /**
3
4
  * Creates `Tuple<T>` with `L` number of elements.
4
5
  * @note Other cool implementations by @lazytype, @jcalz:
@@ -1 +1 @@
1
- {"version":3,"file":"create_tuple.d.ts","sourceRoot":"","sources":["../../ts/array_plus/create_tuple.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAEvE;;;;;GAKG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,OAAO,EAAE,IAAI,GAAG,KAAK,IAAI,MAAM,SAAS,CAAC,GACpF,CAAC,EAAE,GACH,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,GAC1B,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GACtB,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GACnD,IAAI,GACL,IAAI,CAAA"}
1
+ {"version":3,"file":"create_tuple.d.ts","sourceRoot":"","sources":["../../ts/array_plus/create_tuple.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAEnE;;;;;GAKG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,OAAO,EAAE,IAAI,GAAG,KAAK,IAAI,MAAM,SAAS,CAAC,GACpF,CAAC,EAAE,GACH,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,GAC1B,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GACtB,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GACnD,IAAI,GACL,IAAI,CAAA"}
package/cjs/index.d.ts CHANGED
@@ -10,7 +10,7 @@ export * from './assertion/index.js';
10
10
  export * from './class/index.js';
11
11
  export * from './function/index.js';
12
12
  export * from './functional/index.js';
13
- export type { Abs, Add, Decrement, Digit, DigitArray, GreaterThan, Increment, IsPositive, IsWhole, Max, Subtract } from './math/index.js';
13
+ export type * from './math/index.js';
14
14
  export * from './nodejs/index.js';
15
15
  export * from './nominal-types/index.js';
16
16
  export * from './number_plus/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAC7D,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACrF,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGlE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,cAAc,qBAAqB,CAAA;AACnC,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AACvD,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,YAAY,EACX,GAAG,EACH,GAAG,EACH,SAAS,EACT,KAAK,EACL,UAAU,EACV,WAAW,EACX,SAAS,EACT,UAAU,EACV,OAAO,EACP,GAAG,EACH,QAAQ,EACR,MAAM,iBAAiB,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAA;AAC1D,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAC7D,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACrF,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGlE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,cAAc,qBAAqB,CAAA;AACnC,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AACvD,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,mBAAmB,iBAAiB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAA;AAC1D,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA"}
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA4C;AAC5C,uCAA6D;AAApD,qGAAA,QAAQ,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,sGAAA,SAAS,OAAA;AAO1C,sDAAmC;AACnC,wEAAuD;AACvD,wDAAqC;AACrC,uDAAoC;AACpC,mDAAgC;AAChC,sDAAmC;AACnC,wDAAqC;AAcrC,oDAAiC;AACjC,2DAAwC;AACxC,yDAAsC;AACtC,2EAA0D;AAC1D,oDAAiC;AACjC,wDAAqC;AACrC,qDAAkC;AAClC,qDAAkC;AAClC,mDAAgC;AAChC,+BAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA4C;AAC5C,uCAA6D;AAApD,qGAAA,QAAQ,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,sGAAA,SAAS,OAAA;AAO1C,sDAAmC;AACnC,wEAAuD;AACvD,wDAAqC;AACrC,uDAAoC;AACpC,mDAAgC;AAChC,sDAAmC;AACnC,wDAAqC;AAErC,oDAAiC;AACjC,2DAAwC;AACxC,yDAAsC;AACtC,2EAA0D;AAC1D,oDAAiC;AACjC,wDAAqC;AACrC,qDAAkC;AAClC,qDAAkC;AAClC,mDAAgC;AAChC,+BAA+B"}
package/cjs/math/Add.d.ts CHANGED
@@ -1,8 +1,7 @@
1
1
  import type { PadLeft } from '../array_plus/index.js';
2
2
  import type { And } from '../predicates/index.js';
3
+ import type { IsPositive, IsWhole } from '../number_plus/number.js';
3
4
  import type { Digit, DigitArray } from './Digit.js';
4
- import type { IsPositive } from './IsPositive.js';
5
- import type { IsWhole } from './IsWhole.js';
6
5
  import type { Max } from './Max.js';
7
6
  /**
8
7
  * Add two number literals.
@@ -1 +1 @@
1
- {"version":3,"file":"Add.d.ts","sourceRoot":"","sources":["../../ts/math/Add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Add.d.ts","sourceRoot":"","sources":["../../ts/math/Add.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import type { Tail } from '../array_plus/index.js';
2
+ import type { IsPositive, IsWhole } from '../number_plus/number.js';
2
3
  import type { And } from '../predicates/index.js';
3
- import type { IsPositive } from './IsPositive.js';
4
- import type { IsWhole } from './IsWhole.js';
5
4
  export declare namespace Digit {
6
5
  type ToTuple<T = 1> = {
7
6
  [k in number]: any[];
@@ -1 +1 @@
1
- {"version":3,"file":"Digit.d.ts","sourceRoot":"","sources":["../../ts/math/Digit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C,yBAAiB,KAAK,CAAC;IACtB,KAAY,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI;SAC3B,CAAC,IAAI,MAAM,GAAG,GAAG,EAAE;KACpB,GAAG;QACH,CAAC,EAAE,EAAE,CAAA;QACL,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACN,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACT,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACZ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACf,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAClB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACrB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACxB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC3B,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9B,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAClC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACrC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACxC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC3C,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9C,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACjD,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACpD,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACvD,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC1D,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;KAC7D,CAAA;IAED;;OAEG;IACH,KAAY,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA;IAExG,KAAY,cAAc,GAAG;SAAG,CAAC,IAAI,MAAM,GAAG,MAAM;KAAE,GAAG;QACxD,CAAC,EAAE,KAAK,CAAA;QACR,CAAC,EAAE,CAAC,CAAA;QACJ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;QACR,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACZ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAChB,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACxB,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC5B,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAChC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;KACpC,CAAA;CACD;AAED,yBAAiB,UAAU,CAAC;IAC3B,KAAY,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IAEnE,KAAY,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,SAAS,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACtF,CAAC,GACD,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACrB,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACjC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,GAC3B,CAAC,SAAS,GAAG,EAAE,GACd,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GACtD,KAAK,GACN,KAAK,CAAA;IAER,KAAY,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAEnG,KAAY,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;IACxE,KAAY,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IAC/E,KAAY,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,IAAI,MAAM,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC,CAAA;IAEnF,KAAY,cAAc,CAAC,CAAC,SAAS,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,KAAK,CAAA;IAE3G,KAAY,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,GAC/D,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,GACvB,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,GACvB,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,GACvB,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,GACvB,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,GACvB,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,GACvB,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,GACvB,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,GACvB,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,GACvB,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GACrB,EAAE,CAAA;IAEL,KAAY,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,IAAI,eAAe,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IAChF,KAAY,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,GACvF,CAAC,GACD,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,GACtB,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GACb,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,GAC5B,CAAC,SAAS,MAAM,EAAE,GACjB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GACd,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAC9B,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,GAC3B,CAAC,SAAS,MAAM,EAAE,GACjB,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAC3D,EAAE,GACH,EAAE,GACH,EAAE,GACH,EAAE,CAAA;IAEL,KAAY,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACpE,CAAC,GACD,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GACd,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GACxB,CAAC,CAAA;IAEJ,KAAY,QAAQ,GAAG;SAAG,CAAC,IAAI,MAAM,GAAG,MAAM;KAAE,GAAG;QAClD,CAAC,EAAE,CAAC,CAAA;QACJ,CAAC,EAAE,CAAC,CAAA;QACJ,CAAC,EAAE,CAAC,CAAA;QACJ,CAAC,EAAE,CAAC,CAAA;QACJ,CAAC,EAAE,CAAC,CAAA;QACJ,CAAC,EAAE,CAAC,CAAA;QACJ,CAAC,EAAE,CAAC,CAAA;QACJ,CAAC,EAAE,CAAC,CAAA;QACJ,CAAC,EAAE,CAAC,CAAA;QACJ,CAAC,EAAE,CAAC,CAAA;QACJ,EAAE,EAAE,CAAC,CAAA;QACL,EAAE,EAAE,EAAE,CAAA;QACN,EAAE,EAAE,EAAE,CAAA;QACN,EAAE,EAAE,EAAE,CAAA;QACN,EAAE,EAAE,EAAE,CAAA;QACN,EAAE,EAAE,EAAE,CAAA;QACN,EAAE,EAAE,EAAE,CAAA;QACN,EAAE,EAAE,EAAE,CAAA;QACN,EAAE,EAAE,EAAE,CAAA;QACN,EAAE,EAAE,EAAE,CAAA;KACN,CAAA;IAED,KAAY,MAAM,GAAG;SAAG,CAAC,IAAI,MAAM,GAAG,MAAM;KAAE,GAAG;QAChD,CAAC,EAAE,EAAE,CAAA;QACL,CAAC,EAAE,EAAE,CAAA;QACL,CAAC,EAAE,EAAE,CAAA;QACL,CAAC,EAAE,EAAE,CAAA;QACL,CAAC,EAAE,EAAE,CAAA;QACL,CAAC,EAAE,EAAE,CAAA;QACL,CAAC,EAAE,EAAE,CAAA;QACL,CAAC,EAAE,EAAE,CAAA;QACL,CAAC,EAAE,EAAE,CAAA;QACL,CAAC,EAAE,EAAE,CAAA;KACL,CAAA;CACD"}
1
+ {"version":3,"file":"Digit.d.ts","sourceRoot":"","sources":["../../ts/math/Digit.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import type { Head, PadLeft, Tail } from '../array_plus/index.js';
2
+ import type { IsPositive, IsWhole } from '../number_plus/number.js';
2
3
  import type { And, Equal, Or, Xor } from '../predicates/index.js';
3
4
  import type { Digit, DigitArray } from './Digit.js';
4
- import type { IsPositive } from './IsPositive.js';
5
- import type { IsWhole } from './IsWhole.js';
6
5
  import type { Max } from './Max.js';
7
6
  export type GreaterThan<A extends number, B extends number, Fail = never> = And<IsWhole<A>, IsWhole<B>> extends false ? Fail : number extends A ? Fail : number extends B ? Fail : Equal<A, B> extends true ? false : Xor<IsPositive<A>, IsPositive<B>> extends true ? IsPositive<A> : Or<IsPositive<A>, IsPositive<B>> extends false ? GreaterThan.ForWholeNumber<B, A> : GreaterThan.ForWholeNumber<A, B>;
8
7
  export declare namespace GreaterThan {
@@ -1 +1 @@
1
- {"version":3,"file":"GreaterThan.d.ts","sourceRoot":"","sources":["../../ts/math/GreaterThan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,IAAI,GAAG,KAAK,IAAI,GAAG,CAC9E,OAAO,CAAC,CAAC,CAAC,EACV,OAAO,CAAC,CAAC,CAAC,CACV,SAAS,KAAK,GACZ,IAAI,GACJ,MAAM,SAAS,CAAC,GAChB,IAAI,GACJ,MAAM,SAAS,CAAC,GAChB,IAAI,GACJ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACxB,KAAK,GACL,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAC9C,UAAU,CAAC,CAAC,CAAC,GACb,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,GAC9C,WAAW,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAChC,WAAW,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAEnC,yBAAiB,WAAW,CAAC;IAC5B,KAAY,cAAc,CACzB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,IACb,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GAC7C,EAAE,SAAS,MAAM,EAAE,GAClB,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GAC3C,EAAE,SAAS,MAAM,EAAE,GAClB,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,GAC9C,CAAC,SAAS,MAAM,GACf,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAClC,GAAG,SAAS,MAAM,EAAE,GACnB,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAClC,GAAG,SAAS,MAAM,EAAE,GACnB,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,GACvB,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,CAAA;IAER,KAAY,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,SAAS,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACzG,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GACjC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;CACxC"}
1
+ {"version":3,"file":"GreaterThan.d.ts","sourceRoot":"","sources":["../../ts/math/GreaterThan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,IAAI,GAAG,KAAK,IAAI,GAAG,CAC9E,OAAO,CAAC,CAAC,CAAC,EACV,OAAO,CAAC,CAAC,CAAC,CACV,SAAS,KAAK,GACZ,IAAI,GACJ,MAAM,SAAS,CAAC,GAChB,IAAI,GACJ,MAAM,SAAS,CAAC,GAChB,IAAI,GACJ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACxB,KAAK,GACL,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAC9C,UAAU,CAAC,CAAC,CAAC,GACb,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,GAC9C,WAAW,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAChC,WAAW,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAEnC,yBAAiB,WAAW,CAAC;IAC5B,KAAY,cAAc,CACzB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,IACb,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GAC7C,EAAE,SAAS,MAAM,EAAE,GAClB,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GAC3C,EAAE,SAAS,MAAM,EAAE,GAClB,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,GAC9C,CAAC,SAAS,MAAM,GACf,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAClC,GAAG,SAAS,MAAM,EAAE,GACnB,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAClC,GAAG,SAAS,MAAM,EAAE,GACnB,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,GACvB,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,CAAA;IAER,KAAY,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,SAAS,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACzG,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GACjC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;CACxC"}
@@ -1,8 +1,7 @@
1
1
  import type { PadLeft, Some, Tail } from '../array_plus/index.js';
2
2
  import type { And } from '../predicates/index.js';
3
+ import type { IsPositive, IsWhole } from '../number_plus/number.js';
3
4
  import type { Digit, DigitArray } from './Digit.js';
4
- import type { IsPositive } from './IsPositive.js';
5
- import type { IsWhole } from './IsWhole.js';
6
5
  import type { Max } from './Max.js';
7
6
  export type Subtract<A extends number, B extends number, Fail = never> = And<And<IsPositive<A>, IsWhole<A>>, And<IsPositive<B>, IsWhole<B>>> extends true ? DigitArray.Shift10<DigitArray.FromNumber<A>> extends infer DA ? DA extends number[] ? DigitArray.FromNumber<B> extends infer DB ? DB extends number[] ? Max<DA['length'], DB['length']> extends infer M ? M extends number ? PadLeft<DA, M, 0> extends infer PDA ? PDA extends number[] ? PadLeft<DB, M, 0> extends infer PDB ? PDB extends number[] ? Subtract.DigitArray<[], PDA, PDB> extends infer Result ? Result extends number[] ? Some<Result, never, 'strict'> extends true ? Fail : DigitArray.ToNumber<Result> : Fail : Fail : Fail : Fail : Fail : Fail : Fail : Fail : Fail : Fail : Fail : Fail : Fail;
8
7
  export declare namespace Subtract {
@@ -1 +1 @@
1
- {"version":3,"file":"Subtract.d.ts","sourceRoot":"","sources":["../../ts/math/Subtract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,IAAI,GAAG,KAAK,IAAI,GAAG,CAC3E,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAC9B,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAC9B,SAAS,IAAI,GACX,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GAC5D,EAAE,SAAS,MAAM,EAAE,GAClB,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GACxC,EAAE,SAAS,MAAM,EAAE,GAClB,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,GAC9C,CAAC,SAAS,MAAM,GACf,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAClC,GAAG,SAAS,MAAM,EAAE,GACnB,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAClC,GAAG,SAAS,MAAM,EAAE,GACnB,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,MAAM,MAAM,GACrD,MAAM,SAAS,MAAM,EAAE,GACtB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,IAAI,GACzC,IAAI,GACJ,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,GAC5B,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,CAAA;AAEP,yBAAiB,QAAQ,CAAC;IACzB,KAAY,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,CAAC,SAAS,MAAM,EAAE,EAAE,CAAC,SAAS,MAAM,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACvG,CAAC,GACD,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAE1D,KAAY,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAChF,GAAG,MAAM,CAAC;QACV,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;KACnB,GACE,CAAC,CAAC,QAAQ,CAAC,GACX,KAAK,CAAA;CACR;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"Subtract.d.ts","sourceRoot":"","sources":["../../ts/math/Subtract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,IAAI,GAAG,KAAK,IAAI,GAAG,CAC3E,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAC9B,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAC9B,SAAS,IAAI,GACX,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GAC5D,EAAE,SAAS,MAAM,EAAE,GAClB,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GACxC,EAAE,SAAS,MAAM,EAAE,GAClB,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,GAC9C,CAAC,SAAS,MAAM,GACf,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAClC,GAAG,SAAS,MAAM,EAAE,GACnB,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAClC,GAAG,SAAS,MAAM,EAAE,GACnB,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,MAAM,MAAM,GACrD,MAAM,SAAS,MAAM,EAAE,GACtB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,IAAI,GACzC,IAAI,GACJ,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,GAC5B,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,CAAA;AAEP,yBAAiB,QAAQ,CAAC;IACzB,KAAY,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,CAAC,SAAS,MAAM,EAAE,EAAE,CAAC,SAAS,MAAM,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACvG,CAAC,GACD,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAE1D,KAAY,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAChF,GAAG,MAAM,CAAC;QACV,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;KACnB,GACE,CAAC,CAAC,QAAQ,CAAC,GACX,KAAK,CAAA;CACR;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA"}
@@ -2,8 +2,6 @@ export type { Abs } from './Abs.js';
2
2
  export type { Add, Increment } from './Add.js';
3
3
  export type { Digit, DigitArray } from './Digit.js';
4
4
  export type { GreaterThan } from './GreaterThan.js';
5
- export type { IsPositive } from './IsPositive.js';
6
- export type { IsWhole } from './IsWhole.js';
7
5
  export type { Max } from './Max.js';
8
6
  export type { Decrement, Subtract } from './Subtract.js';
9
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ts/math/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAC9C,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACnD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,YAAY,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ts/math/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAC9C,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACnD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,YAAY,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA"}
@@ -1,3 +1,5 @@
1
+ import type { IsNever } from '../PrimitiveTypes.js';
2
+ import type { IsAny } from '../any_plus/any.js';
1
3
  /**
2
4
  * Either number or bigint.
3
5
  */
@@ -18,10 +20,39 @@ export type Zero = 0 | 0n;
18
20
  *
19
21
  * type R = Integer<0, true, false> // true
20
22
  * type R = Integer<1.1, true, false> // false
23
+ * ```
24
+ */
25
+ export type Integer<N extends Numeric, Then = N, Else = never> = IsNever<N, Else, `${N}` extends `${bigint}` ? Then : Else>;
26
+ /**
27
+ * Check if the value is an integer.
28
+ *
29
+ * ```
30
+ * import type { IsInteger } from 'type-plus'
31
+ *
32
+ * type R = IsInteger<0> // 0
33
+ * type R = IsInteger<1.1> // never
34
+ * type R = IsInteger<number> // never as it contains non-integer
35
+ *
36
+ * type R = IsInteger<0, true, false> // true
37
+ * type R = IsInteger<1.1, true, false> // false
38
+ * ```
39
+ */
40
+ export type IsInteger<N extends Numeric, Then = true, Else = false> = Integer<N, Then, Else>;
41
+ /**
42
+ * Check if the value is an integer.
43
+ *
44
+ * ```
45
+ * import type { IsWhole } from 'type-plus'
46
+ *
47
+ * type R = IsWhole<0> // 0
48
+ * type R = IsWhole<1.1> // never
49
+ * type R = IsWhole<number> // never as it contains non-integer
21
50
  *
51
+ * type R = IsWhole<0, true, false> // true
52
+ * type R = IsWhole<1.1, true, false> // false
22
53
  * ```
23
54
  */
24
- export type Integer<N extends Numeric, Then = N, Else = never> = `${N}` extends `${bigint}` ? Then : Else;
55
+ export type IsWhole<N extends Numeric, Then = true, Else = false> = Integer<N, Then, Else>;
25
56
  /**
26
57
  * Check if the value is a negative number.
27
58
  *
@@ -35,7 +66,7 @@ export type Integer<N extends Numeric, Then = N, Else = never> = `${N}` extends
35
66
  * type R = Negative<1, true, false> // false
36
67
  * ```
37
68
  */
38
- export type Negative<N extends Numeric, Then = N, Else = never> = N extends Zero ? Else : `${N}` extends `-${string}` ? Then : Else;
69
+ export type Negative<N extends Numeric, Then = N, Else = never> = IsNever<N, Else, N extends Zero ? Else : `${N}` extends `-${string}` ? Then : Else>;
39
70
  /**
40
71
  * Check if the value it not a negative number.
41
72
  *
@@ -60,5 +91,38 @@ export type NonNegative<N extends Numeric, Then = N, Else = never> = Negative<N,
60
91
  * type R = NumberType<1> // false
61
92
  * ```
62
93
  */
63
- export type NumberType<T extends number, Then = T, Else = never> = number extends T ? Then : Else;
94
+ export type NumberType<T, Then = T, Else = never> = IsAny<T, Else, [
95
+ number,
96
+ T
97
+ ] extends [T, number] ? Then : Else>;
98
+ /**
99
+ * Check if the value is a positive number.
100
+ *
101
+ * ```
102
+ * import type { Positive } from 'type-plus'
103
+ *
104
+ * type R = Positive<1> // 1
105
+ * type R = Positive<0> // never
106
+ * type R = Positive<-1> // never
107
+ *
108
+ * type R = Positive<1, true, false> // true
109
+ * type R = Positive<-1, true, false> // false
110
+ * ```
111
+ */
112
+ export type Positive<N extends Numeric, Then = N, Else = never> = IsNever<N, Else, number extends N ? Else : N extends Zero ? Then : `${N}` extends `-${string}` ? Else : Then>;
113
+ /**
114
+ * Is the value `N` a positive number.
115
+ *
116
+ * ```
117
+ * import type { IsPositive } from 'type-plus'
118
+ *
119
+ * type R = IsPositive<1> // true
120
+ * type R = IsPositive<0> // false
121
+ * type R = IsPositive<-1> // false
122
+ *
123
+ * type R = IsPositive<1, 'good', 'bad'> // 'good'
124
+ * type R = IsPositive<-1, 'good', 'bad> // 'bad'
125
+ * ```
126
+ */
127
+ export type IsPositive<N extends Numeric, Then = true, Else = false> = Positive<N, Then, Else>;
64
128
  //# sourceMappingURL=number.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../ts/number_plus/number.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;AAErC;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAEzB;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAEzG;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,CAAC,SAAS,IAAI,GAC7E,IAAI,GACJ,GAAG,CAAC,EAAE,SAAS,IAAI,MAAM,EAAE,GAC3B,IAAI,GACJ,IAAI,CAAA;AAEP;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAE5F;;;;;;;;;GASG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,MAAM,SAAS,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../ts/number_plus/number.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE/C;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;AAErC;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAEzB;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,OAAO,CACvE,CAAC,EACD,IAAI,EACJ,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CACxC,CAAA;AACD;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAE5F;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAE1F;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,OAAO,CACxE,CAAC,EACD,IAAI,EACJ,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,EAAE,SAAS,IAAI,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CACjE,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAE5F;;;;;;;;;GASG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,KAAK,CACxD,CAAC,EACD,IAAI,EACJ;IAAC,MAAM;IAAE,CAAC;CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI,CAC7C,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,OAAO,CACxE,CAAC,EACD,IAAI,EACJ,MAAM,SAAS,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,EAAE,SAAS,IAAI,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAC3F,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { Add } from '../math/Add.js';
2
+ import { ArrayType } from './array.js';
3
+ export type Sum<A extends ArrayType<number[]>> = A['length'] extends 0 ? 0 : A['length'] extends 1 ? A[0] : A['length'] extends 2 ? Add<A[0], A[1]> : A extends [infer F extends number, infer S extends number, ...infer Tail extends number[]] ? Sum<[Add<F, S>, ...Tail]> : never;
4
+ //# sourceMappingURL=array_number.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array_number.d.ts","sourceRoot":"","sources":["../../ts/array_plus/array_number.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACnE,CAAC,GACD,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACrB,CAAC,CAAC,CAAC,CAAC,GACJ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACrB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GACf,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,MAAM,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,IAAI,SAAS,MAAM,EAAE,CAAC,GAC1F,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GACzB,KAAK,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=array_number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array_number.js","sourceRoot":"","sources":["../../ts/array_plus/array_number.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
- import type { DigitArray, IsPositive, IsWhole } from '../math/index.js';
1
+ import type { DigitArray } from '../math/index.js';
2
+ import type { IsPositive, IsWhole } from '../number_plus/number.js';
2
3
  /**
3
4
  * Creates `Tuple<T>` with `L` number of elements.
4
5
  * @note Other cool implementations by @lazytype, @jcalz:
@@ -1 +1 @@
1
- {"version":3,"file":"create_tuple.d.ts","sourceRoot":"","sources":["../../ts/array_plus/create_tuple.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAEvE;;;;;GAKG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,OAAO,EAAE,IAAI,GAAG,KAAK,IAAI,MAAM,SAAS,CAAC,GACpF,CAAC,EAAE,GACH,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,GAC1B,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GACtB,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GACnD,IAAI,GACL,IAAI,CAAA"}
1
+ {"version":3,"file":"create_tuple.d.ts","sourceRoot":"","sources":["../../ts/array_plus/create_tuple.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAEnE;;;;;GAKG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,OAAO,EAAE,IAAI,GAAG,KAAK,IAAI,MAAM,SAAS,CAAC,GACpF,CAAC,EAAE,GACH,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,GAC1B,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GACtB,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GACnD,IAAI,GACL,IAAI,CAAA"}
package/esm/index.d.ts CHANGED
@@ -10,7 +10,7 @@ export * from './assertion/index.js';
10
10
  export * from './class/index.js';
11
11
  export * from './function/index.js';
12
12
  export * from './functional/index.js';
13
- export type { Abs, Add, Decrement, Digit, DigitArray, GreaterThan, Increment, IsPositive, IsWhole, Max, Subtract } from './math/index.js';
13
+ export type * from './math/index.js';
14
14
  export * from './nodejs/index.js';
15
15
  export * from './nominal-types/index.js';
16
16
  export * from './number_plus/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAC7D,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACrF,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGlE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,cAAc,qBAAqB,CAAA;AACnC,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AACvD,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,YAAY,EACX,GAAG,EACH,GAAG,EACH,SAAS,EACT,KAAK,EACL,UAAU,EACV,WAAW,EACX,SAAS,EACT,UAAU,EACV,OAAO,EACP,GAAG,EACH,QAAQ,EACR,MAAM,iBAAiB,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAA;AAC1D,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAC7D,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACrF,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGlE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,cAAc,qBAAqB,CAAA;AACnC,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AACvD,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,mBAAmB,iBAAiB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAA;AAC1D,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA"}
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAO7D,cAAc,qBAAqB,CAAA;AACnC,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AACvD,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AAcrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAA;AAC1D,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,+BAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAO7D,cAAc,qBAAqB,CAAA;AACnC,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AACvD,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AAErC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAA;AAC1D,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,+BAA+B"}
package/esm/math/Add.d.ts CHANGED
@@ -1,8 +1,7 @@
1
1
  import type { PadLeft } from '../array_plus/index.js';
2
2
  import type { And } from '../predicates/index.js';
3
+ import type { IsPositive, IsWhole } from '../number_plus/number.js';
3
4
  import type { Digit, DigitArray } from './Digit.js';
4
- import type { IsPositive } from './IsPositive.js';
5
- import type { IsWhole } from './IsWhole.js';
6
5
  import type { Max } from './Max.js';
7
6
  /**
8
7
  * Add two number literals.
@@ -1 +1 @@
1
- {"version":3,"file":"Add.d.ts","sourceRoot":"","sources":["../../ts/math/Add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Add.d.ts","sourceRoot":"","sources":["../../ts/math/Add.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import type { Tail } from '../array_plus/index.js';
2
+ import type { IsPositive, IsWhole } from '../number_plus/number.js';
2
3
  import type { And } from '../predicates/index.js';
3
- import type { IsPositive } from './IsPositive.js';
4
- import type { IsWhole } from './IsWhole.js';
5
4
  export declare namespace Digit {
6
5
  type ToTuple<T = 1> = {
7
6
  [k in number]: any[];
@@ -1 +1 @@
1
- {"version":3,"file":"Digit.d.ts","sourceRoot":"","sources":["../../ts/math/Digit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Digit.d.ts","sourceRoot":"","sources":["../../ts/math/Digit.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import type { Head, PadLeft, Tail } from '../array_plus/index.js';
2
+ import type { IsPositive, IsWhole } from '../number_plus/number.js';
2
3
  import type { And, Equal, Or, Xor } from '../predicates/index.js';
3
4
  import type { Digit, DigitArray } from './Digit.js';
4
- import type { IsPositive } from './IsPositive.js';
5
- import type { IsWhole } from './IsWhole.js';
6
5
  import type { Max } from './Max.js';
7
6
  export type GreaterThan<A extends number, B extends number, Fail = never> = And<IsWhole<A>, IsWhole<B>> extends false ? Fail : number extends A ? Fail : number extends B ? Fail : Equal<A, B> extends true ? false : Xor<IsPositive<A>, IsPositive<B>> extends true ? IsPositive<A> : Or<IsPositive<A>, IsPositive<B>> extends false ? GreaterThan.ForWholeNumber<B, A> : GreaterThan.ForWholeNumber<A, B>;
8
7
  export declare namespace GreaterThan {
@@ -1 +1 @@
1
- {"version":3,"file":"GreaterThan.d.ts","sourceRoot":"","sources":["../../ts/math/GreaterThan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,IAAI,GAAG,KAAK,IAAI,GAAG,CAC9E,OAAO,CAAC,CAAC,CAAC,EACV,OAAO,CAAC,CAAC,CAAC,CACV,SAAS,KAAK,GACZ,IAAI,GACJ,MAAM,SAAS,CAAC,GAChB,IAAI,GACJ,MAAM,SAAS,CAAC,GAChB,IAAI,GACJ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACxB,KAAK,GACL,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAC9C,UAAU,CAAC,CAAC,CAAC,GACb,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,GAC9C,WAAW,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAChC,WAAW,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAEnC,yBAAiB,WAAW,CAAC;IAC5B,KAAY,cAAc,CACzB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,IACb,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GAC7C,EAAE,SAAS,MAAM,EAAE,GAClB,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GAC3C,EAAE,SAAS,MAAM,EAAE,GAClB,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,GAC9C,CAAC,SAAS,MAAM,GACf,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAClC,GAAG,SAAS,MAAM,EAAE,GACnB,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAClC,GAAG,SAAS,MAAM,EAAE,GACnB,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,GACvB,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,CAAA;IAER,KAAY,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,SAAS,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACzG,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GACjC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;CACxC"}
1
+ {"version":3,"file":"GreaterThan.d.ts","sourceRoot":"","sources":["../../ts/math/GreaterThan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,IAAI,GAAG,KAAK,IAAI,GAAG,CAC9E,OAAO,CAAC,CAAC,CAAC,EACV,OAAO,CAAC,CAAC,CAAC,CACV,SAAS,KAAK,GACZ,IAAI,GACJ,MAAM,SAAS,CAAC,GAChB,IAAI,GACJ,MAAM,SAAS,CAAC,GAChB,IAAI,GACJ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACxB,KAAK,GACL,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAC9C,UAAU,CAAC,CAAC,CAAC,GACb,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,GAC9C,WAAW,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAChC,WAAW,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAEnC,yBAAiB,WAAW,CAAC;IAC5B,KAAY,cAAc,CACzB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,IACb,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GAC7C,EAAE,SAAS,MAAM,EAAE,GAClB,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GAC3C,EAAE,SAAS,MAAM,EAAE,GAClB,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,GAC9C,CAAC,SAAS,MAAM,GACf,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAClC,GAAG,SAAS,MAAM,EAAE,GACnB,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAClC,GAAG,SAAS,MAAM,EAAE,GACnB,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,GACvB,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK,CAAA;IAER,KAAY,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,SAAS,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACzG,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GACjC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;CACxC"}
@@ -1,8 +1,7 @@
1
1
  import type { PadLeft, Some, Tail } from '../array_plus/index.js';
2
2
  import type { And } from '../predicates/index.js';
3
+ import type { IsPositive, IsWhole } from '../number_plus/number.js';
3
4
  import type { Digit, DigitArray } from './Digit.js';
4
- import type { IsPositive } from './IsPositive.js';
5
- import type { IsWhole } from './IsWhole.js';
6
5
  import type { Max } from './Max.js';
7
6
  export type Subtract<A extends number, B extends number, Fail = never> = And<And<IsPositive<A>, IsWhole<A>>, And<IsPositive<B>, IsWhole<B>>> extends true ? DigitArray.Shift10<DigitArray.FromNumber<A>> extends infer DA ? DA extends number[] ? DigitArray.FromNumber<B> extends infer DB ? DB extends number[] ? Max<DA['length'], DB['length']> extends infer M ? M extends number ? PadLeft<DA, M, 0> extends infer PDA ? PDA extends number[] ? PadLeft<DB, M, 0> extends infer PDB ? PDB extends number[] ? Subtract.DigitArray<[], PDA, PDB> extends infer Result ? Result extends number[] ? Some<Result, never, 'strict'> extends true ? Fail : DigitArray.ToNumber<Result> : Fail : Fail : Fail : Fail : Fail : Fail : Fail : Fail : Fail : Fail : Fail : Fail : Fail;
8
7
  export declare namespace Subtract {
@@ -1 +1 @@
1
- {"version":3,"file":"Subtract.d.ts","sourceRoot":"","sources":["../../ts/math/Subtract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,IAAI,GAAG,KAAK,IAAI,GAAG,CAC3E,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAC9B,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAC9B,SAAS,IAAI,GACX,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GAC5D,EAAE,SAAS,MAAM,EAAE,GAClB,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GACxC,EAAE,SAAS,MAAM,EAAE,GAClB,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,GAC9C,CAAC,SAAS,MAAM,GACf,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAClC,GAAG,SAAS,MAAM,EAAE,GACnB,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAClC,GAAG,SAAS,MAAM,EAAE,GACnB,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,MAAM,MAAM,GACrD,MAAM,SAAS,MAAM,EAAE,GACtB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,IAAI,GACzC,IAAI,GACJ,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,GAC5B,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,CAAA;AAEP,yBAAiB,QAAQ,CAAC;IACzB,KAAY,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,CAAC,SAAS,MAAM,EAAE,EAAE,CAAC,SAAS,MAAM,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACvG,CAAC,GACD,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAE1D,KAAY,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAChF,GAAG,MAAM,CAAC;QACV,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;KACnB,GACE,CAAC,CAAC,QAAQ,CAAC,GACX,KAAK,CAAA;CACR;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"Subtract.d.ts","sourceRoot":"","sources":["../../ts/math/Subtract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,IAAI,GAAG,KAAK,IAAI,GAAG,CAC3E,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAC9B,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAC9B,SAAS,IAAI,GACX,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GAC5D,EAAE,SAAS,MAAM,EAAE,GAClB,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GACxC,EAAE,SAAS,MAAM,EAAE,GAClB,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,GAC9C,CAAC,SAAS,MAAM,GACf,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAClC,GAAG,SAAS,MAAM,EAAE,GACnB,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAClC,GAAG,SAAS,MAAM,EAAE,GACnB,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,MAAM,MAAM,GACrD,MAAM,SAAS,MAAM,EAAE,GACtB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,IAAI,GACzC,IAAI,GACJ,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,GAC5B,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,CAAA;AAEP,yBAAiB,QAAQ,CAAC;IACzB,KAAY,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,CAAC,SAAS,MAAM,EAAE,EAAE,CAAC,SAAS,MAAM,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACvG,CAAC,GACD,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAE1D,KAAY,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAChF,GAAG,MAAM,CAAC;QACV,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;KACnB,GACE,CAAC,CAAC,QAAQ,CAAC,GACX,KAAK,CAAA;CACR;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA"}
@@ -2,8 +2,6 @@ export type { Abs } from './Abs.js';
2
2
  export type { Add, Increment } from './Add.js';
3
3
  export type { Digit, DigitArray } from './Digit.js';
4
4
  export type { GreaterThan } from './GreaterThan.js';
5
- export type { IsPositive } from './IsPositive.js';
6
- export type { IsWhole } from './IsWhole.js';
7
5
  export type { Max } from './Max.js';
8
6
  export type { Decrement, Subtract } from './Subtract.js';
9
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ts/math/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAC9C,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACnD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,YAAY,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ts/math/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAC9C,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACnD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,YAAY,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA"}
@@ -1,3 +1,5 @@
1
+ import type { IsNever } from '../PrimitiveTypes.js';
2
+ import type { IsAny } from '../any_plus/any.js';
1
3
  /**
2
4
  * Either number or bigint.
3
5
  */
@@ -18,10 +20,39 @@ export type Zero = 0 | 0n;
18
20
  *
19
21
  * type R = Integer<0, true, false> // true
20
22
  * type R = Integer<1.1, true, false> // false
23
+ * ```
24
+ */
25
+ export type Integer<N extends Numeric, Then = N, Else = never> = IsNever<N, Else, `${N}` extends `${bigint}` ? Then : Else>;
26
+ /**
27
+ * Check if the value is an integer.
28
+ *
29
+ * ```
30
+ * import type { IsInteger } from 'type-plus'
31
+ *
32
+ * type R = IsInteger<0> // 0
33
+ * type R = IsInteger<1.1> // never
34
+ * type R = IsInteger<number> // never as it contains non-integer
35
+ *
36
+ * type R = IsInteger<0, true, false> // true
37
+ * type R = IsInteger<1.1, true, false> // false
38
+ * ```
39
+ */
40
+ export type IsInteger<N extends Numeric, Then = true, Else = false> = Integer<N, Then, Else>;
41
+ /**
42
+ * Check if the value is an integer.
43
+ *
44
+ * ```
45
+ * import type { IsWhole } from 'type-plus'
46
+ *
47
+ * type R = IsWhole<0> // 0
48
+ * type R = IsWhole<1.1> // never
49
+ * type R = IsWhole<number> // never as it contains non-integer
21
50
  *
51
+ * type R = IsWhole<0, true, false> // true
52
+ * type R = IsWhole<1.1, true, false> // false
22
53
  * ```
23
54
  */
24
- export type Integer<N extends Numeric, Then = N, Else = never> = `${N}` extends `${bigint}` ? Then : Else;
55
+ export type IsWhole<N extends Numeric, Then = true, Else = false> = Integer<N, Then, Else>;
25
56
  /**
26
57
  * Check if the value is a negative number.
27
58
  *
@@ -35,7 +66,7 @@ export type Integer<N extends Numeric, Then = N, Else = never> = `${N}` extends
35
66
  * type R = Negative<1, true, false> // false
36
67
  * ```
37
68
  */
38
- export type Negative<N extends Numeric, Then = N, Else = never> = N extends Zero ? Else : `${N}` extends `-${string}` ? Then : Else;
69
+ export type Negative<N extends Numeric, Then = N, Else = never> = IsNever<N, Else, N extends Zero ? Else : `${N}` extends `-${string}` ? Then : Else>;
39
70
  /**
40
71
  * Check if the value it not a negative number.
41
72
  *
@@ -60,5 +91,38 @@ export type NonNegative<N extends Numeric, Then = N, Else = never> = Negative<N,
60
91
  * type R = NumberType<1> // false
61
92
  * ```
62
93
  */
63
- export type NumberType<T extends number, Then = T, Else = never> = number extends T ? Then : Else;
94
+ export type NumberType<T, Then = T, Else = never> = IsAny<T, Else, [
95
+ number,
96
+ T
97
+ ] extends [T, number] ? Then : Else>;
98
+ /**
99
+ * Check if the value is a positive number.
100
+ *
101
+ * ```
102
+ * import type { Positive } from 'type-plus'
103
+ *
104
+ * type R = Positive<1> // 1
105
+ * type R = Positive<0> // never
106
+ * type R = Positive<-1> // never
107
+ *
108
+ * type R = Positive<1, true, false> // true
109
+ * type R = Positive<-1, true, false> // false
110
+ * ```
111
+ */
112
+ export type Positive<N extends Numeric, Then = N, Else = never> = IsNever<N, Else, number extends N ? Else : N extends Zero ? Then : `${N}` extends `-${string}` ? Else : Then>;
113
+ /**
114
+ * Is the value `N` a positive number.
115
+ *
116
+ * ```
117
+ * import type { IsPositive } from 'type-plus'
118
+ *
119
+ * type R = IsPositive<1> // true
120
+ * type R = IsPositive<0> // false
121
+ * type R = IsPositive<-1> // false
122
+ *
123
+ * type R = IsPositive<1, 'good', 'bad'> // 'good'
124
+ * type R = IsPositive<-1, 'good', 'bad> // 'bad'
125
+ * ```
126
+ */
127
+ export type IsPositive<N extends Numeric, Then = true, Else = false> = Positive<N, Then, Else>;
64
128
  //# sourceMappingURL=number.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../ts/number_plus/number.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;AAErC;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAEzB;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAEzG;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,CAAC,SAAS,IAAI,GAC7E,IAAI,GACJ,GAAG,CAAC,EAAE,SAAS,IAAI,MAAM,EAAE,GAC3B,IAAI,GACJ,IAAI,CAAA;AAEP;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAE5F;;;;;;;;;GASG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,MAAM,SAAS,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../ts/number_plus/number.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE/C;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;AAErC;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAEzB;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,OAAO,CACvE,CAAC,EACD,IAAI,EACJ,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CACxC,CAAA;AACD;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAE5F;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAE1F;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,OAAO,CACxE,CAAC,EACD,IAAI,EACJ,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,EAAE,SAAS,IAAI,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CACjE,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAE5F;;;;;;;;;GASG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,KAAK,CACxD,CAAC,EACD,IAAI,EACJ;IAAC,MAAM;IAAE,CAAC;CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI,CAC7C,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,OAAO,CACxE,CAAC,EACD,IAAI,EACJ,MAAM,SAAS,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,EAAE,SAAS,IAAI,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAC3F,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "type-plus",
3
- "version": "6.1.0",
3
+ "version": "6.2.0",
4
4
  "description": "Provides additional types for TypeScript.",
5
5
  "homepage": "https://github.com/unional/type-plus",
6
6
  "bugs": {
@@ -0,0 +1,12 @@
1
+ import { Add } from '../math/Add.js'
2
+ import { ArrayType } from './array.js'
3
+
4
+ export type Sum<A extends ArrayType<number[]>> = A['length'] extends 0
5
+ ? 0
6
+ : A['length'] extends 1
7
+ ? A[0]
8
+ : A['length'] extends 2
9
+ ? Add<A[0], A[1]>
10
+ : A extends [infer F extends number, infer S extends number, ...infer Tail extends number[]]
11
+ ? Sum<[Add<F, S>, ...Tail]>
12
+ : never
@@ -1,4 +1,5 @@
1
- import type { DigitArray, IsPositive, IsWhole } from '../math/index.js'
1
+ import type { DigitArray } from '../math/index.js'
2
+ import type { IsPositive, IsWhole } from '../number_plus/number.js'
2
3
 
3
4
  /**
4
5
  * Creates `Tuple<T>` with `L` number of elements.
package/ts/index.ts CHANGED
@@ -13,19 +13,7 @@ export * from './assertion/index.js'
13
13
  export * from './class/index.js'
14
14
  export * from './function/index.js'
15
15
  export * from './functional/index.js'
16
- export type {
17
- Abs,
18
- Add,
19
- Decrement,
20
- Digit,
21
- DigitArray,
22
- GreaterThan,
23
- Increment,
24
- IsPositive,
25
- IsWhole,
26
- Max,
27
- Subtract
28
- } from './math/index.js'
16
+ export type * from './math/index.js'
29
17
  export * from './nodejs/index.js'
30
18
  export * from './nominal-types/index.js'
31
19
  export * from './number_plus/index.js'
package/ts/math/Add.ts CHANGED
@@ -1,9 +1,7 @@
1
1
  import type { PadLeft } from '../array_plus/index.js'
2
2
  import type { And } from '../predicates/index.js'
3
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
3
+ import type { IsPositive, IsWhole } from '../number_plus/number.js'
4
4
  import type { Digit, DigitArray } from './Digit.js'
5
- import type { IsPositive } from './IsPositive.js'
6
- import type { IsWhole } from './IsWhole.js'
7
5
  import type { Max } from './Max.js'
8
6
 
9
7
  /**
package/ts/math/Digit.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import type { Tail } from '../array_plus/index.js'
2
+ import type { IsPositive, IsWhole } from '../number_plus/number.js'
2
3
  import type { And } from '../predicates/index.js'
3
- import type { IsPositive } from './IsPositive.js'
4
- import type { IsWhole } from './IsWhole.js'
5
4
 
6
5
  export namespace Digit {
7
6
  export type ToTuple<T = 1> = {
@@ -1,8 +1,7 @@
1
1
  import type { Head, PadLeft, Tail } from '../array_plus/index.js'
2
+ import type { IsPositive, IsWhole } from '../number_plus/number.js'
2
3
  import type { And, Equal, Or, Xor } from '../predicates/index.js'
3
4
  import type { Digit, DigitArray } from './Digit.js'
4
- import type { IsPositive } from './IsPositive.js'
5
- import type { IsWhole } from './IsWhole.js'
6
5
  import type { Max } from './Max.js'
7
6
 
8
7
  export type GreaterThan<A extends number, B extends number, Fail = never> = And<
@@ -1,9 +1,8 @@
1
1
  import type { PadLeft, Some, Tail } from '../array_plus/index.js'
2
2
  import type { And } from '../predicates/index.js'
3
3
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
4
+ import type { IsPositive, IsWhole } from '../number_plus/number.js'
4
5
  import type { Digit, DigitArray } from './Digit.js'
5
- import type { IsPositive } from './IsPositive.js'
6
- import type { IsWhole } from './IsWhole.js'
7
6
  import type { Max } from './Max.js'
8
7
 
9
8
  export type Subtract<A extends number, B extends number, Fail = never> = And<
package/ts/math/index.ts CHANGED
@@ -2,7 +2,5 @@ export type { Abs } from './Abs.js'
2
2
  export type { Add, Increment } from './Add.js'
3
3
  export type { Digit, DigitArray } from './Digit.js'
4
4
  export type { GreaterThan } from './GreaterThan.js'
5
- export type { IsPositive } from './IsPositive.js'
6
- export type { IsWhole } from './IsWhole.js'
7
5
  export type { Max } from './Max.js'
8
6
  export type { Decrement, Subtract } from './Subtract.js'
@@ -1,3 +1,6 @@
1
+ import type { IsNever } from '../PrimitiveTypes.js'
2
+ import type { IsAny } from '../any_plus/any.js'
3
+
1
4
  /**
2
5
  * Either number or bigint.
3
6
  */
@@ -20,10 +23,44 @@ export type Zero = 0 | 0n
20
23
  *
21
24
  * type R = Integer<0, true, false> // true
22
25
  * type R = Integer<1.1, true, false> // false
26
+ * ```
27
+ */
28
+ export type Integer<N extends Numeric, Then = N, Else = never> = IsNever<
29
+ N,
30
+ Else,
31
+ `${N}` extends `${bigint}` ? Then : Else
32
+ >
33
+ /**
34
+ * Check if the value is an integer.
35
+ *
36
+ * ```
37
+ * import type { IsInteger } from 'type-plus'
38
+ *
39
+ * type R = IsInteger<0> // 0
40
+ * type R = IsInteger<1.1> // never
41
+ * type R = IsInteger<number> // never as it contains non-integer
42
+ *
43
+ * type R = IsInteger<0, true, false> // true
44
+ * type R = IsInteger<1.1, true, false> // false
45
+ * ```
46
+ */
47
+ export type IsInteger<N extends Numeric, Then = true, Else = false> = Integer<N, Then, Else>
48
+
49
+ /**
50
+ * Check if the value is an integer.
51
+ *
52
+ * ```
53
+ * import type { IsWhole } from 'type-plus'
54
+ *
55
+ * type R = IsWhole<0> // 0
56
+ * type R = IsWhole<1.1> // never
57
+ * type R = IsWhole<number> // never as it contains non-integer
23
58
  *
59
+ * type R = IsWhole<0, true, false> // true
60
+ * type R = IsWhole<1.1, true, false> // false
24
61
  * ```
25
62
  */
26
- export type Integer<N extends Numeric, Then = N, Else = never> = `${N}` extends `${bigint}` ? Then : Else
63
+ export type IsWhole<N extends Numeric, Then = true, Else = false> = Integer<N, Then, Else>
27
64
 
28
65
  /**
29
66
  * Check if the value is a negative number.
@@ -38,11 +75,11 @@ export type Integer<N extends Numeric, Then = N, Else = never> = `${N}` extends
38
75
  * type R = Negative<1, true, false> // false
39
76
  * ```
40
77
  */
41
- export type Negative<N extends Numeric, Then = N, Else = never> = N extends Zero
42
- ? Else
43
- : `${N}` extends `-${string}`
44
- ? Then
45
- : Else
78
+ export type Negative<N extends Numeric, Then = N, Else = never> = IsNever<
79
+ N,
80
+ Else,
81
+ N extends Zero ? Else : `${N}` extends `-${string}` ? Then : Else
82
+ >
46
83
 
47
84
  /**
48
85
  * Check if the value it not a negative number.
@@ -69,4 +106,44 @@ export type NonNegative<N extends Numeric, Then = N, Else = never> = Negative<N,
69
106
  * type R = NumberType<1> // false
70
107
  * ```
71
108
  */
72
- export type NumberType<T extends number, Then = T, Else = never> = number extends T ? Then : Else
109
+ export type NumberType<T, Then = T, Else = never> = IsAny<
110
+ T,
111
+ Else,
112
+ [number, T] extends [T, number] ? Then : Else
113
+ >
114
+
115
+ /**
116
+ * Check if the value is a positive number.
117
+ *
118
+ * ```
119
+ * import type { Positive } from 'type-plus'
120
+ *
121
+ * type R = Positive<1> // 1
122
+ * type R = Positive<0> // never
123
+ * type R = Positive<-1> // never
124
+ *
125
+ * type R = Positive<1, true, false> // true
126
+ * type R = Positive<-1, true, false> // false
127
+ * ```
128
+ */
129
+ export type Positive<N extends Numeric, Then = N, Else = never> = IsNever<
130
+ N,
131
+ Else,
132
+ number extends N ? Else : N extends Zero ? Then : `${N}` extends `-${string}` ? Else : Then
133
+ >
134
+
135
+ /**
136
+ * Is the value `N` a positive number.
137
+ *
138
+ * ```
139
+ * import type { IsPositive } from 'type-plus'
140
+ *
141
+ * type R = IsPositive<1> // true
142
+ * type R = IsPositive<0> // false
143
+ * type R = IsPositive<-1> // false
144
+ *
145
+ * type R = IsPositive<1, 'good', 'bad'> // 'good'
146
+ * type R = IsPositive<-1, 'good', 'bad> // 'bad'
147
+ * ```
148
+ */
149
+ export type IsPositive<N extends Numeric, Then = true, Else = false> = Positive<N, Then, Else>
@@ -1,7 +0,0 @@
1
- /**
2
- * Check if type of positive number literal
3
- * `number` type is false as it can be negative.
4
- * @see https://itnext.io/implementing-arithmetic-within-typescripts-type-system-a1ef140a6f6f
5
- */
6
- export type IsPositive<N extends number, Then = true, Else = false> = number extends N ? Else : `${N}` extends `-${number}` ? Else : Then;
7
- //# sourceMappingURL=IsPositive.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IsPositive.d.ts","sourceRoot":"","sources":["../../ts/math/IsPositive.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,MAAM,SAAS,CAAC,GACnF,IAAI,GACJ,GAAG,CAAC,EAAE,SAAS,IAAI,MAAM,EAAE,GAC3B,IAAI,GACJ,IAAI,CAAA"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=IsPositive.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IsPositive.js","sourceRoot":"","sources":["../../ts/math/IsPositive.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- /**
2
- * Check if type is whole number literal.
3
- * `number` type is false as it can be fractional.
4
- * @see https://itnext.io/implementing-arithmetic-within-typescripts-type-system-a1ef140a6f6f
5
- */
6
- export type IsWhole<N extends number, Then = true, Else = false> = number extends N ? Else : `${N}` extends `${number}.${number}` ? Else : Then;
7
- //# sourceMappingURL=IsWhole.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IsWhole.d.ts","sourceRoot":"","sources":["../../ts/math/IsWhole.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,MAAM,SAAS,CAAC,GAChF,IAAI,GACJ,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GACpC,IAAI,GACJ,IAAI,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IsWhole.js","sourceRoot":"","sources":["../../ts/math/IsWhole.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- /**
2
- * Check if type of positive number literal
3
- * `number` type is false as it can be negative.
4
- * @see https://itnext.io/implementing-arithmetic-within-typescripts-type-system-a1ef140a6f6f
5
- */
6
- export type IsPositive<N extends number, Then = true, Else = false> = number extends N ? Else : `${N}` extends `-${number}` ? Else : Then;
7
- //# sourceMappingURL=IsPositive.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IsPositive.d.ts","sourceRoot":"","sources":["../../ts/math/IsPositive.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,MAAM,SAAS,CAAC,GACnF,IAAI,GACJ,GAAG,CAAC,EAAE,SAAS,IAAI,MAAM,EAAE,GAC3B,IAAI,GACJ,IAAI,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=IsPositive.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IsPositive.js","sourceRoot":"","sources":["../../ts/math/IsPositive.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- /**
2
- * Check if type is whole number literal.
3
- * `number` type is false as it can be fractional.
4
- * @see https://itnext.io/implementing-arithmetic-within-typescripts-type-system-a1ef140a6f6f
5
- */
6
- export type IsWhole<N extends number, Then = true, Else = false> = number extends N ? Else : `${N}` extends `${number}.${number}` ? Else : Then;
7
- //# sourceMappingURL=IsWhole.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IsWhole.d.ts","sourceRoot":"","sources":["../../ts/math/IsWhole.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,MAAM,SAAS,CAAC,GAChF,IAAI,GACJ,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GACpC,IAAI,GACJ,IAAI,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=IsWhole.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IsWhole.js","sourceRoot":"","sources":["../../ts/math/IsWhole.ts"],"names":[],"mappings":""}
@@ -1,10 +0,0 @@
1
- /**
2
- * Check if type of positive number literal
3
- * `number` type is false as it can be negative.
4
- * @see https://itnext.io/implementing-arithmetic-within-typescripts-type-system-a1ef140a6f6f
5
- */
6
- export type IsPositive<N extends number, Then = true, Else = false> = number extends N
7
- ? Else
8
- : `${N}` extends `-${number}`
9
- ? Else
10
- : Then
@@ -1,10 +0,0 @@
1
- /**
2
- * Check if type is whole number literal.
3
- * `number` type is false as it can be fractional.
4
- * @see https://itnext.io/implementing-arithmetic-within-typescripts-type-system-a1ef140a6f6f
5
- */
6
- export type IsWhole<N extends number, Then = true, Else = false> = number extends N
7
- ? Else
8
- : `${N}` extends `${number}.${number}`
9
- ? Else
10
- : Then