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,17 +1,17 @@
1
1
  package protobuf
2
2
 
3
3
  import (
4
- "fmt"
5
-
6
- shimast "github.com/microsoft/typescript-go/shim/ast"
7
- shimchecker "github.com/microsoft/typescript-go/shim/checker"
8
- nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
9
- nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
10
- nativeprogrammers "github.com/samchon/typia/packages/typia/native/core/programmers"
11
- nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
12
- nativeinternal "github.com/samchon/typia/packages/typia/native/core/programmers/internal"
13
- schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
14
- schemaprotobuf "github.com/samchon/typia/packages/typia/native/core/schemas/protobuf"
4
+ "fmt"
5
+
6
+ shimast "github.com/microsoft/typescript-go/shim/ast"
7
+ shimchecker "github.com/microsoft/typescript-go/shim/checker"
8
+ nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
9
+ nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
10
+ nativeprogrammers "github.com/samchon/typia/packages/typia/native/core/programmers"
11
+ nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
12
+ nativeinternal "github.com/samchon/typia/packages/typia/native/core/programmers/internal"
13
+ schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
14
+ schemaprotobuf "github.com/samchon/typia/packages/typia/native/core/schemas/protobuf"
15
15
  )
16
16
 
17
17
  type protobufDecodeProgrammerNamespace struct{}
@@ -19,58 +19,58 @@ type protobufDecodeProgrammerNamespace struct{}
19
19
  var ProtobufDecodeProgrammer = protobufDecodeProgrammerNamespace{}
20
20
 
21
21
  type ProtobufDecodeProgrammer_IProps struct {
22
- Context nativecontext.ITypiaContext
23
- Modulo *shimast.Node
24
- Type *shimchecker.Type
25
- Name *string
26
- Init *shimast.Node
22
+ Context nativecontext.ITypiaContext
23
+ Modulo *shimast.Node
24
+ Type *shimchecker.Type
25
+ Name *string
26
+ Init *shimast.Node
27
27
  }
28
28
 
29
29
  type ProtobufDecodeProgrammer_DecomposeProps struct {
30
- Context nativecontext.ITypiaContext
31
- Modulo *shimast.Node
32
- Functor *nativehelpers.FunctionProgrammer
33
- Type *shimchecker.Type
34
- Name *string
30
+ Context nativecontext.ITypiaContext
31
+ Modulo *shimast.Node
32
+ Functor *nativehelpers.FunctionProgrammer
33
+ Type *shimchecker.Type
34
+ Name *string
35
35
  }
36
36
 
37
37
  type protobufDecodeProgrammer_objectBodyProps struct {
38
- Context nativecontext.ITypiaContext
39
- Condition *shimast.Node
40
- Tag string
41
- Output string
42
- Object *schemametadata.MetadataObjectType
38
+ Context nativecontext.ITypiaContext
39
+ Condition *shimast.Node
40
+ Tag string
41
+ Output string
42
+ Object *schemametadata.MetadataObjectType
43
43
  }
44
44
 
45
45
  type protobufDecodeProgrammer_decodePropertyProps struct {
46
- Context nativecontext.ITypiaContext
47
- Metadata *schemametadata.MetadataSchema
48
- Protobuf *schemaprotobuf.IProtobufProperty
49
- Accessor *shimast.Node
46
+ Context nativecontext.ITypiaContext
47
+ Metadata *schemametadata.MetadataSchema
48
+ Protobuf *schemaprotobuf.IProtobufProperty
49
+ Accessor *shimast.Node
50
50
  }
51
51
 
52
52
  type protobufDecodeProgrammer_decodePropertyTypeProps struct {
53
- Context nativecontext.ITypiaContext
54
- Accessor *shimast.Node
55
- Schema schemaprotobuf.IProtobufPropertyType
56
- Required bool
53
+ Context nativecontext.ITypiaContext
54
+ Accessor *shimast.Node
55
+ Schema schemaprotobuf.IProtobufPropertyType
56
+ Required bool
57
57
  }
58
58
 
59
59
  type protobufDecodeProgrammer_decodeArrayProps struct {
60
- Accessor *shimast.Node
61
- Schema schemaprotobuf.IProtobufSchema
62
- Required bool
60
+ Accessor *shimast.Node
61
+ Schema schemaprotobuf.IProtobufSchema
62
+ Required bool
63
63
  }
64
64
 
65
65
  type protobufDecodeProgrammer_decodeMapProps struct {
66
- Context nativecontext.ITypiaContext
67
- Accessor *shimast.Node
68
- Key *schemametadata.MetadataSchema
69
- Value *schemametadata.MetadataSchema
70
- Schema schemaprotobuf.IProtobufSchema
71
- Initializer *shimast.Node
72
- Required bool
73
- Setter func() *shimast.Node
66
+ Context nativecontext.ITypiaContext
67
+ Accessor *shimast.Node
68
+ Key *schemametadata.MetadataSchema
69
+ Value *schemametadata.MetadataSchema
70
+ Schema schemaprotobuf.IProtobufSchema
71
+ Initializer *shimast.Node
72
+ Required bool
73
+ Setter func() *shimast.Node
74
74
  }
75
75
 
76
76
  const protobufDecodeProgrammer_PREFIX = "_pd"
@@ -79,767 +79,767 @@ var protobufDecodeProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactor
79
79
  var protobufDecodeProgrammer_objectSequence = 0
80
80
 
81
81
  func (protobufDecodeProgrammerNamespace) Decompose(props ProtobufDecodeProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
82
- collection := schemametadata.NewMetadataCollection()
83
- meta := nativefactories.ProtobufFactory.Metadata(nativefactories.ProtobufFactory_IProps{
84
- Method: protobufDecodeProgrammer_method_text(props.Modulo),
85
- Checker: props.Context.Checker,
86
- Transformer: props.Context.Transformer,
87
- Components: collection,
88
- Type: props.Type,
89
- })
90
- functions := map[string]*shimast.Node{}
91
- for _, object := range collection.Objects() {
92
- if nativehelpers.ProtobufUtil.IsStaticObject(object) == false {
93
- continue
94
- }
95
- name := fmt.Sprintf("%so%d", protobufDecodeProgrammer_PREFIX, object.Index)
96
- functions[name] = nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
97
- Name: props.Functor.UseLocal(name),
98
- Value: protobufDecodeProgrammer_write_object_function(struct {
99
- Context nativecontext.ITypiaContext
100
- Functor *nativehelpers.FunctionProgrammer
101
- Object *schemametadata.MetadataObjectType
102
- }{Context: props.Context, Functor: props.Functor, Object: object}),
103
- })
104
- }
105
- typeName := ""
106
- if props.Name != nil {
107
- typeName = *props.Name
108
- } else {
109
- typeName = nativefactories.TypeFactory.GetFullName(nativefactories.TypeFactory_GetFullNameProps{
110
- Checker: props.Context.Checker,
111
- Type: props.Type,
112
- })
113
- }
114
- outputType := protobufDecodeProgrammer_import_type(props.Context, nativeprogrammers.ImportProgrammer_TypeProps{
115
- File: "typia",
116
- Name: "Resolved",
117
- Arguments: []*shimast.TypeNode{
118
- protobufDecodeProgrammer_factory.NewTypeReferenceNode(protobufDecodeProgrammer_factory.NewIdentifier(typeName), nil),
119
- },
120
- })
121
- top := (*schemametadata.MetadataObjectType)(nil)
122
- if len(meta.Objects) != 0 {
123
- top = meta.Objects[0].Type
124
- }
125
- return nativeinternal.FeatureProgrammer_IDecomposed{
126
- Functions: functions,
127
- Statements: []*shimast.Node{},
128
- Arrow: protobufDecodeProgrammer_factory.NewArrowFunction(
129
- nil,
130
- nil,
131
- protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{
132
- nativefactories.IdentifierFactory.Parameter("input", protobufDecodeProgrammer_factory.NewTypeReferenceNode(protobufDecodeProgrammer_factory.NewIdentifier("Uint8Array"), nil), nil),
133
- }),
134
- outputType,
135
- nil,
136
- protobufDecodeProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
137
- protobufDecodeProgrammer_factory.NewBlock(protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{
138
- nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
139
- Name: "reader",
140
- Value: protobufDecodeProgrammer_factory.NewNewExpression(
141
- protobufDecodeProgrammer_internal(props.Context, "ProtobufReader"),
142
- nil,
143
- protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{protobufDecodeProgrammer_factory.NewIdentifier("input")}),
144
- ),
145
- }),
146
- protobufDecodeProgrammer_factory.NewReturnStatement(protobufDecodeProgrammer_decode_regular_object(struct {
147
- Top bool
148
- Object *schemametadata.MetadataObjectType
149
- }{Top: true, Object: top})),
150
- }), true),
151
- ),
152
- }
82
+ collection := schemametadata.NewMetadataCollection()
83
+ meta := nativefactories.ProtobufFactory.Metadata(nativefactories.ProtobufFactory_IProps{
84
+ Method: protobufDecodeProgrammer_method_text(props.Modulo),
85
+ Checker: props.Context.Checker,
86
+ Transformer: props.Context.Transformer,
87
+ Components: collection,
88
+ Type: props.Type,
89
+ })
90
+ functions := map[string]*shimast.Node{}
91
+ for _, object := range collection.Objects() {
92
+ if nativehelpers.ProtobufUtil.IsStaticObject(object) == false {
93
+ continue
94
+ }
95
+ name := fmt.Sprintf("%so%d", protobufDecodeProgrammer_PREFIX, object.Index)
96
+ functions[name] = nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
97
+ Name: props.Functor.UseLocal(name),
98
+ Value: protobufDecodeProgrammer_write_object_function(struct {
99
+ Context nativecontext.ITypiaContext
100
+ Functor *nativehelpers.FunctionProgrammer
101
+ Object *schemametadata.MetadataObjectType
102
+ }{Context: props.Context, Functor: props.Functor, Object: object}),
103
+ })
104
+ }
105
+ typeName := ""
106
+ if props.Name != nil {
107
+ typeName = *props.Name
108
+ } else {
109
+ typeName = nativefactories.TypeFactory.GetFullName(nativefactories.TypeFactory_GetFullNameProps{
110
+ Checker: props.Context.Checker,
111
+ Type: props.Type,
112
+ })
113
+ }
114
+ outputType := protobufDecodeProgrammer_import_type(props.Context, nativeprogrammers.ImportProgrammer_TypeProps{
115
+ File: "typia",
116
+ Name: "Resolved",
117
+ Arguments: []*shimast.TypeNode{
118
+ protobufDecodeProgrammer_factory.NewTypeReferenceNode(protobufDecodeProgrammer_factory.NewIdentifier(typeName), nil),
119
+ },
120
+ })
121
+ top := (*schemametadata.MetadataObjectType)(nil)
122
+ if len(meta.Objects) != 0 {
123
+ top = meta.Objects[0].Type
124
+ }
125
+ return nativeinternal.FeatureProgrammer_IDecomposed{
126
+ Functions: functions,
127
+ Statements: []*shimast.Node{},
128
+ Arrow: protobufDecodeProgrammer_factory.NewArrowFunction(
129
+ nil,
130
+ nil,
131
+ protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{
132
+ nativefactories.IdentifierFactory.Parameter("input", protobufDecodeProgrammer_factory.NewTypeReferenceNode(protobufDecodeProgrammer_factory.NewIdentifier("Uint8Array"), nil), nil),
133
+ }),
134
+ outputType,
135
+ nil,
136
+ protobufDecodeProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
137
+ protobufDecodeProgrammer_factory.NewBlock(protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{
138
+ nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
139
+ Name: "reader",
140
+ Value: protobufDecodeProgrammer_factory.NewNewExpression(
141
+ protobufDecodeProgrammer_internal(props.Context, "ProtobufReader"),
142
+ nil,
143
+ protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{protobufDecodeProgrammer_factory.NewIdentifier("input")}),
144
+ ),
145
+ }),
146
+ protobufDecodeProgrammer_factory.NewReturnStatement(protobufDecodeProgrammer_decode_regular_object(struct {
147
+ Top bool
148
+ Object *schemametadata.MetadataObjectType
149
+ }{Top: true, Object: top})),
150
+ }), true),
151
+ ),
152
+ }
153
153
  }
