typia 5.5.8 → 5.5.9

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 (358) hide show
  1. package/lib/tags/ContentMediaType.d.ts +9 -0
  2. package/lib/tags/ContentMediaType.js +3 -0
  3. package/lib/tags/ContentMediaType.js.map +1 -0
  4. package/lib/tags/JsonSchemaPlugin.d.ts +7 -0
  5. package/lib/tags/JsonSchemaPlugin.js +3 -0
  6. package/lib/tags/JsonSchemaPlugin.js.map +1 -0
  7. package/lib/tags/index.d.ts +2 -0
  8. package/lib/tags/index.js +2 -0
  9. package/lib/tags/index.js.map +1 -1
  10. package/package.json +1 -1
  11. package/src/AssertionGuard.ts +1 -1
  12. package/src/IRandomGenerator.ts +62 -62
  13. package/src/IValidation.ts +21 -21
  14. package/src/TypeGuardError.ts +36 -36
  15. package/src/executable/TypiaGenerateWizard.ts +83 -83
  16. package/src/executable/TypiaPatchWizard.ts +42 -42
  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 +260 -260
  29. package/src/factories/MetadataCommentTagFactory.ts +516 -516
  30. package/src/factories/MetadataFactory.ts +267 -267
  31. package/src/factories/MetadataTypeTagFactory.ts +332 -332
  32. package/src/factories/MetadataTypeTagSchemaFactory.ts +58 -58
  33. package/src/factories/NumericRangeFactory.ts +72 -72
  34. package/src/factories/ProtobufFactory.ts +267 -267
  35. package/src/factories/StatementFactory.ts +72 -72
  36. package/src/factories/TemplateFactory.ts +56 -56
  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 +46 -46
  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 +176 -176
  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_alias.ts +34 -34
  46. package/src/factories/internal/metadata/iterate_metadata_array.ts +70 -70
  47. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  48. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
  49. package/src/factories/internal/metadata/iterate_metadata_collection.ts +131 -131
  50. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +26 -26
  51. package/src/factories/internal/metadata/iterate_metadata_constant.ts +48 -48
  52. package/src/factories/internal/metadata/iterate_metadata_escape.ts +52 -52
  53. package/src/factories/internal/metadata/iterate_metadata_map.ts +50 -50
  54. package/src/factories/internal/metadata/iterate_metadata_native.ts +209 -209
  55. package/src/factories/internal/metadata/iterate_metadata_object.ts +33 -33
  56. package/src/factories/internal/metadata/iterate_metadata_set.ts +41 -41
  57. package/src/factories/internal/metadata/iterate_metadata_template.ts +44 -44
  58. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +37 -37
  59. package/src/factories/internal/metadata/iterate_metadata_union.ts +27 -27
  60. package/src/functional/$FormDataReader/index.ts +1 -1
  61. package/src/functional/$HeadersReader/index.ts +1 -1
  62. package/src/functional/$ParameterReader/index.ts +1 -1
  63. package/src/functional/$ProtobufReader.ts +195 -195
  64. package/src/functional/$ProtobufWriter.ts +150 -150
  65. package/src/functional/$QueryReader/index.ts +1 -1
  66. package/src/functional/$any.ts +4 -4
  67. package/src/functional/$clone.ts +4 -4
  68. package/src/functional/$convention.ts +37 -37
  69. package/src/functional/$dictionary.ts +22 -22
  70. package/src/functional/$every.ts +11 -11
  71. package/src/functional/$guard.ts +21 -21
  72. package/src/functional/$is_between.ts +2 -2
  73. package/src/functional/$join.ts +46 -46
  74. package/src/functional/$number.ts +12 -12
  75. package/src/functional/$report.ts +13 -13
  76. package/src/functional/$rest.ts +3 -3
  77. package/src/functional/$stoll.ts +8 -8
  78. package/src/functional/$string.ts +43 -43
  79. package/src/functional/$strlen.ts +7 -7
  80. package/src/functional/$tail.ts +5 -5
  81. package/src/functional/$throws.ts +10 -10
  82. package/src/functional/$varint.ts +130 -130
  83. package/src/functional/$zigzag.ts +39 -39
  84. package/src/functional/IProtobufWriter.ts +18 -18
  85. package/src/functional/Namespace/functional.ts +5 -5
  86. package/src/functional/Namespace/http.ts +9 -9
  87. package/src/functional/Namespace/index.ts +76 -76
  88. package/src/functional/Namespace/json.ts +15 -15
  89. package/src/functional/Namespace/misc.ts +14 -14
  90. package/src/functional/Namespace/notations.ts +23 -23
  91. package/src/functional/Namespace/protobuf.ts +20 -20
  92. package/src/functional/is.ts +10 -10
  93. package/src/functional.ts +872 -872
  94. package/src/http.ts +1266 -1266
  95. package/src/index.ts +4 -4
  96. package/src/json.ts +754 -754
  97. package/src/misc.ts +757 -757
  98. package/src/module.ts +1024 -1024
  99. package/src/notations.ts +1020 -1020
  100. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +130 -130
  101. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +81 -81
  102. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +77 -77
  103. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +61 -61
  104. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +113 -113
  105. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +203 -203
  106. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +107 -107
  107. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +32 -32
  108. package/src/programmers/helpers/AtomicPredicator.ts +24 -24
  109. package/src/programmers/helpers/CloneJoiner.ts +130 -130
  110. package/src/programmers/helpers/FunctionImporeter.ts +1 -1
  111. package/src/programmers/helpers/FunctionImporter.ts +87 -87
  112. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  113. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  114. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  115. package/src/programmers/helpers/NotationJoiner.ts +132 -132
  116. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  117. package/src/programmers/helpers/ProtobufUtil.ts +125 -125
  118. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  119. package/src/programmers/helpers/PruneJoiner.ts +141 -141
  120. package/src/programmers/helpers/RandomJoiner.ts +140 -140
  121. package/src/programmers/helpers/RandomRanger.ts +171 -171
  122. package/src/programmers/helpers/StringifyJoinder.ts +105 -105
  123. package/src/programmers/helpers/StringifyPredicator.ts +12 -12
  124. package/src/programmers/helpers/UnionExplorer.ts +269 -269
  125. package/src/programmers/helpers/UnionPredicator.ts +77 -77
  126. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +87 -87
  127. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +89 -89
  128. package/src/programmers/http/HttpAssertQueryProgrammer.ts +87 -87
  129. package/src/programmers/http/HttpIsFormDataProgrammer.ts +90 -90
  130. package/src/programmers/http/HttpIsHeadersProgrammer.ts +92 -92
  131. package/src/programmers/http/HttpIsQueryProgrammer.ts +90 -90
  132. package/src/programmers/http/HttpParameterProgrammer.ts +97 -97
  133. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +75 -75
  134. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +77 -77
  135. package/src/programmers/http/HttpValidateQueryProgrammer.ts +75 -75
  136. package/src/programmers/internal/JSON_SCHEMA_PREFIX.ts +1 -1
  137. package/src/programmers/internal/application_alias.ts +74 -74
  138. package/src/programmers/internal/application_array.ts +63 -63
  139. package/src/programmers/internal/application_boolean.ts +44 -44
  140. package/src/programmers/internal/application_default.ts +17 -17
  141. package/src/programmers/internal/application_default_string.ts +33 -33
  142. package/src/programmers/internal/application_native.ts +40 -40
  143. package/src/programmers/internal/application_number.ts +98 -98
  144. package/src/programmers/internal/application_schema.ts +165 -165
  145. package/src/programmers/internal/application_string.ts +65 -65
  146. package/src/programmers/internal/application_templates.ts +24 -24
  147. package/src/programmers/internal/application_tuple.ts +54 -54
  148. package/src/programmers/internal/check_array_length.ts +45 -45
  149. package/src/programmers/internal/check_bigint.ts +49 -49
  150. package/src/programmers/internal/check_dynamic_properties.ts +211 -211
  151. package/src/programmers/internal/check_everything.ts +23 -23
  152. package/src/programmers/internal/check_native.ts +21 -21
  153. package/src/programmers/internal/check_string.ts +48 -48
  154. package/src/programmers/internal/check_template.ts +61 -61
  155. package/src/programmers/internal/check_union_array_like.ts +307 -307
  156. package/src/programmers/internal/decode_union_object.ts +99 -99
  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/JsonAssertParseProgrammer.ts +81 -81
  166. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +67 -67
  167. package/src/programmers/json/JsonIsParseProgrammer.ts +81 -81
  168. package/src/programmers/json/JsonIsStringifyProgrammer.ts +75 -75
  169. package/src/programmers/json/JsonValidateParseProgrammer.ts +64 -64
  170. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +83 -83
  171. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +77 -77
  172. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +66 -66
  173. package/src/programmers/misc/MiscIsCloneProgrammer.ts +78 -78
  174. package/src/programmers/misc/MiscIsPruneProgrammer.ts +66 -66
  175. package/src/programmers/misc/MiscPruneProgrammer.ts +523 -523
  176. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +80 -80
  177. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +73 -73
  178. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +70 -70
  179. package/src/programmers/notations/NotationGeneralProgrammer.ts +647 -647
  180. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +71 -71
  181. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +81 -81
  182. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +87 -87
  183. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +67 -67
  184. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +90 -90
  185. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +75 -75
  186. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +75 -75
  187. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +83 -83
  188. package/src/protobuf.ts +999 -999
  189. package/src/reflect.ts +57 -57
  190. package/src/schemas/json/IJsonApplication.ts +9 -9
  191. package/src/schemas/json/IJsonComponents.ts +19 -19
  192. package/src/schemas/json/IJsonSchema.ts +147 -147
  193. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  194. package/src/schemas/metadata/IMetadata.ts +34 -34
  195. package/src/schemas/metadata/IMetadataAlias.ts +12 -12
  196. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  197. package/src/schemas/metadata/IMetadataArray.ts +7 -7
  198. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  199. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  200. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  201. package/src/schemas/metadata/IMetadataConstant.ts +23 -23
  202. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  203. package/src/schemas/metadata/IMetadataEntry.ts +6 -6
  204. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  205. package/src/schemas/metadata/IMetadataObject.ts +13 -13
  206. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  207. package/src/schemas/metadata/IMetadataTuple.ts +7 -7
  208. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  209. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  210. package/src/schemas/metadata/Metadata.ts +631 -631
  211. package/src/schemas/metadata/MetadataAlias.ts +61 -61
  212. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  213. package/src/schemas/metadata/MetadataArray.ts +49 -49
  214. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  215. package/src/schemas/metadata/MetadataAtomic.ts +85 -85
  216. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  217. package/src/schemas/metadata/MetadataConstant.ts +46 -46
  218. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  219. package/src/schemas/metadata/MetadataObject.ts +154 -154
  220. package/src/schemas/metadata/MetadataProperty.ts +56 -56
  221. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  222. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  223. package/src/tags/ContentMediaType.ts +10 -0
  224. package/src/tags/Default.ts +18 -18
  225. package/src/tags/ExclusiveMaximum.ts +19 -19
  226. package/src/tags/ExclusiveMinimum.ts +19 -19
  227. package/src/tags/Format.ts +16 -16
  228. package/src/tags/JsonSchemaPlugin.ts +8 -0
  229. package/src/tags/MaxItems.ts +12 -12
  230. package/src/tags/MaxLength.ts +12 -12
  231. package/src/tags/Maximum.ts +18 -18
  232. package/src/tags/MinItems.ts +12 -12
  233. package/src/tags/MinLength.ts +12 -12
  234. package/src/tags/Minimum.ts +18 -18
  235. package/src/tags/MultipleOf.ts +20 -20
  236. package/src/tags/Pattern.ts +12 -12
  237. package/src/tags/TagBase.ts +76 -76
  238. package/src/tags/index.ts +16 -14
  239. package/src/tags/internal/FormatCheatSheet.ts +71 -71
  240. package/src/transform.ts +35 -35
  241. package/src/transformers/CallExpressionTransformer.ts +496 -496
  242. package/src/transformers/FileTransformer.ts +91 -91
  243. package/src/transformers/IProject.ts +15 -15
  244. package/src/transformers/ITransformOptions.ts +62 -62
  245. package/src/transformers/ImportTransformer.ts +66 -66
  246. package/src/transformers/NodeTransformer.ts +13 -13
  247. package/src/transformers/TransformerError.ts +55 -55
  248. package/src/transformers/features/CreateIsTransformer.ts +10 -10
  249. package/src/transformers/features/CreateRandomTransformer.ts +40 -40
  250. package/src/transformers/features/CreateValidateTransformer.ts +13 -13
  251. package/src/transformers/features/IsTransformer.ts +10 -10
  252. package/src/transformers/features/RandomTransformer.ts +44 -44
  253. package/src/transformers/features/ValidateTransformer.ts +11 -11
  254. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +12 -12
  255. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +11 -11
  256. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +9 -9
  257. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +9 -9
  258. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +9 -9
  259. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +9 -9
  260. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +9 -9
  261. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +9 -9
  262. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +9 -9
  263. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +9 -9
  264. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +12 -12
  265. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +12 -12
  266. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +11 -11
  267. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +10 -10
  268. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +9 -9
  269. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +9 -9
  270. package/src/transformers/features/http/HttpFormDataTransformer.ts +9 -9
  271. package/src/transformers/features/http/HttpHeadersTransformer.ts +9 -9
  272. package/src/transformers/features/http/HttpIsFormDataTransformer.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/HttpValidateFormDataTransformer.ts +10 -10
  278. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +10 -10
  279. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +9 -9
  280. package/src/transformers/features/json/JsonApplicationTransformer.ts +133 -133
  281. package/src/transformers/features/json/JsonAssertParseTransformer.ts +9 -9
  282. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +10 -10
  283. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +9 -9
  284. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +12 -12
  285. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +9 -9
  286. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +9 -9
  287. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +9 -9
  288. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +11 -11
  289. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +12 -12
  290. package/src/transformers/features/json/JsonIsParseTransformer.ts +9 -9
  291. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +9 -9
  292. package/src/transformers/features/json/JsonStringifyTransformer.ts +9 -9
  293. package/src/transformers/features/json/JsonValidateParseTransformer.ts +9 -9
  294. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +10 -10
  295. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +9 -9
  296. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +9 -9
  297. package/src/transformers/features/misc/MiscCloneTransformer.ts +9 -9
  298. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +9 -9
  299. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +9 -9
  300. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +9 -9
  301. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +9 -9
  302. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +9 -9
  303. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +9 -9
  304. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +11 -11
  305. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +11 -11
  306. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +9 -9
  307. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +9 -9
  308. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +32 -32
  309. package/src/transformers/features/misc/MiscPruneTransformer.ts +9 -9
  310. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +9 -9
  311. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +9 -9
  312. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +15 -15
  313. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +15 -15
  314. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +15 -15
  315. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +15 -15
  316. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +15 -15
  317. package/src/transformers/features/notations/NotationGeneralTransformer.ts +11 -11
  318. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +15 -15
  319. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +15 -15
  320. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +10 -10
  321. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +10 -10
  322. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +12 -12
  323. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +12 -12
  324. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +9 -9
  325. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +9 -9
  326. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +9 -9
  327. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +9 -9
  328. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +12 -12
  329. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +12 -12
  330. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +9 -9
  331. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +9 -9
  332. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +9 -9
  333. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +9 -9
  334. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +33 -33
  335. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +10 -10
  336. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +10 -10
  337. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +63 -63
  338. package/src/transformers/internal/GenericTransformer.ts +104 -104
  339. package/src/typings/Atomic.ts +13 -13
  340. package/src/typings/ClassProperties.ts +5 -5
  341. package/src/typings/Customizable.ts +5 -5
  342. package/src/typings/OmitNever.ts +3 -3
  343. package/src/typings/ProtobufAtomic.ts +19 -19
  344. package/src/typings/SpecialFields.ts +3 -3
  345. package/src/typings/ValidationPipe.ts +9 -9
  346. package/src/typings/Writable.ts +11 -11
  347. package/src/utils/ArrayUtil.ts +43 -43
  348. package/src/utils/Escaper.ts +46 -46
  349. package/src/utils/MapUtil.ts +12 -12
  350. package/src/utils/NameEncoder.ts +32 -32
  351. package/src/utils/NamingConvention/NamingConvention.ts +86 -86
  352. package/src/utils/NamingConvention/index.ts +1 -1
  353. package/src/utils/PatternUtil.ts +29 -29
  354. package/src/utils/RandomGenerator/RandomGenerator.ts +105 -105
  355. package/src/utils/RandomGenerator/index.ts +1 -1
  356. package/src/utils/Singleton.ts +16 -16
  357. package/src/utils/StringUtil/StringUtil.ts +7 -7
  358. package/src/utils/StringUtil/index.ts +1 -1
