typia 9.7.2 → 10.0.0-dev.20251107
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.
- package/LICENSE +21 -21
- package/README.md +153 -153
- package/lib/factories/ProtobufFactory.js +1 -1
- package/lib/factories/ProtobufFactory.mjs +1 -1
- package/lib/programmers/internal/json_schema_station.d.mts +2 -2
- package/lib/programmers/internal/json_schema_station.d.ts +2 -2
- package/lib/programmers/llm/LlmApplicationProgrammer.js +5 -1
- package/lib/programmers/llm/LlmApplicationProgrammer.js.map +1 -1
- package/lib/programmers/llm/LlmApplicationProgrammer.mjs +5 -1
- package/lib/programmers/llm/LlmSchemaProgrammer.js +1 -4
- package/lib/programmers/llm/LlmSchemaProgrammer.js.map +1 -1
- package/lib/programmers/llm/LlmSchemaProgrammer.mjs +1 -35
- package/package.json +121 -121
- package/src/AssertionGuard.ts +41 -41
- package/src/CamelCase.ts +75 -75
- package/src/IRandomGenerator.ts +337 -337
- package/src/IReadableURLSearchParams.ts +9 -9
- package/src/PascalCase.ts +71 -71
- package/src/Primitive.ts +90 -90
- package/src/Resolved.ts +72 -72
- package/src/SnakeCase.ts +127 -127
- package/src/TypeGuardError.ts +216 -216
- package/src/factories/MetadataCollection.ts +270 -270
- package/src/factories/MetadataCommentTagFactory.ts +632 -632
- package/src/factories/MetadataFactory.ts +402 -402
- package/src/factories/ProtobufFactory.ts +873 -873
- package/src/functional.ts +705 -705
- package/src/http.ts +972 -972
- package/src/internal/_ProtobufReader.ts +188 -188
- package/src/internal/_ProtobufSizer.ts +137 -137
- package/src/internal/_ProtobufWriter.ts +135 -135
- package/src/internal/_jsonStringifyString.ts +42 -42
- package/src/json.ts +643 -643
- package/src/llm.ts +615 -615
- package/src/misc.ts +594 -594
- package/src/module.ts +889 -889
- package/src/notations.ts +751 -751
- package/src/programmers/FeatureProgrammer.ts +605 -605
- package/src/programmers/ImportProgrammer.ts +179 -179
- package/src/programmers/RandomProgrammer.ts +1195 -1195
- package/src/programmers/helpers/ProtobufWire.ts +34 -34
- package/src/programmers/internal/check_array_length.ts +43 -43
- package/src/programmers/internal/check_bigint.ts +46 -46
- package/src/programmers/internal/check_dynamic_key.ts +197 -197
- package/src/programmers/internal/check_dynamic_properties.ts +231 -231
- package/src/programmers/internal/check_everything.ts +21 -21
- package/src/programmers/internal/check_native.ts +23 -23
- package/src/programmers/internal/check_number.ts +108 -108
- package/src/programmers/internal/check_object.ts +72 -72
- package/src/programmers/internal/check_string.ts +46 -46
- package/src/programmers/internal/check_template.ts +46 -46
- package/src/programmers/internal/check_union_array_like.ts +331 -331
- package/src/programmers/internal/decode_union_object.ts +110 -110
- package/src/programmers/internal/feature_object_entries.ts +59 -59
- package/src/programmers/internal/json_schema_escaped.ts +78 -78
- package/src/programmers/internal/json_schema_object.ts +150 -150
- package/src/programmers/internal/json_schema_station.ts +2 -2
- package/src/programmers/internal/metadata_to_pattern.ts +40 -40
- package/src/programmers/internal/postfix_of_tuple.ts +3 -3
- package/src/programmers/internal/prune_object_properties.ts +69 -69
- package/src/programmers/internal/stringify_dynamic_properties.ts +158 -158
- package/src/programmers/internal/stringify_native.ts +5 -5
- package/src/programmers/internal/stringify_regular_properties.ts +77 -77
- package/src/programmers/internal/template_to_pattern.ts +21 -21
- package/src/programmers/internal/wrap_metadata_rest_tuple.ts +21 -21
- package/src/programmers/json/JsonStringifyProgrammer.ts +1124 -1124
- package/src/programmers/llm/LlmApplicationProgrammer.ts +10 -1
- package/src/programmers/llm/LlmSchemaProgrammer.ts +2 -7
- package/src/protobuf.ts +820 -820
- package/src/reflect.ts +46 -46
- package/src/schemas/json/IJsonApplication.ts +77 -77
- package/src/schemas/json/IJsonSchemaCollection.ts +212 -212
- package/src/schemas/json/IJsonSchemaUnit.ts +263 -263
- package/src/schemas/metadata/IMetadataTypeTag.ts +14 -14
- package/src/schemas/metadata/Metadata.ts +669 -669
- package/src/schemas/metadata/MetadataAliasType.ts +57 -57
- package/src/schemas/metadata/MetadataApplication.ts +40 -40
- package/src/schemas/metadata/MetadataArray.ts +47 -47
- package/src/schemas/metadata/MetadataArrayType.ts +51 -51
- package/src/schemas/metadata/MetadataAtomic.ts +85 -85
- package/src/schemas/metadata/MetadataEscaped.ts +45 -45
- package/src/schemas/metadata/MetadataFunction.ts +45 -45
- package/src/schemas/metadata/MetadataObject.ts +46 -46
- package/src/schemas/metadata/MetadataObjectType.ts +137 -137
- package/src/schemas/metadata/MetadataParameter.ts +52 -52
- package/src/schemas/metadata/MetadataProperty.ts +53 -53
- package/src/schemas/metadata/MetadataTemplate.ts +78 -78
- package/src/schemas/metadata/MetadataTuple.ts +28 -28
- package/src/schemas/metadata/MetadataTupleType.ts +61 -61
- package/src/tags/Constant.ts +47 -47
- package/src/tags/ContentMediaType.ts +27 -27
- package/src/tags/Default.ts +52 -52
- package/src/tags/Example.ts +56 -56
- package/src/tags/Examples.ts +56 -56
- package/src/tags/ExclusiveMaximum.ts +44 -44
- package/src/tags/ExclusiveMinimum.ts +44 -44
- package/src/tags/Format.ts +78 -78
- package/src/tags/JsonSchemaPlugin.ts +36 -36
- package/src/tags/MaxItems.ts +31 -31
- package/src/tags/MaxLength.ts +25 -25
- package/src/tags/Maximum.ts +39 -39
- package/src/tags/MinItems.ts +31 -31
- package/src/tags/MinLength.ts +25 -25
- package/src/tags/Minimum.ts +39 -39
- package/src/tags/MultipleOf.ts +42 -42
- package/src/tags/Pattern.ts +49 -49
- package/src/tags/Sequence.ts +37 -37
- package/src/tags/TagBase.ts +102 -102
- package/src/tags/Type.ts +64 -64
- package/src/tags/UniqueItems.ts +34 -34
- package/src/tags/internal/FormatCheatSheet.ts +71 -71
- package/src/transformers/ITransformOptions.ts +70 -70
- package/src/transformers/ImportTransformer.ts +253 -253
- package/src/transformers/NoTransformConfigurationError.ts +16 -16
- package/src/transformers/features/llm/LlmApplicationTransformer.ts +224 -224
- package/src/typings/Equal.ts +18 -18
package/src/SnakeCase.ts
CHANGED
|
@@ -1,127 +1,127 @@
|
|
|
1
|
-
import { Equal } from "./typings/Equal";
|
|
2
|
-
import { NativeClass } from "./typings/NativeClass";
|
|
3
|
-
import { ValueOf } from "./typings/ValueOf";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Snake case type.
|
|
7
|
-
*
|
|
8
|
-
* `SnakeCase` type is a type that all keys of an object are converted to snake
|
|
9
|
-
* case.
|
|
10
|
-
*
|
|
11
|
-
* It also erases every method property like {@link Resolved} type.
|
|
12
|
-
*
|
|
13
|
-
* @author Jeongho Nam - https://github.com/samchon
|
|
14
|
-
* @template T Target type to be snake cased
|
|
15
|
-
*/
|
|
16
|
-
export type SnakeCase<T> =
|
|
17
|
-
Equal<T, SnakageMain<T>> extends true ? T : SnakageMain<T>;
|
|
18
|
-
|
|
19
|
-
/* -----------------------------------------------------------
|
|
20
|
-
OBJECT CONVERSION
|
|
21
|
-
----------------------------------------------------------- */
|
|
22
|
-
|
|
23
|
-
type SnakageMain<T> = T extends [never]
|
|
24
|
-
? never // special trick for (jsonable | null) type
|
|
25
|
-
: T extends { valueOf(): boolean | bigint | number | string }
|
|
26
|
-
? ValueOf<T>
|
|
27
|
-
: T extends Function
|
|
28
|
-
? never
|
|
29
|
-
: T extends object
|
|
30
|
-
? SnakageObject<T>
|
|
31
|
-
: T;
|
|
32
|
-
|
|
33
|
-
type SnakageObject<T extends object> =
|
|
34
|
-
T extends Array<infer U>
|
|
35
|
-
? IsTuple<T> extends true
|
|
36
|
-
? SnakageTuple<T>
|
|
37
|
-
: SnakageMain<U>[]
|
|
38
|
-
: T extends Set<infer U>
|
|
39
|
-
? Set<SnakageMain<U>>
|
|
40
|
-
: T extends Map<infer K, infer V>
|
|
41
|
-
? Map<SnakageMain<K>, SnakageMain<V>>
|
|
42
|
-
: T extends WeakSet<any> | WeakMap<any, any>
|
|
43
|
-
? never
|
|
44
|
-
: T extends NativeClass
|
|
45
|
-
? T
|
|
46
|
-
: {
|
|
47
|
-
[Key in keyof T as SnakageString<Key & string>]: SnakageMain<
|
|
48
|
-
T[Key]
|
|
49
|
-
>;
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
/* -----------------------------------------------------------
|
|
53
|
-
SPECIAL CASES
|
|
54
|
-
----------------------------------------------------------- */
|
|
55
|
-
type IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
|
|
56
|
-
never,
|
|
57
|
-
]
|
|
58
|
-
? false
|
|
59
|
-
: T extends readonly any[]
|
|
60
|
-
? number extends T["length"]
|
|
61
|
-
? false
|
|
62
|
-
: true
|
|
63
|
-
: false;
|
|
64
|
-
type SnakageTuple<T extends readonly any[]> = T extends []
|
|
65
|
-
? []
|
|
66
|
-
: T extends [infer F]
|
|
67
|
-
? [SnakageMain<F>]
|
|
68
|
-
: T extends [infer F, ...infer Rest extends readonly any[]]
|
|
69
|
-
? [SnakageMain<F>, ...SnakageTuple<Rest>]
|
|
70
|
-
: T extends [(infer F)?]
|
|
71
|
-
? [SnakageMain<F>?]
|
|
72
|
-
: T extends [(infer F)?, ...infer Rest extends readonly any[]]
|
|
73
|
-
? [SnakageMain<F>?, ...SnakageTuple<Rest>]
|
|
74
|
-
: [];
|
|
75
|
-
|
|
76
|
-
/* -----------------------------------------------------------
|
|
77
|
-
STRING CONVERTER
|
|
78
|
-
----------------------------------------------------------- */
|
|
79
|
-
type SnakageString<Key extends string> = Key extends `${infer _}`
|
|
80
|
-
? SnakageStringRepeatedly<Key, "">
|
|
81
|
-
: Key;
|
|
82
|
-
type SnakageStringRepeatedly<
|
|
83
|
-
S extends string,
|
|
84
|
-
Previous extends string,
|
|
85
|
-
> = S extends `${infer First}${infer Second}${infer Rest}`
|
|
86
|
-
? `${Underscore<Previous, First>}${Lowercase<First>}${Underscore<
|
|
87
|
-
First,
|
|
88
|
-
Second
|
|
89
|
-
>}${Lowercase<Second>}${SnakageStringRepeatedly<Rest, Second>}`
|
|
90
|
-
: S extends `${infer First}`
|
|
91
|
-
? `${Underscore<Previous, First>}${Lowercase<First>}`
|
|
92
|
-
: "";
|
|
93
|
-
type Underscore<First extends string, Second extends string> = First extends
|
|
94
|
-
| UpperAlphabetic
|
|
95
|
-
| ""
|
|
96
|
-
| "_"
|
|
97
|
-
? ""
|
|
98
|
-
: Second extends UpperAlphabetic
|
|
99
|
-
? "_"
|
|
100
|
-
: "";
|
|
101
|
-
type UpperAlphabetic =
|
|
102
|
-
| "A"
|
|
103
|
-
| "B"
|
|
104
|
-
| "C"
|
|
105
|
-
| "D"
|
|
106
|
-
| "E"
|
|
107
|
-
| "F"
|
|
108
|
-
| "G"
|
|
109
|
-
| "H"
|
|
110
|
-
| "I"
|
|
111
|
-
| "J"
|
|
112
|
-
| "K"
|
|
113
|
-
| "L"
|
|
114
|
-
| "M"
|
|
115
|
-
| "N"
|
|
116
|
-
| "O"
|
|
117
|
-
| "P"
|
|
118
|
-
| "Q"
|
|
119
|
-
| "R"
|
|
120
|
-
| "S"
|
|
121
|
-
| "T"
|
|
122
|
-
| "U"
|
|
123
|
-
| "V"
|
|
124
|
-
| "W"
|
|
125
|
-
| "X"
|
|
126
|
-
| "Y"
|
|
127
|
-
| "Z";
|
|
1
|
+
import { Equal } from "./typings/Equal";
|
|
2
|
+
import { NativeClass } from "./typings/NativeClass";
|
|
3
|
+
import { ValueOf } from "./typings/ValueOf";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Snake case type.
|
|
7
|
+
*
|
|
8
|
+
* `SnakeCase` type is a type that all keys of an object are converted to snake
|
|
9
|
+
* case.
|
|
10
|
+
*
|
|
11
|
+
* It also erases every method property like {@link Resolved} type.
|
|
12
|
+
*
|
|
13
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
14
|
+
* @template T Target type to be snake cased
|
|
15
|
+
*/
|
|
16
|
+
export type SnakeCase<T> =
|
|
17
|
+
Equal<T, SnakageMain<T>> extends true ? T : SnakageMain<T>;
|
|
18
|
+
|
|
19
|
+
/* -----------------------------------------------------------
|
|
20
|
+
OBJECT CONVERSION
|
|
21
|
+
----------------------------------------------------------- */
|
|
22
|
+
|
|
23
|
+
type SnakageMain<T> = T extends [never]
|
|
24
|
+
? never // special trick for (jsonable | null) type
|
|
25
|
+
: T extends { valueOf(): boolean | bigint | number | string }
|
|
26
|
+
? ValueOf<T>
|
|
27
|
+
: T extends Function
|
|
28
|
+
? never
|
|
29
|
+
: T extends object
|
|
30
|
+
? SnakageObject<T>
|
|
31
|
+
: T;
|
|
32
|
+
|
|
33
|
+
type SnakageObject<T extends object> =
|
|
34
|
+
T extends Array<infer U>
|
|
35
|
+
? IsTuple<T> extends true
|
|
36
|
+
? SnakageTuple<T>
|
|
37
|
+
: SnakageMain<U>[]
|
|
38
|
+
: T extends Set<infer U>
|
|
39
|
+
? Set<SnakageMain<U>>
|
|
40
|
+
: T extends Map<infer K, infer V>
|
|
41
|
+
? Map<SnakageMain<K>, SnakageMain<V>>
|
|
42
|
+
: T extends WeakSet<any> | WeakMap<any, any>
|
|
43
|
+
? never
|
|
44
|
+
: T extends NativeClass
|
|
45
|
+
? T
|
|
46
|
+
: {
|
|
47
|
+
[Key in keyof T as SnakageString<Key & string>]: SnakageMain<
|
|
48
|
+
T[Key]
|
|
49
|
+
>;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/* -----------------------------------------------------------
|
|
53
|
+
SPECIAL CASES
|
|
54
|
+
----------------------------------------------------------- */
|
|
55
|
+
type IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
|
|
56
|
+
never,
|
|
57
|
+
]
|
|
58
|
+
? false
|
|
59
|
+
: T extends readonly any[]
|
|
60
|
+
? number extends T["length"]
|
|
61
|
+
? false
|
|
62
|
+
: true
|
|
63
|
+
: false;
|
|
64
|
+
type SnakageTuple<T extends readonly any[]> = T extends []
|
|
65
|
+
? []
|
|
66
|
+
: T extends [infer F]
|
|
67
|
+
? [SnakageMain<F>]
|
|
68
|
+
: T extends [infer F, ...infer Rest extends readonly any[]]
|
|
69
|
+
? [SnakageMain<F>, ...SnakageTuple<Rest>]
|
|
70
|
+
: T extends [(infer F)?]
|
|
71
|
+
? [SnakageMain<F>?]
|
|
72
|
+
: T extends [(infer F)?, ...infer Rest extends readonly any[]]
|
|
73
|
+
? [SnakageMain<F>?, ...SnakageTuple<Rest>]
|
|
74
|
+
: [];
|
|
75
|
+
|
|
76
|
+
/* -----------------------------------------------------------
|
|
77
|
+
STRING CONVERTER
|
|
78
|
+
----------------------------------------------------------- */
|
|
79
|
+
type SnakageString<Key extends string> = Key extends `${infer _}`
|
|
80
|
+
? SnakageStringRepeatedly<Key, "">
|
|
81
|
+
: Key;
|
|
82
|
+
type SnakageStringRepeatedly<
|
|
83
|
+
S extends string,
|
|
84
|
+
Previous extends string,
|
|
85
|
+
> = S extends `${infer First}${infer Second}${infer Rest}`
|
|
86
|
+
? `${Underscore<Previous, First>}${Lowercase<First>}${Underscore<
|
|
87
|
+
First,
|
|
88
|
+
Second
|
|
89
|
+
>}${Lowercase<Second>}${SnakageStringRepeatedly<Rest, Second>}`
|
|
90
|
+
: S extends `${infer First}`
|
|
91
|
+
? `${Underscore<Previous, First>}${Lowercase<First>}`
|
|
92
|
+
: "";
|
|
93
|
+
type Underscore<First extends string, Second extends string> = First extends
|
|
94
|
+
| UpperAlphabetic
|
|
95
|
+
| ""
|
|
96
|
+
| "_"
|
|
97
|
+
? ""
|
|
98
|
+
: Second extends UpperAlphabetic
|
|
99
|
+
? "_"
|
|
100
|
+
: "";
|
|
101
|
+
type UpperAlphabetic =
|
|
102
|
+
| "A"
|
|
103
|
+
| "B"
|
|
104
|
+
| "C"
|
|
105
|
+
| "D"
|
|
106
|
+
| "E"
|
|
107
|
+
| "F"
|
|
108
|
+
| "G"
|
|
109
|
+
| "H"
|
|
110
|
+
| "I"
|
|
111
|
+
| "J"
|
|
112
|
+
| "K"
|
|
113
|
+
| "L"
|
|
114
|
+
| "M"
|
|
115
|
+
| "N"
|
|
116
|
+
| "O"
|
|
117
|
+
| "P"
|
|
118
|
+
| "Q"
|
|
119
|
+
| "R"
|
|
120
|
+
| "S"
|
|
121
|
+
| "T"
|
|
122
|
+
| "U"
|
|
123
|
+
| "V"
|
|
124
|
+
| "W"
|
|
125
|
+
| "X"
|
|
126
|
+
| "Y"
|
|
127
|
+
| "Z";
|