154
154
 
155
155
  func (protobufDecodeProgrammerNamespace) Write(props ProtobufDecodeProgrammer_IProps) *shimast.Node {
156
- functor := nativehelpers.NewFunctionProgrammer(protobufDecodeProgrammer_method_text(props.Modulo))
157
- result := ProtobufDecodeProgrammer.Decompose(ProtobufDecodeProgrammer_DecomposeProps{
158
- Context: props.Context,
159
- Modulo: props.Modulo,
160
- Functor: functor,
161
- Type: props.Type,
162
- Name: props.Name,
163
- })
164
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
165
- Modulo: props.Modulo,
166
- Functor: functor,
167
- Result: result,
168
- })
156
+ functor := nativehelpers.NewFunctionProgrammer(protobufDecodeProgrammer_method_text(props.Modulo))
157
+ result := ProtobufDecodeProgrammer.Decompose(ProtobufDecodeProgrammer_DecomposeProps{
158
+ Context: props.Context,
159
+ Modulo: props.Modulo,
160
+ Functor: functor,
161
+ Type: props.Type,
162
+ Name: props.Name,
163
+ })
164
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
165
+ Modulo: props.Modulo,
166
+ Functor: functor,
167
+ Result: result,
168
+ })
169
169
  }
170
170
 
171
171
  func protobufDecodeProgrammer_write_object_function(props struct {
172
- Context nativecontext.ITypiaContext
173
- Functor *nativehelpers.FunctionProgrammer
174
- Object *schemametadata.MetadataObjectType
172
+ Context nativecontext.ITypiaContext
173
+ Functor *nativehelpers.FunctionProgrammer
174
+ Object *schemametadata.MetadataObjectType
175
175
  }) *shimast.Node {
176
- lengthAssign := protobufDecodeProgrammer_factory.NewExpressionStatement(
177
- protobufDecodeProgrammer_assignment(
178
- protobufDecodeProgrammer_factory.NewIdentifier("length"),
179
- shimast.KindEqualsToken,
180
- protobufDecodeProgrammer_factory.NewConditionalExpression(
181
- protobufDecodeProgrammer_lessThan(protobufDecodeProgrammer_factory.NewIdentifier("length"), nativefactories.ExpressionFactory.Number(0)),
182
- nil,
183
- protobufDecodeProgrammer_callReader("size", nil),
184
- nil,
185
- protobufDecodeProgrammer_add(protobufDecodeProgrammer_callReader("index", nil), protobufDecodeProgrammer_factory.NewIdentifier("length")),
186
- ),
187
- ),
188
- )
189
- body := []*shimast.Node{lengthAssign}
190
- body = append(body, protobufDecodeProgrammer_write_object_function_body(protobufDecodeProgrammer_objectBodyProps{
191
- Context: props.Context,
192
- Condition: protobufDecodeProgrammer_lessThan(protobufDecodeProgrammer_callReader("index", nil), protobufDecodeProgrammer_factory.NewIdentifier("length")),
193
- Tag: "tag",
194
- Output: "output",
195
- Object: props.Object,
196
- })...)
197
- body = append(body, protobufDecodeProgrammer_factory.NewReturnStatement(protobufDecodeProgrammer_factory.NewIdentifier("output")))
198
- return protobufDecodeProgrammer_factory.NewArrowFunction(
199
- nil,
200
- nil,
201
- protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{
202
- nativefactories.IdentifierFactory.Parameter("reader", nil, nil),
203
- nativefactories.IdentifierFactory.Parameter("length", nativefactories.TypeFactory.Keyword("number"), nativefactories.ExpressionFactory.Number(-1)),
204
- }),
205
- nativefactories.TypeFactory.Keyword("any"),
206
- nil,
207
- protobufDecodeProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
208
- protobufDecodeProgrammer_factory.NewBlock(protobufDecodeProgrammer_factory.NewNodeList(body), true),
209
- )
176
+ lengthAssign := protobufDecodeProgrammer_factory.NewExpressionStatement(
177
+ protobufDecodeProgrammer_assignment(
178
+ protobufDecodeProgrammer_factory.NewIdentifier("length"),
179
+ shimast.KindEqualsToken,
180
+ protobufDecodeProgrammer_factory.NewConditionalExpression(
181
+ protobufDecodeProgrammer_lessThan(protobufDecodeProgrammer_factory.NewIdentifier("length"), nativefactories.ExpressionFactory.Number(0)),
182
+ nil,
183
+ protobufDecodeProgrammer_callReader("size", nil),
184
+ nil,
185
+ protobufDecodeProgrammer_add(protobufDecodeProgrammer_callReader("index", nil), protobufDecodeProgrammer_factory.NewIdentifier("length")),
186
+ ),
187
+ ),
188
+ )
189
+ body := []*shimast.Node{lengthAssign}
190
+ body = append(body, protobufDecodeProgrammer_write_object_function_body(protobufDecodeProgrammer_objectBodyProps{
191
+ Context: props.Context,
192
+ Condition: protobufDecodeProgrammer_lessThan(protobufDecodeProgrammer_callReader("index", nil), protobufDecodeProgrammer_factory.NewIdentifier("length")),
193
+ Tag: "tag",
194
+ Output: "output",
195
+ Object: props.Object,
196
+ })...)
197
+ body = append(body, protobufDecodeProgrammer_factory.NewReturnStatement(protobufDecodeProgrammer_factory.NewIdentifier("output")))
198
+ return protobufDecodeProgrammer_factory.NewArrowFunction(
199
+ nil,
200
+ nil,
201
+ protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{
202
+ nativefactories.IdentifierFactory.Parameter("reader", nil, nil),
203
+ nativefactories.IdentifierFactory.Parameter("length", nativefactories.TypeFactory.Keyword("number"), nativefactories.ExpressionFactory.Number(-1)),
204
+ }),
205
+ nativefactories.TypeFactory.Keyword("any"),
206
+ nil,
207
+ protobufDecodeProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
208
+ protobufDecodeProgrammer_factory.NewBlock(protobufDecodeProgrammer_factory.NewNodeList(body), true),
209
+ )
210
210
  }
211
211
 
