ts-fortress 6.2.5 → 6.4.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 (121) hide show
  1. package/README.md +6 -6
  2. package/dist/array/array-at-least-length.mjs +1 -1
  3. package/dist/array/array-at-least-length.mjs.map +1 -1
  4. package/dist/array/array-of-length.mjs +2 -2
  5. package/dist/array/array-of-length.mjs.map +1 -1
  6. package/dist/array/array.mjs +1 -1
  7. package/dist/array/array.mjs.map +1 -1
  8. package/dist/array/non-empty-array.mjs +1 -1
  9. package/dist/array/non-empty-array.mjs.map +1 -1
  10. package/dist/array/tuple.d.mts.map +1 -1
  11. package/dist/array/tuple.mjs +2 -1
  12. package/dist/array/tuple.mjs.map +1 -1
  13. package/dist/compose/intersection.mjs +1 -1
  14. package/dist/compose/intersection.mjs.map +1 -1
  15. package/dist/compose/merge-records.mjs +1 -1
  16. package/dist/compose/merge-records.mjs.map +1 -1
  17. package/dist/entry-point.mjs +1 -0
  18. package/dist/entry-point.mjs.map +1 -1
  19. package/dist/index.mjs +1 -0
  20. package/dist/index.mjs.map +1 -1
  21. package/dist/other-types/index.d.mts +1 -0
  22. package/dist/other-types/index.d.mts.map +1 -1
  23. package/dist/other-types/index.mjs +1 -0
  24. package/dist/other-types/index.mjs.map +1 -1
  25. package/dist/other-types/map.mjs +1 -1
  26. package/dist/other-types/map.mjs.map +1 -1
  27. package/dist/other-types/recursion.d.mts +28 -1
  28. package/dist/other-types/recursion.d.mts.map +1 -1
  29. package/dist/other-types/recursion.mjs +28 -1
  30. package/dist/other-types/recursion.mjs.map +1 -1
  31. package/dist/other-types/set.mjs +1 -1
  32. package/dist/other-types/set.mjs.map +1 -1
  33. package/dist/other-types/template-literal.d.mts +85 -0
  34. package/dist/other-types/template-literal.d.mts.map +1 -0
  35. package/dist/other-types/template-literal.mjs +118 -0
  36. package/dist/other-types/template-literal.mjs.map +1 -0
  37. package/dist/other-types/unknown.d.mts.map +1 -1
  38. package/dist/other-types/unknown.mjs.map +1 -1
  39. package/dist/primitives/bigint.d.mts.map +1 -1
  40. package/dist/primitives/bigint.mjs +3 -2
  41. package/dist/primitives/bigint.mjs.map +1 -1
  42. package/dist/primitives/number.d.mts.map +1 -1
  43. package/dist/primitives/number.mjs +3 -2
  44. package/dist/primitives/number.mjs.map +1 -1
  45. package/dist/primitives/string.d.mts.map +1 -1
  46. package/dist/primitives/string.mjs +3 -2
  47. package/dist/primitives/string.mjs.map +1 -1
  48. package/dist/record/key-value-record.mjs +1 -1
  49. package/dist/record/key-value-record.mjs.map +1 -1
  50. package/dist/record/optional.d.mts +71 -1
  51. package/dist/record/optional.d.mts.map +1 -1
  52. package/dist/record/optional.mjs +80 -3
  53. package/dist/record/optional.mjs.map +1 -1
  54. package/dist/record/record.d.mts.map +1 -1
  55. package/dist/record/record.mjs +31 -7
  56. package/dist/record/record.mjs.map +1 -1
  57. package/dist/utils/create-assert-fn.mjs.map +1 -1
  58. package/dist/utils/create-is-fn.d.mts.map +1 -1
  59. package/dist/utils/create-is-fn.mjs +1 -1
  60. package/dist/utils/create-is-fn.mjs.map +1 -1
  61. package/dist/utils/validation-error.d.mts +2 -0
  62. package/dist/utils/validation-error.d.mts.map +1 -1
  63. package/dist/utils/validation-error.mjs +6 -2
  64. package/dist/utils/validation-error.mjs.map +1 -1
  65. package/package.json +14 -10
  66. package/src/array/array-at-least-length.mts +1 -1
  67. package/src/array/array-at-least-length.test.mts +9 -9
  68. package/src/array/array-of-length.mts +2 -2
  69. package/src/array/array-of-length.test.mts +10 -10
  70. package/src/array/array.mts +1 -1
  71. package/src/array/array.test.mts +7 -7
  72. package/src/array/non-empty-array.mts +1 -1
  73. package/src/array/non-empty-array.test.mts +10 -10
  74. package/src/array/tuple.mts +2 -1
  75. package/src/array/tuple.test.mts +10 -10
  76. package/src/compose/intersection.mts +1 -1
  77. package/src/compose/intersection.test.mts +7 -7
  78. package/src/compose/merge-records.mts +1 -1
  79. package/src/compose/merge-records.test.mts +6 -6
  80. package/src/compose/union-literal-array.test.mts +3 -3
  81. package/src/compose/union-mixed.test.mts +5 -5
  82. package/src/compose/union-nested-array.test.mts +7 -7
  83. package/src/compose/union-nested-record.test.mts +6 -6
  84. package/src/compose/union-primitive-array.test.mts +6 -6
  85. package/src/compose/union-record-array.test.mts +7 -7
  86. package/src/compose/union-record-primitive.test.mts +4 -4
  87. package/src/compose/union-records.test.mts +6 -6
  88. package/src/compose/union.test.mts +3 -3
  89. package/src/other-types/index.mts +1 -0
  90. package/src/other-types/map.mts +1 -1
  91. package/src/other-types/recursion.mts +28 -1
  92. package/src/other-types/recursion.test.mts +657 -143
  93. package/src/other-types/set.mts +1 -1
  94. package/src/other-types/set.test.mts +2 -2
  95. package/src/other-types/template-literal.mts +131 -0
  96. package/src/other-types/template-literal.test.mts +314 -0
  97. package/src/other-types/unknown.mts +12 -11
  98. package/src/predefined/brand/number/non-zero-finite-number.test.mts +2 -3
  99. package/src/predefined/brand/number/non-zero-safe-int.test.mts +2 -3
  100. package/src/predefined/brand/number/positive-finite-number.test.mts +2 -3
  101. package/src/primitives/bigint.mts +5 -2
  102. package/src/primitives/number.mts +5 -2
  103. package/src/primitives/string.mts +5 -2
  104. package/src/record/key-value-record.mts +1 -1
  105. package/src/record/key-value-record.test.mts +8 -8
  106. package/src/record/omit.test.mts +12 -12
  107. package/src/record/optional.mts +94 -6
  108. package/src/record/optional.test.mts +3 -1
  109. package/src/record/partial.test.mts +27 -27
  110. package/src/record/pick.test.mts +13 -13
  111. package/src/record/record-allow-excess-properties.test.mts +10 -10
  112. package/src/record/record-strict-composition-simple.test.mts +35 -12
  113. package/src/record/record-strict-composition.test.mts +45 -25
  114. package/src/record/record.mts +46 -12
  115. package/src/record/record.test.mts +22 -22
  116. package/src/record/required.test.mts +31 -31
  117. package/src/record/strict-record.test.mts +24 -12
  118. package/src/utils/create-assert-fn.mts +1 -1
  119. package/src/utils/create-is-fn.mts +1 -1
  120. package/src/utils/validation-error.mts +20 -12
  121. package/src/utils/validation-error.test.mts +4 -4
