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
@@ -1,151 +1,151 @@
1
- import fs from "fs";
2
-
3
- import { ArgumentParser } from "./setup/ArgumentParser";
4
- import { CommandExecutor } from "./setup/CommandExecutor";
5
- import { PackageManager } from "./setup/PackageManager";
6
- import { PluginConfigurator } from "./setup/PluginConfigurator";
7
-
8
- export namespace TypiaSetupWizard {
9
- export interface IArguments {
10
- manager: "npm" | "pnpm" | "yarn";
11
- project: string | null;
12
- }
13
-
14
- export async function setup(): Promise<void> {
15
- console.log("----------------------------------------");
16
- console.log(" Typia Setup Wizard");
17
- console.log("----------------------------------------");
18
-
19
- // PREPARE ASSETS
20
- const pack: PackageManager = await PackageManager.mount();
21
- const args: IArguments = await ArgumentParser.parse(pack)(inquiry);
22
-
23
- // INSTALL TYPESCRIPT COMPILERS
24
- pack.install({ dev: true, modulo: "ts-patch", version: "latest" });
25
- pack.install({ dev: true, modulo: "ts-node", version: "latest" });
26
- pack.install({ dev: true, modulo: "typescript", version: "5.4.2" });
27
- args.project ??= (() => {
28
- const runner: string = pack.manager === "npm" ? "npx" : pack.manager;
29
- CommandExecutor.run(`${runner} tsc --init`);
30
- return (args.project = "tsconfig.json");
31
- })();
32
-
33
- // SETUP TRANSFORMER
34
- await pack.save((data) => {
35
- // COMPOSE PREPARE COMMAND
36
- data.scripts ??= {};
37
- if (
38
- typeof data.scripts.prepare === "string" &&
39
- data.scripts.prepare.trim().length
40
- ) {
41
- if (
42
- data.scripts.prepare.indexOf("ts-patch install") === -1 &&
43
- data.scripts.prepare.indexOf("typia patch") === -1
44
- )
45
- data.scripts.prepare =
46
- "ts-patch install && typia patch && " + data.scripts.prepare;
47
- else if (data.scripts.prepare.indexOf("ts-patch install") === -1)
48
- data.scripts.prepare = "ts-patch install && " + data.scripts.prepare;
49
- else if (data.scripts.prepare.indexOf("typia patch") === -1)
50
- data.scripts.prepare = data.scripts.prepare.replace(
51
- "ts-patch install",
52
- "ts-patch install && typia patch",
53
- );
54
- } else data.scripts.prepare = "ts-patch install && typia patch";
55
-
56
- // FOR OLDER VERSIONS
57
- if (typeof data.scripts.postinstall === "string") {
58
- data.scripts.postinstall = data.scripts.postinstall
59
- .split("&&")
60
- .map((str) => str.trim())
61
- .filter((str) => str.indexOf("ts-patch install") === -1)
62
- .join(" && ");
63
- if (data.scripts.postinstall.length === 0)
64
- delete data.scripts.postinstall;
65
- }
66
- });
67
-
68
- // CONFIGURE TYPIA
69
- await PluginConfigurator.configure(args);
70
- CommandExecutor.run(`${pack.manager} run prepare`);
71
- }
72
-
73
- const inquiry: ArgumentParser.Inquiry<IArguments> = async (
74
- pack,
75
- command,
76
- prompt,
77
- action,
78
- ) => {
79
- // PREPARE ASSETS
80
- command.option("--manager [manager", "package manager");
81
- command.option("--project [project]", "tsconfig.json file location");
82
-
83
- // INTERNAL PROCEDURES
84
- const questioned = { value: false };
85
- const select =
86
- (name: string) =>
87
- (message: string) =>
88
- async <Choice extends string>(
89
- choices: Choice[],
90
- filter?: (choice: string) => Choice,
91
- ): Promise<Choice> => {
92
- questioned.value = true;
93
- return (
94
- await prompt()({
95
- type: "list",
96
- name: name,
97
- message: message,
98
- choices: choices,
99
- ...(filter
100
- ? {
101
- filter,
102
- }
103
- : {}),
104
- })
105
- )[name];
106
- };
107
- const configure = async (): Promise<string | null> => {
108
- const fileList: string[] = await (
109
- await fs.promises.readdir(process.cwd())
110
- )
111
- .filter(
112
- (str) =>
113
- str.substring(0, 8) === "tsconfig" &&
114
- str.substring(str.length - 5) === ".json",
115
- )
116
- .sort((x, y) =>
117
- x === "tsconfig.json"
118
- ? -1
119
- : y === "tsconfig.json"
120
- ? 1
121
- : x < y
122
- ? -1
123
- : 1,
124
- );
125
- if (fileList.length === 0) {
126
- if (process.cwd() !== pack.directory)
127
- throw new URIError(`Unable to find "tsconfig.json" file.`);
128
- return null;
129
- } else if (fileList.length === 1) return fileList[0]!;
130
- return select("tsconfig")("TS Config File")(fileList);
131
- };
132
-
133
- // DO CONSTRUCT
134
- return action(async (options) => {
135
- pack.manager = options.manager ??= await select("manager")(
136
- "Package Manager",
137
- )(
138
- [
139
- "npm" as const,
140
- "pnpm" as const,
141
- "yarn (berry is not supported)" as "yarn",
142
- ],
143
- (value) => value.split(" ")[0] as "yarn",
144
- );
145
- options.project ??= await configure();
146
-
147
- if (questioned.value) console.log("");
148
- return options as IArguments;
149
- });
150
- };
151
- }
1
+ import fs from "fs";
2
+
3
+ import { ArgumentParser } from "./setup/ArgumentParser";
4
+ import { CommandExecutor } from "./setup/CommandExecutor";
5
+ import { PackageManager } from "./setup/PackageManager";
6
+ import { PluginConfigurator } from "./setup/PluginConfigurator";
7
+
8
+ export namespace TypiaSetupWizard {
9
+ export interface IArguments {
10
+ manager: "npm" | "pnpm" | "yarn";
11
+ project: string | null;
12
+ }
13
+
14
+ export async function setup(): Promise<void> {
15
+ console.log("----------------------------------------");
16
+ console.log(" Typia Setup Wizard");
17
+ console.log("----------------------------------------");
18
+
19
+ // PREPARE ASSETS
20
+ const pack: PackageManager = await PackageManager.mount();
21
+ const args: IArguments = await ArgumentParser.parse(pack)(inquiry);
22
+
23
+ // INSTALL TYPESCRIPT COMPILERS
24
+ pack.install({ dev: true, modulo: "ts-patch", version: "latest" });
25
+ pack.install({ dev: true, modulo: "ts-node", version: "latest" });
26
+ pack.install({ dev: true, modulo: "typescript", version: "5.4.2" });
27
+ args.project ??= (() => {
28
+ const runner: string = pack.manager === "npm" ? "npx" : pack.manager;
29
+ CommandExecutor.run(`${runner} tsc --init`);
30
+ return (args.project = "tsconfig.json");
31
+ })();
32
+
33
+ // SETUP TRANSFORMER
34
+ await pack.save((data) => {
35
+ // COMPOSE PREPARE COMMAND
36
+ data.scripts ??= {};
37
+ if (
38
+ typeof data.scripts.prepare === "string" &&
39
+ data.scripts.prepare.trim().length
40
+ ) {
41
+ if (
42
+ data.scripts.prepare.indexOf("ts-patch install") === -1 &&
43
+ data.scripts.prepare.indexOf("typia patch") === -1
44
+ )
45
+ data.scripts.prepare =
46
+ "ts-patch install && typia patch && " + data.scripts.prepare;
47
+ else if (data.scripts.prepare.indexOf("ts-patch install") === -1)
48
+ data.scripts.prepare = "ts-patch install && " + data.scripts.prepare;
49
+ else if (data.scripts.prepare.indexOf("typia patch") === -1)
50
+ data.scripts.prepare = data.scripts.prepare.replace(
51
+ "ts-patch install",
52
+ "ts-patch install && typia patch",
53
+ );
54
+ } else data.scripts.prepare = "ts-patch install && typia patch";
55
+
56
+ // FOR OLDER VERSIONS
57
+ if (typeof data.scripts.postinstall === "string") {
58
+ data.scripts.postinstall = data.scripts.postinstall
59
+ .split("&&")
60
+ .map((str) => str.trim())
61
+ .filter((str) => str.indexOf("ts-patch install") === -1)
62
+ .join(" && ");
63
+ if (data.scripts.postinstall.length === 0)
64
+ delete data.scripts.postinstall;
65
+ }
66
+ });
67
+
68
+ // CONFIGURE TYPIA
69
+ await PluginConfigurator.configure(args);
70
+ CommandExecutor.run(`${pack.manager} run prepare`);
71
+ }
72
+
73
+ const inquiry: ArgumentParser.Inquiry<IArguments> = async (
74
+ pack,
75
+ command,
76
+ prompt,
77
+ action,
78
+ ) => {
79
+ // PREPARE ASSETS
80
+ command.option("--manager [manager", "package manager");
81
+ command.option("--project [project]", "tsconfig.json file location");
82
+
83
+ // INTERNAL PROCEDURES
84
+ const questioned = { value: false };
85
+ const select =
86
+ (name: string) =>
87
+ (message: string) =>
88
+ async <Choice extends string>(
89
+ choices: Choice[],
90
+ filter?: (choice: string) => Choice,
91
+ ): Promise<Choice> => {
92
+ questioned.value = true;
93
+ return (
94
+ await prompt()({
95
+ type: "list",
96
+ name: name,
97
+ message: message,
98
+ choices: choices,
99
+ ...(filter
100
+ ? {
101
+ filter,
102
+ }
103
+ : {}),
104
+ })
105
+ )[name];
106
+ };
107
+ const configure = async (): Promise<string | null> => {
108
+ const fileList: string[] = await (
109
+ await fs.promises.readdir(process.cwd())
110
+ )
111
+ .filter(
112
+ (str) =>
113
+ str.substring(0, 8) === "tsconfig" &&
114
+ str.substring(str.length - 5) === ".json",
115
+ )
116
+ .sort((x, y) =>
117
+ x === "tsconfig.json"
118
+ ? -1
119
+ : y === "tsconfig.json"
120
+ ? 1
121
+ : x < y
122
+ ? -1
123
+ : 1,
124
+ );
125
+ if (fileList.length === 0) {
126
+ if (process.cwd() !== pack.directory)
127
+ throw new URIError(`Unable to find "tsconfig.json" file.`);
128
+ return null;
129
+ } else if (fileList.length === 1) return fileList[0]!;
130
+ return select("tsconfig")("TS Config File")(fileList);
131
+ };
132
+
133
+ // DO CONSTRUCT
134
+ return action(async (options) => {
135
+ pack.manager = options.manager ??= await select("manager")(
136
+ "Package Manager",
137
+ )(
138
+ [
139
+ "npm" as const,
140
+ "pnpm" as const,
141
+ "yarn (berry is not supported)" as "yarn",
142
+ ],
143
+ (value) => value.split(" ")[0] as "yarn",
144
+ );
145
+ options.project ??= await configure();
146
+
147
+ if (questioned.value) console.log("");
148
+ return options as IArguments;
149
+ });
150
+ };
151
+ }
@@ -1,43 +1,43 @@
1
- import commander from "commander";
2
- import inquirer from "inquirer";
3
-
4
- import { PackageManager } from "./PackageManager";
5
-
6
- export namespace ArgumentParser {
7
- export type Inquiry<T> = (
8
- pack: PackageManager,
9
- command: commander.Command,
10
- prompt: (opt?: inquirer.StreamOptions) => inquirer.PromptModule,
11
- action: (closure: (options: Partial<T>) => Promise<T>) => Promise<T>,
12
- ) => Promise<T>;
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);
35
- });
36
- return inquiry(
37
- pack,
38
- commander.program,
39
- inquirer.createPromptModule,
40
- action,
41
- );
42
- };
43
- }
1
+ import commander from "commander";
2
+ import inquirer from "inquirer";
3
+
4
+ import { PackageManager } from "./PackageManager";
5
+
6
+ export namespace ArgumentParser {
7
+ export type Inquiry<T> = (
8
+ pack: PackageManager,
9
+ command: commander.Command,
10
+ prompt: (opt?: inquirer.StreamOptions) => inquirer.PromptModule,
11
+ action: (closure: (options: Partial<T>) => Promise<T>) => Promise<T>,
12
+ ) => Promise<T>;
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);
35
+ });
36
+ return inquiry(
37
+ pack,
38
+ commander.program,
39
+ inquirer.createPromptModule,
40
+ action,
41
+ );
42
+ };
43
+ }
@@ -1,8 +1,8 @@
1
- import cp from "child_process";
2
-
3
- export namespace CommandExecutor {
4
- export const run = (str: string): void => {
5
- console.log(`\n$ ${str}`);
6
- cp.execSync(str, { stdio: "inherit" });
7
- };
8
- }
1
+ import cp from "child_process";
2
+
3
+ export namespace CommandExecutor {
4
+ export const run = (str: string): void => {
5
+ console.log(`\n$ ${str}`);
6
+ cp.execSync(str, { stdio: "inherit" });
7
+ };
8
+ }
@@ -1,22 +1,22 @@
1
- import fs from "fs";
2
- import path from "path";
3
-
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
- };
22
- }
1
+ import fs from "fs";
2
+ import path from "path";
3
+
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
+ };
22
+ }
@@ -1,71 +1,71 @@
1
- import fs from "fs";
2
- import path from "path";
3
-
4
- import { CommandExecutor } from "./CommandExecutor";
5
- import { FileRetriever } from "./FileRetriever";
6
-
7
- export class PackageManager {
8
- public manager: string = "npm";
9
- public get file(): string {
10
- return path.join(this.directory, "package.json");
11
- }
12
-
13
- public static async mount(): Promise<PackageManager> {
14
- const location: string | null = await FileRetriever.directory(
15
- "package.json",
16
- )(process.cwd());
17
- if (location === null)
18
- throw new URIError(`Unable to find "package.json" file`);
19
-
20
- return new PackageManager(
21
- location,
22
- await this.load(path.join(location, "package.json")),
23
- );
24
- }
25
-
26
- public async save(modifier: (data: Package.Data) => void): Promise<void> {
27
- const content: string = await fs.promises.readFile(this.file, "utf8");
28
- this.data = JSON.parse(content);
29
- modifier(this.data);
30
-
31
- return fs.promises.writeFile(
32
- this.file,
33
- JSON.stringify(this.data, null, 2),
34
- "utf8",
35
- );
36
- }
37
-
38
- public install(props: {
39
- dev: boolean;
40
- modulo: string;
41
- version: string;
42
- }): boolean {
43
- const middle: string =
44
- this.manager === "yarn"
45
- ? `add${props.dev ? " -D" : ""}`
46
- : `install ${props.dev ? "--save-dev" : "--save"}`;
47
- CommandExecutor.run(
48
- `${this.manager} ${middle} ${props.modulo}${
49
- props.version ? `@${props.version}` : ""
50
- }`,
51
- );
52
- return true;
53
- }
54
-
55
- private constructor(
56
- public readonly directory: string,
57
- public data: Package.Data,
58
- ) {}
59
-
60
- private static async load(file: string): Promise<Package.Data> {
61
- const content: string = await fs.promises.readFile(file, "utf8");
62
- return JSON.parse(content);
63
- }
64
- }
65
- export namespace Package {
66
- export interface Data {
67
- scripts?: Record<string, string>;
68
- dependencies?: Record<string, string>;
69
- devDependencies?: Record<string, string>;
70
- }
71
- }
1
+ import fs from "fs";
2
+ import path from "path";
3
+
4
+ import { CommandExecutor } from "./CommandExecutor";
5
+ import { FileRetriever } from "./FileRetriever";
6
+
7
+ export class PackageManager {
8
+ public manager: string = "npm";
9
+ public get file(): string {
10
+ return path.join(this.directory, "package.json");
11
+ }
12
+
13
+ public static async mount(): Promise<PackageManager> {
14
+ const location: string | null = await FileRetriever.directory(
15
+ "package.json",
16
+ )(process.cwd());
17
+ if (location === null)
18
+ throw new URIError(`Unable to find "package.json" file`);
19
+
20
+ return new PackageManager(
21
+ location,
22
+ await this.load(path.join(location, "package.json")),
23
+ );
24
+ }
25
+
26
+ public async save(modifier: (data: Package.Data) => void): Promise<void> {
27
+ const content: string = await fs.promises.readFile(this.file, "utf8");
28
+ this.data = JSON.parse(content);
29
+ modifier(this.data);
30
+
31
+ return fs.promises.writeFile(
32
+ this.file,
33
+ JSON.stringify(this.data, null, 2),
34
+ "utf8",
35
+ );
36
+ }
37
+
38
+ public install(props: {
39
+ dev: boolean;
40
+ modulo: string;
41
+ version: string;
42
+ }): boolean {
43
+ const middle: string =
44
+ this.manager === "yarn"
45
+ ? `add${props.dev ? " -D" : ""}`
46
+ : `install ${props.dev ? "--save-dev" : "--save"}`;
47
+ CommandExecutor.run(
48
+ `${this.manager} ${middle} ${props.modulo}${
49
+ props.version ? `@${props.version}` : ""
50
+ }`,
51
+ );
52
+ return true;
53
+ }
54
+
55
+ private constructor(
56
+ public readonly directory: string,
57
+ public data: Package.Data,
58
+ ) {}
59
+
60
+ private static async load(file: string): Promise<Package.Data> {
61
+ const content: string = await fs.promises.readFile(file, "utf8");
62
+ return JSON.parse(content);
63
+ }
64
+ }
65
+ export namespace Package {
66
+ export interface Data {
67
+ scripts?: Record<string, string>;
68
+ dependencies?: Record<string, string>;
69
+ devDependencies?: Record<string, string>;
70
+ }
71
+ }