typia 13.0.0-dev.20260430 → 13.0.0-dev.20260502-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (364) hide show
  1. package/lib/executable/TypiaGenerateWizard.js +55 -8
  2. package/lib/executable/TypiaGenerateWizard.js.map +1 -1
  3. package/lib/executable/TypiaGenerateWizard2.mjs +55 -8
  4. package/lib/executable/TypiaGenerateWizard2.mjs.map +1 -1
  5. package/lib/executable/generate/ttsc.js.map +1 -1
  6. package/lib/executable/setup/PluginConfigurator.js.map +1 -1
  7. package/lib/internal/_randomInteger.js.map +1 -1
  8. package/lib/internal/_validateReport.js.map +1 -1
  9. package/lib/transform.d.ts +2 -13
  10. package/lib/transform.js +4 -11
  11. package/lib/transform.js.map +1 -1
  12. package/lib/transform2.mjs +6 -14
  13. package/lib/transform2.mjs.map +1 -1
  14. package/native/adapter/adapter.go +128 -128
  15. package/native/adapter/cleanup.go +155 -172
  16. package/native/adapter/imports.go +80 -80
  17. package/native/adapter/visit.go +142 -142
  18. package/native/cmd/ttsc-typia/build.go +223 -223
  19. package/native/cmd/ttsc-typia/main.go +57 -57
  20. package/native/cmd/ttsc-typia/transform.go +421 -254
  21. package/native/cmd/ttsc-typia/transform_test.go +40 -0
  22. package/native/core/context/IProgrammerProps.go +7 -7
  23. package/native/core/context/ITransformOptions.go +5 -5
  24. package/native/core/context/ITypiaContext.go +13 -13
  25. package/native/core/context/TransformerError.go +81 -81
  26. package/native/core/factories/CommentFactory.go +9 -9
  27. package/native/core/factories/ExpressionFactory.go +254 -254
  28. package/native/core/factories/FormatCheatSheet.go +23 -23
  29. package/native/core/factories/IdentifierFactory.go +130 -130
  30. package/native/core/factories/JsonMetadataFactory.go +129 -129
  31. package/native/core/factories/LiteralFactory.go +195 -182
  32. package/native/core/factories/MetadataCommentTagFactory.go +379 -379
  33. package/native/core/factories/MetadataFactory.go +462 -462
  34. package/native/core/factories/MetadataTypeTagFactory.go +498 -498
  35. package/native/core/factories/MetadataTypeTagSchemaFactory.go +102 -102
  36. package/native/core/factories/NumericRangeFactory.go +84 -84
  37. package/native/core/factories/ProtobufFactory.go +933 -933
  38. package/native/core/factories/StatementFactory.go +72 -72
  39. package/native/core/factories/TemplateFactory.go +57 -57
  40. package/native/core/factories/TypeFactory.go +125 -125
  41. package/native/core/factories/ValueFactory.go +12 -12
  42. package/native/core/factories/internal/metadata/IMetadataIteratorProps.go +35 -35
  43. package/native/core/factories/internal/metadata/MetadataHelper.go +176 -176
  44. package/native/core/factories/internal/metadata/emend_metadata_atomics.go +69 -69
  45. package/native/core/factories/internal/metadata/emplace_metadata_alias.go +27 -27
  46. package/native/core/factories/internal/metadata/emplace_metadata_array_type.go +33 -33
  47. package/native/core/factories/internal/metadata/emplace_metadata_object.go +209 -209
  48. package/native/core/factories/internal/metadata/emplace_metadata_tuple.go +50 -50
  49. package/native/core/factories/internal/metadata/explore_metadata.go +29 -29
  50. package/native/core/factories/internal/metadata/iterate_metadata.go +46 -46
  51. package/native/core/factories/internal/metadata/iterate_metadata_alias.go +25 -25
  52. package/native/core/factories/internal/metadata/iterate_metadata_array.go +65 -65
  53. package/native/core/factories/internal/metadata/iterate_metadata_atomic.go +49 -49
  54. package/native/core/factories/internal/metadata/iterate_metadata_coalesce.go +22 -22
  55. package/native/core/factories/internal/metadata/iterate_metadata_collection.go +228 -228
  56. package/native/core/factories/internal/metadata/iterate_metadata_comment_tags.go +12 -12
  57. package/native/core/factories/internal/metadata/iterate_metadata_constant.go +71 -71
  58. package/native/core/factories/internal/metadata/iterate_metadata_escape.go +48 -48
  59. package/native/core/factories/internal/metadata/iterate_metadata_function.go +82 -82
  60. package/native/core/factories/internal/metadata/iterate_metadata_intersection.go +319 -319
  61. package/native/core/factories/internal/metadata/iterate_metadata_map.go +51 -51
  62. package/native/core/factories/internal/metadata/iterate_metadata_native.go +85 -85
  63. package/native/core/factories/internal/metadata/iterate_metadata_object.go +27 -27
  64. package/native/core/factories/internal/metadata/iterate_metadata_set.go +37 -37
  65. package/native/core/factories/internal/metadata/iterate_metadata_sort.go +137 -137
  66. package/native/core/factories/internal/metadata/iterate_metadata_template.go +33 -33
  67. package/native/core/factories/internal/metadata/iterate_metadata_tuple.go +16 -16
  68. package/native/core/factories/internal/metadata/iterate_metadata_union.go +18 -18
  69. package/native/core/programmers/AssertProgrammer.go +389 -389
  70. package/native/core/programmers/ImportProgrammer.go +196 -196
  71. package/native/core/programmers/IsProgrammer.go +293 -293
  72. package/native/core/programmers/RandomProgrammer.go +1094 -1094
  73. package/native/core/programmers/ValidateProgrammer.go +369 -369
  74. package/native/core/programmers/functional/FunctionalAssertFunctionProgrammer.go +133 -133
  75. package/native/core/programmers/functional/FunctionalAssertParametersProgrammer.go +104 -104
  76. package/native/core/programmers/functional/FunctionalAssertReturnProgrammer.go +100 -100
  77. package/native/core/programmers/functional/FunctionalIsFunctionProgrammer.go +79 -79
  78. package/native/core/programmers/functional/FunctionalIsParametersProgrammer.go +159 -159
  79. package/native/core/programmers/functional/FunctionalIsReturnProgrammer.go +99 -99
  80. package/native/core/programmers/functional/FunctionalValidateFunctionProgrammer.go +138 -138
  81. package/native/core/programmers/functional/FunctionalValidateParametersProgrammer.go +222 -222
  82. package/native/core/programmers/functional/FunctionalValidateReturnProgrammer.go +116 -116
  83. package/native/core/programmers/functional/internal/FunctionalGeneralProgrammer.go +36 -36
  84. package/native/core/programmers/helpers/AtomicPredicator.go +35 -35
  85. package/native/core/programmers/helpers/CloneJoiner.go +217 -217
  86. package/native/core/programmers/helpers/FunctionProgrammer.go +79 -79
  87. package/native/core/programmers/helpers/HttpMetadataUtil.go +17 -17
  88. package/native/core/programmers/helpers/ICheckEntry.go +5 -5
  89. package/native/core/programmers/helpers/IExpressionEntry.go +6 -6
  90. package/native/core/programmers/helpers/NotationJoiner.go +159 -159
  91. package/native/core/programmers/helpers/OptionPredicator.go +4 -4
  92. package/native/core/programmers/helpers/ProtobufUtil.go +231 -231
  93. package/native/core/programmers/helpers/ProtobufWire.go +6 -6
  94. package/native/core/programmers/helpers/PruneJoiner.go +227 -227
  95. package/native/core/programmers/helpers/RandomJoiner.go +155 -155
  96. package/native/core/programmers/helpers/StringifyJoinder.go +331 -331
  97. package/native/core/programmers/helpers/StringifyPredicator.go +10 -10
  98. package/native/core/programmers/helpers/UnionExplorer.go +835 -835
  99. package/native/core/programmers/helpers/UnionPredicator.go +78 -78
  100. package/native/core/programmers/helpers/disable_function_programmer_declare.go +6 -6
  101. package/native/core/programmers/http/HttpAssertFormDataProgrammer.go +93 -93
  102. package/native/core/programmers/http/HttpAssertHeadersProgrammer.go +42 -42
  103. package/native/core/programmers/http/HttpAssertQueryProgrammer.go +51 -51
  104. package/native/core/programmers/http/HttpFormDataProgrammer.go +351 -351
  105. package/native/core/programmers/http/HttpHeadersProgrammer.go +370 -370
  106. package/native/core/programmers/http/HttpIsFormDataProgrammer.go +109 -109
  107. package/native/core/programmers/http/HttpIsHeadersProgrammer.go +36 -36
  108. package/native/core/programmers/http/HttpIsQueryProgrammer.go +45 -45
  109. package/native/core/programmers/http/HttpParameterProgrammer.go +158 -158
  110. package/native/core/programmers/http/HttpQueryProgrammer.go +422 -422
  111. package/native/core/programmers/http/HttpValidateFormDataProgrammer.go +87 -87
  112. package/native/core/programmers/http/HttpValidateHeadersProgrammer.go +39 -39
  113. package/native/core/programmers/http/HttpValidateQueryProgrammer.go +48 -48
  114. package/native/core/programmers/internal/CheckerProgrammer.go +1490 -1490
  115. package/native/core/programmers/internal/FeatureProgrammer.go +589 -589
  116. package/native/core/programmers/iterate/check_array_length.go +46 -46
  117. package/native/core/programmers/iterate/check_bigint.go +52 -52
  118. package/native/core/programmers/iterate/check_dynamic_key.go +220 -220
  119. package/native/core/programmers/iterate/check_dynamic_properties.go +245 -245
  120. package/native/core/programmers/iterate/check_everything.go +21 -21
  121. package/native/core/programmers/iterate/check_native.go +25 -25
  122. package/native/core/programmers/iterate/check_number.go +135 -135
  123. package/native/core/programmers/iterate/check_object.go +66 -66
  124. package/native/core/programmers/iterate/check_string.go +52 -52
  125. package/native/core/programmers/iterate/check_template.go +57 -57
  126. package/native/core/programmers/iterate/check_union_array_like.go +372 -372
  127. package/native/core/programmers/iterate/decode_union_object.go +118 -118
  128. package/native/core/programmers/iterate/feature_object_entries.go +134 -134
  129. package/native/core/programmers/iterate/json_schema_alias.go +52 -52
  130. package/native/core/programmers/iterate/json_schema_array.go +52 -52
  131. package/native/core/programmers/iterate/json_schema_bigint.go +8 -8
  132. package/native/core/programmers/iterate/json_schema_boolean.go +8 -8
  133. package/native/core/programmers/iterate/json_schema_constant.go +38 -38
  134. package/native/core/programmers/iterate/json_schema_description.go +12 -12
  135. package/native/core/programmers/iterate/json_schema_discriminator.go +47 -47
  136. package/native/core/programmers/iterate/json_schema_escaped.go +58 -58
  137. package/native/core/programmers/iterate/json_schema_jsDocTags.go +34 -34
  138. package/native/core/programmers/iterate/json_schema_native.go +43 -43
  139. package/native/core/programmers/iterate/json_schema_number.go +8 -8
  140. package/native/core/programmers/iterate/json_schema_object.go +149 -149
  141. package/native/core/programmers/iterate/json_schema_plugin.go +35 -35
  142. package/native/core/programmers/iterate/json_schema_station.go +211 -211
  143. package/native/core/programmers/iterate/json_schema_string.go +8 -8
  144. package/native/core/programmers/iterate/json_schema_template.go +53 -53
  145. package/native/core/programmers/iterate/json_schema_title.go +16 -16
  146. package/native/core/programmers/iterate/json_schema_tuple.go +34 -34
  147. package/native/core/programmers/iterate/metadata_to_pattern.go +53 -53
  148. package/native/core/programmers/iterate/postfix_of_tuple.go +5 -5
  149. package/native/core/programmers/iterate/prune_object_properties.go +85 -85
  150. package/native/core/programmers/iterate/stringify_dynamic_properties.go +193 -193
  151. package/native/core/programmers/iterate/stringify_native.go +1 -1
  152. package/native/core/programmers/iterate/stringify_regular_properties.go +84 -84
  153. package/native/core/programmers/iterate/template_to_pattern.go +20 -20
  154. package/native/core/programmers/iterate/wrap_metadata_rest_tuple.go +13 -13
  155. package/native/core/programmers/json/JsonApplicationProgrammer.go +323 -323
  156. package/native/core/programmers/json/JsonAssertParseProgrammer.go +100 -100
  157. package/native/core/programmers/json/JsonAssertStringifyProgrammer.go +88 -88
  158. package/native/core/programmers/json/JsonIsParseProgrammer.go +130 -130
  159. package/native/core/programmers/json/JsonIsStringifyProgrammer.go +92 -92
  160. package/native/core/programmers/json/JsonSchemaProgrammer.go +65 -65
  161. package/native/core/programmers/json/JsonSchemasProgrammer.go +116 -116
  162. package/native/core/programmers/json/JsonStringifyProgrammer.go +1245 -1245
  163. package/native/core/programmers/json/JsonValidateParseProgrammer.go +89 -89
  164. package/native/core/programmers/json/JsonValidateStringifyProgrammer.go +106 -106
  165. package/native/core/programmers/llm/LlmApplicationProgrammer.go +449 -437
  166. package/native/core/programmers/llm/LlmCoerceProgrammer.go +79 -79
  167. package/native/core/programmers/llm/LlmControllerProgrammer.go +35 -35
  168. package/native/core/programmers/llm/LlmMetadataFactory.go +74 -74
  169. package/native/core/programmers/llm/LlmParametersProgrammer.go +105 -132
  170. package/native/core/programmers/llm/LlmParseProgrammer.go +88 -88
  171. package/native/core/programmers/llm/LlmSchemaProgrammer.go +780 -423
  172. package/native/core/programmers/llm/LlmStructuredOutputProgrammer.go +123 -123
  173. package/native/core/programmers/misc/MiscAssertCloneProgrammer.go +82 -82
  174. package/native/core/programmers/misc/MiscAssertPruneProgrammer.go +97 -97
  175. package/native/core/programmers/misc/MiscCloneProgrammer.go +1056 -1056
  176. package/native/core/programmers/misc/MiscIsCloneProgrammer.go +94 -94
  177. package/native/core/programmers/misc/MiscIsPruneProgrammer.go +86 -86
  178. package/native/core/programmers/misc/MiscLiteralsProgrammer.go +99 -99
  179. package/native/core/programmers/misc/MiscPruneProgrammer.go +700 -700
  180. package/native/core/programmers/misc/MiscValidateCloneProgrammer.go +103 -103
  181. package/native/core/programmers/misc/MiscValidatePruneProgrammer.go +94 -94
  182. package/native/core/programmers/notations/NotationAssertGeneralProgrammer.go +85 -85
  183. package/native/core/programmers/notations/NotationGeneralProgrammer.go +1188 -1188
  184. package/native/core/programmers/notations/NotationIsGeneralProgrammer.go +90 -90
  185. package/native/core/programmers/notations/NotationValidateGeneralProgrammer.go +109 -109
  186. package/native/core/programmers/protobuf/ProtobufAssertDecodeProgrammer.go +99 -99
  187. package/native/core/programmers/protobuf/ProtobufAssertEncodeProgrammer.go +114 -114
  188. package/native/core/programmers/protobuf/ProtobufDecodeProgrammer.go +697 -697
  189. package/native/core/programmers/protobuf/ProtobufEncodeProgrammer.go +1039 -1039
  190. package/native/core/programmers/protobuf/ProtobufIsDecodeProgrammer.go +99 -99
  191. package/native/core/programmers/protobuf/ProtobufIsEncodeProgrammer.go +93 -93
  192. package/native/core/programmers/protobuf/ProtobufMessageProgrammer.go +228 -228
  193. package/native/core/programmers/protobuf/ProtobufValidateDecodeProgrammer.go +88 -88
  194. package/native/core/programmers/protobuf/ProtobufValidateEncodeProgrammer.go +120 -120
  195. package/native/core/schemas/metadata/IMetadataDictionary.go +4 -4
  196. package/native/core/schemas/metadata/MetadataAlias.go +15 -15
  197. package/native/core/schemas/metadata/MetadataAliasType.go +36 -36
  198. package/native/core/schemas/metadata/MetadataApplication.go +25 -25
  199. package/native/core/schemas/metadata/MetadataArray.go +15 -15
  200. package/native/core/schemas/metadata/MetadataArrayType.go +31 -31
  201. package/native/core/schemas/metadata/MetadataAtomic.go +45 -45
  202. package/native/core/schemas/metadata/MetadataCollection.go +380 -380
  203. package/native/core/schemas/metadata/MetadataComponents.go +95 -95
  204. package/native/core/schemas/metadata/MetadataConstant.go +31 -31
  205. package/native/core/schemas/metadata/MetadataConstantValue.go +63 -63
  206. package/native/core/schemas/metadata/MetadataEscaped.go +17 -17
  207. package/native/core/schemas/metadata/MetadataFunction.go +30 -30
  208. package/native/core/schemas/metadata/MetadataMap.go +21 -21
  209. package/native/core/schemas/metadata/MetadataNative.go +48 -48
  210. package/native/core/schemas/metadata/MetadataObject.go +15 -15
  211. package/native/core/schemas/metadata/MetadataObjectType.go +116 -116
  212. package/native/core/schemas/metadata/MetadataParameter.go +28 -28
  213. package/native/core/schemas/metadata/MetadataProperty.go +32 -32
  214. package/native/core/schemas/metadata/MetadataSchema.go +766 -766
  215. package/native/core/schemas/metadata/MetadataSet.go +17 -17
  216. package/native/core/schemas/metadata/MetadataTemplate.go +43 -43
  217. package/native/core/schemas/metadata/MetadataTuple.go +10 -10
  218. package/native/core/schemas/metadata/MetadataTupleType.go +38 -38
  219. package/native/core/schemas/protobuf/IProtobufProperty.go +2 -2
  220. package/native/core/schemas/protobuf/IProtobufPropertyType.go +18 -18
  221. package/native/core/schemas/protobuf/IProtobufSchema.go +17 -17
  222. package/native/core/typings/Writable.go +1 -1
  223. package/native/core/utils/PatternUtil.go +38 -38
  224. package/native/core/utils/ProtobufNameEncoder.go +28 -28
  225. package/native/shim/printer/shim.go +213 -213
  226. package/native/third_party/ttsc/driver/host.go +7 -7
  227. package/native/third_party/ttsc/driver/program.go +275 -275
  228. package/native/third_party/ttsc/driver/rewrite.go +219 -219
  229. package/native/third_party/ttsc/shim/ast/lint.go +171 -171
  230. package/native/third_party/ttsc/shim/ast/shim.go +83 -83
  231. package/native/third_party/ttsc/shim/bundled/shim.go +5 -1
  232. package/native/third_party/ttsc/shim/checker/shim.go +79 -79
  233. package/native/third_party/ttsc/shim/compiler/shim.go +16 -1
  234. package/native/third_party/ttsc/shim/core/shim.go +10 -10
  235. package/native/third_party/ttsc/shim/diagnosticwriter/lint.go +79 -79
  236. package/native/third_party/ttsc/shim/diagnosticwriter/shim.go +19 -19
  237. package/native/third_party/ttsc/shim/parser/shim.go +7 -1
  238. package/native/third_party/ttsc/shim/scanner/shim.go +39 -1
  239. package/native/third_party/ttsc/shim/tsoptions/shim.go +51 -1
  240. package/native/third_party/ttsc/shim/tspath/shim.go +72 -1
  241. package/native/third_party/ttsc/shim/vfs/cachedvfs/shim.go +1 -1
  242. package/native/third_party/ttsc/shim/vfs/osvfs/shim.go +1 -1
  243. package/native/third_party/ttsc/shim/vfs/shim.go +4 -1
  244. package/native/transform/CallExpressionTransformer.go +556 -556
  245. package/native/transform/FileTransformer.go +123 -123
  246. package/native/transform/ImportTransformer.go +224 -224
  247. package/native/transform/NodeTransformer.go +11 -11
  248. package/native/transform/TypiaGenerator.go +136 -136
  249. package/native/transform/features/AssertTransformer.go +28 -28
  250. package/native/transform/features/CreateAssertTransformer.go +28 -28
  251. package/native/transform/features/CreateIsTransformer.go +24 -24
  252. package/native/transform/features/CreateRandomTransformer.go +35 -35
  253. package/native/transform/features/CreateValidateTransformer.go +24 -24
  254. package/native/transform/features/IsTransformer.go +24 -24
  255. package/native/transform/features/RandomTransformer.go +37 -37
  256. package/native/transform/features/ValidateTransformer.go +24 -24
  257. package/native/transform/features/functional/FunctionalGenericTransformer.go +48 -48
  258. package/native/transform/features/http/CreateHttpAssertFormDataTransformer.go +11 -11
  259. package/native/transform/features/http/CreateHttpAssertHeadersTransformer.go +11 -11
  260. package/native/transform/features/http/CreateHttpAssertQueryTransformer.go +17 -17
  261. package/native/transform/features/http/CreateHttpFormDataTransformer.go +11 -11
  262. package/native/transform/features/http/CreateHttpHeadersTransformer.go +11 -11
  263. package/native/transform/features/http/CreateHttpIsFormDataTransformer.go +11 -11
  264. package/native/transform/features/http/CreateHttpIsHeadersTransformer.go +11 -11
  265. package/native/transform/features/http/CreateHttpIsQueryTransformer.go +17 -17
  266. package/native/transform/features/http/CreateHttpParameterTransformer.go +11 -11
  267. package/native/transform/features/http/CreateHttpQueryTransformer.go +17 -17
  268. package/native/transform/features/http/CreateHttpValidateFormDataTransformer.go +11 -11
  269. package/native/transform/features/http/CreateHttpValidateHeadersTransformer.go +11 -11
  270. package/native/transform/features/http/CreateHttpValidateQueryTransformer.go +17 -17
  271. package/native/transform/features/http/HttpAssertFormDataTransformer.go +11 -11
  272. package/native/transform/features/http/HttpAssertHeadersTransformer.go +11 -11
  273. package/native/transform/features/http/HttpAssertQueryTransformer.go +17 -17
  274. package/native/transform/features/http/HttpFormDataTransformer.go +11 -11
  275. package/native/transform/features/http/HttpHeadersTransformer.go +11 -11
  276. package/native/transform/features/http/HttpIsFormDataTransformer.go +11 -11
  277. package/native/transform/features/http/HttpIsHeadersTransformer.go +11 -11
  278. package/native/transform/features/http/HttpIsQueryTransformer.go +17 -17
  279. package/native/transform/features/http/HttpParameterTransformer.go +11 -11
  280. package/native/transform/features/http/HttpQueryTransformer.go +17 -17
  281. package/native/transform/features/http/HttpValidateFormDataTransformer.go +11 -11
  282. package/native/transform/features/http/HttpValidateHeadersTransformer.go +11 -11
  283. package/native/transform/features/http/HttpValidateQueryTransformer.go +17 -17
  284. package/native/transform/features/json/JsonApplicationTransformer.go +61 -61
  285. package/native/transform/features/json/JsonAssertParseTransformer.go +11 -11
  286. package/native/transform/features/json/JsonAssertStringifyTransformer.go +11 -11
  287. package/native/transform/features/json/JsonCreateAssertParseTransformer.go +11 -11
  288. package/native/transform/features/json/JsonCreateAssertStringifyTransformer.go +11 -11
  289. package/native/transform/features/json/JsonCreateIsParseTransformer.go +11 -11
  290. package/native/transform/features/json/JsonCreateIsStringifyTransformer.go +11 -11
  291. package/native/transform/features/json/JsonCreateStringifyTransformer.go +11 -11
  292. package/native/transform/features/json/JsonCreateValidateParseTransformer.go +11 -11
  293. package/native/transform/features/json/JsonCreateValidateStringifyProgrammer.go +11 -11
  294. package/native/transform/features/json/JsonIsParseTransformer.go +11 -11
  295. package/native/transform/features/json/JsonIsStringifyTransformer.go +11 -11
  296. package/native/transform/features/json/JsonSchemaTransformer.go +148 -148
  297. package/native/transform/features/json/JsonSchemasTransformer.go +94 -94
  298. package/native/transform/features/json/JsonStringifyTransformer.go +11 -11
  299. package/native/transform/features/json/JsonValidateParseTransformer.go +11 -11
  300. package/native/transform/features/json/JsonValidateStringifyTransformer.go +11 -11
  301. package/native/transform/features/llm/LlmApplicationTransformer.go +43 -43
  302. package/native/transform/features/llm/LlmCoerceTransformer.go +50 -50
  303. package/native/transform/features/llm/LlmControllerTransformer.go +48 -48
  304. package/native/transform/features/llm/LlmCreateCoerceTransformer.go +43 -43
  305. package/native/transform/features/llm/LlmCreateParseTransformer.go +43 -43
  306. package/native/transform/features/llm/LlmParametersTransformer.go +38 -38
  307. package/native/transform/features/llm/LlmParseTransformer.go +50 -50
  308. package/native/transform/features/llm/LlmSchemaTransformer.go +129 -129
  309. package/native/transform/features/llm/LlmStructuredOutputTransformer.go +44 -44
  310. package/native/transform/features/misc/MiscAssertCloneTransformer.go +11 -11
  311. package/native/transform/features/misc/MiscAssertPruneTransformer.go +11 -11
  312. package/native/transform/features/misc/MiscCloneTransformer.go +11 -11
  313. package/native/transform/features/misc/MiscCreateAssertCloneTransformer.go +11 -11
  314. package/native/transform/features/misc/MiscCreateAssertPruneTransformer.go +11 -11
  315. package/native/transform/features/misc/MiscCreateCloneTransformer.go +11 -11
  316. package/native/transform/features/misc/MiscCreateIsCloneTransformer.go +11 -11
  317. package/native/transform/features/misc/MiscCreateIsPruneTransformer.go +11 -11
  318. package/native/transform/features/misc/MiscCreatePruneTransformer.go +11 -11
  319. package/native/transform/features/misc/MiscCreateValidateCloneTransformer.go +11 -11
  320. package/native/transform/features/misc/MiscCreateValidatePruneTransformer.go +11 -11
  321. package/native/transform/features/misc/MiscIsCloneTransformer.go +11 -11
  322. package/native/transform/features/misc/MiscIsPruneTransformer.go +11 -11
  323. package/native/transform/features/misc/MiscLiteralsTransformer.go +21 -21
  324. package/native/transform/features/misc/MiscPruneTransformer.go +11 -11
  325. package/native/transform/features/misc/MiscValidateCloneTransformer.go +11 -11
  326. package/native/transform/features/misc/MiscValidatePruneTransformer.go +11 -11
  327. package/native/transform/features/notations/NotationAssertGeneralTransformer.go +16 -16
  328. package/native/transform/features/notations/NotationCreateAssertGeneralTransformer.go +16 -16
  329. package/native/transform/features/notations/NotationCreateGeneralTransformer.go +16 -16
  330. package/native/transform/features/notations/NotationCreateIsGeneralTransformer.go +16 -16
  331. package/native/transform/features/notations/NotationCreateValidateGeneralTransformer.go +16 -16
  332. package/native/transform/features/notations/NotationGeneralTransformer.go +21 -21
  333. package/native/transform/features/notations/NotationIsGeneralTransformer.go +16 -16
  334. package/native/transform/features/notations/NotationValidateGeneralTransformer.go +16 -16
  335. package/native/transform/features/protobuf/ProtobufAssertDecodeTransformer.go +11 -11
  336. package/native/transform/features/protobuf/ProtobufAssertEncodeTransformer.go +11 -11
  337. package/native/transform/features/protobuf/ProtobufCreateAssertDecodeTransformer.go +11 -11
  338. package/native/transform/features/protobuf/ProtobufCreateAssertEncodeTransformer.go +11 -11
  339. package/native/transform/features/protobuf/ProtobufCreateDecodeTransformer.go +11 -11
  340. package/native/transform/features/protobuf/ProtobufCreateEncodeTransformer.go +11 -11
  341. package/native/transform/features/protobuf/ProtobufCreateIsDecodeTransformer.go +11 -11
  342. package/native/transform/features/protobuf/ProtobufCreateIsEncodeTransformer.go +11 -11
  343. package/native/transform/features/protobuf/ProtobufCreateValidateDecodeTransformer.go +11 -11
  344. package/native/transform/features/protobuf/ProtobufCreateValidateEncodeTransformer.go +11 -11
  345. package/native/transform/features/protobuf/ProtobufDecodeTransformer.go +11 -11
  346. package/native/transform/features/protobuf/ProtobufEncodeTransformer.go +11 -11
  347. package/native/transform/features/protobuf/ProtobufIsDecodeTransformer.go +11 -11
  348. package/native/transform/features/protobuf/ProtobufIsEncodeTransformer.go +11 -11
  349. package/native/transform/features/protobuf/ProtobufMessageTransformer.go +20 -20
  350. package/native/transform/features/protobuf/ProtobufValidateDecodeTransformer.go +11 -11
  351. package/native/transform/features/protobuf/ProtobufValidateEncodeTransformer.go +11 -11
  352. package/native/transform/features/reflect/ReflectMetadataTransformer.go +59 -59
  353. package/native/transform/features/reflect/ReflectNameTransformer.go +78 -78
  354. package/native/transform/features/reflect/ReflectSchemaTransformer.go +121 -121
  355. package/native/transform/features/reflect/ReflectSchemasTransformer.go +55 -55
  356. package/native/transform/internal/GenericTransformer.go +173 -173
  357. package/native/transform/transform.go +32 -32
  358. package/package.json +4 -4
  359. package/src/executable/TypiaGenerateWizard.ts +78 -9
  360. package/src/executable/generate/ttsc.ts +2 -3
  361. package/src/executable/setup/PluginConfigurator.ts +2 -3
  362. package/src/internal/_randomInteger.ts +5 -5
  363. package/src/internal/_validateReport.ts +1 -2
  364. package/src/transform.ts +6 -11
