typia 13.0.0-dev.20260501 → 13.0.0-dev.20260506

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 (371) hide show
  1. package/lib/executable/generate/ttsc.js.map +1 -1
  2. package/lib/executable/setup/PluginConfigurator.js.map +1 -1
  3. package/lib/internal/_randomInteger.js.map +1 -1
  4. package/lib/internal/_validateReport.js.map +1 -1
  5. package/lib/transform.js.map +1 -1
  6. package/native/adapter/adapter.go +128 -128
  7. package/native/adapter/cleanup.go +155 -155
  8. package/native/adapter/imports.go +80 -80
  9. package/native/adapter/visit.go +142 -142
  10. package/native/cmd/ttsc-typia/build.go +223 -223
  11. package/native/cmd/ttsc-typia/main.go +57 -57
  12. package/native/cmd/ttsc-typia/transform.go +393 -385
  13. package/native/cmd/ttsc-typia/transform_test.go +40 -0
  14. package/native/core/context/IProgrammerProps.go +7 -7
  15. package/native/core/context/ITransformOptions.go +5 -5
  16. package/native/core/context/ITypiaContext.go +13 -13
  17. package/native/core/context/TransformerError.go +81 -81
  18. package/native/core/factories/CommentFactory.go +9 -9
  19. package/native/core/factories/ExpressionFactory.go +254 -254
  20. package/native/core/factories/FormatCheatSheet.go +23 -23
  21. package/native/core/factories/IdentifierFactory.go +130 -130
  22. package/native/core/factories/JsonMetadataFactory.go +129 -129
  23. package/native/core/factories/LiteralFactory.go +192 -192
  24. package/native/core/factories/MetadataCommentTagFactory.go +379 -379
  25. package/native/core/factories/MetadataFactory.go +462 -462
  26. package/native/core/factories/MetadataTypeTagFactory.go +498 -498
  27. package/native/core/factories/MetadataTypeTagSchemaFactory.go +102 -102
  28. package/native/core/factories/NumericRangeFactory.go +84 -84
  29. package/native/core/factories/ProtobufFactory.go +933 -933
  30. package/native/core/factories/StatementFactory.go +72 -72
  31. package/native/core/factories/TemplateFactory.go +57 -57
  32. package/native/core/factories/TypeFactory.go +125 -125
  33. package/native/core/factories/ValueFactory.go +12 -12
  34. package/native/core/factories/internal/metadata/IMetadataIteratorProps.go +35 -35
  35. package/native/core/factories/internal/metadata/MetadataHelper.go +176 -176
  36. package/native/core/factories/internal/metadata/emend_metadata_atomics.go +69 -69
  37. package/native/core/factories/internal/metadata/emplace_metadata_alias.go +27 -27
  38. package/native/core/factories/internal/metadata/emplace_metadata_array_type.go +33 -33
  39. package/native/core/factories/internal/metadata/emplace_metadata_object.go +209 -209
  40. package/native/core/factories/internal/metadata/emplace_metadata_tuple.go +50 -50
  41. package/native/core/factories/internal/metadata/explore_metadata.go +29 -29
  42. package/native/core/factories/internal/metadata/iterate_metadata.go +46 -46
  43. package/native/core/factories/internal/metadata/iterate_metadata_alias.go +25 -25
  44. package/native/core/factories/internal/metadata/iterate_metadata_array.go +65 -65
  45. package/native/core/factories/internal/metadata/iterate_metadata_atomic.go +49 -49
  46. package/native/core/factories/internal/metadata/iterate_metadata_coalesce.go +22 -22
  47. package/native/core/factories/internal/metadata/iterate_metadata_collection.go +228 -228
  48. package/native/core/factories/internal/metadata/iterate_metadata_comment_tags.go +12 -12
  49. package/native/core/factories/internal/metadata/iterate_metadata_constant.go +71 -71
  50. package/native/core/factories/internal/metadata/iterate_metadata_escape.go +48 -48
  51. package/native/core/factories/internal/metadata/iterate_metadata_function.go +82 -82
  52. package/native/core/factories/internal/metadata/iterate_metadata_intersection.go +319 -319
  53. package/native/core/factories/internal/metadata/iterate_metadata_map.go +51 -51
  54. package/native/core/factories/internal/metadata/iterate_metadata_native.go +85 -85
  55. package/native/core/factories/internal/metadata/iterate_metadata_object.go +27 -27
  56. package/native/core/factories/internal/metadata/iterate_metadata_set.go +37 -37
  57. package/native/core/factories/internal/metadata/iterate_metadata_sort.go +137 -137
  58. package/native/core/factories/internal/metadata/iterate_metadata_template.go +33 -33
  59. package/native/core/factories/internal/metadata/iterate_metadata_tuple.go +16 -16
  60. package/native/core/factories/internal/metadata/iterate_metadata_union.go +18 -18
  61. package/native/core/programmers/AssertProgrammer.go +389 -389
  62. package/native/core/programmers/ImportProgrammer.go +196 -196
  63. package/native/core/programmers/IsProgrammer.go +293 -293
  64. package/native/core/programmers/RandomProgrammer.go +1094 -1094
  65. package/native/core/programmers/ValidateProgrammer.go +369 -369
  66. package/native/core/programmers/functional/FunctionalAssertFunctionProgrammer.go +133 -133
  67. package/native/core/programmers/functional/FunctionalAssertParametersProgrammer.go +104 -104
  68. package/native/core/programmers/functional/FunctionalAssertReturnProgrammer.go +100 -100
  69. package/native/core/programmers/functional/FunctionalIsFunctionProgrammer.go +79 -79
  70. package/native/core/programmers/functional/FunctionalIsParametersProgrammer.go +159 -159
  71. package/native/core/programmers/functional/FunctionalIsReturnProgrammer.go +99 -99
  72. package/native/core/programmers/functional/FunctionalValidateFunctionProgrammer.go +138 -138
  73. package/native/core/programmers/functional/FunctionalValidateParametersProgrammer.go +222 -222
  74. package/native/core/programmers/functional/FunctionalValidateReturnProgrammer.go +116 -116
  75. package/native/core/programmers/functional/internal/FunctionalGeneralProgrammer.go +36 -36
  76. package/native/core/programmers/helpers/AtomicPredicator.go +35 -35
  77. package/native/core/programmers/helpers/CloneJoiner.go +217 -217
  78. package/native/core/programmers/helpers/FunctionProgrammer.go +79 -79
  79. package/native/core/programmers/helpers/HttpMetadataUtil.go +17 -17
  80. package/native/core/programmers/helpers/ICheckEntry.go +5 -5
  81. package/native/core/programmers/helpers/IExpressionEntry.go +6 -6
  82. package/native/core/programmers/helpers/NotationJoiner.go +159 -159
  83. package/native/core/programmers/helpers/OptionPredicator.go +4 -4
  84. package/native/core/programmers/helpers/ProtobufUtil.go +231 -231
  85. package/native/core/programmers/helpers/ProtobufWire.go +6 -6
  86. package/native/core/programmers/helpers/PruneJoiner.go +227 -227
  87. package/native/core/programmers/helpers/RandomJoiner.go +155 -155
  88. package/native/core/programmers/helpers/StringifyJoinder.go +331 -331
  89. package/native/core/programmers/helpers/StringifyPredicator.go +10 -10
  90. package/native/core/programmers/helpers/UnionExplorer.go +835 -835
  91. package/native/core/programmers/helpers/UnionPredicator.go +78 -78
  92. package/native/core/programmers/helpers/disable_function_programmer_declare.go +6 -6
  93. package/native/core/programmers/http/HttpAssertFormDataProgrammer.go +93 -93
  94. package/native/core/programmers/http/HttpAssertHeadersProgrammer.go +42 -42
  95. package/native/core/programmers/http/HttpAssertQueryProgrammer.go +51 -51
  96. package/native/core/programmers/http/HttpFormDataProgrammer.go +351 -351
  97. package/native/core/programmers/http/HttpHeadersProgrammer.go +370 -370
  98. package/native/core/programmers/http/HttpIsFormDataProgrammer.go +109 -109
  99. package/native/core/programmers/http/HttpIsHeadersProgrammer.go +36 -36
  100. package/native/core/programmers/http/HttpIsQueryProgrammer.go +45 -45
  101. package/native/core/programmers/http/HttpParameterProgrammer.go +158 -158
  102. package/native/core/programmers/http/HttpQueryProgrammer.go +422 -422
  103. package/native/core/programmers/http/HttpValidateFormDataProgrammer.go +87 -87
  104. package/native/core/programmers/http/HttpValidateHeadersProgrammer.go +39 -39
  105. package/native/core/programmers/http/HttpValidateQueryProgrammer.go +48 -48
  106. package/native/core/programmers/internal/CheckerProgrammer.go +1490 -1490
  107. package/native/core/programmers/internal/FeatureProgrammer.go +589 -589
  108. package/native/core/programmers/iterate/check_array_length.go +46 -46
  109. package/native/core/programmers/iterate/check_bigint.go +52 -52
  110. package/native/core/programmers/iterate/check_dynamic_key.go +220 -220
  111. package/native/core/programmers/iterate/check_dynamic_properties.go +245 -245
  112. package/native/core/programmers/iterate/check_everything.go +21 -21
  113. package/native/core/programmers/iterate/check_native.go +25 -25
  114. package/native/core/programmers/iterate/check_number.go +135 -135
  115. package/native/core/programmers/iterate/check_object.go +66 -66
  116. package/native/core/programmers/iterate/check_string.go +52 -52
  117. package/native/core/programmers/iterate/check_template.go +57 -57
  118. package/native/core/programmers/iterate/check_union_array_like.go +372 -372
  119. package/native/core/programmers/iterate/decode_union_object.go +118 -118
  120. package/native/core/programmers/iterate/feature_object_entries.go +134 -134
  121. package/native/core/programmers/iterate/json_schema_alias.go +52 -52
  122. package/native/core/programmers/iterate/json_schema_array.go +52 -52
  123. package/native/core/programmers/iterate/json_schema_bigint.go +8 -8
  124. package/native/core/programmers/iterate/json_schema_boolean.go +8 -8
  125. package/native/core/programmers/iterate/json_schema_constant.go +38 -38
  126. package/native/core/programmers/iterate/json_schema_description.go +12 -12
  127. package/native/core/programmers/iterate/json_schema_discriminator.go +47 -47
  128. package/native/core/programmers/iterate/json_schema_escaped.go +58 -58
  129. package/native/core/programmers/iterate/json_schema_jsDocTags.go +34 -34
  130. package/native/core/programmers/iterate/json_schema_native.go +43 -43
  131. package/native/core/programmers/iterate/json_schema_number.go +8 -8
  132. package/native/core/programmers/iterate/json_schema_object.go +149 -149
  133. package/native/core/programmers/iterate/json_schema_plugin.go +35 -35
  134. package/native/core/programmers/iterate/json_schema_station.go +211 -211
  135. package/native/core/programmers/iterate/json_schema_string.go +8 -8
  136. package/native/core/programmers/iterate/json_schema_template.go +53 -53
  137. package/native/core/programmers/iterate/json_schema_title.go +16 -16
  138. package/native/core/programmers/iterate/json_schema_tuple.go +34 -34
  139. package/native/core/programmers/iterate/metadata_to_pattern.go +53 -53
  140. package/native/core/programmers/iterate/postfix_of_tuple.go +5 -5
  141. package/native/core/programmers/iterate/prune_object_properties.go +85 -85
  142. package/native/core/programmers/iterate/stringify_dynamic_properties.go +193 -193
  143. package/native/core/programmers/iterate/stringify_native.go +1 -1
  144. package/native/core/programmers/iterate/stringify_regular_properties.go +84 -84
  145. package/native/core/programmers/iterate/template_to_pattern.go +20 -20
  146. package/native/core/programmers/iterate/wrap_metadata_rest_tuple.go +13 -13
  147. package/native/core/programmers/json/JsonApplicationProgrammer.go +323 -323
  148. package/native/core/programmers/json/JsonAssertParseProgrammer.go +100 -100
  149. package/native/core/programmers/json/JsonAssertStringifyProgrammer.go +88 -88
  150. package/native/core/programmers/json/JsonIsParseProgrammer.go +130 -130
  151. package/native/core/programmers/json/JsonIsStringifyProgrammer.go +92 -92
  152. package/native/core/programmers/json/JsonSchemaProgrammer.go +65 -65
  153. package/native/core/programmers/json/JsonSchemasProgrammer.go +116 -116
  154. package/native/core/programmers/json/JsonStringifyProgrammer.go +1245 -1245
  155. package/native/core/programmers/json/JsonValidateParseProgrammer.go +89 -89
  156. package/native/core/programmers/json/JsonValidateStringifyProgrammer.go +106 -106
  157. package/native/core/programmers/llm/LlmApplicationProgrammer.go +445 -445
  158. package/native/core/programmers/llm/LlmCoerceProgrammer.go +79 -79
  159. package/native/core/programmers/llm/LlmControllerProgrammer.go +35 -35
  160. package/native/core/programmers/llm/LlmMetadataFactory.go +74 -74
  161. package/native/core/programmers/llm/LlmParametersProgrammer.go +104 -104
  162. package/native/core/programmers/llm/LlmParseProgrammer.go +88 -88
  163. package/native/core/programmers/llm/LlmSchemaProgrammer.go +702 -702
  164. package/native/core/programmers/llm/LlmStructuredOutputProgrammer.go +123 -123
  165. package/native/core/programmers/misc/MiscAssertCloneProgrammer.go +82 -82
  166. package/native/core/programmers/misc/MiscAssertPruneProgrammer.go +97 -97
  167. package/native/core/programmers/misc/MiscCloneProgrammer.go +1056 -1056
  168. package/native/core/programmers/misc/MiscIsCloneProgrammer.go +94 -94
  169. package/native/core/programmers/misc/MiscIsPruneProgrammer.go +86 -86
  170. package/native/core/programmers/misc/MiscLiteralsProgrammer.go +99 -99
  171. package/native/core/programmers/misc/MiscPruneProgrammer.go +700 -700
  172. package/native/core/programmers/misc/MiscValidateCloneProgrammer.go +103 -103
  173. package/native/core/programmers/misc/MiscValidatePruneProgrammer.go +94 -94
  174. package/native/core/programmers/notations/NotationAssertGeneralProgrammer.go +85 -85
  175. package/native/core/programmers/notations/NotationGeneralProgrammer.go +1188 -1188
  176. package/native/core/programmers/notations/NotationIsGeneralProgrammer.go +90 -90
  177. package/native/core/programmers/notations/NotationValidateGeneralProgrammer.go +109 -109
  178. package/native/core/programmers/protobuf/ProtobufAssertDecodeProgrammer.go +99 -99
  179. package/native/core/programmers/protobuf/ProtobufAssertEncodeProgrammer.go +114 -114
  180. package/native/core/programmers/protobuf/ProtobufDecodeProgrammer.go +697 -697
  181. package/native/core/programmers/protobuf/ProtobufEncodeProgrammer.go +1039 -1039
  182. package/native/core/programmers/protobuf/ProtobufIsDecodeProgrammer.go +99 -99
  183. package/native/core/programmers/protobuf/ProtobufIsEncodeProgrammer.go +93 -93
  184. package/native/core/programmers/protobuf/ProtobufMessageProgrammer.go +228 -228
  185. package/native/core/programmers/protobuf/ProtobufValidateDecodeProgrammer.go +88 -88
  186. package/native/core/programmers/protobuf/ProtobufValidateEncodeProgrammer.go +120 -120
  187. package/native/core/schemas/metadata/IMetadataDictionary.go +4 -4
  188. package/native/core/schemas/metadata/MetadataAlias.go +15 -15
  189. package/native/core/schemas/metadata/MetadataAliasType.go +36 -36
  190. package/native/core/schemas/metadata/MetadataApplication.go +25 -25
  191. package/native/core/schemas/metadata/MetadataArray.go +15 -15
  192. package/native/core/schemas/metadata/MetadataArrayType.go +31 -31
  193. package/native/core/schemas/metadata/MetadataAtomic.go +45 -45
  194. package/native/core/schemas/metadata/MetadataCollection.go +380 -380
  195. package/native/core/schemas/metadata/MetadataComponents.go +95 -95
  196. package/native/core/schemas/metadata/MetadataConstant.go +31 -31
  197. package/native/core/schemas/metadata/MetadataConstantValue.go +63 -63
  198. package/native/core/schemas/metadata/MetadataEscaped.go +17 -17
  199. package/native/core/schemas/metadata/MetadataFunction.go +30 -30
  200. package/native/core/schemas/metadata/MetadataMap.go +21 -21
  201. package/native/core/schemas/metadata/MetadataNative.go +48 -48
  202. package/native/core/schemas/metadata/MetadataObject.go +15 -15
  203. package/native/core/schemas/metadata/MetadataObjectType.go +116 -116
  204. package/native/core/schemas/metadata/MetadataParameter.go +28 -28
  205. package/native/core/schemas/metadata/MetadataProperty.go +32 -32
  206. package/native/core/schemas/metadata/MetadataSchema.go +766 -766
  207. package/native/core/schemas/metadata/MetadataSet.go +17 -17
  208. package/native/core/schemas/metadata/MetadataTemplate.go +43 -43
  209. package/native/core/schemas/metadata/MetadataTuple.go +10 -10
  210. package/native/core/schemas/metadata/MetadataTupleType.go +38 -38
  211. package/native/core/schemas/protobuf/IProtobufProperty.go +2 -2
  212. package/native/core/schemas/protobuf/IProtobufPropertyType.go +18 -18
  213. package/native/core/schemas/protobuf/IProtobufSchema.go +17 -17
  214. package/native/core/typings/Writable.go +1 -1
  215. package/native/core/utils/PatternUtil.go +38 -38
  216. package/native/core/utils/ProtobufNameEncoder.go +28 -28
  217. package/native/shim/printer/go.mod +1 -1
  218. package/native/shim/printer/shim.go +213 -213
  219. package/native/third_party/ttsc/driver/host.go +9 -9
  220. package/native/third_party/ttsc/driver/program.go +344 -281
  221. package/native/third_party/ttsc/driver/rewrite.go +247 -221
  222. package/native/third_party/ttsc/go.mod +5 -3
  223. package/native/third_party/ttsc/go.sum +2 -2
  224. package/native/third_party/ttsc/shim/ast/go.mod +1 -1
  225. package/native/third_party/ttsc/shim/ast/lint.go +174 -171
  226. package/native/third_party/ttsc/shim/ast/shim.go +86 -85
  227. package/native/third_party/ttsc/shim/bundled/go.mod +1 -1
  228. package/native/third_party/ttsc/shim/bundled/shim.go +5 -1
  229. package/native/third_party/ttsc/shim/checker/go.mod +1 -1
  230. package/native/third_party/ttsc/shim/checker/shim.go +79 -79
  231. package/native/third_party/ttsc/shim/compiler/go.mod +1 -1
  232. package/native/third_party/ttsc/shim/compiler/shim.go +16 -1
  233. package/native/third_party/ttsc/shim/core/go.mod +1 -1
  234. package/native/third_party/ttsc/shim/core/shim.go +13 -10
  235. package/native/third_party/ttsc/shim/diagnosticwriter/go.mod +1 -1
  236. package/native/third_party/ttsc/shim/diagnosticwriter/lint.go +79 -79
  237. package/native/third_party/ttsc/shim/diagnosticwriter/shim.go +19 -19
  238. package/native/third_party/ttsc/shim/parser/go.mod +1 -1
  239. package/native/third_party/ttsc/shim/parser/shim.go +7 -1
  240. package/native/third_party/ttsc/shim/scanner/go.mod +1 -1
  241. package/native/third_party/ttsc/shim/scanner/shim.go +39 -1
  242. package/native/third_party/ttsc/shim/tsoptions/go.mod +1 -1
  243. package/native/third_party/ttsc/shim/tsoptions/shim.go +51 -1
  244. package/native/third_party/ttsc/shim/tspath/go.mod +1 -1
  245. package/native/third_party/ttsc/shim/tspath/shim.go +72 -1
  246. package/native/third_party/ttsc/shim/vfs/cachedvfs/go.mod +1 -1
  247. package/native/third_party/ttsc/shim/vfs/cachedvfs/shim.go +1 -1
  248. package/native/third_party/ttsc/shim/vfs/go.mod +1 -1
  249. package/native/third_party/ttsc/shim/vfs/osvfs/go.mod +1 -1
  250. package/native/third_party/ttsc/shim/vfs/osvfs/shim.go +1 -1
  251. package/native/third_party/ttsc/shim/vfs/shim.go +4 -1
  252. package/native/transform/CallExpressionTransformer.go +556 -556
  253. package/native/transform/FileTransformer.go +123 -123
  254. package/native/transform/ImportTransformer.go +224 -224
  255. package/native/transform/NodeTransformer.go +11 -11
  256. package/native/transform/TypiaGenerator.go +136 -136
  257. package/native/transform/features/AssertTransformer.go +28 -28
  258. package/native/transform/features/CreateAssertTransformer.go +28 -28
  259. package/native/transform/features/CreateIsTransformer.go +24 -24
  260. package/native/transform/features/CreateRandomTransformer.go +35 -35
  261. package/native/transform/features/CreateValidateTransformer.go +24 -24
  262. package/native/transform/features/IsTransformer.go +24 -24
  263. package/native/transform/features/RandomTransformer.go +37 -37
  264. package/native/transform/features/ValidateTransformer.go +24 -24
  265. package/native/transform/features/functional/FunctionalGenericTransformer.go +48 -48
  266. package/native/transform/features/http/CreateHttpAssertFormDataTransformer.go +11 -11
  267. package/native/transform/features/http/CreateHttpAssertHeadersTransformer.go +11 -11
  268. package/native/transform/features/http/CreateHttpAssertQueryTransformer.go +17 -17
  269. package/native/transform/features/http/CreateHttpFormDataTransformer.go +11 -11
  270. package/native/transform/features/http/CreateHttpHeadersTransformer.go +11 -11
  271. package/native/transform/features/http/CreateHttpIsFormDataTransformer.go +11 -11
  272. package/native/transform/features/http/CreateHttpIsHeadersTransformer.go +11 -11
  273. package/native/transform/features/http/CreateHttpIsQueryTransformer.go +17 -17
  274. package/native/transform/features/http/CreateHttpParameterTransformer.go +11 -11
  275. package/native/transform/features/http/CreateHttpQueryTransformer.go +17 -17
  276. package/native/transform/features/http/CreateHttpValidateFormDataTransformer.go +11 -11
  277. package/native/transform/features/http/CreateHttpValidateHeadersTransformer.go +11 -11
  278. package/native/transform/features/http/CreateHttpValidateQueryTransformer.go +17 -17
  279. package/native/transform/features/http/HttpAssertFormDataTransformer.go +11 -11
  280. package/native/transform/features/http/HttpAssertHeadersTransformer.go +11 -11
  281. package/native/transform/features/http/HttpAssertQueryTransformer.go +17 -17
  282. package/native/transform/features/http/HttpFormDataTransformer.go +11 -11
  283. package/native/transform/features/http/HttpHeadersTransformer.go +11 -11
  284. package/native/transform/features/http/HttpIsFormDataTransformer.go +11 -11
  285. package/native/transform/features/http/HttpIsHeadersTransformer.go +11 -11
  286. package/native/transform/features/http/HttpIsQueryTransformer.go +17 -17
  287. package/native/transform/features/http/HttpParameterTransformer.go +11 -11
  288. package/native/transform/features/http/HttpQueryTransformer.go +17 -17
  289. package/native/transform/features/http/HttpValidateFormDataTransformer.go +11 -11
  290. package/native/transform/features/http/HttpValidateHeadersTransformer.go +11 -11
  291. package/native/transform/features/http/HttpValidateQueryTransformer.go +17 -17
  292. package/native/transform/features/json/JsonApplicationTransformer.go +61 -61
  293. package/native/transform/features/json/JsonAssertParseTransformer.go +11 -11
  294. package/native/transform/features/json/JsonAssertStringifyTransformer.go +11 -11
  295. package/native/transform/features/json/JsonCreateAssertParseTransformer.go +11 -11
  296. package/native/transform/features/json/JsonCreateAssertStringifyTransformer.go +11 -11
  297. package/native/transform/features/json/JsonCreateIsParseTransformer.go +11 -11
  298. package/native/transform/features/json/JsonCreateIsStringifyTransformer.go +11 -11
  299. package/native/transform/features/json/JsonCreateStringifyTransformer.go +11 -11
  300. package/native/transform/features/json/JsonCreateValidateParseTransformer.go +11 -11
  301. package/native/transform/features/json/JsonCreateValidateStringifyProgrammer.go +11 -11
  302. package/native/transform/features/json/JsonIsParseTransformer.go +11 -11
  303. package/native/transform/features/json/JsonIsStringifyTransformer.go +11 -11
  304. package/native/transform/features/json/JsonSchemaTransformer.go +148 -148
  305. package/native/transform/features/json/JsonSchemasTransformer.go +94 -94
  306. package/native/transform/features/json/JsonStringifyTransformer.go +11 -11
  307. package/native/transform/features/json/JsonValidateParseTransformer.go +11 -11
  308. package/native/transform/features/json/JsonValidateStringifyTransformer.go +11 -11
  309. package/native/transform/features/llm/LlmApplicationTransformer.go +43 -43
  310. package/native/transform/features/llm/LlmCoerceTransformer.go +50 -50
  311. package/native/transform/features/llm/LlmControllerTransformer.go +48 -48
  312. package/native/transform/features/llm/LlmCreateCoerceTransformer.go +43 -43
  313. package/native/transform/features/llm/LlmCreateParseTransformer.go +43 -43
  314. package/native/transform/features/llm/LlmParametersTransformer.go +38 -38
  315. package/native/transform/features/llm/LlmParseTransformer.go +50 -50
  316. package/native/transform/features/llm/LlmSchemaTransformer.go +129 -129
  317. package/native/transform/features/llm/LlmStructuredOutputTransformer.go +44 -44
  318. package/native/transform/features/misc/MiscAssertCloneTransformer.go +11 -11
  319. package/native/transform/features/misc/MiscAssertPruneTransformer.go +11 -11
  320. package/native/transform/features/misc/MiscCloneTransformer.go +11 -11
  321. package/native/transform/features/misc/MiscCreateAssertCloneTransformer.go +11 -11
  322. package/native/transform/features/misc/MiscCreateAssertPruneTransformer.go +11 -11
  323. package/native/transform/features/misc/MiscCreateCloneTransformer.go +11 -11
  324. package/native/transform/features/misc/MiscCreateIsCloneTransformer.go +11 -11
  325. package/native/transform/features/misc/MiscCreateIsPruneTransformer.go +11 -11
  326. package/native/transform/features/misc/MiscCreatePruneTransformer.go +11 -11
  327. package/native/transform/features/misc/MiscCreateValidateCloneTransformer.go +11 -11
  328. package/native/transform/features/misc/MiscCreateValidatePruneTransformer.go +11 -11
  329. package/native/transform/features/misc/MiscIsCloneTransformer.go +11 -11
  330. package/native/transform/features/misc/MiscIsPruneTransformer.go +11 -11
  331. package/native/transform/features/misc/MiscLiteralsTransformer.go +21 -21
  332. package/native/transform/features/misc/MiscPruneTransformer.go +11 -11
  333. package/native/transform/features/misc/MiscValidateCloneTransformer.go +11 -11
  334. package/native/transform/features/misc/MiscValidatePruneTransformer.go +11 -11
  335. package/native/transform/features/notations/NotationAssertGeneralTransformer.go +16 -16
  336. package/native/transform/features/notations/NotationCreateAssertGeneralTransformer.go +16 -16
  337. package/native/transform/features/notations/NotationCreateGeneralTransformer.go +16 -16
  338. package/native/transform/features/notations/NotationCreateIsGeneralTransformer.go +16 -16
  339. package/native/transform/features/notations/NotationCreateValidateGeneralTransformer.go +16 -16
  340. package/native/transform/features/notations/NotationGeneralTransformer.go +21 -21
  341. package/native/transform/features/notations/NotationIsGeneralTransformer.go +16 -16
  342. package/native/transform/features/notations/NotationValidateGeneralTransformer.go +16 -16
  343. package/native/transform/features/protobuf/ProtobufAssertDecodeTransformer.go +11 -11
  344. package/native/transform/features/protobuf/ProtobufAssertEncodeTransformer.go +11 -11
  345. package/native/transform/features/protobuf/ProtobufCreateAssertDecodeTransformer.go +11 -11
  346. package/native/transform/features/protobuf/ProtobufCreateAssertEncodeTransformer.go +11 -11
  347. package/native/transform/features/protobuf/ProtobufCreateDecodeTransformer.go +11 -11
  348. package/native/transform/features/protobuf/ProtobufCreateEncodeTransformer.go +11 -11
  349. package/native/transform/features/protobuf/ProtobufCreateIsDecodeTransformer.go +11 -11
  350. package/native/transform/features/protobuf/ProtobufCreateIsEncodeTransformer.go +11 -11
  351. package/native/transform/features/protobuf/ProtobufCreateValidateDecodeTransformer.go +11 -11
  352. package/native/transform/features/protobuf/ProtobufCreateValidateEncodeTransformer.go +11 -11
  353. package/native/transform/features/protobuf/ProtobufDecodeTransformer.go +11 -11
  354. package/native/transform/features/protobuf/ProtobufEncodeTransformer.go +11 -11
  355. package/native/transform/features/protobuf/ProtobufIsDecodeTransformer.go +11 -11
  356. package/native/transform/features/protobuf/ProtobufIsEncodeTransformer.go +11 -11
  357. package/native/transform/features/protobuf/ProtobufMessageTransformer.go +20 -20
  358. package/native/transform/features/protobuf/ProtobufValidateDecodeTransformer.go +11 -11
  359. package/native/transform/features/protobuf/ProtobufValidateEncodeTransformer.go +11 -11
  360. package/native/transform/features/reflect/ReflectMetadataTransformer.go +59 -59
  361. package/native/transform/features/reflect/ReflectNameTransformer.go +78 -78
  362. package/native/transform/features/reflect/ReflectSchemaTransformer.go +121 -121
  363. package/native/transform/features/reflect/ReflectSchemasTransformer.go +55 -55
  364. package/native/transform/internal/GenericTransformer.go +173 -173
  365. package/native/transform/transform.go +32 -32
  366. package/package.json +5 -5
  367. package/src/executable/generate/ttsc.ts +2 -3
  368. package/src/executable/setup/PluginConfigurator.ts +2 -3
  369. package/src/internal/_randomInteger.ts +5 -5
  370. package/src/internal/_validateReport.ts +1 -2
  371. package/src/transform.ts +1 -1
