ts-fortress 4.1.2 → 4.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 (100) hide show
  1. package/README.md +89 -35
  2. package/dist/array/array-of-length.d.mts +3 -3
  3. package/dist/array/array-of-length.d.mts.map +1 -1
  4. package/dist/array/array-of-length.mjs +5 -6
  5. package/dist/array/array-of-length.mjs.map +1 -1
  6. package/dist/array/array.d.mts +2 -2
  7. package/dist/array/array.d.mts.map +1 -1
  8. package/dist/array/array.mjs +3 -4
  9. package/dist/array/array.mjs.map +1 -1
  10. package/dist/array/non-empty-array.d.mts +3 -3
  11. package/dist/array/non-empty-array.d.mts.map +1 -1
  12. package/dist/array/non-empty-array.mjs +5 -6
  13. package/dist/array/non-empty-array.mjs.map +1 -1
  14. package/dist/array/tuple.d.mts +3 -3
  15. package/dist/array/tuple.d.mts.map +1 -1
  16. package/dist/array/tuple.mjs.map +1 -1
  17. package/dist/compose/intersection.d.mts +2 -2
  18. package/dist/compose/intersection.d.mts.map +1 -1
  19. package/dist/compose/intersection.mjs +2 -1
  20. package/dist/compose/intersection.mjs.map +1 -1
  21. package/dist/compose/merge-records.d.mts +3 -3
  22. package/dist/compose/merge-records.d.mts.map +1 -1
  23. package/dist/compose/merge-records.mjs +2 -1
  24. package/dist/compose/merge-records.mjs.map +1 -1
  25. package/dist/compose/recursion.d.mts +2 -2
  26. package/dist/compose/recursion.d.mts.map +1 -1
  27. package/dist/compose/recursion.mjs.map +1 -1
  28. package/dist/compose/union.d.mts +2 -2
  29. package/dist/compose/union.d.mts.map +1 -1
  30. package/dist/compose/union.mjs +2 -1
  31. package/dist/compose/union.mjs.map +1 -1
  32. package/dist/entry-point.mjs +1 -1
  33. package/dist/enum/enum.d.mts +3 -3
  34. package/dist/enum/enum.d.mts.map +1 -1
  35. package/dist/enum/enum.mjs +18 -20
  36. package/dist/enum/enum.mjs.map +1 -1
  37. package/dist/enum/int-range.d.mts +1 -1
  38. package/dist/enum/int-range.d.mts.map +1 -1
  39. package/dist/enum/uint-range.d.mts +1 -1
  40. package/dist/enum/uint-range.d.mts.map +1 -1
  41. package/dist/globals.d.mts +2 -0
  42. package/dist/index.mjs +1 -1
  43. package/dist/other-types/map.d.mts +2 -2
  44. package/dist/other-types/map.d.mts.map +1 -1
  45. package/dist/other-types/map.mjs.map +1 -1
  46. package/dist/other-types/set.d.mts +2 -2
  47. package/dist/other-types/set.d.mts.map +1 -1
  48. package/dist/other-types/set.mjs.map +1 -1
  49. package/dist/record/key-value-record.d.mts +2 -2
  50. package/dist/record/key-value-record.d.mts.map +1 -1
  51. package/dist/record/key-value-record.mjs.map +1 -1
  52. package/dist/record/keyof.d.mts +2 -2
  53. package/dist/record/keyof.d.mts.map +1 -1
  54. package/dist/record/keyof.mjs.map +1 -1
  55. package/dist/record/omit.d.mts +2 -2
  56. package/dist/record/omit.d.mts.map +1 -1
  57. package/dist/record/omit.mjs.map +1 -1
  58. package/dist/record/partial.d.mts +2 -2
  59. package/dist/record/partial.d.mts.map +1 -1
  60. package/dist/record/partial.mjs.map +1 -1
  61. package/dist/record/pick.d.mts +2 -2
  62. package/dist/record/pick.d.mts.map +1 -1
  63. package/dist/record/pick.mjs.map +1 -1
  64. package/dist/record/record.d.mts +4 -4
  65. package/dist/record/record.d.mts.map +1 -1
  66. package/dist/record/record.mjs.map +1 -1
  67. package/dist/record/valueof.d.mts +2 -2
  68. package/dist/record/valueof.d.mts.map +1 -1
  69. package/dist/record/valueof.mjs.map +1 -1
  70. package/dist/utils/index.mjs +1 -1
  71. package/dist/utils/to-union-string.d.mts +1 -0
  72. package/dist/utils/to-union-string.d.mts.map +1 -1
  73. package/dist/utils/to-union-string.mjs +2 -1
  74. package/dist/utils/to-union-string.mjs.map +1 -1
  75. package/package.json +1 -1
  76. package/src/array/array-of-length.mts +8 -11
  77. package/src/array/array.mts +8 -11
  78. package/src/array/non-empty-array.mts +11 -12
  79. package/src/array/tuple.mts +3 -1
  80. package/src/compose/intersection.mts +5 -6
  81. package/src/compose/intersection.test.mts +10 -10
  82. package/src/compose/merge-records.mts +6 -7
  83. package/src/compose/merge-records.test.mts +2 -2
  84. package/src/compose/recursion.mts +3 -5
  85. package/src/compose/union.mts +6 -7
  86. package/src/compose/union.test.mts +3 -2
  87. package/src/enum/enum.mts +24 -26
  88. package/src/enum/int-range.mts +1 -1
  89. package/src/enum/uint-range.mts +1 -1
  90. package/src/globals.d.mts +2 -0
  91. package/src/other-types/map.mts +3 -1
  92. package/src/other-types/set.mts +3 -1
  93. package/src/record/key-value-record.mts +3 -1
  94. package/src/record/keyof.mts +3 -5
  95. package/src/record/omit.mts +5 -7
  96. package/src/record/partial.mts +6 -8
  97. package/src/record/pick.mts +5 -7
  98. package/src/record/record.mts +9 -13
  99. package/src/record/valueof.mts +3 -5
  100. package/src/utils/to-union-string.mts +3 -0
@@ -58,6 +58,6 @@ export { createCastFn } from './utils/create-cast-fn.mjs';
58
58
  export { createIsFn } from './utils/create-is-fn.mjs';
59
59
  export { createPrimitiveType } from './utils/create-primitive-type.mjs';
60
60
  export { createType } from './utils/create-type.mjs';
61
- export { toUnionString } from './utils/to-union-string.mjs';
61
+ export { toIntersectionString, toUnionString } from './utils/to-union-string.mjs';
62
62
  export { createPrimitiveValidationError, prependIndexToValidationErrors, prependPathToValidationErrors, validationErrorToMessage, validationErrorsToMessages } from './utils/validation-error.mjs';
63
63
  //# sourceMappingURL=entry-point.mjs.map
@@ -1,6 +1,6 @@
1
1
  import { type Type } from '../type.mjs';