@@ -1,16 +1,16 @@
1
1
  package factories
2
2
 
3
3
  import (
4
- "crypto/rand"
5
- "fmt"
6
- "math"
7
- "os"
8
- "path/filepath"
9
- "strings"
4
+ "crypto/rand"
5
+ "fmt"
6
+ "math"
7
+ "os"
8
+ "path/filepath"
9
+ "strings"
10
10
 
11
- shimast "github.com/microsoft/typescript-go/shim/ast"
12
- shimcore "github.com/microsoft/typescript-go/shim/core"
13
- shimparser "github.com/microsoft/typescript-go/shim/parser"
11
+ shimast "github.com/microsoft/typescript-go/shim/ast"
12
+ shimcore "github.com/microsoft/typescript-go/shim/core"
13
+ shimparser "github.com/microsoft/typescript-go/shim/parser"
14
14
  )
15
15
 
16
16
  type expressionFactoryNamespace struct{}
@@ -18,317 +18,317 @@ type expressionFactoryNamespace struct{}
18
18
  var ExpressionFactory = expressionFactoryNamespace{}
19
19
 
20
20
  type ExpressionFactory_IsObjectProps struct {
21
- CheckNull bool
22
- CheckArray bool
23
- Input *shimast.Expression
21
+ CheckNull bool
22
+ CheckArray bool
23
+ Input *shimast.Expression
24
24
  }