@@ -1,48 +1,48 @@
1
1
  package iterate
2
2
 
3
3
  import (
4
- "strconv"
5
- "strings"
4
+ "strconv"
5
+ "strings"
6
6
 
7
- nativemetadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
7
+ nativemetadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
8
8
  )
9
9
 
10
10
  func json_schema_jsDocTags(schema JsonSchema, jsDocTags []nativemetadata.IJsDocTagInfo) JsonSchema {
11
- for _, tag := range jsDocTags {
12
- if strings.HasPrefix(tag.Name, "x-") == false {
13
- continue
14
- }
15
- value, ok := json_schema_jsDocTags_value(tag)
16
- if ok == false {
17
- continue
18
- }
19
- schema[tag.Name] = json_schema_jsDocTags_cast(value)
20
- }
21
- return schema
11
+ for _, tag := range jsDocTags {
12
+ if strings.HasPrefix(tag.Name, "x-") == false {
13
+ continue
14
+ }
15
+ value, ok := json_schema_jsDocTags_value(tag)
16
+ if ok == false {
17
+ continue
18
+ }
19
+ schema[tag.Name] = json_schema_jsDocTags_cast(value)
20
+ }
21
+ return schema
22
22
  }
23
23
 
24
24
  func json_schema_jsDocTags_value(tag nativemetadata.IJsDocTagInfo) (string, bool) {
25
- for _, text := range tag.Text {
26
- if text.Kind != "text" {
27
- continue
28
- }
29
- return strings.ReplaceAll(strings.TrimSpace(text.Text), "\r\n", "\n"), true
30
- }
31
- return "", false
25
+ for _, text := range tag.Text {
26
+ if text.Kind != "text" {
27
+ continue
28
+ }
29
+ return strings.ReplaceAll(strings.TrimSpace(text.Text), "\r\n", "\n"), true
30
+ }
31
+ return "", false
32
32
  }
