typia 7.0.0-dev.20241012 → 7.0.0-dev.20241019

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 (256) hide show
  1. package/lib/factories/JsonMetadataFactory.js +3 -2
  2. package/lib/factories/JsonMetadataFactory.js.map +1 -1
  3. package/lib/factories/MetadataCollection.d.ts +3 -3
  4. package/lib/factories/MetadataCollection.js +2 -2
  5. package/lib/factories/MetadataCollection.js.map +1 -1
  6. package/lib/factories/MetadataFactory.d.ts +2 -2
  7. package/lib/factories/MetadataFactory.js +3 -3
  8. package/lib/factories/MetadataFactory.js.map +1 -1
  9. package/lib/factories/MetadataTypeTagFactory.d.ts +3 -2
  10. package/lib/factories/MetadataTypeTagFactory.js +26 -3
  11. package/lib/factories/MetadataTypeTagFactory.js.map +1 -1
  12. package/lib/factories/ProtobufFactory.js +1266 -160
  13. package/lib/factories/ProtobufFactory.js.map +1 -1
  14. package/lib/factories/internal/metadata/IMetadataIteratorProps.d.ts +1 -0
  15. package/lib/factories/internal/metadata/MetadataHelper.js +1 -1
  16. package/lib/factories/internal/metadata/MetadataHelper.js.map +1 -1
  17. package/lib/factories/internal/metadata/emplace_metadata_alias.d.ts +2 -2
  18. package/lib/factories/internal/metadata/emplace_metadata_object.js +5 -5
  19. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
  20. package/lib/factories/internal/metadata/explore_metadata.js +2 -0
  21. package/lib/factories/internal/metadata/explore_metadata.js.map +1 -1
  22. package/lib/factories/internal/metadata/iterate_metadata.js +1 -1
  23. package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
  24. package/lib/factories/internal/metadata/iterate_metadata_alias.js +8 -2
  25. package/lib/factories/internal/metadata/iterate_metadata_alias.js.map +1 -1
  26. package/lib/factories/internal/metadata/iterate_metadata_collection.js +6 -6
  27. package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
  28. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +262 -137
  29. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  30. package/lib/factories/internal/metadata/iterate_metadata_map.js +4 -2
  31. package/lib/factories/internal/metadata/iterate_metadata_map.js.map +1 -1
  32. package/lib/factories/internal/metadata/iterate_metadata_native.js +27 -11
  33. package/lib/factories/internal/metadata/iterate_metadata_native.js.map +1 -1
  34. package/lib/factories/internal/metadata/iterate_metadata_set.js +8 -1
  35. package/lib/factories/internal/metadata/iterate_metadata_set.js.map +1 -1
  36. package/lib/factories/internal/metadata/iterate_metadata_sort.js +1 -1
  37. package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
  38. package/lib/factories/internal/metadata/iterate_metadata_template.js +1 -1
  39. package/lib/factories/internal/metadata/iterate_metadata_template.js.map +1 -1
  40. package/lib/programmers/CheckerProgrammer.js +5 -5
  41. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  42. package/lib/programmers/RandomProgrammer.js +12 -12
  43. package/lib/programmers/RandomProgrammer.js.map +1 -1
  44. package/lib/programmers/helpers/AtomicPredicator.js +3 -3
  45. package/lib/programmers/helpers/AtomicPredicator.js.map +1 -1
  46. package/lib/programmers/helpers/ProtobufUtil.d.ts +6 -3
  47. package/lib/programmers/helpers/ProtobufUtil.js +216 -93
  48. package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
  49. package/lib/programmers/helpers/UnionExplorer.d.ts +4 -2
  50. package/lib/programmers/helpers/UnionExplorer.js +1 -1
  51. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  52. package/lib/programmers/http/HttpFormDataProgrammer.js +6 -6
  53. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
  54. package/lib/programmers/internal/application_escaped.js +2 -2
  55. package/lib/programmers/internal/application_escaped.js.map +1 -1
  56. package/lib/programmers/internal/application_v30_alias.js +13 -8
  57. package/lib/programmers/internal/application_v30_alias.js.map +1 -1
  58. package/lib/programmers/internal/application_v30_native.js +17 -10
  59. package/lib/programmers/internal/application_v30_native.js.map +1 -1
  60. package/lib/programmers/internal/application_v30_object.js +16 -6
  61. package/lib/programmers/internal/application_v30_object.js.map +1 -1
  62. package/lib/programmers/internal/application_v30_schema.js +24 -17
  63. package/lib/programmers/internal/application_v30_schema.js.map +1 -1
  64. package/lib/programmers/internal/application_v31_alias.js +12 -11
  65. package/lib/programmers/internal/application_v31_alias.js.map +1 -1
  66. package/lib/programmers/internal/application_v31_native.js +17 -10
  67. package/lib/programmers/internal/application_v31_native.js.map +1 -1
  68. package/lib/programmers/internal/application_v31_object.js +13 -6
  69. package/lib/programmers/internal/application_v31_object.js.map +1 -1
  70. package/lib/programmers/internal/application_v31_schema.js +23 -16
  71. package/lib/programmers/internal/application_v31_schema.js.map +1 -1
  72. package/lib/programmers/internal/check_dynamic_key.js +4 -4
  73. package/lib/programmers/internal/check_dynamic_key.js.map +1 -1
  74. package/lib/programmers/internal/check_native.js +3 -3
  75. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  76. package/lib/programmers/internal/llm_schema_escaped.js +2 -2
  77. package/lib/programmers/internal/llm_schema_escaped.js.map +1 -1
  78. package/lib/programmers/internal/llm_schema_object.js +18 -14
  79. package/lib/programmers/internal/llm_schema_object.js.map +1 -1
  80. package/lib/programmers/internal/llm_schema_station.js +8 -8
  81. package/lib/programmers/internal/llm_schema_station.js.map +1 -1
  82. package/lib/programmers/json/JsonSchemasProgrammer.js +5 -5
  83. package/lib/programmers/json/JsonSchemasProgrammer.js.map +1 -1
  84. package/lib/programmers/json/JsonStringifyProgrammer.js +18 -17
  85. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  86. package/lib/programmers/llm/LlmSchemaProgrammer.js +6 -6
  87. package/lib/programmers/llm/LlmSchemaProgrammer.js.map +1 -1
  88. package/lib/programmers/misc/MiscCloneProgrammer.js +7 -5
  89. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  90. package/lib/programmers/misc/MiscPruneProgrammer.js +1 -1
  91. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  92. package/lib/programmers/notations/NotationGeneralProgrammer.js +6 -4
  93. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  94. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +169 -220
  95. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  96. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +6 -4
  97. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  98. package/lib/programmers/protobuf/ProtobufMessageProgrammer.d.ts +1 -1
  99. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +53 -128
  100. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  101. package/lib/schemas/metadata/IMetadata.d.ts +14 -18
  102. package/lib/schemas/metadata/IMetadataAlias.d.ts +2 -7
  103. package/lib/schemas/metadata/IMetadataAliasType.d.ts +10 -0
  104. package/lib/schemas/metadata/IMetadataAliasType.js +3 -0
  105. package/lib/schemas/metadata/IMetadataAliasType.js.map +1 -0
  106. package/lib/schemas/metadata/IMetadataComponents.d.ts +2 -2
  107. package/lib/schemas/metadata/IMetadataConstantValue.d.ts +1 -1
  108. package/lib/schemas/metadata/IMetadataDictionary.d.ts +2 -2
  109. package/lib/schemas/metadata/IMetadataMap.d.ts +7 -0
  110. package/lib/schemas/metadata/{IMetadataEntry.js → IMetadataMap.js} +1 -1
  111. package/lib/schemas/metadata/IMetadataMap.js.map +1 -0
  112. package/lib/schemas/metadata/IMetadataNative.d.ts +5 -0
  113. package/lib/schemas/metadata/IMetadataNative.js +3 -0
  114. package/lib/schemas/metadata/IMetadataNative.js.map +1 -0
  115. package/lib/schemas/metadata/IMetadataSet.d.ts +6 -0
  116. package/lib/schemas/metadata/IMetadataSet.js +3 -0
  117. package/lib/schemas/metadata/IMetadataSet.js.map +1 -0
  118. package/lib/schemas/metadata/IMetadataTemplate.d.ts +1 -1
  119. package/lib/schemas/metadata/IMetadataTypeTag.d.ts +1 -1
  120. package/lib/schemas/metadata/Metadata.d.ts +6 -9
  121. package/lib/schemas/metadata/Metadata.js +136 -98
  122. package/lib/schemas/metadata/Metadata.js.map +1 -1
  123. package/lib/schemas/metadata/MetadataAlias.d.ts +8 -11
  124. package/lib/schemas/metadata/MetadataAlias.js +48 -33
  125. package/lib/schemas/metadata/MetadataAlias.js.map +1 -1
  126. package/lib/schemas/metadata/MetadataAliasType.d.ts +16 -0
  127. package/lib/schemas/metadata/MetadataAliasType.js +51 -0
  128. package/lib/schemas/metadata/MetadataAliasType.js.map +1 -0
  129. package/lib/schemas/metadata/MetadataComponents.d.ts +2 -2
  130. package/lib/schemas/metadata/MetadataComponents.js +2 -2
  131. package/lib/schemas/metadata/MetadataComponents.js.map +1 -1
  132. package/lib/schemas/metadata/MetadataConstantValue.d.ts +1 -1
  133. package/lib/schemas/metadata/MetadataMap.d.ts +14 -0
  134. package/lib/schemas/metadata/MetadataMap.js +66 -0
  135. package/lib/schemas/metadata/MetadataMap.js.map +1 -0
  136. package/lib/schemas/metadata/MetadataNative.d.ts +12 -0
  137. package/lib/schemas/metadata/MetadataNative.js +65 -0
  138. package/lib/schemas/metadata/MetadataNative.js.map +1 -0
  139. package/lib/schemas/metadata/MetadataProperty.d.ts +2 -0
  140. package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
  141. package/lib/schemas/metadata/MetadataSet.d.ts +13 -0
  142. package/lib/schemas/metadata/MetadataSet.js +64 -0
  143. package/lib/schemas/metadata/MetadataSet.js.map +1 -0
  144. package/lib/schemas/metadata/MetadataTemplate.d.ts +1 -1
  145. package/lib/schemas/protobuf/IProtobufProperty.d.ts +5 -0
  146. package/lib/schemas/protobuf/IProtobufProperty.js +3 -0
  147. package/lib/schemas/protobuf/IProtobufProperty.js.map +1 -0
  148. package/lib/schemas/protobuf/IProtobufPropertyType.d.ts +28 -0
  149. package/lib/schemas/protobuf/IProtobufPropertyType.js +3 -0
  150. package/lib/schemas/protobuf/IProtobufPropertyType.js.map +1 -0
  151. package/lib/schemas/protobuf/IProtobufSchema.d.ts +38 -0
  152. package/lib/schemas/protobuf/IProtobufSchema.js +3 -0
  153. package/lib/schemas/protobuf/IProtobufSchema.js.map +1 -0
  154. package/lib/tags/Example.d.ts +2 -2
  155. package/lib/tags/Examples.d.ts +2 -2
  156. package/lib/tags/JsonSchemaPlugin.d.ts +1 -1
  157. package/lib/tags/Sequence.d.ts +9 -0
  158. package/lib/tags/Sequence.js +3 -0
  159. package/lib/tags/Sequence.js.map +1 -0
  160. package/lib/tags/TagBase.d.ts +1 -1
  161. package/lib/tags/index.d.ts +1 -0
  162. package/lib/tags/index.js +1 -0
  163. package/lib/tags/index.js.map +1 -1
  164. package/lib/utils/{NameEncoder.d.ts → ProtobufNameEncoder.d.ts} +1 -1
  165. package/lib/utils/{NameEncoder.js → ProtobufNameEncoder.js} +7 -7
  166. package/lib/utils/ProtobufNameEncoder.js.map +1 -0
  167. package/package.json +1 -1
  168. package/src/factories/JsonMetadataFactory.ts +5 -2
  169. package/src/factories/MetadataCollection.ts +6 -6
  170. package/src/factories/MetadataFactory.ts +7 -7
  171. package/src/factories/MetadataTypeTagFactory.ts +31 -6
  172. package/src/factories/ProtobufFactory.ts +794 -177
  173. package/src/factories/internal/metadata/IMetadataIteratorProps.ts +1 -0
  174. package/src/factories/internal/metadata/MetadataHelper.ts +1 -1
  175. package/src/factories/internal/metadata/emplace_metadata_alias.ts +2 -2
  176. package/src/factories/internal/metadata/emplace_metadata_object.ts +5 -5
  177. package/src/factories/internal/metadata/explore_metadata.ts +1 -0
  178. package/src/factories/internal/metadata/iterate_metadata.ts +1 -1
  179. package/src/factories/internal/metadata/iterate_metadata_alias.ts +9 -4
  180. package/src/factories/internal/metadata/iterate_metadata_collection.ts +6 -6
  181. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +163 -181
  182. package/src/factories/internal/metadata/iterate_metadata_map.ts +5 -2
  183. package/src/factories/internal/metadata/iterate_metadata_native.ts +20 -2
  184. package/src/factories/internal/metadata/iterate_metadata_set.ts +27 -11
  185. package/src/factories/internal/metadata/iterate_metadata_sort.ts +1 -1
  186. package/src/factories/internal/metadata/iterate_metadata_template.ts +1 -3
  187. package/src/programmers/CheckerProgrammer.ts +9 -7
  188. package/src/programmers/RandomProgrammer.ts +16 -14
  189. package/src/programmers/helpers/AtomicPredicator.ts +3 -3
  190. package/src/programmers/helpers/ProtobufUtil.ts +147 -44
  191. package/src/programmers/helpers/UnionExplorer.ts +62 -62
  192. package/src/programmers/http/HttpFormDataProgrammer.ts +10 -6
  193. package/src/programmers/internal/application_escaped.ts +2 -2
  194. package/src/programmers/internal/application_v30_alias.ts +18 -12
  195. package/src/programmers/internal/application_v30_native.ts +22 -12
  196. package/src/programmers/internal/application_v30_object.ts +23 -8
  197. package/src/programmers/internal/application_v30_schema.ts +31 -34
  198. package/src/programmers/internal/application_v31_alias.ts +16 -13
  199. package/src/programmers/internal/application_v31_native.ts +22 -12
  200. package/src/programmers/internal/application_v31_object.ts +19 -8
  201. package/src/programmers/internal/application_v31_schema.ts +26 -29
  202. package/src/programmers/internal/check_dynamic_key.ts +4 -4
  203. package/src/programmers/internal/check_native.ts +4 -4
  204. package/src/programmers/internal/check_union_array_like.ts +2 -1
  205. package/src/programmers/internal/llm_schema_escaped.ts +2 -2
  206. package/src/programmers/internal/llm_schema_object.ts +21 -18
  207. package/src/programmers/internal/llm_schema_station.ts +9 -11
  208. package/src/programmers/json/JsonSchemasProgrammer.ts +5 -5
  209. package/src/programmers/json/JsonStringifyProgrammer.ts +5 -5
  210. package/src/programmers/llm/LlmSchemaProgrammer.ts +6 -6
  211. package/src/programmers/misc/MiscCloneProgrammer.ts +11 -7
  212. package/src/programmers/misc/MiscPruneProgrammer.ts +1 -1
  213. package/src/programmers/notations/NotationGeneralProgrammer.ts +10 -6
  214. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +254 -308
  215. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +11 -8
  216. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +73 -95
  217. package/src/schemas/metadata/IMetadata.ts +35 -39
  218. package/src/schemas/metadata/IMetadataAlias.ts +6 -12
  219. package/src/schemas/metadata/IMetadataAliasType.ts +12 -0
  220. package/src/schemas/metadata/IMetadataArray.ts +6 -6
  221. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  222. package/src/schemas/metadata/IMetadataConstantValue.ts +1 -1
  223. package/src/schemas/metadata/IMetadataDictionary.ts +2 -2
  224. package/src/schemas/metadata/IMetadataMap.ts +8 -0
  225. package/src/schemas/metadata/IMetadataNative.ts +6 -0
  226. package/src/schemas/metadata/IMetadataObjectType.ts +13 -13
  227. package/src/schemas/metadata/IMetadataSet.ts +7 -0
  228. package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
  229. package/src/schemas/metadata/IMetadataTuple.ts +6 -6
  230. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  231. package/src/schemas/metadata/Metadata.ts +100 -47
  232. package/src/schemas/metadata/MetadataAlias.ts +46 -61
  233. package/src/schemas/metadata/MetadataAliasType.ts +63 -0
  234. package/src/schemas/metadata/MetadataArray.ts +49 -49
  235. package/src/schemas/metadata/MetadataComponents.ts +3 -3
  236. package/src/schemas/metadata/MetadataConstantValue.ts +1 -1
  237. package/src/schemas/metadata/MetadataMap.ts +48 -0
  238. package/src/schemas/metadata/MetadataNative.ts +44 -0
  239. package/src/schemas/metadata/MetadataProperty.ts +3 -0
  240. package/src/schemas/metadata/MetadataSet.ts +45 -0
  241. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  242. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  243. package/src/schemas/protobuf/IProtobufProperty.ts +6 -0
  244. package/src/schemas/protobuf/IProtobufPropertyType.ts +37 -0
  245. package/src/schemas/protobuf/IProtobufSchema.ts +50 -0
  246. package/src/tags/Example.ts +24 -17
  247. package/src/tags/Examples.ts +16 -16
  248. package/src/tags/JsonSchemaPlugin.ts +8 -8
  249. package/src/tags/Sequence.ts +10 -0
  250. package/src/tags/TagBase.ts +82 -76
  251. package/src/tags/index.ts +1 -0
  252. package/src/utils/{NameEncoder.ts → ProtobufNameEncoder.ts} +1 -1
  253. package/lib/schemas/metadata/IMetadataEntry.d.ts +0 -5
  254. package/lib/schemas/metadata/IMetadataEntry.js.map +0 -1
  255. package/lib/utils/NameEncoder.js.map +0 -1
  256. 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 { MetadataObjectType } from "../../schemas/metadata/MetadataObjectType";
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: MetadataObjectType;
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
- type: "object",
87
- properties,
88
- nullable: props.nullable,
89
- required: required.length ? required : undefined,
90
- title: (() => {
91
- const info: IJsDocTagInfo | undefined = props.object.jsDocTags.find(
92
- (tag) => tag.name === "title",
93
- );
94
- return info?.text?.length ? CommentFactory.merge(info.text) : undefined;
95
- })(),
96
- description: application_description(props.object),
97
- additionalProperties: join(extraMeta),
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
- insert(
153
- llm_schema_object({
154
- object: object.type,
155
- nullable: props.metadata.nullable,
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
- type: "Date",
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
- type: native,
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" || native === "Number" || native === "String"
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: Metadata[];
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: Metadata.Entry[];
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((n) => n === "WeakSet"))
974
+ if (metadata.natives.some((native) => native.name === "WeakSet"))
971
975
  output.push("unable to clone WeakSet");
972
- else if (metadata.natives.some((n) => n === "WeakMap"))
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" || native === "Number" || native === "String"
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: Metadata[];
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: Metadata.Entry[];
592
+ maps: Array<MetadataMap>;
589
593
  explore: FeatureProgrammer.IExplore;
590
594
  }): ts.Expression =>
591
595
  ts.factory.createCallExpression(