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,489 +1,489 @@
1
- package compare
2
-
3
- import (
4
- "fmt"
5
- "strconv"
6
- "strings"
7
-
8
- shimast "github.com/microsoft/typescript-go/shim/ast"
9
- shimchecker "github.com/microsoft/typescript-go/shim/checker"
10
- nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
11
- nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
12
- nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
13
- nativeinternal "github.com/samchon/typia/packages/typia/native/core/programmers/internal"
14
- schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
15
- )
16
-
17
- type compareLessProgrammerNamespace struct{}
18
-
19
- var CompareLessProgrammer = compareLessProgrammerNamespace{}
20
-
21
- type CompareLessProgrammer_IProps struct {
22
- Context nativecontext.ITypiaContext
23
- Modulo *shimast.Node
24
- Type *shimchecker.Type
25
- }
26
-
27
- type compareLessProgrammerGenerator struct {
28
- Recursive bool
29
- Counter int
30
- }
31
-
32
- var compareLessProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
33
-
34
- // Write emits an `(x, y) => boolean` predicate that reports whether `x`
35
- // lexicographically precedes `y`. It builds a three-way comparator (negative /
36
- // zero / positive) over the declared structure of the type and returns
37
- // `cmp(x, y) < 0` so that `equal` and `less` together compose into an
38
- // Array.prototype.sort comparator.
39
- func (compareLessProgrammerNamespace) Write(props CompareLessProgrammer_IProps) *shimast.Node {
40
- f := nativecontext.EmitFactoryOf(compareLessProgrammer_factory, props.Context.Emit)
41
- method := nativehelpers.ModuloMethodText(props.Modulo)
42
- collection := schemametadata.NewMetadataCollection()
43
- result := nativefactories.MetadataFactory.Analyze(nativefactories.MetadataFactory_IProps{
44
- Checker: props.Context.Checker,
45
- Options: nativefactories.MetadataFactory_IOptions{
46
- Escape: false,
47
- Constant: true,
48
- Absorb: true,
49
- Methods: true,
50
- Validate: func(next struct {
51
- Metadata *schemametadata.MetadataSchema
52
- Explore nativefactories.MetadataFactory_IExplore
53
- Top *schemametadata.MetadataSchema
54
- }) []string {
55
- return compareLessProgrammer_validate(next.Metadata, next.Metadata == next.Top)
56
- },
57
- },
58
- Components: collection,
59
- Type: props.Type,
60
- })
61
- if result.Success == false {
62
- panic(nativecontext.TransformerError_from(struct {
63
- Code string
64
- Errors []nativecontext.TransformerError_MetadataFactory_IError
65
- }{
66
- Code: method,
67
- Errors: compareEqualProgrammer_errors(result.Errors),
68
- }))
69
- }
70
-
71
- generator := &compareLessProgrammerGenerator{
72
- Recursive: nativeinternal.FeatureProgrammer.CollectionRecursive(collection),
73
- }
74
- body := generator.schema(result.Data, "x", "y")
75
- statements := []string{}
76
- for _, object := range collection.Objects() {
77
- statements = append(statements, generator.objectFunction(object))
78
- }
79
- for _, array := range collection.Arrays() {
80
- if array.Recursive {
81
- statements = append(statements, generator.arrayFunction(array))
82
- }
83
- }
84
- for _, tuple := range collection.Tuples() {
85
- if tuple.Recursive {
86
- statements = append(statements, generator.tupleFunction(tuple))
87
- }
88
- }
89
- if generator.Recursive {
90
- statements = append(statements, "return (x, y) => { const _vctx = {}; return ("+body+") < 0; };")
91
- } else {
92
- statements = append(statements, "return (x, y) => ("+body+") < 0;")
93
- }
94
- return f.NewIdentifier("(() => { " + strings.Join(statements, " ") + " })()")
95
- }
96
-
97
- // compareLessProgrammer_validate rejects types that have no sound total order.
98
- func compareLessProgrammer_validate(metadata *schemametadata.MetadataSchema, top bool) []string {
99
- if metadata == nil {
100
- return nil
101
- }
102
- output := []string{}
103
- if metadata.Any {
104
- output = append(output, "unable to order any")
105
- }
106
- // A function-typed property is a method: it carries no orderable data, so it
107
- // is ignored (and a `less` method triggers delegation). Only a top-level
108
- // function type — which has nothing else to order — is rejected.
109
- if top && len(metadata.Functions) != 0 {
110
- output = append(output, "unable to order Function")
111
- }
112
- if len(metadata.Sets) != 0 {
113
- output = append(output, "unable to order Set")
114
- }
115
- if len(metadata.Maps) != 0 {
116
- output = append(output, "unable to order Map")
117
- }
118
- for _, native := range metadata.Natives {
119
- if compareLessProgrammer_orderableNative(native.Name) == false {
120
- output = append(output, fmt.Sprintf("unable to order %s", native.Name))
121
- }
122
- }
123
- if len(metadata.Objects) > 1 {
124
- output = append(output, "unable to order a union of multiple object types")
125
- }
126
- return output
127
- }
128
-
129
- // schema renders a three-way comparator expression for `metadata` over the two
130
- // operands `x` and `y`.
131
- func (g *compareLessProgrammerGenerator) schema(metadata *schemametadata.MetadataSchema, x string, y string) string {
132
- if metadata == nil {
133
- return "0"
134
- }
135
- metadata = schemametadata.MetadataSchema_unalias(metadata)
136
- core := g.core(metadata, x, y)
137
-
138
- // wrap the core comparator with undefined / null ordering when the type
139
- // admits them: undefined precedes null precedes any present value.
140
- guards := []string{}
141
- optional := metadata.IsRequired() == false
142
- if optional {
143
- guards = append(guards, fmt.Sprintf("%s === undefined || %s === undefined", g.wrap(x), g.wrap(y)))
144
- }
145
- if metadata.Nullable {
146
- guards = append(guards, fmt.Sprintf("%s === null || %s === null", g.wrap(x), g.wrap(y)))
147
- }
148
- if len(guards) == 0 {
149
- return core
150
- }
151
- // rank: undefined(0) < null(1) < value(2); equal ranks fall through to core.
152
- rank := func(v string) string {
153
- if optional && metadata.Nullable {
154
- return fmt.Sprintf("(%s === undefined ? 0 : %s === null ? 1 : 2)", g.wrap(v), g.wrap(v))
155
- } else if optional {
156
- return fmt.Sprintf("(%s === undefined ? 0 : 1)", g.wrap(v))
157
- }
158
- return fmt.Sprintf("(%s === null ? 0 : 1)", g.wrap(v))
159
- }
160
- return fmt.Sprintf("(%s !== %s ? %s - %s : %s)", rank(x), rank(y), rank(x), rank(y), core)
161
- }
162
-
163
- // core renders the comparator for the non-null, non-undefined branches.
164
- func (g *compareLessProgrammerGenerator) core(metadata *schemametadata.MetadataSchema, x string, y string) string {
165
- scalars := g.scalarTypeofs(metadata)
166
- hasObject := len(metadata.Objects) != 0
167
- hasArray := len(metadata.Arrays) != 0
168
- hasTuple := len(metadata.Tuples) != 0
169
- hasNative := len(metadata.Natives) != 0
170
-
171
- branchCount := len(scalars)
172
- if hasObject {
173
- branchCount++
174
- }
175
- if hasArray {
176
- branchCount++
177
- }
178
- if hasTuple {
179
- branchCount++
180
- }
181
- if hasNative {
182
- branchCount += len(metadata.Natives)
183
- }
184
-
185
- // single homogeneous branch — emit the specific comparator directly.
186
- if branchCount == 1 {
187
- if len(scalars) == 1 {
188
- return g.primitive(x, y)
189
- }
190
- if hasObject {
191
- return g.objectCall(metadata.Objects[0].Type, x, y)
192
- }
193
- if hasArray {
194
- return g.array(metadata.Arrays[0], x, y)
195
- }
196
- if hasTuple {
197
- return g.tuple(metadata.Tuples[0], x, y)
198
- }
199
- if hasNative {
200
- return g.native(metadata.Natives[0].Name, x, y)
201
- }
202
- }
203
-
204
- // mixed scalars only (e.g. `string | number`): order by runtime typeof, then
205
- // by value within the same primitive kind.
206
- if branchCount == len(scalars) && len(scalars) > 1 {
207
- return fmt.Sprintf("(%s !== %s ? (%s < %s ? -1 : 1) : %s)",
208
- g.typeofRank(x), g.typeofRank(y), g.typeofRank(x), g.typeofRank(y), g.primitive(x, y))
209
- }
210
-
211
- // empty (e.g. `never`-ish) — treat as equal.
212
- if branchCount == 0 {
213
- return "0"
214
- }
215
-
216
- // heterogeneous mix (scalar + container, or container + container) — rank by
217
- // runtime category, then compare within the matching category.
218
- return g.mixed(metadata, x, y)
219
- }
220
-
221
- // primitive renders the scalar three-way comparator (works for number, string,
222
- // boolean and bigint via the relational operators).
223
- func (g *compareLessProgrammerGenerator) primitive(x string, y string) string {
224
- return fmt.Sprintf("(%s < %s ? -1 : %s > %s ? 1 : 0)", g.wrap(x), g.wrap(y), g.wrap(x), g.wrap(y))
225
- }
226
-
227
- func (g *compareLessProgrammerGenerator) native(name string, x string, y string) string {
228
- switch name {
229
- case "Date":
230
- return g.primitive(g.call(x, "getTime"), g.call(y, "getTime"))
231
- default:
232
- if compareEqualProgrammer_typedArray(name) {
233
- return g.bytes(x, y)
234
- }
235
- return "0"
236
- }
237
- }
238
-
239
- // bytes compares two typed arrays / buffers lexicographically by byte.
240
- func (g *compareLessProgrammerGenerator) bytes(x string, y string) string {
241
- bx := g.local("bx")
242
- by := g.local("by")
243
- index := g.local("i")
244
- length := g.local("n")
245
- return fmt.Sprintf("(() => { const %s = new Uint8Array(%s), %s = new Uint8Array(%s); const %s = Math.min(%s.length, %s.length); for (let %s = 0; %s < %s; ++%s) if (%s[%s] !== %s[%s]) return %s[%s] < %s[%s] ? -1 : 1; return %s.length - %s.length; })()",
246
- bx, g.bufferOf(x), by, g.bufferOf(y), length, bx, by, index, index, length, index, bx, index, by, index, bx, index, by, index, bx, by)
247
- }
248
-
249
- func (g *compareLessProgrammerGenerator) bufferOf(input string) string {
250
- return g.wrap(input)
251
- }
252
-
253
- func (g *compareLessProgrammerGenerator) array(array *schemametadata.MetadataArray, x string, y string) string {
254
- if array.Type.Recursive {
255
- return g.arrayCall(array.Type, x, y)
256
- }
257
- return g.arrayInline(array.Type.Value, x, y)
258
- }
259
-
260
- func (g *compareLessProgrammerGenerator) arrayInline(value *schemametadata.MetadataSchema, x string, y string) string {
261
- index := g.local("i")
262
- length := g.local("n")
263
- elem := g.schema(value, fmt.Sprintf("%s[%s]", g.wrap(x), index), fmt.Sprintf("%s[%s]", g.wrap(y), index))
264
- cmp := g.local("c")
265
- return fmt.Sprintf("(() => { const %s = Math.min(%s.length, %s.length); for (let %s = 0; %s < %s; ++%s) { const %s = %s; if (%s) return %s; } return %s.length - %s.length; })()",
266
- length, g.wrap(x), g.wrap(y), index, index, length, index, cmp, elem, cmp, cmp, g.wrap(x), g.wrap(y))
267
- }
268
-
269
- func (g *compareLessProgrammerGenerator) tuple(tuple *schemametadata.MetadataTuple, x string, y string) string {
270
- if tuple.Type.Recursive {
271
- return g.tupleCall(tuple.Type, x, y)
272
- }
273
- return g.tupleInline(tuple.Type, x, y)
274
- }
275
-
276
- func (g *compareLessProgrammerGenerator) tupleInline(tuple *schemametadata.MetadataTupleType, x string, y string) string {
277
- fixed := len(tuple.Elements)
278
- var rest *schemametadata.MetadataSchema
279
- if fixed != 0 && tuple.Elements[fixed-1].Rest != nil {
280
- rest = tuple.Elements[fixed-1].Rest
281
- fixed--
282
- }
283
- steps := []string{}
284
- for i := 0; i < fixed; i++ {
285
- cmp := g.schema(tuple.Elements[i], g.index(x, strconv.Itoa(i)), g.index(y, strconv.Itoa(i)))
286
- steps = append(steps, fmt.Sprintf("{ const _c = %s; if (_c) return _c; }", cmp))
287
- }
288
- tail := fmt.Sprintf("return %s.length - %s.length;", g.wrap(x), g.wrap(y))
289
- if rest != nil {
290
- index := g.local("i")
291
- length := g.local("n")
292
- inner := g.schema(rest, fmt.Sprintf("%s[%s]", g.wrap(x), index), fmt.Sprintf("%s[%s]", g.wrap(y), index))
293
- steps = append(steps, fmt.Sprintf("{ const %s = Math.min(%s.length, %s.length); for (let %s = %d; %s < %s; ++%s) { const _c = %s; if (_c) return _c; } }", length, g.wrap(x), g.wrap(y), index, fixed, index, length, index, inner))
294
- }
295
- return fmt.Sprintf("(() => { %s %s })()", strings.Join(steps, " "), tail)
296
- }
297
-
298
- func (g *compareLessProgrammerGenerator) objectCall(object *schemametadata.MetadataObjectType, x string, y string) string {
299
- if g.Recursive {
300
- return fmt.Sprintf("_lo%d(%s, %s, _vctx)", object.Index, g.wrap(x), g.wrap(y))
301
- }
302
- return fmt.Sprintf("_lo%d(%s, %s)", object.Index, g.wrap(x), g.wrap(y))
303
- }
304
-
305
- func (g *compareLessProgrammerGenerator) arrayCall(array *schemametadata.MetadataArrayType, x string, y string) string {
306
- index := 0
307
- if array.Index != nil {
308
- index = *array.Index
309
- }
310
- if g.Recursive {
311
- return fmt.Sprintf("_la%d(%s, %s, _vctx)", index, g.wrap(x), g.wrap(y))
312
- }
313
- return fmt.Sprintf("_la%d(%s, %s)", index, g.wrap(x), g.wrap(y))
314
- }
315
-
316
- func (g *compareLessProgrammerGenerator) tupleCall(tuple *schemametadata.MetadataTupleType, x string, y string) string {
317
- index := 0
318
- if tuple.Index != nil {
319
- index = *tuple.Index
320
- }
321
- if g.Recursive {
322
- return fmt.Sprintf("_lt%d(%s, %s, _vctx)", index, g.wrap(x), g.wrap(y))
323
- }
324
- return fmt.Sprintf("_lt%d(%s, %s)", index, g.wrap(x), g.wrap(y))
325
- }
326
-
327
- func (g *compareLessProgrammerGenerator) objectFunction(object *schemametadata.MetadataObjectType) string {
328
- body := g.objectInline(object, "x", "y")
329
- if g.Recursive {
330
- if object.Recursive {
331
- return fmt.Sprintf("const _lo%d = (x, y, _vctx) => { if (x === y) return 0; %s return %s; };", object.Index, g.visit("lo", object.Index), body)
332
- }
333
- return fmt.Sprintf("const _lo%d = (x, y, _vctx) => { if (x === y) return 0; return %s; };", object.Index, body)
334
- }
335
- return fmt.Sprintf("const _lo%d = (x, y) => { if (x === y) return 0; return %s; };", object.Index, body)
336
- }
337
-
338
- func (g *compareLessProgrammerGenerator) arrayFunction(array *schemametadata.MetadataArrayType) string {
339
- index := 0
340
- if array.Index != nil {
341
- index = *array.Index
342
- }
343
- body := g.arrayInline(array.Value, "x", "y")
344
- if g.Recursive {
345
- return fmt.Sprintf("const _la%d = (x, y, _vctx) => { if (x === y) return 0; %s return %s; };", index, g.visit("la", index), body)
346
- }
347
- return fmt.Sprintf("const _la%d = (x, y) => %s;", index, body)
348
- }
349
-
350
- func (g *compareLessProgrammerGenerator) tupleFunction(tuple *schemametadata.MetadataTupleType) string {
351
- index := 0
352
- if tuple.Index != nil {
353
- index = *tuple.Index
354
- }
355
- body := g.tupleInline(tuple, "x", "y")
356
- if g.Recursive {
357
- return fmt.Sprintf("const _lt%d = (x, y, _vctx) => { if (x === y) return 0; %s return %s; };", index, g.visit("lt", index), body)
358
- }
359
- return fmt.Sprintf("const _lt%d = (x, y) => %s;", index, body)
360
- }
361
-
362
- func (g *compareLessProgrammerGenerator) objectInline(object *schemametadata.MetadataObjectType, x string, y string) string {
363
- // Defer to a user-defined `less(y): boolean` method when the type declares
364
- // one, deriving the three-way result from the two directions.
365
- if compareProgrammer_hasMethod(object, "less") {
366
- return fmt.Sprintf("(%s.less(%s) ? -1 : %s.less(%s) ? 1 : 0)", g.wrap(x), g.wrap(y), g.wrap(y), g.wrap(x))
367
- }
368
-
369
- steps := []string{}
370
- for _, property := range object.Properties {
371
- if compareProgrammer_isMethod(property) {
372
- continue // methods carry no orderable data
373
- }
374
- if property.Key.GetSoleLiteral() == nil {
375
- continue // dynamic-key (index signature) members have no declaration order
376
- }
377
- key := *property.Key.GetSoleLiteral()
378
- left := g.property(x, key)
379
- right := g.property(y, key)
380
- cmp := g.schema(property.Value, left, right)
381
- steps = append(steps, fmt.Sprintf("{ const _c = %s; if (_c) return _c; }", cmp))
382
- }
383
- return fmt.Sprintf("(() => { %s return 0; })()", strings.Join(steps, " "))
384
- }
385
-
386
- // mixed orders a heterogeneous union by runtime category rank, then compares
387
- // within the matching category.
388
- func (g *compareLessProgrammerGenerator) mixed(metadata *schemametadata.MetadataSchema, x string, y string) string {
389
- rankExpr := func(v string) string {
390
- return fmt.Sprintf("(typeof %s === \"boolean\" ? 2 : typeof %s === \"number\" ? 3 : typeof %s === \"bigint\" ? 4 : typeof %s === \"string\" ? 5 : Array.isArray(%s) ? 6 : 7)",
391
- g.wrap(v), g.wrap(v), g.wrap(v), g.wrap(v), g.wrap(v))
392
- }
393
- within := []string{}
394
- if len(metadata.Objects) != 0 {
395
- within = append(within, g.objectCall(metadata.Objects[0].Type, x, y))
396
- } else if len(metadata.Arrays) != 0 {
397
- within = append(within, g.array(metadata.Arrays[0], x, y))
398
- } else if len(metadata.Tuples) != 0 {
399
- within = append(within, g.tuple(metadata.Tuples[0], x, y))
400
- }
401
- inner := g.primitive(x, y)
402
- if len(within) != 0 {
403
- inner = fmt.Sprintf("(typeof %s === \"object\" && %s !== null ? %s : %s)", g.wrap(x), g.wrap(x), within[0], inner)
404
- }
405
- return fmt.Sprintf("(%s !== %s ? (%s < %s ? -1 : 1) : %s)", rankExpr(x), rankExpr(y), rankExpr(x), rankExpr(y), inner)
406
- }
407
-
408
- func (g *compareLessProgrammerGenerator) visit(kind string, index int) string {
409
- slot := fmt.Sprintf("_vctx.%s%d", kind, index)
410
- return fmt.Sprintf("const _map = %s || (%s = new WeakMap()); let _set = _map.get(x); if (_set && _set.has(y)) return 0; if (!_set) _map.set(x, (_set = new WeakSet())); _set.add(y);", slot, slot)
411
- }
412
-
413
- func (g *compareLessProgrammerGenerator) scalarTypeofs(metadata *schemametadata.MetadataSchema) map[string]bool {
414
- out := map[string]bool{}
415
- for _, atomic := range metadata.Atomics {
416
- out[atomic.Type] = true
417
- }
418
- for _, constant := range metadata.Constants {
419
- if constant.Type == "boolean" || constant.Type == "number" || constant.Type == "bigint" || constant.Type == "string" {
420
- out[constant.Type] = true
421
- }
422
- }
423
- if len(metadata.Templates) != 0 {
424
- out["string"] = true
425
- }
426
- return out
427
- }
428
-
429
- func (g *compareLessProgrammerGenerator) typeofRank(v string) string {
430
- return fmt.Sprintf("(typeof %s === \"boolean\" ? 0 : typeof %s === \"number\" ? 1 : typeof %s === \"bigint\" ? 2 : 3)", g.wrap(v), g.wrap(v), g.wrap(v))
431
- }
432
-
433
- func (g *compareLessProgrammerGenerator) call(input string, method string) string {
434
- return fmt.Sprintf("%s.%s()", g.wrap(input), method)
435
- }
436
-
437
- func (g *compareLessProgrammerGenerator) property(input string, key string) string {
438
- if compareEqualProgrammer_identifier(key) {
439
- return fmt.Sprintf("%s.%s", g.wrap(input), key)
440
- }
441
- return g.index(input, strconv.Quote(key))
442
- }
443
-
444
- func (g *compareLessProgrammerGenerator) index(input string, key string) string {
445
- return fmt.Sprintf("%s[%s]", g.wrap(input), key)
446
- }
447
-
448
- func (g *compareLessProgrammerGenerator) wrap(input string) string {
449
- if compareEqualProgrammer_simple(input) {
450
- return input
451
- }
452
- return "(" + input + ")"
453
- }
454
-
455
- func (g *compareLessProgrammerGenerator) local(prefix string) string {
456
- next := fmt.Sprintf("_%s%d", prefix, g.Counter)
457
- g.Counter++
458
- return next
459
- }
460
-
461
- func compareLessProgrammer_orderableNative(name string) bool {
462
- if name == "Date" {
463
- return true
464
- }
465
- return compareEqualProgrammer_typedArray(name)
466
- }
467
-
468
- // compareProgrammer_hasMethod reports whether the object type declares a method
469
- // member (a function-typed property) with the given name — e.g. `equals` or
470
- // `less` — that the comparator can delegate to.
471
- func compareProgrammer_hasMethod(object *schemametadata.MetadataObjectType, name string) bool {
472
- for _, property := range object.Properties {
473
- literal := property.Key.GetSoleLiteral()
474
- if literal != nil && *literal == name && compareProgrammer_isMethod(property) {
475
- return true
476
- }
477
- }
478
- return false
479
- }
480
-
481
- // compareProgrammer_isMethod reports whether a property is a method (its value
482
- // is a function type), and therefore carries no comparable / orderable data.
483
- func compareProgrammer_isMethod(property *schemametadata.MetadataProperty) bool {
484
- if property == nil || property.Value == nil {
485
- return false
486
- }
487
- value := schemametadata.MetadataSchema_unalias(property.Value)
488
- return value != nil && len(value.Functions) != 0
489
- }
1
+ package compare
2
+
3
+ import (
4
+ "fmt"
5
+ "strconv"
6
+ "strings"
7
+
8
+ shimast "github.com/microsoft/typescript-go/shim/ast"
9
+ shimchecker "github.com/microsoft/typescript-go/shim/checker"
10
+ nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
11
+ nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
12
+ nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
13
+ nativeinternal "github.com/samchon/typia/packages/typia/native/core/programmers/internal"
14
+ schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
15
+ )
16
+
17
+ type compareLessProgrammerNamespace struct{}
18
+
19
+ var CompareLessProgrammer = compareLessProgrammerNamespace{}
20
+
21
+ type CompareLessProgrammer_IProps struct {
22
+ Context nativecontext.ITypiaContext
23
+ Modulo *shimast.Node
24
+ Type *shimchecker.Type
25
+ }
26
+
27
+ type compareLessProgrammerGenerator struct {
28
+ Recursive bool
29
+ Counter int
30
+ }
31
+
32
+ var compareLessProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
33
+
34
+ // Write emits an `(x, y) => boolean` predicate that reports whether `x`
35
+ // lexicographically precedes `y`. It builds a three-way comparator (negative /
36
+ // zero / positive) over the declared structure of the type and returns
37
+ // `cmp(x, y) < 0` so that `equal` and `less` together compose into an
38
+ // Array.prototype.sort comparator.
39
+ func (compareLessProgrammerNamespace) Write(props CompareLessProgrammer_IProps) *shimast.Node {
40
+ f := nativecontext.EmitFactoryOf(compareLessProgrammer_factory, props.Context.Emit)
41
+ method := nativehelpers.ModuloMethodText(props.Modulo)
42
+ collection := schemametadata.NewMetadataCollection()
43
+ result := nativefactories.MetadataFactory.Analyze(nativefactories.MetadataFactory_IProps{
44
+ Checker: props.Context.Checker,
45
+ Options: nativefactories.MetadataFactory_IOptions{
46
+ Escape: false,
47
+ Constant: true,
48
+ Absorb: true,
49
+ Methods: true,
50
+ Validate: func(next struct {
51
+ Metadata *schemametadata.MetadataSchema
52
+ Explore nativefactories.MetadataFactory_IExplore
53
+ Top *schemametadata.MetadataSchema
54
+ }) []string {
55
+ return compareLessProgrammer_validate(next.Metadata, next.Metadata == next.Top)
56
+ },
57
+ },
58
+ Components: collection,
59
+ Type: props.Type,
60
+ })
61
+ if result.Success == false {
62
+ panic(nativecontext.TransformerError_from(struct {
63
+ Code string
64
+ Errors []nativecontext.TransformerError_MetadataFactory_IError
65
+ }{
66
+ Code: method,
67
+ Errors: compareEqualProgrammer_errors(result.Errors),
68
+ }))
69
+ }
70
+
71
+ generator := &compareLessProgrammerGenerator{
72
+ Recursive: nativeinternal.FeatureProgrammer.CollectionRecursive(collection),
73
+ }
74
+ body := generator.schema(result.Data, "x", "y")
75
+ statements := []string{}
76
+ for _, object := range collection.Objects() {
77
+ statements = append(statements, generator.objectFunction(object))
78
+ }
79
+ for _, array := range collection.Arrays() {
80
+ if array.Recursive {
81
+ statements = append(statements, generator.arrayFunction(array))
82
+ }
83
+ }
84
+ for _, tuple := range collection.Tuples() {
85
+ if tuple.Recursive {
86
+ statements = append(statements, generator.tupleFunction(tuple))
87
+ }
88
+ }
89
+ if generator.Recursive {
90
+ statements = append(statements, "return (x, y) => { const _vctx = {}; return ("+body+") < 0; };")
91
+ } else {
92
+ statements = append(statements, "return (x, y) => ("+body+") < 0;")
93
+ }
94
+ return f.NewIdentifier("(() => { " + strings.Join(statements, " ") + " })()")
95
+ }
96
+
97
+ // compareLessProgrammer_validate rejects types that have no sound total order.
98
+ func compareLessProgrammer_validate(metadata *schemametadata.MetadataSchema, top bool) []string {
99
+ if metadata == nil {
100
+ return nil
101
+ }
102
+ output := []string{}
103
+ if metadata.Any {
104
+ output = append(output, "unable to order any")
105
+ }
106
+ // A function-typed property is a method: it carries no orderable data, so it
107
+ // is ignored (and a `less` method triggers delegation). Only a top-level
108
+ // function type — which has nothing else to order — is rejected.
109
+ if top && len(metadata.Functions) != 0 {
110
+ output = append(output, "unable to order Function")
111
+ }
112
+ if len(metadata.Sets) != 0 {
113
+ output = append(output, "unable to order Set")
114
+ }
115
+ if len(metadata.Maps) != 0 {
116
+ output = append(output, "unable to order Map")
117
+ }
118
+ for _, native := range metadata.Natives {
119
+ if compareLessProgrammer_orderableNative(native.Name) == false {
120
+ output = append(output, fmt.Sprintf("unable to order %s", native.Name))
121
+ }
122
+ }
123
+ if len(metadata.Objects) > 1 {
124
+ output = append(output, "unable to order a union of multiple object types")
125
+ }
126
+ return output
127
+ }
128
+
129
+ // schema renders a three-way comparator expression for `metadata` over the two
130
+ // operands `x` and `y`.
131
+ func (g *compareLessProgrammerGenerator) schema(metadata *schemametadata.MetadataSchema, x string, y string) string {
132
+ if metadata == nil {
133
+ return "0"
134
+ }
135
+ metadata = schemametadata.MetadataSchema_unalias(metadata)
136
+ core := g.core(metadata, x, y)
137
+
138
+ // wrap the core comparator with undefined / null ordering when the type
139
+ // admits them: undefined precedes null precedes any present value.
140
+ guards := []string{}
141
+ optional := metadata.IsRequired() == false
142
+ if optional {
143
+ guards = append(guards, fmt.Sprintf("%s === undefined || %s === undefined", g.wrap(x), g.wrap(y)))
144
+ }
145
+ if metadata.Nullable {
146
+ guards = append(guards, fmt.Sprintf("%s === null || %s === null", g.wrap(x), g.wrap(y)))
147
+ }
148
+ if len(guards) == 0 {
149
+ return core
150
+ }
151
+ // rank: undefined(0) < null(1) < value(2); equal ranks fall through to core.
152
+ rank := func(v string) string {
153
+ if optional && metadata.Nullable {
154
+ return fmt.Sprintf("(%s === undefined ? 0 : %s === null ? 1 : 2)", g.wrap(v), g.wrap(v))
155
+ } else if optional {
156
+ return fmt.Sprintf("(%s === undefined ? 0 : 1)", g.wrap(v))
157
+ }
158
+ return fmt.Sprintf("(%s === null ? 0 : 1)", g.wrap(v))
159
+ }
160
+ return fmt.Sprintf("(%s !== %s ? %s - %s : %s)", rank(x), rank(y), rank(x), rank(y), core)
161
+ }
162
+
163
+ // core renders the comparator for the non-null, non-undefined branches.
164
+ func (g *compareLessProgrammerGenerator) core(metadata *schemametadata.MetadataSchema, x string, y string) string {
165
+ scalars := g.scalarTypeofs(metadata)
166
+ hasObject := len(metadata.Objects) != 0
167
+ hasArray := len(metadata.Arrays) != 0
168
+ hasTuple := len(metadata.Tuples) != 0
169
+ hasNative := len(metadata.Natives) != 0
170
+
171
+ branchCount := len(scalars)
172
+ if hasObject {
173
+ branchCount++
174
+ }
175
+ if hasArray {
176
+ branchCount++
177
+ }
178
+ if hasTuple {
179
+ branchCount++
180
+ }
181
+ if hasNative {
182
+ branchCount += len(metadata.Natives)
183
+ }
184
+
185
+ // single homogeneous branch — emit the specific comparator directly.
186
+ if branchCount == 1 {
187
+ if len(scalars) == 1 {
188
+ return g.primitive(x, y)
189
+ }
190
+ if hasObject {
191
+ return g.objectCall(metadata.Objects[0].Type, x, y)
192
+ }
193
+ if hasArray {
194
+ return g.array(metadata.Arrays[0], x, y)
195
+ }
196
+ if hasTuple {
197
+ return g.tuple(metadata.Tuples[0], x, y)
198
+ }
199
+ if hasNative {
200
+ return g.native(metadata.Natives[0].Name, x, y)
201
+ }
202
+ }
203
+
204
+ // mixed scalars only (e.g. `string | number`): order by runtime typeof, then
205
+ // by value within the same primitive kind.
206
+ if branchCount == len(scalars) && len(scalars) > 1 {
207
+ return fmt.Sprintf("(%s !== %s ? (%s < %s ? -1 : 1) : %s)",
208
+ g.typeofRank(x), g.typeofRank(y), g.typeofRank(x), g.typeofRank(y), g.primitive(x, y))
209
+ }
210
+
211
+ // empty (e.g. `never`-ish) — treat as equal.
212
+ if branchCount == 0 {
213
+ return "0"
214
+ }
215
+
216
+ // heterogeneous mix (scalar + container, or container + container) — rank by
217
+ // runtime category, then compare within the matching category.
218
+ return g.mixed(metadata, x, y)
219
+ }
220
+
221
+ // primitive renders the scalar three-way comparator (works for number, string,
222
+ // boolean and bigint via the relational operators).
223
+ func (g *compareLessProgrammerGenerator) primitive(x string, y string) string {
224
+ return fmt.Sprintf("(%s < %s ? -1 : %s > %s ? 1 : 0)", g.wrap(x), g.wrap(y), g.wrap(x), g.wrap(y))
225
+ }
226
+
227
+ func (g *compareLessProgrammerGenerator) native(name string, x string, y string) string {
228
+ switch name {
229
+ case "Date":
230
+ return g.primitive(g.call(x, "getTime"), g.call(y, "getTime"))
231
+ default:
232
+ if compareEqualProgrammer_typedArray(name) {
233
+ return g.bytes(x, y)
234
+ }
235
+ return "0"
236
+ }
237
+ }
238
+
239
+ // bytes compares two typed arrays / buffers lexicographically by byte.
240
+ func (g *compareLessProgrammerGenerator) bytes(x string, y string) string {
241
+ bx := g.local("bx")
242
+ by := g.local("by")
243
+ index := g.local("i")
244
+ length := g.local("n")
245
+ return fmt.Sprintf("(() => { const %s = new Uint8Array(%s), %s = new Uint8Array(%s); const %s = Math.min(%s.length, %s.length); for (let %s = 0; %s < %s; ++%s) if (%s[%s] !== %s[%s]) return %s[%s] < %s[%s] ? -1 : 1; return %s.length - %s.length; })()",
246
+ bx, g.bufferOf(x), by, g.bufferOf(y), length, bx, by, index, index, length, index, bx, index, by, index, bx, index, by, index, bx, by)
247
+ }
248
+
249
+ func (g *compareLessProgrammerGenerator) bufferOf(input string) string {
250
+ return g.wrap(input)
251
+ }
252
+
253
+ func (g *compareLessProgrammerGenerator) array(array *schemametadata.MetadataArray, x string, y string) string {
254
+ if array.Type.Recursive {
255
+ return g.arrayCall(array.Type, x, y)
256
+ }
257
+ return g.arrayInline(array.Type.Value, x, y)
258
+ }
259
+
260
+ func (g *compareLessProgrammerGenerator) arrayInline(value *schemametadata.MetadataSchema, x string, y string) string {
261
+ index := g.local("i")
262
+ length := g.local("n")
263
+ elem := g.schema(value, fmt.Sprintf("%s[%s]", g.wrap(x), index), fmt.Sprintf("%s[%s]", g.wrap(y), index))
264
+ cmp := g.local("c")
265
+ return fmt.Sprintf("(() => { const %s = Math.min(%s.length, %s.length); for (let %s = 0; %s < %s; ++%s) { const %s = %s; if (%s) return %s; } return %s.length - %s.length; })()",
266
+ length, g.wrap(x), g.wrap(y), index, index, length, index, cmp, elem, cmp, cmp, g.wrap(x), g.wrap(y))
267
+ }
268
+
269
+ func (g *compareLessProgrammerGenerator) tuple(tuple *schemametadata.MetadataTuple, x string, y string) string {
270
+ if tuple.Type.Recursive {
271
+ return g.tupleCall(tuple.Type, x, y)
272
+ }
273
+ return g.tupleInline(tuple.Type, x, y)
274
+ }
275
+
276
+ func (g *compareLessProgrammerGenerator) tupleInline(tuple *schemametadata.MetadataTupleType, x string, y string) string {
277
+ fixed := len(tuple.Elements)
278
+ var rest *schemametadata.MetadataSchema
279
+ if fixed != 0 && tuple.Elements[fixed-1].Rest != nil {
280
+ rest = tuple.Elements[fixed-1].Rest
281
+ fixed--
282
+ }
283
+ steps := []string{}
284
+ for i := 0; i < fixed; i++ {
285
+ cmp := g.schema(tuple.Elements[i], g.index(x, strconv.Itoa(i)), g.index(y, strconv.Itoa(i)))
286
+ steps = append(steps, fmt.Sprintf("{ const _c = %s; if (_c) return _c; }", cmp))
287
+ }
288
+ tail := fmt.Sprintf("return %s.length - %s.length;", g.wrap(x), g.wrap(y))
289
+ if rest != nil {
290
+ index := g.local("i")
291
+ length := g.local("n")
292
+ inner := g.schema(rest, fmt.Sprintf("%s[%s]", g.wrap(x), index), fmt.Sprintf("%s[%s]", g.wrap(y), index))
293
+ steps = append(steps, fmt.Sprintf("{ const %s = Math.min(%s.length, %s.length); for (let %s = %d; %s < %s; ++%s) { const _c = %s; if (_c) return _c; } }", length, g.wrap(x), g.wrap(y), index, fixed, index, length, index, inner))
294
+ }
295
+ return fmt.Sprintf("(() => { %s %s })()", strings.Join(steps, " "), tail)
296
+ }
297
+
298
+ func (g *compareLessProgrammerGenerator) objectCall(object *schemametadata.MetadataObjectType, x string, y string) string {
299
+ if g.Recursive {
300
+ return fmt.Sprintf("_lo%d(%s, %s, _vctx)", object.Index, g.wrap(x), g.wrap(y))
301
+ }
302
+ return fmt.Sprintf("_lo%d(%s, %s)", object.Index, g.wrap(x), g.wrap(y))
303
+ }
304
+
305
+ func (g *compareLessProgrammerGenerator) arrayCall(array *schemametadata.MetadataArrayType, x string, y string) string {
306
+ index := 0
307
+ if array.Index != nil {
308
+ index = *array.Index
309
+ }
310
+ if g.Recursive {
311
+ return fmt.Sprintf("_la%d(%s, %s, _vctx)", index, g.wrap(x), g.wrap(y))
312
+ }
313
+ return fmt.Sprintf("_la%d(%s, %s)", index, g.wrap(x), g.wrap(y))
314
+ }
315
+
316
+ func (g *compareLessProgrammerGenerator) tupleCall(tuple *schemametadata.MetadataTupleType, x string, y string) string {
317
+ index := 0
318
+ if tuple.Index != nil {
319
+ index = *tuple.Index
320
+ }
321
+ if g.Recursive {
322
+ return fmt.Sprintf("_lt%d(%s, %s, _vctx)", index, g.wrap(x), g.wrap(y))
323
+ }
324
+ return fmt.Sprintf("_lt%d(%s, %s)", index, g.wrap(x), g.wrap(y))
325
+ }
326
+
327
+ func (g *compareLessProgrammerGenerator) objectFunction(object *schemametadata.MetadataObjectType) string {
328
+ body := g.objectInline(object, "x", "y")
329
+ if g.Recursive {
330
+ if object.Recursive {
331
+ return fmt.Sprintf("const _lo%d = (x, y, _vctx) => { if (x === y) return 0; %s return %s; };", object.Index, g.visit("lo", object.Index), body)
332
+ }
333
+ return fmt.Sprintf("const _lo%d = (x, y, _vctx) => { if (x === y) return 0; return %s; };", object.Index, body)
334
+ }
335
+ return fmt.Sprintf("const _lo%d = (x, y) => { if (x === y) return 0; return %s; };", object.Index, body)
336
+ }
337
+
338
+ func (g *compareLessProgrammerGenerator) arrayFunction(array *schemametadata.MetadataArrayType) string {
339
+ index := 0
340
+ if array.Index != nil {
341
+ index = *array.Index
342
+ }
343
+ body := g.arrayInline(array.Value, "x", "y")
344
+ if g.Recursive {
345
+ return fmt.Sprintf("const _la%d = (x, y, _vctx) => { if (x === y) return 0; %s return %s; };", index, g.visit("la", index), body)
346
+ }
347
+ return fmt.Sprintf("const _la%d = (x, y) => %s;", index, body)
348
+ }
349
+
350
+ func (g *compareLessProgrammerGenerator) tupleFunction(tuple *schemametadata.MetadataTupleType) string {
351
+ index := 0
352
+ if tuple.Index != nil {
353
+ index = *tuple.Index
354
+ }
355
+ body := g.tupleInline(tuple, "x", "y")
356
+ if g.Recursive {
357
+ return fmt.Sprintf("const _lt%d = (x, y, _vctx) => { if (x === y) return 0; %s return %s; };", index, g.visit("lt", index), body)
358
+ }
359
+ return fmt.Sprintf("const _lt%d = (x, y) => %s;", index, body)
360
+ }
361
+
362
+ func (g *compareLessProgrammerGenerator) objectInline(object *schemametadata.MetadataObjectType, x string, y string) string {
363
+ // Defer to a user-defined `less(y): boolean` method when the type declares
364
+ // one, deriving the three-way result from the two directions.
365
+ if compareProgrammer_hasMethod(object, "less") {
366
+ return fmt.Sprintf("(%s.less(%s) ? -1 : %s.less(%s) ? 1 : 0)", g.wrap(x), g.wrap(y), g.wrap(y), g.wrap(x))
367
+ }
368
+
369
+ steps := []string{}
370
+ for _, property := range object.Properties {
371
+ if compareProgrammer_isMethod(property) {
372
+ continue // methods carry no orderable data
373
+ }
374
+ if property.Key.GetSoleLiteral() == nil {
375
+ continue // dynamic-key (index signature) members have no declaration order
376
+ }
377
+ key := *property.Key.GetSoleLiteral()
378
+ left := g.property(x, key)
379
+ right := g.property(y, key)
380
+ cmp := g.schema(property.Value, left, right)
381
+ steps = append(steps, fmt.Sprintf("{ const _c = %s; if (_c) return _c; }", cmp))
382
+ }
383
+ return fmt.Sprintf("(() => { %s return 0; })()", strings.Join(steps, " "))
384
+ }
385
+
386
+ // mixed orders a heterogeneous union by runtime category rank, then compares
387
+ // within the matching category.
388
+ func (g *compareLessProgrammerGenerator) mixed(metadata *schemametadata.MetadataSchema, x string, y string) string {
389
+ rankExpr := func(v string) string {
390
+ return fmt.Sprintf("(typeof %s === \"boolean\" ? 2 : typeof %s === \"number\" ? 3 : typeof %s === \"bigint\" ? 4 : typeof %s === \"string\" ? 5 : Array.isArray(%s) ? 6 : 7)",
391
+ g.wrap(v), g.wrap(v), g.wrap(v), g.wrap(v), g.wrap(v))
392
+ }
393
+ within := []string{}
394
+ if len(metadata.Objects) != 0 {
395
+ within = append(within, g.objectCall(metadata.Objects[0].Type, x, y))
396
+ } else if len(metadata.Arrays) != 0 {
397
+ within = append(within, g.array(metadata.Arrays[0], x, y))
398
+ } else if len(metadata.Tuples) != 0 {
399
+ within = append(within, g.tuple(metadata.Tuples[0], x, y))
400
+ }
401
+ inner := g.primitive(x, y)
402
+ if len(within) != 0 {
403
+ inner = fmt.Sprintf("(typeof %s === \"object\" && %s !== null ? %s : %s)", g.wrap(x), g.wrap(x), within[0], inner)
404
+ }
405
+ return fmt.Sprintf("(%s !== %s ? (%s < %s ? -1 : 1) : %s)", rankExpr(x), rankExpr(y), rankExpr(x), rankExpr(y), inner)
406
+ }
407
+
408
+ func (g *compareLessProgrammerGenerator) visit(kind string, index int) string {
409
+ slot := fmt.Sprintf("_vctx.%s%d", kind, index)
410
+ return fmt.Sprintf("const _map = %s || (%s = new WeakMap()); let _set = _map.get(x); if (_set && _set.has(y)) return 0; if (!_set) _map.set(x, (_set = new WeakSet())); _set.add(y);", slot, slot)
411
+ }
412
+
413
+ func (g *compareLessProgrammerGenerator) scalarTypeofs(metadata *schemametadata.MetadataSchema) map[string]bool {
414
+ out := map[string]bool{}
415
+ for _, atomic := range metadata.Atomics {
416
+ out[atomic.Type] = true
417
+ }
418
+ for _, constant := range metadata.Constants {
419
+ if constant.Type == "boolean" || constant.Type == "number" || constant.Type == "bigint" || constant.Type == "string" {
420
+ out[constant.Type] = true
421
+ }
422
+ }
423
+ if len(metadata.Templates) != 0 {
424
+ out["string"] = true
425
+ }
426
+ return out
427
+ }
428
+
429
+ func (g *compareLessProgrammerGenerator) typeofRank(v string) string {
430
+ return fmt.Sprintf("(typeof %s === \"boolean\" ? 0 : typeof %s === \"number\" ? 1 : typeof %s === \"bigint\" ? 2 : 3)", g.wrap(v), g.wrap(v), g.wrap(v))
431
+ }
432
+
433
+ func (g *compareLessProgrammerGenerator) call(input string, method string) string {
434
+ return fmt.Sprintf("%s.%s()", g.wrap(input), method)
435
+ }
436
+
437
+ func (g *compareLessProgrammerGenerator) property(input string, key string) string {
438
+ if compareEqualProgrammer_identifier(key) {
439
+ return fmt.Sprintf("%s.%s", g.wrap(input), key)
440
+ }
441
+ return g.index(input, strconv.Quote(key))
442
+ }
443
+
444
+ func (g *compareLessProgrammerGenerator) index(input string, key string) string {
445
+ return fmt.Sprintf("%s[%s]", g.wrap(input), key)
446
+ }
447
+
448
+ func (g *compareLessProgrammerGenerator) wrap(input string) string {
449
+ if compareEqualProgrammer_simple(input) {
450
+ return input
451
+ }
452
+ return "(" + input + ")"
453
+ }
454
+
455
+ func (g *compareLessProgrammerGenerator) local(prefix string) string {
456
+ next := fmt.Sprintf("_%s%d", prefix, g.Counter)
457
+ g.Counter++
458
+ return next
459
+ }
460
+
461
+ func compareLessProgrammer_orderableNative(name string) bool {
462
+ if name == "Date" {
463
+ return true
464
+ }
465
+ return compareEqualProgrammer_typedArray(name)
466
+ }
467
+
468
+ // compareProgrammer_hasMethod reports whether the object type declares a method
469
+ // member (a function-typed property) with the given name — e.g. `equals` or
470
+ // `less` — that the comparator can delegate to.
471
+ func compareProgrammer_hasMethod(object *schemametadata.MetadataObjectType, name string) bool {
472
+ for _, property := range object.Properties {
473
+ literal := property.Key.GetSoleLiteral()
474
+ if literal != nil && *literal == name && compareProgrammer_isMethod(property) {
475
+ return true
476
+ }
477
+ }
478
+ return false
479
+ }
480
+
481
+ // compareProgrammer_isMethod reports whether a property is a method (its value
482
+ // is a function type), and therefore carries no comparable / orderable data.
483
+ func compareProgrammer_isMethod(property *schemametadata.MetadataProperty) bool {
484
+ if property == nil || property.Value == nil {
485
+ return false
486
+ }
487
+ value := schemametadata.MetadataSchema_unalias(property.Value)
488
+ return value != nil && len(value.Functions) != 0
489
+ }