typia 7.0.0-dev.20241129 → 7.0.0-dev.20241130
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/README.md +3 -2
- package/lib/factories/MetadataCollection.d.ts +1 -1
- package/lib/factories/MetadataCollection.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js +10 -9
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
- package/package.json +2 -2
- package/src/factories/MetadataCollection.ts +1 -3
- package/src/factories/internal/metadata/iterate_metadata_intersection.ts +11 -9
- package/src/schemas/metadata/IMetadataApplication.ts +7 -7
- package/src/schemas/metadata/MetadataApplication.ts +44 -44
- package/src/schemas/metadata/MetadataAtomic.ts +87 -87
package/README.md
CHANGED
|
@@ -22,7 +22,7 @@ export namespace json {
|
|
|
22
22
|
export function assertStringify<T>(input: T): string; // safe and faster
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
// LLM FUNCTION CALLING
|
|
25
|
+
// LLM FUNCTION CALLING SCHEMA
|
|
26
26
|
export namespace llm {
|
|
27
27
|
// application schema from a class or interface type
|
|
28
28
|
export function application<App, Model>(): ILlmApplication<Model>;
|
|
@@ -46,7 +46,7 @@ Typia is a transformer library supporting below features:
|
|
|
46
46
|
|
|
47
47
|
- Super-fast Runtime Validators
|
|
48
48
|
- Enhanced JSON functions
|
|
49
|
-
- LLM function calling application
|
|
49
|
+
- LLM function calling application schema
|
|
50
50
|
- Protocol Buffer encoder and decoder
|
|
51
51
|
- Random data generator
|
|
52
52
|
|
|
@@ -103,6 +103,7 @@ Check out the document in the [website](https://typia.io/docs/):
|
|
|
103
103
|
- [`parse()` functions](https://typia.io/docs/json/parse/)
|
|
104
104
|
- LLM Function Calling
|
|
105
105
|
- [`application()` function](https://typia.io/docs/llm/application/)
|
|
106
|
+
- [`parameters()` function](https://typia.io/docs/llm/parameters/)
|
|
106
107
|
- [`schema()` function](https://typia.io/docs/llm/schema/)
|
|
107
108
|
- Protocol Buffer
|
|
108
109
|
- [Message Schema](https://typia.io/docs/protobuf/message)
|
|
@@ -6,7 +6,7 @@ import { MetadataArrayType } from "../schemas/metadata/MetadataArrayType";
|
|
|
6
6
|
import { MetadataObjectType } from "../schemas/metadata/MetadataObjectType";
|
|
7
7
|
import { MetadataTupleType } from "../schemas/metadata/MetadataTupleType";
|
|
8
8
|
export declare class MetadataCollection {
|
|
9
|
-
private
|
|
9
|
+
private options?;
|
|
10
10
|
private objects_;
|
|
11
11
|
private object_unions_;
|
|
12
12
|
private aliases_;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetadataCollection.js","sourceRoot":"","sources":["../../src/factories/MetadataCollection.ts"],"names":[],"mappings":";;;AAIA,6EAA0E;AAC1E,6EAA0E;AAC1E,+EAA4E;AAC5E,6EAA0E;AAE1E,kDAA+C;AAE/C,8CAA2C;AAE3C,qDAAkD;AAClD,+CAA4C;AAE5C,MAAa,kBAAkB;IAY7B,
|
|
1
|
+
{"version":3,"file":"MetadataCollection.js","sourceRoot":"","sources":["../../src/factories/MetadataCollection.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,21 +11,22 @@ const iterate_metadata_intersection = (props) => {
|
|
|
11
11
|
return false;
|
|
12
12
|
// COSTRUCT FAKE METADATA LIST
|
|
13
13
|
const commit = props.collection.clone();
|
|
14
|
+
props.collection["options"] = undefined;
|
|
14
15
|
const fakeErrors = [];
|
|
15
16
|
const children = props.type.types.map((t) => (0, explore_metadata_1.explore_metadata)(Object.assign(Object.assign({}, props), { options: Object.assign(Object.assign({}, props.options), { absorb: true, functional: false }), collection: props.collection, errors: fakeErrors, type: t, explore: Object.assign(Object.assign({}, props.explore), { aliased: false }), intersected: false })));
|
|
16
17
|
// ERROR OR ANY TYPE CASE
|
|
17
|
-
const escape = () => {
|
|
18
|
+
const escape = (out) => {
|
|
18
19
|
Object.assign(props.collection, commit);
|
|
19
|
-
return
|
|
20
|
+
return out;
|
|
20
21
|
};
|
|
21
22
|
if (fakeErrors.length) {
|
|
22
23
|
props.errors.push(...fakeErrors);
|
|
23
|
-
return true;
|
|
24
|
+
return escape(true);
|
|
24
25
|
}
|
|
25
26
|
else if (children.length === 0)
|
|
26
|
-
return escape();
|
|
27
|
+
return escape(false);
|
|
27
28
|
else if (children.some((m) => m.any === true || m.size() === 0))
|
|
28
|
-
return escape();
|
|
29
|
+
return escape(false);
|
|
29
30
|
// PREPARE MEATDATAS AND TAGS
|
|
30
31
|
const indexes = [];
|
|
31
32
|
const metadatas = [];
|
|
@@ -46,7 +47,7 @@ const iterate_metadata_intersection = (props) => {
|
|
|
46
47
|
explore: Object.assign({}, props.explore),
|
|
47
48
|
messages: ["nonsensible intersection"],
|
|
48
49
|
});
|
|
49
|
-
return true;
|
|
50
|
+
return escape(true);
|
|
50
51
|
};
|
|
51
52
|
// NO METADATA CASE
|
|
52
53
|
if (metadatas.length === 0)
|
|
@@ -56,14 +57,14 @@ const iterate_metadata_intersection = (props) => {
|
|
|
56
57
|
explore: Object.assign({}, props.explore),
|
|
57
58
|
messages: ["type tag cannot be standalone"],
|
|
58
59
|
});
|
|
59
|
-
return true;
|
|
60
|
+
return escape(true);
|
|
60
61
|
}
|
|
61
62
|
else
|
|
62
|
-
return escape();
|
|
63
|
+
return escape(false);
|
|
63
64
|
// ONLY OBJECTS CASE
|
|
64
65
|
else if (metadatas.every((m) => m.objects.length === 1) &&
|
|
65
66
|
tagObjects.length === 0)
|
|
66
|
-
return escape();
|
|
67
|
+
return escape(false);
|
|
67
68
|
else if (metadatas.length !== 1) {
|
|
68
69
|
const indexes = metadatas
|
|
69
70
|
.map((m, i) => m.size() === 1 &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iterate_metadata_intersection.js","sourceRoot":"","sources":["../../../../src/factories/internal/metadata/iterate_metadata_intersection.ts"],"names":[],"mappings":";;;AAOA,yEAAsE;AAEtE,yDAAsD;AACtD,yDAAsD;AAE/C,MAAM,6BAA6B,GAAG,CAC3C,KAA6B,EACpB,EAAE;IACX,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;SACxC,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAE7D,8BAA8B;IAC9B,MAAM,MAAM,GAAuB,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC5D,MAAM,UAAU,GAA6B,EAAE,CAAC;IAChD,MAAM,QAAQ,GAAe,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACtD,IAAA,mCAAgB,kCACX,KAAK,KACR,OAAO,kCACF,KAAK,CAAC,OAAO,KAChB,MAAM,EAAE,IAAI,EACZ,UAAU,EAAE,KAAK,KAEnB,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,CAAC,EACP,OAAO,kCACF,KAAK,CAAC,OAAO,KAChB,OAAO,EAAE,KAAK,KAEhB,WAAW,EAAE,KAAK,IAClB,CACH,CAAC;IAEF,yBAAyB;IACzB,MAAM,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"iterate_metadata_intersection.js","sourceRoot":"","sources":["../../../../src/factories/internal/metadata/iterate_metadata_intersection.ts"],"names":[],"mappings":";;;AAOA,yEAAsE;AAEtE,yDAAsD;AACtD,yDAAsD;AAE/C,MAAM,6BAA6B,GAAG,CAC3C,KAA6B,EACpB,EAAE;IACX,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;SACxC,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAE7D,8BAA8B;IAC9B,MAAM,MAAM,GAAuB,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC5D,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAExC,MAAM,UAAU,GAA6B,EAAE,CAAC;IAChD,MAAM,QAAQ,GAAe,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACtD,IAAA,mCAAgB,kCACX,KAAK,KACR,OAAO,kCACF,KAAK,CAAC,OAAO,KAChB,MAAM,EAAE,IAAI,EACZ,UAAU,EAAE,KAAK,KAEnB,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,CAAC,EACP,OAAO,kCACF,KAAK,CAAC,OAAO,KAChB,OAAO,EAAE,KAAK,KAEhB,WAAW,EAAE,KAAK,IAClB,CACH,CAAC;IAEF,yBAAyB;IACzB,MAAM,MAAM,GAAG,CAAC,GAAY,EAAE,EAAE;QAC9B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACxC,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IACF,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;SAClD,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IAEvB,6BAA6B;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,MAAM,UAAU,GAAyB,EAAE,CAAC;IAC5C,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5B,IACE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;YAClB,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAC1B,+CAAsB,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC;YAEjD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC;aACrC,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;YAChB,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YAClD,OAAO,oBAAO,KAAK,CAAC,OAAO,CAAE;YAC7B,QAAQ,EAAE,CAAC,0BAA0B,CAAC;SACvC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,mBAAmB;IACnB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QACxB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;gBAChB,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;gBAClD,OAAO,oBAAO,KAAK,CAAC,OAAO,CAAE;gBAC7B,QAAQ,EAAE,CAAC,+BAA+B,CAAC;aAC5C,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;;YAAM,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,oBAAoB;SACf,IACH,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;QAC9C,UAAU,CAAC,MAAM,KAAK,CAAC;QAEvB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;SAClB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,OAAO,GAAa,SAAS;aAChC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACZ,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC;YACd,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YACtB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;gBACzC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;YACtE,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,IAAI,CACT;aACA,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAC7B,IAAI,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;YACvD,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE;gBAAE,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;YACvD,OAAO,WAAW,EAAE,CAAC;IAC5B,CAAC;SAAM,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAAE,OAAO,WAAW,EAAE,CAAC;IAEvE,MAAM,UAAU,GAAwB,IAAI,GAAG,EAAE,CAAC;IAClD,MAAM,SAAS,GAA8C,EAAE,CAAC;IAChE,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/B,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;;gBACtB,OAAA,MAAA,KAAK,CAAC,QAAQ,CAAC,OAAO;qBACnB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,0CACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aAAA,CACpB,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS;YAC5B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBACzB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC/B,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;;oBACtB,OAAA,MAAA,MAAA,MAAA,KAAK,CAAC,QAAQ,CAAC,SAAS;yBACrB,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,0CAC3C,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,0CACnC,IAAI,0CAAE,IAAI,CAAC,IAAI,CAAC,CAAA;iBAAA,CACrB,CAAC;YACJ,CAAC;QACH,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/B,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACnC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;;gBACtB,OAAA,MAAA,KAAK,CAAC,QAAQ,CAAC,SAAS;qBACrB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,0CACnD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aAAA,CACpB,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACxB,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACnC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAA,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACjC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAA,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC3D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC9C,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;;gBACtB,OAAA,MAAA,KAAK,CAAC,QAAQ,CAAC,OAAO;qBACnB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,0CACvC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aAAA,CACpB,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1B,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;YACtD,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;;gBACtB,OAAA,MAAA,KAAK,CAAC,QAAQ,CAAC,IAAI;qBAChB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,0CACvD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aAAA,CACpB,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1B,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC1E,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;;gBACtB,OAAA,MAAA,KAAK,CAAC,QAAQ,CAAC,IAAI;qBAChB,IAAI,CACH,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE;oBACrC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAC5C,0CACC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aAAA,CACpB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IACE,UAAU,CAAC,IAAI,KAAK,CAAC;QACrB,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC;IAC7B,KAAK;IACL,4BAA4B;IAC5B,+DAA+D;;QAE/D,OAAO,WAAW,EAAE,CAAC;IAEvB,MAAM,IAAI,GAAuB,+CAAsB,CAAC,OAAO,CAAC;QAC9D,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAiB;QAClD,OAAO,EAAE,UAAU;QACnB,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACxC,IAAA,mCAAgB,kCACX,KAAK,KACR,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,CAAE,EACpC,OAAO,kCACF,KAAK,CAAC,OAAO,KAChB,UAAU,EAAE,KAAK,KAEnB,OAAO,kCACF,KAAK,CAAC,OAAO,KAChB,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,KAAK,KAEhB,WAAW,EAAE,IAAI,IACjB,CAAC;IACH,IAAI,IAAI,CAAC,MAAM;QAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAxMW,QAAA,6BAA6B,iCAwMxC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typia",
|
|
3
|
-
"version": "7.0.0-dev.
|
|
3
|
+
"version": "7.0.0-dev.20241130",
|
|
4
4
|
"description": "Superfast runtime validators with only one line",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
},
|
|
42
42
|
"homepage": "https://typia.io",
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@samchon/openapi": "^2.0.0-dev.
|
|
44
|
+
"@samchon/openapi": "^2.0.0-dev.20241130",
|
|
45
45
|
"commander": "^10.0.0",
|
|
46
46
|
"comment-json": "^4.2.3",
|
|
47
47
|
"inquirer": "^8.2.5",
|
|
@@ -26,9 +26,7 @@ export class MetadataCollection {
|
|
|
26
26
|
private recursive_array_index_: number;
|
|
27
27
|
private recursive_tuple_index_: number;
|
|
28
28
|
|
|
29
|
-
public constructor(
|
|
30
|
-
private readonly options?: Partial<MetadataCollection.IOptions>,
|
|
31
|
-
) {
|
|
29
|
+
public constructor(private options?: Partial<MetadataCollection.IOptions>) {
|
|
32
30
|
this.objects_ = new Map();
|
|
33
31
|
this.object_unions_ = new Map();
|
|
34
32
|
this.aliases_ = new Map();
|
|
@@ -18,6 +18,8 @@ export const iterate_metadata_intersection = (
|
|
|
18
18
|
|
|
19
19
|
// COSTRUCT FAKE METADATA LIST
|
|
20
20
|
const commit: MetadataCollection = props.collection.clone();
|
|
21
|
+
props.collection["options"] = undefined;
|
|
22
|
+
|
|
21
23
|
const fakeErrors: MetadataFactory.IError[] = [];
|
|
22
24
|
const children: Metadata[] = props.type.types.map((t) =>
|
|
23
25
|
explore_metadata({
|
|
@@ -39,16 +41,16 @@ export const iterate_metadata_intersection = (
|
|
|
39
41
|
);
|
|
40
42
|
|
|
41
43
|
// ERROR OR ANY TYPE CASE
|
|
42
|
-
const escape = () => {
|
|
44
|
+
const escape = (out: boolean) => {
|
|
43
45
|
Object.assign(props.collection, commit);
|
|
44
|
-
return
|
|
46
|
+
return out;
|
|
45
47
|
};
|
|
46
48
|
if (fakeErrors.length) {
|
|
47
49
|
props.errors.push(...fakeErrors);
|
|
48
|
-
return true;
|
|
49
|
-
} else if (children.length === 0) return escape();
|
|
50
|
+
return escape(true);
|
|
51
|
+
} else if (children.length === 0) return escape(false);
|
|
50
52
|
else if (children.some((m) => m.any === true || m.size() === 0))
|
|
51
|
-
return escape();
|
|
53
|
+
return escape(false);
|
|
52
54
|
|
|
53
55
|
// PREPARE MEATDATAS AND TAGS
|
|
54
56
|
const indexes: number[] = [];
|
|
@@ -73,7 +75,7 @@ export const iterate_metadata_intersection = (
|
|
|
73
75
|
explore: { ...props.explore },
|
|
74
76
|
messages: ["nonsensible intersection"],
|
|
75
77
|
});
|
|
76
|
-
return true;
|
|
78
|
+
return escape(true);
|
|
77
79
|
};
|
|
78
80
|
|
|
79
81
|
// NO METADATA CASE
|
|
@@ -84,14 +86,14 @@ export const iterate_metadata_intersection = (
|
|
|
84
86
|
explore: { ...props.explore },
|
|
85
87
|
messages: ["type tag cannot be standalone"],
|
|
86
88
|
});
|
|
87
|
-
return true;
|
|
88
|
-
} else return escape();
|
|
89
|
+
return escape(true);
|
|
90
|
+
} else return escape(false);
|
|
89
91
|
// ONLY OBJECTS CASE
|
|
90
92
|
else if (
|
|
91
93
|
metadatas.every((m) => m.objects.length === 1) &&
|
|
92
94
|
tagObjects.length === 0
|
|
93
95
|
)
|
|
94
|
-
return escape();
|
|
96
|
+
return escape(false);
|
|
95
97
|
else if (metadatas.length !== 1) {
|
|
96
98
|
const indexes: number[] = metadatas
|
|
97
99
|
.map((m, i) =>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { IMetadata } from "./IMetadata";
|
|
2
|
-
import { IMetadataComponents } from "./IMetadataComponents";
|
|
3
|
-
|
|
4
|
-
export interface IMetadataApplication {
|
|
5
|
-
metadatas: IMetadata[];
|
|
6
|
-
components: IMetadataComponents;
|
|
7
|
-
}
|
|
1
|
+
import { IMetadata } from "./IMetadata";
|
|
2
|
+
import { IMetadataComponents } from "./IMetadataComponents";
|
|
3
|
+
|
|
4
|
+
export interface IMetadataApplication {
|
|
5
|
+
metadatas: IMetadata[];
|
|
6
|
+
components: IMetadataComponents;
|
|
7
|
+
}
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
import { ClassProperties } from "../../typings/ClassProperties";
|
|
2
|
-
|
|
3
|
-
import { IMetadataApplication } from "./IMetadataApplication";
|
|
4
|
-
import { Metadata } from "./Metadata";
|
|
5
|
-
import { MetadataComponents } from "./MetadataComponents";
|
|
6
|
-
|
|
7
|
-
export class MetadataApplication {
|
|
8
|
-
public readonly metadatas: Metadata[];
|
|
9
|
-
public readonly components: MetadataComponents;
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @hidden
|
|
13
|
-
*/
|
|
14
|
-
private constructor(props: ClassProperties<MetadataApplication>) {
|
|
15
|
-
this.metadatas = props.metadatas;
|
|
16
|
-
this.components = props.components;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* @internal
|
|
21
|
-
*/
|
|
22
|
-
public static create(
|
|
23
|
-
props: ClassProperties<MetadataApplication>,
|
|
24
|
-
): MetadataApplication {
|
|
25
|
-
return new MetadataApplication(props);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
public static from(app: IMetadataApplication): MetadataApplication {
|
|
29
|
-
const components: MetadataComponents = MetadataComponents.from(
|
|
30
|
-
app.components,
|
|
31
|
-
);
|
|
32
|
-
const metadatas: Metadata[] = app.metadatas.map((metadata) =>
|
|
33
|
-
Metadata.from(metadata, components.dictionary),
|
|
34
|
-
);
|
|
35
|
-
return MetadataApplication.create({ metadatas, components });
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
public toJSON(): IMetadataApplication {
|
|
39
|
-
return {
|
|
40
|
-
metadatas: this.metadatas.map((metadata) => metadata.toJSON()),
|
|
41
|
-
components: this.components.toJSON(),
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
}
|
|
1
|
+
import { ClassProperties } from "../../typings/ClassProperties";
|
|
2
|
+
|
|
3
|
+
import { IMetadataApplication } from "./IMetadataApplication";
|
|
4
|
+
import { Metadata } from "./Metadata";
|
|
5
|
+
import { MetadataComponents } from "./MetadataComponents";
|
|
6
|
+
|
|
7
|
+
export class MetadataApplication {
|
|
8
|
+
public readonly metadatas: Metadata[];
|
|
9
|
+
public readonly components: MetadataComponents;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @hidden
|
|
13
|
+
*/
|
|
14
|
+
private constructor(props: ClassProperties<MetadataApplication>) {
|
|
15
|
+
this.metadatas = props.metadatas;
|
|
16
|
+
this.components = props.components;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
public static create(
|
|
23
|
+
props: ClassProperties<MetadataApplication>,
|
|
24
|
+
): MetadataApplication {
|
|
25
|
+
return new MetadataApplication(props);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public static from(app: IMetadataApplication): MetadataApplication {
|
|
29
|
+
const components: MetadataComponents = MetadataComponents.from(
|
|
30
|
+
app.components,
|
|
31
|
+
);
|
|
32
|
+
const metadatas: Metadata[] = app.metadatas.map((metadata) =>
|
|
33
|
+
Metadata.from(metadata, components.dictionary),
|
|
34
|
+
);
|
|
35
|
+
return MetadataApplication.create({ metadatas, components });
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
public toJSON(): IMetadataApplication {
|
|
39
|
+
return {
|
|
40
|
+
metadatas: this.metadatas.map((metadata) => metadata.toJSON()),
|
|
41
|
+
components: this.components.toJSON(),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
import { ClassProperties } from "../../typings/ClassProperties";
|
|
2
|
-
|
|
3
|
-
import { IMetadataAtomic } from "./IMetadataAtomic";
|
|
4
|
-
import { IMetadataTypeTag } from "./IMetadataTypeTag";
|
|
5
|
-
|
|
6
|
-
export class MetadataAtomic {
|
|
7
|
-
public readonly type: "boolean" | "bigint" | "number" | "string";
|
|
8
|
-
public readonly tags: IMetadataTypeTag[][];
|
|
9
|
-
|
|
10
|
-
private name_?: string;
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* @internal
|
|
14
|
-
*/
|
|
15
|
-
private constructor(props: ClassProperties<MetadataAtomic>) {
|
|
16
|
-
this.type = props.type;
|
|
17
|
-
this.tags = props.tags;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
public static create(props: ClassProperties<MetadataAtomic>): MetadataAtomic {
|
|
21
|
-
return new MetadataAtomic(props);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
public static from(json: IMetadataAtomic): MetadataAtomic {
|
|
25
|
-
return MetadataAtomic.create({
|
|
26
|
-
type: json.type,
|
|
27
|
-
tags: json.tags.map((row) =>
|
|
28
|
-
row.map((tag) => ({
|
|
29
|
-
target: tag.target,
|
|
30
|
-
name: tag.name,
|
|
31
|
-
kind: tag.kind,
|
|
32
|
-
value:
|
|
33
|
-
typeof tag.value === "object" &&
|
|
34
|
-
tag.value?.type === "bigint" &&
|
|
35
|
-
typeof tag.value.value === "string"
|
|
36
|
-
? BigInt(tag.value.value)
|
|
37
|
-
: tag.value,
|
|
38
|
-
validate: tag.validate,
|
|
39
|
-
exclusive: tag.exclusive,
|
|
40
|
-
schema: tag.schema,
|
|
41
|
-
})),
|
|
42
|
-
),
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
public getName(): string {
|
|
47
|
-
return (this.name_ ??= getName(this));
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
public toJSON(): IMetadataAtomic {
|
|
51
|
-
return {
|
|
52
|
-
type: this.type,
|
|
53
|
-
tags: this.tags.map((row) =>
|
|
54
|
-
row.map((tag) => ({
|
|
55
|
-
target: tag.target,
|
|
56
|
-
name: tag.name,
|
|
57
|
-
kind: tag.kind,
|
|
58
|
-
value:
|
|
59
|
-
typeof tag.value === "bigint"
|
|
60
|
-
? {
|
|
61
|
-
type: "bigint",
|
|
62
|
-
value: tag.value.toString(),
|
|
63
|
-
}
|
|
64
|
-
: tag.value,
|
|
65
|
-
validate: tag.validate,
|
|
66
|
-
exclusive: tag.exclusive,
|
|
67
|
-
schema: tag.schema,
|
|
68
|
-
})),
|
|
69
|
-
),
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const getName = (obj: MetadataAtomic): string => {
|
|
75
|
-
if (obj.tags.length === 0) return obj.type;
|
|
76
|
-
else if (obj.tags.length === 1) {
|
|
77
|
-
const str: string = [obj.type, ...obj.tags[0]!.map((t) => t.name)].join(
|
|
78
|
-
" & ",
|
|
79
|
-
);
|
|
80
|
-
return `(${str})`;
|
|
81
|
-
}
|
|
82
|
-
const rows: string[] = obj.tags.map((row) => {
|
|
83
|
-
const str: string = row.map((t) => t.name).join(" & ");
|
|
84
|
-
return row.length === 1 ? str : `(${str})`;
|
|
85
|
-
});
|
|
86
|
-
return `(${obj.type} & (${rows.join(" | ")}))`;
|
|
87
|
-
};
|
|
1
|
+
import { ClassProperties } from "../../typings/ClassProperties";
|
|
2
|
+
|
|
3
|
+
import { IMetadataAtomic } from "./IMetadataAtomic";
|
|
4
|
+
import { IMetadataTypeTag } from "./IMetadataTypeTag";
|
|
5
|
+
|
|
6
|
+
export class MetadataAtomic {
|
|
7
|
+
public readonly type: "boolean" | "bigint" | "number" | "string";
|
|
8
|
+
public readonly tags: IMetadataTypeTag[][];
|
|
9
|
+
|
|
10
|
+
private name_?: string;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
private constructor(props: ClassProperties<MetadataAtomic>) {
|
|
16
|
+
this.type = props.type;
|
|
17
|
+
this.tags = props.tags;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
public static create(props: ClassProperties<MetadataAtomic>): MetadataAtomic {
|
|
21
|
+
return new MetadataAtomic(props);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public static from(json: IMetadataAtomic): MetadataAtomic {
|
|
25
|
+
return MetadataAtomic.create({
|
|
26
|
+
type: json.type,
|
|
27
|
+
tags: json.tags.map((row) =>
|
|
28
|
+
row.map((tag) => ({
|
|
29
|
+
target: tag.target,
|
|
30
|
+
name: tag.name,
|
|
31
|
+
kind: tag.kind,
|
|
32
|
+
value:
|
|
33
|
+
typeof tag.value === "object" &&
|
|
34
|
+
tag.value?.type === "bigint" &&
|
|
35
|
+
typeof tag.value.value === "string"
|
|
36
|
+
? BigInt(tag.value.value)
|
|
37
|
+
: tag.value,
|
|
38
|
+
validate: tag.validate,
|
|
39
|
+
exclusive: tag.exclusive,
|
|
40
|
+
schema: tag.schema,
|
|
41
|
+
})),
|
|
42
|
+
),
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public getName(): string {
|
|
47
|
+
return (this.name_ ??= getName(this));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
public toJSON(): IMetadataAtomic {
|
|
51
|
+
return {
|
|
52
|
+
type: this.type,
|
|
53
|
+
tags: this.tags.map((row) =>
|
|
54
|
+
row.map((tag) => ({
|
|
55
|
+
target: tag.target,
|
|
56
|
+
name: tag.name,
|
|
57
|
+
kind: tag.kind,
|
|
58
|
+
value:
|
|
59
|
+
typeof tag.value === "bigint"
|
|
60
|
+
? {
|
|
61
|
+
type: "bigint",
|
|
62
|
+
value: tag.value.toString(),
|
|
63
|
+
}
|
|
64
|
+
: tag.value,
|
|
65
|
+
validate: tag.validate,
|
|
66
|
+
exclusive: tag.exclusive,
|
|
67
|
+
schema: tag.schema,
|
|
68
|
+
})),
|
|
69
|
+
),
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const getName = (obj: MetadataAtomic): string => {
|
|
75
|
+
if (obj.tags.length === 0) return obj.type;
|
|
76
|
+
else if (obj.tags.length === 1) {
|
|
77
|
+
const str: string = [obj.type, ...obj.tags[0]!.map((t) => t.name)].join(
|
|
78
|
+
" & ",
|
|
79
|
+
);
|
|
80
|
+
return `(${str})`;
|
|
81
|
+
}
|
|
82
|
+
const rows: string[] = obj.tags.map((row) => {
|
|
83
|
+
const str: string = row.map((t) => t.name).join(" & ");
|
|
84
|
+
return row.length === 1 ? str : `(${str})`;
|
|
85
|
+
});
|
|
86
|
+
return `(${obj.type} & (${rows.join(" | ")}))`;
|
|
87
|
+
};
|