2
- export declare const enumType: <const Values extends NonEmptyArray<Primitive>>(values: Values, options?: Readonly<{
3
- typeName?: string;
4
- defaultValue?: ArrayElement<Values>;
2
+ export declare const enumType: <const Values extends NonEmptyArray<Primitive>>(values: Values, options?: PartialReadonly<{
3
+ typeName: string;
4
+ defaultValue: ArrayElement<Values>;
5
5
  }>) => Type<ArrayElement<Values>>;
6
6
  //# sourceMappingURL=enum.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum.d.mts","sourceRoot":"","sources":["../../src/enum/enum.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAQxC,eAAO,MAAM,QAAQ,GAAI,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,SAAS,CAAC,EACpE,QAAQ,MAAM,EACd,UAAU,QAAQ,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;CACrC,CAAC,KACD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CA4C3B,CAAC"}
1
+ {"version":3,"file":"enum.d.mts","sourceRoot":"","sources":["../../src/enum/enum.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAQxC,eAAO,MAAM,QAAQ,GAAI,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,SAAS,CAAC,EACpE,QAAQ,MAAM,EACd,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;CACpC,CAAC,KACD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CA0C3B,CAAC"}
@@ -5,31 +5,29 @@ import { createIsFn } from '../utils/create-is-fn.mjs';
5
5
 
6
6
  const enumType = (values, options) => {
7
7
  const valueSet = ISet.create(values);
8
- const defaultValueFilled = options?.defaultValue ??
8
+ const typeName = options?.typeName ?? 'enum';
9
+ const defaultValue = options?.defaultValue ??
9
10
  // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
10
11
  values[0];
11
- const validate = (a) => {
12
- const typeNameFilled = options?.typeName ?? 'enum';
13
- return (
14
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
15
- valueSet.has(a)
16
- ? // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
17
- Result.ok(a)
18
- : Result.err([
19
- {
20
- path: [],
21
- actualValue: a,
22
- expectedType: typeNameFilled,
23
- message: `The value is expected to be one of the elements contained in { ${values.join(', ')} }`,
24
- typeName: typeNameFilled,
25
- },
26
- ]));
27
- };
12
+ const validate = (a) =>
13
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
14
+ valueSet.has(a)
15
+ ? // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
16
+ Result.ok(a)
17
+ : Result.err([
18
+ {
19
+ path: [],
20
+ actualValue: a,
21
+ expectedType: typeName,
22
+ message: `The value is expected to be one of the elements contained in { ${values.join(', ')} }`,
23
+ typeName,
24
+ },
25
+ ]);
28
26
  const is = createIsFn(validate);
29
- const fill = (a) => (is(a) ? a : defaultValueFilled);
27
+ const fill = (a) => (is(a) ? a : defaultValue);
30
28
  return {
31
29
  typeName: options?.typeName ?? 'enum',
32
- defaultValue: defaultValueFilled,
30
+ defaultValue,
33
31
  fill,
34
32
  validate,
35
33
  is,
@@ -1 +1 @@
1
- {"version":3,"file":"enum.mjs","sources":["../../src/enum/enum.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;MASa,QAAQ,GAAG,CACtB,MAAc,EACd,OAGE,KAC4B;IAG9B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAEpC,IAAA,MAAM,kBAAkB,GACtB,OAAO,EAAE,YAAY;;QAEpB,MAAM,CAAC,CAAC,CAA0B;AAErC,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,MAAM,cAAc,GAAG,OAAO,EAAE,QAAQ,IAAI,MAAM;QAClD;;AAEE,QAAA,QAAQ,CAAC,GAAG,CAAC,CAAc;AACzB;AACE,gBAAA,MAAM,CAAC,EAAE,CAAC,CAAM;AAClB,cAAE,MAAM,CAAC,GAAG,CAAC;AACT,gBAAA;AACE,oBAAA,IAAI,EAAE,EAAE;AACR,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,cAAc;oBAC5B,OAAO,EAAE,kEAAkE,MAAM,CAAC,IAAI,CACpF,IAAI,CACL,CAAA,EAAA,CAAI;AACL,oBAAA,QAAQ,EAAE,cAAc;AACY,iBAAA;AACvC,aAAA,CAAC;AAEV,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,kBAAkB,CAAC;IAErE,OAAO;AACL,QAAA,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,MAAM;AACrC,QAAA,YAAY,EAAE,kBAAkB;QAChC,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":"enum.mjs","sources":["../../src/enum/enum.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;MASa,QAAQ,GAAG,CACtB,MAAc,EACd,OAGE,KAC4B;IAG9B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAEpC,IAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,MAAM;AAE5C,IAAA,MAAM,YAAY,GAChB,OAAO,EAAE,YAAY;;QAEpB,MAAM,CAAC,CAAC,CAA0B;AAErC,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC;;AAEtC,IAAA,QAAQ,CAAC,GAAG,CAAC,CAAc;AACzB;AACE,YAAA,MAAM,CAAC,EAAE,CAAC,CAAM;AAClB,UAAE,MAAM,CAAC,GAAG,CAAC;AACT,YAAA;AACE,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,WAAW,EAAE,CAAC;AACd,gBAAA,YAAY,EAAE,QAAQ;gBACtB,OAAO,EAAE,kEAAkE,MAAM,CAAC,IAAI,CACpF,IAAI,CACL,CAAA,EAAA,CAAI;gBACL,QAAQ;AAC4B,aAAA;AACvC,SAAA,CAAC;AAER,IAAA,MAAM,EAAE,GAAG,UAAU,CAAI,QAAQ,CAAC;IAElC,MAAM,IAAI,GAAoB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;IAE/D,OAAO;AACL,QAAA,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,MAAM;QACrC,YAAY;QACZ,IAAI;QACJ,QAAQ;QACR,EAAE;AACF,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
@@ -1,8 +1,8 @@
1
1
  import { type Type } from '../type.mjs';
2
2
  export declare const intRange: <Start extends Int8 | -128, End extends Int8 | 128>({ start, end, ...options }: Readonly<{
3
- typeName?: string;
4
3
  start: Start;
5
4
  end: End;
5
+ typeName?: string;
6
6
  defaultValue?: IntRange<Start, End>;
7
7
  }>) => Type<IntRange<Start, End>>;
8
8
  type NegativeRange = NegativeIndex<128>;
@@ -1 +1 @@
1
- {"version":3,"file":"int-range.d.mts","sourceRoot":"","sources":["../../src/enum/int-range.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAQxC,eAAO,MAAM,QAAQ,GAAI,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,IAAI,GAAG,GAAG,EAAE,4BAIzE,QAAQ,CAAC;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,GAAG,CAAC;IACT,YAAY,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;CACrC,CAAC,KAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAwC7B,CAAC;AAEF,KAAK,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AACxC,KAAK,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;AAEzC,KAAK,QAAQ,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,IAAI,GAAG,GAAG,IAC7D,OAAO,CACL,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,EACjC,WAAW,CAAC,GAAG,EAAE,aAAa,CAAC,CAChC,SAAS,IAAI,GACV,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,GACrB,OAAO,CACH,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,EACjC,WAAW,CAAC,GAAG,EAAE,aAAa,CAAC,CAChC,SAAS,IAAI,GACd,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GACrD,OAAO,CACH,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,EACjC,WAAW,CAAC,GAAG,EAAE,aAAa,CAAC,CAChC,SAAS,IAAI,GACd,KAAK,GACL,OAAO,CACH,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,EACjC,WAAW,CAAC,GAAG,EAAE,aAAa,CAAC,CAChC,SAAS,IAAI,GACd,OAAO,CACL,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EACxC,aAAa,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CACvC,GACD,KAAK,CAAC;AAElB,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,IACtC,GAAG,CAAC,EAAE,SAAS,IAAI,MAAM,CAAC,SAAS,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"int-range.d.mts","sourceRoot":"","sources":["../../src/enum/int-range.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAQxC,eAAO,MAAM,QAAQ,GAAI,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,IAAI,GAAG,GAAG,EAAE,4BAIzE,QAAQ,CAAC;IACV,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;CACrC,CAAC,KAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAwC7B,CAAC;AAEF,KAAK,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AACxC,KAAK,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;AAEzC,KAAK,QAAQ,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,IAAI,GAAG,GAAG,IAC7D,OAAO,CACL,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,EACjC,WAAW,CAAC,GAAG,EAAE,aAAa,CAAC,CAChC,SAAS,IAAI,GACV,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,GACrB,OAAO,CACH,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,EACjC,WAAW,CAAC,GAAG,EAAE,aAAa,CAAC,CAChC,SAAS,IAAI,GACd,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GACrD,OAAO,CACH,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,EACjC,WAAW,CAAC,GAAG,EAAE,aAAa,CAAC,CAChC,SAAS,IAAI,GACd,KAAK,GACL,OAAO,CACH,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,EACjC,WAAW,CAAC,GAAG,EAAE,aAAa,CAAC,CAChC,SAAS,IAAI,GACd,OAAO,CACL,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EACxC,aAAa,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CACvC,GACD,KAAK,CAAC;AAElB,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,IACtC,GAAG,CAAC,EAAE,SAAS,IAAI,MAAM,CAAC,SAAS,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { type Type } from '../type.mjs';
2
2
  export declare const uintRange: <Start extends Uint8, End extends Exclude<Uint8 | 256, Start>>({ start, end, ...options }: Readonly<{
3
- typeName?: string;
4
3
  start: Start;
5
4
  end: End;
5
+ typeName?: string;
6
6
  defaultValue?: UintRange<Start, End>;
7
7
  }>) => Type<UintRange<Start, End>>;
8
8
  //# sourceMappingURL=uint-range.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"uint-range.d.mts","sourceRoot":"","sources":["../../src/enum/uint-range.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAQxC,eAAO,MAAM,SAAS,GACpB,KAAK,SAAS,KAAK,EACnB,GAAG,SAAS,OAAO,CAAC,KAAK,GAAG,GAAG,EAAE,KAAK,CAAC,EACvC,4BAIC,QAAQ,CAAC;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,GAAG,CAAC;IACT,YAAY,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;CACtC,CAAC,KAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAwC9B,CAAC"}
1
+ {"version":3,"file":"uint-range.d.mts","sourceRoot":"","sources":["../../src/enum/uint-range.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAQxC,eAAO,MAAM,SAAS,GACpB,KAAK,SAAS,KAAK,EACnB,GAAG,SAAS,OAAO,CAAC,KAAK,GAAG,GAAG,EAAE,KAAK,CAAC,EACvC,4BAIC,QAAQ,CAAC;IACV,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;CACtC,CAAC,KAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAwC9B,CAAC"}
@@ -1,3 +1,5 @@
1
1
  /* eslint-disable import/unambiguous */
2
2
 
3
3
  /// <reference types="ts-type-forge" />
4
+
5
+ type PartialReadonly<T> = Partial<Readonly<T>>;
package/dist/index.mjs CHANGED
@@ -58,6 +58,6 @@ export { createCastFn } from './utils/create-cast-fn.mjs';
58
58
  export { createIsFn } from './utils/create-is-fn.mjs';
59
59
  export { createPrimitiveType } from './utils/create-primitive-type.mjs';
60
60
  export { createType } from './utils/create-type.mjs';
61
- export { toUnionString } from './utils/to-union-string.mjs';
61
+ export { toIntersectionString, toUnionString } from './utils/to-union-string.mjs';
62
62
  export { createPrimitiveValidationError, prependIndexToValidationErrors, prependPathToValidationErrors, validationErrorToMessage, validationErrorsToMessages } from './utils/validation-error.mjs';
63
63
  //# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  import { type Type, type TypeOf } from '../type.mjs';
2
2
  type MapResultType<K extends Type<unknown>, V extends Type<unknown>> = ReadonlyMap<TypeOf<K>, TypeOf<V>>;
3
- export declare const MapType: <K extends Type<unknown>, V extends Type<unknown>>(keyType: K, valueType: V, options?: Readonly<{
4
- typeName?: string;
3
+ export declare const MapType: <K extends Type<unknown>, V extends Type<unknown>>(keyType: K, valueType: V, options?: PartialReadonly<{
4
+ typeName: string;
5
5
  }>) => Type<MapResultType<K, V>>;
6
6
  export {};
7
7
  //# sourceMappingURL=map.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"map.d.mts","sourceRoot":"","sources":["../../src/other-types/map.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAWrD,KAAK,aAAa,CAChB,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,EACvB,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,IACrB,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtC,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,EACtE,SAAS,CAAC,EACV,WAAW,CAAC,EACZ,UAAU,QAAQ,CAAC;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,KACxC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CA6E1B,CAAC"}
1
+ {"version":3,"file":"map.d.mts","sourceRoot":"","sources":["../../src/other-types/map.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAWrD,KAAK,aAAa,CAChB,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,EACvB,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,IACrB,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtC,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,EACtE,SAAS,CAAC,EACV,WAAW,CAAC,EACZ,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,KACD,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CA6E1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"map.mjs","sources":["../../src/other-types/map.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAiBO,MAAM,OAAO,GAAG,CACrB,OAAU,EACV,SAAY,EACZ,OAAyC,KACZ;AAG7B,IAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,KAAK;AAE3C,IAAA,MAAM,YAAY,GAAM,IAAI,GAAG,EAAE;AAEjC,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,IAAI,EAAE,CAAC,YAAY,GAAG,CAAC,EAAE;YACvB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA,8BAA8B,CAAC;AAC7B,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,KAAK;oBACnB,QAAQ;iBACT,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,IAAK,CAAmC,CAAC,OAAO,EAAE,EAAE;gBACnE;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;AACtB,4BAAA,OAAO,EAAE,CAAA,sCAAA,EAAyC,OAAO,CAAC,QAAQ,CAAA,YAAA,EAAe,OAAO,CAAC,CAAA,eAAA,EAAkB,eAAe,CAAC,CAAC,CAAC,CAAA,EAAA,CAAI;4BACjI,QAAQ;yBAC4B;AAEtC,wBAAA,OAAO,GAAG,CAAC,KAAK;oBAClB;gBACF;gBACA;oBACE,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjC,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;AACtB,4BAAA,OAAO,EAAE,CAAA,wCAAA,EAA2C,SAAS,CAAC,QAAQ,CAAA,YAAA,EAAe,OAAO,CAAC,CAAA,eAAA,EAAkB,eAAe,CAAC,CAAC,CAAC,CAAA,EAAA,CAAI;4BACrI,QAAQ;yBAC4B;AAEtC,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,YAAY;AACX,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;UAEH,YAAY;IAElB,OAAO;QACL,QAAQ;QACR,YAAY;QACZ,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":";;;;;;AAiBO,MAAM,OAAO,GAAG,CACrB,OAAU,EACV,SAAY,EACZ,OAEE,KAC2B;AAG7B,IAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,KAAK;AAE3C,IAAA,MAAM,YAAY,GAAM,IAAI,GAAG,EAAE;AAEjC,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,IAAI,EAAE,CAAC,YAAY,GAAG,CAAC,EAAE;YACvB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA,8BAA8B,CAAC;AAC7B,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,KAAK;oBACnB,QAAQ;iBACT,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,IAAK,CAAmC,CAAC,OAAO,EAAE,EAAE;gBACnE;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;AACtB,4BAAA,OAAO,EAAE,CAAA,sCAAA,EAAyC,OAAO,CAAC,QAAQ,CAAA,YAAA,EAAe,OAAO,CAAC,CAAA,eAAA,EAAkB,eAAe,CAAC,CAAC,CAAC,CAAA,EAAA,CAAI;4BACjI,QAAQ;yBAC4B;AAEtC,wBAAA,OAAO,GAAG,CAAC,KAAK;oBAClB;gBACF;gBACA;oBACE,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjC,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;AACtB,4BAAA,OAAO,EAAE,CAAA,wCAAA,EAA2C,SAAS,CAAC,QAAQ,CAAA,YAAA,EAAe,OAAO,CAAC,CAAA,eAAA,EAAkB,eAAe,CAAC,CAAC,CAAC,CAAA,EAAA,CAAI;4BACrI,QAAQ;yBAC4B;AAEtC,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,YAAY;AACX,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;UAEH,YAAY;IAElB,OAAO;QACL,QAAQ;QACR,YAAY;QACZ,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,7 +1,7 @@
1
1
  import { type Type, type TypeOf } from '../type.mjs';
2
2
  type SetResultType<T extends Type<unknown>> = ReadonlySet<TypeOf<T>>;
3
- export declare const SetType: <T extends Type<unknown>>(elementType: T, options?: Readonly<{
4
- typeName?: string;
3
+ export declare const SetType: <T extends Type<unknown>>(elementType: T, options?: PartialReadonly<{
4
+ typeName: string;
5
5
  }>) => Type<SetResultType<T>>;
6
6
  export {};
7
7
  //# sourceMappingURL=set.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"set.d.mts","sourceRoot":"","sources":["../../src/other-types/set.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAUrD,KAAK,aAAa,CAAC,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAErE,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,EAC7C,aAAa,CAAC,EACd,UAAU,QAAQ,CAAC;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,KACxC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAyDvB,CAAC"}
1
+ {"version":3,"file":"set.d.mts","sourceRoot":"","sources":["../../src/other-types/set.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAUrD,KAAK,aAAa,CAAC,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAErE,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,EAC7C,aAAa,CAAC,EACd,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,KACD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAyDvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"set.mjs","sources":["../../src/other-types/set.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;MAaa,OAAO,GAAG,CACrB,WAAc,EACd,OAAyC,KACf;AAG1B,IAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,KAAK;AAE3C,IAAA,MAAM,YAAY,GAAM,IAAI,GAAG,EAAE;AAEjC,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,IAAI,EAAE,CAAC,YAAY,GAAG,CAAC,EAAE;YACvB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA,8BAA8B,CAAC;AAC7B,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,KAAK;oBACnB,QAAQ;iBACT,CAAC;AACH,aAAA,CAAC;QACJ;AAEA,QAAA,MAAM,MAAM,GAA+B,GAAG,CAAC,QAAQ,CAAC,aAAS;YAC/D,KAAK,MAAM,OAAO,IAAK,CAA0B,CAAC,MAAM,EAAE,EAAE;gBAC1D,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;AACtB,wBAAA,OAAO,EAAE,CAAA,0CAAA,EAA6C,WAAW,CAAC,QAAQ,CAAA,YAAA,EAAe,OAAO,OAAO,CAAA,eAAA,EAAkB,eAAe,CAAC,OAAO,CAAC,CAAA,EAAA,CAAI;wBACrJ,QAAQ;qBAC4B;AAEtC,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,YAAY;AACX,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;UAChE,YAAY;IAElB,OAAO;QACL,QAAQ;QACR,YAAY;QACZ,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":";;;;;;MAaa,OAAO,GAAG,CACrB,WAAc,EACd,OAEE,KACwB;AAG1B,IAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,KAAK;AAE3C,IAAA,MAAM,YAAY,GAAM,IAAI,GAAG,EAAE;AAEjC,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,IAAI,EAAE,CAAC,YAAY,GAAG,CAAC,EAAE;YACvB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA,8BAA8B,CAAC;AAC7B,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,KAAK;oBACnB,QAAQ;iBACT,CAAC;AACH,aAAA,CAAC;QACJ;AAEA,QAAA,MAAM,MAAM,GAA+B,GAAG,CAAC,QAAQ,CAAC,aAAS;YAC/D,KAAK,MAAM,OAAO,IAAK,CAA0B,CAAC,MAAM,EAAE,EAAE;gBAC1D,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;AACtB,wBAAA,OAAO,EAAE,CAAA,0CAAA,EAA6C,WAAW,CAAC,QAAQ,CAAA,YAAA,EAAe,OAAO,OAAO,CAAA,eAAA,EAAkB,eAAe,CAAC,OAAO,CAAC,CAAA,EAAA,CAAI;wBACrJ,QAAQ;qBAC4B;AAEtC,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,YAAY;AACX,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;UAChE,YAAY;IAElB,OAAO;QACL,QAAQ;QACR,YAAY;QACZ,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,7 +1,7 @@
1
1
  import { type Type, type TypeOf } from '../type.mjs';
2
2
  type RecordResultType<K extends Type<string>, V extends Type<unknown>> = ReadonlyRecord<TypeOf<K>, TypeOf<V>>;
3
- export declare const keyValueRecord: <K extends Type<string>, V extends Type<unknown>>(keyType: K, valueType: V, options?: Readonly<{
4
- typeName?: string;
3
+ export declare const keyValueRecord: <K extends Type<string>, V extends Type<unknown>>(keyType: K, valueType: V, options?: PartialReadonly<{
4
+ typeName: string;
5
5
  }>) => Type<RecordResultType<K, V>>;
6
6
  export {};
7
7
  //# sourceMappingURL=key-value-record.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"key-value-record.d.mts","sourceRoot":"","sources":["../../src/record/key-value-record.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAWrD,KAAK,gBAAgB,CACnB,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,EACtB,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,IACrB,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzC,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,EAC5E,SAAS,CAAC,EACV,WAAW,CAAC,EACZ,UAAU,QAAQ,CAAC;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,KACxC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAgF7B,CAAC"}
1
+ {"version":3,"file":"key-value-record.d.mts","sourceRoot":"","sources":["../../src/record/key-value-record.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAWrD,KAAK,gBAAgB,CACnB,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,EACtB,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,IACrB,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzC,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,EAC5E,SAAS,CAAC,EACV,WAAW,CAAC,EACZ,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,KACD,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAgF7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"key-value-record.mjs","sources":["../../src/record/key-value-record.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAiBO,MAAM,cAAc,GAAG,CAC5B,OAAU,EACV,SAAY,EACZ,OAAyC,KACT;AAGhC,IAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,kBAAkB;;IAGxD,MAAM,YAAY,GAAG,EAAO;AAE5B,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YAChB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA,8BAA8B,CAAC;AAC7B,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,QAAQ;oBACtB,QAAQ;iBACT,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,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACtC;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;AACtB,4BAAA,OAAO,EAAE,CAAA,yCAAA,EAA4C,OAAO,CAAC,QAAQ,CAAA,CAAA,CAAG;4BACxE,QAAQ;yBAC4B;AAEtC,wBAAA,OAAO,GAAG,CAAC,KAAK;oBAClB;gBACF;gBACA;oBACE,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjC,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;AACtB,4BAAA,OAAO,EAAE,CAAA,2CAAA,EAA8C,SAAS,CAAC,QAAQ,CAAA,CAAA,CAAG;4BAC5E,QAAQ;yBAC4B;wBAEtC,OAAO,6BAA6B,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;oBACpD;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;;AAGA,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,CAAM,CAAC;AAC1B,IAAA,CAAC;IAED,MAAM,IAAI,GAAoB,CAAC,CAAC,KAC9B,QAAQ,CAAC,CAAC;AACR;AACG,YAAA,MAAM,CAAC,WAAW,CACjB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CACtB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAC7C;UAEH,YAAY;IAElB,OAAO;QACL,QAAQ;QACR,YAAY;QACZ,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":"key-value-record.mjs","sources":["../../src/record/key-value-record.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAiBO,MAAM,cAAc,GAAG,CAC5B,OAAU,EACV,SAAY,EACZ,OAEE,KAC8B;AAGhC,IAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,kBAAkB;;IAGxD,MAAM,YAAY,GAAG,EAAO;AAE5B,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YAChB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA,8BAA8B,CAAC;AAC7B,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,QAAQ;oBACtB,QAAQ;iBACT,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,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACtC;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;AACtB,4BAAA,OAAO,EAAE,CAAA,yCAAA,EAA4C,OAAO,CAAC,QAAQ,CAAA,CAAA,CAAG;4BACxE,QAAQ;yBAC4B;AAEtC,wBAAA,OAAO,GAAG,CAAC,KAAK;oBAClB;gBACF;gBACA;oBACE,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjC,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;AACtB,4BAAA,OAAO,EAAE,CAAA,2CAAA,EAA8C,SAAS,CAAC,QAAQ,CAAA,CAAA,CAAG;4BAC5E,QAAQ;yBAC4B;wBAEtC,OAAO,6BAA6B,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;oBACpD;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;;AAGA,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,CAAM,CAAC;AAC1B,IAAA,CAAC;IAED,MAAM,IAAI,GAAoB,CAAC,CAAC,KAC9B,QAAQ,CAAC,CAAC;AACR;AACG,YAAA,MAAM,CAAC,WAAW,CACjB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CACtB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAC7C;UAEH,YAAY;IAElB,OAAO;QACL,QAAQ;QACR,YAAY;QACZ,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,7 +1,7 @@
1
1
  import { type RecordType, type Type } from '../type.mjs';
2
- export declare const keyof: <const R extends ReadonlyRecord<string, Type<unknown>>>(recordType: RecordType<R>, options?: Partial<Readonly<{
2
+ export declare const keyof: <const R extends ReadonlyRecord<string, Type<unknown>>>(recordType: RecordType<R>, options?: PartialReadonly<{
3
3
  typeName: string;
4
- }>>) => KeyofType<R>;
4
+ }>) => KeyofType<R>;
5
5
  type KeyofTypeSub<R extends ReadonlyRecord<string, Type<unknown>>> = Type<ToString<keyof R>>;
6
6
  type KeyofType<R extends ReadonlyRecord<string, Type<unknown>>> = IsNever<keyof R> extends true ? Type<undefined> : KeyofTypeSub<R>;
7
7
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"keyof.d.mts","sourceRoot":"","sources":["../../src/record/keyof.mts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,KAAK,GAAI,KAAK,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EACzE,YAAY,UAAU,CAAC,CAAC,CAAC,EACzB,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CACH,KACA,SAAS,CAAC,CAAC,CAQW,CAAC;AAQ1B,KAAK,YAAY,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CACvE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAClB,CAAC;AAEF,KAAK,SAAS,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAC5D,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"keyof.d.mts","sourceRoot":"","sources":["../../src/record/keyof.mts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,KAAK,GAAI,KAAK,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EACzE,YAAY,UAAU,CAAC,CAAC,CAAC,EACzB,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,KACD,SAAS,CAAC,CAAC,CAQW,CAAC;AAQ1B,KAAK,YAAY,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CACvE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAClB,CAAC;AAEF,KAAK,SAAS,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAC5D,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"keyof.mjs","sources":["../../src/record/keyof.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;MAKa,KAAK,GAAG,CACnB,UAAyB,EACzB,OAIC;AAED;AACA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KACjC,GAAG,CAAC,UAAU,CAAC,IAAI;AACjB,MAAG,QAAQ,CAAC,IAAI,EAAE;QACd,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAA,MAAA,EAAS,UAAU,CAAC,QAAQ,CAAA,CAAE;KAC9D;AACH,MAAG,aAAwC,CAC9C,CAAC;AAEJ,MAAM,OAAO,GAAG,CACd,UAAyB;AAEzB;AACA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAA2C;AASzE;AAIA;;;;"}
1
+ {"version":3,"file":"keyof.mjs","sources":["../../src/record/keyof.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;MAKa,KAAK,GAAG,CACnB,UAAyB,EACzB,OAEE;AAEF;AACA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KACjC,GAAG,CAAC,UAAU,CAAC,IAAI;AACjB,MAAG,QAAQ,CAAC,IAAI,EAAE;QACd,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAA,MAAA,EAAS,UAAU,CAAC,QAAQ,CAAA,CAAE;KAC9D;AACH,MAAG,aAAwC,CAC9C,CAAC;AAEJ,MAAM,OAAO,GAAG,CACd,UAAyB;AAEzB;AACA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAA2C;AASzE;AAIA;;;;"}
@@ -1,9 +1,9 @@
1
1
  import { type RecordType, type Type } from '../type.mjs';
2
2
  /** Creates a record type with keys omitted. */
3
- export declare const omit: <const R extends ReadonlyRecord<string, Type<unknown>>, const KeysToOmit extends readonly (keyof R & string)[]>(recordType: RecordType<R>, keysToOmit: KeysToOmit, options?: Partial<Readonly<{
3
+ export declare const omit: <const R extends ReadonlyRecord<string, Type<unknown>>, const KeysToOmit extends readonly (keyof R & string)[]>(recordType: RecordType<R>, keysToOmit: KeysToOmit, options?: PartialReadonly<{
4
4
  typeName: string;
5
5
  /** @default true */
6
6
  allowExcessProperties: boolean;
7
- }>>) => OmittedType<R, KeysToOmit>;
7
+ }>) => OmittedType<R, KeysToOmit>;
8
8
  export type OmittedType<R extends ReadonlyRecord<string, Type<unknown>>, KeysToOmit extends readonly (keyof R)[]> = RecordType<Omit<R, ArrayElement<KeysToOmit>>>;
9
9
  //# sourceMappingURL=omit.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"omit.d.mts","sourceRoot":"","sources":["../../src/record/omit.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAIzD,+CAA+C;AAC/C,eAAO,MAAM,IAAI,GACf,KAAK,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EACrD,KAAK,CAAC,UAAU,SAAS,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAEtD,YAAY,UAAU,CAAC,CAAC,CAAC,EACzB,YAAY,UAAU,EACtB,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IAEjB,oBAAoB;IACpB,qBAAqB,EAAE,OAAO,CAAC;CAChC,CAAC,CACH,KACA,WAAW,CAAC,CAAC,EAAE,UAAU,CAOxB,CAAC;AAEL,MAAM,MAAM,WAAW,CACrB,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAC/C,UAAU,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,IACrC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"omit.d.mts","sourceRoot":"","sources":["../../src/record/omit.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAIzD,+CAA+C;AAC/C,eAAO,MAAM,IAAI,GACf,KAAK,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EACrD,KAAK,CAAC,UAAU,SAAS,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAEtD,YAAY,UAAU,CAAC,CAAC,CAAC,EACzB,YAAY,UAAU,EACtB,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IAEjB,oBAAoB;IACpB,qBAAqB,EAAE,OAAO,CAAC;CAChC,CAAC,KACD,WAAW,CAAC,CAAC,EAAE,UAAU,CAOxB,CAAC;AAEL,MAAM,MAAM,WAAW,CACrB,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAC/C,UAAU,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,IACrC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"omit.mjs","sources":["../../src/record/omit.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAKA;AACO,MAAM,IAAI,GAAG,CAIlB,UAAyB,EACzB,UAAsB,EACtB,OAOC,KAED,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;IAC7C,QAAQ,EACN,OAAO,EAAE,QAAQ;QACjB,CAAA,KAAA,EAAQ,UAAU,CAAC,QAAQ,CAAA,EAAA,EAAK,aAAa,CAAC,UAAU,CAAC,CAAA,CAAA,CAAG;AAC9D,IAAA,qBAAqB,EACnB,OAAO,EAAE,qBAAqB,IAAI,UAAU,CAAC,qBAAqB;AACrE,CAAA;;;;"}
1
+ {"version":3,"file":"omit.mjs","sources":["../../src/record/omit.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAKA;AACO,MAAM,IAAI,GAAG,CAIlB,UAAyB,EACzB,UAAsB,EACtB,OAKE,KAEF,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;IAC7C,QAAQ,EACN,OAAO,EAAE,QAAQ;QACjB,CAAA,KAAA,EAAQ,UAAU,CAAC,QAAQ,CAAA,EAAA,EAAK,aAAa,CAAC,UAAU,CAAC,CAAA,CAAA,CAAG;AAC9D,IAAA,qBAAqB,EACnB,OAAO,EAAE,qBAAqB,IAAI,UAAU,CAAC,qBAAqB;AACrE,CAAA;;;;"}
@@ -4,12 +4,12 @@ import { type OptionalPropertyType } from './optional.mjs';
4
4
  * Creates a Partial type. If keysToBeOptional is set, only those keys are
5
5
  * optional, otherwise, all properties are optional.
6
6
  */
7
- export declare const partial: <const R extends ReadonlyRecord<string, Type<unknown>>, const KeysToBeOptional extends NonEmptyArray<keyof R & string>>(recordType: RecordType<R>, options?: Partial<Readonly<{
7
+ export declare const partial: <const R extends ReadonlyRecord<string, Type<unknown>>, const KeysToBeOptional extends NonEmptyArray<keyof R & string>>(recordType: RecordType<R>, options?: PartialReadonly<{
8
8
  keysToBeOptional: KeysToBeOptional;
9
9
  typeName: string;
10
10
  /** @default true */
11
11
  allowExcessProperties: boolean;
12
- }>>) => PartialType<R, KeysToBeOptional>;
12
+ }>) => PartialType<R, KeysToBeOptional>;
13
13
  type PartialTypeShape<R extends ReadonlyRecord<string, Type<unknown>>, KeysToBeOptional extends NonEmptyArray<keyof R & string> | undefined> = TypeEq<KeysToBeOptional, undefined> extends true ? FullyOptionalType<R> : PartiallyOptionalType<R, ArrayElement<KeysToBeOptional>>;
14
14
  type FullyOptionalType<R extends ReadonlyRecord<string, Type<unknown>>> = {
15
15
  readonly [P in keyof R]: OptionalPropertyType<R[P]>;
@@ -1 +1 @@
1
- {"version":3,"file":"partial.d.mts","sourceRoot":"","sources":["../../src/record/partial.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAY,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGrE;;;GAGG;AACH,eAAO,MAAM,OAAO,GAClB,KAAK,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EACrD,KAAK,CAAC,gBAAgB,SAAS,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAE9D,YAAY,UAAU,CAAC,CAAC,CAAC,EACzB,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IAEjB,oBAAoB;IACpB,qBAAqB,EAAE,OAAO,CAAC;CAChC,CAAC,CACH,KACA,WAAW,CAAC,CAAC,EAAE,gBAAgB,CA2BjC,CAAC;AAEF,KAAK,gBAAgB,CACnB,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAC/C,gBAAgB,SAAS,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,SAAS,IAEpE,MAAM,CAAC,gBAAgB,EAAE,SAAS,CAAC,SAAS,IAAI,GAC5C,iBAAiB,CAAC,CAAC,CAAC,GACpB,qBAAqB,CAAC,CAAC,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAE/D,KAAK,iBAAiB,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI;IACxE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACpD,CAAC;AAEF,KAAK,qBAAqB,CACxB,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAC/C,CAAC,SAAS,MAAM,CAAC,IACf;IACF,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACzE,CAAC;AAEF,MAAM,MAAM,WAAW,CACrB,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAC/C,gBAAgB,SAAS,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,SAAS,IAClE,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"partial.d.mts","sourceRoot":"","sources":["../../src/record/partial.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAY,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGrE;;;GAGG;AACH,eAAO,MAAM,OAAO,GAClB,KAAK,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EACrD,KAAK,CAAC,gBAAgB,SAAS,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAE9D,YAAY,UAAU,CAAC,CAAC,CAAC,EACzB,UAAU,eAAe,CAAC;IACxB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IAEjB,oBAAoB;IACpB,qBAAqB,EAAE,OAAO,CAAC;CAChC,CAAC,KACD,WAAW,CAAC,CAAC,EAAE,gBAAgB,CA2BjC,CAAC;AAEF,KAAK,gBAAgB,CACnB,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAC/C,gBAAgB,SAAS,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,SAAS,IAEpE,MAAM,CAAC,gBAAgB,EAAE,SAAS,CAAC,SAAS,IAAI,GAC5C,iBAAiB,CAAC,CAAC,CAAC,GACpB,qBAAqB,CAAC,CAAC,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAE/D,KAAK,iBAAiB,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI;IACxE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACpD,CAAC;AAEF,KAAK,qBAAqB,CACxB,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAC/C,CAAC,SAAS,MAAM,CAAC,IACf;IACF,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACzE,CAAC;AAEF,MAAM,MAAM,WAAW,CACrB,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAC/C,gBAAgB,SAAS,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,SAAS,IAClE,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"partial.mjs","sources":["../../src/record/partial.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAMA;;;AAGG;MACU,OAAO,GAAG,CAIrB,UAAyB,EACzB,OAQC,KACmC;AACpC,IAAA,MAAM,cAAc,GAClB,OAAO,EAAE,QAAQ;AACjB,SAAC,OAAO,EAAE,gBAAgB,KAAK;AAC7B,cAAE,CAAA,QAAA,EAAW,UAAU,CAAC,QAAQ,CAAA,CAAA;AAChC,cAAE,CAAA,iBAAA,EAAoB,UAAU,CAAC,QAAQ,CAAA,EAAA,EAAK,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA,CAAA,CAAG,CAAC;AAE7F,IAAA,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CACnD,OAAO,EAAE,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAC3D;AAED,IAAA,MAAM,YAAY;;IAEhB,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAClC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAU,CACpE,CAIF;IAEH,OAAO,MAAM,CAAC,YAAY,EAAE;AAC1B,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,qBAAqB,EACnB,OAAO,EAAE,qBAAqB,IAAI,UAAU,CAAC,qBAAqB;AACrE,KAAA,CAAC;AACJ;;;;"}
1
+ {"version":3,"file":"partial.mjs","sources":["../../src/record/partial.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAMA;;;AAGG;MACU,OAAO,GAAG,CAIrB,UAAyB,EACzB,OAME,KACkC;AACpC,IAAA,MAAM,cAAc,GAClB,OAAO,EAAE,QAAQ;AACjB,SAAC,OAAO,EAAE,gBAAgB,KAAK;AAC7B,cAAE,CAAA,QAAA,EAAW,UAAU,CAAC,QAAQ,CAAA,CAAA;AAChC,cAAE,CAAA,iBAAA,EAAoB,UAAU,CAAC,QAAQ,CAAA,EAAA,EAAK,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA,CAAA,CAAG,CAAC;AAE7F,IAAA,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CACnD,OAAO,EAAE,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAC3D;AAED,IAAA,MAAM,YAAY;;IAEhB,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAClC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAU,CACpE,CAIF;IAEH,OAAO,MAAM,CAAC,YAAY,EAAE;AAC1B,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,qBAAqB,EACnB,OAAO,EAAE,qBAAqB,IAAI,UAAU,CAAC,qBAAqB;AACrE,KAAA,CAAC;AACJ;;;;"}
@@ -1,9 +1,9 @@
1
1
  import { type RecordType, type Type } from '../type.mjs';
2
2
  /** Creates a record type with keys picked. */
3
- export declare const pick: <const R extends ReadonlyRecord<string, Type<unknown>>, const KeysToPick extends readonly (keyof R & string)[]>(recordType: RecordType<R>, keysToPick: KeysToPick, options?: Partial<Readonly<{
3
+ export declare const pick: <const R extends ReadonlyRecord<string, Type<unknown>>, const KeysToPick extends readonly (keyof R & string)[]>(recordType: RecordType<R>, keysToPick: KeysToPick, options?: PartialReadonly<{
4
4
  typeName: string;
5
5
  /** @default true */
6
6
  allowExcessProperties: boolean;
7
- }>>) => PickedType<R, KeysToPick>;
7
+ }>) => PickedType<R, KeysToPick>;
8
8
  export type PickedType<R extends ReadonlyRecord<string, Type<unknown>>, KeysToPick extends readonly (keyof R)[]> = RecordType<Pick<R, ArrayElement<KeysToPick>>>;
9
9
  //# sourceMappingURL=pick.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pick.d.mts","sourceRoot":"","sources":["../../src/record/pick.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAIzD,8CAA8C;AAC9C,eAAO,MAAM,IAAI,GACf,KAAK,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EACrD,KAAK,CAAC,UAAU,SAAS,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAEtD,YAAY,UAAU,CAAC,CAAC,CAAC,EACzB,YAAY,UAAU,EACtB,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IAEjB,oBAAoB;IACpB,qBAAqB,EAAE,OAAO,CAAC;CAChC,CAAC,CACH,KACA,UAAU,CAAC,CAAC,EAAE,UAAU,CAOvB,CAAC;AAEL,MAAM,MAAM,UAAU,CACpB,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAC/C,UAAU,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,IACrC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"pick.d.mts","sourceRoot":"","sources":["../../src/record/pick.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAIzD,8CAA8C;AAC9C,eAAO,MAAM,IAAI,GACf,KAAK,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EACrD,KAAK,CAAC,UAAU,SAAS,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAEtD,YAAY,UAAU,CAAC,CAAC,CAAC,EACzB,YAAY,UAAU,EACtB,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IAEjB,oBAAoB;IACpB,qBAAqB,EAAE,OAAO,CAAC;CAChC,CAAC,KACD,UAAU,CAAC,CAAC,EAAE,UAAU,CAOvB,CAAC;AAEL,MAAM,MAAM,UAAU,CACpB,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAC/C,UAAU,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,IACrC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pick.mjs","sources":["../../src/record/pick.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAKA;AACO,MAAM,IAAI,GAAG,CAIlB,UAAyB,EACzB,UAAsB,EACtB,OAOC,KAED,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;IAC7C,QAAQ,EACN,OAAO,EAAE,QAAQ;QACjB,CAAA,KAAA,EAAQ,UAAU,CAAC,QAAQ,CAAA,EAAA,EAAK,aAAa,CAAC,UAAU,CAAC,CAAA,CAAA,CAAG;AAC9D,IAAA,qBAAqB,EACnB,OAAO,EAAE,qBAAqB,IAAI,UAAU,CAAC,qBAAqB;AACrE,CAAA;;;;"}
1
+ {"version":3,"file":"pick.mjs","sources":["../../src/record/pick.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAKA;AACO,MAAM,IAAI,GAAG,CAIlB,UAAyB,EACzB,UAAsB,EACtB,OAKE,KAEF,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;IAC7C,QAAQ,EACN,OAAO,EAAE,QAAQ;QACjB,CAAA,KAAA,EAAQ,UAAU,CAAC,QAAQ,CAAA,EAAA,EAAK,aAAa,CAAC,UAAU,CAAC,CAAA,CAAA,CAAG;AAC9D,IAAA,qBAAqB,EACnB,OAAO,EAAE,qBAAqB,IAAI,UAAU,CAAC,qBAAqB;AACrE,CAAA;;;;"}
@@ -1,9 +1,9 @@
1
1
  import { type RecordType, type Type } from '../type.mjs';
2
- export declare const record: <const R extends ReadonlyRecord<string, Type<unknown>>>(shape: R, options?: Partial<Readonly<{
2
+ export declare const record: <const R extends ReadonlyRecord<string, Type<unknown>>>(shape: R, options?: PartialReadonly<{
3
3
  typeName: string;
4
4
  /** @default true */
5
5
  allowExcessProperties: boolean;
6
- }>>) => RecordType<R>;
6
+ }>) => RecordType<R>;
7
7
  /**
8
8
  * Creates a strict record type that does not allow excess properties.
9
9
  * This is an alias for `record(source, { allowExcessProperties: false })`.
@@ -25,7 +25,7 @@ export declare const record: <const R extends ReadonlyRecord<string, Type<unknow
25
25
  * User.is({ name: "John", age: 30, extra: "not allowed" }); // false
26
26
  * ```
27
27
  */
28
- export declare const strictRecord: <const R extends ReadonlyRecord<string, Type<unknown>>>(source: R, options?: Partial<Readonly<{
28
+ export declare const strictRecord: <const R extends ReadonlyRecord<string, Type<unknown>>>(source: R, options?: PartialReadonly<{
29
29
  typeName: string;
30
- }>>) => RecordType<R>;
30
+ }>) => RecordType<R>;
31
31
  //# sourceMappingURL=record.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"record.d.mts","sourceRoot":"","sources":["../../src/record/record.mts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,UAAU,EAEf,KAAK,IAAI,EACV,MAAM,aAAa,CAAC;AAWrB,eAAO,MAAM,MAAM,GAAI,KAAK,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAC1E,OAAO,CAAC,EACR,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IAEjB,oBAAoB;IACpB,qBAAqB,EAAE,OAAO,CAAC;CAChC,CAAC,CACH,KACA,UAAU,CAAC,CAAC,CAyGd,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,YAAY,GACvB,KAAK,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAErD,QAAQ,CAAC,EACT,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CACH,KACA,UAAU,CAAC,CAAC,CAC+C,CAAC"}
1
+ {"version":3,"file":"record.d.mts","sourceRoot":"","sources":["../../src/record/record.mts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,UAAU,EAEf,KAAK,IAAI,EACV,MAAM,aAAa,CAAC;AAWrB,eAAO,MAAM,MAAM,GAAI,KAAK,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAC1E,OAAO,CAAC,EACR,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IAEjB,oBAAoB;IACpB,qBAAqB,EAAE,OAAO,CAAC;CAChC,CAAC,KACD,UAAU,CAAC,CAAC,CAyGd,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,YAAY,GACvB,KAAK,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAErD,QAAQ,CAAC,EACT,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,KACD,UAAU,CAAC,CAAC,CAC+C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"record.mjs","sources":["../../src/record/record.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record.mjs","sources":["../../src/record/record.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { type RecordType, type Type } from '../type.mjs';
2
- export declare const valueof: <const R extends ReadonlyRecord<string, Type<unknown>>>(recordType: RecordType<R>, options?: Partial<Readonly<{
2
+ export declare const valueof: <const R extends ReadonlyRecord<string, Type<unknown>>>(recordType: RecordType<R>, options?: PartialReadonly<{
3
3
  typeName: string;
4
- }>>) => ValueOfType<R>;
4
+ }>) => ValueOfType<R>;
5
5
  type ValueofTypeSub<R extends ReadonlyRecord<string, Type<unknown>>> = Type<R[keyof R]['defaultValue']>;
6
6
  type ValueOfType<R extends ReadonlyRecord<string, Type<unknown>>> = IsNever<keyof R> extends true ? Type<undefined> : ValueofTypeSub<R>;
7
7
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"valueof.d.mts","sourceRoot":"","sources":["../../src/record/valueof.mts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,OAAO,GAAI,KAAK,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAC3E,YAAY,UAAU,CAAC,CAAC,CAAC,EACzB,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CACH,KACA,WAAW,CAAC,CAAC,CAiBf,CAAC;AAEF,KAAK,cAAc,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CACzE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAC3B,CAAC;AAEF,KAAK,WAAW,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAC9D,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"valueof.d.mts","sourceRoot":"","sources":["../../src/record/valueof.mts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,OAAO,GAAI,KAAK,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAC3E,YAAY,UAAU,CAAC,CAAC,CAAC,EACzB,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,KACD,WAAW,CAAC,CAAC,CAiBf,CAAC;AAEF,KAAK,cAAc,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CACzE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAC3B,CAAC;AAEF,KAAK,WAAW,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAC9D,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"valueof.mjs","sources":["../../src/record/valueof.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;MAKa,OAAO,GAAG,CACrB,UAAyB,EACzB,OAIC,KACiB;IAClB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;IAE7C,IAAI,GAAG,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;;QAEtC,OAAO,KAAK,CAAC,KAAK,EAAE;YAClB,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAA,QAAA,EAAW,UAAU,CAAC,QAAQ,CAAA,CAAA,CAAG;AACjE,SAAA,CAA+C;;AAGlD,IAAA,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;;AAEzB,QAAA,OAAO,KAAK,CAAC,CAAC,CAA+C;;;AAI/D,IAAA,OAAO,aAAsC;AAC/C;AASA;;;;"}
1
+ {"version":3,"file":"valueof.mjs","sources":["../../src/record/valueof.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;MAKa,OAAO,GAAG,CACrB,UAAyB,EACzB,OAEE,KACgB;IAClB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;IAE7C,IAAI,GAAG,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;;QAEtC,OAAO,KAAK,CAAC,KAAK,EAAE;YAClB,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAA,QAAA,EAAW,UAAU,CAAC,QAAQ,CAAA,CAAA,CAAG;AACjE,SAAA,CAA+C;;AAGlD,IAAA,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;;AAEzB,QAAA,OAAO,KAAK,CAAC,CAAC,CAA+C;;;AAI/D,IAAA,OAAO,aAAsC;AAC/C;AASA;;;;"}
@@ -3,6 +3,6 @@ export { createCastFn } from './create-cast-fn.mjs';
3
3
  export { createIsFn } from './create-is-fn.mjs';
4
4
  export { createPrimitiveType } from './create-primitive-type.mjs';
5
5
  export { createType } from './create-type.mjs';
6
- export { toUnionString } from './to-union-string.mjs';
6
+ export { toIntersectionString, toUnionString } from './to-union-string.mjs';
7
7
  export { createPrimitiveValidationError, prependIndexToValidationErrors, prependPathToValidationErrors, validationErrorToMessage, validationErrorsToMessages } from './validation-error.mjs';
8
8
  //# sourceMappingURL=index.mjs.map
@@ -1,2 +1,3 @@
1
1
  export declare const toUnionString: (members: readonly string[]) => string;
2
+ export declare const toIntersectionString: (members: readonly string[]) => string;
2
3
  //# sourceMappingURL=to-union-string.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"to-union-string.d.mts","sourceRoot":"","sources":["../../src/utils/to-union-string.mts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,GAAI,SAAS,SAAS,MAAM,EAAE,KAAG,MACjB,CAAC"}
1
+ {"version":3,"file":"to-union-string.d.mts","sourceRoot":"","sources":["../../src/utils/to-union-string.mts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,GAAI,SAAS,SAAS,MAAM,EAAE,KAAG,MACjB,CAAC;AAE3C,eAAO,MAAM,oBAAoB,GAAI,SAAS,SAAS,MAAM,EAAE,KAAG,MACxB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  const toUnionString = (members) => members.map((k) => `"${k}"`).join(' | ');
2
+ const toIntersectionString = (members) => members.map((k) => `"${k}"`).join(' & ');
2
3
 
3
- export { toUnionString };
4
+ export { toIntersectionString, toUnionString };
4
5
  //# sourceMappingURL=to-union-string.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"to-union-string.mjs","sources":["../../src/utils/to-union-string.mts"],"sourcesContent":[null],"names":[],"mappings":"AAAO,MAAM,aAAa,GAAG,CAAC,OAA0B,KACtD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,IAAI,CAAC,KAAK;;;;"}
1
+ {"version":3,"file":"to-union-string.mjs","sources":["../../src/utils/to-union-string.mts"],"sourcesContent":[null],"names":[],"mappings":"AAAO,MAAM,aAAa,GAAG,CAAC,OAA0B,KACtD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,IAAI,CAAC,KAAK;AAElC,MAAM,oBAAoB,GAAG,CAAC,OAA0B,KAC7D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,IAAI,CAAC,KAAK;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-fortress",
3
- "version": "4.1.2",
3
+ "version": "4.2.0",
4
4
  "private": false,
5
5
  "keywords": [
6
6
  "typescript"
@@ -13,29 +13,26 @@ import {
13
13
  export const arrayOfLength = <A, N extends SmallUint>(
14
14
  size: N,
15
15
  elementType: Type<A>,
16
- options?: Readonly<{
17
- typeName?: string;
18
- defaultValue?: ArrayOfLength<N, A>;
16
+ options?: PartialReadonly<{
17
+ typeName: string;
18
+ defaultValue: ArrayOfLength<N, A>;
19
19
  }>,
20
20
  ): Type<ArrayOfLength<N, A>> => {
21
21
  type T = ArrayOfLength<N, A>;
22
22
 
23
23
  const {
24
- typeName,
24
+ typeName = `ArrayOfLength<${size}, ${elementType.typeName}>`,
25
25
  // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
26
26
  defaultValue = Arr.create(size, elementType.defaultValue) as T,
27
27
  } = options ?? {};
28
28
 
29
- const typeNameFilled: string =
30
- typeName ?? `[${Arr.create(size, elementType.typeName).join(', ')}]`;
31
-
32
29
  const validate: Type<T>['validate'] = (a) => {
33
30
  if (!Arr.isArray(a)) {
34
31
  return Result.err([
35
32
  createPrimitiveValidationError({
36
33
  actualValue: a,
37
34
  expectedType: 'array',
38
- typeName: typeNameFilled,
35
+ typeName,
39
36
  }),
40
37
  ]);
41
38
  }
@@ -45,9 +42,9 @@ export const arrayOfLength = <A, N extends SmallUint>(
45
42
  {
46
43
  path: [],
47
44
  actualValue: a,
48
- expectedType: typeNameFilled,
45
+ expectedType: typeName,
49
46
  message: `Expected array of length ${size}, got length ${a.length}`,
50
- typeName: typeNameFilled,
47
+ typeName,
51
48
  } satisfies ValidationErrorWithMessage,
52
49
  ]);
53
50
  }
@@ -77,7 +74,7 @@ export const arrayOfLength = <A, N extends SmallUint>(
77
74
  : defaultValue;
78
75
 
79
76
  return {
80
- typeName: typeNameFilled,
77
+ typeName,
81
78
  defaultValue,
82
79
  fill,
83
80
  validate,
@@ -11,18 +11,15 @@ import {
11
11
 
12
12
  export const array = <A,>(
13
13
  elementType: Type<A>,
14
- options?: Partial<
15
- Readonly<{
16
- typeName: string;
17
- defaultValue: readonly A[];
18
- }>
19
- >,
14
+ options?: PartialReadonly<{
15
+ typeName: string;
16
+ defaultValue: readonly A[];
17
+ }>,
20
18
  ): Type<readonly A[]> => {
21
19
  type T = readonly A[];
22
20
 
23
- const { typeName, defaultValue = [] } = options ?? {};
24
-
25
- const typeNameFilled: string = typeName ?? `(${elementType.typeName})[]`;
21
+ const { typeName = `${elementType.typeName}[]`, defaultValue = [] } =
22
+ options ?? {};
26
23
 
27
24
  const validate: Type<T>['validate'] = (a) => {
28
25
  if (!Arr.isArray(a)) {
@@ -30,7 +27,7 @@ export const array = <A,>(
30
27
  createPrimitiveValidationError({
31
28
  actualValue: a,
32
29
  expectedType: 'array',
33
- typeName: typeNameFilled,
30
+ typeName,
34
31
  }),
35
32
  ]);
36
33
  }
@@ -56,7 +53,7 @@ export const array = <A,>(
56
53
  Arr.isArray(a) ? a.map((e) => elementType.fill(e)) : defaultValue;
57
54
 
58
55
  return {
59
- typeName: typeNameFilled,
56
+ typeName,
60
57
  defaultValue,
61
58
  fill,
62
59
  validate,