212
212
  func protobufDecodeProgrammer_write_object_function_body(props protobufDecodeProgrammer_objectBodyProps) []*shimast.Node {
213
- if protobufDecodeProgrammer_objectNeedsProtobuf(props.Object) {
214
- nativefactories.ProtobufFactory.EmplaceObject(props.Object)
215
- }
216
- clauses := []*shimast.Node{}
217
- for _, property := range props.Object.Properties {
218
- literal := property.Key.GetSoleLiteral()
219
- if literal == nil {
220
- continue
221
- }
222
- clauses = append(clauses, protobufDecodeProgrammer_decode_property(protobufDecodeProgrammer_decodePropertyProps{
223
- Context: props.Context,
224
- Accessor: nativefactories.IdentifierFactory.Access(protobufDecodeProgrammer_factory.NewIdentifier(props.Output), *literal),
225
- Protobuf: property.Of_protobuf_,
226
- Metadata: property.Value,
227
- })...)
228
- }
229
- clauses = append(clauses, protobufDecodeProgrammer_factory.NewCaseOrDefaultClause(
230
- shimast.KindDefaultClause,
231
- nil,
232
- protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{
233
- protobufDecodeProgrammer_factory.NewExpressionStatement(protobufDecodeProgrammer_callReader("skipType", []*shimast.Node{
234
- protobufDecodeProgrammer_bitwise_and(protobufDecodeProgrammer_factory.NewIdentifier(props.Tag), nativefactories.ExpressionFactory.Number(7)),
235
- })),
236
- protobufDecodeProgrammer_factory.NewBreakStatement(nil),
237
- }),
238
- ))
239
- properties := []*shimast.Node{}
240
- exactOptional := props.Context.CompilerOptions != nil && props.Context.CompilerOptions.ExactOptionalPropertyTypes.IsTrue()
241
- for _, property := range props.Object.Properties {
242
- if exactOptional && property.Value.Optional {
243
- continue
244
- }
245
- literal := property.Key.GetSoleLiteral()
246
- if literal == nil {
247
- continue
248
- }
249
- properties = append(properties, protobufDecodeProgrammer_factory.NewPropertyAssignment(
250
- nil,
251
- nativefactories.IdentifierFactory.Identifier(*literal),
252
- nil,
253
- nil,
254
- protobufDecodeProgrammer_write_property_default_value(property.Value),
255
- ))
256
- }
257
- return []*shimast.Node{
258
- nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
259
- Name: props.Output,
260
- Value: protobufDecodeProgrammer_factory.NewAsExpression(
261
- protobufDecodeProgrammer_factory.NewObjectLiteralExpression(protobufDecodeProgrammer_factory.NewNodeList(properties), true),
262
- nativefactories.TypeFactory.Keyword("any"),
263
- ),
264
- }),
265
- protobufDecodeProgrammer_factory.NewWhileStatement(
266
- props.Condition,
267
- protobufDecodeProgrammer_factory.NewBlock(protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{
268
- nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
269
- Name: props.Tag,
270
- Value: protobufDecodeProgrammer_callReader("uint32", nil),
271
- }),
272
- protobufDecodeProgrammer_factory.NewSwitchStatement(
273
- protobufDecodeProgrammer_unsigned_right_shift(protobufDecodeProgrammer_factory.NewIdentifier(props.Tag), nativefactories.ExpressionFactory.Number(3)),
274
- protobufDecodeProgrammer_factory.NewCaseBlock(protobufDecodeProgrammer_factory.NewNodeList(clauses)),
275
- ),
276
- }), true),
277
- ),
278
- }
213
+ if protobufDecodeProgrammer_objectNeedsProtobuf(props.Object) {
214
+ nativefactories.ProtobufFactory.EmplaceObject(props.Object)
215
+ }
216
+ clauses := []*shimast.Node{}
217
+ for _, property := range props.Object.Properties {
218
+ literal := property.Key.GetSoleLiteral()
219
+ if literal == nil {
220
+ continue
221
+ }
222
+ clauses = append(clauses, protobufDecodeProgrammer_decode_property(protobufDecodeProgrammer_decodePropertyProps{
223
+ Context: props.Context,
224
+ Accessor: nativefactories.IdentifierFactory.Access(protobufDecodeProgrammer_factory.NewIdentifier(props.Output), *literal),
225
+ Protobuf: property.Of_protobuf_,
226
+ Metadata: property.Value,
227
+ })...)
228
+ }
229
+ clauses = append(clauses, protobufDecodeProgrammer_factory.NewCaseOrDefaultClause(
230
+ shimast.KindDefaultClause,
231
+ nil,
232
+ protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{
233
+ protobufDecodeProgrammer_factory.NewExpressionStatement(protobufDecodeProgrammer_callReader("skipType", []*shimast.Node{
234
+ protobufDecodeProgrammer_bitwise_and(protobufDecodeProgrammer_factory.NewIdentifier(props.Tag), nativefactories.ExpressionFactory.Number(7)),
235
+ })),
236
+ protobufDecodeProgrammer_factory.NewBreakStatement(nil),
237
+ }),
238
+ ))
239
+ properties := []*shimast.Node{}
240
+ exactOptional := props.Context.CompilerOptions != nil && props.Context.CompilerOptions.ExactOptionalPropertyTypes.IsTrue()
241
+ for _, property := range props.Object.Properties {
242
+ if exactOptional && property.Value.Optional {
243
+ continue
244
+ }
245
+ literal := property.Key.GetSoleLiteral()
246
+ if literal == nil {
247
+ continue
248
+ }
249
+ properties = append(properties, protobufDecodeProgrammer_factory.NewPropertyAssignment(
250
+ nil,
251
+ nativefactories.IdentifierFactory.Identifier(*literal),
252
+ nil,
253
+ nil,
254
+ protobufDecodeProgrammer_write_property_default_value(property.Value),
255
+ ))
256
+ }
257
+ return []*shimast.Node{
258
+ nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
259
+ Name: props.Output,
260
+ Value: protobufDecodeProgrammer_factory.NewAsExpression(
261
+ protobufDecodeProgrammer_factory.NewObjectLiteralExpression(protobufDecodeProgrammer_factory.NewNodeList(properties), true),
262
+ nativefactories.TypeFactory.Keyword("any"),
263
+ ),
264
+ }),
265
+ protobufDecodeProgrammer_factory.NewWhileStatement(
266
+ props.Condition,
267
+ protobufDecodeProgrammer_factory.NewBlock(protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{
268
+ nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
269
+ Name: props.Tag,
270
+ Value: protobufDecodeProgrammer_callReader("uint32", nil),
271
+ }),
272
+ protobufDecodeProgrammer_factory.NewSwitchStatement(
273
+ protobufDecodeProgrammer_unsigned_right_shift(protobufDecodeProgrammer_factory.NewIdentifier(props.Tag), nativefactories.ExpressionFactory.Number(3)),
274
+ protobufDecodeProgrammer_factory.NewCaseBlock(protobufDecodeProgrammer_factory.NewNodeList(clauses)),
275
+ ),
276
+ }), true),
277
+ ),
278
+ }
279
279
  }
280
280
 
281
281
  func protobufDecodeProgrammer_write_property_default_value(value *schemametadata.MetadataSchema) *shimast.Node {
282
- var expression *shimast.Node
283
- if value.Nullable {
284
- expression = protobufDecodeProgrammer_factory.NewKeywordExpression(shimast.KindNullKeyword)
285
- } else if value.IsRequired() == false {
286
- expression = protobufDecodeProgrammer_factory.NewIdentifier("undefined")
287
- } else if len(value.Arrays) != 0 {
288
- expression = protobufDecodeProgrammer_factory.NewArrayLiteralExpression(nil, false)
289
- } else if len(value.Maps) != 0 {
290
- expression = protobufDecodeProgrammer_factory.NewNewExpression(protobufDecodeProgrammer_factory.NewIdentifier("Map"), nil, protobufDecodeProgrammer_factory.NewNodeList(nil))
291
- } else if len(value.Natives) != 0 {
292
- expression = protobufDecodeProgrammer_factory.NewNewExpression(
293
- protobufDecodeProgrammer_factory.NewIdentifier("Uint8Array"),
294
- nil,
295
- protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{
296
- protobufDecodeProgrammer_factory.NewArrayLiteralExpression(nil, false),
297
- }),
298
- )
299
- } else if protobufDecodeProgrammer_hasStringDefault(value) {
300
- expression = protobufDecodeProgrammer_factory.NewStringLiteral("", shimast.TokenFlagsNone)
301
- } else if protobufDecodeProgrammer_hasDynamicObject(value) {
302
- expression = protobufDecodeProgrammer_factory.NewObjectLiteralExpression(nil, false)
303
- } else {
304
- expression = protobufDecodeProgrammer_factory.NewIdentifier("undefined")
305
- }
306
- return protobufDecodeProgrammer_factory.NewAsExpression(expression, nativefactories.TypeFactory.Keyword("any"))
282
+ var expression *shimast.Node
283
+ if value.Nullable {
284
+ expression = protobufDecodeProgrammer_factory.NewKeywordExpression(shimast.KindNullKeyword)
285
+ } else if value.IsRequired() == false {
286
+ expression = protobufDecodeProgrammer_factory.NewIdentifier("undefined")
287
+ } else if len(value.Arrays) != 0 {
288
+ expression = protobufDecodeProgrammer_factory.NewArrayLiteralExpression(nil, false)
289
+ } else if len(value.Maps) != 0 {
290
+ expression = protobufDecodeProgrammer_factory.NewNewExpression(protobufDecodeProgrammer_factory.NewIdentifier("Map"), nil, protobufDecodeProgrammer_factory.NewNodeList(nil))
291
+ } else if len(value.Natives) != 0 {
292
+ expression = protobufDecodeProgrammer_factory.NewNewExpression(
293
+ protobufDecodeProgrammer_factory.NewIdentifier("Uint8Array"),
294
+ nil,
295
+ protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{
296
+ protobufDecodeProgrammer_factory.NewArrayLiteralExpression(nil, false),
297
+ }),
298
+ )
299
+ } else if protobufDecodeProgrammer_hasStringDefault(value) {
300
+ expression = protobufDecodeProgrammer_factory.NewStringLiteral("", shimast.TokenFlagsNone)
301
+ } else if protobufDecodeProgrammer_hasDynamicObject(value) {
302
+ expression = protobufDecodeProgrammer_factory.NewObjectLiteralExpression(nil, false)
303
+ } else {
304
+ expression = protobufDecodeProgrammer_factory.NewIdentifier("undefined")
305
+ }
306
+ return protobufDecodeProgrammer_factory.NewAsExpression(expression, nativefactories.TypeFactory.Keyword("any"))
307
307
  }
308
308
 
309
309
  func protobufDecodeProgrammer_decode_property(props protobufDecodeProgrammer_decodePropertyProps) []*shimast.Node {
310
- output := []*shimast.Node{}
311
- if props.Protobuf == nil {
312
- return output
313
- }
314
- for _, schema := range props.Protobuf.Union {
315
- output = append(output, protobufDecodeProgrammer_decode_property_type(protobufDecodeProgrammer_decodePropertyTypeProps{
316
- Context: props.Context,
317
- Accessor: props.Accessor,
318
- Schema: schema,
319
- Required: props.Metadata.IsRequired() && props.Metadata.Nullable == false,
320
- }))
321
- }
322
- return output
310
+ output := []*shimast.Node{}
311
+ if props.Protobuf == nil {
312
+ return output
313
+ }
314
+ for _, schema := range props.Protobuf.Union {
315
+ output = append(output, protobufDecodeProgrammer_decode_property_type(protobufDecodeProgrammer_decodePropertyTypeProps{
316
+ Context: props.Context,
317
+ Accessor: props.Accessor,
318
+ Schema: schema,
319
+ Required: props.Metadata.IsRequired() && props.Metadata.Nullable == false,
320
+ }))
321
+ }
322
+ return output
323
323
  }
