ts-ref-kit 1.1.5 → 1.1.6
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 +5 -5
- package/dist/cjs/parser/index.cjs +1 -2
- package/dist/esm/index.js +5 -5
- package/dist/esm/parser/index.js +2 -3
- package/package.json +1 -1
- package/types/raw.d.ts +11 -5
- package/types/reflect-types/{assert-type.d.ts → Type.d.ts} +1 -1
- package/types/reflect-types/index.d.ts +2 -2
- package/types/reflect-types/instance-validate.d.ts +1 -1
- package/types/reflect-types/method-validate.d.ts +9 -0
- package/types/reflect-types/raw-meta.d.ts +2 -0
- package/types/reflect-types/reflect-context.d.ts +1 -2
- package/types/reflect-types/value-validate.d.ts +1 -2
- package/types/reflect-types/function-validate.d.ts +0 -17
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var
|
|
2
|
-
caused by: `):this.errorMessage}get errorMessage(){return`[Err${this.errorCode}] ${this.errorDesc}`}};o(
|
|
3
|
-
-> `)}o(Pe,"getErrorTraceMessages");var je=class je{constructor(t){this.rawDef=t}get name(){return this.rawDef.name}get isReadonly(){return this.rawDef.isReadonly}get isOptional(){return this.rawDef.isOptional}get isPrivate(){return this.rawDef.isPrivate}get isStatic(){return this.rawDef.isStatic}get accessor(){return this.rawDef.accessor}get type(){return d(this.rawDef.type)}get rawDefinition(){return P(this.rawDef)}};o(je,"PropertyDefinition");var E=je;function q(e){return new E(e)}o(q,"fillProperty");var Z=class Z extends E{static create(t,n){let i=w(Z,t);return i.genericContext=n,i}get type(){return d(this.rawDef.type,this.genericContext)}};o(Z,"GenericProperty");var U=Z;var Oe=class Oe{constructor(t){this.rawDef=t}get name(){return this.rawDef.name}get returnType(){return d(this.rawDef.returnType)}get args(){var t;return((t=this.rawDef.args)==null?void 0:t.map(n=>({name:n.name,type:d(n.type),isOptional:n.isOptional})))||[]}get isPrivate(){return this.rawDef.isPrivate}get isStatic(){return this.rawDef.isStatic}get isAsync(){return this.rawDef.isAsync}};o(Oe,"MethodDefinition");var Y=Oe;function X(e){return new Y(e)}o(X,"fillMethod");var H=class H extends Y{static create(t,n){let i=w(H,t);return i.genericContext=n,i}get args(){var t;return((t=this.rawDef.args)==null?void 0:t.map(n=>({name:n.name,type:d(n.type,this.genericContext),isOptional:n.isOptional})))||[]}get returnType(){return d(this.rawDef.returnType,this.genericContext)}};o(H,"GenericMethod");var Q=H;function w(e,t){let n=Object.create(e.prototype);return Object.assign(n,t),n}o(w,"createInstance");function ee(e,t){e.properties=t.properties.map(n=>U.create(n,e.genericContext)),e.methods=t.methods.map(n=>Q.create(n,e.genericContext))}o(ee,"buildPropertiesAndMethods");function Ce(e,t){let n={};return e.forEach(i=>{let[r,s]=t(i);n[r]=s}),n}o(Ce,"toDictionary");function te(e,t){return(e==null?void 0:e.map(t).filter(n=>n!==void 0))||[]}o(te,"mapNotNull");function I(e,t){if(e!==void 0)return e[t]}o(I,"getValue");function P(e){return JSON.parse(JSON.stringify(e))}o(P,"copy");var Ee=class Ee{constructor(t){this.name=t.name,this.members=new Map,t.members.forEach(n=>{let i=n.initializer===void 0?{name:"number"}:{literalValue:n.initializer};this.members.set(n.name,i)})}get type(){return{name:this.name,unionMembers:Array.from(this.members.values())}}get names(){return Array.from(this.members.keys())}};o(Ee,"EnumDefinition");var $=Ee;var jt=["Partial","Required","Readonly","Pick","Omit","Extract","Exclude"];function tt(e){return typeof e=="string"&&jt.includes(e)}o(tt,"isSpecialType");function Ot(e,t,n,i){switch(e){case"Partial":t=Ct(n);break;case"Required":t=Et(n);break;case"Readonly":t=It(n);break;case"Pick":t=rt(n,i);break;case"Omit":t=ot(n,i);break;case"Extract":t=Vt(n,i);break;case"Exclude":t=Nt(n,i);break}return t}o(Ot,"getSpecialType");function nt(e,t){let[n,i]=t,r,s=["Pick","Omit","Extract","Exclude"].includes(e)?["T"]:["T","K"];return r=Ot(e,r,n,i),r?{name:e,type:r,genericParams:s,rawType:e}:void 0}o(nt,"getSpecialTypeAlias");function F(e,t){return e.typeLiteralMembers?{typeLiteralMembers:e.typeLiteralMembers.map(n=>{let i=P(n.rawDefinition);return t(i),new E(i)})}:e.unionMembers?{unionMembers:e.unionMembers.map(n=>F(n,t))}:e.intersectionMembers?{intersectionMembers:e.intersectionMembers.map(n=>F(n,t))}:void 0}o(F,"getMappedType");function it(e,t){if(e.typeLiteralMembers)return{typeLiteralMembers:e.typeLiteralMembers.map(n=>t(n)?P(n):void 0).filter(n=>!!n)}}o(it,"getFilterKeyType");function Ct(e){return F(e,t=>t.isOptional=!0)}o(Ct,"getPartialType");function Et(e){return F(e,t=>t.isOptional=!1)}o(Et,"getRequiredType");function It(e){return F(e,t=>t.isReadonly=!0)}o(It,"getReadonlyType");function rt(e,t){var i;let n=(i=t.unionMembers)==null?void 0:i.map(r=>r.name);if(e.typeLiteralMembers)return it(e,r=>r.name===t.literalValue||(n==null?void 0:n.includes(r.name)))}o(rt,"getPickType");function ot(e,t){var i;let n=(i=t.unionMembers)==null?void 0:i.map(r=>r.name);if(e.typeLiteralMembers)return it(e,r=>!(r.name===t.literalValue||n!=null&&n.includes(r.name)))}o(ot,"getOmitType");function Vt(e,t){if(e.typeLiteralMembers&&t.typeLiteralMembers){let n={unionMembers:t.typeLiteralMembers.map(i=>({literalValue:i.name}))};return rt(e,n)}}o(Vt,"getExtractType");function Nt(e,t){if(e.typeLiteralMembers&&t.typeLiteralMembers){let n={unionMembers:t.typeLiteralMembers.map(i=>({literalValue:i.name}))};return ot(e,n)}}o(Nt,"getExcludeType");var _=new Map,ne=new Map,ie=new Map,re=new Map,Jt=new Map,At=o((e=>{Jt.set(e.name,e)}),"ReflectClass"),kt={string:String,number:Number,boolean:Boolean,object:Object},T=Reflect;function oe(e){var t;return((t=y(e))==null?void 0:t.jsClass)||kt[e]}o(oe,"getClassByName");function y(e){var t,n,i;switch(typeof e){case"object":return y(e.constructor);case"function":let r=y(e.name);if(r)return r;let s=Array.from(_.values()).find(l=>l.jsClass===e);if(s)return s;let a=(t=Object.entries(T.__classDef||{}).find(([l,u])=>u===e))==null?void 0:t[0];return a?y(a):void 0;case"string":let c=e;if(!_.has(c)){let l=(n=T.__classes)==null?void 0:n[c];if(!l)return;let u=(i=T.__classDef)==null?void 0:i[c];_.set(c,new V(Se(O({},l),{jsClass:u})))}return _.get(c)}}o(y,"getClassDefinition");function j(e){var t;if(!ne.has(e)){let n=(t=T.__interfaces)==null?void 0:t[e];if(!n)return;ne.set(e,new R(n))}return ne.get(e)}o(j,"getInterfaceDefinition");function v(e){var t;if(!ie.has(e)){let n=(t=T.__enums)==null?void 0:t[e];if(!n)return;ie.set(e,new $(n))}return ie.get(e)}o(v,"getEnumDefinition");function $t(e){var t;return((t=v(e))==null?void 0:t.names)||[]}o($t,"getEnumNames");function Ft(e){let t=Object.entries(e)[0];if(!t)return[];let[n,i]=t,r=v(n);return r?r.names.map(s=>i[s]):Array.from(Object.keys(i))}o(Ft,"getEnumValues");function Ie(e,t){var i;if(tt(e))return!t||!t[0]?void 0:nt(e,[t[0],t[1]]);if(!re.has(e)){let r=(i=T.__typeAliases)==null?void 0:i[e];if(!r||!r.type)return;re.set(e,{name:e,rawType:r.type,type:d(r.type),genericParams:r.genericParams})}let n=P(re.get(e));if(n.genericParams&&t){let r={};for(let s=0;s<n.genericParams.length;s++){let a=n.genericParams[s];r[a]=t[s]}n.type=d(n.rawType,r,t)}return n}o(Ie,"getTypeAliasDefinition");function _t(){T.__classes&&Object.entries(T.__classes).map(([e,t])=>{var i;let n=(i=T.__classDef)==null?void 0:i[e];n&&_.set(e,new V(Se(O({},t),{jsClass:n})))}),T.__interfaces&&Object.entries(T.__interfaces).map(([e,t])=>ne.set(e,new R(t))),T.__enums&&Object.entries(T.__enums).map(([e,t])=>ie.set(e,new $(t))),T.__typeAliases&&Object.entries(T.__typeAliases).map(([e,t])=>{re.set(e,{name:e,rawType:t.type,type:d(t.type),genericParams:t.genericParams})}),["__classDef","__classes","__interfaces","__enums","__typeAliases","initReflectContext"].forEach(e=>delete T[e])}o(_t,"initReflectContext");var ae=class ae{constructor(t){var n,i;this.name=t.name,this._implementationNames=t.implementations||[],this.methods=((n=t.methods)==null?void 0:n.map(X))||[],this.properties=((i=t.properties)==null?void 0:i.map(q))||[],this.generics=t.genericsParams}get implementations(){return this._implementations||(this._implementations=te(this._implementationNames,t=>{var n;return j(t)||((n=y(t))==null?void 0:n.type)||h(t)})),this._implementations}get allImplementations(){if(this._allImplementations===void 0){let t=new Set(this.implementations);this.implementations.forEach(n=>{n instanceof ae?n.allImplementations.forEach(i=>t.add(i)):t.add(n)}),this._allImplementations=Array.from(t)}return this._allImplementations}get type(){let t={};return this.allImplementations.forEach(n=>{let r=("type"in n?n.type:n).typeLiteralMembers;r==null||r.forEach(s=>t[s.name]=s)}),this.properties.forEach(n=>t[n.name]=n),{name:this.name,typeLiteralMembers:Object.values(t)}}toString(){return`interface ${this.name}`}};o(ae,"InterfaceDefinition");var R=ae,ce=class ce extends R{static create(t,n){let i=w(ce,t);i.genericArgs=n;let r=i;return r.buildGenericContext(),ee(r,t),r}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((n,i)=>this.genericContext[n]=this.genericArgs[i])}};o(ce,"GenericInterface");var se=ce;var Ve=class Ve{constructor(t){var n,i;this.name=t.name,this.superClassName=t.superClassName||"Object",this.superClass=y(this.superClassName),this._implementationNames=t.implementations||[],this.methods=((n=t.methods)==null?void 0:n.map(X))||[],this.properties=((i=t.properties)==null?void 0:i.map(q))||[],this.jsClass=t.jsClass,this.generics=t.genericsParams}get allMethods(){let t={};if(this.superClassName!=="Object"){let n=y(this.superClassName);n&&Object.assign(t,O({},n.allMethods))}return Object.assign(t,O({},Ce(this.methods,n=>[n.name,n]))),t}get allProperties(){var t;return Object.assign(((t=this.superClass)==null?void 0:t.allProperties)||{},Ce(this.properties,n=>[n.name,n]))}get implementations(){return this._implementations?this._implementations:te(this._implementationNames,t=>j(t)||h(t))}get allImplementations(){var t,n;if(this._allImplementations===void 0){let i=new Set(this.implementations);this.implementations.forEach(r=>{r instanceof R?r.allImplementations.forEach(s=>i.add(s)):i.add(r)}),(n=(t=this.superClass)==null?void 0:t.allImplementations)==null||n.forEach(r=>i.add(r)),this._allImplementations=Array.from(i)}return this._allImplementations}getProperty(t){return this.properties.find(n=>n.name===t)}get type(){var n,i;let t={};return(i=(n=this.superClass)==null?void 0:n.type.typeLiteralMembers)==null||i.forEach(r=>t[r.name]=r),this.properties.forEach(r=>t[r.name]=r),{name:this.name,classDefinition:this,typeLiteralMembers:Object.values(t)}}isSubClassOf(t){var n;return this.name===t||(n=this.superClass)!=null&&n.isSubClassOf(t)?!0:this.implementations.map(i=>i.name).includes(t)}isSuperClassOf(t){if(this.name===t)return!0;let n=y(t);return n?n.isSubClassOf(this.name):!1}toString(){return`class ${this.name}`}};o(Ve,"ClassDefinition");var V=Ve,fe=class fe extends V{static create(t,n){let i=w(fe,t);i.genericArgs=n;let r=i;return r.buildGenericContext(),ee(r,t),r}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((n,i)=>this.genericContext[n]=this.genericArgs[i])}};o(fe,"GenericClass");var le=fe;function D(e){if(typeof e=="string"){let t=Lt(e);if(typeof t=="string"){let n=t.match(/\"(.+)\"$/)||t.match(/\'(.+)\'$/);if(n!=null&&n[1])return{literalValue:n[1]}}return typeof t=="string"?h(e):D(t)}return Array.isArray(e)?h(e[0],e.slice(1).map(D)):"array"in e?{arrayElementType:D(e.array)}:"union"in e?{unionMembers:e.union.map(D)}:"intersection"in e?{intersectionMembers:e.intersection.map(D)}:"tuple"in e?{tupleMembers:e.tuple.map(D)}:e}o(D,"getTypeDef");function vt(e,t,n=5){let i=b(e,D(t),n);if(!i.success){console.error(`assert failed with type: ${t}
|
|
4
|
-
${i.errorStackFlow}`);debugger;throw new Error(`assert failed with type: ${t}, ${i.errorStackFlow}`)}return e}o(
|
|
5
|
-
${l.errorStackFlow}`);return a},"checkValue"),r=t.returnType;return r.name==="Promise"&&(r=((s=r.generics)==null?void 0:s[0])||
|
|
1
|
+
var N=Object.defineProperty,Mt=Object.defineProperties,xt=Object.getOwnPropertyDescriptor,wt=Object.getOwnPropertyDescriptors,Rt=Object.getOwnPropertyNames,Xe=Object.getOwnPropertySymbols;var tt=Object.prototype.hasOwnProperty,St=Object.prototype.propertyIsEnumerable;var et=(e,t,n)=>t in e?N(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,J=(e,t)=>{for(var n in t||(t={}))tt.call(t,n)&&et(e,n,t[n]);if(Xe)for(var n of Xe(t))St.call(t,n)&&et(e,n,t[n]);return e},nt=(e,t)=>Mt(e,wt(t)),o=(e,t)=>N(e,"name",{value:t,configurable:!0});var Pt=(e,t)=>{for(var n in t)N(e,n,{get:t[n],enumerable:!0})},Ot=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Rt(t))!tt.call(e,r)&&r!==n&&N(e,r,{get:()=>t[r],enumerable:!(i=xt(t,r))||i.enumerable});return e};var jt=e=>Ot(N({},"__esModule",{value:!0}),e);var Sn={};Pt(Sn,{AfterSerialized:()=>Tn,IgnoreSerialization:()=>fn,Lazy:()=>an,PropertyWrapper:()=>R,ReflectClass:()=>$t,ReflectValidate:()=>en,Serialized:()=>Tt,SerializedClass:()=>cn,SerializedName:()=>ln,TypeDefinition:()=>Te,ValidateResult:()=>A,asBoolean:()=>ve,asNumber:()=>be,asString:()=>E,assertType:()=>qt,callDecoratedMethod:()=>Ge,createInstance:()=>Be,defineDecoratedProperty:()=>_e,deserialize:()=>he,deserializeArray:()=>bt,deserializeFrom:()=>gt,done:()=>dn,failedResult:()=>f,getAnyValue:()=>B,getClassByName:()=>ie,getClassDefinition:()=>y,getDecoratedProperty:()=>yt,getDecoratedPropertyValue:()=>Ke,getEnumDefinition:()=>z,getEnumNames:()=>zt,getEnumValues:()=>vt,getErrorTraceMessages:()=>we,getInterfaceDefinition:()=>P,getOrSetValue:()=>on,getSerializeSettings:()=>pn,getTypeAliasDefinition:()=>Ee,getTypeDef:()=>g,hasDecoratedMethod:()=>sn,isDictionary:()=>Le,isNullable:()=>Yt,isType:()=>ut,itSelf:()=>ge,mapAllProperties:()=>bn,registerMappable:()=>xe,registerSerializedProperty:()=>G,safeCall:()=>rn,serialize:()=>un,serializeTo:()=>Ye,serializeToData:()=>De,setAnyValue:()=>M,setDefaultIgnored:()=>Ze,successResult:()=>p,validateArray:()=>Ht,validateDictionary:()=>Xt,validateInstance:()=>L});module.exports=jt(Sn);var j=class j{constructor(t,n,i,r){this.success=t;this.errorCode=n;this.errorDesc=i;this.cause=r}static failure(t,n,i){return new j(!1,t,n,i)}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(j,"ValidateResult"),j.success=new j(!0);var A=j,p=A.success,f=A.failure;function we(e){let t=o(n=>n.errorMessage?[n.errorMessage,...n.cause?t(n.cause):[]]:[],"getAllTraceMessages");return t(e).join(`
|
|
3
|
+
-> `)}o(we,"getErrorTraceMessages");var Re=class Re{constructor(t){this.rawDef=t}get name(){return this.rawDef.name}get isReadonly(){return this.rawDef.isReadonly}get isOptional(){return this.rawDef.isOptional}get isPrivate(){return this.rawDef.isPrivate}get isStatic(){return this.rawDef.isStatic}get accessor(){return this.rawDef.accessor}get type(){return d(this.rawDef.type)}get rawDefinition(){return h(this.rawDef)}};o(Re,"PropertyDefinition");var C=Re;function Z(e){return new C(e)}o(Z,"fillProperty");var U=class U extends C{static create(t,n){let i=w(U,t);return i.genericContext=n,i}get type(){return d(this.rawDef.type,this.genericContext)}};o(U,"GenericProperty");var W=U;var Se=class Se{constructor(t){this.rawDef=t}get name(){return this.rawDef.name}get returnType(){return d(this.rawDef.returnType)}get args(){var t;return((t=this.rawDef.args)==null?void 0:t.map(n=>({name:n.name,type:d(n.type),isOptional:n.isOptional})))||[]}get isPrivate(){return this.rawDef.isPrivate}get isStatic(){return this.rawDef.isStatic}get isAsync(){return this.rawDef.isAsync}};o(Se,"MethodDefinition");var q=Se;function H(e){return new q(e)}o(H,"fillMethod");var Q=class Q extends q{static create(t,n){let i=w(Q,t);return i.genericContext=n,i}get args(){var t;return((t=this.rawDef.args)==null?void 0:t.map(n=>({name:n.name,type:d(n.type,this.genericContext),isOptional:n.isOptional})))||[]}get returnType(){return d(this.rawDef.returnType,this.genericContext)}};o(Q,"GenericMethod");var Y=Q;function w(e,t){let n=Object.create(e.prototype);return Object.assign(n,t),n}o(w,"createInstance");function X(e,t){e.properties=t.properties.map(n=>W.create(n,e.genericContext)),e.methods=t.methods.map(n=>Y.create(n,e.genericContext))}o(X,"buildPropertiesAndMethods");function Pe(e,t){let n={};return e.forEach(i=>{let[r,s]=t(i);n[r]=s}),n}o(Pe,"toDictionary");function ee(e,t){return(e==null?void 0:e.map(t).filter(n=>n!==void 0))||[]}o(ee,"mapNotNull");function k(e,t){if(e!==void 0)return e[t]}o(k,"getValue");function h(e){return JSON.parse(JSON.stringify(e))}o(h,"copy");var Oe=class Oe{constructor(t){this.name=t.name,this.members=new Map,t.members.forEach(n=>{let i=n.initializer===void 0?{name:"number"}:{literalValue:n.initializer};this.members.set(n.name,i)})}get type(){return{name:this.name,unionMembers:Array.from(this.members.values())}}get names(){return Array.from(this.members.keys())}};o(Oe,"EnumDefinition");var te=Oe;var Ct=["Partial","Required","Readonly","Pick","Omit","Extract","Exclude"];function it(e){return typeof e=="string"&&Ct.includes(e)}o(it,"isSpecialType");function It(e,t,n,i){switch(e){case"Partial":t=Et(n);break;case"Required":t=Vt(n);break;case"Readonly":t=Nt(n);break;case"Pick":t=st(n,i);break;case"Omit":t=at(n,i);break;case"Extract":t=Jt(n,i);break;case"Exclude":t=At(n,i);break}return t}o(It,"getSpecialType");function rt(e,t){let[n,i]=t,r,s=["Pick","Omit","Extract","Exclude"].includes(e)?["T"]:["T","K"];return r=It(e,r,n,i),r?{name:e,type:r,genericParams:s,rawType:e}:void 0}o(rt,"getSpecialTypeAlias");function $(e,t){return e.typeLiteralMembers?{typeLiteralMembers:e.typeLiteralMembers.map(n=>{let i=h(n.rawDefinition);return t(i),new C(i)})}:e.unionMembers?{unionMembers:e.unionMembers.map(n=>$(n,t))}:e.intersectionMembers?{intersectionMembers:e.intersectionMembers.map(n=>$(n,t))}:void 0}o($,"getMappedType");function ot(e,t){if(e.typeLiteralMembers)return{typeLiteralMembers:e.typeLiteralMembers.map(n=>t(n)?h(n):void 0).filter(n=>!!n)}}o(ot,"getFilterKeyType");function Et(e){return $(e,t=>t.isOptional=!0)}o(Et,"getPartialType");function Vt(e){return $(e,t=>t.isOptional=!1)}o(Vt,"getRequiredType");function Nt(e){return $(e,t=>t.isReadonly=!0)}o(Nt,"getReadonlyType");function st(e,t){var i;let n=(i=t.unionMembers)==null?void 0:i.map(r=>r.name);if(e.typeLiteralMembers)return ot(e,r=>r.name===t.literalValue||(n==null?void 0:n.includes(r.name)))}o(st,"getPickType");function at(e,t){var i;let n=(i=t.unionMembers)==null?void 0:i.map(r=>r.name);if(e.typeLiteralMembers)return ot(e,r=>!(r.name===t.literalValue||n!=null&&n.includes(r.name)))}o(at,"getOmitType");function Jt(e,t){if(e.typeLiteralMembers&&t.typeLiteralMembers){let n={unionMembers:t.typeLiteralMembers.map(i=>({literalValue:i.name}))};return st(e,n)}}o(Jt,"getExtractType");function At(e,t){if(e.typeLiteralMembers&&t.typeLiteralMembers){let n={unionMembers:t.typeLiteralMembers.map(i=>({literalValue:i.name}))};return at(e,n)}}o(At,"getExcludeType");var F=Reflect,I;function S(){if(I)return I;let e=F.__meta;if(e===void 0){console.warn("No reflect meta found, reflect is disabled.");return}try{I=JSON.parse(atob(e))}catch(t){console.error(t),console.warn("Illegal reflect meta found, reflect is disabled");return}return delete F.__meta,I.classDef=F.__classDef||{},delete F.__classDef,F.registerClass=t=>{Object.assign(I.classDef,t)},I}o(S,"getRawMeta");var ne=new Map,je=new Map,Ce=new Map,Ie=new Map,kt=new Map,$t=o((e=>{kt.set(e.name,e)}),"ReflectClass"),Ft={string:String,number:Number,boolean:Boolean,object:Object};function ie(e){var t;return((t=y(e))==null?void 0:t.jsClass)||Ft[e]}o(ie,"getClassByName");function y(e){var t,n,i;switch(typeof e){case"object":return y(e.constructor);case"function":let r=y(e.name);if(r)return r;let s=Array.from(ne.values()).find(l=>l.jsClass===e);if(s)return s;let a=(t=Object.entries(S().classDef||{}).find(([l,u])=>u===e))==null?void 0:t[0];return a?y(a):void 0;case"string":let c=e;if(!ne.has(c)){let l=(n=S().classes)==null?void 0:n[c];if(!l)return;let u=(i=S().classDef)==null?void 0:i[c];ne.set(c,new v(nt(J({},l),{jsClass:u})))}return ne.get(c)}}o(y,"getClassDefinition");function P(e){var t;if(!je.has(e)){let n=(t=S().interfaces)==null?void 0:t[e];if(!n)return;je.set(e,new O(n))}return je.get(e)}o(P,"getInterfaceDefinition");function z(e){var t;if(!Ce.has(e)){let n=(t=S().enums)==null?void 0:t[e];if(!n)return;Ce.set(e,new te(n))}return Ce.get(e)}o(z,"getEnumDefinition");function zt(e){var t;return((t=z(e))==null?void 0:t.names)||[]}o(zt,"getEnumNames");function vt(e){let t=Object.entries(e)[0];if(!t)return[];let[n,i]=t,r=z(n);return r?r.names.map(s=>i[s]):Array.from(Object.keys(i))}o(vt,"getEnumValues");function Ee(e,t){var i;if(it(e))return!t||!t[0]?void 0:rt(e,[t[0],t[1]]);if(!Ie.has(e)){let r=(i=S().typeAliases)==null?void 0:i[e];if(!r||!r.type)return;Ie.set(e,{name:e,rawType:r.type,type:d(r.type),genericParams:r.genericParams})}let n=h(Ie.get(e));if(n.genericParams&&t){let r={};for(let s=0;s<n.genericParams.length;s++){let a=n.genericParams[s];r[a]=t[s]}n.type=d(n.rawType,r,t)}return n}o(Ee,"getTypeAliasDefinition");var oe=class oe{constructor(t){var n,i;this.name=t.name,this._implementationNames=t.implementations||[],this.methods=((n=t.methods)==null?void 0:n.map(H))||[],this.properties=((i=t.properties)==null?void 0:i.map(Z))||[],this.generics=t.genericsParams}get implementations(){return this._implementations||(this._implementations=ee(this._implementationNames,t=>{var n;return P(t)||((n=y(t))==null?void 0:n.type)||D(t)})),this._implementations}get allImplementations(){if(this._allImplementations===void 0){let t=new Set(this.implementations);this.implementations.forEach(n=>{n instanceof oe?n.allImplementations.forEach(i=>t.add(i)):t.add(n)}),this._allImplementations=Array.from(t)}return this._allImplementations}get type(){let t={};return this.allImplementations.forEach(n=>{let r=("type"in n?n.type:n).typeLiteralMembers;r==null||r.forEach(s=>t[s.name]=s)}),this.properties.forEach(n=>t[n.name]=n),{name:this.name,typeLiteralMembers:Object.values(t)}}toString(){return`interface ${this.name}`}};o(oe,"InterfaceDefinition");var O=oe,se=class se extends O{static create(t,n){let i=w(se,t);i.genericArgs=n;let r=i;return r.buildGenericContext(),X(r,t),r}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((n,i)=>this.genericContext[n]=this.genericArgs[i])}};o(se,"GenericInterface");var re=se;var Ve=class Ve{constructor(t){var n,i;this.name=t.name,this.superClassName=t.superClassName||"Object",this.superClass=y(this.superClassName),this._implementationNames=t.implementations||[],this.methods=((n=t.methods)==null?void 0:n.map(H))||[],this.properties=((i=t.properties)==null?void 0:i.map(Z))||[],this.jsClass=t.jsClass,this.generics=t.genericsParams}get allMethods(){let t={};if(this.superClassName!=="Object"){let n=y(this.superClassName);n&&Object.assign(t,J({},n.allMethods))}return Object.assign(t,J({},Pe(this.methods,n=>[n.name,n]))),t}get allProperties(){var t;return Object.assign(((t=this.superClass)==null?void 0:t.allProperties)||{},Pe(this.properties,n=>[n.name,n]))}get implementations(){return this._implementations?this._implementations:ee(this._implementationNames,t=>P(t)||D(t))}get allImplementations(){var t,n;if(this._allImplementations===void 0){let i=new Set(this.implementations);this.implementations.forEach(r=>{r instanceof O?r.allImplementations.forEach(s=>i.add(s)):i.add(r)}),(n=(t=this.superClass)==null?void 0:t.allImplementations)==null||n.forEach(r=>i.add(r)),this._allImplementations=Array.from(i)}return this._allImplementations}getProperty(t){return this.properties.find(n=>n.name===t)}get type(){var n,i;let t={};return(i=(n=this.superClass)==null?void 0:n.type.typeLiteralMembers)==null||i.forEach(r=>t[r.name]=r),this.properties.forEach(r=>t[r.name]=r),{name:this.name,classDefinition:this,typeLiteralMembers:Object.values(t)}}isSubClassOf(t){var n;return this.name===t||(n=this.superClass)!=null&&n.isSubClassOf(t)?!0:this.implementations.map(i=>i.name).includes(t)}isSuperClassOf(t){if(this.name===t)return!0;let n=y(t);return n?n.isSubClassOf(this.name):!1}toString(){return`class ${this.name}`}};o(Ve,"ClassDefinition");var v=Ve,ce=class ce extends v{static create(t,n){let i=w(ce,t);i.genericArgs=n;let r=i;return r.buildGenericContext(),X(r,t),r}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((n,i)=>this.genericContext[n]=this.genericArgs[i])}};o(ce,"GenericClass");var ae=ce;var Ne=[Promise,Date,Map,Set,Error,Function];function T(e,t,n=1){switch(!0){case t.name==="undefined":return e===void 0?p:f(100,`declared as ${m(t)} but actually not`);case lt(t):return p;case de(t):return e instanceof Object?Je(e,t,n):f(200,`declared as ${m(t)} but actually not an object`);case le(t):return Lt(e,t,n);case ye(t):return _t(e,t,n);case pe(t):for(let i of t.unionMembers||[])if(T(e,i,n).success)return p;return f(320,`declared as ${m(t)} but all value not match`);case me(t):for(let i of t.intersectionMembers||[]){let r=T(e,i,n);if(!r.success)return f(330,`declared as ${m(t)} but all value not match`,r)}return p;case ke(t):return Bt(e,t,n);case fe(t):switch(typeof e){case"string":return e===Wt(t.literalValue)?p:f(110,`declared as string ${m(t)} but value not match`);case"number":return e===Number(t.literalValue)?p:f(111,`declared as number ${m(t)} but value not match`);case"bigint":return e===BigInt(t.literalValue)?p:f(112,`declared as bigint ${m(t)} but value not match`);case"boolean":return e===!!t.literalValue?p:f(113,`declared as boolean ${m(t)} but value not match`);default:return t.literalValue==="null"&&e===null?p:e===t.literalValue?p:f(114,`declared as ${m(t)} but value not match`)}case ue(t):return Gt(e,t,n);case t.isFunction:case t.isConstructor:return typeof e=="function"?p:f(150,`declared as ${m(t)} but actually not`);case Ae(t):return e==null?f(120,`declared as ${m(t)} but actually ${e}`):typeof e===t.name?p:f(121,`declared as ${m(t)} but actually ${typeof e}`);default:return Kt(e,t,n)}}o(T,"validateValue");function Lt(e,t,n=1){if(!Array.isArray(e))return f(300,`declared as ${m(t)} but actually not`);if(n===0)return p;for(let i=0;i<e.length;i++){let r=e[i],s=T(r,t.arrayElementType||b,n-1);if(!s.success)return f(301,`declared as ${m(t)} but [${i}] not match`,s)}return p}o(Lt,"validateArrayValue");function Bt(e,t,n=1){if(e===null)return f(400,"declared as indexedType but actually is null");if(typeof e=="object")return f(410,`declared as indexedType but actually is ${typeof e}`);for(let i of Object.values(e)){let r=T(i,t.indexElementType,n-1);if(!r.success)return f(420,`declared as ${m(t)} but actually not match`,r)}return p}o(Bt,"validateIndexedValue");function _t(e,t,n=1){if(!Array.isArray(e))return f(310,`declared as ${m(t)} but actually not a tuple`);if(n===0)return p;let i=0;for(let r of t.tupleMembers){let s=e[i++];if(r.isOptionalInTuple&&s===void 0)continue;let a=T(e[i],r,n);if(!a.success)return f(311,`declared as ${m(t)} but not all values in tuple match`,a)}return p}o(_t,"validateTupleValue");function Gt(e,t,n=1){if(e instanceof Object){for(let i of t.typeLiteralMembers||[]){if(i.isStatic)return p;if(i.name.startsWith("[")&&i.name.endsWith("]"))return p;if(n===0)return p;let r=i.type||b;i.isOptional&&(r={unionMembers:[r,{name:"undefined"}]});let s=k(e,i.name),a=T(s,r,n-1);if(!a.success)return f(211,`declared ${i.name} as ${m(r)}, but not match`,a)}return p}else return f(210,`declared as ${m(t)} but not an object`)}o(Gt,"validateProperties");function Kt(e,t,n=1){let i=typeof t=="string"?t:t.name;if(!i)return p;if(e===void 0)return f(130,`declared as ${m(t)} but actually undefined`);if(e===null)return i==="null"?p:f(131,`declared as ${m(t)} but actually null`);for(let s of Ne)if(i===s.name)return e instanceof s?p:f(132,`declared as ${m(t)} but actually ${e.constructor.name}`);if(e instanceof Object&&!ct(e,i))return f(133,`declared as ${m(t)} but actually not instance of it`);if(n==0)return p;let r=T(e,D(i),n);return r.success?p:f(134,`declared as ${m(t)} but actually not match`,r)}o(Kt,"validateSimpleValue");function Je(e,t,n=3){if(t.classDefinition&&!ct(e,t.classDefinition.name))return f(201,`declared as instance of ${m(t)} but actually not`);if(t.name!=="any"&&t===b)return f(202,`${m(t)} not defined`);let i=h(t);return delete i.classDefinition,T(e,t,n)}o(Je,"validateClassInstance");function ct(e,t){if(e===void 0||e.constructor.name===t)return!0;let n=y(t);if(!n)return!0;if(n.jsClass)return e instanceof n.jsClass;let i=y(e);return i?i.isSubClassOf(n.name):!1}o(ct,"valueInstanceOf");function Wt(e){return e.length>=2&&(e[0]==='"'&&e[e.length-1]==='"'||e[0]==="'"&&e[e.length-1]==="'")?e.substring(1,e.length-1):e}o(Wt,"trimQuotes");function m(e){var t,n,i,r;return typeof e=="string"?e:de(e)?e.classDefinition.name:le(e)?(((t=e.arrayElementType)==null?void 0:t.name)||"unknown")+"[]":e.isConstructor?"Class":e.isFunction?"Function":ue(e)?"Object":ye(e)?`(${e.tupleMembers.map(m).join(",")})`:pe(e)?((n=e.unionMembers)==null?void 0:n.map(m).join(" | "))||"unknown":me(e)?((i=e.intersectionMembers)==null?void 0:i.map(m).join(" & "))||"unknown":fe(e)?e.literalValue:ke(e)?`{ [key]: ${((r=e.indexElementType)==null?void 0:r.name)||"unknown"} }`:e.name||"unknown"}o(m,"getTypeDisplayName");var b={name:"any"},Ut={name:"null"},ft=["string","number","boolean","bigint","symbol"];function lt(e){return!!(e.name&&["any","void","unknown"].includes(e.name))}o(lt,"isIgnoredType");function Ae(e){return!!(e.name&&ft.includes(e.name))}o(Ae,"isPrimitiveType");function le(e){return!!e.arrayElementType}o(le,"isArrayType");function fe(e){return!!e.literalValue}o(fe,"isLiteralType");function ue(e){return!!e.typeLiteralMembers}o(ue,"isTypeLiteralType");function pe(e){return!!e.unionMembers}o(pe,"isUnionType");function me(e){return!!e.intersectionMembers}o(me,"isIntersectionType");function ye(e){return!!e.tupleMembers}o(ye,"isTupleType");function de(e){return!!e.classDefinition}o(de,"isClassDefinition");function Zt(e){return!!e.generics}o(Zt,"hasGenerics");function ke(e){return!!e.indexElementType}o(ke,"isIndexType");function D(e,t){if(e==="any"||e==="Any"||e==="unknown"||e==="")return b;if(e==="null")return Ut;let n=y(e);if(n)return t?ae.create(n,t).type:n.type;if(ft.includes(e))return{name:e};if(Ne.map(a=>a.name).includes(e))return{name:e,generics:t};let i=P(e);if(i)return t?re.create(i,t).type:i.type;let r=z(e);if(r)return r.type;let s=Ee(e,t);return s?s.type:b}o(D,"getTypeDefinition");var $e=new Map;function d(e,t,n){let i=Fe(e);if(e===void 0)return b;let r=$e.get(i);if(r)return r;let s={};if($e.set(i,s),typeof e=="string")s=(t==null?void 0:t[e])||D(e,n)||b;else if(e.arrayElementType)Object.assign(s,{arrayElementType:d(e.arrayElementType,t)});else if(e.unionMembers)Object.assign(s,{unionMembers:e.unionMembers.map(a=>d(a,t))});else if(e.intersectionMembers)Object.assign(s,{intersectionMembers:e.intersectionMembers.map(a=>d(a,t))});else if(e.tupleMembers)Object.assign(s,{tupleMembers:e.tupleMembers.map(a=>d(a,t))});else if(e.generics){let a=e.generics[0],c=e.generics.slice(1).map(l=>d(l,t));Object.assign(s,d(a,t,c))}else e.indexElementType&&Object.assign(s,{indexElementType:d(e.indexElementType,t)});return Object.keys(s).length===0&&(s=b),$e.delete(i),s}o(d,"fillType");function Fe(e){return e===null?"null":e===void 0?"undefined":typeof e!="object"?JSON.stringify(e):Array.isArray(e)?"["+e.map(Fe).join(",")+"]":"{"+Object.keys(e).sort().map(n=>JSON.stringify(n)+":"+Fe(e[n])).join(",")+"}"}o(Fe,"stableStringify");var Te={isPrimitiveType:Ae,isArrayType:le,isLiteralType:fe,isTypeLiteralType:ue,isUnionType:pe,isIntersectionType:me,isTupleType:ye,isClassDefinition:de,hasGenerics:Zt};function g(e){if(typeof e=="string"){let t=Qt(e);if(typeof t=="string"){let n=t.match(/\"(.+)\"$/)||t.match(/\'(.+)\'$/);if(n!=null&&n[1])return{literalValue:n[1]}}return typeof t=="string"?D(e):g(t)}return Array.isArray(e)?D(e[0],e.slice(1).map(g)):"array"in e?{arrayElementType:g(e.array)}:"union"in e?{unionMembers:e.union.map(g)}:"intersection"in e?{intersectionMembers:e.intersection.map(g)}:"tuple"in e?{tupleMembers:e.tuple.map(g)}:e}o(g,"getTypeDef");function qt(e,t,n=5){let i=T(e,g(t),n);if(!i.success){console.error(`assert failed with type: ${t}
|
|
4
|
+
${i.errorStackFlow}`);debugger;throw new Error(`assert failed with type: ${t}, ${i.errorStackFlow}`)}return e}o(qt,"assertType");function Yt(e){return ut(null,e)}o(Yt,"isNullable");function ut(e,t,n=5){return T(e,g(t),n).success}o(ut,"isType");function Qt(e){let t=e.trim(),n=o(u=>u.trim(),"trim"),i=o(u=>u.length!=0,"notEmpty"),r=t.split("|").map(n).filter(i);if(r.length>1)return{union:r};let s=t.split("&").map(n).filter(i);if(s.length>1)return{intersection:s};let a=t.match(/^\[(.*)]$/);if(a)return{tuple:a[1].split(",").map(n).filter(i)};let c=t.match(/^(.+)\[]$/);if(c)return{array:c[1].trim()};let l=t.match(/^([^<]+)<(.+)>$/);if(l){let u=l[1].trim(),x=l[2].split(",").map(n).filter(i);return[u,...x]}return t}o(Qt,"parseType");function L(e,t,n=3){return t=t||e.constructor.name,Je(e,g(t),n)}o(L,"validateInstance");function Ht(e,t,n=1){for(let i=0;i<e.length;i++){let r=L(e[i],t,n);if(!r.success)return f(220,`declared as instance of ${t}[] but [${i}] actually not`,r)}return p}o(Ht,"validateArray");function Xt(e,t,n=1){let i=Object.entries(e);for(let r=0;r<i.length;r++){let[s,a]=i[r],c=L(a,t,n);if(!c.success)return f(230,`declared as instance of Dictionary<${t}> but [${s}] actually not`,c)}return p}o(Xt,"validateDictionary");var pt=Symbol("VALIDATE_WRAPPER"),en=o((e,t,n)=>tn(e,t,n),"ReflectValidate");function tn(e,t,n){let i=n.value;if(typeof i!="function"||k(i,pt))return;let r=o(()=>{var l,u;return(u=(l=y(e))==null?void 0:l.methods)==null?void 0:u.find(x=>x.name===t)},"getMethodDef"),s=o(l=>mt(e,r(),l),"validateArgs"),a=o(l=>nn(e,r(),l),"validateReturn"),c=o(function(...l){s(l);let u=i.call(this,...l);return a(u)},"newFunc");c[pt]=i,n.value=c}o(tn,"wrapValidateMethod");function mt(e,t,n){var i;(i=t==null?void 0:t.args)==null||i.forEach((r,s)=>{let a=n==null?void 0:n[s];if(a===void 0){if(r.isOptional)return;throw new Error(`Illegal arguments for ${ze(e.constructor.name,t)}: ${r.name} is not optional`)}let c=T(a,r.type||b,1);if(!c.success)throw console.error("validateResult",c),new Error(`Illegal arguments for ${ze(e.constructor.name,t)}: ${r.name}: ${r.name} ${c.errorMessage}`)})}o(mt,"validateMethodParams");function nn(e,t,n){var s;if(!t)return n;let i=o((a,c)=>{let l=T(a,c,5);if(!l.success)throw console.error(l.errorStackFlow),new Error(`result for ${ze(e.constructor.name,t)} doesn't match type ${c.name}:
|
|
5
|
+
${l.errorStackFlow}`);return a},"checkValue"),r=t.returnType;return r.name==="Promise"&&(r=((s=r.generics)==null?void 0:s[0])||b),n instanceof Promise?n.then(a=>i(a,r||b)):i(n,r||b)}o(nn,"validateMethodReturnValue");function ze(e,t){var n;return`${e}.${t.name}(${(n=t.args)==null?void 0:n.map(i=>i.name).join(", ")})`}o(ze,"getMethodDescription");function rn(e,t,...n){let i=y(e);if(!i)return;let r=i.allMethods[t];if(r)return mt(e,r,n),k(e,t).apply(e,n)}o(rn,"safeCall");var or=require("reflect-metadata");function ve(e){return String(e).toLocaleLowerCase()==="false"?!1:!!e}o(ve,"asBoolean");function E(e){return e==null||Number.isNaN(e)||e instanceof Date&&String(e)==="Invalid Date"?"":typeof e=="symbol"?e.description||"":String(e)}o(E,"asString");function be(e){return e?e instanceof Date?e.getDate():Number(e):0}o(be,"asNumber");function M(e,t,n){e[t]=n}o(M,"setAnyValue");function B(e,t){return e[t]}o(B,"getAnyValue");function on(e,t,n){let i=e[t];if(i!==void 0)return i;let r=n();return M(e,t,r),r}o(on,"getOrSetValue");function Le(e){return typeof e=="object"&&e!==null&&e.constructor===Object}o(Le,"isDictionary");function Be(e,t){let n=Object.create(e.prototype);return Object.assign(n,t||{}),n}o(Be,"createInstance");function _e(e){return((t,n)=>Reflect.defineMetadata(e,n,t.constructor))}o(_e,"defineDecoratedProperty");function Ge(e,t,...n){let i=Ke(e,t);if(i!==void 0&&i instanceof Function)return i.apply(e,n)}o(Ge,"callDecoratedMethod");function sn(e,t){let n=Ke(e,t);return n!==void 0&&n instanceof Function}o(sn,"hasDecoratedMethod");function yt(e,t){return Reflect.getMetadata(t,e.constructor)}o(yt,"getDecoratedProperty");function Ke(e,t){let n=yt(e,t);if(n!==void 0)return B(e,n)}o(Ke,"getDecoratedPropertyValue");var R=o(function({getter:e,setter:t,fieldSymbol:n}){return(i,r)=>{Object.defineProperty(i,r,{get:o(function(){return e?e(this,r):R.getField(i,r,n)},"get"),set:o(function(s){t?t(this,s,r):R.setField(i,r,s,n)},"set")})}},"PropertyWrapper");M(R,"getField",(e,t,n)=>{var i;return(i=B(e,n))==null?void 0:i[t]});M(R,"setField",(e,t,n,i)=>{let r=B(e,i)||{};r[t]=n,M(e,i,r)});function an(e){let t=Symbol("lazy");return R({getter:o((n,i)=>{let r=R.getField(n,i,t);if(r)return r.value;let s=e(n,i);return R.setField(n,i,{value:s},t),s},"getter"),setter:o(()=>{},"setter"),fieldSymbol:t})}o(an,"Lazy");var _=Symbol("JSON_SERIALIZED"),dt=Symbol("AFTER_SERIALIZED"),Qe=class Qe{constructor(){this.settingsByName={};this.settingsBySerializedName={};this.ignoredProperties=[];this.defaultIgnored=!1}add(t){this.settingsByName[t.propName]=t,this.settingsBySerializedName[t.serializedName]=t}isPropertyIgnored(t){return this.defaultIgnored&&!this.settingsByName[t]?!0:this.ignoredProperties.indexOf(t)!==-1}};o(Qe,"SerializeSettings");var We=Qe,He=class He{constructor(t,n,i){this.target=t;this.propName=n;this.options=i;this.isArray=Reflect.getDesignType(t,n)===Array,this.serializedName=i.name||E(n),this.class=i.class,this.fromJSON=this.createBuilder(),this.toJSON=i.toJSON||(r=>Ye(r))}createBuilder(){if(this.options.fromJSON)return this.options.fromJSON;if(this.class&&this.class instanceof Function){let t=this.class;return n=>{let i=Me.get(t);return i?i.fromJson(n):he(n,t)}}else return t=>mn(this.target,this.propName,t)}};o(He,"SerializedPropertySetting");var Ue=He;function Ze(e,t){qe(e,n=>{n.defaultIgnored=t})}o(Ze,"setDefaultIgnored");function G(e,t,n){let i=V(e);qe(i,r=>{r.add(new Ue(e,t,n))})}o(G,"registerSerializedProperty");function qe(e,t){let n=Reflect.getMetadata(_,e);n===void 0&&(n=new We),t(n),Reflect.defineMetadata(_,n,e)}o(qe,"updateSerializeSettings");var cn=Tt();function Tt(e){return e=e||{},(t,n)=>G(t,E(n),e)}o(Tt,"Serialized");function ln(e){return(t,n)=>G(t,E(n),{name:e})}o(ln,"SerializedName");var fn=o((e,t)=>qe(V(e),n=>n.ignoredProperties.push(t)),"IgnoreSerialization");function un(e){return JSON.stringify(typeof e=="object"?De(e):e)}o(un,"serialize");function Ye(e){if(e===void 0)throw new Error("attempt to serialize undefined value");if(e===null)return null;if(typeof e=="object"){let t=Me.get(V(e));return t?t.toJson(e):De(e)}return e}o(Ye,"serializeTo");function De(e){var s;if(e instanceof Array)return e.map(a=>De(a));if(Le(e)){let a={};return Object.entries(e).forEach(c=>{let[l,u]=c;a[l]=Ye(u)}),a}let t=V(e);((s=y(t))==null?void 0:s.isSubClassOf("Mappable"))&&xe(t);let i=Reflect.getMetadata(_,t);if(i===void 0)return e;let r={};return Object.entries(e).forEach(a=>{let c=a[0];if(i.isPropertyIgnored(c))return;let l=a[1];if(l===void 0||l instanceof Function||typeof l=="symbol")return;let u=i.settingsByName[c],x=(u==null?void 0:u.serializedName)||c;u&&(u.isArray?l=l.map(K=>u.toJSON(K)):l=u.toJSON(l)),r[x]=l}),r}o(De,"serializeToData");function he(e,t){var n;if(typeof e=="string"&&(e=JSON.parse(e)),t===null||t===void 0)return e;try{let i=e,r=V(t),s=(n=y(r))==null?void 0:n.isSubClassOf("Mappable");s&&xe(r);let a=Me.get(r);if(a)return a.fromJson(i);let c=t instanceof Function?Be(t):t;if(typeof c=="object"&>(i,c),s){let l=L(c,r.name);if(!l.success)throw new Error(`JSON deserialize validate failed: ${we(l)} `)}return c}catch(i){throw console.error("failed to deserialize"),console.dir(i),i}}o(he,"deserialize");function bt(e,t){let n=typeof e=="string"?JSON.parse(e):e;return n instanceof Array?n.map(i=>he(i,t)):[]}o(bt,"deserializeArray");function gt(e,t){let n=V(t),i=Reflect.getMetadata(_,n);if(i===void 0){Object.assign(t,e);return}Object.keys(e).forEach(r=>{let s=i.settingsBySerializedName[r],a=e[r];if(s===void 0){i.defaultIgnored||M(t,r,a);return}let c=s.propName;if(i.isPropertyIgnored(c))return;let l;l=a instanceof Array?a.map(u=>s.fromJSON(u)):s.fromJSON(a),M(t,c,l)}),Ge(t,dt)}o(gt,"deserializeFrom");function pn(e){return Reflect.getMetadata(_,e)}o(pn,"getSerializeSettings");function mn(e,t,n){let i=Reflect.getDesignType(e,t);if(i===void 0)return n;if(i===Array)return bt(n);let r=Me.get(i);return r?r.fromJson(n):he(n,i)}o(mn,"getValueByReflectType");function V(e){return e instanceof Function?e:e.constructor}o(V,"classOf");function yn(e){return e()}o(yn,"run");var Me=yn(()=>{let e=new Map;function t(i){return e.get(i)}o(t,"get");function n(i,r){e.set(i,r)}return o(n,"register"),n(String,{fromJson:E,toJson:ge}),n(Number,{fromJson:be,toJson:ge}),n(Boolean,{fromJson:ve,toJson:ge}),n(Date,{fromJson:o(i=>new Date(be(i)),"fromJson"),toJson:o(i=>i.getTime(),"toJson")}),{get:t,register:n}}),ge=o(e=>e,"itSelf"),dn=o(()=>{},"done"),Tn=_e(dt);var Dt=new Map;function xe(e){if(Dt.get(e))return;let t=y(e),n=new Proxy({},{get(r,s){return i(s)},set(r,s,a){return i(s)(a),!0}});function i(r){return(s,a)=>{var u,x,K;let c=(x=(u=Object.values((t==null?void 0:t.allProperties)||{}))==null?void 0:u.find(ht=>ht.name===r))==null?void 0:x.type,l=(c==null?void 0:c.name)!==void 0?ie(c.name):void 0;c&&Te.isArrayType(c)&&(l=((K=c.arrayElementType)==null?void 0:K.name)!==void 0?ie(c.arrayElementType.name):void 0),typeof r=="string"&&(G(e.prototype,r,{name:s,class:l,fromJSON:a==null?void 0:a.fromJSON,toJSON:a==null?void 0:a.toJSON}),Ze(e,!0))}}o(i,"doMap"),e.prototype.mapping(n),Dt.set(e,!0)}o(xe,"registerMappable");function bn(e,t){let n=y(e);n&&n.properties.forEach(i=>t[i.name]())}o(bn,"mapAllProperties");var Tr=require("reflect-metadata");var gn="design:type",Dn="design:returntype",hn="design:paramtypes";function Mn(e,t){return Reflect.getMetadata(gn,e,t)}o(Mn,"getDesignType");function xn(e,t){return Reflect.getMetadata(Dn,e,t)}o(xn,"getReturnType");function wn(e,t){return Reflect.getMetadata(hn,e,t)}o(wn,"getParamTypes");function Rn(e,t,n,i){let r=(i===void 0?Reflect.getMetadata(e,n):Reflect.getMetadata(e,n,i))||[];r.includes(t)||r.push(t),i===void 0?Reflect.defineMetadata(e,r,n):Reflect.defineMetadata(e,r,n,i)}o(Rn,"addMetadataList");Object.assign(Reflect,{getDesignType:Mn,getReturnType:xn,getParamTypes:wn,addMetadataList:Rn});0&&(module.exports={AfterSerialized,IgnoreSerialization,Lazy,PropertyWrapper,ReflectClass,ReflectValidate,Serialized,SerializedClass,SerializedName,TypeDefinition,ValidateResult,asBoolean,asNumber,asString,assertType,callDecoratedMethod,createInstance,defineDecoratedProperty,deserialize,deserializeArray,deserializeFrom,done,failedResult,getAnyValue,getClassByName,getClassDefinition,getDecoratedProperty,getDecoratedPropertyValue,getEnumDefinition,getEnumNames,getEnumValues,getErrorTraceMessages,getInterfaceDefinition,getOrSetValue,getSerializeSettings,getTypeAliasDefinition,getTypeDef,hasDecoratedMethod,isDictionary,isNullable,isType,itSelf,mapAllProperties,registerMappable,registerSerializedProperty,safeCall,serialize,serializeTo,serializeToData,setAnyValue,setDefaultIgnored,successResult,validateArray,validateDictionary,validateInstance});
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
var de=Object.create;var L=Object.defineProperty;var ye=Object.getOwnPropertyDescriptor;var ge=Object.getOwnPropertyNames;var Te=Object.getPrototypeOf,he=Object.prototype.hasOwnProperty;var we=(e,n)=>{for(var t in n)L(e,t,{get:n[t],enumerable:!0})},Y=(e,n,t,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of ge(n))!he.call(e,r)&&r!==t&&L(e,r,{get:()=>n[r],enumerable:!(i=ye(n,r))||i.enumerable});return e};var k=(e,n,t)=>(t=e!=null?de(Te(e)):{},Y(n||!e||!e.__esModule?L(t,"default",{value:e,enumerable:!0}):t,e)),De=e=>Y(L({},"__esModule",{value:!0}),e);var B=(e,n,t)=>new Promise((i,r)=>{var o=T=>{try{d(t.next(T))}catch(D){r(D)}},f=T=>{try{d(t.throw(T))}catch(D){r(D)}},d=T=>T.done?i(T.value):Promise.resolve(T.value).then(o,f);d((t=t.apply(e,n)).next())});var Ce={};we(Ce,{DEBUG_CONFIG:()=>F,parseSource:()=>U,reflectLoader:()=>X,reflectParserPlugin:()=>ve,setupReflectTypes:()=>Re,updateReflectModules:()=>H});module.exports=De(Ce);var q=k(require("typescript"),1);var s=k(require("typescript"),1),N=k(require("fs"),1),C=k(require("process"),1),R=k(require("path"),1),ie=require("url");var F={OUTPUT_LOG:!1},A=new Map,b=new Map,I=new Map,v=new Map,Q=new Map,j=new Set,Z={[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"},_="any",se=["string","number","boolean","bigint","symbol"],re=["any","Promise","Date","Error","undefined","unknown","object","Map","Set"],ae=["Mappable","EnableReflect"];[...se,...re,...ae].forEach(le);ae.forEach(e=>b.set(e,{name:e}));var $,ee=!1,w=Reflect;function Re(e){return B(this,null,function*(){let{filePaths:n,exclude:t,sourceFolder:i,distFolder:r}=e;if(i=R.resolve(i||C.cwd()),r=R.resolve(r||C.cwd()),w.__classes!==void 0)return;n=me(n);let o=n.map(f=>R.join(i,f));U(o,t),w.__classes={};for(let[f,d]of A)w.__classes[f]=d;w.__interfaces={};for(let[f,d]of b)w.__interfaces[f]=d;w.__typeAliases={};for(let[f,d]of v)w.__typeAliases[f]=d;w.__enums={};for(let[f,d]of I)w.__enums[f]=d;w.__constTypes={};for(let[f,d]of Q)w.__constTypes[f]=d;yield Promise.all(n.map(f=>H(f,r)))})}function H(e,n){return B(this,null,function*(){let t=R.resolve(n,e);if(!N.existsSync(t))return;if(N.statSync(t).isDirectory()){let d=N.readdirSync(t);yield Promise.all(d.map(T=>H(R.join(e,T),n)));return}if(!e.endsWith(".js"))return;let r=R.join(n,e),f=yield import((0,ie.pathToFileURL)(r).href);w.__classDef={},Object.values(f).forEach(d=>{typeof d=="function"&&(w.__classDef[d.name]=d)})})}function U(e,n){if(e||(e=[C.cwd()]),e=me(e),!ee){let t=oe(e,n),i=s.default.createProgram(t,{});$=i.getTypeChecker(),t=t.map(o=>ne(o)),i.getSourceFiles().filter(o=>t.includes(ne(o.fileName))||o.fileName.endsWith("/lib.es5.d.ts")).forEach(o=>{x(`parse file: ${o.fileName}`),fe(o)});for(let o of j.keys())!A.has(o)&&!b.has(o)&&!I.has(o)&&!v.has(o)&&!se.includes(o)&&!re.includes(o)&&(x(`remove unknown typeName: ${o}`),j.delete(o));Array.from(A.values()).forEach(Oe),Array.from(b.values()).forEach(_e),[A,b,v].forEach(Ae),ee=!0}return{classDefinitions:A,interfaceDefinitions:b,enumDefinitions:I,typeAliasDefinitions:v,constTypeDefinitions:Q}}function oe(e,n){let t=[];return e.forEach(i=>{if(i=R.resolve(i),Me(i,n)){x(`ignore excluded ${i}`);return}if(!N.existsSync(i)){console.error(`Path ${i} does not exist.`);return}if(N.statSync(i).isFile()){t.push(i);return}N.readdirSync(i).forEach(f=>t.push(...oe([R.join(i,f)],n)))}),t}function fe(e){s.default.isClassDeclaration(e)?Ee(e):s.default.isInterfaceDeclaration(e)?Pe(e):s.default.isEnumDeclaration(e)?Se(e):s.default.isTypeAliasDeclaration(e)?xe(e):s.default.isConstTypeReference(e)?Ne(e):e.forEachChild(fe)}function Ee(e){var d,T,D,E,K,P,u,h,z,y,p,m,M,G;let n=a(e.name);if(!n)return;let t=a((D=(T=(d=e.heritageClauses)==null?void 0:d.find(c=>c.token===s.default.SyntaxKind.ExtendsKeyword))==null?void 0:T.types)==null?void 0:D[0].expression),i=(K=(E=e.heritageClauses)==null?void 0:E.find(c=>c.token===s.default.SyntaxKind.ImplementsKeyword))==null?void 0:K.types.map(c=>a(c.expression)),r=[],o=[];for(let c of e.members)if(s.default.isPropertyDeclaration(c))r.push({name:a(c.name),isOptional:c.questionToken!==void 0,type:g(c),isPrivate:(P=c.modifiers)==null?void 0:P.some(l=>l.kind===s.default.SyntaxKind.PrivateKeyword),isStatic:(u=c.modifiers)==null?void 0:u.some(l=>l.kind===s.default.SyntaxKind.StaticKeyword),isReadonly:(h=c.modifiers)==null?void 0:h.some(l=>l.kind===s.default.SyntaxKind.ReadonlyKeyword)});else if(s.default.isMethodDeclaration(c))o.push({name:a(c.name),returnType:g(c),isPrivate:(z=c.modifiers)==null?void 0:z.some(l=>l.kind===s.default.SyntaxKind.PrivateKeyword),isStatic:(y=c.modifiers)==null?void 0:y.some(l=>l.kind===s.default.SyntaxKind.StaticKeyword),isAsync:(p=c.modifiers)==null?void 0:p.some(l=>l.kind===s.default.SyntaxKind.AsyncKeyword),args:c.parameters.map(l=>({name:a(l.name),type:g(l),isOptional:l.questionToken!==void 0}))});else if(s.default.isGetAccessorDeclaration(c)){let l=r.find(O=>O.name===a(c.name));l||(l={name:a(c.name),isOptional:c.questionToken===void 0,type:g(c)},r.push(l)),l.accessor=l.accessor||{},l.accessor.getter={isPrivate:((m=c.modifiers)==null?void 0:m.some(O=>O.kind===s.default.SyntaxKind.PrivateKeyword))||!1},l.isPrivate=l.accessor.getter.isPrivate}else if(s.default.isSetAccessorDeclaration(c)){let l=r.find(O=>O.name===a(c.name));l||(l={name:a(c.name),isOptional:c.questionToken===void 0,type:g(c)},r.push(l)),l.accessor=l.accessor||{},l.accessor.setter={isPrivate:((M=c.modifiers)==null?void 0:M.some(O=>O.kind===s.default.SyntaxKind.PrivateKeyword))||!1}}let f={name:n,superClassName:t,implementations:i,properties:r,methods:o,genericsParams:(G=e.typeParameters)==null?void 0:G.map(c=>a(c.name))};x(`Define class: ${a(e.name)}`),A.set(n,f)}function Pe(e){var d,T,D,E,K,P;let n=a(e.name);if(!n)return;let t=((T=(d=e.heritageClauses)==null?void 0:d.find(u=>u.token===s.default.SyntaxKind.ExtendsKeyword))==null?void 0:T.types.map(u=>a(u.expression)))||[],i=[],r=[],o;for(let u of e.members)s.default.isPropertySignature(u)?i.push({name:a(u.name),isOptional:u.questionToken!==void 0,type:g(u),isPrivate:((D=u.modifiers)==null?void 0:D.some(h=>h.kind===s.default.SyntaxKind.PrivateKeyword))||!1,isReadonly:((E=u.modifiers)==null?void 0:E.some(h=>h.kind===s.default.SyntaxKind.ReadonlyKeyword))||!1}):s.default.isMethodSignature(u)?r.push({name:u.name.text,returnType:g(u),isPrivate:((K=u.modifiers)==null?void 0:K.some(h=>h.kind===s.default.SyntaxKind.PrivateKeyword))||!1,args:u.parameters.map(h=>({name:a(h.name),type:g(h),isOptional:h.questionToken!==void 0}))}):s.default.isIndexSignatureDeclaration(u)&&(o=g(u));let f=b.get(n);f?(f.implementations=V(f.implementations||[],t),f.methods=V(f.methods||[],r,(u,h)=>u.name===h.name),f.properties=V(f.properties||[],i,(u,h)=>u.name===h.name),f.indexElementType=o,x(`Merge interface ${a(e.name)}`)):(f={name:n,implementations:t,methods:r,properties:i,indexElementType:o,genericsParams:(P=e.typeParameters)==null?void 0:P.map(u=>a(u.name))},b.set(n,f),x(`Define interface ${a(e.name)}`))}function Se(e){let n=a(e.name);n&&(I.set(n,{name:n,members:e.members.map(t=>({name:a(t.name),initializer:a(t.initializer)}))}),x(`Define enum: ${a(e.name)}`))}function xe(e){var r;x(`Define typeAlias: ${a(e.name)}`);let n=g(e),t=(r=e.typeParameters)==null?void 0:r.map(o=>a(o.name)),i=a(e.name);v.set(i,{name:i,type:n,genericParams:t})}function Ne(e){let n=e.parent.parent;s.default.isVariableDeclaration(n)&&n.initializer&&s.default.isAsExpression(n.initializer)&&Q.set(a(n.name),ce(n.initializer.expression))}function ce(e){return s.default.isArrayLiteralExpression(e)?Ke(e):s.default.isObjectLiteralExpression(e)?be(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":_}function Ke(e){let n=[];return e.elements.forEach(t=>{if(s.default.isStringLiteral(t))return n.push(a(t))}),n.length===0?_:n.length===1?n[0]:{unionMembers:n}}function be(e){let n=[];return e.properties.map(t=>{s.default.isPropertyAssignment(t)?n.push({name:a(t.name),type:ce(t.initializer)}):x(`unsupported property: ${t.name}`)}),{typeLiteralMembers:n}}function le(e){j.add(e)}function g(e,n=!1){if(e.type&&!n)return S(e.type);if(!$)return console.error("TypeChecker not initialized!"),_;let t=$.getTypeAtLocation(e),i=$.typeToTypeNode(t,void 0,void 0);return i?S("type"in i?i.type:i):_}function S(e){let n={};if(e===void 0)return _;if(s.default.isTypeReferenceNode(e))if(le(a(e.typeName)),e.typeArguments)n.generics=[a(e.typeName),...e.typeArguments.map(t=>S(t))];else return a(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 g(e);if(s.default.isTypeLiteralNode(e)){let t=[];e.members.forEach(i=>{s.default.isPropertySignature(i)?t.push({name:a(i.name),isOptional:i.questionToken!==void 0,type:g(i)}):s.default.isIndexSignatureDeclaration(i)?n.indexElementType=g(i):t.push({name:a(i.name)||"",isOptional:i.questionToken!==void 0,type:S()})}),n.typeLiteralMembers=t}else if(s.default.isArrayTypeNode(e))n.arrayElementType=S(e.elementType);else if(s.default.isTupleTypeNode(e))n.tupleMembers=e.elements.map(S);else if(s.default.isOptionalTypeNode(e))Object.assign(n,g(e)),n.isOptionalInTuple=!0;else{if(s.default.isRestTypeNode(e))return g(e);if(s.default.isUnionTypeNode(e))n.unionMembers=e.types.map(S);else if(s.default.isIntersectionTypeNode(e))n.intersectionMembers=e.types.map(S);else{if(s.default.isConditionalTypeNode(e))return g(e);if(s.default.isInferTypeNode(e))return g(e);if(s.default.isParenthesizedTypeNode(e))return g(e);if(s.default.isThisTypeNode(e))return g(e);if(s.default.isTypeOperatorNode(e)&&e.operator===s.default.SyntaxKind.KeyOfKeyword)return g(e,!0);if(s.default.isIndexedAccessTypeNode(e))return g(e,!0);if(s.default.isMappedTypeNode(e))n.indexElementType=S(e.type);else if(s.default.isLiteralTypeNode(e))n.literalValue=a(e.literal);else{if(Object.keys(Z).includes(String(e.kind)))return Z[e.kind]||_;if(s.default.isNamedTupleMember(e))Object.assign(n,g(e));else return g(e,!0)}}}}return n}var V=(e,n,t)=>[...(e==null?void 0:e.filter(i=>!(n!=null&&n.some(r=>(t||(()=>r===i))(r,i)))))||[],...n||[]];function J(e,n){if(e!==void 0&&e!==_)return typeof e=="string"?j.has(e)||n!=null&&n.includes(e)?e:void 0:e}function Oe(e){var n,t;(n=e.methods)==null||n.forEach(i=>ue(i,e.genericsParams)),(t=e.properties)==null||t.forEach(i=>pe(i,e.genericsParams))}function _e(e){var n,t;(n=e.methods)==null||n.forEach(i=>ue(i,e.genericsParams)),(t=e.properties)==null||t.forEach(i=>pe(i,e.genericsParams))}function pe(e,n){e.type=J(e.type,n)}function ue(e,n){var t;(t=e.args)==null||t.forEach(i=>i.type=J(i.type,n)),e.returnType=J(e.returnType,n)}function a(e){if(!e)return e;if(e.end<0)return e.text;try{let n=e;return s.default.isQualifiedName(n)?a(n.right):n.getText()}catch(n){return e.text}}function W(e){e&&Object.entries(e).forEach(n=>{let[t,i]=n;i instanceof Array&&i.length===0||i===!1||i===void 0?delete e[t]:i.constructor===Array?i.forEach(W):i.constructor===Object&&W(i)})}function Ae(e){for(let n of e.values())W(n)}function Me(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=C.cwd()){return te(e).replace(te(n)+"/","")}function te(e){let n=R.sep;return e.split(n).join("/")}function me(e){return e instanceof Array?e:[e]}function x(e){F.OUTPUT_LOG&&console.log(e)}function X(e){let{sourcePaths:n,exclude:t,forEnabledClassOnly:i,outputLog:r}=e;if(r&&(F.OUTPUT_LOG=!0),!n)throw new Error("need provide source paths for reflect loader");r&&console.log(`sourcePaths: ${n}, exclude: ${t}, forEnabledClassOnly: ${i}`);let{classDefinitions:o,interfaceDefinitions:f,enumDefinitions:d,typeAliasDefinitions:T}=U(n,t),D=[],E=[];function K(y){let p=[];return(()=>{let m=o.get(y);if(m){m.superClassName&&p.push(m.superClassName),p.push(...m.implementations||[]);return}let M=f.get(y);if(M){p.push(...M.implementations||[]);return}T.get(y)&&p.push(y)})(),p.flatMap(m=>[m,...K(m)])||[]}function P(y,p){return K(y.name).includes(p)}function u(y){if(q.default.isClassDeclaration(y)&&y.name!==void 0){let p=y.name.text,m=o.get(p);if(!p||!m||i&&!P(m,"EnableReflect"))return;E.push(`Reflect.__classDef = Object.assign(Reflect.__classDef || {}, { ${p} })`);return}y.forEachChild(u)}function h(){let y=[];return o.forEach((p,m)=>{i&&!P(p,"EnableReflect")||y.push(`Reflect.__classes = Object.assign(Reflect.__classes || {}, { ${m}: ${JSON.stringify(p)} })`)}),f.forEach((p,m)=>{i&&!P(p,"EnableReflect")||y.push(`Reflect.__interfaces = Object.assign(Reflect.__interfaces || {}, { ${m}: ${JSON.stringify(p)} })`)}),d.forEach((p,m)=>{y.push(`Reflect.__enums = Object.assign(Reflect.__enums || {}, { ${m}: ${JSON.stringify(p)} })`)}),T.forEach((p,m)=>{y.push(`Reflect.__typeAliases = Object.assign(Reflect.__typeAliases || {}, { ${m}: ${JSON.stringify(p)} })`)}),y.join(`
|
|
2
|
-
`)}return{outputAllMetas:h,transform:(y,p)=>{if(p.endsWith(".ts")&&!(typeof n=="string"?[n]:n).every(m=>!p.startsWith(m))){r&&console.log(`transform id: ${p}`);try{let m=q.default.createSourceFile(p,y,q.default.ScriptTarget.Latest,!1);return D.length=0,E.length=0,u(m),`${D.join(";")};${y};${E.join(";")}`}catch(m){return console.error(`[reflect-parser-plugin] Error processing ${p}:`,m),null}}}}}var ke=process.cwd().replace(/\\/g,"/")+"/";function ve(e){let n=X(e);return{name:"reflect-parser-plugin",enforce:"pre",transform:(t,i)=>(i=i.replace(ke,""),i===e.entry?`${n.outputAllMetas()}
|
|
1
|
+
var de=Object.create;var F=Object.defineProperty;var ge=Object.getOwnPropertyDescriptor;var De=Object.getOwnPropertyNames;var we=Object.getPrototypeOf,Te=Object.prototype.hasOwnProperty;var Re=(e,n)=>{for(var t in n)F(e,t,{get:n[t],enumerable:!0})},Z=(e,n,t,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let a of De(n))!Te.call(e,a)&&a!==t&&F(e,a,{get:()=>n[a],enumerable:!(i=ge(n,a))||i.enumerable});return e};var C=(e,n,t)=>(t=e!=null?de(we(e)):{},Z(n||!e||!e.__esModule?F(t,"default",{value:e,enumerable:!0}):t,e)),he=e=>Z(F({},"__esModule",{value:!0}),e);var B=(e,n,t)=>new Promise((i,a)=>{var r=m=>{try{l(t.next(m))}catch(x){a(x)}},d=m=>{try{l(t.throw(m))}catch(x){a(x)}},l=m=>m.done?i(m.value):Promise.resolve(m.value).then(r,d);l((t=t.apply(e,n)).next())});var Le={};Re(Le,{DEBUG_CONFIG:()=>z,parseSource:()=>q,reflectLoader:()=>Y,reflectParserPlugin:()=>Ie,setupReflectTypes:()=>xe,updateReflectModules:()=>X});module.exports=he(Le);var G=C(require("typescript"),1);function R(e){return e||{}}var s=C(require("typescript"),1),S=C(require("fs"),1),I=C(require("process"),1),h=C(require("path"),1),se=require("url");var z={OUTPUT_LOG:!1},k=new Map,M=new Map,$=new Map,v=new Map,H=new Map,j=new Set,ee={[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",re=["string","number","boolean","bigint","symbol"],ae=["any","Promise","Date","Error","undefined","unknown","object","Map","Set"],oe=["Mappable","EnableReflect"];[...re,...ae,...oe].forEach(pe);oe.forEach(e=>M.set(e,{name:e}));var _,ne=!1,U=Reflect;function xe(e){return B(this,null,function*(){let{filePaths:n,exclude:t,sourceFolder:i,distFolder:a}=e;if(i=h.resolve(i||I.cwd()),a=h.resolve(a||I.cwd()),U.__meta!==void 0)return;let r={classes:R(),interfaces:R(),typeAliases:R(),constTypes:R(),enums:R()};n=ye(n);let d=n.map(l=>h.join(i,l));q(d,t);for(let[l,m]of k)r.classes[l]=m;for(let[l,m]of M)r.interfaces[l]=m;for(let[l,m]of v)r.typeAliases[l]=m;for(let[l,m]of $)r.enums[l]=m;for(let[l,m]of H)r.constTypes[l]=m;U.__meta=btoa(JSON.stringify(r)),yield Promise.all(n.map(l=>X(l,a)))})}function X(e,n){return B(this,null,function*(){let t=h.resolve(n,e);if(!S.existsSync(t))return;if(S.statSync(t).isDirectory()){let l=S.readdirSync(t);yield Promise.all(l.map(m=>X(h.join(e,m),n)));return}if(!e.endsWith(".js"))return;let a=h.join(n,e),d=yield import((0,se.pathToFileURL)(a).href);U.__classDef={},Object.values(d).forEach(l=>{typeof l=="function"&&(U.__classDef[l.name]=l)})})}function q(e,n){if(e||(e=[I.cwd()]),e=ye(e),!ne){let t=fe(e,n),i=s.default.createProgram(t,{});_=i.getTypeChecker(),t=t.map(r=>te(r)),i.getSourceFiles().filter(r=>t.includes(te(r.fileName))||r.fileName.endsWith("/lib.es5.d.ts")).forEach(r=>{b(`parse file: ${r.fileName}`),ce(r)});for(let r of j.keys())!k.has(r)&&!M.has(r)&&!$.has(r)&&!v.has(r)&&!re.includes(r)&&!ae.includes(r)&&(b(`remove unknown typeName: ${r}`),j.delete(r));Array.from(k.values()).forEach(Ae),Array.from(M.values()).forEach(Oe),[k,M,v].forEach(ke),ne=!0}return{classDefinitions:k,interfaceDefinitions:M,enumDefinitions:$,typeAliasDefinitions:v,constTypeDefinitions:H}}function fe(e,n){let t=[];return e.forEach(i=>{if(i=h.resolve(i),Ce(i,n)){b(`ignore excluded ${i}`);return}if(!S.existsSync(i)){console.error(`Path ${i} does not exist.`);return}if(S.statSync(i).isFile()){t.push(i);return}S.readdirSync(i).forEach(d=>t.push(...fe([h.join(i,d)],n)))}),t}function ce(e){s.default.isClassDeclaration(e)?Ee(e):s.default.isInterfaceDeclaration(e)?Pe(e):s.default.isEnumDeclaration(e)?be(e):s.default.isTypeAliasDeclaration(e)?Se(e):s.default.isConstTypeReference(e)?Ne(e):e.forEachChild(ce)}function Ee(e){var l,m,x,N,E,K,u,w,L,V,y,D,c,T;let n=o(e.name);if(!n)return;let t=o((x=(m=(l=e.heritageClauses)==null?void 0:l.find(f=>f.token===s.default.SyntaxKind.ExtendsKeyword))==null?void 0:m.types)==null?void 0:x[0].expression),i=(E=(N=e.heritageClauses)==null?void 0:N.find(f=>f.token===s.default.SyntaxKind.ImplementsKeyword))==null?void 0:E.types.map(f=>o(f.expression)),a=[],r=[];for(let f of e.members)if(s.default.isPropertyDeclaration(f))a.push({name:o(f.name),isOptional:f.questionToken!==void 0,type:g(f),isPrivate:(K=f.modifiers)==null?void 0:K.some(p=>p.kind===s.default.SyntaxKind.PrivateKeyword),isStatic:(u=f.modifiers)==null?void 0:u.some(p=>p.kind===s.default.SyntaxKind.StaticKeyword),isReadonly:(w=f.modifiers)==null?void 0:w.some(p=>p.kind===s.default.SyntaxKind.ReadonlyKeyword)});else if(s.default.isMethodDeclaration(f))r.push({name:o(f.name),returnType:g(f),isPrivate:(L=f.modifiers)==null?void 0:L.some(p=>p.kind===s.default.SyntaxKind.PrivateKeyword),isStatic:(V=f.modifiers)==null?void 0:V.some(p=>p.kind===s.default.SyntaxKind.StaticKeyword),isAsync:(y=f.modifiers)==null?void 0:y.some(p=>p.kind===s.default.SyntaxKind.AsyncKeyword),args:f.parameters.map(p=>({name:o(p.name),type:g(p),isOptional:p.questionToken!==void 0}))});else if(s.default.isGetAccessorDeclaration(f)){let p=a.find(A=>A.name===o(f.name));p||(p={name:o(f.name),isOptional:f.questionToken===void 0,type:g(f)},a.push(p)),p.accessor=p.accessor||{},p.accessor.getter={isPrivate:((D=f.modifiers)==null?void 0:D.some(A=>A.kind===s.default.SyntaxKind.PrivateKeyword))||!1},p.isPrivate=p.accessor.getter.isPrivate}else if(s.default.isSetAccessorDeclaration(f)){let p=a.find(A=>A.name===o(f.name));p||(p={name:o(f.name),isOptional:f.questionToken===void 0,type:g(f)},a.push(p)),p.accessor=p.accessor||{},p.accessor.setter={isPrivate:((c=f.modifiers)==null?void 0:c.some(A=>A.kind===s.default.SyntaxKind.PrivateKeyword))||!1}}let d={name:n,superClassName:t,implementations:i,properties:a,methods:r,genericsParams:(T=e.typeParameters)==null?void 0:T.map(f=>o(f.name))};b(`Define class: ${o(e.name)}`),k.set(n,d)}function Pe(e){var l,m,x,N,E,K;let n=o(e.name);if(!n)return;let t=((m=(l=e.heritageClauses)==null?void 0:l.find(u=>u.token===s.default.SyntaxKind.ExtendsKeyword))==null?void 0:m.types.map(u=>o(u.expression)))||[],i=[],a=[],r;for(let u of e.members)s.default.isPropertySignature(u)?i.push({name:o(u.name),isOptional:u.questionToken!==void 0,type:g(u),isPrivate:((x=u.modifiers)==null?void 0:x.some(w=>w.kind===s.default.SyntaxKind.PrivateKeyword))||!1,isReadonly:((N=u.modifiers)==null?void 0:N.some(w=>w.kind===s.default.SyntaxKind.ReadonlyKeyword))||!1}):s.default.isMethodSignature(u)?a.push({name:u.name.text,returnType:g(u),isPrivate:((E=u.modifiers)==null?void 0:E.some(w=>w.kind===s.default.SyntaxKind.PrivateKeyword))||!1,args:u.parameters.map(w=>({name:o(w.name),type:g(w),isOptional:w.questionToken!==void 0}))}):s.default.isIndexSignatureDeclaration(u)&&(r=g(u));let d=M.get(n);d?(d.implementations=W(d.implementations||[],t),d.methods=W(d.methods||[],a,(u,w)=>u.name===w.name),d.properties=W(d.properties||[],i,(u,w)=>u.name===w.name),d.indexElementType=r,b(`Merge interface ${o(e.name)}`)):(d={name:n,implementations:t,methods:a,properties:i,indexElementType:r,genericsParams:(K=e.typeParameters)==null?void 0:K.map(u=>o(u.name))},M.set(n,d),b(`Define interface ${o(e.name)}`))}function be(e){let n=o(e.name);n&&($.set(n,{name:n,members:e.members.map(t=>({name:o(t.name),initializer:o(t.initializer)}))}),b(`Define enum: ${o(e.name)}`))}function Se(e){var a;b(`Define typeAlias: ${o(e.name)}`);let n=g(e),t=(a=e.typeParameters)==null?void 0:a.map(r=>o(r.name)),i=o(e.name);v.set(i,{name:i,type:n,genericParams:t})}function Ne(e){let n=e.parent.parent;s.default.isVariableDeclaration(n)&&n.initializer&&s.default.isAsExpression(n.initializer)&&H.set(o(n.name),le(n.initializer.expression))}function le(e){return s.default.isArrayLiteralExpression(e)?Ke(e):s.default.isObjectLiteralExpression(e)?Me(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 Ke(e){let n=[];return e.elements.forEach(t=>{if(s.default.isStringLiteral(t))return n.push(o(t))}),n.length===0?O:n.length===1?n[0]:{unionMembers:n}}function Me(e){let n=[];return e.properties.map(t=>{s.default.isPropertyAssignment(t)?n.push({name:o(t.name),type:le(t.initializer)}):b(`unsupported property: ${t.name}`)}),{typeLiteralMembers:n}}function pe(e){j.add(e)}function g(e,n=!1){if(e.type&&!n)return P(e.type);if(!_)return console.error("TypeChecker not initialized!"),O;let t=_.getTypeAtLocation(e),i=_.typeToTypeNode(t,void 0,void 0);return i?P("type"in i?i.type:i):O}function P(e){let n={};if(e===void 0)return O;if(s.default.isTypeReferenceNode(e))if(pe(o(e.typeName)),e.typeArguments)n.generics=[o(e.typeName),...e.typeArguments.map(t=>P(t))];else return o(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 g(e);if(s.default.isTypeLiteralNode(e)){let t=[];e.members.forEach(i=>{s.default.isPropertySignature(i)?t.push({name:o(i.name),isOptional:i.questionToken!==void 0,type:g(i)}):s.default.isIndexSignatureDeclaration(i)?n.indexElementType=g(i):t.push({name:o(i.name)||"",isOptional:i.questionToken!==void 0,type:P()})}),n.typeLiteralMembers=t}else if(s.default.isArrayTypeNode(e))n.arrayElementType=P(e.elementType);else if(s.default.isTupleTypeNode(e))n.tupleMembers=e.elements.map(P);else if(s.default.isOptionalTypeNode(e))Object.assign(n,g(e)),n.isOptionalInTuple=!0;else{if(s.default.isRestTypeNode(e))return g(e);if(s.default.isUnionTypeNode(e))n.unionMembers=e.types.map(P);else if(s.default.isIntersectionTypeNode(e))n.intersectionMembers=e.types.map(P);else{if(s.default.isConditionalTypeNode(e))return g(e);if(s.default.isInferTypeNode(e))return g(e);if(s.default.isParenthesizedTypeNode(e))return g(e);if(s.default.isThisTypeNode(e))return g(e);if(s.default.isTypeOperatorNode(e)&&e.operator===s.default.SyntaxKind.KeyOfKeyword)return g(e,!0);if(s.default.isIndexedAccessTypeNode(e))return g(e,!0);if(s.default.isMappedTypeNode(e))n.indexElementType=P(e.type);else if(s.default.isLiteralTypeNode(e))n.literalValue=o(e.literal);else{if(Object.keys(ee).includes(String(e.kind)))return ee[e.kind]||O;if(s.default.isNamedTupleMember(e))Object.assign(n,g(e));else return g(e,!0)}}}}return n}var W=(e,n,t)=>[...(e==null?void 0:e.filter(i=>!(n!=null&&n.some(a=>(t||(()=>a===i))(a,i)))))||[],...n||[]];function J(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 Ae(e){var n,t;(n=e.methods)==null||n.forEach(i=>me(i,e.genericsParams)),(t=e.properties)==null||t.forEach(i=>ue(i,e.genericsParams))}function Oe(e){var n,t;(n=e.methods)==null||n.forEach(i=>me(i,e.genericsParams)),(t=e.properties)==null||t.forEach(i=>ue(i,e.genericsParams))}function ue(e,n){e.type=J(e.type,n)}function me(e,n){var t;(t=e.args)==null||t.forEach(i=>i.type=J(i.type,n)),e.returnType=J(e.returnType,n)}function o(e){if(!e)return e;if(e.end<0)return e.text;try{let n=e;return s.default.isQualifiedName(n)?o(n.right):n.getText()}catch(n){return e.text}}function Q(e){e&&Object.entries(e).forEach(n=>{let[t,i]=n;i instanceof Array&&i.length===0||i===!1||i===void 0?delete e[t]:i.constructor===Array?i.forEach(Q):i.constructor===Object&&Q(i)})}function ke(e){for(let n of e.values())Q(n)}function Ce(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 te(e,n=I.cwd()){return ie(e).replace(ie(n)+"/","")}function ie(e){let n=h.sep;return e.split(n).join("/")}function ye(e){return e instanceof Array?e:[e]}function b(e){z.OUTPUT_LOG&&console.log(e)}function Y(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:d,enumDefinitions:l,typeAliasDefinitions:m,constTypeDefinitions:x}=q(n,t),N=[],E=[];function K(y){let D=[];return(()=>{let c=r.get(y);if(c){c.superClassName&&D.push(c.superClassName),D.push(...c.implementations||[]);return}let T=d.get(y);if(T){D.push(...T.implementations||[]);return}m.get(y)&&D.push(y)})(),D.flatMap(c=>[c,...K(c)])||[]}function u(y,D){return K(y.name).includes(D)}function w(y){if(G.default.isClassDeclaration(y)&&y.name!==void 0){let D=y.name.text,c=r.get(D);if(!D||!c||i&&!u(c,"EnableReflect"))return;E.push(`Reflect.registerClass?Reflect.registerClass({${D}}):(Reflect.__classDef=Object.assign(Reflect.__classDef||{},{${D}}))`);return}y.forEachChild(w)}function L(){let y={classes:R(),interfaces:R(),typeAliases:R(),constTypes:R(),enums:R()};return r.forEach((c,T)=>{i&&!u(c,"EnableReflect")||(y.classes[T]=c)}),d.forEach((c,T)=>{i&&!u(c,"EnableReflect")||(y.interfaces[T]=c)}),l.forEach((c,T)=>{y.enums[T]=c}),m.forEach((c,T)=>{y.typeAliases[T]=c}),x.forEach((c,T)=>{y.constTypes[T]=c}),`;Reflect.__meta='${btoa(JSON.stringify(y))}'`}return{outputAllMetas:L,transform:(y,D)=>{if(D.endsWith(".ts")&&!(typeof n=="string"?[n]:n).every(c=>!D.startsWith(c))){a&&console.log(`transform id: ${D}`);try{let c=G.default.createSourceFile(D,y,G.default.ScriptTarget.Latest,!1);return N.length=0,E.length=0,w(c),`${N.join(";")};${y};${E.join(";")}`}catch(c){return console.error(`[reflect-parser-plugin] Error processing ${D}:`,c),null}}}}}var ve=process.cwd().replace(/\\/g,"/")+"/";function Ie(e){let n=Y(e);return{name:"reflect-parser-plugin",enforce:"pre",transform:(t,i)=>(i=i.replace(ve,""),i===e.entry?`${n.outputAllMetas()}
|
|
3
2
|
${t}`:n.transform(t,i))}}0&&(module.exports={DEBUG_CONFIG,parseSource,reflectLoader,reflectParserPlugin,setupReflectTypes,updateReflectModules});
|
package/dist/esm/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var
|
|
2
|
-
caused by: `):this.errorMessage}get errorMessage(){return`[Err${this.errorCode}] ${this.errorDesc}`}};o(O,"ValidateResult"),O.success=new O(!0);var
|
|
3
|
-
-> `)}o(Ge,"getErrorTraceMessages");var ge=class ge{constructor(t){this.rawDef=t}get name(){return this.rawDef.name}get isReadonly(){return this.rawDef.isReadonly}get isOptional(){return this.rawDef.isOptional}get isPrivate(){return this.rawDef.isPrivate}get isStatic(){return this.rawDef.isStatic}get accessor(){return this.rawDef.accessor}get type(){return d(this.rawDef.type)}get rawDefinition(){return S(this.rawDef)}};o(ge,"PropertyDefinition");var C=ge;function G(e){return new C(e)}o(G,"fillProperty");var B=class B extends C{static create(t,n){let i=x(B,t);return i.genericContext=n,i}get type(){return d(this.rawDef.type,this.genericContext)}};o(B,"GenericProperty");var L=B;var De=class De{constructor(t){this.rawDef=t}get name(){return this.rawDef.name}get returnType(){return d(this.rawDef.returnType)}get args(){var t;return((t=this.rawDef.args)==null?void 0:t.map(n=>({name:n.name,type:d(n.type),isOptional:n.isOptional})))||[]}get isPrivate(){return this.rawDef.isPrivate}get isStatic(){return this.rawDef.isStatic}get isAsync(){return this.rawDef.isAsync}};o(De,"MethodDefinition");var K=De;function Z(e){return new K(e)}o(Z,"fillMethod");var U=class U extends K{static create(t,n){let i=x(U,t);return i.genericContext=n,i}get args(){var t;return((t=this.rawDef.args)==null?void 0:t.map(n=>({name:n.name,type:d(n.type,this.genericContext),isOptional:n.isOptional})))||[]}get returnType(){return d(this.rawDef.returnType,this.genericContext)}};o(U,"GenericMethod");var W=U;function x(e,t){let n=Object.create(e.prototype);return Object.assign(n,t),n}o(x,"createInstance");function q(e,t){e.properties=t.properties.map(n=>L.create(n,e.genericContext)),e.methods=t.methods.map(n=>W.create(n,e.genericContext))}o(q,"buildPropertiesAndMethods");function he(e,t){let n={};return e.forEach(i=>{let[r,s]=t(i);n[r]=s}),n}o(he,"toDictionary");function Y(e,t){return(e==null?void 0:e.map(t).filter(n=>n!==void 0))||[]}o(Y,"mapNotNull");function E(e,t){if(e!==void 0)return e[t]}o(E,"getValue");function S(e){return JSON.parse(JSON.stringify(e))}o(S,"copy");var Me=class Me{constructor(t){this.name=t.name,this.members=new Map,t.members.forEach(n=>{let i=n.initializer===void 0?{name:"number"}:{literalValue:n.initializer};this.members.set(n.name,i)})}get type(){return{name:this.name,unionMembers:Array.from(this.members.values())}}get names(){return Array.from(this.members.keys())}};o(Me,"EnumDefinition");var J=Me;var bt=["Partial","Required","Readonly","Pick","Omit","Extract","Exclude"];function Ke(e){return typeof e=="string"&&bt.includes(e)}o(Ke,"isSpecialType");function gt(e,t,n,i){switch(e){case"Partial":t=Dt(n);break;case"Required":t=ht(n);break;case"Readonly":t=Mt(n);break;case"Pick":t=Ze(n,i);break;case"Omit":t=qe(n,i);break;case"Extract":t=xt(n,i);break;case"Exclude":t=wt(n,i);break}return t}o(gt,"getSpecialType");function We(e,t){let[n,i]=t,r,s=["Pick","Omit","Extract","Exclude"].includes(e)?["T"]:["T","K"];return r=gt(e,r,n,i),r?{name:e,type:r,genericParams:s,rawType:e}:void 0}o(We,"getSpecialTypeAlias");function A(e,t){return e.typeLiteralMembers?{typeLiteralMembers:e.typeLiteralMembers.map(n=>{let i=S(n.rawDefinition);return t(i),new C(i)})}:e.unionMembers?{unionMembers:e.unionMembers.map(n=>A(n,t))}:e.intersectionMembers?{intersectionMembers:e.intersectionMembers.map(n=>A(n,t))}:void 0}o(A,"getMappedType");function Ue(e,t){if(e.typeLiteralMembers)return{typeLiteralMembers:e.typeLiteralMembers.map(n=>t(n)?S(n):void 0).filter(n=>!!n)}}o(Ue,"getFilterKeyType");function Dt(e){return A(e,t=>t.isOptional=!0)}o(Dt,"getPartialType");function ht(e){return A(e,t=>t.isOptional=!1)}o(ht,"getRequiredType");function Mt(e){return A(e,t=>t.isReadonly=!0)}o(Mt,"getReadonlyType");function Ze(e,t){var i;let n=(i=t.unionMembers)==null?void 0:i.map(r=>r.name);if(e.typeLiteralMembers)return Ue(e,r=>r.name===t.literalValue||(n==null?void 0:n.includes(r.name)))}o(Ze,"getPickType");function qe(e,t){var i;let n=(i=t.unionMembers)==null?void 0:i.map(r=>r.name);if(e.typeLiteralMembers)return Ue(e,r=>!(r.name===t.literalValue||n!=null&&n.includes(r.name)))}o(qe,"getOmitType");function xt(e,t){if(e.typeLiteralMembers&&t.typeLiteralMembers){let n={unionMembers:t.typeLiteralMembers.map(i=>({literalValue:i.name}))};return Ze(e,n)}}o(xt,"getExtractType");function wt(e,t){if(e.typeLiteralMembers&&t.typeLiteralMembers){let n={unionMembers:t.typeLiteralMembers.map(i=>({literalValue:i.name}))};return qe(e,n)}}o(wt,"getExcludeType");var k=new Map,Q=new Map,H=new Map,X=new Map,Rt=new Map,Sn=o((e=>{Rt.set(e.name,e)}),"ReflectClass"),St={string:String,number:Number,boolean:Boolean,object:Object},T=Reflect;function xe(e){var t;return((t=y(e))==null?void 0:t.jsClass)||St[e]}o(xe,"getClassByName");function y(e){var t,n,i;switch(typeof e){case"object":return y(e.constructor);case"function":let r=y(e.name);if(r)return r;let s=Array.from(k.values()).find(l=>l.jsClass===e);if(s)return s;let a=(t=Object.entries(T.__classDef||{}).find(([l,u])=>u===e))==null?void 0:t[0];return a?y(a):void 0;case"string":let c=e;if(!k.has(c)){let l=(n=T.__classes)==null?void 0:n[c];if(!l)return;let u=(i=T.__classDef)==null?void 0:i[c];k.set(c,new V(be(j({},l),{jsClass:u})))}return k.get(c)}}o(y,"getClassDefinition");function I(e){var t;if(!Q.has(e)){let n=(t=T.__interfaces)==null?void 0:t[e];if(!n)return;Q.set(e,new w(n))}return Q.get(e)}o(I,"getInterfaceDefinition");function ee(e){var t;if(!H.has(e)){let n=(t=T.__enums)==null?void 0:t[e];if(!n)return;H.set(e,new J(n))}return H.get(e)}o(ee,"getEnumDefinition");function Pn(e){var t;return((t=ee(e))==null?void 0:t.names)||[]}o(Pn,"getEnumNames");function jn(e){let t=Object.entries(e)[0];if(!t)return[];let[n,i]=t,r=ee(n);return r?r.names.map(s=>i[s]):Array.from(Object.keys(i))}o(jn,"getEnumValues");function Ye(e,t){var i;if(Ke(e))return!t||!t[0]?void 0:We(e,[t[0],t[1]]);if(!X.has(e)){let r=(i=T.__typeAliases)==null?void 0:i[e];if(!r||!r.type)return;X.set(e,{name:e,rawType:r.type,type:d(r.type),genericParams:r.genericParams})}let n=S(X.get(e));if(n.genericParams&&t){let r={};for(let s=0;s<n.genericParams.length;s++){let a=n.genericParams[s];r[a]=t[s]}n.type=d(n.rawType,r,t)}return n}o(Ye,"getTypeAliasDefinition");function On(){T.__classes&&Object.entries(T.__classes).map(([e,t])=>{var i;let n=(i=T.__classDef)==null?void 0:i[e];n&&k.set(e,new V(be(j({},t),{jsClass:n})))}),T.__interfaces&&Object.entries(T.__interfaces).map(([e,t])=>Q.set(e,new w(t))),T.__enums&&Object.entries(T.__enums).map(([e,t])=>H.set(e,new J(t))),T.__typeAliases&&Object.entries(T.__typeAliases).map(([e,t])=>{X.set(e,{name:e,rawType:t.type,type:d(t.type),genericParams:t.genericParams})}),["__classDef","__classes","__interfaces","__enums","__typeAliases","initReflectContext"].forEach(e=>delete T[e])}o(On,"initReflectContext");var ne=class ne{constructor(t){var n,i;this.name=t.name,this._implementationNames=t.implementations||[],this.methods=((n=t.methods)==null?void 0:n.map(Z))||[],this.properties=((i=t.properties)==null?void 0:i.map(G))||[],this.generics=t.genericsParams}get implementations(){return this._implementations||(this._implementations=Y(this._implementationNames,t=>{var n;return I(t)||((n=y(t))==null?void 0:n.type)||D(t)})),this._implementations}get allImplementations(){if(this._allImplementations===void 0){let t=new Set(this.implementations);this.implementations.forEach(n=>{n instanceof ne?n.allImplementations.forEach(i=>t.add(i)):t.add(n)}),this._allImplementations=Array.from(t)}return this._allImplementations}get type(){let t={};return this.allImplementations.forEach(n=>{let r=("type"in n?n.type:n).typeLiteralMembers;r==null||r.forEach(s=>t[s.name]=s)}),this.properties.forEach(n=>t[n.name]=n),{name:this.name,typeLiteralMembers:Object.values(t)}}toString(){return`interface ${this.name}`}};o(ne,"InterfaceDefinition");var w=ne,ie=class ie extends w{static create(t,n){let i=x(ie,t);i.genericArgs=n;let r=i;return r.buildGenericContext(),q(r,t),r}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((n,i)=>this.genericContext[n]=this.genericArgs[i])}};o(ie,"GenericInterface");var te=ie;var we=class we{constructor(t){var n,i;this.name=t.name,this.superClassName=t.superClassName||"Object",this.superClass=y(this.superClassName),this._implementationNames=t.implementations||[],this.methods=((n=t.methods)==null?void 0:n.map(Z))||[],this.properties=((i=t.properties)==null?void 0:i.map(G))||[],this.jsClass=t.jsClass,this.generics=t.genericsParams}get allMethods(){let t={};if(this.superClassName!=="Object"){let n=y(this.superClassName);n&&Object.assign(t,j({},n.allMethods))}return Object.assign(t,j({},he(this.methods,n=>[n.name,n]))),t}get allProperties(){var t;return Object.assign(((t=this.superClass)==null?void 0:t.allProperties)||{},he(this.properties,n=>[n.name,n]))}get implementations(){return this._implementations?this._implementations:Y(this._implementationNames,t=>I(t)||D(t))}get allImplementations(){var t,n;if(this._allImplementations===void 0){let i=new Set(this.implementations);this.implementations.forEach(r=>{r instanceof w?r.allImplementations.forEach(s=>i.add(s)):i.add(r)}),(n=(t=this.superClass)==null?void 0:t.allImplementations)==null||n.forEach(r=>i.add(r)),this._allImplementations=Array.from(i)}return this._allImplementations}getProperty(t){return this.properties.find(n=>n.name===t)}get type(){var n,i;let t={};return(i=(n=this.superClass)==null?void 0:n.type.typeLiteralMembers)==null||i.forEach(r=>t[r.name]=r),this.properties.forEach(r=>t[r.name]=r),{name:this.name,classDefinition:this,typeLiteralMembers:Object.values(t)}}isSubClassOf(t){var n;return this.name===t||(n=this.superClass)!=null&&n.isSubClassOf(t)?!0:this.implementations.map(i=>i.name).includes(t)}isSuperClassOf(t){if(this.name===t)return!0;let n=y(t);return n?n.isSubClassOf(this.name):!1}toString(){return`class ${this.name}`}};o(we,"ClassDefinition");var V=we,oe=class oe extends V{static create(t,n){let i=x(oe,t);i.genericArgs=n;let r=i;return r.buildGenericContext(),q(r,t),r}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((n,i)=>this.genericContext[n]=this.genericArgs[i])}};o(oe,"GenericClass");var re=oe;function h(e){if(typeof e=="string"){let t=jt(e);if(typeof t=="string"){let n=t.match(/\"(.+)\"$/)||t.match(/\'(.+)\'$/);if(n!=null&&n[1])return{literalValue:n[1]}}return typeof t=="string"?D(e):h(t)}return Array.isArray(e)?D(e[0],e.slice(1).map(h)):"array"in e?{arrayElementType:h(e.array)}:"union"in e?{unionMembers:e.union.map(h)}:"intersection"in e?{intersectionMembers:e.intersection.map(h)}:"tuple"in e?{tupleMembers:e.tuple.map(h)}:e}o(h,"getTypeDef");function Zn(e,t,n=5){let i=b(e,h(t),n);if(!i.success){console.error(`assert failed with type: ${t}
|
|
4
|
-
${i.errorStackFlow}`);debugger;throw new Error(`assert failed with type: ${t}, ${i.errorStackFlow}`)}return e}o(
|
|
5
|
-
${l.errorStackFlow}`);return a},"checkValue"),r=t.returnType;return r.name==="Promise"&&(r=((s=r.generics)==null?void 0:s[0])||
|
|
1
|
+
var Ge=Object.defineProperty,dt=Object.defineProperties;var Tt=Object.getOwnPropertyDescriptors;var Be=Object.getOwnPropertySymbols;var bt=Object.prototype.hasOwnProperty,gt=Object.prototype.propertyIsEnumerable;var _e=(e,t,n)=>t in e?Ge(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,V=(e,t)=>{for(var n in t||(t={}))bt.call(t,n)&&_e(e,n,t[n]);if(Be)for(var n of Be(t))gt.call(t,n)&&_e(e,n,t[n]);return e},Ke=(e,t)=>dt(e,Tt(t)),o=(e,t)=>Ge(e,"name",{value:t,configurable:!0});var O=class O{constructor(t,n,i,r){this.success=t;this.errorCode=n;this.errorDesc=i;this.cause=r}static failure(t,n,i){return new O(!1,t,n,i)}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(O,"ValidateResult"),O.success=new O(!0);var v=O,p=v.success,f=v.failure;function We(e){let t=o(n=>n.errorMessage?[n.errorMessage,...n.cause?t(n.cause):[]]:[],"getAllTraceMessages");return t(e).join(`
|
|
3
|
+
-> `)}o(We,"getErrorTraceMessages");var de=class de{constructor(t){this.rawDef=t}get name(){return this.rawDef.name}get isReadonly(){return this.rawDef.isReadonly}get isOptional(){return this.rawDef.isOptional}get isPrivate(){return this.rawDef.isPrivate}get isStatic(){return this.rawDef.isStatic}get accessor(){return this.rawDef.accessor}get type(){return d(this.rawDef.type)}get rawDefinition(){return h(this.rawDef)}};o(de,"PropertyDefinition");var j=de;function _(e){return new j(e)}o(_,"fillProperty");var B=class B extends j{static create(t,n){let i=x(B,t);return i.genericContext=n,i}get type(){return d(this.rawDef.type,this.genericContext)}};o(B,"GenericProperty");var L=B;var Te=class Te{constructor(t){this.rawDef=t}get name(){return this.rawDef.name}get returnType(){return d(this.rawDef.returnType)}get args(){var t;return((t=this.rawDef.args)==null?void 0:t.map(n=>({name:n.name,type:d(n.type),isOptional:n.isOptional})))||[]}get isPrivate(){return this.rawDef.isPrivate}get isStatic(){return this.rawDef.isStatic}get isAsync(){return this.rawDef.isAsync}};o(Te,"MethodDefinition");var G=Te;function U(e){return new G(e)}o(U,"fillMethod");var W=class W extends G{static create(t,n){let i=x(W,t);return i.genericContext=n,i}get args(){var t;return((t=this.rawDef.args)==null?void 0:t.map(n=>({name:n.name,type:d(n.type,this.genericContext),isOptional:n.isOptional})))||[]}get returnType(){return d(this.rawDef.returnType,this.genericContext)}};o(W,"GenericMethod");var K=W;function x(e,t){let n=Object.create(e.prototype);return Object.assign(n,t),n}o(x,"createInstance");function Z(e,t){e.properties=t.properties.map(n=>L.create(n,e.genericContext)),e.methods=t.methods.map(n=>K.create(n,e.genericContext))}o(Z,"buildPropertiesAndMethods");function be(e,t){let n={};return e.forEach(i=>{let[r,s]=t(i);n[r]=s}),n}o(be,"toDictionary");function q(e,t){return(e==null?void 0:e.map(t).filter(n=>n!==void 0))||[]}o(q,"mapNotNull");function N(e,t){if(e!==void 0)return e[t]}o(N,"getValue");function h(e){return JSON.parse(JSON.stringify(e))}o(h,"copy");var ge=class ge{constructor(t){this.name=t.name,this.members=new Map,t.members.forEach(n=>{let i=n.initializer===void 0?{name:"number"}:{literalValue:n.initializer};this.members.set(n.name,i)})}get type(){return{name:this.name,unionMembers:Array.from(this.members.values())}}get names(){return Array.from(this.members.keys())}};o(ge,"EnumDefinition");var Y=ge;var Dt=["Partial","Required","Readonly","Pick","Omit","Extract","Exclude"];function Ue(e){return typeof e=="string"&&Dt.includes(e)}o(Ue,"isSpecialType");function ht(e,t,n,i){switch(e){case"Partial":t=Mt(n);break;case"Required":t=xt(n);break;case"Readonly":t=wt(n);break;case"Pick":t=Ye(n,i);break;case"Omit":t=Qe(n,i);break;case"Extract":t=Rt(n,i);break;case"Exclude":t=St(n,i);break}return t}o(ht,"getSpecialType");function Ze(e,t){let[n,i]=t,r,s=["Pick","Omit","Extract","Exclude"].includes(e)?["T"]:["T","K"];return r=ht(e,r,n,i),r?{name:e,type:r,genericParams:s,rawType:e}:void 0}o(Ze,"getSpecialTypeAlias");function J(e,t){return e.typeLiteralMembers?{typeLiteralMembers:e.typeLiteralMembers.map(n=>{let i=h(n.rawDefinition);return t(i),new j(i)})}:e.unionMembers?{unionMembers:e.unionMembers.map(n=>J(n,t))}:e.intersectionMembers?{intersectionMembers:e.intersectionMembers.map(n=>J(n,t))}:void 0}o(J,"getMappedType");function qe(e,t){if(e.typeLiteralMembers)return{typeLiteralMembers:e.typeLiteralMembers.map(n=>t(n)?h(n):void 0).filter(n=>!!n)}}o(qe,"getFilterKeyType");function Mt(e){return J(e,t=>t.isOptional=!0)}o(Mt,"getPartialType");function xt(e){return J(e,t=>t.isOptional=!1)}o(xt,"getRequiredType");function wt(e){return J(e,t=>t.isReadonly=!0)}o(wt,"getReadonlyType");function Ye(e,t){var i;let n=(i=t.unionMembers)==null?void 0:i.map(r=>r.name);if(e.typeLiteralMembers)return qe(e,r=>r.name===t.literalValue||(n==null?void 0:n.includes(r.name)))}o(Ye,"getPickType");function Qe(e,t){var i;let n=(i=t.unionMembers)==null?void 0:i.map(r=>r.name);if(e.typeLiteralMembers)return qe(e,r=>!(r.name===t.literalValue||n!=null&&n.includes(r.name)))}o(Qe,"getOmitType");function Rt(e,t){if(e.typeLiteralMembers&&t.typeLiteralMembers){let n={unionMembers:t.typeLiteralMembers.map(i=>({literalValue:i.name}))};return Ye(e,n)}}o(Rt,"getExtractType");function St(e,t){if(e.typeLiteralMembers&&t.typeLiteralMembers){let n={unionMembers:t.typeLiteralMembers.map(i=>({literalValue:i.name}))};return Qe(e,n)}}o(St,"getExcludeType");var A=Reflect,C;function R(){if(C)return C;let e=A.__meta;if(e===void 0){console.warn("No reflect meta found, reflect is disabled.");return}try{C=JSON.parse(atob(e))}catch(t){console.error(t),console.warn("Illegal reflect meta found, reflect is disabled");return}return delete A.__meta,C.classDef=A.__classDef||{},delete A.__classDef,A.registerClass=t=>{Object.assign(C.classDef,t)},C}o(R,"getRawMeta");var Q=new Map,De=new Map,he=new Map,Me=new Map,Pt=new Map,In=o((e=>{Pt.set(e.name,e)}),"ReflectClass"),Ot={string:String,number:Number,boolean:Boolean,object:Object};function xe(e){var t;return((t=y(e))==null?void 0:t.jsClass)||Ot[e]}o(xe,"getClassByName");function y(e){var t,n,i;switch(typeof e){case"object":return y(e.constructor);case"function":let r=y(e.name);if(r)return r;let s=Array.from(Q.values()).find(l=>l.jsClass===e);if(s)return s;let a=(t=Object.entries(R().classDef||{}).find(([l,u])=>u===e))==null?void 0:t[0];return a?y(a):void 0;case"string":let c=e;if(!Q.has(c)){let l=(n=R().classes)==null?void 0:n[c];if(!l)return;let u=(i=R().classDef)==null?void 0:i[c];Q.set(c,new k(Ke(V({},l),{jsClass:u})))}return Q.get(c)}}o(y,"getClassDefinition");function I(e){var t;if(!De.has(e)){let n=(t=R().interfaces)==null?void 0:t[e];if(!n)return;De.set(e,new S(n))}return De.get(e)}o(I,"getInterfaceDefinition");function H(e){var t;if(!he.has(e)){let n=(t=R().enums)==null?void 0:t[e];if(!n)return;he.set(e,new Y(n))}return he.get(e)}o(H,"getEnumDefinition");function En(e){var t;return((t=H(e))==null?void 0:t.names)||[]}o(En,"getEnumNames");function Vn(e){let t=Object.entries(e)[0];if(!t)return[];let[n,i]=t,r=H(n);return r?r.names.map(s=>i[s]):Array.from(Object.keys(i))}o(Vn,"getEnumValues");function He(e,t){var i;if(Ue(e))return!t||!t[0]?void 0:Ze(e,[t[0],t[1]]);if(!Me.has(e)){let r=(i=R().typeAliases)==null?void 0:i[e];if(!r||!r.type)return;Me.set(e,{name:e,rawType:r.type,type:d(r.type),genericParams:r.genericParams})}let n=h(Me.get(e));if(n.genericParams&&t){let r={};for(let s=0;s<n.genericParams.length;s++){let a=n.genericParams[s];r[a]=t[s]}n.type=d(n.rawType,r,t)}return n}o(He,"getTypeAliasDefinition");var ee=class ee{constructor(t){var n,i;this.name=t.name,this._implementationNames=t.implementations||[],this.methods=((n=t.methods)==null?void 0:n.map(U))||[],this.properties=((i=t.properties)==null?void 0:i.map(_))||[],this.generics=t.genericsParams}get implementations(){return this._implementations||(this._implementations=q(this._implementationNames,t=>{var n;return I(t)||((n=y(t))==null?void 0:n.type)||g(t)})),this._implementations}get allImplementations(){if(this._allImplementations===void 0){let t=new Set(this.implementations);this.implementations.forEach(n=>{n instanceof ee?n.allImplementations.forEach(i=>t.add(i)):t.add(n)}),this._allImplementations=Array.from(t)}return this._allImplementations}get type(){let t={};return this.allImplementations.forEach(n=>{let r=("type"in n?n.type:n).typeLiteralMembers;r==null||r.forEach(s=>t[s.name]=s)}),this.properties.forEach(n=>t[n.name]=n),{name:this.name,typeLiteralMembers:Object.values(t)}}toString(){return`interface ${this.name}`}};o(ee,"InterfaceDefinition");var S=ee,te=class te extends S{static create(t,n){let i=x(te,t);i.genericArgs=n;let r=i;return r.buildGenericContext(),Z(r,t),r}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((n,i)=>this.genericContext[n]=this.genericArgs[i])}};o(te,"GenericInterface");var X=te;var we=class we{constructor(t){var n,i;this.name=t.name,this.superClassName=t.superClassName||"Object",this.superClass=y(this.superClassName),this._implementationNames=t.implementations||[],this.methods=((n=t.methods)==null?void 0:n.map(U))||[],this.properties=((i=t.properties)==null?void 0:i.map(_))||[],this.jsClass=t.jsClass,this.generics=t.genericsParams}get allMethods(){let t={};if(this.superClassName!=="Object"){let n=y(this.superClassName);n&&Object.assign(t,V({},n.allMethods))}return Object.assign(t,V({},be(this.methods,n=>[n.name,n]))),t}get allProperties(){var t;return Object.assign(((t=this.superClass)==null?void 0:t.allProperties)||{},be(this.properties,n=>[n.name,n]))}get implementations(){return this._implementations?this._implementations:q(this._implementationNames,t=>I(t)||g(t))}get allImplementations(){var t,n;if(this._allImplementations===void 0){let i=new Set(this.implementations);this.implementations.forEach(r=>{r instanceof S?r.allImplementations.forEach(s=>i.add(s)):i.add(r)}),(n=(t=this.superClass)==null?void 0:t.allImplementations)==null||n.forEach(r=>i.add(r)),this._allImplementations=Array.from(i)}return this._allImplementations}getProperty(t){return this.properties.find(n=>n.name===t)}get type(){var n,i;let t={};return(i=(n=this.superClass)==null?void 0:n.type.typeLiteralMembers)==null||i.forEach(r=>t[r.name]=r),this.properties.forEach(r=>t[r.name]=r),{name:this.name,classDefinition:this,typeLiteralMembers:Object.values(t)}}isSubClassOf(t){var n;return this.name===t||(n=this.superClass)!=null&&n.isSubClassOf(t)?!0:this.implementations.map(i=>i.name).includes(t)}isSuperClassOf(t){if(this.name===t)return!0;let n=y(t);return n?n.isSubClassOf(this.name):!1}toString(){return`class ${this.name}`}};o(we,"ClassDefinition");var k=we,ie=class ie extends k{static create(t,n){let i=x(ie,t);i.genericArgs=n;let r=i;return r.buildGenericContext(),Z(r,t),r}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((n,i)=>this.genericContext[n]=this.genericArgs[i])}};o(ie,"GenericClass");var ne=ie;var Re=[Promise,Date,Map,Set,Error,Function];function T(e,t,n=1){switch(!0){case t.name==="undefined":return e===void 0?p:f(100,`declared as ${m(t)} but actually not`);case et(t):return p;case fe(t):return e instanceof Object?Se(e,t,n):f(200,`declared as ${m(t)} but actually not an object`);case re(t):return jt(e,t,n);case le(t):return It(e,t,n);case ae(t):for(let i of t.unionMembers||[])if(T(e,i,n).success)return p;return f(320,`declared as ${m(t)} but all value not match`);case ce(t):for(let i of t.intersectionMembers||[]){let r=T(e,i,n);if(!r.success)return f(330,`declared as ${m(t)} but all value not match`,r)}return p;case Oe(t):return Ct(e,t,n);case oe(t):switch(typeof e){case"string":return e===Nt(t.literalValue)?p:f(110,`declared as string ${m(t)} but value not match`);case"number":return e===Number(t.literalValue)?p:f(111,`declared as number ${m(t)} but value not match`);case"bigint":return e===BigInt(t.literalValue)?p:f(112,`declared as bigint ${m(t)} but value not match`);case"boolean":return e===!!t.literalValue?p:f(113,`declared as boolean ${m(t)} but value not match`);default:return t.literalValue==="null"&&e===null?p:e===t.literalValue?p:f(114,`declared as ${m(t)} but value not match`)}case se(t):return Et(e,t,n);case t.isFunction:case t.isConstructor:return typeof e=="function"?p:f(150,`declared as ${m(t)} but actually not`);case Pe(t):return e==null?f(120,`declared as ${m(t)} but actually ${e}`):typeof e===t.name?p:f(121,`declared as ${m(t)} but actually ${typeof e}`);default:return Vt(e,t,n)}}o(T,"validateValue");function jt(e,t,n=1){if(!Array.isArray(e))return f(300,`declared as ${m(t)} but actually not`);if(n===0)return p;for(let i=0;i<e.length;i++){let r=e[i],s=T(r,t.arrayElementType||b,n-1);if(!s.success)return f(301,`declared as ${m(t)} but [${i}] not match`,s)}return p}o(jt,"validateArrayValue");function Ct(e,t,n=1){if(e===null)return f(400,"declared as indexedType but actually is null");if(typeof e=="object")return f(410,`declared as indexedType but actually is ${typeof e}`);for(let i of Object.values(e)){let r=T(i,t.indexElementType,n-1);if(!r.success)return f(420,`declared as ${m(t)} but actually not match`,r)}return p}o(Ct,"validateIndexedValue");function It(e,t,n=1){if(!Array.isArray(e))return f(310,`declared as ${m(t)} but actually not a tuple`);if(n===0)return p;let i=0;for(let r of t.tupleMembers){let s=e[i++];if(r.isOptionalInTuple&&s===void 0)continue;let a=T(e[i],r,n);if(!a.success)return f(311,`declared as ${m(t)} but not all values in tuple match`,a)}return p}o(It,"validateTupleValue");function Et(e,t,n=1){if(e instanceof Object){for(let i of t.typeLiteralMembers||[]){if(i.isStatic)return p;if(i.name.startsWith("[")&&i.name.endsWith("]"))return p;if(n===0)return p;let r=i.type||b;i.isOptional&&(r={unionMembers:[r,{name:"undefined"}]});let s=N(e,i.name),a=T(s,r,n-1);if(!a.success)return f(211,`declared ${i.name} as ${m(r)}, but not match`,a)}return p}else return f(210,`declared as ${m(t)} but not an object`)}o(Et,"validateProperties");function Vt(e,t,n=1){let i=typeof t=="string"?t:t.name;if(!i)return p;if(e===void 0)return f(130,`declared as ${m(t)} but actually undefined`);if(e===null)return i==="null"?p:f(131,`declared as ${m(t)} but actually null`);for(let s of Re)if(i===s.name)return e instanceof s?p:f(132,`declared as ${m(t)} but actually ${e.constructor.name}`);if(e instanceof Object&&!Xe(e,i))return f(133,`declared as ${m(t)} but actually not instance of it`);if(n==0)return p;let r=T(e,g(i),n);return r.success?p:f(134,`declared as ${m(t)} but actually not match`,r)}o(Vt,"validateSimpleValue");function Se(e,t,n=3){if(t.classDefinition&&!Xe(e,t.classDefinition.name))return f(201,`declared as instance of ${m(t)} but actually not`);if(t.name!=="any"&&t===b)return f(202,`${m(t)} not defined`);let i=h(t);return delete i.classDefinition,T(e,t,n)}o(Se,"validateClassInstance");function Xe(e,t){if(e===void 0||e.constructor.name===t)return!0;let n=y(t);if(!n)return!0;if(n.jsClass)return e instanceof n.jsClass;let i=y(e);return i?i.isSubClassOf(n.name):!1}o(Xe,"valueInstanceOf");function Nt(e){return e.length>=2&&(e[0]==='"'&&e[e.length-1]==='"'||e[0]==="'"&&e[e.length-1]==="'")?e.substring(1,e.length-1):e}o(Nt,"trimQuotes");function m(e){var t,n,i,r;return typeof e=="string"?e:fe(e)?e.classDefinition.name:re(e)?(((t=e.arrayElementType)==null?void 0:t.name)||"unknown")+"[]":e.isConstructor?"Class":e.isFunction?"Function":se(e)?"Object":le(e)?`(${e.tupleMembers.map(m).join(",")})`:ae(e)?((n=e.unionMembers)==null?void 0:n.map(m).join(" | "))||"unknown":ce(e)?((i=e.intersectionMembers)==null?void 0:i.map(m).join(" & "))||"unknown":oe(e)?e.literalValue:Oe(e)?`{ [key]: ${((r=e.indexElementType)==null?void 0:r.name)||"unknown"} }`:e.name||"unknown"}o(m,"getTypeDisplayName");var b={name:"any"},Jt={name:"null"},tt=["string","number","boolean","bigint","symbol"];function et(e){return!!(e.name&&["any","void","unknown"].includes(e.name))}o(et,"isIgnoredType");function Pe(e){return!!(e.name&&tt.includes(e.name))}o(Pe,"isPrimitiveType");function re(e){return!!e.arrayElementType}o(re,"isArrayType");function oe(e){return!!e.literalValue}o(oe,"isLiteralType");function se(e){return!!e.typeLiteralMembers}o(se,"isTypeLiteralType");function ae(e){return!!e.unionMembers}o(ae,"isUnionType");function ce(e){return!!e.intersectionMembers}o(ce,"isIntersectionType");function le(e){return!!e.tupleMembers}o(le,"isTupleType");function fe(e){return!!e.classDefinition}o(fe,"isClassDefinition");function At(e){return!!e.generics}o(At,"hasGenerics");function Oe(e){return!!e.indexElementType}o(Oe,"isIndexType");function g(e,t){if(e==="any"||e==="Any"||e==="unknown"||e==="")return b;if(e==="null")return Jt;let n=y(e);if(n)return t?ne.create(n,t).type:n.type;if(tt.includes(e))return{name:e};if(Re.map(a=>a.name).includes(e))return{name:e,generics:t};let i=I(e);if(i)return t?X.create(i,t).type:i.type;let r=H(e);if(r)return r.type;let s=He(e,t);return s?s.type:b}o(g,"getTypeDefinition");var je=new Map;function d(e,t,n){let i=Ce(e);if(e===void 0)return b;let r=je.get(i);if(r)return r;let s={};if(je.set(i,s),typeof e=="string")s=(t==null?void 0:t[e])||g(e,n)||b;else if(e.arrayElementType)Object.assign(s,{arrayElementType:d(e.arrayElementType,t)});else if(e.unionMembers)Object.assign(s,{unionMembers:e.unionMembers.map(a=>d(a,t))});else if(e.intersectionMembers)Object.assign(s,{intersectionMembers:e.intersectionMembers.map(a=>d(a,t))});else if(e.tupleMembers)Object.assign(s,{tupleMembers:e.tupleMembers.map(a=>d(a,t))});else if(e.generics){let a=e.generics[0],c=e.generics.slice(1).map(l=>d(l,t));Object.assign(s,d(a,t,c))}else e.indexElementType&&Object.assign(s,{indexElementType:d(e.indexElementType,t)});return Object.keys(s).length===0&&(s=b),je.delete(i),s}o(d,"fillType");function Ce(e){return e===null?"null":e===void 0?"undefined":typeof e!="object"?JSON.stringify(e):Array.isArray(e)?"["+e.map(Ce).join(",")+"]":"{"+Object.keys(e).sort().map(n=>JSON.stringify(n)+":"+Ce(e[n])).join(",")+"}"}o(Ce,"stableStringify");var Ie={isPrimitiveType:Pe,isArrayType:re,isLiteralType:oe,isTypeLiteralType:se,isUnionType:ae,isIntersectionType:ce,isTupleType:le,isClassDefinition:fe,hasGenerics:At};function D(e){if(typeof e=="string"){let t=$t(e);if(typeof t=="string"){let n=t.match(/\"(.+)\"$/)||t.match(/\'(.+)\'$/);if(n!=null&&n[1])return{literalValue:n[1]}}return typeof t=="string"?g(e):D(t)}return Array.isArray(e)?g(e[0],e.slice(1).map(D)):"array"in e?{arrayElementType:D(e.array)}:"union"in e?{unionMembers:e.union.map(D)}:"intersection"in e?{intersectionMembers:e.intersection.map(D)}:"tuple"in e?{tupleMembers:e.tuple.map(D)}:e}o(D,"getTypeDef");function ui(e,t,n=5){let i=T(e,D(t),n);if(!i.success){console.error(`assert failed with type: ${t}
|
|
4
|
+
${i.errorStackFlow}`);debugger;throw new Error(`assert failed with type: ${t}, ${i.errorStackFlow}`)}return e}o(ui,"assertType");function pi(e){return kt(null,e)}o(pi,"isNullable");function kt(e,t,n=5){return T(e,D(t),n).success}o(kt,"isType");function $t(e){let t=e.trim(),n=o(u=>u.trim(),"trim"),i=o(u=>u.length!=0,"notEmpty"),r=t.split("|").map(n).filter(i);if(r.length>1)return{union:r};let s=t.split("&").map(n).filter(i);if(s.length>1)return{intersection:s};let a=t.match(/^\[(.*)]$/);if(a)return{tuple:a[1].split(",").map(n).filter(i)};let c=t.match(/^(.+)\[]$/);if(c)return{array:c[1].trim()};let l=t.match(/^([^<]+)<(.+)>$/);if(l){let u=l[1].trim(),M=l[2].split(",").map(n).filter(i);return[u,...M]}return t}o($t,"parseType");function ue(e,t,n=3){return t=t||e.constructor.name,Se(e,D(t),n)}o(ue,"validateInstance");function gi(e,t,n=1){for(let i=0;i<e.length;i++){let r=ue(e[i],t,n);if(!r.success)return f(220,`declared as instance of ${t}[] but [${i}] actually not`,r)}return p}o(gi,"validateArray");function Di(e,t,n=1){let i=Object.entries(e);for(let r=0;r<i.length;r++){let[s,a]=i[r],c=ue(a,t,n);if(!c.success)return f(230,`declared as instance of Dictionary<${t}> but [${s}] actually not`,c)}return p}o(Di,"validateDictionary");var nt=Symbol("VALIDATE_WRAPPER"),Pi=o((e,t,n)=>Ft(e,t,n),"ReflectValidate");function Ft(e,t,n){let i=n.value;if(typeof i!="function"||N(i,nt))return;let r=o(()=>{var l,u;return(u=(l=y(e))==null?void 0:l.methods)==null?void 0:u.find(M=>M.name===t)},"getMethodDef"),s=o(l=>it(e,r(),l),"validateArgs"),a=o(l=>zt(e,r(),l),"validateReturn"),c=o(function(...l){s(l);let u=i.call(this,...l);return a(u)},"newFunc");c[nt]=i,n.value=c}o(Ft,"wrapValidateMethod");function it(e,t,n){var i;(i=t==null?void 0:t.args)==null||i.forEach((r,s)=>{let a=n==null?void 0:n[s];if(a===void 0){if(r.isOptional)return;throw new Error(`Illegal arguments for ${Ee(e.constructor.name,t)}: ${r.name} is not optional`)}let c=T(a,r.type||b,1);if(!c.success)throw console.error("validateResult",c),new Error(`Illegal arguments for ${Ee(e.constructor.name,t)}: ${r.name}: ${r.name} ${c.errorMessage}`)})}o(it,"validateMethodParams");function zt(e,t,n){var s;if(!t)return n;let i=o((a,c)=>{let l=T(a,c,5);if(!l.success)throw console.error(l.errorStackFlow),new Error(`result for ${Ee(e.constructor.name,t)} doesn't match type ${c.name}:
|
|
5
|
+
${l.errorStackFlow}`);return a},"checkValue"),r=t.returnType;return r.name==="Promise"&&(r=((s=r.generics)==null?void 0:s[0])||b),n instanceof Promise?n.then(a=>i(a,r||b)):i(n,r||b)}o(zt,"validateMethodReturnValue");function Ee(e,t){var n;return`${e}.${t.name}(${(n=t.args)==null?void 0:n.map(i=>i.name).join(", ")})`}o(Ee,"getMethodDescription");function Oi(e,t,...n){let i=y(e);if(!i)return;let r=i.allMethods[t];if(r)return it(e,r,n),N(e,t).apply(e,n)}o(Oi,"safeCall");import"reflect-metadata";function rt(e){return String(e).toLocaleLowerCase()==="false"?!1:!!e}o(rt,"asBoolean");function $(e){return e==null||Number.isNaN(e)||e instanceof Date&&String(e)==="Invalid Date"?"":typeof e=="symbol"?e.description||"":String(e)}o($,"asString");function Ve(e){return e?e instanceof Date?e.getDate():Number(e):0}o(Ve,"asNumber");function w(e,t,n){e[t]=n}o(w,"setAnyValue");function pe(e,t){return e[t]}o(pe,"getAnyValue");function $i(e,t,n){let i=e[t];if(i!==void 0)return i;let r=n();return w(e,t,r),r}o($i,"getOrSetValue");function ot(e){return typeof e=="object"&&e!==null&&e.constructor===Object}o(ot,"isDictionary");function st(e,t){let n=Object.create(e.prototype);return Object.assign(n,t||{}),n}o(st,"createInstance");function at(e){return((t,n)=>Reflect.defineMetadata(e,n,t.constructor))}o(at,"defineDecoratedProperty");function ct(e,t,...n){let i=lt(e,t);if(i!==void 0&&i instanceof Function)return i.apply(e,n)}o(ct,"callDecoratedMethod");function Li(e,t){let n=lt(e,t);return n!==void 0&&n instanceof Function}o(Li,"hasDecoratedMethod");function vt(e,t){return Reflect.getMetadata(t,e.constructor)}o(vt,"getDecoratedProperty");function lt(e,t){let n=vt(e,t);if(n!==void 0)return pe(e,n)}o(lt,"getDecoratedPropertyValue");var P=o(function({getter:e,setter:t,fieldSymbol:n}){return(i,r)=>{Object.defineProperty(i,r,{get:o(function(){return e?e(this,r):P.getField(i,r,n)},"get"),set:o(function(s){t?t(this,s,r):P.setField(i,r,s,n)},"set")})}},"PropertyWrapper");w(P,"getField",(e,t,n)=>{var i;return(i=pe(e,n))==null?void 0:i[t]});w(P,"setField",(e,t,n,i)=>{let r=pe(e,i)||{};r[t]=n,w(e,i,r)});function Bi(e){let t=Symbol("lazy");return P({getter:o((n,i)=>{let r=P.getField(n,i,t);if(r)return r.value;let s=e(n,i);return P.setField(n,i,{value:s},t),s},"getter"),setter:o(()=>{},"setter"),fieldSymbol:t})}o(Bi,"Lazy");var F=Symbol("JSON_SERIALIZED"),ft=Symbol("AFTER_SERIALIZED"),ze=class ze{constructor(){this.settingsByName={};this.settingsBySerializedName={};this.ignoredProperties=[];this.defaultIgnored=!1}add(t){this.settingsByName[t.propName]=t,this.settingsBySerializedName[t.serializedName]=t}isPropertyIgnored(t){return this.defaultIgnored&&!this.settingsByName[t]?!0:this.ignoredProperties.indexOf(t)!==-1}};o(ze,"SerializeSettings");var Je=ze,ve=class ve{constructor(t,n,i){this.target=t;this.propName=n;this.options=i;this.isArray=Reflect.getDesignType(t,n)===Array,this.serializedName=i.name||$(n),this.class=i.class,this.fromJSON=this.createBuilder(),this.toJSON=i.toJSON||(r=>pt(r))}createBuilder(){if(this.options.fromJSON)return this.options.fromJSON;if(this.class&&this.class instanceof Function){let t=this.class;return n=>{let i=ye.get(t);return i?i.fromJson(n):Fe(n,t)}}else return t=>Gt(this.target,this.propName,t)}};o(ve,"SerializedPropertySetting");var Ae=ve;function ut(e,t){ke(e,n=>{n.defaultIgnored=t})}o(ut,"setDefaultIgnored");function me(e,t,n){let i=E(e);ke(i,r=>{r.add(new Ae(e,t,n))})}o(me,"registerSerializedProperty");function ke(e,t){let n=Reflect.getMetadata(F,e);n===void 0&&(n=new Je),t(n),Reflect.defineMetadata(F,n,e)}o(ke,"updateSerializeSettings");var Yi=Lt();function Lt(e){return e=e||{},(t,n)=>me(t,$(n),e)}o(Lt,"Serialized");function Qi(e){return(t,n)=>me(t,$(n),{name:e})}o(Qi,"SerializedName");var Hi=o((e,t)=>ke(E(e),n=>n.ignoredProperties.push(t)),"IgnoreSerialization");function Xi(e){return JSON.stringify(typeof e=="object"?$e(e):e)}o(Xi,"serialize");function pt(e){if(e===void 0)throw new Error("attempt to serialize undefined value");if(e===null)return null;if(typeof e=="object"){let t=ye.get(E(e));return t?t.toJson(e):$e(e)}return e}o(pt,"serializeTo");function $e(e){var s;if(e instanceof Array)return e.map(a=>$e(a));if(ot(e)){let a={};return Object.entries(e).forEach(c=>{let[l,u]=c;a[l]=pt(u)}),a}let t=E(e);((s=y(t))==null?void 0:s.isSubClassOf("Mappable"))&&Le(t);let i=Reflect.getMetadata(F,t);if(i===void 0)return e;let r={};return Object.entries(e).forEach(a=>{let c=a[0];if(i.isPropertyIgnored(c))return;let l=a[1];if(l===void 0||l instanceof Function||typeof l=="symbol")return;let u=i.settingsByName[c],M=(u==null?void 0:u.serializedName)||c;u&&(u.isArray?l=l.map(z=>u.toJSON(z)):l=u.toJSON(l)),r[M]=l}),r}o($e,"serializeToData");function Fe(e,t){var n;if(typeof e=="string"&&(e=JSON.parse(e)),t===null||t===void 0)return e;try{let i=e,r=E(t),s=(n=y(r))==null?void 0:n.isSubClassOf("Mappable");s&&Le(r);let a=ye.get(r);if(a)return a.fromJson(i);let c=t instanceof Function?st(t):t;if(typeof c=="object"&&_t(i,c),s){let l=ue(c,r.name);if(!l.success)throw new Error(`JSON deserialize validate failed: ${We(l)} `)}return c}catch(i){throw console.error("failed to deserialize"),console.dir(i),i}}o(Fe,"deserialize");function Bt(e,t){let n=typeof e=="string"?JSON.parse(e):e;return n instanceof Array?n.map(i=>Fe(i,t)):[]}o(Bt,"deserializeArray");function _t(e,t){let n=E(t),i=Reflect.getMetadata(F,n);if(i===void 0){Object.assign(t,e);return}Object.keys(e).forEach(r=>{let s=i.settingsBySerializedName[r],a=e[r];if(s===void 0){i.defaultIgnored||w(t,r,a);return}let c=s.propName;if(i.isPropertyIgnored(c))return;let l;l=a instanceof Array?a.map(u=>s.fromJSON(u)):s.fromJSON(a),w(t,c,l)}),ct(t,ft)}o(_t,"deserializeFrom");function er(e){return Reflect.getMetadata(F,e)}o(er,"getSerializeSettings");function Gt(e,t,n){let i=Reflect.getDesignType(e,t);if(i===void 0)return n;if(i===Array)return Bt(n);let r=ye.get(i);return r?r.fromJson(n):Fe(n,i)}o(Gt,"getValueByReflectType");function E(e){return e instanceof Function?e:e.constructor}o(E,"classOf");function Kt(e){return e()}o(Kt,"run");var ye=Kt(()=>{let e=new Map;function t(i){return e.get(i)}o(t,"get");function n(i,r){e.set(i,r)}return o(n,"register"),n(String,{fromJson:$,toJson:Ne}),n(Number,{fromJson:Ve,toJson:Ne}),n(Boolean,{fromJson:rt,toJson:Ne}),n(Date,{fromJson:o(i=>new Date(Ve(i)),"fromJson"),toJson:o(i=>i.getTime(),"toJson")}),{get:t,register:n}}),Ne=o(e=>e,"itSelf"),tr=o(()=>{},"done"),nr=at(ft);var mt=new Map;function Le(e){if(mt.get(e))return;let t=y(e),n=new Proxy({},{get(r,s){return i(s)},set(r,s,a){return i(s)(a),!0}});function i(r){return(s,a)=>{var u,M,z;let c=(M=(u=Object.values((t==null?void 0:t.allProperties)||{}))==null?void 0:u.find(yt=>yt.name===r))==null?void 0:M.type,l=(c==null?void 0:c.name)!==void 0?xe(c.name):void 0;c&&Ie.isArrayType(c)&&(l=((z=c.arrayElementType)==null?void 0:z.name)!==void 0?xe(c.arrayElementType.name):void 0),typeof r=="string"&&(me(e.prototype,r,{name:s,class:l,fromJSON:a==null?void 0:a.fromJSON,toJSON:a==null?void 0:a.toJSON}),ut(e,!0))}}o(i,"doMap"),e.prototype.mapping(n),mt.set(e,!0)}o(Le,"registerMappable");function ar(e,t){let n=y(e);n&&n.properties.forEach(i=>t[i.name]())}o(ar,"mapAllProperties");import"reflect-metadata";var Wt="design:type",Ut="design:returntype",Zt="design:paramtypes";function qt(e,t){return Reflect.getMetadata(Wt,e,t)}o(qt,"getDesignType");function Yt(e,t){return Reflect.getMetadata(Ut,e,t)}o(Yt,"getReturnType");function Qt(e,t){return Reflect.getMetadata(Zt,e,t)}o(Qt,"getParamTypes");function Ht(e,t,n,i){let r=(i===void 0?Reflect.getMetadata(e,n):Reflect.getMetadata(e,n,i))||[];r.includes(t)||r.push(t),i===void 0?Reflect.defineMetadata(e,r,n):Reflect.defineMetadata(e,r,n,i)}o(Ht,"addMetadataList");Object.assign(Reflect,{getDesignType:qt,getReturnType:Yt,getParamTypes:Qt,addMetadataList:Ht});export{nr as AfterSerialized,Hi as IgnoreSerialization,Bi as Lazy,P as PropertyWrapper,In as ReflectClass,Pi as ReflectValidate,Lt as Serialized,Yi as SerializedClass,Qi as SerializedName,Ie as TypeDefinition,v as ValidateResult,rt as asBoolean,Ve as asNumber,$ as asString,ui as assertType,ct as callDecoratedMethod,st as createInstance,at as defineDecoratedProperty,Fe as deserialize,Bt as deserializeArray,_t as deserializeFrom,tr as done,f as failedResult,pe as getAnyValue,xe as getClassByName,y as getClassDefinition,vt as getDecoratedProperty,lt as getDecoratedPropertyValue,H as getEnumDefinition,En as getEnumNames,Vn as getEnumValues,We as getErrorTraceMessages,I as getInterfaceDefinition,$i as getOrSetValue,er as getSerializeSettings,He as getTypeAliasDefinition,D as getTypeDef,Li as hasDecoratedMethod,ot as isDictionary,pi as isNullable,kt as isType,Ne as itSelf,ar as mapAllProperties,Le as registerMappable,me as registerSerializedProperty,Oi as safeCall,Xi as serialize,pt as serializeTo,$e as serializeToData,w as setAnyValue,ut as setDefaultIgnored,p as successResult,gi as validateArray,Di as validateDictionary,ue as validateInstance};
|
package/dist/esm/parser/index.js
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
var F=(e,n,s)=>new Promise((t,c)=>{var a=T=>{try{d(s.next(T))}catch(D){c(D)}},o=T=>{try{d(s.throw(T))}catch(D){c(D)}},d=T=>T.done?t(T.value):Promise.resolve(T.value).then(a,o);d((s=s.apply(e,n)).next())});import J from"typescript";import i from"typescript";import*as N from"fs";import*as v from"process";import*as R from"path";import{pathToFileURL as le}from"url";var G={OUTPUT_LOG:!1},A=new Map,b=new Map,L=new Map,k=new Map,B=new Map,$=new Set,W={[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"},_="any",Y=["string","number","boolean","bigint","symbol"],Z=["any","Promise","Date","Error","undefined","unknown","object","Map","Set"],ee=["Mappable","EnableReflect"];[...Y,...Z,...ee].forEach(re);ee.forEach(e=>b.set(e,{name:e}));var C,Q=!1,w=Reflect;function Ne(e){return F(this,null,function*(){let{filePaths:n,exclude:s,sourceFolder:t,distFolder:c}=e;if(t=R.resolve(t||v.cwd()),c=R.resolve(c||v.cwd()),w.__classes!==void 0)return;n=fe(n);let a=n.map(o=>R.join(t,o));V(a,s),w.__classes={};for(let[o,d]of A)w.__classes[o]=d;w.__interfaces={};for(let[o,d]of b)w.__interfaces[o]=d;w.__typeAliases={};for(let[o,d]of k)w.__typeAliases[o]=d;w.__enums={};for(let[o,d]of L)w.__enums[o]=d;w.__constTypes={};for(let[o,d]of B)w.__constTypes[o]=d;yield Promise.all(n.map(o=>ne(o,c)))})}function ne(e,n){return F(this,null,function*(){let s=R.resolve(n,e);if(!N.existsSync(s))return;if(N.statSync(s).isDirectory()){let d=N.readdirSync(s);yield Promise.all(d.map(T=>ne(R.join(e,T),n)));return}if(!e.endsWith(".js"))return;let c=R.join(n,e),o=yield import(le(c).href);w.__classDef={},Object.values(o).forEach(d=>{typeof d=="function"&&(w.__classDef[d.name]=d)})})}function V(e,n){if(e||(e=[v.cwd()]),e=fe(e),!Q){let s=te(e,n),t=i.createProgram(s,{});C=t.getTypeChecker(),s=s.map(a=>H(a)),t.getSourceFiles().filter(a=>s.includes(H(a.fileName))||a.fileName.endsWith("/lib.es5.d.ts")).forEach(a=>{x(`parse file: ${a.fileName}`),ie(a)});for(let a of $.keys())!A.has(a)&&!b.has(a)&&!L.has(a)&&!k.has(a)&&!Y.includes(a)&&!Z.includes(a)&&(x(`remove unknown typeName: ${a}`),$.delete(a));Array.from(A.values()).forEach(he),Array.from(b.values()).forEach(we),[A,b,k].forEach(De),Q=!0}return{classDefinitions:A,interfaceDefinitions:b,enumDefinitions:L,typeAliasDefinitions:k,constTypeDefinitions:B}}function te(e,n){let s=[];return e.forEach(t=>{if(t=R.resolve(t),Re(t,n)){x(`ignore excluded ${t}`);return}if(!N.existsSync(t)){console.error(`Path ${t} does not exist.`);return}if(N.statSync(t).isFile()){s.push(t);return}N.readdirSync(t).forEach(o=>s.push(...te([R.join(t,o)],n)))}),s}function ie(e){i.isClassDeclaration(e)?pe(e):i.isInterfaceDeclaration(e)?ue(e):i.isEnumDeclaration(e)?me(e):i.isTypeAliasDeclaration(e)?de(e):i.isConstTypeReference(e)?ye(e):e.forEachChild(ie)}function pe(e){var d,T,D,E,K,P,u,h,I,y,p,m,M,j;let n=r(e.name);if(!n)return;let s=r((D=(T=(d=e.heritageClauses)==null?void 0:d.find(f=>f.token===i.SyntaxKind.ExtendsKeyword))==null?void 0:T.types)==null?void 0:D[0].expression),t=(K=(E=e.heritageClauses)==null?void 0:E.find(f=>f.token===i.SyntaxKind.ImplementsKeyword))==null?void 0:K.types.map(f=>r(f.expression)),c=[],a=[];for(let f of e.members)if(i.isPropertyDeclaration(f))c.push({name:r(f.name),isOptional:f.questionToken!==void 0,type:g(f),isPrivate:(P=f.modifiers)==null?void 0:P.some(l=>l.kind===i.SyntaxKind.PrivateKeyword),isStatic:(u=f.modifiers)==null?void 0:u.some(l=>l.kind===i.SyntaxKind.StaticKeyword),isReadonly:(h=f.modifiers)==null?void 0:h.some(l=>l.kind===i.SyntaxKind.ReadonlyKeyword)});else if(i.isMethodDeclaration(f))a.push({name:r(f.name),returnType:g(f),isPrivate:(I=f.modifiers)==null?void 0:I.some(l=>l.kind===i.SyntaxKind.PrivateKeyword),isStatic:(y=f.modifiers)==null?void 0:y.some(l=>l.kind===i.SyntaxKind.StaticKeyword),isAsync:(p=f.modifiers)==null?void 0:p.some(l=>l.kind===i.SyntaxKind.AsyncKeyword),args:f.parameters.map(l=>({name:r(l.name),type:g(l),isOptional:l.questionToken!==void 0}))});else if(i.isGetAccessorDeclaration(f)){let l=c.find(O=>O.name===r(f.name));l||(l={name:r(f.name),isOptional:f.questionToken===void 0,type:g(f)},c.push(l)),l.accessor=l.accessor||{},l.accessor.getter={isPrivate:((m=f.modifiers)==null?void 0:m.some(O=>O.kind===i.SyntaxKind.PrivateKeyword))||!1},l.isPrivate=l.accessor.getter.isPrivate}else if(i.isSetAccessorDeclaration(f)){let l=c.find(O=>O.name===r(f.name));l||(l={name:r(f.name),isOptional:f.questionToken===void 0,type:g(f)},c.push(l)),l.accessor=l.accessor||{},l.accessor.setter={isPrivate:((M=f.modifiers)==null?void 0:M.some(O=>O.kind===i.SyntaxKind.PrivateKeyword))||!1}}let o={name:n,superClassName:s,implementations:t,properties:c,methods:a,genericsParams:(j=e.typeParameters)==null?void 0:j.map(f=>r(f.name))};x(`Define class: ${r(e.name)}`),A.set(n,o)}function ue(e){var d,T,D,E,K,P;let n=r(e.name);if(!n)return;let s=((T=(d=e.heritageClauses)==null?void 0:d.find(u=>u.token===i.SyntaxKind.ExtendsKeyword))==null?void 0:T.types.map(u=>r(u.expression)))||[],t=[],c=[],a;for(let u of e.members)i.isPropertySignature(u)?t.push({name:r(u.name),isOptional:u.questionToken!==void 0,type:g(u),isPrivate:((D=u.modifiers)==null?void 0:D.some(h=>h.kind===i.SyntaxKind.PrivateKeyword))||!1,isReadonly:((E=u.modifiers)==null?void 0:E.some(h=>h.kind===i.SyntaxKind.ReadonlyKeyword))||!1}):i.isMethodSignature(u)?c.push({name:u.name.text,returnType:g(u),isPrivate:((K=u.modifiers)==null?void 0:K.some(h=>h.kind===i.SyntaxKind.PrivateKeyword))||!1,args:u.parameters.map(h=>({name:r(h.name),type:g(h),isOptional:h.questionToken!==void 0}))}):i.isIndexSignatureDeclaration(u)&&(a=g(u));let o=b.get(n);o?(o.implementations=U(o.implementations||[],s),o.methods=U(o.methods||[],c,(u,h)=>u.name===h.name),o.properties=U(o.properties||[],t,(u,h)=>u.name===h.name),o.indexElementType=a,x(`Merge interface ${r(e.name)}`)):(o={name:n,implementations:s,methods:c,properties:t,indexElementType:a,genericsParams:(P=e.typeParameters)==null?void 0:P.map(u=>r(u.name))},b.set(n,o),x(`Define interface ${r(e.name)}`))}function me(e){let n=r(e.name);n&&(L.set(n,{name:n,members:e.members.map(s=>({name:r(s.name),initializer:r(s.initializer)}))}),x(`Define enum: ${r(e.name)}`))}function de(e){var c;x(`Define typeAlias: ${r(e.name)}`);let n=g(e),s=(c=e.typeParameters)==null?void 0:c.map(a=>r(a.name)),t=r(e.name);k.set(t,{name:t,type:n,genericParams:s})}function ye(e){let n=e.parent.parent;i.isVariableDeclaration(n)&&n.initializer&&i.isAsExpression(n.initializer)&&B.set(r(n.name),se(n.initializer.expression))}function se(e){return i.isArrayLiteralExpression(e)?ge(e):i.isObjectLiteralExpression(e)?Te(e):i.isNumericLiteral(e)?"number":i.isStringLiteral(e)?"string":i.isBigIntLiteral(e)?"bigint":[i.SyntaxKind.TrueKeyword,i.SyntaxKind.FalseKeyword].includes(e.kind)?"boolean":_}function ge(e){let n=[];return e.elements.forEach(s=>{if(i.isStringLiteral(s))return n.push(r(s))}),n.length===0?_:n.length===1?n[0]:{unionMembers:n}}function Te(e){let n=[];return e.properties.map(s=>{i.isPropertyAssignment(s)?n.push({name:r(s.name),type:se(s.initializer)}):x(`unsupported property: ${s.name}`)}),{typeLiteralMembers:n}}function re(e){$.add(e)}function g(e,n=!1){if(e.type&&!n)return S(e.type);if(!C)return console.error("TypeChecker not initialized!"),_;let s=C.getTypeAtLocation(e),t=C.typeToTypeNode(s,void 0,void 0);return t?S("type"in t?t.type:t):_}function S(e){let n={};if(e===void 0)return _;if(i.isTypeReferenceNode(e))if(re(r(e.typeName)),e.typeArguments)n.generics=[r(e.typeName),...e.typeArguments.map(s=>S(s))];else return r(e.typeName);else if(i.isFunctionTypeNode(e))n.isFunction=!0;else if(i.isConstructorTypeNode(e))n.isConstructor=!0;else{if(i.isTypeQueryNode(e))return g(e);if(i.isTypeLiteralNode(e)){let s=[];e.members.forEach(t=>{i.isPropertySignature(t)?s.push({name:r(t.name),isOptional:t.questionToken!==void 0,type:g(t)}):i.isIndexSignatureDeclaration(t)?n.indexElementType=g(t):s.push({name:r(t.name)||"",isOptional:t.questionToken!==void 0,type:S()})}),n.typeLiteralMembers=s}else if(i.isArrayTypeNode(e))n.arrayElementType=S(e.elementType);else if(i.isTupleTypeNode(e))n.tupleMembers=e.elements.map(S);else if(i.isOptionalTypeNode(e))Object.assign(n,g(e)),n.isOptionalInTuple=!0;else{if(i.isRestTypeNode(e))return g(e);if(i.isUnionTypeNode(e))n.unionMembers=e.types.map(S);else if(i.isIntersectionTypeNode(e))n.intersectionMembers=e.types.map(S);else{if(i.isConditionalTypeNode(e))return g(e);if(i.isInferTypeNode(e))return g(e);if(i.isParenthesizedTypeNode(e))return g(e);if(i.isThisTypeNode(e))return g(e);if(i.isTypeOperatorNode(e)&&e.operator===i.SyntaxKind.KeyOfKeyword)return g(e,!0);if(i.isIndexedAccessTypeNode(e))return g(e,!0);if(i.isMappedTypeNode(e))n.indexElementType=S(e.type);else if(i.isLiteralTypeNode(e))n.literalValue=r(e.literal);else{if(Object.keys(W).includes(String(e.kind)))return W[e.kind]||_;if(i.isNamedTupleMember(e))Object.assign(n,g(e));else return g(e,!0)}}}}return n}var U=(e,n,s)=>[...(e==null?void 0:e.filter(t=>!(n!=null&&n.some(c=>(s||(()=>c===t))(c,t)))))||[],...n||[]];function q(e,n){if(e!==void 0&&e!==_)return typeof e=="string"?$.has(e)||n!=null&&n.includes(e)?e:void 0:e}function he(e){var n,s;(n=e.methods)==null||n.forEach(t=>oe(t,e.genericsParams)),(s=e.properties)==null||s.forEach(t=>ae(t,e.genericsParams))}function we(e){var n,s;(n=e.methods)==null||n.forEach(t=>oe(t,e.genericsParams)),(s=e.properties)==null||s.forEach(t=>ae(t,e.genericsParams))}function ae(e,n){e.type=q(e.type,n)}function oe(e,n){var s;(s=e.args)==null||s.forEach(t=>t.type=q(t.type,n)),e.returnType=q(e.returnType,n)}function r(e){if(!e)return e;if(e.end<0)return e.text;try{let n=e;return i.isQualifiedName(n)?r(n.right):n.getText()}catch(n){return e.text}}function z(e){e&&Object.entries(e).forEach(n=>{let[s,t]=n;t instanceof Array&&t.length===0||t===!1||t===void 0?delete e[s]:t.constructor===Array?t.forEach(z):t.constructor===Object&&z(t)})}function De(e){for(let n of e.values())z(n)}function Re(e,n){return n?(n=n instanceof Array?n:[n],n.some(s=>(s instanceof RegExp||(s=new RegExp(s.replace(/\./g,"\\.").replace(/\*/g,".*"))),e.match(s)))):!1}function H(e,n=v.cwd()){return X(e).replace(X(n)+"/","")}function X(e){let n=R.sep;return e.split(n).join("/")}function fe(e){return e instanceof Array?e:[e]}function x(e){G.OUTPUT_LOG&&console.log(e)}function ce(e){let{sourcePaths:n,exclude:s,forEnabledClassOnly:t,outputLog:c}=e;if(c&&(G.OUTPUT_LOG=!0),!n)throw new Error("need provide source paths for reflect loader");c&&console.log(`sourcePaths: ${n}, exclude: ${s}, forEnabledClassOnly: ${t}`);let{classDefinitions:a,interfaceDefinitions:o,enumDefinitions:d,typeAliasDefinitions:T}=V(n,s),D=[],E=[];function K(y){let p=[];return(()=>{let m=a.get(y);if(m){m.superClassName&&p.push(m.superClassName),p.push(...m.implementations||[]);return}let M=o.get(y);if(M){p.push(...M.implementations||[]);return}T.get(y)&&p.push(y)})(),p.flatMap(m=>[m,...K(m)])||[]}function P(y,p){return K(y.name).includes(p)}function u(y){if(J.isClassDeclaration(y)&&y.name!==void 0){let p=y.name.text,m=a.get(p);if(!p||!m||t&&!P(m,"EnableReflect"))return;E.push(`Reflect.__classDef = Object.assign(Reflect.__classDef || {}, { ${p} })`);return}y.forEachChild(u)}function h(){let y=[];return a.forEach((p,m)=>{t&&!P(p,"EnableReflect")||y.push(`Reflect.__classes = Object.assign(Reflect.__classes || {}, { ${m}: ${JSON.stringify(p)} })`)}),o.forEach((p,m)=>{t&&!P(p,"EnableReflect")||y.push(`Reflect.__interfaces = Object.assign(Reflect.__interfaces || {}, { ${m}: ${JSON.stringify(p)} })`)}),d.forEach((p,m)=>{y.push(`Reflect.__enums = Object.assign(Reflect.__enums || {}, { ${m}: ${JSON.stringify(p)} })`)}),T.forEach((p,m)=>{y.push(`Reflect.__typeAliases = Object.assign(Reflect.__typeAliases || {}, { ${m}: ${JSON.stringify(p)} })`)}),y.join(`
|
|
2
|
-
|
|
3
|
-
${s}`:n.transform(s,t))}}export{G as DEBUG_CONFIG,V as parseSource,ce as reflectLoader,ke as reflectParserPlugin,Ne as setupReflectTypes,ne as updateReflectModules};
|
|
1
|
+
var U=(e,n,s)=>new Promise((t,c)=>{var r=m=>{try{l(s.next(m))}catch(x){c(x)}},d=m=>{try{l(s.throw(m))}catch(x){c(x)}},l=m=>m.done?t(m.value):Promise.resolve(m.value).then(r,d);l((s=s.apply(e,n)).next())});import J from"typescript";function R(e){return e||{}}import i from"typescript";import*as S from"fs";import*as v from"process";import*as h from"path";import{pathToFileURL as pe}from"url";var V={OUTPUT_LOG:!1},k=new Map,M=new Map,F=new Map,C=new Map,B=new Map,_=new Set,Q={[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",Z=["string","number","boolean","bigint","symbol"],ee=["any","Promise","Date","Error","undefined","unknown","object","Map","Set"],ne=["Mappable","EnableReflect"];[...Z,...ee,...ne].forEach(ae);ne.forEach(e=>M.set(e,{name:e}));var L,H=!1,$=Reflect;function Me(e){return U(this,null,function*(){let{filePaths:n,exclude:s,sourceFolder:t,distFolder:c}=e;if(t=h.resolve(t||v.cwd()),c=h.resolve(c||v.cwd()),$.__meta!==void 0)return;let r={classes:R(),interfaces:R(),typeAliases:R(),constTypes:R(),enums:R()};n=ce(n);let d=n.map(l=>h.join(t,l));W(d,s);for(let[l,m]of k)r.classes[l]=m;for(let[l,m]of M)r.interfaces[l]=m;for(let[l,m]of C)r.typeAliases[l]=m;for(let[l,m]of F)r.enums[l]=m;for(let[l,m]of B)r.constTypes[l]=m;$.__meta=btoa(JSON.stringify(r)),yield Promise.all(n.map(l=>te(l,c)))})}function te(e,n){return U(this,null,function*(){let s=h.resolve(n,e);if(!S.existsSync(s))return;if(S.statSync(s).isDirectory()){let l=S.readdirSync(s);yield Promise.all(l.map(m=>te(h.join(e,m),n)));return}if(!e.endsWith(".js"))return;let c=h.join(n,e),d=yield import(pe(c).href);$.__classDef={},Object.values(d).forEach(l=>{typeof l=="function"&&($.__classDef[l.name]=l)})})}function W(e,n){if(e||(e=[v.cwd()]),e=ce(e),!H){let s=ie(e,n),t=i.createProgram(s,{});L=t.getTypeChecker(),s=s.map(r=>X(r)),t.getSourceFiles().filter(r=>s.includes(X(r.fileName))||r.fileName.endsWith("/lib.es5.d.ts")).forEach(r=>{b(`parse file: ${r.fileName}`),se(r)});for(let r of _.keys())!k.has(r)&&!M.has(r)&&!F.has(r)&&!C.has(r)&&!Z.includes(r)&&!ee.includes(r)&&(b(`remove unknown typeName: ${r}`),_.delete(r));Array.from(k.values()).forEach(Te),Array.from(M.values()).forEach(Re),[k,M,C].forEach(he),H=!0}return{classDefinitions:k,interfaceDefinitions:M,enumDefinitions:F,typeAliasDefinitions:C,constTypeDefinitions:B}}function ie(e,n){let s=[];return e.forEach(t=>{if(t=h.resolve(t),xe(t,n)){b(`ignore excluded ${t}`);return}if(!S.existsSync(t)){console.error(`Path ${t} does not exist.`);return}if(S.statSync(t).isFile()){s.push(t);return}S.readdirSync(t).forEach(d=>s.push(...ie([h.join(t,d)],n)))}),s}function se(e){i.isClassDeclaration(e)?ue(e):i.isInterfaceDeclaration(e)?me(e):i.isEnumDeclaration(e)?ye(e):i.isTypeAliasDeclaration(e)?de(e):i.isConstTypeReference(e)?ge(e):e.forEachChild(se)}function ue(e){var l,m,x,N,E,K,u,w,I,j,y,D,f,T;let n=a(e.name);if(!n)return;let s=a((x=(m=(l=e.heritageClauses)==null?void 0:l.find(o=>o.token===i.SyntaxKind.ExtendsKeyword))==null?void 0:m.types)==null?void 0:x[0].expression),t=(E=(N=e.heritageClauses)==null?void 0:N.find(o=>o.token===i.SyntaxKind.ImplementsKeyword))==null?void 0:E.types.map(o=>a(o.expression)),c=[],r=[];for(let o of e.members)if(i.isPropertyDeclaration(o))c.push({name:a(o.name),isOptional:o.questionToken!==void 0,type:g(o),isPrivate:(K=o.modifiers)==null?void 0:K.some(p=>p.kind===i.SyntaxKind.PrivateKeyword),isStatic:(u=o.modifiers)==null?void 0:u.some(p=>p.kind===i.SyntaxKind.StaticKeyword),isReadonly:(w=o.modifiers)==null?void 0:w.some(p=>p.kind===i.SyntaxKind.ReadonlyKeyword)});else if(i.isMethodDeclaration(o))r.push({name:a(o.name),returnType:g(o),isPrivate:(I=o.modifiers)==null?void 0:I.some(p=>p.kind===i.SyntaxKind.PrivateKeyword),isStatic:(j=o.modifiers)==null?void 0:j.some(p=>p.kind===i.SyntaxKind.StaticKeyword),isAsync:(y=o.modifiers)==null?void 0:y.some(p=>p.kind===i.SyntaxKind.AsyncKeyword),args:o.parameters.map(p=>({name:a(p.name),type:g(p),isOptional:p.questionToken!==void 0}))});else if(i.isGetAccessorDeclaration(o)){let p=c.find(A=>A.name===a(o.name));p||(p={name:a(o.name),isOptional:o.questionToken===void 0,type:g(o)},c.push(p)),p.accessor=p.accessor||{},p.accessor.getter={isPrivate:((D=o.modifiers)==null?void 0:D.some(A=>A.kind===i.SyntaxKind.PrivateKeyword))||!1},p.isPrivate=p.accessor.getter.isPrivate}else if(i.isSetAccessorDeclaration(o)){let p=c.find(A=>A.name===a(o.name));p||(p={name:a(o.name),isOptional:o.questionToken===void 0,type:g(o)},c.push(p)),p.accessor=p.accessor||{},p.accessor.setter={isPrivate:((f=o.modifiers)==null?void 0:f.some(A=>A.kind===i.SyntaxKind.PrivateKeyword))||!1}}let d={name:n,superClassName:s,implementations:t,properties:c,methods:r,genericsParams:(T=e.typeParameters)==null?void 0:T.map(o=>a(o.name))};b(`Define class: ${a(e.name)}`),k.set(n,d)}function me(e){var l,m,x,N,E,K;let n=a(e.name);if(!n)return;let s=((m=(l=e.heritageClauses)==null?void 0:l.find(u=>u.token===i.SyntaxKind.ExtendsKeyword))==null?void 0:m.types.map(u=>a(u.expression)))||[],t=[],c=[],r;for(let u of e.members)i.isPropertySignature(u)?t.push({name:a(u.name),isOptional:u.questionToken!==void 0,type:g(u),isPrivate:((x=u.modifiers)==null?void 0:x.some(w=>w.kind===i.SyntaxKind.PrivateKeyword))||!1,isReadonly:((N=u.modifiers)==null?void 0:N.some(w=>w.kind===i.SyntaxKind.ReadonlyKeyword))||!1}):i.isMethodSignature(u)?c.push({name:u.name.text,returnType:g(u),isPrivate:((E=u.modifiers)==null?void 0:E.some(w=>w.kind===i.SyntaxKind.PrivateKeyword))||!1,args:u.parameters.map(w=>({name:a(w.name),type:g(w),isOptional:w.questionToken!==void 0}))}):i.isIndexSignatureDeclaration(u)&&(r=g(u));let d=M.get(n);d?(d.implementations=z(d.implementations||[],s),d.methods=z(d.methods||[],c,(u,w)=>u.name===w.name),d.properties=z(d.properties||[],t,(u,w)=>u.name===w.name),d.indexElementType=r,b(`Merge interface ${a(e.name)}`)):(d={name:n,implementations:s,methods:c,properties:t,indexElementType:r,genericsParams:(K=e.typeParameters)==null?void 0:K.map(u=>a(u.name))},M.set(n,d),b(`Define interface ${a(e.name)}`))}function ye(e){let n=a(e.name);n&&(F.set(n,{name:n,members:e.members.map(s=>({name:a(s.name),initializer:a(s.initializer)}))}),b(`Define enum: ${a(e.name)}`))}function de(e){var c;b(`Define typeAlias: ${a(e.name)}`);let n=g(e),s=(c=e.typeParameters)==null?void 0:c.map(r=>a(r.name)),t=a(e.name);C.set(t,{name:t,type:n,genericParams:s})}function ge(e){let n=e.parent.parent;i.isVariableDeclaration(n)&&n.initializer&&i.isAsExpression(n.initializer)&&B.set(a(n.name),re(n.initializer.expression))}function re(e){return i.isArrayLiteralExpression(e)?De(e):i.isObjectLiteralExpression(e)?we(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 De(e){let n=[];return e.elements.forEach(s=>{if(i.isStringLiteral(s))return n.push(a(s))}),n.length===0?O:n.length===1?n[0]:{unionMembers:n}}function we(e){let n=[];return e.properties.map(s=>{i.isPropertyAssignment(s)?n.push({name:a(s.name),type:re(s.initializer)}):b(`unsupported property: ${s.name}`)}),{typeLiteralMembers:n}}function ae(e){_.add(e)}function g(e,n=!1){if(e.type&&!n)return P(e.type);if(!L)return console.error("TypeChecker not initialized!"),O;let s=L.getTypeAtLocation(e),t=L.typeToTypeNode(s,void 0,void 0);return t?P("type"in t?t.type:t):O}function P(e){let n={};if(e===void 0)return O;if(i.isTypeReferenceNode(e))if(ae(a(e.typeName)),e.typeArguments)n.generics=[a(e.typeName),...e.typeArguments.map(s=>P(s))];else return a(e.typeName);else if(i.isFunctionTypeNode(e))n.isFunction=!0;else if(i.isConstructorTypeNode(e))n.isConstructor=!0;else{if(i.isTypeQueryNode(e))return g(e);if(i.isTypeLiteralNode(e)){let s=[];e.members.forEach(t=>{i.isPropertySignature(t)?s.push({name:a(t.name),isOptional:t.questionToken!==void 0,type:g(t)}):i.isIndexSignatureDeclaration(t)?n.indexElementType=g(t):s.push({name:a(t.name)||"",isOptional:t.questionToken!==void 0,type:P()})}),n.typeLiteralMembers=s}else if(i.isArrayTypeNode(e))n.arrayElementType=P(e.elementType);else if(i.isTupleTypeNode(e))n.tupleMembers=e.elements.map(P);else if(i.isOptionalTypeNode(e))Object.assign(n,g(e)),n.isOptionalInTuple=!0;else{if(i.isRestTypeNode(e))return g(e);if(i.isUnionTypeNode(e))n.unionMembers=e.types.map(P);else if(i.isIntersectionTypeNode(e))n.intersectionMembers=e.types.map(P);else{if(i.isConditionalTypeNode(e))return g(e);if(i.isInferTypeNode(e))return g(e);if(i.isParenthesizedTypeNode(e))return g(e);if(i.isThisTypeNode(e))return g(e);if(i.isTypeOperatorNode(e)&&e.operator===i.SyntaxKind.KeyOfKeyword)return g(e,!0);if(i.isIndexedAccessTypeNode(e))return g(e,!0);if(i.isMappedTypeNode(e))n.indexElementType=P(e.type);else if(i.isLiteralTypeNode(e))n.literalValue=a(e.literal);else{if(Object.keys(Q).includes(String(e.kind)))return Q[e.kind]||O;if(i.isNamedTupleMember(e))Object.assign(n,g(e));else return g(e,!0)}}}}return n}var z=(e,n,s)=>[...(e==null?void 0:e.filter(t=>!(n!=null&&n.some(c=>(s||(()=>c===t))(c,t)))))||[],...n||[]];function q(e,n){if(e!==void 0&&e!==O)return typeof e=="string"?_.has(e)||n!=null&&n.includes(e)?e:void 0:e}function Te(e){var n,s;(n=e.methods)==null||n.forEach(t=>fe(t,e.genericsParams)),(s=e.properties)==null||s.forEach(t=>oe(t,e.genericsParams))}function Re(e){var n,s;(n=e.methods)==null||n.forEach(t=>fe(t,e.genericsParams)),(s=e.properties)==null||s.forEach(t=>oe(t,e.genericsParams))}function oe(e,n){e.type=q(e.type,n)}function fe(e,n){var s;(s=e.args)==null||s.forEach(t=>t.type=q(t.type,n)),e.returnType=q(e.returnType,n)}function a(e){if(!e)return e;if(e.end<0)return e.text;try{let n=e;return i.isQualifiedName(n)?a(n.right):n.getText()}catch(n){return e.text}}function G(e){e&&Object.entries(e).forEach(n=>{let[s,t]=n;t instanceof Array&&t.length===0||t===!1||t===void 0?delete e[s]:t.constructor===Array?t.forEach(G):t.constructor===Object&&G(t)})}function he(e){for(let n of e.values())G(n)}function xe(e,n){return n?(n=n instanceof Array?n:[n],n.some(s=>(s instanceof RegExp||(s=new RegExp(s.replace(/\./g,"\\.").replace(/\*/g,".*"))),e.match(s)))):!1}function X(e,n=v.cwd()){return Y(e).replace(Y(n)+"/","")}function Y(e){let n=h.sep;return e.split(n).join("/")}function ce(e){return e instanceof Array?e:[e]}function b(e){V.OUTPUT_LOG&&console.log(e)}function le(e){let{sourcePaths:n,exclude:s,forEnabledClassOnly:t,outputLog:c}=e;if(c&&(V.OUTPUT_LOG=!0),!n)throw new Error("need provide source paths for reflect loader");c&&console.log(`sourcePaths: ${n}, exclude: ${s}, forEnabledClassOnly: ${t}`);let{classDefinitions:r,interfaceDefinitions:d,enumDefinitions:l,typeAliasDefinitions:m,constTypeDefinitions:x}=W(n,s),N=[],E=[];function K(y){let D=[];return(()=>{let f=r.get(y);if(f){f.superClassName&&D.push(f.superClassName),D.push(...f.implementations||[]);return}let T=d.get(y);if(T){D.push(...T.implementations||[]);return}m.get(y)&&D.push(y)})(),D.flatMap(f=>[f,...K(f)])||[]}function u(y,D){return K(y.name).includes(D)}function w(y){if(J.isClassDeclaration(y)&&y.name!==void 0){let D=y.name.text,f=r.get(D);if(!D||!f||t&&!u(f,"EnableReflect"))return;E.push(`Reflect.registerClass?Reflect.registerClass({${D}}):(Reflect.__classDef=Object.assign(Reflect.__classDef||{},{${D}}))`);return}y.forEachChild(w)}function I(){let y={classes:R(),interfaces:R(),typeAliases:R(),constTypes:R(),enums:R()};return r.forEach((f,T)=>{t&&!u(f,"EnableReflect")||(y.classes[T]=f)}),d.forEach((f,T)=>{t&&!u(f,"EnableReflect")||(y.interfaces[T]=f)}),l.forEach((f,T)=>{y.enums[T]=f}),m.forEach((f,T)=>{y.typeAliases[T]=f}),x.forEach((f,T)=>{y.constTypes[T]=f}),`;Reflect.__meta='${btoa(JSON.stringify(y))}'`}return{outputAllMetas:I,transform:(y,D)=>{if(D.endsWith(".ts")&&!(typeof n=="string"?[n]:n).every(f=>!D.startsWith(f))){c&&console.log(`transform id: ${D}`);try{let f=J.createSourceFile(D,y,J.ScriptTarget.Latest,!1);return N.length=0,E.length=0,w(f),`${N.join(";")};${y};${E.join(";")}`}catch(f){return console.error(`[reflect-parser-plugin] Error processing ${D}:`,f),null}}}}}var Ee=process.cwd().replace(/\\/g,"/")+"/";function Fe(e){let n=le(e);return{name:"reflect-parser-plugin",enforce:"pre",transform:(s,t)=>(t=t.replace(Ee,""),t===e.entry?`${n.outputAllMetas()}
|
|
2
|
+
${s}`:n.transform(s,t))}}export{V as DEBUG_CONFIG,W as parseSource,le as reflectLoader,Fe as reflectParserPlugin,Me as setupReflectTypes,te as updateReflectModules};
|
package/package.json
CHANGED
package/types/raw.d.ts
CHANGED
|
@@ -74,9 +74,15 @@ export type Dictionary<T> = {
|
|
|
74
74
|
};
|
|
75
75
|
export interface ReflectObject {
|
|
76
76
|
__classDef: Dictionary<ConstructorFunction>;
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
__enums: Dictionary<RawEnumDefinition>;
|
|
80
|
-
__typeAliases: Dictionary<RawTypeAliasDefinition>;
|
|
81
|
-
__constTypes: Dictionary<RawTypeDef>;
|
|
77
|
+
__meta: string;
|
|
78
|
+
registerClass?: (classDef: Dictionary<ConstructorFunction>) => void;
|
|
82
79
|
}
|
|
80
|
+
export interface RawReflectMeta {
|
|
81
|
+
classes: Dictionary<RawClassDefinition>;
|
|
82
|
+
interfaces: Dictionary<RawInterfaceDefinition>;
|
|
83
|
+
typeAliases: Dictionary<RawTypeAliasDefinition>;
|
|
84
|
+
constTypes: Dictionary<RawTypeDef>;
|
|
85
|
+
enums: Dictionary<RawEnumDefinition>;
|
|
86
|
+
classDef?: Dictionary<ConstructorFunction>;
|
|
87
|
+
}
|
|
88
|
+
export declare function Dictionary<T = unknown>(obj?: object): Dictionary<T>;
|
|
@@ -11,4 +11,4 @@ export type Type = string | string[] | {
|
|
|
11
11
|
export declare function getTypeDef(type: Type | TypeDefinition): TypeDefinition;
|
|
12
12
|
export declare function assertType<T>(data: unknown, type: Type, depth?: number): T;
|
|
13
13
|
export declare function isNullable(type: Type | TypeDefinition): boolean;
|
|
14
|
-
export declare function isType(value: unknown, type: Type | TypeDefinition): boolean;
|
|
14
|
+
export declare function isType(value: unknown, type: Type | TypeDefinition, depth?: number): boolean;
|
|
@@ -2,5 +2,5 @@ export * from './ValidateResult';
|
|
|
2
2
|
export { TypeDefinition } from './TypeDefinition';
|
|
3
3
|
export * from './reflect-context';
|
|
4
4
|
export * from './instance-validate';
|
|
5
|
-
export * from './
|
|
6
|
-
export * from './
|
|
5
|
+
export * from './Type';
|
|
6
|
+
export * from './method-validate';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Dictionary } from '../raw';
|
|
2
2
|
import type { ValidateResult } from './ValidateResult';
|
|
3
|
-
import type
|
|
3
|
+
import { type Type } from './Type';
|
|
4
4
|
export declare function validateInstance<T extends object>(instance: T, type?: Type, depth?: number): ValidateResult;
|
|
5
5
|
export declare function validateArray<T extends object>(array: T[], type?: Type, depth?: number): ValidateResult;
|
|
6
6
|
export declare function validateDictionary<T extends object>(dict: Dictionary<T>, type?: Type, depth?: number): ValidateResult;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
declare const VALIDATE_WRAPPER: unique symbol;
|
|
2
|
+
declare global {
|
|
3
|
+
interface Function {
|
|
4
|
+
[VALIDATE_WRAPPER]: Function;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export declare const ReflectValidate: MethodDecorator;
|
|
8
|
+
export declare function safeCall<R>(target: object, methodName: string, ...args: unknown[]): R;
|
|
9
|
+
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ConstructorFunction, type RawTypeDef } from '../raw';
|
|
2
2
|
import { type TypeDefinition } from './TypeDefinition';
|
|
3
3
|
import { ClassDefinition } from './ClassDefinition';
|
|
4
4
|
import { InterfaceDefinition } from './InterfaceDefinition';
|
|
@@ -19,5 +19,4 @@ export interface TypeAliasDefinition {
|
|
|
19
19
|
rawType: RawTypeDef;
|
|
20
20
|
}
|
|
21
21
|
export declare function getTypeAliasDefinition(name: string, genericArgs?: TypeDefinition[]): TypeAliasDefinition | undefined;
|
|
22
|
-
export declare function initReflectContext(): void;
|
|
23
22
|
export type EnableReflect = object;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { type TypeDefinition } from './TypeDefinition';
|
|
2
2
|
import type { ConstructorFunction } from '../raw';
|
|
3
3
|
import type { ValidateResult } from './ValidateResult';
|
|
4
|
-
import type { Type } from './assert-type';
|
|
5
4
|
export declare const preservedTypes: ConstructorFunction[];
|
|
6
5
|
export declare function validateValue(value: unknown, type: TypeDefinition, depth?: number): ValidateResult;
|
|
7
|
-
export declare function validateClassInstance<T extends object>(instance: T,
|
|
6
|
+
export declare function validateClassInstance<T extends object>(instance: T, typeDef: TypeDefinition, depth?: number): ValidateResult;
|
|
8
7
|
export declare function safeSetValue(target: object, propName: string, value: unknown): void;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
declare const VALIDATE_WRAPPER: unique symbol;
|
|
2
|
-
declare global {
|
|
3
|
-
interface Function {
|
|
4
|
-
[VALIDATE_WRAPPER]: Function;
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
export declare const ReflectValidate: MethodDecorator;
|
|
8
|
-
export declare function safeCall(target: object, methodName: string, ...args: unknown[]): unknown;
|
|
9
|
-
export declare function validateFunctionArgument(args: {
|
|
10
|
-
funcName: string;
|
|
11
|
-
optionsObj?: object;
|
|
12
|
-
value?: unknown;
|
|
13
|
-
argName: string;
|
|
14
|
-
type: string;
|
|
15
|
-
optional?: boolean;
|
|
16
|
-
}): void;
|
|
17
|
-
export {};
|