typia 5.2.6-dev.20231108 → 5.2.7-dev.20231109

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 (125) hide show
  1. package/lib/factories/ExpressionFactory.js +14 -16
  2. package/lib/factories/ExpressionFactory.js.map +1 -1
  3. package/lib/factories/JsonMetadataFactory.d.ts +1 -1
  4. package/lib/factories/JsonMetadataFactory.js +2 -2
  5. package/lib/factories/JsonMetadataFactory.js.map +1 -1
  6. package/lib/factories/LiteralFactory.js +2 -0
  7. package/lib/factories/LiteralFactory.js.map +1 -1
  8. package/lib/factories/MetadataFactory.d.ts +1 -1
  9. package/lib/factories/MetadataFactory.js +233 -168
  10. package/lib/factories/MetadataFactory.js.map +1 -1
  11. package/lib/factories/NumericRangeFactory.d.ts +2 -2
  12. package/lib/factories/NumericRangeFactory.js +41 -21
  13. package/lib/factories/NumericRangeFactory.js.map +1 -1
  14. package/lib/factories/ProtobufFactory.d.ts +1 -1
  15. package/lib/factories/ProtobufFactory.js +2 -2
  16. package/lib/factories/ProtobufFactory.js.map +1 -1
  17. package/lib/programmers/CheckerProgrammer.js +11 -16
  18. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  19. package/lib/programmers/RandomProgrammer.js +1 -1
  20. package/lib/programmers/RandomProgrammer.js.map +1 -1
  21. package/lib/programmers/http/HttpHeadersProgrammer.js +1 -1
  22. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  23. package/lib/programmers/http/HttpParameterProgrammer.js +1 -1
  24. package/lib/programmers/http/HttpParameterProgrammer.js.map +1 -1
  25. package/lib/programmers/http/HttpQueryProgrammer.js +1 -1
  26. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  27. package/lib/programmers/internal/application_array.js +8 -0
  28. package/lib/programmers/internal/application_array.js.map +1 -1
  29. package/lib/programmers/internal/application_number.js +8 -1
  30. package/lib/programmers/internal/application_number.js.map +1 -1
  31. package/lib/programmers/internal/application_string.js +8 -1
  32. package/lib/programmers/internal/application_string.js.map +1 -1
  33. package/lib/programmers/internal/check_array_length.js +7 -4
  34. package/lib/programmers/internal/check_array_length.js.map +1 -1
  35. package/lib/programmers/internal/check_bigint.js +7 -4
  36. package/lib/programmers/internal/check_bigint.js.map +1 -1
  37. package/lib/programmers/internal/check_number.js +7 -4
  38. package/lib/programmers/internal/check_number.js.map +1 -1
  39. package/lib/programmers/internal/check_string.js.map +1 -1
  40. package/lib/programmers/json/JsonAssertParseProgrammer.js +1 -1
  41. package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
  42. package/lib/programmers/json/JsonIsParseProgrammer.js +1 -1
  43. package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
  44. package/lib/programmers/json/JsonStringifyProgrammer.js +3 -8
  45. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  46. package/lib/programmers/json/JsonValidateParseProgrammer.js +1 -1
  47. package/lib/programmers/json/JsonValidateParseProgrammer.js.map +1 -1
  48. package/lib/programmers/misc/MiscCloneProgrammer.js +19 -24
  49. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  50. package/lib/programmers/misc/MiscLiteralsProgrammer.js +1 -1
  51. package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
  52. package/lib/programmers/misc/MiscPruneProgrammer.js +11 -16
  53. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  54. package/lib/programmers/notations/NotationGeneralProgrammer.js +11 -16
  55. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  56. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +1 -1
  57. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  58. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +38 -42
  59. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  60. package/lib/programmers/protobuf/ProtobufMessageProgrammer.d.ts +1 -1
  61. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +22 -25
  62. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  63. package/lib/schemas/json/IJsonSchema.d.ts +1 -0
  64. package/lib/schemas/metadata/Metadata.js +1 -6
  65. package/lib/schemas/metadata/Metadata.js.map +1 -1
  66. package/lib/schemas/metadata/MetadataAtomic.d.ts +2 -0
  67. package/lib/schemas/metadata/MetadataAtomic.js +15 -0
  68. package/lib/schemas/metadata/MetadataAtomic.js.map +1 -1
  69. package/lib/transformers/features/json/JsonApplicationTransformer.d.ts +1 -1
  70. package/lib/transformers/features/json/JsonApplicationTransformer.js +4 -5
  71. package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
  72. package/lib/transformers/features/misc/MetadataTransformer.d.ts +1 -1
  73. package/lib/transformers/features/misc/MetadataTransformer.js +3 -4
  74. package/lib/transformers/features/misc/MetadataTransformer.js.map +1 -1
  75. package/package.json +2 -2
  76. package/src/Primitive.ts +135 -135
  77. package/src/executable/TypiaSetupWizard.ts +142 -142
  78. package/src/executable/setup/CommandExecutor.ts +8 -8
  79. package/src/factories/ExpressionFactory.ts +12 -13
  80. package/src/factories/JsonMetadataFactory.ts +53 -50
  81. package/src/factories/LiteralFactory.ts +2 -0
  82. package/src/factories/MetadataCollection.ts +282 -282
  83. package/src/factories/MetadataFactory.ts +48 -18
  84. package/src/factories/NumericRangeFactory.ts +56 -17
  85. package/src/factories/ProtobufFactory.ts +5 -2
  86. package/src/factories/internal/metadata/emplace_metadata_object.ts +178 -178
  87. package/src/functional/$stoll.ts +8 -8
  88. package/src/functional/Namespace.ts +168 -168
  89. package/src/programmers/AssertProgrammer.ts +322 -322
  90. package/src/programmers/CheckerProgrammer.ts +16 -17
  91. package/src/programmers/IsProgrammer.ts +258 -258
  92. package/src/programmers/RandomProgrammer.ts +4 -1
  93. package/src/programmers/ValidateProgrammer.ts +350 -350
  94. package/src/programmers/helpers/AtomicPredicator.ts +31 -31
  95. package/src/programmers/http/HttpHeadersProgrammer.ts +4 -1
  96. package/src/programmers/http/HttpParameterProgrammer.ts +4 -1
  97. package/src/programmers/http/HttpQueryProgrammer.ts +4 -1
  98. package/src/programmers/internal/application_array.ts +8 -0
  99. package/src/programmers/internal/application_number.ts +8 -1
  100. package/src/programmers/internal/application_string.ts +8 -1
  101. package/src/programmers/internal/check_array_length.ts +5 -2
  102. package/src/programmers/internal/check_bigint.ts +5 -2
  103. package/src/programmers/internal/check_dynamic_key.ts +178 -178
  104. package/src/programmers/internal/check_dynamic_properties.ts +202 -202
  105. package/src/programmers/internal/check_number.ts +5 -2
  106. package/src/programmers/internal/check_object.ts +62 -62
  107. package/src/programmers/internal/check_string.ts +0 -1
  108. package/src/programmers/json/JsonAssertParseProgrammer.ts +1 -0
  109. package/src/programmers/json/JsonIsParseProgrammer.ts +1 -0
  110. package/src/programmers/json/JsonStringifyProgrammer.ts +959 -960
  111. package/src/programmers/json/JsonValidateParseProgrammer.ts +1 -0
  112. package/src/programmers/misc/MiscCloneProgrammer.ts +787 -786
  113. package/src/programmers/misc/MiscLiteralsProgrammer.ts +4 -1
  114. package/src/programmers/misc/MiscPruneProgrammer.ts +549 -548
  115. package/src/programmers/notations/NotationGeneralProgrammer.ts +717 -716
  116. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +1 -0
  117. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +872 -882
  118. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +21 -21
  119. package/src/schemas/json/IJsonSchema.ts +1 -0
  120. package/src/schemas/metadata/IMetadataTypeTag.ts +7 -0
  121. package/src/schemas/metadata/Metadata.ts +1 -6
  122. package/src/schemas/metadata/MetadataAtomic.ts +17 -0
  123. package/src/transform.ts +35 -35
  124. package/src/transformers/features/json/JsonApplicationTransformer.ts +7 -4
  125. package/src/transformers/features/misc/MetadataTransformer.ts +6 -3
