typia 7.0.0-dev.20240930 → 7.0.0-dev.20241002

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 (373) hide show
  1. package/lib/executable/TypiaGenerateWizard.js +1 -1
  2. package/lib/executable/TypiaGenerateWizard.js.map +1 -1
  3. package/lib/executable/TypiaSetupWizard.js +1 -1
  4. package/lib/executable/TypiaSetupWizard.js.map +1 -1
  5. package/lib/executable/setup/ArgumentParser.d.ts +1 -1
  6. package/lib/executable/setup/ArgumentParser.js +31 -33
  7. package/lib/executable/setup/ArgumentParser.js.map +1 -1
  8. package/lib/executable/setup/FileRetriever.d.ts +5 -2
  9. package/lib/executable/setup/FileRetriever.js +12 -21
  10. package/lib/executable/setup/FileRetriever.js.map +1 -1
  11. package/lib/executable/setup/PackageManager.js +4 -1
  12. package/lib/executable/setup/PackageManager.js.map +1 -1
  13. package/lib/factories/ExpressionFactory.d.ts +14 -7
  14. package/lib/factories/ExpressionFactory.js +26 -34
  15. package/lib/factories/ExpressionFactory.js.map +1 -1
  16. package/lib/factories/IdentifierFactory.d.ts +2 -2
  17. package/lib/factories/IdentifierFactory.js +10 -6
  18. package/lib/factories/IdentifierFactory.js.map +1 -1
  19. package/lib/factories/MetadataCollection.js +4 -1
  20. package/lib/factories/MetadataCollection.js.map +1 -1
  21. package/lib/factories/MetadataCommentTagFactory.js +133 -128
  22. package/lib/factories/MetadataCommentTagFactory.js.map +1 -1
  23. package/lib/factories/MetadataFactory.js +1 -1
  24. package/lib/factories/MetadataFactory.js.map +1 -1
  25. package/lib/factories/MetadataTypeTagFactory.d.ts +14 -2
  26. package/lib/factories/MetadataTypeTagFactory.js +312 -267
  27. package/lib/factories/MetadataTypeTagFactory.js.map +1 -1
  28. package/lib/factories/MetadataTypeTagSchemaFactory.d.ts +4 -1
  29. package/lib/factories/MetadataTypeTagSchemaFactory.js +70 -61
  30. package/lib/factories/MetadataTypeTagSchemaFactory.js.map +1 -1
  31. package/lib/factories/NumericRangeFactory.d.ts +2 -2
  32. package/lib/factories/NumericRangeFactory.js +2 -10
  33. package/lib/factories/NumericRangeFactory.js.map +1 -1
  34. package/lib/factories/StatementFactory.d.ts +14 -3
  35. package/lib/factories/StatementFactory.js +16 -8
  36. package/lib/factories/StatementFactory.js.map +1 -1
  37. package/lib/factories/TemplateFactory.js +24 -18
  38. package/lib/factories/TemplateFactory.js.map +1 -1
  39. package/lib/factories/TypeFactory.d.ts +10 -2
  40. package/lib/factories/TypeFactory.js +65 -53
  41. package/lib/factories/TypeFactory.js.map +1 -1
  42. package/lib/factories/internal/metadata/iterate_metadata.js +4 -1
  43. package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
  44. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js +16 -11
  45. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -1
  46. package/lib/factories/internal/metadata/iterate_metadata_escape.js +5 -1
  47. package/lib/factories/internal/metadata/iterate_metadata_escape.js.map +1 -1
  48. package/lib/factories/internal/metadata/iterate_metadata_function.js.map +1 -1
  49. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +6 -1
  50. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  51. package/lib/factories/internal/metadata/iterate_metadata_map.js +5 -1
  52. package/lib/factories/internal/metadata/iterate_metadata_map.js.map +1 -1
  53. package/lib/factories/internal/metadata/iterate_metadata_native.js +11 -3
  54. package/lib/factories/internal/metadata/iterate_metadata_native.js.map +1 -1
  55. package/lib/factories/internal/metadata/iterate_metadata_set.js +5 -1
  56. package/lib/factories/internal/metadata/iterate_metadata_set.js.map +1 -1
  57. package/lib/index.mjs +25 -25
  58. package/lib/index.mjs.map +1 -1
  59. package/lib/programmers/AssertProgrammer.js +36 -22
  60. package/lib/programmers/AssertProgrammer.js.map +1 -1
  61. package/lib/programmers/CheckerProgrammer.js +316 -251
  62. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  63. package/lib/programmers/FeatureProgrammer.js +34 -20
  64. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  65. package/lib/programmers/IsProgrammer.js +41 -22
  66. package/lib/programmers/IsProgrammer.js.map +1 -1
  67. package/lib/programmers/RandomProgrammer.js +171 -135
  68. package/lib/programmers/RandomProgrammer.js.map +1 -1
  69. package/lib/programmers/TypiaProgrammer.d.ts +2 -2
  70. package/lib/programmers/TypiaProgrammer.js +79 -75
  71. package/lib/programmers/TypiaProgrammer.js.map +1 -1
  72. package/lib/programmers/ValidateProgrammer.js +55 -24
  73. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  74. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js +30 -15
  75. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js.map +1 -1
  76. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js +16 -13
  77. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js.map +1 -1
  78. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js +11 -8
  79. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js.map +1 -1
  80. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js +8 -2
  81. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js.map +1 -1
  82. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js +11 -5
  83. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js.map +1 -1
  84. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js +8 -2
  85. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js.map +1 -1
  86. package/lib/programmers/helpers/CloneJoiner.js +13 -4
  87. package/lib/programmers/helpers/CloneJoiner.js.map +1 -1
  88. package/lib/programmers/helpers/FunctionImporter.js +10 -7
  89. package/lib/programmers/helpers/FunctionImporter.js.map +1 -1
  90. package/lib/programmers/helpers/NotationJoiner.d.ts +2 -1
  91. package/lib/programmers/helpers/NotationJoiner.js +40 -33
  92. package/lib/programmers/helpers/NotationJoiner.js.map +1 -1
  93. package/lib/programmers/helpers/PruneJoiner.js +6 -3
  94. package/lib/programmers/helpers/PruneJoiner.js.map +1 -1
  95. package/lib/programmers/helpers/RandomJoiner.d.ts +1 -1
  96. package/lib/programmers/helpers/RandomJoiner.js +4 -1
  97. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  98. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  99. package/lib/programmers/helpers/StringifyJoinder.js +5 -2
  100. package/lib/programmers/helpers/StringifyJoinder.js.map +1 -1
  101. package/lib/programmers/helpers/StringifyPredicator.d.ts +1 -1
  102. package/lib/programmers/helpers/StringifyPredicator.js +4 -3
  103. package/lib/programmers/helpers/StringifyPredicator.js.map +1 -1
  104. package/lib/programmers/helpers/UnionExplorer.d.ts +52 -12
  105. package/lib/programmers/helpers/UnionExplorer.js +183 -144
  106. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  107. package/lib/programmers/helpers/UnionPredicator.d.ts +1 -1
  108. package/lib/programmers/helpers/UnionPredicator.js +7 -7
  109. package/lib/programmers/http/HttpAssertFormDataProgrammer.js +8 -2
  110. package/lib/programmers/http/HttpAssertFormDataProgrammer.js.map +1 -1
  111. package/lib/programmers/http/HttpAssertHeadersProgrammer.js +8 -2
  112. package/lib/programmers/http/HttpAssertHeadersProgrammer.js.map +1 -1
  113. package/lib/programmers/http/HttpAssertQueryProgrammer.js +8 -2
  114. package/lib/programmers/http/HttpAssertQueryProgrammer.js.map +1 -1
  115. package/lib/programmers/http/HttpFormDataProgrammer.js +84 -71
  116. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
  117. package/lib/programmers/http/HttpHeadersProgrammer.js +76 -69
  118. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  119. package/lib/programmers/http/HttpIsFormDataProgrammer.js +12 -3
  120. package/lib/programmers/http/HttpIsFormDataProgrammer.js.map +1 -1
  121. package/lib/programmers/http/HttpIsHeadersProgrammer.js +12 -3
  122. package/lib/programmers/http/HttpIsHeadersProgrammer.js.map +1 -1
  123. package/lib/programmers/http/HttpIsQueryProgrammer.js +12 -3
  124. package/lib/programmers/http/HttpIsQueryProgrammer.js.map +1 -1
  125. package/lib/programmers/http/HttpParameterProgrammer.js +17 -10
  126. package/lib/programmers/http/HttpParameterProgrammer.js.map +1 -1
  127. package/lib/programmers/http/HttpQueryProgrammer.js +76 -63
  128. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  129. package/lib/programmers/http/HttpValidateFormDataProgrammer.js +8 -2
  130. package/lib/programmers/http/HttpValidateFormDataProgrammer.js.map +1 -1
  131. package/lib/programmers/http/HttpValidateHeadersProgrammer.js +8 -2
  132. package/lib/programmers/http/HttpValidateHeadersProgrammer.js.map +1 -1
  133. package/lib/programmers/http/HttpValidateQueryProgrammer.js +8 -2
  134. package/lib/programmers/http/HttpValidateQueryProgrammer.js.map +1 -1
  135. package/lib/programmers/internal/application_escaped.js +4 -4
  136. package/lib/programmers/internal/application_escaped.js.map +1 -1
  137. package/lib/programmers/internal/application_templates.js +8 -2
  138. package/lib/programmers/internal/application_templates.js.map +1 -1
  139. package/lib/programmers/internal/application_union_discriminator.d.ts +1 -1
  140. package/lib/programmers/internal/application_union_discriminator.js +6 -6
  141. package/lib/programmers/internal/application_union_discriminator.js.map +1 -1
  142. package/lib/programmers/internal/application_v30_object.js +6 -3
  143. package/lib/programmers/internal/application_v30_object.js.map +1 -1
  144. package/lib/programmers/internal/application_v31_object.js +4 -1
  145. package/lib/programmers/internal/application_v31_object.js.map +1 -1
  146. package/lib/programmers/internal/check_array_length.js +21 -26
  147. package/lib/programmers/internal/check_array_length.js.map +1 -1
  148. package/lib/programmers/internal/check_bigint.js +18 -26
  149. package/lib/programmers/internal/check_bigint.js.map +1 -1
  150. package/lib/programmers/internal/check_dynamic_key.d.ts +1 -5
  151. package/lib/programmers/internal/check_dynamic_key.js +109 -91
  152. package/lib/programmers/internal/check_dynamic_key.js.map +1 -1
  153. package/lib/programmers/internal/check_dynamic_properties.js +92 -91
  154. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  155. package/lib/programmers/internal/check_everything.js +1 -1
  156. package/lib/programmers/internal/check_everything.js.map +1 -1
  157. package/lib/programmers/internal/check_native.js +8 -5
  158. package/lib/programmers/internal/check_native.js.map +1 -1
  159. package/lib/programmers/internal/check_number.js +59 -65
  160. package/lib/programmers/internal/check_number.js.map +1 -1
  161. package/lib/programmers/internal/check_object.js +31 -22
  162. package/lib/programmers/internal/check_object.js.map +1 -1
  163. package/lib/programmers/internal/check_string.js +18 -26
  164. package/lib/programmers/internal/check_string.js.map +1 -1
  165. package/lib/programmers/internal/check_template.js +20 -21
  166. package/lib/programmers/internal/check_template.js.map +1 -1
  167. package/lib/programmers/internal/check_union_array_like.js +86 -53
  168. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  169. package/lib/programmers/internal/decode_union_object.js +59 -49
  170. package/lib/programmers/internal/decode_union_object.js.map +1 -1
  171. package/lib/programmers/internal/feature_object_entries.js +31 -37
  172. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  173. package/lib/programmers/internal/llm_schema_escaped.js +29 -11
  174. package/lib/programmers/internal/llm_schema_escaped.js.map +1 -1
  175. package/lib/programmers/internal/llm_schema_object.js +4 -1
  176. package/lib/programmers/internal/llm_schema_object.js.map +1 -1
  177. package/lib/programmers/internal/metadata_to_pattern.js +44 -41
  178. package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
  179. package/lib/programmers/internal/postfix_of_tuple.d.ts +1 -1
  180. package/lib/programmers/internal/postfix_of_tuple.js +3 -0
  181. package/lib/programmers/internal/postfix_of_tuple.js.map +1 -1
  182. package/lib/programmers/internal/prune_object_properties.js +7 -4
  183. package/lib/programmers/internal/prune_object_properties.js.map +1 -1
  184. package/lib/programmers/internal/random_custom.js +8 -14
  185. package/lib/programmers/internal/random_custom.js.map +1 -1
  186. package/lib/programmers/internal/stringify_dynamic_properties.js +8 -5
  187. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  188. package/lib/programmers/internal/stringify_regular_properties.js +4 -4
  189. package/lib/programmers/internal/stringify_regular_properties.js.map +1 -1
  190. package/lib/programmers/internal/template_to_pattern.js +10 -5
  191. package/lib/programmers/internal/template_to_pattern.js.map +1 -1
  192. package/lib/programmers/internal/wrap_metadata_rest_tuple.d.ts +1 -2
  193. package/lib/programmers/internal/wrap_metadata_rest_tuple.js +3 -0
  194. package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -1
  195. package/lib/programmers/json/JsonAssertParseProgrammer.js +8 -2
  196. package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
  197. package/lib/programmers/json/JsonAssertStringifyProgrammer.js +8 -2
  198. package/lib/programmers/json/JsonAssertStringifyProgrammer.js.map +1 -1
  199. package/lib/programmers/json/JsonIsParseProgrammer.js +8 -2
  200. package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
  201. package/lib/programmers/json/JsonIsStringifyProgrammer.js +8 -2
  202. package/lib/programmers/json/JsonIsStringifyProgrammer.js.map +1 -1
  203. package/lib/programmers/json/JsonStringifyProgrammer.js +126 -95
  204. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  205. package/lib/programmers/json/JsonValidateParseProgrammer.js +8 -2
  206. package/lib/programmers/json/JsonValidateParseProgrammer.js.map +1 -1
  207. package/lib/programmers/json/JsonValidateStringifyProgrammer.js +12 -3
  208. package/lib/programmers/json/JsonValidateStringifyProgrammer.js.map +1 -1
  209. package/lib/programmers/misc/MiscAssertCloneProgrammer.js +8 -2
  210. package/lib/programmers/misc/MiscAssertCloneProgrammer.js.map +1 -1
  211. package/lib/programmers/misc/MiscAssertPruneProgrammer.js +12 -3
  212. package/lib/programmers/misc/MiscAssertPruneProgrammer.js.map +1 -1
  213. package/lib/programmers/misc/MiscCloneProgrammer.js +203 -162
  214. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  215. package/lib/programmers/misc/MiscIsCloneProgrammer.js +8 -2
  216. package/lib/programmers/misc/MiscIsCloneProgrammer.js.map +1 -1
  217. package/lib/programmers/misc/MiscIsPruneProgrammer.js +8 -2
  218. package/lib/programmers/misc/MiscIsPruneProgrammer.js.map +1 -1
  219. package/lib/programmers/misc/MiscPruneProgrammer.js +114 -92
  220. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  221. package/lib/programmers/misc/MiscValidateCloneProgrammer.js +12 -3
  222. package/lib/programmers/misc/MiscValidateCloneProgrammer.js.map +1 -1
  223. package/lib/programmers/misc/MiscValidatePruneProgrammer.js +16 -4
  224. package/lib/programmers/misc/MiscValidatePruneProgrammer.js.map +1 -1
  225. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js +8 -2
  226. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js.map +1 -1
  227. package/lib/programmers/notations/NotationGeneralProgrammer.d.ts +4 -1
  228. package/lib/programmers/notations/NotationGeneralProgrammer.js +209 -145
  229. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  230. package/lib/programmers/notations/NotationIsGeneralProgrammer.js +8 -2
  231. package/lib/programmers/notations/NotationIsGeneralProgrammer.js.map +1 -1
  232. package/lib/programmers/notations/NotationValidateGeneralProgrammer.js +12 -3
  233. package/lib/programmers/notations/NotationValidateGeneralProgrammer.js.map +1 -1
  234. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js +8 -2
  235. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js.map +1 -1
  236. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js +8 -2
  237. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js.map +1 -1
  238. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +51 -30
  239. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  240. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +89 -65
  241. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  242. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js +12 -3
  243. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js.map +1 -1
  244. package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.js +8 -2
  245. package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.js.map +1 -1
  246. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js +8 -2
  247. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js.map +1 -1
  248. package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.js +12 -3
  249. package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.js.map +1 -1
  250. package/lib/transformers/features/llm/LlmApplicationTransformer.js +5 -2
  251. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  252. package/lib/utils/NamingConvention/NamingConvention.js +41 -47
  253. package/lib/utils/NamingConvention/NamingConvention.js.map +1 -1
  254. package/package.json +1 -1
  255. package/src/executable/TypiaGenerateWizard.ts +1 -1
  256. package/src/executable/TypiaSetupWizard.ts +1 -1
  257. package/src/executable/setup/ArgumentParser.ts +27 -28
  258. package/src/executable/setup/FileRetriever.ts +14 -17
  259. package/src/executable/setup/PackageManager.ts +4 -3
  260. package/src/factories/ExpressionFactory.ts +98 -84
  261. package/src/factories/IdentifierFactory.ts +26 -7
  262. package/src/factories/MetadataCollection.ts +4 -1
  263. package/src/factories/MetadataCommentTagFactory.ts +97 -88
  264. package/src/factories/MetadataFactory.ts +2 -1
  265. package/src/factories/MetadataTypeTagFactory.ts +334 -285
  266. package/src/factories/MetadataTypeTagSchemaFactory.ts +75 -52
  267. package/src/factories/NumericRangeFactory.ts +8 -8
  268. package/src/factories/StatementFactory.ts +27 -11
  269. package/src/factories/TemplateFactory.ts +29 -21
  270. package/src/factories/TypeFactory.ts +80 -58
  271. package/src/factories/internal/metadata/iterate_metadata.ts +4 -1
  272. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +6 -4
  273. package/src/factories/internal/metadata/iterate_metadata_escape.ts +5 -3
  274. package/src/factories/internal/metadata/iterate_metadata_function.ts +4 -4
  275. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +6 -3
  276. package/src/factories/internal/metadata/iterate_metadata_map.ts +4 -3
  277. package/src/factories/internal/metadata/iterate_metadata_native.ts +12 -9
  278. package/src/factories/internal/metadata/iterate_metadata_set.ts +5 -1
  279. package/src/programmers/AssertProgrammer.ts +46 -32
  280. package/src/programmers/CheckerProgrammer.ts +295 -261
  281. package/src/programmers/FeatureProgrammer.ts +25 -23
  282. package/src/programmers/IsProgrammer.ts +38 -23
  283. package/src/programmers/RandomProgrammer.ts +55 -39
  284. package/src/programmers/TypiaProgrammer.ts +48 -34
  285. package/src/programmers/ValidateProgrammer.ts +67 -37
  286. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +4 -4
  287. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +4 -4
  288. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +4 -4
  289. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +7 -7
  290. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +14 -8
  291. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +7 -7
  292. package/src/programmers/helpers/CloneJoiner.ts +17 -7
  293. package/src/programmers/helpers/FunctionImporter.ts +12 -11
  294. package/src/programmers/helpers/NotationJoiner.ts +91 -82
  295. package/src/programmers/helpers/ProtobufUtil.ts +2 -2
  296. package/src/programmers/helpers/PruneJoiner.ts +7 -3
  297. package/src/programmers/helpers/RandomJoiner.ts +12 -6
  298. package/src/programmers/helpers/RandomRanger.ts +8 -1
  299. package/src/programmers/helpers/StringifyJoinder.ts +5 -2
  300. package/src/programmers/helpers/StringifyPredicator.ts +4 -3
  301. package/src/programmers/helpers/UnionExplorer.ts +287 -205
  302. package/src/programmers/helpers/UnionPredicator.ts +5 -5
  303. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +8 -2
  304. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +8 -2
  305. package/src/programmers/http/HttpAssertQueryProgrammer.ts +8 -2
  306. package/src/programmers/http/HttpFormDataProgrammer.ts +139 -114
  307. package/src/programmers/http/HttpHeadersProgrammer.ts +150 -121
  308. package/src/programmers/http/HttpIsFormDataProgrammer.ts +12 -6
  309. package/src/programmers/http/HttpIsHeadersProgrammer.ts +12 -6
  310. package/src/programmers/http/HttpIsQueryProgrammer.ts +12 -6
  311. package/src/programmers/http/HttpParameterProgrammer.ts +16 -11
  312. package/src/programmers/http/HttpQueryProgrammer.ts +141 -116
  313. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +8 -2
  314. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +8 -2
  315. package/src/programmers/http/HttpValidateQueryProgrammer.ts +8 -2
  316. package/src/programmers/internal/application_escaped.ts +6 -6
  317. package/src/programmers/internal/application_templates.ts +8 -6
  318. package/src/programmers/internal/application_union_discriminator.ts +6 -6
  319. package/src/programmers/internal/application_v30_object.ts +6 -3
  320. package/src/programmers/internal/application_v31_object.ts +4 -1
  321. package/src/programmers/internal/application_v31_tuple.ts +1 -1
  322. package/src/programmers/internal/check_array_length.ts +31 -30
  323. package/src/programmers/internal/check_bigint.ts +31 -31
  324. package/src/programmers/internal/check_dynamic_key.ts +155 -126
  325. package/src/programmers/internal/check_dynamic_properties.ts +155 -154
  326. package/src/programmers/internal/check_everything.ts +1 -1
  327. package/src/programmers/internal/check_native.ts +11 -5
  328. package/src/programmers/internal/check_number.ts +88 -84
  329. package/src/programmers/internal/check_object.ts +45 -31
  330. package/src/programmers/internal/check_string.ts +31 -30
  331. package/src/programmers/internal/check_template.ts +34 -32
  332. package/src/programmers/internal/check_union_array_like.ts +255 -228
  333. package/src/programmers/internal/decode_union_object.ts +92 -75
  334. package/src/programmers/internal/feature_object_entries.ts +43 -46
  335. package/src/programmers/internal/llm_schema_escaped.ts +36 -13
  336. package/src/programmers/internal/llm_schema_object.ts +4 -1
  337. package/src/programmers/internal/metadata_to_pattern.ts +31 -23
  338. package/src/programmers/internal/postfix_of_tuple.ts +3 -0
  339. package/src/programmers/internal/prune_object_properties.ts +7 -4
  340. package/src/programmers/internal/random_custom.ts +25 -23
  341. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -157
  342. package/src/programmers/internal/stringify_regular_properties.ts +7 -7
  343. package/src/programmers/internal/template_to_pattern.ts +12 -4
  344. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +3 -0
  345. package/src/programmers/json/JsonAssertParseProgrammer.ts +8 -2
  346. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +8 -2
  347. package/src/programmers/json/JsonIsParseProgrammer.ts +8 -2
  348. package/src/programmers/json/JsonIsStringifyProgrammer.ts +8 -2
  349. package/src/programmers/json/JsonStringifyProgrammer.ts +88 -66
  350. package/src/programmers/json/JsonValidateParseProgrammer.ts +8 -2
  351. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +12 -6
  352. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +8 -2
  353. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +12 -3
  354. package/src/programmers/misc/MiscCloneProgrammer.ts +186 -155
  355. package/src/programmers/misc/MiscIsCloneProgrammer.ts +8 -2
  356. package/src/programmers/misc/MiscIsPruneProgrammer.ts +8 -2
  357. package/src/programmers/misc/MiscPruneProgrammer.ts +77 -63
  358. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +12 -6
  359. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +16 -7
  360. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +8 -2
  361. package/src/programmers/notations/NotationGeneralProgrammer.ts +218 -160
  362. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +8 -2
  363. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +12 -6
  364. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +8 -2
  365. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +8 -2
  366. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +48 -46
  367. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +67 -55
  368. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +12 -6
  369. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +8 -2
  370. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +8 -2
  371. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +12 -6
  372. package/src/transformers/features/llm/LlmApplicationTransformer.ts +7 -6
  373. package/src/utils/NamingConvention/NamingConvention.ts +40 -42
