typia 13.0.0-dev.20260501 → 13.0.0-dev.20260506

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