@@ -91,23 +91,21 @@ var ExpressionFactory;
91
91
  return printer.printNode(typescript_1.default.EmitHint.Expression, input, input.getSourceFile());
92
92
  };
93
93
  };
94
- ExpressionFactory.transpile = function (context) {
95
- return function (script) {
96
- return function (input) {
97
- var file = typescript_1.default.createSourceFile("".concat(RandomGenerator_1.RandomGenerator.uuid(), ".ts"), script, typescript_1.default.ScriptTarget.ESNext, true, typescript_1.default.ScriptKind.TS);
98
- var statement = file.statements[0];
99
- if (statement === undefined)
100
- throw new ReferenceError("Error on ExpressionFactory.transpile(): no statement exists.");
101
- else if (!typescript_1.default.isExpressionStatement(statement))
102
- throw new TypeError("Error on ExpressionFactory.transpile(): statement is not an expression statement.");
103
- var visitor = function (node) {
104
- if (typescript_1.default.isIdentifier(node) && node.text === "$input")
105
- return input;
106
- return typescript_1.default.visitEachChild(typescript_1.default.factory.cloneNode(node), visitor, context);
107
- };
108
- return visitor(statement.expression);
94
+ ExpressionFactory.transpile = function (context) { return function (script) {
95
+ var file = typescript_1.default.createSourceFile("".concat(RandomGenerator_1.RandomGenerator.uuid(), ".ts"), script, typescript_1.default.ScriptTarget.ESNext, true, typescript_1.default.ScriptKind.TS);
96
+ var statement = file.statements[0];
97
+ if (statement === undefined)
98
+ throw new ReferenceError("Error on ExpressionFactory.transpile(): no statement exists.");
99
+ else if (!typescript_1.default.isExpressionStatement(statement))
100
+ throw new TypeError("Error on ExpressionFactory.transpile(): statement is not an expression statement.");
101
+ return function (input) {
102
+ var visitor = function (node) {
103
+ if (typescript_1.default.isIdentifier(node) && node.text === "$input")
104
+ return input;
105
+ return typescript_1.default.visitEachChild(typescript_1.default.factory.cloneNode(node), visitor, context);
109
106
  };
107
+ return visitor(statement.expression);
110
108
  };
111
- };
109
+ }; };
112
110
  })(ExpressionFactory || (exports.ExpressionFactory = ExpressionFactory = {}));
