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,169 +1,169 @@
1
1
  package iterate
2
2
 
3
3
  import (
4
- "fmt"
4
+ "fmt"
5
5
 
6
- shimast "github.com/microsoft/typescript-go/shim/ast"
7
- nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
8
- nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
9
- nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
10
- nativemetadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
6
+ shimast "github.com/microsoft/typescript-go/shim/ast"
7
+ nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
8
+ nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
9
+ nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
10
+ nativemetadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
11
11
  )
12
12
 
13
13
  type Check_numberProps struct {
14
- Numeric bool
15
- Context nativecontext.ITypiaContext
16
- Atomic *nativemetadata.MetadataAtomic
17
- Input *shimast.Expression
14
+ Numeric bool
15
+ Context nativecontext.ITypiaContext
16
+ Atomic *nativemetadata.MetadataAtomic
17
+ Input *shimast.Expression
18
18
  }
19
19
 
20
20
  func Check_number(props Check_numberProps) nativehelpers.ICheckEntry {
21
- base := check_number_factory.NewBinaryExpression(
22
- nil,
23
- check_number_factory.NewStringLiteral("number", shimast.TokenFlagsNone),
24
- nil,
25
- check_number_factory.NewToken(shimast.KindEqualsEqualsEqualsToken),
26
- check_number_factory.NewTypeOfExpression(props.Input),
27
- )
28
- var addition *shimast.Node
29
- if props.Numeric {
30
- if nativehelpers.OptionPredicator.Finite(props.Context.Options) {
31
- addition = check_number_factory.NewCallExpression(
32
- check_number_factory.NewIdentifier("Number.isFinite"),
33
- nil,
34
- nil,
35
- check_number_factory.NewNodeList([]*shimast.Node{props.Input}),
36
- shimast.NodeFlagsNone,
37
- )
38
- } else if nativehelpers.OptionPredicator.Numeric(props.Context.Options) {
39
- addition = check_number_factory.NewPrefixUnaryExpression(
40
- shimast.KindExclamationToken,
41
- check_number_factory.NewCallExpression(
42
- check_number_factory.NewIdentifier("Number.isNaN"),
43
- nil,
44
- nil,
45
- check_number_factory.NewNodeList([]*shimast.Node{props.Input}),
46
- shimast.NodeFlagsNone,
47
- ),
48
- )
49
- }
50
- }
51
- conditions := check_numeric_type_tags(check_numeric_type_tagsProps{
52
- Context: props.Context,
53
- Atomic: props.Atomic,
54
- Input: props.Input,
55
- Addition: addition,
56
- })
57
- expression := base
58
- if addition != nil && len(conditions) == 0 {
59
- expression = check_number_factory.NewBinaryExpression(
60
- nil,
61
- base,
62
- nil,
63
- check_number_factory.NewToken(shimast.KindAmpersandAmpersandToken),
64
- addition,
65
- )
66
- }
67
- return nativehelpers.ICheckEntry{
68
- Expected: props.Atomic.GetName(),
69
- Expression: expression,
70
- Conditions: conditions,
71
- }
21
+ base := check_number_factory.NewBinaryExpression(
22
+ nil,
23
+ check_number_factory.NewStringLiteral("number", shimast.TokenFlagsNone),
24
+ nil,
25
+ check_number_factory.NewToken(shimast.KindEqualsEqualsEqualsToken),
26
+ check_number_factory.NewTypeOfExpression(props.Input),
27
+ )
28
+ var addition *shimast.Node
29
+ if props.Numeric {
30
+ if nativehelpers.OptionPredicator.Finite(props.Context.Options) {
31
+ addition = check_number_factory.NewCallExpression(
32
+ check_number_factory.NewIdentifier("Number.isFinite"),
33
+ nil,
34
+ nil,
35
+ check_number_factory.NewNodeList([]*shimast.Node{props.Input}),
36
+ shimast.NodeFlagsNone,
37
+ )
38
+ } else if nativehelpers.OptionPredicator.Numeric(props.Context.Options) {
39
+ addition = check_number_factory.NewPrefixUnaryExpression(
40
+ shimast.KindExclamationToken,
41
+ check_number_factory.NewCallExpression(
42
+ check_number_factory.NewIdentifier("Number.isNaN"),
43
+ nil,
44
+ nil,
45
+ check_number_factory.NewNodeList([]*shimast.Node{props.Input}),
46
+ shimast.NodeFlagsNone,
47
+ ),
48
+ )
49
+ }
50
+ }
51
+ conditions := check_numeric_type_tags(check_numeric_type_tagsProps{
52
+ Context: props.Context,
53
+ Atomic: props.Atomic,
54
+ Input: props.Input,
55
+ Addition: addition,
56
+ })
57
+ expression := base
58
+ if addition != nil && len(conditions) == 0 {
59
+ expression = check_number_factory.NewBinaryExpression(
60
+ nil,
61
+ base,
62
+ nil,
63
+ check_number_factory.NewToken(shimast.KindAmpersandAmpersandToken),
64
+ addition,
65
+ )
66
+ }
67
+ return nativehelpers.ICheckEntry{
68
+ Expected: props.Atomic.GetName(),
69
+ Expression: expression,
70
+ Conditions: conditions,
71
+ }
72
72
  }
