typia 7.0.0-dev.20241012 → 7.0.0-dev.20241019

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 (256) hide show
  1. package/lib/factories/JsonMetadataFactory.js +3 -2
  2. package/lib/factories/JsonMetadataFactory.js.map +1 -1
  3. package/lib/factories/MetadataCollection.d.ts +3 -3
  4. package/lib/factories/MetadataCollection.js +2 -2
  5. package/lib/factories/MetadataCollection.js.map +1 -1
  6. package/lib/factories/MetadataFactory.d.ts +2 -2
  7. package/lib/factories/MetadataFactory.js +3 -3
  8. package/lib/factories/MetadataFactory.js.map +1 -1
  9. package/lib/factories/MetadataTypeTagFactory.d.ts +3 -2
  10. package/lib/factories/MetadataTypeTagFactory.js +26 -3
  11. package/lib/factories/MetadataTypeTagFactory.js.map +1 -1
  12. package/lib/factories/ProtobufFactory.js +1266 -160
  13. package/lib/factories/ProtobufFactory.js.map +1 -1
  14. package/lib/factories/internal/metadata/IMetadataIteratorProps.d.ts +1 -0
  15. package/lib/factories/internal/metadata/MetadataHelper.js +1 -1
  16. package/lib/factories/internal/metadata/MetadataHelper.js.map +1 -1
  17. package/lib/factories/internal/metadata/emplace_metadata_alias.d.ts +2 -2
  18. package/lib/factories/internal/metadata/emplace_metadata_object.js +5 -5
  19. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
  20. package/lib/factories/internal/metadata/explore_metadata.js +2 -0
  21. package/lib/factories/internal/metadata/explore_metadata.js.map +1 -1
  22. package/lib/factories/internal/metadata/iterate_metadata.js +1 -1
  23. package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
  24. package/lib/factories/internal/metadata/iterate_metadata_alias.js +8 -2
  25. package/lib/factories/internal/metadata/iterate_metadata_alias.js.map +1 -1
  26. package/lib/factories/internal/metadata/iterate_metadata_collection.js +6 -6
  27. package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
  28. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +262 -137
  29. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  30. package/lib/factories/internal/metadata/iterate_metadata_map.js +4 -2
  31. package/lib/factories/internal/metadata/iterate_metadata_map.js.map +1 -1
  32. package/lib/factories/internal/metadata/iterate_metadata_native.js +27 -11
  33. package/lib/factories/internal/metadata/iterate_metadata_native.js.map +1 -1
  34. package/lib/factories/internal/metadata/iterate_metadata_set.js +8 -1
  35. package/lib/factories/internal/metadata/iterate_metadata_set.js.map +1 -1
  36. package/lib/factories/internal/metadata/iterate_metadata_sort.js +1 -1
  37. package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
  38. package/lib/factories/internal/metadata/iterate_metadata_template.js +1 -1
  39. package/lib/factories/internal/metadata/iterate_metadata_template.js.map +1 -1
  40. package/lib/programmers/CheckerProgrammer.js +5 -5
  41. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  42. package/lib/programmers/RandomProgrammer.js +12 -12
  43. package/lib/programmers/RandomProgrammer.js.map +1 -1
  44. package/lib/programmers/helpers/AtomicPredicator.js +3 -3
  45. package/lib/programmers/helpers/AtomicPredicator.js.map +1 -1
  46. package/lib/programmers/helpers/ProtobufUtil.d.ts +6 -3
  47. package/lib/programmers/helpers/ProtobufUtil.js +216 -93
  48. package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
  49. package/lib/programmers/helpers/UnionExplorer.d.ts +4 -2
  50. package/lib/programmers/helpers/UnionExplorer.js +1 -1
  51. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  52. package/lib/programmers/http/HttpFormDataProgrammer.js +6 -6
  53. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
  54. package/lib/programmers/internal/application_escaped.js +2 -2
  55. package/lib/programmers/internal/application_escaped.js.map +1 -1
  56. package/lib/programmers/internal/application_v30_alias.js +13 -8
  57. package/lib/programmers/internal/application_v30_alias.js.map +1 -1
  58. package/lib/programmers/internal/application_v30_native.js +17 -10
  59. package/lib/programmers/internal/application_v30_native.js.map +1 -1
  60. package/lib/programmers/internal/application_v30_object.js +16 -6
  61. package/lib/programmers/internal/application_v30_object.js.map +1 -1
  62. package/lib/programmers/internal/application_v30_schema.js +24 -17
  63. package/lib/programmers/internal/application_v30_schema.js.map +1 -1
  64. package/lib/programmers/internal/application_v31_alias.js +12 -11
  65. package/lib/programmers/internal/application_v31_alias.js.map +1 -1
  66. package/lib/programmers/internal/application_v31_native.js +17 -10
  67. package/lib/programmers/internal/application_v31_native.js.map +1 -1
  68. package/lib/programmers/internal/application_v31_object.js +13 -6
  69. package/lib/programmers/internal/application_v31_object.js.map +1 -1
  70. package/lib/programmers/internal/application_v31_schema.js +23 -16
  71. package/lib/programmers/internal/application_v31_schema.js.map +1 -1
  72. package/lib/programmers/internal/check_dynamic_key.js +4 -4
  73. package/lib/programmers/internal/check_dynamic_key.js.map +1 -1
  74. package/lib/programmers/internal/check_native.js +3 -3
  75. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  76. package/lib/programmers/internal/llm_schema_escaped.js +2 -2
  77. package/lib/programmers/internal/llm_schema_escaped.js.map +1 -1
  78. package/lib/programmers/internal/llm_schema_object.js +18 -14
  79. package/lib/programmers/internal/llm_schema_object.js.map +1 -1
  80. package/lib/programmers/internal/llm_schema_station.js +8 -8
  81. package/lib/programmers/internal/llm_schema_station.js.map +1 -1
  82. package/lib/programmers/json/JsonSchemasProgrammer.js +5 -5
  83. package/lib/programmers/json/JsonSchemasProgrammer.js.map +1 -1
  84. package/lib/programmers/json/JsonStringifyProgrammer.js +18 -17
  85. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  86. package/lib/programmers/llm/LlmSchemaProgrammer.js +6 -6
  87. package/lib/programmers/llm/LlmSchemaProgrammer.js.map +1 -1
  88. package/lib/programmers/misc/MiscCloneProgrammer.js +7 -5
  89. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  90. package/lib/programmers/misc/MiscPruneProgrammer.js +1 -1
  91. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  92. package/lib/programmers/notations/NotationGeneralProgrammer.js +6 -4
  93. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  94. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +169 -220
  95. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  96. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +6 -4
  97. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  98. package/lib/programmers/protobuf/ProtobufMessageProgrammer.d.ts +1 -1
  99. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +53 -128
  100. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  101. package/lib/schemas/metadata/IMetadata.d.ts +14 -18
  102. package/lib/schemas/metadata/IMetadataAlias.d.ts +2 -7
  103. package/lib/schemas/metadata/IMetadataAliasType.d.ts +10 -0
  104. package/lib/schemas/metadata/IMetadataAliasType.js +3 -0
  105. package/lib/schemas/metadata/IMetadataAliasType.js.map +1 -0
  106. package/lib/schemas/metadata/IMetadataComponents.d.ts +2 -2
  107. package/lib/schemas/metadata/IMetadataConstantValue.d.ts +1 -1
  108. package/lib/schemas/metadata/IMetadataDictionary.d.ts +2 -2
  109. package/lib/schemas/metadata/IMetadataMap.d.ts +7 -0
  110. package/lib/schemas/metadata/{IMetadataEntry.js → IMetadataMap.js} +1 -1
  111. package/lib/schemas/metadata/IMetadataMap.js.map +1 -0
  112. package/lib/schemas/metadata/IMetadataNative.d.ts +5 -0
  113. package/lib/schemas/metadata/IMetadataNative.js +3 -0
  114. package/lib/schemas/metadata/IMetadataNative.js.map +1 -0
  115. package/lib/schemas/metadata/IMetadataSet.d.ts +6 -0
  116. package/lib/schemas/metadata/IMetadataSet.js +3 -0
  117. package/lib/schemas/metadata/IMetadataSet.js.map +1 -0
  118. package/lib/schemas/metadata/IMetadataTemplate.d.ts +1 -1
  119. package/lib/schemas/metadata/IMetadataTypeTag.d.ts +1 -1
  120. package/lib/schemas/metadata/Metadata.d.ts +6 -9
  121. package/lib/schemas/metadata/Metadata.js +136 -98
  122. package/lib/schemas/metadata/Metadata.js.map +1 -1
  123. package/lib/schemas/metadata/MetadataAlias.d.ts +8 -11
  124. package/lib/schemas/metadata/MetadataAlias.js +48 -33
  125. package/lib/schemas/metadata/MetadataAlias.js.map +1 -1
  126. package/lib/schemas/metadata/MetadataAliasType.d.ts +16 -0
  127. package/lib/schemas/metadata/MetadataAliasType.js +51 -0
  128. package/lib/schemas/metadata/MetadataAliasType.js.map +1 -0
  129. package/lib/schemas/metadata/MetadataComponents.d.ts +2 -2
  130. package/lib/schemas/metadata/MetadataComponents.js +2 -2
  131. package/lib/schemas/metadata/MetadataComponents.js.map +1 -1
  132. package/lib/schemas/metadata/MetadataConstantValue.d.ts +1 -1
  133. package/lib/schemas/metadata/MetadataMap.d.ts +14 -0
  134. package/lib/schemas/metadata/MetadataMap.js +66 -0
  135. package/lib/schemas/metadata/MetadataMap.js.map +1 -0
  136. package/lib/schemas/metadata/MetadataNative.d.ts +12 -0
  137. package/lib/schemas/metadata/MetadataNative.js +65 -0
  138. package/lib/schemas/metadata/MetadataNative.js.map +1 -0
  139. package/lib/schemas/metadata/MetadataProperty.d.ts +2 -0
  140. package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
  141. package/lib/schemas/metadata/MetadataSet.d.ts +13 -0
  142. package/lib/schemas/metadata/MetadataSet.js +64 -0
  143. package/lib/schemas/metadata/MetadataSet.js.map +1 -0
  144. package/lib/schemas/metadata/MetadataTemplate.d.ts +1 -1
  145. package/lib/schemas/protobuf/IProtobufProperty.d.ts +5 -0
  146. package/lib/schemas/protobuf/IProtobufProperty.js +3 -0
  147. package/lib/schemas/protobuf/IProtobufProperty.js.map +1 -0
  148. package/lib/schemas/protobuf/IProtobufPropertyType.d.ts +28 -0
  149. package/lib/schemas/protobuf/IProtobufPropertyType.js +3 -0
  150. package/lib/schemas/protobuf/IProtobufPropertyType.js.map +1 -0
  151. package/lib/schemas/protobuf/IProtobufSchema.d.ts +38 -0
  152. package/lib/schemas/protobuf/IProtobufSchema.js +3 -0
  153. package/lib/schemas/protobuf/IProtobufSchema.js.map +1 -0
  154. package/lib/tags/Example.d.ts +2 -2
  155. package/lib/tags/Examples.d.ts +2 -2
  156. package/lib/tags/JsonSchemaPlugin.d.ts +1 -1
  157. package/lib/tags/Sequence.d.ts +9 -0
  158. package/lib/tags/Sequence.js +3 -0
  159. package/lib/tags/Sequence.js.map +1 -0
  160. package/lib/tags/TagBase.d.ts +1 -1
  161. package/lib/tags/index.d.ts +1 -0
  162. package/lib/tags/index.js +1 -0
  163. package/lib/tags/index.js.map +1 -1
  164. package/lib/utils/{NameEncoder.d.ts → ProtobufNameEncoder.d.ts} +1 -1
  165. package/lib/utils/{NameEncoder.js → ProtobufNameEncoder.js} +7 -7
  166. package/lib/utils/ProtobufNameEncoder.js.map +1 -0
  167. package/package.json +1 -1
  168. package/src/factories/JsonMetadataFactory.ts +5 -2
  169. package/src/factories/MetadataCollection.ts +6 -6
  170. package/src/factories/MetadataFactory.ts +7 -7
  171. package/src/factories/MetadataTypeTagFactory.ts +31 -6
  172. package/src/factories/ProtobufFactory.ts +794 -177
  173. package/src/factories/internal/metadata/IMetadataIteratorProps.ts +1 -0
  174. package/src/factories/internal/metadata/MetadataHelper.ts +1 -1
  175. package/src/factories/internal/metadata/emplace_metadata_alias.ts +2 -2
  176. package/src/factories/internal/metadata/emplace_metadata_object.ts +5 -5
  177. package/src/factories/internal/metadata/explore_metadata.ts +1 -0
  178. package/src/factories/internal/metadata/iterate_metadata.ts +1 -1
  179. package/src/factories/internal/metadata/iterate_metadata_alias.ts +9 -4
  180. package/src/factories/internal/metadata/iterate_metadata_collection.ts +6 -6
  181. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +163 -181
  182. package/src/factories/internal/metadata/iterate_metadata_map.ts +5 -2
  183. package/src/factories/internal/metadata/iterate_metadata_native.ts +20 -2
  184. package/src/factories/internal/metadata/iterate_metadata_set.ts +27 -11
  185. package/src/factories/internal/metadata/iterate_metadata_sort.ts +1 -1
  186. package/src/factories/internal/metadata/iterate_metadata_template.ts +1 -3
  187. package/src/programmers/CheckerProgrammer.ts +9 -7
  188. package/src/programmers/RandomProgrammer.ts +16 -14
  189. package/src/programmers/helpers/AtomicPredicator.ts +3 -3
  190. package/src/programmers/helpers/ProtobufUtil.ts +147 -44
  191. package/src/programmers/helpers/UnionExplorer.ts +62 -62
  192. package/src/programmers/http/HttpFormDataProgrammer.ts +10 -6
  193. package/src/programmers/internal/application_escaped.ts +2 -2
  194. package/src/programmers/internal/application_v30_alias.ts +18 -12
  195. package/src/programmers/internal/application_v30_native.ts +22 -12
  196. package/src/programmers/internal/application_v30_object.ts +23 -8
  197. package/src/programmers/internal/application_v30_schema.ts +31 -34
  198. package/src/programmers/internal/application_v31_alias.ts +16 -13
  199. package/src/programmers/internal/application_v31_native.ts +22 -12
  200. package/src/programmers/internal/application_v31_object.ts +19 -8
  201. package/src/programmers/internal/application_v31_schema.ts +26 -29
  202. package/src/programmers/internal/check_dynamic_key.ts +4 -4
  203. package/src/programmers/internal/check_native.ts +4 -4
  204. package/src/programmers/internal/check_union_array_like.ts +2 -1
  205. package/src/programmers/internal/llm_schema_escaped.ts +2 -2
  206. package/src/programmers/internal/llm_schema_object.ts +21 -18
  207. package/src/programmers/internal/llm_schema_station.ts +9 -11
  208. package/src/programmers/json/JsonSchemasProgrammer.ts +5 -5
  209. package/src/programmers/json/JsonStringifyProgrammer.ts +5 -5
  210. package/src/programmers/llm/LlmSchemaProgrammer.ts +6 -6
  211. package/src/programmers/misc/MiscCloneProgrammer.ts +11 -7
  212. package/src/programmers/misc/MiscPruneProgrammer.ts +1 -1
  213. package/src/programmers/notations/NotationGeneralProgrammer.ts +10 -6
  214. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +254 -308
  215. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +11 -8
  216. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +73 -95
  217. package/src/schemas/metadata/IMetadata.ts +35 -39
  218. package/src/schemas/metadata/IMetadataAlias.ts +6 -12
  219. package/src/schemas/metadata/IMetadataAliasType.ts +12 -0
  220. package/src/schemas/metadata/IMetadataArray.ts +6 -6
  221. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  222. package/src/schemas/metadata/IMetadataConstantValue.ts +1 -1
  223. package/src/schemas/metadata/IMetadataDictionary.ts +2 -2
  224. package/src/schemas/metadata/IMetadataMap.ts +8 -0
  225. package/src/schemas/metadata/IMetadataNative.ts +6 -0
  226. package/src/schemas/metadata/IMetadataObjectType.ts +13 -13
  227. package/src/schemas/metadata/IMetadataSet.ts +7 -0
  228. package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
  229. package/src/schemas/metadata/IMetadataTuple.ts +6 -6
  230. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  231. package/src/schemas/metadata/Metadata.ts +100 -47
  232. package/src/schemas/metadata/MetadataAlias.ts +46 -61
  233. package/src/schemas/metadata/MetadataAliasType.ts +63 -0
  234. package/src/schemas/metadata/MetadataArray.ts +49 -49
  235. package/src/schemas/metadata/MetadataComponents.ts +3 -3
  236. package/src/schemas/metadata/MetadataConstantValue.ts +1 -1
  237. package/src/schemas/metadata/MetadataMap.ts +48 -0
  238. package/src/schemas/metadata/MetadataNative.ts +44 -0
  239. package/src/schemas/metadata/MetadataProperty.ts +3 -0
  240. package/src/schemas/metadata/MetadataSet.ts +45 -0
  241. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  242. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  243. package/src/schemas/protobuf/IProtobufProperty.ts +6 -0
  244. package/src/schemas/protobuf/IProtobufPropertyType.ts +37 -0
  245. package/src/schemas/protobuf/IProtobufSchema.ts +50 -0
  246. package/src/tags/Example.ts +24 -17
  247. package/src/tags/Examples.ts +16 -16
  248. package/src/tags/JsonSchemaPlugin.ts +8 -8
  249. package/src/tags/Sequence.ts +10 -0
  250. package/src/tags/TagBase.ts +82 -76
  251. package/src/tags/index.ts +1 -0
  252. package/src/utils/{NameEncoder.ts → ProtobufNameEncoder.ts} +1 -1
  253. package/lib/schemas/metadata/IMetadataEntry.d.ts +0 -5
  254. package/lib/schemas/metadata/IMetadataEntry.js.map +0 -1
  255. package/lib/utils/NameEncoder.js.map +0 -1
  256. package/src/schemas/metadata/IMetadataEntry.ts +0 -6
