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 http
2
2
 
3
3
  import (
4
- "fmt"
4
+ "fmt"
5
5
 
6
- shimast "github.com/microsoft/typescript-go/shim/ast"
7
- shimchecker "github.com/microsoft/typescript-go/shim/checker"
8
- nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
9
- nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
10
- nativeprogrammers "github.com/samchon/typia/packages/typia/native/core/programmers"
11
- nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
12
- nativeinternal "github.com/samchon/typia/packages/typia/native/core/programmers/internal"
13
- schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
6
+ shimast "github.com/microsoft/typescript-go/shim/ast"
7
+ shimchecker "github.com/microsoft/typescript-go/shim/checker"
8
+ nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
9
+ nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
10
+ nativeprogrammers "github.com/samchon/typia/packages/typia/native/core/programmers"
11
+ nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
12
+ nativeinternal "github.com/samchon/typia/packages/typia/native/core/programmers/internal"
13
+ schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
14
14
  )
15
15
 
16
16
  type httpFormDataProgrammerNamespace struct{}
@@ -18,397 +18,397 @@ type httpFormDataProgrammerNamespace struct{}
18
18
  var HttpFormDataProgrammer = httpFormDataProgrammerNamespace{}
19
19
 
20
20
  type HttpFormDataProgrammer_DecomposeProps struct {
21
- Context nativecontext.ITypiaContext
22
- Functor *nativehelpers.FunctionProgrammer
23
- Type *shimchecker.Type
24
- Name *string
21
+ Context nativecontext.ITypiaContext
22
+ Functor *nativehelpers.FunctionProgrammer
23
+ Type *shimchecker.Type
24
+ Name *string
25
25
  }
26
26
 
27
27
  var httpFormDataProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
28
28
 
