typia 5.0.0-dev.20230823-2 → 5.0.0-dev.2023084

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 (148) hide show
  1. package/lib/factories/MetadataTagFactory.js +4 -2
  2. package/lib/factories/MetadataTagFactory.js.map +1 -1
  3. package/lib/factories/ProtobufFactory.js +2 -1
  4. package/lib/factories/ProtobufFactory.js.map +1 -1
  5. package/lib/factories/internal/metadata/emend_metadata_atomics.js +6 -6
  6. package/lib/factories/internal/metadata/emend_metadata_atomics.js.map +1 -1
  7. package/lib/factories/internal/metadata/iterate_metadata_atomic.js +1 -1
  8. package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -1
  9. package/lib/programmers/CheckerProgrammer.js +6 -6
  10. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  11. package/lib/programmers/RandomProgrammer.js +5 -5
  12. package/lib/programmers/RandomProgrammer.js.map +1 -1
  13. package/lib/programmers/helpers/AtomicPredicator.js +2 -2
  14. package/lib/programmers/helpers/AtomicPredicator.js.map +1 -1
  15. package/lib/programmers/helpers/ProtobufUtil.js +2 -2
  16. package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
  17. package/lib/programmers/internal/application_default_string.js +2 -2
  18. package/lib/programmers/internal/application_default_string.js.map +1 -1
  19. package/lib/programmers/internal/application_schema.js +5 -5
  20. package/lib/programmers/internal/application_schema.js.map +1 -1
  21. package/lib/programmers/internal/metadata_to_pattern.js +4 -4
  22. package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
  23. package/lib/programmers/internal/stringify_dynamic_properties.js +2 -1
  24. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  25. package/lib/programmers/json/JsonStringifyProgrammer.js +16 -10
  26. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  27. package/lib/programmers/misc/MiscLiteralsProgrammer.js +2 -2
  28. package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
  29. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +1 -1
  30. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  31. package/lib/schemas/metadata/IMetadata.d.ts +2 -2
  32. package/lib/schemas/metadata/IMetadataAtomic.d.ts +12 -0
  33. package/lib/schemas/metadata/IMetadataAtomic.js +3 -0
  34. package/lib/schemas/metadata/IMetadataAtomic.js.map +1 -0
  35. package/lib/schemas/metadata/Metadata.d.ts +2 -2
  36. package/lib/schemas/metadata/Metadata.js +49 -44
  37. package/lib/schemas/metadata/Metadata.js.map +1 -1
  38. package/lib/tags/ExclusiveMaximum.d.ts +8 -0
  39. package/lib/tags/ExclusiveMaximum.js +3 -0
  40. package/lib/tags/ExclusiveMaximum.js.map +1 -0
  41. package/lib/tags/ExclusiveMinimum.d.ts +8 -0
  42. package/lib/tags/ExclusiveMinimum.js +3 -0
  43. package/lib/tags/ExclusiveMinimum.js.map +1 -0
  44. package/lib/tags/Format.d.ts +8 -0
  45. package/lib/tags/Format.js +3 -0
  46. package/lib/tags/Format.js.map +1 -0
  47. package/lib/tags/MaxItems.d.ts +8 -0
  48. package/lib/tags/MaxItems.js +3 -0
  49. package/lib/tags/MaxItems.js.map +1 -0
  50. package/lib/tags/MaxLength.d.ts +8 -0
  51. package/lib/tags/MaxLength.js +3 -0
  52. package/lib/tags/MaxLength.js.map +1 -0
  53. package/lib/tags/Maximum.d.ts +8 -0
  54. package/lib/tags/Maximum.js +3 -0
  55. package/lib/tags/Maximum.js.map +1 -0
  56. package/lib/tags/MinItems.d.ts +8 -0
  57. package/lib/tags/MinItems.js +3 -0
  58. package/lib/tags/MinItems.js.map +1 -0
  59. package/lib/tags/MinLength.d.ts +8 -0
  60. package/lib/tags/MinLength.js +3 -0
  61. package/lib/tags/MinLength.js.map +1 -0
  62. package/lib/tags/Minimum.d.ts +8 -0
  63. package/lib/tags/Minimum.js +3 -0
  64. package/lib/tags/Minimum.js.map +1 -0
  65. package/lib/tags/MultipleOf.d.ts +8 -0
  66. package/lib/tags/MultipleOf.js +3 -0
  67. package/lib/tags/MultipleOf.js.map +1 -0
  68. package/lib/tags/Pattern.d.ts +8 -0
  69. package/lib/tags/Pattern.js +3 -0
  70. package/lib/tags/Pattern.js.map +1 -0
  71. package/lib/tags/TagBase.d.ts +10 -0
  72. package/lib/tags/TagBase.js +3 -0
  73. package/lib/tags/TagBase.js.map +1 -0
  74. package/lib/tags/Type.d.ts +13 -0
  75. package/lib/tags/Type.js +3 -0
  76. package/lib/tags/Type.js.map +1 -0
  77. package/lib/tags/index.d.ts +12 -0
  78. package/lib/tags/index.js +29 -0
  79. package/lib/tags/index.js.map +1 -0
  80. package/lib/transformers/features/json/JsonApplicationTransformer.js +1 -1
  81. package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
  82. package/package.json +1 -1
  83. package/src/Primitive.ts +135 -135
  84. package/src/Resolved.ts +116 -116
  85. package/src/factories/MetadataFactory.ts +46 -46
  86. package/src/factories/MetadataTagFactory.ts +366 -364
  87. package/src/factories/ProtobufFactory.ts +268 -266
  88. package/src/factories/internal/metadata/emend_metadata_atomics.ts +35 -33
  89. package/src/factories/internal/metadata/explore_metadata.ts +38 -38
  90. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +63 -59
  91. package/src/factories/internal/metadata/iterate_metadata_collection.ts +133 -133
  92. package/src/factories/internal/metadata/iterate_metadata_native.ts +210 -210
  93. package/src/factories/internal/metadata/iterate_metadata_resolve.ts +49 -49
  94. package/src/factories/internal/metadata/iterate_metadata_sort.ts +69 -69
  95. package/src/functional/$ProtobufWriter.ts +151 -151
  96. package/src/json.ts +648 -648
  97. package/src/misc.ts +651 -651
  98. package/src/module.ts +709 -709
  99. package/src/programmers/AssertProgrammer.ts +281 -281
  100. package/src/programmers/CheckerProgrammer.ts +1174 -1173
  101. package/src/programmers/IsProgrammer.ts +241 -241
  102. package/src/programmers/RandomProgrammer.ts +874 -874
  103. package/src/programmers/ValidateProgrammer.ts +307 -307
  104. package/src/programmers/helpers/AtomicPredicator.ts +31 -31
  105. package/src/programmers/helpers/FunctionImporeter.ts +91 -91
  106. package/src/programmers/helpers/ProtobufUtil.ts +29 -29
  107. package/src/programmers/helpers/StringifyPredicator.ts +12 -12
  108. package/src/programmers/helpers/disable_function_importer_declare.ts +32 -32
  109. package/src/programmers/internal/application_default_string.ts +37 -33
  110. package/src/programmers/internal/application_resolved.ts +55 -55
  111. package/src/programmers/internal/application_schema.ts +157 -157
  112. package/src/programmers/internal/metadata_to_pattern.ts +34 -34
  113. package/src/programmers/internal/stringify_dynamic_properties.ts +171 -171
  114. package/src/programmers/json/JsonStringifyProgrammer.ts +995 -989
  115. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +71 -71
  116. package/src/programmers/misc/MiscCloneProgrammer.ts +775 -775
  117. package/src/programmers/misc/MiscIsCloneProgrammer.ts +78 -78
  118. package/src/programmers/misc/MiscLiteralsProgrammer.ts +64 -64
  119. package/src/programmers/misc/MiscPruneProgrammer.ts +544 -544
  120. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +85 -85
  121. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +75 -75
  122. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +673 -673
  123. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +814 -814
  124. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +85 -85
  125. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +75 -75
  126. package/src/protobuf.ts +881 -881
  127. package/src/schemas/metadata/IMetadata.ts +27 -28
  128. package/src/schemas/metadata/IMetadataAtomic.ts +13 -0
  129. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  130. package/src/schemas/metadata/Metadata.ts +643 -634
  131. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  132. package/src/tags/ExclusiveMaximum.ts +8 -0
  133. package/src/tags/ExclusiveMinimum.ts +8 -0
  134. package/src/tags/Format.ts +29 -0
  135. package/src/tags/MaxItems.ts +8 -0
  136. package/src/tags/MaxLength.ts +8 -0
  137. package/src/tags/Maximum.ts +8 -0
  138. package/src/tags/MinItems.ts +8 -0
  139. package/src/tags/MinLength.ts +8 -0
  140. package/src/tags/Minimum.ts +8 -0
  141. package/src/tags/MultipleOf.ts +10 -0
  142. package/src/tags/Pattern.ts +8 -0
  143. package/src/tags/TagBase.ts +17 -0
  144. package/src/tags/Type.ts +30 -0
  145. package/src/tags/index.ts +12 -0
  146. package/src/transformers/features/json/JsonApplicationTransformer.ts +111 -111
  147. package/src/transformers/features/misc/MetadataTransformer.ts +53 -53
  148. package/src/utils/RandomGenerator.ts +83 -83
