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
@@ -14,32 +14,32 @@
14
14
  package driver
15
15
 
16
16
  import (
17
- "context"
18
- "errors"
19
- "fmt"
20
- "os"
21
- "path/filepath"
22
- "strings"
23
- "unicode"
17
+ "context"
18
+ "errors"
19
+ "fmt"
20
+ "os"
21
+ "path/filepath"
22
+ "strings"
23
+ "unicode"
24
24
 
25
- "github.com/microsoft/typescript-go/shim/ast"
26
- shimcompiler "github.com/microsoft/typescript-go/shim/compiler"
25
+ "github.com/microsoft/typescript-go/shim/ast"
26
+ shimcompiler "github.com/microsoft/typescript-go/shim/compiler"
27
27
  )
28
28
 
29
29
  // Rewrite describes one emit-time patch. Produced by CollectCallSites after
30
30
  // the engine has generated a replacement JS fragment for the call.
31
31
  type Rewrite struct {
32
- File *ast.SourceFile
33
- RootName string
34
- Namespaces []string
35
- Method string
36
- Replacement string
37
- ConsumeParens bool
32
+ File *ast.SourceFile
33
+ RootName string
34
+ Namespaces []string
35
+ Method string
36
+ Replacement string
37
+ ConsumeParens bool
38
38
  }
39
39
 
40
40
  // RewriteSet groups rewrites by file, preserving source order.
41
41
  type RewriteSet struct {
42
- byPath map[string][]Rewrite
42
+ byPath map[string][]Rewrite
43
43
  }
44
44
 
45
45
  // NewRewriteSet returns an empty set.
