typia 13.0.0-dev.20260605.1 → 13.0.0-dev.20260619.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 (643) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +171 -171
  3. package/lib/_virtual/_isTypeInt16.mjs +4 -0
  4. package/lib/_virtual/_isTypeInt16.mjs.map +1 -0
  5. package/lib/_virtual/_isTypeInt8.mjs +4 -0
  6. package/lib/_virtual/_isTypeInt8.mjs.map +1 -0
  7. package/lib/_virtual/_isTypeUint16.mjs +4 -0
  8. package/lib/_virtual/_isTypeUint16.mjs.map +1 -0
  9. package/lib/_virtual/_isTypeUint8.mjs +4 -0
  10. package/lib/_virtual/_isTypeUint8.mjs.map +1 -0
  11. package/lib/_virtual/_plainCloneAny.mjs +4 -0
  12. package/lib/_virtual/_plainCloneAny.mjs.map +1 -0
  13. package/lib/_virtual/compare.mjs +4 -0
  14. package/lib/_virtual/compare.mjs.map +1 -0
  15. package/lib/_virtual/plain.mjs +4 -0
  16. package/lib/_virtual/plain.mjs.map +1 -0
  17. package/lib/compare.d.ts +95 -0
  18. package/lib/compare.js +34 -0
  19. package/lib/compare.js.map +1 -0
  20. package/lib/compare.mjs +3 -0
  21. package/lib/compare.mjs.map +1 -0
  22. package/lib/compare2.mjs +39 -0
  23. package/lib/compare2.mjs.map +1 -0
  24. package/lib/executable/TypiaGenerateWizard.d.ts +2 -1
  25. package/lib/executable/TypiaGenerateWizard.js +468 -65
  26. package/lib/executable/TypiaGenerateWizard.js.map +1 -1
  27. package/lib/executable/TypiaGenerateWizard2.mjs +481 -70
  28. package/lib/executable/TypiaGenerateWizard2.mjs.map +1 -1
  29. package/lib/executable/typia.js +29 -13
  30. package/lib/executable/typia.js.map +1 -1
  31. package/lib/executable/typia2.mjs +37 -13
  32. package/lib/executable/typia2.mjs.map +1 -1
  33. package/lib/internal/_isFormatUrl.js +1 -1
  34. package/lib/internal/_isFormatUrl.js.map +1 -1
  35. package/lib/internal/_isFormatUrl2.mjs +1 -1
  36. package/lib/internal/_isFormatUrl2.mjs.map +1 -1
  37. package/lib/internal/_isTypeInt16.d.ts +1 -0
  38. package/lib/internal/_isTypeInt16.js +8 -0
  39. package/lib/internal/_isTypeInt16.js.map +1 -0
  40. package/lib/internal/_isTypeInt16.mjs +3 -0
  41. package/lib/internal/_isTypeInt16.mjs.map +1 -0
  42. package/lib/internal/_isTypeInt162.mjs +11 -0
  43. package/lib/internal/_isTypeInt162.mjs.map +1 -0
  44. package/lib/internal/_isTypeInt8.d.ts +1 -0
  45. package/lib/internal/_isTypeInt8.js +8 -0
  46. package/lib/internal/_isTypeInt8.js.map +1 -0
  47. package/lib/internal/_isTypeInt8.mjs +3 -0
  48. package/lib/internal/_isTypeInt8.mjs.map +1 -0
  49. package/lib/internal/_isTypeInt82.mjs +11 -0
  50. package/lib/internal/_isTypeInt82.mjs.map +1 -0
  51. package/lib/internal/_isTypeUint16.d.ts +1 -0
  52. package/lib/internal/_isTypeUint16.js +8 -0
  53. package/lib/internal/_isTypeUint16.js.map +1 -0
  54. package/lib/internal/_isTypeUint16.mjs +3 -0
  55. package/lib/internal/_isTypeUint16.mjs.map +1 -0
  56. package/lib/internal/_isTypeUint162.mjs +11 -0
  57. package/lib/internal/_isTypeUint162.mjs.map +1 -0
  58. package/lib/internal/_isTypeUint8.d.ts +1 -0
  59. package/lib/internal/_isTypeUint8.js +8 -0
  60. package/lib/internal/_isTypeUint8.js.map +1 -0
  61. package/lib/internal/_isTypeUint8.mjs +3 -0
  62. package/lib/internal/_isTypeUint8.mjs.map +1 -0
  63. package/lib/internal/_isTypeUint82.mjs +11 -0
  64. package/lib/internal/_isTypeUint82.mjs.map +1 -0
  65. package/lib/internal/_notationSnake.js +1 -1
  66. package/lib/internal/_notationSnake.js.map +1 -1
  67. package/lib/internal/_notationSnake2.mjs +1 -1
  68. package/lib/internal/_notationSnake2.mjs.map +1 -1
  69. package/lib/internal/_plainCloneAny.d.ts +2 -0
  70. package/lib/internal/{_miscCloneAny.js → _plainCloneAny.js} +4 -4
  71. package/lib/internal/_plainCloneAny.js.map +1 -0
  72. package/lib/internal/_plainCloneAny.mjs +3 -0
  73. package/lib/internal/_plainCloneAny.mjs.map +1 -0
  74. package/lib/internal/{_miscCloneAny2.mjs → _plainCloneAny2.mjs} +7 -7
  75. package/lib/internal/_plainCloneAny2.mjs.map +1 -0
  76. package/lib/module.d.ts +87 -1
  77. package/lib/module.js +13 -2
  78. package/lib/module.js.map +1 -1
  79. package/lib/module2.mjs +17 -4
  80. package/lib/module2.mjs.map +1 -1
  81. package/lib/notations.d.ts +127 -1
  82. package/lib/notations.js +40 -0
  83. package/lib/notations.js.map +1 -1
  84. package/lib/notations.mjs +1 -1
  85. package/lib/notations2.mjs +41 -1
  86. package/lib/notations2.mjs.map +1 -1
  87. package/lib/{misc.d.ts → plain.d.ts} +99 -16
  88. package/lib/{misc.js → plain.js} +47 -22
  89. package/lib/plain.js.map +1 -0
  90. package/lib/plain.mjs +3 -0
  91. package/lib/plain.mjs.map +1 -0
  92. package/lib/plain2.mjs +119 -0
  93. package/lib/plain2.mjs.map +1 -0
  94. package/lib/re-exports.d.ts +1 -1
  95. package/lib/re-exports.js.map +1 -1
  96. package/lib/reflect.d.ts +16 -1
  97. package/lib/reflect.js +5 -0
  98. package/lib/reflect.js.map +1 -1
  99. package/lib/reflect.mjs +1 -1
  100. package/lib/reflect2.mjs +6 -1
  101. package/lib/reflect2.mjs.map +1 -1
  102. package/lib/transform.js +6 -38
  103. package/lib/transform.js.map +1 -1
  104. package/lib/transform2.mjs +7 -39
  105. package/lib/transform2.mjs.map +1 -1
  106. package/native/adapter/adapter.go +29 -29
  107. package/native/adapter/adapter_options_branch_matrix_test.go +54 -0
  108. package/native/adapter/visit.go +173 -168
  109. package/native/adapter/visit_property_chain_edges_test.go +129 -0
  110. package/native/cmd/ttsc-typia/any_array_type_tags_transform_test.go +204 -0
  111. package/native/cmd/ttsc-typia/atomic_intersection_schema_transform_test.go +148 -0
  112. package/native/cmd/ttsc-typia/boolean_literal_discriminant_schema_transform_test.go +374 -0
  113. package/native/cmd/ttsc-typia/build.go +199 -190
  114. package/native/cmd/ttsc-typia/build_reports_semantic_diagnostics_test.go +34 -0
  115. package/native/cmd/ttsc-typia/build_reports_syntactic_diagnostics_test.go +34 -0
  116. package/native/cmd/ttsc-typia/command_routes_and_diagnostics_coverage_test.go +314 -0
  117. package/native/cmd/ttsc-typia/compare_equal_cover_transform_test.go +271 -0
  118. package/native/cmd/ttsc-typia/compare_less_transform_test.go +180 -0
  119. package/native/cmd/ttsc-typia/compare_method_delegation_transform_test.go +173 -0
  120. package/native/cmd/ttsc-typia/demo_rejects_bad_flag_test.go +25 -0
  121. package/native/cmd/ttsc-typia/dynamic_key_path_helper_alias_transform_test.go +159 -0
  122. package/native/cmd/ttsc-typia/exclude_type_tag_transform_test.go +176 -0
  123. package/native/cmd/ttsc-typia/inline_type_display_name_transform_test.go +290 -0
  124. package/native/cmd/ttsc-typia/instance_union_create_is_transform_test.go +248 -0
  125. package/native/cmd/ttsc-typia/intersection_union_validation_transform_test.go +590 -0
  126. package/native/cmd/ttsc-typia/json_stringify_constant_atomic_union_transform_test.go +171 -0
  127. package/native/cmd/ttsc-typia/main.go +97 -97
  128. package/native/cmd/ttsc-typia/main_wasm.go +226 -226
  129. package/native/cmd/ttsc-typia/non_trailing_rest_tuple_transform_test.go +156 -0
  130. package/native/cmd/ttsc-typia/notation_kebab_case_transform_test.go +186 -0
  131. package/native/cmd/ttsc-typia/nullable_primitive_property_is_transform_test.go +236 -0
  132. package/native/cmd/ttsc-typia/object_custom_tag_validation_transform_test.go +332 -0
  133. package/native/cmd/ttsc-typia/object_union_explicit_pointer_schema_transform_test.go +269 -0
  134. package/native/cmd/ttsc-typia/plain_classify_class_ref_transform_test.go +261 -0
  135. package/native/cmd/ttsc-typia/plain_classify_container_seed_transform_test.go +144 -0
  136. package/native/cmd/ttsc-typia/plain_classify_cross_module_extra_transform_test.go +211 -0
  137. package/native/cmd/ttsc-typia/plain_classify_deep_nested_transform_test.go +184 -0
  138. package/native/cmd/ttsc-typia/plain_classify_field_copy_transform_test.go +204 -0
  139. package/native/cmd/ttsc-typia/plain_classify_from_new_transform_test.go +465 -0
  140. package/native/cmd/ttsc-typia/plain_classify_strategy_edges_transform_test.go +519 -0
  141. package/native/cmd/ttsc-typia/plain_classify_union_transform_test.go +149 -0
  142. package/native/cmd/ttsc-typia/plain_classify_validated_union_transform_test.go +212 -0
  143. package/native/cmd/ttsc-typia/plain_clone_bigint_wrapper_transform_test.go +153 -0
  144. package/native/cmd/ttsc-typia/plugin_options_missing_config_test.go +26 -0
  145. package/native/cmd/ttsc-typia/plugin_options_undefined_false_test.go +36 -0
  146. package/native/cmd/ttsc-typia/project_catalog_transform_coverage_test.go +73 -0
  147. package/native/cmd/ttsc-typia/protobuf_sequence_field_numbers_transform_test.go +107 -0
  148. package/native/cmd/ttsc-typia/recursive_visit_tracking_transform_test.go +473 -0
  149. package/native/cmd/ttsc-typia/run_default_build_route_test.go +31 -0
  150. package/native/cmd/ttsc-typia/schema_dts_role_transform_test.go +404 -0
  151. package/native/cmd/ttsc-typia/shallow_depth_argument_error_transform_test.go +89 -0
  152. package/native/cmd/ttsc-typia/shallow_depth_limit_transform_test.go +278 -0
  153. package/native/cmd/ttsc-typia/shallow_depth_runtime_test.go +173 -0
  154. package/native/cmd/ttsc-typia/shallow_factory_depth_runtime_test.go +171 -0
  155. package/native/cmd/ttsc-typia/shallow_nested_depth_transform_test.go +148 -0
  156. package/native/cmd/ttsc-typia/template_literal_type_tags_transform_test.go +162 -0
  157. package/native/cmd/ttsc-typia/transform.go +270 -270
  158. package/native/cmd/ttsc-typia/transform_declaration_source_produces_no_js_test.go +59 -0
  159. package/native/cmd/ttsc-typia/transform_fixtures_emit_coverage_test.go +528 -0
  160. package/native/cmd/ttsc-typia/transform_helpers_test.go +155 -0
  161. package/native/core/context/EmitFactory.go +39 -39
  162. package/native/core/context/IProgrammerProps.go +14 -14
  163. package/native/core/context/ITransformOptions.go +9 -9
  164. package/native/core/context/ITypiaContext.go +28 -28
  165. package/native/core/context/ImportProgrammer.go +354 -329
  166. package/native/core/context/TransformerError.go +117 -117
  167. package/native/core/context/import_programmer_statement_coverage_test.go +71 -0
  168. package/native/core/context/index.go +1 -1
  169. package/native/core/context/transformer_error_formatting_test.go +100 -0
  170. package/native/core/factories/CommentFactory.go +27 -27
  171. package/native/core/factories/ExpressionFactory.go +357 -353
  172. package/native/core/factories/FormatCheatSheet.go +30 -30
  173. package/native/core/factories/IdentifierFactory.go +172 -172
  174. package/native/core/factories/JsonMetadataFactory.go +154 -160
  175. package/native/core/factories/LiteralFactory.go +282 -282
  176. package/native/core/factories/MetadataCommentTagFactory.go +446 -433
  177. package/native/core/factories/MetadataFactory.go +543 -543
  178. package/native/core/factories/MetadataTypeTagFactory.go +560 -560
  179. package/native/core/factories/MetadataTypeTagSchemaFactory.go +117 -117
  180. package/native/core/factories/NumericRangeFactory.go +132 -132
  181. package/native/core/factories/ProtobufFactory.go +1090 -1066
  182. package/native/core/factories/StatementFactory.go +114 -114
  183. package/native/core/factories/TemplateFactory.go +82 -82
  184. package/native/core/factories/TypeFactory.go +176 -166
  185. package/native/core/factories/ValueFactory.go +43 -43
  186. package/native/core/factories/factory_utility_coverage_test.go +1006 -0
  187. package/native/core/factories/index.go +1 -1
  188. package/native/core/factories/internal/metadata/IMetadataIteratorProps.go +70 -63
  189. package/native/core/factories/internal/metadata/MetadataHelper.go +378 -367
  190. package/native/core/factories/internal/metadata/comment_tags_coverage_test.go +184 -0
  191. package/native/core/factories/internal/metadata/emend_metadata_atomics.go +80 -80
  192. package/native/core/factories/internal/metadata/emplace_metadata_alias.go +34 -34
  193. package/native/core/factories/internal/metadata/emplace_metadata_array_type.go +44 -44
  194. package/native/core/factories/internal/metadata/emplace_metadata_object.go +585 -231
  195. package/native/core/factories/internal/metadata/emplace_metadata_tuple.go +69 -58
  196. package/native/core/factories/internal/metadata/explore_metadata.go +75 -39
  197. package/native/core/factories/internal/metadata/iterate_metadata.go +55 -55
  198. package/native/core/factories/internal/metadata/iterate_metadata_alias.go +36 -36
  199. package/native/core/factories/internal/metadata/iterate_metadata_array.go +77 -77
  200. package/native/core/factories/internal/metadata/iterate_metadata_atomic.go +63 -63
  201. package/native/core/factories/internal/metadata/iterate_metadata_coalesce.go +30 -30
  202. package/native/core/factories/internal/metadata/iterate_metadata_collection.go +365 -247
  203. package/native/core/factories/internal/metadata/iterate_metadata_collection_branch_matrix_test.go +201 -0
  204. package/native/core/factories/internal/metadata/iterate_metadata_comment_tags.go +34 -34
  205. package/native/core/factories/internal/metadata/iterate_metadata_constant.go +139 -102
  206. package/native/core/factories/internal/metadata/iterate_metadata_escape.go +56 -56
  207. package/native/core/factories/internal/metadata/iterate_metadata_function.go +93 -93
  208. package/native/core/factories/internal/metadata/iterate_metadata_intersection.go +991 -340
  209. package/native/core/factories/internal/metadata/iterate_metadata_intersection_coverage_test.go +106 -0
  210. package/native/core/factories/internal/metadata/iterate_metadata_intersection_shareable_name_test.go +22 -0
  211. package/native/core/factories/internal/metadata/iterate_metadata_map.go +55 -60
  212. package/native/core/factories/internal/metadata/iterate_metadata_native.go +122 -117
  213. package/native/core/factories/internal/metadata/iterate_metadata_object.go +35 -35
  214. package/native/core/factories/internal/metadata/iterate_metadata_set.go +41 -46
  215. package/native/core/factories/internal/metadata/iterate_metadata_sort.go +202 -157
  216. package/native/core/factories/internal/metadata/iterate_metadata_template.go +41 -41
  217. package/native/core/factories/internal/metadata/iterate_metadata_tuple.go +24 -24
  218. package/native/core/factories/internal/metadata/iterate_metadata_union.go +24 -22
  219. package/native/core/factories/internal/metadata/js_doc_parameter_name_reads_qualified_name_test.go +55 -0
  220. package/native/core/factories/internal/metadata/optional_coalesce_coverage_test.go +38 -0
  221. package/native/core/factories/internal/metadata/sort_constants_coverage_test.go +63 -0
  222. package/native/core/factories/json_metadata_factory_dedupes_bigint_diagnostics_test.go +36 -0
  223. package/native/core/factories/json_metadata_factory_rejects_bigint_native_test.go +29 -0
  224. package/native/core/factories/metadata_comment_tag_factory_coverage_test.go +239 -0
  225. package/native/core/factories/protobuf_factory_rejects_invalid_field_names_test.go +75 -0
  226. package/native/core/index.go +1 -1
  227. package/native/core/programmers/AssertProgrammer.go +511 -500
  228. package/native/core/programmers/IsProgrammer.go +419 -384
  229. package/native/core/programmers/RandomProgrammer.go +1313 -1302
  230. package/native/core/programmers/ValidateProgrammer.go +488 -475
  231. package/native/core/programmers/compare/CompareEqualProgrammer.go +668 -0
  232. package/native/core/programmers/compare/CompareLessProgrammer.go +489 -0
  233. package/native/core/programmers/functional/FunctionalAssertFunctionProgrammer.go +172 -172
  234. package/native/core/programmers/functional/FunctionalAssertParametersProgrammer.go +135 -135
  235. package/native/core/programmers/functional/FunctionalAssertReturnProgrammer.go +131 -131
  236. package/native/core/programmers/functional/FunctionalIsFunctionProgrammer.go +106 -106
  237. package/native/core/programmers/functional/FunctionalIsParametersProgrammer.go +222 -222
  238. package/native/core/programmers/functional/FunctionalIsReturnProgrammer.go +129 -129
  239. package/native/core/programmers/functional/FunctionalValidateFunctionProgrammer.go +172 -172
  240. package/native/core/programmers/functional/FunctionalValidateParametersProgrammer.go +252 -252
  241. package/native/core/programmers/functional/FunctionalValidateReturnProgrammer.go +147 -147
  242. package/native/core/programmers/functional/functional_assert_helper_coverage_test.go +26 -0
  243. package/native/core/programmers/functional/index.go +1 -1
  244. package/native/core/programmers/functional/internal/FunctionalGeneralProgrammer.go +53 -53
  245. package/native/core/programmers/helpers/AtomicPredicator.go +75 -62
  246. package/native/core/programmers/helpers/ClassifyJoiner.go +174 -0
  247. package/native/core/programmers/helpers/CloneJoiner.go +307 -271
  248. package/native/core/programmers/helpers/FunctionProgrammer.go +218 -126
  249. package/native/core/programmers/helpers/HttpMetadataUtil.go +30 -30
  250. package/native/core/programmers/helpers/ICheckEntry.go +14 -14
  251. package/native/core/programmers/helpers/IExpressionEntry.go +15 -13
  252. package/native/core/programmers/helpers/ModuloText.go +26 -23
  253. package/native/core/programmers/helpers/NotationJoiner.go +204 -204
  254. package/native/core/programmers/helpers/OptionPredicator.go +39 -23
  255. package/native/core/programmers/helpers/ProtobufUtil.go +273 -297
  256. package/native/core/programmers/helpers/ProtobufWire.go +14 -14
  257. package/native/core/programmers/helpers/PruneJoiner.go +290 -290
  258. package/native/core/programmers/helpers/RandomJoiner.go +229 -203
  259. package/native/core/programmers/helpers/StringifyJoinder.go +409 -409
  260. package/native/core/programmers/helpers/StringifyPredicator.go +25 -25
  261. package/native/core/programmers/helpers/UnionExplorer.go +966 -963
  262. package/native/core/programmers/helpers/UnionPredicator.go +92 -95
  263. package/native/core/programmers/helpers/clone_joiner_optional_condition_test.go +70 -0
  264. package/native/core/programmers/helpers/disable_function_programmer_declare.go +10 -10
  265. package/native/core/programmers/helpers/function_programmer_unique_names_test.go +54 -0
  266. package/native/core/programmers/helpers/joiner_branch_coverage_test.go +147 -0
  267. package/native/core/programmers/helpers/union_explorer_coverage_test.go +135 -0
  268. package/native/core/programmers/helpers/union_predicator_checks_neighbor_flag_test.go +34 -0
  269. package/native/core/programmers/helpers/union_predicator_skips_atomic_like_native_fields_test.go +65 -0
  270. package/native/core/programmers/helpers/union_predicator_skips_collection_bucket_fields_test.go +72 -0
  271. package/native/core/programmers/helpers/union_predicator_skips_shared_native_names_test.go +239 -0
  272. package/native/core/programmers/helpers/union_predicator_skips_shared_object_fields_test.go +43 -0
  273. package/native/core/programmers/helpers/union_predicator_skips_shared_template_fields_test.go +57 -0
  274. package/native/core/programmers/http/HttpAssertFormDataProgrammer.go +116 -116
  275. package/native/core/programmers/http/HttpAssertHeadersProgrammer.go +59 -59
  276. package/native/core/programmers/http/HttpAssertQueryProgrammer.go +71 -71
  277. package/native/core/programmers/http/HttpFormDataProgrammer.go +416 -416
  278. package/native/core/programmers/http/HttpHeadersProgrammer.go +428 -428
  279. package/native/core/programmers/http/HttpIsFormDataProgrammer.go +142 -142
  280. package/native/core/programmers/http/HttpIsHeadersProgrammer.go +53 -53
  281. package/native/core/programmers/http/HttpIsQueryProgrammer.go +65 -65
  282. package/native/core/programmers/http/HttpParameterProgrammer.go +190 -190
  283. package/native/core/programmers/http/HttpQueryProgrammer.go +484 -484
  284. package/native/core/programmers/http/HttpValidateFormDataProgrammer.go +110 -110
  285. package/native/core/programmers/http/HttpValidateHeadersProgrammer.go +56 -56
  286. package/native/core/programmers/http/HttpValidateQueryProgrammer.go +68 -68
  287. package/native/core/programmers/http/http_programmer_helper_coverage_test.go +120 -0
  288. package/native/core/programmers/http/index.go +1 -1
  289. package/native/core/programmers/index.go +1 -1
  290. package/native/core/programmers/internal/CheckerProgrammer.go +2064 -1749
  291. package/native/core/programmers/internal/FeatureProgrammer.go +1352 -770
  292. package/native/core/programmers/internal/internal_utility_coverage_test.go +384 -0
  293. package/native/core/programmers/iterate/check_array_length.go +64 -64
  294. package/native/core/programmers/iterate/check_bigint.go +78 -73
  295. package/native/core/programmers/iterate/check_dynamic_key.go +271 -270
  296. package/native/core/programmers/iterate/check_dynamic_key_tag_rows_test.go +46 -0
  297. package/native/core/programmers/iterate/check_dynamic_properties.go +292 -292
  298. package/native/core/programmers/iterate/check_everything.go +33 -33
  299. package/native/core/programmers/iterate/check_exclude.go +88 -0
  300. package/native/core/programmers/iterate/check_native.go +38 -45
  301. package/native/core/programmers/iterate/check_number.go +180 -169
  302. package/native/core/programmers/iterate/check_object.go +113 -91
  303. package/native/core/programmers/iterate/check_object_strict_optional_undefined_test.go +74 -0
  304. package/native/core/programmers/iterate/check_object_type_tags.go +64 -0
  305. package/native/core/programmers/iterate/check_string.go +78 -73
  306. package/native/core/programmers/iterate/check_template.go +150 -78
  307. package/native/core/programmers/iterate/check_union_array_like.go +422 -422
  308. package/native/core/programmers/iterate/decode_union_object.go +157 -157
  309. package/native/core/programmers/iterate/feature_object_entries.go +188 -175
  310. package/native/core/programmers/iterate/iterate_check_coverage_test.go +178 -0
  311. package/native/core/programmers/iterate/iterate_utility_coverage_test.go +302 -0
  312. package/native/core/programmers/iterate/json_schema_alias.go +62 -62
  313. package/native/core/programmers/iterate/json_schema_array.go +66 -66
  314. package/native/core/programmers/iterate/json_schema_bigint.go +17 -17
  315. package/native/core/programmers/iterate/json_schema_boolean.go +17 -17
  316. package/native/core/programmers/iterate/json_schema_constant.go +53 -53
  317. package/native/core/programmers/iterate/json_schema_description.go +21 -21
  318. package/native/core/programmers/iterate/json_schema_discriminator.go +57 -57
  319. package/native/core/programmers/iterate/json_schema_escaped.go +68 -68
  320. package/native/core/programmers/iterate/json_schema_jsDocTags.go +48 -48
  321. package/native/core/programmers/iterate/json_schema_native.go +106 -106
  322. package/native/core/programmers/iterate/json_schema_number.go +17 -17
  323. package/native/core/programmers/iterate/json_schema_object.go +184 -180
  324. package/native/core/programmers/iterate/json_schema_plugin.go +47 -47
  325. package/native/core/programmers/iterate/json_schema_station.go +251 -251
  326. package/native/core/programmers/iterate/json_schema_string.go +17 -17
  327. package/native/core/programmers/iterate/json_schema_template.go +63 -63
  328. package/native/core/programmers/iterate/json_schema_title.go +25 -25
  329. package/native/core/programmers/iterate/json_schema_tuple.go +41 -41
  330. package/native/core/programmers/iterate/metadata_to_pattern.go +64 -64
  331. package/native/core/programmers/iterate/postfix_of_tuple.go +12 -12
  332. package/native/core/programmers/iterate/prune_object_properties.go +105 -105
  333. package/native/core/programmers/iterate/stringify_dynamic_properties.go +219 -219
  334. package/native/core/programmers/iterate/stringify_native.go +14 -14
  335. package/native/core/programmers/iterate/stringify_regular_properties.go +112 -112
  336. package/native/core/programmers/iterate/template_to_pattern.go +29 -29
  337. package/native/core/programmers/iterate/wrap_metadata_rest_tuple.go +23 -22
  338. package/native/core/programmers/json/JsonApplicationProgrammer.go +380 -380
  339. package/native/core/programmers/json/JsonAssertParseProgrammer.go +115 -115
  340. package/native/core/programmers/json/JsonAssertStringifyProgrammer.go +108 -108
  341. package/native/core/programmers/json/JsonIsParseProgrammer.go +162 -162
  342. package/native/core/programmers/json/JsonIsStringifyProgrammer.go +113 -113
  343. package/native/core/programmers/json/JsonSchemaProgrammer.go +94 -94
  344. package/native/core/programmers/json/JsonSchemasProgrammer.go +142 -148
  345. package/native/core/programmers/json/JsonStringifyProgrammer.go +1508 -1462
  346. package/native/core/programmers/json/JsonValidateParseProgrammer.go +105 -105
  347. package/native/core/programmers/json/JsonValidateStringifyProgrammer.go +126 -126
  348. package/native/core/programmers/json/index.go +1 -1
  349. package/native/core/programmers/json/json_schema_programmer_coverage_test.go +198 -0
  350. package/native/core/programmers/json/json_schemas_programmer_dedupes_bigint_diagnostics_test.go +37 -0
  351. package/native/core/programmers/json/json_schemas_programmer_rejects_bigint_native_test.go +29 -0
  352. package/native/core/programmers/json/json_stringify_programmer_coverage_test.go +422 -0
  353. package/native/core/programmers/llm/LlmApplicationProgrammer.go +515 -515
  354. package/native/core/programmers/llm/LlmCoerceProgrammer.go +109 -109
  355. package/native/core/programmers/llm/LlmControllerProgrammer.go +51 -51
  356. package/native/core/programmers/llm/LlmMetadataFactory.go +89 -89
  357. package/native/core/programmers/llm/LlmParametersProgrammer.go +141 -141
  358. package/native/core/programmers/llm/LlmParseProgrammer.go +121 -121
  359. package/native/core/programmers/llm/LlmSchemaProgrammer.go +846 -831
  360. package/native/core/programmers/llm/LlmStructuredOutputProgrammer.go +147 -147
  361. package/native/core/programmers/llm/index.go +1 -1
  362. package/native/core/programmers/llm/llm_application_programmer_coverage_test.go +166 -0
  363. package/native/core/programmers/llm/llm_schema_programmer_coverage_test.go +282 -0
  364. package/native/core/programmers/llm/llm_schema_programmer_dedupes_bigint_diagnostics_test.go +38 -0
  365. package/native/core/programmers/llm/llm_schema_programmer_rejects_bigint_native_test.go +30 -0
  366. package/native/core/programmers/llm/llm_schema_programmer_rejects_exclude_tag_in_strict_test.go +52 -0
  367. package/native/core/programmers/notations/NotationAssertGeneralProgrammer.go +107 -107
  368. package/native/core/programmers/notations/NotationGeneralProgrammer.go +1441 -1410
  369. package/native/core/programmers/notations/NotationIsGeneralProgrammer.go +112 -112
  370. package/native/core/programmers/notations/NotationValidateGeneralProgrammer.go +131 -131
  371. package/native/core/programmers/notations/index.go +1 -1
  372. package/native/core/programmers/notations/notation_general_helpers_test.go +395 -0
  373. package/native/core/programmers/notations/notation_general_programmer_snake_prefix_test.go +44 -0
  374. package/native/core/programmers/plain/PlainAssertClassifyProgrammer.go +111 -0
  375. package/native/core/programmers/{misc/MiscAssertCloneProgrammer.go → plain/PlainAssertCloneProgrammer.go} +102 -102
  376. package/native/core/programmers/{misc/MiscAssertPruneProgrammer.go → plain/PlainAssertPruneProgrammer.go} +117 -117
  377. package/native/core/programmers/plain/PlainClassifyProgrammer.go +2205 -0
  378. package/native/core/programmers/{misc/MiscCloneProgrammer.go → plain/PlainCloneProgrammer.go} +1254 -1236
  379. package/native/core/programmers/{misc/MiscIsCloneProgrammer.go → plain/PlainIsCloneProgrammer.go} +117 -117
  380. package/native/core/programmers/{misc/MiscIsPruneProgrammer.go → plain/PlainIsPruneProgrammer.go} +106 -106
  381. package/native/core/programmers/{misc/MiscPruneProgrammer.go → plain/PlainPruneProgrammer.go} +837 -821
  382. package/native/core/programmers/plain/PlainValidateClassifyProgrammer.go +127 -0
  383. package/native/core/programmers/{misc/MiscValidateCloneProgrammer.go → plain/PlainValidateCloneProgrammer.go} +123 -123
  384. package/native/core/programmers/{misc/MiscValidatePruneProgrammer.go → plain/PlainValidatePruneProgrammer.go} +114 -114
  385. package/native/core/programmers/plain/index.go +1 -0
  386. package/native/core/programmers/plain/plain_programmer_helper_coverage_test.go +284 -0
  387. package/native/core/programmers/plain/plain_prune_programmer_branch_matrix_test.go +145 -0
  388. package/native/core/programmers/programmer_direct_helper_coverage_test.go +70 -0
  389. package/native/core/programmers/protobuf/ProtobufAssertDecodeProgrammer.go +125 -125
  390. package/native/core/programmers/protobuf/ProtobufAssertEncodeProgrammer.go +143 -143
  391. package/native/core/programmers/protobuf/ProtobufDecodeProgrammer.go +861 -861
  392. package/native/core/programmers/protobuf/ProtobufEncodeProgrammer.go +1266 -1225
  393. package/native/core/programmers/protobuf/ProtobufIsDecodeProgrammer.go +122 -122
  394. package/native/core/programmers/protobuf/ProtobufIsEncodeProgrammer.go +115 -115
  395. package/native/core/programmers/protobuf/ProtobufMessageProgrammer.go +269 -269
  396. package/native/core/programmers/protobuf/ProtobufValidateDecodeProgrammer.go +111 -111
  397. package/native/core/programmers/protobuf/ProtobufValidateEncodeProgrammer.go +145 -145
  398. package/native/core/programmers/protobuf/index.go +1 -1
  399. package/native/core/programmers/protobuf/protobuf_programmer_helper_coverage_test.go +454 -0
  400. package/native/core/programmers/random_programmer_helper_coverage_test.go +367 -0
  401. package/native/core/programmers/{misc/MiscLiteralsProgrammer.go → reflect/ReflectLiteralsProgrammer.go} +125 -125
  402. package/native/core/schemas/index.go +1 -1
  403. package/native/core/schemas/metadata/IMetadataDictionary.go +8 -8
  404. package/native/core/schemas/metadata/IMetadataTypeTagSequence.go +53 -0
  405. package/native/core/schemas/metadata/MetadataAlias.go +36 -28
  406. package/native/core/schemas/metadata/MetadataAliasType.go +64 -52
  407. package/native/core/schemas/metadata/MetadataApplication.go +41 -41
  408. package/native/core/schemas/metadata/MetadataArray.go +36 -28
  409. package/native/core/schemas/metadata/MetadataArrayType.go +59 -47
  410. package/native/core/schemas/metadata/MetadataAtomic.go +69 -69
  411. package/native/core/schemas/metadata/MetadataCollection.go +698 -547
  412. package/native/core/schemas/metadata/MetadataComponents.go +122 -122
  413. package/native/core/schemas/metadata/MetadataConstant.go +47 -47
  414. package/native/core/schemas/metadata/MetadataConstantValue.go +97 -97
  415. package/native/core/schemas/metadata/MetadataEscaped.go +40 -36
  416. package/native/core/schemas/metadata/MetadataFunction.go +46 -46
  417. package/native/core/schemas/metadata/MetadataMap.go +45 -37
  418. package/native/core/schemas/metadata/MetadataNative.go +72 -72
  419. package/native/core/schemas/metadata/MetadataObject.go +36 -28
  420. package/native/core/schemas/metadata/MetadataObjectType.go +223 -146
  421. package/native/core/schemas/metadata/MetadataParameter.go +46 -46
  422. package/native/core/schemas/metadata/MetadataProperty.go +50 -50
  423. package/native/core/schemas/metadata/MetadataSchema.go +1485 -863
  424. package/native/core/schemas/metadata/MetadataSet.go +41 -33
  425. package/native/core/schemas/metadata/MetadataTemplate.go +70 -70
  426. package/native/core/schemas/metadata/MetadataTuple.go +20 -20
  427. package/native/core/schemas/metadata/MetadataTupleType.go +69 -57
  428. package/native/core/schemas/metadata/index.go +1 -1
  429. package/native/core/schemas/metadata/metadata_object_type_required_literal_property_test.go +51 -0
  430. package/native/core/schemas/metadata/metadata_schema_covers_tag_matrix_test.go +125 -0
  431. package/native/core/schemas/metadata/metadata_schema_sole_literal_caches_pointer_test.go +38 -0
  432. package/native/core/schemas/metadata/schema_sequence_and_json_coverage_test.go +427 -0
  433. package/native/core/schemas/protobuf/IProtobufProperty.go +6 -6
  434. package/native/core/schemas/protobuf/IProtobufPropertyType.go +55 -55
  435. package/native/core/schemas/protobuf/IProtobufSchema.go +54 -54
  436. package/native/core/schemas/protobuf/index.go +1 -1
  437. package/native/core/schemas/protobuf/protobuf_marker_coverage_test.go +58 -0
  438. package/native/core/typings/Writable.go +5 -5
  439. package/native/core/utils/PatternUtil.go +57 -57
  440. package/native/core/utils/ProtobufNameEncoder.go +47 -47
  441. package/native/go.mod +31 -31
  442. package/native/go.sum +22 -22
  443. package/native/go.work +22 -22
  444. package/native/transform/CallExpressionTransformer.go +719 -646
  445. package/native/transform/FileTransformer.go +197 -198
  446. package/native/transform/ITransformProps.go +5 -5
  447. package/native/transform/ImportTransformer.go +285 -285
  448. package/native/transform/NodeTransformer.go +25 -25
  449. package/native/transform/TransformerError.go +11 -11
  450. package/native/transform/TypiaGenerator.go +168 -168
  451. package/native/transform/call_expression_transformer_registry_coverage_test.go +53 -0
  452. package/native/transform/call_expression_transformer_target_test.go +46 -0
  453. package/native/transform/features/AssertTransformer.go +39 -39
  454. package/native/transform/features/CreateAssertTransformer.go +39 -39
  455. package/native/transform/features/CreateIsTransformer.go +35 -35
  456. package/native/transform/features/CreateRandomTransformer.go +47 -47
  457. package/native/transform/features/CreateShallowTransformer.go +33 -0
  458. package/native/transform/features/CreateValidateTransformer.go +35 -35
  459. package/native/transform/features/IsTransformer.go +35 -35
  460. package/native/transform/features/RandomTransformer.go +54 -54
  461. package/native/transform/features/ShallowTransformer.go +65 -0
  462. package/native/transform/features/ValidateTransformer.go +35 -35
  463. package/native/transform/features/compare/CompareCoverTransformer.go +14 -0
  464. package/native/transform/features/compare/CompareCreateCoverTransformer.go +14 -0
  465. package/native/transform/features/compare/CompareCreateEqualTransformer.go +14 -0
  466. package/native/transform/features/compare/CompareCreateLessTransformer.go +14 -0
  467. package/native/transform/features/compare/CompareEqualTransformer.go +73 -0
  468. package/native/transform/features/compare/CompareLessTransformer.go +71 -0
  469. package/native/transform/features/feature_transformer_entry_coverage_test.go +59 -0
  470. package/native/transform/features/functional/FunctionalGenericTransformer.go +70 -70
  471. package/native/transform/features/http/CreateHttpAssertFormDataTransformer.go +22 -22
  472. package/native/transform/features/http/CreateHttpAssertHeadersTransformer.go +22 -22
  473. package/native/transform/features/http/CreateHttpAssertQueryTransformer.go +28 -28
  474. package/native/transform/features/http/CreateHttpFormDataTransformer.go +22 -22
  475. package/native/transform/features/http/CreateHttpHeadersTransformer.go +22 -22
  476. package/native/transform/features/http/CreateHttpIsFormDataTransformer.go +22 -22
  477. package/native/transform/features/http/CreateHttpIsHeadersTransformer.go +22 -22
  478. package/native/transform/features/http/CreateHttpIsQueryTransformer.go +28 -28
  479. package/native/transform/features/http/CreateHttpParameterTransformer.go +22 -22
  480. package/native/transform/features/http/CreateHttpQueryTransformer.go +28 -28
  481. package/native/transform/features/http/CreateHttpValidateFormDataTransformer.go +22 -22
  482. package/native/transform/features/http/CreateHttpValidateHeadersTransformer.go +22 -22
  483. package/native/transform/features/http/CreateHttpValidateQueryTransformer.go +28 -28
  484. package/native/transform/features/http/HttpAssertFormDataTransformer.go +22 -22
  485. package/native/transform/features/http/HttpAssertHeadersTransformer.go +22 -22
  486. package/native/transform/features/http/HttpAssertQueryTransformer.go +28 -28
  487. package/native/transform/features/http/HttpFormDataTransformer.go +22 -22
  488. package/native/transform/features/http/HttpHeadersTransformer.go +22 -22
  489. package/native/transform/features/http/HttpIsFormDataTransformer.go +22 -22
  490. package/native/transform/features/http/HttpIsHeadersTransformer.go +22 -22
  491. package/native/transform/features/http/HttpIsQueryTransformer.go +28 -28
  492. package/native/transform/features/http/HttpParameterTransformer.go +22 -22
  493. package/native/transform/features/http/HttpQueryTransformer.go +28 -28
  494. package/native/transform/features/http/HttpValidateFormDataTransformer.go +22 -22
  495. package/native/transform/features/http/HttpValidateHeadersTransformer.go +22 -22
  496. package/native/transform/features/http/HttpValidateQueryTransformer.go +28 -28
  497. package/native/transform/features/http/http_transformer_entry_coverage_test.go +65 -0
  498. package/native/transform/features/json/JsonApplicationTransformer.go +75 -75
  499. package/native/transform/features/json/JsonAssertParseTransformer.go +22 -22
  500. package/native/transform/features/json/JsonAssertStringifyTransformer.go +22 -22
  501. package/native/transform/features/json/JsonCreateAssertParseTransformer.go +22 -22
  502. package/native/transform/features/json/JsonCreateAssertStringifyTransformer.go +22 -22
  503. package/native/transform/features/json/JsonCreateIsParseTransformer.go +22 -22
  504. package/native/transform/features/json/JsonCreateIsStringifyTransformer.go +22 -22
  505. package/native/transform/features/json/JsonCreateStringifyTransformer.go +22 -22
  506. package/native/transform/features/json/JsonCreateValidateParseTransformer.go +22 -22
  507. package/native/transform/features/json/JsonCreateValidateStringifyProgrammer.go +22 -22
  508. package/native/transform/features/json/JsonIsParseTransformer.go +22 -22
  509. package/native/transform/features/json/JsonIsStringifyTransformer.go +22 -22
  510. package/native/transform/features/json/JsonSchemaTransformer.go +175 -175
  511. package/native/transform/features/json/JsonSchemasTransformer.go +109 -109
  512. package/native/transform/features/json/JsonStringifyTransformer.go +22 -22
  513. package/native/transform/features/json/JsonValidateParseTransformer.go +22 -22
  514. package/native/transform/features/json/JsonValidateStringifyTransformer.go +22 -22
  515. package/native/transform/features/json/json_transformer_entry_coverage_test.go +56 -0
  516. package/native/transform/features/llm/LlmApplicationTransformer.go +54 -54
  517. package/native/transform/features/llm/LlmCoerceTransformer.go +63 -63
  518. package/native/transform/features/llm/LlmControllerTransformer.go +59 -59
  519. package/native/transform/features/llm/LlmCreateCoerceTransformer.go +54 -54
  520. package/native/transform/features/llm/LlmCreateParseTransformer.go +54 -54
  521. package/native/transform/features/llm/LlmParametersTransformer.go +49 -49
  522. package/native/transform/features/llm/LlmParseTransformer.go +63 -63
  523. package/native/transform/features/llm/LlmSchemaTransformer.go +167 -167
  524. package/native/transform/features/llm/LlmStructuredOutputTransformer.go +55 -55
  525. package/native/transform/features/llm/llm_transformer_entry_coverage_test.go +48 -0
  526. package/native/transform/features/notations/NotationAssertGeneralTransformer.go +27 -27
  527. package/native/transform/features/notations/NotationCreateAssertGeneralTransformer.go +27 -27
  528. package/native/transform/features/notations/NotationCreateGeneralTransformer.go +27 -27
  529. package/native/transform/features/notations/NotationCreateIsGeneralTransformer.go +27 -27
  530. package/native/transform/features/notations/NotationCreateValidateGeneralTransformer.go +27 -27
  531. package/native/transform/features/notations/NotationGeneralTransformer.go +36 -36
  532. package/native/transform/features/notations/NotationIsGeneralTransformer.go +27 -27
  533. package/native/transform/features/notations/NotationValidateGeneralTransformer.go +27 -27
  534. package/native/transform/features/notations/notation_transformer_entry_coverage_test.go +58 -0
  535. package/native/transform/features/plain/PlainAssertClassifyTransformer.go +22 -0
  536. package/native/transform/features/plain/PlainAssertCloneTransformer.go +22 -0
  537. package/native/transform/features/plain/PlainAssertPruneTransformer.go +22 -0
  538. package/native/transform/features/plain/PlainClassifyTransformer.go +22 -0
  539. package/native/transform/features/plain/PlainCloneTransformer.go +22 -0
  540. package/native/transform/features/plain/PlainCreateAssertClassifyTransformer.go +22 -0
  541. package/native/transform/features/plain/PlainCreateAssertCloneTransformer.go +22 -0
  542. package/native/transform/features/plain/PlainCreateAssertPruneTransformer.go +22 -0
  543. package/native/transform/features/plain/PlainCreateClassifyTransformer.go +22 -0
  544. package/native/transform/features/plain/PlainCreateCloneTransformer.go +22 -0
  545. package/native/transform/features/plain/PlainCreateIsCloneTransformer.go +22 -0
  546. package/native/transform/features/plain/PlainCreateIsPruneTransformer.go +22 -0
  547. package/native/transform/features/plain/PlainCreatePruneTransformer.go +22 -0
  548. package/native/transform/features/plain/PlainCreateValidateClassifyTransformer.go +22 -0
  549. package/native/transform/features/plain/PlainCreateValidateCloneTransformer.go +22 -0
  550. package/native/transform/features/plain/PlainCreateValidatePruneTransformer.go +22 -0
  551. package/native/transform/features/plain/PlainIsCloneTransformer.go +22 -0
  552. package/native/transform/features/plain/PlainIsPruneTransformer.go +22 -0
  553. package/native/transform/features/plain/PlainPruneTransformer.go +22 -0
  554. package/native/transform/features/plain/PlainValidateClassifyTransformer.go +22 -0
  555. package/native/transform/features/plain/PlainValidateCloneTransformer.go +22 -0
  556. package/native/transform/features/plain/PlainValidatePruneTransformer.go +22 -0
  557. package/native/transform/features/plain/plain_transformer_entry_coverage_test.go +61 -0
  558. package/native/transform/features/protobuf/ProtobufAssertDecodeTransformer.go +22 -22
  559. package/native/transform/features/protobuf/ProtobufAssertEncodeTransformer.go +22 -22
  560. package/native/transform/features/protobuf/ProtobufCreateAssertDecodeTransformer.go +22 -22
  561. package/native/transform/features/protobuf/ProtobufCreateAssertEncodeTransformer.go +22 -22
  562. package/native/transform/features/protobuf/ProtobufCreateDecodeTransformer.go +22 -22
  563. package/native/transform/features/protobuf/ProtobufCreateEncodeTransformer.go +22 -22
  564. package/native/transform/features/protobuf/ProtobufCreateIsDecodeTransformer.go +22 -22
  565. package/native/transform/features/protobuf/ProtobufCreateIsEncodeTransformer.go +22 -22
  566. package/native/transform/features/protobuf/ProtobufCreateValidateDecodeTransformer.go +22 -22
  567. package/native/transform/features/protobuf/ProtobufCreateValidateEncodeTransformer.go +22 -22
  568. package/native/transform/features/protobuf/ProtobufDecodeTransformer.go +22 -22
  569. package/native/transform/features/protobuf/ProtobufEncodeTransformer.go +22 -22
  570. package/native/transform/features/protobuf/ProtobufIsDecodeTransformer.go +22 -22
  571. package/native/transform/features/protobuf/ProtobufIsEncodeTransformer.go +22 -22
  572. package/native/transform/features/protobuf/ProtobufMessageTransformer.go +31 -31
  573. package/native/transform/features/protobuf/ProtobufValidateDecodeTransformer.go +22 -22
  574. package/native/transform/features/protobuf/ProtobufValidateEncodeTransformer.go +22 -22
  575. package/native/transform/features/protobuf/protobuf_transformer_entry_coverage_test.go +56 -0
  576. package/native/transform/features/{misc/MiscLiteralsTransformer.go → reflect/ReflectLiteralsTransformer.go} +32 -32
  577. package/native/transform/features/reflect/ReflectMetadataTransformer.go +73 -73
  578. package/native/transform/features/reflect/ReflectNameTransformer.go +100 -100
  579. package/native/transform/features/reflect/ReflectSchemaTransformer.go +153 -153
  580. package/native/transform/features/reflect/ReflectSchemasTransformer.go +68 -68
  581. package/native/transform/features/reflect/reflect_metadata_transformer_edge_branches_test.go +55 -0
  582. package/native/transform/features/reflect/reflect_transformer_entry_coverage_test.go +47 -0
  583. package/native/transform/file_transformer_coverage_test.go +90 -0
  584. package/native/transform/import_transformer_coverage_test.go +153 -0
  585. package/native/transform/index.go +1 -1
  586. package/native/transform/internal/GenericTransformer.go +236 -236
  587. package/native/transform/transform.go +55 -55
  588. package/native/transform/typia_generator_helpers_coverage_test.go +166 -0
  589. package/package.json +12 -7
  590. package/src/TypeGuardError.ts +146 -146
  591. package/src/compare.ts +159 -0
  592. package/src/executable/TypiaGenerateWizard.ts +856 -333
  593. package/src/executable/generate/ttsc.ts +71 -71
  594. package/src/executable/typia.ts +76 -53
  595. package/src/index.ts +4 -4
  596. package/src/internal/_isFormatUrl.ts +4 -4
  597. package/src/internal/_isTypeInt16.ts +5 -0
  598. package/src/internal/_isTypeInt8.ts +5 -0
  599. package/src/internal/_isTypeUint16.ts +5 -0
  600. package/src/internal/_isTypeUint8.ts +5 -0
  601. package/src/internal/_jsonStringifyNumber.ts +2 -2
  602. package/src/internal/_llmApplicationFinalize.ts +20 -20
  603. package/src/internal/_notationSnake.ts +43 -43
  604. package/src/internal/{_miscCloneAny.ts → _plainCloneAny.ts} +46 -46
  605. package/src/llm.ts +480 -480
  606. package/src/module.ts +913 -811
  607. package/src/notations.ts +828 -624
  608. package/src/{misc.ts → plain.ts} +593 -448
  609. package/src/re-exports.ts +37 -34
  610. package/src/reflect.ts +98 -75
  611. package/src/transform.ts +19 -60
  612. package/lib/_virtual/_miscCloneAny.mjs +0 -4
  613. package/lib/_virtual/_miscCloneAny.mjs.map +0 -1
  614. package/lib/_virtual/misc.mjs +0 -4
  615. package/lib/_virtual/misc.mjs.map +0 -1
  616. package/lib/internal/_miscCloneAny.d.ts +0 -2
  617. package/lib/internal/_miscCloneAny.js.map +0 -1
  618. package/lib/internal/_miscCloneAny.mjs +0 -3
  619. package/lib/internal/_miscCloneAny.mjs.map +0 -1
  620. package/lib/internal/_miscCloneAny2.mjs.map +0 -1
  621. package/lib/misc.js.map +0 -1
  622. package/lib/misc.mjs +0 -3
  623. package/lib/misc.mjs.map +0 -1
  624. package/lib/misc2.mjs +0 -94
  625. package/lib/misc2.mjs.map +0 -1
  626. package/native/core/programmers/misc/index.go +0 -1
  627. package/native/go.work.sum +0 -6
  628. package/native/transform/features/misc/MiscAssertCloneTransformer.go +0 -22
  629. package/native/transform/features/misc/MiscAssertPruneTransformer.go +0 -22
  630. package/native/transform/features/misc/MiscCloneTransformer.go +0 -22
  631. package/native/transform/features/misc/MiscCreateAssertCloneTransformer.go +0 -22
  632. package/native/transform/features/misc/MiscCreateAssertPruneTransformer.go +0 -22
  633. package/native/transform/features/misc/MiscCreateCloneTransformer.go +0 -22
  634. package/native/transform/features/misc/MiscCreateIsCloneTransformer.go +0 -22
  635. package/native/transform/features/misc/MiscCreateIsPruneTransformer.go +0 -22
  636. package/native/transform/features/misc/MiscCreatePruneTransformer.go +0 -22
  637. package/native/transform/features/misc/MiscCreateValidateCloneTransformer.go +0 -22
  638. package/native/transform/features/misc/MiscCreateValidatePruneTransformer.go +0 -22
  639. package/native/transform/features/misc/MiscIsCloneTransformer.go +0 -22
  640. package/native/transform/features/misc/MiscIsPruneTransformer.go +0 -22
  641. package/native/transform/features/misc/MiscPruneTransformer.go +0 -22
  642. package/native/transform/features/misc/MiscValidateCloneTransformer.go +0 -22
  643. package/native/transform/features/misc/MiscValidatePruneTransformer.go +0 -22
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2022 Jeongho Nam
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2022 Jeongho Nam
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,171 +1,171 @@
1
- # Typia
2
-
3
- ![Typia Logo](https://typia.io/logo.png)
4
-
5
- [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/typia/blob/master/LICENSE)
6
- [![NPM Version](https://img.shields.io/npm/v/typia.svg)](https://www.npmjs.com/package/typia)
7
- [![NPM Downloads](https://img.shields.io/npm/dm/typia.svg)](https://www.npmjs.com/package/typia)
8
- [![Build Status](https://github.com/samchon/typia/workflows/test/badge.svg)](https://github.com/samchon/typia/actions?query=workflow%3Atest)
9
- [![Guide Documents](https://img.shields.io/badge/Guide-Documents-forestgreen)](https://typia.io/docs/)
10
- [![Discord Badge](https://img.shields.io/badge/discord-samchon-d91965?style=flat&labelColor=5866f2&logo=discord&logoColor=white&link=https://discord.gg/E94XhzrUCZ)](https://discord.gg/E94XhzrUCZ)
11
-
12
- ```typescript
13
- // RUNTIME VALIDATORS
14
- export function is<T>(input: unknown): input is T; // returns boolean
15
- export function assert<T>(input: unknown): T; // throws TypeGuardError
16
- export function assertGuard<T>(input: unknown): asserts input is T;
17
- export function validate<T>(input: unknown): IValidation<T>; // detailed
18
-
19
- // JSON FUNCTIONS
20
- export namespace json {
21
- export function schema<T>(): IJsonSchemaUnit<T>; // JSON schema
22
- export function assertParse<T>(input: string): T; // type safe parser
23
- export function assertStringify<T>(input: T): string; // safe and faster
24
- }
25
-
26
- // AI FUNCTION CALLING HARNESS
27
- export namespace llm {
28
- // collection of function calling schemas + validators/parsers
29
- export function application<Class>(): ILlmApplication<Class>;
30
- export function structuredOutput<P>(): ILlmStructuredOutput;
31
- // lenient json parser + type coercion
32
- export function parse<T>(str: string): T;
33
- }
34
-
35
- // PROTOCOL BUFFER
36
- export namespace protobuf {
37
- export function message<T>(): string; // Protocol Buffer message
38
- export function assertDecode<T>(buffer: Uint8Array): T; // safe decoder
39
- export function assertEncode<T>(input: T): Uint8Array; // safe encoder
40
- }
41
-
42
- // RANDOM GENERATOR
43
- export function random<T>(g?: Partial<IRandomGenerator>): T;
44
- ```
45
-
46
- `typia` is a transformer library supporting below features:
47
-
48
- - Super-fast Runtime Validators
49
- - Enhanced JSON schema and serde functions
50
- - LLM function calling harness
51
- - Protocol Buffer encoder and decoder
52
- - Random data generator
53
-
54
- > [!NOTE]
55
- >
56
- > - **Only one line** required, with pure TypeScript type
57
- > - Runtime validator is **20,000x faster** than `class-validator`
58
- > - JSON serialization is **200x faster** than `class-transformer`
59
- > - LLM function calling harness turns **6.75% → 100%** accuracy
60
-
61
- <!--
62
- ## Setup
63
-
64
- Install `typia@next` with the [`ttsc`](https://github.com/samchon/ttsc) toolchain.
65
-
66
- ```bash
67
- # install
68
- npm i typia@next
69
- npm i -D ttsc @typescript/native-preview
70
-
71
- # build
72
- npx ttsc
73
-
74
- # run a script directly
75
- npx ttsx src/index.ts
76
- ```
77
-
78
- You **must** use `ttsc` and `ttsx`. The stock `tsc`, `ts-node`, and `tsx` cannot apply the `typia` transform, so they will not work.
79
-
80
- For bundler integration (Vite, Next.js, Webpack, Rollup, esbuild, ...), use [`@ttsc/unplugin`](https://github.com/samchon/ttsc/tree/master/packages/unplugin).
81
- -->
82
-
83
- ## Transformation
84
-
85
- If you call `typia` function, it would be compiled like below.
86
-
87
- This is the key concept of `typia`, transforming TypeScript type to a runtime function. The `typia.is<T>()` function is transformed to a dedicated type checker by analyzing the target type `T` in the compilation level.
88
-
89
- This feature enables developers to ensure type safety in their applications, leveraging TypeScript's static typing while also providing runtime validation. Instead of defining additional schemas, you can simply utilize the pure TypeScript type itself.
90
-
91
- ```typescript
92
- //----
93
- // examples/checkString.ts
94
- //----
95
- import typia, { tags } from "typia";
96
- export const checkString = typia.createIs<string>();
97
-
98
- //----
99
- // examples/checkString.js
100
- //----
101
- import typia from "typia";
102
- export const checkString = (() => {
103
- return (input) => "string" === typeof input;
104
- })();
105
- ```
106
-
107
- ## Sponsors
108
-
109
- [![Backers](https://opencollective.com/typia/backers.svg?avatarHeight=75&width=600)](https://opencollective.com/typia)
110
-
111
- Thanks for your support.
112
-
113
- Your [donation](https://opencollective.com/typia) encourages `typia` development.
114
-
115
- ## Playground
116
-
117
- You can experience how typia works by [playground website](https://typia.io/playground):
118
-
119
- - 💻 https://typia.io/playground
120
-
121
- ## Guide Documents
122
-
123
- Check out the document in the [website](https://typia.io/docs/):
124
-
125
- ### 🏠 Home
126
-
127
- - [Introduction](https://typia.io/docs/)
128
- - [Setup](https://typia.io/docs/setup/)
129
- - [Legacy (TypeScript v6)](https://typia.io/docs/setup/legacy)
130
- - [TSGO (TypeScript v7)](https://typia.io/docs/setup/tsgo)
131
- - [Pure TypeScript](https://typia.io/docs/pure/)
132
-
133
- ### 📖 Features
134
-
135
- - Runtime Validators
136
- - [`assert()` function](https://typia.io/docs/validators/assert/)
137
- - [`is()` function](https://typia.io/docs/validators/is/)
138
- - [`validate()` function](https://typia.io/docs/validators/validate/)
139
- - [Functional Module](https://typia.io/docs/validators/functional)
140
- - [Special Tags](https://typia.io/docs/validators/tags/)
141
- - Enhanced JSON
142
- - [JSON Schema](https://typia.io/docs/json/schema/)
143
- - [`stringify()` functions](https://typia.io/docs/json/stringify/)
144
- - [`parse()` functions](https://typia.io/docs/json/parse/)
145
- - LLM Function Calling Harness
146
- - [`application()` function](https://typia.io/docs/llm/application/)
147
- - [`structuredOutput()` function](https://typia.io/docs/llm/structuredOutput/)
148
- - [`HttpLlm` module](https://typia.io/docs/llm/http/)
149
- - [`LlmJson` module](https://typia.io/docs/llm/json/)
150
- - Protocol Buffer
151
- - [Message Schema](https://typia.io/docs/protobuf/message)
152
- - [`decode()` functions](https://typia.io/docs/protobuf/decode/)
153
- - [`encode()` functions](https://typia.io/docs/protobuf/encode/)
154
- - [Random Generator](https://typia.io/docs/random/)
155
- - [Miscellaneous](https://typia.io/docs/misc/)
156
-
157
- ### 🔗 Appendix
158
-
159
- - [API Documents](https://typia.io/api)
160
- - Utilization Cases
161
- - [MCP](https://typia.io/docs/utilization/mcp/)
162
- - [Vercel AI SDK](https://typia.io/docs/utilization/vercel/)
163
- - [LangChain](https://typia.io/docs/utilization/langchain/)
164
- - [NestJS](https://typia.io/docs/utilization/nestjs/)
165
- - [tRPC](https://typia.io/docs/utilization/trpc/)
166
- - [⇲ Benchmark Result](https://github.com/samchon/typia/tree/master/benchmark/results/11th%20Gen%20Intel(R)%20Core(TM)%20i5-1135G7%20%40%202.40GHz)
167
- - [⇲ `dev.to` Articles](https://dev.to/samchon/series/22474)
168
-
169
- ## Inspired By
170
-
171
- - [`typescript-is`](https://github.com/woutervh-/typescript-is)
1
+ # Typia
2
+
3
+ ![Typia Logo](https://typia.io/logo.png)
4
+
5
+ [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/typia/blob/master/LICENSE)
6
+ [![NPM Version](https://img.shields.io/npm/v/typia.svg)](https://www.npmjs.com/package/typia)
7
+ [![NPM Downloads](https://img.shields.io/npm/dm/typia.svg)](https://www.npmjs.com/package/typia)
8
+ [![Build Status](https://github.com/samchon/typia/workflows/test/badge.svg)](https://github.com/samchon/typia/actions?query=workflow%3Atest)
9
+ [![Guide Documents](https://img.shields.io/badge/Guide-Documents-forestgreen)](https://typia.io/docs/)
10
+ [![Discord Badge](https://img.shields.io/badge/discord-samchon-d91965?style=flat&labelColor=5866f2&logo=discord&logoColor=white&link=https://discord.gg/E94XhzrUCZ)](https://discord.gg/E94XhzrUCZ)
11
+
12
+ ```typescript
13
+ // RUNTIME VALIDATORS
14
+ export function is<T>(input: unknown): input is T; // returns boolean
15
+ export function assert<T>(input: unknown): T; // throws TypeGuardError
16
+ export function assertGuard<T>(input: unknown): asserts input is T;
17
+ export function validate<T>(input: unknown): IValidation<T>; // detailed
18
+
19
+ // JSON FUNCTIONS
20
+ export namespace json {
21
+ export function schema<T>(): IJsonSchemaUnit<T>; // JSON schema
22
+ export function assertParse<T>(input: string): T; // type safe parser
23
+ export function assertStringify<T>(input: T): string; // safe and faster
24
+ }
25
+
26
+ // AI FUNCTION CALLING HARNESS
27
+ export namespace llm {
28
+ // collection of function calling schemas + validators/parsers
29
+ export function application<Class>(): ILlmApplication<Class>;
30
+ export function structuredOutput<P>(): ILlmStructuredOutput;
31
+ // lenient json parser + type coercion
32
+ export function parse<T>(str: string): T;
33
+ }
34
+
35
+ // PROTOCOL BUFFER
36
+ export namespace protobuf {
37
+ export function message<T>(): string; // Protocol Buffer message
38
+ export function assertDecode<T>(buffer: Uint8Array): T; // safe decoder
39
+ export function assertEncode<T>(input: T): Uint8Array; // safe encoder
40
+ }
41
+
42
+ // RANDOM GENERATOR
43
+ export function random<T>(g?: Partial<IRandomGenerator>): T;
44
+ ```
45
+
46
+ `typia` is a transformer library supporting below features:
47
+
48
+ - Super-fast Runtime Validators
49
+ - Enhanced JSON schema and serde functions
50
+ - LLM function calling harness
51
+ - Protocol Buffer encoder and decoder
52
+ - Random data generator
53
+
54
+ > [!NOTE]
55
+ >
56
+ > - **Only one line** required, with pure TypeScript type
57
+ > - Runtime validator is **20,000x faster** than `class-validator`
58
+ > - JSON serialization is **200x faster** than `class-transformer`
59
+ > - LLM function calling harness turns **6.75% → 100%** accuracy
60
+
61
+ <!--
62
+ ## Setup
63
+
64
+ Install `typia@next` with the [`ttsc`](https://github.com/samchon/ttsc) toolchain.
65
+
66
+ ```bash
67
+ # install
68
+ npm i typia@next
69
+ npm i -D ttsc typescript@rc
70
+
71
+ # build
72
+ npx ttsc
73
+
74
+ # run a script directly
75
+ npx ttsx src/index.ts
76
+ ```
77
+
78
+ You **must** use `ttsc` and `ttsx`. The stock `tsc`, `ts-node`, and `tsx` cannot apply the `typia` transform, so they will not work.
79
+
80
+ For bundler integration (Vite, Next.js, Webpack, Rollup, esbuild, ...), use [`@ttsc/unplugin`](https://github.com/samchon/ttsc/tree/master/packages/unplugin).
81
+ -->
82
+
83
+ ## Transformation
84
+
85
+ If you call `typia` function, it would be compiled like below.
86
+
87
+ This is the key concept of `typia`, transforming TypeScript type to a runtime function. The `typia.is<T>()` function is transformed to a dedicated type checker by analyzing the target type `T` in the compilation level.
88
+
89
+ This feature enables developers to ensure type safety in their applications, leveraging TypeScript's static typing while also providing runtime validation. Instead of defining additional schemas, you can simply utilize the pure TypeScript type itself.
90
+
91
+ ```typescript
92
+ //----
93
+ // examples/checkString.ts
94
+ //----
95
+ import typia, { tags } from "typia";
96
+ export const checkString = typia.createIs<string>();
97
+
98
+ //----
99
+ // examples/checkString.js
100
+ //----
101
+ import typia from "typia";
102
+ export const checkString = (() => {
103
+ return (input) => "string" === typeof input;
104
+ })();
105
+ ```
106
+
107
+ ## Sponsors
108
+
109
+ [![Backers](https://opencollective.com/typia/backers.svg?avatarHeight=75&width=600)](https://opencollective.com/typia)
110
+
111
+ Thanks for your support.
112
+
113
+ Your [donation](https://opencollective.com/typia) encourages `typia` development.
114
+
115
+ ## Playground
116
+
117
+ You can experience how typia works by [playground website](https://typia.io/playground):
118
+
119
+ - 💻 https://typia.io/playground
120
+
121
+ ## Guide Documents
122
+
123
+ Check out the document in the [website](https://typia.io/docs/):
124
+
125
+ ### 🏠 Home
126
+
127
+ - [Introduction](https://typia.io/docs/)
128
+ - [Setup](https://typia.io/docs/setup/)
129
+ - [Legacy (TypeScript v6)](https://typia.io/docs/setup/legacy)
130
+ - [TSGO (TypeScript v7)](https://typia.io/docs/setup/tsgo)
131
+ - [Pure TypeScript](https://typia.io/docs/pure/)
132
+
133
+ ### 📖 Features
134
+
135
+ - Runtime Validators
136
+ - [`assert()` function](https://typia.io/docs/validators/assert/)
137
+ - [`is()` function](https://typia.io/docs/validators/is/)
138
+ - [`validate()` function](https://typia.io/docs/validators/validate/)
139
+ - [Functional Module](https://typia.io/docs/validators/functional)
140
+ - [Special Tags](https://typia.io/docs/validators/tags/)
141
+ - Enhanced JSON
142
+ - [JSON Schema](https://typia.io/docs/json/schema/)
143
+ - [`stringify()` functions](https://typia.io/docs/json/stringify/)
144
+ - [`parse()` functions](https://typia.io/docs/json/parse/)
145
+ - LLM Function Calling Harness
146
+ - [`application()` function](https://typia.io/docs/llm/application/)
147
+ - [`structuredOutput()` function](https://typia.io/docs/llm/structuredOutput/)
148
+ - [`HttpLlm` module](https://typia.io/docs/llm/http/)
149
+ - [`LlmJson` module](https://typia.io/docs/llm/json/)
150
+ - Protocol Buffer
151
+ - [Message Schema](https://typia.io/docs/protobuf/message)
152
+ - [`decode()` functions](https://typia.io/docs/protobuf/decode/)
153
+ - [`encode()` functions](https://typia.io/docs/protobuf/encode/)
154
+ - [Random Generator](https://typia.io/docs/random/)
155
+ - [Miscellaneous](https://typia.io/docs/misc/)
156
+
157
+ ### 🔗 Appendix
158
+
159
+ - [API Documents](https://typia.io/api)
160
+ - Utilization Cases
161
+ - [MCP](https://typia.io/docs/utilization/mcp/)
162
+ - [Vercel AI SDK](https://typia.io/docs/utilization/vercel/)
163
+ - [LangChain](https://typia.io/docs/utilization/langchain/)
164
+ - [NestJS](https://typia.io/docs/utilization/nestjs/)
165
+ - [tRPC](https://typia.io/docs/utilization/trpc/)
166
+ - [⇲ Benchmark Result](https://github.com/samchon/typia/tree/master/benchmark/results/11th%20Gen%20Intel(R)%20Core(TM)%20i5-1135G7%20%40%202.40GHz)
167
+ - [⇲ `dev.to` Articles](https://dev.to/samchon/series/22474)
168
+
169
+ ## Inspired By
170
+
171
+ - [`typescript-is`](https://github.com/woutervh-/typescript-is)
@@ -0,0 +1,4 @@
1
+ var _isTypeInt16 = {};
2
+
3
+ export { _isTypeInt16 as __exports };
4
+ //# sourceMappingURL=_isTypeInt16.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_isTypeInt16.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,4 @@
1
+ var _isTypeInt8 = {};
2
+
3
+ export { _isTypeInt8 as __exports };
4
+ //# sourceMappingURL=_isTypeInt8.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_isTypeInt8.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,4 @@
1
+ var _isTypeUint16 = {};
2
+
3
+ export { _isTypeUint16 as __exports };
4
+ //# sourceMappingURL=_isTypeUint16.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_isTypeUint16.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,4 @@
1
+ var _isTypeUint8 = {};
2
+
3
+ export { _isTypeUint8 as __exports };
4
+ //# sourceMappingURL=_isTypeUint8.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_isTypeUint8.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,4 @@
1
+ var _plainCloneAny = {};
2
+
3
+ export { _plainCloneAny as __exports };
4
+ //# sourceMappingURL=_plainCloneAny.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_plainCloneAny.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,4 @@
1
+ var compare = {};
2
+
3
+ export { compare as __exports };
4
+ //# sourceMappingURL=compare.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,4 @@
1
+ var plain = {};
2
+
3
+ export { plain as __exports };
4
+ //# sourceMappingURL=plain.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plain.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,95 @@
1
+ import { Atomic } from "@typia/interface";
2
+ export type Cover<T> = T extends Atomic.Type | null | undefined ? T : T extends (...args: any[]) => any ? T : T extends readonly (infer U)[] ? Cover<U>[] : T extends object ? {
3
+ [K in keyof T]?: Cover<T[K]>;
4
+ } : T;
5
+ /**
6
+ * Compares two values of type `T`.
7
+ *
8
+ * Performs a type-directed deep equality comparison. Object properties are
9
+ * compared by the declared structure of `T`; extra runtime properties are not
10
+ * part of the comparison. When `T` (or a nested object type) declares an
11
+ * `equals(y: T): boolean` method, that method is used instead of the structural
12
+ * comparison.
13
+ *
14
+ * @template T Type of values to compare
15
+ * @param x Left value
16
+ * @param y Right value
17
+ * @returns Whether both values are equal by structure
18
+ */
19
+ export declare function equals<T>(x: T, y: T): boolean;
20
+ /**
21
+ * Compares whether `x` covers the defined structure of `y`.
22
+ *
23
+ * Object properties whose value is `undefined` in `y` are ignored. Arrays and
24
+ * tuples still require identical lengths and compare element-by-element.
25
+ *
26
+ * @template T Type of value to compare
27
+ * @param x Full value
28
+ * @param y Partial value to match
29
+ * @returns Whether `x` covers `y`
30
+ */
31
+ export declare function cover<T>(x: T, y: Cover<T>): boolean;
32
+ /**
33
+ * Tests whether `x` precedes `y`.
34
+ *
35
+ * Performs a type-directed lexicographic comparison: the properties of `T` are
36
+ * walked in declaration order, depth-first, and the scalar leaves (`number` /
37
+ * `boolean` / `string` / `bigint`) are compared one by one. The result is
38
+ * decided by the first leaf where `x` and `y` differ; if every leaf is equal,
39
+ * the result is `false` (equal is not "less"). When `T` (or a nested object
40
+ * type) declares a `less(y: T): boolean` method, that method is used instead of
41
+ * the structural comparison.
42
+ *
43
+ * The ordering is total and deterministic, so it composes into an
44
+ * `Array.prototype.sort` comparator:
45
+ *
46
+ * ```ts
47
+ * const cmp = (a: T, b: T): number =>
48
+ * typia.compare.less(a, b) ? -1 : typia.compare.less(b, a) ? 1 : 0;
49
+ * ```
50
+ *
51
+ * @template T Type of values to compare
52
+ * @param x Left value
53
+ * @param y Right value
54
+ * @returns Whether `x` precedes `y`
55
+ */
56
+ export declare function less<T>(x: T, y: T): boolean;
57
+ /**
58
+ * Creates reusable {@link equals} function.
59
+ *
60
+ * @danger You must configure the generic argument `T`
61
+ */
62
+ export declare function createEquals(): never;
63
+ /**
64
+ * Creates reusable {@link equals} function.
65
+ *
66
+ * @template T Type of values to compare
67
+ * @returns Reusable equality function
68
+ */
69
+ export declare function createEquals<T>(): (x: T, y: T) => boolean;
70
+ /**
71
+ * Creates reusable {@link cover} function.
72
+ *
73
+ * @danger You must configure the generic argument `T`
74
+ */
75
+ export declare function createCover(): never;
76
+ /**
77
+ * Creates reusable {@link cover} function.
78
+ *
79
+ * @template T Type of value to compare
80
+ * @returns Reusable cover function
81
+ */
82
+ export declare function createCover<T>(): (x: T, y: Cover<T>) => boolean;
83
+ /**
84
+ * Creates reusable {@link less} function.
85
+ *
86
+ * @danger You must configure the generic argument `T`
87
+ */
88
+ export declare function createLess(): never;
89
+ /**
90
+ * Creates reusable {@link less} function.
91
+ *
92
+ * @template T Type of values to compare
93
+ * @returns Reusable ordering function
94
+ */
95
+ export declare function createLess<T>(): (x: T, y: T) => boolean;
package/lib/compare.js ADDED
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.equals = equals;
4
+ exports.cover = cover;
5
+ exports.less = less;
6
+ exports.createEquals = createEquals;
7
+ exports.createCover = createCover;
8
+ exports.createLess = createLess;
9
+ const NoTransformConfigurationError_1 = require("./transformers/NoTransformConfigurationError");
10
+ /** @internal */
11
+ function equals() {
12
+ (0, NoTransformConfigurationError_1.NoTransformConfigurationError)("compare.equals");
13
+ }
14
+ /** @internal */
15
+ function cover() {
16
+ (0, NoTransformConfigurationError_1.NoTransformConfigurationError)("compare.cover");
17
+ }
18
+ /** @internal */
19
+ function less() {
20
+ (0, NoTransformConfigurationError_1.NoTransformConfigurationError)("compare.less");
21
+ }
22
+ /** @internal */
23
+ function createEquals() {
24
+ (0, NoTransformConfigurationError_1.NoTransformConfigurationError)("compare.createEquals");
25
+ }
26
+ /** @internal */
27
+ function createCover() {
28
+ (0, NoTransformConfigurationError_1.NoTransformConfigurationError)("compare.createCover");
29
+ }
30
+ /** @internal */
31
+ function createLess() {
32
+ (0, NoTransformConfigurationError_1.NoTransformConfigurationError)("compare.createLess");
33
+ }
34
+ //# sourceMappingURL=compare.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare.js","sourceRoot":"","sources":["../src/compare.ts"],"names":[],"mappings":";;;;;;;;AASA,gGAA6F;AA+B7F,gBAAgB;AAChB;IACE,IAAA,6DAA6B,EAAC,gBAAgB,CAAC,CAAC;AAClD,CAAC;AAeD,gBAAgB;AAChB;IACE,IAAA,6DAA6B,EAAC,eAAe,CAAC,CAAC;AACjD,CAAC;AA+BD,gBAAgB;AAChB;IACE,IAAA,6DAA6B,EAAC,cAAc,CAAC,CAAC;AAChD,CAAC;AAoBD,gBAAgB;AAChB;IACE,IAAA,6DAA6B,EAAC,sBAAsB,CAAC,CAAC;AACxD,CAAC;AAiBD,gBAAgB;AAChB;IACE,IAAA,6DAA6B,EAAC,qBAAqB,CAAC,CAAC;AACvD,CAAC;AAiBD,gBAAgB;AAChB;IACE,IAAA,6DAA6B,EAAC,oBAAoB,CAAC,CAAC;AACtD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { cover, createCover, createEquals, createLess, equals, less } from './compare2.mjs';
2
+ export { __exports as default } from './_virtual/compare.mjs';
3
+ //# sourceMappingURL=compare.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,39 @@
1
+ import { __exports as compare } from './_virtual/compare.mjs';
2
+ import './transformers/NoTransformConfigurationError2.mjs';
3
+ import { __exports as NoTransformConfigurationError } from './_virtual/NoTransformConfigurationError.mjs';
4
+
5
+ Object.defineProperty(compare, "__esModule", { value: true });
6
+ var equals_1 = compare.equals = equals;
7
+ var cover_1 = compare.cover = cover;
8
+ var less_1 = compare.less = less;
9
+ var createEquals_1 = compare.createEquals = createEquals;
10
+ var createCover_1 = compare.createCover = createCover;
11
+ var createLess_1 = compare.createLess = createLess;
12
+ const NoTransformConfigurationError_1 = NoTransformConfigurationError;
13
+ /** @internal */
14
+ function equals() {
15
+ (0, NoTransformConfigurationError_1.NoTransformConfigurationError)("compare.equals");
16
+ }
17
+ /** @internal */
18
+ function cover() {
19
+ (0, NoTransformConfigurationError_1.NoTransformConfigurationError)("compare.cover");
20
+ }
21
+ /** @internal */
22
+ function less() {
23
+ (0, NoTransformConfigurationError_1.NoTransformConfigurationError)("compare.less");
24
+ }
25
+ /** @internal */
26
+ function createEquals() {
27
+ (0, NoTransformConfigurationError_1.NoTransformConfigurationError)("compare.createEquals");
28
+ }
29
+ /** @internal */
30
+ function createCover() {
31
+ (0, NoTransformConfigurationError_1.NoTransformConfigurationError)("compare.createCover");
32
+ }
33
+ /** @internal */
34
+ function createLess() {
35
+ (0, NoTransformConfigurationError_1.NoTransformConfigurationError)("compare.createLess");
36
+ }
37
+
38
+ export { cover_1 as cover, createCover_1 as createCover, createEquals_1 as createEquals, createLess_1 as createLess, compare as default, equals_1 as equals, less_1 as less };
39
+ //# sourceMappingURL=compare2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare2.mjs","sources":["compare.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.equals = equals;\nexports.cover = cover;\nexports.less = less;\nexports.createEquals = createEquals;\nexports.createCover = createCover;\nexports.createLess = createLess;\nconst NoTransformConfigurationError_1 = require(\"./transformers/NoTransformConfigurationError\");\n/** @internal */\nfunction equals() {\n (0, NoTransformConfigurationError_1.NoTransformConfigurationError)(\"compare.equals\");\n}\n/** @internal */\nfunction cover() {\n (0, NoTransformConfigurationError_1.NoTransformConfigurationError)(\"compare.cover\");\n}\n/** @internal */\nfunction less() {\n (0, NoTransformConfigurationError_1.NoTransformConfigurationError)(\"compare.less\");\n}\n/** @internal */\nfunction createEquals() {\n (0, NoTransformConfigurationError_1.NoTransformConfigurationError)(\"compare.createEquals\");\n}\n/** @internal */\nfunction createCover() {\n (0, NoTransformConfigurationError_1.NoTransformConfigurationError)(\"compare.createCover\");\n}\n/** @internal */\nfunction createLess() {\n (0, NoTransformConfigurationError_1.NoTransformConfigurationError)(\"compare.createLess\");\n}\n//# sourceMappingURL=compare.js.map"],"names":["require$$0"],"mappings":";;;;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,IAAA,QAAA,GAAA,OAAA,CAAA,MAAc,GAAG;AACjB,IAAA,OAAA,GAAA,OAAA,CAAA,KAAa,GAAG;AAChB,IAAA,MAAA,GAAA,OAAA,CAAA,IAAY,GAAG;AACf,IAAA,cAAA,GAAA,OAAA,CAAA,YAAoB,GAAG;AACvB,IAAA,aAAA,GAAA,OAAA,CAAA,WAAmB,GAAG;AACtB,IAAA,YAAA,GAAA,OAAA,CAAA,UAAkB,GAAG;AACrB,MAAM,+BAA+B,GAAGA,6BAAuD;AAC/F;AACA,SAAS,MAAM,GAAG;AAClB,IAAI,IAAI,+BAA+B,CAAC,6BAA6B,EAAE,gBAAgB,CAAC;AACxF;AACA;AACA,SAAS,KAAK,GAAG;AACjB,IAAI,IAAI,+BAA+B,CAAC,6BAA6B,EAAE,eAAe,CAAC;AACvF;AACA;AACA,SAAS,IAAI,GAAG;AAChB,IAAI,IAAI,+BAA+B,CAAC,6BAA6B,EAAE,cAAc,CAAC;AACtF;AACA;AACA,SAAS,YAAY,GAAG;AACxB,IAAI,IAAI,+BAA+B,CAAC,6BAA6B,EAAE,sBAAsB,CAAC;AAC9F;AACA;AACA,SAAS,WAAW,GAAG;AACvB,IAAI,IAAI,+BAA+B,CAAC,6BAA6B,EAAE,qBAAqB,CAAC;AAC7F;AACA;AACA,SAAS,UAAU,GAAG;AACtB,IAAI,IAAI,+BAA+B,CAAC,6BAA6B,EAAE,oBAAoB,CAAC;AAC5F;;;;"}