113
111
  //# sourceMappingURL=ExpressionFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExpressionFactory.js","sourceRoot":"","sources":["../../src/factories/ExpressionFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExpressionFactory.js","sourceRoot":"","sources":["../../src/factories/ExpressionFactory.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,6 @@ import ts from "typescript";
2
2
  import { Metadata } from "../schemas/metadata/Metadata";
3
3
  import { MetadataCollection } from "./MetadataCollection";
4
4
  export declare namespace JsonMetadataFactory {
5
- const analyze: (method: string) => (checker: ts.TypeChecker) => (type: ts.Type) => [MetadataCollection, Metadata];
5
+ const analyze: (method: string) => (checker: ts.TypeChecker, context?: ts.TransformationContext) => (type: ts.Type) => [MetadataCollection, Metadata];
6
6
  const validate: (meta: Metadata) => string[];
7
7
  }
@@ -19,10 +19,10 @@ var MetadataFactory_1 = require("./MetadataFactory");
19
19
  var JsonMetadataFactory;
20
20
  (function (JsonMetadataFactory) {
21
21
  JsonMetadataFactory.analyze = function (method) {
22
- return function (checker) {
22
+ return function (checker, context) {
23
23
  return function (type) {
24
24
  var collection = new MetadataCollection_1.MetadataCollection();
25
- var result = MetadataFactory_1.MetadataFactory.analyze(checker)({
25
+ var result = MetadataFactory_1.MetadataFactory.analyze(checker, context)({
26
26
  escape: true,
27
27
  constant: true,
28
28
  absorb: true,
@@ -1 +1 @@
1
- {"version":3,"file":"JsonMetadataFactory.js","sourceRoot":"","sources":["../../src/factories/JsonMetadataFactory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAIA,4EAA2E;AAE3E,qEAAoE;AAEpE,2DAA0D;AAC1D,qDAAoD;AAEpD,IAAiB,mBAAmB,CAsCnC;AAtCD,WAAiB,mBAAmB;IACnB,2BAAO,GAChB,UAAC,MAAc;QACf,OAAA,UAAC,OAAuB;YACxB,OAAA,UAAC,IAAa;gBACV,IAAM,UAAU,GAAG,IAAI,uCAAkB,EAAE,CAAC;gBAC5C,IAAM,MAAM,GAAG,iCAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC5C,MAAM,EAAE,IAAI;oBACZ,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,IAAI;oBACZ,QAAQ,8BAAA;iBACX,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrB,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;oBACxB,MAAM,mCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACvD,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;QAXD,CAWC;IAZD,CAYC,CAAC;IAEO,4BAAQ,GAAG,UAAC,IAAc;;QACnC,IAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IACI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAnB,CAAmB,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAnB,CAAmB,CAAC;YAE/C,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACtD,IACI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC;YACf,OAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,UAAU,EAAE,KAAK,KAAK,EAAxB,CAAwB,CAAC;QAArD,CAAqD,CACxD;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,KAAK,EAAnC,CAAmC,CAAC;YAE5D,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACrE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;;YACrE,KAAqB,IAAA,KAAA,SAAA,IAAI,CAAC,OAAO,CAAA,gBAAA;gBAA5B,IAAM,MAAM,WAAA;gBACb,IAAI,mCAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM;oBAC9D,MAAM,CAAC,IAAI,CAAC,gCAAyB,MAAM,WAAQ,CAAC,CAAC;aAAA;;;;;;;;;QAC7D,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC,EAtCgB,mBAAmB,mCAAnB,mBAAmB,QAsCnC"}
1
+ {"version":3,"file":"JsonMetadataFactory.js","sourceRoot":"","sources":["../../src/factories/JsonMetadataFactory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAIA,4EAA2E;AAE3E,qEAAoE;AAEpE,2DAA0D;AAC1D,qDAAoD;AAEpD,IAAiB,mBAAmB,CAyCnC;AAzCD,WAAiB,mBAAmB;IACnB,2BAAO,GAChB,UAAC,MAAc;QACf,OAAA,UAAC,OAAuB,EAAE,OAAkC;YAC5D,OAAA,UAAC,IAAa;gBACV,IAAM,UAAU,GAAG,IAAI,uCAAkB,EAAE,CAAC;gBAC5C,IAAM,MAAM,GAAG,iCAAe,CAAC,OAAO,CAClC,OAAO,EACP,OAAO,CACV,CAAC;oBACE,MAAM,EAAE,IAAI;oBACZ,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,IAAI;oBACZ,QAAQ,8BAAA;iBACX,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrB,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;oBACxB,MAAM,mCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACvD,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;QAdD,CAcC;IAfD,CAeC,CAAC;IAEO,4BAAQ,GAAG,UAAC,IAAc;;QACnC,IAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IACI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAnB,CAAmB,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAnB,CAAmB,CAAC;YAE/C,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACtD,IACI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC;YACf,OAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,UAAU,EAAE,KAAK,KAAK,EAAxB,CAAwB,CAAC;QAArD,CAAqD,CACxD;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,KAAK,EAAnC,CAAmC,CAAC;YAE5D,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACrE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;;YACrE,KAAqB,IAAA,KAAA,SAAA,IAAI,CAAC,OAAO,CAAA,gBAAA;gBAA5B,IAAM,MAAM,WAAA;gBACb,IAAI,mCAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM;oBAC9D,MAAM,CAAC,IAAI,CAAC,gCAAyB,MAAM,WAAQ,CAAC,CAAC;aAAA;;;;;;;;;QAC7D,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC,EAzCgB,mBAAmB,mCAAnB,mBAAmB,QAyCnC"}
@@ -42,6 +42,8 @@ var LiteralFactory;
42
42
  return generate_value(input);
43
43
  else if (typeof input === "bigint")
44
44
  return generate_bigint(input);
45
+ else if (typeof input === "function")
46
+ return typescript_1.default.factory.createIdentifier("undefined");
45
47
  else
46
48
  throw new TypeError("Error on LiteralFactory.generate(): unknown type.");
47
49
  };
@@ -1 +1 @@
1
- {"version":3,"file":"LiteralFactory.js","sourceRoot":"","sources":["../../src/factories/LiteralFactory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,yDAAwD;AACxD,yDAAwD;AAExD,IAAiB,cAAc,CAyC9B;AAzCD,WAAiB,cAAc;IACd,uBAAQ,GAAG,UAAC,KAAU;QAC/B,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,oBAAE,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;aAC9C,IAAI,oBAAE,CAAC,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;aACzC,IAAI,KAAK,YAAY,KAAK;YAAE,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;aACzD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;aAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;aAC7D,IAAI,OAAO,KAAK,KAAK,SAAS;YAAE,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;aAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;aAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;;YAG9D,MAAM,IAAI,SAAS,CACf,mDAAmD,CACtD,CAAC;IACV,CAAC,CAAC;IAEF,IAAM,eAAe,GAAG,UAAC,GAAW;QAChC,OAAA,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CACpC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;aACd,MAAM,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAtB,CAAsB,CAAC;aACzC,GAAG,CAAC,UAAC,EAAY;gBAAZ,KAAA,aAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;YACb,OAAA,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CAC/B,qCAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,EACjC,eAAA,QAAQ,CAAC,KAAK,CAAC,CAClB;QAHD,CAGC,CACJ,EACL,IAAI,CACP;IAVD,CAUC,CAAC;IAEN,IAAM,cAAc,GAAG,UAAC,KAAY;QAChC,OAAA,oBAAE,CAAC,OAAO,CAAC,4BAA4B,CAAC,KAAK,CAAC,GAAG,CAAC,eAAA,QAAQ,CAAC,EAAE,IAAI,CAAC;IAAlE,CAAkE,CAAC;IAEvE,IAAM,cAAc,GAAG,UAAC,KAAgC;QACpD,OAAA,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAA7C,CAA6C,CAAC;IAElD,IAAM,eAAe,GAAG,UAAC,KAAa;QAClC,OAAA,qCAAiB,CAAC,MAAM,CAAC,KAAK,CAAC;IAA/B,CAA+B,CAAC;IAEpC,IAAM,eAAe,GAAG,UAAC,KAAa;QAClC,OAAA,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC;IAArC,CAAqC,CAAC;AAC9C,CAAC,EAzCgB,cAAc,8BAAd,cAAc,QAyC9B"}
1
+ {"version":3,"file":"LiteralFactory.js","sourceRoot":"","sources":["../../src/factories/LiteralFactory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,yDAAwD;AACxD,yDAAwD;AAExD,IAAiB,cAAc,CA2C9B;AA3CD,WAAiB,cAAc;IACd,uBAAQ,GAAG,UAAC,KAAU;QAC/B,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,oBAAE,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;aAC9C,IAAI,oBAAE,CAAC,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;aACzC,IAAI,KAAK,YAAY,KAAK;YAAE,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;aACzD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;aAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;aAC7D,IAAI,OAAO,KAAK,KAAK,SAAS;YAAE,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;aAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;aAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;aAE7D,IAAI,OAAO,KAAK,KAAK,UAAU;YAChC,OAAO,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;;YAEhD,MAAM,IAAI,SAAS,CACf,mDAAmD,CACtD,CAAC;IACV,CAAC,CAAC;IAEF,IAAM,eAAe,GAAG,UAAC,GAAW;QAChC,OAAA,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CACpC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;aACd,MAAM,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAtB,CAAsB,CAAC;aACzC,GAAG,CAAC,UAAC,EAAY;gBAAZ,KAAA,aAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;YACb,OAAA,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CAC/B,qCAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,EACjC,eAAA,QAAQ,CAAC,KAAK,CAAC,CAClB;QAHD,CAGC,CACJ,EACL,IAAI,CACP;IAVD,CAUC,CAAC;IAEN,IAAM,cAAc,GAAG,UAAC,KAAY;QAChC,OAAA,oBAAE,CAAC,OAAO,CAAC,4BAA4B,CAAC,KAAK,CAAC,GAAG,CAAC,eAAA,QAAQ,CAAC,EAAE,IAAI,CAAC;IAAlE,CAAkE,CAAC;IAEvE,IAAM,cAAc,GAAG,UAAC,KAAgC;QACpD,OAAA,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAA7C,CAA6C,CAAC;IAElD,IAAM,eAAe,GAAG,UAAC,KAAa;QAClC,OAAA,qCAAiB,CAAC,MAAM,CAAC,KAAK,CAAC;IAA/B,CAA+B,CAAC;IAEpC,IAAM,eAAe,GAAG,UAAC,KAAa;QAClC,OAAA,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC;IAArC,CAAqC,CAAC;AAC9C,CAAC,EA3CgB,cAAc,8BAAd,cAAc,QA2C9B"}
@@ -28,5 +28,5 @@ export declare namespace MetadataFactory {
28
28
  explore: IExplore;
29
29
  messages: string[];
30
30
  }
31
- const analyze: (checker: ts.TypeChecker) => (options: IOptions) => (collection: MetadataCollection) => (type: ts.Type | null) => ValidationPipe<Metadata, IError>;
31
+ const analyze: (checker: ts.TypeChecker, context?: ts.TransformationContext) => (options: IOptions) => (collection: MetadataCollection) => (type: ts.Type | null) => ValidationPipe<Metadata, IError>;
32
32
  }
@@ -46,15 +46,20 @@ var __values = (this && this.__values) || function(o) {
46
46
  };
47
47
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
48
48
  };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
49
52
  Object.defineProperty(exports, "__esModule", { value: true });
50
53
  exports.MetadataFactory = void 0;
54
+ var typescript_1 = __importDefault(require("typescript"));
51
55
  var Metadata_1 = require("../schemas/metadata/Metadata");
52
56
  var explore_metadata_1 = require("./internal/metadata/explore_metadata");
53
57
  var iterate_metadata_collection_1 = require("./internal/metadata/iterate_metadata_collection");
54
58
  var iterate_metadata_sort_1 = require("./internal/metadata/iterate_metadata_sort");
59
+ var ExpressionFactory_1 = require("./ExpressionFactory");
55
60
  var MetadataFactory;
56
61
  (function (MetadataFactory) {
57
- MetadataFactory.analyze = function (checker) {
62
+ MetadataFactory.analyze = function (checker, context) {
58
63
  return function (options) {
59
64
  return function (collection) {
60
65
  return function (type) {
@@ -70,7 +75,7 @@ var MetadataFactory;
70
75
  (0, iterate_metadata_collection_1.iterate_metadata_collection)(errors)(collection);
71
76
  (0, iterate_metadata_sort_1.iterate_metadata_sort)(collection)(meta);
72
77
  if (options.validate)
73
- errors.push.apply(errors, __spreadArray([], __read(validate(options)(options.validate)(meta)), false));
78
+ errors.push.apply(errors, __spreadArray([], __read(validate(context)(options)(options.validate)(meta)), false));
74
79
  return errors.length
75
80
  ? {
76
81
  success: false,
@@ -92,213 +97,273 @@ var MetadataFactory;
92
97
  });
93
98
  return meta;
94
99
  };
95
- var validate = function (options) {
96
- return function (functor) {
97
- return function (meta) {
98
- var visitor = {
99
- functor: functor,
100
- errors: [],
101
- objects: new Set(),
102
- arrays: new Set(),
103
- tuples: new Set(),
104
- aliases: new Set(),
100
+ var validate = function (context) {
101
+ return function (options) {
102
+ return function (functor) {
103
+ return function (meta) {
104
+ var visitor = {
105
+ functor: functor,
106
+ errors: [],
107
+ objects: new Set(),
108
+ arrays: new Set(),
109
+ tuples: new Set(),
110
+ aliases: new Set(),
111
+ };
112
+ validateMeta(context)(options)(visitor)(meta, {
113
+ object: null,
114
+ property: null,
115
+ nested: null,
116
+ top: true,
117
+ aliased: false,
118
+ escaped: false,
119
+ });
120
+ return visitor.errors;
105
121
  };
106
- validateMeta(options)(visitor)(meta, {
107
- object: null,
108
- property: null,
109
- nested: null,
110
- top: true,
111
- aliased: false,
112
- escaped: false,
113
- });
114
- return visitor.errors;
115
122
  };
116
123
  };
117
124
  };
118
- var validateMeta = function (options) {
119
- return function (visitor) {
120
- return function (meta, explore) {
121
- var e_1, _a, e_2, _b, e_3, _c, e_4, _d, e_5, _e, e_6, _f;
122
- var result = new Set(visitor.functor(meta, explore));
123
- if (result.size)
124
- visitor.errors.push({
125
- name: meta.getName(),
126
- explore: __assign({}, explore),
127
- messages: __spreadArray([], __read(result), false),
128
- });
129
- try {
130
- for (var _g = __values(meta.aliases), _h = _g.next(); !_h.done; _h = _g.next()) {
131
- var alias = _h.value;
132
- validateAlias(options)(visitor)(alias, explore);
133
- }
134
- }
135
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
136
- finally {
125
+ var validateMeta = function (context) {
126
+ return function (options) {
127
+ return function (visitor) {
128
+ return function (meta, explore) {
129
+ var e_1, _a, e_2, _b, e_3, _c, e_4, _d, e_5, _e, e_6, _f, e_7, _g, e_8, _h, e_9, _j;
130
+ var result = [];
131
+ if (context !== undefined)
132
+ try {
133
+ for (var _k = __values(meta.atomics), _l = _k.next(); !_l.done; _l = _k.next()) {
134
+ var atomic = _l.value;
135
+ try {
136
+ for (var _m = (e_2 = void 0, __values(atomic.tags)), _o = _m.next(); !_o.done; _o = _m.next()) {
137
+ var row = _o.value;
138
+ try {
139
+ for (var _p = (e_3 = void 0, __values(row.filter(function (t) {
140
+ return t.validate !== undefined &&
141
+ t.predicate === undefined;
142
+ }))), _q = _p.next(); !_q.done; _q = _p.next()) {
143
+ var tag = _q.value;
144
+ try {
145
+ tag.predicate = ExpressionFactory_1.ExpressionFactory.transpile(context)(tag.validate);
146
+ }
147
+ catch (_r) {
148
+ result.push("Unable to transpile type tag script: ".concat(JSON.stringify(tag.validate)));
149
+ tag.predicate = function () { return typescript_1.default.factory.createTrue(); };
150
+ }
151
+ }
152
+ }
153
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
154
+ finally {
155
+ try {
156
+ if (_q && !_q.done && (_c = _p.return)) _c.call(_p);
157
+ }
158
+ finally { if (e_3) throw e_3.error; }
159
+ }
160
+ }
161
+ }
162
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
163
+ finally {
164
+ try {
165
+ if (_o && !_o.done && (_b = _m.return)) _b.call(_m);
166
+ }
167
+ finally { if (e_2) throw e_2.error; }
168
+ }
169
+ }
170
+ }
171
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
172
+ finally {
173
+ try {
174
+ if (_l && !_l.done && (_a = _k.return)) _a.call(_k);
175
+ }
176
+ finally { if (e_1) throw e_1.error; }
177
+ }
178
+ result.push.apply(result, __spreadArray([], __read(visitor.functor(meta, explore)), false));
179
+ if (result.length)
180
+ visitor.errors.push({
181
+ name: meta.getName(),
182
+ explore: __assign({}, explore),
183
+ messages: __spreadArray([], __read(new Set(result)), false),
184
+ });
137
185
  try {
138
- if (_h && !_h.done && (_a = _g.return)) _a.call(_g);
186
+ for (var _s = __values(meta.aliases), _t = _s.next(); !_t.done; _t = _s.next()) {
187
+ var alias = _t.value;
188
+ validateAlias(context)(options)(visitor)(alias, explore);
189
+ }
139
190
  }
140
- finally { if (e_1) throw e_1.error; }
141
- }
142
- try {
143
- for (var _j = __values(meta.arrays), _k = _j.next(); !_k.done; _k = _j.next()) {
144
- var array = _k.value;
145
- validateArray(options)(visitor)(array.type, explore);
191
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
192
+ finally {
193
+ try {
194
+ if (_t && !_t.done && (_d = _s.return)) _d.call(_s);
195
+ }
196
+ finally { if (e_4) throw e_4.error; }
146
197
  }
147
- }
148
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
149
- finally {
150
198
  try {
151
- if (_k && !_k.done && (_b = _j.return)) _b.call(_j);
199
+ for (var _u = __values(meta.arrays), _v = _u.next(); !_v.done; _v = _u.next()) {
200
+ var array = _v.value;
201
+ validateArray(context)(options)(visitor)(array.type, explore);
202
+ }
152
203
  }
153
- finally { if (e_2) throw e_2.error; }
154
- }
155
- try {
156
- for (var _l = __values(meta.tuples), _m = _l.next(); !_m.done; _m = _l.next()) {
157
- var tuple = _m.value;
158
- validateTuple(options)(visitor)(tuple.type, explore);
204
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
205
+ finally {
206
+ try {
207
+ if (_v && !_v.done && (_e = _u.return)) _e.call(_u);
208
+ }
209
+ finally { if (e_5) throw e_5.error; }
159
210
  }
160
- }
161
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
162
- finally {
163
211
  try {
164
- if (_m && !_m.done && (_c = _l.return)) _c.call(_l);
212
+ for (var _w = __values(meta.tuples), _x = _w.next(); !_x.done; _x = _w.next()) {
213
+ var tuple = _x.value;
214
+ validateTuple(context)(options)(visitor)(tuple.type, explore);
215
+ }
165
216
  }
166
- finally { if (e_3) throw e_3.error; }
167
- }
168
- try {
169
- for (var _o = __values(meta.objects), _p = _o.next(); !_p.done; _p = _o.next()) {
170
- var obj = _p.value;
171
- validateObject(options)(visitor)(obj);
217
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
218
+ finally {
219
+ try {
220
+ if (_x && !_x.done && (_f = _w.return)) _f.call(_w);
221
+ }
222
+ finally { if (e_6) throw e_6.error; }
172
223
  }
173
- }
174
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
175
- finally {
176
224
  try {
177
- if (_p && !_p.done && (_d = _o.return)) _d.call(_o);
225
+ for (var _y = __values(meta.objects), _z = _y.next(); !_z.done; _z = _y.next()) {
226
+ var obj = _z.value;
227
+ validateObject(context)(options)(visitor)(obj);
228
+ }
178
229
  }
179
- finally { if (e_4) throw e_4.error; }
180
- }
181
- try {
182
- for (var _q = __values(meta.sets), _r = _q.next(); !_r.done; _r = _q.next()) {
183
- var set = _r.value;
184
- validateMeta(options)(visitor)(set, explore);
230
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
231
+ finally {
232
+ try {
233
+ if (_z && !_z.done && (_g = _y.return)) _g.call(_y);
234
+ }
235
+ finally { if (e_7) throw e_7.error; }
185
236
  }
186
- }
187
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
188
- finally {
189
237
  try {
190
- if (_r && !_r.done && (_e = _q.return)) _e.call(_q);
238
+ for (var _0 = __values(meta.sets), _1 = _0.next(); !_1.done; _1 = _0.next()) {
239
+ var set = _1.value;
240
+ validateMeta(context)(options)(visitor)(set, explore);
241
+ }
191
242
  }
192
- finally { if (e_5) throw e_5.error; }
193
- }
194
- try {
195
- for (var _s = __values(meta.maps), _t = _s.next(); !_t.done; _t = _s.next()) {
196
- var map = _t.value;
197
- validateMeta(options)(visitor)(map.key, explore);
198
- validateMeta(options)(visitor)(map.value, explore);
243
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
244
+ finally {
245
+ try {
246
+ if (_1 && !_1.done && (_h = _0.return)) _h.call(_0);
247
+ }
248
+ finally { if (e_8) throw e_8.error; }
199
249
  }
200
- }
201
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
202
- finally {
203
250
  try {
204
- if (_t && !_t.done && (_f = _s.return)) _f.call(_s);
251
+ for (var _2 = __values(meta.maps), _3 = _2.next(); !_3.done; _3 = _2.next()) {
252
+ var map = _3.value;
253
+ validateMeta(context)(options)(visitor)(map.key, explore);
254
+ validateMeta(context)(options)(visitor)(map.value, explore);
255
+ }
256
+ }
257
+ catch (e_9_1) { e_9 = { error: e_9_1 }; }
258
+ finally {
259
+ try {
260
+ if (_3 && !_3.done && (_j = _2.return)) _j.call(_2);
261
+ }
262
+ finally { if (e_9) throw e_9.error; }
205
263
  }
206
- finally { if (e_6) throw e_6.error; }
207
- }
208
- if (options.escape === true && meta.escaped !== null)
209
- validateMeta(options)(visitor)(meta.escaped.returns, __assign(__assign({}, explore), { escaped: true }));
264
+ if (options.escape === true && meta.escaped !== null)
265
+ validateMeta(context)(options)(visitor)(meta.escaped.returns, __assign(__assign({}, explore), { escaped: true }));
266
+ };
210
267
  };
211
268
  };
212
269
  };
213
- var validateAlias = function (options) {
214
- return function (visitor) {
215
- return function (alias, explore) {
216
- if (visitor.aliases.has(alias))
217
- return;
218
- visitor.aliases.add(alias);
219
- validateMeta(options)(visitor)(alias.value, __assign(__assign({}, explore), { nested: alias, aliased: true }));
270
+ var validateAlias = function (context) {
271
+ return function (options) {
272
+ return function (visitor) {
273
+ return function (alias, explore) {
274
+ if (visitor.aliases.has(alias))
275
+ return;
276
+ visitor.aliases.add(alias);
277
+ validateMeta(context)(options)(visitor)(alias.value, __assign(__assign({}, explore), { nested: alias, aliased: true }));
278
+ };
220
279
  };
221
280
  };
222
281
  };
223
- var validateArray = function (options) {
224
- return function (visitor) {
225
- return function (array, explore) {
226
- if (visitor.arrays.has(array))
227
- return;
228
- visitor.arrays.add(array);
229
- validateMeta(options)(visitor)(array.value, __assign(__assign({}, explore), { nested: array, top: false }));
282
+ var validateArray = function (context) {
283
+ return function (options) {
284
+ return function (visitor) {
285
+ return function (array, explore) {
286
+ if (visitor.arrays.has(array))
287
+ return;
288
+ visitor.arrays.add(array);
289
+ validateMeta(context)(options)(visitor)(array.value, __assign(__assign({}, explore), { nested: array, top: false }));
290
+ };
230
291
  };
231
292
  };
232
293
  };
233
- var validateTuple = function (options) {
234
- return function (visitor) {
235
- return function (tuple, explore) {
236
- var e_7, _a;
237
- if (visitor.tuples.has(tuple))
238
- return;
239
- visitor.tuples.add(tuple);
240
- try {
241
- for (var _b = __values(tuple.elements), _c = _b.next(); !_c.done; _c = _b.next()) {
242
- var elem = _c.value;
243
- validateMeta(options)(visitor)(elem, __assign(__assign({}, explore), { nested: tuple, top: false }));
244
- }
245
- }
246
- catch (e_7_1) { e_7 = { error: e_7_1 }; }
247
- finally {
294
+ var validateTuple = function (context) {
295
+ return function (options) {
296
+ return function (visitor) {
297
+ return function (tuple, explore) {
298
+ var e_10, _a;
299
+ if (visitor.tuples.has(tuple))
300
+ return;
301
+ visitor.tuples.add(tuple);
248
302
  try {
249
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
303
+ for (var _b = __values(tuple.elements), _c = _b.next(); !_c.done; _c = _b.next()) {
304
+ var elem = _c.value;
305
+ validateMeta(context)(options)(visitor)(elem, __assign(__assign({}, explore), { nested: tuple, top: false }));
306
+ }
250
307
  }
251
- finally { if (e_7) throw e_7.error; }
252
- }
308
+ catch (e_10_1) { e_10 = { error: e_10_1 }; }
309
+ finally {
310
+ try {
311
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
312
+ }
313
+ finally { if (e_10) throw e_10.error; }
314
+ }
315
+ };
253
316
  };
254
317
  };
255
318
  };
256
- var validateObject = function (options) {
257
- return function (visitor) {
258
- return function (object) {
259
- var e_8, _a;
260
- if (visitor.objects.has(object))
261
- return;
262
- visitor.objects.add(object);
263
- if (options.validate) {
264
- var explore = {
265
- object: object,
266
- top: false,
267
- property: null,
268
- nested: null,
269
- escaped: false,
270
- aliased: false,
271
- };
272
- var errors = options.validate(Metadata_1.Metadata.create(__assign(__assign({}, Metadata_1.Metadata.initialize()), { objects: [object] })), explore);
273
- if (errors.length)
274
- visitor.errors.push({
275
- name: object.name,
276
- explore: explore,
277
- messages: __spreadArray([], __read(new Set(errors)), false),
278
- });
279
- }
280
- try {
281
- for (var _b = __values(object.properties), _c = _b.next(); !_c.done; _c = _b.next()) {
282
- var property = _c.value;
283
- validateMeta(options)(visitor)(property.value, {
319
+ var validateObject = function (context) {
320
+ return function (options) {
321
+ return function (visitor) {
322
+ return function (object) {
323
+ var e_11, _a;
324
+ if (visitor.objects.has(object))
325
+ return;
326
+ visitor.objects.add(object);
327
+ if (options.validate) {
328
+ var explore = {
284
329
  object: object,
285
- property: property.key.isSoleLiteral()
286
- ? property.key.getSoleLiteral()
287
- : {},
288
- nested: null,
289
330
  top: false,
290
- aliased: false,
331
+ property: null,
332
+ nested: null,
291
333
  escaped: false,
292
- });
334
+ aliased: false,
335
+ };
336
+ var errors = options.validate(Metadata_1.Metadata.create(__assign(__assign({}, Metadata_1.Metadata.initialize()), { objects: [object] })), explore);
337
+ if (errors.length)
338
+ visitor.errors.push({
339
+ name: object.name,
340
+ explore: explore,
341
+ messages: __spreadArray([], __read(new Set(errors)), false),
342
+ });
293
343
  }
294
- }
295
- catch (e_8_1) { e_8 = { error: e_8_1 }; }
296
- finally {
297
344
  try {
298
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
345
+ for (var _b = __values(object.properties), _c = _b.next(); !_c.done; _c = _b.next()) {
346
+ var property = _c.value;
347
+ validateMeta(context)(options)(visitor)(property.value, {
348
+ object: object,
349
+ property: property.key.isSoleLiteral()
350
+ ? property.key.getSoleLiteral()
351
+ : {},
352
+ nested: null,
353
+ top: false,
354
+ aliased: false,
355
+ escaped: false,
356
+ });
357
+ }
299
358
  }
300
- finally { if (e_8) throw e_8.error; }
301
- }
359
+ catch (e_11_1) { e_11 = { error: e_11_1 }; }
360
+ finally {
361
+ try {
362
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
363
+ }
364
+ finally { if (e_11) throw e_11.error; }
365
+ }
366
+ };
302
367
  };
303
368
  };
304
369
  };