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