typia 3.8.0-dev.20230413 → 3.8.0-dev.20230415

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 (222) hide show
  1. package/lib/metadata/Metadata.js +1 -1
  2. package/lib/metadata/Metadata.js.map +1 -1
  3. package/lib/programmers/CheckerProgrammer.js +1 -3
  4. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  5. package/lib/programmers/internal/check_string_tags.js +2 -2
  6. package/lib/programmers/internal/check_string_tags.js.map +1 -1
  7. package/lib/programmers/internal/check_template.js +1 -1
  8. package/lib/programmers/internal/check_template.js.map +1 -1
  9. package/package.json +2 -2
  10. package/src/CustomValidatorMap.ts +126 -126
  11. package/src/IRandomGenerator.ts +33 -33
  12. package/src/IValidation.ts +21 -21
  13. package/src/Primitive.ts +104 -104
  14. package/src/TypeGuardError.ts +36 -36
  15. package/src/executable/TypiaGenerateWizard.ts +85 -85
  16. package/src/executable/TypiaSetupWizard.ts +118 -118
  17. package/src/executable/setup/ArgumentParser.ts +45 -45
  18. package/src/executable/setup/CommandExecutor.ts +8 -8
  19. package/src/executable/setup/FileRetriever.ts +22 -22
  20. package/src/executable/setup/PackageManager.ts +71 -71
  21. package/src/executable/setup/PluginConfigurator.ts +59 -59
  22. package/src/executable/typia.ts +52 -52
  23. package/src/factories/CommentFactory.ts +10 -10
  24. package/src/factories/ExpressionFactory.ts +77 -77
  25. package/src/factories/IdentifierFactory.ts +59 -59
  26. package/src/factories/LiteralFactory.ts +44 -44
  27. package/src/factories/MetadataCollection.ts +122 -122
  28. package/src/factories/MetadataFactory.ts +51 -51
  29. package/src/factories/MetadataTagFactory.ts +302 -302
  30. package/src/factories/StatementFactory.ts +60 -60
  31. package/src/factories/TemplateFactory.ts +56 -56
  32. package/src/factories/TypeFactory.ts +129 -129
  33. package/src/factories/TypiaFileFactory.ts +120 -120
  34. package/src/factories/ValueFactory.ts +12 -12
  35. package/src/factories/internal/metadata/MetadataHelper.ts +12 -12
  36. package/src/factories/internal/metadata/emplace_metadata_object.ts +142 -142
  37. package/src/factories/internal/metadata/explore_metadata.ts +92 -92
  38. package/src/factories/internal/metadata/iterate_metadata.ts +80 -80
  39. package/src/factories/internal/metadata/iterate_metadata_array.ts +29 -29
  40. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +59 -59
  41. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
  42. package/src/factories/internal/metadata/iterate_metadata_constant.ts +58 -58
  43. package/src/factories/internal/metadata/iterate_metadata_map.ts +41 -41
  44. package/src/factories/internal/metadata/iterate_metadata_native.ts +222 -222
  45. package/src/factories/internal/metadata/iterate_metadata_object.ts +48 -48
  46. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +27 -27
  47. package/src/factories/internal/metadata/iterate_metadata_set.ts +33 -33
  48. package/src/factories/internal/metadata/iterate_metadata_template.ts +38 -38
  49. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +45 -45
  50. package/src/factories/internal/metadata/iterate_metadata_union.ts +59 -59
  51. package/src/functional/$any.ts +3 -3
  52. package/src/functional/$dictionary.ts +20 -20
  53. package/src/functional/$every.ts +11 -11
  54. package/src/functional/$guard.ts +35 -35
  55. package/src/functional/$is_between.ts +7 -7
  56. package/src/functional/$is_custom.ts +14 -14
  57. package/src/functional/$is_date.ts +4 -4
  58. package/src/functional/$is_datetime.ts +3 -3
  59. package/src/functional/$is_email.ts +5 -5
  60. package/src/functional/$is_ipv4.ts +5 -5
  61. package/src/functional/$is_ipv6.ts +5 -5
  62. package/src/functional/$is_url.ts +5 -5
  63. package/src/functional/$is_uuid.ts +5 -5
  64. package/src/functional/$join.ts +50 -50
  65. package/src/functional/$number.ts +12 -12
  66. package/src/functional/$report.ts +15 -15
  67. package/src/functional/$rest.ts +3 -3
  68. package/src/functional/$string.ts +37 -37
  69. package/src/functional/$tail.ts +6 -6
  70. package/src/functional/Namespace.ts +127 -127
  71. package/src/index.ts +4 -4
  72. package/src/metadata/ICommentTag.ts +4 -4
  73. package/src/metadata/IJsDocTagInfo.ts +10 -10
  74. package/src/metadata/IMetadata.ts +25 -25
  75. package/src/metadata/IMetadataApplication.ts +7 -7
  76. package/src/metadata/IMetadataConstant.ts +16 -16
  77. package/src/metadata/IMetadataEntry.ts +6 -6
  78. package/src/metadata/IMetadataObject.ts +29 -29
  79. package/src/metadata/IMetadataProperty.ts +11 -11
  80. package/src/metadata/IMetadataTag.ts +105 -105
  81. package/src/metadata/Metadata.ts +533 -534
  82. package/src/metadata/MetadataConstant.ts +3 -3
  83. package/src/metadata/MetadataObject.ts +131 -131
  84. package/src/metadata/MetadataProperty.ts +64 -64
  85. package/src/module.ts +2043 -2043
  86. package/src/programmers/ApplicationProgrammer.ts +55 -55
  87. package/src/programmers/AssertCloneProgrammer.ts +70 -70
  88. package/src/programmers/AssertParseProgrammer.ts +65 -65
  89. package/src/programmers/AssertProgrammer.ts +284 -284
  90. package/src/programmers/AssertPruneProgrammer.ts +67 -67
  91. package/src/programmers/AssertStringifyProgrammer.ts +71 -71
  92. package/src/programmers/CheckerProgrammer.ts +920 -922
  93. package/src/programmers/CloneProgrammer.ts +388 -388
  94. package/src/programmers/FeatureProgrammer.ts +512 -512
  95. package/src/programmers/IsCloneProgrammer.ts +80 -80
  96. package/src/programmers/IsParseProgrammer.ts +74 -74
  97. package/src/programmers/IsProgrammer.ts +206 -206
  98. package/src/programmers/IsPruneProgrammer.ts +75 -75
  99. package/src/programmers/IsStringifyProgrammer.ts +81 -81
  100. package/src/programmers/LiteralsProgrammer.ts +65 -65
  101. package/src/programmers/PruneProgrammer.ts +343 -343
  102. package/src/programmers/RandomProgrammer.ts +413 -413
  103. package/src/programmers/StringifyProgrammer.ts +801 -801
  104. package/src/programmers/ValidateCloneProgrammer.ts +90 -90
  105. package/src/programmers/ValidateParseProgrammer.ts +69 -69
  106. package/src/programmers/ValidateProgrammer.ts +317 -317
  107. package/src/programmers/ValidatePruneProgrammer.ts +83 -83
  108. package/src/programmers/ValidateStringifyProgrammer.ts +89 -89
  109. package/src/programmers/helpers/AtomicPredicator.ts +31 -31
  110. package/src/programmers/helpers/CloneJoiner.ts +134 -134
  111. package/src/programmers/helpers/FunctionImporeter.ts +55 -55
  112. package/src/programmers/helpers/ICheckEntry.ts +12 -12
  113. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  114. package/src/programmers/helpers/OptionPredicator.ts +19 -19
  115. package/src/programmers/helpers/PruneJoiner.ts +52 -52
  116. package/src/programmers/helpers/RandomJoiner.ts +161 -161
  117. package/src/programmers/helpers/RandomRanger.ts +216 -216
  118. package/src/programmers/helpers/StringifyJoinder.ts +114 -114
  119. package/src/programmers/helpers/StringifyPredicator.ts +18 -18
  120. package/src/programmers/helpers/UnionExplorer.ts +281 -281
  121. package/src/programmers/helpers/UnionPredicator.ts +81 -81
  122. package/src/programmers/internal/application_array.ts +37 -37
  123. package/src/programmers/internal/application_boolean.ts +17 -17
  124. package/src/programmers/internal/application_constant.ts +29 -29
  125. package/src/programmers/internal/application_default.ts +17 -17
  126. package/src/programmers/internal/application_default_string.ts +32 -32
  127. package/src/programmers/internal/application_native.ts +32 -32
  128. package/src/programmers/internal/application_number.ts +73 -73
  129. package/src/programmers/internal/application_object.ts +153 -153
  130. package/src/programmers/internal/application_schema.ts +184 -184
  131. package/src/programmers/internal/application_string.ts +45 -45
  132. package/src/programmers/internal/application_templates.ts +27 -27
  133. package/src/programmers/internal/application_tuple.ts +29 -29
  134. package/src/programmers/internal/check_array.ts +30 -30
  135. package/src/programmers/internal/check_array_length.ts +35 -35
  136. package/src/programmers/internal/check_bigint.ts +82 -82
  137. package/src/programmers/internal/check_custom.ts +33 -33
  138. package/src/programmers/internal/check_dynamic_properties.ts +197 -197
  139. package/src/programmers/internal/check_everything.ts +28 -28
  140. package/src/programmers/internal/check_native.ts +21 -21
  141. package/src/programmers/internal/check_number.ts +177 -177
  142. package/src/programmers/internal/check_object.ts +55 -55
  143. package/src/programmers/internal/check_string.ts +25 -25
  144. package/src/programmers/internal/check_string_tags.ts +67 -73
  145. package/src/programmers/internal/check_template.ts +56 -59
  146. package/src/programmers/internal/check_union_array_like.ts +272 -272
  147. package/src/programmers/internal/check_union_tuple.ts +35 -35
  148. package/src/programmers/internal/decode_union_object.ts +73 -73
  149. package/src/programmers/internal/feature_object_entries.ts +63 -63
  150. package/src/programmers/internal/get_comment_tags.ts +23 -23
  151. package/src/programmers/internal/metadata_to_pattern.ts +34 -34
  152. package/src/programmers/internal/prune_object_properties.ts +60 -60
  153. package/src/programmers/internal/random_custom.ts +30 -30
  154. package/src/programmers/internal/stringify_dynamic_properties.ts +168 -168
  155. package/src/programmers/internal/stringify_native.ts +8 -8
  156. package/src/programmers/internal/stringify_regular_properties.ts +84 -84
  157. package/src/programmers/internal/template_to_pattern.ts +15 -15
  158. package/src/schemas/IJsonApplication.ts +9 -9
  159. package/src/schemas/IJsonComponents.ts +26 -26
  160. package/src/schemas/IJsonSchema.ts +121 -121
  161. package/src/transform.ts +21 -21
  162. package/src/transformers/CallExpressionTransformer.ts +174 -174
  163. package/src/transformers/ExpressionWithArgumentTransformer.ts +66 -66
  164. package/src/transformers/FileTransformer.ts +49 -49
  165. package/src/transformers/IProject.ts +11 -11
  166. package/src/transformers/ITransformOptions.ts +62 -62
  167. package/src/transformers/ImportTransformer.ts +66 -66
  168. package/src/transformers/NodeTransformer.ts +19 -19
  169. package/src/transformers/features/miscellaneous/ApplicationTransformer.ts +119 -119
  170. package/src/transformers/features/miscellaneous/AssertCloneTransformer.ts +9 -9
  171. package/src/transformers/features/miscellaneous/AssertPruneTransformer.ts +9 -9
  172. package/src/transformers/features/miscellaneous/CloneTransformer.ts +9 -9
  173. package/src/transformers/features/miscellaneous/CreateAssertCloneTransformer.ts +9 -9
  174. package/src/transformers/features/miscellaneous/CreateAssertPruneTransformer.ts +9 -9
  175. package/src/transformers/features/miscellaneous/CreateCloneTransformer.ts +9 -9
  176. package/src/transformers/features/miscellaneous/CreateIsCloneTransformer.ts +9 -9
  177. package/src/transformers/features/miscellaneous/CreateIsPruneTransformer.ts +9 -9
  178. package/src/transformers/features/miscellaneous/CreatePruneTransformer.ts +9 -9
  179. package/src/transformers/features/miscellaneous/CreateRandomTransformer.ts +41 -41
  180. package/src/transformers/features/miscellaneous/CreateValidateCloneTransformer.ts +9 -9
  181. package/src/transformers/features/miscellaneous/CreateValidatePruneTransformer.ts +9 -9
  182. package/src/transformers/features/miscellaneous/IsCloneTransformer.ts +9 -9
  183. package/src/transformers/features/miscellaneous/IsPruneTransformer.ts +9 -9
  184. package/src/transformers/features/miscellaneous/LiteralsTransformer.ts +30 -30
  185. package/src/transformers/features/miscellaneous/MetadataTransformer.ts +54 -54
  186. package/src/transformers/features/miscellaneous/PruneTransformer.ts +9 -9
  187. package/src/transformers/features/miscellaneous/RandomTransformer.ts +46 -46
  188. package/src/transformers/features/miscellaneous/ValidateCloneTransformer.ts +9 -9
  189. package/src/transformers/features/miscellaneous/ValidatePruneTransformer.ts +9 -9
  190. package/src/transformers/features/parsers/AssertParseTransformer.ts +9 -9
  191. package/src/transformers/features/parsers/CreateAssertParseTransformer.ts +9 -9
  192. package/src/transformers/features/parsers/CreateIsParseTransformer.ts +9 -9
  193. package/src/transformers/features/parsers/CreateValidateParseTransformer.ts +9 -9
  194. package/src/transformers/features/parsers/IsParseTransformer.ts +9 -9
  195. package/src/transformers/features/parsers/ValidateParseTransformer.ts +9 -9
  196. package/src/transformers/features/stringifiers/AssertStringifyTransformer.ts +10 -10
  197. package/src/transformers/features/stringifiers/CreateAssertStringifyTransformer.ts +9 -9
  198. package/src/transformers/features/stringifiers/CreateIsStringifyTransformer.ts +9 -9
  199. package/src/transformers/features/stringifiers/CreateStringifyTransformer.ts +9 -9
  200. package/src/transformers/features/stringifiers/CreateValidateStringifyProgrammer.ts +11 -11
  201. package/src/transformers/features/stringifiers/IsStringifyTransformer.ts +9 -9
  202. package/src/transformers/features/stringifiers/StringifyTransformer.ts +9 -9
  203. package/src/transformers/features/stringifiers/ValidateStringifyTransformer.ts +10 -10
  204. package/src/transformers/features/validators/AssertTransformer.ts +11 -11
  205. package/src/transformers/features/validators/CreateAssertTransformer.ts +12 -12
  206. package/src/transformers/features/validators/CreateIsTransformer.ts +10 -10
  207. package/src/transformers/features/validators/CreateValidateTransformer.ts +12 -12
  208. package/src/transformers/features/validators/IsTransformer.ts +10 -10
  209. package/src/transformers/features/validators/ValidateTransformer.ts +11 -11
  210. package/src/transformers/internal/GenericTransformer.ts +99 -99
  211. package/src/typings/Atomic.ts +17 -17
  212. package/src/typings/ClassProperties.ts +5 -5
  213. package/src/typings/Customizable.ts +5 -5
  214. package/src/typings/OmitNever.ts +3 -3
  215. package/src/typings/SpecialFields.ts +3 -3
  216. package/src/typings/Writable.ts +11 -11
  217. package/src/utils/ArrayUtil.ts +49 -49
  218. package/src/utils/Escaper.ts +50 -50
  219. package/src/utils/MapUtil.ts +14 -14
  220. package/src/utils/PatternUtil.ts +30 -30
  221. package/src/utils/RandomGenerator.ts +96 -96
  222. package/src/utils/Singleton.ts +17 -17