@@ -1,83 +1,83 @@
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 const boolean = () => Math.random() < 0.5;
13
-
14
- export const integer = (min?: number, max?: number) => {
15
- min ??= 0;
16
- max ??= 100;
17
- return Math.floor(Math.random() * (max - min + 1)) + min;
18
- };
19
-
20
- export const bigint = (min?: bigint, max?: bigint) => {
21
- min ??= BigInt(0);
22
- max ??= BigInt(100);
23
- return BigInt(integer(Number(min), Number(max)));
24
- };
25
-
26
- export const number = (min?: number, max?: number) => {
27
- min ??= 0;
28
- max ??= 100;
29
- return Math.random() * (max - min) + min;
30
- };
31
-
32
- export const string = (length?: number): string =>
33
- new Array(length ?? integer(5, 10))
34
- .fill(0)
35
- .map(() => ALPHABETS[integer(0, ALPHABETS.length - 1)])
36
- .join("");
37
-
38
- export const array = <T>(
39
- closure: (index: number) => T,
40
- count?: number,
41
- ): T[] =>
42
- new Array(count ?? length()).fill(0).map((_e, index) => closure(index));
43
-
44
- export const pick = <T>(array: T[]): T =>
45
- array[integer(0, array.length - 1)]!;
46
-
47
- export const length = () => integer(0, 3);
48
-
49
- /* -----------------------------------------------------------
50
- SECIAL FORMATS
51
- ----------------------------------------------------------- */
52
- export const uuid = () =>
53
- "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
54
- const r = (Math.random() * 16) | 0;
55
- const v = c === "x" ? r : (r & 0x3) | 0x8;
56
- return v.toString(16);
57
- });
58
-
59
- export const email = () => `${string(10)}@${string(10)}.${string(3)}`;
60
-
61
- export const url = () => `https://${string(10)}.${string(3)}`;
62
-
63
- export const ipv4 = () => array(() => integer(0, 255), 4).join(".");
64
-
65
- export const ipv6 = (): string =>
66
- array(() => integer(0, 65535).toString(16), 8).join(":");
67
-
68
- export const pattern = (regex: RegExp): string => new RandExp(regex).gen();
69
-
70
- export const date = (min?: number, max?: number) => {
71
- min ??= 0;
72
- max ??= Date.now() * 2;
73
- return new Date(number(min, max)).toISOString().substring(0, 10);
74
- };
75
-
76
- export const datetime = (min?: number, max?: number) => {
77
- min ??= Date.now() - 30 * DAY;
78
- max ??= Date.now() + 7 * DAY;
79
- return new Date(number(min, max)).toISOString();
80
- };
81
- }
82
-
83
- const DAY = 1000 * 60 * 60 * 24;
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 const boolean = () => Math.random() < 0.5;
13
+
14
+ export const integer = (min?: number, max?: number) => {
15
+ min ??= 0;
16
+ max ??= 100;
17
+ return Math.floor(Math.random() * (max - min + 1)) + min;
18
+ };
19
+
20
+ export const bigint = (min?: bigint, max?: bigint) => {
21
+ min ??= BigInt(0);
22
+ max ??= BigInt(100);
23
+ return BigInt(integer(Number(min), Number(max)));
24
+ };
25
+
26
+ export const number = (min?: number, max?: number) => {
27
+ min ??= 0;
28
+ max ??= 100;
29
+ return Math.random() * (max - min) + min;
30
+ };
31
+
32
+ export const string = (length?: number): string =>
33
+ new Array(length ?? integer(5, 10))
34
+ .fill(0)
35
+ .map(() => ALPHABETS[integer(0, ALPHABETS.length - 1)])
36
+ .join("");
37
+
38
+ export const array = <T>(
39
+ closure: (index: number) => T,
40
+ count?: number,
41
+ ): T[] =>
42
+ new Array(count ?? length()).fill(0).map((_e, index) => closure(index));
43
+
44
+ export const pick = <T>(array: T[]): T =>
45
+ array[integer(0, array.length - 1)]!;
46
+
47
+ export const length = () => integer(0, 3);
48
+
49
+ /* -----------------------------------------------------------
50
+ SECIAL FORMATS
51
+ ----------------------------------------------------------- */
52
+ export const uuid = () =>
53
+ "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
54
+ const r = (Math.random() * 16) | 0;
55
+ const v = c === "x" ? r : (r & 0x3) | 0x8;
56
+ return v.toString(16);
57
+ });
58
+
59
+ export const email = () => `${string(10)}@${string(10)}.${string(3)}`;
60
+
61
+ export const url = () => `https://${string(10)}.${string(3)}`;
62
+
63
+ export const ipv4 = () => array(() => integer(0, 255), 4).join(".");
64
+
65
+ export const ipv6 = (): string =>
66
+ array(() => integer(0, 65535).toString(16), 8).join(":");
67
+
68
+ export const pattern = (regex: RegExp): string => new RandExp(regex).gen();
69
+
70
+ export const date = (min?: number, max?: number) => {
71
+ min ??= 0;
72
+ max ??= Date.now() * 2;
73
+ return new Date(number(min, max)).toISOString().substring(0, 10);
74
+ };
75
+
76
+ export const datetime = (min?: number, max?: number) => {
77
+ min ??= Date.now() - 30 * DAY;
78
+ max ??= Date.now() + 7 * DAY;
79
+ return new Date(number(min, max)).toISOString();
80
+ };
81
+ }
82
+
83
+ const DAY = 1000 * 60 * 60 * 24;