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,519 +1,519 @@
1
- package main
2
-
3
- import (
4
- "os"
5
- "os/exec"
6
- "path/filepath"
7
- "strings"
8
- "testing"
9
- )
10
-
11
- // TestPlainClassifyStrategyEdgesTransform covers two construction-strategy edges:
12
- // - an ABSTRACT class must FIELD-COPY (a runtime `new AbstractClass(seed)` throws
13
- // "Cannot create an instance of an abstract class"), and
14
- // - a TUPLE-typed rest parameter `constructor(...args: [Seed, number?])` must
15
- // build via `new` with the first tuple element as the seed (matching
16
- // Classifiable's `[infer P, ...Rest]` rule).
17
- func TestPlainClassifyStrategyEdgesTransform(t *testing.T) {
18
- project := plainClassifyStrategyEdgesProject(t)
19
- out, errText, code := ttscTypiaTestCapture(func() int {
20
- return runTransform([]string{
21
- "--cwd", project,
22
- "--tsconfig", "tsconfig.json",
23
- "--file", "src/main.ts",
24
- "--output", "js",
25
- })
26
- })
27
- if code != 0 {
28
- t.Fatalf("classify strategy-edges transform failed: code=%d stderr=\n%s", code, errText)
29
- }
30
- // the abstract class must NOT be constructed with `new Shape(`
31
- if strings.Contains(out, "new Shape(") {
32
- t.Fatalf("an abstract class must field-copy, never `new Shape(seed)`:\n%s", out)
33
- }
34
- if !strings.Contains(out, "Object.create(Shape.prototype)") {
35
- t.Fatalf("the abstract class should field-copy via Object.create(Shape.prototype):\n%s", out)
36
- }
37
- // the tuple-rest ctor must build via `new Pair(`
38
- if !strings.Contains(out, "new Pair(") {
39
- t.Fatalf("the tuple-rest constructor should build via new Pair(seed):\n%s", out)
40
- }
41
- plainClassifyStrategyEdgesRun(t, project, out)
42
- }
43
-
44
- // TestPlainClassifyPrivateFieldRejected verifies that a class carrying ES
45
- // `#private` fields is REJECTED at a field-copied position (a nested class), at
46
- // transform time, rather than emitting field-copy code whose prototype methods
47
- // throw "Cannot read private member" at runtime.
48
- func TestPlainClassifyPrivateFieldRejected(t *testing.T) {
49
- project := plainClassifyPrivateProject(t)
50
- // Project mode (no --file/--output js): runTransformProject reports typia
51
- // transform diagnostics and exits non-zero, the established pattern for
52
- // asserting a transform-time rejection (see compare_equal_cover).
53
- out, errText, code := ttscTypiaTestCapture(func() int {
54
- return runTransform([]string{
55
- "--cwd", project,
56
- "--tsconfig", "tsconfig.json",
57
- })
58
- })
59
- if code == 0 {
60
- t.Fatalf("a nested #private-field class must be rejected at transform time, but the transform succeeded\nstdout=%s\nstderr=%s", out, errText)
61
- }
62
- if !strings.Contains(out, "typia transform error") {
63
- t.Fatalf("the #private rejection diagnostic is missing:\nstdout=%s\nstderr=%s", out, errText)
64
- }
65
- }
66
-
67
- func plainClassifyStrategyEdgesProject(t *testing.T) string {
68
- t.Helper()
69
- return plainClassifyWriteProject(t, "plain-classify-strategy-", plainClassifyStrategyEdgesSource)
70
- }
71
-
72
- func plainClassifyPrivateProject(t *testing.T) string {
73
- t.Helper()
74
- return plainClassifyWriteProject(t, "plain-classify-private-", plainClassifyPrivateSource)
75
- }
76
-
77
- // plainClassifyWriteProject stages a one-file fixture project reusing the
78
- // from/new tsconfig, returning the project dir.
79
- func plainClassifyWriteProject(t *testing.T, prefix string, source string) string {
80
- t.Helper()
81
- root := ttscTypiaTestRepoRoot(t)
82
- base := filepath.Join(root, "packages", "typia", "native", ".tmp-ttsc-typia-tests")
83
- if err := os.MkdirAll(base, 0o755); err != nil {
84
- t.Fatalf("mkdir temp base: %v", err)
85
- }
86
- dir, err := os.MkdirTemp(base, prefix)
87
- if err != nil {
88
- t.Fatalf("create temp fixture: %v", err)
89
- }
90
- t.Cleanup(func() { _ = os.RemoveAll(dir) })
91
- src := filepath.Join(dir, "src")
92
- if err := os.MkdirAll(src, 0o755); err != nil {
93
- t.Fatalf("mkdir fixture src: %v", err)
94
- }
95
- if err := os.WriteFile(filepath.Join(dir, "tsconfig.json"), []byte(plainClassifyFromNewTSConfig), 0o644); err != nil {
96
- t.Fatalf("write tsconfig: %v", err)
97
- }
98
- if err := os.WriteFile(filepath.Join(src, "main.ts"), []byte(source), 0o644); err != nil {
99
- t.Fatalf("write source: %v", err)
100
- }
101
- return dir
102
- }
103
-
104
- func plainClassifyStrategyEdgesRun(t *testing.T, project string, js string) {
105
- t.Helper()
106
- node, err := exec.LookPath("node")
107
- if err != nil {
108
- t.Skip("node executable not found")
109
- }
110
- runtimeDir := filepath.Join(project, "runtime")
111
- if err := os.MkdirAll(runtimeDir, 0o755); err != nil {
112
- t.Fatalf("mkdir runtime dir: %v", err)
113
- }
114
- ttscTypiaTestWriteCommonRuntimeStubs(t, runtimeDir)
115
- if err := os.WriteFile(filepath.Join(runtimeDir, "generic-internal-stub.cjs"), []byte(plainClassifyFromNewGenericStub), 0o644); err != nil {
116
- t.Fatalf("write generic stub: %v", err)
117
- }
118
- if err := os.WriteFile(filepath.Join(runtimeDir, "main.cjs"), []byte(plainClassifyFromNewRewrite(t, js)), 0o644); err != nil {
119
- t.Fatalf("write runtime module: %v", err)
120
- }
121
- runner := filepath.Join(runtimeDir, "run.cjs")
122
- if err := os.WriteFile(runner, []byte(plainClassifyStrategyEdgesRunner), 0o644); err != nil {
123
- t.Fatalf("write runner: %v", err)
124
- }
125
- cmd := exec.Command(node, runner)
126
- cmd.Dir = runtimeDir
127
- output, err := cmd.CombinedOutput()
128
- if err != nil {
129
- t.Fatalf("classify strategy-edges runtime cases failed: %v\n%s", err, output)
130
- }
131
- }
132
-
133
- const plainClassifyStrategyEdgesSource = `import typia from "typia";
134
-
135
- // ABSTRACT class: typeof Shape has only an ` + "`abstract new`" + ` signature, which is
136
- // not runtime-newable, so classify must FIELD-COPY the instance shape.
137
- export abstract class Shape {
138
- kind!: string;
139
- describe(): string {
140
- return "shape:" + this.kind;
141
- }
142
- }
143
-
144
- // TUPLE-rest constructor: the seed is the FIRST tuple element { a; b }.
145
- export class Pair {
146
- a!: number;
147
- b!: number;
148
- constructor(...args: [{ a: number; b: number }, number?]) {
149
- this.a = args[0].a;
150
- this.b = args[0].b;
151
- }
152
- sum(): number {
153
- return this.a + this.b;
154
- }
155
- }
156
-
157
- export const buildShape = typia.plain.createClassify<typeof Shape>();
158
- export const buildPair = typia.plain.createClassify<typeof Pair>();
159
- `
160
-
161
- const plainClassifyStrategyEdgesRunner = `const mod = require("./main.cjs");
162
-
163
- const assert = (cond, msg) => {
164
- if (!cond) throw new Error(msg);
165
- };
166
-
167
- // abstract class field-copies into a real instance with a working prototype method
168
- const sh = mod.buildShape({ kind: "circle" });
169
- assert(sh instanceof mod.Shape, "abstract class should field-copy into a Shape instance");
170
- assert(sh.describe() === "shape:circle", "abstract class prototype method should work, got: " + sh.describe());
171
-
172
- // tuple-rest ctor builds via new with the first tuple element as the seed
173
- const pr = mod.buildPair({ a: 3, b: 4 });
174
- assert(pr instanceof mod.Pair, "tuple-rest ctor should build a Pair instance");
175
- assert(pr.sum() === 7, "tuple-rest construction should reconstruct, got: " + pr.sum());
176
- `
177
-
178
- const plainClassifyPrivateSource = `import typia from "typia";
179
-
180
- // A class with an ES #private field — its private slot is installed only by the
181
- // constructor, so a field-copy (Object.create + assign) cannot restore it.
182
- class Secret {
183
- #token!: string;
184
- reveal(): string {
185
- return this.#token;
186
- }
187
- }
188
-
189
- // Holder nests Secret at a field-copied position, so classify cannot soundly
190
- // reconstruct it and must reject at transform time.
191
- export class Holder {
192
- secret!: Secret;
193
- }
194
-
195
- export const buildHolder = typia.plain.createClassify<Holder>();
196
- `
197
-
198
- // TestPlainClassifyStaticPrivateAllowed verifies that a class whose ONLY #private
199
- // member is STATIC is NOT rejected — a static `#x` lives on the constructor, not
200
- // on instances, so field-copy (Object.create(prototype) + assign) still yields a
201
- // sound instance.
202
- func TestPlainClassifyStaticPrivateAllowed(t *testing.T) {
203
- project := plainClassifyWriteProject(t, "plain-classify-staticpriv-", plainClassifyStaticPrivateSource)
204
- out, errText, code := ttscTypiaTestCapture(func() int {
205
- return runTransform([]string{
206
- "--cwd", project,
207
- "--tsconfig", "tsconfig.json",
208
- "--file", "src/main.ts",
209
- "--output", "js",
210
- })
211
- })
212
- if code != 0 {
213
- t.Fatalf("a class with only a STATIC #private member must field-copy, not be rejected: code=%d\n%s", code, errText)
214
- }
215
- if !strings.Contains(out, "Object.create(Counter.prototype)") {
216
- t.Fatalf("the static-#private class should field-copy onto Counter.prototype:\n%s", out)
217
- }
218
- }
219
-
220
- // TestPlainClassifySelfRefPrivateRejected verifies that a SELF-REFERENTIAL
221
- // #private class is rejected: construction is root-only, so its nested
222
- // self-occurrences are field-copied (losing the #private slots), which the guard
223
- // must reject rather than emit code that throws at runtime.
224
- func TestPlainClassifySelfRefPrivateRejected(t *testing.T) {
225
- project := plainClassifyWriteProject(t, "plain-classify-selfrefpriv-", plainClassifySelfRefPrivateSource)
226
- out, errText, code := ttscTypiaTestCapture(func() int {
227
- return runTransform([]string{
228
- "--cwd", project,
229
- "--tsconfig", "tsconfig.json",
230
- })
231
- })
232
- if code == 0 {
233
- t.Fatalf("a self-referential #private class field-copies its nested occurrences, so it must be rejected; the transform succeeded\nstdout=%s\nstderr=%s", out, errText)
234
- }
235
- if !strings.Contains(out, "typia transform error") {
236
- t.Fatalf("the self-ref #private rejection diagnostic is missing:\nstdout=%s\nstderr=%s", out, errText)
237
- }
238
- }
239
-
240
- const plainClassifyStaticPrivateSource = `import typia from "typia";
241
-
242
- // Only a STATIC #private member — it lives on the constructor, not instances, so
243
- // field-copy reconstructs a sound instance and classify must NOT reject it.
244
- export class Counter {
245
- value = 0;
246
- static #total = 0;
247
- bump(): number {
248
- this.value += 1;
249
- Counter.#total += 1;
250
- return this.value;
251
- }
252
- }
253
-
254
- export const build = typia.plain.createClassify<Counter>();
255
- `
256
-
257
- const plainClassifySelfRefPrivateSource = `import typia from "typia";
258
-
259
- // A self-referential class with an INSTANCE #private field, built via new at the
260
- // root. Its nested self-occurrences (next) are field-copied — construction is
261
- // root-only — so the #private slot would be lost there: classify must reject.
262
- export class Node {
263
- #id!: string;
264
- next: Node | null = null;
265
- constructor(seed: { id: string; next: Node | null }) {
266
- this.#id = seed.id;
267
- this.next = seed.next;
268
- }
269
- id(): string {
270
- return this.#id;
271
- }
272
- }
273
-
274
- export const build = typia.plain.createClassify<typeof Node>();
275
- `
276
-
277
- // TestPlainClassifyUnboundAnonymousClass verifies an anonymous class expression
278
- // with NO enclosing const binding field-copies as a plain {} instead of emitting
279
- // `Object.create(__class.prototype)` — the binder-internal __class name is not a
280
- // usable runtime binding (it would throw ReferenceError).
281
- func TestPlainClassifyUnboundAnonymousClass(t *testing.T) {
282
- project := plainClassifyWriteProject(t, "plain-classify-anon-", plainClassifyUnboundAnonSource)
283
- out, errText, code := ttscTypiaTestCapture(func() int {
284
- return runTransform([]string{
285
- "--cwd", project,
286
- "--tsconfig", "tsconfig.json",
287
- "--file", "src/main.ts",
288
- "--output", "js",
289
- })
290
- })
291
- if code != 0 {
292
- t.Fatalf("unbound anonymous class transform failed: code=%d\n%s", code, errText)
293
- }
294
- if strings.Contains(out, "__class") {
295
- t.Fatalf("an unbound anonymous class must NOT leak the binder-internal __class name:\n%s", out)
296
- }
297
- plainClassifyRunNode(t, project, out, plainClassifyUnboundAnonRunner)
298
- }
299
-
300
- // plainClassifyRunNode writes the rewritten module + a custom runner and runs it.
301
- func plainClassifyRunNode(t *testing.T, project string, js string, runnerSrc string) {
302
- t.Helper()
303
- node, err := exec.LookPath("node")
304
- if err != nil {
305
- t.Skip("node executable not found")
306
- }
307
- runtimeDir := filepath.Join(project, "runtime")
308
- if err := os.MkdirAll(runtimeDir, 0o755); err != nil {
309
- t.Fatalf("mkdir runtime dir: %v", err)
310
- }
311
- ttscTypiaTestWriteCommonRuntimeStubs(t, runtimeDir)
312
- if err := os.WriteFile(filepath.Join(runtimeDir, "generic-internal-stub.cjs"), []byte(plainClassifyFromNewGenericStub), 0o644); err != nil {
313
- t.Fatalf("write generic stub: %v", err)
314
- }
315
- if err := os.WriteFile(filepath.Join(runtimeDir, "main.cjs"), []byte(plainClassifyFromNewRewrite(t, js)), 0o644); err != nil {
316
- t.Fatalf("write runtime module: %v", err)
317
- }
318
- runner := filepath.Join(runtimeDir, "run.cjs")
319
- if err := os.WriteFile(runner, []byte(runnerSrc), 0o644); err != nil {
320
- t.Fatalf("write runner: %v", err)
321
- }
322
- cmd := exec.Command(node, runner)
323
- cmd.Dir = runtimeDir
324
- output, err := cmd.CombinedOutput()
325
- if err != nil {
326
- t.Fatalf("runtime cases failed: %v\n%s", err, output)
327
- }
328
- }
329
-
330
- const plainClassifyUnboundAnonSource = `import typia from "typia";
331
-
332
- // An anonymous class expression with NO enclosing const binding (returned from a
333
- // factory). Its binder-internal name is not a usable runtime binding, so classify
334
- // must field-copy a plain {} rather than reference that unbound name.
335
- const factory = () =>
336
- class {
337
- x!: number;
338
- label(): string {
339
- return "x=" + this.x;
340
- }
341
- };
342
- export type Widget = InstanceType<ReturnType<typeof factory>>;
343
-
344
- export const build = typia.plain.createClassify<Widget>();
345
- `
346
-
347
- // TestPlainClassifyInheritedPrivateRejected verifies that a class extending a
348
- // #private-bearing base is rejected: field-copying the subclass never installs
349
- // the inherited #private slot, so its prototype methods would throw at runtime.
350
- func TestPlainClassifyInheritedPrivateRejected(t *testing.T) {
351
- project := plainClassifyWriteProject(t, "plain-classify-inheritedpriv-", plainClassifyInheritedPrivateSource)
352
- out, errText, code := ttscTypiaTestCapture(func() int {
353
- return runTransform([]string{
354
- "--cwd", project,
355
- "--tsconfig", "tsconfig.json",
356
- })
357
- })
358
- if code == 0 {
359
- t.Fatalf("a class extending a #private-bearing base must be rejected; the transform succeeded\nstdout=%s\nstderr=%s", out, errText)
360
- }
361
- if !strings.Contains(out, "typia transform error") {
362
- t.Fatalf("the inherited-#private rejection diagnostic is missing:\nstdout=%s\nstderr=%s", out, errText)
363
- }
364
- }
365
-
366
- const plainClassifyInheritedPrivateSource = `import typia from "typia";
367
-
368
- // A base class with an INSTANCE #private field; the subclass adds only public
369
- // data. Field-copying the subclass never installs the inherited #private slot, so
370
- // classify must reject it — the prototype chain matters.
371
- class Base {
372
- #secret = 0;
373
- bump(): number {
374
- this.#secret += 1;
375
- return this.#secret;
376
- }
377
- }
378
- export class Derived extends Base {
379
- name!: string;
380
- }
381
-
382
- export const build = typia.plain.createClassify<Derived>();
383
- `
384
-
385
- const plainClassifyUnboundAnonRunner = `const mod = require("./main.cjs");
386
-
387
- const assert = (cond, msg) => {
388
- if (!cond) throw new Error(msg);
389
- };
390
-
391
- // must NOT throw "ReferenceError: __class is not defined"; field-copies the data
392
- const w = mod.build({ x: 5 });
393
- assert(w && w.x === 5, "unbound anonymous class should field-copy its data, got: " + JSON.stringify(w));
394
- `
395
-
396
- // TestPlainClassifyNamedInterfaceFieldCopy verifies that a named INTERFACE field
397
- // is field-copied as a plain {} — an interface has no runtime value, so emitting
398
- // Object.create(<Interface>.prototype) would throw ReferenceError.
399
- func TestPlainClassifyNamedInterfaceFieldCopy(t *testing.T) {
400
- project := plainClassifyWriteProject(t, "plain-classify-iface-", plainClassifyInterfaceSource)
401
- out, errText, code := ttscTypiaTestCapture(func() int {
402
- return runTransform([]string{"--cwd", project, "--tsconfig", "tsconfig.json", "--file", "src/main.ts", "--output", "js"})
403
- })
404
- if code != 0 {
405
- t.Fatalf("named-interface field transform failed: code=%d\n%s", code, errText)
406
- }
407
- if strings.Contains(out, "Object.create(Animal.prototype)") {
408
- t.Fatalf("a named interface must NOT be field-copied via Object.create(Animal.prototype):\n%s", out)
409
- }
410
- if !strings.Contains(out, "Object.create(Zoo.prototype)") {
411
- t.Fatalf("the enclosing class should still field-copy onto Zoo.prototype:\n%s", out)
412
- }
413
- plainClassifyRunNode(t, project, out, plainClassifyInterfaceRunner)
414
- }
415
-
416
- // TestPlainClassifyRecursiveAnonymousObject verifies a RECURSIVE anonymous object
417
- // type (whose IsLiteral() is false) field-copies as {} rather than emitting
418
- // Object.create(__type.prototype) (a ReferenceError).
419
- func TestPlainClassifyRecursiveAnonymousObject(t *testing.T) {
420
- project := plainClassifyWriteProject(t, "plain-classify-recanon-", plainClassifyRecAnonSource)
421
- out, errText, code := ttscTypiaTestCapture(func() int {
422
- return runTransform([]string{"--cwd", project, "--tsconfig", "tsconfig.json", "--file", "src/main.ts", "--output", "js"})
423
- })
424
- if code != 0 {
425
- t.Fatalf("recursive-anonymous-object transform failed: code=%d\n%s", code, errText)
426
- }
427
- if strings.Contains(out, "__type") {
428
- t.Fatalf("a recursive anonymous object must NOT leak the binder-internal __type name:\n%s", out)
429
- }
430
- plainClassifyRunNode(t, project, out, plainClassifyRecAnonRunner)
431
- }
432
-
433
- // TestPlainClassifyGenericPrivateRejected verifies that a GENERIC class with its
434
- // own instance #private is rejected — its instantiation Gen<string> is a bare
435
- // TypeReference, but the member scan resolves the class declaration so the
436
- // #private is still detected.
437
- func TestPlainClassifyGenericPrivateRejected(t *testing.T) {
438
- project := plainClassifyWriteProject(t, "plain-classify-genericpriv-", plainClassifyGenericPrivateSource)
439
- out, errText, code := ttscTypiaTestCapture(func() int {
440
- return runTransform([]string{"--cwd", project, "--tsconfig", "tsconfig.json"})
441
- })
442
- if code == 0 {
443
- t.Fatalf("a generic class with its own #private must be rejected; the transform succeeded\nstdout=%s\nstderr=%s", out, errText)
444
- }
445
- if !strings.Contains(out, "typia transform error") {
446
- t.Fatalf("the generic-#private rejection diagnostic is missing:\nstdout=%s\nstderr=%s", out, errText)
447
- }
448
- }
449
-
450
- const plainClassifyInterfaceSource = `import typia from "typia";
451
-
452
- // A named INTERFACE — a type-only name with no runtime value.
453
- export interface Animal {
454
- name: string;
455
- legs: number;
456
- }
457
-
458
- // Zoo is a real class (field-copies onto its prototype); its animal field is
459
- // the interface, which must field-copy as a plain {}.
460
- export class Zoo {
461
- label!: string;
462
- animal!: Animal;
463
- describe(): string {
464
- return this.label + ":" + this.animal.name;
465
- }
466
- }
467
-
468
- export const build = typia.plain.createClassify<Zoo>();
469
- `
470
-
471
- const plainClassifyInterfaceRunner = `const mod = require("./main.cjs");
472
-
473
- const assert = (cond, msg) => {
474
- if (!cond) throw new Error(msg);
475
- };
476
-
477
- const z = mod.build({ label: "z", animal: { name: "fox", legs: 4 } });
478
- assert(z instanceof mod.Zoo, "Zoo should be a class instance");
479
- assert(z.describe() === "z:fox", "Zoo method should work, got: " + z.describe());
480
- assert(z.animal && z.animal.name === "fox" && z.animal.legs === 4, "interface field is a plain object");
481
- `
482
-
483
- const plainClassifyRecAnonSource = `import typia from "typia";
484
-
485
- // A RECURSIVE anonymous object type alias — no runtime value, IsLiteral() is
486
- // false because it is recursive, so classify must still field-copy a plain {}.
487
- export type Rec = { value: number; self: Rec | null };
488
-
489
- export const build = typia.plain.createClassify<Rec>();
490
- `
491
-
492
- const plainClassifyRecAnonRunner = `const mod = require("./main.cjs");
493
-
494
- const assert = (cond, msg) => {
495
- if (!cond) throw new Error(msg);
496
- };
497
-
498
- // must NOT throw "ReferenceError: __type is not defined"
499
- const r = mod.build({ value: 1, self: { value: 2, self: null } });
500
- assert(r && r.value === 1, "recursive anonymous object should field-copy, got: " + JSON.stringify(r));
501
- assert(r.self && r.self.value === 2 && r.self.self === null, "nested recursion should field-copy");
502
- `
503
-
504
- const plainClassifyGenericPrivateSource = `import typia from "typia";
505
-
506
- // A GENERIC class with its OWN instance #private. classify<Gen<string>> emplaces
507
- // the Gen<string> instance (a bare TypeReference), but the member scan resolves
508
- // Gen's declaration, so the own #private is detected and the class is rejected.
509
- export class Gen<T> {
510
- #secret = 0;
511
- value!: T;
512
- bump(): number {
513
- this.#secret += 1;
514
- return this.#secret;
515
- }
516
- }
517
-
518
- export const build = typia.plain.createClassify<Gen<string>>();
519
- `
1
+ package main
2
+
3
+ import (
4
+ "os"
5
+ "os/exec"
6
+ "path/filepath"
7
+ "strings"
8
+ "testing"
9
+ )
10
+
11
+ // TestPlainClassifyStrategyEdgesTransform covers two construction-strategy edges:
12
+ // - an ABSTRACT class must FIELD-COPY (a runtime `new AbstractClass(seed)` throws
13
+ // "Cannot create an instance of an abstract class"), and
14
+ // - a TUPLE-typed rest parameter `constructor(...args: [Seed, number?])` must
15
+ // build via `new` with the first tuple element as the seed (matching
16
+ // Classifiable's `[infer P, ...Rest]` rule).
17
+ func TestPlainClassifyStrategyEdgesTransform(t *testing.T) {
18
+ project := plainClassifyStrategyEdgesProject(t)
19
+ out, errText, code := ttscTypiaTestCapture(func() int {
20
+ return runTransform([]string{
21
+ "--cwd", project,
22
+ "--tsconfig", "tsconfig.json",
23
+ "--file", "src/main.ts",
24
+ "--output", "js",
25
+ })
26
+ })
27
+ if code != 0 {
28
+ t.Fatalf("classify strategy-edges transform failed: code=%d stderr=\n%s", code, errText)
29
+ }
30
+ // the abstract class must NOT be constructed with `new Shape(`
31
+ if strings.Contains(out, "new Shape(") {
32
+ t.Fatalf("an abstract class must field-copy, never `new Shape(seed)`:\n%s", out)
33
+ }
34
+ if !strings.Contains(out, "Object.create(Shape.prototype)") {
35
+ t.Fatalf("the abstract class should field-copy via Object.create(Shape.prototype):\n%s", out)
36
+ }
37
+ // the tuple-rest ctor must build via `new Pair(`
38
+ if !strings.Contains(out, "new Pair(") {
39
+ t.Fatalf("the tuple-rest constructor should build via new Pair(seed):\n%s", out)
40
+ }
41
+ plainClassifyStrategyEdgesRun(t, project, out)
42
+ }
43
+
44
+ // TestPlainClassifyPrivateFieldRejected verifies that a class carrying ES
45
+ // `#private` fields is REJECTED at a field-copied position (a nested class), at
46
+ // transform time, rather than emitting field-copy code whose prototype methods
47
+ // throw "Cannot read private member" at runtime.
48
+ func TestPlainClassifyPrivateFieldRejected(t *testing.T) {
49
+ project := plainClassifyPrivateProject(t)
50
+ // Project mode (no --file/--output js): runTransformProject reports typia
51
+ // transform diagnostics and exits non-zero, the established pattern for
52
+ // asserting a transform-time rejection (see compare_equal_cover).
53
+ out, errText, code := ttscTypiaTestCapture(func() int {
54
+ return runTransform([]string{
55
+ "--cwd", project,
56
+ "--tsconfig", "tsconfig.json",
57
+ })
58
+ })
59
+ if code == 0 {
60
+ t.Fatalf("a nested #private-field class must be rejected at transform time, but the transform succeeded\nstdout=%s\nstderr=%s", out, errText)
61
+ }
62
+ if !strings.Contains(out, "typia transform error") {
63
+ t.Fatalf("the #private rejection diagnostic is missing:\nstdout=%s\nstderr=%s", out, errText)
64
+ }
65
+ }
66
+
67
+ func plainClassifyStrategyEdgesProject(t *testing.T) string {
68
+ t.Helper()
69
+ return plainClassifyWriteProject(t, "plain-classify-strategy-", plainClassifyStrategyEdgesSource)
70
+ }
71
+
72
+ func plainClassifyPrivateProject(t *testing.T) string {
73
+ t.Helper()
74
+ return plainClassifyWriteProject(t, "plain-classify-private-", plainClassifyPrivateSource)
75
+ }
76
+
77
+ // plainClassifyWriteProject stages a one-file fixture project reusing the
78
+ // from/new tsconfig, returning the project dir.
79
+ func plainClassifyWriteProject(t *testing.T, prefix string, source string) string {
80
+ t.Helper()
81
+ root := ttscTypiaTestRepoRoot(t)
82
+ base := filepath.Join(root, "packages", "typia", "native", ".tmp-ttsc-typia-tests")
83
+ if err := os.MkdirAll(base, 0o755); err != nil {
84
+ t.Fatalf("mkdir temp base: %v", err)
85
+ }
86
+ dir, err := os.MkdirTemp(base, prefix)
87
+ if err != nil {
88
+ t.Fatalf("create temp fixture: %v", err)
89
+ }
90
+ t.Cleanup(func() { _ = os.RemoveAll(dir) })
91
+ src := filepath.Join(dir, "src")
92
+ if err := os.MkdirAll(src, 0o755); err != nil {
93
+ t.Fatalf("mkdir fixture src: %v", err)
94
+ }
95
+ if err := os.WriteFile(filepath.Join(dir, "tsconfig.json"), []byte(plainClassifyFromNewTSConfig), 0o644); err != nil {
96
+ t.Fatalf("write tsconfig: %v", err)
97
+ }
98
+ if err := os.WriteFile(filepath.Join(src, "main.ts"), []byte(source), 0o644); err != nil {
99
+ t.Fatalf("write source: %v", err)
100
+ }
101
+ return dir
102
+ }
103
+
104
+ func plainClassifyStrategyEdgesRun(t *testing.T, project string, js string) {
105
+ t.Helper()
106
+ node, err := exec.LookPath("node")
107
+ if err != nil {
108
+ t.Skip("node executable not found")
109
+ }
110
+ runtimeDir := filepath.Join(project, "runtime")
111
+ if err := os.MkdirAll(runtimeDir, 0o755); err != nil {
112
+ t.Fatalf("mkdir runtime dir: %v", err)
113
+ }
114
+ ttscTypiaTestWriteCommonRuntimeStubs(t, runtimeDir)
115
+ if err := os.WriteFile(filepath.Join(runtimeDir, "generic-internal-stub.cjs"), []byte(plainClassifyFromNewGenericStub), 0o644); err != nil {
116
+ t.Fatalf("write generic stub: %v", err)
117
+ }
118
+ if err := os.WriteFile(filepath.Join(runtimeDir, "main.cjs"), []byte(plainClassifyFromNewRewrite(t, js)), 0o644); err != nil {
119
+ t.Fatalf("write runtime module: %v", err)
120
+ }
121
+ runner := filepath.Join(runtimeDir, "run.cjs")
122
+ if err := os.WriteFile(runner, []byte(plainClassifyStrategyEdgesRunner), 0o644); err != nil {
123
+ t.Fatalf("write runner: %v", err)
124
+ }
125
+ cmd := exec.Command(node, runner)
126
+ cmd.Dir = runtimeDir
127
+ output, err := cmd.CombinedOutput()
128
+ if err != nil {
129
+ t.Fatalf("classify strategy-edges runtime cases failed: %v\n%s", err, output)
130
+ }
131
+ }
132
+
133
+ const plainClassifyStrategyEdgesSource = `import typia from "typia";
134
+
135
+ // ABSTRACT class: typeof Shape has only an ` + "`abstract new`" + ` signature, which is
136
+ // not runtime-newable, so classify must FIELD-COPY the instance shape.
137
+ export abstract class Shape {
138
+ kind!: string;
139
+ describe(): string {
140
+ return "shape:" + this.kind;
141
+ }
142
+ }
143
+
144
+ // TUPLE-rest constructor: the seed is the FIRST tuple element { a; b }.
145
+ export class Pair {
146
+ a!: number;
147
+ b!: number;
148
+ constructor(...args: [{ a: number; b: number }, number?]) {
149
+ this.a = args[0].a;
150
+ this.b = args[0].b;
151
+ }
152
+ sum(): number {
153
+ return this.a + this.b;
154
+ }
155
+ }
156
+
157
+ export const buildShape = typia.plain.createClassify<typeof Shape>();
158
+ export const buildPair = typia.plain.createClassify<typeof Pair>();
159
+ `
160
+
161
+ const plainClassifyStrategyEdgesRunner = `const mod = require("./main.cjs");
162
+
163
+ const assert = (cond, msg) => {
164
+ if (!cond) throw new Error(msg);
165
+ };
166
+
167
+ // abstract class field-copies into a real instance with a working prototype method
168
+ const sh = mod.buildShape({ kind: "circle" });
169
+ assert(sh instanceof mod.Shape, "abstract class should field-copy into a Shape instance");
170
+ assert(sh.describe() === "shape:circle", "abstract class prototype method should work, got: " + sh.describe());
171
+
172
+ // tuple-rest ctor builds via new with the first tuple element as the seed
173
+ const pr = mod.buildPair({ a: 3, b: 4 });
174
+ assert(pr instanceof mod.Pair, "tuple-rest ctor should build a Pair instance");
175
+ assert(pr.sum() === 7, "tuple-rest construction should reconstruct, got: " + pr.sum());
176
+ `
177
+
178
+ const plainClassifyPrivateSource = `import typia from "typia";
179
+
180
+ // A class with an ES #private field — its private slot is installed only by the
181
+ // constructor, so a field-copy (Object.create + assign) cannot restore it.
182
+ class Secret {
183
+ #token!: string;
184
+ reveal(): string {
185
+ return this.#token;
186
+ }
187
+ }
188
+
189
+ // Holder nests Secret at a field-copied position, so classify cannot soundly
190
+ // reconstruct it and must reject at transform time.
191
+ export class Holder {
192
+ secret!: Secret;
193
+ }
194
+
195
+ export const buildHolder = typia.plain.createClassify<Holder>();
196
+ `
197
+
198
+ // TestPlainClassifyStaticPrivateAllowed verifies that a class whose ONLY #private
199
+ // member is STATIC is NOT rejected — a static `#x` lives on the constructor, not
200
+ // on instances, so field-copy (Object.create(prototype) + assign) still yields a
201
+ // sound instance.
202
+ func TestPlainClassifyStaticPrivateAllowed(t *testing.T) {
203
+ project := plainClassifyWriteProject(t, "plain-classify-staticpriv-", plainClassifyStaticPrivateSource)
204
+ out, errText, code := ttscTypiaTestCapture(func() int {
205
+ return runTransform([]string{
206
+ "--cwd", project,
207
+ "--tsconfig", "tsconfig.json",
208
+ "--file", "src/main.ts",
209
+ "--output", "js",
210
+ })
211
+ })
212
+ if code != 0 {
213
+ t.Fatalf("a class with only a STATIC #private member must field-copy, not be rejected: code=%d\n%s", code, errText)
214
+ }
215
+ if !strings.Contains(out, "Object.create(Counter.prototype)") {
216
+ t.Fatalf("the static-#private class should field-copy onto Counter.prototype:\n%s", out)
217
+ }
218
+ }
219
+
220
+ // TestPlainClassifySelfRefPrivateRejected verifies that a SELF-REFERENTIAL
221
+ // #private class is rejected: construction is root-only, so its nested
222
+ // self-occurrences are field-copied (losing the #private slots), which the guard
223
+ // must reject rather than emit code that throws at runtime.
224
+ func TestPlainClassifySelfRefPrivateRejected(t *testing.T) {
225
+ project := plainClassifyWriteProject(t, "plain-classify-selfrefpriv-", plainClassifySelfRefPrivateSource)
226
+ out, errText, code := ttscTypiaTestCapture(func() int {
227
+ return runTransform([]string{
228
+ "--cwd", project,
229
+ "--tsconfig", "tsconfig.json",
230
+ })
231
+ })
232
+ if code == 0 {
233
+ t.Fatalf("a self-referential #private class field-copies its nested occurrences, so it must be rejected; the transform succeeded\nstdout=%s\nstderr=%s", out, errText)
234
+ }
235
+ if !strings.Contains(out, "typia transform error") {
236
+ t.Fatalf("the self-ref #private rejection diagnostic is missing:\nstdout=%s\nstderr=%s", out, errText)
237
+ }
238
+ }
239
+
240
+ const plainClassifyStaticPrivateSource = `import typia from "typia";
241
+
242
+ // Only a STATIC #private member — it lives on the constructor, not instances, so
243
+ // field-copy reconstructs a sound instance and classify must NOT reject it.
244
+ export class Counter {
245
+ value = 0;
246
+ static #total = 0;
247
+ bump(): number {
248
+ this.value += 1;
249
+ Counter.#total += 1;
250
+ return this.value;
251
+ }
252
+ }
253
+
254
+ export const build = typia.plain.createClassify<Counter>();
255
+ `
256
+
257
+ const plainClassifySelfRefPrivateSource = `import typia from "typia";
258
+
259
+ // A self-referential class with an INSTANCE #private field, built via new at the
260
+ // root. Its nested self-occurrences (next) are field-copied — construction is
261
+ // root-only — so the #private slot would be lost there: classify must reject.
262
+ export class Node {
263
+ #id!: string;
264
+ next: Node | null = null;
265
+ constructor(seed: { id: string; next: Node | null }) {
266
+ this.#id = seed.id;
267
+ this.next = seed.next;
268
+ }
269
+ id(): string {
270
+ return this.#id;
271
+ }
272
+ }
273
+
274
+ export const build = typia.plain.createClassify<typeof Node>();
275
+ `
276
+
277
+ // TestPlainClassifyUnboundAnonymousClass verifies an anonymous class expression
278
+ // with NO enclosing const binding field-copies as a plain {} instead of emitting
279
+ // `Object.create(__class.prototype)` — the binder-internal __class name is not a
280
+ // usable runtime binding (it would throw ReferenceError).
281
+ func TestPlainClassifyUnboundAnonymousClass(t *testing.T) {
282
+ project := plainClassifyWriteProject(t, "plain-classify-anon-", plainClassifyUnboundAnonSource)
283
+ out, errText, code := ttscTypiaTestCapture(func() int {
284
+ return runTransform([]string{
285
+ "--cwd", project,
286
+ "--tsconfig", "tsconfig.json",
287
+ "--file", "src/main.ts",
288
+ "--output", "js",
289
+ })
290
+ })
291
+ if code != 0 {
292
+ t.Fatalf("unbound anonymous class transform failed: code=%d\n%s", code, errText)
293
+ }
294
+ if strings.Contains(out, "__class") {
295
+ t.Fatalf("an unbound anonymous class must NOT leak the binder-internal __class name:\n%s", out)
296
+ }
297
+ plainClassifyRunNode(t, project, out, plainClassifyUnboundAnonRunner)
298
+ }
299
+
300
+ // plainClassifyRunNode writes the rewritten module + a custom runner and runs it.
301
+ func plainClassifyRunNode(t *testing.T, project string, js string, runnerSrc string) {
302
+ t.Helper()
303
+ node, err := exec.LookPath("node")
304
+ if err != nil {
305
+ t.Skip("node executable not found")
306
+ }
307
+ runtimeDir := filepath.Join(project, "runtime")
308
+ if err := os.MkdirAll(runtimeDir, 0o755); err != nil {
309
+ t.Fatalf("mkdir runtime dir: %v", err)
310
+ }
311
+ ttscTypiaTestWriteCommonRuntimeStubs(t, runtimeDir)
312
+ if err := os.WriteFile(filepath.Join(runtimeDir, "generic-internal-stub.cjs"), []byte(plainClassifyFromNewGenericStub), 0o644); err != nil {
313
+ t.Fatalf("write generic stub: %v", err)
314
+ }
315
+ if err := os.WriteFile(filepath.Join(runtimeDir, "main.cjs"), []byte(plainClassifyFromNewRewrite(t, js)), 0o644); err != nil {
316
+ t.Fatalf("write runtime module: %v", err)
317
+ }
318
+ runner := filepath.Join(runtimeDir, "run.cjs")
319
+ if err := os.WriteFile(runner, []byte(runnerSrc), 0o644); err != nil {
320
+ t.Fatalf("write runner: %v", err)
321
+ }
322
+ cmd := exec.Command(node, runner)
323
+ cmd.Dir = runtimeDir
324
+ output, err := cmd.CombinedOutput()
325
+ if err != nil {
326
+ t.Fatalf("runtime cases failed: %v\n%s", err, output)
327
+ }
328
+ }
329
+
330
+ const plainClassifyUnboundAnonSource = `import typia from "typia";
331
+
332
+ // An anonymous class expression with NO enclosing const binding (returned from a
333
+ // factory). Its binder-internal name is not a usable runtime binding, so classify
334
+ // must field-copy a plain {} rather than reference that unbound name.
335
+ const factory = () =>
336
+ class {
337
+ x!: number;
338
+ label(): string {
339
+ return "x=" + this.x;
340
+ }
341
+ };
342
+ export type Widget = InstanceType<ReturnType<typeof factory>>;
343
+
344
+ export const build = typia.plain.createClassify<Widget>();
345
+ `
346
+
347
+ // TestPlainClassifyInheritedPrivateRejected verifies that a class extending a
348
+ // #private-bearing base is rejected: field-copying the subclass never installs
349
+ // the inherited #private slot, so its prototype methods would throw at runtime.
350
+ func TestPlainClassifyInheritedPrivateRejected(t *testing.T) {
351
+ project := plainClassifyWriteProject(t, "plain-classify-inheritedpriv-", plainClassifyInheritedPrivateSource)
352
+ out, errText, code := ttscTypiaTestCapture(func() int {
353
+ return runTransform([]string{
354
+ "--cwd", project,
355
+ "--tsconfig", "tsconfig.json",
356
+ })
357
+ })
358
+ if code == 0 {
359
+ t.Fatalf("a class extending a #private-bearing base must be rejected; the transform succeeded\nstdout=%s\nstderr=%s", out, errText)
360
+ }
361
+ if !strings.Contains(out, "typia transform error") {
362
+ t.Fatalf("the inherited-#private rejection diagnostic is missing:\nstdout=%s\nstderr=%s", out, errText)
363
+ }
364
+ }
365
+
366
+ const plainClassifyInheritedPrivateSource = `import typia from "typia";
367
+
368
+ // A base class with an INSTANCE #private field; the subclass adds only public
369
+ // data. Field-copying the subclass never installs the inherited #private slot, so
370
+ // classify must reject it — the prototype chain matters.
371
+ class Base {
372
+ #secret = 0;
373
+ bump(): number {
374
+ this.#secret += 1;
375
+ return this.#secret;
376
+ }
377
+ }
378
+ export class Derived extends Base {
379
+ name!: string;
380
+ }
381
+
382
+ export const build = typia.plain.createClassify<Derived>();
383
+ `
384
+
385
+ const plainClassifyUnboundAnonRunner = `const mod = require("./main.cjs");
386
+
387
+ const assert = (cond, msg) => {
388
+ if (!cond) throw new Error(msg);
389
+ };
390
+
391
+ // must NOT throw "ReferenceError: __class is not defined"; field-copies the data
392
+ const w = mod.build({ x: 5 });
393
+ assert(w && w.x === 5, "unbound anonymous class should field-copy its data, got: " + JSON.stringify(w));
394
+ `
395
+
396
+ // TestPlainClassifyNamedInterfaceFieldCopy verifies that a named INTERFACE field
397
+ // is field-copied as a plain {} — an interface has no runtime value, so emitting
398
+ // Object.create(<Interface>.prototype) would throw ReferenceError.
399
+ func TestPlainClassifyNamedInterfaceFieldCopy(t *testing.T) {
400
+ project := plainClassifyWriteProject(t, "plain-classify-iface-", plainClassifyInterfaceSource)
401
+ out, errText, code := ttscTypiaTestCapture(func() int {
402
+ return runTransform([]string{"--cwd", project, "--tsconfig", "tsconfig.json", "--file", "src/main.ts", "--output", "js"})
403
+ })
404
+ if code != 0 {
405
+ t.Fatalf("named-interface field transform failed: code=%d\n%s", code, errText)
406
+ }
407
+ if strings.Contains(out, "Object.create(Animal.prototype)") {
408
+ t.Fatalf("a named interface must NOT be field-copied via Object.create(Animal.prototype):\n%s", out)
409
+ }
410
+ if !strings.Contains(out, "Object.create(Zoo.prototype)") {
411
+ t.Fatalf("the enclosing class should still field-copy onto Zoo.prototype:\n%s", out)
412
+ }
413
+ plainClassifyRunNode(t, project, out, plainClassifyInterfaceRunner)
414
+ }
415
+
416
+ // TestPlainClassifyRecursiveAnonymousObject verifies a RECURSIVE anonymous object
417
+ // type (whose IsLiteral() is false) field-copies as {} rather than emitting
418
+ // Object.create(__type.prototype) (a ReferenceError).
419
+ func TestPlainClassifyRecursiveAnonymousObject(t *testing.T) {
420
+ project := plainClassifyWriteProject(t, "plain-classify-recanon-", plainClassifyRecAnonSource)
421
+ out, errText, code := ttscTypiaTestCapture(func() int {
422
+ return runTransform([]string{"--cwd", project, "--tsconfig", "tsconfig.json", "--file", "src/main.ts", "--output", "js"})
423
+ })
424
+ if code != 0 {
425
+ t.Fatalf("recursive-anonymous-object transform failed: code=%d\n%s", code, errText)
426
+ }
427
+ if strings.Contains(out, "__type") {
428
+ t.Fatalf("a recursive anonymous object must NOT leak the binder-internal __type name:\n%s", out)
429
+ }
430
+ plainClassifyRunNode(t, project, out, plainClassifyRecAnonRunner)
431
+ }
432
+
433
+ // TestPlainClassifyGenericPrivateRejected verifies that a GENERIC class with its
434
+ // own instance #private is rejected — its instantiation Gen<string> is a bare
435
+ // TypeReference, but the member scan resolves the class declaration so the
436
+ // #private is still detected.
437
+ func TestPlainClassifyGenericPrivateRejected(t *testing.T) {
438
+ project := plainClassifyWriteProject(t, "plain-classify-genericpriv-", plainClassifyGenericPrivateSource)
439
+ out, errText, code := ttscTypiaTestCapture(func() int {
440
+ return runTransform([]string{"--cwd", project, "--tsconfig", "tsconfig.json"})
441
+ })
442
+ if code == 0 {
443
+ t.Fatalf("a generic class with its own #private must be rejected; the transform succeeded\nstdout=%s\nstderr=%s", out, errText)
444
+ }
445
+ if !strings.Contains(out, "typia transform error") {
446
+ t.Fatalf("the generic-#private rejection diagnostic is missing:\nstdout=%s\nstderr=%s", out, errText)
447
+ }
448
+ }
449
+
450
+ const plainClassifyInterfaceSource = `import typia from "typia";
451
+
452
+ // A named INTERFACE — a type-only name with no runtime value.
453
+ export interface Animal {
454
+ name: string;
455
+ legs: number;
456
+ }
457
+
458
+ // Zoo is a real class (field-copies onto its prototype); its animal field is
459
+ // the interface, which must field-copy as a plain {}.
460
+ export class Zoo {
461
+ label!: string;
462
+ animal!: Animal;
463
+ describe(): string {
464
+ return this.label + ":" + this.animal.name;
465
+ }
466
+ }
467
+
468
+ export const build = typia.plain.createClassify<Zoo>();
469
+ `
470
+
471
+ const plainClassifyInterfaceRunner = `const mod = require("./main.cjs");
472
+
473
+ const assert = (cond, msg) => {
474
+ if (!cond) throw new Error(msg);
475
+ };
476
+
477
+ const z = mod.build({ label: "z", animal: { name: "fox", legs: 4 } });
478
+ assert(z instanceof mod.Zoo, "Zoo should be a class instance");
479
+ assert(z.describe() === "z:fox", "Zoo method should work, got: " + z.describe());
480
+ assert(z.animal && z.animal.name === "fox" && z.animal.legs === 4, "interface field is a plain object");
481
+ `
482
+
483
+ const plainClassifyRecAnonSource = `import typia from "typia";
484
+
485
+ // A RECURSIVE anonymous object type alias — no runtime value, IsLiteral() is
486
+ // false because it is recursive, so classify must still field-copy a plain {}.
487
+ export type Rec = { value: number; self: Rec | null };
488
+
489
+ export const build = typia.plain.createClassify<Rec>();
490
+ `
491
+
492
+ const plainClassifyRecAnonRunner = `const mod = require("./main.cjs");
493
+
494
+ const assert = (cond, msg) => {
495
+ if (!cond) throw new Error(msg);
496
+ };
497
+
498
+ // must NOT throw "ReferenceError: __type is not defined"
499
+ const r = mod.build({ value: 1, self: { value: 2, self: null } });
500
+ assert(r && r.value === 1, "recursive anonymous object should field-copy, got: " + JSON.stringify(r));
501
+ assert(r.self && r.self.value === 2 && r.self.self === null, "nested recursion should field-copy");
502
+ `
503
+
504
+ const plainClassifyGenericPrivateSource = `import typia from "typia";
505
+
506
+ // A GENERIC class with its OWN instance #private. classify<Gen<string>> emplaces
507
+ // the Gen<string> instance (a bare TypeReference), but the member scan resolves
508
+ // Gen's declaration, so the own #private is detected and the class is rejected.
509
+ export class Gen<T> {
510
+ #secret = 0;
511
+ value!: T;
512
+ bump(): number {
513
+ this.#secret += 1;
514
+ return this.#secret;
515
+ }
516
+ }
517
+
518
+ export const build = typia.plain.createClassify<Gen<string>>();
519
+ `