25
25
 
26
26
  type ExpressionFactory_CurryingProps struct {
27
- Function *shimast.Expression
28
- Arguments []*shimast.Expression
27
+ Function *shimast.Expression
28
+ Arguments []*shimast.Expression
29
29
  }
30
30
 
31
31
  type ExpressionFactory_TranspileProps struct {
32
- Transformer any
33
- Importer ExpressionFactory_Importer
34
- Script string
32
+ Transformer any
33
+ Importer ExpressionFactory_Importer
34
+ Script string
35
35
  }
36
36
 
37
37
  type ExpressionFactory_Importer interface {
38
- Internal(name string) *shimast.Node
39
- Instance(props ExpressionFactory_IInstance) *shimast.Node
40
- Namespace(props ExpressionFactory_INamespace) *shimast.Node
41
- Default(props ExpressionFactory_IDefault) *shimast.Node
38
+ Internal(name string) *shimast.Node
39
+ Instance(props ExpressionFactory_IInstance) *shimast.Node
40
+ Namespace(props ExpressionFactory_INamespace) *shimast.Node
41
+ Default(props ExpressionFactory_IDefault) *shimast.Node
42
42
  }
43
43
 
44
44
  type ExpressionFactory_IDefault struct {
45
- File string
46
- Name string
47
- Type bool
45
+ File string
46
+ Name string
47
+ Type bool
48
48
  }
