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,18 +1,18 @@
1
1
  package programmers
2
2
 
3
3
  import (
4
- "fmt"
5
- "math"
6
- "strings"
4
+ "fmt"
5
+ "math"
6
+ "strings"
7
7
 
8
- shimast "github.com/microsoft/typescript-go/shim/ast"
9
- shimchecker "github.com/microsoft/typescript-go/shim/checker"
10
- nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
11
- nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
12
- nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
13
- nativeinternal "github.com/samchon/typia/packages/typia/native/core/programmers/internal"
14
- nativeiterate "github.com/samchon/typia/packages/typia/native/core/programmers/iterate"
15
- schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
8
+ shimast "github.com/microsoft/typescript-go/shim/ast"
9
+ shimchecker "github.com/microsoft/typescript-go/shim/checker"
10
+ nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
11
+ nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
12
+ nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
13
+ nativeinternal "github.com/samchon/typia/packages/typia/native/core/programmers/internal"
14
+ nativeiterate "github.com/samchon/typia/packages/typia/native/core/programmers/iterate"
15
+ schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
16
16
  )
17
17
 
18
18
  type randomProgrammerNamespace struct{}
@@ -20,1252 +20,1252 @@ type randomProgrammerNamespace struct{}
20
20
  var RandomProgrammer = randomProgrammerNamespace{}
21
21
 
22
22
  type RandomProgrammer_IProps struct {
23
- Context nativecontext.ITypiaContext
24
- Modulo *shimast.Node
25
- Type *shimchecker.Type
26
- Name *string
27
- Init *shimast.Node
23
+ Context nativecontext.ITypiaContext
24
+ Modulo *shimast.Node
25
+ Type *shimchecker.Type
26
+ Name *string
27
+ Init *shimast.Node
28
28
  }
29
29
 
30
30
  type RandomProgrammer_IDecomposeProps struct {
31
- Context nativecontext.ITypiaContext
32
- Functor *nativehelpers.FunctionProgrammer
33
- Type *shimchecker.Type
34
- Name *string
35
- Init *shimast.Node
31
+ Context nativecontext.ITypiaContext
32
+ Functor *nativehelpers.FunctionProgrammer
33
+ Type *shimchecker.Type
34
+ Name *string
35
+ Init *shimast.Node
36
36
  }
37
37
 
38
38
  type randomProgrammer_IExplore struct {
39
- Function bool
40
- Recursive bool
39
+ Function bool
40
+ Recursive bool
41
41
  }
42
42
 
43
43
  type randomProgrammer_decodeProps struct {
44
- Context nativecontext.ITypiaContext
45
- Functor *nativehelpers.FunctionProgrammer
46
- Explore randomProgrammer_IExplore
47
- Metadata *schemametadata.MetadataSchema
44
+ Context nativecontext.ITypiaContext
45
+ Functor *nativehelpers.FunctionProgrammer
46
+ Explore randomProgrammer_IExplore
47
+ Metadata *schemametadata.MetadataSchema
48
48
  }
49
49
 
50
50
  type randomProgrammer_decodeAtomicProps struct {
51
- Context nativecontext.ITypiaContext
52
- Atomic *schemametadata.MetadataAtomic
51
+ Context nativecontext.ITypiaContext
52
+ Atomic *schemametadata.MetadataAtomic
53
53
  }
54
54
 
55
55
  type randomProgrammer_decodeArrayProps struct {
56
- Context nativecontext.ITypiaContext
57
- Functor *nativehelpers.FunctionProgrammer
58
- Explore randomProgrammer_IExplore
59
- Array *schemametadata.MetadataArray
56
+ Context nativecontext.ITypiaContext
57
+ Functor *nativehelpers.FunctionProgrammer
58
+ Explore randomProgrammer_IExplore
59
+ Array *schemametadata.MetadataArray
60
60
  }
61
61
 
62
62
  type randomProgrammer_decodeTupleProps struct {
63
- Context nativecontext.ITypiaContext
64
- Functor *nativehelpers.FunctionProgrammer
65
- Explore randomProgrammer_IExplore
66
- Tuple *schemametadata.MetadataTuple
63
+ Context nativecontext.ITypiaContext
64
+ Functor *nativehelpers.FunctionProgrammer
65
+ Explore randomProgrammer_IExplore
66
+ Tuple *schemametadata.MetadataTuple
67
67
  }
68
68
 
69
69
  type randomProgrammer_decodeObjectProps struct {
70
- Functor *nativehelpers.FunctionProgrammer
71
- Explore randomProgrammer_IExplore
72
- Object *schemametadata.MetadataObjectType
70
+ Functor *nativehelpers.FunctionProgrammer
71
+ Explore randomProgrammer_IExplore
72
+ Object *schemametadata.MetadataObjectType
73
73
  }
74
74
 
75
75
  const (
76
- randomProgrammer_PREFIX_OBJECT = "_ro"
77
- randomProgrammer_PREFIX_ARRAY = "_ra"
78
- randomProgrammer_PREFIX_TUPLE = "_rt"
76
+ randomProgrammer_PREFIX_OBJECT = "_ro"
77
+ randomProgrammer_PREFIX_ARRAY = "_ra"
78
+ randomProgrammer_PREFIX_TUPLE = "_rt"
79
79
  )
80
80
 
81
81
  var randomProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
82
82
 
83
83
  func (randomProgrammerNamespace) Decompose(props RandomProgrammer_IDecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
84
- collection := schemametadata.NewMetadataCollection()
85
- result := nativefactories.MetadataFactory.Analyze(nativefactories.MetadataFactory_IProps{
86
- Checker: props.Context.Checker,
87
- Transformer: props.Context.Transformer,
88
- Options: nativefactories.MetadataFactory_IOptions{
89
- Escape: false,
90
- Constant: true,
91
- Absorb: true,
92
- Validate: RandomProgrammer.Validate,
93
- },
94
- Components: collection,
95
- Type: props.Type,
96
- })
97
- if result.Success == false {
98
- panic(nativecontext.TransformerError_from(struct {
99
- Code string
100
- Errors []nativecontext.TransformerError_MetadataFactory_IError
101
- }{
102
- Code: props.Functor.Method,
103
- Errors: randomProgrammer_errors(result.Errors),
104
- }))
105
- }
84
+ collection := schemametadata.NewMetadataCollection()
85
+ result := nativefactories.MetadataFactory.Analyze(nativefactories.MetadataFactory_IProps{
86
+ Checker: props.Context.Checker,
87
+ Transformer: props.Context.Transformer,
88
+ Options: nativefactories.MetadataFactory_IOptions{
89
+ Escape: false,
90
+ Constant: true,
91
+ Absorb: true,
92
+ Validate: RandomProgrammer.Validate,
93
+ },
94
+ Components: collection,
95
+ Type: props.Type,
96
+ })
97
+ if result.Success == false {
98
+ panic(nativecontext.TransformerError_from(struct {
99
+ Code string
100
+ Errors []nativecontext.TransformerError_MetadataFactory_IError
101
+ }{
102
+ Code: props.Functor.Method,
103
+ Errors: randomProgrammer_errors(result.Errors),
104
+ }))
105
+ }
106
106
 
107
- functions := map[string]*shimast.Node{}
108
- for i, stmt := range randomProgrammer_write_object_functions(struct {
109
- Context nativecontext.ITypiaContext
110
- Functor *nativehelpers.FunctionProgrammer
111
- Collection *schemametadata.MetadataCollection
112
- }{Context: props.Context, Functor: props.Functor, Collection: collection}) {
113
- functions[randomProgrammer_prefix_object(i)] = stmt
114
- }
115
- for i, stmt := range randomProgrammer_write_array_functions(struct {
116
- Context nativecontext.ITypiaContext
117
- Functor *nativehelpers.FunctionProgrammer
118
- Collection *schemametadata.MetadataCollection
119
- }{Context: props.Context, Functor: props.Functor, Collection: collection}) {
120
- functions[randomProgrammer_prefix_array(i)] = stmt
121
- }
122
- for i, stmt := range randomProgrammer_write_tuple_functions(struct {
123
- Context nativecontext.ITypiaContext
124
- Functor *nativehelpers.FunctionProgrammer
125
- Collection *schemametadata.MetadataCollection
126
- }{Context: props.Context, Functor: props.Functor, Collection: collection}) {
127
- functions[randomProgrammer_prefix_tuple(i)] = stmt
128
- }
107
+ functions := map[string]*shimast.Node{}
108
+ for i, stmt := range randomProgrammer_write_object_functions(struct {
109
+ Context nativecontext.ITypiaContext
110
+ Functor *nativehelpers.FunctionProgrammer
111
+ Collection *schemametadata.MetadataCollection
112
+ }{Context: props.Context, Functor: props.Functor, Collection: collection}) {
113
+ functions[randomProgrammer_prefix_object(i)] = stmt
114
+ }
115
+ for i, stmt := range randomProgrammer_write_array_functions(struct {
116
+ Context nativecontext.ITypiaContext
117
+ Functor *nativehelpers.FunctionProgrammer
118
+ Collection *schemametadata.MetadataCollection
119
+ }{Context: props.Context, Functor: props.Functor, Collection: collection}) {
120
+ functions[randomProgrammer_prefix_array(i)] = stmt
121
+ }
122
+ for i, stmt := range randomProgrammer_write_tuple_functions(struct {
123
+ Context nativecontext.ITypiaContext
124
+ Functor *nativehelpers.FunctionProgrammer
125
+ Collection *schemametadata.MetadataCollection
126
+ }{Context: props.Context, Functor: props.Functor, Collection: collection}) {
127
+ functions[randomProgrammer_prefix_tuple(i)] = stmt
128
+ }
129
129
 
130
- randomGeneratorType := randomProgrammer_factory.NewTypeReferenceNode(
131
- randomProgrammer_factory.NewIdentifier("Partial"),
132
- randomProgrammer_factory.NewNodeList([]*shimast.Node{
133
- randomProgrammer_import_type(props.Context, ImportProgrammer_TypeProps{
134
- File: "typia",
135
- Name: "IRandomGenerator",
136
- }),
137
- }),
138
- )
139
- init := props.Init
140
- if init == nil {
141
- init = randomProgrammer_factory.NewToken(shimast.KindQuestionToken)
142
- }
143
- resolvedType := randomProgrammer_import_type(props.Context, ImportProgrammer_TypeProps{
144
- File: "typia",
145
- Name: "Resolved",
146
- Arguments: []*shimast.TypeNode{
147
- randomProgrammer_type_reference(props.Context, props.Type, props.Name),
148
- },
149
- })
150
- return nativeinternal.FeatureProgrammer_IDecomposed{
151
- Functions: functions,
152
- Statements: []*shimast.Node{
153
- nativefactories.StatementFactory.Mut(nativefactories.StatementFactory_MutProps{
154
- Name: "_generator",
155
- Type: randomProgrammer_factory.NewUnionTypeNode(randomProgrammer_factory.NewNodeList([]*shimast.Node{
156
- randomGeneratorType,
157
- randomProgrammer_factory.NewTypeReferenceNode(randomProgrammer_factory.NewIdentifier("undefined"), nil),
158
- })),
159
- }),
160
- },
161
- Arrow: randomProgrammer_factory.NewArrowFunction(
162
- nil,
163
- nil,
164
- randomProgrammer_factory.NewNodeList([]*shimast.Node{
165
- nativefactories.IdentifierFactory.Parameter("generator", randomGeneratorType, init),
166
- }),
167
- resolvedType,
168
- nil,
169
- randomProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
170
- randomProgrammer_factory.NewBlock(randomProgrammer_factory.NewNodeList([]*shimast.Node{
171
- randomProgrammer_factory.NewExpressionStatement(randomProgrammer_factory.NewBinaryExpression(
172
- nil,
173
- randomProgrammer_factory.NewIdentifier("_generator"),
174
- nil,
175
- randomProgrammer_factory.NewToken(shimast.KindEqualsToken),
176
- randomProgrammer_factory.NewIdentifier("generator"),
177
- )),
178
- randomProgrammer_factory.NewReturnStatement(randomProgrammer_decode(randomProgrammer_decodeProps{
179
- Context: props.Context,
180
- Functor: props.Functor,
181
- Explore: randomProgrammer_IExplore{
182
- Function: false,
183
- Recursive: false,
184
- },
185
- Metadata: result.Data,
186
- })),
187
- }), true),
188
- ),
189
- }
130
+ randomGeneratorType := randomProgrammer_factory.NewTypeReferenceNode(
131
+ randomProgrammer_factory.NewIdentifier("Partial"),
132
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{
133
+ randomProgrammer_import_type(props.Context, ImportProgrammer_TypeProps{
134
+ File: "typia",
135
+ Name: "IRandomGenerator",
136
+ }),
137
+ }),
138
+ )
139
+ init := props.Init
140
+ if init == nil {
141
+ init = randomProgrammer_factory.NewToken(shimast.KindQuestionToken)
142
+ }
143
+ resolvedType := randomProgrammer_import_type(props.Context, ImportProgrammer_TypeProps{
144
+ File: "typia",
145
+ Name: "Resolved",
146
+ Arguments: []*shimast.TypeNode{
147
+ randomProgrammer_type_reference(props.Context, props.Type, props.Name),
148
+ },
149
+ })
150
+ return nativeinternal.FeatureProgrammer_IDecomposed{
151
+ Functions: functions,
152
+ Statements: []*shimast.Node{
153
+ nativefactories.StatementFactory.Mut(nativefactories.StatementFactory_MutProps{
154
+ Name: "_generator",
155
+ Type: randomProgrammer_factory.NewUnionTypeNode(randomProgrammer_factory.NewNodeList([]*shimast.Node{
156
+ randomGeneratorType,
157
+ randomProgrammer_factory.NewTypeReferenceNode(randomProgrammer_factory.NewIdentifier("undefined"), nil),
158
+ })),
159
+ }),
160
+ },
161
+ Arrow: randomProgrammer_factory.NewArrowFunction(
162
+ nil,
163
+ nil,
164
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{
165
+ nativefactories.IdentifierFactory.Parameter("generator", randomGeneratorType, init),
166
+ }),
167
+ resolvedType,
168
+ nil,
169
+ randomProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
170
+ randomProgrammer_factory.NewBlock(randomProgrammer_factory.NewNodeList([]*shimast.Node{
171
+ randomProgrammer_factory.NewExpressionStatement(randomProgrammer_factory.NewBinaryExpression(
172
+ nil,
173
+ randomProgrammer_factory.NewIdentifier("_generator"),
174
+ nil,
175
+ randomProgrammer_factory.NewToken(shimast.KindEqualsToken),
176
+ randomProgrammer_factory.NewIdentifier("generator"),
177
+ )),
178
+ randomProgrammer_factory.NewReturnStatement(randomProgrammer_decode(randomProgrammer_decodeProps{
179
+ Context: props.Context,
180
+ Functor: props.Functor,
181
+ Explore: randomProgrammer_IExplore{
182
+ Function: false,
183
+ Recursive: false,
184
+ },
185
+ Metadata: result.Data,
186
+ })),
187
+ }), true),
188
+ ),
189
+ }
190
190
  }
