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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. package/lib/executable/TypiaGenerateWizard.js +1 -1
  2. package/lib/executable/TypiaGenerateWizard.js.map +1 -1
  3. package/lib/executable/TypiaSetupWizard.js +1 -1
  4. package/lib/executable/TypiaSetupWizard.js.map +1 -1
  5. package/lib/executable/setup/ArgumentParser.d.ts +1 -1
  6. package/lib/executable/setup/ArgumentParser.js +31 -33
  7. package/lib/executable/setup/ArgumentParser.js.map +1 -1
  8. package/lib/executable/setup/FileRetriever.d.ts +5 -2
  9. package/lib/executable/setup/FileRetriever.js +12 -21
  10. package/lib/executable/setup/FileRetriever.js.map +1 -1
  11. package/lib/executable/setup/PackageManager.js +4 -1
  12. package/lib/executable/setup/PackageManager.js.map +1 -1
  13. package/lib/factories/ExpressionFactory.d.ts +14 -7
  14. package/lib/factories/ExpressionFactory.js +26 -34
  15. package/lib/factories/ExpressionFactory.js.map +1 -1
  16. package/lib/factories/IdentifierFactory.d.ts +2 -2
  17. package/lib/factories/IdentifierFactory.js +10 -6
  18. package/lib/factories/IdentifierFactory.js.map +1 -1
  19. package/lib/factories/MetadataCollection.js +4 -1
  20. package/lib/factories/MetadataCollection.js.map +1 -1
  21. package/lib/factories/MetadataCommentTagFactory.js +133 -128
  22. package/lib/factories/MetadataCommentTagFactory.js.map +1 -1
  23. package/lib/factories/MetadataFactory.js +1 -1
  24. package/lib/factories/MetadataFactory.js.map +1 -1
  25. package/lib/factories/MetadataTypeTagFactory.d.ts +14 -2
  26. package/lib/factories/MetadataTypeTagFactory.js +312 -267
  27. package/lib/factories/MetadataTypeTagFactory.js.map +1 -1
  28. package/lib/factories/MetadataTypeTagSchemaFactory.d.ts +4 -1
  29. package/lib/factories/MetadataTypeTagSchemaFactory.js +70 -61
  30. package/lib/factories/MetadataTypeTagSchemaFactory.js.map +1 -1
  31. package/lib/factories/NumericRangeFactory.d.ts +2 -2
  32. package/lib/factories/NumericRangeFactory.js +2 -10
  33. package/lib/factories/NumericRangeFactory.js.map +1 -1
  34. package/lib/factories/StatementFactory.d.ts +14 -3
  35. package/lib/factories/StatementFactory.js +16 -8
  36. package/lib/factories/StatementFactory.js.map +1 -1
  37. package/lib/factories/TemplateFactory.js +24 -18
  38. package/lib/factories/TemplateFactory.js.map +1 -1
  39. package/lib/factories/TypeFactory.d.ts +10 -2
  40. package/lib/factories/TypeFactory.js +65 -53
  41. package/lib/factories/TypeFactory.js.map +1 -1
  42. package/lib/factories/internal/metadata/iterate_metadata.js +4 -1
  43. package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
  44. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js +16 -11
  45. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -1
  46. package/lib/factories/internal/metadata/iterate_metadata_escape.js +5 -1
  47. package/lib/factories/internal/metadata/iterate_metadata_escape.js.map +1 -1
  48. package/lib/factories/internal/metadata/iterate_metadata_function.js.map +1 -1
  49. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +6 -1
  50. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  51. package/lib/factories/internal/metadata/iterate_metadata_map.js +5 -1
  52. package/lib/factories/internal/metadata/iterate_metadata_map.js.map +1 -1
  53. package/lib/factories/internal/metadata/iterate_metadata_native.js +11 -3
  54. package/lib/factories/internal/metadata/iterate_metadata_native.js.map +1 -1
  55. package/lib/factories/internal/metadata/iterate_metadata_set.js +5 -1
  56. package/lib/factories/internal/metadata/iterate_metadata_set.js.map +1 -1
  57. package/lib/index.mjs +25 -25
  58. package/lib/index.mjs.map +1 -1
  59. package/lib/programmers/AssertProgrammer.js +36 -22
  60. package/lib/programmers/AssertProgrammer.js.map +1 -1
  61. package/lib/programmers/CheckerProgrammer.js +316 -251
  62. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  63. package/lib/programmers/FeatureProgrammer.js +34 -20
  64. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  65. package/lib/programmers/IsProgrammer.js +41 -22
  66. package/lib/programmers/IsProgrammer.js.map +1 -1
  67. package/lib/programmers/RandomProgrammer.js +171 -135
  68. package/lib/programmers/RandomProgrammer.js.map +1 -1
  69. package/lib/programmers/TypiaProgrammer.d.ts +2 -2
  70. package/lib/programmers/TypiaProgrammer.js +79 -75
  71. package/lib/programmers/TypiaProgrammer.js.map +1 -1
  72. package/lib/programmers/ValidateProgrammer.js +55 -24
  73. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  74. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js +30 -15
  75. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js.map +1 -1
  76. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js +16 -13
  77. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js.map +1 -1
  78. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js +11 -8
  79. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js.map +1 -1
  80. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js +8 -2
  81. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js.map +1 -1
  82. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js +11 -5
  83. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js.map +1 -1
  84. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js +8 -2
  85. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js.map +1 -1
  86. package/lib/programmers/helpers/CloneJoiner.js +13 -4
  87. package/lib/programmers/helpers/CloneJoiner.js.map +1 -1
  88. package/lib/programmers/helpers/FunctionImporter.js +10 -7
  89. package/lib/programmers/helpers/FunctionImporter.js.map +1 -1
  90. package/lib/programmers/helpers/NotationJoiner.d.ts +2 -1
  91. package/lib/programmers/helpers/NotationJoiner.js +40 -33
  92. package/lib/programmers/helpers/NotationJoiner.js.map +1 -1
  93. package/lib/programmers/helpers/PruneJoiner.js +6 -3
  94. package/lib/programmers/helpers/PruneJoiner.js.map +1 -1
  95. package/lib/programmers/helpers/RandomJoiner.d.ts +1 -1
  96. package/lib/programmers/helpers/RandomJoiner.js +4 -1
  97. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  98. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  99. package/lib/programmers/helpers/StringifyJoinder.js +5 -2
  100. package/lib/programmers/helpers/StringifyJoinder.js.map +1 -1
  101. package/lib/programmers/helpers/StringifyPredicator.d.ts +1 -1
  102. package/lib/programmers/helpers/StringifyPredicator.js +4 -3
  103. package/lib/programmers/helpers/StringifyPredicator.js.map +1 -1
  104. package/lib/programmers/helpers/UnionExplorer.d.ts +52 -12
  105. package/lib/programmers/helpers/UnionExplorer.js +183 -144
  106. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  107. package/lib/programmers/helpers/UnionPredicator.d.ts +1 -1
  108. package/lib/programmers/helpers/UnionPredicator.js +7 -7
  109. package/lib/programmers/http/HttpAssertFormDataProgrammer.js +8 -2
  110. package/lib/programmers/http/HttpAssertFormDataProgrammer.js.map +1 -1
  111. package/lib/programmers/http/HttpAssertHeadersProgrammer.js +8 -2
  112. package/lib/programmers/http/HttpAssertHeadersProgrammer.js.map +1 -1
  113. package/lib/programmers/http/HttpAssertQueryProgrammer.js +8 -2
  114. package/lib/programmers/http/HttpAssertQueryProgrammer.js.map +1 -1
  115. package/lib/programmers/http/HttpFormDataProgrammer.js +84 -71
  116. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
  117. package/lib/programmers/http/HttpHeadersProgrammer.js +76 -69
  118. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  119. package/lib/programmers/http/HttpIsFormDataProgrammer.js +12 -3
  120. package/lib/programmers/http/HttpIsFormDataProgrammer.js.map +1 -1
  121. package/lib/programmers/http/HttpIsHeadersProgrammer.js +12 -3
  122. package/lib/programmers/http/HttpIsHeadersProgrammer.js.map +1 -1
  123. package/lib/programmers/http/HttpIsQueryProgrammer.js +12 -3
  124. package/lib/programmers/http/HttpIsQueryProgrammer.js.map +1 -1
  125. package/lib/programmers/http/HttpParameterProgrammer.js +17 -10
  126. package/lib/programmers/http/HttpParameterProgrammer.js.map +1 -1
  127. package/lib/programmers/http/HttpQueryProgrammer.js +76 -63
  128. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  129. package/lib/programmers/http/HttpValidateFormDataProgrammer.js +8 -2
  130. package/lib/programmers/http/HttpValidateFormDataProgrammer.js.map +1 -1
  131. package/lib/programmers/http/HttpValidateHeadersProgrammer.js +8 -2
  132. package/lib/programmers/http/HttpValidateHeadersProgrammer.js.map +1 -1
  133. package/lib/programmers/http/HttpValidateQueryProgrammer.js +8 -2
  134. package/lib/programmers/http/HttpValidateQueryProgrammer.js.map +1 -1
  135. package/lib/programmers/internal/application_escaped.js +4 -4
  136. package/lib/programmers/internal/application_escaped.js.map +1 -1
  137. package/lib/programmers/internal/application_templates.js +8 -2
  138. package/lib/programmers/internal/application_templates.js.map +1 -1
  139. package/lib/programmers/internal/application_union_discriminator.d.ts +1 -1
  140. package/lib/programmers/internal/application_union_discriminator.js +6 -6
  141. package/lib/programmers/internal/application_union_discriminator.js.map +1 -1
  142. package/lib/programmers/internal/application_v30_object.js +6 -3
  143. package/lib/programmers/internal/application_v30_object.js.map +1 -1
  144. package/lib/programmers/internal/application_v31_object.js +4 -1
  145. package/lib/programmers/internal/application_v31_object.js.map +1 -1
  146. package/lib/programmers/internal/check_array_length.js +21 -26
  147. package/lib/programmers/internal/check_array_length.js.map +1 -1
  148. package/lib/programmers/internal/check_bigint.js +18 -26
  149. package/lib/programmers/internal/check_bigint.js.map +1 -1
  150. package/lib/programmers/internal/check_dynamic_key.d.ts +1 -5
  151. package/lib/programmers/internal/check_dynamic_key.js +109 -91
  152. package/lib/programmers/internal/check_dynamic_key.js.map +1 -1
  153. package/lib/programmers/internal/check_dynamic_properties.js +92 -91
  154. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  155. package/lib/programmers/internal/check_everything.js +1 -1
  156. package/lib/programmers/internal/check_everything.js.map +1 -1
  157. package/lib/programmers/internal/check_native.js +8 -5
  158. package/lib/programmers/internal/check_native.js.map +1 -1
  159. package/lib/programmers/internal/check_number.js +59 -65
  160. package/lib/programmers/internal/check_number.js.map +1 -1
  161. package/lib/programmers/internal/check_object.js +31 -22
  162. package/lib/programmers/internal/check_object.js.map +1 -1
  163. package/lib/programmers/internal/check_string.js +18 -26
  164. package/lib/programmers/internal/check_string.js.map +1 -1
  165. package/lib/programmers/internal/check_template.js +20 -21
  166. package/lib/programmers/internal/check_template.js.map +1 -1
  167. package/lib/programmers/internal/check_union_array_like.js +86 -53
  168. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  169. package/lib/programmers/internal/decode_union_object.js +59 -49
  170. package/lib/programmers/internal/decode_union_object.js.map +1 -1
  171. package/lib/programmers/internal/feature_object_entries.js +31 -37
  172. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  173. package/lib/programmers/internal/llm_schema_escaped.js +29 -11
  174. package/lib/programmers/internal/llm_schema_escaped.js.map +1 -1
  175. package/lib/programmers/internal/llm_schema_object.js +4 -1
  176. package/lib/programmers/internal/llm_schema_object.js.map +1 -1
  177. package/lib/programmers/internal/metadata_to_pattern.js +44 -41
  178. package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
  179. package/lib/programmers/internal/postfix_of_tuple.d.ts +1 -1
  180. package/lib/programmers/internal/postfix_of_tuple.js +3 -0
  181. package/lib/programmers/internal/postfix_of_tuple.js.map +1 -1
  182. package/lib/programmers/internal/prune_object_properties.js +7 -4
  183. package/lib/programmers/internal/prune_object_properties.js.map +1 -1
  184. package/lib/programmers/internal/random_custom.js +8 -14
  185. package/lib/programmers/internal/random_custom.js.map +1 -1
  186. package/lib/programmers/internal/stringify_dynamic_properties.js +8 -5
  187. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  188. package/lib/programmers/internal/stringify_regular_properties.js +4 -4
  189. package/lib/programmers/internal/stringify_regular_properties.js.map +1 -1
  190. package/lib/programmers/internal/template_to_pattern.js +10 -5
  191. package/lib/programmers/internal/template_to_pattern.js.map +1 -1
  192. package/lib/programmers/internal/wrap_metadata_rest_tuple.d.ts +1 -2
  193. package/lib/programmers/internal/wrap_metadata_rest_tuple.js +3 -0
  194. package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -1
  195. package/lib/programmers/json/JsonAssertParseProgrammer.js +8 -2
  196. package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
  197. package/lib/programmers/json/JsonAssertStringifyProgrammer.js +8 -2
  198. package/lib/programmers/json/JsonAssertStringifyProgrammer.js.map +1 -1
  199. package/lib/programmers/json/JsonIsParseProgrammer.js +8 -2
  200. package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
  201. package/lib/programmers/json/JsonIsStringifyProgrammer.js +8 -2
  202. package/lib/programmers/json/JsonIsStringifyProgrammer.js.map +1 -1
  203. package/lib/programmers/json/JsonStringifyProgrammer.js +126 -95
  204. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  205. package/lib/programmers/json/JsonValidateParseProgrammer.js +8 -2
  206. package/lib/programmers/json/JsonValidateParseProgrammer.js.map +1 -1
  207. package/lib/programmers/json/JsonValidateStringifyProgrammer.js +12 -3
  208. package/lib/programmers/json/JsonValidateStringifyProgrammer.js.map +1 -1
  209. package/lib/programmers/misc/MiscAssertCloneProgrammer.js +8 -2
  210. package/lib/programmers/misc/MiscAssertCloneProgrammer.js.map +1 -1
  211. package/lib/programmers/misc/MiscAssertPruneProgrammer.js +12 -3
  212. package/lib/programmers/misc/MiscAssertPruneProgrammer.js.map +1 -1
  213. package/lib/programmers/misc/MiscCloneProgrammer.js +203 -162
  214. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  215. package/lib/programmers/misc/MiscIsCloneProgrammer.js +8 -2
  216. package/lib/programmers/misc/MiscIsCloneProgrammer.js.map +1 -1
  217. package/lib/programmers/misc/MiscIsPruneProgrammer.js +8 -2
  218. package/lib/programmers/misc/MiscIsPruneProgrammer.js.map +1 -1
  219. package/lib/programmers/misc/MiscPruneProgrammer.js +114 -92
  220. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  221. package/lib/programmers/misc/MiscValidateCloneProgrammer.js +12 -3
  222. package/lib/programmers/misc/MiscValidateCloneProgrammer.js.map +1 -1
  223. package/lib/programmers/misc/MiscValidatePruneProgrammer.js +16 -4
  224. package/lib/programmers/misc/MiscValidatePruneProgrammer.js.map +1 -1
  225. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js +8 -2
  226. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js.map +1 -1
  227. package/lib/programmers/notations/NotationGeneralProgrammer.d.ts +4 -1
  228. package/lib/programmers/notations/NotationGeneralProgrammer.js +209 -145
  229. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  230. package/lib/programmers/notations/NotationIsGeneralProgrammer.js +8 -2
  231. package/lib/programmers/notations/NotationIsGeneralProgrammer.js.map +1 -1
  232. package/lib/programmers/notations/NotationValidateGeneralProgrammer.js +12 -3
  233. package/lib/programmers/notations/NotationValidateGeneralProgrammer.js.map +1 -1
  234. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js +8 -2
  235. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js.map +1 -1
  236. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js +8 -2
  237. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js.map +1 -1
  238. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +51 -30
  239. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  240. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +89 -65
  241. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  242. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js +12 -3
  243. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js.map +1 -1
  244. package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.js +8 -2
  245. package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.js.map +1 -1
  246. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js +8 -2
  247. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js.map +1 -1
  248. package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.js +12 -3
  249. package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.js.map +1 -1
  250. package/lib/transformers/features/llm/LlmApplicationTransformer.js +5 -2
  251. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  252. package/lib/utils/NamingConvention/NamingConvention.js +41 -47
  253. package/lib/utils/NamingConvention/NamingConvention.js.map +1 -1
  254. package/package.json +1 -1
  255. package/src/executable/TypiaGenerateWizard.ts +1 -1
  256. package/src/executable/TypiaSetupWizard.ts +1 -1
  257. package/src/executable/setup/ArgumentParser.ts +27 -28
  258. package/src/executable/setup/FileRetriever.ts +14 -17
  259. package/src/executable/setup/PackageManager.ts +4 -3
  260. package/src/factories/ExpressionFactory.ts +98 -84
  261. package/src/factories/IdentifierFactory.ts +26 -7
  262. package/src/factories/MetadataCollection.ts +4 -1
  263. package/src/factories/MetadataCommentTagFactory.ts +97 -88
  264. package/src/factories/MetadataFactory.ts +2 -1
  265. package/src/factories/MetadataTypeTagFactory.ts +334 -285
  266. package/src/factories/MetadataTypeTagSchemaFactory.ts +75 -52
  267. package/src/factories/NumericRangeFactory.ts +8 -8
  268. package/src/factories/StatementFactory.ts +27 -11
  269. package/src/factories/TemplateFactory.ts +29 -21
  270. package/src/factories/TypeFactory.ts +80 -58
  271. package/src/factories/internal/metadata/iterate_metadata.ts +4 -1
  272. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +6 -4
  273. package/src/factories/internal/metadata/iterate_metadata_escape.ts +5 -3
  274. package/src/factories/internal/metadata/iterate_metadata_function.ts +4 -4
  275. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +6 -3
  276. package/src/factories/internal/metadata/iterate_metadata_map.ts +4 -3
  277. package/src/factories/internal/metadata/iterate_metadata_native.ts +12 -9
  278. package/src/factories/internal/metadata/iterate_metadata_set.ts +5 -1
  279. package/src/programmers/AssertProgrammer.ts +46 -32
  280. package/src/programmers/CheckerProgrammer.ts +295 -261
  281. package/src/programmers/FeatureProgrammer.ts +25 -23
  282. package/src/programmers/IsProgrammer.ts +38 -23
  283. package/src/programmers/RandomProgrammer.ts +55 -39
  284. package/src/programmers/TypiaProgrammer.ts +48 -34
  285. package/src/programmers/ValidateProgrammer.ts +67 -37
  286. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +4 -4
  287. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +4 -4
  288. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +4 -4
  289. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +7 -7
  290. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +14 -8
  291. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +7 -7
  292. package/src/programmers/helpers/CloneJoiner.ts +17 -7
  293. package/src/programmers/helpers/FunctionImporter.ts +12 -11
  294. package/src/programmers/helpers/NotationJoiner.ts +91 -82
  295. package/src/programmers/helpers/ProtobufUtil.ts +2 -2
  296. package/src/programmers/helpers/PruneJoiner.ts +7 -3
  297. package/src/programmers/helpers/RandomJoiner.ts +12 -6
  298. package/src/programmers/helpers/RandomRanger.ts +8 -1
  299. package/src/programmers/helpers/StringifyJoinder.ts +5 -2
  300. package/src/programmers/helpers/StringifyPredicator.ts +4 -3
  301. package/src/programmers/helpers/UnionExplorer.ts +287 -205
  302. package/src/programmers/helpers/UnionPredicator.ts +5 -5
  303. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +8 -2
  304. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +8 -2
  305. package/src/programmers/http/HttpAssertQueryProgrammer.ts +8 -2
  306. package/src/programmers/http/HttpFormDataProgrammer.ts +139 -114
  307. package/src/programmers/http/HttpHeadersProgrammer.ts +150 -121
  308. package/src/programmers/http/HttpIsFormDataProgrammer.ts +12 -6
  309. package/src/programmers/http/HttpIsHeadersProgrammer.ts +12 -6
  310. package/src/programmers/http/HttpIsQueryProgrammer.ts +12 -6
  311. package/src/programmers/http/HttpParameterProgrammer.ts +16 -11
  312. package/src/programmers/http/HttpQueryProgrammer.ts +141 -116
  313. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +8 -2
  314. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +8 -2
  315. package/src/programmers/http/HttpValidateQueryProgrammer.ts +8 -2
  316. package/src/programmers/internal/application_escaped.ts +6 -6
  317. package/src/programmers/internal/application_templates.ts +8 -6
  318. package/src/programmers/internal/application_union_discriminator.ts +6 -6
  319. package/src/programmers/internal/application_v30_object.ts +6 -3
  320. package/src/programmers/internal/application_v31_object.ts +4 -1
  321. package/src/programmers/internal/application_v31_tuple.ts +1 -1
  322. package/src/programmers/internal/check_array_length.ts +31 -30
  323. package/src/programmers/internal/check_bigint.ts +31 -31
  324. package/src/programmers/internal/check_dynamic_key.ts +155 -126
  325. package/src/programmers/internal/check_dynamic_properties.ts +155 -154
  326. package/src/programmers/internal/check_everything.ts +1 -1
  327. package/src/programmers/internal/check_native.ts +11 -5
  328. package/src/programmers/internal/check_number.ts +88 -84
  329. package/src/programmers/internal/check_object.ts +45 -31
  330. package/src/programmers/internal/check_string.ts +31 -30
  331. package/src/programmers/internal/check_template.ts +34 -32
  332. package/src/programmers/internal/check_union_array_like.ts +255 -228
  333. package/src/programmers/internal/decode_union_object.ts +92 -75
  334. package/src/programmers/internal/feature_object_entries.ts +43 -46
  335. package/src/programmers/internal/llm_schema_escaped.ts +36 -13
  336. package/src/programmers/internal/llm_schema_object.ts +4 -1
  337. package/src/programmers/internal/metadata_to_pattern.ts +31 -23
  338. package/src/programmers/internal/postfix_of_tuple.ts +3 -0
  339. package/src/programmers/internal/prune_object_properties.ts +7 -4
  340. package/src/programmers/internal/random_custom.ts +25 -23
  341. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -157
  342. package/src/programmers/internal/stringify_regular_properties.ts +7 -7
  343. package/src/programmers/internal/template_to_pattern.ts +12 -4
  344. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +3 -0
  345. package/src/programmers/json/JsonAssertParseProgrammer.ts +8 -2
  346. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +8 -2
  347. package/src/programmers/json/JsonIsParseProgrammer.ts +8 -2
  348. package/src/programmers/json/JsonIsStringifyProgrammer.ts +8 -2
  349. package/src/programmers/json/JsonStringifyProgrammer.ts +88 -66
  350. package/src/programmers/json/JsonValidateParseProgrammer.ts +8 -2
  351. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +12 -6
  352. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +8 -2
  353. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +12 -3
  354. package/src/programmers/misc/MiscCloneProgrammer.ts +186 -155
  355. package/src/programmers/misc/MiscIsCloneProgrammer.ts +8 -2
  356. package/src/programmers/misc/MiscIsPruneProgrammer.ts +8 -2
  357. package/src/programmers/misc/MiscPruneProgrammer.ts +77 -63
  358. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +12 -6
  359. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +16 -7
  360. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +8 -2
  361. package/src/programmers/notations/NotationGeneralProgrammer.ts +218 -160
  362. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +8 -2
  363. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +12 -6
  364. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +8 -2
  365. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +8 -2
  366. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +48 -46
  367. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +67 -55
  368. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +12 -6
  369. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +8 -2
  370. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +8 -2
  371. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +12 -6
  372. package/src/transformers/features/llm/LlmApplicationTransformer.ts +7 -6
  373. package/src/utils/NamingConvention/NamingConvention.ts +40 -42
