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,14 +1,14 @@
1
1
  package internal
2
2
 
3
3
  import (
4
- "encoding/json"
5
- "strings"
6
-
7
- shimast "github.com/microsoft/typescript-go/shim/ast"
8
- shimchecker "github.com/microsoft/typescript-go/shim/checker"
9
- shimscanner "github.com/microsoft/typescript-go/shim/scanner"
10
- nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
11
- nativemetadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
4
+ "encoding/json"
5
+ "strings"
6
+
7
+ shimast "github.com/microsoft/typescript-go/shim/ast"
8
+ shimchecker "github.com/microsoft/typescript-go/shim/checker"
9
+ shimscanner "github.com/microsoft/typescript-go/shim/scanner"
10
+ nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
11
+ nativemetadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
12
12
  )
13
13
 
14
14
  type genericTransformerNamespace struct{}
@@ -16,220 +16,220 @@ type genericTransformerNamespace struct{}
16
16
  var GenericTransformer = genericTransformerNamespace{}
17
17
 
18
18
  type ITransformProps struct {
19
- Context nativecontext.ITypiaContext
20
- Modulo *shimast.Node
21
- Expression *shimast.CallExpression
19
+ Context nativecontext.ITypiaContext
20
+ Modulo *shimast.Node
21
+ Expression *shimast.CallExpression
22
22
  }
23
23
 
24
24
  type TransformerError struct {
25
- Code string
26
- Message string
25
+ Code string
26
+ Message string
27
27
  }
28
28
 
29
29
  func NewTransformerError(props TransformerError_IProps) *TransformerError {
30
- return &TransformerError{
31
- Code: props.Code,
32
- Message: props.Message,
33
- }
30
+ return &TransformerError{
31
+ Code: props.Code,
32
+ Message: props.Message,
33
+ }
34
34
  }
35
35
 
36
36
  func (err *TransformerError) Error() string {
37
- return err.Message
37
+ return err.Message
38
38
  }
39
39
 
40
40
  type TransformerError_IProps struct {
41
- Code string
42
- Message string
41
+ Code string
42
+ Message string
43
43
  }
44
44
 
45
45
  type TransformerError_MetadataFactory_IError struct {
46
- Name string
47
- Explore TransformerError_MetadataFactory_IExplore
48
- Messages []string
46
+ Name string
47
+ Explore TransformerError_MetadataFactory_IExplore
48
+ Messages []string
49
49
  }
50
50
 
51
51
  type TransformerError_MetadataFactory_IExplore struct {
52
- Object *nativemetadata.MetadataObjectType
53
- Property any
54
- Parameter any
55
- Output bool
52
+ Object *nativemetadata.MetadataObjectType
53
+ Property any
54
+ Parameter any
55
+ Output bool
56
56
  }
57
57
 
58
58
  func TransformerError_from(props struct {
59
- Code string
60
- Errors []TransformerError_MetadataFactory_IError
59
+ Code string
60
+ Errors []TransformerError_MetadataFactory_IError
61
61
  }) *TransformerError {
62
- lines := make([]string, 0, len(props.Errors))
63
- for _, err := range props.Errors {
64
- subject := ""
65
- if err.Explore.Object != nil {
66
- subject = transformerError_join(err.Explore.Object, err.Explore.Property)
67
- }
68
- middle := ""
69
- if err.Explore.Parameter != nil {
70
- middle = "(parameter: " + transformerError_json(err.Explore.Parameter) + ")"
71
- } else if err.Explore.Output {
72
- middle = "(return type)"
73
- }
74
- typ := err.Name
75
- if subject != "" {
76
- typ = subject + ": " + typ
77
- }
78
- messages := make([]string, 0, len(err.Messages))
79
- for _, msg := range err.Messages {
80
- messages = append(messages, " - "+msg)
81
- }
82
- lines = append(lines, "- "+typ+middle+"\n"+strings.Join(messages, "\n"))
83
- }
84
- return NewTransformerError(TransformerError_IProps{
85
- Code: props.Code,
86
- Message: "unsupported type detected\n\n" + strings.Join(lines, "\n\n"),
87
- })
62
+ lines := make([]string, 0, len(props.Errors))
63
+ for _, err := range props.Errors {
64
+ subject := ""
65
+ if err.Explore.Object != nil {
66
+ subject = transformerError_join(err.Explore.Object, err.Explore.Property)
67
+ }
68
+ middle := ""
69
+ if err.Explore.Parameter != nil {
70
+ middle = "(parameter: " + transformerError_json(err.Explore.Parameter) + ")"
71
+ } else if err.Explore.Output {
72
+ middle = "(return type)"
73
+ }
74
+ typ := err.Name
75
+ if subject != "" {
76
+ typ = subject + ": " + typ
77
+ }
78
+ messages := make([]string, 0, len(err.Messages))
79
+ for _, msg := range err.Messages {
80
+ messages = append(messages, " - "+msg)
81
+ }
82
+ lines = append(lines, "- "+typ+middle+"\n"+strings.Join(messages, "\n"))
83
+ }
84
+ return NewTransformerError(TransformerError_IProps{
85
+ Code: props.Code,
86
+ Message: "unsupported type detected\n\n" + strings.Join(lines, "\n\n"),
87
+ })
88
88
  }
