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,1508 +1,1528 @@
1
- package json
2
-
3
- import (
4
- "fmt"
5
- "strings"
6
-
7
- shimast "github.com/microsoft/typescript-go/shim/ast"
8
- shimchecker "github.com/microsoft/typescript-go/shim/checker"
9
- shimprinter "github.com/microsoft/typescript-go/shim/printer"
10
- nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
11
- nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
12
- nativeprogrammers "github.com/samchon/typia/packages/typia/native/core/programmers"
13
- nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
14
- nativeinternal "github.com/samchon/typia/packages/typia/native/core/programmers/internal"
15
- nativeiterate "github.com/samchon/typia/packages/typia/native/core/programmers/iterate"
16
- schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
17
- )
18
-
19
- type jsonStringifyProgrammerNamespace struct{}
20
-
21
- var JsonStringifyProgrammer = jsonStringifyProgrammerNamespace{}
22
-
23
- type JsonStringifyProgrammer_DecomposeProps struct {
24
- Validated bool
25
- Context nativecontext.ITypiaContext
26
- Functor *nativehelpers.FunctionProgrammer
27
- Type *shimchecker.Type
28
- Name *string
29
- }
30
-
31
- const jsonStringifyProgrammer_PREFIX = "_s"
32
-
33
- var jsonStringifyProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
34
-
35
- func (jsonStringifyProgrammerNamespace) Decompose(props JsonStringifyProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
36
- config := jsonStringifyProgrammer_configure(struct {
37
- Context nativecontext.ITypiaContext
38
- Functor *nativehelpers.FunctionProgrammer
39
- Validated bool
40
- }{
41
- Context: props.Context,
42
- Functor: props.Functor,
43
- Validated: props.Validated,
44
- })
45
- if props.Validated == false {
46
- config.Addition = func(collection *schemametadata.MetadataCollection) []*shimast.Node {
47
- return nativeprogrammers.IsProgrammer.Write_function_statements(nativeprogrammers.IsProgrammer_WriteFunctionStatementsProps{
48
- Context: props.Context,
49
- Functor: props.Functor,
50
- Collection: collection,
51
- })
52
- }
53
- }
54
- composed := nativeinternal.FeatureProgrammer.Compose(nativeinternal.FeatureProgrammer_ComposeProps{
55
- Context: props.Context,
56
- Config: config,
57
- Functor: props.Functor,
58
- Type: props.Type,
59
- Name: props.Name,
60
- })
61
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
62
- return nativeinternal.FeatureProgrammer_IDecomposed{
63
- Functions: composed.Functions,
64
- Statements: composed.Statements,
65
- Arrow: f.NewArrowFunction(
66
- nil,
67
- nil,
68
- f.NewNodeList(composed.Parameters),
69
- composed.Response,
70
- nil,
71
- f.NewToken(shimast.KindEqualsGreaterThanToken),
72
- composed.Body,
73
- ),
74
- }
75
- }
76
-
77
- func (jsonStringifyProgrammerNamespace) Write(props nativecontext.IProgrammerProps) *shimast.Node {
78
- functor := nativehelpers.NewFunctionProgrammer(jsonStringifyProgrammer_method_text(props.Modulo), props.Context.Emit)
79
- result := JsonStringifyProgrammer.Decompose(JsonStringifyProgrammer_DecomposeProps{
80
- Context: props.Context,
81
- Functor: functor,
82
- Type: props.Type,
83
- Name: props.Name,
84
- Validated: false,
85
- })
86
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
87
- Modulo: props.Modulo,
88
- Functor: functor,
89
- Result: result,
90
- })
91
- }
92
-
93
- func jsonStringifyProgrammer_write_array_functions(props struct {
94
- Context nativecontext.ITypiaContext
95
- Config nativeinternal.FeatureProgrammer_IConfig
96
- Functor *nativehelpers.FunctionProgrammer
97
- Collection *schemametadata.MetadataCollection
98
- }) []*shimast.Node {
99
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
100
- output := []*shimast.Node{}
101
- for i, typ := range props.Collection.Arrays() {
102
- if typ.Recursive == false {
103
- continue
104
- }
105
- output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
106
- Name: fmt.Sprintf("%sa%d", props.Config.Prefix, i),
107
- Value: f.NewArrowFunction(
108
- nil,
109
- nil,
110
- f.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
111
- Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
112
- Type: nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
113
- Input: f.NewIdentifier("input"),
114
- })),
115
- nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
116
- nil,
117
- f.NewToken(shimast.KindEqualsGreaterThanToken),
118
- nativeinternal.FeatureProgrammer.VisitGuardSerialize(
119
- nativeinternal.FeatureProgrammer.VisitKey(props.Config.Prefix, "a", i),
120
- jsonStringifyProgrammer_circular_thrower(props.Context, props.Functor),
121
- jsonStringifyProgrammer_decode_array_inline(jsonStringifyProgrammer_decodeArrayProps{
122
- Context: props.Context,
123
- Config: props.Config,
124
- Functor: props.Functor,
125
- Input: f.NewIdentifier("input"),
126
- Array: schemametadata.MetadataArray_create(schemametadata.MetadataArray{
127
- Type: typ,
128
- Tags: [][]schemametadata.IMetadataTypeTag{},
129
- }),
130
- Explore: nativeinternal.FeatureProgrammer_IExplore{
131
- Tracable: props.Config.Trace,
132
- Source: "function",
133
- From: "array",
134
- Postfix: "",
135
- },
136
- }),
137
- props.Context.Emit,
138
- ),
139
- ),
140
- }, props.Context.Emit))
141
- }
142
- return output
143
- }
144
-
145
- func jsonStringifyProgrammer_write_tuple_functions(props struct {
146
- Context nativecontext.ITypiaContext
147
- Config nativeinternal.FeatureProgrammer_IConfig
148
- Functor *nativehelpers.FunctionProgrammer
149
- Collection *schemametadata.MetadataCollection
150
- Validated bool
151
- }) []*shimast.Node {
152
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
153
- output := []*shimast.Node{}
154
- for i, tuple := range props.Collection.Tuples() {
155
- if tuple.Recursive == false {
156
- continue
157
- }
158
- output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
159
- Name: fmt.Sprintf("%st%d", props.Config.Prefix, i),
160
- Value: f.NewArrowFunction(
161
- nil,
162
- nil,
163
- f.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
164
- Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
165
- Type: nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
166
- Input: f.NewIdentifier("input"),
167
- })),
168
- nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
169
- nil,
170
- f.NewToken(shimast.KindEqualsGreaterThanToken),
171
- nativeinternal.FeatureProgrammer.VisitGuardSerialize(
172
- nativeinternal.FeatureProgrammer.VisitKey(props.Config.Prefix, "t", i),
173
- jsonStringifyProgrammer_circular_thrower(props.Context, props.Functor),
174
- jsonStringifyProgrammer_decode_tuple_inline(jsonStringifyProgrammer_decodeTupleInlineProps{
175
- Context: props.Context,
176
- Config: props.Config,
177
- Functor: props.Functor,
178
- Input: f.NewIdentifier("input"),
179
- Tuple: tuple,
180
- Explore: nativeinternal.FeatureProgrammer_IExplore{Tracable: props.Config.Trace, Source: "function", From: "array", Postfix: ""},
181
- Validated: props.Validated,
182
- }),
183
- props.Context.Emit,
184
- ),
185
- ),
186
- }, props.Context.Emit))
187
- }
188
- return output
189
- }
190
-
191
- func jsonStringifyProgrammer_decode(props struct {
192
- Context nativecontext.ITypiaContext
193
- Config nativeinternal.FeatureProgrammer_IConfig
194
- Functor *nativehelpers.FunctionProgrammer
195
- Input *shimast.Node
196
- Metadata *schemametadata.MetadataSchema
197
- Explore nativeinternal.FeatureProgrammer_IExplore
198
- Validated bool
199
- }) *shimast.Node {
200
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
201
- if props.Metadata.Any {
202
- return jsonStringifyProgrammer_wrap_required(struct {
203
- Context nativecontext.ITypiaContext
204
- Input *shimast.Node
205
- Metadata *schemametadata.MetadataSchema
206
- Explore nativeinternal.FeatureProgrammer_IExplore
207
- Expression *shimast.Node
208
- }{
209
- Context: props.Context,
210
- Input: props.Input,
211
- Metadata: props.Metadata,
212
- Explore: props.Explore,
213
- Expression: jsonStringifyProgrammer_wrap_functional(struct {
214
- Context nativecontext.ITypiaContext
215
- Input *shimast.Node
216
- Metadata *schemametadata.MetadataSchema
217
- Explore nativeinternal.FeatureProgrammer_IExplore
218
- Expression *shimast.Node
219
- }{
220
- Context: props.Context,
221
- Input: props.Input,
222
- Metadata: props.Metadata,
223
- Explore: props.Explore,
224
- Expression: f.NewCallExpression(
225
- f.NewIdentifier("JSON.stringify"),
226
- nil,
227
- nil,
228
- f.NewNodeList([]*shimast.Node{props.Input}),
229
- shimast.NodeFlagsNone,
230
- ),
231
- }),
232
- })
233
- }
234
-
235
- size := props.Metadata.Size()
236
- if size == 0 && (props.Metadata.IsRequired() == false || props.Metadata.Nullable) {
237
- if props.Metadata.IsRequired() == false && props.Metadata.Nullable {
238
- if props.Explore.From == "array" {
239
- return f.NewStringLiteral("null", shimast.TokenFlagsNone)
240
- }
241
- return nativefactories.ExpressionFactory.Conditional(
242
- jsonStringifyProgrammer_binary(f.NewKeywordExpression(shimast.KindNullKeyword), shimast.KindEqualsEqualsEqualsToken, props.Input, props.Context.Emit),
243
- f.NewStringLiteral("null", shimast.TokenFlagsNone),
244
- f.NewIdentifier("undefined"),
245
- props.Context.Emit,
246
- )
247
- } else if props.Metadata.IsRequired() == false {
248
- if props.Explore.From == "array" {
249
- return f.NewStringLiteral("null", shimast.TokenFlagsNone)
250
- }
251
- return f.NewIdentifier("undefined")
252
- }
253
- return f.NewStringLiteral("null", shimast.TokenFlagsNone)
254
- }
255
-
256
- unions := []jsonStringifyProgrammer_IUnion{}
257
- if props.Metadata.Escaped != nil {
258
- metadata := props.Metadata.Escaped.Returns
259
- isDate := props.Metadata.Escaped.Original.Size() == 1 &&
260
- len(props.Metadata.Escaped.Original.Natives) != 0 &&
261
- props.Metadata.Escaped.Original.Natives[0].Name == "Date"
262
- unions = append(unions, jsonStringifyProgrammer_IUnion{
263
- Type: "resolved",
264
- Is: func() *shimast.Node {
265
- if isDate {
266
- return nativeiterate.Check_native(nativeiterate.Check_nativeProps{
267
- Name: "Date",
268
- Input: props.Input,
269
- })
270
- }
271
- return nativeprogrammers.IsProgrammer.Decode_to_json(struct {
272
- Input *shimast.Expression
273
- CheckNull bool
274
- }{Input: props.Input, CheckNull: false})
275
- },
276
- Value: func() *shimast.Node {
277
- next := props
278
- next.Metadata = metadata
279
- return jsonStringifyProgrammer_decode_to_json(next)
280
- },
281
- })
282
- } else if len(props.Metadata.Functions) != 0 {
283
- unions = append(unions, jsonStringifyProgrammer_IUnion{
284
- Type: "functional",
285
- Is: func() *shimast.Node {
286
- return nativeprogrammers.IsProgrammer.Decode_functional(props.Input)
287
- },
288
- Value: func() *shimast.Node {
289
- return jsonStringifyProgrammer_decode_functional(props.Explore, props.Context.Emit)
290
- },
291
- })
292
- }
293
-
294
- if len(props.Metadata.Templates) != 0 && nativehelpers.AtomicPredicator.Template(props.Metadata) {
295
- partial := schemametadata.MetadataSchema_initialize()
296
- partial.Atomics = append(partial.Atomics, schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
297
- Type: "string",
298
- Tags: [][]schemametadata.IMetadataTypeTag{},
299
- }))
300
- unions = append(unions, jsonStringifyProgrammer_IUnion{
301
- Type: "template literal",
302
- Is: func() *shimast.Node {
303
- next := props
304
- next.Metadata = partial
305
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
306
- Context: next.Context,
307
- Functor: next.Functor,
308
- Metadata: next.Metadata,
309
- Input: next.Input,
310
- Explore: jsonStringifyProgrammer_checker_explore(next.Explore),
311
- })
312
- },
313
- Value: func() *shimast.Node {
314
- next := props
315
- return jsonStringifyProgrammer_decode_atomic(struct {
316
- Context nativecontext.ITypiaContext
317
- Input *shimast.Node
318
- Type string
319
- Explore nativeinternal.FeatureProgrammer_IExplore
320
- Validated bool
321
- }{Context: next.Context, Input: next.Input, Type: "string", Explore: next.Explore, Validated: next.Validated})
322
- },
323
- })
324
- }
325
-
326
- for _, constant := range props.Metadata.Constants {
327
- constant := constant
328
- if nativehelpers.AtomicPredicator.RuntimeConstant(struct {
329
- Metadata *schemametadata.MetadataSchema
330
- Name string
331
- }{Metadata: props.Metadata, Name: constant.Type}) == false {
332
- continue
333
- }
334
- if constant.Type != "string" {
335
- unions = append(unions, jsonStringifyProgrammer_IUnion{
336
- Type: "atomic",
337
- Is: func() *shimast.Node {
338
- partial := schemametadata.MetadataSchema_initialize()
339
- partial.Atomics = append(partial.Atomics, schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
340
- Type: constant.Type,
341
- Tags: [][]schemametadata.IMetadataTypeTag{},
342
- }))
343
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
344
- Context: props.Context,
345
- Functor: props.Functor,
346
- Metadata: partial,
347
- Input: props.Input,
348
- Explore: jsonStringifyProgrammer_checker_explore(props.Explore),
349
- })
350
- },
351
- Value: func() *shimast.Node {
352
- return jsonStringifyProgrammer_decode_atomic(struct {
353
- Context nativecontext.ITypiaContext
354
- Input *shimast.Node
355
- Type string
356
- Explore nativeinternal.FeatureProgrammer_IExplore
357
- Validated bool
358
- }{Context: props.Context, Input: props.Input, Type: constant.Type, Explore: props.Explore, Validated: props.Validated})
359
- },
360
- })
361
- } else if len(props.Metadata.Templates) == 0 {
362
- values := make([]string, 0, len(constant.Values))
363
- for _, value := range constant.Values {
364
- if str, ok := value.Value.(string); ok {
365
- values = append(values, str)
366
- }
367
- }
368
- unions = append(unions, jsonStringifyProgrammer_IUnion{
369
- Type: "const string",
370
- Is: func() *shimast.Node {
371
- partial := schemametadata.MetadataSchema_initialize()
372
- partial.Atomics = append(partial.Atomics, schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
373
- Type: "string",
374
- Tags: [][]schemametadata.IMetadataTypeTag{},
375
- }))
376
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
377
- Context: props.Context,
378
- Functor: props.Functor,
379
- Metadata: partial,
380
- Input: props.Input,
381
- Explore: jsonStringifyProgrammer_checker_explore(props.Explore),
382
- })
383
- },
384
- Value: func() *shimast.Node {
385
- return jsonStringifyProgrammer_decode_constant_string(struct {
386
- Context nativecontext.ITypiaContext
387
- Functor *nativehelpers.FunctionProgrammer
388
- Input *shimast.Node
389
- Values []string
390
- Explore nativeinternal.FeatureProgrammer_IExplore
391
- Validated bool
392
- }{Context: props.Context, Functor: props.Functor, Input: props.Input, Values: values, Explore: props.Explore, Validated: props.Validated})
393
- },
394
- })
395
- }
396
- }
397
-
398
- for _, atomic := range props.Metadata.Atomics {
399
- atomic := atomic
400
- if nativehelpers.AtomicPredicator.RuntimeAtomic(struct {
401
- Metadata *schemametadata.MetadataSchema
402
- Name string
403
- }{Metadata: props.Metadata, Name: atomic.Type}) {
404
- unions = append(unions, jsonStringifyProgrammer_IUnion{
405
- Type: "atomic",
406
- Is: func() *shimast.Node {
407
- partial := schemametadata.MetadataSchema_initialize()
408
- partial.Atomics = append(partial.Atomics, atomic)
409
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
410
- Context: props.Context,
411
- Functor: props.Functor,
412
- Metadata: partial,
413
- Input: props.Input,
414
- Explore: jsonStringifyProgrammer_checker_explore(props.Explore),
415
- })
416
- },
417
- Value: func() *shimast.Node {
418
- return jsonStringifyProgrammer_decode_atomic(struct {
419
- Context nativecontext.ITypiaContext
420
- Input *shimast.Node
421
- Type string
422
- Explore nativeinternal.FeatureProgrammer_IExplore
423
- Validated bool
424
- }{Context: props.Context, Input: props.Input, Type: atomic.Type, Explore: props.Explore, Validated: props.Validated})
425
- },
426
- })
427
- }
428
- }
429
-
430
- for _, tuple := range props.Metadata.Tuples {
431
- tuple := tuple
432
- unions = append(unions, jsonStringifyProgrammer_IUnion{
433
- Type: "tuple",
434
- Is: func() *shimast.Node {
435
- partial := schemametadata.MetadataSchema_initialize()
436
- partial.Tuples = append(partial.Tuples, tuple)
437
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
438
- Context: props.Context,
439
- Functor: props.Functor,
440
- Metadata: partial,
441
- Input: props.Input,
442
- Explore: jsonStringifyProgrammer_checker_explore(props.Explore),
443
- })
444
- },
445
- Value: func() *shimast.Node {
446
- return jsonStringifyProgrammer_decode_tuple(jsonStringifyProgrammer_decodeTupleProps{
447
- Context: props.Context,
448
- Config: props.Config,
449
- Functor: props.Functor,
450
- Input: props.Input,
451
- Tuple: tuple,
452
- Explore: props.Explore,
453
- Validated: props.Validated,
454
- })
455
- },
456
- })
457
- }
458
-
459
- if len(props.Metadata.Arrays) != 0 {
460
- value := func() *shimast.Node {
461
- if len(props.Metadata.Arrays) == 1 {
462
- explore := props.Explore
463
- explore.From = "array"
464
- return jsonStringifyProgrammer_decode_array(jsonStringifyProgrammer_decodeArrayProps{
465
- Context: props.Context,
466
- Config: props.Config,
467
- Functor: props.Functor,
468
- Input: props.Input,
469
- Array: props.Metadata.Arrays[0],
470
- Explore: explore,
471
- })
472
- }
473
- if jsonStringifyProgrammer_some_arrays(props.Metadata.Arrays, func(elem *schemametadata.MetadataArray) bool {
474
- return elem.Type.Value.Any
475
- }) {
476
- return f.NewCallExpression(
477
- f.NewIdentifier("JSON.stringify"),
478
- nil,
479
- nil,
480
- f.NewNodeList([]*shimast.Node{props.Input}),
481
- shimast.NodeFlagsNone,
482
- )
483
- }
484
- explore := props.Explore
485
- explore.From = "array"
486
- return jsonStringifyProgrammer_explore_arrays(jsonStringifyProgrammer_exploreArraysProps{
487
- Context: props.Context,
488
- Config: props.Config,
489
- Functor: props.Functor,
490
- Input: props.Input,
491
- Arrays: props.Metadata.Arrays,
492
- Explore: explore,
493
- })
494
- }
495
- unions = append(unions, jsonStringifyProgrammer_IUnion{
496
- Type: "array",
497
- Is: func() *shimast.Node {
498
- return nativefactories.ExpressionFactory.IsArray(props.Input, props.Context.Emit)
499
- },
500
- Value: value,
501
- })
502
- }
503
-
504
- for _, native := range props.Metadata.Natives {
505
- native := native
506
- unions = append(unions, jsonStringifyProgrammer_IUnion{
507
- Type: "object",
508
- Is: func() *shimast.Node {
509
- return nativeiterate.Check_native(nativeiterate.Check_nativeProps{Name: native.Name, Input: props.Input})
510
- },
511
- Value: func() *shimast.Node {
512
- if nativehelpers.AtomicPredicator.Native(native.Name) {
513
- return jsonStringifyProgrammer_decode_atomic(struct {
514
- Context nativecontext.ITypiaContext
515
- Input *shimast.Node
516
- Type string
517
- Explore nativeinternal.FeatureProgrammer_IExplore
518
- Validated bool
519
- }{Context: props.Context, Input: props.Input, Type: strings.ToLower(native.Name), Explore: props.Explore, Validated: props.Validated})
520
- }
521
- return f.NewStringLiteral("{}", shimast.TokenFlagsNone)
522
- },
523
- })
524
- }
525
-
526
- if len(props.Metadata.Sets) != 0 {
527
- unions = append(unions, jsonStringifyProgrammer_IUnion{
528
- Type: "object",
529
- Is: func() *shimast.Node {
530
- return nativefactories.ExpressionFactory.IsInstanceOf("Set", props.Input, props.Context.Emit)
531
- },
532
- Value: func() *shimast.Node {
533
- return f.NewStringLiteral("{}", shimast.TokenFlagsNone)
534
- },
535
- })
536
- }
537
- if len(props.Metadata.Maps) != 0 {
538
- unions = append(unions, jsonStringifyProgrammer_IUnion{
539
- Type: "object",
540
- Is: func() *shimast.Node {
541
- return nativefactories.ExpressionFactory.IsInstanceOf("Map", props.Input, props.Context.Emit)
542
- },
543
- Value: func() *shimast.Node {
544
- return f.NewStringLiteral("{}", shimast.TokenFlagsNone)
545
- },
546
- })
547
- }
548
- if len(props.Metadata.Objects) != 0 {
549
- unions = append(unions, jsonStringifyProgrammer_IUnion{
550
- Type: "object",
551
- Is: func() *shimast.Node {
552
- return nativefactories.ExpressionFactory.IsObject(nativefactories.ExpressionFactory_IsObjectProps{
553
- CheckNull: true,
554
- CheckArray: jsonStringifyProgrammer_some_objects(props.Metadata.Objects, func(object *schemametadata.MetadataObject) bool {
555
- return jsonStringifyProgrammer_every_properties(object.Type.Properties, func(prop *schemametadata.MetadataProperty) bool {
556
- return !prop.Key.IsSoleLiteral() || !prop.Value.IsRequired()
557
- })
558
- }),
559
- Input: props.Input,
560
- }, props.Context.Emit)
561
- },
562
- Value: func() *shimast.Node {
563
- explore := props.Explore
564
- explore.From = "object"
565
- return jsonStringifyProgrammer_explore_objects(jsonStringifyProgrammer_exploreObjectsProps{
566
- Context: props.Context,
567
- Config: props.Config,
568
- Functor: props.Functor,
569
- Input: props.Input,
570
- Metadata: props.Metadata,
571
- Explore: explore,
572
- })
573
- },
574
- })
575
- }
576
-
577
- wrapper := func(output *shimast.Node) *shimast.Node {
578
- return jsonStringifyProgrammer_wrap_required(struct {
579
- Context nativecontext.ITypiaContext
580
- Input *shimast.Node
581
- Metadata *schemametadata.MetadataSchema
582
- Explore nativeinternal.FeatureProgrammer_IExplore
583
- Expression *shimast.Node
584
- }{
585
- Context: props.Context,
586
- Input: props.Input,
587
- Metadata: props.Metadata,
588
- Explore: props.Explore,
589
- Expression: jsonStringifyProgrammer_wrap_nullable(struct {
590
- Context nativecontext.ITypiaContext
591
- Input *shimast.Node
592
- Metadata *schemametadata.MetadataSchema
593
- Expression *shimast.Node
594
- }{Context: props.Context, Input: props.Input, Metadata: props.Metadata, Expression: output}),
595
- })
596
- }
597
- if len(unions) == 0 {
598
- return f.NewCallExpression(
599
- f.NewIdentifier("JSON.stringify"),
600
- nil,
601
- nil,
602
- f.NewNodeList([]*shimast.Node{props.Input}),
603
- shimast.NodeFlagsNone,
604
- )
605
- }
606
- if len(unions) == 1 {
607
- return wrapper(unions[0].Value())
608
- }
609
- return wrapper(f.NewCallExpression(
610
- f.NewArrowFunction(
611
- nil,
612
- nil,
613
- f.NewNodeList(nil),
614
- nil,
615
- nil,
616
- f.NewToken(shimast.KindEqualsGreaterThanToken),
617
- jsonStringifyProgrammer_iterate(jsonStringifyProgrammer_iterateProps{
618
- Context: props.Context,
619
- Functor: props.Functor,
620
- Input: props.Input,
621
- Expected: props.Metadata.GetDisplayName(),
622
- Unions: unions,
623
- }),
624
- ),
625
- nil,
626
- nil,
627
- nil,
628
- shimast.NodeFlagsNone,
629
- ))
630
- }
631
-
632
- func jsonStringifyProgrammer_decode_object(props struct {
633
- Functor *nativehelpers.FunctionProgrammer
634
- Input *shimast.Node
635
- Object *schemametadata.MetadataObjectType
636
- Explore nativeinternal.FeatureProgrammer_IExplore
637
- }) *shimast.Node {
638
- return nativeinternal.FeatureProgrammer.Decode_object(nativeinternal.FeatureProgrammer_DecodeObjectProps{
639
- Config: nativeinternal.FeatureProgrammer_DecodeObjectConfig{Trace: false, Path: false, Prefix: jsonStringifyProgrammer_PREFIX, Visited: props.Functor.Visited()},
640
- Functor: props.Functor,
641
- Object: props.Object,
642
- Input: props.Input,
643
- Explore: props.Explore,
644
- })
645
- }
646
-
647
- type jsonStringifyProgrammer_decodeArrayProps struct {
648
- Context nativecontext.ITypiaContext
649
- Config nativeinternal.FeatureProgrammer_IConfig
650
- Functor *nativehelpers.FunctionProgrammer
651
- Input *shimast.Node
652
- Array *schemametadata.MetadataArray
653
- Explore nativeinternal.FeatureProgrammer_IExplore
654
- }
655
-
656
- func jsonStringifyProgrammer_decode_array(props jsonStringifyProgrammer_decodeArrayProps) *shimast.Node {
657
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
658
- if props.Array.Type.Recursive {
659
- index := 0
660
- if props.Array.Type.Index != nil {
661
- index = *props.Array.Type.Index
662
- }
663
- return f.NewCallExpression(
664
- f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%sa%d", props.Config.Prefix, index))),
665
- nil,
666
- nil,
667
- f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
668
- Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
669
- Input: props.Input,
670
- Explore: jsonStringifyProgrammer_explore_with(props.Explore, "function", "array"),
671
- })),
672
- shimast.NodeFlagsNone,
673
- )
674
- }
675
- return jsonStringifyProgrammer_decode_array_inline(props)
676
- }
677
-
678
- func jsonStringifyProgrammer_decode_array_inline(props jsonStringifyProgrammer_decodeArrayProps) *shimast.Node {
679
- return nativeinternal.FeatureProgrammer.Decode_array(nativeinternal.FeatureProgrammer_DecodeArrayProps{
680
- Config: nativeinternal.FeatureProgrammer_DecodeArrayConfig{
681
- Trace: props.Config.Trace,
682
- Path: props.Config.Path,
683
- Decoder: props.Config.Decoder,
684
- Prefix: props.Config.Prefix,
685
- },
686
- Functor: props.Functor,
687
- Combiner: func(next struct {
688
- Input *shimast.Expression
689
- Arrow *shimast.Node
690
- }) *shimast.Node {
691
- return nativehelpers.StringifyJoiner.Array(nativehelpers.StringifyJoiner_ArrayProps{
692
- Input: next.Input,
693
- Arrow: next.Arrow,
694
- Emit: props.Context.Emit,
695
- })
696
- },
697
- Array: props.Array,
698
- Input: props.Input,
699
- Explore: props.Explore,
700
- })
701
- }
702
-
703
- type jsonStringifyProgrammer_decodeTupleProps struct {
704
- Context nativecontext.ITypiaContext
705
- Config nativeinternal.FeatureProgrammer_IConfig
706
- Functor *nativehelpers.FunctionProgrammer
707
- Input *shimast.Node
708
- Tuple *schemametadata.MetadataTuple
709
- Explore nativeinternal.FeatureProgrammer_IExplore
710
- Validated bool
711
- }
712
-
713
- func jsonStringifyProgrammer_decode_tuple(props jsonStringifyProgrammer_decodeTupleProps) *shimast.Node {
714
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
715
- if props.Tuple.Type.Recursive {
716
- index := 0
717
- if props.Tuple.Type.Index != nil {
718
- index = *props.Tuple.Type.Index
719
- }
720
- return f.NewCallExpression(
721
- f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%st%d", props.Config.Prefix, index))),
722
- nil,
723
- nil,
724
- f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
725
- Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
726
- Explore: jsonStringifyProgrammer_explore_with(props.Explore, "function", props.Explore.From),
727
- Input: props.Input,
728
- })),
729
- shimast.NodeFlagsNone,
730
- )
731
- }
732
- return jsonStringifyProgrammer_decode_tuple_inline(jsonStringifyProgrammer_decodeTupleInlineProps{
733
- Context: props.Context,
734
- Config: props.Config,
735
- Functor: props.Functor,
736
- Input: props.Input,
737
- Tuple: props.Tuple.Type,
738
- Explore: props.Explore,
739
- Validated: props.Validated,
740
- })
741
- }
742
-
743
- type jsonStringifyProgrammer_decodeTupleInlineProps struct {
744
- Context nativecontext.ITypiaContext
745
- Config nativeinternal.FeatureProgrammer_IConfig
746
- Functor *nativehelpers.FunctionProgrammer
747
- Input *shimast.Node
748
- Tuple *schemametadata.MetadataTupleType
749
- Explore nativeinternal.FeatureProgrammer_IExplore
750
- Validated bool
751
- }
752
-
753
- func jsonStringifyProgrammer_decode_tuple_inline(props jsonStringifyProgrammer_decodeTupleInlineProps) *shimast.Node {
754
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
755
- elements := []*shimast.Node{}
756
- for index, elem := range props.Tuple.Elements {
757
- if elem.Rest != nil {
758
- continue
759
- }
760
- explore := props.Explore
761
- explore.From = "array"
762
- if len(props.Explore.Postfix) != 0 {
763
- explore.Postfix = fmt.Sprintf("%s[%d]\"", nativeiterate.Postfix_of_tuple_export(props.Explore.Postfix), index)
764
- } else {
765
- explore.Postfix = fmt.Sprintf("\"[%d]\"", index)
766
- }
767
- elements = append(elements, jsonStringifyProgrammer_decode(struct {
768
- Context nativecontext.ITypiaContext
769
- Config nativeinternal.FeatureProgrammer_IConfig
770
- Functor *nativehelpers.FunctionProgrammer
771
- Input *shimast.Node
772
- Metadata *schemametadata.MetadataSchema
773
- Explore nativeinternal.FeatureProgrammer_IExplore
774
- Validated bool
775
- }{
776
- Context: props.Context,
777
- Config: props.Config,
778
- Functor: props.Functor,
779
- Input: f.NewElementAccessExpression(props.Input, nil, nativefactories.ExpressionFactory.Number(index, props.Context.Emit), shimast.NodeFlagsNone),
780
- Metadata: elem,
781
- Explore: explore,
782
- Validated: props.Validated,
783
- }))
784
- }
785
- var rest *shimast.Node
786
- if len(props.Tuple.Elements) != 0 {
787
- last := props.Tuple.Elements[len(props.Tuple.Elements)-1]
788
- if last.Rest != nil {
789
- explore := props.Explore
790
- start := len(props.Tuple.Elements) - 1
791
- explore.Start = &start
792
- code := jsonStringifyProgrammer_decode(struct {
793
- Context nativecontext.ITypiaContext
794
- Config nativeinternal.FeatureProgrammer_IConfig
795
- Functor *nativehelpers.FunctionProgrammer
796
- Input *shimast.Node
797
- Metadata *schemametadata.MetadataSchema
798
- Explore nativeinternal.FeatureProgrammer_IExplore
799
- Validated bool
800
- }{
801
- Context: props.Context,
802
- Config: props.Config,
803
- Functor: props.Functor,
804
- Input: f.NewCallExpression(
805
- nativefactories.IdentifierFactory.Access(props.Context.Emit, props.Input, "slice"),
806
- nil,
807
- nil,
808
- f.NewNodeList([]*shimast.Node{nativefactories.ExpressionFactory.Number(start, props.Context.Emit)}),
809
- shimast.NodeFlagsNone,
810
- ),
811
- Metadata: nativeiterate.Wrap_metadata_rest_tuple_export(last.Rest),
812
- Explore: explore,
813
- Validated: props.Validated,
814
- })
815
- rest = f.NewCallExpression(
816
- jsonStringifyProgrammer_internal(props.Context, "jsonStringifyRest"),
817
- nil,
818
- nil,
819
- f.NewNodeList([]*shimast.Node{code}),
820
- shimast.NodeFlagsNone,
821
- )
822
- }
823
- }
824
- return nativehelpers.StringifyJoiner.Tuple(nativehelpers.StringifyJoiner_TupleProps{
825
- Elements: elements,
826
- Rest: rest,
827
- Emit: props.Context.Emit,
828
- })
829
- }
830
-
831
- func jsonStringifyProgrammer_decode_atomic(props struct {
832
- Context nativecontext.ITypiaContext
833
- Input *shimast.Node
834
- Type string
835
- Explore nativeinternal.FeatureProgrammer_IExplore
836
- Validated bool
837
- }) *shimast.Node {
838
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
839
- input := props.Input
840
- if props.Type == "string" {
841
- return f.NewCallExpression(
842
- jsonStringifyProgrammer_internal(props.Context, "jsonStringifyString"),
843
- nil,
844
- nil,
845
- f.NewNodeList([]*shimast.Node{props.Input}),
846
- shimast.NodeFlagsNone,
847
- )
848
- } else if props.Type == "number" {
849
- if !(props.Validated && nativehelpers.OptionPredicator.Finite(props.Context.Options)) {
850
- input = f.NewCallExpression(
851
- jsonStringifyProgrammer_internal(props.Context, "jsonStringifyNumber"),
852
- nil,
853
- nil,
854
- f.NewNodeList([]*shimast.Node{props.Input}),
855
- shimast.NodeFlagsNone,
856
- )
857
- }
858
- }
859
- return f.NewCallExpression(
860
- f.NewIdentifier("String"),
861
- nil,
862
- nil,
863
- f.NewNodeList([]*shimast.Node{input}),
864
- shimast.NodeFlagsNone,
865
- )
866
- }
867
-
868
- func jsonStringifyProgrammer_decode_constant_string(props struct {
869
- Context nativecontext.ITypiaContext
870
- Functor *nativehelpers.FunctionProgrammer
871
- Input *shimast.Node
872
- Values []string
873
- Explore nativeinternal.FeatureProgrammer_IExplore
874
- Validated bool
875
- }) *shimast.Node {
876
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
877
- if jsonStringifyProgrammer_every_strings(props.Values, func(value string) bool {
878
- return nativehelpers.StringifyPredicator.Require_escape(value) == false
879
- }) {
880
- return jsonStringifyProgrammer_binary(
881
- jsonStringifyProgrammer_binary(
882
- f.NewStringLiteral("\"", shimast.TokenFlagsNone),
883
- shimast.KindPlusToken,
884
- props.Input,
885
- props.Context.Emit,
886
- ),
887
- shimast.KindPlusToken,
888
- f.NewStringLiteral("\"", shimast.TokenFlagsNone),
889
- props.Context.Emit,
890
- )
891
- }
892
- return jsonStringifyProgrammer_decode_atomic(struct {
893
- Context nativecontext.ITypiaContext
894
- Input *shimast.Node
895
- Type string
896
- Explore nativeinternal.FeatureProgrammer_IExplore
897
- Validated bool
898
- }{Context: props.Context, Input: props.Input, Type: "string", Explore: props.Explore, Validated: props.Validated})
899
- }
900
-
901
- func jsonStringifyProgrammer_decode_to_json(props struct {
902
- Context nativecontext.ITypiaContext
903
- Config nativeinternal.FeatureProgrammer_IConfig
904
- Functor *nativehelpers.FunctionProgrammer
905
- Input *shimast.Node
906
- Metadata *schemametadata.MetadataSchema
907
- Explore nativeinternal.FeatureProgrammer_IExplore
908
- Validated bool
909
- }) *shimast.Node {
910
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
911
- next := props
912
- next.Input = f.NewCallExpression(
913
- nativefactories.IdentifierFactory.Access(props.Context.Emit, props.Input, "toJSON"),
914
- nil,
915
- nil,
916
- f.NewNodeList(nil),
917
- shimast.NodeFlagsNone,
918
- )
919
- return jsonStringifyProgrammer_decode(next)
920
- }
921
-
922
- func jsonStringifyProgrammer_decode_functional(explore nativeinternal.FeatureProgrammer_IExplore, emit *shimprinter.EmitContext) *shimast.Node {
923
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, emit)
924
- if explore.From == "array" {
925
- return f.NewStringLiteral("null", shimast.TokenFlagsNone)
926
- }
927
- return f.NewIdentifier("undefined")
928
- }
929
-
930
- type jsonStringifyProgrammer_exploreObjectsProps struct {
931
- Context nativecontext.ITypiaContext
932
- Config nativeinternal.FeatureProgrammer_IConfig
933
- Functor *nativehelpers.FunctionProgrammer
934
- Input *shimast.Node
935
- Metadata *schemametadata.MetadataSchema
936
- Explore nativeinternal.FeatureProgrammer_IExplore
937
- }
938
-
939
- func jsonStringifyProgrammer_explore_objects(props jsonStringifyProgrammer_exploreObjectsProps) *shimast.Node {
940
- if len(props.Metadata.Objects) == 1 {
941
- return jsonStringifyProgrammer_decode_object(struct {
942
- Functor *nativehelpers.FunctionProgrammer
943
- Input *shimast.Node
944
- Object *schemametadata.MetadataObjectType
945
- Explore nativeinternal.FeatureProgrammer_IExplore
946
- }{
947
- Functor: props.Functor,
948
- Input: props.Input,
949
- Object: props.Metadata.Objects[0].Type,
950
- Explore: props.Explore,
951
- })
952
- }
953
- index := 0
954
- if props.Metadata.Union_index != nil {
955
- index = *props.Metadata.Union_index
956
- }
957
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
958
- return f.NewCallExpression(
959
- f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%su%d", jsonStringifyProgrammer_PREFIX, index))),
960
- nil,
961
- nil,
962
- f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
963
- Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
964
- Input: props.Input,
965
- Explore: props.Explore,
966
- })),
967
- shimast.NodeFlagsNone,
968
- )
969
- }
970
-
971
- type jsonStringifyProgrammer_exploreArraysProps struct {
972
- Context nativecontext.ITypiaContext
973
- Config nativeinternal.FeatureProgrammer_IConfig
974
- Functor *nativehelpers.FunctionProgrammer
975
- Input *shimast.Node
976
- Arrays []*schemametadata.MetadataArray
977
- Explore nativeinternal.FeatureProgrammer_IExplore
978
- }
979
-
980
- func jsonStringifyProgrammer_explore_arrays(props jsonStringifyProgrammer_exploreArraysProps) *shimast.Node {
981
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
982
- return jsonStringifyProgrammer_explore_array_like_union_types(jsonStringifyProgrammer_exploreArrayLikeUnionTypesProps[*schemametadata.MetadataArray]{
983
- Context: props.Context,
984
- Config: props.Config,
985
- Functor: props.Functor,
986
- Factory: func(next jsonStringifyProgrammer_arrayLikeFactoryProps[*schemametadata.MetadataArray]) *shimast.Node {
987
- return nativehelpers.UnionExplorer.Array(nativehelpers.UnionExplorer_ArrayProps{
988
- Emit: props.Context.Emit,
989
- Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
990
- Checker: func(v nativehelpers.UnionExplorer_ArrayLikeCheckerProps) *shimast.Node {
991
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
992
- Context: props.Context,
993
- Functor: props.Functor,
994
- Metadata: v.Definition.(*schemametadata.MetadataSchema),
995
- Input: v.Input,
996
- Explore: jsonStringifyProgrammer_checker_explore(v.Explore),
997
- })
998
- },
999
- Decoder: func(v nativehelpers.UnionExplorer_ArrayLikeDecoderProps) *shimast.Node {
1000
- return jsonStringifyProgrammer_decode_array(jsonStringifyProgrammer_decodeArrayProps{
1001
- Context: props.Context,
1002
- Config: props.Config,
1003
- Functor: props.Functor,
1004
- Input: v.Input,
1005
- Array: v.Definition.(*schemametadata.MetadataArray),
1006
- Explore: jsonStringifyProgrammer_feature_explore(v.Explore),
1007
- })
1008
- },
1009
- Empty: f.NewStringLiteral("[]", shimast.TokenFlagsNone),
1010
- Success: f.NewKeywordExpression(shimast.KindTrueKeyword),
1011
- Failure: func(v nativehelpers.UnionExplorer_ArrayLikeFailureProps) *shimast.Node {
1012
- return jsonStringifyProgrammer_create_throw_error(jsonStringifyProgrammer_throwProps{
1013
- Context: props.Context,
1014
- Functor: props.Functor,
1015
- Expected: v.Expected,
1016
- Input: v.Input,
1017
- })
1018
- },
1019
- },
1020
- Parameters: next.Parameters,
1021
- Input: next.Input,
1022
- Arrays: next.Definitions,
1023
- Explore: next.Explore,
1024
- })
1025
- },
1026
- Input: props.Input,
1027
- Elements: props.Arrays,
1028
- Explore: props.Explore,
1029
- })
1030
- }
1031
-
1032
- type jsonStringifyProgrammer_arrayLikeFactoryProps[T any] struct {
1033
- Parameters []*shimast.Node
1034
- Input *shimast.Node
1035
- Definitions []T
1036
- Explore nativeinternal.FeatureProgrammer_IExplore
1037
- }
1038
-
1039
- type jsonStringifyProgrammer_exploreArrayLikeUnionTypesProps[T interface {
1040
- *schemametadata.MetadataArray | *schemametadata.MetadataTuple
1041
- }] struct {
1042
- Context nativecontext.ITypiaContext
1043
- Config nativeinternal.FeatureProgrammer_IConfig
1044
- Functor *nativehelpers.FunctionProgrammer
1045
- Factory func(next jsonStringifyProgrammer_arrayLikeFactoryProps[T]) *shimast.Node
1046
- Input *shimast.Node
1047
- Elements []T
1048
- Explore nativeinternal.FeatureProgrammer_IExplore
1049
- }
1050
-
1051
- func jsonStringifyProgrammer_explore_array_like_union_types[T interface {
1052
- *schemametadata.MetadataArray | *schemametadata.MetadataTuple
1053
- }](props jsonStringifyProgrammer_exploreArrayLikeUnionTypesProps[T]) *shimast.Node {
1054
- arrow := func(next struct {
1055
- Parameters []*shimast.Node
1056
- Explore nativeinternal.FeatureProgrammer_IExplore
1057
- Input *shimast.Node
1058
- }) *shimast.Node {
1059
- return props.Factory(jsonStringifyProgrammer_arrayLikeFactoryProps[T]{
1060
- Definitions: props.Elements,
1061
- Parameters: next.Parameters,
1062
- Input: next.Input,
1063
- Explore: next.Explore,
1064
- })
1065
- }
1066
- arrayExplore := props.Explore
1067
- arrayExplore.Source = "function"
1068
- arrayExplore.From = "array"
1069
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
1070
- return f.NewCallExpression(
1071
- f.NewIdentifier(props.Functor.EmplaceUnion(props.Config.Prefix, jsonStringifyProgrammer_array_like_names(props.Elements), func() *shimast.Node {
1072
- explore := arrayExplore
1073
- explore.Postfix = ""
1074
- return arrow(struct {
1075
- Parameters []*shimast.Node
1076
- Explore nativeinternal.FeatureProgrammer_IExplore
1077
- Input *shimast.Node
1078
- }{
1079
- Parameters: nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
1080
- Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
1081
- Type: nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
1082
- Input: f.NewIdentifier("input"),
1083
- }),
1084
- Explore: explore,
1085
- Input: f.NewIdentifier("input"),
1086
- })
1087
- })),
1088
- nil,
1089
- nil,
1090
- f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
1091
- Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
1092
- Explore: arrayExplore,
1093
- Input: props.Input,
1094
- })),
1095
- shimast.NodeFlagsNone,
1096
- )
1097
- }
1098
-
1099
- func jsonStringifyProgrammer_wrap_required(props struct {
1100
- Context nativecontext.ITypiaContext
1101
- Input *shimast.Node
1102
- Metadata *schemametadata.MetadataSchema
1103
- Explore nativeinternal.FeatureProgrammer_IExplore
1104
- Expression *shimast.Node
1105
- }) *shimast.Node {
1106
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
1107
- if props.Metadata.IsRequired() && props.Metadata.Any == false {
1108
- return props.Expression
1109
- }
1110
- alternate := f.NewIdentifier("undefined")
1111
- if props.Explore.From == "array" {
1112
- alternate = f.NewStringLiteral("null", shimast.TokenFlagsNone)
1113
- }
1114
- return nativefactories.ExpressionFactory.Conditional(
1115
- jsonStringifyProgrammer_binary(f.NewIdentifier("undefined"), shimast.KindExclamationEqualsEqualsToken, props.Input, props.Context.Emit),
1116
- props.Expression,
1117
- alternate,
1118
- props.Context.Emit,
1119
- )
1120
- }
1121
-
1122
- func jsonStringifyProgrammer_wrap_nullable(props struct {
1123
- Context nativecontext.ITypiaContext
1124
- Input *shimast.Node
1125
- Metadata *schemametadata.MetadataSchema
1126
- Expression *shimast.Node
1127
- }) *shimast.Node {
1128
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
1129
- if props.Metadata.Nullable == false {
1130
- return props.Expression
1131
- }
1132
- return nativefactories.ExpressionFactory.Conditional(
1133
- jsonStringifyProgrammer_binary(f.NewKeywordExpression(shimast.KindNullKeyword), shimast.KindExclamationEqualsEqualsToken, props.Input, props.Context.Emit),
1134
- props.Expression,
1135
- f.NewStringLiteral("null", shimast.TokenFlagsNone),
1136
- props.Context.Emit,
1137
- )
1138
- }
1139
-
1140
- func jsonStringifyProgrammer_wrap_functional(props struct {
1141
- Context nativecontext.ITypiaContext
1142
- Input *shimast.Node
1143
- Metadata *schemametadata.MetadataSchema
1144
- Explore nativeinternal.FeatureProgrammer_IExplore
1145
- Expression *shimast.Node
1146
- }) *shimast.Node {
1147
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
1148
- if len(props.Metadata.Functions) == 0 {
1149
- return props.Expression
1150
- }
1151
- return nativefactories.ExpressionFactory.Conditional(
1152
- jsonStringifyProgrammer_binary(f.NewStringLiteral("function", shimast.TokenFlagsNone), shimast.KindExclamationEqualsEqualsToken, nativefactories.ValueFactory.TYPEOF(props.Input), props.Context.Emit),
1153
- props.Expression,
1154
- jsonStringifyProgrammer_decode_functional(props.Explore, props.Context.Emit),
1155
- props.Context.Emit,
1156
- )
1157
- }
1158
-
1159
- type jsonStringifyProgrammer_iterateProps struct {
1160
- Context nativecontext.ITypiaContext
1161
- Functor *nativehelpers.FunctionProgrammer
1162
- Input *shimast.Node
1163
- Unions []jsonStringifyProgrammer_IUnion
1164
- Expected string
1165
- }
1166
-
1167
- func jsonStringifyProgrammer_iterate(props jsonStringifyProgrammer_iterateProps) *shimast.Node {
1168
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
1169
- statements := []*shimast.Node{}
1170
- for _, union := range props.Unions {
1171
- statements = append(statements, f.NewIfStatement(
1172
- union.Is(),
1173
- f.NewReturnStatement(union.Value()),
1174
- nil,
1175
- ))
1176
- }
1177
- statements = append(statements, jsonStringifyProgrammer_create_throw_error(jsonStringifyProgrammer_throwProps{
1178
- Context: props.Context,
1179
- Functor: props.Functor,
1180
- Input: props.Input,
1181
- Expected: props.Expected,
1182
- }))
1183
- return f.NewBlock(f.NewNodeList(statements), true)
1184
- }
1185
-
1186
- func jsonStringifyProgrammer_configure(props struct {
1187
- Context nativecontext.ITypiaContext
1188
- Functor *nativehelpers.FunctionProgrammer
1189
- Validated bool
1190
- }) nativeinternal.FeatureProgrammer_IConfig {
1191
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
1192
- var config nativeinternal.FeatureProgrammer_IConfig
1193
- config = nativeinternal.FeatureProgrammer_IConfig{
1194
- Types: nativeinternal.FeatureProgrammer_IConfig_ITypes{
1195
- Input: func(t *shimchecker.Type, name *string) *shimast.TypeNode {
1196
- if name != nil {
1197
- return f.NewTypeReferenceNode(f.NewIdentifier(*name), nil)
1198
- }
1199
- return f.NewTypeReferenceNode(f.NewIdentifier(nativefactories.TypeFactory.GetFullName(nativefactories.TypeFactory_GetFullNameProps{
1200
- Checker: props.Context.Checker,
1201
- Type: t,
1202
- })), nil)
1203
- },
1204
- Output: func(t *shimchecker.Type, name *string) *shimast.TypeNode {
1205
- return nativefactories.TypeFactory.Keyword("string", props.Context.Emit)
1206
- },
1207
- },
1208
- Prefix: jsonStringifyProgrammer_PREFIX,
1209
- Trace: false,
1210
- Path: false,
1211
- Initializer: jsonStringifyProgrammer_initializer,
1212
- Visited: props.Functor.Visited,
1213
- VisitGuard: func(next nativeinternal.FeatureProgrammer_VisitGuardProps) *shimast.Node {
1214
- return nativeinternal.FeatureProgrammer.VisitGuardSerialize(
1215
- next.Key,
1216
- jsonStringifyProgrammer_circular_thrower(props.Context, props.Functor),
1217
- next.Body,
1218
- props.Context.Emit,
1219
- )
1220
- },
1221
- Decoder: func(next nativeinternal.FeatureProgrammer_DecoderProps) *shimast.Node {
1222
- return jsonStringifyProgrammer_decode(struct {
1223
- Context nativecontext.ITypiaContext
1224
- Config nativeinternal.FeatureProgrammer_IConfig
1225
- Functor *nativehelpers.FunctionProgrammer
1226
- Input *shimast.Node
1227
- Metadata *schemametadata.MetadataSchema
1228
- Explore nativeinternal.FeatureProgrammer_IExplore
1229
- Validated bool
1230
- }{
1231
- Context: props.Context,
1232
- Functor: props.Functor,
1233
- Config: config,
1234
- Metadata: next.Metadata,
1235
- Input: next.Input,
1236
- Explore: next.Explore,
1237
- Validated: props.Validated,
1238
- })
1239
- },
1240
- Objector: nativeinternal.FeatureProgrammer_IConfig_IObjector{
1241
- Checker: func(next nativeinternal.FeatureProgrammer_ObjectorCheckerProps) *shimast.Node {
1242
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
1243
- Context: props.Context,
1244
- Functor: props.Functor,
1245
- Metadata: next.Metadata,
1246
- Input: next.Input,
1247
- Explore: jsonStringifyProgrammer_checker_explore(next.Explore),
1248
- })
1249
- },
1250
- Decoder: func(next nativeinternal.FeatureProgrammer_ObjectorDecoderProps) *shimast.Node {
1251
- return jsonStringifyProgrammer_decode_object(struct {
1252
- Functor *nativehelpers.FunctionProgrammer
1253
- Input *shimast.Node
1254
- Object *schemametadata.MetadataObjectType
1255
- Explore nativeinternal.FeatureProgrammer_IExplore
1256
- }{Functor: props.Functor, Input: next.Input, Object: next.Object, Explore: next.Explore})
1257
- },
1258
- Joiner: func(next nativeinternal.FeatureProgrammer_ObjectorJoinerProps) *shimast.Node {
1259
- return nativehelpers.StringifyJoiner.Object(nativehelpers.StringifyJoiner_ObjectProps{
1260
- Context: props.Context,
1261
- Entries: next.Entries,
1262
- })
1263
- },
1264
- Unionizer: func(next nativeinternal.FeatureProgrammer_ObjectorUnionizerProps) *shimast.Node {
1265
- return nativeiterate.Decode_union_object(nativeiterate.Decode_union_objectProps{
1266
- Checker: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
1267
- return nativeprogrammers.IsProgrammer.Decode_object(nativeprogrammers.IsProgrammer_DecodeObjectProps{
1268
- Context: props.Context,
1269
- Functor: props.Functor,
1270
- Input: v.Input,
1271
- Object: v.Object,
1272
- Explore: jsonStringifyProgrammer_feature_explore(v.Explore),
1273
- })
1274
- },
1275
- Decoder: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
1276
- return jsonStringifyProgrammer_decode_object(struct {
1277
- Functor *nativehelpers.FunctionProgrammer
1278
- Input *shimast.Node
1279
- Object *schemametadata.MetadataObjectType
1280
- Explore nativeinternal.FeatureProgrammer_IExplore
1281
- }{Functor: props.Functor, Input: v.Input, Object: v.Object, Explore: jsonStringifyProgrammer_feature_explore(v.Explore)})
1282
- },
1283
- Success: func(exp *shimast.Expression) *shimast.Node {
1284
- return exp
1285
- },
1286
- Escaper: func(v nativeiterate.Decode_union_object_escape) *shimast.Node {
1287
- return jsonStringifyProgrammer_create_throw_error(jsonStringifyProgrammer_throwProps{
1288
- Context: props.Context,
1289
- Functor: props.Functor,
1290
- Expected: v.Expected,
1291
- Input: v.Input,
1292
- })
1293
- },
1294
- Objects: next.Objects,
1295
- Explore: next.Explore,
1296
- Input: next.Input,
1297
- })
1298
- },
1299
- Failure: func(next nativeinternal.FeatureProgrammer_ObjectorFailureProps) *shimast.Node {
1300
- return jsonStringifyProgrammer_create_throw_error(jsonStringifyProgrammer_throwProps{
1301
- Context: props.Context,
1302
- Functor: props.Functor,
1303
- Expected: next.Expected,
1304
- Input: next.Input,
1305
- })
1306
- },
1307
- },
1308
- Generator: nativeinternal.FeatureProgrammer_IConfig_IGenerator{
1309
- Arrays: func(collection *schemametadata.MetadataCollection) []*shimast.Node {
1310
- return jsonStringifyProgrammer_write_array_functions(struct {
1311
- Context nativecontext.ITypiaContext
1312
- Config nativeinternal.FeatureProgrammer_IConfig
1313
- Functor *nativehelpers.FunctionProgrammer
1314
- Collection *schemametadata.MetadataCollection
1315
- }{Context: props.Context, Config: config, Functor: props.Functor, Collection: collection})
1316
- },
1317
- Tuples: func(collection *schemametadata.MetadataCollection) []*shimast.Node {
1318
- return jsonStringifyProgrammer_write_tuple_functions(struct {
1319
- Context nativecontext.ITypiaContext
1320
- Config nativeinternal.FeatureProgrammer_IConfig
1321
- Functor *nativehelpers.FunctionProgrammer
1322
- Collection *schemametadata.MetadataCollection
1323
- Validated bool
1324
- }{Context: props.Context, Config: config, Functor: props.Functor, Collection: collection, Validated: props.Validated})
1325
- },
1326
- },
1327
- }
1328
- return config
1329
- }
1330
-
1331
- func jsonStringifyProgrammer_initializer(props nativeinternal.FeatureProgrammer_InitializerProps) nativeinternal.FeatureProgrammer_InitializerOutput {
1332
- result := nativefactories.JsonMetadataFactory.Analyze(nativefactories.JsonMetadataFactory_IProps{
1333
- Method: props.Functor.Method,
1334
- Checker: props.Context.Checker,
1335
- Type: props.Type,
1336
- })
1337
- if nativeinternal.FeatureProgrammer.CollectionRecursive(result.Collection) {
1338
- props.Functor.SetVisited(true)
1339
- }
1340
- return nativeinternal.FeatureProgrammer_InitializerOutput{
1341
- Collection: result.Collection,
1342
- Metadata: result.Metadata,
1343
- }
1344
- }
1345
-
1346
- // jsonStringifyProgrammer_circular_thrower raises the cycle error used by the
1347
- // on-stack visit guard: JSON cannot represent circular references, so meeting
1348
- // a value again while it is still being serialized must fail fast instead of
1349
- // overflowing the stack.
1350
- func jsonStringifyProgrammer_circular_thrower(context nativecontext.ITypiaContext, functor *nativehelpers.FunctionProgrammer) *shimast.Node {
1351
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, context.Emit)
1352
- return f.NewCallExpression(
1353
- jsonStringifyProgrammer_internal(context, "throwTypeGuardError"),
1354
- nil,
1355
- f.NewNodeList(nil),
1356
- f.NewNodeList([]*shimast.Node{
1357
- f.NewObjectLiteralExpression(
1358
- f.NewNodeList([]*shimast.Node{
1359
- f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("method", context.Emit), nil, nil, f.NewStringLiteral(functor.Method, shimast.TokenFlagsNone)),
1360
- f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("expected", context.Emit), nil, nil, f.NewStringLiteral("non-circular reference", shimast.TokenFlagsNone)),
1361
- f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("value", context.Emit), nil, nil, f.NewIdentifier("input")),
1362
- }),
1363
- true,
1364
- ),
1365
- }),
1366
- shimast.NodeFlagsNone,
1367
- )
1368
- }
1369
-
1370
- type jsonStringifyProgrammer_throwProps struct {
1371
- Context nativecontext.ITypiaContext
1372
- Functor *nativehelpers.FunctionProgrammer
1373
- Expected string
1374
- Input *shimast.Node
1375
- }
1376
-
1377
- func jsonStringifyProgrammer_create_throw_error(props jsonStringifyProgrammer_throwProps) *shimast.Node {
1378
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
1379
- return f.NewExpressionStatement(
1380
- f.NewCallExpression(
1381
- jsonStringifyProgrammer_internal(props.Context, "throwTypeGuardError"),
1382
- nil,
1383
- f.NewNodeList(nil),
1384
- f.NewNodeList([]*shimast.Node{
1385
- f.NewObjectLiteralExpression(
1386
- f.NewNodeList([]*shimast.Node{
1387
- f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("method", props.Context.Emit), nil, nil, f.NewStringLiteral(props.Functor.Method, shimast.TokenFlagsNone)),
1388
- f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("expected", props.Context.Emit), nil, nil, f.NewStringLiteral(props.Expected, shimast.TokenFlagsNone)),
1389
- f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("value", props.Context.Emit), nil, nil, props.Input),
1390
- }),
1391
- true,
1392
- ),
1393
- }),
1394
- shimast.NodeFlagsNone,
1395
- ),
1396
- )
1397
- }
1398
-
1399
- type jsonStringifyProgrammer_IUnion struct {
1400
- Type string
1401
- Is func() *shimast.Node
1402
- Value func() *shimast.Node
1403
- }
1404
-
1405
- func jsonStringifyProgrammer_binary(left *shimast.Node, operator shimast.Kind, right *shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
1406
- f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, emit)
1407
- return f.NewBinaryExpression(nil, left, nil, f.NewToken(operator), right)
1408
- }
1409
-
1410
- func jsonStringifyProgrammer_internal(context nativecontext.ITypiaContext, name string) *shimast.Node {
1411
- if importer := context.Importer; importer != nil {
1412
- return importer.Internal(name)
1413
- }
1414
- return nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, context.Emit).NewIdentifier(name)
1415
- }
1416
-
1417
- func jsonStringifyProgrammer_method_text(modulo *shimast.Node) string {
1418
- return nativehelpers.ModuloMethodText(modulo)
1419
- }
1420
-
1421
- func jsonStringifyProgrammer_feature_explore(input any) nativeinternal.FeatureProgrammer_IExplore {
1422
- switch v := input.(type) {
1423
- case nativeinternal.FeatureProgrammer_IExplore:
1424
- return v
1425
- case *nativeinternal.FeatureProgrammer_IExplore:
1426
- return *v
1427
- default:
1428
- return nativeinternal.FeatureProgrammer_IExplore{}
1429
- }
1430
- }
1431
-
1432
- func jsonStringifyProgrammer_checker_explore(input any) nativeinternal.CheckerProgrammer_IExplore {
1433
- v := jsonStringifyProgrammer_feature_explore(input)
1434
- return nativeinternal.CheckerProgrammer_IExplore{
1435
- Tracable: v.Tracable,
1436
- Source: v.Source,
1437
- From: v.From,
1438
- Postfix: v.Postfix,
1439
- Start: v.Start,
1440
- }
1441
- }
1442
-
1443
- func jsonStringifyProgrammer_explore_with(explore nativeinternal.FeatureProgrammer_IExplore, source string, from string) nativeinternal.FeatureProgrammer_IExplore {
1444
- explore.Source = source
1445
- explore.From = from
1446
- return explore
1447
- }
1448
-
1449
- func jsonStringifyProgrammer_some_arrays(values []*schemametadata.MetadataArray, pred func(*schemametadata.MetadataArray) bool) bool {
1450
- for _, value := range values {
1451
- if pred(value) {
1452
- return true
1453
- }
1454
- }
1455
- return false
1456
- }
1457
-
1458
- func jsonStringifyProgrammer_some_objects(values []*schemametadata.MetadataObject, pred func(*schemametadata.MetadataObject) bool) bool {
1459
- for _, value := range values {
1460
- if pred(value) {
1461
- return true
1462
- }
1463
- }
1464
- return false
1465
- }
1466
-
1467
- func jsonStringifyProgrammer_every_properties(values []*schemametadata.MetadataProperty, pred func(*schemametadata.MetadataProperty) bool) bool {
1468
- for _, value := range values {
1469
- if pred(value) == false {
1470
- return false
1471
- }
1472
- }
1473
- return true
1474
- }
1475
-
1476
- func jsonStringifyProgrammer_every_strings(values []string, pred func(string) bool) bool {
1477
- for _, value := range values {
1478
- if pred(value) == false {
1479
- return false
1480
- }
1481
- }
1482
- return true
1483
- }
1484
-
1485
- func jsonStringifyProgrammer_array_like_names[T interface {
1486
- *schemametadata.MetadataArray | *schemametadata.MetadataTuple
1487
- }](values []T) string {
1488
- names := make([]string, 0, len(values))
1489
- for _, value := range values {
1490
- switch typed := any(value).(type) {
1491
- case *schemametadata.MetadataArray:
1492
- names = append(names, typed.Type.Name)
1493
- case *schemametadata.MetadataTuple:
1494
- names = append(names, typed.Type.Name)
1495
- }
1496
- }
1497
- return strings.Join(names, " | ")
1498
- }
1499
-
1500
- func jsonStringifyProgrammer_merge_functions(groups ...map[string]*shimast.Node) map[string]*shimast.Node {
1501
- output := map[string]*shimast.Node{}
1502
- for _, group := range groups {
1503
- for key, value := range group {
1504
- output[key] = value
1505
- }
1506
- }
1507
- return output
1508
- }
1
+ package json
2
+
3
+ import (
4
+ "fmt"
5
+ "strings"
6
+
7
+ shimast "github.com/microsoft/typescript-go/shim/ast"
8
+ shimchecker "github.com/microsoft/typescript-go/shim/checker"
9
+ shimprinter "github.com/microsoft/typescript-go/shim/printer"
10
+ nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
11
+ nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
12
+ nativeprogrammers "github.com/samchon/typia/packages/typia/native/core/programmers"
13
+ nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
14
+ nativeinternal "github.com/samchon/typia/packages/typia/native/core/programmers/internal"
15
+ nativeiterate "github.com/samchon/typia/packages/typia/native/core/programmers/iterate"
16
+ schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
17
+ )
18
+
19
+ type jsonStringifyProgrammerNamespace struct{}
20
+
21
+ var JsonStringifyProgrammer = jsonStringifyProgrammerNamespace{}
22
+
23
+ type JsonStringifyProgrammer_DecomposeProps struct {
24
+ Validated bool
25
+ Context nativecontext.ITypiaContext
26
+ Functor *nativehelpers.FunctionProgrammer
27
+ Type *shimchecker.Type
28
+ Name *string
29
+ }
30
+
31
+ const jsonStringifyProgrammer_PREFIX = "_s"
32
+ const jsonStringifyProgrammer_CHECKER_PREFIX = "_i"
33
+ const jsonStringifyProgrammer_CHECKER_PREFIX_VALIDATED = "_si"
34
+
35
+ var jsonStringifyProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
36
+
37
+ func (jsonStringifyProgrammerNamespace) Decompose(props JsonStringifyProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
38
+ checkerPrefix := jsonStringifyProgrammer_checker_prefix(props.Validated)
39
+ config := jsonStringifyProgrammer_configure(struct {
40
+ Context nativecontext.ITypiaContext
41
+ Functor *nativehelpers.FunctionProgrammer
42
+ Validated bool
43
+ }{
44
+ Context: props.Context,
45
+ Functor: props.Functor,
46
+ Validated: props.Validated,
47
+ })
48
+ config.Addition = func(collection *schemametadata.MetadataCollection) []*shimast.Node {
49
+ return nativeprogrammers.IsProgrammer.Write_function_statements(nativeprogrammers.IsProgrammer_WriteFunctionStatementsProps{
50
+ Context: props.Context,
51
+ Functor: props.Functor,
52
+ Collection: collection,
53
+ Prefix: checkerPrefix,
54
+ })
55
+ }
56
+ composed := nativeinternal.FeatureProgrammer.Compose(nativeinternal.FeatureProgrammer_ComposeProps{
57
+ Context: props.Context,
58
+ Config: config,
59
+ Functor: props.Functor,
60
+ Type: props.Type,
61
+ Name: props.Name,
62
+ })
63
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
64
+ return nativeinternal.FeatureProgrammer_IDecomposed{
65
+ Functions: composed.Functions,
66
+ Statements: composed.Statements,
67
+ Arrow: f.NewArrowFunction(
68
+ nil,
69
+ nil,
70
+ f.NewNodeList(composed.Parameters),
71
+ composed.Response,
72
+ nil,
73
+ f.NewToken(shimast.KindEqualsGreaterThanToken),
74
+ composed.Body,
75
+ ),
76
+ }
77
+ }
78
+
79
+ func (jsonStringifyProgrammerNamespace) Write(props nativecontext.IProgrammerProps) *shimast.Node {
80
+ functor := nativehelpers.NewFunctionProgrammer(jsonStringifyProgrammer_method_text(props.Modulo), props.Context.Emit)
81
+ result := JsonStringifyProgrammer.Decompose(JsonStringifyProgrammer_DecomposeProps{
82
+ Context: props.Context,
83
+ Functor: functor,
84
+ Type: props.Type,
85
+ Name: props.Name,
86
+ Validated: false,
87
+ })
88
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
89
+ Modulo: props.Modulo,
90
+ Functor: functor,
91
+ Result: result,
92
+ })
93
+ }
94
+
95
+ func jsonStringifyProgrammer_write_array_functions(props struct {
96
+ Context nativecontext.ITypiaContext
97
+ Config nativeinternal.FeatureProgrammer_IConfig
98
+ Functor *nativehelpers.FunctionProgrammer
99
+ Collection *schemametadata.MetadataCollection
100
+ }) []*shimast.Node {
101
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
102
+ output := []*shimast.Node{}
103
+ for i, typ := range props.Collection.Arrays() {
104
+ if typ.Recursive == false {
105
+ continue
106
+ }
107
+ output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
108
+ Name: fmt.Sprintf("%sa%d", props.Config.Prefix, i),
109
+ Value: f.NewArrowFunction(
110
+ nil,
111
+ nil,
112
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
113
+ Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
114
+ Type: nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
115
+ Input: f.NewIdentifier("input"),
116
+ })),
117
+ nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
118
+ nil,
119
+ f.NewToken(shimast.KindEqualsGreaterThanToken),
120
+ nativeinternal.FeatureProgrammer.VisitGuardSerialize(
121
+ nativeinternal.FeatureProgrammer.VisitKey(props.Config.Prefix, "a", i),
122
+ jsonStringifyProgrammer_circular_thrower(props.Context, props.Functor),
123
+ jsonStringifyProgrammer_decode_array_inline(jsonStringifyProgrammer_decodeArrayProps{
124
+ Context: props.Context,
125
+ Config: props.Config,
126
+ Functor: props.Functor,
127
+ Input: f.NewIdentifier("input"),
128
+ Array: schemametadata.MetadataArray_create(schemametadata.MetadataArray{
129
+ Type: typ,
130
+ Tags: [][]schemametadata.IMetadataTypeTag{},
131
+ }),
132
+ Explore: nativeinternal.FeatureProgrammer_IExplore{
133
+ Tracable: props.Config.Trace,
134
+ Source: "function",
135
+ From: "array",
136
+ Postfix: "",
137
+ },
138
+ }),
139
+ props.Context.Emit,
140
+ ),
141
+ ),
142
+ }, props.Context.Emit))
143
+ }
144
+ return output
145
+ }
146
+
147
+ func jsonStringifyProgrammer_write_tuple_functions(props struct {
148
+ Context nativecontext.ITypiaContext
149
+ Config nativeinternal.FeatureProgrammer_IConfig
150
+ Functor *nativehelpers.FunctionProgrammer
151
+ Collection *schemametadata.MetadataCollection
152
+ Validated bool
153
+ }) []*shimast.Node {
154
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
155
+ output := []*shimast.Node{}
156
+ for i, tuple := range props.Collection.Tuples() {
157
+ if tuple.Recursive == false {
158
+ continue
159
+ }
160
+ output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
161
+ Name: fmt.Sprintf("%st%d", props.Config.Prefix, i),
162
+ Value: f.NewArrowFunction(
163
+ nil,
164
+ nil,
165
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
166
+ Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
167
+ Type: nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
168
+ Input: f.NewIdentifier("input"),
169
+ })),
170
+ nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
171
+ nil,
172
+ f.NewToken(shimast.KindEqualsGreaterThanToken),
173
+ nativeinternal.FeatureProgrammer.VisitGuardSerialize(
174
+ nativeinternal.FeatureProgrammer.VisitKey(props.Config.Prefix, "t", i),
175
+ jsonStringifyProgrammer_circular_thrower(props.Context, props.Functor),
176
+ jsonStringifyProgrammer_decode_tuple_inline(jsonStringifyProgrammer_decodeTupleInlineProps{
177
+ Context: props.Context,
178
+ Config: props.Config,
179
+ Functor: props.Functor,
180
+ Input: f.NewIdentifier("input"),
181
+ Tuple: tuple,
182
+ Explore: nativeinternal.FeatureProgrammer_IExplore{Tracable: props.Config.Trace, Source: "function", From: "array", Postfix: ""},
183
+ Validated: props.Validated,
184
+ }),
185
+ props.Context.Emit,
186
+ ),
187
+ ),
188
+ }, props.Context.Emit))
189
+ }
190
+ return output
191
+ }
192
+
193
+ func jsonStringifyProgrammer_decode(props struct {
194
+ Context nativecontext.ITypiaContext
195
+ Config nativeinternal.FeatureProgrammer_IConfig
196
+ Functor *nativehelpers.FunctionProgrammer
197
+ Input *shimast.Node
198
+ Metadata *schemametadata.MetadataSchema
199
+ Explore nativeinternal.FeatureProgrammer_IExplore
200
+ Validated bool
201
+ }) *shimast.Node {
202
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
203
+ if props.Metadata.Any {
204
+ return jsonStringifyProgrammer_wrap_required(struct {
205
+ Context nativecontext.ITypiaContext
206
+ Input *shimast.Node
207
+ Metadata *schemametadata.MetadataSchema
208
+ Explore nativeinternal.FeatureProgrammer_IExplore
209
+ Expression *shimast.Node
210
+ }{
211
+ Context: props.Context,
212
+ Input: props.Input,
213
+ Metadata: props.Metadata,
214
+ Explore: props.Explore,
215
+ Expression: jsonStringifyProgrammer_wrap_functional(struct {
216
+ Context nativecontext.ITypiaContext
217
+ Input *shimast.Node
218
+ Metadata *schemametadata.MetadataSchema
219
+ Explore nativeinternal.FeatureProgrammer_IExplore
220
+ Expression *shimast.Node
221
+ }{
222
+ Context: props.Context,
223
+ Input: props.Input,
224
+ Metadata: props.Metadata,
225
+ Explore: props.Explore,
226
+ Expression: f.NewCallExpression(
227
+ f.NewIdentifier("JSON.stringify"),
228
+ nil,
229
+ nil,
230
+ f.NewNodeList([]*shimast.Node{props.Input}),
231
+ shimast.NodeFlagsNone,
232
+ ),
233
+ }),
234
+ })
235
+ }
236
+
237
+ size := props.Metadata.Size()
238
+ if size == 0 && (props.Metadata.IsRequired() == false || props.Metadata.Nullable) {
239
+ if props.Metadata.IsRequired() == false && props.Metadata.Nullable {
240
+ if props.Explore.From == "array" {
241
+ return f.NewStringLiteral("null", shimast.TokenFlagsNone)
242
+ }
243
+ return nativefactories.ExpressionFactory.Conditional(
244
+ jsonStringifyProgrammer_binary(f.NewKeywordExpression(shimast.KindNullKeyword), shimast.KindEqualsEqualsEqualsToken, props.Input, props.Context.Emit),
245
+ f.NewStringLiteral("null", shimast.TokenFlagsNone),
246
+ f.NewIdentifier("undefined"),
247
+ props.Context.Emit,
248
+ )
249
+ } else if props.Metadata.IsRequired() == false {
250
+ if props.Explore.From == "array" {
251
+ return f.NewStringLiteral("null", shimast.TokenFlagsNone)
252
+ }
253
+ return f.NewIdentifier("undefined")
254
+ }
255
+ return f.NewStringLiteral("null", shimast.TokenFlagsNone)
256
+ }
257
+
258
+ unions := []jsonStringifyProgrammer_IUnion{}
259
+ if props.Metadata.Escaped != nil {
260
+ metadata := props.Metadata.Escaped.Returns
261
+ isDate := props.Metadata.Escaped.Original.Size() == 1 &&
262
+ len(props.Metadata.Escaped.Original.Natives) != 0 &&
263
+ props.Metadata.Escaped.Original.Natives[0].Name == "Date"
264
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
265
+ Type: "resolved",
266
+ Is: func() *shimast.Node {
267
+ if isDate {
268
+ return nativeiterate.Check_native(nativeiterate.Check_nativeProps{
269
+ Name: "Date",
270
+ Input: props.Input,
271
+ })
272
+ }
273
+ return nativeprogrammers.IsProgrammer.Decode_to_json(struct {
274
+ Input *shimast.Expression
275
+ CheckNull bool
276
+ }{Input: props.Input, CheckNull: false})
277
+ },
278
+ Value: func() *shimast.Node {
279
+ next := props
280
+ next.Metadata = metadata
281
+ return jsonStringifyProgrammer_decode_to_json(next)
282
+ },
283
+ })
284
+ } else if len(props.Metadata.Functions) != 0 {
285
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
286
+ Type: "functional",
287
+ Is: func() *shimast.Node {
288
+ return nativeprogrammers.IsProgrammer.Decode_functional(props.Input)
289
+ },
290
+ Value: func() *shimast.Node {
291
+ return jsonStringifyProgrammer_decode_functional(props.Explore, props.Context.Emit)
292
+ },
293
+ })
294
+ }
295
+
296
+ if len(props.Metadata.Templates) != 0 && nativehelpers.AtomicPredicator.Template(props.Metadata) {
297
+ partial := schemametadata.MetadataSchema_initialize()
298
+ partial.Atomics = append(partial.Atomics, schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
299
+ Type: "string",
300
+ Tags: [][]schemametadata.IMetadataTypeTag{},
301
+ }))
302
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
303
+ Type: "template literal",
304
+ Is: func() *shimast.Node {
305
+ next := props
306
+ next.Metadata = partial
307
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
308
+ Context: next.Context,
309
+ Functor: next.Functor,
310
+ Metadata: next.Metadata,
311
+ Input: next.Input,
312
+ Explore: jsonStringifyProgrammer_checker_explore(next.Explore),
313
+ Prefix: jsonStringifyProgrammer_checker_prefix(next.Validated),
314
+ })
315
+ },
316
+ Value: func() *shimast.Node {
317
+ next := props
318
+ return jsonStringifyProgrammer_decode_atomic(struct {
319
+ Context nativecontext.ITypiaContext
320
+ Input *shimast.Node
321
+ Type string
322
+ Explore nativeinternal.FeatureProgrammer_IExplore
323
+ Validated bool
324
+ }{Context: next.Context, Input: next.Input, Type: "string", Explore: next.Explore, Validated: next.Validated})
325
+ },
326
+ })
327
+ }
328
+
329
+ for _, constant := range props.Metadata.Constants {
330
+ constant := constant
331
+ if nativehelpers.AtomicPredicator.RuntimeConstant(struct {
332
+ Metadata *schemametadata.MetadataSchema
333
+ Name string
334
+ }{Metadata: props.Metadata, Name: constant.Type}) == false {
335
+ continue
336
+ }
337
+ if constant.Type != "string" {
338
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
339
+ Type: "atomic",
340
+ Is: func() *shimast.Node {
341
+ partial := schemametadata.MetadataSchema_initialize()
342
+ partial.Atomics = append(partial.Atomics, schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
343
+ Type: constant.Type,
344
+ Tags: [][]schemametadata.IMetadataTypeTag{},
345
+ }))
346
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
347
+ Context: props.Context,
348
+ Functor: props.Functor,
349
+ Metadata: partial,
350
+ Input: props.Input,
351
+ Explore: jsonStringifyProgrammer_checker_explore(props.Explore),
352
+ Prefix: jsonStringifyProgrammer_checker_prefix(props.Validated),
353
+ })
354
+ },
355
+ Value: func() *shimast.Node {
356
+ return jsonStringifyProgrammer_decode_atomic(struct {
357
+ Context nativecontext.ITypiaContext
358
+ Input *shimast.Node
359
+ Type string
360
+ Explore nativeinternal.FeatureProgrammer_IExplore
361
+ Validated bool
362
+ }{Context: props.Context, Input: props.Input, Type: constant.Type, Explore: props.Explore, Validated: props.Validated})
363
+ },
364
+ })
365
+ } else if len(props.Metadata.Templates) == 0 {
366
+ values := make([]string, 0, len(constant.Values))
367
+ for _, value := range constant.Values {
368
+ if str, ok := value.Value.(string); ok {
369
+ values = append(values, str)
370
+ }
371
+ }
372
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
373
+ Type: "const string",
374
+ Is: func() *shimast.Node {
375
+ partial := schemametadata.MetadataSchema_initialize()
376
+ partial.Atomics = append(partial.Atomics, schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
377
+ Type: "string",
378
+ Tags: [][]schemametadata.IMetadataTypeTag{},
379
+ }))
380
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
381
+ Context: props.Context,
382
+ Functor: props.Functor,
383
+ Metadata: partial,
384
+ Input: props.Input,
385
+ Explore: jsonStringifyProgrammer_checker_explore(props.Explore),
386
+ Prefix: jsonStringifyProgrammer_checker_prefix(props.Validated),
387
+ })
388
+ },
389
+ Value: func() *shimast.Node {
390
+ return jsonStringifyProgrammer_decode_constant_string(struct {
391
+ Context nativecontext.ITypiaContext
392
+ Functor *nativehelpers.FunctionProgrammer
393
+ Input *shimast.Node
394
+ Values []string
395
+ Explore nativeinternal.FeatureProgrammer_IExplore
396
+ Validated bool
397
+ }{Context: props.Context, Functor: props.Functor, Input: props.Input, Values: values, Explore: props.Explore, Validated: props.Validated})
398
+ },
399
+ })
400
+ }
401
+ }
402
+
403
+ for _, atomic := range props.Metadata.Atomics {
404
+ atomic := atomic
405
+ if nativehelpers.AtomicPredicator.RuntimeAtomic(struct {
406
+ Metadata *schemametadata.MetadataSchema
407
+ Name string
408
+ }{Metadata: props.Metadata, Name: atomic.Type}) {
409
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
410
+ Type: "atomic",
411
+ Is: func() *shimast.Node {
412
+ partial := schemametadata.MetadataSchema_initialize()
413
+ partial.Atomics = append(partial.Atomics, atomic)
414
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
415
+ Context: props.Context,
416
+ Functor: props.Functor,
417
+ Metadata: partial,
418
+ Input: props.Input,
419
+ Explore: jsonStringifyProgrammer_checker_explore(props.Explore),
420
+ Prefix: jsonStringifyProgrammer_checker_prefix(props.Validated),
421
+ })
422
+ },
423
+ Value: func() *shimast.Node {
424
+ return jsonStringifyProgrammer_decode_atomic(struct {
425
+ Context nativecontext.ITypiaContext
426
+ Input *shimast.Node
427
+ Type string
428
+ Explore nativeinternal.FeatureProgrammer_IExplore
429
+ Validated bool
430
+ }{Context: props.Context, Input: props.Input, Type: atomic.Type, Explore: props.Explore, Validated: props.Validated})
431
+ },
432
+ })
433
+ }
434
+ }
435
+
436
+ for _, tuple := range props.Metadata.Tuples {
437
+ tuple := tuple
438
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
439
+ Type: "tuple",
440
+ Is: func() *shimast.Node {
441
+ partial := schemametadata.MetadataSchema_initialize()
442
+ partial.Tuples = append(partial.Tuples, tuple)
443
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
444
+ Context: props.Context,
445
+ Functor: props.Functor,
446
+ Metadata: partial,
447
+ Input: props.Input,
448
+ Explore: jsonStringifyProgrammer_checker_explore(props.Explore),
449
+ Prefix: jsonStringifyProgrammer_checker_prefix(props.Validated),
450
+ })
451
+ },
452
+ Value: func() *shimast.Node {
453
+ return jsonStringifyProgrammer_decode_tuple(jsonStringifyProgrammer_decodeTupleProps{
454
+ Context: props.Context,
455
+ Config: props.Config,
456
+ Functor: props.Functor,
457
+ Input: props.Input,
458
+ Tuple: tuple,
459
+ Explore: props.Explore,
460
+ Validated: props.Validated,
461
+ })
462
+ },
463
+ })
464
+ }
465
+
466
+ if len(props.Metadata.Arrays) != 0 {
467
+ value := func() *shimast.Node {
468
+ if len(props.Metadata.Arrays) == 1 {
469
+ explore := props.Explore
470
+ explore.From = "array"
471
+ return jsonStringifyProgrammer_decode_array(jsonStringifyProgrammer_decodeArrayProps{
472
+ Context: props.Context,
473
+ Config: props.Config,
474
+ Functor: props.Functor,
475
+ Input: props.Input,
476
+ Array: props.Metadata.Arrays[0],
477
+ Explore: explore,
478
+ })
479
+ }
480
+ if jsonStringifyProgrammer_some_arrays(props.Metadata.Arrays, func(elem *schemametadata.MetadataArray) bool {
481
+ return elem.Type.Value.Any
482
+ }) {
483
+ return f.NewCallExpression(
484
+ f.NewIdentifier("JSON.stringify"),
485
+ nil,
486
+ nil,
487
+ f.NewNodeList([]*shimast.Node{props.Input}),
488
+ shimast.NodeFlagsNone,
489
+ )
490
+ }
491
+ explore := props.Explore
492
+ explore.From = "array"
493
+ return jsonStringifyProgrammer_explore_arrays(jsonStringifyProgrammer_exploreArraysProps{
494
+ Context: props.Context,
495
+ Config: props.Config,
496
+ Functor: props.Functor,
497
+ Input: props.Input,
498
+ Arrays: props.Metadata.Arrays,
499
+ Explore: explore,
500
+ Validated: props.Validated,
501
+ })
502
+ }
503
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
504
+ Type: "array",
505
+ Is: func() *shimast.Node {
506
+ return nativefactories.ExpressionFactory.IsArray(props.Input, props.Context.Emit)
507
+ },
508
+ Value: value,
509
+ })
510
+ }
511
+
512
+ for _, native := range props.Metadata.Natives {
513
+ native := native
514
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
515
+ Type: "object",
516
+ Is: func() *shimast.Node {
517
+ return nativeiterate.Check_native(nativeiterate.Check_nativeProps{Name: native.Name, Input: props.Input})
518
+ },
519
+ Value: func() *shimast.Node {
520
+ if nativehelpers.AtomicPredicator.Native(native.Name) {
521
+ return jsonStringifyProgrammer_decode_atomic(struct {
522
+ Context nativecontext.ITypiaContext
523
+ Input *shimast.Node
524
+ Type string
525
+ Explore nativeinternal.FeatureProgrammer_IExplore
526
+ Validated bool
527
+ }{Context: props.Context, Input: props.Input, Type: strings.ToLower(native.Name), Explore: props.Explore, Validated: props.Validated})
528
+ }
529
+ return f.NewStringLiteral("{}", shimast.TokenFlagsNone)
530
+ },
531
+ })
532
+ }
533
+
534
+ if len(props.Metadata.Sets) != 0 {
535
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
536
+ Type: "object",
537
+ Is: func() *shimast.Node {
538
+ return nativefactories.ExpressionFactory.IsInstanceOf("Set", props.Input, props.Context.Emit)
539
+ },
540
+ Value: func() *shimast.Node {
541
+ return f.NewStringLiteral("{}", shimast.TokenFlagsNone)
542
+ },
543
+ })
544
+ }
545
+ if len(props.Metadata.Maps) != 0 {
546
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
547
+ Type: "object",
548
+ Is: func() *shimast.Node {
549
+ return nativefactories.ExpressionFactory.IsInstanceOf("Map", props.Input, props.Context.Emit)
550
+ },
551
+ Value: func() *shimast.Node {
552
+ return f.NewStringLiteral("{}", shimast.TokenFlagsNone)
553
+ },
554
+ })
555
+ }
556
+ if len(props.Metadata.Objects) != 0 {
557
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
558
+ Type: "object",
559
+ Is: func() *shimast.Node {
560
+ return nativefactories.ExpressionFactory.IsObject(nativefactories.ExpressionFactory_IsObjectProps{
561
+ CheckNull: true,
562
+ CheckArray: jsonStringifyProgrammer_some_objects(props.Metadata.Objects, func(object *schemametadata.MetadataObject) bool {
563
+ return jsonStringifyProgrammer_every_properties(object.Type.Properties, func(prop *schemametadata.MetadataProperty) bool {
564
+ return !prop.Key.IsSoleLiteral() || !prop.Value.IsRequired()
565
+ })
566
+ }),
567
+ Input: props.Input,
568
+ }, props.Context.Emit)
569
+ },
570
+ Value: func() *shimast.Node {
571
+ explore := props.Explore
572
+ explore.From = "object"
573
+ return jsonStringifyProgrammer_explore_objects(jsonStringifyProgrammer_exploreObjectsProps{
574
+ Context: props.Context,
575
+ Config: props.Config,
576
+ Functor: props.Functor,
577
+ Input: props.Input,
578
+ Metadata: props.Metadata,
579
+ Explore: explore,
580
+ })
581
+ },
582
+ })
583
+ }
584
+
585
+ wrapper := func(output *shimast.Node) *shimast.Node {
586
+ return jsonStringifyProgrammer_wrap_required(struct {
587
+ Context nativecontext.ITypiaContext
588
+ Input *shimast.Node
589
+ Metadata *schemametadata.MetadataSchema
590
+ Explore nativeinternal.FeatureProgrammer_IExplore
591
+ Expression *shimast.Node
592
+ }{
593
+ Context: props.Context,
594
+ Input: props.Input,
595
+ Metadata: props.Metadata,
596
+ Explore: props.Explore,
597
+ Expression: jsonStringifyProgrammer_wrap_nullable(struct {
598
+ Context nativecontext.ITypiaContext
599
+ Input *shimast.Node
600
+ Metadata *schemametadata.MetadataSchema
601
+ Expression *shimast.Node
602
+ }{Context: props.Context, Input: props.Input, Metadata: props.Metadata, Expression: output}),
603
+ })
604
+ }
605
+ if len(unions) == 0 {
606
+ return f.NewCallExpression(
607
+ f.NewIdentifier("JSON.stringify"),
608
+ nil,
609
+ nil,
610
+ f.NewNodeList([]*shimast.Node{props.Input}),
611
+ shimast.NodeFlagsNone,
612
+ )
613
+ }
614
+ if len(unions) == 1 {
615
+ return wrapper(unions[0].Value())
616
+ }
617
+ return wrapper(f.NewCallExpression(
618
+ f.NewArrowFunction(
619
+ nil,
620
+ nil,
621
+ f.NewNodeList(nil),
622
+ nil,
623
+ nil,
624
+ f.NewToken(shimast.KindEqualsGreaterThanToken),
625
+ jsonStringifyProgrammer_iterate(jsonStringifyProgrammer_iterateProps{
626
+ Context: props.Context,
627
+ Functor: props.Functor,
628
+ Input: props.Input,
629
+ Expected: props.Metadata.GetDisplayName(),
630
+ Unions: unions,
631
+ }),
632
+ ),
633
+ nil,
634
+ nil,
635
+ nil,
636
+ shimast.NodeFlagsNone,
637
+ ))
638
+ }
639
+
640
+ func jsonStringifyProgrammer_decode_object(props struct {
641
+ Functor *nativehelpers.FunctionProgrammer
642
+ Input *shimast.Node
643
+ Object *schemametadata.MetadataObjectType
644
+ Explore nativeinternal.FeatureProgrammer_IExplore
645
+ }) *shimast.Node {
646
+ return nativeinternal.FeatureProgrammer.Decode_object(nativeinternal.FeatureProgrammer_DecodeObjectProps{
647
+ Config: nativeinternal.FeatureProgrammer_DecodeObjectConfig{Trace: false, Path: false, Prefix: jsonStringifyProgrammer_PREFIX, Visited: props.Functor.Visited()},
648
+ Functor: props.Functor,
649
+ Object: props.Object,
650
+ Input: props.Input,
651
+ Explore: props.Explore,
652
+ })
653
+ }
654
+
655
+ type jsonStringifyProgrammer_decodeArrayProps struct {
656
+ Context nativecontext.ITypiaContext
657
+ Config nativeinternal.FeatureProgrammer_IConfig
658
+ Functor *nativehelpers.FunctionProgrammer
659
+ Input *shimast.Node
660
+ Array *schemametadata.MetadataArray
661
+ Explore nativeinternal.FeatureProgrammer_IExplore
662
+ }
663
+
664
+ func jsonStringifyProgrammer_decode_array(props jsonStringifyProgrammer_decodeArrayProps) *shimast.Node {
665
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
666
+ if props.Array.Type.Recursive {
667
+ index := 0
668
+ if props.Array.Type.Index != nil {
669
+ index = *props.Array.Type.Index
670
+ }
671
+ return f.NewCallExpression(
672
+ f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%sa%d", props.Config.Prefix, index))),
673
+ nil,
674
+ nil,
675
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
676
+ Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
677
+ Input: props.Input,
678
+ Explore: jsonStringifyProgrammer_explore_with(props.Explore, "function", "array"),
679
+ })),
680
+ shimast.NodeFlagsNone,
681
+ )
682
+ }
683
+ return jsonStringifyProgrammer_decode_array_inline(props)
684
+ }
685
+
686
+ func jsonStringifyProgrammer_decode_array_inline(props jsonStringifyProgrammer_decodeArrayProps) *shimast.Node {
687
+ return nativeinternal.FeatureProgrammer.Decode_array(nativeinternal.FeatureProgrammer_DecodeArrayProps{
688
+ Config: nativeinternal.FeatureProgrammer_DecodeArrayConfig{
689
+ Trace: props.Config.Trace,
690
+ Path: props.Config.Path,
691
+ Decoder: props.Config.Decoder,
692
+ Prefix: props.Config.Prefix,
693
+ },
694
+ Functor: props.Functor,
695
+ Combiner: func(next struct {
696
+ Input *shimast.Expression
697
+ Arrow *shimast.Node
698
+ }) *shimast.Node {
699
+ return nativehelpers.StringifyJoiner.Array(nativehelpers.StringifyJoiner_ArrayProps{
700
+ Input: next.Input,
701
+ Arrow: next.Arrow,
702
+ Emit: props.Context.Emit,
703
+ })
704
+ },
705
+ Array: props.Array,
706
+ Input: props.Input,
707
+ Explore: props.Explore,
708
+ })
709
+ }
710
+
711
+ type jsonStringifyProgrammer_decodeTupleProps struct {
712
+ Context nativecontext.ITypiaContext
713
+ Config nativeinternal.FeatureProgrammer_IConfig
714
+ Functor *nativehelpers.FunctionProgrammer
715
+ Input *shimast.Node
716
+ Tuple *schemametadata.MetadataTuple
717
+ Explore nativeinternal.FeatureProgrammer_IExplore
718
+ Validated bool
719
+ }
720
+
721
+ func jsonStringifyProgrammer_decode_tuple(props jsonStringifyProgrammer_decodeTupleProps) *shimast.Node {
722
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
723
+ if props.Tuple.Type.Recursive {
724
+ index := 0
725
+ if props.Tuple.Type.Index != nil {
726
+ index = *props.Tuple.Type.Index
727
+ }
728
+ return f.NewCallExpression(
729
+ f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%st%d", props.Config.Prefix, index))),
730
+ nil,
731
+ nil,
732
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
733
+ Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
734
+ Explore: jsonStringifyProgrammer_explore_with(props.Explore, "function", props.Explore.From),
735
+ Input: props.Input,
736
+ })),
737
+ shimast.NodeFlagsNone,
738
+ )
739
+ }
740
+ return jsonStringifyProgrammer_decode_tuple_inline(jsonStringifyProgrammer_decodeTupleInlineProps{
741
+ Context: props.Context,
742
+ Config: props.Config,
743
+ Functor: props.Functor,
744
+ Input: props.Input,
745
+ Tuple: props.Tuple.Type,
746
+ Explore: props.Explore,
747
+ Validated: props.Validated,
748
+ })
749
+ }
750
+
751
+ type jsonStringifyProgrammer_decodeTupleInlineProps struct {
752
+ Context nativecontext.ITypiaContext
753
+ Config nativeinternal.FeatureProgrammer_IConfig
754
+ Functor *nativehelpers.FunctionProgrammer
755
+ Input *shimast.Node
756
+ Tuple *schemametadata.MetadataTupleType
757
+ Explore nativeinternal.FeatureProgrammer_IExplore
758
+ Validated bool
759
+ }
760
+
761
+ func jsonStringifyProgrammer_decode_tuple_inline(props jsonStringifyProgrammer_decodeTupleInlineProps) *shimast.Node {
762
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
763
+ elements := []*shimast.Node{}
764
+ for index, elem := range props.Tuple.Elements {
765
+ if elem.Rest != nil {
766
+ continue
767
+ }
768
+ explore := props.Explore
769
+ explore.From = "array"
770
+ if len(props.Explore.Postfix) != 0 {
771
+ explore.Postfix = fmt.Sprintf("%s[%d]\"", nativeiterate.Postfix_of_tuple_export(props.Explore.Postfix), index)
772
+ } else {
773
+ explore.Postfix = fmt.Sprintf("\"[%d]\"", index)
774
+ }
775
+ elements = append(elements, jsonStringifyProgrammer_decode(struct {
776
+ Context nativecontext.ITypiaContext
777
+ Config nativeinternal.FeatureProgrammer_IConfig
778
+ Functor *nativehelpers.FunctionProgrammer
779
+ Input *shimast.Node
780
+ Metadata *schemametadata.MetadataSchema
781
+ Explore nativeinternal.FeatureProgrammer_IExplore
782
+ Validated bool
783
+ }{
784
+ Context: props.Context,
785
+ Config: props.Config,
786
+ Functor: props.Functor,
787
+ Input: f.NewElementAccessExpression(props.Input, nil, nativefactories.ExpressionFactory.Number(index, props.Context.Emit), shimast.NodeFlagsNone),
788
+ Metadata: elem,
789
+ Explore: explore,
790
+ Validated: props.Validated,
791
+ }))
792
+ }
793
+ var rest *shimast.Node
794
+ if len(props.Tuple.Elements) != 0 {
795
+ last := props.Tuple.Elements[len(props.Tuple.Elements)-1]
796
+ if last.Rest != nil {
797
+ explore := props.Explore
798
+ start := len(props.Tuple.Elements) - 1
799
+ explore.Start = &start
800
+ code := jsonStringifyProgrammer_decode(struct {
801
+ Context nativecontext.ITypiaContext
802
+ Config nativeinternal.FeatureProgrammer_IConfig
803
+ Functor *nativehelpers.FunctionProgrammer
804
+ Input *shimast.Node
805
+ Metadata *schemametadata.MetadataSchema
806
+ Explore nativeinternal.FeatureProgrammer_IExplore
807
+ Validated bool
808
+ }{
809
+ Context: props.Context,
810
+ Config: props.Config,
811
+ Functor: props.Functor,
812
+ Input: f.NewCallExpression(
813
+ nativefactories.IdentifierFactory.Access(props.Context.Emit, props.Input, "slice"),
814
+ nil,
815
+ nil,
816
+ f.NewNodeList([]*shimast.Node{nativefactories.ExpressionFactory.Number(start, props.Context.Emit)}),
817
+ shimast.NodeFlagsNone,
818
+ ),
819
+ Metadata: nativeiterate.Wrap_metadata_rest_tuple_export(last.Rest),
820
+ Explore: explore,
821
+ Validated: props.Validated,
822
+ })
823
+ rest = f.NewCallExpression(
824
+ jsonStringifyProgrammer_internal(props.Context, "jsonStringifyRest"),
825
+ nil,
826
+ nil,
827
+ f.NewNodeList([]*shimast.Node{code}),
828
+ shimast.NodeFlagsNone,
829
+ )
830
+ }
831
+ }
832
+ return nativehelpers.StringifyJoiner.Tuple(nativehelpers.StringifyJoiner_TupleProps{
833
+ Elements: elements,
834
+ Rest: rest,
835
+ Emit: props.Context.Emit,
836
+ })
837
+ }
838
+
839
+ func jsonStringifyProgrammer_decode_atomic(props struct {
840
+ Context nativecontext.ITypiaContext
841
+ Input *shimast.Node
842
+ Type string
843
+ Explore nativeinternal.FeatureProgrammer_IExplore
844
+ Validated bool
845
+ }) *shimast.Node {
846
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
847
+ input := props.Input
848
+ if props.Type == "string" {
849
+ return f.NewCallExpression(
850
+ jsonStringifyProgrammer_internal(props.Context, "jsonStringifyString"),
851
+ nil,
852
+ nil,
853
+ f.NewNodeList([]*shimast.Node{props.Input}),
854
+ shimast.NodeFlagsNone,
855
+ )
856
+ } else if props.Type == "number" {
857
+ if !(props.Validated && nativehelpers.OptionPredicator.Finite(props.Context.Options)) {
858
+ input = f.NewCallExpression(
859
+ jsonStringifyProgrammer_internal(props.Context, "jsonStringifyNumber"),
860
+ nil,
861
+ nil,
862
+ f.NewNodeList([]*shimast.Node{props.Input}),
863
+ shimast.NodeFlagsNone,
864
+ )
865
+ }
866
+ }
867
+ return f.NewCallExpression(
868
+ f.NewIdentifier("String"),
869
+ nil,
870
+ nil,
871
+ f.NewNodeList([]*shimast.Node{input}),
872
+ shimast.NodeFlagsNone,
873
+ )
874
+ }
875
+
876
+ func jsonStringifyProgrammer_decode_constant_string(props struct {
877
+ Context nativecontext.ITypiaContext
878
+ Functor *nativehelpers.FunctionProgrammer
879
+ Input *shimast.Node
880
+ Values []string
881
+ Explore nativeinternal.FeatureProgrammer_IExplore
882
+ Validated bool
883
+ }) *shimast.Node {
884
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
885
+ if jsonStringifyProgrammer_every_strings(props.Values, func(value string) bool {
886
+ return nativehelpers.StringifyPredicator.Require_escape(value) == false
887
+ }) {
888
+ return jsonStringifyProgrammer_binary(
889
+ jsonStringifyProgrammer_binary(
890
+ f.NewStringLiteral("\"", shimast.TokenFlagsNone),
891
+ shimast.KindPlusToken,
892
+ props.Input,
893
+ props.Context.Emit,
894
+ ),
895
+ shimast.KindPlusToken,
896
+ f.NewStringLiteral("\"", shimast.TokenFlagsNone),
897
+ props.Context.Emit,
898
+ )
899
+ }
900
+ return jsonStringifyProgrammer_decode_atomic(struct {
901
+ Context nativecontext.ITypiaContext
902
+ Input *shimast.Node
903
+ Type string
904
+ Explore nativeinternal.FeatureProgrammer_IExplore
905
+ Validated bool
906
+ }{Context: props.Context, Input: props.Input, Type: "string", Explore: props.Explore, Validated: props.Validated})
907
+ }
908
+
909
+ func jsonStringifyProgrammer_decode_to_json(props struct {
910
+ Context nativecontext.ITypiaContext
911
+ Config nativeinternal.FeatureProgrammer_IConfig
912
+ Functor *nativehelpers.FunctionProgrammer
913
+ Input *shimast.Node
914
+ Metadata *schemametadata.MetadataSchema
915
+ Explore nativeinternal.FeatureProgrammer_IExplore
916
+ Validated bool
917
+ }) *shimast.Node {
918
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
919
+ next := props
920
+ next.Input = f.NewCallExpression(
921
+ nativefactories.IdentifierFactory.Access(props.Context.Emit, props.Input, "toJSON"),
922
+ nil,
923
+ nil,
924
+ f.NewNodeList(nil),
925
+ shimast.NodeFlagsNone,
926
+ )
927
+ return jsonStringifyProgrammer_decode(next)
928
+ }
929
+
930
+ func jsonStringifyProgrammer_decode_functional(explore nativeinternal.FeatureProgrammer_IExplore, emit *shimprinter.EmitContext) *shimast.Node {
931
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, emit)
932
+ if explore.From == "array" {
933
+ return f.NewStringLiteral("null", shimast.TokenFlagsNone)
934
+ }
935
+ return f.NewIdentifier("undefined")
936
+ }
937
+
938
+ type jsonStringifyProgrammer_exploreObjectsProps struct {
939
+ Context nativecontext.ITypiaContext
940
+ Config nativeinternal.FeatureProgrammer_IConfig
941
+ Functor *nativehelpers.FunctionProgrammer
942
+ Input *shimast.Node
943
+ Metadata *schemametadata.MetadataSchema
944
+ Explore nativeinternal.FeatureProgrammer_IExplore
945
+ }
946
+
947
+ func jsonStringifyProgrammer_explore_objects(props jsonStringifyProgrammer_exploreObjectsProps) *shimast.Node {
948
+ if len(props.Metadata.Objects) == 1 {
949
+ return jsonStringifyProgrammer_decode_object(struct {
950
+ Functor *nativehelpers.FunctionProgrammer
951
+ Input *shimast.Node
952
+ Object *schemametadata.MetadataObjectType
953
+ Explore nativeinternal.FeatureProgrammer_IExplore
954
+ }{
955
+ Functor: props.Functor,
956
+ Input: props.Input,
957
+ Object: props.Metadata.Objects[0].Type,
958
+ Explore: props.Explore,
959
+ })
960
+ }
961
+ index := 0
962
+ if props.Metadata.Union_index != nil {
963
+ index = *props.Metadata.Union_index
964
+ }
965
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
966
+ return f.NewCallExpression(
967
+ f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%su%d", jsonStringifyProgrammer_PREFIX, index))),
968
+ nil,
969
+ nil,
970
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
971
+ Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
972
+ Input: props.Input,
973
+ Explore: props.Explore,
974
+ })),
975
+ shimast.NodeFlagsNone,
976
+ )
977
+ }
978
+
979
+ type jsonStringifyProgrammer_exploreArraysProps struct {
980
+ Context nativecontext.ITypiaContext
981
+ Config nativeinternal.FeatureProgrammer_IConfig
982
+ Functor *nativehelpers.FunctionProgrammer
983
+ Input *shimast.Node
984
+ Arrays []*schemametadata.MetadataArray
985
+ Explore nativeinternal.FeatureProgrammer_IExplore
986
+ Validated bool
987
+ }
988
+
989
+ func jsonStringifyProgrammer_explore_arrays(props jsonStringifyProgrammer_exploreArraysProps) *shimast.Node {
990
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
991
+ return jsonStringifyProgrammer_explore_array_like_union_types(jsonStringifyProgrammer_exploreArrayLikeUnionTypesProps[*schemametadata.MetadataArray]{
992
+ Context: props.Context,
993
+ Config: props.Config,
994
+ Functor: props.Functor,
995
+ Factory: func(next jsonStringifyProgrammer_arrayLikeFactoryProps[*schemametadata.MetadataArray]) *shimast.Node {
996
+ return nativehelpers.UnionExplorer.Array(nativehelpers.UnionExplorer_ArrayProps{
997
+ Emit: props.Context.Emit,
998
+ Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
999
+ Checker: func(v nativehelpers.UnionExplorer_ArrayLikeCheckerProps) *shimast.Node {
1000
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
1001
+ Context: props.Context,
1002
+ Functor: props.Functor,
1003
+ Metadata: v.Definition.(*schemametadata.MetadataSchema),
1004
+ Input: v.Input,
1005
+ Explore: jsonStringifyProgrammer_checker_explore(v.Explore),
1006
+ Prefix: jsonStringifyProgrammer_checker_prefix(props.Validated),
1007
+ })
1008
+ },
1009
+ Decoder: func(v nativehelpers.UnionExplorer_ArrayLikeDecoderProps) *shimast.Node {
1010
+ return jsonStringifyProgrammer_decode_array(jsonStringifyProgrammer_decodeArrayProps{
1011
+ Context: props.Context,
1012
+ Config: props.Config,
1013
+ Functor: props.Functor,
1014
+ Input: v.Input,
1015
+ Array: v.Definition.(*schemametadata.MetadataArray),
1016
+ Explore: jsonStringifyProgrammer_feature_explore(v.Explore),
1017
+ })
1018
+ },
1019
+ Empty: f.NewStringLiteral("[]", shimast.TokenFlagsNone),
1020
+ Success: f.NewKeywordExpression(shimast.KindTrueKeyword),
1021
+ Failure: func(v nativehelpers.UnionExplorer_ArrayLikeFailureProps) *shimast.Node {
1022
+ return jsonStringifyProgrammer_create_throw_error(jsonStringifyProgrammer_throwProps{
1023
+ Context: props.Context,
1024
+ Functor: props.Functor,
1025
+ Expected: v.Expected,
1026
+ Input: v.Input,
1027
+ })
1028
+ },
1029
+ },
1030
+ Parameters: next.Parameters,
1031
+ Input: next.Input,
1032
+ Arrays: next.Definitions,
1033
+ Explore: next.Explore,
1034
+ })
1035
+ },
1036
+ Input: props.Input,
1037
+ Elements: props.Arrays,
1038
+ Explore: props.Explore,
1039
+ })
1040
+ }
1041
+
1042
+ type jsonStringifyProgrammer_arrayLikeFactoryProps[T any] struct {
1043
+ Parameters []*shimast.Node
1044
+ Input *shimast.Node
1045
+ Definitions []T
1046
+ Explore nativeinternal.FeatureProgrammer_IExplore
1047
+ }
1048
+
1049
+ type jsonStringifyProgrammer_exploreArrayLikeUnionTypesProps[T interface {
1050
+ *schemametadata.MetadataArray | *schemametadata.MetadataTuple
1051
+ }] struct {
1052
+ Context nativecontext.ITypiaContext
1053
+ Config nativeinternal.FeatureProgrammer_IConfig
1054
+ Functor *nativehelpers.FunctionProgrammer
1055
+ Factory func(next jsonStringifyProgrammer_arrayLikeFactoryProps[T]) *shimast.Node
1056
+ Input *shimast.Node
1057
+ Elements []T
1058
+ Explore nativeinternal.FeatureProgrammer_IExplore
1059
+ }
1060
+
1061
+ func jsonStringifyProgrammer_explore_array_like_union_types[T interface {
1062
+ *schemametadata.MetadataArray | *schemametadata.MetadataTuple
1063
+ }](props jsonStringifyProgrammer_exploreArrayLikeUnionTypesProps[T]) *shimast.Node {
1064
+ arrow := func(next struct {
1065
+ Parameters []*shimast.Node
1066
+ Explore nativeinternal.FeatureProgrammer_IExplore
1067
+ Input *shimast.Node
1068
+ }) *shimast.Node {
1069
+ return props.Factory(jsonStringifyProgrammer_arrayLikeFactoryProps[T]{
1070
+ Definitions: props.Elements,
1071
+ Parameters: next.Parameters,
1072
+ Input: next.Input,
1073
+ Explore: next.Explore,
1074
+ })
1075
+ }
1076
+ arrayExplore := props.Explore
1077
+ arrayExplore.Source = "function"
1078
+ arrayExplore.From = "array"
1079
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
1080
+ return f.NewCallExpression(
1081
+ f.NewIdentifier(props.Functor.EmplaceUnion(props.Config.Prefix, jsonStringifyProgrammer_array_like_names(props.Elements), func() *shimast.Node {
1082
+ explore := arrayExplore
1083
+ explore.Postfix = ""
1084
+ return arrow(struct {
1085
+ Parameters []*shimast.Node
1086
+ Explore nativeinternal.FeatureProgrammer_IExplore
1087
+ Input *shimast.Node
1088
+ }{
1089
+ Parameters: nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
1090
+ Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
1091
+ Type: nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
1092
+ Input: f.NewIdentifier("input"),
1093
+ }),
1094
+ Explore: explore,
1095
+ Input: f.NewIdentifier("input"),
1096
+ })
1097
+ })),
1098
+ nil,
1099
+ nil,
1100
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
1101
+ Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
1102
+ Explore: arrayExplore,
1103
+ Input: props.Input,
1104
+ })),
1105
+ shimast.NodeFlagsNone,
1106
+ )
1107
+ }
1108
+
1109
+ func jsonStringifyProgrammer_wrap_required(props struct {
1110
+ Context nativecontext.ITypiaContext
1111
+ Input *shimast.Node
1112
+ Metadata *schemametadata.MetadataSchema
1113
+ Explore nativeinternal.FeatureProgrammer_IExplore
1114
+ Expression *shimast.Node
1115
+ }) *shimast.Node {
1116
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
1117
+ if props.Metadata.IsRequired() && props.Metadata.Any == false {
1118
+ return props.Expression
1119
+ }
1120
+ alternate := f.NewIdentifier("undefined")
1121
+ if props.Explore.From == "array" {
1122
+ alternate = f.NewStringLiteral("null", shimast.TokenFlagsNone)
1123
+ }
1124
+ return nativefactories.ExpressionFactory.Conditional(
1125
+ jsonStringifyProgrammer_binary(f.NewIdentifier("undefined"), shimast.KindExclamationEqualsEqualsToken, props.Input, props.Context.Emit),
1126
+ props.Expression,
1127
+ alternate,
1128
+ props.Context.Emit,
1129
+ )
1130
+ }
1131
+
1132
+ func jsonStringifyProgrammer_wrap_nullable(props struct {
1133
+ Context nativecontext.ITypiaContext
1134
+ Input *shimast.Node
1135
+ Metadata *schemametadata.MetadataSchema
1136
+ Expression *shimast.Node
1137
+ }) *shimast.Node {
1138
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
1139
+ if props.Metadata.Nullable == false {
1140
+ return props.Expression
1141
+ }
1142
+ return nativefactories.ExpressionFactory.Conditional(
1143
+ jsonStringifyProgrammer_binary(f.NewKeywordExpression(shimast.KindNullKeyword), shimast.KindExclamationEqualsEqualsToken, props.Input, props.Context.Emit),
1144
+ props.Expression,
1145
+ f.NewStringLiteral("null", shimast.TokenFlagsNone),
1146
+ props.Context.Emit,
1147
+ )
1148
+ }
1149
+
1150
+ func jsonStringifyProgrammer_wrap_functional(props struct {
1151
+ Context nativecontext.ITypiaContext
1152
+ Input *shimast.Node
1153
+ Metadata *schemametadata.MetadataSchema
1154
+ Explore nativeinternal.FeatureProgrammer_IExplore
1155
+ Expression *shimast.Node
1156
+ }) *shimast.Node {
1157
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
1158
+ if len(props.Metadata.Functions) == 0 {
1159
+ return props.Expression
1160
+ }
1161
+ return nativefactories.ExpressionFactory.Conditional(
1162
+ jsonStringifyProgrammer_binary(f.NewStringLiteral("function", shimast.TokenFlagsNone), shimast.KindExclamationEqualsEqualsToken, nativefactories.ValueFactory.TYPEOF(props.Input), props.Context.Emit),
1163
+ props.Expression,
1164
+ jsonStringifyProgrammer_decode_functional(props.Explore, props.Context.Emit),
1165
+ props.Context.Emit,
1166
+ )
1167
+ }
1168
+
1169
+ type jsonStringifyProgrammer_iterateProps struct {
1170
+ Context nativecontext.ITypiaContext
1171
+ Functor *nativehelpers.FunctionProgrammer
1172
+ Input *shimast.Node
1173
+ Unions []jsonStringifyProgrammer_IUnion
1174
+ Expected string
1175
+ }
1176
+
1177
+ func jsonStringifyProgrammer_iterate(props jsonStringifyProgrammer_iterateProps) *shimast.Node {
1178
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
1179
+ statements := []*shimast.Node{}
1180
+ for _, union := range props.Unions {
1181
+ statements = append(statements, f.NewIfStatement(
1182
+ union.Is(),
1183
+ f.NewReturnStatement(union.Value()),
1184
+ nil,
1185
+ ))
1186
+ }
1187
+ statements = append(statements, jsonStringifyProgrammer_create_throw_error(jsonStringifyProgrammer_throwProps{
1188
+ Context: props.Context,
1189
+ Functor: props.Functor,
1190
+ Input: props.Input,
1191
+ Expected: props.Expected,
1192
+ }))
1193
+ return f.NewBlock(f.NewNodeList(statements), true)
1194
+ }
1195
+
1196
+ func jsonStringifyProgrammer_configure(props struct {
1197
+ Context nativecontext.ITypiaContext
1198
+ Functor *nativehelpers.FunctionProgrammer
1199
+ Validated bool
1200
+ }) nativeinternal.FeatureProgrammer_IConfig {
1201
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
1202
+ checkerPrefix := jsonStringifyProgrammer_checker_prefix(props.Validated)
1203
+ var config nativeinternal.FeatureProgrammer_IConfig
1204
+ config = nativeinternal.FeatureProgrammer_IConfig{
1205
+ Types: nativeinternal.FeatureProgrammer_IConfig_ITypes{
1206
+ Input: func(t *shimchecker.Type, name *string) *shimast.TypeNode {
1207
+ if name != nil {
1208
+ return f.NewTypeReferenceNode(f.NewIdentifier(*name), nil)
1209
+ }
1210
+ return f.NewTypeReferenceNode(f.NewIdentifier(nativefactories.TypeFactory.GetFullName(nativefactories.TypeFactory_GetFullNameProps{
1211
+ Checker: props.Context.Checker,
1212
+ Type: t,
1213
+ })), nil)
1214
+ },
1215
+ Output: func(t *shimchecker.Type, name *string) *shimast.TypeNode {
1216
+ return nativefactories.TypeFactory.Keyword("string", props.Context.Emit)
1217
+ },
1218
+ },
1219
+ Prefix: jsonStringifyProgrammer_PREFIX,
1220
+ Trace: false,
1221
+ Path: false,
1222
+ Initializer: jsonStringifyProgrammer_initializer,
1223
+ Visited: props.Functor.Visited,
1224
+ VisitGuard: func(next nativeinternal.FeatureProgrammer_VisitGuardProps) *shimast.Node {
1225
+ return nativeinternal.FeatureProgrammer.VisitGuardSerialize(
1226
+ next.Key,
1227
+ jsonStringifyProgrammer_circular_thrower(props.Context, props.Functor),
1228
+ next.Body,
1229
+ props.Context.Emit,
1230
+ )
1231
+ },
1232
+ Decoder: func(next nativeinternal.FeatureProgrammer_DecoderProps) *shimast.Node {
1233
+ return jsonStringifyProgrammer_decode(struct {
1234
+ Context nativecontext.ITypiaContext
1235
+ Config nativeinternal.FeatureProgrammer_IConfig
1236
+ Functor *nativehelpers.FunctionProgrammer
1237
+ Input *shimast.Node
1238
+ Metadata *schemametadata.MetadataSchema
1239
+ Explore nativeinternal.FeatureProgrammer_IExplore
1240
+ Validated bool
1241
+ }{
1242
+ Context: props.Context,
1243
+ Functor: props.Functor,
1244
+ Config: config,
1245
+ Metadata: next.Metadata,
1246
+ Input: next.Input,
1247
+ Explore: next.Explore,
1248
+ Validated: props.Validated,
1249
+ })
1250
+ },
1251
+ Objector: nativeinternal.FeatureProgrammer_IConfig_IObjector{
1252
+ Checker: func(next nativeinternal.FeatureProgrammer_ObjectorCheckerProps) *shimast.Node {
1253
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
1254
+ Context: props.Context,
1255
+ Functor: props.Functor,
1256
+ Metadata: next.Metadata,
1257
+ Input: next.Input,
1258
+ Explore: jsonStringifyProgrammer_checker_explore(next.Explore),
1259
+ Prefix: checkerPrefix,
1260
+ })
1261
+ },
1262
+ Decoder: func(next nativeinternal.FeatureProgrammer_ObjectorDecoderProps) *shimast.Node {
1263
+ return jsonStringifyProgrammer_decode_object(struct {
1264
+ Functor *nativehelpers.FunctionProgrammer
1265
+ Input *shimast.Node
1266
+ Object *schemametadata.MetadataObjectType
1267
+ Explore nativeinternal.FeatureProgrammer_IExplore
1268
+ }{Functor: props.Functor, Input: next.Input, Object: next.Object, Explore: next.Explore})
1269
+ },
1270
+ Joiner: func(next nativeinternal.FeatureProgrammer_ObjectorJoinerProps) *shimast.Node {
1271
+ return nativehelpers.StringifyJoiner.Object(nativehelpers.StringifyJoiner_ObjectProps{
1272
+ Context: props.Context,
1273
+ Entries: next.Entries,
1274
+ })
1275
+ },
1276
+ Unionizer: func(next nativeinternal.FeatureProgrammer_ObjectorUnionizerProps) *shimast.Node {
1277
+ return nativeiterate.Decode_union_object(nativeiterate.Decode_union_objectProps{
1278
+ Checker: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
1279
+ return nativeprogrammers.IsProgrammer.Decode_object(nativeprogrammers.IsProgrammer_DecodeObjectProps{
1280
+ Context: props.Context,
1281
+ Functor: props.Functor,
1282
+ Input: v.Input,
1283
+ Object: v.Object,
1284
+ Explore: jsonStringifyProgrammer_feature_explore(v.Explore),
1285
+ Prefix: checkerPrefix,
1286
+ })
1287
+ },
1288
+ Decoder: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
1289
+ return jsonStringifyProgrammer_decode_object(struct {
1290
+ Functor *nativehelpers.FunctionProgrammer
1291
+ Input *shimast.Node
1292
+ Object *schemametadata.MetadataObjectType
1293
+ Explore nativeinternal.FeatureProgrammer_IExplore
1294
+ }{Functor: props.Functor, Input: v.Input, Object: v.Object, Explore: jsonStringifyProgrammer_feature_explore(v.Explore)})
1295
+ },
1296
+ Success: func(exp *shimast.Expression) *shimast.Node {
1297
+ return exp
1298
+ },
1299
+ Escaper: func(v nativeiterate.Decode_union_object_escape) *shimast.Node {
1300
+ return jsonStringifyProgrammer_create_throw_error(jsonStringifyProgrammer_throwProps{
1301
+ Context: props.Context,
1302
+ Functor: props.Functor,
1303
+ Expected: v.Expected,
1304
+ Input: v.Input,
1305
+ })
1306
+ },
1307
+ Objects: next.Objects,
1308
+ Explore: next.Explore,
1309
+ Input: next.Input,
1310
+ })
1311
+ },
1312
+ Failure: func(next nativeinternal.FeatureProgrammer_ObjectorFailureProps) *shimast.Node {
1313
+ return jsonStringifyProgrammer_create_throw_error(jsonStringifyProgrammer_throwProps{
1314
+ Context: props.Context,
1315
+ Functor: props.Functor,
1316
+ Expected: next.Expected,
1317
+ Input: next.Input,
1318
+ })
1319
+ },
1320
+ },
1321
+ Generator: nativeinternal.FeatureProgrammer_IConfig_IGenerator{
1322
+ Arrays: func(collection *schemametadata.MetadataCollection) []*shimast.Node {
1323
+ return jsonStringifyProgrammer_write_array_functions(struct {
1324
+ Context nativecontext.ITypiaContext
1325
+ Config nativeinternal.FeatureProgrammer_IConfig
1326
+ Functor *nativehelpers.FunctionProgrammer
1327
+ Collection *schemametadata.MetadataCollection
1328
+ }{Context: props.Context, Config: config, Functor: props.Functor, Collection: collection})
1329
+ },
1330
+ Tuples: func(collection *schemametadata.MetadataCollection) []*shimast.Node {
1331
+ return jsonStringifyProgrammer_write_tuple_functions(struct {
1332
+ Context nativecontext.ITypiaContext
1333
+ Config nativeinternal.FeatureProgrammer_IConfig
1334
+ Functor *nativehelpers.FunctionProgrammer
1335
+ Collection *schemametadata.MetadataCollection
1336
+ Validated bool
1337
+ }{Context: props.Context, Config: config, Functor: props.Functor, Collection: collection, Validated: props.Validated})
1338
+ },
1339
+ },
1340
+ }
1341
+ return config
1342
+ }
1343
+
1344
+ func jsonStringifyProgrammer_initializer(props nativeinternal.FeatureProgrammer_InitializerProps) nativeinternal.FeatureProgrammer_InitializerOutput {
1345
+ result := nativefactories.JsonMetadataFactory.Analyze(nativefactories.JsonMetadataFactory_IProps{
1346
+ Method: props.Functor.Method,
1347
+ Checker: props.Context.Checker,
1348
+ Type: props.Type,
1349
+ })
1350
+ if nativeinternal.FeatureProgrammer.CollectionRecursive(result.Collection) {
1351
+ props.Functor.SetVisited(true)
1352
+ }
1353
+ return nativeinternal.FeatureProgrammer_InitializerOutput{
1354
+ Collection: result.Collection,
1355
+ Metadata: result.Metadata,
1356
+ }
1357
+ }
1358
+
1359
+ // jsonStringifyProgrammer_circular_thrower raises the cycle error used by the
1360
+ // on-stack visit guard: JSON cannot represent circular references, so meeting
1361
+ // a value again while it is still being serialized must fail fast instead of
1362
+ // overflowing the stack.
1363
+ func jsonStringifyProgrammer_circular_thrower(context nativecontext.ITypiaContext, functor *nativehelpers.FunctionProgrammer) *shimast.Node {
1364
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, context.Emit)
1365
+ return f.NewCallExpression(
1366
+ jsonStringifyProgrammer_internal(context, "throwTypeGuardError"),
1367
+ nil,
1368
+ f.NewNodeList(nil),
1369
+ f.NewNodeList([]*shimast.Node{
1370
+ f.NewObjectLiteralExpression(
1371
+ f.NewNodeList([]*shimast.Node{
1372
+ f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("method", context.Emit), nil, nil, f.NewStringLiteral(functor.Method, shimast.TokenFlagsNone)),
1373
+ f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("expected", context.Emit), nil, nil, f.NewStringLiteral("non-circular reference", shimast.TokenFlagsNone)),
1374
+ f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("value", context.Emit), nil, nil, f.NewIdentifier("input")),
1375
+ }),
1376
+ true,
1377
+ ),
1378
+ }),
1379
+ shimast.NodeFlagsNone,
1380
+ )
1381
+ }
1382
+
1383
+ type jsonStringifyProgrammer_throwProps struct {
1384
+ Context nativecontext.ITypiaContext
1385
+ Functor *nativehelpers.FunctionProgrammer
1386
+ Expected string
1387
+ Input *shimast.Node
1388
+ }
1389
+
1390
+ func jsonStringifyProgrammer_create_throw_error(props jsonStringifyProgrammer_throwProps) *shimast.Node {
1391
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, props.Context.Emit)
1392
+ return f.NewExpressionStatement(
1393
+ f.NewCallExpression(
1394
+ jsonStringifyProgrammer_internal(props.Context, "throwTypeGuardError"),
1395
+ nil,
1396
+ f.NewNodeList(nil),
1397
+ f.NewNodeList([]*shimast.Node{
1398
+ f.NewObjectLiteralExpression(
1399
+ f.NewNodeList([]*shimast.Node{
1400
+ f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("method", props.Context.Emit), nil, nil, f.NewStringLiteral(props.Functor.Method, shimast.TokenFlagsNone)),
1401
+ f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("expected", props.Context.Emit), nil, nil, f.NewStringLiteral(props.Expected, shimast.TokenFlagsNone)),
1402
+ f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("value", props.Context.Emit), nil, nil, props.Input),
1403
+ }),
1404
+ true,
1405
+ ),
1406
+ }),
1407
+ shimast.NodeFlagsNone,
1408
+ ),
1409
+ )
1410
+ }
1411
+
1412
+ type jsonStringifyProgrammer_IUnion struct {
1413
+ Type string
1414
+ Is func() *shimast.Node
1415
+ Value func() *shimast.Node
1416
+ }
1417
+
1418
+ func jsonStringifyProgrammer_binary(left *shimast.Node, operator shimast.Kind, right *shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
1419
+ f := nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, emit)
1420
+ return f.NewBinaryExpression(nil, left, nil, f.NewToken(operator), right)
1421
+ }
1422
+
1423
+ func jsonStringifyProgrammer_internal(context nativecontext.ITypiaContext, name string) *shimast.Node {
1424
+ if importer := context.Importer; importer != nil {
1425
+ return importer.Internal(name)
1426
+ }
1427
+ return nativecontext.EmitFactoryOf(jsonStringifyProgrammer_factory, context.Emit).NewIdentifier(name)
1428
+ }
1429
+
1430
+ func jsonStringifyProgrammer_method_text(modulo *shimast.Node) string {
1431
+ return nativehelpers.ModuloMethodText(modulo)
1432
+ }
1433
+
1434
+ func jsonStringifyProgrammer_checker_prefix(validated bool) string {
1435
+ if validated {
1436
+ return jsonStringifyProgrammer_CHECKER_PREFIX_VALIDATED
1437
+ }
1438
+ return jsonStringifyProgrammer_CHECKER_PREFIX
1439
+ }
1440
+
1441
+ func jsonStringifyProgrammer_feature_explore(input any) nativeinternal.FeatureProgrammer_IExplore {
1442
+ switch v := input.(type) {
1443
+ case nativeinternal.FeatureProgrammer_IExplore:
1444
+ return v
1445
+ case *nativeinternal.FeatureProgrammer_IExplore:
1446
+ return *v
1447
+ default:
1448
+ return nativeinternal.FeatureProgrammer_IExplore{}
1449
+ }
1450
+ }
1451
+
1452
+ func jsonStringifyProgrammer_checker_explore(input any) nativeinternal.CheckerProgrammer_IExplore {
1453
+ v := jsonStringifyProgrammer_feature_explore(input)
1454
+ return nativeinternal.CheckerProgrammer_IExplore{
1455
+ Tracable: v.Tracable,
1456
+ Source: v.Source,
1457
+ From: v.From,
1458
+ Postfix: v.Postfix,
1459
+ Start: v.Start,
1460
+ }
1461
+ }
1462
+
1463
+ func jsonStringifyProgrammer_explore_with(explore nativeinternal.FeatureProgrammer_IExplore, source string, from string) nativeinternal.FeatureProgrammer_IExplore {
1464
+ explore.Source = source
1465
+ explore.From = from
1466
+ return explore
1467
+ }
1468
+
1469
+ func jsonStringifyProgrammer_some_arrays(values []*schemametadata.MetadataArray, pred func(*schemametadata.MetadataArray) bool) bool {
1470
+ for _, value := range values {
1471
+ if pred(value) {
1472
+ return true
1473
+ }
1474
+ }
1475
+ return false
1476
+ }
1477
+
1478
+ func jsonStringifyProgrammer_some_objects(values []*schemametadata.MetadataObject, pred func(*schemametadata.MetadataObject) bool) bool {
1479
+ for _, value := range values {
1480
+ if pred(value) {
1481
+ return true
1482
+ }
1483
+ }
1484
+ return false
1485
+ }
1486
+
1487
+ func jsonStringifyProgrammer_every_properties(values []*schemametadata.MetadataProperty, pred func(*schemametadata.MetadataProperty) bool) bool {
1488
+ for _, value := range values {
1489
+ if pred(value) == false {
1490
+ return false
1491
+ }
1492
+ }
1493
+ return true
1494
+ }
1495
+
1496
+ func jsonStringifyProgrammer_every_strings(values []string, pred func(string) bool) bool {
1497
+ for _, value := range values {
1498
+ if pred(value) == false {
1499
+ return false
1500
+ }
1501
+ }
1502
+ return true
1503
+ }
1504
+
1505
+ func jsonStringifyProgrammer_array_like_names[T interface {
1506
+ *schemametadata.MetadataArray | *schemametadata.MetadataTuple
1507
+ }](values []T) string {
1508
+ names := make([]string, 0, len(values))
1509
+ for _, value := range values {
1510
+ switch typed := any(value).(type) {
1511
+ case *schemametadata.MetadataArray:
1512
+ names = append(names, typed.Type.Name)
1513
+ case *schemametadata.MetadataTuple:
1514
+ names = append(names, typed.Type.Name)
1515
+ }
1516
+ }
1517
+ return strings.Join(names, " | ")
1518
+ }
1519
+
1520
+ func jsonStringifyProgrammer_merge_functions(groups ...map[string]*shimast.Node) map[string]*shimast.Node {
1521
+ output := map[string]*shimast.Node{}
1522
+ for _, group := range groups {
1523
+ for key, value := range group {
1524
+ output[key] = value
1525
+ }
1526
+ }
1527
+ return output
1528
+ }