typia 3.4.5 → 3.4.7

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 (160) hide show
  1. package/README.md +5 -47
  2. package/lib/executable/typia.js +0 -0
  3. package/lib/factories/internal/iterate_metadata.js +1 -1
  4. package/lib/factories/internal/iterate_metadata.js.map +1 -1
  5. package/lib/factories/internal/iterate_metadata_tuple.d.ts +1 -1
  6. package/lib/factories/internal/iterate_metadata_tuple.js +5 -13
  7. package/lib/factories/internal/iterate_metadata_tuple.js.map +1 -1
  8. package/package.json +1 -1
  9. package/src/IValidation.ts +21 -21
  10. package/src/Primitive.ts +82 -82
  11. package/src/TypeGuardError.ts +36 -36
  12. package/src/executable/internal/TypiaSetupWizard.ts +148 -148
  13. package/src/executable/typia.ts +35 -35
  14. package/src/factories/CommentFactory.ts +10 -10
  15. package/src/factories/ExpressionFactory.ts +52 -52
  16. package/src/factories/IdentifierFactory.ts +72 -72
  17. package/src/factories/LiteralFactory.ts +44 -44
  18. package/src/factories/MetadataCollection.ts +122 -122
  19. package/src/factories/MetadataFactory.ts +46 -46
  20. package/src/factories/MetadataTagFactory.ts +347 -347
  21. package/src/factories/StatementFactory.ts +60 -60
  22. package/src/factories/TemplateFactory.ts +56 -56
  23. package/src/factories/TypeFactory.ts +101 -101
  24. package/src/factories/ValueFactory.ts +12 -12
  25. package/src/factories/internal/MetadataHelper.ts +12 -12
  26. package/src/factories/internal/emplace_metadata_object.ts +140 -140
  27. package/src/factories/internal/explore_metadata.ts +91 -91
  28. package/src/factories/internal/iterate_metadata.ts +80 -81
  29. package/src/factories/internal/iterate_metadata_array.ts +29 -29
  30. package/src/factories/internal/iterate_metadata_atomic.ts +59 -59
  31. package/src/factories/internal/iterate_metadata_coalesce.ts +33 -33
  32. package/src/factories/internal/iterate_metadata_constant.ts +58 -58
  33. package/src/factories/internal/iterate_metadata_map.ts +41 -41
  34. package/src/factories/internal/iterate_metadata_native.ts +227 -227
  35. package/src/factories/internal/iterate_metadata_object.ts +45 -45
  36. package/src/factories/internal/iterate_metadata_resolve.ts +27 -27
  37. package/src/factories/internal/iterate_metadata_set.ts +33 -33
  38. package/src/factories/internal/iterate_metadata_template.ts +38 -38
  39. package/src/factories/internal/iterate_metadata_tuple.ts +45 -51
  40. package/src/factories/internal/iterate_metadata_union.ts +59 -59
  41. package/src/functional/$every.ts +11 -11
  42. package/src/functional/$guard.ts +35 -35
  43. package/src/functional/$is_email.ts +5 -5
  44. package/src/functional/$is_ipv4.ts +5 -5
  45. package/src/functional/$is_ipv6.ts +5 -5
  46. package/src/functional/$is_url.ts +5 -5
  47. package/src/functional/$is_uuid.ts +5 -5
  48. package/src/functional/$join.ts +50 -50
  49. package/src/functional/$number.ts +19 -19
  50. package/src/functional/$report.ts +15 -15
  51. package/src/functional/$rest.ts +3 -3
  52. package/src/functional/$string.ts +37 -37
  53. package/src/functional/$tail.ts +6 -6
  54. package/src/index.ts +4 -4
  55. package/src/metadata/IJsDocTagInfo.ts +10 -10
  56. package/src/metadata/IMetadata.ts +25 -25
  57. package/src/metadata/IMetadataApplication.ts +7 -7
  58. package/src/metadata/IMetadataConstant.ts +16 -16
  59. package/src/metadata/IMetadataEntry.ts +6 -6
  60. package/src/metadata/IMetadataObject.ts +29 -29
  61. package/src/metadata/IMetadataProperty.ts +11 -11
  62. package/src/metadata/IMetadataTag.ts +122 -122
  63. package/src/metadata/Metadata.ts +477 -477
  64. package/src/metadata/MetadataConstant.ts +3 -3
  65. package/src/metadata/MetadataObject.ts +131 -131
  66. package/src/metadata/MetadataProperty.ts +64 -64
  67. package/src/module.ts +1535 -1535
  68. package/src/programmers/ApplicationProgrammer.ts +55 -55
  69. package/src/programmers/AssertParseProgrammer.ts +45 -45
  70. package/src/programmers/AssertProgrammer.ts +444 -444
  71. package/src/programmers/AssertStringifyProgrammer.ts +45 -45
  72. package/src/programmers/CheckerProgrammer.ts +798 -798
  73. package/src/programmers/FeatureProgrammer.ts +327 -327
  74. package/src/programmers/IsParseProgrammer.ts +51 -51
  75. package/src/programmers/IsProgrammer.ts +169 -169
  76. package/src/programmers/IsStringifyProgrammer.ts +49 -49
  77. package/src/programmers/StringifyProgrammer.ts +746 -746
  78. package/src/programmers/ValidateParseProgrammer.ts +49 -49
  79. package/src/programmers/ValidateProgrammer.ts +236 -236
  80. package/src/programmers/ValidateStringifyProgrammer.ts +60 -60
  81. package/src/programmers/helpers/AtomicPredicator.ts +15 -15
  82. package/src/programmers/helpers/FunctionImporeter.ts +31 -31
  83. package/src/programmers/helpers/IExpressionEntry.ts +10 -10
  84. package/src/programmers/helpers/OptionPredicator.ts +18 -18
  85. package/src/programmers/helpers/StringifyJoinder.ts +111 -111
  86. package/src/programmers/helpers/StringifyPredicator.ts +18 -18
  87. package/src/programmers/helpers/UnionExplorer.ts +437 -437
  88. package/src/programmers/helpers/UnionPredicator.ts +81 -81
  89. package/src/programmers/internal/application_array.ts +45 -45
  90. package/src/programmers/internal/application_boolean.ts +17 -17
  91. package/src/programmers/internal/application_constant.ts +29 -29
  92. package/src/programmers/internal/application_default.ts +17 -17
  93. package/src/programmers/internal/application_default_string.ts +32 -32
  94. package/src/programmers/internal/application_native.ts +29 -29
  95. package/src/programmers/internal/application_number.ts +76 -76
  96. package/src/programmers/internal/application_object.ts +103 -103
  97. package/src/programmers/internal/application_schema.ts +221 -221
  98. package/src/programmers/internal/application_string.ts +49 -49
  99. package/src/programmers/internal/application_templates.ts +27 -27
  100. package/src/programmers/internal/application_tuple.ts +25 -25
  101. package/src/programmers/internal/check_array.ts +44 -44
  102. package/src/programmers/internal/check_dynamic_properties.ts +146 -146
  103. package/src/programmers/internal/check_everything.ts +25 -25
  104. package/src/programmers/internal/check_length.ts +46 -46
  105. package/src/programmers/internal/check_native.ts +9 -9
  106. package/src/programmers/internal/check_number.ts +181 -181
  107. package/src/programmers/internal/check_object.ts +42 -42
  108. package/src/programmers/internal/check_string.ts +24 -24
  109. package/src/programmers/internal/check_string_tags.ts +63 -63
  110. package/src/programmers/internal/check_template.ts +50 -50
  111. package/src/programmers/internal/decode_union_object.ts +73 -73
  112. package/src/programmers/internal/feature_object_entries.ts +49 -49
  113. package/src/programmers/internal/metadata_to_pattern.ts +31 -31
  114. package/src/programmers/internal/stringify_dynamic_properties.ts +164 -164
  115. package/src/programmers/internal/stringify_native.ts +8 -8
  116. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  117. package/src/programmers/internal/template_to_pattern.ts +15 -15
  118. package/src/schemas/IJsonApplication.ts +9 -9
  119. package/src/schemas/IJsonComponents.ts +24 -24
  120. package/src/schemas/IJsonSchema.ts +92 -92
  121. package/src/transform.ts +20 -20
  122. package/src/transformers/CallExpressionTransformer.ts +124 -124
  123. package/src/transformers/ExpressionWithArgumentTransformer.ts +66 -66
  124. package/src/transformers/FileTransformer.ts +49 -49
  125. package/src/transformers/IProject.ts +11 -11
  126. package/src/transformers/ITransformOptions.ts +4 -4
  127. package/src/transformers/NodeTransformer.ts +19 -19
  128. package/src/transformers/features/miscellaneous/ApplicationTransformer.ts +114 -114
  129. package/src/transformers/features/miscellaneous/CreateInstanceTransformer.ts +41 -41
  130. package/src/transformers/features/miscellaneous/MetadataTransformer.ts +55 -55
  131. package/src/transformers/features/parsers/AssertParseTransformer.ts +36 -36
  132. package/src/transformers/features/parsers/CreateAssertParseTransformer.ts +32 -32
  133. package/src/transformers/features/parsers/CreateIsParseTransformer.ts +32 -32
  134. package/src/transformers/features/parsers/CreateValidateParseTransformer.ts +32 -32
  135. package/src/transformers/features/parsers/IsParseTransformer.ts +36 -36
  136. package/src/transformers/features/parsers/ValidateParseTransformer.ts +36 -36
  137. package/src/transformers/features/stringifiers/AssertStringifyTransformer.ts +38 -38
  138. package/src/transformers/features/stringifiers/CreateAssertStringifyTransformer.ts +32 -32
  139. package/src/transformers/features/stringifiers/CreateIsStringifyTransformer.ts +32 -32
  140. package/src/transformers/features/stringifiers/CreateStringifyTransformer.ts +31 -31
  141. package/src/transformers/features/stringifiers/CreateValidateStringifyProgrammer.ts +32 -32
  142. package/src/transformers/features/stringifiers/IsStringifyTransformer.ts +38 -38
  143. package/src/transformers/features/stringifiers/StringifyTransformer.ts +36 -36
  144. package/src/transformers/features/stringifiers/ValidateStringifyTransformer.ts +38 -38
  145. package/src/transformers/features/validators/AssertTransformer.ts +43 -43
  146. package/src/transformers/features/validators/CreateAssertTransformer.ts +35 -35
  147. package/src/transformers/features/validators/CreateIsTransformer.ts +35 -35
  148. package/src/transformers/features/validators/CreateValidateTransformer.ts +35 -35
  149. package/src/transformers/features/validators/IsTransformer.ts +43 -43
  150. package/src/transformers/features/validators/ValidateTransformer.ts +43 -43
  151. package/src/typings/Atomic.ts +17 -17
  152. package/src/typings/ClassProperties.ts +5 -5
  153. package/src/typings/OmitNever.ts +3 -3
  154. package/src/typings/SpecialFields.ts +3 -3
  155. package/src/typings/Writable.ts +11 -11
  156. package/src/utils/ArrayUtil.ts +49 -49
  157. package/src/utils/Escaper.ts +50 -50
  158. package/src/utils/MapUtil.ts +14 -14
  159. package/src/utils/PatternUtil.ts +30 -30
  160. package/src/utils/Singleton.ts +17 -17