191
191
 
192
192
  func (randomProgrammerNamespace) Write(props RandomProgrammer_IProps) *shimast.Node {
193
- functor := nativehelpers.NewFunctionProgrammer(randomProgrammer_method_text(props.Modulo))
194
- result := RandomProgrammer.Decompose(RandomProgrammer_IDecomposeProps{
195
- Context: props.Context,
196
- Functor: functor,
197
- Type: props.Type,
198
- Name: props.Name,
199
- Init: props.Init,
200
- })
201
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
202
- Modulo: props.Modulo,
203
- Functor: functor,
204
- Result: result,
205
- })
193
+ functor := nativehelpers.NewFunctionProgrammer(randomProgrammer_method_text(props.Modulo))
194
+ result := RandomProgrammer.Decompose(RandomProgrammer_IDecomposeProps{
195
+ Context: props.Context,
196
+ Functor: functor,
197
+ Type: props.Type,
198
+ Name: props.Name,
199
+ Init: props.Init,
200
+ })
201
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
202
+ Modulo: props.Modulo,
203
+ Functor: functor,
204
+ Result: result,
205
+ })
206
206
  }
207
207
 
208
208
  func (randomProgrammerNamespace) Validate(props struct {
209
- Metadata *schemametadata.MetadataSchema
210
- Explore nativefactories.MetadataFactory_IExplore
211
- Top *schemametadata.MetadataSchema
209
+ Metadata *schemametadata.MetadataSchema
210
+ Explore nativefactories.MetadataFactory_IExplore
211
+ Top *schemametadata.MetadataSchema
212
212
  }) []string {
213
- output := []string{}
214
- for _, native := range props.Metadata.Natives {
215
- if native.Name == "WeakSet" {
216
- output = append(output, "WeakSet is not supported.")
217
- break
218
- }
219
- if native.Name == "WeakMap" {
220
- output = append(output, "WeakMap is not supported.")
221
- break
222
- }
223
- }
224
- return output
213
+ output := []string{}
214
+ for _, native := range props.Metadata.Natives {
215
+ if native.Name == "WeakSet" {
216
+ output = append(output, "WeakSet is not supported.")
217
+ break
218
+ }
219
+ if native.Name == "WeakMap" {
220
+ output = append(output, "WeakMap is not supported.")
221
+ break
222
+ }
223
+ }
224
+ return output
225
225
  }
226
226
 
227
227
  func randomProgrammer_write_object_functions(props struct {
228
- Context nativecontext.ITypiaContext
229
- Functor *nativehelpers.FunctionProgrammer
230
- Collection *schemametadata.MetadataCollection
228
+ Context nativecontext.ITypiaContext
229
+ Functor *nativehelpers.FunctionProgrammer
230
+ Collection *schemametadata.MetadataCollection
231
231
  }) []*shimast.Node {
232
- output := []*shimast.Node{}
233
- for i, obj := range props.Collection.Objects() {
234
- index := i
235
- object := obj
236
- output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
237
- Name: randomProgrammer_prefix_object(index),
238
- Value: randomProgrammer_factory.NewArrowFunction(
239
- nil,
240
- nil,
241
- randomProgrammer_factory.NewNodeList([]*shimast.Node{
242
- nativefactories.IdentifierFactory.Parameter("_recursive", nativefactories.TypeFactory.Keyword("boolean"), randomProgrammer_factory.NewIdentifier(fmt.Sprint(object.Recursive))),
243
- nativefactories.IdentifierFactory.Parameter("_depth", nativefactories.TypeFactory.Keyword("number"), nativefactories.ExpressionFactory.Number(0)),
244
- }),
245
- nativefactories.TypeFactory.Keyword("any"),
246
- nil,
247
- randomProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
248
- nativehelpers.RandomJoiner.Object(nativehelpers.RandomJoiner_ObjectProps{
249
- Decode: func(metadata *schemametadata.MetadataSchema) *shimast.Node {
250
- return randomProgrammer_decode(randomProgrammer_decodeProps{
251
- Context: props.Context,
252
- Functor: props.Functor,
253
- Explore: randomProgrammer_IExplore{
254
- Recursive: object.Recursive,
255
- Function: true,
256
- },
257
- Metadata: metadata,
258
- })
259
- },
260
- Object: object,
261
- }),
262
- ),
263
- }))
264
- }
265
- return output
232
+ output := []*shimast.Node{}
233
+ for i, obj := range props.Collection.Objects() {
234
+ index := i
235
+ object := obj
236
+ output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
237
+ Name: randomProgrammer_prefix_object(index),
238
+ Value: randomProgrammer_factory.NewArrowFunction(
239
+ nil,
240
+ nil,
241
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{
242
+ nativefactories.IdentifierFactory.Parameter("_recursive", nativefactories.TypeFactory.Keyword("boolean"), randomProgrammer_factory.NewIdentifier(fmt.Sprint(object.Recursive))),
243
+ nativefactories.IdentifierFactory.Parameter("_depth", nativefactories.TypeFactory.Keyword("number"), nativefactories.ExpressionFactory.Number(0)),
244
+ }),
245
+ nativefactories.TypeFactory.Keyword("any"),
246
+ nil,
247
+ randomProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
248
+ nativehelpers.RandomJoiner.Object(nativehelpers.RandomJoiner_ObjectProps{
249
+ Decode: func(metadata *schemametadata.MetadataSchema) *shimast.Node {
250
+ return randomProgrammer_decode(randomProgrammer_decodeProps{
251
+ Context: props.Context,
252
+ Functor: props.Functor,
253
+ Explore: randomProgrammer_IExplore{
254
+ Recursive: object.Recursive,
255
+ Function: true,
256
+ },
257
+ Metadata: metadata,
258
+ })
259
+ },
260
+ Object: object,
261
+ }),
262
+ ),
263
+ }))
264
+ }
265
+ return output
266
266
  }
267
267
 
268
268
  func randomProgrammer_write_array_functions(props struct {
269
- Context nativecontext.ITypiaContext
270
- Functor *nativehelpers.FunctionProgrammer
271
- Collection *schemametadata.MetadataCollection
269
+ Context nativecontext.ITypiaContext
270
+ Functor *nativehelpers.FunctionProgrammer
271
+ Collection *schemametadata.MetadataCollection
272
272
  }) []*shimast.Node {
273
- output := []*shimast.Node{}
274
- for i, array := range props.Collection.Arrays() {
275
- if array.Recursive == false {
276
- continue
277
- }
278
- index := i
279
- array := array
280
- output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
281
- Name: randomProgrammer_prefix_array(index),
282
- Value: randomProgrammer_factory.NewArrowFunction(
283
- nil,
284
- nil,
285
- randomProgrammer_factory.NewNodeList([]*shimast.Node{
286
- nativefactories.IdentifierFactory.Parameter("_schema", nativefactories.TypeFactory.Keyword("boolean"), nil),
287
- nativefactories.IdentifierFactory.Parameter("_recursive", nativefactories.TypeFactory.Keyword("boolean"), randomProgrammer_factory.NewKeywordExpression(shimast.KindTrueKeyword)),
288
- nativefactories.IdentifierFactory.Parameter("_depth", nativefactories.TypeFactory.Keyword("number"), nativefactories.ExpressionFactory.Number(0)),
289
- }),
290
- nativefactories.TypeFactory.Keyword("any"),
291
- nil,
292
- randomProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
293
- nativehelpers.RandomJoiner.Array(nativehelpers.RandomJoiner_ArrayProps{
294
- Decode: func(metadata *schemametadata.MetadataSchema) *shimast.Node {
295
- return randomProgrammer_decode(randomProgrammer_decodeProps{
296
- Context: props.Context,
297
- Functor: props.Functor,
298
- Explore: randomProgrammer_IExplore{
299
- Recursive: true,
300
- Function: true,
301
- },
302
- Metadata: metadata,
303
- })
304
- },
305
- Recursive: true,
306
- Expression: randomProgrammer_coalesce(props.Context, "array", "randomArray"),
307
- Array: array,
308
- Schema: nil,
309
- }),
310
- ),
311
- }))
312
- }
313
- return output
273
+ output := []*shimast.Node{}
274
+ for i, array := range props.Collection.Arrays() {
275
+ if array.Recursive == false {
276
+ continue
277
+ }
278
+ index := i
279
+ array := array
280
+ output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
281
+ Name: randomProgrammer_prefix_array(index),
282
+ Value: randomProgrammer_factory.NewArrowFunction(
283
+ nil,
284
+ nil,
285
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{
286
+ nativefactories.IdentifierFactory.Parameter("_schema", nativefactories.TypeFactory.Keyword("boolean"), nil),
287
+ nativefactories.IdentifierFactory.Parameter("_recursive", nativefactories.TypeFactory.Keyword("boolean"), randomProgrammer_factory.NewKeywordExpression(shimast.KindTrueKeyword)),
288
+ nativefactories.IdentifierFactory.Parameter("_depth", nativefactories.TypeFactory.Keyword("number"), nativefactories.ExpressionFactory.Number(0)),
289
+ }),
290
+ nativefactories.TypeFactory.Keyword("any"),
291
+ nil,
292
+ randomProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
293
+ nativehelpers.RandomJoiner.Array(nativehelpers.RandomJoiner_ArrayProps{
294
+ Decode: func(metadata *schemametadata.MetadataSchema) *shimast.Node {
295
+ return randomProgrammer_decode(randomProgrammer_decodeProps{
296
+ Context: props.Context,
297
+ Functor: props.Functor,
298
+ Explore: randomProgrammer_IExplore{
299
+ Recursive: true,
300
+ Function: true,
301
+ },
302
+ Metadata: metadata,
303
+ })
304
+ },
305
+ Recursive: true,
306
+ Expression: randomProgrammer_coalesce(props.Context, "array", "randomArray"),
307
+ Array: array,
308
+ Schema: nil,
309
+ }),
310
+ ),
311
+ }))
312
+ }
313
+ return output
314
314
  }
315
315
 
316
316
  func randomProgrammer_write_tuple_functions(props struct {
317
- Context nativecontext.ITypiaContext
318
- Functor *nativehelpers.FunctionProgrammer
319
- Collection *schemametadata.MetadataCollection
317
+ Context nativecontext.ITypiaContext
318
+ Functor *nativehelpers.FunctionProgrammer
319
+ Collection *schemametadata.MetadataCollection
320
320
  }) []*shimast.Node {
321
- output := []*shimast.Node{}
322
- for i, tuple := range props.Collection.Tuples() {
323
- if tuple.Recursive == false {
324
- continue
325
- }
326
- index := i
327
- tuple := tuple
328
- output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
329
- Name: randomProgrammer_prefix_tuple(index),
330
- Value: randomProgrammer_factory.NewArrowFunction(
331
- nil,
332
- nil,
333
- randomProgrammer_factory.NewNodeList([]*shimast.Node{
334
- nativefactories.IdentifierFactory.Parameter("_recursive", nativefactories.TypeFactory.Keyword("boolean"), randomProgrammer_factory.NewKeywordExpression(shimast.KindTrueKeyword)),
335
- nativefactories.IdentifierFactory.Parameter("_depth", nativefactories.TypeFactory.Keyword("number"), nativefactories.ExpressionFactory.Number(0)),
336
- }),
337
- nativefactories.TypeFactory.Keyword("any"),
338
- nil,
339
- randomProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
340
- nativehelpers.RandomJoiner.Tuple(nativehelpers.RandomJoiner_TupleProps{
341
- Decode: func(metadata *schemametadata.MetadataSchema) *shimast.Node {
342
- return randomProgrammer_decode(randomProgrammer_decodeProps{
343
- Context: props.Context,
344
- Functor: props.Functor,
345
- Explore: randomProgrammer_IExplore{
346
- Function: true,
347
- Recursive: true,
348
- },
349
- Metadata: metadata,
350
- })
351
- },
352
- Elements: tuple.Elements,
353
- }),
354
- ),
355
- }))
356
- }
357
- return output
321
+ output := []*shimast.Node{}
322
+ for i, tuple := range props.Collection.Tuples() {
323
+ if tuple.Recursive == false {
324
+ continue
325
+ }
326
+ index := i
327
+ tuple := tuple
328
+ output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
329
+ Name: randomProgrammer_prefix_tuple(index),
330
+ Value: randomProgrammer_factory.NewArrowFunction(
331
+ nil,
332
+ nil,
333
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{
334
+ nativefactories.IdentifierFactory.Parameter("_recursive", nativefactories.TypeFactory.Keyword("boolean"), randomProgrammer_factory.NewKeywordExpression(shimast.KindTrueKeyword)),
335
+ nativefactories.IdentifierFactory.Parameter("_depth", nativefactories.TypeFactory.Keyword("number"), nativefactories.ExpressionFactory.Number(0)),
336
+ }),
337
+ nativefactories.TypeFactory.Keyword("any"),
338
+ nil,
339
+ randomProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
340
+ nativehelpers.RandomJoiner.Tuple(nativehelpers.RandomJoiner_TupleProps{
341
+ Decode: func(metadata *schemametadata.MetadataSchema) *shimast.Node {
342
+ return randomProgrammer_decode(randomProgrammer_decodeProps{
343
+ Context: props.Context,
344
+ Functor: props.Functor,
345
+ Explore: randomProgrammer_IExplore{
346
+ Function: true,
347
+ Recursive: true,
348
+ },
349
+ Metadata: metadata,
350
+ })
351
+ },
352
+ Elements: tuple.Elements,
353
+ }),
354
+ ),
355
+ }))
356
+ }
357
+ return output
358
358
  }