@@ -1,19 +1,19 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- export type ExclusiveMaximum<Value extends number | bigint> = TagBase<{
4
- target: Value extends number ? "number" : "bigint";
5
- kind: "exclusiveMaximum";
6
- value: Value;
7
- validate: `$input < ${Numeric<Value>}`;
8
- exclusive: ["exclusiveMaximum", "maximum"];
9
- schema: Value extends number
10
- ? {
11
- exclusiveMaximum: true;
12
- maximum: Value;
13
- }
14
- : undefined;
15
- }>;
16
-
17
- type Numeric<Value extends number | bigint> = Value extends number
18
- ? Value
19
- : `BigInt(${Value})`;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ export type ExclusiveMaximum<Value extends number | bigint> = TagBase<{
4
+ target: Value extends number ? "number" : "bigint";
5
+ kind: "exclusiveMaximum";
6
+ value: Value;
7
+ validate: `$input < ${Numeric<Value>}`;
8
+ exclusive: ["exclusiveMaximum", "maximum"];
9
+ schema: Value extends number
10
+ ? {
11
+ exclusiveMaximum: true;
12
+ maximum: Value;
13
+ }
14
+ : undefined;
15
+ }>;
16
+
17
+ type Numeric<Value extends number | bigint> = Value extends number
18
+ ? Value
19
+ : `BigInt(${Value})`;
@@ -1,19 +1,19 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- export type ExclusiveMinimum<Value extends number | bigint> = TagBase<{
4
- target: Value extends number ? "number" : "bigint";
5
- kind: "exclusiveMinimum";
6
- value: Value;
7
- validate: `${Numeric<Value>} < $input`;
8
- exclusive: ["exclusiveMinimum", "minimum"];
9
- schema: Value extends number
10
- ? {
11
- exclusiveMinimum: true;
12
- minimum: Value;
13
- }
14
- : undefined;
15
- }>;
16
-
17
- type Numeric<Value extends number | bigint> = Value extends number
18
- ? Value
19
- : `BigInt(${Value})`;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ export type ExclusiveMinimum<Value extends number | bigint> = TagBase<{
4
+ target: Value extends number ? "number" : "bigint";
5
+ kind: "exclusiveMinimum";
6
+ value: Value;
7
+ validate: `${Numeric<Value>} < $input`;
8
+ exclusive: ["exclusiveMinimum", "minimum"];
9
+ schema: Value extends number
10
+ ? {
11
+ exclusiveMinimum: true;
12
+ minimum: Value;
13
+ }
14
+ : undefined;
15
+ }>;
16
+
17
+ type Numeric<Value extends number | bigint> = Value extends number
18
+ ? Value
19
+ : `BigInt(${Value})`;
@@ -1,16 +1,16 @@
1
- import type { TagBase } from "./TagBase";
2
- import type { FormatCheatSheet } from "./internal/FormatCheatSheet";
3
-
4
- export type Format<Value extends keyof Format.Validator> = TagBase<{
5
- target: "string";
6
- kind: "format";
7
- value: Value;
8
- validate: Format.Validator[Value];
9
- exclusive: ["format", "pattern"];
10
- schema: {
11
- format: Value;
12
- };
13
- }>;
14
- export namespace Format {
15
- export type Validator = typeof FormatCheatSheet;
16
- }
1
+ import type { TagBase } from "./TagBase";
2
+ import type { FormatCheatSheet } from "./internal/FormatCheatSheet";
3
+
4
+ export type Format<Value extends keyof Format.Validator> = TagBase<{
5
+ target: "string";
6
+ kind: "format";
7
+ value: Value;
8
+ validate: Format.Validator[Value];
9
+ exclusive: ["format", "pattern"];
10
+ schema: {
11
+ format: Value;
12
+ };
13
+ }>;
14
+ export namespace Format {
15
+ export type Validator = typeof FormatCheatSheet;
16
+ }
@@ -0,0 +1,8 @@
1
+ import { TagBase } from "./TagBase";
2
+
3
+ export type JsonSchemaPlugin<Schema extends object> = TagBase<{
4
+ target: "string" | "boolean" | "number" | "array";
5
+ kind: "jsonPlugin";
6
+ value: undefined;
7
+ schema: Schema;
8
+ }>;
@@ -1,12 +1,12 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- export type MaxItems<Value extends number> = TagBase<{
4
- target: "array";
5
- kind: "maxItems";
6
- value: Value;
7
- validate: `$input.length <= ${Value}`;
8
- exclusive: true;
9
- schema: {
10
- maxItems: Value;
11
- };
12
- }>;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ export type MaxItems<Value extends number> = TagBase<{
4
+ target: "array";
5
+ kind: "maxItems";
6
+ value: Value;
7
+ validate: `$input.length <= ${Value}`;
8
+ exclusive: true;
9
+ schema: {
10
+ maxItems: Value;
11
+ };
12
+ }>;
@@ -1,12 +1,12 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- export type MaxLength<Value extends number> = TagBase<{
4
- target: "string";
5
- kind: "maxLength";
6
- value: Value;
7
- validate: `$input.length <= ${Value}`;
8
- exclusive: true;
9
- schema: {
10
- maxLength: Value;
11
- };
12
- }>;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ export type MaxLength<Value extends number> = TagBase<{
4
+ target: "string";
5
+ kind: "maxLength";
6
+ value: Value;
7
+ validate: `$input.length <= ${Value}`;
8
+ exclusive: true;
9
+ schema: {
10
+ maxLength: Value;
11
+ };
12
+ }>;
@@ -1,18 +1,18 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- export type Maximum<Value extends number | bigint> = TagBase<{
4
- target: Value extends number ? "number" : "bigint";
5
- kind: "maximum";
6
- value: Value;
7
- validate: `$input <= ${Numeric<Value>}`;
8
- exclusive: ["maximum", "exclusiveMaximum"];
9
- schema: Value extends number
10
- ? {
11
- maximum: Value;
12
- }
13
- : undefined;
14
- }>;
15
-
16
- type Numeric<Value extends number | bigint> = Value extends number
17
- ? Value
18
- : `BigInt(${Value})`;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ export type Maximum<Value extends number | bigint> = TagBase<{
4
+ target: Value extends number ? "number" : "bigint";
5
+ kind: "maximum";
6
+ value: Value;
7
+ validate: `$input <= ${Numeric<Value>}`;
8
+ exclusive: ["maximum", "exclusiveMaximum"];
9
+ schema: Value extends number
10
+ ? {
11
+ maximum: Value;
12
+ }
13
+ : undefined;
14
+ }>;
15
+
16
+ type Numeric<Value extends number | bigint> = Value extends number
17
+ ? Value
18
+ : `BigInt(${Value})`;
@@ -1,12 +1,12 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- export type MinItems<Value extends number> = TagBase<{
4
- target: "array";
5
- kind: "minItems";
6
- value: Value;
7
- validate: `${Value} <= $input.length`;
8
- exclusive: true;
9
- schema: {
10
- minItems: Value;
11
- };
12
- }>;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ export type MinItems<Value extends number> = TagBase<{
4
+ target: "array";
5
+ kind: "minItems";
6
+ value: Value;
7
+ validate: `${Value} <= $input.length`;
8
+ exclusive: true;
9
+ schema: {
10
+ minItems: Value;
11
+ };
12
+ }>;
@@ -1,12 +1,12 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- export type MinLength<Value extends number> = TagBase<{
4
- target: "string";
5
- kind: "minLength";
6
- value: Value;
7
- validate: `${Value} <= $input.length`;
8
- exclusive: true;
9
- schema: {
10
- minLength: Value;
11
- };
12
- }>;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ export type MinLength<Value extends number> = TagBase<{
4
+ target: "string";
5
+ kind: "minLength";
6
+ value: Value;
7
+ validate: `${Value} <= $input.length`;
8
+ exclusive: true;
9
+ schema: {
10
+ minLength: Value;
11
+ };
12
+ }>;
@@ -1,18 +1,18 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- export type Minimum<Value extends number | bigint> = TagBase<{
4
- target: Value extends number ? "number" : "bigint";
5
- kind: "minimum";
6
- value: Value;
7
- validate: `${Numeric<Value>} <= $input`;
8
- exclusive: ["minimum", "exclusiveMinimum"];
9
- schema: Value extends number
10
- ? {
11
- minimum: Value;
12
- }
13
- : undefined;
14
- }>;
15
-
16
- type Numeric<Value extends number | bigint> = Value extends number
17
- ? Value
18
- : `BigInt(${Value})`;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ export type Minimum<Value extends number | bigint> = TagBase<{
4
+ target: Value extends number ? "number" : "bigint";
5
+ kind: "minimum";
6
+ value: Value;
7
+ validate: `${Numeric<Value>} <= $input`;
8
+ exclusive: ["minimum", "exclusiveMinimum"];
9
+ schema: Value extends number
10
+ ? {
11
+ minimum: Value;
12
+ }
13
+ : undefined;
14
+ }>;
15
+
16
+ type Numeric<Value extends number | bigint> = Value extends number
17
+ ? Value
18
+ : `BigInt(${Value})`;
@@ -1,20 +1,20 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- export type MultipleOf<Value extends number | bigint> = TagBase<{
4
- target: Value extends bigint ? "bigint" : "number";
5
- kind: "multipleOf";
6
- value: Value;
7
- validate: `$input % ${Numeric<Value>} === ${Value extends bigint
8
- ? Numeric<0n>
9
- : 0}`;
10
- exclusive: true;
11
- schema: Value extends number
12
- ? {
13
- multipleOf: Value;
14
- }
15
- : undefined;
16
- }>;
17
-
18
- type Numeric<Value extends number | bigint> = Value extends number
19
- ? Value
20
- : `BigInt(${Value})`;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ export type MultipleOf<Value extends number | bigint> = TagBase<{
4
+ target: Value extends bigint ? "bigint" : "number";
5
+ kind: "multipleOf";
6
+ value: Value;
7
+ validate: `$input % ${Numeric<Value>} === ${Value extends bigint
8
+ ? Numeric<0n>
9
+ : 0}`;
10
+ exclusive: true;
11
+ schema: Value extends number
12
+ ? {
13
+ multipleOf: Value;
14
+ }
15
+ : undefined;
16
+ }>;
17
+
18
+ type Numeric<Value extends number | bigint> = Value extends number
19
+ ? Value
20
+ : `BigInt(${Value})`;
@@ -1,12 +1,12 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- export type Pattern<Value extends string> = TagBase<{
4
- target: "string";
5
- kind: "pattern";
6
- value: Value;
7
- validate: `/${Value}/.test($input)`;
8
- exclusive: ["format", "pattern"];
9
- schema: {
10
- pattern: Value;
11
- };
12
- }>;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ export type Pattern<Value extends string> = TagBase<{
4
+ target: "string";
5
+ kind: "pattern";
6
+ value: Value;
7
+ validate: `/${Value}/.test($input)`;
8
+ exclusive: ["format", "pattern"];
9
+ schema: {
10
+ pattern: Value;
11
+ };
12
+ }>;
@@ -1,76 +1,76 @@
1
- export type TagBase<
2
- Props extends TagBase.IProps<any, any, any, any, any, any>,
3
- > = {
4
- /**
5
- * This is a dummy property for compilation.
6
- *
7
- * It does not mean anything in runtime.
8
- */
9
- "typia.tag"?: Props;
10
- };
11
- export namespace TagBase {
12
- export interface IProps<
13
- Target extends "boolean" | "bigint" | "number" | "string" | "array",
14
- Kind extends string,
15
- Value extends boolean | bigint | number | string | undefined,
16
- Validate extends
17
- | string
18
- | {
19
- [key in Target]?: string;
20
- },
21
- Exclusive extends boolean | string[],
22
- Schema extends object | undefined,
23
- > {
24
- /**
25
- * Target type.
26
- *
27
- * If user tries to adapt this tag to a different type, it would be a compile
28
- * error.
29
- *
30
- * For example, you've configured target type as `string`, but user adapted it
31
- * onto a `number` type (`number & YourCustomTag<Value>`), then it would be
32
- * blocked by TypeScript compiler.
33
- */
34
- target: Target;
35
-
36
- /**
37
- * What kind of tag is this?
38
- */
39
- kind: Kind;
40
-
41
- /**
42
- * Value to be configured by user.
43
- */
44
- value: Value;
45
-
46
- /**
47
- * Validation script.
48
- *
49
- * This script would be inserted into the generated validation function.
50
- * In here script, target variable name must be `$input`. The variable name
51
- * `$input` would be transformed to the suitable when compilation.
52
- *
53
- * Also, If you've take a mistake on this script, compile error would be
54
- * occured. So, define it with confidence. Compiler will block all your
55
- * mistakes.
56
- */
57
- validate?: Validate;
58
-
59
- /**
60
- * Exclusive option.
61
- *
62
- * If this property configured as `true`, same {@link kind} tag cannot be
63
- * duplicated in the target type. Otherwise, if you've configured this
64
- * property as string array, all of the {@link kind} value assigned
65
- * tags cannot be compatible in the target type.
66
- *
67
- * @default false
68
- */
69
- exclusive?: Exclusive | string[];
70
-
71
- /**
72
- * Additional schema info assigned to the {@link IJsonSchema} object.
73
- */
74
- schema?: Schema;
75
- }
76
- }
1
+ export type TagBase<
2
+ Props extends TagBase.IProps<any, any, any, any, any, any>,
3
+ > = {
4
+ /**
5
+ * This is a dummy property for compilation.
6
+ *
7
+ * It does not mean anything in runtime.
8
+ */
9
+ "typia.tag"?: Props;
10
+ };
11
+ export namespace TagBase {
12
+ export interface IProps<
13
+ Target extends "boolean" | "bigint" | "number" | "string" | "array",
14
+ Kind extends string,
15
+ Value extends boolean | bigint | number | string | undefined,
16
+ Validate extends
17
+ | string
18
+ | {
19
+ [key in Target]?: string;
20
+ },
21
+ Exclusive extends boolean | string[],
22
+ Schema extends object | undefined,
23
+ > {
24
+ /**
25
+ * Target type.
26
+ *
27
+ * If user tries to adapt this tag to a different type, it would be a compile
28
+ * error.
29
+ *
30
+ * For example, you've configured target type as `string`, but user adapted it
31
+ * onto a `number` type (`number & YourCustomTag<Value>`), then it would be
32
+ * blocked by TypeScript compiler.
33
+ */
34
+ target: Target;
35
+
36
+ /**
37
+ * What kind of tag is this?
38
+ */
39
+ kind: Kind;
40
+
41
+ /**
42
+ * Value to be configured by user.
43
+ */
44
+ value: Value;
45
+
46
+ /**
47
+ * Validation script.
48
+ *
49
+ * This script would be inserted into the generated validation function.
50
+ * In here script, target variable name must be `$input`. The variable name
51
+ * `$input` would be transformed to the suitable when compilation.
52
+ *
53
+ * Also, If you've take a mistake on this script, compile error would be
54
+ * occured. So, define it with confidence. Compiler will block all your
55
+ * mistakes.
56
+ */
57
+ validate?: Validate;
58
+
59
+ /**
60
+ * Exclusive option.
61
+ *
62
+ * If this property configured as `true`, same {@link kind} tag cannot be
63
+ * duplicated in the target type. Otherwise, if you've configured this
64
+ * property as string array, all of the {@link kind} value assigned
65
+ * tags cannot be compatible in the target type.
66
+ *
67
+ * @default false
68
+ */
69
+ exclusive?: Exclusive | string[];
70
+
71
+ /**
72
+ * Additional schema info assigned to the {@link IJsonSchema} object.
73
+ */
74
+ schema?: Schema;
75
+ }
76
+ }
package/src/tags/index.ts CHANGED
@@ -1,14 +1,16 @@
1
- export * from "./Default";
2
- export * from "./ExclusiveMaximum";
3
- export * from "./ExclusiveMinimum";
4
- export * from "./Format";
5
- export * from "./Maximum";
6
- export * from "./MaxItems";
7
- export * from "./MaxLength";
8
- export * from "./Minimum";
9
- export * from "./MinItems";
10
- export * from "./MinLength";
11
- export * from "./MultipleOf";
12
- export * from "./Pattern";
13
- export * from "./TagBase";
14
- export * from "./Type";
1
+ export * from "./Default";
2
+ export * from "./ExclusiveMaximum";
3
+ export * from "./ExclusiveMinimum";
4
+ export * from "./Format";
5
+ export * from "./Maximum";
6
+ export * from "./MaxItems";
7
+ export * from "./MaxLength";
8
+ export * from "./Minimum";
9
+ export * from "./MinItems";
10
+ export * from "./MinLength";
11
+ export * from "./MultipleOf";
12
+ export * from "./JsonSchemaPlugin";
13
+ export * from "./Pattern";
14
+ export * from "./TagBase";
15
+ export * from "./Type";
16
+ export * from "./ContentMediaType";