49
49
 
50
50
  type ExpressionFactory_IInstance struct {
51
- File string
52
- Name string
53
- Alias *string
51
+ File string
52
+ Name string
53
+ Alias *string
54
54
  }
55
55
 
56
56
  type ExpressionFactory_INamespace struct {
57
- File string
58
- Name string
57
+ File string
58
+ Name string
59
59
  }
60
60
 
61
61
  type ExpressionFactory_GetEscapedTextProps struct {
62
- Printer any
63
- Input *shimast.Expression
62
+ Printer any
63
+ Input *shimast.Expression
64
64
  }
65
65
 
66
66
  var expressionFactory_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
67
67
 
68
68
  func (expressionFactoryNamespace) Number(value any) *shimast.Node {
69
- text, numeric := expressionFactory_number_text(value)
70
- if numeric < 0 {
71
- return expressionFactory_factory.NewPrefixUnaryExpression(
72
- shimast.KindMinusToken,
73
- expressionFactory_factory.NewNumericLiteral(expressionFactory_number_abs_text(numeric), shimast.TokenFlagsNone),
74
- )
75
- }
76
- return expressionFactory_factory.NewNumericLiteral(text, shimast.TokenFlagsNone)
69
+ text, numeric := expressionFactory_number_text(value)
70
+ if numeric < 0 {
71
+ return expressionFactory_factory.NewPrefixUnaryExpression(
72
+ shimast.KindMinusToken,
73
+ expressionFactory_factory.NewNumericLiteral(expressionFactory_number_abs_text(numeric), shimast.TokenFlagsNone),
74
+ )
75
+ }
76
+ return expressionFactory_factory.NewNumericLiteral(text, shimast.TokenFlagsNone)
77
77
  }
