typia 5.5.6-dev.20240319 → 5.5.6-dev.20240320

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 (465) hide show
  1. package/lib/executable/TypiaSetupWizard.js.map +1 -1
  2. package/lib/factories/MetadataCommentTagFactory.js +54 -0
  3. package/lib/factories/MetadataCommentTagFactory.js.map +1 -1
  4. package/lib/factories/MetadataTypeTagFactory.js +20 -0
  5. package/lib/factories/MetadataTypeTagFactory.js.map +1 -1
  6. package/lib/factories/MetadataTypeTagSchemaFactory.d.ts +4 -0
  7. package/lib/factories/MetadataTypeTagSchemaFactory.js +84 -0
  8. package/lib/factories/MetadataTypeTagSchemaFactory.js.map +1 -0
  9. package/lib/factories/TypeFactory.js.map +1 -1
  10. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  11. package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
  12. package/lib/functional/$FormDataReader/$FormDataReader.js.map +1 -1
  13. package/lib/functional/$HeadersReader/$HeadersReader.js.map +1 -1
  14. package/lib/functional/$ParameterReader/$ParameterReader.js.map +1 -1
  15. package/lib/functional/$ProtobufSizer.js.map +1 -1
  16. package/lib/functional/$QueryReader/$QueryReader.js.map +1 -1
  17. package/lib/programmers/AssertProgrammer.js +1 -3
  18. package/lib/programmers/AssertProgrammer.js.map +1 -1
  19. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  20. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  21. package/lib/programmers/IsProgrammer.js.map +1 -1
  22. package/lib/programmers/RandomProgrammer.js.map +1 -1
  23. package/lib/programmers/TypiaProgrammer.js.map +1 -1
  24. package/lib/programmers/ValidateProgrammer.js +1 -3
  25. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  26. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
  27. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  28. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  29. package/lib/programmers/internal/application_array.js +5 -1
  30. package/lib/programmers/internal/application_array.js.map +1 -1
  31. package/lib/programmers/internal/application_boolean.js +12 -4
  32. package/lib/programmers/internal/application_boolean.js.map +1 -1
  33. package/lib/programmers/internal/application_constant.js.map +1 -1
  34. package/lib/programmers/internal/application_escaped.js.map +1 -1
  35. package/lib/programmers/internal/application_object.js.map +1 -1
  36. package/lib/programmers/internal/application_string.js +5 -1
  37. package/lib/programmers/internal/application_string.js.map +1 -1
  38. package/lib/programmers/internal/check_dynamic_key.js.map +1 -1
  39. package/lib/programmers/internal/check_number.js +1 -2
  40. package/lib/programmers/internal/check_number.js.map +1 -1
  41. package/lib/programmers/internal/check_object.js.map +1 -1
  42. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  43. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  44. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  45. package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
  46. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +2 -6
  47. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  48. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  49. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  50. package/lib/schemas/metadata/IMetadataTypeTag.d.ts +1 -0
  51. package/lib/schemas/metadata/MetadataAtomic.js +2 -0
  52. package/lib/schemas/metadata/MetadataAtomic.js.map +1 -1
  53. package/lib/tags/Default.d.ts +3 -0
  54. package/lib/tags/ExclusiveMaximum.d.ts +4 -0
  55. package/lib/tags/ExclusiveMinimum.d.ts +4 -0
  56. package/lib/tags/Format.d.ts +3 -0
  57. package/lib/tags/MaxItems.d.ts +3 -0
  58. package/lib/tags/MaxLength.d.ts +3 -0
  59. package/lib/tags/Maximum.d.ts +3 -0
  60. package/lib/tags/MinItems.d.ts +3 -0
  61. package/lib/tags/MinLength.d.ts +3 -0
  62. package/lib/tags/Minimum.d.ts +3 -0
  63. package/lib/tags/MultipleOf.d.ts +3 -0
  64. package/lib/tags/Pattern.d.ts +3 -0
  65. package/lib/tags/TagBase.d.ts +6 -2
  66. package/lib/transformers/CallExpressionTransformer.js +1 -1
  67. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  68. package/lib/transformers/ImportTransformer.js +1 -1
  69. package/lib/transformers/ImportTransformer.js.map +1 -1
  70. package/lib/transformers/features/AssertTransformer.js.map +1 -1
  71. package/lib/transformers/features/CreateAssertTransformer.js.map +1 -1
  72. package/package.json +1 -2
  73. package/src/AssertionGuard.ts +1 -1
  74. package/src/CamelCase.ts +118 -121
  75. package/src/IRandomGenerator.ts +62 -62
  76. package/src/IValidation.ts +21 -21
  77. package/src/PascalCase.ts +118 -121
  78. package/src/Primitive.ts +135 -136
  79. package/src/Resolved.ts +118 -119
  80. package/src/SnakeCase.ts +158 -161
  81. package/src/TypeGuardError.ts +36 -36
  82. package/src/executable/TypiaGenerateWizard.ts +83 -83
  83. package/src/executable/TypiaPatchWizard.ts +42 -42
  84. package/src/executable/TypiaSetupWizard.ts +151 -151
  85. package/src/executable/setup/ArgumentParser.ts +43 -43
  86. package/src/executable/setup/CommandExecutor.ts +8 -8
  87. package/src/executable/setup/FileRetriever.ts +22 -22
  88. package/src/executable/setup/PackageManager.ts +71 -71
  89. package/src/executable/setup/PluginConfigurator.ts +69 -69
  90. package/src/executable/typia.ts +55 -55
  91. package/src/factories/CommentFactory.ts +79 -79
  92. package/src/factories/ExpressionFactory.ts +150 -150
  93. package/src/factories/IdentifierFactory.ts +70 -70
  94. package/src/factories/JsonMetadataFactory.ts +53 -53
  95. package/src/factories/LiteralFactory.ts +47 -47
  96. package/src/factories/MetadataCollection.ts +260 -260
  97. package/src/factories/MetadataCommentTagFactory.ts +516 -461
  98. package/src/factories/MetadataFactory.ts +267 -267
  99. package/src/factories/MetadataTypeTagFactory.ts +332 -313
  100. package/src/factories/MetadataTypeTagSchemaFactory.ts +58 -0
  101. package/src/factories/NumericRangeFactory.ts +72 -72
  102. package/src/factories/ProtobufFactory.ts +267 -267
  103. package/src/factories/StatementFactory.ts +72 -72
  104. package/src/factories/TemplateFactory.ts +56 -56
  105. package/src/factories/TypeFactory.ts +118 -118
  106. package/src/factories/ValueFactory.ts +12 -12
  107. package/src/factories/internal/metadata/MetadataHelper.ts +15 -15
  108. package/src/factories/internal/metadata/emend_metadata_atomics.ts +46 -46
  109. package/src/factories/internal/metadata/emplace_metadata_alias.ts +41 -41
  110. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +38 -38
  111. package/src/factories/internal/metadata/emplace_metadata_object.ts +176 -176
  112. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  113. package/src/factories/internal/metadata/explore_metadata.ts +28 -28
  114. package/src/factories/internal/metadata/iterate_metadata.ts +94 -94
  115. package/src/factories/internal/metadata/iterate_metadata_alias.ts +34 -34
  116. package/src/factories/internal/metadata/iterate_metadata_array.ts +70 -70
  117. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  118. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
  119. package/src/factories/internal/metadata/iterate_metadata_collection.ts +131 -131
  120. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +26 -26
  121. package/src/factories/internal/metadata/iterate_metadata_constant.ts +48 -48
  122. package/src/factories/internal/metadata/iterate_metadata_escape.ts +52 -52
  123. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +230 -230
  124. package/src/factories/internal/metadata/iterate_metadata_map.ts +50 -50
  125. package/src/factories/internal/metadata/iterate_metadata_native.ts +209 -209
  126. package/src/factories/internal/metadata/iterate_metadata_object.ts +33 -33
  127. package/src/factories/internal/metadata/iterate_metadata_set.ts +41 -41
  128. package/src/factories/internal/metadata/iterate_metadata_sort.ts +72 -72
  129. package/src/factories/internal/metadata/iterate_metadata_template.ts +44 -44
  130. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +37 -37
  131. package/src/factories/internal/metadata/iterate_metadata_union.ts +27 -27
  132. package/src/functional/$FormDataReader/$FormDataReader.ts +83 -83
  133. package/src/functional/$FormDataReader/index.ts +1 -1
  134. package/src/functional/$HeadersReader/$HeadersReader.ts +26 -26
  135. package/src/functional/$HeadersReader/index.ts +1 -1
  136. package/src/functional/$ParameterReader/$ParameterReader.ts +29 -29
  137. package/src/functional/$ParameterReader/index.ts +1 -1
  138. package/src/functional/$ProtobufReader.ts +195 -195
  139. package/src/functional/$ProtobufSizer.ts +147 -147
  140. package/src/functional/$ProtobufWriter.ts +150 -150
  141. package/src/functional/$QueryReader/$QueryReader.ts +46 -46
  142. package/src/functional/$QueryReader/index.ts +1 -1
  143. package/src/functional/$any.ts +4 -4
  144. package/src/functional/$clone.ts +4 -4
  145. package/src/functional/$convention.ts +37 -37
  146. package/src/functional/$dictionary.ts +22 -22
  147. package/src/functional/$every.ts +11 -11
  148. package/src/functional/$guard.ts +21 -21
  149. package/src/functional/$is_between.ts +2 -2
  150. package/src/functional/$join.ts +46 -46
  151. package/src/functional/$number.ts +12 -12
  152. package/src/functional/$report.ts +13 -13
  153. package/src/functional/$rest.ts +3 -3
  154. package/src/functional/$stoll.ts +8 -8
  155. package/src/functional/$string.ts +43 -43
  156. package/src/functional/$strlen.ts +7 -7
  157. package/src/functional/$tail.ts +5 -5
  158. package/src/functional/$throws.ts +10 -10
  159. package/src/functional/$varint.ts +130 -130
  160. package/src/functional/$zigzag.ts +39 -39
  161. package/src/functional/IProtobufWriter.ts +18 -18
  162. package/src/functional/Namespace/functional.ts +5 -5
  163. package/src/functional/Namespace/http.ts +9 -9
  164. package/src/functional/Namespace/index.ts +76 -76
  165. package/src/functional/Namespace/json.ts +15 -15
  166. package/src/functional/Namespace/misc.ts +14 -14
  167. package/src/functional/Namespace/notations.ts +23 -23
  168. package/src/functional/Namespace/protobuf.ts +20 -20
  169. package/src/functional/is.ts +10 -10
  170. package/src/functional.ts +872 -872
  171. package/src/http.ts +1266 -1266
  172. package/src/index.ts +4 -4
  173. package/src/json.ts +754 -754
  174. package/src/misc.ts +757 -757
  175. package/src/module.ts +1024 -1024
  176. package/src/notations.ts +1020 -1020
  177. package/src/programmers/AssertProgrammer.ts +335 -337
  178. package/src/programmers/CheckerProgrammer.ts +1079 -1079
  179. package/src/programmers/FeatureProgrammer.ts +460 -460
  180. package/src/programmers/IsProgrammer.ts +232 -235
  181. package/src/programmers/RandomProgrammer.ts +888 -888
  182. package/src/programmers/TypiaProgrammer.ts +157 -157
  183. package/src/programmers/ValidateProgrammer.ts +307 -309
  184. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +130 -130
  185. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +81 -81
  186. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +77 -77
  187. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +61 -61
  188. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +73 -73
  189. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +84 -84
  190. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +113 -113
  191. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +203 -203
  192. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +107 -107
  193. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +32 -32
  194. package/src/programmers/helpers/AtomicPredicator.ts +24 -24
  195. package/src/programmers/helpers/CloneJoiner.ts +130 -130
  196. package/src/programmers/helpers/FunctionImporeter.ts +1 -1
  197. package/src/programmers/helpers/FunctionImporter.ts +87 -87
  198. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  199. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  200. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  201. package/src/programmers/helpers/NotationJoiner.ts +132 -132
  202. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  203. package/src/programmers/helpers/ProtobufUtil.ts +125 -125
  204. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  205. package/src/programmers/helpers/PruneJoiner.ts +141 -141
  206. package/src/programmers/helpers/RandomJoiner.ts +140 -140
  207. package/src/programmers/helpers/RandomRanger.ts +171 -171
  208. package/src/programmers/helpers/StringifyJoinder.ts +105 -105
  209. package/src/programmers/helpers/StringifyPredicator.ts +12 -12
  210. package/src/programmers/helpers/UnionExplorer.ts +269 -269
  211. package/src/programmers/helpers/UnionPredicator.ts +77 -77
  212. package/src/programmers/helpers/disable_function_importer_declare.ts +32 -32
  213. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +87 -87
  214. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +89 -89
  215. package/src/programmers/http/HttpAssertQueryProgrammer.ts +87 -87
  216. package/src/programmers/http/HttpFormDataProgrammer.ts +255 -256
  217. package/src/programmers/http/HttpHeadersProgrammer.ts +322 -323
  218. package/src/programmers/http/HttpIsFormDataProgrammer.ts +90 -90
  219. package/src/programmers/http/HttpIsHeadersProgrammer.ts +92 -92
  220. package/src/programmers/http/HttpIsQueryProgrammer.ts +90 -90
  221. package/src/programmers/http/HttpParameterProgrammer.ts +97 -97
  222. package/src/programmers/http/HttpQueryProgrammer.ts +260 -261
  223. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +75 -75
  224. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +77 -77
  225. package/src/programmers/http/HttpValidateQueryProgrammer.ts +75 -75
  226. package/src/programmers/internal/JSON_SCHEMA_PREFIX.ts +1 -1
  227. package/src/programmers/internal/application_alias.ts +74 -74
  228. package/src/programmers/internal/application_array.ts +63 -59
  229. package/src/programmers/internal/application_boolean.ts +44 -35
  230. package/src/programmers/internal/application_constant.ts +25 -25
  231. package/src/programmers/internal/application_default.ts +17 -17
  232. package/src/programmers/internal/application_default_string.ts +33 -33
  233. package/src/programmers/internal/application_escaped.ts +52 -52
  234. package/src/programmers/internal/application_native.ts +40 -40
  235. package/src/programmers/internal/application_number.ts +97 -97
  236. package/src/programmers/internal/application_object.ts +198 -198
  237. package/src/programmers/internal/application_schema.ts +165 -165
  238. package/src/programmers/internal/application_string.ts +65 -61
  239. package/src/programmers/internal/application_templates.ts +24 -24
  240. package/src/programmers/internal/application_tuple.ts +54 -54
  241. package/src/programmers/internal/check_array_length.ts +45 -45
  242. package/src/programmers/internal/check_bigint.ts +49 -49
  243. package/src/programmers/internal/check_dynamic_key.ts +174 -174
  244. package/src/programmers/internal/check_dynamic_properties.ts +211 -211
  245. package/src/programmers/internal/check_everything.ts +23 -23
  246. package/src/programmers/internal/check_native.ts +21 -21
  247. package/src/programmers/internal/check_number.ts +106 -107
  248. package/src/programmers/internal/check_object.ts +60 -61
  249. package/src/programmers/internal/check_string.ts +48 -48
  250. package/src/programmers/internal/check_template.ts +61 -61
  251. package/src/programmers/internal/check_union_array_like.ts +307 -307
  252. package/src/programmers/internal/decode_union_object.ts +99 -99
  253. package/src/programmers/internal/feature_object_entries.ts +58 -58
  254. package/src/programmers/internal/metadata_to_pattern.ts +33 -33
  255. package/src/programmers/internal/prune_object_properties.ts +60 -60
  256. package/src/programmers/internal/random_custom.ts +37 -37
  257. package/src/programmers/internal/stringify_dynamic_properties.ts +157 -157
  258. package/src/programmers/internal/stringify_native.ts +7 -7
  259. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  260. package/src/programmers/internal/template_to_pattern.ts +15 -15
  261. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +20 -20
  262. package/src/programmers/json/JsonApplicationProgrammer.ts +76 -76
  263. package/src/programmers/json/JsonAssertParseProgrammer.ts +81 -81
  264. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +67 -67
  265. package/src/programmers/json/JsonIsParseProgrammer.ts +81 -81
  266. package/src/programmers/json/JsonIsStringifyProgrammer.ts +75 -75
  267. package/src/programmers/json/JsonStringifyProgrammer.ts +896 -900
  268. package/src/programmers/json/JsonValidateParseProgrammer.ts +64 -64
  269. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +83 -83
  270. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +77 -77
  271. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +66 -66
  272. package/src/programmers/misc/MiscCloneProgrammer.ts +721 -721
  273. package/src/programmers/misc/MiscIsCloneProgrammer.ts +78 -78
  274. package/src/programmers/misc/MiscIsPruneProgrammer.ts +66 -66
  275. package/src/programmers/misc/MiscLiteralsProgrammer.ts +72 -72
  276. package/src/programmers/misc/MiscPruneProgrammer.ts +523 -523
  277. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +80 -80
  278. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +73 -73
  279. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +70 -70
  280. package/src/programmers/notations/NotationGeneralProgrammer.ts +647 -647
  281. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +71 -71
  282. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +81 -81
  283. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +87 -87
  284. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +67 -67
  285. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +615 -619
  286. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +819 -819
  287. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +90 -90
  288. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +75 -75
  289. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +160 -160
  290. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +75 -75
  291. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +83 -83
  292. package/src/protobuf.ts +999 -999
  293. package/src/reflect.ts +57 -57
  294. package/src/schemas/json/IJsonApplication.ts +9 -9
  295. package/src/schemas/json/IJsonComponents.ts +19 -19
  296. package/src/schemas/json/IJsonSchema.ts +147 -147
  297. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  298. package/src/schemas/metadata/IMetadata.ts +34 -34
  299. package/src/schemas/metadata/IMetadataAlias.ts +12 -12
  300. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  301. package/src/schemas/metadata/IMetadataArray.ts +7 -7
  302. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  303. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  304. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  305. package/src/schemas/metadata/IMetadataConstant.ts +23 -23
  306. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  307. package/src/schemas/metadata/IMetadataEntry.ts +6 -6
  308. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  309. package/src/schemas/metadata/IMetadataObject.ts +13 -13
  310. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  311. package/src/schemas/metadata/IMetadataTuple.ts +7 -7
  312. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  313. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -15
  314. package/src/schemas/metadata/Metadata.ts +631 -631
  315. package/src/schemas/metadata/MetadataAlias.ts +61 -61
  316. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  317. package/src/schemas/metadata/MetadataArray.ts +49 -49
  318. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  319. package/src/schemas/metadata/MetadataAtomic.ts +85 -84
  320. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  321. package/src/schemas/metadata/MetadataConstant.ts +46 -46
  322. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  323. package/src/schemas/metadata/MetadataObject.ts +154 -154
  324. package/src/schemas/metadata/MetadataProperty.ts +56 -56
  325. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  326. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  327. package/src/tags/Default.ts +18 -15
  328. package/src/tags/ExclusiveMaximum.ts +19 -13
  329. package/src/tags/ExclusiveMinimum.ts +19 -13
  330. package/src/tags/Format.ts +16 -13
  331. package/src/tags/MaxItems.ts +12 -9
  332. package/src/tags/MaxLength.ts +12 -9
  333. package/src/tags/Maximum.ts +18 -13
  334. package/src/tags/MinItems.ts +12 -9
  335. package/src/tags/MinLength.ts +12 -9
  336. package/src/tags/Minimum.ts +18 -13
  337. package/src/tags/MultipleOf.ts +20 -15
  338. package/src/tags/Pattern.ts +12 -9
  339. package/src/tags/TagBase.ts +76 -68
  340. package/src/tags/Type.ts +27 -27
  341. package/src/tags/index.ts +14 -14
  342. package/src/tags/internal/FormatCheatSheet.ts +71 -71
  343. package/src/transform.ts +35 -35
  344. package/src/transformers/CallExpressionTransformer.ts +496 -496
  345. package/src/transformers/FileTransformer.ts +91 -91
  346. package/src/transformers/IProject.ts +15 -15
  347. package/src/transformers/ITransformOptions.ts +62 -62
  348. package/src/transformers/ImportTransformer.ts +66 -66
  349. package/src/transformers/NodeTransformer.ts +13 -13
  350. package/src/transformers/TransformerError.ts +55 -55
  351. package/src/transformers/features/AssertTransformer.ts +16 -16
  352. package/src/transformers/features/CreateAssertTransformer.ts +16 -16
  353. package/src/transformers/features/CreateIsTransformer.ts +10 -10
  354. package/src/transformers/features/CreateRandomTransformer.ts +40 -40
  355. package/src/transformers/features/CreateValidateTransformer.ts +13 -13
  356. package/src/transformers/features/IsTransformer.ts +10 -10
  357. package/src/transformers/features/RandomTransformer.ts +44 -44
  358. package/src/transformers/features/ValidateTransformer.ts +11 -11
  359. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +55 -55
  360. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +12 -12
  361. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +11 -11
  362. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +9 -9
  363. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +9 -9
  364. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +9 -9
  365. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +9 -9
  366. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +9 -9
  367. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +9 -9
  368. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +9 -9
  369. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +9 -9
  370. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +12 -12
  371. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +12 -12
  372. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +11 -11
  373. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +10 -10
  374. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +9 -9
  375. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +9 -9
  376. package/src/transformers/features/http/HttpFormDataTransformer.ts +9 -9
  377. package/src/transformers/features/http/HttpHeadersTransformer.ts +9 -9
  378. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +9 -9
  379. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +9 -9
  380. package/src/transformers/features/http/HttpIsQueryTransformer.ts +9 -9
  381. package/src/transformers/features/http/HttpParameterTransformer.ts +9 -9
  382. package/src/transformers/features/http/HttpQueryTransformer.ts +9 -9
  383. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +10 -10
  384. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +10 -10
  385. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +9 -9
  386. package/src/transformers/features/json/JsonApplicationTransformer.ts +133 -133
  387. package/src/transformers/features/json/JsonAssertParseTransformer.ts +9 -9
  388. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +10 -10
  389. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +9 -9
  390. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +12 -12
  391. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +9 -9
  392. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +9 -9
  393. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +9 -9
  394. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +11 -11
  395. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +12 -12
  396. package/src/transformers/features/json/JsonIsParseTransformer.ts +9 -9
  397. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +9 -9
  398. package/src/transformers/features/json/JsonStringifyTransformer.ts +9 -9
  399. package/src/transformers/features/json/JsonValidateParseTransformer.ts +9 -9
  400. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +10 -10
  401. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +9 -9
  402. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +9 -9
  403. package/src/transformers/features/misc/MiscCloneTransformer.ts +9 -9
  404. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +9 -9
  405. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +9 -9
  406. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +9 -9
  407. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +9 -9
  408. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +9 -9
  409. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +9 -9
  410. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +11 -11
  411. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +11 -11
  412. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +9 -9
  413. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +9 -9
  414. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +32 -32
  415. package/src/transformers/features/misc/MiscPruneTransformer.ts +9 -9
  416. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +9 -9
  417. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +9 -9
  418. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +15 -15
  419. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +15 -15
  420. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +15 -15
  421. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +15 -15
  422. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +15 -15
  423. package/src/transformers/features/notations/NotationGeneralTransformer.ts +11 -11
  424. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +15 -15
  425. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +15 -15
  426. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +10 -10
  427. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +10 -10
  428. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +12 -12
  429. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +12 -12
  430. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +9 -9
  431. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +9 -9
  432. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +9 -9
  433. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +9 -9
  434. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +12 -12
  435. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +12 -12
  436. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +9 -9
  437. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +9 -9
  438. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +9 -9
  439. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +9 -9
  440. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +33 -33
  441. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +10 -10
  442. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +10 -10
  443. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +63 -63
  444. package/src/transformers/internal/GenericTransformer.ts +104 -104
  445. package/src/typings/Atomic.ts +13 -13
  446. package/src/typings/ClassProperties.ts +5 -5
  447. package/src/typings/Customizable.ts +5 -5
  448. package/src/typings/OmitNever.ts +3 -3
  449. package/src/typings/ProtobufAtomic.ts +19 -19
  450. package/src/typings/SpecialFields.ts +3 -3
  451. package/src/typings/ValidationPipe.ts +9 -9
  452. package/src/typings/Writable.ts +11 -11
  453. package/src/utils/ArrayUtil.ts +43 -43
  454. package/src/utils/Escaper.ts +46 -46
  455. package/src/utils/MapUtil.ts +12 -12
  456. package/src/utils/NameEncoder.ts +32 -32
  457. package/src/utils/NamingConvention/NamingConvention.ts +86 -86
  458. package/src/utils/NamingConvention/index.ts +1 -1
  459. package/src/utils/PatternUtil.ts +29 -29
  460. package/src/utils/RandomGenerator/RandomGenerator.ts +105 -105
  461. package/src/utils/RandomGenerator/index.ts +1 -1
  462. package/src/utils/Singleton.ts +16 -16
  463. package/src/utils/StringUtil/StringUtil.ts +7 -7
  464. package/src/utils/StringUtil/index.ts +1 -1
  465. package/src/typings/path.d.ts +0 -6
