typia 7.0.0-dev.20241001 → 7.0.0-dev.20241002-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 (308) 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 +6 -3
  20. package/lib/factories/MetadataCollection.js.map +1 -1
  21. package/lib/factories/MetadataCommentTagFactory.js +414 -330
  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/programmers/AssertProgrammer.js +16 -5
  58. package/lib/programmers/AssertProgrammer.js.map +1 -1
  59. package/lib/programmers/CheckerProgrammer.js +42 -35
  60. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  61. package/lib/programmers/FeatureProgrammer.js +21 -15
  62. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  63. package/lib/programmers/IsProgrammer.js +3 -2
  64. package/lib/programmers/IsProgrammer.js.map +1 -1
  65. package/lib/programmers/RandomProgrammer.js +88 -67
  66. package/lib/programmers/RandomProgrammer.js.map +1 -1
  67. package/lib/programmers/ValidateProgrammer.js +16 -7
  68. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  69. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js +30 -15
  70. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js.map +1 -1
  71. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js +16 -13
  72. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js.map +1 -1
  73. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js +11 -8
  74. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js.map +1 -1
  75. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js +8 -2
  76. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js.map +1 -1
  77. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js +11 -5
  78. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js.map +1 -1
  79. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js +8 -2
  80. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js.map +1 -1
  81. package/lib/programmers/helpers/CloneJoiner.js +9 -3
  82. package/lib/programmers/helpers/CloneJoiner.js.map +1 -1
  83. package/lib/programmers/helpers/FunctionImporter.js +10 -7
  84. package/lib/programmers/helpers/FunctionImporter.js.map +1 -1
  85. package/lib/programmers/helpers/NotationJoiner.js +9 -3
  86. package/lib/programmers/helpers/NotationJoiner.js.map +1 -1
  87. package/lib/programmers/helpers/PruneJoiner.js +2 -2
  88. package/lib/programmers/helpers/PruneJoiner.js.map +1 -1
  89. package/lib/programmers/helpers/RandomJoiner.js +4 -1
  90. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  91. package/lib/programmers/helpers/StringifyJoinder.js +1 -1
  92. package/lib/programmers/helpers/StringifyJoinder.js.map +1 -1
  93. package/lib/programmers/helpers/UnionExplorer.js +7 -7
  94. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  95. package/lib/programmers/helpers/UnionPredicator.js +1 -1
  96. package/lib/programmers/helpers/UnionPredicator.js.map +1 -1
  97. package/lib/programmers/http/HttpAssertFormDataProgrammer.js +8 -2
  98. package/lib/programmers/http/HttpAssertFormDataProgrammer.js.map +1 -1
  99. package/lib/programmers/http/HttpAssertHeadersProgrammer.js +8 -2
  100. package/lib/programmers/http/HttpAssertHeadersProgrammer.js.map +1 -1
  101. package/lib/programmers/http/HttpAssertQueryProgrammer.js +8 -2
  102. package/lib/programmers/http/HttpAssertQueryProgrammer.js.map +1 -1
  103. package/lib/programmers/http/HttpFormDataProgrammer.js +14 -8
  104. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
  105. package/lib/programmers/http/HttpHeadersProgrammer.js +21 -15
  106. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  107. package/lib/programmers/http/HttpIsFormDataProgrammer.js +12 -3
  108. package/lib/programmers/http/HttpIsFormDataProgrammer.js.map +1 -1
  109. package/lib/programmers/http/HttpIsHeadersProgrammer.js +12 -3
  110. package/lib/programmers/http/HttpIsHeadersProgrammer.js.map +1 -1
  111. package/lib/programmers/http/HttpIsQueryProgrammer.js +12 -3
  112. package/lib/programmers/http/HttpIsQueryProgrammer.js.map +1 -1
  113. package/lib/programmers/http/HttpParameterProgrammer.js +17 -10
  114. package/lib/programmers/http/HttpParameterProgrammer.js.map +1 -1
  115. package/lib/programmers/http/HttpQueryProgrammer.js +14 -8
  116. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  117. package/lib/programmers/http/HttpValidateFormDataProgrammer.js +8 -2
  118. package/lib/programmers/http/HttpValidateFormDataProgrammer.js.map +1 -1
  119. package/lib/programmers/http/HttpValidateHeadersProgrammer.js +8 -2
  120. package/lib/programmers/http/HttpValidateHeadersProgrammer.js.map +1 -1
  121. package/lib/programmers/http/HttpValidateQueryProgrammer.js +8 -2
  122. package/lib/programmers/http/HttpValidateQueryProgrammer.js.map +1 -1
  123. package/lib/programmers/internal/check_array_length.js +1 -1
  124. package/lib/programmers/internal/check_array_length.js.map +1 -1
  125. package/lib/programmers/internal/check_bigint.js +1 -1
  126. package/lib/programmers/internal/check_bigint.js.map +1 -1
  127. package/lib/programmers/internal/check_dynamic_properties.js +7 -4
  128. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  129. package/lib/programmers/internal/check_everything.js +1 -1
  130. package/lib/programmers/internal/check_everything.js.map +1 -1
  131. package/lib/programmers/internal/check_native.js +1 -1
  132. package/lib/programmers/internal/check_native.js.map +1 -1
  133. package/lib/programmers/internal/check_number.js +1 -1
  134. package/lib/programmers/internal/check_number.js.map +1 -1
  135. package/lib/programmers/internal/check_string.js +1 -1
  136. package/lib/programmers/internal/check_string.js.map +1 -1
  137. package/lib/programmers/internal/check_union_array_like.js +25 -7
  138. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  139. package/lib/programmers/internal/prune_object_properties.js +1 -1
  140. package/lib/programmers/internal/prune_object_properties.js.map +1 -1
  141. package/lib/programmers/internal/random_custom.js +1 -1
  142. package/lib/programmers/internal/random_custom.js.map +1 -1
  143. package/lib/programmers/internal/stringify_dynamic_properties.js +4 -4
  144. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  145. package/lib/programmers/json/JsonAssertParseProgrammer.js +8 -2
  146. package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
  147. package/lib/programmers/json/JsonAssertStringifyProgrammer.js +8 -2
  148. package/lib/programmers/json/JsonAssertStringifyProgrammer.js.map +1 -1
  149. package/lib/programmers/json/JsonIsParseProgrammer.js +8 -2
  150. package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
  151. package/lib/programmers/json/JsonIsStringifyProgrammer.js +8 -2
  152. package/lib/programmers/json/JsonIsStringifyProgrammer.js.map +1 -1
  153. package/lib/programmers/json/JsonStringifyProgrammer.js +50 -43
  154. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  155. package/lib/programmers/json/JsonValidateParseProgrammer.js +8 -2
  156. package/lib/programmers/json/JsonValidateParseProgrammer.js.map +1 -1
  157. package/lib/programmers/json/JsonValidateStringifyProgrammer.js +12 -3
  158. package/lib/programmers/json/JsonValidateStringifyProgrammer.js.map +1 -1
  159. package/lib/programmers/misc/MiscAssertCloneProgrammer.js +8 -2
  160. package/lib/programmers/misc/MiscAssertCloneProgrammer.js.map +1 -1
  161. package/lib/programmers/misc/MiscAssertPruneProgrammer.js +12 -3
  162. package/lib/programmers/misc/MiscAssertPruneProgrammer.js.map +1 -1
  163. package/lib/programmers/misc/MiscCloneProgrammer.js +60 -47
  164. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  165. package/lib/programmers/misc/MiscIsCloneProgrammer.js +8 -2
  166. package/lib/programmers/misc/MiscIsCloneProgrammer.js.map +1 -1
  167. package/lib/programmers/misc/MiscIsPruneProgrammer.js +8 -2
  168. package/lib/programmers/misc/MiscIsPruneProgrammer.js.map +1 -1
  169. package/lib/programmers/misc/MiscPruneProgrammer.js +49 -42
  170. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  171. package/lib/programmers/misc/MiscValidateCloneProgrammer.js +12 -3
  172. package/lib/programmers/misc/MiscValidateCloneProgrammer.js.map +1 -1
  173. package/lib/programmers/misc/MiscValidatePruneProgrammer.js +16 -4
  174. package/lib/programmers/misc/MiscValidatePruneProgrammer.js.map +1 -1
  175. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js +8 -2
  176. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js.map +1 -1
  177. package/lib/programmers/notations/NotationGeneralProgrammer.js +45 -32
  178. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  179. package/lib/programmers/notations/NotationIsGeneralProgrammer.js +8 -2
  180. package/lib/programmers/notations/NotationIsGeneralProgrammer.js.map +1 -1
  181. package/lib/programmers/notations/NotationValidateGeneralProgrammer.js +12 -3
  182. package/lib/programmers/notations/NotationValidateGeneralProgrammer.js.map +1 -1
  183. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js +8 -2
  184. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js.map +1 -1
  185. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js +8 -2
  186. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js.map +1 -1
  187. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +51 -30
  188. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  189. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +57 -41
  190. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  191. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js +12 -3
  192. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js.map +1 -1
  193. package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.js +8 -2
  194. package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.js.map +1 -1
  195. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +1 -1
  196. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  197. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js +8 -2
  198. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js.map +1 -1
  199. package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.js +12 -3
  200. package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.js.map +1 -1
  201. package/lib/transformers/features/llm/LlmApplicationTransformer.js +5 -2
  202. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  203. package/lib/utils/MapUtil.d.ts +1 -1
  204. package/lib/utils/MapUtil.js +7 -9
  205. package/lib/utils/MapUtil.js.map +1 -1
  206. package/lib/utils/NameEncoder.d.ts +2 -2
  207. package/lib/utils/NameEncoder.js +4 -6
  208. package/lib/utils/NameEncoder.js.map +1 -1
  209. package/package.json +1 -1
  210. package/src/executable/TypiaGenerateWizard.ts +1 -1
  211. package/src/executable/TypiaSetupWizard.ts +1 -1
  212. package/src/executable/setup/ArgumentParser.ts +27 -28
  213. package/src/executable/setup/FileRetriever.ts +14 -17
  214. package/src/executable/setup/PackageManager.ts +4 -3
  215. package/src/factories/ExpressionFactory.ts +98 -84
  216. package/src/factories/IdentifierFactory.ts +26 -7
  217. package/src/factories/MetadataCollection.ts +7 -3
  218. package/src/factories/MetadataCommentTagFactory.ts +306 -218
  219. package/src/factories/MetadataFactory.ts +2 -1
  220. package/src/factories/MetadataTypeTagFactory.ts +334 -285
  221. package/src/factories/MetadataTypeTagSchemaFactory.ts +75 -52
  222. package/src/factories/NumericRangeFactory.ts +8 -8
  223. package/src/factories/StatementFactory.ts +27 -11
  224. package/src/factories/TemplateFactory.ts +29 -21
  225. package/src/factories/TypeFactory.ts +80 -58
  226. package/src/factories/internal/metadata/iterate_metadata.ts +4 -1
  227. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +6 -4
  228. package/src/factories/internal/metadata/iterate_metadata_escape.ts +5 -3
  229. package/src/factories/internal/metadata/iterate_metadata_function.ts +4 -4
  230. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +6 -3
  231. package/src/factories/internal/metadata/iterate_metadata_map.ts +4 -3
  232. package/src/factories/internal/metadata/iterate_metadata_native.ts +12 -9
  233. package/src/factories/internal/metadata/iterate_metadata_set.ts +5 -1
  234. package/src/programmers/AssertProgrammer.ts +16 -5
  235. package/src/programmers/CheckerProgrammer.ts +16 -13
  236. package/src/programmers/FeatureProgrammer.ts +8 -8
  237. package/src/programmers/IsProgrammer.ts +4 -3
  238. package/src/programmers/RandomProgrammer.ts +37 -30
  239. package/src/programmers/ValidateProgrammer.ts +17 -10
  240. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +4 -4
  241. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +4 -4
  242. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +4 -4
  243. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +7 -7
  244. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +14 -8
  245. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +7 -7
  246. package/src/programmers/helpers/CloneJoiner.ts +13 -6
  247. package/src/programmers/helpers/FunctionImporter.ts +12 -11
  248. package/src/programmers/helpers/NotationJoiner.ts +13 -6
  249. package/src/programmers/helpers/PruneJoiner.ts +3 -2
  250. package/src/programmers/helpers/RandomJoiner.ts +7 -4
  251. package/src/programmers/helpers/StringifyJoinder.ts +1 -1
  252. package/src/programmers/helpers/UnionExplorer.ts +16 -11
  253. package/src/programmers/helpers/UnionPredicator.ts +1 -1
  254. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +8 -2
  255. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +8 -2
  256. package/src/programmers/http/HttpAssertQueryProgrammer.ts +8 -2
  257. package/src/programmers/http/HttpFormDataProgrammer.ts +10 -6
  258. package/src/programmers/http/HttpHeadersProgrammer.ts +14 -10
  259. package/src/programmers/http/HttpIsFormDataProgrammer.ts +12 -6
  260. package/src/programmers/http/HttpIsHeadersProgrammer.ts +12 -6
  261. package/src/programmers/http/HttpIsQueryProgrammer.ts +12 -6
  262. package/src/programmers/http/HttpParameterProgrammer.ts +16 -11
  263. package/src/programmers/http/HttpQueryProgrammer.ts +10 -6
  264. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +8 -2
  265. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +8 -2
  266. package/src/programmers/http/HttpValidateQueryProgrammer.ts +8 -2
  267. package/src/programmers/internal/check_array_length.ts +1 -1
  268. package/src/programmers/internal/check_bigint.ts +1 -1
  269. package/src/programmers/internal/check_dynamic_properties.ts +10 -7
  270. package/src/programmers/internal/check_everything.ts +1 -1
  271. package/src/programmers/internal/check_native.ts +1 -1
  272. package/src/programmers/internal/check_number.ts +1 -1
  273. package/src/programmers/internal/check_string.ts +1 -1
  274. package/src/programmers/internal/check_union_array_like.ts +27 -17
  275. package/src/programmers/internal/prune_object_properties.ts +1 -1
  276. package/src/programmers/internal/random_custom.ts +2 -1
  277. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -160
  278. package/src/programmers/json/JsonAssertParseProgrammer.ts +8 -2
  279. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +8 -2
  280. package/src/programmers/json/JsonIsParseProgrammer.ts +8 -2
  281. package/src/programmers/json/JsonIsStringifyProgrammer.ts +8 -2
  282. package/src/programmers/json/JsonStringifyProgrammer.ts +17 -15
  283. package/src/programmers/json/JsonValidateParseProgrammer.ts +8 -2
  284. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +12 -6
  285. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +8 -2
  286. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +12 -3
  287. package/src/programmers/misc/MiscCloneProgrammer.ts +30 -23
  288. package/src/programmers/misc/MiscIsCloneProgrammer.ts +8 -2
  289. package/src/programmers/misc/MiscIsPruneProgrammer.ts +8 -2
  290. package/src/programmers/misc/MiscPruneProgrammer.ts +16 -14
  291. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +12 -6
  292. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +16 -7
  293. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +8 -2
  294. package/src/programmers/notations/NotationGeneralProgrammer.ts +26 -17
  295. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +8 -2
  296. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +12 -6
  297. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +8 -2
  298. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +8 -2
  299. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +48 -46
  300. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +42 -34
  301. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +12 -6
  302. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +8 -2
  303. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +1 -1
  304. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +8 -2
  305. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +12 -6
  306. package/src/transformers/features/llm/LlmApplicationTransformer.ts +7 -6
  307. package/src/utils/MapUtil.ts +11 -9
  308. package/src/utils/NameEncoder.ts +4 -4
