typia 5.3.5 → 5.3.6-dev.20231229

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 (354) hide show
  1. package/README.md +2 -1
  2. package/lib/functional/$ProtobufReader.js +2 -2
  3. package/lib/functional/$ProtobufReader.js.map +1 -1
  4. package/package.json +1 -1
  5. package/src/AssertionGuard.ts +1 -1
  6. package/src/CamelCase.ts +114 -114
  7. package/src/IRandomGenerator.ts +35 -35
  8. package/src/IValidation.ts +21 -21
  9. package/src/PascalCase.ts +114 -114
  10. package/src/Primitive.ts +135 -135
  11. package/src/Resolved.ts +116 -116
  12. package/src/SnakeCase.ts +156 -156
  13. package/src/TypeGuardError.ts +36 -36
  14. package/src/executable/TypiaGenerateWizard.ts +83 -83
  15. package/src/executable/TypiaPatchWizard.ts +42 -42
  16. package/src/executable/TypiaSetupWizard.ts +151 -151
  17. package/src/executable/setup/ArgumentParser.ts +43 -43
  18. package/src/executable/setup/CommandExecutor.ts +8 -8
  19. package/src/executable/setup/FileRetriever.ts +22 -22
  20. package/src/executable/setup/PackageManager.ts +71 -71
  21. package/src/executable/setup/PluginConfigurator.ts +69 -69
  22. package/src/executable/typia.ts +55 -55
  23. package/src/factories/CommentFactory.ts +79 -79
  24. package/src/factories/ExpressionFactory.ts +150 -150
  25. package/src/factories/IdentifierFactory.ts +70 -70
  26. package/src/factories/JsonMetadataFactory.ts +53 -53
  27. package/src/factories/LiteralFactory.ts +47 -47
  28. package/src/factories/MetadataCollection.ts +269 -269
  29. package/src/factories/MetadataCommentTagFactory.ts +601 -601
  30. package/src/factories/MetadataFactory.ts +267 -267
  31. package/src/factories/MetadataTypeTagFactory.ts +313 -313
  32. package/src/factories/NumericRangeFactory.ts +72 -72
  33. package/src/factories/ProtobufFactory.ts +259 -259
  34. package/src/factories/StatementFactory.ts +72 -72
  35. package/src/factories/TemplateFactory.ts +56 -56
  36. package/src/factories/TypeFactory.ts +118 -118
  37. package/src/factories/ValueFactory.ts +12 -12
  38. package/src/factories/internal/metadata/MetadataHelper.ts +15 -15
  39. package/src/factories/internal/metadata/emend_metadata_atomics.ts +37 -37
  40. package/src/factories/internal/metadata/emplace_metadata_alias.ts +41 -41
  41. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +38 -38
  42. package/src/factories/internal/metadata/emplace_metadata_object.ts +175 -175
  43. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  44. package/src/factories/internal/metadata/explore_metadata.ts +28 -28
  45. package/src/factories/internal/metadata/iterate_metadata.ts +94 -94
  46. package/src/factories/internal/metadata/iterate_metadata_alias.ts +34 -34
  47. package/src/factories/internal/metadata/iterate_metadata_array.ts +37 -37
  48. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  49. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
  50. package/src/factories/internal/metadata/iterate_metadata_collection.ts +131 -131
  51. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +26 -26
  52. package/src/factories/internal/metadata/iterate_metadata_constant.ts +48 -48
  53. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +230 -230
  54. package/src/factories/internal/metadata/iterate_metadata_map.ts +50 -50
  55. package/src/factories/internal/metadata/iterate_metadata_native.ts +208 -208
  56. package/src/factories/internal/metadata/iterate_metadata_object.ts +43 -43
  57. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +52 -52
  58. package/src/factories/internal/metadata/iterate_metadata_set.ts +41 -41
  59. package/src/factories/internal/metadata/iterate_metadata_sort.ts +61 -61
  60. package/src/factories/internal/metadata/iterate_metadata_template.ts +44 -44
  61. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +37 -37
  62. package/src/factories/internal/metadata/iterate_metadata_union.ts +27 -27
  63. package/src/functional/$HeadersReader.ts +28 -28
  64. package/src/functional/$ParameterReader.ts +31 -31
  65. package/src/functional/$ProtobufReader.ts +199 -195
  66. package/src/functional/$ProtobufSizer.ts +147 -147
  67. package/src/functional/$ProtobufWriter.ts +150 -150
  68. package/src/functional/$QueryReader.ts +56 -56
  69. package/src/functional/$any.ts +4 -4
  70. package/src/functional/$clone.ts +4 -4
  71. package/src/functional/$convention.ts +37 -37
  72. package/src/functional/$dictionary.ts +22 -22
  73. package/src/functional/$every.ts +11 -11
  74. package/src/functional/$from.ts +5 -5
  75. package/src/functional/$guard.ts +35 -35
  76. package/src/functional/$is_between.ts +2 -2
  77. package/src/functional/$join.ts +46 -46
  78. package/src/functional/$number.ts +12 -12
  79. package/src/functional/$report.ts +13 -13
  80. package/src/functional/$rest.ts +3 -3
  81. package/src/functional/$stoll.ts +8 -8
  82. package/src/functional/$string.ts +50 -50
  83. package/src/functional/$strlen.ts +7 -7
  84. package/src/functional/$tail.ts +5 -5
  85. package/src/functional/$varint.ts +130 -130
  86. package/src/functional/$zigzag.ts +39 -39
  87. package/src/functional/IProtobufWriter.ts +18 -18
  88. package/src/functional/Namespace.ts +174 -174
  89. package/src/http.ts +1149 -1149
  90. package/src/index.ts +4 -4
  91. package/src/json.ts +648 -648
  92. package/src/misc.ts +651 -651
  93. package/src/module.ts +897 -897
  94. package/src/notations.ts +855 -855
  95. package/src/programmers/AssertProgrammer.ts +293 -293
  96. package/src/programmers/CheckerProgrammer.ts +1025 -1025
  97. package/src/programmers/FeatureProgrammer.ts +460 -460
  98. package/src/programmers/IsProgrammer.ts +232 -232
  99. package/src/programmers/RandomProgrammer.ts +825 -825
  100. package/src/programmers/TypiaProgrammer.ts +167 -167
  101. package/src/programmers/ValidateProgrammer.ts +307 -307
  102. package/src/programmers/helpers/AtomicPredicator.ts +25 -25
  103. package/src/programmers/helpers/CloneJoiner.ts +130 -130
  104. package/src/programmers/helpers/FunctionImporeter.ts +87 -87
  105. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  106. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  107. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  108. package/src/programmers/helpers/NotationJoiner.ts +132 -132
  109. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  110. package/src/programmers/helpers/ProtobufUtil.ts +125 -125
  111. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  112. package/src/programmers/helpers/PruneJoiner.ts +141 -141
  113. package/src/programmers/helpers/RandomJoiner.ts +140 -140
  114. package/src/programmers/helpers/RandomRanger.ts +171 -171
  115. package/src/programmers/helpers/StringifyJoinder.ts +105 -105
  116. package/src/programmers/helpers/StringifyPredicator.ts +12 -12
  117. package/src/programmers/helpers/UnionExplorer.ts +269 -269
  118. package/src/programmers/helpers/UnionPredicator.ts +77 -77
  119. package/src/programmers/helpers/disable_function_importer_declare.ts +32 -32
  120. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +77 -77
  121. package/src/programmers/http/HttpAssertQueryProgrammer.ts +75 -75
  122. package/src/programmers/http/HttpHeadersProgrammer.ts +314 -314
  123. package/src/programmers/http/HttpIsHeadersProgrammer.ts +84 -84
  124. package/src/programmers/http/HttpIsQueryProgrammer.ts +82 -82
  125. package/src/programmers/http/HttpParameterProgrammer.ts +97 -97
  126. package/src/programmers/http/HttpQueryProgrammer.ts +252 -252
  127. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +77 -77
  128. package/src/programmers/http/HttpValidateQueryProgrammer.ts +75 -75
  129. package/src/programmers/internal/JSON_SCHEMA_PREFIX.ts +1 -1
  130. package/src/programmers/internal/application_alias.ts +65 -65
  131. package/src/programmers/internal/application_array.ts +59 -59
  132. package/src/programmers/internal/application_boolean.ts +30 -30
  133. package/src/programmers/internal/application_constant.ts +26 -26
  134. package/src/programmers/internal/application_default.ts +17 -17
  135. package/src/programmers/internal/application_default_string.ts +33 -33
  136. package/src/programmers/internal/application_escaped.ts +53 -53
  137. package/src/programmers/internal/application_native.ts +38 -38
  138. package/src/programmers/internal/application_number.ts +94 -94
  139. package/src/programmers/internal/application_object.ts +153 -153
  140. package/src/programmers/internal/application_schema.ts +180 -180
  141. package/src/programmers/internal/application_string.ts +58 -58
  142. package/src/programmers/internal/application_templates.ts +25 -25
  143. package/src/programmers/internal/application_tuple.ts +55 -55
  144. package/src/programmers/internal/check_array_length.ts +45 -45
  145. package/src/programmers/internal/check_bigint.ts +49 -49
  146. package/src/programmers/internal/check_dynamic_key.ts +175 -175
  147. package/src/programmers/internal/check_dynamic_properties.ts +198 -198
  148. package/src/programmers/internal/check_everything.ts +23 -23
  149. package/src/programmers/internal/check_native.ts +21 -21
  150. package/src/programmers/internal/check_number.ts +106 -106
  151. package/src/programmers/internal/check_object.ts +60 -60
  152. package/src/programmers/internal/check_string.ts +48 -48
  153. package/src/programmers/internal/check_template.ts +61 -61
  154. package/src/programmers/internal/check_union_array_like.ts +307 -307
  155. package/src/programmers/internal/decode_union_object.ts +78 -78
  156. package/src/programmers/internal/feature_object_entries.ts +58 -58
  157. package/src/programmers/internal/metadata_to_pattern.ts +33 -33
  158. package/src/programmers/internal/prune_object_properties.ts +60 -60
  159. package/src/programmers/internal/random_custom.ts +37 -37
  160. package/src/programmers/internal/stringify_dynamic_properties.ts +157 -157
  161. package/src/programmers/internal/stringify_native.ts +7 -7
  162. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  163. package/src/programmers/internal/template_to_pattern.ts +15 -15
  164. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +20 -20
  165. package/src/programmers/json/JsonApplicationProgrammer.ts +50 -50
  166. package/src/programmers/json/JsonAssertParseProgrammer.ts +67 -67
  167. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +61 -61
  168. package/src/programmers/json/JsonIsParseProgrammer.ts +73 -73
  169. package/src/programmers/json/JsonIsStringifyProgrammer.ts +75 -75
  170. package/src/programmers/json/JsonStringifyProgrammer.ts +893 -893
  171. package/src/programmers/json/JsonValidateParseProgrammer.ts +64 -64
  172. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +83 -83
  173. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +63 -63
  174. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +60 -60
  175. package/src/programmers/misc/MiscCloneProgrammer.ts +713 -713
  176. package/src/programmers/misc/MiscIsCloneProgrammer.ts +70 -70
  177. package/src/programmers/misc/MiscIsPruneProgrammer.ts +66 -66
  178. package/src/programmers/misc/MiscLiteralsProgrammer.ts +72 -72
  179. package/src/programmers/misc/MiscPruneProgrammer.ts +523 -523
  180. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +80 -80
  181. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +73 -73
  182. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +64 -64
  183. package/src/programmers/notations/NotationGeneralProgrammer.ts +647 -647
  184. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +71 -71
  185. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +81 -81
  186. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +75 -75
  187. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +61 -61
  188. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +607 -607
  189. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +819 -819
  190. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +82 -82
  191. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +75 -75
  192. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +160 -160
  193. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +75 -75
  194. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +83 -83
  195. package/src/protobuf.ts +887 -887
  196. package/src/reflect.ts +24 -24
  197. package/src/schemas/json/IJsonApplication.ts +8 -8
  198. package/src/schemas/json/IJsonComponents.ts +36 -36
  199. package/src/schemas/json/IJsonSchema.ts +113 -113
  200. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  201. package/src/schemas/metadata/IMetadata.ts +34 -34
  202. package/src/schemas/metadata/IMetadataAlias.ts +12 -12
  203. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  204. package/src/schemas/metadata/IMetadataArray.ts +7 -7
  205. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  206. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  207. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  208. package/src/schemas/metadata/IMetadataConstant.ts +23 -23
  209. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  210. package/src/schemas/metadata/IMetadataEntry.ts +6 -6
  211. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  212. package/src/schemas/metadata/IMetadataObject.ts +18 -18
  213. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  214. package/src/schemas/metadata/IMetadataTuple.ts +7 -7
  215. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  216. package/src/schemas/metadata/IMetadataTypeTag.ts +15 -15
  217. package/src/schemas/metadata/Metadata.ts +612 -612
  218. package/src/schemas/metadata/MetadataAlias.ts +61 -61
  219. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  220. package/src/schemas/metadata/MetadataArray.ts +49 -49
  221. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  222. package/src/schemas/metadata/MetadataAtomic.ts +84 -84
  223. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  224. package/src/schemas/metadata/MetadataConstant.ts +46 -46
  225. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  226. package/src/schemas/metadata/MetadataObject.ts +135 -135
  227. package/src/schemas/metadata/MetadataProperty.ts +56 -56
  228. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  229. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  230. package/src/tags/Default.ts +15 -15
  231. package/src/tags/ExclusiveMaximum.ts +13 -13
  232. package/src/tags/ExclusiveMinimum.ts +13 -13
  233. package/src/tags/Format.ts +30 -30
  234. package/src/tags/MaxItems.ts +9 -9
  235. package/src/tags/MaxLength.ts +9 -9
  236. package/src/tags/Maximum.ts +13 -13
  237. package/src/tags/MinItems.ts +9 -9
  238. package/src/tags/MinLength.ts +9 -9
  239. package/src/tags/Minimum.ts +13 -13
  240. package/src/tags/MultipleOf.ts +15 -15
  241. package/src/tags/Pattern.ts +9 -9
  242. package/src/tags/TagBase.ts +68 -68
  243. package/src/tags/Type.ts +27 -27
  244. package/src/tags/index.ts +14 -14
  245. package/src/transform.ts +35 -35
  246. package/src/transformers/CallExpressionTransformer.ts +351 -351
  247. package/src/transformers/FileTransformer.ts +91 -91
  248. package/src/transformers/IProject.ts +15 -15
  249. package/src/transformers/ITransformOptions.ts +62 -62
  250. package/src/transformers/ImportTransformer.ts +66 -66
  251. package/src/transformers/NodeTransformer.ts +13 -13
  252. package/src/transformers/TransformerError.ts +55 -55
  253. package/src/transformers/features/AssertTransformer.ts +16 -16
  254. package/src/transformers/features/CreateAssertTransformer.ts +16 -16
  255. package/src/transformers/features/CreateIsTransformer.ts +10 -10
  256. package/src/transformers/features/CreateRandomTransformer.ts +40 -40
  257. package/src/transformers/features/CreateValidateTransformer.ts +13 -13
  258. package/src/transformers/features/IsTransformer.ts +10 -10
  259. package/src/transformers/features/RandomTransformer.ts +44 -44
  260. package/src/transformers/features/ValidateTransformer.ts +11 -11
  261. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +11 -11
  262. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +9 -9
  263. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +9 -9
  264. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +9 -9
  265. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +9 -9
  266. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +9 -9
  267. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +9 -9
  268. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +12 -12
  269. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +11 -11
  270. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +9 -9
  271. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +9 -9
  272. package/src/transformers/features/http/HttpHeadersTransformer.ts +9 -9
  273. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +9 -9
  274. package/src/transformers/features/http/HttpIsQueryTransformer.ts +9 -9
  275. package/src/transformers/features/http/HttpParameterTransformer.ts +9 -9
  276. package/src/transformers/features/http/HttpQueryTransformer.ts +9 -9
  277. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +10 -10
  278. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +9 -9
  279. package/src/transformers/features/json/JsonApplicationTransformer.ts +121 -121
  280. package/src/transformers/features/json/JsonAssertParseTransformer.ts +9 -9
  281. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +10 -10
  282. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +9 -9
  283. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +12 -12
  284. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +9 -9
  285. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +9 -9
  286. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +9 -9
  287. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +11 -11
  288. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +12 -12
  289. package/src/transformers/features/json/JsonIsParseTransformer.ts +9 -9
  290. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +9 -9
  291. package/src/transformers/features/json/JsonStringifyTransformer.ts +9 -9
  292. package/src/transformers/features/json/JsonValidateParseTransformer.ts +9 -9
  293. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +10 -10
  294. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +9 -9
  295. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +9 -9
  296. package/src/transformers/features/misc/MiscCloneTransformer.ts +9 -9
  297. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +9 -9
  298. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +9 -9
  299. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +9 -9
  300. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +9 -9
  301. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +9 -9
  302. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +9 -9
  303. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +11 -11
  304. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +11 -11
  305. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +9 -9
  306. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +9 -9
  307. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +32 -32
  308. package/src/transformers/features/misc/MiscPruneTransformer.ts +9 -9
  309. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +9 -9
  310. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +9 -9
  311. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +15 -15
  312. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +15 -15
  313. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +15 -15
  314. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +15 -15
  315. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +15 -15
  316. package/src/transformers/features/notations/NotationGeneralTransformer.ts +11 -11
  317. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +15 -15
  318. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +15 -15
  319. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +10 -10
  320. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +10 -10
  321. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +12 -12
  322. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +12 -12
  323. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +9 -9
  324. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +9 -9
  325. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +9 -9
  326. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +9 -9
  327. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +12 -12
  328. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +12 -12
  329. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +9 -9
  330. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +9 -9
  331. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +9 -9
  332. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +9 -9
  333. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +33 -33
  334. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +10 -10
  335. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +10 -10
  336. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +73 -73
  337. package/src/transformers/internal/GenericTransformer.ts +96 -96
  338. package/src/typings/Atomic.ts +13 -13
  339. package/src/typings/ClassProperties.ts +5 -5
  340. package/src/typings/Customizable.ts +5 -5
  341. package/src/typings/OmitNever.ts +3 -3
  342. package/src/typings/ProtobufAtomic.ts +19 -19
  343. package/src/typings/SpecialFields.ts +3 -3
  344. package/src/typings/ValidationPipe.ts +9 -9
  345. package/src/typings/Writable.ts +11 -11
  346. package/src/utils/ArrayUtil.ts +43 -43
  347. package/src/utils/Escaper.ts +46 -46
  348. package/src/utils/MapUtil.ts +12 -12
  349. package/src/utils/NameEncoder.ts +32 -32
  350. package/src/utils/NamingConvention.ts +87 -87
  351. package/src/utils/PatternUtil.ts +29 -29
  352. package/src/utils/RandomGenerator.ts +83 -83
  353. package/src/utils/Singleton.ts +16 -16
  354. package/src/utils/StringUtil.ts +4 -4
