typia 5.3.0-dev.20231120 → 5.3.0-dev.20231126

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 (524) hide show
  1. package/lib/TypeGuardError.js.map +1 -1
  2. package/lib/executable/TypiaPatchWizard.d.ts +4 -0
  3. package/lib/executable/TypiaPatchWizard.js +89 -0
  4. package/lib/executable/TypiaPatchWizard.js.map +1 -0
  5. package/lib/executable/TypiaSetupWizard.js +13 -3
  6. package/lib/executable/TypiaSetupWizard.js.map +1 -1
  7. package/lib/executable/typia.js +24 -15
  8. package/lib/executable/typia.js.map +1 -1
  9. package/lib/factories/CommentFactory.d.ts +1 -0
  10. package/lib/factories/CommentFactory.js.map +1 -1
  11. package/lib/factories/ExpressionFactory.d.ts +1 -0
  12. package/lib/factories/IdentifierFactory.d.ts +1 -0
  13. package/lib/factories/JsonMetadataFactory.d.ts +1 -0
  14. package/lib/factories/LiteralFactory.d.ts +1 -0
  15. package/lib/factories/MetadataCollection.d.ts +1 -0
  16. package/lib/factories/MetadataCommentTagFactory.js.map +1 -1
  17. package/lib/factories/MetadataFactory.d.ts +1 -0
  18. package/lib/factories/MetadataFactory.js.map +1 -1
  19. package/lib/factories/MetadataTypeTagFactory.js.map +1 -1
  20. package/lib/factories/NumericRangeFactory.d.ts +1 -0
  21. package/lib/factories/ProtobufFactory.d.ts +1 -0
  22. package/lib/factories/ProtobufFactory.js.map +1 -1
  23. package/lib/factories/StatementFactory.d.ts +1 -0
  24. package/lib/factories/TemplateFactory.d.ts +1 -0
  25. package/lib/factories/TemplateFactory.js.map +1 -1
  26. package/lib/factories/TypeFactory.d.ts +1 -0
  27. package/lib/factories/TypeFactory.js.map +1 -1
  28. package/lib/factories/ValueFactory.d.ts +1 -0
  29. package/lib/factories/internal/metadata/emend_metadata_atomics.js.map +1 -1
  30. package/lib/factories/internal/metadata/emplace_metadata_alias.d.ts +1 -0
  31. package/lib/factories/internal/metadata/emplace_metadata_array_type.d.ts +1 -0
  32. package/lib/factories/internal/metadata/emplace_metadata_object.d.ts +1 -0
  33. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
  34. package/lib/factories/internal/metadata/emplace_metadata_tuple.d.ts +1 -0
  35. package/lib/factories/internal/metadata/explore_metadata.d.ts +1 -0
  36. package/lib/factories/internal/metadata/explore_metadata.js.map +1 -1
  37. package/lib/factories/internal/metadata/iterate_metadata.d.ts +1 -0
  38. package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
  39. package/lib/factories/internal/metadata/iterate_metadata_alias.d.ts +1 -0
  40. package/lib/factories/internal/metadata/iterate_metadata_array.d.ts +1 -0
  41. package/lib/factories/internal/metadata/iterate_metadata_atomic.d.ts +1 -0
  42. package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -1
  43. package/lib/factories/internal/metadata/iterate_metadata_coalesce.d.ts +1 -0
  44. package/lib/factories/internal/metadata/iterate_metadata_coalesce.js.map +1 -1
  45. package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
  46. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.js.map +1 -1
  47. package/lib/factories/internal/metadata/iterate_metadata_constant.d.ts +1 -0
  48. package/lib/factories/internal/metadata/iterate_metadata_constant.js.map +1 -1
  49. package/lib/factories/internal/metadata/iterate_metadata_intersection.d.ts +1 -0
  50. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  51. package/lib/factories/internal/metadata/iterate_metadata_map.d.ts +1 -0
  52. package/lib/factories/internal/metadata/iterate_metadata_native.d.ts +1 -0
  53. package/lib/factories/internal/metadata/iterate_metadata_native.js.map +1 -1
  54. package/lib/factories/internal/metadata/iterate_metadata_object.d.ts +1 -0
  55. package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
  56. package/lib/factories/internal/metadata/iterate_metadata_resolve.d.ts +1 -0
  57. package/lib/factories/internal/metadata/iterate_metadata_resolve.js.map +1 -1
  58. package/lib/factories/internal/metadata/iterate_metadata_set.d.ts +1 -0
  59. package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
  60. package/lib/factories/internal/metadata/iterate_metadata_template.d.ts +1 -0
  61. package/lib/factories/internal/metadata/iterate_metadata_tuple.d.ts +1 -0
  62. package/lib/factories/internal/metadata/iterate_metadata_union.d.ts +1 -0
  63. package/lib/functional/$HeadersReader.js.map +1 -1
  64. package/lib/functional/$ParameterReader.js.map +1 -1
  65. package/lib/functional/$ProtobufReader.js.map +1 -1
  66. package/lib/functional/$ProtobufSizer.js.map +1 -1
  67. package/lib/functional/$ProtobufWriter.js.map +1 -1
  68. package/lib/functional/$QueryReader.js.map +1 -1
  69. package/lib/functional/$stoll.js.map +1 -1
  70. package/lib/functional/$string.js.map +1 -1
  71. package/lib/functional/$varint.js.map +1 -1
  72. package/lib/functional/$zigzag.js.map +1 -1
  73. package/lib/functional/Namespace.js.map +1 -1
  74. package/lib/http.js +1 -1
  75. package/lib/http.js.map +1 -1
  76. package/lib/misc.js +1 -1
  77. package/lib/misc.js.map +1 -1
  78. package/lib/programmers/AssertProgrammer.d.ts +1 -0
  79. package/lib/programmers/CheckerProgrammer.d.ts +1 -0
  80. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  81. package/lib/programmers/FeatureProgrammer.d.ts +1 -0
  82. package/lib/programmers/IsProgrammer.d.ts +1 -0
  83. package/lib/programmers/IsProgrammer.js.map +1 -1
  84. package/lib/programmers/RandomProgrammer.d.ts +1 -0
  85. package/lib/programmers/ValidateProgrammer.d.ts +1 -0
  86. package/lib/programmers/helpers/CloneJoiner.d.ts +1 -0
  87. package/lib/programmers/helpers/FunctionImporeter.d.ts +1 -0
  88. package/lib/programmers/helpers/ICheckEntry.d.ts +1 -0
  89. package/lib/programmers/helpers/IExpressionEntry.d.ts +1 -0
  90. package/lib/programmers/helpers/NotationJoiner.d.ts +1 -0
  91. package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
  92. package/lib/programmers/helpers/PruneJoiner.d.ts +1 -0
  93. package/lib/programmers/helpers/RandomJoiner.d.ts +1 -0
  94. package/lib/programmers/helpers/RandomRanger.d.ts +1 -0
  95. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  96. package/lib/programmers/helpers/StringifyJoinder.d.ts +1 -0
  97. package/lib/programmers/helpers/UnionExplorer.d.ts +1 -0
  98. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  99. package/lib/programmers/helpers/UnionPredicator.js.map +1 -1
  100. package/lib/programmers/http/HttpAssertHeadersProgrammer.d.ts +1 -0
  101. package/lib/programmers/http/HttpAssertQueryProgrammer.d.ts +1 -0
  102. package/lib/programmers/http/HttpHeadersProgrammer.d.ts +1 -0
  103. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  104. package/lib/programmers/http/HttpIsHeadersProgrammer.d.ts +1 -0
  105. package/lib/programmers/http/HttpIsQueryProgrammer.d.ts +1 -0
  106. package/lib/programmers/http/HttpParameterProgrammer.d.ts +1 -0
  107. package/lib/programmers/http/HttpQueryProgrammer.d.ts +1 -0
  108. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  109. package/lib/programmers/http/HttpValidateHeadersProgrammer.d.ts +1 -0
  110. package/lib/programmers/http/HttpValidateQueryProgrammer.d.ts +1 -0
  111. package/lib/programmers/internal/application_alias.js.map +1 -1
  112. package/lib/programmers/internal/application_escaped.js.map +1 -1
  113. package/lib/programmers/internal/application_native.js.map +1 -1
  114. package/lib/programmers/internal/application_number.js.map +1 -1
  115. package/lib/programmers/internal/application_object.js.map +1 -1
  116. package/lib/programmers/internal/application_schema.js.map +1 -1
  117. package/lib/programmers/internal/check_dynamic_key.d.ts +1 -0
  118. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  119. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  120. package/lib/programmers/json/JsonAssertParseProgrammer.d.ts +1 -0
  121. package/lib/programmers/json/JsonAssertStringifyProgrammer.d.ts +1 -0
  122. package/lib/programmers/json/JsonIsParseProgrammer.d.ts +1 -0
  123. package/lib/programmers/json/JsonIsStringifyProgrammer.d.ts +1 -0
  124. package/lib/programmers/json/JsonStringifyProgrammer.d.ts +1 -0
  125. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  126. package/lib/programmers/json/JsonValidateParseProgrammer.d.ts +1 -0
  127. package/lib/programmers/json/JsonValidateStringifyProgrammer.d.ts +1 -0
  128. package/lib/programmers/misc/MiscAssertCloneProgrammer.d.ts +1 -0
  129. package/lib/programmers/misc/MiscAssertPruneProgrammer.d.ts +1 -0
  130. package/lib/programmers/misc/MiscCloneProgrammer.d.ts +1 -0
  131. package/lib/programmers/misc/MiscIsCloneProgrammer.d.ts +1 -0
  132. package/lib/programmers/misc/MiscIsPruneProgrammer.d.ts +1 -0
  133. package/lib/programmers/misc/MiscLiteralsProgrammer.d.ts +1 -0
  134. package/lib/programmers/misc/MiscPruneProgrammer.d.ts +1 -0
  135. package/lib/programmers/misc/MiscValidateCloneProgrammer.d.ts +1 -0
  136. package/lib/programmers/misc/MiscValidatePruneProgrammer.d.ts +1 -0
  137. package/lib/programmers/notations/NotationAssertGeneralProgrammer.d.ts +1 -0
  138. package/lib/programmers/notations/NotationGeneralProgrammer.d.ts +1 -0
  139. package/lib/programmers/notations/NotationIsGeneralProgrammer.d.ts +1 -0
  140. package/lib/programmers/notations/NotationValidateGeneralProgrammer.d.ts +1 -0
  141. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.d.ts +1 -0
  142. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.d.ts +1 -0
  143. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.d.ts +1 -0
  144. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  145. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.d.ts +1 -0
  146. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  147. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.d.ts +1 -0
  148. package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.d.ts +1 -0
  149. package/lib/programmers/protobuf/ProtobufMessageProgrammer.d.ts +1 -0
  150. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  151. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.d.ts +1 -0
  152. package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.d.ts +1 -0
  153. package/lib/schemas/metadata/Metadata.js.map +1 -1
  154. package/lib/schemas/metadata/MetadataArray.js.map +1 -1
  155. package/lib/schemas/metadata/MetadataAtomic.js.map +1 -1
  156. package/lib/transform.d.ts +1 -0
  157. package/lib/transformers/CallExpressionTransformer.d.ts +1 -0
  158. package/lib/transformers/FileTransformer.d.ts +2 -1
  159. package/lib/transformers/FileTransformer.js +27 -7
  160. package/lib/transformers/FileTransformer.js.map +1 -1
  161. package/lib/transformers/IProject.d.ts +1 -0
  162. package/lib/transformers/ImportTransformer.d.ts +1 -0
  163. package/lib/transformers/NodeTransformer.d.ts +1 -0
  164. package/lib/transformers/TransformerError.js.map +1 -1
  165. package/lib/transformers/features/CreateRandomTransformer.d.ts +1 -0
  166. package/lib/transformers/features/RandomTransformer.d.ts +1 -0
  167. package/lib/transformers/features/json/JsonApplicationTransformer.d.ts +1 -0
  168. package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
  169. package/lib/transformers/features/misc/MiscLiteralsTransformer.d.ts +1 -0
  170. package/lib/transformers/features/protobuf/ProtobufMessageTransformer.d.ts +1 -0
  171. package/lib/transformers/features/reflect/ReflectMetadataTransformer.d.ts +1 -0
  172. package/lib/transformers/internal/GenericTransformer.d.ts +1 -0
  173. package/lib/utils/NamingConvention.js.map +1 -1
  174. package/package.json +14 -68
  175. package/src/AssertionGuard.ts +1 -1
  176. package/src/CamelCase.ts +114 -114
  177. package/src/IRandomGenerator.ts +35 -35
  178. package/src/IValidation.ts +21 -21
  179. package/src/PascalCase.ts +114 -114
  180. package/src/Primitive.ts +135 -135
  181. package/src/Resolved.ts +116 -116
  182. package/src/SnakeCase.ts +156 -156
  183. package/src/TypeGuardError.ts +36 -36
  184. package/src/executable/TypiaGenerateWizard.ts +83 -83
  185. package/src/executable/TypiaPatchWizard.ts +31 -0
  186. package/src/executable/TypiaSetupWizard.ts +153 -140
  187. package/src/executable/setup/ArgumentParser.ts +43 -43
  188. package/src/executable/setup/CommandExecutor.ts +8 -8
  189. package/src/executable/setup/FileRetriever.ts +22 -22
  190. package/src/executable/setup/PackageManager.ts +71 -71
  191. package/src/executable/setup/PluginConfigurator.ts +69 -69
  192. package/src/executable/typia.ts +55 -52
  193. package/src/factories/CommentFactory.ts +79 -79
  194. package/src/factories/ExpressionFactory.ts +150 -150
  195. package/src/factories/IdentifierFactory.ts +70 -70
  196. package/src/factories/JsonMetadataFactory.ts +53 -53
  197. package/src/factories/LiteralFactory.ts +47 -47
  198. package/src/factories/MetadataCollection.ts +269 -269
  199. package/src/factories/MetadataCommentTagFactory.ts +601 -601
  200. package/src/factories/MetadataFactory.ts +267 -267
  201. package/src/factories/MetadataTypeTagFactory.ts +313 -313
  202. package/src/factories/NumericRangeFactory.ts +72 -72
  203. package/src/factories/ProtobufFactory.ts +259 -259
  204. package/src/factories/StatementFactory.ts +72 -72
  205. package/src/factories/TemplateFactory.ts +56 -56
  206. package/src/factories/TypeFactory.ts +118 -118
  207. package/src/factories/ValueFactory.ts +12 -12
  208. package/src/factories/internal/metadata/MetadataHelper.ts +15 -15
  209. package/src/factories/internal/metadata/emend_metadata_atomics.ts +37 -37
  210. package/src/factories/internal/metadata/emplace_metadata_alias.ts +41 -41
  211. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +38 -38
  212. package/src/factories/internal/metadata/emplace_metadata_object.ts +175 -175
  213. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  214. package/src/factories/internal/metadata/explore_metadata.ts +28 -28
  215. package/src/factories/internal/metadata/iterate_metadata.ts +94 -94
  216. package/src/factories/internal/metadata/iterate_metadata_alias.ts +34 -34
  217. package/src/factories/internal/metadata/iterate_metadata_array.ts +37 -37
  218. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  219. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
  220. package/src/factories/internal/metadata/iterate_metadata_collection.ts +131 -131
  221. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +26 -26
  222. package/src/factories/internal/metadata/iterate_metadata_constant.ts +48 -48
  223. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +233 -233
  224. package/src/factories/internal/metadata/iterate_metadata_map.ts +50 -50
  225. package/src/factories/internal/metadata/iterate_metadata_native.ts +208 -208
  226. package/src/factories/internal/metadata/iterate_metadata_object.ts +43 -43
  227. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +52 -52
  228. package/src/factories/internal/metadata/iterate_metadata_set.ts +41 -41
  229. package/src/factories/internal/metadata/iterate_metadata_sort.ts +61 -61
  230. package/src/factories/internal/metadata/iterate_metadata_template.ts +44 -44
  231. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +37 -37
  232. package/src/factories/internal/metadata/iterate_metadata_union.ts +27 -27
  233. package/src/functional/$HeadersReader.ts +28 -28
  234. package/src/functional/$ParameterReader.ts +31 -31
  235. package/src/functional/$ProtobufReader.ts +195 -195
  236. package/src/functional/$ProtobufSizer.ts +147 -147
  237. package/src/functional/$ProtobufWriter.ts +150 -150
  238. package/src/functional/$QueryReader.ts +56 -56
  239. package/src/functional/$any.ts +4 -4
  240. package/src/functional/$clone.ts +4 -4
  241. package/src/functional/$convention.ts +37 -37
  242. package/src/functional/$dictionary.ts +22 -22
  243. package/src/functional/$every.ts +11 -11
  244. package/src/functional/$from.ts +5 -5
  245. package/src/functional/$guard.ts +35 -35
  246. package/src/functional/$is_between.ts +2 -2
  247. package/src/functional/$join.ts +46 -46
  248. package/src/functional/$number.ts +12 -12
  249. package/src/functional/$report.ts +13 -13
  250. package/src/functional/$rest.ts +3 -3
  251. package/src/functional/$stoll.ts +8 -8
  252. package/src/functional/$string.ts +50 -50
  253. package/src/functional/$strlen.ts +7 -7
  254. package/src/functional/$tail.ts +5 -5
  255. package/src/functional/$varint.ts +130 -130
  256. package/src/functional/$zigzag.ts +39 -39
  257. package/src/functional/IProtobufWriter.ts +18 -18
  258. package/src/functional/Namespace.ts +174 -174
  259. package/src/http.ts +1149 -1149
  260. package/src/index.ts +4 -4
  261. package/src/json.ts +648 -648
  262. package/src/misc.ts +651 -651
  263. package/src/module.ts +896 -896
  264. package/src/notations.ts +855 -855
  265. package/src/programmers/AssertProgrammer.ts +293 -293
  266. package/src/programmers/CheckerProgrammer.ts +1025 -1025
  267. package/src/programmers/FeatureProgrammer.ts +460 -460
  268. package/src/programmers/IsProgrammer.ts +232 -232
  269. package/src/programmers/RandomProgrammer.ts +825 -825
  270. package/src/programmers/TypiaProgrammer.ts +167 -167
  271. package/src/programmers/ValidateProgrammer.ts +307 -307
  272. package/src/programmers/helpers/AtomicPredicator.ts +25 -25
  273. package/src/programmers/helpers/CloneJoiner.ts +130 -130
  274. package/src/programmers/helpers/FunctionImporeter.ts +87 -87
  275. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  276. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  277. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  278. package/src/programmers/helpers/NotationJoiner.ts +132 -132
  279. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  280. package/src/programmers/helpers/ProtobufUtil.ts +125 -125
  281. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  282. package/src/programmers/helpers/PruneJoiner.ts +141 -141
  283. package/src/programmers/helpers/RandomJoiner.ts +140 -140
  284. package/src/programmers/helpers/RandomRanger.ts +164 -164
  285. package/src/programmers/helpers/StringifyJoinder.ts +105 -105
  286. package/src/programmers/helpers/StringifyPredicator.ts +12 -12
  287. package/src/programmers/helpers/UnionExplorer.ts +269 -269
  288. package/src/programmers/helpers/UnionPredicator.ts +77 -77
  289. package/src/programmers/helpers/disable_function_importer_declare.ts +32 -32
  290. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +77 -77
  291. package/src/programmers/http/HttpAssertQueryProgrammer.ts +75 -75
  292. package/src/programmers/http/HttpHeadersProgrammer.ts +314 -314
  293. package/src/programmers/http/HttpIsHeadersProgrammer.ts +84 -84
  294. package/src/programmers/http/HttpIsQueryProgrammer.ts +82 -82
  295. package/src/programmers/http/HttpParameterProgrammer.ts +97 -97
  296. package/src/programmers/http/HttpQueryProgrammer.ts +252 -252
  297. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +77 -77
  298. package/src/programmers/http/HttpValidateQueryProgrammer.ts +75 -75
  299. package/src/programmers/internal/JSON_SCHEMA_PREFIX.ts +1 -1
  300. package/src/programmers/internal/application_alias.ts +65 -65
  301. package/src/programmers/internal/application_array.ts +59 -59
  302. package/src/programmers/internal/application_boolean.ts +30 -30
  303. package/src/programmers/internal/application_constant.ts +26 -26
  304. package/src/programmers/internal/application_default.ts +17 -17
  305. package/src/programmers/internal/application_default_string.ts +33 -33
  306. package/src/programmers/internal/application_escaped.ts +53 -53
  307. package/src/programmers/internal/application_native.ts +38 -38
  308. package/src/programmers/internal/application_number.ts +94 -94
  309. package/src/programmers/internal/application_object.ts +153 -153
  310. package/src/programmers/internal/application_schema.ts +180 -180
  311. package/src/programmers/internal/application_string.ts +58 -58
  312. package/src/programmers/internal/application_templates.ts +25 -25
  313. package/src/programmers/internal/application_tuple.ts +55 -55
  314. package/src/programmers/internal/check_array_length.ts +45 -45
  315. package/src/programmers/internal/check_bigint.ts +49 -49
  316. package/src/programmers/internal/check_dynamic_key.ts +175 -175
  317. package/src/programmers/internal/check_dynamic_properties.ts +198 -198
  318. package/src/programmers/internal/check_everything.ts +23 -23
  319. package/src/programmers/internal/check_native.ts +21 -21
  320. package/src/programmers/internal/check_number.ts +106 -106
  321. package/src/programmers/internal/check_object.ts +60 -60
  322. package/src/programmers/internal/check_string.ts +48 -48
  323. package/src/programmers/internal/check_template.ts +61 -61
  324. package/src/programmers/internal/check_union_array_like.ts +307 -307
  325. package/src/programmers/internal/decode_union_object.ts +78 -78
  326. package/src/programmers/internal/feature_object_entries.ts +58 -58
  327. package/src/programmers/internal/metadata_to_pattern.ts +33 -33
  328. package/src/programmers/internal/prune_object_properties.ts +60 -60
  329. package/src/programmers/internal/random_custom.ts +37 -37
  330. package/src/programmers/internal/stringify_dynamic_properties.ts +157 -157
  331. package/src/programmers/internal/stringify_native.ts +7 -7
  332. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  333. package/src/programmers/internal/template_to_pattern.ts +15 -15
  334. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +20 -20
  335. package/src/programmers/json/JsonApplicationProgrammer.ts +50 -50
  336. package/src/programmers/json/JsonAssertParseProgrammer.ts +67 -67
  337. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +61 -61
  338. package/src/programmers/json/JsonIsParseProgrammer.ts +73 -73
  339. package/src/programmers/json/JsonIsStringifyProgrammer.ts +75 -75
  340. package/src/programmers/json/JsonStringifyProgrammer.ts +893 -893
  341. package/src/programmers/json/JsonValidateParseProgrammer.ts +64 -64
  342. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +83 -83
  343. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +63 -63
  344. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +60 -60
  345. package/src/programmers/misc/MiscCloneProgrammer.ts +713 -713
  346. package/src/programmers/misc/MiscIsCloneProgrammer.ts +70 -70
  347. package/src/programmers/misc/MiscIsPruneProgrammer.ts +66 -66
  348. package/src/programmers/misc/MiscLiteralsProgrammer.ts +72 -72
  349. package/src/programmers/misc/MiscPruneProgrammer.ts +523 -523
  350. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +80 -80
  351. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +73 -73
  352. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +64 -64
  353. package/src/programmers/notations/NotationGeneralProgrammer.ts +647 -647
  354. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +71 -71
  355. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +81 -81
  356. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +75 -75
  357. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +61 -61
  358. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +607 -607
  359. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +819 -819
  360. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +82 -82
  361. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +75 -75
  362. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +160 -160
  363. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +75 -75
  364. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +83 -83
  365. package/src/protobuf.ts +887 -887
  366. package/src/reflect.ts +24 -24
  367. package/src/schemas/json/IJsonApplication.ts +8 -8
  368. package/src/schemas/json/IJsonComponents.ts +36 -36
  369. package/src/schemas/json/IJsonSchema.ts +113 -113
  370. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  371. package/src/schemas/metadata/IMetadata.ts +34 -34
  372. package/src/schemas/metadata/IMetadataAlias.ts +12 -12
  373. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  374. package/src/schemas/metadata/IMetadataArray.ts +7 -7
  375. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  376. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  377. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  378. package/src/schemas/metadata/IMetadataConstant.ts +23 -23
  379. package/src/schemas/metadata/IMetadataDictionary.ts +14 -14
  380. package/src/schemas/metadata/IMetadataEntry.ts +6 -6
  381. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  382. package/src/schemas/metadata/IMetadataObject.ts +18 -18
  383. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  384. package/src/schemas/metadata/IMetadataTuple.ts +7 -7
  385. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  386. package/src/schemas/metadata/IMetadataTypeTag.ts +15 -15
  387. package/src/schemas/metadata/Metadata.ts +596 -596
  388. package/src/schemas/metadata/MetadataAlias.ts +61 -61
  389. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  390. package/src/schemas/metadata/MetadataArray.ts +49 -49
  391. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  392. package/src/schemas/metadata/MetadataAtomic.ts +84 -84
  393. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  394. package/src/schemas/metadata/MetadataConstant.ts +46 -46
  395. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  396. package/src/schemas/metadata/MetadataObject.ts +135 -135
  397. package/src/schemas/metadata/MetadataProperty.ts +56 -56
  398. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  399. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  400. package/src/tags/Default.ts +15 -15
  401. package/src/tags/ExclusiveMaximum.ts +13 -13
  402. package/src/tags/ExclusiveMinimum.ts +13 -13
  403. package/src/tags/Format.ts +30 -30
  404. package/src/tags/MaxItems.ts +9 -9
  405. package/src/tags/MaxLength.ts +9 -9
  406. package/src/tags/Maximum.ts +13 -13
  407. package/src/tags/MinItems.ts +9 -9
  408. package/src/tags/MinLength.ts +9 -9
  409. package/src/tags/Minimum.ts +13 -13
  410. package/src/tags/MultipleOf.ts +15 -15
  411. package/src/tags/Pattern.ts +9 -9
  412. package/src/tags/TagBase.ts +68 -68
  413. package/src/tags/Type.ts +27 -27
  414. package/src/tags/index.ts +14 -14
  415. package/src/transform.ts +35 -35
  416. package/src/transformers/CallExpressionTransformer.ts +359 -359
  417. package/src/transformers/FileTransformer.ts +91 -57
  418. package/src/transformers/IProject.ts +15 -15
  419. package/src/transformers/ITransformOptions.ts +62 -62
  420. package/src/transformers/ImportTransformer.ts +66 -66
  421. package/src/transformers/NodeTransformer.ts +13 -13
  422. package/src/transformers/TransformerError.ts +55 -55
  423. package/src/transformers/features/AssertTransformer.ts +16 -16
  424. package/src/transformers/features/CreateAssertTransformer.ts +16 -16
  425. package/src/transformers/features/CreateIsTransformer.ts +10 -10
  426. package/src/transformers/features/CreateRandomTransformer.ts +40 -40
  427. package/src/transformers/features/CreateValidateTransformer.ts +13 -13
  428. package/src/transformers/features/IsTransformer.ts +10 -10
  429. package/src/transformers/features/RandomTransformer.ts +44 -44
  430. package/src/transformers/features/ValidateTransformer.ts +11 -11
  431. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +11 -11
  432. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +9 -9
  433. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +9 -9
  434. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +9 -9
  435. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +9 -9
  436. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +9 -9
  437. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +9 -9
  438. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +12 -12
  439. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +11 -11
  440. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +9 -9
  441. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +9 -9
  442. package/src/transformers/features/http/HttpHeadersTransformer.ts +9 -9
  443. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +9 -9
  444. package/src/transformers/features/http/HttpIsQueryTransformer.ts +9 -9
  445. package/src/transformers/features/http/HttpParameterTransformer.ts +9 -9
  446. package/src/transformers/features/http/HttpQueryTransformer.ts +9 -9
  447. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +10 -10
  448. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +9 -9
  449. package/src/transformers/features/json/JsonApplicationTransformer.ts +121 -121
  450. package/src/transformers/features/json/JsonAssertParseTransformer.ts +9 -9
  451. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +10 -10
  452. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +9 -9
  453. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +12 -12
  454. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +9 -9
  455. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +9 -9
  456. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +9 -9
  457. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +11 -11
  458. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +12 -12
  459. package/src/transformers/features/json/JsonIsParseTransformer.ts +9 -9
  460. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +9 -9
  461. package/src/transformers/features/json/JsonStringifyTransformer.ts +9 -9
  462. package/src/transformers/features/json/JsonValidateParseTransformer.ts +9 -9
  463. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +10 -10
  464. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +9 -9
  465. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +9 -9
  466. package/src/transformers/features/misc/MiscCloneTransformer.ts +9 -9
  467. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +9 -9
  468. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +9 -9
  469. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +9 -9
  470. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +9 -9
  471. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +9 -9
  472. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +9 -9
  473. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +11 -11
  474. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +11 -11
  475. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +9 -9
  476. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +9 -9
  477. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +32 -32
  478. package/src/transformers/features/misc/MiscPruneTransformer.ts +9 -9
  479. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +9 -9
  480. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +9 -9
  481. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +15 -15
  482. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +15 -15
  483. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +15 -15
  484. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +15 -15
  485. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +15 -15
  486. package/src/transformers/features/notations/NotationGeneralTransformer.ts +11 -11
  487. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +15 -15
  488. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +15 -15
  489. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +10 -10
  490. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +10 -10
  491. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +12 -12
  492. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +12 -12
  493. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +9 -9
  494. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +9 -9
  495. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +9 -9
  496. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +9 -9
  497. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +12 -12
  498. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +12 -12
  499. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +9 -9
  500. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +9 -9
  501. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +9 -9
  502. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +9 -9
  503. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +33 -33
  504. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +10 -10
  505. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +10 -10
  506. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +73 -73
  507. package/src/transformers/internal/GenericTransformer.ts +96 -96
  508. package/src/typings/Atomic.ts +13 -13
  509. package/src/typings/ClassProperties.ts +5 -5
  510. package/src/typings/Customizable.ts +5 -5
  511. package/src/typings/OmitNever.ts +3 -3
  512. package/src/typings/ProtobufAtomic.ts +19 -19
  513. package/src/typings/SpecialFields.ts +3 -3
  514. package/src/typings/ValidationPipe.ts +9 -9
  515. package/src/typings/Writable.ts +11 -11
  516. package/src/utils/ArrayUtil.ts +43 -43
  517. package/src/utils/Escaper.ts +46 -46
  518. package/src/utils/MapUtil.ts +12 -12
  519. package/src/utils/NameEncoder.ts +32 -32
  520. package/src/utils/NamingConvention.ts +87 -87
  521. package/src/utils/PatternUtil.ts +29 -29
  522. package/src/utils/RandomGenerator.ts +83 -83
  523. package/src/utils/Singleton.ts +16 -16
  524. package/src/utils/StringUtil.ts +4 -4