29
29
  func (httpFormDataProgrammerNamespace) Decompose(props HttpFormDataProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
30
- collection := schemametadata.NewMetadataCollection()
31
- result := nativefactories.MetadataFactory.Analyze(nativefactories.MetadataFactory_IProps{
32
- Checker: props.Context.Checker,
33
- Transformer: props.Context.Transformer,
34
- Options: nativefactories.MetadataFactory_IOptions{
35
- Escape: false,
36
- Constant: true,
37
- Absorb: true,
38
- Validate: HttpFormDataProgrammer.Validate,
39
- },
40
- Components: collection,
41
- Type: props.Type,
42
- })
43
- if result.Success == false {
44
- panic(nativecontext.TransformerError_from(struct {
45
- Code string
46
- Errors []nativecontext.TransformerError_MetadataFactory_IError
47
- }{
48
- Code: props.Functor.Method,
49
- Errors: httpParameterProgrammer_errors(result.Errors),
50
- }))
51
- }
30
+ collection := schemametadata.NewMetadataCollection()
31
+ result := nativefactories.MetadataFactory.Analyze(nativefactories.MetadataFactory_IProps{
32
+ Checker: props.Context.Checker,
33
+ Transformer: props.Context.Transformer,
34
+ Options: nativefactories.MetadataFactory_IOptions{
35
+ Escape: false,
36
+ Constant: true,
37
+ Absorb: true,
38
+ Validate: HttpFormDataProgrammer.Validate,
39
+ },
40
+ Components: collection,
41
+ Type: props.Type,
42
+ })
43
+ if result.Success == false {
44
+ panic(nativecontext.TransformerError_from(struct {
45
+ Code string
46
+ Errors []nativecontext.TransformerError_MetadataFactory_IError
47
+ }{
48
+ Code: props.Functor.Method,
49
+ Errors: httpParameterProgrammer_errors(result.Errors),
50
+ }))
51
+ }
52
52
 
53
- object := result.Data.Objects[0].Type
54
- statements := httpFormDataProgrammer_decode_object(struct {
55
- Context nativecontext.ITypiaContext
56
- Object *schemametadata.MetadataObjectType
57
- }{
58
- Context: props.Context,
59
- Object: object,
60
- })
61
- return nativeinternal.FeatureProgrammer_IDecomposed{
62
- Functions: map[string]*shimast.Node{},
63
- Statements: []*shimast.Node{},
64
- Arrow: httpFormDataProgrammer_factory.NewArrowFunction(
65
- nil,
66
- nil,
67
- httpFormDataProgrammer_factory.NewNodeList([]*shimast.Node{
68
- nativefactories.IdentifierFactory.Parameter(
69
- "input",
70
- httpFormDataProgrammer_factory.NewTypeReferenceNode(httpFormDataProgrammer_factory.NewIdentifier("FormData"), nil),
71
- nil,
72
- ),
73
- }),
74
- httpProgrammer_import_type(props.Context, nativeprogrammers.ImportProgrammer_TypeProps{
75
- File: "typia",
76
- Name: "Resolved",
77
- Arguments: []*shimast.TypeNode{
78
- httpProgrammer_typeReference(props.Context, props.Type, props.Name),
79
- },
80
- }),
81
- nil,
82
- httpFormDataProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
83
- httpFormDataProgrammer_factory.NewBlock(httpFormDataProgrammer_factory.NewNodeList(statements), true),
84
- ),
85
- }
53
+ object := result.Data.Objects[0].Type
54
+ statements := httpFormDataProgrammer_decode_object(struct {
55
+ Context nativecontext.ITypiaContext
56
+ Object *schemametadata.MetadataObjectType
57
+ }{
58
+ Context: props.Context,
59
+ Object: object,
60
+ })
61
+ return nativeinternal.FeatureProgrammer_IDecomposed{
62
+ Functions: map[string]*shimast.Node{},
63
+ Statements: []*shimast.Node{},
64
+ Arrow: httpFormDataProgrammer_factory.NewArrowFunction(
65
+ nil,
66
+ nil,
67
+ httpFormDataProgrammer_factory.NewNodeList([]*shimast.Node{
68
+ nativefactories.IdentifierFactory.Parameter(
69
+ "input",
70
+ httpFormDataProgrammer_factory.NewTypeReferenceNode(httpFormDataProgrammer_factory.NewIdentifier("FormData"), nil),
71
+ nil,
72
+ ),
73
+ }),
74
+ httpProgrammer_import_type(props.Context, nativeprogrammers.ImportProgrammer_TypeProps{
75
+ File: "typia",
76
+ Name: "Resolved",
77
+ Arguments: []*shimast.TypeNode{
78
+ httpProgrammer_typeReference(props.Context, props.Type, props.Name),
79
+ },
80
+ }),
81
+ nil,
82
+ httpFormDataProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
83
+ httpFormDataProgrammer_factory.NewBlock(httpFormDataProgrammer_factory.NewNodeList(statements), true),
84
+ ),
85
+ }
86
86
  }
87
87
 
88
88
  func (httpFormDataProgrammerNamespace) Write(props nativecontext.IProgrammerProps) *shimast.Node {
89
- functor := nativehelpers.NewFunctionProgrammer(httpProgrammer_method_text(props.Modulo))
90
- result := HttpFormDataProgrammer.Decompose(HttpFormDataProgrammer_DecomposeProps{
91
- Context: props.Context,
92
- Functor: functor,
93
- Type: props.Type,
94
- Name: props.Name,
95
- })
96
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
97
- Modulo: props.Modulo,
98
- Functor: functor,
99
- Result: result,
100
- })
89
+ functor := nativehelpers.NewFunctionProgrammer(httpProgrammer_method_text(props.Modulo))
90
+ result := HttpFormDataProgrammer.Decompose(HttpFormDataProgrammer_DecomposeProps{
91
+ Context: props.Context,
92
+ Functor: functor,
93
+ Type: props.Type,
94
+ Name: props.Name,
95
+ })
96
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
97
+ Modulo: props.Modulo,
98
+ Functor: functor,
99
+ Result: result,
100
+ })
101
101
  }
102
102
 
