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,21 +1,21 @@
1
1
  package driver
2
2
 
3
3
  import (
4
- "context"
5
- "errors"
6
- "fmt"
7
- "io"
8
- "path/filepath"
4
+ "context"
5
+ "errors"
6
+ "fmt"
7
+ "io"
8
+ "path/filepath"
9
9
 
10
- "github.com/microsoft/typescript-go/shim/ast"
11
- shimchecker "github.com/microsoft/typescript-go/shim/checker"
12
- shimcompiler "github.com/microsoft/typescript-go/shim/compiler"
13
- "github.com/microsoft/typescript-go/shim/core"
14
- shimdiagnosticwriter "github.com/microsoft/typescript-go/shim/diagnosticwriter"
15
- shimscanner "github.com/microsoft/typescript-go/shim/scanner"
16
- "github.com/microsoft/typescript-go/shim/tsoptions"
17
- "github.com/microsoft/typescript-go/shim/tspath"
18
- "github.com/microsoft/typescript-go/shim/vfs"
10
+ "github.com/microsoft/typescript-go/shim/ast"
11
+ shimchecker "github.com/microsoft/typescript-go/shim/checker"
12
+ shimcompiler "github.com/microsoft/typescript-go/shim/compiler"
13
+ "github.com/microsoft/typescript-go/shim/core"
14
+ shimdiagnosticwriter "github.com/microsoft/typescript-go/shim/diagnosticwriter"
15
+ shimscanner "github.com/microsoft/typescript-go/shim/scanner"
16
+ "github.com/microsoft/typescript-go/shim/tsoptions"
17
+ "github.com/microsoft/typescript-go/shim/tspath"
18
+ "github.com/microsoft/typescript-go/shim/vfs"
19
19
  )
20
20
 
21
21
  // Diagnostic is the compilation diagnostic shape ttsc passes around. Kept
