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

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