typia 5.0.0-dev.20230823-2 → 5.0.0-dev.20230824

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 (316) hide show
  1. package/lib/factories/ExpressionFactory.d.ts +2 -0
  2. package/lib/factories/ExpressionFactory.js +24 -0
  3. package/lib/factories/ExpressionFactory.js.map +1 -1
  4. package/lib/factories/IdentifierFactory.d.ts +2 -1
  5. package/lib/factories/IdentifierFactory.js +11 -0
  6. package/lib/factories/IdentifierFactory.js.map +1 -1
  7. package/lib/factories/MetadataCollection.d.ts +7 -7
  8. package/lib/factories/MetadataCollection.js +4 -4
  9. package/lib/factories/MetadataCollection.js.map +1 -1
  10. package/lib/factories/MetadataTagFactory.d.ts +2 -2
  11. package/lib/factories/MetadataTagFactory.js +9 -7
  12. package/lib/factories/MetadataTagFactory.js.map +1 -1
  13. package/lib/factories/ProtobufFactory.js +9 -8
  14. package/lib/factories/ProtobufFactory.js.map +1 -1
  15. package/lib/factories/internal/metadata/emend_metadata_atomics.js +6 -6
  16. package/lib/factories/internal/metadata/emend_metadata_atomics.js.map +1 -1
  17. package/lib/factories/internal/metadata/emplace_metadata_array_type.d.ts +5 -0
  18. package/lib/factories/internal/metadata/{emplace_metadata_array.js → emplace_metadata_array_type.js} +4 -4
  19. package/lib/factories/internal/metadata/emplace_metadata_array_type.js.map +1 -0
  20. package/lib/factories/internal/metadata/emplace_metadata_tuple.d.ts +2 -2
  21. package/lib/factories/internal/metadata/iterate_metadata_array.js +7 -3
  22. package/lib/factories/internal/metadata/iterate_metadata_array.js.map +1 -1
  23. package/lib/factories/internal/metadata/iterate_metadata_atomic.js +1 -1
  24. package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -1
  25. package/lib/factories/internal/metadata/iterate_metadata_collection.js +20 -12
  26. package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
  27. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.d.ts +2 -0
  28. package/lib/factories/internal/metadata/{iterate_metadata_tag.js → iterate_metadata_comment_tags.js} +4 -4
  29. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -0
  30. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +138 -16
  31. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  32. package/lib/factories/internal/metadata/iterate_metadata_object.js +0 -7
  33. package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
  34. package/lib/factories/internal/metadata/iterate_metadata_sort.js +2 -2
  35. package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
  36. package/lib/factories/internal/metadata/iterate_metadata_tuple.js +6 -2
  37. package/lib/factories/internal/metadata/iterate_metadata_tuple.js.map +1 -1
  38. package/lib/factories/internal/metadata/iterate_metadata_type_tags.d.ts +3 -0
  39. package/lib/factories/internal/metadata/iterate_metadata_type_tags.js +157 -0
  40. package/lib/factories/internal/metadata/iterate_metadata_type_tags.js.map +1 -0
  41. package/lib/functional/$any.js +2 -1
  42. package/lib/functional/$any.js.map +1 -1
  43. package/lib/functional/$clone.d.ts +2 -0
  44. package/lib/functional/$clone.js +8 -0
  45. package/lib/functional/$clone.js.map +1 -0
  46. package/lib/module.d.ts +2 -39
  47. package/lib/module.js +3 -17
  48. package/lib/module.js.map +1 -1
  49. package/lib/programmers/AssertProgrammer.js +1 -3
  50. package/lib/programmers/AssertProgrammer.js.map +1 -1
  51. package/lib/programmers/CheckerProgrammer.js +38 -29
  52. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  53. package/lib/programmers/FeatureProgrammer.d.ts +4 -4
  54. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  55. package/lib/programmers/IsProgrammer.d.ts +1 -1
  56. package/lib/programmers/IsProgrammer.js +1 -3
  57. package/lib/programmers/IsProgrammer.js.map +1 -1
  58. package/lib/programmers/RandomProgrammer.js +44 -33
  59. package/lib/programmers/RandomProgrammer.js.map +1 -1
  60. package/lib/programmers/ValidateProgrammer.js +1 -3
  61. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  62. package/lib/programmers/helpers/AtomicPredicator.js +2 -2
  63. package/lib/programmers/helpers/AtomicPredicator.js.map +1 -1
  64. package/lib/programmers/helpers/ICheckEntry.d.ts +1 -1
  65. package/lib/programmers/helpers/ProtobufUtil.js +2 -2
  66. package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
  67. package/lib/programmers/helpers/RandomJoiner.d.ts +4 -4
  68. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  69. package/lib/programmers/helpers/RandomRanger.d.ts +6 -6
  70. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  71. package/lib/programmers/helpers/UnionExplorer.d.ts +8 -8
  72. package/lib/programmers/helpers/UnionExplorer.js +40 -29
  73. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  74. package/lib/programmers/internal/application_array.js +1 -1
  75. package/lib/programmers/internal/application_array.js.map +1 -1
  76. package/lib/programmers/internal/application_default_string.js +2 -2
  77. package/lib/programmers/internal/application_default_string.js.map +1 -1
  78. package/lib/programmers/internal/application_resolved.js +2 -2
  79. package/lib/programmers/internal/application_resolved.js.map +1 -1
  80. package/lib/programmers/internal/application_schema.js +5 -5
  81. package/lib/programmers/internal/application_schema.js.map +1 -1
  82. package/lib/programmers/internal/application_string.js.map +1 -1
  83. package/lib/programmers/internal/application_tuple.js +10 -9
  84. package/lib/programmers/internal/application_tuple.js.map +1 -1
  85. package/lib/programmers/internal/check_array_length.js.map +1 -1
  86. package/lib/programmers/internal/check_array_tags.js +39 -0
  87. package/lib/programmers/internal/check_array_tags.js.map +1 -0
  88. package/lib/programmers/internal/check_bigint.js +88 -74
  89. package/lib/programmers/internal/check_bigint.js.map +1 -1
  90. package/lib/programmers/internal/check_number.js +142 -131
  91. package/lib/programmers/internal/check_number.js.map +1 -1
  92. package/lib/programmers/internal/check_string.js +30 -6
  93. package/lib/programmers/internal/check_string.js.map +1 -1
  94. package/lib/programmers/internal/check_string_tags.js.map +1 -1
  95. package/lib/programmers/internal/check_template.js +16 -49
  96. package/lib/programmers/internal/check_template.js.map +1 -1
  97. package/lib/programmers/internal/check_union_array_like.js +3 -2
  98. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  99. package/lib/programmers/internal/metadata_to_pattern.js +4 -4
  100. package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
  101. package/lib/programmers/internal/stringify_dynamic_properties.js +2 -1
  102. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  103. package/lib/programmers/internal/wrap_metadata_rest_tuple.js +9 -5
  104. package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -1
  105. package/lib/programmers/json/JsonStringifyProgrammer.js +29 -23
  106. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  107. package/lib/programmers/misc/MiscCloneProgrammer.js +10 -10
  108. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  109. package/lib/programmers/misc/MiscLiteralsProgrammer.js +2 -2
  110. package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
  111. package/lib/programmers/misc/MiscPruneProgrammer.js +13 -13
  112. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  113. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +6 -6
  114. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  115. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +2 -2
  116. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  117. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +1 -1
  118. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  119. package/lib/schemas/json/IJsonSchema.d.ts +2 -2
  120. package/lib/schemas/metadata/IMetadata.d.ts +11 -4
  121. package/lib/schemas/metadata/IMetadataAlias.d.ts +2 -2
  122. package/lib/schemas/metadata/IMetadataArray.d.ts +4 -6
  123. package/lib/schemas/metadata/IMetadataArrayType.d.ts +8 -0
  124. package/lib/{CustomValidatorMap.js → schemas/metadata/IMetadataArrayType.js} +1 -1
  125. package/lib/schemas/metadata/IMetadataArrayType.js.map +1 -0
  126. package/lib/schemas/metadata/IMetadataAtomic.d.ts +5 -0
  127. package/lib/schemas/metadata/IMetadataAtomic.js +3 -0
  128. package/lib/schemas/metadata/IMetadataAtomic.js.map +1 -0
  129. package/lib/schemas/metadata/IMetadataCollection.d.ts +4 -4
  130. package/lib/schemas/metadata/{IMetadataTag.d.ts → IMetadataCommentTag.d.ts} +2 -2
  131. package/lib/schemas/metadata/IMetadataCommentTag.js +3 -0
  132. package/lib/schemas/metadata/IMetadataCommentTag.js.map +1 -0
  133. package/lib/schemas/metadata/IMetadataProperty.d.ts +2 -2
  134. package/lib/schemas/metadata/IMetadataTuple.d.ts +4 -6
  135. package/lib/schemas/metadata/IMetadataTupleType.d.ts +8 -0
  136. package/lib/schemas/metadata/IMetadataTupleType.js +3 -0
  137. package/lib/schemas/metadata/IMetadataTupleType.js.map +1 -0
  138. package/lib/schemas/metadata/IMetadataTypeTag.d.ts +6 -0
  139. package/lib/schemas/metadata/IMetadataTypeTag.js +3 -0
  140. package/lib/schemas/metadata/IMetadataTypeTag.js.map +1 -0
  141. package/lib/schemas/metadata/Metadata.d.ts +2 -2
  142. package/lib/schemas/metadata/Metadata.js +206 -146
  143. package/lib/schemas/metadata/Metadata.js.map +1 -1
  144. package/lib/schemas/metadata/MetadataAlias.d.ts +2 -2
  145. package/lib/schemas/metadata/MetadataArray.d.ts +6 -6
  146. package/lib/schemas/metadata/MetadataArray.js +5 -19
  147. package/lib/schemas/metadata/MetadataArray.js.map +1 -1
  148. package/lib/schemas/metadata/MetadataArrayType.d.ts +14 -0
  149. package/lib/schemas/metadata/MetadataArrayType.js +36 -0
  150. package/lib/schemas/metadata/MetadataArrayType.js.map +1 -0
  151. package/lib/schemas/metadata/MetadataProperty.d.ts +2 -2
  152. package/lib/schemas/metadata/MetadataTuple.d.ts +4 -6
  153. package/lib/schemas/metadata/MetadataTuple.js +5 -19
  154. package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
  155. package/lib/schemas/metadata/MetadataTupleType.d.ts +13 -0
  156. package/lib/schemas/metadata/MetadataTupleType.js +40 -0
  157. package/lib/schemas/metadata/MetadataTupleType.js.map +1 -0
  158. package/lib/tags/ExclusiveMaximum.d.ts +8 -0
  159. package/lib/tags/ExclusiveMaximum.js +3 -0
  160. package/lib/tags/ExclusiveMaximum.js.map +1 -0
  161. package/lib/tags/ExclusiveMinimum.d.ts +8 -0
  162. package/lib/tags/ExclusiveMinimum.js +3 -0
  163. package/lib/tags/ExclusiveMinimum.js.map +1 -0
  164. package/lib/tags/Format.d.ts +8 -0
  165. package/lib/{schemas/metadata/IMetadataTag.js → tags/Format.js} +1 -1
  166. package/lib/tags/Format.js.map +1 -0
  167. package/lib/tags/MaxItems.d.ts +8 -0
  168. package/lib/tags/MaxItems.js +3 -0
  169. package/lib/tags/MaxItems.js.map +1 -0
  170. package/lib/tags/MaxLength.d.ts +8 -0
  171. package/lib/tags/MaxLength.js +3 -0
  172. package/lib/tags/MaxLength.js.map +1 -0
  173. package/lib/tags/Maximum.d.ts +8 -0
  174. package/lib/tags/Maximum.js +3 -0
  175. package/lib/tags/Maximum.js.map +1 -0
  176. package/lib/tags/MinItems.d.ts +8 -0
  177. package/lib/tags/MinItems.js +3 -0
  178. package/lib/tags/MinItems.js.map +1 -0
  179. package/lib/tags/MinLength.d.ts +8 -0
  180. package/lib/tags/MinLength.js +3 -0
  181. package/lib/tags/MinLength.js.map +1 -0
  182. package/lib/tags/Minimum.d.ts +8 -0
  183. package/lib/tags/Minimum.js +3 -0
  184. package/lib/tags/Minimum.js.map +1 -0
  185. package/lib/tags/MultipleOf.d.ts +8 -0
  186. package/lib/tags/MultipleOf.js +3 -0
  187. package/lib/tags/MultipleOf.js.map +1 -0
  188. package/lib/tags/Pattern.d.ts +8 -0
  189. package/lib/tags/Pattern.js +3 -0
  190. package/lib/tags/Pattern.js.map +1 -0
  191. package/lib/tags/TagBase.d.ts +10 -0
  192. package/lib/tags/TagBase.js +3 -0
  193. package/lib/tags/TagBase.js.map +1 -0
  194. package/lib/tags/Type.d.ts +13 -0
  195. package/lib/tags/Type.js +3 -0
  196. package/lib/tags/Type.js.map +1 -0
  197. package/lib/tags/index.d.ts +12 -0
  198. package/lib/tags/index.js +29 -0
  199. package/lib/tags/index.js.map +1 -0
  200. package/lib/transformers/FileTransformer.d.ts +1 -1
  201. package/lib/transformers/FileTransformer.js +12 -1
  202. package/lib/transformers/FileTransformer.js.map +1 -1
  203. package/lib/transformers/IProject.d.ts +1 -0
  204. package/lib/transformers/features/json/JsonApplicationTransformer.js +4 -2
  205. package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
  206. package/package.json +1 -1
  207. package/src/factories/ExpressionFactory.ts +44 -0
  208. package/src/factories/IdentifierFactory.ts +15 -0
  209. package/src/factories/MetadataCollection.ts +18 -12
  210. package/src/factories/MetadataTagFactory.ts +22 -21
  211. package/src/factories/ProtobufFactory.ts +10 -8
  212. package/src/factories/internal/metadata/emend_metadata_atomics.ts +7 -5
  213. package/src/factories/internal/metadata/{emplace_metadata_array.ts → emplace_metadata_array_type.ts} +3 -3
  214. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +2 -2
  215. package/src/factories/internal/metadata/iterate_metadata_array.ts +13 -5
  216. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +6 -4
  217. package/src/factories/internal/metadata/iterate_metadata_collection.ts +23 -16
  218. package/src/factories/internal/metadata/{iterate_metadata_tag.ts → iterate_metadata_comment_tags.ts} +1 -1
  219. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +109 -15
  220. package/src/factories/internal/metadata/iterate_metadata_object.ts +10 -10
  221. package/src/factories/internal/metadata/iterate_metadata_sort.ts +2 -2
  222. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +12 -4
  223. package/src/factories/internal/metadata/iterate_metadata_type_tags.ts +183 -0
  224. package/src/functional/$any.ts +3 -1
  225. package/src/functional/$clone.ts +4 -0
  226. package/src/module.ts +2 -55
  227. package/src/programmers/AssertProgrammer.ts +1 -1
  228. package/src/programmers/CheckerProgrammer.ts +80 -47
  229. package/src/programmers/FeatureProgrammer.ts +6 -6
  230. package/src/programmers/IsProgrammer.ts +1 -1
  231. package/src/programmers/RandomProgrammer.ts +68 -45
  232. package/src/programmers/ValidateProgrammer.ts +1 -1
  233. package/src/programmers/helpers/AtomicPredicator.ts +2 -2
  234. package/src/programmers/helpers/ICheckEntry.ts +1 -1
  235. package/src/programmers/helpers/ProtobufUtil.ts +1 -1
  236. package/src/programmers/helpers/RandomJoiner.ts +8 -4
  237. package/src/programmers/helpers/RandomRanger.ts +8 -8
  238. package/src/programmers/helpers/UnionExplorer.ts +48 -34
  239. package/src/programmers/internal/application_array.ts +5 -4
  240. package/src/programmers/internal/application_default_string.ts +6 -2
  241. package/src/programmers/internal/application_resolved.ts +2 -2
  242. package/src/programmers/internal/application_schema.ts +5 -5
  243. package/src/programmers/internal/application_string.ts +2 -2
  244. package/src/programmers/internal/application_tuple.ts +12 -11
  245. package/src/programmers/internal/check_array_length.ts +2 -2
  246. package/src/programmers/internal/check_array_tags.ts +45 -0
  247. package/src/programmers/internal/check_bigint.ts +45 -17
  248. package/src/programmers/internal/check_number.ts +97 -70
  249. package/src/programmers/internal/check_string.ts +43 -12
  250. package/src/programmers/internal/check_string_tags.ts +3 -3
  251. package/src/programmers/internal/check_template.ts +1 -12
  252. package/src/programmers/internal/check_union_array_like.ts +6 -5
  253. package/src/programmers/internal/metadata_to_pattern.ts +4 -4
  254. package/src/programmers/internal/stringify_dynamic_properties.ts +1 -1
  255. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +9 -5
  256. package/src/programmers/json/JsonStringifyProgrammer.ts +41 -25
  257. package/src/programmers/misc/MiscCloneProgrammer.ts +24 -14
  258. package/src/programmers/misc/MiscLiteralsProgrammer.ts +2 -2
  259. package/src/programmers/misc/MiscPruneProgrammer.ts +27 -17
  260. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +12 -12
  261. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +14 -14
  262. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +6 -6
  263. package/src/schemas/json/IJsonSchema.ts +2 -2
  264. package/src/schemas/metadata/IMetadata.ts +11 -5
  265. package/src/schemas/metadata/IMetadataAlias.ts +2 -2
  266. package/src/schemas/metadata/IMetadataArray.ts +4 -7
  267. package/src/schemas/metadata/IMetadataArrayType.ts +10 -0
  268. package/src/schemas/metadata/IMetadataAtomic.ts +6 -0
  269. package/src/schemas/metadata/IMetadataCollection.ts +4 -4
  270. package/src/schemas/metadata/{IMetadataTag.ts → IMetadataCommentTag.ts} +17 -17
  271. package/src/schemas/metadata/IMetadataDictionary.ts +4 -4
  272. package/src/schemas/metadata/IMetadataProperty.ts +2 -2
  273. package/src/schemas/metadata/IMetadataTuple.ts +4 -7
  274. package/src/schemas/metadata/IMetadataTupleType.ts +10 -0
  275. package/src/schemas/metadata/IMetadataTypeTag.ts +6 -0
  276. package/src/schemas/metadata/Metadata.ts +109 -44
  277. package/src/schemas/metadata/MetadataAlias.ts +2 -2
  278. package/src/schemas/metadata/MetadataArray.ts +10 -34
  279. package/src/schemas/metadata/MetadataArrayType.ts +57 -0
  280. package/src/schemas/metadata/MetadataProperty.ts +2 -2
  281. package/src/schemas/metadata/MetadataTuple.ts +10 -37
  282. package/src/schemas/metadata/MetadataTupleType.ts +67 -0
  283. package/src/tags/ExclusiveMaximum.ts +8 -0
  284. package/src/tags/ExclusiveMinimum.ts +8 -0
  285. package/src/tags/Format.ts +29 -0
  286. package/src/tags/MaxItems.ts +8 -0
  287. package/src/tags/MaxLength.ts +8 -0
  288. package/src/tags/Maximum.ts +8 -0
  289. package/src/tags/MinItems.ts +8 -0
  290. package/src/tags/MinLength.ts +8 -0
  291. package/src/tags/Minimum.ts +8 -0
  292. package/src/tags/MultipleOf.ts +10 -0
  293. package/src/tags/Pattern.ts +8 -0
  294. package/src/tags/TagBase.ts +17 -0
  295. package/src/tags/Type.ts +30 -0
  296. package/src/tags/index.ts +12 -0
  297. package/src/transformers/FileTransformer.ts +2 -2
  298. package/src/transformers/IProject.ts +1 -0
  299. package/src/transformers/features/json/JsonApplicationTransformer.ts +3 -2
  300. package/src/typings/Atomic.ts +1 -0
  301. package/lib/CustomValidatorMap.d.ts +0 -110
  302. package/lib/CustomValidatorMap.js.map +0 -1
  303. package/lib/factories/internal/metadata/emplace_metadata_array.d.ts +0 -5
  304. package/lib/factories/internal/metadata/emplace_metadata_array.js.map +0 -1
  305. package/lib/factories/internal/metadata/iterate_metadata_tag.d.ts +0 -2
  306. package/lib/factories/internal/metadata/iterate_metadata_tag.js.map +0 -1
  307. package/lib/programmers/internal/check_array.js +0 -44
  308. package/lib/programmers/internal/check_array.js.map +0 -1
  309. package/lib/programmers/internal/check_custom.d.ts +0 -1
  310. package/lib/programmers/internal/check_custom.js +0 -30
  311. package/lib/programmers/internal/check_custom.js.map +0 -1
  312. package/lib/schemas/metadata/IMetadataTag.js.map +0 -1
  313. package/src/CustomValidatorMap.ts +0 -126
  314. package/src/programmers/internal/check_array.ts +0 -30
  315. package/src/programmers/internal/check_custom.ts +0 -31
  316. /package/lib/programmers/internal/{check_array.d.ts → check_array_tags.d.ts} +0 -0