73
73
 
74
74
  type check_numeric_type_tagsProps struct {
75
- Context nativecontext.ITypiaContext
76
- Atomic *nativemetadata.MetadataAtomic
77
- Addition *shimast.Expression
78
- Input *shimast.Expression
75
+ Context nativecontext.ITypiaContext
76
+ Atomic *nativemetadata.MetadataAtomic
77
+ Addition *shimast.Expression
78
+ Input *shimast.Expression
79
79
  }
80
80
 
81
81
  func check_numeric_type_tags(props check_numeric_type_tagsProps) [][]nativehelpers.ICheckEntry_ICondition {
82
- output := [][]nativehelpers.ICheckEntry_ICondition{}
83
- for _, row := range props.Atomic.Tags {
84
- tags := check_number_filter_validate(row)
85
- if len(tags) == 0 {
86
- continue
87
- }
88
- conditions := []nativehelpers.ICheckEntry_ICondition{}
89
- if props.Addition != nil && !check_numeric_type_tags_covers_addition(tags) {
90
- conditions = append(conditions, nativehelpers.ICheckEntry_ICondition{
91
- Expected: "number",
92
- Expression: props.Addition,
93
- })
94
- }
95
- for _, tag := range tags {
96
- conditions = append(conditions, nativehelpers.ICheckEntry_ICondition{
97
- Expected: fmt.Sprintf("number & %s", tag.Name),
98
- Expression: check_number_transpile(props.Context, tag.Validate)(props.Input),
99
- })
100
- }
101
- output = append(output, conditions)
102
- }
103
- return output
82
+ output := [][]nativehelpers.ICheckEntry_ICondition{}
83
+ for _, row := range props.Atomic.Tags {
84
+ tags := check_number_filter_validate(row)
85
+ if len(tags) == 0 {
86
+ continue
87
+ }
88
+ conditions := []nativehelpers.ICheckEntry_ICondition{}
89
+ if props.Addition != nil && !check_numeric_type_tags_covers_addition(tags) {
90
+ conditions = append(conditions, nativehelpers.ICheckEntry_ICondition{
91
+ Expected: "number",
92
+ Expression: props.Addition,
93
+ })
94
+ }
95
+ for _, tag := range tags {
96
+ conditions = append(conditions, nativehelpers.ICheckEntry_ICondition{
97
+ Expected: fmt.Sprintf("number & %s", tag.Name),
98
+ Expression: check_number_transpile(props.Context, tag.Validate)(props.Input),
99
+ })
100
+ }
101
+ output = append(output, conditions)
102
+ }
103
+ return output
104
104
  }
105
105
 
