ts-ref-kit 1.1.8 → 1.1.10
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/dist/cjs/index.cjs +4 -4
- package/dist/cjs/parser/index.cjs +2 -2
- package/dist/esm/index.js +4 -4
- package/dist/esm/parser/index.js +2 -2
- package/package.json +1 -1
- package/types/raw.d.ts +8 -2
- package/types/reflect-types/ClassDefinition.d.ts +2 -1
- package/types/reflect-types/InterfaceDefinition.d.ts +1 -1
- package/types/reflect-types/PropertyDefinition.d.ts +15 -10
- package/types/reflect-types/TypeDefinition.d.ts +14 -3
- package/types/reflect-types/index.d.ts +5 -0
- package/types/reflect-types/json/JSONTransfer.d.ts +11 -0
- package/types/reflect-types/json/index.d.ts +1 -0
- package/types/reflect-types/json/types.d.ts +8 -0
- package/types/reflect-types/package.d.ts +1 -1
- package/types/reflect-types/special-types.d.ts +9 -5
- package/types/reflect-types/validates/ValidateResult.d.ts +23 -14
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
caused by: `):this.errorMessage}get errorMessage(){return`[Err${this.errorCode}] ${this.errorDesc}`}};o(
|
|
3
|
-
-> `)}o(yn,"getErrorTraceMessages");var xe=class xe extends Error{constructor(e,t){super(e),this.failureResult=t}};o(xe,"ValidationError");var x=xe,V={validationErrorHandler:o(function(n){var e;console.error(n.message),console.error((e=n.failureResult)==null?void 0:e.errorStackFlow)},"validationErrorHandler")};var Ce=[Promise,Date,Map,Set,Error,Function,Array,ArrayBuffer,RegExp];function g(n,e,t=1){switch(!0){case e.name==="undefined":return n===void 0?u:l(100,`declared as ${m(e)} but actually not`);case We(e):return u;case ye(e):return n instanceof Object?Pe(n,e,t):l(200,`declared as ${m(e)} but actually not an object`);case fe(e):return dn(n,e,t);case me(e):return bn(n,e,t);case ue(e):for(let i of e.unionMembers||[])if(g(n,i,t).success)return u;return l(320,`declared as ${m(e)} but all value not match`);case pe(e):for(let i of e.intersectionMembers||[]){let r=g(n,i,t);if(!r.success)return l(330,`declared as ${m(e)} but all value not match`,r)}return u;case Ee(e):return Dn(n,e,t);case ce(e):switch(typeof n){case"string":return n===hn(e.literalValue)?u:l(110,`declared as string ${m(e)} but value not match`);case"number":return n===Number(e.literalValue)?u:l(111,`declared as number ${m(e)} but value not match`);case"bigint":return n===BigInt(e.literalValue)?u:l(112,`declared as bigint ${m(e)} but value not match`);case"boolean":return n===!!e.literalValue?u:l(113,`declared as boolean ${m(e)} but value not match`);default:return e.literalValue==="null"&&n===null?u:n===e.literalValue?u:l(114,`declared as ${m(e)} but value not match`)}case le(e):return gn(n,e,t);case e.isFunction:case e.isConstructor:return typeof n=="function"?u:l(150,`declared as ${m(e)} but actually not`);case Ie(e):return n==null?l(120,`declared as ${m(e)} but actually ${n}`):typeof n===e.name?u:l(121,`declared as ${m(e)} but actually ${typeof n}`);default:return Tn(n,e,t)}}o(g,"validateValue");function dn(n,e,t=1){if(!Array.isArray(n))return l(300,`declared as ${m(e)} but actually not`);if(t===0)return u;for(let i=0;i<n.length;i++){let r=n[i],s=g(r,e.arrayElementType||T,t-1);if(!s.success)return l(301,`declared as ${m(e)} but [${i}] not match`,s)}return u}o(dn,"validateArrayValue");function Dn(n,e,t=1){if(n===null)return l(400,"declared as indexedType but actually is null");if(n===void 0)return l(401,"declared as indexedType but actually is undefined");if(typeof n=="object")return l(410,`declared as indexedType but actually is ${typeof n}`);for(let i of Object.values(n)){let r=g(i,e.indexElementType,t-1);if(!r.success)return l(420,`declared as ${m(e)} but actually not match`,r)}return u}o(Dn,"validateIndexedValue");function bn(n,e,t=1){if(!Array.isArray(n))return l(310,`declared as ${m(e)} but actually not a tuple`);if(t===0)return u;let i=0;for(let r of e.tupleMembers){let s=n[i++];if(r.isOptionalInTuple&&s===void 0)continue;let f=g(n[i],r,t);if(!f.success)return l(311,`declared as ${m(e)} but not all values in tuple match`,f)}return u}o(bn,"validateTupleValue");function gn(n,e,t=1){if(n instanceof Object){for(let i of e.typeLiteralMembers||[]){if(i.isStatic)return u;if(i.name.startsWith("[")&&i.name.endsWith("]"))return u;if(t===0)return u;let r=i.type||T;i.isOptional&&(r={unionMembers:[r,{name:"undefined"}]});let s=_(n,i.name),f=g(s,r,t-1);if(!f.success)return l(211,`declared ${i.name} as ${m(r)}, but not match`,f)}return u}else return l(210,`declared as ${m(e)} but not an object`)}o(gn,"validateProperties");function Tn(n,e,t=1){let i=typeof e=="string"?e:e.name;if(!i)return u;if(n===void 0)return l(130,`declared as ${m(e)} but actually undefined`);if(n===null)return i==="null"?u:l(131,`declared as ${m(e)} but actually null`);for(let s of Ce)if(i===s.name)return n instanceof s?u:l(132,`declared as ${m(e)} but actually ${n.constructor.name}`);if(n instanceof Object&&!Je(n,i))return l(133,`declared as ${m(e)} but actually not instance of it`);if(t==0)return u;let r=g(n,R(i),t);return r.success?u:l(134,`declared as ${m(e)} but actually not match`,r)}o(Tn,"validateSimpleValue");function Pe(n,e,t=3){if(e.classDefinition&&!Je(n,e.classDefinition.name))return l(201,`declared as instance of ${m(e)} but actually not`);if(e.name!=="any"&&e===T)return l(202,`${m(e)} not defined`);let i=O({},e);return delete i.classDefinition,g(n,i,t)}o(Pe,"validateClassInstance");function Je(n,e){if(n===void 0||n.constructor.name===e)return!0;let t=y(e);if(!t)return!0;if(t.jsClass)return n instanceof t.jsClass;let i=y(n);return i?i.isSubClassOf(t.name):!1}o(Je,"valueInstanceOf");function hn(n){return n.length>=2&&(n[0]==='"'&&n[n.length-1]==='"'||n[0]==="'"&&n[n.length-1]==="'")?n.substring(1,n.length-1):n}o(hn,"trimQuotes");function m(n){var e,t,i,r;return typeof n=="string"?n:ye(n)?n.classDefinition.name:fe(n)?(((e=n.arrayElementType)==null?void 0:e.name)||"unknown")+"[]":n.isConstructor?"Class":n.isFunction?"Function":le(n)?"Object":me(n)?`(${n.tupleMembers.map(m).join(",")})`:ue(n)?((t=n.unionMembers)==null?void 0:t.map(m).join(" | "))||"unknown":pe(n)?((i=n.intersectionMembers)==null?void 0:i.map(m).join(" & "))||"unknown":ce(n)?n.literalValue:Ee(n)?`{ [key]: ${((r=n.indexElementType)==null?void 0:r.name)||"unknown"} }`:n.name||"unknown"}o(m,"getTypeDisplayName");var ke=class ke{constructor(e){var t;this.name=e.name,this.members=new Map,e.members.forEach(i=>{let r=i.initializer===void 0?{name:"number"}:{literalValue:i.initializer};this.members.set(i.name,r)}),this.fromLib=(t=e.fromLib)!=null?t:!1}get type(){return{name:this.name,unionMembers:Array.from(this.members.values()),fromLib:this.fromLib}}get names(){return Array.from(this.members.keys())}};o(ke,"EnumDefinition");var J=ke,$e=new Map;function S(n){var e,t;if(!$e.has(n)){let i=(t=(e=w())==null?void 0:e.enums)==null?void 0:t[n];if(!i)return;$e.set(n,new J(i))}return $e.get(n)}o(S,"getEnumDefinition");function qe(n){var e;return((e=S(n))==null?void 0:e.names)||[]}o(qe,"getEnumNames");function ze(n){let e=Object.entries(n)[0];if(!e)return[];let[t,i]=e,r=S(t);return r?r.names.map(s=>i[s]):Array.from(Object.keys(i))}o(ze,"getEnumValues");var Mn=["Partial","Required","Readonly","Pick","Omit","Extract","Exclude"];function Ke(n){return typeof n=="string"&&Mn.includes(n)}o(Ke,"isSpecialType");function wn(n,e,t){let i;switch(n){case"Partial":i=Rn(e);break;case"Required":i=xn(e);break;case"Readonly":i=Cn(e);break;case"Pick":i=Ye(e,t);break;case"Omit":i=Ze(e,t);break;case"Extract":i=Pn(e,t);break;case"Exclude":i=In(e,t);break}return i}o(wn,"getSpecialType");function Qe(n,e){let[t,i]=e,r,s=["Pick","Omit","Extract","Exclude"].includes(n)?["T"]:["T","K"];return r=wn(n,t,i),r?{name:n,type:r,genericParams:s,fromLib:!0}:void 0}o(Qe,"getSpecialTypeAlias");function W(n,e){return n.typeLiteralMembers?{typeLiteralMembers:n.typeLiteralMembers.map(t=>t.copy(e))}:n.unionMembers?{unionMembers:n.unionMembers.map(t=>W(t,e)).filter(t=>t!==void 0)}:n.intersectionMembers?{intersectionMembers:n.intersectionMembers.map(t=>W(t,e)).filter(t=>t!==void 0)}:void 0}o(W,"getMappedType");function Xe(n,e){if(n.typeLiteralMembers)return{typeLiteralMembers:n.typeLiteralMembers.map(t=>e(t)?t.copy():void 0).filter(t=>!!t)}}o(Xe,"getFilterKeyType");function Rn(n){return W(n,e=>e.isOptional=!0)}o(Rn,"getPartialType");function xn(n){return W(n,e=>e.isOptional=!1)}o(xn,"getRequiredType");function Cn(n){return W(n,e=>e.isReadonly=!0)}o(Cn,"getReadonlyType");function Ye(n,e){var i;if(!e)return;let t=(i=e.unionMembers)==null?void 0:i.map(r=>r.name);if(n.typeLiteralMembers)return Xe(n,r=>{var s;return(s=r.name===e.literalValue||(t==null?void 0:t.includes(r.name)))!=null?s:!1})}o(Ye,"getPickType");function Ze(n,e){var i;if(!e)return;let t=(i=e.unionMembers)==null?void 0:i.map(r=>r.name);if(n.typeLiteralMembers)return Xe(n,r=>!(r.name===e.literalValue||t!=null&&t.includes(r.name)))}o(Ze,"getOmitType");function Pn(n,e){if(e&&n.typeLiteralMembers&&e.typeLiteralMembers){let t={unionMembers:e.typeLiteralMembers.map(i=>({literalValue:i.name}))};return Ye(n,t)}}o(Pn,"getExtractType");function In(n,e){if(e&&n.typeLiteralMembers&&e.typeLiteralMembers){let t={unionMembers:e.typeLiteralMembers.map(i=>({literalValue:i.name}))};return Ze(n,t)}}o(In,"getExcludeType");function de(n,e){var r,s,f;if(Ke(n))return!e||!e[0]?void 0:Qe(n,[e[0],e[1]]);if(!Ae.has(n)){let c=(s=(r=w())==null?void 0:r.typeAliases)==null?void 0:s[n];if(!c||!c.type)return;Ae.set(n,{name:n,type:c.type,genericParams:c.genericParams,fromLib:c.fromLib})}let t=Ae.get(n);if(!t)return;let i;if(t.genericParams&&e){let c={};for(let a=0;a<t.genericParams.length;a++){let p=t.genericParams[a];c[p]=e[a]}i=d(t.type,c,e)}else i=d(t.type);return{name:t.name,type:i,genericParams:t.genericParams,fromLib:(f=t.fromLib)!=null?f:!1}}o(de,"getTypeAliasDefinition");var Ae=new Map;var T={name:"any"},En={name:"null"};function We(n){return!!(n.name&&["any","void","unknown"].includes(n.name))}o(We,"isIgnoredType");function Ie(n){return!!(n.name&&Te.includes(n.name))}o(Ie,"isPrimitiveType");function fe(n){return!!n.arrayElementType}o(fe,"isArrayType");function ce(n){return!!n.literalValue}o(ce,"isLiteralType");function le(n){return!!n.typeLiteralMembers}o(le,"isTypeLiteralType");function ue(n){return!!n.unionMembers}o(ue,"isUnionType");function pe(n){return!!n.intersectionMembers}o(pe,"isIntersectionType");function me(n){return!!n.tupleMembers}o(me,"isTupleType");function ye(n){return!!n.classDefinition}o(ye,"isClassDefinition");function $n(n){return!!n.generics}o($n,"hasGenerics");function Ee(n){return!!n.indexElementType}o(Ee,"isIndexType");function R(n,e){if(n==="any"||n==="Any"||n==="unknown"||n==="")return T;if(n==="null")return En;if(n==="Function")return{isFunction:!0};let t=y(n);if(t)return e?j.create(t,e).type:t.type;if(Te.includes(n))return{name:n};if(Ce.map(f=>f.name).includes(n))return{name:n,generics:e};let i=A(n);if(i)return i.fromLib?{name:n,generics:e}:e?ie.create(i,e).type:i.type;let r=S(n);if(r)return r.type;let s=de(n,e);return s?s.type:T}o(R,"getTypeDefinition");var Oe=new Map;function d(n,e,t){let i=je(n);if(n===void 0)return T;let r=Oe.get(i);if(r)return r;let s={};if(Oe.set(i,s),typeof n=="string")s=(e==null?void 0:e[n])||R(n,t)||T;else if(n.arrayElementType)Object.assign(s,{arrayElementType:d(n.arrayElementType,e)});else if(n.unionMembers)Object.assign(s,{unionMembers:n.unionMembers.map(f=>d(f,e))});else if(n.intersectionMembers)Object.assign(s,{intersectionMembers:n.intersectionMembers.map(f=>d(f,e))});else if(n.tupleMembers)Object.assign(s,{tupleMembers:n.tupleMembers.map(f=>d(f,e))});else if(n.generics){let f=n.generics[0],c=n.generics.slice(1).map(a=>d(a,e));Object.assign(s,d(f,e,c))}else n.indexElementType&&Object.assign(s,{indexElementType:d(n.indexElementType,e)});return Object.keys(s).length===0&&(s=T),Oe.delete(i),s}o(d,"fillType");function je(n){return n===null?"null":n===void 0?"undefined":typeof n!="object"?JSON.stringify(n):Array.isArray(n)?"["+n.map(je).join(",")+"]":"{"+Object.keys(n).sort().map(t=>JSON.stringify(t)+":"+je(n[t])).join(",")+"}"}o(je,"stableStringify");var en={isPrimitiveType:Ie,isArrayType:fe,isLiteralType:ce,isTypeLiteralType:le,isUnionType:ue,isIntersectionType:pe,isTupleType:me,isClassDefinition:ye,hasGenerics:$n};function M(n){if(typeof n=="string"){let e=On(n);if(typeof e=="string"){let t=e.match(/"(.+)"$/)||e.match(/'(.+)'$/);if(t!=null&&t[1])return{literalValue:t[1]}}return typeof e=="string"?R(n):M(e)}return"array"in n?{arrayElementType:M(n.array)}:"union"in n?{unionMembers:n.union.map(M)}:"intersection"in n?{intersectionMembers:n.intersection.map(M)}:"tuple"in n?{tupleMembers:n.tuple.map(M)}:"generic"in n?R(n.name,n.generic.map(M)):n}o(M,"getTypeDef");function kn(n,e,t=5){let i=g(n,M(e),t);return i.success||V.validationErrorHandler(new x(`assert failed with type: ${e}, ${i.errorStackFlow}`,i)),n}o(kn,"assertType");function An(n){return nn(null,n)}o(An,"isNullable");function nn(n,e,t=5){return g(n,M(e),t).success}o(nn,"isType");function On(n){let e=0,t="%%",i={};function r(a){let p=`${t}${e++}`;return i[p]=a,p}o(r,"addPlaceholder");function s(a){let p=a.match(new RegExp(`^(${t}\\d)$`));if(!p)return;let D=p[1].trim(),b=i[D];return delete i[D],b}o(s,"getPlaceholder");function f(a,p,D,b){let h=0;for(;h<a.length;){let C=a.indexOf(p,h);if(C===-1)break;h=C+1;let k=a.indexOf(D,h);if(k===-1)throw new De("Illegal type string");let q=a.substring(C+1,k),v=r(q);b?a=`${a.substring(0,C+1)}${v}${a.substring(k)}`:a=`${a.substring(0,C)}${v}${a.substring(k+1)}`}return a}o(f,"replaceBracket");function c(a){let p=a.trim(),D=o(P=>P.trim(),"trim"),b=o(P=>P.length!=0,"notEmpty");p=f(p,"(",")",!1),p=f(p,"<",">",!0);let h=s(p);if(h)return c(h);let C=p.split("|").map(D).filter(b);if(C.length>1)return{union:C.map(c)};let k=p.split("&").map(D).filter(b);if(k.length>1)return{intersection:k.map(c)};let q=p.match(/^\[(.*)]$/);if(q)return{tuple:q[1].split(",").map(D).filter(b).map(c)};let v=p.match(/^(.+)\[]$/);if(v)return{array:c(v[1])};let be=p.match(/^([^<]+)<(.+)>$/);if(be){let P=be[1].trim(),ge=c(be[2]);if(typeof ge=="string"){let on=ge.split(",").map(D).filter(b).map(c);return{name:P,generic:on}}else return{name:P,generic:[ge]}}return p}return o(c,"parseTypeRecursive"),c(n)}o(On,"parseType");var Le=class Le extends Error{};o(Le,"TypeParseError");var De=Le;function Ve(n,e,t=3){return e=e||n.constructor.name,Pe(n,M(e),t)}o(Ve,"validateInstance");function jn(n,e,t=1){for(let i=0;i<n.length;i++){let r=Ve(n[i],e,t);if(!r.success)return l(220,`declared as instance of ${e}[] but [${i}] actually not`,r)}return u}o(jn,"validateArray");function Ln(n,e,t=1){let i=Object.entries(n);for(let r=0;r<i.length;r++){let[s,f]=i[r],c=Ve(f,e,t);if(!c.success)return l(230,`declared as instance of Dictionary<${e}> but [${s}] actually not`,c)}return u}o(Ln,"validateDictionary");var tn=Symbol("VALIDATE_WRAPPER"),Se=V.validationErrorHandler,Vn=o((n,e,t)=>Sn(n,e,t),"ReflectValidate");function Sn(n,e,t){let i=t.value;if(typeof i!="function"||_(i,tn))return;let r=o(()=>{var a,p;return(p=(a=y(n))==null?void 0:a.methods)==null?void 0:p.find(D=>D.name===e)},"getMethodDef"),s=o(a=>rn(n,r(),a),"validateArgs"),f=o(a=>vn(n,r(),a),"validateReturn"),c=o(function(...a){s(a);let p=i.call(this,...a);return f(p)},"newFunc");c[tn]=i,t.value=c}o(Sn,"wrapValidateMethod");function rn(n,e,t){var i;(i=e==null?void 0:e.args)==null||i.forEach((r,s)=>{let f=t==null?void 0:t[s];if(f===void 0)if(!r.isOptional)Se(new x(`Illegal arguments for ${ve(n.constructor.name,e)}: ${r.name} is not optional`));else return;let c=g(f,r.type||T,1);c.success||(console.error("validateResult",c),Se(new x(`Illegal arguments for ${ve(n.constructor.name,e)}: ${r.name}: ${r.name} ${c.errorMessage}`)))})}o(rn,"validateMethodParams");function vn(n,e,t){var s;if(!e)return t;let i=o((f,c)=>{let a=g(f,c,5);return a.success||(console.error(a.errorStackFlow),Se(new x(`result for ${ve(n.constructor.name,e)} doesn't match type ${c.name}:
|
|
4
|
-
${
|
|
1
|
+
"use strict";var _=Object.defineProperty,ln=Object.defineProperties,un=Object.getOwnPropertyDescriptor,pn=Object.getOwnPropertyDescriptors,mn=Object.getOwnPropertyNames,ze=Object.getOwnPropertySymbols;var Ke=Object.prototype.hasOwnProperty,yn=Object.prototype.propertyIsEnumerable;var qe=(n,e,t)=>e in n?_(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,E=(n,e)=>{for(var t in e||(e={}))Ke.call(e,t)&&qe(n,t,e[t]);if(ze)for(var t of ze(e))yn.call(e,t)&&qe(n,t,e[t]);return n},Qe=(n,e)=>ln(n,pn(e)),o=(n,e)=>_(n,"name",{value:e,configurable:!0});var dn=(n,e)=>{for(var t in e)_(n,t,{get:e[t],enumerable:!0})},Tn=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of mn(e))!Ke.call(n,r)&&r!==t&&_(n,r,{get:()=>e[r],enumerable:!(i=un(e,r))||i.enumerable});return n};var Dn=n=>Tn(_({},"__esModule",{value:!0}),n);var Fn={};dn(Fn,{ClassDefinition:()=>$,EnumDefinition:()=>z,InterfaceDefinition:()=>k,JSONError:()=>K,JSONTransfer:()=>Ue,ReflectConfig:()=>A,ReflectValidate:()=>En,TypeDefinition:()=>N,TypeParseError:()=>De,ValidationError:()=>O,assertType:()=>$n,failedResult:()=>c,getClassByName:()=>Ye,getClassDefinition:()=>d,getEnumDefinition:()=>V,getEnumNames:()=>nn,getEnumValues:()=>tn,getErrorTraceMessages:()=>bn,getInterfaceDefinition:()=>j,getTypeAliasDefinition:()=>Te,getTypeDef:()=>h,isNullable:()=>kn,isType:()=>sn,registerSpecialType:()=>w,safeCall:()=>Nn,successResult:()=>u,validateArray:()=>Sn,validateDictionary:()=>jn,validateInstance:()=>Ge});module.exports=Dn(Fn);var he=["string","number","boolean","bigint","symbol"],Xe={string:String,number:Number,boolean:Boolean,object:Object};var Y=class Y{constructor(e){this.name=e.name,this.isReadOnly=!!e.isReadonly,this.isOptional=!!e.isOptional,this.isPrivate=!!e.isPrivate,this.isStatic=!!e.isStatic,this.accessor=e.accessor,this.rawType=e.type}get type(){return y(this.rawType)}static from(e){return new Y(e)}};o(Y,"PropertyDefinition");var R=Y,Z=class Z extends R{static create(e,t){let i=x(Z,e);return i.genericContext=t,i}get type(){return y(this.rawType,this.genericContext)}};o(Z,"GenericProperty");var X=Z;function x(n,e){let t=Object.create(n.prototype);return e!==void 0&&Object.assign(t,e),t}o(x,"createInstance");function ee(n,e){n.properties=e.properties.map(t=>X.create(t,n.genericContext)),n.methods=e.methods.map(t=>J.create(t,n.genericContext)),n instanceof v&&e instanceof $&&e.constructorMethod!==void 0&&(n.constructorMethod=J.create(e.constructorMethod,n.genericContext))}o(ee,"buildPropertiesAndMethods");function Me(n,e){let t={};return n.forEach(i=>{let[r,s]=e(i);t[r]=s}),t}o(Me,"toDictionary");function ne(n,e){return(n==null?void 0:n.map(e).filter(t=>t!==void 0))||[]}o(ne,"mapNotNull");function G(n,e){if(n!==void 0)return n[e]}o(G,"getValue");var we=class we{constructor(e){this.rawDef=e}get name(){return this.rawDef.name}get returnType(){return y(this.rawDef.returnType)}get args(){var e;return((e=this.rawDef.args)==null?void 0:e.map(t=>({name:t.name,type:y(t.type),isOptional:t.isOptional})))||[]}get isPrivate(){return!!this.rawDef.isPrivate}get isStatic(){return!!this.rawDef.isStatic}get isAsync(){return!!this.rawDef.isAsync}get isConstructor(){return!!this.rawDef.isConstructor}};o(we,"MethodDefinition");var te=we;function B(n){return new te(n)}o(B,"fillMethod");var ie=class ie extends te{static create(e,t){let i=x(ie,e);return i.genericContext=t,i}get args(){var e;return((e=this.rawDef.args)==null?void 0:e.map(t=>({name:t.name,type:y(t.type,this.genericContext),isOptional:t.isOptional})))||[]}get returnType(){return y(this.rawDef.returnType,this.genericContext)}};o(ie,"GenericMethod");var J=ie;var U=Reflect,H;function P(){if(H)return H;let n=U.__meta;if(n===void 0){console.warn("No reflect meta found, reflect is disabled.");return}try{H=JSON.parse(atob(n))}catch(t){console.error(t),console.warn("Illegal reflect meta found, reflect is disabled");return}delete U.__meta;let e=H;return e.classDef=U.__classDef||{},delete U.__classDef,Reflect.defineProperty(U,"registerClass",{value:o(t=>Object.assign(e.classDef,t),"value")}),H}o(P,"getRawMeta");var W=class W{constructor(e){var t,i,r,s;this.name=e.name,this._implementationNames=e.implementations||[],this.methods=((t=e.methods)==null?void 0:t.map(B))||[],this.properties=((i=e.properties)==null?void 0:i.map(R.from))||[],this.generics=(r=e.genericsParams)!=null?r:[],this.fromLib=(s=e.fromLib)!=null?s:!1}get implementations(){return this._implementations||(this._implementations=ne(this._implementationNames,e=>{var t;return j(e)||((t=d(e))==null?void 0:t.type)||C(e)})),this._implementations}get allImplementations(){if(this._allImplementations===void 0){let e=new Set(this.implementations);this.implementations.forEach(t=>{t instanceof W?t.allImplementations.forEach(i=>e.add(i)):e.add(t)}),this._allImplementations=Array.from(e)}return this._allImplementations}get type(){if(this.implementations.length===0)return{name:this.name,fromLib:this.fromLib,typeLiteralMembers:Object.values(this.properties)};let e={},t=[];return this.implementations.forEach(i=>{let r=i instanceof W?i.type:i;r.typeLiteralMembers?r.typeLiteralMembers.forEach(s=>e[s.name]=s):t.push(r)}),this.properties.forEach(i=>e[i.name]=i),t.length>0?{name:this.name,fromLib:this.fromLib,intersectionMembers:[{typeLiteralMembers:Object.values(e)},...t]}:{name:this.name,fromLib:this.fromLib,typeLiteralMembers:Object.values(e)}}toString(){return`interface ${this.name}`}};o(W,"InterfaceDefinition");var k=W,oe=class oe extends k{constructor(){super(...arguments);this.genericArgs=[];this.properties=[];this.methods=[];this.genericContext={}}static create(t,i){let r=x(oe,t);r.genericArgs=i;let s=r;return s.buildGenericContext(),ee(s,t),s}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((i,r)=>this.genericContext[i]=this.genericArgs[r])}};o(oe,"GenericInterface");var re=oe,Re=new Map;function j(n){var e,t;if(!Re.has(n)){let i=(t=(e=P())==null?void 0:e.interfaces)==null?void 0:t[n];if(!i)return;Re.set(n,new k(i))}return Re.get(n)}o(j,"getInterfaceDefinition");var xe=class xe{constructor(e){var t,i,r,s;this.name=e.name,this.superClassName=e.superClassName||"Object",this.superClass=d(this.superClassName),this._implementationNames=e.implementations||[],this.constructorMethod=e.constructorMethod!==void 0?B(e.constructorMethod):void 0,this.methods=((t=e.methods)==null?void 0:t.map(B))||[],this.properties=((i=e.properties)==null?void 0:i.map(R.from))||[],this.jsClass=e.jsClass,this.generics=(r=e.genericsParams)!=null?r:[],this.fromLib=(s=e.fromLib)!=null?s:!1}get allMethods(){let e={};if(this.superClassName!=="Object"){let t=d(this.superClassName);t&&Object.assign(e,E({},t.allMethods))}return Object.assign(e,E({},Me(this.methods,t=>[t.name,t]))),e}get allProperties(){var e;return Object.assign(((e=this.superClass)==null?void 0:e.allProperties)||{},Me(this.properties,t=>[t.name,t]))}get implementations(){return this._implementations?this._implementations:ne(this._implementationNames,e=>j(e)||C(e))}get allImplementations(){var e,t;if(this._allImplementations===void 0){let i=new Set(this.implementations);this.implementations.forEach(r=>{r instanceof k?r.allImplementations.forEach(s=>i.add(s)):i.add(r)}),(t=(e=this.superClass)==null?void 0:e.allImplementations)==null||t.forEach(r=>i.add(r)),this._allImplementations=Array.from(i)}return this._allImplementations}getProperty(e){return this.properties.find(t=>t.name===e)}get type(){var t,i;let e={};return(i=(t=this.superClass)==null?void 0:t.type.typeLiteralMembers)==null||i.forEach(r=>e[r.name]=r),this.properties.forEach(r=>e[r.name]=r),{name:this.name,classDefinition:this,typeLiteralMembers:Object.values(e),fromLib:this.fromLib}}isSubClassOf(e){var t;return this.name===e||(t=this.superClass)!=null&&t.isSubClassOf(e)?!0:this.implementations.map(i=>i.name).includes(e)}isSuperClassOf(e){if(this.name===e)return!0;let t=d(e);return t?t.isSubClassOf(this.name):!1}toString(){return`class ${this.name}`}};o(xe,"ClassDefinition");var $=xe,ae=class ae extends ${constructor(){super(...arguments);this.genericArgs=[];this.properties=[];this.methods=[];this.genericContext={}}static create(t,i){let r=x(ae,t);r.genericArgs=i;let s=r;return s.buildGenericContext(),ee(s,t),s}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((i,r)=>this.genericContext[i]=this.genericArgs[r])}};o(ae,"GenericClass");var v=ae,se=new Map;function Ye(n){var e;return((e=d(n))==null?void 0:e.jsClass)||Xe[n]}o(Ye,"getClassByName");function d(n){var e,t,i,r,s,a;switch(typeof n){case"object":return d(n.constructor);case"function":let l=d(n.name);if(l)return l;let f=Array.from(se.values()).find(g=>g.jsClass===n);if(f)return f;let m=(t=Object.entries(((e=P())==null?void 0:e.classDef)||{}).find(([g,M])=>M===n))==null?void 0:t[0];return m?d(m):void 0;case"string":let T=n;if(!se.has(T)){let g=(r=(i=P())==null?void 0:i.classes)==null?void 0:r[T];if(!g)return;let M=(a=(s=P())==null?void 0:s.classDef)==null?void 0:a[T];se.set(T,new $(Qe(E({},g),{jsClass:M})))}return se.get(T)}}o(d,"getClassDefinition");var Oe=class Oe{constructor(){this.success=!0}};o(Oe,"SuccessResult");var Pe=Oe,Ie=class Ie{constructor(e,t,i){this.errorCode=e;this.errorDesc=t;this.success=!1;this.cause=i.cause,this.value=i.value,this.type=i.type}get errorStackFlow(){return this.cause?[this.errorMessage,this.cause.errorStackFlow].join(`
|
|
2
|
+
caused by: `):this.errorMessage}get errorMessage(){return`[Err${this.errorCode}] ${this.errorDesc}`}};o(Ie,"FailureResult");var Ce=Ie,u=new Pe,c=o((n,e,t)=>new Ce(n,e,t),"failedResult");function bn(n){let e=o(t=>t.errorMessage?[t.errorMessage,...t.cause?e(t.cause):[]]:[],"getAllTraceMessages");return e(n).join(`
|
|
3
|
+
-> `)}o(bn,"getErrorTraceMessages");var Le=class Le extends Error{constructor(e,t){super(e),this.failureResult=t}};o(Le,"ValidationError");var O=Le,A={validationErrorHandler:o(function(n){var e;console.error(n.message),console.error((e=n.failureResult)==null?void 0:e.errorStackFlow)},"validationErrorHandler")};var $e=[Promise,Date,Map,Set,Error,Function,Array,ArrayBuffer,RegExp];function D(n,e,t=1){switch(!0){case e.name==="undefined":return n===void 0?u:c(100,`declared as ${p(e)} but actually not`,{value:n,type:e});case e.name==="null":return n===null?u:c(101,`declared as ${p(e)} but actually not`,{value:n,type:e});case en(e):return u;case ye(e):return n instanceof Object?ke(n,e,t):c(200,`declared as ${p(e)} but actually not an object`,{value:n,type:e});case fe(e):return gn(n,e,t);case me(e):return Mn(n,e,t);case ue(e):for(let i of e.unionMembers||[])if(D(n,i,t).success)return u;return c(320,`declared as ${p(e)} but all value not match`,{value:n,type:e});case pe(e):for(let i of e.intersectionMembers||[]){let r=D(n,i,t);if(!r.success)return c(330,`declared as ${p(e)} but all value not match`,{cause:r,value:n,type:e})}return u;case Se(e):return hn(n,e,t);case ce(e):switch(typeof n){case"string":return n===xn(e.literalValue)?u:c(110,`declared as string ${p(e)} but value not match`,{value:n,type:e});case"number":return n===Number(e.literalValue)?u:c(111,`declared as number ${p(e)} but value not match`,{value:n,type:e});case"bigint":return n===BigInt(e.literalValue)?u:c(112,`declared as bigint ${p(e)} but value not match`,{value:n,type:e});case"boolean":return n===!!e.literalValue?u:c(113,`declared as boolean ${p(e)} but value not match`,{value:n,type:e});default:return e.literalValue==="null"&&n===null?u:n===e.literalValue?u:c(114,`declared as ${p(e)} but value not match`,{value:n,type:e})}case le(e):return wn(n,e,t);case e.isFunction:case e.isConstructor:return typeof n=="function"?u:c(150,`declared as ${p(e)} but actually not`,{value:n,type:e});case Ae(e):return n==null?c(120,`declared as ${p(e)} but actually ${n}`,{value:n,type:e}):typeof n===e.name?u:c(121,`declared as ${p(e)} but actually ${typeof n}`,{value:n,type:e});default:return Rn(n,e,t)}}o(D,"validateValue");function gn(n,e,t=1){if(!Array.isArray(n))return c(300,`declared as ${p(e)} but actually not`,{value:n,type:e});if(t===0)return u;for(let i=0;i<n.length;i++){let r=n[i],s=D(r,e.arrayElementType||b,t-1);if(!s.success)return c(301,`declared as ${p(e)} but [${i}] not match`,{cause:s,value:n,type:e})}return u}o(gn,"validateArrayValue");function hn(n,e,t=1){if(n===null)return c(400,"declared as indexedType but actually is null",{value:n,type:e});if(n===void 0)return c(401,"declared as indexedType but actually is undefined",{value:n,type:e});if(typeof n!="object")return c(410,`declared as indexedType but actually is ${typeof n}`,{value:n,type:e});for(let[i,r]of Object.entries(n)){let s=D(r,e.index.valueType,t-1);if(!s.success)return c(420,`declared as ${p(e)} but actually not match`,{cause:s,value:n,type:e});if(e.index.keyType&&(s=D(i,e.index.keyType,t-1),!s.success))return c(421,`declared as ${p(e)} but actually not match`,{cause:s,value:n,type:e})}return u}o(hn,"validateIndexedValue");function Mn(n,e,t=1){if(!Array.isArray(n))return c(310,`declared as ${p(e)} but actually not a tuple`,{value:n,type:e});if(t===0)return u;let i=0;for(let r of e.tupleMembers){let s=n[i++];if(r.isOptionalInTuple&&s===void 0)continue;let a=D(n[i],r,t);if(!a.success)return c(311,`declared as ${p(e)} but not all values in tuple match`,{cause:a,value:n,type:e})}return u}o(Mn,"validateTupleValue");function wn(n,e,t=1){if(n instanceof Object){for(let i of e.typeLiteralMembers||[]){if(i.isStatic)return u;if(i.name.startsWith("[")&&i.name.endsWith("]"))return u;if(t===0)return u;let r=i.type||b;i.isOptional&&(r={unionMembers:[r,{name:"undefined"}]});let s=G(n,i.name),a=D(s,r,t-1);if(!a.success)return c(211,`declared ${i.name} as ${p(r)}, but not match`,{cause:a,value:n,type:e})}return u}else return c(210,`declared as ${p(e)} but not an object`,{value:n,type:e})}o(wn,"validateProperties");function Rn(n,e,t=1){let i=typeof e=="string"?e:e.name;if(!i)return u;if(n===void 0)return c(130,`declared as ${p(e)} but actually undefined`,{value:n,type:e});if(n===null)return c(131,`declared as ${p(e)} but actually null`,{value:n,type:e});for(let s of $e)if(i===s.name)return n instanceof s?u:c(132,`declared as ${p(e)} but actually ${n.constructor.name}`,{value:n,type:e});if(n instanceof Object&&!Ze(n,i))return c(133,`declared as ${p(e)} but actually not instance of it`,{value:n,type:e});if(t==0)return u;let r=D(n,C(i),t);return r.success?u:c(134,`declared as ${p(e)} but actually not match`,{cause:r,value:n,type:e})}o(Rn,"validateSimpleValue");function ke(n,e,t=3){if(e.classDefinition&&!Ze(n,e.classDefinition.name))return c(201,`declared as instance of ${p(e)} but actually not`,{value:n,type:e});if(e.name!=="any"&&e===b)return c(202,`${p(e)} not defined`,{value:n,type:e});let i=E({},e);return delete i.classDefinition,D(n,i,t)}o(ke,"validateClassInstance");function Ze(n,e){if(n===void 0||n.constructor.name===e)return!0;let t=d(e);if(!t)return!0;if(t.jsClass)return n instanceof t.jsClass;let i=d(n);return i?i.isSubClassOf(t.name):!1}o(Ze,"valueInstanceOf");function xn(n){return n.length>=2&&(n[0]==='"'&&n[n.length-1]==='"'||n[0]==="'"&&n[n.length-1]==="'")?n.substring(1,n.length-1):n}o(xn,"trimQuotes");function p(n){var e,t,i,r,s;return typeof n=="string"?n:ye(n)?n.classDefinition.name:fe(n)?(((e=n.arrayElementType)==null?void 0:e.name)||"unknown")+"[]":n.isConstructor?"Class":n.isFunction?"Function":le(n)?"Object":me(n)?`(${n.tupleMembers.map(p).join(",")})`:ue(n)?((t=n.unionMembers)==null?void 0:t.map(p).join(" | "))||"unknown":pe(n)?((i=n.intersectionMembers)==null?void 0:i.map(p).join(" & "))||"unknown":ce(n)?n.literalValue:Se(n)?`{ [${(r=n.index.keyType)!=null?r:"string"}]: ${((s=n.index.valueType)==null?void 0:s.name)||"unknown"} }`:n.name||"unknown"}o(p,"getTypeDisplayName");var Ee=class Ee{constructor(e){var t;this.name=e.name,this.members=new Map,e.members.forEach(i=>{let r=i.initializer===void 0?{name:"number"}:{literalValue:i.initializer};this.members.set(i.name,r)}),this.fromLib=(t=e.fromLib)!=null?t:!1}get type(){return{name:this.name,unionMembers:Array.from(this.members.values()),fromLib:this.fromLib}}get names(){return Array.from(this.members.keys())}};o(Ee,"EnumDefinition");var z=Ee,je=new Map;function V(n){var e,t;if(!je.has(n)){let i=(t=(e=P())==null?void 0:e.enums)==null?void 0:t[n];if(!i)return;je.set(n,new z(i))}return je.get(n)}o(V,"getEnumDefinition");function nn(n){var e;return((e=V(n))==null?void 0:e.names)||[]}o(nn,"getEnumNames");function tn(n){let e=Object.entries(n)[0];if(!e)return[];let[t,i]=e,r=V(t);return r?r.names.map(s=>i[s]):Array.from(Object.keys(i))}o(tn,"getEnumValues");var ve=new Map;function w(n){ve.set(n.name,n)}o(w,"registerSpecialType");function rn(n){return ve.has(n)}o(rn,"isSpecialType");function Ve(n,...e){let t=ve.get(n);if(!t)return;let i=t.getType(...e);return i?{name:n,type:i,genericParams:t.genericParams,fromLib:!!t.fromLib}:void 0}o(Ve,"getSpecialTypeAlias");w({name:"Partial",genericParams:["T"],fromLib:!0,getType(...n){let e=n[0];return e?q(e,t=>t.isOptional=!0):void 0}});w({name:"Required",genericParams:["T"],fromLib:!0,getType(...n){let e=n[0];return e!=null?e:q(e,t=>t.isOptional=!1)}});w({name:"Readonly",genericParams:["T"],fromLib:!0,getType(...n){let e=n[0];return q(e,t=>t.isReadonly=!0)}});w({name:"Record",genericParams:["K","T"],fromLib:!0,getType(...n){let[e,t]=n;return{index:{keyType:e!=null?e:b,valueType:t!=null?t:b}}}});w({name:"Pick",genericParams:["T","K"],fromLib:!0,getType(...n){var r;let[e,t]=n;if(!t||!e)return;let i=(r=t.unionMembers)==null?void 0:r.map(s=>s.name);if(e.typeLiteralMembers)return de(e,s=>{var a;return(a=s.name===t.literalValue||(i==null?void 0:i.includes(s.name)))!=null?a:!1})}});w({name:"Omit",genericParams:["T","K"],fromLib:!0,getType(...n){var r;let[e,t]=n;if(!t||!e)return;let i=(r=t.unionMembers)==null?void 0:r.map(s=>s.name);if(e.typeLiteralMembers)return de(e,s=>!(s.name===t.literalValue||i!=null&&i.includes(s.name)))}});w({name:"Extract",genericParams:["T","U"],fromLib:!0,getType(...n){let[e,t]=n;if(!(!e||!t)&&e.typeLiteralMembers&&t.typeLiteralMembers){let i={unionMembers:t.typeLiteralMembers.map(r=>({literalValue:r.name}))};return Pn(e,i)}}});w({name:"Exclude",genericParams:["T","U"],fromLib:!0,getType(...n){let[e,t]=n;if(!(!e||!t)&&e.typeLiteralMembers&&t.typeLiteralMembers){let i={unionMembers:t.typeLiteralMembers.map(r=>({literalValue:r.name}))};return Cn(e,i)}}});w({name:"ReflectReference",genericParams:["T","R"],getType(...n){let[e,t]=n;if(e)return{typeDef:e,reflectReference:t}}});function q(n,e){return n.typeLiteralMembers?{typeLiteralMembers:n.typeLiteralMembers.map(t=>on(t,e))}:n.unionMembers?{unionMembers:n.unionMembers.map(t=>q(t,e)).filter(t=>t!==void 0)}:n.intersectionMembers?{intersectionMembers:n.intersectionMembers.map(t=>q(t,e)).filter(t=>t!==void 0)}:void 0}o(q,"getMappedType");function de(n,e){if(n.typeLiteralMembers)return{typeLiteralMembers:n.typeLiteralMembers.map(t=>e(t)?on(t):void 0).filter(t=>!!t)}}o(de,"getFilterKeyType");function Pn(n,e){var i;if(!e)return;let t=(i=e.unionMembers)==null?void 0:i.map(r=>r.name);if(n.typeLiteralMembers)return de(n,r=>{var s;return(s=r.name===e.literalValue||(t==null?void 0:t.includes(r.name)))!=null?s:!1})}o(Pn,"getPickType");function Cn(n,e){var i;if(!e)return;let t=(i=e.unionMembers)==null?void 0:i.map(r=>r.name);if(n.typeLiteralMembers)return de(n,r=>!(r.name===e.literalValue||t!=null&&t.includes(r.name)))}o(Cn,"getOmitType");function on(n,e){let t;return n instanceof R?t=new R({name:n.name,isReadonly:n.isReadOnly,isOptional:n.isOptional,isStatic:n.isStatic,accessor:n.accessor,type:n.rawType}):t={name:n.name,isOptional:n.isOptional,type:n.type},e==null||e(t),t}o(on,"copyPropertyDefinition");function Te(n,e){var r,s,a;if(rn(n))return e?Ve(n,...e):Ve(n);if(!Ne.has(n)){let l=(s=(r=P())==null?void 0:r.typeAliases)==null?void 0:s[n];if(!l||!l.type)return;Ne.set(n,{name:n,type:l.type,genericParams:l.genericParams,fromLib:l.fromLib})}let t=Ne.get(n);if(!t)return;let i;if(t.genericParams&&e){let l={};for(let f=0;f<t.genericParams.length;f++){let m=t.genericParams[f];l[m]=e[f]}i=y(t.type,l,e)}else i=y(t.type);return{name:t.name,type:i,genericParams:t.genericParams,fromLib:(a=t.fromLib)!=null?a:!1}}o(Te,"getTypeAliasDefinition");var Ne=new Map;var b={name:"any"},On={name:"null"},In={name:"undefined"};function en(n){return!!(n.name&&["any","void","unknown"].includes(n.name))}o(en,"isIgnoredType");function Ae(n){return!!(n.name&&he.includes(n.name))}o(Ae,"isPrimitiveType");function fe(n){return!!n.arrayElementType}o(fe,"isArrayType");function ce(n){return!!n.literalValue}o(ce,"isLiteralType");function le(n){return!!n.typeLiteralMembers}o(le,"isTypeLiteralType");function ue(n){return!!n.unionMembers}o(ue,"isUnionType");function pe(n){return!!n.intersectionMembers}o(pe,"isIntersectionType");function me(n){return!!n.tupleMembers}o(me,"isTupleType");function ye(n){return!!n.classDefinition}o(ye,"isClassDefinition");function Ln(n){return!!n.generics}o(Ln,"hasGenerics");function Se(n){return!!n.index}o(Se,"isIndexType");function C(n,e){if(n==="any"||n==="Any"||n==="unknown"||n==="")return b;if(n==="null")return On;if(n==="undefined")return In;if(n==="Function")return{isFunction:!0};let t=d(n);if(t)return e?v.create(t,e).type:t.type;if(he.includes(n))return{name:n};if($e.map(a=>a.name).includes(n))return{name:n,generics:e};let i=j(n);if(i)return i.fromLib?{name:n,generics:e}:e?re.create(i,e).type:i.type;let r=V(n);if(r)return r.type;let s=Te(n,e);return s?s.type:b}o(C,"getTypeDefinition");var Fe=new Map;function y(n,e,t){let i=_e(n);if(n===void 0)return b;let r=Fe.get(i);if(r)return r;let s={};if(Fe.set(i,s),typeof n=="string")s=(e==null?void 0:e[n])||C(n,t)||b;else if(n.arrayElementType)Object.assign(s,{arrayElementType:y(n.arrayElementType,e)});else if(n.unionMembers)Object.assign(s,{unionMembers:n.unionMembers.map(a=>y(a,e))});else if(n.intersectionMembers)Object.assign(s,{intersectionMembers:n.intersectionMembers.map(a=>y(a,e))});else if(n.tupleMembers)Object.assign(s,{tupleMembers:n.tupleMembers.map(a=>y(a,e))});else if(n.typeLiteralMembers)s.typeLiteralMembers=n.typeLiteralMembers.map(a=>({name:a.name,isOptional:!!a.isOptional,type:y(a.type,e,t)}));else if(n.generics){let a=n.generics[0],l=n.generics.slice(1).map(f=>y(f,e));Object.assign(s,y(a,e,l))}else n.index&&Object.assign(s,{index:{keyType:n.index.keyType?y(n.index.keyType,e):void 0,valueType:y(n.index.valueType,e)}});return Object.keys(s).length===0&&(s=b),Fe.delete(i),s}o(y,"fillType");function _e(n){return n===null?"null":n===void 0?"undefined":typeof n!="object"?JSON.stringify(n):Array.isArray(n)?"["+n.map(_e).join(",")+"]":"{"+Object.keys(n).sort().map(t=>JSON.stringify(t)+":"+_e(n[t])).join(",")+"}"}o(_e,"stableStringify");var N={isPrimitiveType:Ae,isArrayType:fe,isLiteralType:ce,isTypeLiteralType:le,isUnionType:ue,isIntersectionType:pe,isTupleType:me,isClassDefinition:ye,hasGenerics:Ln};function h(n){if(typeof n=="string"){let e=An(n);if(typeof e=="string"){let t=e.match(/"(.+)"$/)||e.match(/'(.+)'$/);if(t!=null&&t[1])return{literalValue:t[1]}}return typeof e=="string"?C(n):h(e)}return"array"in n?{arrayElementType:h(n.array)}:"union"in n?{unionMembers:n.union.map(h)}:"intersection"in n?{intersectionMembers:n.intersection.map(h)}:"tuple"in n?{tupleMembers:n.tuple.map(h)}:"generic"in n?C(n.name,n.generic.map(h)):n}o(h,"getTypeDef");function $n(n,e,t=5){let i=D(n,h(e),t);return i.success||A.validationErrorHandler(new O(`assert failed with type: ${e}, ${i.errorStackFlow}`,i)),n}o($n,"assertType");function kn(n){return sn(null,n)}o(kn,"isNullable");function sn(n,e,t=5){return D(n,h(e),t).success}o(sn,"isType");function An(n){let e=0,t="%%",i={};function r(f){let m=`${t}${e++}`;return i[m]=f,m}o(r,"addPlaceholder");function s(f){let m=f.match(new RegExp(`^(${t}\\d)$`));if(!m)return;let T=m[1].trim(),g=i[T];return delete i[T],g}o(s,"getPlaceholder");function a(f,m,T,g){let M=0;for(;M<f.length;){let I=f.indexOf(m,M);if(I===-1)break;M=I+1;let S=f.indexOf(T,M);if(S===-1)throw new De("Illegal type string");let Q=f.substring(I+1,S),F=r(Q);g?f=`${f.substring(0,I+1)}${F}${f.substring(S)}`:f=`${f.substring(0,I)}${F}${f.substring(S+1)}`}return f}o(a,"replaceBracket");function l(f){let m=f.trim(),T=o(L=>L.trim(),"trim"),g=o(L=>L.length!=0,"notEmpty");m=a(m,"(",")",!1),m=a(m,"<",">",!0);let M=s(m);if(M)return l(M);let I=m.split("|").map(T).filter(g);if(I.length>1)return{union:I.map(l)};let S=m.split("&").map(T).filter(g);if(S.length>1)return{intersection:S.map(l)};let Q=m.match(/^\[(.*)]$/);if(Q)return{tuple:Q[1].split(",").map(T).filter(g).map(l)};let F=m.match(/^(.+)\[]$/);if(F)return{array:l(F[1])};let be=m.match(/^([^<]+)<(.+)>$/);if(be){let L=be[1].trim(),ge=l(be[2]);if(typeof ge=="string"){let cn=ge.split(",").map(T).filter(g).map(l);return{name:L,generic:cn}}else return{name:L,generic:[ge]}}return m}return o(l,"parseTypeRecursive"),l(n)}o(An,"parseType");var Je=class Je extends Error{};o(Je,"TypeParseError");var De=Je;function Ge(n,e,t=3){return e=e||n.constructor.name,ke(n,h(e),t)}o(Ge,"validateInstance");function Sn(n,e,t=1){for(let i=0;i<n.length;i++){let r=Ge(n[i],e,t);if(!r.success)return c(220,`declared as instance of ${e}[] but [${i}] actually not`,{cause:r,value:n,type:e})}return u}o(Sn,"validateArray");function jn(n,e,t=1){let i=Object.entries(n);for(let r=0;r<i.length;r++){let[s,a]=i[r],l=Ge(a,e,t);if(!l.success)return c(230,`declared as instance of Dictionary<${e}> but [${s}] actually not`,{cause:l,value:n,type:e})}return u}o(jn,"validateDictionary");var an=Symbol("VALIDATE_WRAPPER"),En=o((n,e,t)=>vn(n,e,t),"ReflectValidate");function vn(n,e,t){let i=t.value;if(typeof i!="function"||G(i,an))return;let r=o(()=>{var f,m;return(m=(f=d(n))==null?void 0:f.methods)==null?void 0:m.find(T=>T.name===e)},"getMethodDef"),s=o(f=>fn(n,r(),f),"validateArgs"),a=o(f=>Vn(n,r(),f),"validateReturn"),l=o(function(...f){s(f);let m=i.call(this,...f);return a(m)},"newFunc");l[an]=i,t.value=l}o(vn,"wrapValidateMethod");function fn(n,e,t){var i;(i=e==null?void 0:e.args)==null||i.forEach((r,s)=>{let a=t==null?void 0:t[s];if(a===void 0)if(!r.isOptional)A.validationErrorHandler(new O(`Illegal arguments for ${Be(n.constructor.name,e)}: ${r.name} is not optional`));else return;let l=D(a,r.type||b,1);l.success||(console.error("validateResult",l),A.validationErrorHandler(new O(`Illegal arguments for ${Be(n.constructor.name,e)}: ${r.name}: ${r.name} ${l.errorMessage}`)))})}o(fn,"validateMethodParams");function Vn(n,e,t){var s;if(!e)return t;let i=o((a,l)=>{let f=D(a,l,5);return f.success||(console.error(f.errorStackFlow),A.validationErrorHandler(new O(`result for ${Be(n.constructor.name,e)} doesn't match type ${l.name}:
|
|
4
|
+
${f.errorStackFlow}`))),a},"checkValue"),r=e.returnType;return r.name==="Promise"&&(r=((s=r.generics)==null?void 0:s[0])||b),t instanceof Promise?t.then(a=>i(a,r||b)):i(t,r||b)}o(Vn,"validateMethodReturnValue");function Be(n,e){var t;return`${n}.${e.name}(${(t=e.args)==null?void 0:t.map(i=>i.name).join(", ")})`}o(Be,"getMethodDescription");function Nn(n,e,...t){let i=d(n);if(!i)return;let r=i.allMethods[e];if(r)return fn(n,r,t),G(n,e).apply(n,t)}o(Nn,"safeCall");var He=class He{constructor(e){this.exceptionHandler=e!=null?e:console.error}parse(e,t){if(!t)return JSON.parse(e);let i=h(t),r=JSON.parse(e),s=this.convertJSONValue(r,i);return D(s,i).success||this.exceptionHandler(new K(`jsonValue should be ${i.name}`)),s}convertJSONValue(e,t){switch(!0){case typeof e=="string":case typeof e=="number":case typeof e=="boolean":case e===null:return e;case e instanceof Array:return N.isArrayType(t)?e.map(i=>this.convertJSONValue(i,t)):N.isTupleType(t)?t.tupleMembers.map((i,r)=>this.convertJSONValue(e[r],i)):e;default:return N.isClassDefinition(t)?this.convertJSONObjectAsClassInstance(e,t.classDefinition):e}}convertJSONObjectAsClassInstance(e,t){if(!t.jsClass)return this.exceptionHandler(new K(`class ${t.name} not reflected`)),e;let i=x(t.jsClass);return Object.assign(i,e),i}};o(He,"JSONTransfer");var Ue=He,We=class We extends Error{};o(We,"JSONError");var K=We;0&&(module.exports={ClassDefinition,EnumDefinition,InterfaceDefinition,JSONError,JSONTransfer,ReflectConfig,ReflectValidate,TypeDefinition,TypeParseError,ValidationError,assertType,failedResult,getClassByName,getClassDefinition,getEnumDefinition,getEnumNames,getEnumValues,getErrorTraceMessages,getInterfaceDefinition,getTypeAliasDefinition,getTypeDef,isNullable,isType,registerSpecialType,safeCall,successResult,validateArray,validateDictionary,validateInstance});
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var we=Object.create;var $=Object.defineProperty;var Te=Object.getOwnPropertyDescriptor;var Re=Object.getOwnPropertyNames;var he=Object.getPrototypeOf,be=Object.prototype.hasOwnProperty;var xe=(e,n)=>{for(var t in n)$(e,t,{get:n[t],enumerable:!0})},ie=(e,n,t,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let a of Re(n))!be.call(e,a)&&a!==t&&$(e,a,{get:()=>n[a],enumerable:!(s=Te(n,a))||s.enumerable});return e};var v=(e,n,t)=>(t=e!=null?we(he(e)):{},ie(n||!e||!e.__esModule?$(t,"default",{value:e,enumerable:!0}):t,e)),Pe=e=>ie($({},"__esModule",{value:!0}),e);var W=(e,n,t)=>new Promise((s,a)=>{var r=m=>{try{o(t.next(m))}catch(b){a(b)}},D=m=>{try{o(t.throw(m))}catch(b){a(b)}},o=m=>m.done?s(m.value):Promise.resolve(m.value).then(r,D);o((t=t.apply(e,n)).next())});var je={};xe(je,{DEBUG_CONFIG:()=>q,parseSource:()=>z,reflectLoader:()=>ee,reflectParserPlugin:()=>$e,setupReflectTypes:()=>Ee,updateReflectModules:()=>Z});module.exports=Pe(je);var G=v(require("typescript"),1);function R(e){return e||{}}var J=["string","number","boolean","bigint","symbol"];var i=v(require("typescript"),1),M=v(require("fs"),1),_=v(require("process"),1),h=v(require("path"),1),fe=require("url");var q={OUTPUT_LOG:!1},C=new Map,A=new Map,F=new Map,I=new Map,Y=new Map,U=new Set,se={[i.default.SyntaxKind.BooleanKeyword]:"boolean",[i.default.SyntaxKind.StringKeyword]:"string",[i.default.SyntaxKind.BigIntKeyword]:"bigint",[i.default.SyntaxKind.NumberKeyword]:"number",[i.default.SyntaxKind.SymbolKeyword]:"symbol",[i.default.SyntaxKind.VoidKeyword]:"void",[i.default.SyntaxKind.UndefinedKeyword]:"undefined",[i.default.SyntaxKind.UnknownKeyword]:"unknown",[i.default.SyntaxKind.AnyKeyword]:"any",[i.default.SyntaxKind.ObjectKeyword]:"object"},O="any",ce=["any","Promise","Date","Error","undefined","unknown","object","Map","Set"],le=["Mappable","EnableReflect"];[...J,...ce,...le].forEach(de);le.forEach(e=>A.set(e,{name:e}));var j,re=!1,L=Reflect;function Ee(e){return W(this,null,function*(){let{filePaths:n,exclude:t,sourceFolder:s,distFolder:a}=e;if(s=h.resolve(s||_.cwd()),a=h.resolve(a||_.cwd()),L.__meta!==void 0)return;let r={classes:R(),interfaces:R(),typeAliases:R(),constTypes:R(),enums:R()};n=De(n);let D=n.map(o=>h.join(s,o));z(D,t);for(let[o,m]of C)r.classes[o]=m;for(let[o,m]of A)r.interfaces[o]=m;for(let[o,m]of I)r.typeAliases[o]=m;for(let[o,m]of F)r.enums[o]=m;for(let[o,m]of Y)r.constTypes[o]=m;L.__meta=btoa(JSON.stringify(r)),yield Promise.all(n.map(o=>Z(o,a)))})}function Z(e,n){return W(this,null,function*(){let t=h.resolve(n,e);if(!M.existsSync(t))return;if(M.statSync(t).isDirectory()){let o=M.readdirSync(t);yield Promise.all(o.map(m=>Z(h.join(e,m),n)));return}if(!e.endsWith(".js"))return;let a=h.join(n,e),D=yield import((0,fe.pathToFileURL)(a).href);L.__classDef={},Object.values(D).forEach(o=>{typeof o=="function"&&L.__classDef&&(L.__classDef[o.name]=o)})})}function z(e,n){if(e||(e=[_.cwd()]),e=De(e),!re){let t=pe(e,n),s=i.default.createProgram(t,{});j=s.getTypeChecker(),t=t.map(r=>ae(r)),s.getSourceFiles().filter(r=>t.includes(ae(r.fileName))||r.fileName.endsWith("/lib.es5.d.ts")).forEach(r=>{S(`parse file: ${r.fileName}`),ue(r,r.fileName.endsWith("/lib.es5.d.ts"))});for(let r of U.keys())!C.has(r)&&!A.has(r)&&!F.has(r)&&!I.has(r)&&!J.includes(r)&&!ce.includes(r)&&(S(`remove unknown typeName: ${r}`),U.delete(r));Array.from(C.values()).forEach(Ce),Array.from(A.values()).forEach(ve),[C,A,I].forEach(Ie),re=!0}return{classDefinitions:C,interfaceDefinitions:A,enumDefinitions:F,typeAliasDefinitions:I,constTypeDefinitions:Y}}function pe(e,n){let t=[];return e.forEach(s=>{if(s=h.resolve(s),Le(s,n)){S(`ignore excluded ${s}`);return}if(!M.existsSync(s)){console.error(`Path ${s} does not exist.`);return}if(M.statSync(s).isFile()){t.push(s);return}M.readdirSync(s).forEach(D=>t.push(...pe([h.join(s,D)],n)))}),t}function ue(e,n){i.default.isClassDeclaration(e)?Se(e,n):i.default.isInterfaceDeclaration(e)?Me(e,n):i.default.isEnumDeclaration(e)?Ne(e,n):i.default.isTypeAliasDeclaration(e)?Ke(e,n):i.default.isConstTypeReference(e)?Ae(e):e.forEachChild(t=>ue(t,n))}function Se(e,n){var b,N,x,K,P,u,w,B,d,g,p,T,V,ne,te;let t=l(e.name);if(!t)return;let s=l((x=(N=(b=e.heritageClauses)==null?void 0:b.find(f=>f.token===i.default.SyntaxKind.ExtendsKeyword))==null?void 0:N.types)==null?void 0:x[0].expression),a=(P=(K=e.heritageClauses)==null?void 0:K.find(f=>f.token===i.default.SyntaxKind.ImplementsKeyword))==null?void 0:P.types.map(f=>l(f.expression)),r=[],D=[],o;for(let f of e.members)if(i.default.isPropertyDeclaration(f))r.push({name:l(f.name),isOptional:f.questionToken!==void 0,type:y(f),isPrivate:(u=f.modifiers)==null?void 0:u.some(c=>c.kind===i.default.SyntaxKind.PrivateKeyword),isStatic:(w=f.modifiers)==null?void 0:w.some(c=>c.kind===i.default.SyntaxKind.StaticKeyword),isReadonly:(B=f.modifiers)==null?void 0:B.some(c=>c.kind===i.default.SyntaxKind.ReadonlyKeyword)});else if(i.default.isConstructorDeclaration(f))o={name:"constructor",isPrivate:(d=f.modifiers)==null?void 0:d.some(c=>c.kind===i.default.SyntaxKind.PrivateKeyword),args:f.parameters.map(c=>({name:l(c.name),type:y(c),isOptional:c.questionToken!==void 0})),isConstructor:!0};else if(i.default.isMethodDeclaration(f))D.push({name:l(f.name),returnType:y(f),isPrivate:(g=f.modifiers)==null?void 0:g.some(c=>c.kind===i.default.SyntaxKind.PrivateKeyword),isStatic:(p=f.modifiers)==null?void 0:p.some(c=>c.kind===i.default.SyntaxKind.StaticKeyword),isAsync:(T=f.modifiers)==null?void 0:T.some(c=>c.kind===i.default.SyntaxKind.AsyncKeyword),args:f.parameters.map(c=>({name:l(c.name),type:y(c),isOptional:c.questionToken!==void 0}))});else if(i.default.isGetAccessorDeclaration(f)){let c=r.find(k=>k.name===l(f.name));c||(c={name:l(f.name),isOptional:f.questionToken===void 0,type:y(f)},r.push(c)),c.accessor=c.accessor||{},c.accessor.getter={isPrivate:((V=f.modifiers)==null?void 0:V.some(k=>k.kind===i.default.SyntaxKind.PrivateKeyword))||!1},c.isPrivate=c.accessor.getter.isPrivate}else if(i.default.isSetAccessorDeclaration(f)){let c=r.find(k=>k.name===l(f.name));c||(c={name:l(f.name),isOptional:f.questionToken===void 0,type:y(f)},r.push(c)),c.accessor=c.accessor||{},c.accessor.setter={isPrivate:((ne=f.modifiers)==null?void 0:ne.some(k=>k.kind===i.default.SyntaxKind.PrivateKeyword))||!1}}let m={name:t,constructorMethod:o,superClassName:s,implementations:a,properties:r,methods:D,genericsParams:(te=e.typeParameters)==null?void 0:te.map(f=>l(f.name)),fromLib:n};S(`Define class: ${l(e.name)}`),C.set(t,m)}function Me(e,n){var m,b,N,x,K,P;let t=l(e.name);if(!t)return;let s=((b=(m=e.heritageClauses)==null?void 0:m.find(u=>u.token===i.default.SyntaxKind.ExtendsKeyword))==null?void 0:b.types.map(u=>l(u.expression)))||[],a=[],r=[],D;for(let u of e.members)i.default.isPropertySignature(u)?a.push({name:l(u.name),isOptional:u.questionToken!==void 0,type:y(u),isPrivate:((N=u.modifiers)==null?void 0:N.some(w=>w.kind===i.default.SyntaxKind.PrivateKeyword))||!1,isReadonly:((x=u.modifiers)==null?void 0:x.some(w=>w.kind===i.default.SyntaxKind.ReadonlyKeyword))||!1}):i.default.isMethodSignature(u)?r.push({name:u.name.text,returnType:y(u),isPrivate:((K=u.modifiers)==null?void 0:K.some(w=>w.kind===i.default.SyntaxKind.PrivateKeyword))||!1,args:u.parameters.map(w=>({name:l(w.name),type:y(w),isOptional:w.questionToken!==void 0}))}):i.default.isIndexSignatureDeclaration(u)&&(D=y(u));let o=A.get(t);o?(o.implementations=Q(o.implementations||[],s),o.methods=Q(o.methods||[],r,(u,w)=>u.name===w.name),o.properties=Q(o.properties||[],a,(u,w)=>u.name===w.name),o.indexElementType=D,S(`Merge interface ${l(e.name)}`)):(o={name:t,implementations:s,methods:r,properties:a,indexElementType:D,genericsParams:(P=e.typeParameters)==null?void 0:P.map(u=>l(u.name)),fromLib:n},A.set(t,o),S(`Define interface ${l(e.name)}`))}function Ne(e,n){let t=l(e.name);t&&(F.set(t,{name:t,members:e.members.map(s=>({name:l(s.name),initializer:l(s.initializer)})),fromLib:n}),S(`Define enum: ${l(e.name)}`))}function Ke(e,n){var r;S(`Define typeAlias: ${l(e.name)}`);let t=y(e),s=(r=e.typeParameters)==null?void 0:r.map(D=>l(D.name)),a=l(e.name);I.set(a,{name:a,type:t,genericParams:s,fromLib:n})}function Ae(e){let n=e.parent.parent;i.default.isVariableDeclaration(n)&&n.initializer&&i.default.isAsExpression(n.initializer)&&Y.set(l(n.name),me(n.initializer.expression))}function me(e){return i.default.isArrayLiteralExpression(e)?ke(e):i.default.isObjectLiteralExpression(e)?Oe(e):i.default.isNumericLiteral(e)?"number":i.default.isStringLiteral(e)?"string":i.default.isBigIntLiteral(e)?"bigint":[i.default.SyntaxKind.TrueKeyword,i.default.SyntaxKind.FalseKeyword].includes(e.kind)?"boolean":O}function ke(e){let n=[];return e.elements.forEach(t=>{if(i.default.isStringLiteral(t))return n.push(l(t))}),n.length===0?O:n.length===1?n[0]:{unionMembers:n}}function Oe(e){let n=[];return e.properties.map(t=>{i.default.isPropertyAssignment(t)?n.push({name:l(t.name),type:me(t.initializer)}):S(`unsupported property: ${t.name}`)}),{typeLiteralMembers:n}}function de(e){U.add(e)}function y(e,n=!1){if(e.type&&!n)return E(e.type);if(!j)return console.error("TypeChecker not initialized!"),O;let t=j.getTypeAtLocation(e),s=j.typeToTypeNode(t,void 0,void 0);return s?E("type"in s?s.type:s):O}function E(e){let n={};if(e===void 0)return O;if(i.default.isTypeReferenceNode(e))if(de(l(e.typeName)),e.typeArguments)n.generics=[l(e.typeName),...e.typeArguments.map(t=>E(t))];else return l(e.typeName);else if(i.default.isFunctionTypeNode(e))n.isFunction=!0;else if(i.default.isConstructorTypeNode(e))n.isConstructor=!0;else{if(i.default.isTypeQueryNode(e))return y(e);if(i.default.isTypeLiteralNode(e)){let t=[];e.members.forEach(s=>{i.default.isPropertySignature(s)?t.push({name:l(s.name),isOptional:s.questionToken!==void 0,type:y(s)}):i.default.isIndexSignatureDeclaration(s)?n.indexElementType=y(s):t.push({name:l(s.name)||"",isOptional:s.questionToken!==void 0,type:E()})}),n.typeLiteralMembers=t}else if(i.default.isArrayTypeNode(e))n.arrayElementType=E(e.elementType);else if(i.default.isTupleTypeNode(e))n.tupleMembers=e.elements.map(E);else if(i.default.isOptionalTypeNode(e))Object.assign(n,y(e)),n.isOptionalInTuple=!0;else{if(i.default.isRestTypeNode(e))return y(e);if(i.default.isUnionTypeNode(e))n.unionMembers=e.types.map(E);else if(i.default.isIntersectionTypeNode(e))n.intersectionMembers=e.types.map(E);else{if(i.default.isConditionalTypeNode(e))return y(e);if(i.default.isInferTypeNode(e))return y(e);if(i.default.isParenthesizedTypeNode(e))return y(e);if(i.default.isThisTypeNode(e))return y(e);if(i.default.isTypeOperatorNode(e)&&e.operator===i.default.SyntaxKind.KeyOfKeyword)return y(e,!0);if(i.default.isIndexedAccessTypeNode(e))return y(e,!0);if(i.default.isMappedTypeNode(e))n.indexElementType=E(e.type);else if(i.default.isLiteralTypeNode(e))n.literalValue=l(e.literal);else{if(Object.keys(se).includes(String(e.kind)))return se[e.kind]||O;if(i.default.isNamedTupleMember(e))Object.assign(n,y(e));else return y(e,!0)}}}}return n}var Q=(e,n,t)=>[...(e==null?void 0:e.filter(s=>!(n!=null&&n.some(a=>(t||(()=>a===s))(a,s)))))||[],...n||[]];function H(e,n){if(e!==void 0&&e!==O)return typeof e=="string"?U.has(e)||n!=null&&n.includes(e)?e:void 0:e}function Ce(e){var n,t;(n=e.methods)==null||n.forEach(s=>ge(s,e.genericsParams)),(t=e.properties)==null||t.forEach(s=>ye(s,e.genericsParams))}function ve(e){var n,t;(n=e.methods)==null||n.forEach(s=>ge(s,e.genericsParams)),(t=e.properties)==null||t.forEach(s=>ye(s,e.genericsParams))}function ye(e,n){e.type=H(e.type,n)}function ge(e,n){var t;(t=e.args)==null||t.forEach(s=>s.type=H(s.type,n)),e.returnType=H(e.returnType,n)}function l(e){if(!e)return e;if(e.end<0)return e.text;try{let n=e;return i.default.isQualifiedName(n)?l(n.right):n.getText()}catch(n){return e.text}}function X(e){if(e==null||!(e instanceof Object))return;let n=e;Object.entries(n).forEach(t=>{let[s,a]=t;a===!1||a===void 0||a===null?delete n[s]:a instanceof Array?a.length===0?delete n[s]:a.forEach(X):X(a)})}function Ie(e){for(let n of e.values())X(n)}function Le(e,n){return n?(n=n instanceof Array?n:[n],n.some(t=>(t instanceof RegExp||(t=new RegExp(t.replace(/\./g,"\\.").replace(/\*/g,".*"))),e.match(t)))):!1}function ae(e,n=_.cwd()){return oe(e).replace(oe(n)+"/","")}function oe(e){let n=h.sep;return e.split(n).join("/")}function De(e){return e instanceof Array?e:[e]}function S(e){q.OUTPUT_LOG&&console.log(e)}function ee(e){let{sourcePaths:n,exclude:t,forEnabledClassOnly:s,outputLog:a}=e;if(a&&(q.OUTPUT_LOG=!0),!n)throw new Error("need provide source paths for reflect loader");a&&console.log(`sourcePaths: ${n}, exclude: ${t}, forEnabledClassOnly: ${s}`);let{classDefinitions:r,interfaceDefinitions:D,enumDefinitions:o,typeAliasDefinitions:m,constTypeDefinitions:b}=z(n,t),N=[],x=[];function K(d){let g=[];return(()=>{let p=r.get(d);if(p){p.superClassName&&g.push(p.superClassName),g.push(...p.implementations||[]);return}let T=D.get(d);if(T){g.push(...T.implementations||[]);return}m.get(d)&&g.push(d)})(),g.flatMap(p=>[p,...K(p)])||[]}function P(d,g){return K(d.name).includes(g)}function u(d){if(G.default.isClassDeclaration(d)&&d.name!==void 0){let g=d.name.text,p=r.get(g);if(!g||!p||s&&!P(p,"EnableReflect"))return;x.push(`Reflect.registerClass?Reflect.registerClass({${g}}):(Reflect.__classDef=Object.assign(Reflect.__classDef||{},{${g}}))`);return}d.forEachChild(u)}function w(){let d={classes:R(),interfaces:R(),typeAliases:R(),constTypes:R(),enums:R()};return r.forEach((p,T)=>{s&&!P(p,"EnableReflect")||(d.classes[T]=p)}),D.forEach((p,T)=>{s&&!P(p,"EnableReflect")||(d.interfaces[T]=p)}),o.forEach((p,T)=>{d.enums[T]=p}),m.forEach((p,T)=>{d.typeAliases[T]=p}),b.forEach((p,T)=>{d.constTypes[T]=p}),`;Reflect.__meta='${btoa(JSON.stringify(d))}'`}return{outputAllMetas:w,transform:(d,g)=>{if(g.endsWith(".ts")&&!(typeof n=="string"?[n]:n).every(p=>!g.startsWith(p))){a&&console.log(`transform id: ${g}`);try{let p=G.default.createSourceFile(g,d,G.default.ScriptTarget.Latest,!1);return N.length=0,x.length=0,u(p),`${N.join(";")};${d};${x.join(";")}`}catch(p){console.error(`[reflect-parser-plugin] Error processing ${g}:`,p);return}}}}}var _e=process.cwd().replace(/\\/g,"/")+"/";function $e(e){let n=ee(e);return{name:"reflect-parser-plugin",enforce:"pre",transform:(t,s)=>(s=s.replace(_e,""),s===e.entry?`${n.outputAllMetas()}
|
|
2
|
-
${t}`:n.transform(t,
|
|
1
|
+
"use strict";var De=Object.create;var j=Object.defineProperty;var we=Object.getOwnPropertyDescriptor;var Re=Object.getOwnPropertyNames;var he=Object.getPrototypeOf,be=Object.prototype.hasOwnProperty;var xe=(e,n)=>{for(var t in n)j(e,t,{get:n[t],enumerable:!0})},ie=(e,n,t,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let a of Re(n))!be.call(e,a)&&a!==t&&j(e,a,{get:()=>n[a],enumerable:!(i=we(n,a))||i.enumerable});return e};var L=(e,n,t)=>(t=e!=null?De(he(e)):{},ie(n||!e||!e.__esModule?j(t,"default",{value:e,enumerable:!0}):t,e)),Pe=e=>ie(j({},"__esModule",{value:!0}),e);var W=(e,n,t)=>new Promise((i,a)=>{var r=l=>{try{p(t.next(l))}catch(b){a(b)}},T=l=>{try{p(t.throw(l))}catch(b){a(b)}},p=l=>l.done?i(l.value):Promise.resolve(l.value).then(r,T);p((t=t.apply(e,n)).next())});var je={};xe(je,{DEBUG_CONFIG:()=>z,parseSource:()=>G,reflectLoader:()=>ee,reflectParserPlugin:()=>$e,setupReflectTypes:()=>Ee,updateReflectModules:()=>Z});module.exports=Pe(je);var V=L(require("typescript"),1);function R(e){return e||{}}var J=["string","number","boolean","bigint","symbol"];var s=L(require("typescript"),1),M=L(require("fs"),1),$=L(require("process"),1),h=L(require("path"),1),fe=require("url");var z={OUTPUT_LOG:!1},C=new Map,v=new Map,U=new Map,I=new Map,Y=new Map,q=new Set,se={[s.default.SyntaxKind.BooleanKeyword]:"boolean",[s.default.SyntaxKind.StringKeyword]:"string",[s.default.SyntaxKind.BigIntKeyword]:"bigint",[s.default.SyntaxKind.NumberKeyword]:"number",[s.default.SyntaxKind.SymbolKeyword]:"symbol",[s.default.SyntaxKind.VoidKeyword]:"void",[s.default.SyntaxKind.UndefinedKeyword]:"undefined",[s.default.SyntaxKind.UnknownKeyword]:"unknown",[s.default.SyntaxKind.AnyKeyword]:"any",[s.default.SyntaxKind.ObjectKeyword]:"object"},O="any",ce=["any","Promise","Date","Error","undefined","unknown","object","Map","Set"],le=["Mappable","EnableReflect","ReflectReference"];[...J,...ce,...le].forEach(de);le.forEach(e=>I.set(e,{name:e,type:e}));var F,re=!1,_=Reflect;function Ee(e){return W(this,null,function*(){let{filePaths:n,exclude:t,sourceFolder:i,distFolder:a}=e;if(i=h.resolve(i||$.cwd()),a=h.resolve(a||$.cwd()),_.__meta!==void 0)return;let r={classes:R(),interfaces:R(),typeAliases:R(),constTypes:R(),enums:R()};n=Te(n);let T=n.map(p=>h.join(i,p));G(T,t);for(let[p,l]of C)r.classes[p]=l;for(let[p,l]of v)r.interfaces[p]=l;for(let[p,l]of I)r.typeAliases[p]=l;for(let[p,l]of U)r.enums[p]=l;for(let[p,l]of Y)r.constTypes[p]=l;_.__meta=btoa(JSON.stringify(r)),yield Promise.all(n.map(p=>Z(p,a)))})}function Z(e,n){return W(this,null,function*(){let t=h.resolve(n,e);if(!M.existsSync(t))return;if(M.statSync(t).isDirectory()){let p=M.readdirSync(t);yield Promise.all(p.map(l=>Z(h.join(e,l),n)));return}if(!e.endsWith(".js"))return;let a=h.join(n,e),T=yield import((0,fe.pathToFileURL)(a).href);_.__classDef={},Object.values(T).forEach(p=>{typeof p=="function"&&_.__classDef&&(_.__classDef[p.name]=p)})})}function G(e,n){if(e||(e=[$.cwd()]),e=Te(e),!re){let t=pe(e,n),i=s.default.createProgram(t,{});F=i.getTypeChecker(),t=t.map(r=>ae(r)),i.getSourceFiles().filter(r=>t.includes(ae(r.fileName))||r.fileName.endsWith("/lib.es5.d.ts")).forEach(r=>{S(`parse file: ${r.fileName}`),ue(r,r.fileName.endsWith("/lib.es5.d.ts"))});for(let r of q.keys())!C.has(r)&&!v.has(r)&&!U.has(r)&&!I.has(r)&&!J.includes(r)&&!ce.includes(r)&&(S(`remove unknown typeName: ${r}`),q.delete(r));Array.from(C.values()).forEach(Oe),Array.from(v.values()).forEach(Ce),[C,v,I].forEach(Ie),re=!0}return{classDefinitions:C,interfaceDefinitions:v,enumDefinitions:U,typeAliasDefinitions:I,constTypeDefinitions:Y}}function pe(e,n){let t=[];return e.forEach(i=>{if(i=h.resolve(i),Le(i,n)){S(`ignore excluded ${i}`);return}if(!M.existsSync(i)){console.error(`Path ${i} does not exist.`);return}if(M.statSync(i).isFile()){t.push(i);return}M.readdirSync(i).forEach(T=>t.push(...pe([h.join(i,T)],n)))}),t}function ue(e,n){s.default.isClassDeclaration(e)?Se(e,n):s.default.isInterfaceDeclaration(e)?Me(e,n):s.default.isEnumDeclaration(e)?Ke(e,n):s.default.isTypeAliasDeclaration(e)?Ne(e,n):s.default.isConstTypeReference(e)?ke(e):e.forEachChild(t=>ue(t,n))}function Se(e,n){var b,K,P,N,E,k,m,D,y,g,u,w,B,ne,te;let t=c(e.name);if(!t)return;let i=c((P=(K=(b=e.heritageClauses)==null?void 0:b.find(o=>o.token===s.default.SyntaxKind.ExtendsKeyword))==null?void 0:K.types)==null?void 0:P[0].expression),a=(E=(N=e.heritageClauses)==null?void 0:N.find(o=>o.token===s.default.SyntaxKind.ImplementsKeyword))==null?void 0:E.types.map(o=>c(o.expression)),r=[],T=[],p;for(let o of e.members)if(s.default.isPropertyDeclaration(o))r.push({name:c(o.name),isOptional:o.questionToken!==void 0,type:d(o),isPrivate:(k=o.modifiers)==null?void 0:k.some(f=>f.kind===s.default.SyntaxKind.PrivateKeyword),isStatic:(m=o.modifiers)==null?void 0:m.some(f=>f.kind===s.default.SyntaxKind.StaticKeyword),isReadonly:(D=o.modifiers)==null?void 0:D.some(f=>f.kind===s.default.SyntaxKind.ReadonlyKeyword)});else if(s.default.isConstructorDeclaration(o))p={name:"constructor",isPrivate:(y=o.modifiers)==null?void 0:y.some(f=>f.kind===s.default.SyntaxKind.PrivateKeyword),args:o.parameters.map(f=>({name:c(f.name),type:d(f),isOptional:f.questionToken!==void 0})),isConstructor:!0};else if(s.default.isMethodDeclaration(o))T.push({name:c(o.name),returnType:d(o),isPrivate:(g=o.modifiers)==null?void 0:g.some(f=>f.kind===s.default.SyntaxKind.PrivateKeyword),isStatic:(u=o.modifiers)==null?void 0:u.some(f=>f.kind===s.default.SyntaxKind.StaticKeyword),isAsync:(w=o.modifiers)==null?void 0:w.some(f=>f.kind===s.default.SyntaxKind.AsyncKeyword),args:o.parameters.map(f=>({name:c(f.name),type:d(f),isOptional:f.questionToken!==void 0}))});else if(s.default.isGetAccessorDeclaration(o)){let f=r.find(A=>A.name===c(o.name));f||(f={name:c(o.name),isOptional:o.questionToken===void 0,type:d(o)},r.push(f)),f.accessor=f.accessor||{},f.accessor.getter={isPrivate:((B=o.modifiers)==null?void 0:B.some(A=>A.kind===s.default.SyntaxKind.PrivateKeyword))||!1},f.isPrivate=f.accessor.getter.isPrivate}else if(s.default.isSetAccessorDeclaration(o)){let f=r.find(A=>A.name===c(o.name));f||(f={name:c(o.name),isOptional:o.questionToken===void 0,type:d(o)},r.push(f)),f.accessor=f.accessor||{},f.accessor.setter={isPrivate:((ne=o.modifiers)==null?void 0:ne.some(A=>A.kind===s.default.SyntaxKind.PrivateKeyword))||!1}}let l={name:t,constructorMethod:p,superClassName:i,implementations:a,properties:r,methods:T,genericsParams:(te=e.typeParameters)==null?void 0:te.map(o=>c(o.name)),fromLib:n};S(`Define class: ${c(e.name)}`),C.set(t,l)}function Me(e,n){var b,K,P,N,E,k;let t=c(e.name);if(!t)return;let i=((K=(b=e.heritageClauses)==null?void 0:b.find(m=>m.token===s.default.SyntaxKind.ExtendsKeyword))==null?void 0:K.types.map(m=>c(m.expression)))||[],a=[],r=[],T,p;for(let m of e.members)s.default.isPropertySignature(m)?a.push({name:c(m.name),isOptional:m.questionToken!==void 0,type:d(m),isPrivate:((P=m.modifiers)==null?void 0:P.some(D=>D.kind===s.default.SyntaxKind.PrivateKeyword))||!1,isReadonly:((N=m.modifiers)==null?void 0:N.some(D=>D.kind===s.default.SyntaxKind.ReadonlyKeyword))||!1}):s.default.isMethodSignature(m)?r.push({name:m.name.text,returnType:d(m),isPrivate:((E=m.modifiers)==null?void 0:E.some(D=>D.kind===s.default.SyntaxKind.PrivateKeyword))||!1,args:m.parameters.map(D=>({name:c(D.name),type:d(D),isOptional:D.questionToken!==void 0}))}):s.default.isIndexSignatureDeclaration(m)&&(m.parameters[0]&&(T=d(m.parameters[0])),p=d(m));let l=v.get(t);l?(l.implementations=Q(l.implementations||[],i),l.methods=Q(l.methods||[],r,(m,D)=>m.name===D.name),l.properties=Q(l.properties||[],a,(m,D)=>m.name===D.name),p&&(l.index={keyType:T,valueType:p}),S(`Merge interface ${c(e.name)}`)):(l={name:t,implementations:i,methods:r,properties:a,index:p?{keyType:T,valueType:p}:void 0,genericsParams:(k=e.typeParameters)==null?void 0:k.map(m=>c(m.name)),fromLib:n},v.set(t,l),S(`Define interface ${c(e.name)}`))}function Ke(e,n){let t=c(e.name);t&&(U.set(t,{name:t,members:e.members.map(i=>({name:c(i.name),initializer:c(i.initializer)})),fromLib:n}),S(`Define enum: ${c(e.name)}`))}function Ne(e,n){var r;S(`Define typeAlias: ${c(e.name)}`);let t=d(e),i=(r=e.typeParameters)==null?void 0:r.map(T=>c(T.name)),a=c(e.name);I.set(a,{name:a,type:t,genericParams:i,fromLib:n})}function ke(e){let n=e.parent.parent;s.default.isVariableDeclaration(n)&&n.initializer&&s.default.isAsExpression(n.initializer)&&Y.set(c(n.name),me(n.initializer.expression))}function me(e){return s.default.isArrayLiteralExpression(e)?Ae(e):s.default.isObjectLiteralExpression(e)?ve(e):s.default.isNumericLiteral(e)?"number":s.default.isStringLiteral(e)?"string":s.default.isBigIntLiteral(e)?"bigint":[s.default.SyntaxKind.TrueKeyword,s.default.SyntaxKind.FalseKeyword].includes(e.kind)?"boolean":O}function Ae(e){let n=[];return e.elements.forEach(t=>{if(s.default.isStringLiteral(t))return n.push(c(t))}),n.length===0?O:n.length===1?n[0]:{unionMembers:n}}function ve(e){let n=[];return e.properties.map(t=>{s.default.isPropertyAssignment(t)?n.push({name:c(t.name),type:me(t.initializer)}):S(`unsupported property: ${t.name}`)}),{typeLiteralMembers:n}}function de(e){q.add(e)}function d(e,n=!1){if(e.type&&!n)return x(e.type);if(!F)return console.error("TypeChecker not initialized!"),O;let t=F.getTypeAtLocation(e),i=F.typeToTypeNode(t,void 0,void 0);return i?x("type"in i?i.type:i):O}function x(e){let n={};if(e===void 0)return O;if(s.default.isTypeReferenceNode(e))if(de(c(e.typeName)),e.typeArguments)n.generics=[c(e.typeName),...e.typeArguments.map(t=>x(t))];else return c(e.typeName);else if(s.default.isFunctionTypeNode(e))n.isFunction=!0;else if(s.default.isConstructorTypeNode(e))n.isConstructor=!0;else{if(s.default.isTypeQueryNode(e))return d(e);if(s.default.isTypeLiteralNode(e)){let t=[];e.members.forEach(i=>{var a,r;s.default.isPropertySignature(i)?t.push({name:c(i.name),isOptional:i.questionToken!==void 0,type:d(i)}):s.default.isIndexSignatureDeclaration(i)?n.index={keyType:(a=i.parameters)!=null&&a[0].type?d((r=i.parameters)==null?void 0:r[0]):void 0,valueType:d(i)}:t.push({name:c(i.name)||"",isOptional:i.questionToken!==void 0,type:x()})}),n.typeLiteralMembers=t}else if(s.default.isArrayTypeNode(e))n.arrayElementType=x(e.elementType);else if(s.default.isTupleTypeNode(e))n.tupleMembers=e.elements.map(x);else if(s.default.isOptionalTypeNode(e))Object.assign(n,d(e)),n.isOptionalInTuple=!0;else{if(s.default.isRestTypeNode(e))return d(e);if(s.default.isUnionTypeNode(e))n.unionMembers=e.types.map(x);else if(s.default.isIntersectionTypeNode(e))n.intersectionMembers=e.types.map(x);else{if(s.default.isConditionalTypeNode(e))return d(e);if(s.default.isInferTypeNode(e))return d(e);if(s.default.isParenthesizedTypeNode(e))return d(e);if(s.default.isThisTypeNode(e))return d(e);if(s.default.isTypeOperatorNode(e)&&e.operator===s.default.SyntaxKind.KeyOfKeyword)return d(e,!0);if(s.default.isIndexedAccessTypeNode(e))return d(e,!0);if(s.default.isMappedTypeNode(e))n.index={keyType:x(e.typeParameter.constraint),valueType:x(e.type)};else if(s.default.isLiteralTypeNode(e))n.literalValue=c(e.literal);else{if(Object.keys(se).includes(String(e.kind)))return se[e.kind]||O;if(s.default.isNamedTupleMember(e))Object.assign(n,d(e));else return d(e,!0)}}}}return n}var Q=(e,n,t)=>[...(e==null?void 0:e.filter(i=>!(n!=null&&n.some(a=>(t||(()=>a===i))(a,i)))))||[],...n||[]];function H(e,n){if(e!==void 0&&e!==O)return typeof e=="string"?q.has(e)||n!=null&&n.includes(e)?e:void 0:e}function Oe(e){var n,t;(n=e.methods)==null||n.forEach(i=>ge(i,e.genericsParams)),(t=e.properties)==null||t.forEach(i=>ye(i,e.genericsParams))}function Ce(e){var n,t;(n=e.methods)==null||n.forEach(i=>ge(i,e.genericsParams)),(t=e.properties)==null||t.forEach(i=>ye(i,e.genericsParams))}function ye(e,n){e.type=H(e.type,n)}function ge(e,n){var t;(t=e.args)==null||t.forEach(i=>i.type=H(i.type,n)),e.returnType=H(e.returnType,n)}function c(e){if(!e)return e;if(e.end<0)return e.text;try{let n=e;return s.default.isQualifiedName(n)?c(n.right):n.getText()}catch(n){return e.text}}function X(e){if(e==null||!(e instanceof Object))return;let n=e;Object.entries(n).forEach(t=>{let[i,a]=t;a===!1||a===void 0||a===null?delete n[i]:a instanceof Array?a.length===0?delete n[i]:a.forEach(X):X(a)})}function Ie(e){for(let n of e.values())X(n)}function Le(e,n){return n?(n=n instanceof Array?n:[n],n.some(t=>(t instanceof RegExp||(t=new RegExp(t.replace(/\./g,"\\.").replace(/\*/g,".*"))),e.match(t)))):!1}function ae(e,n=$.cwd()){return oe(e).replace(oe(n)+"/","")}function oe(e){let n=h.sep;return e.split(n).join("/")}function Te(e){return e instanceof Array?e:[e]}function S(e){z.OUTPUT_LOG&&console.log(e)}function ee(e){let{sourcePaths:n,exclude:t,forEnabledClassOnly:i,outputLog:a}=e;if(a&&(z.OUTPUT_LOG=!0),!n)throw new Error("need provide source paths for reflect loader");a&&console.log(`sourcePaths: ${n}, exclude: ${t}, forEnabledClassOnly: ${i}`);let{classDefinitions:r,interfaceDefinitions:T,enumDefinitions:p,typeAliasDefinitions:l,constTypeDefinitions:b}=G(n,t),K=[],P=[];function N(y){let g=[];return(()=>{let u=r.get(y);if(u){u.superClassName&&g.push(u.superClassName),g.push(...u.implementations||[]);return}let w=T.get(y);if(w){g.push(...w.implementations||[]);return}l.get(y)&&g.push(y)})(),g.flatMap(u=>[u,...N(u)])||[]}function E(y,g){return N(y.name).includes(g)}function k(y){if(V.default.isClassDeclaration(y)&&y.name!==void 0){let g=y.name.text,u=r.get(g);if(!g||!u||i&&!E(u,"EnableReflect"))return;P.push(`Reflect.registerClass?Reflect.registerClass({${g}}):(Reflect.__classDef=Object.assign(Reflect.__classDef||{},{${g}}))`);return}y.forEachChild(k)}function m(){let y={classes:R(),interfaces:R(),typeAliases:R(),constTypes:R(),enums:R()};return r.forEach((u,w)=>{i&&!E(u,"EnableReflect")||(y.classes[w]=u)}),T.forEach((u,w)=>{i&&!E(u,"EnableReflect")||(y.interfaces[w]=u)}),p.forEach((u,w)=>{y.enums[w]=u}),l.forEach((u,w)=>{y.typeAliases[w]=u}),b.forEach((u,w)=>{y.constTypes[w]=u}),`;Reflect.__meta='${btoa(JSON.stringify(y))}'`}return{outputAllMetas:m,transform:(y,g)=>{if(g.endsWith(".ts")&&!(typeof n=="string"?[n]:n).every(u=>!g.startsWith(u))){a&&console.log(`transform id: ${g}`);try{let u=V.default.createSourceFile(g,y,V.default.ScriptTarget.Latest,!1);return K.length=0,P.length=0,k(u),`${K.join(";")};${y};${P.join(";")}`}catch(u){console.error(`[reflect-parser-plugin] Error processing ${g}:`,u);return}}}}}var _e=process.cwd().replace(/\\/g,"/")+"/";function $e(e){let n=ee(e);return{name:"reflect-parser-plugin",enforce:"pre",transform:(t,i)=>(i=i.replace(_e,""),i===e.entry?`${n.outputAllMetas()}
|
|
2
|
+
${t}`:n.transform(t,i))}}0&&(module.exports={DEBUG_CONFIG,parseSource,reflectLoader,reflectParserPlugin,setupReflectTypes,updateReflectModules});
|
package/dist/esm/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var
|
|
2
|
-
caused by: `):this.errorMessage}get errorMessage(){return`[Err${this.errorCode}] ${this.errorDesc}`}};o(
|
|
3
|
-
-> `)}o(lt,"getErrorTraceMessages");var Me=class Me extends Error{constructor(e,t){super(e),this.failureResult=t}};o(Me,"ValidationError");var x=Me,G={validationErrorHandler:o(function(n){var e;console.error(n.message),console.error((e=n.failureResult)==null?void 0:e.errorStackFlow)},"validationErrorHandler")};var we=[Promise,Date,Map,Set,Error,Function,Array,ArrayBuffer,RegExp];function g(n,e,t=1){switch(!0){case e.name==="undefined":return n===void 0?u:l(100,`declared as ${m(e)} but actually not`);case He(e):return u;case pe(e):return n instanceof Object?Re(n,e,t):l(200,`declared as ${m(e)} but actually not an object`);case se(e):return on(n,e,t);case ue(e):return an(n,e,t);case ce(e):for(let i of e.unionMembers||[])if(g(n,i,t).success)return u;return l(320,`declared as ${m(e)} but all value not match`);case le(e):for(let i of e.intersectionMembers||[]){let r=g(n,i,t);if(!r.success)return l(330,`declared as ${m(e)} but all value not match`,r)}return u;case Ce(e):return sn(n,e,t);case ae(e):switch(typeof n){case"string":return n===ln(e.literalValue)?u:l(110,`declared as string ${m(e)} but value not match`);case"number":return n===Number(e.literalValue)?u:l(111,`declared as number ${m(e)} but value not match`);case"bigint":return n===BigInt(e.literalValue)?u:l(112,`declared as bigint ${m(e)} but value not match`);case"boolean":return n===!!e.literalValue?u:l(113,`declared as boolean ${m(e)} but value not match`);default:return e.literalValue==="null"&&n===null?u:n===e.literalValue?u:l(114,`declared as ${m(e)} but value not match`)}case fe(e):return fn(n,e,t);case e.isFunction:case e.isConstructor:return typeof n=="function"?u:l(150,`declared as ${m(e)} but actually not`);case xe(e):return n==null?l(120,`declared as ${m(e)} but actually ${n}`):typeof n===e.name?u:l(121,`declared as ${m(e)} but actually ${typeof n}`);default:return cn(n,e,t)}}o(g,"validateValue");function on(n,e,t=1){if(!Array.isArray(n))return l(300,`declared as ${m(e)} but actually not`);if(t===0)return u;for(let i=0;i<n.length;i++){let r=n[i],s=g(r,e.arrayElementType||T,t-1);if(!s.success)return l(301,`declared as ${m(e)} but [${i}] not match`,s)}return u}o(on,"validateArrayValue");function sn(n,e,t=1){if(n===null)return l(400,"declared as indexedType but actually is null");if(n===void 0)return l(401,"declared as indexedType but actually is undefined");if(typeof n=="object")return l(410,`declared as indexedType but actually is ${typeof n}`);for(let i of Object.values(n)){let r=g(i,e.indexElementType,t-1);if(!r.success)return l(420,`declared as ${m(e)} but actually not match`,r)}return u}o(sn,"validateIndexedValue");function an(n,e,t=1){if(!Array.isArray(n))return l(310,`declared as ${m(e)} but actually not a tuple`);if(t===0)return u;let i=0;for(let r of e.tupleMembers){let s=n[i++];if(r.isOptionalInTuple&&s===void 0)continue;let f=g(n[i],r,t);if(!f.success)return l(311,`declared as ${m(e)} but not all values in tuple match`,f)}return u}o(an,"validateTupleValue");function fn(n,e,t=1){if(n instanceof Object){for(let i of e.typeLiteralMembers||[]){if(i.isStatic)return u;if(i.name.startsWith("[")&&i.name.endsWith("]"))return u;if(t===0)return u;let r=i.type||T;i.isOptional&&(r={unionMembers:[r,{name:"undefined"}]});let s=v(n,i.name),f=g(s,r,t-1);if(!f.success)return l(211,`declared ${i.name} as ${m(r)}, but not match`,f)}return u}else return l(210,`declared as ${m(e)} but not an object`)}o(fn,"validateProperties");function cn(n,e,t=1){let i=typeof e=="string"?e:e.name;if(!i)return u;if(n===void 0)return l(130,`declared as ${m(e)} but actually undefined`);if(n===null)return i==="null"?u:l(131,`declared as ${m(e)} but actually null`);for(let s of we)if(i===s.name)return n instanceof s?u:l(132,`declared as ${m(e)} but actually ${n.constructor.name}`);if(n instanceof Object&&!Be(n,i))return l(133,`declared as ${m(e)} but actually not instance of it`);if(t==0)return u;let r=g(n,w(i),t);return r.success?u:l(134,`declared as ${m(e)} but actually not match`,r)}o(cn,"validateSimpleValue");function Re(n,e,t=3){if(e.classDefinition&&!Be(n,e.classDefinition.name))return l(201,`declared as instance of ${m(e)} but actually not`);if(e.name!=="any"&&e===T)return l(202,`${m(e)} not defined`);let i=A({},e);return delete i.classDefinition,g(n,i,t)}o(Re,"validateClassInstance");function Be(n,e){if(n===void 0||n.constructor.name===e)return!0;let t=d(e);if(!t)return!0;if(t.jsClass)return n instanceof t.jsClass;let i=d(n);return i?i.isSubClassOf(t.name):!1}o(Be,"valueInstanceOf");function ln(n){return n.length>=2&&(n[0]==='"'&&n[n.length-1]==='"'||n[0]==="'"&&n[n.length-1]==="'")?n.substring(1,n.length-1):n}o(ln,"trimQuotes");function m(n){var e,t,i,r;return typeof n=="string"?n:pe(n)?n.classDefinition.name:se(n)?(((e=n.arrayElementType)==null?void 0:e.name)||"unknown")+"[]":n.isConstructor?"Class":n.isFunction?"Function":fe(n)?"Object":ue(n)?`(${n.tupleMembers.map(m).join(",")})`:ce(n)?((t=n.unionMembers)==null?void 0:t.map(m).join(" | "))||"unknown":le(n)?((i=n.intersectionMembers)==null?void 0:i.map(m).join(" & "))||"unknown":ae(n)?n.literalValue:Ce(n)?`{ [key]: ${((r=n.indexElementType)==null?void 0:r.name)||"unknown"} }`:n.name||"unknown"}o(m,"getTypeDisplayName");var Ie=class Ie{constructor(e){var t;this.name=e.name,this.members=new Map,e.members.forEach(i=>{let r=i.initializer===void 0?{name:"number"}:{literalValue:i.initializer};this.members.set(i.name,r)}),this.fromLib=(t=e.fromLib)!=null?t:!1}get type(){return{name:this.name,unionMembers:Array.from(this.members.values()),fromLib:this.fromLib}}get names(){return Array.from(this.members.keys())}};o(Ie,"EnumDefinition");var me=Ie,Pe=new Map;function B(n){var e,t;if(!Pe.has(n)){let i=(t=(e=M())==null?void 0:e.enums)==null?void 0:t[n];if(!i)return;Pe.set(n,new me(i))}return Pe.get(n)}o(B,"getEnumDefinition");function un(n){var e;return((e=B(n))==null?void 0:e.names)||[]}o(un,"getEnumNames");function pn(n){let e=Object.entries(n)[0];if(!e)return[];let[t,i]=e,r=B(t);return r?r.names.map(s=>i[s]):Array.from(Object.keys(i))}o(pn,"getEnumValues");var mn=["Partial","Required","Readonly","Pick","Omit","Extract","Exclude"];function Ue(n){return typeof n=="string"&&mn.includes(n)}o(Ue,"isSpecialType");function yn(n,e,t){let i;switch(n){case"Partial":i=dn(e);break;case"Required":i=Dn(e);break;case"Readonly":i=bn(e);break;case"Pick":i=qe(e,t);break;case"Omit":i=ze(e,t);break;case"Extract":i=gn(e,t);break;case"Exclude":i=Tn(e,t);break}return i}o(yn,"getSpecialType");function Je(n,e){let[t,i]=e,r,s=["Pick","Omit","Extract","Exclude"].includes(n)?["T"]:["T","K"];return r=yn(n,t,i),r?{name:n,type:r,genericParams:s,fromLib:!0}:void 0}o(Je,"getSpecialTypeAlias");function H(n,e){return n.typeLiteralMembers?{typeLiteralMembers:n.typeLiteralMembers.map(t=>t.copy(e))}:n.unionMembers?{unionMembers:n.unionMembers.map(t=>H(t,e)).filter(t=>t!==void 0)}:n.intersectionMembers?{intersectionMembers:n.intersectionMembers.map(t=>H(t,e)).filter(t=>t!==void 0)}:void 0}o(H,"getMappedType");function We(n,e){if(n.typeLiteralMembers)return{typeLiteralMembers:n.typeLiteralMembers.map(t=>e(t)?t.copy():void 0).filter(t=>!!t)}}o(We,"getFilterKeyType");function dn(n){return H(n,e=>e.isOptional=!0)}o(dn,"getPartialType");function Dn(n){return H(n,e=>e.isOptional=!1)}o(Dn,"getRequiredType");function bn(n){return H(n,e=>e.isReadonly=!0)}o(bn,"getReadonlyType");function qe(n,e){var i;if(!e)return;let t=(i=e.unionMembers)==null?void 0:i.map(r=>r.name);if(n.typeLiteralMembers)return We(n,r=>{var s;return(s=r.name===e.literalValue||(t==null?void 0:t.includes(r.name)))!=null?s:!1})}o(qe,"getPickType");function ze(n,e){var i;if(!e)return;let t=(i=e.unionMembers)==null?void 0:i.map(r=>r.name);if(n.typeLiteralMembers)return We(n,r=>!(r.name===e.literalValue||t!=null&&t.includes(r.name)))}o(ze,"getOmitType");function gn(n,e){if(e&&n.typeLiteralMembers&&e.typeLiteralMembers){let t={unionMembers:e.typeLiteralMembers.map(i=>({literalValue:i.name}))};return qe(n,t)}}o(gn,"getExtractType");function Tn(n,e){if(e&&n.typeLiteralMembers&&e.typeLiteralMembers){let t={unionMembers:e.typeLiteralMembers.map(i=>({literalValue:i.name}))};return ze(n,t)}}o(Tn,"getExcludeType");function $e(n,e){var r,s,f;if(Ue(n))return!e||!e[0]?void 0:Je(n,[e[0],e[1]]);if(!Ee.has(n)){let c=(s=(r=M())==null?void 0:r.typeAliases)==null?void 0:s[n];if(!c||!c.type)return;Ee.set(n,{name:n,type:c.type,genericParams:c.genericParams,fromLib:c.fromLib})}let t=Ee.get(n);if(!t)return;let i;if(t.genericParams&&e){let c={};for(let a=0;a<t.genericParams.length;a++){let p=t.genericParams[a];c[p]=e[a]}i=y(t.type,c,e)}else i=y(t.type);return{name:t.name,type:i,genericParams:t.genericParams,fromLib:(f=t.fromLib)!=null?f:!1}}o($e,"getTypeAliasDefinition");var Ee=new Map;var T={name:"any"},hn={name:"null"};function He(n){return!!(n.name&&["any","void","unknown"].includes(n.name))}o(He,"isIgnoredType");function xe(n){return!!(n.name&&De.includes(n.name))}o(xe,"isPrimitiveType");function se(n){return!!n.arrayElementType}o(se,"isArrayType");function ae(n){return!!n.literalValue}o(ae,"isLiteralType");function fe(n){return!!n.typeLiteralMembers}o(fe,"isTypeLiteralType");function ce(n){return!!n.unionMembers}o(ce,"isUnionType");function le(n){return!!n.intersectionMembers}o(le,"isIntersectionType");function ue(n){return!!n.tupleMembers}o(ue,"isTupleType");function pe(n){return!!n.classDefinition}o(pe,"isClassDefinition");function Mn(n){return!!n.generics}o(Mn,"hasGenerics");function Ce(n){return!!n.indexElementType}o(Ce,"isIndexType");function w(n,e){if(n==="any"||n==="Any"||n==="unknown"||n==="")return T;if(n==="null")return hn;if(n==="Function")return{isFunction:!0};let t=d(n);if(t)return e?O.create(t,e).type:t.type;if(De.includes(n))return{name:n};if(we.map(f=>f.name).includes(n))return{name:n,generics:e};let i=j(n);if(i)return i.fromLib?{name:n,generics:e}:e?ee.create(i,e).type:i.type;let r=B(n);if(r)return r.type;let s=$e(n,e);return s?s.type:T}o(w,"getTypeDefinition");var ke=new Map;function y(n,e,t){let i=Ae(n);if(n===void 0)return T;let r=ke.get(i);if(r)return r;let s={};if(ke.set(i,s),typeof n=="string")s=(e==null?void 0:e[n])||w(n,t)||T;else if(n.arrayElementType)Object.assign(s,{arrayElementType:y(n.arrayElementType,e)});else if(n.unionMembers)Object.assign(s,{unionMembers:n.unionMembers.map(f=>y(f,e))});else if(n.intersectionMembers)Object.assign(s,{intersectionMembers:n.intersectionMembers.map(f=>y(f,e))});else if(n.tupleMembers)Object.assign(s,{tupleMembers:n.tupleMembers.map(f=>y(f,e))});else if(n.generics){let f=n.generics[0],c=n.generics.slice(1).map(a=>y(a,e));Object.assign(s,y(f,e,c))}else n.indexElementType&&Object.assign(s,{indexElementType:y(n.indexElementType,e)});return Object.keys(s).length===0&&(s=T),ke.delete(i),s}o(y,"fillType");function Ae(n){return n===null?"null":n===void 0?"undefined":typeof n!="object"?JSON.stringify(n):Array.isArray(n)?"["+n.map(Ae).join(",")+"]":"{"+Object.keys(n).sort().map(t=>JSON.stringify(t)+":"+Ae(n[t])).join(",")+"}"}o(Ae,"stableStringify");var wn={isPrimitiveType:xe,isArrayType:se,isLiteralType:ae,isTypeLiteralType:fe,isUnionType:ce,isIntersectionType:le,isTupleType:ue,isClassDefinition:pe,hasGenerics:Mn};function R(n){if(typeof n=="string"){let e=xn(n);if(typeof e=="string"){let t=e.match(/"(.+)"$/)||e.match(/'(.+)'$/);if(t!=null&&t[1])return{literalValue:t[1]}}return typeof e=="string"?w(n):R(e)}return"array"in n?{arrayElementType:R(n.array)}:"union"in n?{unionMembers:n.union.map(R)}:"intersection"in n?{intersectionMembers:n.intersection.map(R)}:"tuple"in n?{tupleMembers:n.tuple.map(R)}:"generic"in n?w(n.name,n.generic.map(R)):n}o(R,"getTypeDef");function Bt(n,e,t=5){let i=g(n,R(e),t);return i.success||G.validationErrorHandler(new x(`assert failed with type: ${e}, ${i.errorStackFlow}`,i)),n}o(Bt,"assertType");function Ht(n){return Rn(null,n)}o(Ht,"isNullable");function Rn(n,e,t=5){return g(n,R(e),t).success}o(Rn,"isType");function xn(n){let e=0,t="%%",i={};function r(a){let p=`${t}${e++}`;return i[p]=a,p}o(r,"addPlaceholder");function s(a){let p=a.match(new RegExp(`^(${t}\\d)$`));if(!p)return;let D=p[1].trim(),b=i[D];return delete i[D],b}o(s,"getPlaceholder");function f(a,p,D,b){let h=0;for(;h<a.length;){let C=a.indexOf(p,h);if(C===-1)break;h=C+1;let E=a.indexOf(D,h);if(E===-1)throw new Oe("Illegal type string");let U=a.substring(C+1,E),V=r(U);b?a=`${a.substring(0,C+1)}${V}${a.substring(E)}`:a=`${a.substring(0,C)}${V}${a.substring(E+1)}`}return a}o(f,"replaceBracket");function c(a){let p=a.trim(),D=o(P=>P.trim(),"trim"),b=o(P=>P.length!=0,"notEmpty");p=f(p,"(",")",!1),p=f(p,"<",">",!0);let h=s(p);if(h)return c(h);let C=p.split("|").map(D).filter(b);if(C.length>1)return{union:C.map(c)};let E=p.split("&").map(D).filter(b);if(E.length>1)return{intersection:E.map(c)};let U=p.match(/^\[(.*)]$/);if(U)return{tuple:U[1].split(",").map(D).filter(b).map(c)};let V=p.match(/^(.+)\[]$/);if(V)return{array:c(V[1])};let ye=p.match(/^([^<]+)<(.+)>$/);if(ye){let P=ye[1].trim(),de=c(ye[2]);if(typeof de=="string"){let Ye=de.split(",").map(D).filter(b).map(c);return{name:P,generic:Ye}}else return{name:P,generic:[de]}}return p}return o(c,"parseTypeRecursive"),c(n)}o(xn,"parseType");var je=class je extends Error{};o(je,"TypeParseError");var Oe=je;function Ke(n,e,t=3){return e=e||n.constructor.name,Re(n,R(e),t)}o(Ke,"validateInstance");function Kt(n,e,t=1){for(let i=0;i<n.length;i++){let r=Ke(n[i],e,t);if(!r.success)return l(220,`declared as instance of ${e}[] but [${i}] actually not`,r)}return u}o(Kt,"validateArray");function Qt(n,e,t=1){let i=Object.entries(n);for(let r=0;r<i.length;r++){let[s,f]=i[r],c=Ke(f,e,t);if(!c.success)return l(230,`declared as instance of Dictionary<${e}> but [${s}] actually not`,c)}return u}o(Qt,"validateDictionary");var Qe=Symbol("VALIDATE_WRAPPER"),Le=G.validationErrorHandler,ri=o((n,e,t)=>Cn(n,e,t),"ReflectValidate");function Cn(n,e,t){let i=t.value;if(typeof i!="function"||v(i,Qe))return;let r=o(()=>{var a,p;return(p=(a=d(n))==null?void 0:a.methods)==null?void 0:p.find(D=>D.name===e)},"getMethodDef"),s=o(a=>Xe(n,r(),a),"validateArgs"),f=o(a=>Pn(n,r(),a),"validateReturn"),c=o(function(...a){s(a);let p=i.call(this,...a);return f(p)},"newFunc");c[Qe]=i,t.value=c}o(Cn,"wrapValidateMethod");function Xe(n,e,t){var i;(i=e==null?void 0:e.args)==null||i.forEach((r,s)=>{let f=t==null?void 0:t[s];if(f===void 0)if(!r.isOptional)Le(new x(`Illegal arguments for ${Ve(n.constructor.name,e)}: ${r.name} is not optional`));else return;let c=g(f,r.type||T,1);c.success||(console.error("validateResult",c),Le(new x(`Illegal arguments for ${Ve(n.constructor.name,e)}: ${r.name}: ${r.name} ${c.errorMessage}`)))})}o(Xe,"validateMethodParams");function Pn(n,e,t){var s;if(!e)return t;let i=o((f,c)=>{let a=g(f,c,5);return a.success||(console.error(a.errorStackFlow),Le(new x(`result for ${Ve(n.constructor.name,e)} doesn't match type ${c.name}:
|
|
4
|
-
${
|
|
1
|
+
var We=Object.defineProperty,on=Object.defineProperties;var sn=Object.getOwnPropertyDescriptors;var Ue=Object.getOwnPropertySymbols;var an=Object.prototype.hasOwnProperty,fn=Object.prototype.propertyIsEnumerable;var He=(n,e,t)=>e in n?We(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,j=(n,e)=>{for(var t in e||(e={}))an.call(e,t)&&He(n,t,e[t]);if(Ue)for(var t of Ue(e))fn.call(e,t)&&He(n,t,e[t]);return n},ze=(n,e)=>on(n,sn(e)),o=(n,e)=>We(n,"name",{value:e,configurable:!0});var De=["string","number","boolean","bigint","symbol"],qe={string:String,number:Number,boolean:Boolean,object:Object};var K=class K{constructor(e){this.name=e.name,this.isReadOnly=!!e.isReadonly,this.isOptional=!!e.isOptional,this.isPrivate=!!e.isPrivate,this.isStatic=!!e.isStatic,this.accessor=e.accessor,this.rawType=e.type}get type(){return y(this.rawType)}static from(e){return new K(e)}};o(K,"PropertyDefinition");var w=K,Q=class Q extends w{static create(e,t){let i=R(Q,e);return i.genericContext=t,i}get type(){return y(this.rawType,this.genericContext)}};o(Q,"GenericProperty");var q=Q;function R(n,e){let t=Object.create(n.prototype);return e!==void 0&&Object.assign(t,e),t}o(R,"createInstance");function X(n,e){n.properties=e.properties.map(t=>q.create(t,n.genericContext)),n.methods=e.methods.map(t=>N.create(t,n.genericContext)),n instanceof E&&e instanceof k&&e.constructorMethod!==void 0&&(n.constructorMethod=N.create(e.constructorMethod,n.genericContext))}o(X,"buildPropertiesAndMethods");function be(n,e){let t={};return n.forEach(i=>{let[r,s]=e(i);t[r]=s}),t}o(be,"toDictionary");function Y(n,e){return(n==null?void 0:n.map(e).filter(t=>t!==void 0))||[]}o(Y,"mapNotNull");function F(n,e){if(n!==void 0)return n[e]}o(F,"getValue");var ge=class ge{constructor(e){this.rawDef=e}get name(){return this.rawDef.name}get returnType(){return y(this.rawDef.returnType)}get args(){var e;return((e=this.rawDef.args)==null?void 0:e.map(t=>({name:t.name,type:y(t.type),isOptional:t.isOptional})))||[]}get isPrivate(){return!!this.rawDef.isPrivate}get isStatic(){return!!this.rawDef.isStatic}get isAsync(){return!!this.rawDef.isAsync}get isConstructor(){return!!this.rawDef.isConstructor}};o(ge,"MethodDefinition");var Z=ge;function _(n){return new Z(n)}o(_,"fillMethod");var ee=class ee extends Z{static create(e,t){let i=R(ee,e);return i.genericContext=t,i}get args(){var e;return((e=this.rawDef.args)==null?void 0:e.map(t=>({name:t.name,type:y(t.type,this.genericContext),isOptional:t.isOptional})))||[]}get returnType(){return y(this.rawDef.returnType,this.genericContext)}};o(ee,"GenericMethod");var N=ee;var J=Reflect,G;function x(){if(G)return G;let n=J.__meta;if(n===void 0){console.warn("No reflect meta found, reflect is disabled.");return}try{G=JSON.parse(atob(n))}catch(t){console.error(t),console.warn("Illegal reflect meta found, reflect is disabled");return}delete J.__meta;let e=G;return e.classDef=J.__classDef||{},delete J.__classDef,Reflect.defineProperty(J,"registerClass",{value:o(t=>Object.assign(e.classDef,t),"value")}),G}o(x,"getRawMeta");var B=class B{constructor(e){var t,i,r,s;this.name=e.name,this._implementationNames=e.implementations||[],this.methods=((t=e.methods)==null?void 0:t.map(_))||[],this.properties=((i=e.properties)==null?void 0:i.map(w.from))||[],this.generics=(r=e.genericsParams)!=null?r:[],this.fromLib=(s=e.fromLib)!=null?s:!1}get implementations(){return this._implementations||(this._implementations=Y(this._implementationNames,e=>{var t;return v(e)||((t=d(e))==null?void 0:t.type)||P(e)})),this._implementations}get allImplementations(){if(this._allImplementations===void 0){let e=new Set(this.implementations);this.implementations.forEach(t=>{t instanceof B?t.allImplementations.forEach(i=>e.add(i)):e.add(t)}),this._allImplementations=Array.from(e)}return this._allImplementations}get type(){if(this.implementations.length===0)return{name:this.name,fromLib:this.fromLib,typeLiteralMembers:Object.values(this.properties)};let e={},t=[];return this.implementations.forEach(i=>{let r=i instanceof B?i.type:i;r.typeLiteralMembers?r.typeLiteralMembers.forEach(s=>e[s.name]=s):t.push(r)}),this.properties.forEach(i=>e[i.name]=i),t.length>0?{name:this.name,fromLib:this.fromLib,intersectionMembers:[{typeLiteralMembers:Object.values(e)},...t]}:{name:this.name,fromLib:this.fromLib,typeLiteralMembers:Object.values(e)}}toString(){return`interface ${this.name}`}};o(B,"InterfaceDefinition");var A=B,te=class te extends A{constructor(){super(...arguments);this.genericArgs=[];this.properties=[];this.methods=[];this.genericContext={}}static create(t,i){let r=R(te,t);r.genericArgs=i;let s=r;return s.buildGenericContext(),X(s,t),s}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((i,r)=>this.genericContext[i]=this.genericArgs[r])}};o(te,"GenericInterface");var ne=te,he=new Map;function v(n){var e,t;if(!he.has(n)){let i=(t=(e=x())==null?void 0:e.interfaces)==null?void 0:t[n];if(!i)return;he.set(n,new A(i))}return he.get(n)}o(v,"getInterfaceDefinition");var Me=class Me{constructor(e){var t,i,r,s;this.name=e.name,this.superClassName=e.superClassName||"Object",this.superClass=d(this.superClassName),this._implementationNames=e.implementations||[],this.constructorMethod=e.constructorMethod!==void 0?_(e.constructorMethod):void 0,this.methods=((t=e.methods)==null?void 0:t.map(_))||[],this.properties=((i=e.properties)==null?void 0:i.map(w.from))||[],this.jsClass=e.jsClass,this.generics=(r=e.genericsParams)!=null?r:[],this.fromLib=(s=e.fromLib)!=null?s:!1}get allMethods(){let e={};if(this.superClassName!=="Object"){let t=d(this.superClassName);t&&Object.assign(e,j({},t.allMethods))}return Object.assign(e,j({},be(this.methods,t=>[t.name,t]))),e}get allProperties(){var e;return Object.assign(((e=this.superClass)==null?void 0:e.allProperties)||{},be(this.properties,t=>[t.name,t]))}get implementations(){return this._implementations?this._implementations:Y(this._implementationNames,e=>v(e)||P(e))}get allImplementations(){var e,t;if(this._allImplementations===void 0){let i=new Set(this.implementations);this.implementations.forEach(r=>{r instanceof A?r.allImplementations.forEach(s=>i.add(s)):i.add(r)}),(t=(e=this.superClass)==null?void 0:e.allImplementations)==null||t.forEach(r=>i.add(r)),this._allImplementations=Array.from(i)}return this._allImplementations}getProperty(e){return this.properties.find(t=>t.name===e)}get type(){var t,i;let e={};return(i=(t=this.superClass)==null?void 0:t.type.typeLiteralMembers)==null||i.forEach(r=>e[r.name]=r),this.properties.forEach(r=>e[r.name]=r),{name:this.name,classDefinition:this,typeLiteralMembers:Object.values(e),fromLib:this.fromLib}}isSubClassOf(e){var t;return this.name===e||(t=this.superClass)!=null&&t.isSubClassOf(e)?!0:this.implementations.map(i=>i.name).includes(e)}isSuperClassOf(e){if(this.name===e)return!0;let t=d(e);return t?t.isSubClassOf(this.name):!1}toString(){return`class ${this.name}`}};o(Me,"ClassDefinition");var k=Me,re=class re extends k{constructor(){super(...arguments);this.genericArgs=[];this.properties=[];this.methods=[];this.genericContext={}}static create(t,i){let r=R(re,t);r.genericArgs=i;let s=r;return s.buildGenericContext(),X(s,t),s}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((i,r)=>this.genericContext[i]=this.genericArgs[r])}};o(re,"GenericClass");var E=re,ie=new Map;function cn(n){var e;return((e=d(n))==null?void 0:e.jsClass)||qe[n]}o(cn,"getClassByName");function d(n){var e,t,i,r,s,a;switch(typeof n){case"object":return d(n.constructor);case"function":let c=d(n.name);if(c)return c;let f=Array.from(ie.values()).find(g=>g.jsClass===n);if(f)return f;let m=(t=Object.entries(((e=x())==null?void 0:e.classDef)||{}).find(([g,M])=>M===n))==null?void 0:t[0];return m?d(m):void 0;case"string":let T=n;if(!ie.has(T)){let g=(r=(i=x())==null?void 0:i.classes)==null?void 0:r[T];if(!g)return;let M=(a=(s=x())==null?void 0:s.classDef)==null?void 0:a[T];ie.set(T,new k(ze(j({},g),{jsClass:M})))}return ie.get(T)}}o(d,"getClassDefinition");var xe=class xe{constructor(){this.success=!0}};o(xe,"SuccessResult");var we=xe,Pe=class Pe{constructor(e,t,i){this.errorCode=e;this.errorDesc=t;this.success=!1;this.cause=i.cause,this.value=i.value,this.type=i.type}get errorStackFlow(){return this.cause?[this.errorMessage,this.cause.errorStackFlow].join(`
|
|
2
|
+
caused by: `):this.errorMessage}get errorMessage(){return`[Err${this.errorCode}] ${this.errorDesc}`}};o(Pe,"FailureResult");var Re=Pe,p=new we,l=o((n,e,t)=>new Re(n,e,t),"failedResult");function lt(n){let e=o(t=>t.errorMessage?[t.errorMessage,...t.cause?e(t.cause):[]]:[],"getAllTraceMessages");return e(n).join(`
|
|
3
|
+
-> `)}o(lt,"getErrorTraceMessages");var Ce=class Ce extends Error{constructor(e,t){super(e),this.failureResult=t}};o(Ce,"ValidationError");var O=Ce,S={validationErrorHandler:o(function(n){var e;console.error(n.message),console.error((e=n.failureResult)==null?void 0:e.errorStackFlow)},"validationErrorHandler")};var Oe=[Promise,Date,Map,Set,Error,Function,Array,ArrayBuffer,RegExp];function D(n,e,t=1){switch(!0){case e.name==="undefined":return n===void 0?p:l(100,`declared as ${u(e)} but actually not`,{value:n,type:e});case e.name==="null":return n===null?p:l(101,`declared as ${u(e)} but actually not`,{value:n,type:e});case Qe(e):return p;case ue(e):return n instanceof Object?Ie(n,e,t):l(200,`declared as ${u(e)} but actually not an object`,{value:n,type:e});case oe(e):return ln(n,e,t);case le(e):return pn(n,e,t);case fe(e):for(let i of e.unionMembers||[])if(D(n,i,t).success)return p;return l(320,`declared as ${u(e)} but all value not match`,{value:n,type:e});case ce(e):for(let i of e.intersectionMembers||[]){let r=D(n,i,t);if(!r.success)return l(330,`declared as ${u(e)} but all value not match`,{cause:r,value:n,type:e})}return p;case $e(e):return un(n,e,t);case se(e):switch(typeof n){case"string":return n===dn(e.literalValue)?p:l(110,`declared as string ${u(e)} but value not match`,{value:n,type:e});case"number":return n===Number(e.literalValue)?p:l(111,`declared as number ${u(e)} but value not match`,{value:n,type:e});case"bigint":return n===BigInt(e.literalValue)?p:l(112,`declared as bigint ${u(e)} but value not match`,{value:n,type:e});case"boolean":return n===!!e.literalValue?p:l(113,`declared as boolean ${u(e)} but value not match`,{value:n,type:e});default:return e.literalValue==="null"&&n===null?p:n===e.literalValue?p:l(114,`declared as ${u(e)} but value not match`,{value:n,type:e})}case ae(e):return mn(n,e,t);case e.isFunction:case e.isConstructor:return typeof n=="function"?p:l(150,`declared as ${u(e)} but actually not`,{value:n,type:e});case Le(e):return n==null?l(120,`declared as ${u(e)} but actually ${n}`,{value:n,type:e}):typeof n===e.name?p:l(121,`declared as ${u(e)} but actually ${typeof n}`,{value:n,type:e});default:return yn(n,e,t)}}o(D,"validateValue");function ln(n,e,t=1){if(!Array.isArray(n))return l(300,`declared as ${u(e)} but actually not`,{value:n,type:e});if(t===0)return p;for(let i=0;i<n.length;i++){let r=n[i],s=D(r,e.arrayElementType||b,t-1);if(!s.success)return l(301,`declared as ${u(e)} but [${i}] not match`,{cause:s,value:n,type:e})}return p}o(ln,"validateArrayValue");function un(n,e,t=1){if(n===null)return l(400,"declared as indexedType but actually is null",{value:n,type:e});if(n===void 0)return l(401,"declared as indexedType but actually is undefined",{value:n,type:e});if(typeof n!="object")return l(410,`declared as indexedType but actually is ${typeof n}`,{value:n,type:e});for(let[i,r]of Object.entries(n)){let s=D(r,e.index.valueType,t-1);if(!s.success)return l(420,`declared as ${u(e)} but actually not match`,{cause:s,value:n,type:e});if(e.index.keyType&&(s=D(i,e.index.keyType,t-1),!s.success))return l(421,`declared as ${u(e)} but actually not match`,{cause:s,value:n,type:e})}return p}o(un,"validateIndexedValue");function pn(n,e,t=1){if(!Array.isArray(n))return l(310,`declared as ${u(e)} but actually not a tuple`,{value:n,type:e});if(t===0)return p;let i=0;for(let r of e.tupleMembers){let s=n[i++];if(r.isOptionalInTuple&&s===void 0)continue;let a=D(n[i],r,t);if(!a.success)return l(311,`declared as ${u(e)} but not all values in tuple match`,{cause:a,value:n,type:e})}return p}o(pn,"validateTupleValue");function mn(n,e,t=1){if(n instanceof Object){for(let i of e.typeLiteralMembers||[]){if(i.isStatic)return p;if(i.name.startsWith("[")&&i.name.endsWith("]"))return p;if(t===0)return p;let r=i.type||b;i.isOptional&&(r={unionMembers:[r,{name:"undefined"}]});let s=F(n,i.name),a=D(s,r,t-1);if(!a.success)return l(211,`declared ${i.name} as ${u(r)}, but not match`,{cause:a,value:n,type:e})}return p}else return l(210,`declared as ${u(e)} but not an object`,{value:n,type:e})}o(mn,"validateProperties");function yn(n,e,t=1){let i=typeof e=="string"?e:e.name;if(!i)return p;if(n===void 0)return l(130,`declared as ${u(e)} but actually undefined`,{value:n,type:e});if(n===null)return l(131,`declared as ${u(e)} but actually null`,{value:n,type:e});for(let s of Oe)if(i===s.name)return n instanceof s?p:l(132,`declared as ${u(e)} but actually ${n.constructor.name}`,{value:n,type:e});if(n instanceof Object&&!Ke(n,i))return l(133,`declared as ${u(e)} but actually not instance of it`,{value:n,type:e});if(t==0)return p;let r=D(n,P(i),t);return r.success?p:l(134,`declared as ${u(e)} but actually not match`,{cause:r,value:n,type:e})}o(yn,"validateSimpleValue");function Ie(n,e,t=3){if(e.classDefinition&&!Ke(n,e.classDefinition.name))return l(201,`declared as instance of ${u(e)} but actually not`,{value:n,type:e});if(e.name!=="any"&&e===b)return l(202,`${u(e)} not defined`,{value:n,type:e});let i=j({},e);return delete i.classDefinition,D(n,i,t)}o(Ie,"validateClassInstance");function Ke(n,e){if(n===void 0||n.constructor.name===e)return!0;let t=d(e);if(!t)return!0;if(t.jsClass)return n instanceof t.jsClass;let i=d(n);return i?i.isSubClassOf(t.name):!1}o(Ke,"valueInstanceOf");function dn(n){return n.length>=2&&(n[0]==='"'&&n[n.length-1]==='"'||n[0]==="'"&&n[n.length-1]==="'")?n.substring(1,n.length-1):n}o(dn,"trimQuotes");function u(n){var e,t,i,r,s;return typeof n=="string"?n:ue(n)?n.classDefinition.name:oe(n)?(((e=n.arrayElementType)==null?void 0:e.name)||"unknown")+"[]":n.isConstructor?"Class":n.isFunction?"Function":ae(n)?"Object":le(n)?`(${n.tupleMembers.map(u).join(",")})`:fe(n)?((t=n.unionMembers)==null?void 0:t.map(u).join(" | "))||"unknown":ce(n)?((i=n.intersectionMembers)==null?void 0:i.map(u).join(" & "))||"unknown":se(n)?n.literalValue:$e(n)?`{ [${(r=n.index.keyType)!=null?r:"string"}]: ${((s=n.index.valueType)==null?void 0:s.name)||"unknown"} }`:n.name||"unknown"}o(u,"getTypeDisplayName");var Ae=class Ae{constructor(e){var t;this.name=e.name,this.members=new Map,e.members.forEach(i=>{let r=i.initializer===void 0?{name:"number"}:{literalValue:i.initializer};this.members.set(i.name,r)}),this.fromLib=(t=e.fromLib)!=null?t:!1}get type(){return{name:this.name,unionMembers:Array.from(this.members.values()),fromLib:this.fromLib}}get names(){return Array.from(this.members.keys())}};o(Ae,"EnumDefinition");var pe=Ae,ke=new Map;function U(n){var e,t;if(!ke.has(n)){let i=(t=(e=x())==null?void 0:e.enums)==null?void 0:t[n];if(!i)return;ke.set(n,new pe(i))}return ke.get(n)}o(U,"getEnumDefinition");function Tn(n){var e;return((e=U(n))==null?void 0:e.names)||[]}o(Tn,"getEnumNames");function Dn(n){let e=Object.entries(n)[0];if(!e)return[];let[t,i]=e,r=U(t);return r?r.names.map(s=>i[s]):Array.from(Object.keys(i))}o(Dn,"getEnumValues");var Se=new Map;function C(n){Se.set(n.name,n)}o(C,"registerSpecialType");function Xe(n){return Se.has(n)}o(Xe,"isSpecialType");function je(n,...e){let t=Se.get(n);if(!t)return;let i=t.getType(...e);return i?{name:n,type:i,genericParams:t.genericParams,fromLib:!!t.fromLib}:void 0}o(je,"getSpecialTypeAlias");C({name:"Partial",genericParams:["T"],fromLib:!0,getType(...n){let e=n[0];return e?H(e,t=>t.isOptional=!0):void 0}});C({name:"Required",genericParams:["T"],fromLib:!0,getType(...n){let e=n[0];return e!=null?e:H(e,t=>t.isOptional=!1)}});C({name:"Readonly",genericParams:["T"],fromLib:!0,getType(...n){let e=n[0];return H(e,t=>t.isReadonly=!0)}});C({name:"Record",genericParams:["K","T"],fromLib:!0,getType(...n){let[e,t]=n;return{index:{keyType:e!=null?e:b,valueType:t!=null?t:b}}}});C({name:"Pick",genericParams:["T","K"],fromLib:!0,getType(...n){var r;let[e,t]=n;if(!t||!e)return;let i=(r=t.unionMembers)==null?void 0:r.map(s=>s.name);if(e.typeLiteralMembers)return me(e,s=>{var a;return(a=s.name===t.literalValue||(i==null?void 0:i.includes(s.name)))!=null?a:!1})}});C({name:"Omit",genericParams:["T","K"],fromLib:!0,getType(...n){var r;let[e,t]=n;if(!t||!e)return;let i=(r=t.unionMembers)==null?void 0:r.map(s=>s.name);if(e.typeLiteralMembers)return me(e,s=>!(s.name===t.literalValue||i!=null&&i.includes(s.name)))}});C({name:"Extract",genericParams:["T","U"],fromLib:!0,getType(...n){let[e,t]=n;if(!(!e||!t)&&e.typeLiteralMembers&&t.typeLiteralMembers){let i={unionMembers:t.typeLiteralMembers.map(r=>({literalValue:r.name}))};return bn(e,i)}}});C({name:"Exclude",genericParams:["T","U"],fromLib:!0,getType(...n){let[e,t]=n;if(!(!e||!t)&&e.typeLiteralMembers&&t.typeLiteralMembers){let i={unionMembers:t.typeLiteralMembers.map(r=>({literalValue:r.name}))};return gn(e,i)}}});C({name:"ReflectReference",genericParams:["T","R"],getType(...n){let[e,t]=n;if(e)return{typeDef:e,reflectReference:t}}});function H(n,e){return n.typeLiteralMembers?{typeLiteralMembers:n.typeLiteralMembers.map(t=>Ye(t,e))}:n.unionMembers?{unionMembers:n.unionMembers.map(t=>H(t,e)).filter(t=>t!==void 0)}:n.intersectionMembers?{intersectionMembers:n.intersectionMembers.map(t=>H(t,e)).filter(t=>t!==void 0)}:void 0}o(H,"getMappedType");function me(n,e){if(n.typeLiteralMembers)return{typeLiteralMembers:n.typeLiteralMembers.map(t=>e(t)?Ye(t):void 0).filter(t=>!!t)}}o(me,"getFilterKeyType");function bn(n,e){var i;if(!e)return;let t=(i=e.unionMembers)==null?void 0:i.map(r=>r.name);if(n.typeLiteralMembers)return me(n,r=>{var s;return(s=r.name===e.literalValue||(t==null?void 0:t.includes(r.name)))!=null?s:!1})}o(bn,"getPickType");function gn(n,e){var i;if(!e)return;let t=(i=e.unionMembers)==null?void 0:i.map(r=>r.name);if(n.typeLiteralMembers)return me(n,r=>!(r.name===e.literalValue||t!=null&&t.includes(r.name)))}o(gn,"getOmitType");function Ye(n,e){let t;return n instanceof w?t=new w({name:n.name,isReadonly:n.isReadOnly,isOptional:n.isOptional,isStatic:n.isStatic,accessor:n.accessor,type:n.rawType}):t={name:n.name,isOptional:n.isOptional,type:n.type},e==null||e(t),t}o(Ye,"copyPropertyDefinition");function ve(n,e){var r,s,a;if(Xe(n))return e?je(n,...e):je(n);if(!Ee.has(n)){let c=(s=(r=x())==null?void 0:r.typeAliases)==null?void 0:s[n];if(!c||!c.type)return;Ee.set(n,{name:n,type:c.type,genericParams:c.genericParams,fromLib:c.fromLib})}let t=Ee.get(n);if(!t)return;let i;if(t.genericParams&&e){let c={};for(let f=0;f<t.genericParams.length;f++){let m=t.genericParams[f];c[m]=e[f]}i=y(t.type,c,e)}else i=y(t.type);return{name:t.name,type:i,genericParams:t.genericParams,fromLib:(a=t.fromLib)!=null?a:!1}}o(ve,"getTypeAliasDefinition");var Ee=new Map;var b={name:"any"},hn={name:"null"},Mn={name:"undefined"};function Qe(n){return!!(n.name&&["any","void","unknown"].includes(n.name))}o(Qe,"isIgnoredType");function Le(n){return!!(n.name&&De.includes(n.name))}o(Le,"isPrimitiveType");function oe(n){return!!n.arrayElementType}o(oe,"isArrayType");function se(n){return!!n.literalValue}o(se,"isLiteralType");function ae(n){return!!n.typeLiteralMembers}o(ae,"isTypeLiteralType");function fe(n){return!!n.unionMembers}o(fe,"isUnionType");function ce(n){return!!n.intersectionMembers}o(ce,"isIntersectionType");function le(n){return!!n.tupleMembers}o(le,"isTupleType");function ue(n){return!!n.classDefinition}o(ue,"isClassDefinition");function wn(n){return!!n.generics}o(wn,"hasGenerics");function $e(n){return!!n.index}o($e,"isIndexType");function P(n,e){if(n==="any"||n==="Any"||n==="unknown"||n==="")return b;if(n==="null")return hn;if(n==="undefined")return Mn;if(n==="Function")return{isFunction:!0};let t=d(n);if(t)return e?E.create(t,e).type:t.type;if(De.includes(n))return{name:n};if(Oe.map(a=>a.name).includes(n))return{name:n,generics:e};let i=v(n);if(i)return i.fromLib?{name:n,generics:e}:e?ne.create(i,e).type:i.type;let r=U(n);if(r)return r.type;let s=ve(n,e);return s?s.type:b}o(P,"getTypeDefinition");var Ve=new Map;function y(n,e,t){let i=Ne(n);if(n===void 0)return b;let r=Ve.get(i);if(r)return r;let s={};if(Ve.set(i,s),typeof n=="string")s=(e==null?void 0:e[n])||P(n,t)||b;else if(n.arrayElementType)Object.assign(s,{arrayElementType:y(n.arrayElementType,e)});else if(n.unionMembers)Object.assign(s,{unionMembers:n.unionMembers.map(a=>y(a,e))});else if(n.intersectionMembers)Object.assign(s,{intersectionMembers:n.intersectionMembers.map(a=>y(a,e))});else if(n.tupleMembers)Object.assign(s,{tupleMembers:n.tupleMembers.map(a=>y(a,e))});else if(n.typeLiteralMembers)s.typeLiteralMembers=n.typeLiteralMembers.map(a=>({name:a.name,isOptional:!!a.isOptional,type:y(a.type,e,t)}));else if(n.generics){let a=n.generics[0],c=n.generics.slice(1).map(f=>y(f,e));Object.assign(s,y(a,e,c))}else n.index&&Object.assign(s,{index:{keyType:n.index.keyType?y(n.index.keyType,e):void 0,valueType:y(n.index.valueType,e)}});return Object.keys(s).length===0&&(s=b),Ve.delete(i),s}o(y,"fillType");function Ne(n){return n===null?"null":n===void 0?"undefined":typeof n!="object"?JSON.stringify(n):Array.isArray(n)?"["+n.map(Ne).join(",")+"]":"{"+Object.keys(n).sort().map(t=>JSON.stringify(t)+":"+Ne(n[t])).join(",")+"}"}o(Ne,"stableStringify");var W={isPrimitiveType:Le,isArrayType:oe,isLiteralType:se,isTypeLiteralType:ae,isUnionType:fe,isIntersectionType:ce,isTupleType:le,isClassDefinition:ue,hasGenerics:wn};function h(n){if(typeof n=="string"){let e=xn(n);if(typeof e=="string"){let t=e.match(/"(.+)"$/)||e.match(/'(.+)'$/);if(t!=null&&t[1])return{literalValue:t[1]}}return typeof e=="string"?P(n):h(e)}return"array"in n?{arrayElementType:h(n.array)}:"union"in n?{unionMembers:n.union.map(h)}:"intersection"in n?{intersectionMembers:n.intersection.map(h)}:"tuple"in n?{tupleMembers:n.tuple.map(h)}:"generic"in n?P(n.name,n.generic.map(h)):n}o(h,"getTypeDef");function Ut(n,e,t=5){let i=D(n,h(e),t);return i.success||S.validationErrorHandler(new O(`assert failed with type: ${e}, ${i.errorStackFlow}`,i)),n}o(Ut,"assertType");function Ht(n){return Rn(null,n)}o(Ht,"isNullable");function Rn(n,e,t=5){return D(n,h(e),t).success}o(Rn,"isType");function xn(n){let e=0,t="%%",i={};function r(f){let m=`${t}${e++}`;return i[m]=f,m}o(r,"addPlaceholder");function s(f){let m=f.match(new RegExp(`^(${t}\\d)$`));if(!m)return;let T=m[1].trim(),g=i[T];return delete i[T],g}o(s,"getPlaceholder");function a(f,m,T,g){let M=0;for(;M<f.length;){let I=f.indexOf(m,M);if(I===-1)break;M=I+1;let $=f.indexOf(T,M);if($===-1)throw new Fe("Illegal type string");let z=f.substring(I+1,$),V=r(z);g?f=`${f.substring(0,I+1)}${V}${f.substring($)}`:f=`${f.substring(0,I)}${V}${f.substring($+1)}`}return f}o(a,"replaceBracket");function c(f){let m=f.trim(),T=o(L=>L.trim(),"trim"),g=o(L=>L.length!=0,"notEmpty");m=a(m,"(",")",!1),m=a(m,"<",">",!0);let M=s(m);if(M)return c(M);let I=m.split("|").map(T).filter(g);if(I.length>1)return{union:I.map(c)};let $=m.split("&").map(T).filter(g);if($.length>1)return{intersection:$.map(c)};let z=m.match(/^\[(.*)]$/);if(z)return{tuple:z[1].split(",").map(T).filter(g).map(c)};let V=m.match(/^(.+)\[]$/);if(V)return{array:c(V[1])};let de=m.match(/^([^<]+)<(.+)>$/);if(de){let L=de[1].trim(),Te=c(de[2]);if(typeof Te=="string"){let rn=Te.split(",").map(T).filter(g).map(c);return{name:L,generic:rn}}else return{name:L,generic:[Te]}}return m}return o(c,"parseTypeRecursive"),c(n)}o(xn,"parseType");var _e=class _e extends Error{};o(_e,"TypeParseError");var Fe=_e;function Ze(n,e,t=3){return e=e||n.constructor.name,Ie(n,h(e),t)}o(Ze,"validateInstance");function Xt(n,e,t=1){for(let i=0;i<n.length;i++){let r=Ze(n[i],e,t);if(!r.success)return l(220,`declared as instance of ${e}[] but [${i}] actually not`,{cause:r,value:n,type:e})}return p}o(Xt,"validateArray");function Yt(n,e,t=1){let i=Object.entries(n);for(let r=0;r<i.length;r++){let[s,a]=i[r],c=Ze(a,e,t);if(!c.success)return l(230,`declared as instance of Dictionary<${e}> but [${s}] actually not`,{cause:c,value:n,type:e})}return p}o(Yt,"validateDictionary");var en=Symbol("VALIDATE_WRAPPER"),si=o((n,e,t)=>Pn(n,e,t),"ReflectValidate");function Pn(n,e,t){let i=t.value;if(typeof i!="function"||F(i,en))return;let r=o(()=>{var f,m;return(m=(f=d(n))==null?void 0:f.methods)==null?void 0:m.find(T=>T.name===e)},"getMethodDef"),s=o(f=>nn(n,r(),f),"validateArgs"),a=o(f=>Cn(n,r(),f),"validateReturn"),c=o(function(...f){s(f);let m=i.call(this,...f);return a(m)},"newFunc");c[en]=i,t.value=c}o(Pn,"wrapValidateMethod");function nn(n,e,t){var i;(i=e==null?void 0:e.args)==null||i.forEach((r,s)=>{let a=t==null?void 0:t[s];if(a===void 0)if(!r.isOptional)S.validationErrorHandler(new O(`Illegal arguments for ${Je(n.constructor.name,e)}: ${r.name} is not optional`));else return;let c=D(a,r.type||b,1);c.success||(console.error("validateResult",c),S.validationErrorHandler(new O(`Illegal arguments for ${Je(n.constructor.name,e)}: ${r.name}: ${r.name} ${c.errorMessage}`)))})}o(nn,"validateMethodParams");function Cn(n,e,t){var s;if(!e)return t;let i=o((a,c)=>{let f=D(a,c,5);return f.success||(console.error(f.errorStackFlow),S.validationErrorHandler(new O(`result for ${Je(n.constructor.name,e)} doesn't match type ${c.name}:
|
|
4
|
+
${f.errorStackFlow}`))),a},"checkValue"),r=e.returnType;return r.name==="Promise"&&(r=((s=r.generics)==null?void 0:s[0])||b),t instanceof Promise?t.then(a=>i(a,r||b)):i(t,r||b)}o(Cn,"validateMethodReturnValue");function Je(n,e){var t;return`${n}.${e.name}(${(t=e.args)==null?void 0:t.map(i=>i.name).join(", ")})`}o(Je,"getMethodDescription");function ai(n,e,...t){let i=d(n);if(!i)return;let r=i.allMethods[e];if(r)return nn(n,r,t),F(n,e).apply(n,t)}o(ai,"safeCall");var Ge=class Ge{constructor(e){this.exceptionHandler=e!=null?e:console.error}parse(e,t){if(!t)return JSON.parse(e);let i=h(t),r=JSON.parse(e),s=this.convertJSONValue(r,i);return D(s,i).success||this.exceptionHandler(new ye(`jsonValue should be ${i.name}`)),s}convertJSONValue(e,t){switch(!0){case typeof e=="string":case typeof e=="number":case typeof e=="boolean":case e===null:return e;case e instanceof Array:return W.isArrayType(t)?e.map(i=>this.convertJSONValue(i,t)):W.isTupleType(t)?t.tupleMembers.map((i,r)=>this.convertJSONValue(e[r],i)):e;default:return W.isClassDefinition(t)?this.convertJSONObjectAsClassInstance(e,t.classDefinition):e}}convertJSONObjectAsClassInstance(e,t){if(!t.jsClass)return this.exceptionHandler(new ye(`class ${t.name} not reflected`)),e;let i=R(t.jsClass);return Object.assign(i,e),i}};o(Ge,"JSONTransfer");var tn=Ge,Be=class Be extends Error{};o(Be,"JSONError");var ye=Be;export{k as ClassDefinition,pe as EnumDefinition,A as InterfaceDefinition,ye as JSONError,tn as JSONTransfer,S as ReflectConfig,si as ReflectValidate,W as TypeDefinition,Fe as TypeParseError,O as ValidationError,Ut as assertType,l as failedResult,cn as getClassByName,d as getClassDefinition,U as getEnumDefinition,Tn as getEnumNames,Dn as getEnumValues,lt as getErrorTraceMessages,v as getInterfaceDefinition,ve as getTypeAliasDefinition,h as getTypeDef,Ht as isNullable,Rn as isType,C as registerSpecialType,ai as safeCall,p as successResult,Xt as validateArray,Yt as validateDictionary,Ze as validateInstance};
|
package/dist/esm/parser/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var q=(e,n,t)=>new Promise((s,l)=>{var r=m=>{try{a(t.next(m))}catch(b){l(b)}},D=m=>{try{a(t.throw(m))}catch(b){l(b)}},a=m=>m.done?s(m.value):Promise.resolve(m.value).then(r,D);a((t=t.apply(e,n)).next())});import H from"typescript";function R(e){return e||{}}var z=["string","number","boolean","bigint","symbol"];import i from"typescript";import*as M from"fs";import*as L from"process";import*as h from"path";import{pathToFileURL as de}from"url";var W={OUTPUT_LOG:!1},C=new Map,A=new Map,$=new Map,v=new Map,J=new Map,j=new Set,Z={[i.SyntaxKind.BooleanKeyword]:"boolean",[i.SyntaxKind.StringKeyword]:"string",[i.SyntaxKind.BigIntKeyword]:"bigint",[i.SyntaxKind.NumberKeyword]:"number",[i.SyntaxKind.SymbolKeyword]:"symbol",[i.SyntaxKind.VoidKeyword]:"void",[i.SyntaxKind.UndefinedKeyword]:"undefined",[i.SyntaxKind.UnknownKeyword]:"unknown",[i.SyntaxKind.AnyKeyword]:"any",[i.SyntaxKind.ObjectKeyword]:"object"},O="any",ie=["any","Promise","Date","Error","undefined","unknown","object","Map","Set"],se=["Mappable","EnableReflect"];[...z,...ie,...se].forEach(ce);se.forEach(e=>A.set(e,{name:e}));var _,ee=!1,I=Reflect;function Oe(e){return q(this,null,function*(){let{filePaths:n,exclude:t,sourceFolder:s,distFolder:l}=e;if(s=h.resolve(s||L.cwd()),l=h.resolve(l||L.cwd()),I.__meta!==void 0)return;let r={classes:R(),interfaces:R(),typeAliases:R(),constTypes:R(),enums:R()};n=ue(n);let D=n.map(a=>h.join(s,a));Q(D,t);for(let[a,m]of C)r.classes[a]=m;for(let[a,m]of A)r.interfaces[a]=m;for(let[a,m]of v)r.typeAliases[a]=m;for(let[a,m]of $)r.enums[a]=m;for(let[a,m]of J)r.constTypes[a]=m;I.__meta=btoa(JSON.stringify(r)),yield Promise.all(n.map(a=>re(a,l)))})}function re(e,n){return q(this,null,function*(){let t=h.resolve(n,e);if(!M.existsSync(t))return;if(M.statSync(t).isDirectory()){let a=M.readdirSync(t);yield Promise.all(a.map(m=>re(h.join(e,m),n)));return}if(!e.endsWith(".js"))return;let l=h.join(n,e),D=yield import(de(l).href);I.__classDef={},Object.values(D).forEach(a=>{typeof a=="function"&&I.__classDef&&(I.__classDef[a.name]=a)})})}function Q(e,n){if(e||(e=[L.cwd()]),e=ue(e),!ee){let t=ae(e,n),s=i.createProgram(t,{});_=s.getTypeChecker(),t=t.map(r=>ne(r)),s.getSourceFiles().filter(r=>t.includes(ne(r.fileName))||r.fileName.endsWith("/lib.es5.d.ts")).forEach(r=>{S(`parse file: ${r.fileName}`),oe(r,r.fileName.endsWith("/lib.es5.d.ts"))});for(let r of j.keys())!C.has(r)&&!A.has(r)&&!$.has(r)&&!v.has(r)&&!z.includes(r)&&!ie.includes(r)&&(S(`remove unknown typeName: ${r}`),j.delete(r));Array.from(C.values()).forEach(be),Array.from(A.values()).forEach(xe),[C,A,v].forEach(Pe),ee=!0}return{classDefinitions:C,interfaceDefinitions:A,enumDefinitions:$,typeAliasDefinitions:v,constTypeDefinitions:J}}function ae(e,n){let t=[];return e.forEach(s=>{if(s=h.resolve(s),Ee(s,n)){S(`ignore excluded ${s}`);return}if(!M.existsSync(s)){console.error(`Path ${s} does not exist.`);return}if(M.statSync(s).isFile()){t.push(s);return}M.readdirSync(s).forEach(D=>t.push(...ae([h.join(s,D)],n)))}),t}function oe(e,n){i.isClassDeclaration(e)?ye(e,n):i.isInterfaceDeclaration(e)?ge(e,n):i.isEnumDeclaration(e)?De(e,n):i.isTypeAliasDeclaration(e)?we(e,n):i.isConstTypeReference(e)?Te(e):e.forEachChild(t=>oe(t,n))}function ye(e,n){var b,N,x,K,P,u,w,F,d,g,p,T,U,X,Y;let t=c(e.name);if(!t)return;let s=c((x=(N=(b=e.heritageClauses)==null?void 0:b.find(o=>o.token===i.SyntaxKind.ExtendsKeyword))==null?void 0:N.types)==null?void 0:x[0].expression),l=(P=(K=e.heritageClauses)==null?void 0:K.find(o=>o.token===i.SyntaxKind.ImplementsKeyword))==null?void 0:P.types.map(o=>c(o.expression)),r=[],D=[],a;for(let o of e.members)if(i.isPropertyDeclaration(o))r.push({name:c(o.name),isOptional:o.questionToken!==void 0,type:y(o),isPrivate:(u=o.modifiers)==null?void 0:u.some(f=>f.kind===i.SyntaxKind.PrivateKeyword),isStatic:(w=o.modifiers)==null?void 0:w.some(f=>f.kind===i.SyntaxKind.StaticKeyword),isReadonly:(F=o.modifiers)==null?void 0:F.some(f=>f.kind===i.SyntaxKind.ReadonlyKeyword)});else if(i.isConstructorDeclaration(o))a={name:"constructor",isPrivate:(d=o.modifiers)==null?void 0:d.some(f=>f.kind===i.SyntaxKind.PrivateKeyword),args:o.parameters.map(f=>({name:c(f.name),type:y(f),isOptional:f.questionToken!==void 0})),isConstructor:!0};else if(i.isMethodDeclaration(o))D.push({name:c(o.name),returnType:y(o),isPrivate:(g=o.modifiers)==null?void 0:g.some(f=>f.kind===i.SyntaxKind.PrivateKeyword),isStatic:(p=o.modifiers)==null?void 0:p.some(f=>f.kind===i.SyntaxKind.StaticKeyword),isAsync:(T=o.modifiers)==null?void 0:T.some(f=>f.kind===i.SyntaxKind.AsyncKeyword),args:o.parameters.map(f=>({name:c(f.name),type:y(f),isOptional:f.questionToken!==void 0}))});else if(i.isGetAccessorDeclaration(o)){let f=r.find(k=>k.name===c(o.name));f||(f={name:c(o.name),isOptional:o.questionToken===void 0,type:y(o)},r.push(f)),f.accessor=f.accessor||{},f.accessor.getter={isPrivate:((U=o.modifiers)==null?void 0:U.some(k=>k.kind===i.SyntaxKind.PrivateKeyword))||!1},f.isPrivate=f.accessor.getter.isPrivate}else if(i.isSetAccessorDeclaration(o)){let f=r.find(k=>k.name===c(o.name));f||(f={name:c(o.name),isOptional:o.questionToken===void 0,type:y(o)},r.push(f)),f.accessor=f.accessor||{},f.accessor.setter={isPrivate:((X=o.modifiers)==null?void 0:X.some(k=>k.kind===i.SyntaxKind.PrivateKeyword))||!1}}let m={name:t,constructorMethod:a,superClassName:s,implementations:l,properties:r,methods:D,genericsParams:(Y=e.typeParameters)==null?void 0:Y.map(o=>c(o.name)),fromLib:n};S(`Define class: ${c(e.name)}`),C.set(t,m)}function ge(e,n){var m,b,N,x,K,P;let t=c(e.name);if(!t)return;let s=((b=(m=e.heritageClauses)==null?void 0:m.find(u=>u.token===i.SyntaxKind.ExtendsKeyword))==null?void 0:b.types.map(u=>c(u.expression)))||[],l=[],r=[],D;for(let u of e.members)i.isPropertySignature(u)?l.push({name:c(u.name),isOptional:u.questionToken!==void 0,type:y(u),isPrivate:((N=u.modifiers)==null?void 0:N.some(w=>w.kind===i.SyntaxKind.PrivateKeyword))||!1,isReadonly:((x=u.modifiers)==null?void 0:x.some(w=>w.kind===i.SyntaxKind.ReadonlyKeyword))||!1}):i.isMethodSignature(u)?r.push({name:u.name.text,returnType:y(u),isPrivate:((K=u.modifiers)==null?void 0:K.some(w=>w.kind===i.SyntaxKind.PrivateKeyword))||!1,args:u.parameters.map(w=>({name:c(w.name),type:y(w),isOptional:w.questionToken!==void 0}))}):i.isIndexSignatureDeclaration(u)&&(D=y(u));let a=A.get(t);a?(a.implementations=G(a.implementations||[],s),a.methods=G(a.methods||[],r,(u,w)=>u.name===w.name),a.properties=G(a.properties||[],l,(u,w)=>u.name===w.name),a.indexElementType=D,S(`Merge interface ${c(e.name)}`)):(a={name:t,implementations:s,methods:r,properties:l,indexElementType:D,genericsParams:(P=e.typeParameters)==null?void 0:P.map(u=>c(u.name)),fromLib:n},A.set(t,a),S(`Define interface ${c(e.name)}`))}function De(e,n){let t=c(e.name);t&&($.set(t,{name:t,members:e.members.map(s=>({name:c(s.name),initializer:c(s.initializer)})),fromLib:n}),S(`Define enum: ${c(e.name)}`))}function we(e,n){var r;S(`Define typeAlias: ${c(e.name)}`);let t=y(e),s=(r=e.typeParameters)==null?void 0:r.map(D=>c(D.name)),l=c(e.name);v.set(l,{name:l,type:t,genericParams:s,fromLib:n})}function Te(e){let n=e.parent.parent;i.isVariableDeclaration(n)&&n.initializer&&i.isAsExpression(n.initializer)&&J.set(c(n.name),fe(n.initializer.expression))}function fe(e){return i.isArrayLiteralExpression(e)?Re(e):i.isObjectLiteralExpression(e)?he(e):i.isNumericLiteral(e)?"number":i.isStringLiteral(e)?"string":i.isBigIntLiteral(e)?"bigint":[i.SyntaxKind.TrueKeyword,i.SyntaxKind.FalseKeyword].includes(e.kind)?"boolean":O}function Re(e){let n=[];return e.elements.forEach(t=>{if(i.isStringLiteral(t))return n.push(c(t))}),n.length===0?O:n.length===1?n[0]:{unionMembers:n}}function he(e){let n=[];return e.properties.map(t=>{i.isPropertyAssignment(t)?n.push({name:c(t.name),type:fe(t.initializer)}):S(`unsupported property: ${t.name}`)}),{typeLiteralMembers:n}}function ce(e){j.add(e)}function y(e,n=!1){if(e.type&&!n)return E(e.type);if(!_)return console.error("TypeChecker not initialized!"),O;let t=_.getTypeAtLocation(e),s=_.typeToTypeNode(t,void 0,void 0);return s?E("type"in s?s.type:s):O}function E(e){let n={};if(e===void 0)return O;if(i.isTypeReferenceNode(e))if(ce(c(e.typeName)),e.typeArguments)n.generics=[c(e.typeName),...e.typeArguments.map(t=>E(t))];else return c(e.typeName);else if(i.isFunctionTypeNode(e))n.isFunction=!0;else if(i.isConstructorTypeNode(e))n.isConstructor=!0;else{if(i.isTypeQueryNode(e))return y(e);if(i.isTypeLiteralNode(e)){let t=[];e.members.forEach(s=>{i.isPropertySignature(s)?t.push({name:c(s.name),isOptional:s.questionToken!==void 0,type:y(s)}):i.isIndexSignatureDeclaration(s)?n.indexElementType=y(s):t.push({name:c(s.name)||"",isOptional:s.questionToken!==void 0,type:E()})}),n.typeLiteralMembers=t}else if(i.isArrayTypeNode(e))n.arrayElementType=E(e.elementType);else if(i.isTupleTypeNode(e))n.tupleMembers=e.elements.map(E);else if(i.isOptionalTypeNode(e))Object.assign(n,y(e)),n.isOptionalInTuple=!0;else{if(i.isRestTypeNode(e))return y(e);if(i.isUnionTypeNode(e))n.unionMembers=e.types.map(E);else if(i.isIntersectionTypeNode(e))n.intersectionMembers=e.types.map(E);else{if(i.isConditionalTypeNode(e))return y(e);if(i.isInferTypeNode(e))return y(e);if(i.isParenthesizedTypeNode(e))return y(e);if(i.isThisTypeNode(e))return y(e);if(i.isTypeOperatorNode(e)&&e.operator===i.SyntaxKind.KeyOfKeyword)return y(e,!0);if(i.isIndexedAccessTypeNode(e))return y(e,!0);if(i.isMappedTypeNode(e))n.indexElementType=E(e.type);else if(i.isLiteralTypeNode(e))n.literalValue=c(e.literal);else{if(Object.keys(Z).includes(String(e.kind)))return Z[e.kind]||O;if(i.isNamedTupleMember(e))Object.assign(n,y(e));else return y(e,!0)}}}}return n}var G=(e,n,t)=>[...(e==null?void 0:e.filter(s=>!(n!=null&&n.some(l=>(t||(()=>l===s))(l,s)))))||[],...n||[]];function B(e,n){if(e!==void 0&&e!==O)return typeof e=="string"?j.has(e)||n!=null&&n.includes(e)?e:void 0:e}function be(e){var n,t;(n=e.methods)==null||n.forEach(s=>pe(s,e.genericsParams)),(t=e.properties)==null||t.forEach(s=>le(s,e.genericsParams))}function xe(e){var n,t;(n=e.methods)==null||n.forEach(s=>pe(s,e.genericsParams)),(t=e.properties)==null||t.forEach(s=>le(s,e.genericsParams))}function le(e,n){e.type=B(e.type,n)}function pe(e,n){var t;(t=e.args)==null||t.forEach(s=>s.type=B(s.type,n)),e.returnType=B(e.returnType,n)}function c(e){if(!e)return e;if(e.end<0)return e.text;try{let n=e;return i.isQualifiedName(n)?c(n.right):n.getText()}catch(n){return e.text}}function V(e){if(e==null||!(e instanceof Object))return;let n=e;Object.entries(n).forEach(t=>{let[s,l]=t;l===!1||l===void 0||l===null?delete n[s]:l instanceof Array?l.length===0?delete n[s]:l.forEach(V):V(l)})}function Pe(e){for(let n of e.values())V(n)}function Ee(e,n){return n?(n=n instanceof Array?n:[n],n.some(t=>(t instanceof RegExp||(t=new RegExp(t.replace(/\./g,"\\.").replace(/\*/g,".*"))),e.match(t)))):!1}function ne(e,n=L.cwd()){return te(e).replace(te(n)+"/","")}function te(e){let n=h.sep;return e.split(n).join("/")}function ue(e){return e instanceof Array?e:[e]}function S(e){W.OUTPUT_LOG&&console.log(e)}function me(e){let{sourcePaths:n,exclude:t,forEnabledClassOnly:s,outputLog:l}=e;if(l&&(W.OUTPUT_LOG=!0),!n)throw new Error("need provide source paths for reflect loader");l&&console.log(`sourcePaths: ${n}, exclude: ${t}, forEnabledClassOnly: ${s}`);let{classDefinitions:r,interfaceDefinitions:D,enumDefinitions:a,typeAliasDefinitions:m,constTypeDefinitions:b}=Q(n,t),N=[],x=[];function K(d){let g=[];return(()=>{let p=r.get(d);if(p){p.superClassName&&g.push(p.superClassName),g.push(...p.implementations||[]);return}let T=D.get(d);if(T){g.push(...T.implementations||[]);return}m.get(d)&&g.push(d)})(),g.flatMap(p=>[p,...K(p)])||[]}function P(d,g){return K(d.name).includes(g)}function u(d){if(H.isClassDeclaration(d)&&d.name!==void 0){let g=d.name.text,p=r.get(g);if(!g||!p||s&&!P(p,"EnableReflect"))return;x.push(`Reflect.registerClass?Reflect.registerClass({${g}}):(Reflect.__classDef=Object.assign(Reflect.__classDef||{},{${g}}))`);return}d.forEachChild(u)}function w(){let d={classes:R(),interfaces:R(),typeAliases:R(),constTypes:R(),enums:R()};return r.forEach((p,T)=>{s&&!P(p,"EnableReflect")||(d.classes[T]=p)}),D.forEach((p,T)=>{s&&!P(p,"EnableReflect")||(d.interfaces[T]=p)}),a.forEach((p,T)=>{d.enums[T]=p}),m.forEach((p,T)=>{d.typeAliases[T]=p}),b.forEach((p,T)=>{d.constTypes[T]=p}),`;Reflect.__meta='${btoa(JSON.stringify(d))}'`}return{outputAllMetas:w,transform:(d,g)=>{if(g.endsWith(".ts")&&!(typeof n=="string"?[n]:n).every(p=>!g.startsWith(p))){l&&console.log(`transform id: ${g}`);try{let p=H.createSourceFile(g,d,H.ScriptTarget.Latest,!1);return N.length=0,x.length=0,u(p),`${N.join(";")};${d};${x.join(";")}`}catch(p){console.error(`[reflect-parser-plugin] Error processing ${g}:`,p);return}}}}}var Se=process.cwd().replace(/\\/g,"/")+"/";function Fe(e){let n=me(e);return{name:"reflect-parser-plugin",enforce:"pre",transform:(t,s)=>(s=s.replace(Se,""),s===e.entry?`${n.outputAllMetas()}
|
|
2
|
-
${t}`:n.transform(t,s))}}export{W as DEBUG_CONFIG,Q as parseSource,me as reflectLoader,Fe as reflectParserPlugin,
|
|
1
|
+
var q=(e,n,t)=>new Promise((s,a)=>{var r=l=>{try{p(t.next(l))}catch(b){a(b)}},T=l=>{try{p(t.throw(l))}catch(b){a(b)}},p=l=>l.done?s(l.value):Promise.resolve(l.value).then(r,T);p((t=t.apply(e,n)).next())});import H from"typescript";function R(e){return e||{}}var z=["string","number","boolean","bigint","symbol"];import i from"typescript";import*as M from"fs";import*as _ from"process";import*as h from"path";import{pathToFileURL as de}from"url";var W={OUTPUT_LOG:!1},C=new Map,v=new Map,j=new Map,I=new Map,J=new Map,F=new Set,Z={[i.SyntaxKind.BooleanKeyword]:"boolean",[i.SyntaxKind.StringKeyword]:"string",[i.SyntaxKind.BigIntKeyword]:"bigint",[i.SyntaxKind.NumberKeyword]:"number",[i.SyntaxKind.SymbolKeyword]:"symbol",[i.SyntaxKind.VoidKeyword]:"void",[i.SyntaxKind.UndefinedKeyword]:"undefined",[i.SyntaxKind.UnknownKeyword]:"unknown",[i.SyntaxKind.AnyKeyword]:"any",[i.SyntaxKind.ObjectKeyword]:"object"},O="any",ie=["any","Promise","Date","Error","undefined","unknown","object","Map","Set"],se=["Mappable","EnableReflect","ReflectReference"];[...z,...ie,...se].forEach(ce);se.forEach(e=>I.set(e,{name:e,type:e}));var $,ee=!1,L=Reflect;function ve(e){return q(this,null,function*(){let{filePaths:n,exclude:t,sourceFolder:s,distFolder:a}=e;if(s=h.resolve(s||_.cwd()),a=h.resolve(a||_.cwd()),L.__meta!==void 0)return;let r={classes:R(),interfaces:R(),typeAliases:R(),constTypes:R(),enums:R()};n=ue(n);let T=n.map(p=>h.join(s,p));Q(T,t);for(let[p,l]of C)r.classes[p]=l;for(let[p,l]of v)r.interfaces[p]=l;for(let[p,l]of I)r.typeAliases[p]=l;for(let[p,l]of j)r.enums[p]=l;for(let[p,l]of J)r.constTypes[p]=l;L.__meta=btoa(JSON.stringify(r)),yield Promise.all(n.map(p=>re(p,a)))})}function re(e,n){return q(this,null,function*(){let t=h.resolve(n,e);if(!M.existsSync(t))return;if(M.statSync(t).isDirectory()){let p=M.readdirSync(t);yield Promise.all(p.map(l=>re(h.join(e,l),n)));return}if(!e.endsWith(".js"))return;let a=h.join(n,e),T=yield import(de(a).href);L.__classDef={},Object.values(T).forEach(p=>{typeof p=="function"&&L.__classDef&&(L.__classDef[p.name]=p)})})}function Q(e,n){if(e||(e=[_.cwd()]),e=ue(e),!ee){let t=ae(e,n),s=i.createProgram(t,{});$=s.getTypeChecker(),t=t.map(r=>ne(r)),s.getSourceFiles().filter(r=>t.includes(ne(r.fileName))||r.fileName.endsWith("/lib.es5.d.ts")).forEach(r=>{S(`parse file: ${r.fileName}`),oe(r,r.fileName.endsWith("/lib.es5.d.ts"))});for(let r of F.keys())!C.has(r)&&!v.has(r)&&!j.has(r)&&!I.has(r)&&!z.includes(r)&&!ie.includes(r)&&(S(`remove unknown typeName: ${r}`),F.delete(r));Array.from(C.values()).forEach(be),Array.from(v.values()).forEach(xe),[C,v,I].forEach(Pe),ee=!0}return{classDefinitions:C,interfaceDefinitions:v,enumDefinitions:j,typeAliasDefinitions:I,constTypeDefinitions:J}}function ae(e,n){let t=[];return e.forEach(s=>{if(s=h.resolve(s),Ee(s,n)){S(`ignore excluded ${s}`);return}if(!M.existsSync(s)){console.error(`Path ${s} does not exist.`);return}if(M.statSync(s).isFile()){t.push(s);return}M.readdirSync(s).forEach(T=>t.push(...ae([h.join(s,T)],n)))}),t}function oe(e,n){i.isClassDeclaration(e)?ye(e,n):i.isInterfaceDeclaration(e)?ge(e,n):i.isEnumDeclaration(e)?Te(e,n):i.isTypeAliasDeclaration(e)?De(e,n):i.isConstTypeReference(e)?we(e):e.forEachChild(t=>oe(t,n))}function ye(e,n){var b,K,P,N,E,k,m,D,y,g,u,w,U,X,Y;let t=c(e.name);if(!t)return;let s=c((P=(K=(b=e.heritageClauses)==null?void 0:b.find(o=>o.token===i.SyntaxKind.ExtendsKeyword))==null?void 0:K.types)==null?void 0:P[0].expression),a=(E=(N=e.heritageClauses)==null?void 0:N.find(o=>o.token===i.SyntaxKind.ImplementsKeyword))==null?void 0:E.types.map(o=>c(o.expression)),r=[],T=[],p;for(let o of e.members)if(i.isPropertyDeclaration(o))r.push({name:c(o.name),isOptional:o.questionToken!==void 0,type:d(o),isPrivate:(k=o.modifiers)==null?void 0:k.some(f=>f.kind===i.SyntaxKind.PrivateKeyword),isStatic:(m=o.modifiers)==null?void 0:m.some(f=>f.kind===i.SyntaxKind.StaticKeyword),isReadonly:(D=o.modifiers)==null?void 0:D.some(f=>f.kind===i.SyntaxKind.ReadonlyKeyword)});else if(i.isConstructorDeclaration(o))p={name:"constructor",isPrivate:(y=o.modifiers)==null?void 0:y.some(f=>f.kind===i.SyntaxKind.PrivateKeyword),args:o.parameters.map(f=>({name:c(f.name),type:d(f),isOptional:f.questionToken!==void 0})),isConstructor:!0};else if(i.isMethodDeclaration(o))T.push({name:c(o.name),returnType:d(o),isPrivate:(g=o.modifiers)==null?void 0:g.some(f=>f.kind===i.SyntaxKind.PrivateKeyword),isStatic:(u=o.modifiers)==null?void 0:u.some(f=>f.kind===i.SyntaxKind.StaticKeyword),isAsync:(w=o.modifiers)==null?void 0:w.some(f=>f.kind===i.SyntaxKind.AsyncKeyword),args:o.parameters.map(f=>({name:c(f.name),type:d(f),isOptional:f.questionToken!==void 0}))});else if(i.isGetAccessorDeclaration(o)){let f=r.find(A=>A.name===c(o.name));f||(f={name:c(o.name),isOptional:o.questionToken===void 0,type:d(o)},r.push(f)),f.accessor=f.accessor||{},f.accessor.getter={isPrivate:((U=o.modifiers)==null?void 0:U.some(A=>A.kind===i.SyntaxKind.PrivateKeyword))||!1},f.isPrivate=f.accessor.getter.isPrivate}else if(i.isSetAccessorDeclaration(o)){let f=r.find(A=>A.name===c(o.name));f||(f={name:c(o.name),isOptional:o.questionToken===void 0,type:d(o)},r.push(f)),f.accessor=f.accessor||{},f.accessor.setter={isPrivate:((X=o.modifiers)==null?void 0:X.some(A=>A.kind===i.SyntaxKind.PrivateKeyword))||!1}}let l={name:t,constructorMethod:p,superClassName:s,implementations:a,properties:r,methods:T,genericsParams:(Y=e.typeParameters)==null?void 0:Y.map(o=>c(o.name)),fromLib:n};S(`Define class: ${c(e.name)}`),C.set(t,l)}function ge(e,n){var b,K,P,N,E,k;let t=c(e.name);if(!t)return;let s=((K=(b=e.heritageClauses)==null?void 0:b.find(m=>m.token===i.SyntaxKind.ExtendsKeyword))==null?void 0:K.types.map(m=>c(m.expression)))||[],a=[],r=[],T,p;for(let m of e.members)i.isPropertySignature(m)?a.push({name:c(m.name),isOptional:m.questionToken!==void 0,type:d(m),isPrivate:((P=m.modifiers)==null?void 0:P.some(D=>D.kind===i.SyntaxKind.PrivateKeyword))||!1,isReadonly:((N=m.modifiers)==null?void 0:N.some(D=>D.kind===i.SyntaxKind.ReadonlyKeyword))||!1}):i.isMethodSignature(m)?r.push({name:m.name.text,returnType:d(m),isPrivate:((E=m.modifiers)==null?void 0:E.some(D=>D.kind===i.SyntaxKind.PrivateKeyword))||!1,args:m.parameters.map(D=>({name:c(D.name),type:d(D),isOptional:D.questionToken!==void 0}))}):i.isIndexSignatureDeclaration(m)&&(m.parameters[0]&&(T=d(m.parameters[0])),p=d(m));let l=v.get(t);l?(l.implementations=G(l.implementations||[],s),l.methods=G(l.methods||[],r,(m,D)=>m.name===D.name),l.properties=G(l.properties||[],a,(m,D)=>m.name===D.name),p&&(l.index={keyType:T,valueType:p}),S(`Merge interface ${c(e.name)}`)):(l={name:t,implementations:s,methods:r,properties:a,index:p?{keyType:T,valueType:p}:void 0,genericsParams:(k=e.typeParameters)==null?void 0:k.map(m=>c(m.name)),fromLib:n},v.set(t,l),S(`Define interface ${c(e.name)}`))}function Te(e,n){let t=c(e.name);t&&(j.set(t,{name:t,members:e.members.map(s=>({name:c(s.name),initializer:c(s.initializer)})),fromLib:n}),S(`Define enum: ${c(e.name)}`))}function De(e,n){var r;S(`Define typeAlias: ${c(e.name)}`);let t=d(e),s=(r=e.typeParameters)==null?void 0:r.map(T=>c(T.name)),a=c(e.name);I.set(a,{name:a,type:t,genericParams:s,fromLib:n})}function we(e){let n=e.parent.parent;i.isVariableDeclaration(n)&&n.initializer&&i.isAsExpression(n.initializer)&&J.set(c(n.name),fe(n.initializer.expression))}function fe(e){return i.isArrayLiteralExpression(e)?Re(e):i.isObjectLiteralExpression(e)?he(e):i.isNumericLiteral(e)?"number":i.isStringLiteral(e)?"string":i.isBigIntLiteral(e)?"bigint":[i.SyntaxKind.TrueKeyword,i.SyntaxKind.FalseKeyword].includes(e.kind)?"boolean":O}function Re(e){let n=[];return e.elements.forEach(t=>{if(i.isStringLiteral(t))return n.push(c(t))}),n.length===0?O:n.length===1?n[0]:{unionMembers:n}}function he(e){let n=[];return e.properties.map(t=>{i.isPropertyAssignment(t)?n.push({name:c(t.name),type:fe(t.initializer)}):S(`unsupported property: ${t.name}`)}),{typeLiteralMembers:n}}function ce(e){F.add(e)}function d(e,n=!1){if(e.type&&!n)return x(e.type);if(!$)return console.error("TypeChecker not initialized!"),O;let t=$.getTypeAtLocation(e),s=$.typeToTypeNode(t,void 0,void 0);return s?x("type"in s?s.type:s):O}function x(e){let n={};if(e===void 0)return O;if(i.isTypeReferenceNode(e))if(ce(c(e.typeName)),e.typeArguments)n.generics=[c(e.typeName),...e.typeArguments.map(t=>x(t))];else return c(e.typeName);else if(i.isFunctionTypeNode(e))n.isFunction=!0;else if(i.isConstructorTypeNode(e))n.isConstructor=!0;else{if(i.isTypeQueryNode(e))return d(e);if(i.isTypeLiteralNode(e)){let t=[];e.members.forEach(s=>{var a,r;i.isPropertySignature(s)?t.push({name:c(s.name),isOptional:s.questionToken!==void 0,type:d(s)}):i.isIndexSignatureDeclaration(s)?n.index={keyType:(a=s.parameters)!=null&&a[0].type?d((r=s.parameters)==null?void 0:r[0]):void 0,valueType:d(s)}:t.push({name:c(s.name)||"",isOptional:s.questionToken!==void 0,type:x()})}),n.typeLiteralMembers=t}else if(i.isArrayTypeNode(e))n.arrayElementType=x(e.elementType);else if(i.isTupleTypeNode(e))n.tupleMembers=e.elements.map(x);else if(i.isOptionalTypeNode(e))Object.assign(n,d(e)),n.isOptionalInTuple=!0;else{if(i.isRestTypeNode(e))return d(e);if(i.isUnionTypeNode(e))n.unionMembers=e.types.map(x);else if(i.isIntersectionTypeNode(e))n.intersectionMembers=e.types.map(x);else{if(i.isConditionalTypeNode(e))return d(e);if(i.isInferTypeNode(e))return d(e);if(i.isParenthesizedTypeNode(e))return d(e);if(i.isThisTypeNode(e))return d(e);if(i.isTypeOperatorNode(e)&&e.operator===i.SyntaxKind.KeyOfKeyword)return d(e,!0);if(i.isIndexedAccessTypeNode(e))return d(e,!0);if(i.isMappedTypeNode(e))n.index={keyType:x(e.typeParameter.constraint),valueType:x(e.type)};else if(i.isLiteralTypeNode(e))n.literalValue=c(e.literal);else{if(Object.keys(Z).includes(String(e.kind)))return Z[e.kind]||O;if(i.isNamedTupleMember(e))Object.assign(n,d(e));else return d(e,!0)}}}}return n}var G=(e,n,t)=>[...(e==null?void 0:e.filter(s=>!(n!=null&&n.some(a=>(t||(()=>a===s))(a,s)))))||[],...n||[]];function V(e,n){if(e!==void 0&&e!==O)return typeof e=="string"?F.has(e)||n!=null&&n.includes(e)?e:void 0:e}function be(e){var n,t;(n=e.methods)==null||n.forEach(s=>pe(s,e.genericsParams)),(t=e.properties)==null||t.forEach(s=>le(s,e.genericsParams))}function xe(e){var n,t;(n=e.methods)==null||n.forEach(s=>pe(s,e.genericsParams)),(t=e.properties)==null||t.forEach(s=>le(s,e.genericsParams))}function le(e,n){e.type=V(e.type,n)}function pe(e,n){var t;(t=e.args)==null||t.forEach(s=>s.type=V(s.type,n)),e.returnType=V(e.returnType,n)}function c(e){if(!e)return e;if(e.end<0)return e.text;try{let n=e;return i.isQualifiedName(n)?c(n.right):n.getText()}catch(n){return e.text}}function B(e){if(e==null||!(e instanceof Object))return;let n=e;Object.entries(n).forEach(t=>{let[s,a]=t;a===!1||a===void 0||a===null?delete n[s]:a instanceof Array?a.length===0?delete n[s]:a.forEach(B):B(a)})}function Pe(e){for(let n of e.values())B(n)}function Ee(e,n){return n?(n=n instanceof Array?n:[n],n.some(t=>(t instanceof RegExp||(t=new RegExp(t.replace(/\./g,"\\.").replace(/\*/g,".*"))),e.match(t)))):!1}function ne(e,n=_.cwd()){return te(e).replace(te(n)+"/","")}function te(e){let n=h.sep;return e.split(n).join("/")}function ue(e){return e instanceof Array?e:[e]}function S(e){W.OUTPUT_LOG&&console.log(e)}function me(e){let{sourcePaths:n,exclude:t,forEnabledClassOnly:s,outputLog:a}=e;if(a&&(W.OUTPUT_LOG=!0),!n)throw new Error("need provide source paths for reflect loader");a&&console.log(`sourcePaths: ${n}, exclude: ${t}, forEnabledClassOnly: ${s}`);let{classDefinitions:r,interfaceDefinitions:T,enumDefinitions:p,typeAliasDefinitions:l,constTypeDefinitions:b}=Q(n,t),K=[],P=[];function N(y){let g=[];return(()=>{let u=r.get(y);if(u){u.superClassName&&g.push(u.superClassName),g.push(...u.implementations||[]);return}let w=T.get(y);if(w){g.push(...w.implementations||[]);return}l.get(y)&&g.push(y)})(),g.flatMap(u=>[u,...N(u)])||[]}function E(y,g){return N(y.name).includes(g)}function k(y){if(H.isClassDeclaration(y)&&y.name!==void 0){let g=y.name.text,u=r.get(g);if(!g||!u||s&&!E(u,"EnableReflect"))return;P.push(`Reflect.registerClass?Reflect.registerClass({${g}}):(Reflect.__classDef=Object.assign(Reflect.__classDef||{},{${g}}))`);return}y.forEachChild(k)}function m(){let y={classes:R(),interfaces:R(),typeAliases:R(),constTypes:R(),enums:R()};return r.forEach((u,w)=>{s&&!E(u,"EnableReflect")||(y.classes[w]=u)}),T.forEach((u,w)=>{s&&!E(u,"EnableReflect")||(y.interfaces[w]=u)}),p.forEach((u,w)=>{y.enums[w]=u}),l.forEach((u,w)=>{y.typeAliases[w]=u}),b.forEach((u,w)=>{y.constTypes[w]=u}),`;Reflect.__meta='${btoa(JSON.stringify(y))}'`}return{outputAllMetas:m,transform:(y,g)=>{if(g.endsWith(".ts")&&!(typeof n=="string"?[n]:n).every(u=>!g.startsWith(u))){a&&console.log(`transform id: ${g}`);try{let u=H.createSourceFile(g,y,H.ScriptTarget.Latest,!1);return K.length=0,P.length=0,k(u),`${K.join(";")};${y};${P.join(";")}`}catch(u){console.error(`[reflect-parser-plugin] Error processing ${g}:`,u);return}}}}}var Se=process.cwd().replace(/\\/g,"/")+"/";function Fe(e){let n=me(e);return{name:"reflect-parser-plugin",enforce:"pre",transform:(t,s)=>(s=s.replace(Se,""),s===e.entry?`${n.outputAllMetas()}
|
|
2
|
+
${t}`:n.transform(t,s))}}export{W as DEBUG_CONFIG,Q as parseSource,me as reflectLoader,Fe as reflectParserPlugin,ve as setupReflectTypes,re as updateReflectModules};
|
package/package.json
CHANGED
package/types/raw.d.ts
CHANGED
|
@@ -13,7 +13,10 @@ export interface RawInterfaceDefinition {
|
|
|
13
13
|
implementations?: string[];
|
|
14
14
|
methods?: RawMethodDefinition[];
|
|
15
15
|
properties?: RawPropertyDefinition[];
|
|
16
|
-
|
|
16
|
+
index?: {
|
|
17
|
+
keyType?: RawTypeDef;
|
|
18
|
+
valueType: RawTypeDef;
|
|
19
|
+
};
|
|
17
20
|
genericsParams?: string[];
|
|
18
21
|
fromLib?: boolean;
|
|
19
22
|
}
|
|
@@ -63,7 +66,10 @@ export interface RawPropertyDefinition {
|
|
|
63
66
|
export type RawTypeDef = string | RawTypeDefinition;
|
|
64
67
|
export interface RawTypeDefinition {
|
|
65
68
|
arrayElementType?: RawTypeDef;
|
|
66
|
-
|
|
69
|
+
index?: {
|
|
70
|
+
keyType?: RawTypeDef;
|
|
71
|
+
valueType: RawTypeDef;
|
|
72
|
+
};
|
|
67
73
|
literalValue?: unknown;
|
|
68
74
|
typeLiteralMembers?: RawPropertyDefinition[];
|
|
69
75
|
unionMembers?: RawTypeDef[];
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Constructor, Dictionary, RawClassDefinition } from '../raw';
|
|
2
2
|
import type { GenericMethod, MethodDefinition } from './MethodDefinition';
|
|
3
|
-
import type { GenericProperty
|
|
3
|
+
import type { GenericProperty } from './PropertyDefinition';
|
|
4
|
+
import { PropertyDefinition } from './PropertyDefinition';
|
|
4
5
|
import { type Implementation } from './InterfaceDefinition';
|
|
5
6
|
import { type TypeDefinition } from './TypeDefinition';
|
|
6
7
|
export declare class ClassDefinition {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Dictionary, RawInterfaceDefinition } from '../raw';
|
|
2
2
|
import type { MethodDefinition } from './MethodDefinition';
|
|
3
|
-
import
|
|
3
|
+
import { PropertyDefinition } from './PropertyDefinition';
|
|
4
4
|
import { type TypeDefinition } from './TypeDefinition';
|
|
5
5
|
export type Implementation = InterfaceDefinition | TypeDefinition;
|
|
6
6
|
export declare class InterfaceDefinition {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { RawTypeDef } from '../raw';
|
|
1
2
|
import { type Dictionary, type RawPropertyDefinition } from '../raw';
|
|
2
3
|
import { type TypeDefinition } from './TypeDefinition';
|
|
3
4
|
type PropertyAccessor = {
|
|
@@ -8,19 +9,23 @@ type PropertyAccessor = {
|
|
|
8
9
|
isPrivate: boolean;
|
|
9
10
|
};
|
|
10
11
|
};
|
|
11
|
-
export
|
|
12
|
-
|
|
12
|
+
export interface IPropertyDefinition {
|
|
13
|
+
readonly name: string;
|
|
14
|
+
readonly isOptional: boolean;
|
|
15
|
+
readonly type: TypeDefinition;
|
|
16
|
+
}
|
|
17
|
+
export declare class PropertyDefinition implements IPropertyDefinition {
|
|
18
|
+
readonly name: string;
|
|
19
|
+
readonly isReadOnly: boolean;
|
|
20
|
+
readonly isOptional: boolean;
|
|
21
|
+
readonly isPrivate: boolean;
|
|
22
|
+
readonly isStatic: boolean;
|
|
23
|
+
readonly accessor?: PropertyAccessor;
|
|
24
|
+
readonly rawType?: RawTypeDef;
|
|
13
25
|
constructor(def: RawPropertyDefinition);
|
|
14
|
-
get name(): string;
|
|
15
|
-
get isReadonly(): boolean;
|
|
16
|
-
get isOptional(): boolean;
|
|
17
|
-
get isPrivate(): boolean;
|
|
18
|
-
get isStatic(): boolean;
|
|
19
|
-
get accessor(): PropertyAccessor | undefined;
|
|
20
26
|
get type(): TypeDefinition;
|
|
21
|
-
|
|
27
|
+
static from(rawProperty: RawPropertyDefinition): PropertyDefinition;
|
|
22
28
|
}
|
|
23
|
-
export declare function fillProperty(rawProperty: RawPropertyDefinition): PropertyDefinition;
|
|
24
29
|
export declare class GenericProperty extends PropertyDefinition {
|
|
25
30
|
genericContext: Dictionary<TypeDefinition>;
|
|
26
31
|
static create(proto: PropertyDefinition, genericContext: Dictionary<TypeDefinition>): GenericProperty;
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import type { Dictionary, RawTypeDefinition } from '../raw';
|
|
2
2
|
import { type ClassDefinition } from './ClassDefinition';
|
|
3
3
|
import type { PropertyDefinition } from './PropertyDefinition';
|
|
4
|
+
import { type IPropertyDefinition } from './PropertyDefinition';
|
|
4
5
|
export declare const anyType: {
|
|
5
6
|
name: string;
|
|
6
7
|
};
|
|
7
8
|
export declare const nullType: {
|
|
8
9
|
name: string;
|
|
9
10
|
};
|
|
11
|
+
export declare const undefinedType: {
|
|
12
|
+
name: string;
|
|
13
|
+
};
|
|
10
14
|
export interface TypeDefinition {
|
|
11
15
|
name?: string;
|
|
12
16
|
arrayElementType?: TypeDefinition;
|
|
13
17
|
literalValue?: string;
|
|
14
|
-
typeLiteralMembers?:
|
|
18
|
+
typeLiteralMembers?: IPropertyDefinition[];
|
|
15
19
|
unionMembers?: TypeDefinition[];
|
|
16
20
|
intersectionMembers?: TypeDefinition[];
|
|
17
21
|
isFunction?: boolean;
|
|
@@ -19,9 +23,13 @@ export interface TypeDefinition {
|
|
|
19
23
|
isOptionalInTuple?: boolean;
|
|
20
24
|
isConstructor?: boolean;
|
|
21
25
|
generics?: TypeDefinition[];
|
|
22
|
-
|
|
26
|
+
index?: {
|
|
27
|
+
keyType?: TypeDefinition;
|
|
28
|
+
valueType: TypeDefinition;
|
|
29
|
+
};
|
|
23
30
|
classDefinition?: ClassDefinition;
|
|
24
31
|
fromLib?: boolean;
|
|
32
|
+
reflectReference?: TypeDefinition;
|
|
25
33
|
}
|
|
26
34
|
export declare function isIgnoredType(type: TypeDefinition): boolean;
|
|
27
35
|
export declare function isPrimitiveType(type: TypeDefinition): type is {
|
|
@@ -52,7 +60,10 @@ export declare function hasGenerics(type: TypeDefinition): type is {
|
|
|
52
60
|
generics: TypeDefinition[];
|
|
53
61
|
};
|
|
54
62
|
export declare function isIndexType(type: TypeDefinition): type is {
|
|
55
|
-
|
|
63
|
+
index: {
|
|
64
|
+
keyType?: TypeDefinition;
|
|
65
|
+
valueType: TypeDefinition;
|
|
66
|
+
};
|
|
56
67
|
};
|
|
57
68
|
export declare function getTypeDefinition(typeName: string, genericArgs?: TypeDefinition[]): TypeDefinition;
|
|
58
69
|
export declare function fillType(rawType: RawTypeDefinition | string | undefined, genericContext?: Dictionary<TypeDefinition>, genericArgs?: TypeDefinition[]): TypeDefinition;
|
|
@@ -3,4 +3,9 @@ export { getClassDefinition, getClassByName, ClassDefinition } from './ClassDefi
|
|
|
3
3
|
export { getInterfaceDefinition, InterfaceDefinition } from './InterfaceDefinition';
|
|
4
4
|
export { getTypeAliasDefinition, TypeAliasDefinition } from './TypeAliasDefinition';
|
|
5
5
|
export { getEnumDefinition, getEnumNames, getEnumValues, EnumDefinition } from './EnumDefinition';
|
|
6
|
+
export * from './json';
|
|
6
7
|
export * from './validates';
|
|
8
|
+
export { registerSpecialType } from './special-types';
|
|
9
|
+
export type ReflectReference<T, R> = T & {
|
|
10
|
+
__reflectReference?: R;
|
|
11
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { JSONString } from './types';
|
|
2
|
+
import { type Type } from '../validates';
|
|
3
|
+
export declare class JSONTransfer {
|
|
4
|
+
exceptionHandler: (error: JSONError) => void;
|
|
5
|
+
constructor(exceptionHandler?: (error: JSONError) => void);
|
|
6
|
+
parse<T = unknown>(jsonString: JSONString<T>, type?: Type): T;
|
|
7
|
+
private convertJSONValue;
|
|
8
|
+
private convertJSONObjectAsClassInstance;
|
|
9
|
+
}
|
|
10
|
+
export declare class JSONError extends Error {
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './JSONTransfer';
|
|
@@ -7,7 +7,7 @@ export type MethodArg = {
|
|
|
7
7
|
type: TypeDefinition;
|
|
8
8
|
isOptional: boolean;
|
|
9
9
|
};
|
|
10
|
-
export declare function createInstance<S, T extends S, A extends unknown[] = unknown[]>(constructor: Constructor<T, A>, proto
|
|
10
|
+
export declare function createInstance<S, T extends S, A extends unknown[] = unknown[]>(constructor: Constructor<T, A>, proto?: S): T;
|
|
11
11
|
export declare function buildPropertiesAndMethods(ret: GenericClass, proto: ClassDefinition): void;
|
|
12
12
|
export declare function buildPropertiesAndMethods(ret: GenericInterface, proto: InterfaceDefinition): void;
|
|
13
13
|
export declare function toDictionary<T, R>(arr: T[], handler: (item: T) => [string, R]): Dictionary<R>;
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import type { TypeDefinition } from './TypeDefinition';
|
|
2
|
-
import type { RawTypeDef } from '../raw';
|
|
3
2
|
import type { TypeAliasDefinition } from './TypeAliasDefinition';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
interface SpecialType {
|
|
4
|
+
name: string;
|
|
5
|
+
genericParams: string[];
|
|
6
|
+
fromLib?: boolean;
|
|
7
|
+
getType(...genericArgs: TypeDefinition[]): TypeDefinition | undefined;
|
|
8
|
+
}
|
|
9
|
+
export declare function registerSpecialType(type: SpecialType): void;
|
|
10
|
+
export declare function isSpecialType(typeName: string): boolean;
|
|
11
|
+
export declare function getSpecialTypeAlias(typeName: string, ...genericArgs: TypeDefinition[]): TypeAliasDefinition | undefined;
|
|
8
12
|
export {};
|
|
@@ -1,21 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
readonly
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import type { TypeDefinition } from '../TypeDefinition';
|
|
2
|
+
import type { Type } from './Type';
|
|
3
|
+
export type ValidateResult = SuccessResult | FailureResult;
|
|
4
|
+
declare class SuccessResult {
|
|
5
|
+
readonly success = true;
|
|
6
|
+
}
|
|
7
|
+
declare class FailureResult {
|
|
8
|
+
errorCode: number;
|
|
9
|
+
errorDesc: string;
|
|
10
|
+
readonly success = false;
|
|
11
|
+
readonly cause?: FailureResult;
|
|
12
|
+
readonly value?: unknown;
|
|
13
|
+
readonly type?: TypeDefinition | Type;
|
|
14
|
+
constructor(errorCode: number, errorDesc: string, detail: {
|
|
15
|
+
cause?: FailureResult;
|
|
16
|
+
value?: unknown;
|
|
17
|
+
type?: TypeDefinition | Type;
|
|
18
|
+
});
|
|
9
19
|
get errorStackFlow(): string;
|
|
10
20
|
get errorMessage(): string;
|
|
11
21
|
}
|
|
12
|
-
|
|
22
|
+
export declare const successResult: SuccessResult;
|
|
23
|
+
export declare const failedResult: (errorCode: number, errorDesc: string, detail: {
|
|
13
24
|
cause?: FailureResult;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
export declare const successResult: ValidateResult;
|
|
18
|
-
export declare const failedResult: typeof ValidateResult.failure;
|
|
25
|
+
value?: unknown;
|
|
26
|
+
type?: TypeDefinition | Type;
|
|
27
|
+
}) => FailureResult;
|
|
19
28
|
export declare function getErrorTraceMessages(failureResult: FailureResult): string;
|
|
20
29
|
export declare class ValidationError extends Error {
|
|
21
30
|
failureResult?: FailureResult;
|