ts-ref-kit 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +67 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/parser/index.d.ts +3 -0
- package/dist/parser/index.js +4 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/path-match.d.ts +7 -0
- package/dist/parser/path-match.js +37 -0
- package/dist/parser/path-match.js.map +1 -0
- package/dist/parser/reflect-loader.d.ts +9 -0
- package/dist/parser/reflect-loader.js +93 -0
- package/dist/parser/reflect-loader.js.map +1 -0
- package/dist/parser/reflect-parser-plugin.d.ts +7 -0
- package/dist/parser/reflect-parser-plugin.js +27 -0
- package/dist/parser/reflect-parser-plugin.js.map +1 -0
- package/dist/parser/reflect-parser.d.ts +74 -0
- package/dist/parser/reflect-parser.js +611 -0
- package/dist/parser/reflect-parser.js.map +1 -0
- package/dist/reflect-json/Mappable.d.ts +13 -0
- package/dist/reflect-json/Mappable.js +48 -0
- package/dist/reflect-json/Mappable.js.map +1 -0
- package/dist/reflect-json/decorate.d.ts +18 -0
- package/dist/reflect-json/decorate.js +62 -0
- package/dist/reflect-json/decorate.js.map +1 -0
- package/dist/reflect-json/index.d.ts +6 -0
- package/dist/reflect-json/index.js +7 -0
- package/dist/reflect-json/index.js.map +1 -0
- package/dist/reflect-json/json-translation.d.ts +38 -0
- package/dist/reflect-json/json-translation.js +243 -0
- package/dist/reflect-json/json-translation.js.map +1 -0
- package/dist/reflect-json/reflect-extension.d.ts +13 -0
- package/dist/reflect-json/reflect-extension.js +30 -0
- package/dist/reflect-json/reflect-extension.js.map +1 -0
- package/dist/reflect-json/types.d.ts +15 -0
- package/dist/reflect-json/types.js +2 -0
- package/dist/reflect-json/types.js.map +1 -0
- package/dist/reflect-json/utils.d.ts +9 -0
- package/dist/reflect-json/utils.js +48 -0
- package/dist/reflect-json/utils.js.map +1 -0
- package/dist/reflect-types/ClassDefinition.d.ts +26 -0
- package/dist/reflect-types/ClassDefinition.js +90 -0
- package/dist/reflect-types/ClassDefinition.js.map +1 -0
- package/dist/reflect-types/EnumDefinition.d.ts +8 -0
- package/dist/reflect-types/EnumDefinition.js +20 -0
- package/dist/reflect-types/EnumDefinition.js.map +1 -0
- package/dist/reflect-types/InterfaceDefinition.d.ts +16 -0
- package/dist/reflect-types/InterfaceDefinition.js +49 -0
- package/dist/reflect-types/InterfaceDefinition.js.map +1 -0
- package/dist/reflect-types/MethodDefinition.d.ts +15 -0
- package/dist/reflect-types/MethodDefinition.js +21 -0
- package/dist/reflect-types/MethodDefinition.js.map +1 -0
- package/dist/reflect-types/PropertyDefinition.d.ts +18 -0
- package/dist/reflect-types/PropertyDefinition.js +15 -0
- package/dist/reflect-types/PropertyDefinition.js.map +1 -0
- package/dist/reflect-types/assert-type.d.ts +12 -0
- package/dist/reflect-types/assert-type.js +35 -0
- package/dist/reflect-types/assert-type.js.map +1 -0
- package/dist/reflect-types/function-validate.d.ts +10 -0
- package/dist/reflect-types/function-validate.js +77 -0
- package/dist/reflect-types/function-validate.js.map +1 -0
- package/dist/reflect-types/index.d.ts +11 -0
- package/dist/reflect-types/index.js +12 -0
- package/dist/reflect-types/index.js.map +1 -0
- package/dist/reflect-types/package.d.ts +13 -0
- package/dist/reflect-types/package.js +25 -0
- package/dist/reflect-types/package.js.map +1 -0
- package/dist/reflect-types/reflect-context.d.ts +16 -0
- package/dist/reflect-types/reflect-context.js +109 -0
- package/dist/reflect-types/reflect-context.js.map +1 -0
- package/dist/reflect-types/reflect-definitions.d.ts +100 -0
- package/dist/reflect-types/reflect-definitions.js +29 -0
- package/dist/reflect-types/reflect-definitions.js.map +1 -0
- package/dist/reflect-types/reflect-types.d.ts +20 -0
- package/dist/reflect-types/reflect-types.js +83 -0
- package/dist/reflect-types/reflect-types.js.map +1 -0
- package/dist/reflect-types/reflect-validate.d.ts +24 -0
- package/dist/reflect-types/reflect-validate.js +313 -0
- package/dist/reflect-types/reflect-validate.js.map +1 -0
- package/package.json +36 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reflect-context.js","sourceRoot":"","sources":["../../src/reflect-types/reflect-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { PropertyDefinition } from './index';
|
|
2
|
+
export interface RawTypeDefinition {
|
|
3
|
+
arrayElementType?: RawTypeDef;
|
|
4
|
+
literalValue?: unknown;
|
|
5
|
+
typeLiteralMembers?: RawPropertyDefinition[];
|
|
6
|
+
unionMembers?: RawTypeDef[];
|
|
7
|
+
intersectionMembers?: RawTypeDef[];
|
|
8
|
+
isFunction?: boolean;
|
|
9
|
+
tupleMembers?: RawTypeDef[];
|
|
10
|
+
isOptionalInTuple?: boolean;
|
|
11
|
+
isConstructor?: boolean;
|
|
12
|
+
generics?: RawTypeDef[];
|
|
13
|
+
}
|
|
14
|
+
type RawTypeDef = string | RawTypeDefinition;
|
|
15
|
+
export interface RawClassDefinition {
|
|
16
|
+
name: string;
|
|
17
|
+
superClassName?: string;
|
|
18
|
+
implementations?: string[];
|
|
19
|
+
methods?: RawMethodDefinition[];
|
|
20
|
+
properties?: RawPropertyDefinition[];
|
|
21
|
+
}
|
|
22
|
+
export interface RawInterfaceDefinition {
|
|
23
|
+
name: string;
|
|
24
|
+
implementations?: string[];
|
|
25
|
+
methods?: RawMethodDefinition[];
|
|
26
|
+
properties?: RawPropertyDefinition[];
|
|
27
|
+
}
|
|
28
|
+
export interface RawEnumDefinition {
|
|
29
|
+
name: string;
|
|
30
|
+
members: {
|
|
31
|
+
name: string;
|
|
32
|
+
initializer: string | undefined;
|
|
33
|
+
}[];
|
|
34
|
+
}
|
|
35
|
+
export interface RawMethodDefinition {
|
|
36
|
+
name: string;
|
|
37
|
+
isPrivate?: boolean;
|
|
38
|
+
isStatic?: boolean;
|
|
39
|
+
isAsync?: boolean;
|
|
40
|
+
returnType?: RawTypeDef;
|
|
41
|
+
args?: {
|
|
42
|
+
name: string;
|
|
43
|
+
type?: RawTypeDef;
|
|
44
|
+
isOptional: boolean;
|
|
45
|
+
}[];
|
|
46
|
+
}
|
|
47
|
+
export interface RawPropertyDefinition {
|
|
48
|
+
name: string;
|
|
49
|
+
isOptional?: boolean;
|
|
50
|
+
isPrivate?: boolean;
|
|
51
|
+
isStatic?: boolean;
|
|
52
|
+
type?: RawTypeDef;
|
|
53
|
+
accessor?: {
|
|
54
|
+
getter?: {
|
|
55
|
+
isPrivate: boolean;
|
|
56
|
+
};
|
|
57
|
+
setter?: {
|
|
58
|
+
isPrivate: boolean;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export interface TypeDefinition {
|
|
63
|
+
name?: string;
|
|
64
|
+
arrayElementType?: TypeDefinition;
|
|
65
|
+
literalValue?: string;
|
|
66
|
+
typeLiteralMembers?: PropertyDefinition[];
|
|
67
|
+
unionMembers?: TypeDefinition[];
|
|
68
|
+
intersectionMembers?: TypeDefinition[];
|
|
69
|
+
isFunction?: boolean;
|
|
70
|
+
tupleMembers?: TypeDefinition[];
|
|
71
|
+
isOptionalInTuple?: boolean;
|
|
72
|
+
isConstructor?: boolean;
|
|
73
|
+
generics?: TypeDefinition[];
|
|
74
|
+
}
|
|
75
|
+
export declare function isIgnoredType(type: TypeDefinition): boolean;
|
|
76
|
+
export declare function isPrimitiveType(type: TypeDefinition): type is {
|
|
77
|
+
name: string;
|
|
78
|
+
};
|
|
79
|
+
export declare function isArrayType(type: TypeDefinition): type is {
|
|
80
|
+
arrayElementType: TypeDefinition;
|
|
81
|
+
};
|
|
82
|
+
export declare function isLiteralType(type: TypeDefinition): type is {
|
|
83
|
+
literalValue: string;
|
|
84
|
+
};
|
|
85
|
+
export declare function isTypeLiteralType(type: TypeDefinition): type is {
|
|
86
|
+
typeLiteralMembers: PropertyDefinition[];
|
|
87
|
+
};
|
|
88
|
+
export declare function isUnionType(type: TypeDefinition): type is {
|
|
89
|
+
unionMembers: TypeDefinition[];
|
|
90
|
+
};
|
|
91
|
+
export declare function isIntersectionType(type: TypeDefinition): type is {
|
|
92
|
+
intersectionMembers: TypeDefinition[];
|
|
93
|
+
};
|
|
94
|
+
export declare function isTupleType(type: TypeDefinition): type is {
|
|
95
|
+
tupleMembers: TypeDefinition[];
|
|
96
|
+
};
|
|
97
|
+
export declare function hasGenerics(type: TypeDefinition): type is {
|
|
98
|
+
generics: TypeDefinition[];
|
|
99
|
+
};
|
|
100
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const primitiveTypes = ['string', 'number', 'boolean', 'bigint', 'symbol'];
|
|
2
|
+
export function isIgnoredType(type) {
|
|
3
|
+
return !!(type.name && ['any', 'void', 'unknown'].includes(type.name));
|
|
4
|
+
}
|
|
5
|
+
export function isPrimitiveType(type) {
|
|
6
|
+
return !!(type.name && primitiveTypes.includes(type.name));
|
|
7
|
+
}
|
|
8
|
+
export function isArrayType(type) {
|
|
9
|
+
return !!type.arrayElementType;
|
|
10
|
+
}
|
|
11
|
+
export function isLiteralType(type) {
|
|
12
|
+
return !!type.literalValue;
|
|
13
|
+
}
|
|
14
|
+
export function isTypeLiteralType(type) {
|
|
15
|
+
return !!type.typeLiteralMembers;
|
|
16
|
+
}
|
|
17
|
+
export function isUnionType(type) {
|
|
18
|
+
return !!type.unionMembers;
|
|
19
|
+
}
|
|
20
|
+
export function isIntersectionType(type) {
|
|
21
|
+
return !!type.intersectionMembers;
|
|
22
|
+
}
|
|
23
|
+
export function isTupleType(type) {
|
|
24
|
+
return !!type.tupleMembers;
|
|
25
|
+
}
|
|
26
|
+
export function hasGenerics(type) {
|
|
27
|
+
return !!type.generics;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=reflect-definitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reflect-definitions.js","sourceRoot":"","sources":["../../src/reflect-types/reflect-definitions.ts"],"names":[],"mappings":"AAqFA,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;AAE1E,MAAM,UAAU,aAAa,CAAC,IAAoB;IAChD,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AACxE,CAAC;AACD,MAAM,UAAU,eAAe,CAAC,IAAoB;IAClD,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAC5D,CAAC;AACD,MAAM,UAAU,WAAW,CAAC,IAAoB;IAC9C,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAoB;IAChD,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAoB;IAEpB,OAAO,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAoB;IAC9C,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAAoB;IAEpB,OAAO,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAoB;IAC9C,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAoB;IAC9C,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAA;AACxB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type RawTypeDefinition, type TypeDefinition } from './index';
|
|
2
|
+
import { ClassDefinition, EnumDefinition, InterfaceDefinition } from './index';
|
|
3
|
+
import { type AnyConstructorFunction } from './package';
|
|
4
|
+
export declare const anyType: {
|
|
5
|
+
name: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const nullType: {
|
|
8
|
+
name: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function getClassDefinition(arg: AnyConstructorFunction | object | string): ClassDefinition | undefined;
|
|
11
|
+
export declare function getInterfaceDefinition(name: string): InterfaceDefinition | undefined;
|
|
12
|
+
export declare function getEnumDefinition(name: string): EnumDefinition | undefined;
|
|
13
|
+
export declare function getTypeAliasDefinition(name: string): TypeDefinition | undefined;
|
|
14
|
+
export declare function getTypeDefinition(typeName: string): TypeDefinition;
|
|
15
|
+
export declare function getEnumNames(enumName: string): string[];
|
|
16
|
+
export declare function getEnumValues(args: {
|
|
17
|
+
[enumName: string]: Record<string, string | number>;
|
|
18
|
+
}): (string | number)[];
|
|
19
|
+
export declare function fillType(rawType: RawTypeDefinition | string | undefined): TypeDefinition;
|
|
20
|
+
export type EnableReflect = object;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { getClassByName } from './index';
|
|
2
|
+
import { ReflectContext } from './index';
|
|
3
|
+
import { spy } from './package';
|
|
4
|
+
export const anyType = {
|
|
5
|
+
name: 'any'
|
|
6
|
+
};
|
|
7
|
+
export const nullType = {
|
|
8
|
+
name: 'null'
|
|
9
|
+
};
|
|
10
|
+
export function getClassDefinition(arg) {
|
|
11
|
+
return ReflectContext.getClassDefinition(arg);
|
|
12
|
+
}
|
|
13
|
+
export function getInterfaceDefinition(name) {
|
|
14
|
+
return ReflectContext.getInterfaceDefinition(name);
|
|
15
|
+
}
|
|
16
|
+
export function getEnumDefinition(name) {
|
|
17
|
+
return ReflectContext.getEnumDefinition(name);
|
|
18
|
+
}
|
|
19
|
+
export function getTypeAliasDefinition(name) {
|
|
20
|
+
return ReflectContext.getTypeAliasDefinition(name);
|
|
21
|
+
}
|
|
22
|
+
export function getTypeDefinition(typeName) {
|
|
23
|
+
if (typeName === 'any' || typeName === 'Any' || typeName === 'unknown' || typeName === '')
|
|
24
|
+
return anyType;
|
|
25
|
+
if (typeName === 'null')
|
|
26
|
+
return nullType;
|
|
27
|
+
const classDef = getClassDefinition(typeName) || getInterfaceDefinition(typeName) || getEnumDefinition(typeName);
|
|
28
|
+
if (classDef)
|
|
29
|
+
return classDef.type;
|
|
30
|
+
const typeDef = getTypeAliasDefinition(typeName);
|
|
31
|
+
if (typeDef)
|
|
32
|
+
return typeDef;
|
|
33
|
+
return anyType;
|
|
34
|
+
}
|
|
35
|
+
export function getEnumNames(enumName) {
|
|
36
|
+
var _a;
|
|
37
|
+
return ((_a = getEnumDefinition(enumName)) === null || _a === void 0 ? void 0 : _a.names) || [];
|
|
38
|
+
}
|
|
39
|
+
export function getEnumValues(args) {
|
|
40
|
+
const enumArg = Object.entries(args)[0];
|
|
41
|
+
if (!enumArg)
|
|
42
|
+
return [];
|
|
43
|
+
const [enumName, obj] = enumArg;
|
|
44
|
+
const enumDef = getEnumDefinition(enumName);
|
|
45
|
+
if (!enumDef)
|
|
46
|
+
return Array.from(Object.keys(obj));
|
|
47
|
+
return enumDef.names.map(name => obj[name]);
|
|
48
|
+
}
|
|
49
|
+
export function fillType(rawType) {
|
|
50
|
+
switch (typeof rawType) {
|
|
51
|
+
case 'undefined':
|
|
52
|
+
return anyType;
|
|
53
|
+
case 'string':
|
|
54
|
+
return Object.assign({}, getTypeDefinition(rawType) || {}, { name: rawType });
|
|
55
|
+
default:
|
|
56
|
+
if (rawType.arrayElementType) {
|
|
57
|
+
Object.assign(rawType, { arrayElementType: fillType(rawType.arrayElementType) });
|
|
58
|
+
}
|
|
59
|
+
else if (rawType.unionMembers) {
|
|
60
|
+
Object.assign(rawType, { unionMembers: rawType.unionMembers.map(fillType) });
|
|
61
|
+
}
|
|
62
|
+
else if (rawType.intersectionMembers) {
|
|
63
|
+
Object.assign(rawType, { intersectionMembers: rawType.intersectionMembers.map(fillType) });
|
|
64
|
+
}
|
|
65
|
+
else if (rawType.tupleMembers) {
|
|
66
|
+
Object.assign(rawType, { tupleMembers: rawType.tupleMembers.map(fillType) });
|
|
67
|
+
}
|
|
68
|
+
else if (rawType.generics) {
|
|
69
|
+
const baseType = fillType(rawType.generics[0]);
|
|
70
|
+
baseType.generics = rawType.generics.slice(1).map(fillType);
|
|
71
|
+
return baseType;
|
|
72
|
+
}
|
|
73
|
+
return rawType;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
spy({
|
|
77
|
+
getClassByName,
|
|
78
|
+
getInterfaceDefinition,
|
|
79
|
+
getEnumDefinition,
|
|
80
|
+
getTypeAliasDefinition,
|
|
81
|
+
getTypeDefinition
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=reflect-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reflect-types.js","sourceRoot":"","sources":["../../src/reflect-types/reflect-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA+C,MAAM,SAAS,CAAA;AACrF,OAAO,EAAwD,cAAc,EAAE,MAAM,SAAS,CAAA;AAC9F,OAAO,EAA+B,GAAG,EAAE,MAAM,WAAW,CAAA;AAE5D,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE,KAAK;CACZ,CAAA;AACD,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,MAAM;CACb,CAAA;AAED,MAAM,UAAU,kBAAkB,CAChC,GAA6C;IAE7C,OAAO,cAAc,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,OAAO,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,OAAO,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE;QACvF,OAAO,OAAO,CAAA;IAChB,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,QAAQ,CAAA;IACxC,MAAM,QAAQ,GACZ,kBAAkB,CAAC,QAAQ,CAAC,IAAI,sBAAsB,CAAC,QAAQ,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACjG,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC,IAAI,CAAA;IAClC,MAAM,OAAO,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAA;IAChD,IAAI,OAAO;QAAE,OAAO,OAAO,CAAA;IAC3B,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAgB;;IAC3C,OAAO,CAAA,MAAA,iBAAiB,CAAC,QAAQ,CAAC,0CAAE,KAAK,KAAI,EAAE,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAE7B;IACC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IACvC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAA;IACvB,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,OAAO,CAAA;IAC/B,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACjD,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAA+C;IACtE,QAAQ,OAAO,OAAO,EAAE,CAAC;QACvB,KAAK,WAAW;YACd,OAAO,OAAO,CAAA;QAChB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QAC/E;YACE,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAC7B,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;YAClF,CAAC;iBAAM,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;gBAChC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YAC9E,CAAC;iBAAM,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;gBACvC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YAC5F,CAAC;iBAAM,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;gBAChC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YAC9E,CAAC;iBAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC9C,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;gBAC3D,OAAO,QAAQ,CAAA;YACjB,CAAC;YACD,OAAO,OAAyB,CAAA;IACpC,CAAC;AACH,CAAC;AAGD,GAAG,CAAC;IACF,cAAc;IACd,sBAAsB;IACtB,iBAAiB;IACjB,sBAAsB;IACtB,iBAAiB;CAClB,CAAC,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type TypeDefinition } from './index';
|
|
2
|
+
import { type Dictionary } from './package';
|
|
3
|
+
interface ValidateResult {
|
|
4
|
+
success: boolean;
|
|
5
|
+
errorMessage?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function validateValue(value: unknown, type: TypeDefinition, depth?: number): ValidateResult;
|
|
8
|
+
export declare function validateInstance<T extends object>(instance: T, typeName?: string, depth?: number): ValidateResult;
|
|
9
|
+
export declare function validateArray<T extends object>(array: T[], typeName?: string, depth?: number): ValidateResult;
|
|
10
|
+
export declare function validateDictionary<T extends object>(dict: Dictionary<T>, typeName?: string, depth?: number): ValidateResult;
|
|
11
|
+
interface FailureResult extends ValidateResult {
|
|
12
|
+
cause?: FailureResult;
|
|
13
|
+
}
|
|
14
|
+
export declare function getErrorTraceMessages(failureResult: FailureResult): string;
|
|
15
|
+
export declare function validateFunctionArgument(args: {
|
|
16
|
+
funcName: string;
|
|
17
|
+
optionsObj?: object;
|
|
18
|
+
value?: unknown;
|
|
19
|
+
argName: string;
|
|
20
|
+
type: string;
|
|
21
|
+
optional?: boolean;
|
|
22
|
+
}): void;
|
|
23
|
+
export declare function safeSetValue(target: object, propName: string, value: unknown): void;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
import { anyType, getClassDefinition, getEnumDefinition, getEnumNames, getEnumValues, getInterfaceDefinition, getTypeAliasDefinition, getTypeDefinition, isArrayType, isIgnoredType, isIntersectionType, isLiteralType, isPrimitiveType, isTupleType, isTypeLiteralType, isUnionType } from './index';
|
|
2
|
+
import { getValue, setValue, spy } from './package';
|
|
3
|
+
const successResult = { success: true };
|
|
4
|
+
const failedResult = (errorMessage, cause) => ({
|
|
5
|
+
success: false,
|
|
6
|
+
errorMessage,
|
|
7
|
+
cause
|
|
8
|
+
});
|
|
9
|
+
const preservedTypes = [Promise, Date, Map, Set, Error, Function];
|
|
10
|
+
export function validateValue(value, type, depth = 1) {
|
|
11
|
+
switch (true) {
|
|
12
|
+
case type.name === 'undefined':
|
|
13
|
+
return value === undefined
|
|
14
|
+
? successResult
|
|
15
|
+
: failedResult(`declared as ${getTypeDisplayName(type)} but actually not`);
|
|
16
|
+
case isIgnoredType(type):
|
|
17
|
+
return successResult;
|
|
18
|
+
case isArrayType(type):
|
|
19
|
+
return validateArrayValue(value, type, depth);
|
|
20
|
+
case isTupleType(type):
|
|
21
|
+
return validateTupleValue(value, type, depth);
|
|
22
|
+
case isUnionType(type):
|
|
23
|
+
for (const unionMember of type.unionMembers || []) {
|
|
24
|
+
const validateResult = validateValue(value, unionMember, depth);
|
|
25
|
+
if (validateResult.success)
|
|
26
|
+
return successResult;
|
|
27
|
+
}
|
|
28
|
+
return failedResult(`declared as ${getTypeDisplayName(type)} but all value not match`);
|
|
29
|
+
case isIntersectionType(type):
|
|
30
|
+
for (const intersectionMember of type.intersectionMembers || []) {
|
|
31
|
+
const validateResult = validateValue(value, intersectionMember, depth);
|
|
32
|
+
if (!validateResult.success)
|
|
33
|
+
return failedResult(`declared as ${getTypeDisplayName(type)} but all value not match`, validateResult);
|
|
34
|
+
}
|
|
35
|
+
return successResult;
|
|
36
|
+
case isLiteralType(type):
|
|
37
|
+
switch (typeof value) {
|
|
38
|
+
case 'string':
|
|
39
|
+
return value === trimQuotes(type.literalValue)
|
|
40
|
+
? successResult
|
|
41
|
+
: failedResult(`declared as string ${getTypeDisplayName(type)} but value not match`);
|
|
42
|
+
case 'number':
|
|
43
|
+
return value === Number(type.literalValue)
|
|
44
|
+
? successResult
|
|
45
|
+
: failedResult(`declared as number ${getTypeDisplayName(type)} but value not match`);
|
|
46
|
+
case 'bigint':
|
|
47
|
+
return value === BigInt(type.literalValue)
|
|
48
|
+
? successResult
|
|
49
|
+
: failedResult(`declared as bigint ${getTypeDisplayName(type)} but value not match`);
|
|
50
|
+
case 'boolean':
|
|
51
|
+
return value === Boolean(type.literalValue)
|
|
52
|
+
? successResult
|
|
53
|
+
: failedResult(`declared as boolean ${getTypeDisplayName(type)} but value not match`);
|
|
54
|
+
default:
|
|
55
|
+
if (type.literalValue === 'null' && value === null)
|
|
56
|
+
return successResult;
|
|
57
|
+
return value === type.literalValue
|
|
58
|
+
? successResult
|
|
59
|
+
: failedResult(`declared as ${getTypeDisplayName(type)} but value not match`);
|
|
60
|
+
}
|
|
61
|
+
case isTypeLiteralType(type):
|
|
62
|
+
return validateProperties(value, type, depth);
|
|
63
|
+
case type.isFunction:
|
|
64
|
+
case type.isConstructor:
|
|
65
|
+
return typeof value === 'function'
|
|
66
|
+
? successResult
|
|
67
|
+
: failedResult(`declared as ${getTypeDisplayName(type)} but actually not`);
|
|
68
|
+
case isPrimitiveType(type):
|
|
69
|
+
return typeof value === type.name
|
|
70
|
+
? successResult
|
|
71
|
+
: failedResult(`declared as ${getTypeDisplayName(type)} but actually ${typeof value}`);
|
|
72
|
+
default:
|
|
73
|
+
return validateSimpleValue(value, type, depth);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function validateArrayValue(value, type, depth = 1) {
|
|
77
|
+
if (!Array.isArray(value)) {
|
|
78
|
+
return failedResult(`declared as ${getTypeDisplayName(type)} but actually not`);
|
|
79
|
+
}
|
|
80
|
+
if (depth === 0)
|
|
81
|
+
return successResult;
|
|
82
|
+
for (const arrayItem of value) {
|
|
83
|
+
const validateResult = validateValue(arrayItem, type.arrayElementType || anyType, depth - 1);
|
|
84
|
+
if (!validateResult.success) {
|
|
85
|
+
return failedResult(`declared as ${getTypeDisplayName(type)} but not all values in array match`, validateResult);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return successResult;
|
|
89
|
+
}
|
|
90
|
+
function validateTupleValue(value, type, depth = 1) {
|
|
91
|
+
if (!Array.isArray(value)) {
|
|
92
|
+
return failedResult(`declared as ${getTypeDisplayName(type)} but actually not a tuple`);
|
|
93
|
+
}
|
|
94
|
+
if (depth === 0)
|
|
95
|
+
return successResult;
|
|
96
|
+
let index = 0;
|
|
97
|
+
for (const tupleItem of type.tupleMembers) {
|
|
98
|
+
const tupleValue = value[index++];
|
|
99
|
+
if (tupleItem.isOptionalInTuple && tupleValue === undefined)
|
|
100
|
+
continue;
|
|
101
|
+
const validateResult = validateValue(value[index], tupleItem, depth);
|
|
102
|
+
if (!validateResult.success) {
|
|
103
|
+
return failedResult(`declared as ${getTypeDisplayName(type)} but not all values in tuple match`, validateResult);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return successResult;
|
|
107
|
+
}
|
|
108
|
+
function validateProperties(value, type, depth = 1) {
|
|
109
|
+
if (!(value instanceof Object)) {
|
|
110
|
+
return failedResult(`declared as ${getTypeDisplayName(type)} but not an object`);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
for (const prop of type.typeLiteralMembers || []) {
|
|
114
|
+
// don't check static value
|
|
115
|
+
if (prop.isStatic)
|
|
116
|
+
return successResult;
|
|
117
|
+
//Skip symbol
|
|
118
|
+
if (prop.name.startsWith('[') && prop.name.endsWith(']'))
|
|
119
|
+
return successResult;
|
|
120
|
+
if (depth === 0)
|
|
121
|
+
return successResult;
|
|
122
|
+
let propType = prop.type || anyType;
|
|
123
|
+
if (prop.isOptional)
|
|
124
|
+
propType = { unionMembers: [propType, { name: 'undefined' }] };
|
|
125
|
+
const propValue = getValue(value, prop.name);
|
|
126
|
+
const validateResult = validateValue(propValue, propType, depth - 1);
|
|
127
|
+
if (!validateResult.success) {
|
|
128
|
+
return failedResult(`declared ${prop.name} as ${getTypeDisplayName(propType)}, but not match`, validateResult);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return successResult;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
function validateSimpleValue(value, type, depth = 1) {
|
|
135
|
+
const typeName = typeof type === 'string' ? type : type.name;
|
|
136
|
+
if (!typeName)
|
|
137
|
+
return successResult;
|
|
138
|
+
if (value === undefined) {
|
|
139
|
+
return failedResult(`declared as ${getTypeDisplayName(type)} but actually undefined`);
|
|
140
|
+
}
|
|
141
|
+
if (value === null) {
|
|
142
|
+
if (typeName === 'null')
|
|
143
|
+
return successResult;
|
|
144
|
+
else
|
|
145
|
+
return failedResult(`declared as ${getTypeDisplayName(type)} but actually null`);
|
|
146
|
+
}
|
|
147
|
+
for (const preservedType of preservedTypes) {
|
|
148
|
+
if (typeName === preservedType.name) {
|
|
149
|
+
return value instanceof preservedType
|
|
150
|
+
? successResult
|
|
151
|
+
: failedResult(`declared as ${getTypeDisplayName(type)} but actually ${value.constructor.name}`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
if (value instanceof Object && !valueInstanceOf(value, typeName)) {
|
|
155
|
+
return failedResult(`declared as ${getTypeDisplayName(type)} but actually not instance of it`);
|
|
156
|
+
}
|
|
157
|
+
if (depth == 0)
|
|
158
|
+
return successResult;
|
|
159
|
+
const result = validateValue(value, getTypeDefinition(typeName), depth);
|
|
160
|
+
return result.success
|
|
161
|
+
? successResult
|
|
162
|
+
: failedResult(`declared as ${getTypeDisplayName(type)} but actually not match`, result);
|
|
163
|
+
}
|
|
164
|
+
export function validateInstance(instance, typeName, depth = 1) {
|
|
165
|
+
if (typeName) {
|
|
166
|
+
if (typeName !== 'object' && !valueInstanceOf(instance, typeName)) {
|
|
167
|
+
return failedResult(`declared as instance of ${typeName} but actually not`);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
typeName = instance.constructor.name;
|
|
172
|
+
}
|
|
173
|
+
const typeDef = getTypeDefinition(typeName);
|
|
174
|
+
if (typeName !== 'any' && typeDef === anyType) {
|
|
175
|
+
return failedResult(`${typeName} not defined`);
|
|
176
|
+
}
|
|
177
|
+
return validateValue(instance, typeDef, depth);
|
|
178
|
+
}
|
|
179
|
+
export function validateArray(array, typeName, depth = 1) {
|
|
180
|
+
for (let i = 0; i < array.length; i++) {
|
|
181
|
+
const result = validateInstance(array[i], typeName, depth);
|
|
182
|
+
if (!result.success) {
|
|
183
|
+
return failedResult(`declared as instance of ${typeName}[] but [${i}] actually not`, result);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return successResult;
|
|
187
|
+
}
|
|
188
|
+
export function validateDictionary(dict, typeName, depth = 1) {
|
|
189
|
+
const entries = Object.entries(dict);
|
|
190
|
+
for (let i = 0; i < entries.length; i++) {
|
|
191
|
+
const [key, value] = entries[i];
|
|
192
|
+
const result = validateInstance(value, typeName, depth);
|
|
193
|
+
if (!result.success) {
|
|
194
|
+
return failedResult(`declared as instance of Dictionary<${typeName}> but [${key}] actually not`, result);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return successResult;
|
|
198
|
+
}
|
|
199
|
+
function valueInstanceOf(value, className) {
|
|
200
|
+
if (value === undefined)
|
|
201
|
+
return true;
|
|
202
|
+
if (value.constructor.name === className)
|
|
203
|
+
return true;
|
|
204
|
+
const classDef = getClassDefinition(className);
|
|
205
|
+
if (!classDef)
|
|
206
|
+
return true;
|
|
207
|
+
if (classDef.jsClass)
|
|
208
|
+
return value instanceof classDef.jsClass;
|
|
209
|
+
const instanceClassDef = getClassDefinition(value);
|
|
210
|
+
if (!instanceClassDef)
|
|
211
|
+
return false;
|
|
212
|
+
return instanceClassDef.isSubClassOf(classDef.name);
|
|
213
|
+
}
|
|
214
|
+
function trimQuotes(text) {
|
|
215
|
+
if (text.length >= 2 &&
|
|
216
|
+
((text[0] === '"' && text[text.length - 1] === '"') ||
|
|
217
|
+
(text[0] === "'" && text[text.length - 1] === "'"))) {
|
|
218
|
+
return text.substring(1, text.length - 1);
|
|
219
|
+
}
|
|
220
|
+
return text;
|
|
221
|
+
}
|
|
222
|
+
function getTypeDisplayName(type) {
|
|
223
|
+
var _a, _b, _c;
|
|
224
|
+
if (typeof type === 'string') {
|
|
225
|
+
return type;
|
|
226
|
+
}
|
|
227
|
+
if (isArrayType(type)) {
|
|
228
|
+
return (((_a = type.arrayElementType) === null || _a === void 0 ? void 0 : _a.name) || 'unknown') + '[]';
|
|
229
|
+
}
|
|
230
|
+
if (type.isConstructor) {
|
|
231
|
+
return 'Class';
|
|
232
|
+
}
|
|
233
|
+
if (type.isFunction) {
|
|
234
|
+
return 'Function';
|
|
235
|
+
}
|
|
236
|
+
if (isTypeLiteralType(type)) {
|
|
237
|
+
return 'Object';
|
|
238
|
+
}
|
|
239
|
+
if (isTupleType(type)) {
|
|
240
|
+
return `(${type.tupleMembers.map(getTypeDisplayName).join(',')})`;
|
|
241
|
+
}
|
|
242
|
+
if (isUnionType(type)) {
|
|
243
|
+
return ((_b = type.unionMembers) === null || _b === void 0 ? void 0 : _b.map(getTypeDisplayName).join(' | ')) || 'unknown';
|
|
244
|
+
}
|
|
245
|
+
if (isIntersectionType(type)) {
|
|
246
|
+
return ((_c = type.intersectionMembers) === null || _c === void 0 ? void 0 : _c.map(getTypeDisplayName).join(' & ')) || 'unknown';
|
|
247
|
+
}
|
|
248
|
+
if (isLiteralType(type)) {
|
|
249
|
+
return type.literalValue;
|
|
250
|
+
}
|
|
251
|
+
return type.name || 'unknown';
|
|
252
|
+
}
|
|
253
|
+
export function getErrorTraceMessages(failureResult) {
|
|
254
|
+
const getAllTraceMessages = (failureResult) => failureResult.errorMessage
|
|
255
|
+
? [
|
|
256
|
+
failureResult.errorMessage,
|
|
257
|
+
...(failureResult.cause ? getAllTraceMessages(failureResult.cause) : [])
|
|
258
|
+
]
|
|
259
|
+
: [];
|
|
260
|
+
return getAllTraceMessages(failureResult).join('\n-> ');
|
|
261
|
+
}
|
|
262
|
+
export function validateFunctionArgument(args) {
|
|
263
|
+
const { funcName, optionsObj, value, argName, type, optional } = args;
|
|
264
|
+
const v = value || (optionsObj && getValue(optionsObj, argName));
|
|
265
|
+
if (v === undefined) {
|
|
266
|
+
if (!optional)
|
|
267
|
+
throw Error(`Illegal arguments for ${funcName}: ${argName} is undefined`);
|
|
268
|
+
else
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
if (['string', 'number', 'boolean', 'bigint'].includes(type)) {
|
|
272
|
+
if (typeof v !== type)
|
|
273
|
+
throw Error(`Illegal arguments for ${funcName}: ${argName} is not a ${type}`);
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
if (typeof v !== 'object')
|
|
277
|
+
throw Error(`Illegal arguments for ${funcName}: ${argName} is not an object`);
|
|
278
|
+
if (v === null)
|
|
279
|
+
throw Error(`Illegal arguments for ${funcName}: ${argName} is null`);
|
|
280
|
+
const result = validateInstance(v, type);
|
|
281
|
+
if (!result.success)
|
|
282
|
+
throw Error(`Illegal arguments for ${funcName}: ${result.errorMessage}`);
|
|
283
|
+
}
|
|
284
|
+
export function safeSetValue(target, propName, value) {
|
|
285
|
+
const classDef = getClassDefinition(target);
|
|
286
|
+
if (!classDef) {
|
|
287
|
+
setValue(target, propName, value);
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
const propDef = classDef.allProperties[propName];
|
|
291
|
+
if (!propDef) {
|
|
292
|
+
throw new Error(`Property ${propName} is not defined in ${classDef.name}`);
|
|
293
|
+
}
|
|
294
|
+
const propType = propDef.type;
|
|
295
|
+
const validateResult = validateValue(value, propType);
|
|
296
|
+
if (!validateResult.success) {
|
|
297
|
+
throw new Error(validateResult.errorMessage);
|
|
298
|
+
}
|
|
299
|
+
setValue(target, propName, value);
|
|
300
|
+
}
|
|
301
|
+
spy({
|
|
302
|
+
validateInstance,
|
|
303
|
+
validateArray,
|
|
304
|
+
validateDictionary,
|
|
305
|
+
getClassDefinition,
|
|
306
|
+
getInterfaceDefinition,
|
|
307
|
+
getEnumDefinition,
|
|
308
|
+
getTypeAliasDefinition,
|
|
309
|
+
getTypeDefinition,
|
|
310
|
+
getEnumNames,
|
|
311
|
+
getEnumValues
|
|
312
|
+
});
|
|
313
|
+
//# sourceMappingURL=reflect-validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reflect-validate.js","sourceRoot":"","sources":["../../src/reflect-types/reflect-validate.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ts-ref-kit",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Type reflection and validation library for TypeScript",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist/**/*",
|
|
9
|
+
"LICENSE",
|
|
10
|
+
"README.md"
|
|
11
|
+
],
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"import": "./dist/index.js",
|
|
15
|
+
"types": "./dist/index.d.ts"
|
|
16
|
+
},
|
|
17
|
+
"./parser": {
|
|
18
|
+
"import": "./dist/parser/index.js",
|
|
19
|
+
"types": "./dist/parser/index.d.ts"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"scripts": {
|
|
23
|
+
"build": "tsc",
|
|
24
|
+
"build-parser": "tsc src/parser/reflect-parser.ts --target es2015 --module commonjs --moduleResolution node"
|
|
25
|
+
},
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"reflect-metadata": "^0.2.2",
|
|
28
|
+
"tslib": "^2.8.1"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@types/node": "^24.2.0",
|
|
32
|
+
"typescript": "^5.9.2",
|
|
33
|
+
"vite": "^7.1.4"
|
|
34
|
+
},
|
|
35
|
+
"private": false
|
|
36
|
+
}
|