33
33
 
34
34
  func json_schema_jsDocTags_cast(value string) any {
35
- if value == "true" {
36
- return true
37
- }
38
- if value == "false" {
39
- return false
40
- }
41
- if num, err := strconv.ParseFloat(value, 64); err == nil {
42
- return num
43
- }
44
- if value == "null" {
45
- return nil
46
- }
47
- return value
35
+ if value == "true" {
36
+ return true
37
+ }
38
+ if value == "false" {
39
+ return false
40
+ }
41
+ if num, err := strconv.ParseFloat(value, 64); err == nil {
42
+ return num
43
+ }
44
+ if value == "null" {
45
+ return nil
46
+ }
47
+ return value
48
48
  }
@@ -3,57 +3,57 @@ package iterate
3
3
  import nativemetadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
4
4
 
5
5
  type OpenApi_IComponents struct {
6
- Schemas map[string]JsonSchema
6
+ Schemas map[string]JsonSchema
7
7
  }
8
8
 
9
9
  type Json_schema_native_export_props struct {
10
- Components *OpenApi_IComponents
11
- Native *nativemetadata.MetadataNative
10
+ Components *OpenApi_IComponents
11
+ Native *nativemetadata.MetadataNative
12
12
  }
13
13
 
14
14
  func json_schema_native(props struct {
15
- components *OpenApi_IComponents
16
- native *nativemetadata.MetadataNative
15
+ components *OpenApi_IComponents
16
+ native *nativemetadata.MetadataNative
17
17
  }) []JsonSchema {
18
- if props.native.Name == "Blob" || props.native.Name == "File" {
19
- return json_schema_plugin(struct {
20
- schema JsonSchema
21
- tags [][]nativemetadata.IMetadataTypeTag
22
- }{
23
- schema: JsonSchema{
24
- "type": "string",
25
- "format": "binary",
26
- },
27
- tags: props.native.Tags,
28
- })
29
- }
30
- if props.components.Schemas == nil {
31
- props.components.Schemas = map[string]JsonSchema{}
32
- }
33
- if _, ok := props.components.Schemas[props.native.Name]; ok == false {
34
- props.components.Schemas[props.native.Name] = JsonSchema{
35
- "type": "object",
36
- "properties": JsonSchema{},
37
- "required": []string{},
38
- }
39
- }
40
- return json_schema_plugin(struct {
41
- schema JsonSchema
42
- tags [][]nativemetadata.IMetadataTypeTag
43
- }{
44
- schema: JsonSchema{
45
- "$ref": "#/components/schemas/" + props.native.Name,
46
- },
47
- tags: props.native.Tags,
48
- })
18
+ if props.native.Name == "Blob" || props.native.Name == "File" {
19
+ return json_schema_plugin(struct {
20
+ schema JsonSchema
21
+ tags [][]nativemetadata.IMetadataTypeTag
22
+ }{
23
+ schema: JsonSchema{
24
+ "type": "string",
25
+ "format": "binary",
26
+ },
27
+ tags: props.native.Tags,
28
+ })
29
+ }
30
+ if props.components.Schemas == nil {
31
+ props.components.Schemas = map[string]JsonSchema{}
32
+ }
33
+ if _, ok := props.components.Schemas[props.native.Name]; ok == false {
34
+ props.components.Schemas[props.native.Name] = JsonSchema{
35
+ "type": "object",
36
+ "properties": JsonSchema{},
37
+ "required": []string{},
38
+ }
39
+ }
40
+ return json_schema_plugin(struct {
41
+ schema JsonSchema
42
+ tags [][]nativemetadata.IMetadataTypeTag
43
+ }{
44
+ schema: JsonSchema{
45
+ "$ref": "#/components/schemas/" + props.native.Name,
46
+ },
47
+ tags: props.native.Tags,
48
+ })
49
49
  }