@@ -1,37 +1,37 @@
1
- /**
2
- * @internal
3
- */
4
- export function $string(str: string): string {
5
- if (str.length > 41) return JSON.stringify(str);
6
-
7
- const length = str.length;
8
- let result = "";
9
- let last = 0;
10
- let found = false;
11
- let surrogateFound = false;
12
- let point = 255;
13
-
14
- // eslint-disable-next-line
15
- for (let i = 0; i < length && point >= 32; i++) {
16
- point = str.charCodeAt(i);
17
- if (0xd800 <= point && point <= 0xdfff) {
18
- // The current character is a surrogate.
19
- surrogateFound = true;
20
- break;
21
- }
22
- if (point === 34 || point === 92) {
23
- result += str.slice(last, i) + "\\";
24
- last = i;
25
- found = true;
26
- }
27
- }
28
-
29
- if (!found) {
30
- result = str;
31
- } else {
32
- result += str.slice(last);
33
- }
34
- return point < 32 || surrogateFound === true
35
- ? JSON.stringify(str)
36
- : `"${result}"`;
37
- }
1
+ /**
2
+ * @internal
3
+ */
4
+ export function $string(str: string): string {
5
+ if (str.length > 41) return JSON.stringify(str);
6
+
7
+ const length = str.length;
8
+ let result = "";
9
+ let last = 0;
10
+ let found = false;
11
+ let surrogateFound = false;
12
+ let point = 255;
13
+
14
+ // eslint-disable-next-line
15
+ for (let i = 0; i < length && point >= 32; i++) {
16
+ point = str.charCodeAt(i);
17
+ if (0xd800 <= point && point <= 0xdfff) {
18
+ // The current character is a surrogate.
19
+ surrogateFound = true;
20
+ break;
21
+ }
22
+ if (point === 34 || point === 92) {
23
+ result += str.slice(last, i) + "\\";
24
+ last = i;
25
+ found = true;
26
+ }
27
+ }
28
+
29
+ if (!found) {
30
+ result = str;
31
+ } else {
32
+ result += str.slice(last);
33
+ }
34
+ return point < 32 || surrogateFound === true
35
+ ? JSON.stringify(str)
36
+ : `"${result}"`;
37
+ }
@@ -1,6 +1,6 @@
1
- /**
2
- * @internal
3
- */
4
- export function $tail(str: string): string {
5
- return str[str.length - 1] === "," ? str.substring(0, str.length - 1) : str;
6
- }
1
+ /**
2
+ * @internal
3
+ */
4
+ export function $tail(str: string): string {
5
+ return str[str.length - 1] === "," ? str.substring(0, str.length - 1) : str;
6
+ }
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- import * as typia from "./module";
2
-
3
- export default typia;
4
- export * from "./module";
1
+ import * as typia from "./module";
2
+
3
+ export default typia;
4
+ export * from "./module";
@@ -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,122 +1,122 @@
1
- export type IMetadataTag =
2
- // ARRAY
3
- | IMetadataTag.IItems
4
- | IMetadataTag.IMinItems
5
- | IMetadataTag.IMaxItems
6
- // STRING
7
- | IMetadataTag.IFormat
8
- | IMetadataTag.IPattern
9
- | IMetadataTag.ILength
10
- | IMetadataTag.IMinLength
11
- | IMetadataTag.IMaxLength
12
- // NUMBER
13
- | IMetadataTag.IType
14
- | IMetadataTag.IRange
15
- | IMetadataTag.IMinimum
16
- | IMetadataTag.IMaximum
17
- | IMetadataTag.IExclusiveMinimum
18
- | IMetadataTag.IExclusiveMaximum
19
- | IMetadataTag.IMultipleOf
20
- | IMetadataTag.IStep;
21
-
22
- export namespace IMetadataTag {
23
- /* -----------------------------------------------------------
24
- ARRAY
25
- ----------------------------------------------------------- */
26
- export interface IItems {
27
- kind: "items";
28
- minimum?: ISign;
29
- maximum?: ISign;
30
- }
31
-
32
- export interface IMinItems {
33
- kind: "minItems";
34
- value: number;
35
- }
36
-
37
- export interface IMaxItems {
38
- kind: "maxItems";
39
- value: number;
40
- }
41
-
42
- /* -----------------------------------------------------------
43
- STRING
44
- ----------------------------------------------------------- */
45
- export interface IFormat {
46
- kind: "format";
47
- value: "uuid" | "email" | "url" | "ipv4" | "ipv6";
48
- }
49
-
50
- export interface IPattern {
51
- kind: "pattern";
52
- value: string;
53
- }
54
-
55
- export interface ILength {
56
- kind: "length";
57
- minimum?: ISign;
58
- maximum?: ISign;
59
- }
60
-
61
- export interface IMinLength {
62
- kind: "minLength";
63
- value: number;
64
- }
65
-
66
- export interface IMaxLength {
67
- kind: "maxLength";
68
- value: number;
69
- }
70
-
71
- /* -----------------------------------------------------------
72
- NUMBER
73
- ----------------------------------------------------------- */
74
- export interface IType {
75
- kind: "type";
76
- value: "int" | "uint";
77
- }
78
-
79
- export interface IRange {
80
- kind: "range";
81
- minimum?: ISign;
82
- maximum?: ISign;
83
- }
84
-
85
- export interface IMinimum {
86
- kind: "minimum";
87
- value: number;
88
- }
89
-
90
- export interface IMaximum {
91
- kind: "maximum";
92
- value: number;
93
- }
94
-
95
- export interface IExclusiveMinimum {
96
- kind: "exclusiveMinimum";
97
- value: number;
98
- }
99
-
100
- export interface IExclusiveMaximum {
101
- kind: "exclusiveMaximum";
102
- value: number;
103
- }
104
-
105
- export interface IMultipleOf {
106
- kind: "multipleOf";
107
- value: number;
108
- }
109
-
110
- export interface IStep {
111
- kind: "step";
112
- value: number;
113
- }
114
-
115
- /* -----------------------------------------------------------
116
- MISCELLANEOUS
117
- ----------------------------------------------------------- */
118
- export interface ISign {
119
- include: boolean;
120
- value: number;
121
- }
122
- }
1
+ export type IMetadataTag =
2
+ // ARRAY
3
+ | IMetadataTag.IItems
4
+ | IMetadataTag.IMinItems
5
+ | IMetadataTag.IMaxItems
6
+ // STRING
7
+ | IMetadataTag.IFormat
8
+ | IMetadataTag.IPattern
9
+ | IMetadataTag.ILength
10
+ | IMetadataTag.IMinLength
11
+ | IMetadataTag.IMaxLength
12
+ // NUMBER
13
+ | IMetadataTag.IType
14
+ | IMetadataTag.IRange
15
+ | IMetadataTag.IMinimum
16
+ | IMetadataTag.IMaximum
17
+ | IMetadataTag.IExclusiveMinimum
18
+ | IMetadataTag.IExclusiveMaximum
19
+ | IMetadataTag.IMultipleOf
20
+ | IMetadataTag.IStep;
21
+
22
+ export namespace IMetadataTag {
23
+ /* -----------------------------------------------------------
24
+ ARRAY
25
+ ----------------------------------------------------------- */
26
+ export interface IItems {
27
+ kind: "items";
28
+ minimum?: ISign;
29
+ maximum?: ISign;
30
+ }
31
+
32
+ export interface IMinItems {
33
+ kind: "minItems";
34
+ value: number;
35
+ }
36
+
37
+ export interface IMaxItems {
38
+ kind: "maxItems";
39
+ value: number;
40
+ }
41
+
42
+ /* -----------------------------------------------------------
43
+ STRING
44
+ ----------------------------------------------------------- */
45
+ export interface IFormat {
46
+ kind: "format";
47
+ value: "uuid" | "email" | "url" | "ipv4" | "ipv6";
48
+ }
49
+
50
+ export interface IPattern {
51
+ kind: "pattern";
52
+ value: string;
53
+ }
54
+
55
+ export interface ILength {
56
+ kind: "length";
57
+ minimum?: ISign;
58
+ maximum?: ISign;
59
+ }
60
+
61
+ export interface IMinLength {
62
+ kind: "minLength";
63
+ value: number;
64
+ }
65
+
66
+ export interface IMaxLength {
67
+ kind: "maxLength";
68
+ value: number;
69
+ }
70
+
71
+ /* -----------------------------------------------------------
72
+ NUMBER
73
+ ----------------------------------------------------------- */
74
+ export interface IType {
75
+ kind: "type";
76
+ value: "int" | "uint";
77
+ }
78
+
79
+ export interface IRange {
80
+ kind: "range";
81
+ minimum?: ISign;
82
+ maximum?: ISign;
83
+ }
84
+
85
+ export interface IMinimum {
86
+ kind: "minimum";
87
+ value: number;
88
+ }
89
+
90
+ export interface IMaximum {
91
+ kind: "maximum";
92
+ value: number;
93
+ }
94
+
95
+ export interface IExclusiveMinimum {
96
+ kind: "exclusiveMinimum";
97
+ value: number;
98
+ }
99
+
100
+ export interface IExclusiveMaximum {
101
+ kind: "exclusiveMaximum";
102
+ value: number;
103
+ }
104
+
105
+ export interface IMultipleOf {
106
+ kind: "multipleOf";
107
+ value: number;
108
+ }
109
+
110
+ export interface IStep {
111
+ kind: "step";
112
+ value: number;
113
+ }
114
+
115
+ /* -----------------------------------------------------------
116
+ MISCELLANEOUS
117
+ ----------------------------------------------------------- */
118
+ export interface ISign {
119
+ include: boolean;
120
+ value: number;
121
+ }
122
+ }