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,1448 +1,1448 @@
1
- package programmers
2
-
3
- import (
4
- "fmt"
5
- "math"
6
- "reflect"
7
- "sort"
8
- "strconv"
9
- "strings"
10
-
11
- shimast "github.com/microsoft/typescript-go/shim/ast"
12
- shimchecker "github.com/microsoft/typescript-go/shim/checker"
13
- shimprinter "github.com/microsoft/typescript-go/shim/printer"
14
- nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
15
- nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
16
- nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
17
- nativeinternal "github.com/samchon/typia/packages/typia/native/core/programmers/internal"
18
- nativeiterate "github.com/samchon/typia/packages/typia/native/core/programmers/iterate"
19
- schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
20
- )
21
-
22
- type randomProgrammerNamespace struct{}
23
-
24
- var RandomProgrammer = randomProgrammerNamespace{}
25
-
26
- type RandomProgrammer_IProps struct {
27
- Context nativecontext.ITypiaContext
28
- Modulo *shimast.Node
29
- Type *shimchecker.Type
30
- Name *string
31
- Init *shimast.Node
32
- }
33
-
34
- type RandomProgrammer_IDecomposeProps struct {
35
- Context nativecontext.ITypiaContext
36
- Functor *nativehelpers.FunctionProgrammer
37
- Type *shimchecker.Type
38
- Name *string
39
- Init *shimast.Node
40
- }
41
-
42
- type randomProgrammer_IExplore struct {
43
- Function bool
44
- Recursive bool
45
- Object *schemametadata.MetadataObjectType
46
- Tuple *schemametadata.MetadataTupleType
47
- }
48
-
49
- type randomProgrammer_decodeProps struct {
50
- Context nativecontext.ITypiaContext
51
- Functor *nativehelpers.FunctionProgrammer
52
- Explore randomProgrammer_IExplore
53
- Metadata *schemametadata.MetadataSchema
54
- }
55
-
56
- type randomProgrammer_decodeAtomicProps struct {
57
- Context nativecontext.ITypiaContext
58
- Atomic *schemametadata.MetadataAtomic
59
- }
60
-
61
- type randomProgrammer_decodeArrayProps struct {
62
- Context nativecontext.ITypiaContext
63
- Functor *nativehelpers.FunctionProgrammer
64
- Explore randomProgrammer_IExplore
65
- Array *schemametadata.MetadataArray
66
- }
67
-
68
- type randomProgrammer_decodeTupleProps struct {
69
- Context nativecontext.ITypiaContext
70
- Functor *nativehelpers.FunctionProgrammer
71
- Explore randomProgrammer_IExplore
72
- Tuple *schemametadata.MetadataTuple
73
- }
74
-
75
- type randomProgrammer_decodeObjectProps struct {
76
- Functor *nativehelpers.FunctionProgrammer
77
- Explore randomProgrammer_IExplore
78
- Object *schemametadata.MetadataObjectType
79
- Emit *shimprinter.EmitContext
80
- }
81
-
82
- const (
83
- randomProgrammer_PREFIX_OBJECT = "_ro"
84
- randomProgrammer_PREFIX_ARRAY = "_ra"
85
- randomProgrammer_PREFIX_TUPLE = "_rt"
86
- )
87
-
88
- var randomProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
89
-
90
- func (randomProgrammerNamespace) Decompose(props RandomProgrammer_IDecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
91
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
92
- collection := schemametadata.NewMetadataCollection()
93
- result := nativefactories.MetadataFactory.Analyze(nativefactories.MetadataFactory_IProps{
94
- Checker: props.Context.Checker,
95
- Options: nativefactories.MetadataFactory_IOptions{
96
- Escape: false,
97
- Constant: true,
98
- Absorb: true,
99
- Validate: RandomProgrammer.Validate,
100
- },
101
- Components: collection,
102
- Type: props.Type,
103
- })
104
- if result.Success == false {
105
- panic(nativecontext.TransformerError_from(struct {
106
- Code string
107
- Errors []nativecontext.TransformerError_MetadataFactory_IError
108
- }{
109
- Code: props.Functor.Method,
110
- Errors: randomProgrammer_errors(result.Errors),
111
- }))
112
- }
113
- functions := map[string]*shimast.Node{}
114
- for i, stmt := range randomProgrammer_write_object_functions(struct {
115
- Context nativecontext.ITypiaContext
116
- Functor *nativehelpers.FunctionProgrammer
117
- Collection *schemametadata.MetadataCollection
118
- }{Context: props.Context, Functor: props.Functor, Collection: collection}) {
119
- functions[randomProgrammer_prefix_object(i)] = stmt
120
- }
121
- for i, stmt := range randomProgrammer_write_array_functions(struct {
122
- Context nativecontext.ITypiaContext
123
- Functor *nativehelpers.FunctionProgrammer
124
- Collection *schemametadata.MetadataCollection
125
- }{Context: props.Context, Functor: props.Functor, Collection: collection}) {
126
- functions[randomProgrammer_prefix_array(i)] = stmt
127
- }
128
- for i, stmt := range randomProgrammer_write_tuple_functions(struct {
129
- Context nativecontext.ITypiaContext
130
- Functor *nativehelpers.FunctionProgrammer
131
- Collection *schemametadata.MetadataCollection
132
- }{Context: props.Context, Functor: props.Functor, Collection: collection}) {
133
- functions[randomProgrammer_prefix_tuple(i)] = stmt
134
- }
135
-
136
- randomGeneratorType := f.NewTypeReferenceNode(
137
- f.NewIdentifier("Partial"),
138
- f.NewNodeList([]*shimast.Node{
139
- randomProgrammer_import_type(props.Context, nativecontext.ImportProgrammer_TypeProps{
140
- File: "typia",
141
- Name: "IRandomGenerator",
142
- }),
143
- }),
144
- )
145
- init := props.Init
146
- if init == nil {
147
- init = f.NewToken(shimast.KindQuestionToken)
148
- }
149
- resolvedType := randomProgrammer_import_type(props.Context, nativecontext.ImportProgrammer_TypeProps{
150
- File: "typia",
151
- Name: "Resolved",
152
- Arguments: []*shimast.TypeNode{
153
- randomProgrammer_type_reference(props.Context, props.Type, props.Name),
154
- },
155
- })
156
- return nativeinternal.FeatureProgrammer_IDecomposed{
157
- Functions: functions,
158
- Statements: []*shimast.Node{
159
- nativefactories.StatementFactory.Mut(nativefactories.StatementFactory_MutProps{
160
- Name: "_generator",
161
- Type: f.NewUnionTypeNode(f.NewNodeList([]*shimast.Node{
162
- randomGeneratorType,
163
- f.NewTypeReferenceNode(f.NewIdentifier("undefined"), nil),
164
- })),
165
- }, props.Context.Emit),
166
- },
167
- Arrow: f.NewArrowFunction(
168
- nil,
169
- nil,
170
- f.NewNodeList([]*shimast.Node{
171
- nativefactories.IdentifierFactory.Parameter("generator", randomGeneratorType, init, props.Context.Emit),
172
- }),
173
- resolvedType,
174
- nil,
175
- f.NewToken(shimast.KindEqualsGreaterThanToken),
176
- f.NewBlock(f.NewNodeList([]*shimast.Node{
177
- f.NewExpressionStatement(f.NewBinaryExpression(
178
- nil,
179
- f.NewIdentifier("_generator"),
180
- nil,
181
- f.NewToken(shimast.KindEqualsToken),
182
- f.NewIdentifier("generator"),
183
- )),
184
- f.NewReturnStatement(randomProgrammer_decode(randomProgrammer_decodeProps{
185
- Context: props.Context,
186
- Functor: props.Functor,
187
- Explore: randomProgrammer_IExplore{
188
- Function: false,
189
- Recursive: false,
190
- },
191
- Metadata: result.Data,
192
- })),
193
- }), true),
194
- ),
195
- }
196
- }
197
-
198
- func (randomProgrammerNamespace) Write(props RandomProgrammer_IProps) *shimast.Node {
199
- functor := nativehelpers.NewFunctionProgrammer(randomProgrammer_method_text(props.Modulo), props.Context.Emit)
200
- result := RandomProgrammer.Decompose(RandomProgrammer_IDecomposeProps{
201
- Context: props.Context,
202
- Functor: functor,
203
- Type: props.Type,
204
- Name: props.Name,
205
- Init: props.Init,
206
- })
207
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
208
- Modulo: props.Modulo,
209
- Functor: functor,
210
- Result: result,
211
- })
212
- }
213
-
214
- func (randomProgrammerNamespace) Validate(props struct {
215
- Metadata *schemametadata.MetadataSchema
216
- Explore nativefactories.MetadataFactory_IExplore
217
- Top *schemametadata.MetadataSchema
218
- }) []string {
219
- output := []string{}
220
- for _, native := range props.Metadata.Natives {
221
- if native.Name == "WeakSet" {
222
- output = append(output, "WeakSet is not supported.")
223
- break
224
- }
225
- if native.Name == "WeakMap" {
226
- output = append(output, "WeakMap is not supported.")
227
- break
228
- }
229
- }
230
- return output
231
- }
232
-
233
- func randomProgrammer_find_positive_min_items(tags [][]schemametadata.IMetadataTypeTag) *schemametadata.IMetadataTypeTag {
234
- for _, row := range tags {
235
- for _, tag := range row {
236
- if tag.Kind == "minItems" && randomProgrammer_is_positive_min_items_tag(tag) {
237
- copied := tag
238
- return &copied
239
- }
240
- }
241
- }
242
- return nil
243
- }
244
-
245
- func randomProgrammer_is_positive_min_items_tag(tag schemametadata.IMetadataTypeTag) bool {
246
- if randomProgrammer_is_positive_numeric(tag.Value) {
247
- return true
248
- }
249
- if schema, ok := tag.Schema.(map[string]any); ok {
250
- return randomProgrammer_is_positive_numeric(schema["minItems"])
251
- }
252
- return false
253
- }
254
-
255
- func randomProgrammer_is_positive_numeric(value any) bool {
256
- if value == nil {
257
- return false
258
- }
259
- rv := reflect.ValueOf(value)
260
- switch rv.Kind() {
261
- case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
262
- return rv.Int() > 0
263
- case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
264
- return rv.Uint() > 0
265
- case reflect.Float32, reflect.Float64:
266
- return rv.Float() > 0
267
- case reflect.String:
268
- parsed, err := strconv.ParseFloat(rv.String(), 64)
269
- return err == nil && parsed > 0
270
- default:
271
- return false
272
- }
273
- }
274
-
275
- func randomProgrammer_write_object_functions(props struct {
276
- Context nativecontext.ITypiaContext
277
- Functor *nativehelpers.FunctionProgrammer
278
- Collection *schemametadata.MetadataCollection
279
- }) []*shimast.Node {
280
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
281
- output := []*shimast.Node{}
282
- unsatisfiableObjects, _ := nativehelpers.RandomJoiner.UnsatisfiableRecursives(props.Collection.Objects(), props.Collection.Tuples())
283
- for i, obj := range props.Collection.Objects() {
284
- index := i
285
- object := obj
286
- if object.Recursive && unsatisfiableObjects[object] {
287
- panic(nativecontext.NewTransformerError(nativecontext.TransformerError_IProps{
288
- Code: props.Functor.Method,
289
- Message: fmt.Sprintf("recursive type %q cannot be randomly generated because the recursion never terminates; give it a nullable, optional, or array/set/map escape.", object.Name),
290
- }))
291
- }
292
- output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
293
- Name: randomProgrammer_prefix_object(index),
294
- Value: f.NewArrowFunction(
295
- nil,
296
- nil,
297
- f.NewNodeList([]*shimast.Node{
298
- nativefactories.IdentifierFactory.Parameter("_recursive", nativefactories.TypeFactory.Keyword("boolean", props.Context.Emit), f.NewIdentifier(fmt.Sprint(object.Recursive)), props.Context.Emit),
299
- nativefactories.IdentifierFactory.Parameter("_depth", nativefactories.TypeFactory.Keyword("number", props.Context.Emit), nativefactories.ExpressionFactory.Number(0, props.Context.Emit), props.Context.Emit),
300
- }),
301
- nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
302
- nil,
303
- f.NewToken(shimast.KindEqualsGreaterThanToken),
304
- nativehelpers.RandomJoiner.Object(nativehelpers.RandomJoiner_ObjectProps{
305
- Decode: func(metadata *schemametadata.MetadataSchema) *shimast.Node {
306
- return randomProgrammer_decode(randomProgrammer_decodeProps{
307
- Context: props.Context,
308
- Functor: props.Functor,
309
- Explore: randomProgrammer_IExplore{
310
- Recursive: object.Recursive,
311
- Function: true,
312
- Object: object,
313
- },
314
- Metadata: metadata,
315
- })
316
- },
317
- StrictOptionalUndefined: func(metadata *schemametadata.MetadataSchema) bool {
318
- return nativehelpers.OptionPredicator.StrictOptionalUndefined(props.Context, metadata)
319
- },
320
- OptionalProperty: func(metadata *schemametadata.MetadataSchema) bool {
321
- return nativehelpers.OptionPredicator.ExactOptionalProperty(props.Context, metadata)
322
- },
323
- Optional: func() *shimast.Node {
324
- return f.NewCallExpression(
325
- randomProgrammer_coalesce(props.Context, "boolean", "randomBoolean"),
326
- nil,
327
- nil,
328
- nil,
329
- shimast.NodeFlagsNone,
330
- )
331
- },
332
- Object: object,
333
- Emit: props.Context.Emit,
334
- }),
335
- ),
336
- }, props.Context.Emit))
337
- }
338
- return output
339
- }
340
-
341
- func randomProgrammer_write_array_functions(props struct {
342
- Context nativecontext.ITypiaContext
343
- Functor *nativehelpers.FunctionProgrammer
344
- Collection *schemametadata.MetadataCollection
345
- }) []*shimast.Node {
346
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
347
- output := []*shimast.Node{}
348
- for i, array := range props.Collection.Arrays() {
349
- if array.Recursive == false {
350
- continue
351
- }
352
- index := i
353
- array := array
354
- output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
355
- Name: randomProgrammer_prefix_array(index),
356
- Value: f.NewArrowFunction(
357
- nil,
358
- nil,
359
- f.NewNodeList([]*shimast.Node{
360
- nativefactories.IdentifierFactory.Parameter("_schema", nativefactories.TypeFactory.Keyword("any", props.Context.Emit), nil, props.Context.Emit),
361
- nativefactories.IdentifierFactory.Parameter("_recursive", nativefactories.TypeFactory.Keyword("boolean", props.Context.Emit), f.NewKeywordExpression(shimast.KindTrueKeyword), props.Context.Emit),
362
- nativefactories.IdentifierFactory.Parameter("_depth", nativefactories.TypeFactory.Keyword("number", props.Context.Emit), nativefactories.ExpressionFactory.Number(0, props.Context.Emit), props.Context.Emit),
363
- }),
364
- nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
365
- nil,
366
- f.NewToken(shimast.KindEqualsGreaterThanToken),
367
- nativehelpers.RandomJoiner.Array(nativehelpers.RandomJoiner_ArrayProps{
368
- Decode: func(metadata *schemametadata.MetadataSchema) *shimast.Node {
369
- return randomProgrammer_decode(randomProgrammer_decodeProps{
370
- Context: props.Context,
371
- Functor: props.Functor,
372
- Explore: randomProgrammer_IExplore{
373
- Recursive: true,
374
- Function: true,
375
- },
376
- Metadata: metadata,
377
- })
378
- },
379
- Recursive: true,
380
- Expression: randomProgrammer_coalesce(props.Context, "array", "randomArray"),
381
- Array: array,
382
- Schema: nil,
383
- Emit: props.Context.Emit,
384
- }),
385
- ),
386
- }, props.Context.Emit))
387
- }
388
- return output
389
- }
390
-
391
- func randomProgrammer_write_tuple_functions(props struct {
392
- Context nativecontext.ITypiaContext
393
- Functor *nativehelpers.FunctionProgrammer
394
- Collection *schemametadata.MetadataCollection
395
- }) []*shimast.Node {
396
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
397
- output := []*shimast.Node{}
398
- _, unsatisfiableTuples := nativehelpers.RandomJoiner.UnsatisfiableRecursives(props.Collection.Objects(), props.Collection.Tuples())
399
- for i, tuple := range props.Collection.Tuples() {
400
- if tuple.Recursive == false {
401
- continue
402
- }
403
- index := i
404
- tuple := tuple
405
- if unsatisfiableTuples[tuple] {
406
- panic(nativecontext.NewTransformerError(nativecontext.TransformerError_IProps{
407
- Code: props.Functor.Method,
408
- Message: fmt.Sprintf("recursive type %q cannot be randomly generated because the recursion never terminates; give it a nullable, optional, or array/set/map escape.", tuple.Name),
409
- }))
410
- }
411
- output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
412
- Name: randomProgrammer_prefix_tuple(index),
413
- Value: f.NewArrowFunction(
414
- nil,
415
- nil,
416
- f.NewNodeList([]*shimast.Node{
417
- nativefactories.IdentifierFactory.Parameter("_recursive", nativefactories.TypeFactory.Keyword("boolean", props.Context.Emit), f.NewKeywordExpression(shimast.KindTrueKeyword), props.Context.Emit),
418
- nativefactories.IdentifierFactory.Parameter("_depth", nativefactories.TypeFactory.Keyword("number", props.Context.Emit), nativefactories.ExpressionFactory.Number(0, props.Context.Emit), props.Context.Emit),
419
- }),
420
- nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
421
- nil,
422
- f.NewToken(shimast.KindEqualsGreaterThanToken),
423
- nativehelpers.RandomJoiner.Tuple(nativehelpers.RandomJoiner_TupleProps{
424
- Decode: func(metadata *schemametadata.MetadataSchema) *shimast.Node {
425
- return randomProgrammer_decode(randomProgrammer_decodeProps{
426
- Context: props.Context,
427
- Functor: props.Functor,
428
- Explore: randomProgrammer_IExplore{
429
- Function: true,
430
- Recursive: true,
431
- Tuple: tuple,
432
- },
433
- Metadata: metadata,
434
- })
435
- },
436
- Elements: tuple.Elements,
437
- ArrayExpression: randomProgrammer_coalesce(props.Context, "array", "randomArray"),
438
- HasDepth: true,
439
- Emit: props.Context.Emit,
440
- }),
441
- ),
442
- }, props.Context.Emit))
443
- }
444
- return output
445
- }
446
-
447
- func randomProgrammer_decode(props randomProgrammer_decodeProps) *shimast.Node {
448
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
449
- expressions := []*shimast.Node{}
450
- if props.Metadata.Any {
451
- expressions = append(expressions, f.NewStringLiteral("any type used...", shimast.TokenFlagsNone))
452
- }
453
- if props.Metadata.IsRequired() == false || len(props.Metadata.Functions) != 0 {
454
- expressions = append(expressions, f.NewIdentifier("undefined"))
455
- }
456
- if props.Metadata.Nullable {
457
- expressions = append(expressions, f.NewKeywordExpression(shimast.KindNullKeyword))
458
- }
459
- for _, constant := range props.Metadata.Constants {
460
- for _, value := range constant.Values {
461
- if constant.Type == "boolean" {
462
- if truthy, _ := value.Value.(bool); truthy {
463
- expressions = append(expressions, f.NewKeywordExpression(shimast.KindTrueKeyword))
464
- } else {
465
- expressions = append(expressions, f.NewKeywordExpression(shimast.KindFalseKeyword))
466
- }
467
- } else if constant.Type == "bigint" {
468
- expressions = append(expressions, nativefactories.ExpressionFactory.Bigint(value.Value, props.Context.Emit))
469
- } else if constant.Type == "number" {
470
- expressions = append(expressions, nativefactories.ExpressionFactory.Number(value.Value, props.Context.Emit))
471
- } else {
472
- expressions = append(expressions, f.NewStringLiteral(fmt.Sprint(value.Value), shimast.TokenFlagsNone))
473
- }
474
- }
475
- }
476
- for _, template := range props.Metadata.Templates {
477
- expressions = append(expressions, randomProgrammer_decode_template(struct {
478
- Context nativecontext.ITypiaContext
479
- Functor *nativehelpers.FunctionProgrammer
480
- Explore randomProgrammer_IExplore
481
- Template *schemametadata.MetadataTemplate
482
- }{
483
- Context: props.Context, Functor: props.Functor, Explore: props.Explore, Template: template,
484
- }))
485
- }
486
- for _, atomic := range props.Metadata.Atomics {
487
- expressions = append(expressions, randomProgrammer_decode_atomic(randomProgrammer_decodeAtomicProps{
488
- Context: props.Context,
489
- Atomic: atomic,
490
- })...)
491
- }
492
- if props.Metadata.Escaped != nil {
493
- next := props
494
- next.Metadata = props.Metadata.Escaped.Returns
495
- expressions = append(expressions, randomProgrammer_decode(next))
496
- }
497
- for _, array := range props.Metadata.Arrays {
498
- next := props
499
- expressions = append(expressions, randomProgrammer_decode_array(randomProgrammer_decodeArrayProps{
500
- Context: next.Context,
501
- Functor: next.Functor,
502
- Explore: next.Explore,
503
- Array: array,
504
- })...)
505
- }
506
- for _, tuple := range props.Metadata.Tuples {
507
- expressions = append(expressions, randomProgrammer_decode_tuple(randomProgrammer_decodeTupleProps{
508
- Context: props.Context,
509
- Functor: props.Functor,
510
- Explore: props.Explore,
511
- Tuple: tuple,
512
- }))
513
- }
514
- for _, object := range props.Metadata.Objects {
515
- expressions = append(expressions, randomProgrammer_decode_object(randomProgrammer_decodeObjectProps{
516
- Functor: props.Functor,
517
- Explore: props.Explore,
518
- Object: object.Type,
519
- Emit: props.Context.Emit,
520
- }))
521
- }
522
- for _, native := range props.Metadata.Natives {
523
- expressions = append(expressions, randomProgrammer_decode_native(struct {
524
- Context nativecontext.ITypiaContext
525
- Functor *nativehelpers.FunctionProgrammer
526
- Explore randomProgrammer_IExplore
527
- Name string
528
- }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: native.Name}))
529
- }
530
- for _, set := range props.Metadata.Sets {
531
- expressions = append(expressions, randomProgrammer_decode_set(struct {
532
- Context nativecontext.ITypiaContext
533
- Functor *nativehelpers.FunctionProgrammer
534
- Explore randomProgrammer_IExplore
535
- Set *schemametadata.MetadataSet
536
- }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Set: set}))
537
- }
538
- for _, entry := range props.Metadata.Maps {
539
- expressions = append(expressions, randomProgrammer_decode_map(struct {
540
- Context nativecontext.ITypiaContext
541
- Functor *nativehelpers.FunctionProgrammer
542
- Explore randomProgrammer_IExplore
543
- Map *schemametadata.MetadataMap
544
- }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Map: entry}))
545
- }
546
- if len(expressions) == 1 {
547
- return expressions[0]
548
- }
549
- pickers := make([]*shimast.Node, 0, len(expressions))
550
- for _, expr := range expressions {
551
- value := expr
552
- pickers = append(pickers, f.NewArrowFunction(
553
- nil,
554
- nil,
555
- f.NewNodeList(nil),
556
- nil,
557
- nil,
558
- f.NewToken(shimast.KindEqualsGreaterThanToken),
559
- value,
560
- ))
561
- }
562
- return f.NewCallExpression(
563
- f.NewCallExpression(
564
- randomProgrammer_internal(props.Context, "randomPick"),
565
- nil,
566
- nil,
567
- f.NewNodeList([]*shimast.Node{
568
- f.NewArrayLiteralExpression(f.NewNodeList(pickers), true),
569
- }),
570
- shimast.NodeFlagsNone,
571
- ),
572
- nil,
573
- nil,
574
- nil,
575
- shimast.NodeFlagsNone,
576
- )
577
- }
578
-
579
- func randomProgrammer_decode_atomic(props randomProgrammer_decodeAtomicProps) []*shimast.Node {
580
- var schemaList []nativeiterate.JsonSchema
581
- if props.Atomic.Type == "boolean" {
582
- schemaList = nativeiterate.Json_schema_boolean_export(props.Atomic)
583
- } else if props.Atomic.Type == "string" {
584
- schemaList = nativeiterate.Json_schema_string_export(props.Atomic)
585
- } else if props.Atomic.Type == "bigint" {
586
- schemaList = nativeiterate.Json_schema_bigint_export(props.Atomic)
587
- } else {
588
- schemaList = nativeiterate.Json_schema_number_export(props.Atomic)
589
- }
590
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
591
- output := make([]*shimast.Node, 0, len(schemaList))
592
- for _, schema := range schemaList {
593
- composed := randomProgrammer_compose_atomic(props.Atomic.Type, schema, props.Context.Emit)
594
- output = append(output, f.NewCallExpression(
595
- nativefactories.ExpressionFactory.Coalesce(
596
- nativefactories.IdentifierFactory.Access(props.Context.Emit, f.NewIdentifier("_generator"), composed.Method, true),
597
- randomProgrammer_internal(props.Context, composed.Internal),
598
- props.Context.Emit,
599
- ),
600
- nil,
601
- nil,
602
- f.NewNodeList(composed.Arguments),
603
- shimast.NodeFlagsNone,
604
- ))
605
- }
606
- return output
607
- }
608
-
609
- type randomProgrammer_composedAtomic struct {
610
- Method string
611
- Internal string
612
- Arguments []*shimast.Node
613
- }
614
-
615
- func randomProgrammer_compose_atomic(atomicType string, schema nativeiterate.JsonSchema, emit *shimprinter.EmitContext) randomProgrammer_composedAtomic {
616
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, emit)
617
- if atomicType == "string" {
618
- if raw, ok := schema["format"].(string); ok && raw != "" {
619
- if raw == "date-time" {
620
- return randomProgrammer_composedAtomic{Method: "datetime", Internal: "randomFormatDatetime"}
621
- }
622
- method := randomProgrammer_format_method(raw)
623
- return randomProgrammer_composedAtomic{
624
- Method: method,
625
- Internal: "randomFormat" + randomProgrammer_format_pascal(raw),
626
- }
627
- }
628
- if pattern, ok := schema["pattern"].(string); ok && pattern != "" {
629
- return randomProgrammer_composedAtomic{
630
- Method: "pattern",
631
- Internal: "randomPattern",
632
- Arguments: []*shimast.Node{
633
- f.NewNewExpression(
634
- f.NewIdentifier("RegExp"),
635
- nil,
636
- f.NewNodeList([]*shimast.Node{f.NewStringLiteral(pattern, shimast.TokenFlagsNone)}),
637
- ),
638
- },
639
- }
640
- }
641
- } else if atomicType == "number" {
642
- if typ, ok := schema["type"].(string); ok && typ == "integer" {
643
- return randomProgrammer_composedAtomic{
644
- Method: "integer",
645
- Internal: "randomInteger",
646
- Arguments: []*shimast.Node{nativefactories.LiteralFactory.Write(schema, emit)},
647
- }
648
- }
649
- } else if atomicType == "boolean" {
650
- return randomProgrammer_composedAtomic{
651
- Method: "boolean",
652
- Internal: "randomBoolean",
653
- }
654
- }
655
- return randomProgrammer_composedAtomic{
656
- Method: atomicType,
657
- Internal: "random" + randomProgrammer_capitalize(atomicType),
658
- Arguments: []*shimast.Node{nativefactories.LiteralFactory.Write(schema, emit)},
659
- }
660
- }
661
-
662
- func randomProgrammer_decode_template(props struct {
663
- Context nativecontext.ITypiaContext
664
- Functor *nativehelpers.FunctionProgrammer
665
- Explore randomProgrammer_IExplore
666
- Template *schemametadata.MetadataTemplate
667
- }) *shimast.Node {
668
- expressions := make([]*shimast.Expression, 0, len(props.Template.Row))
669
- for _, metadata := range props.Template.Row {
670
- expressions = append(expressions, randomProgrammer_decode(randomProgrammer_decodeProps{
671
- Context: props.Context,
672
- Functor: props.Functor,
673
- Explore: props.Explore,
674
- Metadata: metadata,
675
- }))
676
- }
677
- return nativefactories.TemplateFactory.Generate(expressions, props.Context.Emit)
678
- }
679
-
680
- func randomProgrammer_decode_array(props randomProgrammer_decodeArrayProps) []*shimast.Node {
681
- components := &nativeiterate.OpenApi_IComponents{}
682
- schemaList := nativeiterate.Json_schema_array_export(nativeiterate.Json_schema_array_export_props{
683
- Components: components,
684
- Array: props.Array,
685
- })
686
- schemaList = randomProgrammer_array_schema_list(props.Array, components, schemaList)
687
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
688
- output := make([]*shimast.Node, 0, len(schemaList))
689
- if props.Array.Type.Recursive {
690
- if tag := randomProgrammer_find_positive_min_items(props.Array.Tags); tag != nil {
691
- panic(nativecontext.NewTransformerError(nativecontext.TransformerError_IProps{
692
- Code: props.Functor.Method,
693
- Message: fmt.Sprintf("recursive array type cannot have %s.", tag.Name),
694
- }))
695
- }
696
- for _, schema := range schemaList {
697
- arguments := []*shimast.Node{
698
- randomProgrammer_schema_without_items(schema, props.Context.Emit),
699
- }
700
- if props.Explore.Function {
701
- recursive := f.NewIdentifier("_recursive")
702
- if props.Explore.Recursive {
703
- recursive = f.NewKeywordExpression(shimast.KindTrueKeyword)
704
- }
705
- depth := f.NewIdentifier("_depth")
706
- if props.Explore.Recursive {
707
- depth = f.NewBinaryExpression(
708
- nil,
709
- nativefactories.ExpressionFactory.Number(1, props.Context.Emit),
710
- nil,
711
- f.NewToken(shimast.KindPlusToken),
712
- f.NewIdentifier("_depth"),
713
- )
714
- }
715
- arguments = append(arguments, recursive, depth)
716
- }
717
- output = append(output, f.NewCallExpression(
718
- f.NewIdentifier(props.Functor.UseLocal(randomProgrammer_prefix_array(*props.Array.Type.Index))),
719
- nil,
720
- nil,
721
- f.NewNodeList(arguments),
722
- shimast.NodeFlagsNone,
723
- ))
724
- }
725
- return output
726
- }
727
- for _, schema := range schemaList {
728
- schema := schema
729
- guardProps := nativehelpers.RandomJoiner_RecursiveArrayGuardProps{
730
- Array: props.Array.Type,
731
- Object: props.Explore.Object,
732
- Tuple: props.Explore.Tuple,
733
- }
734
- requiredGuard := nativehelpers.RandomJoiner.RequiresRecursiveArrayGuardFor(guardProps)
735
- directOwnerPath := nativehelpers.RandomJoiner.HasDirectRecursiveOwnerPathFor(guardProps)
736
- positiveMinItems := randomProgrammer_find_positive_min_items(props.Array.Tags)
737
- if props.Explore.Recursive && positiveMinItems != nil && (requiredGuard || directOwnerPath) {
738
- panic(nativecontext.NewTransformerError(nativecontext.TransformerError_IProps{
739
- Code: props.Functor.Method,
740
- Message: fmt.Sprintf("recursive array type cannot have %s.", positiveMinItems.Name),
741
- }))
742
- }
743
- ownerPath := requiredGuard || nativehelpers.RandomJoiner.HasRecursiveOwnerPathFor(guardProps)
744
- guardRecursive := props.Explore.Recursive &&
745
- ownerPath &&
746
- !(positiveMinItems != nil && requiredGuard == false)
747
- output = append(output, nativehelpers.RandomJoiner.Array(nativehelpers.RandomJoiner_ArrayProps{
748
- Decode: func(metadata *schemametadata.MetadataSchema) *shimast.Node {
749
- return randomProgrammer_decode(randomProgrammer_decodeProps{
750
- Context: props.Context,
751
- Functor: props.Functor,
752
- Explore: props.Explore,
753
- Metadata: metadata,
754
- })
755
- },
756
- Expression: randomProgrammer_coalesce(props.Context, "array", "randomArray"),
757
- Array: props.Array.Type,
758
- Recursive: guardRecursive,
759
- Schema: schema,
760
- Emit: props.Context.Emit,
761
- }))
762
- }
763
- return output
764
- }
765
-
766
- func randomProgrammer_decode_tuple(props randomProgrammer_decodeTupleProps) *shimast.Node {
767
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
768
- if props.Tuple.Type.Recursive {
769
- depth := nativefactories.ExpressionFactory.Number(0, props.Context.Emit)
770
- if props.Explore.Recursive {
771
- depth = f.NewBinaryExpression(
772
- nil,
773
- nativefactories.ExpressionFactory.Number(1, props.Context.Emit),
774
- nil,
775
- f.NewToken(shimast.KindPlusToken),
776
- f.NewIdentifier("_depth"),
777
- )
778
- }
779
- return f.NewCallExpression(
780
- f.NewIdentifier(props.Functor.UseLocal(randomProgrammer_prefix_tuple(*props.Tuple.Type.Index))),
781
- nil,
782
- nil,
783
- f.NewNodeList([]*shimast.Node{
784
- f.NewKeywordExpression(shimast.KindTrueKeyword),
785
- depth,
786
- }),
787
- shimast.NodeFlagsNone,
788
- )
789
- }
790
- return nativehelpers.RandomJoiner.Tuple(nativehelpers.RandomJoiner_TupleProps{
791
- Decode: func(metadata *schemametadata.MetadataSchema) *shimast.Node {
792
- return randomProgrammer_decode(randomProgrammer_decodeProps{
793
- Context: props.Context,
794
- Functor: props.Functor,
795
- Explore: props.Explore,
796
- Metadata: metadata,
797
- })
798
- },
799
- Elements: props.Tuple.Type.Elements,
800
- ArrayExpression: randomProgrammer_coalesce(props.Context, "array", "randomArray"),
801
- HasDepth: props.Explore.Function,
802
- Emit: props.Context.Emit,
803
- })
804
- }
805
-
806
- func randomProgrammer_decode_object(props randomProgrammer_decodeObjectProps) *shimast.Node {
807
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Emit)
808
- var args *shimast.NodeList
809
- if props.Explore.Function {
810
- recursive := f.NewIdentifier("_recursive")
811
- if props.Explore.Recursive {
812
- recursive = f.NewKeywordExpression(shimast.KindTrueKeyword)
813
- }
814
- args = f.NewNodeList([]*shimast.Node{
815
- recursive,
816
- nativefactories.ExpressionFactory.Conditional(
817
- f.NewIdentifier("_recursive"),
818
- f.NewBinaryExpression(
819
- nil,
820
- nativefactories.ExpressionFactory.Number(1, props.Emit),
821
- nil,
822
- f.NewToken(shimast.KindPlusToken),
823
- f.NewIdentifier("_depth"),
824
- ),
825
- f.NewIdentifier("_depth"),
826
- props.Emit,
827
- ),
828
- })
829
- }
830
- return f.NewCallExpression(
831
- f.NewIdentifier(props.Functor.UseLocal(randomProgrammer_prefix_object(props.Object.Index))),
832
- nil,
833
- nil,
834
- args,
835
- shimast.NodeFlagsNone,
836
- )
837
- }
838
-
839
- func randomProgrammer_decode_set(props struct {
840
- Context nativecontext.ITypiaContext
841
- Functor *nativehelpers.FunctionProgrammer
842
- Explore randomProgrammer_IExplore
843
- Set *schemametadata.MetadataSet
844
- }) *shimast.Node {
845
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
846
- array := schemametadata.MetadataArray_create(schemametadata.MetadataArray{
847
- Tags: [][]schemametadata.IMetadataTypeTag{},
848
- Type: schemametadata.MetadataArrayType_create(schemametadata.MetadataArrayType{
849
- Value: props.Set.Value,
850
- Recursive: false,
851
- Index: nil,
852
- Nullables: []bool{},
853
- Name: props.Set.GetName(),
854
- }),
855
- })
856
- return f.NewNewExpression(
857
- f.NewIdentifier("Set"),
858
- nil,
859
- f.NewNodeList([]*shimast.Node{
860
- randomProgrammer_first(randomProgrammer_decode_array(randomProgrammer_decodeArrayProps{
861
- Context: props.Context,
862
- Functor: props.Functor,
863
- Explore: props.Explore,
864
- Array: array,
865
- }), props.Context.Emit),
866
- }),
867
- )
868
- }
869
-
870
- func randomProgrammer_decode_map(props struct {
871
- Context nativecontext.ITypiaContext
872
- Functor *nativehelpers.FunctionProgrammer
873
- Explore randomProgrammer_IExplore
874
- Map *schemametadata.MetadataMap
875
- }) *shimast.Node {
876
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
877
- ofMap := true
878
- tupleType := schemametadata.MetadataTupleType_create(schemametadata.MetadataTupleType{
879
- Name: fmt.Sprintf("[%s, %s]", props.Map.Key.GetName(), props.Map.Value.GetName()),
880
- Index: nil,
881
- Recursive: false,
882
- Nullables: []bool{},
883
- Elements: []*schemametadata.MetadataSchema{props.Map.Key, props.Map.Value},
884
- Of_map: &ofMap,
885
- })
886
- value := schemametadata.MetadataSchema_initialize()
887
- value.Tuples = []*schemametadata.MetadataTuple{
888
- schemametadata.MetadataTuple_create(schemametadata.MetadataTuple{
889
- Type: tupleType,
890
- Tags: [][]schemametadata.IMetadataTypeTag{},
891
- }),
892
- }
893
- array := schemametadata.MetadataArray_create(schemametadata.MetadataArray{
894
- Tags: [][]schemametadata.IMetadataTypeTag{},
895
- Type: schemametadata.MetadataArrayType_create(schemametadata.MetadataArrayType{
896
- Name: props.Map.GetName(),
897
- Index: nil,
898
- Recursive: false,
899
- Nullables: []bool{},
900
- Value: value,
901
- }),
902
- })
903
- return f.NewNewExpression(
904
- f.NewIdentifier("Map"),
905
- nil,
906
- f.NewNodeList([]*shimast.Node{
907
- randomProgrammer_first(randomProgrammer_decode_array(randomProgrammer_decodeArrayProps{
908
- Context: props.Context,
909
- Functor: props.Functor,
910
- Explore: props.Explore,
911
- Array: array,
912
- }), props.Context.Emit),
913
- }),
914
- )
915
- }
916
-
917
- func randomProgrammer_decode_native(props struct {
918
- Context nativecontext.ITypiaContext
919
- Functor *nativehelpers.FunctionProgrammer
920
- Explore randomProgrammer_IExplore
921
- Name string
922
- }) *shimast.Node {
923
- if atomic, ok := schemametadata.MetadataSchema_atomicLikeNative(props.Name); ok {
924
- return randomProgrammer_first(randomProgrammer_decode_atomic(randomProgrammer_decodeAtomicProps{
925
- Context: props.Context,
926
- Atomic: schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
927
- Type: atomic,
928
- Tags: [][]schemametadata.IMetadataTypeTag{},
929
- }),
930
- }), props.Context.Emit)
931
- }
932
- if props.Name == "Date" {
933
- return randomProgrammer_decode_native_date(props.Context)
934
- }
935
- if randomProgrammer_is_typed_array(props.Name) {
936
- return randomProgrammer_decode_native_byte_array(struct {
937
- Context nativecontext.ITypiaContext
938
- Functor *nativehelpers.FunctionProgrammer
939
- Explore randomProgrammer_IExplore
940
- Name string
941
- }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: props.Name})
942
- }
943
- if props.Name == "ArrayBuffer" || props.Name == "SharedArrayBuffer" {
944
- return randomProgrammer_decode_native_array_buffer(struct {
945
- Context nativecontext.ITypiaContext
946
- Functor *nativehelpers.FunctionProgrammer
947
- Explore randomProgrammer_IExplore
948
- Name string
949
- }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: props.Name})
950
- }
951
- if props.Name == "DataView" {
952
- return randomProgrammer_decode_native_data_view(props)
953
- }
954
- if props.Name == "Blob" {
955
- return randomProgrammer_decode_native_blob(props)
956
- }
957
- if props.Name == "File" {
958
- return randomProgrammer_decode_native_file(props)
959
- }
960
- if props.Name == "RegExp" {
961
- return randomProgrammer_decode_regexp(props.Context)
962
- }
963
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
964
- return f.NewNewExpression(f.NewIdentifier(props.Name), nil, f.NewNodeList(nil))
965
- }
966
-
967
- func randomProgrammer_decode_native_date(context nativecontext.ITypiaContext) *shimast.Node {
968
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, context.Emit)
969
- return f.NewNewExpression(
970
- f.NewIdentifier("Date"),
971
- nil,
972
- f.NewNodeList([]*shimast.Node{
973
- f.NewCallExpression(randomProgrammer_coalesce(context, "datetime", "randomFormatDatetime"), nil, nil, f.NewNodeList(nil), shimast.NodeFlagsNone),
974
- }),
975
- )
976
- }
977
-
978
- func randomProgrammer_decode_native_byte_array(props struct {
979
- Context nativecontext.ITypiaContext
980
- Functor *nativehelpers.FunctionProgrammer
981
- Explore randomProgrammer_IExplore
982
- Name string
983
- }) *shimast.Node {
984
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
985
- protobufType, minimum, maximum := randomProgrammer_typed_array_range(props.Name)
986
- atomic := "number"
987
- if props.Name == "BigInt64Array" || props.Name == "BigUint64Array" {
988
- atomic = "bigint"
989
- }
990
- value := schemametadata.MetadataSchema_initialize()
991
- value.Atomics = []*schemametadata.MetadataAtomic{
992
- schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
993
- Type: atomic,
994
- Tags: [][]schemametadata.IMetadataTypeTag{randomProgrammer_tags([]schemametadata.IMetadataTypeTag{},
995
- nativefactories.MetadataCommentTagFactory.Get(struct {
996
- Kind string
997
- Type string
998
- Value string
999
- }{Kind: "type", Type: atomic, Value: protobufType}),
1000
- nativefactories.MetadataCommentTagFactory.Get(struct {
1001
- Kind string
1002
- Type string
1003
- Value string
1004
- }{Kind: "minimum", Type: "number", Value: minimum}),
1005
- nativefactories.MetadataCommentTagFactory.Get(struct {
1006
- Kind string
1007
- Type string
1008
- Value string
1009
- }{Kind: "maximum", Type: "number", Value: maximum}),
1010
- )},
1011
- }),
1012
- }
1013
- array := schemametadata.MetadataArray_create(schemametadata.MetadataArray{
1014
- Tags: [][]schemametadata.IMetadataTypeTag{},
1015
- Type: schemametadata.MetadataArrayType_create(schemametadata.MetadataArrayType{
1016
- Name: fmt.Sprintf("%s<%s>", props.Name, atomic),
1017
- Value: value,
1018
- Recursive: false,
1019
- Index: nil,
1020
- Nullables: []bool{},
1021
- }),
1022
- })
1023
- return f.NewNewExpression(
1024
- f.NewIdentifier(props.Name),
1025
- nil,
1026
- f.NewNodeList(randomProgrammer_decode_array(randomProgrammer_decodeArrayProps{
1027
- Context: props.Context,
1028
- Functor: props.Functor,
1029
- Explore: props.Explore,
1030
- Array: array,
1031
- })),
1032
- )
1033
- }
1034
-
1035
- func randomProgrammer_decode_native_blob(props struct {
1036
- Context nativecontext.ITypiaContext
1037
- Functor *nativehelpers.FunctionProgrammer
1038
- Explore randomProgrammer_IExplore
1039
- Name string
1040
- }) *shimast.Node {
1041
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
1042
- return f.NewNewExpression(
1043
- f.NewIdentifier("Blob"),
1044
- nil,
1045
- f.NewNodeList([]*shimast.Node{
1046
- f.NewArrayLiteralExpression(f.NewNodeList([]*shimast.Node{
1047
- randomProgrammer_decode_native_byte_array(struct {
1048
- Context nativecontext.ITypiaContext
1049
- Functor *nativehelpers.FunctionProgrammer
1050
- Explore randomProgrammer_IExplore
1051
- Name string
1052
- }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: "Uint8Array"}),
1053
- }), true),
1054
- }),
1055
- )
1056
- }
1057
-
1058
- func randomProgrammer_decode_native_file(props struct {
1059
- Context nativecontext.ITypiaContext
1060
- Functor *nativehelpers.FunctionProgrammer
1061
- Explore randomProgrammer_IExplore
1062
- Name string
1063
- }) *shimast.Node {
1064
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
1065
- return f.NewNewExpression(
1066
- f.NewIdentifier("File"),
1067
- nil,
1068
- f.NewNodeList([]*shimast.Node{
1069
- f.NewArrayLiteralExpression(f.NewNodeList([]*shimast.Node{
1070
- randomProgrammer_decode_native_byte_array(struct {
1071
- Context nativecontext.ITypiaContext
1072
- Functor *nativehelpers.FunctionProgrammer
1073
- Explore randomProgrammer_IExplore
1074
- Name string
1075
- }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: "Uint8Array"}),
1076
- }), true),
1077
- f.NewTemplateExpression(
1078
- f.NewTemplateHead("", "", shimast.TokenFlagsNone),
1079
- f.NewNodeList([]*shimast.Node{
1080
- f.NewTemplateSpan(
1081
- randomProgrammer_write_ranged_string(props.Context, 1, 8),
1082
- f.NewTemplateMiddle(".", ".", shimast.TokenFlagsNone),
1083
- ),
1084
- f.NewTemplateSpan(
1085
- randomProgrammer_write_ranged_string(props.Context, 3, 3),
1086
- f.NewTemplateTail("", "", shimast.TokenFlagsNone),
1087
- ),
1088
- }),
1089
- ),
1090
- }),
1091
- )
1092
- }
1093
-
1094
- func randomProgrammer_decode_native_array_buffer(props struct {
1095
- Context nativecontext.ITypiaContext
1096
- Functor *nativehelpers.FunctionProgrammer
1097
- Explore randomProgrammer_IExplore
1098
- Name string
1099
- }) *shimast.Node {
1100
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
1101
- if props.Name == "ArrayBuffer" {
1102
- return nativefactories.IdentifierFactory.Access(
1103
- props.Context.Emit,
1104
- randomProgrammer_decode_native_byte_array(struct {
1105
- Context nativecontext.ITypiaContext
1106
- Functor *nativehelpers.FunctionProgrammer
1107
- Explore randomProgrammer_IExplore
1108
- Name string
1109
- }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: "Uint8Array"}),
1110
- "buffer",
1111
- )
1112
- }
1113
- length := randomProgrammer_first(randomProgrammer_decode_atomic(randomProgrammer_decodeAtomicProps{
1114
- Context: props.Context,
1115
- Atomic: schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
1116
- Type: "number",
1117
- Tags: [][]schemametadata.IMetadataTypeTag{nativefactories.MetadataCommentTagFactory.Get(struct {
1118
- Kind string
1119
- Type string
1120
- Value string
1121
- }{Kind: "type", Type: "number", Value: "uint32"})},
1122
- }),
1123
- }), props.Context.Emit)
1124
- byteValue := randomProgrammer_first(randomProgrammer_decode_atomic(randomProgrammer_decodeAtomicProps{
1125
- Context: props.Context,
1126
- Atomic: schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
1127
- Type: "number",
1128
- Tags: [][]schemametadata.IMetadataTypeTag{randomProgrammer_tags([]schemametadata.IMetadataTypeTag{},
1129
- nativefactories.MetadataCommentTagFactory.Get(struct {
1130
- Kind string
1131
- Type string
1132
- Value string
1133
- }{Kind: "type", Type: "number", Value: "uint32"}),
1134
- nativefactories.MetadataCommentTagFactory.Get(struct {
1135
- Kind string
1136
- Type string
1137
- Value string
1138
- }{Kind: "minimum", Type: "number", Value: "0"}),
1139
- nativefactories.MetadataCommentTagFactory.Get(struct {
1140
- Kind string
1141
- Type string
1142
- Value string
1143
- }{Kind: "maximum", Type: "number", Value: "255"}),
1144
- )},
1145
- }),
1146
- }), props.Context.Emit)
1147
- return nativefactories.ExpressionFactory.SelfCall(props.Context.Emit, f.NewBlock(f.NewNodeList([]*shimast.Node{
1148
- nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{Name: "length", Value: length}, props.Context.Emit),
1149
- nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
1150
- Name: "buffer",
1151
- Value: f.NewNewExpression(
1152
- f.NewIdentifier("SharedArrayBuffer"),
1153
- nil,
1154
- f.NewNodeList([]*shimast.Node{f.NewIdentifier("length")}),
1155
- ),
1156
- }, props.Context.Emit),
1157
- nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
1158
- Name: "bytes",
1159
- Value: f.NewNewExpression(
1160
- f.NewIdentifier("Uint8Array"),
1161
- nil,
1162
- f.NewNodeList([]*shimast.Node{f.NewIdentifier("buffer")}),
1163
- ),
1164
- }, props.Context.Emit),
1165
- f.NewExpressionStatement(f.NewCallExpression(
1166
- nativefactories.IdentifierFactory.Access(props.Context.Emit, f.NewIdentifier("bytes"), "set"),
1167
- nil,
1168
- nil,
1169
- f.NewNodeList([]*shimast.Node{
1170
- f.NewCallExpression(
1171
- nativefactories.IdentifierFactory.Access(
1172
- props.Context.Emit,
1173
- f.NewCallExpression(
1174
- nativefactories.IdentifierFactory.Access(
1175
- props.Context.Emit,
1176
- f.NewNewExpression(
1177
- f.NewIdentifier("Array"),
1178
- nil,
1179
- f.NewNodeList([]*shimast.Node{f.NewIdentifier("length")}),
1180
- ),
1181
- "fill",
1182
- ),
1183
- nil,
1184
- nil,
1185
- f.NewNodeList([]*shimast.Node{nativefactories.ExpressionFactory.Number(0, props.Context.Emit)}),
1186
- shimast.NodeFlagsNone,
1187
- ),
1188
- "map",
1189
- ),
1190
- nil,
1191
- nil,
1192
- f.NewNodeList([]*shimast.Node{
1193
- f.NewArrowFunction(nil, nil, f.NewNodeList(nil), nil, nil, f.NewToken(shimast.KindEqualsGreaterThanToken), byteValue),
1194
- }),
1195
- shimast.NodeFlagsNone,
1196
- ),
1197
- nativefactories.ExpressionFactory.Number(0, props.Context.Emit),
1198
- }),
1199
- shimast.NodeFlagsNone,
1200
- )),
1201
- f.NewReturnStatement(f.NewIdentifier("buffer")),
1202
- }), true))
1203
- }
1204
-
1205
- func randomProgrammer_decode_native_data_view(props struct {
1206
- Context nativecontext.ITypiaContext
1207
- Functor *nativehelpers.FunctionProgrammer
1208
- Explore randomProgrammer_IExplore
1209
- Name string
1210
- }) *shimast.Node {
1211
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
1212
- return f.NewNewExpression(
1213
- f.NewIdentifier("DataView"),
1214
- nil,
1215
- f.NewNodeList([]*shimast.Node{
1216
- nativefactories.IdentifierFactory.Access(
1217
- props.Context.Emit,
1218
- randomProgrammer_decode_native_byte_array(struct {
1219
- Context nativecontext.ITypiaContext
1220
- Functor *nativehelpers.FunctionProgrammer
1221
- Explore randomProgrammer_IExplore
1222
- Name string
1223
- }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: "Uint8Array"}),
1224
- "buffer",
1225
- ),
1226
- }),
1227
- )
1228
- }
1229
-
1230
- func randomProgrammer_decode_regexp(context nativecontext.ITypiaContext) *shimast.Node {
1231
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, context.Emit)
1232
- return f.NewNewExpression(
1233
- f.NewIdentifier("RegExp"),
1234
- nil,
1235
- f.NewNodeList([]*shimast.Node{
1236
- f.NewCallExpression(randomProgrammer_coalesce(context, "regex", "randomFormatRegex"), nil, nil, nil, shimast.NodeFlagsNone),
1237
- }),
1238
- )
1239
- }
1240
-
1241
- func randomProgrammer_write_ranged_string(context nativecontext.ITypiaContext, minLength int, maxLength int) *shimast.Node {
1242
- return randomProgrammer_first(randomProgrammer_decode_atomic(randomProgrammer_decodeAtomicProps{
1243
- Context: context,
1244
- Atomic: schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
1245
- Type: "string",
1246
- Tags: [][]schemametadata.IMetadataTypeTag{randomProgrammer_tags([]schemametadata.IMetadataTypeTag{},
1247
- nativefactories.MetadataCommentTagFactory.Get(struct {
1248
- Kind string
1249
- Type string
1250
- Value string
1251
- }{Kind: "minLength", Type: "string", Value: fmt.Sprint(minLength)}),
1252
- nativefactories.MetadataCommentTagFactory.Get(struct {
1253
- Kind string
1254
- Type string
1255
- Value string
1256
- }{Kind: "maxLength", Type: "string", Value: fmt.Sprint(maxLength)}),
1257
- )},
1258
- }),
1259
- }), context.Emit)
1260
- }
1261
-
1262
- func randomProgrammer_coalesce(context nativecontext.ITypiaContext, method string, internal string) *shimast.Node {
1263
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, context.Emit)
1264
- return nativefactories.ExpressionFactory.Coalesce(
1265
- nativefactories.IdentifierFactory.Access(context.Emit, f.NewIdentifier("_generator"), method, true),
1266
- randomProgrammer_internal(context, internal),
1267
- context.Emit,
1268
- )
1269
- }
1270
-
1271
- func randomProgrammer_schema_without_items(schema nativeiterate.JsonSchema, emit *shimprinter.EmitContext) *shimast.Node {
1272
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, emit)
1273
- keys := make([]string, 0, len(schema))
1274
- for key := range schema {
1275
- if key != "items" {
1276
- keys = append(keys, key)
1277
- }
1278
- }
1279
- sort.Strings(keys)
1280
- properties := []*shimast.Node{}
1281
- for _, key := range keys {
1282
- properties = append(properties, f.NewPropertyAssignment(
1283
- nil,
1284
- nativefactories.IdentifierFactory.Identifier(key, emit),
1285
- nil,
1286
- nil,
1287
- nativefactories.LiteralFactory.Write(schema[key], emit),
1288
- ))
1289
- }
1290
- return f.NewObjectLiteralExpression(f.NewNodeList(properties), true)
1291
- }
1292
-
1293
- func randomProgrammer_array_schema_list(
1294
- array *schemametadata.MetadataArray,
1295
- components *nativeiterate.OpenApi_IComponents,
1296
- schemaList []nativeiterate.JsonSchema,
1297
- ) []nativeiterate.JsonSchema {
1298
- if array == nil ||
1299
- array.Type == nil ||
1300
- array.Type.Recursive == false ||
1301
- components == nil ||
1302
- components.Schemas == nil {
1303
- return schemaList
1304
- }
1305
- schema, ok := components.Schemas[array.Type.Name]
1306
- if ok == false || len(schema) == 0 {
1307
- return schemaList
1308
- }
1309
- if oneOf, ok := schema["oneOf"].([]nativeiterate.JsonSchema); ok {
1310
- return oneOf
1311
- }
1312
- return []nativeiterate.JsonSchema{schema}
1313
- }
1314
-
1315
- func randomProgrammer_internal(context nativecontext.ITypiaContext, name string) *shimast.Node {
1316
- if importer := context.Importer; importer != nil {
1317
- return importer.Internal(name)
1318
- }
1319
- return nativecontext.EmitFactoryOf(randomProgrammer_factory, context.Emit).NewIdentifier(name)
1320
- }
1321
-
1322
- func randomProgrammer_import_type(context nativecontext.ITypiaContext, props nativecontext.ImportProgrammer_TypeProps) *shimast.Node {
1323
- if importer := context.Importer; importer != nil {
1324
- return importer.Type(props)
1325
- }
1326
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, context.Emit)
1327
- if str, ok := props.Name.(string); ok {
1328
- return f.NewTypeReferenceNode(f.NewIdentifier(str), f.NewNodeList(props.Arguments))
1329
- }
1330
- return props.Name.(*shimast.Node)
1331
- }
1332
-
1333
- func randomProgrammer_type_reference(context nativecontext.ITypiaContext, typ *shimchecker.Type, name *string) *shimast.Node {
1334
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, context.Emit)
1335
- if name != nil {
1336
- return f.NewTypeReferenceNode(f.NewIdentifier(*name), nil)
1337
- }
1338
- return f.NewTypeReferenceNode(f.NewIdentifier(nativefactories.TypeFactory.GetFullName(nativefactories.TypeFactory_GetFullNameProps{
1339
- Checker: context.Checker,
1340
- Type: typ,
1341
- })), nil)
1342
- }
1343
-
1344
- func randomProgrammer_method_text(modulo *shimast.Node) string {
1345
- return nativehelpers.ModuloMethodText(modulo)
1346
- }
1347
-
1348
- func randomProgrammer_errors(errors []nativefactories.MetadataFactory_IError) []nativecontext.TransformerError_MetadataFactory_IError {
1349
- output := make([]nativecontext.TransformerError_MetadataFactory_IError, 0, len(errors))
1350
- for _, err := range errors {
1351
- output = append(output, nativecontext.TransformerError_MetadataFactory_IError{
1352
- Name: err.Name,
1353
- Explore: nativecontext.TransformerError_MetadataFactory_IExplore{
1354
- Object: err.Explore.Object,
1355
- Property: err.Explore.Property,
1356
- Parameter: err.Explore.Parameter,
1357
- Output: err.Explore.Output,
1358
- },
1359
- Messages: append([]string{}, err.Messages...),
1360
- })
1361
- }
1362
- return output
1363
- }
1364
-
1365
- func randomProgrammer_prefix_object(i int) string {
1366
- return fmt.Sprintf("%s%d", randomProgrammer_PREFIX_OBJECT, i)
1367
- }
1368
- func randomProgrammer_prefix_array(i int) string {
1369
- return fmt.Sprintf("%s%d", randomProgrammer_PREFIX_ARRAY, i)
1370
- }
1371
- func randomProgrammer_prefix_tuple(i int) string {
1372
- return fmt.Sprintf("%s%d", randomProgrammer_PREFIX_TUPLE, i)
1373
- }
1374
-
1375
- func randomProgrammer_capitalize(str string) string {
1376
- if str == "" {
1377
- return ""
1378
- }
1379
- return strings.ToUpper(str[:1]) + str[1:]
1380
- }
1381
-
1382
- func randomProgrammer_format_pascal(format string) string {
1383
- parts := strings.Split(format, "-")
1384
- for i, part := range parts {
1385
- parts[i] = randomProgrammer_capitalize(part)
1386
- }
1387
- return strings.Join(parts, "")
1388
- }
1389
-
1390
- func randomProgrammer_format_method(format string) string {
1391
- parts := strings.Split(format, "-")
1392
- for i, part := range parts {
1393
- if i != 0 {
1394
- parts[i] = randomProgrammer_capitalize(part)
1395
- }
1396
- }
1397
- return strings.Join(parts, "")
1398
- }
1399
-
1400
- func randomProgrammer_is_typed_array(name string) bool {
1401
- switch name {
1402
- case "Uint8Array", "Uint8ClampedArray", "Uint16Array", "Uint32Array", "BigUint64Array",
1403
- "Int8Array", "Int16Array", "Int32Array", "BigInt64Array", "Float32Array", "Float64Array":
1404
- return true
1405
- default:
1406
- return false
1407
- }
1408
- }
1409
-
1410
- func randomProgrammer_typed_array_range(name string) (string, string, string) {
1411
- switch name {
1412
- case "Uint8Array", "Uint8ClampedArray":
1413
- return "uint32", "0", "255"
1414
- case "Uint16Array":
1415
- return "uint32", "0", "65535"
1416
- case "Uint32Array":
1417
- return "uint32", "0", "4294967295"
1418
- case "BigUint64Array":
1419
- return "uint64", "0", "18446744073709551615"
1420
- case "Int8Array":
1421
- return "int32", "-128", "127"
1422
- case "Int16Array":
1423
- return "int32", "-32768", "32767"
1424
- case "Int32Array":
1425
- return "int32", "-2147483648", "2147483647"
1426
- case "BigInt64Array":
1427
- return "uint64", "-9223372036854775808", "9223372036854775807"
1428
- case "Float32Array":
1429
- return "float", "-1.175494351e38", "3.4028235e38"
1430
- default:
1431
- return "double", fmt.Sprint(math.SmallestNonzeroFloat64), fmt.Sprint(math.MaxFloat64)
1432
- }
1433
- }
1434
-
1435
- func randomProgrammer_tags(base []schemametadata.IMetadataTypeTag, rows ...[]schemametadata.IMetadataTypeTag) []schemametadata.IMetadataTypeTag {
1436
- output := append([]schemametadata.IMetadataTypeTag{}, base...)
1437
- for _, row := range rows {
1438
- output = append(output, row...)
1439
- }
1440
- return output
1441
- }
1442
-
1443
- func randomProgrammer_first(list []*shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
1444
- if len(list) == 0 {
1445
- return nativecontext.EmitFactoryOf(randomProgrammer_factory, emit).NewIdentifier("undefined")
1446
- }
1447
- return list[0]
1448
- }
1
+ package programmers
2
+
3
+ import (
4
+ "fmt"
5
+ "math"
6
+ "reflect"
7
+ "sort"
8
+ "strconv"
9
+ "strings"
10
+
11
+ shimast "github.com/microsoft/typescript-go/shim/ast"
12
+ shimchecker "github.com/microsoft/typescript-go/shim/checker"
13
+ shimprinter "github.com/microsoft/typescript-go/shim/printer"
14
+ nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
15
+ nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
16
+ nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
17
+ nativeinternal "github.com/samchon/typia/packages/typia/native/core/programmers/internal"
18
+ nativeiterate "github.com/samchon/typia/packages/typia/native/core/programmers/iterate"
19
+ schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
20
+ )
21
+
22
+ type randomProgrammerNamespace struct{}
23
+
24
+ var RandomProgrammer = randomProgrammerNamespace{}
25
+
26
+ type RandomProgrammer_IProps struct {
27
+ Context nativecontext.ITypiaContext
28
+ Modulo *shimast.Node
29
+ Type *shimchecker.Type
30
+ Name *string
31
+ Init *shimast.Node
32
+ }
33
+
34
+ type RandomProgrammer_IDecomposeProps struct {
35
+ Context nativecontext.ITypiaContext
36
+ Functor *nativehelpers.FunctionProgrammer
37
+ Type *shimchecker.Type
38
+ Name *string
39
+ Init *shimast.Node
40
+ }
41
+
42
+ type randomProgrammer_IExplore struct {
43
+ Function bool
44
+ Recursive bool
45
+ Object *schemametadata.MetadataObjectType
46
+ Tuple *schemametadata.MetadataTupleType
47
+ }
48
+
49
+ type randomProgrammer_decodeProps struct {
50
+ Context nativecontext.ITypiaContext
51
+ Functor *nativehelpers.FunctionProgrammer
52
+ Explore randomProgrammer_IExplore
53
+ Metadata *schemametadata.MetadataSchema
54
+ }
55
+
56
+ type randomProgrammer_decodeAtomicProps struct {
57
+ Context nativecontext.ITypiaContext
58
+ Atomic *schemametadata.MetadataAtomic
59
+ }
60
+
61
+ type randomProgrammer_decodeArrayProps struct {
62
+ Context nativecontext.ITypiaContext
63
+ Functor *nativehelpers.FunctionProgrammer
64
+ Explore randomProgrammer_IExplore
65
+ Array *schemametadata.MetadataArray
66
+ }
67
+
68
+ type randomProgrammer_decodeTupleProps struct {
69
+ Context nativecontext.ITypiaContext
70
+ Functor *nativehelpers.FunctionProgrammer
71
+ Explore randomProgrammer_IExplore
72
+ Tuple *schemametadata.MetadataTuple
73
+ }
74
+
75
+ type randomProgrammer_decodeObjectProps struct {
76
+ Functor *nativehelpers.FunctionProgrammer
77
+ Explore randomProgrammer_IExplore
78
+ Object *schemametadata.MetadataObjectType
79
+ Emit *shimprinter.EmitContext
80
+ }
81
+
82
+ const (
83
+ randomProgrammer_PREFIX_OBJECT = "_ro"
84
+ randomProgrammer_PREFIX_ARRAY = "_ra"
85
+ randomProgrammer_PREFIX_TUPLE = "_rt"
86
+ )
87
+
88
+ var randomProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
89
+
90
+ func (randomProgrammerNamespace) Decompose(props RandomProgrammer_IDecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
91
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
92
+ collection := schemametadata.NewMetadataCollection()
93
+ result := nativefactories.MetadataFactory.Analyze(nativefactories.MetadataFactory_IProps{
94
+ Checker: props.Context.Checker,
95
+ Options: nativefactories.MetadataFactory_IOptions{
96
+ Escape: false,
97
+ Constant: true,
98
+ Absorb: true,
99
+ Validate: RandomProgrammer.Validate,
100
+ },
101
+ Components: collection,
102
+ Type: props.Type,
103
+ })
104
+ if result.Success == false {
105
+ panic(nativecontext.TransformerError_from(struct {
106
+ Code string
107
+ Errors []nativecontext.TransformerError_MetadataFactory_IError
108
+ }{
109
+ Code: props.Functor.Method,
110
+ Errors: randomProgrammer_errors(result.Errors),
111
+ }))
112
+ }
113
+ functions := map[string]*shimast.Node{}
114
+ for i, stmt := range randomProgrammer_write_object_functions(struct {
115
+ Context nativecontext.ITypiaContext
116
+ Functor *nativehelpers.FunctionProgrammer
117
+ Collection *schemametadata.MetadataCollection
118
+ }{Context: props.Context, Functor: props.Functor, Collection: collection}) {
119
+ functions[randomProgrammer_prefix_object(i)] = stmt
120
+ }
121
+ for i, stmt := range randomProgrammer_write_array_functions(struct {
122
+ Context nativecontext.ITypiaContext
123
+ Functor *nativehelpers.FunctionProgrammer
124
+ Collection *schemametadata.MetadataCollection
125
+ }{Context: props.Context, Functor: props.Functor, Collection: collection}) {
126
+ functions[randomProgrammer_prefix_array(i)] = stmt
127
+ }
128
+ for i, stmt := range randomProgrammer_write_tuple_functions(struct {
129
+ Context nativecontext.ITypiaContext
130
+ Functor *nativehelpers.FunctionProgrammer
131
+ Collection *schemametadata.MetadataCollection
132
+ }{Context: props.Context, Functor: props.Functor, Collection: collection}) {
133
+ functions[randomProgrammer_prefix_tuple(i)] = stmt
134
+ }
135
+
136
+ randomGeneratorType := f.NewTypeReferenceNode(
137
+ f.NewIdentifier("Partial"),
138
+ f.NewNodeList([]*shimast.Node{
139
+ randomProgrammer_import_type(props.Context, nativecontext.ImportProgrammer_TypeProps{
140
+ File: "typia",
141
+ Name: "IRandomGenerator",
142
+ }),
143
+ }),
144
+ )
145
+ init := props.Init
146
+ if init == nil {
147
+ init = f.NewToken(shimast.KindQuestionToken)
148
+ }
149
+ resolvedType := randomProgrammer_import_type(props.Context, nativecontext.ImportProgrammer_TypeProps{
150
+ File: "typia",
151
+ Name: "Resolved",
152
+ Arguments: []*shimast.TypeNode{
153
+ randomProgrammer_type_reference(props.Context, props.Type, props.Name),
154
+ },
155
+ })
156
+ return nativeinternal.FeatureProgrammer_IDecomposed{
157
+ Functions: functions,
158
+ Statements: []*shimast.Node{
159
+ nativefactories.StatementFactory.Mut(nativefactories.StatementFactory_MutProps{
160
+ Name: "_generator",
161
+ Type: f.NewUnionTypeNode(f.NewNodeList([]*shimast.Node{
162
+ randomGeneratorType,
163
+ f.NewTypeReferenceNode(f.NewIdentifier("undefined"), nil),
164
+ })),
165
+ }, props.Context.Emit),
166
+ },
167
+ Arrow: f.NewArrowFunction(
168
+ nil,
169
+ nil,
170
+ f.NewNodeList([]*shimast.Node{
171
+ nativefactories.IdentifierFactory.Parameter("generator", randomGeneratorType, init, props.Context.Emit),
172
+ }),
173
+ resolvedType,
174
+ nil,
175
+ f.NewToken(shimast.KindEqualsGreaterThanToken),
176
+ f.NewBlock(f.NewNodeList([]*shimast.Node{
177
+ f.NewExpressionStatement(f.NewBinaryExpression(
178
+ nil,
179
+ f.NewIdentifier("_generator"),
180
+ nil,
181
+ f.NewToken(shimast.KindEqualsToken),
182
+ f.NewIdentifier("generator"),
183
+ )),
184
+ f.NewReturnStatement(randomProgrammer_decode(randomProgrammer_decodeProps{
185
+ Context: props.Context,
186
+ Functor: props.Functor,
187
+ Explore: randomProgrammer_IExplore{
188
+ Function: false,
189
+ Recursive: false,
190
+ },
191
+ Metadata: result.Data,
192
+ })),
193
+ }), true),
194
+ ),
195
+ }
196
+ }
197
+
198
+ func (randomProgrammerNamespace) Write(props RandomProgrammer_IProps) *shimast.Node {
199
+ functor := nativehelpers.NewFunctionProgrammer(randomProgrammer_method_text(props.Modulo), props.Context.Emit)
200
+ result := RandomProgrammer.Decompose(RandomProgrammer_IDecomposeProps{
201
+ Context: props.Context,
202
+ Functor: functor,
203
+ Type: props.Type,
204
+ Name: props.Name,
205
+ Init: props.Init,
206
+ })
207
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
208
+ Modulo: props.Modulo,
209
+ Functor: functor,
210
+ Result: result,
211
+ })
212
+ }
213
+
214
+ func (randomProgrammerNamespace) Validate(props struct {
215
+ Metadata *schemametadata.MetadataSchema
216
+ Explore nativefactories.MetadataFactory_IExplore
217
+ Top *schemametadata.MetadataSchema
218
+ }) []string {
219
+ output := []string{}
220
+ for _, native := range props.Metadata.Natives {
221
+ if native.Name == "WeakSet" {
222
+ output = append(output, "WeakSet is not supported.")
223
+ break
224
+ }
225
+ if native.Name == "WeakMap" {
226
+ output = append(output, "WeakMap is not supported.")
227
+ break
228
+ }
229
+ }
230
+ return output
231
+ }
232
+
233
+ func randomProgrammer_find_positive_min_items(tags [][]schemametadata.IMetadataTypeTag) *schemametadata.IMetadataTypeTag {
234
+ for _, row := range tags {
235
+ for _, tag := range row {
236
+ if tag.Kind == "minItems" && randomProgrammer_is_positive_min_items_tag(tag) {
237
+ copied := tag
238
+ return &copied
239
+ }
240
+ }
241
+ }
242
+ return nil
243
+ }
244
+
245
+ func randomProgrammer_is_positive_min_items_tag(tag schemametadata.IMetadataTypeTag) bool {
246
+ if randomProgrammer_is_positive_numeric(tag.Value) {
247
+ return true
248
+ }
249
+ if schema, ok := tag.Schema.(map[string]any); ok {
250
+ return randomProgrammer_is_positive_numeric(schema["minItems"])
251
+ }
252
+ return false
253
+ }
254
+
255
+ func randomProgrammer_is_positive_numeric(value any) bool {
256
+ if value == nil {
257
+ return false
258
+ }
259
+ rv := reflect.ValueOf(value)
260
+ switch rv.Kind() {
261
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
262
+ return rv.Int() > 0
263
+ case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
264
+ return rv.Uint() > 0
265
+ case reflect.Float32, reflect.Float64:
266
+ return rv.Float() > 0
267
+ case reflect.String:
268
+ parsed, err := strconv.ParseFloat(rv.String(), 64)
269
+ return err == nil && parsed > 0
270
+ default:
271
+ return false
272
+ }
273
+ }
274
+
275
+ func randomProgrammer_write_object_functions(props struct {
276
+ Context nativecontext.ITypiaContext
277
+ Functor *nativehelpers.FunctionProgrammer
278
+ Collection *schemametadata.MetadataCollection
279
+ }) []*shimast.Node {
280
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
281
+ output := []*shimast.Node{}
282
+ unsatisfiableObjects, _ := nativehelpers.RandomJoiner.UnsatisfiableRecursives(props.Collection.Objects(), props.Collection.Tuples())
283
+ for i, obj := range props.Collection.Objects() {
284
+ index := i
285
+ object := obj
286
+ if object.Recursive && unsatisfiableObjects[object] {
287
+ panic(nativecontext.NewTransformerError(nativecontext.TransformerError_IProps{
288
+ Code: props.Functor.Method,
289
+ Message: fmt.Sprintf("recursive type %q cannot be randomly generated because the recursion never terminates; give it a nullable, optional, or array/set/map escape.", object.Name),
290
+ }))
291
+ }
292
+ output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
293
+ Name: randomProgrammer_prefix_object(index),
294
+ Value: f.NewArrowFunction(
295
+ nil,
296
+ nil,
297
+ f.NewNodeList([]*shimast.Node{
298
+ nativefactories.IdentifierFactory.Parameter("_recursive", nativefactories.TypeFactory.Keyword("boolean", props.Context.Emit), f.NewIdentifier(fmt.Sprint(object.Recursive)), props.Context.Emit),
299
+ nativefactories.IdentifierFactory.Parameter("_depth", nativefactories.TypeFactory.Keyword("number", props.Context.Emit), nativefactories.ExpressionFactory.Number(0, props.Context.Emit), props.Context.Emit),
300
+ }),
301
+ nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
302
+ nil,
303
+ f.NewToken(shimast.KindEqualsGreaterThanToken),
304
+ nativehelpers.RandomJoiner.Object(nativehelpers.RandomJoiner_ObjectProps{
305
+ Decode: func(metadata *schemametadata.MetadataSchema) *shimast.Node {
306
+ return randomProgrammer_decode(randomProgrammer_decodeProps{
307
+ Context: props.Context,
308
+ Functor: props.Functor,
309
+ Explore: randomProgrammer_IExplore{
310
+ Recursive: object.Recursive,
311
+ Function: true,
312
+ Object: object,
313
+ },
314
+ Metadata: metadata,
315
+ })
316
+ },
317
+ StrictOptionalUndefined: func(metadata *schemametadata.MetadataSchema) bool {
318
+ return nativehelpers.OptionPredicator.StrictOptionalUndefined(props.Context, metadata)
319
+ },
320
+ OptionalProperty: func(metadata *schemametadata.MetadataSchema) bool {
321
+ return nativehelpers.OptionPredicator.ExactOptionalProperty(props.Context, metadata)
322
+ },
323
+ Optional: func() *shimast.Node {
324
+ return f.NewCallExpression(
325
+ randomProgrammer_coalesce(props.Context, "boolean", "randomBoolean"),
326
+ nil,
327
+ nil,
328
+ nil,
329
+ shimast.NodeFlagsNone,
330
+ )
331
+ },
332
+ Object: object,
333
+ Emit: props.Context.Emit,
334
+ }),
335
+ ),
336
+ }, props.Context.Emit))
337
+ }
338
+ return output
339
+ }
340
+
341
+ func randomProgrammer_write_array_functions(props struct {
342
+ Context nativecontext.ITypiaContext
343
+ Functor *nativehelpers.FunctionProgrammer
344
+ Collection *schemametadata.MetadataCollection
345
+ }) []*shimast.Node {
346
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
347
+ output := []*shimast.Node{}
348
+ for i, array := range props.Collection.Arrays() {
349
+ if array.Recursive == false {
350
+ continue
351
+ }
352
+ index := i
353
+ array := array
354
+ output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
355
+ Name: randomProgrammer_prefix_array(index),
356
+ Value: f.NewArrowFunction(
357
+ nil,
358
+ nil,
359
+ f.NewNodeList([]*shimast.Node{
360
+ nativefactories.IdentifierFactory.Parameter("_schema", nativefactories.TypeFactory.Keyword("any", props.Context.Emit), nil, props.Context.Emit),
361
+ nativefactories.IdentifierFactory.Parameter("_recursive", nativefactories.TypeFactory.Keyword("boolean", props.Context.Emit), f.NewKeywordExpression(shimast.KindTrueKeyword), props.Context.Emit),
362
+ nativefactories.IdentifierFactory.Parameter("_depth", nativefactories.TypeFactory.Keyword("number", props.Context.Emit), nativefactories.ExpressionFactory.Number(0, props.Context.Emit), props.Context.Emit),
363
+ }),
364
+ nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
365
+ nil,
366
+ f.NewToken(shimast.KindEqualsGreaterThanToken),
367
+ nativehelpers.RandomJoiner.Array(nativehelpers.RandomJoiner_ArrayProps{
368
+ Decode: func(metadata *schemametadata.MetadataSchema) *shimast.Node {
369
+ return randomProgrammer_decode(randomProgrammer_decodeProps{
370
+ Context: props.Context,
371
+ Functor: props.Functor,
372
+ Explore: randomProgrammer_IExplore{
373
+ Recursive: true,
374
+ Function: true,
375
+ },
376
+ Metadata: metadata,
377
+ })
378
+ },
379
+ Recursive: true,
380
+ Expression: randomProgrammer_coalesce(props.Context, "array", "randomArray"),
381
+ Array: array,
382
+ Schema: nil,
383
+ Emit: props.Context.Emit,
384
+ }),
385
+ ),
386
+ }, props.Context.Emit))
387
+ }
388
+ return output
389
+ }
390
+
391
+ func randomProgrammer_write_tuple_functions(props struct {
392
+ Context nativecontext.ITypiaContext
393
+ Functor *nativehelpers.FunctionProgrammer
394
+ Collection *schemametadata.MetadataCollection
395
+ }) []*shimast.Node {
396
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
397
+ output := []*shimast.Node{}
398
+ _, unsatisfiableTuples := nativehelpers.RandomJoiner.UnsatisfiableRecursives(props.Collection.Objects(), props.Collection.Tuples())
399
+ for i, tuple := range props.Collection.Tuples() {
400
+ if tuple.Recursive == false {
401
+ continue
402
+ }
403
+ index := i
404
+ tuple := tuple
405
+ if unsatisfiableTuples[tuple] {
406
+ panic(nativecontext.NewTransformerError(nativecontext.TransformerError_IProps{
407
+ Code: props.Functor.Method,
408
+ Message: fmt.Sprintf("recursive type %q cannot be randomly generated because the recursion never terminates; give it a nullable, optional, or array/set/map escape.", tuple.Name),
409
+ }))
410
+ }
411
+ output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
412
+ Name: randomProgrammer_prefix_tuple(index),
413
+ Value: f.NewArrowFunction(
414
+ nil,
415
+ nil,
416
+ f.NewNodeList([]*shimast.Node{
417
+ nativefactories.IdentifierFactory.Parameter("_recursive", nativefactories.TypeFactory.Keyword("boolean", props.Context.Emit), f.NewKeywordExpression(shimast.KindTrueKeyword), props.Context.Emit),
418
+ nativefactories.IdentifierFactory.Parameter("_depth", nativefactories.TypeFactory.Keyword("number", props.Context.Emit), nativefactories.ExpressionFactory.Number(0, props.Context.Emit), props.Context.Emit),
419
+ }),
420
+ nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
421
+ nil,
422
+ f.NewToken(shimast.KindEqualsGreaterThanToken),
423
+ nativehelpers.RandomJoiner.Tuple(nativehelpers.RandomJoiner_TupleProps{
424
+ Decode: func(metadata *schemametadata.MetadataSchema) *shimast.Node {
425
+ return randomProgrammer_decode(randomProgrammer_decodeProps{
426
+ Context: props.Context,
427
+ Functor: props.Functor,
428
+ Explore: randomProgrammer_IExplore{
429
+ Function: true,
430
+ Recursive: true,
431
+ Tuple: tuple,
432
+ },
433
+ Metadata: metadata,
434
+ })
435
+ },
436
+ Elements: tuple.Elements,
437
+ ArrayExpression: randomProgrammer_coalesce(props.Context, "array", "randomArray"),
438
+ HasDepth: true,
439
+ Emit: props.Context.Emit,
440
+ }),
441
+ ),
442
+ }, props.Context.Emit))
443
+ }
444
+ return output
445
+ }
446
+
447
+ func randomProgrammer_decode(props randomProgrammer_decodeProps) *shimast.Node {
448
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
449
+ expressions := []*shimast.Node{}
450
+ if props.Metadata.Any {
451
+ expressions = append(expressions, f.NewStringLiteral("any type used...", shimast.TokenFlagsNone))
452
+ }
453
+ if props.Metadata.IsRequired() == false || len(props.Metadata.Functions) != 0 {
454
+ expressions = append(expressions, f.NewIdentifier("undefined"))
455
+ }
456
+ if props.Metadata.Nullable {
457
+ expressions = append(expressions, f.NewKeywordExpression(shimast.KindNullKeyword))
458
+ }
459
+ for _, constant := range props.Metadata.Constants {
460
+ for _, value := range constant.Values {
461
+ if constant.Type == "boolean" {
462
+ if truthy, _ := value.Value.(bool); truthy {
463
+ expressions = append(expressions, f.NewKeywordExpression(shimast.KindTrueKeyword))
464
+ } else {
465
+ expressions = append(expressions, f.NewKeywordExpression(shimast.KindFalseKeyword))
466
+ }
467
+ } else if constant.Type == "bigint" {
468
+ expressions = append(expressions, nativefactories.ExpressionFactory.Bigint(value.Value, props.Context.Emit))
469
+ } else if constant.Type == "number" {
470
+ expressions = append(expressions, nativefactories.ExpressionFactory.Number(value.Value, props.Context.Emit))
471
+ } else {
472
+ expressions = append(expressions, f.NewStringLiteral(fmt.Sprint(value.Value), shimast.TokenFlagsNone))
473
+ }
474
+ }
475
+ }
476
+ for _, template := range props.Metadata.Templates {
477
+ expressions = append(expressions, randomProgrammer_decode_template(struct {
478
+ Context nativecontext.ITypiaContext
479
+ Functor *nativehelpers.FunctionProgrammer
480
+ Explore randomProgrammer_IExplore
481
+ Template *schemametadata.MetadataTemplate
482
+ }{
483
+ Context: props.Context, Functor: props.Functor, Explore: props.Explore, Template: template,
484
+ }))
485
+ }
486
+ for _, atomic := range props.Metadata.Atomics {
487
+ expressions = append(expressions, randomProgrammer_decode_atomic(randomProgrammer_decodeAtomicProps{
488
+ Context: props.Context,
489
+ Atomic: atomic,
490
+ })...)
491
+ }
492
+ if props.Metadata.Escaped != nil {
493
+ next := props
494
+ next.Metadata = props.Metadata.Escaped.Returns
495
+ expressions = append(expressions, randomProgrammer_decode(next))
496
+ }
497
+ for _, array := range props.Metadata.Arrays {
498
+ next := props
499
+ expressions = append(expressions, randomProgrammer_decode_array(randomProgrammer_decodeArrayProps{
500
+ Context: next.Context,
501
+ Functor: next.Functor,
502
+ Explore: next.Explore,
503
+ Array: array,
504
+ })...)
505
+ }
506
+ for _, tuple := range props.Metadata.Tuples {
507
+ expressions = append(expressions, randomProgrammer_decode_tuple(randomProgrammer_decodeTupleProps{
508
+ Context: props.Context,
509
+ Functor: props.Functor,
510
+ Explore: props.Explore,
511
+ Tuple: tuple,
512
+ }))
513
+ }
514
+ for _, object := range props.Metadata.Objects {
515
+ expressions = append(expressions, randomProgrammer_decode_object(randomProgrammer_decodeObjectProps{
516
+ Functor: props.Functor,
517
+ Explore: props.Explore,
518
+ Object: object.Type,
519
+ Emit: props.Context.Emit,
520
+ }))
521
+ }
522
+ for _, native := range props.Metadata.Natives {
523
+ expressions = append(expressions, randomProgrammer_decode_native(struct {
524
+ Context nativecontext.ITypiaContext
525
+ Functor *nativehelpers.FunctionProgrammer
526
+ Explore randomProgrammer_IExplore
527
+ Name string
528
+ }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: native.Name}))
529
+ }
530
+ for _, set := range props.Metadata.Sets {
531
+ expressions = append(expressions, randomProgrammer_decode_set(struct {
532
+ Context nativecontext.ITypiaContext
533
+ Functor *nativehelpers.FunctionProgrammer
534
+ Explore randomProgrammer_IExplore
535
+ Set *schemametadata.MetadataSet
536
+ }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Set: set}))
537
+ }
538
+ for _, entry := range props.Metadata.Maps {
539
+ expressions = append(expressions, randomProgrammer_decode_map(struct {
540
+ Context nativecontext.ITypiaContext
541
+ Functor *nativehelpers.FunctionProgrammer
542
+ Explore randomProgrammer_IExplore
543
+ Map *schemametadata.MetadataMap
544
+ }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Map: entry}))
545
+ }
546
+ if len(expressions) == 1 {
547
+ return expressions[0]
548
+ }
549
+ pickers := make([]*shimast.Node, 0, len(expressions))
550
+ for _, expr := range expressions {
551
+ value := expr
552
+ pickers = append(pickers, f.NewArrowFunction(
553
+ nil,
554
+ nil,
555
+ f.NewNodeList(nil),
556
+ nil,
557
+ nil,
558
+ f.NewToken(shimast.KindEqualsGreaterThanToken),
559
+ value,
560
+ ))
561
+ }
562
+ return f.NewCallExpression(
563
+ f.NewCallExpression(
564
+ randomProgrammer_internal(props.Context, "randomPick"),
565
+ nil,
566
+ nil,
567
+ f.NewNodeList([]*shimast.Node{
568
+ f.NewArrayLiteralExpression(f.NewNodeList(pickers), true),
569
+ }),
570
+ shimast.NodeFlagsNone,
571
+ ),
572
+ nil,
573
+ nil,
574
+ nil,
575
+ shimast.NodeFlagsNone,
576
+ )
577
+ }
578
+
579
+ func randomProgrammer_decode_atomic(props randomProgrammer_decodeAtomicProps) []*shimast.Node {
580
+ var schemaList []nativeiterate.JsonSchema
581
+ if props.Atomic.Type == "boolean" {
582
+ schemaList = nativeiterate.Json_schema_boolean_export(props.Atomic)
583
+ } else if props.Atomic.Type == "string" {
584
+ schemaList = nativeiterate.Json_schema_string_export(props.Atomic)
585
+ } else if props.Atomic.Type == "bigint" {
586
+ schemaList = nativeiterate.Json_schema_bigint_export(props.Atomic)
587
+ } else {
588
+ schemaList = nativeiterate.Json_schema_number_export(props.Atomic)
589
+ }
590
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
591
+ output := make([]*shimast.Node, 0, len(schemaList))
592
+ for _, schema := range schemaList {
593
+ composed := randomProgrammer_compose_atomic(props.Atomic.Type, schema, props.Context.Emit)
594
+ output = append(output, f.NewCallExpression(
595
+ nativefactories.ExpressionFactory.Coalesce(
596
+ nativefactories.IdentifierFactory.Access(props.Context.Emit, f.NewIdentifier("_generator"), composed.Method, true),
597
+ randomProgrammer_internal(props.Context, composed.Internal),
598
+ props.Context.Emit,
599
+ ),
600
+ nil,
601
+ nil,
602
+ f.NewNodeList(composed.Arguments),
603
+ shimast.NodeFlagsNone,
604
+ ))
605
+ }
606
+ return output
607
+ }
608
+
609
+ type randomProgrammer_composedAtomic struct {
610
+ Method string
611
+ Internal string
612
+ Arguments []*shimast.Node
613
+ }
614
+
615
+ func randomProgrammer_compose_atomic(atomicType string, schema nativeiterate.JsonSchema, emit *shimprinter.EmitContext) randomProgrammer_composedAtomic {
616
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, emit)
617
+ if atomicType == "string" {
618
+ if raw, ok := schema["format"].(string); ok && raw != "" {
619
+ if raw == "date-time" {
620
+ return randomProgrammer_composedAtomic{Method: "datetime", Internal: "randomFormatDatetime"}
621
+ }
622
+ method := randomProgrammer_format_method(raw)
623
+ return randomProgrammer_composedAtomic{
624
+ Method: method,
625
+ Internal: "randomFormat" + randomProgrammer_format_pascal(raw),
626
+ }
627
+ }
628
+ if pattern, ok := schema["pattern"].(string); ok && pattern != "" {
629
+ return randomProgrammer_composedAtomic{
630
+ Method: "pattern",
631
+ Internal: "randomPattern",
632
+ Arguments: []*shimast.Node{
633
+ f.NewNewExpression(
634
+ f.NewIdentifier("RegExp"),
635
+ nil,
636
+ f.NewNodeList([]*shimast.Node{f.NewStringLiteral(pattern, shimast.TokenFlagsNone)}),
637
+ ),
638
+ },
639
+ }
640
+ }
641
+ } else if atomicType == "number" {
642
+ if typ, ok := schema["type"].(string); ok && typ == "integer" {
643
+ return randomProgrammer_composedAtomic{
644
+ Method: "integer",
645
+ Internal: "randomInteger",
646
+ Arguments: []*shimast.Node{nativefactories.LiteralFactory.Write(schema, emit)},
647
+ }
648
+ }
649
+ } else if atomicType == "boolean" {
650
+ return randomProgrammer_composedAtomic{
651
+ Method: "boolean",
652
+ Internal: "randomBoolean",
653
+ }
654
+ }
655
+ return randomProgrammer_composedAtomic{
656
+ Method: atomicType,
657
+ Internal: "random" + randomProgrammer_capitalize(atomicType),
658
+ Arguments: []*shimast.Node{nativefactories.LiteralFactory.Write(schema, emit)},
659
+ }
660
+ }
661
+
662
+ func randomProgrammer_decode_template(props struct {
663
+ Context nativecontext.ITypiaContext
664
+ Functor *nativehelpers.FunctionProgrammer
665
+ Explore randomProgrammer_IExplore
666
+ Template *schemametadata.MetadataTemplate
667
+ }) *shimast.Node {
668
+ expressions := make([]*shimast.Expression, 0, len(props.Template.Row))
669
+ for _, metadata := range props.Template.Row {
670
+ expressions = append(expressions, randomProgrammer_decode(randomProgrammer_decodeProps{
671
+ Context: props.Context,
672
+ Functor: props.Functor,
673
+ Explore: props.Explore,
674
+ Metadata: metadata,
675
+ }))
676
+ }
677
+ return nativefactories.TemplateFactory.Generate(expressions, props.Context.Emit)
678
+ }
679
+
680
+ func randomProgrammer_decode_array(props randomProgrammer_decodeArrayProps) []*shimast.Node {
681
+ components := &nativeiterate.OpenApi_IComponents{}
682
+ schemaList := nativeiterate.Json_schema_array_export(nativeiterate.Json_schema_array_export_props{
683
+ Components: components,
684
+ Array: props.Array,
685
+ })
686
+ schemaList = randomProgrammer_array_schema_list(props.Array, components, schemaList)
687
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
688
+ output := make([]*shimast.Node, 0, len(schemaList))
689
+ if props.Array.Type.Recursive {
690
+ if tag := randomProgrammer_find_positive_min_items(props.Array.Tags); tag != nil {
691
+ panic(nativecontext.NewTransformerError(nativecontext.TransformerError_IProps{
692
+ Code: props.Functor.Method,
693
+ Message: fmt.Sprintf("recursive array type cannot have %s.", tag.Name),
694
+ }))
695
+ }
696
+ for _, schema := range schemaList {
697
+ arguments := []*shimast.Node{
698
+ randomProgrammer_schema_without_items(schema, props.Context.Emit),
699
+ }
700
+ if props.Explore.Function {
701
+ recursive := f.NewIdentifier("_recursive")
702
+ if props.Explore.Recursive {
703
+ recursive = f.NewKeywordExpression(shimast.KindTrueKeyword)
704
+ }
705
+ depth := f.NewIdentifier("_depth")
706
+ if props.Explore.Recursive {
707
+ depth = f.NewBinaryExpression(
708
+ nil,
709
+ nativefactories.ExpressionFactory.Number(1, props.Context.Emit),
710
+ nil,
711
+ f.NewToken(shimast.KindPlusToken),
712
+ f.NewIdentifier("_depth"),
713
+ )
714
+ }
715
+ arguments = append(arguments, recursive, depth)
716
+ }
717
+ output = append(output, f.NewCallExpression(
718
+ f.NewIdentifier(props.Functor.UseLocal(randomProgrammer_prefix_array(*props.Array.Type.Index))),
719
+ nil,
720
+ nil,
721
+ f.NewNodeList(arguments),
722
+ shimast.NodeFlagsNone,
723
+ ))
724
+ }
725
+ return output
726
+ }
727
+ for _, schema := range schemaList {
728
+ schema := schema
729
+ guardProps := nativehelpers.RandomJoiner_RecursiveArrayGuardProps{
730
+ Array: props.Array.Type,
731
+ Object: props.Explore.Object,
732
+ Tuple: props.Explore.Tuple,
733
+ }
734
+ requiredGuard := nativehelpers.RandomJoiner.RequiresRecursiveArrayGuardFor(guardProps)
735
+ directOwnerPath := nativehelpers.RandomJoiner.HasDirectRecursiveOwnerPathFor(guardProps)
736
+ positiveMinItems := randomProgrammer_find_positive_min_items(props.Array.Tags)
737
+ if props.Explore.Recursive && positiveMinItems != nil && (requiredGuard || directOwnerPath) {
738
+ panic(nativecontext.NewTransformerError(nativecontext.TransformerError_IProps{
739
+ Code: props.Functor.Method,
740
+ Message: fmt.Sprintf("recursive array type cannot have %s.", positiveMinItems.Name),
741
+ }))
742
+ }
743
+ ownerPath := requiredGuard || nativehelpers.RandomJoiner.HasRecursiveOwnerPathFor(guardProps)
744
+ guardRecursive := props.Explore.Recursive &&
745
+ ownerPath &&
746
+ !(positiveMinItems != nil && requiredGuard == false)
747
+ output = append(output, nativehelpers.RandomJoiner.Array(nativehelpers.RandomJoiner_ArrayProps{
748
+ Decode: func(metadata *schemametadata.MetadataSchema) *shimast.Node {
749
+ return randomProgrammer_decode(randomProgrammer_decodeProps{
750
+ Context: props.Context,
751
+ Functor: props.Functor,
752
+ Explore: props.Explore,
753
+ Metadata: metadata,
754
+ })
755
+ },
756
+ Expression: randomProgrammer_coalesce(props.Context, "array", "randomArray"),
757
+ Array: props.Array.Type,
758
+ Recursive: guardRecursive,
759
+ Schema: schema,
760
+ Emit: props.Context.Emit,
761
+ }))
762
+ }
763
+ return output
764
+ }
765
+
766
+ func randomProgrammer_decode_tuple(props randomProgrammer_decodeTupleProps) *shimast.Node {
767
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
768
+ if props.Tuple.Type.Recursive {
769
+ depth := nativefactories.ExpressionFactory.Number(0, props.Context.Emit)
770
+ if props.Explore.Recursive {
771
+ depth = f.NewBinaryExpression(
772
+ nil,
773
+ nativefactories.ExpressionFactory.Number(1, props.Context.Emit),
774
+ nil,
775
+ f.NewToken(shimast.KindPlusToken),
776
+ f.NewIdentifier("_depth"),
777
+ )
778
+ }
779
+ return f.NewCallExpression(
780
+ f.NewIdentifier(props.Functor.UseLocal(randomProgrammer_prefix_tuple(*props.Tuple.Type.Index))),
781
+ nil,
782
+ nil,
783
+ f.NewNodeList([]*shimast.Node{
784
+ f.NewKeywordExpression(shimast.KindTrueKeyword),
785
+ depth,
786
+ }),
787
+ shimast.NodeFlagsNone,
788
+ )
789
+ }
790
+ return nativehelpers.RandomJoiner.Tuple(nativehelpers.RandomJoiner_TupleProps{
791
+ Decode: func(metadata *schemametadata.MetadataSchema) *shimast.Node {
792
+ return randomProgrammer_decode(randomProgrammer_decodeProps{
793
+ Context: props.Context,
794
+ Functor: props.Functor,
795
+ Explore: props.Explore,
796
+ Metadata: metadata,
797
+ })
798
+ },
799
+ Elements: props.Tuple.Type.Elements,
800
+ ArrayExpression: randomProgrammer_coalesce(props.Context, "array", "randomArray"),
801
+ HasDepth: props.Explore.Function,
802
+ Emit: props.Context.Emit,
803
+ })
804
+ }
805
+
806
+ func randomProgrammer_decode_object(props randomProgrammer_decodeObjectProps) *shimast.Node {
807
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Emit)
808
+ var args *shimast.NodeList
809
+ if props.Explore.Function {
810
+ recursive := f.NewIdentifier("_recursive")
811
+ if props.Explore.Recursive {
812
+ recursive = f.NewKeywordExpression(shimast.KindTrueKeyword)
813
+ }
814
+ args = f.NewNodeList([]*shimast.Node{
815
+ recursive,
816
+ nativefactories.ExpressionFactory.Conditional(
817
+ f.NewIdentifier("_recursive"),
818
+ f.NewBinaryExpression(
819
+ nil,
820
+ nativefactories.ExpressionFactory.Number(1, props.Emit),
821
+ nil,
822
+ f.NewToken(shimast.KindPlusToken),
823
+ f.NewIdentifier("_depth"),
824
+ ),
825
+ f.NewIdentifier("_depth"),
826
+ props.Emit,
827
+ ),
828
+ })
829
+ }
830
+ return f.NewCallExpression(
831
+ f.NewIdentifier(props.Functor.UseLocal(randomProgrammer_prefix_object(props.Object.Index))),
832
+ nil,
833
+ nil,
834
+ args,
835
+ shimast.NodeFlagsNone,
836
+ )
837
+ }
838
+
839
+ func randomProgrammer_decode_set(props struct {
840
+ Context nativecontext.ITypiaContext
841
+ Functor *nativehelpers.FunctionProgrammer
842
+ Explore randomProgrammer_IExplore
843
+ Set *schemametadata.MetadataSet
844
+ }) *shimast.Node {
845
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
846
+ array := schemametadata.MetadataArray_create(schemametadata.MetadataArray{
847
+ Tags: [][]schemametadata.IMetadataTypeTag{},
848
+ Type: schemametadata.MetadataArrayType_create(schemametadata.MetadataArrayType{
849
+ Value: props.Set.Value,
850
+ Recursive: false,
851
+ Index: nil,
852
+ Nullables: []bool{},
853
+ Name: props.Set.GetName(),
854
+ }),
855
+ })
856
+ return f.NewNewExpression(
857
+ f.NewIdentifier("Set"),
858
+ nil,
859
+ f.NewNodeList([]*shimast.Node{
860
+ randomProgrammer_first(randomProgrammer_decode_array(randomProgrammer_decodeArrayProps{
861
+ Context: props.Context,
862
+ Functor: props.Functor,
863
+ Explore: props.Explore,
864
+ Array: array,
865
+ }), props.Context.Emit),
866
+ }),
867
+ )
868
+ }
869
+
870
+ func randomProgrammer_decode_map(props struct {
871
+ Context nativecontext.ITypiaContext
872
+ Functor *nativehelpers.FunctionProgrammer
873
+ Explore randomProgrammer_IExplore
874
+ Map *schemametadata.MetadataMap
875
+ }) *shimast.Node {
876
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
877
+ ofMap := true
878
+ tupleType := schemametadata.MetadataTupleType_create(schemametadata.MetadataTupleType{
879
+ Name: fmt.Sprintf("[%s, %s]", props.Map.Key.GetName(), props.Map.Value.GetName()),
880
+ Index: nil,
881
+ Recursive: false,
882
+ Nullables: []bool{},
883
+ Elements: []*schemametadata.MetadataSchema{props.Map.Key, props.Map.Value},
884
+ Of_map: &ofMap,
885
+ })
886
+ value := schemametadata.MetadataSchema_initialize()
887
+ value.Tuples = []*schemametadata.MetadataTuple{
888
+ schemametadata.MetadataTuple_create(schemametadata.MetadataTuple{
889
+ Type: tupleType,
890
+ Tags: [][]schemametadata.IMetadataTypeTag{},
891
+ }),
892
+ }
893
+ array := schemametadata.MetadataArray_create(schemametadata.MetadataArray{
894
+ Tags: [][]schemametadata.IMetadataTypeTag{},
895
+ Type: schemametadata.MetadataArrayType_create(schemametadata.MetadataArrayType{
896
+ Name: props.Map.GetName(),
897
+ Index: nil,
898
+ Recursive: false,
899
+ Nullables: []bool{},
900
+ Value: value,
901
+ }),
902
+ })
903
+ return f.NewNewExpression(
904
+ f.NewIdentifier("Map"),
905
+ nil,
906
+ f.NewNodeList([]*shimast.Node{
907
+ randomProgrammer_first(randomProgrammer_decode_array(randomProgrammer_decodeArrayProps{
908
+ Context: props.Context,
909
+ Functor: props.Functor,
910
+ Explore: props.Explore,
911
+ Array: array,
912
+ }), props.Context.Emit),
913
+ }),
914
+ )
915
+ }
916
+
917
+ func randomProgrammer_decode_native(props struct {
918
+ Context nativecontext.ITypiaContext
919
+ Functor *nativehelpers.FunctionProgrammer
920
+ Explore randomProgrammer_IExplore
921
+ Name string
922
+ }) *shimast.Node {
923
+ if atomic, ok := schemametadata.MetadataSchema_atomicLikeNative(props.Name); ok {
924
+ return randomProgrammer_first(randomProgrammer_decode_atomic(randomProgrammer_decodeAtomicProps{
925
+ Context: props.Context,
926
+ Atomic: schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
927
+ Type: atomic,
928
+ Tags: [][]schemametadata.IMetadataTypeTag{},
929
+ }),
930
+ }), props.Context.Emit)
931
+ }
932
+ if props.Name == "Date" {
933
+ return randomProgrammer_decode_native_date(props.Context)
934
+ }
935
+ if randomProgrammer_is_typed_array(props.Name) {
936
+ return randomProgrammer_decode_native_byte_array(struct {
937
+ Context nativecontext.ITypiaContext
938
+ Functor *nativehelpers.FunctionProgrammer
939
+ Explore randomProgrammer_IExplore
940
+ Name string
941
+ }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: props.Name})
942
+ }
943
+ if props.Name == "ArrayBuffer" || props.Name == "SharedArrayBuffer" {
944
+ return randomProgrammer_decode_native_array_buffer(struct {
945
+ Context nativecontext.ITypiaContext
946
+ Functor *nativehelpers.FunctionProgrammer
947
+ Explore randomProgrammer_IExplore
948
+ Name string
949
+ }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: props.Name})
950
+ }
951
+ if props.Name == "DataView" {
952
+ return randomProgrammer_decode_native_data_view(props)
953
+ }
954
+ if props.Name == "Blob" {
955
+ return randomProgrammer_decode_native_blob(props)
956
+ }
957
+ if props.Name == "File" {
958
+ return randomProgrammer_decode_native_file(props)
959
+ }
960
+ if props.Name == "RegExp" {
961
+ return randomProgrammer_decode_regexp(props.Context)
962
+ }
963
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
964
+ return f.NewNewExpression(f.NewIdentifier(props.Name), nil, f.NewNodeList(nil))
965
+ }
966
+
967
+ func randomProgrammer_decode_native_date(context nativecontext.ITypiaContext) *shimast.Node {
968
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, context.Emit)
969
+ return f.NewNewExpression(
970
+ f.NewIdentifier("Date"),
971
+ nil,
972
+ f.NewNodeList([]*shimast.Node{
973
+ f.NewCallExpression(randomProgrammer_coalesce(context, "datetime", "randomFormatDatetime"), nil, nil, f.NewNodeList(nil), shimast.NodeFlagsNone),
974
+ }),
975
+ )
976
+ }
977
+
978
+ func randomProgrammer_decode_native_byte_array(props struct {
979
+ Context nativecontext.ITypiaContext
980
+ Functor *nativehelpers.FunctionProgrammer
981
+ Explore randomProgrammer_IExplore
982
+ Name string
983
+ }) *shimast.Node {
984
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
985
+ protobufType, minimum, maximum := randomProgrammer_typed_array_range(props.Name)
986
+ atomic := "number"
987
+ if props.Name == "BigInt64Array" || props.Name == "BigUint64Array" {
988
+ atomic = "bigint"
989
+ }
990
+ value := schemametadata.MetadataSchema_initialize()
991
+ value.Atomics = []*schemametadata.MetadataAtomic{
992
+ schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
993
+ Type: atomic,
994
+ Tags: [][]schemametadata.IMetadataTypeTag{randomProgrammer_tags([]schemametadata.IMetadataTypeTag{},
995
+ nativefactories.MetadataCommentTagFactory.Get(struct {
996
+ Kind string
997
+ Type string
998
+ Value string
999
+ }{Kind: "type", Type: atomic, Value: protobufType}),
1000
+ nativefactories.MetadataCommentTagFactory.Get(struct {
1001
+ Kind string
1002
+ Type string
1003
+ Value string
1004
+ }{Kind: "minimum", Type: "number", Value: minimum}),
1005
+ nativefactories.MetadataCommentTagFactory.Get(struct {
1006
+ Kind string
1007
+ Type string
1008
+ Value string
1009
+ }{Kind: "maximum", Type: "number", Value: maximum}),
1010
+ )},
1011
+ }),
1012
+ }
1013
+ array := schemametadata.MetadataArray_create(schemametadata.MetadataArray{
1014
+ Tags: [][]schemametadata.IMetadataTypeTag{},
1015
+ Type: schemametadata.MetadataArrayType_create(schemametadata.MetadataArrayType{
1016
+ Name: fmt.Sprintf("%s<%s>", props.Name, atomic),
1017
+ Value: value,
1018
+ Recursive: false,
1019
+ Index: nil,
1020
+ Nullables: []bool{},
1021
+ }),
1022
+ })
1023
+ return f.NewNewExpression(
1024
+ f.NewIdentifier(props.Name),
1025
+ nil,
1026
+ f.NewNodeList(randomProgrammer_decode_array(randomProgrammer_decodeArrayProps{
1027
+ Context: props.Context,
1028
+ Functor: props.Functor,
1029
+ Explore: props.Explore,
1030
+ Array: array,
1031
+ })),
1032
+ )
1033
+ }
1034
+
1035
+ func randomProgrammer_decode_native_blob(props struct {
1036
+ Context nativecontext.ITypiaContext
1037
+ Functor *nativehelpers.FunctionProgrammer
1038
+ Explore randomProgrammer_IExplore
1039
+ Name string
1040
+ }) *shimast.Node {
1041
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
1042
+ return f.NewNewExpression(
1043
+ f.NewIdentifier("Blob"),
1044
+ nil,
1045
+ f.NewNodeList([]*shimast.Node{
1046
+ f.NewArrayLiteralExpression(f.NewNodeList([]*shimast.Node{
1047
+ randomProgrammer_decode_native_byte_array(struct {
1048
+ Context nativecontext.ITypiaContext
1049
+ Functor *nativehelpers.FunctionProgrammer
1050
+ Explore randomProgrammer_IExplore
1051
+ Name string
1052
+ }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: "Uint8Array"}),
1053
+ }), true),
1054
+ }),
1055
+ )
1056
+ }
1057
+
1058
+ func randomProgrammer_decode_native_file(props struct {
1059
+ Context nativecontext.ITypiaContext
1060
+ Functor *nativehelpers.FunctionProgrammer
1061
+ Explore randomProgrammer_IExplore
1062
+ Name string
1063
+ }) *shimast.Node {
1064
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
1065
+ return f.NewNewExpression(
1066
+ f.NewIdentifier("File"),
1067
+ nil,
1068
+ f.NewNodeList([]*shimast.Node{
1069
+ f.NewArrayLiteralExpression(f.NewNodeList([]*shimast.Node{
1070
+ randomProgrammer_decode_native_byte_array(struct {
1071
+ Context nativecontext.ITypiaContext
1072
+ Functor *nativehelpers.FunctionProgrammer
1073
+ Explore randomProgrammer_IExplore
1074
+ Name string
1075
+ }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: "Uint8Array"}),
1076
+ }), true),
1077
+ f.NewTemplateExpression(
1078
+ f.NewTemplateHead("", "", shimast.TokenFlagsNone),
1079
+ f.NewNodeList([]*shimast.Node{
1080
+ f.NewTemplateSpan(
1081
+ randomProgrammer_write_ranged_string(props.Context, 1, 8),
1082
+ f.NewTemplateMiddle(".", ".", shimast.TokenFlagsNone),
1083
+ ),
1084
+ f.NewTemplateSpan(
1085
+ randomProgrammer_write_ranged_string(props.Context, 3, 3),
1086
+ f.NewTemplateTail("", "", shimast.TokenFlagsNone),
1087
+ ),
1088
+ }),
1089
+ ),
1090
+ }),
1091
+ )
1092
+ }
1093
+
1094
+ func randomProgrammer_decode_native_array_buffer(props struct {
1095
+ Context nativecontext.ITypiaContext
1096
+ Functor *nativehelpers.FunctionProgrammer
1097
+ Explore randomProgrammer_IExplore
1098
+ Name string
1099
+ }) *shimast.Node {
1100
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
1101
+ if props.Name == "ArrayBuffer" {
1102
+ return nativefactories.IdentifierFactory.Access(
1103
+ props.Context.Emit,
1104
+ randomProgrammer_decode_native_byte_array(struct {
1105
+ Context nativecontext.ITypiaContext
1106
+ Functor *nativehelpers.FunctionProgrammer
1107
+ Explore randomProgrammer_IExplore
1108
+ Name string
1109
+ }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: "Uint8Array"}),
1110
+ "buffer",
1111
+ )
1112
+ }
1113
+ length := randomProgrammer_first(randomProgrammer_decode_atomic(randomProgrammer_decodeAtomicProps{
1114
+ Context: props.Context,
1115
+ Atomic: schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
1116
+ Type: "number",
1117
+ Tags: [][]schemametadata.IMetadataTypeTag{nativefactories.MetadataCommentTagFactory.Get(struct {
1118
+ Kind string
1119
+ Type string
1120
+ Value string
1121
+ }{Kind: "type", Type: "number", Value: "uint32"})},
1122
+ }),
1123
+ }), props.Context.Emit)
1124
+ byteValue := randomProgrammer_first(randomProgrammer_decode_atomic(randomProgrammer_decodeAtomicProps{
1125
+ Context: props.Context,
1126
+ Atomic: schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
1127
+ Type: "number",
1128
+ Tags: [][]schemametadata.IMetadataTypeTag{randomProgrammer_tags([]schemametadata.IMetadataTypeTag{},
1129
+ nativefactories.MetadataCommentTagFactory.Get(struct {
1130
+ Kind string
1131
+ Type string
1132
+ Value string
1133
+ }{Kind: "type", Type: "number", Value: "uint32"}),
1134
+ nativefactories.MetadataCommentTagFactory.Get(struct {
1135
+ Kind string
1136
+ Type string
1137
+ Value string
1138
+ }{Kind: "minimum", Type: "number", Value: "0"}),
1139
+ nativefactories.MetadataCommentTagFactory.Get(struct {
1140
+ Kind string
1141
+ Type string
1142
+ Value string
1143
+ }{Kind: "maximum", Type: "number", Value: "255"}),
1144
+ )},
1145
+ }),
1146
+ }), props.Context.Emit)
1147
+ return nativefactories.ExpressionFactory.SelfCall(props.Context.Emit, f.NewBlock(f.NewNodeList([]*shimast.Node{
1148
+ nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{Name: "length", Value: length}, props.Context.Emit),
1149
+ nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
1150
+ Name: "buffer",
1151
+ Value: f.NewNewExpression(
1152
+ f.NewIdentifier("SharedArrayBuffer"),
1153
+ nil,
1154
+ f.NewNodeList([]*shimast.Node{f.NewIdentifier("length")}),
1155
+ ),
1156
+ }, props.Context.Emit),
1157
+ nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
1158
+ Name: "bytes",
1159
+ Value: f.NewNewExpression(
1160
+ f.NewIdentifier("Uint8Array"),
1161
+ nil,
1162
+ f.NewNodeList([]*shimast.Node{f.NewIdentifier("buffer")}),
1163
+ ),
1164
+ }, props.Context.Emit),
1165
+ f.NewExpressionStatement(f.NewCallExpression(
1166
+ nativefactories.IdentifierFactory.Access(props.Context.Emit, f.NewIdentifier("bytes"), "set"),
1167
+ nil,
1168
+ nil,
1169
+ f.NewNodeList([]*shimast.Node{
1170
+ f.NewCallExpression(
1171
+ nativefactories.IdentifierFactory.Access(
1172
+ props.Context.Emit,
1173
+ f.NewCallExpression(
1174
+ nativefactories.IdentifierFactory.Access(
1175
+ props.Context.Emit,
1176
+ f.NewNewExpression(
1177
+ f.NewIdentifier("Array"),
1178
+ nil,
1179
+ f.NewNodeList([]*shimast.Node{f.NewIdentifier("length")}),
1180
+ ),
1181
+ "fill",
1182
+ ),
1183
+ nil,
1184
+ nil,
1185
+ f.NewNodeList([]*shimast.Node{nativefactories.ExpressionFactory.Number(0, props.Context.Emit)}),
1186
+ shimast.NodeFlagsNone,
1187
+ ),
1188
+ "map",
1189
+ ),
1190
+ nil,
1191
+ nil,
1192
+ f.NewNodeList([]*shimast.Node{
1193
+ f.NewArrowFunction(nil, nil, f.NewNodeList(nil), nil, nil, f.NewToken(shimast.KindEqualsGreaterThanToken), byteValue),
1194
+ }),
1195
+ shimast.NodeFlagsNone,
1196
+ ),
1197
+ nativefactories.ExpressionFactory.Number(0, props.Context.Emit),
1198
+ }),
1199
+ shimast.NodeFlagsNone,
1200
+ )),
1201
+ f.NewReturnStatement(f.NewIdentifier("buffer")),
1202
+ }), true))
1203
+ }
1204
+
1205
+ func randomProgrammer_decode_native_data_view(props struct {
1206
+ Context nativecontext.ITypiaContext
1207
+ Functor *nativehelpers.FunctionProgrammer
1208
+ Explore randomProgrammer_IExplore
1209
+ Name string
1210
+ }) *shimast.Node {
1211
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
1212
+ return f.NewNewExpression(
1213
+ f.NewIdentifier("DataView"),
1214
+ nil,
1215
+ f.NewNodeList([]*shimast.Node{
1216
+ nativefactories.IdentifierFactory.Access(
1217
+ props.Context.Emit,
1218
+ randomProgrammer_decode_native_byte_array(struct {
1219
+ Context nativecontext.ITypiaContext
1220
+ Functor *nativehelpers.FunctionProgrammer
1221
+ Explore randomProgrammer_IExplore
1222
+ Name string
1223
+ }{Context: props.Context, Functor: props.Functor, Explore: props.Explore, Name: "Uint8Array"}),
1224
+ "buffer",
1225
+ ),
1226
+ }),
1227
+ )
1228
+ }
1229
+
1230
+ func randomProgrammer_decode_regexp(context nativecontext.ITypiaContext) *shimast.Node {
1231
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, context.Emit)
1232
+ return f.NewNewExpression(
1233
+ f.NewIdentifier("RegExp"),
1234
+ nil,
1235
+ f.NewNodeList([]*shimast.Node{
1236
+ f.NewCallExpression(randomProgrammer_coalesce(context, "regex", "randomFormatRegex"), nil, nil, nil, shimast.NodeFlagsNone),
1237
+ }),
1238
+ )
1239
+ }
1240
+
1241
+ func randomProgrammer_write_ranged_string(context nativecontext.ITypiaContext, minLength int, maxLength int) *shimast.Node {
1242
+ return randomProgrammer_first(randomProgrammer_decode_atomic(randomProgrammer_decodeAtomicProps{
1243
+ Context: context,
1244
+ Atomic: schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
1245
+ Type: "string",
1246
+ Tags: [][]schemametadata.IMetadataTypeTag{randomProgrammer_tags([]schemametadata.IMetadataTypeTag{},
1247
+ nativefactories.MetadataCommentTagFactory.Get(struct {
1248
+ Kind string
1249
+ Type string
1250
+ Value string
1251
+ }{Kind: "minLength", Type: "string", Value: fmt.Sprint(minLength)}),
1252
+ nativefactories.MetadataCommentTagFactory.Get(struct {
1253
+ Kind string
1254
+ Type string
1255
+ Value string
1256
+ }{Kind: "maxLength", Type: "string", Value: fmt.Sprint(maxLength)}),
1257
+ )},
1258
+ }),
1259
+ }), context.Emit)
1260
+ }
1261
+
1262
+ func randomProgrammer_coalesce(context nativecontext.ITypiaContext, method string, internal string) *shimast.Node {
1263
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, context.Emit)
1264
+ return nativefactories.ExpressionFactory.Coalesce(
1265
+ nativefactories.IdentifierFactory.Access(context.Emit, f.NewIdentifier("_generator"), method, true),
1266
+ randomProgrammer_internal(context, internal),
1267
+ context.Emit,
1268
+ )
1269
+ }
1270
+
1271
+ func randomProgrammer_schema_without_items(schema nativeiterate.JsonSchema, emit *shimprinter.EmitContext) *shimast.Node {
1272
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, emit)
1273
+ keys := make([]string, 0, len(schema))
1274
+ for key := range schema {
1275
+ if key != "items" {
1276
+ keys = append(keys, key)
1277
+ }
1278
+ }
1279
+ sort.Strings(keys)
1280
+ properties := []*shimast.Node{}
1281
+ for _, key := range keys {
1282
+ properties = append(properties, f.NewPropertyAssignment(
1283
+ nil,
1284
+ nativefactories.IdentifierFactory.Identifier(key, emit),
1285
+ nil,
1286
+ nil,
1287
+ nativefactories.LiteralFactory.Write(schema[key], emit),
1288
+ ))
1289
+ }
1290
+ return f.NewObjectLiteralExpression(f.NewNodeList(properties), true)
1291
+ }
1292
+
1293
+ func randomProgrammer_array_schema_list(
1294
+ array *schemametadata.MetadataArray,
1295
+ components *nativeiterate.OpenApi_IComponents,
1296
+ schemaList []nativeiterate.JsonSchema,
1297
+ ) []nativeiterate.JsonSchema {
1298
+ if array == nil ||
1299
+ array.Type == nil ||
1300
+ array.Type.Recursive == false ||
1301
+ components == nil ||
1302
+ components.Schemas == nil {
1303
+ return schemaList
1304
+ }
1305
+ schema, ok := components.Schemas[array.Type.Name]
1306
+ if ok == false || len(schema) == 0 {
1307
+ return schemaList
1308
+ }
1309
+ if oneOf, ok := schema["oneOf"].([]nativeiterate.JsonSchema); ok {
1310
+ return oneOf
1311
+ }
1312
+ return []nativeiterate.JsonSchema{schema}
1313
+ }
1314
+
1315
+ func randomProgrammer_internal(context nativecontext.ITypiaContext, name string) *shimast.Node {
1316
+ if importer := context.Importer; importer != nil {
1317
+ return importer.Internal(name)
1318
+ }
1319
+ return nativecontext.EmitFactoryOf(randomProgrammer_factory, context.Emit).NewIdentifier(name)
1320
+ }
1321
+
1322
+ func randomProgrammer_import_type(context nativecontext.ITypiaContext, props nativecontext.ImportProgrammer_TypeProps) *shimast.Node {
1323
+ if importer := context.Importer; importer != nil {
1324
+ return importer.Type(props)
1325
+ }
1326
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, context.Emit)
1327
+ if str, ok := props.Name.(string); ok {
1328
+ return f.NewTypeReferenceNode(f.NewIdentifier(str), f.NewNodeList(props.Arguments))
1329
+ }
1330
+ return props.Name.(*shimast.Node)
1331
+ }
1332
+
1333
+ func randomProgrammer_type_reference(context nativecontext.ITypiaContext, typ *shimchecker.Type, name *string) *shimast.Node {
1334
+ f := nativecontext.EmitFactoryOf(randomProgrammer_factory, context.Emit)
1335
+ if name != nil {
1336
+ return f.NewTypeReferenceNode(f.NewIdentifier(*name), nil)
1337
+ }
1338
+ return f.NewTypeReferenceNode(f.NewIdentifier(nativefactories.TypeFactory.GetFullName(nativefactories.TypeFactory_GetFullNameProps{
1339
+ Checker: context.Checker,
1340
+ Type: typ,
1341
+ })), nil)
1342
+ }
1343
+
1344
+ func randomProgrammer_method_text(modulo *shimast.Node) string {
1345
+ return nativehelpers.ModuloMethodText(modulo)
1346
+ }
1347
+
1348
+ func randomProgrammer_errors(errors []nativefactories.MetadataFactory_IError) []nativecontext.TransformerError_MetadataFactory_IError {
1349
+ output := make([]nativecontext.TransformerError_MetadataFactory_IError, 0, len(errors))
1350
+ for _, err := range errors {
1351
+ output = append(output, nativecontext.TransformerError_MetadataFactory_IError{
1352
+ Name: err.Name,
1353
+ Explore: nativecontext.TransformerError_MetadataFactory_IExplore{
1354
+ Object: err.Explore.Object,
1355
+ Property: err.Explore.Property,
1356
+ Parameter: err.Explore.Parameter,
1357
+ Output: err.Explore.Output,
1358
+ },
1359
+ Messages: append([]string{}, err.Messages...),
1360
+ })
1361
+ }
1362
+ return output
1363
+ }
1364
+
1365
+ func randomProgrammer_prefix_object(i int) string {
1366
+ return fmt.Sprintf("%s%d", randomProgrammer_PREFIX_OBJECT, i)
1367
+ }
1368
+ func randomProgrammer_prefix_array(i int) string {
1369
+ return fmt.Sprintf("%s%d", randomProgrammer_PREFIX_ARRAY, i)
1370
+ }
1371
+ func randomProgrammer_prefix_tuple(i int) string {
1372
+ return fmt.Sprintf("%s%d", randomProgrammer_PREFIX_TUPLE, i)
1373
+ }
1374
+
1375
+ func randomProgrammer_capitalize(str string) string {
1376
+ if str == "" {
1377
+ return ""
1378
+ }
1379
+ return strings.ToUpper(str[:1]) + str[1:]
1380
+ }
1381
+
1382
+ func randomProgrammer_format_pascal(format string) string {
1383
+ parts := strings.Split(format, "-")
1384
+ for i, part := range parts {
1385
+ parts[i] = randomProgrammer_capitalize(part)
1386
+ }
1387
+ return strings.Join(parts, "")
1388
+ }
1389
+
1390
+ func randomProgrammer_format_method(format string) string {
1391
+ parts := strings.Split(format, "-")
1392
+ for i, part := range parts {
1393
+ if i != 0 {
1394
+ parts[i] = randomProgrammer_capitalize(part)
1395
+ }
1396
+ }
1397
+ return strings.Join(parts, "")
1398
+ }
1399
+
1400
+ func randomProgrammer_is_typed_array(name string) bool {
1401
+ switch name {
1402
+ case "Uint8Array", "Uint8ClampedArray", "Uint16Array", "Uint32Array", "BigUint64Array",
1403
+ "Int8Array", "Int16Array", "Int32Array", "BigInt64Array", "Float32Array", "Float64Array":
1404
+ return true
1405
+ default:
1406
+ return false
1407
+ }
1408
+ }
1409
+
1410
+ func randomProgrammer_typed_array_range(name string) (string, string, string) {
1411
+ switch name {
1412
+ case "Uint8Array", "Uint8ClampedArray":
1413
+ return "uint32", "0", "255"
1414
+ case "Uint16Array":
1415
+ return "uint32", "0", "65535"
1416
+ case "Uint32Array":
1417
+ return "uint32", "0", "4294967295"
1418
+ case "BigUint64Array":
1419
+ return "uint64", "0", "18446744073709551615"
1420
+ case "Int8Array":
1421
+ return "int32", "-128", "127"
1422
+ case "Int16Array":
1423
+ return "int32", "-32768", "32767"
1424
+ case "Int32Array":
1425
+ return "int32", "-2147483648", "2147483647"
1426
+ case "BigInt64Array":
1427
+ return "uint64", "-9223372036854775808", "9223372036854775807"
1428
+ case "Float32Array":
1429
+ return "float", "-1.175494351e38", "3.4028235e38"
1430
+ default:
1431
+ return "double", fmt.Sprint(math.SmallestNonzeroFloat64), fmt.Sprint(math.MaxFloat64)
1432
+ }
1433
+ }
1434
+
1435
+ func randomProgrammer_tags(base []schemametadata.IMetadataTypeTag, rows ...[]schemametadata.IMetadataTypeTag) []schemametadata.IMetadataTypeTag {
1436
+ output := append([]schemametadata.IMetadataTypeTag{}, base...)
1437
+ for _, row := range rows {
1438
+ output = append(output, row...)
1439
+ }
1440
+ return output
1441
+ }
1442
+
1443
+ func randomProgrammer_first(list []*shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
1444
+ if len(list) == 0 {
1445
+ return nativecontext.EmitFactoryOf(randomProgrammer_factory, emit).NewIdentifier("undefined")
1446
+ }
1447
+ return list[0]
1448
+ }