typia 13.0.1-dev.20260703.1 → 13.0.2

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