typia 13.0.1-dev.20260703.1 → 13.0.1

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 (1297) 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 +354 -354
  335. package/native/core/context/TransformerError.go +117 -117
  336. package/native/core/context/import_programmer_statement_coverage_test.go +71 -71
  337. package/native/core/context/index.go +1 -1
  338. package/native/core/context/transformer_error_formatting_test.go +100 -100
  339. package/native/core/factories/CommentFactory.go +27 -27
  340. package/native/core/factories/ExpressionFactory.go +357 -357
  341. package/native/core/factories/FormatCheatSheet.go +30 -30
  342. package/native/core/factories/IdentifierFactory.go +172 -172
  343. package/native/core/factories/JsonMetadataFactory.go +154 -154
  344. package/native/core/factories/LiteralFactory.go +319 -282
  345. package/native/core/factories/MetadataCommentTagFactory.go +446 -446
  346. package/native/core/factories/MetadataFactory.go +543 -543
  347. package/native/core/factories/MetadataTypeTagFactory.go +560 -560
  348. package/native/core/factories/MetadataTypeTagSchemaFactory.go +117 -117
  349. package/native/core/factories/NumericRangeFactory.go +132 -132
  350. package/native/core/factories/ProtobufFactory.go +1090 -1090
  351. package/native/core/factories/StatementFactory.go +114 -114
  352. package/native/core/factories/TemplateFactory.go +82 -82
  353. package/native/core/factories/TypeFactory.go +176 -176
  354. package/native/core/factories/ValueFactory.go +43 -43
  355. package/native/core/factories/factory_utility_coverage_test.go +1006 -1006
  356. package/native/core/factories/index.go +1 -1
  357. package/native/core/factories/internal/metadata/IMetadataIteratorProps.go +70 -70
  358. package/native/core/factories/internal/metadata/MetadataHelper.go +425 -425
  359. package/native/core/factories/internal/metadata/comment_tags_coverage_test.go +184 -184
  360. package/native/core/factories/internal/metadata/emend_metadata_atomics.go +80 -80
  361. package/native/core/factories/internal/metadata/emplace_metadata_alias.go +41 -41
  362. package/native/core/factories/internal/metadata/emplace_metadata_array_type.go +44 -44
  363. package/native/core/factories/internal/metadata/emplace_metadata_object.go +599 -599
  364. package/native/core/factories/internal/metadata/emplace_metadata_tuple.go +69 -69
  365. package/native/core/factories/internal/metadata/explore_metadata.go +75 -75
  366. package/native/core/factories/internal/metadata/iterate_metadata.go +55 -55
  367. package/native/core/factories/internal/metadata/iterate_metadata_alias.go +36 -36
  368. package/native/core/factories/internal/metadata/iterate_metadata_array.go +77 -77
  369. package/native/core/factories/internal/metadata/iterate_metadata_atomic.go +63 -63
  370. package/native/core/factories/internal/metadata/iterate_metadata_coalesce.go +30 -30
  371. package/native/core/factories/internal/metadata/iterate_metadata_collection.go +366 -366
  372. package/native/core/factories/internal/metadata/iterate_metadata_collection_branch_matrix_test.go +201 -201
  373. package/native/core/factories/internal/metadata/iterate_metadata_comment_tags.go +34 -34
  374. package/native/core/factories/internal/metadata/iterate_metadata_constant.go +139 -139
  375. package/native/core/factories/internal/metadata/iterate_metadata_escape.go +56 -56
  376. package/native/core/factories/internal/metadata/iterate_metadata_function.go +93 -93
  377. package/native/core/factories/internal/metadata/iterate_metadata_intersection.go +1054 -1054
  378. package/native/core/factories/internal/metadata/iterate_metadata_intersection_brand_coverage_test.go +114 -114
  379. package/native/core/factories/internal/metadata/iterate_metadata_intersection_coverage_test.go +106 -106
  380. package/native/core/factories/internal/metadata/iterate_metadata_intersection_shareable_name_test.go +22 -22
  381. package/native/core/factories/internal/metadata/iterate_metadata_map.go +55 -55
  382. package/native/core/factories/internal/metadata/iterate_metadata_native.go +122 -122
  383. package/native/core/factories/internal/metadata/iterate_metadata_object.go +35 -35
  384. package/native/core/factories/internal/metadata/iterate_metadata_set.go +41 -41
  385. package/native/core/factories/internal/metadata/iterate_metadata_sort.go +202 -202
  386. package/native/core/factories/internal/metadata/iterate_metadata_template.go +41 -41
  387. package/native/core/factories/internal/metadata/iterate_metadata_tuple.go +24 -24
  388. package/native/core/factories/internal/metadata/iterate_metadata_union.go +40 -40
  389. package/native/core/factories/internal/metadata/js_doc_parameter_name_reads_qualified_name_test.go +55 -55
  390. package/native/core/factories/internal/metadata/optional_coalesce_coverage_test.go +38 -38
  391. package/native/core/factories/internal/metadata/sort_constants_coverage_test.go +63 -63
  392. package/native/core/factories/json_metadata_factory_dedupes_bigint_diagnostics_test.go +36 -36
  393. package/native/core/factories/json_metadata_factory_rejects_bigint_native_test.go +29 -29
  394. package/native/core/factories/literal_factory_ordered_object_marshals_json_test.go +40 -0
  395. package/native/core/factories/metadata_comment_tag_factory_coverage_test.go +239 -239
  396. package/native/core/factories/protobuf_factory_rejects_invalid_field_names_test.go +75 -75
  397. package/native/core/index.go +1 -1
  398. package/native/core/programmers/AssertProgrammer.go +511 -511
  399. package/native/core/programmers/IsProgrammer.go +418 -419
  400. package/native/core/programmers/RandomProgrammer.go +1448 -1448
  401. package/native/core/programmers/ValidateProgrammer.go +488 -488
  402. package/native/core/programmers/compare/CompareEqualProgrammer.go +668 -668
  403. package/native/core/programmers/compare/CompareLessProgrammer.go +489 -489
  404. package/native/core/programmers/functional/FunctionalAssertFunctionProgrammer.go +172 -172
  405. package/native/core/programmers/functional/FunctionalAssertParametersProgrammer.go +135 -135
  406. package/native/core/programmers/functional/FunctionalAssertReturnProgrammer.go +131 -131
  407. package/native/core/programmers/functional/FunctionalIsFunctionProgrammer.go +106 -106
  408. package/native/core/programmers/functional/FunctionalIsParametersProgrammer.go +222 -222
  409. package/native/core/programmers/functional/FunctionalIsReturnProgrammer.go +129 -129
  410. package/native/core/programmers/functional/FunctionalValidateFunctionProgrammer.go +172 -172
  411. package/native/core/programmers/functional/FunctionalValidateParametersProgrammer.go +252 -252
  412. package/native/core/programmers/functional/FunctionalValidateReturnProgrammer.go +147 -147
  413. package/native/core/programmers/functional/functional_assert_helper_coverage_test.go +26 -26
  414. package/native/core/programmers/functional/index.go +1 -1
  415. package/native/core/programmers/functional/internal/FunctionalGeneralProgrammer.go +53 -53
  416. package/native/core/programmers/helpers/AtomicPredicator.go +75 -75
  417. package/native/core/programmers/helpers/ClassifyJoiner.go +174 -174
  418. package/native/core/programmers/helpers/CloneJoiner.go +307 -307
  419. package/native/core/programmers/helpers/FunctionProgrammer.go +218 -218
  420. package/native/core/programmers/helpers/HttpMetadataUtil.go +30 -30
  421. package/native/core/programmers/helpers/ICheckEntry.go +14 -14
  422. package/native/core/programmers/helpers/IExpressionEntry.go +15 -15
  423. package/native/core/programmers/helpers/ModuloText.go +26 -26
  424. package/native/core/programmers/helpers/NotationJoiner.go +204 -204
  425. package/native/core/programmers/helpers/OptionPredicator.go +39 -39
  426. package/native/core/programmers/helpers/ProtobufUtil.go +273 -273
  427. package/native/core/programmers/helpers/ProtobufWire.go +14 -14
  428. package/native/core/programmers/helpers/PruneJoiner.go +290 -290
  429. package/native/core/programmers/helpers/RandomJoiner.go +805 -805
  430. package/native/core/programmers/helpers/StringifyJoinder.go +409 -409
  431. package/native/core/programmers/helpers/StringifyPredicator.go +25 -25
  432. package/native/core/programmers/helpers/UnionExplorer.go +966 -966
  433. package/native/core/programmers/helpers/UnionPredicator.go +92 -92
  434. package/native/core/programmers/helpers/clone_joiner_optional_condition_test.go +70 -70
  435. package/native/core/programmers/helpers/disable_function_programmer_declare.go +10 -10
  436. package/native/core/programmers/helpers/function_programmer_unique_names_test.go +54 -54
  437. package/native/core/programmers/helpers/joiner_branch_coverage_test.go +147 -147
  438. package/native/core/programmers/helpers/random_joiner_recursive_array_guard_test.go +166 -166
  439. package/native/core/programmers/helpers/union_explorer_coverage_test.go +135 -135
  440. package/native/core/programmers/helpers/union_predicator_checks_neighbor_flag_test.go +34 -34
  441. package/native/core/programmers/helpers/union_predicator_skips_atomic_like_native_fields_test.go +65 -65
  442. package/native/core/programmers/helpers/union_predicator_skips_collection_bucket_fields_test.go +72 -72
  443. package/native/core/programmers/helpers/union_predicator_skips_shared_native_names_test.go +239 -239
  444. package/native/core/programmers/helpers/union_predicator_skips_shared_object_fields_test.go +43 -43
  445. package/native/core/programmers/helpers/union_predicator_skips_shared_template_fields_test.go +57 -57
  446. package/native/core/programmers/http/HttpAssertFormDataProgrammer.go +116 -116
  447. package/native/core/programmers/http/HttpAssertHeadersProgrammer.go +59 -59
  448. package/native/core/programmers/http/HttpAssertQueryProgrammer.go +71 -71
  449. package/native/core/programmers/http/HttpFormDataProgrammer.go +416 -416
  450. package/native/core/programmers/http/HttpHeadersProgrammer.go +428 -428
  451. package/native/core/programmers/http/HttpIsFormDataProgrammer.go +142 -142
  452. package/native/core/programmers/http/HttpIsHeadersProgrammer.go +53 -53
  453. package/native/core/programmers/http/HttpIsQueryProgrammer.go +65 -65
  454. package/native/core/programmers/http/HttpParameterProgrammer.go +190 -190
  455. package/native/core/programmers/http/HttpQueryProgrammer.go +484 -484
  456. package/native/core/programmers/http/HttpValidateFormDataProgrammer.go +110 -110
  457. package/native/core/programmers/http/HttpValidateHeadersProgrammer.go +56 -56
  458. package/native/core/programmers/http/HttpValidateQueryProgrammer.go +68 -68
  459. package/native/core/programmers/http/http_programmer_helper_coverage_test.go +120 -120
  460. package/native/core/programmers/http/index.go +1 -1
  461. package/native/core/programmers/index.go +1 -1
  462. package/native/core/programmers/internal/CheckerProgrammer.go +2064 -2064
  463. package/native/core/programmers/internal/FeatureProgrammer.go +1361 -1361
  464. package/native/core/programmers/internal/feature_programmer_visit_guard_test.go +70 -70
  465. package/native/core/programmers/internal/internal_utility_coverage_test.go +384 -384
  466. package/native/core/programmers/iterate/check_array_length.go +64 -64
  467. package/native/core/programmers/iterate/check_bigint.go +78 -78
  468. package/native/core/programmers/iterate/check_dynamic_key.go +271 -271
  469. package/native/core/programmers/iterate/check_dynamic_key_tag_rows_test.go +46 -46
  470. package/native/core/programmers/iterate/check_dynamic_properties.go +292 -292
  471. package/native/core/programmers/iterate/check_everything.go +33 -33
  472. package/native/core/programmers/iterate/check_exclude.go +88 -88
  473. package/native/core/programmers/iterate/check_native.go +38 -38
  474. package/native/core/programmers/iterate/check_number.go +180 -180
  475. package/native/core/programmers/iterate/check_object.go +113 -113
  476. package/native/core/programmers/iterate/check_object_strict_optional_undefined_test.go +74 -74
  477. package/native/core/programmers/iterate/check_object_type_tags.go +64 -64
  478. package/native/core/programmers/iterate/check_string.go +78 -78
  479. package/native/core/programmers/iterate/check_template.go +346 -346
  480. package/native/core/programmers/iterate/check_union_array_like.go +422 -422
  481. package/native/core/programmers/iterate/decode_union_object.go +157 -157
  482. package/native/core/programmers/iterate/feature_object_entries.go +188 -188
  483. package/native/core/programmers/iterate/iterate_check_coverage_test.go +178 -178
  484. package/native/core/programmers/iterate/iterate_utility_coverage_test.go +302 -302
  485. package/native/core/programmers/iterate/json_schema_alias.go +62 -62
  486. package/native/core/programmers/iterate/json_schema_array.go +66 -66
  487. package/native/core/programmers/iterate/json_schema_bigint.go +17 -17
  488. package/native/core/programmers/iterate/json_schema_boolean.go +17 -17
  489. package/native/core/programmers/iterate/json_schema_constant.go +53 -53
  490. package/native/core/programmers/iterate/json_schema_description.go +21 -21
  491. package/native/core/programmers/iterate/json_schema_discriminator.go +57 -57
  492. package/native/core/programmers/iterate/json_schema_escaped.go +68 -68
  493. package/native/core/programmers/iterate/json_schema_jsDocTags.go +48 -48
  494. package/native/core/programmers/iterate/json_schema_native.go +106 -106
  495. package/native/core/programmers/iterate/json_schema_number.go +17 -17
  496. package/native/core/programmers/iterate/json_schema_object.go +187 -184
  497. package/native/core/programmers/iterate/json_schema_plugin.go +47 -47
  498. package/native/core/programmers/iterate/json_schema_station.go +251 -251
  499. package/native/core/programmers/iterate/json_schema_string.go +17 -17
  500. package/native/core/programmers/iterate/json_schema_template.go +63 -63
  501. package/native/core/programmers/iterate/json_schema_title.go +25 -25
  502. package/native/core/programmers/iterate/json_schema_tuple.go +41 -41
  503. package/native/core/programmers/iterate/metadata_to_pattern.go +64 -64
  504. package/native/core/programmers/iterate/postfix_of_tuple.go +12 -12
  505. package/native/core/programmers/iterate/prune_object_properties.go +105 -105
  506. package/native/core/programmers/iterate/stringify_dynamic_properties.go +219 -219
  507. package/native/core/programmers/iterate/stringify_native.go +14 -14
  508. package/native/core/programmers/iterate/stringify_regular_properties.go +112 -112
  509. package/native/core/programmers/iterate/template_interpolation_tags_test.go +495 -495
  510. package/native/core/programmers/iterate/template_runtime_pattern.go +262 -262
  511. package/native/core/programmers/iterate/template_to_pattern.go +29 -29
  512. package/native/core/programmers/iterate/wrap_metadata_rest_tuple.go +23 -23
  513. package/native/core/programmers/json/JsonApplicationProgrammer.go +380 -380
  514. package/native/core/programmers/json/JsonAssertParseProgrammer.go +115 -115
  515. package/native/core/programmers/json/JsonAssertStringifyProgrammer.go +108 -108
  516. package/native/core/programmers/json/JsonIsParseProgrammer.go +162 -162
  517. package/native/core/programmers/json/JsonIsStringifyProgrammer.go +113 -113
  518. package/native/core/programmers/json/JsonSchemaProgrammer.go +94 -94
  519. package/native/core/programmers/json/JsonSchemasProgrammer.go +142 -142
  520. package/native/core/programmers/json/JsonStringifyProgrammer.go +1528 -1508
  521. package/native/core/programmers/json/JsonValidateParseProgrammer.go +105 -105
  522. package/native/core/programmers/json/JsonValidateStringifyProgrammer.go +126 -126
  523. package/native/core/programmers/json/index.go +1 -1
  524. package/native/core/programmers/json/json_schema_programmer_coverage_test.go +198 -198
  525. package/native/core/programmers/json/json_schemas_programmer_dedupes_bigint_diagnostics_test.go +37 -37
  526. package/native/core/programmers/json/json_schemas_programmer_rejects_bigint_native_test.go +29 -29
  527. package/native/core/programmers/json/json_stringify_programmer_coverage_test.go +422 -422
  528. package/native/core/programmers/llm/LlmApplicationProgrammer.go +526 -526
  529. package/native/core/programmers/llm/LlmCoerceProgrammer.go +109 -109
  530. package/native/core/programmers/llm/LlmControllerProgrammer.go +51 -51
  531. package/native/core/programmers/llm/LlmMetadataFactory.go +89 -89
  532. package/native/core/programmers/llm/LlmParametersProgrammer.go +141 -141
  533. package/native/core/programmers/llm/LlmParseProgrammer.go +121 -121
  534. package/native/core/programmers/llm/LlmSchemaProgrammer.go +902 -846
  535. package/native/core/programmers/llm/LlmStructuredOutputProgrammer.go +147 -147
  536. package/native/core/programmers/llm/index.go +1 -1
  537. package/native/core/programmers/llm/llm_application_programmer_coverage_test.go +166 -166
  538. package/native/core/programmers/llm/llm_schema_programmer_coverage_test.go +282 -282
  539. package/native/core/programmers/llm/llm_schema_programmer_dedupes_bigint_diagnostics_test.go +38 -38
  540. package/native/core/programmers/llm/llm_schema_programmer_rejects_bigint_native_test.go +30 -30
  541. package/native/core/programmers/llm/llm_schema_programmer_rejects_exclude_tag_in_strict_test.go +52 -52
  542. package/native/core/programmers/notations/NotationAssertGeneralProgrammer.go +107 -107
  543. package/native/core/programmers/notations/NotationGeneralProgrammer.go +1441 -1441
  544. package/native/core/programmers/notations/NotationIsGeneralProgrammer.go +112 -112
  545. package/native/core/programmers/notations/NotationValidateGeneralProgrammer.go +131 -131
  546. package/native/core/programmers/notations/index.go +1 -1
  547. package/native/core/programmers/notations/notation_general_helpers_test.go +395 -395
  548. package/native/core/programmers/notations/notation_general_programmer_snake_prefix_test.go +44 -44
  549. package/native/core/programmers/plain/PlainAssertClassifyProgrammer.go +111 -111
  550. package/native/core/programmers/plain/PlainAssertCloneProgrammer.go +102 -102
  551. package/native/core/programmers/plain/PlainAssertPruneProgrammer.go +117 -117
  552. package/native/core/programmers/plain/PlainClassifyProgrammer.go +2205 -2205
  553. package/native/core/programmers/plain/PlainCloneProgrammer.go +1254 -1254
  554. package/native/core/programmers/plain/PlainIsCloneProgrammer.go +117 -117
  555. package/native/core/programmers/plain/PlainIsPruneProgrammer.go +106 -106
  556. package/native/core/programmers/plain/PlainPruneProgrammer.go +837 -837
  557. package/native/core/programmers/plain/PlainValidateClassifyProgrammer.go +127 -127
  558. package/native/core/programmers/plain/PlainValidateCloneProgrammer.go +123 -123
  559. package/native/core/programmers/plain/PlainValidatePruneProgrammer.go +114 -114
  560. package/native/core/programmers/plain/index.go +1 -1
  561. package/native/core/programmers/plain/plain_programmer_helper_coverage_test.go +284 -284
  562. package/native/core/programmers/plain/plain_prune_programmer_branch_matrix_test.go +145 -145
  563. package/native/core/programmers/programmer_direct_helper_coverage_test.go +70 -70
  564. package/native/core/programmers/protobuf/ProtobufAssertDecodeProgrammer.go +125 -125
  565. package/native/core/programmers/protobuf/ProtobufAssertEncodeProgrammer.go +143 -143
  566. package/native/core/programmers/protobuf/ProtobufDecodeProgrammer.go +861 -861
  567. package/native/core/programmers/protobuf/ProtobufEncodeProgrammer.go +1269 -1269
  568. package/native/core/programmers/protobuf/ProtobufIsDecodeProgrammer.go +122 -122
  569. package/native/core/programmers/protobuf/ProtobufIsEncodeProgrammer.go +115 -115
  570. package/native/core/programmers/protobuf/ProtobufMessageProgrammer.go +269 -269
  571. package/native/core/programmers/protobuf/ProtobufValidateDecodeProgrammer.go +111 -111
  572. package/native/core/programmers/protobuf/ProtobufValidateEncodeProgrammer.go +145 -145
  573. package/native/core/programmers/protobuf/index.go +1 -1
  574. package/native/core/programmers/protobuf/protobuf_programmer_helper_coverage_test.go +454 -454
  575. package/native/core/programmers/random_programmer_helper_coverage_test.go +367 -367
  576. package/native/core/programmers/random_programmer_min_items_tag_test.go +44 -44
  577. package/native/core/programmers/reflect/ReflectLiteralsProgrammer.go +125 -125
  578. package/native/core/schemas/index.go +1 -1
  579. package/native/core/schemas/metadata/IMetadataDictionary.go +8 -8
  580. package/native/core/schemas/metadata/IMetadataTypeTagSequence.go +53 -53
  581. package/native/core/schemas/metadata/MetadataAlias.go +36 -36
  582. package/native/core/schemas/metadata/MetadataAliasType.go +64 -64
  583. package/native/core/schemas/metadata/MetadataApplication.go +41 -41
  584. package/native/core/schemas/metadata/MetadataArray.go +36 -36
  585. package/native/core/schemas/metadata/MetadataArrayType.go +59 -59
  586. package/native/core/schemas/metadata/MetadataAtomic.go +69 -69
  587. package/native/core/schemas/metadata/MetadataCollection.go +698 -698
  588. package/native/core/schemas/metadata/MetadataComponents.go +122 -122
  589. package/native/core/schemas/metadata/MetadataConstant.go +47 -47
  590. package/native/core/schemas/metadata/MetadataConstantValue.go +97 -97
  591. package/native/core/schemas/metadata/MetadataEscaped.go +40 -40
  592. package/native/core/schemas/metadata/MetadataFunction.go +46 -46
  593. package/native/core/schemas/metadata/MetadataMap.go +45 -45
  594. package/native/core/schemas/metadata/MetadataNative.go +72 -72
  595. package/native/core/schemas/metadata/MetadataObject.go +36 -36
  596. package/native/core/schemas/metadata/MetadataObjectType.go +223 -223
  597. package/native/core/schemas/metadata/MetadataParameter.go +46 -46
  598. package/native/core/schemas/metadata/MetadataProperty.go +50 -50
  599. package/native/core/schemas/metadata/MetadataSchema.go +1485 -1485
  600. package/native/core/schemas/metadata/MetadataSet.go +41 -41
  601. package/native/core/schemas/metadata/MetadataTemplate.go +70 -70
  602. package/native/core/schemas/metadata/MetadataTuple.go +20 -20
  603. package/native/core/schemas/metadata/MetadataTupleType.go +69 -69
  604. package/native/core/schemas/metadata/index.go +1 -1
  605. package/native/core/schemas/metadata/metadata_object_type_required_literal_property_test.go +51 -51
  606. package/native/core/schemas/metadata/metadata_schema_covers_tag_matrix_test.go +125 -125
  607. package/native/core/schemas/metadata/metadata_schema_sole_literal_caches_pointer_test.go +38 -38
  608. package/native/core/schemas/metadata/schema_sequence_and_json_coverage_test.go +427 -427
  609. package/native/core/schemas/protobuf/IProtobufProperty.go +6 -6
  610. package/native/core/schemas/protobuf/IProtobufPropertyType.go +55 -55
  611. package/native/core/schemas/protobuf/IProtobufSchema.go +54 -54
  612. package/native/core/schemas/protobuf/index.go +1 -1
  613. package/native/core/schemas/protobuf/protobuf_marker_coverage_test.go +58 -58
  614. package/native/core/typings/Writable.go +5 -5
  615. package/native/core/utils/PatternUtil.go +57 -57
  616. package/native/core/utils/ProtobufNameEncoder.go +47 -47
  617. package/native/go.mod +31 -31
  618. package/native/go.sum +22 -22
  619. package/native/go.work +22 -22
  620. package/native/transform/CallExpressionTransformer.go +719 -719
  621. package/native/transform/FileTransformer.go +221 -221
  622. package/native/transform/ITransformProps.go +5 -5
  623. package/native/transform/ImportTransformer.go +285 -285
  624. package/native/transform/NodeTransformer.go +25 -25
  625. package/native/transform/TransformerError.go +11 -11
  626. package/native/transform/TypiaGenerator.go +171 -171
  627. package/native/transform/call_expression_transformer_registry_coverage_test.go +53 -53
  628. package/native/transform/call_expression_transformer_target_test.go +46 -46
  629. package/native/transform/features/AssertTransformer.go +39 -39
  630. package/native/transform/features/CreateAssertTransformer.go +39 -39
  631. package/native/transform/features/CreateIsTransformer.go +35 -35
  632. package/native/transform/features/CreateRandomTransformer.go +47 -47
  633. package/native/transform/features/CreateShallowTransformer.go +33 -33
  634. package/native/transform/features/CreateValidateTransformer.go +35 -35
  635. package/native/transform/features/IsTransformer.go +35 -35
  636. package/native/transform/features/RandomTransformer.go +54 -54
  637. package/native/transform/features/ShallowTransformer.go +65 -65
  638. package/native/transform/features/ValidateTransformer.go +35 -35
  639. package/native/transform/features/compare/CompareCoverTransformer.go +14 -14
  640. package/native/transform/features/compare/CompareCreateCoverTransformer.go +14 -14
  641. package/native/transform/features/compare/CompareCreateEqualTransformer.go +14 -14
  642. package/native/transform/features/compare/CompareCreateLessTransformer.go +14 -14
  643. package/native/transform/features/compare/CompareEqualTransformer.go +73 -73
  644. package/native/transform/features/compare/CompareLessTransformer.go +71 -71
  645. package/native/transform/features/feature_transformer_entry_coverage_test.go +59 -59
  646. package/native/transform/features/functional/FunctionalGenericTransformer.go +70 -70
  647. package/native/transform/features/http/CreateHttpAssertFormDataTransformer.go +22 -22
  648. package/native/transform/features/http/CreateHttpAssertHeadersTransformer.go +22 -22
  649. package/native/transform/features/http/CreateHttpAssertQueryTransformer.go +28 -28
  650. package/native/transform/features/http/CreateHttpFormDataTransformer.go +22 -22
  651. package/native/transform/features/http/CreateHttpHeadersTransformer.go +22 -22
  652. package/native/transform/features/http/CreateHttpIsFormDataTransformer.go +22 -22
  653. package/native/transform/features/http/CreateHttpIsHeadersTransformer.go +22 -22
  654. package/native/transform/features/http/CreateHttpIsQueryTransformer.go +28 -28
  655. package/native/transform/features/http/CreateHttpParameterTransformer.go +22 -22
  656. package/native/transform/features/http/CreateHttpQueryTransformer.go +28 -28
  657. package/native/transform/features/http/CreateHttpValidateFormDataTransformer.go +22 -22
  658. package/native/transform/features/http/CreateHttpValidateHeadersTransformer.go +22 -22
  659. package/native/transform/features/http/CreateHttpValidateQueryTransformer.go +28 -28
  660. package/native/transform/features/http/HttpAssertFormDataTransformer.go +22 -22
  661. package/native/transform/features/http/HttpAssertHeadersTransformer.go +22 -22
  662. package/native/transform/features/http/HttpAssertQueryTransformer.go +28 -28
  663. package/native/transform/features/http/HttpFormDataTransformer.go +22 -22
  664. package/native/transform/features/http/HttpHeadersTransformer.go +22 -22
  665. package/native/transform/features/http/HttpIsFormDataTransformer.go +22 -22
  666. package/native/transform/features/http/HttpIsHeadersTransformer.go +22 -22
  667. package/native/transform/features/http/HttpIsQueryTransformer.go +28 -28
  668. package/native/transform/features/http/HttpParameterTransformer.go +22 -22
  669. package/native/transform/features/http/HttpQueryTransformer.go +28 -28
  670. package/native/transform/features/http/HttpValidateFormDataTransformer.go +22 -22
  671. package/native/transform/features/http/HttpValidateHeadersTransformer.go +22 -22
  672. package/native/transform/features/http/HttpValidateQueryTransformer.go +28 -28
  673. package/native/transform/features/http/http_transformer_entry_coverage_test.go +65 -65
  674. package/native/transform/features/json/JsonApplicationTransformer.go +75 -75
  675. package/native/transform/features/json/JsonAssertParseTransformer.go +22 -22
  676. package/native/transform/features/json/JsonAssertStringifyTransformer.go +22 -22
  677. package/native/transform/features/json/JsonCreateAssertParseTransformer.go +22 -22
  678. package/native/transform/features/json/JsonCreateAssertStringifyTransformer.go +22 -22
  679. package/native/transform/features/json/JsonCreateIsParseTransformer.go +22 -22
  680. package/native/transform/features/json/JsonCreateIsStringifyTransformer.go +22 -22
  681. package/native/transform/features/json/JsonCreateStringifyTransformer.go +22 -22
  682. package/native/transform/features/json/JsonCreateValidateParseTransformer.go +22 -22
  683. package/native/transform/features/json/JsonCreateValidateStringifyProgrammer.go +22 -22
  684. package/native/transform/features/json/JsonIsParseTransformer.go +22 -22
  685. package/native/transform/features/json/JsonIsStringifyTransformer.go +22 -22
  686. package/native/transform/features/json/JsonSchemaTransformer.go +175 -175
  687. package/native/transform/features/json/JsonSchemasTransformer.go +109 -109
  688. package/native/transform/features/json/JsonStringifyTransformer.go +22 -22
  689. package/native/transform/features/json/JsonValidateParseTransformer.go +22 -22
  690. package/native/transform/features/json/JsonValidateStringifyTransformer.go +22 -22
  691. package/native/transform/features/json/json_transformer_entry_coverage_test.go +56 -56
  692. package/native/transform/features/llm/LlmApplicationTransformer.go +54 -54
  693. package/native/transform/features/llm/LlmCoerceTransformer.go +63 -63
  694. package/native/transform/features/llm/LlmControllerTransformer.go +59 -59
  695. package/native/transform/features/llm/LlmCreateCoerceTransformer.go +54 -54
  696. package/native/transform/features/llm/LlmCreateParseTransformer.go +54 -54
  697. package/native/transform/features/llm/LlmParametersTransformer.go +49 -49
  698. package/native/transform/features/llm/LlmParseTransformer.go +63 -63
  699. package/native/transform/features/llm/LlmSchemaTransformer.go +167 -167
  700. package/native/transform/features/llm/LlmStructuredOutputTransformer.go +55 -55
  701. package/native/transform/features/llm/llm_transformer_entry_coverage_test.go +48 -48
  702. package/native/transform/features/notations/NotationAssertGeneralTransformer.go +27 -27
  703. package/native/transform/features/notations/NotationCreateAssertGeneralTransformer.go +27 -27
  704. package/native/transform/features/notations/NotationCreateGeneralTransformer.go +27 -27
  705. package/native/transform/features/notations/NotationCreateIsGeneralTransformer.go +27 -27
  706. package/native/transform/features/notations/NotationCreateValidateGeneralTransformer.go +27 -27
  707. package/native/transform/features/notations/NotationGeneralTransformer.go +36 -36
  708. package/native/transform/features/notations/NotationIsGeneralTransformer.go +27 -27
  709. package/native/transform/features/notations/NotationValidateGeneralTransformer.go +27 -27
  710. package/native/transform/features/notations/notation_transformer_entry_coverage_test.go +58 -58
  711. package/native/transform/features/plain/PlainAssertClassifyTransformer.go +22 -22
  712. package/native/transform/features/plain/PlainAssertCloneTransformer.go +22 -22
  713. package/native/transform/features/plain/PlainAssertPruneTransformer.go +22 -22
  714. package/native/transform/features/plain/PlainClassifyTransformer.go +22 -22
  715. package/native/transform/features/plain/PlainCloneTransformer.go +22 -22
  716. package/native/transform/features/plain/PlainCreateAssertClassifyTransformer.go +22 -22
  717. package/native/transform/features/plain/PlainCreateAssertCloneTransformer.go +22 -22
  718. package/native/transform/features/plain/PlainCreateAssertPruneTransformer.go +22 -22
  719. package/native/transform/features/plain/PlainCreateClassifyTransformer.go +22 -22
  720. package/native/transform/features/plain/PlainCreateCloneTransformer.go +22 -22
  721. package/native/transform/features/plain/PlainCreateIsCloneTransformer.go +22 -22
  722. package/native/transform/features/plain/PlainCreateIsPruneTransformer.go +22 -22
  723. package/native/transform/features/plain/PlainCreatePruneTransformer.go +22 -22
  724. package/native/transform/features/plain/PlainCreateValidateClassifyTransformer.go +22 -22
  725. package/native/transform/features/plain/PlainCreateValidateCloneTransformer.go +22 -22
  726. package/native/transform/features/plain/PlainCreateValidatePruneTransformer.go +22 -22
  727. package/native/transform/features/plain/PlainIsCloneTransformer.go +22 -22
  728. package/native/transform/features/plain/PlainIsPruneTransformer.go +22 -22
  729. package/native/transform/features/plain/PlainPruneTransformer.go +22 -22
  730. package/native/transform/features/plain/PlainValidateClassifyTransformer.go +22 -22
  731. package/native/transform/features/plain/PlainValidateCloneTransformer.go +22 -22
  732. package/native/transform/features/plain/PlainValidatePruneTransformer.go +22 -22
  733. package/native/transform/features/plain/plain_transformer_entry_coverage_test.go +61 -61
  734. package/native/transform/features/protobuf/ProtobufAssertDecodeTransformer.go +22 -22
  735. package/native/transform/features/protobuf/ProtobufAssertEncodeTransformer.go +22 -22
  736. package/native/transform/features/protobuf/ProtobufCreateAssertDecodeTransformer.go +22 -22
  737. package/native/transform/features/protobuf/ProtobufCreateAssertEncodeTransformer.go +22 -22
  738. package/native/transform/features/protobuf/ProtobufCreateDecodeTransformer.go +22 -22
  739. package/native/transform/features/protobuf/ProtobufCreateEncodeTransformer.go +22 -22
  740. package/native/transform/features/protobuf/ProtobufCreateIsDecodeTransformer.go +22 -22
  741. package/native/transform/features/protobuf/ProtobufCreateIsEncodeTransformer.go +22 -22
  742. package/native/transform/features/protobuf/ProtobufCreateValidateDecodeTransformer.go +22 -22
  743. package/native/transform/features/protobuf/ProtobufCreateValidateEncodeTransformer.go +22 -22
  744. package/native/transform/features/protobuf/ProtobufDecodeTransformer.go +22 -22
  745. package/native/transform/features/protobuf/ProtobufEncodeTransformer.go +22 -22
  746. package/native/transform/features/protobuf/ProtobufIsDecodeTransformer.go +22 -22
  747. package/native/transform/features/protobuf/ProtobufIsEncodeTransformer.go +22 -22
  748. package/native/transform/features/protobuf/ProtobufMessageTransformer.go +31 -31
  749. package/native/transform/features/protobuf/ProtobufValidateDecodeTransformer.go +22 -22
  750. package/native/transform/features/protobuf/ProtobufValidateEncodeTransformer.go +22 -22
  751. package/native/transform/features/protobuf/protobuf_transformer_entry_coverage_test.go +56 -56
  752. package/native/transform/features/reflect/ReflectLiteralsTransformer.go +32 -32
  753. package/native/transform/features/reflect/ReflectMetadataTransformer.go +73 -73
  754. package/native/transform/features/reflect/ReflectNameTransformer.go +100 -100
  755. package/native/transform/features/reflect/ReflectSchemaTransformer.go +153 -153
  756. package/native/transform/features/reflect/ReflectSchemasTransformer.go +68 -68
  757. package/native/transform/features/reflect/reflect_metadata_transformer_edge_branches_test.go +55 -55
  758. package/native/transform/features/reflect/reflect_transformer_entry_coverage_test.go +47 -47
  759. package/native/transform/file_transformer_coverage_test.go +94 -94
  760. package/native/transform/import_transformer_coverage_test.go +153 -153
  761. package/native/transform/index.go +1 -1
  762. package/native/transform/internal/GenericTransformer.go +236 -236
  763. package/native/transform/transform.go +57 -57
  764. package/native/transform/typia_generator_helpers_coverage_test.go +166 -166
  765. package/package.json +8 -15
  766. package/src/executable/TypiaGenerateWizard.ts +5 -1
  767. package/src/executable/generate/ttsc.ts +3 -4
  768. package/src/executable/typia.ts +8 -4
  769. package/src/internal/_ProtobufReader.ts +187 -187
  770. package/src/internal/_randomArray.ts +34 -34
  771. package/src/internal/_randomString.ts +30 -30
  772. package/src/re-exports.ts +8 -3
  773. package/src/transform.ts +21 -21
  774. package/lib/TypeGuardError2.mjs +0 -55
  775. package/lib/TypeGuardError2.mjs.map +0 -1
  776. package/lib/_virtual/NoTransformConfigurationError.mjs +0 -4
  777. package/lib/_virtual/NoTransformConfigurationError.mjs.map +0 -1
  778. package/lib/_virtual/TypeGuardError.mjs +0 -4
  779. package/lib/_virtual/TypeGuardError.mjs.map +0 -1
  780. package/lib/_virtual/TypiaGenerateWizard.mjs +0 -4
  781. package/lib/_virtual/TypiaGenerateWizard.mjs.map +0 -1
  782. package/lib/_virtual/_IProtobufWriter.mjs +0 -4
  783. package/lib/_virtual/_IProtobufWriter.mjs.map +0 -1
  784. package/lib/_virtual/_ProtobufReader.mjs +0 -4
  785. package/lib/_virtual/_ProtobufReader.mjs.map +0 -1
  786. package/lib/_virtual/_ProtobufSizer.mjs +0 -4
  787. package/lib/_virtual/_ProtobufSizer.mjs.map +0 -1
  788. package/lib/_virtual/_ProtobufWriter.mjs +0 -4
  789. package/lib/_virtual/_ProtobufWriter.mjs.map +0 -1
  790. package/lib/_virtual/__notationCapitalize.mjs +0 -4
  791. package/lib/_virtual/__notationCapitalize.mjs.map +0 -1
  792. package/lib/_virtual/__notationUnsnake.mjs +0 -4
  793. package/lib/_virtual/__notationUnsnake.mjs.map +0 -1
  794. package/lib/_virtual/_accessExpressionAsString.mjs +0 -4
  795. package/lib/_virtual/_accessExpressionAsString.mjs.map +0 -1
  796. package/lib/_virtual/_assertGuard.mjs +0 -4
  797. package/lib/_virtual/_assertGuard.mjs.map +0 -1
  798. package/lib/_virtual/_coerceLlmArguments.mjs +0 -4
  799. package/lib/_virtual/_coerceLlmArguments.mjs.map +0 -1
  800. package/lib/_virtual/_commander.mjs +0 -7
  801. package/lib/_virtual/_commander.mjs.map +0 -1
  802. package/lib/_virtual/_commonjsHelpers.mjs +0 -35
  803. package/lib/_virtual/_commonjsHelpers.mjs.map +0 -1
  804. package/lib/_virtual/_createStandardSchema.mjs +0 -4
  805. package/lib/_virtual/_createStandardSchema.mjs.map +0 -1
  806. package/lib/_virtual/_functionalTypeGuardErrorFactory.mjs +0 -4
  807. package/lib/_virtual/_functionalTypeGuardErrorFactory.mjs.map +0 -1
  808. package/lib/_virtual/_httpFormDataReadArray.mjs +0 -4
  809. package/lib/_virtual/_httpFormDataReadArray.mjs.map +0 -1
  810. package/lib/_virtual/_httpFormDataReadBigint.mjs +0 -4
  811. package/lib/_virtual/_httpFormDataReadBigint.mjs.map +0 -1
  812. package/lib/_virtual/_httpFormDataReadBlob.mjs +0 -4
  813. package/lib/_virtual/_httpFormDataReadBlob.mjs.map +0 -1
  814. package/lib/_virtual/_httpFormDataReadBoolean.mjs +0 -4
  815. package/lib/_virtual/_httpFormDataReadBoolean.mjs.map +0 -1
  816. package/lib/_virtual/_httpFormDataReadFile.mjs +0 -4
  817. package/lib/_virtual/_httpFormDataReadFile.mjs.map +0 -1
  818. package/lib/_virtual/_httpFormDataReadNumber.mjs +0 -4
  819. package/lib/_virtual/_httpFormDataReadNumber.mjs.map +0 -1
  820. package/lib/_virtual/_httpFormDataReadString.mjs +0 -4
  821. package/lib/_virtual/_httpFormDataReadString.mjs.map +0 -1
  822. package/lib/_virtual/_httpHeaderReadBigint.mjs +0 -4
  823. package/lib/_virtual/_httpHeaderReadBigint.mjs.map +0 -1
  824. package/lib/_virtual/_httpHeaderReadBoolean.mjs +0 -4
  825. package/lib/_virtual/_httpHeaderReadBoolean.mjs.map +0 -1
  826. package/lib/_virtual/_httpHeaderReadNumber.mjs +0 -4
  827. package/lib/_virtual/_httpHeaderReadNumber.mjs.map +0 -1
  828. package/lib/_virtual/_httpParameterReadBigint.mjs +0 -4
  829. package/lib/_virtual/_httpParameterReadBigint.mjs.map +0 -1
  830. package/lib/_virtual/_httpParameterReadBoolean.mjs +0 -4
  831. package/lib/_virtual/_httpParameterReadBoolean.mjs.map +0 -1
  832. package/lib/_virtual/_httpParameterReadNumber.mjs +0 -4
  833. package/lib/_virtual/_httpParameterReadNumber.mjs.map +0 -1
  834. package/lib/_virtual/_httpParameterReadString.mjs +0 -4
  835. package/lib/_virtual/_httpParameterReadString.mjs.map +0 -1
  836. package/lib/_virtual/_httpQueryParseURLSearchParams.mjs +0 -4
  837. package/lib/_virtual/_httpQueryParseURLSearchParams.mjs.map +0 -1
  838. package/lib/_virtual/_httpQueryReadArray.mjs +0 -4
  839. package/lib/_virtual/_httpQueryReadArray.mjs.map +0 -1
  840. package/lib/_virtual/_httpQueryReadBigint.mjs +0 -4
  841. package/lib/_virtual/_httpQueryReadBigint.mjs.map +0 -1
  842. package/lib/_virtual/_httpQueryReadBoolean.mjs +0 -4
  843. package/lib/_virtual/_httpQueryReadBoolean.mjs.map +0 -1
  844. package/lib/_virtual/_httpQueryReadNumber.mjs +0 -4
  845. package/lib/_virtual/_httpQueryReadNumber.mjs.map +0 -1
  846. package/lib/_virtual/_httpQueryReadString.mjs +0 -4
  847. package/lib/_virtual/_httpQueryReadString.mjs.map +0 -1
  848. package/lib/_virtual/_inquirer.mjs +0 -7
  849. package/lib/_virtual/_inquirer.mjs.map +0 -1
  850. package/lib/_virtual/_isBetween.mjs +0 -4
  851. package/lib/_virtual/_isBetween.mjs.map +0 -1
  852. package/lib/_virtual/_isBigintString.mjs +0 -4
  853. package/lib/_virtual/_isBigintString.mjs.map +0 -1
  854. package/lib/_virtual/_isFormatByte.mjs +0 -4
  855. package/lib/_virtual/_isFormatByte.mjs.map +0 -1
  856. package/lib/_virtual/_isFormatDate.mjs +0 -4
  857. package/lib/_virtual/_isFormatDate.mjs.map +0 -1
  858. package/lib/_virtual/_isFormatDateTime.mjs +0 -4
  859. package/lib/_virtual/_isFormatDateTime.mjs.map +0 -1
  860. package/lib/_virtual/_isFormatDuration.mjs +0 -4
  861. package/lib/_virtual/_isFormatDuration.mjs.map +0 -1
  862. package/lib/_virtual/_isFormatEmail.mjs +0 -4
  863. package/lib/_virtual/_isFormatEmail.mjs.map +0 -1
  864. package/lib/_virtual/_isFormatHostname.mjs +0 -4
  865. package/lib/_virtual/_isFormatHostname.mjs.map +0 -1
  866. package/lib/_virtual/_isFormatIdnEmail.mjs +0 -4
  867. package/lib/_virtual/_isFormatIdnEmail.mjs.map +0 -1
  868. package/lib/_virtual/_isFormatIdnHostname.mjs +0 -4
  869. package/lib/_virtual/_isFormatIdnHostname.mjs.map +0 -1
  870. package/lib/_virtual/_isFormatIpv4.mjs +0 -4
  871. package/lib/_virtual/_isFormatIpv4.mjs.map +0 -1
  872. package/lib/_virtual/_isFormatIpv6.mjs +0 -4
  873. package/lib/_virtual/_isFormatIpv6.mjs.map +0 -1
  874. package/lib/_virtual/_isFormatIri.mjs +0 -4
  875. package/lib/_virtual/_isFormatIri.mjs.map +0 -1
  876. package/lib/_virtual/_isFormatIriReference.mjs +0 -4
  877. package/lib/_virtual/_isFormatIriReference.mjs.map +0 -1
  878. package/lib/_virtual/_isFormatJsonPointer.mjs +0 -4
  879. package/lib/_virtual/_isFormatJsonPointer.mjs.map +0 -1
  880. package/lib/_virtual/_isFormatPassword.mjs +0 -4
  881. package/lib/_virtual/_isFormatPassword.mjs.map +0 -1
  882. package/lib/_virtual/_isFormatRegex.mjs +0 -4
  883. package/lib/_virtual/_isFormatRegex.mjs.map +0 -1
  884. package/lib/_virtual/_isFormatRelativeJsonPointer.mjs +0 -4
  885. package/lib/_virtual/_isFormatRelativeJsonPointer.mjs.map +0 -1
  886. package/lib/_virtual/_isFormatTime.mjs +0 -4
  887. package/lib/_virtual/_isFormatTime.mjs.map +0 -1
  888. package/lib/_virtual/_isFormatUri.mjs +0 -4
  889. package/lib/_virtual/_isFormatUri.mjs.map +0 -1
  890. package/lib/_virtual/_isFormatUriReference.mjs +0 -4
  891. package/lib/_virtual/_isFormatUriReference.mjs.map +0 -1
  892. package/lib/_virtual/_isFormatUriTemplate.mjs +0 -4
  893. package/lib/_virtual/_isFormatUriTemplate.mjs.map +0 -1
  894. package/lib/_virtual/_isFormatUrl.mjs +0 -4
  895. package/lib/_virtual/_isFormatUrl.mjs.map +0 -1
  896. package/lib/_virtual/_isFormatUuid.mjs +0 -4
  897. package/lib/_virtual/_isFormatUuid.mjs.map +0 -1
  898. package/lib/_virtual/_isTypeFloat.mjs +0 -4
  899. package/lib/_virtual/_isTypeFloat.mjs.map +0 -1
  900. package/lib/_virtual/_isTypeInt16.mjs +0 -4
  901. package/lib/_virtual/_isTypeInt16.mjs.map +0 -1
  902. package/lib/_virtual/_isTypeInt32.mjs +0 -4
  903. package/lib/_virtual/_isTypeInt32.mjs.map +0 -1
  904. package/lib/_virtual/_isTypeInt64.mjs +0 -4
  905. package/lib/_virtual/_isTypeInt64.mjs.map +0 -1
  906. package/lib/_virtual/_isTypeInt8.mjs +0 -4
  907. package/lib/_virtual/_isTypeInt8.mjs.map +0 -1
  908. package/lib/_virtual/_isTypeUint16.mjs +0 -4
  909. package/lib/_virtual/_isTypeUint16.mjs.map +0 -1
  910. package/lib/_virtual/_isTypeUint32.mjs +0 -4
  911. package/lib/_virtual/_isTypeUint32.mjs.map +0 -1
  912. package/lib/_virtual/_isTypeUint64.mjs +0 -4
  913. package/lib/_virtual/_isTypeUint64.mjs.map +0 -1
  914. package/lib/_virtual/_isTypeUint8.mjs +0 -4
  915. package/lib/_virtual/_isTypeUint8.mjs.map +0 -1
  916. package/lib/_virtual/_isUniqueItems.mjs +0 -4
  917. package/lib/_virtual/_isUniqueItems.mjs.map +0 -1
  918. package/lib/_virtual/_jsonStringifyNumber.mjs +0 -4
  919. package/lib/_virtual/_jsonStringifyNumber.mjs.map +0 -1
  920. package/lib/_virtual/_jsonStringifyRest.mjs +0 -4
  921. package/lib/_virtual/_jsonStringifyRest.mjs.map +0 -1
  922. package/lib/_virtual/_jsonStringifyString.mjs +0 -4
  923. package/lib/_virtual/_jsonStringifyString.mjs.map +0 -1
  924. package/lib/_virtual/_jsonStringifyTail.mjs +0 -4
  925. package/lib/_virtual/_jsonStringifyTail.mjs.map +0 -1
  926. package/lib/_virtual/_llmApplicationFinalize.mjs +0 -4
  927. package/lib/_virtual/_llmApplicationFinalize.mjs.map +0 -1
  928. package/lib/_virtual/_node_child_process.mjs +0 -7
  929. package/lib/_virtual/_node_child_process.mjs.map +0 -1
  930. package/lib/_virtual/_node_fs.mjs +0 -7
  931. package/lib/_virtual/_node_fs.mjs.map +0 -1
  932. package/lib/_virtual/_node_module.mjs +0 -7
  933. package/lib/_virtual/_node_module.mjs.map +0 -1
  934. package/lib/_virtual/_node_path.mjs +0 -7
  935. package/lib/_virtual/_node_path.mjs.map +0 -1
  936. package/lib/_virtual/_notationAny.mjs +0 -4
  937. package/lib/_virtual/_notationAny.mjs.map +0 -1
  938. package/lib/_virtual/_notationCamel.mjs +0 -4
  939. package/lib/_virtual/_notationCamel.mjs.map +0 -1
  940. package/lib/_virtual/_notationPascal.mjs +0 -4
  941. package/lib/_virtual/_notationPascal.mjs.map +0 -1
  942. package/lib/_virtual/_notationSnake.mjs +0 -4
  943. package/lib/_virtual/_notationSnake.mjs.map +0 -1
  944. package/lib/_virtual/_parseLlmArguments.mjs +0 -4
  945. package/lib/_virtual/_parseLlmArguments.mjs.map +0 -1
  946. package/lib/_virtual/_plainCloneAny.mjs +0 -4
  947. package/lib/_virtual/_plainCloneAny.mjs.map +0 -1
  948. package/lib/_virtual/_randexp.mjs +0 -7
  949. package/lib/_virtual/_randexp.mjs.map +0 -1
  950. package/lib/_virtual/_randomArray.mjs +0 -4
  951. package/lib/_virtual/_randomArray.mjs.map +0 -1
  952. package/lib/_virtual/_randomBigint.mjs +0 -4
  953. package/lib/_virtual/_randomBigint.mjs.map +0 -1
  954. package/lib/_virtual/_randomBoolean.mjs +0 -4
  955. package/lib/_virtual/_randomBoolean.mjs.map +0 -1
  956. package/lib/_virtual/_randomFormatByte.mjs +0 -4
  957. package/lib/_virtual/_randomFormatByte.mjs.map +0 -1
  958. package/lib/_virtual/_randomFormatDate.mjs +0 -4
  959. package/lib/_virtual/_randomFormatDate.mjs.map +0 -1
  960. package/lib/_virtual/_randomFormatDatetime.mjs +0 -4
  961. package/lib/_virtual/_randomFormatDatetime.mjs.map +0 -1
  962. package/lib/_virtual/_randomFormatDuration.mjs +0 -4
  963. package/lib/_virtual/_randomFormatDuration.mjs.map +0 -1
  964. package/lib/_virtual/_randomFormatEmail.mjs +0 -4
  965. package/lib/_virtual/_randomFormatEmail.mjs.map +0 -1
  966. package/lib/_virtual/_randomFormatHostname.mjs +0 -4
  967. package/lib/_virtual/_randomFormatHostname.mjs.map +0 -1
  968. package/lib/_virtual/_randomFormatIdnEmail.mjs +0 -4
  969. package/lib/_virtual/_randomFormatIdnEmail.mjs.map +0 -1
  970. package/lib/_virtual/_randomFormatIdnHostname.mjs +0 -4
  971. package/lib/_virtual/_randomFormatIdnHostname.mjs.map +0 -1
  972. package/lib/_virtual/_randomFormatIpv4.mjs +0 -4
  973. package/lib/_virtual/_randomFormatIpv4.mjs.map +0 -1
  974. package/lib/_virtual/_randomFormatIpv6.mjs +0 -4
  975. package/lib/_virtual/_randomFormatIpv6.mjs.map +0 -1
  976. package/lib/_virtual/_randomFormatIri.mjs +0 -4
  977. package/lib/_virtual/_randomFormatIri.mjs.map +0 -1
  978. package/lib/_virtual/_randomFormatIriReference.mjs +0 -4
  979. package/lib/_virtual/_randomFormatIriReference.mjs.map +0 -1
  980. package/lib/_virtual/_randomFormatJsonPointer.mjs +0 -4
  981. package/lib/_virtual/_randomFormatJsonPointer.mjs.map +0 -1
  982. package/lib/_virtual/_randomFormatPassword.mjs +0 -4
  983. package/lib/_virtual/_randomFormatPassword.mjs.map +0 -1
  984. package/lib/_virtual/_randomFormatRegex.mjs +0 -4
  985. package/lib/_virtual/_randomFormatRegex.mjs.map +0 -1
  986. package/lib/_virtual/_randomFormatRelativeJsonPointer.mjs +0 -4
  987. package/lib/_virtual/_randomFormatRelativeJsonPointer.mjs.map +0 -1
  988. package/lib/_virtual/_randomFormatTime.mjs +0 -4
  989. package/lib/_virtual/_randomFormatTime.mjs.map +0 -1
  990. package/lib/_virtual/_randomFormatUri.mjs +0 -4
  991. package/lib/_virtual/_randomFormatUri.mjs.map +0 -1
  992. package/lib/_virtual/_randomFormatUriReference.mjs +0 -4
  993. package/lib/_virtual/_randomFormatUriReference.mjs.map +0 -1
  994. package/lib/_virtual/_randomFormatUriTemplate.mjs +0 -4
  995. package/lib/_virtual/_randomFormatUriTemplate.mjs.map +0 -1
  996. package/lib/_virtual/_randomFormatUrl.mjs +0 -4
  997. package/lib/_virtual/_randomFormatUrl.mjs.map +0 -1
  998. package/lib/_virtual/_randomFormatUuid.mjs +0 -4
  999. package/lib/_virtual/_randomFormatUuid.mjs.map +0 -1
  1000. package/lib/_virtual/_randomInteger.mjs +0 -4
  1001. package/lib/_virtual/_randomInteger.mjs.map +0 -1
  1002. package/lib/_virtual/_randomNumber.mjs +0 -4
  1003. package/lib/_virtual/_randomNumber.mjs.map +0 -1
  1004. package/lib/_virtual/_randomPattern.mjs +0 -4
  1005. package/lib/_virtual/_randomPattern.mjs.map +0 -1
  1006. package/lib/_virtual/_randomPick.mjs +0 -4
  1007. package/lib/_virtual/_randomPick.mjs.map +0 -1
  1008. package/lib/_virtual/_randomString.mjs +0 -4
  1009. package/lib/_virtual/_randomString.mjs.map +0 -1
  1010. package/lib/_virtual/_throwTypeGuardError.mjs +0 -4
  1011. package/lib/_virtual/_throwTypeGuardError.mjs.map +0 -1
  1012. package/lib/_virtual/_tinyglobby.mjs +0 -7
  1013. package/lib/_virtual/_tinyglobby.mjs.map +0 -1
  1014. package/lib/_virtual/_validateReport.mjs +0 -4
  1015. package/lib/_virtual/_validateReport.mjs.map +0 -1
  1016. package/lib/_virtual/compare.mjs +0 -4
  1017. package/lib/_virtual/compare.mjs.map +0 -1
  1018. package/lib/_virtual/functional.mjs +0 -4
  1019. package/lib/_virtual/functional.mjs.map +0 -1
  1020. package/lib/_virtual/http.mjs +0 -4
  1021. package/lib/_virtual/http.mjs.map +0 -1
  1022. package/lib/_virtual/index.mjs +0 -4
  1023. package/lib/_virtual/index.mjs.map +0 -1
  1024. package/lib/_virtual/json.mjs +0 -4
  1025. package/lib/_virtual/json.mjs.map +0 -1
  1026. package/lib/_virtual/llm.mjs +0 -4
  1027. package/lib/_virtual/llm.mjs.map +0 -1
  1028. package/lib/_virtual/module.mjs +0 -4
  1029. package/lib/_virtual/module.mjs.map +0 -1
  1030. package/lib/_virtual/notations.mjs +0 -4
  1031. package/lib/_virtual/notations.mjs.map +0 -1
  1032. package/lib/_virtual/plain.mjs +0 -4
  1033. package/lib/_virtual/plain.mjs.map +0 -1
  1034. package/lib/_virtual/protobuf.mjs +0 -4
  1035. package/lib/_virtual/protobuf.mjs.map +0 -1
  1036. package/lib/_virtual/re-exports.mjs +0 -4
  1037. package/lib/_virtual/re-exports.mjs.map +0 -1
  1038. package/lib/_virtual/reflect.mjs +0 -4
  1039. package/lib/_virtual/reflect.mjs.map +0 -1
  1040. package/lib/_virtual/transform.mjs +0 -4
  1041. package/lib/_virtual/transform.mjs.map +0 -1
  1042. package/lib/_virtual/ttsc.mjs +0 -4
  1043. package/lib/_virtual/ttsc.mjs.map +0 -1
  1044. package/lib/_virtual/typia.mjs +0 -4
  1045. package/lib/_virtual/typia.mjs.map +0 -1
  1046. package/lib/compare2.mjs +0 -39
  1047. package/lib/compare2.mjs.map +0 -1
  1048. package/lib/executable/TypiaGenerateWizard2.mjs +0 -719
  1049. package/lib/executable/TypiaGenerateWizard2.mjs.map +0 -1
  1050. package/lib/executable/generate/ttsc2.mjs +0 -56
  1051. package/lib/executable/generate/ttsc2.mjs.map +0 -1
  1052. package/lib/executable/typia2.mjs +0 -88
  1053. package/lib/executable/typia2.mjs.map +0 -1
  1054. package/lib/functional2.mjs +0 -99
  1055. package/lib/functional2.mjs.map +0 -1
  1056. package/lib/http2.mjs +0 -139
  1057. package/lib/http2.mjs.map +0 -1
  1058. package/lib/index2.mjs +0 -53
  1059. package/lib/index2.mjs.map +0 -1
  1060. package/lib/internal/_IProtobufWriter.mjs.map +0 -1
  1061. package/lib/internal/_IProtobufWriter2.mjs +0 -6
  1062. package/lib/internal/_IProtobufWriter2.mjs.map +0 -1
  1063. package/lib/internal/_ProtobufReader2.mjs +0 -169
  1064. package/lib/internal/_ProtobufReader2.mjs.map +0 -1
  1065. package/lib/internal/_ProtobufSizer2.mjs +0 -119
  1066. package/lib/internal/_ProtobufSizer2.mjs.map +0 -1
  1067. package/lib/internal/_ProtobufWriter2.mjs +0 -107
  1068. package/lib/internal/_ProtobufWriter2.mjs.map +0 -1
  1069. package/lib/internal/_accessExpressionAsString2.mjs +0 -49
  1070. package/lib/internal/_accessExpressionAsString2.mjs.map +0 -1
  1071. package/lib/internal/_assertGuard2.mjs +0 -20
  1072. package/lib/internal/_assertGuard2.mjs.map +0 -1
  1073. package/lib/internal/_coerceLlmArguments2.mjs +0 -11
  1074. package/lib/internal/_coerceLlmArguments2.mjs.map +0 -1
  1075. package/lib/internal/_createStandardSchema2.mjs +0 -138
  1076. package/lib/internal/_createStandardSchema2.mjs.map +0 -1
  1077. package/lib/internal/_functionalTypeGuardErrorFactory2.mjs +0 -12
  1078. package/lib/internal/_functionalTypeGuardErrorFactory2.mjs.map +0 -1
  1079. package/lib/internal/_httpFormDataReadArray2.mjs +0 -9
  1080. package/lib/internal/_httpFormDataReadArray2.mjs.map +0 -1
  1081. package/lib/internal/_httpFormDataReadBigint2.mjs +0 -23
  1082. package/lib/internal/_httpFormDataReadBigint2.mjs.map +0 -1
  1083. package/lib/internal/_httpFormDataReadBlob2.mjs +0 -15
  1084. package/lib/internal/_httpFormDataReadBlob2.mjs.map +0 -1
  1085. package/lib/internal/_httpFormDataReadBoolean2.mjs +0 -21
  1086. package/lib/internal/_httpFormDataReadBoolean2.mjs.map +0 -1
  1087. package/lib/internal/_httpFormDataReadFile2.mjs +0 -15
  1088. package/lib/internal/_httpFormDataReadFile2.mjs.map +0 -1
  1089. package/lib/internal/_httpFormDataReadNumber2.mjs +0 -19
  1090. package/lib/internal/_httpFormDataReadNumber2.mjs.map +0 -1
  1091. package/lib/internal/_httpFormDataReadString2.mjs +0 -15
  1092. package/lib/internal/_httpFormDataReadString2.mjs.map +0 -1
  1093. package/lib/internal/_httpHeaderReadBigint2.mjs +0 -17
  1094. package/lib/internal/_httpHeaderReadBigint2.mjs.map +0 -1
  1095. package/lib/internal/_httpHeaderReadBoolean2.mjs +0 -15
  1096. package/lib/internal/_httpHeaderReadBoolean2.mjs.map +0 -1
  1097. package/lib/internal/_httpHeaderReadNumber2.mjs +0 -13
  1098. package/lib/internal/_httpHeaderReadNumber2.mjs.map +0 -1
  1099. package/lib/internal/_httpParameterReadBigint2.mjs +0 -17
  1100. package/lib/internal/_httpParameterReadBigint2.mjs.map +0 -1
  1101. package/lib/internal/_httpParameterReadBoolean2.mjs +0 -15
  1102. package/lib/internal/_httpParameterReadBoolean2.mjs.map +0 -1
  1103. package/lib/internal/_httpParameterReadNumber2.mjs +0 -13
  1104. package/lib/internal/_httpParameterReadNumber2.mjs.map +0 -1
  1105. package/lib/internal/_httpParameterReadString2.mjs +0 -9
  1106. package/lib/internal/_httpParameterReadString2.mjs.map +0 -1
  1107. package/lib/internal/_httpQueryParseURLSearchParams2.mjs +0 -16
  1108. package/lib/internal/_httpQueryParseURLSearchParams2.mjs.map +0 -1
  1109. package/lib/internal/_httpQueryReadArray2.mjs +0 -9
  1110. package/lib/internal/_httpQueryReadArray2.mjs.map +0 -1
  1111. package/lib/internal/_httpQueryReadBigint2.mjs +0 -17
  1112. package/lib/internal/_httpQueryReadBigint2.mjs.map +0 -1
  1113. package/lib/internal/_httpQueryReadBoolean2.mjs +0 -19
  1114. package/lib/internal/_httpQueryReadBoolean2.mjs.map +0 -1
  1115. package/lib/internal/_httpQueryReadNumber2.mjs +0 -13
  1116. package/lib/internal/_httpQueryReadNumber2.mjs.map +0 -1
  1117. package/lib/internal/_httpQueryReadString2.mjs +0 -9
  1118. package/lib/internal/_httpQueryReadString2.mjs.map +0 -1
  1119. package/lib/internal/_isBetween2.mjs +0 -9
  1120. package/lib/internal/_isBetween2.mjs.map +0 -1
  1121. package/lib/internal/_isBigintString2.mjs +0 -17
  1122. package/lib/internal/_isBigintString2.mjs.map +0 -1
  1123. package/lib/internal/_isFormatByte2.mjs +0 -13
  1124. package/lib/internal/_isFormatByte2.mjs.map +0 -1
  1125. package/lib/internal/_isFormatDate2.mjs +0 -10
  1126. package/lib/internal/_isFormatDate2.mjs.map +0 -1
  1127. package/lib/internal/_isFormatDateTime2.mjs +0 -10
  1128. package/lib/internal/_isFormatDateTime2.mjs.map +0 -1
  1129. package/lib/internal/_isFormatDuration2.mjs +0 -10
  1130. package/lib/internal/_isFormatDuration2.mjs.map +0 -1
  1131. package/lib/internal/_isFormatEmail2.mjs +0 -10
  1132. package/lib/internal/_isFormatEmail2.mjs.map +0 -1
  1133. package/lib/internal/_isFormatHostname2.mjs +0 -10
  1134. package/lib/internal/_isFormatHostname2.mjs.map +0 -1
  1135. package/lib/internal/_isFormatIdnEmail2.mjs +0 -10
  1136. package/lib/internal/_isFormatIdnEmail2.mjs.map +0 -1
  1137. package/lib/internal/_isFormatIdnHostname2.mjs +0 -10
  1138. package/lib/internal/_isFormatIdnHostname2.mjs.map +0 -1
  1139. package/lib/internal/_isFormatIpv42.mjs +0 -10
  1140. package/lib/internal/_isFormatIpv42.mjs.map +0 -1
  1141. package/lib/internal/_isFormatIpv62.mjs +0 -10
  1142. package/lib/internal/_isFormatIpv62.mjs.map +0 -1
  1143. package/lib/internal/_isFormatIri2.mjs +0 -10
  1144. package/lib/internal/_isFormatIri2.mjs.map +0 -1
  1145. package/lib/internal/_isFormatIriReference2.mjs +0 -10
  1146. package/lib/internal/_isFormatIriReference2.mjs.map +0 -1
  1147. package/lib/internal/_isFormatJsonPointer2.mjs +0 -10
  1148. package/lib/internal/_isFormatJsonPointer2.mjs.map +0 -1
  1149. package/lib/internal/_isFormatPassword2.mjs +0 -9
  1150. package/lib/internal/_isFormatPassword2.mjs.map +0 -1
  1151. package/lib/internal/_isFormatRegex2.mjs +0 -17
  1152. package/lib/internal/_isFormatRegex2.mjs.map +0 -1
  1153. package/lib/internal/_isFormatRelativeJsonPointer2.mjs +0 -10
  1154. package/lib/internal/_isFormatRelativeJsonPointer2.mjs.map +0 -1
  1155. package/lib/internal/_isFormatTime2.mjs +0 -10
  1156. package/lib/internal/_isFormatTime2.mjs.map +0 -1
  1157. package/lib/internal/_isFormatUri2.mjs +0 -11
  1158. package/lib/internal/_isFormatUri2.mjs.map +0 -1
  1159. package/lib/internal/_isFormatUriReference2.mjs +0 -10
  1160. package/lib/internal/_isFormatUriReference2.mjs.map +0 -1
  1161. package/lib/internal/_isFormatUriTemplate2.mjs +0 -10
  1162. package/lib/internal/_isFormatUriTemplate2.mjs.map +0 -1
  1163. package/lib/internal/_isFormatUrl2.mjs +0 -10
  1164. package/lib/internal/_isFormatUrl2.mjs.map +0 -1
  1165. package/lib/internal/_isFormatUuid2.mjs +0 -10
  1166. package/lib/internal/_isFormatUuid2.mjs.map +0 -1
  1167. package/lib/internal/_isTypeFloat2.mjs +0 -11
  1168. package/lib/internal/_isTypeFloat2.mjs.map +0 -1
  1169. package/lib/internal/_isTypeInt162.mjs +0 -11
  1170. package/lib/internal/_isTypeInt162.mjs.map +0 -1
  1171. package/lib/internal/_isTypeInt322.mjs +0 -11
  1172. package/lib/internal/_isTypeInt322.mjs.map +0 -1
  1173. package/lib/internal/_isTypeInt642.mjs +0 -11
  1174. package/lib/internal/_isTypeInt642.mjs.map +0 -1
  1175. package/lib/internal/_isTypeInt82.mjs +0 -11
  1176. package/lib/internal/_isTypeInt82.mjs.map +0 -1
  1177. package/lib/internal/_isTypeUint162.mjs +0 -11
  1178. package/lib/internal/_isTypeUint162.mjs.map +0 -1
  1179. package/lib/internal/_isTypeUint322.mjs +0 -11
  1180. package/lib/internal/_isTypeUint322.mjs.map +0 -1
  1181. package/lib/internal/_isTypeUint642.mjs +0 -11
  1182. package/lib/internal/_isTypeUint642.mjs.map +0 -1
  1183. package/lib/internal/_isTypeUint82.mjs +0 -11
  1184. package/lib/internal/_isTypeUint82.mjs.map +0 -1
  1185. package/lib/internal/_isUniqueItems2.mjs +0 -143
  1186. package/lib/internal/_isUniqueItems2.mjs.map +0 -1
  1187. package/lib/internal/_jsonStringifyNumber2.mjs +0 -9
  1188. package/lib/internal/_jsonStringifyNumber2.mjs.map +0 -1
  1189. package/lib/internal/_jsonStringifyRest2.mjs +0 -11
  1190. package/lib/internal/_jsonStringifyRest2.mjs.map +0 -1
  1191. package/lib/internal/_jsonStringifyString2.mjs +0 -45
  1192. package/lib/internal/_jsonStringifyString2.mjs.map +0 -1
  1193. package/lib/internal/_jsonStringifyTail2.mjs +0 -9
  1194. package/lib/internal/_jsonStringifyTail2.mjs.map +0 -1
  1195. package/lib/internal/_llmApplicationFinalize2.mjs +0 -11
  1196. package/lib/internal/_llmApplicationFinalize2.mjs.map +0 -1
  1197. package/lib/internal/_notationAny2.mjs +0 -42
  1198. package/lib/internal/_notationAny2.mjs.map +0 -1
  1199. package/lib/internal/_notationCamel2.mjs +0 -21
  1200. package/lib/internal/_notationCamel2.mjs.map +0 -1
  1201. package/lib/internal/_notationPascal2.mjs +0 -17
  1202. package/lib/internal/_notationPascal2.mjs.map +0 -1
  1203. package/lib/internal/_notationSnake2.mjs +0 -54
  1204. package/lib/internal/_notationSnake2.mjs.map +0 -1
  1205. package/lib/internal/_parseLlmArguments2.mjs +0 -11
  1206. package/lib/internal/_parseLlmArguments2.mjs.map +0 -1
  1207. package/lib/internal/_plainCloneAny2.mjs +0 -67
  1208. package/lib/internal/_plainCloneAny2.mjs.map +0 -1
  1209. package/lib/internal/_randomArray2.mjs +0 -31
  1210. package/lib/internal/_randomArray2.mjs.map +0 -1
  1211. package/lib/internal/_randomBigint2.mjs +0 -12
  1212. package/lib/internal/_randomBigint2.mjs.map +0 -1
  1213. package/lib/internal/_randomBoolean2.mjs +0 -9
  1214. package/lib/internal/_randomBoolean2.mjs.map +0 -1
  1215. package/lib/internal/_randomFormatByte2.mjs +0 -10
  1216. package/lib/internal/_randomFormatByte2.mjs.map +0 -1
  1217. package/lib/internal/_randomFormatDate2.mjs +0 -20
  1218. package/lib/internal/_randomFormatDate2.mjs.map +0 -1
  1219. package/lib/internal/_randomFormatDatetime2.mjs +0 -18
  1220. package/lib/internal/_randomFormatDatetime2.mjs.map +0 -1
  1221. package/lib/internal/_randomFormatDuration2.mjs +0 -35
  1222. package/lib/internal/_randomFormatDuration2.mjs.map +0 -1
  1223. package/lib/internal/_randomFormatEmail2.mjs +0 -17
  1224. package/lib/internal/_randomFormatEmail2.mjs.map +0 -1
  1225. package/lib/internal/_randomFormatHostname2.mjs +0 -13
  1226. package/lib/internal/_randomFormatHostname2.mjs.map +0 -1
  1227. package/lib/internal/_randomFormatIdnEmail2.mjs +0 -12
  1228. package/lib/internal/_randomFormatIdnEmail2.mjs.map +0 -1
  1229. package/lib/internal/_randomFormatIdnHostname2.mjs +0 -12
  1230. package/lib/internal/_randomFormatIdnHostname2.mjs.map +0 -1
  1231. package/lib/internal/_randomFormatIpv42.mjs +0 -17
  1232. package/lib/internal/_randomFormatIpv42.mjs.map +0 -1
  1233. package/lib/internal/_randomFormatIpv62.mjs +0 -17
  1234. package/lib/internal/_randomFormatIpv62.mjs.map +0 -1
  1235. package/lib/internal/_randomFormatIri2.mjs +0 -12
  1236. package/lib/internal/_randomFormatIri2.mjs.map +0 -1
  1237. package/lib/internal/_randomFormatIriReference2.mjs +0 -12
  1238. package/lib/internal/_randomFormatIriReference2.mjs.map +0 -1
  1239. package/lib/internal/_randomFormatJsonPointer2.mjs +0 -13
  1240. package/lib/internal/_randomFormatJsonPointer2.mjs.map +0 -1
  1241. package/lib/internal/_randomFormatPassword2.mjs +0 -16
  1242. package/lib/internal/_randomFormatPassword2.mjs.map +0 -1
  1243. package/lib/internal/_randomFormatRegex2.mjs +0 -10
  1244. package/lib/internal/_randomFormatRegex2.mjs.map +0 -1
  1245. package/lib/internal/_randomFormatRelativeJsonPointer2.mjs +0 -16
  1246. package/lib/internal/_randomFormatRelativeJsonPointer2.mjs.map +0 -1
  1247. package/lib/internal/_randomFormatTime2.mjs +0 -19
  1248. package/lib/internal/_randomFormatTime2.mjs.map +0 -1
  1249. package/lib/internal/_randomFormatUri2.mjs +0 -12
  1250. package/lib/internal/_randomFormatUri2.mjs.map +0 -1
  1251. package/lib/internal/_randomFormatUriReference2.mjs +0 -12
  1252. package/lib/internal/_randomFormatUriReference2.mjs.map +0 -1
  1253. package/lib/internal/_randomFormatUriTemplate2.mjs +0 -12
  1254. package/lib/internal/_randomFormatUriTemplate2.mjs.map +0 -1
  1255. package/lib/internal/_randomFormatUrl2.mjs +0 -17
  1256. package/lib/internal/_randomFormatUrl2.mjs.map +0 -1
  1257. package/lib/internal/_randomFormatUuid2.mjs +0 -13
  1258. package/lib/internal/_randomFormatUuid2.mjs.map +0 -1
  1259. package/lib/internal/_randomInteger2.mjs +0 -47
  1260. package/lib/internal/_randomInteger2.mjs.map +0 -1
  1261. package/lib/internal/_randomNumber2.mjs +0 -66
  1262. package/lib/internal/_randomNumber2.mjs.map +0 -1
  1263. package/lib/internal/_randomPattern2.mjs +0 -22
  1264. package/lib/internal/_randomPattern2.mjs.map +0 -1
  1265. package/lib/internal/_randomPick2.mjs +0 -17
  1266. package/lib/internal/_randomPick2.mjs.map +0 -1
  1267. package/lib/internal/_randomString2.mjs +0 -32
  1268. package/lib/internal/_randomString2.mjs.map +0 -1
  1269. package/lib/internal/_throwTypeGuardError2.mjs +0 -14
  1270. package/lib/internal/_throwTypeGuardError2.mjs.map +0 -1
  1271. package/lib/internal/_validateReport2.mjs +0 -29
  1272. package/lib/internal/_validateReport2.mjs.map +0 -1
  1273. package/lib/internal/private/__notationCapitalize2.mjs +0 -9
  1274. package/lib/internal/private/__notationCapitalize2.mjs.map +0 -1
  1275. package/lib/internal/private/__notationUnsnake2.mjs +0 -29
  1276. package/lib/internal/private/__notationUnsnake2.mjs.map +0 -1
  1277. package/lib/json2.mjs +0 -94
  1278. package/lib/json2.mjs.map +0 -1
  1279. package/lib/llm2.mjs +0 -54
  1280. package/lib/llm2.mjs.map +0 -1
  1281. package/lib/module2.mjs +0 -185
  1282. package/lib/module2.mjs.map +0 -1
  1283. package/lib/notations2.mjs +0 -169
  1284. package/lib/notations2.mjs.map +0 -1
  1285. package/lib/plain2.mjs +0 -119
  1286. package/lib/plain2.mjs.map +0 -1
  1287. package/lib/protobuf2.mjs +0 -94
  1288. package/lib/protobuf2.mjs.map +0 -1
  1289. package/lib/re-exports.mjs.map +0 -1
  1290. package/lib/re-exports2.mjs +0 -17
  1291. package/lib/re-exports2.mjs.map +0 -1
  1292. package/lib/reflect2.mjs +0 -29
  1293. package/lib/reflect2.mjs.map +0 -1
  1294. package/lib/transform2.mjs +0 -26
  1295. package/lib/transform2.mjs.map +0 -1
  1296. package/lib/transformers/NoTransformConfigurationError2.mjs +0 -21
  1297. package/lib/transformers/NoTransformConfigurationError2.mjs.map +0 -1
