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