50
50
 
51
51
  func Json_schema_native_export(props Json_schema_native_export_props) []JsonSchema {
52
- return json_schema_native(struct {
53
- components *OpenApi_IComponents
54
- native *nativemetadata.MetadataNative
55
- }{
56
- components: props.Components,
57
- native: props.Native,
58
- })
52
+ return json_schema_native(struct {
53
+ components *OpenApi_IComponents
54
+ native *nativemetadata.MetadataNative
55
+ }{
56
+ components: props.Components,
57
+ native: props.Native,
58
+ })
59
59
  }
@@ -3,15 +3,15 @@ package iterate
3
3
  import nativemetadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
4
4
 
5
5
  func json_schema_number(atomic *nativemetadata.MetadataAtomic) []JsonSchema {
6
- return json_schema_plugin(struct {
7
- schema JsonSchema
8
- tags [][]nativemetadata.IMetadataTypeTag
9
- }{
10
- schema: JsonSchema{"type": "number"},
11
- tags: atomic.Tags,
12
- })
6
+ return json_schema_plugin(struct {
7
+ schema JsonSchema
8
+ tags [][]nativemetadata.IMetadataTypeTag
9
+ }{
10
+ schema: JsonSchema{"type": "number"},
11
+ tags: atomic.Tags,
12
+ })
13
13
  }
