ts-ref-kit 1.1.2 → 1.1.3
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
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var E=Object.defineProperty,ft=Object.defineProperties,pt=Object.getOwnPropertyDescriptor,mt=Object.getOwnPropertyDescriptors,yt=Object.getOwnPropertyNames,
|
|
2
|
-
caused by: `):this.errorMessage}};o(R,"ValidateResult"),R.success=new R(!0);var J=R,
|
|
3
|
-
-> `)}o(je,"getErrorTraceMessages");var Se=class Se{constructor(t){this.rawDef=t}get name(){return this.rawDef.name}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)}};o(Se,"PropertyDefinition");var K=Se;function Z(e){return new K(e)}o(Z,"fillProperty");var U=class U extends K{static create(t,n){let r=A(U,t);return r.genericContext=n,r}get type(){return d(this.rawDef.type,this.genericContext)}};o(U,"GenericProperty");var W=U;var we=class we{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(we,"MethodDefinition");var Y=we;function H(e){return new Y(e)}o(H,"fillMethod");var q=class q extends Y{static create(t,n){let r=A(q,t);return r.genericContext=n,r}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 Q=q;function A(e,t){let n=Object.create(e.prototype);return Object.assign(n,t),n}o(A,"createInstance");function X(e,t){e.properties=t.properties.map(n=>W.create(n,e.genericContext)),e.methods=t.methods.map(n=>Q.create(n,e.genericContext))}o(X,"buildPropertiesAndMethods");function Re(e,t){let n={};return e.forEach(r=>{let[i,s]=t(r);n[i]=s}),n}o(Re,"toDictionary");function ee(e,t){return(e==null?void 0:e.map(t).filter(n=>n!==void 0))||[]}o(ee,"mapNotNull");function te(e,t,n){e!==void 0&&(e[t]=n)}o(te,"setValue");function C(e,t){if(e!==void 0)return e[t]}o(C,"getValue");var Ce=class Ce{constructor(t){this.name=t.name,this.members=new Map,t.members.forEach(n=>{let r=n.initializer===void 0?{name:"number"}:{literalValue:n.initializer};this.members.set(n.name,r)})}get type(){return{name:this.name,unionMembers:Array.from(this.members.values())}}get names(){return Array.from(this.members.keys())}};o(Ce,"EnumDefinition");var N=Ce;var V=new Map,ne=new Map,re=new Map,ie=new Map,Dt=new Map,ht=o((e=>{Dt.set(e.name,e)}),"ReflectClass"),At={string:String,number:Number,boolean:Boolean,object:Object},b=Reflect;function oe(e){var t;return((t=p(e))==null?void 0:t.jsClass)||At[e]}o(oe,"getClassByName");function p(e){var t,n,r;switch(typeof e){case"object":return p(e.constructor);case"function":let i=p(e.name);if(i)return i;let s=Array.from(V.values()).find((l=>l.jsClass===e));if(s)return s;let a=(t=Object.entries(b.__classDef||{}).find(([l,y])=>y===e))==null?void 0:t[0];return a?p(a):void 0;case"string":let c=e;if(!V.has(c)){let l=(n=b.__classes)==null?void 0:n[c];if(!l)return;let y=(r=b.__classDef)==null?void 0:r[c];V.set(c,new P(Me(w({},l),{jsClass:y})))}return V.get(c)}}o(p,"getClassDefinition");function M(e){var t;if(!ne.has(e)){let n=(t=b.__interfaces)==null?void 0:t[e];if(!n)return;ne.set(e,new x(n))}return ne.get(e)}o(M,"getInterfaceDefinition");function $(e){var t;if(!re.has(e)){let n=(t=b.__enums)==null?void 0:t[e];if(!n)return;re.set(e,new N(n))}return re.get(e)}o($,"getEnumDefinition");function xt(e){var t;return((t=$(e))==null?void 0:t.names)||[]}o(xt,"getEnumNames");function Ot(e){let t=Object.entries(e)[0];if(!t)return[];let[n,r]=t,i=$(n);return i?i.names.map(s=>r[s]):Array.from(Object.keys(r))}o(Ot,"getEnumValues");function Pe(e){var t;if(!ie.has(e)){let n=d((t=b.__typeAliases)==null?void 0:t[e]);if(!n)return;ie.set(e,n)}return ie.get(e)}o(Pe,"getTypeAliasDefinition");function Mt(){b.__classes&&Object.entries(b.__classes).map(([e,t])=>{var r;let n=(r=b.__classDef)==null?void 0:r[e];n&&V.set(e,new P(Me(w({},t),{jsClass:n})))}),b.__interfaces&&Object.entries(b.__interfaces).map(([e,t])=>ne.set(e,new x(t))),b.__enums&&Object.entries(b.__enums).map(([e,t])=>re.set(e,new N(t))),b.__typeAliases&&Object.entries(b.__typeAliases).map(([e,t])=>{ie.set(e,d(t))}),["__classDef","__classes","__interfaces","__enums","__typeAliases","initReflectContext"].forEach(e=>delete b[e])}o(Mt,"initReflectContext");var ae=class ae{constructor(t){var n,r;this.name=t.name,this._implementationNames=t.implementations||[],this.methods=((n=t.methods)==null?void 0:n.map(H))||[],this.properties=((r=t.properties)==null?void 0:r.map(Z))||[],this.generics=t.generics}get implementations(){return this._implementations||(this._implementations=ee(this._implementationNames,t=>M(t)||p(t).type||D(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(r=>t.add(r)):t.add(n)}),this._allImplementations=Array.from(t)}return this._allImplementations}get type(){let t={};return this.allImplementations.forEach(n=>{let i=("type"in n?n.type:n).typeLiteralMembers;i==null||i.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}`}buildBaseObject(){let t={};return this.properties.forEach(n=>te(t,n.name,void 0)),this.methods.forEach(n=>te(t,n.name,()=>{})),t}};o(ae,"InterfaceDefinition");var x=ae,ce=class ce extends x{static create(t,n){let r=A(ce,t);r.genericArgs=n;let i=r;return i.buildGenericContext(),X(i,t),i}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((n,r)=>this.genericContext[n]=this.genericArgs[r])}};o(ce,"GenericInterface");var se=ce;var Ie=class Ie{constructor(t){var n,r;this.name=t.name,this.superClassName=t.superClassName||"Object",this.superClass=p(this.superClassName),this._implementationNames=t.implementations||[],this.methods=((n=t.methods)==null?void 0:n.map(H))||[],this.properties=((r=t.properties)==null?void 0:r.map(Z))||[],this.jsClass=t.jsClass,this.generics=t.generics}get allMethods(){let t={};if(this.superClassName!=="Object"){let n=p(this.superClassName);n&&Object.assign(t,w({},n.allMethods))}return Object.assign(t,w({},Re(this.methods,n=>[n.name,n]))),t}get allProperties(){var t;return Object.assign(((t=this.superClass)==null?void 0:t.allProperties)||{},Re(this.properties,n=>[n.name,n]))}get implementations(){return this._implementations?this._implementations:ee(this._implementationNames,t=>M(t)||D(t))}get allImplementations(){var t,n;if(this._allImplementations===void 0){let r=new Set(this.implementations);this.implementations.forEach(i=>{i instanceof x?i.allImplementations.forEach(s=>r.add(s)):r.add(i)}),(n=(t=this.superClass)==null?void 0:t.allImplementations)==null||n.forEach(i=>r.add(i)),this._allImplementations=Array.from(r)}return this._allImplementations}getProperty(t){return this.properties.find(n=>n.name===t)}get type(){var n,r;let t={};return(r=(n=this.superClass)==null?void 0:n.type.typeLiteralMembers)==null||r.forEach(i=>t[i.name]=i),this.properties.forEach(i=>t[i.name]=i),{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(r=>r.name).includes(t)}isSuperClassOf(t){if(this.name===t)return!0;let n=p(t);return n?n.isSubClassOf(this.name):!1}toString(){return`class ${this.name}`}};o(Ie,"ClassDefinition");var P=Ie,ue=class ue extends P{static create(t,n){let r=A(ue,t);r.genericArgs=n;let i=r;return i.buildGenericContext(),X(i,t),i}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((n,r)=>this.genericContext[n]=this.genericArgs[r])}};o(ue,"GenericClass");var le=ue;var g={name:"any"},jt={name:"null"},He=["string","number","boolean","bigint","symbol"];function Xe(e){return!!(e.name&&["any","void","unknown"].includes(e.name))}o(Xe,"isIgnoredType");function Je(e){return!!(e.name&&He.includes(e.name))}o(Je,"isPrimitiveType");function fe(e){return!!e.arrayElementType}o(fe,"isArrayType");function pe(e){return!!e.literalValue}o(pe,"isLiteralType");function me(e){return!!e.typeLiteralMembers}o(me,"isTypeLiteralType");function ye(e){return!!e.unionMembers}o(ye,"isUnionType");function de(e){return!!e.intersectionMembers}o(de,"isIntersectionType");function be(e){return!!e.tupleMembers}o(be,"isTupleType");function ge(e){return!!e.classDefinition}o(ge,"isClassDefinition");function St(e){return!!e.generics}o(St,"hasGenerics");function D(e,t){if(e==="any"||e==="Any"||e==="unknown"||e==="")return g;if(e==="null")return jt;let n=p(e);if(n)return t?le.create(n,t).type:n.type;if(He.includes(e))return{name:e};let r=M(e);if(r)return t?se.create(r,t).type:r.type;let i=$(e);if(i)return i.type;let s=Pe(e);return s||g}o(D,"getTypeDefinition");var qe=new Map;function d(e,t,n){let r=Ee(e);if(e===void 0)return g;let i=qe.get(r);if(i)return i;let s={};if(qe.set(r,s),typeof e=="string")return(t==null?void 0:t[e])||D(e,n)||g;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))}return Object.keys(s).length===0?g:s}o(d,"fillType");function Ee(e){return e===null?"null":e===void 0?"undefined":typeof e!="object"?JSON.stringify(e):Array.isArray(e)?"["+e.map(Ee).join(",")+"]":"{"+Object.keys(e).sort().map(n=>JSON.stringify(n)+":"+Ee(e[n])).join(",")+"}"}o(Ee,"stableStringify");var Te={isPrimitiveType:Je,isArrayType:fe,isLiteralType:pe,isTypeLiteralType:me,isUnionType:ye,isIntersectionType:de,isTupleType:be,isClassDefinition:ge,hasGenerics:St};var wt=[Promise,Date,Map,Set,Error,Function];function T(e,t,n=1){switch(!0){case t.name==="undefined":return e===void 0?u:f(`declared as ${m(t)} but actually not`);case Xe(t):return u;case ge(t):return e instanceof Object?F(e,t.classDefinition.name,n):f(`declared as ${m(t)} but actually not an object`);case fe(t):return Rt(e,t,n);case be(t):return Ct(e,t,n);case ye(t):for(let r of t.unionMembers||[])if(T(e,r,n).success)return u;return f(`declared as ${m(t)} but all value not match`);case de(t):for(let r of t.intersectionMembers||[]){let i=T(e,r,n);if(!i.success)return f(`declared as ${m(t)} but all value not match`,i)}return u;case pe(t):switch(typeof e){case"string":return e===Et(t.literalValue)?u:f(`declared as string ${m(t)} but value not match`);case"number":return e===Number(t.literalValue)?u:f(`declared as number ${m(t)} but value not match`);case"bigint":return e===BigInt(t.literalValue)?u:f(`declared as bigint ${m(t)} but value not match`);case"boolean":return e===!!t.literalValue?u:f(`declared as boolean ${m(t)} but value not match`);default:return t.literalValue==="null"&&e===null?u:e===t.literalValue?u:f(`declared as ${m(t)} but value not match`)}case me(t):return Pt(e,t,n);case t.isFunction:case t.isConstructor:return typeof e=="function"?u:f(`declared as ${m(t)} but actually not`);case Je(t):return typeof e===t.name?u:f(`declared as ${m(t)} but actually ${typeof e}`);default:return It(e,t,n)}}o(T,"validateValue");function Rt(e,t,n=1){if(!Array.isArray(e))return f(`declared as ${m(t)} but actually not`);if(n===0)return u;for(let r of e){let i=T(r,t.arrayElementType||g,n-1);if(!i.success)return f(`declared as ${m(t)} but not all values in array match`,i)}return u}o(Rt,"validateArrayValue");function Ct(e,t,n=1){if(!Array.isArray(e))return f(`declared as ${m(t)} but actually not a tuple`);if(n===0)return u;let r=0;for(let i of t.tupleMembers){let s=e[r++];if(i.isOptionalInTuple&&s===void 0)continue;let a=T(e[r],i,n);if(!a.success)return f(`declared as ${m(t)} but not all values in tuple match`,a)}return u}o(Ct,"validateTupleValue");function Pt(e,t,n=1){if(e instanceof Object){for(let r of t.typeLiteralMembers||[]){if(r.isStatic)return u;if(r.name.startsWith("[")&&r.name.endsWith("]"))return u;if(n===0)return u;let i=r.type||g;r.isOptional&&(i={unionMembers:[i,{name:"undefined"}]});let s=C(e,r.name),a=T(s,i,n-1);if(!a.success)return f(`declared ${r.name} as ${m(i)}, but not match`,a)}return u}else return f(`declared as ${m(t)} but not an object`)}o(Pt,"validateProperties");function It(e,t,n=1){let r=typeof t=="string"?t:t.name;if(!r)return u;if(e===void 0)return f(`declared as ${m(t)} but actually undefined`);if(e===null)return r==="null"?u:f(`declared as ${m(t)} but actually null`);for(let s of wt)if(r===s.name)return e instanceof s?u:f(`declared as ${m(t)} but actually ${e.constructor.name}`);if(e instanceof Object&&!et(e,r))return f(`declared as ${m(t)} but actually not instance of it`);if(n==0)return u;let i=T(e,D(r),n);return i.success?u:f(`declared as ${m(t)} but actually not match`,i)}o(It,"validateSimpleValue");function F(e,t,n=3){if(t!=="object"&&!et(e,t))return f(`declared as instance of ${t} but actually not`);let r=D(t);return t!=="any"&&r===g?f(`${t} not defined`):(delete r.classDefinition,T(e,r,n))}o(F,"validateClassInstance");function et(e,t){if(e===void 0||e.constructor.name===t)return!0;let n=p(t);if(!n)return!0;if(n.jsClass)return e instanceof n.jsClass;let r=p(e);return r?r.isSubClassOf(n.name):!1}o(et,"valueInstanceOf");function Et(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(Et,"trimQuotes");function m(e){var t,n,r;return typeof e=="string"?e:ge(e)?e.classDefinition.name:fe(e)?(((t=e.arrayElementType)==null?void 0:t.name)||"unknown")+"[]":e.isConstructor?"Class":e.isFunction?"Function":me(e)?"Object":be(e)?`(${e.tupleMembers.map(m).join(",")})`:ye(e)?((n=e.unionMembers)==null?void 0:n.map(m).join(" | "))||"unknown":de(e)?((r=e.intersectionMembers)==null?void 0:r.map(m).join(" & "))||"unknown":pe(e)?e.literalValue:e.name||"unknown"}o(m,"getTypeDisplayName");function k(e,t,n=3){return t=t||e.constructor.name,F(e,t,n)}o(k,"validateInstance");function Jt(e,t,n=1){for(let r=0;r<e.length;r++){let i=k(e[r],t,n);if(!i.success)return f(`declared as instance of ${t}[] but [${r}] actually not`,i)}return u}o(Jt,"validateArray");function Nt(e,t,n=1){let r=Object.entries(e);for(let i=0;i<r.length;i++){let[s,a]=r[i],c=k(a,t,n);if(!c.success)return f(`declared as instance of Dictionary<${t}> but [${s}] actually not`,c)}return u}o(Nt,"validateDictionary");function j(e){return typeof e=="string"?D(e):"array"in e?{arrayElementType:j(e.array)}:"union"in e?{unionMembers:e.union.map(j)}:"intersection"in e?{intersectionMembers:e.intersection.map(j)}:"tuple"in e?{tupleMembers:e.tuple.map(j)}:e}o(j,"getTypeDef");function Vt(e,t,n=5){let r=T(e,j(t),n);if(!r.success){console.error(`assert failed with type: ${t}
|
|
4
|
-
${r.errorStackFlow}`);debugger;throw new Error(`assert failed with type: ${t}, ${r.errorStackFlow}`)}return e}o(Vt,"assertType");function $t(e){return tt(null,e)}o($t,"isNullable");function tt(e,t){return T(e,
|
|
5
|
-
${l.errorStackFlow}`);return a},"checkValue"),i=t.returnType;return i.name==="Promise"&&(i=((s=i.generics)==null?void 0:s[0])||
|
|
1
|
+
var E=Object.defineProperty,ft=Object.defineProperties,pt=Object.getOwnPropertyDescriptor,mt=Object.getOwnPropertyDescriptors,yt=Object.getOwnPropertyNames,Ye=Object.getOwnPropertySymbols;var qe=Object.prototype.hasOwnProperty,dt=Object.prototype.propertyIsEnumerable;var Qe=(e,t,n)=>t in e?E(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,w=(e,t)=>{for(var n in t||(t={}))qe.call(t,n)&&Qe(e,n,t[n]);if(Ye)for(var n of Ye(t))dt.call(t,n)&&Qe(e,n,t[n]);return e},Oe=(e,t)=>ft(e,mt(t)),o=(e,t)=>E(e,"name",{value:t,configurable:!0});var gt=(e,t)=>{for(var n in t)E(e,n,{get:t[n],enumerable:!0})},bt=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of yt(t))!qe.call(e,i)&&i!==n&&E(e,i,{get:()=>t[i],enumerable:!(r=pt(t,i))||r.enumerable});return e};var Tt=e=>bt(E({},"__esModule",{value:!0}),e);var ln={};gt(ln,{AfterSerialized:()=>Xt,IgnoreSerialization:()=>Zt,Lazy:()=>Kt,PropertyWrapper:()=>j,ReflectClass:()=>ht,ReflectValidate:()=>kt,Serialized:()=>st,SerializedClass:()=>Wt,SerializedName:()=>Ut,TypeDefinition:()=>Te,ValidateResult:()=>J,asBoolean:()=>$e,asNumber:()=>De,asString:()=>I,assertType:()=>Vt,callDecoratedMethod:()=>ze,createNewInstance:()=>ke,defineDecoratedProperty:()=>_e,deserialize:()=>Ae,deserializeArray:()=>at,deserializeFrom:()=>ct,done:()=>Ht,failedResult:()=>p,getAnyValue:()=>_,getClassByName:()=>oe,getClassDefinition:()=>m,getDecoratedProperty:()=>it,getDecoratedPropertyValue:()=>ve,getEnumDefinition:()=>$,getEnumNames:()=>Mt,getEnumValues:()=>xt,getErrorTraceMessages:()=>je,getInterfaceDefinition:()=>S,getOrSetValue:()=>Bt,getSerializeSettings:()=>Qt,getTypeAliasDefinition:()=>Pe,getTypeDef:()=>h,hasDecoratedMethod:()=>Gt,initReflectContext:()=>Ot,isDictionary:()=>Fe,isNullable:()=>$t,isType:()=>tt,itSelf:()=>Me,mapAllProperties:()=>en,registerMappable:()=>xe,registerSerializedProperty:()=>v,registerTransform:()=>B,safeCall:()=>vt,serialize:()=>Yt,serializeTo:()=>We,serializeToData:()=>he,setAnyValue:()=>A,setDefaultIgnored:()=>Ge,successResult:()=>f,validateArray:()=>Jt,validateDictionary:()=>Nt,validateFunctionArgument:()=>Lt,validateInstance:()=>k});module.exports=Tt(ln);var R=class R{constructor(t,n,r){this.success=t;this.errorMessage=n;this.cause=r}static failure(t,n){return new R(!1,t,n)}get errorStackFlow(){return this.cause?[this.errorMessage,this.cause.errorStackFlow].join(`
|
|
2
|
+
caused by: `):this.errorMessage}};o(R,"ValidateResult"),R.success=new R(!0);var J=R,f=J.success,p=J.failure;function je(e){let t=o(n=>n.errorMessage?[n.errorMessage,...n.cause?t(n.cause):[]]:[],"getAllTraceMessages");return t(e).join(`
|
|
3
|
+
-> `)}o(je,"getErrorTraceMessages");var Se=class Se{constructor(t){this.rawDef=t}get name(){return this.rawDef.name}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)}};o(Se,"PropertyDefinition");var K=Se;function Z(e){return new K(e)}o(Z,"fillProperty");var U=class U extends K{static create(t,n){let r=x(U,t);return r.genericContext=n,r}get type(){return d(this.rawDef.type,this.genericContext)}};o(U,"GenericProperty");var W=U;var we=class we{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(we,"MethodDefinition");var Y=we;function H(e){return new Y(e)}o(H,"fillMethod");var q=class q extends Y{static create(t,n){let r=x(q,t);return r.genericContext=n,r}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 Q=q;function x(e,t){let n=Object.create(e.prototype);return Object.assign(n,t),n}o(x,"createInstance");function X(e,t){e.properties=t.properties.map(n=>W.create(n,e.genericContext)),e.methods=t.methods.map(n=>Q.create(n,e.genericContext))}o(X,"buildPropertiesAndMethods");function Re(e,t){let n={};return e.forEach(r=>{let[i,s]=t(r);n[i]=s}),n}o(Re,"toDictionary");function ee(e,t){return(e==null?void 0:e.map(t).filter(n=>n!==void 0))||[]}o(ee,"mapNotNull");function te(e,t,n){e!==void 0&&(e[t]=n)}o(te,"setValue");function C(e,t){if(e!==void 0)return e[t]}o(C,"getValue");var Ce=class Ce{constructor(t){this.name=t.name,this.members=new Map,t.members.forEach(n=>{let r=n.initializer===void 0?{name:"number"}:{literalValue:n.initializer};this.members.set(n.name,r)})}get type(){return{name:this.name,unionMembers:Array.from(this.members.values())}}get names(){return Array.from(this.members.keys())}};o(Ce,"EnumDefinition");var N=Ce;var V=new Map,ne=new Map,re=new Map,ie=new Map,Dt=new Map,ht=o((e=>{Dt.set(e.name,e)}),"ReflectClass"),At={string:String,number:Number,boolean:Boolean,object:Object},g=Reflect;function oe(e){var t;return((t=m(e))==null?void 0:t.jsClass)||At[e]}o(oe,"getClassByName");function m(e){var t,n,r;switch(typeof e){case"object":return m(e.constructor);case"function":let i=m(e.name);if(i)return i;let s=Array.from(V.values()).find((l=>l.jsClass===e));if(s)return s;let a=(t=Object.entries(g.__classDef||{}).find(([l,u])=>u===e))==null?void 0:t[0];return a?m(a):void 0;case"string":let c=e;if(!V.has(c)){let l=(n=g.__classes)==null?void 0:n[c];if(!l)return;let u=(r=g.__classDef)==null?void 0:r[c];V.set(c,new P(Oe(w({},l),{jsClass:u})))}return V.get(c)}}o(m,"getClassDefinition");function S(e){var t;if(!ne.has(e)){let n=(t=g.__interfaces)==null?void 0:t[e];if(!n)return;ne.set(e,new O(n))}return ne.get(e)}o(S,"getInterfaceDefinition");function $(e){var t;if(!re.has(e)){let n=(t=g.__enums)==null?void 0:t[e];if(!n)return;re.set(e,new N(n))}return re.get(e)}o($,"getEnumDefinition");function Mt(e){var t;return((t=$(e))==null?void 0:t.names)||[]}o(Mt,"getEnumNames");function xt(e){let t=Object.entries(e)[0];if(!t)return[];let[n,r]=t,i=$(n);return i?i.names.map(s=>r[s]):Array.from(Object.keys(r))}o(xt,"getEnumValues");function Pe(e){var t;if(!ie.has(e)){let n=d((t=g.__typeAliases)==null?void 0:t[e]);if(!n)return;ie.set(e,n)}return ie.get(e)}o(Pe,"getTypeAliasDefinition");function Ot(){g.__classes&&Object.entries(g.__classes).map(([e,t])=>{var r;let n=(r=g.__classDef)==null?void 0:r[e];n&&V.set(e,new P(Oe(w({},t),{jsClass:n})))}),g.__interfaces&&Object.entries(g.__interfaces).map(([e,t])=>ne.set(e,new O(t))),g.__enums&&Object.entries(g.__enums).map(([e,t])=>re.set(e,new N(t))),g.__typeAliases&&Object.entries(g.__typeAliases).map(([e,t])=>{ie.set(e,d(t))}),["__classDef","__classes","__interfaces","__enums","__typeAliases","initReflectContext"].forEach(e=>delete g[e])}o(Ot,"initReflectContext");var ae=class ae{constructor(t){var n,r;this.name=t.name,this._implementationNames=t.implementations||[],this.methods=((n=t.methods)==null?void 0:n.map(H))||[],this.properties=((r=t.properties)==null?void 0:r.map(Z))||[],this.generics=t.generics}get implementations(){return this._implementations||(this._implementations=ee(this._implementationNames,t=>S(t)||m(t).type||D(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(r=>t.add(r)):t.add(n)}),this._allImplementations=Array.from(t)}return this._allImplementations}get type(){let t={};return this.allImplementations.forEach(n=>{let i=("type"in n?n.type:n).typeLiteralMembers;i==null||i.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}`}buildBaseObject(){let t={};return this.properties.forEach(n=>te(t,n.name,void 0)),this.methods.forEach(n=>te(t,n.name,()=>{})),t}};o(ae,"InterfaceDefinition");var O=ae,ce=class ce extends O{static create(t,n){let r=x(ce,t);r.genericArgs=n;let i=r;return i.buildGenericContext(),X(i,t),i}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((n,r)=>this.genericContext[n]=this.genericArgs[r])}};o(ce,"GenericInterface");var se=ce;var Ie=class Ie{constructor(t){var n,r;this.name=t.name,this.superClassName=t.superClassName||"Object",this.superClass=m(this.superClassName),this._implementationNames=t.implementations||[],this.methods=((n=t.methods)==null?void 0:n.map(H))||[],this.properties=((r=t.properties)==null?void 0:r.map(Z))||[],this.jsClass=t.jsClass,this.generics=t.generics}get allMethods(){let t={};if(this.superClassName!=="Object"){let n=m(this.superClassName);n&&Object.assign(t,w({},n.allMethods))}return Object.assign(t,w({},Re(this.methods,n=>[n.name,n]))),t}get allProperties(){var t;return Object.assign(((t=this.superClass)==null?void 0:t.allProperties)||{},Re(this.properties,n=>[n.name,n]))}get implementations(){return this._implementations?this._implementations:ee(this._implementationNames,t=>S(t)||D(t))}get allImplementations(){var t,n;if(this._allImplementations===void 0){let r=new Set(this.implementations);this.implementations.forEach(i=>{i instanceof O?i.allImplementations.forEach(s=>r.add(s)):r.add(i)}),(n=(t=this.superClass)==null?void 0:t.allImplementations)==null||n.forEach(i=>r.add(i)),this._allImplementations=Array.from(r)}return this._allImplementations}getProperty(t){return this.properties.find(n=>n.name===t)}get type(){var n,r;let t={};return(r=(n=this.superClass)==null?void 0:n.type.typeLiteralMembers)==null||r.forEach(i=>t[i.name]=i),this.properties.forEach(i=>t[i.name]=i),{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(r=>r.name).includes(t)}isSuperClassOf(t){if(this.name===t)return!0;let n=m(t);return n?n.isSubClassOf(this.name):!1}toString(){return`class ${this.name}`}};o(Ie,"ClassDefinition");var P=Ie,ue=class ue extends P{static create(t,n){let r=x(ue,t);r.genericArgs=n;let i=r;return i.buildGenericContext(),X(i,t),i}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((n,r)=>this.genericContext[n]=this.genericArgs[r])}};o(ue,"GenericClass");var le=ue;var b={name:"any"},jt={name:"null"},He=["string","number","boolean","bigint","symbol"];function Xe(e){return!!(e.name&&["any","void","unknown"].includes(e.name))}o(Xe,"isIgnoredType");function Ne(e){return!!(e.name&&He.includes(e.name))}o(Ne,"isPrimitiveType");function fe(e){return!!e.arrayElementType}o(fe,"isArrayType");function pe(e){return!!e.literalValue}o(pe,"isLiteralType");function me(e){return!!e.typeLiteralMembers}o(me,"isTypeLiteralType");function ye(e){return!!e.unionMembers}o(ye,"isUnionType");function de(e){return!!e.intersectionMembers}o(de,"isIntersectionType");function ge(e){return!!e.tupleMembers}o(ge,"isTupleType");function be(e){return!!e.classDefinition}o(be,"isClassDefinition");function St(e){return!!e.generics}o(St,"hasGenerics");function D(e,t){if(e==="any"||e==="Any"||e==="unknown"||e==="")return b;if(e==="null")return jt;let n=m(e);if(n)return t?le.create(n,t).type:n.type;if(He.includes(e))return{name:e};let r=S(e);if(r)return t?se.create(r,t).type:r.type;let i=$(e);if(i)return i.type;let s=Pe(e);return s||b}o(D,"getTypeDefinition");var Ee=new Map;function d(e,t,n){let r=Je(e);if(e===void 0)return b;let i=Ee.get(r);if(i)return i;let s={};if(Ee.set(r,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))}return Object.keys(s).length===0&&(s=b),Ee.delete(r),s}o(d,"fillType");function Je(e){return e===null?"null":e===void 0?"undefined":typeof e!="object"?JSON.stringify(e):Array.isArray(e)?"["+e.map(Je).join(",")+"]":"{"+Object.keys(e).sort().map(n=>JSON.stringify(n)+":"+Je(e[n])).join(",")+"}"}o(Je,"stableStringify");var Te={isPrimitiveType:Ne,isArrayType:fe,isLiteralType:pe,isTypeLiteralType:me,isUnionType:ye,isIntersectionType:de,isTupleType:ge,isClassDefinition:be,hasGenerics:St};var wt=[Promise,Date,Map,Set,Error,Function];function T(e,t,n=1){switch(!0){case t.name==="undefined":return e===void 0?f:p(`declared as ${y(t)} but actually not`);case Xe(t):return f;case be(t):return e instanceof Object?F(e,t.classDefinition.name,n):p(`declared as ${y(t)} but actually not an object`);case fe(t):return Rt(e,t,n);case ge(t):return Ct(e,t,n);case ye(t):for(let r of t.unionMembers||[])if(T(e,r,n).success)return f;return p(`declared as ${y(t)} but all value not match`);case de(t):for(let r of t.intersectionMembers||[]){let i=T(e,r,n);if(!i.success)return p(`declared as ${y(t)} but all value not match`,i)}return f;case pe(t):switch(typeof e){case"string":return e===Et(t.literalValue)?f:p(`declared as string ${y(t)} but value not match`);case"number":return e===Number(t.literalValue)?f:p(`declared as number ${y(t)} but value not match`);case"bigint":return e===BigInt(t.literalValue)?f:p(`declared as bigint ${y(t)} but value not match`);case"boolean":return e===!!t.literalValue?f:p(`declared as boolean ${y(t)} but value not match`);default:return t.literalValue==="null"&&e===null?f:e===t.literalValue?f:p(`declared as ${y(t)} but value not match`)}case me(t):return Pt(e,t,n);case t.isFunction:case t.isConstructor:return typeof e=="function"?f:p(`declared as ${y(t)} but actually not`);case Ne(t):return typeof e===t.name?f:p(`declared as ${y(t)} but actually ${typeof e}`);default:return It(e,t,n)}}o(T,"validateValue");function Rt(e,t,n=1){if(!Array.isArray(e))return p(`declared as ${y(t)} but actually not`);if(n===0)return f;for(let r of e){let i=T(r,t.arrayElementType||b,n-1);if(!i.success)return p(`declared as ${y(t)} but not all values in array match`,i)}return f}o(Rt,"validateArrayValue");function Ct(e,t,n=1){if(!Array.isArray(e))return p(`declared as ${y(t)} but actually not a tuple`);if(n===0)return f;let r=0;for(let i of t.tupleMembers){let s=e[r++];if(i.isOptionalInTuple&&s===void 0)continue;let a=T(e[r],i,n);if(!a.success)return p(`declared as ${y(t)} but not all values in tuple match`,a)}return f}o(Ct,"validateTupleValue");function Pt(e,t,n=1){if(e instanceof Object){for(let r of t.typeLiteralMembers||[]){if(r.isStatic)return f;if(r.name.startsWith("[")&&r.name.endsWith("]"))return f;if(n===0)return f;let i=r.type||b;r.isOptional&&(i={unionMembers:[i,{name:"undefined"}]});let s=C(e,r.name),a=T(s,i,n-1);if(!a.success)return p(`declared ${r.name} as ${y(i)}, but not match`,a)}return f}else return p(`declared as ${y(t)} but not an object`)}o(Pt,"validateProperties");function It(e,t,n=1){let r=typeof t=="string"?t:t.name;if(!r)return f;if(e===void 0)return p(`declared as ${y(t)} but actually undefined`);if(e===null)return r==="null"?f:p(`declared as ${y(t)} but actually null`);for(let s of wt)if(r===s.name)return e instanceof s?f:p(`declared as ${y(t)} but actually ${e.constructor.name}`);if(e instanceof Object&&!et(e,r))return p(`declared as ${y(t)} but actually not instance of it`);if(n==0)return f;let i=T(e,D(r),n);return i.success?f:p(`declared as ${y(t)} but actually not match`,i)}o(It,"validateSimpleValue");function F(e,t,n=3){if(t!=="object"&&!et(e,t))return p(`declared as instance of ${t} but actually not`);let r=D(t);return t!=="any"&&r===b?p(`${t} not defined`):(delete r.classDefinition,T(e,r,n))}o(F,"validateClassInstance");function et(e,t){if(e===void 0||e.constructor.name===t)return!0;let n=m(t);if(!n)return!0;if(n.jsClass)return e instanceof n.jsClass;let r=m(e);return r?r.isSubClassOf(n.name):!1}o(et,"valueInstanceOf");function Et(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(Et,"trimQuotes");function y(e){var t,n,r;return typeof e=="string"?e:be(e)?e.classDefinition.name:fe(e)?(((t=e.arrayElementType)==null?void 0:t.name)||"unknown")+"[]":e.isConstructor?"Class":e.isFunction?"Function":me(e)?"Object":ge(e)?`(${e.tupleMembers.map(y).join(",")})`:ye(e)?((n=e.unionMembers)==null?void 0:n.map(y).join(" | "))||"unknown":de(e)?((r=e.intersectionMembers)==null?void 0:r.map(y).join(" & "))||"unknown":pe(e)?e.literalValue:e.name||"unknown"}o(y,"getTypeDisplayName");function k(e,t,n=3){return t=t||e.constructor.name,F(e,t,n)}o(k,"validateInstance");function Jt(e,t,n=1){for(let r=0;r<e.length;r++){let i=k(e[r],t,n);if(!i.success)return p(`declared as instance of ${t}[] but [${r}] actually not`,i)}return f}o(Jt,"validateArray");function Nt(e,t,n=1){let r=Object.entries(e);for(let i=0;i<r.length;i++){let[s,a]=r[i],c=k(a,t,n);if(!c.success)return p(`declared as instance of Dictionary<${t}> but [${s}] actually not`,c)}return f}o(Nt,"validateDictionary");function h(e){if(typeof e=="string"){let t=Ft(e);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 Vt(e,t,n=5){let r=T(e,h(t),n);if(!r.success){console.error(`assert failed with type: ${t}
|
|
4
|
+
${r.errorStackFlow}`);debugger;throw new Error(`assert failed with type: ${t}, ${r.errorStackFlow}`)}return e}o(Vt,"assertType");function $t(e){return tt(null,e)}o($t,"isNullable");function tt(e,t){return T(e,h(t),3).success}o(tt,"isType");function Ft(e){let t=e.trim(),n=o(u=>u.trim(),"trim"),r=o(u=>u.length!=0,"notEmpty"),i=t.split("|").map(n).filter(r);if(i.length>1)return{union:i};let s=t.split("&").map(n).filter(r);if(s.length>1)return{intersection:s};let a=t.match(/^\[(.*)]$/);if(a)return{tuple:a[1].split(",").map(n).filter(r)};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(r);return[u,...M]}return t}o(Ft,"parseType");var nt=Symbol("VALIDATE_WRAPPER"),kt=o((e,t,n)=>_t(e,t,n),"ReflectValidate");function _t(e,t,n){let r=n.value;if(typeof r!="function"||C(r,nt))return;let i=o(()=>{var l,u;return(u=(l=m(e))==null?void 0:l.methods)==null?void 0:u.find(M=>M.name===t)},"getMethodDef"),s=o(l=>rt(e,i(),l),"validateArgs"),a=o(l=>zt(e,i(),l),"validateReturn"),c=o(function(...l){s(l);let u=r.call(this,...l);return a(u)},"newFunc");c[nt]=r,n.value=c}o(_t,"wrapValidateMethod");function rt(e,t,n){var r;(r=t==null?void 0:t.args)==null||r.forEach((i,s)=>{let a=n==null?void 0:n[s];if(a===void 0){if(i.isOptional)return;throw new Error(`Illegal arguments for ${Ve(e.constructor.name,t)}: ${i.name} is not optional`)}let c=T(a,i.type||b,1);if(!c.success)throw console.error("validateResult",c),new Error(`Illegal arguments for ${Ve(e.constructor.name,t)}: ${i.name}: ${i.name} ${c.errorMessage}`)})}o(rt,"validateMethodParams");function zt(e,t,n){var s;if(!t)return n;let r=o((a,c)=>{let l=T(a,c,5);if(!l.success)throw console.error(l.errorStackFlow),new Error(`result for ${Ve(e.constructor.name,t)} doesn't match type ${c.name}:
|
|
5
|
+
${l.errorStackFlow}`);return a},"checkValue"),i=t.returnType;return i.name==="Promise"&&(i=((s=i.generics)==null?void 0:s[0])||b),n instanceof Promise?n.then(a=>r(a,i||b)):r(n,i||b)}o(zt,"validateMethodReturnValue");function Ve(e,t){var n;return`${e}.${t.name}(${(n=t.args)==null?void 0:n.map(r=>r.name).join(", ")})`}o(Ve,"getMethodDescription");function vt(e,t,...n){let r=m(e);if(!r)return;let i=r.allMethods[t];if(i)return rt(e,i,n),C(e,t).apply(e,n)}o(vt,"safeCall");function Lt(e){let{funcName:t,optionsObj:n,value:r,argName:i,type:s,optional:a}=e,c=r||n&&C(n,i);if(c===void 0){if(a)return;throw Error(`Illegal arguments for ${t}: ${i} is undefined`)}if(["string","number","boolean","bigint"].includes(s)){if(typeof c!==s)throw Error(`Illegal arguments for ${t}: ${i} is not a ${s}`);return}if(typeof c!="object")throw Error(`Illegal arguments for ${t}: ${i} is not an object`);if(c===null)throw Error(`Illegal arguments for ${t}: ${i} is null`);let l=F(c,s);if(!l.success)throw Error(`Illegal arguments for ${t}: ${l.errorMessage}`)}o(Lt,"validateFunctionArgument");var zr=require("reflect-metadata");function $e(e){return String(e).toLocaleLowerCase()==="false"?!1:!!e}o($e,"asBoolean");function I(e){return e==null||Number.isNaN(e)||e instanceof Date&&String(e)==="Invalid Date"?"":typeof e=="symbol"?e.description||"":String(e)}o(I,"asString");function De(e){return e?e instanceof Date?e.getDate():Number(e):0}o(De,"asNumber");function A(e,t,n){e[t]=n}o(A,"setAnyValue");function _(e,t){return e[t]}o(_,"getAnyValue");function Bt(e,t,n){let r=e[t];if(r!==void 0)return r;let i=n();return A(e,t,i),i}o(Bt,"getOrSetValue");function Fe(e){return typeof e=="object"&&e!==null&&e.constructor===Object}o(Fe,"isDictionary");function ke(e){let t=Object.create(e.prototype);return t.constructor=this,t}o(ke,"createNewInstance");function _e(e){return((t,n)=>Reflect.defineMetadata(e,n,t.constructor))}o(_e,"defineDecoratedProperty");function ze(e,t,...n){let r=ve(e,t);if(r!==void 0&&r instanceof Function)return r.apply(e,n)}o(ze,"callDecoratedMethod");function Gt(e,t){let n=ve(e,t);return n!==void 0&&n instanceof Function}o(Gt,"hasDecoratedMethod");function it(e,t){return Reflect.getMetadata(t,e.constructor)}o(it,"getDecoratedProperty");function ve(e,t){let n=it(e,t);if(n!==void 0)return _(e,n)}o(ve,"getDecoratedPropertyValue");var j=o(function({getter:e,setter:t,fieldSymbol:n}){return(r,i)=>{Object.defineProperty(r,i,{get:o(function(){return e?e(this,i):j.getField(r,i,n)},"get"),set:o(function(s){t?t(this,s,i):j.setField(r,i,s,n)},"set")})}},"PropertyWrapper");A(j,"getField",(e,t,n)=>{var r;return(r=_(e,n))==null?void 0:r[t]});A(j,"setField",(e,t,n,r)=>{let i=_(e,r)||{};i[t]=n,A(e,r,i)});function Kt(e){let t=Symbol("lazy");return j({getter:o((n,r)=>{let i=j.getField(n,r,t);if(i)return i.value;let s=e(n,r);return j.setField(n,r,{value:s},t),s},"getter"),setter:o(()=>{},"setter"),fieldSymbol:t})}o(Kt,"Lazy");var z=Symbol("JSON_SERIALIZED"),ot=Symbol("AFTER_SERIALIZED"),Ue=class Ue{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(Ue,"SerializeSettings");var Le=Ue,Ze=class Ze{constructor(t,n,r){this.target=t;this.propName=n;this.options=r;this.isArray=Reflect.getDesignType(t,n)===Array,this.serializedName=r.name||I(n),this.class=r.class,this.fromJSON=this.createBuilder(),this.toJSON=r.toJSON||(i=>We(i))}createBuilder(){if(this.options.fromJSON)return this.options.fromJSON;if(this.class&&this.class instanceof Function){let t=this.class;return n=>{let r=L.get(t);return r?r.fromJson(n):Ae(n,t)}}else return t=>qt(this.target,this.propName,t)}};o(Ze,"SerializedPropertySetting");var Be=Ze;function Ge(e,t){Ke(e,n=>{n.defaultIgnored=t})}o(Ge,"setDefaultIgnored");function v(e,t,n){let r=e.constructor;Ke(r,i=>{i.add(new Be(e,t,n))})}o(v,"registerSerializedProperty");function Ke(e,t){let n=Reflect.getMetadata(z,e);n===void 0&&(n=new Le),t(n),Reflect.defineMetadata(z,n,e)}o(Ke,"updateSerializeSettings");var Wt=st();function st(e){return e=e||{},(t,n)=>v(t,I(n),e)}o(st,"Serialized");function Ut(e){return(t,n)=>v(t,I(n),{name:e})}o(Ut,"SerializedName");var Zt=o((e,t)=>Ke(e.constructor,n=>n.ignoredProperties.push(t)),"IgnoreSerialization");function Yt(e){return JSON.stringify(typeof e=="object"?he(e):e)}o(Yt,"serialize");function We(e){if(e===void 0)throw new Error("attempt to serialize undefined value");if(e===null)return null;let t=L.get(e.constructor);return t?t.toJson(e):he(e)}o(We,"serializeTo");function he(e){var s;if(e instanceof Array)return e.map(a=>he(a));if(Fe(e)){let a={};return Object.entries(e).forEach(c=>{let[l,u]=c;a[l]=We(u)}),a}let t=e.constructor;((s=m(t))==null?void 0:s.isSubClassOf("Mappable"))&&xe(t);let r=Reflect.getMetadata(z,t);if(r===void 0)return e;let i={};return Object.entries(e).forEach(a=>{let c=a[0];if(r.isPropertyIgnored(c))return;let l=a[1];if(l===void 0||l instanceof Function||typeof l=="symbol")return;let u=r.settingsByName[c],M=(u==null?void 0:u.serializedName)||c;u&&(u.isArray?l=l.map(G=>u.toJSON(G)):l=u.toJSON(l)),i[M]=l}),i}o(he,"serializeToData");function Ae(e,t){var n;if(typeof e=="string"&&(e=JSON.parse(e)),t===null||t===void 0)return e;try{let r=e,i=t instanceof Function?t:t.constructor,s=(n=m(i))==null?void 0:n.isSubClassOf("Mappable");s&&xe(i);let a=L.get(i);if(a)return a.fromJson(r);let c=t instanceof Function?ke(t):t;if(ct(r,c),s){let l=k(c,i.name);if(!l.success)throw new Error(`JSON deserialize validate failed: ${je(l)} `)}return c}catch(r){throw console.error("failed to deserialize"),console.dir(r),r}}o(Ae,"deserialize");function at(e,t){let n=typeof e=="string"?JSON.parse(e):e;return n instanceof Array?n.map(r=>Ae(r,t)):[]}o(at,"deserializeArray");function ct(e,t){let n=t.constructor,r=Reflect.getMetadata(z,n);if(r===void 0){Object.assign(t,e);return}Object.keys(e).forEach(i=>{let s=r.settingsBySerializedName[i],a=e[i];if(s===void 0){r.defaultIgnored||A(t,i,a);return}let c=s.propName;if(r.isPropertyIgnored(c))return;let l;a instanceof Array?l=a.map(u=>s.fromJSON(u)):l=s.fromJSON(a),A(t,c,l)}),ze(t,ot)}o(ct,"deserializeFrom");function Qt(e){return Reflect.getMetadata(z,e)}o(Qt,"getSerializeSettings");function qt(e,t,n){let r=Reflect.getDesignType(e,t);if(r===void 0)return n;if(r===Array)return at(n);let i=L.get(r);return i?i.fromJson(n):Ae(n,r)}o(qt,"getValueByReflectType");var L=new Map;function B(e,t){L.set(e,t)}o(B,"registerTransform");var Me=o(e=>e,"itSelf"),Ht=o(()=>{},"done");B(String,{fromJson:I,toJson:Me});B(Number,{fromJson:De,toJson:Me});B(Boolean,{fromJson:$e,toJson:Me});B(Date,{fromJson:o(e=>new Date(De(e)),"fromJson"),toJson:o(e=>e.getTime(),"toJson")});var Xt=_e(ot);var lt=new Map;function xe(e){if(lt.get(e))return;let t=m(e),n=new Proxy({},{get(i,s){return r(s)},set(i,s,a){return r(s)(a),!0}});function r(i){return(s,a)=>{var u,M,G;let c=(M=(u=Object.values((t==null?void 0:t.allProperties)||{}))==null?void 0:u.find(ut=>ut.name===i))==null?void 0:M.type,l=(c==null?void 0:c.name)!==void 0?oe(c.name):void 0;c&&Te.isArrayType(c)&&(l=((G=c.arrayElementType)==null?void 0:G.name)!==void 0?oe(c.arrayElementType.name):void 0),typeof i=="string"&&(v(e.prototype,i,{name:s,class:l,fromJSON:a==null?void 0:a.fromJSON,toJSON:a==null?void 0:a.toJSON}),Ge(e,!0))}}o(r,"doMap"),e.prototype.mapping(n),lt.set(e,!0)}o(xe,"registerMappable");function en(e,t){let n=m(e);n&&n.properties.forEach(r=>t[r.name]())}o(en,"mapAllProperties");var qr=require("reflect-metadata");var tn="design:type",nn="design:returntype",rn="design:paramtypes";function on(e,t){return Reflect.getMetadata(tn,e,t)}o(on,"getDesignType");function sn(e,t){return Reflect.getMetadata(nn,e,t)}o(sn,"getReturnType");function an(e,t){return Reflect.getMetadata(rn,e,t)}o(an,"getParamTypes");function cn(e,t,n,r){let i=(r===void 0?Reflect.getMetadata(e,n):Reflect.getMetadata(e,n,r))||[];i.includes(t)||i.push(t),r===void 0?Reflect.defineMetadata(e,i,n):Reflect.defineMetadata(e,i,n,r)}o(cn,"addMetadataList");Object.assign(Reflect,{getDesignType:on,getReturnType:sn,getParamTypes:an,addMetadataList:cn});0&&(module.exports={AfterSerialized,IgnoreSerialization,Lazy,PropertyWrapper,ReflectClass,ReflectValidate,Serialized,SerializedClass,SerializedName,TypeDefinition,ValidateResult,asBoolean,asNumber,asString,assertType,callDecoratedMethod,createNewInstance,defineDecoratedProperty,deserialize,deserializeArray,deserializeFrom,done,failedResult,getAnyValue,getClassByName,getClassDefinition,getDecoratedProperty,getDecoratedPropertyValue,getEnumDefinition,getEnumNames,getEnumValues,getErrorTraceMessages,getInterfaceDefinition,getOrSetValue,getSerializeSettings,getTypeAliasDefinition,getTypeDef,hasDecoratedMethod,initReflectContext,isDictionary,isNullable,isType,itSelf,mapAllProperties,registerMappable,registerSerializedProperty,registerTransform,safeCall,serialize,serializeTo,serializeToData,setAnyValue,setDefaultIgnored,successResult,validateArray,validateDictionary,validateFunctionArgument,validateInstance});
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var me=Object.create;var L=Object.defineProperty;var de=Object.getOwnPropertyDescriptor;var ye=Object.getOwnPropertyNames;var ge=Object.getPrototypeOf,Te=Object.prototype.hasOwnProperty;var he=(e,n)=>{for(var t in n)L(e,t,{get:n[t],enumerable:!0})},X=(e,n,t,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let f of ye(n))!Te.call(e,f)&&f!==t&&L(e,f,{get:()=>n[f],enumerable:!(i=de(n,f))||i.enumerable});return e};var k=(e,n,t)=>(t=e!=null?me(ge(e)):{},X(n||!e||!e.__esModule?L(t,"default",{value:e,enumerable:!0}):t,e)),we=e=>X(L({},"__esModule",{value:!0}),e);var G=(e,n,t)=>new Promise((i,f)=>{var l=T=>{try{m(t.next(T))}catch(D){f(D)}},r=T=>{try{m(t.throw(T))}catch(D){f(D)}},m=T=>T.done?i(T.value):Promise.resolve(T.value).then(l,r);m((t=t.apply(e,n)).next())});var ve={};he(ve,{DEBUG_CONFIG:()=>j,parseSource:()=>U,reflectLoader:()=>H,reflectParserPlugin:()=>Me,setupReflectTypes:()=>De,updateReflectModules:()=>Q});module.exports=we(ve);var q=k(require("typescript"),1);var s=k(require("typescript"),1),x=k(require("fs"),1),v=k(require("process"),1),R=k(require("path"),1),te=require("url");var j={OUTPUT_LOG:!1},_=new Map,P=new Map,F=new Map,M=new Map,W=new Map,I=new Set,Y={[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"},b="any",ie=["string","number","boolean","bigint","symbol"],se=["any","Promise","Date","Error","undefined","unknown","object","Map","Set"],re=["Mappable","EnableReflect"];[...ie,...se,...re].forEach(ce);re.forEach(e=>P.set(e,{name:e}));var $,Z=!1,w=Reflect;function De(e){return G(this,null,function*(){let{filePaths:n,exclude:t,sourceFolder:i,distFolder:f}=e;if(i=R.resolve(i||v.cwd()),f=R.resolve(f||v.cwd()),w.__classes!==void 0)return;n=ue(n);let l=n.map(r=>R.join(i,r));U(l,t),w.__classes={};for(let[r,m]of _)w.__classes[r]=m;w.__interfaces={};for(let[r,m]of P)w.__interfaces[r]=m;w.__typeAliases={};for(let[r,m]of M)w.__typeAliases[r]=m;w.__enums={};for(let[r,m]of F)w.__enums[r]=m;w.__constTypes={};for(let[r,m]of W)w.__constTypes[r]=m;yield Promise.all(n.map(r=>Q(r,f)))})}function Q(e,n){return G(this,null,function*(){let t=R.resolve(n,e);if(!x.existsSync(t))return;if(x.statSync(t).isDirectory()){x.readdirSync(t).forEach(T=>{Q(R.join(e,T),n)});return}if(!e.endsWith(".js"))return;let f=R.join(n,e),r=yield import((0,te.pathToFileURL)(f).href);w.__classDef={},Object.values(r).forEach(m=>{typeof m=="function"&&(w.__classDef[m.name]=m)})})}function U(e,n){if(e||(e=[v.cwd()]),e=ue(e),!Z){let t=ae(e,n),i=s.default.createProgram(t,{});$=i.getTypeChecker(),t=t.map(l=>ee(l)),i.getSourceFiles().filter(l=>t.includes(ee(l.fileName))).forEach(l=>{S(`parse file: ${l.fileName}`),oe(l)});for(let l of I.keys())!_.has(l)&&!P.has(l)&&!F.has(l)&&!M.has(l)&&!ie.includes(l)&&!se.includes(l)&&(S(`remove unknown typeName: ${l}`),I.delete(l));Array.from(_.values()).forEach(Oe),Array.from(P.values()).forEach(be),[_,P,M].forEach(_e),Z=!0}return{classDefinitions:_,interfaceDefinitions:P,enumDefinitions:F,typeAliasDefinitions:M,constTypeDefinitions:W}}function ae(e,n){let t=[];return e.forEach(i=>{if(i=R.resolve(i),Ae(i,n)){S(`ignore excluded ${i}`);return}if(!x.existsSync(i)){console.error(`Path ${i} does not exist.`);return}if(x.statSync(i).isFile()){t.push(i);return}x.readdirSync(i).forEach(r=>t.push(...ae([R.join(i,r)],n)))}),t}function oe(e){s.default.isClassDeclaration(e)?Re(e):s.default.isInterfaceDeclaration(e)?Ee(e):s.default.isEnumDeclaration(e)?Se(e):s.default.isTypeAliasDeclaration(e)?xe(e):s.default.isConstTypeReference(e)?Ne(e):e.forEachChild(oe)}function Re(e){var m,T,D,E,N,p,h,C,z,y,o,d,A;let n=a(e.name);if(!n)return;let t=a((D=(T=(m=e.heritageClauses)==null?void 0:m.find(c=>c.token===s.default.SyntaxKind.ExtendsKeyword))==null?void 0:T.types)==null?void 0:D[0].expression),i=(N=(E=e.heritageClauses)==null?void 0:E.find(c=>c.token===s.default.SyntaxKind.ImplementsKeyword))==null?void 0:N.types.map(c=>a(c.expression)),f=[],l=[];for(let c of e.members)if(s.default.isPropertyDeclaration(c))f.push({name:a(c.name),isOptional:c.questionToken!==void 0,type:g(c),isPrivate:(p=c.modifiers)==null?void 0:p.some(u=>u.kind===s.default.SyntaxKind.PrivateKeyword),isStatic:(h=c.modifiers)==null?void 0:h.some(u=>u.kind===s.default.SyntaxKind.StaticKeyword)});else if(s.default.isMethodDeclaration(c))l.push({name:a(c.name),returnType:g(c),isPrivate:(C=c.modifiers)==null?void 0:C.some(u=>u.kind===s.default.SyntaxKind.PrivateKeyword),isStatic:(z=c.modifiers)==null?void 0:z.some(u=>u.kind===s.default.SyntaxKind.StaticKeyword),isAsync:(y=c.modifiers)==null?void 0:y.some(u=>u.kind===s.default.SyntaxKind.AsyncKeyword),args:c.parameters.map(u=>({name:a(u.name),type:g(u),isOptional:u.questionToken!==void 0}))});else if(s.default.isGetAccessorDeclaration(c)){let u=f.find(O=>O.name===a(c.name));u||(u={name:a(c.name),isOptional:c.questionToken===void 0,type:g(c)},f.push(u)),u.accessor=u.accessor||{},u.accessor.getter={isPrivate:((o=c.modifiers)==null?void 0:o.some(O=>O.kind===s.default.SyntaxKind.PrivateKeyword))||!1},u.isPrivate=u.accessor.getter.isPrivate}else if(s.default.isSetAccessorDeclaration(c)){let u=f.find(O=>O.name===a(c.name));u||(u={name:a(c.name),isOptional:c.questionToken===void 0,type:g(c)},f.push(u)),u.accessor=u.accessor||{},u.accessor.setter={isPrivate:((d=c.modifiers)==null?void 0:d.some(O=>O.kind===s.default.SyntaxKind.PrivateKeyword))||!1}}let r={name:n,superClassName:t,implementations:i,properties:f,methods:l,generics:(A=e.typeParameters)==null?void 0:A.map(c=>a(c.name))};S(`Define class: ${a(e.name)}`),_.set(n,r)}function Ee(e){var m,T,D,E,N;let n=a(e.name);if(!n)return;let t=((T=(m=e.heritageClauses)==null?void 0:m.find(p=>p.token===s.default.SyntaxKind.ExtendsKeyword))==null?void 0:T.types.map(p=>a(p.expression)))||[],i=[],f=[],l;for(let p of e.members)s.default.isPropertySignature(p)?i.push({name:a(p.name),isOptional:p.questionToken!==void 0,type:g(p),isPrivate:((D=p.modifiers)==null?void 0:D.some(h=>h.kind===s.default.SyntaxKind.PrivateKeyword))||!1}):s.default.isMethodSignature(p)?f.push({name:p.name.text,returnType:g(p),isPrivate:((E=p.modifiers)==null?void 0:E.some(h=>h.kind===s.default.SyntaxKind.PrivateKeyword))||!1,args:p.parameters.map(h=>({name:a(h.name),type:g(h),isOptional:h.questionToken!==void 0}))}):s.default.isIndexSignatureDeclaration(p)&&(l=g(p));let r=P.get(n);r?(r.implementations=B(r.implementations||[],t),r.methods=B(r.methods||[],f,(p,h)=>p.name===h.name),r.properties=B(r.properties||[],i,(p,h)=>p.name===h.name),r.indexElementType=l,S(`Merge interface ${a(e.name)}`)):(r={name:n,implementations:t,methods:f,properties:i,indexElementType:l,generics:(N=e.typeParameters)==null?void 0:N.map(p=>a(p.name))},P.set(n,r),S(`Define interface ${a(e.name)}`))}function Se(e){let n=a(e.name);n&&(F.set(n,{name:n,members:e.members.map(t=>({name:a(t.name),initializer:a(t.initializer)}))}),S(`Define enum: ${a(e.name)}`))}function xe(e){S(`Define typeAlias: ${a(e.name)}`),M.set(a(e.name),g(e))}function Ne(e){let n=e.parent.parent;s.default.isVariableDeclaration(n)&&n.initializer&&s.default.isAsExpression(n.initializer)&&W.set(a(n.name),fe(n.initializer.expression))}function fe(e){return s.default.isArrayLiteralExpression(e)?Ke(e):s.default.isObjectLiteralExpression(e)?Pe(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":b}function Ke(e){let n=[];return e.elements.forEach(t=>{if(s.default.isStringLiteral(t))return n.push(a(t))}),n.length===0?b:n.length===1?n[0]:{unionMembers:n}}function Pe(e){let n=[];return e.properties.map(t=>{s.default.isPropertyAssignment(t)?n.push({name:a(t.name),type:fe(t.initializer)}):S(`unsupported property: ${t.name}`)}),{typeLiteralMembers:n}}function ce(e){I.add(e)}function g(e,n=!1){if(e.type&&!n)return K(e.type);if(!$)return console.error("TypeChecker not initialized!"),b;let t=$.getTypeAtLocation(e),i=$.typeToTypeNode(t,void 0,void 0);return i?K("type"in i?i.type:i):b}function K(e){let n={};if(e===void 0)return b;if(s.default.isUnionTypeNode(e))n.unionMembers=e.types.map(K);else if(s.default.isIntersectionTypeNode(e))n.intersectionMembers=e.types.map(K);else if(s.default.isLiteralTypeNode(e))n.literalValue=a(e.literal);else 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:K()})}),n.typeLiteralMembers=t}else if(s.default.isArrayTypeNode(e))n.arrayElementType=K(e.elementType);else if(s.default.isFunctionTypeNode(e))n.isFunction=!0;else if(s.default.isTypeReferenceNode(e))if(ce(a(e.typeName)),e.typeArguments)n.generics=[a(e.typeName),...e.typeArguments.map(t=>K(t))];else return a(e.typeName);else{if(s.default.isIndexedAccessTypeNode(e))return g(e,!0);if(s.default.isThisTypeNode(e))return g(e);if(s.default.isParenthesizedTypeNode(e))return g(e);if(s.default.isConditionalTypeNode(e))return g(e);if(s.default.isTypeQueryNode(e))return g(e);if(s.default.isConstructorTypeNode(e))n.isConstructor=!0;else if(s.default.isTupleTypeNode(e))n.tupleMembers=e.elements.map(K);else{if(Object.keys(Y).includes(String(e.kind)))return Y[e.kind]||b;if(s.default.isOptionalTypeNode(e))Object.assign(n,g(e)),n.isOptionalInTuple=!0;else if(s.default.isNamedTupleMember(e))Object.assign(n,g(e));else return s.default.isTypeOperatorNode(e)&&e.operator===s.default.SyntaxKind.KeyOfKeyword,g(e,!0)}}return n}var B=(e,n,t)=>[...(e==null?void 0:e.filter(i=>!(n!=null&&n.some(f=>(t||(()=>f===i))(f,i)))))||[],...n||[]];function V(e,n){if(e!==void 0&&e!==b)return typeof e=="string"?I.has(e)||n!=null&&n.includes(e)?e:void 0:e}function Oe(e){var n,t;(n=e.methods)==null||n.forEach(i=>pe(i,e.generics)),(t=e.properties)==null||t.forEach(i=>le(i,e.generics))}function be(e){var n,t;(n=e.methods)==null||n.forEach(i=>pe(i,e.generics)),(t=e.properties)==null||t.forEach(i=>le(i,e.generics))}function le(e,n){e.type=V(e.type,n)}function pe(e,n){var t;(t=e.args)==null||t.forEach(i=>i.type=V(i.type,n)),e.returnType=V(e.returnType,n)}function a(e){if(!e)return e;if(e.end<0)return e.text;try{return s.default.isQualifiedName(e)?a(e.right):e.getText()}catch(n){return e.text}}function J(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(J):i.constructor===Object&&J(i)})}function _e(e){for(let n of e.values())J(n)}function Ae(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 ee(e,n=v.cwd()){return ne(e).replace(ne(n)+"/","")}function ne(e){let n=R.sep;return e.split(n).join("/")}function ue(e){return e instanceof Array?e:[e]}function S(e){j.OUTPUT_LOG&&console.log(e)}function H(e){let{sourcePaths:n,exclude:t,forEnabledClassOnly:i,outputLog:f}=e;if(f&&(j.OUTPUT_LOG=!0),!n)throw new Error("need provide source paths for reflect loader");let{classDefinitions:l,interfaceDefinitions:r,enumDefinitions:m,typeAliasDefinitions:T}=U(n,t),D=[],E=[];function N(y){let o=l.get(y),d=[];return o?(o.superClassName&&d.push(o.superClassName),d.push(...o.implementations||[])):(o=r.get(y),o?d.push(...o.implementations||[]):(o=T.get(y),o&&d.push(...o.implementations||[]))),d.flatMap(A=>[A,...N(A)])||[]}function p(y,o){return N(y.name).includes(o)}function h(y){if(q.default.isClassDeclaration(y)&&y.name!==void 0){let o=y.name.text,d=l.get(o);if(!o||!d||i&&!p(d,"EnableReflect"))return;E.push(`Reflect.__classDef = Object.assign(Reflect.__classDef || {}, { ${o} })`);return}y.forEachChild(h)}function C(){let y=[];return l.forEach((o,d)=>{i&&!p(o,"EnableReflect")||y.push(`Reflect.__classes = Object.assign(Reflect.__classes || {}, { ${d}: ${JSON.stringify(o)} })`)}),r.forEach((o,d)=>{i&&!p(o,"EnableReflect")||y.push(`Reflect.__interfaces = Object.assign(Reflect.__interfaces || {}, { ${d}: ${JSON.stringify(o)} })`)}),m.forEach((o,d)=>{y.push(`Reflect.__enums = Object.assign(Reflect.__enums || {}, { ${d}: ${JSON.stringify(o)} })`)}),T.forEach((o,d)=>{y.push(`Reflect.__typeAliases = Object.assign(Reflect.__typeAliases || {}, { ${d}: ${JSON.stringify(o)} })`)}),y.join(`
|
|
2
|
-
`)}return{outputAllMetas:C,transform:(y,o)=>{if(o.endsWith(".ts")&&!(typeof n=="string"?[n]:n).every(d=>!o.startsWith(d)))try{let d=q.default.createSourceFile(o,y,q.default.ScriptTarget.Latest,!1);return D.length=0,E.length=0,
|
|
1
|
+
var me=Object.create;var L=Object.defineProperty;var de=Object.getOwnPropertyDescriptor;var ye=Object.getOwnPropertyNames;var ge=Object.getPrototypeOf,he=Object.prototype.hasOwnProperty;var Te=(e,n)=>{for(var t in n)L(e,t,{get:n[t],enumerable:!0})},X=(e,n,t,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of ye(n))!he.call(e,r)&&r!==t&&L(e,r,{get:()=>n[r],enumerable:!(i=de(n,r))||i.enumerable});return e};var k=(e,n,t)=>(t=e!=null?me(ge(e)):{},X(n||!e||!e.__esModule?L(t,"default",{value:e,enumerable:!0}):t,e)),we=e=>X(L({},"__esModule",{value:!0}),e);var G=(e,n,t)=>new Promise((i,r)=>{var l=h=>{try{m(t.next(h))}catch(D){r(D)}},a=h=>{try{m(t.throw(h))}catch(D){r(D)}},m=h=>h.done?i(h.value):Promise.resolve(h.value).then(l,a);m((t=t.apply(e,n)).next())});var ve={};Te(ve,{DEBUG_CONFIG:()=>j,parseSource:()=>U,reflectLoader:()=>H,reflectParserPlugin:()=>Me,setupReflectTypes:()=>De,updateReflectModules:()=>Q});module.exports=we(ve);var q=k(require("typescript"),1);var s=k(require("typescript"),1),x=k(require("fs"),1),v=k(require("process"),1),R=k(require("path"),1),te=require("url");var j={OUTPUT_LOG:!1},_=new Map,N=new Map,F=new Map,M=new Map,W=new Map,I=new Set,Y={[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"},b="any",ie=["string","number","boolean","bigint","symbol"],se=["any","Promise","Date","Error","undefined","unknown","object","Map","Set"],re=["Mappable","EnableReflect"];[...ie,...se,...re].forEach(ce);re.forEach(e=>N.set(e,{name:e}));var $,Z=!1,w=Reflect;function De(e){return G(this,null,function*(){let{filePaths:n,exclude:t,sourceFolder:i,distFolder:r}=e;if(i=R.resolve(i||v.cwd()),r=R.resolve(r||v.cwd()),w.__classes!==void 0)return;n=ue(n);let l=n.map(a=>R.join(i,a));U(l,t),w.__classes={};for(let[a,m]of _)w.__classes[a]=m;w.__interfaces={};for(let[a,m]of N)w.__interfaces[a]=m;w.__typeAliases={};for(let[a,m]of M)w.__typeAliases[a]=m;w.__enums={};for(let[a,m]of F)w.__enums[a]=m;w.__constTypes={};for(let[a,m]of W)w.__constTypes[a]=m;yield Promise.all(n.map(a=>Q(a,r)))})}function Q(e,n){return G(this,null,function*(){let t=R.resolve(n,e);if(!x.existsSync(t))return;if(x.statSync(t).isDirectory()){x.readdirSync(t).forEach(h=>{Q(R.join(e,h),n)});return}if(!e.endsWith(".js"))return;let r=R.join(n,e),a=yield import((0,te.pathToFileURL)(r).href);w.__classDef={},Object.values(a).forEach(m=>{typeof m=="function"&&(w.__classDef[m.name]=m)})})}function U(e,n){if(e||(e=[v.cwd()]),e=ue(e),!Z){let t=ae(e,n),i=s.default.createProgram(t,{});$=i.getTypeChecker(),t=t.map(l=>ee(l)),i.getSourceFiles().filter(l=>t.includes(ee(l.fileName))).forEach(l=>{S(`parse file: ${l.fileName}`),oe(l)});for(let l of I.keys())!_.has(l)&&!N.has(l)&&!F.has(l)&&!M.has(l)&&!ie.includes(l)&&!se.includes(l)&&(S(`remove unknown typeName: ${l}`),I.delete(l));Array.from(_.values()).forEach(Oe),Array.from(N.values()).forEach(be),[_,N,M].forEach(_e),Z=!0}return{classDefinitions:_,interfaceDefinitions:N,enumDefinitions:F,typeAliasDefinitions:M,constTypeDefinitions:W}}function ae(e,n){let t=[];return e.forEach(i=>{if(i=R.resolve(i),Ae(i,n)){S(`ignore excluded ${i}`);return}if(!x.existsSync(i)){console.error(`Path ${i} does not exist.`);return}if(x.statSync(i).isFile()){t.push(i);return}x.readdirSync(i).forEach(a=>t.push(...ae([R.join(i,a)],n)))}),t}function oe(e){s.default.isClassDeclaration(e)?Re(e):s.default.isInterfaceDeclaration(e)?Ee(e):s.default.isEnumDeclaration(e)?Se(e):s.default.isTypeAliasDeclaration(e)?xe(e):s.default.isConstTypeReference(e)?Pe(e):e.forEachChild(oe)}function Re(e){var m,h,D,E,P,p,T,C,z,y,o,d,A;let n=f(e.name);if(!n)return;let t=f((D=(h=(m=e.heritageClauses)==null?void 0:m.find(c=>c.token===s.default.SyntaxKind.ExtendsKeyword))==null?void 0:h.types)==null?void 0:D[0].expression),i=(P=(E=e.heritageClauses)==null?void 0:E.find(c=>c.token===s.default.SyntaxKind.ImplementsKeyword))==null?void 0:P.types.map(c=>f(c.expression)),r=[],l=[];for(let c of e.members)if(s.default.isPropertyDeclaration(c))r.push({name:f(c.name),isOptional:c.questionToken!==void 0,type:g(c),isPrivate:(p=c.modifiers)==null?void 0:p.some(u=>u.kind===s.default.SyntaxKind.PrivateKeyword),isStatic:(T=c.modifiers)==null?void 0:T.some(u=>u.kind===s.default.SyntaxKind.StaticKeyword)});else if(s.default.isMethodDeclaration(c))l.push({name:f(c.name),returnType:g(c),isPrivate:(C=c.modifiers)==null?void 0:C.some(u=>u.kind===s.default.SyntaxKind.PrivateKeyword),isStatic:(z=c.modifiers)==null?void 0:z.some(u=>u.kind===s.default.SyntaxKind.StaticKeyword),isAsync:(y=c.modifiers)==null?void 0:y.some(u=>u.kind===s.default.SyntaxKind.AsyncKeyword),args:c.parameters.map(u=>({name:f(u.name),type:g(u),isOptional:u.questionToken!==void 0}))});else if(s.default.isGetAccessorDeclaration(c)){let u=r.find(O=>O.name===f(c.name));u||(u={name:f(c.name),isOptional:c.questionToken===void 0,type:g(c)},r.push(u)),u.accessor=u.accessor||{},u.accessor.getter={isPrivate:((o=c.modifiers)==null?void 0:o.some(O=>O.kind===s.default.SyntaxKind.PrivateKeyword))||!1},u.isPrivate=u.accessor.getter.isPrivate}else if(s.default.isSetAccessorDeclaration(c)){let u=r.find(O=>O.name===f(c.name));u||(u={name:f(c.name),isOptional:c.questionToken===void 0,type:g(c)},r.push(u)),u.accessor=u.accessor||{},u.accessor.setter={isPrivate:((d=c.modifiers)==null?void 0:d.some(O=>O.kind===s.default.SyntaxKind.PrivateKeyword))||!1}}let a={name:n,superClassName:t,implementations:i,properties:r,methods:l,generics:(A=e.typeParameters)==null?void 0:A.map(c=>f(c.name))};S(`Define class: ${f(e.name)}`),_.set(n,a)}function Ee(e){var m,h,D,E,P;let n=f(e.name);if(!n)return;let t=((h=(m=e.heritageClauses)==null?void 0:m.find(p=>p.token===s.default.SyntaxKind.ExtendsKeyword))==null?void 0:h.types.map(p=>f(p.expression)))||[],i=[],r=[],l;for(let p of e.members)s.default.isPropertySignature(p)?i.push({name:f(p.name),isOptional:p.questionToken!==void 0,type:g(p),isPrivate:((D=p.modifiers)==null?void 0:D.some(T=>T.kind===s.default.SyntaxKind.PrivateKeyword))||!1}):s.default.isMethodSignature(p)?r.push({name:p.name.text,returnType:g(p),isPrivate:((E=p.modifiers)==null?void 0:E.some(T=>T.kind===s.default.SyntaxKind.PrivateKeyword))||!1,args:p.parameters.map(T=>({name:f(T.name),type:g(T),isOptional:T.questionToken!==void 0}))}):s.default.isIndexSignatureDeclaration(p)&&(l=g(p));let a=N.get(n);a?(a.implementations=B(a.implementations||[],t),a.methods=B(a.methods||[],r,(p,T)=>p.name===T.name),a.properties=B(a.properties||[],i,(p,T)=>p.name===T.name),a.indexElementType=l,S(`Merge interface ${f(e.name)}`)):(a={name:n,implementations:t,methods:r,properties:i,indexElementType:l,generics:(P=e.typeParameters)==null?void 0:P.map(p=>f(p.name))},N.set(n,a),S(`Define interface ${f(e.name)}`))}function Se(e){let n=f(e.name);n&&(F.set(n,{name:n,members:e.members.map(t=>({name:f(t.name),initializer:f(t.initializer)}))}),S(`Define enum: ${f(e.name)}`))}function xe(e){S(`Define typeAlias: ${f(e.name)}`),M.set(f(e.name),g(e))}function Pe(e){let n=e.parent.parent;s.default.isVariableDeclaration(n)&&n.initializer&&s.default.isAsExpression(n.initializer)&&W.set(f(n.name),fe(n.initializer.expression))}function fe(e){return s.default.isArrayLiteralExpression(e)?Ke(e):s.default.isObjectLiteralExpression(e)?Ne(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":b}function Ke(e){let n=[];return e.elements.forEach(t=>{if(s.default.isStringLiteral(t))return n.push(f(t))}),n.length===0?b:n.length===1?n[0]:{unionMembers:n}}function Ne(e){let n=[];return e.properties.map(t=>{s.default.isPropertyAssignment(t)?n.push({name:f(t.name),type:fe(t.initializer)}):S(`unsupported property: ${t.name}`)}),{typeLiteralMembers:n}}function ce(e){I.add(e)}function g(e,n=!1){if(e.type&&!n)return K(e.type);if(!$)return console.error("TypeChecker not initialized!"),b;let t=$.getTypeAtLocation(e),i=$.typeToTypeNode(t,void 0,void 0);return i?K("type"in i?i.type:i):b}function K(e){let n={};if(e===void 0)return b;if(s.default.isUnionTypeNode(e))n.unionMembers=e.types.map(K);else if(s.default.isIntersectionTypeNode(e))n.intersectionMembers=e.types.map(K);else if(s.default.isLiteralTypeNode(e))n.literalValue=f(e.literal);else if(s.default.isTypeLiteralNode(e)){let t=[];e.members.forEach(i=>{s.default.isPropertySignature(i)?t.push({name:f(i.name),isOptional:i.questionToken!==void 0,type:g(i)}):s.default.isIndexSignatureDeclaration(i)?n.indexElementType=g(i):t.push({name:f(i.name)||"",isOptional:i.questionToken!==void 0,type:K()})}),n.typeLiteralMembers=t}else if(s.default.isArrayTypeNode(e))n.arrayElementType=K(e.elementType);else if(s.default.isFunctionTypeNode(e))n.isFunction=!0;else if(s.default.isTypeReferenceNode(e))if(ce(f(e.typeName)),e.typeArguments)n.generics=[f(e.typeName),...e.typeArguments.map(t=>K(t))];else return f(e.typeName);else{if(s.default.isIndexedAccessTypeNode(e))return g(e,!0);if(s.default.isThisTypeNode(e))return g(e);if(s.default.isParenthesizedTypeNode(e))return g(e);if(s.default.isConditionalTypeNode(e))return g(e);if(s.default.isTypeQueryNode(e))return g(e);if(s.default.isConstructorTypeNode(e))n.isConstructor=!0;else if(s.default.isTupleTypeNode(e))n.tupleMembers=e.elements.map(K);else{if(Object.keys(Y).includes(String(e.kind)))return Y[e.kind]||b;if(s.default.isOptionalTypeNode(e))Object.assign(n,g(e)),n.isOptionalInTuple=!0;else if(s.default.isNamedTupleMember(e))Object.assign(n,g(e));else return s.default.isTypeOperatorNode(e)&&e.operator===s.default.SyntaxKind.KeyOfKeyword,g(e,!0)}}return n}var B=(e,n,t)=>[...(e==null?void 0:e.filter(i=>!(n!=null&&n.some(r=>(t||(()=>r===i))(r,i)))))||[],...n||[]];function V(e,n){if(e!==void 0&&e!==b)return typeof e=="string"?I.has(e)||n!=null&&n.includes(e)?e:void 0:e}function Oe(e){var n,t;(n=e.methods)==null||n.forEach(i=>pe(i,e.generics)),(t=e.properties)==null||t.forEach(i=>le(i,e.generics))}function be(e){var n,t;(n=e.methods)==null||n.forEach(i=>pe(i,e.generics)),(t=e.properties)==null||t.forEach(i=>le(i,e.generics))}function le(e,n){e.type=V(e.type,n)}function pe(e,n){var t;(t=e.args)==null||t.forEach(i=>i.type=V(i.type,n)),e.returnType=V(e.returnType,n)}function f(e){if(!e)return e;if(e.end<0)return e.text;try{return s.default.isQualifiedName(e)?f(e.right):e.getText()}catch(n){return e.text}}function J(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(J):i.constructor===Object&&J(i)})}function _e(e){for(let n of e.values())J(n)}function Ae(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 ee(e,n=v.cwd()){return ne(e).replace(ne(n)+"/","")}function ne(e){let n=R.sep;return e.split(n).join("/")}function ue(e){return e instanceof Array?e:[e]}function S(e){j.OUTPUT_LOG&&console.log(e)}function H(e){let{sourcePaths:n,exclude:t,forEnabledClassOnly:i,outputLog:r}=e;if(r&&(j.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:l,interfaceDefinitions:a,enumDefinitions:m,typeAliasDefinitions:h}=U(n,t),D=[],E=[];function P(y){let o=l.get(y),d=[];return o?(o.superClassName&&d.push(o.superClassName),d.push(...o.implementations||[])):(o=a.get(y),o?d.push(...o.implementations||[]):(o=h.get(y),o&&d.push(...o.implementations||[]))),d.flatMap(A=>[A,...P(A)])||[]}function p(y,o){return P(y.name).includes(o)}function T(y){if(q.default.isClassDeclaration(y)&&y.name!==void 0){let o=y.name.text,d=l.get(o);if(!o||!d||i&&!p(d,"EnableReflect"))return;E.push(`Reflect.__classDef = Object.assign(Reflect.__classDef || {}, { ${o} })`);return}y.forEachChild(T)}function C(){let y=[];return l.forEach((o,d)=>{i&&!p(o,"EnableReflect")||y.push(`Reflect.__classes = Object.assign(Reflect.__classes || {}, { ${d}: ${JSON.stringify(o)} })`)}),a.forEach((o,d)=>{i&&!p(o,"EnableReflect")||y.push(`Reflect.__interfaces = Object.assign(Reflect.__interfaces || {}, { ${d}: ${JSON.stringify(o)} })`)}),m.forEach((o,d)=>{y.push(`Reflect.__enums = Object.assign(Reflect.__enums || {}, { ${d}: ${JSON.stringify(o)} })`)}),h.forEach((o,d)=>{y.push(`Reflect.__typeAliases = Object.assign(Reflect.__typeAliases || {}, { ${d}: ${JSON.stringify(o)} })`)}),y.join(`
|
|
2
|
+
`)}return{outputAllMetas:C,transform:(y,o)=>{if(o.endsWith(".ts")&&!(typeof n=="string"?[n]:n).every(d=>!o.startsWith(d))){r&&console.log(`transform id: ${o}`);try{let d=q.default.createSourceFile(o,y,q.default.ScriptTarget.Latest,!1);return D.length=0,E.length=0,T(d),`${D.join(";")};${y};${E.join(";")}`}catch(d){return console.error(`[reflect-parser-plugin] Error processing ${o}:`,d),null}}}}}var ke=process.cwd().replace(/\\/g,"/")+"/";function Me(e){let n=H(e);return{name:"reflect-parser-plugin",enforce:"pre",transform:(t,i)=>(i=i.replace(ke,""),i===e.entry?`${n.outputAllMetas()}
|
|
3
3
|
${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}};i(
|
|
3
|
-
-> `)}i(ze,"getErrorTraceMessages");var ge=class ge{constructor(t){this.rawDef=t}get name(){return this.rawDef.name}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)}};i(ge,"PropertyDefinition");var _=ge;function L(e){return new _(e)}i(L,"fillProperty");var v=class v extends _{static create(t,n){let r=h(v,t);return r.genericContext=n,r}get type(){return d(this.rawDef.type,this.genericContext)}};i(v,"GenericProperty");var z=v;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}};i(Te,"MethodDefinition");var B=Te;function W(e){return new B(e)}i(W,"fillMethod");var K=class K extends B{static create(t,n){let r=h(K,t);return r.genericContext=n,r}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)}};i(K,"GenericMethod");var G=K;function h(e,t){let n=Object.create(e.prototype);return Object.assign(n,t),n}i(h,"createInstance");function U(e,t){e.properties=t.properties.map(n=>z.create(n,e.genericContext)),e.methods=t.methods.map(n=>G.create(n,e.genericContext))}i(U,"buildPropertiesAndMethods");function De(e,t){let n={};return e.forEach(r=>{let[o,s]=t(r);n[o]=s}),n}i(De,"toDictionary");function Z(e,t){return(e==null?void 0:e.map(t).filter(n=>n!==void 0))||[]}i(Z,"mapNotNull");function Y(e,t,n){e!==void 0&&(e[t]=n)}i(Y,"setValue");function w(e,t){if(e!==void 0)return e[t]}i(w,"getValue");var he=class he{constructor(t){this.name=t.name,this.members=new Map,t.members.forEach(n=>{let r=n.initializer===void 0?{name:"number"}:{literalValue:n.initializer};this.members.set(n.name,r)})}get type(){return{name:this.name,unionMembers:Array.from(this.members.values())}}get names(){return Array.from(this.members.keys())}};i(he,"EnumDefinition");var I=he;var E=new Map,Q=new Map,q=new Map,H=new Map,lt=new Map,tn=i((e=>{lt.set(e.name,e)}),"ReflectClass"),ut={string:String,number:Number,boolean:Boolean,object:Object},b=Reflect;function Ae(e){var t;return((t=m(e))==null?void 0:t.jsClass)||ut[e]}i(Ae,"getClassByName");function m(e){var t,n,r;switch(typeof e){case"object":return m(e.constructor);case"function":let o=m(e.name);if(o)return o;let s=Array.from(E.values()).find((l=>l.jsClass===e));if(s)return s;let a=(t=Object.entries(b.__classDef||{}).find(([l,y])=>y===e))==null?void 0:t[0];return a?m(a):void 0;case"string":let c=e;if(!E.has(c)){let l=(n=b.__classes)==null?void 0:n[c];if(!l)return;let y=(r=b.__classDef)==null?void 0:r[c];E.set(c,new C(be(j({},l),{jsClass:y})))}return E.get(c)}}i(m,"getClassDefinition");function R(e){var t;if(!Q.has(e)){let n=(t=b.__interfaces)==null?void 0:t[e];if(!n)return;Q.set(e,new A(n))}return Q.get(e)}i(R,"getInterfaceDefinition");function X(e){var t;if(!q.has(e)){let n=(t=b.__enums)==null?void 0:t[e];if(!n)return;q.set(e,new I(n))}return q.get(e)}i(X,"getEnumDefinition");function nn(e){var t;return((t=X(e))==null?void 0:t.names)||[]}i(nn,"getEnumNames");function rn(e){let t=Object.entries(e)[0];if(!t)return[];let[n,r]=t,o=X(n);return o?o.names.map(s=>r[s]):Array.from(Object.keys(r))}i(rn,"getEnumValues");function ve(e){var t;if(!H.has(e)){let n=d((t=b.__typeAliases)==null?void 0:t[e]);if(!n)return;H.set(e,n)}return H.get(e)}i(ve,"getTypeAliasDefinition");function on(){b.__classes&&Object.entries(b.__classes).map(([e,t])=>{var r;let n=(r=b.__classDef)==null?void 0:r[e];n&&E.set(e,new C(be(j({},t),{jsClass:n})))}),b.__interfaces&&Object.entries(b.__interfaces).map(([e,t])=>Q.set(e,new A(t))),b.__enums&&Object.entries(b.__enums).map(([e,t])=>q.set(e,new I(t))),b.__typeAliases&&Object.entries(b.__typeAliases).map(([e,t])=>{H.set(e,d(t))}),["__classDef","__classes","__interfaces","__enums","__typeAliases","initReflectContext"].forEach(e=>delete b[e])}i(on,"initReflectContext");var te=class te{constructor(t){var n,r;this.name=t.name,this._implementationNames=t.implementations||[],this.methods=((n=t.methods)==null?void 0:n.map(W))||[],this.properties=((r=t.properties)==null?void 0:r.map(L))||[],this.generics=t.generics}get implementations(){return this._implementations||(this._implementations=Z(this._implementationNames,t=>R(t)||m(t).type||D(t))),this._implementations}get allImplementations(){if(this._allImplementations===void 0){let t=new Set(this.implementations);this.implementations.forEach(n=>{n instanceof te?n.allImplementations.forEach(r=>t.add(r)):t.add(n)}),this._allImplementations=Array.from(t)}return this._allImplementations}get type(){let t={};return this.allImplementations.forEach(n=>{let o=("type"in n?n.type:n).typeLiteralMembers;o==null||o.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}`}buildBaseObject(){let t={};return this.properties.forEach(n=>Y(t,n.name,void 0)),this.methods.forEach(n=>Y(t,n.name,()=>{})),t}};i(te,"InterfaceDefinition");var A=te,ne=class ne extends A{static create(t,n){let r=h(ne,t);r.genericArgs=n;let o=r;return o.buildGenericContext(),U(o,t),o}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((n,r)=>this.genericContext[n]=this.genericArgs[r])}};i(ne,"GenericInterface");var ee=ne;var xe=class xe{constructor(t){var n,r;this.name=t.name,this.superClassName=t.superClassName||"Object",this.superClass=m(this.superClassName),this._implementationNames=t.implementations||[],this.methods=((n=t.methods)==null?void 0:n.map(W))||[],this.properties=((r=t.properties)==null?void 0:r.map(L))||[],this.jsClass=t.jsClass,this.generics=t.generics}get allMethods(){let t={};if(this.superClassName!=="Object"){let n=m(this.superClassName);n&&Object.assign(t,j({},n.allMethods))}return Object.assign(t,j({},De(this.methods,n=>[n.name,n]))),t}get allProperties(){var t;return Object.assign(((t=this.superClass)==null?void 0:t.allProperties)||{},De(this.properties,n=>[n.name,n]))}get implementations(){return this._implementations?this._implementations:Z(this._implementationNames,t=>R(t)||D(t))}get allImplementations(){var t,n;if(this._allImplementations===void 0){let r=new Set(this.implementations);this.implementations.forEach(o=>{o instanceof A?o.allImplementations.forEach(s=>r.add(s)):r.add(o)}),(n=(t=this.superClass)==null?void 0:t.allImplementations)==null||n.forEach(o=>r.add(o)),this._allImplementations=Array.from(r)}return this._allImplementations}getProperty(t){return this.properties.find(n=>n.name===t)}get type(){var n,r;let t={};return(r=(n=this.superClass)==null?void 0:n.type.typeLiteralMembers)==null||r.forEach(o=>t[o.name]=o),this.properties.forEach(o=>t[o.name]=o),{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(r=>r.name).includes(t)}isSuperClassOf(t){if(this.name===t)return!0;let n=m(t);return n?n.isSubClassOf(this.name):!1}toString(){return`class ${this.name}`}};i(xe,"ClassDefinition");var C=xe,ie=class ie extends C{static create(t,n){let r=h(ie,t);r.genericArgs=n;let o=r;return o.buildGenericContext(),U(o,t),o}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((n,r)=>this.genericContext[n]=this.genericArgs[r])}};i(ie,"GenericClass");var re=ie;var g={name:"any"},ft={name:"null"},Be=["string","number","boolean","bigint","symbol"];function Ge(e){return!!(e.name&&["any","void","unknown"].includes(e.name))}i(Ge,"isIgnoredType");function Me(e){return!!(e.name&&Be.includes(e.name))}i(Me,"isPrimitiveType");function oe(e){return!!e.arrayElementType}i(oe,"isArrayType");function se(e){return!!e.literalValue}i(se,"isLiteralType");function ae(e){return!!e.typeLiteralMembers}i(ae,"isTypeLiteralType");function ce(e){return!!e.unionMembers}i(ce,"isUnionType");function le(e){return!!e.intersectionMembers}i(le,"isIntersectionType");function ue(e){return!!e.tupleMembers}i(ue,"isTupleType");function fe(e){return!!e.classDefinition}i(fe,"isClassDefinition");function pt(e){return!!e.generics}i(pt,"hasGenerics");function D(e,t){if(e==="any"||e==="Any"||e==="unknown"||e==="")return g;if(e==="null")return ft;let n=m(e);if(n)return t?re.create(n,t).type:n.type;if(Be.includes(e))return{name:e};let r=R(e);if(r)return t?ee.create(r,t).type:r.type;let o=X(e);if(o)return o.type;let s=ve(e);return s||g}i(D,"getTypeDefinition");var Le=new Map;function d(e,t,n){let r=Oe(e);if(e===void 0)return g;let o=Le.get(r);if(o)return o;let s={};if(Le.set(r,s),typeof e=="string")return(t==null?void 0:t[e])||D(e,n)||g;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))}return Object.keys(s).length===0?g:s}i(d,"fillType");function Oe(e){return e===null?"null":e===void 0?"undefined":typeof e!="object"?JSON.stringify(e):Array.isArray(e)?"["+e.map(Oe).join(",")+"]":"{"+Object.keys(e).sort().map(n=>JSON.stringify(n)+":"+Oe(e[n])).join(",")+"}"}i(Oe,"stableStringify");var je={isPrimitiveType:Me,isArrayType:oe,isLiteralType:se,isTypeLiteralType:ae,isUnionType:ce,isIntersectionType:le,isTupleType:ue,isClassDefinition:fe,hasGenerics:pt};var mt=[Promise,Date,Map,Set,Error,Function];function T(e,t,n=1){switch(!0){case t.name==="undefined":return e===void 0?u:f(`declared as ${p(t)} but actually not`);case Ge(t):return u;case fe(t):return e instanceof Object?J(e,t.classDefinition.name,n):f(`declared as ${p(t)} but actually not an object`);case oe(t):return yt(e,t,n);case ue(t):return dt(e,t,n);case ce(t):for(let r of t.unionMembers||[])if(T(e,r,n).success)return u;return f(`declared as ${p(t)} but all value not match`);case le(t):for(let r of t.intersectionMembers||[]){let o=T(e,r,n);if(!o.success)return f(`declared as ${p(t)} but all value not match`,o)}return u;case se(t):switch(typeof e){case"string":return e===Tt(t.literalValue)?u:f(`declared as string ${p(t)} but value not match`);case"number":return e===Number(t.literalValue)?u:f(`declared as number ${p(t)} but value not match`);case"bigint":return e===BigInt(t.literalValue)?u:f(`declared as bigint ${p(t)} but value not match`);case"boolean":return e===!!t.literalValue?u:f(`declared as boolean ${p(t)} but value not match`);default:return t.literalValue==="null"&&e===null?u:e===t.literalValue?u:f(`declared as ${p(t)} but value not match`)}case ae(t):return bt(e,t,n);case t.isFunction:case t.isConstructor:return typeof e=="function"?u:f(`declared as ${p(t)} but actually not`);case Me(t):return typeof e===t.name?u:f(`declared as ${p(t)} but actually ${typeof e}`);default:return gt(e,t,n)}}i(T,"validateValue");function yt(e,t,n=1){if(!Array.isArray(e))return f(`declared as ${p(t)} but actually not`);if(n===0)return u;for(let r of e){let o=T(r,t.arrayElementType||g,n-1);if(!o.success)return f(`declared as ${p(t)} but not all values in array match`,o)}return u}i(yt,"validateArrayValue");function dt(e,t,n=1){if(!Array.isArray(e))return f(`declared as ${p(t)} but actually not a tuple`);if(n===0)return u;let r=0;for(let o of t.tupleMembers){let s=e[r++];if(o.isOptionalInTuple&&s===void 0)continue;let a=T(e[r],o,n);if(!a.success)return f(`declared as ${p(t)} but not all values in tuple match`,a)}return u}i(dt,"validateTupleValue");function bt(e,t,n=1){if(e instanceof Object){for(let r of t.typeLiteralMembers||[]){if(r.isStatic)return u;if(r.name.startsWith("[")&&r.name.endsWith("]"))return u;if(n===0)return u;let o=r.type||g;r.isOptional&&(o={unionMembers:[o,{name:"undefined"}]});let s=w(e,r.name),a=T(s,o,n-1);if(!a.success)return f(`declared ${r.name} as ${p(o)}, but not match`,a)}return u}else return f(`declared as ${p(t)} but not an object`)}i(bt,"validateProperties");function gt(e,t,n=1){let r=typeof t=="string"?t:t.name;if(!r)return u;if(e===void 0)return f(`declared as ${p(t)} but actually undefined`);if(e===null)return r==="null"?u:f(`declared as ${p(t)} but actually null`);for(let s of mt)if(r===s.name)return e instanceof s?u:f(`declared as ${p(t)} but actually ${e.constructor.name}`);if(e instanceof Object&&!Ke(e,r))return f(`declared as ${p(t)} but actually not instance of it`);if(n==0)return u;let o=T(e,D(r),n);return o.success?u:f(`declared as ${p(t)} but actually not match`,o)}i(gt,"validateSimpleValue");function J(e,t,n=3){if(t!=="object"&&!Ke(e,t))return f(`declared as instance of ${t} but actually not`);let r=D(t);return t!=="any"&&r===g?f(`${t} not defined`):(delete r.classDefinition,T(e,r,n))}i(J,"validateClassInstance");function Ke(e,t){if(e===void 0||e.constructor.name===t)return!0;let n=m(t);if(!n)return!0;if(n.jsClass)return e instanceof n.jsClass;let r=m(e);return r?r.isSubClassOf(n.name):!1}i(Ke,"valueInstanceOf");function Tt(e){return e.length>=2&&(e[0]==='"'&&e[e.length-1]==='"'||e[0]==="'"&&e[e.length-1]==="'")?e.substring(1,e.length-1):e}i(Tt,"trimQuotes");function p(e){var t,n,r;return typeof e=="string"?e:fe(e)?e.classDefinition.name:oe(e)?(((t=e.arrayElementType)==null?void 0:t.name)||"unknown")+"[]":e.isConstructor?"Class":e.isFunction?"Function":ae(e)?"Object":ue(e)?`(${e.tupleMembers.map(p).join(",")})`:ce(e)?((n=e.unionMembers)==null?void 0:n.map(p).join(" | "))||"unknown":le(e)?((r=e.intersectionMembers)==null?void 0:r.map(p).join(" & "))||"unknown":se(e)?e.literalValue:e.name||"unknown"}i(p,"getTypeDisplayName");function pe(e,t,n=3){return t=t||e.constructor.name,J(e,t,n)}i(pe,"validateInstance");function Kn(e,t,n=1){for(let r=0;r<e.length;r++){let o=pe(e[r],t,n);if(!o.success)return f(`declared as instance of ${t}[] but [${r}] actually not`,o)}return u}i(Kn,"validateArray");function Wn(e,t,n=1){let r=Object.entries(e);for(let o=0;o<r.length;o++){let[s,a]=r[o],c=pe(a,t,n);if(!c.success)return f(`declared as instance of Dictionary<${t}> but [${s}] actually not`,c)}return u}i(Wn,"validateDictionary");function P(e){return typeof e=="string"?D(e):"array"in e?{arrayElementType:P(e.array)}:"union"in e?{unionMembers:e.union.map(P)}:"intersection"in e?{intersectionMembers:e.intersection.map(P)}:"tuple"in e?{tupleMembers:e.tuple.map(P)}:e}i(P,"getTypeDef");function qn(e,t,n=5){let r=T(e,P(t),n);if(!r.success){console.error(`assert failed with type: ${t}
|
|
4
|
-
${r.errorStackFlow}`);debugger;throw new Error(`assert failed with type: ${t}, ${r.errorStackFlow}`)}return e}i(
|
|
5
|
-
${l.errorStackFlow}`);return a},"checkValue"),o=t.returnType;return o.name==="Promise"&&(o=((s=o.generics)==null?void 0:s[0])||
|
|
1
|
+
var ze=Object.defineProperty,ot=Object.defineProperties;var st=Object.getOwnPropertyDescriptors;var ke=Object.getOwnPropertySymbols;var at=Object.prototype.hasOwnProperty,ct=Object.prototype.propertyIsEnumerable;var _e=(e,t,n)=>t in e?ze(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,S=(e,t)=>{for(var n in t||(t={}))at.call(t,n)&&_e(e,n,t[n]);if(ke)for(var n of ke(t))ct.call(t,n)&&_e(e,n,t[n]);return e},ge=(e,t)=>ot(e,st(t)),i=(e,t)=>ze(e,"name",{value:t,configurable:!0});var w=class w{constructor(t,n,r){this.success=t;this.errorMessage=n;this.cause=r}static failure(t,n){return new w(!1,t,n)}get errorStackFlow(){return this.cause?[this.errorMessage,this.cause.errorStackFlow].join(`
|
|
2
|
+
caused by: `):this.errorMessage}};i(w,"ValidateResult"),w.success=new w(!0);var k=w,f=k.success,p=k.failure;function ve(e){let t=i(n=>n.errorMessage?[n.errorMessage,...n.cause?t(n.cause):[]]:[],"getAllTraceMessages");return t(e).join(`
|
|
3
|
+
-> `)}i(ve,"getErrorTraceMessages");var be=class be{constructor(t){this.rawDef=t}get name(){return this.rawDef.name}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)}};i(be,"PropertyDefinition");var _=be;function L(e){return new _(e)}i(L,"fillProperty");var v=class v extends _{static create(t,n){let r=A(v,t);return r.genericContext=n,r}get type(){return d(this.rawDef.type,this.genericContext)}};i(v,"GenericProperty");var z=v;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}};i(Te,"MethodDefinition");var B=Te;function W(e){return new B(e)}i(W,"fillMethod");var K=class K extends B{static create(t,n){let r=A(K,t);return r.genericContext=n,r}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)}};i(K,"GenericMethod");var G=K;function A(e,t){let n=Object.create(e.prototype);return Object.assign(n,t),n}i(A,"createInstance");function U(e,t){e.properties=t.properties.map(n=>z.create(n,e.genericContext)),e.methods=t.methods.map(n=>G.create(n,e.genericContext))}i(U,"buildPropertiesAndMethods");function De(e,t){let n={};return e.forEach(r=>{let[o,s]=t(r);n[o]=s}),n}i(De,"toDictionary");function Z(e,t){return(e==null?void 0:e.map(t).filter(n=>n!==void 0))||[]}i(Z,"mapNotNull");function Y(e,t,n){e!==void 0&&(e[t]=n)}i(Y,"setValue");function R(e,t){if(e!==void 0)return e[t]}i(R,"getValue");var he=class he{constructor(t){this.name=t.name,this.members=new Map,t.members.forEach(n=>{let r=n.initializer===void 0?{name:"number"}:{literalValue:n.initializer};this.members.set(n.name,r)})}get type(){return{name:this.name,unionMembers:Array.from(this.members.values())}}get names(){return Array.from(this.members.keys())}};i(he,"EnumDefinition");var I=he;var E=new Map,Q=new Map,q=new Map,H=new Map,lt=new Map,nn=i((e=>{lt.set(e.name,e)}),"ReflectClass"),ut={string:String,number:Number,boolean:Boolean,object:Object},g=Reflect;function Ae(e){var t;return((t=y(e))==null?void 0:t.jsClass)||ut[e]}i(Ae,"getClassByName");function y(e){var t,n,r;switch(typeof e){case"object":return y(e.constructor);case"function":let o=y(e.name);if(o)return o;let s=Array.from(E.values()).find((l=>l.jsClass===e));if(s)return s;let a=(t=Object.entries(g.__classDef||{}).find(([l,u])=>u===e))==null?void 0:t[0];return a?y(a):void 0;case"string":let c=e;if(!E.has(c)){let l=(n=g.__classes)==null?void 0:n[c];if(!l)return;let u=(r=g.__classDef)==null?void 0:r[c];E.set(c,new P(ge(S({},l),{jsClass:u})))}return E.get(c)}}i(y,"getClassDefinition");function C(e){var t;if(!Q.has(e)){let n=(t=g.__interfaces)==null?void 0:t[e];if(!n)return;Q.set(e,new M(n))}return Q.get(e)}i(C,"getInterfaceDefinition");function X(e){var t;if(!q.has(e)){let n=(t=g.__enums)==null?void 0:t[e];if(!n)return;q.set(e,new I(n))}return q.get(e)}i(X,"getEnumDefinition");function rn(e){var t;return((t=X(e))==null?void 0:t.names)||[]}i(rn,"getEnumNames");function on(e){let t=Object.entries(e)[0];if(!t)return[];let[n,r]=t,o=X(n);return o?o.names.map(s=>r[s]):Array.from(Object.keys(r))}i(on,"getEnumValues");function Le(e){var t;if(!H.has(e)){let n=d((t=g.__typeAliases)==null?void 0:t[e]);if(!n)return;H.set(e,n)}return H.get(e)}i(Le,"getTypeAliasDefinition");function sn(){g.__classes&&Object.entries(g.__classes).map(([e,t])=>{var r;let n=(r=g.__classDef)==null?void 0:r[e];n&&E.set(e,new P(ge(S({},t),{jsClass:n})))}),g.__interfaces&&Object.entries(g.__interfaces).map(([e,t])=>Q.set(e,new M(t))),g.__enums&&Object.entries(g.__enums).map(([e,t])=>q.set(e,new I(t))),g.__typeAliases&&Object.entries(g.__typeAliases).map(([e,t])=>{H.set(e,d(t))}),["__classDef","__classes","__interfaces","__enums","__typeAliases","initReflectContext"].forEach(e=>delete g[e])}i(sn,"initReflectContext");var te=class te{constructor(t){var n,r;this.name=t.name,this._implementationNames=t.implementations||[],this.methods=((n=t.methods)==null?void 0:n.map(W))||[],this.properties=((r=t.properties)==null?void 0:r.map(L))||[],this.generics=t.generics}get implementations(){return this._implementations||(this._implementations=Z(this._implementationNames,t=>C(t)||y(t).type||D(t))),this._implementations}get allImplementations(){if(this._allImplementations===void 0){let t=new Set(this.implementations);this.implementations.forEach(n=>{n instanceof te?n.allImplementations.forEach(r=>t.add(r)):t.add(n)}),this._allImplementations=Array.from(t)}return this._allImplementations}get type(){let t={};return this.allImplementations.forEach(n=>{let o=("type"in n?n.type:n).typeLiteralMembers;o==null||o.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}`}buildBaseObject(){let t={};return this.properties.forEach(n=>Y(t,n.name,void 0)),this.methods.forEach(n=>Y(t,n.name,()=>{})),t}};i(te,"InterfaceDefinition");var M=te,ne=class ne extends M{static create(t,n){let r=A(ne,t);r.genericArgs=n;let o=r;return o.buildGenericContext(),U(o,t),o}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((n,r)=>this.genericContext[n]=this.genericArgs[r])}};i(ne,"GenericInterface");var ee=ne;var Me=class Me{constructor(t){var n,r;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(W))||[],this.properties=((r=t.properties)==null?void 0:r.map(L))||[],this.jsClass=t.jsClass,this.generics=t.generics}get allMethods(){let t={};if(this.superClassName!=="Object"){let n=y(this.superClassName);n&&Object.assign(t,S({},n.allMethods))}return Object.assign(t,S({},De(this.methods,n=>[n.name,n]))),t}get allProperties(){var t;return Object.assign(((t=this.superClass)==null?void 0:t.allProperties)||{},De(this.properties,n=>[n.name,n]))}get implementations(){return this._implementations?this._implementations:Z(this._implementationNames,t=>C(t)||D(t))}get allImplementations(){var t,n;if(this._allImplementations===void 0){let r=new Set(this.implementations);this.implementations.forEach(o=>{o instanceof M?o.allImplementations.forEach(s=>r.add(s)):r.add(o)}),(n=(t=this.superClass)==null?void 0:t.allImplementations)==null||n.forEach(o=>r.add(o)),this._allImplementations=Array.from(r)}return this._allImplementations}getProperty(t){return this.properties.find(n=>n.name===t)}get type(){var n,r;let t={};return(r=(n=this.superClass)==null?void 0:n.type.typeLiteralMembers)==null||r.forEach(o=>t[o.name]=o),this.properties.forEach(o=>t[o.name]=o),{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(r=>r.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}`}};i(Me,"ClassDefinition");var P=Me,ie=class ie extends P{static create(t,n){let r=A(ie,t);r.genericArgs=n;let o=r;return o.buildGenericContext(),U(o,t),o}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((n,r)=>this.genericContext[n]=this.genericArgs[r])}};i(ie,"GenericClass");var re=ie;var b={name:"any"},ft={name:"null"},Be=["string","number","boolean","bigint","symbol"];function Ge(e){return!!(e.name&&["any","void","unknown"].includes(e.name))}i(Ge,"isIgnoredType");function je(e){return!!(e.name&&Be.includes(e.name))}i(je,"isPrimitiveType");function oe(e){return!!e.arrayElementType}i(oe,"isArrayType");function se(e){return!!e.literalValue}i(se,"isLiteralType");function ae(e){return!!e.typeLiteralMembers}i(ae,"isTypeLiteralType");function ce(e){return!!e.unionMembers}i(ce,"isUnionType");function le(e){return!!e.intersectionMembers}i(le,"isIntersectionType");function ue(e){return!!e.tupleMembers}i(ue,"isTupleType");function fe(e){return!!e.classDefinition}i(fe,"isClassDefinition");function pt(e){return!!e.generics}i(pt,"hasGenerics");function D(e,t){if(e==="any"||e==="Any"||e==="unknown"||e==="")return b;if(e==="null")return ft;let n=y(e);if(n)return t?re.create(n,t).type:n.type;if(Be.includes(e))return{name:e};let r=C(e);if(r)return t?ee.create(r,t).type:r.type;let o=X(e);if(o)return o.type;let s=Le(e);return s||b}i(D,"getTypeDefinition");var xe=new Map;function d(e,t,n){let r=Oe(e);if(e===void 0)return b;let o=xe.get(r);if(o)return o;let s={};if(xe.set(r,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))}return Object.keys(s).length===0&&(s=b),xe.delete(r),s}i(d,"fillType");function Oe(e){return e===null?"null":e===void 0?"undefined":typeof e!="object"?JSON.stringify(e):Array.isArray(e)?"["+e.map(Oe).join(",")+"]":"{"+Object.keys(e).sort().map(n=>JSON.stringify(n)+":"+Oe(e[n])).join(",")+"}"}i(Oe,"stableStringify");var Se={isPrimitiveType:je,isArrayType:oe,isLiteralType:se,isTypeLiteralType:ae,isUnionType:ce,isIntersectionType:le,isTupleType:ue,isClassDefinition:fe,hasGenerics:pt};var mt=[Promise,Date,Map,Set,Error,Function];function T(e,t,n=1){switch(!0){case t.name==="undefined":return e===void 0?f:p(`declared as ${m(t)} but actually not`);case Ge(t):return f;case fe(t):return e instanceof Object?J(e,t.classDefinition.name,n):p(`declared as ${m(t)} but actually not an object`);case oe(t):return yt(e,t,n);case ue(t):return dt(e,t,n);case ce(t):for(let r of t.unionMembers||[])if(T(e,r,n).success)return f;return p(`declared as ${m(t)} but all value not match`);case le(t):for(let r of t.intersectionMembers||[]){let o=T(e,r,n);if(!o.success)return p(`declared as ${m(t)} but all value not match`,o)}return f;case se(t):switch(typeof e){case"string":return e===Tt(t.literalValue)?f:p(`declared as string ${m(t)} but value not match`);case"number":return e===Number(t.literalValue)?f:p(`declared as number ${m(t)} but value not match`);case"bigint":return e===BigInt(t.literalValue)?f:p(`declared as bigint ${m(t)} but value not match`);case"boolean":return e===!!t.literalValue?f:p(`declared as boolean ${m(t)} but value not match`);default:return t.literalValue==="null"&&e===null?f:e===t.literalValue?f:p(`declared as ${m(t)} but value not match`)}case ae(t):return gt(e,t,n);case t.isFunction:case t.isConstructor:return typeof e=="function"?f:p(`declared as ${m(t)} but actually not`);case je(t):return typeof e===t.name?f:p(`declared as ${m(t)} but actually ${typeof e}`);default:return bt(e,t,n)}}i(T,"validateValue");function yt(e,t,n=1){if(!Array.isArray(e))return p(`declared as ${m(t)} but actually not`);if(n===0)return f;for(let r of e){let o=T(r,t.arrayElementType||b,n-1);if(!o.success)return p(`declared as ${m(t)} but not all values in array match`,o)}return f}i(yt,"validateArrayValue");function dt(e,t,n=1){if(!Array.isArray(e))return p(`declared as ${m(t)} but actually not a tuple`);if(n===0)return f;let r=0;for(let o of t.tupleMembers){let s=e[r++];if(o.isOptionalInTuple&&s===void 0)continue;let a=T(e[r],o,n);if(!a.success)return p(`declared as ${m(t)} but not all values in tuple match`,a)}return f}i(dt,"validateTupleValue");function gt(e,t,n=1){if(e instanceof Object){for(let r of t.typeLiteralMembers||[]){if(r.isStatic)return f;if(r.name.startsWith("[")&&r.name.endsWith("]"))return f;if(n===0)return f;let o=r.type||b;r.isOptional&&(o={unionMembers:[o,{name:"undefined"}]});let s=R(e,r.name),a=T(s,o,n-1);if(!a.success)return p(`declared ${r.name} as ${m(o)}, but not match`,a)}return f}else return p(`declared as ${m(t)} but not an object`)}i(gt,"validateProperties");function bt(e,t,n=1){let r=typeof t=="string"?t:t.name;if(!r)return f;if(e===void 0)return p(`declared as ${m(t)} but actually undefined`);if(e===null)return r==="null"?f:p(`declared as ${m(t)} but actually null`);for(let s of mt)if(r===s.name)return e instanceof s?f:p(`declared as ${m(t)} but actually ${e.constructor.name}`);if(e instanceof Object&&!Ke(e,r))return p(`declared as ${m(t)} but actually not instance of it`);if(n==0)return f;let o=T(e,D(r),n);return o.success?f:p(`declared as ${m(t)} but actually not match`,o)}i(bt,"validateSimpleValue");function J(e,t,n=3){if(t!=="object"&&!Ke(e,t))return p(`declared as instance of ${t} but actually not`);let r=D(t);return t!=="any"&&r===b?p(`${t} not defined`):(delete r.classDefinition,T(e,r,n))}i(J,"validateClassInstance");function Ke(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 r=y(e);return r?r.isSubClassOf(n.name):!1}i(Ke,"valueInstanceOf");function Tt(e){return e.length>=2&&(e[0]==='"'&&e[e.length-1]==='"'||e[0]==="'"&&e[e.length-1]==="'")?e.substring(1,e.length-1):e}i(Tt,"trimQuotes");function m(e){var t,n,r;return typeof e=="string"?e:fe(e)?e.classDefinition.name:oe(e)?(((t=e.arrayElementType)==null?void 0:t.name)||"unknown")+"[]":e.isConstructor?"Class":e.isFunction?"Function":ae(e)?"Object":ue(e)?`(${e.tupleMembers.map(m).join(",")})`:ce(e)?((n=e.unionMembers)==null?void 0:n.map(m).join(" | "))||"unknown":le(e)?((r=e.intersectionMembers)==null?void 0:r.map(m).join(" & "))||"unknown":se(e)?e.literalValue:e.name||"unknown"}i(m,"getTypeDisplayName");function pe(e,t,n=3){return t=t||e.constructor.name,J(e,t,n)}i(pe,"validateInstance");function Wn(e,t,n=1){for(let r=0;r<e.length;r++){let o=pe(e[r],t,n);if(!o.success)return p(`declared as instance of ${t}[] but [${r}] actually not`,o)}return f}i(Wn,"validateArray");function Un(e,t,n=1){let r=Object.entries(e);for(let o=0;o<r.length;o++){let[s,a]=r[o],c=pe(a,t,n);if(!c.success)return p(`declared as instance of Dictionary<${t}> but [${s}] actually not`,c)}return f}i(Un,"validateDictionary");function x(e){if(typeof e=="string"){let t=ht(e);return typeof t=="string"?D(e):x(t)}return Array.isArray(e)?D(e[0],e.slice(1).map(x)):"array"in e?{arrayElementType:x(e.array)}:"union"in e?{unionMembers:e.union.map(x)}:"intersection"in e?{intersectionMembers:e.intersection.map(x)}:"tuple"in e?{tupleMembers:e.tuple.map(x)}:e}i(x,"getTypeDef");function Hn(e,t,n=5){let r=T(e,x(t),n);if(!r.success){console.error(`assert failed with type: ${t}
|
|
4
|
+
${r.errorStackFlow}`);debugger;throw new Error(`assert failed with type: ${t}, ${r.errorStackFlow}`)}return e}i(Hn,"assertType");function Xn(e){return Dt(null,e)}i(Xn,"isNullable");function Dt(e,t){return T(e,x(t),3).success}i(Dt,"isType");function ht(e){let t=e.trim(),n=i(u=>u.trim(),"trim"),r=i(u=>u.length!=0,"notEmpty"),o=t.split("|").map(n).filter(r);if(o.length>1)return{union:o};let s=t.split("&").map(n).filter(r);if(s.length>1)return{intersection:s};let a=t.match(/^\[(.*)]$/);if(a)return{tuple:a[1].split(",").map(n).filter(r)};let c=t.match(/^(.+)\[]$/);if(c)return{array:c[1].trim()};let l=t.match(/^([^<]+)<(.+)>$/);if(l){let u=l[1].trim(),h=l[2].split(",").map(n).filter(r);return[u,...h]}return t}i(ht,"parseType");var We=Symbol("VALIDATE_WRAPPER"),sr=i((e,t,n)=>At(e,t,n),"ReflectValidate");function At(e,t,n){let r=n.value;if(typeof r!="function"||R(r,We))return;let o=i(()=>{var l,u;return(u=(l=y(e))==null?void 0:l.methods)==null?void 0:u.find(h=>h.name===t)},"getMethodDef"),s=i(l=>Ue(e,o(),l),"validateArgs"),a=i(l=>Mt(e,o(),l),"validateReturn"),c=i(function(...l){s(l);let u=r.call(this,...l);return a(u)},"newFunc");c[We]=r,n.value=c}i(At,"wrapValidateMethod");function Ue(e,t,n){var r;(r=t==null?void 0:t.args)==null||r.forEach((o,s)=>{let a=n==null?void 0:n[s];if(a===void 0){if(o.isOptional)return;throw new Error(`Illegal arguments for ${we(e.constructor.name,t)}: ${o.name} is not optional`)}let c=T(a,o.type||b,1);if(!c.success)throw console.error("validateResult",c),new Error(`Illegal arguments for ${we(e.constructor.name,t)}: ${o.name}: ${o.name} ${c.errorMessage}`)})}i(Ue,"validateMethodParams");function Mt(e,t,n){var s;if(!t)return n;let r=i((a,c)=>{let l=T(a,c,5);if(!l.success)throw console.error(l.errorStackFlow),new Error(`result for ${we(e.constructor.name,t)} doesn't match type ${c.name}:
|
|
5
|
+
${l.errorStackFlow}`);return a},"checkValue"),o=t.returnType;return o.name==="Promise"&&(o=((s=o.generics)==null?void 0:s[0])||b),n instanceof Promise?n.then(a=>r(a,o||b)):r(n,o||b)}i(Mt,"validateMethodReturnValue");function we(e,t){var n;return`${e}.${t.name}(${(n=t.args)==null?void 0:n.map(r=>r.name).join(", ")})`}i(we,"getMethodDescription");function ar(e,t,...n){let r=y(e);if(!r)return;let o=r.allMethods[t];if(o)return Ue(e,o,n),R(e,t).apply(e,n)}i(ar,"safeCall");function cr(e){let{funcName:t,optionsObj:n,value:r,argName:o,type:s,optional:a}=e,c=r||n&&R(n,o);if(c===void 0){if(a)return;throw Error(`Illegal arguments for ${t}: ${o} is undefined`)}if(["string","number","boolean","bigint"].includes(s)){if(typeof c!==s)throw Error(`Illegal arguments for ${t}: ${o} is not a ${s}`);return}if(typeof c!="object")throw Error(`Illegal arguments for ${t}: ${o} is not an object`);if(c===null)throw Error(`Illegal arguments for ${t}: ${o} is null`);let l=J(c,s);if(!l.success)throw Error(`Illegal arguments for ${t}: ${l.errorMessage}`)}i(cr,"validateFunctionArgument");import"reflect-metadata";function Ze(e){return String(e).toLocaleLowerCase()==="false"?!1:!!e}i(Ze,"asBoolean");function N(e){return e==null||Number.isNaN(e)||e instanceof Date&&String(e)==="Invalid Date"?"":typeof e=="symbol"?e.description||"":String(e)}i(N,"asString");function Re(e){return e?e instanceof Date?e.getDate():Number(e):0}i(Re,"asNumber");function O(e,t,n){e[t]=n}i(O,"setAnyValue");function me(e,t){return e[t]}i(me,"getAnyValue");function Tr(e,t,n){let r=e[t];if(r!==void 0)return r;let o=n();return O(e,t,o),o}i(Tr,"getOrSetValue");function Ye(e){return typeof e=="object"&&e!==null&&e.constructor===Object}i(Ye,"isDictionary");function Qe(e){let t=Object.create(e.prototype);return t.constructor=this,t}i(Qe,"createNewInstance");function qe(e){return((t,n)=>Reflect.defineMetadata(e,n,t.constructor))}i(qe,"defineDecoratedProperty");function He(e,t,...n){let r=Xe(e,t);if(r!==void 0&&r instanceof Function)return r.apply(e,n)}i(He,"callDecoratedMethod");function Mr(e,t){let n=Xe(e,t);return n!==void 0&&n instanceof Function}i(Mr,"hasDecoratedMethod");function xt(e,t){return Reflect.getMetadata(t,e.constructor)}i(xt,"getDecoratedProperty");function Xe(e,t){let n=xt(e,t);if(n!==void 0)return me(e,n)}i(Xe,"getDecoratedPropertyValue");var j=i(function({getter:e,setter:t,fieldSymbol:n}){return(r,o)=>{Object.defineProperty(r,o,{get:i(function(){return e?e(this,o):j.getField(r,o,n)},"get"),set:i(function(s){t?t(this,s,o):j.setField(r,o,s,n)},"set")})}},"PropertyWrapper");O(j,"getField",(e,t,n)=>{var r;return(r=me(e,n))==null?void 0:r[t]});O(j,"setField",(e,t,n,r)=>{let o=me(e,r)||{};o[t]=n,O(e,r,o)});function xr(e){let t=Symbol("lazy");return j({getter:i((n,r)=>{let o=j.getField(n,r,t);if(o)return o.value;let s=e(n,r);return j.setField(n,r,{value:s},t),s},"getter"),setter:i(()=>{},"setter"),fieldSymbol:t})}i(xr,"Lazy");var V=Symbol("JSON_SERIALIZED"),et=Symbol("AFTER_SERIALIZED"),Ve=class Ve{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}};i(Ve,"SerializeSettings");var Ce=Ve,$e=class $e{constructor(t,n,r){this.target=t;this.propName=n;this.options=r;this.isArray=Reflect.getDesignType(t,n)===Array,this.serializedName=r.name||N(n),this.class=r.class,this.fromJSON=this.createBuilder(),this.toJSON=r.toJSON||(o=>nt(o))}createBuilder(){if(this.options.fromJSON)return this.options.fromJSON;if(this.class&&this.class instanceof Function){let t=this.class;return n=>{let r=$.get(t);return r?r.fromJson(n):Je(n,t)}}else return t=>wt(this.target,this.propName,t)}};i($e,"SerializedPropertySetting");var Pe=$e;function tt(e,t){Ie(e,n=>{n.defaultIgnored=t})}i(tt,"setDefaultIgnored");function ye(e,t,n){let r=e.constructor;Ie(r,o=>{o.add(new Pe(e,t,n))})}i(ye,"registerSerializedProperty");function Ie(e,t){let n=Reflect.getMetadata(V,e);n===void 0&&(n=new Ce),t(n),Reflect.defineMetadata(V,n,e)}i(Ie,"updateSerializeSettings");var Ir=Ot();function Ot(e){return e=e||{},(t,n)=>ye(t,N(n),e)}i(Ot,"Serialized");function Er(e){return(t,n)=>ye(t,N(n),{name:e})}i(Er,"SerializedName");var Jr=i((e,t)=>Ie(e.constructor,n=>n.ignoredProperties.push(t)),"IgnoreSerialization");function Nr(e){return JSON.stringify(typeof e=="object"?Ee(e):e)}i(Nr,"serialize");function nt(e){if(e===void 0)throw new Error("attempt to serialize undefined value");if(e===null)return null;let t=$.get(e.constructor);return t?t.toJson(e):Ee(e)}i(nt,"serializeTo");function Ee(e){var s;if(e instanceof Array)return e.map(a=>Ee(a));if(Ye(e)){let a={};return Object.entries(e).forEach(c=>{let[l,u]=c;a[l]=nt(u)}),a}let t=e.constructor;((s=y(t))==null?void 0:s.isSubClassOf("Mappable"))&&Fe(t);let r=Reflect.getMetadata(V,t);if(r===void 0)return e;let o={};return Object.entries(e).forEach(a=>{let c=a[0];if(r.isPropertyIgnored(c))return;let l=a[1];if(l===void 0||l instanceof Function||typeof l=="symbol")return;let u=r.settingsByName[c],h=(u==null?void 0:u.serializedName)||c;u&&(u.isArray?l=l.map(F=>u.toJSON(F)):l=u.toJSON(l)),o[h]=l}),o}i(Ee,"serializeToData");function Je(e,t){var n;if(typeof e=="string"&&(e=JSON.parse(e)),t===null||t===void 0)return e;try{let r=e,o=t instanceof Function?t:t.constructor,s=(n=y(o))==null?void 0:n.isSubClassOf("Mappable");s&&Fe(o);let a=$.get(o);if(a)return a.fromJson(r);let c=t instanceof Function?Qe(t):t;if(St(r,c),s){let l=pe(c,o.name);if(!l.success)throw new Error(`JSON deserialize validate failed: ${ve(l)} `)}return c}catch(r){throw console.error("failed to deserialize"),console.dir(r),r}}i(Je,"deserialize");function jt(e,t){let n=typeof e=="string"?JSON.parse(e):e;return n instanceof Array?n.map(r=>Je(r,t)):[]}i(jt,"deserializeArray");function St(e,t){let n=t.constructor,r=Reflect.getMetadata(V,n);if(r===void 0){Object.assign(t,e);return}Object.keys(e).forEach(o=>{let s=r.settingsBySerializedName[o],a=e[o];if(s===void 0){r.defaultIgnored||O(t,o,a);return}let c=s.propName;if(r.isPropertyIgnored(c))return;let l;a instanceof Array?l=a.map(u=>s.fromJSON(u)):l=s.fromJSON(a),O(t,c,l)}),He(t,et)}i(St,"deserializeFrom");function Vr(e){return Reflect.getMetadata(V,e)}i(Vr,"getSerializeSettings");function wt(e,t,n){let r=Reflect.getDesignType(e,t);if(r===void 0)return n;if(r===Array)return jt(n);let o=$.get(r);return o?o.fromJson(n):Je(n,r)}i(wt,"getValueByReflectType");var $=new Map;function de(e,t){$.set(e,t)}i(de,"registerTransform");var Ne=i(e=>e,"itSelf"),$r=i(()=>{},"done");de(String,{fromJson:N,toJson:Ne});de(Number,{fromJson:Re,toJson:Ne});de(Boolean,{fromJson:Ze,toJson:Ne});de(Date,{fromJson:i(e=>new Date(Re(e)),"fromJson"),toJson:i(e=>e.getTime(),"toJson")});var Fr=qe(et);var rt=new Map;function Fe(e){if(rt.get(e))return;let t=y(e),n=new Proxy({},{get(o,s){return r(s)},set(o,s,a){return r(s)(a),!0}});function r(o){return(s,a)=>{var u,h,F;let c=(h=(u=Object.values((t==null?void 0:t.allProperties)||{}))==null?void 0:u.find(it=>it.name===o))==null?void 0:h.type,l=(c==null?void 0:c.name)!==void 0?Ae(c.name):void 0;c&&Se.isArrayType(c)&&(l=((F=c.arrayElementType)==null?void 0:F.name)!==void 0?Ae(c.arrayElementType.name):void 0),typeof o=="string"&&(ye(e.prototype,o,{name:s,class:l,fromJSON:a==null?void 0:a.fromJSON,toJSON:a==null?void 0:a.toJSON}),tt(e,!0))}}i(r,"doMap"),e.prototype.mapping(n),rt.set(e,!0)}i(Fe,"registerMappable");function Lr(e,t){let n=y(e);n&&n.properties.forEach(r=>t[r.name]())}i(Lr,"mapAllProperties");import"reflect-metadata";var Rt="design:type",Ct="design:returntype",Pt="design:paramtypes";function It(e,t){return Reflect.getMetadata(Rt,e,t)}i(It,"getDesignType");function Et(e,t){return Reflect.getMetadata(Ct,e,t)}i(Et,"getReturnType");function Jt(e,t){return Reflect.getMetadata(Pt,e,t)}i(Jt,"getParamTypes");function Nt(e,t,n,r){let o=(r===void 0?Reflect.getMetadata(e,n):Reflect.getMetadata(e,n,r))||[];o.includes(t)||o.push(t),r===void 0?Reflect.defineMetadata(e,o,n):Reflect.defineMetadata(e,o,n,r)}i(Nt,"addMetadataList");Object.assign(Reflect,{getDesignType:It,getReturnType:Et,getParamTypes:Jt,addMetadataList:Nt});export{Fr as AfterSerialized,Jr as IgnoreSerialization,xr as Lazy,j as PropertyWrapper,nn as ReflectClass,sr as ReflectValidate,Ot as Serialized,Ir as SerializedClass,Er as SerializedName,Se as TypeDefinition,k as ValidateResult,Ze as asBoolean,Re as asNumber,N as asString,Hn as assertType,He as callDecoratedMethod,Qe as createNewInstance,qe as defineDecoratedProperty,Je as deserialize,jt as deserializeArray,St as deserializeFrom,$r as done,p as failedResult,me as getAnyValue,Ae as getClassByName,y as getClassDefinition,xt as getDecoratedProperty,Xe as getDecoratedPropertyValue,X as getEnumDefinition,rn as getEnumNames,on as getEnumValues,ve as getErrorTraceMessages,C as getInterfaceDefinition,Tr as getOrSetValue,Vr as getSerializeSettings,Le as getTypeAliasDefinition,x as getTypeDef,Mr as hasDecoratedMethod,sn as initReflectContext,Ye as isDictionary,Xn as isNullable,Dt as isType,Ne as itSelf,Lr as mapAllProperties,Fe as registerMappable,ye as registerSerializedProperty,de as registerTransform,ar as safeCall,Nr as serialize,nt as serializeTo,Ee as serializeToData,O as setAnyValue,tt as setDefaultIgnored,f as successResult,Wn as validateArray,Un as validateDictionary,cr as validateFunctionArgument,pe as validateInstance};
|
package/dist/esm/parser/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var I=(e,n,i)=>new Promise((t,u)=>{var c=T=>{try{m(i.next(T))}catch(D){u(D)}},r=T=>{try{m(i.throw(T))}catch(D){u(D)}},m=T=>T.done?t(T.value):Promise.resolve(T.value).then(c,r);m((i=i.apply(e,n)).next())});import V from"typescript";import s from"typescript";import*as x from"fs";import*as M from"process";import*as R from"path";import{pathToFileURL as ce}from"url";var z={OUTPUT_LOG:!1},_=new Map,P=new Map,L=new Map,k=new Map,G=new Map,$=new Set,J={[s.SyntaxKind.BooleanKeyword]:"boolean",[s.SyntaxKind.StringKeyword]:"string",[s.SyntaxKind.BigIntKeyword]:"bigint",[s.SyntaxKind.NumberKeyword]:"number",[s.SyntaxKind.SymbolKeyword]:"symbol",[s.SyntaxKind.VoidKeyword]:"void",[s.SyntaxKind.UndefinedKeyword]:"undefined",[s.SyntaxKind.UnknownKeyword]:"unknown",[s.SyntaxKind.AnyKeyword]:"any",[s.SyntaxKind.ObjectKeyword]:"object"},b="any",X=["string","number","boolean","bigint","symbol"],Y=["any","Promise","Date","Error","undefined","unknown","object","Map","Set"],Z=["Mappable","EnableReflect"];[...X,...Y,...Z].forEach(se);Z.forEach(e=>P.set(e,{name:e}));var C,W=!1,w=Reflect;function Ne(e){return I(this,null,function*(){let{filePaths:n,exclude:i,sourceFolder:t,distFolder:u}=e;if(t=R.resolve(t||M.cwd()),u=R.resolve(u||M.cwd()),w.__classes!==void 0)return;n=oe(n);let c=n.map(r=>R.join(t,r));B(c,i),w.__classes={};for(let[r,m]of _)w.__classes[r]=m;w.__interfaces={};for(let[r,m]of P)w.__interfaces[r]=m;w.__typeAliases={};for(let[r,m]of k)w.__typeAliases[r]=m;w.__enums={};for(let[r,m]of L)w.__enums[r]=m;w.__constTypes={};for(let[r,m]of G)w.__constTypes[r]=m;yield Promise.all(n.map(r=>ee(r,u)))})}function ee(e,n){return I(this,null,function*(){let i=R.resolve(n,e);if(!x.existsSync(i))return;if(x.statSync(i).isDirectory()){x.readdirSync(i).forEach(T=>{ee(R.join(e,T),n)});return}if(!e.endsWith(".js"))return;let u=R.join(n,e),r=yield import(ce(u).href);w.__classDef={},Object.values(r).forEach(m=>{typeof m=="function"&&(w.__classDef[m.name]=m)})})}function B(e,n){if(e||(e=[M.cwd()]),e=oe(e),!W){let i=ne(e,n),t=s.createProgram(i,{});C=t.getTypeChecker(),i=i.map(c=>Q(c)),t.getSourceFiles().filter(c=>i.includes(Q(c.fileName))).forEach(c=>{S(`parse file: ${c.fileName}`),te(c)});for(let c of $.keys())!_.has(c)&&!P.has(c)&&!L.has(c)&&!k.has(c)&&!X.includes(c)&&!Y.includes(c)&&(S(`remove unknown typeName: ${c}`),$.delete(c));Array.from(_.values()).forEach(Te),Array.from(P.values()).forEach(he),[_,P,k].forEach(we),W=!0}return{classDefinitions:_,interfaceDefinitions:P,enumDefinitions:L,typeAliasDefinitions:k,constTypeDefinitions:G}}function ne(e,n){let i=[];return e.forEach(t=>{if(t=R.resolve(t),De(t,n)){S(`ignore excluded ${t}`);return}if(!x.existsSync(t)){console.error(`Path ${t} does not exist.`);return}if(x.statSync(t).isFile()){i.push(t);return}x.readdirSync(t).forEach(r=>i.push(...ne([R.join(t,r)],n)))}),i}function te(e){s.isClassDeclaration(e)?le(e):s.isInterfaceDeclaration(e)?pe(e):s.isEnumDeclaration(e)?ue(e):s.isTypeAliasDeclaration(e)?me(e):s.isConstTypeReference(e)?de(e):e.forEachChild(te)}function le(e){var m,T,D,E,N,l,h,v,F,y,o,d,A;let n=a(e.name);if(!n)return;let i=a((D=(T=(m=e.heritageClauses)==null?void 0:m.find(f=>f.token===s.SyntaxKind.ExtendsKeyword))==null?void 0:T.types)==null?void 0:D[0].expression),t=(N=(E=e.heritageClauses)==null?void 0:E.find(f=>f.token===s.SyntaxKind.ImplementsKeyword))==null?void 0:N.types.map(f=>a(f.expression)),u=[],c=[];for(let f of e.members)if(s.isPropertyDeclaration(f))u.push({name:a(f.name),isOptional:f.questionToken!==void 0,type:g(f),isPrivate:(l=f.modifiers)==null?void 0:l.some(p=>p.kind===s.SyntaxKind.PrivateKeyword),isStatic:(h=f.modifiers)==null?void 0:h.some(p=>p.kind===s.SyntaxKind.StaticKeyword)});else if(s.isMethodDeclaration(f))c.push({name:a(f.name),returnType:g(f),isPrivate:(v=f.modifiers)==null?void 0:v.some(p=>p.kind===s.SyntaxKind.PrivateKeyword),isStatic:(F=f.modifiers)==null?void 0:F.some(p=>p.kind===s.SyntaxKind.StaticKeyword),isAsync:(y=f.modifiers)==null?void 0:y.some(p=>p.kind===s.SyntaxKind.AsyncKeyword),args:f.parameters.map(p=>({name:a(p.name),type:g(p),isOptional:p.questionToken!==void 0}))});else if(s.isGetAccessorDeclaration(f)){let p=u.find(O=>O.name===a(f.name));p||(p={name:a(f.name),isOptional:f.questionToken===void 0,type:g(f)},u.push(p)),p.accessor=p.accessor||{},p.accessor.getter={isPrivate:((o=f.modifiers)==null?void 0:o.some(O=>O.kind===s.SyntaxKind.PrivateKeyword))||!1},p.isPrivate=p.accessor.getter.isPrivate}else if(s.isSetAccessorDeclaration(f)){let p=u.find(O=>O.name===a(f.name));p||(p={name:a(f.name),isOptional:f.questionToken===void 0,type:g(f)},u.push(p)),p.accessor=p.accessor||{},p.accessor.setter={isPrivate:((d=f.modifiers)==null?void 0:d.some(O=>O.kind===s.SyntaxKind.PrivateKeyword))||!1}}let r={name:n,superClassName:i,implementations:t,properties:u,methods:c,generics:(A=e.typeParameters)==null?void 0:A.map(f=>a(f.name))};S(`Define class: ${a(e.name)}`),_.set(n,r)}function pe(e){var m,T,D,E,N;let n=a(e.name);if(!n)return;let i=((T=(m=e.heritageClauses)==null?void 0:m.find(l=>l.token===s.SyntaxKind.ExtendsKeyword))==null?void 0:T.types.map(l=>a(l.expression)))||[],t=[],u=[],c;for(let l of e.members)s.isPropertySignature(l)?t.push({name:a(l.name),isOptional:l.questionToken!==void 0,type:g(l),isPrivate:((D=l.modifiers)==null?void 0:D.some(h=>h.kind===s.SyntaxKind.PrivateKeyword))||!1}):s.isMethodSignature(l)?u.push({name:l.name.text,returnType:g(l),isPrivate:((E=l.modifiers)==null?void 0:E.some(h=>h.kind===s.SyntaxKind.PrivateKeyword))||!1,args:l.parameters.map(h=>({name:a(h.name),type:g(h),isOptional:h.questionToken!==void 0}))}):s.isIndexSignatureDeclaration(l)&&(c=g(l));let r=P.get(n);r?(r.implementations=j(r.implementations||[],i),r.methods=j(r.methods||[],u,(l,h)=>l.name===h.name),r.properties=j(r.properties||[],t,(l,h)=>l.name===h.name),r.indexElementType=c,S(`Merge interface ${a(e.name)}`)):(r={name:n,implementations:i,methods:u,properties:t,indexElementType:c,generics:(N=e.typeParameters)==null?void 0:N.map(l=>a(l.name))},P.set(n,r),S(`Define interface ${a(e.name)}`))}function ue(e){let n=a(e.name);n&&(L.set(n,{name:n,members:e.members.map(i=>({name:a(i.name),initializer:a(i.initializer)}))}),S(`Define enum: ${a(e.name)}`))}function me(e){S(`Define typeAlias: ${a(e.name)}`),k.set(a(e.name),g(e))}function de(e){let n=e.parent.parent;s.isVariableDeclaration(n)&&n.initializer&&s.isAsExpression(n.initializer)&&G.set(a(n.name),ie(n.initializer.expression))}function ie(e){return s.isArrayLiteralExpression(e)?ye(e):s.isObjectLiteralExpression(e)?ge(e):s.isNumericLiteral(e)?"number":s.isStringLiteral(e)?"string":s.isBigIntLiteral(e)?"bigint":[s.SyntaxKind.TrueKeyword,s.SyntaxKind.FalseKeyword].includes(e.kind)?"boolean":b}function ye(e){let n=[];return e.elements.forEach(i=>{if(s.isStringLiteral(i))return n.push(a(i))}),n.length===0?b:n.length===1?n[0]:{unionMembers:n}}function ge(e){let n=[];return e.properties.map(i=>{s.isPropertyAssignment(i)?n.push({name:a(i.name),type:ie(i.initializer)}):S(`unsupported property: ${i.name}`)}),{typeLiteralMembers:n}}function se(e){$.add(e)}function g(e,n=!1){if(e.type&&!n)return K(e.type);if(!C)return console.error("TypeChecker not initialized!"),b;let i=C.getTypeAtLocation(e),t=C.typeToTypeNode(i,void 0,void 0);return t?K("type"in t?t.type:t):b}function K(e){let n={};if(e===void 0)return b;if(s.isUnionTypeNode(e))n.unionMembers=e.types.map(K);else if(s.isIntersectionTypeNode(e))n.intersectionMembers=e.types.map(K);else if(s.isLiteralTypeNode(e))n.literalValue=a(e.literal);else if(s.isTypeLiteralNode(e)){let i=[];e.members.forEach(t=>{s.isPropertySignature(t)?i.push({name:a(t.name),isOptional:t.questionToken!==void 0,type:g(t)}):s.isIndexSignatureDeclaration(t)?n.indexElementType=g(t):i.push({name:a(t.name)||"",isOptional:t.questionToken!==void 0,type:K()})}),n.typeLiteralMembers=i}else if(s.isArrayTypeNode(e))n.arrayElementType=K(e.elementType);else if(s.isFunctionTypeNode(e))n.isFunction=!0;else if(s.isTypeReferenceNode(e))if(se(a(e.typeName)),e.typeArguments)n.generics=[a(e.typeName),...e.typeArguments.map(i=>K(i))];else return a(e.typeName);else{if(s.isIndexedAccessTypeNode(e))return g(e,!0);if(s.isThisTypeNode(e))return g(e);if(s.isParenthesizedTypeNode(e))return g(e);if(s.isConditionalTypeNode(e))return g(e);if(s.isTypeQueryNode(e))return g(e);if(s.isConstructorTypeNode(e))n.isConstructor=!0;else if(s.isTupleTypeNode(e))n.tupleMembers=e.elements.map(K);else{if(Object.keys(J).includes(String(e.kind)))return J[e.kind]||b;if(s.isOptionalTypeNode(e))Object.assign(n,g(e)),n.isOptionalInTuple=!0;else if(s.isNamedTupleMember(e))Object.assign(n,g(e));else return s.isTypeOperatorNode(e)&&e.operator===s.SyntaxKind.KeyOfKeyword,g(e,!0)}}return n}var j=(e,n,i)=>[...(e==null?void 0:e.filter(t=>!(n!=null&&n.some(u=>(i||(()=>u===t))(u,t)))))||[],...n||[]];function U(e,n){if(e!==void 0&&e!==b)return typeof e=="string"?$.has(e)||n!=null&&n.includes(e)?e:void 0:e}function Te(e){var n,i;(n=e.methods)==null||n.forEach(t=>ae(t,e.generics)),(i=e.properties)==null||i.forEach(t=>re(t,e.generics))}function he(e){var n,i;(n=e.methods)==null||n.forEach(t=>ae(t,e.generics)),(i=e.properties)==null||i.forEach(t=>re(t,e.generics))}function re(e,n){e.type=U(e.type,n)}function ae(e,n){var i;(i=e.args)==null||i.forEach(t=>t.type=U(t.type,n)),e.returnType=U(e.returnType,n)}function a(e){if(!e)return e;if(e.end<0)return e.text;try{return s.isQualifiedName(e)?a(e.right):e.getText()}catch(n){return e.text}}function q(e){e&&Object.entries(e).forEach(n=>{let[i,t]=n;t instanceof Array&&t.length===0||t===!1||t===void 0?delete e[i]:t.constructor===Array?t.forEach(q):t.constructor===Object&&q(t)})}function we(e){for(let n of e.values())q(n)}function De(e,n){return n?(n=n instanceof Array?n:[n],n.some(i=>(i instanceof RegExp||(i=new RegExp(i.replace(/\./g,"\\.").replace(/\*/g,".*"))),e.match(i)))):!1}function Q(e,n=M.cwd()){return H(e).replace(H(n)+"/","")}function H(e){let n=R.sep;return e.split(n).join("/")}function oe(e){return e instanceof Array?e:[e]}function S(e){z.OUTPUT_LOG&&console.log(e)}function fe(e){let{sourcePaths:n,exclude:i,forEnabledClassOnly:t,outputLog:u}=e;if(u&&(z.OUTPUT_LOG=!0),!n)throw new Error("need provide source paths for reflect loader");let{classDefinitions:c,interfaceDefinitions:r,enumDefinitions:m,typeAliasDefinitions:T}=B(n,i),D=[],E=[];function N(y){let o=c.get(y),d=[];return o?(o.superClassName&&d.push(o.superClassName),d.push(...o.implementations||[])):(o=r.get(y),o?d.push(...o.implementations||[]):(o=T.get(y),o&&d.push(...o.implementations||[]))),d.flatMap(A=>[A,...N(A)])||[]}function l(y,o){return N(y.name).includes(o)}function h(y){if(V.isClassDeclaration(y)&&y.name!==void 0){let o=y.name.text,d=c.get(o);if(!o||!d||t&&!l(d,"EnableReflect"))return;E.push(`Reflect.__classDef = Object.assign(Reflect.__classDef || {}, { ${o} })`);return}y.forEachChild(h)}function v(){let y=[];return c.forEach((o,d)=>{t&&!l(o,"EnableReflect")||y.push(`Reflect.__classes = Object.assign(Reflect.__classes || {}, { ${d}: ${JSON.stringify(o)} })`)}),r.forEach((o,d)=>{t&&!l(o,"EnableReflect")||y.push(`Reflect.__interfaces = Object.assign(Reflect.__interfaces || {}, { ${d}: ${JSON.stringify(o)} })`)}),m.forEach((o,d)=>{y.push(`Reflect.__enums = Object.assign(Reflect.__enums || {}, { ${d}: ${JSON.stringify(o)} })`)}),T.forEach((o,d)=>{y.push(`Reflect.__typeAliases = Object.assign(Reflect.__typeAliases || {}, { ${d}: ${JSON.stringify(o)} })`)}),y.join(`
|
|
2
|
-
`)}return{outputAllMetas:v,transform:(y,
|
|
3
|
-
${i}`:n.transform(i,t))}}export{z as DEBUG_CONFIG,B as parseSource,fe as reflectLoader,Me as reflectParserPlugin,
|
|
1
|
+
var I=(e,n,i)=>new Promise((t,l)=>{var c=h=>{try{m(i.next(h))}catch(D){l(D)}},r=h=>{try{m(i.throw(h))}catch(D){l(D)}},m=h=>h.done?t(h.value):Promise.resolve(h.value).then(c,r);m((i=i.apply(e,n)).next())});import V from"typescript";import s from"typescript";import*as x from"fs";import*as M from"process";import*as R from"path";import{pathToFileURL as ce}from"url";var z={OUTPUT_LOG:!1},_=new Map,N=new Map,L=new Map,k=new Map,G=new Map,$=new Set,J={[s.SyntaxKind.BooleanKeyword]:"boolean",[s.SyntaxKind.StringKeyword]:"string",[s.SyntaxKind.BigIntKeyword]:"bigint",[s.SyntaxKind.NumberKeyword]:"number",[s.SyntaxKind.SymbolKeyword]:"symbol",[s.SyntaxKind.VoidKeyword]:"void",[s.SyntaxKind.UndefinedKeyword]:"undefined",[s.SyntaxKind.UnknownKeyword]:"unknown",[s.SyntaxKind.AnyKeyword]:"any",[s.SyntaxKind.ObjectKeyword]:"object"},b="any",X=["string","number","boolean","bigint","symbol"],Y=["any","Promise","Date","Error","undefined","unknown","object","Map","Set"],Z=["Mappable","EnableReflect"];[...X,...Y,...Z].forEach(se);Z.forEach(e=>N.set(e,{name:e}));var C,W=!1,w=Reflect;function Pe(e){return I(this,null,function*(){let{filePaths:n,exclude:i,sourceFolder:t,distFolder:l}=e;if(t=R.resolve(t||M.cwd()),l=R.resolve(l||M.cwd()),w.__classes!==void 0)return;n=oe(n);let c=n.map(r=>R.join(t,r));B(c,i),w.__classes={};for(let[r,m]of _)w.__classes[r]=m;w.__interfaces={};for(let[r,m]of N)w.__interfaces[r]=m;w.__typeAliases={};for(let[r,m]of k)w.__typeAliases[r]=m;w.__enums={};for(let[r,m]of L)w.__enums[r]=m;w.__constTypes={};for(let[r,m]of G)w.__constTypes[r]=m;yield Promise.all(n.map(r=>ee(r,l)))})}function ee(e,n){return I(this,null,function*(){let i=R.resolve(n,e);if(!x.existsSync(i))return;if(x.statSync(i).isDirectory()){x.readdirSync(i).forEach(h=>{ee(R.join(e,h),n)});return}if(!e.endsWith(".js"))return;let l=R.join(n,e),r=yield import(ce(l).href);w.__classDef={},Object.values(r).forEach(m=>{typeof m=="function"&&(w.__classDef[m.name]=m)})})}function B(e,n){if(e||(e=[M.cwd()]),e=oe(e),!W){let i=ne(e,n),t=s.createProgram(i,{});C=t.getTypeChecker(),i=i.map(c=>Q(c)),t.getSourceFiles().filter(c=>i.includes(Q(c.fileName))).forEach(c=>{S(`parse file: ${c.fileName}`),te(c)});for(let c of $.keys())!_.has(c)&&!N.has(c)&&!L.has(c)&&!k.has(c)&&!X.includes(c)&&!Y.includes(c)&&(S(`remove unknown typeName: ${c}`),$.delete(c));Array.from(_.values()).forEach(he),Array.from(N.values()).forEach(Te),[_,N,k].forEach(we),W=!0}return{classDefinitions:_,interfaceDefinitions:N,enumDefinitions:L,typeAliasDefinitions:k,constTypeDefinitions:G}}function ne(e,n){let i=[];return e.forEach(t=>{if(t=R.resolve(t),De(t,n)){S(`ignore excluded ${t}`);return}if(!x.existsSync(t)){console.error(`Path ${t} does not exist.`);return}if(x.statSync(t).isFile()){i.push(t);return}x.readdirSync(t).forEach(r=>i.push(...ne([R.join(t,r)],n)))}),i}function te(e){s.isClassDeclaration(e)?le(e):s.isInterfaceDeclaration(e)?pe(e):s.isEnumDeclaration(e)?ue(e):s.isTypeAliasDeclaration(e)?me(e):s.isConstTypeReference(e)?de(e):e.forEachChild(te)}function le(e){var m,h,D,E,P,p,T,v,F,y,a,d,A;let n=o(e.name);if(!n)return;let i=o((D=(h=(m=e.heritageClauses)==null?void 0:m.find(f=>f.token===s.SyntaxKind.ExtendsKeyword))==null?void 0:h.types)==null?void 0:D[0].expression),t=(P=(E=e.heritageClauses)==null?void 0:E.find(f=>f.token===s.SyntaxKind.ImplementsKeyword))==null?void 0:P.types.map(f=>o(f.expression)),l=[],c=[];for(let f of e.members)if(s.isPropertyDeclaration(f))l.push({name:o(f.name),isOptional:f.questionToken!==void 0,type:g(f),isPrivate:(p=f.modifiers)==null?void 0:p.some(u=>u.kind===s.SyntaxKind.PrivateKeyword),isStatic:(T=f.modifiers)==null?void 0:T.some(u=>u.kind===s.SyntaxKind.StaticKeyword)});else if(s.isMethodDeclaration(f))c.push({name:o(f.name),returnType:g(f),isPrivate:(v=f.modifiers)==null?void 0:v.some(u=>u.kind===s.SyntaxKind.PrivateKeyword),isStatic:(F=f.modifiers)==null?void 0:F.some(u=>u.kind===s.SyntaxKind.StaticKeyword),isAsync:(y=f.modifiers)==null?void 0:y.some(u=>u.kind===s.SyntaxKind.AsyncKeyword),args:f.parameters.map(u=>({name:o(u.name),type:g(u),isOptional:u.questionToken!==void 0}))});else if(s.isGetAccessorDeclaration(f)){let u=l.find(O=>O.name===o(f.name));u||(u={name:o(f.name),isOptional:f.questionToken===void 0,type:g(f)},l.push(u)),u.accessor=u.accessor||{},u.accessor.getter={isPrivate:((a=f.modifiers)==null?void 0:a.some(O=>O.kind===s.SyntaxKind.PrivateKeyword))||!1},u.isPrivate=u.accessor.getter.isPrivate}else if(s.isSetAccessorDeclaration(f)){let u=l.find(O=>O.name===o(f.name));u||(u={name:o(f.name),isOptional:f.questionToken===void 0,type:g(f)},l.push(u)),u.accessor=u.accessor||{},u.accessor.setter={isPrivate:((d=f.modifiers)==null?void 0:d.some(O=>O.kind===s.SyntaxKind.PrivateKeyword))||!1}}let r={name:n,superClassName:i,implementations:t,properties:l,methods:c,generics:(A=e.typeParameters)==null?void 0:A.map(f=>o(f.name))};S(`Define class: ${o(e.name)}`),_.set(n,r)}function pe(e){var m,h,D,E,P;let n=o(e.name);if(!n)return;let i=((h=(m=e.heritageClauses)==null?void 0:m.find(p=>p.token===s.SyntaxKind.ExtendsKeyword))==null?void 0:h.types.map(p=>o(p.expression)))||[],t=[],l=[],c;for(let p of e.members)s.isPropertySignature(p)?t.push({name:o(p.name),isOptional:p.questionToken!==void 0,type:g(p),isPrivate:((D=p.modifiers)==null?void 0:D.some(T=>T.kind===s.SyntaxKind.PrivateKeyword))||!1}):s.isMethodSignature(p)?l.push({name:p.name.text,returnType:g(p),isPrivate:((E=p.modifiers)==null?void 0:E.some(T=>T.kind===s.SyntaxKind.PrivateKeyword))||!1,args:p.parameters.map(T=>({name:o(T.name),type:g(T),isOptional:T.questionToken!==void 0}))}):s.isIndexSignatureDeclaration(p)&&(c=g(p));let r=N.get(n);r?(r.implementations=j(r.implementations||[],i),r.methods=j(r.methods||[],l,(p,T)=>p.name===T.name),r.properties=j(r.properties||[],t,(p,T)=>p.name===T.name),r.indexElementType=c,S(`Merge interface ${o(e.name)}`)):(r={name:n,implementations:i,methods:l,properties:t,indexElementType:c,generics:(P=e.typeParameters)==null?void 0:P.map(p=>o(p.name))},N.set(n,r),S(`Define interface ${o(e.name)}`))}function ue(e){let n=o(e.name);n&&(L.set(n,{name:n,members:e.members.map(i=>({name:o(i.name),initializer:o(i.initializer)}))}),S(`Define enum: ${o(e.name)}`))}function me(e){S(`Define typeAlias: ${o(e.name)}`),k.set(o(e.name),g(e))}function de(e){let n=e.parent.parent;s.isVariableDeclaration(n)&&n.initializer&&s.isAsExpression(n.initializer)&&G.set(o(n.name),ie(n.initializer.expression))}function ie(e){return s.isArrayLiteralExpression(e)?ye(e):s.isObjectLiteralExpression(e)?ge(e):s.isNumericLiteral(e)?"number":s.isStringLiteral(e)?"string":s.isBigIntLiteral(e)?"bigint":[s.SyntaxKind.TrueKeyword,s.SyntaxKind.FalseKeyword].includes(e.kind)?"boolean":b}function ye(e){let n=[];return e.elements.forEach(i=>{if(s.isStringLiteral(i))return n.push(o(i))}),n.length===0?b:n.length===1?n[0]:{unionMembers:n}}function ge(e){let n=[];return e.properties.map(i=>{s.isPropertyAssignment(i)?n.push({name:o(i.name),type:ie(i.initializer)}):S(`unsupported property: ${i.name}`)}),{typeLiteralMembers:n}}function se(e){$.add(e)}function g(e,n=!1){if(e.type&&!n)return K(e.type);if(!C)return console.error("TypeChecker not initialized!"),b;let i=C.getTypeAtLocation(e),t=C.typeToTypeNode(i,void 0,void 0);return t?K("type"in t?t.type:t):b}function K(e){let n={};if(e===void 0)return b;if(s.isUnionTypeNode(e))n.unionMembers=e.types.map(K);else if(s.isIntersectionTypeNode(e))n.intersectionMembers=e.types.map(K);else if(s.isLiteralTypeNode(e))n.literalValue=o(e.literal);else if(s.isTypeLiteralNode(e)){let i=[];e.members.forEach(t=>{s.isPropertySignature(t)?i.push({name:o(t.name),isOptional:t.questionToken!==void 0,type:g(t)}):s.isIndexSignatureDeclaration(t)?n.indexElementType=g(t):i.push({name:o(t.name)||"",isOptional:t.questionToken!==void 0,type:K()})}),n.typeLiteralMembers=i}else if(s.isArrayTypeNode(e))n.arrayElementType=K(e.elementType);else if(s.isFunctionTypeNode(e))n.isFunction=!0;else if(s.isTypeReferenceNode(e))if(se(o(e.typeName)),e.typeArguments)n.generics=[o(e.typeName),...e.typeArguments.map(i=>K(i))];else return o(e.typeName);else{if(s.isIndexedAccessTypeNode(e))return g(e,!0);if(s.isThisTypeNode(e))return g(e);if(s.isParenthesizedTypeNode(e))return g(e);if(s.isConditionalTypeNode(e))return g(e);if(s.isTypeQueryNode(e))return g(e);if(s.isConstructorTypeNode(e))n.isConstructor=!0;else if(s.isTupleTypeNode(e))n.tupleMembers=e.elements.map(K);else{if(Object.keys(J).includes(String(e.kind)))return J[e.kind]||b;if(s.isOptionalTypeNode(e))Object.assign(n,g(e)),n.isOptionalInTuple=!0;else if(s.isNamedTupleMember(e))Object.assign(n,g(e));else return s.isTypeOperatorNode(e)&&e.operator===s.SyntaxKind.KeyOfKeyword,g(e,!0)}}return n}var j=(e,n,i)=>[...(e==null?void 0:e.filter(t=>!(n!=null&&n.some(l=>(i||(()=>l===t))(l,t)))))||[],...n||[]];function U(e,n){if(e!==void 0&&e!==b)return typeof e=="string"?$.has(e)||n!=null&&n.includes(e)?e:void 0:e}function he(e){var n,i;(n=e.methods)==null||n.forEach(t=>ae(t,e.generics)),(i=e.properties)==null||i.forEach(t=>re(t,e.generics))}function Te(e){var n,i;(n=e.methods)==null||n.forEach(t=>ae(t,e.generics)),(i=e.properties)==null||i.forEach(t=>re(t,e.generics))}function re(e,n){e.type=U(e.type,n)}function ae(e,n){var i;(i=e.args)==null||i.forEach(t=>t.type=U(t.type,n)),e.returnType=U(e.returnType,n)}function o(e){if(!e)return e;if(e.end<0)return e.text;try{return s.isQualifiedName(e)?o(e.right):e.getText()}catch(n){return e.text}}function q(e){e&&Object.entries(e).forEach(n=>{let[i,t]=n;t instanceof Array&&t.length===0||t===!1||t===void 0?delete e[i]:t.constructor===Array?t.forEach(q):t.constructor===Object&&q(t)})}function we(e){for(let n of e.values())q(n)}function De(e,n){return n?(n=n instanceof Array?n:[n],n.some(i=>(i instanceof RegExp||(i=new RegExp(i.replace(/\./g,"\\.").replace(/\*/g,".*"))),e.match(i)))):!1}function Q(e,n=M.cwd()){return H(e).replace(H(n)+"/","")}function H(e){let n=R.sep;return e.split(n).join("/")}function oe(e){return e instanceof Array?e:[e]}function S(e){z.OUTPUT_LOG&&console.log(e)}function fe(e){let{sourcePaths:n,exclude:i,forEnabledClassOnly:t,outputLog:l}=e;if(l&&(z.OUTPUT_LOG=!0),!n)throw new Error("need provide source paths for reflect loader");l&&console.log(`sourcePaths: ${n}, exclude: ${i}, forEnabledClassOnly: ${t}`);let{classDefinitions:c,interfaceDefinitions:r,enumDefinitions:m,typeAliasDefinitions:h}=B(n,i),D=[],E=[];function P(y){let a=c.get(y),d=[];return a?(a.superClassName&&d.push(a.superClassName),d.push(...a.implementations||[])):(a=r.get(y),a?d.push(...a.implementations||[]):(a=h.get(y),a&&d.push(...a.implementations||[]))),d.flatMap(A=>[A,...P(A)])||[]}function p(y,a){return P(y.name).includes(a)}function T(y){if(V.isClassDeclaration(y)&&y.name!==void 0){let a=y.name.text,d=c.get(a);if(!a||!d||t&&!p(d,"EnableReflect"))return;E.push(`Reflect.__classDef = Object.assign(Reflect.__classDef || {}, { ${a} })`);return}y.forEachChild(T)}function v(){let y=[];return c.forEach((a,d)=>{t&&!p(a,"EnableReflect")||y.push(`Reflect.__classes = Object.assign(Reflect.__classes || {}, { ${d}: ${JSON.stringify(a)} })`)}),r.forEach((a,d)=>{t&&!p(a,"EnableReflect")||y.push(`Reflect.__interfaces = Object.assign(Reflect.__interfaces || {}, { ${d}: ${JSON.stringify(a)} })`)}),m.forEach((a,d)=>{y.push(`Reflect.__enums = Object.assign(Reflect.__enums || {}, { ${d}: ${JSON.stringify(a)} })`)}),h.forEach((a,d)=>{y.push(`Reflect.__typeAliases = Object.assign(Reflect.__typeAliases || {}, { ${d}: ${JSON.stringify(a)} })`)}),y.join(`
|
|
2
|
+
`)}return{outputAllMetas:v,transform:(y,a)=>{if(a.endsWith(".ts")&&!(typeof n=="string"?[n]:n).every(d=>!a.startsWith(d))){l&&console.log(`transform id: ${a}`);try{let d=V.createSourceFile(a,y,V.ScriptTarget.Latest,!1);return D.length=0,E.length=0,T(d),`${D.join(";")};${y};${E.join(";")}`}catch(d){return console.error(`[reflect-parser-plugin] Error processing ${a}:`,d),null}}}}}var Re=process.cwd().replace(/\\/g,"/")+"/";function Me(e){let n=fe(e);return{name:"reflect-parser-plugin",enforce:"pre",transform:(i,t)=>(t=t.replace(Re,""),t===e.entry?`${n.outputAllMetas()}
|
|
3
|
+
${i}`:n.transform(i,t))}}export{z as DEBUG_CONFIG,B as parseSource,fe as reflectLoader,Me as reflectParserPlugin,Pe as setupReflectTypes,ee as updateReflectModules};
|
package/package.json
CHANGED