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,56 +1,56 @@
1
1
  package metadata
2
2
 
3
3
  import (
4
- nativechecker "github.com/microsoft/typescript-go/shim/checker"
5
- schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
4
+ nativechecker "github.com/microsoft/typescript-go/shim/checker"
5
+ schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
6
6
  )
7
7
 
8
8
  type MetadataFactory_IOptions struct {
9
- Escape bool
10
- Absorb bool
11
- Constant bool
12
- Functional bool
13
- Validate func(props struct {
14
- Metadata *schemametadata.MetadataSchema
15
- Explore MetadataFactory_IExplore
16
- Top *schemametadata.MetadataSchema
17
- }) []string
18
- OnError func(node any, message string)
9
+ Escape bool
10
+ Absorb bool
11
+ Constant bool
12
+ Functional bool
13
+ Validate func(props struct {
14
+ Metadata *schemametadata.MetadataSchema
15
+ Explore MetadataFactory_IExplore
16
+ Top *schemametadata.MetadataSchema
17
+ }) []string
18
+ OnError func(node any, message string)
19
19
  }
20
20
 
21
21
  type MetadataFactory_IError struct {
22
- Name string
23
- Explore MetadataFactory_IExplore
24
- Messages []string
22
+ Name string
23
+ Explore MetadataFactory_IExplore
24
+ Messages []string
25
25
  }
26
26
 
27
27
  type MetadataFactory_IExplore struct {
28
- Top bool
29
- Object *schemametadata.MetadataObjectType
30
- Property any
31
- Parameter any
32
- Nested any
33
- Aliased bool
34
- Escaped bool
35
- Output bool
28
+ Top bool
29
+ Object *schemametadata.MetadataObjectType
30
+ Property any
31
+ Parameter any
32
+ Nested any
33
+ Aliased bool
34
+ Escaped bool
35
+ Output bool
36
36
  }
37
37
 
38
38
  type MetadataFactory_IExplore_Function func(MetadataFactory_IExplore) MetadataFactory_IExplore
39
39
 
40
40
  type IMetadataIteratorProps struct {
41
- Options MetadataFactory_IOptions
42
- Checker *nativechecker.Checker
43
- Components *schemametadata.MetadataCollection
44
- Errors *[]MetadataFactory_IError
45
- Metadata *schemametadata.MetadataSchema
46
- Type *nativechecker.Type
47
- Explore MetadataFactory_IExplore
48
- Intersected bool
41
+ Options MetadataFactory_IOptions
42
+ Checker *nativechecker.Checker
43
+ Components *schemametadata.MetadataCollection
44
+ Errors *[]MetadataFactory_IError
45
+ Metadata *schemametadata.MetadataSchema
46
+ Type *nativechecker.Type
47
+ Explore MetadataFactory_IExplore
48
+ Intersected bool
49
49
  }
50
50
 
51
51
  var MetadataTypeTagAnalyzer func(props struct {
52
- Errors *[]MetadataFactory_IError
53
- Type string
54
- Objects []*schemametadata.MetadataObjectType
55
- Explore MetadataFactory_IExplore
52
+ Errors *[]MetadataFactory_IError
53
+ Type string
54
+ Objects []*schemametadata.MetadataObjectType
55
+ Explore MetadataFactory_IExplore
56
56
  }) []schemametadata.IMetadataTypeTag
@@ -1,11 +1,11 @@
1
1
  package metadata
2
2
 
3
3
  import (
4
- "strings"
4
+ "strings"
5
5
 
6
- nativeast "github.com/microsoft/typescript-go/shim/ast"
7
- nativechecker "github.com/microsoft/typescript-go/shim/checker"
8
- schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
6
+ nativeast "github.com/microsoft/typescript-go/shim/ast"
7
+ nativechecker "github.com/microsoft/typescript-go/shim/checker"
8
+ schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
9
9
  )
10
10
 