@@ -7,7 +7,7 @@ import { ProtobufFactory } from "../../factories/ProtobufFactory";
7
7
  import { StatementFactory } from "../../factories/StatementFactory";
8
8
  import { TypeFactory } from "../../factories/TypeFactory";
9
9
 
10
- import { IMetadataTag } from "../../schemas/metadata/IMetadataTag";
10
+ import { IMetadataCommentTag } from "../../schemas/metadata/IMetadataCommentTag";
11
11
  import { Metadata } from "../../schemas/metadata/Metadata";
12
12
  import { MetadataArray } from "../../schemas/metadata/MetadataArray";
13
13
  import { MetadataObject } from "../../schemas/metadata/MetadataObject";
@@ -205,7 +205,7 @@ export namespace ProtobufEncodeProgrammer {
205
205
  input: ts.Expression,
206
206
  meta: Metadata,
207
207
  explore: FeatureProgrammer.IExplore,
208
- tags: IMetadataTag[],
208
+ tags: IMetadataCommentTag[],
209
209
  ): ts.Block => {
210
210
  const wrapper: (block: ts.Block) => ts.Block =
211
211
  meta.isRequired() && meta.nullable === false
@@ -388,7 +388,7 @@ export namespace ProtobufEncodeProgrammer {
388
388
  input: ts.Expression,
389
389
  map: Metadata.Entry,
390
390
  explore: FeatureProgrammer.IExplore,
391
- tags: IMetadataTag[],
391
+ tags: IMetadataCommentTag[],
392
392
  ): ts.Block => {
393
393
  const each: ts.Statement[] = [
394
394
  ts.factory.createExpressionStatement(
@@ -442,7 +442,7 @@ export namespace ProtobufEncodeProgrammer {
442
442
  input: ts.Expression,
443
443
  object: MetadataObject,
444
444
  explore: FeatureProgrammer.IExplore,
445
- tags: IMetadataTag[],
445
+ tags: IMetadataCommentTag[],
446
446
  ): ts.Block => {
447
447
  const top: MetadataProperty = object.properties[0]!;
448
448
  if (top.key.isSoleLiteral() === false)
@@ -502,9 +502,9 @@ export namespace ProtobufEncodeProgrammer {
502
502
  input: ts.Expression,
503
503
  array: MetadataArray,
504
504
  explore: FeatureProgrammer.IExplore,
505
- tags: IMetadataTag[],
505
+ tags: IMetadataCommentTag[],
506
506
  ): ts.Block => {
507
- const wire = get_standalone_wire(array.value, tags);
507
+ const wire = get_standalone_wire(array.type.value, tags);
508
508
  const forLoop = (index: number | null) =>
509
509
  ts.factory.createForOfStatement(
510
510
  undefined,
@@ -515,7 +515,7 @@ export namespace ProtobufEncodeProgrammer {
515
515
  input,
516
516
  decode(project)(importer)(index)(
517
517
  ts.factory.createIdentifier("elem"),
518
- array.value,
518
+ array.type.value,
519
519
  explore,
520
520
  tags,
521
521
  ),
@@ -568,7 +568,7 @@ export namespace ProtobufEncodeProgrammer {
568
568
  (
569
569
  input: ts.Expression,
570
570
  atomic: Atomic.Literal,
571
- tags: IMetadataTag[],
571
+ tags: IMetadataCommentTag[],
572
572
  ): ts.Block => {
573
573
  if (atomic === "string")
574
574
  return decode_bytes("string")(index!)(input);
@@ -593,9 +593,9 @@ export namespace ProtobufEncodeProgrammer {
593
593
  );
594
594
  if (atomic === "boolean") return out(ProtobufWire.VARIANT)("bool");
595
595
 
596
- const type: IMetadataTag.INumberType | undefined = tags.find(
596
+ const type: IMetadataCommentTag.INumberType | undefined = tags.find(
597
597
  (tag) => tag.kind === "type",
598
- ) as IMetadataTag.INumberType | undefined;
598
+ ) as IMetadataCommentTag.INumberType | undefined;
599
599
  if (atomic === "bigint")
600
600
  return out(ProtobufWire.VARIANT)(
601
601
  type?.value === "uint64" ? "uint64" : "int64",
@@ -641,7 +641,7 @@ export namespace ProtobufEncodeProgrammer {
641
641
 
642
642
  const get_standalone_wire = (
643
643
  meta: Metadata,
644
- tags: IMetadataTag[],
644
+ tags: IMetadataCommentTag[],
645
645
  ): ProtobufWire => {
646
646
  if (
647
647
  meta.arrays.length ||
@@ -655,9 +655,9 @@ export namespace ProtobufEncodeProgrammer {
655
655
  if (v === "string") return ProtobufWire.LEN;
656
656
  else if (v === "boolean" || v === "bigint") return ProtobufWire.VARIANT;
657
657
 
658
- const type: IMetadataTag.INumberType | undefined = tags.find(
658
+ const type: IMetadataCommentTag.INumberType | undefined = tags.find(
659
659
  (t) => t.kind === "type",
660
- ) as IMetadataTag.INumberType | undefined;
660
+ ) as IMetadataCommentTag.INumberType | undefined;
661
661
  if (type === undefined) return ProtobufWire.I64;
662
662
  else if (type.value === "float") return ProtobufWire.I32;
663
663
  return ProtobufWire.VARIANT;
@@ -675,7 +675,7 @@ export namespace ProtobufEncodeProgrammer {
675
675
  input: ts.Expression,
676
676
  targets: MetadataObject[],
677
677
  explore: FeatureProgrammer.IExplore,
678
- tags: IMetadataTag[],
678
+ tags: IMetadataCommentTag[],
679
679
  indexes?: Map<MetadataObject, number>,
680
680
  ): ts.Block => {
681
681
  if (targets.length === 1)
@@ -3,7 +3,7 @@ import ts from "typescript";
3
3
  import { MetadataCollection } from "../../factories/MetadataCollection";
4
4
  import { ProtobufFactory } from "../../factories/ProtobufFactory";
5
5
 
6
- import { IMetadataTag } from "../../schemas/metadata/IMetadataTag";
6
+ import { IMetadataCommentTag } from "../../schemas/metadata/IMetadataCommentTag";
7
7
  import { Metadata } from "../../schemas/metadata/Metadata";
8
8
  import { MetadataObject } from "../../schemas/metadata/MetadataObject";
9
9
 
@@ -104,14 +104,14 @@ export namespace ProtobufMessageProgrammer {
104
104
  ----------------------------------------------------------- */
105
105
  const decode =
106
106
  (ptr: IPointer<number>) =>
107
- (tags: IMetadataTag[]) =>
107
+ (tags: IMetadataCommentTag[]) =>
108
108
  (meta: Metadata): string => {
109
109
  const elements: Set<string> = new Set();
110
110
  if (meta.natives.length) elements.add("bytes");
111
111
  for (const atomic of ProtobufUtil.getAtomics(meta))
112
112
  elements.add(decode_atomic(tags)(atomic));
113
113
  for (const array of meta.arrays)
114
- elements.add(`repeated ${decode(ptr)(tags)(array.value)}`);
114
+ elements.add(`repeated ${decode(ptr)(tags)(array.type.value)}`);
115
115
  for (const obj of meta.objects)
116
116
  elements.add(
117
117
  is_dynamic_object(obj)
@@ -135,7 +135,7 @@ export namespace ProtobufMessageProgrammer {
135
135
  };
136
136
 
137
137
  const decode_atomic =
138
- (tags: IMetadataTag[]) =>
138
+ (tags: IMetadataCommentTag[]) =>
139
139
  (literal: Atomic.Literal): string => {
140
140
  if (literal === "boolean") return "bool";
141
141
  else if (literal === "bigint")
@@ -146,7 +146,7 @@ export namespace ProtobufMessageProgrammer {
146
146
  : "int64";
147
147
  else if (literal === "number") {
148
148
  const type = tags.find((t) => t.kind === "type") as
149
- | IMetadataTag.INumberType
149
+ | IMetadataCommentTag.INumberType
150
150
  | undefined;
151
151
  if (type?.value === undefined) return "double";
152
152
  else if (type.value === "int") return "int32";
@@ -158,7 +158,7 @@ export namespace ProtobufMessageProgrammer {
158
158
 
159
159
  const decode_map =
160
160
  (ptr: IPointer<number>) =>
161
- (tags: IMetadataTag[]) =>
161
+ (tags: IMetadataCommentTag[]) =>
162
162
  (prop: Metadata.Entry): string =>
163
163
  `map<${decode(ptr)([])(prop.key)}, ${decode(ptr)(tags)(
164
164
  prop.value,
@@ -1,5 +1,5 @@
1
1
  import { IJsDocTagInfo } from "../metadata/IJsDocTagInfo";
2
- import { IMetadataTag } from "../metadata/IMetadataTag";
2
+ import { IMetadataCommentTag } from "../metadata/IMetadataCommentTag";
3
3
 
4
4
  import { Atomic } from "../../typings/Atomic";
5
5
 
@@ -124,7 +124,7 @@ export namespace IJsonSchema {
124
124
  deprecated?: boolean;
125
125
  title?: string;
126
126
  description?: string;
127
- "x-typia-metaTags"?: IMetadataTag[];
127
+ "x-typia-metaTags"?: IMetadataCommentTag[];
128
128
  "x-typia-jsDocTags"?: IJsDocTagInfo[];
129
129
  "x-typia-required"?: boolean;
130
130
  "x-typia-optional"?: boolean;
@@ -1,8 +1,8 @@
1
- import { Atomic } from "../../typings/Atomic";
2
-
1
+ import { IMetadataAtomic } from "./IMetadataAtomic";
3
2
  import { IMetadataConstant } from "./IMetadataConstant";
4
3
  import { IMetadataEntry } from "./IMetadataEntry";
5
4
  import { IMetadataEscaped } from "./IMetadataEscaped";
5
+ import { IMetadataTypeTag } from "./IMetadataTypeTag";
6
6
 
7
7
  export interface IMetadata {
8
8
  any: boolean;
@@ -11,14 +11,20 @@ export interface IMetadata {
11
11
  nullable: boolean;
12
12
  functional: boolean;
13
13
 
14
- atomics: Atomic.Literal[];
14
+ atomics: IMetadataAtomic[];
15
15
  constants: IMetadataConstant[];
16
16
  templates: IMetadata[][];
17
17
  escaped: IMetadataEscaped | null;
18
18
 
19
19
  rest: IMetadata | null;
20
- arrays: string[];
21
- tuples: string[];
20
+ arrays: {
21
+ name: string;
22
+ tags: IMetadataTypeTag[][];
23
+ }[];
24
+ tuples: {
25
+ name: string;
26
+ tags: IMetadataTypeTag[][];
27
+ }[];
22
28
  objects: string[];
23
29
  aliases: string[];
24
30
 
@@ -1,6 +1,6 @@
1
1
  import { IJsDocTagInfo } from "./IJsDocTagInfo";
2
2
  import { IMetadata } from "./IMetadata";
3
- import { IMetadataTag } from "./IMetadataTag";
3
+ import { IMetadataCommentTag } from "./IMetadataCommentTag";
4
4
 
5
5
  export interface IMetadataAlias {
6
6
  name: string;
@@ -8,7 +8,7 @@ export interface IMetadataAlias {
8
8
  nullables: boolean[];
9
9
 
10
10
  description: string | null;
11
- tags: IMetadataTag[];
11
+ tags: IMetadataCommentTag[];
12
12
  jsDocTags: IJsDocTagInfo[];
13
13
  recursive: boolean;
14
14
  }
@@ -1,10 +1,7 @@
1
- import { IMetadata } from "./IMetadata";
1
+ import { IMetadataArrayType } from "./IMetadataArrayType";
2
+ import { IMetadataTypeTag } from "./IMetadataTypeTag";
2
3
 
3
4
  export interface IMetadataArray {
4
- name: string;
5
- value: IMetadata;
6
-
7
- nullables: boolean[];
8
- recursive: boolean;
9
- index: number | null;
5
+ type: IMetadataArrayType;
6
+ tags: IMetadataTypeTag[][];
10
7
  }
@@ -0,0 +1,10 @@
1
+ import { IMetadata } from "./IMetadata";
2
+
3
+ export interface IMetadataArrayType {
4
+ name: string;
5
+ value: IMetadata;
6
+
7
+ nullables: boolean[];
8
+ recursive: boolean;
9
+ index: number | null;
10
+ }
@@ -0,0 +1,6 @@
1
+ import { IMetadataTypeTag } from "./IMetadataTypeTag";
2
+
3
+ export interface IMetadataAtomic {
4
+ type: "boolean" | "bigint" | "number" | "string";
5
+ tags: IMetadataTypeTag[][];
6
+ }
@@ -1,11 +1,11 @@
1
1
  import { IMetadataAlias } from "./IMetadataAlias";
2
- import { IMetadataArray } from "./IMetadataArray";
2
+ import { IMetadataArrayType } from "./IMetadataArrayType";
3
3
  import { IMetadataObject } from "./IMetadataObject";
4
- import { IMetadataTuple } from "./IMetadataTuple";
4
+ import { IMetadataTupleType } from "./IMetadataTupleType";
5
5
 
6
6
  export interface IMetadataCollection {
7
7
  objects: IMetadataObject[];
8
8
  aliases: IMetadataAlias[];
9
- arrays: IMetadataArray[];
10
- tuples: IMetadataTuple[];
9
+ arrays: IMetadataArrayType[];
10
+ tuples: IMetadataTupleType[];
11
11
  }
@@ -1,24 +1,24 @@
1
- export type IMetadataTag =
1
+ export type IMetadataCommentTag =
2
2
  // NUMBER
3
- | IMetadataTag.INumberType
4
- | IMetadataTag.IMinimum
5
- | IMetadataTag.IMaximum
6
- | IMetadataTag.IExclusiveMinimum
7
- | IMetadataTag.IExclusiveMaximum
8
- | IMetadataTag.IMultipleOf
9
- | IMetadataTag.IStep
3
+ | IMetadataCommentTag.INumberType
4
+ | IMetadataCommentTag.IMinimum
5
+ | IMetadataCommentTag.IMaximum
6
+ | IMetadataCommentTag.IExclusiveMinimum
7
+ | IMetadataCommentTag.IExclusiveMaximum
8
+ | IMetadataCommentTag.IMultipleOf
9
+ | IMetadataCommentTag.IStep
10
10
  // STRING
11
- | IMetadataTag.IFormat
12
- | IMetadataTag.IPattern
13
- | IMetadataTag.ILength
14
- | IMetadataTag.IMinLength
15
- | IMetadataTag.IMaxLength
11
+ | IMetadataCommentTag.IFormat
12
+ | IMetadataCommentTag.IPattern
13
+ | IMetadataCommentTag.ILength
14
+ | IMetadataCommentTag.IMinLength
15
+ | IMetadataCommentTag.IMaxLength
16
16
  // ARRAY
17
- | IMetadataTag.IItems
18
- | IMetadataTag.IMinItems
19
- | IMetadataTag.IMaxItems;
17
+ | IMetadataCommentTag.IItems
18
+ | IMetadataCommentTag.IMinItems
19
+ | IMetadataCommentTag.IMaxItems;
20
20
 
21
- export namespace IMetadataTag {
21
+ export namespace IMetadataCommentTag {
22
22
  /* -----------------------------------------------------------
23
23
  NUMBER
24
24
  ----------------------------------------------------------- */
@@ -1,7 +1,7 @@
1
1
  import { MetadataAlias } from "./MetadataAlias";
2
- import { MetadataArray } from "./MetadataArray";
2
+ import { MetadataArrayType } from "./MetadataArrayType";
3
3
  import { MetadataObject } from "./MetadataObject";
4
- import { MetadataTuple } from "./MetadataTuple";
4
+ import { MetadataTupleType } from "./MetadataTupleType";
5
5
 
6
6
  /**
7
7
  * @internal
@@ -9,6 +9,6 @@ import { MetadataTuple } from "./MetadataTuple";
9
9
  export interface IMetadataDictionary {
10
10
  objects: Map<string, MetadataObject>;
11
11
  aliases: Map<string, MetadataAlias>;
12
- arrays: Map<string, MetadataArray>;
13
- tuples: Map<string, MetadataTuple>;
12
+ arrays: Map<string, MetadataArrayType>;
13
+ tuples: Map<string, MetadataTupleType>;
14
14
  }
@@ -1,11 +1,11 @@
1
1
  import { IJsDocTagInfo } from "./IJsDocTagInfo";
2
2
  import { IMetadata } from "./IMetadata";
3
- import { IMetadataTag } from "./IMetadataTag";
3
+ import { IMetadataCommentTag } from "./IMetadataCommentTag";
4
4
 
5
5
  export interface IMetadataProperty {
6
6
  key: IMetadata;
7
7
  value: IMetadata;
8
8
  description: string | null;
9
- tags: IMetadataTag[];
9
+ tags: IMetadataCommentTag[];
10
10
  jsDocTags: IJsDocTagInfo[];
11
11
  }
@@ -1,10 +1,7 @@
1
- import { IMetadata } from "./IMetadata";
1
+ import { IMetadataTupleType } from "./IMetadataTupleType";
2
+ import { IMetadataTypeTag } from "./IMetadataTypeTag";
2
3
 
3
4
  export interface IMetadataTuple {
4
- name: string;
5
- elements: IMetadata[];
6
-
7
- index: number | null;
8
- recursive: boolean;
9
- nullables: boolean[];
5
+ type: IMetadataTupleType;
6
+ tags: IMetadataTypeTag[][];
10
7
  }
@@ -0,0 +1,10 @@
1
+ import { IMetadata } from "./IMetadata";
2
+
3
+ export interface IMetadataTupleType {
4
+ name: string;
5
+ elements: IMetadata[];
6
+
7
+ index: number | null;
8
+ recursive: boolean;
9
+ nullables: boolean[];
10
+ }
@@ -0,0 +1,6 @@
1
+ export interface IMetadataTypeTag {
2
+ name: string;
3
+ kind: string;
4
+ value: any;
5
+ validate: string;
6
+ }