typia 6.10.0 → 6.10.1-dev.20240919

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 (309) hide show
  1. package/lib/_external/node_modules_@samchon_openapi_lib_utils/LlmSchemaSeparator.mjs +44 -129
  2. package/lib/_external/node_modules_@samchon_openapi_lib_utils/LlmSchemaSeparator.mjs.map +1 -1
  3. package/lib/_external/node_modules_@samchon_openapi_lib_utils/LlmTypeChecker.mjs +19 -167
  4. package/lib/_external/node_modules_@samchon_openapi_lib_utils/LlmTypeChecker.mjs.map +1 -1
  5. package/lib/_virtual/_commonjsHelpers.mjs +1 -3
  6. package/lib/_virtual/_commonjsHelpers.mjs.map +1 -1
  7. package/lib/executable/TypiaSetupWizard.d.ts +1 -1
  8. package/lib/executable/TypiaSetupWizard.js +86 -67
  9. package/lib/executable/TypiaSetupWizard.js.map +1 -1
  10. package/lib/executable/setup/PackageManager.d.ts +1 -2
  11. package/lib/executable/setup/PackageManager.js +13 -10
  12. package/lib/executable/setup/PackageManager.js.map +1 -1
  13. package/lib/factories/internal/metadata/iterate_metadata_function.js +1 -1
  14. package/lib/factories/internal/metadata/iterate_metadata_function.js.map +1 -1
  15. package/lib/functional/Namespace/index.mjs +0 -1
  16. package/lib/functional/Namespace/index.mjs.map +1 -1
  17. package/lib/functional/Namespace/llm.mjs +2 -2
  18. package/lib/functional/Namespace/llm.mjs.map +1 -1
  19. package/lib/transformers/features/llm/LlmApplicationTransformer.js +4 -30
  20. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  21. package/package.json +2 -2
  22. package/src/AssertionGuard.ts +1 -1
  23. package/src/CamelCase.ts +75 -75
  24. package/src/IRandomGenerator.ts +66 -66
  25. package/src/IValidation.ts +21 -21
  26. package/src/PascalCase.ts +71 -71
  27. package/src/Primitive.ts +92 -92
  28. package/src/SnakeCase.ts +126 -126
  29. package/src/TypeGuardError.ts +37 -37
  30. package/src/executable/TypiaSetupWizard.ts +17 -3
  31. package/src/executable/setup/PackageManager.ts +16 -16
  32. package/src/factories/ExpressionFactory.ts +150 -150
  33. package/src/factories/IdentifierFactory.ts +70 -70
  34. package/src/factories/JsonMetadataFactory.ts +53 -53
  35. package/src/factories/LiteralFactory.ts +47 -47
  36. package/src/factories/MetadataTypeTagFactory.ts +336 -336
  37. package/src/factories/NumericRangeFactory.ts +72 -72
  38. package/src/factories/TemplateFactory.ts +56 -56
  39. package/src/factories/ValueFactory.ts +12 -12
  40. package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
  41. package/src/factories/internal/metadata/emend_metadata_atomics.ts +45 -45
  42. package/src/factories/internal/metadata/emplace_metadata_alias.ts +41 -41
  43. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  44. package/src/factories/internal/metadata/iterate_metadata_alias.ts +34 -34
  45. package/src/factories/internal/metadata/iterate_metadata_collection.ts +131 -131
  46. package/src/factories/internal/metadata/iterate_metadata_escape.ts +52 -52
  47. package/src/factories/internal/metadata/iterate_metadata_function.ts +3 -1
  48. package/src/factories/internal/metadata/iterate_metadata_sort.ts +74 -74
  49. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +37 -37
  50. package/src/functional/$FormDataReader/$FormDataReader.ts +83 -83
  51. package/src/functional/$FormDataReader/index.ts +1 -1
  52. package/src/functional/$HeadersReader/$HeadersReader.ts +26 -26
  53. package/src/functional/$HeadersReader/index.ts +1 -1
  54. package/src/functional/$ParameterReader/$ParameterReader.ts +29 -29
  55. package/src/functional/$ParameterReader/index.ts +1 -1
  56. package/src/functional/$ProtobufReader.ts +194 -194
  57. package/src/functional/$ProtobufSizer.ts +144 -144
  58. package/src/functional/$ProtobufWriter.ts +145 -145
  59. package/src/functional/$QueryReader/$QueryReader.ts +46 -46
  60. package/src/functional/$QueryReader/index.ts +1 -1
  61. package/src/functional/$any.ts +3 -3
  62. package/src/functional/$clone.ts +48 -48
  63. package/src/functional/$convention.ts +37 -37
  64. package/src/functional/$dictionary.ts +22 -22
  65. package/src/functional/$every.ts +11 -11
  66. package/src/functional/$guard.ts +21 -21
  67. package/src/functional/$is_between.ts +2 -2
  68. package/src/functional/$join.ts +46 -46
  69. package/src/functional/$number.ts +12 -12
  70. package/src/functional/$report.ts +13 -13
  71. package/src/functional/$rest.ts +3 -3
  72. package/src/functional/$stoll.ts +8 -8
  73. package/src/functional/$string.ts +43 -43
  74. package/src/functional/$strlen.ts +7 -7
  75. package/src/functional/$tail.ts +5 -5
  76. package/src/functional/$throws.ts +10 -10
  77. package/src/functional/$varint.ts +130 -130
  78. package/src/functional/$zigzag.ts +39 -39
  79. package/src/functional/IProtobufWriter.ts +18 -18
  80. package/src/functional/Namespace/functional.ts +5 -5
  81. package/src/functional/Namespace/http.ts +9 -9
  82. package/src/functional/Namespace/json.ts +15 -15
  83. package/src/functional/Namespace/misc.ts +14 -14
  84. package/src/functional/Namespace/notations.ts +23 -23
  85. package/src/functional/Namespace/protobuf.ts +20 -20
  86. package/src/functional/is.ts +10 -10
  87. package/src/functional.ts +872 -872
  88. package/src/http.ts +1266 -1266
  89. package/src/index.ts +4 -4
  90. package/src/misc.ts +757 -757
  91. package/src/notations.ts +1020 -1020
  92. package/src/programmers/TypiaProgrammer.ts +157 -157
  93. package/src/programmers/helpers/AtomicPredicator.ts +24 -24
  94. package/src/programmers/helpers/CloneJoiner.ts +130 -130
  95. package/src/programmers/helpers/FunctionImporeter.ts +1 -1
  96. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  97. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  98. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  99. package/src/programmers/helpers/NotationJoiner.ts +132 -132
  100. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  101. package/src/programmers/helpers/ProtobufUtil.ts +125 -125
  102. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  103. package/src/programmers/helpers/PruneJoiner.ts +139 -139
  104. package/src/programmers/helpers/RandomJoiner.ts +145 -145
  105. package/src/programmers/helpers/RandomRanger.ts +171 -171
  106. package/src/programmers/helpers/StringifyJoinder.ts +105 -105
  107. package/src/programmers/helpers/StringifyPredicator.ts +12 -12
  108. package/src/programmers/helpers/UnionExplorer.ts +269 -269
  109. package/src/programmers/helpers/UnionPredicator.ts +77 -77
  110. package/src/programmers/helpers/disable_function_importer_declare.ts +33 -33
  111. package/src/programmers/http/HttpParameterProgrammer.ts +97 -97
  112. package/src/programmers/internal/application_array.ts +61 -61
  113. package/src/programmers/internal/application_boolean.ts +25 -25
  114. package/src/programmers/internal/application_description.ts +12 -12
  115. package/src/programmers/internal/application_number.ts +25 -25
  116. package/src/programmers/internal/application_plugin.ts +19 -19
  117. package/src/programmers/internal/application_string.ts +25 -25
  118. package/src/programmers/internal/application_templates.ts +62 -62
  119. package/src/programmers/internal/application_title.ts +20 -20
  120. package/src/programmers/internal/application_union_discriminator.ts +35 -35
  121. package/src/programmers/internal/application_v30_constant.ts +18 -18
  122. package/src/programmers/internal/application_v30_native.ts +28 -28
  123. package/src/programmers/internal/application_v31_alias.ts +41 -41
  124. package/src/programmers/internal/application_v31_native.ts +24 -24
  125. package/src/programmers/internal/application_v31_tuple.ts +21 -21
  126. package/src/programmers/internal/check_array_length.ts +45 -45
  127. package/src/programmers/internal/check_bigint.ts +49 -49
  128. package/src/programmers/internal/check_dynamic_key.ts +174 -174
  129. package/src/programmers/internal/check_dynamic_properties.ts +211 -211
  130. package/src/programmers/internal/check_everything.ts +23 -23
  131. package/src/programmers/internal/check_native.ts +21 -21
  132. package/src/programmers/internal/check_number.ts +107 -107
  133. package/src/programmers/internal/check_object.ts +61 -61
  134. package/src/programmers/internal/check_string.ts +48 -48
  135. package/src/programmers/internal/check_template.ts +46 -46
  136. package/src/programmers/internal/check_union_array_like.ts +307 -307
  137. package/src/programmers/internal/decode_union_object.ts +99 -99
  138. package/src/programmers/internal/feature_object_entries.ts +58 -58
  139. package/src/programmers/internal/metadata_to_pattern.ts +34 -34
  140. package/src/programmers/internal/postfix_of_tuple.ts +2 -2
  141. package/src/programmers/internal/prune_object_properties.ts +60 -60
  142. package/src/programmers/internal/random_custom.ts +37 -37
  143. package/src/programmers/internal/stringify_dynamic_properties.ts +157 -157
  144. package/src/programmers/internal/stringify_native.ts +7 -7
  145. package/src/programmers/internal/template_to_pattern.ts +15 -15
  146. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +20 -20
  147. package/src/programmers/misc/MiscLiteralsProgrammer.ts +70 -70
  148. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +160 -160
  149. package/src/reflect.ts +63 -63
  150. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  151. package/src/schemas/metadata/IMetadataAlias.ts +12 -12
  152. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  153. package/src/schemas/metadata/IMetadataArray.ts +7 -7
  154. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  155. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  156. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  157. package/src/schemas/metadata/IMetadataConstant.ts +18 -18
  158. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  159. package/src/schemas/metadata/IMetadataEntry.ts +6 -6
  160. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  161. package/src/schemas/metadata/IMetadataObject.ts +13 -13
  162. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  163. package/src/schemas/metadata/IMetadataTuple.ts +7 -7
  164. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  165. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  166. package/src/schemas/metadata/MetadataAlias.ts +61 -61
  167. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  168. package/src/schemas/metadata/MetadataArray.ts +49 -49
  169. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  170. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  171. package/src/schemas/metadata/MetadataConstant.ts +34 -34
  172. package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
  173. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  174. package/src/schemas/metadata/MetadataObject.ts +139 -139
  175. package/src/schemas/metadata/MetadataProperty.ts +56 -56
  176. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  177. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  178. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  179. package/src/tags/ContentMediaType.ts +10 -10
  180. package/src/tags/Format.ts +16 -16
  181. package/src/tags/MaxItems.ts +12 -12
  182. package/src/tags/MaxLength.ts +12 -12
  183. package/src/tags/MinItems.ts +12 -12
  184. package/src/tags/MinLength.ts +12 -12
  185. package/src/tags/TagBase.ts +76 -76
  186. package/src/tags/UniqueItems.ts +14 -14
  187. package/src/tags/index.ts +18 -18
  188. package/src/tags/internal/FormatCheatSheet.ts +73 -73
  189. package/src/transform.ts +35 -35
  190. package/src/transformers/IProject.ts +15 -15
  191. package/src/transformers/ITransformOptions.ts +62 -62
  192. package/src/transformers/ImportTransformer.ts +66 -66
  193. package/src/transformers/NodeTransformer.ts +13 -13
  194. package/src/transformers/features/AssertTransformer.ts +16 -16
  195. package/src/transformers/features/CreateAssertTransformer.ts +16 -16
  196. package/src/transformers/features/CreateIsTransformer.ts +10 -10
  197. package/src/transformers/features/CreateValidateTransformer.ts +13 -13
  198. package/src/transformers/features/IsTransformer.ts +10 -10
  199. package/src/transformers/features/ValidateTransformer.ts +11 -11
  200. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  201. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +12 -12
  202. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +11 -11
  203. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +9 -9
  204. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +9 -9
  205. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +9 -9
  206. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +9 -9
  207. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +9 -9
  208. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +9 -9
  209. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +9 -9
  210. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +9 -9
  211. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +12 -12
  212. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +12 -12
  213. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +11 -11
  214. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +10 -10
  215. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +9 -9
  216. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +9 -9
  217. package/src/transformers/features/http/HttpFormDataTransformer.ts +9 -9
  218. package/src/transformers/features/http/HttpHeadersTransformer.ts +9 -9
  219. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +9 -9
  220. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +9 -9
  221. package/src/transformers/features/http/HttpIsQueryTransformer.ts +9 -9
  222. package/src/transformers/features/http/HttpParameterTransformer.ts +9 -9
  223. package/src/transformers/features/http/HttpQueryTransformer.ts +9 -9
  224. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +10 -10
  225. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +10 -10
  226. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +9 -9
  227. package/src/transformers/features/json/JsonAssertParseTransformer.ts +9 -9
  228. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +10 -10
  229. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +9 -9
  230. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +12 -12
  231. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +9 -9
  232. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +9 -9
  233. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +9 -9
  234. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +11 -11
  235. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +12 -12
  236. package/src/transformers/features/json/JsonIsParseTransformer.ts +9 -9
  237. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +9 -9
  238. package/src/transformers/features/json/JsonStringifyTransformer.ts +9 -9
  239. package/src/transformers/features/json/JsonValidateParseTransformer.ts +9 -9
  240. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +10 -10
  241. package/src/transformers/features/llm/LlmApplicationTransformer.ts +3 -7
  242. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +9 -9
  243. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +9 -9
  244. package/src/transformers/features/misc/MiscCloneTransformer.ts +9 -9
  245. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +9 -9
  246. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +9 -9
  247. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +9 -9
  248. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +9 -9
  249. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +9 -9
  250. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +9 -9
  251. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +11 -11
  252. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +11 -11
  253. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +9 -9
  254. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +9 -9
  255. package/src/transformers/features/misc/MiscPruneTransformer.ts +9 -9
  256. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +9 -9
  257. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +9 -9
  258. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +15 -15
  259. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +15 -15
  260. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +15 -15
  261. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +15 -15
  262. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +15 -15
  263. package/src/transformers/features/notations/NotationGeneralTransformer.ts +11 -11
  264. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +15 -15
  265. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +15 -15
  266. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +10 -10
  267. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +10 -10
  268. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +12 -12
  269. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +12 -12
  270. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +9 -9
  271. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +9 -9
  272. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +9 -9
  273. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +9 -9
  274. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +12 -12
  275. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +12 -12
  276. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +9 -9
  277. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +9 -9
  278. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +9 -9
  279. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +9 -9
  280. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +10 -10
  281. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +10 -10
  282. package/src/transformers/features/reflect/ReflectNameTransformer.ts +66 -66
  283. package/src/typings/Atomic.ts +13 -13
  284. package/src/typings/ClassProperties.ts +5 -5
  285. package/src/typings/Customizable.ts +5 -5
  286. package/src/typings/Equal.ts +18 -18
  287. package/src/typings/IsTuple.ts +9 -9
  288. package/src/typings/NativeClass.ts +23 -23
  289. package/src/typings/OmitNever.ts +3 -3
  290. package/src/typings/ProtobufAtomic.ts +19 -19
  291. package/src/typings/SpecialFields.ts +3 -3
  292. package/src/typings/ValidationPipe.ts +9 -9
  293. package/src/typings/ValueOf.ts +20 -20
  294. package/src/typings/Writable.ts +11 -11
  295. package/src/utils/ArrayUtil.ts +41 -41
  296. package/src/utils/MapUtil.ts +12 -12
  297. package/src/utils/NameEncoder.ts +32 -32
  298. package/src/utils/NamingConvention/NamingConvention.ts +89 -89
  299. package/src/utils/NamingConvention/index.ts +1 -1
  300. package/src/utils/PatternUtil.ts +29 -29
  301. package/src/utils/RandomGenerator/RandomGenerator.ts +119 -119
  302. package/src/utils/RandomGenerator/index.ts +1 -1
  303. package/src/utils/Singleton.ts +16 -16
  304. package/src/utils/StringUtil/StringUtil.ts +7 -7
  305. package/src/utils/StringUtil/index.ts +1 -1
  306. package/lib/_virtual/LlmSchemaSeparator.mjs +0 -4
  307. package/lib/_virtual/LlmSchemaSeparator.mjs.map +0 -1
  308. package/lib/_virtual/LlmTypeChecker.mjs +0 -4
  309. package/lib/_virtual/LlmTypeChecker.mjs.map +0 -1