78
78
 
79
79
  func (expressionFactoryNamespace) Bigint(value any) *shimast.Node {
80
- return expressionFactory_factory.NewCallExpression(
81
- expressionFactory_factory.NewIdentifier("BigInt"),
82
- nil,
83
- nil,
84
- expressionFactory_factory.NewNodeList([]*shimast.Node{
85
- expressionFactory_factory.NewIdentifier(fmt.Sprint(value)),
86
- }),
87
- shimast.NodeFlagsNone,
88
- )
80
+ return expressionFactory_factory.NewCallExpression(
81
+ expressionFactory_factory.NewIdentifier("BigInt"),
82
+ nil,
83
+ nil,
84
+ expressionFactory_factory.NewNodeList([]*shimast.Node{
85
+ expressionFactory_factory.NewIdentifier(fmt.Sprint(value)),
86
+ }),
87
+ shimast.NodeFlagsNone,
88
+ )
89
89
  }
90
90
 
91
91
  func (expressionFactoryNamespace) IsRequired(input *shimast.Expression) *shimast.Node {
92
- return expressionFactory_factory.NewBinaryExpression(
93
- nil,
94
- expressionFactory_factory.NewIdentifier("undefined"),
95
- nil,
96
- expressionFactory_factory.NewToken(shimast.KindExclamationEqualsEqualsToken),
97
- input,
98
- )
92
+ return expressionFactory_factory.NewBinaryExpression(
93
+ nil,
94
+ expressionFactory_factory.NewIdentifier("undefined"),
95
+ nil,
96
+ expressionFactory_factory.NewToken(shimast.KindExclamationEqualsEqualsToken),
97
+ input,
98
+ )
99
99
  }
