typia 5.2.6 → 5.2.7-dev.20231109

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 (125) hide show
  1. package/lib/factories/ExpressionFactory.js +14 -16
  2. package/lib/factories/ExpressionFactory.js.map +1 -1
  3. package/lib/factories/JsonMetadataFactory.d.ts +1 -1
  4. package/lib/factories/JsonMetadataFactory.js +2 -2
  5. package/lib/factories/JsonMetadataFactory.js.map +1 -1
  6. package/lib/factories/LiteralFactory.js +2 -0
  7. package/lib/factories/LiteralFactory.js.map +1 -1
  8. package/lib/factories/MetadataFactory.d.ts +1 -1
  9. package/lib/factories/MetadataFactory.js +233 -168
  10. package/lib/factories/MetadataFactory.js.map +1 -1
  11. package/lib/factories/NumericRangeFactory.d.ts +2 -2
  12. package/lib/factories/NumericRangeFactory.js +41 -21
  13. package/lib/factories/NumericRangeFactory.js.map +1 -1
  14. package/lib/factories/ProtobufFactory.d.ts +1 -1
  15. package/lib/factories/ProtobufFactory.js +2 -2
  16. package/lib/factories/ProtobufFactory.js.map +1 -1
  17. package/lib/programmers/CheckerProgrammer.js +11 -16
  18. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  19. package/lib/programmers/RandomProgrammer.js +1 -1
  20. package/lib/programmers/RandomProgrammer.js.map +1 -1
  21. package/lib/programmers/http/HttpHeadersProgrammer.js +1 -1
  22. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  23. package/lib/programmers/http/HttpParameterProgrammer.js +1 -1
  24. package/lib/programmers/http/HttpParameterProgrammer.js.map +1 -1
  25. package/lib/programmers/http/HttpQueryProgrammer.js +1 -1
  26. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  27. package/lib/programmers/internal/application_array.js +8 -0
  28. package/lib/programmers/internal/application_array.js.map +1 -1
  29. package/lib/programmers/internal/application_number.js +8 -1
  30. package/lib/programmers/internal/application_number.js.map +1 -1
  31. package/lib/programmers/internal/application_string.js +8 -1
  32. package/lib/programmers/internal/application_string.js.map +1 -1
  33. package/lib/programmers/internal/check_array_length.js +7 -4
  34. package/lib/programmers/internal/check_array_length.js.map +1 -1
  35. package/lib/programmers/internal/check_bigint.js +7 -4
  36. package/lib/programmers/internal/check_bigint.js.map +1 -1
  37. package/lib/programmers/internal/check_number.js +7 -4
  38. package/lib/programmers/internal/check_number.js.map +1 -1
  39. package/lib/programmers/internal/check_string.js.map +1 -1
  40. package/lib/programmers/json/JsonAssertParseProgrammer.js +1 -1
  41. package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
  42. package/lib/programmers/json/JsonIsParseProgrammer.js +1 -1
  43. package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
  44. package/lib/programmers/json/JsonStringifyProgrammer.js +3 -8
  45. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  46. package/lib/programmers/json/JsonValidateParseProgrammer.js +1 -1
  47. package/lib/programmers/json/JsonValidateParseProgrammer.js.map +1 -1
  48. package/lib/programmers/misc/MiscCloneProgrammer.js +19 -24
  49. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  50. package/lib/programmers/misc/MiscLiteralsProgrammer.js +1 -1
  51. package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
  52. package/lib/programmers/misc/MiscPruneProgrammer.js +11 -16
  53. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  54. package/lib/programmers/notations/NotationGeneralProgrammer.js +11 -16
  55. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  56. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +1 -1
  57. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  58. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +38 -42
  59. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  60. package/lib/programmers/protobuf/ProtobufMessageProgrammer.d.ts +1 -1
  61. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +22 -25
  62. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  63. package/lib/schemas/json/IJsonSchema.d.ts +1 -0
  64. package/lib/schemas/metadata/Metadata.js +1 -6
  65. package/lib/schemas/metadata/Metadata.js.map +1 -1
  66. package/lib/schemas/metadata/MetadataAtomic.d.ts +2 -0
  67. package/lib/schemas/metadata/MetadataAtomic.js +15 -0
  68. package/lib/schemas/metadata/MetadataAtomic.js.map +1 -1
  69. package/lib/transformers/features/json/JsonApplicationTransformer.d.ts +1 -1
  70. package/lib/transformers/features/json/JsonApplicationTransformer.js +4 -5
  71. package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
  72. package/lib/transformers/features/misc/MetadataTransformer.d.ts +1 -1
  73. package/lib/transformers/features/misc/MetadataTransformer.js +3 -4
  74. package/lib/transformers/features/misc/MetadataTransformer.js.map +1 -1
  75. package/package.json +2 -2
  76. package/src/Primitive.ts +135 -135
  77. package/src/executable/TypiaSetupWizard.ts +142 -142
  78. package/src/executable/setup/CommandExecutor.ts +8 -8
  79. package/src/factories/ExpressionFactory.ts +12 -13
  80. package/src/factories/JsonMetadataFactory.ts +53 -50
  81. package/src/factories/LiteralFactory.ts +2 -0
  82. package/src/factories/MetadataCollection.ts +282 -282
  83. package/src/factories/MetadataFactory.ts +48 -18
  84. package/src/factories/NumericRangeFactory.ts +56 -17
  85. package/src/factories/ProtobufFactory.ts +5 -2
  86. package/src/factories/internal/metadata/emplace_metadata_object.ts +178 -178
  87. package/src/functional/$stoll.ts +8 -8
  88. package/src/functional/Namespace.ts +168 -168
  89. package/src/programmers/AssertProgrammer.ts +322 -322
  90. package/src/programmers/CheckerProgrammer.ts +16 -17
  91. package/src/programmers/IsProgrammer.ts +258 -258
  92. package/src/programmers/RandomProgrammer.ts +4 -1
  93. package/src/programmers/ValidateProgrammer.ts +350 -350
  94. package/src/programmers/helpers/AtomicPredicator.ts +31 -31
  95. package/src/programmers/http/HttpHeadersProgrammer.ts +4 -1
  96. package/src/programmers/http/HttpParameterProgrammer.ts +4 -1
  97. package/src/programmers/http/HttpQueryProgrammer.ts +4 -1
  98. package/src/programmers/internal/application_array.ts +8 -0
  99. package/src/programmers/internal/application_number.ts +8 -1
  100. package/src/programmers/internal/application_string.ts +8 -1
  101. package/src/programmers/internal/check_array_length.ts +5 -2
  102. package/src/programmers/internal/check_bigint.ts +5 -2
  103. package/src/programmers/internal/check_dynamic_key.ts +178 -178
  104. package/src/programmers/internal/check_dynamic_properties.ts +202 -202
  105. package/src/programmers/internal/check_number.ts +5 -2
  106. package/src/programmers/internal/check_object.ts +62 -62
  107. package/src/programmers/internal/check_string.ts +0 -1
  108. package/src/programmers/json/JsonAssertParseProgrammer.ts +1 -0
  109. package/src/programmers/json/JsonIsParseProgrammer.ts +1 -0
  110. package/src/programmers/json/JsonStringifyProgrammer.ts +959 -960
  111. package/src/programmers/json/JsonValidateParseProgrammer.ts +1 -0
  112. package/src/programmers/misc/MiscCloneProgrammer.ts +787 -786
  113. package/src/programmers/misc/MiscLiteralsProgrammer.ts +4 -1
  114. package/src/programmers/misc/MiscPruneProgrammer.ts +549 -548
  115. package/src/programmers/notations/NotationGeneralProgrammer.ts +717 -716
  116. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +1 -0
  117. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +872 -882
  118. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +21 -21
  119. package/src/schemas/json/IJsonSchema.ts +1 -0
  120. package/src/schemas/metadata/IMetadataTypeTag.ts +7 -0
  121. package/src/schemas/metadata/Metadata.ts +1 -6
  122. package/src/schemas/metadata/MetadataAtomic.ts +17 -0
  123. package/src/transform.ts +35 -35
  124. package/src/transformers/features/json/JsonApplicationTransformer.ts +7 -4
  125. package/src/transformers/features/misc/MetadataTransformer.ts +6 -3