14
14
 
15
15
  func Json_schema_number_export(atomic *nativemetadata.MetadataAtomic) []JsonSchema {
16
- return json_schema_number(atomic)
16
+ return json_schema_number(atomic)
17
17
  }
@@ -1,179 +1,179 @@
1
1
  package iterate
2
2
 
3
3
  import (
4
- nativemetadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
5
- nativeutils "github.com/samchon/typia/packages/typia/native/core/utils"
4
+ nativemetadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
5
+ nativeutils "github.com/samchon/typia/packages/typia/native/core/utils"
6
6
  )
7
7
 
8
8
  func json_schema_object(props struct {
9
- components *OpenApi_IComponents
10
- object *nativemetadata.MetadataObject
9
+ components *OpenApi_IComponents
10
+ object *nativemetadata.MetadataObject
11
11
  }) []JsonSchema {
12
- return json_schema_plugin(struct {
13
- schema JsonSchema
14
- tags [][]nativemetadata.IMetadataTypeTag
15
- }{
16
- schema: json_schema_emplace_object(props),
17
- tags: props.object.Tags,
18
- })
12
+ return json_schema_plugin(struct {
13
+ schema JsonSchema
14
+ tags [][]nativemetadata.IMetadataTypeTag
15
+ }{
16
+ schema: json_schema_emplace_object(props),
17
+ tags: props.object.Tags,
18
+ })
19
19
  }
