typia 5.0.0-dev.20230820 → 5.0.0-dev.20230821

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