106
106
  func check_numeric_type_tags_covers_addition(row []nativemetadata.IMetadataTypeTag) bool {
107
- if check_number_some(row, func(tag nativemetadata.IMetadataTypeTag) bool {
108
- return tag.Kind == "type" &&
109
- (tag.Value == "int32" ||
110
- tag.Value == "uint32" ||
111
- tag.Value == "int64" ||
112
- tag.Value == "uint64" ||
113
- tag.Value == "float")
114
- }) {
115
- return true
116
- }
117
- if check_number_some(row, func(tag nativemetadata.IMetadataTypeTag) bool {
118
- return tag.Kind == "multipleOf" && check_number_is_number(tag.Value)
119
- }) {
120
- return true
121
- }
122
- return check_number_some(row, func(tag nativemetadata.IMetadataTypeTag) bool {
123
- return (tag.Kind == "minimum" || tag.Kind == "exclusiveMinimum") && check_number_is_number(tag.Value)
124
- }) && check_number_some(row, func(tag nativemetadata.IMetadataTypeTag) bool {
125
- return (tag.Kind == "maximum" || tag.Kind == "exclusiveMaximum") && check_number_is_number(tag.Value)
126
- })
107
+ if check_number_some(row, func(tag nativemetadata.IMetadataTypeTag) bool {
108
+ return tag.Kind == "type" &&
109
+ (tag.Value == "int32" ||
110
+ tag.Value == "uint32" ||
111
+ tag.Value == "int64" ||
112
+ tag.Value == "uint64" ||
113
+ tag.Value == "float")
114
+ }) {
115
+ return true
116
+ }
117
+ if check_number_some(row, func(tag nativemetadata.IMetadataTypeTag) bool {
118
+ return tag.Kind == "multipleOf" && check_number_is_number(tag.Value)
119
+ }) {
120
+ return true
121
+ }
122
+ return check_number_some(row, func(tag nativemetadata.IMetadataTypeTag) bool {
123
+ return (tag.Kind == "minimum" || tag.Kind == "exclusiveMinimum") && check_number_is_number(tag.Value)
124
+ }) && check_number_some(row, func(tag nativemetadata.IMetadataTypeTag) bool {
125
+ return (tag.Kind == "maximum" || tag.Kind == "exclusiveMaximum") && check_number_is_number(tag.Value)
126
+ })
127
127
  }
128
128
 
129
129
  func check_number_filter_validate(row []nativemetadata.IMetadataTypeTag) []nativemetadata.IMetadataTypeTag {
130
- tags := []nativemetadata.IMetadataTypeTag{}
131
- for _, tag := range row {
132
- if tag.Validate != "" {
133
- tags = append(tags, tag)
134
- }
135
- }
136
- return tags
130
+ tags := []nativemetadata.IMetadataTypeTag{}
131
+ for _, tag := range row {
132
+ if tag.Validate != "" {
133
+ tags = append(tags, tag)
134
+ }
135
+ }
136
+ return tags
137
137
  }
138
138
 
139
139
  func check_number_some(row []nativemetadata.IMetadataTypeTag, pred func(tag nativemetadata.IMetadataTypeTag) bool) bool {
140
- for _, tag := range row {
141
- if pred(tag) {
142
- return true
143
- }
144
- }
145
- return false
140
+ for _, tag := range row {
141
+ if pred(tag) {
142
+ return true
143
+ }
144
+ }
145
+ return false
146
146
  }
147
147
 
148
148
  func check_number_is_number(value any) bool {
149
- switch value.(type) {
150
- case int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, float32, float64:
151
- return true
152
- default:
153
- return false
154
- }
149
+ switch value.(type) {
150
+ case int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, float32, float64:
151
+ return true
152
+ default:
153
+ return false
154
+ }
155
155
  }
156
156
 
