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

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