typia 3.7.3-dev.20230408 → 3.7.4-dev.20230410

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 (215) hide show
  1. package/README.md +5 -56
  2. package/package.json +8 -8
  3. package/src/CustomValidatorMap.ts +126 -126
  4. package/src/IRandomGenerator.ts +33 -33
  5. package/src/IValidation.ts +21 -21
  6. package/src/Primitive.ts +104 -104
  7. package/src/TypeGuardError.ts +36 -36
  8. package/src/executable/TypiaGenerateWizard.ts +87 -87
  9. package/src/executable/TypiaSetupWizard.ts +152 -152
  10. package/src/executable/setup/ArgumentParser.ts +91 -91
  11. package/src/executable/setup/CommandExecutor.ts +8 -8
  12. package/src/executable/setup/FileRetriever.ts +33 -33
  13. package/src/executable/setup/PackageManager.ts +92 -92
  14. package/src/executable/setup/PluginConfigurator.ts +99 -99
  15. package/src/executable/typia.ts +38 -38
  16. package/src/factories/CommentFactory.ts +10 -10
  17. package/src/factories/ExpressionFactory.ts +77 -77
  18. package/src/factories/IdentifierFactory.ts +81 -81
  19. package/src/factories/LiteralFactory.ts +44 -44
  20. package/src/factories/MetadataCollection.ts +122 -122
  21. package/src/factories/MetadataFactory.ts +51 -51
  22. package/src/factories/MetadataTagFactory.ts +302 -302
  23. package/src/factories/StatementFactory.ts +60 -60
  24. package/src/factories/TemplateFactory.ts +56 -56
  25. package/src/factories/TypeFactory.ts +129 -129
  26. package/src/factories/TypiaFileFactory.ts +120 -120
  27. package/src/factories/ValueFactory.ts +12 -12
  28. package/src/factories/internal/metadata/MetadataHelper.ts +12 -12
  29. package/src/factories/internal/metadata/emplace_metadata_object.ts +142 -142
  30. package/src/factories/internal/metadata/explore_metadata.ts +92 -92
  31. package/src/factories/internal/metadata/iterate_metadata.ts +80 -80
  32. package/src/factories/internal/metadata/iterate_metadata_array.ts +29 -29
  33. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +59 -59
  34. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
  35. package/src/factories/internal/metadata/iterate_metadata_constant.ts +58 -58
  36. package/src/factories/internal/metadata/iterate_metadata_map.ts +41 -41
  37. package/src/factories/internal/metadata/iterate_metadata_native.ts +222 -222
  38. package/src/factories/internal/metadata/iterate_metadata_object.ts +48 -48
  39. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +27 -27
  40. package/src/factories/internal/metadata/iterate_metadata_set.ts +33 -33
  41. package/src/factories/internal/metadata/iterate_metadata_template.ts +38 -38
  42. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +45 -45
  43. package/src/factories/internal/metadata/iterate_metadata_union.ts +59 -59
  44. package/src/functional/$any.ts +3 -3
  45. package/src/functional/$dictionary.ts +20 -20
  46. package/src/functional/$every.ts +11 -11
  47. package/src/functional/$guard.ts +35 -35
  48. package/src/functional/$is_between.ts +7 -7
  49. package/src/functional/$is_custom.ts +14 -14
  50. package/src/functional/$is_date.ts +4 -4
  51. package/src/functional/$is_datetime.ts +3 -3
  52. package/src/functional/$is_email.ts +5 -5
  53. package/src/functional/$is_ipv4.ts +5 -5
  54. package/src/functional/$is_ipv6.ts +5 -5
  55. package/src/functional/$is_url.ts +5 -5
  56. package/src/functional/$is_uuid.ts +5 -5
  57. package/src/functional/$join.ts +50 -50
  58. package/src/functional/$number.ts +12 -12
  59. package/src/functional/$report.ts +15 -15
  60. package/src/functional/$rest.ts +3 -3
  61. package/src/functional/$string.ts +37 -37
  62. package/src/functional/$tail.ts +6 -6
  63. package/src/functional/Namespace.ts +127 -127
  64. package/src/index.ts +4 -4
  65. package/src/metadata/ICommentTag.ts +4 -4
  66. package/src/metadata/IJsDocTagInfo.ts +10 -10
  67. package/src/metadata/IMetadata.ts +25 -25
  68. package/src/metadata/IMetadataApplication.ts +7 -7
  69. package/src/metadata/IMetadataConstant.ts +16 -16
  70. package/src/metadata/IMetadataEntry.ts +6 -6
  71. package/src/metadata/IMetadataObject.ts +29 -29
  72. package/src/metadata/IMetadataProperty.ts +11 -11
  73. package/src/metadata/IMetadataTag.ts +105 -105
  74. package/src/metadata/Metadata.ts +534 -534
  75. package/src/metadata/MetadataConstant.ts +3 -3
  76. package/src/metadata/MetadataObject.ts +131 -131
  77. package/src/metadata/MetadataProperty.ts +64 -64
  78. package/src/module.ts +2043 -2043
  79. package/src/programmers/ApplicationProgrammer.ts +55 -55
  80. package/src/programmers/AssertCloneProgrammer.ts +70 -70
  81. package/src/programmers/AssertParseProgrammer.ts +65 -65
  82. package/src/programmers/AssertProgrammer.ts +284 -284
  83. package/src/programmers/AssertPruneProgrammer.ts +67 -67
  84. package/src/programmers/AssertStringifyProgrammer.ts +71 -71
  85. package/src/programmers/CheckerProgrammer.ts +922 -922
  86. package/src/programmers/CloneProgrammer.ts +388 -388
  87. package/src/programmers/FeatureProgrammer.ts +512 -512
  88. package/src/programmers/IsCloneProgrammer.ts +80 -80
  89. package/src/programmers/IsParseProgrammer.ts +74 -74
  90. package/src/programmers/IsProgrammer.ts +206 -206
  91. package/src/programmers/IsPruneProgrammer.ts +75 -75
  92. package/src/programmers/IsStringifyProgrammer.ts +81 -81
  93. package/src/programmers/LiteralsProgrammer.ts +65 -65
  94. package/src/programmers/PruneProgrammer.ts +343 -343
  95. package/src/programmers/RandomProgrammer.ts +413 -413
  96. package/src/programmers/StringifyProgrammer.ts +801 -801
  97. package/src/programmers/ValidateCloneProgrammer.ts +90 -90
  98. package/src/programmers/ValidateParseProgrammer.ts +69 -69
  99. package/src/programmers/ValidateProgrammer.ts +317 -317
  100. package/src/programmers/ValidatePruneProgrammer.ts +83 -83
  101. package/src/programmers/ValidateStringifyProgrammer.ts +89 -89
  102. package/src/programmers/helpers/AtomicPredicator.ts +31 -31
  103. package/src/programmers/helpers/CloneJoiner.ts +134 -134
  104. package/src/programmers/helpers/FunctionImporeter.ts +55 -55
  105. package/src/programmers/helpers/ICheckEntry.ts +12 -12
  106. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  107. package/src/programmers/helpers/OptionPredicator.ts +19 -19
  108. package/src/programmers/helpers/PruneJoiner.ts +52 -52
  109. package/src/programmers/helpers/RandomJoiner.ts +161 -161
  110. package/src/programmers/helpers/RandomRanger.ts +216 -216
  111. package/src/programmers/helpers/StringifyJoinder.ts +114 -114
  112. package/src/programmers/helpers/StringifyPredicator.ts +18 -18
  113. package/src/programmers/helpers/UnionExplorer.ts +281 -281
  114. package/src/programmers/helpers/UnionPredicator.ts +81 -81
  115. package/src/programmers/internal/application_array.ts +37 -37
  116. package/src/programmers/internal/application_boolean.ts +17 -17
  117. package/src/programmers/internal/application_constant.ts +29 -29
  118. package/src/programmers/internal/application_default.ts +17 -17
  119. package/src/programmers/internal/application_default_string.ts +32 -32
  120. package/src/programmers/internal/application_native.ts +32 -32
  121. package/src/programmers/internal/application_number.ts +73 -73
  122. package/src/programmers/internal/application_object.ts +153 -153
  123. package/src/programmers/internal/application_schema.ts +184 -184
  124. package/src/programmers/internal/application_string.ts +45 -45
  125. package/src/programmers/internal/application_templates.ts +27 -27
  126. package/src/programmers/internal/application_tuple.ts +29 -29
  127. package/src/programmers/internal/check_array.ts +30 -30
  128. package/src/programmers/internal/check_array_length.ts +35 -35
  129. package/src/programmers/internal/check_bigint.ts +82 -82
  130. package/src/programmers/internal/check_custom.ts +33 -33
  131. package/src/programmers/internal/check_dynamic_properties.ts +197 -197
  132. package/src/programmers/internal/check_everything.ts +28 -28
  133. package/src/programmers/internal/check_native.ts +21 -21
  134. package/src/programmers/internal/check_number.ts +177 -177
  135. package/src/programmers/internal/check_object.ts +55 -55
  136. package/src/programmers/internal/check_string.ts +25 -25
  137. package/src/programmers/internal/check_string_tags.ts +73 -73
  138. package/src/programmers/internal/check_template.ts +59 -59
  139. package/src/programmers/internal/check_union_array_like.ts +272 -272
  140. package/src/programmers/internal/check_union_tuple.ts +35 -35
  141. package/src/programmers/internal/decode_union_object.ts +73 -73
  142. package/src/programmers/internal/feature_object_entries.ts +63 -63
  143. package/src/programmers/internal/get_comment_tags.ts +23 -23
  144. package/src/programmers/internal/metadata_to_pattern.ts +34 -34
  145. package/src/programmers/internal/prune_object_properties.ts +60 -60
  146. package/src/programmers/internal/random_custom.ts +30 -30
  147. package/src/programmers/internal/stringify_dynamic_properties.ts +168 -168
  148. package/src/programmers/internal/stringify_native.ts +8 -8
  149. package/src/programmers/internal/stringify_regular_properties.ts +84 -84
  150. package/src/programmers/internal/template_to_pattern.ts +15 -15
  151. package/src/schemas/IJsonApplication.ts +9 -9
  152. package/src/schemas/IJsonComponents.ts +26 -26
  153. package/src/schemas/IJsonSchema.ts +121 -121
  154. package/src/transform.ts +21 -21
  155. package/src/transformers/CallExpressionTransformer.ts +174 -174
  156. package/src/transformers/ExpressionWithArgumentTransformer.ts +66 -66
  157. package/src/transformers/FileTransformer.ts +49 -49
  158. package/src/transformers/IProject.ts +11 -11
  159. package/src/transformers/ITransformOptions.ts +62 -62
  160. package/src/transformers/ImportTransformer.ts +66 -66
  161. package/src/transformers/NodeTransformer.ts +19 -19
  162. package/src/transformers/features/miscellaneous/ApplicationTransformer.ts +119 -119
  163. package/src/transformers/features/miscellaneous/AssertCloneTransformer.ts +9 -9
  164. package/src/transformers/features/miscellaneous/AssertPruneTransformer.ts +9 -9
  165. package/src/transformers/features/miscellaneous/CloneTransformer.ts +9 -9
  166. package/src/transformers/features/miscellaneous/CreateAssertCloneTransformer.ts +9 -9
  167. package/src/transformers/features/miscellaneous/CreateAssertPruneTransformer.ts +9 -9
  168. package/src/transformers/features/miscellaneous/CreateCloneTransformer.ts +9 -9
  169. package/src/transformers/features/miscellaneous/CreateIsCloneTransformer.ts +9 -9
  170. package/src/transformers/features/miscellaneous/CreateIsPruneTransformer.ts +9 -9
  171. package/src/transformers/features/miscellaneous/CreatePruneTransformer.ts +9 -9
  172. package/src/transformers/features/miscellaneous/CreateRandomTransformer.ts +41 -41
  173. package/src/transformers/features/miscellaneous/CreateValidateCloneTransformer.ts +9 -9
  174. package/src/transformers/features/miscellaneous/CreateValidatePruneTransformer.ts +9 -9
  175. package/src/transformers/features/miscellaneous/IsCloneTransformer.ts +9 -9
  176. package/src/transformers/features/miscellaneous/IsPruneTransformer.ts +9 -9
  177. package/src/transformers/features/miscellaneous/LiteralsTransformer.ts +30 -30
  178. package/src/transformers/features/miscellaneous/MetadataTransformer.ts +54 -54
  179. package/src/transformers/features/miscellaneous/PruneTransformer.ts +9 -9
  180. package/src/transformers/features/miscellaneous/RandomTransformer.ts +46 -46
  181. package/src/transformers/features/miscellaneous/ValidateCloneTransformer.ts +9 -9
  182. package/src/transformers/features/miscellaneous/ValidatePruneTransformer.ts +9 -9
  183. package/src/transformers/features/parsers/AssertParseTransformer.ts +9 -9
  184. package/src/transformers/features/parsers/CreateAssertParseTransformer.ts +9 -9
  185. package/src/transformers/features/parsers/CreateIsParseTransformer.ts +9 -9
  186. package/src/transformers/features/parsers/CreateValidateParseTransformer.ts +9 -9
  187. package/src/transformers/features/parsers/IsParseTransformer.ts +9 -9
  188. package/src/transformers/features/parsers/ValidateParseTransformer.ts +9 -9
  189. package/src/transformers/features/stringifiers/AssertStringifyTransformer.ts +10 -10
  190. package/src/transformers/features/stringifiers/CreateAssertStringifyTransformer.ts +9 -9
  191. package/src/transformers/features/stringifiers/CreateIsStringifyTransformer.ts +9 -9
  192. package/src/transformers/features/stringifiers/CreateStringifyTransformer.ts +9 -9
  193. package/src/transformers/features/stringifiers/CreateValidateStringifyProgrammer.ts +11 -11
  194. package/src/transformers/features/stringifiers/IsStringifyTransformer.ts +9 -9
  195. package/src/transformers/features/stringifiers/StringifyTransformer.ts +9 -9
  196. package/src/transformers/features/stringifiers/ValidateStringifyTransformer.ts +10 -10
  197. package/src/transformers/features/validators/AssertTransformer.ts +11 -11
  198. package/src/transformers/features/validators/CreateAssertTransformer.ts +12 -12
  199. package/src/transformers/features/validators/CreateIsTransformer.ts +10 -10
  200. package/src/transformers/features/validators/CreateValidateTransformer.ts +12 -12
  201. package/src/transformers/features/validators/IsTransformer.ts +10 -10
  202. package/src/transformers/features/validators/ValidateTransformer.ts +11 -11
  203. package/src/transformers/internal/GenericTransformer.ts +99 -99
  204. package/src/typings/Atomic.ts +17 -17
  205. package/src/typings/ClassProperties.ts +5 -5
  206. package/src/typings/Customizable.ts +5 -5
  207. package/src/typings/OmitNever.ts +3 -3
  208. package/src/typings/SpecialFields.ts +3 -3
  209. package/src/typings/Writable.ts +11 -11
  210. package/src/utils/ArrayUtil.ts +49 -49
  211. package/src/utils/Escaper.ts +50 -50
  212. package/src/utils/MapUtil.ts +14 -14
  213. package/src/utils/PatternUtil.ts +30 -30
  214. package/src/utils/RandomGenerator.ts +96 -96
  215. package/src/utils/Singleton.ts +17 -17