359
359
 
360
360
  func randomProgrammer_decode(props randomProgrammer_decodeProps) *shimast.Node {
361
- expressions := []*shimast.Node{}
362
- if props.Metadata.Any {
363
- expressions = append(expressions, randomProgrammer_factory.NewStringLiteral("any type used...", shimast.TokenFlagsNone))
364
- }
365
- if props.Metadata.IsRequired() == false || len(props.Metadata.Functions) != 0 {
366
- expressions = append(expressions, randomProgrammer_factory.NewIdentifier("undefined"))
367
- }
368
- if props.Metadata.Nullable {
369
- expressions = append(expressions, randomProgrammer_factory.NewKeywordExpression(shimast.KindNullKeyword))
370
- }
371
- for _, constant := range props.Metadata.Constants {
372
- for _, value := range constant.Values {
373
- if constant.Type == "boolean" {
374
- if truthy, _ := value.Value.(bool); truthy {
375
- expressions = append(expressions, randomProgrammer_factory.NewKeywordExpression(shimast.KindTrueKeyword))
376
- } else {
377
- expressions = append(expressions, randomProgrammer_factory.NewKeywordExpression(shimast.KindFalseKeyword))
378
- }
379
- } else if constant.Type == "bigint" {
380
- expressions = append(expressions, nativefactories.ExpressionFactory.Bigint(value.Value))
381
- } else if constant.Type == "number" {
382
- expressions = append(expressions, nativefactories.ExpressionFactory.Number(value.Value))
383
- } else {
384
- expressions = append(expressions, randomProgrammer_factory.NewStringLiteral(fmt.Sprint(value.Value), shimast.TokenFlagsNone))
385
- }
386
- }
387
- }
388
- for _, template := range props.Metadata.Templates {
389
- expressions = append(expressions, randomProgrammer_decode_template(struct {
390
- Context nativecontext.ITypiaContext
391
- Functor *nativehelpers.FunctionProgrammer
392
- Explore randomProgrammer_IExplore
393
- Template *schemametadata.MetadataTemplate
394
- }{
395
- Context: props.Context, Functor: props.Functor, Explore: props.Explore, Template: template,
396
- }))
397
- }
398
- for _, atomic := range props.Metadata.Atomics {
399
- expressions = append(expressions, randomProgrammer_decode_atomic(randomProgrammer_decodeAtomicProps{
400
- Context: props.Context,
401
- Atomic: atomic,
402
- })...)
403
- }
404
- if props.Metadata.Escaped != nil {
405
- next := props
406
- next.Metadata = props.Metadata.Escaped.Returns
407
- expressions = append(expressions, randomProgrammer_decode(next))
408
- }
409
- for _, array := range props.Metadata.Arrays {
410
- next := props
411
- expressions = append(expressions, randomProgrammer_decode_array(randomProgrammer_decodeArrayProps{
412
- Context: next.Context,
413
- Functor: next.Functor,
414
- Explore: next.Explore,
415
- Array: array,
416
- })...)
417
- }
418
- for _, tuple := range props.Metadata.Tuples {
419
- expressions = append(expressions, randomProgrammer_decode_tuple(randomProgrammer_decodeTupleProps{
420
- Context: props.Context,
421
- Functor: props.Functor,
422
- Explore: props.Explore,
423
- Tuple: tuple,
424
- }))
425
- }
426
- for _, object := range props.Metadata.Objects {
427
- expressions = append(expressions, randomProgrammer_decode_object(randomProgrammer_decodeObjectProps{
428
- Functor: props.Functor,
429
- Explore: props.Explore,
430
- Object: object.Type,
431
- }))
432
- }
433
- for _, native := range props.Metadata.Natives {
434
- expressions = append(expressions, randomProgrammer_decode_native(struct {
435
- Context nativecontext.ITypiaContext
436
- Functor *nativehelpers.FunctionProgrammer
437
- Explore randomProgrammer_IExplore
438
- Name string
439
- }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: native.Name}))
440
- }
441
- for _, set := range props.Metadata.Sets {
442
- expressions = append(expressions, randomProgrammer_decode_set(struct {
443
- Context nativecontext.ITypiaContext
444
- Functor *nativehelpers.FunctionProgrammer
445
- Explore randomProgrammer_IExplore
446
- Set *schemametadata.MetadataSet
447
- }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Set: set}))
448
- }
449
- for _, entry := range props.Metadata.Maps {
450
- expressions = append(expressions, randomProgrammer_decode_map(struct {
451
- Context nativecontext.ITypiaContext
452
- Functor *nativehelpers.FunctionProgrammer
453
- Explore randomProgrammer_IExplore
454
- Map *schemametadata.MetadataMap
455
- }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Map: entry}))
456
- }
457
- if len(expressions) == 1 {
458
- return expressions[0]
459
- }
460
- pickers := make([]*shimast.Node, 0, len(expressions))
461
- for _, expr := range expressions {
462
- value := expr
463
- pickers = append(pickers, randomProgrammer_factory.NewArrowFunction(
464
- nil,
465
- nil,
466
- randomProgrammer_factory.NewNodeList(nil),
467
- nil,
468
- nil,
469
- randomProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
470
- value,
471
- ))
472
- }
473
- return randomProgrammer_factory.NewCallExpression(
474
- randomProgrammer_factory.NewCallExpression(
475
- randomProgrammer_internal(props.Context, "randomPick"),
476
- nil,
477
- nil,
478
- randomProgrammer_factory.NewNodeList([]*shimast.Node{
479
- randomProgrammer_factory.NewArrayLiteralExpression(randomProgrammer_factory.NewNodeList(pickers), true),
480
- }),
481
- shimast.NodeFlagsNone,
482
- ),
483
- nil,
484
- nil,
485
- nil,
486
- shimast.NodeFlagsNone,
487
- )
361
+ expressions := []*shimast.Node{}
362
+ if props.Metadata.Any {
363
+ expressions = append(expressions, randomProgrammer_factory.NewStringLiteral("any type used...", shimast.TokenFlagsNone))
364
+ }
365
+ if props.Metadata.IsRequired() == false || len(props.Metadata.Functions) != 0 {
366
+ expressions = append(expressions, randomProgrammer_factory.NewIdentifier("undefined"))
367
+ }
368
+ if props.Metadata.Nullable {
369
+ expressions = append(expressions, randomProgrammer_factory.NewKeywordExpression(shimast.KindNullKeyword))
370
+ }
371
+ for _, constant := range props.Metadata.Constants {
372
+ for _, value := range constant.Values {
373
+ if constant.Type == "boolean" {
374
+ if truthy, _ := value.Value.(bool); truthy {
375
+ expressions = append(expressions, randomProgrammer_factory.NewKeywordExpression(shimast.KindTrueKeyword))
376
+ } else {
377
+ expressions = append(expressions, randomProgrammer_factory.NewKeywordExpression(shimast.KindFalseKeyword))
378
+ }
379
+ } else if constant.Type == "bigint" {
380
+ expressions = append(expressions, nativefactories.ExpressionFactory.Bigint(value.Value))
381
+ } else if constant.Type == "number" {
382
+ expressions = append(expressions, nativefactories.ExpressionFactory.Number(value.Value))
383
+ } else {
384
+ expressions = append(expressions, randomProgrammer_factory.NewStringLiteral(fmt.Sprint(value.Value), shimast.TokenFlagsNone))
385
+ }
386
+ }
387
+ }
388
+ for _, template := range props.Metadata.Templates {
389
+ expressions = append(expressions, randomProgrammer_decode_template(struct {
390
+ Context nativecontext.ITypiaContext
391
+ Functor *nativehelpers.FunctionProgrammer
392
+ Explore randomProgrammer_IExplore
393
+ Template *schemametadata.MetadataTemplate
394
+ }{
395
+ Context: props.Context, Functor: props.Functor, Explore: props.Explore, Template: template,
396
+ }))
397
+ }
398
+ for _, atomic := range props.Metadata.Atomics {
399
+ expressions = append(expressions, randomProgrammer_decode_atomic(randomProgrammer_decodeAtomicProps{
400
+ Context: props.Context,
401
+ Atomic: atomic,
402
+ })...)
403
+ }
404
+ if props.Metadata.Escaped != nil {
405
+ next := props
406
+ next.Metadata = props.Metadata.Escaped.Returns
407
+ expressions = append(expressions, randomProgrammer_decode(next))
408
+ }
409
+ for _, array := range props.Metadata.Arrays {
410
+ next := props
411
+ expressions = append(expressions, randomProgrammer_decode_array(randomProgrammer_decodeArrayProps{
412
+ Context: next.Context,
413
+ Functor: next.Functor,
414
+ Explore: next.Explore,
415
+ Array: array,
416
+ })...)
417
+ }
418
+ for _, tuple := range props.Metadata.Tuples {
419
+ expressions = append(expressions, randomProgrammer_decode_tuple(randomProgrammer_decodeTupleProps{
420
+ Context: props.Context,
421
+ Functor: props.Functor,
422
+ Explore: props.Explore,
423
+ Tuple: tuple,
424
+ }))
425
+ }
426
+ for _, object := range props.Metadata.Objects {
427
+ expressions = append(expressions, randomProgrammer_decode_object(randomProgrammer_decodeObjectProps{
428
+ Functor: props.Functor,
429
+ Explore: props.Explore,
430
+ Object: object.Type,
431
+ }))
432
+ }
433
+ for _, native := range props.Metadata.Natives {
434
+ expressions = append(expressions, randomProgrammer_decode_native(struct {
435
+ Context nativecontext.ITypiaContext
436
+ Functor *nativehelpers.FunctionProgrammer
437
+ Explore randomProgrammer_IExplore
438
+ Name string
439
+ }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: native.Name}))
440
+ }
441
+ for _, set := range props.Metadata.Sets {
442
+ expressions = append(expressions, randomProgrammer_decode_set(struct {
443
+ Context nativecontext.ITypiaContext
444
+ Functor *nativehelpers.FunctionProgrammer
445
+ Explore randomProgrammer_IExplore
446
+ Set *schemametadata.MetadataSet
447
+ }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Set: set}))
448
+ }
449
+ for _, entry := range props.Metadata.Maps {
450
+ expressions = append(expressions, randomProgrammer_decode_map(struct {
451
+ Context nativecontext.ITypiaContext
452
+ Functor *nativehelpers.FunctionProgrammer
453
+ Explore randomProgrammer_IExplore
454
+ Map *schemametadata.MetadataMap
455
+ }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Map: entry}))
456
+ }
457
+ if len(expressions) == 1 {
458
+ return expressions[0]
459
+ }
460
+ pickers := make([]*shimast.Node, 0, len(expressions))
461
+ for _, expr := range expressions {
462
+ value := expr
463
+ pickers = append(pickers, randomProgrammer_factory.NewArrowFunction(
464
+ nil,
465
+ nil,
466
+ randomProgrammer_factory.NewNodeList(nil),
467
+ nil,
468
+ nil,
469
+ randomProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
470
+ value,
471
+ ))
472
+ }
473
+ return randomProgrammer_factory.NewCallExpression(
474
+ randomProgrammer_factory.NewCallExpression(
475
+ randomProgrammer_internal(props.Context, "randomPick"),
476
+ nil,
477
+ nil,
478
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{
479
+ randomProgrammer_factory.NewArrayLiteralExpression(randomProgrammer_factory.NewNodeList(pickers), true),
480
+ }),
481
+ shimast.NodeFlagsNone,
482
+ ),
483
+ nil,
484
+ nil,
485
+ nil,
486
+ shimast.NodeFlagsNone,
487
+ )
488
488
  }
489
489
 
