@tstdl/base 0.78.0-beta3 → 0.78.0-beta6

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 (131) hide show
  1. package/api/server/gateway.js +3 -0
  2. package/api/server/gateway.js.map +1 -1
  3. package/api/types.d.ts +9 -7
  4. package/api/types.js.map +1 -1
  5. package/enumerable/async-enumerable.d.ts +2 -1
  6. package/enumerable/async-enumerable.js +3 -0
  7. package/enumerable/async-enumerable.js.map +1 -1
  8. package/enumerable/enumerable-methods.d.ts +1 -0
  9. package/enumerable/enumerable.d.ts +1 -0
  10. package/enumerable/enumerable.js +12 -18
  11. package/enumerable/enumerable.js.map +1 -1
  12. package/package.json +2 -3
  13. package/schema/coercers/default-value.coercer.d.ts +1 -1
  14. package/schema/coercers/default-value.coercer.js +1 -1
  15. package/schema/coercers/default-value.coercer.js.map +1 -1
  16. package/schema/coercers/uint8-array.coercer.js +3 -2
  17. package/schema/coercers/uint8-array.coercer.js.map +1 -1
  18. package/schema/constraints/integer.js +1 -1
  19. package/schema/constraints/integer.js.map +1 -1
  20. package/schema/constraints/maximum-date.js +1 -1
  21. package/schema/constraints/maximum-date.js.map +1 -1
  22. package/schema/constraints/maximum.js +1 -1
  23. package/schema/constraints/maximum.js.map +1 -1
  24. package/schema/constraints/minimum-date.js +1 -1
  25. package/schema/constraints/minimum-date.js.map +1 -1
  26. package/schema/constraints/minimum.js +1 -1
  27. package/schema/constraints/minimum.js.map +1 -1
  28. package/schema/constraints/pattern.js +1 -1
  29. package/schema/constraints/pattern.js.map +1 -1
  30. package/schema/decorators/array.d.ts +2 -2
  31. package/schema/decorators/array.js +1 -1
  32. package/schema/decorators/array.js.map +1 -1
  33. package/schema/decorators/defaulted.d.ts +2 -2
  34. package/schema/decorators/defaulted.js +1 -1
  35. package/schema/decorators/defaulted.js.map +1 -1
  36. package/schema/decorators/property.d.ts +1 -1
  37. package/schema/decorators/property.js +3 -1
  38. package/schema/decorators/property.js.map +1 -1
  39. package/schema/decorators/types.d.ts +3 -3
  40. package/schema/decorators/utils.d.ts +3 -2
  41. package/schema/decorators/utils.js +4 -8
  42. package/schema/decorators/utils.js.map +1 -1
  43. package/schema/schema.d.ts +10 -8
  44. package/schema/schema.js +85 -90
  45. package/schema/schema.js.map +1 -1
  46. package/schema/schemas/any.d.ts +2 -2
  47. package/schema/schemas/any.js +2 -2
  48. package/schema/schemas/any.js.map +1 -1
  49. package/schema/schemas/array.d.ts +2 -1
  50. package/schema/schemas/array.js +1 -2
  51. package/schema/schemas/array.js.map +1 -1
  52. package/schema/schemas/boolean.js +2 -3
  53. package/schema/schemas/boolean.js.map +1 -1
  54. package/schema/schemas/constraint.js +1 -2
  55. package/schema/schemas/constraint.js.map +1 -1
  56. package/schema/schemas/date.js +2 -3
  57. package/schema/schemas/date.js.map +1 -1
  58. package/schema/schemas/defaulted.d.ts +3 -2
  59. package/schema/schemas/defaulted.js +1 -2
  60. package/schema/schemas/defaulted.js.map +1 -1
  61. package/schema/schemas/enumeration.js +2 -3
  62. package/schema/schemas/enumeration.js.map +1 -1
  63. package/schema/schemas/index.d.ts +1 -0
  64. package/schema/schemas/index.js +1 -0
  65. package/schema/schemas/index.js.map +1 -1
  66. package/schema/schemas/instance.d.ts +2 -2
  67. package/schema/schemas/instance.js +1 -1
  68. package/schema/schemas/instance.js.map +1 -1
  69. package/schema/schemas/literal.js +2 -3
  70. package/schema/schemas/literal.js.map +1 -1
  71. package/schema/schemas/nullable.d.ts +3 -2
  72. package/schema/schemas/nullable.js +1 -1
  73. package/schema/schemas/nullable.js.map +1 -1
  74. package/schema/schemas/number.d.ts +1 -1
  75. package/schema/schemas/number.js +2 -3
  76. package/schema/schemas/number.js.map +1 -1
  77. package/schema/schemas/object.d.ts +2 -3
  78. package/schema/schemas/object.js.map +1 -1
  79. package/schema/schemas/optional.js +1 -1
  80. package/schema/schemas/optional.js.map +1 -1
  81. package/schema/schemas/readable-stream.d.ts +2 -2
  82. package/schema/schemas/readable-stream.js +3 -4
  83. package/schema/schemas/readable-stream.js.map +1 -1
  84. package/schema/schemas/record.d.ts +3 -2
  85. package/schema/schemas/record.js.map +1 -1
  86. package/schema/schemas/regexp.js +3 -3
  87. package/schema/schemas/regexp.js.map +1 -1
  88. package/schema/schemas/string.js +2 -3
  89. package/schema/schemas/string.js.map +1 -1
  90. package/schema/schemas/transform.d.ts +3 -2
  91. package/schema/schemas/transform.js +1 -2
  92. package/schema/schemas/transform.js.map +1 -1
  93. package/schema/schemas/uint8-array.d.ts +2 -3
  94. package/schema/schemas/uint8-array.js +4 -4
  95. package/schema/schemas/uint8-array.js.map +1 -1
  96. package/schema/schemas/union.d.ts +9 -8
  97. package/schema/schemas/union.js +2 -4
  98. package/schema/schemas/union.js.map +1 -1
  99. package/schema/schemas/unknown.d.ts +2 -2
  100. package/schema/schemas/unknown.js +2 -2
  101. package/schema/schemas/unknown.js.map +1 -1
  102. package/schema/transformers/generic.d.ts +4 -4
  103. package/schema/transformers/generic.js.map +1 -1
  104. package/schema/transformers/lowercase.js +1 -1
  105. package/schema/transformers/lowercase.js.map +1 -1
  106. package/schema/transformers/trim.js +1 -1
  107. package/schema/transformers/trim.js.map +1 -1
  108. package/schema/transformers/uppercase.js +1 -1
  109. package/schema/transformers/uppercase.js.map +1 -1
  110. package/schema/types.d.ts +42 -30
  111. package/schema/types.js +35 -33
  112. package/schema/types.js.map +1 -1
  113. package/schema/utils/schema.d.ts +10 -5
  114. package/schema/utils/schema.js +44 -26
  115. package/schema/utils/schema.js.map +1 -1
  116. package/schema/utils/value-type.d.ts +3 -1
  117. package/schema/utils/value-type.js +23 -3
  118. package/schema/utils/value-type.js.map +1 -1
  119. package/types.d.ts +2 -1
  120. package/utils/async-iterable-helpers/includes.d.ts +2 -0
  121. package/utils/async-iterable-helpers/includes.js +13 -0
  122. package/utils/async-iterable-helpers/includes.js.map +1 -0
  123. package/utils/async-iterable-helpers/index.d.ts +1 -0
  124. package/utils/async-iterable-helpers/index.js +1 -0
  125. package/utils/async-iterable-helpers/index.js.map +1 -1
  126. package/utils/iterable-helpers/includes.d.ts +1 -0
  127. package/utils/iterable-helpers/includes.js +9 -0
  128. package/utils/iterable-helpers/includes.js.map +1 -0
  129. package/utils/iterable-helpers/index.d.ts +1 -0
  130. package/utils/iterable-helpers/index.js +1 -0
  131. package/utils/iterable-helpers/index.js.map +1 -1
@@ -7,14 +7,13 @@ const decorators_1 = require("../decorators");
7
7
  const types_1 = require("../types");
8
8
  const utils_1 = require("../utils");