11
11
  type metadataHelperNamespace struct{}
@@ -13,213 +13,213 @@ type metadataHelperNamespace struct{}
13
13
  var MetadataHelper = metadataHelperNamespace{}
14
14
 
15
15
  func (metadataHelperNamespace) Literal_to_metadata(key string) *schemametadata.MetadataSchema {
16
- metadata := schemametadata.MetadataSchema_initialize()
17
- metadata.Constants = append(metadata.Constants, schemametadata.MetadataConstant_create(schemametadata.MetadataConstant{
18
- Type: "string",
19
- Values: []*schemametadata.MetadataConstantValue{
20
- schemametadata.MetadataConstantValue_create(schemametadata.MetadataConstantValue{
21
- Value: key,
22
- Tags: [][]schemametadata.IMetadataTypeTag{},
23
- }),
24
- },
25
- }))
26
- return metadata
16
+ metadata := schemametadata.MetadataSchema_initialize()
17
+ metadata.Constants = append(metadata.Constants, schemametadata.MetadataConstant_create(schemametadata.MetadataConstant{
18
+ Type: "string",
19
+ Values: []*schemametadata.MetadataConstantValue{
20
+ schemametadata.MetadataConstantValue_create(schemametadata.MetadataConstantValue{
21
+ Value: key,
22
+ Tags: [][]schemametadata.IMetadataTypeTag{},
23
+ }),
24
+ },
25
+ }))
26
+ return metadata
27
27
  }
28
28
 
29
29
  func metadata_array_util_add_bool(array *[]bool, value bool) {
30
- for _, elem := range *array {
31
- if elem == value {
32
- return
33
- }
34
- }
35
- *array = append(*array, value)
30
+ for _, elem := range *array {
31
+ if elem == value {
32
+ return
33
+ }
34
+ }
35
+ *array = append(*array, value)
36
36
  }
37
37
 
38
38
  func metadata_type_full_name(checker *nativechecker.Checker, typ *nativechecker.Type) string {
39
- if checker == nil || typ == nil {
40
- return ""
41
- }
42
- if typ.IsUnion() || typ.IsIntersection() {
43
- joiner := " | "
44
- if typ.IsIntersection() {
45
- joiner = " & "
46
- }
47
- children := typ.Types()
48
- names := make([]string, 0, len(children))
49
- for _, child := range children {
50
- names = append(names, metadata_type_full_name(checker, child))
51
- }
52
- return strings.Join(names, joiner)
53
- }
54
- return checker.TypeToString(typ)
39
+ if checker == nil || typ == nil {
40
+ return ""
41
+ }
42
+ if typ.IsUnion() || typ.IsIntersection() {
43
+ joiner := " | "
44
+ if typ.IsIntersection() {
45
+ joiner = " & "
46
+ }
47
+ children := typ.Types()
48
+ names := make([]string, 0, len(children))
49
+ for _, child := range children {
50
+ names = append(names, metadata_type_full_name(checker, child))
51
+ }
52
+ return strings.Join(names, joiner)
53
+ }
54
+ return checker.TypeToString(typ)
55
55
  }
56
56
 
57
57
  func metadata_get_type_arguments(checker *nativechecker.Checker, typ *nativechecker.Type) (output []*nativechecker.Type) {
58
- if checker == nil || typ == nil {
59
- return nil
60
- }
61
- defer func() {
62
- if recover() != nil {
63
- output = nil
64
- }
65
- }()
66
- return checker.GetTypeArguments(typ)
58
+ if checker == nil || typ == nil {
59
+ return nil
60
+ }
61
+ defer func() {
62
+ if recover() != nil {
63
+ output = nil
64
+ }
65
+ }()
66
+ return checker.GetTypeArguments(typ)
67
67
  }
68
68
 
