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,1090 +1,1090 @@
1
- package factories
2
-
3
- import (
4
- "fmt"
5
- "math"
6
- "sort"
7
- "strings"
8
-
9
- shimchecker "github.com/microsoft/typescript-go/shim/checker"
10
- nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
11
- schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
12
- nativeprotobuf "github.com/samchon/typia/packages/typia/native/core/schemas/protobuf"
13
- )
14
-
15
- type protobufFactoryNamespace struct{}
16
-
17
- var ProtobufFactory = protobufFactoryNamespace{}
18
-
19
- type ProtobufFactory_IProps struct {
20
- Method string
21
- Checker *shimchecker.Checker
22
- Components *schemametadata.MetadataCollection
23
- Type *shimchecker.Type
24
- }
25
-
26
- func (protobufFactoryNamespace) Metadata(props ProtobufFactory_IProps) *schemametadata.MetadataSchema {
27
- result := MetadataFactory.Analyze(MetadataFactory_IProps{
28
- Checker: props.Checker,
29
- Options: MetadataFactory_IOptions{
30
- Escape: false,
31
- Constant: true,
32
- Absorb: true,
33
- Validate: protobufFactory_validate(),
34
- },
35
- Components: props.Components,
36
- Type: props.Type,
37
- })
38
- if result.Success == false {
39
- panic(nativecontext.TransformerError_from(struct {
40
- Code string
41
- Errors []nativecontext.TransformerError_MetadataFactory_IError
42
- }{
43
- Code: "typia.protobuf." + props.Method,
44
- Errors: protobufFactory_errors(result.Errors),
45
- }))
46
- }
47
- return result.Data
48
- }
49
-
50
- func (protobufFactoryNamespace) EmplaceObject(object *schemametadata.MetadataObjectType) {
51
- for _, property := range object.Properties {
52
- protobufFactory_emplaceProperty(property)
53
- }
54
- properties := []*nativeprotobuf.IProtobufProperty{}
55
- for _, property := range object.Properties {
56
- if property.Of_protobuf_ != nil {
57
- properties = append(properties, property.Of_protobuf_)
58
- }
59
- }
60
- unique := map[int]bool{}
61
- for _, property := range properties {
62
- if property.Fixed == false {
63
- continue
64
- }
65
- for _, union := range property.Union {
66
- if index := protobufFactory_propertyIndex(union); index != nil {
67
- unique[*index] = true
68
- }
69
- }
70
- }
71
- index := 1
72
- for _, schema := range properties {
73
- if schema.Fixed {
74
- for _, union := range schema.Union {
75
- if next := protobufFactory_propertyIndex(union); next != nil && *next >= index {
76
- index = *next + 1
77
- }
78
- }
79
- continue
80
- }
81
- for _, union := range schema.Union {
82
- for unique[index] {
83
- index++
84
- }
85
- protobufFactory_setPropertyIndex(union, index)
86
- unique[index] = true
87
- }
88
- index++
89
- }
90
- }
91
-
92
- func protobufFactory_emplaceProperty(prop *schemametadata.MetadataProperty) {
93
- union := []nativeprotobuf.IProtobufPropertyType{}
94
- for _, native := range prop.Value.Natives {
95
- if native.Name == "Uint8Array" {
96
- union = append(union, &nativeprotobuf.IProtobufPropertyType_IByte{
97
- IProtobufSchema_IByte: nativeprotobuf.IProtobufSchema_IByte{Type: "bytes"},
98
- Index: protobufFactory_getSequence(protobufFactory_firstTagRow(native.Tags)),
99
- })
100
- }
101
- }
102
- union = append(union, protobufFactory_emplaceAtomic(prop.Value)...)
103
- for _, array := range prop.Value.Arrays {
104
- union = append(union, &nativeprotobuf.IProtobufPropertyType_IArray{
105
- IProtobufSchema_IArray: nativeprotobuf.IProtobufSchema_IArray{
106
- Type: "array",
107
- Array: array.Type,
108
- Value: protobufFactory_emplaceSchema(array.Type.Value),
109
- },
110
- Index: protobufFactory_getSequence(protobufFactory_firstTagRow(array.Tags)),
111
- })
112
- }
113
- for _, obj := range prop.Value.Objects {
114
- if protobufFactory_isDynamicObject(obj.Type) {
115
- union = append(union, &nativeprotobuf.IProtobufPropertyType_IMap{
116
- IProtobufSchema_IMap: nativeprotobuf.IProtobufSchema_IMap{
117
- Type: "map",
118
- Map: obj.Type,
119
- Key: protobufFactory_emplaceSchema(obj.Type.Properties[0].Key),
120
- Value: protobufFactory_emplaceSchema(obj.Type.Properties[0].Value),
121
- },
122
- Index: protobufFactory_getSequence(protobufFactory_firstTagRow(obj.Tags)),
123
- })
124
- } else {
125
- union = append(union, &nativeprotobuf.IProtobufPropertyType_IObject{
126
- IProtobufSchema_IObject: nativeprotobuf.IProtobufSchema_IObject{Type: "object", Object: obj.Type},
127
- Index: protobufFactory_getSequence(protobufFactory_firstTagRow(obj.Tags)),
128
- })
129
- }
130
- }
131
- for _, entry := range prop.Value.Maps {
132
- union = append(union, &nativeprotobuf.IProtobufPropertyType_IMap{
133
- IProtobufSchema_IMap: nativeprotobuf.IProtobufSchema_IMap{
134
- Type: "map",
135
- Map: entry,
136
- Key: protobufFactory_emplaceSchema(entry.Key),
137
- Value: protobufFactory_emplaceSchema(entry.Value),
138
- },
139
- Index: protobufFactory_getSequence(protobufFactory_firstTagRow(entry.Tags)),
140
- })
141
- }
142
- fixed := true
143
- for _, elem := range union {
144
- if protobufFactory_propertyIndex(elem) == nil {
145
- fixed = false
146
- break
147
- }
148
- }
149
- prop.Of_protobuf_ = &nativeprotobuf.IProtobufProperty{
150
- Union: union,
151
- Fixed: fixed,
152
- }
153
- }
154
-
155
- func protobufFactory_emplaceSchema(metadata *schemametadata.MetadataSchema) nativeprotobuf.IProtobufSchema {
156
- for _, native := range metadata.Natives {
157
- if native.Name == "Uint8Array" {
158
- return nativeprotobuf.IProtobufSchema_IByte{Type: "bytes"}
159
- }
160
- }
161
- atomic := protobufFactory_emplaceAtomic(metadata)
162
- if len(atomic) != 0 {
163
- return atomic[0]
164
- }
165
- for _, array := range metadata.Arrays {
166
- return nativeprotobuf.IProtobufSchema_IArray{
167
- Type: "array",
168
- Array: array.Type,
169
- Value: protobufFactory_emplaceSchema(array.Type.Value),
170
- }
171
- }
172
- for _, obj := range metadata.Objects {
173
- if protobufFactory_isDynamicObject(obj.Type) {
174
- return nativeprotobuf.IProtobufSchema_IMap{
175
- Type: "map",
176
- Map: obj.Type,
177
- Key: protobufFactory_emplaceSchema(obj.Type.Properties[0].Key),
178
- Value: protobufFactory_emplaceSchema(obj.Type.Properties[0].Value),
179
- }
180
- }
181
- return nativeprotobuf.IProtobufSchema_IObject{Type: "object", Object: obj.Type}
182
- }
183
- for _, entry := range metadata.Maps {
184
- return nativeprotobuf.IProtobufSchema_IMap{
185
- Type: "map",
186
- Map: entry,
187
- Key: protobufFactory_emplaceSchema(entry.Key),
188
- Value: protobufFactory_emplaceSchema(entry.Value),
189
- }
190
- }
191
- panic("Error on ProtobufFactory.emplaceSchema(): any type detected.")
192
- }
193
-
194
- func protobufFactory_emplaceAtomic(meta *schemametadata.MetadataSchema) []nativeprotobuf.IProtobufPropertyType {
195
- values := map[string]nativeprotobuf.IProtobufPropertyType{}
196
- for _, constant := range meta.Constants {
197
- if constant.Type == "boolean" {
198
- values["bool"] = &nativeprotobuf.IProtobufPropertyType_IBoolean{
199
- IProtobufSchema_IBoolean: nativeprotobuf.IProtobufSchema_IBoolean{Type: "bool"},
200
- Index: protobufFactory_getSequence(protobufFactory_firstTags(constant.Values)),
201
- }
202
- } else if constant.Type == "bigint" {
203
- init := protobufFactory_getBigintType(protobufFactory_constantValues(constant.Values))
204
- for _, value := range constant.Values {
205
- protobufFactory_emplaceBigint(values, value.Tags, init)
206
- }
207
- } else if constant.Type == "number" {
208
- init := protobufFactory_getNumberType(protobufFactory_constantValues(constant.Values))
209
- for _, value := range constant.Values {
210
- protobufFactory_emplaceNumber(values, value.Tags, init)
211
- }
212
- } else if constant.Type == "string" {
213
- values["string"] = &nativeprotobuf.IProtobufPropertyType_IString{
214
- IProtobufSchema_IString: nativeprotobuf.IProtobufSchema_IString{Type: "string"},
215
- Index: protobufFactory_getSequence(protobufFactory_firstTags(constant.Values)),
216
- }
217
- }
218
- }
219
- if len(meta.Templates) != 0 {
220
- values["string"] = &nativeprotobuf.IProtobufPropertyType_IString{
221
- IProtobufSchema_IString: nativeprotobuf.IProtobufSchema_IString{Type: "string"},
222
- Index: protobufFactory_getSequence(protobufFactory_firstTagRow(meta.Templates[0].Tags)),
223
- }
224
- }
225
- for _, atomic := range meta.Atomics {
226
- if atomic.Type == "boolean" {
227
- values["bool"] = &nativeprotobuf.IProtobufPropertyType_IBoolean{
228
- IProtobufSchema_IBoolean: nativeprotobuf.IProtobufSchema_IBoolean{Type: "bool"},
229
- Index: protobufFactory_getSequence(protobufFactory_firstTagRow(atomic.Tags)),
230
- }
231
- } else if atomic.Type == "bigint" {
232
- protobufFactory_emplaceBigint(values, atomic.Tags, "int64")
233
- } else if atomic.Type == "number" {
234
- protobufFactory_emplaceNumber(values, atomic.Tags, "double")
235
- } else if atomic.Type == "string" {
236
- values["string"] = &nativeprotobuf.IProtobufPropertyType_IString{
237
- IProtobufSchema_IString: nativeprotobuf.IProtobufSchema_IString{Type: "string"},
238
- Index: protobufFactory_getSequence(protobufFactory_firstTagRow(atomic.Tags)),
239
- }
240
- }
241
- }
242
- keys := make([]string, 0, len(values))
243
- for key := range values {
244
- keys = append(keys, key)
245
- }
246
- sort.Slice(keys, func(i, j int) bool {
247
- return protobufFactory_compare(keys[i], keys[j]) < 0
248
- })
249
- output := make([]nativeprotobuf.IProtobufPropertyType, 0, len(keys))
250
- for _, key := range keys {
251
- output = append(output, values[key])
252
- }
253
- return output
254
- }
255
-
256
- func protobufFactory_emplaceBigint(output map[string]nativeprotobuf.IProtobufPropertyType, tags [][]schemametadata.IMetadataTypeTag, init string) {
257
- if len(tags) == 0 {
258
- output[init] = &nativeprotobuf.IProtobufPropertyType_IBigint{
259
- IProtobufSchema_IBigint: nativeprotobuf.IProtobufSchema_IBigint{Type: "bigint", Name: init},
260
- Index: nil,
261
- }
262
- return
263
- }
264
- for _, row := range tags {
265
- value := init
266
- for _, tag := range row {
267
- if tag.Kind == "type" && (tag.Value == "int64" || tag.Value == "uint64") {
268
- value = fmt.Sprint(tag.Value)
269
- break
270
- }
271
- }
272
- output[init] = &nativeprotobuf.IProtobufPropertyType_IBigint{
273
- IProtobufSchema_IBigint: nativeprotobuf.IProtobufSchema_IBigint{Type: "bigint", Name: value},
274
- Index: protobufFactory_getSequence(row),
275
- }
276
- }
277
- }
278
-
279
- func protobufFactory_emplaceNumber(output map[string]nativeprotobuf.IProtobufPropertyType, tags [][]schemametadata.IMetadataTypeTag, init string) {
280
- if len(tags) == 0 {
281
- output[init] = &nativeprotobuf.IProtobufPropertyType_INumber{
282
- IProtobufSchema_INumber: nativeprotobuf.IProtobufSchema_INumber{Type: "number", Name: init},
283
- Index: nil,
284
- }
285
- return
286
- }
287
- for _, row := range tags {
288
- value := init
289
- for _, tag := range row {
290
- if tag.Kind != "type" {
291
- continue
292
- }
293
- str := protobufFactory_normalizeNumberType(fmt.Sprint(tag.Value))
294
- if str != "" {
295
- value = str
296
- break
297
- }
298
- }
299
- output[value] = &nativeprotobuf.IProtobufPropertyType_INumber{
300
- IProtobufSchema_INumber: nativeprotobuf.IProtobufSchema_INumber{Type: "number", Name: value},
301
- Index: protobufFactory_getSequence(row),
302
- }
303
- }
304
- }
305
-
306
- func protobufFactory_validate() MetadataFactory_Validator {
307
- visited := map[*schemametadata.MetadataObjectType]bool{}
308
- return func(props struct {
309
- Metadata *schemametadata.MetadataSchema
310
- Explore MetadataFactory_IExplore
311
- Top *schemametadata.MetadataSchema
312
- }) []string {
313
- errors := []string{}
314
- insert := func(msg string) { errors = append(errors, msg) }
315
- if props.Explore.Top == true {
316
- onlyObject := props.Metadata.Size() == 1 &&
317
- len(props.Metadata.Objects) == 1 &&
318
- props.Metadata.IsRequired() == true &&
319
- props.Metadata.Nullable == false
320
- if onlyObject && len(props.Metadata.Objects) != 0 {
321
- for _, property := range props.Metadata.Objects[0].Type.Properties {
322
- if property.Key.IsSoleLiteral() == false {
323
- onlyObject = false
324
- break
325
- }
326
- }
327
- }
328
- if onlyObject == false {
329
- insert("target type must be a sole and static object type")
330
- }
331
- }
332
- for _, obj := range props.Metadata.Objects {
333
- if visited[obj.Type] {
334
- continue
335
- }
336
- visited[obj.Type] = true
337
- protobufFactory_validateObject(obj.Type, &errors)
338
- func() {
339
- defer func() { _ = recover() }()
340
- ProtobufFactory.EmplaceObject(obj.Type)
341
- }()
342
- }
343
- noSupport := func(msg string) { insert("does not support " + msg) }
344
- if props.Metadata.Any {
345
- noSupport("any type")
346
- }
347
- if len(props.Metadata.Functions) != 0 {
348
- noSupport("functional type")
349
- }
350
- if len(props.Metadata.Tuples) != 0 {
351
- noSupport("tuple type")
352
- }
353
- if len(props.Metadata.Sets) != 0 {
354
- noSupport("Set type")
355
- }
356
- for _, native := range props.Metadata.Natives {
357
- if native.Name == "Uint8Array" {
358
- continue
359
- }
360
- if instead, ok := protobufFactory_BANNED_NATIVE_TYPES[native.Name]; ok {
361
- noSupport(native.Name + " type. Use " + instead + " type instead.")
362
- } else {
363
- noSupport(native.Name + " type")
364
- }
365
- }
366
- if len(props.Metadata.Atomics) != 0 {
367
- numbers := protobufFactory_getNumbers(props.Metadata)
368
- bigints := protobufFactory_getBigints(props.Metadata)
369
- for _, typ := range []string{"int64", "uint64"} {
370
- if _, ok := numbers[typ]; ok {
371
- if _, found := bigints[typ]; found {
372
- insert("tags.Type<\"" + typ + "\"> cannot be used in both number and bigint types. Recommend to remove from number type")
373
- }
374
- }
375
- }
376
- }
377
- protobufFactory_validateShape(props.Metadata, noSupport)
378
- return errors
379
- }
380
- }
381
-
382
- func protobufFactory_validateShape(metadata *schemametadata.MetadataSchema, noSupport func(string)) {
383
- if len(metadata.Arrays) != 0 {
384
- for _, array := range metadata.Arrays {
385
- if len(array.Type.Value.Arrays) != 0 {
386
- noSupport("over two dimensional array type")
387
- break
388
- }
389
- }
390
- for _, array := range metadata.Arrays {
391
- if array.Type.Value.IsRequired() == false || array.Type.Value.Nullable {
392
- noSupport("optional type in array")
393
- break
394
- }
395
- }
396
- for _, array := range metadata.Arrays {
397
- if array.Type.Value.Size() > 1 && len(array.Type.Value.Constants) != 1 {
398
- noSupport("union type in array")
399
- break
400
- }
401
- }
402
- for _, array := range metadata.Arrays {
403
- if len(array.Type.Value.Maps) != 0 {
404
- noSupport("dynamic object in array")
405
- break
406
- }
407
- for _, obj := range array.Type.Value.Objects {
408
- if protobufFactory_isStaticObject(obj.Type) == false {
409
- noSupport("dynamic object in array")
410
- break
411
- }
412
- }
413
- }
414
- if metadata.Size() > 1 {
415
- noSupport("union type with array type")
416
- }
417
- }
418
- if len(metadata.Objects) != 0 {
419
- for _, obj := range metadata.Objects {
420
- if len(obj.Type.Properties) == 0 {
421
- noSupport("empty object type")
422
- break
423
- }
424
- }
425
- for _, obj := range metadata.Objects {
426
- dynamic := 0
427
- static := 0
428
- for _, property := range obj.Type.Properties {
429
- if property.Key.IsSoleLiteral() {
430
- static++
431
- } else {
432
- dynamic++
433
- }
434
- }
435
- if dynamic > 1 {
436
- noSupport("object type with multiple dynamic key typed properties. Keep only one.")
437
- }
438
- if static != 0 && dynamic != 0 {
439
- noSupport("object type with mixed static and dynamic key typed properties. Keep statics or dynamic only.")
440
- }
441
- }
442
- if protobufFactory_isDynamicObject(metadata.Objects[0].Type) {
443
- for _, property := range metadata.Objects[0].Type.Properties {
444
- if len(property.Value.Arrays) != 0 {
445
- noSupport("dynamic object with array value type")
446
- break
447
- }
448
- if protobufFactory_isUnion(property.Value) {
449
- noSupport("union type in dynamic property")
450
- break
451
- }
452
- }
453
- if metadata.Size() > 1 {
454
- noSupport("union type with dynamic object type")
455
- }
456
- }
457
- }
458
- if len(metadata.Maps) != 0 {
459
- for _, entry := range metadata.Maps {
460
- if protobufFactory_isUnion(entry.Key) {
461
- noSupport("union key typed map")
462
- }
463
- if len(protobufFactory_getAtomics(entry.Key)) != 1 {
464
- noSupport("non-atomic key typed map")
465
- }
466
- if entry.Key.IsRequired() == false || entry.Key.Nullable {
467
- noSupport("optional key typed map")
468
- }
469
- if len(entry.Value.Arrays) != 0 {
470
- noSupport("map type with array value type")
471
- }
472
- if protobufFactory_isUnion(entry.Value) {
473
- noSupport("union type in map value type")
474
- }
475
- }
476
- if metadata.Size() > 1 {
477
- noSupport("union type with map type")
478
- }
479
- }
480
- }
481
-
482
- func protobufFactory_validateObject(object *schemametadata.MetadataObjectType, errors *[]string) {
483
- for _, property := range object.Properties {
484
- // Dynamic keys (template/string typed) become protobuf maps and carry no
485
- // field name; only sole-literal keys reach the emitted message text.
486
- if name := property.Key.GetSoleLiteral(); name != nil && protobufFactory_isFieldName(*name) == false {
487
- *errors = append(*errors, fmt.Sprintf("property name %q is not a valid Protocol Buffer field name", *name))
488
- }
489
- protobufFactory_validateProperty(property.Value, errors)
490
- }
491
- entire := map[int]string{}
492
- for _, property := range object.Properties {
493
- local := map[int]bool{}
494
- tagger := func(matrix [][]schemametadata.IMetadataTypeTag) {
495
- for _, tags := range matrix {
496
- if value := protobufFactory_getSequence(tags); value != nil {
497
- local[*value] = true
498
- }
499
- }
500
- }
501
- for _, c := range property.Value.Constants {
502
- for _, v := range c.Values {
503
- tagger(v.Tags)
504
- }
505
- }
506
- for _, a := range property.Value.Atomics {
507
- tagger(a.Tags)
508
- }
509
- for _, t := range property.Value.Templates {
510
- tagger(t.Tags)
511
- }
512
- for _, o := range property.Value.Objects {
513
- tagger(o.Tags)
514
- }
515
- for _, a := range property.Value.Arrays {
516
- tagger(a.Tags)
517
- }
518
- for sequence := range local {
519
- name := ""
520
- if property.Key.GetSoleLiteral() != nil {
521
- name = *property.Key.GetSoleLiteral()
522
- }
523
- if prev, ok := entire[sequence]; ok {
524
- *errors = append(*errors, fmt.Sprintf("The Sequence<%d> tag is duplicated in two properties (%q and %q)", sequence, prev, name))
525
- } else {
526
- entire[sequence] = name
527
- }
528
- }
529
- }
530
- }
531
-
532
- func protobufFactory_validateProperty(metadata *schemametadata.MetadataSchema, errors *[]string) {
533
- sequences := map[int]bool{}
534
- add := func(value int) bool {
535
- if sequences[value] {
536
- return false
537
- }
538
- sequences[value] = true
539
- return true
540
- }
541
- protobufFactory_validateBooleanSequence(metadata, errors, add)
542
- protobufFactory_validateNumericSequences(metadata, errors, add, "bigint", "int64", protobufFactory_BIGINT_TYPES)
543
- protobufFactory_validateNumericSequences(metadata, errors, add, "number", "double", protobufFactory_NUMBER_TYPES)
544
- protobufFactory_validateStringSequence(metadata, errors, add)
545
- for _, array := range metadata.Arrays {
546
- protobufFactory_validateInstanceSequence("array", array.Tags, errors, add)
547
- }
548
- for _, object := range metadata.Objects {
549
- protobufFactory_validateInstanceSequence("object", object.Tags, errors, add)
550
- }
551
- for _, entry := range metadata.Maps {
552
- protobufFactory_validateInstanceSequence("map", entry.Tags, errors, add)
553
- }
554
- for _, native := range metadata.Natives {
555
- if native.Name == "Uint8Array" {
556
- protobufFactory_validateInstanceSequence("Uint8Array", native.Tags, errors, add)
557
- }
558
- }
559
- }
560
-
561
- func protobufFactory_validateBooleanSequence(metadata *schemametadata.MetadataSchema, errors *[]string, add func(int) bool) {
562
- unique, expected, actual := map[int]bool{}, 0, 0
563
- emplace := func(matrix [][]schemametadata.IMetadataTypeTag) {
564
- for _, tags := range matrix {
565
- for _, tag := range tags {
566
- if sequence := protobufFactory_getSequence([]schemametadata.IMetadataTypeTag{tag}); sequence != nil {
567
- unique[*sequence] = true
568
- actual++
569
- }
570
- expected++
571
- }
572
- }
573
- }
574
- for _, atomic := range metadata.Atomics {
575
- if atomic.Type == "boolean" {
576
- emplace(atomic.Tags)
577
- }
578
- }
579
- for _, constant := range metadata.Constants {
580
- if constant.Type == "boolean" {
581
- for _, value := range constant.Values {
582
- emplace(value.Tags)
583
- }
584
- }
585
- }
586
- protobufFactory_validateUniqueSequence("boolean type", unique, expected, actual, errors, add)
587
- }
588
-
589
- func protobufFactory_validateNumericSequences(metadata *schemametadata.MetadataSchema, errors *[]string, add func(int) bool, typ string, def string, categories map[string]bool) {
590
- foundCategories := map[string]bool{}
591
- getType := func(tags []schemametadata.IMetadataTypeTag) string {
592
- for _, tag := range tags {
593
- if tag.Kind != "type" {
594
- continue
595
- }
596
- value := protobufFactory_normalizeNumberType(fmt.Sprint(tag.Value))
597
- if value != "" && categories[value] {
598
- return value
599
- }
600
- }
601
- return def
602
- }
603
- for _, atomic := range metadata.Atomics {
604
- if atomic.Type == typ {
605
- for _, tags := range atomic.Tags {
606
- foundCategories[getType(tags)] = true
607
- }
608
- }
609
- }
610
- for _, constant := range metadata.Constants {
611
- if constant.Type == typ {
612
- for _, value := range constant.Values {
613
- for _, tags := range value.Tags {
614
- foundCategories[getType(tags)] = true
615
- }
616
- }
617
- }
618
- }
619
- for category := range foundCategories {
620
- unique, expected, actual := map[int]bool{}, 0, 0
621
- emplace := func(tags []schemametadata.IMetadataTypeTag) {
622
- if sequence := protobufFactory_getSequence(tags); sequence != nil {
623
- unique[*sequence] = true
624
- actual++
625
- }
626
- expected++
627
- }
628
- for _, atomic := range metadata.Atomics {
629
- if atomic.Type == typ {
630
- for _, tags := range atomic.Tags {
631
- if getType(tags) == category {
632
- emplace(tags)
633
- }
634
- }
635
- }
636
- }
637
- for _, constant := range metadata.Constants {
638
- if constant.Type == typ {
639
- for _, value := range constant.Values {
640
- for _, tags := range value.Tags {
641
- if getType(tags) == category {
642
- emplace(tags)
643
- }
644
- }
645
- }
646
- }
647
- }
648
- protobufFactory_validateUniqueSequence(typ+" type", unique, expected, actual, errors, add)
649
- }
650
- }
651
-
652
- func protobufFactory_validateStringSequence(metadata *schemametadata.MetadataSchema, errors *[]string, add func(int) bool) {
653
- unique, expected, actual := map[int]bool{}, 0, 0
654
- emplace := func(matrix [][]schemametadata.IMetadataTypeTag) {
655
- for _, tags := range matrix {
656
- for _, tag := range tags {
657
- if sequence := protobufFactory_getSequence([]schemametadata.IMetadataTypeTag{tag}); sequence != nil {
658
- unique[*sequence] = true
659
- actual++
660
- }
661
- expected++
662
- }
663
- }
664
- }
665
- for _, atomic := range metadata.Atomics {
666
- if atomic.Type == "string" {
667
- emplace(atomic.Tags)
668
- }
669
- }
670
- for _, constant := range metadata.Constants {
671
- if constant.Type == "string" {
672
- for _, value := range constant.Values {
673
- emplace(value.Tags)
674
- }
675
- }
676
- }
677
- for _, template := range metadata.Templates {
678
- emplace(template.Tags)
679
- }
680
- protobufFactory_validateUniqueSequence("string type", unique, expected, actual, errors, add)
681
- }
682
-
683
- func protobufFactory_validateInstanceSequence(typ string, tags [][]schemametadata.IMetadataTypeTag, errors *[]string, add func(int) bool) {
684
- unique := map[int]bool{}
685
- count := 0
686
- for _, row := range tags {
687
- if value := protobufFactory_getSequence(row); value != nil {
688
- unique[*value] = true
689
- count++
690
- }
691
- }
692
- if len(unique) != 0 && count != len(tags) {
693
- *errors = append(*errors, "The sequence tag must be declared in every union type members")
694
- } else if len(unique) > 1 {
695
- label := "object"
696
- if typ == "array" {
697
- label = "an array"
698
- }
699
- *errors = append(*errors, "The sequence tag value must be the same in "+label+" type.")
700
- } else if len(unique) == 1 {
701
- for value := range unique {
702
- if add(value) == false {
703
- *errors = append(*errors, fmt.Sprintf("The sequence tag value %d in %s type is duplicated with other types", value, typ))
704
- }
705
- }
706
- }
707
- }
708
-
709
- func protobufFactory_validateUniqueSequence(label string, unique map[int]bool, expected int, actual int, errors *[]string, add func(int) bool) {
710
- if len(unique) != 0 && actual != expected {
711
- *errors = append(*errors, "The sequence tag must be declared in every union type members")
712
- } else if len(unique) > 1 {
713
- *errors = append(*errors, "The sequence tag value must be the same in "+label+" (including literal types)")
714
- } else if len(unique) == 1 {
715
- for value := range unique {
716
- if add(value) == false {
717
- *errors = append(*errors, fmt.Sprintf("The sequence tag value %d in %s is duplicated with other types", value, label))
718
- }
719
- }
720
- }
721
- }
722
-
723
- func protobufFactory_propertyIndex(prop nativeprotobuf.IProtobufPropertyType) *int {
724
- switch v := prop.(type) {
725
- case *nativeprotobuf.IProtobufPropertyType_IByte:
726
- return v.Index
727
- case *nativeprotobuf.IProtobufPropertyType_IBoolean:
728
- return v.Index
729
- case *nativeprotobuf.IProtobufPropertyType_IBigint:
730
- return v.Index
731
- case *nativeprotobuf.IProtobufPropertyType_INumber:
732
- return v.Index
733
- case *nativeprotobuf.IProtobufPropertyType_IString:
734
- return v.Index
735
- case *nativeprotobuf.IProtobufPropertyType_IArray:
736
- return v.Index
737
- case *nativeprotobuf.IProtobufPropertyType_IObject:
738
- return v.Index
739
- case *nativeprotobuf.IProtobufPropertyType_IMap:
740
- return v.Index
741
- }
742
- return nil
743
- }
744
-
745
- func protobufFactory_setPropertyIndex(prop nativeprotobuf.IProtobufPropertyType, index int) {
746
- switch v := prop.(type) {
747
- case *nativeprotobuf.IProtobufPropertyType_IByte:
748
- v.Index = &index
749
- case *nativeprotobuf.IProtobufPropertyType_IBoolean:
750
- v.Index = &index
751
- case *nativeprotobuf.IProtobufPropertyType_IBigint:
752
- v.Index = &index
753
- case *nativeprotobuf.IProtobufPropertyType_INumber:
754
- v.Index = &index
755
- case *nativeprotobuf.IProtobufPropertyType_IString:
756
- v.Index = &index
757
- case *nativeprotobuf.IProtobufPropertyType_IArray:
758
- v.Index = &index
759
- case *nativeprotobuf.IProtobufPropertyType_IObject:
760
- v.Index = &index
761
- case *nativeprotobuf.IProtobufPropertyType_IMap:
762
- v.Index = &index
763
- }
764
- }
765
-
766
- // protobufFactory_isFieldName reports whether the property name is a valid
767
- // proto3 field identifier: letters, digits, and underscores, not starting
768
- // with a digit. Anything else cannot appear in the emitted message text.
769
- func protobufFactory_isFieldName(name string) bool {
770
- if len(name) == 0 {
771
- return false
772
- }
773
- for i := 0; i < len(name); i++ {
774
- ch := name[i]
775
- switch {
776
- case ch == '_':
777
- case 'a' <= ch && ch <= 'z':
778
- case 'A' <= ch && ch <= 'Z':
779
- case '0' <= ch && ch <= '9':
780
- if i == 0 {
781
- return false
782
- }
783
- default:
784
- return false
785
- }
786
- }
787
- return true
788
- }
789
-
790
- func protobufFactory_firstTagRow(tags [][]schemametadata.IMetadataTypeTag) []schemametadata.IMetadataTypeTag {
791
- if len(tags) == 0 {
792
- return []schemametadata.IMetadataTypeTag{}
793
- }
794
- return tags[0]
795
- }
796
-
797
- func protobufFactory_getSequence(tags []schemametadata.IMetadataTypeTag) *int {
798
- for _, tag := range tags {
799
- if sequence := schemametadata.IMetadataTypeTag_getSequence(tag); sequence != nil {
800
- return sequence
801
- }
802
- }
803
- return nil
804
- }
805
-
806
- func protobufFactory_isStaticObject(obj *schemametadata.MetadataObjectType) bool {
807
- if obj == nil || len(obj.Properties) == 0 {
808
- return false
809
- }
810
- for _, property := range obj.Properties {
811
- if property.Key.IsSoleLiteral() == false {
812
- return false
813
- }
814
- }
815
- return true
816
- }
817
-
818
- func protobufFactory_isUnion(meta *schemametadata.MetadataSchema) bool {
819
- return protobufFactory_size(meta) > 1
820
- }
821
-
822
- func protobufFactory_size(meta *schemametadata.MetadataSchema) int {
823
- if meta == nil {
824
- return 0
825
- }
826
- return len(protobufFactory_getAtomics(meta)) +
827
- len(meta.Arrays) +
828
- len(meta.Tuples) +
829
- len(meta.Natives) +
830
- len(meta.Objects) +
831
- len(meta.Maps)
832
- }
833
-
834
- func protobufFactory_getAtomics(meta *schemametadata.MetadataSchema) map[string]*int {
835
- output := map[string]*int{}
836
- for _, constant := range meta.Constants {
837
- if constant.Type == "boolean" {
838
- output["bool"] = protobufFactory_getSequence(protobufFactory_firstTags(constant.Values))
839
- } else if constant.Type == "bigint" {
840
- init := protobufFactory_getBigintType(protobufFactory_constantValues(constant.Values))
841
- protobufFactory_decodeBigint(output, constant.Values, init)
842
- } else if constant.Type == "number" {
843
- init := protobufFactory_getNumberType(protobufFactory_constantValues(constant.Values))
844
- protobufFactory_decodeNumber(output, constant.Values, init)
845
- } else if constant.Type == "string" {
846
- output["string"] = protobufFactory_getSequence(protobufFactory_firstTags(constant.Values))
847
- }
848
- }
849
- if len(meta.Templates) != 0 {
850
- output["string"] = protobufFactory_getSequence(protobufFactory_firstTagRow(meta.Templates[0].Tags))
851
- }
852
- for _, atomic := range meta.Atomics {
853
- if atomic.Type == "boolean" {
854
- output["bool"] = protobufFactory_getSequence(protobufFactory_firstTagRow(atomic.Tags))
855
- } else if atomic.Type == "bigint" {
856
- protobufFactory_decodeBigintTags(output, atomic.Tags, "int64")
857
- } else if atomic.Type == "number" {
858
- protobufFactory_decodeNumberTags(output, atomic.Tags, "double")
859
- } else if atomic.Type == "string" {
860
- output["string"] = protobufFactory_getSequence(protobufFactory_firstTagRow(atomic.Tags))
861
- }
862
- }
863
- return output
864
- }
865
-
866
- func protobufFactory_getNumbers(meta *schemametadata.MetadataSchema) map[string]*int {
867
- output := map[string]*int{}
868
- for _, constant := range meta.Constants {
869
- if constant.Type == "number" {
870
- init := protobufFactory_getNumberType(protobufFactory_constantValues(constant.Values))
871
- protobufFactory_decodeNumber(output, constant.Values, init)
872
- }
873
- }
874
- for _, atomic := range meta.Atomics {
875
- if atomic.Type == "number" {
876
- protobufFactory_decodeNumberTags(output, atomic.Tags, "double")
877
- }
878
- }
879
- return output
880
- }
881
-
882
- func protobufFactory_getBigints(meta *schemametadata.MetadataSchema) map[string]*int {
883
- output := map[string]*int{}
884
- for _, constant := range meta.Constants {
885
- if constant.Type == "bigint" {
886
- init := protobufFactory_getBigintType(protobufFactory_constantValues(constant.Values))
887
- protobufFactory_decodeBigint(output, constant.Values, init)
888
- }
889
- }
890
- for _, atomic := range meta.Atomics {
891
- if atomic.Type == "bigint" {
892
- protobufFactory_decodeBigintTags(output, atomic.Tags, "int64")
893
- }
894
- }
895
- return output
896
- }
897
-
898
- func protobufFactory_decodeBigint(output map[string]*int, values []*schemametadata.MetadataConstantValue, init string) {
899
- for _, value := range values {
900
- protobufFactory_decodeBigintTags(output, value.Tags, init)
901
- }
902
- }
903
-
904
- func protobufFactory_decodeNumber(output map[string]*int, values []*schemametadata.MetadataConstantValue, init string) {
905
- for _, value := range values {
906
- protobufFactory_decodeNumberTags(output, value.Tags, init)
907
- }
908
- }
909
-
910
- func protobufFactory_decodeBigintTags(output map[string]*int, tags [][]schemametadata.IMetadataTypeTag, init string) {
911
- if len(tags) == 0 {
912
- output[init] = nil
913
- return
914
- }
915
- for _, row := range tags {
916
- value := init
917
- for _, tag := range row {
918
- if tag.Kind == "type" && (tag.Value == "int64" || tag.Value == "uint64") {
919
- value = fmt.Sprint(tag.Value)
920
- break
921
- }
922
- }
923
- output[value] = protobufFactory_getSequence(row)
924
- }
925
- }
926
-
927
- func protobufFactory_decodeNumberTags(output map[string]*int, tags [][]schemametadata.IMetadataTypeTag, init string) {
928
- if len(tags) == 0 {
929
- output[init] = nil
930
- return
931
- }
932
- for _, row := range tags {
933
- value := init
934
- for _, tag := range row {
935
- if tag.Kind != "type" {
936
- continue
937
- }
938
- str := protobufFactory_normalizeNumberType(fmt.Sprint(tag.Value))
939
- if str != "" {
940
- value = str
941
- break
942
- }
943
- }
944
- output[value] = protobufFactory_getSequence(row)
945
- }
946
- }
947
-
948
- func protobufFactory_compare(x string, y string) int {
949
- return protobufFactory_ATOMIC_ORDER[x] - protobufFactory_ATOMIC_ORDER[y]
950
- }
951
-
952
- func protobufFactory_firstTags(values []*schemametadata.MetadataConstantValue) []schemametadata.IMetadataTypeTag {
953
- if len(values) == 0 {
954
- return []schemametadata.IMetadataTypeTag{}
955
- }
956
- return protobufFactory_firstTagRow(values[0].Tags)
957
- }
958
-
959
- func protobufFactory_constantValues(values []*schemametadata.MetadataConstantValue) []any {
960
- output := make([]any, 0, len(values))
961
- for _, value := range values {
962
- output = append(output, value.Value)
963
- }
964
- return output
965
- }
966
-
967
- func protobufFactory_getBigintType(values []any) string {
968
- for _, value := range values {
969
- if strings.HasPrefix(fmt.Sprint(value), "-") {
970
- return "int64"
971
- }
972
- }
973
- return "uint64"
974
- }
975
-
976
- func protobufFactory_getNumberType(values []any) string {
977
- integers := true
978
- int32s := true
979
- for _, value := range values {
980
- number := protobufFactory_toFloat(value)
981
- if math.Floor(number) != number {
982
- integers = false
983
- break
984
- }
985
- if -2147483648 <= number && number <= 2147483647 {
986
- continue
987
- }
988
- int32s = false
989
- }
990
- if integers == false {
991
- return "double"
992
- }
993
- if int32s {
994
- return "int32"
995
- }
996
- return "int64"
997
- }
998
-
999
- func protobufFactory_toFloat(value any) float64 {
1000
- switch v := value.(type) {
1001
- case float64:
1002
- return v
1003
- case float32:
1004
- return float64(v)
1005
- case int:
1006
- return float64(v)
1007
- case int64:
1008
- return float64(v)
1009
- case uint64:
1010
- return float64(v)
1011
- default:
1012
- var out float64
1013
- fmt.Sscan(fmt.Sprint(value), &out)
1014
- return out
1015
- }
1016
- }
1017
-
1018
- func protobufFactory_isDynamicObject(obj *schemametadata.MetadataObjectType) bool {
1019
- return obj != nil && len(obj.Properties) != 0 && obj.Properties[0].Key.IsSoleLiteral() == false
1020
- }
1021
-
1022
- func protobufFactory_errors(errors []MetadataFactory_IError) []nativecontext.TransformerError_MetadataFactory_IError {
1023
- output := make([]nativecontext.TransformerError_MetadataFactory_IError, 0, len(errors))
1024
- for _, err := range errors {
1025
- output = append(output, nativecontext.TransformerError_MetadataFactory_IError{
1026
- Name: err.Name,
1027
- Explore: nativecontext.TransformerError_MetadataFactory_IExplore{
1028
- Object: err.Explore.Object,
1029
- Property: err.Explore.Property,
1030
- Parameter: err.Explore.Parameter,
1031
- Output: err.Explore.Output,
1032
- },
1033
- Messages: append([]string{}, err.Messages...),
1034
- })
1035
- }
1036
- return output
1037
- }
1038
-
1039
- var protobufFactory_BANNED_NATIVE_TYPES = map[string]string{
1040
- "Date": "string",
1041
- "Boolean": "boolean",
1042
- "BigInt": "bigint",
1043
- "Number": "number",
1044
- "String": "string",
1045
- "Buffer": "Uint8Array",
1046
- "Uint8ClampedArray": "Uint8Array",
1047
- "Uint16Array": "Uint8Array",
1048
- "Uint32Array": "Uint8Array",
1049
- "BigUint64Array": "Uint8Array",
1050
- "Int8Array": "Uint8Array",
1051
- "Int16Array": "Uint8Array",
1052
- "Int32Array": "Uint8Array",
1053
- "BigInt64Array": "Uint8Array",
1054
- "Float32Array": "Uint8Array",
1055
- "Float64Array": "Uint8Array",
1056
- "DataView": "Uint8Array",
1057
- "ArrayBuffer": "Uint8Array",
1058
- "SharedArrayBuffer": "Uint8Array",
1059
- "WeakSet": "Array",
1060
- "WeakMap": "Map",
1061
- }
1062
-
1063
- var protobufFactory_NUMBER_TYPES = map[string]bool{
1064
- "int32": true, "uint32": true, "int64": true, "uint64": true, "float": true, "double": true,
1065
- }
1066
- var protobufFactory_BIGINT_TYPES = map[string]bool{"int64": true, "uint64": true}
1067
- var protobufFactory_ATOMIC_ORDER = map[string]int{
1068
- "bool": 0,
1069
- "int32": 1,
1070
- "uint32": 2,
1071
- "int64": 3,
1072
- "uint64": 4,
1073
- "float": 5,
1074
- "double": 6,
1075
- "string": 7,
1076
- }
1077
-
1078
- func protobufFactory_normalizeNumberType(value string) string {
1079
- switch value {
1080
- case "int8", "int16":
1081
- return "int32"
1082
- case "uint8", "uint16":
1083
- return "uint32"
1084
- default:
1085
- if protobufFactory_NUMBER_TYPES[value] {
1086
- return value
1087
- }
1088
- return ""
1089
- }
1090
- }
1
+ package factories
2
+
3
+ import (
4
+ "fmt"
5
+ "math"
6
+ "sort"
7
+ "strings"
8
+
9
+ shimchecker "github.com/microsoft/typescript-go/shim/checker"
10
+ nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
11
+ schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
12
+ nativeprotobuf "github.com/samchon/typia/packages/typia/native/core/schemas/protobuf"
13
+ )
14
+
15
+ type protobufFactoryNamespace struct{}
16
+
17
+ var ProtobufFactory = protobufFactoryNamespace{}
18
+
19
+ type ProtobufFactory_IProps struct {
20
+ Method string
21
+ Checker *shimchecker.Checker
22
+ Components *schemametadata.MetadataCollection
23
+ Type *shimchecker.Type
24
+ }
25
+
26
+ func (protobufFactoryNamespace) Metadata(props ProtobufFactory_IProps) *schemametadata.MetadataSchema {
27
+ result := MetadataFactory.Analyze(MetadataFactory_IProps{
28
+ Checker: props.Checker,
29
+ Options: MetadataFactory_IOptions{
30
+ Escape: false,
31
+ Constant: true,
32
+ Absorb: true,
33
+ Validate: protobufFactory_validate(),
34
+ },
35
+ Components: props.Components,
36
+ Type: props.Type,
37
+ })
38
+ if result.Success == false {
39
+ panic(nativecontext.TransformerError_from(struct {
40
+ Code string
41
+ Errors []nativecontext.TransformerError_MetadataFactory_IError
42
+ }{
43
+ Code: "typia.protobuf." + props.Method,
44
+ Errors: protobufFactory_errors(result.Errors),
45
+ }))
46
+ }
47
+ return result.Data
48
+ }
49
+
50
+ func (protobufFactoryNamespace) EmplaceObject(object *schemametadata.MetadataObjectType) {
51
+ for _, property := range object.Properties {
52
+ protobufFactory_emplaceProperty(property)
53
+ }
54
+ properties := []*nativeprotobuf.IProtobufProperty{}
55
+ for _, property := range object.Properties {
56
+ if property.Of_protobuf_ != nil {
57
+ properties = append(properties, property.Of_protobuf_)
58
+ }
59
+ }
60
+ unique := map[int]bool{}
61
+ for _, property := range properties {
62
+ if property.Fixed == false {
63
+ continue
64
+ }
65
+ for _, union := range property.Union {
66
+ if index := protobufFactory_propertyIndex(union); index != nil {
67
+ unique[*index] = true
68
+ }
69
+ }
70
+ }
71
+ index := 1
72
+ for _, schema := range properties {
73
+ if schema.Fixed {
74
+ for _, union := range schema.Union {
75
+ if next := protobufFactory_propertyIndex(union); next != nil && *next >= index {
76
+ index = *next + 1
77
+ }
78
+ }
79
+ continue
80
+ }
81
+ for _, union := range schema.Union {
82
+ for unique[index] {
83
+ index++
84
+ }
85
+ protobufFactory_setPropertyIndex(union, index)
86
+ unique[index] = true
87
+ }
88
+ index++
89
+ }
90
+ }
91
+
92
+ func protobufFactory_emplaceProperty(prop *schemametadata.MetadataProperty) {
93
+ union := []nativeprotobuf.IProtobufPropertyType{}
94
+ for _, native := range prop.Value.Natives {
95
+ if native.Name == "Uint8Array" {
96
+ union = append(union, &nativeprotobuf.IProtobufPropertyType_IByte{
97
+ IProtobufSchema_IByte: nativeprotobuf.IProtobufSchema_IByte{Type: "bytes"},
98
+ Index: protobufFactory_getSequence(protobufFactory_firstTagRow(native.Tags)),
99
+ })
100
+ }
101
+ }
102
+ union = append(union, protobufFactory_emplaceAtomic(prop.Value)...)
103
+ for _, array := range prop.Value.Arrays {
104
+ union = append(union, &nativeprotobuf.IProtobufPropertyType_IArray{
105
+ IProtobufSchema_IArray: nativeprotobuf.IProtobufSchema_IArray{
106
+ Type: "array",
107
+ Array: array.Type,
108
+ Value: protobufFactory_emplaceSchema(array.Type.Value),
109
+ },
110
+ Index: protobufFactory_getSequence(protobufFactory_firstTagRow(array.Tags)),
111
+ })
112
+ }
113
+ for _, obj := range prop.Value.Objects {
114
+ if protobufFactory_isDynamicObject(obj.Type) {
115
+ union = append(union, &nativeprotobuf.IProtobufPropertyType_IMap{
116
+ IProtobufSchema_IMap: nativeprotobuf.IProtobufSchema_IMap{
117
+ Type: "map",
118
+ Map: obj.Type,
119
+ Key: protobufFactory_emplaceSchema(obj.Type.Properties[0].Key),
120
+ Value: protobufFactory_emplaceSchema(obj.Type.Properties[0].Value),
121
+ },
122
+ Index: protobufFactory_getSequence(protobufFactory_firstTagRow(obj.Tags)),
123
+ })
124
+ } else {
125
+ union = append(union, &nativeprotobuf.IProtobufPropertyType_IObject{
126
+ IProtobufSchema_IObject: nativeprotobuf.IProtobufSchema_IObject{Type: "object", Object: obj.Type},
127
+ Index: protobufFactory_getSequence(protobufFactory_firstTagRow(obj.Tags)),
128
+ })
129
+ }
130
+ }
131
+ for _, entry := range prop.Value.Maps {
132
+ union = append(union, &nativeprotobuf.IProtobufPropertyType_IMap{
133
+ IProtobufSchema_IMap: nativeprotobuf.IProtobufSchema_IMap{
134
+ Type: "map",
135
+ Map: entry,
136
+ Key: protobufFactory_emplaceSchema(entry.Key),
137
+ Value: protobufFactory_emplaceSchema(entry.Value),
138
+ },
139
+ Index: protobufFactory_getSequence(protobufFactory_firstTagRow(entry.Tags)),
140
+ })
141
+ }
142
+ fixed := true
143
+ for _, elem := range union {
144
+ if protobufFactory_propertyIndex(elem) == nil {
145
+ fixed = false
146
+ break
147
+ }
148
+ }
149
+ prop.Of_protobuf_ = &nativeprotobuf.IProtobufProperty{
150
+ Union: union,
151
+ Fixed: fixed,
152
+ }
153
+ }
154
+
155
+ func protobufFactory_emplaceSchema(metadata *schemametadata.MetadataSchema) nativeprotobuf.IProtobufSchema {
156
+ for _, native := range metadata.Natives {
157
+ if native.Name == "Uint8Array" {
158
+ return nativeprotobuf.IProtobufSchema_IByte{Type: "bytes"}
159
+ }
160
+ }
161
+ atomic := protobufFactory_emplaceAtomic(metadata)
162
+ if len(atomic) != 0 {
163
+ return atomic[0]
164
+ }
165
+ for _, array := range metadata.Arrays {
166
+ return nativeprotobuf.IProtobufSchema_IArray{
167
+ Type: "array",
168
+ Array: array.Type,
169
+ Value: protobufFactory_emplaceSchema(array.Type.Value),
170
+ }
171
+ }
172
+ for _, obj := range metadata.Objects {
173
+ if protobufFactory_isDynamicObject(obj.Type) {
174
+ return nativeprotobuf.IProtobufSchema_IMap{
175
+ Type: "map",
176
+ Map: obj.Type,
177
+ Key: protobufFactory_emplaceSchema(obj.Type.Properties[0].Key),
178
+ Value: protobufFactory_emplaceSchema(obj.Type.Properties[0].Value),
179
+ }
180
+ }
181
+ return nativeprotobuf.IProtobufSchema_IObject{Type: "object", Object: obj.Type}
182
+ }
183
+ for _, entry := range metadata.Maps {
184
+ return nativeprotobuf.IProtobufSchema_IMap{
185
+ Type: "map",
186
+ Map: entry,
187
+ Key: protobufFactory_emplaceSchema(entry.Key),
188
+ Value: protobufFactory_emplaceSchema(entry.Value),
189
+ }
190
+ }
191
+ panic("Error on ProtobufFactory.emplaceSchema(): any type detected.")
192
+ }
193
+
194
+ func protobufFactory_emplaceAtomic(meta *schemametadata.MetadataSchema) []nativeprotobuf.IProtobufPropertyType {
195
+ values := map[string]nativeprotobuf.IProtobufPropertyType{}
196
+ for _, constant := range meta.Constants {
197
+ if constant.Type == "boolean" {
198
+ values["bool"] = &nativeprotobuf.IProtobufPropertyType_IBoolean{
199
+ IProtobufSchema_IBoolean: nativeprotobuf.IProtobufSchema_IBoolean{Type: "bool"},
200
+ Index: protobufFactory_getSequence(protobufFactory_firstTags(constant.Values)),
201
+ }
202
+ } else if constant.Type == "bigint" {
203
+ init := protobufFactory_getBigintType(protobufFactory_constantValues(constant.Values))
204
+ for _, value := range constant.Values {
205
+ protobufFactory_emplaceBigint(values, value.Tags, init)
206
+ }
207
+ } else if constant.Type == "number" {
208
+ init := protobufFactory_getNumberType(protobufFactory_constantValues(constant.Values))
209
+ for _, value := range constant.Values {
210
+ protobufFactory_emplaceNumber(values, value.Tags, init)
211
+ }
212
+ } else if constant.Type == "string" {
213
+ values["string"] = &nativeprotobuf.IProtobufPropertyType_IString{
214
+ IProtobufSchema_IString: nativeprotobuf.IProtobufSchema_IString{Type: "string"},
215
+ Index: protobufFactory_getSequence(protobufFactory_firstTags(constant.Values)),
216
+ }
217
+ }
218
+ }
219
+ if len(meta.Templates) != 0 {
220
+ values["string"] = &nativeprotobuf.IProtobufPropertyType_IString{
221
+ IProtobufSchema_IString: nativeprotobuf.IProtobufSchema_IString{Type: "string"},
222
+ Index: protobufFactory_getSequence(protobufFactory_firstTagRow(meta.Templates[0].Tags)),
223
+ }
224
+ }
225
+ for _, atomic := range meta.Atomics {
226
+ if atomic.Type == "boolean" {
227
+ values["bool"] = &nativeprotobuf.IProtobufPropertyType_IBoolean{
228
+ IProtobufSchema_IBoolean: nativeprotobuf.IProtobufSchema_IBoolean{Type: "bool"},
229
+ Index: protobufFactory_getSequence(protobufFactory_firstTagRow(atomic.Tags)),
230
+ }
231
+ } else if atomic.Type == "bigint" {
232
+ protobufFactory_emplaceBigint(values, atomic.Tags, "int64")
233
+ } else if atomic.Type == "number" {
234
+ protobufFactory_emplaceNumber(values, atomic.Tags, "double")
235
+ } else if atomic.Type == "string" {
236
+ values["string"] = &nativeprotobuf.IProtobufPropertyType_IString{
237
+ IProtobufSchema_IString: nativeprotobuf.IProtobufSchema_IString{Type: "string"},
238
+ Index: protobufFactory_getSequence(protobufFactory_firstTagRow(atomic.Tags)),
239
+ }
240
+ }
241
+ }
242
+ keys := make([]string, 0, len(values))
243
+ for key := range values {
244
+ keys = append(keys, key)
245
+ }
246
+ sort.Slice(keys, func(i, j int) bool {
247
+ return protobufFactory_compare(keys[i], keys[j]) < 0
248
+ })
249
+ output := make([]nativeprotobuf.IProtobufPropertyType, 0, len(keys))
250
+ for _, key := range keys {
251
+ output = append(output, values[key])
252
+ }
253
+ return output
254
+ }
255
+
256
+ func protobufFactory_emplaceBigint(output map[string]nativeprotobuf.IProtobufPropertyType, tags [][]schemametadata.IMetadataTypeTag, init string) {
257
+ if len(tags) == 0 {
258
+ output[init] = &nativeprotobuf.IProtobufPropertyType_IBigint{
259
+ IProtobufSchema_IBigint: nativeprotobuf.IProtobufSchema_IBigint{Type: "bigint", Name: init},
260
+ Index: nil,
261
+ }
262
+ return
263
+ }
264
+ for _, row := range tags {
265
+ value := init
266
+ for _, tag := range row {
267
+ if tag.Kind == "type" && (tag.Value == "int64" || tag.Value == "uint64") {
268
+ value = fmt.Sprint(tag.Value)
269
+ break
270
+ }
271
+ }
272
+ output[init] = &nativeprotobuf.IProtobufPropertyType_IBigint{
273
+ IProtobufSchema_IBigint: nativeprotobuf.IProtobufSchema_IBigint{Type: "bigint", Name: value},
274
+ Index: protobufFactory_getSequence(row),
275
+ }
276
+ }
277
+ }
278
+
279
+ func protobufFactory_emplaceNumber(output map[string]nativeprotobuf.IProtobufPropertyType, tags [][]schemametadata.IMetadataTypeTag, init string) {
280
+ if len(tags) == 0 {
281
+ output[init] = &nativeprotobuf.IProtobufPropertyType_INumber{
282
+ IProtobufSchema_INumber: nativeprotobuf.IProtobufSchema_INumber{Type: "number", Name: init},
283
+ Index: nil,
284
+ }
285
+ return
286
+ }
287
+ for _, row := range tags {
288
+ value := init
289
+ for _, tag := range row {
290
+ if tag.Kind != "type" {
291
+ continue
292
+ }
293
+ str := protobufFactory_normalizeNumberType(fmt.Sprint(tag.Value))
294
+ if str != "" {
295
+ value = str
296
+ break
297
+ }
298
+ }
299
+ output[value] = &nativeprotobuf.IProtobufPropertyType_INumber{
300
+ IProtobufSchema_INumber: nativeprotobuf.IProtobufSchema_INumber{Type: "number", Name: value},
301
+ Index: protobufFactory_getSequence(row),
302
+ }
303
+ }
304
+ }
305
+
306
+ func protobufFactory_validate() MetadataFactory_Validator {
307
+ visited := map[*schemametadata.MetadataObjectType]bool{}
308
+ return func(props struct {
309
+ Metadata *schemametadata.MetadataSchema
310
+ Explore MetadataFactory_IExplore
311
+ Top *schemametadata.MetadataSchema
312
+ }) []string {
313
+ errors := []string{}
314
+ insert := func(msg string) { errors = append(errors, msg) }
315
+ if props.Explore.Top == true {
316
+ onlyObject := props.Metadata.Size() == 1 &&
317
+ len(props.Metadata.Objects) == 1 &&
318
+ props.Metadata.IsRequired() == true &&
319
+ props.Metadata.Nullable == false
320
+ if onlyObject && len(props.Metadata.Objects) != 0 {
321
+ for _, property := range props.Metadata.Objects[0].Type.Properties {
322
+ if property.Key.IsSoleLiteral() == false {
323
+ onlyObject = false
324
+ break
325
+ }
326
+ }
327
+ }
328
+ if onlyObject == false {
329
+ insert("target type must be a sole and static object type")
330
+ }
331
+ }
332
+ for _, obj := range props.Metadata.Objects {
333
+ if visited[obj.Type] {
334
+ continue
335
+ }
336
+ visited[obj.Type] = true
337
+ protobufFactory_validateObject(obj.Type, &errors)
338
+ func() {
339
+ defer func() { _ = recover() }()
340
+ ProtobufFactory.EmplaceObject(obj.Type)
341
+ }()
342
+ }
343
+ noSupport := func(msg string) { insert("does not support " + msg) }
344
+ if props.Metadata.Any {
345
+ noSupport("any type")
346
+ }
347
+ if len(props.Metadata.Functions) != 0 {
348
+ noSupport("functional type")
349
+ }
350
+ if len(props.Metadata.Tuples) != 0 {
351
+ noSupport("tuple type")
352
+ }
353
+ if len(props.Metadata.Sets) != 0 {
354
+ noSupport("Set type")
355
+ }
356
+ for _, native := range props.Metadata.Natives {
357
+ if native.Name == "Uint8Array" {
358
+ continue
359
+ }
360
+ if instead, ok := protobufFactory_BANNED_NATIVE_TYPES[native.Name]; ok {
361
+ noSupport(native.Name + " type. Use " + instead + " type instead.")
362
+ } else {
363
+ noSupport(native.Name + " type")
364
+ }
365
+ }
366
+ if len(props.Metadata.Atomics) != 0 {
367
+ numbers := protobufFactory_getNumbers(props.Metadata)
368
+ bigints := protobufFactory_getBigints(props.Metadata)
369
+ for _, typ := range []string{"int64", "uint64"} {
370
+ if _, ok := numbers[typ]; ok {
371
+ if _, found := bigints[typ]; found {
372
+ insert("tags.Type<\"" + typ + "\"> cannot be used in both number and bigint types. Recommend to remove from number type")
373
+ }
374
+ }
375
+ }
376
+ }
377
+ protobufFactory_validateShape(props.Metadata, noSupport)
378
+ return errors
379
+ }
380
+ }
381
+
382
+ func protobufFactory_validateShape(metadata *schemametadata.MetadataSchema, noSupport func(string)) {
383
+ if len(metadata.Arrays) != 0 {
384
+ for _, array := range metadata.Arrays {
385
+ if len(array.Type.Value.Arrays) != 0 {
386
+ noSupport("over two dimensional array type")
387
+ break
388
+ }
389
+ }
390
+ for _, array := range metadata.Arrays {
391
+ if array.Type.Value.IsRequired() == false || array.Type.Value.Nullable {
392
+ noSupport("optional type in array")
393
+ break
394
+ }
395
+ }
396
+ for _, array := range metadata.Arrays {
397
+ if array.Type.Value.Size() > 1 && len(array.Type.Value.Constants) != 1 {
398
+ noSupport("union type in array")
399
+ break
400
+ }
401
+ }
402
+ for _, array := range metadata.Arrays {
403
+ if len(array.Type.Value.Maps) != 0 {
404
+ noSupport("dynamic object in array")
405
+ break
406
+ }
407
+ for _, obj := range array.Type.Value.Objects {
408
+ if protobufFactory_isStaticObject(obj.Type) == false {
409
+ noSupport("dynamic object in array")
410
+ break
411
+ }
412
+ }
413
+ }
414
+ if metadata.Size() > 1 {
415
+ noSupport("union type with array type")
416
+ }
417
+ }
418
+ if len(metadata.Objects) != 0 {
419
+ for _, obj := range metadata.Objects {
420
+ if len(obj.Type.Properties) == 0 {
421
+ noSupport("empty object type")
422
+ break
423
+ }
424
+ }
425
+ for _, obj := range metadata.Objects {
426
+ dynamic := 0
427
+ static := 0
428
+ for _, property := range obj.Type.Properties {
429
+ if property.Key.IsSoleLiteral() {
430
+ static++
431
+ } else {
432
+ dynamic++
433
+ }
434
+ }
435
+ if dynamic > 1 {
436
+ noSupport("object type with multiple dynamic key typed properties. Keep only one.")
437
+ }
438
+ if static != 0 && dynamic != 0 {
439
+ noSupport("object type with mixed static and dynamic key typed properties. Keep statics or dynamic only.")
440
+ }
441
+ }
442
+ if protobufFactory_isDynamicObject(metadata.Objects[0].Type) {
443
+ for _, property := range metadata.Objects[0].Type.Properties {
444
+ if len(property.Value.Arrays) != 0 {
445
+ noSupport("dynamic object with array value type")
446
+ break
447
+ }
448
+ if protobufFactory_isUnion(property.Value) {
449
+ noSupport("union type in dynamic property")
450
+ break
451
+ }
452
+ }
453
+ if metadata.Size() > 1 {
454
+ noSupport("union type with dynamic object type")
455
+ }
456
+ }
457
+ }
458
+ if len(metadata.Maps) != 0 {
459
+ for _, entry := range metadata.Maps {
460
+ if protobufFactory_isUnion(entry.Key) {
461
+ noSupport("union key typed map")
462
+ }
463
+ if len(protobufFactory_getAtomics(entry.Key)) != 1 {
464
+ noSupport("non-atomic key typed map")
465
+ }
466
+ if entry.Key.IsRequired() == false || entry.Key.Nullable {
467
+ noSupport("optional key typed map")
468
+ }
469
+ if len(entry.Value.Arrays) != 0 {
470
+ noSupport("map type with array value type")
471
+ }
472
+ if protobufFactory_isUnion(entry.Value) {
473
+ noSupport("union type in map value type")
474
+ }
475
+ }
476
+ if metadata.Size() > 1 {
477
+ noSupport("union type with map type")
478
+ }
479
+ }
480
+ }
481
+
482
+ func protobufFactory_validateObject(object *schemametadata.MetadataObjectType, errors *[]string) {
483
+ for _, property := range object.Properties {
484
+ // Dynamic keys (template/string typed) become protobuf maps and carry no
485
+ // field name; only sole-literal keys reach the emitted message text.
486
+ if name := property.Key.GetSoleLiteral(); name != nil && protobufFactory_isFieldName(*name) == false {
487
+ *errors = append(*errors, fmt.Sprintf("property name %q is not a valid Protocol Buffer field name", *name))
488
+ }
489
+ protobufFactory_validateProperty(property.Value, errors)
490
+ }
491
+ entire := map[int]string{}
492
+ for _, property := range object.Properties {
493
+ local := map[int]bool{}
494
+ tagger := func(matrix [][]schemametadata.IMetadataTypeTag) {
495
+ for _, tags := range matrix {
496
+ if value := protobufFactory_getSequence(tags); value != nil {
497
+ local[*value] = true
498
+ }
499
+ }
500
+ }
501
+ for _, c := range property.Value.Constants {
502
+ for _, v := range c.Values {
503
+ tagger(v.Tags)
504
+ }
505
+ }
506
+ for _, a := range property.Value.Atomics {
507
+ tagger(a.Tags)
508
+ }
509
+ for _, t := range property.Value.Templates {
510
+ tagger(t.Tags)
511
+ }
512
+ for _, o := range property.Value.Objects {
513
+ tagger(o.Tags)
514
+ }
515
+ for _, a := range property.Value.Arrays {
516
+ tagger(a.Tags)
517
+ }
518
+ for sequence := range local {
519
+ name := ""
520
+ if property.Key.GetSoleLiteral() != nil {
521
+ name = *property.Key.GetSoleLiteral()
522
+ }
523
+ if prev, ok := entire[sequence]; ok {
524
+ *errors = append(*errors, fmt.Sprintf("The Sequence<%d> tag is duplicated in two properties (%q and %q)", sequence, prev, name))
525
+ } else {
526
+ entire[sequence] = name
527
+ }
528
+ }
529
+ }
530
+ }
531
+
532
+ func protobufFactory_validateProperty(metadata *schemametadata.MetadataSchema, errors *[]string) {
533
+ sequences := map[int]bool{}
534
+ add := func(value int) bool {
535
+ if sequences[value] {
536
+ return false
537
+ }
538
+ sequences[value] = true
539
+ return true
540
+ }
541
+ protobufFactory_validateBooleanSequence(metadata, errors, add)
542
+ protobufFactory_validateNumericSequences(metadata, errors, add, "bigint", "int64", protobufFactory_BIGINT_TYPES)
543
+ protobufFactory_validateNumericSequences(metadata, errors, add, "number", "double", protobufFactory_NUMBER_TYPES)
544
+ protobufFactory_validateStringSequence(metadata, errors, add)
545
+ for _, array := range metadata.Arrays {
546
+ protobufFactory_validateInstanceSequence("array", array.Tags, errors, add)
547
+ }
548
+ for _, object := range metadata.Objects {
549
+ protobufFactory_validateInstanceSequence("object", object.Tags, errors, add)
550
+ }
551
+ for _, entry := range metadata.Maps {
552
+ protobufFactory_validateInstanceSequence("map", entry.Tags, errors, add)
553
+ }
554
+ for _, native := range metadata.Natives {
555
+ if native.Name == "Uint8Array" {
556
+ protobufFactory_validateInstanceSequence("Uint8Array", native.Tags, errors, add)
557
+ }
558
+ }
559
+ }
560
+
561
+ func protobufFactory_validateBooleanSequence(metadata *schemametadata.MetadataSchema, errors *[]string, add func(int) bool) {
562
+ unique, expected, actual := map[int]bool{}, 0, 0
563
+ emplace := func(matrix [][]schemametadata.IMetadataTypeTag) {
564
+ for _, tags := range matrix {
565
+ for _, tag := range tags {
566
+ if sequence := protobufFactory_getSequence([]schemametadata.IMetadataTypeTag{tag}); sequence != nil {
567
+ unique[*sequence] = true
568
+ actual++
569
+ }
570
+ expected++
571
+ }
572
+ }
573
+ }
574
+ for _, atomic := range metadata.Atomics {
575
+ if atomic.Type == "boolean" {
576
+ emplace(atomic.Tags)
577
+ }
578
+ }
579
+ for _, constant := range metadata.Constants {
580
+ if constant.Type == "boolean" {
581
+ for _, value := range constant.Values {
582
+ emplace(value.Tags)
583
+ }
584
+ }
585
+ }
586
+ protobufFactory_validateUniqueSequence("boolean type", unique, expected, actual, errors, add)
587
+ }
588
+
589
+ func protobufFactory_validateNumericSequences(metadata *schemametadata.MetadataSchema, errors *[]string, add func(int) bool, typ string, def string, categories map[string]bool) {
590
+ foundCategories := map[string]bool{}
591
+ getType := func(tags []schemametadata.IMetadataTypeTag) string {
592
+ for _, tag := range tags {
593
+ if tag.Kind != "type" {
594
+ continue
595
+ }
596
+ value := protobufFactory_normalizeNumberType(fmt.Sprint(tag.Value))
597
+ if value != "" && categories[value] {
598
+ return value
599
+ }
600
+ }
601
+ return def
602
+ }
603
+ for _, atomic := range metadata.Atomics {
604
+ if atomic.Type == typ {
605
+ for _, tags := range atomic.Tags {
606
+ foundCategories[getType(tags)] = true
607
+ }
608
+ }
609
+ }
610
+ for _, constant := range metadata.Constants {
611
+ if constant.Type == typ {
612
+ for _, value := range constant.Values {
613
+ for _, tags := range value.Tags {
614
+ foundCategories[getType(tags)] = true
615
+ }
616
+ }
617
+ }
618
+ }
619
+ for category := range foundCategories {
620
+ unique, expected, actual := map[int]bool{}, 0, 0
621
+ emplace := func(tags []schemametadata.IMetadataTypeTag) {
622
+ if sequence := protobufFactory_getSequence(tags); sequence != nil {
623
+ unique[*sequence] = true
624
+ actual++
625
+ }
626
+ expected++
627
+ }
628
+ for _, atomic := range metadata.Atomics {
629
+ if atomic.Type == typ {
630
+ for _, tags := range atomic.Tags {
631
+ if getType(tags) == category {
632
+ emplace(tags)
633
+ }
634
+ }
635
+ }
636
+ }
637
+ for _, constant := range metadata.Constants {
638
+ if constant.Type == typ {
639
+ for _, value := range constant.Values {
640
+ for _, tags := range value.Tags {
641
+ if getType(tags) == category {
642
+ emplace(tags)
643
+ }
644
+ }
645
+ }
646
+ }
647
+ }
648
+ protobufFactory_validateUniqueSequence(typ+" type", unique, expected, actual, errors, add)
649
+ }
650
+ }
651
+
652
+ func protobufFactory_validateStringSequence(metadata *schemametadata.MetadataSchema, errors *[]string, add func(int) bool) {
653
+ unique, expected, actual := map[int]bool{}, 0, 0
654
+ emplace := func(matrix [][]schemametadata.IMetadataTypeTag) {
655
+ for _, tags := range matrix {
656
+ for _, tag := range tags {
657
+ if sequence := protobufFactory_getSequence([]schemametadata.IMetadataTypeTag{tag}); sequence != nil {
658
+ unique[*sequence] = true
659
+ actual++
660
+ }
661
+ expected++
662
+ }
663
+ }
664
+ }
665
+ for _, atomic := range metadata.Atomics {
666
+ if atomic.Type == "string" {
667
+ emplace(atomic.Tags)
668
+ }
669
+ }
670
+ for _, constant := range metadata.Constants {
671
+ if constant.Type == "string" {
672
+ for _, value := range constant.Values {
673
+ emplace(value.Tags)
674
+ }
675
+ }
676
+ }
677
+ for _, template := range metadata.Templates {
678
+ emplace(template.Tags)
679
+ }
680
+ protobufFactory_validateUniqueSequence("string type", unique, expected, actual, errors, add)
681
+ }
682
+
683
+ func protobufFactory_validateInstanceSequence(typ string, tags [][]schemametadata.IMetadataTypeTag, errors *[]string, add func(int) bool) {
684
+ unique := map[int]bool{}
685
+ count := 0
686
+ for _, row := range tags {
687
+ if value := protobufFactory_getSequence(row); value != nil {
688
+ unique[*value] = true
689
+ count++
690
+ }
691
+ }
692
+ if len(unique) != 0 && count != len(tags) {
693
+ *errors = append(*errors, "The sequence tag must be declared in every union type members")
694
+ } else if len(unique) > 1 {
695
+ label := "object"
696
+ if typ == "array" {
697
+ label = "an array"
698
+ }
699
+ *errors = append(*errors, "The sequence tag value must be the same in "+label+" type.")
700
+ } else if len(unique) == 1 {
701
+ for value := range unique {
702
+ if add(value) == false {
703
+ *errors = append(*errors, fmt.Sprintf("The sequence tag value %d in %s type is duplicated with other types", value, typ))
704
+ }
705
+ }
706
+ }
707
+ }
708
+
709
+ func protobufFactory_validateUniqueSequence(label string, unique map[int]bool, expected int, actual int, errors *[]string, add func(int) bool) {
710
+ if len(unique) != 0 && actual != expected {
711
+ *errors = append(*errors, "The sequence tag must be declared in every union type members")
712
+ } else if len(unique) > 1 {
713
+ *errors = append(*errors, "The sequence tag value must be the same in "+label+" (including literal types)")
714
+ } else if len(unique) == 1 {
715
+ for value := range unique {
716
+ if add(value) == false {
717
+ *errors = append(*errors, fmt.Sprintf("The sequence tag value %d in %s is duplicated with other types", value, label))
718
+ }
719
+ }
720
+ }
721
+ }
722
+
723
+ func protobufFactory_propertyIndex(prop nativeprotobuf.IProtobufPropertyType) *int {
724
+ switch v := prop.(type) {
725
+ case *nativeprotobuf.IProtobufPropertyType_IByte:
726
+ return v.Index
727
+ case *nativeprotobuf.IProtobufPropertyType_IBoolean:
728
+ return v.Index
729
+ case *nativeprotobuf.IProtobufPropertyType_IBigint:
730
+ return v.Index
731
+ case *nativeprotobuf.IProtobufPropertyType_INumber:
732
+ return v.Index
733
+ case *nativeprotobuf.IProtobufPropertyType_IString:
734
+ return v.Index
735
+ case *nativeprotobuf.IProtobufPropertyType_IArray:
736
+ return v.Index
737
+ case *nativeprotobuf.IProtobufPropertyType_IObject:
738
+ return v.Index
739
+ case *nativeprotobuf.IProtobufPropertyType_IMap:
740
+ return v.Index
741
+ }
742
+ return nil
743
+ }
744
+
745
+ func protobufFactory_setPropertyIndex(prop nativeprotobuf.IProtobufPropertyType, index int) {
746
+ switch v := prop.(type) {
747
+ case *nativeprotobuf.IProtobufPropertyType_IByte:
748
+ v.Index = &index
749
+ case *nativeprotobuf.IProtobufPropertyType_IBoolean:
750
+ v.Index = &index
751
+ case *nativeprotobuf.IProtobufPropertyType_IBigint:
752
+ v.Index = &index
753
+ case *nativeprotobuf.IProtobufPropertyType_INumber:
754
+ v.Index = &index
755
+ case *nativeprotobuf.IProtobufPropertyType_IString:
756
+ v.Index = &index
757
+ case *nativeprotobuf.IProtobufPropertyType_IArray:
758
+ v.Index = &index
759
+ case *nativeprotobuf.IProtobufPropertyType_IObject:
760
+ v.Index = &index
761
+ case *nativeprotobuf.IProtobufPropertyType_IMap:
762
+ v.Index = &index
763
+ }
764
+ }
765
+
766
+ // protobufFactory_isFieldName reports whether the property name is a valid
767
+ // proto3 field identifier: letters, digits, and underscores, not starting
768
+ // with a digit. Anything else cannot appear in the emitted message text.
769
+ func protobufFactory_isFieldName(name string) bool {
770
+ if len(name) == 0 {
771
+ return false
772
+ }
773
+ for i := 0; i < len(name); i++ {
774
+ ch := name[i]
775
+ switch {
776
+ case ch == '_':
777
+ case 'a' <= ch && ch <= 'z':
778
+ case 'A' <= ch && ch <= 'Z':
779
+ case '0' <= ch && ch <= '9':
780
+ if i == 0 {
781
+ return false
782
+ }
783
+ default:
784
+ return false
785
+ }
786
+ }
787
+ return true
788
+ }
789
+
790
+ func protobufFactory_firstTagRow(tags [][]schemametadata.IMetadataTypeTag) []schemametadata.IMetadataTypeTag {
791
+ if len(tags) == 0 {
792
+ return []schemametadata.IMetadataTypeTag{}
793
+ }
794
+ return tags[0]
795
+ }
796
+
797
+ func protobufFactory_getSequence(tags []schemametadata.IMetadataTypeTag) *int {
798
+ for _, tag := range tags {
799
+ if sequence := schemametadata.IMetadataTypeTag_getSequence(tag); sequence != nil {
800
+ return sequence
801
+ }
802
+ }
803
+ return nil
804
+ }
805
+
806
+ func protobufFactory_isStaticObject(obj *schemametadata.MetadataObjectType) bool {
807
+ if obj == nil || len(obj.Properties) == 0 {
808
+ return false
809
+ }
810
+ for _, property := range obj.Properties {
811
+ if property.Key.IsSoleLiteral() == false {
812
+ return false
813
+ }
814
+ }
815
+ return true
816
+ }
817
+
818
+ func protobufFactory_isUnion(meta *schemametadata.MetadataSchema) bool {
819
+ return protobufFactory_size(meta) > 1
820
+ }
821
+
822
+ func protobufFactory_size(meta *schemametadata.MetadataSchema) int {
823
+ if meta == nil {
824
+ return 0
825
+ }
826
+ return len(protobufFactory_getAtomics(meta)) +
827
+ len(meta.Arrays) +
828
+ len(meta.Tuples) +
829
+ len(meta.Natives) +
830
+ len(meta.Objects) +
831
+ len(meta.Maps)
832
+ }
833
+
834
+ func protobufFactory_getAtomics(meta *schemametadata.MetadataSchema) map[string]*int {
835
+ output := map[string]*int{}
836
+ for _, constant := range meta.Constants {
837
+ if constant.Type == "boolean" {
838
+ output["bool"] = protobufFactory_getSequence(protobufFactory_firstTags(constant.Values))
839
+ } else if constant.Type == "bigint" {
840
+ init := protobufFactory_getBigintType(protobufFactory_constantValues(constant.Values))
841
+ protobufFactory_decodeBigint(output, constant.Values, init)
842
+ } else if constant.Type == "number" {
843
+ init := protobufFactory_getNumberType(protobufFactory_constantValues(constant.Values))
844
+ protobufFactory_decodeNumber(output, constant.Values, init)
845
+ } else if constant.Type == "string" {
846
+ output["string"] = protobufFactory_getSequence(protobufFactory_firstTags(constant.Values))
847
+ }
848
+ }
849
+ if len(meta.Templates) != 0 {
850
+ output["string"] = protobufFactory_getSequence(protobufFactory_firstTagRow(meta.Templates[0].Tags))
851
+ }
852
+ for _, atomic := range meta.Atomics {
853
+ if atomic.Type == "boolean" {
854
+ output["bool"] = protobufFactory_getSequence(protobufFactory_firstTagRow(atomic.Tags))
855
+ } else if atomic.Type == "bigint" {
856
+ protobufFactory_decodeBigintTags(output, atomic.Tags, "int64")
857
+ } else if atomic.Type == "number" {
858
+ protobufFactory_decodeNumberTags(output, atomic.Tags, "double")
859
+ } else if atomic.Type == "string" {
860
+ output["string"] = protobufFactory_getSequence(protobufFactory_firstTagRow(atomic.Tags))
861
+ }
862
+ }
863
+ return output
864
+ }
865
+
866
+ func protobufFactory_getNumbers(meta *schemametadata.MetadataSchema) map[string]*int {
867
+ output := map[string]*int{}
868
+ for _, constant := range meta.Constants {
869
+ if constant.Type == "number" {
870
+ init := protobufFactory_getNumberType(protobufFactory_constantValues(constant.Values))
871
+ protobufFactory_decodeNumber(output, constant.Values, init)
872
+ }
873
+ }
874
+ for _, atomic := range meta.Atomics {
875
+ if atomic.Type == "number" {
876
+ protobufFactory_decodeNumberTags(output, atomic.Tags, "double")
877
+ }
878
+ }
879
+ return output
880
+ }
881
+
882
+ func protobufFactory_getBigints(meta *schemametadata.MetadataSchema) map[string]*int {
883
+ output := map[string]*int{}
884
+ for _, constant := range meta.Constants {
885
+ if constant.Type == "bigint" {
886
+ init := protobufFactory_getBigintType(protobufFactory_constantValues(constant.Values))
887
+ protobufFactory_decodeBigint(output, constant.Values, init)
888
+ }
889
+ }
890
+ for _, atomic := range meta.Atomics {
891
+ if atomic.Type == "bigint" {
892
+ protobufFactory_decodeBigintTags(output, atomic.Tags, "int64")
893
+ }
894
+ }
895
+ return output
896
+ }
897
+
898
+ func protobufFactory_decodeBigint(output map[string]*int, values []*schemametadata.MetadataConstantValue, init string) {
899
+ for _, value := range values {
900
+ protobufFactory_decodeBigintTags(output, value.Tags, init)
901
+ }
902
+ }
903
+
904
+ func protobufFactory_decodeNumber(output map[string]*int, values []*schemametadata.MetadataConstantValue, init string) {
905
+ for _, value := range values {
906
+ protobufFactory_decodeNumberTags(output, value.Tags, init)
907
+ }
908
+ }
909
+
910
+ func protobufFactory_decodeBigintTags(output map[string]*int, tags [][]schemametadata.IMetadataTypeTag, init string) {
911
+ if len(tags) == 0 {
912
+ output[init] = nil
913
+ return
914
+ }
915
+ for _, row := range tags {
916
+ value := init
917
+ for _, tag := range row {
918
+ if tag.Kind == "type" && (tag.Value == "int64" || tag.Value == "uint64") {
919
+ value = fmt.Sprint(tag.Value)
920
+ break
921
+ }
922
+ }
923
+ output[value] = protobufFactory_getSequence(row)
924
+ }
925
+ }
926
+
927
+ func protobufFactory_decodeNumberTags(output map[string]*int, tags [][]schemametadata.IMetadataTypeTag, init string) {
928
+ if len(tags) == 0 {
929
+ output[init] = nil
930
+ return
931
+ }
932
+ for _, row := range tags {
933
+ value := init
934
+ for _, tag := range row {
935
+ if tag.Kind != "type" {
936
+ continue
937
+ }
938
+ str := protobufFactory_normalizeNumberType(fmt.Sprint(tag.Value))
939
+ if str != "" {
940
+ value = str
941
+ break
942
+ }
943
+ }
944
+ output[value] = protobufFactory_getSequence(row)
945
+ }
946
+ }
947
+
948
+ func protobufFactory_compare(x string, y string) int {
949
+ return protobufFactory_ATOMIC_ORDER[x] - protobufFactory_ATOMIC_ORDER[y]
950
+ }
951
+
952
+ func protobufFactory_firstTags(values []*schemametadata.MetadataConstantValue) []schemametadata.IMetadataTypeTag {
953
+ if len(values) == 0 {
954
+ return []schemametadata.IMetadataTypeTag{}
955
+ }
956
+ return protobufFactory_firstTagRow(values[0].Tags)
957
+ }
958
+
959
+ func protobufFactory_constantValues(values []*schemametadata.MetadataConstantValue) []any {
960
+ output := make([]any, 0, len(values))
961
+ for _, value := range values {
962
+ output = append(output, value.Value)
963
+ }
964
+ return output
965
+ }
966
+
967
+ func protobufFactory_getBigintType(values []any) string {
968
+ for _, value := range values {
969
+ if strings.HasPrefix(fmt.Sprint(value), "-") {
970
+ return "int64"
971
+ }
972
+ }
973
+ return "uint64"
974
+ }
975
+
976
+ func protobufFactory_getNumberType(values []any) string {
977
+ integers := true
978
+ int32s := true
979
+ for _, value := range values {
980
+ number := protobufFactory_toFloat(value)
981
+ if math.Floor(number) != number {
982
+ integers = false
983
+ break
984
+ }
985
+ if -2147483648 <= number && number <= 2147483647 {
986
+ continue
987
+ }
988
+ int32s = false
989
+ }
990
+ if integers == false {
991
+ return "double"
992
+ }
993
+ if int32s {
994
+ return "int32"
995
+ }
996
+ return "int64"
997
+ }
998
+
999
+ func protobufFactory_toFloat(value any) float64 {
1000
+ switch v := value.(type) {
1001
+ case float64:
1002
+ return v
1003
+ case float32:
1004
+ return float64(v)
1005
+ case int:
1006
+ return float64(v)
1007
+ case int64:
1008
+ return float64(v)
1009
+ case uint64:
1010
+ return float64(v)
1011
+ default:
1012
+ var out float64
1013
+ fmt.Sscan(fmt.Sprint(value), &out)
1014
+ return out
1015
+ }
1016
+ }
1017
+
1018
+ func protobufFactory_isDynamicObject(obj *schemametadata.MetadataObjectType) bool {
1019
+ return obj != nil && len(obj.Properties) != 0 && obj.Properties[0].Key.IsSoleLiteral() == false
1020
+ }
1021
+
1022
+ func protobufFactory_errors(errors []MetadataFactory_IError) []nativecontext.TransformerError_MetadataFactory_IError {
1023
+ output := make([]nativecontext.TransformerError_MetadataFactory_IError, 0, len(errors))
1024
+ for _, err := range errors {
1025
+ output = append(output, nativecontext.TransformerError_MetadataFactory_IError{
1026
+ Name: err.Name,
1027
+ Explore: nativecontext.TransformerError_MetadataFactory_IExplore{
1028
+ Object: err.Explore.Object,
1029
+ Property: err.Explore.Property,
1030
+ Parameter: err.Explore.Parameter,
1031
+ Output: err.Explore.Output,
1032
+ },
1033
+ Messages: append([]string{}, err.Messages...),
1034
+ })
1035
+ }
1036
+ return output
1037
+ }
1038
+
1039
+ var protobufFactory_BANNED_NATIVE_TYPES = map[string]string{
1040
+ "Date": "string",
1041
+ "Boolean": "boolean",
1042
+ "BigInt": "bigint",
1043
+ "Number": "number",
1044
+ "String": "string",
1045
+ "Buffer": "Uint8Array",
1046
+ "Uint8ClampedArray": "Uint8Array",
1047
+ "Uint16Array": "Uint8Array",
1048
+ "Uint32Array": "Uint8Array",
1049
+ "BigUint64Array": "Uint8Array",
1050
+ "Int8Array": "Uint8Array",
1051
+ "Int16Array": "Uint8Array",
1052
+ "Int32Array": "Uint8Array",
1053
+ "BigInt64Array": "Uint8Array",
1054
+ "Float32Array": "Uint8Array",
1055
+ "Float64Array": "Uint8Array",
1056
+ "DataView": "Uint8Array",
1057
+ "ArrayBuffer": "Uint8Array",
1058
+ "SharedArrayBuffer": "Uint8Array",
1059
+ "WeakSet": "Array",
1060
+ "WeakMap": "Map",
1061
+ }
1062
+
1063
+ var protobufFactory_NUMBER_TYPES = map[string]bool{
1064
+ "int32": true, "uint32": true, "int64": true, "uint64": true, "float": true, "double": true,
1065
+ }
1066
+ var protobufFactory_BIGINT_TYPES = map[string]bool{"int64": true, "uint64": true}
1067
+ var protobufFactory_ATOMIC_ORDER = map[string]int{
1068
+ "bool": 0,
1069
+ "int32": 1,
1070
+ "uint32": 2,
1071
+ "int64": 3,
1072
+ "uint64": 4,
1073
+ "float": 5,
1074
+ "double": 6,
1075
+ "string": 7,
1076
+ }
1077
+
1078
+ func protobufFactory_normalizeNumberType(value string) string {
1079
+ switch value {
1080
+ case "int8", "int16":
1081
+ return "int32"
1082
+ case "uint8", "uint16":
1083
+ return "uint32"
1084
+ default:
1085
+ if protobufFactory_NUMBER_TYPES[value] {
1086
+ return value
1087
+ }
1088
+ return ""
1089
+ }
1090
+ }