ts-fortress 7.0.7 → 7.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 (67) hide show
  1. package/README.md +2 -0
  2. package/dist/array/array-at-most-length.d.mts +8 -0
  3. package/dist/array/array-at-most-length.d.mts.map +1 -0
  4. package/dist/array/array-at-most-length.mjs +73 -0
  5. package/dist/array/array-at-most-length.mjs.map +1 -0
  6. package/dist/array/array-bounded-length.d.mts +8 -0
  7. package/dist/array/array-bounded-length.d.mts.map +1 -0
  8. package/dist/array/array-bounded-length.mjs +80 -0
  9. package/dist/array/array-bounded-length.mjs.map +1 -0
  10. package/dist/array/index.d.mts +2 -0
  11. package/dist/array/index.d.mts.map +1 -1
  12. package/dist/array/index.mjs +2 -0
  13. package/dist/array/index.mjs.map +1 -1
  14. package/dist/entry-point.mjs +3 -0
  15. package/dist/entry-point.mjs.map +1 -1
  16. package/dist/index.mjs +3 -0
  17. package/dist/index.mjs.map +1 -1
  18. package/dist/predefined/brand/index.mjs +1 -0
  19. package/dist/predefined/brand/index.mjs.map +1 -1
  20. package/dist/predefined/brand/string/email.d.mts +1 -1
  21. package/dist/predefined/brand/string/email.d.mts.map +1 -1
  22. package/dist/predefined/brand/string/email.mjs +5 -2
  23. package/dist/predefined/brand/string/email.mjs.map +1 -1
  24. package/dist/predefined/brand/string/index.d.mts +1 -0
  25. package/dist/predefined/brand/string/index.d.mts.map +1 -1
  26. package/dist/predefined/brand/string/index.mjs +1 -0
  27. package/dist/predefined/brand/string/index.mjs.map +1 -1
  28. package/dist/predefined/brand/string/iso-8601.d.mts +1 -1
  29. package/dist/predefined/brand/string/iso-8601.d.mts.map +1 -1
  30. package/dist/predefined/brand/string/iso-8601.mjs +4 -2
  31. package/dist/predefined/brand/string/iso-8601.mjs.map +1 -1
  32. package/dist/predefined/brand/string/json-string.d.mts +1 -1
  33. package/dist/predefined/brand/string/json-string.d.mts.map +1 -1
  34. package/dist/predefined/brand/string/json-string.mjs +5 -2
  35. package/dist/predefined/brand/string/json-string.mjs.map +1 -1
  36. package/dist/predefined/brand/string/non-empty-string.d.mts +5 -0
  37. package/dist/predefined/brand/string/non-empty-string.d.mts.map +1 -0
  38. package/dist/predefined/brand/string/non-empty-string.mjs +16 -0
  39. package/dist/predefined/brand/string/non-empty-string.mjs.map +1 -0
  40. package/dist/predefined/brand/string/uuid.d.mts +4 -4
  41. package/dist/predefined/brand/string/uuid.d.mts.map +1 -1
  42. package/dist/predefined/brand/string/uuid.mjs +1 -1
  43. package/dist/predefined/brand/string/uuid.mjs.map +1 -1
  44. package/dist/predefined/index.mjs +1 -0
  45. package/dist/predefined/index.mjs.map +1 -1
  46. package/dist/utils/validation-error.d.mts +9 -0
  47. package/dist/utils/validation-error.d.mts.map +1 -1
  48. package/dist/utils/validation-error.mjs +4 -0
  49. package/dist/utils/validation-error.mjs.map +1 -1
  50. package/package.json +15 -15
  51. package/src/array/array-at-most-length.mts +106 -0
  52. package/src/array/array-at-most-length.test.mts +206 -0
  53. package/src/array/array-bounded-length.mts +118 -0
  54. package/src/array/array-bounded-length.test.mts +252 -0
  55. package/src/array/index.mts +2 -0
  56. package/src/predefined/brand/string/email.mts +7 -3
  57. package/src/predefined/brand/string/email.test.mts +3 -0
  58. package/src/predefined/brand/string/index.mts +1 -0
  59. package/src/predefined/brand/string/iso-8601.mts +7 -3
  60. package/src/predefined/brand/string/iso-8601.test.mts +3 -0
  61. package/src/predefined/brand/string/json-string.mts +8 -3
  62. package/src/predefined/brand/string/json-string.test.mts +3 -0
  63. package/src/predefined/brand/string/non-empty-string.mts +24 -0
  64. package/src/predefined/brand/string/non-empty-string.test.mts +54 -0
  65. package/src/predefined/brand/string/uuid.mts +9 -7
  66. package/src/predefined/brand/string/uuid.test.mts +3 -0
  67. package/src/utils/validation-error.mts +17 -0
