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.
Files changed (116) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +153 -153
  3. package/lib/factories/ProtobufFactory.js +1 -1
  4. package/lib/factories/ProtobufFactory.mjs +1 -1
  5. package/lib/programmers/internal/json_schema_station.d.mts +2 -2
  6. package/lib/programmers/internal/json_schema_station.d.ts +2 -2
  7. package/lib/programmers/llm/LlmApplicationProgrammer.js +5 -1
  8. package/lib/programmers/llm/LlmApplicationProgrammer.js.map +1 -1
  9. package/lib/programmers/llm/LlmApplicationProgrammer.mjs +5 -1
  10. package/lib/programmers/llm/LlmSchemaProgrammer.js +1 -4
  11. package/lib/programmers/llm/LlmSchemaProgrammer.js.map +1 -1
  12. package/lib/programmers/llm/LlmSchemaProgrammer.mjs +1 -35
  13. package/package.json +121 -121
  14. package/src/AssertionGuard.ts +41 -41
  15. package/src/CamelCase.ts +75 -75
  16. package/src/IRandomGenerator.ts +337 -337
  17. package/src/IReadableURLSearchParams.ts +9 -9
  18. package/src/PascalCase.ts +71 -71
  19. package/src/Primitive.ts +90 -90
  20. package/src/Resolved.ts +72 -72
  21. package/src/SnakeCase.ts +127 -127
  22. package/src/TypeGuardError.ts +216 -216
  23. package/src/factories/MetadataCollection.ts +270 -270
  24. package/src/factories/MetadataCommentTagFactory.ts +632 -632
  25. package/src/factories/MetadataFactory.ts +402 -402
  26. package/src/factories/ProtobufFactory.ts +873 -873
  27. package/src/functional.ts +705 -705
  28. package/src/http.ts +972 -972
  29. package/src/internal/_ProtobufReader.ts +188 -188
  30. package/src/internal/_ProtobufSizer.ts +137 -137
  31. package/src/internal/_ProtobufWriter.ts +135 -135
  32. package/src/internal/_jsonStringifyString.ts +42 -42
  33. package/src/json.ts +643 -643
  34. package/src/llm.ts +615 -615
  35. package/src/misc.ts +594 -594
  36. package/src/module.ts +889 -889
  37. package/src/notations.ts +751 -751
  38. package/src/programmers/FeatureProgrammer.ts +605 -605
  39. package/src/programmers/ImportProgrammer.ts +179 -179
  40. package/src/programmers/RandomProgrammer.ts +1195 -1195
  41. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  42. package/src/programmers/internal/check_array_length.ts +43 -43
  43. package/src/programmers/internal/check_bigint.ts +46 -46
  44. package/src/programmers/internal/check_dynamic_key.ts +197 -197
  45. package/src/programmers/internal/check_dynamic_properties.ts +231 -231
  46. package/src/programmers/internal/check_everything.ts +21 -21
  47. package/src/programmers/internal/check_native.ts +23 -23
  48. package/src/programmers/internal/check_number.ts +108 -108
  49. package/src/programmers/internal/check_object.ts +72 -72
  50. package/src/programmers/internal/check_string.ts +46 -46
  51. package/src/programmers/internal/check_template.ts +46 -46
  52. package/src/programmers/internal/check_union_array_like.ts +331 -331
  53. package/src/programmers/internal/decode_union_object.ts +110 -110
  54. package/src/programmers/internal/feature_object_entries.ts +59 -59
  55. package/src/programmers/internal/json_schema_escaped.ts +78 -78
  56. package/src/programmers/internal/json_schema_object.ts +150 -150
  57. package/src/programmers/internal/json_schema_station.ts +2 -2
  58. package/src/programmers/internal/metadata_to_pattern.ts +40 -40
  59. package/src/programmers/internal/postfix_of_tuple.ts +3 -3
  60. package/src/programmers/internal/prune_object_properties.ts +69 -69
  61. package/src/programmers/internal/stringify_dynamic_properties.ts +158 -158
  62. package/src/programmers/internal/stringify_native.ts +5 -5
  63. package/src/programmers/internal/stringify_regular_properties.ts +77 -77
  64. package/src/programmers/internal/template_to_pattern.ts +21 -21
  65. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +21 -21
  66. package/src/programmers/json/JsonStringifyProgrammer.ts +1124 -1124
  67. package/src/programmers/llm/LlmApplicationProgrammer.ts +10 -1
  68. package/src/programmers/llm/LlmSchemaProgrammer.ts +2 -7
  69. package/src/protobuf.ts +820 -820
  70. package/src/reflect.ts +46 -46
  71. package/src/schemas/json/IJsonApplication.ts +77 -77
  72. package/src/schemas/json/IJsonSchemaCollection.ts +212 -212
  73. package/src/schemas/json/IJsonSchemaUnit.ts +263 -263
  74. package/src/schemas/metadata/IMetadataTypeTag.ts +14 -14
  75. package/src/schemas/metadata/Metadata.ts +669 -669
  76. package/src/schemas/metadata/MetadataAliasType.ts +57 -57
  77. package/src/schemas/metadata/MetadataApplication.ts +40 -40
  78. package/src/schemas/metadata/MetadataArray.ts +47 -47
  79. package/src/schemas/metadata/MetadataArrayType.ts +51 -51
  80. package/src/schemas/metadata/MetadataAtomic.ts +85 -85
  81. package/src/schemas/metadata/MetadataEscaped.ts +45 -45
  82. package/src/schemas/metadata/MetadataFunction.ts +45 -45
  83. package/src/schemas/metadata/MetadataObject.ts +46 -46
  84. package/src/schemas/metadata/MetadataObjectType.ts +137 -137
  85. package/src/schemas/metadata/MetadataParameter.ts +52 -52
  86. package/src/schemas/metadata/MetadataProperty.ts +53 -53
  87. package/src/schemas/metadata/MetadataTemplate.ts +78 -78
  88. package/src/schemas/metadata/MetadataTuple.ts +28 -28
  89. package/src/schemas/metadata/MetadataTupleType.ts +61 -61
  90. package/src/tags/Constant.ts +47 -47
  91. package/src/tags/ContentMediaType.ts +27 -27
  92. package/src/tags/Default.ts +52 -52
  93. package/src/tags/Example.ts +56 -56
  94. package/src/tags/Examples.ts +56 -56
  95. package/src/tags/ExclusiveMaximum.ts +44 -44
  96. package/src/tags/ExclusiveMinimum.ts +44 -44
  97. package/src/tags/Format.ts +78 -78
  98. package/src/tags/JsonSchemaPlugin.ts +36 -36
  99. package/src/tags/MaxItems.ts +31 -31
  100. package/src/tags/MaxLength.ts +25 -25
  101. package/src/tags/Maximum.ts +39 -39
  102. package/src/tags/MinItems.ts +31 -31
  103. package/src/tags/MinLength.ts +25 -25
  104. package/src/tags/Minimum.ts +39 -39
  105. package/src/tags/MultipleOf.ts +42 -42
  106. package/src/tags/Pattern.ts +49 -49
  107. package/src/tags/Sequence.ts +37 -37
  108. package/src/tags/TagBase.ts +102 -102
  109. package/src/tags/Type.ts +64 -64
  110. package/src/tags/UniqueItems.ts +34 -34
  111. package/src/tags/internal/FormatCheatSheet.ts +71 -71
  112. package/src/transformers/ITransformOptions.ts +70 -70
  113. package/src/transformers/ImportTransformer.ts +253 -253
  114. package/src/transformers/NoTransformConfigurationError.ts +16 -16
  115. package/src/transformers/features/llm/LlmApplicationTransformer.ts +224 -224
  116. 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";