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
@@ -29,7 +29,8 @@ export const check_dynamic_properties = (props: {
29
29
  undefined,
30
30
  [props.input],
31
31
  ),
32
- )("length");
32
+ "length",
33
+ );
33
34
  const left: ts.Expression | null =
34
35
  props.config.equals === true && props.dynamic.length === 0
35
36
  ? props.config.undefined === true ||
@@ -75,7 +76,8 @@ export const check_dynamic_properties = (props: {
75
76
  undefined,
76
77
  [props.input],
77
78
  ),
78
- )(props.config.assert ? "every" : "map"),
79
+ props.config.assert ? "every" : "map",
80
+ ),
79
81
  undefined,
80
82
  [check_dynamic_property(props)],
81
83
  );
@@ -121,10 +123,10 @@ const check_dynamic_property = (props: {
121
123
  if (props.regular.length)
122
124
  add(is_regular_property(props.regular), props.config.positive);
123
125
  statements.push(
124
- StatementFactory.constant(
125
- "value",
126
- ts.factory.createElementAccessExpression(props.input, key),
127
- ),
126
+ StatementFactory.constant({
127
+ name: "value",
128
+ value: ts.factory.createElementAccessExpression(props.input, key),
129
+ }),
128
130
  );
129
131
  if (props.config.undefined === true)
130
132
  add(
@@ -191,7 +193,8 @@ const is_regular_property = (regular: IExpressionEntry[]) =>
191
193
  ts.factory.createStringLiteral(entry.key.getSoleLiteral()!),
192
194
  ),
193
195
  ),
194
- )("some"),
196
+ "some",
197
+ ),
195
198
  undefined,
