typia 5.3.12-dev.20240119 → 5.3.12-dev.20240122

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 (369) hide show
  1. package/lib/json.js +7 -7
  2. package/lib/json.js.map +1 -1
  3. package/lib/misc.js +8 -8
  4. package/lib/misc.js.map +1 -1
  5. package/lib/module.js +9 -9
  6. package/lib/module.js.map +1 -1
  7. package/package.json +1 -1
  8. package/src/AssertionGuard.ts +1 -1
  9. package/src/CamelCase.ts +114 -114
  10. package/src/IRandomGenerator.ts +35 -35
  11. package/src/IValidation.ts +21 -21
  12. package/src/PascalCase.ts +114 -114
  13. package/src/Primitive.ts +135 -135
  14. package/src/Resolved.ts +116 -116
  15. package/src/SnakeCase.ts +156 -156
  16. package/src/TypeGuardError.ts +36 -36
  17. package/src/executable/TypiaGenerateWizard.ts +83 -83
  18. package/src/executable/TypiaPatchWizard.ts +42 -42
  19. package/src/executable/TypiaSetupWizard.ts +151 -151
  20. package/src/executable/setup/ArgumentParser.ts +43 -43
  21. package/src/executable/setup/CommandExecutor.ts +8 -8
  22. package/src/executable/setup/FileRetriever.ts +22 -22
  23. package/src/executable/setup/PackageManager.ts +71 -71
  24. package/src/executable/setup/PluginConfigurator.ts +69 -69
  25. package/src/executable/typia.ts +55 -55
  26. package/src/factories/CommentFactory.ts +79 -79
  27. package/src/factories/ExpressionFactory.ts +150 -150
  28. package/src/factories/IdentifierFactory.ts +70 -70
  29. package/src/factories/JsonMetadataFactory.ts +53 -53
  30. package/src/factories/LiteralFactory.ts +47 -47
  31. package/src/factories/MetadataCollection.ts +260 -260
  32. package/src/factories/MetadataCommentTagFactory.ts +601 -601
  33. package/src/factories/MetadataFactory.ts +267 -267
  34. package/src/factories/MetadataTypeTagFactory.ts +313 -313
  35. package/src/factories/NumericRangeFactory.ts +72 -72
  36. package/src/factories/ProtobufFactory.ts +259 -259
  37. package/src/factories/StatementFactory.ts +72 -72
  38. package/src/factories/TemplateFactory.ts +56 -56
  39. package/src/factories/TypeFactory.ts +118 -118
  40. package/src/factories/ValueFactory.ts +12 -12
  41. package/src/factories/internal/metadata/MetadataHelper.ts +15 -15
  42. package/src/factories/internal/metadata/emend_metadata_atomics.ts +37 -37
  43. package/src/factories/internal/metadata/emplace_metadata_alias.ts +41 -41
  44. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +38 -38
  45. package/src/factories/internal/metadata/emplace_metadata_object.ts +175 -175
  46. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  47. package/src/factories/internal/metadata/explore_metadata.ts +28 -28
  48. package/src/factories/internal/metadata/iterate_metadata.ts +94 -94
  49. package/src/factories/internal/metadata/iterate_metadata_alias.ts +34 -34
  50. package/src/factories/internal/metadata/iterate_metadata_array.ts +37 -37
  51. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  52. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
  53. package/src/factories/internal/metadata/iterate_metadata_collection.ts +131 -131
  54. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +26 -26
  55. package/src/factories/internal/metadata/iterate_metadata_constant.ts +48 -48
  56. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +230 -230
  57. package/src/factories/internal/metadata/iterate_metadata_map.ts +50 -50
  58. package/src/factories/internal/metadata/iterate_metadata_native.ts +208 -208
  59. package/src/factories/internal/metadata/iterate_metadata_object.ts +43 -43
  60. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +52 -52
  61. package/src/factories/internal/metadata/iterate_metadata_set.ts +41 -41
  62. package/src/factories/internal/metadata/iterate_metadata_sort.ts +61 -61
  63. package/src/factories/internal/metadata/iterate_metadata_template.ts +44 -44
  64. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +37 -37
  65. package/src/factories/internal/metadata/iterate_metadata_union.ts +27 -27
  66. package/src/functional/$HeadersReader/$HeadersReader.ts +26 -26
  67. package/src/functional/$HeadersReader/index.ts +1 -1
  68. package/src/functional/$ParameterReader/$ParameterReader.ts +29 -29
  69. package/src/functional/$ParameterReader/index.ts +1 -1
  70. package/src/functional/$ProtobufReader.ts +195 -195
  71. package/src/functional/$ProtobufSizer.ts +147 -147
  72. package/src/functional/$ProtobufWriter.ts +150 -150
  73. package/src/functional/$QueryReader/$QueryReader.ts +46 -46
  74. package/src/functional/$QueryReader/index.ts +1 -1
  75. package/src/functional/$any.ts +4 -4
  76. package/src/functional/$clone.ts +4 -4
  77. package/src/functional/$convention.ts +37 -37
  78. package/src/functional/$dictionary.ts +22 -22
  79. package/src/functional/$every.ts +11 -11
  80. package/src/functional/$guard.ts +35 -35
  81. package/src/functional/$is_between.ts +2 -2
  82. package/src/functional/$join.ts +46 -46
  83. package/src/functional/$number.ts +12 -12
  84. package/src/functional/$report.ts +13 -13
  85. package/src/functional/$rest.ts +3 -3
  86. package/src/functional/$stoll.ts +8 -8
  87. package/src/functional/$string.ts +50 -50
  88. package/src/functional/$strlen.ts +7 -7
  89. package/src/functional/$tail.ts +5 -5
  90. package/src/functional/$throws.ts +10 -10
  91. package/src/functional/$varint.ts +130 -130
  92. package/src/functional/$zigzag.ts +39 -39
  93. package/src/functional/IProtobufWriter.ts +18 -18
  94. package/src/functional/Namespace/http.ts +7 -7
  95. package/src/functional/Namespace/index.ts +75 -75
  96. package/src/functional/Namespace/json.ts +15 -15
  97. package/src/functional/Namespace/misc.ts +14 -14
  98. package/src/functional/Namespace/notations.ts +23 -23
  99. package/src/functional/Namespace/protobuf.ts +20 -20
  100. package/src/functional/is.ts +10 -10
  101. package/src/http.ts +1267 -1267
  102. package/src/index.ts +4 -4
  103. package/src/json.ts +724 -724
  104. package/src/misc.ts +726 -726
  105. package/src/module.ts +965 -965
  106. package/src/notations.ts +977 -977
  107. package/src/programmers/AssertProgrammer.ts +293 -293
  108. package/src/programmers/CheckerProgrammer.ts +1025 -1025
  109. package/src/programmers/FeatureProgrammer.ts +460 -460
  110. package/src/programmers/IsProgrammer.ts +232 -232
  111. package/src/programmers/RandomProgrammer.ts +825 -825
  112. package/src/programmers/TypiaProgrammer.ts +167 -167
  113. package/src/programmers/ValidateProgrammer.ts +307 -307
  114. package/src/programmers/helpers/AtomicPredicator.ts +25 -25
  115. package/src/programmers/helpers/CloneJoiner.ts +130 -130
  116. package/src/programmers/helpers/FunctionImporeter.ts +87 -87
  117. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  118. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  119. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  120. package/src/programmers/helpers/NotationJoiner.ts +132 -132
  121. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  122. package/src/programmers/helpers/ProtobufUtil.ts +125 -125
  123. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  124. package/src/programmers/helpers/PruneJoiner.ts +141 -141
  125. package/src/programmers/helpers/RandomJoiner.ts +140 -140
  126. package/src/programmers/helpers/RandomRanger.ts +171 -171
  127. package/src/programmers/helpers/StringifyJoinder.ts +105 -105
  128. package/src/programmers/helpers/StringifyPredicator.ts +12 -12
  129. package/src/programmers/helpers/UnionExplorer.ts +269 -269
  130. package/src/programmers/helpers/UnionPredicator.ts +77 -77
  131. package/src/programmers/helpers/disable_function_importer_declare.ts +32 -32
  132. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +77 -77
  133. package/src/programmers/http/HttpAssertQueryProgrammer.ts +75 -75
  134. package/src/programmers/http/HttpHeadersProgrammer.ts +314 -314
  135. package/src/programmers/http/HttpIsHeadersProgrammer.ts +84 -84
  136. package/src/programmers/http/HttpIsQueryProgrammer.ts +82 -82
  137. package/src/programmers/http/HttpParameterProgrammer.ts +97 -97
  138. package/src/programmers/http/HttpQueryProgrammer.ts +252 -252
  139. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +77 -77
  140. package/src/programmers/http/HttpValidateQueryProgrammer.ts +75 -75
  141. package/src/programmers/internal/JSON_SCHEMA_PREFIX.ts +1 -1
  142. package/src/programmers/internal/application_alias.ts +74 -74
  143. package/src/programmers/internal/application_array.ts +59 -59
  144. package/src/programmers/internal/application_boolean.ts +35 -35
  145. package/src/programmers/internal/application_constant.ts +25 -25
  146. package/src/programmers/internal/application_default.ts +17 -17
  147. package/src/programmers/internal/application_default_string.ts +33 -33
  148. package/src/programmers/internal/application_escaped.ts +52 -52
  149. package/src/programmers/internal/application_native.ts +34 -34
  150. package/src/programmers/internal/application_number.ts +97 -97
  151. package/src/programmers/internal/application_object.ts +183 -183
  152. package/src/programmers/internal/application_schema.ts +165 -165
  153. package/src/programmers/internal/application_string.ts +61 -61
  154. package/src/programmers/internal/application_templates.ts +24 -24
  155. package/src/programmers/internal/application_tuple.ts +54 -54
  156. package/src/programmers/internal/check_array_length.ts +45 -45
  157. package/src/programmers/internal/check_bigint.ts +49 -49
  158. package/src/programmers/internal/check_dynamic_key.ts +175 -175
  159. package/src/programmers/internal/check_dynamic_properties.ts +198 -198
  160. package/src/programmers/internal/check_everything.ts +23 -23
  161. package/src/programmers/internal/check_native.ts +21 -21
  162. package/src/programmers/internal/check_number.ts +106 -106
  163. package/src/programmers/internal/check_object.ts +60 -60
  164. package/src/programmers/internal/check_string.ts +48 -48
  165. package/src/programmers/internal/check_template.ts +61 -61
  166. package/src/programmers/internal/check_union_array_like.ts +307 -307
  167. package/src/programmers/internal/decode_union_object.ts +78 -78
  168. package/src/programmers/internal/feature_object_entries.ts +58 -58
  169. package/src/programmers/internal/metadata_to_pattern.ts +33 -33
  170. package/src/programmers/internal/prune_object_properties.ts +60 -60
  171. package/src/programmers/internal/random_custom.ts +37 -37
  172. package/src/programmers/internal/stringify_dynamic_properties.ts +157 -157
  173. package/src/programmers/internal/stringify_native.ts +7 -7
  174. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  175. package/src/programmers/internal/template_to_pattern.ts +15 -15
  176. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +20 -20
  177. package/src/programmers/json/JsonApplicationProgrammer.ts +49 -49
  178. package/src/programmers/json/JsonAssertParseProgrammer.ts +67 -67
  179. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +61 -61
  180. package/src/programmers/json/JsonIsParseProgrammer.ts +73 -73
  181. package/src/programmers/json/JsonIsStringifyProgrammer.ts +75 -75
  182. package/src/programmers/json/JsonStringifyProgrammer.ts +893 -893
  183. package/src/programmers/json/JsonValidateParseProgrammer.ts +64 -64
  184. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +83 -83
  185. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +63 -63
  186. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +60 -60
  187. package/src/programmers/misc/MiscCloneProgrammer.ts +713 -713
  188. package/src/programmers/misc/MiscIsCloneProgrammer.ts +70 -70
  189. package/src/programmers/misc/MiscIsPruneProgrammer.ts +66 -66
  190. package/src/programmers/misc/MiscLiteralsProgrammer.ts +72 -72
  191. package/src/programmers/misc/MiscPruneProgrammer.ts +523 -523
  192. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +80 -80
  193. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +73 -73
  194. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +64 -64
  195. package/src/programmers/notations/NotationGeneralProgrammer.ts +647 -647
  196. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +71 -71
  197. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +81 -81
  198. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +75 -75
  199. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +61 -61
  200. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +607 -607
  201. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +819 -819
  202. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +82 -82
  203. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +75 -75
  204. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +160 -160
  205. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +75 -75
  206. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +83 -83
  207. package/src/protobuf.ts +970 -970
  208. package/src/reflect.ts +57 -57
  209. package/src/schemas/json/IJsonApplication.ts +9 -9
  210. package/src/schemas/json/IJsonComponents.ts +19 -19
  211. package/src/schemas/json/IJsonSchema.ts +122 -122
  212. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  213. package/src/schemas/metadata/IMetadata.ts +34 -34
  214. package/src/schemas/metadata/IMetadataAlias.ts +12 -12
  215. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  216. package/src/schemas/metadata/IMetadataArray.ts +7 -7
  217. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  218. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  219. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  220. package/src/schemas/metadata/IMetadataConstant.ts +23 -23
  221. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  222. package/src/schemas/metadata/IMetadataEntry.ts +6 -6
  223. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  224. package/src/schemas/metadata/IMetadataObject.ts +13 -13
  225. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  226. package/src/schemas/metadata/IMetadataTuple.ts +7 -7
  227. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  228. package/src/schemas/metadata/IMetadataTypeTag.ts +15 -15
  229. package/src/schemas/metadata/Metadata.ts +612 -612
  230. package/src/schemas/metadata/MetadataAlias.ts +61 -61
  231. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  232. package/src/schemas/metadata/MetadataArray.ts +49 -49
  233. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  234. package/src/schemas/metadata/MetadataAtomic.ts +84 -84
  235. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  236. package/src/schemas/metadata/MetadataConstant.ts +46 -46
  237. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  238. package/src/schemas/metadata/MetadataObject.ts +154 -154
  239. package/src/schemas/metadata/MetadataProperty.ts +56 -56
  240. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  241. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  242. package/src/tags/Default.ts +15 -15
  243. package/src/tags/ExclusiveMaximum.ts +13 -13
  244. package/src/tags/ExclusiveMinimum.ts +13 -13
  245. package/src/tags/Format.ts +30 -30
  246. package/src/tags/MaxItems.ts +9 -9
  247. package/src/tags/MaxLength.ts +9 -9
  248. package/src/tags/Maximum.ts +13 -13
  249. package/src/tags/MinItems.ts +9 -9
  250. package/src/tags/MinLength.ts +9 -9
  251. package/src/tags/Minimum.ts +13 -13
  252. package/src/tags/MultipleOf.ts +15 -15
  253. package/src/tags/Pattern.ts +9 -9
  254. package/src/tags/TagBase.ts +68 -68
  255. package/src/tags/Type.ts +27 -27
  256. package/src/tags/index.ts +14 -14
  257. package/src/transform.ts +35 -35
  258. package/src/transformers/CallExpressionTransformer.ts +351 -351
  259. package/src/transformers/FileTransformer.ts +91 -91
  260. package/src/transformers/IProject.ts +15 -15
  261. package/src/transformers/ITransformOptions.ts +62 -62
  262. package/src/transformers/ImportTransformer.ts +66 -66
  263. package/src/transformers/NodeTransformer.ts +13 -13
  264. package/src/transformers/TransformerError.ts +55 -55
  265. package/src/transformers/features/AssertTransformer.ts +16 -16
  266. package/src/transformers/features/CreateAssertTransformer.ts +16 -16
  267. package/src/transformers/features/CreateIsTransformer.ts +10 -10
  268. package/src/transformers/features/CreateRandomTransformer.ts +40 -40
  269. package/src/transformers/features/CreateValidateTransformer.ts +13 -13
  270. package/src/transformers/features/IsTransformer.ts +10 -10
  271. package/src/transformers/features/RandomTransformer.ts +44 -44
  272. package/src/transformers/features/ValidateTransformer.ts +11 -11
  273. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +11 -11
  274. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +9 -9
  275. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +9 -9
  276. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +9 -9
  277. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +9 -9
  278. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +9 -9
  279. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +9 -9
  280. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +12 -12
  281. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +11 -11
  282. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +9 -9
  283. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +9 -9
  284. package/src/transformers/features/http/HttpHeadersTransformer.ts +9 -9
  285. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +9 -9
  286. package/src/transformers/features/http/HttpIsQueryTransformer.ts +9 -9
  287. package/src/transformers/features/http/HttpParameterTransformer.ts +9 -9
  288. package/src/transformers/features/http/HttpQueryTransformer.ts +9 -9
  289. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +10 -10
  290. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +9 -9
  291. package/src/transformers/features/json/JsonApplicationTransformer.ts +134 -134
  292. package/src/transformers/features/json/JsonAssertParseTransformer.ts +9 -9
  293. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +10 -10
  294. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +9 -9
  295. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +12 -12
  296. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +9 -9
  297. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +9 -9
  298. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +9 -9
  299. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +11 -11
  300. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +12 -12
  301. package/src/transformers/features/json/JsonIsParseTransformer.ts +9 -9
  302. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +9 -9
  303. package/src/transformers/features/json/JsonStringifyTransformer.ts +9 -9
  304. package/src/transformers/features/json/JsonValidateParseTransformer.ts +9 -9
  305. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +10 -10
  306. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +9 -9
  307. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +9 -9
  308. package/src/transformers/features/misc/MiscCloneTransformer.ts +9 -9
  309. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +9 -9
  310. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +9 -9
  311. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +9 -9
  312. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +9 -9
  313. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +9 -9
  314. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +9 -9
  315. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +11 -11
  316. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +11 -11
  317. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +9 -9
  318. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +9 -9
  319. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +32 -32
  320. package/src/transformers/features/misc/MiscPruneTransformer.ts +9 -9
  321. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +9 -9
  322. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +9 -9
  323. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +15 -15
  324. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +15 -15
  325. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +15 -15
  326. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +15 -15
  327. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +15 -15
  328. package/src/transformers/features/notations/NotationGeneralTransformer.ts +11 -11
  329. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +15 -15
  330. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +15 -15
  331. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +10 -10
  332. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +10 -10
  333. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +12 -12
  334. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +12 -12
  335. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +9 -9
  336. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +9 -9
  337. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +9 -9
  338. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +9 -9
  339. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +12 -12
  340. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +12 -12
  341. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +9 -9
  342. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +9 -9
  343. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +9 -9
  344. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +9 -9
  345. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +33 -33
  346. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +10 -10
  347. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +10 -10
  348. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +63 -63
  349. package/src/transformers/internal/GenericTransformer.ts +96 -96
  350. package/src/typings/Atomic.ts +13 -13
  351. package/src/typings/ClassProperties.ts +5 -5
  352. package/src/typings/Customizable.ts +5 -5
  353. package/src/typings/OmitNever.ts +3 -3
  354. package/src/typings/ProtobufAtomic.ts +19 -19
  355. package/src/typings/SpecialFields.ts +3 -3
  356. package/src/typings/ValidationPipe.ts +9 -9
  357. package/src/typings/Writable.ts +11 -11
  358. package/src/utils/ArrayUtil.ts +43 -43
  359. package/src/utils/Escaper.ts +46 -46
  360. package/src/utils/MapUtil.ts +12 -12
  361. package/src/utils/NameEncoder.ts +32 -32
  362. package/src/utils/NamingConvention/NamingConvention.ts +77 -77
  363. package/src/utils/NamingConvention/index.ts +1 -1
  364. package/src/utils/PatternUtil.ts +29 -29
  365. package/src/utils/RandomGenerator/RandomGenerator.ts +74 -74
  366. package/src/utils/RandomGenerator/index.ts +1 -1
  367. package/src/utils/Singleton.ts +16 -16
  368. package/src/utils/StringUtil/StringUtil.ts +2 -2
  369. package/src/utils/StringUtil/index.ts +1 -1