@@ -31,68 +31,75 @@ export namespace ExpressionFactory {
31
31
  [input],
32
32
  );
33
33
 
34
- export const isObject =
35
- (options: { checkNull: boolean; checkArray: boolean }) =>
36
- (input: ts.Expression): ts.Expression => {
37
- const conditions: ts.Expression[] = [
34
+ export const isObject = (props: {
35
+ checkNull: boolean;
36
+ checkArray: boolean;
37
+ input: ts.Expression;
38
+ }): ts.Expression => {
39
+ const conditions: ts.Expression[] = [
40
+ ts.factory.createStrictEquality(
41
+ ts.factory.createStringLiteral("object"),
42
+ ts.factory.createTypeOfExpression(props.input),
43
+ ),
44
+ ];
45
+ if (props.checkNull === true)
46
+ conditions.push(
47
+ ts.factory.createStrictInequality(ts.factory.createNull(), props.input),
48
+ );
49
+ if (props.checkArray === true)
50
+ conditions.push(
38
51
  ts.factory.createStrictEquality(
39
- ts.factory.createStringLiteral("object"),
40
- ts.factory.createTypeOfExpression(input),
41
- ),
42
- ];
43
- if (options.checkNull === true)
44
- conditions.push(
45
- ts.factory.createStrictInequality(ts.factory.createNull(), input),
46
- );
47
- if (options.checkArray === true)
48
- conditions.push(
49
- ts.factory.createStrictEquality(
50
- ts.factory.createFalse(),
51
- ts.factory.createCallExpression(
52
- ts.factory.createIdentifier("Array.isArray"),
53
- undefined,
54
- [input],
55
- ),
52
+ ts.factory.createFalse(),
53
+ ts.factory.createCallExpression(
54
+ ts.factory.createIdentifier("Array.isArray"),
55
+ undefined,
56
+ [props.input],
56
57
  ),
57
- );
58
+ ),
59
+ );
58
60
 
59
- return conditions.length === 1
60
- ? conditions[0]!
61
- : conditions.reduce((x, y) => ts.factory.createLogicalAnd(x, y));
62
- };
61
+ return conditions.length === 1
62
+ ? conditions[0]!
63
+ : conditions.reduce((x, y) => ts.factory.createLogicalAnd(x, y));
64
+ };
63
65
 