@@ -1,6 +1,6 @@
1
1
  import { TagBase } from "./TagBase";
2
- export type Example<Value extends boolean | bigint | number | string | Array<unknown> | null> = TagBase<{
3
- target: "boolean" | "bigint" | "number" | "string" | "array";
2
+ export type Example<Value extends boolean | bigint | number | string | object | Array<unknown> | null> = TagBase<{
3
+ target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
4
4
  kind: "example";
5
5
  value: Value;
6
6
  exclusive: true;
@@ -1,6 +1,6 @@
1
1
  import { TagBase } from "./TagBase";
2
- export type Examples<Dict extends Record<string, boolean | bigint | number | string | Array<unknown> | null>> = TagBase<{
3
- target: "boolean" | "bigint" | "number" | "string" | "array";
2
+ export type Examples<Dict extends Record<string, boolean | bigint | number | string | object | Array<unknown> | null>> = TagBase<{
3
+ target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
4
4
  kind: "examples";
5
5
  value: Dict;
6
6
  exclusive: true;
@@ -1,6 +1,6 @@
1
1
  import { TagBase } from "./TagBase";
2
2
  export type JsonSchemaPlugin<Schema extends object> = TagBase<{
3
- target: "string" | "boolean" | "bigint" | "number" | "array";
3
+ target: "string" | "boolean" | "bigint" | "number" | "array" | "object";
4
4
  kind: "jsonPlugin";
5
5
  value: undefined;
6
6
  schema: Schema;
@@ -0,0 +1,9 @@
1
+ import { TagBase } from "./TagBase";
2
+ export type Sequence<N extends number> = TagBase<{
3
+ target: "boolean" | "bigint" | "number" | "string" | "array" | "object";
4
+ kind: "sequence";
5
+ value: N;
6
+ schema: {
7
+ "x-protobuf-sequence": N;
8
+ };
9
+ }>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Sequence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sequence.js","sourceRoot":"","sources":["../../src/tags/Sequence.ts"],"names":[],"mappings":""}
@@ -7,7 +7,7 @@ export type TagBase<Props extends TagBase.IProps<any, any, any, any, any, any>>
7
7
  "typia.tag"?: Props;
8
8
  };
9
9
  export declare namespace TagBase {
10
- interface IProps<Target extends "boolean" | "bigint" | "number" | "string" | "array", Kind extends string, Value extends boolean | bigint | number | string | undefined, Validate extends string | {
10
+ interface IProps<Target extends "boolean" | "bigint" | "number" | "string" | "array" | "object", Kind extends string, Value extends boolean | bigint | number | string | undefined, Validate extends string | {
11
11
  [key in Target]?: string;
12
12
  }, Exclusive extends boolean | string[], Schema extends object | undefined> {
13
13
  /**
@@ -15,6 +15,7 @@ export * from "./MinItems";
15
15
  export * from "./MinLength";
16
16
  export * from "./MultipleOf";
17
17
  export * from "./Pattern";
18
+ export * from "./Sequence";
18
19
  export * from "./TagBase";
19
20
  export * from "./Type";
20
21
  export * from "./UniqueItems";
package/lib/tags/index.js CHANGED
@@ -31,6 +31,7 @@ __exportStar(require("./MinItems"), exports);
31
31
  __exportStar(require("./MinLength"), exports);
32
32
  __exportStar(require("./MultipleOf"), exports);
33
33
  __exportStar(require("./Pattern"), exports);
34
+ __exportStar(require("./Sequence"), exports);
34
35
  __exportStar(require("./TagBase"), exports);
35
36
  __exportStar(require("./Type"), exports);
36
37
  __exportStar(require("./UniqueItems"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tags/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,qDAAmC;AACnC,4CAA0B;AAC1B,4CAA0B;AAC1B,6CAA2B;AAC3B,qDAAmC;AACnC,qDAAmC;AACnC,2CAAyB;AACzB,qDAAmC;AACnC,4CAA0B;AAC1B,6CAA2B;AAC3B,8CAA4B;AAC5B,4CAA0B;AAC1B,6CAA2B;AAC3B,8CAA4B;AAC5B,+CAA6B;AAC7B,4CAA0B;AAC1B,4CAA0B;AAC1B,yCAAuB;AACvB,gDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tags/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,qDAAmC;AACnC,4CAA0B;AAC1B,4CAA0B;AAC1B,6CAA2B;AAC3B,qDAAmC;AACnC,qDAAmC;AACnC,2CAAyB;AACzB,qDAAmC;AACnC,4CAA0B;AAC1B,6CAA2B;AAC3B,8CAA4B;AAC5B,4CAA0B;AAC1B,6CAA2B;AAC3B,8CAA4B;AAC5B,+CAA6B;AAC7B,4CAA0B;AAC1B,6CAA2B;AAC3B,4CAA0B;AAC1B,yCAAuB;AACvB,gDAA8B"}
@@ -1,4 +1,4 @@
1
- export declare namespace NameEncoder {
1
+ export declare namespace ProtobufNameEncoder {
2
2
  const encode: (str: string) => string;
3
3
  const decode: (str: string) => string;
4
4
  }
@@ -27,10 +27,10 @@ var __read = (this && this.__read) || function (o, n) {
27
27
  return ar;
28
28
  };
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.NameEncoder = void 0;
31
- var NameEncoder;
32
- (function (NameEncoder) {
33
- NameEncoder.encode = function (str) {
30
+ exports.ProtobufNameEncoder = void 0;
31
+ var ProtobufNameEncoder;
32
+ (function (ProtobufNameEncoder) {
33
+ ProtobufNameEncoder.encode = function (str) {
34
34
  var e_1, _a;
35
35
  try {
36
36
  for (var REPLACERS_1 = __values(REPLACERS), REPLACERS_1_1 = REPLACERS_1.next(); !REPLACERS_1_1.done; REPLACERS_1_1 = REPLACERS_1.next()) {
@@ -47,7 +47,7 @@ var NameEncoder;
47
47
  }
48
48
  return str;
49
49
  };
50
- NameEncoder.decode = function (str) {
50
+ ProtobufNameEncoder.decode = function (str) {
51
51
  var e_2, _a;
52
52
  try {
53
53
  for (var REPLACERS_2 = __values(REPLACERS), REPLACERS_2_1 = REPLACERS_2.next(); !REPLACERS_2_1.done; REPLACERS_2_1 = REPLACERS_2.next()) {
@@ -65,7 +65,7 @@ var NameEncoder;
65
65
  }
66
66
  return str;
67
67
  };
68
- })(NameEncoder || (exports.NameEncoder = NameEncoder = {}));
68
+ })(ProtobufNameEncoder || (exports.ProtobufNameEncoder = ProtobufNameEncoder = {}));
69
69
  var REPLACERS = [
70
70
  ["$", "_dollar_"],
71
71
  ["&", "_and_"],
@@ -84,4 +84,4 @@ var REPLACERS = [
84
84
  ['"', "_doublequote_"],
85
85
  [" ", "_space_"],
86
86
  ];
87
- //# sourceMappingURL=NameEncoder.js.map
87
+ //# sourceMappingURL=ProtobufNameEncoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProtobufNameEncoder.js","sourceRoot":"","sources":["../../src/utils/ProtobufNameEncoder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAiB,mBAAmB,CAYnC;AAZD,WAAiB,mBAAmB;IACrB,0BAAM,GAAG,UAAC,GAAW;;;YAChC,KAA8B,IAAA,cAAA,SAAA,SAAS,CAAA,oCAAA;gBAA5B,IAAA,KAAA,8BAAe,EAAd,MAAM,QAAA,EAAE,KAAK,QAAA;gBACvB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAAA;;;;;;;;;QACtC,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEW,0BAAM,GAAG,UAAC,GAAW;;;YAChC,KAA8B,IAAA,cAAA,SAAA,SAAS,CAAA,oCAAA;gBAA5B,IAAA,KAAA,8BAAe,EAAd,MAAM,QAAA,EAAE,KAAK,QAAA;gBACvB,IAAI,KAAK,KAAK,EAAE;oBAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAAA;;;;;;;;;QACxD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC,EAZgB,mBAAmB,mCAAnB,mBAAmB,QAYnC;AAED,IAAM,SAAS,GAAuB;IACpC,CAAC,GAAG,EAAE,UAAU,CAAC;IACjB,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,SAAS,CAAC;IAChB,CAAC,GAAG,EAAE,aAAa,CAAC;IACpB,CAAC,GAAG,EAAE,eAAe,CAAC;IACtB,CAAC,GAAG,EAAE,eAAe,CAAC;IACtB,CAAC,GAAG,EAAE,SAAS,CAAC;CACjB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "7.0.0-dev.20241012",
3
+ "version": "7.0.0-dev.20241019",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -66,8 +66,11 @@ export namespace JsonMetadataFactory {
66
66
  if (meta.maps.length) output.push("JSON does not support Map type.");
67
67
  if (meta.sets.length) output.push("JSON does not support Set type.");
68
68
  for (const native of meta.natives)
69
- if (AtomicPredicator.native(native) === false && native !== "Date")
70
- output.push(`JSON does not support ${native} type.`);
69
+ if (
70
+ AtomicPredicator.native(native.name) === false &&
71
+ native.name !== "Date"
72
+ )
73
+ output.push(`JSON does not support ${native.name} type.`);
71
74
  return output;
72
75
  };
73
76
  }
@@ -2,7 +2,7 @@ import ts from "typescript";
2
2
 
3
3
  import { IMetadataComponents } from "../schemas/metadata/IMetadataComponents";
4
4
  import { Metadata } from "../schemas/metadata/Metadata";
5
- import { MetadataAlias } from "../schemas/metadata/MetadataAlias";
5
+ import { MetadataAliasType } from "../schemas/metadata/MetadataAliasType";
6
6
  import { MetadataArrayType } from "../schemas/metadata/MetadataArrayType";
7
7
  import { MetadataObjectType } from "../schemas/metadata/MetadataObjectType";
8
8
  import { MetadataTupleType } from "../schemas/metadata/MetadataTupleType";
@@ -17,7 +17,7 @@ import { TypeFactory } from "./TypeFactory";
17
17
  export class MetadataCollection {
18
18
  private objects_: Map<ts.Type, MetadataObjectType>;
19
19
  private object_unions_: Map<string, MetadataObjectType[]>;
20
- private aliases_: Map<ts.Type, MetadataAlias>;
20
+ private aliases_: Map<ts.Type, MetadataAliasType>;
21
21
  private arrays_: Map<ts.Type, MetadataArrayType>;
22
22
  private tuples_: Map<ts.Type, MetadataTupleType>;
23
23
 
@@ -58,7 +58,7 @@ export class MetadataCollection {
58
58
  /* -----------------------------------------------------------
59
59
  ACCESSORS
60
60
  ----------------------------------------------------------- */
61
- public aliases(): MetadataAlias[] {
61
+ public aliases(): MetadataAliasType[] {
62
62
  return [...this.aliases_.values()];
63
63
  }
64
64
 
@@ -146,12 +146,12 @@ export class MetadataCollection {
146
146
  checker: ts.TypeChecker,
147
147
  type: ts.Type,
148
148
  symbol: ts.Symbol,
149
- ): [MetadataAlias, boolean, (meta: Metadata) => void] {
149
+ ): [MetadataAliasType, boolean, (meta: Metadata) => void] {
150
150
  const oldbie = this.aliases_.get(type);
151
151
  if (oldbie !== undefined) return [oldbie, false, () => {}];
152
152
 
153
153
  const $id: string = this.getName(checker, type);
154
- const alias: MetadataAlias = MetadataAlias.create({
154
+ const alias: MetadataAliasType = MetadataAliasType.create({
155
155
  name: $id,
156
156
  value: null!,
157
157
  description: CommentFactory.description(symbol) ?? null,
@@ -211,7 +211,7 @@ export class MetadataCollection {
211
211
  /**
212
212
  * @internal
213
213
  */
214
- public setAliasRecursive(alias: MetadataAlias, recursive: boolean): void {
214
+ public setAliasRecursive(alias: MetadataAliasType, recursive: boolean): void {
215
215
  Writable(alias).recursive = recursive;
216
216
  }
217
217
 
@@ -1,7 +1,7 @@
1
1
  import ts from "typescript";
2
2
 
3
3
  import { Metadata } from "../schemas/metadata/Metadata";
4
- import { MetadataAlias } from "../schemas/metadata/MetadataAlias";
4
+ import { MetadataAliasType } from "../schemas/metadata/MetadataAliasType";
5
5
  import { MetadataArrayType } from "../schemas/metadata/MetadataArrayType";
6
6
  import { MetadataConstant } from "../schemas/metadata/MetadataConstant";
7
7
  import { MetadataFunction } from "../schemas/metadata/MetadataFunction";
@@ -39,7 +39,7 @@ export namespace MetadataFactory {
39
39
  top: boolean;
40
40
  object: MetadataObjectType | null;
41
41
  property: string | object | null;
42
- nested: null | MetadataAlias | MetadataArrayType | MetadataTupleType;
42
+ nested: null | MetadataAliasType | MetadataArrayType | MetadataTupleType;
43
43
  parameter: string | null;
44
44
  output: boolean;
45
45
  escaped: boolean;
@@ -107,7 +107,7 @@ export namespace MetadataFactory {
107
107
  values: [
108
108
  {
109
109
  value,
110
- tags: undefined,
110
+ tags: [],
111
111
  },
112
112
  ],
113
113
  type: "string",
@@ -186,7 +186,7 @@ export namespace MetadataFactory {
186
186
  for (const alias of props.metadata.aliases)
187
187
  validateAlias({
188
188
  ...props,
189
- alias,
189
+ alias: alias.type,
190
190
  });
191
191
  for (const array of props.metadata.arrays)
192
192
  validateArray({
@@ -211,7 +211,7 @@ export namespace MetadataFactory {
211
211
  for (const set of props.metadata.sets)
212
212
  validateMeta({
213
213
  ...props,
214
- metadata: set,
214
+ metadata: set.value,
215
215
  });
216
216
  for (const map of props.metadata.maps) {
217
217
  validateMeta({
@@ -239,7 +239,7 @@ export namespace MetadataFactory {
239
239
  transformer?: ts.TransformationContext;
240
240
  options: IOptions;
241
241
  visitor: IValidationVisitor;
242
- alias: MetadataAlias;
242
+ alias: MetadataAliasType;
243
243
  explore: IExplore;
244
244
  }) => {
245
245
  if (props.visitor.aliases.has(props.alias)) return;
@@ -400,7 +400,7 @@ export namespace MetadataFactory {
400
400
  objects: Set<MetadataObjectType>;
401
401
  arrays: Set<MetadataArrayType>;
402
402
  tuples: Set<MetadataTupleType>;
403
- aliases: Set<MetadataAlias>;
403
+ aliases: Set<MetadataAliasType>;
404
404
  functions: Set<MetadataFunction>;
405
405
  }
406
406
  }
@@ -7,9 +7,33 @@ import { MetadataFactory } from "./MetadataFactory";
7
7
  import { MetadataTypeTagSchemaFactory } from "./MetadataTypeTagSchemaFactory";
8
8
 
9
9
  export namespace MetadataTypeTagFactory {
10
+ export const is = (obj: MetadataObjectType): boolean => {
11
+ if (obj.properties.length !== 1) return false;
12
+
13
+ const top: MetadataProperty = obj.properties[0]!;
14
+ if (top.key.isSoleLiteral() === false) return false;
15
+ else if (top.key.getSoleLiteral() !== "typia.tag") return false;
16
+
17
+ const value: Metadata = top.value;
18
+ if (
19
+ value.size() !== 1 ||
20
+ value.objects.length !== 1 ||
21
+ value.isRequired() === true ||
22
+ value.nullable === true
23
+ )
24
+ return false;
25
+
26
+ const tag: MetadataObjectType = top.value.objects[0]!.type;
27
+ const statics: string[] = tag.properties
28
+ .map((p) => p.key.getSoleLiteral()!)
29
+ .filter((str) => str !== null);
30
+ if (ESSENTIAL_FIELDS.some((f) => !statics.includes(f))) return false;
31
+ return true;
32
+ };
33
+
10
34
  export const analyze = (props: {
11
35
  errors: MetadataFactory.IError[];
12
- type: "boolean" | "bigint" | "number" | "string" | "array";
36
+ type: "boolean" | "bigint" | "number" | "string" | "array" | "object";
13
37
  objects: MetadataObjectType[];
14
38
  explore: MetadataFactory.IExplore;
15
39
  }): IMetadataTypeTag[] => {
@@ -120,7 +144,7 @@ export namespace MetadataTypeTagFactory {
120
144
 
121
145
  export const validate = (props: {
122
146
  report: (next: { property: string | null; message: string }) => false;
123
- type: "boolean" | "bigint" | "number" | "string" | "array";
147
+ type: "boolean" | "bigint" | "number" | "string" | "array" | "object";
124
148
  tags: IMetadataTypeTag[];
125
149
  }): boolean => {
126
150
  let success: boolean = true;
@@ -176,12 +200,13 @@ export namespace MetadataTypeTagFactory {
176
200
  v.value !== "bigint" &&
177
201
  v.value !== "number" &&
178
202
  v.value !== "string" &&
179
- v.value !== "array",
203
+ v.value !== "array" &&
204
+ v.value !== "object",
180
205
  ))
181
206
  )
182
207
  return props.report({
183
208
  property: props.key,
184
- message: `must be one of 'boolean', 'bigint', 'number', 'string', 'array'`,
209
+ message: `must be one of 'boolean', 'bigint', 'number', 'string', 'array', 'object'`,
185
210
  });
186
211
  else if (
187
212
  // KIND
@@ -237,7 +262,7 @@ export namespace MetadataTypeTagFactory {
237
262
  if (target === undefined)
238
263
  return props.report({
239
264
  property: "target",
240
- message: `must be one of 'boolean', 'bigint', 'number', 'string', 'array'`,
265
+ message: `must be one of 'boolean', 'bigint', 'number', 'string', 'array', 'object`,
241
266
  });
242
267
  const variadic: boolean =
243
268
  props.value.size() === 1 &&
@@ -374,7 +399,7 @@ export namespace MetadataTypeTagFactory {
374
399
 
375
400
  interface ITypeTag {
376
401
  name: string;
377
- target: Array<"bigint" | "number" | "string" | "array">;
402
+ target: Array<"bigint" | "number" | "string" | "array" | "object">;
378
403
  kind: string;
379
404
  value?: undefined | boolean | bigint | number | string;
380
405
  validate: Record<string, string>;