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
@@ -85,9 +85,9 @@ export namespace MiscCloneProgrammer {
85
85
  .arrays()
86
86
  .filter((a) => a.recursive)
87
87
  .map((type, i) =>
88
- StatementFactory.constant(
89
- `${props.config.prefix}a${i}`,
90
- ts.factory.createArrowFunction(
88
+ StatementFactory.constant({
89
+ name: `${props.config.prefix}a${i}`,
90
+ value: ts.factory.createArrowFunction(
91
91
  undefined,
92
92
  undefined,
93
93
  FeatureProgrammer.parameterDeclarations({
@@ -113,7 +113,7 @@ export namespace MiscCloneProgrammer {
113
113
  },
114
114
  }),
115
115
  ),
116
- ),
116
+ }),
117
117
  );
118
118
 
119
119
  const write_tuple_functions = (props: {
@@ -126,9 +126,9 @@ export namespace MiscCloneProgrammer {
126
126
  .tuples()
127
127
  .filter((t) => t.recursive)
128
128
  .map((tuple, i) =>
129
- StatementFactory.constant(
130
- `${props.config.prefix}t${i}`,
131
- ts.factory.createArrowFunction(
129
+ StatementFactory.constant({
130
+ name: `${props.config.prefix}t${i}`,
131
+ value: ts.factory.createArrowFunction(
132
132
  undefined,
133
133
  undefined,
134
134
  FeatureProgrammer.parameterDeclarations({
@@ -152,7 +152,7 @@ export namespace MiscCloneProgrammer {
152
152
  },
153
153
  }),
154
154
  ),
155
- ),
155
+ }),
156
156
  );
157
157
 
158
158
  /* -----------------------------------------------------------
@@ -242,7 +242,7 @@ export namespace MiscCloneProgrammer {
242
242
  if (props.metadata.sets.length)
243
243
  unions.push({
244
244
  type: "set",
245
- is: () => ExpressionFactory.isInstanceOf("Set")(props.input),
245
+ is: () => ExpressionFactory.isInstanceOf("Set", props.input),
246
246
  value: () =>
247
247
  explore_sets({
248
248
  ...props,
@@ -256,7 +256,7 @@ export namespace MiscCloneProgrammer {
256
256
  if (props.metadata.maps.length)
257
257
  unions.push({
258
258
  type: "map",
259
- is: () => ExpressionFactory.isInstanceOf("Map")(props.input),
259
+ is: () => ExpressionFactory.isInstanceOf("Map", props.input),
260
260
  value: () =>
261
261
  explore_maps({
262
262
  ...props,
@@ -270,11 +270,11 @@ export namespace MiscCloneProgrammer {
270
270
  for (const native of props.metadata.natives)
271
271
  unions.push({
272
272
  type: "native",
273
- is: () => ExpressionFactory.isInstanceOf(native)(props.input),
273
+ is: () => ExpressionFactory.isInstanceOf(native, props.input),
274
274
  value: () =>
275
275
  native === "Boolean" || native === "Number" || native === "String"
276
276
  ? ts.factory.createCallExpression(
277
- IdentifierFactory.access(props.input)("valueOf"),
277
+ IdentifierFactory.access(props.input, "valueOf"),
278
278
  undefined,
279
279
  undefined,
280
280
  )
@@ -292,7 +292,8 @@ export namespace MiscCloneProgrammer {
292
292
  ExpressionFactory.isObject({
293
293
  checkNull: true,
294
294
  checkArray: false,
295
- })(props.input),
295
+ input: props.input,
296
+ }),
296
297
  value: () =>
297
298
  explore_objects({
298
299
  ...props,
@@ -461,7 +462,7 @@ export namespace MiscCloneProgrammer {
461
462
  config: props.config,
462
463
  importer: props.importer,
463
464
  input: ts.factory.createCallExpression(
464
- IdentifierFactory.access(props.input)("slice"),
465
+ IdentifierFactory.access(props.input, "slice"),
465
466
  undefined,
466
467
  [ExpressionFactory.number(props.tuple.elements.length - 1)],
467
468
  ),
@@ -526,14 +527,14 @@ export namespace MiscCloneProgrammer {
526
527
  ExpressionFactory.selfCall(
527
528
  ts.factory.createBlock(
528
529
  [
529
- StatementFactory.constant(
530
- "buffer",
531
- ts.factory.createNewExpression(
530
+ StatementFactory.constant({
531
+ name: "buffer",
532
+ value: ts.factory.createNewExpression(
532
533
  ts.factory.createIdentifier(props.type),
533
534
  undefined,
534
- [IdentifierFactory.access(props.input)("byteLength")],
535
+ [IdentifierFactory.access(props.input, "byteLength")],
535
536
  ),
536
- ),
537
+ }),
537
538
  ts.factory.createExpressionStatement(
538
539
  ts.factory.createCallExpression(
539
540
  IdentifierFactory.access(
@@ -542,7 +543,8 @@ export namespace MiscCloneProgrammer {
542
543
  undefined,
543
544
  [ts.factory.createIdentifier("buffer")],
544
545
  ),
545
- )("set"),
546
+ "set",
547
+ ),
546
548
  undefined,
547
549
  [
548
550
  ts.factory.createNewExpression(
@@ -565,7 +567,7 @@ export namespace MiscCloneProgrammer {
565
567
  ts.factory.createNewExpression(
566
568
  ts.factory.createIdentifier("DataView"),
567
569
  undefined,
568
- [IdentifierFactory.access(input)("buffer")],
570
+ [IdentifierFactory.access(input, "buffer")],
569
571
  );
570
572
 
571
573
  /* -----------------------------------------------------------
@@ -581,41 +583,47 @@ export namespace MiscCloneProgrammer {
581
583
  }): ts.Expression =>
582
584
  ts.factory.createCallExpression(
583
585
  UnionExplorer.set({
584
- checker: (input, metadata, explore) =>
585
- IsProgrammer.decode({
586
- context: props.context,
587
- importer: props.importer,
588
- input,
589
- metadata,
590
- explore,
591
- }),
592
- decoder: (input, array, explore) =>
593
- ts.factory.createNewExpression(
586
+ config: {
587
+ checker: (v) =>
588
+ IsProgrammer.decode({
589
+ context: props.context,
590
+ importer: props.importer,
591
+ input: v.input,
592
+ metadata: v.definition,
593
+ explore: v.explore,
594
+ }),
595
+ decoder: (v) =>
596
+ ts.factory.createNewExpression(
597
+ ts.factory.createIdentifier("Set"),
598
+ [TypeFactory.keyword("any")],
599
+ [
600
+ decode_array({
601
+ config: props.config,
602
+ importer: props.importer,
603
+ input: v.input,
604
+ array: v.definition,
605
+ explore: v.explore,
606
+ }),
607
+ ],
608
+ ),
609
+ empty: ts.factory.createNewExpression(
594
610
  ts.factory.createIdentifier("Set"),
595
611
  [TypeFactory.keyword("any")],
596
- [
597
- decode_array({
598
- config: props.config,
599
- importer: props.importer,
600
- input,
601
- array,
602
- explore,
603
- }),
604
- ],
612
+ [],
605
613
  ),
606
- empty: ts.factory.createNewExpression(
607
- ts.factory.createIdentifier("Set"),
608
- [TypeFactory.keyword("any")],
609
- [],
610
- ),
611
- success: ts.factory.createTrue(),
612
- failure: (input, expected) =>
613
- create_throw_error({
614
- importer: props.importer,
615
- expected,
616
- input,
617
- }),
618
- })([])(props.input, props.sets, props.explore),
614
+ success: ts.factory.createTrue(),
615
+ failure: (v) =>
616
+ create_throw_error({
617
+ importer: props.importer,
618
+ expected: v.expected,
619
+ input: v.input,
620
+ }),
621
+ },
622
+ parameters: [],
623
+ input: props.input,
624
+ sets: props.sets,
625
+ explore: props.explore,
626
+ }),
619
627
  undefined,
620
628
  undefined,
621
629
  );
@@ -630,56 +638,63 @@ export namespace MiscCloneProgrammer {
630
638
  }): ts.Expression =>
631
639
  ts.factory.createCallExpression(
632
640
  UnionExplorer.map({
633
- checker: (top, entry, explore) =>
634
- ts.factory.createLogicalAnd(
635
- IsProgrammer.decode({
636
- context: props.context,
637
- importer: props.importer,
638
- input: ts.factory.createElementAccessExpression(top, 0),
639
- metadata: entry[0],
640
- explore: {
641
- ...explore,
642
- postfix: `${explore.postfix}[0]`,
643
- },
644
- }),
645
- IsProgrammer.decode({
646
- context: props.context,
647
- importer: props.importer,
648
- input: ts.factory.createElementAccessExpression(top, 1),
649
- metadata: entry[1],
650
- explore: {
651
- ...explore,
652
- postfix: `${explore.postfix}[1]`,
653
- },
654
- }),
655
- ),
656
- decoder: (input, array, explore) =>
657
- ts.factory.createNewExpression(
658
- ts.factory.createIdentifier("Map"),
659
- [TypeFactory.keyword("any"), TypeFactory.keyword("any")],
660
- [
661
- decode_array({
662
- config: props.config,
641
+ config: {
642
+ checker: (v) =>
643
+ ts.factory.createLogicalAnd(
644
+ IsProgrammer.decode({
645
+ context: props.context,
663
646
  importer: props.importer,
664
- input,
665
- array,
666
- explore,
647
+ input: ts.factory.createElementAccessExpression(v.input, 0),
648
+ metadata: v.definition[0],
649
+ explore: {
650
+ ...v.explore,
651
+ postfix: `${v.explore.postfix}[0]`,
652
+ },
667
653
  }),
668
- ],
654
+ IsProgrammer.decode({
655
+ context: props.context,
656
+ importer: props.importer,
657
+ input: ts.factory.createElementAccessExpression(v.input, 1),
658
+ metadata: v.definition[1],
659
+ explore: {
660
+ ...v.explore,
661
+ postfix: `${v.explore.postfix}[1]`,
662
+ },
663
+ }),
664
+ ),
665
+ decoder: (v) =>
666
+ ts.factory.createNewExpression(
667
+ ts.factory.createIdentifier("Map"),
668
+ [TypeFactory.keyword("any"), TypeFactory.keyword("any")],
669
+ [
670
+ decode_array({
671
+ config: props.config,
672
+ importer: props.importer,
673
+ input: v.input,
674
+ array: v.definition,
675
+ explore: v.explore,
676
+ }),
677
+ ],
678
+ ),
679
+ empty: ts.factory.createNewExpression(
680
+ ts.factory.createIdentifier("Map"),
681
+ [TypeFactory.keyword("any"), TypeFactory.keyword("any")],
682
+ [],
669
683
  ),
670
- empty: ts.factory.createNewExpression(
671
- ts.factory.createIdentifier("Map"),
672
- [TypeFactory.keyword("any"), TypeFactory.keyword("any")],
673
- [],
674
- ),
675
- success: ts.factory.createTrue(),
676
- failure: (input, expected) =>
677
- create_throw_error({
678
- importer: props.importer,
679
- expected,
680
- input,
681
- }),
682
- })([])(props.input, props.maps, props.explore),
684
+ success: ts.factory.createTrue(),
685
+ failure: (v) =>
686
+ create_throw_error({
687
+ importer: props.importer,
688
+ expected: v.expected,
689
+ input: v.input,
690
+ }),
691
+ },
692
+ parameters: [],
693
+ input: props.input,
694
+ maps: props.maps,
695
+ explore: props.explore,
696
+ }),
697
+ // ([])(props.input, props.maps, props.explore),
683
698
  undefined,
684
699
  undefined,
685
700
  );
@@ -714,34 +729,40 @@ export namespace MiscCloneProgrammer {
714
729
  }): ts.Expression =>
715
730
  explore_array_like_union_types({
716
731
  ...props,
717
- elements: props.arrays,
732
+ definitions: props.arrays,
718
733
  factory: (next) =>
719
734
  UnionExplorer.array({
720
- checker: (input, metadata, explore) =>
721
- IsProgrammer.decode({
722
- context: props.context,
723
- importer: props.importer,
724
- input,
725
- metadata,
726
- explore,
727
- }),
728
- decoder: (input, array, explore) =>
729
- decode_array({
730
- config: props.config,
731
- importer: props.importer,
732
- input,
733
- array,
734
- explore,
735
- }),
736
- empty: ts.factory.createIdentifier("[]"),
737
- success: ts.factory.createTrue(),
738
- failure: (input, expected) =>
739
- create_throw_error({
740
- importer: props.importer,
741
- expected,
742
- input,
743
- }),
744
- })(next.parameters)(next.input, next.elements, next.explore),
735
+ config: {
736
+ checker: (v) =>
737
+ IsProgrammer.decode({
738
+ context: props.context,
739
+ importer: props.importer,
740
+ input: v.input,
741
+ metadata: v.definition,
742
+ explore: v.explore,
743
+ }),
744
+ decoder: (v) =>
745
+ decode_array({
746
+ config: props.config,
747
+ importer: props.importer,
748
+ input: v.input,
749
+ array: v.definition,
750
+ explore: v.explore,
751
+ }),
752
+ empty: ts.factory.createIdentifier("[]"),
753
+ success: ts.factory.createTrue(),
754
+ failure: (v) =>
755
+ create_throw_error({
756
+ importer: props.importer,
757
+ expected: v.expected,
758
+ input: v.input,
759
+ }),
760
+ },
761
+ parameters: next.parameters,
762
+ arrays: next.definitions,
763
+ input: next.input,
764
+ explore: next.explore,
765
+ }),
745
766
  });
746
767
 
747
768
  const explore_array_like_union_types = <
@@ -752,11 +773,11 @@ export namespace MiscCloneProgrammer {
752
773
  factory: (next: {
753
774
  parameters: ts.ParameterDeclaration[];
754
775
  input: ts.Expression;
755
- elements: T[];
776
+ definitions: T[];
756
777
  explore: FeatureProgrammer.IExplore;
757
778
  }) => ts.ArrowFunction;
758
779
  input: ts.Expression;
759
- elements: T[];
780
+ definitions: T[];
760
781
  explore: FeatureProgrammer.IExplore;
761
782
  }): ts.Expression => {
762
783
  const arrow = (next: {
@@ -765,12 +786,12 @@ export namespace MiscCloneProgrammer {
765
786
  input: ts.Expression;
766
787
  }): ts.ArrowFunction =>
767
788
  props.factory({
768
- elements: props.elements,
789
+ definitions: props.definitions,
769
790
  parameters: next.parameters,
770
791
  input: next.input,
771
792
  explore: next.explore,
772
793
  });
773
- if (props.elements.every((e) => e.type.recursive === false))
794
+ if (props.definitions.every((e) => e.type.recursive === false))
774
795
  ts.factory.createCallExpression(
775
796
  arrow({
776
797
  parameters: [],
@@ -790,7 +811,7 @@ export namespace MiscCloneProgrammer {
790
811
  ts.factory.createIdentifier(
791
812
  props.importer.emplaceUnion(
792
813
  props.config.prefix,
793
- props.elements.map((e) => e.type.name).join(" | "),
814
+ props.definitions.map((e) => e.type.name).join(" | "),
794
815
  () =>
795
816
  arrow({
796
817
  parameters: FeatureProgrammer.parameterDeclarations({
@@ -828,7 +849,8 @@ export namespace MiscCloneProgrammer {
828
849
  types: {
829
850
  input: (type, name) =>
830
851
  ts.factory.createTypeReferenceNode(
831
- name ?? TypeFactory.getFullName(props.context.checker)(type),
852
+ name ??
853
+ TypeFactory.getFullName({ checker: props.context.checker, type }),
832
854
  ),
833
855
  output: (type, name) =>
834
856
  ts.factory.createImportTypeNode(
@@ -839,7 +861,11 @@ export namespace MiscCloneProgrammer {
839
861
  ts.factory.createIdentifier("Resolved"),
840
862
  [
841
863
  ts.factory.createTypeReferenceNode(
842
- name ?? TypeFactory.getFullName(props.context.checker)(type),
864
+ name ??
865
+ TypeFactory.getFullName({
866
+ checker: props.context.checker,
867
+ type,
868
+ }),
843
869
  ),
844
870
  ],
845
871
  false,
@@ -876,28 +902,33 @@ export namespace MiscCloneProgrammer {
876
902
  }),
877
903
  joiner: CloneJoiner.object,
878
904
  unionizer: (next) =>
879
- decode_union_object((input, object, explore) =>
880
- IsProgrammer.decode_object({
881
- context: props.context,
882
- importer: props.importer,
883
- input,
884
- object,
885
- explore,
886
- }),
887
- )((input, object, explore) =>
888
- decode_object({
889
- importer: props.importer,
890
- input,
891
- object,
892
- explore,
893
- }),
894
- )((exp) => exp)((input, expected) =>
895
- create_throw_error({
896
- importer: props.importer,
897
- expected,
898
- input,
899
- }),
900
- )(next.input, next.objects, next.explore),
905
+ decode_union_object({
906
+ checker: (v) =>
907
+ IsProgrammer.decode_object({
908
+ context: props.context,
909
+ importer: props.importer,
910
+ input: v.input,
911
+ object: v.object,
912
+ explore: v.explore,
913
+ }),
914
+ decoder: (v) =>
915
+ decode_object({
916
+ importer: props.importer,
917
+ input: v.input,
918
+ object: v.object,
919
+ explore: v.explore,
920
+ }),
921
+ success: (exp) => exp,
922
+ escaper: (v) =>
923
+ create_throw_error({
924
+ importer: props.importer,
925
+ expected: v.expected,
926
+ input: v.input,
927
+ }),
928
+ input: next.input,
929
+ objects: next.objects,
930
+ explore: next.explore,
931
+ }),
901
932
  failure: (next) =>
902
933
  create_throw_error({
903
934
  importer: props.importer,
@@ -37,8 +37,14 @@ export namespace MiscIsCloneProgrammer {
37
37
  statements: [
38
38
  ...is.statements,
39
39
  ...clone.statements,
40
- StatementFactory.constant("__is", is.arrow),
41
- StatementFactory.constant("__clone", clone.arrow),
40
+ StatementFactory.constant({
41
+ name: "__is",
42
+ value: is.arrow,
43
+ }),
44
+ StatementFactory.constant({
45
+ name: "__clone",
46
+ value: clone.arrow,
47
+ }),
42
48
  ],
43
49
  arrow: ts.factory.createArrowFunction(
44
50
  undefined,
@@ -37,8 +37,14 @@ export namespace MiscIsPruneProgrammer {
37
37
  statements: [
38
38
  ...is.statements,
39
39
  ...prune.statements,
40
- StatementFactory.constant("__is", is.arrow),
41
- StatementFactory.constant("__prune", prune.arrow),
40
+ StatementFactory.constant({
41
+ name: "__is",
42
+ value: is.arrow,
43
+ }),
44
+ StatementFactory.constant({
45
+ name: "__prune",
46
+ value: prune.arrow,
47
+ }),
42
48
  ],
43
49
  arrow: ts.factory.createArrowFunction(
44
50
  undefined,