157
157
  func check_number_transpile(context nativecontext.ITypiaContext, script string) func(input *shimast.Expression) *shimast.Node {
158
- var importer nativefactories.ExpressionFactory_Importer
159
- if v, ok := context.Importer.(nativefactories.ExpressionFactory_Importer); ok {
160
- importer = v
161
- }
162
- return nativefactories.ExpressionFactory.Transpile(nativefactories.ExpressionFactory_TranspileProps{
163
- Transformer: context.Transformer,
164
- Importer: importer,
165
- Script: script,
166
- })
158
+ var importer nativefactories.ExpressionFactory_Importer
159
+ if v, ok := context.Importer.(nativefactories.ExpressionFactory_Importer); ok {
160
+ importer = v
161
+ }
162
+ return nativefactories.ExpressionFactory.Transpile(nativefactories.ExpressionFactory_TranspileProps{
163
+ Transformer: context.Transformer,
164
+ Importer: importer,
165
+ Script: script,
166
+ })
167
167
  }
168
168
 
169
169
  var check_number_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
@@ -1,89 +1,89 @@
1
1
  package iterate
2
2
 
3
3
  import (
4
- shimast "github.com/microsoft/typescript-go/shim/ast"
5
- nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
6
- nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
4
+ shimast "github.com/microsoft/typescript-go/shim/ast"
5
+ nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
6
+ nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
7
7
  )
8
8
 
9
9
  type Check_objectProps struct {
10
- Config Check_object_IConfig
11
- Context nativecontext.ITypiaContext
12
- Input *shimast.Expression
13
- Entries []nativehelpers.IExpressionEntry
10
+ Config Check_object_IConfig
11
+ Context nativecontext.ITypiaContext
12
+ Input *shimast.Expression
13
+ Entries []nativehelpers.IExpressionEntry
14
14
  }
15
15
 
16
16
  type Check_object_IConfig struct {
17
- Equals bool
18
- Assert bool
19
- Undefined bool
20
- Halt func(exp *shimast.Expression) *shimast.Node
21
- Reduce func(a *shimast.Expression, b *shimast.Expression) *shimast.Node
22
- Positive *shimast.Expression
23
- Superfluous func(value *shimast.Expression, description *shimast.Expression) *shimast.Node
24
- Entries *shimast.Expression
17
+ Equals bool
18
+ Assert bool
19
+ Undefined bool
20
+ Halt func(exp *shimast.Expression) *shimast.Node
21
+ Reduce func(a *shimast.Expression, b *shimast.Expression) *shimast.Node
22
+ Positive *shimast.Expression
23
+ Superfluous func(value *shimast.Expression, description *shimast.Expression) *shimast.Node
24
+ Entries *shimast.Expression
25
25
  }
26
26
 
27
27
  func Check_object(props Check_objectProps) *shimast.Node {
28
- regular := []nativehelpers.IExpressionEntry{}
29
- dynamic := []nativehelpers.IExpressionEntry{}
30
- for _, entry := range props.Entries {
31
- if entry.Key.IsSoleLiteral() {
32
- regular = append(regular, entry)
33
- } else {
34
- dynamic = append(dynamic, entry)
35
- }
36
- }
37
- flags := make([]*shimast.Node, 0, len(regular)+1)
38
- for _, entry := range regular {
39
- flags = append(flags, entry.Expression)
40
- }
28
+ regular := []nativehelpers.IExpressionEntry{}
29
+ dynamic := []nativehelpers.IExpressionEntry{}
30
+ for _, entry := range props.Entries {
31
+ if entry.Key.IsSoleLiteral() {
32
+ regular = append(regular, entry)
33
+ } else {
34
+ dynamic = append(dynamic, entry)
35
+ }
36
+ }
37
+ flags := make([]*shimast.Node, 0, len(regular)+1)
38
+ for _, entry := range regular {
39
+ flags = append(flags, entry.Expression)
40
+ }
41
41
 
42
- if props.Config.Equals == false && len(dynamic) == 0 {
43
- if len(regular) == 0 {
44
- return props.Config.Positive
45
- }
46
- return check_object_reduce(check_object_reduceProps{
47
- Config: props.Config,
48
- Expressions: flags,
49
- })
50
- }
42
+ if props.Config.Equals == false && len(dynamic) == 0 {
43
+ if len(regular) == 0 {
44
+ return props.Config.Positive
45
+ }
46
+ return check_object_reduce(check_object_reduceProps{
47
+ Config: props.Config,
48
+ Expressions: flags,
49
+ })
50
+ }
51
51
 
52
- flags = append(flags, Check_dynamic_properties(Check_dynamic_propertiesProps{
53
- Config: props.Config,
54
- Context: props.Context,
55
- Input: props.Input,
56
- Regular: regular,
57
- Dynamic: dynamic,
58
- }))
59
- return check_object_reduce(check_object_reduceProps{
60
- Config: props.Config,
61
- Expressions: flags,
62
- })
52
+ flags = append(flags, Check_dynamic_properties(Check_dynamic_propertiesProps{
53
+ Config: props.Config,
54
+ Context: props.Context,
55
+ Input: props.Input,
56
+ Regular: regular,
57
+ Dynamic: dynamic,
58
+ }))
59
+ return check_object_reduce(check_object_reduceProps{
60
+ Config: props.Config,
61
+ Expressions: flags,
62
+ })
63
63
  }