package/README.md CHANGED
@@ -1040,6 +1040,8 @@ type ValidationError = Readonly<{
1040
1040
  - `t.tuple([t1, t2, ..., tN])` - Fixed-length tuple validation
1041
1041
  - `t.arrayOfLength(size, elementType)` - Fixed-length array validation
1042
1042
  - `t.arrayAtLeastLength(size, elementType)` - Array validation with a minimum length
1043
+ - `t.arrayAtMostLength(size, elementType)` - Array validation with a maximum length
1044
+ - `t.arrayBoundedLength(min, max, elementType)` - Array validation with a length between `min` and `max` (inclusive)
1043
1045
 
1044
1046
  ### Objects
1045
1047
 
@@ -0,0 +1,8 @@
1
+ import { type ArrayAtMostLen, type SmallUint } from 'ts-type-forge';
2
+ import { type Type } from '../type.mjs';
3
+ export type { ArrayAtMostLen } from 'ts-type-forge';
4
+ export declare const arrayAtMostLength: <A, N extends SmallUint>(size: N, elementType: Type<A>, options?: Partial<Readonly<{
5
+ typeName: string;
6
+ defaultValue: ArrayAtMostLen<N, A>;
7
+ }>>) => Type<ArrayAtMostLen<N, A>>;
8
+ //# sourceMappingURL=array-at-most-length.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-at-most-length.d.mts","sourceRoot":"","sources":["../../src/array/array-at-most-length.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAUxC,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAE,CAAC,SAAS,SAAS,EACtD,MAAM,CAAC,EACP,aAAa,IAAI,CAAC,CAAC,CAAC,EACpB,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACpC,CAAC,CACH,KACA,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAkF3B,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { memoizeFunction, Arr, Result } from 'ts-data-forge';
2
+ import { createAssertFn } from '../utils/create-assert-fn.mjs';
3
+ import { createCastFn } from '../utils/create-cast-fn.mjs';
4
+ import { createIsFn } from '../utils/create-is-fn.mjs';
5
+ import { createPrimitiveValidationError, prependIndexToValidationErrors } from '../utils/validation-error.mjs';
6
+
7
+ const arrayAtMostLength = (size, elementType, options) => {
8
+ const typeName = options?.typeName ?? `ArrayAtMostLen<${size}, ${elementType.typeName}>`;
9
+ const getDefaultValue = memoizeFunction(() => options?.defaultValue ??
10
+ // The empty array is the shortest value satisfying `length <= size`.
11
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
12
+ Arr.create(0, elementType.defaultValue));
13
+ const validate = (a) => {
14
+ if (!Arr.isArray(a)) {
15
+ return Result.err([
16
+ createPrimitiveValidationError({
17
+ actualValue: a,
18
+ expectedType: 'array',
19
+ typeName,
20
+ details: undefined,
21
+ }),
22
+ ]);
23
+ }
24
+ if (a.length > size) {
25
+ return Result.err([
26
+ {
27
+ path: [],
28
+ actualValue: a,
29
+ expectedType: typeName,
30
+ typeName,
31
+ details: {
32
+ kind: 'array-max-length',
33
+ maxLength: size,
34
+ actualLength: a.length,
35
+ },
36
+ },
37
+ ]);
38
+ }
39
+ const errors = Arr.generate(function* () {
40
+ for (const [index, el] of a.entries()) {
41
+ const res = elementType.validate(el);
42
+ if (Result.isErr(res)) {
43
+ yield* prependIndexToValidationErrors(res.value, index);
44
+ }
45
+ }
46
+ });
47
+ if (Arr.isNonEmpty(errors)) {
48
+ return Result.err(errors);
49
+ }
50
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
51
+ return Result.ok(a);
52
+ };
53
+ const fill = (a) => Arr.isArray(a)
54
+ ? // Keep the input but trim down to at most `size` elements.
55
+ // TODO: remove as
56
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
57
+ Arr.map(Arr.take(a, size), (el) => elementType.fill(el))
58
+ : getDefaultValue();
59
+ return {
60
+ typeName,
61
+ get defaultValue() {
62
+ return getDefaultValue();
63
+ },
64
+ fill,
65
+ validate,
66
+ is: createIsFn(validate),
67
+ cast: createCastFn(validate),
68
+ assertIs: createAssertFn(validate),
69
+ };
70
+ };
71
+
72
+ export { arrayAtMostLength };
73
+ //# sourceMappingURL=array-at-most-length.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-at-most-length.mjs","sources":["../../src/array/array-at-most-length.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAcO,MAAM,iBAAiB,GAAG,CAC/B,IAAO,EACP,WAAoB,EACpB,OAKC,KAC6B;AAG9B,IAAA,MAAM,QAAQ,GACZ,OAAO,EAAE,QAAQ,IAAI,CAAA,eAAA,EAAkB,IAAI,CAAA,EAAA,EAAK,WAAW,CAAC,QAAQ,GAAG;IAEzE,MAAM,eAAe,GAAG,eAAe,CACrC,MACE,OAAO,EAAE,YAAY;;;QAGpB,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,YAAY,CAAO,CACjD;AAED,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;QAC1C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACnB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA,8BAA8B,CAAC;AAC7B,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,OAAO;oBACrB,QAAQ;AACR,oBAAA,OAAO,EAAE,SAAS;iBACnB,CAAC;AACH,aAAA,CAAC;QACJ;AAEA,QAAA,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,EAAE;YACnB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA;AACE,oBAAA,IAAI,EAAE,EAAE;AACR,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,QAAQ;oBACtB,QAAQ;AACR,oBAAA,OAAO,EAAE;AACP,wBAAA,IAAI,EAAE,kBAAkB;AACxB,wBAAA,SAAS,EAAE,IAAI;wBACf,YAAY,EAAE,CAAC,CAAC,MAAM;AACvB,qBAAA;AACwB,iBAAA;AAC5B,aAAA,CAAC;QACJ;AAEA,QAAA,MAAM,MAAM,GAA+B,GAAG,CAAC,QAAQ,CAAC,aAAS;AAC/D,YAAA,KAAK,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBACrC,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;AAEpC,gBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACrB,OAAO,8BAA8B,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;gBACzD;YACF;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AAC1B,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QAC3B;;AAGA,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,CAAiB,CAAC;AACrC,IAAA,CAAC;AAED,IAAA,MAAM,IAAI,GAAoB,CAAC,CAAC,KAC9B,GAAG,CAAC,OAAO,CAAC,CAAC;AACX;;;YAGG,GAAG,CAAC,GAAG,CACN,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EACjB,CAAC,EAAE,KAAK,WAAW,CAAC,IAAI,CAAC,EAAE,CAAa;UAE1C,eAAe,EAAE;IAEvB,OAAO;QACL,QAAQ;AACR,QAAA,IAAI,YAAY,GAAA;YACd,OAAO,eAAe,EAAE;QAC1B,CAAC;QACD,IAAI;QACJ,QAAQ;AACR,QAAA,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACxB,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;AAC5B,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;KACnC;AACH;;;;"}
@@ -0,0 +1,8 @@
1
+ import { type ArrayBoundedLen, type SmallUint } from 'ts-type-forge';
2
+ import { type Type } from '../type.mjs';
3
+ export type { ArrayBoundedLen } from 'ts-type-forge';
4
+ export declare const arrayBoundedLength: <A, Min extends SmallUint, Max extends SmallUint>(min: Min, max: Max, elementType: Type<A>, options?: Partial<Readonly<{
5
+ typeName: string;
6
+ defaultValue: ArrayBoundedLen<Min, Max, A>;
7
+ }>>) => Type<ArrayBoundedLen<Min, Max, A>>;
8
+ //# sourceMappingURL=array-bounded-length.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-bounded-length.d.mts","sourceRoot":"","sources":["../../src/array/array-bounded-length.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAUxC,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,eAAO,MAAM,kBAAkB,GAC7B,CAAC,EACD,GAAG,SAAS,SAAS,EACrB,GAAG,SAAS,SAAS,EAErB,KAAK,GAAG,EACR,KAAK,GAAG,EACR,aAAa,IAAI,CAAC,CAAC,CAAC,EACpB,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;CAC5C,CAAC,CACH,KACA,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAyFnC,CAAC"}
@@ -0,0 +1,80 @@
1
+ import { memoizeFunction, Arr, Result } from 'ts-data-forge';
2
+ import { createAssertFn } from '../utils/create-assert-fn.mjs';
3
+ import { createCastFn } from '../utils/create-cast-fn.mjs';
4
+ import { createIsFn } from '../utils/create-is-fn.mjs';
5
+ import { createPrimitiveValidationError, prependIndexToValidationErrors } from '../utils/validation-error.mjs';
6
+
7
+ const arrayBoundedLength = (min, max, elementType, options) => {
8
+ const typeName = options?.typeName ??
9
+ `ArrayBoundedLen<${min}, ${max}, ${elementType.typeName}>`;
10
+ const getDefaultValue = memoizeFunction(() => options?.defaultValue ??
11
+ // An array of the minimum length is the shortest value within the range.
12
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
13
+ Arr.create(min, elementType.defaultValue));
14
+ const validate = (a) => {
15
+ if (!Arr.isArray(a)) {
16
+ return Result.err([
17
+ createPrimitiveValidationError({
18
+ actualValue: a,
19
+ expectedType: 'array',
20
+ typeName,
21
+ details: undefined,
22
+ }),
23
+ ]);
24
+ }
25
+ if (a.length < min || max < a.length) {
26
+ return Result.err([
27
+ {
28
+ path: [],
29
+ actualValue: a,
30
+ expectedType: typeName,
31
+ typeName,
32
+ details: {
33
+ kind: 'array-range-length',
34
+ minLength: min,
35
+ maxLength: max,
36
+ actualLength: a.length,
37
+ },
38
+ },
39
+ ]);
40
+ }
41
+ const errors = Arr.generate(function* () {
42
+ for (const [index, el] of a.entries()) {
43
+ const res = elementType.validate(el);
44
+ if (Result.isErr(res)) {
45
+ yield* prependIndexToValidationErrors(res.value, index);
46
+ }
47
+ }
48
+ });
49
+ if (Arr.isNonEmpty(errors)) {
50
+ return Result.err(errors);
51
+ }
52
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
53
+ return Result.ok(a);
54
+ };
55
+ const fill = (a) => {
56
+ if (!Arr.isArray(a)) {
57
+ return getDefaultValue();
58
+ }
59
+ // Trim down to at most `max`, then pad up to at least `min`.
60
+ const capped = Arr.take(a, max);
61
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
62
+ return (capped.length >= min
63
+ ? Arr.map(capped, (el) => elementType.fill(el))
64
+ : Arr.map(Arr.seq(min), (i) => elementType.fill(capped[i])));
65
+ };
66
+ return {
67
+ typeName,
68
+ get defaultValue() {
69
+ return getDefaultValue();
70
+ },
71
+ fill,
72
+ validate,
73
+ is: createIsFn(validate),
74
+ cast: createCastFn(validate),
75
+ assertIs: createAssertFn(validate),
76
+ };
77
+ };
78
+
79
+ export { arrayBoundedLength };
80
+ //# sourceMappingURL=array-bounded-length.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-bounded-length.mjs","sources":["../../src/array/array-bounded-length.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  export * from './array-at-least-length.mjs';
2
+ export * from './array-at-most-length.mjs';
3
+ export * from './array-bounded-length.mjs';
2
4
  export * from './array-of-length.mjs';
3
5
  export * from './array.mjs';
4
6
  export * from './non-empty-array.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/array/index.mts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/array/index.mts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC"}
@@ -1,4 +1,6 @@
1
1
  export { arrayAtLeastLength } from './array-at-least-length.mjs';
2
+ export { arrayAtMostLength } from './array-at-most-length.mjs';
3
+ export { arrayBoundedLength } from './array-bounded-length.mjs';
2
4
  export { arrayOfLength } from './array-of-length.mjs';
3
5
  export { array } from './array.mjs';
4
6
  export { nonEmptyArray } from './non-empty-array.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,5 +1,7 @@
1
1
  export { FiniteNumber, Int, Int16, Int32, Int8, NonNegativeFiniteNumber, NonNegativeInt16, NonNegativeInt32, NonZeroFiniteNumber, NonZeroInt, NonZeroInt16, NonZeroInt32, NonZeroSafeInt, NonZeroUint16, NonZeroUint32, PositiveFiniteNumber, PositiveInt, PositiveInt16, PositiveInt32, PositiveSafeInt, PositiveUint16, PositiveUint32, Result, SafeInt, SafeUint, Uint, Uint16, Uint32, Uint8, asFiniteNumber, asInt, asInt16, asInt32, asInt8, asNonNegativeFiniteNumber, asNonNegativeInt16, asNonNegativeInt32, asNonZeroFiniteNumber, asNonZeroInt, asNonZeroInt16, asNonZeroInt32, asNonZeroSafeInt, asNonZeroUint16, asNonZeroUint32, asPositiveFiniteNumber, asPositiveInt, asPositiveInt16, asPositiveInt32, asPositiveSafeInt, asPositiveUint16, asPositiveUint32, asSafeInt, asSafeUint, asUint, asUint16, asUint32, asUint8, isBigint, isFiniteNumber, isInt, isInt16, isInt32, isInt8, isNonNegativeFiniteNumber, isNonNegativeInt16, isNonNegativeInt32, isNonZeroFiniteNumber, isNonZeroInt, isNonZeroInt16, isNonZeroInt32, isNonZeroSafeInt, isNonZeroUint16, isNonZeroUint32, isPositiveFiniteNumber, isPositiveInt, isPositiveInt16, isPositiveInt32, isPositiveSafeInt, isPositiveUint16, isPositiveUint32, isSafeInt, isSafeUint, isUint, isUint16, isUint32, isUint8 } from 'ts-data-forge';
2
2
  export { arrayAtLeastLength } from './array/array-at-least-length.mjs';
3
+ export { arrayAtMostLength } from './array/array-at-most-length.mjs';
4
+ export { arrayBoundedLength } from './array/array-bounded-length.mjs';
3
5
  export { arrayOfLength } from './array/array-of-length.mjs';
4
6
  export { array } from './array/array.mjs';
5
7
  export { nonEmptyArray } from './array/non-empty-array.mjs';
@@ -38,6 +40,7 @@ export { uint32 } from './predefined/brand/number/uint32.mjs';
38
40
  export { email } from './predefined/brand/string/email.mjs';
39
41
  export { iso8601 } from './predefined/brand/string/iso-8601.mjs';
40
42
  export { jsonString } from './predefined/brand/string/json-string.mjs';
43
+ export { nonEmptyString } from './predefined/brand/string/non-empty-string.mjs';
41
44
  export { uuid, uuidV4, uuidV6, uuidV7 } from './predefined/brand/string/uuid.mjs';
42
45
  export { int8 } from './predefined/int8.mjs';
43
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
@@ -1,4 +1,6 @@
1
1
  export { arrayAtLeastLength } from './array/array-at-least-length.mjs';
2
+ export { arrayAtMostLength } from './array/array-at-most-length.mjs';
3
+ export { arrayBoundedLength } from './array/array-bounded-length.mjs';
2
4
  export { arrayOfLength } from './array/array-of-length.mjs';
3
5
  export { array } from './array/array.mjs';
4
6
  export { nonEmptyArray } from './array/non-empty-array.mjs';
@@ -37,6 +39,7 @@ export { uint32 } from './predefined/brand/number/uint32.mjs';
37
39
  export { email } from './predefined/brand/string/email.mjs';
38
40
  export { iso8601 } from './predefined/brand/string/iso-8601.mjs';
39
41
  export { jsonString } from './predefined/brand/string/json-string.mjs';
42
+ export { nonEmptyString } from './predefined/brand/string/non-empty-string.mjs';
40
43
  export { uuid, uuidV4, uuidV6, uuidV7 } from './predefined/brand/string/uuid.mjs';
41
44
  export { int8 } from './predefined/int8.mjs';
42
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":"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"}
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -22,6 +22,15 @@ export type ValidationErrorDetails = Readonly<{
22
22
  kind: 'array-min-length';
23
23
  minLength: number;
24
24
  actualLength: number;
25
+ } | {
26
+ kind: 'array-max-length';
27
+ maxLength: number;
28
+ actualLength: number;
29
+ } | {
30
+ kind: 'array-range-length';
31
+ minLength: number;
32
+ maxLength: number;
33
+ actualLength: number;
25
34
  } | {
26
35
  kind: 'non-empty-array';
27
36
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"validation-error.d.mts","sourceRoot":"","sources":["../../src/utils/validation-error.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation-error.d.mts","sourceRoot":"","sources":["../../src/utils/validation-error.mts"],"names":[],"mappings":"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"}
@@ -41,6 +41,10 @@ const createDetailsMessage = (error, maxLengthToPrintActualValue) => {
41
41
  return `expected array of length ${error.details.expectedLength} but length ${error.details.actualLength} was passed.`;
42
42
  case 'array-min-length':
43
43
  return `expected array of length ${error.details.minLength} or more but length ${error.details.actualLength} was passed.`;
44
+ case 'array-max-length':
45
+ return `expected array of length ${error.details.maxLength} or less but length ${error.details.actualLength} was passed.`;
46
+ case 'array-range-length':
47
+ return `expected array of length between ${error.details.minLength} and ${error.details.maxLength} but length ${error.details.actualLength} was passed.`;
44
48
  case 'non-empty-array':
45
49
  return 'expected non-empty array but empty array was passed.';
46
50
  case 'missing-key':