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.
Files changed (250) hide show
  1. package/lib/factories/MetadataCollection.d.ts +4 -4
  2. package/lib/factories/MetadataCollection.js +6 -4
  3. package/lib/factories/MetadataCollection.js.map +1 -1
  4. package/lib/factories/MetadataFactory.d.ts +2 -2
  5. package/lib/factories/MetadataFactory.js +8 -2
  6. package/lib/factories/MetadataFactory.js.map +1 -1
  7. package/lib/factories/MetadataTypeTagFactory.d.ts +2 -2
  8. package/lib/factories/MetadataTypeTagFactory.js +6 -6
  9. package/lib/factories/MetadataTypeTagFactory.js.map +1 -1
  10. package/lib/factories/MetadataTypeTagSchemaFactory.d.ts +2 -2
  11. package/lib/factories/MetadataTypeTagSchemaFactory.js +1 -1
  12. package/lib/factories/MetadataTypeTagSchemaFactory.js.map +1 -1
  13. package/lib/factories/ProtobufFactory.js +12 -22
  14. package/lib/factories/ProtobufFactory.js.map +1 -1
  15. package/lib/factories/internal/metadata/emplace_metadata_object.d.ts +2 -2
  16. package/lib/factories/internal/metadata/iterate_metadata_collection.js +2 -1
  17. package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
  18. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.d.ts +2 -2
  19. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +5 -2
  20. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  21. package/lib/factories/internal/metadata/iterate_metadata_object.js +5 -1
  22. package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
  23. package/lib/factories/internal/metadata/iterate_metadata_sort.js +6 -2
  24. package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
  25. package/lib/internal/$ProtobufSizer.js +1 -8
  26. package/lib/internal/$ProtobufSizer.js.map +1 -1
  27. package/lib/json.d.ts +1 -1
  28. package/lib/module.d.ts +1 -1
  29. package/lib/module.js +1 -1
  30. package/lib/module.js.map +1 -1
  31. package/lib/programmers/CheckerProgrammer.d.ts +2 -2
  32. package/lib/programmers/CheckerProgrammer.js +5 -3
  33. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  34. package/lib/programmers/FeatureProgrammer.d.ts +5 -5
  35. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  36. package/lib/programmers/IsProgrammer.d.ts +2 -2
  37. package/lib/programmers/RandomProgrammer.js +1 -1
  38. package/lib/programmers/RandomProgrammer.js.map +1 -1
  39. package/lib/programmers/helpers/ProtobufUtil.d.ts +2 -2
  40. package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
  41. package/lib/programmers/helpers/PruneJoiner.d.ts +2 -2
  42. package/lib/programmers/helpers/RandomJoiner.d.ts +2 -2
  43. package/lib/programmers/helpers/UnionExplorer.d.ts +3 -3
  44. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  45. package/lib/programmers/helpers/UnionPredicator.d.ts +3 -3
  46. package/lib/programmers/helpers/UnionPredicator.js.map +1 -1
  47. package/lib/programmers/http/HttpFormDataProgrammer.js +1 -1
  48. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
  49. package/lib/programmers/http/HttpHeadersProgrammer.js +1 -1
  50. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  51. package/lib/programmers/http/HttpQueryProgrammer.js +2 -2
  52. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  53. package/lib/programmers/internal/application_union_discriminator.js +2 -2
  54. package/lib/programmers/internal/application_union_discriminator.js.map +1 -1
  55. package/lib/programmers/internal/application_v30_alias.js +1 -1
  56. package/lib/programmers/internal/application_v30_alias.js.map +1 -1
  57. package/lib/programmers/internal/application_v30_schema.js +1 -1
  58. package/lib/programmers/internal/application_v30_schema.js.map +1 -1
  59. package/lib/programmers/internal/application_v31_alias.js +1 -1
  60. package/lib/programmers/internal/application_v31_alias.js.map +1 -1
  61. package/lib/programmers/internal/application_v31_schema.js +1 -1
  62. package/lib/programmers/internal/application_v31_schema.js.map +1 -1
  63. package/lib/programmers/internal/llm_schema_object.js +1 -1
  64. package/lib/programmers/internal/llm_schema_object.js.map +1 -1
  65. package/lib/programmers/internal/llm_schema_station.js +2 -2
  66. package/lib/programmers/internal/llm_schema_station.js.map +1 -1
  67. package/lib/programmers/internal/prune_object_properties.js.map +1 -1
  68. package/lib/programmers/json/JsonApplicationProgrammer.js +6 -5
  69. package/lib/programmers/json/JsonApplicationProgrammer.js.map +1 -1
  70. package/lib/programmers/json/JsonSchemasProgrammer.d.ts +1 -1
  71. package/lib/programmers/json/JsonStringifyProgrammer.js +3 -3
  72. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  73. package/lib/programmers/llm/LlmApplicationProgrammer.js +7 -6
  74. package/lib/programmers/llm/LlmApplicationProgrammer.js.map +1 -1
  75. package/lib/programmers/llm/LlmSchemaProgrammer.js +1 -1
  76. package/lib/programmers/llm/LlmSchemaProgrammer.js.map +1 -1
  77. package/lib/programmers/misc/MiscCloneProgrammer.js +1 -1
  78. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  79. package/lib/programmers/misc/MiscPruneProgrammer.js +1 -1
  80. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  81. package/lib/programmers/notations/NotationGeneralProgrammer.js +1 -1
  82. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  83. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +6 -6
  84. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  85. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +1 -1
  86. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  87. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +3 -3
  88. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  89. package/lib/schemas/json/IJsonSchemaCollection.js +3 -0
  90. package/lib/schemas/json/IJsonSchemaCollection.js.map +1 -0
  91. package/lib/schemas/metadata/IMetadata.d.ts +4 -1
  92. package/lib/schemas/metadata/IMetadataArray.d.ts +1 -2
  93. package/lib/schemas/metadata/IMetadataComponents.d.ts +2 -2
  94. package/lib/schemas/metadata/IMetadataDictionary.d.ts +2 -2
  95. package/lib/schemas/metadata/IMetadataObject.d.ts +2 -8
  96. package/lib/schemas/metadata/IMetadataObjectType.d.ts +11 -0
  97. package/lib/schemas/{json/IJsonSchemaList.js → metadata/IMetadataObjectType.js} +1 -1
  98. package/lib/schemas/metadata/IMetadataObjectType.js.map +1 -0
  99. package/lib/schemas/metadata/IMetadataTuple.d.ts +1 -2
  100. package/lib/schemas/metadata/Metadata.js +14 -15
  101. package/lib/schemas/metadata/Metadata.js.map +1 -1
  102. package/lib/schemas/metadata/MetadataArray.js +1 -1
  103. package/lib/schemas/metadata/MetadataArray.js.map +1 -1
  104. package/lib/schemas/metadata/MetadataComponents.d.ts +2 -2
  105. package/lib/schemas/metadata/MetadataComponents.js +2 -2
  106. package/lib/schemas/metadata/MetadataComponents.js.map +1 -1
  107. package/lib/schemas/metadata/MetadataObject.d.ts +8 -12
  108. package/lib/schemas/metadata/MetadataObject.js +44 -82
  109. package/lib/schemas/metadata/MetadataObject.js.map +1 -1
  110. package/lib/schemas/metadata/MetadataObjectType.d.ts +20 -0
  111. package/lib/schemas/metadata/MetadataObjectType.js +106 -0
  112. package/lib/schemas/metadata/MetadataObjectType.js.map +1 -0
  113. package/lib/schemas/metadata/MetadataTuple.js +1 -1
  114. package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
  115. package/lib/transformers/TransformerError.js.map +1 -1
  116. package/package.json +2 -2
  117. package/src/executable/TypiaGenerateWizard.ts +83 -83
  118. package/src/executable/TypiaSetupWizard.ts +174 -174
  119. package/src/executable/setup/ArgumentParser.ts +42 -42
  120. package/src/executable/setup/FileRetriever.ts +19 -19
  121. package/src/executable/setup/PackageManager.ts +87 -87
  122. package/src/factories/IdentifierFactory.ts +89 -89
  123. package/src/factories/MetadataCollection.ts +280 -278
  124. package/src/factories/MetadataFactory.ts +11 -5
  125. package/src/factories/MetadataTypeTagFactory.ts +386 -385
  126. package/src/factories/MetadataTypeTagSchemaFactory.ts +82 -82
  127. package/src/factories/NumericRangeFactory.ts +72 -72
  128. package/src/factories/ProtobufFactory.ts +14 -28
  129. package/src/factories/StatementFactory.ts +90 -90
  130. package/src/factories/TemplateFactory.ts +64 -64
  131. package/src/factories/TypeFactory.ts +140 -140
  132. package/src/factories/internal/metadata/emplace_metadata_alias.ts +32 -32
  133. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +39 -39
  134. package/src/factories/internal/metadata/emplace_metadata_object.ts +2 -2
  135. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +56 -56
  136. package/src/factories/internal/metadata/explore_metadata.ts +30 -30
  137. package/src/factories/internal/metadata/iterate_metadata.ts +54 -54
  138. package/src/factories/internal/metadata/iterate_metadata_alias.ts +28 -28
  139. package/src/factories/internal/metadata/iterate_metadata_array.ts +63 -63
  140. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  141. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +28 -28
  142. package/src/factories/internal/metadata/iterate_metadata_collection.ts +4 -3
  143. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +2 -2
  144. package/src/factories/internal/metadata/iterate_metadata_constant.ts +76 -76
  145. package/src/factories/internal/metadata/iterate_metadata_escape.ts +49 -49
  146. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +219 -216
  147. package/src/factories/internal/metadata/iterate_metadata_map.ts +52 -52
  148. package/src/factories/internal/metadata/iterate_metadata_native.ts +236 -236
  149. package/src/factories/internal/metadata/iterate_metadata_object.ts +35 -27
  150. package/src/factories/internal/metadata/iterate_metadata_set.ts +39 -39
  151. package/src/factories/internal/metadata/iterate_metadata_sort.ts +87 -83
  152. package/src/factories/internal/metadata/iterate_metadata_template.ts +42 -42
  153. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +26 -26
  154. package/src/factories/internal/metadata/iterate_metadata_union.ts +19 -19
  155. package/src/internal/$ProtobufSizer.ts +1 -7
  156. package/src/json.ts +1 -1
  157. package/src/module.ts +1 -1
  158. package/src/programmers/CheckerProgrammer.ts +7 -5
  159. package/src/programmers/FeatureProgrammer.ts +9 -6
  160. package/src/programmers/IsProgrammer.ts +2 -2
  161. package/src/programmers/RandomProgrammer.ts +3 -3
  162. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +72 -72
  163. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +113 -113
  164. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +116 -116
  165. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +34 -34
  166. package/src/programmers/helpers/AtomicPredicator.ts +35 -35
  167. package/src/programmers/helpers/CloneJoiner.ts +143 -143
  168. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  169. package/src/programmers/helpers/NotationJoiner.ts +144 -144
  170. package/src/programmers/helpers/ProtobufUtil.ts +125 -125
  171. package/src/programmers/helpers/PruneJoiner.ts +148 -148
  172. package/src/programmers/helpers/RandomJoiner.ts +2 -2
  173. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  174. package/src/programmers/helpers/UnionExplorer.ts +372 -372
  175. package/src/programmers/helpers/UnionPredicator.ts +79 -77
  176. package/src/programmers/http/HttpFormDataProgrammer.ts +3 -3
  177. package/src/programmers/http/HttpHeadersProgrammer.ts +3 -3
  178. package/src/programmers/http/HttpQueryProgrammer.ts +4 -4
  179. package/src/programmers/internal/application_array.ts +56 -56
  180. package/src/programmers/internal/application_bigint.ts +25 -25
  181. package/src/programmers/internal/application_boolean.ts +25 -25
  182. package/src/programmers/internal/application_escaped.ts +96 -96
  183. package/src/programmers/internal/application_number.ts +25 -25
  184. package/src/programmers/internal/application_plugin.ts +19 -19
  185. package/src/programmers/internal/application_string.ts +25 -25
  186. package/src/programmers/internal/application_templates.ts +64 -64
  187. package/src/programmers/internal/application_union_discriminator.ts +35 -35
  188. package/src/programmers/internal/application_v30_alias.ts +59 -59
  189. package/src/programmers/internal/application_v30_native.ts +29 -29
  190. package/src/programmers/internal/application_v30_object.ts +165 -165
  191. package/src/programmers/internal/application_v30_schema.ts +220 -220
  192. package/src/programmers/internal/application_v30_tuple.ts +33 -33
  193. package/src/programmers/internal/application_v31_alias.ts +47 -47
  194. package/src/programmers/internal/application_v31_constant.ts +29 -29
  195. package/src/programmers/internal/application_v31_native.ts +25 -25
  196. package/src/programmers/internal/application_v31_object.ts +147 -147
  197. package/src/programmers/internal/application_v31_schema.ts +215 -215
  198. package/src/programmers/internal/application_v31_tuple.ts +22 -22
  199. package/src/programmers/internal/check_array_length.ts +46 -46
  200. package/src/programmers/internal/check_bigint.ts +49 -49
  201. package/src/programmers/internal/check_everything.ts +23 -23
  202. package/src/programmers/internal/check_native.ts +27 -27
  203. package/src/programmers/internal/check_number.ts +111 -111
  204. package/src/programmers/internal/check_string.ts +49 -49
  205. package/src/programmers/internal/check_template.ts +48 -48
  206. package/src/programmers/internal/check_union_array_like.ts +334 -334
  207. package/src/programmers/internal/decode_union_object.ts +116 -116
  208. package/src/programmers/internal/feature_object_entries.ts +2 -2
  209. package/src/programmers/internal/llm_schema_array.ts +22 -22
  210. package/src/programmers/internal/llm_schema_escaped.ts +84 -84
  211. package/src/programmers/internal/llm_schema_object.ts +132 -132
  212. package/src/programmers/internal/llm_schema_station.ts +190 -190
  213. package/src/programmers/internal/metadata_to_pattern.ts +42 -42
  214. package/src/programmers/internal/postfix_of_tuple.ts +5 -5
  215. package/src/programmers/internal/prune_object_properties.ts +2 -2
  216. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -162
  217. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  218. package/src/programmers/internal/template_to_pattern.ts +23 -23
  219. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +23 -23
  220. package/src/programmers/json/JsonApplicationProgrammer.ts +3 -3
  221. package/src/programmers/json/JsonSchemasProgrammer.ts +1 -1
  222. package/src/programmers/json/JsonStringifyProgrammer.ts +5 -5
  223. package/src/programmers/llm/LlmApplicationProgrammer.ts +4 -4
  224. package/src/programmers/llm/LlmSchemaProgrammer.ts +1 -1
  225. package/src/programmers/misc/MiscCloneProgrammer.ts +3 -3
  226. package/src/programmers/misc/MiscPruneProgrammer.ts +3 -3
  227. package/src/programmers/notations/NotationGeneralProgrammer.ts +3 -3
  228. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +11 -11
  229. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +8 -8
  230. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +201 -201
  231. package/src/schemas/json/{IJsonSchemaList.ts → IJsonSchemaCollection.ts} +22 -22
  232. package/src/schemas/metadata/IMetadata.ts +4 -1
  233. package/src/schemas/metadata/IMetadataArray.ts +1 -2
  234. package/src/schemas/metadata/IMetadataComponents.ts +2 -2
  235. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  236. package/src/schemas/metadata/IMetadataObject.ts +6 -13
  237. package/src/schemas/metadata/IMetadataObjectType.ts +13 -0
  238. package/src/schemas/metadata/IMetadataTuple.ts +1 -2
  239. package/src/schemas/metadata/Metadata.ts +616 -616
  240. package/src/schemas/metadata/MetadataArray.ts +1 -1
  241. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  242. package/src/schemas/metadata/MetadataObject.ts +48 -139
  243. package/src/schemas/metadata/MetadataObjectType.ts +149 -0
  244. package/src/schemas/metadata/MetadataTuple.ts +1 -1
  245. package/src/transformers/TransformerError.ts +8 -7
  246. package/src/transformers/features/json/JsonSchemasTransformer.ts +1 -1
  247. package/src/utils/MapUtil.ts +14 -14
  248. package/src/utils/NameEncoder.ts +32 -32
  249. package/lib/schemas/json/IJsonSchemaList.js.map +0 -1
  250. /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 { MetadataObject } from "../../schemas/metadata/MetadataObject";
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: MetadataObject | undefined = metadata.objects[0];
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: MetadataObject = props.metadata.objects[0]!;
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/IJsonSchemaList";
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 { MetadataObject } from "../../schemas/metadata/MetadataObject";
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((objects) =>
466
- objects.properties.every(
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: MetadataObject;
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 { MetadataObject } from "../../schemas/metadata/MetadataObject";
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: MetadataObject | undefined = metadata.objects[0];
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: MetadataObject = metadata.objects[0]!;
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 { MetadataObject } from "../../schemas/metadata/MetadataObject";
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: MetadataObject;
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 { MetadataObject } from "../../schemas/metadata/MetadataObject";
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: MetadataObject;
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 { MetadataObject } from "../../schemas/metadata/MetadataObject";
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: MetadataObject;
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 { MetadataObject } from "../../schemas/metadata/MetadataObject";
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: MetadataObject;
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: MetadataObject;
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: MetadataObject;
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 { MetadataObject } from "../../schemas/metadata/MetadataObject";
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: MetadataObject;
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: MetadataObject;
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: MetadataObject[];
855
+ objects: MetadataObjectType[];
856
856
  explore: FeatureProgrammer.IExplore;
857
- indexes?: Map<MetadataObject, number>;
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<MetadataObject, number> =
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: MetadataObject[] = props.objects.filter(
916
+ const remained: MetadataObjectType[] = props.objects.filter(
917
917
  (t) => specList.find((s) => s.object === t) === undefined,
918
918
  );
919
919