64
64
 
65
65
  type check_object_reduceProps struct {
66
- Config Check_object_IConfig
67
- Expressions []*shimast.Node
66
+ Config Check_object_IConfig
67
+ Expressions []*shimast.Node
68
68
  }
69
69
 
70
70
  func check_object_reduce(props check_object_reduceProps) *shimast.Node {
71
- if len(props.Expressions) == 0 {
72
- return props.Config.Positive
73
- }
74
- if props.Config.Assert {
75
- output := props.Expressions[0]
76
- for _, next := range props.Expressions[1:] {
77
- output = props.Config.Reduce(output, next)
78
- }
79
- return output
80
- }
81
- return Check_everything(
82
- check_object_factory.NewArrayLiteralExpression(
83
- check_object_factory.NewNodeList(props.Expressions),
84
- false,
85
- ),
86
- )
71
+ if len(props.Expressions) == 0 {
72
+ return props.Config.Positive
73
+ }
74
+ if props.Config.Assert {
75
+ output := props.Expressions[0]
76
+ for _, next := range props.Expressions[1:] {
77
+ output = props.Config.Reduce(output, next)
78
+ }
79
+ return output
80
+ }
81
+ return Check_everything(
82
+ check_object_factory.NewArrayLiteralExpression(
83
+ check_object_factory.NewNodeList(props.Expressions),
84
+ false,
85
+ ),
86
+ )
87
87
  }
88
88
 
89
89
  var check_object_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
@@ -1,73 +1,73 @@
1
1
  package iterate
2
2
 
3
3
  import (
4
- shimast "github.com/microsoft/typescript-go/shim/ast"
5
- nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
6
- nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
7
- nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
8
- nativemetadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
4
+ shimast "github.com/microsoft/typescript-go/shim/ast"
5
+ nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
6
+ nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
7
+ nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
8
+ nativemetadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
9
9
  )
10
10
 
11
11
  type Check_stringProps struct {
12
- Context nativecontext.ITypiaContext
13
- Atomic *nativemetadata.MetadataAtomic
14
- Input *shimast.Expression
12
+ Context nativecontext.ITypiaContext
13
+ Atomic *nativemetadata.MetadataAtomic
14
+ Input *shimast.Expression
15
15
  }
16
16
 