324
324
 
325
325
  func protobufDecodeProgrammer_decode_property_type(props protobufDecodeProgrammer_decodePropertyTypeProps) *shimast.Node {
326
- outExpr := func(title string, value *shimast.Node) *shimast.Node {
327
- return protobufDecodeProgrammer_caseClause(protobufDecodeProgrammer_indexValue(protobufDecodeProgrammer_propertyIndex(props.Schema)), title, []*shimast.Node{
328
- protobufDecodeProgrammer_factory.NewExpressionStatement(protobufDecodeProgrammer_assignment(props.Accessor, shimast.KindEqualsToken, value)),
329
- })
330
- }
331
- outStatements := func(title string, value []*shimast.Node) *shimast.Node {
332
- return protobufDecodeProgrammer_caseClause(protobufDecodeProgrammer_indexValue(protobufDecodeProgrammer_propertyIndex(props.Schema)), title, value)
333
- }
334
- switch schema := props.Schema.(type) {
335
- case *schemaprotobuf.IProtobufPropertyType_IByte:
336
- return outExpr("bytes", protobufDecodeProgrammer_callReader("bytes", nil))
337
- case *schemaprotobuf.IProtobufPropertyType_IBoolean:
338
- return outExpr("bool", protobufDecodeProgrammer_callReader("bool", nil))
339
- case *schemaprotobuf.IProtobufPropertyType_IBigint:
340
- return outExpr(schema.Name, protobufDecodeProgrammer_callReader(schema.Name, nil))
341
- case *schemaprotobuf.IProtobufPropertyType_INumber:
342
- return outExpr(schema.Name, protobufDecodeProgrammer_decode_number(schema))
343
- case *schemaprotobuf.IProtobufPropertyType_IString:
344
- return outExpr("string", protobufDecodeProgrammer_callReader("string", nil))
345
- case *schemaprotobuf.IProtobufPropertyType_IArray:
346
- return outStatements("Array<"+protobufDecodeProgrammer_arrayValueName(schema)+">", protobufDecodeProgrammer_decode_array(protobufDecodeProgrammer_decodeArrayProps{
347
- Accessor: props.Accessor,
348
- Schema: schema,
349
- Required: props.Required,
350
- }))
351
- case *schemaprotobuf.IProtobufPropertyType_IObject:
352
- name := "object"
353
- if obj, ok := schema.Object.(*schemametadata.MetadataObjectType); ok {
354
- name = obj.Name
355
- }
356
- return outExpr(name, protobufDecodeProgrammer_decode_regular_object(struct {
357
- Top bool
358
- Object *schemametadata.MetadataObjectType
359
- }{Top: false, Object: protobufDecodeProgrammer_objectSchema(schema)}))
360
- case *schemaprotobuf.IProtobufPropertyType_IMap:
361
- if obj, ok := schema.Map.(*schemametadata.MetadataObjectType); ok && len(obj.Properties) != 0 {
362
- key := obj.Properties[0].Key
363
- value := obj.Properties[0].Value
364
- return outStatements("Record<"+key.GetName()+", "+value.GetName()+">", protobufDecodeProgrammer_decode_map(protobufDecodeProgrammer_decodeMapProps{
365
- Context: props.Context,
366
- Accessor: props.Accessor,
367
- Schema: schema,
368
- Required: props.Required,
369
- Key: key,
370
- Value: value,
371
- Initializer: protobufDecodeProgrammer_factory.NewObjectLiteralExpression(protobufDecodeProgrammer_factory.NewNodeList(nil), false),
372
- Setter: func() *shimast.Node {
373
- return protobufDecodeProgrammer_assignment(
374
- protobufDecodeProgrammer_factory.NewElementAccessExpression(props.Accessor, nil, protobufDecodeProgrammer_factory.NewIdentifier("entry.key"), shimast.NodeFlagsNone),
375
- shimast.KindEqualsToken,
376
- protobufDecodeProgrammer_factory.NewIdentifier("entry.value"),
377
- )
378
- },
379
- }))
380
- }
381
- if m, ok := schema.Map.(*schemametadata.MetadataMap); ok {
382
- key := m.Key
383
- value := m.Value
384
- return outStatements("Map<"+key.GetName()+", "+value.GetName()+">", protobufDecodeProgrammer_decode_map(protobufDecodeProgrammer_decodeMapProps{
385
- Context: props.Context,
386
- Accessor: props.Accessor,
387
- Schema: schema,
388
- Required: props.Required,
389
- Key: key,
390
- Value: value,
391
- Initializer: protobufDecodeProgrammer_factory.NewNewExpression(
392
- protobufDecodeProgrammer_factory.NewIdentifier("Map"),
393
- protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{nativefactories.TypeFactory.Keyword("any"), nativefactories.TypeFactory.Keyword("any")}),
394
- protobufDecodeProgrammer_factory.NewNodeList(nil),
395
- ),
396
- Setter: func() *shimast.Node {
397
- return protobufDecodeProgrammer_factory.NewCallExpression(
398
- nativefactories.IdentifierFactory.Access(props.Accessor, "set"),
399
- nil,
400
- nil,
401
- protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{
402
- protobufDecodeProgrammer_factory.NewIdentifier("entry.key"),
403
- protobufDecodeProgrammer_factory.NewIdentifier("entry.value"),
404
- }),
405
- shimast.NodeFlagsNone,
406
- )
407
- },
408
- }))
409
- }
410
- }
411
- panic("Error on ProtobufDecodeProgrammer.write(): unknown property type")
326
+ outExpr := func(title string, value *shimast.Node) *shimast.Node {
327
+ return protobufDecodeProgrammer_caseClause(protobufDecodeProgrammer_indexValue(protobufDecodeProgrammer_propertyIndex(props.Schema)), title, []*shimast.Node{
328
+ protobufDecodeProgrammer_factory.NewExpressionStatement(protobufDecodeProgrammer_assignment(props.Accessor, shimast.KindEqualsToken, value)),
329
+ })
330
+ }
331
+ outStatements := func(title string, value []*shimast.Node) *shimast.Node {
332
+ return protobufDecodeProgrammer_caseClause(protobufDecodeProgrammer_indexValue(protobufDecodeProgrammer_propertyIndex(props.Schema)), title, value)
333
+ }
334
+ switch schema := props.Schema.(type) {
335
+ case *schemaprotobuf.IProtobufPropertyType_IByte:
336
+ return outExpr("bytes", protobufDecodeProgrammer_callReader("bytes", nil))
337
+ case *schemaprotobuf.IProtobufPropertyType_IBoolean:
338
+ return outExpr("bool", protobufDecodeProgrammer_callReader("bool", nil))
339
+ case *schemaprotobuf.IProtobufPropertyType_IBigint:
340
+ return outExpr(schema.Name, protobufDecodeProgrammer_callReader(schema.Name, nil))
341
+ case *schemaprotobuf.IProtobufPropertyType_INumber:
342
+ return outExpr(schema.Name, protobufDecodeProgrammer_decode_number(schema))
343
+ case *schemaprotobuf.IProtobufPropertyType_IString:
344
+ return outExpr("string", protobufDecodeProgrammer_callReader("string", nil))
345
+ case *schemaprotobuf.IProtobufPropertyType_IArray:
346
+ return outStatements("Array<"+protobufDecodeProgrammer_arrayValueName(schema)+">", protobufDecodeProgrammer_decode_array(protobufDecodeProgrammer_decodeArrayProps{
347
+ Accessor: props.Accessor,
348
+ Schema: schema,
349
+ Required: props.Required,
350
+ }))
351
+ case *schemaprotobuf.IProtobufPropertyType_IObject:
352
+ name := "object"
353
+ if obj, ok := schema.Object.(*schemametadata.MetadataObjectType); ok {
354
+ name = obj.Name
355
+ }
356
+ return outExpr(name, protobufDecodeProgrammer_decode_regular_object(struct {
357
+ Top bool
358
+ Object *schemametadata.MetadataObjectType
359
+ }{Top: false, Object: protobufDecodeProgrammer_objectSchema(schema)}))
360
+ case *schemaprotobuf.IProtobufPropertyType_IMap:
361
+ if obj, ok := schema.Map.(*schemametadata.MetadataObjectType); ok && len(obj.Properties) != 0 {
362
+ key := obj.Properties[0].Key
363
+ value := obj.Properties[0].Value
364
+ return outStatements("Record<"+key.GetName()+", "+value.GetName()+">", protobufDecodeProgrammer_decode_map(protobufDecodeProgrammer_decodeMapProps{
365
+ Context: props.Context,
366
+ Accessor: props.Accessor,
367
+ Schema: schema,
368
+ Required: props.Required,
369
+ Key: key,
370
+ Value: value,
371
+ Initializer: protobufDecodeProgrammer_factory.NewObjectLiteralExpression(protobufDecodeProgrammer_factory.NewNodeList(nil), false),
372
+ Setter: func() *shimast.Node {
373
+ return protobufDecodeProgrammer_assignment(
374
+ protobufDecodeProgrammer_factory.NewElementAccessExpression(props.Accessor, nil, protobufDecodeProgrammer_factory.NewIdentifier("entry.key"), shimast.NodeFlagsNone),
375
+ shimast.KindEqualsToken,
376
+ protobufDecodeProgrammer_factory.NewIdentifier("entry.value"),
377
+ )
378
+ },
379
+ }))
380
+ }
381
+ if m, ok := schema.Map.(*schemametadata.MetadataMap); ok {
382
+ key := m.Key
383
+ value := m.Value
384
+ return outStatements("Map<"+key.GetName()+", "+value.GetName()+">", protobufDecodeProgrammer_decode_map(protobufDecodeProgrammer_decodeMapProps{
385
+ Context: props.Context,
386
+ Accessor: props.Accessor,
387
+ Schema: schema,
388
+ Required: props.Required,
389
+ Key: key,
390
+ Value: value,
391
+ Initializer: protobufDecodeProgrammer_factory.NewNewExpression(
392
+ protobufDecodeProgrammer_factory.NewIdentifier("Map"),
393
+ protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{nativefactories.TypeFactory.Keyword("any"), nativefactories.TypeFactory.Keyword("any")}),
394
+ protobufDecodeProgrammer_factory.NewNodeList(nil),
395
+ ),
396
+ Setter: func() *shimast.Node {
397
+ return protobufDecodeProgrammer_factory.NewCallExpression(
398
+ nativefactories.IdentifierFactory.Access(props.Accessor, "set"),
399
+ nil,
400
+ nil,
401
+ protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{
402
+ protobufDecodeProgrammer_factory.NewIdentifier("entry.key"),
403
+ protobufDecodeProgrammer_factory.NewIdentifier("entry.value"),
404
+ }),
405
+ shimast.NodeFlagsNone,
406
+ )
407
+ },
408
+ }))
409
+ }
410
+ }
411
+ panic("Error on ProtobufDecodeProgrammer.write(): unknown property type")
412
412
  }