@@ -1,1441 +1,1441 @@
1
- package notations
2
-
3
- import (
4
- "fmt"
5
- "strings"
6
-
7
- shimast "github.com/microsoft/typescript-go/shim/ast"
8
- shimchecker "github.com/microsoft/typescript-go/shim/checker"
9
- shimprinter "github.com/microsoft/typescript-go/shim/printer"
10
- nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
11
- nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
12
- nativeprogrammers "github.com/samchon/typia/packages/typia/native/core/programmers"
13
- nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
14
- nativeinternal "github.com/samchon/typia/packages/typia/native/core/programmers/internal"
15
- nativeiterate "github.com/samchon/typia/packages/typia/native/core/programmers/iterate"
16
- schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
17
- )
18
-
19
- type notationGeneralProgrammerNamespace struct{}
20
-
21
- var NotationGeneralProgrammer = notationGeneralProgrammerNamespace{}
22
-
23
- type NotationGeneralProgrammer_IRename struct {
24
- Name string
25
- Func func(str string) string
26
- }
27
-
28
- type NotationGeneralProgrammer_IProps struct {
29
- nativecontext.IProgrammerProps
30
- Rename NotationGeneralProgrammer_IRename
31
- }
32
-
33
- type NotationGeneralProgrammer_ReturnTypeProps struct {
34
- Rename NotationGeneralProgrammer_IRename
35
- Context nativecontext.ITypiaContext
36
- Type string
37
- }
38
-
39
- type NotationGeneralProgrammer_DecomposeProps struct {
40
- Rename NotationGeneralProgrammer_IRename
41
- Validated bool
42
- Context nativecontext.ITypiaContext
43
- Functor *nativehelpers.FunctionProgrammer
44
- Type *shimchecker.Type
45
- Name *string
46
- }
47
-
48
- const notationGeneralProgrammer_PREFIX = "_c"
49
-
50
- var notationGeneralProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
51
-
52
- func (notationGeneralProgrammerNamespace) ReturnType(props NotationGeneralProgrammer_ReturnTypeProps) *shimast.Node {
53
- f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
54
- return notationGeneralProgrammer_import_type(props.Context, nativecontext.ImportProgrammer_TypeProps{
55
- File: "typia",
56
- Name: notationGeneralProgrammer_capitalize(props.Rename.Name) + "Case",
57
- Arguments: []*shimast.TypeNode{
58
- f.NewTypeReferenceNode(f.NewIdentifier(props.Type), nil),
59
- },
60
- })
61
- }
62
-
63
- func (notationGeneralProgrammerNamespace) Decompose(props NotationGeneralProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
64
- f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
65
- config := notationGeneralProgrammer_configure(struct {
66
- Rename NotationGeneralProgrammer_IRename
67
- Context nativecontext.ITypiaContext
68
- Functor *nativehelpers.FunctionProgrammer
69
- }{Rename: props.Rename, Context: props.Context, Functor: props.Functor})
70
- if props.Validated == false {
71
- config.Addition = func(collection *schemametadata.MetadataCollection) []*shimast.Node {
72
- return nativeprogrammers.IsProgrammer.Write_function_statements(nativeprogrammers.IsProgrammer_WriteFunctionStatementsProps{
73
- Context: props.Context,
74
- Functor: props.Functor,
75
- Collection: collection,
76
- })
77
- }
78
- }
79
- composed := nativeinternal.FeatureProgrammer.Compose(nativeinternal.FeatureProgrammer_ComposeProps{
80
- Context: props.Context,
81
- Config: config,
82
- Functor: props.Functor,
83
- Type: props.Type,
84
- Name: props.Name,
85
- })
86
- typeName := notationGeneralProgrammer_type_name(props.Context, props.Type, props.Name)
87
- return nativeinternal.FeatureProgrammer_IDecomposed{
88
- Functions: composed.Functions,
89
- Statements: composed.Statements,
90
- Arrow: f.NewArrowFunction(
91
- nil,
92
- nil,
93
- f.NewNodeList(composed.Parameters),
94
- NotationGeneralProgrammer.ReturnType(NotationGeneralProgrammer_ReturnTypeProps{
95
- Rename: props.Rename,
96
- Context: props.Context,
97
- Type: typeName,
98
- }),
99
- nil,
100
- f.NewToken(shimast.KindEqualsGreaterThanToken),
101
- composed.Body,
102
- ),
103
- }
104
- }
105
-
106
- func (notationGeneralProgrammerNamespace) Write(props NotationGeneralProgrammer_IProps) *shimast.Node {
107
- functor := nativehelpers.NewFunctionProgrammer(notationGeneralProgrammer_method_text(props.Modulo), props.Context.Emit)
108
- result := NotationGeneralProgrammer.Decompose(NotationGeneralProgrammer_DecomposeProps{
109
- Rename: props.Rename,
110
- Context: props.Context,
111
- Functor: functor,
112
- Type: props.Type,
113
- Name: props.Name,
114
- Validated: true,
115
- })
116
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
117
- Functor: functor,
118
- Modulo: props.Modulo,
119
- Result: result,
120
- })
121
- }
122
-
123
- func notationGeneralProgrammer_write_array_functions(props struct {
124
- Config nativeinternal.FeatureProgrammer_IConfig
125
- Context nativecontext.ITypiaContext
126
- Functor *nativehelpers.FunctionProgrammer
127
- Collection *schemametadata.MetadataCollection
128
- }) []*shimast.Node {
129
- f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
130
- output := []*shimast.Node{}
131
- for i, typ := range props.Collection.Arrays() {
132
- if typ.Recursive == false {
133
- continue
134
- }
135
- output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
136
- Name: fmt.Sprintf("%sa%d", props.Config.Prefix, i),
137
- Value: f.NewArrowFunction(
138
- nil,
139
- nil,
140
- f.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
141
- Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
142
- Type: nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
143
- Input: f.NewIdentifier("input"),
144
- })),
145
- nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
146
- nil,
147
- f.NewToken(shimast.KindEqualsGreaterThanToken),
148
- nativeinternal.FeatureProgrammer.VisitGuardRebuild(
149
- nativeinternal.FeatureProgrammer.VisitKey(props.Config.Prefix, "a", i),
150
- true,
151
- notationGeneralProgrammer_decode_array_inline(notationGeneralProgrammer_decodeArrayProps{
152
- Context: props.Context,
153
- Config: props.Config,
154
- Functor: props.Functor,
155
- Input: f.NewIdentifier("input"),
156
- Array: schemametadata.MetadataArray_create(schemametadata.MetadataArray{
157
- Type: typ,
158
- Tags: [][]schemametadata.IMetadataTypeTag{},
159
- }),
160
- Explore: nativeinternal.FeatureProgrammer_IExplore{
161
- Tracable: props.Config.Trace,
162
- Source: "function",
163
- From: "array",
164
- Postfix: "",
165
- },
166
- }),
167
- props.Context.Emit,
168
- ),
169
- ),
170
- }, props.Context.Emit))
171
- }
172
- return output
173
- }
174
-
175
- func notationGeneralProgrammer_write_tuple_functions(props struct {
176
- Config nativeinternal.FeatureProgrammer_IConfig
177
- Rename NotationGeneralProgrammer_IRename
178
- Context nativecontext.ITypiaContext
179
- Functor *nativehelpers.FunctionProgrammer
180
- Collection *schemametadata.MetadataCollection
181
- }) []*shimast.Node {
182
- f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
183
- output := []*shimast.Node{}
184
- for i, tuple := range props.Collection.Tuples() {
185
- if tuple.Recursive == false {
186
- continue
187
- }
188
- output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
189
- Name: fmt.Sprintf("%st%d", props.Config.Prefix, i),
190
- Value: f.NewArrowFunction(
191
- nil,
192
- nil,
193
- f.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
194
- Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
195
- Type: nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
196
- Input: f.NewIdentifier("input"),
197
- })),
198
- nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
199
- nil,
200
- f.NewToken(shimast.KindEqualsGreaterThanToken),
201
- nativeinternal.FeatureProgrammer.VisitGuardRebuild(
202
- nativeinternal.FeatureProgrammer.VisitKey(props.Config.Prefix, "t", i),
203
- true,
204
- notationGeneralProgrammer_decode_tuple_inline(notationGeneralProgrammer_decodeTupleInlineProps{
205
- Context: props.Context,
206
- Rename: props.Rename,
207
- Config: props.Config,
208
- Functor: props.Functor,
209
- Input: f.NewIdentifier("input"),
210
- Tuple: tuple,
211
- Explore: nativeinternal.FeatureProgrammer_IExplore{
212
- Tracable: props.Config.Trace,
213
- Source: "function",
214
- From: "array",
215
- Postfix: "",
216
- },
217
- }),
218
- props.Context.Emit,
219
- ),
220
- ),
221
- }, props.Context.Emit))
222
- }
223
- return output
224
- }
225
-
226
- func notationGeneralProgrammer_decode(props struct {
227
- Config nativeinternal.FeatureProgrammer_IConfig
228
- Rename NotationGeneralProgrammer_IRename
229
- Context nativecontext.ITypiaContext
230
- Functor *nativehelpers.FunctionProgrammer
231
- Metadata *schemametadata.MetadataSchema
232
- Explore nativeinternal.FeatureProgrammer_IExplore
233
- Input *shimast.Node
234
- }) *shimast.Node {
235
- f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
236
- if props.Metadata.Any ||
237
- notationGeneralProgrammer_some_arrays(props.Metadata.Arrays, func(a *schemametadata.MetadataArray) bool { return a.Type.Value.Any }) ||
238
- notationGeneralProgrammer_some_tuples(props.Metadata.Tuples, func(t *schemametadata.MetadataTuple) bool {
239
- return len(t.Type.Elements) != 0 && notationGeneralProgrammer_every_schema(t.Type.Elements, func(e *schemametadata.MetadataSchema) bool { return e.Any })
240
- }) {
241
- return nativefactories.ExpressionFactory.Currying(nativefactories.ExpressionFactory_CurryingProps{
242
- Function: notationGeneralProgrammer_internal(props.Context, "notationAny"),
243
- Arguments: []*shimast.Expression{
244
- notationGeneralProgrammer_internal(props.Context, "notation"+notationGeneralProgrammer_capitalize(props.Rename.Name)),
245
- props.Input,
246
- },
247
- }, props.Context.Emit)
248
- }
249
-
250
- unions := []notationGeneralProgrammer_IUnion{}
251
- if len(props.Metadata.Functions) != 0 {
252
- unions = append(unions, notationGeneralProgrammer_IUnion{
253
- Type: "functional",
254
- Is: func() *shimast.Node {
255
- return notationGeneralProgrammer_binary(
256
- f.NewStringLiteral("function", shimast.TokenFlagsNone),
257
- shimast.KindEqualsEqualsEqualsToken,
258
- f.NewTypeOfExpression(props.Input),
259
- props.Context.Emit,
260
- )
261
- },
262
- Value: func() *shimast.Node {
263
- return f.NewIdentifier("undefined")
264
- },
265
- })
266
- }
267
-
268
- for _, tuple := range props.Metadata.Tuples {
269
- tuple := tuple
270
- unions = append(unions, notationGeneralProgrammer_IUnion{
271
- Type: "tuple",
272
- Is: func() *shimast.Node {
273
- partial := schemametadata.MetadataSchema_initialize()
274
- partial.Tuples = append(partial.Tuples, tuple)
275
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
276
- Context: props.Context,
277
- Functor: props.Functor,
278
- Input: props.Input,
279
- Metadata: partial,
280
- Explore: notationGeneralProgrammer_checker_explore(props.Explore),
281
- })
282
- },
283
- Value: func() *shimast.Node {
284
- return notationGeneralProgrammer_decode_tuple(notationGeneralProgrammer_decodeTupleProps{
285
- Config: props.Config,
286
- Rename: props.Rename,
287
- Context: props.Context,
288
- Functor: props.Functor,
289
- Tuple: tuple,
290
- Explore: props.Explore,
291
- Input: props.Input,
292
- })
293
- },
294
- })
295
- }
296
-
297
- if len(props.Metadata.Arrays) != 0 {
298
- unions = append(unions, notationGeneralProgrammer_IUnion{
299
- Type: "array",
300
- Is: func() *shimast.Node {
301
- return nativefactories.ExpressionFactory.IsArray(props.Input, props.Context.Emit)
302
- },
303
- Value: func() *shimast.Node {
304
- explore := props.Explore
305
- explore.From = "array"
306
- return notationGeneralProgrammer_explore_arrays(notationGeneralProgrammer_exploreArraysProps{
307
- Context: props.Context,
308
- Config: props.Config,
309
- Functor: props.Functor,
310
- Input: props.Input,
311
- Arrays: props.Metadata.Arrays,
312
- Explore: explore,
313
- })
314
- },
315
- })
316
- }
317
-
318
- if len(props.Metadata.Sets) != 0 {
319
- unions = append(unions, notationGeneralProgrammer_IUnion{
320
- Type: "set",
321
- Is: func() *shimast.Node {
322
- return nativefactories.ExpressionFactory.IsInstanceOf("Set", props.Input, props.Context.Emit)
323
- },
324
- Value: func() *shimast.Node {
325
- explore := props.Explore
326
- explore.From = "array"
327
- return notationGeneralProgrammer_explore_sets(notationGeneralProgrammer_exploreSetsProps{
328
- Context: props.Context,
329
- Config: props.Config,
330
- Functor: props.Functor,
331
- Input: props.Input,
332
- Explore: explore,
333
- Sets: props.Metadata.Sets,
334
- })
335
- },
336
- })
337
- }
338
-
339
- if len(props.Metadata.Maps) != 0 {
340
- unions = append(unions, notationGeneralProgrammer_IUnion{
341
- Type: "map",
342
- Is: func() *shimast.Node {
343
- return nativefactories.ExpressionFactory.IsInstanceOf("Map", props.Input, props.Context.Emit)
344
- },
345
- Value: func() *shimast.Node {
346
- explore := props.Explore
347
- explore.From = "array"
348
- return notationGeneralProgrammer_explore_maps(notationGeneralProgrammer_exploreMapsProps{
349
- Context: props.Context,
350
- Config: props.Config,
351
- Functor: props.Functor,
352
- Input: props.Input,
353
- Maps: props.Metadata.Maps,
354
- Explore: explore,
355
- })
356
- },
357
- })
358
- }
359
-
360
- for _, native := range props.Metadata.Natives {
361
- native := native
362
- if native.Name == "WeakSet" || native.Name == "WeakMap" {
363
- continue
364
- }
365
- unions = append(unions, notationGeneralProgrammer_IUnion{
366
- Type: "native",
367
- Is: func() *shimast.Node {
368
- return nativefactories.ExpressionFactory.IsInstanceOf(native.Name, props.Input, props.Context.Emit)
369
- },
370
- Value: func() *shimast.Node {
371
- if _, ok := schemametadata.MetadataSchema_atomicLikeNative(native.Name); ok {
372
- return f.NewCallExpression(
373
- nativefactories.IdentifierFactory.Access(props.Context.Emit, props.Input, "valueOf"),
374
- nil,
375
- nil,
376
- nil,
377
- shimast.NodeFlagsNone,
378
- )
379
- }
380
- return notationGeneralProgrammer_decode_native(struct {
381
- Name string
382
- Input *shimast.Node
383
- }{Name: native.Name, Input: props.Input}, props.Context.Emit)
384
- },
385
- })
386
- }
387
-
388
- if len(props.Metadata.Objects) != 0 {
389
- unions = append(unions, notationGeneralProgrammer_IUnion{
390
- Type: "object",
391
- Is: func() *shimast.Node {
392
- return nativefactories.ExpressionFactory.IsObject(nativefactories.ExpressionFactory_IsObjectProps{
393
- CheckNull: true,
394
- CheckArray: false,
395
- Input: props.Input,
396
- }, props.Context.Emit)
397
- },
398
- Value: func() *shimast.Node {
399
- explore := props.Explore
400
- explore.From = "object"
401
- return notationGeneralProgrammer_explore_objects(notationGeneralProgrammer_exploreObjectsProps{
402
- Context: props.Context,
403
- Config: props.Config,
404
- Functor: props.Functor,
405
- Input: props.Input,
406
- Metadata: props.Metadata,
407
- Explore: explore,
408
- })
409
- },
410
- })
411
- }
412
-
413
- if len(unions) == 0 {
414
- return props.Input
415
- }
416
- if len(unions) == 1 && props.Metadata.Size() == 1 {
417
- value := unions[0].Value()
418
- if (props.Metadata.Nullable || props.Metadata.IsRequired() == false) && notationGeneralProgrammer_is_instance(props.Metadata) {
419
- value = nativefactories.ExpressionFactory.Conditional(
420
- props.Input,
421
- value,
422
- props.Input,
423
- props.Context.Emit,
424
- )
425
- }
426
- return f.NewAsExpression(value, nativefactories.TypeFactory.Keyword("any", props.Context.Emit))
427
- }
428
- last := props.Input
429
- for i := len(unions) - 1; i >= 0; i-- {
430
- union := unions[i]
431
- last = nativefactories.ExpressionFactory.Conditional(
432
- union.Is(),
433
- union.Value(),
434
- last,
435
- props.Context.Emit,
436
- )
437
- }
438
- return f.NewAsExpression(last, nativefactories.TypeFactory.Keyword("any", props.Context.Emit))
439
- }
440
-
441
- func notationGeneralProgrammer_decode_object(props struct {
442
- Functor *nativehelpers.FunctionProgrammer
443
- Object *schemametadata.MetadataObjectType
444
- Input *shimast.Node
445
- Explore nativeinternal.FeatureProgrammer_IExplore
446
- }) *shimast.Node {
447
- return nativeinternal.FeatureProgrammer.Decode_object(nativeinternal.FeatureProgrammer_DecodeObjectProps{
448
- Config: nativeinternal.FeatureProgrammer_DecodeObjectConfig{Trace: false, Path: false, Prefix: notationGeneralProgrammer_PREFIX, Visited: props.Functor.Visited()},
449
- Functor: props.Functor,
450
- Object: props.Object,
451
- Input: props.Input,
452
- Explore: props.Explore,
453
- })
454
- }
455
-
456
- type notationGeneralProgrammer_decodeArrayProps struct {
457
- Context nativecontext.ITypiaContext
458
- Config nativeinternal.FeatureProgrammer_IConfig
459
- Functor *nativehelpers.FunctionProgrammer
460
- Input *shimast.Node
461
- Array *schemametadata.MetadataArray
462
- Explore nativeinternal.FeatureProgrammer_IExplore
463
- }
464
-
465
- func notationGeneralProgrammer_decode_array(props notationGeneralProgrammer_decodeArrayProps) *shimast.Node {
466
- f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
467
- if props.Array.Type.Recursive {
468
- index := 0
469
- if props.Array.Type.Index != nil {
470
- index = *props.Array.Type.Index
471
- }
472
- return f.NewCallExpression(
473
- f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%sa%d", props.Config.Prefix, index))),
474
- nil,
475
- nil,
476
- f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
477
- Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
478
- Explore: notationGeneralProgrammer_explore_with(props.Explore, "function", "array"),
479
- Input: props.Input,
480
- })),
481
- shimast.NodeFlagsNone,
482
- )
483
- }
484
- return notationGeneralProgrammer_decode_array_inline(props)
485
- }
486
-
487
- func notationGeneralProgrammer_decode_array_inline(props notationGeneralProgrammer_decodeArrayProps) *shimast.Node {
488
- return nativeinternal.FeatureProgrammer.Decode_array(nativeinternal.FeatureProgrammer_DecodeArrayProps{
489
- Config: nativeinternal.FeatureProgrammer_DecodeArrayConfig{
490
- Trace: props.Config.Trace,
491
- Path: props.Config.Path,
492
- Prefix: props.Config.Prefix,
493
- Decoder: props.Config.Decoder,
494
- },
495
- Functor: props.Functor,
496
- Combiner: func(next struct {
497
- Input *shimast.Expression
498
- Arrow *shimast.Node
499
- }) *shimast.Node {
500
- return nativehelpers.NotationJoiner.Array(nativehelpers.NotationJoiner_ArrayProps{
501
- Input: next.Input,
502
- Arrow: next.Arrow,
503
- Emit: props.Context.Emit,
504
- })
505
- },
506
- Array: props.Array,
507
- Input: props.Input,
508
- Explore: props.Explore,
509
- })
510
- }
511
-
512
- type notationGeneralProgrammer_decodeTupleProps struct {
513
- Config nativeinternal.FeatureProgrammer_IConfig
514
- Rename NotationGeneralProgrammer_IRename
515
- Context nativecontext.ITypiaContext
516
- Functor *nativehelpers.FunctionProgrammer
517
- Tuple *schemametadata.MetadataTuple
518
- Explore nativeinternal.FeatureProgrammer_IExplore
519
- Input *shimast.Node
520
- }
521
-
522
- func notationGeneralProgrammer_decode_tuple(props notationGeneralProgrammer_decodeTupleProps) *shimast.Node {
523
- f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
524
- if props.Tuple.Type.Recursive {
525
- index := 0
526
- if props.Tuple.Type.Index != nil {
527
- index = *props.Tuple.Type.Index
528
- }
529
- return f.NewCallExpression(
530
- f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%st%d", props.Config.Prefix, index))),
531
- nil,
532
- nil,
533
- f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
534
- Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
535
- Explore: notationGeneralProgrammer_explore_with(props.Explore, "function", props.Explore.From),
536
- Input: props.Input,
537
- })),
538
- shimast.NodeFlagsNone,
539
- )
540
- }
541
- return notationGeneralProgrammer_decode_tuple_inline(notationGeneralProgrammer_decodeTupleInlineProps{
542
- Context: props.Context,
543
- Rename: props.Rename,
544
- Config: props.Config,
545
- Functor: props.Functor,
546
- Tuple: props.Tuple.Type,
547
- Explore: props.Explore,
548
- Input: props.Input,
549
- })
550
- }
551
-
552
- type notationGeneralProgrammer_decodeTupleInlineProps struct {
553
- Context nativecontext.ITypiaContext
554
- Rename NotationGeneralProgrammer_IRename
555
- Config nativeinternal.FeatureProgrammer_IConfig
556
- Functor *nativehelpers.FunctionProgrammer
557
- Explore nativeinternal.FeatureProgrammer_IExplore
558
- Tuple *schemametadata.MetadataTupleType
559
- Input *shimast.Node
560
- }
561
-
562
- func notationGeneralProgrammer_decode_tuple_inline(props notationGeneralProgrammer_decodeTupleInlineProps) *shimast.Node {
563
- f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
564
- elements := []*shimast.Node{}
565
- for index, elem := range props.Tuple.Elements {
566
- if elem.Rest != nil {
567
- continue
568
- }
569
- explore := props.Explore
570
- explore.From = "array"
571
- if len(props.Explore.Postfix) != 0 {
572
- explore.Postfix = fmt.Sprintf("%s[%d]\"", nativeiterate.Postfix_of_tuple_export(props.Explore.Postfix), index)
573
- } else {
574
- explore.Postfix = fmt.Sprintf("\"[%d]\"", index)
575
- }
576
- elements = append(elements, notationGeneralProgrammer_decode(struct {
577
- Config nativeinternal.FeatureProgrammer_IConfig
578
- Rename NotationGeneralProgrammer_IRename
579
- Context nativecontext.ITypiaContext
580
- Functor *nativehelpers.FunctionProgrammer
581
- Metadata *schemametadata.MetadataSchema
582
- Explore nativeinternal.FeatureProgrammer_IExplore
583
- Input *shimast.Node
584
- }{
585
- Config: props.Config,
586
- Rename: props.Rename,
587
- Context: props.Context,
588
- Functor: props.Functor,
589
- Metadata: elem,
590
- Explore: explore,
591
- Input: f.NewElementAccessExpression(props.Input, nil, nativefactories.ExpressionFactory.Number(index, props.Context.Emit), shimast.NodeFlagsNone),
592
- }))
593
- }
594
- var rest *shimast.Node
595
- if len(props.Tuple.Elements) != 0 {
596
- last := props.Tuple.Elements[len(props.Tuple.Elements)-1]
597
- if last.Rest != nil {
598
- start := len(props.Tuple.Elements) - 1
599
- explore := props.Explore
600
- explore.Start = &start
601
- rest = notationGeneralProgrammer_decode(struct {
602
- Config nativeinternal.FeatureProgrammer_IConfig
603
- Rename NotationGeneralProgrammer_IRename
604
- Context nativecontext.ITypiaContext
605
- Functor *nativehelpers.FunctionProgrammer
606
- Metadata *schemametadata.MetadataSchema
607
- Explore nativeinternal.FeatureProgrammer_IExplore
608
- Input *shimast.Node
609
- }{
610
- Config: props.Config,
611
- Rename: props.Rename,
612
- Context: props.Context,
613
- Functor: props.Functor,
614
- Input: f.NewCallExpression(
615
- nativefactories.IdentifierFactory.Access(props.Context.Emit, props.Input, "slice"),
616
- nil,
617
- nil,
618
- f.NewNodeList([]*shimast.Node{nativefactories.ExpressionFactory.Number(start, props.Context.Emit)}),
619
- shimast.NodeFlagsNone,
620
- ),
621
- Metadata: nativeiterate.Wrap_metadata_rest_tuple_export(last.Rest),
622
- Explore: explore,
623
- })
624
- }
625
- }
626
- return nativehelpers.NotationJoiner.Tuple(nativehelpers.NotationJoiner_TupleProps{
627
- Elements: elements,
628
- Rest: rest,
629
- Emit: props.Context.Emit,
630
- })
631
- }
632
-
633
- func notationGeneralProgrammer_decode_native(props struct {
634
- Name string
635
- Input *shimast.Node
636
- }, emit ...*shimprinter.EmitContext) *shimast.Node {
637
- f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, emit...)
638
- if props.Name == "Date" {
639
- return f.NewNewExpression(
640
- f.NewIdentifier(props.Name),
641
- nil,
642
- f.NewNodeList([]*shimast.Node{props.Input}),
643
- )
644
- }
645
- return props.Input
646
- }
647
-
648
- type notationGeneralProgrammer_exploreSetsProps struct {
649
- Context nativecontext.ITypiaContext
650
- Config nativeinternal.FeatureProgrammer_IConfig
651
- Functor *nativehelpers.FunctionProgrammer
652
- Input *shimast.Node
653
- Explore nativeinternal.FeatureProgrammer_IExplore
654
- Sets []*schemametadata.MetadataSet
655
- }
656
-
657
- func notationGeneralProgrammer_explore_sets(props notationGeneralProgrammer_exploreSetsProps) *shimast.Node {
658
- f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
659
- return f.NewCallExpression(
660
- nativehelpers.UnionExplorer.Set(nativehelpers.UnionExplorer_SetProps{
661
- Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
662
- Checker: func(v nativehelpers.UnionExplorer_ArrayLikeCheckerProps) *shimast.Node {
663
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
664
- Context: props.Context,
665
- Functor: props.Functor,
666
- Input: v.Input,
667
- Metadata: v.Definition.(*schemametadata.MetadataSchema),
668
- Explore: notationGeneralProgrammer_checker_explore(v.Explore),
669
- })
670
- },
671
- Decoder: func(v nativehelpers.UnionExplorer_ArrayLikeDecoderProps) *shimast.Node {
672
- return f.NewNewExpression(
673
- f.NewIdentifier("Set"),
674
- f.NewNodeList([]*shimast.Node{nativefactories.TypeFactory.Keyword("any", props.Context.Emit)}),
675
- f.NewNodeList([]*shimast.Node{
676
- notationGeneralProgrammer_decode_array(notationGeneralProgrammer_decodeArrayProps{
677
- Context: props.Context,
678
- Config: props.Config,
679
- Functor: props.Functor,
680
- Input: v.Input,
681
- Array: v.Definition.(*schemametadata.MetadataArray),
682
- Explore: notationGeneralProgrammer_feature_explore(v.Explore),
683
- }),
684
- }),
685
- )
686
- },
687
- Empty: f.NewNewExpression(
688
- f.NewIdentifier("Set"),
689
- f.NewNodeList([]*shimast.Node{nativefactories.TypeFactory.Keyword("any", props.Context.Emit)}),
690
- nil,
691
- ),
692
- Success: f.NewKeywordExpression(shimast.KindTrueKeyword),
693
- Failure: func(v nativehelpers.UnionExplorer_ArrayLikeFailureProps) *shimast.Node {
694
- return notationGeneralProgrammer_create_throw_error(notationGeneralProgrammer_throwProps{
695
- Context: props.Context,
696
- Functor: props.Functor,
697
- Expected: v.Expected,
698
- Input: v.Input,
699
- })
700
- },
701
- },
702
- Parameters: nil,
703
- Input: props.Input,
704
- Sets: props.Sets,
705
- Explore: props.Explore,
706
- Emit: props.Context.Emit,
707
- }),
708
- nil,
709
- nil,
710
- nil,
711
- shimast.NodeFlagsNone,
712
- )
713
- }
714
-
715
- type notationGeneralProgrammer_exploreMapsProps struct {
716
- Context nativecontext.ITypiaContext
717
- Config nativeinternal.FeatureProgrammer_IConfig
718
- Functor *nativehelpers.FunctionProgrammer
719
- Input *shimast.Node
720
- Maps []*schemametadata.MetadataMap
721
- Explore nativeinternal.FeatureProgrammer_IExplore
722
- }
723
-
724
- func notationGeneralProgrammer_explore_maps(props notationGeneralProgrammer_exploreMapsProps) *shimast.Node {
725
- f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
726
- return f.NewCallExpression(
727
- nativehelpers.UnionExplorer.Map(nativehelpers.UnionExplorer_MapProps{
728
- Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
729
- Checker: func(v nativehelpers.UnionExplorer_ArrayLikeCheckerProps) *shimast.Node {
730
- pair := v.Definition.([]*schemametadata.MetadataSchema)
731
- first := nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
732
- Context: props.Context,
733
- Functor: props.Functor,
734
- Input: f.NewElementAccessExpression(v.Input, nil, nativefactories.ExpressionFactory.Number(0, props.Context.Emit), shimast.NodeFlagsNone),
735
- Metadata: pair[0],
736
- Explore: notationGeneralProgrammer_checker_explore_with_postfix(v.Explore, "[0]"),
737
- })
738
- second := nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
739
- Context: props.Context,
740
- Functor: props.Functor,
741
- Input: f.NewElementAccessExpression(v.Input, nil, nativefactories.ExpressionFactory.Number(1, props.Context.Emit), shimast.NodeFlagsNone),
742
- Metadata: pair[1],
743
- Explore: notationGeneralProgrammer_checker_explore_with_postfix(v.Explore, "[1]"),
744
- })
745
- return notationGeneralProgrammer_binary(first, shimast.KindAmpersandAmpersandToken, second, props.Context.Emit)
746
- },
747
- Decoder: func(v nativehelpers.UnionExplorer_ArrayLikeDecoderProps) *shimast.Node {
748
- return f.NewNewExpression(
749
- f.NewIdentifier("Map"),
750
- f.NewNodeList([]*shimast.Node{
751
- nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
752
- nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
753
- }),
754
- f.NewNodeList([]*shimast.Node{
755
- notationGeneralProgrammer_decode_array(notationGeneralProgrammer_decodeArrayProps{
756
- Context: props.Context,
757
- Config: props.Config,
758
- Functor: props.Functor,
759
- Input: v.Input,
760
- Array: v.Definition.(*schemametadata.MetadataArray),
761
- Explore: notationGeneralProgrammer_feature_explore(v.Explore),
762
- }),
763
- }),
764
- )
765
- },
766
- Empty: f.NewNewExpression(
767
- f.NewIdentifier("Map"),
768
- f.NewNodeList([]*shimast.Node{
769
- nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
770
- nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
771
- }),
772
- nil,
773
- ),
774
- Success: f.NewKeywordExpression(shimast.KindTrueKeyword),
775
- Failure: func(v nativehelpers.UnionExplorer_ArrayLikeFailureProps) *shimast.Node {
776
- return notationGeneralProgrammer_create_throw_error(notationGeneralProgrammer_throwProps{
777
- Context: props.Context,
778
- Functor: props.Functor,
779
- Expected: v.Expected,
780
- Input: v.Input,
781
- })
782
- },
783
- },
784
- Parameters: nil,
785
- Input: props.Input,
786
- Maps: props.Maps,
787
- Explore: props.Explore,
788
- Emit: props.Context.Emit,
789
- }),
790
- nil,
791
- nil,
792
- nil,
793
- shimast.NodeFlagsNone,
794
- )
795
- }
796
-
797
- type notationGeneralProgrammer_exploreObjectsProps struct {
798
- Context nativecontext.ITypiaContext
799
- Config nativeinternal.FeatureProgrammer_IConfig
800
- Functor *nativehelpers.FunctionProgrammer
801
- Input *shimast.Node
802
- Metadata *schemametadata.MetadataSchema
803
- Explore nativeinternal.FeatureProgrammer_IExplore
804
- }
805
-
806
- func notationGeneralProgrammer_explore_objects(props notationGeneralProgrammer_exploreObjectsProps) *shimast.Node {
807
- f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
808
- if len(props.Metadata.Objects) == 1 {
809
- return notationGeneralProgrammer_decode_object(struct {
810
- Functor *nativehelpers.FunctionProgrammer
811
- Object *schemametadata.MetadataObjectType
812
- Input *shimast.Node
813
- Explore nativeinternal.FeatureProgrammer_IExplore
814
- }{Functor: props.Functor, Object: props.Metadata.Objects[0].Type, Input: props.Input, Explore: props.Explore})
815
- }
816
- index := 0
817
- if props.Metadata.Union_index != nil {
818
- index = *props.Metadata.Union_index
819
- }
820
- return f.NewCallExpression(
821
- f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%su%d", notationGeneralProgrammer_PREFIX, index))),
822
- nil,
823
- nil,
824
- f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
825
- Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
826
- Explore: props.Explore,
827
- Input: props.Input,
828
- })),
829
- shimast.NodeFlagsNone,
830
- )
831
- }
832
-
833
- type notationGeneralProgrammer_exploreArraysProps struct {
834
- Context nativecontext.ITypiaContext
835
- Config nativeinternal.FeatureProgrammer_IConfig
836
- Functor *nativehelpers.FunctionProgrammer
837
- Input *shimast.Node
838
- Arrays []*schemametadata.MetadataArray
839
- Explore nativeinternal.FeatureProgrammer_IExplore
840
- }
841
-
842
- func notationGeneralProgrammer_explore_arrays(props notationGeneralProgrammer_exploreArraysProps) *shimast.Node {
843
- f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
844
- return notationGeneralProgrammer_explore_array_like_union_types(notationGeneralProgrammer_exploreArrayLikeUnionTypesProps[*schemametadata.MetadataArray]{
845
- Context: props.Context,
846
- Config: props.Config,
847
- Functor: props.Functor,
848
- Factory: func(next notationGeneralProgrammer_arrayLikeFactoryProps[*schemametadata.MetadataArray]) *shimast.Node {
849
- return nativehelpers.UnionExplorer.Array(nativehelpers.UnionExplorer_ArrayProps{
850
- Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
851
- Checker: func(v nativehelpers.UnionExplorer_ArrayLikeCheckerProps) *shimast.Node {
852
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
853
- Context: props.Context,
854
- Functor: props.Functor,
855
- Input: v.Input,
856
- Metadata: v.Definition.(*schemametadata.MetadataSchema),
857
- Explore: notationGeneralProgrammer_checker_explore(v.Explore),
858
- })
859
- },
860
- Decoder: func(v nativehelpers.UnionExplorer_ArrayLikeDecoderProps) *shimast.Node {
861
- return notationGeneralProgrammer_decode_array(notationGeneralProgrammer_decodeArrayProps{
862
- Context: props.Context,
863
- Config: props.Config,
864
- Functor: props.Functor,
865
- Input: v.Input,
866
- Array: v.Definition.(*schemametadata.MetadataArray),
867
- Explore: notationGeneralProgrammer_feature_explore(v.Explore),
868
- })
869
- },
870
- Empty: f.NewIdentifier("[]"),
871
- Success: f.NewKeywordExpression(shimast.KindTrueKeyword),
872
- Failure: func(v nativehelpers.UnionExplorer_ArrayLikeFailureProps) *shimast.Node {
873
- return notationGeneralProgrammer_create_throw_error(notationGeneralProgrammer_throwProps{
874
- Context: props.Context,
875
- Functor: props.Functor,
876
- Expected: v.Expected,
877
- Input: v.Input,
878
- })
879
- },
880
- },
881
- Parameters: next.Parameters,
882
- Input: next.Input,
883
- Arrays: next.Definitions,
884
- Explore: next.Explore,
885
- Emit: props.Context.Emit,
886
- })
887
- },
888
- Definitions: props.Arrays,
889
- Input: props.Input,
890
- Explore: props.Explore,
891
- })
892
- }
893
-
894
- type notationGeneralProgrammer_arrayLikeFactoryProps[T any] struct {
895
- Parameters []*shimast.Node
896
- Input *shimast.Node
897
- Definitions []T
898
- Explore nativeinternal.FeatureProgrammer_IExplore
899
- }
900
-
901
- type notationGeneralProgrammer_exploreArrayLikeUnionTypesProps[T interface {
902
- *schemametadata.MetadataArray | *schemametadata.MetadataTuple
903
- }] struct {
904
- Context nativecontext.ITypiaContext
905
- Config nativeinternal.FeatureProgrammer_IConfig
906
- Functor *nativehelpers.FunctionProgrammer
907
- Factory func(next notationGeneralProgrammer_arrayLikeFactoryProps[T]) *shimast.Node
908
- Input *shimast.Node
909
- Definitions []T
910
- Explore nativeinternal.FeatureProgrammer_IExplore
911
- }
912
-
913
- func notationGeneralProgrammer_explore_array_like_union_types[T interface {
914
- *schemametadata.MetadataArray | *schemametadata.MetadataTuple
915
- }](props notationGeneralProgrammer_exploreArrayLikeUnionTypesProps[T]) *shimast.Node {
916
- f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
917
- arrow := func(next struct {
918
- Parameters []*shimast.Node
919
- Explore nativeinternal.FeatureProgrammer_IExplore
920
- Input *shimast.Node
921
- }) *shimast.Node {
922
- return props.Factory(notationGeneralProgrammer_arrayLikeFactoryProps[T]{
923
- Parameters: next.Parameters,
924
- Definitions: props.Definitions,
925
- Explore: next.Explore,
926
- Input: next.Input,
927
- })
928
- }
929
- arrayExplore := props.Explore
930
- arrayExplore.Source = "function"
931
- arrayExplore.From = "array"
932
- return f.NewCallExpression(
933
- f.NewIdentifier(props.Functor.EmplaceUnion(props.Config.Prefix, notationGeneralProgrammer_array_like_names(props.Definitions), func() *shimast.Node {
934
- explore := arrayExplore
935
- explore.Postfix = ""
936
- return arrow(struct {
937
- Parameters []*shimast.Node
938
- Explore nativeinternal.FeatureProgrammer_IExplore
939
- Input *shimast.Node
940
- }{
941
- Parameters: nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
942
- Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
943
- Type: nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
944
- Input: f.NewIdentifier("input"),
945
- }),
946
- Explore: explore,
947
- Input: f.NewIdentifier("input"),
948
- })
949
- })),
950
- nil,
951
- nil,
952
- f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
953
- Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
954
- Explore: arrayExplore,
955
- Input: props.Input,
956
- })),
957
- shimast.NodeFlagsNone,
958
- )
959
- }
960
-
961
- func notationGeneralProgrammer_configure(props struct {
962
- Rename NotationGeneralProgrammer_IRename
963
- Context nativecontext.ITypiaContext
964
- Functor *nativehelpers.FunctionProgrammer
965
- }) nativeinternal.FeatureProgrammer_IConfig {
966
- f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
967
- var config nativeinternal.FeatureProgrammer_IConfig
968
- config = nativeinternal.FeatureProgrammer_IConfig{
969
- Types: nativeinternal.FeatureProgrammer_IConfig_ITypes{
970
- Input: func(t *shimchecker.Type, name *string) *shimast.TypeNode {
971
- return f.NewTypeReferenceNode(f.NewIdentifier(notationGeneralProgrammer_type_name(props.Context, t, name)), nil)
972
- },
973
- Output: func(t *shimchecker.Type, name *string) *shimast.TypeNode {
974
- return NotationGeneralProgrammer.ReturnType(NotationGeneralProgrammer_ReturnTypeProps{
975
- Rename: props.Rename,
976
- Context: props.Context,
977
- Type: notationGeneralProgrammer_type_name(props.Context, t, name),
978
- })
979
- },
980
- },
981
- Prefix: notationGeneralProgrammer_PREFIX,
982
- Trace: false,
983
- Path: false,
984
- Initializer: notationGeneralProgrammer_initializer,
985
- Visited: props.Functor.Visited,
986
- VisitGuard: func(next nativeinternal.FeatureProgrammer_VisitGuardProps) *shimast.Node {
987
- return nativeinternal.FeatureProgrammer.VisitGuardRebuild(next.Key, false, next.Body, props.Context.Emit)
988
- },
989
- Decoder: func(next nativeinternal.FeatureProgrammer_DecoderProps) *shimast.Node {
990
- return notationGeneralProgrammer_decode(struct {
991
- Config nativeinternal.FeatureProgrammer_IConfig
992
- Rename NotationGeneralProgrammer_IRename
993
- Context nativecontext.ITypiaContext
994
- Functor *nativehelpers.FunctionProgrammer
995
- Metadata *schemametadata.MetadataSchema
996
- Explore nativeinternal.FeatureProgrammer_IExplore
997
- Input *shimast.Node
998
- }{Config: config, Rename: props.Rename, Context: props.Context, Functor: props.Functor, Metadata: next.Metadata, Explore: next.Explore, Input: next.Input})
999
- },
1000
- Objector: nativeinternal.FeatureProgrammer_IConfig_IObjector{
1001
- Checker: func(next nativeinternal.FeatureProgrammer_ObjectorCheckerProps) *shimast.Node {
1002
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
1003
- Context: props.Context,
1004
- Functor: props.Functor,
1005
- Input: next.Input,
1006
- Metadata: next.Metadata,
1007
- Explore: notationGeneralProgrammer_checker_explore(next.Explore),
1008
- })
1009
- },
1010
- Decoder: func(next nativeinternal.FeatureProgrammer_ObjectorDecoderProps) *shimast.Node {
1011
- return notationGeneralProgrammer_decode_object(struct {
1012
- Functor *nativehelpers.FunctionProgrammer
1013
- Object *schemametadata.MetadataObjectType
1014
- Input *shimast.Node
1015
- Explore nativeinternal.FeatureProgrammer_IExplore
1016
- }{Functor: props.Functor, Object: next.Object, Input: next.Input, Explore: next.Explore})
1017
- },
1018
- Joiner: func(next nativeinternal.FeatureProgrammer_ObjectorJoinerProps) *shimast.Node {
1019
- return nativehelpers.NotationJoiner.Object(nativehelpers.NotationJoiner_ObjectProps{
1020
- Rename: props.Rename.Func,
1021
- Input: next.Input,
1022
- Entries: next.Entries,
1023
- Emit: props.Context.Emit,
1024
- })
1025
- },
1026
- Unionizer: func(next nativeinternal.FeatureProgrammer_ObjectorUnionizerProps) *shimast.Node {
1027
- return nativeiterate.Decode_union_object(nativeiterate.Decode_union_objectProps{
1028
- Checker: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
1029
- return nativeprogrammers.IsProgrammer.Decode_object(nativeprogrammers.IsProgrammer_DecodeObjectProps{
1030
- Context: props.Context,
1031
- Functor: props.Functor,
1032
- Object: v.Object,
1033
- Input: v.Input,
1034
- Explore: notationGeneralProgrammer_feature_explore(v.Explore),
1035
- })
1036
- },
1037
- Decoder: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
1038
- return notationGeneralProgrammer_decode_object(struct {
1039
- Functor *nativehelpers.FunctionProgrammer
1040
- Object *schemametadata.MetadataObjectType
1041
- Input *shimast.Node
1042
- Explore nativeinternal.FeatureProgrammer_IExplore
1043
- }{Functor: props.Functor, Object: v.Object, Input: v.Input, Explore: notationGeneralProgrammer_feature_explore(v.Explore)})
1044
- },
1045
- Success: func(exp *shimast.Expression) *shimast.Node {
1046
- return exp
1047
- },
1048
- Escaper: func(v nativeiterate.Decode_union_object_escape) *shimast.Node {
1049
- return notationGeneralProgrammer_create_throw_error(notationGeneralProgrammer_throwProps{
1050
- Context: props.Context,
1051
- Functor: props.Functor,
1052
- Expected: v.Expected,
1053
- Input: v.Input,
1054
- })
1055
- },
1056
- Input: next.Input,
1057
- Objects: next.Objects,
1058
- Explore: next.Explore,
1059
- })
1060
- },
1061
- Failure: func(next nativeinternal.FeatureProgrammer_ObjectorFailureProps) *shimast.Node {
1062
- return notationGeneralProgrammer_create_throw_error(notationGeneralProgrammer_throwProps{
1063
- Context: props.Context,
1064
- Functor: props.Functor,
1065
- Expected: next.Expected,
1066
- Input: next.Input,
1067
- })
1068
- },
1069
- },
1070
- Generator: nativeinternal.FeatureProgrammer_IConfig_IGenerator{
1071
- Arrays: func(collection *schemametadata.MetadataCollection) []*shimast.Node {
1072
- return notationGeneralProgrammer_write_array_functions(struct {
1073
- Config nativeinternal.FeatureProgrammer_IConfig
1074
- Context nativecontext.ITypiaContext
1075
- Functor *nativehelpers.FunctionProgrammer
1076
- Collection *schemametadata.MetadataCollection
1077
- }{Config: config, Context: props.Context, Functor: props.Functor, Collection: collection})
1078
- },
1079
- Tuples: func(collection *schemametadata.MetadataCollection) []*shimast.Node {
1080
- return notationGeneralProgrammer_write_tuple_functions(struct {
1081
- Config nativeinternal.FeatureProgrammer_IConfig
1082
- Rename NotationGeneralProgrammer_IRename
1083
- Context nativecontext.ITypiaContext
1084
- Functor *nativehelpers.FunctionProgrammer
1085
- Collection *schemametadata.MetadataCollection
1086
- }{Config: config, Rename: props.Rename, Context: props.Context, Functor: props.Functor, Collection: collection})
1087
- },
1088
- },
1089
- }
1090
- return config
1091
- }
1092
-
1093
- func notationGeneralProgrammer_initializer(props nativeinternal.FeatureProgrammer_InitializerProps) nativeinternal.FeatureProgrammer_InitializerOutput {
1094
- collection := schemametadata.NewMetadataCollection()
1095
- result := nativefactories.MetadataFactory.Analyze(nativefactories.MetadataFactory_IProps{
1096
- Checker: props.Context.Checker,
1097
- Options: nativefactories.MetadataFactory_IOptions{
1098
- Escape: false,
1099
- Constant: true,
1100
- Absorb: true,
1101
- },
1102
- Components: collection,
1103
- Type: props.Type,
1104
- })
1105
- if result.Success == false {
1106
- panic(nativecontext.TransformerError_from(struct {
1107
- Code string
1108
- Errors []nativecontext.TransformerError_MetadataFactory_IError
1109
- }{
1110
- Code: props.Functor.Method,
1111
- Errors: notationGeneralProgrammer_errors(result.Errors),
1112
- }))
1113
- }
1114
- if nativeinternal.FeatureProgrammer.CollectionRecursive(collection) {
1115
- props.Functor.SetVisited(true)
1116
- }
1117
- return nativeinternal.FeatureProgrammer_InitializerOutput{
1118
- Collection: collection,
1119
- Metadata: result.Data,
1120
- }
1121
- }
1122
-
1123
- type notationGeneralProgrammer_throwProps struct {
1124
- Context nativecontext.ITypiaContext
1125
- Functor *nativehelpers.FunctionProgrammer
1126
- Expected string
1127
- Input *shimast.Node
1128
- }
1129
-
1130
- func notationGeneralProgrammer_create_throw_error(props notationGeneralProgrammer_throwProps) *shimast.Node {
1131
- f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
1132
- return f.NewExpressionStatement(
1133
- f.NewCallExpression(
1134
- notationGeneralProgrammer_internal(props.Context, "throwTypeGuardError"),
1135
- nil,
1136
- f.NewNodeList(nil),
1137
- f.NewNodeList([]*shimast.Node{
1138
- f.NewObjectLiteralExpression(
1139
- f.NewNodeList([]*shimast.Node{
1140
- f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("method", props.Context.Emit), nil, nil, f.NewStringLiteral(props.Functor.Method, shimast.TokenFlagsNone)),
1141
- f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("expected", props.Context.Emit), nil, nil, f.NewStringLiteral(props.Expected, shimast.TokenFlagsNone)),
1142
- f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("value", props.Context.Emit), nil, nil, props.Input),
1143
- }),
1144
- true,
1145
- ),
1146
- }),
1147
- shimast.NodeFlagsNone,
1148
- ),
1149
- )
1150
- }
1151
-
1152
- func notationGeneralProgrammer_is_instance(metadata *schemametadata.MetadataSchema) bool {
1153
- return len(metadata.Objects) != 0 ||
1154
- len(metadata.Arrays) != 0 ||
1155
- len(metadata.Tuples) != 0 ||
1156
- len(metadata.Sets) != 0 ||
1157
- len(metadata.Maps) != 0 ||
1158
- len(metadata.Natives) != 0 ||
1159
- (metadata.Rest != nil && notationGeneralProgrammer_is_instance(metadata.Rest))
1160
- }
1161
-
1162
- type notationGeneralProgrammer_IUnion struct {
1163
- Type string
1164
- Is func() *shimast.Node
1165
- Value func() *shimast.Node
1166
- }
1167
-
1168
- func notationGeneralProgrammer_binary(left *shimast.Node, operator shimast.Kind, right *shimast.Node, emit ...*shimprinter.EmitContext) *shimast.Node {
1169
- f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, emit...)
1170
- return f.NewBinaryExpression(nil, left, nil, f.NewToken(operator), right)
1171
- }
1172
-
1173
- func notationGeneralProgrammer_internal(context nativecontext.ITypiaContext, name string) *shimast.Node {
1174
- if importer := context.Importer; importer != nil {
1175
- return importer.Internal(name)
1176
- }
1177
- return nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, context.Emit).NewIdentifier(name)
1178
- }
1179
-
1180
- func notationGeneralProgrammer_import_type(context nativecontext.ITypiaContext, props nativecontext.ImportProgrammer_TypeProps) *shimast.Node {
1181
- if importer := context.Importer; importer != nil {
1182
- return importer.Type(props)
1183
- }
1184
- if str, ok := props.Name.(string); ok {
1185
- f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, context.Emit)
1186
- return f.NewTypeReferenceNode(f.NewIdentifier(str), f.NewNodeList(props.Arguments))
1187
- }
1188
- return props.Name.(*shimast.Node)
1189
- }
1190
-
1191
- func notationGeneralProgrammer_type_name(context nativecontext.ITypiaContext, typ *shimchecker.Type, name *string) string {
1192
- if name != nil {
1193
- return *name
1194
- }
1195
- return nativefactories.TypeFactory.GetFullName(nativefactories.TypeFactory_GetFullNameProps{
1196
- Checker: context.Checker,
1197
- Type: typ,
1198
- })
1199
- }
1200
-
1201
- func notationGeneralProgrammer_method_text(modulo *shimast.Node) string {
1202
- return nativehelpers.ModuloMethodText(modulo)
1203
- }
1204
-
1205
- func notationGeneralProgrammer_feature_explore(input any) nativeinternal.FeatureProgrammer_IExplore {
1206
- switch v := input.(type) {
1207
- case nativeinternal.FeatureProgrammer_IExplore:
1208
- return v
1209
- case *nativeinternal.FeatureProgrammer_IExplore:
1210
- return *v
1211
- default:
1212
- return nativeinternal.FeatureProgrammer_IExplore{}
1213
- }
1214
- }
1215
-
1216
- func notationGeneralProgrammer_checker_explore(input any) nativeinternal.CheckerProgrammer_IExplore {
1217
- v := notationGeneralProgrammer_feature_explore(input)
1218
- return nativeinternal.CheckerProgrammer_IExplore{
1219
- Tracable: v.Tracable,
1220
- Source: v.Source,
1221
- From: v.From,
1222
- Postfix: v.Postfix,
1223
- Start: v.Start,
1224
- }
1225
- }
1226
-
1227
- func notationGeneralProgrammer_checker_explore_with_postfix(input any, postfix string) nativeinternal.CheckerProgrammer_IExplore {
1228
- v := notationGeneralProgrammer_checker_explore(input)
1229
- v.Postfix = v.Postfix + postfix
1230
- return v
1231
- }
1232
-
1233
- func notationGeneralProgrammer_explore_with(explore nativeinternal.FeatureProgrammer_IExplore, source string, from string) nativeinternal.FeatureProgrammer_IExplore {
1234
- explore.Source = source
1235
- explore.From = from
1236
- return explore
1237
- }
1238
-
1239
- func notationGeneralProgrammer_errors(errors []nativefactories.MetadataFactory_IError) []nativecontext.TransformerError_MetadataFactory_IError {
1240
- output := make([]nativecontext.TransformerError_MetadataFactory_IError, 0, len(errors))
1241
- for _, err := range errors {
1242
- output = append(output, nativecontext.TransformerError_MetadataFactory_IError{
1243
- Name: err.Name,
1244
- Explore: nativecontext.TransformerError_MetadataFactory_IExplore{
1245
- Object: err.Explore.Object,
1246
- Property: err.Explore.Property,
1247
- Parameter: err.Explore.Parameter,
1248
- Output: err.Explore.Output,
1249
- },
1250
- Messages: append([]string{}, err.Messages...),
1251
- })
1252
- }
1253
- return output
1254
- }
1255
-
1256
- func notationGeneralProgrammer_some_arrays(values []*schemametadata.MetadataArray, pred func(*schemametadata.MetadataArray) bool) bool {
1257
- for _, value := range values {
1258
- if pred(value) {
1259
- return true
1260
- }
1261
- }
1262
- return false
1263
- }
1264
-
1265
- func notationGeneralProgrammer_some_tuples(values []*schemametadata.MetadataTuple, pred func(*schemametadata.MetadataTuple) bool) bool {
1266
- for _, value := range values {
1267
- if pred(value) {
1268
- return true
1269
- }
1270
- }
1271
- return false
1272
- }
1273
-
1274
- func notationGeneralProgrammer_every_schema(values []*schemametadata.MetadataSchema, pred func(*schemametadata.MetadataSchema) bool) bool {
1275
- if len(values) == 0 {
1276
- return false
1277
- }
1278
- for _, value := range values {
1279
- if pred(value) == false {
1280
- return false
1281
- }
1282
- }
1283
- return true
1284
- }
1285
-
1286
- func notationGeneralProgrammer_array_like_names[T interface {
1287
- *schemametadata.MetadataArray | *schemametadata.MetadataTuple
1288
- }](values []T) string {
1289
- names := make([]string, 0, len(values))
1290
- for _, value := range values {
1291
- switch typed := any(value).(type) {
1292
- case *schemametadata.MetadataArray:
1293
- names = append(names, typed.Type.Name)
1294
- case *schemametadata.MetadataTuple:
1295
- names = append(names, typed.Type.Name)
1296
- }
1297
- }
1298
- return strings.Join(names, " | ")
1299
- }
1300
-
1301
- func notationGeneralProgrammer_merge_functions(groups ...map[string]*shimast.Node) map[string]*shimast.Node {
1302
- output := map[string]*shimast.Node{}
1303
- for _, group := range groups {
1304
- for key, value := range group {
1305
- output[key] = value
1306
- }
1307
- }
1308
- return output
1309
- }
1310
-
1311
- func notationGeneralProgrammer_capitalize(str string) string {
1312
- if str == "" {
1313
- return str
1314
- }
1315
- return strings.ToUpper(str[:1]) + str[1:]
1316
- }
1317
-
1318
- var NotationGeneralProgrammer_Camel = NotationGeneralProgrammer_IRename{Name: "camel", Func: notationGeneralProgrammer_camel}
1319
- var NotationGeneralProgrammer_Pascal = NotationGeneralProgrammer_IRename{Name: "pascal", Func: notationGeneralProgrammer_pascal}
1320
- var NotationGeneralProgrammer_Snake = NotationGeneralProgrammer_IRename{Name: "snake", Func: notationGeneralProgrammer_snake}
1321
- var NotationGeneralProgrammer_Kebab = NotationGeneralProgrammer_IRename{Name: "kebab", Func: notationGeneralProgrammer_kebab}
1322
-
1323
- func notationGeneralProgrammer_camel(str string) string {
1324
- return notationGeneralProgrammer_unsnake(str, func(value string) string {
1325
- if value == "" {
1326
- return value
1327
- }
1328
- if value == strings.ToUpper(value) {
1329
- return strings.ToLower(value)
1330
- }
1331
- return strings.ToLower(value[:1]) + value[1:]
1332
- }, func(value string, index int) string {
1333
- if index == 0 {
1334
- return strings.ToLower(value)
1335
- }
1336
- return notationGeneralProgrammer_capitalize(strings.ToLower(value))
1337
- })
1338
- }
1339
-
1340
- func notationGeneralProgrammer_pascal(str string) string {
1341
- return notationGeneralProgrammer_unsnake(str, func(value string) string {
1342
- if value == "" {
1343
- return value
1344
- }
1345
- return strings.ToUpper(value[:1]) + value[1:]
1346
- }, func(value string, index int) string {
1347
- return notationGeneralProgrammer_capitalize(value)
1348
- })
1349
- }
1350
-
1351
- func notationGeneralProgrammer_snake(str string) string {
1352
- if str == "" {
1353
- return str
1354
- }
1355
- prefix := ""
1356
- for len(str) != 0 && str[0] == '_' {
1357
- prefix += "_"
1358
- str = str[1:]
1359
- }
1360
- out := func(value string) string { return prefix + value }
1361
- items := strings.Split(str, "_")
1362
- if len(items) > 1 {
1363
- for i, item := range items {
1364
- items[i] = strings.ToLower(item)
1365
- }
1366
- return out(strings.Join(items, "_"))
1367
- }
1368
- indexes := []int{}
1369
- for i := 0; i < len(str); i++ {
1370
- code := str[i]
1371
- if 'A' <= code && code <= 'Z' {
1372
- indexes = append(indexes, i)
1373
- }
1374
- }
1375
- for i := len(indexes) - 1; i > 0; i-- {
1376
- now := indexes[i]
1377
- prev := indexes[i-1]
1378
- if now-prev == 1 {
1379
- indexes = append(indexes[:i], indexes[i+1:]...)
1380
- }
1381
- }
1382
- if len(indexes) != 0 && indexes[0] == 0 {
1383
- indexes = indexes[1:]
1384
- }
1385
- if len(indexes) == 0 {
1386
- return out(strings.ToLower(str))
1387
- }
1388
- ret := ""
1389
- for i, last := range indexes {
1390
- first := 0
1391
- if i != 0 {
1392
- first = indexes[i-1]
1393
- }
1394
- ret += strings.ToLower(str[first:last])
1395
- ret += "_"
1396
- }
1397
- ret += strings.ToLower(str[indexes[len(indexes)-1]:])
1398
- return out(ret)
1399
- }
1400
-
1401
- // notationGeneralProgrammer_kebab derives the snake_case form first and then
1402
- // rewrites the word separators to hyphens, keeping any leading underscores
1403
- // untouched — the exact composition mirrored by the `KebabCase<T>` typing.
1404
- func notationGeneralProgrammer_kebab(str string) string {
1405
- snaked := notationGeneralProgrammer_snake(str)
1406
- prefix := ""
1407
- for len(snaked) != 0 && snaked[0] == '_' {
1408
- prefix += "_"
1409
- snaked = snaked[1:]
1410
- }
1411
- return prefix + strings.ReplaceAll(snaked, "_", "-")
1412
- }
1413
-
1414
- func notationGeneralProgrammer_unsnake(str string, plain func(string) string, snake func(string, int) string) string {
1415
- prefix := ""
1416
- for len(str) != 0 && str[0] == '_' {
1417
- prefix += "_"
1418
- str = str[1:]
1419
- }
1420
- out := func(value string) string { return prefix + value }
1421
- if str == "" {
1422
- return out("")
1423
- }
1424
- raw := strings.Split(str, "_")
1425
- items := []string{}
1426
- for _, item := range raw {
1427
- if item != "" {
1428
- items = append(items, item)
1429
- }
1430
- }
1431
- if len(items) == 0 {
1432
- return out("")
1433
- }
1434
- if len(items) == 1 {
1435
- return out(plain(items[0]))
1436
- }
1437
- for i, item := range items {
1438
- items[i] = snake(item, i)
1439
- }
1440
- return out(strings.Join(items, ""))
1441
- }
1
+ package notations
2
+
3
+ import (
4
+ "fmt"
5
+ "strings"
6
+
7
+ shimast "github.com/microsoft/typescript-go/shim/ast"
8
+ shimchecker "github.com/microsoft/typescript-go/shim/checker"
9
+ shimprinter "github.com/microsoft/typescript-go/shim/printer"
10
+ nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
11
+ nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
12
+ nativeprogrammers "github.com/samchon/typia/packages/typia/native/core/programmers"
13
+ nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
14
+ nativeinternal "github.com/samchon/typia/packages/typia/native/core/programmers/internal"
15
+ nativeiterate "github.com/samchon/typia/packages/typia/native/core/programmers/iterate"
16
+ schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
17
+ )
18
+
19
+ type notationGeneralProgrammerNamespace struct{}
20
+
21
+ var NotationGeneralProgrammer = notationGeneralProgrammerNamespace{}
22
+
23
+ type NotationGeneralProgrammer_IRename struct {
24
+ Name string
25
+ Func func(str string) string
26
+ }
27
+
28
+ type NotationGeneralProgrammer_IProps struct {
29
+ nativecontext.IProgrammerProps
30
+ Rename NotationGeneralProgrammer_IRename
31
+ }
32
+
33
+ type NotationGeneralProgrammer_ReturnTypeProps struct {
34
+ Rename NotationGeneralProgrammer_IRename
35
+ Context nativecontext.ITypiaContext
36
+ Type string
37
+ }
38
+
39
+ type NotationGeneralProgrammer_DecomposeProps struct {
40
+ Rename NotationGeneralProgrammer_IRename
41
+ Validated bool
42
+ Context nativecontext.ITypiaContext
43
+ Functor *nativehelpers.FunctionProgrammer
44
+ Type *shimchecker.Type
45
+ Name *string
46
+ }
47
+
48
+ const notationGeneralProgrammer_PREFIX = "_c"
49
+
50
+ var notationGeneralProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
51
+
52
+ func (notationGeneralProgrammerNamespace) ReturnType(props NotationGeneralProgrammer_ReturnTypeProps) *shimast.Node {
53
+ f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
54
+ return notationGeneralProgrammer_import_type(props.Context, nativecontext.ImportProgrammer_TypeProps{
55
+ File: "typia",
56
+ Name: notationGeneralProgrammer_capitalize(props.Rename.Name) + "Case",
57
+ Arguments: []*shimast.TypeNode{
58
+ f.NewTypeReferenceNode(f.NewIdentifier(props.Type), nil),
59
+ },
60
+ })
61
+ }
62
+
63
+ func (notationGeneralProgrammerNamespace) Decompose(props NotationGeneralProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
64
+ f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
65
+ config := notationGeneralProgrammer_configure(struct {
66
+ Rename NotationGeneralProgrammer_IRename
67
+ Context nativecontext.ITypiaContext
68
+ Functor *nativehelpers.FunctionProgrammer
69
+ }{Rename: props.Rename, Context: props.Context, Functor: props.Functor})
70
+ if props.Validated == false {
71
+ config.Addition = func(collection *schemametadata.MetadataCollection) []*shimast.Node {
72
+ return nativeprogrammers.IsProgrammer.Write_function_statements(nativeprogrammers.IsProgrammer_WriteFunctionStatementsProps{
73
+ Context: props.Context,
74
+ Functor: props.Functor,
75
+ Collection: collection,
76
+ })
77
+ }
78
+ }
79
+ composed := nativeinternal.FeatureProgrammer.Compose(nativeinternal.FeatureProgrammer_ComposeProps{
80
+ Context: props.Context,
81
+ Config: config,
82
+ Functor: props.Functor,
83
+ Type: props.Type,
84
+ Name: props.Name,
85
+ })
86
+ typeName := notationGeneralProgrammer_type_name(props.Context, props.Type, props.Name)
87
+ return nativeinternal.FeatureProgrammer_IDecomposed{
88
+ Functions: composed.Functions,
89
+ Statements: composed.Statements,
90
+ Arrow: f.NewArrowFunction(
91
+ nil,
92
+ nil,
93
+ f.NewNodeList(composed.Parameters),
94
+ NotationGeneralProgrammer.ReturnType(NotationGeneralProgrammer_ReturnTypeProps{
95
+ Rename: props.Rename,
96
+ Context: props.Context,
97
+ Type: typeName,
98
+ }),
99
+ nil,
100
+ f.NewToken(shimast.KindEqualsGreaterThanToken),
101
+ composed.Body,
102
+ ),
103
+ }
104
+ }
105
+
106
+ func (notationGeneralProgrammerNamespace) Write(props NotationGeneralProgrammer_IProps) *shimast.Node {
107
+ functor := nativehelpers.NewFunctionProgrammer(notationGeneralProgrammer_method_text(props.Modulo), props.Context.Emit)
108
+ result := NotationGeneralProgrammer.Decompose(NotationGeneralProgrammer_DecomposeProps{
109
+ Rename: props.Rename,
110
+ Context: props.Context,
111
+ Functor: functor,
112
+ Type: props.Type,
113
+ Name: props.Name,
114
+ Validated: true,
115
+ })
116
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
117
+ Functor: functor,
118
+ Modulo: props.Modulo,
119
+ Result: result,
120
+ })
121
+ }
122
+
123
+ func notationGeneralProgrammer_write_array_functions(props struct {
124
+ Config nativeinternal.FeatureProgrammer_IConfig
125
+ Context nativecontext.ITypiaContext
126
+ Functor *nativehelpers.FunctionProgrammer
127
+ Collection *schemametadata.MetadataCollection
128
+ }) []*shimast.Node {
129
+ f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
130
+ output := []*shimast.Node{}
131
+ for i, typ := range props.Collection.Arrays() {
132
+ if typ.Recursive == false {
133
+ continue
134
+ }
135
+ output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
136
+ Name: fmt.Sprintf("%sa%d", props.Config.Prefix, i),
137
+ Value: f.NewArrowFunction(
138
+ nil,
139
+ nil,
140
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
141
+ Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
142
+ Type: nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
143
+ Input: f.NewIdentifier("input"),
144
+ })),
145
+ nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
146
+ nil,
147
+ f.NewToken(shimast.KindEqualsGreaterThanToken),
148
+ nativeinternal.FeatureProgrammer.VisitGuardRebuild(
149
+ nativeinternal.FeatureProgrammer.VisitKey(props.Config.Prefix, "a", i),
150
+ true,
151
+ notationGeneralProgrammer_decode_array_inline(notationGeneralProgrammer_decodeArrayProps{
152
+ Context: props.Context,
153
+ Config: props.Config,
154
+ Functor: props.Functor,
155
+ Input: f.NewIdentifier("input"),
156
+ Array: schemametadata.MetadataArray_create(schemametadata.MetadataArray{
157
+ Type: typ,
158
+ Tags: [][]schemametadata.IMetadataTypeTag{},
159
+ }),
160
+ Explore: nativeinternal.FeatureProgrammer_IExplore{
161
+ Tracable: props.Config.Trace,
162
+ Source: "function",
163
+ From: "array",
164
+ Postfix: "",
165
+ },
166
+ }),
167
+ props.Context.Emit,
168
+ ),
169
+ ),
170
+ }, props.Context.Emit))
171
+ }
172
+ return output
173
+ }
174
+
175
+ func notationGeneralProgrammer_write_tuple_functions(props struct {
176
+ Config nativeinternal.FeatureProgrammer_IConfig
177
+ Rename NotationGeneralProgrammer_IRename
178
+ Context nativecontext.ITypiaContext
179
+ Functor *nativehelpers.FunctionProgrammer
180
+ Collection *schemametadata.MetadataCollection
181
+ }) []*shimast.Node {
182
+ f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
183
+ output := []*shimast.Node{}
184
+ for i, tuple := range props.Collection.Tuples() {
185
+ if tuple.Recursive == false {
186
+ continue
187
+ }
188
+ output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
189
+ Name: fmt.Sprintf("%st%d", props.Config.Prefix, i),
190
+ Value: f.NewArrowFunction(
191
+ nil,
192
+ nil,
193
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
194
+ Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
195
+ Type: nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
196
+ Input: f.NewIdentifier("input"),
197
+ })),
198
+ nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
199
+ nil,
200
+ f.NewToken(shimast.KindEqualsGreaterThanToken),
201
+ nativeinternal.FeatureProgrammer.VisitGuardRebuild(
202
+ nativeinternal.FeatureProgrammer.VisitKey(props.Config.Prefix, "t", i),
203
+ true,
204
+ notationGeneralProgrammer_decode_tuple_inline(notationGeneralProgrammer_decodeTupleInlineProps{
205
+ Context: props.Context,
206
+ Rename: props.Rename,
207
+ Config: props.Config,
208
+ Functor: props.Functor,
209
+ Input: f.NewIdentifier("input"),
210
+ Tuple: tuple,
211
+ Explore: nativeinternal.FeatureProgrammer_IExplore{
212
+ Tracable: props.Config.Trace,
213
+ Source: "function",
214
+ From: "array",
215
+ Postfix: "",
216
+ },
217
+ }),
218
+ props.Context.Emit,
219
+ ),
220
+ ),
221
+ }, props.Context.Emit))
222
+ }
223
+ return output
224
+ }
225
+
226
+ func notationGeneralProgrammer_decode(props struct {
227
+ Config nativeinternal.FeatureProgrammer_IConfig
228
+ Rename NotationGeneralProgrammer_IRename
229
+ Context nativecontext.ITypiaContext
230
+ Functor *nativehelpers.FunctionProgrammer
231
+ Metadata *schemametadata.MetadataSchema
232
+ Explore nativeinternal.FeatureProgrammer_IExplore
233
+ Input *shimast.Node
234
+ }) *shimast.Node {
235
+ f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
236
+ if props.Metadata.Any ||
237
+ notationGeneralProgrammer_some_arrays(props.Metadata.Arrays, func(a *schemametadata.MetadataArray) bool { return a.Type.Value.Any }) ||
238
+ notationGeneralProgrammer_some_tuples(props.Metadata.Tuples, func(t *schemametadata.MetadataTuple) bool {
239
+ return len(t.Type.Elements) != 0 && notationGeneralProgrammer_every_schema(t.Type.Elements, func(e *schemametadata.MetadataSchema) bool { return e.Any })
240
+ }) {
241
+ return nativefactories.ExpressionFactory.Currying(nativefactories.ExpressionFactory_CurryingProps{
242
+ Function: notationGeneralProgrammer_internal(props.Context, "notationAny"),
243
+ Arguments: []*shimast.Expression{
244
+ notationGeneralProgrammer_internal(props.Context, "notation"+notationGeneralProgrammer_capitalize(props.Rename.Name)),
245
+ props.Input,
246
+ },
247
+ }, props.Context.Emit)
248
+ }
249
+
250
+ unions := []notationGeneralProgrammer_IUnion{}
251
+ if len(props.Metadata.Functions) != 0 {
252
+ unions = append(unions, notationGeneralProgrammer_IUnion{
253
+ Type: "functional",
254
+ Is: func() *shimast.Node {
255
+ return notationGeneralProgrammer_binary(
256
+ f.NewStringLiteral("function", shimast.TokenFlagsNone),
257
+ shimast.KindEqualsEqualsEqualsToken,
258
+ f.NewTypeOfExpression(props.Input),
259
+ props.Context.Emit,
260
+ )
261
+ },
262
+ Value: func() *shimast.Node {
263
+ return f.NewIdentifier("undefined")
264
+ },
265
+ })
266
+ }
267
+
268
+ for _, tuple := range props.Metadata.Tuples {
269
+ tuple := tuple
270
+ unions = append(unions, notationGeneralProgrammer_IUnion{
271
+ Type: "tuple",
272
+ Is: func() *shimast.Node {
273
+ partial := schemametadata.MetadataSchema_initialize()
274
+ partial.Tuples = append(partial.Tuples, tuple)
275
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
276
+ Context: props.Context,
277
+ Functor: props.Functor,
278
+ Input: props.Input,
279
+ Metadata: partial,
280
+ Explore: notationGeneralProgrammer_checker_explore(props.Explore),
281
+ })
282
+ },
283
+ Value: func() *shimast.Node {
284
+ return notationGeneralProgrammer_decode_tuple(notationGeneralProgrammer_decodeTupleProps{
285
+ Config: props.Config,
286
+ Rename: props.Rename,
287
+ Context: props.Context,
288
+ Functor: props.Functor,
289
+ Tuple: tuple,
290
+ Explore: props.Explore,
291
+ Input: props.Input,
292
+ })
293
+ },
294
+ })
295
+ }
296
+
297
+ if len(props.Metadata.Arrays) != 0 {
298
+ unions = append(unions, notationGeneralProgrammer_IUnion{
299
+ Type: "array",
300
+ Is: func() *shimast.Node {
301
+ return nativefactories.ExpressionFactory.IsArray(props.Input, props.Context.Emit)
302
+ },
303
+ Value: func() *shimast.Node {
304
+ explore := props.Explore
305
+ explore.From = "array"
306
+ return notationGeneralProgrammer_explore_arrays(notationGeneralProgrammer_exploreArraysProps{
307
+ Context: props.Context,
308
+ Config: props.Config,
309
+ Functor: props.Functor,
310
+ Input: props.Input,
311
+ Arrays: props.Metadata.Arrays,
312
+ Explore: explore,
313
+ })
314
+ },
315
+ })
316
+ }
317
+
318
+ if len(props.Metadata.Sets) != 0 {
319
+ unions = append(unions, notationGeneralProgrammer_IUnion{
320
+ Type: "set",
321
+ Is: func() *shimast.Node {
322
+ return nativefactories.ExpressionFactory.IsInstanceOf("Set", props.Input, props.Context.Emit)
323
+ },
324
+ Value: func() *shimast.Node {
325
+ explore := props.Explore
326
+ explore.From = "array"
327
+ return notationGeneralProgrammer_explore_sets(notationGeneralProgrammer_exploreSetsProps{
328
+ Context: props.Context,
329
+ Config: props.Config,
330
+ Functor: props.Functor,
331
+ Input: props.Input,
332
+ Explore: explore,
333
+ Sets: props.Metadata.Sets,
334
+ })
335
+ },
336
+ })
337
+ }
338
+
339
+ if len(props.Metadata.Maps) != 0 {
340
+ unions = append(unions, notationGeneralProgrammer_IUnion{
341
+ Type: "map",
342
+ Is: func() *shimast.Node {
343
+ return nativefactories.ExpressionFactory.IsInstanceOf("Map", props.Input, props.Context.Emit)
344
+ },
345
+ Value: func() *shimast.Node {
346
+ explore := props.Explore
347
+ explore.From = "array"
348
+ return notationGeneralProgrammer_explore_maps(notationGeneralProgrammer_exploreMapsProps{
349
+ Context: props.Context,
350
+ Config: props.Config,
351
+ Functor: props.Functor,
352
+ Input: props.Input,
353
+ Maps: props.Metadata.Maps,
354
+ Explore: explore,
355
+ })
356
+ },
357
+ })
358
+ }
359
+
360
+ for _, native := range props.Metadata.Natives {
361
+ native := native
362
+ if native.Name == "WeakSet" || native.Name == "WeakMap" {
363
+ continue
364
+ }
365
+ unions = append(unions, notationGeneralProgrammer_IUnion{
366
+ Type: "native",
367
+ Is: func() *shimast.Node {
368
+ return nativefactories.ExpressionFactory.IsInstanceOf(native.Name, props.Input, props.Context.Emit)
369
+ },
370
+ Value: func() *shimast.Node {
371
+ if _, ok := schemametadata.MetadataSchema_atomicLikeNative(native.Name); ok {
372
+ return f.NewCallExpression(
373
+ nativefactories.IdentifierFactory.Access(props.Context.Emit, props.Input, "valueOf"),
374
+ nil,
375
+ nil,
376
+ nil,
377
+ shimast.NodeFlagsNone,
378
+ )
379
+ }
380
+ return notationGeneralProgrammer_decode_native(struct {
381
+ Name string
382
+ Input *shimast.Node
383
+ }{Name: native.Name, Input: props.Input}, props.Context.Emit)
384
+ },
385
+ })
386
+ }
387
+
388
+ if len(props.Metadata.Objects) != 0 {
389
+ unions = append(unions, notationGeneralProgrammer_IUnion{
390
+ Type: "object",
391
+ Is: func() *shimast.Node {
392
+ return nativefactories.ExpressionFactory.IsObject(nativefactories.ExpressionFactory_IsObjectProps{
393
+ CheckNull: true,
394
+ CheckArray: false,
395
+ Input: props.Input,
396
+ }, props.Context.Emit)
397
+ },
398
+ Value: func() *shimast.Node {
399
+ explore := props.Explore
400
+ explore.From = "object"
401
+ return notationGeneralProgrammer_explore_objects(notationGeneralProgrammer_exploreObjectsProps{
402
+ Context: props.Context,
403
+ Config: props.Config,
404
+ Functor: props.Functor,
405
+ Input: props.Input,
406
+ Metadata: props.Metadata,
407
+ Explore: explore,
408
+ })
409
+ },
410
+ })
411
+ }
412
+
413
+ if len(unions) == 0 {
414
+ return props.Input
415
+ }
416
+ if len(unions) == 1 && props.Metadata.Size() == 1 {
417
+ value := unions[0].Value()
418
+ if (props.Metadata.Nullable || props.Metadata.IsRequired() == false) && notationGeneralProgrammer_is_instance(props.Metadata) {
419
+ value = nativefactories.ExpressionFactory.Conditional(
420
+ props.Input,
421
+ value,
422
+ props.Input,
423
+ props.Context.Emit,
424
+ )
425
+ }
426
+ return f.NewAsExpression(value, nativefactories.TypeFactory.Keyword("any", props.Context.Emit))
427
+ }
428
+ last := props.Input
429
+ for i := len(unions) - 1; i >= 0; i-- {
430
+ union := unions[i]
431
+ last = nativefactories.ExpressionFactory.Conditional(
432
+ union.Is(),
433
+ union.Value(),
434
+ last,
435
+ props.Context.Emit,
436
+ )
437
+ }
438
+ return f.NewAsExpression(last, nativefactories.TypeFactory.Keyword("any", props.Context.Emit))
439
+ }
440
+
441
+ func notationGeneralProgrammer_decode_object(props struct {
442
+ Functor *nativehelpers.FunctionProgrammer
443
+ Object *schemametadata.MetadataObjectType
444
+ Input *shimast.Node
445
+ Explore nativeinternal.FeatureProgrammer_IExplore
446
+ }) *shimast.Node {
447
+ return nativeinternal.FeatureProgrammer.Decode_object(nativeinternal.FeatureProgrammer_DecodeObjectProps{
448
+ Config: nativeinternal.FeatureProgrammer_DecodeObjectConfig{Trace: false, Path: false, Prefix: notationGeneralProgrammer_PREFIX, Visited: props.Functor.Visited()},
449
+ Functor: props.Functor,
450
+ Object: props.Object,
451
+ Input: props.Input,
452
+ Explore: props.Explore,
453
+ })
454
+ }
455
+
456
+ type notationGeneralProgrammer_decodeArrayProps struct {
457
+ Context nativecontext.ITypiaContext
458
+ Config nativeinternal.FeatureProgrammer_IConfig
459
+ Functor *nativehelpers.FunctionProgrammer
460
+ Input *shimast.Node
461
+ Array *schemametadata.MetadataArray
462
+ Explore nativeinternal.FeatureProgrammer_IExplore
463
+ }
464
+
465
+ func notationGeneralProgrammer_decode_array(props notationGeneralProgrammer_decodeArrayProps) *shimast.Node {
466
+ f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
467
+ if props.Array.Type.Recursive {
468
+ index := 0
469
+ if props.Array.Type.Index != nil {
470
+ index = *props.Array.Type.Index
471
+ }
472
+ return f.NewCallExpression(
473
+ f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%sa%d", props.Config.Prefix, index))),
474
+ nil,
475
+ nil,
476
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
477
+ Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
478
+ Explore: notationGeneralProgrammer_explore_with(props.Explore, "function", "array"),
479
+ Input: props.Input,
480
+ })),
481
+ shimast.NodeFlagsNone,
482
+ )
483
+ }
484
+ return notationGeneralProgrammer_decode_array_inline(props)
485
+ }
486
+
487
+ func notationGeneralProgrammer_decode_array_inline(props notationGeneralProgrammer_decodeArrayProps) *shimast.Node {
488
+ return nativeinternal.FeatureProgrammer.Decode_array(nativeinternal.FeatureProgrammer_DecodeArrayProps{
489
+ Config: nativeinternal.FeatureProgrammer_DecodeArrayConfig{
490
+ Trace: props.Config.Trace,
491
+ Path: props.Config.Path,
492
+ Prefix: props.Config.Prefix,
493
+ Decoder: props.Config.Decoder,
494
+ },
495
+ Functor: props.Functor,
496
+ Combiner: func(next struct {
497
+ Input *shimast.Expression
498
+ Arrow *shimast.Node
499
+ }) *shimast.Node {
500
+ return nativehelpers.NotationJoiner.Array(nativehelpers.NotationJoiner_ArrayProps{
501
+ Input: next.Input,
502
+ Arrow: next.Arrow,
503
+ Emit: props.Context.Emit,
504
+ })
505
+ },
506
+ Array: props.Array,
507
+ Input: props.Input,
508
+ Explore: props.Explore,
509
+ })
510
+ }
511
+
512
+ type notationGeneralProgrammer_decodeTupleProps struct {
513
+ Config nativeinternal.FeatureProgrammer_IConfig
514
+ Rename NotationGeneralProgrammer_IRename
515
+ Context nativecontext.ITypiaContext
516
+ Functor *nativehelpers.FunctionProgrammer
517
+ Tuple *schemametadata.MetadataTuple
518
+ Explore nativeinternal.FeatureProgrammer_IExplore
519
+ Input *shimast.Node
520
+ }
521
+
522
+ func notationGeneralProgrammer_decode_tuple(props notationGeneralProgrammer_decodeTupleProps) *shimast.Node {
523
+ f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
524
+ if props.Tuple.Type.Recursive {
525
+ index := 0
526
+ if props.Tuple.Type.Index != nil {
527
+ index = *props.Tuple.Type.Index
528
+ }
529
+ return f.NewCallExpression(
530
+ f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%st%d", props.Config.Prefix, index))),
531
+ nil,
532
+ nil,
533
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
534
+ Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
535
+ Explore: notationGeneralProgrammer_explore_with(props.Explore, "function", props.Explore.From),
536
+ Input: props.Input,
537
+ })),
538
+ shimast.NodeFlagsNone,
539
+ )
540
+ }
541
+ return notationGeneralProgrammer_decode_tuple_inline(notationGeneralProgrammer_decodeTupleInlineProps{
542
+ Context: props.Context,
543
+ Rename: props.Rename,
544
+ Config: props.Config,
545
+ Functor: props.Functor,
546
+ Tuple: props.Tuple.Type,
547
+ Explore: props.Explore,
548
+ Input: props.Input,
549
+ })
550
+ }
551
+
552
+ type notationGeneralProgrammer_decodeTupleInlineProps struct {
553
+ Context nativecontext.ITypiaContext
554
+ Rename NotationGeneralProgrammer_IRename
555
+ Config nativeinternal.FeatureProgrammer_IConfig
556
+ Functor *nativehelpers.FunctionProgrammer
557
+ Explore nativeinternal.FeatureProgrammer_IExplore
558
+ Tuple *schemametadata.MetadataTupleType
559
+ Input *shimast.Node
560
+ }
561
+
562
+ func notationGeneralProgrammer_decode_tuple_inline(props notationGeneralProgrammer_decodeTupleInlineProps) *shimast.Node {
563
+ f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
564
+ elements := []*shimast.Node{}
565
+ for index, elem := range props.Tuple.Elements {
566
+ if elem.Rest != nil {
567
+ continue
568
+ }
569
+ explore := props.Explore
570
+ explore.From = "array"
571
+ if len(props.Explore.Postfix) != 0 {
572
+ explore.Postfix = fmt.Sprintf("%s[%d]\"", nativeiterate.Postfix_of_tuple_export(props.Explore.Postfix), index)
573
+ } else {
574
+ explore.Postfix = fmt.Sprintf("\"[%d]\"", index)
575
+ }
576
+ elements = append(elements, notationGeneralProgrammer_decode(struct {
577
+ Config nativeinternal.FeatureProgrammer_IConfig
578
+ Rename NotationGeneralProgrammer_IRename
579
+ Context nativecontext.ITypiaContext
580
+ Functor *nativehelpers.FunctionProgrammer
581
+ Metadata *schemametadata.MetadataSchema
582
+ Explore nativeinternal.FeatureProgrammer_IExplore
583
+ Input *shimast.Node
584
+ }{
585
+ Config: props.Config,
586
+ Rename: props.Rename,
587
+ Context: props.Context,
588
+ Functor: props.Functor,
589
+ Metadata: elem,
590
+ Explore: explore,
591
+ Input: f.NewElementAccessExpression(props.Input, nil, nativefactories.ExpressionFactory.Number(index, props.Context.Emit), shimast.NodeFlagsNone),
592
+ }))
593
+ }
594
+ var rest *shimast.Node
595
+ if len(props.Tuple.Elements) != 0 {
596
+ last := props.Tuple.Elements[len(props.Tuple.Elements)-1]
597
+ if last.Rest != nil {
598
+ start := len(props.Tuple.Elements) - 1
599
+ explore := props.Explore
600
+ explore.Start = &start
601
+ rest = notationGeneralProgrammer_decode(struct {
602
+ Config nativeinternal.FeatureProgrammer_IConfig
603
+ Rename NotationGeneralProgrammer_IRename
604
+ Context nativecontext.ITypiaContext
605
+ Functor *nativehelpers.FunctionProgrammer
606
+ Metadata *schemametadata.MetadataSchema
607
+ Explore nativeinternal.FeatureProgrammer_IExplore
608
+ Input *shimast.Node
609
+ }{
610
+ Config: props.Config,
611
+ Rename: props.Rename,
612
+ Context: props.Context,
613
+ Functor: props.Functor,
614
+ Input: f.NewCallExpression(
615
+ nativefactories.IdentifierFactory.Access(props.Context.Emit, props.Input, "slice"),
616
+ nil,
617
+ nil,
618
+ f.NewNodeList([]*shimast.Node{nativefactories.ExpressionFactory.Number(start, props.Context.Emit)}),
619
+ shimast.NodeFlagsNone,
620
+ ),
621
+ Metadata: nativeiterate.Wrap_metadata_rest_tuple_export(last.Rest),
622
+ Explore: explore,
623
+ })
624
+ }
625
+ }
626
+ return nativehelpers.NotationJoiner.Tuple(nativehelpers.NotationJoiner_TupleProps{
627
+ Elements: elements,
628
+ Rest: rest,
629
+ Emit: props.Context.Emit,
630
+ })
631
+ }
632
+
633
+ func notationGeneralProgrammer_decode_native(props struct {
634
+ Name string
635
+ Input *shimast.Node
636
+ }, emit ...*shimprinter.EmitContext) *shimast.Node {
637
+ f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, emit...)
638
+ if props.Name == "Date" {
639
+ return f.NewNewExpression(
640
+ f.NewIdentifier(props.Name),
641
+ nil,
642
+ f.NewNodeList([]*shimast.Node{props.Input}),
643
+ )
644
+ }
645
+ return props.Input
646
+ }
647
+
648
+ type notationGeneralProgrammer_exploreSetsProps struct {
649
+ Context nativecontext.ITypiaContext
650
+ Config nativeinternal.FeatureProgrammer_IConfig
651
+ Functor *nativehelpers.FunctionProgrammer
652
+ Input *shimast.Node
653
+ Explore nativeinternal.FeatureProgrammer_IExplore
654
+ Sets []*schemametadata.MetadataSet
655
+ }
656
+
657
+ func notationGeneralProgrammer_explore_sets(props notationGeneralProgrammer_exploreSetsProps) *shimast.Node {
658
+ f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
659
+ return f.NewCallExpression(
660
+ nativehelpers.UnionExplorer.Set(nativehelpers.UnionExplorer_SetProps{
661
+ Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
662
+ Checker: func(v nativehelpers.UnionExplorer_ArrayLikeCheckerProps) *shimast.Node {
663
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
664
+ Context: props.Context,
665
+ Functor: props.Functor,
666
+ Input: v.Input,
667
+ Metadata: v.Definition.(*schemametadata.MetadataSchema),
668
+ Explore: notationGeneralProgrammer_checker_explore(v.Explore),
669
+ })
670
+ },
671
+ Decoder: func(v nativehelpers.UnionExplorer_ArrayLikeDecoderProps) *shimast.Node {
672
+ return f.NewNewExpression(
673
+ f.NewIdentifier("Set"),
674
+ f.NewNodeList([]*shimast.Node{nativefactories.TypeFactory.Keyword("any", props.Context.Emit)}),
675
+ f.NewNodeList([]*shimast.Node{
676
+ notationGeneralProgrammer_decode_array(notationGeneralProgrammer_decodeArrayProps{
677
+ Context: props.Context,
678
+ Config: props.Config,
679
+ Functor: props.Functor,
680
+ Input: v.Input,
681
+ Array: v.Definition.(*schemametadata.MetadataArray),
682
+ Explore: notationGeneralProgrammer_feature_explore(v.Explore),
683
+ }),
684
+ }),
685
+ )
686
+ },
687
+ Empty: f.NewNewExpression(
688
+ f.NewIdentifier("Set"),
689
+ f.NewNodeList([]*shimast.Node{nativefactories.TypeFactory.Keyword("any", props.Context.Emit)}),
690
+ nil,
691
+ ),
692
+ Success: f.NewKeywordExpression(shimast.KindTrueKeyword),
693
+ Failure: func(v nativehelpers.UnionExplorer_ArrayLikeFailureProps) *shimast.Node {
694
+ return notationGeneralProgrammer_create_throw_error(notationGeneralProgrammer_throwProps{
695
+ Context: props.Context,
696
+ Functor: props.Functor,
697
+ Expected: v.Expected,
698
+ Input: v.Input,
699
+ })
700
+ },
701
+ },
702
+ Parameters: nil,
703
+ Input: props.Input,
704
+ Sets: props.Sets,
705
+ Explore: props.Explore,
706
+ Emit: props.Context.Emit,
707
+ }),
708
+ nil,
709
+ nil,
710
+ nil,
711
+ shimast.NodeFlagsNone,
712
+ )
713
+ }
714
+
715
+ type notationGeneralProgrammer_exploreMapsProps struct {
716
+ Context nativecontext.ITypiaContext
717
+ Config nativeinternal.FeatureProgrammer_IConfig
718
+ Functor *nativehelpers.FunctionProgrammer
719
+ Input *shimast.Node
720
+ Maps []*schemametadata.MetadataMap
721
+ Explore nativeinternal.FeatureProgrammer_IExplore
722
+ }
723
+
724
+ func notationGeneralProgrammer_explore_maps(props notationGeneralProgrammer_exploreMapsProps) *shimast.Node {
725
+ f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
726
+ return f.NewCallExpression(
727
+ nativehelpers.UnionExplorer.Map(nativehelpers.UnionExplorer_MapProps{
728
+ Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
729
+ Checker: func(v nativehelpers.UnionExplorer_ArrayLikeCheckerProps) *shimast.Node {
730
+ pair := v.Definition.([]*schemametadata.MetadataSchema)
731
+ first := nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
732
+ Context: props.Context,
733
+ Functor: props.Functor,
734
+ Input: f.NewElementAccessExpression(v.Input, nil, nativefactories.ExpressionFactory.Number(0, props.Context.Emit), shimast.NodeFlagsNone),
735
+ Metadata: pair[0],
736
+ Explore: notationGeneralProgrammer_checker_explore_with_postfix(v.Explore, "[0]"),
737
+ })
738
+ second := nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
739
+ Context: props.Context,
740
+ Functor: props.Functor,
741
+ Input: f.NewElementAccessExpression(v.Input, nil, nativefactories.ExpressionFactory.Number(1, props.Context.Emit), shimast.NodeFlagsNone),
742
+ Metadata: pair[1],
743
+ Explore: notationGeneralProgrammer_checker_explore_with_postfix(v.Explore, "[1]"),
744
+ })
745
+ return notationGeneralProgrammer_binary(first, shimast.KindAmpersandAmpersandToken, second, props.Context.Emit)
746
+ },
747
+ Decoder: func(v nativehelpers.UnionExplorer_ArrayLikeDecoderProps) *shimast.Node {
748
+ return f.NewNewExpression(
749
+ f.NewIdentifier("Map"),
750
+ f.NewNodeList([]*shimast.Node{
751
+ nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
752
+ nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
753
+ }),
754
+ f.NewNodeList([]*shimast.Node{
755
+ notationGeneralProgrammer_decode_array(notationGeneralProgrammer_decodeArrayProps{
756
+ Context: props.Context,
757
+ Config: props.Config,
758
+ Functor: props.Functor,
759
+ Input: v.Input,
760
+ Array: v.Definition.(*schemametadata.MetadataArray),
761
+ Explore: notationGeneralProgrammer_feature_explore(v.Explore),
762
+ }),
763
+ }),
764
+ )
765
+ },
766
+ Empty: f.NewNewExpression(
767
+ f.NewIdentifier("Map"),
768
+ f.NewNodeList([]*shimast.Node{
769
+ nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
770
+ nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
771
+ }),
772
+ nil,
773
+ ),
774
+ Success: f.NewKeywordExpression(shimast.KindTrueKeyword),
775
+ Failure: func(v nativehelpers.UnionExplorer_ArrayLikeFailureProps) *shimast.Node {
776
+ return notationGeneralProgrammer_create_throw_error(notationGeneralProgrammer_throwProps{
777
+ Context: props.Context,
778
+ Functor: props.Functor,
779
+ Expected: v.Expected,
780
+ Input: v.Input,
781
+ })
782
+ },
783
+ },
784
+ Parameters: nil,
785
+ Input: props.Input,
786
+ Maps: props.Maps,
787
+ Explore: props.Explore,
788
+ Emit: props.Context.Emit,
789
+ }),
790
+ nil,
791
+ nil,
792
+ nil,
793
+ shimast.NodeFlagsNone,
794
+ )
795
+ }
796
+
797
+ type notationGeneralProgrammer_exploreObjectsProps struct {
798
+ Context nativecontext.ITypiaContext
799
+ Config nativeinternal.FeatureProgrammer_IConfig
800
+ Functor *nativehelpers.FunctionProgrammer
801
+ Input *shimast.Node
802
+ Metadata *schemametadata.MetadataSchema
803
+ Explore nativeinternal.FeatureProgrammer_IExplore
804
+ }
805
+
806
+ func notationGeneralProgrammer_explore_objects(props notationGeneralProgrammer_exploreObjectsProps) *shimast.Node {
807
+ f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
808
+ if len(props.Metadata.Objects) == 1 {
809
+ return notationGeneralProgrammer_decode_object(struct {
810
+ Functor *nativehelpers.FunctionProgrammer
811
+ Object *schemametadata.MetadataObjectType
812
+ Input *shimast.Node
813
+ Explore nativeinternal.FeatureProgrammer_IExplore
814
+ }{Functor: props.Functor, Object: props.Metadata.Objects[0].Type, Input: props.Input, Explore: props.Explore})
815
+ }
816
+ index := 0
817
+ if props.Metadata.Union_index != nil {
818
+ index = *props.Metadata.Union_index
819
+ }
820
+ return f.NewCallExpression(
821
+ f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%su%d", notationGeneralProgrammer_PREFIX, index))),
822
+ nil,
823
+ nil,
824
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
825
+ Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
826
+ Explore: props.Explore,
827
+ Input: props.Input,
828
+ })),
829
+ shimast.NodeFlagsNone,
830
+ )
831
+ }
832
+
833
+ type notationGeneralProgrammer_exploreArraysProps struct {
834
+ Context nativecontext.ITypiaContext
835
+ Config nativeinternal.FeatureProgrammer_IConfig
836
+ Functor *nativehelpers.FunctionProgrammer
837
+ Input *shimast.Node
838
+ Arrays []*schemametadata.MetadataArray
839
+ Explore nativeinternal.FeatureProgrammer_IExplore
840
+ }
841
+
842
+ func notationGeneralProgrammer_explore_arrays(props notationGeneralProgrammer_exploreArraysProps) *shimast.Node {
843
+ f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
844
+ return notationGeneralProgrammer_explore_array_like_union_types(notationGeneralProgrammer_exploreArrayLikeUnionTypesProps[*schemametadata.MetadataArray]{
845
+ Context: props.Context,
846
+ Config: props.Config,
847
+ Functor: props.Functor,
848
+ Factory: func(next notationGeneralProgrammer_arrayLikeFactoryProps[*schemametadata.MetadataArray]) *shimast.Node {
849
+ return nativehelpers.UnionExplorer.Array(nativehelpers.UnionExplorer_ArrayProps{
850
+ Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
851
+ Checker: func(v nativehelpers.UnionExplorer_ArrayLikeCheckerProps) *shimast.Node {
852
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
853
+ Context: props.Context,
854
+ Functor: props.Functor,
855
+ Input: v.Input,
856
+ Metadata: v.Definition.(*schemametadata.MetadataSchema),
857
+ Explore: notationGeneralProgrammer_checker_explore(v.Explore),
858
+ })
859
+ },
860
+ Decoder: func(v nativehelpers.UnionExplorer_ArrayLikeDecoderProps) *shimast.Node {
861
+ return notationGeneralProgrammer_decode_array(notationGeneralProgrammer_decodeArrayProps{
862
+ Context: props.Context,
863
+ Config: props.Config,
864
+ Functor: props.Functor,
865
+ Input: v.Input,
866
+ Array: v.Definition.(*schemametadata.MetadataArray),
867
+ Explore: notationGeneralProgrammer_feature_explore(v.Explore),
868
+ })
869
+ },
870
+ Empty: f.NewIdentifier("[]"),
871
+ Success: f.NewKeywordExpression(shimast.KindTrueKeyword),
872
+ Failure: func(v nativehelpers.UnionExplorer_ArrayLikeFailureProps) *shimast.Node {
873
+ return notationGeneralProgrammer_create_throw_error(notationGeneralProgrammer_throwProps{
874
+ Context: props.Context,
875
+ Functor: props.Functor,
876
+ Expected: v.Expected,
877
+ Input: v.Input,
878
+ })
879
+ },
880
+ },
881
+ Parameters: next.Parameters,
882
+ Input: next.Input,
883
+ Arrays: next.Definitions,
884
+ Explore: next.Explore,
885
+ Emit: props.Context.Emit,
886
+ })
887
+ },
888
+ Definitions: props.Arrays,
889
+ Input: props.Input,
890
+ Explore: props.Explore,
891
+ })
892
+ }
893
+
894
+ type notationGeneralProgrammer_arrayLikeFactoryProps[T any] struct {
895
+ Parameters []*shimast.Node
896
+ Input *shimast.Node
897
+ Definitions []T
898
+ Explore nativeinternal.FeatureProgrammer_IExplore
899
+ }
900
+
901
+ type notationGeneralProgrammer_exploreArrayLikeUnionTypesProps[T interface {
902
+ *schemametadata.MetadataArray | *schemametadata.MetadataTuple
903
+ }] struct {
904
+ Context nativecontext.ITypiaContext
905
+ Config nativeinternal.FeatureProgrammer_IConfig
906
+ Functor *nativehelpers.FunctionProgrammer
907
+ Factory func(next notationGeneralProgrammer_arrayLikeFactoryProps[T]) *shimast.Node
908
+ Input *shimast.Node
909
+ Definitions []T
910
+ Explore nativeinternal.FeatureProgrammer_IExplore
911
+ }
912
+
913
+ func notationGeneralProgrammer_explore_array_like_union_types[T interface {
914
+ *schemametadata.MetadataArray | *schemametadata.MetadataTuple
915
+ }](props notationGeneralProgrammer_exploreArrayLikeUnionTypesProps[T]) *shimast.Node {
916
+ f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
917
+ arrow := func(next struct {
918
+ Parameters []*shimast.Node
919
+ Explore nativeinternal.FeatureProgrammer_IExplore
920
+ Input *shimast.Node
921
+ }) *shimast.Node {
922
+ return props.Factory(notationGeneralProgrammer_arrayLikeFactoryProps[T]{
923
+ Parameters: next.Parameters,
924
+ Definitions: props.Definitions,
925
+ Explore: next.Explore,
926
+ Input: next.Input,
927
+ })
928
+ }
929
+ arrayExplore := props.Explore
930
+ arrayExplore.Source = "function"
931
+ arrayExplore.From = "array"
932
+ return f.NewCallExpression(
933
+ f.NewIdentifier(props.Functor.EmplaceUnion(props.Config.Prefix, notationGeneralProgrammer_array_like_names(props.Definitions), func() *shimast.Node {
934
+ explore := arrayExplore
935
+ explore.Postfix = ""
936
+ return arrow(struct {
937
+ Parameters []*shimast.Node
938
+ Explore nativeinternal.FeatureProgrammer_IExplore
939
+ Input *shimast.Node
940
+ }{
941
+ Parameters: nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
942
+ Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
943
+ Type: nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
944
+ Input: f.NewIdentifier("input"),
945
+ }),
946
+ Explore: explore,
947
+ Input: f.NewIdentifier("input"),
948
+ })
949
+ })),
950
+ nil,
951
+ nil,
952
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
953
+ Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
954
+ Explore: arrayExplore,
955
+ Input: props.Input,
956
+ })),
957
+ shimast.NodeFlagsNone,
958
+ )
959
+ }
960
+
961
+ func notationGeneralProgrammer_configure(props struct {
962
+ Rename NotationGeneralProgrammer_IRename
963
+ Context nativecontext.ITypiaContext
964
+ Functor *nativehelpers.FunctionProgrammer
965
+ }) nativeinternal.FeatureProgrammer_IConfig {
966
+ f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
967
+ var config nativeinternal.FeatureProgrammer_IConfig
968
+ config = nativeinternal.FeatureProgrammer_IConfig{
969
+ Types: nativeinternal.FeatureProgrammer_IConfig_ITypes{
970
+ Input: func(t *shimchecker.Type, name *string) *shimast.TypeNode {
971
+ return f.NewTypeReferenceNode(f.NewIdentifier(notationGeneralProgrammer_type_name(props.Context, t, name)), nil)
972
+ },
973
+ Output: func(t *shimchecker.Type, name *string) *shimast.TypeNode {
974
+ return NotationGeneralProgrammer.ReturnType(NotationGeneralProgrammer_ReturnTypeProps{
975
+ Rename: props.Rename,
976
+ Context: props.Context,
977
+ Type: notationGeneralProgrammer_type_name(props.Context, t, name),
978
+ })
979
+ },
980
+ },
981
+ Prefix: notationGeneralProgrammer_PREFIX,
982
+ Trace: false,
983
+ Path: false,
984
+ Initializer: notationGeneralProgrammer_initializer,
985
+ Visited: props.Functor.Visited,
986
+ VisitGuard: func(next nativeinternal.FeatureProgrammer_VisitGuardProps) *shimast.Node {
987
+ return nativeinternal.FeatureProgrammer.VisitGuardRebuild(next.Key, false, next.Body, props.Context.Emit)
988
+ },
989
+ Decoder: func(next nativeinternal.FeatureProgrammer_DecoderProps) *shimast.Node {
990
+ return notationGeneralProgrammer_decode(struct {
991
+ Config nativeinternal.FeatureProgrammer_IConfig
992
+ Rename NotationGeneralProgrammer_IRename
993
+ Context nativecontext.ITypiaContext
994
+ Functor *nativehelpers.FunctionProgrammer
995
+ Metadata *schemametadata.MetadataSchema
996
+ Explore nativeinternal.FeatureProgrammer_IExplore
997
+ Input *shimast.Node
998
+ }{Config: config, Rename: props.Rename, Context: props.Context, Functor: props.Functor, Metadata: next.Metadata, Explore: next.Explore, Input: next.Input})
999
+ },
1000
+ Objector: nativeinternal.FeatureProgrammer_IConfig_IObjector{
1001
+ Checker: func(next nativeinternal.FeatureProgrammer_ObjectorCheckerProps) *shimast.Node {
1002
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
1003
+ Context: props.Context,
1004
+ Functor: props.Functor,
1005
+ Input: next.Input,
1006
+ Metadata: next.Metadata,
1007
+ Explore: notationGeneralProgrammer_checker_explore(next.Explore),
1008
+ })
1009
+ },
1010
+ Decoder: func(next nativeinternal.FeatureProgrammer_ObjectorDecoderProps) *shimast.Node {
1011
+ return notationGeneralProgrammer_decode_object(struct {
1012
+ Functor *nativehelpers.FunctionProgrammer
1013
+ Object *schemametadata.MetadataObjectType
1014
+ Input *shimast.Node
1015
+ Explore nativeinternal.FeatureProgrammer_IExplore
1016
+ }{Functor: props.Functor, Object: next.Object, Input: next.Input, Explore: next.Explore})
1017
+ },
1018
+ Joiner: func(next nativeinternal.FeatureProgrammer_ObjectorJoinerProps) *shimast.Node {
1019
+ return nativehelpers.NotationJoiner.Object(nativehelpers.NotationJoiner_ObjectProps{
1020
+ Rename: props.Rename.Func,
1021
+ Input: next.Input,
1022
+ Entries: next.Entries,
1023
+ Emit: props.Context.Emit,
1024
+ })
1025
+ },
1026
+ Unionizer: func(next nativeinternal.FeatureProgrammer_ObjectorUnionizerProps) *shimast.Node {
1027
+ return nativeiterate.Decode_union_object(nativeiterate.Decode_union_objectProps{
1028
+ Checker: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
1029
+ return nativeprogrammers.IsProgrammer.Decode_object(nativeprogrammers.IsProgrammer_DecodeObjectProps{
1030
+ Context: props.Context,
1031
+ Functor: props.Functor,
1032
+ Object: v.Object,
1033
+ Input: v.Input,
1034
+ Explore: notationGeneralProgrammer_feature_explore(v.Explore),
1035
+ })
1036
+ },
1037
+ Decoder: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
1038
+ return notationGeneralProgrammer_decode_object(struct {
1039
+ Functor *nativehelpers.FunctionProgrammer
1040
+ Object *schemametadata.MetadataObjectType
1041
+ Input *shimast.Node
1042
+ Explore nativeinternal.FeatureProgrammer_IExplore
1043
+ }{Functor: props.Functor, Object: v.Object, Input: v.Input, Explore: notationGeneralProgrammer_feature_explore(v.Explore)})
1044
+ },
1045
+ Success: func(exp *shimast.Expression) *shimast.Node {
1046
+ return exp
1047
+ },
1048
+ Escaper: func(v nativeiterate.Decode_union_object_escape) *shimast.Node {
1049
+ return notationGeneralProgrammer_create_throw_error(notationGeneralProgrammer_throwProps{
1050
+ Context: props.Context,
1051
+ Functor: props.Functor,
1052
+ Expected: v.Expected,
1053
+ Input: v.Input,
1054
+ })
1055
+ },
1056
+ Input: next.Input,
1057
+ Objects: next.Objects,
1058
+ Explore: next.Explore,
1059
+ })
1060
+ },
1061
+ Failure: func(next nativeinternal.FeatureProgrammer_ObjectorFailureProps) *shimast.Node {
1062
+ return notationGeneralProgrammer_create_throw_error(notationGeneralProgrammer_throwProps{
1063
+ Context: props.Context,
1064
+ Functor: props.Functor,
1065
+ Expected: next.Expected,
1066
+ Input: next.Input,
1067
+ })
1068
+ },
1069
+ },
1070
+ Generator: nativeinternal.FeatureProgrammer_IConfig_IGenerator{
1071
+ Arrays: func(collection *schemametadata.MetadataCollection) []*shimast.Node {
1072
+ return notationGeneralProgrammer_write_array_functions(struct {
1073
+ Config nativeinternal.FeatureProgrammer_IConfig
1074
+ Context nativecontext.ITypiaContext
1075
+ Functor *nativehelpers.FunctionProgrammer
1076
+ Collection *schemametadata.MetadataCollection
1077
+ }{Config: config, Context: props.Context, Functor: props.Functor, Collection: collection})
1078
+ },
1079
+ Tuples: func(collection *schemametadata.MetadataCollection) []*shimast.Node {
1080
+ return notationGeneralProgrammer_write_tuple_functions(struct {
1081
+ Config nativeinternal.FeatureProgrammer_IConfig
1082
+ Rename NotationGeneralProgrammer_IRename
1083
+ Context nativecontext.ITypiaContext
1084
+ Functor *nativehelpers.FunctionProgrammer
1085
+ Collection *schemametadata.MetadataCollection
1086
+ }{Config: config, Rename: props.Rename, Context: props.Context, Functor: props.Functor, Collection: collection})
1087
+ },
1088
+ },
1089
+ }
1090
+ return config
1091
+ }
1092
+
1093
+ func notationGeneralProgrammer_initializer(props nativeinternal.FeatureProgrammer_InitializerProps) nativeinternal.FeatureProgrammer_InitializerOutput {
1094
+ collection := schemametadata.NewMetadataCollection()
1095
+ result := nativefactories.MetadataFactory.Analyze(nativefactories.MetadataFactory_IProps{
1096
+ Checker: props.Context.Checker,
1097
+ Options: nativefactories.MetadataFactory_IOptions{
1098
+ Escape: false,
1099
+ Constant: true,
1100
+ Absorb: true,
1101
+ },
1102
+ Components: collection,
1103
+ Type: props.Type,
1104
+ })
1105
+ if result.Success == false {
1106
+ panic(nativecontext.TransformerError_from(struct {
1107
+ Code string
1108
+ Errors []nativecontext.TransformerError_MetadataFactory_IError
1109
+ }{
1110
+ Code: props.Functor.Method,
1111
+ Errors: notationGeneralProgrammer_errors(result.Errors),
1112
+ }))
1113
+ }
1114
+ if nativeinternal.FeatureProgrammer.CollectionRecursive(collection) {
1115
+ props.Functor.SetVisited(true)
1116
+ }
1117
+ return nativeinternal.FeatureProgrammer_InitializerOutput{
1118
+ Collection: collection,
1119
+ Metadata: result.Data,
1120
+ }
1121
+ }
1122
+
1123
+ type notationGeneralProgrammer_throwProps struct {
1124
+ Context nativecontext.ITypiaContext
1125
+ Functor *nativehelpers.FunctionProgrammer
1126
+ Expected string
1127
+ Input *shimast.Node
1128
+ }
1129
+
1130
+ func notationGeneralProgrammer_create_throw_error(props notationGeneralProgrammer_throwProps) *shimast.Node {
1131
+ f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, props.Context.Emit)
1132
+ return f.NewExpressionStatement(
1133
+ f.NewCallExpression(
1134
+ notationGeneralProgrammer_internal(props.Context, "throwTypeGuardError"),
1135
+ nil,
1136
+ f.NewNodeList(nil),
1137
+ f.NewNodeList([]*shimast.Node{
1138
+ f.NewObjectLiteralExpression(
1139
+ f.NewNodeList([]*shimast.Node{
1140
+ f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("method", props.Context.Emit), nil, nil, f.NewStringLiteral(props.Functor.Method, shimast.TokenFlagsNone)),
1141
+ f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("expected", props.Context.Emit), nil, nil, f.NewStringLiteral(props.Expected, shimast.TokenFlagsNone)),
1142
+ f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("value", props.Context.Emit), nil, nil, props.Input),
1143
+ }),
1144
+ true,
1145
+ ),
1146
+ }),
1147
+ shimast.NodeFlagsNone,
1148
+ ),
1149
+ )
1150
+ }
1151
+
1152
+ func notationGeneralProgrammer_is_instance(metadata *schemametadata.MetadataSchema) bool {
1153
+ return len(metadata.Objects) != 0 ||
1154
+ len(metadata.Arrays) != 0 ||
1155
+ len(metadata.Tuples) != 0 ||
1156
+ len(metadata.Sets) != 0 ||
1157
+ len(metadata.Maps) != 0 ||
1158
+ len(metadata.Natives) != 0 ||
1159
+ (metadata.Rest != nil && notationGeneralProgrammer_is_instance(metadata.Rest))
1160
+ }
1161
+
1162
+ type notationGeneralProgrammer_IUnion struct {
1163
+ Type string
1164
+ Is func() *shimast.Node
1165
+ Value func() *shimast.Node
1166
+ }
1167
+
1168
+ func notationGeneralProgrammer_binary(left *shimast.Node, operator shimast.Kind, right *shimast.Node, emit ...*shimprinter.EmitContext) *shimast.Node {
1169
+ f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, emit...)
1170
+ return f.NewBinaryExpression(nil, left, nil, f.NewToken(operator), right)
1171
+ }
1172
+
1173
+ func notationGeneralProgrammer_internal(context nativecontext.ITypiaContext, name string) *shimast.Node {
1174
+ if importer := context.Importer; importer != nil {
1175
+ return importer.Internal(name)
1176
+ }
1177
+ return nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, context.Emit).NewIdentifier(name)
1178
+ }
1179
+
1180
+ func notationGeneralProgrammer_import_type(context nativecontext.ITypiaContext, props nativecontext.ImportProgrammer_TypeProps) *shimast.Node {
1181
+ if importer := context.Importer; importer != nil {
1182
+ return importer.Type(props)
1183
+ }
1184
+ if str, ok := props.Name.(string); ok {
1185
+ f := nativecontext.EmitFactoryOf(notationGeneralProgrammer_factory, context.Emit)
1186
+ return f.NewTypeReferenceNode(f.NewIdentifier(str), f.NewNodeList(props.Arguments))
1187
+ }
1188
+ return props.Name.(*shimast.Node)
1189
+ }
1190
+
1191
+ func notationGeneralProgrammer_type_name(context nativecontext.ITypiaContext, typ *shimchecker.Type, name *string) string {
1192
+ if name != nil {
1193
+ return *name
1194
+ }
1195
+ return nativefactories.TypeFactory.GetFullName(nativefactories.TypeFactory_GetFullNameProps{
1196
+ Checker: context.Checker,
1197
+ Type: typ,
1198
+ })
1199
+ }
1200
+
1201
+ func notationGeneralProgrammer_method_text(modulo *shimast.Node) string {
1202
+ return nativehelpers.ModuloMethodText(modulo)
1203
+ }
1204
+
1205
+ func notationGeneralProgrammer_feature_explore(input any) nativeinternal.FeatureProgrammer_IExplore {
1206
+ switch v := input.(type) {
1207
+ case nativeinternal.FeatureProgrammer_IExplore:
1208
+ return v
1209
+ case *nativeinternal.FeatureProgrammer_IExplore:
1210
+ return *v
1211
+ default:
1212
+ return nativeinternal.FeatureProgrammer_IExplore{}
1213
+ }
1214
+ }
1215
+
1216
+ func notationGeneralProgrammer_checker_explore(input any) nativeinternal.CheckerProgrammer_IExplore {
1217
+ v := notationGeneralProgrammer_feature_explore(input)
1218
+ return nativeinternal.CheckerProgrammer_IExplore{
1219
+ Tracable: v.Tracable,
1220
+ Source: v.Source,
1221
+ From: v.From,
1222
+ Postfix: v.Postfix,
1223
+ Start: v.Start,
1224
+ }
1225
+ }
1226
+
1227
+ func notationGeneralProgrammer_checker_explore_with_postfix(input any, postfix string) nativeinternal.CheckerProgrammer_IExplore {
1228
+ v := notationGeneralProgrammer_checker_explore(input)
1229
+ v.Postfix = v.Postfix + postfix
1230
+ return v
1231
+ }
1232
+
1233
+ func notationGeneralProgrammer_explore_with(explore nativeinternal.FeatureProgrammer_IExplore, source string, from string) nativeinternal.FeatureProgrammer_IExplore {
1234
+ explore.Source = source
1235
+ explore.From = from
1236
+ return explore
1237
+ }
1238
+
1239
+ func notationGeneralProgrammer_errors(errors []nativefactories.MetadataFactory_IError) []nativecontext.TransformerError_MetadataFactory_IError {
1240
+ output := make([]nativecontext.TransformerError_MetadataFactory_IError, 0, len(errors))
1241
+ for _, err := range errors {
1242
+ output = append(output, nativecontext.TransformerError_MetadataFactory_IError{
1243
+ Name: err.Name,
1244
+ Explore: nativecontext.TransformerError_MetadataFactory_IExplore{
1245
+ Object: err.Explore.Object,
1246
+ Property: err.Explore.Property,
1247
+ Parameter: err.Explore.Parameter,
1248
+ Output: err.Explore.Output,
1249
+ },
1250
+ Messages: append([]string{}, err.Messages...),
1251
+ })
1252
+ }
1253
+ return output
1254
+ }
1255
+
1256
+ func notationGeneralProgrammer_some_arrays(values []*schemametadata.MetadataArray, pred func(*schemametadata.MetadataArray) bool) bool {
1257
+ for _, value := range values {
1258
+ if pred(value) {
1259
+ return true
1260
+ }
1261
+ }
1262
+ return false
1263
+ }
1264
+
1265
+ func notationGeneralProgrammer_some_tuples(values []*schemametadata.MetadataTuple, pred func(*schemametadata.MetadataTuple) bool) bool {
1266
+ for _, value := range values {
1267
+ if pred(value) {
1268
+ return true
1269
+ }
1270
+ }
1271
+ return false
1272
+ }
1273
+
1274
+ func notationGeneralProgrammer_every_schema(values []*schemametadata.MetadataSchema, pred func(*schemametadata.MetadataSchema) bool) bool {
1275
+ if len(values) == 0 {
1276
+ return false
1277
+ }
1278
+ for _, value := range values {
1279
+ if pred(value) == false {
1280
+ return false
1281
+ }
1282
+ }
1283
+ return true
1284
+ }
1285
+
1286
+ func notationGeneralProgrammer_array_like_names[T interface {
1287
+ *schemametadata.MetadataArray | *schemametadata.MetadataTuple
1288
+ }](values []T) string {
1289
+ names := make([]string, 0, len(values))
1290
+ for _, value := range values {
1291
+ switch typed := any(value).(type) {
1292
+ case *schemametadata.MetadataArray:
1293
+ names = append(names, typed.Type.Name)
1294
+ case *schemametadata.MetadataTuple:
1295
+ names = append(names, typed.Type.Name)
1296
+ }
1297
+ }
1298
+ return strings.Join(names, " | ")
1299
+ }
1300
+
1301
+ func notationGeneralProgrammer_merge_functions(groups ...map[string]*shimast.Node) map[string]*shimast.Node {
1302
+ output := map[string]*shimast.Node{}
1303
+ for _, group := range groups {
1304
+ for key, value := range group {
1305
+ output[key] = value
1306
+ }
1307
+ }
1308
+ return output
1309
+ }
1310
+
1311
+ func notationGeneralProgrammer_capitalize(str string) string {
1312
+ if str == "" {
1313
+ return str
1314
+ }
1315
+ return strings.ToUpper(str[:1]) + str[1:]
1316
+ }
1317
+
1318
+ var NotationGeneralProgrammer_Camel = NotationGeneralProgrammer_IRename{Name: "camel", Func: notationGeneralProgrammer_camel}
1319
+ var NotationGeneralProgrammer_Pascal = NotationGeneralProgrammer_IRename{Name: "pascal", Func: notationGeneralProgrammer_pascal}
1320
+ var NotationGeneralProgrammer_Snake = NotationGeneralProgrammer_IRename{Name: "snake", Func: notationGeneralProgrammer_snake}
1321
+ var NotationGeneralProgrammer_Kebab = NotationGeneralProgrammer_IRename{Name: "kebab", Func: notationGeneralProgrammer_kebab}
1322
+
1323
+ func notationGeneralProgrammer_camel(str string) string {
1324
+ return notationGeneralProgrammer_unsnake(str, func(value string) string {
1325
+ if value == "" {
1326
+ return value
1327
+ }
1328
+ if value == strings.ToUpper(value) {
1329
+ return strings.ToLower(value)
1330
+ }
1331
+ return strings.ToLower(value[:1]) + value[1:]
1332
+ }, func(value string, index int) string {
1333
+ if index == 0 {
1334
+ return strings.ToLower(value)
1335
+ }
1336
+ return notationGeneralProgrammer_capitalize(strings.ToLower(value))
1337
+ })
1338
+ }
1339
+
1340
+ func notationGeneralProgrammer_pascal(str string) string {
1341
+ return notationGeneralProgrammer_unsnake(str, func(value string) string {
1342
+ if value == "" {
1343
+ return value
1344
+ }
1345
+ return strings.ToUpper(value[:1]) + value[1:]
1346
+ }, func(value string, index int) string {
1347
+ return notationGeneralProgrammer_capitalize(value)
1348
+ })
1349
+ }
1350
+
1351
+ func notationGeneralProgrammer_snake(str string) string {
1352
+ if str == "" {
1353
+ return str
1354
+ }
1355
+ prefix := ""
1356
+ for len(str) != 0 && str[0] == '_' {
1357
+ prefix += "_"
1358
+ str = str[1:]
1359
+ }
1360
+ out := func(value string) string { return prefix + value }
1361
+ items := strings.Split(str, "_")
1362
+ if len(items) > 1 {
1363
+ for i, item := range items {
1364
+ items[i] = strings.ToLower(item)
1365
+ }
1366
+ return out(strings.Join(items, "_"))
1367
+ }
1368
+ indexes := []int{}
1369
+ for i := 0; i < len(str); i++ {
1370
+ code := str[i]
1371
+ if 'A' <= code && code <= 'Z' {
1372
+ indexes = append(indexes, i)
1373
+ }
1374
+ }
1375
+ for i := len(indexes) - 1; i > 0; i-- {
1376
+ now := indexes[i]
1377
+ prev := indexes[i-1]
1378
+ if now-prev == 1 {
1379
+ indexes = append(indexes[:i], indexes[i+1:]...)
1380
+ }
1381
+ }
1382
+ if len(indexes) != 0 && indexes[0] == 0 {
1383
+ indexes = indexes[1:]
1384
+ }
1385
+ if len(indexes) == 0 {
1386
+ return out(strings.ToLower(str))
1387
+ }
1388
+ ret := ""
1389
+ for i, last := range indexes {
1390
+ first := 0
1391
+ if i != 0 {
1392
+ first = indexes[i-1]
1393
+ }
1394
+ ret += strings.ToLower(str[first:last])
1395
+ ret += "_"
1396
+ }
1397
+ ret += strings.ToLower(str[indexes[len(indexes)-1]:])
1398
+ return out(ret)
1399
+ }
1400
+
1401
+ // notationGeneralProgrammer_kebab derives the snake_case form first and then
1402
+ // rewrites the word separators to hyphens, keeping any leading underscores
1403
+ // untouched — the exact composition mirrored by the `KebabCase<T>` typing.
1404
+ func notationGeneralProgrammer_kebab(str string) string {
1405
+ snaked := notationGeneralProgrammer_snake(str)
1406
+ prefix := ""
1407
+ for len(snaked) != 0 && snaked[0] == '_' {
1408
+ prefix += "_"
1409
+ snaked = snaked[1:]
1410
+ }
1411
+ return prefix + strings.ReplaceAll(snaked, "_", "-")
1412
+ }
1413
+
1414
+ func notationGeneralProgrammer_unsnake(str string, plain func(string) string, snake func(string, int) string) string {
1415
+ prefix := ""
1416
+ for len(str) != 0 && str[0] == '_' {
1417
+ prefix += "_"
1418
+ str = str[1:]
1419
+ }
1420
+ out := func(value string) string { return prefix + value }
1421
+ if str == "" {
1422
+ return out("")
1423
+ }
1424
+ raw := strings.Split(str, "_")
1425
+ items := []string{}
1426
+ for _, item := range raw {
1427
+ if item != "" {
1428
+ items = append(items, item)
1429
+ }
1430
+ }
1431
+ if len(items) == 0 {
1432
+ return out("")
1433
+ }
1434
+ if len(items) == 1 {
1435
+ return out(plain(items[0]))
1436
+ }
1437
+ for i, item := range items {
1438
+ items[i] = snake(item, i)
1439
+ }
1440
+ return out(strings.Join(items, ""))
1441
+ }