89
89
 
90
90
  func transformerError_join(object *nativemetadata.MetadataObjectType, key any) string {
91
- if key == nil {
92
- return object.Name
93
- }
94
- if _, ok := key.(map[string]any); ok {
95
- return object.Name + "[key]"
96
- }
97
- if str, ok := key.(string); ok {
98
- if transformerError_variable(str) {
99
- return object.Name + "." + str
100
- }
101
- return object.Name + "[" + transformerError_json(str) + "]"
102
- }
103
- return object.Name + "[key]"
91
+ if key == nil {
92
+ return object.Name
93
+ }
94
+ if _, ok := key.(map[string]any); ok {
95
+ return object.Name + "[key]"
96
+ }
97
+ if str, ok := key.(string); ok {
98
+ if transformerError_variable(str) {
99
+ return object.Name + "." + str
100
+ }
101
+ return object.Name + "[" + transformerError_json(str) + "]"
102
+ }
103
+ return object.Name + "[key]"
104
104
  }
105
105
 
106
106
  func transformerError_variable(str string) bool {
107
- if str == "" {
108
- return false
109
- }
110
- for i, ch := range str {
111
- if i == 0 {
112
- if ('A' <= ch && ch <= 'Z') || ('a' <= ch && ch <= 'z') || ch == '_' || ch == '$' {
113
- continue
114
- }
115
- return false
116
- }
117
- if ('A' <= ch && ch <= 'Z') || ('a' <= ch && ch <= 'z') || ('0' <= ch && ch <= '9') || ch == '_' || ch == '$' {
118
- continue
119
- }
120
- return false
121
- }
122
- return true
107
+ if str == "" {
108
+ return false
109
+ }
110
+ for i, ch := range str {
111
+ if i == 0 {
112
+ if ('A' <= ch && ch <= 'Z') || ('a' <= ch && ch <= 'z') || ch == '_' || ch == '$' {
113
+ continue
114
+ }
115
+ return false
116
+ }
117
+ if ('A' <= ch && ch <= 'Z') || ('a' <= ch && ch <= 'z') || ('0' <= ch && ch <= '9') || ch == '_' || ch == '$' {
118
+ continue
119
+ }
120
+ return false
121
+ }
122
+ return true
123
123
  }
124
124
 
125
125
  func transformerError_json(value any) string {
126
- data, err := json.Marshal(value)
127
- if err != nil {
128
- return "null"
129
- }
130
- return string(data)
126
+ data, err := json.Marshal(value)
127
+ if err != nil {
128
+ return "null"
129
+ }
130
+ return string(data)
131
131
  }
132
132
 
133
133
  type GenericTransformer_IProps struct {
134
- ITransformProps
135
- Method string
136
- Write func(props nativecontext.IProgrammerProps) *shimast.Node
134
+ ITransformProps
135
+ Method string
136
+ Write func(props nativecontext.IProgrammerProps) *shimast.Node
137
137
  }
138
138
 
139
139
  var genericTransformer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
140
140
 
