typia 13.0.1-dev.20260703.1 → 13.0.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 (1298) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +169 -171
  3. package/lib/TypeGuardError.mjs +42 -3
  4. package/lib/TypeGuardError.mjs.map +1 -1
  5. package/lib/_virtual/_rolldown/runtime.mjs +17 -0
  6. package/lib/compare.mjs +39 -3
  7. package/lib/compare.mjs.map +1 -1
  8. package/lib/executable/TypiaGenerateWizard.js +7 -2
  9. package/lib/executable/TypiaGenerateWizard.js.map +1 -1
  10. package/lib/executable/TypiaGenerateWizard.mjs +474 -3
  11. package/lib/executable/TypiaGenerateWizard.mjs.map +1 -1
  12. package/lib/executable/generate/ttsc.js +11 -8
  13. package/lib/executable/generate/ttsc.js.map +1 -1
  14. package/lib/executable/generate/ttsc.mjs +37 -3
  15. package/lib/executable/generate/ttsc.mjs.map +1 -1
  16. package/lib/executable/typia.js +10 -4
  17. package/lib/executable/typia.js.map +1 -1
  18. package/lib/executable/typia.mjs +59 -3
  19. package/lib/executable/typia.mjs.map +1 -1
  20. package/lib/functional.mjs +99 -3
  21. package/lib/functional.mjs.map +1 -1
  22. package/lib/http.mjs +139 -3
  23. package/lib/http.mjs.map +1 -1
  24. package/lib/index.mjs +18 -2
  25. package/lib/index.mjs.map +1 -1
  26. package/lib/internal/_IProtobufWriter.mjs +0 -3
  27. package/lib/internal/_ProtobufReader.js +7 -6
  28. package/lib/internal/_ProtobufReader.js.map +1 -1
  29. package/lib/internal/_ProtobufReader.mjs +140 -3
  30. package/lib/internal/_ProtobufReader.mjs.map +1 -1
  31. package/lib/internal/_ProtobufSizer.mjs +84 -3
  32. package/lib/internal/_ProtobufSizer.mjs.map +1 -1
  33. package/lib/internal/_ProtobufWriter.mjs +94 -3
  34. package/lib/internal/_ProtobufWriter.mjs.map +1 -1
  35. package/lib/internal/_accessExpressionAsString.mjs +46 -3
  36. package/lib/internal/_accessExpressionAsString.mjs.map +1 -1
  37. package/lib/internal/_assertGuard.mjs +11 -3
  38. package/lib/internal/_assertGuard.mjs.map +1 -1
  39. package/lib/internal/_coerceLlmArguments.mjs +7 -3
  40. package/lib/internal/_coerceLlmArguments.mjs.map +1 -1
  41. package/lib/internal/_createStandardSchema.mjs +64 -3
  42. package/lib/internal/_createStandardSchema.mjs.map +1 -1
  43. package/lib/internal/_functionalTypeGuardErrorFactory.mjs +7 -3
  44. package/lib/internal/_functionalTypeGuardErrorFactory.mjs.map +1 -1
  45. package/lib/internal/_httpFormDataReadArray.mjs +6 -3
  46. package/lib/internal/_httpFormDataReadArray.mjs.map +1 -1
  47. package/lib/internal/_httpFormDataReadBigint.mjs +13 -3
  48. package/lib/internal/_httpFormDataReadBigint.mjs.map +1 -1
  49. package/lib/internal/_httpFormDataReadBlob.mjs +6 -3
  50. package/lib/internal/_httpFormDataReadBlob.mjs.map +1 -1
  51. package/lib/internal/_httpFormDataReadBoolean.mjs +6 -3
  52. package/lib/internal/_httpFormDataReadBoolean.mjs.map +1 -1
  53. package/lib/internal/_httpFormDataReadFile.mjs +6 -3
  54. package/lib/internal/_httpFormDataReadFile.mjs.map +1 -1
  55. package/lib/internal/_httpFormDataReadNumber.mjs +10 -3
  56. package/lib/internal/_httpFormDataReadNumber.mjs.map +1 -1
  57. package/lib/internal/_httpFormDataReadString.mjs +6 -3
  58. package/lib/internal/_httpFormDataReadString.mjs.map +1 -1
  59. package/lib/internal/_httpHeaderReadBigint.mjs +13 -3
  60. package/lib/internal/_httpHeaderReadBigint.mjs.map +1 -1
  61. package/lib/internal/_httpHeaderReadBoolean.mjs +6 -3
  62. package/lib/internal/_httpHeaderReadBoolean.mjs.map +1 -1
  63. package/lib/internal/_httpHeaderReadNumber.mjs +10 -3
  64. package/lib/internal/_httpHeaderReadNumber.mjs.map +1 -1
  65. package/lib/internal/_httpParameterReadBigint.mjs +13 -3
  66. package/lib/internal/_httpParameterReadBigint.mjs.map +1 -1
  67. package/lib/internal/_httpParameterReadBoolean.mjs +6 -3
  68. package/lib/internal/_httpParameterReadBoolean.mjs.map +1 -1
  69. package/lib/internal/_httpParameterReadNumber.mjs +10 -3
  70. package/lib/internal/_httpParameterReadNumber.mjs.map +1 -1
  71. package/lib/internal/_httpParameterReadString.mjs +6 -3
  72. package/lib/internal/_httpParameterReadString.mjs.map +1 -1
  73. package/lib/internal/_httpQueryParseURLSearchParams.mjs +13 -3
  74. package/lib/internal/_httpQueryParseURLSearchParams.mjs.map +1 -1
  75. package/lib/internal/_httpQueryReadArray.mjs +6 -3
  76. package/lib/internal/_httpQueryReadArray.mjs.map +1 -1
  77. package/lib/internal/_httpQueryReadBigint.mjs +13 -3
  78. package/lib/internal/_httpQueryReadBigint.mjs.map +1 -1
  79. package/lib/internal/_httpQueryReadBoolean.mjs +6 -3
  80. package/lib/internal/_httpQueryReadBoolean.mjs.map +1 -1
  81. package/lib/internal/_httpQueryReadNumber.mjs +10 -3
  82. package/lib/internal/_httpQueryReadNumber.mjs.map +1 -1
  83. package/lib/internal/_httpQueryReadString.mjs +6 -3
  84. package/lib/internal/_httpQueryReadString.mjs.map +1 -1
  85. package/lib/internal/_isBetween.mjs +6 -3
  86. package/lib/internal/_isBetween.mjs.map +1 -1
  87. package/lib/internal/_isBigintString.mjs +13 -3
  88. package/lib/internal/_isBigintString.mjs.map +1 -1
  89. package/lib/internal/_isFormatByte.mjs +10 -3
  90. package/lib/internal/_isFormatByte.mjs.map +1 -1
  91. package/lib/internal/_isFormatDate.mjs +7 -3
  92. package/lib/internal/_isFormatDate.mjs.map +1 -1
  93. package/lib/internal/_isFormatDateTime.mjs +7 -3
  94. package/lib/internal/_isFormatDateTime.mjs.map +1 -1
  95. package/lib/internal/_isFormatDuration.mjs +7 -3
  96. package/lib/internal/_isFormatDuration.mjs.map +1 -1
  97. package/lib/internal/_isFormatEmail.mjs +7 -3
  98. package/lib/internal/_isFormatEmail.mjs.map +1 -1
  99. package/lib/internal/_isFormatHostname.mjs +7 -3
  100. package/lib/internal/_isFormatHostname.mjs.map +1 -1
  101. package/lib/internal/_isFormatIdnEmail.mjs +7 -3
  102. package/lib/internal/_isFormatIdnEmail.mjs.map +1 -1
  103. package/lib/internal/_isFormatIdnHostname.mjs +7 -3
  104. package/lib/internal/_isFormatIdnHostname.mjs.map +1 -1
  105. package/lib/internal/_isFormatIpv4.mjs +7 -3
  106. package/lib/internal/_isFormatIpv4.mjs.map +1 -1
  107. package/lib/internal/_isFormatIpv6.mjs +7 -3
  108. package/lib/internal/_isFormatIpv6.mjs.map +1 -1
  109. package/lib/internal/_isFormatIri.mjs +7 -3
  110. package/lib/internal/_isFormatIri.mjs.map +1 -1
  111. package/lib/internal/_isFormatIriReference.mjs +7 -3
  112. package/lib/internal/_isFormatIriReference.mjs.map +1 -1
  113. package/lib/internal/_isFormatJsonPointer.mjs +7 -3
  114. package/lib/internal/_isFormatJsonPointer.mjs.map +1 -1
  115. package/lib/internal/_isFormatPassword.mjs +6 -3
  116. package/lib/internal/_isFormatPassword.mjs.map +1 -1
  117. package/lib/internal/_isFormatRegex.mjs +13 -3
  118. package/lib/internal/_isFormatRegex.mjs.map +1 -1
  119. package/lib/internal/_isFormatRelativeJsonPointer.mjs +7 -3
  120. package/lib/internal/_isFormatRelativeJsonPointer.mjs.map +1 -1
  121. package/lib/internal/_isFormatTime.mjs +7 -3
  122. package/lib/internal/_isFormatTime.mjs.map +1 -1
  123. package/lib/internal/_isFormatUri.mjs +8 -3
  124. package/lib/internal/_isFormatUri.mjs.map +1 -1
  125. package/lib/internal/_isFormatUriReference.mjs +7 -3
  126. package/lib/internal/_isFormatUriReference.mjs.map +1 -1
  127. package/lib/internal/_isFormatUriTemplate.mjs +7 -3
  128. package/lib/internal/_isFormatUriTemplate.mjs.map +1 -1
  129. package/lib/internal/_isFormatUrl.mjs +7 -3
  130. package/lib/internal/_isFormatUrl.mjs.map +1 -1
  131. package/lib/internal/_isFormatUuid.mjs +7 -3
  132. package/lib/internal/_isFormatUuid.mjs.map +1 -1
  133. package/lib/internal/_isTypeFloat.mjs +8 -3
  134. package/lib/internal/_isTypeFloat.mjs.map +1 -1
  135. package/lib/internal/_isTypeInt16.mjs +8 -3
  136. package/lib/internal/_isTypeInt16.mjs.map +1 -1
  137. package/lib/internal/_isTypeInt32.mjs +8 -3
  138. package/lib/internal/_isTypeInt32.mjs.map +1 -1
  139. package/lib/internal/_isTypeInt64.mjs +8 -3
  140. package/lib/internal/_isTypeInt64.mjs.map +1 -1
  141. package/lib/internal/_isTypeInt8.mjs +8 -3
  142. package/lib/internal/_isTypeInt8.mjs.map +1 -1
  143. package/lib/internal/_isTypeUint16.mjs +8 -3
  144. package/lib/internal/_isTypeUint16.mjs.map +1 -1
  145. package/lib/internal/_isTypeUint32.mjs +8 -3
  146. package/lib/internal/_isTypeUint32.mjs.map +1 -1
  147. package/lib/internal/_isTypeUint64.mjs +8 -3
  148. package/lib/internal/_isTypeUint64.mjs.map +1 -1
  149. package/lib/internal/_isTypeUint8.mjs +8 -3
  150. package/lib/internal/_isTypeUint8.mjs.map +1 -1
  151. package/lib/internal/_isUniqueItems.mjs +67 -3
  152. package/lib/internal/_isUniqueItems.mjs.map +1 -1
  153. package/lib/internal/_jsonStringifyNumber.mjs +6 -3
  154. package/lib/internal/_jsonStringifyNumber.mjs.map +1 -1
  155. package/lib/internal/_jsonStringifyRest.mjs +8 -3
  156. package/lib/internal/_jsonStringifyRest.mjs.map +1 -1
  157. package/lib/internal/_jsonStringifyString.mjs +34 -3
  158. package/lib/internal/_jsonStringifyString.mjs.map +1 -1
  159. package/lib/internal/_jsonStringifyTail.mjs +6 -3
  160. package/lib/internal/_jsonStringifyTail.mjs.map +1 -1
  161. package/lib/internal/_llmApplicationFinalize.mjs +19 -3
  162. package/lib/internal/_llmApplicationFinalize.mjs.map +1 -1
  163. package/lib/internal/_notationAny.mjs +18 -3
  164. package/lib/internal/_notationAny.mjs.map +1 -1
  165. package/lib/internal/_notationCamel.mjs +11 -3
  166. package/lib/internal/_notationCamel.mjs.map +1 -1
  167. package/lib/internal/_notationPascal.mjs +11 -3
  168. package/lib/internal/_notationPascal.mjs.map +1 -1
  169. package/lib/internal/_notationSnake.mjs +32 -3
  170. package/lib/internal/_notationSnake.mjs.map +1 -1
  171. package/lib/internal/_parseLlmArguments.mjs +7 -3
  172. package/lib/internal/_parseLlmArguments.mjs.map +1 -1
  173. package/lib/internal/_plainCloneAny.mjs +35 -3
  174. package/lib/internal/_plainCloneAny.mjs.map +1 -1
  175. package/lib/internal/_randomArray.mjs +22 -3
  176. package/lib/internal/_randomArray.mjs.map +1 -1
  177. package/lib/internal/_randomBigint.mjs +7 -3
  178. package/lib/internal/_randomBigint.mjs.map +1 -1
  179. package/lib/internal/_randomBoolean.mjs +6 -3
  180. package/lib/internal/_randomBoolean.mjs.map +1 -1
  181. package/lib/internal/_randomFormatByte.mjs +7 -3
  182. package/lib/internal/_randomFormatByte.mjs.map +1 -1
  183. package/lib/internal/_randomFormatDate.mjs +11 -3
  184. package/lib/internal/_randomFormatDate.mjs.map +1 -1
  185. package/lib/internal/_randomFormatDatetime.mjs +11 -3
  186. package/lib/internal/_randomFormatDatetime.mjs.map +1 -1
  187. package/lib/internal/_randomFormatDuration.mjs +26 -3
  188. package/lib/internal/_randomFormatDuration.mjs.map +1 -1
  189. package/lib/internal/_randomFormatEmail.mjs +12 -3
  190. package/lib/internal/_randomFormatEmail.mjs.map +1 -1
  191. package/lib/internal/_randomFormatHostname.mjs +12 -3
  192. package/lib/internal/_randomFormatHostname.mjs.map +1 -1
  193. package/lib/internal/_randomFormatIdnEmail.mjs +7 -3
  194. package/lib/internal/_randomFormatIdnEmail.mjs.map +1 -1
  195. package/lib/internal/_randomFormatIdnHostname.mjs +7 -3
  196. package/lib/internal/_randomFormatIdnHostname.mjs.map +1 -1
  197. package/lib/internal/_randomFormatIpv4.mjs +12 -3
  198. package/lib/internal/_randomFormatIpv4.mjs.map +1 -1
  199. package/lib/internal/_randomFormatIpv6.mjs +12 -3
  200. package/lib/internal/_randomFormatIpv6.mjs.map +1 -1
  201. package/lib/internal/_randomFormatIri.mjs +7 -3
  202. package/lib/internal/_randomFormatIri.mjs.map +1 -1
  203. package/lib/internal/_randomFormatIriReference.mjs +7 -3
  204. package/lib/internal/_randomFormatIriReference.mjs.map +1 -1
  205. package/lib/internal/_randomFormatJsonPointer.mjs +12 -3
  206. package/lib/internal/_randomFormatJsonPointer.mjs.map +1 -1
  207. package/lib/internal/_randomFormatPassword.mjs +11 -3
  208. package/lib/internal/_randomFormatPassword.mjs.map +1 -1
  209. package/lib/internal/_randomFormatRegex.mjs +7 -3
  210. package/lib/internal/_randomFormatRegex.mjs.map +1 -1
  211. package/lib/internal/_randomFormatRelativeJsonPointer.mjs +11 -3
  212. package/lib/internal/_randomFormatRelativeJsonPointer.mjs.map +1 -1
  213. package/lib/internal/_randomFormatTime.mjs +12 -3
  214. package/lib/internal/_randomFormatTime.mjs.map +1 -1
  215. package/lib/internal/_randomFormatUri.mjs +7 -3
  216. package/lib/internal/_randomFormatUri.mjs.map +1 -1
  217. package/lib/internal/_randomFormatUriReference.mjs +7 -3
  218. package/lib/internal/_randomFormatUriReference.mjs.map +1 -1
  219. package/lib/internal/_randomFormatUriTemplate.mjs +7 -3
  220. package/lib/internal/_randomFormatUriTemplate.mjs.map +1 -1
  221. package/lib/internal/_randomFormatUrl.mjs +12 -3
  222. package/lib/internal/_randomFormatUrl.mjs.map +1 -1
  223. package/lib/internal/_randomFormatUuid.mjs +9 -3
  224. package/lib/internal/_randomFormatUuid.mjs.map +1 -1
  225. package/lib/internal/_randomInteger.mjs +31 -3
  226. package/lib/internal/_randomInteger.mjs.map +1 -1
  227. package/lib/internal/_randomNumber.mjs +45 -3
  228. package/lib/internal/_randomNumber.mjs.map +1 -1
  229. package/lib/internal/_randomPattern.mjs +14 -3
  230. package/lib/internal/_randomPattern.mjs.map +1 -1
  231. package/lib/internal/_randomPick.mjs +12 -3
  232. package/lib/internal/_randomPick.mjs.map +1 -1
  233. package/lib/internal/_randomString.mjs +23 -3
  234. package/lib/internal/_randomString.mjs.map +1 -1
  235. package/lib/internal/_throwTypeGuardError.mjs +9 -3
  236. package/lib/internal/_throwTypeGuardError.mjs.map +1 -1
  237. package/lib/internal/_validateReport.mjs +23 -3
  238. package/lib/internal/_validateReport.mjs.map +1 -1
  239. package/lib/internal/private/__notationCapitalize.mjs +6 -3
  240. package/lib/internal/private/__notationCapitalize.mjs.map +1 -1
  241. package/lib/internal/private/__notationUnsnake.mjs +15 -3
  242. package/lib/internal/private/__notationUnsnake.mjs.map +1 -1
  243. package/lib/json.mjs +94 -3
  244. package/lib/json.mjs.map +1 -1
  245. package/lib/llm.mjs +54 -3
  246. package/lib/llm.mjs.map +1 -1
  247. package/lib/module.mjs +131 -2
  248. package/lib/module.mjs.map +1 -1
  249. package/lib/notations.mjs +169 -3
  250. package/lib/notations.mjs.map +1 -1
  251. package/lib/plain.mjs +119 -3
  252. package/lib/plain.mjs.map +1 -1
  253. package/lib/protobuf.mjs +94 -3
  254. package/lib/protobuf.mjs.map +1 -1
  255. package/lib/re-exports.d.ts +2 -1
  256. package/lib/re-exports.js +5 -1
  257. package/lib/re-exports.js.map +1 -1
  258. package/lib/re-exports.mjs +2 -2
  259. package/lib/reflect.mjs +29 -3
  260. package/lib/reflect.mjs.map +1 -1
  261. package/lib/transform.mjs +15 -2
  262. package/lib/transform.mjs.map +1 -1
  263. package/lib/transformers/NoTransformConfigurationError.mjs +19 -3
  264. package/lib/transformers/NoTransformConfigurationError.mjs.map +1 -1
  265. package/native/adapter/adapter.go +29 -29
  266. package/native/adapter/adapter_options_branch_matrix_test.go +54 -54
  267. package/native/adapter/visit.go +173 -173
  268. package/native/adapter/visit_property_chain_edges_test.go +129 -129
  269. package/native/cmd/ttsc-typia/any_array_type_tags_transform_test.go +204 -204
  270. package/native/cmd/ttsc-typia/atomic_intersection_schema_transform_test.go +148 -148
  271. package/native/cmd/ttsc-typia/boolean_literal_discriminant_schema_transform_test.go +374 -374
  272. package/native/cmd/ttsc-typia/build.go +188 -188
  273. package/native/cmd/ttsc-typia/build_reports_semantic_diagnostics_test.go +34 -34
  274. package/native/cmd/ttsc-typia/build_reports_syntactic_diagnostics_test.go +34 -34
  275. package/native/cmd/ttsc-typia/command_routes_and_diagnostics_coverage_test.go +314 -314
  276. package/native/cmd/ttsc-typia/compare_equal_cover_transform_test.go +271 -271
  277. package/native/cmd/ttsc-typia/compare_less_transform_test.go +180 -180
  278. package/native/cmd/ttsc-typia/compare_method_delegation_transform_test.go +173 -173
  279. package/native/cmd/ttsc-typia/demo_rejects_bad_flag_test.go +25 -25
  280. package/native/cmd/ttsc-typia/diagnostics.go +51 -51
  281. package/native/cmd/ttsc-typia/dynamic_key_path_helper_alias_transform_test.go +159 -159
  282. package/native/cmd/ttsc-typia/exclude_type_tag_transform_test.go +176 -176
  283. package/native/cmd/ttsc-typia/inline_type_display_name_transform_test.go +290 -290
  284. package/native/cmd/ttsc-typia/instance_union_create_is_transform_test.go +248 -248
  285. package/native/cmd/ttsc-typia/intersection_all_never_union_transform_test.go +168 -168
  286. package/native/cmd/ttsc-typia/intersection_brand_transform_test.go +267 -267
  287. package/native/cmd/ttsc-typia/intersection_nonsensible_backstop_transform_test.go +157 -132
  288. package/native/cmd/ttsc-typia/intersection_union_validation_transform_test.go +590 -590
  289. package/native/cmd/ttsc-typia/json_is_stringify_scoped_checker_transform_test.go +206 -0
  290. package/native/cmd/ttsc-typia/json_stringify_constant_atomic_union_transform_test.go +171 -171
  291. package/native/cmd/ttsc-typia/main.go +97 -97
  292. package/native/cmd/ttsc-typia/main_wasm.go +226 -226
  293. package/native/cmd/ttsc-typia/non_trailing_rest_tuple_transform_test.go +156 -156
  294. package/native/cmd/ttsc-typia/notation_kebab_case_transform_test.go +186 -186
  295. package/native/cmd/ttsc-typia/nullable_primitive_property_is_transform_test.go +236 -236
  296. package/native/cmd/ttsc-typia/object_custom_tag_validation_transform_test.go +332 -332
  297. package/native/cmd/ttsc-typia/object_union_explicit_pointer_schema_transform_test.go +269 -269
  298. package/native/cmd/ttsc-typia/plain_classify_class_ref_transform_test.go +261 -261
  299. package/native/cmd/ttsc-typia/plain_classify_container_seed_transform_test.go +144 -144
  300. package/native/cmd/ttsc-typia/plain_classify_cross_module_extra_transform_test.go +211 -211
  301. package/native/cmd/ttsc-typia/plain_classify_deep_nested_transform_test.go +184 -184
  302. package/native/cmd/ttsc-typia/plain_classify_field_copy_transform_test.go +204 -204
  303. package/native/cmd/ttsc-typia/plain_classify_from_new_transform_test.go +465 -465
  304. package/native/cmd/ttsc-typia/plain_classify_strategy_edges_transform_test.go +519 -519
  305. package/native/cmd/ttsc-typia/plain_classify_union_transform_test.go +149 -149
  306. package/native/cmd/ttsc-typia/plain_classify_validated_union_transform_test.go +212 -212
  307. package/native/cmd/ttsc-typia/plain_clone_bigint_wrapper_transform_test.go +153 -153
  308. package/native/cmd/ttsc-typia/plugin_options_missing_config_test.go +26 -26
  309. package/native/cmd/ttsc-typia/plugin_options_undefined_false_test.go +36 -36
  310. package/native/cmd/ttsc-typia/project_catalog_transform_coverage_test.go +73 -73
  311. package/native/cmd/ttsc-typia/protobuf_object_generic_union_encode_transform_test.go +248 -248
  312. package/native/cmd/ttsc-typia/protobuf_sequence_field_numbers_transform_test.go +107 -107
  313. package/native/cmd/ttsc-typia/random_recursive_min_items_diagnostic_test.go +234 -234
  314. package/native/cmd/ttsc-typia/random_unsatisfiable_recursive_diagnostic_test.go +146 -146
  315. package/native/cmd/ttsc-typia/recursive_visit_tracking_transform_test.go +473 -473
  316. package/native/cmd/ttsc-typia/run_default_build_route_test.go +31 -31
  317. package/native/cmd/ttsc-typia/schema_dts_role_transform_test.go +404 -404
  318. package/native/cmd/ttsc-typia/shallow_depth_argument_error_transform_test.go +88 -88
  319. package/native/cmd/ttsc-typia/shallow_depth_limit_transform_test.go +278 -278
  320. package/native/cmd/ttsc-typia/shallow_depth_runtime_test.go +173 -173
  321. package/native/cmd/ttsc-typia/shallow_factory_depth_runtime_test.go +171 -171
  322. package/native/cmd/ttsc-typia/shallow_nested_depth_transform_test.go +148 -148
  323. package/native/cmd/ttsc-typia/template_interpolation_type_tags_transform_test.go +322 -322
  324. package/native/cmd/ttsc-typia/template_literal_type_tags_transform_test.go +162 -162
  325. package/native/cmd/ttsc-typia/transform.go +270 -270
  326. package/native/cmd/ttsc-typia/transform_declaration_source_produces_no_js_test.go +59 -59
  327. package/native/cmd/ttsc-typia/transform_diagnostics_preserve_details_test.go +203 -203
  328. package/native/cmd/ttsc-typia/transform_fixtures_emit_coverage_test.go +528 -528
  329. package/native/cmd/ttsc-typia/transform_helpers_test.go +155 -155
  330. package/native/core/context/EmitFactory.go +39 -39
  331. package/native/core/context/IProgrammerProps.go +14 -14
  332. package/native/core/context/ITransformOptions.go +9 -9
  333. package/native/core/context/ITypiaContext.go +36 -36
  334. package/native/core/context/ImportProgrammer.go +388 -354
  335. package/native/core/context/TransformerError.go +117 -117
  336. package/native/core/context/import_programmer_module_identifier_test.go +29 -0
  337. package/native/core/context/import_programmer_statement_coverage_test.go +71 -71
  338. package/native/core/context/index.go +1 -1
  339. package/native/core/context/transformer_error_formatting_test.go +100 -100
  340. package/native/core/factories/CommentFactory.go +27 -27
  341. package/native/core/factories/ExpressionFactory.go +357 -357
  342. package/native/core/factories/FormatCheatSheet.go +30 -30
  343. package/native/core/factories/IdentifierFactory.go +172 -172
  344. package/native/core/factories/JsonMetadataFactory.go +154 -154
  345. package/native/core/factories/LiteralFactory.go +319 -282
  346. package/native/core/factories/MetadataCommentTagFactory.go +446 -446
  347. package/native/core/factories/MetadataFactory.go +543 -543
  348. package/native/core/factories/MetadataTypeTagFactory.go +560 -560
  349. package/native/core/factories/MetadataTypeTagSchemaFactory.go +117 -117
  350. package/native/core/factories/NumericRangeFactory.go +132 -132
  351. package/native/core/factories/ProtobufFactory.go +1090 -1090
  352. package/native/core/factories/StatementFactory.go +114 -114
  353. package/native/core/factories/TemplateFactory.go +82 -82
  354. package/native/core/factories/TypeFactory.go +176 -176
  355. package/native/core/factories/ValueFactory.go +43 -43
  356. package/native/core/factories/factory_utility_coverage_test.go +1006 -1006
  357. package/native/core/factories/index.go +1 -1
  358. package/native/core/factories/internal/metadata/IMetadataIteratorProps.go +70 -70
  359. package/native/core/factories/internal/metadata/MetadataHelper.go +425 -425
  360. package/native/core/factories/internal/metadata/comment_tags_coverage_test.go +184 -184
  361. package/native/core/factories/internal/metadata/emend_metadata_atomics.go +80 -80
  362. package/native/core/factories/internal/metadata/emplace_metadata_alias.go +41 -41
  363. package/native/core/factories/internal/metadata/emplace_metadata_array_type.go +44 -44
  364. package/native/core/factories/internal/metadata/emplace_metadata_object.go +599 -599
  365. package/native/core/factories/internal/metadata/emplace_metadata_tuple.go +69 -69
  366. package/native/core/factories/internal/metadata/explore_metadata.go +75 -75
  367. package/native/core/factories/internal/metadata/iterate_metadata.go +55 -55
  368. package/native/core/factories/internal/metadata/iterate_metadata_alias.go +36 -36
  369. package/native/core/factories/internal/metadata/iterate_metadata_array.go +77 -77
  370. package/native/core/factories/internal/metadata/iterate_metadata_atomic.go +63 -63
  371. package/native/core/factories/internal/metadata/iterate_metadata_coalesce.go +30 -30
  372. package/native/core/factories/internal/metadata/iterate_metadata_collection.go +366 -366
  373. package/native/core/factories/internal/metadata/iterate_metadata_collection_branch_matrix_test.go +201 -201
  374. package/native/core/factories/internal/metadata/iterate_metadata_comment_tags.go +34 -34
  375. package/native/core/factories/internal/metadata/iterate_metadata_constant.go +139 -139
  376. package/native/core/factories/internal/metadata/iterate_metadata_escape.go +56 -56
  377. package/native/core/factories/internal/metadata/iterate_metadata_function.go +93 -93
  378. package/native/core/factories/internal/metadata/iterate_metadata_intersection.go +1054 -1054
  379. package/native/core/factories/internal/metadata/iterate_metadata_intersection_brand_coverage_test.go +114 -114
  380. package/native/core/factories/internal/metadata/iterate_metadata_intersection_coverage_test.go +106 -106
  381. package/native/core/factories/internal/metadata/iterate_metadata_intersection_shareable_name_test.go +22 -22
  382. package/native/core/factories/internal/metadata/iterate_metadata_map.go +55 -55
  383. package/native/core/factories/internal/metadata/iterate_metadata_native.go +122 -122
  384. package/native/core/factories/internal/metadata/iterate_metadata_object.go +35 -35
  385. package/native/core/factories/internal/metadata/iterate_metadata_set.go +41 -41
  386. package/native/core/factories/internal/metadata/iterate_metadata_sort.go +202 -202
  387. package/native/core/factories/internal/metadata/iterate_metadata_template.go +41 -41
  388. package/native/core/factories/internal/metadata/iterate_metadata_tuple.go +24 -24
  389. package/native/core/factories/internal/metadata/iterate_metadata_union.go +40 -40
  390. package/native/core/factories/internal/metadata/js_doc_parameter_name_reads_qualified_name_test.go +55 -55
  391. package/native/core/factories/internal/metadata/optional_coalesce_coverage_test.go +38 -38
  392. package/native/core/factories/internal/metadata/sort_constants_coverage_test.go +63 -63
  393. package/native/core/factories/json_metadata_factory_dedupes_bigint_diagnostics_test.go +36 -36
  394. package/native/core/factories/json_metadata_factory_rejects_bigint_native_test.go +29 -29
  395. package/native/core/factories/literal_factory_ordered_object_marshals_json_test.go +40 -0
  396. package/native/core/factories/metadata_comment_tag_factory_coverage_test.go +239 -239
  397. package/native/core/factories/protobuf_factory_rejects_invalid_field_names_test.go +75 -75
  398. package/native/core/index.go +1 -1
  399. package/native/core/programmers/AssertProgrammer.go +511 -511
  400. package/native/core/programmers/IsProgrammer.go +418 -419
  401. package/native/core/programmers/RandomProgrammer.go +1448 -1448
  402. package/native/core/programmers/ValidateProgrammer.go +488 -488
  403. package/native/core/programmers/compare/CompareEqualProgrammer.go +668 -668
  404. package/native/core/programmers/compare/CompareLessProgrammer.go +489 -489
  405. package/native/core/programmers/functional/FunctionalAssertFunctionProgrammer.go +172 -172
  406. package/native/core/programmers/functional/FunctionalAssertParametersProgrammer.go +135 -135
  407. package/native/core/programmers/functional/FunctionalAssertReturnProgrammer.go +131 -131
  408. package/native/core/programmers/functional/FunctionalIsFunctionProgrammer.go +106 -106
  409. package/native/core/programmers/functional/FunctionalIsParametersProgrammer.go +222 -222
  410. package/native/core/programmers/functional/FunctionalIsReturnProgrammer.go +129 -129
  411. package/native/core/programmers/functional/FunctionalValidateFunctionProgrammer.go +172 -172
  412. package/native/core/programmers/functional/FunctionalValidateParametersProgrammer.go +252 -252
  413. package/native/core/programmers/functional/FunctionalValidateReturnProgrammer.go +147 -147
  414. package/native/core/programmers/functional/functional_assert_helper_coverage_test.go +26 -26
  415. package/native/core/programmers/functional/index.go +1 -1
  416. package/native/core/programmers/functional/internal/FunctionalGeneralProgrammer.go +53 -53
  417. package/native/core/programmers/helpers/AtomicPredicator.go +75 -75
  418. package/native/core/programmers/helpers/ClassifyJoiner.go +174 -174
  419. package/native/core/programmers/helpers/CloneJoiner.go +307 -307
  420. package/native/core/programmers/helpers/FunctionProgrammer.go +218 -218
  421. package/native/core/programmers/helpers/HttpMetadataUtil.go +30 -30
  422. package/native/core/programmers/helpers/ICheckEntry.go +14 -14
  423. package/native/core/programmers/helpers/IExpressionEntry.go +15 -15
  424. package/native/core/programmers/helpers/ModuloText.go +26 -26
  425. package/native/core/programmers/helpers/NotationJoiner.go +204 -204
  426. package/native/core/programmers/helpers/OptionPredicator.go +39 -39
  427. package/native/core/programmers/helpers/ProtobufUtil.go +273 -273
  428. package/native/core/programmers/helpers/ProtobufWire.go +14 -14
  429. package/native/core/programmers/helpers/PruneJoiner.go +290 -290
  430. package/native/core/programmers/helpers/RandomJoiner.go +805 -805
  431. package/native/core/programmers/helpers/StringifyJoinder.go +409 -409
  432. package/native/core/programmers/helpers/StringifyPredicator.go +25 -25
  433. package/native/core/programmers/helpers/UnionExplorer.go +966 -966
  434. package/native/core/programmers/helpers/UnionPredicator.go +92 -92
  435. package/native/core/programmers/helpers/clone_joiner_optional_condition_test.go +70 -70
  436. package/native/core/programmers/helpers/disable_function_programmer_declare.go +10 -10
  437. package/native/core/programmers/helpers/function_programmer_unique_names_test.go +54 -54
  438. package/native/core/programmers/helpers/joiner_branch_coverage_test.go +147 -147
  439. package/native/core/programmers/helpers/random_joiner_recursive_array_guard_test.go +166 -166
  440. package/native/core/programmers/helpers/union_explorer_coverage_test.go +135 -135
  441. package/native/core/programmers/helpers/union_predicator_checks_neighbor_flag_test.go +34 -34
  442. package/native/core/programmers/helpers/union_predicator_skips_atomic_like_native_fields_test.go +65 -65
  443. package/native/core/programmers/helpers/union_predicator_skips_collection_bucket_fields_test.go +72 -72
  444. package/native/core/programmers/helpers/union_predicator_skips_shared_native_names_test.go +239 -239
  445. package/native/core/programmers/helpers/union_predicator_skips_shared_object_fields_test.go +43 -43
  446. package/native/core/programmers/helpers/union_predicator_skips_shared_template_fields_test.go +57 -57
  447. package/native/core/programmers/http/HttpAssertFormDataProgrammer.go +116 -116
  448. package/native/core/programmers/http/HttpAssertHeadersProgrammer.go +59 -59
  449. package/native/core/programmers/http/HttpAssertQueryProgrammer.go +71 -71
  450. package/native/core/programmers/http/HttpFormDataProgrammer.go +416 -416
  451. package/native/core/programmers/http/HttpHeadersProgrammer.go +428 -428
  452. package/native/core/programmers/http/HttpIsFormDataProgrammer.go +142 -142
  453. package/native/core/programmers/http/HttpIsHeadersProgrammer.go +53 -53
  454. package/native/core/programmers/http/HttpIsQueryProgrammer.go +65 -65
  455. package/native/core/programmers/http/HttpParameterProgrammer.go +190 -190
  456. package/native/core/programmers/http/HttpQueryProgrammer.go +484 -484
  457. package/native/core/programmers/http/HttpValidateFormDataProgrammer.go +110 -110
  458. package/native/core/programmers/http/HttpValidateHeadersProgrammer.go +56 -56
  459. package/native/core/programmers/http/HttpValidateQueryProgrammer.go +68 -68
  460. package/native/core/programmers/http/http_programmer_helper_coverage_test.go +120 -120
  461. package/native/core/programmers/http/index.go +1 -1
  462. package/native/core/programmers/index.go +1 -1
  463. package/native/core/programmers/internal/CheckerProgrammer.go +2064 -2064
  464. package/native/core/programmers/internal/FeatureProgrammer.go +1361 -1361
  465. package/native/core/programmers/internal/feature_programmer_visit_guard_test.go +70 -70
  466. package/native/core/programmers/internal/internal_utility_coverage_test.go +384 -384
  467. package/native/core/programmers/iterate/check_array_length.go +64 -64
  468. package/native/core/programmers/iterate/check_bigint.go +78 -78
  469. package/native/core/programmers/iterate/check_dynamic_key.go +271 -271
  470. package/native/core/programmers/iterate/check_dynamic_key_tag_rows_test.go +46 -46
  471. package/native/core/programmers/iterate/check_dynamic_properties.go +292 -292
  472. package/native/core/programmers/iterate/check_everything.go +33 -33
  473. package/native/core/programmers/iterate/check_exclude.go +88 -88
  474. package/native/core/programmers/iterate/check_native.go +38 -38
  475. package/native/core/programmers/iterate/check_number.go +180 -180
  476. package/native/core/programmers/iterate/check_object.go +113 -113
  477. package/native/core/programmers/iterate/check_object_strict_optional_undefined_test.go +74 -74
  478. package/native/core/programmers/iterate/check_object_type_tags.go +64 -64
  479. package/native/core/programmers/iterate/check_string.go +78 -78
  480. package/native/core/programmers/iterate/check_template.go +346 -346
  481. package/native/core/programmers/iterate/check_union_array_like.go +422 -422
  482. package/native/core/programmers/iterate/decode_union_object.go +157 -157
  483. package/native/core/programmers/iterate/feature_object_entries.go +188 -188
  484. package/native/core/programmers/iterate/iterate_check_coverage_test.go +178 -178
  485. package/native/core/programmers/iterate/iterate_utility_coverage_test.go +302 -302
  486. package/native/core/programmers/iterate/json_schema_alias.go +62 -62
  487. package/native/core/programmers/iterate/json_schema_array.go +66 -66
  488. package/native/core/programmers/iterate/json_schema_bigint.go +17 -17
  489. package/native/core/programmers/iterate/json_schema_boolean.go +17 -17
  490. package/native/core/programmers/iterate/json_schema_constant.go +53 -53
  491. package/native/core/programmers/iterate/json_schema_description.go +21 -21
  492. package/native/core/programmers/iterate/json_schema_discriminator.go +57 -57
  493. package/native/core/programmers/iterate/json_schema_escaped.go +68 -68
  494. package/native/core/programmers/iterate/json_schema_jsDocTags.go +48 -48
  495. package/native/core/programmers/iterate/json_schema_native.go +106 -106
  496. package/native/core/programmers/iterate/json_schema_number.go +17 -17
  497. package/native/core/programmers/iterate/json_schema_object.go +187 -184
  498. package/native/core/programmers/iterate/json_schema_plugin.go +47 -47
  499. package/native/core/programmers/iterate/json_schema_station.go +251 -251
  500. package/native/core/programmers/iterate/json_schema_string.go +17 -17
  501. package/native/core/programmers/iterate/json_schema_template.go +63 -63
  502. package/native/core/programmers/iterate/json_schema_title.go +25 -25
  503. package/native/core/programmers/iterate/json_schema_tuple.go +41 -41
  504. package/native/core/programmers/iterate/metadata_to_pattern.go +64 -64
  505. package/native/core/programmers/iterate/postfix_of_tuple.go +12 -12
  506. package/native/core/programmers/iterate/prune_object_properties.go +105 -105
  507. package/native/core/programmers/iterate/stringify_dynamic_properties.go +219 -219
  508. package/native/core/programmers/iterate/stringify_native.go +14 -14
  509. package/native/core/programmers/iterate/stringify_regular_properties.go +112 -112
  510. package/native/core/programmers/iterate/template_interpolation_tags_test.go +495 -495
  511. package/native/core/programmers/iterate/template_runtime_pattern.go +262 -262
  512. package/native/core/programmers/iterate/template_to_pattern.go +29 -29
  513. package/native/core/programmers/iterate/wrap_metadata_rest_tuple.go +23 -23
  514. package/native/core/programmers/json/JsonApplicationProgrammer.go +380 -380
  515. package/native/core/programmers/json/JsonAssertParseProgrammer.go +115 -115
  516. package/native/core/programmers/json/JsonAssertStringifyProgrammer.go +108 -108
  517. package/native/core/programmers/json/JsonIsParseProgrammer.go +162 -162
  518. package/native/core/programmers/json/JsonIsStringifyProgrammer.go +113 -113
  519. package/native/core/programmers/json/JsonSchemaProgrammer.go +94 -94
  520. package/native/core/programmers/json/JsonSchemasProgrammer.go +142 -142
  521. package/native/core/programmers/json/JsonStringifyProgrammer.go +1528 -1508
  522. package/native/core/programmers/json/JsonValidateParseProgrammer.go +105 -105
  523. package/native/core/programmers/json/JsonValidateStringifyProgrammer.go +126 -126
  524. package/native/core/programmers/json/index.go +1 -1
  525. package/native/core/programmers/json/json_schema_programmer_coverage_test.go +198 -198
  526. package/native/core/programmers/json/json_schemas_programmer_dedupes_bigint_diagnostics_test.go +37 -37
  527. package/native/core/programmers/json/json_schemas_programmer_rejects_bigint_native_test.go +29 -29
  528. package/native/core/programmers/json/json_stringify_programmer_coverage_test.go +422 -422
  529. package/native/core/programmers/llm/LlmApplicationProgrammer.go +526 -526
  530. package/native/core/programmers/llm/LlmCoerceProgrammer.go +109 -109
  531. package/native/core/programmers/llm/LlmControllerProgrammer.go +51 -51
  532. package/native/core/programmers/llm/LlmMetadataFactory.go +89 -89
  533. package/native/core/programmers/llm/LlmParametersProgrammer.go +141 -141
  534. package/native/core/programmers/llm/LlmParseProgrammer.go +121 -121
  535. package/native/core/programmers/llm/LlmSchemaProgrammer.go +902 -846
  536. package/native/core/programmers/llm/LlmStructuredOutputProgrammer.go +147 -147
  537. package/native/core/programmers/llm/index.go +1 -1
  538. package/native/core/programmers/llm/llm_application_programmer_coverage_test.go +166 -166
  539. package/native/core/programmers/llm/llm_schema_programmer_coverage_test.go +282 -282
  540. package/native/core/programmers/llm/llm_schema_programmer_dedupes_bigint_diagnostics_test.go +38 -38
  541. package/native/core/programmers/llm/llm_schema_programmer_rejects_bigint_native_test.go +30 -30
  542. package/native/core/programmers/llm/llm_schema_programmer_rejects_exclude_tag_in_strict_test.go +52 -52
  543. package/native/core/programmers/notations/NotationAssertGeneralProgrammer.go +107 -107
  544. package/native/core/programmers/notations/NotationGeneralProgrammer.go +1441 -1441
  545. package/native/core/programmers/notations/NotationIsGeneralProgrammer.go +112 -112
  546. package/native/core/programmers/notations/NotationValidateGeneralProgrammer.go +131 -131
  547. package/native/core/programmers/notations/index.go +1 -1
  548. package/native/core/programmers/notations/notation_general_helpers_test.go +395 -395
  549. package/native/core/programmers/notations/notation_general_programmer_snake_prefix_test.go +44 -44
  550. package/native/core/programmers/plain/PlainAssertClassifyProgrammer.go +111 -111
  551. package/native/core/programmers/plain/PlainAssertCloneProgrammer.go +102 -102
  552. package/native/core/programmers/plain/PlainAssertPruneProgrammer.go +117 -117
  553. package/native/core/programmers/plain/PlainClassifyProgrammer.go +2205 -2205
  554. package/native/core/programmers/plain/PlainCloneProgrammer.go +1254 -1254
  555. package/native/core/programmers/plain/PlainIsCloneProgrammer.go +117 -117
  556. package/native/core/programmers/plain/PlainIsPruneProgrammer.go +106 -106
  557. package/native/core/programmers/plain/PlainPruneProgrammer.go +837 -837
  558. package/native/core/programmers/plain/PlainValidateClassifyProgrammer.go +127 -127
  559. package/native/core/programmers/plain/PlainValidateCloneProgrammer.go +123 -123
  560. package/native/core/programmers/plain/PlainValidatePruneProgrammer.go +114 -114
  561. package/native/core/programmers/plain/index.go +1 -1
  562. package/native/core/programmers/plain/plain_programmer_helper_coverage_test.go +284 -284
  563. package/native/core/programmers/plain/plain_prune_programmer_branch_matrix_test.go +145 -145
  564. package/native/core/programmers/programmer_direct_helper_coverage_test.go +70 -70
  565. package/native/core/programmers/protobuf/ProtobufAssertDecodeProgrammer.go +125 -125
  566. package/native/core/programmers/protobuf/ProtobufAssertEncodeProgrammer.go +143 -143
  567. package/native/core/programmers/protobuf/ProtobufDecodeProgrammer.go +861 -861
  568. package/native/core/programmers/protobuf/ProtobufEncodeProgrammer.go +1269 -1269
  569. package/native/core/programmers/protobuf/ProtobufIsDecodeProgrammer.go +122 -122
  570. package/native/core/programmers/protobuf/ProtobufIsEncodeProgrammer.go +115 -115
  571. package/native/core/programmers/protobuf/ProtobufMessageProgrammer.go +269 -269
  572. package/native/core/programmers/protobuf/ProtobufValidateDecodeProgrammer.go +111 -111
  573. package/native/core/programmers/protobuf/ProtobufValidateEncodeProgrammer.go +145 -145
  574. package/native/core/programmers/protobuf/index.go +1 -1
  575. package/native/core/programmers/protobuf/protobuf_programmer_helper_coverage_test.go +454 -454
  576. package/native/core/programmers/random_programmer_helper_coverage_test.go +367 -367
  577. package/native/core/programmers/random_programmer_min_items_tag_test.go +44 -44
  578. package/native/core/programmers/reflect/ReflectLiteralsProgrammer.go +125 -125
  579. package/native/core/schemas/index.go +1 -1
  580. package/native/core/schemas/metadata/IMetadataDictionary.go +8 -8
  581. package/native/core/schemas/metadata/IMetadataTypeTagSequence.go +53 -53
  582. package/native/core/schemas/metadata/MetadataAlias.go +36 -36
  583. package/native/core/schemas/metadata/MetadataAliasType.go +64 -64
  584. package/native/core/schemas/metadata/MetadataApplication.go +41 -41
  585. package/native/core/schemas/metadata/MetadataArray.go +36 -36
  586. package/native/core/schemas/metadata/MetadataArrayType.go +59 -59
  587. package/native/core/schemas/metadata/MetadataAtomic.go +69 -69
  588. package/native/core/schemas/metadata/MetadataCollection.go +698 -698
  589. package/native/core/schemas/metadata/MetadataComponents.go +122 -122
  590. package/native/core/schemas/metadata/MetadataConstant.go +47 -47
  591. package/native/core/schemas/metadata/MetadataConstantValue.go +97 -97
  592. package/native/core/schemas/metadata/MetadataEscaped.go +40 -40
  593. package/native/core/schemas/metadata/MetadataFunction.go +46 -46
  594. package/native/core/schemas/metadata/MetadataMap.go +45 -45
  595. package/native/core/schemas/metadata/MetadataNative.go +72 -72
  596. package/native/core/schemas/metadata/MetadataObject.go +36 -36
  597. package/native/core/schemas/metadata/MetadataObjectType.go +223 -223
  598. package/native/core/schemas/metadata/MetadataParameter.go +46 -46
  599. package/native/core/schemas/metadata/MetadataProperty.go +50 -50
  600. package/native/core/schemas/metadata/MetadataSchema.go +1485 -1485
  601. package/native/core/schemas/metadata/MetadataSet.go +41 -41
  602. package/native/core/schemas/metadata/MetadataTemplate.go +70 -70
  603. package/native/core/schemas/metadata/MetadataTuple.go +20 -20
  604. package/native/core/schemas/metadata/MetadataTupleType.go +69 -69
  605. package/native/core/schemas/metadata/index.go +1 -1
  606. package/native/core/schemas/metadata/metadata_object_type_required_literal_property_test.go +51 -51
  607. package/native/core/schemas/metadata/metadata_schema_covers_tag_matrix_test.go +125 -125
  608. package/native/core/schemas/metadata/metadata_schema_sole_literal_caches_pointer_test.go +38 -38
  609. package/native/core/schemas/metadata/schema_sequence_and_json_coverage_test.go +427 -427
  610. package/native/core/schemas/protobuf/IProtobufProperty.go +6 -6
  611. package/native/core/schemas/protobuf/IProtobufPropertyType.go +55 -55
  612. package/native/core/schemas/protobuf/IProtobufSchema.go +54 -54
  613. package/native/core/schemas/protobuf/index.go +1 -1
  614. package/native/core/schemas/protobuf/protobuf_marker_coverage_test.go +58 -58
  615. package/native/core/typings/Writable.go +5 -5
  616. package/native/core/utils/PatternUtil.go +57 -57
  617. package/native/core/utils/ProtobufNameEncoder.go +47 -47
  618. package/native/go.mod +31 -31
  619. package/native/go.sum +22 -22
  620. package/native/go.work +22 -22
  621. package/native/transform/CallExpressionTransformer.go +719 -719
  622. package/native/transform/FileTransformer.go +221 -221
  623. package/native/transform/ITransformProps.go +5 -5
  624. package/native/transform/ImportTransformer.go +285 -285
  625. package/native/transform/NodeTransformer.go +25 -25
  626. package/native/transform/TransformerError.go +11 -11
  627. package/native/transform/TypiaGenerator.go +171 -171
  628. package/native/transform/call_expression_transformer_registry_coverage_test.go +53 -53
  629. package/native/transform/call_expression_transformer_target_test.go +46 -46
  630. package/native/transform/features/AssertTransformer.go +39 -39
  631. package/native/transform/features/CreateAssertTransformer.go +39 -39
  632. package/native/transform/features/CreateIsTransformer.go +35 -35
  633. package/native/transform/features/CreateRandomTransformer.go +47 -47
  634. package/native/transform/features/CreateShallowTransformer.go +33 -33
  635. package/native/transform/features/CreateValidateTransformer.go +35 -35
  636. package/native/transform/features/IsTransformer.go +35 -35
  637. package/native/transform/features/RandomTransformer.go +54 -54
  638. package/native/transform/features/ShallowTransformer.go +65 -65
  639. package/native/transform/features/ValidateTransformer.go +35 -35
  640. package/native/transform/features/compare/CompareCoverTransformer.go +14 -14
  641. package/native/transform/features/compare/CompareCreateCoverTransformer.go +14 -14
  642. package/native/transform/features/compare/CompareCreateEqualTransformer.go +14 -14
  643. package/native/transform/features/compare/CompareCreateLessTransformer.go +14 -14
  644. package/native/transform/features/compare/CompareEqualTransformer.go +73 -73
  645. package/native/transform/features/compare/CompareLessTransformer.go +71 -71
  646. package/native/transform/features/feature_transformer_entry_coverage_test.go +59 -59
  647. package/native/transform/features/functional/FunctionalGenericTransformer.go +70 -70
  648. package/native/transform/features/http/CreateHttpAssertFormDataTransformer.go +22 -22
  649. package/native/transform/features/http/CreateHttpAssertHeadersTransformer.go +22 -22
  650. package/native/transform/features/http/CreateHttpAssertQueryTransformer.go +28 -28
  651. package/native/transform/features/http/CreateHttpFormDataTransformer.go +22 -22
  652. package/native/transform/features/http/CreateHttpHeadersTransformer.go +22 -22
  653. package/native/transform/features/http/CreateHttpIsFormDataTransformer.go +22 -22
  654. package/native/transform/features/http/CreateHttpIsHeadersTransformer.go +22 -22
  655. package/native/transform/features/http/CreateHttpIsQueryTransformer.go +28 -28
  656. package/native/transform/features/http/CreateHttpParameterTransformer.go +22 -22
  657. package/native/transform/features/http/CreateHttpQueryTransformer.go +28 -28
  658. package/native/transform/features/http/CreateHttpValidateFormDataTransformer.go +22 -22
  659. package/native/transform/features/http/CreateHttpValidateHeadersTransformer.go +22 -22
  660. package/native/transform/features/http/CreateHttpValidateQueryTransformer.go +28 -28
  661. package/native/transform/features/http/HttpAssertFormDataTransformer.go +22 -22
  662. package/native/transform/features/http/HttpAssertHeadersTransformer.go +22 -22
  663. package/native/transform/features/http/HttpAssertQueryTransformer.go +28 -28
  664. package/native/transform/features/http/HttpFormDataTransformer.go +22 -22
  665. package/native/transform/features/http/HttpHeadersTransformer.go +22 -22
  666. package/native/transform/features/http/HttpIsFormDataTransformer.go +22 -22
  667. package/native/transform/features/http/HttpIsHeadersTransformer.go +22 -22
  668. package/native/transform/features/http/HttpIsQueryTransformer.go +28 -28
  669. package/native/transform/features/http/HttpParameterTransformer.go +22 -22
  670. package/native/transform/features/http/HttpQueryTransformer.go +28 -28
  671. package/native/transform/features/http/HttpValidateFormDataTransformer.go +22 -22
  672. package/native/transform/features/http/HttpValidateHeadersTransformer.go +22 -22
  673. package/native/transform/features/http/HttpValidateQueryTransformer.go +28 -28
  674. package/native/transform/features/http/http_transformer_entry_coverage_test.go +65 -65
  675. package/native/transform/features/json/JsonApplicationTransformer.go +75 -75
  676. package/native/transform/features/json/JsonAssertParseTransformer.go +22 -22
  677. package/native/transform/features/json/JsonAssertStringifyTransformer.go +22 -22
  678. package/native/transform/features/json/JsonCreateAssertParseTransformer.go +22 -22
  679. package/native/transform/features/json/JsonCreateAssertStringifyTransformer.go +22 -22
  680. package/native/transform/features/json/JsonCreateIsParseTransformer.go +22 -22
  681. package/native/transform/features/json/JsonCreateIsStringifyTransformer.go +22 -22
  682. package/native/transform/features/json/JsonCreateStringifyTransformer.go +22 -22
  683. package/native/transform/features/json/JsonCreateValidateParseTransformer.go +22 -22
  684. package/native/transform/features/json/JsonCreateValidateStringifyProgrammer.go +22 -22
  685. package/native/transform/features/json/JsonIsParseTransformer.go +22 -22
  686. package/native/transform/features/json/JsonIsStringifyTransformer.go +22 -22
  687. package/native/transform/features/json/JsonSchemaTransformer.go +175 -175
  688. package/native/transform/features/json/JsonSchemasTransformer.go +109 -109
  689. package/native/transform/features/json/JsonStringifyTransformer.go +22 -22
  690. package/native/transform/features/json/JsonValidateParseTransformer.go +22 -22
  691. package/native/transform/features/json/JsonValidateStringifyTransformer.go +22 -22
  692. package/native/transform/features/json/json_transformer_entry_coverage_test.go +56 -56
  693. package/native/transform/features/llm/LlmApplicationTransformer.go +54 -54
  694. package/native/transform/features/llm/LlmCoerceTransformer.go +63 -63
  695. package/native/transform/features/llm/LlmControllerTransformer.go +59 -59
  696. package/native/transform/features/llm/LlmCreateCoerceTransformer.go +54 -54
  697. package/native/transform/features/llm/LlmCreateParseTransformer.go +54 -54
  698. package/native/transform/features/llm/LlmParametersTransformer.go +49 -49
  699. package/native/transform/features/llm/LlmParseTransformer.go +63 -63
  700. package/native/transform/features/llm/LlmSchemaTransformer.go +167 -167
  701. package/native/transform/features/llm/LlmStructuredOutputTransformer.go +55 -55
  702. package/native/transform/features/llm/llm_transformer_entry_coverage_test.go +48 -48
  703. package/native/transform/features/notations/NotationAssertGeneralTransformer.go +27 -27
  704. package/native/transform/features/notations/NotationCreateAssertGeneralTransformer.go +27 -27
  705. package/native/transform/features/notations/NotationCreateGeneralTransformer.go +27 -27
  706. package/native/transform/features/notations/NotationCreateIsGeneralTransformer.go +27 -27
  707. package/native/transform/features/notations/NotationCreateValidateGeneralTransformer.go +27 -27
  708. package/native/transform/features/notations/NotationGeneralTransformer.go +36 -36
  709. package/native/transform/features/notations/NotationIsGeneralTransformer.go +27 -27
  710. package/native/transform/features/notations/NotationValidateGeneralTransformer.go +27 -27
  711. package/native/transform/features/notations/notation_transformer_entry_coverage_test.go +58 -58
  712. package/native/transform/features/plain/PlainAssertClassifyTransformer.go +22 -22
  713. package/native/transform/features/plain/PlainAssertCloneTransformer.go +22 -22
  714. package/native/transform/features/plain/PlainAssertPruneTransformer.go +22 -22
  715. package/native/transform/features/plain/PlainClassifyTransformer.go +22 -22
  716. package/native/transform/features/plain/PlainCloneTransformer.go +22 -22
  717. package/native/transform/features/plain/PlainCreateAssertClassifyTransformer.go +22 -22
  718. package/native/transform/features/plain/PlainCreateAssertCloneTransformer.go +22 -22
  719. package/native/transform/features/plain/PlainCreateAssertPruneTransformer.go +22 -22
  720. package/native/transform/features/plain/PlainCreateClassifyTransformer.go +22 -22
  721. package/native/transform/features/plain/PlainCreateCloneTransformer.go +22 -22
  722. package/native/transform/features/plain/PlainCreateIsCloneTransformer.go +22 -22
  723. package/native/transform/features/plain/PlainCreateIsPruneTransformer.go +22 -22
  724. package/native/transform/features/plain/PlainCreatePruneTransformer.go +22 -22
  725. package/native/transform/features/plain/PlainCreateValidateClassifyTransformer.go +22 -22
  726. package/native/transform/features/plain/PlainCreateValidateCloneTransformer.go +22 -22
  727. package/native/transform/features/plain/PlainCreateValidatePruneTransformer.go +22 -22
  728. package/native/transform/features/plain/PlainIsCloneTransformer.go +22 -22
  729. package/native/transform/features/plain/PlainIsPruneTransformer.go +22 -22
  730. package/native/transform/features/plain/PlainPruneTransformer.go +22 -22
  731. package/native/transform/features/plain/PlainValidateClassifyTransformer.go +22 -22
  732. package/native/transform/features/plain/PlainValidateCloneTransformer.go +22 -22
  733. package/native/transform/features/plain/PlainValidatePruneTransformer.go +22 -22
  734. package/native/transform/features/plain/plain_transformer_entry_coverage_test.go +61 -61
  735. package/native/transform/features/protobuf/ProtobufAssertDecodeTransformer.go +22 -22
  736. package/native/transform/features/protobuf/ProtobufAssertEncodeTransformer.go +22 -22
  737. package/native/transform/features/protobuf/ProtobufCreateAssertDecodeTransformer.go +22 -22
  738. package/native/transform/features/protobuf/ProtobufCreateAssertEncodeTransformer.go +22 -22
  739. package/native/transform/features/protobuf/ProtobufCreateDecodeTransformer.go +22 -22
  740. package/native/transform/features/protobuf/ProtobufCreateEncodeTransformer.go +22 -22
  741. package/native/transform/features/protobuf/ProtobufCreateIsDecodeTransformer.go +22 -22
  742. package/native/transform/features/protobuf/ProtobufCreateIsEncodeTransformer.go +22 -22
  743. package/native/transform/features/protobuf/ProtobufCreateValidateDecodeTransformer.go +22 -22
  744. package/native/transform/features/protobuf/ProtobufCreateValidateEncodeTransformer.go +22 -22
  745. package/native/transform/features/protobuf/ProtobufDecodeTransformer.go +22 -22
  746. package/native/transform/features/protobuf/ProtobufEncodeTransformer.go +22 -22
  747. package/native/transform/features/protobuf/ProtobufIsDecodeTransformer.go +22 -22
  748. package/native/transform/features/protobuf/ProtobufIsEncodeTransformer.go +22 -22
  749. package/native/transform/features/protobuf/ProtobufMessageTransformer.go +31 -31
  750. package/native/transform/features/protobuf/ProtobufValidateDecodeTransformer.go +22 -22
  751. package/native/transform/features/protobuf/ProtobufValidateEncodeTransformer.go +22 -22
  752. package/native/transform/features/protobuf/protobuf_transformer_entry_coverage_test.go +56 -56
  753. package/native/transform/features/reflect/ReflectLiteralsTransformer.go +32 -32
  754. package/native/transform/features/reflect/ReflectMetadataTransformer.go +73 -73
  755. package/native/transform/features/reflect/ReflectNameTransformer.go +100 -100
  756. package/native/transform/features/reflect/ReflectSchemaTransformer.go +153 -153
  757. package/native/transform/features/reflect/ReflectSchemasTransformer.go +68 -68
  758. package/native/transform/features/reflect/reflect_metadata_transformer_edge_branches_test.go +55 -55
  759. package/native/transform/features/reflect/reflect_transformer_entry_coverage_test.go +47 -47
  760. package/native/transform/file_transformer_coverage_test.go +94 -94
  761. package/native/transform/import_transformer_coverage_test.go +153 -153
  762. package/native/transform/index.go +1 -1
  763. package/native/transform/internal/GenericTransformer.go +236 -236
  764. package/native/transform/transform.go +57 -57
  765. package/native/transform/typia_generator_helpers_coverage_test.go +166 -166
  766. package/package.json +8 -15
  767. package/src/executable/TypiaGenerateWizard.ts +5 -1
  768. package/src/executable/generate/ttsc.ts +3 -4
  769. package/src/executable/typia.ts +8 -4
  770. package/src/internal/_ProtobufReader.ts +187 -187
  771. package/src/internal/_randomArray.ts +34 -34
  772. package/src/internal/_randomString.ts +30 -30
  773. package/src/re-exports.ts +8 -3
  774. package/src/transform.ts +21 -21
  775. package/lib/TypeGuardError2.mjs +0 -55
  776. package/lib/TypeGuardError2.mjs.map +0 -1
  777. package/lib/_virtual/NoTransformConfigurationError.mjs +0 -4
  778. package/lib/_virtual/NoTransformConfigurationError.mjs.map +0 -1
  779. package/lib/_virtual/TypeGuardError.mjs +0 -4
  780. package/lib/_virtual/TypeGuardError.mjs.map +0 -1
  781. package/lib/_virtual/TypiaGenerateWizard.mjs +0 -4
  782. package/lib/_virtual/TypiaGenerateWizard.mjs.map +0 -1
  783. package/lib/_virtual/_IProtobufWriter.mjs +0 -4
  784. package/lib/_virtual/_IProtobufWriter.mjs.map +0 -1
  785. package/lib/_virtual/_ProtobufReader.mjs +0 -4
  786. package/lib/_virtual/_ProtobufReader.mjs.map +0 -1
  787. package/lib/_virtual/_ProtobufSizer.mjs +0 -4
  788. package/lib/_virtual/_ProtobufSizer.mjs.map +0 -1
  789. package/lib/_virtual/_ProtobufWriter.mjs +0 -4
  790. package/lib/_virtual/_ProtobufWriter.mjs.map +0 -1
  791. package/lib/_virtual/__notationCapitalize.mjs +0 -4
  792. package/lib/_virtual/__notationCapitalize.mjs.map +0 -1
  793. package/lib/_virtual/__notationUnsnake.mjs +0 -4
  794. package/lib/_virtual/__notationUnsnake.mjs.map +0 -1
  795. package/lib/_virtual/_accessExpressionAsString.mjs +0 -4
  796. package/lib/_virtual/_accessExpressionAsString.mjs.map +0 -1
  797. package/lib/_virtual/_assertGuard.mjs +0 -4
  798. package/lib/_virtual/_assertGuard.mjs.map +0 -1
  799. package/lib/_virtual/_coerceLlmArguments.mjs +0 -4
  800. package/lib/_virtual/_coerceLlmArguments.mjs.map +0 -1
  801. package/lib/_virtual/_commander.mjs +0 -7
  802. package/lib/_virtual/_commander.mjs.map +0 -1
  803. package/lib/_virtual/_commonjsHelpers.mjs +0 -35
  804. package/lib/_virtual/_commonjsHelpers.mjs.map +0 -1
  805. package/lib/_virtual/_createStandardSchema.mjs +0 -4
  806. package/lib/_virtual/_createStandardSchema.mjs.map +0 -1
  807. package/lib/_virtual/_functionalTypeGuardErrorFactory.mjs +0 -4
  808. package/lib/_virtual/_functionalTypeGuardErrorFactory.mjs.map +0 -1
  809. package/lib/_virtual/_httpFormDataReadArray.mjs +0 -4
  810. package/lib/_virtual/_httpFormDataReadArray.mjs.map +0 -1
  811. package/lib/_virtual/_httpFormDataReadBigint.mjs +0 -4
  812. package/lib/_virtual/_httpFormDataReadBigint.mjs.map +0 -1
  813. package/lib/_virtual/_httpFormDataReadBlob.mjs +0 -4
  814. package/lib/_virtual/_httpFormDataReadBlob.mjs.map +0 -1
  815. package/lib/_virtual/_httpFormDataReadBoolean.mjs +0 -4
  816. package/lib/_virtual/_httpFormDataReadBoolean.mjs.map +0 -1
  817. package/lib/_virtual/_httpFormDataReadFile.mjs +0 -4
  818. package/lib/_virtual/_httpFormDataReadFile.mjs.map +0 -1
  819. package/lib/_virtual/_httpFormDataReadNumber.mjs +0 -4
  820. package/lib/_virtual/_httpFormDataReadNumber.mjs.map +0 -1
  821. package/lib/_virtual/_httpFormDataReadString.mjs +0 -4
  822. package/lib/_virtual/_httpFormDataReadString.mjs.map +0 -1
  823. package/lib/_virtual/_httpHeaderReadBigint.mjs +0 -4
  824. package/lib/_virtual/_httpHeaderReadBigint.mjs.map +0 -1
  825. package/lib/_virtual/_httpHeaderReadBoolean.mjs +0 -4
  826. package/lib/_virtual/_httpHeaderReadBoolean.mjs.map +0 -1
  827. package/lib/_virtual/_httpHeaderReadNumber.mjs +0 -4
  828. package/lib/_virtual/_httpHeaderReadNumber.mjs.map +0 -1
  829. package/lib/_virtual/_httpParameterReadBigint.mjs +0 -4
  830. package/lib/_virtual/_httpParameterReadBigint.mjs.map +0 -1
  831. package/lib/_virtual/_httpParameterReadBoolean.mjs +0 -4
  832. package/lib/_virtual/_httpParameterReadBoolean.mjs.map +0 -1
  833. package/lib/_virtual/_httpParameterReadNumber.mjs +0 -4
  834. package/lib/_virtual/_httpParameterReadNumber.mjs.map +0 -1
  835. package/lib/_virtual/_httpParameterReadString.mjs +0 -4
  836. package/lib/_virtual/_httpParameterReadString.mjs.map +0 -1
  837. package/lib/_virtual/_httpQueryParseURLSearchParams.mjs +0 -4
  838. package/lib/_virtual/_httpQueryParseURLSearchParams.mjs.map +0 -1
  839. package/lib/_virtual/_httpQueryReadArray.mjs +0 -4
  840. package/lib/_virtual/_httpQueryReadArray.mjs.map +0 -1
  841. package/lib/_virtual/_httpQueryReadBigint.mjs +0 -4
  842. package/lib/_virtual/_httpQueryReadBigint.mjs.map +0 -1
  843. package/lib/_virtual/_httpQueryReadBoolean.mjs +0 -4
  844. package/lib/_virtual/_httpQueryReadBoolean.mjs.map +0 -1
  845. package/lib/_virtual/_httpQueryReadNumber.mjs +0 -4
  846. package/lib/_virtual/_httpQueryReadNumber.mjs.map +0 -1
  847. package/lib/_virtual/_httpQueryReadString.mjs +0 -4
  848. package/lib/_virtual/_httpQueryReadString.mjs.map +0 -1
  849. package/lib/_virtual/_inquirer.mjs +0 -7
  850. package/lib/_virtual/_inquirer.mjs.map +0 -1
  851. package/lib/_virtual/_isBetween.mjs +0 -4
  852. package/lib/_virtual/_isBetween.mjs.map +0 -1
  853. package/lib/_virtual/_isBigintString.mjs +0 -4
  854. package/lib/_virtual/_isBigintString.mjs.map +0 -1
  855. package/lib/_virtual/_isFormatByte.mjs +0 -4
  856. package/lib/_virtual/_isFormatByte.mjs.map +0 -1
  857. package/lib/_virtual/_isFormatDate.mjs +0 -4
  858. package/lib/_virtual/_isFormatDate.mjs.map +0 -1
  859. package/lib/_virtual/_isFormatDateTime.mjs +0 -4
  860. package/lib/_virtual/_isFormatDateTime.mjs.map +0 -1
  861. package/lib/_virtual/_isFormatDuration.mjs +0 -4
  862. package/lib/_virtual/_isFormatDuration.mjs.map +0 -1
  863. package/lib/_virtual/_isFormatEmail.mjs +0 -4
  864. package/lib/_virtual/_isFormatEmail.mjs.map +0 -1
  865. package/lib/_virtual/_isFormatHostname.mjs +0 -4
  866. package/lib/_virtual/_isFormatHostname.mjs.map +0 -1
  867. package/lib/_virtual/_isFormatIdnEmail.mjs +0 -4
  868. package/lib/_virtual/_isFormatIdnEmail.mjs.map +0 -1
  869. package/lib/_virtual/_isFormatIdnHostname.mjs +0 -4
  870. package/lib/_virtual/_isFormatIdnHostname.mjs.map +0 -1
  871. package/lib/_virtual/_isFormatIpv4.mjs +0 -4
  872. package/lib/_virtual/_isFormatIpv4.mjs.map +0 -1
  873. package/lib/_virtual/_isFormatIpv6.mjs +0 -4
  874. package/lib/_virtual/_isFormatIpv6.mjs.map +0 -1
  875. package/lib/_virtual/_isFormatIri.mjs +0 -4
  876. package/lib/_virtual/_isFormatIri.mjs.map +0 -1
  877. package/lib/_virtual/_isFormatIriReference.mjs +0 -4
  878. package/lib/_virtual/_isFormatIriReference.mjs.map +0 -1
  879. package/lib/_virtual/_isFormatJsonPointer.mjs +0 -4
  880. package/lib/_virtual/_isFormatJsonPointer.mjs.map +0 -1
  881. package/lib/_virtual/_isFormatPassword.mjs +0 -4
  882. package/lib/_virtual/_isFormatPassword.mjs.map +0 -1
  883. package/lib/_virtual/_isFormatRegex.mjs +0 -4
  884. package/lib/_virtual/_isFormatRegex.mjs.map +0 -1
  885. package/lib/_virtual/_isFormatRelativeJsonPointer.mjs +0 -4
  886. package/lib/_virtual/_isFormatRelativeJsonPointer.mjs.map +0 -1
  887. package/lib/_virtual/_isFormatTime.mjs +0 -4
  888. package/lib/_virtual/_isFormatTime.mjs.map +0 -1
  889. package/lib/_virtual/_isFormatUri.mjs +0 -4
  890. package/lib/_virtual/_isFormatUri.mjs.map +0 -1
  891. package/lib/_virtual/_isFormatUriReference.mjs +0 -4
  892. package/lib/_virtual/_isFormatUriReference.mjs.map +0 -1
  893. package/lib/_virtual/_isFormatUriTemplate.mjs +0 -4
  894. package/lib/_virtual/_isFormatUriTemplate.mjs.map +0 -1
  895. package/lib/_virtual/_isFormatUrl.mjs +0 -4
  896. package/lib/_virtual/_isFormatUrl.mjs.map +0 -1
  897. package/lib/_virtual/_isFormatUuid.mjs +0 -4
  898. package/lib/_virtual/_isFormatUuid.mjs.map +0 -1
  899. package/lib/_virtual/_isTypeFloat.mjs +0 -4
  900. package/lib/_virtual/_isTypeFloat.mjs.map +0 -1
  901. package/lib/_virtual/_isTypeInt16.mjs +0 -4
  902. package/lib/_virtual/_isTypeInt16.mjs.map +0 -1
  903. package/lib/_virtual/_isTypeInt32.mjs +0 -4
  904. package/lib/_virtual/_isTypeInt32.mjs.map +0 -1
  905. package/lib/_virtual/_isTypeInt64.mjs +0 -4
  906. package/lib/_virtual/_isTypeInt64.mjs.map +0 -1
  907. package/lib/_virtual/_isTypeInt8.mjs +0 -4
  908. package/lib/_virtual/_isTypeInt8.mjs.map +0 -1
  909. package/lib/_virtual/_isTypeUint16.mjs +0 -4
  910. package/lib/_virtual/_isTypeUint16.mjs.map +0 -1
  911. package/lib/_virtual/_isTypeUint32.mjs +0 -4
  912. package/lib/_virtual/_isTypeUint32.mjs.map +0 -1
  913. package/lib/_virtual/_isTypeUint64.mjs +0 -4
  914. package/lib/_virtual/_isTypeUint64.mjs.map +0 -1
  915. package/lib/_virtual/_isTypeUint8.mjs +0 -4
  916. package/lib/_virtual/_isTypeUint8.mjs.map +0 -1
  917. package/lib/_virtual/_isUniqueItems.mjs +0 -4
  918. package/lib/_virtual/_isUniqueItems.mjs.map +0 -1
  919. package/lib/_virtual/_jsonStringifyNumber.mjs +0 -4
  920. package/lib/_virtual/_jsonStringifyNumber.mjs.map +0 -1
  921. package/lib/_virtual/_jsonStringifyRest.mjs +0 -4
  922. package/lib/_virtual/_jsonStringifyRest.mjs.map +0 -1
  923. package/lib/_virtual/_jsonStringifyString.mjs +0 -4
  924. package/lib/_virtual/_jsonStringifyString.mjs.map +0 -1
  925. package/lib/_virtual/_jsonStringifyTail.mjs +0 -4
  926. package/lib/_virtual/_jsonStringifyTail.mjs.map +0 -1
  927. package/lib/_virtual/_llmApplicationFinalize.mjs +0 -4
  928. package/lib/_virtual/_llmApplicationFinalize.mjs.map +0 -1
  929. package/lib/_virtual/_node_child_process.mjs +0 -7
  930. package/lib/_virtual/_node_child_process.mjs.map +0 -1
  931. package/lib/_virtual/_node_fs.mjs +0 -7
  932. package/lib/_virtual/_node_fs.mjs.map +0 -1
  933. package/lib/_virtual/_node_module.mjs +0 -7
  934. package/lib/_virtual/_node_module.mjs.map +0 -1
  935. package/lib/_virtual/_node_path.mjs +0 -7
  936. package/lib/_virtual/_node_path.mjs.map +0 -1
  937. package/lib/_virtual/_notationAny.mjs +0 -4
  938. package/lib/_virtual/_notationAny.mjs.map +0 -1
  939. package/lib/_virtual/_notationCamel.mjs +0 -4
  940. package/lib/_virtual/_notationCamel.mjs.map +0 -1
  941. package/lib/_virtual/_notationPascal.mjs +0 -4
  942. package/lib/_virtual/_notationPascal.mjs.map +0 -1
  943. package/lib/_virtual/_notationSnake.mjs +0 -4
  944. package/lib/_virtual/_notationSnake.mjs.map +0 -1
  945. package/lib/_virtual/_parseLlmArguments.mjs +0 -4
  946. package/lib/_virtual/_parseLlmArguments.mjs.map +0 -1
  947. package/lib/_virtual/_plainCloneAny.mjs +0 -4
  948. package/lib/_virtual/_plainCloneAny.mjs.map +0 -1
  949. package/lib/_virtual/_randexp.mjs +0 -7
  950. package/lib/_virtual/_randexp.mjs.map +0 -1
  951. package/lib/_virtual/_randomArray.mjs +0 -4
  952. package/lib/_virtual/_randomArray.mjs.map +0 -1
  953. package/lib/_virtual/_randomBigint.mjs +0 -4
  954. package/lib/_virtual/_randomBigint.mjs.map +0 -1
  955. package/lib/_virtual/_randomBoolean.mjs +0 -4
  956. package/lib/_virtual/_randomBoolean.mjs.map +0 -1
  957. package/lib/_virtual/_randomFormatByte.mjs +0 -4
  958. package/lib/_virtual/_randomFormatByte.mjs.map +0 -1
  959. package/lib/_virtual/_randomFormatDate.mjs +0 -4
  960. package/lib/_virtual/_randomFormatDate.mjs.map +0 -1
  961. package/lib/_virtual/_randomFormatDatetime.mjs +0 -4
  962. package/lib/_virtual/_randomFormatDatetime.mjs.map +0 -1
  963. package/lib/_virtual/_randomFormatDuration.mjs +0 -4
  964. package/lib/_virtual/_randomFormatDuration.mjs.map +0 -1
  965. package/lib/_virtual/_randomFormatEmail.mjs +0 -4
  966. package/lib/_virtual/_randomFormatEmail.mjs.map +0 -1
  967. package/lib/_virtual/_randomFormatHostname.mjs +0 -4
  968. package/lib/_virtual/_randomFormatHostname.mjs.map +0 -1
  969. package/lib/_virtual/_randomFormatIdnEmail.mjs +0 -4
  970. package/lib/_virtual/_randomFormatIdnEmail.mjs.map +0 -1
  971. package/lib/_virtual/_randomFormatIdnHostname.mjs +0 -4
  972. package/lib/_virtual/_randomFormatIdnHostname.mjs.map +0 -1
  973. package/lib/_virtual/_randomFormatIpv4.mjs +0 -4
  974. package/lib/_virtual/_randomFormatIpv4.mjs.map +0 -1
  975. package/lib/_virtual/_randomFormatIpv6.mjs +0 -4
  976. package/lib/_virtual/_randomFormatIpv6.mjs.map +0 -1
  977. package/lib/_virtual/_randomFormatIri.mjs +0 -4
  978. package/lib/_virtual/_randomFormatIri.mjs.map +0 -1
  979. package/lib/_virtual/_randomFormatIriReference.mjs +0 -4
  980. package/lib/_virtual/_randomFormatIriReference.mjs.map +0 -1
  981. package/lib/_virtual/_randomFormatJsonPointer.mjs +0 -4
  982. package/lib/_virtual/_randomFormatJsonPointer.mjs.map +0 -1
  983. package/lib/_virtual/_randomFormatPassword.mjs +0 -4
  984. package/lib/_virtual/_randomFormatPassword.mjs.map +0 -1
  985. package/lib/_virtual/_randomFormatRegex.mjs +0 -4
  986. package/lib/_virtual/_randomFormatRegex.mjs.map +0 -1
  987. package/lib/_virtual/_randomFormatRelativeJsonPointer.mjs +0 -4
  988. package/lib/_virtual/_randomFormatRelativeJsonPointer.mjs.map +0 -1
  989. package/lib/_virtual/_randomFormatTime.mjs +0 -4
  990. package/lib/_virtual/_randomFormatTime.mjs.map +0 -1
  991. package/lib/_virtual/_randomFormatUri.mjs +0 -4
  992. package/lib/_virtual/_randomFormatUri.mjs.map +0 -1
  993. package/lib/_virtual/_randomFormatUriReference.mjs +0 -4
  994. package/lib/_virtual/_randomFormatUriReference.mjs.map +0 -1
  995. package/lib/_virtual/_randomFormatUriTemplate.mjs +0 -4
  996. package/lib/_virtual/_randomFormatUriTemplate.mjs.map +0 -1
  997. package/lib/_virtual/_randomFormatUrl.mjs +0 -4
  998. package/lib/_virtual/_randomFormatUrl.mjs.map +0 -1
  999. package/lib/_virtual/_randomFormatUuid.mjs +0 -4
  1000. package/lib/_virtual/_randomFormatUuid.mjs.map +0 -1
  1001. package/lib/_virtual/_randomInteger.mjs +0 -4
  1002. package/lib/_virtual/_randomInteger.mjs.map +0 -1
  1003. package/lib/_virtual/_randomNumber.mjs +0 -4
  1004. package/lib/_virtual/_randomNumber.mjs.map +0 -1
  1005. package/lib/_virtual/_randomPattern.mjs +0 -4
  1006. package/lib/_virtual/_randomPattern.mjs.map +0 -1
  1007. package/lib/_virtual/_randomPick.mjs +0 -4
  1008. package/lib/_virtual/_randomPick.mjs.map +0 -1
  1009. package/lib/_virtual/_randomString.mjs +0 -4
  1010. package/lib/_virtual/_randomString.mjs.map +0 -1
  1011. package/lib/_virtual/_throwTypeGuardError.mjs +0 -4
  1012. package/lib/_virtual/_throwTypeGuardError.mjs.map +0 -1
  1013. package/lib/_virtual/_tinyglobby.mjs +0 -7
  1014. package/lib/_virtual/_tinyglobby.mjs.map +0 -1
  1015. package/lib/_virtual/_validateReport.mjs +0 -4
  1016. package/lib/_virtual/_validateReport.mjs.map +0 -1
  1017. package/lib/_virtual/compare.mjs +0 -4
  1018. package/lib/_virtual/compare.mjs.map +0 -1
  1019. package/lib/_virtual/functional.mjs +0 -4
  1020. package/lib/_virtual/functional.mjs.map +0 -1
  1021. package/lib/_virtual/http.mjs +0 -4
  1022. package/lib/_virtual/http.mjs.map +0 -1
  1023. package/lib/_virtual/index.mjs +0 -4
  1024. package/lib/_virtual/index.mjs.map +0 -1
  1025. package/lib/_virtual/json.mjs +0 -4
  1026. package/lib/_virtual/json.mjs.map +0 -1
  1027. package/lib/_virtual/llm.mjs +0 -4
  1028. package/lib/_virtual/llm.mjs.map +0 -1
  1029. package/lib/_virtual/module.mjs +0 -4
  1030. package/lib/_virtual/module.mjs.map +0 -1
  1031. package/lib/_virtual/notations.mjs +0 -4
  1032. package/lib/_virtual/notations.mjs.map +0 -1
  1033. package/lib/_virtual/plain.mjs +0 -4
  1034. package/lib/_virtual/plain.mjs.map +0 -1
  1035. package/lib/_virtual/protobuf.mjs +0 -4
  1036. package/lib/_virtual/protobuf.mjs.map +0 -1
  1037. package/lib/_virtual/re-exports.mjs +0 -4
  1038. package/lib/_virtual/re-exports.mjs.map +0 -1
  1039. package/lib/_virtual/reflect.mjs +0 -4
  1040. package/lib/_virtual/reflect.mjs.map +0 -1
  1041. package/lib/_virtual/transform.mjs +0 -4
  1042. package/lib/_virtual/transform.mjs.map +0 -1
  1043. package/lib/_virtual/ttsc.mjs +0 -4
  1044. package/lib/_virtual/ttsc.mjs.map +0 -1
  1045. package/lib/_virtual/typia.mjs +0 -4
  1046. package/lib/_virtual/typia.mjs.map +0 -1
  1047. package/lib/compare2.mjs +0 -39
  1048. package/lib/compare2.mjs.map +0 -1
  1049. package/lib/executable/TypiaGenerateWizard2.mjs +0 -719
  1050. package/lib/executable/TypiaGenerateWizard2.mjs.map +0 -1
  1051. package/lib/executable/generate/ttsc2.mjs +0 -56
  1052. package/lib/executable/generate/ttsc2.mjs.map +0 -1
  1053. package/lib/executable/typia2.mjs +0 -88
  1054. package/lib/executable/typia2.mjs.map +0 -1
  1055. package/lib/functional2.mjs +0 -99
  1056. package/lib/functional2.mjs.map +0 -1
  1057. package/lib/http2.mjs +0 -139
  1058. package/lib/http2.mjs.map +0 -1
  1059. package/lib/index2.mjs +0 -53
  1060. package/lib/index2.mjs.map +0 -1
  1061. package/lib/internal/_IProtobufWriter.mjs.map +0 -1
  1062. package/lib/internal/_IProtobufWriter2.mjs +0 -6
  1063. package/lib/internal/_IProtobufWriter2.mjs.map +0 -1
  1064. package/lib/internal/_ProtobufReader2.mjs +0 -169
  1065. package/lib/internal/_ProtobufReader2.mjs.map +0 -1
  1066. package/lib/internal/_ProtobufSizer2.mjs +0 -119
  1067. package/lib/internal/_ProtobufSizer2.mjs.map +0 -1
  1068. package/lib/internal/_ProtobufWriter2.mjs +0 -107
  1069. package/lib/internal/_ProtobufWriter2.mjs.map +0 -1
  1070. package/lib/internal/_accessExpressionAsString2.mjs +0 -49
  1071. package/lib/internal/_accessExpressionAsString2.mjs.map +0 -1
  1072. package/lib/internal/_assertGuard2.mjs +0 -20
  1073. package/lib/internal/_assertGuard2.mjs.map +0 -1
  1074. package/lib/internal/_coerceLlmArguments2.mjs +0 -11
  1075. package/lib/internal/_coerceLlmArguments2.mjs.map +0 -1
  1076. package/lib/internal/_createStandardSchema2.mjs +0 -138
  1077. package/lib/internal/_createStandardSchema2.mjs.map +0 -1
  1078. package/lib/internal/_functionalTypeGuardErrorFactory2.mjs +0 -12
  1079. package/lib/internal/_functionalTypeGuardErrorFactory2.mjs.map +0 -1
  1080. package/lib/internal/_httpFormDataReadArray2.mjs +0 -9
  1081. package/lib/internal/_httpFormDataReadArray2.mjs.map +0 -1
  1082. package/lib/internal/_httpFormDataReadBigint2.mjs +0 -23
  1083. package/lib/internal/_httpFormDataReadBigint2.mjs.map +0 -1
  1084. package/lib/internal/_httpFormDataReadBlob2.mjs +0 -15
  1085. package/lib/internal/_httpFormDataReadBlob2.mjs.map +0 -1
  1086. package/lib/internal/_httpFormDataReadBoolean2.mjs +0 -21
  1087. package/lib/internal/_httpFormDataReadBoolean2.mjs.map +0 -1
  1088. package/lib/internal/_httpFormDataReadFile2.mjs +0 -15
  1089. package/lib/internal/_httpFormDataReadFile2.mjs.map +0 -1
  1090. package/lib/internal/_httpFormDataReadNumber2.mjs +0 -19
  1091. package/lib/internal/_httpFormDataReadNumber2.mjs.map +0 -1
  1092. package/lib/internal/_httpFormDataReadString2.mjs +0 -15
  1093. package/lib/internal/_httpFormDataReadString2.mjs.map +0 -1
  1094. package/lib/internal/_httpHeaderReadBigint2.mjs +0 -17
  1095. package/lib/internal/_httpHeaderReadBigint2.mjs.map +0 -1
  1096. package/lib/internal/_httpHeaderReadBoolean2.mjs +0 -15
  1097. package/lib/internal/_httpHeaderReadBoolean2.mjs.map +0 -1
  1098. package/lib/internal/_httpHeaderReadNumber2.mjs +0 -13
  1099. package/lib/internal/_httpHeaderReadNumber2.mjs.map +0 -1
  1100. package/lib/internal/_httpParameterReadBigint2.mjs +0 -17
  1101. package/lib/internal/_httpParameterReadBigint2.mjs.map +0 -1
  1102. package/lib/internal/_httpParameterReadBoolean2.mjs +0 -15
  1103. package/lib/internal/_httpParameterReadBoolean2.mjs.map +0 -1
  1104. package/lib/internal/_httpParameterReadNumber2.mjs +0 -13
  1105. package/lib/internal/_httpParameterReadNumber2.mjs.map +0 -1
  1106. package/lib/internal/_httpParameterReadString2.mjs +0 -9
  1107. package/lib/internal/_httpParameterReadString2.mjs.map +0 -1
  1108. package/lib/internal/_httpQueryParseURLSearchParams2.mjs +0 -16
  1109. package/lib/internal/_httpQueryParseURLSearchParams2.mjs.map +0 -1
  1110. package/lib/internal/_httpQueryReadArray2.mjs +0 -9
  1111. package/lib/internal/_httpQueryReadArray2.mjs.map +0 -1
  1112. package/lib/internal/_httpQueryReadBigint2.mjs +0 -17
  1113. package/lib/internal/_httpQueryReadBigint2.mjs.map +0 -1
  1114. package/lib/internal/_httpQueryReadBoolean2.mjs +0 -19
  1115. package/lib/internal/_httpQueryReadBoolean2.mjs.map +0 -1
  1116. package/lib/internal/_httpQueryReadNumber2.mjs +0 -13
  1117. package/lib/internal/_httpQueryReadNumber2.mjs.map +0 -1
  1118. package/lib/internal/_httpQueryReadString2.mjs +0 -9
  1119. package/lib/internal/_httpQueryReadString2.mjs.map +0 -1
  1120. package/lib/internal/_isBetween2.mjs +0 -9
  1121. package/lib/internal/_isBetween2.mjs.map +0 -1
  1122. package/lib/internal/_isBigintString2.mjs +0 -17
  1123. package/lib/internal/_isBigintString2.mjs.map +0 -1
  1124. package/lib/internal/_isFormatByte2.mjs +0 -13
  1125. package/lib/internal/_isFormatByte2.mjs.map +0 -1
  1126. package/lib/internal/_isFormatDate2.mjs +0 -10
  1127. package/lib/internal/_isFormatDate2.mjs.map +0 -1
  1128. package/lib/internal/_isFormatDateTime2.mjs +0 -10
  1129. package/lib/internal/_isFormatDateTime2.mjs.map +0 -1
  1130. package/lib/internal/_isFormatDuration2.mjs +0 -10
  1131. package/lib/internal/_isFormatDuration2.mjs.map +0 -1
  1132. package/lib/internal/_isFormatEmail2.mjs +0 -10
  1133. package/lib/internal/_isFormatEmail2.mjs.map +0 -1
  1134. package/lib/internal/_isFormatHostname2.mjs +0 -10
  1135. package/lib/internal/_isFormatHostname2.mjs.map +0 -1
  1136. package/lib/internal/_isFormatIdnEmail2.mjs +0 -10
  1137. package/lib/internal/_isFormatIdnEmail2.mjs.map +0 -1
  1138. package/lib/internal/_isFormatIdnHostname2.mjs +0 -10
  1139. package/lib/internal/_isFormatIdnHostname2.mjs.map +0 -1
  1140. package/lib/internal/_isFormatIpv42.mjs +0 -10
  1141. package/lib/internal/_isFormatIpv42.mjs.map +0 -1
  1142. package/lib/internal/_isFormatIpv62.mjs +0 -10
  1143. package/lib/internal/_isFormatIpv62.mjs.map +0 -1
  1144. package/lib/internal/_isFormatIri2.mjs +0 -10
  1145. package/lib/internal/_isFormatIri2.mjs.map +0 -1
  1146. package/lib/internal/_isFormatIriReference2.mjs +0 -10
  1147. package/lib/internal/_isFormatIriReference2.mjs.map +0 -1
  1148. package/lib/internal/_isFormatJsonPointer2.mjs +0 -10
  1149. package/lib/internal/_isFormatJsonPointer2.mjs.map +0 -1
  1150. package/lib/internal/_isFormatPassword2.mjs +0 -9
  1151. package/lib/internal/_isFormatPassword2.mjs.map +0 -1
  1152. package/lib/internal/_isFormatRegex2.mjs +0 -17
  1153. package/lib/internal/_isFormatRegex2.mjs.map +0 -1
  1154. package/lib/internal/_isFormatRelativeJsonPointer2.mjs +0 -10
  1155. package/lib/internal/_isFormatRelativeJsonPointer2.mjs.map +0 -1
  1156. package/lib/internal/_isFormatTime2.mjs +0 -10
  1157. package/lib/internal/_isFormatTime2.mjs.map +0 -1
  1158. package/lib/internal/_isFormatUri2.mjs +0 -11
  1159. package/lib/internal/_isFormatUri2.mjs.map +0 -1
  1160. package/lib/internal/_isFormatUriReference2.mjs +0 -10
  1161. package/lib/internal/_isFormatUriReference2.mjs.map +0 -1
  1162. package/lib/internal/_isFormatUriTemplate2.mjs +0 -10
  1163. package/lib/internal/_isFormatUriTemplate2.mjs.map +0 -1
  1164. package/lib/internal/_isFormatUrl2.mjs +0 -10
  1165. package/lib/internal/_isFormatUrl2.mjs.map +0 -1
  1166. package/lib/internal/_isFormatUuid2.mjs +0 -10
  1167. package/lib/internal/_isFormatUuid2.mjs.map +0 -1
  1168. package/lib/internal/_isTypeFloat2.mjs +0 -11
  1169. package/lib/internal/_isTypeFloat2.mjs.map +0 -1
  1170. package/lib/internal/_isTypeInt162.mjs +0 -11
  1171. package/lib/internal/_isTypeInt162.mjs.map +0 -1
  1172. package/lib/internal/_isTypeInt322.mjs +0 -11
  1173. package/lib/internal/_isTypeInt322.mjs.map +0 -1
  1174. package/lib/internal/_isTypeInt642.mjs +0 -11
  1175. package/lib/internal/_isTypeInt642.mjs.map +0 -1
  1176. package/lib/internal/_isTypeInt82.mjs +0 -11
  1177. package/lib/internal/_isTypeInt82.mjs.map +0 -1
  1178. package/lib/internal/_isTypeUint162.mjs +0 -11
  1179. package/lib/internal/_isTypeUint162.mjs.map +0 -1
  1180. package/lib/internal/_isTypeUint322.mjs +0 -11
  1181. package/lib/internal/_isTypeUint322.mjs.map +0 -1
  1182. package/lib/internal/_isTypeUint642.mjs +0 -11
  1183. package/lib/internal/_isTypeUint642.mjs.map +0 -1
  1184. package/lib/internal/_isTypeUint82.mjs +0 -11
  1185. package/lib/internal/_isTypeUint82.mjs.map +0 -1
  1186. package/lib/internal/_isUniqueItems2.mjs +0 -143
  1187. package/lib/internal/_isUniqueItems2.mjs.map +0 -1
  1188. package/lib/internal/_jsonStringifyNumber2.mjs +0 -9
  1189. package/lib/internal/_jsonStringifyNumber2.mjs.map +0 -1
  1190. package/lib/internal/_jsonStringifyRest2.mjs +0 -11
  1191. package/lib/internal/_jsonStringifyRest2.mjs.map +0 -1
  1192. package/lib/internal/_jsonStringifyString2.mjs +0 -45
  1193. package/lib/internal/_jsonStringifyString2.mjs.map +0 -1
  1194. package/lib/internal/_jsonStringifyTail2.mjs +0 -9
  1195. package/lib/internal/_jsonStringifyTail2.mjs.map +0 -1
  1196. package/lib/internal/_llmApplicationFinalize2.mjs +0 -11
  1197. package/lib/internal/_llmApplicationFinalize2.mjs.map +0 -1
  1198. package/lib/internal/_notationAny2.mjs +0 -42
  1199. package/lib/internal/_notationAny2.mjs.map +0 -1
  1200. package/lib/internal/_notationCamel2.mjs +0 -21
  1201. package/lib/internal/_notationCamel2.mjs.map +0 -1
  1202. package/lib/internal/_notationPascal2.mjs +0 -17
  1203. package/lib/internal/_notationPascal2.mjs.map +0 -1
  1204. package/lib/internal/_notationSnake2.mjs +0 -54
  1205. package/lib/internal/_notationSnake2.mjs.map +0 -1
  1206. package/lib/internal/_parseLlmArguments2.mjs +0 -11
  1207. package/lib/internal/_parseLlmArguments2.mjs.map +0 -1
  1208. package/lib/internal/_plainCloneAny2.mjs +0 -67
  1209. package/lib/internal/_plainCloneAny2.mjs.map +0 -1
  1210. package/lib/internal/_randomArray2.mjs +0 -31
  1211. package/lib/internal/_randomArray2.mjs.map +0 -1
  1212. package/lib/internal/_randomBigint2.mjs +0 -12
  1213. package/lib/internal/_randomBigint2.mjs.map +0 -1
  1214. package/lib/internal/_randomBoolean2.mjs +0 -9
  1215. package/lib/internal/_randomBoolean2.mjs.map +0 -1
  1216. package/lib/internal/_randomFormatByte2.mjs +0 -10
  1217. package/lib/internal/_randomFormatByte2.mjs.map +0 -1
  1218. package/lib/internal/_randomFormatDate2.mjs +0 -20
  1219. package/lib/internal/_randomFormatDate2.mjs.map +0 -1
  1220. package/lib/internal/_randomFormatDatetime2.mjs +0 -18
  1221. package/lib/internal/_randomFormatDatetime2.mjs.map +0 -1
  1222. package/lib/internal/_randomFormatDuration2.mjs +0 -35
  1223. package/lib/internal/_randomFormatDuration2.mjs.map +0 -1
  1224. package/lib/internal/_randomFormatEmail2.mjs +0 -17
  1225. package/lib/internal/_randomFormatEmail2.mjs.map +0 -1
  1226. package/lib/internal/_randomFormatHostname2.mjs +0 -13
  1227. package/lib/internal/_randomFormatHostname2.mjs.map +0 -1
  1228. package/lib/internal/_randomFormatIdnEmail2.mjs +0 -12
  1229. package/lib/internal/_randomFormatIdnEmail2.mjs.map +0 -1
  1230. package/lib/internal/_randomFormatIdnHostname2.mjs +0 -12
  1231. package/lib/internal/_randomFormatIdnHostname2.mjs.map +0 -1
  1232. package/lib/internal/_randomFormatIpv42.mjs +0 -17
  1233. package/lib/internal/_randomFormatIpv42.mjs.map +0 -1
  1234. package/lib/internal/_randomFormatIpv62.mjs +0 -17
  1235. package/lib/internal/_randomFormatIpv62.mjs.map +0 -1
  1236. package/lib/internal/_randomFormatIri2.mjs +0 -12
  1237. package/lib/internal/_randomFormatIri2.mjs.map +0 -1
  1238. package/lib/internal/_randomFormatIriReference2.mjs +0 -12
  1239. package/lib/internal/_randomFormatIriReference2.mjs.map +0 -1
  1240. package/lib/internal/_randomFormatJsonPointer2.mjs +0 -13
  1241. package/lib/internal/_randomFormatJsonPointer2.mjs.map +0 -1
  1242. package/lib/internal/_randomFormatPassword2.mjs +0 -16
  1243. package/lib/internal/_randomFormatPassword2.mjs.map +0 -1
  1244. package/lib/internal/_randomFormatRegex2.mjs +0 -10
  1245. package/lib/internal/_randomFormatRegex2.mjs.map +0 -1
  1246. package/lib/internal/_randomFormatRelativeJsonPointer2.mjs +0 -16
  1247. package/lib/internal/_randomFormatRelativeJsonPointer2.mjs.map +0 -1
  1248. package/lib/internal/_randomFormatTime2.mjs +0 -19
  1249. package/lib/internal/_randomFormatTime2.mjs.map +0 -1
  1250. package/lib/internal/_randomFormatUri2.mjs +0 -12
  1251. package/lib/internal/_randomFormatUri2.mjs.map +0 -1
  1252. package/lib/internal/_randomFormatUriReference2.mjs +0 -12
  1253. package/lib/internal/_randomFormatUriReference2.mjs.map +0 -1
  1254. package/lib/internal/_randomFormatUriTemplate2.mjs +0 -12
  1255. package/lib/internal/_randomFormatUriTemplate2.mjs.map +0 -1
  1256. package/lib/internal/_randomFormatUrl2.mjs +0 -17
  1257. package/lib/internal/_randomFormatUrl2.mjs.map +0 -1
  1258. package/lib/internal/_randomFormatUuid2.mjs +0 -13
  1259. package/lib/internal/_randomFormatUuid2.mjs.map +0 -1
  1260. package/lib/internal/_randomInteger2.mjs +0 -47
  1261. package/lib/internal/_randomInteger2.mjs.map +0 -1
  1262. package/lib/internal/_randomNumber2.mjs +0 -66
  1263. package/lib/internal/_randomNumber2.mjs.map +0 -1
  1264. package/lib/internal/_randomPattern2.mjs +0 -22
  1265. package/lib/internal/_randomPattern2.mjs.map +0 -1
  1266. package/lib/internal/_randomPick2.mjs +0 -17
  1267. package/lib/internal/_randomPick2.mjs.map +0 -1
  1268. package/lib/internal/_randomString2.mjs +0 -32
  1269. package/lib/internal/_randomString2.mjs.map +0 -1
  1270. package/lib/internal/_throwTypeGuardError2.mjs +0 -14
  1271. package/lib/internal/_throwTypeGuardError2.mjs.map +0 -1
  1272. package/lib/internal/_validateReport2.mjs +0 -29
  1273. package/lib/internal/_validateReport2.mjs.map +0 -1
  1274. package/lib/internal/private/__notationCapitalize2.mjs +0 -9
  1275. package/lib/internal/private/__notationCapitalize2.mjs.map +0 -1
  1276. package/lib/internal/private/__notationUnsnake2.mjs +0 -29
  1277. package/lib/internal/private/__notationUnsnake2.mjs.map +0 -1
  1278. package/lib/json2.mjs +0 -94
  1279. package/lib/json2.mjs.map +0 -1
  1280. package/lib/llm2.mjs +0 -54
  1281. package/lib/llm2.mjs.map +0 -1
  1282. package/lib/module2.mjs +0 -185
  1283. package/lib/module2.mjs.map +0 -1
  1284. package/lib/notations2.mjs +0 -169
  1285. package/lib/notations2.mjs.map +0 -1
  1286. package/lib/plain2.mjs +0 -119
  1287. package/lib/plain2.mjs.map +0 -1
  1288. package/lib/protobuf2.mjs +0 -94
  1289. package/lib/protobuf2.mjs.map +0 -1
  1290. package/lib/re-exports.mjs.map +0 -1
  1291. package/lib/re-exports2.mjs +0 -17
  1292. package/lib/re-exports2.mjs.map +0 -1
  1293. package/lib/reflect2.mjs +0 -29
  1294. package/lib/reflect2.mjs.map +0 -1
  1295. package/lib/transform2.mjs +0 -26
  1296. package/lib/transform2.mjs.map +0 -1
  1297. package/lib/transformers/NoTransformConfigurationError2.mjs +0 -21
  1298. package/lib/transformers/NoTransformConfigurationError2.mjs.map +0 -1