490
490
  func randomProgrammer_decode_atomic(props randomProgrammer_decodeAtomicProps) []*shimast.Node {
491
- var schemaList []nativeiterate.JsonSchema
492
- if props.Atomic.Type == "boolean" {
493
- schemaList = nativeiterate.Json_schema_boolean_export(props.Atomic)
494
- } else if props.Atomic.Type == "string" {
495
- schemaList = nativeiterate.Json_schema_string_export(props.Atomic)
496
- } else if props.Atomic.Type == "bigint" {
497
- schemaList = nativeiterate.Json_schema_bigint_export(props.Atomic)
498
- } else {
499
- schemaList = nativeiterate.Json_schema_number_export(props.Atomic)
500
- }
501
- output := make([]*shimast.Node, 0, len(schemaList))
502
- for _, schema := range schemaList {
503
- composed := randomProgrammer_compose_atomic(props.Atomic.Type, schema)
504
- output = append(output, randomProgrammer_factory.NewCallExpression(
505
- nativefactories.ExpressionFactory.Coalesce(
506
- nativefactories.IdentifierFactory.Access(randomProgrammer_factory.NewIdentifier("_generator"), composed.Method, true),
507
- randomProgrammer_internal(props.Context, composed.Internal),
508
- ),
509
- nil,
510
- nil,
511
- randomProgrammer_factory.NewNodeList(composed.Arguments),
512
- shimast.NodeFlagsNone,
513
- ))
514
- }
515
- return output
491
+ var schemaList []nativeiterate.JsonSchema
492
+ if props.Atomic.Type == "boolean" {
493
+ schemaList = nativeiterate.Json_schema_boolean_export(props.Atomic)
494
+ } else if props.Atomic.Type == "string" {
495
+ schemaList = nativeiterate.Json_schema_string_export(props.Atomic)
496
+ } else if props.Atomic.Type == "bigint" {
497
+ schemaList = nativeiterate.Json_schema_bigint_export(props.Atomic)
498
+ } else {
499
+ schemaList = nativeiterate.Json_schema_number_export(props.Atomic)
500
+ }
501
+ output := make([]*shimast.Node, 0, len(schemaList))
502
+ for _, schema := range schemaList {
503
+ composed := randomProgrammer_compose_atomic(props.Atomic.Type, schema)
504
+ output = append(output, randomProgrammer_factory.NewCallExpression(
505
+ nativefactories.ExpressionFactory.Coalesce(
506
+ nativefactories.IdentifierFactory.Access(randomProgrammer_factory.NewIdentifier("_generator"), composed.Method, true),
507
+ randomProgrammer_internal(props.Context, composed.Internal),
508
+ ),
509
+ nil,
510
+ nil,
511
+ randomProgrammer_factory.NewNodeList(composed.Arguments),
512
+ shimast.NodeFlagsNone,
513
+ ))
514
+ }
515
+ return output
516
516
  }
517
517
 
518
518
  type randomProgrammer_composedAtomic struct {
519
- Method string
520
- Internal string
521
- Arguments []*shimast.Node
519
+ Method string
520
+ Internal string
521
+ Arguments []*shimast.Node
522
522
  }
523
523
 
524
524
  func randomProgrammer_compose_atomic(atomicType string, schema nativeiterate.JsonSchema) randomProgrammer_composedAtomic {
525
- if atomicType == "string" {
526
- if raw, ok := schema["format"].(string); ok && raw != "" {
527
- if raw == "date-time" {
528
- return randomProgrammer_composedAtomic{Method: "datetime", Internal: "randomFormatDatetime"}
529
- }
530
- method := randomProgrammer_format_method(raw)
531
- return randomProgrammer_composedAtomic{
532
- Method: method,
533
- Internal: "randomFormat" + randomProgrammer_format_pascal(raw),
534
- }
535
- }
536
- if pattern, ok := schema["pattern"].(string); ok && pattern != "" {
537
- return randomProgrammer_composedAtomic{
538
- Method: "pattern",
539
- Internal: "randomPattern",
540
- Arguments: []*shimast.Node{
541
- randomProgrammer_factory.NewNewExpression(
542
- randomProgrammer_factory.NewIdentifier("RegExp"),
543
- nil,
544
- randomProgrammer_factory.NewNodeList([]*shimast.Node{randomProgrammer_factory.NewStringLiteral(pattern, shimast.TokenFlagsNone)}),
545
- ),
546
- },
547
- }
548
- }
549
- } else if atomicType == "number" {
550
- if typ, ok := schema["type"].(string); ok && typ == "integer" {
551
- return randomProgrammer_composedAtomic{
552
- Method: "integer",
553
- Internal: "randomInteger",
554
- Arguments: []*shimast.Node{nativefactories.LiteralFactory.Write(schema)},
555
- }
556
- }
557
- } else if atomicType == "boolean" {
558
- return randomProgrammer_composedAtomic{
559
- Method: "boolean",
560
- Internal: "randomBoolean",
561
- }
562
- }
563
- return randomProgrammer_composedAtomic{
564
- Method: atomicType,
565
- Internal: "random" + randomProgrammer_capitalize(atomicType),
566
- Arguments: []*shimast.Node{nativefactories.LiteralFactory.Write(schema)},
567
- }
525
+ if atomicType == "string" {
526
+ if raw, ok := schema["format"].(string); ok && raw != "" {
527
+ if raw == "date-time" {
528
+ return randomProgrammer_composedAtomic{Method: "datetime", Internal: "randomFormatDatetime"}
529
+ }
530
+ method := randomProgrammer_format_method(raw)
531
+ return randomProgrammer_composedAtomic{
532
+ Method: method,
533
+ Internal: "randomFormat" + randomProgrammer_format_pascal(raw),
534
+ }
535
+ }
536
+ if pattern, ok := schema["pattern"].(string); ok && pattern != "" {
537
+ return randomProgrammer_composedAtomic{
538
+ Method: "pattern",
539
+ Internal: "randomPattern",
540
+ Arguments: []*shimast.Node{
541
+ randomProgrammer_factory.NewNewExpression(
542
+ randomProgrammer_factory.NewIdentifier("RegExp"),
543
+ nil,
544
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{randomProgrammer_factory.NewStringLiteral(pattern, shimast.TokenFlagsNone)}),
545
+ ),
546
+ },
547
+ }
548
+ }
549
+ } else if atomicType == "number" {
550
+ if typ, ok := schema["type"].(string); ok && typ == "integer" {
551
+ return randomProgrammer_composedAtomic{
552
+ Method: "integer",
553
+ Internal: "randomInteger",
554
+ Arguments: []*shimast.Node{nativefactories.LiteralFactory.Write(schema)},
555
+ }
556
+ }
557
+ } else if atomicType == "boolean" {
558
+ return randomProgrammer_composedAtomic{
559
+ Method: "boolean",
560
+ Internal: "randomBoolean",
561
+ }
562
+ }
563
+ return randomProgrammer_composedAtomic{
564
+ Method: atomicType,
565
+ Internal: "random" + randomProgrammer_capitalize(atomicType),
566
+ Arguments: []*shimast.Node{nativefactories.LiteralFactory.Write(schema)},
567
+ }
568
568
  }
569
569
 
570
570
  func randomProgrammer_decode_template(props struct {
571
- Context nativecontext.ITypiaContext
572
- Functor *nativehelpers.FunctionProgrammer
573
- Explore randomProgrammer_IExplore
574
- Template *schemametadata.MetadataTemplate
571
+ Context nativecontext.ITypiaContext
572
+ Functor *nativehelpers.FunctionProgrammer
573
+ Explore randomProgrammer_IExplore
574
+ Template *schemametadata.MetadataTemplate
575
575
  }) *shimast.Node {
576
- expressions := make([]*shimast.Expression, 0, len(props.Template.Row))
577
- for _, metadata := range props.Template.Row {
578
- expressions = append(expressions, randomProgrammer_decode(randomProgrammer_decodeProps{
579
- Context: props.Context,
580
- Functor: props.Functor,
581
- Explore: props.Explore,
582
- Metadata: metadata,
583
- }))
584
- }
585
- return nativefactories.TemplateFactory.Generate(expressions)
576
+ expressions := make([]*shimast.Expression, 0, len(props.Template.Row))
577
+ for _, metadata := range props.Template.Row {
578
+ expressions = append(expressions, randomProgrammer_decode(randomProgrammer_decodeProps{
579
+ Context: props.Context,
580
+ Functor: props.Functor,
581
+ Explore: props.Explore,
582
+ Metadata: metadata,
583
+ }))
584
+ }
585
+ return nativefactories.TemplateFactory.Generate(expressions)
586
586
  }
587
587
 
588
588
  func randomProgrammer_decode_array(props randomProgrammer_decodeArrayProps) []*shimast.Node {
589
- components := &nativeiterate.OpenApi_IComponents{}
590
- schemaList := nativeiterate.Json_schema_array_export(nativeiterate.Json_schema_array_export_props{
591
- Components: components,
592
- Array: props.Array,
593
- })
594
- output := make([]*shimast.Node, 0, len(schemaList))
595
- if props.Array.Type.Recursive {
596
- for _, schema := range schemaList {
597
- output = append(output, randomProgrammer_factory.NewCallExpression(
598
- randomProgrammer_factory.NewIdentifier(props.Functor.UseLocal(randomProgrammer_prefix_array(*props.Array.Type.Index))),
599
- nil,
600
- nil,
601
- randomProgrammer_factory.NewNodeList([]*shimast.Node{
602
- randomProgrammer_schema_without_items(schema),
603
- }),
604
- shimast.NodeFlagsNone,
605
- ))
606
- }
607
- return output
608
- }
609
- for _, schema := range schemaList {
610
- schema := schema
611
- output = append(output, nativehelpers.RandomJoiner.Array(nativehelpers.RandomJoiner_ArrayProps{
612
- Decode: func(metadata *schemametadata.MetadataSchema) *shimast.Node {
613
- return randomProgrammer_decode(randomProgrammer_decodeProps{
614
- Context: props.Context,
615
- Functor: props.Functor,
616
- Explore: props.Explore,
617
- Metadata: metadata,
618
- })
619
- },
620
- Expression: randomProgrammer_coalesce(props.Context, "array", "randomArray"),
621
- Array: props.Array.Type,
622
- Recursive: props.Explore.Recursive,
623
- Schema: schema,
624
- }))
625
- }
626
- return output
589
+ components := &nativeiterate.OpenApi_IComponents{}
590
+ schemaList := nativeiterate.Json_schema_array_export(nativeiterate.Json_schema_array_export_props{
591
+ Components: components,
592
+ Array: props.Array,
593
+ })
594
+ output := make([]*shimast.Node, 0, len(schemaList))
595
+ if props.Array.Type.Recursive {
596
+ for _, schema := range schemaList {
597
+ output = append(output, randomProgrammer_factory.NewCallExpression(
598
+ randomProgrammer_factory.NewIdentifier(props.Functor.UseLocal(randomProgrammer_prefix_array(*props.Array.Type.Index))),
599
+ nil,
600
+ nil,
601
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{
602
+ randomProgrammer_schema_without_items(schema),
603
+ }),
604
+ shimast.NodeFlagsNone,
605
+ ))
606
+ }
607
+ return output
608
+ }
609
+ for _, schema := range schemaList {
610
+ schema := schema
611
+ output = append(output, nativehelpers.RandomJoiner.Array(nativehelpers.RandomJoiner_ArrayProps{
612
+ Decode: func(metadata *schemametadata.MetadataSchema) *shimast.Node {
613
+ return randomProgrammer_decode(randomProgrammer_decodeProps{
614
+ Context: props.Context,
615
+ Functor: props.Functor,
616
+ Explore: props.Explore,
617
+ Metadata: metadata,
618
+ })
619
+ },
620
+ Expression: randomProgrammer_coalesce(props.Context, "array", "randomArray"),
621
+ Array: props.Array.Type,
622
+ Recursive: props.Explore.Recursive,
623
+ Schema: schema,
624
+ }))
625
+ }
626
+ return output
627
627
  }
628
628
 
629
629
  func randomProgrammer_decode_tuple(props randomProgrammer_decodeTupleProps) *shimast.Node {
630
- if props.Tuple.Type.Recursive {
631
- depth := nativefactories.ExpressionFactory.Number(0)
632
- if props.Explore.Recursive {
633
- depth = randomProgrammer_factory.NewBinaryExpression(
634
- nil,
635
- nativefactories.ExpressionFactory.Number(1),
636
- nil,
637
- randomProgrammer_factory.NewToken(shimast.KindPlusToken),
638
- randomProgrammer_factory.NewIdentifier("_depth"),
639
- )
640
- }
641
- return randomProgrammer_factory.NewCallExpression(
642
- randomProgrammer_factory.NewIdentifier(props.Functor.UseLocal(randomProgrammer_prefix_tuple(*props.Tuple.Type.Index))),
643
- nil,
644
- nil,
645
- randomProgrammer_factory.NewNodeList([]*shimast.Node{
646
- randomProgrammer_factory.NewKeywordExpression(shimast.KindTrueKeyword),
647
- depth,
648
- }),
649
- shimast.NodeFlagsNone,
650
- )
651
- }
652
- return nativehelpers.RandomJoiner.Tuple(nativehelpers.RandomJoiner_TupleProps{
653
- Decode: func(metadata *schemametadata.MetadataSchema) *shimast.Node {
654
- return randomProgrammer_decode(randomProgrammer_decodeProps{
655
- Context: props.Context,
656
- Functor: props.Functor,
657
- Explore: props.Explore,
658
- Metadata: metadata,
659
- })
660
- },
661
- Elements: props.Tuple.Type.Elements,
662
- })
630
+ if props.Tuple.Type.Recursive {
631
+ depth := nativefactories.ExpressionFactory.Number(0)
632
+ if props.Explore.Recursive {
633
+ depth = randomProgrammer_factory.NewBinaryExpression(
634
+ nil,
635
+ nativefactories.ExpressionFactory.Number(1),
636
+ nil,
637
+ randomProgrammer_factory.NewToken(shimast.KindPlusToken),
638
+ randomProgrammer_factory.NewIdentifier("_depth"),
639
+ )
640
+ }
641
+ return randomProgrammer_factory.NewCallExpression(
642
+ randomProgrammer_factory.NewIdentifier(props.Functor.UseLocal(randomProgrammer_prefix_tuple(*props.Tuple.Type.Index))),
643
+ nil,
644
+ nil,
645
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{
646
+ randomProgrammer_factory.NewKeywordExpression(shimast.KindTrueKeyword),
647
+ depth,
648
+ }),
649
+ shimast.NodeFlagsNone,
650
+ )
651
+ }
652
+ return nativehelpers.RandomJoiner.Tuple(nativehelpers.RandomJoiner_TupleProps{
653
+ Decode: func(metadata *schemametadata.MetadataSchema) *shimast.Node {
654
+ return randomProgrammer_decode(randomProgrammer_decodeProps{
655
+ Context: props.Context,
656
+ Functor: props.Functor,
657
+ Explore: props.Explore,
658
+ Metadata: metadata,
659
+ })
660
+ },
661
+ Elements: props.Tuple.Type.Elements,
662
+ })
663
663
  }