141
141
  func (genericTransformerNamespace) Scalar(props GenericTransformer_IProps) *shimast.Node {
142
- if props.Expression == nil || props.Expression.Arguments == nil || len(props.Expression.Arguments.Nodes) == 0 {
143
- panic(NewTransformerError(TransformerError_IProps{
144
- Code: "typia." + props.Method,
145
- Message: "no input value.",
146
- }))
147
- }
148
-
149
- var typ = props.Context.Checker.GetTypeAtLocation(props.Expression.Arguments.Nodes[0])
150
- var node *shimast.Node = props.Expression.Arguments.Nodes[0]
151
- generic := false
152
- if props.Expression.TypeArguments != nil && len(props.Expression.TypeArguments.Nodes) != 0 {
153
- node = props.Expression.TypeArguments.Nodes[0]
154
- typ = props.Context.Checker.GetTypeFromTypeNode(node)
155
- generic = true
156
- }
157
- if typ != nil && typ.IsTypeParameter() {
158
- panic(NewTransformerError(TransformerError_IProps{
159
- Code: "typia." + props.Method,
160
- Message: "non-specified generic argument.",
161
- }))
162
- }
163
-
164
- name := ""
165
- if generic {
166
- name = genericTransformer_node_text(node)
167
- } else {
168
- name = genericTransformer_getTypeName(genericTransformer_getTypeNameProps{
169
- Context: props.Context,
170
- Type: typ,
171
- Node: node,
172
- })
173
- }
174
- return genericTransformer_factory.NewCallExpression(
175
- props.Write(nativecontext.IProgrammerProps{
176
- Context: props.Context,
177
- Modulo: props.Modulo,
178
- Type: typ,
179
- Name: &name,
180
- }),
181
- nil,
182
- nil,
183
- props.Expression.Arguments,
184
- shimast.NodeFlagsNone,
185
- )
142
+ if props.Expression == nil || props.Expression.Arguments == nil || len(props.Expression.Arguments.Nodes) == 0 {
143
+ panic(NewTransformerError(TransformerError_IProps{
144
+ Code: "typia." + props.Method,
145
+ Message: "no input value.",
146
+ }))
147
+ }
148
+
149
+ var typ = props.Context.Checker.GetTypeAtLocation(props.Expression.Arguments.Nodes[0])
150
+ var node *shimast.Node = props.Expression.Arguments.Nodes[0]
151
+ generic := false
152
+ if props.Expression.TypeArguments != nil && len(props.Expression.TypeArguments.Nodes) != 0 {
153
+ node = props.Expression.TypeArguments.Nodes[0]
154
+ typ = props.Context.Checker.GetTypeFromTypeNode(node)
155
+ generic = true
156
+ }
157
+ if typ != nil && typ.IsTypeParameter() {
158
+ panic(NewTransformerError(TransformerError_IProps{
159
+ Code: "typia." + props.Method,
160
+ Message: "non-specified generic argument.",
161
+ }))
162
+ }
163
+
164
+ name := ""
165
+ if generic {
166
+ name = genericTransformer_node_text(node)
167
+ } else {
168
+ name = genericTransformer_getTypeName(genericTransformer_getTypeNameProps{
169
+ Context: props.Context,
170
+ Type: typ,
171
+ Node: node,
172
+ })
173
+ }
174
+ return genericTransformer_factory.NewCallExpression(
175
+ props.Write(nativecontext.IProgrammerProps{
176
+ Context: props.Context,
177
+ Modulo: props.Modulo,
178
+ Type: typ,
179
+ Name: &name,
180
+ }),
181
+ nil,
182
+ nil,
183
+ props.Expression.Arguments,
184
+ shimast.NodeFlagsNone,
185
+ )
186
186
  }
187
187
 
