typia 5.0.0-dev.20230730 → 5.0.0-dev.20230808

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 (239) hide show
  1. package/lib/executable/TypiaSetupWizard.js +39 -28
  2. package/lib/executable/TypiaSetupWizard.js.map +1 -1
  3. package/lib/factories/CommentFactory.d.ts +1 -1
  4. package/lib/factories/CommentFactory.js +31 -28
  5. package/lib/factories/CommentFactory.js.map +1 -1
  6. package/lib/functional/$string.js +16 -20
  7. package/lib/functional/$string.js.map +1 -1
  8. package/lib/programmers/RandomProgrammer.js +1 -1
  9. package/lib/programmers/RandomProgrammer.js.map +1 -1
  10. package/lib/programmers/internal/application_object.js +2 -0
  11. package/lib/programmers/internal/application_object.js.map +1 -1
  12. package/lib/programmers/internal/stringify_dynamic_properties.js +1 -0
  13. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  14. package/lib/schemas/metadata/Metadata.d.ts +1 -0
  15. package/lib/schemas/metadata/Metadata.js +3 -0
  16. package/lib/schemas/metadata/Metadata.js.map +1 -1
  17. package/lib/utils/PatternUtil.d.ts +1 -1
  18. package/lib/utils/PatternUtil.js +3 -1
  19. package/lib/utils/PatternUtil.js.map +1 -1
  20. package/package.json +3 -3
  21. package/src/executable/TypiaSetupWizard.ts +34 -14
  22. package/src/factories/CommentFactory.ts +84 -76
  23. package/src/factories/MetadataCollection.ts +264 -264
  24. package/src/factories/MetadataFactory.ts +30 -30
  25. package/src/factories/MetadataTagFactory.ts +362 -362
  26. package/src/factories/ProtocolFactory.ts +80 -80
  27. package/src/factories/internal/metadata/MetadataHelper.ts +12 -12
  28. package/src/factories/internal/metadata/emend_metadata_atomics.ts +33 -33
  29. package/src/factories/internal/metadata/emplace_metadata_alias.ts +40 -40
  30. package/src/factories/internal/metadata/emplace_metadata_array.ts +34 -34
  31. package/src/factories/internal/metadata/emplace_metadata_object.ts +136 -136
  32. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +50 -50
  33. package/src/factories/internal/metadata/explore_metadata.ts +40 -40
  34. package/src/factories/internal/metadata/iterate_metadata.ts +81 -81
  35. package/src/factories/internal/metadata/iterate_metadata_alias.ts +30 -30
  36. package/src/factories/internal/metadata/iterate_metadata_array.ts +24 -24
  37. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +59 -59
  38. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
  39. package/src/factories/internal/metadata/iterate_metadata_collection.ts +133 -133
  40. package/src/factories/internal/metadata/iterate_metadata_constant.ts +58 -58
  41. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +83 -83
  42. package/src/factories/internal/metadata/iterate_metadata_map.ts +41 -41
  43. package/src/factories/internal/metadata/iterate_metadata_native.ts +219 -219
  44. package/src/factories/internal/metadata/iterate_metadata_object.ts +43 -43
  45. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +49 -49
  46. package/src/factories/internal/metadata/iterate_metadata_set.ts +33 -33
  47. package/src/factories/internal/metadata/iterate_metadata_sort.ts +69 -69
  48. package/src/factories/internal/metadata/iterate_metadata_tag.ts +31 -31
  49. package/src/factories/internal/metadata/iterate_metadata_template.ts +38 -38
  50. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +24 -24
  51. package/src/factories/internal/metadata/iterate_metadata_union.ts +24 -24
  52. package/src/factories/internal/protocols/ProtocolMetadataUtil.ts +180 -180
  53. package/src/factories/internal/protocols/emplace_protocol_object.ts +25 -25
  54. package/src/factories/internal/protocols/emplace_protocol_property.ts +12 -12
  55. package/src/factories/internal/protocols/iterate_protocol_atomic.ts +34 -34
  56. package/src/factories/internal/protocols/iterate_protocol_constant.ts +27 -27
  57. package/src/factories/internal/protocols/iterate_protocol_main.ts +19 -19
  58. package/src/factories/internal/protocols/iterate_protocol_map.ts +58 -58
  59. package/src/factories/internal/protocols/iterate_protocol_metadata.ts +96 -96
  60. package/src/factories/internal/protocols/iterate_protocol_native.ts +34 -34
  61. package/src/factories/internal/protocols/iterate_protocol_never.ts +1 -1
  62. package/src/factories/internal/protocols/iterate_protocol_object.ts +110 -110
  63. package/src/factories/internal/protocols/iterate_protocol_repeated.ts +34 -34
  64. package/src/factories/internal/protocols/iterate_protocol_tuple.ts +29 -29
  65. package/src/functional/$number.ts +13 -13
  66. package/src/functional/$proto_bytes.ts +25 -25
  67. package/src/functional/$proto_field.ts +30 -30
  68. package/src/functional/$proto_float.ts +37 -37
  69. package/src/functional/$proto_i32.ts +29 -29
  70. package/src/functional/$proto_i64.ts +37 -37
  71. package/src/functional/$proto_size.ts +82 -82
  72. package/src/functional/$proto_string.ts +24 -24
  73. package/src/functional/$string.ts +32 -19
  74. package/src/functional/$varint.ts +130 -130
  75. package/src/functional/$zigzag.ts +39 -39
  76. package/src/json.ts +648 -648
  77. package/src/misc.ts +651 -651
  78. package/src/module.ts +781 -781
  79. package/src/programmers/CheckerProgrammer.ts +1182 -1182
  80. package/src/programmers/FeatureProgrammer.ts +495 -495
  81. package/src/programmers/IsProgrammer.ts +239 -239
  82. package/src/programmers/IsPruneProgrammer.ts +73 -73
  83. package/src/programmers/RandomProgrammer.ts +579 -581
  84. package/src/programmers/helpers/AtomicPredicator.ts +31 -31
  85. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  86. package/src/programmers/helpers/PruneJoiner.ts +143 -143
  87. package/src/programmers/helpers/RandomJoiner.ts +173 -173
  88. package/src/programmers/helpers/RandomRanger.ts +216 -216
  89. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  90. package/src/programmers/helpers/UnionExplorer.ts +301 -301
  91. package/src/programmers/helpers/UnionPredicator.ts +81 -81
  92. package/src/programmers/internal/application_alias.ts +66 -66
  93. package/src/programmers/internal/application_array.ts +30 -30
  94. package/src/programmers/internal/application_constant.ts +26 -26
  95. package/src/programmers/internal/application_default.ts +17 -17
  96. package/src/programmers/internal/application_default_string.ts +33 -33
  97. package/src/programmers/internal/application_native.ts +39 -39
  98. package/src/programmers/internal/application_number.ts +77 -77
  99. package/src/programmers/internal/application_object.ts +165 -162
  100. package/src/programmers/internal/application_resolved.ts +55 -55
  101. package/src/programmers/internal/application_schema.ts +157 -157
  102. package/src/programmers/internal/application_string.ts +44 -44
  103. package/src/programmers/internal/application_templates.ts +25 -25
  104. package/src/programmers/internal/application_tuple.ts +57 -57
  105. package/src/programmers/internal/check_array.ts +30 -30
  106. package/src/programmers/internal/check_array_length.ts +35 -35
  107. package/src/programmers/internal/check_bigint.ts +82 -82
  108. package/src/programmers/internal/check_custom.ts +31 -31
  109. package/src/programmers/internal/check_number.ts +177 -177
  110. package/src/programmers/internal/check_string.ts +25 -25
  111. package/src/programmers/internal/check_string_tags.ts +67 -67
  112. package/src/programmers/internal/check_template.ts +56 -56
  113. package/src/programmers/internal/check_union_array_like.ts +329 -329
  114. package/src/programmers/internal/decode_union_object.ts +73 -73
  115. package/src/programmers/internal/feature_object_entries.ts +63 -63
  116. package/src/programmers/internal/get_comment_tags.ts +23 -23
  117. package/src/programmers/internal/metadata_to_pattern.ts +34 -34
  118. package/src/programmers/internal/prune_object_properties.ts +60 -60
  119. package/src/programmers/internal/random_custom.ts +29 -29
  120. package/src/programmers/internal/stringify_dynamic_properties.ts +4 -0
  121. package/src/programmers/internal/stringify_regular_properties.ts +83 -83
  122. package/src/programmers/internal/template_to_pattern.ts +15 -15
  123. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +16 -16
  124. package/src/programmers/json/JsonApplicationProgrammer.ts +47 -47
  125. package/src/programmers/json/JsonAssertParseProgrammer.ts +66 -66
  126. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +66 -66
  127. package/src/programmers/json/JsonIsParseProgrammer.ts +72 -72
  128. package/src/programmers/json/JsonIsStringifyProgrammer.ts +76 -76
  129. package/src/programmers/json/JsonStringifyProgrammer.ts +979 -979
  130. package/src/programmers/json/JsonValidateParseProgrammer.ts +70 -70
  131. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +84 -84
  132. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +71 -71
  133. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +68 -68
  134. package/src/programmers/misc/MiscCloneProgrammer.ts +587 -587
  135. package/src/programmers/misc/MiscIsCloneProgrammer.ts +78 -78
  136. package/src/programmers/misc/MiscLiteralsProgrammer.ts +63 -63
  137. package/src/programmers/misc/MiscPruneProgrammer.ts +542 -542
  138. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +85 -85
  139. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +78 -78
  140. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +69 -69
  141. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +66 -66
  142. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +38 -38
  143. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +36 -36
  144. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +75 -75
  145. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +76 -76
  146. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +125 -125
  147. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +83 -83
  148. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +86 -86
  149. package/src/protobuf.ts +210 -210
  150. package/src/schemas/json/IJsonApplication.ts +8 -8
  151. package/src/schemas/json/IJsonComponents.ts +33 -33
  152. package/src/schemas/json/IJsonSchema.ts +133 -133
  153. package/src/schemas/metadata/ICommentTag.ts +4 -4
  154. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  155. package/src/schemas/metadata/IMetadata.ts +28 -28
  156. package/src/schemas/metadata/IMetadataAlias.ts +14 -14
  157. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  158. package/src/schemas/metadata/IMetadataArray.ts +10 -10
  159. package/src/schemas/metadata/IMetadataCollection.ts +11 -11
  160. package/src/schemas/metadata/IMetadataConstant.ts +16 -16
  161. package/src/schemas/metadata/IMetadataDictionary.ts +14 -14
  162. package/src/schemas/metadata/IMetadataEntry.ts +6 -6
  163. package/src/schemas/metadata/IMetadataObject.ts +18 -18
  164. package/src/schemas/metadata/IMetadataProperty.ts +11 -11
  165. package/src/schemas/metadata/IMetadataResolved.ts +6 -6
  166. package/src/schemas/metadata/IMetadataTag.ts +113 -113
  167. package/src/schemas/metadata/IMetadataTuple.ts +10 -10
  168. package/src/schemas/metadata/Metadata.ts +610 -608
  169. package/src/schemas/metadata/MetadataAlias.ts +66 -66
  170. package/src/schemas/metadata/MetadataArray.ts +55 -55
  171. package/src/schemas/metadata/MetadataConstant.ts +3 -3
  172. package/src/schemas/metadata/MetadataObject.ts +129 -129
  173. package/src/schemas/metadata/MetadataProperty.ts +64 -64
  174. package/src/schemas/metadata/MetadataResolved.ts +51 -51
  175. package/src/schemas/metadata/MetadataTuple.ts +53 -53
  176. package/src/schemas/protobuf/IProtocolMap.ts +5 -5
  177. package/src/schemas/protobuf/IProtocolMessage.ts +6 -6
  178. package/src/schemas/protobuf/IProtocolProperty.ts +13 -13
  179. package/src/transformers/CallExpressionTransformer.ts +240 -240
  180. package/src/transformers/features/AssertTransformer.ts +11 -11
  181. package/src/transformers/features/CreateAssertTransformer.ts +13 -13
  182. package/src/transformers/features/CreateIsTransformer.ts +11 -11
  183. package/src/transformers/features/CreateRandomTransformer.ts +39 -39
  184. package/src/transformers/features/CreateValidateTransformer.ts +13 -13
  185. package/src/transformers/features/IsTransformer.ts +11 -11
  186. package/src/transformers/features/RandomTransformer.ts +42 -42
  187. package/src/transformers/features/ValidateTransformer.ts +11 -11
  188. package/src/transformers/features/json/JsonApplicationTransformer.ts +102 -102
  189. package/src/transformers/features/json/JsonAssertParseTransformer.ts +10 -10
  190. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +10 -10
  191. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +10 -10
  192. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +12 -12
  193. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +9 -9
  194. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +10 -10
  195. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +9 -9
  196. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +10 -10
  197. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +12 -12
  198. package/src/transformers/features/json/JsonIsParseTransformer.ts +9 -9
  199. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +10 -10
  200. package/src/transformers/features/json/JsonStringifyTransformer.ts +9 -9
  201. package/src/transformers/features/json/JsonValidateParseTransformer.ts +10 -10
  202. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +10 -10
  203. package/src/transformers/features/misc/MetadataTransformer.ts +53 -53
  204. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +10 -10
  205. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +10 -10
  206. package/src/transformers/features/misc/MiscCloneTransformer.ts +9 -9
  207. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +10 -10
  208. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +10 -10
  209. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +9 -9
  210. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +9 -9
  211. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +9 -9
  212. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +9 -9
  213. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +10 -10
  214. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +10 -10
  215. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +9 -9
  216. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +9 -9
  217. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +28 -28
  218. package/src/transformers/features/misc/MiscPruneTransformer.ts +9 -9
  219. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +10 -10
  220. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +10 -10
  221. package/src/transformers/features/protobuf/CreateProtobufAssertDecodeTransformer.ts +10 -10
  222. package/src/transformers/features/protobuf/CreateProtobufAssertEncodeTransformer.ts +10 -10
  223. package/src/transformers/features/protobuf/CreateProtobufDecodeTransformer.ts +10 -10
  224. package/src/transformers/features/protobuf/CreateProtobufEncodeTransformer.ts +10 -10
  225. package/src/transformers/features/protobuf/CreateProtobufIsDecodeTransformer.ts +10 -10
  226. package/src/transformers/features/protobuf/CreateProtobufIsEncodeTransformer.ts +10 -10
  227. package/src/transformers/features/protobuf/CreateProtobufValidateDecodeTransformer.ts +10 -10
  228. package/src/transformers/features/protobuf/CreateProtobufValidateEncodeTransformer.ts +10 -10
  229. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +10 -10
  230. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +10 -10
  231. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +10 -10
  232. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +10 -10
  233. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +10 -10
  234. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +10 -10
  235. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +31 -31
  236. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +10 -10
  237. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +10 -10
  238. package/src/utils/NameEncoder.ts +32 -32
  239. package/src/utils/PatternUtil.ts +4 -1