664
664
 
665
665
  func randomProgrammer_decode_object(props randomProgrammer_decodeObjectProps) *shimast.Node {
666
- var args *shimast.NodeList
667
- if props.Explore.Function {
668
- recursive := randomProgrammer_factory.NewIdentifier("_recursive")
669
- if props.Explore.Recursive {
670
- recursive = randomProgrammer_factory.NewKeywordExpression(shimast.KindTrueKeyword)
671
- }
672
- args = randomProgrammer_factory.NewNodeList([]*shimast.Node{
673
- recursive,
674
- randomProgrammer_factory.NewConditionalExpression(
675
- randomProgrammer_factory.NewIdentifier("_recursive"),
676
- nil,
677
- randomProgrammer_factory.NewBinaryExpression(
678
- nil,
679
- nativefactories.ExpressionFactory.Number(1),
680
- nil,
681
- randomProgrammer_factory.NewToken(shimast.KindPlusToken),
682
- randomProgrammer_factory.NewIdentifier("_depth"),
683
- ),
684
- nil,
685
- randomProgrammer_factory.NewIdentifier("_depth"),
686
- ),
687
- })
688
- }
689
- return randomProgrammer_factory.NewCallExpression(
690
- randomProgrammer_factory.NewIdentifier(props.Functor.UseLocal(randomProgrammer_prefix_object(props.Object.Index))),
691
- nil,
692
- nil,
693
- args,
694
- shimast.NodeFlagsNone,
695
- )
666
+ var args *shimast.NodeList
667
+ if props.Explore.Function {
668
+ recursive := randomProgrammer_factory.NewIdentifier("_recursive")
669
+ if props.Explore.Recursive {
670
+ recursive = randomProgrammer_factory.NewKeywordExpression(shimast.KindTrueKeyword)
671
+ }
672
+ args = randomProgrammer_factory.NewNodeList([]*shimast.Node{
673
+ recursive,
674
+ randomProgrammer_factory.NewConditionalExpression(
675
+ randomProgrammer_factory.NewIdentifier("_recursive"),
676
+ nil,
677
+ randomProgrammer_factory.NewBinaryExpression(
678
+ nil,
679
+ nativefactories.ExpressionFactory.Number(1),
680
+ nil,
681
+ randomProgrammer_factory.NewToken(shimast.KindPlusToken),
682
+ randomProgrammer_factory.NewIdentifier("_depth"),
683
+ ),
684
+ nil,
685
+ randomProgrammer_factory.NewIdentifier("_depth"),
686
+ ),
687
+ })
688
+ }
689
+ return randomProgrammer_factory.NewCallExpression(
690
+ randomProgrammer_factory.NewIdentifier(props.Functor.UseLocal(randomProgrammer_prefix_object(props.Object.Index))),
691
+ nil,
692
+ nil,
693
+ args,
694
+ shimast.NodeFlagsNone,
695
+ )
696
696
  }
697
697
 
698
698
  func randomProgrammer_decode_set(props struct {
699
- Context nativecontext.ITypiaContext
700
- Functor *nativehelpers.FunctionProgrammer
701
- Explore randomProgrammer_IExplore
702
- Set *schemametadata.MetadataSet
699
+ Context nativecontext.ITypiaContext
700
+ Functor *nativehelpers.FunctionProgrammer
701
+ Explore randomProgrammer_IExplore
702
+ Set *schemametadata.MetadataSet
703
703
  }) *shimast.Node {
704
- array := schemametadata.MetadataArray_create(schemametadata.MetadataArray{
705
- Tags: [][]schemametadata.IMetadataTypeTag{},
706
- Type: schemametadata.MetadataArrayType_create(schemametadata.MetadataArrayType{
707
- Value: props.Set.Value,
708
- Recursive: false,
709
- Index: nil,
710
- Nullables: []bool{},
711
- Name: props.Set.GetName(),
712
- }),
713
- })
714
- return randomProgrammer_factory.NewNewExpression(
715
- randomProgrammer_factory.NewIdentifier("Set"),
716
- nil,
717
- randomProgrammer_factory.NewNodeList([]*shimast.Node{
718
- randomProgrammer_first(randomProgrammer_decode_array(randomProgrammer_decodeArrayProps{
719
- Context: props.Context,
720
- Functor: props.Functor,
721
- Explore: props.Explore,
722
- Array: array,
723
- })),
724
- }),
725
- )
704
+ array := schemametadata.MetadataArray_create(schemametadata.MetadataArray{
705
+ Tags: [][]schemametadata.IMetadataTypeTag{},
706
+ Type: schemametadata.MetadataArrayType_create(schemametadata.MetadataArrayType{
707
+ Value: props.Set.Value,
708
+ Recursive: false,
709
+ Index: nil,
710
+ Nullables: []bool{},
711
+ Name: props.Set.GetName(),
712
+ }),
713
+ })
714
+ return randomProgrammer_factory.NewNewExpression(
715
+ randomProgrammer_factory.NewIdentifier("Set"),
716
+ nil,
717
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{
718
+ randomProgrammer_first(randomProgrammer_decode_array(randomProgrammer_decodeArrayProps{
719
+ Context: props.Context,
720
+ Functor: props.Functor,
721
+ Explore: props.Explore,
722
+ Array: array,
723
+ })),
724
+ }),
725
+ )
726
726
  }
727
727
 
728
728
  func randomProgrammer_decode_map(props struct {
729
- Context nativecontext.ITypiaContext
730
- Functor *nativehelpers.FunctionProgrammer
731
- Explore randomProgrammer_IExplore
732
- Map *schemametadata.MetadataMap
729
+ Context nativecontext.ITypiaContext
730
+ Functor *nativehelpers.FunctionProgrammer
731
+ Explore randomProgrammer_IExplore
732
+ Map *schemametadata.MetadataMap
733
733
  }) *shimast.Node {
734
- ofMap := true
735
- tupleType := schemametadata.MetadataTupleType_create(schemametadata.MetadataTupleType{
736
- Name: fmt.Sprintf("[%s, %s]", props.Map.Key.GetName(), props.Map.Value.GetName()),
737
- Index: nil,
738
- Recursive: false,
739
- Nullables: []bool{},
740
- Elements: []*schemametadata.MetadataSchema{props.Map.Key, props.Map.Value},
741
- Of_map: &ofMap,
742
- })
743
- value := schemametadata.MetadataSchema_initialize()
744
- value.Tuples = []*schemametadata.MetadataTuple{
745
- schemametadata.MetadataTuple_create(schemametadata.MetadataTuple{
746
- Type: tupleType,
747
- Tags: [][]schemametadata.IMetadataTypeTag{},
748
- }),
749
- }
750
- array := schemametadata.MetadataArray_create(schemametadata.MetadataArray{
751
- Tags: [][]schemametadata.IMetadataTypeTag{},
752
- Type: schemametadata.MetadataArrayType_create(schemametadata.MetadataArrayType{
753
- Name: props.Map.GetName(),
754
- Index: nil,
755
- Recursive: false,
756
- Nullables: []bool{},
757
- Value: value,
758
- }),
759
- })
760
- return randomProgrammer_factory.NewNewExpression(
761
- randomProgrammer_factory.NewIdentifier("Map"),
762
- nil,
763
- randomProgrammer_factory.NewNodeList([]*shimast.Node{
764
- randomProgrammer_first(randomProgrammer_decode_array(randomProgrammer_decodeArrayProps{
765
- Context: props.Context,
766
- Functor: props.Functor,
767
- Explore: props.Explore,
768
- Array: array,
769
- })),
770
- }),
771
- )
734
+ ofMap := true
735
+ tupleType := schemametadata.MetadataTupleType_create(schemametadata.MetadataTupleType{
736
+ Name: fmt.Sprintf("[%s, %s]", props.Map.Key.GetName(), props.Map.Value.GetName()),
737
+ Index: nil,
738
+ Recursive: false,
739
+ Nullables: []bool{},
740
+ Elements: []*schemametadata.MetadataSchema{props.Map.Key, props.Map.Value},
741
+ Of_map: &ofMap,
742
+ })
743
+ value := schemametadata.MetadataSchema_initialize()
744
+ value.Tuples = []*schemametadata.MetadataTuple{
745
+ schemametadata.MetadataTuple_create(schemametadata.MetadataTuple{
746
+ Type: tupleType,
747
+ Tags: [][]schemametadata.IMetadataTypeTag{},
748
+ }),
749
+ }
750
+ array := schemametadata.MetadataArray_create(schemametadata.MetadataArray{
751
+ Tags: [][]schemametadata.IMetadataTypeTag{},
752
+ Type: schemametadata.MetadataArrayType_create(schemametadata.MetadataArrayType{
753
+ Name: props.Map.GetName(),
754
+ Index: nil,
755
+ Recursive: false,
756
+ Nullables: []bool{},
757
+ Value: value,
758
+ }),
759
+ })
760
+ return randomProgrammer_factory.NewNewExpression(
761
+ randomProgrammer_factory.NewIdentifier("Map"),
762
+ nil,
763
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{
764
+ randomProgrammer_first(randomProgrammer_decode_array(randomProgrammer_decodeArrayProps{
765
+ Context: props.Context,
766
+ Functor: props.Functor,
767
+ Explore: props.Explore,
768
+ Array: array,
769
+ })),
770
+ }),
771
+ )
772
772
  }
773
773
 
774
774
  func randomProgrammer_decode_native(props struct {
775
- Context nativecontext.ITypiaContext
776
- Functor *nativehelpers.FunctionProgrammer
777
- Explore randomProgrammer_IExplore
778
- Name string
775
+ Context nativecontext.ITypiaContext
776
+ Functor *nativehelpers.FunctionProgrammer
777
+ Explore randomProgrammer_IExplore
778
+ Name string
779
779
  }) *shimast.Node {
780
- if props.Name == "Boolean" || props.Name == "Number" || props.Name == "BigInt" || props.Name == "String" {
781
- atomic := strings.ToLower(props.Name)
782
- if atomic == "bigint" {
783
- atomic = "bigint"
784
- }
785
- return randomProgrammer_first(randomProgrammer_decode_atomic(randomProgrammer_decodeAtomicProps{
786
- Context: props.Context,
787
- Atomic: schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
788
- Type: atomic,
789
- Tags: [][]schemametadata.IMetadataTypeTag{},
790
- }),
791
- }))
792
- }
793
- if props.Name == "Date" {
794
- return randomProgrammer_decode_native_date(props.Context)
795
- }
796
- if randomProgrammer_is_typed_array(props.Name) {
797
- return randomProgrammer_decode_native_byte_array(struct {
798
- Context nativecontext.ITypiaContext
799
- Functor *nativehelpers.FunctionProgrammer
800
- Explore randomProgrammer_IExplore
801
- Name string
802
- }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: props.Name})
803
- }
804
- if props.Name == "ArrayBuffer" || props.Name == "SharedArrayBuffer" {
805
- return randomProgrammer_decode_native_array_buffer(struct {
806
- Context nativecontext.ITypiaContext
807
- Functor *nativehelpers.FunctionProgrammer
808
- Explore randomProgrammer_IExplore
809
- Name string
810
- }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: props.Name})
811
- }
812
- if props.Name == "DataView" {
813
- return randomProgrammer_decode_native_data_view(props)
814
- }
815
- if props.Name == "Blob" {
816
- return randomProgrammer_decode_native_blob(props)
817
- }
818
- if props.Name == "File" {
819
- return randomProgrammer_decode_native_file(props)
820
- }
821
- if props.Name == "RegExp" {
822
- return randomProgrammer_decode_regexp(props.Context)
823
- }
824
- return randomProgrammer_factory.NewNewExpression(randomProgrammer_factory.NewIdentifier(props.Name), nil, randomProgrammer_factory.NewNodeList(nil))
780
+ if props.Name == "Boolean" || props.Name == "Number" || props.Name == "BigInt" || props.Name == "String" {
781
+ atomic := strings.ToLower(props.Name)
782
+ if atomic == "bigint" {
783
+ atomic = "bigint"
784
+ }
785
+ return randomProgrammer_first(randomProgrammer_decode_atomic(randomProgrammer_decodeAtomicProps{
786
+ Context: props.Context,
787
+ Atomic: schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
788
+ Type: atomic,
789
+ Tags: [][]schemametadata.IMetadataTypeTag{},
790
+ }),
791
+ }))
792
+ }
793
+ if props.Name == "Date" {
794
+ return randomProgrammer_decode_native_date(props.Context)
795
+ }
796
+ if randomProgrammer_is_typed_array(props.Name) {
797
+ return randomProgrammer_decode_native_byte_array(struct {
798
+ Context nativecontext.ITypiaContext
799
+ Functor *nativehelpers.FunctionProgrammer
800
+ Explore randomProgrammer_IExplore
801
+ Name string
802
+ }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: props.Name})
803
+ }
804
+ if props.Name == "ArrayBuffer" || props.Name == "SharedArrayBuffer" {
805
+ return randomProgrammer_decode_native_array_buffer(struct {
806
+ Context nativecontext.ITypiaContext
807
+ Functor *nativehelpers.FunctionProgrammer
808
+ Explore randomProgrammer_IExplore
809
+ Name string
810
+ }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: props.Name})
811
+ }
812
+ if props.Name == "DataView" {
813
+ return randomProgrammer_decode_native_data_view(props)
814
+ }
815
+ if props.Name == "Blob" {
816
+ return randomProgrammer_decode_native_blob(props)
817
+ }
818
+ if props.Name == "File" {
819
+ return randomProgrammer_decode_native_file(props)
820
+ }
821
+ if props.Name == "RegExp" {
822
+ return randomProgrammer_decode_regexp(props.Context)
823
+ }
824
+ return randomProgrammer_factory.NewNewExpression(randomProgrammer_factory.NewIdentifier(props.Name), nil, randomProgrammer_factory.NewNodeList(nil))
825
825
  }