100
100
 
101
101
  func (expressionFactoryNamespace) IsArray(input *shimast.Expression) *shimast.Node {
102
- return expressionFactory_factory.NewCallExpression(
103
- expressionFactory_factory.NewIdentifier("Array.isArray"),
104
- nil,
105
- nil,
106
- expressionFactory_factory.NewNodeList([]*shimast.Node{input}),
107
- shimast.NodeFlagsNone,
108
- )
102
+ return expressionFactory_factory.NewCallExpression(
103
+ expressionFactory_factory.NewIdentifier("Array.isArray"),
104
+ nil,
105
+ nil,
106
+ expressionFactory_factory.NewNodeList([]*shimast.Node{input}),
107
+ shimast.NodeFlagsNone,
108
+ )
109
109
  }
110
110
 
111
111
  func (expressionFactoryNamespace) IsObject(props ExpressionFactory_IsObjectProps) *shimast.Node {
112
- conditions := []*shimast.Node{
113
- expressionFactory_factory.NewBinaryExpression(
114
- nil,
115
- expressionFactory_factory.NewStringLiteral("object", shimast.TokenFlagsNone),
116
- nil,
117
- expressionFactory_factory.NewToken(shimast.KindEqualsEqualsEqualsToken),
118
- expressionFactory_factory.NewTypeOfExpression(props.Input),
119
- ),
120
- }
121
- if props.CheckNull {
122
- conditions = append(conditions, expressionFactory_factory.NewBinaryExpression(
123
- nil,
124
- expressionFactory_factory.NewKeywordExpression(shimast.KindNullKeyword),
125
- nil,
126
- expressionFactory_factory.NewToken(shimast.KindExclamationEqualsEqualsToken),
127
- props.Input,
128
- ))
129
- }
130
- if props.CheckArray {
131
- conditions = append(conditions, expressionFactory_factory.NewBinaryExpression(
132
- nil,
133
- expressionFactory_factory.NewKeywordExpression(shimast.KindFalseKeyword),
134
- nil,
135
- expressionFactory_factory.NewToken(shimast.KindEqualsEqualsEqualsToken),
136
- ExpressionFactory.IsArray(props.Input),
137
- ))
138
- }
139
- if len(conditions) == 1 {
140
- return conditions[0]
141
- }
142
- output := conditions[0]
143
- for _, condition := range conditions[1:] {
144
- output = expressionFactory_factory.NewBinaryExpression(
145
- nil,
146
- output,
147
- nil,
148
- expressionFactory_factory.NewToken(shimast.KindAmpersandAmpersandToken),
149
- condition,
150
- )
151
- }
152
- return output
112
+ conditions := []*shimast.Node{
113
+ expressionFactory_factory.NewBinaryExpression(
114
+ nil,
115
+ expressionFactory_factory.NewStringLiteral("object", shimast.TokenFlagsNone),
116
+ nil,
117
+ expressionFactory_factory.NewToken(shimast.KindEqualsEqualsEqualsToken),
118
+ expressionFactory_factory.NewTypeOfExpression(props.Input),
119
+ ),
120
+ }
121
+ if props.CheckNull {
122
+ conditions = append(conditions, expressionFactory_factory.NewBinaryExpression(
123
+ nil,
124
+ expressionFactory_factory.NewKeywordExpression(shimast.KindNullKeyword),
125
+ nil,
126
+ expressionFactory_factory.NewToken(shimast.KindExclamationEqualsEqualsToken),
127
+ props.Input,
128
+ ))
129
+ }
130
+ if props.CheckArray {
131
+ conditions = append(conditions, expressionFactory_factory.NewBinaryExpression(
132
+ nil,
133
+ expressionFactory_factory.NewKeywordExpression(shimast.KindFalseKeyword),
134
+ nil,
135
+ expressionFactory_factory.NewToken(shimast.KindEqualsEqualsEqualsToken),
136
+ ExpressionFactory.IsArray(props.Input),
137
+ ))
138
+ }
139
+ if len(conditions) == 1 {
140
+ return conditions[0]
141
+ }
142
+ output := conditions[0]
143
+ for _, condition := range conditions[1:] {
144
+ output = expressionFactory_factory.NewBinaryExpression(
145
+ nil,
146
+ output,
147
+ nil,
148
+ expressionFactory_factory.NewToken(shimast.KindAmpersandAmpersandToken),
149
+ condition,
150
+ )
151
+ }
152
+ return output
153
153
  }
154
154
 
155
155
  func (expressionFactoryNamespace) IsInstanceOf(t string, input *shimast.Expression) *shimast.Node {
156
- return expressionFactory_factory.NewBinaryExpression(
157
- nil,
158
- input,
159
- nil,
160
- expressionFactory_factory.NewToken(shimast.KindInstanceOfKeyword),
161
- expressionFactory_factory.NewIdentifier(t),
162
- )
156
+ return expressionFactory_factory.NewBinaryExpression(
157
+ nil,
158
+ input,
159
+ nil,
160
+ expressionFactory_factory.NewToken(shimast.KindInstanceOfKeyword),
161
+ expressionFactory_factory.NewIdentifier(t),
162
+ )
163
163
  }
164
164
 
