typia 4.0.5 → 4.0.6-dev.20230612
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/lib/Primitive.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata.js +2 -0
- package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_intersection.d.ts +5 -0
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js +79 -0
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -0
- package/lib/factories/internal/metadata/iterate_metadata_object.d.ts +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_object.js +20 -15
- package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
- package/lib/metadata/Metadata.js +2 -0
- package/lib/metadata/Metadata.js.map +1 -1
- package/package.json +2 -2
- package/src/Primitive.ts +131 -125
- package/src/factories/internal/metadata/emplace_metadata_object.ts +140 -140
- package/src/factories/internal/metadata/emplace_metadata_tuple.ts +53 -53
- package/src/factories/internal/metadata/iterate_metadata.ts +7 -0
- package/src/factories/internal/metadata/iterate_metadata_intersection.ts +86 -0
- package/src/factories/internal/metadata/iterate_metadata_object.ts +31 -23
- package/src/metadata/Metadata.ts +1 -0
- package/src/programmers/internal/application_alias.ts +51 -51
package/lib/Primitive.d.ts
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
*/
|
|
31
31
|
export type Primitive<T> = Equal<T, PrimitiveMain<T>> extends true ? T : PrimitiveMain<T>;
|
|
32
32
|
type Equal<X, Y> = X extends Y ? (Y extends X ? true : false) : false;
|
|
33
|
-
type PrimitiveMain<Instance> = ValueOf<Instance> extends object ? Instance extends object ? Instance extends NativeClass ? {} : Instance extends IJsonable<infer Raw> ? ValueOf<Raw> extends object ? Raw extends object ? PrimitiveObject<Raw> : never : ValueOf<Raw> : PrimitiveObject<Instance> : never : ValueOf<Instance>;
|
|
33
|
+
type PrimitiveMain<Instance> = ValueOf<Instance> extends boolean | number | bigint | string ? ValueOf<Instance> : ValueOf<Instance> extends object ? Instance extends object ? Instance extends NativeClass ? {} : Instance extends IJsonable<infer Raw> ? ValueOf<Raw> extends object ? Raw extends object ? PrimitiveObject<Raw> : never : ValueOf<Raw> : PrimitiveObject<Instance> : never : ValueOf<Instance>;
|
|
34
34
|
type PrimitiveObject<Instance extends object> = Instance extends Array<infer T> ? IsTuple<Instance> extends true ? PrimitiveTuple<Instance> : PrimitiveMain<T>[] : {
|
|
35
35
|
[P in keyof Instance]: Instance[P] extends Function ? never : PrimitiveMain<Instance[P]>;
|
|
36
36
|
};
|
|
@@ -6,6 +6,7 @@ var iterate_metadata_atomic_1 = require("./iterate_metadata_atomic");
|
|
|
6
6
|
var iterate_metadata_coalesce_1 = require("./iterate_metadata_coalesce");
|
|
7
7
|
var iterate_metadata_constant_1 = require("./iterate_metadata_constant");
|
|
8
8
|
var iterate_metadata_definition_1 = require("./iterate_metadata_definition");
|
|
9
|
+
var iterate_metadata_intersection_1 = require("./iterate_metadata_intersection");
|
|
9
10
|
var iterate_metadata_map_1 = require("./iterate_metadata_map");
|
|
10
11
|
var iterate_metadata_native_1 = require("./iterate_metadata_native");
|
|
11
12
|
var iterate_metadata_object_1 = require("./iterate_metadata_object");
|
|
@@ -22,6 +23,7 @@ var iterate_metadata = function (checker) {
|
|
|
22
23
|
throw new Error("Error on typia.MetadataFactory.generate(): non-specified generic argument on ".concat(meta.getName(), "."));
|
|
23
24
|
if ((aliased !== true &&
|
|
24
25
|
(0, iterate_metadata_definition_1.iterate_metadata_definition)(checker)(options)(collection)(meta, type)) ||
|
|
26
|
+
(0, iterate_metadata_intersection_1.iterate_metadata_intersection)(checker)(options)(collection)(meta, type, parentResolved, aliased) ||
|
|
25
27
|
(0, iterate_metadata_union_1.iterate_metadata_union)(checker)(options)(collection)(meta, type, parentResolved) ||
|
|
26
28
|
(0, iterate_metadata_resolve_1.iterate_metadata_resolve)(checker)(options)(collection)(meta, type, parentResolved))
|
|
27
29
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iterate_metadata.js","sourceRoot":"","sources":["../../../../src/factories/internal/metadata/iterate_metadata.ts"],"names":[],"mappings":";;;AAOA,mEAAkE;AAClE,qEAAoE;AACpE,yEAAwE;AACxE,yEAAwE;AACxE,6EAA4E;AAC5E,+DAA8D;AAC9D,qEAAoE;AACpE,qEAAoE;AACpE,uEAAsE;AACtE,+DAA8D;AAC9D,yEAAwE;AACxE,mEAAkE;AAClE,mEAAkE;AAE3D,IAAM,gBAAgB,GACzB,UAAC,OAAuB;IACxB,OAAA,UAAC,OAAiC;QAClC,OAAA,UAAC,UAA8B;YAC/B,OAAA,UACI,IAAc,EACd,IAAa,EACb,cAAuB,EACvB,OAAgB;gBAEhB,IAAI,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI;oBAC/B,MAAM,IAAI,KAAK,CACX,uFAAgF,IAAI,CAAC,OAAO,EAAE,MAAG,CACpG,CAAC;gBAEN,IACI,CAAC,OAAO,KAAK,IAAI;oBACb,IAAA,yDAA2B,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CACrD,IAAI,EACJ,IAAI,CACP,CAAC;oBACN,IAAA,+CAAsB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAChD,IAAI,EACJ,IAAI,EACJ,cAAc,CACjB;oBACD,IAAA,mDAAwB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAClD,IAAI,EACJ,IAAI,EACJ,cAAc,CACjB;oBAED,OAAO;gBAGX,IAAA,qDAAyB,EAAC,IAAI,EAAE,IAAI,CAAC;oBACjC,IAAA,qDAAyB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBACvD,IAAA,qDAAyB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CACnD,IAAI,EACJ,IAAI,CACP;oBACD,IAAA,iDAAuB,EAAC,IAAI,EAAE,IAAI,CAAC;oBACnC,IAAA,+CAAsB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAChD,IAAI,EACJ,IAAoB,CACvB;oBACD,IAAA,+CAAsB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAChE,IAAA,iDAAuB,EAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAC5C,IAAA,2CAAoB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAC9D,IAAA,2CAAoB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAC9D,IAAA,iDAAuB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CACjD,IAAI,EACJ,IAAI,EACJ,cAAc,CACjB,CAAC;YACV,CAAC;
|
|
1
|
+
{"version":3,"file":"iterate_metadata.js","sourceRoot":"","sources":["../../../../src/factories/internal/metadata/iterate_metadata.ts"],"names":[],"mappings":";;;AAOA,mEAAkE;AAClE,qEAAoE;AACpE,yEAAwE;AACxE,yEAAwE;AACxE,6EAA4E;AAC5E,iFAAgF;AAChF,+DAA8D;AAC9D,qEAAoE;AACpE,qEAAoE;AACpE,uEAAsE;AACtE,+DAA8D;AAC9D,yEAAwE;AACxE,mEAAkE;AAClE,mEAAkE;AAE3D,IAAM,gBAAgB,GACzB,UAAC,OAAuB;IACxB,OAAA,UAAC,OAAiC;QAClC,OAAA,UAAC,UAA8B;YAC/B,OAAA,UACI,IAAc,EACd,IAAa,EACb,cAAuB,EACvB,OAAgB;gBAEhB,IAAI,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI;oBAC/B,MAAM,IAAI,KAAK,CACX,uFAAgF,IAAI,CAAC,OAAO,EAAE,MAAG,CACpG,CAAC;gBAEN,IACI,CAAC,OAAO,KAAK,IAAI;oBACb,IAAA,yDAA2B,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CACrD,IAAI,EACJ,IAAI,CACP,CAAC;oBACN,IAAA,6DAA6B,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CACvD,IAAI,EACJ,IAAI,EACJ,cAAc,EACd,OAAO,CACV;oBACD,IAAA,+CAAsB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAChD,IAAI,EACJ,IAAI,EACJ,cAAc,CACjB;oBACD,IAAA,mDAAwB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAClD,IAAI,EACJ,IAAI,EACJ,cAAc,CACjB;oBAED,OAAO;gBAGX,IAAA,qDAAyB,EAAC,IAAI,EAAE,IAAI,CAAC;oBACjC,IAAA,qDAAyB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBACvD,IAAA,qDAAyB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CACnD,IAAI,EACJ,IAAI,CACP;oBACD,IAAA,iDAAuB,EAAC,IAAI,EAAE,IAAI,CAAC;oBACnC,IAAA,+CAAsB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAChD,IAAI,EACJ,IAAoB,CACvB;oBACD,IAAA,+CAAsB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAChE,IAAA,iDAAuB,EAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAC5C,IAAA,2CAAoB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAC9D,IAAA,2CAAoB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAC9D,IAAA,iDAAuB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CACjD,IAAI,EACJ,IAAI,EACJ,cAAc,CACjB,CAAC;YACV,CAAC;QAzDD,CAyDC;IA1DD,CA0DC;AA3DD,CA2DC,CAAC;AA7DO,QAAA,gBAAgB,oBA6DvB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
import { Metadata } from "../../../metadata/Metadata";
|
|
3
|
+
import { MetadataCollection } from "../../MetadataCollection";
|
|
4
|
+
import { MetadataFactory } from "../../MetadataFactory";
|
|
5
|
+
export declare const iterate_metadata_intersection: (checker: ts.TypeChecker) => (options: MetadataFactory.IOptions) => (collection: MetadataCollection) => (meta: Metadata, type: ts.Type, resolved: boolean, aliased: boolean) => boolean;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
19
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
20
|
+
if (ar || !(i in from)) {
|
|
21
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
22
|
+
ar[i] = from[i];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
|
+
};
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.iterate_metadata_intersection = void 0;
|
|
29
|
+
var Metadata_1 = require("../../../metadata/Metadata");
|
|
30
|
+
var MetadataCollection_1 = require("../../MetadataCollection");
|
|
31
|
+
var explore_metadata_1 = require("./explore_metadata");
|
|
32
|
+
var iterate_metadata_1 = require("./iterate_metadata");
|
|
33
|
+
var iterate_metadata_object_1 = require("./iterate_metadata_object");
|
|
34
|
+
var iterate_metadata_intersection = function (checker) {
|
|
35
|
+
return function (options) {
|
|
36
|
+
return function (collection) {
|
|
37
|
+
return function (meta, type, resolved, aliased) {
|
|
38
|
+
if (!type.isIntersection())
|
|
39
|
+
return false;
|
|
40
|
+
var fakeCollection = new MetadataCollection_1.MetadataCollection();
|
|
41
|
+
var children = __spreadArray([], __read(new Map(type.types.map(function (t) {
|
|
42
|
+
var m = (0, explore_metadata_1.explore_metadata)(checker)(options)(fakeCollection)(t, resolved);
|
|
43
|
+
return [m.getName(), m];
|
|
44
|
+
})).values()), false);
|
|
45
|
+
if (children.length === 1) {
|
|
46
|
+
(0, iterate_metadata_1.iterate_metadata)(checker)(options)(collection)(meta, type.types[0], resolved, aliased);
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
var object = children.every(function (c) { return c.objects.length && c.objects.length === c.size(); });
|
|
50
|
+
if (object)
|
|
51
|
+
return (0, iterate_metadata_object_1.iterate_metadata_object)(checker)(options)(collection)(meta, type, resolved, true);
|
|
52
|
+
var atomics = children.filter(function (c) {
|
|
53
|
+
return (c.atomics.length ? 1 : 0 + c.constants.length ? 1 : 0) ===
|
|
54
|
+
c.bucket();
|
|
55
|
+
});
|
|
56
|
+
var objects = children.filter(function (c) { return c.objects.length && c.objects.length === c.size(); });
|
|
57
|
+
if (atomics.length === 0 ||
|
|
58
|
+
atomics.length + objects.length !== children.length)
|
|
59
|
+
throw new Error(message(children));
|
|
60
|
+
var least = atomics.reduce(function (x, y) {
|
|
61
|
+
if (Metadata_1.Metadata.covers(x, y))
|
|
62
|
+
return y;
|
|
63
|
+
else if (Metadata_1.Metadata.covers(y, x))
|
|
64
|
+
return x;
|
|
65
|
+
throw new Error(message(children));
|
|
66
|
+
});
|
|
67
|
+
Object.assign(meta, Metadata_1.Metadata.merge(meta, least));
|
|
68
|
+
return true;
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
exports.iterate_metadata_intersection = iterate_metadata_intersection;
|
|
74
|
+
var message = function (children) {
|
|
75
|
+
return "Error on typia.MetadataFactory.analyze(): nonsensibl intersection type detected - ".concat(children
|
|
76
|
+
.map(function (c) { return c.getName(); })
|
|
77
|
+
.join(" & "), ".");
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=iterate_metadata_intersection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iterate_metadata_intersection.js","sourceRoot":"","sources":["../../../../src/factories/internal/metadata/iterate_metadata_intersection.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,4 +2,4 @@ import ts from "typescript";
|
|
|
2
2
|
import { Metadata } from "../../../metadata/Metadata";
|
|
3
3
|
import { MetadataCollection } from "../../MetadataCollection";
|
|
4
4
|
import { MetadataFactory } from "../../MetadataFactory";
|
|
5
|
-
export declare const iterate_metadata_object: (checker: ts.TypeChecker) => (options: MetadataFactory.IOptions) => (collection: MetadataCollection) => (meta: Metadata, type: ts.Type, parentResolved: boolean) => boolean;
|
|
5
|
+
export declare const iterate_metadata_object: (checker: ts.TypeChecker) => (options: MetadataFactory.IOptions) => (collection: MetadataCollection) => (meta: Metadata, type: ts.Type, parentResolved: boolean, ensure?: boolean) => boolean;
|
|
@@ -13,21 +13,26 @@ var iterate_metadata_1 = require("./iterate_metadata");
|
|
|
13
13
|
var iterate_metadata_object = function (checker) {
|
|
14
14
|
return function (options) {
|
|
15
15
|
return function (collection) {
|
|
16
|
-
return function (meta, type, parentResolved) {
|
|
17
|
-
|
|
18
|
-
if (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
16
|
+
return function (meta, type, parentResolved, ensure) {
|
|
17
|
+
if (ensure === void 0) { ensure = false; }
|
|
18
|
+
if (ensure === false) {
|
|
19
|
+
var filter = function (flag) {
|
|
20
|
+
return (type.getFlags() & flag) !== 0;
|
|
21
|
+
};
|
|
22
|
+
if (!filter(typescript_1.default.TypeFlags.Object) &&
|
|
23
|
+
!type.isIntersection() &&
|
|
24
|
+
type.intrinsicName !== "object")
|
|
25
|
+
return false;
|
|
26
|
+
else if (type.isIntersection()) {
|
|
27
|
+
var fakeCollection_1 = new MetadataCollection_1.MetadataCollection();
|
|
28
|
+
var fakeSchema_1 = Metadata_1.Metadata.initialize();
|
|
29
|
+
type.types.forEach(function (t) {
|
|
30
|
+
return (0, iterate_metadata_1.iterate_metadata)(checker)(options)(fakeCollection_1)(fakeSchema_1, t, parentResolved, false);
|
|
31
|
+
});
|
|
32
|
+
if (fakeSchema_1.objects.length === 0 ||
|
|
33
|
+
fakeSchema_1.objects.length !== fakeSchema_1.size())
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
31
36
|
}
|
|
32
37
|
var obj = (0, emplace_metadata_object_1.emplace_metadata_object)(checker)(options)(collection)(type, meta.nullable);
|
|
33
38
|
ArrayUtil_1.ArrayUtil.add(meta.objects, obj, function (elem) { return elem.name === obj.name; });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iterate_metadata_object.js","sourceRoot":"","sources":["../../../../src/factories/internal/metadata/iterate_metadata_object.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,uDAAsD;AAGtD,sDAAqD;AAErD,+DAA8D;AAE9D,qEAAoE;AACpE,uDAAsD;AAE/C,IAAM,uBAAuB,GAChC,UAAC,OAAuB;IACxB,OAAA,UAAC,OAAiC;QAClC,OAAA,UAAC,UAA8B;YAC/B,OAAA,
|
|
1
|
+
{"version":3,"file":"iterate_metadata_object.js","sourceRoot":"","sources":["../../../../src/factories/internal/metadata/iterate_metadata_object.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,uDAAsD;AAGtD,sDAAqD;AAErD,+DAA8D;AAE9D,qEAAoE;AACpE,uDAAsD;AAE/C,IAAM,uBAAuB,GAChC,UAAC,OAAuB;IACxB,OAAA,UAAC,OAAiC;QAClC,OAAA,UAAC,UAA8B;YAC/B,OAAA,UACI,IAAc,EACd,IAAa,EACb,cAAuB,EACvB,MAAuB;gBAAvB,uBAAA,EAAA,cAAuB;gBAEvB,IAAI,MAAM,KAAK,KAAK,EAAE;oBAClB,IAAM,MAAM,GAAG,UAAC,IAAkB;wBAC9B,OAAA,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;oBAA9B,CAA8B,CAAC;oBACnC,IACI,CAAC,MAAM,CAAC,oBAAE,CAAC,SAAS,CAAC,MAAM,CAAC;wBAC5B,CAAC,IAAI,CAAC,cAAc,EAAE;wBACrB,IAAY,CAAC,aAAa,KAAK,QAAQ;wBAExC,OAAO,KAAK,CAAC;yBACZ,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;wBAC5B,IAAM,gBAAc,GAAG,IAAI,uCAAkB,EAAE,CAAC;wBAChD,IAAM,YAAU,GAAa,mBAAQ,CAAC,UAAU,EAAE,CAAC;wBAEnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,CAAC;4BACjB,OAAA,IAAA,mCAAgB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,gBAAc,CAAC,CAC9C,YAAU,EACV,CAAC,EACD,cAAc,EACd,KAAK,CACR;wBALD,CAKC,CACJ,CAAC;wBACF,IACI,YAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;4BAC/B,YAAU,CAAC,OAAO,CAAC,MAAM,KAAK,YAAU,CAAC,IAAI,EAAE;4BAE/C,OAAO,KAAK,CAAC;qBACpB;iBACJ;gBAED,IAAM,GAAG,GAAmB,IAAA,iDAAuB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CACjE,UAAU,CACb,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvB,qBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAtB,CAAsB,CAAC,CAAC;gBACnE,OAAO,IAAI,CAAC;YAChB,CAAC;QAxCD,CAwCC;IAzCD,CAyCC;AA1CD,CA0CC,CAAC;AA5CO,QAAA,uBAAuB,2BA4C9B"}
|
package/lib/metadata/Metadata.js
CHANGED
|
@@ -507,6 +507,8 @@ exports.Metadata = Metadata;
|
|
|
507
507
|
if (y.atomics.some(function (atomic) { return x.atomics.includes(atomic) === false; }))
|
|
508
508
|
return false;
|
|
509
509
|
var _loop_8 = function (yc) {
|
|
510
|
+
if (x.atomics.some(function (type) { return yc.type === type; }))
|
|
511
|
+
return "continue";
|
|
510
512
|
var xc = x.constants.find(function (elem) { return elem.type === yc.type; });
|
|
511
513
|
if (xc === undefined)
|
|
512
514
|
return { value: false };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Metadata.js","sourceRoot":"","sources":["../../src/metadata/Metadata.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,gDAA+C;AAE/C,gDAA+C;AAK/C,iDAAgD;AAChD,iDAAgD;AAEhD,mDAAkD;AAClD,uDAAsD;AACtD,iDAAgD;AAEhD;IAgCI,kBAAoB,KAAgC;QAT3B,qBAAgB,GAAY,KAAK,CAAC;QAUvD,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QAEnC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAEjC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAE7B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IAC3B,CAAC;IAKa,eAAM,GAApB,UAAqB,KAAgC;QACjD,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAKa,mBAAU,GAAxB,UAAyB,cAA+B;QAA/B,+BAAA,EAAA,sBAA+B;QACpD,IAAM,IAAI,GAAa,IAAI,CAAC,MAAM,CAAC;YAC/B,GAAG,EAAE,KAAK;YACV,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;YAEjB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YAEX,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,EAAE;SACX,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC;QACvC,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,yBAAM,GAAb;QACI,OAAO;YACH,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAE3B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YAC7B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrD,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAC,GAAG;gBAC9B,OAAA,GAAG,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,MAAM,EAAE,EAAb,CAAa,CAAC;YAAhC,CAAgC,CACnC;YACD,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI;YAEvD,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI;YAC3C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,IAAI,EAAV,CAAU,CAAC;YAC9C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,IAAI,EAAV,CAAU,CAAC;YAC9C,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,IAAI,EAAR,CAAQ,CAAC;YAC5C,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,IAAI,EAAV,CAAU,CAAC;YAEhD,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,MAAM,EAAE,EAAb,CAAa,CAAC;YAC5C,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,CAAC;gBAC5B,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;gBACvB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;aAC9B,CAAC,EAH6B,CAG7B,CAAC;SACN,CAAC;IACN,CAAC;IAEa,aAAI,GAAlB,UACI,IAAe,EACf,UAA+B;;QAFnC,iBAsDC;QAlDG,IAAM,IAAI,GAAwB;YAC9B,OAAO,EAAE,IAAI,GAAG,CACZ,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA;gBAC5B,GAAG,CAAC,IAAI;gBACR,+BAAc,CAAC,wBAAwB,CAAC,GAAG,CAAC;aAC/C,EAH+B,CAG/B,CAAC,CACL;YACD,OAAO,EAAE,IAAI,GAAG,CACZ,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA;gBAC9B,KAAK,CAAC,IAAI;gBACV,6BAAa,CAAC,mBAAmB,CAAC,KAAK,CAAC;aAC3C,EAHiC,CAGjC,CAAC,CACL;YACD,MAAM,EAAE,IAAI,GAAG,CACX,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA;gBAC3B,GAAG,CAAC,IAAI;gBACR,6BAAa,CAAC,mBAAmB,CAAC,GAAG,CAAC;aACzC,EAH8B,CAG9B,CAAC,CACL;YACD,MAAM,EAAE,IAAI,GAAG,CACX,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA;gBAC3B,GAAG,CAAC,IAAI;gBACR,6BAAa,CAAC,sBAAsB,CAAC,GAAG,CAAC;aAC5C,EAH8B,CAG9B,CAAC,CACL;SACJ,CAAC;;YAEF,KAAkB,IAAA,KAAA,SAAA,UAAU,CAAC,OAAO,CAAA,gBAAA,4BAAE;gBAAjC,IAAM,GAAG,WAAA;gBACV,IAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;gBAChD,CAAA,KAAA,WAAW,CAAC,UAAU,CAAA,CAAC,IAAI,oCACpB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,IAAI;oBACvB,OAAA,mCAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;gBAAlC,CAAkC,CACrC,WACH;aACL;;;;;;;;;;YACD,KAAoB,IAAA,KAAA,SAAA,UAAU,CAAC,OAAO,CAAA,gBAAA;gBAAjC,IAAM,KAAK,WAAA;gBACZ,IAAA,mBAAQ,EAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACtD,KAAK,CAAC,KAAK,EACX,IAAI,CACP,CAAC;aAAA;;;;;;;;;;YACN,KAAoB,IAAA,KAAA,SAAA,UAAU,CAAC,MAAM,CAAA,gBAAA;gBAAhC,IAAM,KAAK,WAAA;gBACZ,IAAA,mBAAQ,EAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACrD,KAAK,CAAC,KAAK,EACX,IAAI,CACP,CAAC;aAAA;;;;;;;;;;YACN,KAAoB,IAAA,KAAA,SAAA,UAAU,CAAC,MAAM,CAAA,gBAAA;gBAAhC,IAAM,KAAK,WAAA;gBACZ,IAAA,mBAAQ,EAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,CAAC,QAAQ;oBAC3C,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,KAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAtB,CAAsB,CAAC,CAAC;aAAA;;;;;;;;;QAE7D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAKa,cAAK,GAAnB,UAAoB,IAAe,EAAE,IAAyB;QAA9D,iBAwDC;QAvDG,OAAO,IAAI,CAAC,MAAM,CAAC;YACf,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAE3B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrD,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAC,GAAG;gBAC9B,OAAA,GAAG,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,KAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAtB,CAAsB,CAAC;YAAzC,CAAyC,CAC5C;YACD,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YAEhE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YACpD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,EAAE;gBACvB,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAClC,IAAI,KAAK,KAAK,SAAS;oBACnB,MAAM,IAAI,KAAK,CACX,2DAAmD,EAAE,QAAI,CAC5D,CAAC;gBACN,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC;YACF,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,EAAE;gBACvB,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAClC,IAAI,KAAK,KAAK,SAAS;oBACnB,MAAM,IAAI,KAAK,CACX,2DAAmD,EAAE,QAAI,CAC5D,CAAC;gBACN,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC;YACF,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,IAAI;gBAC3B,IAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,KAAK,KAAK,SAAS;oBACnB,MAAM,IAAI,KAAK,CACX,4DAAoD,IAAI,QAAI,CAC/D,CAAC;gBACN,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC;YACF,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,KAAK;gBAC5B,IAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACtC,IAAI,KAAK,KAAK,SAAS;oBACnB,MAAM,IAAI,KAAK,CACX,2DAAmD,KAAK,QAAI,CAC/D,CAAC;gBACN,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC;YAEF,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,KAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAtB,CAAsB,CAAC;YACrD,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,CAAC;gBAC5B,GAAG,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;gBAChC,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;aACvC,CAAC,EAH6B,CAG7B,CAAC;SACN,CAAC,CAAC;IACP,CAAC;IAKM,0BAAO,GAAd;;QACI,MAAA,IAAI,CAAC,KAAK,oCAAV,IAAI,CAAC,KAAK,GAAK,OAAO,CAAC,IAAI,CAAC,EAAC;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAEM,wBAAK,GAAZ;QACI,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IACM,uBAAI,GAAX;QACI,OAAO,CACH,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,MAAM;YACrB,IAAI,CAAC,OAAO,CAAC,MAAM;YACnB,IAAI,CAAC,SAAS;iBACT,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,MAAM,CAAC,MAAM,EAAf,CAAe,CAAC;iBAC3B,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,CAAC,EAAL,CAAK,EAAE,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,MAAM;YAClB,IAAI,CAAC,MAAM,CAAC,MAAM;YAClB,IAAI,CAAC,OAAO,CAAC,MAAM;YACnB,IAAI,CAAC,IAAI,CAAC,MAAM;YAChB,IAAI,CAAC,IAAI,CAAC,MAAM;YAChB,IAAI,CAAC,OAAO,CAAC,MAAM;YACnB,IAAI,CAAC,OAAO,CAAC,MAAM,CACtB,CAAC;IACN,CAAC;IACM,yBAAM,GAAb;QACI,OAAO,CACH,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAChC,CAAC;IACN,CAAC;IACM,6BAAU,GAAjB;QACI,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAKM,gCAAa,GAApB;QACI,IAAM,IAAI,GAAW,IAAI,CAAC,MAAM,EAAE,CAAC;QACnC,IAAM,OAAO,GAAW,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChE,OAAO,OAAO,GAAG,CAAC,CAAC;IACvB,CAAC;IAKM,iCAAc,GAArB;QACI,IACI,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;YACjB,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,KAAK,QAAQ;YACpC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAEtC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,CAAC,CAAW,CAAC;;YAC7C,OAAO,IAAI,CAAC;IACrB,CAAC;IAKM,gCAAa,GAApB;QACI,OAAO,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,CAAC;IAC1C,CAAC;IAKM,mCAAgB,GAAvB;QACI,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACL,eAAC;AAAD,CAAC,AArUD,IAqUC;AArUY,4BAAQ;AAsUrB,WAAiB,QAAQ;IACR,mBAAU,GAAG,UAAC,CAAW,EAAE,CAAW;;QAE/C,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAChC,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC9D,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC5D,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAMhE,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACpD,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACpD,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACtD,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;;YAMtD,KAAqB,IAAA,KAAA,SAAA,CAAC,CAAC,OAAO,CAAA,gBAAA;gBAAzB,IAAM,MAAM,WAAA;gBACb,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAAE,OAAO,IAAI,CAAC;aAAA;;;;;;;;;gCAGrC,QAAQ;YACf,IAAM,QAAQ,GAAiC,CAAC,CAAC,SAAS,CAAC,IAAI,CAC3D,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAA3B,CAA2B,CACxC,CAAC;YACF,IAAI,QAAQ,KAAK,SAAS;kCAAW;YAErC,IAAM,MAAM,GAAa,IAAI,GAAG,wCACzB,QAAQ,CAAC,MAAM,kBACf,QAAQ,CAAC,MAAM,UACpB,CAAC;YACH,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM;gCACxD,IAAI,GAAC;;;YAXpB,KAAuB,IAAA,KAAA,SAAA,CAAC,CAAC,SAAS,CAAA,gBAAA;gBAA7B,IAAM,QAAQ,WAAA;sCAAR,QAAQ;;;aAYlB;;;;;;;;;QACD,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;IAEW,eAAM,GAAG,UAClB,CAAW,EACX,CAAW,EACX,KAAiB;;QAAjB,sBAAA,EAAA,SAAiB;QAGjB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;aACrB,IAAI,CAAC,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;aACvB,IAAI,CAAC,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QAK7B,IAAI,KAAK,KAAK,CAAC,EAAE;oCAEF,EAAE;gBACT,IACI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,EAAE;oBACd,OAAA,SAAA,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC;gBAArC,CAAqC,CACxC,EACH;oCACS,KAAK;iBACf;;;gBAPL,KAAiB,IAAA,KAAA,SAAA,CAAC,CAAC,MAAM,CAAA,gBAAA;oBAApB,IAAM,EAAE,WAAA;0CAAF,EAAE;;;iBAOR;;;;;;;;;oCAGM,EAAE;gBACT,IACI,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;oBACxB,CAAC,CAAC,MAAM,CAAC,IAAI,CACT,UAAC,EAAE;wBACC,OAAA,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM;4BACxC,EAAE,CAAC,QAAQ;iCACN,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;iCACzB,KAAK,CAAC,UAAC,EAAE,EAAE,CAAC;gCACT,OAAA,SAAA,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAE,KAAK,GAAG,CAAC,CAAC;4BAAtC,CAAsC,CACzC;oBALL,CAKK,CACZ,KAAK,KAAK;oCAEJ,KAAK,GAAC;;;gBAbrB,KAAiB,IAAA,KAAA,SAAA,CAAC,CAAC,MAAM,CAAA,gBAAA;oBAApB,IAAM,EAAE,WAAA;0CAAF,EAAE;;;iBAaQ;;;;;;;;;SACxB;gCAGU,EAAE;YACT,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,EAAE,IAAK,OAAA,+BAAc,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,EAA7B,CAA6B,CAAC,KAAK,KAAK;gCACxD,KAAK,GAAC;;;YAFrB,KAAiB,IAAA,KAAA,SAAA,CAAC,CAAC,OAAO,CAAA,gBAAA;gBAArB,IAAM,EAAE,WAAA;sCAAF,EAAE;;;aAEQ;;;;;;;;;gCAGV,EAAE;YACT,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,EAAE,IAAK,OAAA,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,EAAnB,CAAmB,CAAC,KAAK,KAAK;gCAC9C,KAAK,GAAC;;;YAFrB,KAAiB,IAAA,KAAA,SAAA,CAAC,CAAC,OAAO,CAAA,gBAAA;gBAArB,IAAM,EAAE,WAAA;sCAAF,EAAE;;;aAEQ;;;;;;;;;gCAGV,EAAE;YACT,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,EAAE,IAAK,OAAA,EAAE,KAAK,EAAE,EAAT,CAAS,CAAC,KAAK,KAAK;gCAAS,KAAK,GAAC;;;YADlE,KAAiB,IAAA,KAAA,SAAA,CAAC,CAAC,OAAO,CAAA,gBAAA;gBAArB,IAAM,EAAE,WAAA;sCAAF,EAAE;;;aACqD;;;;;;;;;gCAGvD,EAAE;YACT,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAC,EAAE,IAAK,OAAA,SAAA,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,EAAd,CAAc,CAAC,KAAK,KAAK;gCAAS,KAAK,GAAC;;;YADpE,KAAiB,IAAA,KAAA,SAAA,CAAC,CAAC,IAAI,CAAA,gBAAA;gBAAlB,IAAM,EAAE,WAAA;sCAAF,EAAE;;;aACuD;;;;;;;;;QAMpE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,MAAM,IAAK,OAAA,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,EAApC,CAAoC,CAAC;YAChE,OAAO,KAAK,CAAC;gCAGN,EAAE;YACT,IAAM,EAAE,GAAiC,CAAC,CAAC,SAAS,CAAC,IAAI,CACrD,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,EAArB,CAAqB,CAClC,CAAC;YACF,IAAI,EAAE,KAAK,SAAS;gCAAS,KAAK;iBAC7B,IACA,EAAE,CAAC,MAAmB,CAAC,IAAI,CACxB,UAAC,EAAE,IAAK,OAAA,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAW,CAAC,KAAK,KAAK,EAAzC,CAAyC,CACpD;gCAEM,KAAK,GAAC;;;YAVrB,KAAiB,IAAA,KAAA,SAAA,CAAC,CAAC,SAAS,CAAA,gBAAA;gBAAvB,IAAM,EAAE,WAAA;sCAAF,EAAE;;;aAWZ;;;;;;;;;QAGD,IAAI,CAAC,CAAC,UAAU,KAAK,KAAK,IAAI,CAAC,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAGzD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAKW,cAAK,GAAG,UAAC,CAAW,EAAE,CAAW;;;QAC1C,IAAM,MAAM,GAAa,QAAQ,CAAC,MAAM,CAAC;YACrC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG;YACnB,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ;YAClC,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ;YAClC,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ;YAClC,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU;YAExC,QAAQ,EACJ,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI;gBACtC,CAAC,CAAC,SAAA,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC;gBAC/B,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ;YAClC,OAAO,2BAAM,IAAI,GAAG,wCAAK,CAAC,CAAC,OAAO,kBAAK,CAAC,CAAC,OAAO,UAAE,SAAC;YACnD,SAAS,2BAAM,CAAC,CAAC,SAAS,SAAC;YAC3B,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE;YAE9B,IAAI,EACA,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;gBAC9B,CAAC,CAAC,SAAA,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;gBACvB,CAAC,CAAC,MAAA,CAAC,CAAC,IAAI,mCAAI,CAAC,CAAC,IAAI;YAC1B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;YACxB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;YACxB,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE;YAC1B,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE;YAE1B,OAAO,2BAAM,IAAI,GAAG,wCAAK,CAAC,CAAC,OAAO,kBAAK,CAAC,CAAC,OAAO,UAAE,SAAC;YACnD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;YACpB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;SACvB,CAAC,CAAC;gCACQ,QAAQ;;YACf,IAAM,MAAM,GAAqB,qBAAS,CAAC,IAAI,CAC3C,MAAM,CAAC,SAAS,EAChB,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAA3B,CAA2B,EACrC,cAAM,OAAA,CAAC;gBACH,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,MAAM,EAAE,EAAE;aACb,CAAC,EAHI,CAGJ,CACL,CAAC;;gBACF,KAAoB,IAAA,qBAAA,SAAA,QAAQ,CAAC,MAAM,CAAA,CAAA,gBAAA;oBAA9B,IAAM,KAAK,WAAA;oBACZ,qBAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;iBAAA;;;;;;;;;;;YAV5C,KAAuB,IAAA,KAAA,SAAA,CAAC,CAAC,SAAS,CAAA,gBAAA;gBAA7B,IAAM,QAAQ,WAAA;wBAAR,QAAQ;aAWlB;;;;;;;;;;YACD,KAAoB,IAAA,KAAA,SAAA,CAAC,CAAC,MAAM,CAAA,gBAAA;gBAAvB,IAAM,KAAK,WAAA;gBACZ,qBAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,IAAI,EAAT,CAAS,CAAC,CAAC;aAAA;;;;;;;;;;YAC7D,KAAoB,IAAA,KAAA,SAAA,CAAC,CAAC,MAAM,CAAA,gBAAA;gBAAvB,IAAM,KAAK,WAAA;gBACZ,qBAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,IAAI,EAAT,CAAS,CAAC,CAAC;aAAA;;;;;;;;;;YAC7D,KAAkB,IAAA,KAAA,SAAA,CAAC,CAAC,OAAO,CAAA,gBAAA;gBAAtB,IAAM,GAAG,WAAA;gBACV,qBAAS,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,IAAI,EAAT,CAAS,CAAC,CAAC;aAAA;;;;;;;;;;YAC5D,KAAoB,IAAA,KAAA,SAAA,CAAC,CAAC,OAAO,CAAA,gBAAA;gBAAxB,IAAM,KAAK,WAAA;gBACZ,qBAAS,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,IAAI,EAAT,CAAS,CAAC,CAAC;aAAA;;;;;;;;;QAE9D,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC,EAvLgB,QAAQ,wBAAR,QAAQ,QAuLxB;AAED,IAAM,OAAO,GAAG,UAAC,QAAkB;;IAC/B,IAAI,QAAQ,CAAC,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAExC,IAAM,QAAQ,GAAa,EAAE,CAAC;IAG9B,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,QAAQ,CAAC,QAAQ,KAAK,KAAK;QAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;QAG5D,KAAmB,IAAA,KAAA,SAAA,QAAQ,CAAC,OAAO,CAAA,gBAAA,4BAAE;YAAhC,IAAM,IAAI,WAAA;YACX,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACvB;;;;;;;;;;QACD,KAAuB,IAAA,KAAA,SAAA,QAAQ,CAAC,SAAS,CAAA,gBAAA;YAApC,IAAM,QAAQ,WAAA;;gBACf,KAAoB,IAAA,qBAAA,SAAA,QAAQ,CAAC,MAAM,CAAA,CAAA,gBAAA;oBAA9B,IAAM,KAAK,WAAA;oBACZ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;iBAAA;;;;;;;;;SAAA;;;;;;;;;;QAC7C,KAAuB,IAAA,KAAA,SAAA,QAAQ,CAAC,SAAS,CAAA,gBAAA;YAApC,IAAM,QAAQ,WAAA;YACf,QAAQ,CAAC,IAAI,CACT,GAAG;gBACC,QAAQ;qBACH,GAAG,CAAC,UAAC,KAAK;oBACP,OAAA,KAAK,CAAC,UAAU,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;wBACpC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,CAAC,CAAE;wBAChC,CAAC,CAAC,YAAM,KAAK,CAAC,OAAO,EAAE,MAAI;gBAF/B,CAE+B,CAClC;qBACA,IAAI,CAAC,EAAE,CAAC;qBACR,KAAK,CAAC,GAAG,CAAC;qBACV,IAAI,CAAC,KAAK,CAAC;gBAChB,GAAG,CACV,CAAC;SAAA;;;;;;;;;;QAGN,KAAqB,IAAA,KAAA,SAAA,QAAQ,CAAC,OAAO,CAAA,gBAAA;YAAhC,IAAM,MAAM,WAAA;YAAsB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAAA;;;;;;;;;;QAC7D,KAAkB,IAAA,KAAA,SAAA,QAAQ,CAAC,IAAI,CAAA,gBAAA;YAA1B,IAAM,GAAG,WAAA;YAAmB,QAAQ,CAAC,IAAI,CAAC,cAAO,GAAG,CAAC,OAAO,EAAE,MAAG,CAAC,CAAC;SAAA;;;;;;;;;;QACxE,KAAkB,IAAA,KAAA,SAAA,QAAQ,CAAC,IAAI,CAAA,gBAAA;YAA1B,IAAM,GAAG,WAAA;YACV,QAAQ,CAAC,IAAI,CAAC,cAAO,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,eAAK,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,MAAG,CAAC,CAAC;SAAA;;;;;;;;;IAGvE,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,aAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAE,CAAC,CAAC;;QAC3E,KAAoB,IAAA,KAAA,SAAA,QAAQ,CAAC,MAAM,CAAA,gBAAA;YAA9B,IAAM,KAAK,WAAA;YAAqB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAAA;;;;;;;;;;QAC/D,KAAoB,IAAA,KAAA,SAAA,QAAQ,CAAC,MAAM,CAAA,gBAAA;YAA9B,IAAM,KAAK,WAAA;YAAqB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAAA;;;;;;;;;;QAC/D,KAAqB,IAAA,KAAA,SAAA,QAAQ,CAAC,OAAO,CAAA,gBAAA;YAAhC,IAAM,MAAM,WAAA;YAAsB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAAA;;;;;;;;;;QAClE,KAAoB,IAAA,KAAA,SAAA,QAAQ,CAAC,OAAO,CAAA,gBAAA;YAA/B,IAAM,KAAK,WAAA;YAAsB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAAA;;;;;;;;;IAChE,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAG3E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;SACvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAE,CAAC;IAEpD,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChB,OAAO,WAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAG,CAAC;AACvC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"Metadata.js","sourceRoot":"","sources":["../../src/metadata/Metadata.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typia",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.6-dev.20230612",
|
|
4
4
|
"description": "Superfast runtime validators with only one line",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"randexp": "^0.5.3"
|
|
78
78
|
},
|
|
79
79
|
"peerDependencies": {
|
|
80
|
-
"typescript": ">= 4.
|
|
80
|
+
"typescript": ">= 4.7.4"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
83
|
"@fastify/type-provider-typebox": "^3.0.0",
|
package/src/Primitive.ts
CHANGED
|
@@ -1,125 +1,131 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Primitive type.
|
|
3
|
-
*
|
|
4
|
-
* `Primitive` is a type of TMP (Type Meta Programming) type who converts its argument as a
|
|
5
|
-
* primitive type.
|
|
6
|
-
*
|
|
7
|
-
* If the target argument is a built-in class who returns its origin primitive type through
|
|
8
|
-
* the `valueOf()` method like the `String` or `Number`, its return type would be the
|
|
9
|
-
* `string` or `number`.
|
|
10
|
-
*
|
|
11
|
-
* Otherwise, the target argument is a type of custom class, all of its custom method would
|
|
12
|
-
* be erased and its prototype would be changed to the primitive `object`. Therefore, return
|
|
13
|
-
* type of the TMP type finally be the primitive object.
|
|
14
|
-
*
|
|
15
|
-
* In addition, if the target argument is a type of custom class and it has a special
|
|
16
|
-
* method `toJSON()`, return type of this `Primitive` would be not `Primitive<Instance>`
|
|
17
|
-
* but `Primitive<ReturnType<Instance.toJSON>>`.
|
|
18
|
-
*
|
|
19
|
-
* Before | After
|
|
20
|
-
* ------------------------|----------------------------------------
|
|
21
|
-
* `Boolean` | `boolean`
|
|
22
|
-
* `Number` | `number`
|
|
23
|
-
* `String` | `string`
|
|
24
|
-
* `Class` | `object`
|
|
25
|
-
* `Class` with `toJSON()` | `Primitive<ReturnType<Class.toJSON>>`
|
|
26
|
-
* Others | No change
|
|
27
|
-
*
|
|
28
|
-
* @template Instance Target argument type.
|
|
29
|
-
* @author Jenogho Nam - https://github.com/samchon
|
|
30
|
-
*/
|
|
31
|
-
export type Primitive<T> = Equal<T, PrimitiveMain<T>> extends true
|
|
32
|
-
? T
|
|
33
|
-
: PrimitiveMain<T>;
|
|
34
|
-
|
|
35
|
-
type Equal<X, Y> = X extends Y ? (Y extends X ? true : false) : false;
|
|
36
|
-
|
|
37
|
-
type PrimitiveMain<Instance> = ValueOf<Instance> extends
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
:
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
:
|
|
55
|
-
:
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
? [
|
|
69
|
-
: T extends [
|
|
70
|
-
? [PrimitiveMain<F
|
|
71
|
-
: []
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
?
|
|
75
|
-
:
|
|
76
|
-
?
|
|
77
|
-
:
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
|
89
|
-
|
|
|
90
|
-
|
|
|
91
|
-
|
|
|
92
|
-
|
|
|
93
|
-
|
|
|
94
|
-
|
|
|
95
|
-
|
|
|
96
|
-
|
|
|
97
|
-
|
|
|
98
|
-
|
|
|
99
|
-
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
?
|
|
113
|
-
?
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Primitive type.
|
|
3
|
+
*
|
|
4
|
+
* `Primitive` is a type of TMP (Type Meta Programming) type who converts its argument as a
|
|
5
|
+
* primitive type.
|
|
6
|
+
*
|
|
7
|
+
* If the target argument is a built-in class who returns its origin primitive type through
|
|
8
|
+
* the `valueOf()` method like the `String` or `Number`, its return type would be the
|
|
9
|
+
* `string` or `number`.
|
|
10
|
+
*
|
|
11
|
+
* Otherwise, the target argument is a type of custom class, all of its custom method would
|
|
12
|
+
* be erased and its prototype would be changed to the primitive `object`. Therefore, return
|
|
13
|
+
* type of the TMP type finally be the primitive object.
|
|
14
|
+
*
|
|
15
|
+
* In addition, if the target argument is a type of custom class and it has a special
|
|
16
|
+
* method `toJSON()`, return type of this `Primitive` would be not `Primitive<Instance>`
|
|
17
|
+
* but `Primitive<ReturnType<Instance.toJSON>>`.
|
|
18
|
+
*
|
|
19
|
+
* Before | After
|
|
20
|
+
* ------------------------|----------------------------------------
|
|
21
|
+
* `Boolean` | `boolean`
|
|
22
|
+
* `Number` | `number`
|
|
23
|
+
* `String` | `string`
|
|
24
|
+
* `Class` | `object`
|
|
25
|
+
* `Class` with `toJSON()` | `Primitive<ReturnType<Class.toJSON>>`
|
|
26
|
+
* Others | No change
|
|
27
|
+
*
|
|
28
|
+
* @template Instance Target argument type.
|
|
29
|
+
* @author Jenogho Nam - https://github.com/samchon
|
|
30
|
+
*/
|
|
31
|
+
export type Primitive<T> = Equal<T, PrimitiveMain<T>> extends true
|
|
32
|
+
? T
|
|
33
|
+
: PrimitiveMain<T>;
|
|
34
|
+
|
|
35
|
+
type Equal<X, Y> = X extends Y ? (Y extends X ? true : false) : false;
|
|
36
|
+
|
|
37
|
+
type PrimitiveMain<Instance> = ValueOf<Instance> extends
|
|
38
|
+
| boolean
|
|
39
|
+
| number
|
|
40
|
+
| bigint
|
|
41
|
+
| string
|
|
42
|
+
? ValueOf<Instance>
|
|
43
|
+
: ValueOf<Instance> extends object
|
|
44
|
+
? Instance extends object
|
|
45
|
+
? Instance extends NativeClass
|
|
46
|
+
? {}
|
|
47
|
+
: Instance extends IJsonable<infer Raw>
|
|
48
|
+
? ValueOf<Raw> extends object
|
|
49
|
+
? Raw extends object
|
|
50
|
+
? PrimitiveObject<Raw> // object would be primitified
|
|
51
|
+
: never // cannot be
|
|
52
|
+
: ValueOf<Raw> // atomic value
|
|
53
|
+
: PrimitiveObject<Instance> // object would be primitified
|
|
54
|
+
: never // cannot be
|
|
55
|
+
: ValueOf<Instance>;
|
|
56
|
+
|
|
57
|
+
type PrimitiveObject<Instance extends object> = Instance extends Array<infer T>
|
|
58
|
+
? IsTuple<Instance> extends true
|
|
59
|
+
? PrimitiveTuple<Instance>
|
|
60
|
+
: PrimitiveMain<T>[]
|
|
61
|
+
: {
|
|
62
|
+
[P in keyof Instance]: Instance[P] extends Function
|
|
63
|
+
? never
|
|
64
|
+
: PrimitiveMain<Instance[P]>;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
type PrimitiveTuple<T extends readonly any[]> = T extends []
|
|
68
|
+
? []
|
|
69
|
+
: T extends [infer F]
|
|
70
|
+
? [PrimitiveMain<F>]
|
|
71
|
+
: T extends [infer F, ...infer Rest extends readonly any[]]
|
|
72
|
+
? [PrimitiveMain<F>, ...PrimitiveTuple<Rest>]
|
|
73
|
+
: T extends [(infer F)?]
|
|
74
|
+
? [PrimitiveMain<F>?]
|
|
75
|
+
: T extends [(infer F)?, ...infer Rest extends readonly any[]]
|
|
76
|
+
? [PrimitiveMain<F>?, ...PrimitiveTuple<Rest>]
|
|
77
|
+
: [];
|
|
78
|
+
|
|
79
|
+
type ValueOf<Instance> = IsValueOf<Instance, Boolean> extends true
|
|
80
|
+
? boolean
|
|
81
|
+
: IsValueOf<Instance, Number> extends true
|
|
82
|
+
? number
|
|
83
|
+
: IsValueOf<Instance, String> extends true
|
|
84
|
+
? string
|
|
85
|
+
: Instance;
|
|
86
|
+
|
|
87
|
+
type NativeClass =
|
|
88
|
+
| Set<any>
|
|
89
|
+
| Map<any, any>
|
|
90
|
+
| WeakSet<any>
|
|
91
|
+
| WeakMap<any, any>
|
|
92
|
+
| Uint8Array
|
|
93
|
+
| Uint8ClampedArray
|
|
94
|
+
| Uint16Array
|
|
95
|
+
| Uint32Array
|
|
96
|
+
| BigUint64Array
|
|
97
|
+
| Int8Array
|
|
98
|
+
| Int16Array
|
|
99
|
+
| Int32Array
|
|
100
|
+
| BigInt64Array
|
|
101
|
+
| Float32Array
|
|
102
|
+
| Float64Array
|
|
103
|
+
| ArrayBuffer
|
|
104
|
+
| SharedArrayBuffer
|
|
105
|
+
| DataView;
|
|
106
|
+
|
|
107
|
+
type IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
|
|
108
|
+
never,
|
|
109
|
+
]
|
|
110
|
+
? false
|
|
111
|
+
: T extends readonly any[]
|
|
112
|
+
? number extends T["length"]
|
|
113
|
+
? false
|
|
114
|
+
: true
|
|
115
|
+
: false;
|
|
116
|
+
|
|
117
|
+
type IsValueOf<Instance, Object extends IValueOf<any>> = Instance extends Object
|
|
118
|
+
? Object extends IValueOf<infer Primitive>
|
|
119
|
+
? Instance extends Primitive
|
|
120
|
+
? false
|
|
121
|
+
: true // not Primitive, but Object
|
|
122
|
+
: false // cannot be
|
|
123
|
+
: false;
|
|
124
|
+
|
|
125
|
+
interface IValueOf<T> {
|
|
126
|
+
valueOf(): T;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
interface IJsonable<T> {
|
|
130
|
+
toJSON(): T;
|
|
131
|
+
}
|
|
@@ -1,140 +1,140 @@
|
|
|
1
|
-
import ts from "typescript";
|
|
2
|
-
|
|
3
|
-
import { Metadata } from "../../../metadata/Metadata";
|
|
4
|
-
import { MetadataObject } from "../../../metadata/MetadataObject";
|
|
5
|
-
import { MetadataProperty } from "../../../metadata/MetadataProperty";
|
|
6
|
-
|
|
7
|
-
import { Writable } from "../../../typings/Writable";
|
|
8
|
-
|
|
9
|
-
import { ArrayUtil } from "../../../utils/ArrayUtil";
|
|
10
|
-
|
|
11
|
-
import { CommentFactory } from "../../CommentFactory";
|
|
12
|
-
import { MetadataCollection } from "../../MetadataCollection";
|
|
13
|
-
import { MetadataFactory } from "../../MetadataFactory";
|
|
14
|
-
import { MetadataTagFactory } from "../../MetadataTagFactory";
|
|
15
|
-
import { MetadataHelper } from "./MetadataHelper";
|
|
16
|
-
import { explore_metadata } from "./explore_metadata";
|
|
17
|
-
|
|
18
|
-
export const emplace_metadata_object =
|
|
19
|
-
(checker: ts.TypeChecker) =>
|
|
20
|
-
(options: MetadataFactory.IOptions) =>
|
|
21
|
-
(collection: MetadataCollection) =>
|
|
22
|
-
(parent: ts.Type, nullable: boolean): MetadataObject => {
|
|
23
|
-
// EMPLACE OBJECT
|
|
24
|
-
const [obj, newbie] = collection.emplace(checker, parent);
|
|
25
|
-
ArrayUtil.add(obj.nullables, nullable, (elem) => elem === nullable);
|
|
26
|
-
|
|
27
|
-
if (newbie === false) return obj;
|
|
28
|
-
|
|
29
|
-
// PREPARE ASSETS
|
|
30
|
-
const isClass: boolean = parent.isClass();
|
|
31
|
-
const pred: (node: ts.Declaration) => boolean = isClass
|
|
32
|
-
? (node) => {
|
|
33
|
-
const kind: ts.SyntaxKind | undefined = node
|
|
34
|
-
.getChildren()[0]
|
|
35
|
-
?.getChildren()[0]?.kind;
|
|
36
|
-
return (
|
|
37
|
-
kind !== ts.SyntaxKind.PrivateKeyword &&
|
|
38
|
-
kind !== ts.SyntaxKind.ProtectedKeyword &&
|
|
39
|
-
(ts.isParameter(node) || isProperty(node))
|
|
40
|
-
);
|
|
41
|
-
}
|
|
42
|
-
: (node) => isProperty(node);
|
|
43
|
-
|
|
44
|
-
const insert =
|
|
45
|
-
(key: Metadata) =>
|
|
46
|
-
(value: Metadata) =>
|
|
47
|
-
(identifier: () => string) =>
|
|
48
|
-
(
|
|
49
|
-
symbol: ts.Symbol | undefined,
|
|
50
|
-
filter?: (doc: ts.JSDocTagInfo) => boolean,
|
|
51
|
-
): MetadataProperty => {
|
|
52
|
-
// COMMENTS AND TAGS
|
|
53
|
-
const description: string | null = symbol
|
|
54
|
-
? CommentFactory.description(symbol) ?? null
|
|
55
|
-
: null;
|
|
56
|
-
const jsDocTags: ts.JSDocTagInfo[] = (
|
|
57
|
-
symbol?.getJsDocTags() ?? []
|
|
58
|
-
).filter(filter ?? (() => true));
|
|
59
|
-
|
|
60
|
-
// THE PROPERTY
|
|
61
|
-
const property = MetadataProperty.create({
|
|
62
|
-
key,
|
|
63
|
-
value,
|
|
64
|
-
description,
|
|
65
|
-
jsDocTags,
|
|
66
|
-
tags: MetadataTagFactory.generate(value)(jsDocTags)(() =>
|
|
67
|
-
identifier(),
|
|
68
|
-
),
|
|
69
|
-
});
|
|
70
|
-
obj.properties.push(property);
|
|
71
|
-
return property;
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
//----
|
|
75
|
-
// REGULAR PROPERTIES
|
|
76
|
-
//----
|
|
77
|
-
for (const prop of parent.getApparentProperties()) {
|
|
78
|
-
// CHECK INTERNAL TAG
|
|
79
|
-
if (
|
|
80
|
-
(prop.getJsDocTags(checker) ?? []).find(
|
|
81
|
-
(tag) => tag.name === "internal",
|
|
82
|
-
) !== undefined
|
|
83
|
-
)
|
|
84
|
-
continue;
|
|
85
|
-
|
|
86
|
-
// CHECK NODE IS A FORMAL PROPERTY
|
|
87
|
-
const [node, type] = (() => {
|
|
88
|
-
const node = (prop.getDeclarations() ?? [])[0] as
|
|
89
|
-
| ts.PropertyDeclaration
|
|
90
|
-
| undefined;
|
|
91
|
-
const type: ts.Type | undefined = node
|
|
92
|
-
? checker.getTypeOfSymbolAtLocation(prop, node)
|
|
93
|
-
: "getTypeOfPropertyOfType" in checker
|
|
94
|
-
? (checker as any).getTypeOfPropertyOfType(
|
|
95
|
-
parent,
|
|
96
|
-
prop.name,
|
|
97
|
-
)
|
|
98
|
-
: undefined;
|
|
99
|
-
return [node, type];
|
|
100
|
-
})();
|
|
101
|
-
if ((node && pred(node) === false) || type === undefined) continue;
|
|
102
|
-
|
|
103
|
-
// GET EXACT TYPE
|
|
104
|
-
const key: Metadata = MetadataHelper.literal_to_metadata(prop.name);
|
|
105
|
-
const value: Metadata = explore_metadata(checker)(options)(
|
|
106
|
-
collection,
|
|
107
|
-
)(type, false);
|
|
108
|
-
|
|
109
|
-
// OPTIONAL, BUT CAN BE RQUIRED BY `Required<T>` TYPE
|
|
110
|
-
if (node?.questionToken && (value.required === false || value.any))
|
|
111
|
-
Writable(value).optional = true;
|
|
112
|
-
insert(key)(value)(() => `${obj.name}.${prop.name}`)(prop);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
//----
|
|
116
|
-
// DYNAMIC PROPERTIES
|
|
117
|
-
//----
|
|
118
|
-
for (const index of checker.getIndexInfosOfType(parent)) {
|
|
119
|
-
// GET EXACT TYPE
|
|
120
|
-
const analyzer = (type: ts.Type) =>
|
|
121
|
-
explore_metadata(checker)(options)(collection)(type, false);
|
|
122
|
-
const key: Metadata = analyzer(index.keyType);
|
|
123
|
-
const value: Metadata = analyzer(index.type);
|
|
124
|
-
|
|
125
|
-
// INSERT WITH REQUIRED CONFIGURATION
|
|
126
|
-
insert(key)(value)(() => `${obj.name}[${key.getName()}]`)(
|
|
127
|
-
index.declaration?.parent
|
|
128
|
-
? checker.getSymbolAtLocation(index.declaration.parent)
|
|
129
|
-
: undefined,
|
|
130
|
-
(doc) => doc.name !== "default",
|
|
131
|
-
);
|
|
132
|
-
}
|
|
133
|
-
return obj;
|
|
134
|
-
};
|
|
135
|
-
|
|
136
|
-
const isProperty = (node: ts.Declaration) =>
|
|
137
|
-
ts.isPropertyDeclaration(node) ||
|
|
138
|
-
ts.isPropertyAssignment(node) ||
|
|
139
|
-
ts.isPropertySignature(node) ||
|
|
140
|
-
ts.isTypeLiteralNode(node);
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
|
|
3
|
+
import { Metadata } from "../../../metadata/Metadata";
|
|
4
|
+
import { MetadataObject } from "../../../metadata/MetadataObject";
|
|
5
|
+
import { MetadataProperty } from "../../../metadata/MetadataProperty";
|
|
6
|
+
|
|
7
|
+
import { Writable } from "../../../typings/Writable";
|
|
8
|
+
|
|
9
|
+
import { ArrayUtil } from "../../../utils/ArrayUtil";
|
|
10
|
+
|
|
11
|
+
import { CommentFactory } from "../../CommentFactory";
|
|
12
|
+
import { MetadataCollection } from "../../MetadataCollection";
|
|
13
|
+
import { MetadataFactory } from "../../MetadataFactory";
|
|
14
|
+
import { MetadataTagFactory } from "../../MetadataTagFactory";
|
|
15
|
+
import { MetadataHelper } from "./MetadataHelper";
|
|
16
|
+
import { explore_metadata } from "./explore_metadata";
|
|
17
|
+
|
|
18
|
+
export const emplace_metadata_object =
|
|
19
|
+
(checker: ts.TypeChecker) =>
|
|
20
|
+
(options: MetadataFactory.IOptions) =>
|
|
21
|
+
(collection: MetadataCollection) =>
|
|
22
|
+
(parent: ts.Type, nullable: boolean): MetadataObject => {
|
|
23
|
+
// EMPLACE OBJECT
|
|
24
|
+
const [obj, newbie] = collection.emplace(checker, parent);
|
|
25
|
+
ArrayUtil.add(obj.nullables, nullable, (elem) => elem === nullable);
|
|
26
|
+
|
|
27
|
+
if (newbie === false) return obj;
|
|
28
|
+
|
|
29
|
+
// PREPARE ASSETS
|
|
30
|
+
const isClass: boolean = parent.isClass();
|
|
31
|
+
const pred: (node: ts.Declaration) => boolean = isClass
|
|
32
|
+
? (node) => {
|
|
33
|
+
const kind: ts.SyntaxKind | undefined = node
|
|
34
|
+
.getChildren()[0]
|
|
35
|
+
?.getChildren()[0]?.kind;
|
|
36
|
+
return (
|
|
37
|
+
kind !== ts.SyntaxKind.PrivateKeyword &&
|
|
38
|
+
kind !== ts.SyntaxKind.ProtectedKeyword &&
|
|
39
|
+
(ts.isParameter(node) || isProperty(node))
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
: (node) => isProperty(node);
|
|
43
|
+
|
|
44
|
+
const insert =
|
|
45
|
+
(key: Metadata) =>
|
|
46
|
+
(value: Metadata) =>
|
|
47
|
+
(identifier: () => string) =>
|
|
48
|
+
(
|
|
49
|
+
symbol: ts.Symbol | undefined,
|
|
50
|
+
filter?: (doc: ts.JSDocTagInfo) => boolean,
|
|
51
|
+
): MetadataProperty => {
|
|
52
|
+
// COMMENTS AND TAGS
|
|
53
|
+
const description: string | null = symbol
|
|
54
|
+
? CommentFactory.description(symbol) ?? null
|
|
55
|
+
: null;
|
|
56
|
+
const jsDocTags: ts.JSDocTagInfo[] = (
|
|
57
|
+
symbol?.getJsDocTags() ?? []
|
|
58
|
+
).filter(filter ?? (() => true));
|
|
59
|
+
|
|
60
|
+
// THE PROPERTY
|
|
61
|
+
const property = MetadataProperty.create({
|
|
62
|
+
key,
|
|
63
|
+
value,
|
|
64
|
+
description,
|
|
65
|
+
jsDocTags,
|
|
66
|
+
tags: MetadataTagFactory.generate(value)(jsDocTags)(() =>
|
|
67
|
+
identifier(),
|
|
68
|
+
),
|
|
69
|
+
});
|
|
70
|
+
obj.properties.push(property);
|
|
71
|
+
return property;
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
//----
|
|
75
|
+
// REGULAR PROPERTIES
|
|
76
|
+
//----
|
|
77
|
+
for (const prop of parent.getApparentProperties()) {
|
|
78
|
+
// CHECK INTERNAL TAG
|
|
79
|
+
if (
|
|
80
|
+
(prop.getJsDocTags(checker) ?? []).find(
|
|
81
|
+
(tag) => tag.name === "internal",
|
|
82
|
+
) !== undefined
|
|
83
|
+
)
|
|
84
|
+
continue;
|
|
85
|
+
|
|
86
|
+
// CHECK NODE IS A FORMAL PROPERTY
|
|
87
|
+
const [node, type] = (() => {
|
|
88
|
+
const node = (prop.getDeclarations() ?? [])[0] as
|
|
89
|
+
| ts.PropertyDeclaration
|
|
90
|
+
| undefined;
|
|
91
|
+
const type: ts.Type | undefined = node
|
|
92
|
+
? checker.getTypeOfSymbolAtLocation(prop, node)
|
|
93
|
+
: "getTypeOfPropertyOfType" in checker
|
|
94
|
+
? (checker as any).getTypeOfPropertyOfType(
|
|
95
|
+
parent,
|
|
96
|
+
prop.name,
|
|
97
|
+
)
|
|
98
|
+
: undefined;
|
|
99
|
+
return [node, type];
|
|
100
|
+
})();
|
|
101
|
+
if ((node && pred(node) === false) || type === undefined) continue;
|
|
102
|
+
|
|
103
|
+
// GET EXACT TYPE
|
|
104
|
+
const key: Metadata = MetadataHelper.literal_to_metadata(prop.name);
|
|
105
|
+
const value: Metadata = explore_metadata(checker)(options)(
|
|
106
|
+
collection,
|
|
107
|
+
)(type, false);
|
|
108
|
+
|
|
109
|
+
// OPTIONAL, BUT CAN BE RQUIRED BY `Required<T>` TYPE
|
|
110
|
+
if (node?.questionToken && (value.required === false || value.any))
|
|
111
|
+
Writable(value).optional = true;
|
|
112
|
+
insert(key)(value)(() => `${obj.name}.${prop.name}`)(prop);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
//----
|
|
116
|
+
// DYNAMIC PROPERTIES
|
|
117
|
+
//----
|
|
118
|
+
for (const index of checker.getIndexInfosOfType(parent)) {
|
|
119
|
+
// GET EXACT TYPE
|
|
120
|
+
const analyzer = (type: ts.Type) =>
|
|
121
|
+
explore_metadata(checker)(options)(collection)(type, false);
|
|
122
|
+
const key: Metadata = analyzer(index.keyType);
|
|
123
|
+
const value: Metadata = analyzer(index.type);
|
|
124
|
+
|
|
125
|
+
// INSERT WITH REQUIRED CONFIGURATION
|
|
126
|
+
insert(key)(value)(() => `${obj.name}[${key.getName()}]`)(
|
|
127
|
+
index.declaration?.parent
|
|
128
|
+
? checker.getSymbolAtLocation(index.declaration.parent)
|
|
129
|
+
: undefined,
|
|
130
|
+
(doc) => doc.name !== "default",
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
return obj;
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
const isProperty = (node: ts.Declaration) =>
|
|
137
|
+
ts.isPropertyDeclaration(node) ||
|
|
138
|
+
ts.isPropertyAssignment(node) ||
|
|
139
|
+
ts.isPropertySignature(node) ||
|
|
140
|
+
ts.isTypeLiteralNode(node);
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import ts from "typescript";
|
|
2
|
-
|
|
3
|
-
import { Metadata } from "../../../metadata/Metadata";
|
|
4
|
-
import { MetadataTuple } from "../../../metadata/MetadataTuple";
|
|
5
|
-
|
|
6
|
-
import { Writable } from "../../../typings/Writable";
|
|
7
|
-
|
|
8
|
-
import { ArrayUtil } from "../../../utils/ArrayUtil";
|
|
9
|
-
|
|
10
|
-
import { MetadataCollection } from "../../MetadataCollection";
|
|
11
|
-
import { MetadataFactory } from "../../MetadataFactory";
|
|
12
|
-
import { explore_metadata } from "./explore_metadata";
|
|
13
|
-
|
|
14
|
-
export const emplace_metadata_tuple =
|
|
15
|
-
(checker: ts.TypeChecker) =>
|
|
16
|
-
(options: MetadataFactory.IOptions) =>
|
|
17
|
-
(collection: MetadataCollection) =>
|
|
18
|
-
(type: ts.TupleType, nullable: boolean): MetadataTuple => {
|
|
19
|
-
// CHECK EXISTENCE
|
|
20
|
-
const [tuple, newbie, closure] = collection.emplaceTuple(checker, type);
|
|
21
|
-
ArrayUtil.add(tuple.nullables, nullable);
|
|
22
|
-
if (newbie === false) return tuple;
|
|
23
|
-
|
|
24
|
-
// CONSTRUCT ELEMENT TYPES
|
|
25
|
-
const flagList: readonly ts.ElementFlags[] =
|
|
26
|
-
type.elementFlags ??
|
|
27
|
-
(type.target as ts.TupleType)?.elementFlags ??
|
|
28
|
-
[];
|
|
29
|
-
const elements: Metadata[] = checker
|
|
30
|
-
.getTypeArguments(type as ts.TypeReference)
|
|
31
|
-
.map((elem, i) => {
|
|
32
|
-
const child: Metadata = explore_metadata(checker)(options)(
|
|
33
|
-
collection,
|
|
34
|
-
)(elem, false, false);
|
|
35
|
-
|
|
36
|
-
// CHECK OPTIONAL
|
|
37
|
-
const flag: ts.ElementFlags | undefined = flagList[i];
|
|
38
|
-
if (
|
|
39
|
-
flag === ts.ElementFlags.Optional &&
|
|
40
|
-
(child.required === false || child.any === true)
|
|
41
|
-
)
|
|
42
|
-
Writable(child).optional = true;
|
|
43
|
-
|
|
44
|
-
// REST TYPE
|
|
45
|
-
if (flag !== ts.ElementFlags.Rest) return child;
|
|
46
|
-
const wrapper: Metadata = Metadata.initialize();
|
|
47
|
-
Writable(wrapper).rest = child;
|
|
48
|
-
return wrapper;
|
|
49
|
-
});
|
|
50
|
-
closure(elements);
|
|
51
|
-
|
|
52
|
-
return tuple;
|
|
53
|
-
};
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
|
|
3
|
+
import { Metadata } from "../../../metadata/Metadata";
|
|
4
|
+
import { MetadataTuple } from "../../../metadata/MetadataTuple";
|
|
5
|
+
|
|
6
|
+
import { Writable } from "../../../typings/Writable";
|
|
7
|
+
|
|
8
|
+
import { ArrayUtil } from "../../../utils/ArrayUtil";
|
|
9
|
+
|
|
10
|
+
import { MetadataCollection } from "../../MetadataCollection";
|
|
11
|
+
import { MetadataFactory } from "../../MetadataFactory";
|
|
12
|
+
import { explore_metadata } from "./explore_metadata";
|
|
13
|
+
|
|
14
|
+
export const emplace_metadata_tuple =
|
|
15
|
+
(checker: ts.TypeChecker) =>
|
|
16
|
+
(options: MetadataFactory.IOptions) =>
|
|
17
|
+
(collection: MetadataCollection) =>
|
|
18
|
+
(type: ts.TupleType, nullable: boolean): MetadataTuple => {
|
|
19
|
+
// CHECK EXISTENCE
|
|
20
|
+
const [tuple, newbie, closure] = collection.emplaceTuple(checker, type);
|
|
21
|
+
ArrayUtil.add(tuple.nullables, nullable);
|
|
22
|
+
if (newbie === false) return tuple;
|
|
23
|
+
|
|
24
|
+
// CONSTRUCT ELEMENT TYPES
|
|
25
|
+
const flagList: readonly ts.ElementFlags[] =
|
|
26
|
+
type.elementFlags ??
|
|
27
|
+
(type.target as ts.TupleType)?.elementFlags ??
|
|
28
|
+
[];
|
|
29
|
+
const elements: Metadata[] = checker
|
|
30
|
+
.getTypeArguments(type as ts.TypeReference)
|
|
31
|
+
.map((elem, i) => {
|
|
32
|
+
const child: Metadata = explore_metadata(checker)(options)(
|
|
33
|
+
collection,
|
|
34
|
+
)(elem, false, false);
|
|
35
|
+
|
|
36
|
+
// CHECK OPTIONAL
|
|
37
|
+
const flag: ts.ElementFlags | undefined = flagList[i];
|
|
38
|
+
if (
|
|
39
|
+
flag === ts.ElementFlags.Optional &&
|
|
40
|
+
(child.required === false || child.any === true)
|
|
41
|
+
)
|
|
42
|
+
Writable(child).optional = true;
|
|
43
|
+
|
|
44
|
+
// REST TYPE
|
|
45
|
+
if (flag !== ts.ElementFlags.Rest) return child;
|
|
46
|
+
const wrapper: Metadata = Metadata.initialize();
|
|
47
|
+
Writable(wrapper).rest = child;
|
|
48
|
+
return wrapper;
|
|
49
|
+
});
|
|
50
|
+
closure(elements);
|
|
51
|
+
|
|
52
|
+
return tuple;
|
|
53
|
+
};
|
|
@@ -10,6 +10,7 @@ import { iterate_metadata_atomic } from "./iterate_metadata_atomic";
|
|
|
10
10
|
import { iterate_metadata_coalesce } from "./iterate_metadata_coalesce";
|
|
11
11
|
import { iterate_metadata_constant } from "./iterate_metadata_constant";
|
|
12
12
|
import { iterate_metadata_definition } from "./iterate_metadata_definition";
|
|
13
|
+
import { iterate_metadata_intersection } from "./iterate_metadata_intersection";
|
|
13
14
|
import { iterate_metadata_map } from "./iterate_metadata_map";
|
|
14
15
|
import { iterate_metadata_native } from "./iterate_metadata_native";
|
|
15
16
|
import { iterate_metadata_object } from "./iterate_metadata_object";
|
|
@@ -40,6 +41,12 @@ export const iterate_metadata =
|
|
|
40
41
|
meta,
|
|
41
42
|
type,
|
|
42
43
|
)) ||
|
|
44
|
+
iterate_metadata_intersection(checker)(options)(collection)(
|
|
45
|
+
meta,
|
|
46
|
+
type,
|
|
47
|
+
parentResolved,
|
|
48
|
+
aliased,
|
|
49
|
+
) ||
|
|
43
50
|
iterate_metadata_union(checker)(options)(collection)(
|
|
44
51
|
meta,
|
|
45
52
|
type,
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
|
|
3
|
+
import { Metadata } from "../../../metadata/Metadata";
|
|
4
|
+
|
|
5
|
+
import { MetadataCollection } from "../../MetadataCollection";
|
|
6
|
+
import { MetadataFactory } from "../../MetadataFactory";
|
|
7
|
+
import { explore_metadata } from "./explore_metadata";
|
|
8
|
+
import { iterate_metadata } from "./iterate_metadata";
|
|
9
|
+
import { iterate_metadata_object } from "./iterate_metadata_object";
|
|
10
|
+
|
|
11
|
+
export const iterate_metadata_intersection =
|
|
12
|
+
(checker: ts.TypeChecker) =>
|
|
13
|
+
(options: MetadataFactory.IOptions) =>
|
|
14
|
+
(collection: MetadataCollection) =>
|
|
15
|
+
(
|
|
16
|
+
meta: Metadata,
|
|
17
|
+
type: ts.Type,
|
|
18
|
+
resolved: boolean,
|
|
19
|
+
aliased: boolean,
|
|
20
|
+
): boolean => {
|
|
21
|
+
if (!type.isIntersection()) return false;
|
|
22
|
+
|
|
23
|
+
// COSTRUCT FAKE METADATA LIST
|
|
24
|
+
const fakeCollection: MetadataCollection = new MetadataCollection();
|
|
25
|
+
const children: Metadata[] = [
|
|
26
|
+
...new Map(
|
|
27
|
+
type.types.map((t) => {
|
|
28
|
+
const m: Metadata = explore_metadata(checker)(options)(
|
|
29
|
+
fakeCollection,
|
|
30
|
+
)(t, resolved);
|
|
31
|
+
return [m.getName(), m] as const;
|
|
32
|
+
}),
|
|
33
|
+
).values(),
|
|
34
|
+
];
|
|
35
|
+
|
|
36
|
+
// ONLY ONE CHILD AFTER REMOVING DUPLICATES
|
|
37
|
+
if (children.length === 1) {
|
|
38
|
+
iterate_metadata(checker)(options)(collection)(
|
|
39
|
+
meta,
|
|
40
|
+
type.types[0]!,
|
|
41
|
+
resolved,
|
|
42
|
+
aliased,
|
|
43
|
+
);
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// ONLY OBJECT TYPES -> MERGE
|
|
48
|
+
const object: boolean = children.every(
|
|
49
|
+
(c) => c.objects.length && c.objects.length === c.size(),
|
|
50
|
+
);
|
|
51
|
+
if (object)
|
|
52
|
+
return iterate_metadata_object(checker)(options)(collection)(
|
|
53
|
+
meta,
|
|
54
|
+
type,
|
|
55
|
+
resolved,
|
|
56
|
+
true,
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
// ABSORB TO ATOMIC (OR CONSTANT) TYPE
|
|
60
|
+
const atomics: Metadata[] = children.filter(
|
|
61
|
+
(c) =>
|
|
62
|
+
(c.atomics.length ? 1 : 0 + c.constants.length ? 1 : 0) ===
|
|
63
|
+
c.bucket(),
|
|
64
|
+
);
|
|
65
|
+
const objects: Metadata[] = children.filter(
|
|
66
|
+
(c) => c.objects.length && c.objects.length === c.size(),
|
|
67
|
+
);
|
|
68
|
+
if (
|
|
69
|
+
atomics.length === 0 ||
|
|
70
|
+
atomics.length + objects.length !== children.length
|
|
71
|
+
)
|
|
72
|
+
throw new Error(message(children));
|
|
73
|
+
|
|
74
|
+
const least: Metadata = atomics.reduce((x, y) => {
|
|
75
|
+
if (Metadata.covers(x, y)) return y;
|
|
76
|
+
else if (Metadata.covers(y, x)) return x;
|
|
77
|
+
throw new Error(message(children));
|
|
78
|
+
});
|
|
79
|
+
Object.assign(meta, Metadata.merge(meta, least));
|
|
80
|
+
return true;
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
const message = (children: Metadata[]) =>
|
|
84
|
+
`Error on typia.MetadataFactory.analyze(): nonsensibl intersection type detected - ${children
|
|
85
|
+
.map((c) => c.getName())
|
|
86
|
+
.join(" & ")}.`;
|
|
@@ -14,31 +14,39 @@ export const iterate_metadata_object =
|
|
|
14
14
|
(checker: ts.TypeChecker) =>
|
|
15
15
|
(options: MetadataFactory.IOptions) =>
|
|
16
16
|
(collection: MetadataCollection) =>
|
|
17
|
-
(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
)
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const fakeCollection = new MetadataCollection();
|
|
27
|
-
const fakeSchema: Metadata = Metadata.initialize();
|
|
28
|
-
|
|
29
|
-
type.types.forEach((t) =>
|
|
30
|
-
iterate_metadata(checker)(options)(fakeCollection)(
|
|
31
|
-
fakeSchema,
|
|
32
|
-
t,
|
|
33
|
-
parentResolved,
|
|
34
|
-
false,
|
|
35
|
-
),
|
|
36
|
-
);
|
|
17
|
+
(
|
|
18
|
+
meta: Metadata,
|
|
19
|
+
type: ts.Type,
|
|
20
|
+
parentResolved: boolean,
|
|
21
|
+
ensure: boolean = false,
|
|
22
|
+
): boolean => {
|
|
23
|
+
if (ensure === false) {
|
|
24
|
+
const filter = (flag: ts.TypeFlags) =>
|
|
25
|
+
(type.getFlags() & flag) !== 0;
|
|
37
26
|
if (
|
|
38
|
-
|
|
39
|
-
|
|
27
|
+
!filter(ts.TypeFlags.Object) &&
|
|
28
|
+
!type.isIntersection() &&
|
|
29
|
+
(type as any).intrinsicName !== "object"
|
|
40
30
|
)
|
|
41
|
-
return
|
|
31
|
+
return false;
|
|
32
|
+
else if (type.isIntersection()) {
|
|
33
|
+
const fakeCollection = new MetadataCollection();
|
|
34
|
+
const fakeSchema: Metadata = Metadata.initialize();
|
|
35
|
+
|
|
36
|
+
type.types.forEach((t) =>
|
|
37
|
+
iterate_metadata(checker)(options)(fakeCollection)(
|
|
38
|
+
fakeSchema,
|
|
39
|
+
t,
|
|
40
|
+
parentResolved,
|
|
41
|
+
false,
|
|
42
|
+
),
|
|
43
|
+
);
|
|
44
|
+
if (
|
|
45
|
+
fakeSchema.objects.length === 0 ||
|
|
46
|
+
fakeSchema.objects.length !== fakeSchema.size()
|
|
47
|
+
)
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
42
50
|
}
|
|
43
51
|
|
|
44
52
|
const obj: MetadataObject = emplace_metadata_object(checker)(options)(
|
package/src/metadata/Metadata.ts
CHANGED
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
import { MetadataAlias } from "../../metadata/MetadataAlias";
|
|
2
|
-
import { IJsonComponents } from "../../schemas/IJsonComponents";
|
|
3
|
-
|
|
4
|
-
import { IJsonSchema } from "../../module";
|
|
5
|
-
import { ApplicationProgrammer } from "../ApplicationProgrammer";
|
|
6
|
-
import { JSON_COMPONENTS_PREFIX } from "./JSON_SCHEMA_PREFIX";
|
|
7
|
-
import { application_object } from "./application_object";
|
|
8
|
-
import { application_schema } from "./application_schema";
|
|
9
|
-
|
|
10
|
-
export const application_alias =
|
|
11
|
-
(options: ApplicationProgrammer.IOptions) =>
|
|
12
|
-
<BlockNever extends boolean>(blockNever: BlockNever) =>
|
|
13
|
-
(components: IJsonComponents) =>
|
|
14
|
-
(alias: MetadataAlias) =>
|
|
15
|
-
(
|
|
16
|
-
nullable: boolean,
|
|
17
|
-
): IJsonSchema.IReference | IJsonSchema.IRecursiveReference => {
|
|
18
|
-
if (alias.value.size() === 1 && alias.value.objects.length === 1)
|
|
19
|
-
return application_object(options)(components)(
|
|
20
|
-
alias.value.objects[0]!,
|
|
21
|
-
)(nullable);
|
|
22
|
-
|
|
23
|
-
const key: string =
|
|
24
|
-
options.purpose === "ajv"
|
|
25
|
-
? alias.name
|
|
26
|
-
: `${alias.name}${nullable ? ".Nullable" : ""}`;
|
|
27
|
-
const $id: string = `${JSON_COMPONENTS_PREFIX}/schemas/${key}`;
|
|
28
|
-
|
|
29
|
-
// TEMPORARY ASSIGNMENT
|
|
30
|
-
if (components.schemas?.[key] === undefined) {
|
|
31
|
-
components.schemas ??= {};
|
|
32
|
-
components.schemas[key] = {
|
|
33
|
-
$id: key,
|
|
34
|
-
} as any;
|
|
35
|
-
|
|
36
|
-
// GENERATE SCHEM
|
|
37
|
-
const schema: IJsonSchema = application_schema(options)(blockNever)(
|
|
38
|
-
components,
|
|
39
|
-
)(alias.value)({})!;
|
|
40
|
-
components.schemas ??= {};
|
|
41
|
-
components.schemas[key] = {
|
|
42
|
-
$id: options.purpose === "ajv" ? $id : undefined,
|
|
43
|
-
$recursiveAnchor:
|
|
44
|
-
(options.purpose === "ajv" && alias.recursive) || undefined,
|
|
45
|
-
...schema,
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
return options.purpose === "ajv" && alias.recursive
|
|
49
|
-
? { $recursiveRef: $id }
|
|
50
|
-
: { $ref: $id };
|
|
51
|
-
};
|
|
1
|
+
import { MetadataAlias } from "../../metadata/MetadataAlias";
|
|
2
|
+
import { IJsonComponents } from "../../schemas/IJsonComponents";
|
|
3
|
+
|
|
4
|
+
import { IJsonSchema } from "../../module";
|
|
5
|
+
import { ApplicationProgrammer } from "../ApplicationProgrammer";
|
|
6
|
+
import { JSON_COMPONENTS_PREFIX } from "./JSON_SCHEMA_PREFIX";
|
|
7
|
+
import { application_object } from "./application_object";
|
|
8
|
+
import { application_schema } from "./application_schema";
|
|
9
|
+
|
|
10
|
+
export const application_alias =
|
|
11
|
+
(options: ApplicationProgrammer.IOptions) =>
|
|
12
|
+
<BlockNever extends boolean>(blockNever: BlockNever) =>
|
|
13
|
+
(components: IJsonComponents) =>
|
|
14
|
+
(alias: MetadataAlias) =>
|
|
15
|
+
(
|
|
16
|
+
nullable: boolean,
|
|
17
|
+
): IJsonSchema.IReference | IJsonSchema.IRecursiveReference => {
|
|
18
|
+
if (alias.value.size() === 1 && alias.value.objects.length === 1)
|
|
19
|
+
return application_object(options)(components)(
|
|
20
|
+
alias.value.objects[0]!,
|
|
21
|
+
)(nullable);
|
|
22
|
+
|
|
23
|
+
const key: string =
|
|
24
|
+
options.purpose === "ajv"
|
|
25
|
+
? alias.name
|
|
26
|
+
: `${alias.name}${nullable ? ".Nullable" : ""}`;
|
|
27
|
+
const $id: string = `${JSON_COMPONENTS_PREFIX}/schemas/${key}`;
|
|
28
|
+
|
|
29
|
+
// TEMPORARY ASSIGNMENT
|
|
30
|
+
if (components.schemas?.[key] === undefined) {
|
|
31
|
+
components.schemas ??= {};
|
|
32
|
+
components.schemas[key] = {
|
|
33
|
+
$id: key,
|
|
34
|
+
} as any;
|
|
35
|
+
|
|
36
|
+
// GENERATE SCHEM
|
|
37
|
+
const schema: IJsonSchema = application_schema(options)(blockNever)(
|
|
38
|
+
components,
|
|
39
|
+
)(alias.value)({})!;
|
|
40
|
+
components.schemas ??= {};
|
|
41
|
+
components.schemas[key] = {
|
|
42
|
+
$id: options.purpose === "ajv" ? $id : undefined,
|
|
43
|
+
$recursiveAnchor:
|
|
44
|
+
(options.purpose === "ajv" && alias.recursive) || undefined,
|
|
45
|
+
...schema,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
return options.purpose === "ajv" && alias.recursive
|
|
49
|
+
? { $recursiveRef: $id }
|
|
50
|
+
: { $ref: $id };
|
|
51
|
+
};
|