package/src/CamelCase.ts CHANGED
@@ -1,114 +1,114 @@
1
- /**
2
- * Camel case type.
3
- *
4
- * `CamelCase` type is a type that all keys of an object are camelized.
5
- *
6
- * It also erase every method properties like {@link Resolved} type.
7
- *
8
- * @template T Target type to be camelized
9
- * @author Jeongho Nam - https://github.com/samchon
10
- */
11
- export type CamelCase<T> = Equal<T, CamelizeMain<T>> extends true
12
- ? T
13
- : CamelizeMain<T>;
14
-
15
- /* -----------------------------------------------------------
16
- OBJECT CONVERSION
17
- ----------------------------------------------------------- */
18
- type Equal<X, Y> = X extends Y ? (Y extends X ? true : false) : false;
19
-
20
- type CamelizeMain<T> = T extends [never]
21
- ? never // special trick for (jsonable | null) type
22
- : T extends { valueOf(): boolean | bigint | number | string }
23
- ? ValueOf<T>
24
- : T extends Function
25
- ? never
26
- : T extends object
27
- ? CamelizeObject<T>
28
- : T;
29
-
30
- type CamelizeObject<T extends object> = T extends Array<infer U>
31
- ? IsTuple<T> extends true
32
- ? CamelizeTuple<T>
33
- : CamelizeMain<U>[]
34
- : T extends Set<infer U>
35
- ? Set<CamelizeMain<U>>
36
- : T extends Map<infer K, infer V>
37
- ? Map<CamelizeMain<K>, CamelizeMain<V>>
38
- : T extends WeakSet<any> | WeakMap<any, any>
39
- ? never
40
- : T extends
41
- | Date
42
- | Uint8Array
43
- | Uint8ClampedArray
44
- | Uint16Array
45
- | Uint32Array
46
- | BigUint64Array
47
- | Int8Array
48
- | Int16Array
49
- | Int32Array
50
- | BigInt64Array
51
- | Float32Array
52
- | Float64Array
53
- | ArrayBuffer
54
- | SharedArrayBuffer
55
- | DataView
56
- ? T
57
- : {
58
- [Key in keyof T as CamelizeString<Key & string>]: CamelizeMain<T[Key]>;
59
- };
60
-
61
- /* -----------------------------------------------------------
62
- SPECIAL CASES
63
- ----------------------------------------------------------- */
64
- type IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
65
- never,
66
- ]
67
- ? false
68
- : T extends readonly any[]
69
- ? number extends T["length"]
70
- ? false
71
- : true
72
- : false;
73
- type CamelizeTuple<T extends readonly any[]> = T extends []
74
- ? []
75
- : T extends [infer F]
76
- ? [CamelizeMain<F>]
77
- : T extends [infer F, ...infer Rest extends readonly any[]]
78
- ? [CamelizeMain<F>, ...CamelizeTuple<Rest>]
79
- : T extends [(infer F)?]
80
- ? [CamelizeMain<F>?]
81
- : T extends [(infer F)?, ...infer Rest extends readonly any[]]
82
- ? [CamelizeMain<F>?, ...CamelizeTuple<Rest>]
83
- : [];
84
-
85
- type ValueOf<Instance> = IsValueOf<Instance, Boolean> extends true
86
- ? boolean
87
- : IsValueOf<Instance, Number> extends true
88
- ? number
89
- : IsValueOf<Instance, String> extends true
90
- ? string
91
- : Instance;
92
-
93
- type IsValueOf<Instance, Object extends IValueOf<any>> = Instance extends Object
94
- ? Object extends IValueOf<infer Primitive>
95
- ? Instance extends Primitive
96
- ? false
97
- : true // not Primitive, but Object
98
- : false // cannot be
99
- : false;
100
-
101
- interface IValueOf<T> {
102
- valueOf(): T;
103
- }
104
-
105
- /* -----------------------------------------------------------
106
- STRING CONVERTER
107
- ----------------------------------------------------------- */
108
- type CamelizeString<Key extends string> = Key extends `${infer F}${infer R}`
109
- ? `${Lowercase<F>}${CamelizeStringRepeatedly<R>}`
110
- : Key;
111
- type CamelizeStringRepeatedly<Key extends string> =
112
- Key extends `${infer F}_${infer R}`
113
- ? `${F}${Capitalize<CamelizeStringRepeatedly<R>>}`
114
- : Key;
1
+ /**
2
+ * Camel case type.
3
+ *
4
+ * `CamelCase` type is a type that all keys of an object are camelized.
5
+ *
6
+ * It also erase every method properties like {@link Resolved} type.
7
+ *
8
+ * @template T Target type to be camelized
9
+ * @author Jeongho Nam - https://github.com/samchon
10
+ */
11
+ export type CamelCase<T> = Equal<T, CamelizeMain<T>> extends true
12
+ ? T
13
+ : CamelizeMain<T>;
14
+
15
+ /* -----------------------------------------------------------
16
+ OBJECT CONVERSION
17
+ ----------------------------------------------------------- */
18
+ type Equal<X, Y> = X extends Y ? (Y extends X ? true : false) : false;
19
+
20
+ type CamelizeMain<T> = T extends [never]
21
+ ? never // special trick for (jsonable | null) type
22
+ : T extends { valueOf(): boolean | bigint | number | string }
23
+ ? ValueOf<T>
24
+ : T extends Function
25
+ ? never
26
+ : T extends object
27
+ ? CamelizeObject<T>
28
+ : T;
29
+
30
+ type CamelizeObject<T extends object> = T extends Array<infer U>
31
+ ? IsTuple<T> extends true
32
+ ? CamelizeTuple<T>
33
+ : CamelizeMain<U>[]
34
+ : T extends Set<infer U>
35
+ ? Set<CamelizeMain<U>>
36
+ : T extends Map<infer K, infer V>
37
+ ? Map<CamelizeMain<K>, CamelizeMain<V>>
38
+ : T extends WeakSet<any> | WeakMap<any, any>
39
+ ? never
40
+ : T extends
41
+ | Date
42
+ | Uint8Array
43
+ | Uint8ClampedArray
44
+ | Uint16Array
45
+ | Uint32Array
46
+ | BigUint64Array
47
+ | Int8Array
48
+ | Int16Array
49
+ | Int32Array
50
+ | BigInt64Array
51
+ | Float32Array
52
+ | Float64Array
53
+ | ArrayBuffer
54
+ | SharedArrayBuffer
55
+ | DataView
56
+ ? T
57
+ : {
58
+ [Key in keyof T as CamelizeString<Key & string>]: CamelizeMain<T[Key]>;
59
+ };
60
+
61
+ /* -----------------------------------------------------------
62
+ SPECIAL CASES
63
+ ----------------------------------------------------------- */
64
+ type IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
65
+ never,
66
+ ]
67
+ ? false
68
+ : T extends readonly any[]
69
+ ? number extends T["length"]
70
+ ? false
71
+ : true
72
+ : false;
73
+ type CamelizeTuple<T extends readonly any[]> = T extends []
74
+ ? []
75
+ : T extends [infer F]
76
+ ? [CamelizeMain<F>]
77
+ : T extends [infer F, ...infer Rest extends readonly any[]]
78
+ ? [CamelizeMain<F>, ...CamelizeTuple<Rest>]
79
+ : T extends [(infer F)?]
80
+ ? [CamelizeMain<F>?]
81
+ : T extends [(infer F)?, ...infer Rest extends readonly any[]]
82
+ ? [CamelizeMain<F>?, ...CamelizeTuple<Rest>]
83
+ : [];
84
+
85
+ type ValueOf<Instance> = IsValueOf<Instance, Boolean> extends true
86
+ ? boolean
87
+ : IsValueOf<Instance, Number> extends true
88
+ ? number
89
+ : IsValueOf<Instance, String> extends true
90
+ ? string
91
+ : Instance;
92
+
93
+ type IsValueOf<Instance, Object extends IValueOf<any>> = Instance extends Object
94
+ ? Object extends IValueOf<infer Primitive>
95
+ ? Instance extends Primitive
96
+ ? false
97
+ : true // not Primitive, but Object
98
+ : false // cannot be
99
+ : false;
100
+
101
+ interface IValueOf<T> {
102
+ valueOf(): T;
103
+ }
104
+
105
+ /* -----------------------------------------------------------
106
+ STRING CONVERTER
107
+ ----------------------------------------------------------- */
108
+ type CamelizeString<Key extends string> = Key extends `${infer F}${infer R}`
109
+ ? `${Lowercase<F>}${CamelizeStringRepeatedly<R>}`
110
+ : Key;
111
+ type CamelizeStringRepeatedly<Key extends string> =
112
+ Key extends `${infer F}_${infer R}`
113
+ ? `${F}${Capitalize<CamelizeStringRepeatedly<R>>}`
114
+ : Key;
@@ -1,35 +1,35 @@
1
- import { Customizable } from "./typings/Customizable";
2
-
3
- export interface IRandomGenerator {
4
- boolean(): boolean;
5
- integer(minimum?: number, maximum?: number): number;
6
- number(minimum?: number, maximum?: number): number;
7
- bigint(minimum?: bigint, maximum?: bigint): bigint;
8
- string(length?: number): string;
9
- array<T>(closure: (index: number) => T, count?: number): T[];
10
- length(): number;
11
-
12
- uuid(): string;
13
- email(): string;
14
- url(): string;
15
- ipv4(): string;
16
- ipv6(): string;
17
- pattern(regex: RegExp): string;
18
- date(minimum?: number, maximum?: number): string;
19
- datetime(minimum?: number, maximum?: number): string;
20
-
21
- customs?: IRandomGenerator.CustomMap;
22
- }
23
- export namespace IRandomGenerator {
24
- export type CustomMap = {
25
- [Type in keyof Customizable]?: (
26
- tags: ITypeTag[],
27
- ) => Customizable[Type] | undefined;
28
- };
29
-
30
- export interface ITypeTag {
31
- name: string;
32
- kind: string;
33
- value: any;
34
- }
35
- }
1
+ import { Customizable } from "./typings/Customizable";
2
+
3
+ export interface IRandomGenerator {
4
+ boolean(): boolean;
5
+ integer(minimum?: number, maximum?: number): number;
6
+ number(minimum?: number, maximum?: number): number;
7
+ bigint(minimum?: bigint, maximum?: bigint): bigint;
8
+ string(length?: number): string;
9
+ array<T>(closure: (index: number) => T, count?: number): T[];
10
+ length(): number;
11
+
12
+ uuid(): string;
13
+ email(): string;
14
+ url(): string;
15
+ ipv4(): string;
16
+ ipv6(): string;
17
+ pattern(regex: RegExp): string;
18
+ date(minimum?: number, maximum?: number): string;
19
+ datetime(minimum?: number, maximum?: number): string;
20
+
21
+ customs?: IRandomGenerator.CustomMap;
22
+ }
23
+ export namespace IRandomGenerator {
24
+ export type CustomMap = {
25
+ [Type in keyof Customizable]?: (
26
+ tags: ITypeTag[],
27
+ ) => Customizable[Type] | undefined;
28
+ };
29
+
30
+ export interface ITypeTag {
31
+ name: string;
32
+ kind: string;
33
+ value: any;
34
+ }
35
+ }
@@ -1,21 +1,21 @@
1
- export type IValidation<T = unknown> =
2
- | IValidation.ISuccess<T>
3
- | IValidation.IFailure;
4
- export namespace IValidation {
5
- export interface ISuccess<T = unknown> {
6
- success: true;
7
- data: T;
8
- errors: [];
9
- }
10
-
11
- export interface IFailure {
12
- success: false;
13
- errors: IError[];
14
- }
15
-
16
- export interface IError {
17
- path: string;
18
- expected: string;
19
- value: any;
20
- }
21
- }
1
+ export type IValidation<T = unknown> =
2
+ | IValidation.ISuccess<T>
3
+ | IValidation.IFailure;
4
+ export namespace IValidation {
5
+ export interface ISuccess<T = unknown> {
6
+ success: true;
7
+ data: T;
8
+ errors: [];
9
+ }
10
+
11
+ export interface IFailure {
12
+ success: false;
13
+ errors: IError[];
14
+ }
15
+
16
+ export interface IError {
17
+ path: string;
18
+ expected: string;
19
+ value: any;
20
+ }
21
+ }
package/src/PascalCase.ts CHANGED
@@ -1,114 +1,114 @@
1
- /**
2
- * Pascal case type.
3
- *
4
- * `PascalCase` type is a type that all keys of an object are pascalized.
5
- *
6
- * It also erase every method properties like {@link Resolved} type.
7
- *
8
- * @template T Target type to be pascalized
9
- * @author Jeongho Nam - https://github.com/samchon
10
- */
11
- export type PascalCase<T> = Equal<T, PascalizeMain<T>> extends true
12
- ? T
13
- : PascalizeMain<T>;
14
-
15
- /* -----------------------------------------------------------
16
- OBJECT CONVERSION
17
- ----------------------------------------------------------- */
18
- type Equal<X, Y> = X extends Y ? (Y extends X ? true : false) : false;
19
-
20
- type PascalizeMain<T> = T extends [never]
21
- ? never // special trick for (jsonable | null) type
22
- : T extends { valueOf(): boolean | bigint | number | string }
23
- ? ValueOf<T>
24
- : T extends Function
25
- ? never
26
- : T extends object
27
- ? PascalizeObject<T>
28
- : T;
29
-
30
- type PascalizeObject<T extends object> = T extends Array<infer U>
31
- ? IsTuple<T> extends true
32
- ? PascalizeTuple<T>
33
- : PascalizeMain<U>[]
34
- : T extends Set<infer U>
35
- ? Set<PascalizeMain<U>>
36
- : T extends Map<infer K, infer V>
37
- ? Map<PascalizeMain<K>, PascalizeMain<V>>
38
- : T extends WeakSet<any> | WeakMap<any, any>
39
- ? never
40
- : T extends
41
- | Date
42
- | Uint8Array
43
- | Uint8ClampedArray
44
- | Uint16Array
45
- | Uint32Array
46
- | BigUint64Array
47
- | Int8Array
48
- | Int16Array
49
- | Int32Array
50
- | BigInt64Array
51
- | Float32Array
52
- | Float64Array
53
- | ArrayBuffer
54
- | SharedArrayBuffer
55
- | DataView
56
- ? T
57
- : {
58
- [Key in keyof T as PascalizeString<Key & string>]: PascalizeMain<T[Key]>;
59
- };
60
-
61
- /* -----------------------------------------------------------
62
- SPECIAL CASES
63
- ----------------------------------------------------------- */
64
- type IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
65
- never,
66
- ]
67
- ? false
68
- : T extends readonly any[]
69
- ? number extends T["length"]
70
- ? false
71
- : true
72
- : false;
73
- type PascalizeTuple<T extends readonly any[]> = T extends []
74
- ? []
75
- : T extends [infer F]
76
- ? [PascalizeMain<F>]
77
- : T extends [infer F, ...infer Rest extends readonly any[]]
78
- ? [PascalizeMain<F>, ...PascalizeTuple<Rest>]
79
- : T extends [(infer F)?]
80
- ? [PascalizeMain<F>?]
81
- : T extends [(infer F)?, ...infer Rest extends readonly any[]]
82
- ? [PascalizeMain<F>?, ...PascalizeTuple<Rest>]
83
- : [];
84
-
85
- type ValueOf<Instance> = IsValueOf<Instance, Boolean> extends true
86
- ? boolean
87
- : IsValueOf<Instance, Number> extends true
88
- ? number
89
- : IsValueOf<Instance, String> extends true
90
- ? string
91
- : Instance;
92
-
93
- type IsValueOf<Instance, Object extends IValueOf<any>> = Instance extends Object
94
- ? Object extends IValueOf<infer Primitive>
95
- ? Instance extends Primitive
96
- ? false
97
- : true // not Primitive, but Object
98
- : false // cannot be
99
- : false;
100
-
101
- interface IValueOf<T> {
102
- valueOf(): T;
103
- }
104
-
105
- /* -----------------------------------------------------------
106
- STRING CONVERTER
107
- ----------------------------------------------------------- */
108
- type PascalizeString<Key extends string> = Key extends `${infer F}${infer R}`
109
- ? `${Uppercase<F>}${PascalizeStringRepeatedly<R>}`
110
- : Key;
111
- type PascalizeStringRepeatedly<Key extends string> =
112
- Key extends `${infer F}_${infer R}`
113
- ? `${F}${Capitalize<PascalizeStringRepeatedly<R>>}`
114
- : Key;
1
+ /**
2
+ * Pascal case type.
3
+ *
4
+ * `PascalCase` type is a type that all keys of an object are pascalized.
5
+ *
6
+ * It also erase every method properties like {@link Resolved} type.
7
+ *
8
+ * @template T Target type to be pascalized
9
+ * @author Jeongho Nam - https://github.com/samchon
10
+ */
11
+ export type PascalCase<T> = Equal<T, PascalizeMain<T>> extends true
12
+ ? T
13
+ : PascalizeMain<T>;
14
+
15
+ /* -----------------------------------------------------------
16
+ OBJECT CONVERSION
17
+ ----------------------------------------------------------- */
18
+ type Equal<X, Y> = X extends Y ? (Y extends X ? true : false) : false;
19
+
20
+ type PascalizeMain<T> = T extends [never]
21
+ ? never // special trick for (jsonable | null) type
22
+ : T extends { valueOf(): boolean | bigint | number | string }
23
+ ? ValueOf<T>
24
+ : T extends Function
25
+ ? never
26
+ : T extends object
27
+ ? PascalizeObject<T>
28
+ : T;
29
+
30
+ type PascalizeObject<T extends object> = T extends Array<infer U>
31
+ ? IsTuple<T> extends true
32
+ ? PascalizeTuple<T>
33
+ : PascalizeMain<U>[]
34
+ : T extends Set<infer U>
35
+ ? Set<PascalizeMain<U>>
36
+ : T extends Map<infer K, infer V>
37
+ ? Map<PascalizeMain<K>, PascalizeMain<V>>
38
+ : T extends WeakSet<any> | WeakMap<any, any>
39
+ ? never
40
+ : T extends
41
+ | Date
42
+ | Uint8Array
43
+ | Uint8ClampedArray
44
+ | Uint16Array
45
+ | Uint32Array
46
+ | BigUint64Array
47
+ | Int8Array
48
+ | Int16Array
49
+ | Int32Array
50
+ | BigInt64Array
51
+ | Float32Array
52
+ | Float64Array
53
+ | ArrayBuffer
54
+ | SharedArrayBuffer
55
+ | DataView
56
+ ? T
57
+ : {
58
+ [Key in keyof T as PascalizeString<Key & string>]: PascalizeMain<T[Key]>;
59
+ };
60
+
61
+ /* -----------------------------------------------------------
62
+ SPECIAL CASES
63
+ ----------------------------------------------------------- */
64
+ type IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
65
+ never,
66
+ ]
67
+ ? false
68
+ : T extends readonly any[]
69
+ ? number extends T["length"]
70
+ ? false
71
+ : true
72
+ : false;
73
+ type PascalizeTuple<T extends readonly any[]> = T extends []
74
+ ? []
75
+ : T extends [infer F]
76
+ ? [PascalizeMain<F>]
77
+ : T extends [infer F, ...infer Rest extends readonly any[]]
78
+ ? [PascalizeMain<F>, ...PascalizeTuple<Rest>]
79
+ : T extends [(infer F)?]
80
+ ? [PascalizeMain<F>?]
81
+ : T extends [(infer F)?, ...infer Rest extends readonly any[]]
82
+ ? [PascalizeMain<F>?, ...PascalizeTuple<Rest>]
83
+ : [];
84
+
85
+ type ValueOf<Instance> = IsValueOf<Instance, Boolean> extends true
86
+ ? boolean
87
+ : IsValueOf<Instance, Number> extends true
88
+ ? number
89
+ : IsValueOf<Instance, String> extends true
90
+ ? string
91
+ : Instance;
92
+
93
+ type IsValueOf<Instance, Object extends IValueOf<any>> = Instance extends Object
94
+ ? Object extends IValueOf<infer Primitive>
95
+ ? Instance extends Primitive
96
+ ? false
97
+ : true // not Primitive, but Object
98
+ : false // cannot be
99
+ : false;
100
+
101
+ interface IValueOf<T> {
102
+ valueOf(): T;
103
+ }
104
+
105
+ /* -----------------------------------------------------------
106
+ STRING CONVERTER
107
+ ----------------------------------------------------------- */
108
+ type PascalizeString<Key extends string> = Key extends `${infer F}${infer R}`
109
+ ? `${Uppercase<F>}${PascalizeStringRepeatedly<R>}`
110
+ : Key;
111
+ type PascalizeStringRepeatedly<Key extends string> =
112
+ Key extends `${infer F}_${infer R}`
113
+ ? `${F}${Capitalize<PascalizeStringRepeatedly<R>>}`
114
+ : Key;