ts-fortress 7.1.0 → 7.3.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 (56) hide show
  1. package/dist/entry-point.mjs +1 -0
  2. package/dist/entry-point.mjs.map +1 -1
  3. package/dist/index.mjs +1 -0
  4. package/dist/index.mjs.map +1 -1
  5. package/dist/predefined/brand/index.mjs +1 -0
  6. package/dist/predefined/brand/index.mjs.map +1 -1
  7. package/dist/predefined/brand/string/email.d.mts +1 -1
  8. package/dist/predefined/brand/string/email.d.mts.map +1 -1
  9. package/dist/predefined/brand/string/email.mjs +5 -2
  10. package/dist/predefined/brand/string/email.mjs.map +1 -1
  11. package/dist/predefined/brand/string/index.d.mts +1 -0
  12. package/dist/predefined/brand/string/index.d.mts.map +1 -1
  13. package/dist/predefined/brand/string/index.mjs +1 -0
  14. package/dist/predefined/brand/string/index.mjs.map +1 -1
  15. package/dist/predefined/brand/string/iso-8601.d.mts +1 -1
  16. package/dist/predefined/brand/string/iso-8601.d.mts.map +1 -1
  17. package/dist/predefined/brand/string/iso-8601.mjs +4 -2
  18. package/dist/predefined/brand/string/iso-8601.mjs.map +1 -1
  19. package/dist/predefined/brand/string/json-string.d.mts +1 -1
  20. package/dist/predefined/brand/string/json-string.d.mts.map +1 -1
  21. package/dist/predefined/brand/string/json-string.mjs +5 -2
  22. package/dist/predefined/brand/string/json-string.mjs.map +1 -1
  23. package/dist/predefined/brand/string/non-empty-string.d.mts +5 -0
  24. package/dist/predefined/brand/string/non-empty-string.d.mts.map +1 -0
  25. package/dist/predefined/brand/string/non-empty-string.mjs +16 -0
  26. package/dist/predefined/brand/string/non-empty-string.mjs.map +1 -0
  27. package/dist/predefined/brand/string/uuid.d.mts +4 -4
  28. package/dist/predefined/brand/string/uuid.d.mts.map +1 -1
  29. package/dist/predefined/brand/string/uuid.mjs +1 -1
  30. package/dist/predefined/brand/string/uuid.mjs.map +1 -1
  31. package/dist/predefined/index.mjs +1 -0
  32. package/dist/predefined/index.mjs.map +1 -1
  33. package/dist/primitives/number.d.mts +60 -10
  34. package/dist/primitives/number.d.mts.map +1 -1
  35. package/dist/primitives/number.mjs +42 -65
  36. package/dist/primitives/number.mjs.map +1 -1
  37. package/dist/primitives/string.d.mts +20 -17
  38. package/dist/primitives/string.d.mts.map +1 -1
  39. package/dist/primitives/string.mjs +28 -62
  40. package/dist/primitives/string.mjs.map +1 -1
  41. package/package.json +27 -27
  42. package/src/predefined/brand/string/email.mts +7 -3
  43. package/src/predefined/brand/string/email.test.mts +3 -0
  44. package/src/predefined/brand/string/index.mts +1 -0
  45. package/src/predefined/brand/string/iso-8601.mts +7 -3
  46. package/src/predefined/brand/string/iso-8601.test.mts +3 -0
  47. package/src/predefined/brand/string/json-string.mts +8 -3
  48. package/src/predefined/brand/string/json-string.test.mts +3 -0
  49. package/src/predefined/brand/string/non-empty-string.mts +24 -0
  50. package/src/predefined/brand/string/non-empty-string.test.mts +54 -0
  51. package/src/predefined/brand/string/uuid.mts +9 -7
  52. package/src/predefined/brand/string/uuid.test.mts +3 -0
  53. package/src/primitives/number.mts +223 -125
  54. package/src/primitives/number.test.mts +12 -6
  55. package/src/primitives/string.mts +91 -155
  56. package/src/primitives/string.test.mts +50 -21
@@ -40,6 +40,7 @@ export { uint32 } from './predefined/brand/number/uint32.mjs';
40
40
  export { email } from './predefined/brand/string/email.mjs';
41
41
  export { iso8601 } from './predefined/brand/string/iso-8601.mjs';
42
42
  export { jsonString } from './predefined/brand/string/json-string.mjs';
43
+ export { nonEmptyString } from './predefined/brand/string/non-empty-string.mjs';
43
44
  export { uuid, uuidV4, uuidV6, uuidV7 } from './predefined/brand/string/uuid.mjs';
44
45
  export { int8 } from './predefined/int8.mjs';
45
46
  export { JsonObject, JsonPrimitive, JsonValue } from './predefined/json.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"entry-point.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"entry-point.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.mjs CHANGED
@@ -39,6 +39,7 @@ export { uint32 } from './predefined/brand/number/uint32.mjs';
39
39
  export { email } from './predefined/brand/string/email.mjs';
40
40
  export { iso8601 } from './predefined/brand/string/iso-8601.mjs';
41
41
  export { jsonString } from './predefined/brand/string/json-string.mjs';
42
+ export { nonEmptyString } from './predefined/brand/string/non-empty-string.mjs';
42
43
  export { uuid, uuidV4, uuidV6, uuidV7 } from './predefined/brand/string/uuid.mjs';
43
44
  export { int8 } from './predefined/int8.mjs';
44
45
  export { JsonObject, JsonPrimitive, JsonValue } from './predefined/json.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -17,5 +17,6 @@ export { uint32 } from './number/uint32.mjs';
17
17
  export { email } from './string/email.mjs';
18
18
  export { iso8601 } from './string/iso-8601.mjs';
19
19
  export { jsonString } from './string/json-string.mjs';
20
+ export { nonEmptyString } from './string/non-empty-string.mjs';
20
21
  export { uuid, uuidV4, uuidV6, uuidV7 } from './string/uuid.mjs';
21
22
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { type Brand } from 'ts-type-forge';
2
2
  import { type Type } from '../../../type.mjs';
