typia 7.0.0-dev.20241001 → 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 (294) 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/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/http/HttpAssertFormDataProgrammer.js +8 -2
  96. package/lib/programmers/http/HttpAssertFormDataProgrammer.js.map +1 -1
  97. package/lib/programmers/http/HttpAssertHeadersProgrammer.js +8 -2
  98. package/lib/programmers/http/HttpAssertHeadersProgrammer.js.map +1 -1
  99. package/lib/programmers/http/HttpAssertQueryProgrammer.js +8 -2
  100. package/lib/programmers/http/HttpAssertQueryProgrammer.js.map +1 -1
  101. package/lib/programmers/http/HttpFormDataProgrammer.js +14 -8
  102. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
  103. package/lib/programmers/http/HttpHeadersProgrammer.js +20 -14
  104. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  105. package/lib/programmers/http/HttpIsFormDataProgrammer.js +12 -3
  106. package/lib/programmers/http/HttpIsFormDataProgrammer.js.map +1 -1
  107. package/lib/programmers/http/HttpIsHeadersProgrammer.js +12 -3
  108. package/lib/programmers/http/HttpIsHeadersProgrammer.js.map +1 -1
  109. package/lib/programmers/http/HttpIsQueryProgrammer.js +12 -3
  110. package/lib/programmers/http/HttpIsQueryProgrammer.js.map +1 -1
  111. package/lib/programmers/http/HttpParameterProgrammer.js +17 -10
  112. package/lib/programmers/http/HttpParameterProgrammer.js.map +1 -1
  113. package/lib/programmers/http/HttpQueryProgrammer.js +14 -8
  114. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  115. package/lib/programmers/http/HttpValidateFormDataProgrammer.js +8 -2
  116. package/lib/programmers/http/HttpValidateFormDataProgrammer.js.map +1 -1
  117. package/lib/programmers/http/HttpValidateHeadersProgrammer.js +8 -2
  118. package/lib/programmers/http/HttpValidateHeadersProgrammer.js.map +1 -1
  119. package/lib/programmers/http/HttpValidateQueryProgrammer.js +8 -2
  120. package/lib/programmers/http/HttpValidateQueryProgrammer.js.map +1 -1
  121. package/lib/programmers/internal/check_array_length.js +1 -1
  122. package/lib/programmers/internal/check_array_length.js.map +1 -1
  123. package/lib/programmers/internal/check_bigint.js +1 -1
  124. package/lib/programmers/internal/check_bigint.js.map +1 -1
  125. package/lib/programmers/internal/check_dynamic_properties.js +7 -4
  126. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  127. package/lib/programmers/internal/check_everything.js +1 -1
  128. package/lib/programmers/internal/check_everything.js.map +1 -1
  129. package/lib/programmers/internal/check_native.js +1 -1
  130. package/lib/programmers/internal/check_native.js.map +1 -1
  131. package/lib/programmers/internal/check_number.js +1 -1
  132. package/lib/programmers/internal/check_number.js.map +1 -1
  133. package/lib/programmers/internal/check_string.js +1 -1
  134. package/lib/programmers/internal/check_string.js.map +1 -1
  135. package/lib/programmers/internal/check_union_array_like.js +25 -7
  136. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  137. package/lib/programmers/internal/prune_object_properties.js +1 -1
  138. package/lib/programmers/internal/prune_object_properties.js.map +1 -1
  139. package/lib/programmers/internal/random_custom.js +1 -1
  140. package/lib/programmers/internal/random_custom.js.map +1 -1
  141. package/lib/programmers/internal/stringify_dynamic_properties.js +4 -4
  142. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  143. package/lib/programmers/json/JsonAssertParseProgrammer.js +8 -2
  144. package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
  145. package/lib/programmers/json/JsonAssertStringifyProgrammer.js +8 -2
  146. package/lib/programmers/json/JsonAssertStringifyProgrammer.js.map +1 -1
  147. package/lib/programmers/json/JsonIsParseProgrammer.js +8 -2
  148. package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
  149. package/lib/programmers/json/JsonIsStringifyProgrammer.js +8 -2
  150. package/lib/programmers/json/JsonIsStringifyProgrammer.js.map +1 -1
  151. package/lib/programmers/json/JsonStringifyProgrammer.js +50 -43
  152. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  153. package/lib/programmers/json/JsonValidateParseProgrammer.js +8 -2
  154. package/lib/programmers/json/JsonValidateParseProgrammer.js.map +1 -1
  155. package/lib/programmers/json/JsonValidateStringifyProgrammer.js +12 -3
  156. package/lib/programmers/json/JsonValidateStringifyProgrammer.js.map +1 -1
  157. package/lib/programmers/misc/MiscAssertCloneProgrammer.js +8 -2
  158. package/lib/programmers/misc/MiscAssertCloneProgrammer.js.map +1 -1
  159. package/lib/programmers/misc/MiscAssertPruneProgrammer.js +12 -3
  160. package/lib/programmers/misc/MiscAssertPruneProgrammer.js.map +1 -1
  161. package/lib/programmers/misc/MiscCloneProgrammer.js +60 -47
  162. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  163. package/lib/programmers/misc/MiscIsCloneProgrammer.js +8 -2
  164. package/lib/programmers/misc/MiscIsCloneProgrammer.js.map +1 -1
  165. package/lib/programmers/misc/MiscIsPruneProgrammer.js +8 -2
  166. package/lib/programmers/misc/MiscIsPruneProgrammer.js.map +1 -1
  167. package/lib/programmers/misc/MiscPruneProgrammer.js +49 -42
  168. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  169. package/lib/programmers/misc/MiscValidateCloneProgrammer.js +12 -3
  170. package/lib/programmers/misc/MiscValidateCloneProgrammer.js.map +1 -1
  171. package/lib/programmers/misc/MiscValidatePruneProgrammer.js +16 -4
  172. package/lib/programmers/misc/MiscValidatePruneProgrammer.js.map +1 -1
  173. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js +8 -2
  174. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js.map +1 -1
  175. package/lib/programmers/notations/NotationGeneralProgrammer.js +45 -32
  176. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  177. package/lib/programmers/notations/NotationIsGeneralProgrammer.js +8 -2
  178. package/lib/programmers/notations/NotationIsGeneralProgrammer.js.map +1 -1
  179. package/lib/programmers/notations/NotationValidateGeneralProgrammer.js +12 -3
  180. package/lib/programmers/notations/NotationValidateGeneralProgrammer.js.map +1 -1
  181. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js +8 -2
  182. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js.map +1 -1
  183. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js +8 -2
  184. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js.map +1 -1
  185. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +51 -30
  186. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  187. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +57 -41
  188. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  189. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js +12 -3
  190. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js.map +1 -1
  191. package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.js +8 -2
  192. package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.js.map +1 -1
  193. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js +8 -2
  194. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js.map +1 -1
  195. package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.js +12 -3
  196. package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.js.map +1 -1
  197. package/lib/transformers/features/llm/LlmApplicationTransformer.js +5 -2
  198. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  199. package/package.json +1 -1
  200. package/src/executable/TypiaGenerateWizard.ts +1 -1
  201. package/src/executable/TypiaSetupWizard.ts +1 -1
  202. package/src/executable/setup/ArgumentParser.ts +27 -28
  203. package/src/executable/setup/FileRetriever.ts +14 -17
  204. package/src/executable/setup/PackageManager.ts +4 -3
  205. package/src/factories/ExpressionFactory.ts +98 -84
  206. package/src/factories/IdentifierFactory.ts +26 -7
  207. package/src/factories/MetadataCollection.ts +4 -1
  208. package/src/factories/MetadataCommentTagFactory.ts +97 -88
  209. package/src/factories/MetadataFactory.ts +2 -1
  210. package/src/factories/MetadataTypeTagFactory.ts +334 -285
  211. package/src/factories/MetadataTypeTagSchemaFactory.ts +75 -52
  212. package/src/factories/NumericRangeFactory.ts +8 -8
  213. package/src/factories/StatementFactory.ts +27 -11
  214. package/src/factories/TemplateFactory.ts +29 -21
  215. package/src/factories/TypeFactory.ts +80 -58
  216. package/src/factories/internal/metadata/iterate_metadata.ts +4 -1
  217. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +6 -4
  218. package/src/factories/internal/metadata/iterate_metadata_escape.ts +5 -3
  219. package/src/factories/internal/metadata/iterate_metadata_function.ts +4 -4
  220. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +6 -3
  221. package/src/factories/internal/metadata/iterate_metadata_map.ts +4 -3
  222. package/src/factories/internal/metadata/iterate_metadata_native.ts +12 -9
  223. package/src/factories/internal/metadata/iterate_metadata_set.ts +5 -1
  224. package/src/programmers/AssertProgrammer.ts +16 -5
  225. package/src/programmers/CheckerProgrammer.ts +16 -13
  226. package/src/programmers/FeatureProgrammer.ts +8 -8
  227. package/src/programmers/IsProgrammer.ts +4 -3
  228. package/src/programmers/RandomProgrammer.ts +37 -30
  229. package/src/programmers/ValidateProgrammer.ts +17 -10
  230. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +4 -4
  231. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +4 -4
  232. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +4 -4
  233. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +7 -7
  234. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +14 -8
  235. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +7 -7
  236. package/src/programmers/helpers/CloneJoiner.ts +13 -6
  237. package/src/programmers/helpers/FunctionImporter.ts +12 -11
  238. package/src/programmers/helpers/NotationJoiner.ts +13 -6
  239. package/src/programmers/helpers/PruneJoiner.ts +3 -2
  240. package/src/programmers/helpers/RandomJoiner.ts +7 -4
  241. package/src/programmers/helpers/StringifyJoinder.ts +1 -1
  242. package/src/programmers/helpers/UnionExplorer.ts +16 -11
  243. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +8 -2
  244. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +8 -2
  245. package/src/programmers/http/HttpAssertQueryProgrammer.ts +8 -2
  246. package/src/programmers/http/HttpFormDataProgrammer.ts +10 -6
  247. package/src/programmers/http/HttpHeadersProgrammer.ts +13 -9
  248. package/src/programmers/http/HttpIsFormDataProgrammer.ts +12 -6
  249. package/src/programmers/http/HttpIsHeadersProgrammer.ts +12 -6
  250. package/src/programmers/http/HttpIsQueryProgrammer.ts +12 -6
  251. package/src/programmers/http/HttpParameterProgrammer.ts +16 -11
  252. package/src/programmers/http/HttpQueryProgrammer.ts +10 -6
  253. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +8 -2
  254. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +8 -2
  255. package/src/programmers/http/HttpValidateQueryProgrammer.ts +8 -2
  256. package/src/programmers/internal/check_array_length.ts +1 -1
  257. package/src/programmers/internal/check_bigint.ts +1 -1
  258. package/src/programmers/internal/check_dynamic_properties.ts +10 -7
  259. package/src/programmers/internal/check_everything.ts +1 -1
  260. package/src/programmers/internal/check_native.ts +1 -1
  261. package/src/programmers/internal/check_number.ts +1 -1
  262. package/src/programmers/internal/check_string.ts +1 -1
  263. package/src/programmers/internal/check_union_array_like.ts +27 -17
  264. package/src/programmers/internal/prune_object_properties.ts +1 -1
  265. package/src/programmers/internal/random_custom.ts +2 -1
  266. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -160
  267. package/src/programmers/json/JsonAssertParseProgrammer.ts +8 -2
  268. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +8 -2
  269. package/src/programmers/json/JsonIsParseProgrammer.ts +8 -2
  270. package/src/programmers/json/JsonIsStringifyProgrammer.ts +8 -2
  271. package/src/programmers/json/JsonStringifyProgrammer.ts +17 -15
  272. package/src/programmers/json/JsonValidateParseProgrammer.ts +8 -2
  273. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +12 -6
  274. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +8 -2
  275. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +12 -3
  276. package/src/programmers/misc/MiscCloneProgrammer.ts +30 -23
  277. package/src/programmers/misc/MiscIsCloneProgrammer.ts +8 -2
  278. package/src/programmers/misc/MiscIsPruneProgrammer.ts +8 -2
  279. package/src/programmers/misc/MiscPruneProgrammer.ts +16 -14
  280. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +12 -6
  281. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +16 -7
  282. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +8 -2
  283. package/src/programmers/notations/NotationGeneralProgrammer.ts +26 -17
  284. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +8 -2
  285. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +12 -6
  286. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +8 -2
  287. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +8 -2
  288. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +48 -46
  289. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +42 -34
  290. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +12 -6
  291. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +8 -2
  292. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +8 -2
  293. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +12 -6
  294. package/src/transformers/features/llm/LlmApplicationTransformer.ts +7 -6