@@ -1,10 +1,10 @@
1
- export interface IJsDocTagInfo {
2
- name: string;
3
- text?: IJsDocTagInfo.IText[];
4
- }
5
- export namespace IJsDocTagInfo {
6
- export interface IText {
7
- text: string;
8
- kind: string;
9
- }
10
- }
1
+ export interface IJsDocTagInfo {
2
+ name: string;
3
+ text?: IJsDocTagInfo.IText[];
4
+ }
5
+ export namespace IJsDocTagInfo {
6
+ export interface IText {
7
+ text: string;
8
+ kind: string;
9
+ }
10
+ }
@@ -1,25 +1,25 @@
1
- import { Atomic } from "../typings/Atomic";
2
-
3
- import { IMetadataConstant } from "./IMetadataConstant";
4
- import { IMetadataEntry } from "./IMetadataEntry";
5
-
6
- export interface IMetadata {
7
- any: boolean;
8
- required: boolean;
9
- nullable: boolean;
10
- functional: boolean;
11
-
12
- atomics: Atomic.Literal[];
13
- constants: IMetadataConstant[];
14
- templates: IMetadata[][];
15
- resolved: IMetadata | null;
16
-
17
- rest: IMetadata | null;
18
- arrays: IMetadata[];
19
- tuples: IMetadata[][];
20
- objects: string[];
21
-
22
- natives: string[];
23
- sets: IMetadata[];
24
- maps: IMetadataEntry[];
25
- }
1
+ import { Atomic } from "../typings/Atomic";
2
+
3
+ import { IMetadataConstant } from "./IMetadataConstant";
4
+ import { IMetadataEntry } from "./IMetadataEntry";
5
+
6
+ export interface IMetadata {
7
+ any: boolean;
8
+ required: boolean;
9
+ nullable: boolean;
10
+ functional: boolean;
11
+
12
+ atomics: Atomic.Literal[];
13
+ constants: IMetadataConstant[];
14
+ templates: IMetadata[][];
15
+ resolved: IMetadata | null;
16
+
17
+ rest: IMetadata | null;
18
+ arrays: IMetadata[];
19
+ tuples: IMetadata[][];
20
+ objects: string[];
21
+
22
+ natives: string[];
23
+ sets: IMetadata[];
24
+ maps: IMetadataEntry[];
25
+ }
@@ -1,7 +1,7 @@
1
- import { IMetadata } from "./IMetadata";
2
- import { IMetadataObject } from "./IMetadataObject";
3
-
4
- export interface IMetadataApplication {
5
- metadatas: IMetadata[];
6
- collection: IMetadataObject[];
7
- }
1
+ import { IMetadata } from "./IMetadata";
2
+ import { IMetadataObject } from "./IMetadataObject";
3
+
4
+ export interface IMetadataApplication {
5
+ metadatas: IMetadata[];
6
+ collection: IMetadataObject[];
7
+ }
@@ -1,16 +1,16 @@
1
- import { Atomic } from "../typings/Atomic";
2
-
3
- export type IMetadataConstant =
4
- | IMetadataConstant.IBase<"boolean", boolean>
5
- | IMetadataConstant.IBase<"number", number>
6
- | IMetadataConstant.IBase<"string", string>
7
- | IMetadataConstant.IBase<"bigint", bigint>;
8
- export namespace IMetadataConstant {
9
- export interface IBase<
10
- Type extends Atomic.Literal,
11
- Value extends Atomic.Type,
12
- > {
13
- type: Type;
14
- values: Value[];
15
- }
16
- }
1
+ import { Atomic } from "../typings/Atomic";
2
+
3
+ export type IMetadataConstant =
4
+ | IMetadataConstant.IBase<"boolean", boolean>
5
+ | IMetadataConstant.IBase<"number", number>
6
+ | IMetadataConstant.IBase<"string", string>
7
+ | IMetadataConstant.IBase<"bigint", bigint>;
8
+ export namespace IMetadataConstant {
9
+ export interface IBase<
10
+ Type extends Atomic.Literal,
11
+ Value extends Atomic.Type,
12
+ > {
13
+ type: Type;
14
+ values: Value[];
15
+ }
16
+ }
@@ -1,6 +1,6 @@
1
- import { IMetadata } from "./IMetadata";
2
-
3
- export interface IMetadataEntry {
4
- key: IMetadata;
5
- value: IMetadata;
6
- }
1
+ import { IMetadata } from "./IMetadata";
2
+
3
+ export interface IMetadataEntry {
4
+ key: IMetadata;
5
+ value: IMetadata;
6
+ }
@@ -1,29 +1,29 @@
1
- import { IJsDocTagInfo } from "./IJsDocTagInfo";
2
- import { IMetadataProperty } from "./IMetadataProperty";
3
-
4
- export interface IMetadataObject {
5
- name: string;
6
- properties: IMetadataProperty[];
7
- description?: string;
8
- jsDocTags: IJsDocTagInfo[];
9
-
10
- /**
11
- * @internal
12
- */
13
- index: number;
14
-
15
- /**
16
- * @internal
17
- */
18
- validated: boolean;
19
-
20
- /**
21
- * @internal
22
- */
23
- recursive: boolean;
24
-
25
- /**
26
- * @internal
27
- */
28
- nullables: boolean[];
29
- }
1
+ import { IJsDocTagInfo } from "./IJsDocTagInfo";
2
+ import { IMetadataProperty } from "./IMetadataProperty";
3
+
4
+ export interface IMetadataObject {
5
+ name: string;
6
+ properties: IMetadataProperty[];
7
+ description?: string;
8
+ jsDocTags: IJsDocTagInfo[];
9
+
10
+ /**
11
+ * @internal
12
+ */
13
+ index: number;
14
+
15
+ /**
16
+ * @internal
17
+ */
18
+ validated: boolean;
19
+
20
+ /**
21
+ * @internal
22
+ */
23
+ recursive: boolean;
24
+
25
+ /**
26
+ * @internal
27
+ */
28
+ nullables: boolean[];
29
+ }
@@ -1,11 +1,11 @@
1
- import { IJsDocTagInfo } from "./IJsDocTagInfo";
2
- import { IMetadata } from "./IMetadata";
3
- import { IMetadataTag } from "./IMetadataTag";
4
-
5
- export interface IMetadataProperty {
6
- key: IMetadata;
7
- value: IMetadata;
8
- description?: string;
9
- tags: IMetadataTag[];
10
- jsDocTags: IJsDocTagInfo[];
11
- }
1
+ import { IJsDocTagInfo } from "./IJsDocTagInfo";
2
+ import { IMetadata } from "./IMetadata";
3
+ import { IMetadataTag } from "./IMetadataTag";
4
+
5
+ export interface IMetadataProperty {
6
+ key: IMetadata;
7
+ value: IMetadata;
8
+ description?: string;
9
+ tags: IMetadataTag[];
10
+ jsDocTags: IJsDocTagInfo[];
11
+ }
@@ -1,105 +1,105 @@
1
- export type IMetadataTag =
2
- // NUMBER
3
- | IMetadataTag.IType
4
- | IMetadataTag.IMinimum
5
- | IMetadataTag.IMaximum
6
- | IMetadataTag.IExclusiveMinimum
7
- | IMetadataTag.IExclusiveMaximum
8
- | IMetadataTag.IMultipleOf
9
- | IMetadataTag.IStep
10
- // STRING
11
- | IMetadataTag.IFormat
12
- | IMetadataTag.IPattern
13
- | IMetadataTag.ILength
14
- | IMetadataTag.IMinLength
15
- | IMetadataTag.IMaxLength
16
- // ARRAY
17
- | IMetadataTag.IItems
18
- | IMetadataTag.IMinItems
19
- | IMetadataTag.IMaxItems;
20
-
21
- export namespace IMetadataTag {
22
- /* -----------------------------------------------------------
23
- NUMBER
24
- ----------------------------------------------------------- */
25
- export interface IType {
26
- kind: "type";
27
- value: "int" | "uint";
28
- }
29
-
30
- export interface IMinimum {
31
- kind: "minimum";
32
- value: number;
33
- }
34
-
35
- export interface IMaximum {
36
- kind: "maximum";
37
- value: number;
38
- }
39
-
40
- export interface IExclusiveMinimum {
41
- kind: "exclusiveMinimum";
42
- value: number;
43
- }
44
-
45
- export interface IExclusiveMaximum {
46
- kind: "exclusiveMaximum";
47
- value: number;
48
- }
49
-
50
- export interface IMultipleOf {
51
- kind: "multipleOf";
52
- value: number;
53
- }
54
-
55
- export interface IStep {
56
- kind: "step";
57
- value: number;
58
- }
59
-
60
- /* -----------------------------------------------------------
61
- STRING
62
- ----------------------------------------------------------- */
63
- export interface IFormat {
64
- kind: "format";
65
- value: "uuid" | "email" | "url" | "ipv4" | "ipv6" | "date" | "datetime";
66
- }
67
-
68
- export interface IPattern {
69
- kind: "pattern";
70
- value: string;
71
- }
72
-
73
- export interface ILength {
74
- kind: "length";
75
- value: number;
76
- }
77
-
78
- export interface IMinLength {
79
- kind: "minLength";
80
- value: number;
81
- }
82
-
83
- export interface IMaxLength {
84
- kind: "maxLength";
85
- value: number;
86
- }
87
-
88
- /* -----------------------------------------------------------
89
- ARRAY
90
- ----------------------------------------------------------- */
91
- export interface IItems {
92
- kind: "items";
93
- value: number;
94
- }
95
-
96
- export interface IMinItems {
97
- kind: "minItems";
98
- value: number;
99
- }
100
-
101
- export interface IMaxItems {
102
- kind: "maxItems";
103
- value: number;
104
- }
105
- }
1
+ export type IMetadataTag =
2
+ // NUMBER
3
+ | IMetadataTag.IType
4
+ | IMetadataTag.IMinimum
5
+ | IMetadataTag.IMaximum
6
+ | IMetadataTag.IExclusiveMinimum
7
+ | IMetadataTag.IExclusiveMaximum
8
+ | IMetadataTag.IMultipleOf
9
+ | IMetadataTag.IStep
10
+ // STRING
11
+ | IMetadataTag.IFormat
12
+ | IMetadataTag.IPattern
13
+ | IMetadataTag.ILength
14
+ | IMetadataTag.IMinLength
15
+ | IMetadataTag.IMaxLength
16
+ // ARRAY
17
+ | IMetadataTag.IItems
18
+ | IMetadataTag.IMinItems
19
+ | IMetadataTag.IMaxItems;
20
+
21
+ export namespace IMetadataTag {
22
+ /* -----------------------------------------------------------
23
+ NUMBER
24
+ ----------------------------------------------------------- */
25
+ export interface IType {
26
+ kind: "type";
27
+ value: "int" | "uint";
28
+ }
29
+
30
+ export interface IMinimum {
31
+ kind: "minimum";
32
+ value: number;
33
+ }
34
+
35
+ export interface IMaximum {
36
+ kind: "maximum";
37
+ value: number;
38
+ }
39
+
40
+ export interface IExclusiveMinimum {
41
+ kind: "exclusiveMinimum";
42
+ value: number;
43
+ }
44
+
45
+ export interface IExclusiveMaximum {
46
+ kind: "exclusiveMaximum";
47
+ value: number;
48
+ }
49
+
50
+ export interface IMultipleOf {
51
+ kind: "multipleOf";
52
+ value: number;
53
+ }
54
+
55
+ export interface IStep {
56
+ kind: "step";
57
+ value: number;
58
+ }
59
+
60
+ /* -----------------------------------------------------------
61
+ STRING
62
+ ----------------------------------------------------------- */
63
+ export interface IFormat {
64
+ kind: "format";
65
+ value: "uuid" | "email" | "url" | "ipv4" | "ipv6" | "date" | "datetime";
66
+ }
67
+
68
+ export interface IPattern {
69
+ kind: "pattern";
70
+ value: string;
71
+ }
72
+
73
+ export interface ILength {
74
+ kind: "length";
75
+ value: number;
76
+ }
77
+
78
+ export interface IMinLength {
79
+ kind: "minLength";
80
+ value: number;
81
+ }
82
+
83
+ export interface IMaxLength {
84
+ kind: "maxLength";
85
+ value: number;
86
+ }
87
+
88
+ /* -----------------------------------------------------------
89
+ ARRAY
90
+ ----------------------------------------------------------- */
91
+ export interface IItems {
92
+ kind: "items";
93
+ value: number;
94
+ }
95
+
96
+ export interface IMinItems {
97
+ kind: "minItems";
98
+ value: number;
99
+ }
100
+
101
+ export interface IMaxItems {
102
+ kind: "maxItems";
103
+ value: number;
104
+ }
105
+ }