413
413
 
414
414
  func protobufDecodeProgrammer_decode_number(schema schemaprotobuf.IProtobufSchema) *shimast.Node {
415
- name := protobufDecodeProgrammer_numberName(schema)
416
- value := protobufDecodeProgrammer_callReader(name, nil)
417
- if name == "int64" || name == "uint64" {
418
- return protobufDecodeProgrammer_factory.NewCallExpression(
419
- protobufDecodeProgrammer_factory.NewIdentifier("Number"),
420
- nil,
421
- nil,
422
- protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{value}),
423
- shimast.NodeFlagsNone,
424
- )
425
- }
426
- return value
415
+ name := protobufDecodeProgrammer_numberName(schema)
416
+ value := protobufDecodeProgrammer_callReader(name, nil)
417
+ if name == "int64" || name == "uint64" {
418
+ return protobufDecodeProgrammer_factory.NewCallExpression(
419
+ protobufDecodeProgrammer_factory.NewIdentifier("Number"),
420
+ nil,
421
+ nil,
422
+ protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{value}),
423
+ shimast.NodeFlagsNone,
424
+ )
425
+ }
426
+ return value
427
427
  }
428
428
 
429
429
  func protobufDecodeProgrammer_decode_array(props protobufDecodeProgrammer_decodeArrayProps) []*shimast.Node {
430
- statements := []*shimast.Node{}
431
- if props.Required == false {
432
- statements = append(statements, protobufDecodeProgrammer_factory.NewExpressionStatement(
433
- protobufDecodeProgrammer_assignment(
434
- props.Accessor,
435
- shimast.KindQuestionQuestionEqualsToken,
436
- protobufDecodeProgrammer_factory.NewAsExpression(
437
- protobufDecodeProgrammer_factory.NewArrayLiteralExpression(nil, false),
438
- protobufDecodeProgrammer_factory.NewTypeReferenceNode(protobufDecodeProgrammer_factory.NewIdentifier("any[]"), nil),
439
- ),
440
- ),
441
- ))
442
- }
443
- value := protobufDecodeProgrammer_arrayValue(props.Schema)
444
- decoder := protobufDecodeProgrammer_decode_array_value(value)
445
- if protobufDecodeProgrammer_isPackedArrayValue(value) {
446
- statements = append(statements, protobufDecodeProgrammer_factory.NewIfStatement(
447
- protobufDecodeProgrammer_strict_equal(
448
- nativefactories.ExpressionFactory.Number(2),
449
- protobufDecodeProgrammer_bitwise_and(protobufDecodeProgrammer_factory.NewIdentifier("tag"), nativefactories.ExpressionFactory.Number(7)),
450
- ),
451
- protobufDecodeProgrammer_factory.NewBlock(protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{
452
- nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
453
- Name: "piece",
454
- Value: protobufDecodeProgrammer_add(protobufDecodeProgrammer_callReader("uint32", nil), protobufDecodeProgrammer_callReader("index", nil)),
455
- }),
456
- protobufDecodeProgrammer_factory.NewWhileStatement(
457
- protobufDecodeProgrammer_lessThan(protobufDecodeProgrammer_callReader("index", nil), protobufDecodeProgrammer_factory.NewIdentifier("piece")),
458
- protobufDecodeProgrammer_factory.NewExpressionStatement(protobufDecodeProgrammer_arrayPush(props.Accessor, decoder)),
459
- ),
460
- }), true),
461
- protobufDecodeProgrammer_factory.NewExpressionStatement(protobufDecodeProgrammer_arrayPush(props.Accessor, decoder)),
462
- ))
463
- } else {
464
- statements = append(statements, protobufDecodeProgrammer_factory.NewExpressionStatement(protobufDecodeProgrammer_arrayPush(props.Accessor, decoder)))
465
- }
466
- return statements
430
+ statements := []*shimast.Node{}
431
+ if props.Required == false {
432
+ statements = append(statements, protobufDecodeProgrammer_factory.NewExpressionStatement(
433
+ protobufDecodeProgrammer_assignment(
434
+ props.Accessor,
435
+ shimast.KindQuestionQuestionEqualsToken,
436
+ protobufDecodeProgrammer_factory.NewAsExpression(
437
+ protobufDecodeProgrammer_factory.NewArrayLiteralExpression(nil, false),
438
+ protobufDecodeProgrammer_factory.NewTypeReferenceNode(protobufDecodeProgrammer_factory.NewIdentifier("any[]"), nil),
439
+ ),
440
+ ),
441
+ ))
442
+ }
443
+ value := protobufDecodeProgrammer_arrayValue(props.Schema)
444
+ decoder := protobufDecodeProgrammer_decode_array_value(value)
445
+ if protobufDecodeProgrammer_isPackedArrayValue(value) {
446
+ statements = append(statements, protobufDecodeProgrammer_factory.NewIfStatement(
447
+ protobufDecodeProgrammer_strict_equal(
448
+ nativefactories.ExpressionFactory.Number(2),
449
+ protobufDecodeProgrammer_bitwise_and(protobufDecodeProgrammer_factory.NewIdentifier("tag"), nativefactories.ExpressionFactory.Number(7)),
450
+ ),
451
+ protobufDecodeProgrammer_factory.NewBlock(protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{
452
+ nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
453
+ Name: "piece",
454
+ Value: protobufDecodeProgrammer_add(protobufDecodeProgrammer_callReader("uint32", nil), protobufDecodeProgrammer_callReader("index", nil)),
455
+ }),
456
+ protobufDecodeProgrammer_factory.NewWhileStatement(
457
+ protobufDecodeProgrammer_lessThan(protobufDecodeProgrammer_callReader("index", nil), protobufDecodeProgrammer_factory.NewIdentifier("piece")),
458
+ protobufDecodeProgrammer_factory.NewExpressionStatement(protobufDecodeProgrammer_arrayPush(props.Accessor, decoder)),
459
+ ),
460
+ }), true),
461
+ protobufDecodeProgrammer_factory.NewExpressionStatement(protobufDecodeProgrammer_arrayPush(props.Accessor, decoder)),
462
+ ))
463
+ } else {
464
+ statements = append(statements, protobufDecodeProgrammer_factory.NewExpressionStatement(protobufDecodeProgrammer_arrayPush(props.Accessor, decoder)))
465
+ }
466
+ return statements
467
467
  }
468
468
 
469
469
  func protobufDecodeProgrammer_decode_regular_object(props struct {
470
- Top bool
471
- Object *schemametadata.MetadataObjectType
470
+ Top bool
471
+ Object *schemametadata.MetadataObjectType
472
472
  }) *shimast.Node {
473
- index := 0
474
- if props.Object != nil {
475
- index = props.Object.Index
476
- }
477
- args := []*shimast.Node{protobufDecodeProgrammer_factory.NewIdentifier("reader")}
478
- if props.Top == false {
479
- args = append(args, protobufDecodeProgrammer_callReader("uint32", nil))
480
- }
481
- return protobufDecodeProgrammer_factory.NewCallExpression(
482
- protobufDecodeProgrammer_factory.NewIdentifier(fmt.Sprintf("%so%d", protobufDecodeProgrammer_PREFIX, index)),
483
- nil,
484
- nil,
485
- protobufDecodeProgrammer_factory.NewNodeList(args),
486
- shimast.NodeFlagsNone,
487
- )
473
+ index := 0
474
+ if props.Object != nil {
475
+ index = props.Object.Index
476
+ }
477
+ args := []*shimast.Node{protobufDecodeProgrammer_factory.NewIdentifier("reader")}
478
+ if props.Top == false {
479
+ args = append(args, protobufDecodeProgrammer_callReader("uint32", nil))
480
+ }
481
+ return protobufDecodeProgrammer_factory.NewCallExpression(
482
+ protobufDecodeProgrammer_factory.NewIdentifier(fmt.Sprintf("%so%d", protobufDecodeProgrammer_PREFIX, index)),
483
+ nil,
484
+ nil,
485
+ protobufDecodeProgrammer_factory.NewNodeList(args),
486
+ shimast.NodeFlagsNone,
487
+ )
488
488
  }
489
489
 