@@ -1,1269 +1,1269 @@
1
- package protobuf
2
-
3
- import (
4
- "fmt"
5
-
6
- shimast "github.com/microsoft/typescript-go/shim/ast"
7
- shimchecker "github.com/microsoft/typescript-go/shim/checker"
8
- shimprinter "github.com/microsoft/typescript-go/shim/printer"
9
- nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
10
- nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
11
- nativeprogrammers "github.com/samchon/typia/packages/typia/native/core/programmers"
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
- schemaprotobuf "github.com/samchon/typia/packages/typia/native/core/schemas/protobuf"
17
- )
18
-
19
- type protobufEncodeProgrammerNamespace struct{}
20
-
21
- var ProtobufEncodeProgrammer = protobufEncodeProgrammerNamespace{}
22
-
23
- type ProtobufEncodeProgrammer_IProps struct {
24
- Context nativecontext.ITypiaContext
25
- Modulo *shimast.Node
26
- Type *shimchecker.Type
27
- Name *string
28
- Init *shimast.Node
29
- }
30
-
31
- type ProtobufEncodeProgrammer_DecomposeProps struct {
32
- Context nativecontext.ITypiaContext
33
- Modulo *shimast.Node
34
- Functor *nativehelpers.FunctionProgrammer
35
- Type *shimchecker.Type
36
- Name *string
37
- }
38
-
39
- type protobufEncodeProgrammer_IUnion struct {
40
- Is func() *shimast.Node
41
- Value func() *shimast.Node
42
- }
43
-
44
- const protobufEncodeProgrammer_PREFIX = "_pe"
45
-
46
- var protobufEncodeProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
47
-
48
- func (protobufEncodeProgrammerNamespace) Decompose(props ProtobufEncodeProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
49
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
50
- collection := schemametadata.NewMetadataCollection()
51
- metadata := nativefactories.ProtobufFactory.Metadata(nativefactories.ProtobufFactory_IProps{
52
- Method: protobufEncodeProgrammer_method_text(props.Modulo),
53
- Checker: props.Context.Checker,
54
- Components: collection,
55
- Type: props.Type,
56
- })
57
- if nativeinternal.FeatureProgrammer.CollectionRecursive(collection) {
58
- props.Functor.SetVisited(true)
59
- }
60
- encoderFunctor := nativehelpers.NewFunctionProgrammer(protobufEncodeProgrammer_method_text(props.Modulo), props.Context.Emit)
61
- encoderFunctor.SetVisited(props.Functor.Visited())
62
-
63
- callEncoder := func(writer string, factory *shimast.Node) *shimast.Node {
64
- return nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
65
- Name: writer,
66
- Value: f.NewCallExpression(
67
- f.NewIdentifier("encoder"),
68
- nil,
69
- nil,
70
- f.NewNodeList([]*shimast.Node{
71
- factory,
72
- f.NewIdentifier("input"),
73
- }),
74
- shimast.NodeFlagsNone,
75
- ),
76
- }, props.Context.Emit)
77
- }
78
- typeName := ""
79
- if props.Name != nil {
80
- typeName = *props.Name
81
- } else {
82
- typeName = nativefactories.TypeFactory.GetFullName(nativefactories.TypeFactory_GetFullNameProps{
83
- Checker: props.Context.Checker,
84
- Type: props.Type,
85
- })
86
- }
87
- return nativeinternal.FeatureProgrammer_IDecomposed{
88
- Functions: map[string]*shimast.Node{
89
- "encoder": nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
90
- Name: props.Functor.UseLocal("encoder"),
91
- Value: protobufEncodeProgrammer_write_encoder(protobufEncodeProgrammer_writeEncoderProps{
92
- Context: props.Context,
93
- Functor: encoderFunctor,
94
- Collection: collection,
95
- Metadata: metadata,
96
- }),
97
- }, props.Context.Emit),
98
- },
99
- Statements: []*shimast.Node{},
100
- Arrow: f.NewArrowFunction(
101
- nil,
102
- nil,
103
- f.NewNodeList([]*shimast.Node{
104
- nativefactories.IdentifierFactory.Parameter("input", f.NewTypeReferenceNode(f.NewIdentifier(typeName), nil), nil, props.Context.Emit),
105
- }),
106
- f.NewTypeReferenceNode(f.NewIdentifier("Uint8Array"), nil),
107
- nil,
108
- f.NewToken(shimast.KindEqualsGreaterThanToken),
109
- f.NewBlock(f.NewNodeList([]*shimast.Node{
110
- callEncoder("sizer", f.NewNewExpression(protobufEncodeProgrammer_internal(props.Context, "ProtobufSizer"), nil, f.NewNodeList(nil))),
111
- callEncoder("writer", f.NewNewExpression(
112
- protobufEncodeProgrammer_internal(props.Context, "ProtobufWriter"),
113
- nil,
114
- f.NewNodeList([]*shimast.Node{
115
- f.NewIdentifier("sizer"),
116
- }),
117
- )),
118
- f.NewReturnStatement(protobufEncodeProgrammer_callWriter("buffer", nil, props.Context.Emit)),
119
- }), true),
120
- ),
121
- }
122
- }
123
-
124
- func (protobufEncodeProgrammerNamespace) Write(props ProtobufEncodeProgrammer_IProps) *shimast.Node {
125
- functor := nativehelpers.NewFunctionProgrammer(protobufEncodeProgrammer_method_text(props.Modulo), props.Context.Emit)
126
- result := ProtobufEncodeProgrammer.Decompose(ProtobufEncodeProgrammer_DecomposeProps{
127
- Context: props.Context,
128
- Modulo: props.Modulo,
129
- Functor: functor,
130
- Type: props.Type,
131
- Name: props.Name,
132
- })
133
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
134
- Modulo: props.Modulo,
135
- Functor: functor,
136
- Result: result,
137
- })
138
- }
139
-
140
- type protobufEncodeProgrammer_writeEncoderProps struct {
141
- Context nativecontext.ITypiaContext
142
- Functor *nativehelpers.FunctionProgrammer
143
- Collection *schemametadata.MetadataCollection
144
- Metadata *schemametadata.MetadataSchema
145
- }
146
-
147
- func protobufEncodeProgrammer_write_encoder(props protobufEncodeProgrammer_writeEncoderProps) *shimast.Node {
148
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
149
- functors := []*shimast.Node{}
150
- for _, object := range props.Collection.Objects() {
151
- if nativehelpers.ProtobufUtil.IsStaticObject(object) == false {
152
- continue
153
- }
154
- functors = append(functors, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
155
- Name: fmt.Sprintf("%so%d", protobufEncodeProgrammer_PREFIX, object.Index),
156
- Value: protobufEncodeProgrammer_write_object_function(protobufEncodeProgrammer_writeObjectFunctionProps{
157
- Context: props.Context,
158
- Functor: props.Functor,
159
- Input: f.NewIdentifier("input"),
160
- Object: object,
161
- Explore: nativeinternal.FeatureProgrammer_IExplore{
162
- Source: "function",
163
- From: "object",
164
- Tracable: false,
165
- Postfix: "",
166
- },
167
- }),
168
- }, props.Context.Emit))
169
- }
170
- statements := []*shimast.Node{}
171
- if props.Functor.Visited() {
172
- // The encoder closure is created per invocation (once for the sizer
173
- // pass, once for the writer pass), so a body-local visit context covers
174
- // both the embedded is-functions — which thread it as their `_vctx`
175
- // parameter — and the protobuf object guards, without changing any of
176
- // the encoder's own function signatures.
177
- statements = append(statements, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
178
- Name: "_vctx",
179
- Value: f.NewAsExpression(
180
- f.NewObjectLiteralExpression(f.NewNodeList(nil), false),
181
- nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
182
- ),
183
- }, props.Context.Emit))
184
- }
185
- checkers := nativeprogrammers.IsProgrammer.Write_function_statements(nativeprogrammers.IsProgrammer_WriteFunctionStatementsProps{
186
- Context: props.Context,
187
- Functor: props.Functor,
188
- Collection: props.Collection,
189
- })
190
- statements = append(statements, props.Functor.Declare()...)
191
- statements = append(statements, functors...)
192
- statements = append(statements, checkers...)
193
- index := 0
194
- if len(props.Metadata.Objects) != 0 {
195
- index = props.Metadata.Objects[0].Type.Index
196
- }
197
- statements = append(statements,
198
- f.NewExpressionStatement(
199
- f.NewCallExpression(
200
- f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%so%d", protobufEncodeProgrammer_PREFIX, index))),
201
- nil,
202
- nil,
203
- f.NewNodeList([]*shimast.Node{
204
- f.NewIdentifier("input"),
205
- }),
206
- shimast.NodeFlagsNone,
207
- ),
208
- ),
209
- f.NewReturnStatement(f.NewIdentifier("writer")),
210
- )
211
- return f.NewArrowFunction(
212
- nil,
213
- f.NewNodeList([]*shimast.Node{
214
- f.NewTypeParameterDeclaration(
215
- nil,
216
- f.NewIdentifier("Writer"),
217
- protobufEncodeProgrammer_import_type(props.Context, nativecontext.ImportProgrammer_TypeProps{
218
- File: "typia/lib/internal/_IProtobufWriter",
219
- Name: "_IProtobufWriter",
220
- }),
221
- nil,
222
- nil,
223
- ),
224
- }),
225
- f.NewNodeList([]*shimast.Node{
226
- nativefactories.IdentifierFactory.Parameter("writer", f.NewTypeReferenceNode(f.NewIdentifier("Writer"), nil), nil, props.Context.Emit),
227
- nativefactories.IdentifierFactory.Parameter("input", nil, nil, props.Context.Emit),
228
- }),
229
- f.NewTypeReferenceNode(f.NewIdentifier("Writer"), nil),
230
- nil,
231
- f.NewToken(shimast.KindEqualsGreaterThanToken),
232
- f.NewBlock(f.NewNodeList(statements), true),
233
- )
234
- }
235
-
236
- type protobufEncodeProgrammer_writeObjectFunctionProps struct {
237
- Context nativecontext.ITypiaContext
238
- Functor *nativehelpers.FunctionProgrammer
239
- Input *shimast.Node
240
- Object *schemametadata.MetadataObjectType
241
- Explore nativeinternal.FeatureProgrammer_IExplore
242
- }
243
-
244
- func protobufEncodeProgrammer_write_object_function(props protobufEncodeProgrammer_writeObjectFunctionProps) *shimast.Node {
245
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
246
- body := []*shimast.Node{}
247
- guarded := props.Object.Recursive && props.Functor.Visited()
248
- if guarded {
249
- // On-stack cycle detection: protobuf cannot represent circular
250
- // references, while re-encoding a DAG alias at another position is
251
- // legal — hence add on entry, delete on exit, throw on revisit.
252
- slot := "_vctx." + nativeinternal.FeatureProgrammer.VisitKey(protobufEncodeProgrammer_PREFIX, "o", props.Object.Index)
253
- body = append(body,
254
- f.NewIfStatement(
255
- f.NewIdentifier("("+slot+" || ("+slot+" = new WeakSet())).has(input)"),
256
- protobufEncodeProgrammer_create_throw_error(protobufEncodeProgrammer_throwProps{
257
- Context: props.Context,
258
- Functor: props.Functor,
259
- Expected: "non-circular reference",
260
- Input: f.NewIdentifier("input"),
261
- }),
262
- nil,
263
- ),
264
- f.NewExpressionStatement(f.NewIdentifier(slot+".add(input)")),
265
- )
266
- }
267
- for _, property := range props.Object.Properties {
268
- if property.Of_protobuf_ == nil {
269
- nativefactories.ProtobufFactory.EmplaceObject(props.Object)
270
- }
271
- literal := property.Key.GetSoleLiteral()
272
- key := ""
273
- if literal != nil {
274
- key = *literal
275
- }
276
- block := protobufEncodeProgrammer_decode_property(protobufEncodeProgrammer_decodePropertyProps{
277
- Context: props.Context,
278
- Functor: props.Functor,
279
- Explore: props.Explore,
280
- Metadata: property.Value,
281
- Protobuf: property.Of_protobuf_,
282
- Input: nativefactories.IdentifierFactory.Access(props.Context.Emit, props.Input, key),
283
- })
284
- body = append(body, f.NewExpressionStatement(
285
- f.NewIdentifier("// property "+fmt.Sprintf("%q", key)+": "+property.Value.GetName()),
286
- ))
287
- body = append(body, block.Statements()...)
288
- }
289
- if guarded {
290
- slot := "_vctx." + nativeinternal.FeatureProgrammer.VisitKey(protobufEncodeProgrammer_PREFIX, "o", props.Object.Index)
291
- body = append(body, f.NewExpressionStatement(f.NewIdentifier(slot+".delete(input)")))
292
- }
293
- return f.NewArrowFunction(
294
- nil,
295
- nil,
296
- f.NewNodeList([]*shimast.Node{
297
- nativefactories.IdentifierFactory.Parameter("input", nil, nil, props.Context.Emit),
298
- }),
299
- nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
300
- nil,
301
- f.NewToken(shimast.KindEqualsGreaterThanToken),
302
- f.NewBlock(f.NewNodeList(body), true),
303
- )
304
- }
305
-
306
- type protobufEncodeProgrammer_decodePropertyProps struct {
307
- Context nativecontext.ITypiaContext
308
- Functor *nativehelpers.FunctionProgrammer
309
- Metadata *schemametadata.MetadataSchema
310
- Protobuf *schemaprotobuf.IProtobufProperty
311
- Input *shimast.Node
312
- Explore nativeinternal.FeatureProgrammer_IExplore
313
- }
314
-
315
- func protobufEncodeProgrammer_decode_property(props protobufEncodeProgrammer_decodePropertyProps) *shimast.Node {
316
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
317
- union := []protobufEncodeProgrammer_IUnion{}
318
- for _, schema := range props.Protobuf.Union {
319
- switch typed := schema.(type) {
320
- case *schemaprotobuf.IProtobufPropertyType_IBoolean:
321
- index := typed.Index
322
- union = append(union, protobufEncodeProgrammer_IUnion{
323
- Is: func() *shimast.Node {
324
- return protobufEncodeProgrammer_strict_equal(
325
- f.NewStringLiteral("boolean", shimast.TokenFlagsNone),
326
- f.NewTypeOfExpression(props.Input),
327
- props.Context.Emit,
328
- )
329
- },
330
- Value: func() *shimast.Node {
331
- return protobufEncodeProgrammer_decode_bool(struct {
332
- Input *shimast.Node
333
- Index *int
334
- }{Input: props.Input, Index: index}, props.Context.Emit)
335
- },
336
- })
337
- case *schemaprotobuf.IProtobufPropertyType_IBigint:
338
- union = append(union, protobufEncodeProgrammer_decode_bigint(struct {
339
- Candidates []string
340
- Type string
341
- Input *shimast.Node
342
- Index *int
343
- }{
344
- Input: props.Input,
345
- Type: typed.Name,
346
- Candidates: protobufEncodeProgrammer_bigintCandidates(props.Protobuf.Union),
347
- Index: typed.Index,
348
- }, props.Context.Emit))
349
- case *schemaprotobuf.IProtobufPropertyType_INumber:
350
- union = append(union, protobufEncodeProgrammer_decode_number(struct {
351
- Candidates []string
352
- Type string
353
- Input *shimast.Node
354
- Index *int
355
- }{
356
- Input: props.Input,
357
- Type: typed.Name,
358
- Candidates: protobufEncodeProgrammer_numberCandidates(props.Protobuf.Union),
359
- Index: typed.Index,
360
- }, props.Context.Emit))
361
- case *schemaprotobuf.IProtobufPropertyType_IString:
362
- index := typed.Index
363
- union = append(union, protobufEncodeProgrammer_IUnion{
364
- Is: func() *shimast.Node {
365
- return protobufEncodeProgrammer_strict_equal(
366
- f.NewStringLiteral("string", shimast.TokenFlagsNone),
367
- f.NewTypeOfExpression(props.Input),
368
- props.Context.Emit,
369
- )
370
- },
371
- Value: func() *shimast.Node {
372
- return protobufEncodeProgrammer_decode_bytes(struct {
373
- Method string
374
- Index int
375
- Input *shimast.Node
376
- }{Method: "string", Index: protobufEncodeProgrammer_indexValue(index), Input: props.Input}, props.Context.Emit)
377
- },
378
- })
379
- case *schemaprotobuf.IProtobufPropertyType_IByte:
380
- index := typed.Index
381
- union = append(union, protobufEncodeProgrammer_IUnion{
382
- Is: func() *shimast.Node {
383
- return nativefactories.ExpressionFactory.IsInstanceOf("Uint8Array", props.Input, props.Context.Emit)
384
- },
385
- Value: func() *shimast.Node {
386
- return protobufEncodeProgrammer_decode_bytes(struct {
387
- Method string
388
- Index int
389
- Input *shimast.Node
390
- }{Method: "bytes", Index: protobufEncodeProgrammer_indexValue(index), Input: props.Input}, props.Context.Emit)
391
- },
392
- })
393
- case *schemaprotobuf.IProtobufPropertyType_IArray:
394
- array := typed
395
- union = append(union, protobufEncodeProgrammer_IUnion{
396
- Is: func() *shimast.Node {
397
- return nativefactories.ExpressionFactory.IsArray(props.Input, props.Context.Emit)
398
- },
399
- Value: func() *shimast.Node {
400
- return protobufEncodeProgrammer_decode_array(protobufEncodeProgrammer_decodeArrayProps{
401
- Context: props.Context,
402
- Functor: props.Functor,
403
- Input: props.Input,
404
- Schema: array,
405
- })
406
- },
407
- })
408
- case *schemaprotobuf.IProtobufPropertyType_IMap:
409
- if _, ok := typed.Map.(*schemametadata.MetadataMap); ok {
410
- mapSchema := typed
411
- union = append(union, protobufEncodeProgrammer_IUnion{
412
- Is: func() *shimast.Node {
413
- return nativefactories.ExpressionFactory.IsInstanceOf("Map", props.Input, props.Context.Emit)
414
- },
415
- Value: func() *shimast.Node {
416
- return protobufEncodeProgrammer_decode_map(protobufEncodeProgrammer_decodeMapProps{
417
- Context: props.Context,
418
- Functor: props.Functor,
419
- Schema: mapSchema,
420
- Input: props.Input,
421
- })
422
- },
423
- })
424
- }
425
- }
426
- objectSchemas := protobufEncodeProgrammer_objectSchemas(props.Protobuf.Union)
427
- if len(objectSchemas) != 0 {
428
- schemas := objectSchemas
429
- union = append(union, protobufEncodeProgrammer_IUnion{
430
- Is: func() *shimast.Node {
431
- return nativefactories.ExpressionFactory.IsObject(nativefactories.ExpressionFactory_IsObjectProps{
432
- CheckNull: true,
433
- CheckArray: false,
434
- Input: props.Input,
435
- }, props.Context.Emit)
436
- },
437
- Value: func() *shimast.Node {
438
- explore := props.Explore
439
- explore.From = "object"
440
- return protobufEncodeProgrammer_explore_objects(protobufEncodeProgrammer_exploreObjectsProps{
441
- Context: props.Context,
442
- Functor: props.Functor,
443
- Level: 0,
444
- Schemas: schemas,
445
- Explore: explore,
446
- Input: props.Input,
447
- })
448
- },
449
- })
450
- }
451
- }
452
-
453
- wrapper := func(block *shimast.Node) *shimast.Node { return block }
454
- required := props.Metadata.IsRequired()
455
- if required && props.Metadata.Nullable == false {
456
- wrapper = func(block *shimast.Node) *shimast.Node { return block }
457
- } else if required == false && props.Metadata.Nullable {
458
- wrapper = func(block *shimast.Node) *shimast.Node {
459
- return f.NewBlock(f.NewNodeList([]*shimast.Node{
460
- f.NewIfStatement(
461
- protobufEncodeProgrammer_logical_and(
462
- protobufEncodeProgrammer_strict_not_equal(f.NewIdentifier("undefined"), props.Input, props.Context.Emit),
463
- protobufEncodeProgrammer_strict_not_equal(f.NewKeywordExpression(shimast.KindNullKeyword), props.Input, props.Context.Emit),
464
- props.Context.Emit,
465
- ),
466
- block,
467
- nil,
468
- ),
469
- }), true)
470
- }
471
- } else if required == false {
472
- wrapper = func(block *shimast.Node) *shimast.Node {
473
- return f.NewBlock(f.NewNodeList([]*shimast.Node{
474
- f.NewIfStatement(
475
- protobufEncodeProgrammer_strict_not_equal(f.NewIdentifier("undefined"), props.Input, props.Context.Emit),
476
- block,
477
- nil,
478
- ),
479
- }), true)
480
- }
481
- } else {
482
- wrapper = func(block *shimast.Node) *shimast.Node {
483
- return f.NewBlock(f.NewNodeList([]*shimast.Node{
484
- f.NewIfStatement(
485
- protobufEncodeProgrammer_strict_not_equal(f.NewKeywordExpression(shimast.KindNullKeyword), props.Input, props.Context.Emit),
486
- block,
487
- nil,
488
- ),
489
- }), true)
490
- }
491
- }
492
- if len(union) == 0 {
493
- return wrapper(f.NewBlock(f.NewNodeList(nil), true))
494
- }
495
- if len(union) == 1 {
496
- return wrapper(union[0].Value())
497
- }
498
- condition := protobufEncodeProgrammer_chainUnion(union, props.Context, props.Functor, props.Input, props.Metadata.GetName())
499
- return wrapper(f.NewBlock(f.NewNodeList([]*shimast.Node{condition}), true))
500
- }
501
-
502
- func protobufEncodeProgrammer_decode_bool(props struct {
503
- Input *shimast.Node
504
- Index *int
505
- }, emit *shimprinter.EmitContext) *shimast.Node {
506
- expressions := []*shimast.Node{}
507
- if props.Index != nil {
508
- expressions = append(expressions, protobufEncodeProgrammer_decode_tag(struct {
509
- Wire nativehelpers.ProtobufWire
510
- Index int
511
- }{Wire: nativehelpers.VARIANT, Index: *props.Index}, emit))
512
- }
513
- expressions = append(expressions, protobufEncodeProgrammer_callWriter("bool", []*shimast.Node{props.Input}, emit))
514
- return protobufEncodeProgrammer_expressionBlock(expressions, emit)
515
- }
516
-
517
- func protobufEncodeProgrammer_decode_bigint(props struct {
518
- Candidates []string
519
- Type string
520
- Input *shimast.Node
521
- Index *int
522
- }, emit *shimprinter.EmitContext) protobufEncodeProgrammer_IUnion {
523
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, emit)
524
- return protobufEncodeProgrammer_IUnion{
525
- Is: func() *shimast.Node {
526
- typeof := protobufEncodeProgrammer_strict_equal(
527
- f.NewStringLiteral("bigint", shimast.TokenFlagsNone),
528
- f.NewTypeOfExpression(props.Input),
529
- emit,
530
- )
531
- if len(props.Candidates) == 1 {
532
- return typeof
533
- }
534
- return protobufEncodeProgrammer_logical_and(typeof, nativefactories.NumericRangeFactory.Bigint(props.Type, props.Input), emit)
535
- },
536
- Value: func() *shimast.Node {
537
- expressions := []*shimast.Node{}
538
- if props.Index != nil {
539
- expressions = append(expressions, protobufEncodeProgrammer_decode_tag(struct {
540
- Wire nativehelpers.ProtobufWire
541
- Index int
542
- }{Wire: nativehelpers.VARIANT, Index: *props.Index}, emit))
543
- }
544
- expressions = append(expressions, protobufEncodeProgrammer_callWriter(props.Type, []*shimast.Node{props.Input}, emit))
545
- return protobufEncodeProgrammer_expressionBlock(expressions, emit)
546
- },
547
- }
548
- }
549
-
550
- func protobufEncodeProgrammer_decode_number(props struct {
551
- Candidates []string
552
- Type string
553
- Input *shimast.Node
554
- Index *int
555
- }, emit *shimprinter.EmitContext) protobufEncodeProgrammer_IUnion {
556
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, emit)
557
- return protobufEncodeProgrammer_IUnion{
558
- Is: func() *shimast.Node {
559
- typeof := protobufEncodeProgrammer_strict_equal(
560
- f.NewStringLiteral("number", shimast.TokenFlagsNone),
561
- f.NewTypeOfExpression(props.Input),
562
- emit,
563
- )
564
- if len(props.Candidates) == 1 {
565
- return typeof
566
- }
567
- return protobufEncodeProgrammer_logical_and(typeof, nativefactories.NumericRangeFactory.Number(props.Type, props.Input), emit)
568
- },
569
- Value: func() *shimast.Node {
570
- expressions := []*shimast.Node{}
571
- if props.Index != nil {
572
- expressions = append(expressions, protobufEncodeProgrammer_decode_tag(struct {
573
- Wire nativehelpers.ProtobufWire
574
- Index int
575
- }{Wire: protobufEncodeProgrammer_get_numeric_wire(props.Type), Index: *props.Index}, emit))
576
- }
577
- expressions = append(expressions, protobufEncodeProgrammer_callWriter(props.Type, []*shimast.Node{props.Input}, emit))
578
- return protobufEncodeProgrammer_expressionBlock(expressions, emit)
579
- },
580
- }
581
- }
582
-
583
- func protobufEncodeProgrammer_decode_container_value(props struct {
584
- Context nativecontext.ITypiaContext
585
- Functor *nativehelpers.FunctionProgrammer
586
- Schema schemaprotobuf.IProtobufSchema
587
- Index int
588
- Kind string
589
- Input *shimast.Node
590
- }) *shimast.Node {
591
- switch schema := props.Schema.(type) {
592
- case *schemaprotobuf.IProtobufPropertyType_IBoolean:
593
- return protobufEncodeProgrammer_decode_bool(struct {
594
- Input *shimast.Node
595
- Index *int
596
- }{Input: props.Input, Index: protobufEncodeProgrammer_containerIndex(props.Kind, props.Index)}, props.Context.Emit)
597
- case schemaprotobuf.IProtobufSchema_IBoolean:
598
- return protobufEncodeProgrammer_decode_bool(struct {
599
- Input *shimast.Node
600
- Index *int
601
- }{Input: props.Input, Index: protobufEncodeProgrammer_containerIndex(props.Kind, props.Index)}, props.Context.Emit)
602
- case *schemaprotobuf.IProtobufPropertyType_IBigint:
603
- return protobufEncodeProgrammer_decode_bigint(struct {
604
- Candidates []string
605
- Type string
606
- Input *shimast.Node
607
- Index *int
608
- }{Input: props.Input, Type: schema.Name, Candidates: []string{schema.Name}, Index: protobufEncodeProgrammer_containerIndex(props.Kind, props.Index)}, props.Context.Emit).Value()
609
- case schemaprotobuf.IProtobufSchema_IBigint:
610
- return protobufEncodeProgrammer_decode_bigint(struct {
611
- Candidates []string
612
- Type string
613
- Input *shimast.Node
614
- Index *int
615
- }{Input: props.Input, Type: schema.Name, Candidates: []string{schema.Name}, Index: protobufEncodeProgrammer_containerIndex(props.Kind, props.Index)}, props.Context.Emit).Value()
616
- case *schemaprotobuf.IProtobufPropertyType_INumber:
617
- return protobufEncodeProgrammer_decode_number(struct {
618
- Candidates []string
619
- Type string
620
- Input *shimast.Node
621
- Index *int
622
- }{Input: props.Input, Type: schema.Name, Candidates: []string{schema.Name}, Index: protobufEncodeProgrammer_containerIndex(props.Kind, props.Index)}, props.Context.Emit).Value()
623
- case schemaprotobuf.IProtobufSchema_INumber:
624
- return protobufEncodeProgrammer_decode_number(struct {
625
- Candidates []string
626
- Type string
627
- Input *shimast.Node
628
- Index *int
629
- }{Input: props.Input, Type: schema.Name, Candidates: []string{schema.Name}, Index: protobufEncodeProgrammer_containerIndex(props.Kind, props.Index)}, props.Context.Emit).Value()
630
- }
631
- if protobufEncodeProgrammer_schemaType(props.Schema) == "string" || protobufEncodeProgrammer_schemaType(props.Schema) == "bytes" {
632
- return protobufEncodeProgrammer_decode_bytes(struct {
633
- Method string
634
- Index int
635
- Input *shimast.Node
636
- }{Method: protobufEncodeProgrammer_schemaType(props.Schema), Input: props.Input, Index: props.Index}, props.Context.Emit)
637
- }
638
- return protobufEncodeProgrammer_decode_object(protobufEncodeProgrammer_decodeObjectProps{
639
- Context: props.Context,
640
- Functor: props.Functor,
641
- Schema: props.Schema,
642
- Input: props.Input,
643
- Index: props.Index,
644
- })
645
- }
646
-
647
- func protobufEncodeProgrammer_decode_bytes(props struct {
648
- Method string
649
- Index int
650
- Input *shimast.Node
651
- }, emit *shimprinter.EmitContext) *shimast.Node {
652
- return protobufEncodeProgrammer_expressionBlock([]*shimast.Node{
653
- protobufEncodeProgrammer_decode_tag(struct {
654
- Wire nativehelpers.ProtobufWire
655
- Index int
656
- }{Wire: nativehelpers.LEN, Index: props.Index}, emit),
657
- protobufEncodeProgrammer_callWriter(props.Method, []*shimast.Node{props.Input}, emit),
658
- }, emit)
659
- }
660
-
661
- type protobufEncodeProgrammer_decodeArrayProps struct {
662
- Context nativecontext.ITypiaContext
663
- Functor *nativehelpers.FunctionProgrammer
664
- Schema *schemaprotobuf.IProtobufPropertyType_IArray
665
- Input *shimast.Node
666
- }
667
-
668
- func protobufEncodeProgrammer_decode_array(props protobufEncodeProgrammer_decodeArrayProps) *shimast.Node {
669
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
670
- value := props.Schema.Value
671
- wire := nativehelpers.VARIANT
672
- if protobufEncodeProgrammer_schemaType(value) == "object" || protobufEncodeProgrammer_schemaType(value) == "bytes" || protobufEncodeProgrammer_schemaType(value) == "string" {
673
- wire = nativehelpers.LEN
674
- } else if number, ok := protobufEncodeProgrammer_numberSchema(value); ok && number == "float" {
675
- wire = nativehelpers.I32
676
- }
677
- forLoop := func() *shimast.Node {
678
- return f.NewForInOrOfStatement(
679
- shimast.KindForOfStatement,
680
- nil,
681
- f.NewVariableDeclarationList(
682
- f.NewNodeList([]*shimast.Node{
683
- f.NewVariableDeclaration(f.NewIdentifier("elem"), nil, nil, nil),
684
- }),
685
- shimast.NodeFlagsConst,
686
- ),
687
- props.Input,
688
- protobufEncodeProgrammer_decode_container_value(struct {
689
- Context nativecontext.ITypiaContext
690
- Functor *nativehelpers.FunctionProgrammer
691
- Schema schemaprotobuf.IProtobufSchema
692
- Index int
693
- Kind string
694
- Input *shimast.Node
695
- }{
696
- Kind: "array",
697
- Context: props.Context,
698
- Functor: props.Functor,
699
- Input: f.NewIdentifier("elem"),
700
- Index: protobufEncodeProgrammer_indexValue(props.Schema.Index),
701
- Schema: props.Schema.Value,
702
- }),
703
- )
704
- }
705
- length := func(block *shimast.Node) *shimast.Node {
706
- return f.NewBlock(f.NewNodeList([]*shimast.Node{
707
- f.NewIfStatement(
708
- protobufEncodeProgrammer_strict_not_equal(
709
- nativefactories.ExpressionFactory.Number(0, props.Context.Emit),
710
- nativefactories.IdentifierFactory.Access(props.Context.Emit, props.Input, "length"),
711
- props.Context.Emit,
712
- ),
713
- block,
714
- nil,
715
- ),
716
- }), true)
717
- }
718
- if wire == nativehelpers.LEN {
719
- return length(f.NewBlock(f.NewNodeList([]*shimast.Node{forLoop()}), true))
720
- }
721
- return length(f.NewBlock(f.NewNodeList([]*shimast.Node{
722
- f.NewExpressionStatement(protobufEncodeProgrammer_decode_tag(struct {
723
- Wire nativehelpers.ProtobufWire
724
- Index int
725
- }{Wire: nativehelpers.LEN, Index: protobufEncodeProgrammer_indexValue(props.Schema.Index)}, props.Context.Emit)),
726
- f.NewExpressionStatement(protobufEncodeProgrammer_callWriter("fork", nil, props.Context.Emit)),
727
- forLoop(),
728
- f.NewExpressionStatement(protobufEncodeProgrammer_callWriter("ldelim", nil, props.Context.Emit)),
729
- }), true))
730
- }
731
-
732
- type protobufEncodeProgrammer_decodeObjectProps struct {
733
- Context nativecontext.ITypiaContext
734
- Functor *nativehelpers.FunctionProgrammer
735
- Schema schemaprotobuf.IProtobufSchema
736
- Index int
737
- Input *shimast.Node
738
- }
739
-
740
- func protobufEncodeProgrammer_decode_object(props protobufEncodeProgrammer_decodeObjectProps) *shimast.Node {
741
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
742
- object := protobufEncodeProgrammer_objectSchema(props.Schema)
743
- objectIndex := 0
744
- if object != nil {
745
- objectIndex = object.Index
746
- }
747
- return protobufEncodeProgrammer_expressionBlock([]*shimast.Node{
748
- protobufEncodeProgrammer_decode_tag(struct {
749
- Wire nativehelpers.ProtobufWire
750
- Index int
751
- }{Wire: nativehelpers.LEN, Index: props.Index}, props.Context.Emit),
752
- protobufEncodeProgrammer_callWriter("fork", nil, props.Context.Emit),
753
- f.NewCallExpression(
754
- f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%so%d", protobufEncodeProgrammer_PREFIX, objectIndex))),
755
- nil,
756
- nil,
757
- f.NewNodeList([]*shimast.Node{props.Input}),
758
- shimast.NodeFlagsNone,
759
- ),
760
- protobufEncodeProgrammer_callWriter("ldelim", nil, props.Context.Emit),
761
- }, props.Context.Emit)
762
- }
763
-
764
- type protobufEncodeProgrammer_decodeMapProps struct {
765
- Context nativecontext.ITypiaContext
766
- Functor *nativehelpers.FunctionProgrammer
767
- Schema *schemaprotobuf.IProtobufPropertyType_IMap
768
- Input *shimast.Node
769
- }
770
-
771
- func protobufEncodeProgrammer_decode_map(props protobufEncodeProgrammer_decodeMapProps) *shimast.Node {
772
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
773
- each := []*shimast.Node{
774
- f.NewExpressionStatement(protobufEncodeProgrammer_decode_tag(struct {
775
- Wire nativehelpers.ProtobufWire
776
- Index int
777
- }{Wire: nativehelpers.LEN, Index: protobufEncodeProgrammer_indexValue(props.Schema.Index)}, props.Context.Emit)),
778
- f.NewExpressionStatement(protobufEncodeProgrammer_callWriter("fork", nil, props.Context.Emit)),
779
- }
780
- keyBlock := protobufEncodeProgrammer_decode_container_value(struct {
781
- Context nativecontext.ITypiaContext
782
- Functor *nativehelpers.FunctionProgrammer
783
- Schema schemaprotobuf.IProtobufSchema
784
- Index int
785
- Kind string
786
- Input *shimast.Node
787
- }{Kind: "map", Context: props.Context, Functor: props.Functor, Index: 1, Input: f.NewIdentifier("key"), Schema: props.Schema.Key})
788
- valueBlock := protobufEncodeProgrammer_decode_container_value(struct {
789
- Context nativecontext.ITypiaContext
790
- Functor *nativehelpers.FunctionProgrammer
791
- Schema schemaprotobuf.IProtobufSchema
792
- Index int
793
- Kind string
794
- Input *shimast.Node
795
- }{Kind: "map", Context: props.Context, Functor: props.Functor, Index: 2, Input: f.NewIdentifier("value"), Schema: props.Schema.Value})
796
- each = append(each, keyBlock.Statements()...)
797
- each = append(each, valueBlock.Statements()...)
798
- each = append(each, f.NewExpressionStatement(protobufEncodeProgrammer_callWriter("ldelim", nil, props.Context.Emit)))
799
- return f.NewBlock(f.NewNodeList([]*shimast.Node{
800
- f.NewForInOrOfStatement(
801
- shimast.KindForOfStatement,
802
- nil,
803
- nativefactories.StatementFactory.Entry(nativefactories.StatementFactory_EntryProps{Key: "key", Value: "value"}, props.Context.Emit),
804
- props.Input,
805
- f.NewBlock(f.NewNodeList(each), true),
806
- ),
807
- }), true)
808
- }
809
-
810
- type protobufEncodeProgrammer_exploreObjectsProps struct {
811
- Context nativecontext.ITypiaContext
812
- Functor *nativehelpers.FunctionProgrammer
813
- Level int
814
- Input *shimast.Node
815
- Schemas []schemaprotobuf.IProtobufPropertyType
816
- Explore nativeinternal.FeatureProgrammer_IExplore
817
- }
818
-
819
- func protobufEncodeProgrammer_explore_objects(props protobufEncodeProgrammer_exploreObjectsProps) *shimast.Node {
820
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
821
- out := func(schema schemaprotobuf.IProtobufPropertyType) *shimast.Node {
822
- if protobufEncodeProgrammer_schemaType(schema) == "object" {
823
- return protobufEncodeProgrammer_decode_object(protobufEncodeProgrammer_decodeObjectProps{
824
- Context: props.Context,
825
- Functor: props.Functor,
826
- Schema: schema,
827
- Index: protobufEncodeProgrammer_indexValue(protobufEncodeProgrammer_propertyIndex(schema)),
828
- Input: props.Input,
829
- })
830
- }
831
- mapSchema, _ := schema.(*schemaprotobuf.IProtobufPropertyType_IMap)
832
- return protobufEncodeProgrammer_decode_map(protobufEncodeProgrammer_decodeMapProps{
833
- Context: props.Context,
834
- Functor: props.Functor,
835
- Schema: mapSchema,
836
- Input: f.NewCallExpression(
837
- nativefactories.IdentifierFactory.Access(props.Context.Emit, f.NewIdentifier("Object"), "entries"),
838
- nil,
839
- nil,
840
- f.NewNodeList([]*shimast.Node{props.Input}),
841
- shimast.NodeFlagsNone,
842
- ),
843
- })
844
- }
845
- if len(props.Schemas) == 1 {
846
- return out(props.Schemas[0])
847
- }
848
-
849
- objects := []*schemametadata.MetadataObjectType{}
850
- indexes := map[*schemametadata.MetadataObjectType]schemaprotobuf.IProtobufPropertyType{}
851
- for _, schema := range props.Schemas {
852
- object := protobufEncodeProgrammer_objectSchema(schema)
853
- if object == nil {
854
- continue
855
- }
856
- objects = append(objects, object)
857
- indexes[object] = schema
858
- }
859
- specifications := nativehelpers.UnionPredicator.Object(objects)
860
- if len(specifications) == 0 {
861
- condition := nativeiterate.Decode_union_object(nativeiterate.Decode_union_objectProps{
862
- Checker: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
863
- return nativeprogrammers.IsProgrammer.Decode_object(nativeprogrammers.IsProgrammer_DecodeObjectProps{
864
- Context: props.Context,
865
- Functor: props.Functor,
866
- Object: v.Object,
867
- Input: v.Input,
868
- Explore: protobufEncodeProgrammer_feature_explore(v.Explore),
869
- })
870
- },
871
- Decoder: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
872
- return nativefactories.ExpressionFactory.SelfCall(props.Context.Emit, out(indexes[v.Object]))
873
- },
874
- Success: func(expr *shimast.Expression) *shimast.Node {
875
- return expr
876
- },
877
- Escaper: func(v nativeiterate.Decode_union_object_escape) *shimast.Node {
878
- return protobufEncodeProgrammer_create_throw_error(protobufEncodeProgrammer_throwProps{
879
- Context: props.Context,
880
- Functor: props.Functor,
881
- Expected: v.Expected,
882
- Input: v.Input,
883
- })
884
- },
885
- Input: props.Input,
886
- Explore: props.Explore,
887
- Objects: objects,
888
- })
889
- return nativefactories.StatementFactory.Block(condition, props.Context.Emit)
890
- }
891
-
892
- remained := []*schemametadata.MetadataObjectType{}
893
- for _, object := range objects {
894
- found := false
895
- for _, spec := range specifications {
896
- if spec.Object == object {
897
- found = true
898
- break
899
- }
900
- }
901
- if found == false {
902
- remained = append(remained, object)
903
- }
904
- }
905
- expected := "("
906
- for i, object := range objects {
907
- if i != 0 {
908
- expected += " | "
909
- }
910
- expected += object.Name
911
- }
912
- expected += ")"
913
-
914
- statements := []*shimast.Node{}
915
- for i := len(specifications) - 1; i >= 0; i-- {
916
- spec := specifications[i]
917
- key := spec.Property.Key.GetSoleLiteral()
918
- if key == nil {
919
- continue
920
- }
921
- accessor := nativefactories.IdentifierFactory.Access(props.Context.Emit, props.Input, *key)
922
- var pred *shimast.Node
923
- if spec.Neighbor {
924
- explore := props.Explore
925
- explore.Tracable = false
926
- explore.Postfix = explore.Postfix + nativefactories.IdentifierFactory.Postfix(*key)
927
- pred = nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
928
- Context: props.Context,
929
- Functor: props.Functor,
930
- Input: accessor,
931
- Metadata: spec.Property.Value,
932
- Explore: protobufEncodeProgrammer_checker_explore(explore),
933
- })
934
- } else {
935
- pred = nativefactories.ExpressionFactory.IsRequired(accessor, props.Context.Emit)
936
- }
937
- var elseStatement *shimast.Node
938
- if i == len(specifications)-1 {
939
- if len(remained) != 0 {
940
- nextSchemas := []schemaprotobuf.IProtobufPropertyType{}
941
- for _, object := range remained {
942
- nextSchemas = append(nextSchemas, indexes[object])
943
- }
944
- elseStatement = f.NewExpressionStatement(
945
- nativefactories.ExpressionFactory.SelfCall(props.Context.Emit, protobufEncodeProgrammer_explore_objects(protobufEncodeProgrammer_exploreObjectsProps{
946
- Context: props.Context,
947
- Functor: props.Functor,
948
- Level: props.Level + 1,
949
- Input: props.Input,
950
- Schemas: nextSchemas,
951
- Explore: props.Explore,
952
- })),
953
- )
954
- } else {
955
- elseStatement = protobufEncodeProgrammer_create_throw_error(protobufEncodeProgrammer_throwProps{
956
- Context: props.Context,
957
- Functor: props.Functor,
958
- Input: props.Input,
959
- Expected: expected,
960
- })
961
- }
962
- }
963
- statement := f.NewIfStatement(
964
- pred,
965
- f.NewExpressionStatement(nativefactories.ExpressionFactory.SelfCall(props.Context.Emit, out(indexes[spec.Object]))),
966
- elseStatement,
967
- )
968
- if len(statements) == 0 {
969
- statements = append(statements, statement)
970
- } else {
971
- statements[0] = f.NewIfStatement(pred, f.NewExpressionStatement(nativefactories.ExpressionFactory.SelfCall(props.Context.Emit, out(indexes[spec.Object]))), statements[0])
972
- }
973
- }
974
- return f.NewBlock(f.NewNodeList(statements), true)
975
- }
976
-
977
- func protobufEncodeProgrammer_decode_tag(props struct {
978
- Wire nativehelpers.ProtobufWire
979
- Index int
980
- }, emit *shimprinter.EmitContext) *shimast.Node {
981
- return protobufEncodeProgrammer_callWriter("uint32", []*shimast.Node{
982
- nativefactories.ExpressionFactory.Number((props.Index<<3)|int(props.Wire), emit),
983
- }, emit)
984
- }
985
-
986
- func protobufEncodeProgrammer_get_numeric_wire(typ string) nativehelpers.ProtobufWire {
987
- if typ == "double" {
988
- return nativehelpers.I64
989
- }
990
- if typ == "float" {
991
- return nativehelpers.I32
992
- }
993
- return nativehelpers.VARIANT
994
- }
995
-
996
- type protobufEncodeProgrammer_throwProps struct {
997
- Context nativecontext.ITypiaContext
998
- Functor *nativehelpers.FunctionProgrammer
999
- Expected string
1000
- Input *shimast.Node
1001
- }
1002
-
1003
- func protobufEncodeProgrammer_create_throw_error(props protobufEncodeProgrammer_throwProps) *shimast.Node {
1004
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
1005
- return f.NewExpressionStatement(
1006
- f.NewCallExpression(
1007
- protobufEncodeProgrammer_internal(props.Context, "throwTypeGuardError"),
1008
- nil,
1009
- nil,
1010
- f.NewNodeList([]*shimast.Node{
1011
- f.NewObjectLiteralExpression(f.NewNodeList([]*shimast.Node{
1012
- f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("method", props.Context.Emit), nil, nil, f.NewStringLiteral(props.Functor.Method, shimast.TokenFlagsNone)),
1013
- f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("expected", props.Context.Emit), nil, nil, f.NewStringLiteral(props.Expected, shimast.TokenFlagsNone)),
1014
- f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("value", props.Context.Emit), nil, nil, props.Input),
1015
- }), true),
1016
- }),
1017
- shimast.NodeFlagsNone,
1018
- ),
1019
- )
1020
- }
1021
-
1022
- func protobufEncodeProgrammer_callWriter(method string, args []*shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
1023
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, emit)
1024
- return f.NewCallExpression(
1025
- nativefactories.IdentifierFactory.Access(emit, f.NewIdentifier("writer"), method),
1026
- nil,
1027
- nil,
1028
- f.NewNodeList(args),
1029
- shimast.NodeFlagsNone,
1030
- )
1031
- }
1032
-
1033
- func protobufEncodeProgrammer_expressionBlock(expressions []*shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
1034
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, emit)
1035
- statements := make([]*shimast.Node, 0, len(expressions))
1036
- for _, expr := range expressions {
1037
- statements = append(statements, f.NewExpressionStatement(expr))
1038
- }
1039
- return f.NewBlock(f.NewNodeList(statements), true)
1040
- }
1041
-
1042
- func protobufEncodeProgrammer_chainUnion(union []protobufEncodeProgrammer_IUnion, context nativecontext.ITypiaContext, functor *nativehelpers.FunctionProgrammer, input *shimast.Node, expected string) *shimast.Node {
1043
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, context.Emit)
1044
- var next *shimast.Node
1045
- for i := len(union) - 1; i >= 0; i-- {
1046
- var elseStatement *shimast.Node
1047
- if next != nil {
1048
- elseStatement = next
1049
- } else if i == len(union)-1 {
1050
- elseStatement = protobufEncodeProgrammer_create_throw_error(protobufEncodeProgrammer_throwProps{
1051
- Context: context,
1052
- Functor: functor,
1053
- Input: input,
1054
- Expected: expected,
1055
- })
1056
- }
1057
- next = f.NewIfStatement(
1058
- union[i].Is(),
1059
- union[i].Value(),
1060
- elseStatement,
1061
- )
1062
- }
1063
- return next
1064
- }
1065
-
1066
- func protobufEncodeProgrammer_strict_equal(left *shimast.Node, right *shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
1067
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, emit)
1068
- return f.NewBinaryExpression(nil, left, nil, f.NewToken(shimast.KindEqualsEqualsEqualsToken), right)
1069
- }
1070
-
1071
- func protobufEncodeProgrammer_strict_not_equal(left *shimast.Node, right *shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
1072
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, emit)
1073
- return f.NewBinaryExpression(nil, left, nil, f.NewToken(shimast.KindExclamationEqualsEqualsToken), right)
1074
- }
1075
-
1076
- func protobufEncodeProgrammer_logical_and(left *shimast.Node, right *shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
1077
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, emit)
1078
- return f.NewBinaryExpression(nil, left, nil, f.NewToken(shimast.KindAmpersandAmpersandToken), right)
1079
- }
1080
-
1081
- func protobufEncodeProgrammer_containerIndex(kind string, index int) *int {
1082
- if kind == "array" {
1083
- return nil
1084
- }
1085
- return &index
1086
- }
1087
-
1088
- func protobufEncodeProgrammer_indexValue(index *int) int {
1089
- if index == nil {
1090
- return 0
1091
- }
1092
- return *index
1093
- }
1094
-
1095
- func protobufEncodeProgrammer_propertyIndex(schema schemaprotobuf.IProtobufPropertyType) *int {
1096
- switch typed := schema.(type) {
1097
- case *schemaprotobuf.IProtobufPropertyType_IByte:
1098
- return typed.Index
1099
- case *schemaprotobuf.IProtobufPropertyType_IBoolean:
1100
- return typed.Index
1101
- case *schemaprotobuf.IProtobufPropertyType_IBigint:
1102
- return typed.Index
1103
- case *schemaprotobuf.IProtobufPropertyType_INumber:
1104
- return typed.Index
1105
- case *schemaprotobuf.IProtobufPropertyType_IString:
1106
- return typed.Index
1107
- case *schemaprotobuf.IProtobufPropertyType_IArray:
1108
- return typed.Index
1109
- case *schemaprotobuf.IProtobufPropertyType_IObject:
1110
- return typed.Index
1111
- case *schemaprotobuf.IProtobufPropertyType_IMap:
1112
- return typed.Index
1113
- default:
1114
- return nil
1115
- }
1116
- }
1117
-
1118
- func protobufEncodeProgrammer_schemaType(schema schemaprotobuf.IProtobufSchema) string {
1119
- switch typed := schema.(type) {
1120
- case *schemaprotobuf.IProtobufPropertyType_IByte:
1121
- return typed.Type
1122
- case *schemaprotobuf.IProtobufPropertyType_IBoolean:
1123
- return typed.Type
1124
- case *schemaprotobuf.IProtobufPropertyType_IBigint:
1125
- return typed.Type
1126
- case *schemaprotobuf.IProtobufPropertyType_INumber:
1127
- return typed.Type
1128
- case *schemaprotobuf.IProtobufPropertyType_IString:
1129
- return typed.Type
1130
- case *schemaprotobuf.IProtobufPropertyType_IArray:
1131
- return typed.Type
1132
- case *schemaprotobuf.IProtobufPropertyType_IObject:
1133
- return typed.Type
1134
- case *schemaprotobuf.IProtobufPropertyType_IMap:
1135
- return typed.Type
1136
- case schemaprotobuf.IProtobufSchema_IByte:
1137
- return typed.Type
1138
- case schemaprotobuf.IProtobufSchema_IBoolean:
1139
- return typed.Type
1140
- case schemaprotobuf.IProtobufSchema_IBigint:
1141
- return typed.Type
1142
- case schemaprotobuf.IProtobufSchema_INumber:
1143
- return typed.Type
1144
- case schemaprotobuf.IProtobufSchema_IString:
1145
- return typed.Type
1146
- case schemaprotobuf.IProtobufSchema_IArray:
1147
- return typed.Type
1148
- case schemaprotobuf.IProtobufSchema_IObject:
1149
- return typed.Type
1150
- case schemaprotobuf.IProtobufSchema_IMap:
1151
- return typed.Type
1152
- default:
1153
- return ""
1154
- }
1155
- }
1156
-
1157
- func protobufEncodeProgrammer_numberSchema(schema schemaprotobuf.IProtobufSchema) (string, bool) {
1158
- switch typed := schema.(type) {
1159
- case *schemaprotobuf.IProtobufPropertyType_INumber:
1160
- return typed.Name, true
1161
- case schemaprotobuf.IProtobufSchema_INumber:
1162
- return typed.Name, true
1163
- default:
1164
- return "", false
1165
- }
1166
- }
1167
-
1168
- func protobufEncodeProgrammer_objectSchema(schema schemaprotobuf.IProtobufSchema) *schemametadata.MetadataObjectType {
1169
- switch typed := schema.(type) {
1170
- case *schemaprotobuf.IProtobufPropertyType_IObject:
1171
- if obj, ok := typed.Object.(*schemametadata.MetadataObjectType); ok {
1172
- return obj
1173
- }
1174
- case schemaprotobuf.IProtobufSchema_IObject:
1175
- if obj, ok := typed.Object.(*schemametadata.MetadataObjectType); ok {
1176
- return obj
1177
- }
1178
- case *schemaprotobuf.IProtobufPropertyType_IMap:
1179
- if obj, ok := typed.Map.(*schemametadata.MetadataObjectType); ok {
1180
- return obj
1181
- }
1182
- case schemaprotobuf.IProtobufSchema_IMap:
1183
- if obj, ok := typed.Map.(*schemametadata.MetadataObjectType); ok {
1184
- return obj
1185
- }
1186
- }
1187
- return nil
1188
- }
1189
-
1190
- func protobufEncodeProgrammer_objectSchemas(union []schemaprotobuf.IProtobufPropertyType) []schemaprotobuf.IProtobufPropertyType {
1191
- output := []schemaprotobuf.IProtobufPropertyType{}
1192
- for _, schema := range union {
1193
- if protobufEncodeProgrammer_schemaType(schema) == "object" {
1194
- output = append(output, schema)
1195
- continue
1196
- }
1197
- if mapSchema, ok := schema.(*schemaprotobuf.IProtobufPropertyType_IMap); ok {
1198
- if _, ok := mapSchema.Map.(*schemametadata.MetadataObjectType); ok {
1199
- output = append(output, schema)
1200
- }
1201
- }
1202
- }
1203
- return output
1204
- }
1205
-
1206
- func protobufEncodeProgrammer_bigintCandidates(union []schemaprotobuf.IProtobufPropertyType) []string {
1207
- output := []string{}
1208
- for _, schema := range union {
1209
- if typed, ok := schema.(*schemaprotobuf.IProtobufPropertyType_IBigint); ok {
1210
- output = append(output, typed.Name)
1211
- }
1212
- }
1213
- return output
1214
- }
1215
-
1216
- func protobufEncodeProgrammer_numberCandidates(union []schemaprotobuf.IProtobufPropertyType) []string {
1217
- output := []string{}
1218
- for _, schema := range union {
1219
- if typed, ok := schema.(*schemaprotobuf.IProtobufPropertyType_INumber); ok {
1220
- output = append(output, typed.Name)
1221
- }
1222
- }
1223
- return output
1224
- }
1225
-
1226
- func protobufEncodeProgrammer_feature_explore(input any) nativeinternal.FeatureProgrammer_IExplore {
1227
- switch typed := input.(type) {
1228
- case nativeinternal.FeatureProgrammer_IExplore:
1229
- return typed
1230
- case *nativeinternal.FeatureProgrammer_IExplore:
1231
- return *typed
1232
- default:
1233
- return nativeinternal.FeatureProgrammer_IExplore{}
1234
- }
1235
- }
1236
-
1237
- func protobufEncodeProgrammer_checker_explore(input any) nativeinternal.CheckerProgrammer_IExplore {
1238
- value := protobufEncodeProgrammer_feature_explore(input)
1239
- return nativeinternal.CheckerProgrammer_IExplore{
1240
- Tracable: value.Tracable,
1241
- Source: value.Source,
1242
- From: value.From,
1243
- Postfix: value.Postfix,
1244
- Start: value.Start,
1245
- }
1246
- }
1247
-
1248
- func protobufEncodeProgrammer_import_type(context nativecontext.ITypiaContext, props nativecontext.ImportProgrammer_TypeProps) *shimast.Node {
1249
- if importer := context.Importer; importer != nil {
1250
- return importer.Type(props)
1251
- }
1252
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, context.Emit)
1253
- if str, ok := props.Name.(string); ok {
1254
- return f.NewTypeReferenceNode(f.NewIdentifier(str), f.NewNodeList(props.Arguments))
1255
- }
1256
- return props.Name.(*shimast.Node)
1257
- }
1258
-
1259
- func protobufEncodeProgrammer_internal(context nativecontext.ITypiaContext, name string) *shimast.Node {
1260
- if importer := context.Importer; importer != nil {
1261
- return importer.Internal(name)
1262
- }
1263
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, context.Emit)
1264
- return f.NewIdentifier(name)
1265
- }
1266
-
1267
- func protobufEncodeProgrammer_method_text(modulo *shimast.Node) string {
1268
- return nativehelpers.ModuloMethodText(modulo)
1269
- }
1
+ package protobuf
2
+
3
+ import (
4
+ "fmt"
5
+
6
+ shimast "github.com/microsoft/typescript-go/shim/ast"
7
+ shimchecker "github.com/microsoft/typescript-go/shim/checker"
8
+ shimprinter "github.com/microsoft/typescript-go/shim/printer"
9
+ nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
10
+ nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
11
+ nativeprogrammers "github.com/samchon/typia/packages/typia/native/core/programmers"
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
+ schemaprotobuf "github.com/samchon/typia/packages/typia/native/core/schemas/protobuf"
17
+ )
18
+
19
+ type protobufEncodeProgrammerNamespace struct{}
20
+
21
+ var ProtobufEncodeProgrammer = protobufEncodeProgrammerNamespace{}
22
+
23
+ type ProtobufEncodeProgrammer_IProps struct {
24
+ Context nativecontext.ITypiaContext
25
+ Modulo *shimast.Node
26
+ Type *shimchecker.Type
27
+ Name *string
28
+ Init *shimast.Node
29
+ }
30
+
31
+ type ProtobufEncodeProgrammer_DecomposeProps struct {
32
+ Context nativecontext.ITypiaContext
33
+ Modulo *shimast.Node
34
+ Functor *nativehelpers.FunctionProgrammer
35
+ Type *shimchecker.Type
36
+ Name *string
37
+ }
38
+
39
+ type protobufEncodeProgrammer_IUnion struct {
40
+ Is func() *shimast.Node
41
+ Value func() *shimast.Node
42
+ }
43
+
44
+ const protobufEncodeProgrammer_PREFIX = "_pe"
45
+
46
+ var protobufEncodeProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
47
+
48
+ func (protobufEncodeProgrammerNamespace) Decompose(props ProtobufEncodeProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
49
+ f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
50
+ collection := schemametadata.NewMetadataCollection()
51
+ metadata := nativefactories.ProtobufFactory.Metadata(nativefactories.ProtobufFactory_IProps{
52
+ Method: protobufEncodeProgrammer_method_text(props.Modulo),
53
+ Checker: props.Context.Checker,
54
+ Components: collection,
55
+ Type: props.Type,
56
+ })
57
+ if nativeinternal.FeatureProgrammer.CollectionRecursive(collection) {
58
+ props.Functor.SetVisited(true)
59
+ }
60
+ encoderFunctor := nativehelpers.NewFunctionProgrammer(protobufEncodeProgrammer_method_text(props.Modulo), props.Context.Emit)
61
+ encoderFunctor.SetVisited(props.Functor.Visited())
62
+
63
+ callEncoder := func(writer string, factory *shimast.Node) *shimast.Node {
64
+ return nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
65
+ Name: writer,
66
+ Value: f.NewCallExpression(
67
+ f.NewIdentifier("encoder"),
68
+ nil,
69
+ nil,
70
+ f.NewNodeList([]*shimast.Node{
71
+ factory,
72
+ f.NewIdentifier("input"),
73
+ }),
74
+ shimast.NodeFlagsNone,
75
+ ),
76
+ }, props.Context.Emit)
77
+ }
78
+ typeName := ""
79
+ if props.Name != nil {
80
+ typeName = *props.Name
81
+ } else {
82
+ typeName = nativefactories.TypeFactory.GetFullName(nativefactories.TypeFactory_GetFullNameProps{
83
+ Checker: props.Context.Checker,
84
+ Type: props.Type,
85
+ })
86
+ }
87
+ return nativeinternal.FeatureProgrammer_IDecomposed{
88
+ Functions: map[string]*shimast.Node{
89
+ "encoder": nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
90
+ Name: props.Functor.UseLocal("encoder"),
91
+ Value: protobufEncodeProgrammer_write_encoder(protobufEncodeProgrammer_writeEncoderProps{
92
+ Context: props.Context,
93
+ Functor: encoderFunctor,
94
+ Collection: collection,
95
+ Metadata: metadata,
96
+ }),
97
+ }, props.Context.Emit),
98
+ },
99
+ Statements: []*shimast.Node{},
100
+ Arrow: f.NewArrowFunction(
101
+ nil,
102
+ nil,
103
+ f.NewNodeList([]*shimast.Node{
104
+ nativefactories.IdentifierFactory.Parameter("input", f.NewTypeReferenceNode(f.NewIdentifier(typeName), nil), nil, props.Context.Emit),
105
+ }),
106
+ f.NewTypeReferenceNode(f.NewIdentifier("Uint8Array"), nil),
107
+ nil,
108
+ f.NewToken(shimast.KindEqualsGreaterThanToken),
109
+ f.NewBlock(f.NewNodeList([]*shimast.Node{
110
+ callEncoder("sizer", f.NewNewExpression(protobufEncodeProgrammer_internal(props.Context, "ProtobufSizer"), nil, f.NewNodeList(nil))),
111
+ callEncoder("writer", f.NewNewExpression(
112
+ protobufEncodeProgrammer_internal(props.Context, "ProtobufWriter"),
113
+ nil,
114
+ f.NewNodeList([]*shimast.Node{
115
+ f.NewIdentifier("sizer"),
116
+ }),
117
+ )),
118
+ f.NewReturnStatement(protobufEncodeProgrammer_callWriter("buffer", nil, props.Context.Emit)),
119
+ }), true),
120
+ ),
121
+ }
122
+ }
123
+
124
+ func (protobufEncodeProgrammerNamespace) Write(props ProtobufEncodeProgrammer_IProps) *shimast.Node {
125
+ functor := nativehelpers.NewFunctionProgrammer(protobufEncodeProgrammer_method_text(props.Modulo), props.Context.Emit)
126
+ result := ProtobufEncodeProgrammer.Decompose(ProtobufEncodeProgrammer_DecomposeProps{
127
+ Context: props.Context,
128
+ Modulo: props.Modulo,
129
+ Functor: functor,
130
+ Type: props.Type,
131
+ Name: props.Name,
132
+ })
133
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
134
+ Modulo: props.Modulo,
135
+ Functor: functor,
136
+ Result: result,
137
+ })
138
+ }
139
+
140
+ type protobufEncodeProgrammer_writeEncoderProps struct {
141
+ Context nativecontext.ITypiaContext
142
+ Functor *nativehelpers.FunctionProgrammer
143
+ Collection *schemametadata.MetadataCollection
144
+ Metadata *schemametadata.MetadataSchema
145
+ }
146
+
147
+ func protobufEncodeProgrammer_write_encoder(props protobufEncodeProgrammer_writeEncoderProps) *shimast.Node {
148
+ f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
149
+ functors := []*shimast.Node{}
150
+ for _, object := range props.Collection.Objects() {
151
+ if nativehelpers.ProtobufUtil.IsStaticObject(object) == false {
152
+ continue
153
+ }
154
+ functors = append(functors, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
155
+ Name: fmt.Sprintf("%so%d", protobufEncodeProgrammer_PREFIX, object.Index),
156
+ Value: protobufEncodeProgrammer_write_object_function(protobufEncodeProgrammer_writeObjectFunctionProps{
157
+ Context: props.Context,
158
+ Functor: props.Functor,
159
+ Input: f.NewIdentifier("input"),
160
+ Object: object,
161
+ Explore: nativeinternal.FeatureProgrammer_IExplore{
162
+ Source: "function",
163
+ From: "object",
164
+ Tracable: false,
165
+ Postfix: "",
166
+ },
167
+ }),
168
+ }, props.Context.Emit))
169
+ }
170
+ statements := []*shimast.Node{}
171
+ if props.Functor.Visited() {
172
+ // The encoder closure is created per invocation (once for the sizer
173
+ // pass, once for the writer pass), so a body-local visit context covers
174
+ // both the embedded is-functions — which thread it as their `_vctx`
175
+ // parameter — and the protobuf object guards, without changing any of
176
+ // the encoder's own function signatures.
177
+ statements = append(statements, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
178
+ Name: "_vctx",
179
+ Value: f.NewAsExpression(
180
+ f.NewObjectLiteralExpression(f.NewNodeList(nil), false),
181
+ nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
182
+ ),
183
+ }, props.Context.Emit))
184
+ }
185
+ checkers := nativeprogrammers.IsProgrammer.Write_function_statements(nativeprogrammers.IsProgrammer_WriteFunctionStatementsProps{
186
+ Context: props.Context,
187
+ Functor: props.Functor,
188
+ Collection: props.Collection,
189
+ })
190
+ statements = append(statements, props.Functor.Declare()...)
191
+ statements = append(statements, functors...)
192
+ statements = append(statements, checkers...)
193
+ index := 0
194
+ if len(props.Metadata.Objects) != 0 {
195
+ index = props.Metadata.Objects[0].Type.Index
196
+ }
197
+ statements = append(statements,
198
+ f.NewExpressionStatement(
199
+ f.NewCallExpression(
200
+ f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%so%d", protobufEncodeProgrammer_PREFIX, index))),
201
+ nil,
202
+ nil,
203
+ f.NewNodeList([]*shimast.Node{
204
+ f.NewIdentifier("input"),
205
+ }),
206
+ shimast.NodeFlagsNone,
207
+ ),
208
+ ),
209
+ f.NewReturnStatement(f.NewIdentifier("writer")),
210
+ )
211
+ return f.NewArrowFunction(
212
+ nil,
213
+ f.NewNodeList([]*shimast.Node{
214
+ f.NewTypeParameterDeclaration(
215
+ nil,
216
+ f.NewIdentifier("Writer"),
217
+ protobufEncodeProgrammer_import_type(props.Context, nativecontext.ImportProgrammer_TypeProps{
218
+ File: "typia/lib/internal/_IProtobufWriter",
219
+ Name: "_IProtobufWriter",
220
+ }),
221
+ nil,
222
+ nil,
223
+ ),
224
+ }),
225
+ f.NewNodeList([]*shimast.Node{
226
+ nativefactories.IdentifierFactory.Parameter("writer", f.NewTypeReferenceNode(f.NewIdentifier("Writer"), nil), nil, props.Context.Emit),
227
+ nativefactories.IdentifierFactory.Parameter("input", nil, nil, props.Context.Emit),
228
+ }),
229
+ f.NewTypeReferenceNode(f.NewIdentifier("Writer"), nil),
230
+ nil,
231
+ f.NewToken(shimast.KindEqualsGreaterThanToken),
232
+ f.NewBlock(f.NewNodeList(statements), true),
233
+ )
234
+ }
235
+
236
+ type protobufEncodeProgrammer_writeObjectFunctionProps struct {
237
+ Context nativecontext.ITypiaContext
238
+ Functor *nativehelpers.FunctionProgrammer
239
+ Input *shimast.Node
240
+ Object *schemametadata.MetadataObjectType
241
+ Explore nativeinternal.FeatureProgrammer_IExplore
242
+ }
243
+
244
+ func protobufEncodeProgrammer_write_object_function(props protobufEncodeProgrammer_writeObjectFunctionProps) *shimast.Node {
245
+ f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
246
+ body := []*shimast.Node{}
247
+ guarded := props.Object.Recursive && props.Functor.Visited()
248
+ if guarded {
249
+ // On-stack cycle detection: protobuf cannot represent circular
250
+ // references, while re-encoding a DAG alias at another position is
251
+ // legal — hence add on entry, delete on exit, throw on revisit.
252
+ slot := "_vctx." + nativeinternal.FeatureProgrammer.VisitKey(protobufEncodeProgrammer_PREFIX, "o", props.Object.Index)
253
+ body = append(body,
254
+ f.NewIfStatement(
255
+ f.NewIdentifier("("+slot+" || ("+slot+" = new WeakSet())).has(input)"),
256
+ protobufEncodeProgrammer_create_throw_error(protobufEncodeProgrammer_throwProps{
257
+ Context: props.Context,
258
+ Functor: props.Functor,
259
+ Expected: "non-circular reference",
260
+ Input: f.NewIdentifier("input"),
261
+ }),
262
+ nil,
263
+ ),
264
+ f.NewExpressionStatement(f.NewIdentifier(slot+".add(input)")),
265
+ )
266
+ }
267
+ for _, property := range props.Object.Properties {
268
+ if property.Of_protobuf_ == nil {
269
+ nativefactories.ProtobufFactory.EmplaceObject(props.Object)
270
+ }
271
+ literal := property.Key.GetSoleLiteral()
272
+ key := ""
273
+ if literal != nil {
274
+ key = *literal
275
+ }
276
+ block := protobufEncodeProgrammer_decode_property(protobufEncodeProgrammer_decodePropertyProps{
277
+ Context: props.Context,
278
+ Functor: props.Functor,
279
+ Explore: props.Explore,
280
+ Metadata: property.Value,
281
+ Protobuf: property.Of_protobuf_,
282
+ Input: nativefactories.IdentifierFactory.Access(props.Context.Emit, props.Input, key),
283
+ })
284
+ body = append(body, f.NewExpressionStatement(
285
+ f.NewIdentifier("// property "+fmt.Sprintf("%q", key)+": "+property.Value.GetName()),
286
+ ))
287
+ body = append(body, block.Statements()...)
288
+ }
289
+ if guarded {
290
+ slot := "_vctx." + nativeinternal.FeatureProgrammer.VisitKey(protobufEncodeProgrammer_PREFIX, "o", props.Object.Index)
291
+ body = append(body, f.NewExpressionStatement(f.NewIdentifier(slot+".delete(input)")))
292
+ }
293
+ return f.NewArrowFunction(
294
+ nil,
295
+ nil,
296
+ f.NewNodeList([]*shimast.Node{
297
+ nativefactories.IdentifierFactory.Parameter("input", nil, nil, props.Context.Emit),
298
+ }),
299
+ nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
300
+ nil,
301
+ f.NewToken(shimast.KindEqualsGreaterThanToken),
302
+ f.NewBlock(f.NewNodeList(body), true),
303
+ )
304
+ }
305
+
306
+ type protobufEncodeProgrammer_decodePropertyProps struct {
307
+ Context nativecontext.ITypiaContext
308
+ Functor *nativehelpers.FunctionProgrammer
309
+ Metadata *schemametadata.MetadataSchema
310
+ Protobuf *schemaprotobuf.IProtobufProperty
311
+ Input *shimast.Node
312
+ Explore nativeinternal.FeatureProgrammer_IExplore
313
+ }
314
+
315
+ func protobufEncodeProgrammer_decode_property(props protobufEncodeProgrammer_decodePropertyProps) *shimast.Node {
316
+ f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
317
+ union := []protobufEncodeProgrammer_IUnion{}
318
+ for _, schema := range props.Protobuf.Union {
319
+ switch typed := schema.(type) {
320
+ case *schemaprotobuf.IProtobufPropertyType_IBoolean:
321
+ index := typed.Index
322
+ union = append(union, protobufEncodeProgrammer_IUnion{
323
+ Is: func() *shimast.Node {
324
+ return protobufEncodeProgrammer_strict_equal(
325
+ f.NewStringLiteral("boolean", shimast.TokenFlagsNone),
326
+ f.NewTypeOfExpression(props.Input),
327
+ props.Context.Emit,
328
+ )
329
+ },
330
+ Value: func() *shimast.Node {
331
+ return protobufEncodeProgrammer_decode_bool(struct {
332
+ Input *shimast.Node
333
+ Index *int
334
+ }{Input: props.Input, Index: index}, props.Context.Emit)
335
+ },
336
+ })
337
+ case *schemaprotobuf.IProtobufPropertyType_IBigint:
338
+ union = append(union, protobufEncodeProgrammer_decode_bigint(struct {
339
+ Candidates []string
340
+ Type string
341
+ Input *shimast.Node
342
+ Index *int
343
+ }{
344
+ Input: props.Input,
345
+ Type: typed.Name,
346
+ Candidates: protobufEncodeProgrammer_bigintCandidates(props.Protobuf.Union),
347
+ Index: typed.Index,
348
+ }, props.Context.Emit))
349
+ case *schemaprotobuf.IProtobufPropertyType_INumber:
350
+ union = append(union, protobufEncodeProgrammer_decode_number(struct {
351
+ Candidates []string
352
+ Type string
353
+ Input *shimast.Node
354
+ Index *int
355
+ }{
356
+ Input: props.Input,
357
+ Type: typed.Name,
358
+ Candidates: protobufEncodeProgrammer_numberCandidates(props.Protobuf.Union),
359
+ Index: typed.Index,
360
+ }, props.Context.Emit))
361
+ case *schemaprotobuf.IProtobufPropertyType_IString:
362
+ index := typed.Index
363
+ union = append(union, protobufEncodeProgrammer_IUnion{
364
+ Is: func() *shimast.Node {
365
+ return protobufEncodeProgrammer_strict_equal(
366
+ f.NewStringLiteral("string", shimast.TokenFlagsNone),
367
+ f.NewTypeOfExpression(props.Input),
368
+ props.Context.Emit,
369
+ )
370
+ },
371
+ Value: func() *shimast.Node {
372
+ return protobufEncodeProgrammer_decode_bytes(struct {
373
+ Method string
374
+ Index int
375
+ Input *shimast.Node
376
+ }{Method: "string", Index: protobufEncodeProgrammer_indexValue(index), Input: props.Input}, props.Context.Emit)
377
+ },
378
+ })
379
+ case *schemaprotobuf.IProtobufPropertyType_IByte:
380
+ index := typed.Index
381
+ union = append(union, protobufEncodeProgrammer_IUnion{
382
+ Is: func() *shimast.Node {
383
+ return nativefactories.ExpressionFactory.IsInstanceOf("Uint8Array", props.Input, props.Context.Emit)
384
+ },
385
+ Value: func() *shimast.Node {
386
+ return protobufEncodeProgrammer_decode_bytes(struct {
387
+ Method string
388
+ Index int
389
+ Input *shimast.Node
390
+ }{Method: "bytes", Index: protobufEncodeProgrammer_indexValue(index), Input: props.Input}, props.Context.Emit)
391
+ },
392
+ })
393
+ case *schemaprotobuf.IProtobufPropertyType_IArray:
394
+ array := typed
395
+ union = append(union, protobufEncodeProgrammer_IUnion{
396
+ Is: func() *shimast.Node {
397
+ return nativefactories.ExpressionFactory.IsArray(props.Input, props.Context.Emit)
398
+ },
399
+ Value: func() *shimast.Node {
400
+ return protobufEncodeProgrammer_decode_array(protobufEncodeProgrammer_decodeArrayProps{
401
+ Context: props.Context,
402
+ Functor: props.Functor,
403
+ Input: props.Input,
404
+ Schema: array,
405
+ })
406
+ },
407
+ })
408
+ case *schemaprotobuf.IProtobufPropertyType_IMap:
409
+ if _, ok := typed.Map.(*schemametadata.MetadataMap); ok {
410
+ mapSchema := typed
411
+ union = append(union, protobufEncodeProgrammer_IUnion{
412
+ Is: func() *shimast.Node {
413
+ return nativefactories.ExpressionFactory.IsInstanceOf("Map", props.Input, props.Context.Emit)
414
+ },
415
+ Value: func() *shimast.Node {
416
+ return protobufEncodeProgrammer_decode_map(protobufEncodeProgrammer_decodeMapProps{
417
+ Context: props.Context,
418
+ Functor: props.Functor,
419
+ Schema: mapSchema,
420
+ Input: props.Input,
421
+ })
422
+ },
423
+ })
424
+ }
425
+ }
426
+ objectSchemas := protobufEncodeProgrammer_objectSchemas(props.Protobuf.Union)
427
+ if len(objectSchemas) != 0 {
428
+ schemas := objectSchemas
429
+ union = append(union, protobufEncodeProgrammer_IUnion{
430
+ Is: func() *shimast.Node {
431
+ return nativefactories.ExpressionFactory.IsObject(nativefactories.ExpressionFactory_IsObjectProps{
432
+ CheckNull: true,
433
+ CheckArray: false,
434
+ Input: props.Input,
435
+ }, props.Context.Emit)
436
+ },
437
+ Value: func() *shimast.Node {
438
+ explore := props.Explore
439
+ explore.From = "object"
440
+ return protobufEncodeProgrammer_explore_objects(protobufEncodeProgrammer_exploreObjectsProps{
441
+ Context: props.Context,
442
+ Functor: props.Functor,
443
+ Level: 0,
444
+ Schemas: schemas,
445
+ Explore: explore,
446
+ Input: props.Input,
447
+ })
448
+ },
449
+ })
450
+ }
451
+ }
452
+
453
+ wrapper := func(block *shimast.Node) *shimast.Node { return block }
454
+ required := props.Metadata.IsRequired()
455
+ if required && props.Metadata.Nullable == false {
456
+ wrapper = func(block *shimast.Node) *shimast.Node { return block }
457
+ } else if required == false && props.Metadata.Nullable {
458
+ wrapper = func(block *shimast.Node) *shimast.Node {
459
+ return f.NewBlock(f.NewNodeList([]*shimast.Node{
460
+ f.NewIfStatement(
461
+ protobufEncodeProgrammer_logical_and(
462
+ protobufEncodeProgrammer_strict_not_equal(f.NewIdentifier("undefined"), props.Input, props.Context.Emit),
463
+ protobufEncodeProgrammer_strict_not_equal(f.NewKeywordExpression(shimast.KindNullKeyword), props.Input, props.Context.Emit),
464
+ props.Context.Emit,
465
+ ),
466
+ block,
467
+ nil,
468
+ ),
469
+ }), true)
470
+ }
471
+ } else if required == false {
472
+ wrapper = func(block *shimast.Node) *shimast.Node {
473
+ return f.NewBlock(f.NewNodeList([]*shimast.Node{
474
+ f.NewIfStatement(
475
+ protobufEncodeProgrammer_strict_not_equal(f.NewIdentifier("undefined"), props.Input, props.Context.Emit),
476
+ block,
477
+ nil,
478
+ ),
479
+ }), true)
480
+ }
481
+ } else {
482
+ wrapper = func(block *shimast.Node) *shimast.Node {
483
+ return f.NewBlock(f.NewNodeList([]*shimast.Node{
484
+ f.NewIfStatement(
485
+ protobufEncodeProgrammer_strict_not_equal(f.NewKeywordExpression(shimast.KindNullKeyword), props.Input, props.Context.Emit),
486
+ block,
487
+ nil,
488
+ ),
489
+ }), true)
490
+ }
491
+ }
492
+ if len(union) == 0 {
493
+ return wrapper(f.NewBlock(f.NewNodeList(nil), true))
494
+ }
495
+ if len(union) == 1 {
496
+ return wrapper(union[0].Value())
497
+ }
498
+ condition := protobufEncodeProgrammer_chainUnion(union, props.Context, props.Functor, props.Input, props.Metadata.GetName())
499
+ return wrapper(f.NewBlock(f.NewNodeList([]*shimast.Node{condition}), true))
500
+ }
501
+
502
+ func protobufEncodeProgrammer_decode_bool(props struct {
503
+ Input *shimast.Node
504
+ Index *int
505
+ }, emit *shimprinter.EmitContext) *shimast.Node {
506
+ expressions := []*shimast.Node{}
507
+ if props.Index != nil {
508
+ expressions = append(expressions, protobufEncodeProgrammer_decode_tag(struct {
509
+ Wire nativehelpers.ProtobufWire
510
+ Index int
511
+ }{Wire: nativehelpers.VARIANT, Index: *props.Index}, emit))
512
+ }
513
+ expressions = append(expressions, protobufEncodeProgrammer_callWriter("bool", []*shimast.Node{props.Input}, emit))
514
+ return protobufEncodeProgrammer_expressionBlock(expressions, emit)
515
+ }
516
+
517
+ func protobufEncodeProgrammer_decode_bigint(props struct {
518
+ Candidates []string
519
+ Type string
520
+ Input *shimast.Node
521
+ Index *int
522
+ }, emit *shimprinter.EmitContext) protobufEncodeProgrammer_IUnion {
523
+ f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, emit)
524
+ return protobufEncodeProgrammer_IUnion{
525
+ Is: func() *shimast.Node {
526
+ typeof := protobufEncodeProgrammer_strict_equal(
527
+ f.NewStringLiteral("bigint", shimast.TokenFlagsNone),
528
+ f.NewTypeOfExpression(props.Input),
529
+ emit,
530
+ )
531
+ if len(props.Candidates) == 1 {
532
+ return typeof
533
+ }
534
+ return protobufEncodeProgrammer_logical_and(typeof, nativefactories.NumericRangeFactory.Bigint(props.Type, props.Input), emit)
535
+ },
536
+ Value: func() *shimast.Node {
537
+ expressions := []*shimast.Node{}
538
+ if props.Index != nil {
539
+ expressions = append(expressions, protobufEncodeProgrammer_decode_tag(struct {
540
+ Wire nativehelpers.ProtobufWire
541
+ Index int
542
+ }{Wire: nativehelpers.VARIANT, Index: *props.Index}, emit))
543
+ }
544
+ expressions = append(expressions, protobufEncodeProgrammer_callWriter(props.Type, []*shimast.Node{props.Input}, emit))
545
+ return protobufEncodeProgrammer_expressionBlock(expressions, emit)
546
+ },
547
+ }
548
+ }
549
+
550
+ func protobufEncodeProgrammer_decode_number(props struct {
551
+ Candidates []string
552
+ Type string
553
+ Input *shimast.Node
554
+ Index *int
555
+ }, emit *shimprinter.EmitContext) protobufEncodeProgrammer_IUnion {
556
+ f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, emit)
557
+ return protobufEncodeProgrammer_IUnion{
558
+ Is: func() *shimast.Node {
559
+ typeof := protobufEncodeProgrammer_strict_equal(
560
+ f.NewStringLiteral("number", shimast.TokenFlagsNone),
561
+ f.NewTypeOfExpression(props.Input),
562
+ emit,
563
+ )
564
+ if len(props.Candidates) == 1 {
565
+ return typeof
566
+ }
567
+ return protobufEncodeProgrammer_logical_and(typeof, nativefactories.NumericRangeFactory.Number(props.Type, props.Input), emit)
568
+ },
569
+ Value: func() *shimast.Node {
570
+ expressions := []*shimast.Node{}
571
+ if props.Index != nil {
572
+ expressions = append(expressions, protobufEncodeProgrammer_decode_tag(struct {
573
+ Wire nativehelpers.ProtobufWire
574
+ Index int
575
+ }{Wire: protobufEncodeProgrammer_get_numeric_wire(props.Type), Index: *props.Index}, emit))
576
+ }
577
+ expressions = append(expressions, protobufEncodeProgrammer_callWriter(props.Type, []*shimast.Node{props.Input}, emit))
578
+ return protobufEncodeProgrammer_expressionBlock(expressions, emit)
579
+ },
580
+ }
581
+ }
582
+
583
+ func protobufEncodeProgrammer_decode_container_value(props struct {
584
+ Context nativecontext.ITypiaContext
585
+ Functor *nativehelpers.FunctionProgrammer
586
+ Schema schemaprotobuf.IProtobufSchema
587
+ Index int
588
+ Kind string
589
+ Input *shimast.Node
590
+ }) *shimast.Node {
591
+ switch schema := props.Schema.(type) {
592
+ case *schemaprotobuf.IProtobufPropertyType_IBoolean:
593
+ return protobufEncodeProgrammer_decode_bool(struct {
594
+ Input *shimast.Node
595
+ Index *int
596
+ }{Input: props.Input, Index: protobufEncodeProgrammer_containerIndex(props.Kind, props.Index)}, props.Context.Emit)
597
+ case schemaprotobuf.IProtobufSchema_IBoolean:
598
+ return protobufEncodeProgrammer_decode_bool(struct {
599
+ Input *shimast.Node
600
+ Index *int
601
+ }{Input: props.Input, Index: protobufEncodeProgrammer_containerIndex(props.Kind, props.Index)}, props.Context.Emit)
602
+ case *schemaprotobuf.IProtobufPropertyType_IBigint:
603
+ return protobufEncodeProgrammer_decode_bigint(struct {
604
+ Candidates []string
605
+ Type string
606
+ Input *shimast.Node
607
+ Index *int
608
+ }{Input: props.Input, Type: schema.Name, Candidates: []string{schema.Name}, Index: protobufEncodeProgrammer_containerIndex(props.Kind, props.Index)}, props.Context.Emit).Value()
609
+ case schemaprotobuf.IProtobufSchema_IBigint:
610
+ return protobufEncodeProgrammer_decode_bigint(struct {
611
+ Candidates []string
612
+ Type string
613
+ Input *shimast.Node
614
+ Index *int
615
+ }{Input: props.Input, Type: schema.Name, Candidates: []string{schema.Name}, Index: protobufEncodeProgrammer_containerIndex(props.Kind, props.Index)}, props.Context.Emit).Value()
616
+ case *schemaprotobuf.IProtobufPropertyType_INumber:
617
+ return protobufEncodeProgrammer_decode_number(struct {
618
+ Candidates []string
619
+ Type string
620
+ Input *shimast.Node
621
+ Index *int
622
+ }{Input: props.Input, Type: schema.Name, Candidates: []string{schema.Name}, Index: protobufEncodeProgrammer_containerIndex(props.Kind, props.Index)}, props.Context.Emit).Value()
623
+ case schemaprotobuf.IProtobufSchema_INumber:
624
+ return protobufEncodeProgrammer_decode_number(struct {
625
+ Candidates []string
626
+ Type string
627
+ Input *shimast.Node
628
+ Index *int
629
+ }{Input: props.Input, Type: schema.Name, Candidates: []string{schema.Name}, Index: protobufEncodeProgrammer_containerIndex(props.Kind, props.Index)}, props.Context.Emit).Value()
630
+ }
631
+ if protobufEncodeProgrammer_schemaType(props.Schema) == "string" || protobufEncodeProgrammer_schemaType(props.Schema) == "bytes" {
632
+ return protobufEncodeProgrammer_decode_bytes(struct {
633
+ Method string
634
+ Index int
635
+ Input *shimast.Node
636
+ }{Method: protobufEncodeProgrammer_schemaType(props.Schema), Input: props.Input, Index: props.Index}, props.Context.Emit)
637
+ }
638
+ return protobufEncodeProgrammer_decode_object(protobufEncodeProgrammer_decodeObjectProps{
639
+ Context: props.Context,
640
+ Functor: props.Functor,
641
+ Schema: props.Schema,
642
+ Input: props.Input,
643
+ Index: props.Index,
644
+ })
645
+ }
646
+
647
+ func protobufEncodeProgrammer_decode_bytes(props struct {
648
+ Method string
649
+ Index int
650
+ Input *shimast.Node
651
+ }, emit *shimprinter.EmitContext) *shimast.Node {
652
+ return protobufEncodeProgrammer_expressionBlock([]*shimast.Node{
653
+ protobufEncodeProgrammer_decode_tag(struct {
654
+ Wire nativehelpers.ProtobufWire
655
+ Index int
656
+ }{Wire: nativehelpers.LEN, Index: props.Index}, emit),
657
+ protobufEncodeProgrammer_callWriter(props.Method, []*shimast.Node{props.Input}, emit),
658
+ }, emit)
659
+ }
660
+
661
+ type protobufEncodeProgrammer_decodeArrayProps struct {
662
+ Context nativecontext.ITypiaContext
663
+ Functor *nativehelpers.FunctionProgrammer
664
+ Schema *schemaprotobuf.IProtobufPropertyType_IArray
665
+ Input *shimast.Node
666
+ }
667
+
668
+ func protobufEncodeProgrammer_decode_array(props protobufEncodeProgrammer_decodeArrayProps) *shimast.Node {
669
+ f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
670
+ value := props.Schema.Value
671
+ wire := nativehelpers.VARIANT
672
+ if protobufEncodeProgrammer_schemaType(value) == "object" || protobufEncodeProgrammer_schemaType(value) == "bytes" || protobufEncodeProgrammer_schemaType(value) == "string" {
673
+ wire = nativehelpers.LEN
674
+ } else if number, ok := protobufEncodeProgrammer_numberSchema(value); ok && number == "float" {
675
+ wire = nativehelpers.I32
676
+ }
677
+ forLoop := func() *shimast.Node {
678
+ return f.NewForInOrOfStatement(
679
+ shimast.KindForOfStatement,
680
+ nil,
681
+ f.NewVariableDeclarationList(
682
+ f.NewNodeList([]*shimast.Node{
683
+ f.NewVariableDeclaration(f.NewIdentifier("elem"), nil, nil, nil),
684
+ }),
685
+ shimast.NodeFlagsConst,
686
+ ),
687
+ props.Input,
688
+ protobufEncodeProgrammer_decode_container_value(struct {
689
+ Context nativecontext.ITypiaContext
690
+ Functor *nativehelpers.FunctionProgrammer
691
+ Schema schemaprotobuf.IProtobufSchema
692
+ Index int
693
+ Kind string
694
+ Input *shimast.Node
695
+ }{
696
+ Kind: "array",
697
+ Context: props.Context,
698
+ Functor: props.Functor,
699
+ Input: f.NewIdentifier("elem"),
700
+ Index: protobufEncodeProgrammer_indexValue(props.Schema.Index),
701
+ Schema: props.Schema.Value,
702
+ }),
703
+ )
704
+ }
705
+ length := func(block *shimast.Node) *shimast.Node {
706
+ return f.NewBlock(f.NewNodeList([]*shimast.Node{
707
+ f.NewIfStatement(
708
+ protobufEncodeProgrammer_strict_not_equal(
709
+ nativefactories.ExpressionFactory.Number(0, props.Context.Emit),
710
+ nativefactories.IdentifierFactory.Access(props.Context.Emit, props.Input, "length"),
711
+ props.Context.Emit,
712
+ ),
713
+ block,
714
+ nil,
715
+ ),
716
+ }), true)
717
+ }
718
+ if wire == nativehelpers.LEN {
719
+ return length(f.NewBlock(f.NewNodeList([]*shimast.Node{forLoop()}), true))
720
+ }
721
+ return length(f.NewBlock(f.NewNodeList([]*shimast.Node{
722
+ f.NewExpressionStatement(protobufEncodeProgrammer_decode_tag(struct {
723
+ Wire nativehelpers.ProtobufWire
724
+ Index int
725
+ }{Wire: nativehelpers.LEN, Index: protobufEncodeProgrammer_indexValue(props.Schema.Index)}, props.Context.Emit)),
726
+ f.NewExpressionStatement(protobufEncodeProgrammer_callWriter("fork", nil, props.Context.Emit)),
727
+ forLoop(),
728
+ f.NewExpressionStatement(protobufEncodeProgrammer_callWriter("ldelim", nil, props.Context.Emit)),
729
+ }), true))
730
+ }
731
+
732
+ type protobufEncodeProgrammer_decodeObjectProps struct {
733
+ Context nativecontext.ITypiaContext
734
+ Functor *nativehelpers.FunctionProgrammer
735
+ Schema schemaprotobuf.IProtobufSchema
736
+ Index int
737
+ Input *shimast.Node
738
+ }
739
+
740
+ func protobufEncodeProgrammer_decode_object(props protobufEncodeProgrammer_decodeObjectProps) *shimast.Node {
741
+ f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
742
+ object := protobufEncodeProgrammer_objectSchema(props.Schema)
743
+ objectIndex := 0
744
+ if object != nil {
745
+ objectIndex = object.Index
746
+ }
747
+ return protobufEncodeProgrammer_expressionBlock([]*shimast.Node{
748
+ protobufEncodeProgrammer_decode_tag(struct {
749
+ Wire nativehelpers.ProtobufWire
750
+ Index int
751
+ }{Wire: nativehelpers.LEN, Index: props.Index}, props.Context.Emit),
752
+ protobufEncodeProgrammer_callWriter("fork", nil, props.Context.Emit),
753
+ f.NewCallExpression(
754
+ f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%so%d", protobufEncodeProgrammer_PREFIX, objectIndex))),
755
+ nil,
756
+ nil,
757
+ f.NewNodeList([]*shimast.Node{props.Input}),
758
+ shimast.NodeFlagsNone,
759
+ ),
760
+ protobufEncodeProgrammer_callWriter("ldelim", nil, props.Context.Emit),
761
+ }, props.Context.Emit)
762
+ }
763
+
764
+ type protobufEncodeProgrammer_decodeMapProps struct {
765
+ Context nativecontext.ITypiaContext
766
+ Functor *nativehelpers.FunctionProgrammer
767
+ Schema *schemaprotobuf.IProtobufPropertyType_IMap
768
+ Input *shimast.Node
769
+ }
770
+
771
+ func protobufEncodeProgrammer_decode_map(props protobufEncodeProgrammer_decodeMapProps) *shimast.Node {
772
+ f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
773
+ each := []*shimast.Node{
774
+ f.NewExpressionStatement(protobufEncodeProgrammer_decode_tag(struct {
775
+ Wire nativehelpers.ProtobufWire
776
+ Index int
777
+ }{Wire: nativehelpers.LEN, Index: protobufEncodeProgrammer_indexValue(props.Schema.Index)}, props.Context.Emit)),
778
+ f.NewExpressionStatement(protobufEncodeProgrammer_callWriter("fork", nil, props.Context.Emit)),
779
+ }
780
+ keyBlock := protobufEncodeProgrammer_decode_container_value(struct {
781
+ Context nativecontext.ITypiaContext
782
+ Functor *nativehelpers.FunctionProgrammer
783
+ Schema schemaprotobuf.IProtobufSchema
784
+ Index int
785
+ Kind string
786
+ Input *shimast.Node
787
+ }{Kind: "map", Context: props.Context, Functor: props.Functor, Index: 1, Input: f.NewIdentifier("key"), Schema: props.Schema.Key})
788
+ valueBlock := protobufEncodeProgrammer_decode_container_value(struct {
789
+ Context nativecontext.ITypiaContext
790
+ Functor *nativehelpers.FunctionProgrammer
791
+ Schema schemaprotobuf.IProtobufSchema
792
+ Index int
793
+ Kind string
794
+ Input *shimast.Node
795
+ }{Kind: "map", Context: props.Context, Functor: props.Functor, Index: 2, Input: f.NewIdentifier("value"), Schema: props.Schema.Value})
796
+ each = append(each, keyBlock.Statements()...)
797
+ each = append(each, valueBlock.Statements()...)
798
+ each = append(each, f.NewExpressionStatement(protobufEncodeProgrammer_callWriter("ldelim", nil, props.Context.Emit)))
799
+ return f.NewBlock(f.NewNodeList([]*shimast.Node{
800
+ f.NewForInOrOfStatement(
801
+ shimast.KindForOfStatement,
802
+ nil,
803
+ nativefactories.StatementFactory.Entry(nativefactories.StatementFactory_EntryProps{Key: "key", Value: "value"}, props.Context.Emit),
804
+ props.Input,
805
+ f.NewBlock(f.NewNodeList(each), true),
806
+ ),
807
+ }), true)
808
+ }
809
+
810
+ type protobufEncodeProgrammer_exploreObjectsProps struct {
811
+ Context nativecontext.ITypiaContext
812
+ Functor *nativehelpers.FunctionProgrammer
813
+ Level int
814
+ Input *shimast.Node
815
+ Schemas []schemaprotobuf.IProtobufPropertyType
816
+ Explore nativeinternal.FeatureProgrammer_IExplore
817
+ }
818
+
819
+ func protobufEncodeProgrammer_explore_objects(props protobufEncodeProgrammer_exploreObjectsProps) *shimast.Node {
820
+ f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
821
+ out := func(schema schemaprotobuf.IProtobufPropertyType) *shimast.Node {
822
+ if protobufEncodeProgrammer_schemaType(schema) == "object" {
823
+ return protobufEncodeProgrammer_decode_object(protobufEncodeProgrammer_decodeObjectProps{
824
+ Context: props.Context,
825
+ Functor: props.Functor,
826
+ Schema: schema,
827
+ Index: protobufEncodeProgrammer_indexValue(protobufEncodeProgrammer_propertyIndex(schema)),
828
+ Input: props.Input,
829
+ })
830
+ }
831
+ mapSchema, _ := schema.(*schemaprotobuf.IProtobufPropertyType_IMap)
832
+ return protobufEncodeProgrammer_decode_map(protobufEncodeProgrammer_decodeMapProps{
833
+ Context: props.Context,
834
+ Functor: props.Functor,
835
+ Schema: mapSchema,
836
+ Input: f.NewCallExpression(
837
+ nativefactories.IdentifierFactory.Access(props.Context.Emit, f.NewIdentifier("Object"), "entries"),
838
+ nil,
839
+ nil,
840
+ f.NewNodeList([]*shimast.Node{props.Input}),
841
+ shimast.NodeFlagsNone,
842
+ ),
843
+ })
844
+ }
845
+ if len(props.Schemas) == 1 {
846
+ return out(props.Schemas[0])
847
+ }
848
+
849
+ objects := []*schemametadata.MetadataObjectType{}
850
+ indexes := map[*schemametadata.MetadataObjectType]schemaprotobuf.IProtobufPropertyType{}
851
+ for _, schema := range props.Schemas {
852
+ object := protobufEncodeProgrammer_objectSchema(schema)
853
+ if object == nil {
854
+ continue
855
+ }
856
+ objects = append(objects, object)
857
+ indexes[object] = schema
858
+ }
859
+ specifications := nativehelpers.UnionPredicator.Object(objects)
860
+ if len(specifications) == 0 {
861
+ condition := nativeiterate.Decode_union_object(nativeiterate.Decode_union_objectProps{
862
+ Checker: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
863
+ return nativeprogrammers.IsProgrammer.Decode_object(nativeprogrammers.IsProgrammer_DecodeObjectProps{
864
+ Context: props.Context,
865
+ Functor: props.Functor,
866
+ Object: v.Object,
867
+ Input: v.Input,
868
+ Explore: protobufEncodeProgrammer_feature_explore(v.Explore),
869
+ })
870
+ },
871
+ Decoder: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
872
+ return nativefactories.ExpressionFactory.SelfCall(props.Context.Emit, out(indexes[v.Object]))
873
+ },
874
+ Success: func(expr *shimast.Expression) *shimast.Node {
875
+ return expr
876
+ },
877
+ Escaper: func(v nativeiterate.Decode_union_object_escape) *shimast.Node {
878
+ return protobufEncodeProgrammer_create_throw_error(protobufEncodeProgrammer_throwProps{
879
+ Context: props.Context,
880
+ Functor: props.Functor,
881
+ Expected: v.Expected,
882
+ Input: v.Input,
883
+ })
884
+ },
885
+ Input: props.Input,
886
+ Explore: props.Explore,
887
+ Objects: objects,
888
+ })
889
+ return nativefactories.StatementFactory.Block(condition, props.Context.Emit)
890
+ }
891
+
892
+ remained := []*schemametadata.MetadataObjectType{}
893
+ for _, object := range objects {
894
+ found := false
895
+ for _, spec := range specifications {
896
+ if spec.Object == object {
897
+ found = true
898
+ break
899
+ }
900
+ }
901
+ if found == false {
902
+ remained = append(remained, object)
903
+ }
904
+ }
905
+ expected := "("
906
+ for i, object := range objects {
907
+ if i != 0 {
908
+ expected += " | "
909
+ }
910
+ expected += object.Name
911
+ }
912
+ expected += ")"
913
+
914
+ statements := []*shimast.Node{}
915
+ for i := len(specifications) - 1; i >= 0; i-- {
916
+ spec := specifications[i]
917
+ key := spec.Property.Key.GetSoleLiteral()
918
+ if key == nil {
919
+ continue
920
+ }
921
+ accessor := nativefactories.IdentifierFactory.Access(props.Context.Emit, props.Input, *key)
922
+ var pred *shimast.Node
923
+ if spec.Neighbor {
924
+ explore := props.Explore
925
+ explore.Tracable = false
926
+ explore.Postfix = explore.Postfix + nativefactories.IdentifierFactory.Postfix(*key)
927
+ pred = nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
928
+ Context: props.Context,
929
+ Functor: props.Functor,
930
+ Input: accessor,
931
+ Metadata: spec.Property.Value,
932
+ Explore: protobufEncodeProgrammer_checker_explore(explore),
933
+ })
934
+ } else {
935
+ pred = nativefactories.ExpressionFactory.IsRequired(accessor, props.Context.Emit)
936
+ }
937
+ var elseStatement *shimast.Node
938
+ if i == len(specifications)-1 {
939
+ if len(remained) != 0 {
940
+ nextSchemas := []schemaprotobuf.IProtobufPropertyType{}
941
+ for _, object := range remained {
942
+ nextSchemas = append(nextSchemas, indexes[object])
943
+ }
944
+ elseStatement = f.NewExpressionStatement(
945
+ nativefactories.ExpressionFactory.SelfCall(props.Context.Emit, protobufEncodeProgrammer_explore_objects(protobufEncodeProgrammer_exploreObjectsProps{
946
+ Context: props.Context,
947
+ Functor: props.Functor,
948
+ Level: props.Level + 1,
949
+ Input: props.Input,
950
+ Schemas: nextSchemas,
951
+ Explore: props.Explore,
952
+ })),
953
+ )
954
+ } else {
955
+ elseStatement = protobufEncodeProgrammer_create_throw_error(protobufEncodeProgrammer_throwProps{
956
+ Context: props.Context,
957
+ Functor: props.Functor,
958
+ Input: props.Input,
959
+ Expected: expected,
960
+ })
961
+ }
962
+ }
963
+ statement := f.NewIfStatement(
964
+ pred,
965
+ f.NewExpressionStatement(nativefactories.ExpressionFactory.SelfCall(props.Context.Emit, out(indexes[spec.Object]))),
966
+ elseStatement,
967
+ )
968
+ if len(statements) == 0 {
969
+ statements = append(statements, statement)
970
+ } else {
971
+ statements[0] = f.NewIfStatement(pred, f.NewExpressionStatement(nativefactories.ExpressionFactory.SelfCall(props.Context.Emit, out(indexes[spec.Object]))), statements[0])
972
+ }
973
+ }
974
+ return f.NewBlock(f.NewNodeList(statements), true)
975
+ }
976
+
977
+ func protobufEncodeProgrammer_decode_tag(props struct {
978
+ Wire nativehelpers.ProtobufWire
979
+ Index int
980
+ }, emit *shimprinter.EmitContext) *shimast.Node {
981
+ return protobufEncodeProgrammer_callWriter("uint32", []*shimast.Node{
982
+ nativefactories.ExpressionFactory.Number((props.Index<<3)|int(props.Wire), emit),
983
+ }, emit)
984
+ }
985
+
986
+ func protobufEncodeProgrammer_get_numeric_wire(typ string) nativehelpers.ProtobufWire {
987
+ if typ == "double" {
988
+ return nativehelpers.I64
989
+ }
990
+ if typ == "float" {
991
+ return nativehelpers.I32
992
+ }
993
+ return nativehelpers.VARIANT
994
+ }
995
+
996
+ type protobufEncodeProgrammer_throwProps struct {
997
+ Context nativecontext.ITypiaContext
998
+ Functor *nativehelpers.FunctionProgrammer
999
+ Expected string
1000
+ Input *shimast.Node
1001
+ }
1002
+
1003
+ func protobufEncodeProgrammer_create_throw_error(props protobufEncodeProgrammer_throwProps) *shimast.Node {
1004
+ f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
1005
+ return f.NewExpressionStatement(
1006
+ f.NewCallExpression(
1007
+ protobufEncodeProgrammer_internal(props.Context, "throwTypeGuardError"),
1008
+ nil,
1009
+ nil,
1010
+ f.NewNodeList([]*shimast.Node{
1011
+ f.NewObjectLiteralExpression(f.NewNodeList([]*shimast.Node{
1012
+ f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("method", props.Context.Emit), nil, nil, f.NewStringLiteral(props.Functor.Method, shimast.TokenFlagsNone)),
1013
+ f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("expected", props.Context.Emit), nil, nil, f.NewStringLiteral(props.Expected, shimast.TokenFlagsNone)),
1014
+ f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("value", props.Context.Emit), nil, nil, props.Input),
1015
+ }), true),
1016
+ }),
1017
+ shimast.NodeFlagsNone,
1018
+ ),
1019
+ )
1020
+ }
1021
+
1022
+ func protobufEncodeProgrammer_callWriter(method string, args []*shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
1023
+ f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, emit)
1024
+ return f.NewCallExpression(
1025
+ nativefactories.IdentifierFactory.Access(emit, f.NewIdentifier("writer"), method),
1026
+ nil,
1027
+ nil,
1028
+ f.NewNodeList(args),
1029
+ shimast.NodeFlagsNone,
1030
+ )
1031
+ }
1032
+
1033
+ func protobufEncodeProgrammer_expressionBlock(expressions []*shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
1034
+ f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, emit)
1035
+ statements := make([]*shimast.Node, 0, len(expressions))
1036
+ for _, expr := range expressions {
1037
+ statements = append(statements, f.NewExpressionStatement(expr))
1038
+ }
1039
+ return f.NewBlock(f.NewNodeList(statements), true)
1040
+ }
1041
+
1042
+ func protobufEncodeProgrammer_chainUnion(union []protobufEncodeProgrammer_IUnion, context nativecontext.ITypiaContext, functor *nativehelpers.FunctionProgrammer, input *shimast.Node, expected string) *shimast.Node {
1043
+ f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, context.Emit)
1044
+ var next *shimast.Node
1045
+ for i := len(union) - 1; i >= 0; i-- {
1046
+ var elseStatement *shimast.Node
1047
+ if next != nil {
1048
+ elseStatement = next
1049
+ } else if i == len(union)-1 {
1050
+ elseStatement = protobufEncodeProgrammer_create_throw_error(protobufEncodeProgrammer_throwProps{
1051
+ Context: context,
1052
+ Functor: functor,
1053
+ Input: input,
1054
+ Expected: expected,
1055
+ })
1056
+ }
1057
+ next = f.NewIfStatement(
1058
+ union[i].Is(),
1059
+ union[i].Value(),
1060
+ elseStatement,
1061
+ )
1062
+ }
1063
+ return next
1064
+ }
1065
+
1066
+ func protobufEncodeProgrammer_strict_equal(left *shimast.Node, right *shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
1067
+ f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, emit)
1068
+ return f.NewBinaryExpression(nil, left, nil, f.NewToken(shimast.KindEqualsEqualsEqualsToken), right)
1069
+ }
1070
+
1071
+ func protobufEncodeProgrammer_strict_not_equal(left *shimast.Node, right *shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
1072
+ f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, emit)
1073
+ return f.NewBinaryExpression(nil, left, nil, f.NewToken(shimast.KindExclamationEqualsEqualsToken), right)
1074
+ }
1075
+
1076
+ func protobufEncodeProgrammer_logical_and(left *shimast.Node, right *shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
1077
+ f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, emit)
1078
+ return f.NewBinaryExpression(nil, left, nil, f.NewToken(shimast.KindAmpersandAmpersandToken), right)
1079
+ }
1080
+
1081
+ func protobufEncodeProgrammer_containerIndex(kind string, index int) *int {
1082
+ if kind == "array" {
1083
+ return nil
1084
+ }
1085
+ return &index
1086
+ }
1087
+
1088
+ func protobufEncodeProgrammer_indexValue(index *int) int {
1089
+ if index == nil {
1090
+ return 0
1091
+ }
1092
+ return *index
1093
+ }
1094
+
1095
+ func protobufEncodeProgrammer_propertyIndex(schema schemaprotobuf.IProtobufPropertyType) *int {
1096
+ switch typed := schema.(type) {
1097
+ case *schemaprotobuf.IProtobufPropertyType_IByte:
1098
+ return typed.Index
1099
+ case *schemaprotobuf.IProtobufPropertyType_IBoolean:
1100
+ return typed.Index
1101
+ case *schemaprotobuf.IProtobufPropertyType_IBigint:
1102
+ return typed.Index
1103
+ case *schemaprotobuf.IProtobufPropertyType_INumber:
1104
+ return typed.Index
1105
+ case *schemaprotobuf.IProtobufPropertyType_IString:
1106
+ return typed.Index
1107
+ case *schemaprotobuf.IProtobufPropertyType_IArray:
1108
+ return typed.Index
1109
+ case *schemaprotobuf.IProtobufPropertyType_IObject:
1110
+ return typed.Index
1111
+ case *schemaprotobuf.IProtobufPropertyType_IMap:
1112
+ return typed.Index
1113
+ default:
1114
+ return nil
1115
+ }
1116
+ }
1117
+
1118
+ func protobufEncodeProgrammer_schemaType(schema schemaprotobuf.IProtobufSchema) string {
1119
+ switch typed := schema.(type) {
1120
+ case *schemaprotobuf.IProtobufPropertyType_IByte:
1121
+ return typed.Type
1122
+ case *schemaprotobuf.IProtobufPropertyType_IBoolean:
1123
+ return typed.Type
1124
+ case *schemaprotobuf.IProtobufPropertyType_IBigint:
1125
+ return typed.Type
1126
+ case *schemaprotobuf.IProtobufPropertyType_INumber:
1127
+ return typed.Type
1128
+ case *schemaprotobuf.IProtobufPropertyType_IString:
1129
+ return typed.Type
1130
+ case *schemaprotobuf.IProtobufPropertyType_IArray:
1131
+ return typed.Type
1132
+ case *schemaprotobuf.IProtobufPropertyType_IObject:
1133
+ return typed.Type
1134
+ case *schemaprotobuf.IProtobufPropertyType_IMap:
1135
+ return typed.Type
1136
+ case schemaprotobuf.IProtobufSchema_IByte:
1137
+ return typed.Type
1138
+ case schemaprotobuf.IProtobufSchema_IBoolean:
1139
+ return typed.Type
1140
+ case schemaprotobuf.IProtobufSchema_IBigint:
1141
+ return typed.Type
1142
+ case schemaprotobuf.IProtobufSchema_INumber:
1143
+ return typed.Type
1144
+ case schemaprotobuf.IProtobufSchema_IString:
1145
+ return typed.Type
1146
+ case schemaprotobuf.IProtobufSchema_IArray:
1147
+ return typed.Type
1148
+ case schemaprotobuf.IProtobufSchema_IObject:
1149
+ return typed.Type
1150
+ case schemaprotobuf.IProtobufSchema_IMap:
1151
+ return typed.Type
1152
+ default:
1153
+ return ""
1154
+ }
1155
+ }
1156
+
1157
+ func protobufEncodeProgrammer_numberSchema(schema schemaprotobuf.IProtobufSchema) (string, bool) {
1158
+ switch typed := schema.(type) {
1159
+ case *schemaprotobuf.IProtobufPropertyType_INumber:
1160
+ return typed.Name, true
1161
+ case schemaprotobuf.IProtobufSchema_INumber:
1162
+ return typed.Name, true
1163
+ default:
1164
+ return "", false
1165
+ }
1166
+ }
1167
+
1168
+ func protobufEncodeProgrammer_objectSchema(schema schemaprotobuf.IProtobufSchema) *schemametadata.MetadataObjectType {
1169
+ switch typed := schema.(type) {
1170
+ case *schemaprotobuf.IProtobufPropertyType_IObject:
1171
+ if obj, ok := typed.Object.(*schemametadata.MetadataObjectType); ok {
1172
+ return obj
1173
+ }
1174
+ case schemaprotobuf.IProtobufSchema_IObject:
1175
+ if obj, ok := typed.Object.(*schemametadata.MetadataObjectType); ok {
1176
+ return obj
1177
+ }
1178
+ case *schemaprotobuf.IProtobufPropertyType_IMap:
1179
+ if obj, ok := typed.Map.(*schemametadata.MetadataObjectType); ok {
1180
+ return obj
1181
+ }
1182
+ case schemaprotobuf.IProtobufSchema_IMap:
1183
+ if obj, ok := typed.Map.(*schemametadata.MetadataObjectType); ok {
1184
+ return obj
1185
+ }
1186
+ }
1187
+ return nil
1188
+ }
1189
+
1190
+ func protobufEncodeProgrammer_objectSchemas(union []schemaprotobuf.IProtobufPropertyType) []schemaprotobuf.IProtobufPropertyType {
1191
+ output := []schemaprotobuf.IProtobufPropertyType{}
1192
+ for _, schema := range union {
1193
+ if protobufEncodeProgrammer_schemaType(schema) == "object" {
1194
+ output = append(output, schema)
1195
+ continue
1196
+ }
1197
+ if mapSchema, ok := schema.(*schemaprotobuf.IProtobufPropertyType_IMap); ok {
1198
+ if _, ok := mapSchema.Map.(*schemametadata.MetadataObjectType); ok {
1199
+ output = append(output, schema)
1200
+ }
1201
+ }
1202
+ }
1203
+ return output
1204
+ }
1205
+
1206
+ func protobufEncodeProgrammer_bigintCandidates(union []schemaprotobuf.IProtobufPropertyType) []string {
1207
+ output := []string{}
1208
+ for _, schema := range union {
1209
+ if typed, ok := schema.(*schemaprotobuf.IProtobufPropertyType_IBigint); ok {
1210
+ output = append(output, typed.Name)
1211
+ }
1212
+ }
1213
+ return output
1214
+ }
1215
+
1216
+ func protobufEncodeProgrammer_numberCandidates(union []schemaprotobuf.IProtobufPropertyType) []string {
1217
+ output := []string{}
1218
+ for _, schema := range union {
1219
+ if typed, ok := schema.(*schemaprotobuf.IProtobufPropertyType_INumber); ok {
1220
+ output = append(output, typed.Name)
1221
+ }
1222
+ }
1223
+ return output
1224
+ }
1225
+
1226
+ func protobufEncodeProgrammer_feature_explore(input any) nativeinternal.FeatureProgrammer_IExplore {
1227
+ switch typed := input.(type) {
1228
+ case nativeinternal.FeatureProgrammer_IExplore:
1229
+ return typed
1230
+ case *nativeinternal.FeatureProgrammer_IExplore:
1231
+ return *typed
1232
+ default:
1233
+ return nativeinternal.FeatureProgrammer_IExplore{}
1234
+ }
1235
+ }
1236
+
1237
+ func protobufEncodeProgrammer_checker_explore(input any) nativeinternal.CheckerProgrammer_IExplore {
1238
+ value := protobufEncodeProgrammer_feature_explore(input)
1239
+ return nativeinternal.CheckerProgrammer_IExplore{
1240
+ Tracable: value.Tracable,
1241
+ Source: value.Source,
1242
+ From: value.From,
1243
+ Postfix: value.Postfix,
1244
+ Start: value.Start,
1245
+ }
1246
+ }
1247
+
1248
+ func protobufEncodeProgrammer_import_type(context nativecontext.ITypiaContext, props nativecontext.ImportProgrammer_TypeProps) *shimast.Node {
1249
+ if importer := context.Importer; importer != nil {
1250
+ return importer.Type(props)
1251
+ }
1252
+ f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, context.Emit)
1253
+ if str, ok := props.Name.(string); ok {
1254
+ return f.NewTypeReferenceNode(f.NewIdentifier(str), f.NewNodeList(props.Arguments))
1255
+ }
1256
+ return props.Name.(*shimast.Node)
1257
+ }
1258
+
1259
+ func protobufEncodeProgrammer_internal(context nativecontext.ITypiaContext, name string) *shimast.Node {
1260
+ if importer := context.Importer; importer != nil {
1261
+ return importer.Internal(name)
1262
+ }
1263
+ f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, context.Emit)
1264
+ return f.NewIdentifier(name)
1265
+ }
1266
+
1267
+ func protobufEncodeProgrammer_method_text(modulo *shimast.Node) string {
1268
+ return nativehelpers.ModuloMethodText(modulo)
1269
+ }