package/README.md CHANGED
@@ -127,7 +127,7 @@ const partialData = {
127
127
  // notifications missing - will be filled with default
128
128
  },
129
129
  // age, email, tags missing - will be filled with defaults
130
- };
130
+ } as const;
131
131
 
132
132
  const filledData = UserProfile.fill(partialData);
133
133
 
@@ -534,7 +534,7 @@ const User = t.record({
534
534
  type User = t.TypeOf<typeof User>;
535
535
 
536
536
  // Use defaultValue for initialization
537
- const newUser: User = { ...User.defaultValue, id: 'user-123' };
537
+ const newUser: User = { ...User.defaultValue, id: 'user-123' } as const;
538
538
 
539
539
  // This default value filling process can also be written as follows:
540
540
  const newUser2: User = User.fill({ id: 'user-456' });
@@ -645,13 +645,13 @@ const PermissiveUserType = t.record(
645
645
  );
646
646
 
647
647
  // Example usage - both StrictUserType and StrictUserTypeAlias behave identically
648
- const strictData = { id: '123', name: 'John', extra: 'not allowed' };
648
+ const strictData = { id: '123', name: 'John', extra: 'not allowed' } as const;
649
649
 
650
650
  assert.isFalse(StrictUserType.is(strictData)); // 'extra' property causes rejection
651
651
 
652
652
  assert.isFalse(StrictUserTypeAlias.is(strictData)); // same as above
653
653
 
654
- const permissiveData = { id: '123', name: 'John', extra: 'allowed' };
654
+ const permissiveData = { id: '123', name: 'John', extra: 'allowed' } as const;
655
655
 
656
656
  assert.isTrue(PermissiveUserType.is(permissiveData)); // 'extra' property is allowed
657
657
 
@@ -927,7 +927,7 @@ const User = t.record({
927
927
 
928
928
  type User = t.TypeOf<typeof User>;
929
929
 
930
- const invalidData = { name: 123, age: 'not a number' };
930
+ const invalidData = { name: 123, age: 'not a number' } as const;
931
931
 
932
932
  const result = User.validate(invalidData);
933
933
 
@@ -986,7 +986,7 @@ const StrictType = t.record(
986
986
  },
987
987
  );
988
988
 
989
- const dataWithExcess = { name: 'John', age: 30, extra: 'not allowed' };
989
+ const dataWithExcess = { name: 'John', age: 30, extra: 'not allowed' } as const;
990
990
 
991
991
  const strictResult = StrictType.validate(dataWithExcess);
992
992
 
@@ -43,7 +43,7 @@ const arrayAtLeastLength = (size, elementType, options) => {
43
43
  }
44
44
  }
45
45
  });
46
- if (errors.length > 0) {
46
+ if (Arr.isNonEmpty(errors)) {
47
47
  return Result.err(errors);
48
48
  }
49
49
  // eslint-disable-next-line total-functions/no-unsafe-type-assertion
@@ -1 +1 @@
1
- {"version":3,"file":"array-at-least-length.mjs","sources":["../../src/array/array-at-least-length.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAWO,MAAM,kBAAkB,GAAG,CAChC,IAAO,EACP,WAAoB,EACpB,OAKC,KAC8B;AAG/B,IAAA,MAAM,QAAQ,GACZ,OAAO,EAAE,QAAQ,IAAI,CAAA,gBAAA,EAAmB,IAAI,CAAA,EAAA,EAAK,WAAW,CAAC,QAAQ,GAAG;IAE1E,MAAM,eAAe,GAAG,eAAe,CACrC,MACE,OAAO,EAAE,YAAY;;QAEpB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAO,CACpD;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,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,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;;YAEG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAa;UACjE,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;;;;"}
1
+ {"version":3,"file":"array-at-least-length.mjs","sources":["../../src/array/array-at-least-length.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAWO,MAAM,kBAAkB,GAAG,CAChC,IAAO,EACP,WAAoB,EACpB,OAKC,KAC8B;AAG/B,IAAA,MAAM,QAAQ,GACZ,OAAO,EAAE,QAAQ,IAAI,CAAA,gBAAA,EAAmB,IAAI,CAAA,EAAA,EAAK,WAAW,CAAC,QAAQ,GAAG;IAE1E,MAAM,eAAe,GAAG,eAAe,CACrC,MACE,OAAO,EAAE,YAAY;;QAEpB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAO,CACpD;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;;YAEG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAa;UACjE,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;;;;"}
@@ -20,7 +20,7 @@ const arrayOfLength = (size, elementType, options) => {
20
20
  }),
21
21
  ]);
22
22
  }
