typia 13.0.1-dev.20260703.1 → 13.0.2

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