@@ -1,96 +1,96 @@
1
- import RandExp from "randexp";
2
-
3
- /**
4
- * @internal
5
- */
6
- export namespace RandomGenerator {
7
- const ALPHABETS = "abcdefghijklmnopqrstuvwxyz";
8
-
9
- /* -----------------------------------------------------------
10
- REGULAR
11
- ----------------------------------------------------------- */
12
- export function boolean(): boolean {
13
- return Math.random() < 0.5;
14
- }
15
-
16
- export function integer(min?: number, max?: number): number {
17
- min ??= 0;
18
- max ??= 100;
19
- return Math.floor(Math.random() * (max - min + 1)) + min;
20
- }
21
-
22
- export function bigint(min?: bigint, max?: bigint): bigint {
23
- min ??= BigInt(0);
24
- max ??= BigInt(100);
25
- return BigInt(integer(Number(min), Number(max)));
26
- }
27
-
28
- export function number(min?: number, max?: number): number {
29
- min ??= 0;
30
- max ??= 100;
31
- return Math.random() * (max - min) + min;
32
- }
33
-
34
- export function string(length?: number): string {
35
- return new Array(length ?? integer(5, 10))
36
- .fill(0)
37
- .map(() => ALPHABETS[integer(0, ALPHABETS.length - 1)])
38
- .join("");
39
- }
40
-
41
- export function array<T>(
42
- closure: (index: number) => T,
43
- count?: number,
44
- ): T[] {
45
- return new Array(count ?? integer(0, 3))
46
- .fill(0)
47
- .map((_e, index) => closure(index));
48
- }
49
-
50
- export function pick<T>(array: T[]): T {
51
- return array[integer(0, array.length - 1)]!;
52
- }
53
-
54
- /* -----------------------------------------------------------
55
- SECIAL FORMATS
56
- ----------------------------------------------------------- */
57
- export function uuid(): string {
58
- return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
59
- const r = (Math.random() * 16) | 0;
60
- const v = c === "x" ? r : (r & 0x3) | 0x8;
61
- return v.toString(16);
62
- });
63
- }
64
-
65
- export function email(): string {
66
- return `${string(10)}@${string(10)}.${string(3)}`;
67
- }
68
-
69
- export function url(): string {
70
- return `https://${string(10)}.${string(3)}`;
71
- }
72
-
73
- export function ipv4(): string {
74
- return array(() => integer(0, 255), 4).join(".");
75
- }
76
-
77
- export function ipv6(): string {
78
- return array(() => integer(0, 65535).toString(16), 8).join(":");
79
- }
80
-
81
- export function pattern(regex: RegExp): string {
82
- return new RandExp(regex).gen();
83
- }
84
-
85
- export function date(min?: number, max?: number): string {
86
- min ??= 0;
87
- max ??= Date.now() * 2;
88
- return new Date(number(min, max)).toISOString().substring(0, 10);
89
- }
90
-
91
- export function datetime(min?: number, max?: number): string {
92
- min ??= 0;
93
- max ??= Date.now() * 2;
94
- return new Date(number(min, max)).toISOString();
95
- }
96
- }
1
+ import RandExp from "randexp";
2
+
3
+ /**
4
+ * @internal
5
+ */
6
+ export namespace RandomGenerator {
7
+ const ALPHABETS = "abcdefghijklmnopqrstuvwxyz";
8
+
9
+ /* -----------------------------------------------------------
10
+ REGULAR
11
+ ----------------------------------------------------------- */
12
+ export function boolean(): boolean {
13
+ return Math.random() < 0.5;
14
+ }
15
+
16
+ export function integer(min?: number, max?: number): number {
17
+ min ??= 0;
18
+ max ??= 100;
19
+ return Math.floor(Math.random() * (max - min + 1)) + min;
20
+ }
21
+
22
+ export function bigint(min?: bigint, max?: bigint): bigint {
23
+ min ??= BigInt(0);
24
+ max ??= BigInt(100);
25
+ return BigInt(integer(Number(min), Number(max)));
26
+ }
27
+
28
+ export function number(min?: number, max?: number): number {
29
+ min ??= 0;
30
+ max ??= 100;
31
+ return Math.random() * (max - min) + min;
32
+ }
33
+
34
+ export function string(length?: number): string {
35
+ return new Array(length ?? integer(5, 10))
36
+ .fill(0)
37
+ .map(() => ALPHABETS[integer(0, ALPHABETS.length - 1)])
38
+ .join("");
39
+ }
40
+
41
+ export function array<T>(
42
+ closure: (index: number) => T,
43
+ count?: number,
44
+ ): T[] {
45
+ return new Array(count ?? integer(0, 3))
46
+ .fill(0)
47
+ .map((_e, index) => closure(index));
48
+ }
49
+
50
+ export function pick<T>(array: T[]): T {
51
+ return array[integer(0, array.length - 1)]!;
52
+ }
53
+
54
+ /* -----------------------------------------------------------
55
+ SECIAL FORMATS
56
+ ----------------------------------------------------------- */
57
+ export function uuid(): string {
58
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
59
+ const r = (Math.random() * 16) | 0;
60
+ const v = c === "x" ? r : (r & 0x3) | 0x8;
61
+ return v.toString(16);
62
+ });
63
+ }
64
+
65
+ export function email(): string {
66
+ return `${string(10)}@${string(10)}.${string(3)}`;
67
+ }
68
+
69
+ export function url(): string {
70
+ return `https://${string(10)}.${string(3)}`;
71
+ }
72
+
73
+ export function ipv4(): string {
74
+ return array(() => integer(0, 255), 4).join(".");
75
+ }
76
+
77
+ export function ipv6(): string {
78
+ return array(() => integer(0, 65535).toString(16), 8).join(":");
79
+ }
80
+
81
+ export function pattern(regex: RegExp): string {
82
+ return new RandExp(regex).gen();
83
+ }
84
+
85
+ export function date(min?: number, max?: number): string {
86
+ min ??= 0;
87
+ max ??= Date.now() * 2;
88
+ return new Date(number(min, max)).toISOString().substring(0, 10);
89
+ }
90
+
91
+ export function datetime(min?: number, max?: number): string {
92
+ min ??= 0;
93
+ max ??= Date.now() * 2;
94
+ return new Date(number(min, max)).toISOString();
95
+ }
96
+ }
@@ -1,17 +1,17 @@
1
- export class Singleton<T, Args extends any[] = []> {
2
- private readonly closure_: (...args: Args) => T;
3
- private value_: T | object;
4
-
5
- public constructor(closure: (...args: Args) => T) {
6
- this.closure_ = closure;
7
- this.value_ = NOT_MOUNTED_YET;
8
- }
9
-
10
- public get(...args: Args): T {
11
- if (this.value_ === NOT_MOUNTED_YET)
12
- this.value_ = this.closure_(...args);
13
- return this.value_ as T;
14
- }
15
- }
16
-
17
- const NOT_MOUNTED_YET = {};
1
+ export class Singleton<T, Args extends any[] = []> {
2
+ private readonly closure_: (...args: Args) => T;
3
+ private value_: T | object;
4
+
5
+ public constructor(closure: (...args: Args) => T) {
6
+ this.closure_ = closure;
7
+ this.value_ = NOT_MOUNTED_YET;
8
+ }
9
+
10
+ public get(...args: Args): T {
11
+ if (this.value_ === NOT_MOUNTED_YET)
12
+ this.value_ = this.closure_(...args);
13
+ return this.value_ as T;
14
+ }
15
+ }
16
+
17
+ const NOT_MOUNTED_YET = {};