typia 13.0.1-dev.20260703.1 → 13.0.1

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