490
490
  func protobufDecodeProgrammer_decode_map(props protobufDecodeProgrammer_decodeMapProps) []*shimast.Node {
491
- statements := []*shimast.Node{}
492
- if props.Required {
493
- statements = append(statements, protobufDecodeProgrammer_factory.NewExpressionStatement(
494
- protobufDecodeProgrammer_assignment(props.Accessor, shimast.KindQuestionQuestionEqualsToken, props.Initializer),
495
- ))
496
- }
497
- statements = append(statements, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
498
- Name: "piece",
499
- Value: protobufDecodeProgrammer_add(protobufDecodeProgrammer_callReader("uint32", nil), protobufDecodeProgrammer_callReader("index", nil)),
500
- }))
501
- statements = append(statements, protobufDecodeProgrammer_write_object_function_body(protobufDecodeProgrammer_objectBodyProps{
502
- Context: props.Context,
503
- Condition: protobufDecodeProgrammer_lessThan(protobufDecodeProgrammer_callReader("index", nil), protobufDecodeProgrammer_factory.NewIdentifier("piece")),
504
- Tag: "kind",
505
- Output: "entry",
506
- Object: protobufDecodeProgrammer_createObjectType([]struct {
507
- Key string
508
- Value *schemametadata.MetadataSchema
509
- }{
510
- {Key: "key", Value: props.Key},
511
- {Key: "value", Value: props.Value},
512
- }),
513
- })...)
514
- if props.Required == false {
515
- statements = append(statements, protobufDecodeProgrammer_factory.NewExpressionStatement(
516
- protobufDecodeProgrammer_assignment(props.Accessor, shimast.KindQuestionQuestionEqualsToken, props.Initializer),
517
- ))
518
- }
519
- statements = append(statements, protobufDecodeProgrammer_factory.NewExpressionStatement(props.Setter()))
520
- return []*shimast.Node{
521
- protobufDecodeProgrammer_factory.NewExpressionStatement(nativefactories.ExpressionFactory.SelfCall(
522
- protobufDecodeProgrammer_factory.NewBlock(protobufDecodeProgrammer_factory.NewNodeList(statements), true),
523
- )),
524
- }
491
+ statements := []*shimast.Node{}
492
+ if props.Required {
493
+ statements = append(statements, protobufDecodeProgrammer_factory.NewExpressionStatement(
494
+ protobufDecodeProgrammer_assignment(props.Accessor, shimast.KindQuestionQuestionEqualsToken, props.Initializer),
495
+ ))
496
+ }
497
+ statements = append(statements, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
498
+ Name: "piece",
499
+ Value: protobufDecodeProgrammer_add(protobufDecodeProgrammer_callReader("uint32", nil), protobufDecodeProgrammer_callReader("index", nil)),
500
+ }))
501
+ statements = append(statements, protobufDecodeProgrammer_write_object_function_body(protobufDecodeProgrammer_objectBodyProps{
502
+ Context: props.Context,
503
+ Condition: protobufDecodeProgrammer_lessThan(protobufDecodeProgrammer_callReader("index", nil), protobufDecodeProgrammer_factory.NewIdentifier("piece")),
504
+ Tag: "kind",
505
+ Output: "entry",
506
+ Object: protobufDecodeProgrammer_createObjectType([]struct {
507
+ Key string
508
+ Value *schemametadata.MetadataSchema
509
+ }{
510
+ {Key: "key", Value: props.Key},
511
+ {Key: "value", Value: props.Value},
512
+ }),
513
+ })...)
514
+ if props.Required == false {
515
+ statements = append(statements, protobufDecodeProgrammer_factory.NewExpressionStatement(
516
+ protobufDecodeProgrammer_assignment(props.Accessor, shimast.KindQuestionQuestionEqualsToken, props.Initializer),
517
+ ))
518
+ }
519
+ statements = append(statements, protobufDecodeProgrammer_factory.NewExpressionStatement(props.Setter()))
520
+ return []*shimast.Node{
521
+ protobufDecodeProgrammer_factory.NewExpressionStatement(nativefactories.ExpressionFactory.SelfCall(
522
+ protobufDecodeProgrammer_factory.NewBlock(protobufDecodeProgrammer_factory.NewNodeList(statements), true),
523
+ )),
524
+ }
525
525
  }
526
526
 
527
527
  func protobufDecodeProgrammer_decode_array_value(schema schemaprotobuf.IProtobufSchema) *shimast.Node {
528
- switch protobufDecodeProgrammer_schemaType(schema) {
529
- case "bytes":
530
- return protobufDecodeProgrammer_callReader("bytes", nil)
531
- case "bool":
532
- return protobufDecodeProgrammer_callReader("bool", nil)
533
- case "bigint":
534
- return protobufDecodeProgrammer_callReader(protobufDecodeProgrammer_bigintName(schema), nil)
535
- case "number":
536
- return protobufDecodeProgrammer_decode_number(schema)
537
- case "string":
538
- return protobufDecodeProgrammer_callReader("string", nil)
539
- case "object":
540
- return protobufDecodeProgrammer_decode_regular_object(struct {
541
- Top bool
542
- Object *schemametadata.MetadataObjectType
543
- }{Top: false, Object: protobufDecodeProgrammer_objectSchema(schema)})
544
- default:
545
- panic("unreachable condition")
546
- }
528
+ switch protobufDecodeProgrammer_schemaType(schema) {
529
+ case "bytes":
530
+ return protobufDecodeProgrammer_callReader("bytes", nil)
531
+ case "bool":
532
+ return protobufDecodeProgrammer_callReader("bool", nil)
533
+ case "bigint":
534
+ return protobufDecodeProgrammer_callReader(protobufDecodeProgrammer_bigintName(schema), nil)
535
+ case "number":
536
+ return protobufDecodeProgrammer_decode_number(schema)
537
+ case "string":
538
+ return protobufDecodeProgrammer_callReader("string", nil)
539
+ case "object":
540
+ return protobufDecodeProgrammer_decode_regular_object(struct {
541
+ Top bool
542
+ Object *schemametadata.MetadataObjectType
543
+ }{Top: false, Object: protobufDecodeProgrammer_objectSchema(schema)})
544
+ default:
545
+ panic("unreachable condition")
546
+ }
547
547
  }
548
548
 
549
549
  func protobufDecodeProgrammer_callReader(method string, args []*shimast.Node) *shimast.Node {
550
- return protobufDecodeProgrammer_factory.NewCallExpression(
551
- nativefactories.IdentifierFactory.Access(protobufDecodeProgrammer_factory.NewIdentifier("reader"), method),
552
- nil,
553
- nil,
554
- protobufDecodeProgrammer_factory.NewNodeList(args),
555
- shimast.NodeFlagsNone,
556
- )
550
+ return protobufDecodeProgrammer_factory.NewCallExpression(
551
+ nativefactories.IdentifierFactory.Access(protobufDecodeProgrammer_factory.NewIdentifier("reader"), method),
552
+ nil,
553
+ nil,
554
+ protobufDecodeProgrammer_factory.NewNodeList(args),
555
+ shimast.NodeFlagsNone,
556
+ )
557
557
  }
558
558
 
559
559
  func protobufDecodeProgrammer_caseClause(index int, title string, statements []*shimast.Node) *shimast.Node {
560
- body := []*shimast.Node{
561
- protobufDecodeProgrammer_factory.NewExpressionStatement(protobufDecodeProgrammer_factory.NewIdentifier("// " + title)),
562
- }
563
- body = append(body, statements...)
564
- body = append(body, protobufDecodeProgrammer_factory.NewBreakStatement(nil))
565
- return protobufDecodeProgrammer_factory.NewCaseOrDefaultClause(
566
- shimast.KindCaseClause,
567
- nativefactories.ExpressionFactory.Number(index),
568
- protobufDecodeProgrammer_factory.NewNodeList(body),
569
- )
560
+ body := []*shimast.Node{
561
+ protobufDecodeProgrammer_factory.NewExpressionStatement(protobufDecodeProgrammer_factory.NewIdentifier("// " + title)),
562
+ }
563
+ body = append(body, statements...)
564
+ body = append(body, protobufDecodeProgrammer_factory.NewBreakStatement(nil))
565
+ return protobufDecodeProgrammer_factory.NewCaseOrDefaultClause(
566
+ shimast.KindCaseClause,
567
+ nativefactories.ExpressionFactory.Number(index),
568
+ protobufDecodeProgrammer_factory.NewNodeList(body),
569
+ )
570
570
  }
571
571
 
572
572
  func protobufDecodeProgrammer_createObjectType(definitions []struct {
573
- Key string
574
- Value *schemametadata.MetadataSchema
573
+ Key string
574
+ Value *schemametadata.MetadataSchema
575
575
  }) *schemametadata.MetadataObjectType {
576
- properties := make([]*schemametadata.MetadataProperty, 0, len(definitions))
577
- for _, def := range definitions {
578
- properties = append(properties, schemametadata.MetadataProperty_create(schemametadata.MetadataProperty{
579
- Key: nativefactories.MetadataFactory.SoleLiteral(def.Key),
580
- Value: def.Value,
581
- JsDocTags: []schemametadata.IJsDocTagInfo{},
582
- }))
583
- }
584
- protobufDecodeProgrammer_objectSequence++
585
- obj := schemametadata.MetadataObjectType_create(schemametadata.MetadataObjectType{
586
- Name: fmt.Sprintf("object.o%d", protobufDecodeProgrammer_objectSequence),
587
- Properties: properties,
588
- JsDocTags: []schemametadata.IJsDocTagInfo{},
589
- Index: -1,
590
- Validated: true,
591
- Recursive: false,
592
- Nullables: []bool{false},
593
- })
594
- nativefactories.ProtobufFactory.EmplaceObject(obj)
595
- return obj
576
+ properties := make([]*schemametadata.MetadataProperty, 0, len(definitions))
577
+ for _, def := range definitions {
578
+ properties = append(properties, schemametadata.MetadataProperty_create(schemametadata.MetadataProperty{
579
+ Key: nativefactories.MetadataFactory.SoleLiteral(def.Key),
580
+ Value: def.Value,
581
+ JsDocTags: []schemametadata.IJsDocTagInfo{},
582
+ }))
583
+ }
584
+ protobufDecodeProgrammer_objectSequence++
585
+ obj := schemametadata.MetadataObjectType_create(schemametadata.MetadataObjectType{
586
+ Name: fmt.Sprintf("object.o%d", protobufDecodeProgrammer_objectSequence),
587
+ Properties: properties,
588
+ JsDocTags: []schemametadata.IJsDocTagInfo{},
589
+ Index: -1,
590
+ Validated: true,
591
+ Recursive: false,
592
+ Nullables: []bool{false},
593
+ })
594
+ nativefactories.ProtobufFactory.EmplaceObject(obj)
595
+ return obj
596
596
  }