@@ -95,9 +95,9 @@ export namespace JsonStringifyProgrammer {
95
95
  .arrays()
96
96
  .filter((a) => a.recursive)
97
97
  .map((type, i) =>
98
- StatementFactory.constant(
99
- `${props.config.prefix}a${i}`,
100
- ts.factory.createArrowFunction(
98
+ StatementFactory.constant({
99
+ name: `${props.config.prefix}a${i}`,
100
+ value: ts.factory.createArrowFunction(
101
101
  undefined,
102
102
  undefined,
103
103
  FeatureProgrammer.parameterDeclarations({
@@ -123,7 +123,7 @@ export namespace JsonStringifyProgrammer {
123
123
  },
124
124
  }),
125
125
  ),
126
- ),
126
+ }),
127
127
  );
128
128
 
129
129
  const write_tuple_functions = (props: {
@@ -136,9 +136,9 @@ export namespace JsonStringifyProgrammer {
136
136
  .tuples()
137
137
  .filter((t) => t.recursive)
138
138
  .map((tuple, i) =>
139
- StatementFactory.constant(
140
- `${props.config.prefix}t${i}`,
141
- ts.factory.createArrowFunction(
139
+ StatementFactory.constant({
140
+ name: `${props.config.prefix}t${i}`,
141
+ value: ts.factory.createArrowFunction(
142
142
  undefined,
143
143
  undefined,
144
144
  FeatureProgrammer.parameterDeclarations({
@@ -162,7 +162,7 @@ export namespace JsonStringifyProgrammer {
162
162
  },
163
163
  }),
164
164
  ),
165
- ),
165
+ }),
166
166
  );
167
167
 
168
168
  /* -----------------------------------------------------------
@@ -236,7 +236,11 @@ export namespace JsonStringifyProgrammer {
236
236
  is:
237
237
  props.metadata.escaped.original.size() === 1 &&
238
238
  props.metadata.escaped.original.natives[0] === "Date"
239
- ? () => check_native("Date")(props.input)
239
+ ? () =>
240
+ check_native({
241
+ type: "Date",
242
+ input: props.input,
243
+ })
240
244
  : () =>
241
245
  IsProgrammer.decode_to_json({
242
246
  checkNull: false,
@@ -421,7 +425,11 @@ export namespace JsonStringifyProgrammer {
421
425
  for (const native of props.metadata.natives)
422
426
  unions.push({
423
427
  type: "object",
424
- is: () => check_native(native)(props.input),
428
+ is: () =>
429
+ check_native({
430
+ type: native,
431
+ input: props.input,
432
+ }),
425
433
  value: () =>
426
434
  AtomicPredicator.native(native)
427
435
  ? decode_atomic({
@@ -435,7 +443,7 @@ export namespace JsonStringifyProgrammer {
435
443
  if (props.metadata.sets.length)
436
444
  unions.push({
437
445
  type: "object",
438
- is: () => ExpressionFactory.isInstanceOf("Set")(props.input),
446
+ is: () => ExpressionFactory.isInstanceOf("Set", props.input),
439
447
  value: () => ts.factory.createStringLiteral("{}"),
440
448
  });
441
449
 
@@ -443,7 +451,7 @@ export namespace JsonStringifyProgrammer {
443
451
  if (props.metadata.maps.length)
444
452
  unions.push({
445
453
  type: "object",
446
- is: () => ExpressionFactory.isInstanceOf("Map")(props.input),
454
+ is: () => ExpressionFactory.isInstanceOf("Map", props.input),
447
455
  value: () => ts.factory.createStringLiteral("{}"),
448
456
  });
449
457
 
@@ -459,7 +467,8 @@ export namespace JsonStringifyProgrammer {
459
467
  (prop) => !prop.key.isSoleLiteral() || !prop.value.isRequired(),
460
468
  ),
461
469
  ),
462
- })(props.input),
470
+ input: props.input,
471
+ }),
463
472
  value: () =>
464
473
  explore_objects({
465
474
  ...props,
@@ -640,7 +649,7 @@ export namespace JsonStringifyProgrammer {
640
649
  const code = decode({
641
650
  ...props,
642
651
  input: ts.factory.createCallExpression(
643
- IdentifierFactory.access(props.input)("slice"),
652
+ IdentifierFactory.access(props.input, "slice"),
644
653
  undefined,
645
654
  [ExpressionFactory.number(props.tuple.elements.length - 1)],
646
655
  ),
@@ -691,7 +700,7 @@ export namespace JsonStringifyProgrammer {
691
700
  return props.explore.from !== "top"
692
701
  ? props.input
693
702
  : ts.factory.createCallExpression(
694
- IdentifierFactory.access(props.input)("toString"),
703
+ IdentifierFactory.access(props.input, "toString"),
695
704
  undefined,
696
705
  undefined,
697
706
  );
@@ -727,7 +736,7 @@ export namespace JsonStringifyProgrammer {
727
736
  return decode({
728
737
  ...props,
729
738
  input: ts.factory.createCallExpression(
730
- IdentifierFactory.access(props.input)("toJSON"),
739
+ IdentifierFactory.access(props.input, "toJSON"),
731
740
  undefined,
732
741
  [],
733
742
  ),
@@ -777,31 +786,38 @@ export namespace JsonStringifyProgrammer {
777
786
  elements: props.arrays,
778
787
  factory: (next) =>
779
788
  UnionExplorer.array({
780
- checker: (input, metadata, explore) =>
781
- IsProgrammer.decode({
782
- context: props.context,
783
- importer: props.importer,
784
- metadata,
785
- input,
786
- explore,
787
- }),
788
- decoder: (input, array, explore) =>
789
- decode_array({
790
- config: props.config,
791
- importer: props.importer,
792
- input,
793
- array,
794
- explore,
795
- }),
796
- empty: ts.factory.createStringLiteral("[]"),
797
- success: ts.factory.createTrue(),
798
- failure: (input, expected) =>
799
- create_throw_error({
800
- importer: props.importer,
801
- expected,
802
- input,
803
- }),
804
- })(next.parameters)(next.input, next.elements, next.explore),
789
+ config: {
790
+ checker: (v) =>
791
+ IsProgrammer.decode({
792
+ context: props.context,
793
+ importer: props.importer,
794
+ metadata: v.definition,
795
+ input: v.input,
796
+ explore: v.explore,
797
+ }),
798
+ decoder: (v) =>
799
+ decode_array({
800
+ config: props.config,
801
+ importer: props.importer,
802
+ input: v.input,
803
+ array: v.definition,
804
+ explore: v.explore,
805
+ }),
806
+ empty: ts.factory.createStringLiteral("[]"),
807
+ success: ts.factory.createTrue(),
808
+ failure: (v) =>
809
+ create_throw_error({
810
+ importer: props.importer,
811
+ expected: v.expected,
812
+ input: v.input,
813
+ }),
814
+ },
815
+ parameters: next.parameters,
816
+ input: next.input,
817
+ arrays: next.definitions,
818
+ explore: next.explore,
819
+ }),
820
+ //(next.parameters)(next.input, next.elements, next.explore),
805
821
  });
806
822
 
807
823
  const explore_array_like_union_types = <
@@ -812,7 +828,7 @@ export namespace JsonStringifyProgrammer {
812
828
  factory: (next: {
813
829
  parameters: ts.ParameterDeclaration[];
814
830
  input: ts.Expression;
815
- elements: T[];
831
+ definitions: T[];
816
832
  explore: FeatureProgrammer.IExplore;
817
833
  }) => ts.ArrowFunction;
818
834
  input: ts.Expression;
@@ -825,7 +841,7 @@ export namespace JsonStringifyProgrammer {
825
841
  input: ts.Expression;
826
842
  }): ts.ArrowFunction =>
827
843
  props.factory({
828
- elements: props.elements,
844
+ definitions: props.elements,
829
845
  parameters: next.parameters,
830
846
  input: next.input,
831
847
  explore: next.explore,
@@ -966,7 +982,8 @@ export namespace JsonStringifyProgrammer {
966
982
  types: {
967
983
  input: (type, name) =>
968
984
  ts.factory.createTypeReferenceNode(
969
- name ?? TypeFactory.getFullName(props.context.checker)(type),
985
+ name ??
986
+ TypeFactory.getFullName({ checker: props.context.checker, type }),
970
987
  ),
971
988
  output: () => TypeFactory.keyword("string"),
972
989
  },
@@ -1005,28 +1022,33 @@ export namespace JsonStringifyProgrammer {
1005
1022
  importer: props.importer,
1006
1023
  }),
1007
1024
  unionizer: (next) =>
1008
- decode_union_object((input, object, explore) =>
1009
- IsProgrammer.decode_object({
1010
- context: props.context,
1011
- importer: props.importer,
1012
- input,
1013
- object,
1014
- explore,
1015
- }),
1016
- )((input, object, explore) =>
1017
- decode_object({
1018
- importer: props.importer,
1019
- input,
1020
- object,
1021
- explore,
1022
- }),
1023
- )((exp) => exp)((input, expected) =>
1024
- create_throw_error({
1025
- importer: props.importer,
1026
- expected,
1027
- input,
1028
- }),
1029
- )(next.input, next.objects, next.explore),
1025
+ decode_union_object({
1026
+ checker: (v) =>
1027
+ IsProgrammer.decode_object({
1028
+ context: props.context,
1029
+ importer: props.importer,
1030
+ input: v.input,
1031
+ object: v.object,
1032
+ explore: v.explore,
1033
+ }),
1034
+ decoder: (v) =>
1035
+ decode_object({
1036
+ importer: props.importer,
1037
+ input: v.input,
1038
+ object: v.object,
1039
+ explore: v.explore,
1040
+ }),
1041
+ success: (exp) => exp,
1042
+ escaper: (v) =>
1043
+ create_throw_error({
1044
+ importer: props.importer,
1045
+ expected: v.expected,
1046
+ input: v.input,
1047
+ }),
1048
+ objects: next.objects,
1049
+ explore: next.explore,
1050
+ input: next.input,
1051
+ }),
1030
1052
  failure: (next) =>
1031
1053
  create_throw_error({
1032
1054
  importer: props.importer,
@@ -38,7 +38,10 @@ export namespace JsonValidateParseProgrammer {
38
38
  functions: validate.functions,
39
39
  statements: [
40
40
  ...validate.statements,
41
- StatementFactory.constant("__validate", validate.arrow),
41
+ StatementFactory.constant({
42
+ name: "__validate",
43
+ value: validate.arrow,
44
+ }),
42
45
  ],
43
46
  arrow: ts.factory.createArrowFunction(
44
47
  undefined,
@@ -47,7 +50,10 @@ export namespace JsonValidateParseProgrammer {
47
50
  ts.factory.createTypeReferenceNode(
48
51
  `typia.IValidation<typia.Primitive<${
49
52
  props.name ??
50
- TypeFactory.getFullName(props.context.checker)(props.type)
53
+ TypeFactory.getFullName({
54
+ checker: props.context.checker,
55
+ type: props.type,
56
+ })
51
57
  }>>`,
52
58
  ),
53
59
  undefined,
@@ -48,8 +48,14 @@ export namespace JsonValidateStringifyProgrammer {
48
48
  statements: [
49
49
  ...validate.statements,
50
50
  ...stringify.statements,
51
- StatementFactory.constant("__validate", validate.arrow),
52
- StatementFactory.constant("__stringify", stringify.arrow),
51
+ StatementFactory.constant({
52
+ name: "__validate",
53
+ value: validate.arrow,
54
+ }),
55
+ StatementFactory.constant({
56
+ name: "__stringify",
57
+ value: stringify.arrow,
58
+ }),
53
59
  ],
54
60
  arrow: ts.factory.createArrowFunction(
55
61
  undefined,
@@ -60,9 +66,9 @@ export namespace JsonValidateStringifyProgrammer {
60
66
  ]),
61
67
  undefined,
62
68
  ts.factory.createBlock([
63
- StatementFactory.constant(
64
- "result",
65
- ts.factory.createAsExpression(
69
+ StatementFactory.constant({
70
+ name: "result",
71
+ value: ts.factory.createAsExpression(
66
72
  ts.factory.createCallExpression(
67
73
  ts.factory.createIdentifier("__validate"),
68
74
  undefined,
@@ -70,7 +76,7 @@ export namespace JsonValidateStringifyProgrammer {
70
76
  ),
71
77
  TypeFactory.keyword("any"),
72
78
  ),
73
- ),
79
+ }),
74
80
  ts.factory.createIfStatement(
75
81
  ts.factory.createIdentifier("result.success"),
76
82
  ts.factory.createExpressionStatement(
@@ -39,8 +39,14 @@ export namespace MiscAssertCloneProgrammer {
39
39
  statements: [
40
40
  ...assert.statements,
41
41
  ...clone.statements,
42
- StatementFactory.constant("__assert", assert.arrow),
43
- StatementFactory.constant("__clone", clone.arrow),
42
+ StatementFactory.constant({
43
+ name: "__assert",
44
+ value: assert.arrow,
45
+ }),
46
+ StatementFactory.constant({
47
+ name: "__clone",
48
+ value: clone.arrow,
49
+ }),
44
50
  ],
45
51
  arrow: ts.factory.createArrowFunction(
46
52
  undefined,
@@ -39,8 +39,14 @@ export namespace MiscAssertPruneProgrammer {
39
39
  statements: [
40
40
  ...assert.statements,
41
41
  ...prune.statements,
42
- StatementFactory.constant("__assert", assert.arrow),
43
- StatementFactory.constant("__prune", prune.arrow),
42
+ StatementFactory.constant({
43
+ name: "__assert",
44
+ value: assert.arrow,
45
+ }),
46
+ StatementFactory.constant({
47
+ name: "__prune",
48
+ value: prune.arrow,
49
+ }),
44
50
  ],
45
51
  arrow: ts.factory.createArrowFunction(
46
52
  undefined,
@@ -51,7 +57,10 @@ export namespace MiscAssertPruneProgrammer {
51
57
  ],
52
58
  ts.factory.createTypeReferenceNode(
53
59
  props.name ??
54
- TypeFactory.getFullName(props.context.checker)(props.type),
60
+ TypeFactory.getFullName({
61
+ checker: props.context.checker,
62
+ type: props.type,
63
+ }),
55
64
  ),
56
65
  undefined,
57
66
  ts.factory.createBlock(