@@ -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
+ }
@@ -1,69 +1,69 @@
1
- import comments from "comment-json";
2
- import fs from "fs";
3
-
4
- import { TypiaSetupWizard } from "../TypiaSetupWizard";
5
-
6
- export namespace PluginConfigurator {
7
- export async function configure(
8
- args: TypiaSetupWizard.IArguments,
9
- ): Promise<void> {
10
- // GET COMPILER-OPTIONS
11
- const config: comments.CommentObject = comments.parse(
12
- await fs.promises.readFile(args.project!, "utf8"),
13
- ) as comments.CommentObject;
14
- const compilerOptions = config.compilerOptions as
15
- | comments.CommentObject
16
- | undefined;
17
- if (compilerOptions === undefined)
18
- throw new ReferenceError(
19
- `${args.project} file does not have "compilerOptions" property.`,
20
- );
21
-
22
- // PREPARE PLUGINS
23
- const plugins: comments.CommentArray<comments.CommentObject> = (() => {
24
- const plugins = compilerOptions.plugins as
25
- | comments.CommentArray<comments.CommentObject>
26
- | undefined;
27
- if (plugins === undefined) return (compilerOptions.plugins = [] as any);
28
- else if (!Array.isArray(plugins))
29
- throw new TypeError(
30
- `"plugins" property of ${args.project} must be array type.`,
31
- );
32
- return plugins;
33
- })();
34
-
35
- const strict: boolean | undefined = compilerOptions.strict as
36
- | boolean
37
- | undefined;
38
- const strictNullChecks: boolean | undefined =
39
- compilerOptions.strictNullChecks as boolean | undefined;
40
- const oldbie: comments.CommentObject | undefined = plugins.find(
41
- (p) =>
42
- typeof p === "object" &&
43
- p !== null &&
44
- p.transform === "typia/lib/transform",
45
- );
46
- if (
47
- strictNullChecks !== false &&
48
- (strict === true || strictNullChecks === true) &&
49
- oldbie !== undefined
50
- )
51
- return;
52
-
53
- // DO CONFIGURE
54
- compilerOptions.strictNullChecks = true;
55
- if (strict === undefined && strictNullChecks === undefined)
56
- compilerOptions.strict = true;
57
- if (oldbie === undefined)
58
- plugins.push(
59
- comments.parse(`
60
- {
61
- "transform": "typia/lib/transform"
62
- }`) as comments.CommentObject,
63
- );
64
- await fs.promises.writeFile(
65
- args.project!,
66
- comments.stringify(config, null, 2),
67
- );
68
- }
69
- }
1
+ import comments from "comment-json";
2
+ import fs from "fs";
3
+
4
+ import { TypiaSetupWizard } from "../TypiaSetupWizard";
5
+
6
+ export namespace PluginConfigurator {
7
+ export async function configure(
8
+ args: TypiaSetupWizard.IArguments,
9
+ ): Promise<void> {
10
+ // GET COMPILER-OPTIONS
11
+ const config: comments.CommentObject = comments.parse(
12
+ await fs.promises.readFile(args.project!, "utf8"),
13
+ ) as comments.CommentObject;
14
+ const compilerOptions = config.compilerOptions as
15
+ | comments.CommentObject
16
+ | undefined;
17
+ if (compilerOptions === undefined)
18
+ throw new ReferenceError(
19
+ `${args.project} file does not have "compilerOptions" property.`,
20
+ );
21
+
22
+ // PREPARE PLUGINS
23
+ const plugins: comments.CommentArray<comments.CommentObject> = (() => {
24
+ const plugins = compilerOptions.plugins as
25
+ | comments.CommentArray<comments.CommentObject>
26
+ | undefined;
27
+ if (plugins === undefined) return (compilerOptions.plugins = [] as any);
28
+ else if (!Array.isArray(plugins))
29
+ throw new TypeError(
30
+ `"plugins" property of ${args.project} must be array type.`,
31
+ );
32
+ return plugins;
33
+ })();
34
+
35
+ const strict: boolean | undefined = compilerOptions.strict as
36
+ | boolean
37
+ | undefined;
38
+ const strictNullChecks: boolean | undefined =
39
+ compilerOptions.strictNullChecks as boolean | undefined;
40
+ const oldbie: comments.CommentObject | undefined = plugins.find(
41
+ (p) =>
42
+ typeof p === "object" &&
43
+ p !== null &&
44
+ p.transform === "typia/lib/transform",
45
+ );
46
+ if (
47
+ strictNullChecks !== false &&
48
+ (strict === true || strictNullChecks === true) &&
49
+ oldbie !== undefined
50
+ )
51
+ return;
52
+
53
+ // DO CONFIGURE
54
+ compilerOptions.strictNullChecks = true;
55
+ if (strict === undefined && strictNullChecks === undefined)
56
+ compilerOptions.strict = true;
57
+ if (oldbie === undefined)
58
+ plugins.push(
59
+ comments.parse(`
60
+ {
61
+ "transform": "typia/lib/transform"
62
+ }`) as comments.CommentObject,
63
+ );
64
+ await fs.promises.writeFile(
65
+ args.project!,
66
+ comments.stringify(config, null, 2),
67
+ );
68
+ }
69
+ }
@@ -1,55 +1,55 @@
1
- #!/usr/bin/env node
2
- const USAGE = `Wrong command has been detected. Use like below:
3
-
4
- npx typia setup \\
5
- --manager (npm|pnpm|yarn) \\
6
- --project {tsconfig.json file path}
7
-
8
- - npx typia setup
9
- - npx typia setup --manager pnpm
10
- - npx typia setup --project tsconfig.test.json
11
-
12
- npx typia generate
13
- --input {directory} \\
14
- --output {directory}
15
-
16
- --npx typia generate --input src/templates --output src/functinoal
17
- `;
18
-
19
- const halt = (desc: string): never => {
20
- console.error(desc);
21
- process.exit(-1);
22
- };
23
-
24
- const main = async (): Promise<void> => {
25
- try {
26
- await import("comment-json");
27
- await import("inquirer");
28
- await import("commander");
29
- } catch {
30
- halt(`typia has not been installed. Run "npm i typia" before.`);
31
- }
32
-
33
- const type: string | undefined = process.argv[2];
34
- if (type === "setup") {
35
- const { TypiaSetupWizard } = await import("./TypiaSetupWizard");
36
- await TypiaSetupWizard.setup();
37
- } else if (type === "patch") {
38
- const { TypiaPatchWizard } = await import("./TypiaPatchWizard");
39
- await TypiaPatchWizard.main();
40
- } else if (type === "generate") {
41
- try {
42
- await import("typescript");
43
- } catch {
44
- halt(
45
- `typescript has not been installed. Run "npm i -D typescript" before.`,
46
- );
47
- }
48
- const { TypiaGenerateWizard } = await import("./TypiaGenerateWizard");
49
- await TypiaGenerateWizard.generate();
50
- } else halt(USAGE);
51
- };
52
- main().catch((exp) => {
53
- console.error(exp);
54
- process.exit(-1);
55
- });
1
+ #!/usr/bin/env node
2
+ const USAGE = `Wrong command has been detected. Use like below:
3
+
4
+ npx typia setup \\
5
+ --manager (npm|pnpm|yarn) \\
6
+ --project {tsconfig.json file path}
7
+
8
+ - npx typia setup
9
+ - npx typia setup --manager pnpm
10
+ - npx typia setup --project tsconfig.test.json
11
+
12
+ npx typia generate
13
+ --input {directory} \\
14
+ --output {directory}
15
+
16
+ --npx typia generate --input src/templates --output src/functinoal
17
+ `;
18
+
19
+ const halt = (desc: string): never => {
20
+ console.error(desc);
21
+ process.exit(-1);
22
+ };
23
+
24
+ const main = async (): Promise<void> => {
25
+ try {
26
+ await import("comment-json");
27
+ await import("inquirer");
28
+ await import("commander");
29
+ } catch {
30
+ halt(`typia has not been installed. Run "npm i typia" before.`);
31
+ }
32
+
33
+ const type: string | undefined = process.argv[2];
34
+ if (type === "setup") {
35
+ const { TypiaSetupWizard } = await import("./TypiaSetupWizard");
36
+ await TypiaSetupWizard.setup();
37
+ } else if (type === "patch") {
38
+ const { TypiaPatchWizard } = await import("./TypiaPatchWizard");
39
+ await TypiaPatchWizard.main();
40
+ } else if (type === "generate") {
41
+ try {
42
+ await import("typescript");
43
+ } catch {
44
+ halt(
45
+ `typescript has not been installed. Run "npm i -D typescript" before.`,
46
+ );
47
+ }
48
+ const { TypiaGenerateWizard } = await import("./TypiaGenerateWizard");
49
+ await TypiaGenerateWizard.generate();
50
+ } else halt(USAGE);
51
+ };
52
+ main().catch((exp) => {
53
+ console.error(exp);
54
+ process.exit(-1);
55
+ });
@@ -1,79 +1,79 @@
1
- import ts from "typescript";
2
-
3
- export namespace CommentFactory {
4
- export const description = (
5
- symbol: ts.Symbol,
6
- includeTags: boolean = false,
7
- ): string | undefined => {
8
- const node = symbol.declarations?.[0];
9
- if (!node) return undefined;
10
-
11
- // FOR LEGACY TS < 5.2
12
- const [major, minor] = ts.versionMajorMinor.split(".").map(Number) as [
13
- number,
14
- number,
15
- ];
16
- if (major < 5 || (major === 5 && minor < 1)) {
17
- const content: string[] = [];
18
- const main: string = ts.displayPartsToString(
19
- symbol.getDocumentationComment(undefined),
20
- );
21
- if (main.length) {
22
- content.push(main);
23
- if (includeTags && symbol.getJsDocTags().length) content.push("");
24
- }
25
- if (includeTags)
26
- for (const tag of symbol.getJsDocTags()) {
27
- content.push(
28
- tag.text
29
- ? `@${tag.name} ${ts.displayPartsToString(tag.text)}`
30
- : `@${tag.name}`,
31
- );
32
- }
33
- return content.length
34
- ? content.map((line) => line.split("\r\n").join("\n")).join("\n")
35
- : undefined;
36
- }
37
-
38
- // NEW FEATURE OF TS 5.2
39
- const elements: readonly (ts.JSDoc | ts.JSDocTag)[] =
40
- ts.getJSDocCommentsAndTags(node);
41
- if (elements.length === 0) return undefined;
42
-
43
- const content: string[] = [];
44
- for (const comment of elements) {
45
- if (ts.isJSDoc(comment)) {
46
- const parsed: string | undefined = ts.getTextOfJSDocComment(
47
- comment.comment,
48
- );
49
- if (parsed?.length) {
50
- content.push(parsed);
51
- if (includeTags && comment.tags?.length) content.push("");
52
- }
53
- if (includeTags)
54
- for (const tag of comment.tags ?? [])
55
- content.push(parseJSDocTag(tag));
56
- } else if (includeTags) content.push(parseJSDocTag(comment));
57
- }
58
- const output: string = content
59
- .map((line) => line.split("\r\n").join("\n"))
60
- .join("\n");
61
- return output.length ? output : undefined;
62
- };
63
-
64
- export const merge = (comments: ts.SymbolDisplayPart[]): string =>
65
- comments
66
- .map((part) => part.text)
67
- .map((str) => str.split("\r\n").join("\n"))
68
- .join("");
69
- }
70
-
71
- const parseJSDocTag = (tag: ts.JSDocTag): string => {
72
- const name: string | undefined = (
73
- tag as ts.JSDocParameterTag
74
- ).name?.getText();
75
- const parsed: string | undefined = ts.getTextOfJSDocComment(tag.comment);
76
- return [`@${tag.tagName.text}`, name, parsed]
77
- .filter((str) => !!str?.length)
78
- .join(" ");
79
- };
1
+ import ts from "typescript";
2
+
3
+ export namespace CommentFactory {
4
+ export const description = (
5
+ symbol: ts.Symbol,
6
+ includeTags: boolean = false,
7
+ ): string | undefined => {
8
+ const node = symbol.declarations?.[0];
9
+ if (!node) return undefined;
10
+
11
+ // FOR LEGACY TS < 5.2
12
+ const [major, minor] = ts.versionMajorMinor.split(".").map(Number) as [
13
+ number,
14
+ number,
15
+ ];
16
+ if (major < 5 || (major === 5 && minor < 1)) {
17
+ const content: string[] = [];
18
+ const main: string = ts.displayPartsToString(
19
+ symbol.getDocumentationComment(undefined),
20
+ );
21
+ if (main.length) {
22
+ content.push(main);
23
+ if (includeTags && symbol.getJsDocTags().length) content.push("");
24
+ }
25
+ if (includeTags)
26
+ for (const tag of symbol.getJsDocTags()) {
27
+ content.push(
28
+ tag.text
29
+ ? `@${tag.name} ${ts.displayPartsToString(tag.text)}`
30
+ : `@${tag.name}`,
31
+ );
32
+ }
33
+ return content.length
34
+ ? content.map((line) => line.split("\r\n").join("\n")).join("\n")
35
+ : undefined;
36
+ }
37
+
38
+ // NEW FEATURE OF TS 5.2
39
+ const elements: readonly (ts.JSDoc | ts.JSDocTag)[] =
40
+ ts.getJSDocCommentsAndTags(node);
41
+ if (elements.length === 0) return undefined;
42
+
43
+ const content: string[] = [];
44
+ for (const comment of elements) {
45
+ if (ts.isJSDoc(comment)) {
46
+ const parsed: string | undefined = ts.getTextOfJSDocComment(
47
+ comment.comment,
48
+ );
49
+ if (parsed?.length) {
50
+ content.push(parsed);
51
+ if (includeTags && comment.tags?.length) content.push("");
52
+ }
53
+ if (includeTags)
54
+ for (const tag of comment.tags ?? [])
55
+ content.push(parseJSDocTag(tag));
56
+ } else if (includeTags) content.push(parseJSDocTag(comment));
57
+ }
58
+ const output: string = content
59
+ .map((line) => line.split("\r\n").join("\n"))
60
+ .join("\n");
61
+ return output.length ? output : undefined;
62
+ };
63
+
64
+ export const merge = (comments: ts.SymbolDisplayPart[]): string =>
65
+ comments
66
+ .map((part) => part.text)
67
+ .map((str) => str.split("\r\n").join("\n"))
68
+ .join("");
69
+ }
70
+
71
+ const parseJSDocTag = (tag: ts.JSDocTag): string => {
72
+ const name: string | undefined = (
73
+ tag as ts.JSDocParameterTag
74
+ ).name?.getText();
75
+ const parsed: string | undefined = ts.getTextOfJSDocComment(tag.comment);
76
+ return [`@${tag.tagName.text}`, name, parsed]
77
+ .filter((str) => !!str?.length)
78
+ .join(" ");
79
+ };