@@ -1,67 +1,67 @@
1
- import { ClassProperties } from "../../typings/ClassProperties";
2
-
3
- import { IMetadataTupleType } from "./IMetadataTupleType";
4
- import { Metadata } from "./Metadata";
5
-
6
- export class MetadataTupleType {
7
- public readonly name: string;
8
- public readonly elements: Metadata[];
9
-
10
- public readonly index: number | null;
11
- public readonly recursive: boolean;
12
- public readonly nullables: boolean[];
13
-
14
- /**
15
- * @internal
16
- */
17
- public of_map?: boolean;
18
-
19
- /**
20
- * @internal
21
- */
22
- private constructor(props: ClassProperties<MetadataTupleType>) {
23
- this.name = props.name;
24
- this.elements = props.elements;
25
- this.index = props.index;
26
- this.recursive = props.recursive;
27
- this.nullables = props.nullables;
28
- }
29
-
30
- /**
31
- * @internal
32
- */
33
- public static _From_without_elements(
34
- props: Omit<IMetadataTupleType, "elements">,
35
- ): MetadataTupleType {
36
- return MetadataTupleType.create({
37
- name: props.name,
38
- index: props.index,
39
- elements: null!,
40
- recursive: props.recursive,
41
- nullables: props.nullables.slice(),
42
- });
43
- }
44
-
45
- public static create(
46
- props: ClassProperties<MetadataTupleType>,
47
- ): MetadataTupleType {
48
- return new MetadataTupleType(props);
49
- }
50
-
51
- public isRest(): boolean {
52
- return (
53
- this.elements.length > 0 &&
54
- this.elements[this.elements.length - 1]!.rest !== null
55
- );
56
- }
57
-
58
- public toJSON(): IMetadataTupleType {
59
- return {
60
- name: this.name,
61
- index: this.index,
62
- elements: this.elements.map((elem) => elem.toJSON()),
63
- recursive: this.recursive,
64
- nullables: this.nullables.slice(),
65
- };
66
- }
67
- }
1
+ import { ClassProperties } from "../../typings/ClassProperties";
2
+
3
+ import { IMetadataTupleType } from "./IMetadataTupleType";
4
+ import { Metadata } from "./Metadata";
5
+
6
+ export class MetadataTupleType {
7
+ public readonly name: string;
8
+ public readonly elements: Metadata[];
9
+
10
+ public readonly index: number | null;
11
+ public readonly recursive: boolean;
12
+ public readonly nullables: boolean[];
13
+
14
+ /**
15
+ * @internal
16
+ */
17
+ public of_map?: boolean;
18
+
19
+ /**
20
+ * @internal
21
+ */
22
+ private constructor(props: ClassProperties<MetadataTupleType>) {
23
+ this.name = props.name;
24
+ this.elements = props.elements;
25
+ this.index = props.index;
26
+ this.recursive = props.recursive;
27
+ this.nullables = props.nullables;
28
+ }
29
+
30
+ /**
31
+ * @internal
32
+ */
33
+ public static _From_without_elements(
34
+ props: Omit<IMetadataTupleType, "elements">,
35
+ ): MetadataTupleType {
36
+ return MetadataTupleType.create({
37
+ name: props.name,
38
+ index: props.index,
39
+ elements: null!,
40
+ recursive: props.recursive,
41
+ nullables: props.nullables.slice(),
42
+ });
43
+ }
44
+
45
+ public static create(
46
+ props: ClassProperties<MetadataTupleType>,
47
+ ): MetadataTupleType {
48
+ return new MetadataTupleType(props);
49
+ }
50
+
51
+ public isRest(): boolean {
52
+ return (
53
+ this.elements.length > 0 &&
54
+ this.elements[this.elements.length - 1]!.rest !== null
55
+ );
56
+ }
57
+
58
+ public toJSON(): IMetadataTupleType {
59
+ return {
60
+ name: this.name,
61
+ index: this.index,
62
+ elements: this.elements.map((elem) => elem.toJSON()),
63
+ recursive: this.recursive,
64
+ nullables: this.nullables.slice(),
65
+ };
66
+ }
67
+ }
@@ -1,10 +1,10 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- export type ContentMediaType<Value extends string> = TagBase<{
4
- target: "string";
5
- kind: "contentMediaType";
6
- value: undefined;
7
- schema: {
8
- contentMediaType: Value;
9
- };
10
- }>;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ export type ContentMediaType<Value extends string> = TagBase<{
4
+ target: "string";
5
+ kind: "contentMediaType";
6
+ value: undefined;
7
+ schema: {
8
+ contentMediaType: Value;
9
+ };
10
+ }>;
@@ -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
+ }
@@ -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,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,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
+ }
@@ -1,14 +1,14 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- export type UniqueItems<Value extends boolean = true> = TagBase<{
4
- target: "array";
5
- kind: "uniqueItems";
6
- value: Value;
7
- validate: Value extends true
8
- ? `$input.length <= 1 || ($input.length === new Set($input).size)`
9
- : undefined;
10
- exclusive: true;
11
- schema: {
12
- uniqueItems: true;
13
- };
14
- }>;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ export type UniqueItems<Value extends boolean = true> = TagBase<{
4
+ target: "array";
5
+ kind: "uniqueItems";
6
+ value: Value;
7
+ validate: Value extends true
8
+ ? `$input.length <= 1 || ($input.length === new Set($input).size)`
9
+ : undefined;
10
+ exclusive: true;
11
+ schema: {
12
+ uniqueItems: true;
13
+ };
14
+ }>;
package/src/tags/index.ts CHANGED
@@ -1,18 +1,18 @@
1
- export * from "./Constant";
2
- export * from "./ContentMediaType";
3
- export * from "./Default";
4
- export * from "./ExclusiveMaximum";
5
- export * from "./ExclusiveMinimum";
6
- export * from "./Format";
7
- export * from "./JsonSchemaPlugin";
8
- export * from "./Maximum";
9
- export * from "./MaxItems";
10
- export * from "./MaxLength";
11
- export * from "./Minimum";
12
- export * from "./MinItems";
13
- export * from "./MinLength";
14
- export * from "./MultipleOf";
15
- export * from "./Pattern";
16
- export * from "./TagBase";
17
- export * from "./Type";
18
- export * from "./UniqueItems";
1
+ export * from "./Constant";
2
+ export * from "./ContentMediaType";
3
+ export * from "./Default";
4
+ export * from "./ExclusiveMaximum";
5
+ export * from "./ExclusiveMinimum";
6
+ export * from "./Format";
7
+ export * from "./JsonSchemaPlugin";
8
+ export * from "./Maximum";
9
+ export * from "./MaxItems";
10
+ export * from "./MaxLength";
11
+ export * from "./Minimum";
12
+ export * from "./MinItems";
13
+ export * from "./MinLength";
14
+ export * from "./MultipleOf";
15
+ export * from "./Pattern";
16
+ export * from "./TagBase";
17
+ export * from "./Type";
18
+ export * from "./UniqueItems";