@@ -1,133 +1,133 @@
1
- import { IJsDocTagInfo } from "../metadata/IJsDocTagInfo";
2
- import { IMetadataTag } from "../metadata/IMetadataTag";
3
-
4
- import { Atomic } from "../../typings/Atomic";
5
-
6
- export type IJsonSchema = IJsonSchema.Known | IJsonSchema.IUnknown;
7
- export namespace IJsonSchema {
8
- export type Known =
9
- | IEnumeration<"boolean">
10
- | IEnumeration<"number">
11
- | IEnumeration<"string">
12
- | IBoolean
13
- | IInteger
14
- | INumber
15
- | IString
16
- | IArray
17
- | ITuple
18
- | IOneOf
19
- | IReference
20
- | INullOnly;
21
-
22
- export interface IUnknown extends IAttribute {
23
- type?: undefined;
24
- }
25
-
26
- /* -----------------------------------------------------------
27
- ATOMICS
28
- ----------------------------------------------------------- */
29
- export interface IEnumeration<
30
- Literal extends Exclude<Atomic.Literal, "bigint">,
31
- > extends IAtomic<Literal> {
32
- enum: Array<Atomic.Mapper[Literal]>;
33
- }
34
- export interface IAtomic<Literal extends Exclude<Atomic.Literal, "bigint">>
35
- extends ISignificant<Literal> {
36
- default?: Atomic.Mapper[Literal];
37
- }
38
- export interface IString extends IAtomic<"string"> {
39
- /**
40
- * @type uint
41
- */
42
- minLength?: number;
43
- /**
44
- * @type uint
45
- */
46
- maxLength?: number;
47
- pattern?: string;
48
- format?: string;
49
- }
50
- export interface INumber extends IAtomic<"number"> {
51
- minimum?: number;
52
- maximum?: number;
53
- exclusiveMinimum?: boolean;
54
- exclusiveMaximum?: boolean;
55
- multipleOf?: number;
56
- }
57
- export interface IInteger extends IAtomic<"integer"> {
58
- /**
59
- * @type int
60
- */
61
- minimum?: number;
62
- /**
63
- * @type int
64
- */
65
- maximum?: number;
66
- exclusiveMinimum?: boolean;
67
- exclusiveMaximum?: boolean;
68
- /**
69
- * @type int
70
- */
71
- multipleOf?: number;
72
- }
73
- export interface IBoolean extends IAtomic<"boolean"> {}
74
-
75
- /* -----------------------------------------------------------
76
- OBJECTS
77
- ----------------------------------------------------------- */
78
- export interface IArray extends ISignificant<"array"> {
79
- items: IJsonSchema;
80
- /**
81
- * @type uint
82
- */
83
- minItems?: number;
84
- /**
85
- * @type uint
86
- */
87
- maxItems?: number;
88
- "x-typia-tuple"?: ITuple;
89
- }
90
- export interface ITuple extends ISignificant<"array"> {
91
- items: IJsonSchema[];
92
- /**
93
- * @type uint
94
- */
95
- minItems: number;
96
- /**
97
- * @type uint
98
- */
99
- maxItems?: number;
100
- }
101
- export interface IReference extends IAttribute {
102
- $ref: string;
103
- }
104
- export interface INullOnly extends IAttribute {
105
- type: "null";
106
- }
107
-
108
- /* -----------------------------------------------------------
109
- MISCELLANEOUS
110
- ----------------------------------------------------------- */
111
- export interface IOneOf extends IAttribute {
112
- oneOf: IJsonSchema[];
113
- }
114
-
115
- export interface ISignificant<Literal extends string> extends IAttribute {
116
- type: Literal;
117
-
118
- /**
119
- * Only when swagger mode.
120
- */
121
- nullable?: boolean;
122
- }
123
- export interface IAttribute {
124
- deprecated?: boolean;
125
- title?: string;
126
- description?: string;
127
- "x-typia-metaTags"?: IMetadataTag[];
128
- "x-typia-jsDocTags"?: IJsDocTagInfo[];
129
- "x-typia-required"?: boolean;
130
- "x-typia-optional"?: boolean;
131
- "x-typia-rest"?: boolean;
132
- }
133
- }
1
+ import { IJsDocTagInfo } from "../metadata/IJsDocTagInfo";
2
+ import { IMetadataTag } from "../metadata/IMetadataTag";
3
+
4
+ import { Atomic } from "../../typings/Atomic";
5
+
6
+ export type IJsonSchema = IJsonSchema.Known | IJsonSchema.IUnknown;
7
+ export namespace IJsonSchema {
8
+ export type Known =
9
+ | IEnumeration<"boolean">
10
+ | IEnumeration<"number">
11
+ | IEnumeration<"string">
12
+ | IBoolean
13
+ | IInteger
14
+ | INumber
15
+ | IString
16
+ | IArray
17
+ | ITuple
18
+ | IOneOf
19
+ | IReference
20
+ | INullOnly;
21
+
22
+ export interface IUnknown extends IAttribute {
23
+ type?: undefined;
24
+ }
25
+
26
+ /* -----------------------------------------------------------
27
+ ATOMICS
28
+ ----------------------------------------------------------- */
29
+ export interface IEnumeration<
30
+ Literal extends Exclude<Atomic.Literal, "bigint">,
31
+ > extends IAtomic<Literal> {
32
+ enum: Array<Atomic.Mapper[Literal]>;
33
+ }
34
+ export interface IAtomic<Literal extends Exclude<Atomic.Literal, "bigint">>
35
+ extends ISignificant<Literal> {
36
+ default?: Atomic.Mapper[Literal];
37
+ }
38
+ export interface IString extends IAtomic<"string"> {
39
+ /**
40
+ * @type uint
41
+ */
42
+ minLength?: number;
43
+ /**
44
+ * @type uint
45
+ */
46
+ maxLength?: number;
47
+ pattern?: string;
48
+ format?: string;
49
+ }
50
+ export interface INumber extends IAtomic<"number"> {
51
+ minimum?: number;
52
+ maximum?: number;
53
+ exclusiveMinimum?: boolean;
54
+ exclusiveMaximum?: boolean;
55
+ multipleOf?: number;
56
+ }
57
+ export interface IInteger extends IAtomic<"integer"> {
58
+ /**
59
+ * @type int
60
+ */
61
+ minimum?: number;
62
+ /**
63
+ * @type int
64
+ */
65
+ maximum?: number;
66
+ exclusiveMinimum?: boolean;
67
+ exclusiveMaximum?: boolean;
68
+ /**
69
+ * @type int
70
+ */
71
+ multipleOf?: number;
72
+ }
73
+ export interface IBoolean extends IAtomic<"boolean"> {}
74
+
75
+ /* -----------------------------------------------------------
76
+ OBJECTS
77
+ ----------------------------------------------------------- */
78
+ export interface IArray extends ISignificant<"array"> {
79
+ items: IJsonSchema;
80
+ /**
81
+ * @type uint
82
+ */
83
+ minItems?: number;
84
+ /**
85
+ * @type uint
86
+ */
87
+ maxItems?: number;
88
+ "x-typia-tuple"?: ITuple;
89
+ }
90
+ export interface ITuple extends ISignificant<"array"> {
91
+ items: IJsonSchema[];
92
+ /**
93
+ * @type uint
94
+ */
95
+ minItems: number;
96
+ /**
97
+ * @type uint
98
+ */
99
+ maxItems?: number;
100
+ }
101
+ export interface IReference extends IAttribute {
102
+ $ref: string;
103
+ }
104
+ export interface INullOnly extends IAttribute {
105
+ type: "null";
106
+ }
107
+
108
+ /* -----------------------------------------------------------
109
+ MISCELLANEOUS
110
+ ----------------------------------------------------------- */
111
+ export interface IOneOf extends IAttribute {
112
+ oneOf: IJsonSchema[];
113
+ }
114
+
115
+ export interface ISignificant<Literal extends string> extends IAttribute {
116
+ type: Literal;
117
+
118
+ /**
119
+ * Only when swagger mode.
120
+ */
121
+ nullable?: boolean;
122
+ }
123
+ export interface IAttribute {
124
+ deprecated?: boolean;
125
+ title?: string;
126
+ description?: string;
127
+ "x-typia-metaTags"?: IMetadataTag[];
128
+ "x-typia-jsDocTags"?: IJsDocTagInfo[];
129
+ "x-typia-required"?: boolean;
130
+ "x-typia-optional"?: boolean;
131
+ "x-typia-rest"?: boolean;
132
+ }
133
+ }
@@ -1,4 +1,4 @@
1
- export interface ICommentTag {
2
- name: string;
3
- value?: string;
4
- }
1
+ export interface ICommentTag {
2
+ name: string;
3
+ value?: string;
4
+ }
@@ -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,28 +1,28 @@
1
- import { Atomic } from "../../typings/Atomic";
2
-
3
- import { IMetadataConstant } from "./IMetadataConstant";
4
- import { IMetadataEntry } from "./IMetadataEntry";
5
- import { IMetadataResolved } from "./IMetadataResolved";
6
-
7
- export interface IMetadata {
8
- any: boolean;
9
- required: boolean;
10
- optional: boolean;
11
- nullable: boolean;
12
- functional: boolean;
13
-
14
- atomics: Atomic.Literal[];
15
- constants: IMetadataConstant[];
16
- templates: IMetadata[][];
17
- resolved: IMetadataResolved | null;
18
-
19
- rest: IMetadata | null;
20
- arrays: string[];
21
- tuples: string[];
22
- objects: string[];
23
- aliases: string[];
24
-
25
- natives: string[];
26
- sets: IMetadata[];
27
- maps: IMetadataEntry[];
28
- }
1
+ import { Atomic } from "../../typings/Atomic";
2
+
3
+ import { IMetadataConstant } from "./IMetadataConstant";
4
+ import { IMetadataEntry } from "./IMetadataEntry";
5
+ import { IMetadataResolved } from "./IMetadataResolved";
6
+
7
+ export interface IMetadata {
8
+ any: boolean;
9
+ required: boolean;
10
+ optional: boolean;
11
+ nullable: boolean;
12
+ functional: boolean;
13
+
14
+ atomics: Atomic.Literal[];
15
+ constants: IMetadataConstant[];
16
+ templates: IMetadata[][];
17
+ resolved: IMetadataResolved | null;
18
+
19
+ rest: IMetadata | null;
20
+ arrays: string[];
21
+ tuples: string[];
22
+ objects: string[];
23
+ aliases: string[];
24
+
25
+ natives: string[];
26
+ sets: IMetadata[];
27
+ maps: IMetadataEntry[];
28
+ }
@@ -1,14 +1,14 @@
1
- import { IJsDocTagInfo } from "./IJsDocTagInfo";
2
- import { IMetadata } from "./IMetadata";
3
- import { IMetadataTag } from "./IMetadataTag";
4
-
5
- export interface IMetadataAlias {
6
- name: string;
7
- value: IMetadata;
8
- nullables: boolean[];
9
-
10
- description: string | null;
11
- tags: IMetadataTag[];
12
- jsDocTags: IJsDocTagInfo[];
13
- recursive: boolean;
14
- }
1
+ import { IJsDocTagInfo } from "./IJsDocTagInfo";
2
+ import { IMetadata } from "./IMetadata";
3
+ import { IMetadataTag } from "./IMetadataTag";
4
+
5
+ export interface IMetadataAlias {
6
+ name: string;
7
+ value: IMetadata;
8
+ nullables: boolean[];
9
+
10
+ description: string | null;
11
+ tags: IMetadataTag[];
12
+ jsDocTags: IJsDocTagInfo[];
13
+ recursive: boolean;
14
+ }
@@ -1,7 +1,7 @@
1
- import { IMetadata } from "./IMetadata";
2
- import { IMetadataCollection } from "./IMetadataCollection";
3
-
4
- export interface IMetadataApplication {
5
- metadatas: IMetadata[];
6
- collection: IMetadataCollection;
7
- }
1
+ import { IMetadata } from "./IMetadata";
2
+ import { IMetadataCollection } from "./IMetadataCollection";
3
+
4
+ export interface IMetadataApplication {
5
+ metadatas: IMetadata[];
6
+ collection: IMetadataCollection;
7
+ }
@@ -1,10 +1,10 @@
1
- import { IMetadata } from "./IMetadata";
2
-
3
- export interface IMetadataArray {
4
- name: string;
5
- value: IMetadata;
6
-
7
- nullables: boolean[];
8
- recursive: boolean;
9
- index: number | null;
10
- }
1
+ import { IMetadata } from "./IMetadata";
2
+
3
+ export interface IMetadataArray {
4
+ name: string;
5
+ value: IMetadata;
6
+
7
+ nullables: boolean[];
8
+ recursive: boolean;
9
+ index: number | null;
10
+ }
@@ -1,11 +1,11 @@
1
- import { IMetadataAlias } from "./IMetadataAlias";
2
- import { IMetadataArray } from "./IMetadataArray";
3
- import { IMetadataObject } from "./IMetadataObject";
4
- import { IMetadataTuple } from "./IMetadataTuple";
5
-
6
- export interface IMetadataCollection {
7
- objects: IMetadataObject[];
8
- aliases: IMetadataAlias[];
9
- arrays: IMetadataArray[];
10
- tuples: IMetadataTuple[];
11
- }
1
+ import { IMetadataAlias } from "./IMetadataAlias";
2
+ import { IMetadataArray } from "./IMetadataArray";
3
+ import { IMetadataObject } from "./IMetadataObject";
4
+ import { IMetadataTuple } from "./IMetadataTuple";
5
+
6
+ export interface IMetadataCollection {
7
+ objects: IMetadataObject[];
8
+ aliases: IMetadataAlias[];
9
+ arrays: IMetadataArray[];
10
+ tuples: IMetadataTuple[];
11
+ }
@@ -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,14 +1,14 @@
1
- import { MetadataAlias } from "./MetadataAlias";
2
- import { MetadataArray } from "./MetadataArray";
3
- import { MetadataObject } from "./MetadataObject";
4
- import { MetadataTuple } from "./MetadataTuple";
5
-
6
- /**
7
- * @internal
8
- */
9
- export interface IMetadataDictionary {
10
- objects: Map<string, MetadataObject>;
11
- aliases: Map<string, MetadataAlias>;
12
- arrays: Map<string, MetadataArray>;
13
- tuples: Map<string, MetadataTuple>;
14
- }
1
+ import { MetadataAlias } from "./MetadataAlias";
2
+ import { MetadataArray } from "./MetadataArray";
3
+ import { MetadataObject } from "./MetadataObject";
4
+ import { MetadataTuple } from "./MetadataTuple";
5
+
6
+ /**
7
+ * @internal
8
+ */
9
+ export interface IMetadataDictionary {
10
+ objects: Map<string, MetadataObject>;
11
+ aliases: Map<string, MetadataAlias>;
12
+ arrays: Map<string, MetadataArray>;
13
+ tuples: Map<string, MetadataTuple>;
14
+ }
@@ -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,18 +1,18 @@
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
- index: number;
11
- recursive: boolean;
12
- nullables: boolean[];
13
-
14
- /**
15
- * @internal
16
- */
17
- validated: boolean;
18
- }
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
+ index: number;
11
+ recursive: boolean;
12
+ nullables: boolean[];
13
+
14
+ /**
15
+ * @internal
16
+ */
17
+ validated: boolean;
18
+ }
@@ -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 | null;
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 | null;
9
+ tags: IMetadataTag[];
10
+ jsDocTags: IJsDocTagInfo[];
11
+ }
@@ -1,6 +1,6 @@
1
- import { IMetadata } from "./IMetadata";
2
-
3
- export interface IMetadataResolved {
4
- original: IMetadata;
5
- returns: IMetadata;
6
- }
1
+ import { IMetadata } from "./IMetadata";
2
+
3
+ export interface IMetadataResolved {
4
+ original: IMetadata;
5
+ returns: IMetadata;
6
+ }