@@ -3,6 +3,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.pascal = exports.camel = void 0;
4
4
  exports.snake = snake;
5
5
  var StringUtil_1 = require("../StringUtil");
6
+ var unsnake = function (props) {
7
+ return function (str) {
8
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
9
+ var prefix = "";
10
+ for (var i = 0; i < str.length; i++) {
11
+ if (str[i] === "_")
12
+ prefix += "_";
13
+ else
14
+ break;
15
+ }
16
+ if (prefix.length !== 0)
17
+ str = str.substring(prefix.length);
18
+ var out = function (s) { return "".concat(prefix).concat(s); };
19
+ if (str.length === 0)
20
+ return out("");
21
+ var items = str.split("_").filter(function (s) { return s.length !== 0; });
22
+ return items.length === 0
23
+ ? out("")
24
+ : items.length === 1
25
+ ? out(props.plain(items[0]))
26
+ : out(items.map(props.snake).join(""));
27
+ };
28
+ };
6
29
  function snake(str) {
7
30
  if (str.length === 0)
8
31
  return str;
@@ -49,51 +72,22 @@ function snake(str) {
49
72
  ret += str.substring(indexes[indexes.length - 1]).toLowerCase();
50
73
  return out(ret);
51
74
  }
52
- var camel = function (str) {
53
- return unsnake({
54
- plain: function (str) {
55
- return str.length
56
- ? str === str.toUpperCase()
57
- ? str.toLocaleLowerCase()
58
- : "".concat(str[0].toLowerCase()).concat(str.substring(1))
59
- : str;
60
- },
61
- snake: function (str, i) {
62
- return i === 0 ? str.toLowerCase() : StringUtil_1.StringUtil.capitalize(str.toLowerCase());
63
- },
64
- })(str);
65
- };
66
- exports.camel = camel;
67
- var pascal = function (str) {
68
- return unsnake({
69
- plain: function (str) {
70
- return str.length ? "".concat(str[0].toUpperCase()).concat(str.substring(1)) : str;
71
- },
72
- snake: StringUtil_1.StringUtil.capitalize,
73
- })(str);
74
- };
75
- exports.pascal = pascal;
76
- var unsnake = function (props) {
77
- return function (str) {
78
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
79
- var prefix = "";
80
- for (var i = 0; i < str.length; i++) {
81
- if (str[i] === "_")
82
- prefix += "_";
83
- else
84
- break;
85
- }
86
- if (prefix.length !== 0)
87
- str = str.substring(prefix.length);
88
- var out = function (s) { return "".concat(prefix).concat(s); };
89
- if (str.length === 0)
90
- return out("");
91
- var items = str.split("_").filter(function (s) { return s.length !== 0; });
92
- return items.length === 0
93
- ? out("")
94
- : items.length === 1
95
- ? out(props.plain(items[0]))
96
- : out(items.map(props.snake).join(""));
97
- };
98
- };
75
+ exports.camel = unsnake({
76
+ plain: function (str) {
77
+ return str.length
78
+ ? str === str.toUpperCase()
79
+ ? str.toLocaleLowerCase()
80
+ : "".concat(str[0].toLowerCase()).concat(str.substring(1))
81
+ : str;
82
+ },
83
+ snake: function (str, i) {
84
+ return i === 0 ? str.toLowerCase() : StringUtil_1.StringUtil.capitalize(str.toLowerCase());
85
+ },
86
+ });
87
+ exports.pascal = unsnake({
88
+ plain: function (str) {
89
+ return str.length ? "".concat(str[0].toUpperCase()).concat(str.substring(1)) : str;
90
+ },
91
+ snake: StringUtil_1.StringUtil.capitalize,
92
+ });
99
93
  //# sourceMappingURL=NamingConvention.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NamingConvention.js","sourceRoot":"","sources":["../../../src/utils/NamingConvention/NamingConvention.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NamingConvention.js","sourceRoot":"","sources":["../../../src/utils/NamingConvention/NamingConvention.ts"],"names":[],"mappings":";;;AA2BA,sBA0CC;AArED,4CAA2C;AAE3C,IAAM,OAAO,GACX,UAAC,KAGA;IACD,OAAA,UAAC,GAAW;QACV,6DAA6D;QAC7D,IAAI,MAAM,GAAW,EAAE,CAAC;QACxB,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,MAAM,IAAI,GAAG,CAAC;;gBAC7B,MAAM;QACb,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE5D,IAAM,GAAG,GAAG,UAAC,CAAS,IAAK,OAAA,UAAG,MAAM,SAAG,CAAC,CAAE,EAAf,CAAe,CAAC;QAC3C,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;QAErC,IAAM,KAAK,GAAa,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,MAAM,KAAK,CAAC,EAAd,CAAc,CAAC,CAAC;QACrE,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;YACvB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACT,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;gBAClB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;gBAC7B,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;AAlBD,CAkBC,CAAC;AAEJ,SAAgB,KAAK,CAAC,GAAW;IAC/B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAEjC,SAAS;IACT,6DAA6D;IAC7D,IAAI,MAAM,GAAW,EAAE,CAAC;IACxB,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,MAAM,IAAI,GAAG,CAAC;;YAC7B,MAAM;IACb,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE5D,IAAM,GAAG,GAAG,UAAC,CAAS,IAAK,OAAA,UAAG,MAAM,SAAG,CAAC,CAAE,EAAf,CAAe,CAAC;IAE3C,aAAa;IACb,IAAM,KAAK,GAAa,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,WAAW,EAAE,EAAf,CAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAE9E,uBAAuB;IACvB,IAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,IAAM,IAAI,GAAW,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,KAAK,IAAI,CAAC,GAAW,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QACpD,IAAM,GAAG,GAAW,OAAO,CAAC,CAAC,CAAE,CAAC;QAChC,IAAM,IAAI,GAAW,OAAO,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;QACrC,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC;YAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;IAEnD,IAAI,GAAG,GAAW,EAAE,CAAC;IACrB,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,IAAM,KAAK,GAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;QACpD,IAAM,IAAI,GAAW,OAAO,CAAC,CAAC,CAAE,CAAC;QAEjC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAChD,GAAG,IAAI,GAAG,CAAC;IACb,CAAC;IACD,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACjE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC;AAEY,QAAA,KAAK,GAAG,OAAO,CAAC;IAC3B,KAAK,EAAE,UAAC,GAAG;QACT,OAAA,GAAG,CAAC,MAAM;YACR,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,WAAW,EAAE;gBACzB,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE;gBACzB,CAAC,CAAC,UAAG,GAAG,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,SAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE;YACjD,CAAC,CAAC,GAAG;IAJP,CAIO;IACT,KAAK,EAAE,UAAC,GAAG,EAAE,CAAC;QACZ,OAAA,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,uBAAU,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IAAtE,CAAsE;CACzE,CAAC,CAAC;AAEU,QAAA,MAAM,GAAG,OAAO,CAAC;IAC5B,KAAK,EAAE,UAAC,GAAG;QACT,OAAA,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,UAAG,GAAG,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,SAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,GAAG;IAAhE,CAAgE;IAClE,KAAK,EAAE,uBAAU,CAAC,UAAU;CAC7B,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "7.0.0-dev.20240930",
3
+ "version": "7.0.0-dev.20241002",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -13,7 +13,7 @@ export namespace TypiaGenerateWizard {
13
13
 
14
14
  // LOAD PACKAGE.JSON INFO
15
15
  const pack: PackageManager = await PackageManager.mount();
16
- const options: IArguments = await ArgumentParser.parse(pack)(inquiry);
16
+ const options: IArguments = await ArgumentParser.parse(pack, inquiry);
17
17
  await TypiaProgrammer.build(options);
18
18
  }
19
19
 
@@ -19,7 +19,7 @@ export namespace TypiaSetupWizard {
19
19
 
20
20
  // PREPARE ASSETS
21
21
  const pack: PackageManager = await PackageManager.mount();
22
- const args: IArguments = await ArgumentParser.parse(pack)(inquiry);
22
+ const args: IArguments = await ArgumentParser.parse(pack, inquiry);
23
23
 
24
24
  // INSTALL TYPESCRIPT COMPILERS
25
25
  pack.install({
@@ -11,33 +11,32 @@ export namespace ArgumentParser {
11
11
  action: (closure: (options: Partial<T>) => Promise<T>) => Promise<T>,
12
12
  ) => Promise<T>;
13
13
 
14
- export const parse =
15
- (pack: PackageManager) =>
16
- async <T>(
17
- inquiry: (
18
- pack: PackageManager,
19
- command: commander.Command,
20
- prompt: (opt?: inquirer.StreamOptions) => inquirer.PromptModule,
21
- action: (closure: (options: Partial<T>) => Promise<T>) => Promise<T>,
22
- ) => Promise<T>,
23
- ): Promise<T> => {
24
- // TAKE OPTIONS
25
- const action = (closure: (options: Partial<T>) => Promise<T>) =>
26
- new Promise<T>((resolve, reject) => {
27
- commander.program.action(async (options) => {
28
- try {
29
- resolve(await closure(options));
30
- } catch (exp) {
31
- reject(exp);
32
- }
33
- });
34
- commander.program.parseAsync().catch(reject);
14
+ export const parse = async <T>(
15
+ pack: PackageManager,
16
+ inquiry: (
17
+ pack: PackageManager,
18
+ command: commander.Command,
19
+ prompt: (opt?: inquirer.StreamOptions) => inquirer.PromptModule,
20
+ action: (closure: (options: Partial<T>) => Promise<T>) => Promise<T>,
21
+ ) => Promise<T>,
22
+ ): Promise<T> => {
23
+ // TAKE OPTIONS
24
+ const action = (closure: (options: Partial<T>) => Promise<T>) =>
25
+ new Promise<T>((resolve, reject) => {
26
+ commander.program.action(async (options) => {
27
+ try {
28
+ resolve(await closure(options));
29
+ } catch (exp) {
30
+ reject(exp);
31
+ }
35
32
  });
36
- return inquiry(
37
- pack,
38
- commander.program,
39
- inquirer.createPromptModule,
40
- action,
41
- );
42
- };
33
+ commander.program.parseAsync().catch(reject);
34
+ });
35
+ return inquiry(
36
+ pack,
37
+ commander.program,
38
+ inquirer.createPromptModule,
39
+ action,
40
+ );
41
+ };
43
42
  }
@@ -2,21 +2,18 @@ import fs from "fs";
2
2
  import path from "path";
3
3
 
4
4
  export namespace FileRetriever {
5
- export const directory =
6
- (name: string) =>
7
- (dir: string, depth: number = 0): string | null => {
8
- const location: string = path.join(dir, name);
9
- if (fs.existsSync(location)) return dir;
10
- else if (depth > 2) return null;
11
- return directory(name)(path.join(dir, ".."), depth + 1);
12
- };
13
-
14
- export const file =
15
- (name: string) =>
16
- (directory: string, depth: number = 0): string | null => {
17
- const location: string = path.join(directory, name);
18
- if (fs.existsSync(location)) return location;
19
- else if (depth > 2) return null;
20
- return file(name)(path.join(directory, ".."), depth + 1);
21
- };
5
+ export const directory = (props: {
6
+ file: string;
7
+ location: string;
8
+ depth?: number;
9
+ }): string | null => {
10
+ const location: string = path.join(props.location, props.file);
11
+ if (fs.existsSync(location)) return props.location;
12
+ else if ((props.depth ?? 0) > 2) return null;
13
+ return directory({
14
+ file: props.file,
15
+ location: path.join(props.location, ".."),
16
+ depth: (props.depth ?? 0) + 1,
17
+ });
18
+ };
22
19
  }
@@ -11,9 +11,10 @@ export class PackageManager {
11
11
  }
12
12
 
13
13
  public static async mount(): Promise<PackageManager> {
14
- const location: string | null = await FileRetriever.directory(
15
- "package.json",
16
- )(process.cwd());
14
+ const location: string | null = await FileRetriever.directory({
15
+ file: "package.json",
16
+ location: process.cwd(),
17
+ });
17
18
  if (location === null)
18
19
  throw new URIError(`Unable to find "package.json" file`);
19
20
 
@@ -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,7 +80,10 @@ 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