597
597
 
598
598
  func protobufDecodeProgrammer_hasStringDefault(value *schemametadata.MetadataSchema) bool {
599
- for _, atomic := range value.Atomics {
600
- if atomic.Type == "string" {
601
- return true
602
- }
603
- }
604
- for _, constant := range value.Constants {
605
- if constant.Type != "string" {
606
- continue
607
- }
608
- for _, v := range constant.Values {
609
- if str, ok := v.Value.(string); ok && str == "" {
610
- return true
611
- }
612
- }
613
- }
614
- for _, template := range value.Templates {
615
- if len(template.Row) == 1 && template.Row[0].GetName() == "string" {
616
- return true
617
- }
618
- }
619
- return false
599
+ for _, atomic := range value.Atomics {
600
+ if atomic.Type == "string" {
601
+ return true
602
+ }
603
+ }
604
+ for _, constant := range value.Constants {
605
+ if constant.Type != "string" {
606
+ continue
607
+ }
608
+ for _, v := range constant.Values {
609
+ if str, ok := v.Value.(string); ok && str == "" {
610
+ return true
611
+ }
612
+ }
613
+ }
614
+ for _, template := range value.Templates {
615
+ if len(template.Row) == 1 && template.Row[0].GetName() == "string" {
616
+ return true
617
+ }
618
+ }
619
+ return false
620
620
  }
621
621
 
622
622
  func protobufDecodeProgrammer_hasDynamicObject(value *schemametadata.MetadataSchema) bool {
623
- if len(value.Objects) == 0 {
624
- return false
625
- }
626
- for _, object := range value.Objects {
627
- if nativehelpers.ProtobufUtil.IsStaticObject(object.Type) == false {
628
- return true
629
- }
630
- }
631
- return false
623
+ if len(value.Objects) == 0 {
624
+ return false
625
+ }
626
+ for _, object := range value.Objects {
627
+ if nativehelpers.ProtobufUtil.IsStaticObject(object.Type) == false {
628
+ return true
629
+ }
630
+ }
631
+ return false
632
632
  }
633
633
 
634
634
  func protobufDecodeProgrammer_objectNeedsProtobuf(object *schemametadata.MetadataObjectType) bool {
635
- if object == nil {
636
- return false
637
- }
638
- for _, property := range object.Properties {
639
- if property.Of_protobuf_ == nil {
640
- return true
641
- }
642
- }
643
- return false
635
+ if object == nil {
636
+ return false
637
+ }
638
+ for _, property := range object.Properties {
639
+ if property.Of_protobuf_ == nil {
640
+ return true
641
+ }
642
+ }
643
+ return false
644
644
  }
645
645
 
646
646
  func protobufDecodeProgrammer_arrayPush(accessor *shimast.Node, value *shimast.Node) *shimast.Node {
647
- return protobufDecodeProgrammer_factory.NewCallExpression(
648
- nativefactories.IdentifierFactory.Access(accessor, "push"),
649
- nil,
650
- nil,
651
- protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{value}),
652
- shimast.NodeFlagsNone,
653
- )
647
+ return protobufDecodeProgrammer_factory.NewCallExpression(
648
+ nativefactories.IdentifierFactory.Access(accessor, "push"),
649
+ nil,
650
+ nil,
651
+ protobufDecodeProgrammer_factory.NewNodeList([]*shimast.Node{value}),
652
+ shimast.NodeFlagsNone,
653
+ )
654
654
  }
655
655
 
656
656
  func protobufDecodeProgrammer_assignment(left *shimast.Node, operator shimast.Kind, right *shimast.Node) *shimast.Node {
657
- return protobufDecodeProgrammer_factory.NewBinaryExpression(nil, left, nil, protobufDecodeProgrammer_factory.NewToken(operator), right)
657
+ return protobufDecodeProgrammer_factory.NewBinaryExpression(nil, left, nil, protobufDecodeProgrammer_factory.NewToken(operator), right)
658
658
  }
659
659
 
660
660
  func protobufDecodeProgrammer_lessThan(left *shimast.Node, right *shimast.Node) *shimast.Node {
661
- return protobufDecodeProgrammer_factory.NewBinaryExpression(nil, left, nil, protobufDecodeProgrammer_factory.NewToken(shimast.KindLessThanToken), right)
661
+ return protobufDecodeProgrammer_factory.NewBinaryExpression(nil, left, nil, protobufDecodeProgrammer_factory.NewToken(shimast.KindLessThanToken), right)
662
662
  }
663
663
 
664
664
  func protobufDecodeProgrammer_add(left *shimast.Node, right *shimast.Node) *shimast.Node {
665
- return protobufDecodeProgrammer_factory.NewBinaryExpression(nil, left, nil, protobufDecodeProgrammer_factory.NewToken(shimast.KindPlusToken), right)
665
+ return protobufDecodeProgrammer_factory.NewBinaryExpression(nil, left, nil, protobufDecodeProgrammer_factory.NewToken(shimast.KindPlusToken), right)
666
666
  }
667
667
 
668
668
  func protobufDecodeProgrammer_unsigned_right_shift(left *shimast.Node, right *shimast.Node) *shimast.Node {
669
- return protobufDecodeProgrammer_factory.NewBinaryExpression(nil, left, nil, protobufDecodeProgrammer_factory.NewToken(shimast.KindGreaterThanGreaterThanGreaterThanToken), right)
669
+ return protobufDecodeProgrammer_factory.NewBinaryExpression(nil, left, nil, protobufDecodeProgrammer_factory.NewToken(shimast.KindGreaterThanGreaterThanGreaterThanToken), right)
670
670
  }
671
671
 
672
672
  func protobufDecodeProgrammer_bitwise_and(left *shimast.Node, right *shimast.Node) *shimast.Node {
673
- return protobufDecodeProgrammer_factory.NewBinaryExpression(nil, left, nil, protobufDecodeProgrammer_factory.NewToken(shimast.KindAmpersandToken), right)
673
+ return protobufDecodeProgrammer_factory.NewBinaryExpression(nil, left, nil, protobufDecodeProgrammer_factory.NewToken(shimast.KindAmpersandToken), right)
674
674
  }
675
675
 
676
676
  func protobufDecodeProgrammer_strict_equal(left *shimast.Node, right *shimast.Node) *shimast.Node {
677
- return protobufDecodeProgrammer_factory.NewBinaryExpression(nil, left, nil, protobufDecodeProgrammer_factory.NewToken(shimast.KindEqualsEqualsEqualsToken), right)
677
+ return protobufDecodeProgrammer_factory.NewBinaryExpression(nil, left, nil, protobufDecodeProgrammer_factory.NewToken(shimast.KindEqualsEqualsEqualsToken), right)
678
678
  }
679
679
 
680
680
  func protobufDecodeProgrammer_indexValue(index *int) int {
681
- if index == nil {
682
- return 0
683
- }
684
- return *index
681
+ if index == nil {
682
+ return 0
683
+ }
684
+ return *index
685
685
  }
686
686
 
687
687
  func protobufDecodeProgrammer_propertyIndex(schema schemaprotobuf.IProtobufPropertyType) *int {
688
- switch typed := schema.(type) {
689
- case *schemaprotobuf.IProtobufPropertyType_IByte:
690
- return typed.Index
691
- case *schemaprotobuf.IProtobufPropertyType_IBoolean:
692
- return typed.Index
693
- case *schemaprotobuf.IProtobufPropertyType_IBigint:
694
- return typed.Index
695
- case *schemaprotobuf.IProtobufPropertyType_INumber:
696
- return typed.Index
697
- case *schemaprotobuf.IProtobufPropertyType_IString:
698
- return typed.Index
699
- case *schemaprotobuf.IProtobufPropertyType_IArray:
700
- return typed.Index
701
- case *schemaprotobuf.IProtobufPropertyType_IObject:
702
- return typed.Index
703
- case *schemaprotobuf.IProtobufPropertyType_IMap:
704
- return typed.Index
705
- default:
706
- return nil
707
- }
688
+ switch typed := schema.(type) {
689
+ case *schemaprotobuf.IProtobufPropertyType_IByte:
690
+ return typed.Index
691
+ case *schemaprotobuf.IProtobufPropertyType_IBoolean:
692
+ return typed.Index
693
+ case *schemaprotobuf.IProtobufPropertyType_IBigint:
694
+ return typed.Index
695
+ case *schemaprotobuf.IProtobufPropertyType_INumber:
696
+ return typed.Index
697
+ case *schemaprotobuf.IProtobufPropertyType_IString:
698
+ return typed.Index
699
+ case *schemaprotobuf.IProtobufPropertyType_IArray:
700
+ return typed.Index
701
+ case *schemaprotobuf.IProtobufPropertyType_IObject:
702
+ return typed.Index
703
+ case *schemaprotobuf.IProtobufPropertyType_IMap:
704
+ return typed.Index
705
+ default:
706
+ return nil
707
+ }
708
708
  }
709
709
 