165
165
  func (expressionFactoryNamespace) Coalesce(x *shimast.Expression, y *shimast.Expression) *shimast.Node {
166
- return expressionFactory_factory.NewBinaryExpression(
167
- nil,
168
- x,
169
- nil,
170
- expressionFactory_factory.NewToken(shimast.KindQuestionQuestionToken),
171
- y,
172
- )
166
+ return expressionFactory_factory.NewBinaryExpression(
167
+ nil,
168
+ x,
169
+ nil,
170
+ expressionFactory_factory.NewToken(shimast.KindQuestionQuestionToken),
171
+ y,
172
+ )
173
173
  }
174
174
 
175
175
  func (expressionFactoryNamespace) Currying(props ExpressionFactory_CurryingProps) *shimast.Node {
176
- if len(props.Arguments) == 0 {
177
- return expressionFactory_factory.NewCallExpression(props.Function, nil, nil, nil, shimast.NodeFlagsNone)
178
- }
179
- prev := expressionFactory_factory.NewCallExpression(
180
- props.Function,
181
- nil,
182
- nil,
183
- expressionFactory_factory.NewNodeList([]*shimast.Node{props.Arguments[0]}),
184
- shimast.NodeFlagsNone,
185
- )
186
- for _, param := range props.Arguments[1:] {
187
- prev = expressionFactory_factory.NewCallExpression(
188
- prev,
189
- nil,
190
- nil,
191
- expressionFactory_factory.NewNodeList([]*shimast.Node{param}),
192
- shimast.NodeFlagsNone,
193
- )
194
- }
195
- return prev
176
+ if len(props.Arguments) == 0 {
177
+ return expressionFactory_factory.NewCallExpression(props.Function, nil, nil, nil, shimast.NodeFlagsNone)
178
+ }
179
+ prev := expressionFactory_factory.NewCallExpression(
180
+ props.Function,
181
+ nil,
182
+ nil,
183
+ expressionFactory_factory.NewNodeList([]*shimast.Node{props.Arguments[0]}),
184
+ shimast.NodeFlagsNone,
185
+ )
186
+ for _, param := range props.Arguments[1:] {
187
+ prev = expressionFactory_factory.NewCallExpression(
188
+ prev,
189
+ nil,
190
+ nil,
191
+ expressionFactory_factory.NewNodeList([]*shimast.Node{param}),
192
+ shimast.NodeFlagsNone,
193
+ )
194
+ }
195
+ return prev
196
196
  }
197
197
 
198
198
  func (expressionFactoryNamespace) SelfCall(body *shimast.ConciseBody, typeNode ...*shimast.TypeNode) *shimast.Node {
199
- if body != nil && body.Kind == shimast.KindCallExpression {
200
- return body
201
- }
202
- var output *shimast.TypeNode
203
- if len(typeNode) != 0 {
204
- output = typeNode[0]
205
- }
206
- arrow := expressionFactory_factory.NewArrowFunction(
207
- nil,
208
- nil,
209
- expressionFactory_factory.NewNodeList(nil),
210
- output,
211
- nil,
212
- expressionFactory_factory.NewToken(shimast.KindEqualsGreaterThanToken),
213
- body,
214
- )
215
- return expressionFactory_factory.NewCallExpression(
216
- expressionFactory_factory.NewParenthesizedExpression(arrow),
217
- nil,
218
- nil,
219
- nil,
220
- shimast.NodeFlagsNone,
221
- )
199
+ if body != nil && body.Kind == shimast.KindCallExpression {
200
+ return body
201
+ }
202
+ var output *shimast.TypeNode
203
+ if len(typeNode) != 0 {
204
+ output = typeNode[0]
205
+ }
206
+ arrow := expressionFactory_factory.NewArrowFunction(
207
+ nil,
208
+ nil,
209
+ expressionFactory_factory.NewNodeList(nil),
210
+ output,
211
+ nil,
212
+ expressionFactory_factory.NewToken(shimast.KindEqualsGreaterThanToken),
213
+ body,
214
+ )
215
+ return expressionFactory_factory.NewCallExpression(
216
+ expressionFactory_factory.NewParenthesizedExpression(arrow),
217
+ nil,
218
+ nil,
219
+ nil,
220
+ shimast.NodeFlagsNone,
221
+ )
222
222
  }
223
223
 
224
224
  func (expressionFactoryNamespace) GetEscapedText(props ExpressionFactory_GetEscapedTextProps) string {
225
- if props.Input == nil {
226
- return ""
227
- }
228
- if props.Input.Kind == shimast.KindIdentifier || shimast.IsStringLiteral(props.Input) {
229
- return props.Input.Text()
230
- }
231
- return IdentifierFactory.GetName(props.Input)
225
+ if props.Input == nil {
226
+ return ""
227
+ }
228
+ if props.Input.Kind == shimast.KindIdentifier || shimast.IsStringLiteral(props.Input) {
229
+ return props.Input.Text()
230
+ }
231
+ return IdentifierFactory.GetName(props.Input)
232
232
  }
233
233
 
234
234
  func (expressionFactoryNamespace) Transpile(props ExpressionFactory_TranspileProps) func(input *shimast.Expression) *shimast.Node {
235
- file := shimparser.ParseSourceFile(
236
- shimast.SourceFileParseOptions{FileName: filepath.Join(os.TempDir(), expressionFactory_random_format_uuid()+".ts")},
237
- props.Script,
238
- shimcore.ScriptKindTS,
239
- )
240
- if file == nil || file.Statements == nil || len(file.Statements.Nodes) == 0 {
241
- panic("Error on ExpressionFactory.transpile(): no statement exists.")
242
- }
243
- statement := file.Statements.Nodes[0]
244
- if statement.Kind != shimast.KindExpressionStatement {
245
- panic("Error on ExpressionFactory.transpile(): statement is not an expression statement.")
246
- }
247
- expression := expressionFactory_factory.DeepCloneNode(statement.AsExpressionStatement().Expression)
248
- return func(input *shimast.Expression) *shimast.Node {
249
- var visitor *shimast.NodeVisitor
250
- visitor = shimast.NewNodeVisitor(func(node *shimast.Node) *shimast.Node {
251
- if node == nil {
252
- return nil
253
- }
254
- if node.Kind == shimast.KindIdentifier && node.Text() == "$input" {
255
- return input
256
- }
257
- if props.Importer != nil && node.Kind == shimast.KindCallExpression {
258
- if imported := expressionFactory_import(props.Importer, node); imported != nil {
259
- return imported
260
- }
261
- }
262
- return node.VisitEachChild(visitor)
263
- }, expressionFactory_factory, shimast.NodeVisitorHooks{})
264
- return visitor.VisitNode(expression)
265
- }
235
+ file := shimparser.ParseSourceFile(
236
+ shimast.SourceFileParseOptions{FileName: filepath.Join(os.TempDir(), expressionFactory_random_format_uuid()+".ts")},
237
+ props.Script,
238
+ shimcore.ScriptKindTS,
239
+ )
240
+ if file == nil || file.Statements == nil || len(file.Statements.Nodes) == 0 {
241
+ panic("Error on ExpressionFactory.transpile(): no statement exists.")
242
+ }
243
+ statement := file.Statements.Nodes[0]
244
+ if statement.Kind != shimast.KindExpressionStatement {
245
+ panic("Error on ExpressionFactory.transpile(): statement is not an expression statement.")
246
+ }
247
+ expression := expressionFactory_factory.DeepCloneNode(statement.AsExpressionStatement().Expression)
248
+ return func(input *shimast.Expression) *shimast.Node {
249
+ var visitor *shimast.NodeVisitor
250
+ visitor = shimast.NewNodeVisitor(func(node *shimast.Node) *shimast.Node {
251
+ if node == nil {
252
+ return nil
253
+ }
254
+ if node.Kind == shimast.KindIdentifier && node.Text() == "$input" {
255
+ return input
256
+ }
257
+ if props.Importer != nil && node.Kind == shimast.KindCallExpression {
258
+ if imported := expressionFactory_import(props.Importer, node); imported != nil {
259
+ return imported
260
+ }
261
+ }
262
+ return node.VisitEachChild(visitor)
263
+ }, expressionFactory_factory, shimast.NodeVisitorHooks{})
264
+ return visitor.VisitNode(expression)
265
+ }
266
266
  }