69
69
  func metadata_get_function_node(typ *nativechecker.Type) *nativeast.Node {
70
- if typ == nil {
71
- return nil
72
- }
73
- symbol := typ.Symbol()
74
- if symbol == nil || len(symbol.Declarations) == 0 {
75
- return nil
76
- }
77
- node := symbol.Declarations[0]
78
- if nativeast.IsFunctionLike(node) {
79
- return node
80
- }
81
- if nativeast.IsPropertyAssignment(node) {
82
- initializer := node.AsPropertyAssignment().Initializer
83
- if nativeast.IsFunctionLike(initializer) {
84
- return initializer
85
- }
86
- return nil
87
- }
88
- if nativeast.IsPropertyDeclaration(node) {
89
- initializer := node.AsPropertyDeclaration().Initializer
90
- if nativeast.IsFunctionLike(initializer) {
91
- return initializer
92
- }
93
- }
94
- return nil
70
+ if typ == nil {
71
+ return nil
72
+ }
73
+ symbol := typ.Symbol()
74
+ if symbol == nil || len(symbol.Declarations) == 0 {
75
+ return nil
76
+ }
77
+ node := symbol.Declarations[0]
78
+ if nativeast.IsFunctionLike(node) {
79
+ return node
80
+ }
81
+ if nativeast.IsPropertyAssignment(node) {
82
+ initializer := node.AsPropertyAssignment().Initializer
83
+ if nativeast.IsFunctionLike(initializer) {
84
+ return initializer
85
+ }
86
+ return nil
87
+ }
88
+ if nativeast.IsPropertyDeclaration(node) {
89
+ initializer := node.AsPropertyDeclaration().Initializer
90
+ if nativeast.IsFunctionLike(initializer) {
91
+ return initializer
92
+ }
93
+ }
94
+ return nil
95
95
  }
96
96
 
97
97
  func metadata_get_return_type_of_class_method(props struct {
98
- Checker *nativechecker.Checker
99
- Class *nativechecker.Type
100
- Function string
98
+ Checker *nativechecker.Checker
99
+ Class *nativechecker.Type
100
+ Function string
101
101
  }) *nativechecker.Type {
102
- if props.Checker == nil || props.Class == nil {
103
- return nil
104
- }
105
- symbol := props.Checker.GetPropertyOfType(props.Class, props.Function)
106
- if symbol == nil || symbol.ValueDeclaration == nil {
107
- return nil
108
- }
109
- functor := props.Checker.GetTypeOfSymbolAtLocation(symbol, symbol.ValueDeclaration)
110
- signatures := props.Checker.GetSignaturesOfType(functor, nativechecker.SignatureKindCall)
111
- if len(signatures) == 0 {
112
- return nil
113
- }
114
- return props.Checker.GetReturnTypeOfSignature(signatures[0])
102
+ if props.Checker == nil || props.Class == nil {
103
+ return nil
104
+ }
105
+ symbol := props.Checker.GetPropertyOfType(props.Class, props.Function)
106
+ if symbol == nil || symbol.ValueDeclaration == nil {
107
+ return nil
108
+ }
109
+ functor := props.Checker.GetTypeOfSymbolAtLocation(symbol, symbol.ValueDeclaration)
110
+ signatures := props.Checker.GetSignaturesOfType(functor, nativechecker.SignatureKindCall)
111
+ if len(signatures) == 0 {
112
+ return nil
113
+ }
114
+ return props.Checker.GetReturnTypeOfSignature(signatures[0])
115
115
  }
116
116
 