710
710
  func protobufDecodeProgrammer_schemaType(schema schemaprotobuf.IProtobufSchema) string {
711
- switch typed := schema.(type) {
712
- case *schemaprotobuf.IProtobufPropertyType_IByte:
713
- return typed.Type
714
- case *schemaprotobuf.IProtobufPropertyType_IBoolean:
715
- return typed.Type
716
- case *schemaprotobuf.IProtobufPropertyType_IBigint:
717
- return typed.Type
718
- case *schemaprotobuf.IProtobufPropertyType_INumber:
719
- return typed.Type
720
- case *schemaprotobuf.IProtobufPropertyType_IString:
721
- return typed.Type
722
- case *schemaprotobuf.IProtobufPropertyType_IArray:
723
- return typed.Type
724
- case *schemaprotobuf.IProtobufPropertyType_IObject:
725
- return typed.Type
726
- case *schemaprotobuf.IProtobufPropertyType_IMap:
727
- return typed.Type
728
- case schemaprotobuf.IProtobufSchema_IByte:
729
- return typed.Type
730
- case schemaprotobuf.IProtobufSchema_IBoolean:
731
- return typed.Type
732
- case schemaprotobuf.IProtobufSchema_IBigint:
733
- return typed.Type
734
- case schemaprotobuf.IProtobufSchema_INumber:
735
- return typed.Type
736
- case schemaprotobuf.IProtobufSchema_IString:
737
- return typed.Type
738
- case schemaprotobuf.IProtobufSchema_IArray:
739
- return typed.Type
740
- case schemaprotobuf.IProtobufSchema_IObject:
741
- return typed.Type
742
- case schemaprotobuf.IProtobufSchema_IMap:
743
- return typed.Type
744
- default:
745
- return ""
746
- }
711
+ switch typed := schema.(type) {
712
+ case *schemaprotobuf.IProtobufPropertyType_IByte:
713
+ return typed.Type
714
+ case *schemaprotobuf.IProtobufPropertyType_IBoolean:
715
+ return typed.Type
716
+ case *schemaprotobuf.IProtobufPropertyType_IBigint:
717
+ return typed.Type
718
+ case *schemaprotobuf.IProtobufPropertyType_INumber:
719
+ return typed.Type
720
+ case *schemaprotobuf.IProtobufPropertyType_IString:
721
+ return typed.Type
722
+ case *schemaprotobuf.IProtobufPropertyType_IArray:
723
+ return typed.Type
724
+ case *schemaprotobuf.IProtobufPropertyType_IObject:
725
+ return typed.Type
726
+ case *schemaprotobuf.IProtobufPropertyType_IMap:
727
+ return typed.Type
728
+ case schemaprotobuf.IProtobufSchema_IByte:
729
+ return typed.Type
730
+ case schemaprotobuf.IProtobufSchema_IBoolean:
731
+ return typed.Type
732
+ case schemaprotobuf.IProtobufSchema_IBigint:
733
+ return typed.Type
734
+ case schemaprotobuf.IProtobufSchema_INumber:
735
+ return typed.Type
736
+ case schemaprotobuf.IProtobufSchema_IString:
737
+ return typed.Type
738
+ case schemaprotobuf.IProtobufSchema_IArray:
739
+ return typed.Type
740
+ case schemaprotobuf.IProtobufSchema_IObject:
741
+ return typed.Type
742
+ case schemaprotobuf.IProtobufSchema_IMap:
743
+ return typed.Type
744
+ default:
745
+ return ""
746
+ }
747
747
  }
748
748
 
749
749
  func protobufDecodeProgrammer_numberName(schema schemaprotobuf.IProtobufSchema) string {
750
- switch typed := schema.(type) {
751
- case *schemaprotobuf.IProtobufPropertyType_INumber:
752
- return typed.Name
753
- case schemaprotobuf.IProtobufSchema_INumber:
754
- return typed.Name
755
- default:
756
- return ""
757
- }
750
+ switch typed := schema.(type) {
751
+ case *schemaprotobuf.IProtobufPropertyType_INumber:
752
+ return typed.Name
753
+ case schemaprotobuf.IProtobufSchema_INumber:
754
+ return typed.Name
755
+ default:
756
+ return ""
757
+ }
758
758
  }
759
759
 
760
760
  func protobufDecodeProgrammer_bigintName(schema schemaprotobuf.IProtobufSchema) string {
761
- switch typed := schema.(type) {
762
- case *schemaprotobuf.IProtobufPropertyType_IBigint:
763
- return typed.Name
764
- case schemaprotobuf.IProtobufSchema_IBigint:
765
- return typed.Name
766
- default:
767
- return ""
768
- }
761
+ switch typed := schema.(type) {
762
+ case *schemaprotobuf.IProtobufPropertyType_IBigint:
763
+ return typed.Name
764
+ case schemaprotobuf.IProtobufSchema_IBigint:
765
+ return typed.Name
766
+ default:
767
+ return ""
768
+ }
769
769
  }
770
770
 
771
771
  func protobufDecodeProgrammer_arrayValue(schema schemaprotobuf.IProtobufSchema) schemaprotobuf.IProtobufSchema {
772
- switch typed := schema.(type) {
773
- case *schemaprotobuf.IProtobufPropertyType_IArray:
774
- return typed.Value
775
- case schemaprotobuf.IProtobufSchema_IArray:
776
- return typed.Value
777
- default:
778
- return nil
779
- }
772
+ switch typed := schema.(type) {
773
+ case *schemaprotobuf.IProtobufPropertyType_IArray:
774
+ return typed.Value
775
+ case schemaprotobuf.IProtobufSchema_IArray:
776
+ return typed.Value
777
+ default:
778
+ return nil
779
+ }
780
780
  }
781
781
 
782
782
  func protobufDecodeProgrammer_arrayValueName(schema schemaprotobuf.IProtobufSchema) string {
783
- switch typed := schema.(type) {
784
- case *schemaprotobuf.IProtobufPropertyType_IArray:
785
- if array, ok := typed.Array.(*schemametadata.MetadataArrayType); ok && array.Value != nil {
786
- return array.Value.GetName()
787
- }
788
- case schemaprotobuf.IProtobufSchema_IArray:
789
- if array, ok := typed.Array.(*schemametadata.MetadataArrayType); ok && array.Value != nil {
790
- return array.Value.GetName()
791
- }
792
- }
793
- value := protobufDecodeProgrammer_arrayValue(schema)
794
- if value == nil {
795
- return "unknown"
796
- }
797
- return protobufDecodeProgrammer_schemaType(value)
783
+ switch typed := schema.(type) {
784
+ case *schemaprotobuf.IProtobufPropertyType_IArray:
785
+ if array, ok := typed.Array.(*schemametadata.MetadataArrayType); ok && array.Value != nil {
786
+ return array.Value.GetName()
787
+ }
788
+ case schemaprotobuf.IProtobufSchema_IArray:
789
+ if array, ok := typed.Array.(*schemametadata.MetadataArrayType); ok && array.Value != nil {
790
+ return array.Value.GetName()
791
+ }
792
+ }
793
+ value := protobufDecodeProgrammer_arrayValue(schema)
794
+ if value == nil {
795
+ return "unknown"
796
+ }
797
+ return protobufDecodeProgrammer_schemaType(value)
798
798
  }
799
799
 
800
800
  func protobufDecodeProgrammer_objectSchema(schema schemaprotobuf.IProtobufSchema) *schemametadata.MetadataObjectType {
801
- switch typed := schema.(type) {
802
- case *schemaprotobuf.IProtobufPropertyType_IObject:
803
- if object, ok := typed.Object.(*schemametadata.MetadataObjectType); ok {
804
- return object
805
- }
806
- case schemaprotobuf.IProtobufSchema_IObject:
807
- if object, ok := typed.Object.(*schemametadata.MetadataObjectType); ok {
808
- return object
809
- }
810
- }
811
- return nil
801
+ switch typed := schema.(type) {
802
+ case *schemaprotobuf.IProtobufPropertyType_IObject:
803
+ if object, ok := typed.Object.(*schemametadata.MetadataObjectType); ok {
804
+ return object
805
+ }
806
+ case schemaprotobuf.IProtobufSchema_IObject:
807
+ if object, ok := typed.Object.(*schemametadata.MetadataObjectType); ok {
808
+ return object
809
+ }
810
+ }
811
+ return nil
812
812
  }
813
813
 
814
814
  func protobufDecodeProgrammer_isPackedArrayValue(schema schemaprotobuf.IProtobufSchema) bool {
815
- typ := protobufDecodeProgrammer_schemaType(schema)
816
- return typ == "bool" || typ == "bigint" || typ == "number"
815
+ typ := protobufDecodeProgrammer_schemaType(schema)
816
+ return typ == "bool" || typ == "bigint" || typ == "number"
817
817
  }
818
818
 
819
819
  func protobufDecodeProgrammer_import_type(context nativecontext.ITypiaContext, props nativeprogrammers.ImportProgrammer_TypeProps) *shimast.Node {
820
- if importer, ok := context.Importer.(interface {
821
- Type(nativeprogrammers.ImportProgrammer_TypeProps) *shimast.Node
822
- }); ok {
823
- return importer.Type(props)
824
- }
825
- if str, ok := props.Name.(string); ok {
826
- return protobufDecodeProgrammer_factory.NewTypeReferenceNode(protobufDecodeProgrammer_factory.NewIdentifier(str), protobufDecodeProgrammer_factory.NewNodeList(props.Arguments))
827
- }
828
- return props.Name.(*shimast.Node)
820
+ if importer, ok := context.Importer.(interface {
821
+ Type(nativeprogrammers.ImportProgrammer_TypeProps) *shimast.Node
822
+ }); ok {
823
+ return importer.Type(props)
824
+ }
825
+ if str, ok := props.Name.(string); ok {
826
+ return protobufDecodeProgrammer_factory.NewTypeReferenceNode(protobufDecodeProgrammer_factory.NewIdentifier(str), protobufDecodeProgrammer_factory.NewNodeList(props.Arguments))
827
+ }
828
+ return props.Name.(*shimast.Node)
829
829
  }
830
830
 
831
831
  func protobufDecodeProgrammer_internal(context nativecontext.ITypiaContext, name string) *shimast.Node {
832
- if importer, ok := context.Importer.(interface {
833
- Internal(string) *shimast.Node
834
- }); ok {
835
- return importer.Internal(name)
836
- }
837
- return protobufDecodeProgrammer_factory.NewIdentifier(name)
832
+ if importer, ok := context.Importer.(interface {
833
+ Internal(string) *shimast.Node
834
+ }); ok {
835
+ return importer.Internal(name)
836
+ }
837
+ return protobufDecodeProgrammer_factory.NewIdentifier(name)
838
838
  }
839
839
 
840
840
  func protobufDecodeProgrammer_method_text(modulo *shimast.Node) string {
841
- if modulo == nil {
842
- return ""
843
- }
844
- return modulo.Text()
841
+ if modulo == nil {
842
+ return ""
843
+ }
844
+ return modulo.Text()
845
845
  }