103
103
  func (httpFormDataProgrammerNamespace) Validate(props struct {
104
- Metadata *schemametadata.MetadataSchema
105
- Explore nativefactories.MetadataFactory_IExplore
106
- Top *schemametadata.MetadataSchema
104
+ Metadata *schemametadata.MetadataSchema
105
+ Explore nativefactories.MetadataFactory_IExplore
106
+ Top *schemametadata.MetadataSchema
107
107
  }) []string {
108
- errors := []string{}
109
- insert := func(msg string) {
110
- errors = append(errors, msg)
111
- }
108
+ errors := []string{}
109
+ insert := func(msg string) {
110
+ errors = append(errors, msg)
111
+ }
112
112
 
113
- if props.Explore.Top == true {
114
- if len(props.Metadata.Objects) != 1 || props.Metadata.Bucket() != 1 {
115
- insert("only one object type is allowed.")
116
- }
117
- if props.Metadata.Nullable == true {
118
- insert("formdata parameters cannot be null.")
119
- }
120
- if props.Metadata.IsRequired() == false {
121
- insert("formdata parameters cannot be undefined.")
122
- }
123
- } else if _, ok := props.Explore.Nested.(*schemametadata.MetadataArrayType); props.Explore.Nested != nil && ok {
124
- atomics := nativehelpers.HttpMetadataUtil.Atomics(props.Metadata)
125
- expected := len(props.Metadata.Atomics) + len(props.Metadata.Templates)
126
- for _, c := range props.Metadata.Constants {
127
- expected += len(c.Values)
128
- }
129
- for _, native := range props.Metadata.Natives {
130
- if native.Name == "Blob" || native.Name == "File" {
131
- expected++
132
- }
133
- }
134
- if len(atomics) > 1 {
135
- insert("union type is not allowed in array.")
136
- }
137
- if props.Metadata.Size() != expected {
138
- insert("only atomic, constant or blob (file) types are allowed in array.")
139
- }
140
- } else if props.Explore.Object != nil && props.Explore.Property != nil {
141
- if _, ok := props.Explore.Property.(string); ok == false {
142
- insert("dynamic property is not allowed.")
143
- }
144
- if len(props.Metadata.Tuples) != 0 {
145
- insert("tuple type is not allowed.")
146
- }
147
- if nativehelpers.HttpMetadataUtil.IsUnion(props.Metadata) {
148
- insert("union type is not allowed.")
149
- }
150
- foreignNatives := 0
151
- for _, native := range props.Metadata.Natives {
152
- if native.Name != "Blob" && native.Name != "File" {
153
- foreignNatives++
154
- }
155
- }
156
- if len(props.Metadata.Objects) != 0 ||
157
- len(props.Metadata.Sets) != 0 ||
158
- len(props.Metadata.Maps) != 0 ||
159
- foreignNatives != 0 {
160
- insert("nested object type is not allowed.")
161
- }
162
- }
163
- return errors
113
+ if props.Explore.Top == true {
114
+ if len(props.Metadata.Objects) != 1 || props.Metadata.Bucket() != 1 {
115
+ insert("only one object type is allowed.")
116
+ }
117
+ if props.Metadata.Nullable == true {
118
+ insert("formdata parameters cannot be null.")
119
+ }
120
+ if props.Metadata.IsRequired() == false {
121
+ insert("formdata parameters cannot be undefined.")
122
+ }
123
+ } else if _, ok := props.Explore.Nested.(*schemametadata.MetadataArrayType); props.Explore.Nested != nil && ok {
124
+ atomics := nativehelpers.HttpMetadataUtil.Atomics(props.Metadata)
125
+ expected := len(props.Metadata.Atomics) + len(props.Metadata.Templates)
126
+ for _, c := range props.Metadata.Constants {
127
+ expected += len(c.Values)
128
+ }
129
+ for _, native := range props.Metadata.Natives {
130
+ if native.Name == "Blob" || native.Name == "File" {
131
+ expected++
132
+ }
133
+ }
134
+ if len(atomics) > 1 {
135
+ insert("union type is not allowed in array.")
136
+ }
137
+ if props.Metadata.Size() != expected {
138
+ insert("only atomic, constant or blob (file) types are allowed in array.")
139
+ }
140
+ } else if props.Explore.Object != nil && props.Explore.Property != nil {
141
+ if _, ok := props.Explore.Property.(string); ok == false {
142
+ insert("dynamic property is not allowed.")
143
+ }
144
+ if len(props.Metadata.Tuples) != 0 {
145
+ insert("tuple type is not allowed.")
146
+ }
147
+ if nativehelpers.HttpMetadataUtil.IsUnion(props.Metadata) {
148
+ insert("union type is not allowed.")
149
+ }
150
+ foreignNatives := 0
151
+ for _, native := range props.Metadata.Natives {
152
+ if native.Name != "Blob" && native.Name != "File" {
153
+ foreignNatives++
154
+ }
155
+ }
156
+ if len(props.Metadata.Objects) != 0 ||
157
+ len(props.Metadata.Sets) != 0 ||
158
+ len(props.Metadata.Maps) != 0 ||
159
+ foreignNatives != 0 {
160
+ insert("nested object type is not allowed.")
161
+ }
162
+ }
163
+ return errors
164
164
  }