117
117
  func metadata_node_js_doc_tags(symbol *nativeast.Symbol) []schemametadata.IJsDocTagInfo {
118
- output := []schemametadata.IJsDocTagInfo{}
119
- for _, node := range metadata_node_declarations(symbol) {
120
- for _, jsdoc := range node.JSDoc(nil) {
121
- doc := jsdoc.AsJSDoc()
122
- if doc == nil || doc.Tags == nil {
123
- continue
124
- }
125
- for _, tag := range doc.Tags.Nodes {
126
- if tag == nil || tag.TagName() == nil {
127
- continue
128
- }
129
- texts := []schemametadata.IJsDocTagInfo_IText{}
130
- if name := metadata_js_doc_parameter_name(tag); name != "" {
131
- texts = append(texts, schemametadata.IJsDocTagInfo_IText{
132
- Kind: "parameterName",
133
- Text: name,
134
- })
135
- }
136
- if text := metadata_js_doc_comment_text(tag.CommentList()); text != "" {
137
- texts = append(texts, schemametadata.IJsDocTagInfo_IText{
138
- Kind: "text",
139
- Text: text,
140
- })
141
- }
142
- output = append(output, schemametadata.IJsDocTagInfo{
143
- Name: tag.TagName().Text(),
144
- Text: texts,
145
- })
146
- }
147
- }
148
- }
149
- return output
118
+ output := []schemametadata.IJsDocTagInfo{}
119
+ for _, node := range metadata_node_declarations(symbol) {
120
+ for _, jsdoc := range node.JSDoc(nil) {
121
+ doc := jsdoc.AsJSDoc()
122
+ if doc == nil || doc.Tags == nil {
123
+ continue
124
+ }
125
+ for _, tag := range doc.Tags.Nodes {
126
+ if tag == nil || tag.TagName() == nil {
127
+ continue
128
+ }
129
+ texts := []schemametadata.IJsDocTagInfo_IText{}
130
+ if name := metadata_js_doc_parameter_name(tag); name != "" {
131
+ texts = append(texts, schemametadata.IJsDocTagInfo_IText{
132
+ Kind: "parameterName",
133
+ Text: name,
134
+ })
135
+ }
136
+ if text := metadata_js_doc_comment_text(tag.CommentList()); text != "" {
137
+ texts = append(texts, schemametadata.IJsDocTagInfo_IText{
138
+ Kind: "text",
139
+ Text: text,
140
+ })
141
+ }
142
+ output = append(output, schemametadata.IJsDocTagInfo{
143
+ Name: tag.TagName().Text(),
144
+ Text: texts,
145
+ })
146
+ }
147
+ }
148
+ }
149
+ return output
150
150
  }
151
151
 
152
152
  func metadata_node_description(symbol *nativeast.Symbol) *string {
153
- for _, node := range metadata_node_declarations(symbol) {
154
- for _, jsdoc := range node.JSDoc(nil) {
155
- doc := jsdoc.AsJSDoc()
156
- if doc == nil {
157
- continue
158
- }
159
- if text := metadata_js_doc_comment_text(doc.Comment); text != "" {
160
- return &text
161
- }
162
- }
163
- }
164
- return nil
153
+ for _, node := range metadata_node_declarations(symbol) {
154
+ for _, jsdoc := range node.JSDoc(nil) {
155
+ doc := jsdoc.AsJSDoc()
156
+ if doc == nil {
157
+ continue
158
+ }
159
+ if text := metadata_js_doc_comment_text(doc.Comment); text != "" {
160
+ return &text
161
+ }
162
+ }
163
+ }
164
+ return nil
165
165
  }
166
166
 
167
167
  func metadata_is_internal(symbol *nativeast.Symbol) bool {
168
- return false
168
+ return false
169
169
  }
170
170
 
171
171
  func metadata_node_declarations(symbol *nativeast.Symbol) []*nativeast.Node {
172
- if symbol == nil {
173
- return nil
174
- }
175
- output := []*nativeast.Node{}
176
- visited := map[*nativeast.Node]bool{}
177
- appendNode := func(node *nativeast.Node) {
178
- if node != nil && visited[node] == false {
179
- visited[node] = true
180
- output = append(output, node)
181
- }
182
- }
183
- appendNode(symbol.ValueDeclaration)
184
- for _, node := range symbol.Declarations {
185
- appendNode(node)
186
- }
187
- return output
172
+ if symbol == nil {
173
+ return nil
174
+ }
175
+ output := []*nativeast.Node{}
176
+ visited := map[*nativeast.Node]bool{}
177
+ appendNode := func(node *nativeast.Node) {
178
+ if node != nil && visited[node] == false {
179
+ visited[node] = true
180
+ output = append(output, node)
181
+ }
182
+ }
183
+ appendNode(symbol.ValueDeclaration)
184
+ for _, node := range symbol.Declarations {
185
+ appendNode(node)
186
+ }
187
+ return output
188
188
  }