64
- export const isInstanceOf =
65
- (type: string) =>
66
- (input: ts.Expression): ts.Expression => {
67
- return ts.factory.createBinaryExpression(
68
- input,
69
- ts.factory.createToken(ts.SyntaxKind.InstanceOfKeyword),
70
- ts.factory.createIdentifier(type),
71
- );
72
- };
66
+ export const isInstanceOf = (
67
+ type: string,
68
+ input: ts.Expression,
69
+ ): ts.Expression => {
70
+ return ts.factory.createBinaryExpression(
71
+ input,
72
+ ts.factory.createToken(ts.SyntaxKind.InstanceOfKeyword),
73
+ ts.factory.createIdentifier(type),
74
+ );
75
+ };
73
76
 
74
- export const coalesce =
75
- (x: ts.Expression) =>
76
- (y: ts.Expression): ts.Expression =>
77
- ts.factory.createBinaryExpression(
78
- x,
79
- ts.factory.createToken(ts.SyntaxKind.QuestionQuestionToken),
80
- y,
81
- );
77
+ export const coalesce = (x: ts.Expression, y: ts.Expression): ts.Expression =>
78
+ ts.factory.createBinaryExpression(
79
+ x,
80
+ ts.factory.createToken(ts.SyntaxKind.QuestionQuestionToken),
81
+ y,
82
+ );
82
83
 