@@ -95,9 +95,9 @@ export namespace JsonStringifyProgrammer {
95
95
  .arrays()
96
96
  .filter((a) => a.recursive)
97
97
  .map((type, i) =>
98
- StatementFactory.constant(
99
- `${props.config.prefix}a${i}`,
100
- ts.factory.createArrowFunction(
98
+ StatementFactory.constant({
99
+ name: `${props.config.prefix}a${i}`,
100
+ value: ts.factory.createArrowFunction(
101
101
  undefined,
102
102
  undefined,
103
103
  FeatureProgrammer.parameterDeclarations({
@@ -123,7 +123,7 @@ export namespace JsonStringifyProgrammer {
123
123
  },
124
124
  }),
125
125
  ),
126
- ),
126
+ }),
127
127
  );
128
128
 
129
129
  const write_tuple_functions = (props: {
@@ -136,9 +136,9 @@ export namespace JsonStringifyProgrammer {
136
136
  .tuples()
137
137
  .filter((t) => t.recursive)
138
138
  .map((tuple, i) =>
139
- StatementFactory.constant(
140
- `${props.config.prefix}t${i}`,
141
- ts.factory.createArrowFunction(
139
+ StatementFactory.constant({
140
+ name: `${props.config.prefix}t${i}`,
141
+ value: ts.factory.createArrowFunction(
142
142
  undefined,
143
143
  undefined,
144
144
  FeatureProgrammer.parameterDeclarations({
@@ -162,7 +162,7 @@ export namespace JsonStringifyProgrammer {
162
162
  },
163
163
  }),
164
164
  ),
165
- ),
165
+ }),
166
166
  );
167
167
 
168
168
  /* -----------------------------------------------------------
@@ -443,7 +443,7 @@ export namespace JsonStringifyProgrammer {
443
443
  if (props.metadata.sets.length)
444
444
  unions.push({
445
445
  type: "object",
446
- is: () => ExpressionFactory.isInstanceOf("Set")(props.input),
446
+ is: () => ExpressionFactory.isInstanceOf("Set", props.input),
447
447
  value: () => ts.factory.createStringLiteral("{}"),
448
448
  });
449
449
 
@@ -451,7 +451,7 @@ export namespace JsonStringifyProgrammer {
451
451
  if (props.metadata.maps.length)
452
452
  unions.push({
453
453
  type: "object",
454
- is: () => ExpressionFactory.isInstanceOf("Map")(props.input),
454
+ is: () => ExpressionFactory.isInstanceOf("Map", props.input),
455
455
  value: () => ts.factory.createStringLiteral("{}"),
456
456
  });
457
457
 
@@ -467,7 +467,8 @@ export namespace JsonStringifyProgrammer {
467
467
  (prop) => !prop.key.isSoleLiteral() || !prop.value.isRequired(),
468
468
  ),
469
469
  ),
470
- })(props.input),
470
+ input: props.input,
471
+ }),
471
472
  value: () =>
472
473
  explore_objects({
473
474
  ...props,
@@ -648,7 +649,7 @@ export namespace JsonStringifyProgrammer {
648
649
  const code = decode({
649
650
  ...props,
650
651
  input: ts.factory.createCallExpression(
651
- IdentifierFactory.access(props.input)("slice"),
652
+ IdentifierFactory.access(props.input, "slice"),
652
653
  undefined,
653
654
  [ExpressionFactory.number(props.tuple.elements.length - 1)],
654
655
  ),
@@ -699,7 +700,7 @@ export namespace JsonStringifyProgrammer {
699
700
  return props.explore.from !== "top"
700
701
  ? props.input
701
702
  : ts.factory.createCallExpression(
702
- IdentifierFactory.access(props.input)("toString"),
703
+ IdentifierFactory.access(props.input, "toString"),
703
704
  undefined,
704
705
  undefined,
705
706
  );
@@ -735,7 +736,7 @@ export namespace JsonStringifyProgrammer {
735
736
  return decode({
736
737
  ...props,
737
738
  input: ts.factory.createCallExpression(
738
- IdentifierFactory.access(props.input)("toJSON"),
739
+ IdentifierFactory.access(props.input, "toJSON"),
739
740
  undefined,
740
741
  [],
741
742
  ),
@@ -981,7 +982,8 @@ export namespace JsonStringifyProgrammer {
981
982
  types: {
982
983
  input: (type, name) =>
983
984
  ts.factory.createTypeReferenceNode(
984
- name ?? TypeFactory.getFullName(props.context.checker)(type),
985
+ name ??
986
+ TypeFactory.getFullName({ checker: props.context.checker, type }),
985
987
  ),
986
988
  output: () => TypeFactory.keyword("string"),
987
989
  },
@@ -38,7 +38,10 @@ export namespace JsonValidateParseProgrammer {
38
38
  functions: validate.functions,
39
39
  statements: [
40
40
  ...validate.statements,
41
- StatementFactory.constant("__validate", validate.arrow),
41
+ StatementFactory.constant({
42
+ name: "__validate",
43
+ value: validate.arrow,
44
+ }),
42
45
  ],
43
46
  arrow: ts.factory.createArrowFunction(
44
47
  undefined,
@@ -47,7 +50,10 @@ export namespace JsonValidateParseProgrammer {
47
50
  ts.factory.createTypeReferenceNode(
48
51
  `typia.IValidation<typia.Primitive<${
49
52
  props.name ??
50
- TypeFactory.getFullName(props.context.checker)(props.type)
53
+ TypeFactory.getFullName({
54
+ checker: props.context.checker,
55
+ type: props.type,
56
+ })
51
57
  }>>`,
52
58
  ),
53
59
  undefined,
@@ -48,8 +48,14 @@ export namespace JsonValidateStringifyProgrammer {
48
48
  statements: [
49
49
  ...validate.statements,
50
50
  ...stringify.statements,
51
- StatementFactory.constant("__validate", validate.arrow),
52
- StatementFactory.constant("__stringify", stringify.arrow),
51
+ StatementFactory.constant({
52
+ name: "__validate",
53
+ value: validate.arrow,
54
+ }),
55
+ StatementFactory.constant({
56
+ name: "__stringify",
57
+ value: stringify.arrow,
58
+ }),
53
59
  ],
54
60
  arrow: ts.factory.createArrowFunction(
55
61
  undefined,
@@ -60,9 +66,9 @@ export namespace JsonValidateStringifyProgrammer {
60
66
  ]),
61
67
  undefined,
62
68
  ts.factory.createBlock([
63
- StatementFactory.constant(
64
- "result",
65
- ts.factory.createAsExpression(
69
+ StatementFactory.constant({
70
+ name: "result",
71
+ value: ts.factory.createAsExpression(
66
72
  ts.factory.createCallExpression(
67
73
  ts.factory.createIdentifier("__validate"),
68
74
  undefined,
@@ -70,7 +76,7 @@ export namespace JsonValidateStringifyProgrammer {
70
76
  ),
71
77
  TypeFactory.keyword("any"),
72
78
  ),
73
- ),
79
+ }),
74
80
  ts.factory.createIfStatement(
75
81
  ts.factory.createIdentifier("result.success"),
76
82
  ts.factory.createExpressionStatement(
@@ -39,8 +39,14 @@ export namespace MiscAssertCloneProgrammer {
39
39
  statements: [
40
40
  ...assert.statements,
41
41
  ...clone.statements,
42
- StatementFactory.constant("__assert", assert.arrow),
43
- StatementFactory.constant("__clone", clone.arrow),
42
+ StatementFactory.constant({
43
+ name: "__assert",
44
+ value: assert.arrow,
45
+ }),
46
+ StatementFactory.constant({
47
+ name: "__clone",
48
+ value: clone.arrow,
49
+ }),
44
50
  ],
45
51
  arrow: ts.factory.createArrowFunction(
46
52
  undefined,
@@ -39,8 +39,14 @@ export namespace MiscAssertPruneProgrammer {
39
39
  statements: [
40
40
  ...assert.statements,
41
41
  ...prune.statements,
42
- StatementFactory.constant("__assert", assert.arrow),
43
- StatementFactory.constant("__prune", prune.arrow),
42
+ StatementFactory.constant({
43
+ name: "__assert",
44
+ value: assert.arrow,
45
+ }),
46
+ StatementFactory.constant({
47
+ name: "__prune",
48
+ value: prune.arrow,
49
+ }),
44
50
  ],
45
51
  arrow: ts.factory.createArrowFunction(
46
52
  undefined,
@@ -51,7 +57,10 @@ export namespace MiscAssertPruneProgrammer {
51
57
  ],
52
58
  ts.factory.createTypeReferenceNode(
53
59
  props.name ??
54
- TypeFactory.getFullName(props.context.checker)(props.type),
60
+ TypeFactory.getFullName({
61
+ checker: props.context.checker,
62
+ type: props.type,
63
+ }),
55
64
  ),
56
65
  undefined,
57
66
  ts.factory.createBlock(
@@ -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
  /* -----------------------------------------------------------
@@ -847,7 +849,8 @@ export namespace MiscCloneProgrammer {
847
849
  types: {
848
850
  input: (type, name) =>
849
851
  ts.factory.createTypeReferenceNode(
850
- name ?? TypeFactory.getFullName(props.context.checker)(type),
852
+ name ??
853
+ TypeFactory.getFullName({ checker: props.context.checker, type }),
851
854
  ),
852
855
  output: (type, name) =>
853
856
  ts.factory.createImportTypeNode(
@@ -858,7 +861,11 @@ export namespace MiscCloneProgrammer {
858
861
  ts.factory.createIdentifier("Resolved"),
859
862
  [
860
863
  ts.factory.createTypeReferenceNode(
861
- name ?? TypeFactory.getFullName(props.context.checker)(type),
864
+ name ??
865
+ TypeFactory.getFullName({
866
+ checker: props.context.checker,
867
+ type,
868
+ }),
862
869
  ),
863
870
  ],
864
871
  false,
@@ -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,
@@ -85,9 +85,9 @@ export namespace MiscPruneProgrammer {
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 MiscPruneProgrammer {
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 MiscPruneProgrammer {
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 MiscPruneProgrammer {
152
152
  },
153
153
  }),
154
154
  ),
155
- ),
155
+ }),
156
156
  );
157
157
 
158
158
  /* -----------------------------------------------------------
@@ -221,19 +221,19 @@ export namespace MiscPruneProgrammer {
221
221
  for (const native of props.metadata.natives)
222
222
  unions.push({
223
223
  type: "native",
224
- is: () => ExpressionFactory.isInstanceOf(native)(props.input),
224
+ is: () => ExpressionFactory.isInstanceOf(native, props.input),
225
225
  value: () => ts.factory.createReturnStatement(),
226
226
  });
227
227
  if (props.metadata.sets.length)
228
228
  unions.push({
229
229
  type: "set",
230
- is: () => ExpressionFactory.isInstanceOf("Set")(props.input),
230
+ is: () => ExpressionFactory.isInstanceOf("Set", props.input),
231
231
  value: () => ts.factory.createReturnStatement(),
232
232
  });
233
233
  if (props.metadata.maps.length)
234
234
  unions.push({
235
235
  type: "map",
236
- is: () => ExpressionFactory.isInstanceOf("Map")(props.input),
236
+ is: () => ExpressionFactory.isInstanceOf("Map", props.input),
237
237
  value: () => ts.factory.createReturnStatement(),
238
238
  });
239
239
 
@@ -245,7 +245,8 @@ export namespace MiscPruneProgrammer {
245
245
  ExpressionFactory.isObject({
246
246
  checkNull: true,
247
247
  checkArray: false,
248
- })(props.input),
248
+ input: props.input,
249
+ }),
249
250
  value: () =>
250
251
  explore_objects({
251
252
  ...props,
@@ -400,7 +401,7 @@ export namespace MiscPruneProgrammer {
400
401
  config: props.config,
401
402
  importer: props.importer,
402
403
  input: ts.factory.createCallExpression(
403
- IdentifierFactory.access(props.input)("slice"),
404
+ IdentifierFactory.access(props.input, "slice"),
404
405
  undefined,
405
406
  [ExpressionFactory.number(props.tuple.elements.length - 1)],
406
407
  ),
@@ -580,7 +581,8 @@ export namespace MiscPruneProgrammer {
580
581
  types: {
581
582
  input: (type, name) =>
582
583
  ts.factory.createTypeReferenceNode(
583
- name ?? TypeFactory.getFullName(props.context.checker)(type),
584
+ name ??
585
+ TypeFactory.getFullName({ checker: props.context.checker, type }),
584
586
  ),
585
587
  output: () => TypeFactory.keyword("void"),
586
588
  },
@@ -38,8 +38,14 @@ export namespace MiscValidateCloneProgrammer {
38
38
  statements: [
39
39
  ...validate.statements,
40
40
  ...clone.statements,
41
- StatementFactory.constant("__validate", validate.arrow),
42
- StatementFactory.constant("__clone", clone.arrow),
41
+ StatementFactory.constant({
42
+ name: "__validate",
43
+ value: validate.arrow,
44
+ }),
45
+ StatementFactory.constant({
46
+ name: "__clone",
47
+ value: clone.arrow,
48
+ }),
43
49
  ],
44
50
  arrow: ts.factory.createArrowFunction(
45
51
  undefined,
@@ -51,9 +57,9 @@ export namespace MiscValidateCloneProgrammer {
51
57
  undefined,
52
58
  ts.factory.createBlock(
53
59
  [
54
- StatementFactory.constant(
55
- "result",
56
- ts.factory.createAsExpression(
60
+ StatementFactory.constant({
61
+ name: "result",
62
+ value: ts.factory.createAsExpression(
57
63
  ts.factory.createCallExpression(
58
64
  ts.factory.createIdentifier("__validate"),
59
65
  undefined,
@@ -61,7 +67,7 @@ export namespace MiscValidateCloneProgrammer {
61
67
  ),
62
68
  TypeFactory.keyword("any"),
63
69
  ),
64
- ),
70
+ }),
65
71
  ts.factory.createIfStatement(
66
72
  ts.factory.createIdentifier("result.success"),
67
73
  ts.factory.createExpressionStatement(
@@ -39,8 +39,14 @@ export namespace MiscValidatePruneProgrammer {
39
39
  statements: [
40
40
  ...validate.statements,
41
41
  ...prune.statements,
42
- StatementFactory.constant("__validate", validate.arrow),
43
- StatementFactory.constant("__prune", prune.arrow),
42
+ StatementFactory.constant({
43
+ name: "__validate",
44
+ value: validate.arrow,
45
+ }),
46
+ StatementFactory.constant({
47
+ name: "__prune",
48
+ value: prune.arrow,
49
+ }),
44
50
  ],
45
51
  arrow: ts.factory.createArrowFunction(
46
52
  undefined,
@@ -49,20 +55,23 @@ export namespace MiscValidatePruneProgrammer {
49
55
  ts.factory.createTypeReferenceNode(
50
56
  `typia.IValidation<${
51
57
  props.name ??
52
- TypeFactory.getFullName(props.context.checker)(props.type)
58
+ TypeFactory.getFullName({
59
+ checker: props.context.checker,
60
+ type: props.type,
61
+ })
53
62
  }>`,
54
63
  ),
55
64
  undefined,
56
65
  ts.factory.createBlock(
57
66
  [
58
- StatementFactory.constant(
59
- "result",
60
- ts.factory.createCallExpression(
67
+ StatementFactory.constant({
68
+ name: "result",
69
+ value: ts.factory.createCallExpression(
61
70
  ts.factory.createIdentifier("__validate"),
62
71
  undefined,
63
72
  [ts.factory.createIdentifier("input")],
64
73
  ),
65
- ),
74
+ }),
66
75
  ts.factory.createIfStatement(
67
76
  ts.factory.createIdentifier("result.success"),
68
77
  ts.factory.createExpressionStatement(
@@ -45,8 +45,14 @@ export namespace NotationAssertGeneralProgrammer {
45
45
  statements: [
46
46
  ...assert.statements,
47
47
  ...notation.statements,
48
- StatementFactory.constant("__assert", assert.arrow),
49
- StatementFactory.constant("__notation", notation.arrow),
48
+ StatementFactory.constant({
49
+ name: "__assert",
50
+ value: assert.arrow,
51
+ }),
52
+ StatementFactory.constant({
53
+ name: "__notation",
54
+ value: notation.arrow,
55
+ }),
50
56
  ],
51
57
  arrow: ts.factory.createArrowFunction(
52
58
  undefined,