3
- export type Email = Brand<string, 'Email'>;
3
+ export type Email = Brand<string, 'Email' | 'NonEmptyString'>;
4
4
  /**
5
5
  * @link https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address
6
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"email.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/email.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,KAAK,GAChB,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CACH,KACA,IAAI,CAAC,KAAK,CAKT,CAAC"}
1
+ {"version":3,"file":"email.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/email.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAG9C,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,gBAAgB,CAAC,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,KAAK,GAChB,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CACH,KACA,IAAI,CAAC,KAAK,CAOT,CAAC"}
@@ -1,14 +1,17 @@
1
+ import { brand } from '../../../brand/brand.mjs';
1
2
  import 'ts-data-forge';
2
3
  import '@sindresorhus/is';
3
4
  import '../../../other-types/unknown.mjs';
4
- import { brandedString } from '../../../brand/branded-string.mjs';
5
+ import { string } from '../../../primitives/string.mjs';
5
6
 
6
7
  /**
7
8
  * @link https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address
8
9
  */
9
- const email = (options) => brandedString({
10
+ const email = (options) => brand({
11
+ baseType: string(options?.defaultValue ?? defaultEmail),
10
12
  is: (s) => regexpEmailAddress.test(s),
11
13
  defaultValue: options?.defaultValue ?? defaultEmail,
14
+ brandKeys: ['Email', 'NonEmptyString'],
12
15
  typeName: 'Email',
13
16
  });
14
17
  const defaultEmail = 'ts-f.o.r.t.r.e.s.s@gmail.com';
@@ -1 +1 @@
1
- {"version":3,"file":"email.mjs","sources":["../../../../src/predefined/brand/string/email.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAMA;;AAEG;AACI,MAAM,KAAK,GAAG,CACnB,OAIC,KAED,aAAa,CAAC;IACZ,EAAE,EAAE,CAAC,CAAC,KAAiB,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD,IAAA,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,YAAY;AACnD,IAAA,QAAQ,EAAE,OAAO;AAClB,CAAA;AAEH,MAAM,YAAY,GAAG,8BAA8B;AAEnD,MAAM,kBAAkB;AACtB;AACA,uIAAuI;;;;"}
1
+ {"version":3,"file":"email.mjs","sources":["../../../../src/predefined/brand/string/email.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAQA;;AAEG;AACI,MAAM,KAAK,GAAG,CACnB,OAIC,KAED,KAAK,CAAC;IACJ,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY,IAAI,YAAY,CAAC;IACvD,EAAE,EAAE,CAAC,CAAC,KAAiB,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD,IAAA,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,YAAY;AACnD,IAAA,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC;AACtC,IAAA,QAAQ,EAAE,OAAO;AAClB,CAAA;AAEH,MAAM,YAAY,GAAG,8BAA8B;AAEnD,MAAM,kBAAkB;AACtB;AACA,uIAAuI;;;;"}
@@ -1,5 +1,6 @@
1
1
  export * from './email.mjs';
2
2
  export * from './iso-8601.mjs';
3
3
  export * from './json-string.mjs';
4
+ export * from './non-empty-string.mjs';
4
5
  export * from './uuid.mjs';
5
6
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/index.mts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/index.mts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export { email } from './email.mjs';
2
2
  export { iso8601 } from './iso-8601.mjs';
3
3
  export { jsonString } from './json-string.mjs';
4
+ export { nonEmptyString } from './non-empty-string.mjs';
4
5
  export { uuid, uuidV4, uuidV6, uuidV7 } from './uuid.mjs';
5
6
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,6 +1,6 @@
1
1
  import { type Brand } from 'ts-type-forge';
2
2
  import { type Type, type TypeOf } from '../../../type.mjs';
3
- export type Iso8601 = Brand<string, 'Iso8601'>;
3
+ export type Iso8601 = Brand<string, 'Iso8601' | 'NonEmptyString'>;
4
4
  /**
5
5
  * @link https://github.com/validatorjs/validator.js/tree/v13.1.17?tab=readme-ov-file#validators
6
6
  * @link https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
@@ -1 +1 @@
1
- {"version":3,"file":"iso-8601.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/iso-8601.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAmB,MAAM,eAAe,CAAC;AAI5D,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAE/C;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,UAAU,sBAAsB,KAAG,IAAI,CAAC,OAAO,CAUtE,CAAC;AAEF,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe1B,CAAC;AAEH,KAAK,sBAAsB,GAAG,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"iso-8601.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/iso-8601.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAmB,MAAM,eAAe,CAAC;AAI5D,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3D,MAAM,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,GAAG,gBAAgB,CAAC,CAAC;AAElE;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,UAAU,sBAAsB,KAAG,IAAI,CAAC,OAAO,CAYtE,CAAC;AAEF,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe1B,CAAC;AAEH,KAAK,sBAAsB,GAAG,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -1,9 +1,9 @@
1
+ import { brand } from '../../../brand/brand.mjs';
1
2
  import 'ts-data-forge';
2
3
  import '@sindresorhus/is';
3
4
  import '../../../other-types/unknown.mjs';
4
5
  import { boolean } from '../../../primitives/boolean.mjs';
5
6
  import { string } from '../../../primitives/string.mjs';
6
- import { brandedString } from '../../../brand/branded-string.mjs';
7
7
  import { record } from '../../../record/record.mjs';
8
8
 
9
9
  /**
@@ -14,9 +14,11 @@ import { record } from '../../../record/record.mjs';
14
14
  const iso8601 = (options) => {
15
15
  const filledOptions = ISO8601ValidatorOption.fill(options);
16
16
  const is = isISO8601(filledOptions);
17
- return brandedString({
17
+ return brand({
18
+ baseType: string(filledOptions.defaultValue),
18
19
  is,
19
20
  defaultValue: filledOptions.defaultValue,
21
+ brandKeys: ['Iso8601', 'NonEmptyString'],
20
22
  typeName: 'Iso8601',
21
23
  });
22
24
  };
@@ -1 +1 @@
1
- {"version":3,"file":"iso-8601.mjs","sources":["../../../../src/predefined/brand/string/iso-8601.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;AAQA;;;;AAIG;AACI,MAAM,OAAO,GAAG,CAAC,OAAgC,KAAmB;IACzE,MAAM,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC;AAE1D,IAAA,MAAM,EAAE,GAAG,SAAS,CAAC,aAAa,CAAC;AAEnC,IAAA,OAAO,aAAa,CAAC;QACnB,EAAE;QACF,YAAY,EAAE,aAAa,CAAC,YAAY;AACxC,QAAA,QAAQ,EAAE,SAAS;AACpB,KAAA,CAAC;AACJ;AAEA,MAAM,sBAAsB,GAAG,MAAM,CAAC;AACpC;;AAEG;AACH,IAAA,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC;AAEtB;;AAEG;AACH,IAAA,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC;AAE/B;;AAEG;IACH,YAAY,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAC/C,CAAA,CAAC;AAIF,MAAM,SAAS,GACb,CAAC,OAAqE,KACtE,CAAC,GAAW,KAAoB;IAC9B,MAAM,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC;AAE1D,IAAA,MAAM,KAAK,GAAG,aAAa,CAAC;AAC1B,UAAE,4BAA4B,CAAC,IAAI,CAAC,GAAG;AACvC,UAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;AAE3B,IAAA,IAAI,KAAK,IAAI,aAAa,CAAC,MAAM;AAAE,QAAA,OAAO,WAAW,CAAC,GAAG,CAAC;AAE1D,IAAA,OAAO,KAAK;AACd,CAAC;AAEH;AACA,MAAM,aAAa;AACjB;AACA,yRAAyR;AAE3R;AACA,MAAM,4BAA4B;AAChC;AACA,qRAAqR;AAEvR,MAAM,WAAW,GAAG,CAAC,GAAW,KAAa;;;;;IAK3C,MAAM,YAAY,GAAG,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC;AAE9D,IAAA,IAAI,YAAY,KAAK,IAAI,EAAE;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAErC,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;;AAGpC,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,GAAG,KAAK,CAAC,KAAK,KAAK,GAAG,GAAG,KAAK,CAAC;YAC7D,OAAO,IAAI,IAAI,GAAG;QAEpB,OAAO,IAAI,IAAI,GAAG;IACpB;AAEA,IAAA,MAAM,KAAK,GAAG,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC;AAEjE,IAAA,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;AAEvB,IAAA,MAAM,KAAK,GAAuB,KAAK,GAAG,CAAC,CAAC;AAE5C,IAAA,MAAM,IAAI,GAAuB,KAAK,GAAG,CAAC,CAAC;;AAG3C,IAAA,MAAM,CAAC,GAAG,IAAI,IAAI,CAChB,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,CAAA,CAAA,EAAI,KAAK,IAAI,CAAC,CAAA,CAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA,CAAA,EAAI,CAAA,CAAA,EAAI,IAAI,IAAI,CAAC,CAAA,CAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA,CAAE,CACrE;IAED,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE;AAC7C,QAAA,QACE,CAAC,CAAC,cAAc,EAAE,KAAK,IAAI;AAC3B,YAAA,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,KAAK;AAC7B,YAAA,CAAC,CAAC,UAAU,EAAE,KAAK,IAAI;IAE3B;AAEA,IAAA,OAAO,IAAI;AACb,CAAC;;;;"}
1
+ {"version":3,"file":"iso-8601.mjs","sources":["../../../../src/predefined/brand/string/iso-8601.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { type Brand } from 'ts-type-forge';
2
2
  import { type Type } from '../../../type.mjs';
3
- export type JsonString = Brand<string, 'JsonString'>;
3
+ export type JsonString = Brand<string, 'JsonString' | 'NonEmptyString'>;
4
4
  /**
5
5
  * @link https://github.com/validatorjs/validator.js/tree/v13.1.17?tab=readme-ov-file#validators
6
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"json-string.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/json-string.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,UAAU,GACrB,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CACH,KACA,IAAI,CAAC,UAAU,CAKd,CAAC"}
1
+ {"version":3,"file":"json-string.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/json-string.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAI9C,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAAC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,UAAU,GACrB,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CACH,KACA,IAAI,CAAC,UAAU,CAOd,CAAC"}
@@ -1,14 +1,17 @@
1
1
  import { isNonNullObject } from 'ts-data-forge';
2
+ import { brand } from '../../../brand/brand.mjs';
2
3
  import '@sindresorhus/is';
3
4
  import '../../../other-types/unknown.mjs';
4
- import { brandedString } from '../../../brand/branded-string.mjs';
5
+ import { string } from '../../../primitives/string.mjs';
5
6
 
6
7
  /**
7
8
  * @link https://github.com/validatorjs/validator.js/tree/v13.1.17?tab=readme-ov-file#validators
8
9
  */
9
- const jsonString = (options) => brandedString({
10
+ const jsonString = (options) => brand({
11
+ baseType: string(options?.defaultValue ?? defaultJsonString),
10
12
  is: isJsonString,
11
13
  defaultValue: options?.defaultValue ?? defaultJsonString,
14
+ brandKeys: ['JsonString', 'NonEmptyString'],
12
15
  typeName: 'JsonString',
13
16
  });
14
17
  const defaultJsonString = '{}';
@@ -1 +1 @@
1
- {"version":3,"file":"json-string.mjs","sources":["../../../../src/predefined/brand/string/json-string.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAOA;;AAEG;AACI,MAAM,UAAU,GAAG,CACxB,OAIC,KAED,aAAa,CAAC;AACZ,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,iBAAiB;AACxD,IAAA,QAAQ,EAAE,YAAY;AACvB,CAAA;AAEH,MAAM,iBAAiB,GAAG,IAAI;AAE9B,MAAM,YAAY,GAAG,CAAC,GAAW,KAAuB;AACtD,IAAA,IAAI;QACF,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzC;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,KAAK;IACd;AACF,CAAC;;;;"}
1
+ {"version":3,"file":"json-string.mjs","sources":["../../../../src/predefined/brand/string/json-string.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAUA;;AAEG;AACI,MAAM,UAAU,GAAG,CACxB,OAIC,KAED,KAAK,CAAC;IACJ,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY,IAAI,iBAAiB,CAAC;AAC5D,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,iBAAiB;AACxD,IAAA,SAAS,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;AAC3C,IAAA,QAAQ,EAAE,YAAY;AACvB,CAAA;AAEH,MAAM,iBAAiB,GAAG,IAAI;AAE9B,MAAM,YAAY,GAAG,CAAC,GAAW,KAAuB;AACtD,IAAA,IAAI;QACF,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzC;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,KAAK;IACd;AACF,CAAC;;;;"}
@@ -0,0 +1,5 @@
1
+ import { type NonEmptyString } from 'ts-type-forge';
2
+ import { type Type } from '../../../type.mjs';
3
+ export type { NonEmptyString } from 'ts-type-forge';
4
+ export declare const nonEmptyString: (defaultValue?: string) => Type<NonEmptyString>;
5
+ //# sourceMappingURL=non-empty-string.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"non-empty-string.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/non-empty-string.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,eAAO,MAAM,cAAc,GACzB,eAAc,MAAY,KACzB,IAAI,CAAC,cAAc,CAOlB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { isNonEmptyString } from 'ts-data-forge';
2
+ import { brand } from '../../../brand/brand.mjs';
3
+ import '@sindresorhus/is';
4
+ import '../../../other-types/unknown.mjs';
5
+ import { string } from '../../../primitives/string.mjs';
6
+
7
+ const nonEmptyString = (defaultValue = ' ') => brand({
8
+ baseType: string(defaultValue),
9
+ is: isNonEmptyString,
10
+ defaultValue,
11
+ brandKeys: ['NonEmptyString'],
12
+ typeName: 'NonEmptyString',
13
+ });
14
+
15
+ export { nonEmptyString };
16
+ //# sourceMappingURL=non-empty-string.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"non-empty-string.mjs","sources":["../../../../src/predefined/brand/string/non-empty-string.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAQO,MAAM,cAAc,GAAG,CAC5B,YAAA,GAAuB,GAAG,KAE1B,KAAK,CAAC;AACJ,IAAA,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC;AAC9B,IAAA,EAAE,EAAE,gBAAgB;IACpB,YAAY;IACZ,SAAS,EAAE,CAAC,gBAAgB,CAAC;AAC7B,IAAA,QAAQ,EAAE,gBAAgB;AAC3B,CAAA;;;;"}
@@ -2,10 +2,10 @@ import { type Brand, type TypeEq, type UintRangeInclusive } from 'ts-type-forge'
2
2
  import { type Type } from '../../../type.mjs';
3
3
  export type UuidVersion = UintRangeInclusive<1, 8>;
4
4
  export type UuidBaseString<V extends UuidVersion = UuidVersion> = `${string}-${string}-${V}${string}-${string}-${string}` | '00000000-0000-0000-0000-000000000000' | 'ffffffff-ffff-ffff-ffff-ffffffffffff';
5
- export type Uuid = Brand<UuidBaseString, 'Uuid'>;
6
- export type Uuid4 = Brand<UuidBaseString<4>, 'Uuid'>;
7
- export type Uuid6 = Brand<UuidBaseString<6>, 'Uuid'>;
8
- export type Uuid7 = Brand<UuidBaseString<7>, 'Uuid'>;
5
+ export type Uuid = Brand<UuidBaseString, 'Uuid' | 'NonEmptyString'>;
6
+ export type Uuid4 = Brand<UuidBaseString<4>, 'Uuid' | 'NonEmptyString'>;
7
+ export type Uuid6 = Brand<UuidBaseString<6>, 'Uuid' | 'NonEmptyString'>;
8
+ export type Uuid7 = Brand<UuidBaseString<7>, 'Uuid' | 'NonEmptyString'>;
9
9
  /**
10
10
  * @link https://github.com/validatorjs/validator.js/tree/v13.1.17?tab=readme-ov-file#validators
11
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"uuid.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/uuid.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,KAAK,EAEV,KAAK,MAAM,EACX,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEnD,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAC1D,GAAG,MAAM,IAAI,MAAM,IAAI,CAAC,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,GACvD,sCAAsC,GACtC,sCAAsC,CAAC;AAE3C,MAAM,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AAEjD,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAErD,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAErD,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,WAAW,GAAG,2BAA2B,EACtE,UAAU,mBAAmB,CAAC,CAAC,CAAC,KAC/B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAyBhB,CAAC;AAEF,KAAK,2BAA2B,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;AAEnE,KAAK,MAAM,CAAC,CAAC,SAAS,WAAW,GAAG,2BAA2B,IAC7D,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACrB,KAAK,GACL,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACvB,KAAK,GACL,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACvB,KAAK,GACL,IAAI,CAAC;AAEf,eAAO,MAAM,MAAM,GAAI,eAAe,MAAM,KAAG,IAAI,CAAC,KAAK,CAIrD,CAAC;AAEL,eAAO,MAAM,MAAM,GAAI,eAAe,MAAM,KAAG,IAAI,CAAC,KAAK,CAIrD,CAAC;AAEL,eAAO,MAAM,MAAM,GAAI,eAAe,MAAM,KAAG,IAAI,CAAC,KAAK,CAIrD,CAAC;AAEL,KAAK,mBAAmB,CAAC,CAAC,SAAS,WAAW,GAAG,2BAA2B,IAC1E,OAAO,CACL,QAAQ,CAAC;IACP;;OAEG;IACH,OAAO,EAAE,CAAC,CAAC;IAEX,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"uuid.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/uuid.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,KAAK,EAEV,KAAK,MAAM,EACX,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEnD,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAC1D,GAAG,MAAM,IAAI,MAAM,IAAI,CAAC,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,GACvD,sCAAsC,GACtC,sCAAsC,CAAC;AAI3C,MAAM,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC;AAEpE,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC;AAExE,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC;AAExE,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,WAAW,GAAG,2BAA2B,EACtE,UAAU,mBAAmB,CAAC,CAAC,CAAC,KAC/B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAyBhB,CAAC;AAEF,KAAK,2BAA2B,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;AAEnE,KAAK,MAAM,CAAC,CAAC,SAAS,WAAW,GAAG,2BAA2B,IAC7D,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACrB,KAAK,GACL,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACvB,KAAK,GACL,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACvB,KAAK,GACL,IAAI,CAAC;AAEf,eAAO,MAAM,MAAM,GAAI,eAAe,MAAM,KAAG,IAAI,CAAC,KAAK,CAIrD,CAAC;AAEL,eAAO,MAAM,MAAM,GAAI,eAAe,MAAM,KAAG,IAAI,CAAC,KAAK,CAIrD,CAAC;AAEL,eAAO,MAAM,MAAM,GAAI,eAAe,MAAM,KAAG,IAAI,CAAC,KAAK,CAIrD,CAAC;AAEL,KAAK,mBAAmB,CAAC,CAAC,SAAS,WAAW,GAAG,2BAA2B,IAC1E,OAAO,CACL,QAAQ,CAAC;IACP;;OAEG;IACH,OAAO,EAAE,CAAC,CAAC;IAEX,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CACH,CAAC"}
@@ -17,7 +17,7 @@ const uuid = (options) => {
17
17
  is: (s) => uuidDef[version](s),
18
18
  // eslint-disable-next-line total-functions/no-unsafe-type-assertion
19
19
  defaultValue: defaultValue,
20
- brandKeys: ['Uuid'],
20
+ brandKeys: ['Uuid', 'NonEmptyString'],
21
21
  typeName: options?.typeName ??
22
22
  (version === 4
23
23
  ? 'UuidV4'
@@ -1 +1 @@
1
- {"version":3,"file":"uuid.mjs","sources":["../../../../src/predefined/brand/string/uuid.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uuid.mjs","sources":["../../../../src/predefined/brand/string/uuid.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AA2BA;;AAEG;AACI,MAAM,IAAI,GAAG,CAClB,OAAgC,KACb;AAGnB,IAAA,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,OAAO;AAErD,IAAA,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,KAAK;;AAGzC,IAAA,OAAO,KAAK,CAAsD;;AAEhE,QAAA,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAyB;AACtD,QAAA,EAAE,EAAE,CAAC,CAAC,KAAa,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;;AAEtC,QAAA,YAAY,EAAE,YAA8B;AAC5C,QAAA,SAAS,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC;QACrC,QAAQ,EACN,OAAO,EAAE,QAAQ;aAChB,OAAO,KAAK;AACX,kBAAE;kBACA,OAAO,KAAK;AACZ,sBAAE;sBACA,OAAO,KAAK;AACZ,0BAAE;0BACA,MAAM,CAAC;AAClB,KAAA,CAAsC;AACzC;AAaO,MAAM,MAAM,GAAG,CAAC,YAAqB,KAC1C,IAAI,CAAC;IACH,YAAY,EAAE,YAAY,IAAI,sCAAsC;AACpE,IAAA,OAAO,EAAE,CAAC;AACX,CAAA;AAEI,MAAM,MAAM,GAAG,CAAC,YAAqB,KAC1C,IAAI,CAAC;IACH,YAAY,EAAE,YAAY,IAAI,sCAAsC;AACpE,IAAA,OAAO,EAAE,CAAC;AACX,CAAA;AAEI,MAAM,MAAM,GAAG,CAAC,YAAqB,KAC1C,IAAI,CAAC;IACH,YAAY,EAAE,YAAY,IAAI,sCAAsC;AACpE,IAAA,OAAO,EAAE,CAAC;AACX,CAAA;AAeH,MAAM,OAAO,GAAG,sCAA+D;AAE/E,MAAM,OAAO,GAAG,sCAA+D;AAE/E,MAAM,QAAQ,GAAG;AACf,IAAA,CAAC,EAAE,mEAAmE;AACtE,IAAA,CAAC,EAAE,mEAAmE;AACtE,IAAA,CAAC,EAAE,mEAAmE;AACtE,IAAA,CAAC,EAAE,mEAAmE;AACtE,IAAA,CAAC,EAAE,mEAAmE;AACtE,IAAA,CAAC,EAAE,mEAAmE;AACtE,IAAA,CAAC,EAAE,mEAAmE;AACtE,IAAA,CAAC,EAAE,mEAAmE;AACtE,IAAA,KAAK,EAAE,4DAA4D;AACnE,IAAA,KAAK,EACH,4EAA4E;CACtE;AAEV,MAAM,OAAO,GAGT;AACF,IAAA,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,IAAA,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,IAAA,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,IAAA,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,IAAA,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,IAAA,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,IAAA,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,IAAA,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7B,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,OAAO;IACzB,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,OAAO;AACzB,IAAA,KAAK,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;CAC7D;;;;"}
@@ -17,6 +17,7 @@ export { uint32 } from './brand/number/uint32.mjs';
17
17
  export { email } from './brand/string/email.mjs';
18
18
  export { iso8601 } from './brand/string/iso-8601.mjs';
19
19
  export { jsonString } from './brand/string/json-string.mjs';
20
+ export { nonEmptyString } from './brand/string/non-empty-string.mjs';
20
21
  export { uuid, uuidV4, uuidV6, uuidV7 } from './brand/string/uuid.mjs';
21
22
  export { int8 } from './int8.mjs';
22
23
  export { JsonObject, JsonPrimitive, JsonValue } from './json.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,7 @@
1
+ import { type Brand, type IsNever } from 'ts-type-forge';
1
2
  import { type Type } from '../type.mjs';
2
3
  export declare function number(defaultValue?: number): Type<number>;
3
- export declare function number<N extends number, const C extends Constraints>(defaultValue: N & DefaultValueType<N, C>, constraints: C): Type<number>;
4
+ export declare function number<N extends number, const C extends Constraints>(defaultValue: N & DefaultValueType<N, C>, constraints: C): Type<ConstraintsToResultType<C>>;
4
5
  type Constraints = Partial<Readonly<{
5
6
  gt: number;
6
7
  gte: number;
@@ -8,30 +9,79 @@ type Constraints = Partial<Readonly<{
8
9
  lt: number;
9
10
  lte: number;
10
11
  max: number;
11
- negative: boolean;
12
- nonNegative: boolean;
13
- positive: boolean;
14
- nonPositive: boolean;
15
12
  multipleOf: number;
16
13
  step: number;
14
+ finite: true;
15
+ int: true;
16
+ nonzero: true;
17
+ negative: true;
18
+ nonNegative: true;
19
+ positive: true;
20
+ nonPositive: true;
17
21
  }>>;
18
- type DefaultValueType<N extends number, R extends Constraints> = DefaultValueWhenNegativeIsOn<N, R> & DefaultValueWhenNonNegativeIsOn<N, R> & DefaultValueWhenPositiveIsOn<N, R> & DefaultValueWhenNonPositiveIsOn<N, R>;
19
- type DefaultValueWhenNegativeIsOn<N extends number, R extends Constraints> = R extends Readonly<{
22
+ type DefaultValueType<N extends number, C extends Constraints> = DefaultValueWhenNonZeroIsOn<N, C> & DefaultValueWhenNegativeIsOn<N, C> & DefaultValueWhenNonNegativeIsOn<N, C> & DefaultValueWhenPositiveIsOn<N, C> & DefaultValueWhenNonPositiveIsOn<N, C>;
23
+ type ConstraintsToResultType<C extends Constraints> = ConstraintsToResultHelperType<ConstraintsToResultBrandKeys<C>>;
24
+ type ConstraintsToResultHelperType<R extends Readonly<{
25
+ brandKeys: string;
26
+ brandFalseKeys: string;
27
+ }>> = IsNever<R> extends true ? number : Brand<number, R['brandKeys'], R['brandFalseKeys']>;
28
+ type ConstraintsToResultBrandKeys<C extends Constraints> = (C extends Readonly<{
29
+ int: true;
30
+ }> ? Readonly<{
31
+ brandKeys: 'Int' | 'Finite';
32
+ brandFalseKeys: 'NaNValue';
33
+ }> : never) | (C extends Readonly<{
34
+ finite: true;
35
+ }> ? Readonly<{
36
+ brandKeys: 'Finite';
37
+ brandFalseKeys: 'NaNValue';
38
+ }> : never) | (C extends Readonly<{
39
+ nonzero: true;
40
+ }> ? Readonly<{
41
+ brandKeys: '!=0';
42
+ brandFalseKeys: 'NaNValue';
43
+ }> : never) | (C extends Readonly<{
44
+ negative: true;
45
+ }> ? Readonly<{
46
+ brandKeys: '!=0' | '< 2^15' | '< 2^16' | '< 2^31' | '< 2^32';
47
+ brandFalseKeys: '>=0' | 'NaNValue';
48
+ }> : never) | (C extends Readonly<{
49
+ positive: true;
50
+ }> ? Readonly<{
51
+ brandKeys: '>=0' | '!=0' | '> -2^16' | '> -2^32' | '>= -2^15' | '>= -2^31';
52
+ brandFalseKeys: 'NaNValue';
53
+ }> : never) | (C extends Readonly<{
54
+ nonNegative: true;
55
+ }> ? Readonly<{
56
+ brandKeys: '>=0' | '> -2^16' | '> -2^32' | '>= -2^15' | '>= -2^31';
57
+ brandFalseKeys: 'NaNValue';
58
+ }> : never) | (C extends Readonly<{
59
+ nonPositive: true;
60
+ }> ? Readonly<{
61
+ brandKeys: '< 2^15' | '< 2^16' | '< 2^31' | '< 2^32';
62
+ brandFalseKeys: '>=0' | 'NaNValue';
63
+ }> : never);
64
+ type DefaultValueWhenNonZeroIsOn<N extends number, C extends Constraints> = C extends Readonly<{
65
+ nonzero: true;
66
+ }> ? NonZeroNumber<N> : number;
67
+ type DefaultValueWhenNegativeIsOn<N extends number, C extends Constraints> = C extends Readonly<{
20
68
  negative: true;
21
69
  }> ? NegativeNumber<N> : number;
22
- type DefaultValueWhenNonNegativeIsOn<N extends number, R extends Constraints> = R extends Readonly<{
70
+ type DefaultValueWhenNonNegativeIsOn<N extends number, C extends Constraints> = C extends Readonly<{
23
71
  nonNegative: true;
24
72
  }> ? NonNegativeNumber<N> : number;
25
- type DefaultValueWhenPositiveIsOn<N extends number, R extends Constraints> = R extends Readonly<{
73
+ type DefaultValueWhenPositiveIsOn<N extends number, C extends Constraints> = C extends Readonly<{
26
74
  positive: true;
27
75
  }> ? PositiveNumber<N> : number;
28
- type DefaultValueWhenNonPositiveIsOn<N extends number, R extends Constraints> = R extends Readonly<{
76
+ type DefaultValueWhenNonPositiveIsOn<N extends number, C extends Constraints> = C extends Readonly<{
29
77
  nonPositive: true;
30
78
  }> ? NonPositiveNumber<N> : number;
79
+ type NonZeroNumber<N extends number> = number extends N ? number : IsNonZero<N> extends true ? N : never;
31
80
  type NegativeNumber<N extends number> = number extends N ? number : IsNegative<N> extends true ? N : never;
32
81
  type NonNegativeNumber<N extends number> = number extends N ? number : IsNonNegative<N> extends true ? N : never;
33
82
  type PositiveNumber<N extends number> = number extends N ? number : IsPositive<N> extends true ? N : never;
34
83
  type NonPositiveNumber<N extends number> = number extends N ? number : IsNonPositive<N> extends true ? N : never;
84
+ type IsNonZero<N extends number> = N extends 0 ? false : true;
35
85
  type IsNegative<N extends number> = `${N}` extends `-${string}` ? true : false;
36
86
  type IsNonNegative<N extends number> = IsNegative<N> extends true ? false : true;
37
87
  type IsPositive<N extends number> = N extends 0 ? false : IsNonNegative<N>;
@@ -1 +1 @@
1
- {"version":3,"file":"number.d.mts","sourceRoot":"","sources":["../../src/primitives/number.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"number.d.mts","sourceRoot":"","sources":["../../src/primitives/number.mts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,KAAK,EAEV,KAAK,OAAO,EAMb,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAGxC,wBAAgB,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AAE5D,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,CAAC,CAAC,SAAS,WAAW,EAClE,YAAY,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,EACxC,WAAW,EAAE,CAAC,GACb,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;AAmCpC,KAAK,WAAW,GAAG,OAAO,CACxB,QAAQ,CAAC;IACP,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IAEb,MAAM,EAAE,IAAI,CAAC;IACb,GAAG,EAAE,IAAI,CAAC;IACV,OAAO,EAAE,IAAI,CAAC;IACd,QAAQ,EAAE,IAAI,CAAC;IACf,WAAW,EAAE,IAAI,CAAC;IAClB,QAAQ,EAAE,IAAI,CAAC;IACf,WAAW,EAAE,IAAI,CAAC;CACnB,CAAC,CACH,CAAC;AAEF,KAAK,gBAAgB,CACnB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,WAAW,IACnB,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,GACnC,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC,GAClC,+BAA+B,CAAC,CAAC,EAAE,CAAC,CAAC,GACrC,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC,GAClC,+BAA+B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAExC,KAAK,uBAAuB,CAAC,CAAC,SAAS,WAAW,IAChD,6BAA6B,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC;AAEjE,KAAK,6BAA6B,CAChC,CAAC,SAAS,QAAQ,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,IAEjE,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GACnB,MAAM,GACN,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEzD,KAAK,4BAA4B,CAAC,CAAC,SAAS,WAAW,IACnD,CAAC,CAAC,SAAS,QAAQ,CAAC;IAAE,GAAG,EAAE,IAAI,CAAA;CAAE,CAAC,GAC9B,QAAQ,CAAC;IAAE,SAAS,EAAE,KAAK,GAAG,QAAQ,CAAC;IAAC,cAAc,EAAE,UAAU,CAAA;CAAE,CAAC,GACrE,KAAK,CAAC,GACV,CAAC,CAAC,SAAS,QAAQ,CAAC;IAAE,MAAM,EAAE,IAAI,CAAA;CAAE,CAAC,GACjC,QAAQ,CAAC;IAAE,SAAS,EAAE,QAAQ,CAAC;IAAC,cAAc,EAAE,UAAU,CAAA;CAAE,CAAC,GAC7D,KAAK,CAAC,GACV,CAAC,CAAC,SAAS,QAAQ,CAAC;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,CAAC,GAClC,QAAQ,CAAC;IAAE,SAAS,EAAE,KAAK,CAAC;IAAC,cAAc,EAAE,UAAU,CAAA;CAAE,CAAC,GAC1D,KAAK,CAAC,GACV,CAAC,CAAC,SAAS,QAAQ,CAAC;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC,GACnC,QAAQ,CAAC;IACP,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC7D,cAAc,EAAE,KAAK,GAAG,UAAU,CAAC;CACpC,CAAC,GACF,KAAK,CAAC,GACV,CAAC,CAAC,SAAS,QAAQ,CAAC;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC,GACnC,QAAQ,CAAC;IACP,SAAS,EACL,KAAK,GACL,KAAK,GACL,SAAS,GACT,SAAS,GACT,UAAU,GACV,UAAU,CAAC;IACf,cAAc,EAAE,UAAU,CAAC;CAC5B,CAAC,GACF,KAAK,CAAC,GACV,CAAC,CAAC,SAAS,QAAQ,CAAC;IAAE,WAAW,EAAE,IAAI,CAAA;CAAE,CAAC,GACtC,QAAQ,CAAC;IACP,SAAS,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;IACnE,cAAc,EAAE,UAAU,CAAC;CAC5B,CAAC,GACF,KAAK,CAAC,GACV,CAAC,CAAC,SAAS,QAAQ,CAAC;IAAE,WAAW,EAAE,IAAI,CAAA;CAAE,CAAC,GACtC,QAAQ,CAAC;IACP,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrD,cAAc,EAAE,KAAK,GAAG,UAAU,CAAC;CACpC,CAAC,GACF,KAAK,CAAC,CAAC;AAuDf,KAAK,2BAA2B,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,WAAW,IACtE,CAAC,SAAS,QAAQ,CAAC;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AAEpE,KAAK,4BAA4B,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,WAAW,IACvE,CAAC,SAAS,QAAQ,CAAC;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AAEtE,KAAK,+BAA+B,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,WAAW,IAC1E,CAAC,SAAS,QAAQ,CAAC;IAAE,WAAW,EAAE,IAAI,CAAA;CAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AAE5E,KAAK,4BAA4B,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,WAAW,IACvE,CAAC,SAAS,QAAQ,CAAC;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AAEtE,KAAK,+BAA+B,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,WAAW,IAC1E,CAAC,SAAS,QAAQ,CAAC;IAAE,WAAW,EAAE,IAAI,CAAA;CAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AAE5E,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,SAAS,CAAC,GACnD,MAAM,GACN,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,GACvB,CAAC,GACD,KAAK,CAAC;AAEZ,KAAK,cAAc,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,SAAS,CAAC,GACpD,MAAM,GACN,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,GACxB,CAAC,GACD,KAAK,CAAC;AAEZ,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,SAAS,CAAC,GACvD,MAAM,GACN,aAAa,CAAC,CAAC,CAAC,SAAS,IAAI,GAC3B,CAAC,GACD,KAAK,CAAC;AAEZ,KAAK,cAAc,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,SAAS,CAAC,GACpD,MAAM,GACN,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,GACxB,CAAC,GACD,KAAK,CAAC;AAEZ,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,SAAS,CAAC,GACvD,MAAM,GACN,aAAa,CAAC,CAAC,CAAC,SAAS,IAAI,GAC3B,CAAC,GACD,KAAK,CAAC;AAEZ,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AAE9D,KAAK,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI,GAAG,CAAC,EAAE,SAAS,IAAI,MAAM,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC;AAE/E,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,IACjC,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAE5C,KAAK,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAE3E,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,IACjC,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Arr, isNumber } from 'ts-data-forge';
1
+ import { Arr, Result, isNumber, Int } from 'ts-data-forge';
2
2
  import { createPrimitiveType } from '../utils/create-primitive-type.mjs';
3
3
  import '@sindresorhus/is';
4
4
  import { refine } from '../other-types/refine.mjs';
@@ -14,91 +14,68 @@ function number(defaultValue = 0, constraints) {
14
14
  Arr.isArrayOfLength(Object.keys(constraints), 0)) {
15
15
  return baseType;
16
16
  }
17
- if (constraints.gt !== undefined && !(defaultValue > constraints.gt)) {
18
- throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint gt = ${constraints.gt}`);
17
+ const constraintsPredicate = createConstraintsPredicate(constraints);
18
+ const defaultValueConstraintsCheck = constraintsPredicate(defaultValue);
19
+ if (Result.isErr(defaultValueConstraintsCheck)) {
20
+ throw new Error(defaultValueConstraintsCheck.value);
19
21
  }
20
- if (constraints.gte !== undefined && !(defaultValue >= constraints.gte)) {
21
- throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint gte = ${constraints.gte}`);
22
- }
23
- if (constraints.min !== undefined && !(defaultValue >= constraints.min)) {
24
- throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint min = ${constraints.min}`);
25
- }
26
- if (constraints.lt !== undefined && !(defaultValue < constraints.lt)) {
27
- throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint lt = ${constraints.lt}`);
28
- }
29
- if (constraints.lte !== undefined && !(defaultValue <= constraints.lte)) {
30
- throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint lte = ${constraints.lte}`);
31
- }
32
- if (constraints.max !== undefined && !(defaultValue <= constraints.max)) {
33
- throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint max = ${constraints.max}`);
34
- }
35
- if (constraints.positive === true && !(defaultValue > 0)) {
36
- throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint positive = true`);
37
- }
38
- if (constraints.nonNegative === true && !(defaultValue >= 0)) {
39
- throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint nonNegative = true`);
40
- }
41
- if (constraints.negative === true && !(defaultValue < 0)) {
42
- throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint negative = true`);
43
- }
44
- if (constraints.nonPositive === true && !(defaultValue <= 0)) {
45
- throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint nonPositive = true`);
46
- }
47
- if (constraints.multipleOf !== undefined &&
48
- defaultValue % constraints.multipleOf !== 0) {
49
- throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint multipleOf = ${constraints.multipleOf}`);
50
- }
51
- if (constraints.step !== undefined && defaultValue % constraints.step !== 0) {
52
- throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint step = ${constraints.step}`);
53
- }
54
- const satisfiesConstraints = createConstraintsPredicate(constraints);
55
22
  return refine({
56
23
  baseType,
57
24
  defaultValue,
58
- is: (value) => satisfiesConstraints(value),
25
+ is: (value) => Result.isOk(constraintsPredicate(value)),
59
26
  typeName: 'number',
60
27
  });
61
28
  }
62
29
  const createConstraintsPredicate = (constraints) => (value) => {
63
- if (constraints.gt !== undefined && !(value > constraints.gt)) {
64
- return false;
30
+ const { gt, gte, lt, lte, min, max, multipleOf, step, finite, int, nonzero, positive, nonNegative, negative, nonPositive, ..._rest } = constraints;
31
+ if (gt !== undefined && !(value > gt)) {
32
+ return Result.err(errorMessage(value, 'gt', gt));
33
+ }
34
+ if (gte !== undefined && !(value >= gte)) {
35
+ return Result.err(errorMessage(value, 'gte', gte));
36
+ }
37
+ if (min !== undefined && !(value >= min)) {
38
+ return Result.err(errorMessage(value, 'min', min));
39
+ }
40
+ if (lt !== undefined && !(value < lt)) {
41
+ return Result.err(errorMessage(value, 'lt', lt));
65
42
  }
66
- if (constraints.gte !== undefined && !(value >= constraints.gte)) {
67
- return false;
43
+ if (lte !== undefined && !(value <= lte)) {
44
+ return Result.err(errorMessage(value, 'lte', lte));
68
45
  }
69
- if (constraints.min !== undefined && !(value >= constraints.min)) {
70
- return false;
46
+ if (max !== undefined && !(value <= max)) {
47
+ return Result.err(errorMessage(value, 'max', max));
71
48
  }
72
- if (constraints.lt !== undefined && !(value < constraints.lt)) {
73
- return false;
49
+ if (multipleOf !== undefined && value % multipleOf !== 0) {
50
+ return Result.err(errorMessage(value, 'multipleOf', multipleOf));
74
51
  }
75
- if (constraints.lte !== undefined && !(value <= constraints.lte)) {
76
- return false;
52
+ if (step !== undefined && value % step !== 0) {
53
+ return Result.err(errorMessage(value, 'step', step));
77
54
  }
78
- if (constraints.max !== undefined && !(value <= constraints.max)) {
79
- return false;
55
+ if (nonzero === true && !(value !== 0)) {
56
+ return Result.err(errorMessage(value, 'nonzero', true));
80
57
  }
81
- if (constraints.positive === true && !(value > 0)) {
82
- return false;
58
+ if (positive === true && !(value > 0)) {
59
+ return Result.err(errorMessage(value, 'positive', true));
83
60
  }
84
- if (constraints.nonNegative === true && !(value >= 0)) {
85
- return false;
61
+ if (nonNegative === true && !(value >= 0)) {
62
+ return Result.err(errorMessage(value, 'nonNegative', true));
86
63
  }
87
- if (constraints.negative === true && !(value < 0)) {
88
- return false;
64
+ if (negative === true && !(value < 0)) {
65
+ return Result.err(errorMessage(value, 'negative', true));
89
66
  }
90
- if (constraints.nonPositive === true && !(value <= 0)) {
91
- return false;
67
+ if (nonPositive === true && !(value <= 0)) {
68
+ return Result.err(errorMessage(value, 'nonPositive', true));
92
69
  }
93
- if (constraints.multipleOf !== undefined &&
94
- value % constraints.multipleOf !== 0) {
95
- return false;
70
+ if (int === true && !Int.is(value)) {
71
+ return Result.err(errorMessage(value, 'int', true));
96
72
  }
97
- if (constraints.step !== undefined && value % constraints.step !== 0) {
98
- return false;
73
+ if (finite === true && !Number.isFinite(value)) {
74
+ return Result.err(errorMessage(value, 'finite', true));
99
75
  }
100
- return true;
76
+ return Result.ok(true);
101
77
  };
78
+ const errorMessage = (value, constraintName, constraintValue) => `defaultValue [${value}] for number does not satisfy the constraint ${constraintName} = ${constraintValue}`;
102
79
 
103
80
  export { number };
104
81
  //# sourceMappingURL=number.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"number.mjs","sources":["../../src/primitives/number.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"number.mjs","sources":["../../src/primitives/number.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}