165
165
 
166
166
  func httpFormDataProgrammer_decode_object(props struct {
167
- Context nativecontext.ITypiaContext
168
- Object *schemametadata.MetadataObjectType
167
+ Context nativecontext.ITypiaContext
168
+ Object *schemametadata.MetadataObjectType
169
169
  }) []*shimast.Node {
170
- output := httpFormDataProgrammer_factory.NewIdentifier("output")
171
- properties := make([]*shimast.Node, 0, len(props.Object.Properties))
172
- for _, p := range props.Object.Properties {
173
- properties = append(properties, httpFormDataProgrammer_decode_regular_property(struct {
174
- Context nativecontext.ITypiaContext
175
- Property *schemametadata.MetadataProperty
176
- }{
177
- Context: props.Context,
178
- Property: p,
179
- }))
180
- }
181
- return []*shimast.Node{
182
- nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
183
- Name: "output",
184
- Value: httpFormDataProgrammer_factory.NewObjectLiteralExpression(
185
- httpFormDataProgrammer_factory.NewNodeList(properties),
186
- true,
187
- ),
188
- }),
189
- httpFormDataProgrammer_factory.NewReturnStatement(
190
- httpFormDataProgrammer_factory.NewAsExpression(output, nativefactories.TypeFactory.Keyword("any")),
191
- ),
192
- }
170
+ output := httpFormDataProgrammer_factory.NewIdentifier("output")
171
+ properties := make([]*shimast.Node, 0, len(props.Object.Properties))
172
+ for _, p := range props.Object.Properties {
173
+ properties = append(properties, httpFormDataProgrammer_decode_regular_property(struct {
174
+ Context nativecontext.ITypiaContext
175
+ Property *schemametadata.MetadataProperty
176
+ }{
177
+ Context: props.Context,
178
+ Property: p,
179
+ }))
180
+ }
181
+ return []*shimast.Node{
182
+ nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
183
+ Name: "output",
184
+ Value: httpFormDataProgrammer_factory.NewObjectLiteralExpression(
185
+ httpFormDataProgrammer_factory.NewNodeList(properties),
186
+ true,
187
+ ),
188
+ }),
189
+ httpFormDataProgrammer_factory.NewReturnStatement(
190
+ httpFormDataProgrammer_factory.NewAsExpression(output, nativefactories.TypeFactory.Keyword("any")),
191
+ ),
192
+ }
193
193
  }
194
194
 