17
17
  func Check_string(props Check_stringProps) nativehelpers.ICheckEntry {
18
- conditions := check_string_type_tags(props)
19
- return nativehelpers.ICheckEntry{
20
- Expected: props.Atomic.GetName(),
21
- Expression: check_string_factory.NewBinaryExpression(
22
- nil,
23
- check_string_factory.NewStringLiteral("string", shimast.TokenFlagsNone),
24
- nil,
25
- check_string_factory.NewToken(shimast.KindEqualsEqualsEqualsToken),
26
- check_string_factory.NewTypeOfExpression(props.Input),
27
- ),
28
- Conditions: conditions,
29
- }
18
+ conditions := check_string_type_tags(props)
19
+ return nativehelpers.ICheckEntry{
20
+ Expected: props.Atomic.GetName(),
21
+ Expression: check_string_factory.NewBinaryExpression(
22
+ nil,
23
+ check_string_factory.NewStringLiteral("string", shimast.TokenFlagsNone),
24
+ nil,
25
+ check_string_factory.NewToken(shimast.KindEqualsEqualsEqualsToken),
26
+ check_string_factory.NewTypeOfExpression(props.Input),
27
+ ),
28
+ Conditions: conditions,
29
+ }
30
30
  }
31
31
 
32
32
  func check_string_type_tags(props Check_stringProps) [][]nativehelpers.ICheckEntry_ICondition {
33
- output := [][]nativehelpers.ICheckEntry_ICondition{}
34
- for _, row := range props.Atomic.Tags {
35
- tags := check_string_filter_validate(row)
36
- if len(tags) == 0 {
37
- continue
38
- }
39
- conditions := make([]nativehelpers.ICheckEntry_ICondition, 0, len(tags))
40
- for _, tag := range tags {
41
- conditions = append(conditions, nativehelpers.ICheckEntry_ICondition{
42
- Expected: "string & " + tag.Name,
43
- Expression: check_string_transpile(props.Context, tag.Validate)(props.Input),
44
- })
45
- }
46
- output = append(output, conditions)
47
- }
48
- return output
33
+ output := [][]nativehelpers.ICheckEntry_ICondition{}
34
+ for _, row := range props.Atomic.Tags {
35
+ tags := check_string_filter_validate(row)
36
+ if len(tags) == 0 {
37
+ continue
38
+ }
39
+ conditions := make([]nativehelpers.ICheckEntry_ICondition, 0, len(tags))
40
+ for _, tag := range tags {
41
+ conditions = append(conditions, nativehelpers.ICheckEntry_ICondition{
42
+ Expected: "string & " + tag.Name,
43
+ Expression: check_string_transpile(props.Context, tag.Validate)(props.Input),
44
+ })
45
+ }
46
+ output = append(output, conditions)
47
+ }
48
+ return output
49
49
  }
50
50
 
51
51
  func check_string_filter_validate(row []nativemetadata.IMetadataTypeTag) []nativemetadata.IMetadataTypeTag {
52
- tags := []nativemetadata.IMetadataTypeTag{}
53
- for _, tag := range row {
54
- if tag.Validate != "" {
55
- tags = append(tags, tag)
56
- }
57
- }
58
- return tags
52
+ tags := []nativemetadata.IMetadataTypeTag{}
53
+ for _, tag := range row {
54
+ if tag.Validate != "" {
55
+ tags = append(tags, tag)
56
+ }
57
+ }
58
+ return tags
59
59
  }
60
60
 
61
61
  func check_string_transpile(context nativecontext.ITypiaContext, script string) func(input *shimast.Expression) *shimast.Node {
62
- var importer nativefactories.ExpressionFactory_Importer
63
- if v, ok := context.Importer.(nativefactories.ExpressionFactory_Importer); ok {
64
- importer = v
65
- }
66
- return nativefactories.ExpressionFactory.Transpile(nativefactories.ExpressionFactory_TranspileProps{
67
- Transformer: context.Transformer,
68
- Importer: importer,
69
- Script: script,
70
- })
62
+ var importer nativefactories.ExpressionFactory_Importer
63
+ if v, ok := context.Importer.(nativefactories.ExpressionFactory_Importer); ok {
64
+ importer = v
65
+ }
66
+ return nativefactories.ExpressionFactory.Transpile(nativefactories.ExpressionFactory_TranspileProps{
67
+ Transformer: context.Transformer,
68
+ Importer: importer,
69
+ Script: script,
70
+ })
71
71
  }
72
72
 
73
73
  var check_string_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})