188
188
  func (genericTransformerNamespace) Factory(props GenericTransformer_IProps) *shimast.Node {
189
- if props.Expression == nil || props.Expression.TypeArguments == nil || len(props.Expression.TypeArguments.Nodes) == 0 {
190
- panic(NewTransformerError(TransformerError_IProps{
191
- Code: "typia." + props.Method,
192
- Message: "generic argument is not specified.",
193
- }))
194
- }
195
- node := props.Expression.TypeArguments.Nodes[0]
196
- typ := props.Context.Checker.GetTypeFromTypeNode(node)
197
- if typ != nil && typ.IsTypeParameter() {
198
- panic(NewTransformerError(TransformerError_IProps{
199
- Code: "typia." + props.Method,
200
- Message: "non-specified generic argument.",
201
- }))
202
- }
203
- name := genericTransformer_node_text(node)
204
- var init *shimast.Node
205
- if props.Expression.Arguments != nil && len(props.Expression.Arguments.Nodes) != 0 {
206
- init = props.Expression.Arguments.Nodes[0]
207
- }
208
- return props.Write(nativecontext.IProgrammerProps{
209
- Context: props.Context,
210
- Modulo: props.Modulo,
211
- Type: typ,
212
- Name: &name,
213
- Init: init,
214
- })
189
+ if props.Expression == nil || props.Expression.TypeArguments == nil || len(props.Expression.TypeArguments.Nodes) == 0 {
190
+ panic(NewTransformerError(TransformerError_IProps{
191
+ Code: "typia." + props.Method,
192
+ Message: "generic argument is not specified.",
193
+ }))
194
+ }
195
+ node := props.Expression.TypeArguments.Nodes[0]
196
+ typ := props.Context.Checker.GetTypeFromTypeNode(node)
197
+ if typ != nil && typ.IsTypeParameter() {
198
+ panic(NewTransformerError(TransformerError_IProps{
199
+ Code: "typia." + props.Method,
200
+ Message: "non-specified generic argument.",
201
+ }))
202
+ }
203
+ name := genericTransformer_node_text(node)
204
+ var init *shimast.Node
205
+ if props.Expression.Arguments != nil && len(props.Expression.Arguments.Nodes) != 0 {
206
+ init = props.Expression.Arguments.Nodes[0]
207
+ }
208
+ return props.Write(nativecontext.IProgrammerProps{
209
+ Context: props.Context,
210
+ Modulo: props.Modulo,
211
+ Type: typ,
212
+ Name: &name,
213
+ Init: init,
214
+ })
215
215
  }
216
216
 
217
217
  func genericTransformer_node_text(node *shimast.Node) string {
218
- if node == nil {
219
- return ""
220
- }
221
- return strings.TrimSpace(shimscanner.GetTextOfNode(node))
218
+ if node == nil {
219
+ return ""
220
+ }
221
+ return strings.TrimSpace(shimscanner.GetTextOfNode(node))
222
222
  }
223
223
 
224
224
  type genericTransformer_getTypeNameProps struct {
225
- Context nativecontext.ITypiaContext
226
- Type *shimchecker.Type
227
- Node *shimast.Node
225
+ Context nativecontext.ITypiaContext
226
+ Type *shimchecker.Type
227
+ Node *shimast.Node
228
228
  }
229
229
 
230
230
  func genericTransformer_getTypeName(props genericTransformer_getTypeNameProps) string {
231
- if props.Context.Checker == nil || props.Type == nil {
232
- return ""
233
- }
234
- return props.Context.Checker.TypeToString(props.Type)
231
+ if props.Context.Checker == nil || props.Type == nil {
232
+ return ""
233
+ }
234
+ return props.Context.Checker.TypeToString(props.Type)
235
235
  }
@@ -1,50 +1,50 @@
1
1
  package transform
2
2
 
3
3
  import (
4
- shimast "github.com/microsoft/typescript-go/shim/ast"
5
- shimcore "github.com/microsoft/typescript-go/shim/core"
6
- "github.com/samchon/ttsc/packages/ttsc/driver"
7
- nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
4
+ shimast "github.com/microsoft/typescript-go/shim/ast"
5
+ shimcore "github.com/microsoft/typescript-go/shim/core"
6
+ "github.com/samchon/ttsc/packages/ttsc/driver"
7
+ nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
8
8
  )
9
9
 
10
10
  type TransformFactory func(file *shimast.SourceFile) *shimast.SourceFile
11
11
 