195
195
  func httpFormDataProgrammer_decode_regular_property(props struct {
196
- Context nativecontext.ITypiaContext
197
- Property *schemametadata.MetadataProperty
196
+ Context nativecontext.ITypiaContext
197
+ Property *schemametadata.MetadataProperty
198
198
  }) *shimast.Node {
199
- key := httpProgrammer_property_key(props.Property)
200
- value := props.Property.Value
201
- typ, isArray := httpProgrammer_decode_type(value, true)
202
- input := httpFormDataProgrammer_factory.NewCallExpression(
203
- nativefactories.IdentifierFactory.Access(httpFormDataProgrammer_factory.NewIdentifier("input"), "get"),
204
- nil,
205
- nil,
206
- httpFormDataProgrammer_factory.NewNodeList([]*shimast.Node{
207
- httpFormDataProgrammer_factory.NewStringLiteral(key, shimast.TokenFlagsNone),
208
- }),
209
- shimast.NodeFlagsNone,
210
- )
211
- if isArray {
212
- input = httpFormDataProgrammer_factory.NewCallExpression(
213
- nativefactories.IdentifierFactory.Access(
214
- httpFormDataProgrammer_factory.NewCallExpression(
215
- nativefactories.IdentifierFactory.Access(httpFormDataProgrammer_factory.NewIdentifier("input"), "getAll"),
216
- nil,
217
- nil,
218
- httpFormDataProgrammer_factory.NewNodeList([]*shimast.Node{
219
- httpFormDataProgrammer_factory.NewStringLiteral(key, shimast.TokenFlagsNone),
220
- }),
221
- shimast.NodeFlagsNone,
222
- ),
223
- "map",
224
- ),
225
- nil,
226
- nil,
227
- httpFormDataProgrammer_factory.NewNodeList([]*shimast.Node{
228
- httpFormDataProgrammer_factory.NewArrowFunction(
229
- nil,
230
- nil,
231
- httpFormDataProgrammer_factory.NewNodeList([]*shimast.Node{
232
- nativefactories.IdentifierFactory.Parameter("elem", nil, nil),
233
- }),
234
- nil,
235
- nil,
236
- httpFormDataProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
237
- httpFormDataProgrammer_decode_value(struct {
238
- Context nativecontext.ITypiaContext
239
- Type string
240
- Coalesce bool
241
- Input *shimast.Node
242
- }{
243
- Context: props.Context,
244
- Type: typ,
245
- Coalesce: false,
246
- Input: httpFormDataProgrammer_factory.NewIdentifier("elem"),
247
- }),
248
- ),
249
- }),
250
- shimast.NodeFlagsNone,
251
- )
252
- input = httpFormDataProgrammer_decode_array(struct {
253
- Context nativecontext.ITypiaContext
254
- Metadata *schemametadata.MetadataSchema
255
- Input *shimast.Node
256
- }{
257
- Context: props.Context,
258
- Metadata: value,
259
- Input: input,
260
- })
261
- } else {
262
- input = httpFormDataProgrammer_decode_value(struct {
263
- Context nativecontext.ITypiaContext
264
- Type string
265
- Coalesce bool
266
- Input *shimast.Node
267
- }{
268
- Context: props.Context,
269
- Type: typ,
270
- Coalesce: value.Nullable == false && value.IsRequired() == false,
271
- Input: input,
272
- })
273
- }
274
- return httpFormDataProgrammer_factory.NewPropertyAssignment(
275
- nil,
276
- nativefactories.IdentifierFactory.Identifier(key),
277
- nil,
278
- nil,
279
- input,
280
- )
199
+ key := httpProgrammer_property_key(props.Property)
200
+ value := props.Property.Value
201
+ typ, isArray := httpProgrammer_decode_type(value, true)
202
+ input := httpFormDataProgrammer_factory.NewCallExpression(
203
+ nativefactories.IdentifierFactory.Access(httpFormDataProgrammer_factory.NewIdentifier("input"), "get"),
204
+ nil,
205
+ nil,
206
+ httpFormDataProgrammer_factory.NewNodeList([]*shimast.Node{
207
+ httpFormDataProgrammer_factory.NewStringLiteral(key, shimast.TokenFlagsNone),
208
+ }),
209
+ shimast.NodeFlagsNone,
210
+ )
211
+ if isArray {
212
+ input = httpFormDataProgrammer_factory.NewCallExpression(
213
+ nativefactories.IdentifierFactory.Access(
214
+ httpFormDataProgrammer_factory.NewCallExpression(
215
+ nativefactories.IdentifierFactory.Access(httpFormDataProgrammer_factory.NewIdentifier("input"), "getAll"),
216
+ nil,
217
+ nil,
218
+ httpFormDataProgrammer_factory.NewNodeList([]*shimast.Node{
219
+ httpFormDataProgrammer_factory.NewStringLiteral(key, shimast.TokenFlagsNone),
220
+ }),
221
+ shimast.NodeFlagsNone,
222
+ ),
223
+ "map",
224
+ ),
225
+ nil,
226
+ nil,
227
+ httpFormDataProgrammer_factory.NewNodeList([]*shimast.Node{
228
+ httpFormDataProgrammer_factory.NewArrowFunction(
229
+ nil,
230
+ nil,
231
+ httpFormDataProgrammer_factory.NewNodeList([]*shimast.Node{
232
+ nativefactories.IdentifierFactory.Parameter("elem", nil, nil),
233
+ }),
234
+ nil,
235
+ nil,
236
+ httpFormDataProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
237
+ httpFormDataProgrammer_decode_value(struct {
238
+ Context nativecontext.ITypiaContext
239
+ Type string
240
+ Coalesce bool
241
+ Input *shimast.Node
242
+ }{
243
+ Context: props.Context,
244
+ Type: typ,
245
+ Coalesce: false,
246
+ Input: httpFormDataProgrammer_factory.NewIdentifier("elem"),
247
+ }),
248
+ ),
249
+ }),
250
+ shimast.NodeFlagsNone,
251
+ )
252
+ input = httpFormDataProgrammer_decode_array(struct {
253
+ Context nativecontext.ITypiaContext
254
+ Metadata *schemametadata.MetadataSchema
255
+ Input *shimast.Node
256
+ }{
257
+ Context: props.Context,
258
+ Metadata: value,
259
+ Input: input,
260
+ })
261
+ } else {
262
+ input = httpFormDataProgrammer_decode_value(struct {
263
+ Context nativecontext.ITypiaContext
264
+ Type string
265
+ Coalesce bool
266
+ Input *shimast.Node
267
+ }{
268
+ Context: props.Context,
269
+ Type: typ,
270
+ Coalesce: value.Nullable == false && value.IsRequired() == false,
271
+ Input: input,
272
+ })
273
+ }
274
+ return httpFormDataProgrammer_factory.NewPropertyAssignment(
275
+ nil,
276
+ nativefactories.IdentifierFactory.Identifier(key),
277
+ nil,
278
+ nil,
279
+ input,
280
+ )
281
281
  }
