typia 4.1.2-dev.20230630 → 4.1.3-dev.20230704

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 (246) hide show
  1. package/README.md +1 -0
  2. package/lib/factories/internal/metadata/emplace_metadata_object.js +24 -32
  3. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
  4. package/lib/factories/internal/metadata/iterate_metadata_collection.js +2 -0
  5. package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
  6. package/lib/factories/internal/metadata/iterate_metadata_tag.d.ts +2 -0
  7. package/lib/factories/internal/metadata/iterate_metadata_tag.js +50 -0
  8. package/lib/factories/internal/metadata/iterate_metadata_tag.js.map +1 -0
  9. package/lib/metadata/MetadataObject.js +2 -0
  10. package/lib/metadata/MetadataObject.js.map +1 -1
  11. package/package.json +1 -1
  12. package/src/CustomValidatorMap.ts +126 -126
  13. package/src/IRandomGenerator.ts +34 -34
  14. package/src/IValidation.ts +21 -21
  15. package/src/Primitive.ts +131 -131
  16. package/src/TypeGuardError.ts +36 -36
  17. package/src/executable/TypiaGenerateWizard.ts +85 -85
  18. package/src/executable/TypiaSetupWizard.ts +133 -133
  19. package/src/executable/setup/ArgumentParser.ts +45 -45
  20. package/src/executable/setup/CommandExecutor.ts +8 -8
  21. package/src/executable/setup/FileRetriever.ts +22 -22
  22. package/src/executable/setup/PackageManager.ts +71 -71
  23. package/src/executable/setup/PluginConfigurator.ts +70 -70
  24. package/src/executable/typia.ts +52 -52
  25. package/src/factories/CommentFactory.ts +64 -64
  26. package/src/factories/ExpressionFactory.ts +70 -70
  27. package/src/factories/IdentifierFactory.ts +59 -59
  28. package/src/factories/LiteralFactory.ts +39 -39
  29. package/src/factories/MetadataCollection.ts +254 -254
  30. package/src/factories/MetadataFactory.ts +30 -30
  31. package/src/factories/MetadataTagFactory.ts +355 -355
  32. package/src/factories/StatementFactory.ts +24 -24
  33. package/src/factories/TemplateFactory.ts +58 -58
  34. package/src/factories/TypeFactory.ts +124 -124
  35. package/src/factories/ValueFactory.ts +12 -12
  36. package/src/factories/internal/metadata/MetadataHelper.ts +12 -12
  37. package/src/factories/internal/metadata/emend_metadata_atomics.ts +33 -33
  38. package/src/factories/internal/metadata/emplace_metadata_array.ts +34 -34
  39. package/src/factories/internal/metadata/emplace_metadata_definition.ts +35 -35
  40. package/src/factories/internal/metadata/emplace_metadata_object.ts +137 -140
  41. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +53 -53
  42. package/src/factories/internal/metadata/explore_metadata.ts +40 -40
  43. package/src/factories/internal/metadata/iterate_metadata.ts +81 -81
  44. package/src/factories/internal/metadata/iterate_metadata_alias.ts +30 -30
  45. package/src/factories/internal/metadata/iterate_metadata_array.ts +24 -24
  46. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +59 -59
  47. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
  48. package/src/factories/internal/metadata/iterate_metadata_collection.ts +133 -130
  49. package/src/factories/internal/metadata/iterate_metadata_constant.ts +58 -58
  50. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +83 -83
  51. package/src/factories/internal/metadata/iterate_metadata_map.ts +41 -41
  52. package/src/factories/internal/metadata/iterate_metadata_native.ts +219 -219
  53. package/src/factories/internal/metadata/iterate_metadata_object.ts +43 -43
  54. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +49 -49
  55. package/src/factories/internal/metadata/iterate_metadata_set.ts +33 -33
  56. package/src/factories/internal/metadata/iterate_metadata_sort.ts +69 -69
  57. package/src/factories/internal/metadata/iterate_metadata_tag.ts +31 -0
  58. package/src/factories/internal/metadata/iterate_metadata_template.ts +38 -38
  59. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +24 -24
  60. package/src/factories/internal/metadata/iterate_metadata_union.ts +24 -24
  61. package/src/functional/$any.ts +2 -2
  62. package/src/functional/$dictionary.ts +25 -25
  63. package/src/functional/$every.ts +11 -11
  64. package/src/functional/$guard.ts +35 -35
  65. package/src/functional/$is_between.ts +2 -2
  66. package/src/functional/$is_custom.ts +14 -14
  67. package/src/functional/$is_date.ts +3 -3
  68. package/src/functional/$is_datetime.ts +2 -2
  69. package/src/functional/$is_email.ts +4 -4
  70. package/src/functional/$is_ipv4.ts +4 -4
  71. package/src/functional/$is_ipv6.ts +4 -4
  72. package/src/functional/$is_url.ts +4 -4
  73. package/src/functional/$is_uuid.ts +4 -4
  74. package/src/functional/$join.ts +46 -46
  75. package/src/functional/$number.ts +12 -12
  76. package/src/functional/$report.ts +15 -15
  77. package/src/functional/$rest.ts +3 -3
  78. package/src/functional/$string.ts +37 -37
  79. package/src/functional/$tail.ts +5 -5
  80. package/src/functional/Namespace.ts +127 -127
  81. package/src/index.ts +4 -4
  82. package/src/metadata/ICommentTag.ts +4 -4
  83. package/src/metadata/IJsDocTagInfo.ts +10 -10
  84. package/src/metadata/IMetadata.ts +28 -28
  85. package/src/metadata/IMetadataAlias.ts +12 -12
  86. package/src/metadata/IMetadataApplication.ts +7 -7
  87. package/src/metadata/IMetadataArray.ts +10 -10
  88. package/src/metadata/IMetadataCollection.ts +11 -11
  89. package/src/metadata/IMetadataConstant.ts +16 -16
  90. package/src/metadata/IMetadataDictionary.ts +14 -14
  91. package/src/metadata/IMetadataEntry.ts +6 -6
  92. package/src/metadata/IMetadataObject.ts +18 -18
  93. package/src/metadata/IMetadataProperty.ts +11 -11
  94. package/src/metadata/IMetadataResolved.ts +6 -6
  95. package/src/metadata/IMetadataTag.ts +105 -105
  96. package/src/metadata/IMetadataTuple.ts +10 -10
  97. package/src/metadata/Metadata.ts +599 -599
  98. package/src/metadata/MetadataAlias.ts +61 -61
  99. package/src/metadata/MetadataArray.ts +55 -55
  100. package/src/metadata/MetadataConstant.ts +3 -3
  101. package/src/metadata/MetadataObject.ts +129 -118
  102. package/src/metadata/MetadataProperty.ts +64 -64
  103. package/src/metadata/MetadataResolved.ts +51 -51
  104. package/src/metadata/MetadataTuple.ts +53 -53
  105. package/src/module.ts +2038 -2038
  106. package/src/programmers/ApplicationProgrammer.ts +47 -47
  107. package/src/programmers/AssertCloneProgrammer.ts +71 -71
  108. package/src/programmers/AssertParseProgrammer.ts +66 -66
  109. package/src/programmers/AssertProgrammer.ts +279 -279
  110. package/src/programmers/AssertPruneProgrammer.ts +68 -68
  111. package/src/programmers/AssertStringifyProgrammer.ts +66 -66
  112. package/src/programmers/CheckerProgrammer.ts +1182 -1182
  113. package/src/programmers/CloneProgrammer.ts +587 -587
  114. package/src/programmers/FeatureProgrammer.ts +495 -495
  115. package/src/programmers/IsCloneProgrammer.ts +78 -78
  116. package/src/programmers/IsParseProgrammer.ts +72 -72
  117. package/src/programmers/IsProgrammer.ts +239 -239
  118. package/src/programmers/IsPruneProgrammer.ts +73 -73
  119. package/src/programmers/IsStringifyProgrammer.ts +76 -76
  120. package/src/programmers/LiteralsProgrammer.ts +60 -60
  121. package/src/programmers/PruneProgrammer.ts +542 -542
  122. package/src/programmers/RandomProgrammer.ts +581 -581
  123. package/src/programmers/StringifyProgrammer.ts +978 -978
  124. package/src/programmers/TypiaProgrammer.ts +129 -129
  125. package/src/programmers/ValidateCloneProgrammer.ts +85 -85
  126. package/src/programmers/ValidateParseProgrammer.ts +70 -70
  127. package/src/programmers/ValidateProgrammer.ts +305 -305
  128. package/src/programmers/ValidatePruneProgrammer.ts +78 -78
  129. package/src/programmers/ValidateStringifyProgrammer.ts +84 -84
  130. package/src/programmers/helpers/AtomicPredicator.ts +31 -31
  131. package/src/programmers/helpers/CloneJoiner.ts +131 -131
  132. package/src/programmers/helpers/FunctionImporeter.ts +78 -78
  133. package/src/programmers/helpers/ICheckEntry.ts +12 -12
  134. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  135. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  136. package/src/programmers/helpers/PruneJoiner.ts +143 -143
  137. package/src/programmers/helpers/RandomJoiner.ts +173 -173
  138. package/src/programmers/helpers/RandomRanger.ts +216 -216
  139. package/src/programmers/helpers/StringifyJoinder.ts +113 -113
  140. package/src/programmers/helpers/StringifyPredicator.ts +12 -12
  141. package/src/programmers/helpers/UnionExplorer.ts +301 -301
  142. package/src/programmers/helpers/UnionPredicator.ts +81 -81
  143. package/src/programmers/helpers/disable_function_importer_declare.ts +26 -26
  144. package/src/programmers/internal/JSON_SCHEMA_PREFIX.ts +1 -1
  145. package/src/programmers/internal/application_alias.ts +47 -47
  146. package/src/programmers/internal/application_array.ts +30 -30
  147. package/src/programmers/internal/application_boolean.ts +15 -15
  148. package/src/programmers/internal/application_constant.ts +26 -26
  149. package/src/programmers/internal/application_default.ts +17 -17
  150. package/src/programmers/internal/application_default_string.ts +33 -33
  151. package/src/programmers/internal/application_native.ts +39 -39
  152. package/src/programmers/internal/application_number.ts +74 -74
  153. package/src/programmers/internal/application_object.ts +162 -162
  154. package/src/programmers/internal/application_resolved.ts +55 -55
  155. package/src/programmers/internal/application_schema.ts +157 -157
  156. package/src/programmers/internal/application_string.ts +44 -44
  157. package/src/programmers/internal/application_templates.ts +25 -25
  158. package/src/programmers/internal/application_tuple.ts +57 -57
  159. package/src/programmers/internal/check_array.ts +30 -30
  160. package/src/programmers/internal/check_array_length.ts +35 -35
  161. package/src/programmers/internal/check_bigint.ts +82 -82
  162. package/src/programmers/internal/check_custom.ts +31 -31
  163. package/src/programmers/internal/check_dynamic_properties.ts +194 -194
  164. package/src/programmers/internal/check_everything.ts +28 -28
  165. package/src/programmers/internal/check_native.ts +21 -21
  166. package/src/programmers/internal/check_number.ts +177 -177
  167. package/src/programmers/internal/check_object.ts +55 -55
  168. package/src/programmers/internal/check_string.ts +25 -25
  169. package/src/programmers/internal/check_string_tags.ts +67 -67
  170. package/src/programmers/internal/check_template.ts +56 -56
  171. package/src/programmers/internal/check_union_array_like.ts +329 -329
  172. package/src/programmers/internal/decode_union_object.ts +73 -73
  173. package/src/programmers/internal/feature_object_entries.ts +63 -63
  174. package/src/programmers/internal/get_comment_tags.ts +23 -23
  175. package/src/programmers/internal/metadata_to_pattern.ts +34 -34
  176. package/src/programmers/internal/prune_object_properties.ts +60 -60
  177. package/src/programmers/internal/random_custom.ts +29 -29
  178. package/src/programmers/internal/stringify_dynamic_properties.ts +167 -167
  179. package/src/programmers/internal/stringify_native.ts +7 -7
  180. package/src/programmers/internal/stringify_regular_properties.ts +83 -83
  181. package/src/programmers/internal/template_to_pattern.ts +15 -15
  182. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +16 -16
  183. package/src/schemas/IJsonApplication.ts +8 -8
  184. package/src/schemas/IJsonComponents.ts +33 -33
  185. package/src/schemas/IJsonSchema.ts +133 -133
  186. package/src/transform.ts +27 -27
  187. package/src/transformers/CallExpressionTransformer.ts +179 -179
  188. package/src/transformers/FileTransformer.ts +47 -47
  189. package/src/transformers/IProject.ts +11 -11
  190. package/src/transformers/ITransformOptions.ts +62 -62
  191. package/src/transformers/ImportTransformer.ts +66 -66
  192. package/src/transformers/NodeTransformer.ts +13 -13
  193. package/src/transformers/features/miscellaneous/ApplicationTransformer.ts +104 -104
  194. package/src/transformers/features/miscellaneous/AssertCloneTransformer.ts +9 -9
  195. package/src/transformers/features/miscellaneous/AssertPruneTransformer.ts +9 -9
  196. package/src/transformers/features/miscellaneous/CloneTransformer.ts +9 -9
  197. package/src/transformers/features/miscellaneous/CreateAssertCloneTransformer.ts +9 -9
  198. package/src/transformers/features/miscellaneous/CreateAssertPruneTransformer.ts +9 -9
  199. package/src/transformers/features/miscellaneous/CreateCloneTransformer.ts +9 -9
  200. package/src/transformers/features/miscellaneous/CreateIsCloneTransformer.ts +9 -9
  201. package/src/transformers/features/miscellaneous/CreateIsPruneTransformer.ts +9 -9
  202. package/src/transformers/features/miscellaneous/CreatePruneTransformer.ts +9 -9
  203. package/src/transformers/features/miscellaneous/CreateRandomTransformer.ts +39 -39
  204. package/src/transformers/features/miscellaneous/CreateValidateCloneTransformer.ts +9 -9
  205. package/src/transformers/features/miscellaneous/CreateValidatePruneTransformer.ts +9 -9
  206. package/src/transformers/features/miscellaneous/IsCloneTransformer.ts +9 -9
  207. package/src/transformers/features/miscellaneous/IsPruneTransformer.ts +9 -9
  208. package/src/transformers/features/miscellaneous/LiteralsTransformer.ts +28 -28
  209. package/src/transformers/features/miscellaneous/MetadataTransformer.ts +53 -53
  210. package/src/transformers/features/miscellaneous/PruneTransformer.ts +9 -9
  211. package/src/transformers/features/miscellaneous/RandomTransformer.ts +42 -42
  212. package/src/transformers/features/miscellaneous/ValidateCloneTransformer.ts +9 -9
  213. package/src/transformers/features/miscellaneous/ValidatePruneTransformer.ts +9 -9
  214. package/src/transformers/features/parsers/AssertParseTransformer.ts +9 -9
  215. package/src/transformers/features/parsers/CreateAssertParseTransformer.ts +9 -9
  216. package/src/transformers/features/parsers/CreateIsParseTransformer.ts +9 -9
  217. package/src/transformers/features/parsers/CreateValidateParseTransformer.ts +9 -9
  218. package/src/transformers/features/parsers/IsParseTransformer.ts +9 -9
  219. package/src/transformers/features/parsers/ValidateParseTransformer.ts +9 -9
  220. package/src/transformers/features/stringifiers/AssertStringifyTransformer.ts +10 -10
  221. package/src/transformers/features/stringifiers/CreateAssertStringifyTransformer.ts +12 -12
  222. package/src/transformers/features/stringifiers/CreateIsStringifyTransformer.ts +9 -9
  223. package/src/transformers/features/stringifiers/CreateStringifyTransformer.ts +9 -9
  224. package/src/transformers/features/stringifiers/CreateValidateStringifyProgrammer.ts +12 -12
  225. package/src/transformers/features/stringifiers/IsStringifyTransformer.ts +9 -9
  226. package/src/transformers/features/stringifiers/StringifyTransformer.ts +9 -9
  227. package/src/transformers/features/stringifiers/ValidateStringifyTransformer.ts +10 -10
  228. package/src/transformers/features/validators/AssertTransformer.ts +11 -11
  229. package/src/transformers/features/validators/CreateAssertTransformer.ts +13 -13
  230. package/src/transformers/features/validators/CreateIsTransformer.ts +11 -11
  231. package/src/transformers/features/validators/CreateValidateTransformer.ts +13 -13
  232. package/src/transformers/features/validators/IsTransformer.ts +11 -11
  233. package/src/transformers/features/validators/ValidateTransformer.ts +11 -11
  234. package/src/transformers/internal/GenericTransformer.ts +97 -97
  235. package/src/typings/Atomic.ts +17 -17
  236. package/src/typings/ClassProperties.ts +5 -5
  237. package/src/typings/Customizable.ts +5 -5
  238. package/src/typings/OmitNever.ts +3 -3
  239. package/src/typings/SpecialFields.ts +3 -3
  240. package/src/typings/Writable.ts +11 -11
  241. package/src/utils/ArrayUtil.ts +45 -45
  242. package/src/utils/Escaper.ts +45 -45
  243. package/src/utils/MapUtil.ts +12 -12
  244. package/src/utils/PatternUtil.ts +30 -30
  245. package/src/utils/RandomGenerator.ts +81 -81
  246. package/src/utils/Singleton.ts +17 -17