189
189
 
190
190
  func metadata_js_doc_parameter_name(tag *nativeast.Node) string {
191
- if tag == nil {
192
- return ""
193
- }
194
- if tag.Kind.String() != "KindJSDocParameterTag" && tag.Kind.String() != "KindJSDocPropertyTag" {
195
- return ""
196
- }
197
- name := tag.AsJSDocParameterOrPropertyTag().Name()
198
- if name == nil {
199
- return ""
200
- }
201
- return name.Text()
191
+ if tag == nil {
192
+ return ""
193
+ }
194
+ if tag.Kind.String() != "KindJSDocParameterTag" && tag.Kind.String() != "KindJSDocPropertyTag" {
195
+ return ""
196
+ }
197
+ name := tag.AsJSDocParameterOrPropertyTag().Name()
198
+ if name == nil {
199
+ return ""
200
+ }
201
+ return name.Text()
202
202
  }
203
203
 
204
204
  func metadata_js_doc_comment_text(list *nativeast.NodeList) string {
205
- if list == nil {
206
- return ""
207
- }
208
- parts := []string{}
209
- for _, node := range list.Nodes {
210
- if node != nil {
211
- parts = append(parts, node.Text())
212
- }
213
- }
214
- return metadata_clean_js_doc_text(strings.Join(parts, ""))
205
+ if list == nil {
206
+ return ""
207
+ }
208
+ parts := []string{}
209
+ for _, node := range list.Nodes {
210
+ if node != nil {
211
+ parts = append(parts, node.Text())
212
+ }
213
+ }
214
+ return metadata_clean_js_doc_text(strings.Join(parts, ""))
215
215
  }
216
216
 
217
217
  func metadata_clean_js_doc_text(text string) string {
218
- text = strings.ReplaceAll(text, "\r\n", "\n")
219
- text = strings.ReplaceAll(text, "\r", "\n")
220
- lines := strings.Split(text, "\n")
221
- for i, line := range lines {
222
- lines[i] = strings.TrimRight(line, " \t")
223
- }
224
- return strings.TrimSpace(strings.Join(lines, "\n"))
218
+ text = strings.ReplaceAll(text, "\r\n", "\n")
219
+ text = strings.ReplaceAll(text, "\r", "\n")
220
+ lines := strings.Split(text, "\n")
221
+ for i, line := range lines {
222
+ lines[i] = strings.TrimRight(line, " \t")
223
+ }
224
+ return strings.TrimSpace(strings.Join(lines, "\n"))
225
225
  }
@@ -3,78 +3,78 @@ package metadata
3
3
  import schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
4
4
 