282
282
 
283
283
  func httpFormDataProgrammer_decode_value(props struct {
284
- Context nativecontext.ITypiaContext
285
- Type string
286
- Coalesce bool
287
- Input *shimast.Node
284
+ Context nativecontext.ITypiaContext
285
+ Type string
286
+ Coalesce bool
287
+ Input *shimast.Node
288
288
  }) *shimast.Node {
289
- call := httpFormDataProgrammer_factory.NewCallExpression(
290
- httpParameterProgrammer_internal(props.Context, "httpFormDataRead"+httpParameterProgrammer_capitalize(props.Type)),
291
- nil,
292
- nil,
293
- httpFormDataProgrammer_factory.NewNodeList([]*shimast.Node{props.Input}),
294
- shimast.NodeFlagsNone,
295
- )
296
- if props.Coalesce == false {
297
- return call
298
- }
299
- return httpFormDataProgrammer_factory.NewBinaryExpression(
300
- nil,
301
- call,
302
- nil,
303
- httpFormDataProgrammer_factory.NewToken(shimast.KindQuestionQuestionToken),
304
- httpFormDataProgrammer_factory.NewIdentifier("undefined"),
305
- )
289
+ call := httpFormDataProgrammer_factory.NewCallExpression(
290
+ httpParameterProgrammer_internal(props.Context, "httpFormDataRead"+httpParameterProgrammer_capitalize(props.Type)),
291
+ nil,
292
+ nil,
293
+ httpFormDataProgrammer_factory.NewNodeList([]*shimast.Node{props.Input}),
294
+ shimast.NodeFlagsNone,
295
+ )
296
+ if props.Coalesce == false {
297
+ return call
298
+ }
299
+ return httpFormDataProgrammer_factory.NewBinaryExpression(
300
+ nil,
301
+ call,
302
+ nil,
303
+ httpFormDataProgrammer_factory.NewToken(shimast.KindQuestionQuestionToken),
304
+ httpFormDataProgrammer_factory.NewIdentifier("undefined"),
305
+ )
306
306
  }
307
307
 