267
267
 
268
268
  func expressionFactory_import(importer ExpressionFactory_Importer, node *shimast.Node) *shimast.Node {
269
- call := node.AsCallExpression()
270
- if call == nil || call.Expression == nil || call.Expression.Kind != shimast.KindIdentifier {
271
- return nil
272
- }
273
- name := call.Expression.Text()
274
- args := []*shimast.Node{}
275
- if call.Arguments != nil {
276
- args = call.Arguments.Nodes
277
- }
278
- if name == "$importInternal" && len(args) == 1 && shimast.IsStringLiteral(args[0]) {
279
- return importer.Internal(args[0].Text())
280
- }
281
- if name == "$importInstance" && len(args) == 2 && shimast.IsStringLiteral(args[0]) && shimast.IsStringLiteral(args[1]) {
282
- return importer.Instance(ExpressionFactory_IInstance{
283
- Name: args[0].Text(),
284
- File: args[1].Text(),
285
- })
286
- }
287
- if name == "$importNamespace" && len(args) == 2 && shimast.IsStringLiteral(args[0]) && shimast.IsStringLiteral(args[1]) {
288
- return importer.Namespace(ExpressionFactory_INamespace{
289
- Name: args[0].Text(),
290
- File: args[1].Text(),
291
- })
292
- }
293
- if name == "$importDefault" && len(args) == 3 && shimast.IsStringLiteral(args[0]) && shimast.IsStringLiteral(args[1]) {
294
- return importer.Default(ExpressionFactory_IDefault{
295
- Name: args[0].Text(),
296
- File: args[1].Text(),
297
- Type: false,
298
- })
299
- }
300
- return nil
269
+ call := node.AsCallExpression()
270
+ if call == nil || call.Expression == nil || call.Expression.Kind != shimast.KindIdentifier {
271
+ return nil
272
+ }
273
+ name := call.Expression.Text()
274
+ args := []*shimast.Node{}
275
+ if call.Arguments != nil {
276
+ args = call.Arguments.Nodes
277
+ }
278
+ if name == "$importInternal" && len(args) == 1 && shimast.IsStringLiteral(args[0]) {
279
+ return importer.Internal(args[0].Text())
280
+ }
281
+ if name == "$importInstance" && len(args) == 2 && shimast.IsStringLiteral(args[0]) && shimast.IsStringLiteral(args[1]) {
282
+ return importer.Instance(ExpressionFactory_IInstance{
283
+ Name: args[0].Text(),
284
+ File: args[1].Text(),
285
+ })
286
+ }
287
+ if name == "$importNamespace" && len(args) == 2 && shimast.IsStringLiteral(args[0]) && shimast.IsStringLiteral(args[1]) {
288
+ return importer.Namespace(ExpressionFactory_INamespace{
289
+ Name: args[0].Text(),
290
+ File: args[1].Text(),
291
+ })
292
+ }
293
+ if name == "$importDefault" && len(args) == 3 && shimast.IsStringLiteral(args[0]) && shimast.IsStringLiteral(args[1]) {
294
+ return importer.Default(ExpressionFactory_IDefault{
295
+ Name: args[0].Text(),
296
+ File: args[1].Text(),
297
+ Type: false,
298
+ })
299
+ }
300
+ return nil
301
301
  }
302
302
 
303
303
  func expressionFactory_number_text(value any) (string, float64) {
304
- switch v := value.(type) {
305
- case int:
306
- return fmt.Sprint(v), float64(v)
307
- case int64:
308
- return fmt.Sprint(v), float64(v)
309
- case float32:
310
- return fmt.Sprint(v), float64(v)
311
- case float64:
312
- return fmt.Sprint(v), v
313
- default:
314
- text := fmt.Sprint(value)
315
- var f float64
316
- fmt.Sscan(text, &f)
317
- return text, f
318
- }
304
+ switch v := value.(type) {
305
+ case int:
306
+ return fmt.Sprint(v), float64(v)
307
+ case int64:
308
+ return fmt.Sprint(v), float64(v)
309
+ case float32:
310
+ return fmt.Sprint(v), float64(v)
311
+ case float64:
312
+ return fmt.Sprint(v), v
313
+ default:
314
+ text := fmt.Sprint(value)
315
+ var f float64
316
+ fmt.Sscan(text, &f)
317
+ return text, f
318
+ }
319
319
  }
320
320
 
321
321
  func expressionFactory_number_abs_text(value float64) string {
322
- text := fmt.Sprint(math.Abs(value))
323
- return strings.TrimSuffix(text, ".0")
322
+ text := fmt.Sprint(math.Abs(value))
323
+ return strings.TrimSuffix(text, ".0")
324
324
  }
325
325
 
326
326
  func expressionFactory_random_format_uuid() string {
327
- bytes := make([]byte, 16)
328
- if _, err := rand.Read(bytes); err != nil {
329
- return "00000000-0000-4000-8000-000000000000"
330
- }
331
- bytes[6] = (bytes[6] & 0x0f) | 0x40
332
- bytes[8] = (bytes[8] & 0x3f) | 0x80
333
- return fmt.Sprintf("%08x-%04x-%04x-%04x-%012x", bytes[0:4], bytes[4:6], bytes[6:8], bytes[8:10], bytes[10:16])
327
+ bytes := make([]byte, 16)
328
+ if _, err := rand.Read(bytes); err != nil {
329
+ return "00000000-0000-4000-8000-000000000000"
330
+ }
331
+ bytes[6] = (bytes[6] & 0x0f) | 0x40
332
+ bytes[8] = (bytes[8] & 0x3f) | 0x80
333
+ return fmt.Sprintf("%08x-%04x-%04x-%04x-%012x", bytes[0:4], bytes[4:6], bytes[6:8], bytes[8:10], bytes[10:16])
334
334
  }