20
20
 
21
21
  func json_schema_emplace_object(props struct {
22
- components *OpenApi_IComponents
23
- object *nativemetadata.MetadataObject
22
+ components *OpenApi_IComponents
23
+ object *nativemetadata.MetadataObject
24
24
  }) JsonSchema {
25
- if props.object.Type.IsLiteral() {
26
- return json_schema_create_object_schema(props)
27
- }
28
- key := props.object.Type.Name
29
- ref := "#/components/schemas/" + key
30
- if props.components.Schemas != nil {
31
- if _, ok := props.components.Schemas[key]; ok {
32
- return JsonSchema{"$ref": ref}
33
- }
34
- }
35
- if props.components.Schemas == nil {
36
- props.components.Schemas = map[string]JsonSchema{}
37
- }
38
- lazy := JsonSchema{}
39
- props.components.Schemas[key] = lazy
40
- json_schema_assign(lazy, json_schema_create_object_schema(props))
41
- return JsonSchema{"$ref": ref}
25
+ if props.object.Type.IsLiteral() {
26
+ return json_schema_create_object_schema(props)
27
+ }
28
+ key := props.object.Type.Name
29
+ ref := "#/components/schemas/" + key
30
+ if props.components.Schemas != nil {
31
+ if _, ok := props.components.Schemas[key]; ok {
32
+ return JsonSchema{"$ref": ref}
33
+ }
34
+ }
35
+ if props.components.Schemas == nil {
36
+ props.components.Schemas = map[string]JsonSchema{}
37
+ }
38
+ lazy := JsonSchema{}
39
+ props.components.Schemas[key] = lazy
40
+ json_schema_assign(lazy, json_schema_create_object_schema(props))
41
+ return JsonSchema{"$ref": ref}
42
42
  }