package/src/SnakeCase.ts CHANGED
@@ -1,161 +1,158 @@
1
- /**
2
- * Snake case type.
3
- *
4
- * `SnakeCase` type is a type that all keys of an object are converted to snake case.
5
- *
6
- * It also erase every method properties like {@link Resolved} type.
7
- *
8
- * @template T Target type to be snake cased
9
- * @author Jeongho Nam - https://github.com/samchon
10
- */
11
- export type SnakeCase<T> =
12
- Equal<T, SnakageMain<T>> extends true ? T : SnakageMain<T>;
13
-
14
- /* -----------------------------------------------------------
15
- OBJECT CONVERSION
16
- ----------------------------------------------------------- */
17
- type Equal<X, Y> = X extends Y ? (Y extends X ? true : false) : false;
18
-
19
- type SnakageMain<T> = T extends [never]
20
- ? never // special trick for (jsonable | null) type
21
- : T extends { valueOf(): boolean | bigint | number | string }
22
- ? ValueOf<T>
23
- : T extends Function
24
- ? never
25
- : T extends object
26
- ? SnakageObject<T>
27
- : T;
28
-
29
- type SnakageObject<T extends object> =
30
- T extends Array<infer U>
31
- ? IsTuple<T> extends true
32
- ? SnakageTuple<T>
33
- : SnakageMain<U>[]
34
- : T extends Set<infer U>
35
- ? Set<SnakageMain<U>>
36
- : T extends Map<infer K, infer V>
37
- ? Map<SnakageMain<K>, SnakageMain<V>>
38
- : T extends WeakSet<any> | WeakMap<any, any>
39
- ? never
40
- : T extends
41
- | Date
42
- | Uint8Array
43
- | Uint8ClampedArray
44
- | Uint16Array
45
- | Uint32Array
46
- | BigUint64Array
47
- | Int8Array
48
- | Int16Array
49
- | Int32Array
50
- | BigInt64Array
51
- | Float32Array
52
- | Float64Array
53
- | ArrayBuffer
54
- | SharedArrayBuffer
55
- | DataView
56
- | Blob
57
- | File
58
- ? T
59
- : {
60
- [Key in keyof T as SnakageString<Key & string>]: SnakageMain<
61
- T[Key]
62
- >;
63
- };
64
-
65
- /* -----------------------------------------------------------
66
- SPECIAL CASES
67
- ----------------------------------------------------------- */
68
- type IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
69
- never,
70
- ]
71
- ? false
72
- : T extends readonly any[]
73
- ? number extends T["length"]
74
- ? false
75
- : true
76
- : false;
77
- type SnakageTuple<T extends readonly any[]> = T extends []
78
- ? []
79
- : T extends [infer F]
80
- ? [SnakageMain<F>]
81
- : T extends [infer F, ...infer Rest extends readonly any[]]
82
- ? [SnakageMain<F>, ...SnakageTuple<Rest>]
83
- : T extends [(infer F)?]
84
- ? [SnakageMain<F>?]
85
- : T extends [(infer F)?, ...infer Rest extends readonly any[]]
86
- ? [SnakageMain<F>?, ...SnakageTuple<Rest>]
87
- : [];
88
-
89
- type ValueOf<Instance> =
90
- IsValueOf<Instance, Boolean> extends true
91
- ? boolean
92
- : IsValueOf<Instance, Number> extends true
93
- ? number
94
- : IsValueOf<Instance, String> extends true
95
- ? string
96
- : Instance;
97
-
98
- type IsValueOf<Instance, Object extends IValueOf<any>> = Instance extends Object
99
- ? Object extends IValueOf<infer Primitive>
100
- ? Instance extends Primitive
101
- ? false
102
- : true // not Primitive, but Object
103
- : false // cannot be
104
- : false;
105
-
106
- interface IValueOf<T> {
107
- valueOf(): T;
108
- }
109
-
110
- /* -----------------------------------------------------------
111
- STRING CONVERTER
112
- ----------------------------------------------------------- */
113
- type SnakageString<Key extends string> = Key extends `${infer _}`
114
- ? SnakageStringRepeatedly<Key, "">
115
- : Key;
116
- type SnakageStringRepeatedly<
117
- S extends string,
118
- Previous extends string,
119
- > = S extends `${infer First}${infer Second}${infer Rest}`
120
- ? `${Underscore<Previous, First>}${Lowercase<First>}${Underscore<
121
- First,
122
- Second
123
- >}${Lowercase<Second>}${SnakageStringRepeatedly<Rest, Second>}`
124
- : S extends `${infer First}`
125
- ? `${Underscore<Previous, First>}${Lowercase<First>}`
126
- : "";
127
- type Underscore<First extends string, Second extends string> = First extends
128
- | UpperAlphabetic
129
- | ""
130
- | "_"
131
- ? ""
132
- : Second extends UpperAlphabetic
133
- ? "_"
134
- : "";
135
- type UpperAlphabetic =
136
- | "A"
137
- | "B"
138
- | "C"
139
- | "D"
140
- | "E"
141
- | "F"
142
- | "G"
143
- | "H"
144
- | "I"
145
- | "J"
146
- | "K"
147
- | "L"
148
- | "M"
149
- | "N"
150
- | "O"
151
- | "P"
152
- | "Q"
153
- | "R"
154
- | "S"
155
- | "T"
156
- | "U"
157
- | "V"
158
- | "W"
159
- | "X"
160
- | "Y"
161
- | "Z";
1
+ /**
2
+ * Snake case type.
3
+ *
4
+ * `SnakeCase` type is a type that all keys of an object are converted to snake case.
5
+ *
6
+ * It also erase every method properties like {@link Resolved} type.
7
+ *
8
+ * @template T Target type to be snake cased
9
+ * @author Jeongho Nam - https://github.com/samchon
10
+ */
11
+ export type SnakeCase<T> = Equal<T, SnakageMain<T>> extends true
12
+ ? T
13
+ : SnakageMain<T>;
14
+
15
+ /* -----------------------------------------------------------
16
+ OBJECT CONVERSION
17
+ ----------------------------------------------------------- */
18
+ type Equal<X, Y> = X extends Y ? (Y extends X ? true : false) : false;
19
+
20
+ type SnakageMain<T> = T extends [never]
21
+ ? never // special trick for (jsonable | null) type
22
+ : T extends { valueOf(): boolean | bigint | number | string }
23
+ ? ValueOf<T>
24
+ : T extends Function
25
+ ? never
26
+ : T extends object
27
+ ? SnakageObject<T>
28
+ : T;
29
+
30
+ type SnakageObject<T extends object> = T extends Array<infer U>
31
+ ? IsTuple<T> extends true
32
+ ? SnakageTuple<T>
33
+ : SnakageMain<U>[]
34
+ : T extends Set<infer U>
35
+ ? Set<SnakageMain<U>>
36
+ : T extends Map<infer K, infer V>
37
+ ? Map<SnakageMain<K>, SnakageMain<V>>
38
+ : T extends WeakSet<any> | WeakMap<any, any>
39
+ ? never
40
+ : T extends
41
+ | Date
42
+ | Uint8Array
43
+ | Uint8ClampedArray
44
+ | Uint16Array
45
+ | Uint32Array
46
+ | BigUint64Array
47
+ | Int8Array
48
+ | Int16Array
49
+ | Int32Array
50
+ | BigInt64Array
51
+ | Float32Array
52
+ | Float64Array
53
+ | ArrayBuffer
54
+ | SharedArrayBuffer
55
+ | DataView
56
+ | Blob
57
+ | File
58
+ ? T
59
+ : {
60
+ [Key in keyof T as SnakageString<Key & string>]: SnakageMain<T[Key]>;
61
+ };
62
+
63
+ /* -----------------------------------------------------------
64
+ SPECIAL CASES
65
+ ----------------------------------------------------------- */
66
+ type IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
67
+ never,
68
+ ]
69
+ ? false
70
+ : T extends readonly any[]
71
+ ? number extends T["length"]
72
+ ? false
73
+ : true
74
+ : false;
75
+ type SnakageTuple<T extends readonly any[]> = T extends []
76
+ ? []
77
+ : T extends [infer F]
78
+ ? [SnakageMain<F>]
79
+ : T extends [infer F, ...infer Rest extends readonly any[]]
80
+ ? [SnakageMain<F>, ...SnakageTuple<Rest>]
81
+ : T extends [(infer F)?]
82
+ ? [SnakageMain<F>?]
83
+ : T extends [(infer F)?, ...infer Rest extends readonly any[]]
84
+ ? [SnakageMain<F>?, ...SnakageTuple<Rest>]
85
+ : [];
86
+
87
+ type ValueOf<Instance> = IsValueOf<Instance, Boolean> extends true
88
+ ? boolean
89
+ : IsValueOf<Instance, Number> extends true
90
+ ? number
91
+ : IsValueOf<Instance, String> extends true
92
+ ? string
93
+ : Instance;
94
+
95
+ type IsValueOf<Instance, Object extends IValueOf<any>> = Instance extends Object
96
+ ? Object extends IValueOf<infer Primitive>
97
+ ? Instance extends Primitive
98
+ ? false
99
+ : true // not Primitive, but Object
100
+ : false // cannot be
101
+ : false;
102
+
103
+ interface IValueOf<T> {
104
+ valueOf(): T;
105
+ }
106
+
107
+ /* -----------------------------------------------------------
108
+ STRING CONVERTER
109
+ ----------------------------------------------------------- */
110
+ type SnakageString<Key extends string> = Key extends `${infer _}`
111
+ ? SnakageStringRepeatedly<Key, "">
112
+ : Key;
113
+ type SnakageStringRepeatedly<
114
+ S extends string,
115
+ Previous extends string,
116
+ > = S extends `${infer First}${infer Second}${infer Rest}`
117
+ ? `${Underscore<Previous, First>}${Lowercase<First>}${Underscore<
118
+ First,
119
+ Second
120
+ >}${Lowercase<Second>}${SnakageStringRepeatedly<Rest, Second>}`
121
+ : S extends `${infer First}`
122
+ ? `${Underscore<Previous, First>}${Lowercase<First>}`
123
+ : "";
124
+ type Underscore<First extends string, Second extends string> = First extends
125
+ | UpperAlphabetic
126
+ | ""
127
+ | "_"
128
+ ? ""
129
+ : Second extends UpperAlphabetic
130
+ ? "_"
131
+ : "";
132
+ type UpperAlphabetic =
133
+ | "A"
134
+ | "B"
135
+ | "C"
136
+ | "D"
137
+ | "E"
138
+ | "F"
139
+ | "G"
140
+ | "H"
141
+ | "I"
142
+ | "J"
143
+ | "K"
144
+ | "L"
145
+ | "M"
146
+ | "N"
147
+ | "O"
148
+ | "P"
149
+ | "Q"
150
+ | "R"
151
+ | "S"
152
+ | "T"
153
+ | "U"
154
+ | "V"
155
+ | "W"
156
+ | "X"
157
+ | "Y"
158
+ | "Z";
@@ -1,36 +1,36 @@
1
- export class TypeGuardError extends Error {
2
- public readonly method: string;
3
- public readonly path: string | undefined;
4
- public readonly expected: string;
5
- public readonly value: any;
6
-
7
- public constructor(props: TypeGuardError.IProps) {
8
- // MESSAGE CONSTRUCTION
9
- super(
10
- props.message ||
11
- `Error on ${props.method}(): invalid type${
12
- props.path ? ` on ${props.path}` : ""
13
- }, expect to be ${props.expected}`,
14
- );
15
-
16
- // INHERITANCE POLYFILL
17
- const proto = new.target.prototype;
18
- if (Object.setPrototypeOf) Object.setPrototypeOf(this, proto);
19
- else (this as any).__proto__ = proto;
20
-
21
- // ASSIGN MEMBERS
22
- this.method = props.method;
23
- this.path = props.path;
24
- this.expected = props.expected;
25
- this.value = props.value;
26
- }
27
- }
28
- export namespace TypeGuardError {
29
- export interface IProps {
30
- method: string;
31
- path?: undefined | string;
32
- expected: string;
33
- value: any;
34
- message?: undefined | string;
35
- }
36
- }
1
+ export class TypeGuardError extends Error {
2
+ public readonly method: string;
3
+ public readonly path: string | undefined;
4
+ public readonly expected: string;
5
+ public readonly value: any;
6
+
7
+ public constructor(props: TypeGuardError.IProps) {
8
+ // MESSAGE CONSTRUCTION
9
+ super(
10
+ props.message ||
11
+ `Error on ${props.method}(): invalid type${
12
+ props.path ? ` on ${props.path}` : ""
13
+ }, expect to be ${props.expected}`,
14
+ );
15
+
16
+ // INHERITANCE POLYFILL
17
+ const proto = new.target.prototype;
18
+ if (Object.setPrototypeOf) Object.setPrototypeOf(this, proto);
19
+ else (this as any).__proto__ = proto;
20
+
21
+ // ASSIGN MEMBERS
22
+ this.method = props.method;
23
+ this.path = props.path;
24
+ this.expected = props.expected;
25
+ this.value = props.value;
26
+ }
27
+ }
28
+ export namespace TypeGuardError {
29
+ export interface IProps {
30
+ method: string;
31
+ path?: undefined | string;
32
+ expected: string;
33
+ value: any;
34
+ message?: undefined | string;
35
+ }
36
+ }
@@ -1,83 +1,83 @@
1
- import fs from "fs";
2
-
3
- import { TypiaProgrammer } from "../programmers/TypiaProgrammer";
4
-
5
- import { ArgumentParser } from "./setup/ArgumentParser";
6
- import { PackageManager } from "./setup/PackageManager";
7
-
8
- export namespace TypiaGenerateWizard {
9
- export async function generate(): Promise<void> {
10
- console.log("----------------------------------------");
11
- console.log(" Typia Generate Wizard");
12
- console.log("----------------------------------------");
13
-
14
- // LOAD PACKAGE.JSON INFO
15
- const pack: PackageManager = await PackageManager.mount();
16
- const options: IArguments = await ArgumentParser.parse(pack)(inquiry);
17
- await TypiaProgrammer.build(options);
18
- }
19
-
20
- const inquiry: ArgumentParser.Inquiry<IArguments> = async (
21
- _pack,
22
- command,
23
- prompt,
24
- action,
25
- ) => {
26
- // PREPARE ASSETS
27
- command.option("--input [path]", "input directory");
28
- command.option("--output [directory]", "output directory");
29
- command.option("--project [project]", "tsconfig.json file location");
30
-
31
- const questioned = { value: false };
32
-
33
- const input = (name: string) => async (message: string) => {
34
- const result = await prompt()({
35
- type: "input",
36
- name,
37
- message,
38
- default: "",
39
- });
40
- return result[name] as string;
41
- };
42
- const select =
43
- (name: string) =>
44
- (message: string) =>
45
- async <Choice extends string>(choices: Choice[]): Promise<Choice> => {
46
- questioned.value = true;
47
- return (
48
- await prompt()({
49
- type: "list",
50
- name: name,
51
- message: message,
52
- choices: choices,
53
- })
54
- )[name];
55
- };
56
- const configure = async (): Promise<string> => {
57
- const files: string[] = await (
58
- await fs.promises.readdir(process.cwd())
59
- ).filter(
60
- (str) =>
61
- str.substring(0, 8) === "tsconfig" &&
62
- str.substring(str.length - 5) === ".json",
63
- );
64
- if (files.length === 0)
65
- throw new URIError(`Unable to find "tsconfig.json" file.`);
66
- else if (files.length === 1) return files[0]!;
67
- return select("tsconfig")("TS Config File")(files);
68
- };
69
-
70
- return action(async (options) => {
71
- options.input ??= await input("input")("input directory");
72
- options.output ??= await input("output")("output directory");
73
- options.project ??= await configure();
74
- return options as IArguments;
75
- });
76
- };
77
-
78
- export interface IArguments {
79
- input: string;
80
- output: string;
81
- project: string;
82
- }
83
- }
1
+ import fs from "fs";
2
+
3
+ import { TypiaProgrammer } from "../programmers/TypiaProgrammer";
4
+
5
+ import { ArgumentParser } from "./setup/ArgumentParser";
6
+ import { PackageManager } from "./setup/PackageManager";
7
+
8
+ export namespace TypiaGenerateWizard {
9
+ export async function generate(): Promise<void> {
10
+ console.log("----------------------------------------");
11
+ console.log(" Typia Generate Wizard");
12
+ console.log("----------------------------------------");
13
+
14
+ // LOAD PACKAGE.JSON INFO
15
+ const pack: PackageManager = await PackageManager.mount();
16
+ const options: IArguments = await ArgumentParser.parse(pack)(inquiry);
17
+ await TypiaProgrammer.build(options);
18
+ }
19
+
20
+ const inquiry: ArgumentParser.Inquiry<IArguments> = async (
21
+ _pack,
22
+ command,
23
+ prompt,
24
+ action,
25
+ ) => {
26
+ // PREPARE ASSETS
27
+ command.option("--input [path]", "input directory");
28
+ command.option("--output [directory]", "output directory");
29
+ command.option("--project [project]", "tsconfig.json file location");
30
+
31
+ const questioned = { value: false };
32
+
33
+ const input = (name: string) => async (message: string) => {
34
+ const result = await prompt()({
35
+ type: "input",
36
+ name,
37
+ message,
38
+ default: "",
39
+ });
40
+ return result[name] as string;
41
+ };
42
+ const select =
43
+ (name: string) =>
44
+ (message: string) =>
45
+ async <Choice extends string>(choices: Choice[]): Promise<Choice> => {
46
+ questioned.value = true;
47
+ return (
48
+ await prompt()({
49
+ type: "list",
50
+ name: name,
51
+ message: message,
52
+ choices: choices,
53
+ })
54
+ )[name];
55
+ };
56
+ const configure = async (): Promise<string> => {
57
+ const files: string[] = await (
58
+ await fs.promises.readdir(process.cwd())
59
+ ).filter(
60
+ (str) =>
61
+ str.substring(0, 8) === "tsconfig" &&
62
+ str.substring(str.length - 5) === ".json",
63
+ );
64
+ if (files.length === 0)
65
+ throw new URIError(`Unable to find "tsconfig.json" file.`);
66
+ else if (files.length === 1) return files[0]!;
67
+ return select("tsconfig")("TS Config File")(files);
68
+ };
69
+
70
+ return action(async (options) => {
71
+ options.input ??= await input("input")("input directory");
72
+ options.output ??= await input("output")("output directory");
73
+ options.project ??= await configure();
74
+ return options as IArguments;
75
+ });
76
+ };
77
+
78
+ export interface IArguments {
79
+ input: string;
80
+ output: string;
81
+ project: string;
82
+ }
83
+ }
@@ -1,42 +1,42 @@
1
- import fs from "fs";
2
-
3
- export namespace TypiaPatchWizard {
4
- export const main = async (): Promise<void> => {
5
- console.log("----------------------------------------");
6
- console.log(" Typia Setup Wizard");
7
- console.log("----------------------------------------");
8
- console.log(
9
- [
10
- `Since TypeScript v5.3 update, "tsc" no more parses JSDoc comments.`,
11
- ``,
12
- `Therefore, "typia" revives the JSDoc parsing feature by patching "tsc".`,
13
- ``,
14
- `This is a temporary feature of "typia", and it would be removed when "ts-patch" being updated.`,
15
- ].join("\n"),
16
- );
17
-
18
- await patch();
19
- };
20
-
21
- export const patch = async (): Promise<void> => {
22
- const location: string = require.resolve("typescript/lib/tsc.js");
23
- const content: string = await fs.promises.readFile(location, "utf8");
24
- if (content.indexOf(FROM_WITH_COMMENT) !== -1)
25
- await fs.promises.writeFile(
26
- location,
27
- content.replace(FROM_WITH_COMMENT, TO_WITH_COMMENT),
28
- "utf8",
29
- );
30
- else if (content.indexOf(FROM_ONLY) !== -1)
31
- await fs.promises.writeFile(
32
- location,
33
- content.replace(FROM_ONLY, TO_ONLY),
34
- "utf8",
35
- );
36
- };
37
- }
38
-
39
- const FROM_WITH_COMMENT = `var defaultJSDocParsingMode = 2 /* ParseForTypeErrors */`;
40
- const TO_WITH_COMMENT = `var defaultJSDocParsingMode = 0 /* ParseAll */`;
41
- const FROM_ONLY = `var defaultJSDocParsingMode = 2`;
42
- const TO_ONLY = `var defaultJSDocParsingMode = 0`;
1
+ import fs from "fs";
2
+
3
+ export namespace TypiaPatchWizard {
4
+ export const main = async (): Promise<void> => {
5
+ console.log("----------------------------------------");
6
+ console.log(" Typia Setup Wizard");
7
+ console.log("----------------------------------------");
8
+ console.log(
9
+ [
10
+ `Since TypeScript v5.3 update, "tsc" no more parses JSDoc comments.`,
11
+ ``,
12
+ `Therefore, "typia" revives the JSDoc parsing feature by patching "tsc".`,
13
+ ``,
14
+ `This is a temporary feature of "typia", and it would be removed when "ts-patch" being updated.`,
15
+ ].join("\n"),
16
+ );
17
+
18
+ await patch();
19
+ };
20
+
21
+ export const patch = async (): Promise<void> => {
22
+ const location: string = require.resolve("typescript/lib/tsc.js");
23
+ const content: string = await fs.promises.readFile(location, "utf8");
24
+ if (content.indexOf(FROM_WITH_COMMENT) !== -1)
25
+ await fs.promises.writeFile(
26
+ location,
27
+ content.replace(FROM_WITH_COMMENT, TO_WITH_COMMENT),
28
+ "utf8",
29
+ );
30
+ else if (content.indexOf(FROM_ONLY) !== -1)
31
+ await fs.promises.writeFile(
32
+ location,
33
+ content.replace(FROM_ONLY, TO_ONLY),
34
+ "utf8",
35
+ );
36
+ };
37
+ }
38
+
39
+ const FROM_WITH_COMMENT = `var defaultJSDocParsingMode = 2 /* ParseForTypeErrors */`;
40
+ const TO_WITH_COMMENT = `var defaultJSDocParsingMode = 0 /* ParseAll */`;
41
+ const FROM_ONLY = `var defaultJSDocParsingMode = 2`;
42
+ const TO_ONLY = `var defaultJSDocParsingMode = 0`;