12
12
  func Transform(program *driver.Program, options *nativecontext.ITransformOptions, extras nativecontext.ITypiaContext_Extras) TransformFactory {
13
- compilerOptions := transform_compilerOptions(program)
14
- if transform_strict(compilerOptions) == false && extras.AddDiagnostic != nil {
15
- extras.AddDiagnostic(&shimast.Diagnostic{})
16
- }
17
- opt := nativecontext.ITransformOptions{}
18
- if options != nil {
19
- opt = *options
20
- }
21
- return TransformFactory(FileTransformer.Transform(FileTransformer_IEnvironments{
22
- Program: program,
23
- CompilerOptions: compilerOptions,
24
- Checker: transform_checker(program),
25
- Printer: nil,
26
- Options: opt,
27
- Extras: extras,
28
- })(nil))
13
+ compilerOptions := transform_compilerOptions(program)
14
+ if transform_strict(compilerOptions) == false && extras.AddDiagnostic != nil {
15
+ extras.AddDiagnostic(&shimast.Diagnostic{})
16
+ }
17
+ opt := nativecontext.ITransformOptions{}
18
+ if options != nil {
19
+ opt = *options
20
+ }
21
+ return TransformFactory(FileTransformer.Transform(FileTransformer_IEnvironments{
22
+ Program: program,
23
+ CompilerOptions: compilerOptions,
24
+ Checker: transform_checker(program),
25
+ Printer: nil,
26
+ Options: opt,
27
+ Extras: extras,
28
+ })(nil))
29
29
  }
30
30
 
31
31
  func transform_compilerOptions(program *driver.Program) *shimcore.CompilerOptions {
32
- if program == nil || program.ParsedConfig == nil || program.ParsedConfig.ParsedConfig == nil {
33
- return nil
34
- }
35
- return program.ParsedConfig.ParsedConfig.CompilerOptions
32
+ if program == nil || program.ParsedConfig == nil || program.ParsedConfig.ParsedConfig == nil {
33
+ return nil
34
+ }
35
+ return program.ParsedConfig.ParsedConfig.CompilerOptions
36
36
  }
37
37
 
38
38
  func transform_checker(program *driver.Program) any {
39
- if program == nil {
40
- return nil
41
- }
42
- return program.Checker
39
+ if program == nil {
40
+ return nil
41
+ }
42
+ return program.Checker
43
43
  }
44
44
 
45
45
  func transform_strict(options *shimcore.CompilerOptions) bool {
46
- if options == nil {
47
- return true
48
- }
49
- return options.GetStrictOptionValue(options.StrictNullChecks)
46
+ if options == nil {
47
+ return true
48
+ }
49
+ return options.GetStrictOptionValue(options.StrictNullChecks)
50
50
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "13.0.0-dev.20260430",
3
+ "version": "13.0.0-dev.20260502-2",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -42,8 +42,8 @@
42
42
  "inquirer": "^8.2.5",
43
43
  "package-manager-detector": "^0.2.0",
44
44
  "randexp": "^0.5.3",
45
- "@typia/interface": "^13.0.0-dev.20260430",
46
- "@typia/utils": "^13.0.0-dev.20260430"
45
+ "@typia/interface": "^13.0.0-dev.20260502-2",
46
+ "@typia/utils": "^13.0.0-dev.20260502-2"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@rollup/plugin-commonjs": "^29.0.0",
@@ -61,7 +61,7 @@
61
61
  "rollup-plugin-node-externals": "^8.1.2",
62
62
  "suppress-warnings": "^1.0.2",
63
63
  "tinyglobby": "^0.2.12",
64
- "ttsc": "^0.6.0"
64
+ "ttsc": "^0.7.2"
65
65
  },
66
66
  "sideEffects": [
67
67
  "./lib/_virtual/*.mjs",
@@ -1,7 +1,11 @@
1
1
  import fs from "fs";
2
2
  import { createRequire } from "module";
3
3
  import path from "path";
4
- import { transform } from "ttsc";
4
+ import {
5
+ type ITtscCompilerDiagnostic,
6
+ type ITtscCompilerTransformation,
7
+ TtscCompiler,
8
+ } from "ttsc";
5
9
 
6
10
  import { ArgumentParser } from "./setup/ArgumentParser";
7
11
  import { PackageManager } from "./setup/PackageManager";
@@ -111,23 +115,51 @@ export namespace TypiaGenerateWizard {
111
115
  to: location.output,
112
116
  });
113
117
 
114
- const cwd = path.dirname(location.project);
115
118
  const binary = resolveTsgoBinary();