43
43
 
44
44
  func json_schema_create_object_schema(props struct {
45
- components *OpenApi_IComponents
46
- object *nativemetadata.MetadataObject
45
+ components *OpenApi_IComponents
46
+ object *nativemetadata.MetadataObject
47
47
  }) JsonSchema {
48
- properties := JsonSchema{}
49
- extraMeta := json_schema_superfluous{
50
- patternProperties: map[string]json_schema_metadata_schema_pair{},
51
- }
52
- required := []string{}
48
+ properties := JsonSchema{}
49
+ extraMeta := json_schema_superfluous{
50
+ patternProperties: map[string]json_schema_metadata_schema_pair{},
51
+ }
52
+ required := []string{}
53
53
 
54
- for _, property := range props.object.Type.Properties {
55
- if len(property.Value.Functions) != 0 &&
56
- property.Value.Nullable == false &&
57
- property.Value.IsRequired() &&
58
- property.Value.Size() == 0 {
59
- continue
60
- }
61
- if json_schema_has_any_tag(property.JsDocTags, []string{"hidden", "ignore", "internal"}) {
62
- continue
63
- }
54
+ for _, property := range props.object.Type.Properties {
55
+ if len(property.Value.Functions) != 0 &&
56
+ property.Value.Nullable == false &&
57
+ property.Value.IsRequired() &&
58
+ property.Value.Size() == 0 {
59
+ continue
60
+ }
61
+ if json_schema_has_any_tag(property.JsDocTags, []string{"hidden", "ignore", "internal"}) {
62
+ continue
63
+ }
64
64
 
65
- attribute := JsonSchema{}
66
- if json_schema_has_tag(property.JsDocTags, "deprecated") {
67
- attribute["deprecated"] = true
68
- }
69
- if title := json_schema_title(struct {
70
- description *string
71
- jsDocTags []nativemetadata.IJsDocTagInfo
72
- }{description: property.Description, jsDocTags: property.JsDocTags}); title != nil {
73
- attribute["title"] = *title
74
- }
75
- if description := json_schema_description(struct {
76
- description *string
77
- jsDocTags []nativemetadata.IJsDocTagInfo
78
- }{description: property.Description, jsDocTags: property.JsDocTags}); description != nil {
79
- attribute["description"] = *description
80
- }
81
- if property.Mutability != nil && *property.Mutability == "readonly" {
82
- attribute["readOnly"] = true
83
- }
84
- value := json_schema_station(json_schema_station_props{
85
- blockNever: true,
86
- components: props.components,
87
- attribute: attribute,
88
- metadata: property.Value,
89
- })
90
- if value == nil {
91
- continue
92
- }
93
- json_schema_jsDocTags(value, property.JsDocTags)
65
+ attribute := JsonSchema{}
66
+ if json_schema_has_tag(property.JsDocTags, "deprecated") {
67
+ attribute["deprecated"] = true
68
+ }
69
+ if title := json_schema_title(struct {
70
+ description *string
71
+ jsDocTags []nativemetadata.IJsDocTagInfo
72
+ }{description: property.Description, jsDocTags: property.JsDocTags}); title != nil {
73
+ attribute["title"] = *title
74
+ }
75
+ if description := json_schema_description(struct {
76
+ description *string
77
+ jsDocTags []nativemetadata.IJsDocTagInfo
78
+ }{description: property.Description, jsDocTags: property.JsDocTags}); description != nil {
79
+ attribute["description"] = *description
80
+ }
81
+ if property.Mutability != nil && *property.Mutability == "readonly" {
82
+ attribute["readOnly"] = true
83
+ }
84
+ value := json_schema_station(json_schema_station_props{
85
+ blockNever: true,
86
+ components: props.components,
87
+ attribute: attribute,
88
+ metadata: property.Value,
89
+ })
90
+ if value == nil {
91
+ continue
92
+ }
93
+ json_schema_jsDocTags(value, property.JsDocTags)
94
94
 
95
- key := property.Key.GetSoleLiteral()
96
- if key != nil {
97
- properties[*key] = value
98
- if property.Value.IsRequired() {
99
- required = append(required, *key)
100
- }
101
- } else {
102
- pattern := metadata_to_pattern(struct {
103
- top bool
104
- metadata *nativemetadata.MetadataSchema
105
- }{top: true, metadata: property.Key})
106
- pair := json_schema_metadata_schema_pair{metadata: property.Value, schema: value}
107
- if pattern == nativeutils.PatternUtil.STRING {
108
- extraMeta.additionalProperties = &pair
109
- } else {
110
- extraMeta.patternProperties[pattern] = pair
111
- }
112
- }
113
- }
95
+ key := property.Key.GetSoleLiteral()
96
+ if key != nil {
97
+ properties[*key] = value
98
+ if property.Value.IsRequired() {
99
+ required = append(required, *key)
100
+ }
101
+ } else {
102
+ pattern := metadata_to_pattern(struct {
103
+ top bool
104
+ metadata *nativemetadata.MetadataSchema
105
+ }{top: true, metadata: property.Key})
106
+ pair := json_schema_metadata_schema_pair{metadata: property.Value, schema: value}
107
+ if pattern == nativeutils.PatternUtil.STRING {
108
+ extraMeta.additionalProperties = &pair
109
+ } else {
110
+ extraMeta.patternProperties[pattern] = pair
111
+ }
112
+ }
113
+ }
114
114
 
115
- schema := JsonSchema{
116
- "type": "object",
117
- "properties": properties,
118
- "required": required,
119
- "additionalProperties": false,
120
- }
121
- if title := json_schema_title(struct {
122
- description *string
123
- jsDocTags []nativemetadata.IJsDocTagInfo
124
- }{description: props.object.Type.Description, jsDocTags: props.object.Type.JsDocTags}); title != nil {
125
- schema["title"] = *title
126
- }
127
- if description := json_schema_description(struct {
128
- description *string
129
- jsDocTags []nativemetadata.IJsDocTagInfo
130
- }{description: props.object.Type.Description, jsDocTags: props.object.Type.JsDocTags}); description != nil {
131
- schema["description"] = *description
132
- }
133
- if additional := json_schema_join(struct {
134
- components *OpenApi_IComponents
135
- extra json_schema_superfluous
136
- }{components: props.components, extra: extraMeta}); additional != nil {
137
- schema["additionalProperties"] = additional
138
- }
139
- return json_schema_jsDocTags(schema, props.object.Type.JsDocTags)
115
+ schema := JsonSchema{
116
+ "type": "object",
117
+ "properties": properties,
118
+ "required": required,
119
+ "additionalProperties": false,
120
+ }
121
+ if title := json_schema_title(struct {
122
+ description *string
123
+ jsDocTags []nativemetadata.IJsDocTagInfo
124
+ }{description: props.object.Type.Description, jsDocTags: props.object.Type.JsDocTags}); title != nil {
125
+ schema["title"] = *title
126
+ }
127
+ if description := json_schema_description(struct {
128
+ description *string
129
+ jsDocTags []nativemetadata.IJsDocTagInfo
130
+ }{description: props.object.Type.Description, jsDocTags: props.object.Type.JsDocTags}); description != nil {
131
+ schema["description"] = *description
132
+ }
133
+ if additional := json_schema_join(struct {
134
+ components *OpenApi_IComponents
135
+ extra json_schema_superfluous
136
+ }{components: props.components, extra: extraMeta}); additional != nil {
137
+ schema["additionalProperties"] = additional
138
+ }
139
+ return json_schema_jsDocTags(schema, props.object.Type.JsDocTags)
140
140
  }