@@ -27,13 +27,13 @@ import (
27
27
  // `@ttsc/lint`). At most one of `raw` / `lint` is non-nil; both nil falls
28
28
  // back to the legacy single-line form.
29
29
  type Diagnostic struct {
30
- File string
31
- Line int
32
- Column int
33
- Message string
34
- Severity Severity
35
- raw *ast.Diagnostic
36
- lint *shimdiagnosticwriter.LintDiagnostic
30
+ File string
31
+ Line int
32
+ Column int
33
+ Message string
34
+ Severity Severity
35
+ raw *ast.Diagnostic
36
+ lint *shimdiagnosticwriter.LintDiagnostic
37
37
  }
38
38
 
39
39
  // Severity classifies a diagnostic's blast radius. ttsc treats Error as a
@@ -41,12 +41,12 @@ type Diagnostic struct {
41
41
  type Severity int
42
42
 
43
43
  const (
44
- // SeverityError is the default for tsgo typecheck output and any
45
- // plugin-emitted finding that should fail the build.
46
- SeverityError Severity = iota
47
- // SeverityWarning prints with warning coloring but keeps the build
48
- // status at zero.
49
- SeverityWarning
44
+ // SeverityError is the default for tsgo typecheck output and any
45
+ // plugin-emitted finding that should fail the build.
46
+ SeverityError Severity = iota
47
+ // SeverityWarning prints with warning coloring but keeps the build
48
+ // status at zero.
49
+ SeverityWarning
50
50
  )
51
51
 
52
52
  // IsError reports whether the diagnostic counts toward the build's error
@@ -60,56 +60,56 @@ func (d Diagnostic) IsError() bool { return d.Severity == SeverityError }
60
60
  // rule's enum index). Severity controls both the rendered banner color and
61
61
  // the exit-code outcome.
62
62
  func NewLintDiagnostic(
63
- file *ast.SourceFile,
64
- pos, end int,
65
- code int32,
66
- severity Severity,
67
- message string,
63
+ file *ast.SourceFile,
64
+ pos, end int,
65
+ code int32,
66
+ severity Severity,
67
+ message string,
68
68
  ) Diagnostic {
69
- cat := shimdiagnosticwriter.LintCategoryError
70
- if severity == SeverityWarning {
71
- cat = shimdiagnosticwriter.LintCategoryWarning
72
- }
73
- lint := shimdiagnosticwriter.NewLintDiagnostic(file, pos, end, code, cat, message)
74
- d := Diagnostic{
75
- Message: message,
76
- Severity: severity,
77
- lint: lint,
78
- }
79
- if file != nil {
80
- d.File = file.FileName()
81
- if pos >= 0 {
82
- line, col := shimscanner.GetECMALineAndByteOffsetOfPosition(file, pos)
83
- d.Line = line + 1
84
- d.Column = col + 1
85
- }
86
- }
87
- return d
69
+ cat := shimdiagnosticwriter.LintCategoryError
70
+ if severity == SeverityWarning {
71
+ cat = shimdiagnosticwriter.LintCategoryWarning
72
+ }
73
+ lint := shimdiagnosticwriter.NewLintDiagnostic(file, pos, end, code, cat, message)
74
+ d := Diagnostic{
75
+ Message: message,
76
+ Severity: severity,
77
+ lint: lint,
78
+ }
79
+ if file != nil {
80
+ d.File = file.FileName()
81
+ if pos >= 0 {
82
+ line, col := shimscanner.GetECMALineAndByteOffsetOfPosition(file, pos)
83
+ d.Line = line + 1
84
+ d.Column = col + 1
85
+ }
86
+ }
87
+ return d
88
88
  }
89
89
 
90
90
  // SourceFile returns the program source file matching filename.
91
91
  func (p *Program) SourceFile(filename string) *ast.SourceFile {
92
- if p == nil || p.TSProgram == nil {
93
- return nil
94
- }
95
- normalized := filepath.ToSlash(filename)
96
- for _, file := range p.TSProgram.SourceFiles() {
97
- if filepath.ToSlash(file.FileName()) == normalized {
98
- return file
99
- }
100
- }
101
- return nil
92
+ if p == nil || p.TSProgram == nil {
93
+ return nil
94
+ }
95
+ normalized := filepath.ToSlash(filename)
96
+ for _, file := range p.TSProgram.SourceFiles() {
97
+ if filepath.ToSlash(file.FileName()) == normalized {
98
+ return file
99
+ }
100
+ }
101
+ return nil
102
102
  }
103
103
 
104
104
  // String returns a `path:line:col: message` formatted string.
105
105
  func (d Diagnostic) String() string {
106
- if d.File == "" {
107
- return d.Message
108
- }
109
- if d.Line > 0 {
110
- return fmt.Sprintf("%s:%d:%d: %s", d.File, d.Line, d.Column, d.Message)
111
- }
112
- return fmt.Sprintf("%s: %s", d.File, d.Message)
106
+ if d.File == "" {
107
+ return d.Message
108
+ }
109
+ if d.Line > 0 {
110
+ return fmt.Sprintf("%s:%d:%d: %s", d.File, d.Line, d.Column, d.Message)
111
+ }
112
+ return fmt.Sprintf("%s: %s", d.File, d.Message)
113
113
  }
114
114
 
115
115
  // WritePrettyDiagnostics renders diagnostics with TypeScript-style colors,
@@ -118,90 +118,90 @@ func (d Diagnostic) String() string {
118
118
  // are rendered through the same color/context pipeline; entries without
119
119
  // either anchor fall back to the legacy `path:line:col: message` form.
120
120
  func WritePrettyDiagnostics(w io.Writer, diagnostics []Diagnostic, cwd string) {
121
- if len(diagnostics) == 0 {
122
- return
123
- }
124
- rich := make([]Diagnostic, 0, len(diagnostics))
125
- plain := make([]Diagnostic, 0)
126
- for _, d := range diagnostics {
127
- if d.raw != nil || d.lint != nil {
128
- rich = append(rich, d)
129
- } else {
130
- plain = append(plain, d)
131
- }
132
- }
133
- if len(rich) > 0 {
134
- astDiags := make([]*ast.Diagnostic, 0, len(rich))
135
- lintDiags := make([]*shimdiagnosticwriter.LintDiagnostic, 0, len(rich))
136
- for _, d := range rich {
137
- if d.raw != nil {
138
- astDiags = append(astDiags, d.raw)
139
- }
140
- if d.lint != nil {
141
- lintDiags = append(lintDiags, d.lint)
142
- }
143
- }
144
- shimdiagnosticwriter.FormatMixedDiagnostics(w, astDiags, lintDiags, cwd)
145
- }
146
- for _, d := range plain {
147
- fmt.Fprintln(w, " -", d.String())
148
- }
121
+ if len(diagnostics) == 0 {
122
+ return
123
+ }
124
+ rich := make([]Diagnostic, 0, len(diagnostics))
125
+ plain := make([]Diagnostic, 0)
126
+ for _, d := range diagnostics {
127
+ if d.raw != nil || d.lint != nil {
128
+ rich = append(rich, d)
129
+ } else {
130
+ plain = append(plain, d)
131
+ }
132
+ }
133
+ if len(rich) > 0 {
134
+ astDiags := make([]*ast.Diagnostic, 0, len(rich))
135
+ lintDiags := make([]*shimdiagnosticwriter.LintDiagnostic, 0, len(rich))
136
+ for _, d := range rich {
137
+ if d.raw != nil {
138
+ astDiags = append(astDiags, d.raw)
139
+ }
140
+ if d.lint != nil {
141
+ lintDiags = append(lintDiags, d.lint)
142
+ }
143
+ }
144
+ shimdiagnosticwriter.FormatMixedDiagnostics(w, astDiags, lintDiags, cwd)
145
+ }
146
+ for _, d := range plain {
147
+ fmt.Fprintln(w, " -", d.String())
148
+ }
149
149
  }
150
150
 
151
151
  // CountErrors returns the number of diagnostics that should fail the build.
152
152
  // tsgo diagnostics carry their own `Error` category; lint diagnostics carry a
153
153
  // caller-set Severity. Anything that isn't an explicit warning counts.
154
154
  func CountErrors(diagnostics []Diagnostic) int {
155
- n := 0
156
- for _, d := range diagnostics {
157
- if d.lint != nil {
158
- if d.lint.IsError() {
159
- n++
160
- }
161
- continue
162
- }
163
- if d.raw != nil {
164
- // tsgo diagnostics use the diagnostics package category. The
165
- // renderer shim already mirrors the same Error/Warning split, so
166
- // re-categorize via the public IsError shortcut.
167
- if d.Severity != SeverityWarning {
168
- n++
169
- }
170
- continue
171
- }
172
- // Plain text diagnostics (manually assembled): treat as errors so
173
- // "ttsc: tsconfig not found"-style failures still flip the exit code.
174
- n++
175
- }
176
- return n
155
+ n := 0
156
+ for _, d := range diagnostics {
157
+ if d.lint != nil {
158
+ if d.lint.IsError() {
159
+ n++
160
+ }
161
+ continue
162
+ }
163
+ if d.raw != nil {
164
+ // tsgo diagnostics use the diagnostics package category. The
165
+ // renderer shim already mirrors the same Error/Warning split, so
166
+ // re-categorize via the public IsError shortcut.
167
+ if d.Severity != SeverityWarning {
168
+ n++
169
+ }
170
+ continue
171
+ }
172
+ // Plain text diagnostics (manually assembled): treat as errors so
173
+ // "ttsc: tsconfig not found"-style failures still flip the exit code.
174
+ n++
175
+ }
176
+ return n
177
177
  }
178
178
 
179
179
  // Program is the shim-agnostic facade the rest of the engine sees.
180
180
  type Program struct {
181
- TSProgram *shimcompiler.Program
182
- ParsedConfig *tsoptions.ParsedCommandLine
183
- Checker *shimchecker.Checker
184
- checkerRelease func()
185
- Host shimcompiler.CompilerHost
186
- FS vfs.FS
181
+ TSProgram *shimcompiler.Program
182
+ ParsedConfig *tsoptions.ParsedCommandLine
183
+ Checker *shimchecker.Checker
184
+ checkerRelease func()
185
+ Host shimcompiler.CompilerHost
186
+ FS vfs.FS
187
187
  }
188
188
 
189
189
  // LoadProgramOptions controls tsconfig overrides applied before tsgo creates
190
190
  // the program. `ForceEmit` is used by `ttsc --emit` and `ttsc transform`
191
191
  // so runtime compilation still works when the project defaults to `noEmit`.
192
192
  type LoadProgramOptions struct {
193
- ForceEmit bool
194
- ForceNoEmit bool
195
- OutDir string
193
+ ForceEmit bool
194
+ ForceNoEmit bool
195
+ OutDir string
196
196
  }
197
197
 
198
198
  // Close releases the checker pool lease acquired by LoadProgram.
199
199
  func (p *Program) Close() error {
200
- if p.checkerRelease != nil {
201
- p.checkerRelease()
202
- p.checkerRelease = nil
203
- }
204
- return nil
200
+ if p.checkerRelease != nil {
201
+ p.checkerRelease()
202
+ p.checkerRelease = nil
203
+ }
204
+ return nil
205
205
  }
206
206
 
207
207
  // ParseTSConfig parses a tsconfig.json file via tsgo's native JSONC parser.
@@ -211,36 +211,36 @@ func (p *Program) Close() error {
211
211
  // tsgo's filesystem APIs require absolute paths — mirrors what tsc does when
212
212
  // you pass a relative `--project` flag.
213
213
  func ParseTSConfig(fs vfs.FS, cwd, tsconfigPath string, host shimcompiler.CompilerHost) (*tsoptions.ParsedCommandLine, []Diagnostic, error) {
214
- resolved := tspath.ResolvePath(cwd, tsconfigPath)
215
- if !fs.FileExists(resolved) {
216
- return nil, nil, fmt.Errorf("tsconfig not found: %s", resolved)
217
- }
218
- parsed, diags := tsoptions.GetParsedCommandLineOfConfigFile(resolved, &core.CompilerOptions{}, nil, host, nil)
219
- if len(diags) > 0 {
220
- return nil, convertDiagnostics(diags), nil
221
- }
222
- if parsed == nil {
223
- return nil, nil, errors.New("tsoptions: parsed command line was nil")
224
- }
225
- if len(parsed.Errors) > 0 {
226
- return nil, convertDiagnostics(parsed.Errors), nil
227
- }
228
- return parsed, nil, nil
214
+ resolved := tspath.ResolvePath(cwd, tsconfigPath)
215
+ if !fs.FileExists(resolved) {
216
+ return nil, nil, fmt.Errorf("tsconfig not found: %s", resolved)
217
+ }
218
+ parsed, diags := tsoptions.GetParsedCommandLineOfConfigFile(resolved, &core.CompilerOptions{}, nil, host, nil)
219
+ if len(diags) > 0 {
220
+ return nil, convertDiagnostics(diags), nil
221
+ }
222
+ if parsed == nil {
223
+ return nil, nil, errors.New("tsoptions: parsed command line was nil")
224
+ }
225
+ if len(parsed.Errors) > 0 {
226
+ return nil, convertDiagnostics(parsed.Errors), nil
227
+ }
228
+ return parsed, nil, nil
229
229
  }
230
230
 
231
231
  // CreateProgramFromConfig builds a tsgo Program from the parsed config.
232
232
  func CreateProgramFromConfig(parsed *tsoptions.ParsedCommandLine, host shimcompiler.CompilerHost) (*shimcompiler.Program, []Diagnostic, error) {
233
- opts := shimcompiler.ProgramOptions{
234
- Config: parsed,
235
- SingleThreaded: core.TSTrue,
236
- Host: host,
237
- UseSourceOfProjectReference: true,
238
- }
239
- p := shimcompiler.NewProgram(opts)
240
- if p == nil {
241
- return nil, nil, errors.New("shimcompiler.NewProgram returned nil")
242
- }
243
- return p, nil, nil
233
+ opts := shimcompiler.ProgramOptions{
234
+ Config: parsed,
235
+ SingleThreaded: core.TSTrue,
236
+ Host: host,
237
+ UseSourceOfProjectReference: true,
238
+ }
239
+ p := shimcompiler.NewProgram(opts)
240
+ if p == nil {
241
+ return nil, nil, errors.New("shimcompiler.NewProgram returned nil")
242
+ }
243
+ return p, nil, nil
244
244
  }
245
245
 
246
246
  // LoadProgram is the one-shot convenience used by `ttsc`.
@@ -249,155 +249,155 @@ func CreateProgramFromConfig(parsed *tsoptions.ParsedCommandLine, host shimcompi
249
249
  //
250
250
  // cwd must be absolute; tsconfigPath may be relative to cwd.
251
251
  func LoadProgram(cwd, tsconfigPath string, options LoadProgramOptions) (*Program, []Diagnostic, error) {
252
- if !filepath.IsAbs(cwd) {
253
- if abs, err := filepath.Abs(cwd); err == nil {
254
- cwd = abs
255
- }
256
- }
257
- cwd = tspath.ResolvePath(cwd)
258
- fs := DefaultFS()
259
- host := DefaultHost(cwd, fs)
252
+ if !filepath.IsAbs(cwd) {
253
+ if abs, err := filepath.Abs(cwd); err == nil {
254
+ cwd = abs
255
+ }
256
+ }
257
+ cwd = tspath.ResolvePath(cwd)
258
+ fs := DefaultFS()
259
+ host := DefaultHost(cwd, fs)
260
260
 
261
- parsed, diags, err := ParseTSConfig(fs, cwd, tsconfigPath, host)
262
- if err != nil {
263
- return nil, nil, err
264
- }
265
- if len(diags) > 0 {
266
- return nil, diags, nil
267
- }
268
- if options.ForceNoEmit {
269
- forceNoEmit(parsed)
270
- }
271
- if options.ForceEmit {
272
- forceEmit(parsed)
273
- }
274
- if options.OutDir != "" {
275
- overrideOutDir(cwd, parsed, options.OutDir)
276
- }
261
+ parsed, diags, err := ParseTSConfig(fs, cwd, tsconfigPath, host)
262
+ if err != nil {
263
+ return nil, nil, err
264
+ }
265
+ if len(diags) > 0 {
266
+ return nil, diags, nil
267
+ }
268
+ if options.ForceNoEmit {
269
+ forceNoEmit(parsed)
270
+ }
271
+ if options.ForceEmit {
272
+ forceEmit(parsed)
273
+ }
274
+ if options.OutDir != "" {
275
+ overrideOutDir(cwd, parsed, options.OutDir)
276
+ }
277
277
 
278
- tsProgram, progDiags, err := CreateProgramFromConfig(parsed, host)
279
- if err != nil {
280
- return nil, nil, err
281
- }
282
- if len(progDiags) > 0 {
283
- return nil, progDiags, nil
284
- }
278
+ tsProgram, progDiags, err := CreateProgramFromConfig(parsed, host)
279
+ if err != nil {
280
+ return nil, nil, err
281
+ }
282
+ if len(progDiags) > 0 {
283
+ return nil, progDiags, nil
284
+ }
285
285
 
286
- checker, done := tsProgram.GetTypeChecker(context.Background())
287
- return &Program{
288
- TSProgram: tsProgram,
289
- ParsedConfig: parsed,
290
- Checker: checker,
291
- checkerRelease: done,
292
- Host: host,
293
- FS: fs,
294
- }, nil, nil
286
+ checker, done := tsProgram.GetTypeChecker(context.Background())
287
+ return &Program{
288
+ TSProgram: tsProgram,
289
+ ParsedConfig: parsed,
290
+ Checker: checker,
291
+ checkerRelease: done,
292
+ Host: host,
293
+ FS: fs,
294
+ }, nil, nil
295
295
  }
296
296
 
297
297
  func forceEmit(parsed *tsoptions.ParsedCommandLine) {
298
- if parsed == nil || parsed.ParsedConfig == nil || parsed.ParsedConfig.CompilerOptions == nil {
299
- return
300
- }
301
- options := parsed.ParsedConfig.CompilerOptions
302
- options.NoEmit = core.TSFalse
303
- options.EmitDeclarationOnly = core.TSFalse
298
+ if parsed == nil || parsed.ParsedConfig == nil || parsed.ParsedConfig.CompilerOptions == nil {
299
+ return
300
+ }
301
+ options := parsed.ParsedConfig.CompilerOptions
302
+ options.NoEmit = core.TSFalse
303
+ options.EmitDeclarationOnly = core.TSFalse
304
304
  }
305
305
 
306
306
  func forceNoEmit(parsed *tsoptions.ParsedCommandLine) {
307
- if parsed == nil || parsed.ParsedConfig == nil || parsed.ParsedConfig.CompilerOptions == nil {
308
- return
309
- }
310
- parsed.ParsedConfig.CompilerOptions.NoEmit = core.TSTrue
307
+ if parsed == nil || parsed.ParsedConfig == nil || parsed.ParsedConfig.CompilerOptions == nil {
308
+ return
309
+ }
310
+ parsed.ParsedConfig.CompilerOptions.NoEmit = core.TSTrue
311
311
  }
312
312
 
313
313
  func overrideOutDir(cwd string, parsed *tsoptions.ParsedCommandLine, outDir string) {
314
- if parsed == nil || parsed.ParsedConfig == nil || parsed.ParsedConfig.CompilerOptions == nil {
315
- return
316
- }
317
- parsed.ParsedConfig.CompilerOptions.OutDir = tspath.ResolvePath(cwd, outDir)
314
+ if parsed == nil || parsed.ParsedConfig == nil || parsed.ParsedConfig.CompilerOptions == nil {
315
+ return
316
+ }
317
+ parsed.ParsedConfig.CompilerOptions.OutDir = tspath.ResolvePath(cwd, outDir)
318
318
  }
319
319
 
320
320
  // SourceFiles exposes the program's user-authored source files (declaration
321
321
  // files filtered out).
322
322
  func (p *Program) SourceFiles() []*ast.SourceFile {
323
- out := make([]*ast.SourceFile, 0)
324
- for _, f := range p.TSProgram.SourceFiles() {
325
- if f.IsDeclarationFile {
326
- continue
327
- }
328
- out = append(out, f)
329
- }
330
- return out
323
+ out := make([]*ast.SourceFile, 0)
324
+ for _, f := range p.TSProgram.SourceFiles() {
325
+ if f.IsDeclarationFile {
326
+ continue
327
+ }
328
+ out = append(out, f)
329
+ }
330
+ return out
331
331
  }
332
332
 
333
333
  // Diagnostics returns project diagnostics that must block compilation or
334
334
  // runtime execution before any JavaScript is emitted or evaluated.
335
335
  func (p *Program) Diagnostics() []Diagnostic {
336
- if p == nil || p.TSProgram == nil {
337
- return []Diagnostic{{Message: "driver: nil program"}}
338
- }
339
- ctx := context.Background()
340
- raw := shimcompiler.GetDiagnosticsOfAnyProgram(
341
- ctx,
342
- p.TSProgram,
343
- nil,
344
- false,
345
- p.TSProgram.GetBindDiagnostics,
346
- p.TSProgram.GetSemanticDiagnostics,
347
- )
348
- raw = filterDiagnostics(raw)
349
- return convertDiagnostics(shimcompiler.SortAndDeduplicateDiagnostics(raw))
336
+ if p == nil || p.TSProgram == nil {
337
+ return []Diagnostic{{Message: "driver: nil program"}}
338
+ }
339
+ ctx := context.Background()
340
+ raw := shimcompiler.GetDiagnosticsOfAnyProgram(
341
+ ctx,
342
+ p.TSProgram,
343
+ nil,
344
+ false,
345
+ p.TSProgram.GetBindDiagnostics,
346
+ p.TSProgram.GetSemanticDiagnostics,
347
+ )
348
+ raw = filterDiagnostics(raw)
349
+ return convertDiagnostics(shimcompiler.SortAndDeduplicateDiagnostics(raw))
350
350
  }
351
351
 
352
352
  func filterDiagnostics(in []*ast.Diagnostic) []*ast.Diagnostic {
353
- out := in[:0]
354
- for _, d := range in {
355
- if isUnusedOverloadSignatureTypeParameterDiagnostic(d) {
356
- continue
357
- }
358
- out = append(out, d)
359
- }
360
- return out
353
+ out := in[:0]
354
+ for _, d := range in {
355
+ if isUnusedOverloadSignatureTypeParameterDiagnostic(d) {
356
+ continue
357
+ }
358
+ out = append(out, d)
359
+ }
360
+ return out
361
361
  }
362
362
 
363
363
  func isUnusedOverloadSignatureTypeParameterDiagnostic(d *ast.Diagnostic) bool {
364
- if d == nil || d.File() == nil {
365
- return false
366
- }
367
- switch d.Code() {
368
- case 6196, 6205: // unused declaration / all type parameters are unused
369
- default:
370
- return false
371
- }
372
- node := ast.GetNodeAtPosition(d.File(), d.Pos(), false)
373
- for node != nil {
374
- if node.Kind == ast.KindFunctionDeclaration {
375
- return node.Body() == nil
376
- }
377
- node = node.Parent
378
- }
379
- return false
364
+ if d == nil || d.File() == nil {
365
+ return false
366
+ }
367
+ switch d.Code() {
368
+ case 6196, 6205: // unused declaration / all type parameters are unused
369
+ default:
370
+ return false
371
+ }
372
+ node := ast.GetNodeAtPosition(d.File(), d.Pos(), false)
373
+ for node != nil {
374
+ if node.Kind == ast.KindFunctionDeclaration {
375
+ return node.Body() == nil
376
+ }
377
+ node = node.Parent
378
+ }
379
+ return false
380
380
  }
381
381
 
382
382
  // convertDiagnostics translates shim-specific diagnostics into the plain
383
383
  // Diagnostic struct with line/column populated via tsgo's ECMALineMap (the
384
384
  // same helper tsc uses for its "file:line:col: message" banner).
385
385
  func convertDiagnostics(in []*ast.Diagnostic) []Diagnostic {
386
- out := make([]Diagnostic, 0, len(in))
387
- for _, d := range in {
388
- if d == nil {
389
- continue
390
- }
391
- diag := Diagnostic{Message: d.String(), raw: d}
392
- if file := d.File(); file != nil {
393
- diag.File = file.FileName()
394
- if pos := d.Pos(); pos >= 0 {
395
- line, col := shimscanner.GetECMALineAndByteOffsetOfPosition(file, pos)
396
- diag.Line = line + 1
397
- diag.Column = col + 1
398
- }
399
- }
400
- out = append(out, diag)
401
- }
402
- return out
386
+ out := make([]Diagnostic, 0, len(in))
387
+ for _, d := range in {
388
+ if d == nil {
389
+ continue
390
+ }
391
+ diag := Diagnostic{Message: d.String(), raw: d}
392
+ if file := d.File(); file != nil {
393
+ diag.File = file.FileName()
394
+ if pos := d.Pos(); pos >= 0 {
395
+ line, col := shimscanner.GetECMALineAndByteOffsetOfPosition(file, pos)
396
+ diag.Line = line + 1
397
+ diag.Column = col + 1
398
+ }
399
+ }
400
+ out = append(out, diag)
401
+ }
402
+ return out
403
403
  }