typia 7.0.0-dev.20241011 → 7.0.0-dev.20241012
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/MetadataCollection.d.ts +4 -4
- package/lib/factories/MetadataCollection.js +6 -4
- package/lib/factories/MetadataCollection.js.map +1 -1
- package/lib/factories/MetadataFactory.d.ts +2 -2
- package/lib/factories/MetadataFactory.js +8 -2
- package/lib/factories/MetadataFactory.js.map +1 -1
- package/lib/factories/MetadataTypeTagFactory.d.ts +2 -2
- package/lib/factories/MetadataTypeTagFactory.js +6 -6
- package/lib/factories/MetadataTypeTagFactory.js.map +1 -1
- package/lib/factories/MetadataTypeTagSchemaFactory.d.ts +2 -2
- package/lib/factories/MetadataTypeTagSchemaFactory.js +1 -1
- package/lib/factories/MetadataTypeTagSchemaFactory.js.map +1 -1
- package/lib/factories/ProtobufFactory.js +12 -22
- package/lib/factories/ProtobufFactory.js.map +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_object.d.ts +2 -2
- package/lib/factories/internal/metadata/iterate_metadata_collection.js +2 -1
- package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_comment_tags.d.ts +2 -2
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js +5 -2
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_object.js +5 -1
- package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_sort.js +6 -2
- package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
- package/lib/internal/$ProtobufSizer.js +1 -8
- package/lib/internal/$ProtobufSizer.js.map +1 -1
- package/lib/json.d.ts +1 -1
- package/lib/module.d.ts +1 -1
- package/lib/module.js +1 -1
- package/lib/module.js.map +1 -1
- package/lib/programmers/CheckerProgrammer.d.ts +2 -2
- package/lib/programmers/CheckerProgrammer.js +5 -3
- package/lib/programmers/CheckerProgrammer.js.map +1 -1
- package/lib/programmers/FeatureProgrammer.d.ts +5 -5
- package/lib/programmers/FeatureProgrammer.js.map +1 -1
- package/lib/programmers/IsProgrammer.d.ts +2 -2
- package/lib/programmers/RandomProgrammer.js +1 -1
- package/lib/programmers/RandomProgrammer.js.map +1 -1
- package/lib/programmers/helpers/ProtobufUtil.d.ts +2 -2
- package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
- package/lib/programmers/helpers/PruneJoiner.d.ts +2 -2
- package/lib/programmers/helpers/RandomJoiner.d.ts +2 -2
- package/lib/programmers/helpers/UnionExplorer.d.ts +3 -3
- package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
- package/lib/programmers/helpers/UnionPredicator.d.ts +3 -3
- package/lib/programmers/helpers/UnionPredicator.js.map +1 -1
- package/lib/programmers/http/HttpFormDataProgrammer.js +1 -1
- package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpHeadersProgrammer.js +1 -1
- package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpQueryProgrammer.js +2 -2
- package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
- package/lib/programmers/internal/application_union_discriminator.js +2 -2
- package/lib/programmers/internal/application_union_discriminator.js.map +1 -1
- package/lib/programmers/internal/application_v30_alias.js +1 -1
- package/lib/programmers/internal/application_v30_alias.js.map +1 -1
- package/lib/programmers/internal/application_v30_schema.js +1 -1
- package/lib/programmers/internal/application_v30_schema.js.map +1 -1
- package/lib/programmers/internal/application_v31_alias.js +1 -1
- package/lib/programmers/internal/application_v31_alias.js.map +1 -1
- package/lib/programmers/internal/application_v31_schema.js +1 -1
- package/lib/programmers/internal/application_v31_schema.js.map +1 -1
- package/lib/programmers/internal/llm_schema_object.js +1 -1
- package/lib/programmers/internal/llm_schema_object.js.map +1 -1
- package/lib/programmers/internal/llm_schema_station.js +2 -2
- package/lib/programmers/internal/llm_schema_station.js.map +1 -1
- package/lib/programmers/internal/prune_object_properties.js.map +1 -1
- package/lib/programmers/json/JsonApplicationProgrammer.js +6 -5
- package/lib/programmers/json/JsonApplicationProgrammer.js.map +1 -1
- package/lib/programmers/json/JsonSchemasProgrammer.d.ts +1 -1
- package/lib/programmers/json/JsonStringifyProgrammer.js +3 -3
- package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
- package/lib/programmers/llm/LlmApplicationProgrammer.js +7 -6
- package/lib/programmers/llm/LlmApplicationProgrammer.js.map +1 -1
- package/lib/programmers/llm/LlmSchemaProgrammer.js +1 -1
- package/lib/programmers/llm/LlmSchemaProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscCloneProgrammer.js +1 -1
- 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 +1 -1
- package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +6 -6
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +1 -1
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +3 -3
- package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
- package/lib/schemas/json/IJsonSchemaCollection.js +3 -0
- package/lib/schemas/json/IJsonSchemaCollection.js.map +1 -0
- package/lib/schemas/metadata/IMetadata.d.ts +4 -1
- package/lib/schemas/metadata/IMetadataArray.d.ts +1 -2
- package/lib/schemas/metadata/IMetadataComponents.d.ts +2 -2
- package/lib/schemas/metadata/IMetadataDictionary.d.ts +2 -2
- package/lib/schemas/metadata/IMetadataObject.d.ts +2 -8
- package/lib/schemas/metadata/IMetadataObjectType.d.ts +11 -0
- package/lib/schemas/{json/IJsonSchemaList.js → metadata/IMetadataObjectType.js} +1 -1
- package/lib/schemas/metadata/IMetadataObjectType.js.map +1 -0
- package/lib/schemas/metadata/IMetadataTuple.d.ts +1 -2
- package/lib/schemas/metadata/Metadata.js +14 -15
- package/lib/schemas/metadata/Metadata.js.map +1 -1
- package/lib/schemas/metadata/MetadataArray.js +1 -1
- package/lib/schemas/metadata/MetadataArray.js.map +1 -1
- 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/MetadataObject.d.ts +8 -12
- package/lib/schemas/metadata/MetadataObject.js +44 -82
- package/lib/schemas/metadata/MetadataObject.js.map +1 -1
- package/lib/schemas/metadata/MetadataObjectType.d.ts +20 -0
- package/lib/schemas/metadata/MetadataObjectType.js +106 -0
- package/lib/schemas/metadata/MetadataObjectType.js.map +1 -0
- package/lib/schemas/metadata/MetadataTuple.js +1 -1
- package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
- package/lib/transformers/TransformerError.js.map +1 -1
- package/package.json +2 -2
- package/src/executable/TypiaGenerateWizard.ts +83 -83
- package/src/executable/TypiaSetupWizard.ts +174 -174
- package/src/executable/setup/ArgumentParser.ts +42 -42
- package/src/executable/setup/FileRetriever.ts +19 -19
- package/src/executable/setup/PackageManager.ts +87 -87
- package/src/factories/IdentifierFactory.ts +89 -89
- package/src/factories/MetadataCollection.ts +280 -278
- package/src/factories/MetadataFactory.ts +11 -5
- package/src/factories/MetadataTypeTagFactory.ts +386 -385
- package/src/factories/MetadataTypeTagSchemaFactory.ts +82 -82
- package/src/factories/NumericRangeFactory.ts +72 -72
- package/src/factories/ProtobufFactory.ts +14 -28
- package/src/factories/StatementFactory.ts +90 -90
- package/src/factories/TemplateFactory.ts +64 -64
- package/src/factories/TypeFactory.ts +140 -140
- package/src/factories/internal/metadata/emplace_metadata_alias.ts +32 -32
- package/src/factories/internal/metadata/emplace_metadata_array_type.ts +39 -39
- package/src/factories/internal/metadata/emplace_metadata_object.ts +2 -2
- package/src/factories/internal/metadata/emplace_metadata_tuple.ts +56 -56
- package/src/factories/internal/metadata/explore_metadata.ts +30 -30
- package/src/factories/internal/metadata/iterate_metadata.ts +54 -54
- package/src/factories/internal/metadata/iterate_metadata_alias.ts +28 -28
- package/src/factories/internal/metadata/iterate_metadata_array.ts +63 -63
- package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
- package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +28 -28
- package/src/factories/internal/metadata/iterate_metadata_collection.ts +4 -3
- package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +2 -2
- package/src/factories/internal/metadata/iterate_metadata_constant.ts +76 -76
- package/src/factories/internal/metadata/iterate_metadata_escape.ts +49 -49
- package/src/factories/internal/metadata/iterate_metadata_intersection.ts +219 -216
- package/src/factories/internal/metadata/iterate_metadata_map.ts +52 -52
- package/src/factories/internal/metadata/iterate_metadata_native.ts +236 -236
- package/src/factories/internal/metadata/iterate_metadata_object.ts +35 -27
- package/src/factories/internal/metadata/iterate_metadata_set.ts +39 -39
- package/src/factories/internal/metadata/iterate_metadata_sort.ts +87 -83
- package/src/factories/internal/metadata/iterate_metadata_template.ts +42 -42
- package/src/factories/internal/metadata/iterate_metadata_tuple.ts +26 -26
- package/src/factories/internal/metadata/iterate_metadata_union.ts +19 -19
- package/src/internal/$ProtobufSizer.ts +1 -7
- package/src/json.ts +1 -1
- package/src/module.ts +1 -1
- package/src/programmers/CheckerProgrammer.ts +7 -5
- package/src/programmers/FeatureProgrammer.ts +9 -6
- package/src/programmers/IsProgrammer.ts +2 -2
- package/src/programmers/RandomProgrammer.ts +3 -3
- package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +72 -72
- package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +113 -113
- package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +116 -116
- package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +34 -34
- package/src/programmers/helpers/AtomicPredicator.ts +35 -35
- package/src/programmers/helpers/CloneJoiner.ts +143 -143
- package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
- package/src/programmers/helpers/NotationJoiner.ts +144 -144
- package/src/programmers/helpers/ProtobufUtil.ts +125 -125
- package/src/programmers/helpers/PruneJoiner.ts +148 -148
- package/src/programmers/helpers/RandomJoiner.ts +2 -2
- package/src/programmers/helpers/StringifyPredicator.ts +13 -13
- package/src/programmers/helpers/UnionExplorer.ts +372 -372
- package/src/programmers/helpers/UnionPredicator.ts +79 -77
- package/src/programmers/http/HttpFormDataProgrammer.ts +3 -3
- package/src/programmers/http/HttpHeadersProgrammer.ts +3 -3
- package/src/programmers/http/HttpQueryProgrammer.ts +4 -4
- package/src/programmers/internal/application_array.ts +56 -56
- package/src/programmers/internal/application_bigint.ts +25 -25
- package/src/programmers/internal/application_boolean.ts +25 -25
- package/src/programmers/internal/application_escaped.ts +96 -96
- package/src/programmers/internal/application_number.ts +25 -25
- package/src/programmers/internal/application_plugin.ts +19 -19
- package/src/programmers/internal/application_string.ts +25 -25
- package/src/programmers/internal/application_templates.ts +64 -64
- package/src/programmers/internal/application_union_discriminator.ts +35 -35
- package/src/programmers/internal/application_v30_alias.ts +59 -59
- package/src/programmers/internal/application_v30_native.ts +29 -29
- package/src/programmers/internal/application_v30_object.ts +165 -165
- package/src/programmers/internal/application_v30_schema.ts +220 -220
- package/src/programmers/internal/application_v30_tuple.ts +33 -33
- package/src/programmers/internal/application_v31_alias.ts +47 -47
- package/src/programmers/internal/application_v31_constant.ts +29 -29
- package/src/programmers/internal/application_v31_native.ts +25 -25
- package/src/programmers/internal/application_v31_object.ts +147 -147
- package/src/programmers/internal/application_v31_schema.ts +215 -215
- package/src/programmers/internal/application_v31_tuple.ts +22 -22
- package/src/programmers/internal/check_array_length.ts +46 -46
- package/src/programmers/internal/check_bigint.ts +49 -49
- package/src/programmers/internal/check_everything.ts +23 -23
- package/src/programmers/internal/check_native.ts +27 -27
- package/src/programmers/internal/check_number.ts +111 -111
- package/src/programmers/internal/check_string.ts +49 -49
- package/src/programmers/internal/check_template.ts +48 -48
- package/src/programmers/internal/check_union_array_like.ts +334 -334
- package/src/programmers/internal/decode_union_object.ts +116 -116
- package/src/programmers/internal/feature_object_entries.ts +2 -2
- package/src/programmers/internal/llm_schema_array.ts +22 -22
- package/src/programmers/internal/llm_schema_escaped.ts +84 -84
- package/src/programmers/internal/llm_schema_object.ts +132 -132
- package/src/programmers/internal/llm_schema_station.ts +190 -190
- package/src/programmers/internal/metadata_to_pattern.ts +42 -42
- package/src/programmers/internal/postfix_of_tuple.ts +5 -5
- package/src/programmers/internal/prune_object_properties.ts +2 -2
- package/src/programmers/internal/stringify_dynamic_properties.ts +162 -162
- package/src/programmers/internal/stringify_regular_properties.ts +81 -81
- package/src/programmers/internal/template_to_pattern.ts +23 -23
- package/src/programmers/internal/wrap_metadata_rest_tuple.ts +23 -23
- package/src/programmers/json/JsonApplicationProgrammer.ts +3 -3
- package/src/programmers/json/JsonSchemasProgrammer.ts +1 -1
- package/src/programmers/json/JsonStringifyProgrammer.ts +5 -5
- package/src/programmers/llm/LlmApplicationProgrammer.ts +4 -4
- package/src/programmers/llm/LlmSchemaProgrammer.ts +1 -1
- package/src/programmers/misc/MiscCloneProgrammer.ts +3 -3
- package/src/programmers/misc/MiscPruneProgrammer.ts +3 -3
- package/src/programmers/notations/NotationGeneralProgrammer.ts +3 -3
- package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +11 -11
- package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +8 -8
- package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +201 -201
- package/src/schemas/json/{IJsonSchemaList.ts → IJsonSchemaCollection.ts} +22 -22
- package/src/schemas/metadata/IMetadata.ts +4 -1
- package/src/schemas/metadata/IMetadataArray.ts +1 -2
- package/src/schemas/metadata/IMetadataComponents.ts +2 -2
- package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
- package/src/schemas/metadata/IMetadataObject.ts +6 -13
- package/src/schemas/metadata/IMetadataObjectType.ts +13 -0
- package/src/schemas/metadata/IMetadataTuple.ts +1 -2
- package/src/schemas/metadata/Metadata.ts +616 -616
- package/src/schemas/metadata/MetadataArray.ts +1 -1
- package/src/schemas/metadata/MetadataComponents.ts +98 -98
- package/src/schemas/metadata/MetadataObject.ts +48 -139
- package/src/schemas/metadata/MetadataObjectType.ts +149 -0
- package/src/schemas/metadata/MetadataTuple.ts +1 -1
- package/src/transformers/TransformerError.ts +8 -7
- package/src/transformers/features/json/JsonSchemasTransformer.ts +1 -1
- package/src/utils/MapUtil.ts +14 -14
- package/src/utils/NameEncoder.ts +32 -32
- package/lib/schemas/json/IJsonSchemaList.js.map +0 -1
- /package/lib/schemas/json/{IJsonSchemaList.d.ts → IJsonSchemaCollection.d.ts} +0 -0
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
2
|
-
import { MetadataArray } from "../../schemas/metadata/MetadataArray";
|
|
3
|
-
import { MetadataArrayType } from "../../schemas/metadata/MetadataArrayType";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* @internal
|
|
7
|
-
*/
|
|
8
|
-
export const wrap_metadata_rest_tuple = (rest: Metadata) => {
|
|
9
|
-
const wrapper: Metadata = Metadata.initialize();
|
|
10
|
-
wrapper.arrays.push(
|
|
11
|
-
MetadataArray.create({
|
|
12
|
-
type: MetadataArrayType.create({
|
|
13
|
-
name: `...${rest.getName()}`,
|
|
14
|
-
value: rest,
|
|
15
|
-
nullables: [],
|
|
16
|
-
recursive: false,
|
|
17
|
-
index: null,
|
|
18
|
-
}),
|
|
19
|
-
tags: [],
|
|
20
|
-
}),
|
|
21
|
-
);
|
|
22
|
-
return wrapper;
|
|
23
|
-
};
|
|
1
|
+
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
2
|
+
import { MetadataArray } from "../../schemas/metadata/MetadataArray";
|
|
3
|
+
import { MetadataArrayType } from "../../schemas/metadata/MetadataArrayType";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export const wrap_metadata_rest_tuple = (rest: Metadata) => {
|
|
9
|
+
const wrapper: Metadata = Metadata.initialize();
|
|
10
|
+
wrapper.arrays.push(
|
|
11
|
+
MetadataArray.create({
|
|
12
|
+
type: MetadataArrayType.create({
|
|
13
|
+
name: `...${rest.getName()}`,
|
|
14
|
+
value: rest,
|
|
15
|
+
nullables: [],
|
|
16
|
+
recursive: false,
|
|
17
|
+
index: null,
|
|
18
|
+
}),
|
|
19
|
+
tags: [],
|
|
20
|
+
}),
|
|
21
|
+
);
|
|
22
|
+
return wrapper;
|
|
23
|
+
};
|
|
@@ -3,7 +3,7 @@ import { MetadataFactory } from "../../factories/MetadataFactory";
|
|
|
3
3
|
import { IJsonApplication } from "../../schemas/json/IJsonApplication";
|
|
4
4
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
5
5
|
import { MetadataFunction } from "../../schemas/metadata/MetadataFunction";
|
|
6
|
-
import {
|
|
6
|
+
import { MetadataObjectType } from "../../schemas/metadata/MetadataObjectType";
|
|
7
7
|
|
|
8
8
|
import { IJsDocTagInfo } from "../../module";
|
|
9
9
|
import { JsonSchemasProgrammer } from "./JsonSchemasProgrammer";
|
|
@@ -26,7 +26,7 @@ export namespace JsonApplicationProgrammer {
|
|
|
26
26
|
"JSON application's generic arugment must be a class/interface type.",
|
|
27
27
|
);
|
|
28
28
|
|
|
29
|
-
const object:
|
|
29
|
+
const object: MetadataObjectType | undefined = metadata.objects[0]?.type;
|
|
30
30
|
if (object !== undefined) {
|
|
31
31
|
if (object.properties.some((p) => p.key.isSoleLiteral() === false))
|
|
32
32
|
output.push("JSON application does not allow dynamic keys.");
|
|
@@ -74,7 +74,7 @@ export namespace JsonApplicationProgrammer {
|
|
|
74
74
|
if (errors.length)
|
|
75
75
|
throw new Error("Failed to write LLM application: " + errors.join("\n"));
|
|
76
76
|
|
|
77
|
-
const object:
|
|
77
|
+
const object: MetadataObjectType = props.metadata.objects[0]!.type;
|
|
78
78
|
const definitions: Metadata[] = [];
|
|
79
79
|
const setters: Array<(schema: IJsonApplication.Schema<Version>) => void> =
|
|
80
80
|
[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OpenApi, OpenApiV3 } from "@samchon/openapi";
|
|
2
2
|
|
|
3
|
-
import { IJsonSchemaCollection } from "../../schemas/json/
|
|
3
|
+
import { IJsonSchemaCollection } from "../../schemas/json/IJsonSchemaCollection";
|
|
4
4
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
5
5
|
|
|
6
6
|
import { TransformerError } from "../../transformers/TransformerError";
|
|
@@ -11,7 +11,7 @@ import { ValueFactory } from "../../factories/ValueFactory";
|
|
|
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 {
|
|
14
|
+
import { MetadataObjectType } from "../../schemas/metadata/MetadataObjectType";
|
|
15
15
|
import { MetadataTuple } from "../../schemas/metadata/MetadataTuple";
|
|
16
16
|
import { MetadataTupleType } from "../../schemas/metadata/MetadataTupleType";
|
|
17
17
|
|
|
@@ -462,8 +462,8 @@ export namespace JsonStringifyProgrammer {
|
|
|
462
462
|
is: () =>
|
|
463
463
|
ExpressionFactory.isObject({
|
|
464
464
|
checkNull: true,
|
|
465
|
-
checkArray: props.metadata.objects.some((
|
|
466
|
-
|
|
465
|
+
checkArray: props.metadata.objects.some((object) =>
|
|
466
|
+
object.type.properties.every(
|
|
467
467
|
(prop) => !prop.key.isSoleLiteral() || !prop.value.isRequired(),
|
|
468
468
|
),
|
|
469
469
|
),
|
|
@@ -530,7 +530,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
530
530
|
const decode_object = (props: {
|
|
531
531
|
functor: FunctionProgrammer;
|
|
532
532
|
input: ts.Expression;
|
|
533
|
-
object:
|
|
533
|
+
object: MetadataObjectType;
|
|
534
534
|
explore: FeatureProgrammer.IExplore;
|
|
535
535
|
}): ts.CallExpression =>
|
|
536
536
|
FeatureProgrammer.decode_object({
|
|
@@ -762,7 +762,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
762
762
|
? decode_object({
|
|
763
763
|
functor: props.functor,
|
|
764
764
|
input: props.input,
|
|
765
|
-
object: props.metadata.objects[0]
|
|
765
|
+
object: props.metadata.objects[0]!.type,
|
|
766
766
|
explore: props.explore,
|
|
767
767
|
})
|
|
768
768
|
: ts.factory.createCallExpression(
|
|
@@ -5,7 +5,7 @@ import { MetadataFactory } from "../../factories/MetadataFactory";
|
|
|
5
5
|
|
|
6
6
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
7
7
|
import { MetadataFunction } from "../../schemas/metadata/MetadataFunction";
|
|
8
|
-
import {
|
|
8
|
+
import { MetadataObjectType } from "../../schemas/metadata/MetadataObjectType";
|
|
9
9
|
|
|
10
10
|
import { IJsDocTagInfo } from "../../module";
|
|
11
11
|
import { LlmSchemaProgrammer } from "./LlmSchemaProgrammer";
|
|
@@ -20,7 +20,7 @@ export namespace LlmApplicationProgrammer {
|
|
|
20
20
|
top ??= metadata;
|
|
21
21
|
if (explore.top === false)
|
|
22
22
|
if (
|
|
23
|
-
explore.object === top?.objects[0] &&
|
|
23
|
+
explore.object === top?.objects[0]?.type &&
|
|
24
24
|
typeof explore.property === "string" &&
|
|
25
25
|
metadata.size() === 1 &&
|
|
26
26
|
metadata.nullable === false &&
|
|
@@ -41,7 +41,7 @@ export namespace LlmApplicationProgrammer {
|
|
|
41
41
|
"LLM application's generic arugment must be a class/interface type.",
|
|
42
42
|
);
|
|
43
43
|
|
|
44
|
-
const object:
|
|
44
|
+
const object: MetadataObjectType | undefined = metadata.objects[0]?.type;
|
|
45
45
|
if (object !== undefined) {
|
|
46
46
|
if (object.properties.some((p) => p.key.isSoleLiteral() === false))
|
|
47
47
|
output.push("LLM application does not allow dynamic keys.");
|
|
@@ -98,7 +98,7 @@ export namespace LlmApplicationProgrammer {
|
|
|
98
98
|
if (errors.length)
|
|
99
99
|
throw new Error("Failed to write LLM application: " + errors.join("\n"));
|
|
100
100
|
|
|
101
|
-
const object:
|
|
101
|
+
const object: MetadataObjectType = metadata.objects[0]!.type;
|
|
102
102
|
return {
|
|
103
103
|
functions: object.properties
|
|
104
104
|
.filter(
|
|
@@ -35,7 +35,7 @@ export namespace LlmSchemaProgrammer {
|
|
|
35
35
|
if (
|
|
36
36
|
metadata.aliases.some((a) => a.recursive) ||
|
|
37
37
|
metadata.arrays.some((a) => a.type.recursive) ||
|
|
38
|
-
metadata.objects.some((o) => o.recursive) ||
|
|
38
|
+
metadata.objects.some((o) => o.type.recursive) ||
|
|
39
39
|
metadata.tuples.some((t) => t.type.recursive)
|
|
40
40
|
)
|
|
41
41
|
output.push("LLM schema does not support recursive type.");
|
|
@@ -9,7 +9,7 @@ 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 {
|
|
12
|
+
import { MetadataObjectType } from "../../schemas/metadata/MetadataObjectType";
|
|
13
13
|
import { MetadataTuple } from "../../schemas/metadata/MetadataTuple";
|
|
14
14
|
import { MetadataTupleType } from "../../schemas/metadata/MetadataTupleType";
|
|
15
15
|
|
|
@@ -336,7 +336,7 @@ export namespace MiscCloneProgrammer {
|
|
|
336
336
|
const decode_object = (props: {
|
|
337
337
|
functor: FunctionProgrammer;
|
|
338
338
|
input: ts.Expression;
|
|
339
|
-
object:
|
|
339
|
+
object: MetadataObjectType;
|
|
340
340
|
explore: FeatureProgrammer.IExplore;
|
|
341
341
|
}) =>
|
|
342
342
|
FeatureProgrammer.decode_object({
|
|
@@ -711,7 +711,7 @@ export namespace MiscCloneProgrammer {
|
|
|
711
711
|
props.metadata.objects.length === 1
|
|
712
712
|
? decode_object({
|
|
713
713
|
...props,
|
|
714
|
-
object: props.metadata.objects[0]
|
|
714
|
+
object: props.metadata.objects[0]!.type,
|
|
715
715
|
})
|
|
716
716
|
: ts.factory.createCallExpression(
|
|
717
717
|
ts.factory.createIdentifier(
|
|
@@ -9,7 +9,7 @@ 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 {
|
|
12
|
+
import { MetadataObjectType } from "../../schemas/metadata/MetadataObjectType";
|
|
13
13
|
import { MetadataTuple } from "../../schemas/metadata/MetadataTuple";
|
|
14
14
|
import { MetadataTupleType } from "../../schemas/metadata/MetadataTupleType";
|
|
15
15
|
|
|
@@ -274,7 +274,7 @@ export namespace MiscPruneProgrammer {
|
|
|
274
274
|
const decode_object = (props: {
|
|
275
275
|
functor: FunctionProgrammer;
|
|
276
276
|
input: ts.Expression;
|
|
277
|
-
object:
|
|
277
|
+
object: MetadataObjectType;
|
|
278
278
|
explore: FeatureProgrammer.IExplore;
|
|
279
279
|
}) =>
|
|
280
280
|
FeatureProgrammer.decode_object({
|
|
@@ -431,7 +431,7 @@ export namespace MiscPruneProgrammer {
|
|
|
431
431
|
if (props.metadata.objects.length === 1)
|
|
432
432
|
return decode_object({
|
|
433
433
|
...props,
|
|
434
|
-
object: props.metadata.objects[0]
|
|
434
|
+
object: props.metadata.objects[0]!.type,
|
|
435
435
|
});
|
|
436
436
|
|
|
437
437
|
return ts.factory.createCallExpression(
|
|
@@ -9,7 +9,7 @@ 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 {
|
|
12
|
+
import { MetadataObjectType } from "../../schemas/metadata/MetadataObjectType";
|
|
13
13
|
import { MetadataTuple } from "../../schemas/metadata/MetadataTuple";
|
|
14
14
|
import { MetadataTupleType } from "../../schemas/metadata/MetadataTupleType";
|
|
15
15
|
|
|
@@ -367,7 +367,7 @@ export namespace NotationGeneralProgrammer {
|
|
|
367
367
|
|
|
368
368
|
const decode_object = (props: {
|
|
369
369
|
functor: FunctionProgrammer;
|
|
370
|
-
object:
|
|
370
|
+
object: MetadataObjectType;
|
|
371
371
|
input: ts.Expression;
|
|
372
372
|
explore: FeatureProgrammer.IExplore;
|
|
373
373
|
}) =>
|
|
@@ -661,7 +661,7 @@ export namespace NotationGeneralProgrammer {
|
|
|
661
661
|
if (props.metadata.objects.length === 1)
|
|
662
662
|
return decode_object({
|
|
663
663
|
functor: props.functor,
|
|
664
|
-
object: props.metadata.objects[0]
|
|
664
|
+
object: props.metadata.objects[0]!.type,
|
|
665
665
|
input: props.input,
|
|
666
666
|
explore: props.explore,
|
|
667
667
|
});
|
|
@@ -11,7 +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 {
|
|
14
|
+
import { MetadataObjectType } from "../../schemas/metadata/MetadataObjectType";
|
|
15
15
|
import { MetadataProperty } from "../../schemas/metadata/MetadataProperty";
|
|
16
16
|
|
|
17
17
|
import { IProgrammerProps } from "../../transformers/IProgrammerProps";
|
|
@@ -93,7 +93,7 @@ export namespace ProtobufDecodeProgrammer {
|
|
|
93
93
|
ts.factory.createReturnStatement(
|
|
94
94
|
decode_regular_object({
|
|
95
95
|
top: true,
|
|
96
|
-
object: meta.objects[0]
|
|
96
|
+
object: meta.objects[0]!.type,
|
|
97
97
|
}),
|
|
98
98
|
),
|
|
99
99
|
],
|
|
@@ -121,7 +121,7 @@ export namespace ProtobufDecodeProgrammer {
|
|
|
121
121
|
const write_object_function = (props: {
|
|
122
122
|
context: ITypiaContext;
|
|
123
123
|
functor: FunctionProgrammer;
|
|
124
|
-
object:
|
|
124
|
+
object: MetadataObjectType;
|
|
125
125
|
}): ts.ArrowFunction =>
|
|
126
126
|
ts.factory.createArrowFunction(
|
|
127
127
|
undefined,
|
|
@@ -311,7 +311,7 @@ export namespace ProtobufDecodeProgrammer {
|
|
|
311
311
|
? ts.factory.createStringLiteral("")
|
|
312
312
|
: value.objects.length &&
|
|
313
313
|
value.objects.some(
|
|
314
|
-
(obj) => !ProtobufUtil.isStaticObject(obj),
|
|
314
|
+
(obj) => !ProtobufUtil.isStaticObject(obj.type),
|
|
315
315
|
)
|
|
316
316
|
? ts.factory.createObjectLiteralExpression()
|
|
317
317
|
: ts.factory.createIdentifier("undefined"),
|
|
@@ -390,17 +390,17 @@ export namespace ProtobufDecodeProgrammer {
|
|
|
390
390
|
);
|
|
391
391
|
for (const object of props.metadata.objects)
|
|
392
392
|
emplace(
|
|
393
|
-
object.name,
|
|
394
|
-
ProtobufUtil.isStaticObject(object)
|
|
393
|
+
object.type.name,
|
|
394
|
+
ProtobufUtil.isStaticObject(object.type)
|
|
395
395
|
? decode_regular_object({
|
|
396
396
|
top: false,
|
|
397
|
-
object,
|
|
397
|
+
object: object.type,
|
|
398
398
|
})
|
|
399
399
|
: decode_dynamic_object({
|
|
400
400
|
context: props.context,
|
|
401
401
|
functor: props.functor,
|
|
402
402
|
accessor: props.accessor,
|
|
403
|
-
object,
|
|
403
|
+
object: object.type,
|
|
404
404
|
required,
|
|
405
405
|
}),
|
|
406
406
|
);
|
|
@@ -469,7 +469,7 @@ export namespace ProtobufDecodeProgrammer {
|
|
|
469
469
|
? () =>
|
|
470
470
|
decode_regular_object({
|
|
471
471
|
top: false,
|
|
472
|
-
object: props.array.type.value.objects[0]
|
|
472
|
+
object: props.array.type.value.objects[0]!.type,
|
|
473
473
|
})
|
|
474
474
|
: null;
|
|
475
475
|
if (decoder === null) throw new Error("Never reach here.");
|
|
@@ -544,7 +544,7 @@ export namespace ProtobufDecodeProgrammer {
|
|
|
544
544
|
|
|
545
545
|
const decode_regular_object = (props: {
|
|
546
546
|
top: boolean;
|
|
547
|
-
object:
|
|
547
|
+
object: MetadataObjectType;
|
|
548
548
|
}): ts.Expression =>
|
|
549
549
|
ts.factory.createCallExpression(
|
|
550
550
|
ts.factory.createIdentifier(`${PREFIX}o${props.object.index}`),
|
|
@@ -567,7 +567,7 @@ export namespace ProtobufDecodeProgrammer {
|
|
|
567
567
|
context: ITypiaContext;
|
|
568
568
|
functor: FunctionProgrammer;
|
|
569
569
|
accessor: ts.ElementAccessExpression | ts.PropertyAccessExpression;
|
|
570
|
-
object:
|
|
570
|
+
object: MetadataObjectType;
|
|
571
571
|
required: boolean;
|
|
572
572
|
}): ts.Statement[] => {
|
|
573
573
|
const top: MetadataProperty = props.object.properties[0]!;
|
|
@@ -11,7 +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 {
|
|
14
|
+
import { MetadataObjectType } from "../../schemas/metadata/MetadataObjectType";
|
|
15
15
|
import { MetadataProperty } from "../../schemas/metadata/MetadataProperty";
|
|
16
16
|
|
|
17
17
|
import { IProgrammerProps } from "../../transformers/IProgrammerProps";
|
|
@@ -209,7 +209,7 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
209
209
|
context: ITypiaContext;
|
|
210
210
|
functor: FunctionProgrammer;
|
|
211
211
|
input: ts.Expression;
|
|
212
|
-
object:
|
|
212
|
+
object: MetadataObjectType;
|
|
213
213
|
explore: FeatureProgrammer.IExplore;
|
|
214
214
|
}): ts.ArrowFunction => {
|
|
215
215
|
let index: number = 1;
|
|
@@ -433,7 +433,7 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
433
433
|
...props,
|
|
434
434
|
level: 0,
|
|
435
435
|
index,
|
|
436
|
-
objects: props.metadata.objects,
|
|
436
|
+
objects: props.metadata.objects.map((o) => o.type),
|
|
437
437
|
explore: {
|
|
438
438
|
...props.explore,
|
|
439
439
|
from: "object",
|
|
@@ -547,7 +547,7 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
547
547
|
functor: FunctionProgrammer;
|
|
548
548
|
index: number | null;
|
|
549
549
|
input: ts.Expression;
|
|
550
|
-
object:
|
|
550
|
+
object: MetadataObjectType;
|
|
551
551
|
explore: FeatureProgrammer.IExplore;
|
|
552
552
|
}): ts.Block => {
|
|
553
553
|
const top: MetadataProperty = props.object.properties[0]!;
|
|
@@ -852,9 +852,9 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
852
852
|
level: number;
|
|
853
853
|
index: number | null;
|
|
854
854
|
input: ts.Expression;
|
|
855
|
-
objects:
|
|
855
|
+
objects: MetadataObjectType[];
|
|
856
856
|
explore: FeatureProgrammer.IExplore;
|
|
857
|
-
indexes?: Map<
|
|
857
|
+
indexes?: Map<MetadataObjectType, number>;
|
|
858
858
|
}): ts.Block => {
|
|
859
859
|
if (props.objects.length === 1)
|
|
860
860
|
return decode_object({
|
|
@@ -874,7 +874,7 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
874
874
|
const specList: UnionPredicator.ISpecialized[] = UnionPredicator.object(
|
|
875
875
|
props.objects,
|
|
876
876
|
);
|
|
877
|
-
const indexes: Map<
|
|
877
|
+
const indexes: Map<MetadataObjectType, number> =
|
|
878
878
|
props.indexes ??
|
|
879
879
|
new Map(props.objects.map((t, i) => [t, props.index! + i]));
|
|
880
880
|
|
|
@@ -913,7 +913,7 @@ export namespace ProtobufEncodeProgrammer {
|
|
|
913
913
|
});
|
|
914
914
|
return StatementFactory.block(condition);
|
|
915
915
|
}
|
|
916
|
-
const remained:
|
|
916
|
+
const remained: MetadataObjectType[] = props.objects.filter(
|
|
917
917
|
(t) => specList.find((s) => s.object === t) === undefined,
|
|
918
918
|
);
|
|
919
919
|
|