@tstdl/base 0.78.0-beta1 → 0.78.0-beta10

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 (181) 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 +11 -8
  4. package/api/types.js.map +1 -1
  5. package/container/container.js.map +1 -1
  6. package/container/resolve-chain.d.ts +5 -5
  7. package/container/resolve-chain.js.map +1 -1
  8. package/database/mongo/mongo-base.repository.js.map +1 -1
  9. package/database/mongo/types.d.ts +2 -2
  10. package/enumerable/async-enumerable.d.ts +2 -1
  11. package/enumerable/async-enumerable.js +3 -0
  12. package/enumerable/async-enumerable.js.map +1 -1
  13. package/enumerable/enumerable-methods.d.ts +1 -0
  14. package/enumerable/enumerable.d.ts +1 -0
  15. package/enumerable/enumerable.js +12 -18
  16. package/enumerable/enumerable.js.map +1 -1
  17. package/http/client/adapters/utils.js.map +1 -1
  18. package/key-value-store/mongo/mongo-key-value.model.d.ts +1 -0
  19. package/mail/template-providers/file-mail-template.provider.js +2 -2
  20. package/mail/template-providers/file-mail-template.provider.js.map +1 -1
  21. package/package.json +5 -6
  22. package/promise/deferred-promise.d.ts +2 -15
  23. package/promise/deferred-promise.js +5 -10
  24. package/promise/deferred-promise.js.map +1 -1
  25. package/promise/lazy-promise.d.ts +11 -0
  26. package/promise/lazy-promise.js +31 -0
  27. package/promise/lazy-promise.js.map +1 -0
  28. package/queue/mongo/mongo-job.repository.js +1 -1
  29. package/queue/mongo/mongo-job.repository.js.map +1 -1
  30. package/reflection/registry.d.ts +8 -8
  31. package/reflection/registry.js.map +1 -1
  32. package/schema/array-constraints/maximum-length.js +2 -2
  33. package/schema/array-constraints/maximum-length.js.map +1 -1
  34. package/schema/array-constraints/minimum-length.js +2 -2
  35. package/schema/array-constraints/minimum-length.js.map +1 -1
  36. package/schema/coercers/default-value.coercer.d.ts +1 -1
  37. package/schema/coercers/default-value.coercer.js +1 -1
  38. package/schema/coercers/default-value.coercer.js.map +1 -1
  39. package/schema/coercers/uint8-array.coercer.js +4 -9
  40. package/schema/coercers/uint8-array.coercer.js.map +1 -1
  41. package/schema/constraints/enumeration.js +2 -2
  42. package/schema/constraints/enumeration.js.map +1 -1
  43. package/schema/constraints/generic.js +2 -2
  44. package/schema/constraints/generic.js.map +1 -1
  45. package/schema/constraints/integer.js +3 -3
  46. package/schema/constraints/integer.js.map +1 -1
  47. package/schema/constraints/literal.js +2 -2
  48. package/schema/constraints/literal.js.map +1 -1
  49. package/schema/constraints/maximum-date.js +3 -3
  50. package/schema/constraints/maximum-date.js.map +1 -1
  51. package/schema/constraints/maximum-length.js +2 -2
  52. package/schema/constraints/maximum-length.js.map +1 -1
  53. package/schema/constraints/maximum.js +3 -3
  54. package/schema/constraints/maximum.js.map +1 -1
  55. package/schema/constraints/minimum-date.js +3 -3
  56. package/schema/constraints/minimum-date.js.map +1 -1
  57. package/schema/constraints/minimum-length.js +2 -2
  58. package/schema/constraints/minimum-length.js.map +1 -1
  59. package/schema/constraints/minimum.js +3 -3
  60. package/schema/constraints/minimum.js.map +1 -1
  61. package/schema/constraints/pattern.js +3 -3
  62. package/schema/constraints/pattern.js.map +1 -1
  63. package/schema/decorators/array.d.ts +3 -2
  64. package/schema/decorators/array.js +1 -1
  65. package/schema/decorators/array.js.map +1 -1
  66. package/schema/decorators/defaulted.d.ts +3 -2
  67. package/schema/decorators/defaulted.js +1 -1
  68. package/schema/decorators/defaulted.js.map +1 -1
  69. package/schema/decorators/property.d.ts +3 -3
  70. package/schema/decorators/property.js +4 -1
  71. package/schema/decorators/property.js.map +1 -1
  72. package/schema/decorators/types.d.ts +3 -3
  73. package/schema/decorators/utils.d.ts +3 -2
  74. package/schema/decorators/utils.js +4 -8
  75. package/schema/decorators/utils.js.map +1 -1
  76. package/schema/schema.d.ts +10 -9
  77. package/schema/schema.js +106 -110
  78. package/schema/schema.js.map +1 -1
  79. package/schema/schemas/any.d.ts +2 -2
  80. package/schema/schemas/any.js +2 -2
  81. package/schema/schemas/any.js.map +1 -1
  82. package/schema/schemas/array.d.ts +4 -2
  83. package/schema/schemas/array.js +1 -2
  84. package/schema/schemas/array.js.map +1 -1
  85. package/schema/schemas/assign.d.ts +5 -5
  86. package/schema/schemas/assign.js +0 -1
  87. package/schema/schemas/assign.js.map +1 -1
  88. package/schema/schemas/boolean.js +2 -3
  89. package/schema/schemas/boolean.js.map +1 -1
  90. package/schema/schemas/constraint.d.ts +1 -1
  91. package/schema/schemas/constraint.js +1 -2
  92. package/schema/schemas/constraint.js.map +1 -1
  93. package/schema/schemas/date.js +2 -3
  94. package/schema/schemas/date.js.map +1 -1
  95. package/schema/schemas/defaulted.d.ts +4 -2
  96. package/schema/schemas/defaulted.js +1 -2
  97. package/schema/schemas/defaulted.js.map +1 -1
  98. package/schema/schemas/enumeration.js +2 -3
  99. package/schema/schemas/enumeration.js.map +1 -1
  100. package/schema/schemas/exclude.js.map +1 -1
  101. package/schema/schemas/index.d.ts +1 -0
  102. package/schema/schemas/index.js +1 -0
  103. package/schema/schemas/index.js.map +1 -1
  104. package/schema/schemas/instance.d.ts +2 -2
  105. package/schema/schemas/instance.js +1 -1
  106. package/schema/schemas/instance.js.map +1 -1
  107. package/schema/schemas/literal.js +2 -3
  108. package/schema/schemas/literal.js.map +1 -1
  109. package/schema/schemas/nullable.d.ts +1 -1
  110. package/schema/schemas/nullable.js +1 -1
  111. package/schema/schemas/nullable.js.map +1 -1
  112. package/schema/schemas/number.d.ts +1 -1
  113. package/schema/schemas/number.js +5 -3
  114. package/schema/schemas/number.js.map +1 -1
  115. package/schema/schemas/object.d.ts +2 -3
  116. package/schema/schemas/object.js.map +1 -1
  117. package/schema/schemas/optional.d.ts +1 -1
  118. package/schema/schemas/optional.js +1 -1
  119. package/schema/schemas/optional.js.map +1 -1
  120. package/schema/schemas/pick.js.map +1 -1
  121. package/schema/schemas/readable-stream.d.ts +2 -2
  122. package/schema/schemas/readable-stream.js +3 -4
  123. package/schema/schemas/readable-stream.js.map +1 -1
  124. package/schema/schemas/record.d.ts +5 -4
  125. package/schema/schemas/record.js +2 -2
  126. package/schema/schemas/record.js.map +1 -1
  127. package/schema/schemas/regexp.js +3 -3
  128. package/schema/schemas/regexp.js.map +1 -1
  129. package/schema/schemas/string.js +2 -3
  130. package/schema/schemas/string.js.map +1 -1
  131. package/schema/schemas/transform.d.ts +4 -3
  132. package/schema/schemas/transform.js +1 -3
  133. package/schema/schemas/transform.js.map +1 -1
  134. package/schema/schemas/uint8-array.d.ts +2 -3
  135. package/schema/schemas/uint8-array.js +4 -4
  136. package/schema/schemas/uint8-array.js.map +1 -1
  137. package/schema/schemas/union.d.ts +9 -4
  138. package/schema/schemas/union.js +5 -4
  139. package/schema/schemas/union.js.map +1 -1
  140. package/schema/schemas/unknown.d.ts +2 -2
  141. package/schema/schemas/unknown.js +2 -2
  142. package/schema/schemas/unknown.js.map +1 -1
  143. package/schema/transformers/generic.d.ts +9 -9
  144. package/schema/transformers/generic.js.map +1 -1
  145. package/schema/transformers/lowercase.d.ts +2 -2
  146. package/schema/transformers/lowercase.js +1 -1
  147. package/schema/transformers/lowercase.js.map +1 -1
  148. package/schema/transformers/trim.d.ts +2 -2
  149. package/schema/transformers/trim.js +1 -1
  150. package/schema/transformers/trim.js.map +1 -1
  151. package/schema/transformers/uppercase.d.ts +2 -2
  152. package/schema/transformers/uppercase.js +1 -1
  153. package/schema/transformers/uppercase.js.map +1 -1
  154. package/schema/types.d.ts +70 -52
  155. package/schema/types.js +47 -12
  156. package/schema/types.js.map +1 -1
  157. package/schema/utils/schema.d.ts +10 -9
  158. package/schema/utils/schema.js +43 -47
  159. package/schema/utils/schema.js.map +1 -1
  160. package/schema/utils/value-type.d.ts +4 -3
  161. package/schema/utils/value-type.js +18 -14
  162. package/schema/utils/value-type.js.map +1 -1
  163. package/templates/providers/file-template.provider.js.map +1 -1
  164. package/types.d.ts +35 -1
  165. package/utils/async-iterable-helpers/includes.d.ts +2 -0
  166. package/utils/async-iterable-helpers/includes.js +13 -0
  167. package/utils/async-iterable-helpers/includes.js.map +1 -0
  168. package/utils/async-iterable-helpers/index.d.ts +1 -0
  169. package/utils/async-iterable-helpers/index.js +1 -0
  170. package/utils/async-iterable-helpers/index.js.map +1 -1
  171. package/utils/compression.d.ts +13 -13
  172. package/utils/compression.js +2 -1
  173. package/utils/compression.js.map +1 -1
  174. package/utils/encoding.js +1 -1
  175. package/utils/encoding.js.map +1 -1
  176. package/utils/iterable-helpers/includes.d.ts +1 -0
  177. package/utils/iterable-helpers/includes.js +9 -0
  178. package/utils/iterable-helpers/includes.js.map +1 -0
  179. package/utils/iterable-helpers/index.d.ts +1 -0
  180. package/utils/iterable-helpers/index.js +1 -0
  181. package/utils/iterable-helpers/index.js.map +1 -1