308
308
  func httpFormDataProgrammer_decode_array(props struct {
309
- Context nativecontext.ITypiaContext
310
- Metadata *schemametadata.MetadataSchema
311
- Input *shimast.Node
309
+ Context nativecontext.ITypiaContext
310
+ Metadata *schemametadata.MetadataSchema
311
+ Input *shimast.Node
312
312
  }) *shimast.Node {
313
- if props.Metadata.Nullable == false && props.Metadata.IsRequired() == true {
314
- return props.Input
315
- }
316
- fallback := httpFormDataProgrammer_factory.NewIdentifier("undefined")
317
- if props.Metadata.Nullable {
318
- fallback = httpFormDataProgrammer_factory.NewKeywordExpression(shimast.KindNullKeyword)
319
- }
320
- return httpFormDataProgrammer_factory.NewCallExpression(
321
- httpParameterProgrammer_internal(props.Context, "httpFormDataReadArray"),
322
- nil,
323
- nil,
324
- httpFormDataProgrammer_factory.NewNodeList([]*shimast.Node{
325
- props.Input,
326
- fallback,
327
- }),
328
- shimast.NodeFlagsNone,
329
- )
313
+ if props.Metadata.Nullable == false && props.Metadata.IsRequired() == true {
314
+ return props.Input
315
+ }
316
+ fallback := httpFormDataProgrammer_factory.NewIdentifier("undefined")
317
+ if props.Metadata.Nullable {
318
+ fallback = httpFormDataProgrammer_factory.NewKeywordExpression(shimast.KindNullKeyword)
319
+ }
320
+ return httpFormDataProgrammer_factory.NewCallExpression(
321
+ httpParameterProgrammer_internal(props.Context, "httpFormDataReadArray"),
322
+ nil,
323
+ nil,
324
+ httpFormDataProgrammer_factory.NewNodeList([]*shimast.Node{
325
+ props.Input,
326
+ fallback,
327
+ }),
328
+ shimast.NodeFlagsNone,
329
+ )
330
330
  }
331
331
 
332
332
  func httpProgrammer_method_text(modulo *shimast.Node) string {
333
- if modulo == nil {
334
- return ""
335
- }
336
- return modulo.Text()
333
+ if modulo == nil {
334
+ return ""
335
+ }
336
+ return modulo.Text()
337
337
  }
338
338
 
339
339
  func httpProgrammer_import_type(context nativecontext.ITypiaContext, props nativeprogrammers.ImportProgrammer_TypeProps) *shimast.Node {
340
- if importer, ok := context.Importer.(interface {
341
- Type(nativeprogrammers.ImportProgrammer_TypeProps) *shimast.Node
342
- }); ok {
343
- return importer.Type(props)
344
- }
345
- if str, ok := props.Name.(string); ok {
346
- return httpFormDataProgrammer_factory.NewTypeReferenceNode(
347
- httpFormDataProgrammer_factory.NewIdentifier(str),
348
- httpFormDataProgrammer_factory.NewNodeList(props.Arguments),
349
- )
350
- }
351
- return props.Name.(*shimast.Node)
340
+ if importer, ok := context.Importer.(interface {
341
+ Type(nativeprogrammers.ImportProgrammer_TypeProps) *shimast.Node
342
+ }); ok {
343
+ return importer.Type(props)
344
+ }
345
+ if str, ok := props.Name.(string); ok {
346
+ return httpFormDataProgrammer_factory.NewTypeReferenceNode(
347
+ httpFormDataProgrammer_factory.NewIdentifier(str),
348
+ httpFormDataProgrammer_factory.NewNodeList(props.Arguments),
349
+ )
350
+ }
351
+ return props.Name.(*shimast.Node)
352
352
  }
353
353
 