23
- if (a.length !== size) {
23
+ if (!Arr.isArrayOfLength(a, size)) {
24
24
  return Result.err([
25
25
  {
26
26
  path: [],
@@ -43,7 +43,7 @@ const arrayOfLength = (size, elementType, options) => {
43
43
  }
44
44
  }
45
45
  });
46
- if (errors.length > 0) {
46
+ if (Arr.isNonEmpty(errors)) {
47
47
  return Result.err(errors);
48
48
  }
49
49
  // eslint-disable-next-line total-functions/no-unsafe-type-assertion
@@ -1 +1 @@
1
- {"version":3,"file":"array-of-length.mjs","sources":["../../src/array/array-of-length.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAWO,MAAM,aAAa,GAAG,CAC3B,IAAO,EACP,WAAoB,EACpB,OAKC,KAC4B;AAG7B,IAAA,MAAM,QAAQ,GACZ,OAAO,EAAE,QAAQ,IAAI,CAAA,cAAA,EAAiB,IAAI,CAAA,EAAA,EAAK,WAAW,CAAC,QAAQ,GAAG;IAExE,MAAM,eAAe,GAAG,eAAe,CACrC,MACE,OAAO,EAAE,YAAY;;QAEpB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAO,CACpD;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,KAAK,IAAI,EAAE;YACrB,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,cAAc;AACpB,wBAAA,cAAc,EAAE,IAAI;wBACpB,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,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,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,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;UACV,eAAe;AACjB;;YAEG,GAAG,CAAC,GAAG,CACN,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EACb,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAa,CACpC;IAEb,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;;;;"}
1
+ {"version":3,"file":"array-of-length.mjs","sources":["../../src/array/array-of-length.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAWO,MAAM,aAAa,GAAG,CAC3B,IAAO,EACP,WAAoB,EACpB,OAKC,KAC4B;AAG7B,IAAA,MAAM,QAAQ,GACZ,OAAO,EAAE,QAAQ,IAAI,CAAA,cAAA,EAAiB,IAAI,CAAA,EAAA,EAAK,WAAW,CAAC,QAAQ,GAAG;IAExE,MAAM,eAAe,GAAG,eAAe,CACrC,MACE,OAAO,EAAE,YAAY;;QAEpB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAO,CACpD;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;QAEA,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;YACjC,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,cAAc;AACpB,wBAAA,cAAc,EAAE,IAAI;wBACpB,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,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;UACV,eAAe;AACjB;;YAEG,GAAG,CAAC,GAAG,CACN,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EACb,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAa,CACpC;IAEb,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;;;;"}
@@ -26,7 +26,7 @@ const array = (elementType, options) => {
26
26
  }
27
27
  }
28
28
  });
29
- if (errors.length > 0) {
29
+ if (Arr.isNonEmpty(errors)) {
30
30
  return Result.err(errors);
31
31
  }
32
32
  // eslint-disable-next-line total-functions/no-unsafe-type-assertion
@@ -1 +1 @@
1
- {"version":3,"file":"array.mjs","sources":["../../src/array/array.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;MAWa,KAAK,GAAG,CACnB,WAAoB,EACpB,OAKC,KACqB;IAGtB,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,CAAA,EAAG,WAAW,CAAC,QAAQ,CAAA,EAAA,CAAI;AAEjE,IAAA,MAAM,eAAe,GAAG,eAAe,CAAC,MAAS,OAAO,EAAE,YAAY,IAAI,EAAE,CAAC;AAE7E,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,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,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QAC3B;;AAGA,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,CAAM,CAAC;AAC1B,IAAA,CAAC;AAED,IAAA,MAAM,IAAI,GAAoB,CAAC,CAAC,KAC9B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEzE,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,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
1
+ {"version":3,"file":"array.mjs","sources":["../../src/array/array.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;MAWa,KAAK,GAAG,CACnB,WAAoB,EACpB,OAKC,KACqB;IAGtB,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,CAAA,EAAG,WAAW,CAAC,QAAQ,CAAA,EAAA,CAAI;AAEjE,IAAA,MAAM,eAAe,GAAG,eAAe,CAAC,MAAS,OAAO,EAAE,YAAY,IAAI,EAAE,CAAC;AAE7E,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,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,CAAM,CAAC;AAC1B,IAAA,CAAC;AAED,IAAA,MAAM,IAAI,GAAoB,CAAC,CAAC,KAC9B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEzE,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,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
@@ -39,7 +39,7 @@ const nonEmptyArray = (elementType, options) => {
39
39
  }
40
40
  }
41
41
  });
42
- if (errors.length > 0) {
42
+ if (Arr.isNonEmpty(errors)) {
43
43
  return Result.err(errors);
44
44
  }
45
45
  // eslint-disable-next-line total-functions/no-unsafe-type-assertion
@@ -1 +1 @@
1
- {"version":3,"file":"non-empty-array.mjs","sources":["../../src/array/non-empty-array.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;MAWa,aAAa,GAAG,CAC3B,WAAoB,EACpB,OAKC,KACyB;IAG1B,MAAM,QAAQ,GACZ,OAAO,EAAE,QAAQ,IAAI,CAAA,cAAA,EAAiB,WAAW,CAAC,QAAQ,CAAA,CAAA,CAAG;IAE/D,MAAM,eAAe,GAAG,eAAe,CACrC,MAAS,OAAO,EAAE,YAAY,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAC5E;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,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAClB,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,iBAAiB;AACxB,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,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,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,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;AAChC,UAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;UACrC,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,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
1
+ {"version":3,"file":"non-empty-array.mjs","sources":["../../src/array/non-empty-array.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;MAWa,aAAa,GAAG,CAC3B,WAAoB,EACpB,OAKC,KACyB;IAG1B,MAAM,QAAQ,GACZ,OAAO,EAAE,QAAQ,IAAI,CAAA,cAAA,EAAiB,WAAW,CAAC,QAAQ,CAAA,CAAA,CAAG;IAE/D,MAAM,eAAe,GAAG,eAAe,CACrC,MAAS,OAAO,EAAE,YAAY,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAC5E;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,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAClB,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,iBAAiB;AACxB,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,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;AAChC,UAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;UACrC,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,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"tuple.d.mts","sourceRoot":"","sources":["../../src/array/tuple.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAUrD,KAAK,QAAQ,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,QAAQ,CAAC;KAC1D,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7B,CAAC,CAAC;AAEH,eAAO,MAAM,KAAK,GAAI,KAAK,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,OAAO,CAAC,EAAE,EAC5D,OAAO,CAAC,EACR,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CACH,KACA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAwElB,CAAC"}
1
+ {"version":3,"file":"tuple.d.mts","sourceRoot":"","sources":["../../src/array/tuple.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAUrD,KAAK,QAAQ,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,QAAQ,CAAC;KAC1D,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7B,CAAC,CAAC;AAEH,eAAO,MAAM,KAAK,GAAI,KAAK,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,OAAO,CAAC,EAAE,EAC5D,OAAO,CAAC,EACR,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CACH,KACA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAyElB,CAAC"}
@@ -18,6 +18,7 @@ const tuple = (types, options) => {
18
18
  }),
19
19
  ]);
20
20
  }
21
+ // eslint-disable-next-line ts-data-forge/prefer-arr-is-array-of-length
21
22
  if (a.length !== types.length) {
22
23
  return Result.err([
23
24
  {
@@ -41,7 +42,7 @@ const tuple = (types, options) => {
41
42
  }
42
43
  }
43
44
  });
44
- if (errors.length > 0) {
45
+ if (Arr.isNonEmpty(errors)) {
45
46
  return Result.err(errors);
46
47
  }
47
48
  // eslint-disable-next-line total-functions/no-unsafe-type-assertion
@@ -1 +1 @@
1
- {"version":3,"file":"tuple.mjs","sources":["../../src/array/tuple.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;MAea,KAAK,GAAG,CACnB,KAAQ,EACR,OAIC,KACoB;AAGrB,IAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,OAAO;IAE7C,MAAM,eAAe,GAAG,eAAe,CACrC,MAAmB,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAgB,CACxE;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;QAEA,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;YAC7B,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,cAAc;wBACpB,cAAc,EAAE,KAAK,CAAC,MAAM;wBAC5B,YAAY,EAAE,CAAC,CAAC,MAAM;AACvB,qBAAA;AACwB,iBAAA;AAC5B,aAAA,CAAC;QACJ;AAEA,QAAA,MAAM,MAAM,GAA+B,GAAG,CAAC,QAAQ,CAAC,aAAS;YAC/D,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE;gBAChE,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;AAEhC,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,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QAC3B;;AAGA,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,CAAM,CAAC;AAC1B,IAAA,CAAC;AAED,IAAA,MAAM,IAAI,GAAoB,CAAC,CAAC,KAC9B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;UACV,eAAe;AACjB;YACG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAiB;IAExD,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,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
1
+ {"version":3,"file":"tuple.mjs","sources":["../../src/array/tuple.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;MAea,KAAK,GAAG,CACnB,KAAQ,EACR,OAIC,KACoB;AAGrB,IAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,OAAO;IAE7C,MAAM,eAAe,GAAG,eAAe,CACrC,MAAmB,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAgB,CACxE;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;;QAGA,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;YAC7B,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,cAAc;wBACpB,cAAc,EAAE,KAAK,CAAC,MAAM;wBAC5B,YAAY,EAAE,CAAC,CAAC,MAAM;AACvB,qBAAA;AACwB,iBAAA;AAC5B,aAAA,CAAC;QACJ;AAEA,QAAA,MAAM,MAAM,GAA+B,GAAG,CAAC,QAAQ,CAAC,aAAS;YAC/D,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE;gBAChE,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;AAEhC,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,CAAM,CAAC;AAC1B,IAAA,CAAC;AAED,IAAA,MAAM,IAAI,GAAoB,CAAC,CAAC,KAC9B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;UACV,eAAe;AACjB;YACG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAiB;IAExD,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,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
@@ -26,7 +26,7 @@ const intersection = (types, defaultType, options) => {
26
26
  }
27
27
  }
28
28
  });
29
- if (errors.length > 0) {
29
+ if (Arr.isNonEmpty(errors)) {
30
30
  return Result.err(errors);
31
31
  }
32
32
  // eslint-disable-next-line total-functions/no-unsafe-type-assertion
@@ -1 +1 @@
1
- {"version":3,"file":"intersection.mjs","sources":["../../src/compose/intersection.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAUO,MAAM,YAAY,GAAG,CAC1B,KAAY,EACZ,WAAoC,EACpC,OAIC,KAC0B;AAG3B,IAAA,MAAM,cAAc,GAClB,OAAO,EAAE,QAAQ;AACjB,QAAA,CAAA,CAAA,EAAI,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG;AAE3D,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,MAAM,MAAM,GAA+B,GAAG,CAAC,QAAQ,CAAC,aAAS;AAC/D,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE5B,gBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACrB,MAAM;AACJ,wBAAA,IAAI,EAAE,EAAE;AACR,wBAAA,WAAW,EAAE,CAAC;AACd,wBAAA,YAAY,EAAE,cAAc;AAC5B,wBAAA,QAAQ,EAAE,cAAc;AACxB,wBAAA,OAAO,EAAE;AACP,4BAAA,IAAI,EAAE,cAAc;AACpB,4BAAA,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;AACxC,yBAAA;qBACwB;AAE3B,oBAAA,OAAO,GAAG,CAAC,KAAK;;;AAGtB,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;;;AAI3B,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,CAAM,CAAC;AAC1B,IAAA,CAAC;AAED,IAAA,MAAM,EAAE,GAAG,UAAU,CAAI,QAAQ,CAAC;IAElC,MAAM,IAAI,GAAoB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEtE,OAAO;AACL,QAAA,QAAQ,EAAE,cAAc;QACxB,YAAY,EAAE,WAAW,CAAC,YAAY;QACtC,IAAI;QACJ,QAAQ;QACR,EAAE;AACF,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
1
+ {"version":3,"file":"intersection.mjs","sources":["../../src/compose/intersection.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAUO,MAAM,YAAY,GAAG,CAC1B,KAAY,EACZ,WAAoC,EACpC,OAIC,KAC0B;AAG3B,IAAA,MAAM,cAAc,GAClB,OAAO,EAAE,QAAQ;AACjB,QAAA,CAAA,CAAA,EAAI,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG;AAE3D,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,MAAM,MAAM,GAA+B,GAAG,CAAC,QAAQ,CAAC,aAAS;AAC/D,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE5B,gBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACrB,MAAM;AACJ,wBAAA,IAAI,EAAE,EAAE;AACR,wBAAA,WAAW,EAAE,CAAC;AACd,wBAAA,YAAY,EAAE,cAAc;AAC5B,wBAAA,QAAQ,EAAE,cAAc;AACxB,wBAAA,OAAO,EAAE;AACP,4BAAA,IAAI,EAAE,cAAc;AACpB,4BAAA,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;AACxC,yBAAA;qBACwB;AAE3B,oBAAA,OAAO,GAAG,CAAC,KAAK;;;AAGtB,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AAC1B,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;;;AAI3B,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,CAAM,CAAC;AAC1B,IAAA,CAAC;AAED,IAAA,MAAM,EAAE,GAAG,UAAU,CAAI,QAAQ,CAAC;IAElC,MAAM,IAAI,GAAoB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEtE,OAAO;AACL,QAAA,QAAQ,EAAE,cAAc;QACxB,YAAY,EAAE,WAAW,CAAC,YAAY;QACtC,IAAI;QACJ,QAAQ;QACR,EAAE;AACF,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
@@ -26,7 +26,7 @@ const mergeRecords = (types, options) => {
26
26
  }
27
27
  }
28
28
  });
29
- if (errors.length > 0) {
29
+ if (Arr.isNonEmpty(errors)) {
30
30
  return Result.err(errors);
31
31
  }
32
32
  // eslint-disable-next-line total-functions/no-unsafe-type-assertion
@@ -1 +1 @@
1
- {"version":3,"file":"merge-records.mjs","sources":["../../src/compose/merge-records.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;MAgBa,YAAY,GAAG,CAG1B,KAAY,EACZ,OAKC,KAC0B;AAG3B,IAAA,MAAM,cAAc,GAClB,OAAO,EAAE,QAAQ;AACjB,QAAA,CAAA,CAAA,EAAI,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG;AAE3D,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,MAAM,MAAM,GAA+B,GAAG,CAAC,QAAQ,CAAC,aAAS;AAC/D,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE5B,gBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACrB,MAAM;AACJ,wBAAA,IAAI,EAAE,EAAE;AACR,wBAAA,WAAW,EAAE,CAAC;AACd,wBAAA,YAAY,EAAE,cAAc;AAC5B,wBAAA,QAAQ,EAAE,cAAc;AACxB,wBAAA,OAAO,EAAE;AACP,4BAAA,IAAI,EAAE,cAAc;AACpB,4BAAA,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;AACxC,yBAAA;qBACwB;AAE3B,oBAAA,OAAO,GAAG,CAAC,KAAK;;;AAGtB,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;;;AAI3B,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,CAAM,CAAC;AAC1B,IAAA,CAAC;AAED,IAAA,MAAM,EAAE,GAAG,UAAU,CAAI,QAAQ,CAAC;IAElC,MAAM,IAAI,GAAoB,CAAC,CAAC,KAC9B,EAAE,CAAC,CAAC;AACF,UAAE;WACC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9B,YAAA,iBAAiB,CACf,QAAQ,CAAC,CAAC;kBACN,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpC,kBAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAChC,CAAC;IAER,MAAM,eAAe,GAAG,eAAe,CACrC,MACE,OAAO,EAAE,WAAW,EAAE,YAAY;AAClC,QAAA,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CACtD;IAED,OAAO;AACL,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,IAAI,YAAY,GAAA;YACd,OAAO,eAAe,EAAE;SACzB;QACD,IAAI;QACJ,QAAQ;QACR,EAAE;AACF,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;AA2JA,MAAM,iBAAiB,GAAG,CACxB,IAAQ;AAER;AACA,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAqB;;;;"}
1
+ {"version":3,"file":"merge-records.mjs","sources":["../../src/compose/merge-records.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;MAgBa,YAAY,GAAG,CAG1B,KAAY,EACZ,OAKC,KAC0B;AAG3B,IAAA,MAAM,cAAc,GAClB,OAAO,EAAE,QAAQ;AACjB,QAAA,CAAA,CAAA,EAAI,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG;AAE3D,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,MAAM,MAAM,GAA+B,GAAG,CAAC,QAAQ,CAAC,aAAS;AAC/D,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE5B,gBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACrB,MAAM;AACJ,wBAAA,IAAI,EAAE,EAAE;AACR,wBAAA,WAAW,EAAE,CAAC;AACd,wBAAA,YAAY,EAAE,cAAc;AAC5B,wBAAA,QAAQ,EAAE,cAAc;AACxB,wBAAA,OAAO,EAAE;AACP,4BAAA,IAAI,EAAE,cAAc;AACpB,4BAAA,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;AACxC,yBAAA;qBACwB;AAE3B,oBAAA,OAAO,GAAG,CAAC,KAAK;;;AAGtB,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AAC1B,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;;;AAI3B,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,CAAM,CAAC;AAC1B,IAAA,CAAC;AAED,IAAA,MAAM,EAAE,GAAG,UAAU,CAAI,QAAQ,CAAC;IAElC,MAAM,IAAI,GAAoB,CAAC,CAAC,KAC9B,EAAE,CAAC,CAAC;AACF,UAAE;WACC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9B,YAAA,iBAAiB,CACf,QAAQ,CAAC,CAAC;kBACN,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpC,kBAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAChC,CAAC;IAER,MAAM,eAAe,GAAG,eAAe,CACrC,MACE,OAAO,EAAE,WAAW,EAAE,YAAY;AAClC,QAAA,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CACtD;IAED,OAAO;AACL,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,IAAI,YAAY,GAAA;YACd,OAAO,eAAe,EAAE;SACzB;QACD,IAAI;QACJ,QAAQ;QACR,EAAE;AACF,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;AA2JA,MAAM,iBAAiB,GAAG,CACxB,IAAQ;AAER;AACA,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAqB;;;;"}
@@ -18,6 +18,7 @@ export { MapType } from './other-types/map.mjs';
18
18
  export { recursion } from './other-types/recursion.mjs';
19
19
  export { refine } from './other-types/refine.mjs';
20
20
  export { SetType } from './other-types/set.mjs';
21
+ export { templateLiteral } from './other-types/template-literal.mjs';
21
22
  export { unknown } from './other-types/unknown.mjs';
22
23
  export { finiteNumber } from './predefined/brand/number/finite-number.mjs';
23
24
  export { int } from './predefined/brand/number/int.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
@@ -17,6 +17,7 @@ export { MapType } from './other-types/map.mjs';
17
17
  export { recursion } from './other-types/recursion.mjs';
18
18
  export { refine } from './other-types/refine.mjs';
19
19
  export { SetType } from './other-types/set.mjs';
20
+ export { templateLiteral } from './other-types/template-literal.mjs';
20
21
  export { unknown } from './other-types/unknown.mjs';
21
22
  export { finiteNumber } from './predefined/brand/number/finite-number.mjs';
22
23
  export { int } from './predefined/brand/number/int.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -3,5 +3,6 @@ export * from './map.mjs';
3
3
  export * from './recursion.mjs';
4
4
  export * from './refine.mjs';
5
5
  export * from './set.mjs';
6
+ export * from './template-literal.mjs';
6
7
  export * from './unknown.mjs';
7
8
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/other-types/index.mts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/other-types/index.mts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC"}
@@ -3,5 +3,6 @@ export { MapType } from './map.mjs';
3
3
  export { recursion } from './recursion.mjs';
4
4
  export { refine } from './refine.mjs';
5
5
  export { SetType } from './set.mjs';
6
+ export { templateLiteral } from './template-literal.mjs';
6
7
  export { unknown } from './unknown.mjs';
7
8
  //# 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":";;;;;;"}
@@ -57,7 +57,7 @@ const MapType = (keyType, valueType, options) => {
57
57
  }
58
58
  }
59
59
  });
60
- if (errors.length > 0) {
60
+ if (Arr.isNonEmpty(errors)) {
61
61
  return Result.err(errors);
62
62
  }
63
63
  return Result.ok(a);
@@ -1 +1 @@
1
- {"version":3,"file":"map.mjs","sources":["../../src/other-types/map.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAWA,MAAM,KAAK,GAAG,CAAC,KAAc,KAC3B,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,cAAc;AAOnD,MAAM,OAAO,GAAG,CACrB,OAAU,EACV,SAAY,EACZ,OAIC,KAC4B;AAG7B,IAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,KAAK;IAE3C,MAAM,eAAe,GAAG,eAAe,CAAC,MAAS,IAAI,GAAG,EAAE,CAAC;AAE3D,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACb,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA,8BAA8B,CAAC;AAC7B,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,KAAK;oBACnB,QAAQ;AACR,oBAAA,OAAO,EAAE,SAAS;iBACnB,CAAC;AACH,aAAA,CAAC;QACJ;AAEA,QAAA,MAAM,MAAM,GAA+B,GAAG,CAAC,QAAQ,CAAC,aAAS;AAC/D,YAAA,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBAChC;oBACE,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE/B,oBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;wBACrB,MAAM;AACJ,4BAAA,IAAI,EAAE,EAAE;AACR,4BAAA,WAAW,EAAE,CAAC;AACd,4BAAA,YAAY,EAAE,QAAQ;4BACtB,QAAQ;AACR,4BAAA,OAAO,EAAE;AACP,gCAAA,IAAI,EAAE,WAAW;AACjB,gCAAA,KAAK,EAAE,KAAK;gCACZ,YAAY,EAAE,OAAO,CAAC,QAAQ;AAC/B,6BAAA;yBACwB;AAE3B,wBAAA,OAAO,GAAG,CAAC,KAAK;oBAClB;gBACF;gBAEA;oBACE,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEjC,oBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;wBACrB,MAAM;AACJ,4BAAA,IAAI,EAAE,EAAE;AACR,4BAAA,WAAW,EAAE,CAAC;AACd,4BAAA,YAAY,EAAE,QAAQ;4BACtB,QAAQ;AACR,4BAAA,OAAO,EAAE;AACP,gCAAA,IAAI,EAAE,WAAW;AACjB,gCAAA,KAAK,EAAE,OAAO;gCACd,YAAY,EAAE,SAAS,CAAC,QAAQ;AACjC,6BAAA;yBACwB;AAE3B,wBAAA,OAAO,6BAA6B,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;oBACrE;gBACF;YACF;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QAC3B;AAEA,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,CAAM,CAAC;AAC1B,IAAA,CAAC;IAED,MAAM,IAAI,GAAoB,CAAC,CAAC,KAC9B,CAAC,KAAK,CAAC,CAAC;UACJ,eAAe;AACjB,UAAG,IAAI,GAAG,CACN,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAC5B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAC7C,CACI;IAEb,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,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
1
+ {"version":3,"file":"map.mjs","sources":["../../src/other-types/map.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -106,13 +106,40 @@ import { type Type } from '../type.mjs';
106
106
  * );
107
107
  * ```
108
108
  *
109
+ * @example
110
+ * // Mutually recursive types with optional fields
111
+ * ```ts
112
+ * import * as t from 'ts-fortress';
113
+ *
114
+ * type EvenNumber = Readonly<{ type: 'even'; next?: OddNumber }>;
115
+ *
116
+ * type OddNumber = Readonly<{ type: 'odd'; next?: EvenNumber }>;
117
+ *
118
+ * // When using optional fields in mutually recursive types,
119
+ * // use forceUndefinedDefault to avoid infinite loops when accessing defaultValue
120
+ * const EvenNumber: t.Type<EvenNumber> = t.recursion('EvenNumber', () =>
121
+ * t.record({
122
+ * type: t.literal('even'),
123
+ * next: t.optional(OddNumber, { forceUndefinedDefault: true }),
124
+ * }),
125
+ * );
126
+ *
127
+ * const OddNumber: t.Type<OddNumber> = t.recursion('OddNumber', () =>
128
+ * t.record({
129
+ * type: t.literal('odd'),
130
+ * next: t.optional(EvenNumber, { forceUndefinedDefault: true }),
131
+ * }),
132
+ * );
133
+ * ```
134
+ *
109
135
  * @remarks
110
136
  * **Important Notes:**
111
137
  * - The `definition` function is called lazily on first use, enabling self-reference
112
138
  * - For mutually recursive types, accessing `defaultValue` may cause infinite loops
113
139
  * unless proper precautions are taken:
114
140
  * 1. Place terminal types (like `nullType`) first in union types, OR
115
- * 2. Provide an explicit `defaultValue` in options
141
+ * 2. Provide an explicit `defaultValue` in options, OR
142
+ * 3. Use `optional()` with `forceUndefinedDefault: true` for optional fields
116
143
  * - The type definition itself (validation, type checking) works fine regardless of
117
144
  * union ordering or defaultValue specification
118
145
  */
@@ -1 +1 @@
1
- {"version":3,"file":"recursion.d.mts","sourceRoot":"","sources":["../../src/other-types/recursion.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAGxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoHG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,EACzB,UAAU,MAAM,EAChB,YAAY,MAAM,IAAI,CAAC,CAAC,CAAC,EACzB,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,YAAY,EAAE,CAAC,CAAC;CACjB,CAAC,CACH,KACA,IAAI,CAAC,CAAC,CAwBR,CAAC"}
1
+ {"version":3,"file":"recursion.d.mts","sourceRoot":"","sources":["../../src/other-types/recursion.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAGxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+IG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,EACzB,UAAU,MAAM,EAChB,YAAY,MAAM,IAAI,CAAC,CAAC,CAAC,EACzB,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,YAAY,EAAE,CAAC,CAAC;CACjB,CAAC,CACH,KACA,IAAI,CAAC,CAAC,CAwBR,CAAC"}
@@ -110,13 +110,40 @@ import { createIsFn } from '../utils/create-is-fn.mjs';
110
110
  * );
111
111
  * ```
112
112
  *
113
+ * @example
114
+ * // Mutually recursive types with optional fields
115
+ * ```ts
116
+ * import * as t from 'ts-fortress';
117
+ *
118
+ * type EvenNumber = Readonly<{ type: 'even'; next?: OddNumber }>;
119
+ *
120
+ * type OddNumber = Readonly<{ type: 'odd'; next?: EvenNumber }>;
121
+ *
122
+ * // When using optional fields in mutually recursive types,
123
+ * // use forceUndefinedDefault to avoid infinite loops when accessing defaultValue
124
+ * const EvenNumber: t.Type<EvenNumber> = t.recursion('EvenNumber', () =>
125
+ * t.record({
126
+ * type: t.literal('even'),
127
+ * next: t.optional(OddNumber, { forceUndefinedDefault: true }),
128
+ * }),
129
+ * );
130
+ *
131
+ * const OddNumber: t.Type<OddNumber> = t.recursion('OddNumber', () =>
132
+ * t.record({
133
+ * type: t.literal('odd'),
134
+ * next: t.optional(EvenNumber, { forceUndefinedDefault: true }),
135
+ * }),
136
+ * );
137
+ * ```
138
+ *
113
139
  * @remarks
114
140
  * **Important Notes:**
115
141
  * - The `definition` function is called lazily on first use, enabling self-reference
116
142
  * - For mutually recursive types, accessing `defaultValue` may cause infinite loops
117
143
  * unless proper precautions are taken:
118
144
  * 1. Place terminal types (like `nullType`) first in union types, OR
119
- * 2. Provide an explicit `defaultValue` in options
145
+ * 2. Provide an explicit `defaultValue` in options, OR
146
+ * 3. Use `optional()` with `forceUndefinedDefault: true` for optional fields
120
147
  * - The type definition itself (validation, type checking) works fine regardless of
121
148
  * union ordering or defaultValue specification
122
149
  */
@@ -1 +1 @@
1
- {"version":3,"file":"recursion.mjs","sources":["../../src/other-types/recursion.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoHG;AACI,MAAM,SAAS,GAAG,CACvB,QAAgB,EAChB,UAAyB,EACzB,OAIC,KACU;AACX,IAAA,MAAM,eAAe,GAAG,eAAe,CACrC,MAAS,OAAO,EAAE,YAAY,IAAI,YAAY,EAAE,CAAC,YAAY,CAC9D;AAED,IAAA,MAAM,YAAY,GAAkB,eAAe,CAAC,UAAU,CAAC;AAE/D,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEvE,IAAA,MAAM,EAAE,GAAG,UAAU,CAAI,QAAQ,CAAC;AAElC,IAAA,MAAM,IAAI,GAAoB,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAE3D,OAAO;QACL,QAAQ;AACR,QAAA,IAAI,YAAY,GAAA;YACd,OAAO,eAAe,EAAE;QAC1B,CAAC;QACD,IAAI;QACJ,QAAQ;QACR,EAAE;AACF,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
1
+ {"version":3,"file":"recursion.mjs","sources":["../../src/other-types/recursion.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+IG;AACI,MAAM,SAAS,GAAG,CACvB,QAAgB,EAChB,UAAyB,EACzB,OAIC,KACU;AACX,IAAA,MAAM,eAAe,GAAG,eAAe,CACrC,MAAS,OAAO,EAAE,YAAY,IAAI,YAAY,EAAE,CAAC,YAAY,CAC9D;AAED,IAAA,MAAM,YAAY,GAAkB,eAAe,CAAC,UAAU,CAAC;AAE/D,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEvE,IAAA,MAAM,EAAE,GAAG,UAAU,CAAI,QAAQ,CAAC;AAElC,IAAA,MAAM,IAAI,GAAoB,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAE3D,OAAO;QACL,QAAQ;AACR,QAAA,IAAI,YAAY,GAAA;YACd,OAAO,eAAe,EAAE;QAC1B,CAAC;QACD,IAAI;QACJ,QAAQ;QACR,EAAE;AACF,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
@@ -37,7 +37,7 @@ const SetType = (elementType, options) => {
37
37
  }
38
38
  }
39
39
  });
40
- if (errors.length > 0) {
40
+ if (Arr.isNonEmpty(errors)) {
41
41
  return Result.err(errors);
42
42
  }
43
43
  return Result.ok(a);
@@ -1 +1 @@
1
- {"version":3,"file":"set.mjs","sources":["../../src/other-types/set.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAUA,MAAM,KAAK,GAAG,CAAC,KAAc,KAC3B,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,cAAc;MAI7C,OAAO,GAAG,CACrB,WAAc,EACd,OAIC,KACyB;AAG1B,IAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,KAAK;IAE3C,MAAM,eAAe,GAAG,eAAe,CAAC,MAAS,IAAI,GAAG,EAAE,CAAC;AAE3D,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACb,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA,8BAA8B,CAAC;AAC7B,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,KAAK;oBACnB,QAAQ;AACR,oBAAA,OAAO,EAAE,SAAS;iBACnB,CAAC;AACH,aAAA,CAAC;QACJ;AAEA,QAAA,MAAM,MAAM,GAA+B,GAAG,CAAC,QAAQ,CAAC,aAAS;YAC/D,KAAK,MAAM,OAAO,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAChC,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;AAEzC,gBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACrB,MAAM;AACJ,wBAAA,IAAI,EAAE,EAAE;AACR,wBAAA,WAAW,EAAE,OAAO;AACpB,wBAAA,YAAY,EAAE,QAAQ;wBACtB,QAAQ;AACR,wBAAA,OAAO,EAAE;AACP,4BAAA,IAAI,EAAE,aAAa;4BACnB,YAAY,EAAE,WAAW,CAAC,QAAQ;AACnC,yBAAA;qBACwB;AAE3B,oBAAA,OAAO,GAAG,CAAC,KAAK;gBAClB;YACF;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QAC3B;AAEA,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,CAAM,CAAC;AAC1B,IAAA,CAAC;IAED,MAAM,IAAI,GAAoB,CAAC,CAAC,KAC9B,CAAC,KAAK,CAAC,CAAC;UACJ,eAAe;AACjB,UAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAO;IAE7E,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,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
1
+ {"version":3,"file":"set.mjs","sources":["../../src/other-types/set.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAUA,MAAM,KAAK,GAAG,CAAC,KAAc,KAC3B,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,cAAc;MAI7C,OAAO,GAAG,CACrB,WAAc,EACd,OAIC,KACyB;AAG1B,IAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,KAAK;IAE3C,MAAM,eAAe,GAAG,eAAe,CAAC,MAAS,IAAI,GAAG,EAAE,CAAC;AAE3D,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACb,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA,8BAA8B,CAAC;AAC7B,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,KAAK;oBACnB,QAAQ;AACR,oBAAA,OAAO,EAAE,SAAS;iBACnB,CAAC;AACH,aAAA,CAAC;QACJ;AAEA,QAAA,MAAM,MAAM,GAA+B,GAAG,CAAC,QAAQ,CAAC,aAAS;YAC/D,KAAK,MAAM,OAAO,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAChC,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;AAEzC,gBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACrB,MAAM;AACJ,wBAAA,IAAI,EAAE,EAAE;AACR,wBAAA,WAAW,EAAE,OAAO;AACpB,wBAAA,YAAY,EAAE,QAAQ;wBACtB,QAAQ;AACR,wBAAA,OAAO,EAAE;AACP,4BAAA,IAAI,EAAE,aAAa;4BACnB,YAAY,EAAE,WAAW,CAAC,QAAQ;AACnC,yBAAA;qBACwB;AAE3B,oBAAA,OAAO,GAAG,CAAC,KAAK;gBAClB;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;AAEA,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,CAAM,CAAC;AAC1B,IAAA,CAAC;IAED,MAAM,IAAI,GAAoB,CAAC,CAAC,KAC9B,CAAC,KAAK,CAAC,CAAC;UACJ,eAAe;AACjB,UAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAO;IAE7E,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,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
@@ -0,0 +1,85 @@
1
+ import { type Type } from '../type.mjs';
2
+ /**
3
+ * Creates a type validator for template literal string types.
4
+ *
5
+ * @template T - The template literal string type to validate
6
+ * @param options - Configuration object
7
+ * @param options.is - A type guard function that validates the template literal format
8
+ * @param options.typeName - A descriptive name for the type (e.g., 'PathString', 'UrlString')
9
+ * @param options.defaultValue - Default value for the type
10
+ *
11
+ * @returns A Type validator for the template literal string type
12
+ *
13
+ * @example
14
+ * // Path string starting with /
15
+ * ```ts
16
+ * import * as t from 'ts-fortress';
17
+ *
18
+ * type PathString = `/${string}`;
19
+ *
20
+ * const PathString = t.templateLiteral<PathString>({
21
+ * is: (value: unknown): value is PathString =>
22
+ * typeof value === 'string' && value.startsWith('/'),
23
+ * typeName: 'PathString',
24
+ * defaultValue: '/' as PathString,
25
+ * });
26
+ *
27
+ * assert.isTrue(PathString.is('/users'));
28
+ *
29
+ * assert.isTrue(PathString.is('/users/123'));
30
+ *
31
+ * assert.isFalse(PathString.is('users'));
32
+ * ```
33
+ *
34
+ * @example
35
+ * // URL string starting with http:// or https://
36
+ * ```ts
37
+ * import * as t from 'ts-fortress';
38
+ *
39
+ * type HttpUrl = `http://${string}` | `https://${string}`;
40
+ *
41
+ * const HttpUrl = t.templateLiteral<HttpUrl>({
42
+ * is: (value: unknown): value is HttpUrl =>
43
+ * typeof value === 'string' &&
44
+ * (value.startsWith('http://') || value.startsWith('https://')) &&
45
+ * value.length > 7,
46
+ * typeName: 'HttpUrl',
47
+ * defaultValue: 'https://example.com' as HttpUrl,
48
+ * });
49
+ *
50
+ * assert.isTrue(HttpUrl.is('https://example.com'));
51
+ *
52
+ * assert.isTrue(HttpUrl.is('http://example.com'));
53
+ *
54
+ * assert.isFalse(HttpUrl.is('ftp://example.com'));
55
+ * ```
56
+ *
57
+ * @example
58
+ * // Version string like 1.2.3
59
+ * ```ts
60
+ * import * as t from 'ts-fortress';
61
+ *
62
+ * type SemVer = `${number}.${number}.${number}`;
63
+ *
64
+ * const SemVer = t.templateLiteral<SemVer>({
65
+ * is: (value: unknown): value is SemVer =>
66
+ * typeof value === 'string' && /^\d+\.\d+\.\d+$/u.test(value),
67
+ * typeName: 'SemVer',
68
+ * defaultValue: '0.0.0' as SemVer,
69
+ * });
70
+ *
71
+ * assert.isTrue(SemVer.is('1.2.3'));
72
+ *
73
+ * assert.isTrue(SemVer.is('10.20.30'));
74
+ *
75
+ * assert.isFalse(SemVer.is('1.2'));
76
+ *
77
+ * assert.isFalse(SemVer.is('1.2.3.4'));
78
+ * ```
79
+ */
80
+ export declare const templateLiteral: <T extends string>({ defaultValue, is, typeName, }: Readonly<{
81
+ is: (value: unknown) => value is T;
82
+ typeName: string;
83
+ defaultValue: T;
84
+ }>) => Type<T>;
85
+ //# sourceMappingURL=template-literal.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-literal.d.mts","sourceRoot":"","sources":["../../src/other-types/template-literal.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAQxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,EAAE,iCAI/C,QAAQ,CAAC;IACV,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,CAAC,CAAC;CACjB,CAAC,KAAG,IAAI,CAAC,CAAC,CAmCV,CAAC"}
@@ -0,0 +1,118 @@
1
+ import { 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 } from '../utils/validation-error.mjs';
6
+
7
+ /**
8
+ * Creates a type validator for template literal string types.
9
+ *
10
+ * @template T - The template literal string type to validate
11
+ * @param options - Configuration object
12
+ * @param options.is - A type guard function that validates the template literal format
13
+ * @param options.typeName - A descriptive name for the type (e.g., 'PathString', 'UrlString')
14
+ * @param options.defaultValue - Default value for the type
15
+ *
16
+ * @returns A Type validator for the template literal string type
17
+ *
18
+ * @example
19
+ * // Path string starting with /
20
+ * ```ts
21
+ * import * as t from 'ts-fortress';
22
+ *
23
+ * type PathString = `/${string}`;
24
+ *
25
+ * const PathString = t.templateLiteral<PathString>({
26
+ * is: (value: unknown): value is PathString =>
27
+ * typeof value === 'string' && value.startsWith('/'),
28
+ * typeName: 'PathString',
29
+ * defaultValue: '/' as PathString,
30
+ * });
31
+ *
32
+ * assert.isTrue(PathString.is('/users'));
33
+ *
34
+ * assert.isTrue(PathString.is('/users/123'));
35
+ *
36
+ * assert.isFalse(PathString.is('users'));
37
+ * ```
38
+ *
39
+ * @example
40
+ * // URL string starting with http:// or https://
41
+ * ```ts
42
+ * import * as t from 'ts-fortress';
43
+ *
44
+ * type HttpUrl = `http://${string}` | `https://${string}`;
45
+ *
46
+ * const HttpUrl = t.templateLiteral<HttpUrl>({
47
+ * is: (value: unknown): value is HttpUrl =>
48
+ * typeof value === 'string' &&
49
+ * (value.startsWith('http://') || value.startsWith('https://')) &&
50
+ * value.length > 7,
51
+ * typeName: 'HttpUrl',
52
+ * defaultValue: 'https://example.com' as HttpUrl,
53
+ * });
54
+ *
55
+ * assert.isTrue(HttpUrl.is('https://example.com'));
56
+ *
57
+ * assert.isTrue(HttpUrl.is('http://example.com'));
58
+ *
59
+ * assert.isFalse(HttpUrl.is('ftp://example.com'));
60
+ * ```
61
+ *
62
+ * @example
63
+ * // Version string like 1.2.3
64
+ * ```ts
65
+ * import * as t from 'ts-fortress';
66
+ *
67
+ * type SemVer = `${number}.${number}.${number}`;
68
+ *
69
+ * const SemVer = t.templateLiteral<SemVer>({
70
+ * is: (value: unknown): value is SemVer =>
71
+ * typeof value === 'string' && /^\d+\.\d+\.\d+$/u.test(value),
72
+ * typeName: 'SemVer',
73
+ * defaultValue: '0.0.0' as SemVer,
74
+ * });
75
+ *
76
+ * assert.isTrue(SemVer.is('1.2.3'));
77
+ *
78
+ * assert.isTrue(SemVer.is('10.20.30'));
79
+ *
80
+ * assert.isFalse(SemVer.is('1.2'));
81
+ *
82
+ * assert.isFalse(SemVer.is('1.2.3.4'));
83
+ * ```
84
+ */
85
+ const templateLiteral = ({ defaultValue, is, typeName, }) => {
86
+ const validate = (a) => {
87
+ if (!is(a)) {
88
+ return Result.err([
89
+ createPrimitiveValidationError({
90
+ actualValue: a,
91
+ expectedType: typeName,
92
+ typeName,
93
+ details: { kind: 'template-literal' },
94
+ }),
95
+ ]);
96
+ }
97
+ return Result.ok(a);
98
+ };
99
+ const fill = (a) => {
100
+ const result = validate(a);
101
+ if (Result.isOk(result)) {
102
+ return result.value;
103
+ }
104
+ return defaultValue;
105
+ };
106
+ return {
107
+ typeName,
108
+ defaultValue,
109
+ fill,
110
+ validate,
111
+ is: createIsFn(validate),
112
+ assertIs: createAssertFn(validate),
113
+ cast: createCastFn(validate),
114
+ };
115
+ };
116
+
117
+ export { templateLiteral };
118
+ //# sourceMappingURL=template-literal.mjs.map