@@ -1,61 +1,61 @@
1
- import { ClassProperties } from "../typings/ClassProperties";
2
-
3
- import { IJsDocTagInfo } from "./IJsDocTagInfo";
4
- import { IMetadataAlias } from "./IMetadataAlias";
5
- import { Metadata } from "./Metadata";
6
-
7
- export class MetadataAlias {
8
- public readonly name: string;
9
- public readonly value: Metadata;
10
- public readonly description: string | null;
11
- public readonly jsDocTags: IJsDocTagInfo[];
12
- public readonly recursive: boolean;
13
- public readonly nullables: boolean[];
14
-
15
- /* -----------------------------------------------------------
16
- CONSTRUCTORS
17
- ----------------------------------------------------------- */
18
- /**
19
- * @hidden
20
- */
21
- private constructor(props: ClassProperties<MetadataAlias>) {
22
- this.name = props.name;
23
- this.value = props.value;
24
- this.description = props.description;
25
- this.jsDocTags = props.jsDocTags;
26
- this.recursive = props.recursive;
27
- this.nullables = props.nullables;
28
- }
29
-
30
- /**
31
- * @internal
32
- */
33
- public static create(props: ClassProperties<MetadataAlias>): MetadataAlias {
34
- return new MetadataAlias(props);
35
- }
36
-
37
- /**
38
- * @internal
39
- */
40
- public static _From_without_value(props: Omit<IMetadataAlias, "value">) {
41
- return this.create({
42
- name: props.name,
43
- value: null!,
44
- description: props.description,
45
- recursive: props.recursive,
46
- jsDocTags: props.jsDocTags.slice(),
47
- nullables: props.nullables.slice(),
48
- });
49
- }
50
-
51
- public toJSON(): IMetadataAlias {
52
- return {
53
- name: this.name,
54
- value: this.value.toJSON(),
55
- description: this.description,
56
- recursive: this.recursive,
57
- jsDocTags: this.jsDocTags,
58
- nullables: this.nullables.slice(),
59
- };
60
- }
61
- }
1
+ import { ClassProperties } from "../typings/ClassProperties";
2
+
3
+ import { IJsDocTagInfo } from "./IJsDocTagInfo";
4
+ import { IMetadataAlias } from "./IMetadataAlias";
5
+ import { Metadata } from "./Metadata";
6
+
7
+ export class MetadataAlias {
8
+ public readonly name: string;
9
+ public readonly value: Metadata;
10
+ public readonly description: string | null;
11
+ public readonly jsDocTags: IJsDocTagInfo[];
12
+ public readonly recursive: boolean;
13
+ public readonly nullables: boolean[];
14
+
15
+ /* -----------------------------------------------------------
16
+ CONSTRUCTORS
17
+ ----------------------------------------------------------- */
18
+ /**
19
+ * @hidden
20
+ */
21
+ private constructor(props: ClassProperties<MetadataAlias>) {
22
+ this.name = props.name;
23
+ this.value = props.value;
24
+ this.description = props.description;
25
+ this.jsDocTags = props.jsDocTags;
26
+ this.recursive = props.recursive;
27
+ this.nullables = props.nullables;
28
+ }
29
+
30
+ /**
31
+ * @internal
32
+ */
33
+ public static create(props: ClassProperties<MetadataAlias>): MetadataAlias {
34
+ return new MetadataAlias(props);
35
+ }
36
+
37
+ /**
38
+ * @internal
39
+ */
40
+ public static _From_without_value(props: Omit<IMetadataAlias, "value">) {
41
+ return this.create({
42
+ name: props.name,
43
+ value: null!,
44
+ description: props.description,
45
+ recursive: props.recursive,
46
+ jsDocTags: props.jsDocTags.slice(),
47
+ nullables: props.nullables.slice(),
48
+ });
49
+ }
50
+
51
+ public toJSON(): IMetadataAlias {
52
+ return {
53
+ name: this.name,
54
+ value: this.value.toJSON(),
55
+ description: this.description,
56
+ recursive: this.recursive,
57
+ jsDocTags: this.jsDocTags,
58
+ nullables: this.nullables.slice(),
59
+ };
60
+ }
61
+ }
@@ -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,118 +1,129 @@
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
- CONSTRUCTORS
20
- ----------------------------------------------------------- */
21
- /**
22
- * @hidden
23
- */
24
- private constructor(props: ClassProperties<MetadataObject>) {
25
- this.name = props.name;
26
- this.properties = props.properties;
27
- this.description = props.description;
28
- this.jsDocTags = props.jsDocTags;
29
-
30
- this.index = props.index;
31
- this.validated = props.validated;
32
- this.recursive = props.recursive;
33
- this.nullables = [];
34
- }
35
-
36
- /**
37
- * @internal
38
- */
39
- public static create(props: ClassProperties<MetadataObject>) {
40
- return new MetadataObject(props);
41
- }
42
-
43
- /**
44
- * @internal
45
- */
46
- public static _From_without_properties(
47
- obj: IMetadataObject,
48
- ): MetadataObject {
49
- return this.create({
50
- name: obj.name,
51
- properties: [],
52
- description: obj.description,
53
- jsDocTags: obj.jsDocTags,
54
-
55
- index: obj.index,
56
- validated: obj.validated,
57
- recursive: obj.recursive,
58
- nullables: obj.nullables.slice(),
59
- });
60
- }
61
-
62
- /**
63
- * @internal
64
- */
65
- public _Is_simple(level: number = 0): boolean {
66
- return (
67
- this.recursive === false &&
68
- this.properties.length < 10 &&
69
- this.properties.every(
70
- (property) =>
71
- property.key.isSoleLiteral() &&
72
- property.value.size() === 1 &&
73
- property.value.required === true &&
74
- property.value.nullable === false &&
75
- (property.value.atomics.length === 1 ||
76
- (level < 1 &&
77
- property.value.objects.length === 1 &&
78
- property.value.objects[0]!._Is_simple(level + 1))),
79
- )
80
- );
81
- }
82
-
83
- public toJSON(): IMetadataObject {
84
- return {
85
- name: this.name,
86
- properties: this.properties.map((property) => property.toJSON()),
87
- description: this.description,
88
- jsDocTags: this.jsDocTags,
89
-
90
- index: this.index,
91
- validated: this.validated,
92
- recursive: this.recursive,
93
- nullables: this.nullables.slice(),
94
- };
95
- }
96
- }
97
-
98
- /**
99
- * @internal
100
- */
101
- export namespace MetadataObject {
102
- export const intersects = (x: MetadataObject, y: MetadataObject): boolean =>
103
- x.properties.some(
104
- (prop) =>
105
- y.properties.find(
106
- (oppo) => prop.key.getName() === oppo.key.getName(),
107
- ) !== undefined,
108
- );
109
-
110
- export const covers = (x: MetadataObject, y: MetadataObject): boolean =>
111
- x.properties.length >= y.properties.length &&
112
- x.properties.every(
113
- (prop) =>
114
- y.properties.find(
115
- (oppo) => prop.key.getName() === oppo.key.getName(),
116
- ) !== undefined,
117
- );
118
- }
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 _Is_simple(level: number = 0): boolean {
77
+ return (
78
+ this.recursive === false &&
79
+ this.properties.length < 10 &&
80
+ this.properties.every(
81
+ (property) =>
82
+ property.key.isSoleLiteral() &&
83
+ property.value.size() === 1 &&
84
+ property.value.required === true &&
85
+ property.value.nullable === false &&
86
+ (property.value.atomics.length === 1 ||
87
+ (level < 1 &&
88
+ property.value.objects.length === 1 &&
89
+ property.value.objects[0]!._Is_simple(level + 1))),
90
+ )
91
+ );
92
+ }
93
+
94
+ public toJSON(): IMetadataObject {
95
+ return {
96
+ name: this.name,
97
+ properties: this.properties.map((property) => property.toJSON()),
98
+ description: this.description,
99
+ jsDocTags: this.jsDocTags,
100
+
101
+ index: this.index,
102
+ validated: this.validated,
103
+ recursive: this.recursive,
104
+ nullables: this.nullables.slice(),
105
+ };
106
+ }
107
+ }
108
+
109
+ /**
110
+ * @internal
111
+ */
112
+ export namespace MetadataObject {
113
+ export const intersects = (x: MetadataObject, y: MetadataObject): boolean =>
114
+ x.properties.some(
115
+ (prop) =>
116
+ y.properties.find(
117
+ (oppo) => prop.key.getName() === oppo.key.getName(),
118
+ ) !== undefined,
119
+ );
120
+
121
+ export const covers = (x: MetadataObject, y: MetadataObject): boolean =>
122
+ x.properties.length >= y.properties.length &&
123
+ x.properties.every(
124
+ (prop) =>
125
+ y.properties.find(
126
+ (oppo) => prop.key.getName() === oppo.key.getName(),
127
+ ) !== undefined,
128
+ );
129
+ }
@@ -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
+ }