354
354
  func httpProgrammer_typeReference(context nativecontext.ITypiaContext, typ *shimchecker.Type, name *string) *shimast.Node {
355
- if name != nil {
356
- return httpFormDataProgrammer_factory.NewTypeReferenceNode(httpFormDataProgrammer_factory.NewIdentifier(*name), nil)
357
- }
358
- return httpFormDataProgrammer_factory.NewTypeReferenceNode(httpFormDataProgrammer_factory.NewIdentifier(nativefactories.TypeFactory.GetFullName(nativefactories.TypeFactory_GetFullNameProps{
359
- Checker: context.Checker,
360
- Type: typ,
361
- })), nil)
355
+ if name != nil {
356
+ return httpFormDataProgrammer_factory.NewTypeReferenceNode(httpFormDataProgrammer_factory.NewIdentifier(*name), nil)
357
+ }
358
+ return httpFormDataProgrammer_factory.NewTypeReferenceNode(httpFormDataProgrammer_factory.NewIdentifier(nativefactories.TypeFactory.GetFullName(nativefactories.TypeFactory_GetFullNameProps{
359
+ Checker: context.Checker,
360
+ Type: typ,
361
+ })), nil)
362
362
  }
363
363
 
364
364
  func httpProgrammer_property_key(property *schemametadata.MetadataProperty) string {
365
- if property == nil || property.Key == nil {
366
- return ""
367
- }
368
- if key := property.Key.GetSoleLiteral(); key != nil {
369
- return *key
370
- }
371
- return ""
365
+ if property == nil || property.Key == nil {
366
+ return ""
367
+ }
368
+ if key := property.Key.GetSoleLiteral(); key != nil {
369
+ return *key
370
+ }
371
+ return ""
372
372
  }
373
373
 
374
374
  func httpProgrammer_decode_type(value *schemametadata.MetadataSchema, blob bool) (string, bool) {
375
- return httpProgrammer_decode_type_from_metadata(value, blob, false)
375
+ return httpProgrammer_decode_type_from_metadata(value, blob, false)
376
376
  }
377
377
 
378
378
  func httpProgrammer_decode_type_from_metadata(value *schemametadata.MetadataSchema, blob bool, array bool) (string, bool) {
379
- if value == nil {
380
- return "string", array
381
- }
382
- if len(value.Atomics) != 0 {
383
- return value.Atomics[0].Type, array
384
- }
385
- if len(value.Constants) != 0 {
386
- return value.Constants[0].Type, array
387
- }
388
- if len(value.Templates) != 0 {
389
- return "string", array
390
- }
391
- if blob {
392
- for _, native := range value.Natives {
393
- if native.Name == "Blob" {
394
- return "blob", array
395
- }
396
- }
397
- for _, native := range value.Natives {
398
- if native.Name == "File" {
399
- return "file", array
400
- }
401
- }
402
- }
403
- if len(value.Arrays) != 0 {
404
- return httpProgrammer_decode_type_from_metadata(value.Arrays[0].Type.Value, blob, true)
405
- }
406
- if len(value.Tuples) != 0 && len(value.Tuples[0].Type.Elements) != 0 {
407
- return httpProgrammer_decode_type_from_metadata(value.Tuples[0].Type.Elements[0], blob, true)
408
- }
409
- return "string", array
379
+ if value == nil {
380
+ return "string", array
381
+ }
382
+ if len(value.Atomics) != 0 {
383
+ return value.Atomics[0].Type, array
384
+ }
385
+ if len(value.Constants) != 0 {
386
+ return value.Constants[0].Type, array
387
+ }
388
+ if len(value.Templates) != 0 {
389
+ return "string", array
390
+ }
391
+ if blob {
392
+ for _, native := range value.Natives {
393
+ if native.Name == "Blob" {
394
+ return "blob", array
395
+ }
396
+ }
397
+ for _, native := range value.Natives {
398
+ if native.Name == "File" {
399
+ return "file", array
400
+ }
401
+ }
402
+ }
403
+ if len(value.Arrays) != 0 {
404
+ return httpProgrammer_decode_type_from_metadata(value.Arrays[0].Type.Value, blob, true)
405
+ }
406
+ if len(value.Tuples) != 0 && len(value.Tuples[0].Type.Elements) != 0 {
407
+ return httpProgrammer_decode_type_from_metadata(value.Tuples[0].Type.Elements[0], blob, true)
408
+ }
409
+ return "string", array
410
410
  }
411
411
 
412
412
  func httpProgrammer_debug(value any) string {
413
- return fmt.Sprint(value)
413
+ return fmt.Sprint(value)
414
414
  }