typia 7.0.0-dev.20241012 → 7.0.0-dev.20241018
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/lib/factories/JsonMetadataFactory.js +3 -2
- package/lib/factories/JsonMetadataFactory.js.map +1 -1
- package/lib/factories/MetadataCollection.d.ts +3 -3
- package/lib/factories/MetadataCollection.js +2 -2
- package/lib/factories/MetadataCollection.js.map +1 -1
- package/lib/factories/MetadataFactory.d.ts +2 -2
- package/lib/factories/MetadataFactory.js +3 -3
- package/lib/factories/MetadataFactory.js.map +1 -1
- package/lib/factories/MetadataTypeTagFactory.d.ts +3 -2
- package/lib/factories/MetadataTypeTagFactory.js +26 -3
- package/lib/factories/MetadataTypeTagFactory.js.map +1 -1
- package/lib/factories/ProtobufFactory.js +829 -156
- package/lib/factories/ProtobufFactory.js.map +1 -1
- package/lib/factories/internal/metadata/IMetadataIteratorProps.d.ts +1 -0
- package/lib/factories/internal/metadata/MetadataHelper.js +1 -1
- package/lib/factories/internal/metadata/MetadataHelper.js.map +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_alias.d.ts +2 -2
- package/lib/factories/internal/metadata/emplace_metadata_object.js +5 -5
- package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
- package/lib/factories/internal/metadata/explore_metadata.js +2 -0
- package/lib/factories/internal/metadata/explore_metadata.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata.js +1 -1
- package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_alias.js +8 -2
- package/lib/factories/internal/metadata/iterate_metadata_alias.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_collection.js +6 -6
- package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js +262 -137
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_map.js +4 -2
- package/lib/factories/internal/metadata/iterate_metadata_map.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_native.js +27 -11
- package/lib/factories/internal/metadata/iterate_metadata_native.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_set.js +8 -1
- package/lib/factories/internal/metadata/iterate_metadata_set.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_sort.js +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_template.js +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_template.js.map +1 -1
- package/lib/programmers/CheckerProgrammer.js +5 -5
- package/lib/programmers/CheckerProgrammer.js.map +1 -1
- package/lib/programmers/RandomProgrammer.js +12 -12
- package/lib/programmers/RandomProgrammer.js.map +1 -1
- package/lib/programmers/helpers/AtomicPredicator.js +3 -3
- package/lib/programmers/helpers/AtomicPredicator.js.map +1 -1
- package/lib/programmers/helpers/ProtobufUtil.d.ts +5 -4
- package/lib/programmers/helpers/ProtobufUtil.js +215 -92
- package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
- package/lib/programmers/helpers/UnionExplorer.d.ts +4 -2
- package/lib/programmers/helpers/UnionExplorer.js +1 -1
- package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
- package/lib/programmers/http/HttpFormDataProgrammer.js +6 -6
- package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
- package/lib/programmers/internal/application_escaped.js +2 -2
- package/lib/programmers/internal/application_escaped.js.map +1 -1
- package/lib/programmers/internal/application_v30_alias.js +13 -8
- package/lib/programmers/internal/application_v30_alias.js.map +1 -1
- package/lib/programmers/internal/application_v30_native.js +17 -10
- package/lib/programmers/internal/application_v30_native.js.map +1 -1
- package/lib/programmers/internal/application_v30_object.js +16 -6
- package/lib/programmers/internal/application_v30_object.js.map +1 -1
- package/lib/programmers/internal/application_v30_schema.js +24 -17
- package/lib/programmers/internal/application_v30_schema.js.map +1 -1
- package/lib/programmers/internal/application_v31_alias.js +12 -11
- package/lib/programmers/internal/application_v31_alias.js.map +1 -1
- package/lib/programmers/internal/application_v31_native.js +17 -10
- package/lib/programmers/internal/application_v31_native.js.map +1 -1
- package/lib/programmers/internal/application_v31_object.js +13 -6
- package/lib/programmers/internal/application_v31_object.js.map +1 -1
- package/lib/programmers/internal/application_v31_schema.js +23 -16
- package/lib/programmers/internal/application_v31_schema.js.map +1 -1
- package/lib/programmers/internal/check_dynamic_key.js +4 -4
- package/lib/programmers/internal/check_dynamic_key.js.map +1 -1
- package/lib/programmers/internal/check_native.js +3 -3
- package/lib/programmers/internal/check_union_array_like.js.map +1 -1
- package/lib/programmers/internal/llm_schema_escaped.js +2 -2
- package/lib/programmers/internal/llm_schema_escaped.js.map +1 -1
- package/lib/programmers/internal/llm_schema_object.js +18 -14
- package/lib/programmers/internal/llm_schema_object.js.map +1 -1
- package/lib/programmers/internal/llm_schema_station.js +8 -8
- package/lib/programmers/internal/llm_schema_station.js.map +1 -1
- package/lib/programmers/json/JsonSchemasProgrammer.js +5 -5
- package/lib/programmers/json/JsonSchemasProgrammer.js.map +1 -1
- package/lib/programmers/json/JsonStringifyProgrammer.js +18 -17
- package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
- package/lib/programmers/llm/LlmSchemaProgrammer.js +6 -6
- package/lib/programmers/llm/LlmSchemaProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscCloneProgrammer.js +7 -5
- package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscPruneProgrammer.js +1 -1
- package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
- package/lib/programmers/notations/NotationGeneralProgrammer.js +6 -4
- package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +15 -12
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +6 -4
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +51 -34
- package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
- package/lib/schemas/metadata/IMetadata.d.ts +14 -18
- package/lib/schemas/metadata/IMetadataAlias.d.ts +2 -7
- package/lib/schemas/metadata/IMetadataAliasType.d.ts +10 -0
- package/lib/schemas/metadata/IMetadataAliasType.js +3 -0
- package/lib/schemas/metadata/IMetadataAliasType.js.map +1 -0
- package/lib/schemas/metadata/IMetadataComponents.d.ts +2 -2
- package/lib/schemas/metadata/IMetadataConstantValue.d.ts +1 -1
- package/lib/schemas/metadata/IMetadataDictionary.d.ts +2 -2
- package/lib/schemas/metadata/IMetadataMap.d.ts +7 -0
- package/lib/schemas/metadata/{IMetadataEntry.js → IMetadataMap.js} +1 -1
- package/lib/schemas/metadata/IMetadataMap.js.map +1 -0
- package/lib/schemas/metadata/IMetadataNative.d.ts +5 -0
- package/lib/schemas/metadata/IMetadataNative.js +3 -0
- package/lib/schemas/metadata/IMetadataNative.js.map +1 -0
- package/lib/schemas/metadata/IMetadataSet.d.ts +6 -0
- package/lib/schemas/metadata/IMetadataSet.js +3 -0
- package/lib/schemas/metadata/IMetadataSet.js.map +1 -0
- package/lib/schemas/metadata/IMetadataTemplate.d.ts +1 -1
- package/lib/schemas/metadata/IMetadataTypeTag.d.ts +1 -1
- package/lib/schemas/metadata/Metadata.d.ts +6 -9
- package/lib/schemas/metadata/Metadata.js +136 -98
- package/lib/schemas/metadata/Metadata.js.map +1 -1
- package/lib/schemas/metadata/MetadataAlias.d.ts +8 -11
- package/lib/schemas/metadata/MetadataAlias.js +48 -33
- package/lib/schemas/metadata/MetadataAlias.js.map +1 -1
- package/lib/schemas/metadata/MetadataAliasType.d.ts +16 -0
- package/lib/schemas/metadata/MetadataAliasType.js +51 -0
- package/lib/schemas/metadata/MetadataAliasType.js.map +1 -0
- package/lib/schemas/metadata/MetadataComponents.d.ts +2 -2
- package/lib/schemas/metadata/MetadataComponents.js +2 -2
- package/lib/schemas/metadata/MetadataComponents.js.map +1 -1
- package/lib/schemas/metadata/MetadataConstantValue.d.ts +1 -1
- package/lib/schemas/metadata/MetadataMap.d.ts +14 -0
- package/lib/schemas/metadata/MetadataMap.js +66 -0
- package/lib/schemas/metadata/MetadataMap.js.map +1 -0
- package/lib/schemas/metadata/MetadataNative.d.ts +12 -0
- package/lib/schemas/metadata/MetadataNative.js +65 -0
- package/lib/schemas/metadata/MetadataNative.js.map +1 -0
- package/lib/schemas/metadata/MetadataSet.d.ts +13 -0
- package/lib/schemas/metadata/MetadataSet.js +64 -0
- package/lib/schemas/metadata/MetadataSet.js.map +1 -0
- package/lib/schemas/metadata/MetadataTemplate.d.ts +1 -1
- package/lib/tags/Example.d.ts +2 -2
- package/lib/tags/Examples.d.ts +2 -2
- package/lib/tags/JsonSchemaPlugin.d.ts +1 -1
- package/lib/tags/Sequence.d.ts +9 -0
- package/lib/tags/Sequence.js +3 -0
- package/lib/tags/Sequence.js.map +1 -0
- package/lib/tags/TagBase.d.ts +1 -1
- package/lib/tags/index.d.ts +1 -0
- package/lib/tags/index.js +1 -0
- package/lib/tags/index.js.map +1 -1
- package/package.json +1 -1
- package/src/factories/JsonMetadataFactory.ts +5 -2
- package/src/factories/MetadataCollection.ts +6 -6
- package/src/factories/MetadataFactory.ts +7 -7
- package/src/factories/MetadataTypeTagFactory.ts +31 -6
- package/src/factories/ProtobufFactory.ts +494 -176
- package/src/factories/internal/metadata/IMetadataIteratorProps.ts +1 -0
- package/src/factories/internal/metadata/MetadataHelper.ts +1 -1
- package/src/factories/internal/metadata/emplace_metadata_alias.ts +2 -2
- package/src/factories/internal/metadata/emplace_metadata_object.ts +5 -5
- package/src/factories/internal/metadata/explore_metadata.ts +1 -0
- package/src/factories/internal/metadata/iterate_metadata.ts +1 -1
- package/src/factories/internal/metadata/iterate_metadata_alias.ts +9 -4
- package/src/factories/internal/metadata/iterate_metadata_collection.ts +6 -6
- package/src/factories/internal/metadata/iterate_metadata_intersection.ts +163 -181
- package/src/factories/internal/metadata/iterate_metadata_map.ts +5 -2
- package/src/factories/internal/metadata/iterate_metadata_native.ts +20 -2
- package/src/factories/internal/metadata/iterate_metadata_set.ts +27 -11
- package/src/factories/internal/metadata/iterate_metadata_sort.ts +1 -1
- package/src/factories/internal/metadata/iterate_metadata_template.ts +1 -3
- package/src/programmers/CheckerProgrammer.ts +9 -7
- package/src/programmers/RandomProgrammer.ts +16 -14
- package/src/programmers/helpers/AtomicPredicator.ts +3 -3
- package/src/programmers/helpers/ProtobufUtil.ts +146 -43
- package/src/programmers/helpers/UnionExplorer.ts +62 -62
- package/src/programmers/http/HttpFormDataProgrammer.ts +10 -6
- package/src/programmers/internal/application_escaped.ts +2 -2
- package/src/programmers/internal/application_v30_alias.ts +18 -12
- package/src/programmers/internal/application_v30_native.ts +22 -12
- package/src/programmers/internal/application_v30_object.ts +23 -8
- package/src/programmers/internal/application_v30_schema.ts +31 -34
- package/src/programmers/internal/application_v31_alias.ts +16 -13
- package/src/programmers/internal/application_v31_native.ts +22 -12
- package/src/programmers/internal/application_v31_object.ts +19 -8
- package/src/programmers/internal/application_v31_schema.ts +26 -29
- package/src/programmers/internal/check_dynamic_key.ts +4 -4
- package/src/programmers/internal/check_native.ts +4 -4
- package/src/programmers/internal/check_union_array_like.ts +2 -1
- package/src/programmers/internal/llm_schema_escaped.ts +2 -2
- package/src/programmers/internal/llm_schema_object.ts +21 -18
- package/src/programmers/internal/llm_schema_station.ts +9 -11
- package/src/programmers/json/JsonSchemasProgrammer.ts +5 -5
- package/src/programmers/json/JsonStringifyProgrammer.ts +5 -5
- package/src/programmers/llm/LlmSchemaProgrammer.ts +6 -6
- package/src/programmers/misc/MiscCloneProgrammer.ts +11 -7
- package/src/programmers/misc/MiscPruneProgrammer.ts +1 -1
- package/src/programmers/notations/NotationGeneralProgrammer.ts +10 -6
- package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +14 -7
- package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +11 -8
- package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +45 -20
- package/src/schemas/metadata/IMetadata.ts +35 -39
- package/src/schemas/metadata/IMetadataAlias.ts +6 -12
- package/src/schemas/metadata/IMetadataAliasType.ts +12 -0
- package/src/schemas/metadata/IMetadataArray.ts +6 -6
- package/src/schemas/metadata/IMetadataComponents.ts +11 -11
- package/src/schemas/metadata/IMetadataConstantValue.ts +1 -1
- package/src/schemas/metadata/IMetadataDictionary.ts +2 -2
- package/src/schemas/metadata/IMetadataMap.ts +8 -0
- package/src/schemas/metadata/IMetadataNative.ts +6 -0
- package/src/schemas/metadata/IMetadataObjectType.ts +13 -13
- package/src/schemas/metadata/IMetadataSet.ts +7 -0
- package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
- package/src/schemas/metadata/IMetadataTuple.ts +6 -6
- package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
- package/src/schemas/metadata/Metadata.ts +100 -47
- package/src/schemas/metadata/MetadataAlias.ts +46 -61
- package/src/schemas/metadata/MetadataAliasType.ts +63 -0
- package/src/schemas/metadata/MetadataArray.ts +49 -49
- package/src/schemas/metadata/MetadataComponents.ts +3 -3
- package/src/schemas/metadata/MetadataConstantValue.ts +1 -1
- package/src/schemas/metadata/MetadataMap.ts +48 -0
- package/src/schemas/metadata/MetadataNative.ts +44 -0
- package/src/schemas/metadata/MetadataProperty.ts +5 -0
- package/src/schemas/metadata/MetadataSet.ts +45 -0
- package/src/schemas/metadata/MetadataTemplate.ts +80 -80
- package/src/schemas/metadata/MetadataTuple.ts +32 -32
- package/src/tags/Example.ts +24 -17
- package/src/tags/Examples.ts +16 -16
- package/src/tags/JsonSchemaPlugin.ts +8 -8
- package/src/tags/Sequence.ts +10 -0
- package/src/tags/TagBase.ts +82 -76
- package/src/tags/index.ts +1 -0
- package/lib/schemas/metadata/IMetadataEntry.d.ts +0 -5
- package/lib/schemas/metadata/IMetadataEntry.js.map +0 -1
- package/src/schemas/metadata/IMetadataEntry.ts +0 -6
|
@@ -4,11 +4,12 @@ import { CommentFactory } from "../../factories/CommentFactory";
|
|
|
4
4
|
|
|
5
5
|
import { IJsDocTagInfo } from "../../schemas/metadata/IJsDocTagInfo";
|
|
6
6
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
7
|
-
import {
|
|
7
|
+
import { MetadataObject } from "../../schemas/metadata/MetadataObject";
|
|
8
8
|
|
|
9
9
|
import { PatternUtil } from "../../utils/PatternUtil";
|
|
10
10
|
|
|
11
11
|
import { application_description } from "./application_description";
|
|
12
|
+
import { application_plugin } from "./application_plugin";
|
|
12
13
|
import { llm_schema_station } from "./llm_schema_station";
|
|
13
14
|
import { metadata_to_pattern } from "./metadata_to_pattern";
|
|
14
15
|
|
|
@@ -16,9 +17,9 @@ import { metadata_to_pattern } from "./metadata_to_pattern";
|
|
|
16
17
|
* @internal
|
|
17
18
|
*/
|
|
18
19
|
export const llm_schema_object = (props: {
|
|
19
|
-
object:
|
|
20
|
+
object: MetadataObject;
|
|
20
21
|
nullable: boolean;
|
|
21
|
-
}): ILlmSchema.IObject => {
|
|
22
|
+
}): ILlmSchema.IObject[] => {
|
|
22
23
|
// ITERATE PROPERTIES
|
|
23
24
|
const properties: Record<string, any> = {};
|
|
24
25
|
const extraMeta: ISuperfluous = {
|
|
@@ -27,7 +28,7 @@ export const llm_schema_object = (props: {
|
|
|
27
28
|
};
|
|
28
29
|
const required: string[] = [];
|
|
29
30
|
|
|
30
|
-
for (const property of props.object.properties) {
|
|
31
|
+
for (const property of props.object.type.properties) {
|
|
31
32
|
if (
|
|
32
33
|
// FUNCTIONAL TYPE
|
|
33
34
|
property.value.functions.length &&
|
|
@@ -82,20 +83,22 @@ export const llm_schema_object = (props: {
|
|
|
82
83
|
}
|
|
83
84
|
}
|
|
84
85
|
|
|
85
|
-
return {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
86
|
+
return application_plugin({
|
|
87
|
+
schema: {
|
|
88
|
+
type: "object",
|
|
89
|
+
properties,
|
|
90
|
+
nullable: props.nullable,
|
|
91
|
+
required: required.length ? required : undefined,
|
|
92
|
+
title: (() => {
|
|
93
|
+
const info: IJsDocTagInfo | undefined =
|
|
94
|
+
props.object.type.jsDocTags.find((tag) => tag.name === "title");
|
|
95
|
+
return info?.text?.length ? CommentFactory.merge(info.text) : undefined;
|
|
96
|
+
})(),
|
|
97
|
+
description: application_description(props.object.type),
|
|
98
|
+
additionalProperties: join(extraMeta),
|
|
99
|
+
},
|
|
100
|
+
tags: props.object.tags,
|
|
101
|
+
});
|
|
99
102
|
};
|
|
100
103
|
|
|
101
104
|
/**
|
|
@@ -99,8 +99,8 @@ export const llm_schema_station = (props: {
|
|
|
99
99
|
|
|
100
100
|
// NATIVES
|
|
101
101
|
for (const native of props.metadata.natives)
|
|
102
|
-
if (AtomicPredicator.native(native)) {
|
|
103
|
-
const type: string = native.toLowerCase();
|
|
102
|
+
if (AtomicPredicator.native(native.name)) {
|
|
103
|
+
const type: string = native.name.toLowerCase();
|
|
104
104
|
if (props.metadata.atomics.some((a) => a.type === type)) continue;
|
|
105
105
|
else if (type === "boolean")
|
|
106
106
|
insert(
|
|
@@ -138,7 +138,7 @@ export const llm_schema_station = (props: {
|
|
|
138
138
|
}),
|
|
139
139
|
)[0]!,
|
|
140
140
|
);
|
|
141
|
-
} else insert(llm_schema_native(native));
|
|
141
|
+
} else insert(llm_schema_native(native.name));
|
|
142
142
|
if (props.metadata.sets.length) insert(llm_schema_native("Set"));
|
|
143
143
|
if (props.metadata.maps.length) insert(llm_schema_native("Map"));
|
|
144
144
|
|
|
@@ -149,16 +149,14 @@ export const llm_schema_station = (props: {
|
|
|
149
149
|
"Error on LlmSchemaProgrammer.write(): LLM schema does not allow recursive object type.",
|
|
150
150
|
);
|
|
151
151
|
else
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
}),
|
|
157
|
-
);
|
|
152
|
+
llm_schema_object({
|
|
153
|
+
object,
|
|
154
|
+
nullable: props.metadata.nullable,
|
|
155
|
+
}).forEach(insert);
|
|
158
156
|
|
|
159
157
|
// ALIASES
|
|
160
158
|
for (const alias of props.metadata.aliases)
|
|
161
|
-
if (alias.recursive)
|
|
159
|
+
if (alias.type.recursive)
|
|
162
160
|
throw new Error(
|
|
163
161
|
"Error on LlmSchemaProgrammer.write(): LLM schema does not allow recursive alias type.",
|
|
164
162
|
);
|
|
@@ -166,7 +164,7 @@ export const llm_schema_station = (props: {
|
|
|
166
164
|
insert(
|
|
167
165
|
llm_schema_station({
|
|
168
166
|
...props,
|
|
169
|
-
metadata: alias.value,
|
|
167
|
+
metadata: alias.type.value,
|
|
170
168
|
}),
|
|
171
169
|
);
|
|
172
170
|
|
|
@@ -30,12 +30,12 @@ export namespace JsonSchemasProgrammer {
|
|
|
30
30
|
output.push("JSON schema does not support Set type.");
|
|
31
31
|
for (const native of metadata.natives)
|
|
32
32
|
if (
|
|
33
|
-
AtomicPredicator.native(native) === false &&
|
|
34
|
-
native !== "Date" &&
|
|
35
|
-
native !== "Blob" &&
|
|
36
|
-
native !== "File"
|
|
33
|
+
AtomicPredicator.native(native.name) === false &&
|
|
34
|
+
native.name !== "Date" &&
|
|
35
|
+
native.name !== "Blob" &&
|
|
36
|
+
native.name !== "File"
|
|
37
37
|
)
|
|
38
|
-
output.push(`JSON schema does not support ${native} type.`);
|
|
38
|
+
output.push(`JSON schema does not support ${native.name} type.`);
|
|
39
39
|
return output;
|
|
40
40
|
};
|
|
41
41
|
|
|
@@ -235,10 +235,10 @@ export namespace JsonStringifyProgrammer {
|
|
|
235
235
|
type: "resolved",
|
|
236
236
|
is:
|
|
237
237
|
props.metadata.escaped.original.size() === 1 &&
|
|
238
|
-
props.metadata.escaped.original.natives[0] === "Date"
|
|
238
|
+
props.metadata.escaped.original.natives[0]?.name === "Date"
|
|
239
239
|
? () =>
|
|
240
240
|
check_native({
|
|
241
|
-
|
|
241
|
+
name: "Date",
|
|
242
242
|
input: props.input,
|
|
243
243
|
})
|
|
244
244
|
: () =>
|
|
@@ -427,14 +427,14 @@ export namespace JsonStringifyProgrammer {
|
|
|
427
427
|
type: "object",
|
|
428
428
|
is: () =>
|
|
429
429
|
check_native({
|
|
430
|
-
|
|
430
|
+
name: native.name,
|
|
431
431
|
input: props.input,
|
|
432
432
|
}),
|
|
433
433
|
value: () =>
|
|
434
|
-
AtomicPredicator.native(native)
|
|
434
|
+
AtomicPredicator.native(native.name)
|
|
435
435
|
? decode_atomic({
|
|
436
436
|
...props,
|
|
437
|
-
type: native.toLowerCase() as Atomic.Literal,
|
|
437
|
+
type: native.name.toLowerCase() as Atomic.Literal,
|
|
438
438
|
})
|
|
439
439
|
: ts.factory.createStringLiteral("{}"),
|
|
440
440
|
});
|
|
@@ -26,14 +26,14 @@ export namespace LlmSchemaProgrammer {
|
|
|
26
26
|
output.push("LLM schema does not support Set type.");
|
|
27
27
|
for (const native of metadata.natives)
|
|
28
28
|
if (
|
|
29
|
-
AtomicPredicator.native(native) === false &&
|
|
30
|
-
native !== "Date" &&
|
|
31
|
-
native !== "Blob" &&
|
|
32
|
-
native !== "File"
|
|
29
|
+
AtomicPredicator.native(native.name) === false &&
|
|
30
|
+
native.name !== "Date" &&
|
|
31
|
+
native.name !== "Blob" &&
|
|
32
|
+
native.name !== "File"
|
|
33
33
|
)
|
|
34
|
-
output.push(`LLM schema does not support ${native} type.`);
|
|
34
|
+
output.push(`LLM schema does not support ${native.name} type.`);
|
|
35
35
|
if (
|
|
36
|
-
metadata.aliases.some((a) => a.recursive) ||
|
|
36
|
+
metadata.aliases.some((a) => a.type.recursive) ||
|
|
37
37
|
metadata.arrays.some((a) => a.type.recursive) ||
|
|
38
38
|
metadata.objects.some((o) => o.type.recursive) ||
|
|
39
39
|
metadata.tuples.some((t) => t.type.recursive)
|
|
@@ -9,7 +9,9 @@ import { TypeFactory } from "../../factories/TypeFactory";
|
|
|
9
9
|
|
|
10
10
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
11
11
|
import { MetadataArray } from "../../schemas/metadata/MetadataArray";
|
|
12
|
+
import { MetadataMap } from "../../schemas/metadata/MetadataMap";
|
|
12
13
|
import { MetadataObjectType } from "../../schemas/metadata/MetadataObjectType";
|
|
14
|
+
import { MetadataSet } from "../../schemas/metadata/MetadataSet";
|
|
13
15
|
import { MetadataTuple } from "../../schemas/metadata/MetadataTuple";
|
|
14
16
|
import { MetadataTupleType } from "../../schemas/metadata/MetadataTupleType";
|
|
15
17
|
|
|
@@ -270,16 +272,18 @@ export namespace MiscCloneProgrammer {
|
|
|
270
272
|
for (const native of props.metadata.natives)
|
|
271
273
|
unions.push({
|
|
272
274
|
type: "native",
|
|
273
|
-
is: () => ExpressionFactory.isInstanceOf(native, props.input),
|
|
275
|
+
is: () => ExpressionFactory.isInstanceOf(native.name, props.input),
|
|
274
276
|
value: () =>
|
|
275
|
-
native === "Boolean" ||
|
|
277
|
+
native.name === "Boolean" ||
|
|
278
|
+
native.name === "Number" ||
|
|
279
|
+
native.name === "String"
|
|
276
280
|
? ts.factory.createCallExpression(
|
|
277
281
|
IdentifierFactory.access(props.input, "valueOf"),
|
|
278
282
|
undefined,
|
|
279
283
|
undefined,
|
|
280
284
|
)
|
|
281
285
|
: decode_native({
|
|
282
|
-
type: native,
|
|
286
|
+
type: native.name,
|
|
283
287
|
input: props.input,
|
|
284
288
|
}),
|
|
285
289
|
});
|
|
@@ -578,7 +582,7 @@ export namespace MiscCloneProgrammer {
|
|
|
578
582
|
config: FeatureProgrammer.IConfig;
|
|
579
583
|
functor: FunctionProgrammer;
|
|
580
584
|
input: ts.Expression;
|
|
581
|
-
sets:
|
|
585
|
+
sets: MetadataSet[];
|
|
582
586
|
explore: FeatureProgrammer.IExplore;
|
|
583
587
|
}): ts.Expression =>
|
|
584
588
|
ts.factory.createCallExpression(
|
|
@@ -634,7 +638,7 @@ export namespace MiscCloneProgrammer {
|
|
|
634
638
|
config: FeatureProgrammer.IConfig;
|
|
635
639
|
functor: FunctionProgrammer;
|
|
636
640
|
input: ts.Expression;
|
|
637
|
-
maps:
|
|
641
|
+
maps: MetadataMap[];
|
|
638
642
|
explore: FeatureProgrammer.IExplore;
|
|
639
643
|
}): ts.Expression =>
|
|
640
644
|
ts.factory.createCallExpression(
|
|
@@ -967,9 +971,9 @@ export namespace MiscCloneProgrammer {
|
|
|
967
971
|
absorb: true,
|
|
968
972
|
validate: (metadata) => {
|
|
969
973
|
const output: string[] = [];
|
|
970
|
-
if (metadata.natives.some((
|
|
974
|
+
if (metadata.natives.some((native) => native.name === "WeakSet"))
|
|
971
975
|
output.push("unable to clone WeakSet");
|
|
972
|
-
else if (metadata.natives.some((
|
|
976
|
+
else if (metadata.natives.some((native) => native.name === "WeakMap"))
|
|
973
977
|
output.push("unable to clone WeakMap");
|
|
974
978
|
return output;
|
|
975
979
|
},
|
|
@@ -221,7 +221,7 @@ export namespace MiscPruneProgrammer {
|
|
|
221
221
|
for (const native of props.metadata.natives)
|
|
222
222
|
unions.push({
|
|
223
223
|
type: "native",
|
|
224
|
-
is: () => ExpressionFactory.isInstanceOf(native, props.input),
|
|
224
|
+
is: () => ExpressionFactory.isInstanceOf(native.name, props.input),
|
|
225
225
|
value: () => ts.factory.createReturnStatement(),
|
|
226
226
|
});
|
|
227
227
|
if (props.metadata.sets.length)
|
|
@@ -9,7 +9,9 @@ import { TypeFactory } from "../../factories/TypeFactory";
|
|
|
9
9
|
|
|
10
10
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
11
11
|
import { MetadataArray } from "../../schemas/metadata/MetadataArray";
|
|
12
|
+
import { MetadataMap } from "../../schemas/metadata/MetadataMap";
|
|
12
13
|
import { MetadataObjectType } from "../../schemas/metadata/MetadataObjectType";
|
|
14
|
+
import { MetadataSet } from "../../schemas/metadata/MetadataSet";
|
|
13
15
|
import { MetadataTuple } from "../../schemas/metadata/MetadataTuple";
|
|
14
16
|
import { MetadataTupleType } from "../../schemas/metadata/MetadataTupleType";
|
|
15
17
|
|
|
@@ -298,19 +300,21 @@ export namespace NotationGeneralProgrammer {
|
|
|
298
300
|
}),
|
|
299
301
|
});
|
|
300
302
|
for (const native of props.metadata.natives) {
|
|
301
|
-
if (native === "WeakSet" || native === "WeakMap") continue;
|
|
303
|
+
if (native.name === "WeakSet" || native.name === "WeakMap") continue;
|
|
302
304
|
unions.push({
|
|
303
305
|
type: "native",
|
|
304
|
-
is: () => ExpressionFactory.isInstanceOf(native, props.input),
|
|
306
|
+
is: () => ExpressionFactory.isInstanceOf(native.name, props.input),
|
|
305
307
|
value: () =>
|
|
306
|
-
native === "Boolean" ||
|
|
308
|
+
native.name === "Boolean" ||
|
|
309
|
+
native.name === "Number" ||
|
|
310
|
+
native.name === "String"
|
|
307
311
|
? ts.factory.createCallExpression(
|
|
308
312
|
IdentifierFactory.access(props.input, "valueOf"),
|
|
309
313
|
undefined,
|
|
310
314
|
undefined,
|
|
311
315
|
)
|
|
312
316
|
: decode_native({
|
|
313
|
-
name: native,
|
|
317
|
+
name: native.name,
|
|
314
318
|
input: props.input,
|
|
315
319
|
}),
|
|
316
320
|
});
|
|
@@ -530,7 +534,7 @@ export namespace NotationGeneralProgrammer {
|
|
|
530
534
|
functor: FunctionProgrammer;
|
|
531
535
|
input: ts.Expression;
|
|
532
536
|
explore: FeatureProgrammer.IExplore;
|
|
533
|
-
sets:
|
|
537
|
+
sets: Array<MetadataSet>;
|
|
534
538
|
}): ts.Expression =>
|
|
535
539
|
ts.factory.createCallExpression(
|
|
536
540
|
UnionExplorer.set({
|
|
@@ -585,7 +589,7 @@ export namespace NotationGeneralProgrammer {
|
|
|
585
589
|
config: FeatureProgrammer.IConfig;
|
|
586
590
|
functor: FunctionProgrammer;
|
|
587
591
|
input: ts.Expression;
|
|
588
|
-
maps:
|
|
592
|
+
maps: Array<MetadataMap>;
|
|
589
593
|
explore: FeatureProgrammer.IExplore;
|
|
590
594
|
}): ts.Expression =>
|
|
591
595
|
ts.factory.createCallExpression(
|
|
@@ -11,6 +11,7 @@ import { TypeFactory } from "../../factories/TypeFactory";
|
|
|
11
11
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
12
12
|
import { MetadataArray } from "../../schemas/metadata/MetadataArray";
|
|
13
13
|
import { MetadataAtomic } from "../../schemas/metadata/MetadataAtomic";
|
|
14
|
+
import { MetadataMap } from "../../schemas/metadata/MetadataMap";
|
|
14
15
|
import { MetadataObjectType } from "../../schemas/metadata/MetadataObjectType";
|
|
15
16
|
import { MetadataProperty } from "../../schemas/metadata/MetadataProperty";
|
|
16
17
|
|
|
@@ -359,12 +360,13 @@ export namespace ProtobufDecodeProgrammer {
|
|
|
359
360
|
|
|
360
361
|
const required: boolean =
|
|
361
362
|
props.metadata.isRequired() && !props.metadata.nullable;
|
|
362
|
-
|
|
363
|
+
// @todo
|
|
364
|
+
for (const [atomic] of ProtobufUtil.getAtomics(props.metadata))
|
|
363
365
|
emplace(
|
|
364
366
|
atomic,
|
|
365
367
|
decode_atomic({
|
|
366
368
|
metadata: props.metadata,
|
|
367
|
-
type: atomic,
|
|
369
|
+
type: atomic as ProtobufAtomic,
|
|
368
370
|
}),
|
|
369
371
|
);
|
|
370
372
|
if (props.metadata.natives.length) emplace("bytes", decode_bytes("bytes"));
|
|
@@ -420,8 +422,9 @@ export namespace ProtobufDecodeProgrammer {
|
|
|
420
422
|
);
|
|
421
423
|
if (props.type !== "int64" && props.type !== "uint64") return call;
|
|
422
424
|
|
|
423
|
-
|
|
424
|
-
|
|
425
|
+
// @todo
|
|
426
|
+
const isNumber: boolean = ProtobufUtil.getNumbers(props.metadata).has(
|
|
427
|
+
props.type,
|
|
425
428
|
);
|
|
426
429
|
return isNumber
|
|
427
430
|
? ts.factory.createCallExpression(
|
|
@@ -456,7 +459,11 @@ export namespace ProtobufDecodeProgrammer {
|
|
|
456
459
|
),
|
|
457
460
|
),
|
|
458
461
|
);
|
|
459
|
-
|
|
462
|
+
|
|
463
|
+
// @todo
|
|
464
|
+
const atomics = Array.from(
|
|
465
|
+
ProtobufUtil.getAtomics(props.array.type.value).keys(),
|
|
466
|
+
) as ProtobufAtomic[];
|
|
460
467
|
const decoder = atomics.length
|
|
461
468
|
? () =>
|
|
462
469
|
decode_atomic({
|
|
@@ -610,7 +617,7 @@ export namespace ProtobufDecodeProgrammer {
|
|
|
610
617
|
context: ITypiaContext;
|
|
611
618
|
functor: FunctionProgrammer;
|
|
612
619
|
accessor: ts.ElementAccessExpression | ts.PropertyAccessExpression;
|
|
613
|
-
entry:
|
|
620
|
+
entry: MetadataMap | MetadataProperty;
|
|
614
621
|
required: boolean;
|
|
615
622
|
}): ts.Statement[] =>
|
|
616
623
|
decode_entry({
|
|
@@ -644,7 +651,7 @@ export namespace ProtobufDecodeProgrammer {
|
|
|
644
651
|
functor: FunctionProgrammer;
|
|
645
652
|
initializer: () => ts.Expression;
|
|
646
653
|
setter: () => ts.Expression;
|
|
647
|
-
entry:
|
|
654
|
+
entry: MetadataMap | MetadataProperty;
|
|
648
655
|
required: boolean;
|
|
649
656
|
}): ts.Statement[] => {
|
|
650
657
|
const statements: ts.Statement[] = [
|
|
@@ -11,6 +11,7 @@ import { TypeFactory } from "../../factories/TypeFactory";
|
|
|
11
11
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
12
12
|
import { MetadataArray } from "../../schemas/metadata/MetadataArray";
|
|
13
13
|
import { MetadataAtomic } from "../../schemas/metadata/MetadataAtomic";
|
|
14
|
+
import { MetadataMap } from "../../schemas/metadata/MetadataMap";
|
|
14
15
|
import { MetadataObjectType } from "../../schemas/metadata/MetadataObjectType";
|
|
15
16
|
import { MetadataProperty } from "../../schemas/metadata/MetadataProperty";
|
|
16
17
|
|
|
@@ -306,11 +307,12 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
306
307
|
);
|
|
307
308
|
|
|
308
309
|
// STARTS FROM ATOMIC TYPES
|
|
310
|
+
// @todo
|
|
309
311
|
const unions: IUnion[] = [];
|
|
310
|
-
const numbers = ProtobufUtil.getNumbers(props.metadata);
|
|
311
|
-
const bigints = ProtobufUtil.getBigints(props.metadata);
|
|
312
|
+
const numbers = Array.from(ProtobufUtil.getNumbers(props.metadata).keys());
|
|
313
|
+
const bigints = Array.from(ProtobufUtil.getBigints(props.metadata).keys());
|
|
312
314
|
|
|
313
|
-
for (const atom of ProtobufUtil.getAtomics(props.metadata))
|
|
315
|
+
for (const [atom] of ProtobufUtil.getAtomics(props.metadata))
|
|
314
316
|
if (atom === "bool")
|
|
315
317
|
unions.push({
|
|
316
318
|
type: "bool",
|
|
@@ -333,7 +335,7 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
333
335
|
)
|
|
334
336
|
unions.push(
|
|
335
337
|
decode_number({
|
|
336
|
-
candidates: numbers,
|
|
338
|
+
candidates: numbers as ProtobufAtomic.Numeric[],
|
|
337
339
|
type: atom,
|
|
338
340
|
input: props.input,
|
|
339
341
|
}),
|
|
@@ -342,7 +344,7 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
342
344
|
if (numbers.some((n) => n === atom))
|
|
343
345
|
unions.push(
|
|
344
346
|
decode_number({
|
|
345
|
-
candidates: numbers,
|
|
347
|
+
candidates: numbers as ProtobufAtomic.Numeric[],
|
|
346
348
|
type: atom,
|
|
347
349
|
input: props.input,
|
|
348
350
|
}),
|
|
@@ -350,7 +352,7 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
350
352
|
else
|
|
351
353
|
unions.push(
|
|
352
354
|
decode_bigint({
|
|
353
|
-
candidates: bigints,
|
|
355
|
+
candidates: bigints as ProtobufAtomic.BigNumeric[],
|
|
354
356
|
type: atom,
|
|
355
357
|
input: props.input,
|
|
356
358
|
}),
|
|
@@ -489,7 +491,7 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
489
491
|
functor: FunctionProgrammer;
|
|
490
492
|
index: number;
|
|
491
493
|
input: ts.Expression;
|
|
492
|
-
entry:
|
|
494
|
+
entry: MetadataMap | MetadataProperty;
|
|
493
495
|
explore: FeatureProgrammer.IExplore;
|
|
494
496
|
}): ts.Block => {
|
|
495
497
|
const each: ts.Statement[] = [
|
|
@@ -822,7 +824,8 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
822
824
|
)
|
|
823
825
|
return ProtobufWire.LEN;
|
|
824
826
|
|
|
825
|
-
|
|
827
|
+
// @todo
|
|
828
|
+
const v = ProtobufUtil.getAtomics(metadata).keys().next().value!;
|
|
826
829
|
if (v === "string") return ProtobufWire.LEN;
|
|
827
830
|
else if (
|
|
828
831
|
v === "bool" ||
|
|
@@ -5,6 +5,7 @@ import { ProtobufFactory } from "../../factories/ProtobufFactory";
|
|
|
5
5
|
|
|
6
6
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
7
7
|
import { MetadataAtomic } from "../../schemas/metadata/MetadataAtomic";
|
|
8
|
+
import { MetadataMap } from "../../schemas/metadata/MetadataMap";
|
|
8
9
|
import { MetadataObjectType } from "../../schemas/metadata/MetadataObjectType";
|
|
9
10
|
import { MetadataProperty } from "../../schemas/metadata/MetadataProperty";
|
|
10
11
|
|
|
@@ -118,25 +119,27 @@ export namespace ProtobufMessageProgrammer {
|
|
|
118
119
|
};
|
|
119
120
|
|
|
120
121
|
/* -----------------------------------------------------------
|
|
121
|
-
|
|
122
|
-
|
|
122
|
+
DECODERS
|
|
123
|
+
----------------------------------------------------------- */
|
|
123
124
|
const decode = (props: {
|
|
124
125
|
sequence: IPointer<number>;
|
|
125
126
|
metadata: Metadata;
|
|
126
127
|
}): string => {
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
128
|
+
const union: Map<string, number | null> = new Map();
|
|
129
|
+
for (const native of props.metadata.natives)
|
|
130
|
+
if (native.name === "Uint8Array")
|
|
131
|
+
union.set("bytes", ProtobufUtil.getSequence(native.tags[0] ?? []));
|
|
132
|
+
ProtobufUtil.getAtomics(props.metadata, union);
|
|
131
133
|
for (const array of props.metadata.arrays)
|
|
132
|
-
|
|
134
|
+
union.set(
|
|
133
135
|
`repeated ${decode({
|
|
134
136
|
sequence: props.sequence,
|
|
135
137
|
metadata: array.type.value,
|
|
136
138
|
})}`,
|
|
139
|
+
ProtobufUtil.getSequence(array.tags[0] ?? []),
|
|
137
140
|
);
|
|
138
141
|
for (const obj of props.metadata.objects)
|
|
139
|
-
|
|
142
|
+
union.set(
|
|
140
143
|
is_dynamic_object(obj.type)
|
|
141
144
|
? decode_map({
|
|
142
145
|
sequence: props.sequence,
|
|
@@ -155,29 +158,51 @@ export namespace ProtobufMessageProgrammer {
|
|
|
155
158
|
}),
|
|
156
159
|
})
|
|
157
160
|
: NameEncoder.encode(obj.type.name),
|
|
161
|
+
ProtobufUtil.getSequence(obj.tags[0] ?? []),
|
|
158
162
|
);
|
|
159
163
|
for (const entry of props.metadata.maps)
|
|
160
|
-
|
|
164
|
+
union.set(
|
|
161
165
|
decode_map({
|
|
162
166
|
sequence: props.sequence,
|
|
163
167
|
entry,
|
|
164
168
|
}),
|
|
169
|
+
ProtobufUtil.getSequence(entry.tags[0] ?? []),
|
|
165
170
|
);
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
171
|
+
|
|
172
|
+
const sequenced: boolean = Array.from(union.values()).every(
|
|
173
|
+
(x) => x !== null,
|
|
174
|
+
);
|
|
175
|
+
if (sequenced === false)
|
|
176
|
+
return union.size === 1
|
|
177
|
+
? union.keys().next().value!
|
|
178
|
+
: [
|
|
179
|
+
"oneof ${name} {",
|
|
180
|
+
...Array.from(union.keys()).map((str) => {
|
|
181
|
+
const index: number = ++props.sequence.value;
|
|
182
|
+
return `${TAB}${str} v${index} = ${index};`;
|
|
183
|
+
}),
|
|
184
|
+
"}",
|
|
185
|
+
].join("\n");
|
|
186
|
+
else if (union.size === 1) {
|
|
187
|
+
const [key, value] = union.entries().next().value!;
|
|
188
|
+
props.sequence.value = value!;
|
|
189
|
+
return `${key} $\{name} = ${value}`;
|
|
190
|
+
}
|
|
191
|
+
props.sequence.value = Math.max(
|
|
192
|
+
...Array.from(union.values()).filter((v) => v !== null),
|
|
193
|
+
);
|
|
194
|
+
return [
|
|
195
|
+
"oneof ${name} {",
|
|
196
|
+
...Array.from(union.entries()).map(
|
|
197
|
+
([key, value]) => `${TAB}${key} v${value} = ${value};`,
|
|
198
|
+
),
|
|
199
|
+
"}",
|
|
200
|
+
].join("\n");
|
|
176
201
|
};
|
|
177
202
|
|
|
178
203
|
const decode_map = (props: {
|
|
179
204
|
sequence: IPointer<number>;
|
|
180
|
-
entry:
|
|
205
|
+
entry: MetadataMap | MetadataProperty;
|
|
181
206
|
}): string =>
|
|
182
207
|
`map<${decode({
|
|
183
208
|
sequence: props.sequence,
|
|
@@ -1,39 +1,35 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
natives: string[];
|
|
37
|
-
sets: IMetadata[];
|
|
38
|
-
maps: IMetadataEntry[];
|
|
39
|
-
}
|
|
1
|
+
import { IMetadataAlias } from "./IMetadataAlias";
|
|
2
|
+
import { IMetadataArray } from "./IMetadataArray";
|
|
3
|
+
import { IMetadataAtomic } from "./IMetadataAtomic";
|
|
4
|
+
import { IMetadataConstant } from "./IMetadataConstant";
|
|
5
|
+
import { IMetadataEscaped } from "./IMetadataEscaped";
|
|
6
|
+
import { IMetadataFunction } from "./IMetadataFunction";
|
|
7
|
+
import { IMetadataMap } from "./IMetadataMap";
|
|
8
|
+
import { IMetadataNative } from "./IMetadataNative";
|
|
9
|
+
import { IMetadataObject } from "./IMetadataObject";
|
|
10
|
+
import { IMetadataSet } from "./IMetadataSet";
|
|
11
|
+
import { IMetadataTemplate } from "./IMetadataTemplate";
|
|
12
|
+
import { IMetadataTuple } from "./IMetadataTuple";
|
|
13
|
+
|
|
14
|
+
export interface IMetadata {
|
|
15
|
+
any: boolean;
|
|
16
|
+
required: boolean;
|
|
17
|
+
optional: boolean;
|
|
18
|
+
nullable: boolean;
|
|
19
|
+
functions: IMetadataFunction[];
|
|
20
|
+
|
|
21
|
+
atomics: IMetadataAtomic[];
|
|
22
|
+
constants: IMetadataConstant[];
|
|
23
|
+
templates: IMetadataTemplate[];
|
|
24
|
+
escaped: IMetadataEscaped | null;
|
|
25
|
+
|
|
26
|
+
rest: IMetadata | null;
|
|
27
|
+
arrays: IMetadataArray[];
|
|
28
|
+
tuples: IMetadataTuple[];
|
|
29
|
+
objects: IMetadataObject[];
|
|
30
|
+
aliases: IMetadataAlias[];
|
|
31
|
+
|
|
32
|
+
natives: IMetadataNative[];
|
|
33
|
+
sets: IMetadataSet[];
|
|
34
|
+
maps: IMetadataMap[];
|
|
35
|
+
}
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
nullables: boolean[];
|
|
8
|
-
|
|
9
|
-
description: string | null;
|
|
10
|
-
jsDocTags: IJsDocTagInfo[];
|
|
11
|
-
recursive: boolean;
|
|
12
|
-
}
|
|
1
|
+
import { IMetadataTypeTag } from "./IMetadataTypeTag";
|
|
2
|
+
|
|
3
|
+
export interface IMetadataAlias {
|
|
4
|
+
name: string;
|
|
5
|
+
tags: IMetadataTypeTag[][];
|
|
6
|
+
}
|