@@ -47,20 +47,20 @@ func NewRewriteSet() *RewriteSet { return &RewriteSet{byPath: map[string][]Rewri
47
47
 
48
48
  // Add registers a rewrite under the absolute path of its source file.
49
49
  func (rs *RewriteSet) Add(r Rewrite) {
50
- if r.File == nil {
51
- return
52
- }
53
- path := filepath.ToSlash(r.File.FileName())
54
- rs.byPath[path] = append(rs.byPath[path], r)
50
+ if r.File == nil {
51
+ return
52
+ }
53
+ path := filepath.ToSlash(r.File.FileName())
54
+ rs.byPath[path] = append(rs.byPath[path], r)
55
55
  }
56
56
 
57
57
  // Len returns the total number of rewrites across every file.
58
58
  func (rs *RewriteSet) Len() int {
59
- n := 0
60
- for _, rws := range rs.byPath {
61
- n += len(rws)
62
- }
63
- return n
59
+ n := 0
60
+ for _, rws := range rs.byPath {
61
+ n += len(rws)
62
+ }
63
+ return n
64
64
  }
65
65
 
66
66
  // RewriteSentinel is the marker inserted at the top of a patched file so
@@ -72,244 +72,244 @@ const RewriteSentinel = "/* @ttsc-rewritten */"
72
72
  // `writeFile` is nil, the patched JS is written to disk via the standard
73
73
  // tsgo WriteFile.
74
74
  func (p *Program) EmitAll(rs *RewriteSet, writeFile shimcompiler.WriteFile) (*shimcompiler.EmitResult, []Diagnostic, error) {
75
- return p.emit(rs, nil, writeFile)
75
+ return p.emit(rs, nil, writeFile)
76
76
  }
77
77
 
78
78
  // EmitFile runs tsgo's emitter for one source file, applying the same rewrite
79
79
  // pipeline as EmitAll.
80
80
  func (p *Program) EmitFile(rs *RewriteSet, target *ast.SourceFile, writeFile shimcompiler.WriteFile) (*shimcompiler.EmitResult, []Diagnostic, error) {
81
- return p.emit(rs, target, writeFile)
81
+ return p.emit(rs, target, writeFile)
82
82
  }
83
83
 
84
84
  func (p *Program) emit(rs *RewriteSet, target *ast.SourceFile, writeFile shimcompiler.WriteFile) (*shimcompiler.EmitResult, []Diagnostic, error) {
85
- if p == nil || p.TSProgram == nil {
86
- return nil, nil, errors.New("driver: nil program")
87
- }
88
- if rs == nil {
89
- rs = NewRewriteSet()
90
- }
91
- cursors := map[string]int{}
92
- wf := func(fileName, text string, data *shimcompiler.WriteFileData) error {
93
- if strings.Contains(text, RewriteSentinel) {
94
- if writeFile != nil {
95
- return writeFile(fileName, text, data)
96
- }
97
- return DefaultWriteFile(fileName, text)
98
- }
99
- patched, err := applyRewrites(fileName, text, rs, cursors)
100
- if err != nil {
101
- return err
102
- }
103
- if patched != text {
104
- patched = insertSentinel(patched)
105
- }
106
- if writeFile != nil {
107
- return writeFile(fileName, patched, data)
108
- }
109
- return DefaultWriteFile(fileName, patched)
110
- }
85
+ if p == nil || p.TSProgram == nil {
86
+ return nil, nil, errors.New("driver: nil program")
87
+ }
88
+ if rs == nil {
89
+ rs = NewRewriteSet()
90
+ }
91
+ cursors := map[string]int{}
92
+ wf := func(fileName, text string, data *shimcompiler.WriteFileData) error {
93
+ if strings.Contains(text, RewriteSentinel) {
94
+ if writeFile != nil {
95
+ return writeFile(fileName, text, data)
96
+ }
97
+ return DefaultWriteFile(fileName, text)
98
+ }
99
+ patched, err := applyRewrites(fileName, text, rs, cursors)
100
+ if err != nil {
101
+ return err
102
+ }
103
+ if patched != text {
104
+ patched = insertSentinel(patched)
105
+ }
106
+ if writeFile != nil {
107
+ return writeFile(fileName, patched, data)
108
+ }
109
+ return DefaultWriteFile(fileName, patched)
110
+ }
111
111
 
112
- result := p.TSProgram.Emit(context.Background(), shimcompiler.EmitOptions{
113
- TargetSourceFile: target,
114
- WriteFile: wf,
115
- })
116
- if result == nil {
117
- return nil, nil, errors.New("driver: Emit returned nil")
118
- }
119
- return result, convertDiagnostics(result.Diagnostics), nil
112
+ result := p.TSProgram.Emit(context.Background(), shimcompiler.EmitOptions{
113
+ TargetSourceFile: target,
114
+ WriteFile: wf,
115
+ })
116
+ if result == nil {
117
+ return nil, nil, errors.New("driver: Emit returned nil")
118
+ }
119
+ return result, convertDiagnostics(result.Diagnostics), nil
120
120
  }
121
121
 
122
122
  // DefaultWriteFile is the default disk writer used when EmitAll's caller does not
123
123
  // supply a custom WriteFile hook.
124
124
  func DefaultWriteFile(fileName, text string) error {
125
- if dir := filepath.Dir(fileName); dir != "" {
126
- if err := os.MkdirAll(dir, 0o755); err != nil {
127
- return err
128
- }
129
- }
130
- return os.WriteFile(fileName, []byte(text), 0o644)
125
+ if dir := filepath.Dir(fileName); dir != "" {
126
+ if err := os.MkdirAll(dir, 0o755); err != nil {
127
+ return err
128
+ }
129
+ }
130
+ return os.WriteFile(fileName, []byte(text), 0o644)
131
131
  }
132
132
 
133
133
  func insertSentinel(text string) string {
134
- for _, prefix := range []string{"\"use strict\";\n", "'use strict';\n"} {
135
- if strings.HasPrefix(text, prefix) {
136
- return prefix + RewriteSentinel + "\n" + text[len(prefix):]
137
- }
138
- }
139
- return RewriteSentinel + "\n" + text
134
+ for _, prefix := range []string{"\"use strict\";\n", "'use strict';\n"} {
135
+ if strings.HasPrefix(text, prefix) {
136
+ return prefix + RewriteSentinel + "\n" + text[len(prefix):]
137
+ }
138
+ }
139
+ return RewriteSentinel + "\n" + text
140
140
  }
141
141
 
142
142
  func applyRewrites(outputName, text string, rs *RewriteSet, cursors map[string]int) (string, error) {
143
- srcPath, ok := findSourceForOutput(outputName, rs)
144
- if !ok || len(rs.byPath[srcPath]) == 0 {
145
- return text, nil
146
- }
147
- rewrites := rs.byPath[srcPath]
148
- pos := cursors[srcPath]
149
- out := text
150
- searchFrom := 0
151
- for pos < len(rewrites) {
152
- r := rewrites[pos]
153
- replaced, nextSearchFrom, ok, err := spliceCall(out, r, searchFrom)
154
- if err != nil {
155
- return "", err
156
- }
157
- if !ok {
158
- preview := out
159
- if len(preview) > 400 {
160
- preview = preview[:400] + "…"
161
- }
162
- return "", fmt.Errorf("driver: could not locate %s.%s(…) call in %s (tried roots %v; preview: %q)", joinRootAndNamespaces(r), r.Method, outputName, candidateRoots(r.RootName), preview)
163
- }
164
- out = replaced
165
- searchFrom = nextSearchFrom
166
- pos++
167
- }
168
- cursors[srcPath] = pos
169
- return out, nil
143
+ srcPath, ok := findSourceForOutput(outputName, rs)
144
+ if !ok || len(rs.byPath[srcPath]) == 0 {
145
+ return text, nil
146
+ }
147
+ rewrites := rs.byPath[srcPath]
148
+ pos := cursors[srcPath]
149
+ out := text
150
+ searchFrom := 0
151
+ for pos < len(rewrites) {
152
+ r := rewrites[pos]
153
+ replaced, nextSearchFrom, ok, err := spliceCall(out, r, searchFrom)
154
+ if err != nil {
155
+ return "", err
156
+ }
157
+ if !ok {
158
+ preview := out
159
+ if len(preview) > 400 {
160
+ preview = preview[:400] + "…"
161
+ }
162
+ return "", fmt.Errorf("driver: could not locate %s.%s(…) call in %s (tried roots %v; preview: %q)", joinRootAndNamespaces(r), r.Method, outputName, candidateRoots(r.RootName), preview)
163
+ }
164
+ out = replaced
165
+ searchFrom = nextSearchFrom
166
+ pos++
167
+ }
168
+ cursors[srcPath] = pos
169
+ return out, nil
170
170
  }
171
171
 
172
172
  func findSourceForOutput(outputName string, rs *RewriteSet) (string, bool) {
173
- outSlash := strings.TrimSuffix(filepath.ToSlash(outputName), filepath.Ext(outputName))
174
- var best string
175
- bestScore := 0
176
- for path := range rs.byPath {
177
- srcStem := strings.TrimSuffix(filepath.ToSlash(path), filepath.Ext(path))
178
- score := commonSuffixSegments(srcStem, outSlash)
179
- if score > bestScore {
180
- best = path
181
- bestScore = score
182
- }
183
- }
184
- return best, bestScore > 0
173
+ outSlash := strings.TrimSuffix(filepath.ToSlash(outputName), filepath.Ext(outputName))
174
+ var best string
175
+ bestScore := 0
176
+ for path := range rs.byPath {
177
+ srcStem := strings.TrimSuffix(filepath.ToSlash(path), filepath.Ext(path))
178
+ score := commonSuffixSegments(srcStem, outSlash)
179
+ if score > bestScore {
180
+ best = path
181
+ bestScore = score
182
+ }
183
+ }
184
+ return best, bestScore > 0
185
185
  }
186
186
 
187
187
  func commonSuffixSegments(a, b string) int {
188
- as := strings.Split(a, "/")
189
- bs := strings.Split(b, "/")
190
- n := len(as)
191
- if len(bs) < n {
192
- n = len(bs)
193
- }
194
- shared := 0
195
- for i := 1; i <= n; i++ {
196
- if as[len(as)-i] != bs[len(bs)-i] {
197
- break
198
- }
199
- shared++
200
- }
201
- return shared
188
+ as := strings.Split(a, "/")
189
+ bs := strings.Split(b, "/")
190
+ n := len(as)
191
+ if len(bs) < n {
192
+ n = len(bs)
193
+ }
194
+ shared := 0
195
+ for i := 1; i <= n; i++ {
196
+ if as[len(as)-i] != bs[len(bs)-i] {
197
+ break
198
+ }
199
+ shared++
200
+ }
201
+ return shared
202
202
  }
203
203
 
204
204
  func spliceCall(text string, r Rewrite, searchFrom int) (string, int, bool, error) {
205
- aliases := candidateRoots(r.RootName)
206
- tail := needleTail(r)
207
- idx := -1
208
- needleLen := 0
209
- for _, cand := range aliases {
210
- candNeedle := cand + tail
211
- if i := indexAtCallStart(text, candNeedle, searchFrom); i >= 0 {
212
- idx = i
213
- needleLen = len(candNeedle) - 1
214
- break
215
- }
216
- }
217
- if idx < 0 {
218
- return text, searchFrom, false, nil
219
- }
220
- parenPos := idx + needleLen
221
- if parenPos >= len(text) || text[parenPos] != '(' {
222
- return text, searchFrom, false, errors.New("driver: expected '(' after method name")
223
- }
224
- closePos, ok := matchParen(text, parenPos)
225
- if !ok {
226
- return text, searchFrom, false, errors.New("driver: unbalanced parens while locating plugin call")
227
- }
228
- if r.ConsumeParens {
229
- replaced := text[:idx] + r.Replacement + text[closePos+1:]
230
- return replaced, idx + len(r.Replacement), true, nil
231
- }
232
- replaced := text[:idx] + r.Replacement + text[idx+needleLen:]
233
- return replaced, idx + len(r.Replacement), true, nil
205
+ aliases := candidateRoots(r.RootName)
206
+ tail := needleTail(r)
207
+ idx := -1
208
+ needleLen := 0
209
+ for _, cand := range aliases {
210
+ candNeedle := cand + tail
211
+ if i := indexAtCallStart(text, candNeedle, searchFrom); i >= 0 {
212
+ idx = i
213
+ needleLen = len(candNeedle) - 1
214
+ break
215
+ }
216
+ }
217
+ if idx < 0 {
218
+ return text, searchFrom, false, nil
219
+ }
220
+ parenPos := idx + needleLen
221
+ if parenPos >= len(text) || text[parenPos] != '(' {
222
+ return text, searchFrom, false, errors.New("driver: expected '(' after method name")
223
+ }
224
+ closePos, ok := matchParen(text, parenPos)
225
+ if !ok {
226
+ return text, searchFrom, false, errors.New("driver: unbalanced parens while locating plugin call")
227
+ }
228
+ if r.ConsumeParens {
229
+ replaced := text[:idx] + r.Replacement + text[closePos+1:]
230
+ return replaced, idx + len(r.Replacement), true, nil
231
+ }
232
+ replaced := text[:idx] + r.Replacement + text[idx+needleLen:]
233
+ return replaced, idx + len(r.Replacement), true, nil
234
234
  }
235
235
 
236
236
  func candidateRoots(root string) []string {
237
- return []string{
238
- root,
239
- root + "_1.default",
240
- root + "_2.default",
241
- root + ".default",
242
- root + "_1",
243
- root + "_2",
244
- }
237
+ return []string{
238
+ root,
239
+ root + "_1.default",
240
+ root + "_2.default",
241
+ root + ".default",
242
+ root + "_1",
243
+ root + "_2",
244
+ }
245
245
  }
246
246
 
247
247
  func joinRootAndNamespaces(r Rewrite) string {
248
- if len(r.Namespaces) == 0 {
249
- return r.RootName
250
- }
251
- return r.RootName + "." + strings.Join(r.Namespaces, ".")
248
+ if len(r.Namespaces) == 0 {
249
+ return r.RootName
250
+ }
251
+ return r.RootName + "." + strings.Join(r.Namespaces, ".")
252
252
  }
253
253
 
254
254
  func needleTail(r Rewrite) string {
255
- if len(r.Namespaces) == 0 {
256
- return "." + r.Method + "("
257
- }
258
- return "." + strings.Join(r.Namespaces, ".") + "." + r.Method + "("
255
+ if len(r.Namespaces) == 0 {
256
+ return "." + r.Method + "("
257
+ }
258
+ return "." + strings.Join(r.Namespaces, ".") + "." + r.Method + "("
259
259
  }
260
260
 
261
261
  func indexAtCallStart(text, needle string, searchFrom int) int {
262
- start := searchFrom
263
- if start < 0 {
264
- start = 0
265
- }
266
- for {
267
- hit := strings.Index(text[start:], needle)
268
- if hit < 0 {
269
- return -1
270
- }
271
- pos := start + hit
272
- if pos == 0 {
273
- return pos
274
- }
275
- prev := rune(text[pos-1])
276
- if isIdentifierPart(prev) {
277
- start = pos + 1
278
- continue
279
- }
280
- return pos
281
- }
262
+ start := searchFrom
263
+ if start < 0 {
264
+ start = 0
265
+ }
266
+ for {
267
+ hit := strings.Index(text[start:], needle)
268
+ if hit < 0 {
269
+ return -1
270
+ }
271
+ pos := start + hit
272
+ if pos == 0 {
273
+ return pos
274
+ }
275
+ prev := rune(text[pos-1])
276
+ if isIdentifierPart(prev) {
277
+ start = pos + 1
278
+ continue
279
+ }
280
+ return pos
281
+ }
282
282
  }
283
283
 
284
284
  func isIdentifierPart(r rune) bool {
285
- return r == '_' || r == '$' || unicode.IsLetter(r) || unicode.IsDigit(r)
285
+ return r == '_' || r == '$' || unicode.IsLetter(r) || unicode.IsDigit(r)
286
286
  }
287
287
 
288
288
  func matchParen(text string, pos int) (int, bool) {
289
- if pos >= len(text) || text[pos] != '(' {
290
- return 0, false
291
- }
292
- depth := 1
293
- for i := pos + 1; i < len(text); i++ {
294
- switch text[i] {
295
- case '(':
296
- depth++
297
- case ')':
298
- depth--
299
- if depth == 0 {
300
- return i, true
301
- }
302
- case '"', '\'', '`':
303
- q := text[i]
304
- j := i + 1
305
- for j < len(text) && text[j] != q {
306
- if text[j] == '\\' {
307
- j++
308
- }
309
- j++
310
- }
311
- i = j
312
- }
313
- }
314
- return 0, false
289
+ if pos >= len(text) || text[pos] != '(' {
290
+ return 0, false
291
+ }
292
+ depth := 1
293
+ for i := pos + 1; i < len(text); i++ {
294
+ switch text[i] {
295
+ case '(':
296
+ depth++
297
+ case ')':
298
+ depth--
299
+ if depth == 0 {
300
+ return i, true
301
+ }
302
+ case '"', '\'', '`':
303
+ q := text[i]
304
+ j := i + 1
305
+ for j < len(text) && text[j] != q {
306
+ if text[j] == '\\' {
307
+ j++
308
+ }
309
+ j++
310
+ }
311
+ i = j
312
+ }
313
+ }
314
+ return 0, false
315
315
  }