9
9
  function literal(value) {
10
- return (0, types_1.valueSchema)({
11
- type: (0, utils_1.getValueType)(value),
10
+ return (0, types_1.valueSchema)((0, types_1.typeSchema)((0, utils_1.getValueType)(value)), {
12
11
  valueConstraints: new constraints_1.LiteralConstraint(value)
13
12
  });
14
13
  }
15
14
  exports.literal = literal;
16
15
  function Literal(value) {
17
- return (0, decorators_1.createSchemaPropertyDecoratorFromValueType)(literal(value));
16
+ return (0, decorators_1.createSchemaPropertyDecoratorFromSchema)(literal(value));
18
17
  }
19
18
  exports.Literal = Literal;
20
19
  //# sourceMappingURL=literal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"literal.js","sourceRoot":"","sources":["../../../source/schema/schemas/literal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,gDAAmD;AACnD,8CAA2E;AAE3E,oCAAuC;AACvC,oCAAwC;AAExC,SAAgB,OAAO,CAAI,KAAQ;IACjC,OAAO,IAAA,mBAAW,EAAM;QACtB,IAAI,EAAE,IAAA,oBAAY,EAAC,KAAK,CAAC;QACzB,gBAAgB,EAAE,IAAI,+BAAiB,CAAC,KAAK,CAAC;KAC/C,CAAC,CAAC;AACL,CAAC;AALD,0BAKC;AAED,SAAgB,OAAO,CAAC,KAAU;IAChC,OAAO,IAAA,uDAA0C,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,CAAC;AAFD,0BAEC"}
1
+ {"version":3,"file":"literal.js","sourceRoot":"","sources":["../../../source/schema/schemas/literal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,gDAAmD;AACnD,8CAAwE;AAExE,oCAAmD;AACnD,oCAAwC;AAExC,SAAgB,OAAO,CAAI,KAAQ;IACjC,OAAO,IAAA,mBAAW,EAAM,IAAA,kBAAU,EAAC,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC,EAAE;QACvD,gBAAgB,EAAE,IAAI,+BAAiB,CAAC,KAAK,CAAC;KAC/C,CAAC,CAAC;AACL,CAAC;AAJD,0BAIC;AAED,SAAgB,OAAO,CAAC,KAAU;IAChC,OAAO,IAAA,oDAAuC,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACjE,CAAC;AAFD,0BAEC"}
@@ -1,2 +1,3 @@
1
- import type { ValueSchema, ValueType } from '../types';
2
- export declare function nullable<T, O>(schema: ValueType<T, O>): ValueSchema<T, O | null>;
1
+ import type { Schema } from '../schema';
2
+ import type { ValueSchema } from '../types';
3
+ export declare function nullable<T, O>(schema: Schema<T, O>): ValueSchema<T | null, O | null>;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.nullable = void 0;
4
4
  const types_1 = require("../types");
5
5
  function nullable(schema) {
6
- return (0, types_1.valueSchema)({ type: schema, nullable: true });
6
+ return (0, types_1.valueSchema)(schema, { nullable: true });
7
7
  }
8
8
  exports.nullable = nullable;
9
9
  //# sourceMappingURL=nullable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nullable.js","sourceRoot":"","sources":["../../../source/schema/schemas/nullable.ts"],"names":[],"mappings":";;;AACA,oCAAuC;AAEvC,SAAgB,QAAQ,CAAO,MAAuB;IACpD,OAAO,IAAA,mBAAW,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACvD,CAAC;AAFD,4BAEC"}
1
+ {"version":3,"file":"nullable.js","sourceRoot":"","sources":["../../../source/schema/schemas/nullable.ts"],"names":[],"mappings":";;;AAEA,oCAAuC;AAEvC,SAAgB,QAAQ,CAAO,MAAoB;IACjD,OAAO,IAAA,mBAAW,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAoC,CAAC;AACpF,CAAC;AAFD,4BAEC"}
@@ -1,5 +1,5 @@
1
1
  import type { Decorator } from "../../reflection";
2
- import type { Coercible, ValueSchema } from '../types';
2
+ import { Coercible, ValueSchema } from '../types';
3
3
  export declare type NumberOptions = Coercible & {
4
4
  minimum?: number;
5
5
  maximum?: number;
@@ -19,8 +19,7 @@ function number(options = {}) {
19
19
  if (options.integer == true) {
20
20
  constraints.push(integer_1.integerConstraint);
21
21
  }
22
- return (0, types_1.valueSchema)({
23
- type: globalThis.Number,
22
+ return (0, types_1.valueSchema)((0, types_1.typeSchema)(globalThis.Number), {
24
23
  array: false,
25
24
  optional: false,
26
25
  nullable: false,
@@ -30,7 +29,7 @@ function number(options = {}) {
30
29
  }
31
30
  exports.number = number;
32
31
  function Number(options) {
33
- return (0, decorators_1.createSchemaPropertyDecoratorFromValueType)(number(options));
32
+ return (0, decorators_1.createSchemaPropertyDecoratorFromSchema)(number(options));
34
33
  }
35
34
  exports.Number = Number;
36
35
  //# sourceMappingURL=number.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"number.js","sourceRoot":"","sources":["../../../source/schema/schemas/number.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,yDAAgD;AAChD,oDAA2D;AAC3D,oDAA2D;AAC3D,oDAA2D;AAC3D,8CAA2E;AAE3E,oCAAuC;AAQvC,SAAgB,MAAM,CAAC,UAAyB,EAAE;IAChD,MAAM,WAAW,GAA4B,EAAE,CAAC;IAEhD,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,2BAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;KAC1D;IAED,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,2BAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;KAC1D;IAED,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,EAAE;QAC3B,WAAW,CAAC,IAAI,CAAC,2BAAiB,CAAC,CAAC;KACrC;IAED,OAAO,IAAA,mBAAW,EAAS;QACzB,IAAI,EAAE,UAAU,CAAC,MAAM;QACvB,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,gBAAgB,EAAE,WAAW;KAC9B,CAAC,CAAC;AACL,CAAC;AAvBD,wBAuBC;AAED,SAAgB,MAAM,CAAC,OAAuB;IAC5C,OAAO,IAAA,uDAA0C,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACrE,CAAC;AAFD,wBAEC"}
1
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../../source/schema/schemas/number.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,yDAAgD;AAChD,oDAA2D;AAC3D,oDAA2D;AAC3D,oDAA2D;AAC3D,8CAAwE;AACxE,oCAAkG;AAQlG,SAAgB,MAAM,CAAC,UAAyB,EAAE;IAChD,MAAM,WAAW,GAA4B,EAAE,CAAC;IAEhD,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,2BAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;KAC1D;IAED,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,2BAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;KAC1D;IAED,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,EAAE;QAC3B,WAAW,CAAC,IAAI,CAAC,2BAAiB,CAAC,CAAC;KACrC;IAED,OAAO,IAAA,mBAAW,EAAC,IAAA,kBAAU,EAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAChD,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,gBAAgB,EAAE,WAAW;KAC9B,CAAC,CAAC;AACL,CAAC;AAtBD,wBAsBC;AAED,SAAgB,MAAM,CAAC,OAAuB;IAC5C,OAAO,IAAA,oDAAuC,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAClE,CAAC;AAFD,wBAEC"}
@@ -1,6 +1,5 @@
1
- import type { Record, TypedOmit } from "../../types";
2
- import type { PartialOnUndefinedDeep } from 'type-fest';
1
+ import type { Record, SimplifiedOptionalize, TypedOmit } from "../../types";
3
2
  import type { ObjectSchema, ObjectSchemaProperties } from '../types';
4
3
  export declare type ObjectOptions<T extends Record = Record> = TypedOmit<ObjectSchema<T>, 'properties'>;
5
4
  export declare function explicitObject<T extends Record>(properties: ObjectSchemaProperties<T>, options?: ObjectOptions<T>): ObjectSchema<T>;
6
- export declare function object<T extends Record, O = T>(properties: ObjectSchemaProperties<T>, options?: ObjectOptions<T>): ObjectSchema<T, PartialOnUndefinedDeep<O>>;
5
+ export declare function object<T extends Record>(properties: ObjectSchemaProperties<T>, options?: ObjectOptions<T>): ObjectSchema<SimplifiedOptionalize<T>, SimplifiedOptionalize<T>>;
@@ -1 +1 @@
1
- {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../source/schema/schemas/object.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAKzD,oCAAwC;AAIxC,SAAgB,cAAc,CAAmB,UAAqC,EAAE,OAA0B;IAChH,OAAO,MAAM,CAAC,UAAU,EAAE,OAAO,CAA2B,CAAC;AAC/D,CAAC;AAFD,wCAEC;AAED,SAAgB,MAAM,CAA0B,UAAqC,EAAE,OAA0B;IAC/G,OAAO,IAAA,oBAAY,EAAC;QAClB,UAAU;QACV,GAAG,OAAO;KACX,CAA0D,CAAC;AAC9D,CAAC;AALD,wBAKC"}
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../source/schema/schemas/object.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAIzD,oCAAwC;AAIxC,SAAgB,cAAc,CAAmB,UAAqC,EAAE,OAA0B;IAChH,OAAO,MAAM,CAAC,UAAU,EAAE,OAAO,CAA2B,CAAC;AAC/D,CAAC;AAFD,wCAEC;AAED,SAAgB,MAAM,CAAmB,UAAqC,EAAE,OAA0B;IACxG,OAAO,IAAA,oBAAY,EAAC;QAClB,UAAU;QACV,GAAG,OAAO;KACX,CAAgF,CAAC;AACpF,CAAC;AALD,wBAKC"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.optional = void 0;
4
4
  const types_1 = require("../types");
5
5
  function optional(schema) {
6
- return (0, types_1.valueSchema)({ type: schema, optional: true });
6
+ return (0, types_1.valueSchema)(schema, { optional: true });
7
7
  }
8
8
  exports.optional = optional;
9
9
  //# sourceMappingURL=optional.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"optional.js","sourceRoot":"","sources":["../../../source/schema/schemas/optional.ts"],"names":[],"mappings":";;;AAEA,oCAAuC;AAEvC,SAAgB,QAAQ,CAAO,MAAoB;IACjD,OAAO,IAAA,mBAAW,EAAC,EAAE,IAAI,EAAE,MAAmD,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACpG,CAAC;AAFD,4BAEC"}
1
+ {"version":3,"file":"optional.js","sourceRoot":"","sources":["../../../source/schema/schemas/optional.ts"],"names":[],"mappings":";;;AAEA,oCAAuC;AAEvC,SAAgB,QAAQ,CAAO,MAAoB;IACjD,OAAO,IAAA,mBAAW,EAAC,MAA8C,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACzF,CAAC;AAFD,4BAEC"}
@@ -1,4 +1,4 @@
1
1
  import type { Decorator } from "../../reflection";
2
- import type { ValueSchema } from '../types';
3
- export declare function readableStream(): ValueSchema<globalThis.ReadableStream>;
2
+ import type { TypeSchema } from '../types';
3
+ export declare function readableStream(): TypeSchema<globalThis.ReadableStream>;
4
4
  export declare function ReadableStream(): Decorator<'property' | 'accessor'>;
@@ -1,16 +1,15 @@
1
1
  "use strict";
2
+ /* eslint-disable @typescript-eslint/naming-convention */
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.ReadableStream = exports.readableStream = void 0;
4
5
  const decorators_1 = require("../decorators");
5
6
  const types_1 = require("../types");
6
7
  function readableStream() {
7
- return (0, types_1.valueSchema)({
8
- type: globalThis.ReadableStream
9
- });
8
+ return (0, types_1.typeSchema)(globalThis.ReadableStream);
10
9
  }
11
10
  exports.readableStream = readableStream;
12
11
  function ReadableStream() {
13
- return (0, decorators_1.createSchemaPropertyDecoratorFromValueType)(readableStream());
12
+ return (0, decorators_1.createSchemaPropertyDecoratorFromSchema)(readableStream());
14
13
  }
15
14
  exports.ReadableStream = ReadableStream;
16
15
  //# sourceMappingURL=readable-stream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"readable-stream.js","sourceRoot":"","sources":["../../../source/schema/schemas/readable-stream.ts"],"names":[],"mappings":";;;AACA,8CAA2E;AAE3E,oCAAuC;AAEvC,SAAgB,cAAc;IAC5B,OAAO,IAAA,mBAAW,EAAC;QACjB,IAAI,EAAE,UAAU,CAAC,cAAc;KAChC,CAAC,CAAC;AACL,CAAC;AAJD,wCAIC;AAED,SAAgB,cAAc;IAC5B,OAAO,IAAA,uDAA0C,EAAC,cAAc,EAAE,CAAC,CAAC;AACtE,CAAC;AAFD,wCAEC"}
1
+ {"version":3,"file":"readable-stream.js","sourceRoot":"","sources":["../../../source/schema/schemas/readable-stream.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,8CAAwE;AAExE,oCAAsC;AAEtC,SAAgB,cAAc;IAC5B,OAAO,IAAA,kBAAU,EAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAC/C,CAAC;AAFD,wCAEC;AAED,SAAgB,cAAc;IAC5B,OAAO,IAAA,oDAAuC,EAAC,cAAc,EAAE,CAAC,CAAC;AACnE,CAAC;AAFD,wCAEC"}
@@ -1,4 +1,5 @@
1
1
  import type { OneOrMany, Record, TypedOmit } from "../../types";
2
- import type { ObjectSchema, ValueType } from '../types';
2
+ import type { Schema } from '../schema';
3
+ import type { ObjectSchema } from '../types';
3
4
  export declare type RecordOptions<T extends Record = Record> = TypedOmit<ObjectSchema<T>, 'properties' | 'allowUnknownProperties' | 'mask'>;
4
- export declare function record<T, O>(valueType: OneOrMany<ValueType<T, O>>, options?: RecordOptions): ObjectSchema<Record<any, O>>;
5
+ export declare function record<T, O>(valueType: OneOrMany<Schema<T, O>>, options?: RecordOptions): ObjectSchema<Record<any, O>>;
@@ -1 +1 @@
1
- {"version":3,"file":"record.js","sourceRoot":"","sources":["../../../source/schema/schemas/record.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAIzD,oCAAwC;AAIxC,SAAgB,MAAM,CAAO,SAAqC,EAAE,OAAuB;IACzF,OAAO,IAAA,oBAAY,EAAC;QAClB,UAAU,EAAE,EAAE;QACd,sBAAsB,EAAE,SAAS;QACjC,GAAG,OAAO;KACX,CAAiB,CAAC;AACrB,CAAC;AAND,wBAMC"}
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../../../source/schema/schemas/record.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAKzD,oCAAwC;AAIxC,SAAgB,MAAM,CAAO,SAAkC,EAAE,OAAuB;IACtF,OAAO,IAAA,oBAAY,EAAC;QAClB,UAAU,EAAE,EAAE;QACd,sBAAsB,EAAE,SAAS;QACjC,GAAG,OAAO;KACX,CAAiB,CAAC;AACrB,CAAC;AAND,wBAMC"}
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
+ /* eslint-disable @typescript-eslint/naming-convention */
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.RegExp = exports.regexp = void 0;
4
5
  const decorators_1 = require("../decorators");
5
6
  const types_1 = require("../types");
6
7
  function regexp(options = {}) {
7
- return (0, types_1.valueSchema)({
8
- type: globalThis.RegExp,
8
+ return (0, types_1.valueSchema)((0, types_1.typeSchema)(globalThis.RegExp), {
9
9
  coerce: options.coerce
10
10
  });
11
11
  }
12
12
  exports.regexp = regexp;
13
13
  function RegExp(options) {
14
- return (0, decorators_1.createSchemaPropertyDecoratorFromValueType)(regexp(options));
14
+ return (0, decorators_1.createSchemaPropertyDecoratorFromSchema)(regexp(options));
15
15
  }
16
16
  exports.RegExp = RegExp;
17
17
  //# sourceMappingURL=regexp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"regexp.js","sourceRoot":"","sources":["../../../source/schema/schemas/regexp.ts"],"names":[],"mappings":";;;AACA,8CAA2E;AAG3E,oCAAuC;AAIvC,SAAgB,MAAM,CAAC,UAA+B,EAAE;IACtD,OAAO,IAAA,mBAAW,EAAC;QACjB,IAAI,EAAE,UAAU,CAAC,MAAM;QACvB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;AACL,CAAC;AALD,wBAKC;AAED,SAAgB,MAAM,CAAC,OAA6B;IAClD,OAAO,IAAA,uDAA0C,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACrE,CAAC;AAFD,wBAEC"}
1
+ {"version":3,"file":"regexp.js","sourceRoot":"","sources":["../../../source/schema/schemas/regexp.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,8CAAwE;AAGxE,oCAAmD;AAInD,SAAgB,MAAM,CAAC,UAA+B,EAAE;IACtD,OAAO,IAAA,mBAAW,EAAC,IAAA,kBAAU,EAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAChD,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;AACL,CAAC;AAJD,wBAIC;AAED,SAAgB,MAAM,CAAC,OAA6B;IAClD,OAAO,IAAA,oDAAuC,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAClE,CAAC;AAFD,wBAEC"}
@@ -29,8 +29,7 @@ function string(options = {}) {
29
29
  if ((0, type_guards_1.isDefined)(options.uppercase)) {
30
30
  transformers.push(new transformers_1.UppercaseTransformer());
31
31
  }
32
- return (0, types_1.valueSchema)({
33
- type: globalThis.String,
32
+ return (0, types_1.valueSchema)((0, types_1.typeSchema)(globalThis.String), {
34
33
  coerce: options.coerce,
35
34
  valueConstraints: constraints,
36
35
  transformers
@@ -38,7 +37,7 @@ function string(options = {}) {
38
37
  }
39
38
  exports.string = string;
40
39
  function String(options) {
41
- return (0, decorators_1.createSchemaPropertyDecoratorFromValueType)(string(options));
40
+ return (0, decorators_1.createSchemaPropertyDecoratorFromSchema)(string(options));
42
41
  }
43
42
  exports.String = String;
44
43
  //# sourceMappingURL=string.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"string.js","sourceRoot":"","sources":["../../../source/schema/schemas/string.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,yDAAgD;AAChD,gDAAqG;AACrG,8CAA2E;AAC3E,kDAA8F;AAE9F,oCAAuC;AA4BvC,SAAgB,MAAM,CAAC,UAAyB,EAAE;IAChD,MAAM,WAAW,GAA4B,EAAE,CAAC;IAChD,MAAM,YAAY,GAA6B,EAAE,CAAC;IAElD,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,aAAa,CAAC,EAAE;QACpC,WAAW,CAAC,IAAI,CAAC,IAAI,qCAAuB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;KACtE;IAED,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,aAAa,CAAC,EAAE;QACpC,WAAW,CAAC,IAAI,CAAC,IAAI,qCAAuB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;KACtE;IAED,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC9D,WAAW,CAAC,IAAI,CAAC,IAAI,+BAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;KACvE;IAED,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC3B,YAAY,CAAC,IAAI,CAAC,IAAI,8BAAe,EAAE,CAAC,CAAC;KAC1C;IAED,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAChC,YAAY,CAAC,IAAI,CAAC,IAAI,mCAAoB,EAAE,CAAC,CAAC;KAC/C;IAED,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAChC,YAAY,CAAC,IAAI,CAAC,IAAI,mCAAoB,EAAE,CAAC,CAAC;KAC/C;IAED,OAAO,IAAA,mBAAW,EAAS;QACzB,IAAI,EAAE,UAAU,CAAC,MAAM;QACvB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,gBAAgB,EAAE,WAAW;QAC7B,YAAY;KACb,CAAC,CAAC;AACL,CAAC;AAnCD,wBAmCC;AAED,SAAgB,MAAM,CAAC,OAAuB;IAC5C,OAAO,IAAA,uDAA0C,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACrE,CAAC;AAFD,wBAEC"}
1
+ {"version":3,"file":"string.js","sourceRoot":"","sources":["../../../source/schema/schemas/string.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,yDAAgD;AAChD,gDAAqG;AACrG,8CAAwE;AACxE,kDAA8F;AAE9F,oCAAmD;AA4BnD,SAAgB,MAAM,CAAC,UAAyB,EAAE;IAChD,MAAM,WAAW,GAA4B,EAAE,CAAC;IAChD,MAAM,YAAY,GAA6B,EAAE,CAAC;IAElD,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,aAAa,CAAC,EAAE;QACpC,WAAW,CAAC,IAAI,CAAC,IAAI,qCAAuB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;KACtE;IAED,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,aAAa,CAAC,EAAE;QACpC,WAAW,CAAC,IAAI,CAAC,IAAI,qCAAuB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;KACtE;IAED,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC9D,WAAW,CAAC,IAAI,CAAC,IAAI,+BAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;KACvE;IAED,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC3B,YAAY,CAAC,IAAI,CAAC,IAAI,8BAAe,EAAE,CAAC,CAAC;KAC1C;IAED,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAChC,YAAY,CAAC,IAAI,CAAC,IAAI,mCAAoB,EAAE,CAAC,CAAC;KAC/C;IAED,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAChC,YAAY,CAAC,IAAI,CAAC,IAAI,mCAAoB,EAAE,CAAC,CAAC;KAC/C;IAED,OAAO,IAAA,mBAAW,EAAC,IAAA,kBAAU,EAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAChD,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,gBAAgB,EAAE,WAAW;QAC7B,YAAY;KACb,CAAC,CAAC;AACL,CAAC;AAlCD,wBAkCC;AAED,SAAgB,MAAM,CAAC,OAAuB;IAC5C,OAAO,IAAA,oDAAuC,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAClE,CAAC;AAFD,wBAEC"}
@@ -1,4 +1,5 @@
1
- import type { OneOrMany } from "../../types";
1
+ import type { AbstractConstructor, OneOrMany } from "../../types";
2
+ import type { Schema } from '../schema';
2
3
  import type { GenericTransformFunction } from '../transformers/generic';
3
4
  import type { ValueSchema, ValueType } from '../types';
4
- export declare function transform<T, O, TransformOutput>(schema: OneOrMany<ValueType<T, O>>, sourceType: OneOrMany<ValueType<T, O>>, targetType: ValueType<TransformOutput>, transformFunction: GenericTransformFunction<O, TransformOutput>): ValueSchema<TransformOutput>;
5
+ export declare function transform<T, O, TransformOutput>(schema: OneOrMany<Schema<T, O>>, sourceType: OneOrMany<ValueType<T>>, targetType: AbstractConstructor<TransformOutput>, transformFunction: GenericTransformFunction<O, TransformOutput>): ValueSchema<TransformOutput>;
@@ -4,8 +4,7 @@ exports.transform = void 0;
4
4
  const generic_1 = require("../transformers/generic");
5
5
  const types_1 = require("../types");
6
6
  function transform(schema, sourceType, targetType, transformFunction) {
7
- return (0, types_1.valueSchema)({
8
- type: schema,
7
+ return (0, types_1.valueSchema)(schema, {
9
8
  transformers: new generic_1.GenericTransformer(sourceType, targetType, transformFunction)
10
9
  });
11
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../source/schema/schemas/transform.ts"],"names":[],"mappings":";;;AAEA,qDAA6D;AAE7D,oCAAuC;AAEvC,SAAgB,SAAS,CAAwB,MAAkC,EAAE,UAAsC,EAAE,UAAsC,EAAE,iBAA+D;IAClO,OAAO,IAAA,mBAAW,EAAC;QACjB,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,IAAI,4BAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC;KAChF,CAAqB,CAAC;AACzB,CAAC;AALD,8BAKC"}
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../source/schema/schemas/transform.ts"],"names":[],"mappings":";;;AAGA,qDAA6D;AAE7D,oCAAuC;AAEvC,SAAgB,SAAS,CAAwB,MAA+B,EAAE,UAAmC,EAAE,UAAgD,EAAE,iBAA+D;IACtO,OAAO,IAAA,mBAAW,EAAC,MAAM,EAAE;QACzB,YAAY,EAAE,IAAI,4BAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC;KAChF,CAAqB,CAAC;AACzB,CAAC;AAJD,8BAIC"}
@@ -1,9 +1,8 @@
1
1
  import type { Decorator } from "../../reflection";
2
- import type { Schema } from '../schema';
3
- import type { Coercible } from '../types';
2
+ import type { Coercible, ValueSchema } from '../types';
4
3
  export declare type Uint8ArraySchemaOptions = Coercible & {
5
4
  minimumLength?: number;
6
5
  maximumLength?: number;
7
6
  };
8
- export declare function uint8Array(options?: Uint8ArraySchemaOptions): Schema<Uint8Array>;
7
+ export declare function uint8Array(options?: Uint8ArraySchemaOptions): ValueSchema<globalThis.Uint8Array>;
9
8
  export declare function Uint8Array(options?: Uint8ArraySchemaOptions): Decorator<'property' | 'accessor'>;
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
+ /* eslint-disable @typescript-eslint/naming-convention */
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Uint8Array = exports.uint8Array = void 0;
4
5
  const type_guards_1 = require("../../utils/type-guards");
5
6
  const uint8_array_coercer_1 = require("../coercers/uint8-array.coercer");
6
7
  const maximum_length_1 = require("../constraints/maximum-length");
7
8
  const minimum_length_1 = require("../constraints/minimum-length");
8
- const decorators_1 = require("../decorators");
9
+ const utils_1 = require("../decorators/utils");
9
10
  const types_1 = require("../types");
10
11
  function uint8Array(options = {}) {
11
12
  const constraints = [];
@@ -15,15 +16,14 @@ function uint8Array(options = {}) {
15
16
  if ((0, type_guards_1.isDefined)(options.maximumLength)) {
16
17
  constraints.push(new maximum_length_1.MaximumLengthConstraint(options.maximumLength));
17
18
  }
18
- return (0, types_1.valueSchema)({
19
- type: globalThis.Uint8Array,
19
+ return (0, types_1.valueSchema)((0, types_1.typeSchema)(globalThis.Uint8Array), {
20
20
  coercers: (options.coerce == true) ? uint8_array_coercer_1.uint8ArrayCoercer : undefined,
21
21
  valueConstraints: constraints
22
22
  });
23
23
  }
24
24
  exports.uint8Array = uint8Array;
25
25
  function Uint8Array(options) {
26
- return (0, decorators_1.createSchemaPropertyDecoratorFromValueType)(uint8Array(options));
26
+ return (0, utils_1.createSchemaPropertyDecoratorFromSchema)(uint8Array(options));
27
27
  }
28
28
  exports.Uint8Array = Uint8Array;
29
29
  //# sourceMappingURL=uint8-array.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"uint8-array.js","sourceRoot":"","sources":["../../../source/schema/schemas/uint8-array.ts"],"names":[],"mappings":";;;AACA,yDAAgD;AAChD,yEAAoE;AACpE,kEAAwE;AACxE,kEAAwE;AACxE,8CAA2E;AAG3E,oCAAuC;AAOvC,SAAgB,UAAU,CAAC,UAAmC,EAAE;IAC9D,MAAM,WAAW,GAA4B,EAAE,CAAC;IAEhD,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,aAAa,CAAC,EAAE;QACpC,WAAW,CAAC,IAAI,CAAC,IAAI,wCAAuB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;KACtE;IAED,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,aAAa,CAAC,EAAE;QACpC,WAAW,CAAC,IAAI,CAAC,IAAI,wCAAuB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;KACtE;IAED,OAAO,IAAA,mBAAW,EAAC;QACjB,IAAI,EAAE,UAAU,CAAC,UAAU;QAC3B,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,uCAAiB,CAAC,CAAC,CAAC,SAAS;QAClE,gBAAgB,EAAE,WAAW;KAC9B,CAAC,CAAC;AACL,CAAC;AAhBD,gCAgBC;AAED,SAAgB,UAAU,CAAC,OAAiC;IAC1D,OAAO,IAAA,uDAA0C,EAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AACzE,CAAC;AAFD,gCAEC"}
1
+ {"version":3,"file":"uint8-array.js","sourceRoot":"","sources":["../../../source/schema/schemas/uint8-array.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,yDAAgD;AAChD,yEAAoE;AACpE,kEAAwE;AACxE,kEAAwE;AACxE,+CAA8E;AAE9E,oCAAmD;AAOnD,SAAgB,UAAU,CAAC,UAAmC,EAAE;IAC9D,MAAM,WAAW,GAA4B,EAAE,CAAC;IAEhD,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,aAAa,CAAC,EAAE;QACpC,WAAW,CAAC,IAAI,CAAC,IAAI,wCAAuB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;KACtE;IAED,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,aAAa,CAAC,EAAE;QACpC,WAAW,CAAC,IAAI,CAAC,IAAI,wCAAuB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;KACtE;IAED,OAAO,IAAA,mBAAW,EAAC,IAAA,kBAAU,EAAC,UAAU,CAAC,UAAU,CAAC,EAAE;QACpD,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,uCAAiB,CAAC,CAAC,CAAC,SAAS;QAClE,gBAAgB,EAAE,WAAW;KAC9B,CAAC,CAAC;AACL,CAAC;AAfD,gCAeC;AAED,SAAgB,UAAU,CAAC,OAAiC;IAC1D,OAAO,IAAA,+CAAuC,EAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AACtE,CAAC;AAFD,gCAEC"}
@@ -1,9 +1,10 @@
1
1
  import type { Decorator } from "../../reflection";
2
- import type { ValueSchema, ValueType } from '../types';
3
- export declare function union<T1, O1, T2, O2>(schema1: ValueType<T1, O1>, schema2: ValueType<T2, O2>): ValueSchema<T1 | T2, O1 | O2>;
4
- export declare function union<T1, O1, T2, O2, T3, O3>(schema1: ValueType<T1, O1>, schema2: ValueType<T2, O2>, schema3: ValueType<T3, O3>): ValueSchema<T1 | T2 | T3, O1 | O2 | O3>;
5
- export declare function union<T1, O1, T2, O2, T3, O3, T4, O4>(schema1: ValueType<T1, O1>, schema2: ValueType<T2, O2>, schema3: ValueType<T3, O3>, schema4: ValueType<T4, O4>): ValueSchema<T1 | T2 | T3 | T4, O1 | O2 | O3 | O4>;
6
- export declare function union<T1, O1, T2, O2, T3, O3, T4, O4, T5, O5>(schema1: ValueType<T1, O1>, schema2: ValueType<T2, O2>, schema3: ValueType<T3, O3>, schema4: ValueType<T4, O4>, schema5: ValueType<T5, O5>): ValueSchema<T1 | T2 | T3 | T4 | T5, O1 | O2 | O3 | O4 | O5>;
7
- export declare function union<T1, O1, T2, O2, T3, O3, T4, O4, T5, O5, T6, O6>(schema1: ValueType<T1, O1>, schema2: ValueType<T2, O2>, schema3: ValueType<T3, O3>, schema4: ValueType<T4, O4>, schema5: ValueType<T5, O5>, schema6: ValueType<T6>): ValueSchema<T1 | T2 | T3 | T4 | T5 | T6, O1 | O2 | O3 | O4 | O5 | O6>;
8
- export declare function union(...schemas: ValueType[]): ValueSchema;
9
- export declare function Union(...schemas: ValueType[]): Decorator<'property' | 'accessor'>;
2
+ import type { Schema } from '../schema';
3
+ import type { ValueSchema } from '../types';
4
+ export declare function union<T1, O1, T2, O2>(schema1: Schema<T1, O1>, schema2: Schema<T2, O2>): ValueSchema<T1 | T2, O1 | O2>;
5
+ export declare function union<T1, O1, T2, O2, T3, O3>(schema1: Schema<T1, O1>, schema2: Schema<T2, O2>, schema3: Schema<T3, O3>): ValueSchema<T1 | T2 | T3, O1 | O2 | O3>;
6
+ export declare function union<T1, O1, T2, O2, T3, O3, T4, O4>(schema1: Schema<T1, O1>, schema2: Schema<T2, O2>, schema3: Schema<T3, O3>, schema4: Schema<T4, O4>): ValueSchema<T1 | T2 | T3 | T4, O1 | O2 | O3 | O4>;
7
+ export declare function union<T1, O1, T2, O2, T3, O3, T4, O4, T5, O5>(schema1: Schema<T1, O1>, schema2: Schema<T2, O2>, schema3: Schema<T3, O3>, schema4: Schema<T4, O4>, schema5: Schema<T5, O5>): ValueSchema<T1 | T2 | T3 | T4 | T5, O1 | O2 | O3 | O4 | O5>;
8
+ export declare function union<T1, O1, T2, O2, T3, O3, T4, O4, T5, O5, T6, O6>(schema1: Schema<T1, O1>, schema2: Schema<T2, O2>, schema3: Schema<T3, O3>, schema4: Schema<T4, O4>, schema5: Schema<T5, O5>, schema6: Schema<T6>): ValueSchema<T1 | T2 | T3 | T4 | T5 | T6, O1 | O2 | O3 | O4 | O5 | O6>;
9
+ export declare function union(...schemas: Schema[]): ValueSchema;
10
+ export declare function Union(...schemas: Schema[]): Decorator<'property' | 'accessor'>;
@@ -7,13 +7,11 @@ const decorators_1 = require("../decorators");
7
7
  const types_1 = require("../types");
8
8
  function union(...schemas) {
9
9
  (0, type_guards_1.assert)(schemas.length >= 2, 'Assign requires at least 2 schemas.');
10
- return (0, types_1.valueSchema)({
11
- type: schemas
12
- });
10
+ return (0, types_1.valueSchema)(schemas);
13
11
  }
14
12
  exports.union = union;
15
13
  function Union(...schemas) {
16
- return (0, decorators_1.createSchemaPropertyDecoratorFromValueType)(union(...schemas));
14
+ return (0, decorators_1.createSchemaPropertyDecoratorFromSchema)(union(...schemas));
17
15
  }
18
16
  exports.Union = Union;
19
17
  //# sourceMappingURL=union.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"union.js","sourceRoot":"","sources":["../../../source/schema/schemas/union.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,yDAA6C;AAC7C,8CAA2E;AAE3E,oCAAuC;AAQvC,SAAgB,KAAK,CAAC,GAAG,OAAoB;IAC3C,IAAA,oBAAM,EAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,qCAAqC,CAAC,CAAC;IAEnE,OAAO,IAAA,mBAAW,EAAC;QACjB,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;AACL,CAAC;AAND,sBAMC;AAED,SAAgB,KAAK,CAAC,GAAG,OAAoB;IAC3C,OAAO,IAAA,uDAA0C,EAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;AACvE,CAAC;AAFD,sBAEC"}
1
+ {"version":3,"file":"union.js","sourceRoot":"","sources":["../../../source/schema/schemas/union.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,yDAA6C;AAC7C,8CAAwE;AAGxE,oCAAuC;AAQvC,SAAgB,KAAK,CAAC,GAAG,OAAiB;IACxC,IAAA,oBAAM,EAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,qCAAqC,CAAC,CAAC;IACnE,OAAO,IAAA,mBAAW,EAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAHD,sBAGC;AAED,SAAgB,KAAK,CAAC,GAAG,OAAiB;IACxC,OAAO,IAAA,oDAAuC,EAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;AACpE,CAAC;AAFD,sBAEC"}
@@ -1,4 +1,4 @@
1
1
  import type { Decorator } from "../../reflection";
2
- import type { ValueSchema } from '../types';
3
- export declare function unknown(): ValueSchema<unknown>;
2
+ import type { TypeSchema } from '../types';
3
+ export declare function unknown(): TypeSchema<unknown>;
4
4
  export declare function Unknwon(): Decorator<'property' | 'accessor'>;
@@ -5,11 +5,11 @@ exports.Unknwon = exports.unknown = void 0;
5
5
  const decorators_1 = require("../decorators");
6
6
  const types_1 = require("../types");
7
7
  function unknown() {
8
- return (0, types_1.valueSchema)({ type: 'any' });
8
+ return (0, types_1.typeSchema)('any');
9
9
  }
10
10
  exports.unknown = unknown;
11
11
  function Unknwon() {
12
- return (0, decorators_1.createSchemaPropertyDecoratorFromValueType)(unknown());
12
+ return (0, decorators_1.createSchemaPropertyDecoratorFromSchema)(unknown());
13
13
  }
14
14
  exports.Unknwon = Unknwon;
15
15
  //# sourceMappingURL=unknown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unknown.js","sourceRoot":"","sources":["../../../source/schema/schemas/unknown.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,8CAA2E;AAE3E,oCAAuC;AAEvC,SAAgB,OAAO;IACrB,OAAO,IAAA,mBAAW,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACtC,CAAC;AAFD,0BAEC;AAED,SAAgB,OAAO;IACrB,OAAO,IAAA,uDAA0C,EAAC,OAAO,EAAE,CAAC,CAAC;AAC/D,CAAC;AAFD,0BAEC"}
1
+ {"version":3,"file":"unknown.js","sourceRoot":"","sources":["../../../source/schema/schemas/unknown.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,8CAAwE;AAExE,oCAAsC;AAEtC,SAAgB,OAAO;IACrB,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAFD,0BAEC;AAED,SAAgB,OAAO;IACrB,OAAO,IAAA,oDAAuC,EAAC,OAAO,EAAE,CAAC,CAAC;AAC5D,CAAC;AAFD,0BAEC"}
@@ -1,13 +1,13 @@
1
1
  import type { Decorator } from "../../reflection";
2
- import type { OneOrMany, TypedOmit } from "../../types";
2
+ import type { AbstractConstructor, OneOrMany, TypedOmit } from "../../types";
3
3
  import type { TransformResult, ValueType } from '../types';
4
4
  import { SchemaValueTransformer } from '../types';
5
5
  export declare type GenericTransformFunction<T, O> = (value: T) => TypedOmit<TransformResult<O>, 'success'>;
6
6
  export declare class GenericTransformer<T, O, TransformOutput> extends SchemaValueTransformer<T, O, TransformOutput> {
7
- readonly sourceType: OneOrMany<ValueType<T, O>>;
7
+ readonly sourceType: OneOrMany<ValueType<T>>;
8
8
  readonly targetType: ValueType<TransformOutput>;
9
9
  readonly transformFunction: GenericTransformFunction<O, TransformOutput>;
10
- constructor(sourceType: OneOrMany<ValueType<T, O>>, targetType: ValueType<TransformOutput>, transformFunction: GenericTransformFunction<O, TransformOutput>);
10
+ constructor(sourceType: OneOrMany<ValueType<T>>, targetType: AbstractConstructor<TransformOutput>, transformFunction: GenericTransformFunction<O, TransformOutput>);
11
11
  transform(value: O): TransformResult<TransformOutput>;
12
12
  }
13
- export declare function Transform<T, O, TransformOutput>(sourceType: OneOrMany<ValueType<T, O>>, targetType: ValueType, transformFunction: GenericTransformFunction<O, TransformOutput>): Decorator<'property' | 'accessor'>;
13
+ export declare function Transform<T, O, TransformOutput>(sourceType: OneOrMany<AbstractConstructor<T>>, targetType: AbstractConstructor, transformFunction: GenericTransformFunction<O, TransformOutput>): Decorator<'property' | 'accessor'>;
@@ -1 +1 @@
1
- {"version":3,"file":"generic.js","sourceRoot":"","sources":["../../../source/schema/transformers/generic.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAIzD,yDAAgD;AAChD,8CAAsE;AAEtE,oCAAkD;AAIlD,MAAa,kBAA0C,SAAQ,8BAA6C;IAK1G,YAAY,UAAsC,EAAE,UAAsC,EAAE,iBAA+D;QACzJ,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC7C,CAAC;IAED,SAAS,CAAC,KAAQ;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAE7C,IAAI,IAAA,uBAAS,EAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;SAChD;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAM,EAAE,CAAC;IACjD,CAAC;CACF;AAtBD,gDAsBC;AAED,SAAgB,SAAS,CAAwB,UAAsC,EAAE,UAAqB,EAAE,iBAA+D;IAC7K,OAAO,IAAA,kDAAqC,EAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAClH,CAAC;AAFD,8BAEC"}
1
+ {"version":3,"file":"generic.js","sourceRoot":"","sources":["../../../source/schema/transformers/generic.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAIzD,yDAAgD;AAChD,8CAAsE;AAEtE,oCAAkD;AAIlD,MAAa,kBAA0C,SAAQ,8BAA6C;IAK1G,YAAY,UAAmC,EAAE,UAAgD,EAAE,iBAA+D;QAChK,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC7C,CAAC;IAED,SAAS,CAAC,KAAQ;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAE7C,IAAI,IAAA,uBAAS,EAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;SAChD;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAM,EAAE,CAAC;IACjD,CAAC;CACF;AAtBD,gDAsBC;AAED,SAAgB,SAAS,CAAwB,UAA6C,EAAE,UAA+B,EAAE,iBAA+D;IAC9L,OAAO,IAAA,kDAAqC,EAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAClH,CAAC;AAFD,8BAEC"}
@@ -16,7 +16,7 @@ class LowercaseTransformer extends types_1.SchemaValueTransformer {
16
16
  }
17
17
  exports.LowercaseTransformer = LowercaseTransformer;
18
18
  function Lowercase() {
19
- return (0, decorators_1.createSchemaValueTransformerDecorator)(new LowercaseTransformer(), { type: String });
19
+ return (0, decorators_1.createSchemaValueTransformerDecorator)(new LowercaseTransformer(), { schema: (0, types_1.typeSchema)(String) });
20
20
  }
21
21
  exports.Lowercase = Lowercase;
22
22
  //# sourceMappingURL=lowercase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lowercase.js","sourceRoot":"","sources":["../../../source/schema/transformers/lowercase.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,8CAAsE;AAEtE,oCAAkD;AAElD,MAAa,oBAAqB,SAAQ,8BAA8C;IAAxF;;QACW,eAAU,GAAG,MAAM,CAAC;QACpB,eAAU,GAAG,MAAM,CAAC;IAK/B,CAAC;IAHC,SAAS,CAAC,KAAa;QACrB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;IACvD,CAAC;CACF;AAPD,oDAOC;AAED,SAAgB,SAAS;IACvB,OAAO,IAAA,kDAAqC,EAAC,IAAI,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7F,CAAC;AAFD,8BAEC"}
1
+ {"version":3,"file":"lowercase.js","sourceRoot":"","sources":["../../../source/schema/transformers/lowercase.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,8CAAsE;AAEtE,oCAA8D;AAE9D,MAAa,oBAAqB,SAAQ,8BAA8C;IAAxF;;QACW,eAAU,GAAG,MAAM,CAAC;QACpB,eAAU,GAAG,MAAM,CAAC;IAK/B,CAAC;IAHC,SAAS,CAAC,KAAa;QACrB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;IACvD,CAAC;CACF;AAPD,oDAOC;AAED,SAAgB,SAAS;IACvB,OAAO,IAAA,kDAAqC,EAAC,IAAI,oBAAoB,EAAE,EAAE,EAAE,MAAM,EAAE,IAAA,kBAAU,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC3G,CAAC;AAFD,8BAEC"}
@@ -16,7 +16,7 @@ class TrimTransformer extends types_1.SchemaValueTransformer {
16
16
  }
17
17
  exports.TrimTransformer = TrimTransformer;
18
18
  function Trim() {
19
- return (0, decorators_1.createSchemaValueTransformerDecorator)(new TrimTransformer(), { type: String });
19
+ return (0, decorators_1.createSchemaValueTransformerDecorator)(new TrimTransformer(), { schema: (0, types_1.typeSchema)(String) });
20
20
  }
21
21
  exports.Trim = Trim;
22
22
  //# sourceMappingURL=trim.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trim.js","sourceRoot":"","sources":["../../../source/schema/transformers/trim.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,8CAAsE;AAEtE,oCAAkD;AAElD,MAAa,eAAgB,SAAQ,8BAA8C;IAAnF;;QACW,eAAU,GAAG,MAAM,CAAC;QACpB,eAAU,GAAG,MAAM,CAAC;IAK/B,CAAC;IAHC,SAAS,CAAC,KAAa;QACrB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;IAChD,CAAC;CACF;AAPD,0CAOC;AAED,SAAgB,IAAI;IAClB,OAAO,IAAA,kDAAqC,EAAC,IAAI,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AACxF,CAAC;AAFD,oBAEC"}
1
+ {"version":3,"file":"trim.js","sourceRoot":"","sources":["../../../source/schema/transformers/trim.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,8CAAsE;AAEtE,oCAA8D;AAE9D,MAAa,eAAgB,SAAQ,8BAA8C;IAAnF;;QACW,eAAU,GAAG,MAAM,CAAC;QACpB,eAAU,GAAG,MAAM,CAAC;IAK/B,CAAC;IAHC,SAAS,CAAC,KAAa;QACrB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;IAChD,CAAC;CACF;AAPD,0CAOC;AAED,SAAgB,IAAI;IAClB,OAAO,IAAA,kDAAqC,EAAC,IAAI,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,IAAA,kBAAU,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACtG,CAAC;AAFD,oBAEC"}
@@ -16,7 +16,7 @@ class UppercaseTransformer extends types_1.SchemaValueTransformer {
16
16
  }
17
17
  exports.UppercaseTransformer = UppercaseTransformer;
18
18
  function Uppercase() {
19
- return (0, decorators_1.createSchemaValueTransformerDecorator)(new UppercaseTransformer(), { type: String });
19
+ return (0, decorators_1.createSchemaValueTransformerDecorator)(new UppercaseTransformer(), { schema: (0, types_1.typeSchema)(String) });
20
20
  }
21
21
  exports.Uppercase = Uppercase;
22
22
  //# sourceMappingURL=uppercase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"uppercase.js","sourceRoot":"","sources":["../../../source/schema/transformers/uppercase.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,8CAAsE;AAEtE,oCAAkD;AAElD,MAAa,oBAAqB,SAAQ,8BAA8C;IAAxF;;QACW,eAAU,GAAG,MAAM,CAAC;QACpB,eAAU,GAAG,MAAM,CAAC;IAK/B,CAAC;IAHC,SAAS,CAAC,KAAa;QACrB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;IACvD,CAAC;CACF;AAPD,oDAOC;AAED,SAAgB,SAAS;IACvB,OAAO,IAAA,kDAAqC,EAAC,IAAI,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7F,CAAC;AAFD,8BAEC"}
1
+ {"version":3,"file":"uppercase.js","sourceRoot":"","sources":["../../../source/schema/transformers/uppercase.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,8CAAsE;AAEtE,oCAA8D;AAE9D,MAAa,oBAAqB,SAAQ,8BAA8C;IAAxF;;QACW,eAAU,GAAG,MAAM,CAAC;QACpB,eAAU,GAAG,MAAM,CAAC;IAK/B,CAAC;IAHC,SAAS,CAAC,KAAa;QACrB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;IACvD,CAAC;CACF;AAPD,oDAOC;AAED,SAAgB,SAAS;IACvB,OAAO,IAAA,kDAAqC,EAAC,IAAI,oBAAoB,EAAE,EAAE,EAAE,MAAM,EAAE,IAAA,kBAAU,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC3G,CAAC;AAFD,8BAEC"}
package/schema/types.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { JsonPath } from "../json-path/json-path";
2
- import type { AbstractConstructor, OneOrMany, Record, Type } from "../types";
3
- import type { Schema, SchemaTestable } from './schema';
2
+ import type { AbstractConstructor, OneOrMany, Record, Type, TypedOmit } from "../types";
3
+ import type { NormalizedSchema, Schema } from './schema';
4
4
  import type { SchemaError } from './schema.error';
5
5
  declare const schemaOutputTypeSymbol: unique symbol;
6
6
  export declare type SchemaFactoryFunction<T extends Record, O = T> = (data: T) => NormalizeValueType<O>;
@@ -12,22 +12,29 @@ export declare type SchemaFactory<T extends Record, O = T> = {
12
12
  builder: SchemaFactoryFunction<T, O>;
13
13
  };
14
14
  export declare type ObjectSchemaProperties<T extends Record> = {
15
- [K in keyof T]-?: OneOrMany<ValueType<T[K]>>;
15
+ [K in keyof T]-?: OneOrMany<Schema<T[K]>>;
16
16
  };
17
17
  export declare type NormalizedObjectSchemaProperties<T> = {
18
- [K in keyof T]: Schema<T[K]>;
18
+ [K in keyof T]-?: Schema<T[K]>;
19
19
  };
20
- export declare type SchemaOutput<T extends SchemaTestable> = T extends ObjectSchema<any, infer O> ? O : T extends ValueSchema<any, infer O> ? O : T extends TypeSchema ? InstanceType<T> : never;
20
+ export declare type SchemaOutput<T extends Schema> = T extends ObjectSchema<any, infer O> ? O : T extends ValueSchema<any, infer O> ? O : T extends TypeSchema<infer O> ? O : never;
21
21
  export declare type ObjectSchema<T extends Record = any, O extends Record = T> = {
22
22
  [schemaOutputTypeSymbol]?: O;
23
+ sourceType?: ValueType;
23
24
  factory?: SchemaFactory<T, O>;
24
25
  properties: ObjectSchemaProperties<T>;
25
26
  mask?: boolean;
26
- allowUnknownProperties?: OneOrMany<ValueType>;
27
+ allowUnknownProperties?: OneOrMany<Schema>;
28
+ };
29
+ export declare type TypeSchema<T = any> = {
30
+ type: ValueType<T>;
31
+ };
32
+ export declare type NormalizedTypeSchema<T = any> = {
33
+ foo: ResolvedValueType<T>;
27
34
  };
28
- export declare type TypeSchema<T = any, O = T> = AbstractConstructor<T & O>;
29
35
  export declare type ValueSchema<T = unknown, O = T> = {
30
- type: OneOrMany<ValueType<T, O>>;
36
+ [schemaOutputTypeSymbol]?: O;
37
+ schema: OneOrMany<Schema<T, O>>;
31
38
  array?: boolean;
32
39
  optional?: boolean;
33
40
  nullable?: boolean;
@@ -48,7 +55,7 @@ export declare type NormalizedObjectSchema<T extends Record = any, O extends Rec
48
55
  };
49
56
  export declare type NormalizedValueSchema<T = any, O = T> = {
50
57
  [schemaOutputTypeSymbol]?: O;
51
- type: Set<ResolvedValueType<T, O>>;
58
+ schema: Set<Schema<T, O>>;
52
59
  array: boolean;
53
60
  optional: boolean;
54
61
  nullable: boolean;
@@ -59,25 +66,25 @@ export declare type NormalizedValueSchema<T = any, O = T> = {
59
66
  valueConstraints: readonly SchemaValueConstraint[];
60
67
  };
61
68
  export declare type SchemaContext = {
62
- schema: NormalizedValueSchema;
69
+ schema: NormalizedSchema;
63
70
  options: SchemaTestOptions;
64
71
  };
65
72
  export declare type ConstraintContext = SchemaContext;
66
73
  export declare type TransformerContext = SchemaContext;
67
74
  export declare type CoercerContext = SchemaContext;
68
- export declare type NormalizeValueType<T> = T extends String ? string : T extends Number ? number : T extends Boolean ? boolean : T extends BigInt ? bigint : T extends Symbol ? symbol : T extends 'undefined' ? undefined : T extends 'null' ? null : T;
69
- export declare type NormalizeToValueType<T> = T extends string ? typeof String : T extends number ? typeof Number : T extends boolean ? typeof Boolean : T extends bigint ? typeof BigInt : T extends symbol ? typeof Symbol : T extends undefined ? 'undefined' : T extends null ? 'null' : never;
70
- export declare type ValueType<T = any, O = T> = Schema<T, O> | TypeSchema<T, O> | NormalizeToValueType<T> | DeferredValueType<T, O> | 'undefined' | 'null' | 'any';
71
- export declare type DeferredValueType<T = unknown, O = T> = {
72
- deferred: () => ValueType<T, O>;
73
- };
74
- export declare type ResolvedValueType<T = unknown, O = T> = Exclude<ValueType<T, O>, DeferredValueType>;
75
- export declare type ValueTypeOutput<T extends ValueType | DeferredValueType> = T extends (ValueType<infer _, infer O> | DeferredValueType<infer _, infer O>) ? NormalizeValueType<O> : never;
75
+ export declare type NormalizeValueType<T> = T extends String ? string : T extends Number ? number : T extends Boolean ? boolean : T extends BigInt ? bigint : T extends Symbol ? symbol : T extends 'undefined' ? undefined : T extends 'null' ? null : T extends 'any' ? any : T;
76
+ export declare type NormalizeToValueType<T> = T extends string | String ? typeof String : T extends number ? typeof Number : T extends boolean ? typeof Boolean : T extends bigint ? typeof BigInt : T extends symbol ? typeof Symbol : T extends undefined ? 'undefined' : T extends null ? 'null' : T extends any ? 'any' : never;
77
+ export declare type ValueType<T = any> = AbstractConstructor<T> | NormalizeToValueType<T> | DeferredValueType<T>;
78
+ export declare type DeferredValueType<T = unknown> = {
79
+ deferred: () => ValueType<T>;
80
+ };
81
+ export declare type ResolvedValueType<T = unknown> = Exclude<ValueType<T>, DeferredValueType>;
82
+ export declare type ValueTypeOutput<T extends ValueType> = T extends ValueType<infer U> ? NormalizeValueType<U> : never;
76
83
  export declare type Coercible = {
77
84
  coerce?: boolean;
78
85
  };
79
- export declare const primitiveValueTypes: ValueType[];
80
- export declare const primitiveValueTypesSet: Set<ValueType<any, any>>;
86
+ export declare const primitiveConstructors: ValueType[];
87
+ export declare const primitiveConstructorSet: Set<ValueType<any>>;
81
88
  export declare abstract class SchemaArrayConstraint {
82
89
  abstract validate(value: readonly unknown[], path: JsonPath, context: ConstraintContext): ConstraintResult;
83
90
  }
@@ -88,7 +95,7 @@ export declare abstract class SchemaValueConstraint {
88
95
  abstract validate(value: unknown, path: JsonPath, context: ConstraintContext): ConstraintResult;
89
96
  }
90
97
  export declare abstract class SchemaValueTransformer<T = any, O = T, TransformOutput = O> {
91
- abstract readonly sourceType: OneOrMany<ValueType<T, O>>;
98
+ abstract readonly sourceType: OneOrMany<ValueType<T>>;
92
99
  abstract readonly targetType: ValueType<TransformOutput>;
93
100
  abstract transform(value: O, path: JsonPath, context: TransformerContext): TransformResult<TransformOutput>;
94
101
  }
@@ -144,13 +151,18 @@ export declare type TransformResult<T> = {
144
151
  error: SchemaError;
145
152
  };
146
153
  export declare function objectSchema<T, O = T>(schema: ObjectSchema<T, O>): ObjectSchema<T, O>;
147
- export declare function valueSchema<T, O = T>(schema: ValueSchema<T, O>): ValueSchema<T, O>;
148
- export declare function isSchema<T, O>(value: ValueType<T, O>): value is Schema<T, O>;
149
- export declare function isObjectSchema<T extends Record, O extends Record>(value: ValueType<T, O>): value is ObjectSchema<T, O>;
150
- export declare function isValueSchema<T, O>(value: ValueType<T, O>): value is ValueSchema<T, O>;
151
- export declare function isDeferredValueType<T, O>(value: ValueType<T, O>): value is DeferredValueType<T, O>;
152
- export declare function deferrableValueTypesToValueTypes<T, O>(valueTypes: OneOrMany<ValueType<T, O>>): OneOrMany<ResolvedValueType<T, O>>;
153
- export declare function deferrableValueTypeToResolvedValueTypes<T, O>(valueType: ValueType<T, O>): ResolvedValueType<T, O>;
154
- export declare function valueTypeToSchema<T, O>(valueType: ValueType<T, O>): Schema<T, O>;
155
- export declare function valueTypesToSchema<T, O>(valueType: OneOrMany<ValueType<T, O>>): Schema<T, O>;
154
+ export declare function valueSchema<T, O = T>(schema: OneOrMany<Schema<T, O>>, options?: TypedOmit<ValueSchema<T, O>, 'schema'>): ValueSchema<T, O>;
155
+ export declare function typeSchema<T>(type: ValueType<T>): TypeSchema<NormalizeValueType<T>>;
156
+ export declare function isSchema<T extends Record, O extends Record>(value: any): value is Schema<T, O>;
157
+ export declare function isObjectSchema<T extends Record, O extends Record>(schema: Schema<T, O>): schema is ObjectSchema<T, O>;
158
+ export declare function isObjectSchema<T extends Record, O extends Record>(schema: any): schema is ObjectSchema<T, O>;
159
+ export declare function isValueSchema<T, O>(schema: Schema<T, O>): schema is ValueSchema<T, O>;
160
+ export declare function isValueSchema<T, O>(schema: any): schema is ValueSchema<T, O>;
161
+ export declare function isTypeSchema<T, O>(schema: Schema<T, O>): schema is TypeSchema<O>;
162
+ export declare function isTypeSchema<T, O>(schema: any): schema is TypeSchema<O>;
163
+ export declare function isDeferredValueType<T>(value: ValueType<T>): value is DeferredValueType<T>;
164
+ export declare function resolveValueTypes<T>(valueTypes: OneOrMany<ValueType<T>>): OneOrMany<ResolvedValueType<T>>;
165
+ export declare function resolveValueType<T>(valueType: ValueType<T>): ResolvedValueType<T>;
166
+ export declare function valueTypesOrSchemasToSchemas<T, O>(valueTypesOrSchemas: OneOrMany<ValueType<O> | Schema<T, O>>): OneOrMany<Schema<T, O>>;
167
+ export declare function valueTypeOrSchemaToSchema<T, O>(valueTypeOrSchema: ValueType<O> | Schema<T, O>): Schema<T, O>;
156
168
  export {};