826
826
 
827
827
  func randomProgrammer_decode_native_date(context nativecontext.ITypiaContext) *shimast.Node {
828
- return randomProgrammer_factory.NewNewExpression(
829
- randomProgrammer_factory.NewIdentifier("Date"),
830
- nil,
831
- randomProgrammer_factory.NewNodeList([]*shimast.Node{
832
- randomProgrammer_factory.NewCallExpression(randomProgrammer_coalesce(context, "datetime", "randomFormatDatetime"), nil, nil, randomProgrammer_factory.NewNodeList(nil), shimast.NodeFlagsNone),
833
- }),
834
- )
828
+ return randomProgrammer_factory.NewNewExpression(
829
+ randomProgrammer_factory.NewIdentifier("Date"),
830
+ nil,
831
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{
832
+ randomProgrammer_factory.NewCallExpression(randomProgrammer_coalesce(context, "datetime", "randomFormatDatetime"), nil, nil, randomProgrammer_factory.NewNodeList(nil), shimast.NodeFlagsNone),
833
+ }),
834
+ )
835
835
  }
836
836
 
837
837
  func randomProgrammer_decode_native_byte_array(props struct {
838
- Context nativecontext.ITypiaContext
839
- Functor *nativehelpers.FunctionProgrammer
840
- Explore randomProgrammer_IExplore
841
- Name string
838
+ Context nativecontext.ITypiaContext
839
+ Functor *nativehelpers.FunctionProgrammer
840
+ Explore randomProgrammer_IExplore
841
+ Name string
842
842
  }) *shimast.Node {
843
- protobufType, minimum, maximum := randomProgrammer_typed_array_range(props.Name)
844
- atomic := "number"
845
- if props.Name == "BigInt64Array" || props.Name == "BigUint64Array" {
846
- atomic = "bigint"
847
- }
848
- value := schemametadata.MetadataSchema_initialize()
849
- value.Atomics = []*schemametadata.MetadataAtomic{
850
- schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
851
- Type: atomic,
852
- Tags: [][]schemametadata.IMetadataTypeTag{randomProgrammer_tags([]schemametadata.IMetadataTypeTag{},
853
- nativefactories.MetadataCommentTagFactory.Get(struct {
854
- Kind string
855
- Type string
856
- Value string
857
- }{Kind: "type", Type: atomic, Value: protobufType}),
858
- nativefactories.MetadataCommentTagFactory.Get(struct {
859
- Kind string
860
- Type string
861
- Value string
862
- }{Kind: "minimum", Type: "number", Value: minimum}),
863
- nativefactories.MetadataCommentTagFactory.Get(struct {
864
- Kind string
865
- Type string
866
- Value string
867
- }{Kind: "maximum", Type: "number", Value: maximum}),
868
- )},
869
- }),
870
- }
871
- array := schemametadata.MetadataArray_create(schemametadata.MetadataArray{
872
- Tags: [][]schemametadata.IMetadataTypeTag{},
873
- Type: schemametadata.MetadataArrayType_create(schemametadata.MetadataArrayType{
874
- Name: fmt.Sprintf("%s<%s>", props.Name, atomic),
875
- Value: value,
876
- Recursive: false,
877
- Index: nil,
878
- Nullables: []bool{},
879
- }),
880
- })
881
- return randomProgrammer_factory.NewNewExpression(
882
- randomProgrammer_factory.NewIdentifier(props.Name),
883
- nil,
884
- randomProgrammer_factory.NewNodeList(randomProgrammer_decode_array(randomProgrammer_decodeArrayProps{
885
- Context: props.Context,
886
- Functor: props.Functor,
887
- Explore: props.Explore,
888
- Array: array,
889
- })),
890
- )
843
+ protobufType, minimum, maximum := randomProgrammer_typed_array_range(props.Name)
844
+ atomic := "number"
845
+ if props.Name == "BigInt64Array" || props.Name == "BigUint64Array" {
846
+ atomic = "bigint"
847
+ }
848
+ value := schemametadata.MetadataSchema_initialize()
849
+ value.Atomics = []*schemametadata.MetadataAtomic{
850
+ schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
851
+ Type: atomic,
852
+ Tags: [][]schemametadata.IMetadataTypeTag{randomProgrammer_tags([]schemametadata.IMetadataTypeTag{},
853
+ nativefactories.MetadataCommentTagFactory.Get(struct {
854
+ Kind string
855
+ Type string
856
+ Value string
857
+ }{Kind: "type", Type: atomic, Value: protobufType}),
858
+ nativefactories.MetadataCommentTagFactory.Get(struct {
859
+ Kind string
860
+ Type string
861
+ Value string
862
+ }{Kind: "minimum", Type: "number", Value: minimum}),
863
+ nativefactories.MetadataCommentTagFactory.Get(struct {
864
+ Kind string
865
+ Type string
866
+ Value string
867
+ }{Kind: "maximum", Type: "number", Value: maximum}),
868
+ )},
869
+ }),
870
+ }
871
+ array := schemametadata.MetadataArray_create(schemametadata.MetadataArray{
872
+ Tags: [][]schemametadata.IMetadataTypeTag{},
873
+ Type: schemametadata.MetadataArrayType_create(schemametadata.MetadataArrayType{
874
+ Name: fmt.Sprintf("%s<%s>", props.Name, atomic),
875
+ Value: value,
876
+ Recursive: false,
877
+ Index: nil,
878
+ Nullables: []bool{},
879
+ }),
880
+ })
881
+ return randomProgrammer_factory.NewNewExpression(
882
+ randomProgrammer_factory.NewIdentifier(props.Name),
883
+ nil,
884
+ randomProgrammer_factory.NewNodeList(randomProgrammer_decode_array(randomProgrammer_decodeArrayProps{
885
+ Context: props.Context,
886
+ Functor: props.Functor,
887
+ Explore: props.Explore,
888
+ Array: array,
889
+ })),
890
+ )
891
891
  }
892
892
 
893
893
  func randomProgrammer_decode_native_blob(props struct {
894
- Context nativecontext.ITypiaContext
895
- Functor *nativehelpers.FunctionProgrammer
896
- Explore randomProgrammer_IExplore
897
- Name string
894
+ Context nativecontext.ITypiaContext
895
+ Functor *nativehelpers.FunctionProgrammer
896
+ Explore randomProgrammer_IExplore
897
+ Name string
898
898
  }) *shimast.Node {
899
- return randomProgrammer_factory.NewNewExpression(
900
- randomProgrammer_factory.NewIdentifier("Blob"),
901
- nil,
902
- randomProgrammer_factory.NewNodeList([]*shimast.Node{
903
- randomProgrammer_factory.NewArrayLiteralExpression(randomProgrammer_factory.NewNodeList([]*shimast.Node{
904
- randomProgrammer_decode_native_byte_array(struct {
905
- Context nativecontext.ITypiaContext
906
- Functor *nativehelpers.FunctionProgrammer
907
- Explore randomProgrammer_IExplore
908
- Name string
909
- }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: "Uint8Array"}),
910
- }), true),
911
- }),
912
- )
899
+ return randomProgrammer_factory.NewNewExpression(
900
+ randomProgrammer_factory.NewIdentifier("Blob"),
901
+ nil,
902
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{
903
+ randomProgrammer_factory.NewArrayLiteralExpression(randomProgrammer_factory.NewNodeList([]*shimast.Node{
904
+ randomProgrammer_decode_native_byte_array(struct {
905
+ Context nativecontext.ITypiaContext
906
+ Functor *nativehelpers.FunctionProgrammer
907
+ Explore randomProgrammer_IExplore
908
+ Name string
909
+ }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: "Uint8Array"}),
910
+ }), true),
911
+ }),
912
+ )
913
913
  }
914
914
 
915
915
  func randomProgrammer_decode_native_file(props struct {
916
- Context nativecontext.ITypiaContext
917
- Functor *nativehelpers.FunctionProgrammer
918
- Explore randomProgrammer_IExplore
919
- Name string
916
+ Context nativecontext.ITypiaContext
917
+ Functor *nativehelpers.FunctionProgrammer
918
+ Explore randomProgrammer_IExplore
919
+ Name string
920
920
  }) *shimast.Node {
921
- return randomProgrammer_factory.NewNewExpression(
922
- randomProgrammer_factory.NewIdentifier("File"),
923
- nil,
924
- randomProgrammer_factory.NewNodeList([]*shimast.Node{
925
- randomProgrammer_factory.NewArrayLiteralExpression(randomProgrammer_factory.NewNodeList([]*shimast.Node{
926
- randomProgrammer_decode_native_byte_array(struct {
927
- Context nativecontext.ITypiaContext
928
- Functor *nativehelpers.FunctionProgrammer
929
- Explore randomProgrammer_IExplore
930
- Name string
931
- }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: "Uint8Array"}),
932
- }), true),
933
- randomProgrammer_factory.NewTemplateExpression(
934
- randomProgrammer_factory.NewTemplateHead("", "", shimast.TokenFlagsNone),
935
- randomProgrammer_factory.NewNodeList([]*shimast.Node{
936
- randomProgrammer_factory.NewTemplateSpan(
937
- randomProgrammer_write_ranged_string(props.Context, 1, 8),
938
- randomProgrammer_factory.NewTemplateMiddle(".", ".", shimast.TokenFlagsNone),
939
- ),
940
- randomProgrammer_factory.NewTemplateSpan(
941
- randomProgrammer_write_ranged_string(props.Context, 3, 3),
942
- randomProgrammer_factory.NewTemplateTail("", "", shimast.TokenFlagsNone),
943
- ),
944
- }),
945
- ),
946
- }),
947
- )
921
+ return randomProgrammer_factory.NewNewExpression(
922
+ randomProgrammer_factory.NewIdentifier("File"),
923
+ nil,
924
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{
925
+ randomProgrammer_factory.NewArrayLiteralExpression(randomProgrammer_factory.NewNodeList([]*shimast.Node{
926
+ randomProgrammer_decode_native_byte_array(struct {
927
+ Context nativecontext.ITypiaContext
928
+ Functor *nativehelpers.FunctionProgrammer
929
+ Explore randomProgrammer_IExplore
930
+ Name string
931
+ }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: "Uint8Array"}),
932
+ }), true),
933
+ randomProgrammer_factory.NewTemplateExpression(
934
+ randomProgrammer_factory.NewTemplateHead("", "", shimast.TokenFlagsNone),
935
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{
936
+ randomProgrammer_factory.NewTemplateSpan(
937
+ randomProgrammer_write_ranged_string(props.Context, 1, 8),
938
+ randomProgrammer_factory.NewTemplateMiddle(".", ".", shimast.TokenFlagsNone),
939
+ ),
940
+ randomProgrammer_factory.NewTemplateSpan(
941
+ randomProgrammer_write_ranged_string(props.Context, 3, 3),
942
+ randomProgrammer_factory.NewTemplateTail("", "", shimast.TokenFlagsNone),
943
+ ),
944
+ }),
945
+ ),
946
+ }),
947
+ )
948
948
  }
949
949
 