5
5
  func Emend_metadata_atomics(meta *schemametadata.MetadataSchema) {
6
- for _, atomic := range meta.Atomics {
7
- if is_not_pure(atomic) {
8
- continue
9
- }
10
- index := -1
11
- for i, constant := range meta.Constants {
12
- if constant.Type == atomic.Type {
13
- index = i
14
- break
15
- }
16
- }
17
- if index != -1 {
18
- meta.Constants = append(meta.Constants[:index], meta.Constants[index+1:]...)
19
- }
20
- }
6
+ for _, atomic := range meta.Atomics {
7
+ if is_not_pure(atomic) {
8
+ continue
9
+ }
10
+ index := -1
11
+ for i, constant := range meta.Constants {
12
+ if constant.Type == atomic.Type {
13
+ index = i
14
+ break
15
+ }
16
+ }
17
+ if index != -1 {
18
+ meta.Constants = append(meta.Constants[:index], meta.Constants[index+1:]...)
19
+ }
20
+ }
21
21
 
22
- index := -1
23
- for i, constant := range meta.Constants {
24
- if constant.Type == "boolean" {
25
- index = i
26
- break
27
- }
28
- }
29
- if index != -1 && len(meta.Constants[index].Values) == 2 {
30
- temp := meta.Constants[index]
31
- meta.Constants = append(meta.Constants[:index], meta.Constants[index+1:]...)
32
- found := false
33
- for _, atomic := range meta.Atomics {
34
- if atomic.Type == "boolean" {
35
- found = true
36
- break
37
- }
38
- }
39
- if found == false {
40
- tags := [][]schemametadata.IMetadataTypeTag{}
41
- if len(temp.Values) != 0 && temp.Values[0] != nil {
42
- tags = temp.Values[0].Tags
43
- }
44
- meta.Atomics = append(meta.Atomics, schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
45
- Type: "boolean",
46
- Tags: tags,
47
- }))
48
- }
49
- }
22
+ index := -1
23
+ for i, constant := range meta.Constants {
24
+ if constant.Type == "boolean" {
25
+ index = i
26
+ break
27
+ }
28
+ }
29
+ if index != -1 && len(meta.Constants[index].Values) == 2 {
30
+ temp := meta.Constants[index]
31
+ meta.Constants = append(meta.Constants[:index], meta.Constants[index+1:]...)
32
+ found := false
33
+ for _, atomic := range meta.Atomics {
34
+ if atomic.Type == "boolean" {
35
+ found = true
36
+ break
37
+ }
38
+ }
39
+ if found == false {
40
+ tags := [][]schemametadata.IMetadataTypeTag{}
41
+ if len(temp.Values) != 0 && temp.Values[0] != nil {
42
+ tags = temp.Values[0].Tags
43
+ }
44
+ meta.Atomics = append(meta.Atomics, schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
45
+ Type: "boolean",
46
+ Tags: tags,
47
+ }))
48
+ }
49
+ }
50
50
 
51
- if len(meta.Templates) != 0 {
52
- var atomic *schemametadata.MetadataAtomic
53
- for _, candidate := range meta.Atomics {
54
- if candidate.Type == "string" {
55
- atomic = candidate
56
- break
57
- }
58
- }
59
- if atomic != nil && is_not_pure(atomic) == false {
60
- meta.Templates = meta.Templates[:0]
61
- }
62
- }
51
+ if len(meta.Templates) != 0 {
52
+ var atomic *schemametadata.MetadataAtomic
53
+ for _, candidate := range meta.Atomics {
54
+ if candidate.Type == "string" {
55
+ atomic = candidate
56
+ break
57
+ }
58
+ }
59
+ if atomic != nil && is_not_pure(atomic) == false {
60
+ meta.Templates = meta.Templates[:0]
61
+ }
62
+ }
63
63
  }
64
64
 
65
65
  func is_not_pure(atomic *schemametadata.MetadataAtomic) bool {
66
- if len(atomic.Tags) == 0 {
67
- return false
68
- }
69
- for _, row := range atomic.Tags {
70
- if len(row) == 0 {
71
- return false
72
- }
73
- for _, tag := range row {
74
- if tag.Validate == "" {
75
- return false
76
- }
77
- }
78
- }
79
- return true
66
+ if len(atomic.Tags) == 0 {
67
+ return false
68
+ }
69
+ for _, row := range atomic.Tags {
70
+ if len(row) == 0 {
71
+ return false
72
+ }
73
+ for _, tag := range row {
74
+ if tag.Validate == "" {
75
+ return false
76
+ }
77
+ }
78
+ }
79
+ return true
80
80
  }