@@ -1,168 +1,168 @@
1
- import { NamingConvention } from "../utils/NamingConvention";
2
- import { RandomGenerator } from "../utils/RandomGenerator";
3
-
4
- import { IValidation } from "../IValidation";
5
- import { TypeGuardError } from "../TypeGuardError";
6
- import { $HeadersReader } from "./$HeadersReader";
7
- import { $ParameterReader } from "./$ParameterReader";
8
- import { $ProtobufReader } from "./$ProtobufReader";
9
- import { $ProtobufSizer } from "./$ProtobufSizer";
10
- import { $ProtobufWriter } from "./$ProtobufWriter";
11
- import { $QueryReader } from "./$QueryReader";
12
- import { $any } from "./$any";
13
- import { $convention } from "./$convention";
14
- import { $every } from "./$every";
15
- import { $guard } from "./$guard";
16
- import { $is_between } from "./$is_between";
17
- import { $join } from "./$join";
18
- import { $number } from "./$number";
19
- import { $report } from "./$report";
20
- import { $rest } from "./$rest";
21
- import { $is_bigint_string } from "./$stoll";
22
- import { $string } from "./$string";
23
- import { $strlen } from "./$strlen";
24
- import { $tail } from "./$tail";
25
-
26
- /**
27
- * @internal
28
- */
29
- export namespace Namespace {
30
- export const is = () => ({
31
- is_between: $is_between,
32
- is_bigint_string: $is_bigint_string,
33
- });
34
-
35
- export const assert = (method: string) => ({
36
- ...is(),
37
- join: $join,
38
- every: $every,
39
- guard: $guard(`typia.${method}`),
40
- predicate: (
41
- matched: boolean,
42
- exceptionable: boolean,
43
- closure: () => Omit<TypeGuardError.IProps, "method">,
44
- ): boolean => {
45
- if (matched === false && exceptionable === true)
46
- throw new TypeGuardError({
47
- ...closure(),
48
- method: `typia.${method}`,
49
- });
50
- return matched;
51
- },
52
- });
53
-
54
- export const validate = () => ({
55
- ...is(),
56
- join: $join,
57
- report: $report,
58
- predicate:
59
- (res: IValidation) =>
60
- (
61
- matched: boolean,
62
- exceptionable: boolean,
63
- closure: () => IValidation.IError,
64
- ) => {
65
- // CHECK FAILURE
66
- if (matched === false && exceptionable === true)
67
- (() => {
68
- res.success &&= false;
69
- const errorList = (res as IValidation.IFailure).errors;
70
-
71
- // TRACE ERROR
72
- const error = closure();
73
- if (errorList.length) {
74
- const last = errorList[errorList.length - 1]!.path;
75
- if (
76
- last.length >= error.path.length &&
77
- last.substring(0, error.path.length) ===
78
- error.path
79
- )
80
- return;
81
- }
82
- errorList.push(error);
83
- return;
84
- })();
85
- return matched;
86
- },
87
- });
88
-
89
- export namespace json {
90
- export const stringify = (method: string) => ({
91
- ...is(),
92
- number: $number,
93
- string: $string,
94
- tail: $tail,
95
- rest: $rest,
96
- throws: $throws(`json.${method}`),
97
- });
98
- }
99
-
100
- export namespace protobuf {
101
- export const decode = (method: string) => ({
102
- ...is(),
103
- Reader: $ProtobufReader,
104
- throws: $throws(`protobuf.${method}`),
105
- });
106
-
107
- export const encode = (method: string) => ({
108
- ...is(),
109
- Sizer: $ProtobufSizer,
110
- Writer: $ProtobufWriter,
111
- strlen: $strlen,
112
- throws: $throws(method),
113
- });
114
- }
115
-
116
- export namespace http {
117
- export const query = () => $QueryReader;
118
- export const headers = () => $HeadersReader;
119
- export const parameter = () => $ParameterReader;
120
- }
121
-
122
- export namespace misc {
123
- export const clone = (method: string) => ({
124
- ...is(),
125
- throws: $throws(`misc.${method}`),
126
- any: $any,
127
- });
128
-
129
- export const prune = (method: string) => ({
130
- ...is(),
131
- throws: $throws(`misc.${method}`),
132
- });
133
- }
134
-
135
- export namespace notations {
136
- export const camel = (method: string) => ({
137
- ...base(method),
138
- any: $convention(NamingConvention.camel),
139
- });
140
- export const pascal = (method: string) => ({
141
- ...base(method),
142
- any: $convention(NamingConvention.pascal),
143
- });
144
- export const snake = (method: string) => ({
145
- ...base(method),
146
- any: $convention(NamingConvention.snake),
147
- });
148
-
149
- const base = (method: string) => ({
150
- ...is(),
151
- throws: $throws(`notations.${method}`),
152
- });
153
- }
154
-
155
- export const random = () => ({
156
- generator: RandomGenerator,
157
- pick: RandomGenerator.pick,
158
- });
159
-
160
- const $throws =
161
- (method: string) =>
162
- (props: Pick<TypeGuardError.IProps, "expected" | "value">) => {
163
- throw new TypeGuardError({
164
- ...props,
165
- method: `typia.${method}`,
166
- });
167
- };
168
- }
1
+ import { NamingConvention } from "../utils/NamingConvention";
2
+ import { RandomGenerator } from "../utils/RandomGenerator";
3
+
4
+ import { IValidation } from "../IValidation";
5
+ import { TypeGuardError } from "../TypeGuardError";
6
+ import { $HeadersReader } from "./$HeadersReader";
7
+ import { $ParameterReader } from "./$ParameterReader";
8
+ import { $ProtobufReader } from "./$ProtobufReader";
9
+ import { $ProtobufSizer } from "./$ProtobufSizer";
10
+ import { $ProtobufWriter } from "./$ProtobufWriter";
11
+ import { $QueryReader } from "./$QueryReader";
12
+ import { $any } from "./$any";
13
+ import { $convention } from "./$convention";
14
+ import { $every } from "./$every";
15
+ import { $guard } from "./$guard";
16
+ import { $is_between } from "./$is_between";
17
+ import { $join } from "./$join";
18
+ import { $number } from "./$number";
19
+ import { $report } from "./$report";
20
+ import { $rest } from "./$rest";
21
+ import { $is_bigint_string } from "./$stoll";
22
+ import { $string } from "./$string";
23
+ import { $strlen } from "./$strlen";
24
+ import { $tail } from "./$tail";
25
+
26
+ /**
27
+ * @internal
28
+ */
29
+ export namespace Namespace {
30
+ export const is = () => ({
31
+ is_between: $is_between,
32
+ is_bigint_string: $is_bigint_string,
33
+ });
34
+
35
+ export const assert = (method: string) => ({
36
+ ...is(),
37
+ join: $join,
38
+ every: $every,
39
+ guard: $guard(`typia.${method}`),
40
+ predicate: (
41
+ matched: boolean,
42
+ exceptionable: boolean,
43
+ closure: () => Omit<TypeGuardError.IProps, "method">,
44
+ ): boolean => {
45
+ if (matched === false && exceptionable === true)
46
+ throw new TypeGuardError({
47
+ ...closure(),
48
+ method: `typia.${method}`,
49
+ });
50
+ return matched;
51
+ },
52
+ });
53
+
54
+ export const validate = () => ({
55
+ ...is(),
56
+ join: $join,
57
+ report: $report,
58
+ predicate:
59
+ (res: IValidation) =>
60
+ (
61
+ matched: boolean,
62
+ exceptionable: boolean,
63
+ closure: () => IValidation.IError,
64
+ ) => {
65
+ // CHECK FAILURE
66
+ if (matched === false && exceptionable === true)
67
+ (() => {
68
+ res.success &&= false;
69
+ const errorList = (res as IValidation.IFailure).errors;
70
+
71
+ // TRACE ERROR
72
+ const error = closure();
73
+ if (errorList.length) {
74
+ const last = errorList[errorList.length - 1]!.path;
75
+ if (
76
+ last.length >= error.path.length &&
77
+ last.substring(0, error.path.length) ===
78
+ error.path
79
+ )
80
+ return;
81
+ }
82
+ errorList.push(error);
83
+ return;
84
+ })();
85
+ return matched;
86
+ },
87
+ });
88
+
89
+ export namespace json {
90
+ export const stringify = (method: string) => ({
91
+ ...is(),
92
+ number: $number,
93
+ string: $string,
94
+ tail: $tail,
95
+ rest: $rest,
96
+ throws: $throws(`json.${method}`),
97
+ });
98
+ }
99
+
100
+ export namespace protobuf {
101
+ export const decode = (method: string) => ({
102
+ ...is(),
103
+ Reader: $ProtobufReader,
104
+ throws: $throws(`protobuf.${method}`),
105
+ });
106
+
107
+ export const encode = (method: string) => ({
108
+ ...is(),
109
+ Sizer: $ProtobufSizer,
110
+ Writer: $ProtobufWriter,
111
+ strlen: $strlen,
112
+ throws: $throws(method),
113
+ });
114
+ }
115
+
116
+ export namespace http {
117
+ export const query = () => $QueryReader;
118
+ export const headers = () => $HeadersReader;
119
+ export const parameter = () => $ParameterReader;
120
+ }
121
+
122
+ export namespace misc {
123
+ export const clone = (method: string) => ({
124
+ ...is(),
125
+ throws: $throws(`misc.${method}`),
126
+ any: $any,
127
+ });
128
+
129
+ export const prune = (method: string) => ({
130
+ ...is(),
131
+ throws: $throws(`misc.${method}`),
132
+ });
133
+ }
134
+
135
+ export namespace notations {
136
+ export const camel = (method: string) => ({
137
+ ...base(method),
138
+ any: $convention(NamingConvention.camel),
139
+ });
140
+ export const pascal = (method: string) => ({
141
+ ...base(method),
142
+ any: $convention(NamingConvention.pascal),
143
+ });
144
+ export const snake = (method: string) => ({
145
+ ...base(method),
146
+ any: $convention(NamingConvention.snake),
147
+ });
148
+
149
+ const base = (method: string) => ({
150
+ ...is(),
151
+ throws: $throws(`notations.${method}`),
152
+ });
153
+ }
154
+
155
+ export const random = () => ({
156
+ generator: RandomGenerator,
157
+ pick: RandomGenerator.pick,
158
+ });
159
+
160
+ const $throws =
161
+ (method: string) =>
162
+ (props: Pick<TypeGuardError.IProps, "expected" | "value">) => {
163
+ throw new TypeGuardError({
164
+ ...props,
165
+ method: `typia.${method}`,
166
+ });
167
+ };
168
+ }