119
+ const cwd = path.dirname(location.project);
120
+ const transformed = transformProject({
121
+ binary,
122
+ cwd,
123
+ tsconfig: location.project,
124
+ });
116
125
  for (const file of files) {
117
126
  const relative = path.relative(location.input, file);
118
127
  const target = path.join(location.output, relative);
119
- const output = transform({
120
- binary,
121
- cwd,
122
- file,
123
- tsconfig: location.project,
124
- plugins: [{ transform: "typia/lib/transform" }],
125
- });
128
+ const output = transformed[projectKey(cwd, file)];
129
+ if (output === undefined) {
130
+ throw new URIError(
131
+ `Error on TypiaGenerateWizard.generate(): no transformed output for ${file}`,
132
+ );
133
+ }
126
134
  await fs.promises.mkdir(path.dirname(target), { recursive: true });
127
135
  await fs.promises.writeFile(target, formatOutput(output), "utf8");
128
136
  }
129
137
  }
130
138
 
139
+ function transformProject(props: {
140
+ binary: string;
141
+ cwd: string;
142
+ tsconfig: string;
143
+ }): Record<string, string> {
144
+ const result: ITtscCompilerTransformation = new TtscCompiler({
145
+ binary: props.binary,
146
+ cwd: props.cwd,
147
+ plugins: [{ transform: "typia/lib/transform" }],
148
+ tsconfig: props.tsconfig,
149
+ }).transform();
150
+ if (result.type === "success") {
151
+ return result.typescript;
152
+ }
153
+ if (result.type === "failure") {
154
+ throw new URIError(
155
+ `Error on TypiaGenerateWizard.generate(): ${formatDiagnostics(result.diagnostics)}`,
156
+ );
157
+ }
158
+ throw new URIError(
159
+ `Error on TypiaGenerateWizard.generate(): ${formatUnknownError(result.error)}`,
160
+ );
161
+ }
162
+
131
163
  function resolveTsgoBinary(): string {
132
164
  const explicit: string | undefined = process.env.TTSC_TSGO_BINARY;
133
165
  if (explicit !== undefined && explicit.length !== 0) {
@@ -256,6 +288,43 @@ export namespace TypiaGenerateWizard {
256
288
  ? output
257
289
  : `// @ts-nocheck\n${output}`;
258
290
  }
291
+
292
+ function projectKey(root: string, file: string): string {
293
+ return path.relative(root, file).replace(/\\/g, "/");
294
+ }
295
+
296
+ function formatDiagnostics(diagnostics: ITtscCompilerDiagnostic[]): string {
297
+ return diagnostics.length === 0
298
+ ? "transformation failed"
299
+ : diagnostics
300
+ .map((diag) =>
301
+ [
302
+ diag.file ?? "ttsc",
303
+ diag.line === undefined
304
+ ? undefined
305
+ : `${diag.line}:${diag.character ?? 1}`,
306
+ diag.messageText,
307
+ ]
308
+ .filter((part) => part !== undefined && part !== "")
309
+ .join(": "),
310
+ )
311
+ .join("\n");
312
+ }
313
+
314
+ function formatUnknownError(error: unknown): string {
315
+ if (error instanceof Error) {
316
+ return error.message;
317
+ }
318
+ if (
319
+ typeof error === "object" &&
320
+ error !== null &&
321
+ "message" in error &&
322
+ typeof error.message === "string"
323
+ ) {
324
+ return error.message;
325
+ }
326
+ return String(error);
327
+ }
259
328
  }
260
329
 
261
330
  const TS_PATTERN = /\.[cm]?tsx?$/;
@@ -1,6 +1,5 @@
1
- const { spawnSync } = require(
2
- "node:child_process",
3
- ) as typeof import("node:child_process");
1
+ const { spawnSync } =
2
+ require("node:child_process") as typeof import("node:child_process");
4
3
  const fs = require("node:fs") as typeof import("node:fs");
5
4
  const path = require("node:path") as typeof import("node:path");
6
5
 
@@ -13,9 +13,8 @@ export namespace PluginConfigurator {
13
13
  const config: comments.CommentObject = comments.parse(
14
14
  await fs.promises.readFile(args.project!, "utf8"),
15
15
  ) as comments.CommentObject;
16
- const compilerOptions = (
17
- config.compilerOptions ??= {} as comments.CommentObject
18
- ) as comments.CommentObject;
16
+ const compilerOptions = (config.compilerOptions ??=
17
+ {} as comments.CommentObject) as comments.CommentObject;
19
18
 
20
19
  // PREPARE PLUGINS
21
20
  const plugins: comments.CommentArray<comments.CommentObject> = (() => {