typia 5.0.0-dev.20230824 → 5.0.0-dev.20230827
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.
- package/README.md +1 -2
- package/lib/IRandomGenerator.d.ts +4 -3
- package/lib/factories/ExpressionFactory.d.ts +1 -1
- package/lib/factories/ExpressionFactory.js +1 -1
- package/lib/factories/ExpressionFactory.js.map +1 -1
- package/lib/factories/LiteralFactory.js +6 -2
- package/lib/factories/LiteralFactory.js.map +1 -1
- package/lib/factories/MetadataCollection.js +0 -1
- package/lib/factories/MetadataCollection.js.map +1 -1
- package/lib/factories/MetadataCommentTagFactory.js +532 -0
- package/lib/factories/MetadataCommentTagFactory.js.map +1 -0
- package/lib/factories/MetadataTypeTagFactory.d.ts +6 -0
- package/lib/factories/MetadataTypeTagFactory.js +207 -0
- package/lib/factories/MetadataTypeTagFactory.js.map +1 -0
- package/lib/factories/NumericRangeFactory.d.ts +6 -0
- package/lib/factories/NumericRangeFactory.js +34 -0
- package/lib/factories/NumericRangeFactory.js.map +1 -0
- package/lib/factories/ProtobufFactory.js +41 -10
- package/lib/factories/ProtobufFactory.js.map +1 -1
- package/lib/factories/internal/metadata/emend_metadata_atomics.js +7 -1
- package/lib/factories/internal/metadata/emend_metadata_atomics.js.map +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_alias.js +1 -13
- package/lib/factories/internal/metadata/emplace_metadata_alias.js.map +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_object.js +0 -1
- package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_atomic.js +2 -1
- package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js +3 -4
- package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js +8 -6
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
- package/lib/functional/Namespace.js +0 -16
- package/lib/functional/Namespace.js.map +1 -1
- package/lib/programmers/AssertProgrammer.js +28 -8
- package/lib/programmers/AssertProgrammer.js.map +1 -1
- package/lib/programmers/CheckerProgrammer.js +65 -52
- package/lib/programmers/CheckerProgrammer.js.map +1 -1
- package/lib/programmers/FeatureProgrammer.d.ts +3 -5
- package/lib/programmers/FeatureProgrammer.js +6 -6
- package/lib/programmers/FeatureProgrammer.js.map +1 -1
- package/lib/programmers/IsProgrammer.d.ts +1 -1
- package/lib/programmers/IsProgrammer.js +32 -19
- package/lib/programmers/IsProgrammer.js.map +1 -1
- package/lib/programmers/RandomProgrammer.js +155 -135
- package/lib/programmers/RandomProgrammer.js.map +1 -1
- package/lib/programmers/ValidateProgrammer.js +28 -8
- package/lib/programmers/ValidateProgrammer.js.map +1 -1
- package/lib/programmers/helpers/CloneJoiner.js +10 -2
- package/lib/programmers/helpers/CloneJoiner.js.map +1 -1
- package/lib/programmers/helpers/ICheckEntry.d.ts +3 -2
- package/lib/programmers/helpers/ProtobufUtil.d.ts +6 -2
- package/lib/programmers/helpers/ProtobufUtil.js +175 -17
- package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
- package/lib/programmers/helpers/RandomJoiner.d.ts +3 -5
- package/lib/programmers/helpers/RandomJoiner.js +7 -10
- package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
- package/lib/programmers/helpers/RandomRanger.d.ts +5 -6
- package/lib/programmers/helpers/RandomRanger.js +13 -33
- package/lib/programmers/helpers/RandomRanger.js.map +1 -1
- package/lib/programmers/helpers/UnionExplorer.d.ts +7 -8
- package/lib/programmers/helpers/UnionExplorer.js +6 -6
- package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
- package/lib/programmers/internal/application_alias.js +0 -1
- package/lib/programmers/internal/application_alias.js.map +1 -1
- package/lib/programmers/internal/application_array.js +60 -20
- package/lib/programmers/internal/application_array.js.map +1 -1
- package/lib/programmers/internal/application_number.js +95 -69
- package/lib/programmers/internal/application_number.js.map +1 -1
- package/lib/programmers/internal/application_object.js +0 -3
- package/lib/programmers/internal/application_object.js.map +1 -1
- package/lib/programmers/internal/application_schema.js +37 -20
- package/lib/programmers/internal/application_schema.js.map +1 -1
- package/lib/programmers/internal/application_string.js +56 -22
- package/lib/programmers/internal/application_string.js.map +1 -1
- package/lib/programmers/internal/check_array_length.js +25 -25
- package/lib/programmers/internal/check_array_length.js.map +1 -1
- package/lib/programmers/internal/check_bigint.js +13 -116
- package/lib/programmers/internal/check_bigint.js.map +1 -1
- package/lib/programmers/internal/check_dynamic_properties.js +1 -1
- package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
- package/lib/programmers/internal/check_number.js +62 -163
- package/lib/programmers/internal/check_number.js.map +1 -1
- package/lib/programmers/internal/check_string.js +16 -52
- package/lib/programmers/internal/check_string.js.map +1 -1
- package/lib/programmers/internal/check_template.js +16 -1
- package/lib/programmers/internal/check_template.js.map +1 -1
- package/lib/programmers/internal/check_union_array_like.js +4 -4
- package/lib/programmers/internal/check_union_array_like.js.map +1 -1
- package/lib/programmers/internal/feature_object_entries.js +1 -1
- package/lib/programmers/internal/feature_object_entries.js.map +1 -1
- package/lib/programmers/internal/random_custom.js +2 -2
- package/lib/programmers/internal/random_custom.js.map +1 -1
- package/lib/programmers/json/JsonStringifyProgrammer.js +21 -16
- package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscCloneProgrammer.js +13 -9
- package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
- package/lib/programmers/{IsPruneProgrammer.d.ts → misc/MiscIsPruneProgrammer.d.ts} +2 -2
- package/lib/programmers/{IsPruneProgrammer.js → misc/MiscIsPruneProgrammer.js} +11 -11
- package/lib/programmers/misc/MiscIsPruneProgrammer.js.map +1 -0
- package/lib/programmers/misc/MiscPruneProgrammer.js +10 -6
- package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +24 -44
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +138 -65
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +59 -85
- package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
- package/lib/schemas/json/IJsonSchema.d.ts +10 -38
- package/lib/schemas/metadata/IMetadataAlias.d.ts +0 -2
- package/lib/schemas/metadata/IMetadataProperty.d.ts +0 -2
- package/lib/schemas/metadata/IMetadataTypeTag.d.ts +2 -0
- package/lib/schemas/metadata/Metadata.d.ts +2 -2
- package/lib/schemas/metadata/Metadata.js +25 -25
- package/lib/schemas/metadata/Metadata.js.map +1 -1
- package/lib/schemas/metadata/MetadataAlias.d.ts +0 -2
- package/lib/schemas/metadata/MetadataAlias.js +0 -3
- package/lib/schemas/metadata/MetadataAlias.js.map +1 -1
- package/lib/schemas/metadata/MetadataArray.d.ts +2 -0
- package/lib/schemas/metadata/MetadataArray.js +45 -2
- package/lib/schemas/metadata/MetadataArray.js.map +1 -1
- package/lib/schemas/metadata/MetadataAtomic.d.ts +9 -0
- package/lib/schemas/metadata/MetadataAtomic.js +59 -0
- package/lib/schemas/metadata/MetadataAtomic.js.map +1 -0
- package/lib/schemas/metadata/MetadataProperty.d.ts +0 -2
- package/lib/schemas/metadata/MetadataProperty.js +0 -3
- package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
- package/lib/schemas/metadata/MetadataTuple.d.ts +4 -2
- package/lib/schemas/metadata/MetadataTuple.js +1 -2
- package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
- package/lib/tags/ExclusiveMaximum.d.ts +10 -8
- package/lib/tags/ExclusiveMinimum.d.ts +10 -8
- package/lib/tags/Format.d.ts +8 -8
- package/lib/tags/MaxItems.d.ts +8 -8
- package/lib/tags/MaxLength.d.ts +8 -8
- package/lib/tags/Maximum.d.ts +10 -8
- package/lib/tags/MinItems.d.ts +8 -8
- package/lib/tags/MinLength.d.ts +8 -8
- package/lib/tags/Minimum.d.ts +10 -8
- package/lib/tags/MultipleOf.d.ts +10 -8
- package/lib/tags/Pattern.d.ts +7 -8
- package/lib/tags/TagBase.d.ts +10 -6
- package/lib/tags/Type.d.ts +14 -13
- package/lib/tags/index.d.ts +1 -0
- package/lib/tags/index.js +1 -0
- package/lib/tags/index.js.map +1 -1
- package/lib/transformers/FileTransformer.js +3 -1
- package/lib/transformers/FileTransformer.js.map +1 -1
- package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.js +2 -2
- package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.js.map +1 -1
- package/lib/transformers/features/misc/MiscIsPruneTransformer.js +2 -2
- package/lib/transformers/features/misc/MiscIsPruneTransformer.js.map +1 -1
- package/lib/typings/ProtobufAtomic.d.ts +5 -0
- package/lib/{schemas/metadata/ICommentTag.js → typings/ProtobufAtomic.js} +1 -1
- package/lib/typings/ProtobufAtomic.js.map +1 -0
- package/package.json +2 -2
- package/src/IRandomGenerator.ts +4 -3
- package/src/factories/ExpressionFactory.ts +2 -2
- package/src/factories/LiteralFactory.ts +10 -3
- package/src/factories/MetadataCollection.ts +0 -1
- package/src/factories/MetadataCommentTagFactory.ts +583 -0
- package/src/factories/MetadataTypeTagFactory.ts +263 -0
- package/src/factories/NumericRangeFactory.ts +33 -0
- package/src/factories/ProtobufFactory.ts +27 -13
- package/src/factories/internal/metadata/emend_metadata_atomics.ts +6 -1
- package/src/factories/internal/metadata/emplace_metadata_alias.ts +0 -6
- package/src/factories/internal/metadata/emplace_metadata_object.ts +0 -1
- package/src/factories/internal/metadata/iterate_metadata_atomic.ts +2 -1
- package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +3 -7
- package/src/factories/internal/metadata/iterate_metadata_intersection.ts +13 -10
- package/src/functional/Namespace.ts +0 -16
- package/src/programmers/AssertProgrammer.ts +57 -21
- package/src/programmers/CheckerProgrammer.ts +43 -118
- package/src/programmers/FeatureProgrammer.ts +11 -33
- package/src/programmers/IsProgrammer.ts +52 -41
- package/src/programmers/RandomProgrammer.ts +206 -226
- package/src/programmers/ValidateProgrammer.ts +60 -21
- package/src/programmers/helpers/CloneJoiner.ts +57 -20
- package/src/programmers/helpers/ICheckEntry.ts +3 -2
- package/src/programmers/helpers/ProtobufUtil.ts +113 -17
- package/src/programmers/helpers/RandomJoiner.ts +11 -37
- package/src/programmers/helpers/RandomRanger.ts +16 -51
- package/src/programmers/helpers/UnionExplorer.ts +1 -20
- package/src/programmers/internal/application_alias.ts +0 -1
- package/src/programmers/internal/application_array.ts +32 -10
- package/src/programmers/internal/application_number.ts +76 -70
- package/src/programmers/internal/application_object.ts +0 -3
- package/src/programmers/internal/application_schema.ts +36 -18
- package/src/programmers/internal/application_string.ts +33 -27
- package/src/programmers/internal/check_array_length.ts +34 -28
- package/src/programmers/internal/check_bigint.ts +25 -118
- package/src/programmers/internal/check_dynamic_properties.ts +1 -2
- package/src/programmers/internal/check_number.ts +81 -261
- package/src/programmers/internal/check_string.ts +28 -39
- package/src/programmers/internal/check_template.ts +17 -1
- package/src/programmers/internal/check_union_array_like.ts +1 -16
- package/src/programmers/internal/feature_object_entries.ts +12 -18
- package/src/programmers/internal/random_custom.ts +3 -3
- package/src/programmers/json/JsonStringifyProgrammer.ts +25 -36
- package/src/programmers/misc/MiscCloneProgrammer.ts +10 -24
- package/src/programmers/{IsPruneProgrammer.ts → misc/MiscIsPruneProgrammer.ts} +7 -7
- package/src/programmers/misc/MiscPruneProgrammer.ts +8 -18
- package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +34 -68
- package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +153 -98
- package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +6 -36
- package/src/schemas/json/IJsonSchema.ts +11 -38
- package/src/schemas/metadata/IMetadataAlias.ts +0 -2
- package/src/schemas/metadata/IMetadataProperty.ts +0 -2
- package/src/schemas/metadata/IMetadataTypeTag.ts +2 -0
- package/src/schemas/metadata/Metadata.ts +28 -42
- package/src/schemas/metadata/MetadataAlias.ts +0 -5
- package/src/schemas/metadata/MetadataArray.ts +21 -3
- package/src/schemas/metadata/MetadataAtomic.ts +42 -0
- package/src/schemas/metadata/MetadataProperty.ts +0 -5
- package/src/schemas/metadata/MetadataTuple.ts +5 -4
- package/src/tags/ExclusiveMaximum.ts +13 -8
- package/src/tags/ExclusiveMinimum.ts +13 -8
- package/src/tags/Format.ts +21 -20
- package/src/tags/MaxItems.ts +9 -8
- package/src/tags/MaxLength.ts +9 -8
- package/src/tags/Maximum.ts +13 -8
- package/src/tags/MinItems.ts +9 -8
- package/src/tags/MinLength.ts +9 -8
- package/src/tags/Minimum.ts +13 -8
- package/src/tags/MultipleOf.ts +15 -10
- package/src/tags/Pattern.ts +8 -8
- package/src/tags/TagBase.ts +18 -13
- package/src/tags/Type.ts +26 -29
- package/src/tags/index.ts +1 -0
- package/src/transformers/FileTransformer.ts +4 -4
- package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +2 -2
- package/src/transformers/features/misc/MiscIsPruneTransformer.ts +2 -2
- package/src/typings/ProtobufAtomic.ts +19 -0
- package/lib/factories/MetadataTagFactory.d.ts +0 -6
- package/lib/factories/MetadataTagFactory.js +0 -312
- package/lib/factories/MetadataTagFactory.js.map +0 -1
- package/lib/factories/internal/metadata/iterate_metadata_type_tags.d.ts +0 -3
- package/lib/factories/internal/metadata/iterate_metadata_type_tags.js +0 -157
- package/lib/factories/internal/metadata/iterate_metadata_type_tags.js.map +0 -1
- package/lib/functional/$is_custom.d.ts +0 -2
- package/lib/functional/$is_custom.js +0 -13
- package/lib/functional/$is_custom.js.map +0 -1
- package/lib/functional/$is_date.d.ts +0 -1
- package/lib/functional/$is_date.js +0 -7
- package/lib/functional/$is_date.js.map +0 -1
- package/lib/functional/$is_datetime.d.ts +0 -1
- package/lib/functional/$is_datetime.js +0 -8
- package/lib/functional/$is_datetime.js.map +0 -1
- package/lib/functional/$is_email.d.ts +0 -1
- package/lib/functional/$is_email.js +0 -7
- package/lib/functional/$is_email.js.map +0 -1
- package/lib/functional/$is_ipv4.d.ts +0 -1
- package/lib/functional/$is_ipv4.js +0 -7
- package/lib/functional/$is_ipv4.js.map +0 -1
- package/lib/functional/$is_ipv6.d.ts +0 -1
- package/lib/functional/$is_ipv6.js +0 -7
- package/lib/functional/$is_ipv6.js.map +0 -1
- package/lib/functional/$is_url.d.ts +0 -1
- package/lib/functional/$is_url.js +0 -7
- package/lib/functional/$is_url.js.map +0 -1
- package/lib/functional/$is_uuid.d.ts +0 -1
- package/lib/functional/$is_uuid.js +0 -7
- package/lib/functional/$is_uuid.js.map +0 -1
- package/lib/programmers/IsPruneProgrammer.js.map +0 -1
- package/lib/programmers/internal/check_array_tags.js +0 -39
- package/lib/programmers/internal/check_array_tags.js.map +0 -1
- package/lib/programmers/internal/check_string_tags.d.ts +0 -1
- package/lib/programmers/internal/check_string_tags.js +0 -89
- package/lib/programmers/internal/check_string_tags.js.map +0 -1
- package/lib/programmers/internal/get_comment_tags.d.ts +0 -1
- package/lib/programmers/internal/get_comment_tags.js +0 -25
- package/lib/programmers/internal/get_comment_tags.js.map +0 -1
- package/lib/schemas/metadata/ICommentTag.d.ts +0 -4
- package/lib/schemas/metadata/ICommentTag.js.map +0 -1
- package/lib/schemas/metadata/IMetadataCommentTag.d.ts +0 -63
- package/lib/schemas/metadata/IMetadataCommentTag.js +0 -3
- package/lib/schemas/metadata/IMetadataCommentTag.js.map +0 -1
- package/src/factories/MetadataTagFactory.ts +0 -365
- package/src/factories/internal/metadata/iterate_metadata_type_tags.ts +0 -183
- package/src/functional/$is_custom.ts +0 -14
- package/src/functional/$is_date.ts +0 -3
- package/src/functional/$is_datetime.ts +0 -2
- package/src/functional/$is_email.ts +0 -4
- package/src/functional/$is_ipv4.ts +0 -4
- package/src/functional/$is_ipv6.ts +0 -4
- package/src/functional/$is_url.ts +0 -4
- package/src/functional/$is_uuid.ts +0 -4
- package/src/programmers/internal/check_array_tags.ts +0 -45
- package/src/programmers/internal/check_string_tags.ts +0 -67
- package/src/programmers/internal/get_comment_tags.ts +0 -23
- package/src/schemas/metadata/ICommentTag.ts +0 -4
- package/src/schemas/metadata/IMetadataCommentTag.ts +0 -112
- /package/lib/{programmers/internal/check_array_tags.d.ts → factories/MetadataCommentTagFactory.d.ts} +0 -0
|
@@ -3,11 +3,11 @@ import ts from "typescript";
|
|
|
3
3
|
import { ExpressionFactory } from "../../factories/ExpressionFactory";
|
|
4
4
|
import { IdentifierFactory } from "../../factories/IdentifierFactory";
|
|
5
5
|
import { MetadataCollection } from "../../factories/MetadataCollection";
|
|
6
|
+
import { NumericRangeFactory } from "../../factories/NumericRangeFactory";
|
|
6
7
|
import { ProtobufFactory } from "../../factories/ProtobufFactory";
|
|
7
8
|
import { StatementFactory } from "../../factories/StatementFactory";
|
|
8
9
|
import { TypeFactory } from "../../factories/TypeFactory";
|
|
9
10
|
|
|
10
|
-
import { IMetadataCommentTag } from "../../schemas/metadata/IMetadataCommentTag";
|
|
11
11
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
12
12
|
import { MetadataArray } from "../../schemas/metadata/MetadataArray";
|
|
13
13
|
import { MetadataObject } from "../../schemas/metadata/MetadataObject";
|
|
@@ -15,7 +15,7 @@ import { MetadataProperty } from "../../schemas/metadata/MetadataProperty";
|
|
|
15
15
|
|
|
16
16
|
import { IProject } from "../../transformers/IProject";
|
|
17
17
|
|
|
18
|
-
import {
|
|
18
|
+
import { ProtobufAtomic } from "../../typings/ProtobufAtomic";
|
|
19
19
|
|
|
20
20
|
import { FeatureProgrammer } from "../FeatureProgrammer";
|
|
21
21
|
import { IsProgrammer } from "../IsProgrammer";
|
|
@@ -128,7 +128,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
128
128
|
tracable: false,
|
|
129
129
|
postfix: "",
|
|
130
130
|
},
|
|
131
|
-
[],
|
|
132
131
|
);
|
|
133
132
|
return ts.factory.createArrowFunction(
|
|
134
133
|
undefined,
|
|
@@ -170,9 +169,8 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
170
169
|
),
|
|
171
170
|
p.value,
|
|
172
171
|
explore,
|
|
173
|
-
p.tags,
|
|
174
172
|
);
|
|
175
|
-
index += p.value
|
|
173
|
+
index += ProtobufUtil.size(p.value);
|
|
176
174
|
return [
|
|
177
175
|
ts.factory.createExpressionStatement(
|
|
178
176
|
ts.factory.createIdentifier(
|
|
@@ -205,7 +203,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
205
203
|
input: ts.Expression,
|
|
206
204
|
meta: Metadata,
|
|
207
205
|
explore: FeatureProgrammer.IExplore,
|
|
208
|
-
tags: IMetadataCommentTag[],
|
|
209
206
|
): ts.Block => {
|
|
210
207
|
const wrapper: (block: ts.Block) => ts.Block =
|
|
211
208
|
meta.isRequired() && meta.nullable === false
|
|
@@ -263,18 +260,47 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
263
260
|
);
|
|
264
261
|
|
|
265
262
|
// STARTS FROM ATOMIC TYPES
|
|
266
|
-
const unions: IUnion[] =
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
)
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
263
|
+
const unions: IUnion[] = [];
|
|
264
|
+
const numbers = ProtobufUtil.getNumbers(meta);
|
|
265
|
+
const bigints = ProtobufUtil.getBigints(meta);
|
|
266
|
+
|
|
267
|
+
for (const atom of ProtobufUtil.getAtomics(meta))
|
|
268
|
+
if (atom === "bool")
|
|
269
|
+
unions.push({
|
|
270
|
+
type: "bool",
|
|
271
|
+
is: () =>
|
|
272
|
+
ts.factory.createStrictEquality(
|
|
273
|
+
ts.factory.createStringLiteral("boolean"),
|
|
274
|
+
ts.factory.createTypeOfExpression(input),
|
|
275
|
+
),
|
|
276
|
+
value: (index) => decode_bool(index)(input),
|
|
277
|
+
});
|
|
278
|
+
else if (
|
|
279
|
+
atom === "int32" ||
|
|
280
|
+
atom === "uint32" ||
|
|
281
|
+
atom === "float" ||
|
|
282
|
+
atom === "double"
|
|
283
|
+
)
|
|
284
|
+
unions.push(decode_number(project)(numbers)(atom)(input));
|
|
285
|
+
else if (atom === "int64" || atom === "uint64")
|
|
286
|
+
if (numbers.some((n) => n === atom))
|
|
287
|
+
unions.push(
|
|
288
|
+
decode_number(project)(numbers)(atom)(input),
|
|
289
|
+
);
|
|
290
|
+
else
|
|
291
|
+
unions.push(
|
|
292
|
+
decode_bigint(project)(bigints)(atom)(input),
|
|
293
|
+
);
|
|
294
|
+
else if (atom === "string")
|
|
295
|
+
unions.push({
|
|
296
|
+
type: "string",
|
|
297
|
+
is: () =>
|
|
298
|
+
ts.factory.createStrictEquality(
|
|
299
|
+
ts.factory.createStringLiteral("string"),
|
|
300
|
+
ts.factory.createTypeOfExpression(input),
|
|
301
|
+
),
|
|
302
|
+
value: (index) => decode_bytes("string")(index!)(input),
|
|
303
|
+
});
|
|
278
304
|
|
|
279
305
|
// CONSIDER BYTES
|
|
280
306
|
if (meta.natives.length)
|
|
@@ -298,7 +324,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
298
324
|
...explore,
|
|
299
325
|
from: "array",
|
|
300
326
|
},
|
|
301
|
-
tags,
|
|
302
327
|
),
|
|
303
328
|
});
|
|
304
329
|
|
|
@@ -315,7 +340,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
315
340
|
...explore,
|
|
316
341
|
from: "array",
|
|
317
342
|
},
|
|
318
|
-
tags,
|
|
319
343
|
),
|
|
320
344
|
});
|
|
321
345
|
|
|
@@ -336,7 +360,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
336
360
|
...explore,
|
|
337
361
|
from: "object",
|
|
338
362
|
},
|
|
339
|
-
tags,
|
|
340
363
|
),
|
|
341
364
|
});
|
|
342
365
|
|
|
@@ -388,7 +411,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
388
411
|
input: ts.Expression,
|
|
389
412
|
map: Metadata.Entry,
|
|
390
413
|
explore: FeatureProgrammer.IExplore,
|
|
391
|
-
tags: IMetadataCommentTag[],
|
|
392
414
|
): ts.Block => {
|
|
393
415
|
const each: ts.Statement[] = [
|
|
394
416
|
ts.factory.createExpressionStatement(
|
|
@@ -405,13 +427,11 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
405
427
|
ts.factory.createIdentifier("key"),
|
|
406
428
|
map.key,
|
|
407
429
|
explore,
|
|
408
|
-
[],
|
|
409
430
|
).statements,
|
|
410
431
|
...decode(project)(importer)(2)(
|
|
411
432
|
ts.factory.createIdentifier("value"),
|
|
412
433
|
map.value,
|
|
413
434
|
explore,
|
|
414
|
-
tags,
|
|
415
435
|
).statements,
|
|
416
436
|
ts.factory.createExpressionStatement(
|
|
417
437
|
ts.factory.createCallExpression(
|
|
@@ -442,7 +462,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
442
462
|
input: ts.Expression,
|
|
443
463
|
object: MetadataObject,
|
|
444
464
|
explore: FeatureProgrammer.IExplore,
|
|
445
|
-
tags: IMetadataCommentTag[],
|
|
446
465
|
): ts.Block => {
|
|
447
466
|
const top: MetadataProperty = object.properties[0]!;
|
|
448
467
|
if (top.key.isSoleLiteral() === false)
|
|
@@ -454,7 +473,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
454
473
|
),
|
|
455
474
|
top,
|
|
456
475
|
explore,
|
|
457
|
-
tags,
|
|
458
476
|
);
|
|
459
477
|
return ts.factory.createBlock(
|
|
460
478
|
[
|
|
@@ -502,9 +520,8 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
502
520
|
input: ts.Expression,
|
|
503
521
|
array: MetadataArray,
|
|
504
522
|
explore: FeatureProgrammer.IExplore,
|
|
505
|
-
tags: IMetadataCommentTag[],
|
|
506
523
|
): ts.Block => {
|
|
507
|
-
const wire = get_standalone_wire(array.type.value
|
|
524
|
+
const wire = get_standalone_wire(array.type.value);
|
|
508
525
|
const forLoop = (index: number | null) =>
|
|
509
526
|
ts.factory.createForOfStatement(
|
|
510
527
|
undefined,
|
|
@@ -517,7 +534,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
517
534
|
ts.factory.createIdentifier("elem"),
|
|
518
535
|
array.type.value,
|
|
519
536
|
explore,
|
|
520
|
-
tags,
|
|
521
537
|
),
|
|
522
538
|
);
|
|
523
539
|
const length = (block: ts.Block) =>
|
|
@@ -563,56 +579,94 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
563
579
|
);
|
|
564
580
|
};
|
|
565
581
|
|
|
566
|
-
const
|
|
567
|
-
(
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
582
|
+
const decode_bool = (index: number | null) => (input: ts.Expression) =>
|
|
583
|
+
ts.factory.createBlock(
|
|
584
|
+
[
|
|
585
|
+
...(index !== null
|
|
586
|
+
? [decode_tag(ProtobufWire.VARIANT)(index)]
|
|
587
|
+
: []),
|
|
588
|
+
ts.factory.createCallExpression(
|
|
589
|
+
IdentifierFactory.access(WRITER())("bool"),
|
|
590
|
+
undefined,
|
|
591
|
+
[input],
|
|
592
|
+
),
|
|
593
|
+
].map((exp) => ts.factory.createExpressionStatement(exp)),
|
|
594
|
+
true,
|
|
595
|
+
);
|
|
596
|
+
|
|
597
|
+
const decode_number =
|
|
598
|
+
(project: IProject) =>
|
|
599
|
+
(candidates: ProtobufAtomic.Numeric[]) =>
|
|
600
|
+
(type: ProtobufAtomic.Numeric) =>
|
|
601
|
+
(input: ts.Expression): IUnion => ({
|
|
602
|
+
type,
|
|
603
|
+
is: () =>
|
|
604
|
+
candidates.length === 1
|
|
605
|
+
? ts.factory.createStrictEquality(
|
|
606
|
+
ts.factory.createStringLiteral("number"),
|
|
607
|
+
ts.factory.createTypeOfExpression(input),
|
|
608
|
+
)
|
|
609
|
+
: ts.factory.createLogicalAnd(
|
|
610
|
+
ts.factory.createStrictEquality(
|
|
611
|
+
ts.factory.createStringLiteral("number"),
|
|
612
|
+
ts.factory.createTypeOfExpression(input),
|
|
613
|
+
),
|
|
614
|
+
NumericRangeFactory.number(project.context)(type)(
|
|
615
|
+
input,
|
|
616
|
+
),
|
|
617
|
+
),
|
|
618
|
+
value: (index) =>
|
|
619
|
+
ts.factory.createBlock(
|
|
620
|
+
[
|
|
621
|
+
...(index !== null
|
|
622
|
+
? [decode_tag(get_numeric_wire(type))(index)]
|
|
623
|
+
: []),
|
|
624
|
+
ts.factory.createCallExpression(
|
|
625
|
+
IdentifierFactory.access(WRITER())(type),
|
|
626
|
+
undefined,
|
|
627
|
+
[input],
|
|
591
628
|
),
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
:
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
629
|
+
].map((exp) => ts.factory.createExpressionStatement(exp)),
|
|
630
|
+
true,
|
|
631
|
+
),
|
|
632
|
+
});
|
|
633
|
+
|
|
634
|
+
const decode_bigint =
|
|
635
|
+
(project: IProject) =>
|
|
636
|
+
(candidates: ProtobufAtomic.BigNumeric[]) =>
|
|
637
|
+
(type: ProtobufAtomic.BigNumeric) =>
|
|
638
|
+
(input: ts.Expression): IUnion => ({
|
|
639
|
+
type,
|
|
640
|
+
is: () =>
|
|
641
|
+
candidates.length === 1
|
|
642
|
+
? ts.factory.createStrictEquality(
|
|
643
|
+
ts.factory.createStringLiteral("bigint"),
|
|
644
|
+
ts.factory.createTypeOfExpression(input),
|
|
645
|
+
)
|
|
646
|
+
: ts.factory.createLogicalAnd(
|
|
647
|
+
ts.factory.createStrictEquality(
|
|
648
|
+
ts.factory.createStringLiteral("bigint"),
|
|
649
|
+
ts.factory.createTypeOfExpression(input),
|
|
650
|
+
),
|
|
651
|
+
NumericRangeFactory.bigint(project.context)(type)(
|
|
652
|
+
input,
|
|
653
|
+
),
|
|
654
|
+
),
|
|
655
|
+
value: (index) =>
|
|
656
|
+
ts.factory.createBlock(
|
|
657
|
+
[
|
|
658
|
+
...(index !== null
|
|
659
|
+
? [decode_tag(ProtobufWire.VARIANT)(index)]
|
|
660
|
+
: []),
|
|
661
|
+
ts.factory.createCallExpression(
|
|
662
|
+
IdentifierFactory.access(WRITER())(type),
|
|
663
|
+
undefined,
|
|
664
|
+
[input],
|
|
665
|
+
),
|
|
666
|
+
].map((exp) => ts.factory.createExpressionStatement(exp)),
|
|
667
|
+
true,
|
|
668
|
+
),
|
|
669
|
+
});
|
|
616
670
|
|
|
617
671
|
const decode_bytes =
|
|
618
672
|
(method: "bytes" | "string") =>
|
|
@@ -639,10 +693,7 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
639
693
|
[ts.factory.createNumericLiteral((index << 3) | wire)],
|
|
640
694
|
);
|
|
641
695
|
|
|
642
|
-
const get_standalone_wire = (
|
|
643
|
-
meta: Metadata,
|
|
644
|
-
tags: IMetadataCommentTag[],
|
|
645
|
-
): ProtobufWire => {
|
|
696
|
+
const get_standalone_wire = (meta: Metadata): ProtobufWire => {
|
|
646
697
|
if (
|
|
647
698
|
meta.arrays.length ||
|
|
648
699
|
meta.objects.length ||
|
|
@@ -653,16 +704,25 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
653
704
|
|
|
654
705
|
const v = ProtobufUtil.getAtomics(meta)[0]!;
|
|
655
706
|
if (v === "string") return ProtobufWire.LEN;
|
|
656
|
-
else if (
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
707
|
+
else if (
|
|
708
|
+
v === "bool" ||
|
|
709
|
+
v === "int32" ||
|
|
710
|
+
v === "uint32" ||
|
|
711
|
+
v === "int64" ||
|
|
712
|
+
v === "uint64"
|
|
713
|
+
)
|
|
714
|
+
return ProtobufWire.VARIANT;
|
|
715
|
+
else if (v === "float") return ProtobufWire.I32;
|
|
716
|
+
return ProtobufWire.I64;
|
|
664
717
|
};
|
|
665
718
|
|
|
719
|
+
const get_numeric_wire = (type: ProtobufAtomic.Numeric) =>
|
|
720
|
+
type === "double"
|
|
721
|
+
? ProtobufWire.I64
|
|
722
|
+
: type === "float"
|
|
723
|
+
? ProtobufWire.I32
|
|
724
|
+
: ProtobufWire.VARIANT;
|
|
725
|
+
|
|
666
726
|
/* -----------------------------------------------------------
|
|
667
727
|
EXPLORERS
|
|
668
728
|
----------------------------------------------------------- */
|
|
@@ -675,13 +735,12 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
675
735
|
input: ts.Expression,
|
|
676
736
|
targets: MetadataObject[],
|
|
677
737
|
explore: FeatureProgrammer.IExplore,
|
|
678
|
-
tags: IMetadataCommentTag[],
|
|
679
738
|
indexes?: Map<MetadataObject, number>,
|
|
680
739
|
): ts.Block => {
|
|
681
740
|
if (targets.length === 1)
|
|
682
741
|
return decode_object(project)(importer)(
|
|
683
742
|
indexes ? indexes.get(targets[0]!)! : index,
|
|
684
|
-
)(input, targets[0]!, explore
|
|
743
|
+
)(input, targets[0]!, explore);
|
|
685
744
|
|
|
686
745
|
const expected: string = `(${targets
|
|
687
746
|
.map((t) => t.name)
|
|
@@ -700,7 +759,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
700
759
|
i,
|
|
701
760
|
o,
|
|
702
761
|
e,
|
|
703
|
-
tags,
|
|
704
762
|
),
|
|
705
763
|
),
|
|
706
764
|
)((expr) => expr)((value, expected) =>
|
|
@@ -728,8 +786,6 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
728
786
|
tracable: false,
|
|
729
787
|
postfix: IdentifierFactory.postfix(key),
|
|
730
788
|
},
|
|
731
|
-
tags,
|
|
732
|
-
[],
|
|
733
789
|
)
|
|
734
790
|
: ExpressionFactory.isRequired(accessor);
|
|
735
791
|
return ts.factory.createIfStatement(
|
|
@@ -738,7 +794,7 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
738
794
|
ExpressionFactory.selfCall(
|
|
739
795
|
decode_object(project)(importer)(
|
|
740
796
|
indexes!.get(spec.object)!,
|
|
741
|
-
)(input, spec.object, explore
|
|
797
|
+
)(input, spec.object, explore),
|
|
742
798
|
),
|
|
743
799
|
),
|
|
744
800
|
i === array.length - 1
|
|
@@ -751,8 +807,7 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
751
807
|
input,
|
|
752
808
|
remained,
|
|
753
809
|
explore,
|
|
754
|
-
|
|
755
|
-
indexes,
|
|
810
|
+
indexes!,
|
|
756
811
|
),
|
|
757
812
|
),
|
|
758
813
|
)
|
|
@@ -3,14 +3,11 @@ import ts from "typescript";
|
|
|
3
3
|
import { MetadataCollection } from "../../factories/MetadataCollection";
|
|
4
4
|
import { ProtobufFactory } from "../../factories/ProtobufFactory";
|
|
5
5
|
|
|
6
|
-
import { IMetadataCommentTag } from "../../schemas/metadata/IMetadataCommentTag";
|
|
7
6
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
8
7
|
import { MetadataObject } from "../../schemas/metadata/MetadataObject";
|
|
9
8
|
|
|
10
9
|
import { IProject } from "../../transformers/IProject";
|
|
11
10
|
|
|
12
|
-
import { Atomic } from "../../typings/Atomic";
|
|
13
|
-
|
|
14
11
|
import { MapUtil } from "../../utils/MapUtil";
|
|
15
12
|
import { NameEncoder } from "../../utils/NameEncoder";
|
|
16
13
|
|
|
@@ -85,7 +82,7 @@ export namespace ProtobufMessageProgrammer {
|
|
|
85
82
|
return obj.properties
|
|
86
83
|
.map((prop) => {
|
|
87
84
|
const key: string = prop.key.getSoleLiteral()!;
|
|
88
|
-
const type: string = decode(ptr)(prop.
|
|
85
|
+
const type: string = decode(ptr)(prop.value);
|
|
89
86
|
return type.indexOf("${name}") !== -1
|
|
90
87
|
? type.replace("${name}", key)
|
|
91
88
|
: `${
|
|
@@ -104,22 +101,20 @@ export namespace ProtobufMessageProgrammer {
|
|
|
104
101
|
----------------------------------------------------------- */
|
|
105
102
|
const decode =
|
|
106
103
|
(ptr: IPointer<number>) =>
|
|
107
|
-
(tags: IMetadataCommentTag[]) =>
|
|
108
104
|
(meta: Metadata): string => {
|
|
109
105
|
const elements: Set<string> = new Set();
|
|
110
106
|
if (meta.natives.length) elements.add("bytes");
|
|
111
107
|
for (const atomic of ProtobufUtil.getAtomics(meta))
|
|
112
|
-
elements.add(
|
|
108
|
+
elements.add(atomic);
|
|
113
109
|
for (const array of meta.arrays)
|
|
114
|
-
elements.add(`repeated ${decode(ptr)(
|
|
110
|
+
elements.add(`repeated ${decode(ptr)(array.type.value)}`);
|
|
115
111
|
for (const obj of meta.objects)
|
|
116
112
|
elements.add(
|
|
117
113
|
is_dynamic_object(obj)
|
|
118
|
-
? decode_map(ptr)(
|
|
114
|
+
? decode_map(ptr)(obj.properties[0]!)
|
|
119
115
|
: NameEncoder.encode(obj.name),
|
|
120
116
|
);
|
|
121
|
-
for (const map of meta.maps)
|
|
122
|
-
elements.add(decode_map(ptr)(tags)(map));
|
|
117
|
+
for (const map of meta.maps) elements.add(decode_map(ptr)(map));
|
|
123
118
|
return elements.size === 1
|
|
124
119
|
? [...elements][0]!
|
|
125
120
|
: [
|
|
@@ -134,35 +129,10 @@ export namespace ProtobufMessageProgrammer {
|
|
|
134
129
|
].join("\n");
|
|
135
130
|
};
|
|
136
131
|
|
|
137
|
-
const decode_atomic =
|
|
138
|
-
(tags: IMetadataCommentTag[]) =>
|
|
139
|
-
(literal: Atomic.Literal): string => {
|
|
140
|
-
if (literal === "boolean") return "bool";
|
|
141
|
-
else if (literal === "bigint")
|
|
142
|
-
return tags.find(
|
|
143
|
-
(t) => t.kind === "type" && t.value === "uint64",
|
|
144
|
-
)
|
|
145
|
-
? "uint64"
|
|
146
|
-
: "int64";
|
|
147
|
-
else if (literal === "number") {
|
|
148
|
-
const type = tags.find((t) => t.kind === "type") as
|
|
149
|
-
| IMetadataCommentTag.INumberType
|
|
150
|
-
| undefined;
|
|
151
|
-
if (type?.value === undefined) return "double";
|
|
152
|
-
else if (type.value === "int") return "int32";
|
|
153
|
-
else if (type.value === "uint") return "uint32";
|
|
154
|
-
else return type.value;
|
|
155
|
-
}
|
|
156
|
-
return literal;
|
|
157
|
-
};
|
|
158
|
-
|
|
159
132
|
const decode_map =
|
|
160
133
|
(ptr: IPointer<number>) =>
|
|
161
|
-
(tags: IMetadataCommentTag[]) =>
|
|
162
134
|
(prop: Metadata.Entry): string =>
|
|
163
|
-
`map<${decode(ptr)(
|
|
164
|
-
prop.value,
|
|
165
|
-
)}>`;
|
|
135
|
+
`map<${decode(ptr)(prop.key)}, ${decode(ptr)(prop.value)}>`;
|
|
166
136
|
}
|
|
167
137
|
|
|
168
138
|
interface Hierarchy {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { IJsDocTagInfo } from "../metadata/IJsDocTagInfo";
|
|
2
|
-
import { IMetadataCommentTag } from "../metadata/IMetadataCommentTag";
|
|
3
2
|
|
|
4
3
|
import { Atomic } from "../../typings/Atomic";
|
|
5
4
|
|
|
5
|
+
import { Type } from "../../tags/Type";
|
|
6
|
+
|
|
6
7
|
export type IJsonSchema = IJsonSchema.Known | IJsonSchema.IUnknown;
|
|
7
8
|
export namespace IJsonSchema {
|
|
8
9
|
export type Known =
|
|
@@ -36,14 +37,8 @@ export namespace IJsonSchema {
|
|
|
36
37
|
default?: Atomic.Mapper[Literal];
|
|
37
38
|
}
|
|
38
39
|
export interface IString extends IAtomic<"string"> {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
*/
|
|
42
|
-
minLength?: number;
|
|
43
|
-
/**
|
|
44
|
-
* @type uint
|
|
45
|
-
*/
|
|
46
|
-
maxLength?: number;
|
|
40
|
+
minLength?: number & Type<"uint32">;
|
|
41
|
+
maxLength?: number & Type<"uint32">;
|
|
47
42
|
pattern?: string;
|
|
48
43
|
format?: string;
|
|
49
44
|
}
|
|
@@ -55,20 +50,11 @@ export namespace IJsonSchema {
|
|
|
55
50
|
multipleOf?: number;
|
|
56
51
|
}
|
|
57
52
|
export interface IInteger extends IAtomic<"integer"> {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
*/
|
|
61
|
-
minimum?: number;
|
|
62
|
-
/**
|
|
63
|
-
* @type int
|
|
64
|
-
*/
|
|
65
|
-
maximum?: number;
|
|
53
|
+
minimum?: number & Type<"int32">;
|
|
54
|
+
maximum?: number & Type<"int32">;
|
|
66
55
|
exclusiveMinimum?: boolean;
|
|
67
56
|
exclusiveMaximum?: boolean;
|
|
68
|
-
|
|
69
|
-
* @type int
|
|
70
|
-
*/
|
|
71
|
-
multipleOf?: number;
|
|
57
|
+
multipleOf?: number & Type<"int32">;
|
|
72
58
|
}
|
|
73
59
|
export interface IBoolean extends IAtomic<"boolean"> {}
|
|
74
60
|
|
|
@@ -77,26 +63,14 @@ export namespace IJsonSchema {
|
|
|
77
63
|
----------------------------------------------------------- */
|
|
78
64
|
export interface IArray extends ISignificant<"array"> {
|
|
79
65
|
items: IJsonSchema;
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
*/
|
|
83
|
-
minItems?: number;
|
|
84
|
-
/**
|
|
85
|
-
* @type uint
|
|
86
|
-
*/
|
|
87
|
-
maxItems?: number;
|
|
66
|
+
minItems?: number & Type<"uint32">;
|
|
67
|
+
maxItems?: number & Type<"uint32">;
|
|
88
68
|
"x-typia-tuple"?: ITuple;
|
|
89
69
|
}
|
|
90
70
|
export interface ITuple extends ISignificant<"array"> {
|
|
91
71
|
items: IJsonSchema[];
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
*/
|
|
95
|
-
minItems: number;
|
|
96
|
-
/**
|
|
97
|
-
* @type uint
|
|
98
|
-
*/
|
|
99
|
-
maxItems?: number;
|
|
72
|
+
minItems: number & Type<"uint32">;
|
|
73
|
+
maxItems?: number & Type<"uint32">;
|
|
100
74
|
}
|
|
101
75
|
export interface IReference extends IAttribute {
|
|
102
76
|
$ref: string;
|
|
@@ -124,7 +98,6 @@ export namespace IJsonSchema {
|
|
|
124
98
|
deprecated?: boolean;
|
|
125
99
|
title?: string;
|
|
126
100
|
description?: string;
|
|
127
|
-
"x-typia-metaTags"?: IMetadataCommentTag[];
|
|
128
101
|
"x-typia-jsDocTags"?: IJsDocTagInfo[];
|
|
129
102
|
"x-typia-required"?: boolean;
|
|
130
103
|
"x-typia-optional"?: boolean;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { IJsDocTagInfo } from "./IJsDocTagInfo";
|
|
2
2
|
import { IMetadata } from "./IMetadata";
|
|
3
|
-
import { IMetadataCommentTag } from "./IMetadataCommentTag";
|
|
4
3
|
|
|
5
4
|
export interface IMetadataAlias {
|
|
6
5
|
name: string;
|
|
@@ -8,7 +7,6 @@ export interface IMetadataAlias {
|
|
|
8
7
|
nullables: boolean[];
|
|
9
8
|
|
|
10
9
|
description: string | null;
|
|
11
|
-
tags: IMetadataCommentTag[];
|
|
12
10
|
jsDocTags: IJsDocTagInfo[];
|
|
13
11
|
recursive: boolean;
|
|
14
12
|
}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { IJsDocTagInfo } from "./IJsDocTagInfo";
|
|
2
2
|
import { IMetadata } from "./IMetadata";
|
|
3
|
-
import { IMetadataCommentTag } from "./IMetadataCommentTag";
|
|
4
3
|
|
|
5
4
|
export interface IMetadataProperty {
|
|
6
5
|
key: IMetadata;
|
|
7
6
|
value: IMetadata;
|
|
8
7
|
description: string | null;
|
|
9
|
-
tags: IMetadataCommentTag[];
|
|
10
8
|
jsDocTags: IJsDocTagInfo[];
|
|
11
9
|
}
|