package/README.md CHANGED
@@ -11,6 +11,7 @@
11
11
  // RUNTIME VALIDATORS
12
12
  export function is<T>(input: unknown): input is T; // returns boolean
13
13
  export function assert<T>(input: unknown): T; // throws TypeGuardError
14
+ export function assertGuard<T>(input: unknown): asserts input is T;
14
15
  export function validate<T>(input: unknown): IValidation<T>; // detailed
15
16
 
16
17
  // JSON FUNCTIONS
@@ -74,8 +75,8 @@ Check out the document in the [website](https://typia.io/docs/):
74
75
 
75
76
  ### 📖 Features
76
77
  - Runtime Validators
77
- - [`is()` function](https://typia.io/docs/validators/is/)
78
78
  - [`assert()` function](https://typia.io/docs/validators/assert/)
79
+ - [`is()` function](https://typia.io/docs/validators/is/)
79
80
  - [`validate()` function](https://typia.io/docs/validators/validate/)
80
81
  - [Special Tags](https://typia.io/docs/validators/tags/)
81
82
  - Enhanced JSON
@@ -5,13 +5,13 @@ var $ProtobufReader = (function () {
5
5
  function $ProtobufReader(buf) {
6
6
  this.buf = buf;
7
7
  this.ptr = 0;
8
- this.view = new DataView(buf.buffer);
8
+ this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
9
9
  }
10
10
  $ProtobufReader.prototype.index = function () {
11
11
  return this.ptr;
12
12
  };
13
13
  $ProtobufReader.prototype.size = function () {
14
- return this.buf.length;
14
+ return this.view.byteLength;
15
15
  };
16
16
  $ProtobufReader.prototype.uint32 = function () {
17
17
  return this.varint32();
@@ -1 +1 @@
1
- {"version":3,"file":"$ProtobufReader.js","sourceRoot":"","sources":["../../src/functional/$ProtobufReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"$ProtobufReader.js","sourceRoot":"","sources":["../../src/functional/$ProtobufReader.ts"],"names":[],"mappings":";;;AAGA;IAgBE,yBAAmB,GAAe;QAChC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACvE,CAAC;IAEM,+BAAK,GAAZ;QACE,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAEM,8BAAI,GAAX;QACE,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IAC9B,CAAC;IAEM,gCAAM,GAAb;QACE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAEM,+BAAK,GAAZ;QACE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAEM,gCAAM,GAAb;QACE,IAAM,KAAK,GAAW,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtC,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;IAEM,gCAAM,GAAb;QACE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAEM,+BAAK,GAAZ;QACE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAEM,gCAAM,GAAb;QACE,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;IACzC,CAAC;IAEM,8BAAI,GAAX;QACE,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAEM,+BAAK,GAAZ;QACE,IAAM,KAAK,GAAW,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,gCAAM,GAAb;QACE,IAAM,KAAK,GAAW,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,+BAAK,GAAZ;QACE,IAAM,MAAM,GAAW,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,IAAM,IAAI,GAAW,IAAI,CAAC,GAAG,CAAC;QAC9B,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC;IAChD,CAAC;IAEM,gCAAM,GAAb;QACE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACnC,CAAC;IAEM,8BAAI,GAAX,UAAY,MAAc;QACxB,IAAI,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI;gBAAC,CAAC;aACtC,CAAC;YACJ,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;gBACrC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACxE,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC;QACrB,CAAC;IACH,CAAC;IAEM,kCAAQ,GAAf,UAAgB,QAAsB;QACpC,QAAQ,QAAQ,EAAE,CAAC;YACjB;gBACE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACb,MAAM;YACR;gBACE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACb,MAAM;YACR;gBACE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBACzB,MAAM;YACR;gBACE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAA2B;oBACjE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC1B,MAAM;YACR;gBACE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACb,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,4BAAqB,QAAQ,wBAAc,IAAI,CAAC,GAAG,MAAG,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAEO,kCAAQ,GAAhB;QACE,IAAI,MAAc,CAAC;QACnB,IAAI,KAAa,CAAC;QAElB,KAAK,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;QACpC,IAAI,MAAM,GAAG,IAAI;YAAE,OAAO,KAAK,CAAC;QAEhC,KAAK,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,MAAM,GAAG,IAAI;YAAE,OAAO,KAAK,CAAC;QAEhC,KAAK,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,MAAM,GAAG,IAAI;YAAE,OAAO,KAAK,CAAC;QAEhC,KAAK,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,MAAM,GAAG,IAAI;YAAE,OAAO,KAAK,CAAC;QAEhC,KAAK,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,MAAM,GAAG,IAAI;YAAE,OAAO,KAAK,CAAC;QAGhC,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI;YAAE,OAAO,KAAK,CAAC;QACnC,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI;YAAE,OAAO,KAAK,CAAC;QACnC,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI;YAAE,OAAO,KAAK,CAAC;QACnC,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI;YAAE,OAAO,KAAK,CAAC;QACnC,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI;YAAE,OAAO,KAAK,CAAC;QAEnC,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,kCAAQ,GAAhB;QACE,IAAI,MAAc,CAAC;QACnB,IAAI,KAAa,CAAC;QAElB,KAAK,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;QACpC,IAAI,MAAM,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC;QAE/B,KAAK,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,MAAM,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC;QAE/B,KAAK,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,MAAM,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC;QAE/B,KAAK,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,MAAM,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC;QAE/B,KAAK,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,MAAM,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC;QAE/B,KAAK,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,MAAM,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC;QAE/B,KAAK,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,MAAM,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC;QAE/B,KAAK,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,MAAM,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC;QAE/B,KAAK,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,MAAM,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC;QAE/B,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAEO,4BAAE,GAAV;QACE,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACxC,CAAC;IAEO,6BAAG,GAAX;QACE,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3B,CAAC;IACH,sBAAC;AAAD,CAAC,AA1LD,IA0LC;AA1LY,0CAAe;AA4L5B,IAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;AAC/B,IAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACzB,IAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACzB,IAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "5.3.5",
3
+ "version": "5.3.6-dev.20231229",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -1 +1 @@
1
- export type AssertionGuard<T> = (input: unknown) => asserts input is T;
1
+ export type AssertionGuard<T> = (input: unknown) => asserts input is T;
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;