typia 13.0.0-dev.20260430 → 13.0.0-dev.20260502-2

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