@@ -15,14 +15,14 @@ class PatternConstraint extends types_1.SchemaValueConstraint {
15
15
  }
16
16
  validate(value, path) {
17
17
  if (!this.pattern.test(value)) {
18
- return { success: false, error: schema_error_1.SchemaError.expectedButGot(this.expects, `"${value}"`, path) };
18
+ return { valid: false, error: schema_error_1.SchemaError.expectedButGot(this.expects, `"${value}"`, path) };
19
19
  }
20
- return { success: true };
20
+ return { valid: true };
21
21
  }
22
22
  }
23
23
  exports.PatternConstraint = PatternConstraint;
24
24
  function Pattern(pattern, patternName) {
25
- return (0, utils_1.createSchemaValueConstraintDecorator)(new PatternConstraint(pattern, patternName), { type: String });
25
+ return (0, utils_1.createSchemaValueConstraintDecorator)(new PatternConstraint(pattern, patternName), { schema: (0, types_1.typeSchema)(String) });
26
26
  }
27
27
  exports.Pattern = Pattern;
28
28
  //# sourceMappingURL=pattern.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../source/schema/constraints/pattern.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAIzD,+CAA2E;AAC3E,kDAA8C;AAE9C,oCAAiD;AAEjD,MAAa,iBAAkB,SAAQ,6BAAqB;IAO1D,YAAY,OAAe,EAAE,cAAsB,WAAW;QAC5D,KAAK,EAAE,CAAC;QAJD,kBAAa,GAAG,MAAM,CAAC;QAM9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC;IAChD,CAAC;IAED,QAAQ,CAAC,KAAa,EAAE,IAAc;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,0BAAW,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;SAChG;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF;AAtBD,8CAsBC;AAED,SAAgB,OAAO,CAAC,OAAe,EAAE,WAAoB;IAC3D,OAAO,IAAA,4CAAoC,EAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7G,CAAC;AAFD,0BAEC"}
