typia 5.0.0-dev.20230821 → 5.0.0-dev.20230822

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 (236) hide show
  1. package/lib/factories/MetadataFactory.js +9 -0
  2. package/lib/factories/MetadataFactory.js.map +1 -1
  3. package/lib/factories/ProtobufFactory.js +8 -0
  4. package/lib/factories/ProtobufFactory.js.map +1 -1
  5. package/lib/functional/$ProtobufReader.d.ts +2 -0
  6. package/lib/functional/$ProtobufReader.js +14 -3
  7. package/lib/functional/$ProtobufReader.js.map +1 -1
  8. package/lib/functional/$ProtobufSizer.js +1 -1
  9. package/lib/functional/$ProtobufSizer.js.map +1 -1
  10. package/lib/functional/$ProtobufWriter.js +0 -1
  11. package/lib/functional/$ProtobufWriter.js.map +1 -1
  12. package/lib/programmers/helpers/ProtobufUtil.d.ts +3 -1
  13. package/lib/programmers/helpers/ProtobufUtil.js +5 -1
  14. package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
  15. package/lib/programmers/json/JsonValidateParseProgrammer.js +2 -3
  16. package/lib/programmers/json/JsonValidateParseProgrammer.js.map +1 -1
  17. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js +2 -3
  18. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js.map +1 -1
  19. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +357 -6
  20. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  21. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +15 -60
  22. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  23. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js +1 -1
  24. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js.map +1 -1
  25. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +1 -1
  26. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  27. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js +3 -4
  28. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js.map +1 -1
  29. package/lib/protobuf.d.ts +8 -9
  30. package/lib/protobuf.js +7 -0
  31. package/lib/protobuf.js.map +1 -1
  32. package/package.json +1 -1
  33. package/src/factories/ExpressionFactory.ts +115 -115
  34. package/src/factories/MetadataCollection.ts +269 -269
  35. package/src/factories/MetadataFactory.ts +46 -34
  36. package/src/factories/MetadataTagFactory.ts +364 -364
  37. package/src/factories/ProtobufFactory.ts +266 -251
  38. package/src/factories/StatementFactory.ts +72 -72
  39. package/src/factories/internal/metadata/MetadataHelper.ts +12 -12
  40. package/src/factories/internal/metadata/emend_metadata_atomics.ts +33 -33
  41. package/src/factories/internal/metadata/emplace_metadata_alias.ts +40 -40
  42. package/src/factories/internal/metadata/emplace_metadata_array.ts +34 -34
  43. package/src/factories/internal/metadata/emplace_metadata_object.ts +136 -136
  44. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +50 -50
  45. package/src/factories/internal/metadata/explore_metadata.ts +38 -38
  46. package/src/factories/internal/metadata/iterate_metadata.ts +81 -81
  47. package/src/factories/internal/metadata/iterate_metadata_alias.ts +30 -30
  48. package/src/factories/internal/metadata/iterate_metadata_array.ts +24 -24
  49. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +59 -59
  50. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
  51. package/src/factories/internal/metadata/iterate_metadata_collection.ts +133 -133
  52. package/src/factories/internal/metadata/iterate_metadata_constant.ts +58 -58
  53. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +84 -84
  54. package/src/factories/internal/metadata/iterate_metadata_map.ts +41 -41
  55. package/src/factories/internal/metadata/iterate_metadata_native.ts +219 -219
  56. package/src/factories/internal/metadata/iterate_metadata_object.ts +43 -43
  57. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +49 -49
  58. package/src/factories/internal/metadata/iterate_metadata_set.ts +33 -33
  59. package/src/factories/internal/metadata/iterate_metadata_sort.ts +69 -69
  60. package/src/factories/internal/metadata/iterate_metadata_tag.ts +31 -31
  61. package/src/factories/internal/metadata/iterate_metadata_template.ts +38 -38
  62. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +24 -24
  63. package/src/factories/internal/metadata/iterate_metadata_union.ts +24 -24
  64. package/src/functional/$ProtobufReader.ts +201 -188
  65. package/src/functional/$ProtobufSizer.ts +147 -144
  66. package/src/functional/$ProtobufWriter.ts +152 -152
  67. package/src/functional/$number.ts +13 -13
  68. package/src/functional/$strlen.ts +7 -7
  69. package/src/functional/$varint.ts +130 -130
  70. package/src/functional/$zigzag.ts +39 -39
  71. package/src/functional/IProtobufWriter.ts +18 -18
  72. package/src/functional/Namespace.ts +149 -149
  73. package/src/json.ts +648 -648
  74. package/src/misc.ts +651 -651
  75. package/src/module.ts +708 -708
  76. package/src/programmers/CheckerProgrammer.ts +1173 -1173
  77. package/src/programmers/FeatureProgrammer.ts +497 -497
  78. package/src/programmers/IsProgrammer.ts +239 -239
  79. package/src/programmers/IsPruneProgrammer.ts +73 -73
  80. package/src/programmers/RandomProgrammer.ts +578 -578
  81. package/src/programmers/helpers/AtomicPredicator.ts +31 -31
  82. package/src/programmers/helpers/CloneJoiner.ts +107 -107
  83. package/src/programmers/helpers/FunctionImporeter.ts +89 -89
  84. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  85. package/src/programmers/helpers/ProtobufUtil.ts +29 -24
  86. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  87. package/src/programmers/helpers/PruneJoiner.ts +143 -143
  88. package/src/programmers/helpers/RandomJoiner.ts +173 -173
  89. package/src/programmers/helpers/RandomRanger.ts +208 -208
  90. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  91. package/src/programmers/helpers/UnionExplorer.ts +310 -310
  92. package/src/programmers/helpers/UnionPredicator.ts +81 -81
  93. package/src/programmers/helpers/disable_function_importer_declare.ts +27 -27
  94. package/src/programmers/internal/application_alias.ts +66 -66
  95. package/src/programmers/internal/application_array.ts +30 -30
  96. package/src/programmers/internal/application_constant.ts +26 -26
  97. package/src/programmers/internal/application_default.ts +17 -17
  98. package/src/programmers/internal/application_default_string.ts +33 -33
  99. package/src/programmers/internal/application_native.ts +39 -39
  100. package/src/programmers/internal/application_number.ts +81 -81
  101. package/src/programmers/internal/application_object.ts +165 -165
  102. package/src/programmers/internal/application_resolved.ts +55 -55
  103. package/src/programmers/internal/application_schema.ts +157 -157
  104. package/src/programmers/internal/application_string.ts +44 -44
  105. package/src/programmers/internal/application_templates.ts +25 -25
  106. package/src/programmers/internal/application_tuple.ts +57 -57
  107. package/src/programmers/internal/check_array.ts +30 -30
  108. package/src/programmers/internal/check_array_length.ts +35 -35
  109. package/src/programmers/internal/check_bigint.ts +110 -110
  110. package/src/programmers/internal/check_custom.ts +31 -31
  111. package/src/programmers/internal/check_number.ts +258 -258
  112. package/src/programmers/internal/check_string.ts +25 -25
  113. package/src/programmers/internal/check_string_tags.ts +67 -67
  114. package/src/programmers/internal/check_template.ts +56 -56
  115. package/src/programmers/internal/check_union_array_like.ts +329 -329
  116. package/src/programmers/internal/decode_union_object.ts +84 -84
  117. package/src/programmers/internal/feature_object_entries.ts +63 -63
  118. package/src/programmers/internal/get_comment_tags.ts +23 -23
  119. package/src/programmers/internal/metadata_to_pattern.ts +34 -34
  120. package/src/programmers/internal/prune_object_properties.ts +60 -60
  121. package/src/programmers/internal/random_custom.ts +29 -29
  122. package/src/programmers/internal/stringify_regular_properties.ts +83 -83
  123. package/src/programmers/internal/template_to_pattern.ts +15 -15
  124. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +16 -16
  125. package/src/programmers/json/JsonApplicationProgrammer.ts +47 -47
  126. package/src/programmers/json/JsonAssertParseProgrammer.ts +66 -66
  127. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +66 -66
  128. package/src/programmers/json/JsonIsParseProgrammer.ts +72 -72
  129. package/src/programmers/json/JsonIsStringifyProgrammer.ts +76 -76
  130. package/src/programmers/json/JsonStringifyProgrammer.ts +987 -987
  131. package/src/programmers/json/JsonValidateParseProgrammer.ts +63 -70
  132. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +84 -84
  133. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +71 -71
  134. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +68 -68
  135. package/src/programmers/misc/MiscCloneProgrammer.ts +587 -587
  136. package/src/programmers/misc/MiscIsCloneProgrammer.ts +78 -78
  137. package/src/programmers/misc/MiscLiteralsProgrammer.ts +64 -64
  138. package/src/programmers/misc/MiscPruneProgrammer.ts +542 -542
  139. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +85 -85
  140. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +78 -78
  141. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +66 -69
  142. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +66 -66
  143. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +653 -38
  144. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +812 -920
  145. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +75 -75
  146. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +76 -76
  147. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +178 -178
  148. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +75 -83
  149. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +86 -86
  150. package/src/protobuf.ts +249 -239
  151. package/src/schemas/json/IJsonApplication.ts +8 -8
  152. package/src/schemas/json/IJsonComponents.ts +33 -33
  153. package/src/schemas/json/IJsonSchema.ts +133 -133
  154. package/src/schemas/metadata/ICommentTag.ts +4 -4
  155. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  156. package/src/schemas/metadata/IMetadata.ts +28 -28
  157. package/src/schemas/metadata/IMetadataAlias.ts +14 -14
  158. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  159. package/src/schemas/metadata/IMetadataArray.ts +10 -10
  160. package/src/schemas/metadata/IMetadataCollection.ts +11 -11
  161. package/src/schemas/metadata/IMetadataConstant.ts +16 -16
  162. package/src/schemas/metadata/IMetadataDictionary.ts +14 -14
  163. package/src/schemas/metadata/IMetadataEntry.ts +6 -6
  164. package/src/schemas/metadata/IMetadataObject.ts +18 -18
  165. package/src/schemas/metadata/IMetadataProperty.ts +11 -11
  166. package/src/schemas/metadata/IMetadataResolved.ts +6 -6
  167. package/src/schemas/metadata/IMetadataTag.ts +112 -112
  168. package/src/schemas/metadata/IMetadataTuple.ts +10 -10
  169. package/src/schemas/metadata/Metadata.ts +637 -637
  170. package/src/schemas/metadata/MetadataAlias.ts +66 -66
  171. package/src/schemas/metadata/MetadataArray.ts +55 -55
  172. package/src/schemas/metadata/MetadataConstant.ts +3 -3
  173. package/src/schemas/metadata/MetadataObject.ts +139 -139
  174. package/src/schemas/metadata/MetadataProperty.ts +64 -64
  175. package/src/schemas/metadata/MetadataResolved.ts +51 -51
  176. package/src/schemas/metadata/MetadataTuple.ts +58 -58
  177. package/src/transformers/CallExpressionTransformer.ts +240 -240
  178. package/src/transformers/features/AssertTransformer.ts +11 -11
  179. package/src/transformers/features/CreateAssertTransformer.ts +13 -13
  180. package/src/transformers/features/CreateIsTransformer.ts +11 -11
  181. package/src/transformers/features/CreateRandomTransformer.ts +39 -39
  182. package/src/transformers/features/CreateValidateTransformer.ts +13 -13
  183. package/src/transformers/features/IsTransformer.ts +11 -11
  184. package/src/transformers/features/RandomTransformer.ts +42 -42
  185. package/src/transformers/features/ValidateTransformer.ts +11 -11
  186. package/src/transformers/features/json/JsonApplicationTransformer.ts +111 -111
  187. package/src/transformers/features/json/JsonAssertParseTransformer.ts +10 -10
  188. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +10 -10
  189. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +10 -10
  190. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +12 -12
  191. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +9 -9
  192. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +10 -10
  193. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +9 -9
  194. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +10 -10
  195. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +12 -12
  196. package/src/transformers/features/json/JsonIsParseTransformer.ts +9 -9
  197. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +10 -10
  198. package/src/transformers/features/json/JsonStringifyTransformer.ts +9 -9
  199. package/src/transformers/features/json/JsonValidateParseTransformer.ts +10 -10
  200. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +10 -10
  201. package/src/transformers/features/misc/MetadataTransformer.ts +53 -53
  202. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +10 -10
  203. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +10 -10
  204. package/src/transformers/features/misc/MiscCloneTransformer.ts +9 -9
  205. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +10 -10
  206. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +10 -10
  207. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +9 -9
  208. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +9 -9
  209. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +9 -9
  210. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +9 -9
  211. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +10 -10
  212. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +10 -10
  213. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +9 -9
  214. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +9 -9
  215. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +28 -28
  216. package/src/transformers/features/misc/MiscPruneTransformer.ts +9 -9
  217. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +10 -10
  218. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +10 -10
  219. package/src/transformers/features/protobuf/CreateProtobufAssertDecodeTransformer.ts +12 -12
  220. package/src/transformers/features/protobuf/CreateProtobufAssertEncodeTransformer.ts +12 -12
  221. package/src/transformers/features/protobuf/CreateProtobufDecodeTransformer.ts +9 -9
  222. package/src/transformers/features/protobuf/CreateProtobufEncodeTransformer.ts +9 -9
  223. package/src/transformers/features/protobuf/CreateProtobufIsDecodeTransformer.ts +12 -12
  224. package/src/transformers/features/protobuf/CreateProtobufIsEncodeTransformer.ts +12 -12
  225. package/src/transformers/features/protobuf/CreateProtobufValidateDecodeTransformer.ts +12 -12
  226. package/src/transformers/features/protobuf/CreateProtobufValidateEncodeTransformer.ts +12 -12
  227. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +10 -10
  228. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +10 -10
  229. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +10 -10
  230. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +10 -10
  231. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +10 -10
  232. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +10 -10
  233. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +31 -31
  234. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +12 -12
  235. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +12 -12
  236. package/src/utils/NameEncoder.ts +32 -32
@@ -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
+ }