196
199
  [
197
200
  ts.factory.createArrowFunction(
@@ -8,7 +8,7 @@ import { TypeFactory } from "../../factories/TypeFactory";
8
8
  */
9
9
  export const check_everything = (array: ts.Expression) =>
10
10
  ts.factory.createCallExpression(
11
- IdentifierFactory.access(array)("every"),
11
+ IdentifierFactory.access(array, "every"),
12
12
  undefined,
13
13
  [
14
14
  ts.factory.createArrowFunction(
@@ -9,7 +9,7 @@ export const check_native = (props: {
9
9
  type: string;
10
10
  input: ts.Expression;
11
11
  }): ts.Expression => {
12
- const instanceOf = ExpressionFactory.isInstanceOf(props.type)(props.input);
12
+ const instanceOf = ExpressionFactory.isInstanceOf(props.type, props.input);
13
13
  return ATOMIC_LIKE.has(props.type)
14
14
  ? ts.factory.createLogicalOr(
15
15
  ts.factory.createStrictEquality(
@@ -105,7 +105,7 @@ const check_numeric_type_tags = (props: {
105
105
  expected: `number & ${tag.name}`,
106
106
  expression: (
107
107
  tag.predicate ??
108
- ExpressionFactory.transpile(props.context.transformer)(tag.validate!)
108
+ ExpressionFactory.transpile(props.context.transformer, tag.validate!)
109
109
  )(props.input),
110
110
  })),
111
111
  ]);
@@ -43,7 +43,7 @@ const check_string_type_tags = (props: {
43
43
  expected: `string & ${tag.name}`,
44
44
  expression: (
45
45
  tag.predicate ??
46
- ExpressionFactory.transpile(props.context.transformer)(tag.validate!)
46
+ ExpressionFactory.transpile(props.context.transformer, tag.validate!)
47
47
  )(props.input),
48
48
  })),
49
49
  );
@@ -128,14 +128,17 @@ export const check_union_array_like = <
128
128
 
129
129
  if (tupleList.length)
130
130
  statements.push(
131
- StatementFactory.constant("array", props.accessor.array(props.input)),
132
- StatementFactory.constant(
133
- "tuplePredicators",
134
- ts.factory.createArrayLiteralExpression(
131
+ StatementFactory.constant({
132
+ name: "array",
133
+ value: props.accessor.array(props.input),
134
+ }),
135
+ StatementFactory.constant({
136
+ name: "tuplePredicators",
137
+ value: ts.factory.createArrayLiteralExpression(
135
138
  tupleList.map((x) => predicate(x as Category)),
136
139
  true,
137
140
  ),
138
- ),
141
+ }),
139
142
  iterate({
140
143
  init: "pred",
141
144
  from: ts.factory.createIdentifier("tuplePredicators"),
@@ -158,10 +161,16 @@ export const check_union_array_like = <
158
161
  if (arrayList.length) {
159
162
  if (tupleList.length === 0)
160
163
  statements.push(
161
- StatementFactory.constant("array", props.accessor.array(props.input)),
164
+ StatementFactory.constant({
165
+ name: "array",
166
+ value: props.accessor.array(props.input),
167
+ }),
162
168
  );
163
169
  statements.push(
164
- StatementFactory.constant("top", props.accessor.front(props.input)),
170
+ StatementFactory.constant({
171
+ name: "top",
172
+ value: props.accessor.front(props.input),
173
+ }),
165
174
  ts.factory.createIfStatement(
166
175
  ts.factory.createStrictEquality(
167
176
  ExpressionFactory.number(0),
@@ -171,19 +180,20 @@ export const check_union_array_like = <
171
180
  ? props.config.empty
172
181
  : ts.factory.createReturnStatement(props.config.empty),
173
182
  ),
174
- StatementFactory.constant(
175
- "arrayPredicators",
176
- ts.factory.createArrayLiteralExpression(
183
+ StatementFactory.constant({
184
+ name: "arrayPredicators",
185
+ value: ts.factory.createArrayLiteralExpression(
177
186
  arrayList.map((x) => predicate(x as Category)),
178
187
  true,
179
188
  ),
180
- ),
181
- StatementFactory.constant(
182
- "passed",
183
- ts.factory.createCallExpression(
189
+ }),
190
+ StatementFactory.constant({
191
+ name: "passed",
192
+ value: ts.factory.createCallExpression(
184
193
  IdentifierFactory.access(
185
194
  ts.factory.createIdentifier("arrayPredicators"),
186
- )("filter"),
195
+ "filter",
196
+ ),
187
197
  undefined,
188
198
  [
189
199
  ts.factory.createArrowFunction(
@@ -200,7 +210,7 @@ export const check_union_array_like = <
200
210
  ),
201
211
  ],
202
212
  ),
203
- ),
213
+ }),
204
214
  ts.factory.createIfStatement(
205
215
  ts.factory.createStrictEquality(
206
216
  ExpressionFactory.number(1),
@@ -228,7 +238,7 @@ export const check_union_array_like = <
228
238
  from: ts.factory.createIdentifier("passed"),
229
239
  if: ts.factory.createIfStatement(
230
240
  ts.factory.createCallExpression(
231
- IdentifierFactory.access(array)("every"),
241
+ IdentifierFactory.access(array, "every"),
232
242
  undefined,
233
243
  [
234
244
  ts.factory.createArrowFunction(
@@ -50,7 +50,7 @@ export const prune_object_properties = (object: MetadataObject) => {
50
50
 
51
51
  return ts.factory.createForOfStatement(
52
52
  undefined,
53
- StatementFactory.constant("key").declarationList,
53
+ StatementFactory.constant({ name: "key" }).declarationList,
54
54
  ts.factory.createCallExpression(
55
55
  ts.factory.createIdentifier("Object.keys"),
56
56
  undefined,
@@ -35,4 +35,5 @@ export const random_custom = (props: {
35
35
  ),
36
36
  ],
37
37
  ),
38
- )(props.expression);
38
+ props.expression,
39
+ );
@@ -1,160 +1,162 @@
1
- import ts from "typescript";
2
-
3
- import { IdentifierFactory } from "../../factories/IdentifierFactory";
4
- import { TemplateFactory } from "../../factories/TemplateFactory";
5
-
6
- import { IExpressionEntry } from "../helpers/IExpressionEntry";
7
- import { metadata_to_pattern } from "./metadata_to_pattern";
8
-
9
- /**
10
- * @internal
11
- */
12
- export const stringify_dynamic_properties = (
13
- dynamic: IExpressionEntry<ts.Expression>[],
14
- regular: string[],
15
- ): ts.Expression => {
16
- // BASIC STATMEMENT, CHECK UNDEFINED
17
- const statements: ts.Statement[] = [
18
- ts.factory.createIfStatement(
19
- ts.factory.createStrictEquality(
20
- ts.factory.createIdentifier("undefined"),
21
- ts.factory.createIdentifier("value"),
22
- ),
23
- ts.factory.createReturnStatement(ts.factory.createStringLiteral("")),
24
- ),
25
- ];
26
-
27
- // PREPARE RETURN FUNCTION
28
- const output = () => {
29
- const mapped = ts.factory.createCallExpression(
30
- IdentifierFactory.access(
31
- ts.factory.createCallExpression(
32
- ts.factory.createIdentifier("Object.entries"),
33
- undefined,
34
- [ts.factory.createIdentifier("input")],
35
- ),
36
- )("map"),
37
- undefined,
38
- [
39
- ts.factory.createArrowFunction(
40
- undefined,
41
- undefined,
42
- [
43
- IdentifierFactory.parameter(
44
- ts.factory.createArrayBindingPattern([
45
- ts.factory.createBindingElement(undefined, undefined, "key"),
46
- ts.factory.createBindingElement(undefined, undefined, "value"),
47
- ]),
48
- ts.factory.createTypeReferenceNode("[string, any]"),
49
- ),
50
- ],
51
- undefined,
52
- undefined,
53
- ts.factory.createBlock(statements),
54
- ),
55
- ],
56
- );
57
- const filtered = ts.factory.createCallExpression(
58
- IdentifierFactory.access(mapped)("filter"),
59
- undefined,
60
- [
61
- ts.factory.createArrowFunction(
62
- undefined,
63
- undefined,
64
- [IdentifierFactory.parameter("str")],
65
- undefined,
66
- undefined,
67
- ts.factory.createStrictInequality(
68
- ts.factory.createStringLiteral(""),
69
- ts.factory.createIdentifier("str"),
70
- ),
71
- ),
72
- ],
73
- );
74
- return ts.factory.createCallExpression(
75
- IdentifierFactory.access(filtered)("join"),
76
- undefined,
77
- [ts.factory.createStringLiteral(",")],
78
- );
79
- };
80
-
81
- // WHEN REGULAR PROPERTY EXISTS
82
- if (regular.length)
83
- statements.push(
84
- ts.factory.createIfStatement(
85
- ts.factory.createCallExpression(
86
- IdentifierFactory.access(
87
- ts.factory.createArrayLiteralExpression(
88
- regular.map((key) => ts.factory.createStringLiteral(key)),
89
- ),
90
- )("some"),
91
- undefined,
92
- [
93
- ts.factory.createArrowFunction(
94
- undefined,
95
- undefined,
96
- [IdentifierFactory.parameter("regular")],
97
- undefined,
98
- undefined,
99
- ts.factory.createStrictEquality(
100
- ts.factory.createIdentifier("regular"),
101
- ts.factory.createIdentifier("key"),
102
- ),
103
- ),
104
- ],
105
- ),
106
- ts.factory.createReturnStatement(ts.factory.createStringLiteral("")),
107
- ),
108
- );
109
-
110
- // ONLY STRING TYPED KEY EXISTS
111
- const simple: boolean =
112
- dynamic.length === 1 &&
113
- dynamic[0]!.key.size() === 1 &&
114
- dynamic[0]!.key.atomics[0]?.type === "string";
115
- if (simple === true) {
116
- statements.push(stringify(dynamic[0]!));
117
- return output();
118
- }
119
-
120
- // COMPOSITE TEMPLATE LITERAL TYPES
121
- for (const entry of dynamic) {
122
- const condition: ts.IfStatement = ts.factory.createIfStatement(
123
- ts.factory.createCallExpression(
124
- ts.factory.createIdentifier(
125
- `RegExp(/${metadata_to_pattern({
126
- top: true,
127
- metadata: entry.key,
128
- })}/).test`,
129
- ),
130
- undefined,
131
- [ts.factory.createIdentifier("key")],
132
- ),
133
- stringify(entry),
134
- );
135
- statements.push(condition);
136
- }
137
- statements.push(
138
- ts.factory.createReturnStatement(ts.factory.createStringLiteral("")),
139
- );
140
-
141
- return output();
142
- };
143
-
144
- /**
145
- * @internal
146
- */
147
- const stringify = (
148
- entry: IExpressionEntry<ts.Expression>,
149
- ): ts.ReturnStatement =>
150
- ts.factory.createReturnStatement(
151
- TemplateFactory.generate([
152
- ts.factory.createCallExpression(
153
- ts.factory.createIdentifier("JSON.stringify"),
154
- [],
155
- [ts.factory.createIdentifier("key")],
156
- ),
157
- ts.factory.createStringLiteral(":"),
158
- entry.expression,
159
- ]),
160
- );
1
+ import ts from "typescript";
2
+
3
+ import { IdentifierFactory } from "../../factories/IdentifierFactory";
4
+ import { TemplateFactory } from "../../factories/TemplateFactory";
5
+
6
+ import { IExpressionEntry } from "../helpers/IExpressionEntry";
7
+ import { metadata_to_pattern } from "./metadata_to_pattern";
8
+
9
+ /**
10
+ * @internal
11
+ */
12
+ export const stringify_dynamic_properties = (
13
+ dynamic: IExpressionEntry<ts.Expression>[],
14
+ regular: string[],
15
+ ): ts.Expression => {
16
+ // BASIC STATMEMENT, CHECK UNDEFINED
17
+ const statements: ts.Statement[] = [
18
+ ts.factory.createIfStatement(
19
+ ts.factory.createStrictEquality(
20
+ ts.factory.createIdentifier("undefined"),
21
+ ts.factory.createIdentifier("value"),
22
+ ),
23
+ ts.factory.createReturnStatement(ts.factory.createStringLiteral("")),
24
+ ),
25
+ ];
26
+
27
+ // PREPARE RETURN FUNCTION
28
+ const output = () => {
29
+ const mapped = ts.factory.createCallExpression(
30
+ IdentifierFactory.access(
31
+ ts.factory.createCallExpression(
32
+ ts.factory.createIdentifier("Object.entries"),
33
+ undefined,
34
+ [ts.factory.createIdentifier("input")],
35
+ ),
36
+ "map",
37
+ ),
38
+ undefined,
39
+ [
40
+ ts.factory.createArrowFunction(
41
+ undefined,
42
+ undefined,
43
+ [
44
+ IdentifierFactory.parameter(
45
+ ts.factory.createArrayBindingPattern([
46
+ ts.factory.createBindingElement(undefined, undefined, "key"),
47
+ ts.factory.createBindingElement(undefined, undefined, "value"),
48
+ ]),
49
+ ts.factory.createTypeReferenceNode("[string, any]"),
50
+ ),
51
+ ],
52
+ undefined,
53
+ undefined,
54
+ ts.factory.createBlock(statements),
55
+ ),
56
+ ],
57
+ );
58
+ const filtered = ts.factory.createCallExpression(
59
+ IdentifierFactory.access(mapped, "filter"),
60
+ undefined,
61
+ [
62
+ ts.factory.createArrowFunction(
63
+ undefined,
64
+ undefined,
65
+ [IdentifierFactory.parameter("str")],
66
+ undefined,
67
+ undefined,
68
+ ts.factory.createStrictInequality(
69
+ ts.factory.createStringLiteral(""),
70
+ ts.factory.createIdentifier("str"),
71
+ ),
72
+ ),
73
+ ],
74
+ );
75
+ return ts.factory.createCallExpression(
76
+ IdentifierFactory.access(filtered, "join"),
77
+ undefined,
78
+ [ts.factory.createStringLiteral(",")],
79
+ );
80
+ };
81
+
82
+ // WHEN REGULAR PROPERTY EXISTS
83
+ if (regular.length)
84
+ statements.push(
85
+ ts.factory.createIfStatement(
86
+ ts.factory.createCallExpression(
87
+ IdentifierFactory.access(
88
+ ts.factory.createArrayLiteralExpression(
89
+ regular.map((key) => ts.factory.createStringLiteral(key)),
90
+ ),
91
+ "some",
92
+ ),
93
+ undefined,
94
+ [
95
+ ts.factory.createArrowFunction(
96
+ undefined,
97
+ undefined,
98
+ [IdentifierFactory.parameter("regular")],
99
+ undefined,
100
+ undefined,
101
+ ts.factory.createStrictEquality(
102
+ ts.factory.createIdentifier("regular"),
103
+ ts.factory.createIdentifier("key"),
104
+ ),
105
+ ),
106
+ ],
107
+ ),
108
+ ts.factory.createReturnStatement(ts.factory.createStringLiteral("")),
109
+ ),
110
+ );
111
+
112
+ // ONLY STRING TYPED KEY EXISTS
113
+ const simple: boolean =
114
+ dynamic.length === 1 &&
115
+ dynamic[0]!.key.size() === 1 &&
116
+ dynamic[0]!.key.atomics[0]?.type === "string";
117
+ if (simple === true) {
118
+ statements.push(stringify(dynamic[0]!));
119
+ return output();
120
+ }
121
+
122
+ // COMPOSITE TEMPLATE LITERAL TYPES
123
+ for (const entry of dynamic) {
124
+ const condition: ts.IfStatement = ts.factory.createIfStatement(
125
+ ts.factory.createCallExpression(
126
+ ts.factory.createIdentifier(
127
+ `RegExp(/${metadata_to_pattern({
128
+ top: true,
129
+ metadata: entry.key,
130
+ })}/).test`,
131
+ ),
132
+ undefined,
133
+ [ts.factory.createIdentifier("key")],
134
+ ),
135
+ stringify(entry),
136
+ );
137
+ statements.push(condition);
138
+ }
139
+ statements.push(
140
+ ts.factory.createReturnStatement(ts.factory.createStringLiteral("")),
141
+ );
142
+
143
+ return output();
144
+ };
145
+
146
+ /**
147
+ * @internal
148
+ */
149
+ const stringify = (
150
+ entry: IExpressionEntry<ts.Expression>,
151
+ ): ts.ReturnStatement =>
152
+ ts.factory.createReturnStatement(
153
+ TemplateFactory.generate([
154
+ ts.factory.createCallExpression(
155
+ ts.factory.createIdentifier("JSON.stringify"),
156
+ [],
157
+ [ts.factory.createIdentifier("key")],
158
+ ),
159
+ ts.factory.createStringLiteral(":"),
160
+ entry.expression,
161
+ ]),
162
+ );
@@ -38,7 +38,10 @@ export namespace JsonAssertParseProgrammer {
38
38
  functions: assert.functions,
39
39
  statements: [
40
40
  ...assert.statements,
41
- StatementFactory.constant("__assert", assert.arrow),
41
+ StatementFactory.constant({
42
+ name: "__assert",
43
+ value: assert.arrow,
44
+ }),
42
45
  ],
43
46
  arrow: ts.factory.createArrowFunction(
44
47
  undefined,
@@ -56,7 +59,10 @@ export namespace JsonAssertParseProgrammer {
56
59
  [
57
60
  ts.factory.createTypeReferenceNode(
58
61
  props.name ??
59
- TypeFactory.getFullName(props.context.checker)(props.type),
62
+ TypeFactory.getFullName({
63
+ checker: props.context.checker,
64
+ type: props.type,
65
+ }),
60
66
  ),
61
67
  ],
62
68
  false,
@@ -48,8 +48,14 @@ export namespace JsonAssertStringifyProgrammer {
48
48
  statements: [
49
49
  ...assert.statements,
50
50
  ...stringify.statements,
51
- StatementFactory.constant("__assert", assert.arrow),
52
- StatementFactory.constant("__stringify", stringify.arrow),
51
+ StatementFactory.constant({
52
+ name: "__assert",
53
+ value: assert.arrow,
54
+ }),
55
+ StatementFactory.constant({
56
+ name: "__stringify",
57
+ value: stringify.arrow,
58
+ }),
53
59
  ],
54
60
  arrow: ts.factory.createArrowFunction(
55
61
  undefined,
@@ -36,7 +36,10 @@ export namespace JsonIsParseProgrammer {
36
36
  functions: is.functions,
37
37
  statements: [
38
38
  ...is.statements,
39
- StatementFactory.constant("__is", is.arrow),
39
+ StatementFactory.constant({
40
+ name: "__is",
41
+ value: is.arrow,
42
+ }),
40
43
  ],
41
44
  arrow: ts.factory.createArrowFunction(
42
45
  undefined,
@@ -52,7 +55,10 @@ export namespace JsonIsParseProgrammer {
52
55
  [
53
56
  ts.factory.createTypeReferenceNode(
54
57
  props.name ??
55
- TypeFactory.getFullName(props.context.checker)(props.type),
58
+ TypeFactory.getFullName({
59
+ checker: props.context.checker,
60
+ type: props.type,
61
+ }),
56
62
  ),
57
63
  ],
58
64
  false,
@@ -54,8 +54,14 @@ export namespace JsonIsStringifyProgrammer {
54
54
  statements: [
55
55
  ...is.statements,
56
56
  ...stringify.statements,
57
- StatementFactory.constant("__is", is.arrow),
58
- StatementFactory.constant("__stringify", stringify.arrow),
57
+ StatementFactory.constant({
58
+ name: "__is",
59
+ value: is.arrow,
60
+ }),
61
+ StatementFactory.constant({
62
+ name: "__stringify",
63
+ value: stringify.arrow,
64
+ }),
59
65
  ],
60
66
  arrow: ts.factory.createArrowFunction(
61
67
  undefined,