141
141
 
142
142
  func json_schema_join(props struct {
143
- components *OpenApi_IComponents
144
- extra json_schema_superfluous
143
+ components *OpenApi_IComponents
144
+ extra json_schema_superfluous
145
145
  }) JsonSchema {
146
- elements := []json_schema_metadata_schema_pair{}
147
- for _, value := range props.extra.patternProperties {
148
- elements = append(elements, value)
149
- }
150
- if props.extra.additionalProperties != nil {
151
- elements = append(elements, *props.extra.additionalProperties)
152
- }
153
- if len(elements) == 0 {
154
- return nil
155
- }
156
- if len(elements) == 1 {
157
- return elements[0].schema
158
- }
159
- metadata := elements[0].metadata
160
- for i := 1; i < len(elements); i++ {
161
- metadata = nativemetadata.MetadataSchema_merge(metadata, elements[i].metadata)
162
- }
163
- return json_schema_station(json_schema_station_props{
164
- blockNever: true,
165
- components: props.components,
166
- attribute: JsonSchema{},
167
- metadata: metadata,
168
- })
146
+ elements := []json_schema_metadata_schema_pair{}
147
+ for _, value := range props.extra.patternProperties {
148
+ elements = append(elements, value)
149
+ }
150
+ if props.extra.additionalProperties != nil {
151
+ elements = append(elements, *props.extra.additionalProperties)
152
+ }
153
+ if len(elements) == 0 {
154
+ return nil
155
+ }
156
+ if len(elements) == 1 {
157
+ return elements[0].schema
158
+ }
159
+ metadata := elements[0].metadata
160
+ for i := 1; i < len(elements); i++ {
161
+ metadata = nativemetadata.MetadataSchema_merge(metadata, elements[i].metadata)
162
+ }
163
+ return json_schema_station(json_schema_station_props{
164
+ blockNever: true,
165
+ components: props.components,
166
+ attribute: JsonSchema{},
167
+ metadata: metadata,
168
+ })
169
169
  }
170
170
 
171
171
  type json_schema_superfluous struct {
172
- additionalProperties *json_schema_metadata_schema_pair
173
- patternProperties map[string]json_schema_metadata_schema_pair
172
+ additionalProperties *json_schema_metadata_schema_pair
173
+ patternProperties map[string]json_schema_metadata_schema_pair
174
174
  }
175
175
 
176
176
  type json_schema_metadata_schema_pair struct {
177
- metadata *nativemetadata.MetadataSchema
178
- schema JsonSchema
177
+ metadata *nativemetadata.MetadataSchema
178
+ schema JsonSchema
179
179
  }
@@ -5,43 +5,43 @@ import nativemetadata "github.com/samchon/typia/packages/typia/native/core/schem
5
5
  type JsonSchema map[string]any
6
6
 
7
7
  func json_schema_plugin(props struct {
8
- schema JsonSchema
9
- tags [][]nativemetadata.IMetadataTypeTag
8
+ schema JsonSchema
9
+ tags [][]nativemetadata.IMetadataTypeTag
10
10
  }) []JsonSchema {
11
- plugins := make([][]nativemetadata.IMetadataTypeTag, 0)
12
- for _, row := range props.tags {
13
- filtered := make([]nativemetadata.IMetadataTypeTag, 0)
14
- for _, tag := range row {
15
- if tag.Schema != nil {
16
- filtered = append(filtered, tag)
17
- }
18
- }
19
- if len(filtered) != 0 {
20
- plugins = append(plugins, filtered)
21
- }
22
- }
23
- if len(plugins) == 0 {
24
- return []JsonSchema{props.schema}
25
- }
26
- output := make([]JsonSchema, 0, len(plugins))
27
- for _, row := range plugins {
28
- base := cloneJsonSchema(props.schema)
29
- for _, tag := range row {
30
- if schema, ok := tag.Schema.(map[string]any); ok {
31
- for key, value := range schema {
32
- base[key] = value
33
- }
34
- }
35
- }
36
- output = append(output, base)
37
- }
38
- return output
11
+ plugins := make([][]nativemetadata.IMetadataTypeTag, 0)
12
+ for _, row := range props.tags {
13
+ filtered := make([]nativemetadata.IMetadataTypeTag, 0)
14
+ for _, tag := range row {
15
+ if tag.Schema != nil {
16
+ filtered = append(filtered, tag)
17
+ }
18
+ }
19
+ if len(filtered) != 0 {
20
+ plugins = append(plugins, filtered)
21
+ }
22
+ }
23
+ if len(plugins) == 0 {
24
+ return []JsonSchema{props.schema}
25
+ }
26
+ output := make([]JsonSchema, 0, len(plugins))
27
+ for _, row := range plugins {
28
+ base := cloneJsonSchema(props.schema)
29
+ for _, tag := range row {
30
+ if schema, ok := tag.Schema.(map[string]any); ok {
31
+ for key, value := range schema {
32
+ base[key] = value
33
+ }
34
+ }
35
+ }
36
+ output = append(output, base)
37
+ }
38
+ return output
39
39
  }
40
40
 
41
41
  func cloneJsonSchema(input JsonSchema) JsonSchema {
42
- output := JsonSchema{}
43
- for key, value := range input {
44
- output[key] = value
45
- }
46
- return output
42
+ output := JsonSchema{}
43
+ for key, value := range input {
44
+ output[key] = value
45
+ }
46
+ return output
47
47
  }