1
+ {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../source/schema/constraints/pattern.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAIzD,+CAA2E;AAC3E,kDAA8C;AAE9C,oCAA6D;AAE7D,MAAa,iBAAkB,SAAQ,6BAAqB;IAO1D,YAAY,OAAe,EAAE,cAAsB,WAAW;QAC5D,KAAK,EAAE,CAAC;QAJD,kBAAa,GAAG,MAAM,CAAC;QAM9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC;IAChD,CAAC;IAED,QAAQ,CAAC,KAAa,EAAE,IAAc;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC7B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,0BAAW,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;SAC9F;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;CACF;AAtBD,8CAsBC;AAED,SAAgB,OAAO,CAAC,OAAe,EAAE,WAAoB;IAC3D,OAAO,IAAA,4CAAoC,EAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAA,kBAAU,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC3H,CAAC;AAFD,0BAEC"}
@@ -1,4 +1,5 @@
1
1
  import type { Decorator } from "../../reflection";
2
+ import type { OneOrMany } from "../../types";
3
+ import type { Schema } from '../schema';
2
4
  import type { ArrayOptions } from '../schemas/array';
3
- import type { MaybeDeferredValueTypes } from '../types';
4
- export declare function Array(innerValues: MaybeDeferredValueTypes, options?: ArrayOptions): Decorator<'property' | 'accessor'>;
5
+ export declare function Array(innerValues: OneOrMany<Schema>, options?: ArrayOptions): Decorator<'property' | 'accessor'>;
@@ -5,7 +5,7 @@ exports.Array = void 0;
5
5
  const array_1 = require("../schemas/array");
6
6
  const utils_1 = require("./utils");
7
7
  function Array(innerValues, options) {
8
- return (0, utils_1.createSchemaPropertyDecoratorFromValueType)((0, array_1.array)(innerValues, options));
8
+ return (0, utils_1.createSchemaPropertyDecoratorFromSchema)((0, array_1.array)(innerValues, options));
9
9
  }
10
10
  exports.Array = Array;
11
11
  //# sourceMappingURL=array.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../source/schema/decorators/array.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAIzD,4CAAyC;AAEzC,mCAAqE;AAErE,SAAgB,KAAK,CAAC,WAAoC,EAAE,OAAsB;IAChF,OAAO,IAAA,kDAA0C,EAAC,IAAA,aAAK,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AACjF,CAAC;AAFD,sBAEC"}
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../source/schema/decorators/array.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAMzD,4CAAyC;AACzC,mCAAkE;AAElE,SAAgB,KAAK,CAAC,WAA8B,EAAE,OAAsB;IAC1E,OAAO,IAAA,+CAAuC,EAAC,IAAA,aAAK,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9E,CAAC;AAFD,sBAEC"}
@@ -1,3 +1,4 @@
1
1
  import type { Decorator } from "../../reflection";
2
- import type { MaybeDeferredValueTypes } from '../types';
3
- export declare function Defaulted(type: MaybeDeferredValueTypes, defaultValue: any): Decorator<'property' | 'accessor'>;
2
+ import type { OneOrMany } from "../../types";
3
+ import type { Schema } from '../schema';
4
+ export declare function Defaulted(type: OneOrMany<Schema>, defaultValue: any): Decorator<'property' | 'accessor'>;
@@ -5,7 +5,7 @@ exports.Defaulted = void 0;
5
5
  const defaulted_1 = require("../schemas/defaulted");
6
6
  const utils_1 = require("./utils");
7
7
  function Defaulted(type, defaultValue) {
8
- return (0, utils_1.createSchemaPropertyDecoratorFromValueType)((0, defaulted_1.defaulted)(type, defaultValue));
8
+ return (0, utils_1.createSchemaPropertyDecoratorFromSchema)((0, defaulted_1.defaulted)(type, defaultValue));
9
9
  }
10
10
  exports.Defaulted = Defaulted;
11
11
  //# sourceMappingURL=defaulted.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaulted.js","sourceRoot":"","sources":["../../../source/schema/decorators/defaulted.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,oDAAiD;AAEjD,mCAAqE;AAErE,SAAgB,SAAS,CAAC,IAA6B,EAAE,YAAiB;IACxE,OAAO,IAAA,kDAA0C,EAAC,IAAA,qBAAS,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;AACnF,CAAC;AAFD,8BAEC"}
1
+ {"version":3,"file":"defaulted.js","sourceRoot":"","sources":["../../../source/schema/decorators/defaulted.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAKzD,oDAAiD;AACjD,mCAAkE;AAElE,SAAgB,SAAS,CAAC,IAAuB,EAAE,YAAiB;IAClE,OAAO,IAAA,+CAAuC,EAAC,IAAA,qBAAS,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;AAChF,CAAC;AAFD,8BAEC"}
@@ -1,6 +1,6 @@
1
1
  import type { Decorator } from "../../reflection";
2
- import type { TypedOmit } from "../../types";
3
- import type { ValueTypes } from '../types';
2
+ import type { OneOrMany, TypedOmit } from "../../types";
3
+ import type { ValueType } from '../types';
4
4
  import type { PropertyOptions } from './types';
5
5
  export declare function Property(options?: PropertyOptions): Decorator<'property' | 'accessor'>;
6
- export declare function Property(types?: () => ValueTypes, options?: TypedOmit<PropertyOptions, 'type'>): Decorator<'property' | 'accessor'>;
6
+ export declare function Property(schema?: OneOrMany<ValueType>, options?: TypedOmit<PropertyOptions, 'schema'>): Decorator<'property' | 'accessor'>;
@@ -4,10 +4,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.Property = void 0;
5
5
  const array_1 = require("../../utils/array/array");
6
6
  const type_guards_1 = require("../../utils/type-guards");
7
+ const types_1 = require("../types");
7
8
  const utils_1 = require("./utils");
8
9
  function Property(optionsOrTypes = {}, optionsOrNothing) {
9
- const options = (0, type_guards_1.isFunction)(optionsOrTypes) ? { type: { deferred: optionsOrTypes }, ...optionsOrNothing } : optionsOrTypes;
10
+ const schema = ((0, type_guards_1.isFunction)(optionsOrTypes) || (0, type_guards_1.isString)(optionsOrTypes)) ? (0, types_1.typeSchema)(optionsOrTypes) : undefined;
11
+ const options = (0, type_guards_1.isUndefined)(schema) ? optionsOrTypes : optionsOrNothing ?? {};
10
12
  return (0, utils_1.createSchemaPropertyDecorator)({
13
+ schema,
11
14
  ...options,
12
15
  coercers: (0, type_guards_1.isDefined)(options.coercers) ? (0, array_1.toArray)(options.coercers) : undefined,
13
16
  transformers: (0, type_guards_1.isDefined)(options.transformers) ? (0, array_1.toArray)(options.transformers) : undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"property.js","sourceRoot":"","sources":["../../../source/schema/decorators/property.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAIzD,mDAA8C;AAC9C,yDAA4D;AAG5D,mCAAwD;AAIxD,SAAgB,QAAQ,CAAC,iBAAuD,EAAE,EAAE,gBAAkC;IACpH,MAAM,OAAO,GAAoB,IAAA,wBAAU,EAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,GAAG,gBAAgB,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;IAE3I,OAAO,IAAA,qCAA6B,EAAC;QACnC,GAAG,OAAO;QACV,QAAQ,EAAE,IAAA,uBAAS,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAA,eAAO,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;QAC7E,YAAY,EAAE,IAAA,uBAAS,EAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAA,eAAO,EAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;QACzF,gBAAgB,EAAE,IAAA,uBAAS,EAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAA,eAAO,EAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS;QACrG,gBAAgB,EAAE,IAAA,uBAAS,EAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAA,eAAO,EAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS;KACtG,CAAC,CAAC;AACL,CAAC;AAVD,4BAUC"}
1
+ {"version":3,"file":"property.js","sourceRoot":"","sources":["../../../source/schema/decorators/property.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAIzD,mDAA8C;AAC9C,yDAAmF;AAEnF,oCAAsC;AAEtC,mCAAwD;AAIxD,SAAgB,QAAQ,CAAC,iBAAyD,EAAE,EAAE,gBAAkC;IACtH,MAAM,MAAM,GAAG,CAAC,IAAA,wBAAU,EAAC,cAAc,CAAC,IAAI,IAAA,sBAAQ,EAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,kBAAU,EAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjH,MAAM,OAAO,GAAG,IAAA,yBAAW,EAAC,MAAM,CAAC,CAAC,CAAC,CAAE,cAAkC,CAAC,CAAC,CAAC,gBAAgB,IAAK,EAAsB,CAAC;IAExH,OAAO,IAAA,qCAA6B,EAAC;QACnC,MAAM;QACN,GAAG,OAAO;QACV,QAAQ,EAAE,IAAA,uBAAS,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAA,eAAO,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;QAC7E,YAAY,EAAE,IAAA,uBAAS,EAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAA,eAAO,EAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;QACzF,gBAAgB,EAAE,IAAA,uBAAS,EAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAA,eAAO,EAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS;QACrG,gBAAgB,EAAE,IAAA,uBAAS,EAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAA,eAAO,EAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS;KACtG,CAAC,CAAC;AACL,CAAC;AAZD,4BAYC"}
@@ -1,11 +1,11 @@
1
1
  import type { OneOrMany } from "../../types";
2
- import type { MaybeDeferredValueTypes, ObjectSchema, SchemaArrayConstraint, SchemaFactoryFunction, SchemaValueCoercer, SchemaValueConstraint, SchemaValueTransformer, ValueSchema, ValueType } from '../types';
2
+ import type { Schema } from '../schema';
3
+ import type { ObjectSchema, SchemaArrayConstraint, SchemaFactoryFunction, SchemaValueCoercer, SchemaValueConstraint, SchemaValueTransformer, ValueSchema } from '../types';
3
4
  export declare type SchemaTypeReflectionData = Partial<Pick<ObjectSchema, 'mask' | 'allowUnknownProperties'>> & {
4
5
  factory?: SchemaFactoryFunction<any>;
5
6
  };
6
- export declare type TypesProvider = () => OneOrMany<ValueType>;
7
7
  export declare type SchemaPropertyReflectionData = {
8
- type?: MaybeDeferredValueTypes;
8
+ type?: OneOrMany<Schema>;
9
9
  array?: boolean;
10
10
  optional?: boolean;
11
11
  nullable?: boolean;
@@ -1,9 +1,10 @@
1
1
  import type { Decorator } from "../../reflection";
2
2
  import type { OneOrMany } from "../../types";
3
- import type { SchemaArrayConstraint, SchemaValueCoercer, SchemaValueConstraint, SchemaValueTransformer, ValueType } from '../types';
3
+ import type { Schema } from '../schema';
4
+ import type { SchemaArrayConstraint, SchemaValueCoercer, SchemaValueConstraint, SchemaValueTransformer } from '../types';
4
5
  import type { PropertyOptions } from './types';
5
6
  export declare function createSchemaPropertyDecorator(options: PropertyOptions): Decorator<'property' | 'accessor'>;
6
- export declare function createSchemaPropertyDecoratorFromValueType(valueType: ValueType): Decorator<'property' | 'accessor'>;
7
+ export declare function createSchemaPropertyDecoratorFromSchema(schema: Schema): Decorator<'property' | 'accessor'>;
7
8
  export declare function createSchemaValueCoercerDecorator(coercer: SchemaValueCoercer, options?: PropertyOptions): Decorator<'property' | 'accessor'>;
8
9
  export declare function createSchemaValueTransformerDecorator(transformer: SchemaValueTransformer, options?: PropertyOptions): Decorator<'property' | 'accessor'>;
9
10
  export declare function createSchemaArrayConstraintDecorator(constraint: SchemaArrayConstraint, options?: PropertyOptions): Decorator<'property' | 'accessor'>;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /* eslint-disable @typescript-eslint/naming-convention */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.createSchemaValueConstraintDecorator = exports.createSchemaArrayConstraintDecorator = exports.createSchemaValueTransformerDecorator = exports.createSchemaValueCoercerDecorator = exports.createSchemaPropertyDecoratorFromValueType = exports.createSchemaPropertyDecorator = void 0;
4
+ exports.createSchemaValueConstraintDecorator = exports.createSchemaArrayConstraintDecorator = exports.createSchemaValueTransformerDecorator = exports.createSchemaValueCoercerDecorator = exports.createSchemaPropertyDecoratorFromSchema = exports.createSchemaPropertyDecorator = void 0;
5
5
  const reflection_1 = require("../../reflection");
6
6
  const array_1 = require("../../utils/array/array");
7
7
  const merge_1 = require("../../utils/merge");
@@ -24,14 +24,10 @@ function createSchemaPropertyDecorator(options) {
24
24
  });
25
25
  }
26
26
  exports.createSchemaPropertyDecorator = createSchemaPropertyDecorator;
27
- function createSchemaPropertyDecoratorFromValueType(valueType) {
28
- const schema = (0, types_1.isValueSchema)(valueType) ? valueType : (0, types_1.valueSchema)({ type: valueType });
29
- return createSchemaPropertyDecorator({
30
- ...schema,
31
- type: schema.type
32
- });
27
+ function createSchemaPropertyDecoratorFromSchema(schema) {
28
+ return createSchemaPropertyDecorator((0, types_1.isValueSchema)(schema) ? schema : (0, types_1.valueSchema)(schema));
33
29
  }
34
- exports.createSchemaPropertyDecoratorFromValueType = createSchemaPropertyDecoratorFromValueType;
30
+ exports.createSchemaPropertyDecoratorFromSchema = createSchemaPropertyDecoratorFromSchema;
35
31
  function createSchemaValueCoercerDecorator(coercer, options) {
36
32
  return createSchemaPropertyDecorator({ ...options, coercers: coercer });
37
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../source/schema/decorators/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../source/schema/decorators/utils.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,20 @@
1
1
  import { JsonPath } from "../json-path";
2
- import type { Type } from "../types";
3
- import type { ObjectSchema, SchemaTestOptions, SchemaTestResult, SchemaValueCoercer, ValueSchema } from './types';
4
- export declare type Schema<T = any> = ObjectSchema<T> | ValueSchema<T>;
2
+ import type { AbstractConstructor } from "../types";
3
+ import type { NormalizedObjectSchema, NormalizedTypeSchema, NormalizedValueSchema, ObjectSchema, SchemaTestOptions, SchemaTestResult, SchemaValueCoercer, TypeSchema, ValueSchema, ValueType } from './types';
4
+ export declare type Schema<T = any, O = T> = ObjectSchema<T, O> | ValueSchema<T, O> | TypeSchema<O>;
5
+ export declare type SchemaTestable<T = any, O = T> = Schema<T, O> | ValueType<O>;
6
+ export declare type NormalizedSchema<T = any, O = T> = NormalizedObjectSchema<T, O> | NormalizedValueSchema<T, O> | NormalizedTypeSchema<O>;
5
7
  export declare const getSchemaFromReflection: typeof _getObjectSchemaFromReflection;
6
- export declare type SchemaTestable<T = any> = Schema<T> | Type<T>;
7
8
  export declare const Schema: {
8
9
  registerDefaultCoercer(coercer: SchemaValueCoercer): void;
9
- test<T>(schema: SchemaTestable<T>, value: unknown, options?: SchemaTestOptions, path?: JsonPath): SchemaTestResult<T>;
10
- validate<T_1>(schema: SchemaTestable<T_1>, value: unknown, options?: SchemaTestOptions): boolean;
11
- parse<T_2>(schema: SchemaTestable<T_2>, value: unknown, options?: SchemaTestOptions): T_2;
10
+ test<T, O>(schemaOrValueType: SchemaTestable<T, O>, value: unknown, options?: SchemaTestOptions, path?: JsonPath): SchemaTestResult<O>;
11
+ validate<T_1, O_1 = T_1>(schemaOrValueType: SchemaTestable<T_1, O_1>, value: unknown, options?: SchemaTestOptions): boolean;
12
+ parse<T_2, O_2 = T_2>(schemaOrValueType: SchemaTestable<T_2, O_2>, value: unknown, options?: SchemaTestOptions): O_2;
12
13
  /**
13
14
  * disables stack traces for errors
14
15
  * @deprecated for internal use only
15
16
  */
16
- testWithFastError<T_3>(schema: SchemaTestable<T_3>, value: unknown, options?: SchemaTestOptions, path?: JsonPath): SchemaTestResult<T_3>;
17
+ testWithFastError<T_3, O_3 = T_3>(schema: Schema<T_3, O_3>, value: unknown, options?: SchemaTestOptions, path?: JsonPath): SchemaTestResult<O_3>;
17
18
  };
18
- declare function _getObjectSchemaFromReflection<T>(type: Type<T>): ObjectSchema<T> | null;
19
+ declare function _getObjectSchemaFromReflection<T>(type: AbstractConstructor<T>): ObjectSchema<T> | null;
19
20
  export {};
package/schema/schema.js CHANGED
@@ -39,20 +39,23 @@ exports.Schema = {
39
39
  defaultCoercers.get(sourceType).push(coercer);
40
40
  }
41
41
  },
42
- test(schema, value, options, path = json_path_1.JsonPath.ROOT) {
42
+ test(schemaOrValueType, value, options, path = json_path_1.JsonPath.ROOT) {
43
+ const schema = (0, types_1.valueTypeOrSchemaToSchema)(schemaOrValueType);
43
44
  const result = this.testWithFastError(schema, value, options, path);
44
- if (result.success) {
45
+ if (result.valid) {
45
46
  return result;
46
47
  }
47
- return { success: false, error: new schema_error_1.SchemaError(result.error.message, { ...result.error, fast: false }, result.error.cause) };
48
+ return { valid: false, error: new schema_error_1.SchemaError(result.error.message, { ...result.error, fast: false }, result.error.cause) };
48
49
  },
49
- validate(schema, value, options) {
50
+ validate(schemaOrValueType, value, options) {
51
+ const schema = (0, types_1.valueTypeOrSchemaToSchema)(schemaOrValueType);
50
52
  const result = this.test(schema, value, options);
51
- return result.success;
53
+ return result.valid;
52
54
  },
53
- parse(schema, value, options) {
55
+ parse(schemaOrValueType, value, options) {
56
+ const schema = (0, types_1.valueTypeOrSchemaToSchema)(schemaOrValueType);
54
57
  const result = this.test(schema, value, options);
55
- if (result.success) {
58
+ if (result.valid) {
56
59
  return result.value;
57
60
  }
58
61
  throw result.error;
@@ -63,37 +66,51 @@ exports.Schema = {
63
66
  */
64
67
  testWithFastError(schema, value, options, path = json_path_1.JsonPath.ROOT) {
65
68
  initialize();
66
- if ((0, type_guards_1.isFunction)(schema) || (0, types_1.isObjectSchema)(schema)) {
67
- return testObject(schema, value, options, path);
69
+ if ((0, types_1.isValueSchema)(schema)) {
70
+ return testValue(schema, value, options, path);
68
71
  }
69
- return testValue(schema, value, options, path);
72
+ if ((0, types_1.isTypeSchema)(schema)) {
73
+ return testType(schema, value, options, path);
74
+ }
75
+ return testObject(schema, value, options, path);
70
76
  }
71
77
  };
72
- // eslint-disable-next-line complexity
73
- function testObject(schemaOrType, value, options = {}, path = json_path_1.JsonPath.ROOT) {
74
- if ((0, type_guards_1.isFunction)(schemaOrType) && (value instanceof schemaOrType)) {
75
- return { success: true, value: value };
78
+ function testType(schema, value, options = {}, path = json_path_1.JsonPath.ROOT) {
79
+ const resolvedValueType = (0, types_1.resolveValueType)(schema.type);
80
+ if (resolvedValueType == 'any') {
81
+ return { valid: true, value: value };
82
+ }
83
+ else if ((0, type_guards_1.isFunction)(resolvedValueType)) {
84
+ if (value instanceof resolvedValueType) {
85
+ return { valid: true, value };
86
+ }
87
+ const objectSchema = (0, exports.getSchemaFromReflection)(resolvedValueType);
88
+ if ((0, type_guards_1.isNotNull)(objectSchema)) {
89
+ return testObject(objectSchema, value, options, path);
90
+ }
76
91
  }
77
- if (!(value instanceof Object) && !(0, type_guards_1.isObject)(value)) {
78
- const expected = (0, type_guards_1.isFunction)(schemaOrType) ? schemaOrType : Object;
79
- return { success: false, error: schema_error_1.SchemaError.expectedButGot(expected, (0, utils_1.getValueType)(value), path) };
92
+ else if ((resolvedValueType == 'null' && (0, type_guards_1.isNull)(value)) || (resolvedValueType == 'undefined' && (0, type_guards_1.isUndefined)(value)) || (resolvedValueType == 'any')) {
93
+ return { valid: true, value: value };
80
94
  }
81
- const unnormalizedSchema = (0, type_guards_1.isFunction)(schemaOrType) ? (0, exports.getSchemaFromReflection)(schemaOrType) : schemaOrType;
82
- if ((0, type_guards_1.isNull)(unnormalizedSchema)) {
83
- return { success: false, error: schema_error_1.SchemaError.expectedButGot(schemaOrType, (0, utils_1.getValueType)(value), path) };
95
+ return { valid: false, error: schema_error_1.SchemaError.expectedButGot(resolvedValueType, (0, utils_1.getValueType)(value), path) };
96
+ }
97
+ // eslint-disable-next-line complexity
98
+ function testObject(objectSchema, value, options = {}, path = json_path_1.JsonPath.ROOT) {
99
+ if (!(value instanceof Object)) {
100
+ return { valid: false, error: schema_error_1.SchemaError.expectedButGot(objectSchema.sourceType ?? 'object', (0, utils_1.getValueType)(value), path) };
84
101
  }
85
- const schema = (0, utils_1.normalizeSchema)(unnormalizedSchema);
102
+ const schema = (0, utils_1.normalizeObjectSchema)(objectSchema);
86
103
  const mask = schema.mask ?? options.mask ?? false;
87
104
  const resultValue = (0, type_guards_1.isDefined)(schema.factory?.type) ? new schema.factory.type() : {};
88
105
  const schemaPropertyKeys = (0, object_1.objectKeys)(schema.properties);
89
106
  const valuePropertyKeys = (0, object_1.objectKeys)(value);
90
107
  const unknownValuePropertyKeys = (0, set_1.differenceSets)(new Set(valuePropertyKeys), new Set(schemaPropertyKeys));
91
108
  if ((unknownValuePropertyKeys.length > 0) && !(mask || (schema.allowUnknownProperties.size > 0))) {
92
- return { success: false, error: new schema_error_1.SchemaError('Unknown property', { path: path.add(unknownValuePropertyKeys[0]) }) };
109
+ return { valid: false, error: new schema_error_1.SchemaError('Unknown property', { path: path.add(unknownValuePropertyKeys[0]) }) };
93
110
  }
94
111
  for (const key of schemaPropertyKeys) {
95
112
  const propertyResult = exports.Schema.testWithFastError(schema.properties[key], value[key], options, path.add(key));
96
- if (!propertyResult.success) {
113
+ if (!propertyResult.valid) {
97
114
  return propertyResult;
98
115
  }
99
116
  resultValue[key] = propertyResult.value;
@@ -103,7 +120,7 @@ function testObject(schemaOrType, value, options = {}, path = json_path_1.JsonPa
103
120
  const errors = [];
104
121
  for (const allowedSchema of schema.allowUnknownProperties) {
105
122
  const propertyResult = exports.Schema.testWithFastError(allowedSchema, value[key], options, path.add(key));
106
- if (!propertyResult.success && !mask) {
123
+ if (!propertyResult.valid && !mask) {
107
124
  errors.push(propertyResult.error);
108
125
  continue;
109
126
  }
@@ -111,21 +128,21 @@ function testObject(schemaOrType, value, options = {}, path = json_path_1.JsonPa
111
128
  break;
112
129
  }
113
130
  if (errors.length > 0) {
114
- return { success: false, error: (errors.length == 1) ? errors[0] : new schema_error_1.SchemaError('Value did not match any allowed schemas.', { inner: errors, path }) };
131
+ return { valid: false, error: (errors.length == 1) ? errors[0] : new schema_error_1.SchemaError('Value did not match any allowed schemas.', { inner: errors, path }) };
115
132
  }
116
133
  }
117
134
  }
118
135
  const testResultValue = (0, type_guards_1.isUndefined)(schema.factory) ? resultValue : (0, type_guards_1.isDefined)(schema.factory.type) ? resultValue : schema.factory.builder(resultValue);
119
- return { success: true, value: testResultValue };
136
+ return { valid: true, value: testResultValue };
120
137
  }
121
138
  // eslint-disable-next-line max-lines-per-function, max-statements, complexity
122
139
  function testValue(schema, value, options = {}, path = json_path_1.JsonPath.ROOT) {
123
140
  const valueSchema = (0, utils_1.normalizeValueSchema)(schema);
124
141
  if (valueSchema.optional && (0, type_guards_1.isUndefined)(value)) {
125
- return { success: true, value: value };
142
+ return { valid: true, value: value };
126
143
  }
127
144
  if (valueSchema.nullable && (0, type_guards_1.isNull)(value)) {
128
- return { success: true, value: value };
145
+ return { valid: true, value: value };
129
146
  }
130
147
  const context = {
131
148
  schema: valueSchema,
@@ -138,116 +155,94 @@ function testValue(schema, value, options = {}, path = json_path_1.JsonPath.ROOT
138
155
  }
139
156
  for (const arrayConstraint of valueSchema.arrayConstraints) {
140
157
  const result = arrayConstraint.validate(value, path, context);
141
- if (!result.success) {
142
- return { success: false, error: result.error };
158
+ if (!result.valid) {
159
+ return { valid: false, error: result.error };
143
160
  }
144
161
  }
145
162
  const itemSchema = (0, utils_1.getArrayItemSchema)(schema);
146
163
  const validatedItems = [];
147
164
  for (let i = 0; i < value.length; i++) {
148
165
  const result = testValue(itemSchema, value[i], options, path.add(i));
149
- if (!result.success) {
166
+ if (!result.valid) {
150
167
  return result;
151
168
  }
152
169
  validatedItems.push(result.value);
153
170
  }
154
- return { success: true, value: validatedItems };
155
- }
156
- let valueType = (0, utils_1.getValueType)(value);
157
- let validType = isValidType(valueSchema, valueType);
158
- let resultValue = value;
159
- /** try to coerce with custom coercers */
160
- if (!validType) {
161
- const coercers = valueSchema.coercers.get(valueType);
162
- if ((0, type_guards_1.isDefined)(coercers)) {
163
- const errors = [];
164
- for (const coercer of coercers) {
165
- const coerceResult = coercer.coerce(resultValue, path, context);
166
- if (!coerceResult.success) {
167
- errors.push(coerceResult.error);
168
- continue;
169
- }
170
- resultValue = coerceResult.value;
171
- valueType = (0, utils_1.getValueType)(resultValue);
172
- validType = isValidType(valueSchema, valueType);
173
- break;
174
- }
175
- if ((errors.length > 0)) {
176
- return { success: false, error: (errors.length == 1) ? errors[0] : new schema_error_1.SchemaError('Value could not be coerced.', { inner: errors, path }) };
177
- }
178
- }
171
+ return { valid: true, value: validatedItems };
179
172
  }
180
- /** try to coerce with default coercers if enabled */
181
- if (!validType && (valueSchema.coerce || options.coerce == true)) {
182
- const coercers = defaultCoercers.get(valueType);
183
- if ((0, type_guards_1.isDefined)(coercers)) {
184
- const errors = [];
185
- for (const coercer of coercers) {
186
- const coerceResult = coercer.coerce(resultValue, path, context);
187
- if (!coerceResult.success) {
188
- errors.push(coerceResult.error);
189
- continue;
190
- }
191
- resultValue = coerceResult.value;
192
- valueType = (0, utils_1.getValueType)(resultValue);
193
- validType = isValidType(valueSchema, valueType);
194
- break;
195
- }
196
- if ((errors.length > 0)) {
197
- return { success: false, error: (errors.length == 1) ? errors[0] : new schema_error_1.SchemaError('Value could not be coerced.', { inner: errors, path }) };
198
- }
199
- }
173
+ let valueType;
174
+ let valueTestResult;
175
+ let resultValue;
176
+ function updateCurrentState(newValue) {
177
+ resultValue = newValue;
178
+ valueType = (0, utils_1.getValueType)(newValue);
179
+ valueTestResult = isValidValue(valueSchema.schema, newValue, options, path);
200
180
  }
201
- /** check for sub-schemas */
202
- if (!validType) {
181
+ updateCurrentState(value);
182
+ /** try to coerce */
183
+ if (!valueTestResult.valid) {
184
+ const coercers = [
185
+ ...(valueSchema.coercers.get(valueType) ?? []),
186
+ ...((valueSchema.coerce || options.coerce == true) ? (defaultCoercers.get(valueType) ?? []) : [])
187
+ ];
203
188
  const errors = [];
204
- for (const type of valueSchema.type) {
205
- if (types_1.primitiveValueTypesSet.has(type)) {
206
- continue;
207
- }
208
- const result = exports.Schema.testWithFastError(type, resultValue, options, path);
209
- if (!result.success) {
210
- errors.push(result.error);
189
+ for (const coercer of coercers) {
190
+ const coerceResult = coercer.coerce(resultValue, path, context);
191
+ if (!coerceResult.success) {
192
+ errors.push(coerceResult.error);
211
193
  continue;
212
194
  }
213
- resultValue = result.value;
214
- validType = true;
195
+ updateCurrentState(coerceResult.value);
215
196
  break;
216
197
  }
217
- if (!validType && (errors.length > 0)) {
218
- return { success: false, error: (errors.length == 1) ? errors[0] : new schema_error_1.SchemaError('Value did not match any allowed schemas.', { inner: errors, path }) };
198
+ if (errors.length > 0) {
199
+ return { valid: false, error: (errors.length == 1) ? errors[0] : new schema_error_1.SchemaError('Value could not be coerced.', { inner: errors, path }) };
219
200
  }
220
201
  }
221
- if (!validType) {
222
- const expectedNames = [...valueSchema.type].map((exp) => ((0, type_guards_1.isString)(exp) ? exp : (0, utils_1.getValueTypeName)(exp)));
223
- const expectedTypeString = expectedNames.length == 1
202
+ if (!valueTestResult.valid) {
203
+ const expectedNames = (0, utils_1.getSchemaTypeNames)(schema);
204
+ const expectedTypeString = (expectedNames.length == 1)
224
205
  ? expectedNames[0]
225
206
  : `[${expectedNames.join(', ')}]`;
226
207
  const expects = valueSchema.valueConstraints.map((constraint) => constraint.expects);
227
- const expectsString = expects.length > 0 ? ` (${expects.join(', ')})` : '';
228
- return { success: false, error: schema_error_1.SchemaError.expectedButGot(`${expectedTypeString}${expectsString}`, (0, utils_1.getValueType)(resultValue), path) };
208
+ const expectsString = (expects.length > 0) ? ` (${expects.join(', ')})` : '';
209
+ return { valid: false, error: schema_error_1.SchemaError.expectedButGot(`${expectedTypeString}${expectsString}`, valueType, path) };
229
210
  }
230
211
  if (valueSchema.transformers.length > 0) {
212
+ let transformedValue = resultValue;
231
213
  for (const transformer of valueSchema.transformers) {
232
- resultValue = transformer.transform(resultValue, path, context);
214
+ transformedValue = transformer.transform(transformedValue, path, context);
233
215
  }
234
- valueType = (0, utils_1.getValueType)(resultValue);
235
- validType = isValidType(valueSchema, valueType);
236
- if (!validType) {
237
- const typeString = (0, type_guards_1.isFunction)(valueType) ? valueType.name : valueType;
216
+ updateCurrentState(transformedValue);
217
+ if (!valueTestResult.valid) { // eslint-disable-line @typescript-eslint/no-unnecessary-condition
218
+ const typeString = (0, utils_1.getValueTypeName)(valueType);
238
219
  throw new Error(`Transformers resulted in invalid type (${typeString}).`);
239
220
  }
240
221
  }
241
- for (const constraint of valueSchema.valueConstraints) {
242
- const result = constraint.validate(resultValue, path, context);
243
- if (!result.success) {
244
- return { success: false, error: result.error };
222
+ {
223
+ const errors = [];
224
+ for (const constraint of valueSchema.valueConstraints) {
225
+ const result = constraint.validate(resultValue, path, context);
226
+ if (!result.valid) {
227
+ errors.push(result.error);
228
+ }
229
+ }
230
+ if (errors.length > 0) {
231
+ return { valid: false, error: (errors.length == 1) ? errors[0] : new schema_error_1.SchemaError('Value did not match schema.', { path, fast: true, inner: errors }) };
245
232
  }
246
233
  }
247
- return { success: true, value: resultValue };
234
+ return { valid: true, value: resultValue };
248
235
  }
249
- function isValidType(valueSchema, valueType) {
250
- return valueSchema.type.has(valueType) || valueSchema.type.has('any');
236
+ function isValidValue(validSchemas, value, options, path) {
237
+ const errors = [];
238
+ for (const schema of validSchemas) {
239
+ const result = exports.Schema.testWithFastError(schema, value, options, path);
240
+ if (result.valid) {
241
+ return result;
242
+ }
243
+ errors.push(result.error);
244
+ }
245
+ return { valid: false, error: (errors.length == 1) ? errors[0] : new schema_error_1.SchemaError('Value did not match schema.', { path, fast: true, inner: errors }) };
251
246
  }
252
247
  function _getObjectSchemaFromReflection(type) {
253
248
  const metadata = reflection_1.reflectionRegistry.getMetadata(type);
@@ -258,13 +253,13 @@ function _getObjectSchemaFromReflection(type) {
258
253
  const properties = {};
259
254
  for (const [key, propertyMetadata] of metadata.properties) {
260
255
  const reflectionData = propertyMetadata.data.tryGet('schema');
261
- const itemType = (0, type_guards_1.isDefined)(reflectionData?.type) ? (0, utils_1.maybeDeferredValueTypesToValueTypes)(reflectionData.type) : undefined;
262
- const array = ((propertyMetadata.type == Array) && (itemType != Array)) || (reflectionData?.array == true);
256
+ const itemType = ((0, type_guards_1.isDefined)(reflectionData) && (0, type_guards_1.isDefined)(reflectionData.type)) ? reflectionData.type : undefined;
257
+ const array = reflectionData?.array == true;
263
258
  if (array && ((0, type_guards_1.isUndefined)(itemType) || ((0, type_guards_1.isArray)(itemType) && (itemType.length == 0)))) {
264
259
  throw new Error(`Item type missing on type ${type.name} at property "${String(key)}"`);
265
260
  }
266
261
  properties[key] = {
267
- type: itemType ?? propertyMetadata.type,
262
+ schema: (0, types_1.valueTypesOrSchemasToSchemas)(itemType ?? propertyMetadata.type),
268
263
  array,
269
264
  optional: reflectionData?.optional,
270
265
  nullable: reflectionData?.nullable,
@@ -276,7 +271,8 @@ function _getObjectSchemaFromReflection(type) {
276
271
  };
277
272
  }
278
273
  const objectSchema = {
279
- factory: (0, type_guards_1.isDefined)(typeData?.factory) ? { builder: typeData.factory } : { type },
274
+ sourceType: type,
275
+ factory: (0, type_guards_1.isDefined)(typeData?.factory) ? { builder: typeData.factory } : { type: type },
280
276
  properties,
281
277
  mask: typeData?.mask,
282
278
  allowUnknownProperties: typeData?.allowUnknownProperties
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../source/schema/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../source/schema/schema.ts"],"names":[],"mappings":";;;AAAA,4CAAuC;AACvC,8CAAkD;AAElD,gDAA8C;AAC9C,gDAAiD;AACjD,wCAAoC;AACpC,mDAAmD;AACnD,sCAA6C;AAC7C,sDAAqG;AACrG,gEAA4D;AAC5D,0DAAsD;AACtD,8DAA0D;AAC1D,8DAA0D;AAC1D,8DAA0D;AAC1D,wEAAmE;AAEnE,iDAA6C;AAE7C,mCAAiI;AACjI,mCAA8I;AAMjI,QAAA,uBAAuB,GAAG,IAAA,wBAAa,EAAC,8BAA8B,CAAC,CAAC;AAErF,MAAM,eAAe,GAAG,IAAI,GAAG,EAAmC,CAAC;AAEnE,IAAI,UAAU,GAAG,GAAS,EAAE;IAC1B,cAAM,CAAC,sBAAsB,CAAC,8BAAa,CAAC,CAAC;IAC7C,cAAM,CAAC,sBAAsB,CAAC,8BAAa,CAAC,CAAC;IAC7C,cAAM,CAAC,sBAAsB,CAAC,gCAAc,CAAC,CAAC;IAC9C,cAAM,CAAC,sBAAsB,CAAC,0BAAW,CAAC,CAAC;IAC3C,cAAM,CAAC,sBAAsB,CAAC,8BAAa,CAAC,CAAC;IAC7C,cAAM,CAAC,sBAAsB,CAAC,uCAAiB,CAAC,CAAC;IAEjD,UAAU,GAAG,WAAI,CAAC;AACpB,CAAC,CAAC;AAEF,iGAAiG;AACpF,QAAA,MAAM,GAAG;IACpB,sBAAsB,CAAC,OAA2B;QAChD,KAAK,MAAM,UAAU,IAAI,IAAA,eAAO,EAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACpD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;gBACpC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;aACrC;YAED,eAAe,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAChD;IACH,CAAC;IAED,IAAI,CAAO,iBAAuC,EAAE,KAAc,EAAE,OAA2B,EAAE,OAAiB,oBAAQ,CAAC,IAAI;QAC7H,MAAM,MAAM,GAAG,IAAA,iCAAyB,EAAC,iBAAiB,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAEpE,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,OAAO,MAAM,CAAC;SACf;QAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,0BAAW,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;IAC9H,CAAC;IAED,QAAQ,CAAW,iBAAuC,EAAE,KAAc,EAAE,OAA2B;QACrG,MAAM,MAAM,GAAG,IAAA,iCAAyB,EAAC,iBAAiB,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAEjD,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,KAAK,CAAW,iBAAuC,EAAE,KAAc,EAAE,OAA2B;QAClG,MAAM,MAAM,GAAG,IAAA,iCAAyB,EAAC,iBAAiB,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAEjD,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,OAAO,MAAM,CAAC,KAAK,CAAC;SACrB;QAED,MAAM,MAAM,CAAC,KAAK,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAW,MAAoB,EAAE,KAAc,EAAE,OAA2B,EAAE,OAAiB,oBAAQ,CAAC,IAAI;QAC3H,UAAU,EAAE,CAAC;QAEb,IAAI,IAAA,qBAAa,EAAC,MAAM,CAAC,EAAE;YACzB,OAAO,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SAChD;QAED,IAAI,IAAA,oBAAY,EAAC,MAAM,CAAC,EAAE;YACxB,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SAC/C;QAED,OAAO,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;CACF,CAAC;AAEF,SAAS,QAAQ,CAAI,MAAqB,EAAE,KAAc,EAAE,UAA6B,EAAE,EAAE,OAAiB,oBAAQ,CAAC,IAAI;IACzH,MAAM,iBAAiB,GAAG,IAAA,wBAAgB,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAExD,IAAI,iBAAiB,IAAI,KAAK,EAAE;QAC9B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAU,EAAE,CAAC;KAC3C;SACI,IAAI,IAAA,wBAAU,EAAC,iBAAiB,CAAC,EAAE;QACtC,IAAI,KAAK,YAAY,iBAAiB,EAAE;YACtC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;SAC/B;QAED,MAAM,YAAY,GAAG,IAAA,+BAAuB,EAAC,iBAAiB,CAAC,CAAC;QAEhE,IAAI,IAAA,uBAAS,EAAC,YAAY,CAAC,EAAE;YAC3B,OAAO,UAAU,CAAI,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SAC1D;KACF;SACI,IAAI,CAAC,iBAAiB,IAAI,MAAM,IAAI,IAAA,oBAAM,EAAC,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,WAAW,IAAI,IAAA,yBAAW,EAAC,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,KAAK,CAAC,EAAE;QACnJ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAU,EAAE,CAAC;KAC3C;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,0BAAW,CAAC,cAAc,CAAC,iBAAiB,EAAE,IAAA,oBAAY,EAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;AAC3G,CAAC;AAED,sCAAsC;AACtC,SAAS,UAAU,CAA0B,YAAgC,EAAE,KAAc,EAAE,UAA6B,EAAE,EAAE,OAAiB,oBAAQ,CAAC,IAAI;IAC5J,IAAI,CAAC,CAAC,KAAK,YAAY,MAAM,CAAC,EAAE;QAC9B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,0BAAW,CAAC,cAAc,CAAC,YAAY,CAAC,UAAU,IAAI,QAAQ,EAAE,IAAA,oBAAY,EAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;KAC5H;IAED,MAAM,MAAM,GAAG,IAAA,6BAAqB,EAAC,YAA4B,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC;IAClD,MAAM,WAAW,GAAM,IAAA,uBAAS,EAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAY,CAAC;IAEnG,MAAM,kBAAkB,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,iBAAiB,GAAG,IAAA,mBAAU,EAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,wBAAwB,GAAG,IAAA,oBAAc,EAAC,IAAI,GAAG,CAAC,iBAAiB,CAAC,EAAE,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzG,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;QAChG,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,0BAAW,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACvH;IAED,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE;QACpC,MAAM,cAAc,GAAG,cAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,GAAa,CAAE,EAAG,KAAgB,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAEnI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;YACzB,OAAO,cAAc,CAAC;SACvB;QAED,WAAW,CAAC,GAAc,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC;KACpD;IAED,IAAI,MAAM,CAAC,sBAAsB,CAAC,IAAI,GAAG,CAAC,EAAE;QAC1C,KAAK,MAAM,GAAG,IAAI,wBAAwB,EAAE;YAC1C,MAAM,MAAM,GAAkB,EAAE,CAAC;YAEjC,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,sBAAsB,EAAE;gBACzD,MAAM,cAAc,GAAG,cAAM,CAAC,iBAAiB,CAAC,aAAa,EAAG,KAAgB,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAE/G,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE;oBAClC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAClC,SAAS;iBACV;gBAED,WAAW,CAAC,GAAc,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC;gBACnD,MAAM;aACP;YAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,0BAAW,CAAC,0CAA0C,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;aAC1J;SACF;KACF;IAED,MAAM,eAAe,GAAG,IAAA,yBAAW,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAA,uBAAS,EAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAQ,CAAC,WAAW,CAAC,CAAC;IAExJ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;AACjD,CAAC;AAED,8EAA8E;AAC9E,SAAS,SAAS,CAAW,MAAyB,EAAE,KAAc,EAAE,UAA6B,EAAE,EAAE,OAAiB,oBAAQ,CAAC,IAAI;IACrI,MAAM,WAAW,GAAG,IAAA,4BAAoB,EAAC,MAAM,CAAC,CAAC;IAEjD,IAAI,WAAW,CAAC,QAAQ,IAAI,IAAA,yBAAW,EAAC,KAAK,CAAC,EAAE;QAC9C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAqB,EAAE,CAAC;KACtD;IAED,IAAI,WAAW,CAAC,QAAQ,IAAI,IAAA,oBAAM,EAAC,KAAK,CAAC,EAAE;QACzC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAqB,EAAE,CAAC;KACtD;IAED,MAAM,OAAO,GAAkB;QAC7B,MAAM,EAAE,WAAW;QACnB,OAAO;KACR,CAAC;IAEF,oBAAoB;IACpB,IAAI,WAAW,CAAC,KAAK,EAAE;QACrB,IAAI,CAAC,IAAA,qBAAO,EAAC,KAAK,CAAC,EAAE;YACnB,MAAM,0BAAW,CAAC,cAAc,CAAC,KAAK,EAAE,IAAA,oBAAY,EAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;SACpE;QAED,KAAK,MAAM,eAAe,IAAI,WAAW,CAAC,gBAAgB,EAAE;YAC1D,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAE9D,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;gBACjB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;aAC9C;SACF;QAED,MAAM,UAAU,GAAG,IAAA,0BAAkB,EAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,cAAc,GAAG,EAAE,CAAC;QAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAErE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;gBACjB,OAAO,MAAM,CAAC;aACf;YAED,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACnC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,cAA8B,EAAE,CAAC;KAC/D;IAED,IAAI,SAAkC,CAAC;IACvC,IAAI,eAA2C,CAAC;IAChD,IAAI,WAAoB,CAAC;IAEzB,SAAS,kBAAkB,CAAC,QAAiB;QAC3C,WAAW,GAAG,QAAQ,CAAC;QACvB,SAAS,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAC;QACnC,eAAe,GAAG,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;IAED,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE1B,oBAAoB;IACpB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;QAC1B,MAAM,QAAQ,GAAG;YACf,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAC9C,GAAG,CAAC,CAAC,WAAW,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAClG,CAAC;QAEF,MAAM,MAAM,GAAkB,EAAE,CAAC;QAEjC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAEhE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;gBACzB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAChC,SAAS;aACV;YAED,kBAAkB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM;SACP;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,0BAAW,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;SAC7I;KACF;IAED,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;QAC1B,MAAM,aAAa,GAAG,IAAA,0BAAkB,EAAC,MAAM,CAAC,CAAC;QACjD,MAAM,kBAAkB,GAAG,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC;YACpD,CAAC,CAAC,aAAa,CAAC,CAAC,CAAE;YACnB,CAAC,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAEpC,MAAM,OAAO,GAAG,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACrF,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAE7E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,0BAAW,CAAC,cAAc,CAAC,GAAG,kBAAkB,GAAG,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;KACtH;IAED,IAAI,WAAW,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;QACvC,IAAI,gBAAgB,GAAG,WAAW,CAAC;QAEnC,KAAK,MAAM,WAAW,IAAI,WAAW,CAAC,YAAY,EAAE;YAClD,gBAAgB,GAAG,WAAW,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;SAC3E;QAED,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;QAErC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,kEAAkE;YAC9F,MAAM,UAAU,GAAG,IAAA,wBAAgB,EAAC,SAAS,CAAC,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,0CAA0C,UAAU,IAAI,CAAC,CAAC;SAC3E;KACF;IAED;QACE,MAAM,MAAM,GAAkB,EAAE,CAAC;QAEjC,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,gBAAgB,EAAE;YACrD,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAE/D,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;gBACjB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aAC3B;SACF;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,0BAAW,CAAC,6BAA6B,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;SACzJ;KACF;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAgB,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,YAAY,CAAI,YAA8B,EAAE,KAAc,EAAE,OAAsC,EAAE,IAAc;IAC7H,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE;QACjC,MAAM,MAAM,GAAG,cAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAEtE,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,OAAO,MAAM,CAAC;SACf;QAED,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAC3B;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,0BAAW,CAAC,6BAA6B,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAC1J,CAAC;AAED,SAAS,8BAA8B,CAAI,IAA4B;IACrE,MAAM,QAAQ,GAAG,+BAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEtD,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;QACxB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAA2B,QAAQ,CAAC,CAAC;IAE1E,MAAM,UAAU,GAAqC,EAAE,CAAC;IAExD,KAAK,MAAM,CAAC,GAAG,EAAE,gBAAgB,CAAC,IAAI,QAAQ,CAAC,UAAU,EAAE;QACzD,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAwC,QAAQ,CAAC,CAAC;QACrG,MAAM,QAAQ,GAAG,CAAC,IAAA,uBAAS,EAAC,cAAc,CAAC,IAAI,IAAA,uBAAS,EAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACjH,MAAM,KAAK,GAAG,cAAc,EAAE,KAAK,IAAI,IAAI,CAAC;QAE5C,IAAI,KAAK,IAAI,CAAC,IAAA,yBAAW,EAAC,QAAQ,CAAC,IAAI,CAAC,IAAA,qBAAO,EAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YACrF,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,IAAI,iBAAiB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACxF;QAED,UAAU,CAAC,GAAG,CAAC,GAAG;YAChB,MAAM,EAAE,IAAA,oCAA4B,EAAC,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC;YACvE,KAAK;YACL,QAAQ,EAAE,cAAc,EAAE,QAAQ;YAClC,QAAQ,EAAE,cAAc,EAAE,QAAQ;YAClC,MAAM,EAAE,cAAc,EAAE,MAAM;YAC9B,QAAQ,EAAE,cAAc,EAAE,QAAQ;YAClC,YAAY,EAAE,cAAc,EAAE,YAAY;YAC1C,gBAAgB,EAAE,cAAc,EAAE,gBAAgB;YAClD,gBAAgB,EAAE,cAAc,EAAE,gBAAgB;SACnD,CAAC;KACH;IAED,MAAM,YAAY,GAAiB;QACjC,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,IAAA,uBAAS,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAS,CAAC,OAAmC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAY,EAAE;QAC3H,UAAU;QACV,IAAI,EAAE,QAAQ,EAAE,IAAI;QACpB,sBAAsB,EAAE,QAAQ,EAAE,sBAAsB;KACzD,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC"}