950
950
  func randomProgrammer_decode_native_array_buffer(props struct {
951
- Context nativecontext.ITypiaContext
952
- Functor *nativehelpers.FunctionProgrammer
953
- Explore randomProgrammer_IExplore
954
- Name string
951
+ Context nativecontext.ITypiaContext
952
+ Functor *nativehelpers.FunctionProgrammer
953
+ Explore randomProgrammer_IExplore
954
+ Name string
955
955
  }) *shimast.Node {
956
- if props.Name == "ArrayBuffer" {
957
- return nativefactories.IdentifierFactory.Access(
958
- randomProgrammer_decode_native_byte_array(struct {
959
- Context nativecontext.ITypiaContext
960
- Functor *nativehelpers.FunctionProgrammer
961
- Explore randomProgrammer_IExplore
962
- Name string
963
- }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: "Uint8Array"}),
964
- "buffer",
965
- )
966
- }
967
- length := randomProgrammer_first(randomProgrammer_decode_atomic(randomProgrammer_decodeAtomicProps{
968
- Context: props.Context,
969
- Atomic: schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
970
- Type: "number",
971
- Tags: [][]schemametadata.IMetadataTypeTag{nativefactories.MetadataCommentTagFactory.Get(struct {
972
- Kind string
973
- Type string
974
- Value string
975
- }{Kind: "type", Type: "number", Value: "uint32"})},
976
- }),
977
- }))
978
- byteValue := randomProgrammer_first(randomProgrammer_decode_atomic(randomProgrammer_decodeAtomicProps{
979
- Context: props.Context,
980
- Atomic: schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
981
- Type: "number",
982
- Tags: [][]schemametadata.IMetadataTypeTag{randomProgrammer_tags([]schemametadata.IMetadataTypeTag{},
983
- nativefactories.MetadataCommentTagFactory.Get(struct {
984
- Kind string
985
- Type string
986
- Value string
987
- }{Kind: "type", Type: "number", Value: "uint32"}),
988
- nativefactories.MetadataCommentTagFactory.Get(struct {
989
- Kind string
990
- Type string
991
- Value string
992
- }{Kind: "minimum", Type: "number", Value: "0"}),
993
- nativefactories.MetadataCommentTagFactory.Get(struct {
994
- Kind string
995
- Type string
996
- Value string
997
- }{Kind: "maximum", Type: "number", Value: "255"}),
998
- )},
999
- }),
1000
- }))
1001
- return nativefactories.ExpressionFactory.SelfCall(randomProgrammer_factory.NewBlock(randomProgrammer_factory.NewNodeList([]*shimast.Node{
1002
- nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{Name: "length", Value: length}),
1003
- nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
1004
- Name: "buffer",
1005
- Value: randomProgrammer_factory.NewNewExpression(
1006
- randomProgrammer_factory.NewIdentifier("SharedArrayBuffer"),
1007
- nil,
1008
- randomProgrammer_factory.NewNodeList([]*shimast.Node{randomProgrammer_factory.NewIdentifier("length")}),
1009
- ),
1010
- }),
1011
- nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
1012
- Name: "bytes",
1013
- Value: randomProgrammer_factory.NewNewExpression(
1014
- randomProgrammer_factory.NewIdentifier("Uint8Array"),
1015
- nil,
1016
- randomProgrammer_factory.NewNodeList([]*shimast.Node{randomProgrammer_factory.NewIdentifier("buffer")}),
1017
- ),
1018
- }),
1019
- randomProgrammer_factory.NewExpressionStatement(randomProgrammer_factory.NewCallExpression(
1020
- nativefactories.IdentifierFactory.Access(randomProgrammer_factory.NewIdentifier("bytes"), "set"),
1021
- nil,
1022
- nil,
1023
- randomProgrammer_factory.NewNodeList([]*shimast.Node{
1024
- randomProgrammer_factory.NewCallExpression(
1025
- nativefactories.IdentifierFactory.Access(
1026
- randomProgrammer_factory.NewCallExpression(
1027
- nativefactories.IdentifierFactory.Access(
1028
- randomProgrammer_factory.NewNewExpression(
1029
- randomProgrammer_factory.NewIdentifier("Array"),
1030
- nil,
1031
- randomProgrammer_factory.NewNodeList([]*shimast.Node{randomProgrammer_factory.NewIdentifier("length")}),
1032
- ),
1033
- "fill",
1034
- ),
1035
- nil,
1036
- nil,
1037
- randomProgrammer_factory.NewNodeList([]*shimast.Node{nativefactories.ExpressionFactory.Number(0)}),
1038
- shimast.NodeFlagsNone,
1039
- ),
1040
- "map",
1041
- ),
1042
- nil,
1043
- nil,
1044
- randomProgrammer_factory.NewNodeList([]*shimast.Node{
1045
- randomProgrammer_factory.NewArrowFunction(nil, nil, randomProgrammer_factory.NewNodeList(nil), nil, nil, randomProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken), byteValue),
1046
- }),
1047
- shimast.NodeFlagsNone,
1048
- ),
1049
- nativefactories.ExpressionFactory.Number(0),
1050
- }),
1051
- shimast.NodeFlagsNone,
1052
- )),
1053
- randomProgrammer_factory.NewReturnStatement(randomProgrammer_factory.NewIdentifier("buffer")),
1054
- }), true))
956
+ if props.Name == "ArrayBuffer" {
957
+ return nativefactories.IdentifierFactory.Access(
958
+ randomProgrammer_decode_native_byte_array(struct {
959
+ Context nativecontext.ITypiaContext
960
+ Functor *nativehelpers.FunctionProgrammer
961
+ Explore randomProgrammer_IExplore
962
+ Name string
963
+ }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: "Uint8Array"}),
964
+ "buffer",
965
+ )
966
+ }
967
+ length := randomProgrammer_first(randomProgrammer_decode_atomic(randomProgrammer_decodeAtomicProps{
968
+ Context: props.Context,
969
+ Atomic: schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
970
+ Type: "number",
971
+ Tags: [][]schemametadata.IMetadataTypeTag{nativefactories.MetadataCommentTagFactory.Get(struct {
972
+ Kind string
973
+ Type string
974
+ Value string
975
+ }{Kind: "type", Type: "number", Value: "uint32"})},
976
+ }),
977
+ }))
978
+ byteValue := randomProgrammer_first(randomProgrammer_decode_atomic(randomProgrammer_decodeAtomicProps{
979
+ Context: props.Context,
980
+ Atomic: schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
981
+ Type: "number",
982
+ Tags: [][]schemametadata.IMetadataTypeTag{randomProgrammer_tags([]schemametadata.IMetadataTypeTag{},
983
+ nativefactories.MetadataCommentTagFactory.Get(struct {
984
+ Kind string
985
+ Type string
986
+ Value string
987
+ }{Kind: "type", Type: "number", Value: "uint32"}),
988
+ nativefactories.MetadataCommentTagFactory.Get(struct {
989
+ Kind string
990
+ Type string
991
+ Value string
992
+ }{Kind: "minimum", Type: "number", Value: "0"}),
993
+ nativefactories.MetadataCommentTagFactory.Get(struct {
994
+ Kind string
995
+ Type string
996
+ Value string
997
+ }{Kind: "maximum", Type: "number", Value: "255"}),
998
+ )},
999
+ }),
1000
+ }))
1001
+ return nativefactories.ExpressionFactory.SelfCall(randomProgrammer_factory.NewBlock(randomProgrammer_factory.NewNodeList([]*shimast.Node{
1002
+ nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{Name: "length", Value: length}),
1003
+ nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
1004
+ Name: "buffer",
1005
+ Value: randomProgrammer_factory.NewNewExpression(
1006
+ randomProgrammer_factory.NewIdentifier("SharedArrayBuffer"),
1007
+ nil,
1008
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{randomProgrammer_factory.NewIdentifier("length")}),
1009
+ ),
1010
+ }),
1011
+ nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
1012
+ Name: "bytes",
1013
+ Value: randomProgrammer_factory.NewNewExpression(
1014
+ randomProgrammer_factory.NewIdentifier("Uint8Array"),
1015
+ nil,
1016
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{randomProgrammer_factory.NewIdentifier("buffer")}),
1017
+ ),
1018
+ }),
1019
+ randomProgrammer_factory.NewExpressionStatement(randomProgrammer_factory.NewCallExpression(
1020
+ nativefactories.IdentifierFactory.Access(randomProgrammer_factory.NewIdentifier("bytes"), "set"),
1021
+ nil,
1022
+ nil,
1023
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{
1024
+ randomProgrammer_factory.NewCallExpression(
1025
+ nativefactories.IdentifierFactory.Access(
1026
+ randomProgrammer_factory.NewCallExpression(
1027
+ nativefactories.IdentifierFactory.Access(
1028
+ randomProgrammer_factory.NewNewExpression(
1029
+ randomProgrammer_factory.NewIdentifier("Array"),
1030
+ nil,
1031
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{randomProgrammer_factory.NewIdentifier("length")}),
1032
+ ),
1033
+ "fill",
1034
+ ),
1035
+ nil,
1036
+ nil,
1037
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{nativefactories.ExpressionFactory.Number(0)}),
1038
+ shimast.NodeFlagsNone,
1039
+ ),
1040
+ "map",
1041
+ ),
1042
+ nil,
1043
+ nil,
1044
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{
1045
+ randomProgrammer_factory.NewArrowFunction(nil, nil, randomProgrammer_factory.NewNodeList(nil), nil, nil, randomProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken), byteValue),
1046
+ }),
1047
+ shimast.NodeFlagsNone,
1048
+ ),
1049
+ nativefactories.ExpressionFactory.Number(0),
1050
+ }),
1051
+ shimast.NodeFlagsNone,
1052
+ )),
1053
+ randomProgrammer_factory.NewReturnStatement(randomProgrammer_factory.NewIdentifier("buffer")),
1054
+ }), true))
1055
1055
  }
1056
1056
 
1057
1057
  func randomProgrammer_decode_native_data_view(props struct {
1058
- Context nativecontext.ITypiaContext
1059
- Functor *nativehelpers.FunctionProgrammer
1060
- Explore randomProgrammer_IExplore
1061
- Name string
1058
+ Context nativecontext.ITypiaContext
1059
+ Functor *nativehelpers.FunctionProgrammer
1060
+ Explore randomProgrammer_IExplore
1061
+ Name string
1062
1062
  }) *shimast.Node {
1063
- return randomProgrammer_factory.NewNewExpression(
1064
- randomProgrammer_factory.NewIdentifier("DataView"),
1065
- nil,
1066
- randomProgrammer_factory.NewNodeList([]*shimast.Node{
1067
- nativefactories.IdentifierFactory.Access(
1068
- randomProgrammer_decode_native_byte_array(struct {
1069
- Context nativecontext.ITypiaContext
1070
- Functor *nativehelpers.FunctionProgrammer
1071
- Explore randomProgrammer_IExplore
1072
- Name string
1073
- }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: "Uint8Array"}),
1074
- "buffer",
1075
- ),
1076
- }),
1077
- )
1063
+ return randomProgrammer_factory.NewNewExpression(
1064
+ randomProgrammer_factory.NewIdentifier("DataView"),
1065
+ nil,
1066
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{
1067
+ nativefactories.IdentifierFactory.Access(
1068
+ randomProgrammer_decode_native_byte_array(struct {
1069
+ Context nativecontext.ITypiaContext
1070
+ Functor *nativehelpers.FunctionProgrammer
1071
+ Explore randomProgrammer_IExplore
1072
+ Name string
1073
+ }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: "Uint8Array"}),
1074
+ "buffer",
1075
+ ),
1076
+ }),
1077
+ )
1078
1078
  }
1079
1079
 
1080
1080
  func randomProgrammer_decode_regexp(context nativecontext.ITypiaContext) *shimast.Node {
1081
- return randomProgrammer_factory.NewNewExpression(
1082
- randomProgrammer_factory.NewIdentifier("RegExp"),
1083
- nil,
1084
- randomProgrammer_factory.NewNodeList([]*shimast.Node{
1085
- randomProgrammer_factory.NewCallExpression(randomProgrammer_coalesce(context, "regex", "randomFormatRegex"), nil, nil, nil, shimast.NodeFlagsNone),
1086
- }),
1087
- )
1081
+ return randomProgrammer_factory.NewNewExpression(
1082
+ randomProgrammer_factory.NewIdentifier("RegExp"),
1083
+ nil,
1084
+ randomProgrammer_factory.NewNodeList([]*shimast.Node{
1085
+ randomProgrammer_factory.NewCallExpression(randomProgrammer_coalesce(context, "regex", "randomFormatRegex"), nil, nil, nil, shimast.NodeFlagsNone),
1086
+ }),
1087
+ )
1088
1088
  }
1089
1089
 
1090
1090
  func randomProgrammer_write_ranged_string(context nativecontext.ITypiaContext, minLength int, maxLength int) *shimast.Node {
1091
- return randomProgrammer_first(randomProgrammer_decode_atomic(randomProgrammer_decodeAtomicProps{
1092
- Context: context,
1093
- Atomic: schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
1094
- Type: "string",
1095
- Tags: [][]schemametadata.IMetadataTypeTag{randomProgrammer_tags([]schemametadata.IMetadataTypeTag{},
1096
- nativefactories.MetadataCommentTagFactory.Get(struct {
1097
- Kind string
1098
- Type string
1099
- Value string
1100
- }{Kind: "minLength", Type: "string", Value: fmt.Sprint(minLength)}),
1101
- nativefactories.MetadataCommentTagFactory.Get(struct {
1102
- Kind string
1103
- Type string
1104
- Value string
1105
- }{Kind: "maxLength", Type: "string", Value: fmt.Sprint(maxLength)}),
1106
- )},
1107
- }),
1108
- }))
1091
+ return randomProgrammer_first(randomProgrammer_decode_atomic(randomProgrammer_decodeAtomicProps{
1092
+ Context: context,
1093
+ Atomic: schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
1094
+ Type: "string",
1095
+ Tags: [][]schemametadata.IMetadataTypeTag{randomProgrammer_tags([]schemametadata.IMetadataTypeTag{},
1096
+ nativefactories.MetadataCommentTagFactory.Get(struct {
1097
+ Kind string
1098
+ Type string
1099
+ Value string
1100
+ }{Kind: "minLength", Type: "string", Value: fmt.Sprint(minLength)}),
1101
+ nativefactories.MetadataCommentTagFactory.Get(struct {
1102
+ Kind string
1103
+ Type string
1104
+ Value string
1105
+ }{Kind: "maxLength", Type: "string", Value: fmt.Sprint(maxLength)}),
1106
+ )},
1107
+ }),
1108
+ }))
1109
1109
  }