83
- export const currying =
84
- (target: ts.Expression) => (parameters: ts.Expression[]) => {
85
- if (parameters.length === 0)
86
- return ts.factory.createCallExpression(target, undefined, undefined);
87
- let prev: ts.CallExpression = ts.factory.createCallExpression(
88
- target,
84
+ export const currying = (props: {
85
+ function: ts.Expression;
86
+ arguments: ts.Expression[];
87
+ }) => {
88
+ if (props.arguments.length === 0)
89
+ return ts.factory.createCallExpression(
90
+ props.function,
91
+ undefined,
89
92
  undefined,
90
- [parameters[0]!],
91
93
  );
92
- for (const param of parameters.slice(1))
93
- prev = ts.factory.createCallExpression(prev, undefined, [param]);
94
- return prev;
95
- };
94
+ let prev: ts.CallExpression = ts.factory.createCallExpression(
95
+ props.function,
96
+ undefined,
97
+ [props.arguments[0]!],
98
+ );
99
+ for (const param of props.arguments.slice(1))
100
+ prev = ts.factory.createCallExpression(prev, undefined, [param]);
101
+ return prev;
102
+ };
96
103
 
97
104
  export const selfCall = (body: ts.ConciseBody) =>
98
105
  ts.isCallExpression(body)
@@ -112,39 +119,46 @@ export namespace ExpressionFactory {
112
119
  undefined,
113
120
  );
114
121
 
115
- export const getEscapedText =
116
- (printer: ts.Printer) =>
117
- (input: ts.Expression): string =>
118
- printer.printNode(ts.EmitHint.Expression, input, input.getSourceFile());
122
+ export const getEscapedText = (props: {
123
+ printer: ts.Printer;
124
+ input: ts.Expression;
125
+ }): string =>
126
+ props.printer.printNode(
127
+ ts.EmitHint.Expression,
128
+ props.input,
129
+ props.input.getSourceFile(),
130
+ );
119
131
 
120
- export const transpile =
121
- (context: ts.TransformationContext) => (script: string) => {
122
- const file: ts.SourceFile = ts.createSourceFile(
123
- `${RandomGenerator.uuid()}.ts`,
124
- script,
125
- ts.ScriptTarget.ESNext,
126
- true,
127
- ts.ScriptKind.TS,
132
+ export const transpile = (
133
+ transformer: ts.TransformationContext,
134
+ script: string,
135
+ ) => {
136
+ const file: ts.SourceFile = ts.createSourceFile(
137
+ `${RandomGenerator.uuid()}.ts`,
138
+ script,
139
+ ts.ScriptTarget.ESNext,
140
+ true,
141
+ ts.ScriptKind.TS,
142
+ );
143
+ const statement: ts.Statement | undefined = file.statements[0];
144
+ if (statement === undefined)
145
+ throw new ReferenceError(
146
+ "Error on ExpressionFactory.transpile(): no statement exists.",
128
147
  );
129
- const statement: ts.Statement | undefined = file.statements[0];
130
- if (statement === undefined)
131
- throw new ReferenceError(
132
- "Error on ExpressionFactory.transpile(): no statement exists.",
133
- );
134
- else if (!ts.isExpressionStatement(statement))
135
- throw new TypeError(
136
- "Error on ExpressionFactory.transpile(): statement is not an expression statement.",
148
+ else if (!ts.isExpressionStatement(statement))
149
+ throw new TypeError(
150
+ "Error on ExpressionFactory.transpile(): statement is not an expression statement.",
151
+ );
152
+ return (input: ts.Expression): ts.Expression => {
153
+ const visitor = (node: ts.Node): ts.Node => {
154
+ if (ts.isIdentifier(node) && node.text === "$input") return input;
155
+ return ts.visitEachChild(
156
+ (ts.factory as any).cloneNode(node),
157
+ visitor,
158
+ transformer,
137
159
  );
138
- return (input: ts.Expression): ts.Expression => {
139
- const visitor = (node: ts.Node): ts.Node => {
140
- if (ts.isIdentifier(node) && node.text === "$input") return input;
141
- return ts.visitEachChild(
142
- (ts.factory as any).cloneNode(node),
143
- visitor,
144
- context,
145
- );
146
- };
147
- return visitor(statement.expression) as ts.Expression;
148
160
  };
161
+ return visitor(statement.expression) as ts.Expression;
149
162
  };
163
+ };
150
164
  }
@@ -10,11 +10,27 @@ export namespace IdentifierFactory {
10
10
  ? ts.factory.createIdentifier(name)
11
11
  : ts.factory.createStringLiteral(name);
12
12
 
13
- export const access = (target: ts.Expression) => (property: string) => {
14
- const postfix = identifier(property);
13
+ export const access = (
14
+ input: ts.Expression,
15
+ key: string,
16
+ chain?: boolean,
17
+ ) => {
18
+ const postfix = identifier(key);
15
19
  return ts.isStringLiteral(postfix)
16
- ? ts.factory.createElementAccessExpression(target, postfix)
17
- : ts.factory.createPropertyAccessExpression(target, postfix);
20
+ ? chain === true
21
+ ? ts.factory.createElementAccessChain(
22
+ input,
23
+ ts.factory.createToken(ts.SyntaxKind.QuestionDotToken),
24
+ postfix,
25
+ )
26
+ : ts.factory.createElementAccessExpression(input, postfix)
27
+ : chain === true
28
+ ? ts.factory.createPropertyAccessChain(
29
+ input,
30
+ ts.factory.createToken(ts.SyntaxKind.QuestionDotToken),
31
+ postfix,
32
+ )
33
+ : ts.factory.createPropertyAccessExpression(input, postfix);
18
34
  };
19
35
 
20
36
  export const getName = (input: ts.Expression): string => {
@@ -29,7 +45,7 @@ export namespace IdentifierFactory {
29
45
  return `${getName(input.expression)}[${getName(
30
46
  input.argumentExpression,
31
47
  )}]`;
32
- return "uknown";
48
+ return "unknown";
33
49
  };
34
50
 
35
51
  export const postfix = (str: string): string =>
@@ -39,8 +55,11 @@ export namespace IdentifierFactory {
39
55
 
40
56
  export const parameter = (
41
57
  name: string | ts.BindingName,
42
- type?: ts.TypeNode,
43
- init?: ts.Expression | ts.PunctuationToken<ts.SyntaxKind.QuestionToken>,
58
+ type?: ts.TypeNode | undefined,
59
+ init?:
60
+ | ts.Expression
61
+ | ts.PunctuationToken<ts.SyntaxKind.QuestionToken>
62
+ | undefined,
44
63
  ): ts.ParameterDeclaration => {
45
64
  // instead of ts.version >= "4.8"
46
65
  if (ts.getDecorators !== undefined)
@@ -80,11 +80,15 @@ export class MetadataCollection {
80
80
 
81
81
  private getName(checker: ts.TypeChecker, type: ts.Type): string {
82
82
  const name: string = (() => {
83
- const str: string = TypeFactory.getFullName(checker)(type);
83
+ const str: string = TypeFactory.getFullName({
84
+ checker,
85
+ type,
86
+ });
84
87
  return this.options?.replace ? this.options.replace(str) : str;
85
88
  })();
86
89
 
87
- const duplicates: Map<ts.Type, string> = MapUtil.take(this.names_)(
90
+ const duplicates: Map<ts.Type, string> = MapUtil.take(
91
+ this.names_,
88
92
  name,
89
93
  () => new Map(),
90
94
  );
@@ -103,7 +107,7 @@ export class MetadataCollection {
103
107
  */
104
108
  public getUnionIndex(meta: Metadata): number {
105
109
  const key: string = meta.objects.map((obj) => obj.name).join(" | ");
106
- MapUtil.take(this.object_unions_)(key, () => meta.objects);
110
+ MapUtil.take(this.object_unions_, key, () => meta.objects);
107
111
  return [...this.object_unions_.keys()].indexOf(key);
108
112
  }
109
113