1110
1110
 
1111
1111
  func randomProgrammer_coalesce(context nativecontext.ITypiaContext, method string, internal string) *shimast.Node {
1112
- return nativefactories.ExpressionFactory.Coalesce(
1113
- nativefactories.IdentifierFactory.Access(randomProgrammer_factory.NewIdentifier("_generator"), method, true),
1114
- randomProgrammer_internal(context, internal),
1115
- )
1112
+ return nativefactories.ExpressionFactory.Coalesce(
1113
+ nativefactories.IdentifierFactory.Access(randomProgrammer_factory.NewIdentifier("_generator"), method, true),
1114
+ randomProgrammer_internal(context, internal),
1115
+ )
1116
1116
  }
1117
1117
 
1118
1118
  func randomProgrammer_schema_without_items(schema nativeiterate.JsonSchema) *shimast.Node {
1119
- properties := []*shimast.Node{}
1120
- for key, value := range schema {
1121
- if key == "items" {
1122
- continue
1123
- }
1124
- properties = append(properties, randomProgrammer_factory.NewPropertyAssignment(
1125
- nil,
1126
- nativefactories.IdentifierFactory.Identifier(key),
1127
- nil,
1128
- nil,
1129
- nativefactories.LiteralFactory.Write(value),
1130
- ))
1131
- }
1132
- return randomProgrammer_factory.NewObjectLiteralExpression(randomProgrammer_factory.NewNodeList(properties), true)
1119
+ properties := []*shimast.Node{}
1120
+ for key, value := range schema {
1121
+ if key == "items" {
1122
+ continue
1123
+ }
1124
+ properties = append(properties, randomProgrammer_factory.NewPropertyAssignment(
1125
+ nil,
1126
+ nativefactories.IdentifierFactory.Identifier(key),
1127
+ nil,
1128
+ nil,
1129
+ nativefactories.LiteralFactory.Write(value),
1130
+ ))
1131
+ }
1132
+ return randomProgrammer_factory.NewObjectLiteralExpression(randomProgrammer_factory.NewNodeList(properties), true)
1133
1133
  }
1134
1134
 
1135
1135
  func randomProgrammer_internal(context nativecontext.ITypiaContext, name string) *shimast.Node {
1136
- if importer, ok := context.Importer.(interface{ Internal(string) *shimast.Node }); ok {
1137
- return importer.Internal(name)
1138
- }
1139
- return randomProgrammer_factory.NewIdentifier(name)
1136
+ if importer, ok := context.Importer.(interface{ Internal(string) *shimast.Node }); ok {
1137
+ return importer.Internal(name)
1138
+ }
1139
+ return randomProgrammer_factory.NewIdentifier(name)
1140
1140
  }
1141
1141
 
1142
1142
  func randomProgrammer_import_type(context nativecontext.ITypiaContext, props ImportProgrammer_TypeProps) *shimast.Node {
1143
- if importer, ok := context.Importer.(interface {
1144
- Type(ImportProgrammer_TypeProps) *shimast.Node
1145
- }); ok {
1146
- return importer.Type(props)
1147
- }
1148
- if str, ok := props.Name.(string); ok {
1149
- return randomProgrammer_factory.NewTypeReferenceNode(randomProgrammer_factory.NewIdentifier(str), randomProgrammer_factory.NewNodeList(props.Arguments))
1150
- }
1151
- return props.Name.(*shimast.Node)
1143
+ if importer, ok := context.Importer.(interface {
1144
+ Type(ImportProgrammer_TypeProps) *shimast.Node
1145
+ }); ok {
1146
+ return importer.Type(props)
1147
+ }
1148
+ if str, ok := props.Name.(string); ok {
1149
+ return randomProgrammer_factory.NewTypeReferenceNode(randomProgrammer_factory.NewIdentifier(str), randomProgrammer_factory.NewNodeList(props.Arguments))
1150
+ }
1151
+ return props.Name.(*shimast.Node)
1152
1152
  }
1153
1153
 
1154
1154
  func randomProgrammer_type_reference(context nativecontext.ITypiaContext, typ *shimchecker.Type, name *string) *shimast.Node {
1155
- if name != nil {
1156
- return randomProgrammer_factory.NewTypeReferenceNode(randomProgrammer_factory.NewIdentifier(*name), nil)
1157
- }
1158
- return randomProgrammer_factory.NewTypeReferenceNode(randomProgrammer_factory.NewIdentifier(nativefactories.TypeFactory.GetFullName(nativefactories.TypeFactory_GetFullNameProps{
1159
- Checker: context.Checker,
1160
- Type: typ,
1161
- })), nil)
1155
+ if name != nil {
1156
+ return randomProgrammer_factory.NewTypeReferenceNode(randomProgrammer_factory.NewIdentifier(*name), nil)
1157
+ }
1158
+ return randomProgrammer_factory.NewTypeReferenceNode(randomProgrammer_factory.NewIdentifier(nativefactories.TypeFactory.GetFullName(nativefactories.TypeFactory_GetFullNameProps{
1159
+ Checker: context.Checker,
1160
+ Type: typ,
1161
+ })), nil)
1162
1162
  }
1163
1163
 
1164
1164
  func randomProgrammer_method_text(modulo *shimast.Node) string {
1165
- if modulo == nil {
1166
- return ""
1167
- }
1168
- return modulo.Text()
1165
+ if modulo == nil {
1166
+ return ""
1167
+ }
1168
+ return modulo.Text()
1169
1169
  }
1170
1170
 
1171
1171
  func randomProgrammer_errors(errors []nativefactories.MetadataFactory_IError) []nativecontext.TransformerError_MetadataFactory_IError {
1172
- output := make([]nativecontext.TransformerError_MetadataFactory_IError, 0, len(errors))
1173
- for _, err := range errors {
1174
- output = append(output, nativecontext.TransformerError_MetadataFactory_IError{
1175
- Name: err.Name,
1176
- Explore: nativecontext.TransformerError_MetadataFactory_IExplore{
1177
- Object: err.Explore.Object,
1178
- Property: err.Explore.Property,
1179
- Parameter: err.Explore.Parameter,
1180
- Output: err.Explore.Output,
1181
- },
1182
- Messages: append([]string{}, err.Messages...),
1183
- })
1184
- }
1185
- return output
1172
+ output := make([]nativecontext.TransformerError_MetadataFactory_IError, 0, len(errors))
1173
+ for _, err := range errors {
1174
+ output = append(output, nativecontext.TransformerError_MetadataFactory_IError{
1175
+ Name: err.Name,
1176
+ Explore: nativecontext.TransformerError_MetadataFactory_IExplore{
1177
+ Object: err.Explore.Object,
1178
+ Property: err.Explore.Property,
1179
+ Parameter: err.Explore.Parameter,
1180
+ Output: err.Explore.Output,
1181
+ },
1182
+ Messages: append([]string{}, err.Messages...),
1183
+ })
1184
+ }
1185
+ return output
1186
1186
  }
1187
1187
 
1188
1188
  func randomProgrammer_prefix_object(i int) string {
1189
- return fmt.Sprintf("%s%d", randomProgrammer_PREFIX_OBJECT, i)
1189
+ return fmt.Sprintf("%s%d", randomProgrammer_PREFIX_OBJECT, i)
1190
1190
  }
1191
1191
  func randomProgrammer_prefix_array(i int) string {
1192
- return fmt.Sprintf("%s%d", randomProgrammer_PREFIX_ARRAY, i)
1192
+ return fmt.Sprintf("%s%d", randomProgrammer_PREFIX_ARRAY, i)
1193
1193
  }
1194
1194
  func randomProgrammer_prefix_tuple(i int) string {
1195
- return fmt.Sprintf("%s%d", randomProgrammer_PREFIX_TUPLE, i)
1195
+ return fmt.Sprintf("%s%d", randomProgrammer_PREFIX_TUPLE, i)
1196
1196
  }
1197
1197
 
1198
1198
  func randomProgrammer_capitalize(str string) string {
1199
- if str == "" {
1200
- return ""
1201
- }
1202
- return strings.ToUpper(str[:1]) + str[1:]
1199
+ if str == "" {
1200
+ return ""
1201
+ }
1202
+ return strings.ToUpper(str[:1]) + str[1:]
1203
1203
  }
1204
1204
 
1205
1205
  func randomProgrammer_format_pascal(format string) string {
1206
- parts := strings.Split(format, "-")
1207
- for i, part := range parts {
1208
- parts[i] = randomProgrammer_capitalize(part)
1209
- }
1210
- return strings.Join(parts, "")
1206
+ parts := strings.Split(format, "-")
1207
+ for i, part := range parts {
1208
+ parts[i] = randomProgrammer_capitalize(part)
1209
+ }
1210
+ return strings.Join(parts, "")
1211
1211
  }
1212
1212
 
1213
1213
  func randomProgrammer_format_method(format string) string {
1214
- parts := strings.Split(format, "-")
1215
- for i, part := range parts {
1216
- if i != 0 {
1217
- parts[i] = randomProgrammer_capitalize(part)
1218
- }
1219
- }
1220
- return strings.Join(parts, "")
1214
+ parts := strings.Split(format, "-")
1215
+ for i, part := range parts {
1216
+ if i != 0 {
1217
+ parts[i] = randomProgrammer_capitalize(part)
1218
+ }
1219
+ }
1220
+ return strings.Join(parts, "")
1221
1221
  }
1222
1222
 
1223
1223
  func randomProgrammer_is_typed_array(name string) bool {
1224
- switch name {
1225
- case "Uint8Array", "Uint8ClampedArray", "Uint16Array", "Uint32Array", "BigUint64Array",
1226
- "Int8Array", "Int16Array", "Int32Array", "BigInt64Array", "Float32Array", "Float64Array":
1227
- return true
1228
- default:
1229
- return false
1230
- }
1224
+ switch name {
1225
+ case "Uint8Array", "Uint8ClampedArray", "Uint16Array", "Uint32Array", "BigUint64Array",
1226
+ "Int8Array", "Int16Array", "Int32Array", "BigInt64Array", "Float32Array", "Float64Array":
1227
+ return true
1228
+ default:
1229
+ return false
1230
+ }
1231
1231
  }
1232
1232
 
1233
1233
  func randomProgrammer_typed_array_range(name string) (string, string, string) {
1234
- switch name {
1235
- case "Uint8Array", "Uint8ClampedArray":
1236
- return "uint32", "0", "255"
1237
- case "Uint16Array":
1238
- return "uint32", "0", "65535"
1239
- case "Uint32Array":
1240
- return "uint32", "0", "4294967295"
1241
- case "BigUint64Array":
1242
- return "uint64", "0", "18446744073709551615"
1243
- case "Int8Array":
1244
- return "int32", "-128", "127"
1245
- case "Int16Array":
1246
- return "int32", "-32768", "32767"
1247
- case "Int32Array":
1248
- return "int32", "-2147483648", "2147483647"
1249
- case "BigInt64Array":
1250
- return "uint64", "-9223372036854775808", "9223372036854775807"
1251
- case "Float32Array":
1252
- return "float", "-1.175494351e38", "3.4028235e38"
1253
- default:
1254
- return "double", fmt.Sprint(math.SmallestNonzeroFloat64), fmt.Sprint(math.MaxFloat64)
1255
- }
1234
+ switch name {
1235
+ case "Uint8Array", "Uint8ClampedArray":
1236
+ return "uint32", "0", "255"
1237
+ case "Uint16Array":
1238
+ return "uint32", "0", "65535"
1239
+ case "Uint32Array":
1240
+ return "uint32", "0", "4294967295"
1241
+ case "BigUint64Array":
1242
+ return "uint64", "0", "18446744073709551615"
1243
+ case "Int8Array":
1244
+ return "int32", "-128", "127"
1245
+ case "Int16Array":
1246
+ return "int32", "-32768", "32767"
1247
+ case "Int32Array":
1248
+ return "int32", "-2147483648", "2147483647"
1249
+ case "BigInt64Array":
1250
+ return "uint64", "-9223372036854775808", "9223372036854775807"
1251
+ case "Float32Array":
1252
+ return "float", "-1.175494351e38", "3.4028235e38"
1253
+ default:
1254
+ return "double", fmt.Sprint(math.SmallestNonzeroFloat64), fmt.Sprint(math.MaxFloat64)
1255
+ }
1256
1256
  }
1257
1257
 
1258
1258
  func randomProgrammer_tags(base []schemametadata.IMetadataTypeTag, rows ...[]schemametadata.IMetadataTypeTag) []schemametadata.IMetadataTypeTag {
1259
- output := append([]schemametadata.IMetadataTypeTag{}, base...)
1260
- for _, row := range rows {
1261
- output = append(output, row...)
1262
- }
1263
- return output
1259
+ output := append([]schemametadata.IMetadataTypeTag{}, base...)
1260
+ for _, row := range rows {
1261
+ output = append(output, row...)
1262
+ }
1263
+ return output
1264
1264
  }
1265
1265
 
1266
1266
  func randomProgrammer_first(list []*shimast.Node) *shimast.Node {
1267
- if len(list) == 0 {
1268
- return randomProgrammer_factory.NewIdentifier("undefined")
1269
- }
1270
- return list[0]
1267
+ if len(list) == 0 {
1268
+ return randomProgrammer_factory.NewIdentifier("undefined")
1269
+ }
1270
+ return list[0]
1271
1271
  }