ts-ref-kit 1.1.3 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +5 -5
- package/dist/cjs/parser/index.cjs +2 -2
- package/dist/esm/index.js +5 -5
- package/dist/esm/parser/index.js +3 -3
- package/package.json +15 -4
- package/types/parser/reflect-parser-plugin.d.ts +2 -2
- package/types/parser/reflect-parser.d.ts +2 -2
- package/types/raw.d.ts +11 -10
- package/types/reflect-json/decorate.d.ts +4 -5
- package/types/reflect-json/json-translation.d.ts +33 -10
- package/types/reflect-json/reflect-extension.d.ts +7 -7
- package/types/reflect-json/types.d.ts +2 -10
- package/types/reflect-json/utils.d.ts +7 -6
- package/types/reflect-types/ClassDefinition.d.ts +5 -5
- package/types/reflect-types/InterfaceDefinition.d.ts +3 -4
- package/types/reflect-types/MethodDefinition.d.ts +8 -10
- package/types/reflect-types/PropertyDefinition.d.ts +12 -8
- package/types/reflect-types/TypeDefinition.d.ts +6 -2
- package/types/reflect-types/ValidateResult.d.ts +4 -2
- package/types/reflect-types/function-validate.d.ts +1 -2
- package/types/reflect-types/instance-validate.d.ts +5 -4
- package/types/reflect-types/package.d.ts +3 -2
- package/types/reflect-types/reflect-context.d.ts +11 -5
- package/types/reflect-types/special-types.d.ts +8 -0
- package/types/reflect-types/value-validate.d.ts +5 -2
- package/types/parser/path-match.d.ts +0 -1
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var
|
|
2
|
-
caused by: `):this.errorMessage}};o(
|
|
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
|
-
${
|
|
5
|
-
${l.errorStackFlow}`);return a},"checkValue"),
|
|
1
|
+
var A=Object.defineProperty,Dt=Object.defineProperties,ht=Object.getOwnPropertyDescriptor,Mt=Object.getOwnPropertyDescriptors,xt=Object.getOwnPropertyNames,He=Object.getOwnPropertySymbols;var et=Object.prototype.hasOwnProperty,wt=Object.prototype.propertyIsEnumerable;var Xe=(e,t,n)=>t in e?A(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,O=(e,t)=>{for(var n in t||(t={}))et.call(t,n)&&Xe(e,n,t[n]);if(He)for(var n of He(t))wt.call(t,n)&&Xe(e,n,t[n]);return e},Se=(e,t)=>Dt(e,Mt(t)),o=(e,t)=>A(e,"name",{value:t,configurable:!0});var Rt=(e,t)=>{for(var n in t)A(e,n,{get:t[n],enumerable:!0})},St=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of xt(t))!et.call(e,r)&&r!==n&&A(e,r,{get:()=>t[r],enumerable:!(i=ht(t,r))||i.enumerable});return e};var Pt=e=>St(A({},"__esModule",{value:!0}),e);var Sn={};Rt(Sn,{AfterSerialized:()=>Tn,IgnoreSerialization:()=>fn,Lazy:()=>an,PropertyWrapper:()=>S,ReflectClass:()=>At,ReflectValidate:()=>Xt,Serialized:()=>yt,SerializedClass:()=>cn,SerializedName:()=>ln,TypeDefinition:()=>ge,ValidateResult:()=>k,asBoolean:()=>_e,asNumber:()=>De,asString:()=>N,assertType:()=>vt,callDecoratedMethod:()=>Be,createInstance:()=>ze,defineDecoratedProperty:()=>Le,deserialize:()=>xe,deserializeArray:()=>dt,deserializeFrom:()=>Tt,done:()=>dn,failedResult:()=>f,getAnyValue:()=>B,getClassByName:()=>oe,getClassDefinition:()=>y,getDecoratedProperty:()=>pt,getDecoratedPropertyValue:()=>Ge,getEnumDefinition:()=>v,getEnumNames:()=>$t,getEnumValues:()=>Ft,getErrorTraceMessages:()=>Pe,getInterfaceDefinition:()=>j,getOrSetValue:()=>on,getSerializeSettings:()=>pn,getTypeAliasDefinition:()=>Ie,getTypeDef:()=>D,hasDecoratedMethod:()=>sn,initReflectContext:()=>_t,isDictionary:()=>ve,isNullable:()=>zt,isType:()=>st,itSelf:()=>he,mapAllProperties:()=>bn,registerMappable:()=>Re,registerSerializedProperty:()=>K,safeCall:()=>nn,serialize:()=>un,serializeTo:()=>qe,serializeToData:()=>Me,setAnyValue:()=>M,setDefaultIgnored:()=>Ue,successResult:()=>p,validateArray:()=>Qt,validateDictionary:()=>Ht,validateFunctionArgument:()=>rn,validateInstance:()=>L});module.exports=Pt(Sn);var C=class C{constructor(t,n,i,r){this.success=t;this.errorCode=n;this.errorDesc=i;this.cause=r}static failure(t,n,i){return new C(!1,t,n,i)}get errorStackFlow(){return this.cause?[this.errorMessage,this.cause.errorStackFlow].join(`
|
|
2
|
+
caused by: `):this.errorMessage}get errorMessage(){return`[Err${this.errorCode}] ${this.errorDesc}`}};o(C,"ValidateResult"),C.success=new C(!0);var k=C,p=k.success,f=k.failure;function Pe(e){let t=o(n=>n.errorMessage?[n.errorMessage,...n.cause?t(n.cause):[]]:[],"getAllTraceMessages");return t(e).join(`
|
|
3
|
+
-> `)}o(Pe,"getErrorTraceMessages");var je=class je{constructor(t){this.rawDef=t}get name(){return this.rawDef.name}get isReadonly(){return this.rawDef.isReadonly}get isOptional(){return this.rawDef.isOptional}get isPrivate(){return this.rawDef.isPrivate}get isStatic(){return this.rawDef.isStatic}get accessor(){return this.rawDef.accessor}get type(){return d(this.rawDef.type)}get rawDefinition(){return P(this.rawDef)}};o(je,"PropertyDefinition");var E=je;function q(e){return new E(e)}o(q,"fillProperty");var Z=class Z extends E{static create(t,n){let i=w(Z,t);return i.genericContext=n,i}get type(){return d(this.rawDef.type,this.genericContext)}};o(Z,"GenericProperty");var U=Z;var Oe=class Oe{constructor(t){this.rawDef=t}get name(){return this.rawDef.name}get returnType(){return d(this.rawDef.returnType)}get args(){var t;return((t=this.rawDef.args)==null?void 0:t.map(n=>({name:n.name,type:d(n.type),isOptional:n.isOptional})))||[]}get isPrivate(){return this.rawDef.isPrivate}get isStatic(){return this.rawDef.isStatic}get isAsync(){return this.rawDef.isAsync}};o(Oe,"MethodDefinition");var Y=Oe;function X(e){return new Y(e)}o(X,"fillMethod");var H=class H extends Y{static create(t,n){let i=w(H,t);return i.genericContext=n,i}get args(){var t;return((t=this.rawDef.args)==null?void 0:t.map(n=>({name:n.name,type:d(n.type,this.genericContext),isOptional:n.isOptional})))||[]}get returnType(){return d(this.rawDef.returnType,this.genericContext)}};o(H,"GenericMethod");var Q=H;function w(e,t){let n=Object.create(e.prototype);return Object.assign(n,t),n}o(w,"createInstance");function ee(e,t){e.properties=t.properties.map(n=>U.create(n,e.genericContext)),e.methods=t.methods.map(n=>Q.create(n,e.genericContext))}o(ee,"buildPropertiesAndMethods");function Ce(e,t){let n={};return e.forEach(i=>{let[r,s]=t(i);n[r]=s}),n}o(Ce,"toDictionary");function te(e,t){return(e==null?void 0:e.map(t).filter(n=>n!==void 0))||[]}o(te,"mapNotNull");function I(e,t){if(e!==void 0)return e[t]}o(I,"getValue");function P(e){return JSON.parse(JSON.stringify(e))}o(P,"copy");var Ee=class Ee{constructor(t){this.name=t.name,this.members=new Map,t.members.forEach(n=>{let i=n.initializer===void 0?{name:"number"}:{literalValue:n.initializer};this.members.set(n.name,i)})}get type(){return{name:this.name,unionMembers:Array.from(this.members.values())}}get names(){return Array.from(this.members.keys())}};o(Ee,"EnumDefinition");var $=Ee;var jt=["Partial","Required","Readonly","Pick","Omit","Extract","Exclude"];function tt(e){return typeof e=="string"&&jt.includes(e)}o(tt,"isSpecialType");function Ot(e,t,n,i){switch(e){case"Partial":t=Ct(n);break;case"Required":t=Et(n);break;case"Readonly":t=It(n);break;case"Pick":t=rt(n,i);break;case"Omit":t=ot(n,i);break;case"Extract":t=Vt(n,i);break;case"Exclude":t=Nt(n,i);break}return t}o(Ot,"getSpecialType");function nt(e,t){let[n,i]=t,r,s=["Pick","Omit","Extract","Exclude"].includes(e)?["T"]:["T","K"];return r=Ot(e,r,n,i),r?{name:e,type:r,genericParams:s,rawType:e}:void 0}o(nt,"getSpecialTypeAlias");function F(e,t){return e.typeLiteralMembers?{typeLiteralMembers:e.typeLiteralMembers.map(n=>{let i=P(n.rawDefinition);return t(i),new E(i)})}:e.unionMembers?{unionMembers:e.unionMembers.map(n=>F(n,t))}:e.intersectionMembers?{intersectionMembers:e.intersectionMembers.map(n=>F(n,t))}:void 0}o(F,"getMappedType");function it(e,t){if(e.typeLiteralMembers)return{typeLiteralMembers:e.typeLiteralMembers.map(n=>t(n)?P(n):void 0).filter(n=>!!n)}}o(it,"getFilterKeyType");function Ct(e){return F(e,t=>t.isOptional=!0)}o(Ct,"getPartialType");function Et(e){return F(e,t=>t.isOptional=!1)}o(Et,"getRequiredType");function It(e){return F(e,t=>t.isReadonly=!0)}o(It,"getReadonlyType");function rt(e,t){var i;let n=(i=t.unionMembers)==null?void 0:i.map(r=>r.name);if(e.typeLiteralMembers)return it(e,r=>r.name===t.literalValue||(n==null?void 0:n.includes(r.name)))}o(rt,"getPickType");function ot(e,t){var i;let n=(i=t.unionMembers)==null?void 0:i.map(r=>r.name);if(e.typeLiteralMembers)return it(e,r=>!(r.name===t.literalValue||n!=null&&n.includes(r.name)))}o(ot,"getOmitType");function Vt(e,t){if(e.typeLiteralMembers&&t.typeLiteralMembers){let n={unionMembers:t.typeLiteralMembers.map(i=>({literalValue:i.name}))};return rt(e,n)}}o(Vt,"getExtractType");function Nt(e,t){if(e.typeLiteralMembers&&t.typeLiteralMembers){let n={unionMembers:t.typeLiteralMembers.map(i=>({literalValue:i.name}))};return ot(e,n)}}o(Nt,"getExcludeType");var _=new Map,ne=new Map,ie=new Map,re=new Map,Jt=new Map,At=o((e=>{Jt.set(e.name,e)}),"ReflectClass"),kt={string:String,number:Number,boolean:Boolean,object:Object},T=Reflect;function oe(e){var t;return((t=y(e))==null?void 0:t.jsClass)||kt[e]}o(oe,"getClassByName");function y(e){var t,n,i;switch(typeof e){case"object":return y(e.constructor);case"function":let r=y(e.name);if(r)return r;let s=Array.from(_.values()).find(l=>l.jsClass===e);if(s)return s;let a=(t=Object.entries(T.__classDef||{}).find(([l,u])=>u===e))==null?void 0:t[0];return a?y(a):void 0;case"string":let c=e;if(!_.has(c)){let l=(n=T.__classes)==null?void 0:n[c];if(!l)return;let u=(i=T.__classDef)==null?void 0:i[c];_.set(c,new V(Se(O({},l),{jsClass:u})))}return _.get(c)}}o(y,"getClassDefinition");function j(e){var t;if(!ne.has(e)){let n=(t=T.__interfaces)==null?void 0:t[e];if(!n)return;ne.set(e,new R(n))}return ne.get(e)}o(j,"getInterfaceDefinition");function v(e){var t;if(!ie.has(e)){let n=(t=T.__enums)==null?void 0:t[e];if(!n)return;ie.set(e,new $(n))}return ie.get(e)}o(v,"getEnumDefinition");function $t(e){var t;return((t=v(e))==null?void 0:t.names)||[]}o($t,"getEnumNames");function Ft(e){let t=Object.entries(e)[0];if(!t)return[];let[n,i]=t,r=v(n);return r?r.names.map(s=>i[s]):Array.from(Object.keys(i))}o(Ft,"getEnumValues");function Ie(e,t){var i;if(tt(e))return!t||!t[0]?void 0:nt(e,[t[0],t[1]]);if(!re.has(e)){let r=(i=T.__typeAliases)==null?void 0:i[e];if(!r||!r.type)return;re.set(e,{name:e,rawType:r.type,type:d(r.type),genericParams:r.genericParams})}let n=P(re.get(e));if(n.genericParams&&t){let r={};for(let s=0;s<n.genericParams.length;s++){let a=n.genericParams[s];r[a]=t[s]}n.type=d(n.rawType,r,t)}return n}o(Ie,"getTypeAliasDefinition");function _t(){T.__classes&&Object.entries(T.__classes).map(([e,t])=>{var i;let n=(i=T.__classDef)==null?void 0:i[e];n&&_.set(e,new V(Se(O({},t),{jsClass:n})))}),T.__interfaces&&Object.entries(T.__interfaces).map(([e,t])=>ne.set(e,new R(t))),T.__enums&&Object.entries(T.__enums).map(([e,t])=>ie.set(e,new $(t))),T.__typeAliases&&Object.entries(T.__typeAliases).map(([e,t])=>{re.set(e,{name:e,rawType:t.type,type:d(t.type),genericParams:t.genericParams})}),["__classDef","__classes","__interfaces","__enums","__typeAliases","initReflectContext"].forEach(e=>delete T[e])}o(_t,"initReflectContext");var ae=class ae{constructor(t){var n,i;this.name=t.name,this._implementationNames=t.implementations||[],this.methods=((n=t.methods)==null?void 0:n.map(X))||[],this.properties=((i=t.properties)==null?void 0:i.map(q))||[],this.generics=t.genericsParams}get implementations(){return this._implementations||(this._implementations=te(this._implementationNames,t=>{var n;return j(t)||((n=y(t))==null?void 0:n.type)||h(t)})),this._implementations}get allImplementations(){if(this._allImplementations===void 0){let t=new Set(this.implementations);this.implementations.forEach(n=>{n instanceof ae?n.allImplementations.forEach(i=>t.add(i)):t.add(n)}),this._allImplementations=Array.from(t)}return this._allImplementations}get type(){let t={};return this.allImplementations.forEach(n=>{let r=("type"in n?n.type:n).typeLiteralMembers;r==null||r.forEach(s=>t[s.name]=s)}),this.properties.forEach(n=>t[n.name]=n),{name:this.name,typeLiteralMembers:Object.values(t)}}toString(){return`interface ${this.name}`}};o(ae,"InterfaceDefinition");var R=ae,ce=class ce extends R{static create(t,n){let i=w(ce,t);i.genericArgs=n;let r=i;return r.buildGenericContext(),ee(r,t),r}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((n,i)=>this.genericContext[n]=this.genericArgs[i])}};o(ce,"GenericInterface");var se=ce;var Ve=class Ve{constructor(t){var n,i;this.name=t.name,this.superClassName=t.superClassName||"Object",this.superClass=y(this.superClassName),this._implementationNames=t.implementations||[],this.methods=((n=t.methods)==null?void 0:n.map(X))||[],this.properties=((i=t.properties)==null?void 0:i.map(q))||[],this.jsClass=t.jsClass,this.generics=t.genericsParams}get allMethods(){let t={};if(this.superClassName!=="Object"){let n=y(this.superClassName);n&&Object.assign(t,O({},n.allMethods))}return Object.assign(t,O({},Ce(this.methods,n=>[n.name,n]))),t}get allProperties(){var t;return Object.assign(((t=this.superClass)==null?void 0:t.allProperties)||{},Ce(this.properties,n=>[n.name,n]))}get implementations(){return this._implementations?this._implementations:te(this._implementationNames,t=>j(t)||h(t))}get allImplementations(){var t,n;if(this._allImplementations===void 0){let i=new Set(this.implementations);this.implementations.forEach(r=>{r instanceof R?r.allImplementations.forEach(s=>i.add(s)):i.add(r)}),(n=(t=this.superClass)==null?void 0:t.allImplementations)==null||n.forEach(r=>i.add(r)),this._allImplementations=Array.from(i)}return this._allImplementations}getProperty(t){return this.properties.find(n=>n.name===t)}get type(){var n,i;let t={};return(i=(n=this.superClass)==null?void 0:n.type.typeLiteralMembers)==null||i.forEach(r=>t[r.name]=r),this.properties.forEach(r=>t[r.name]=r),{name:this.name,classDefinition:this,typeLiteralMembers:Object.values(t)}}isSubClassOf(t){var n;return this.name===t||(n=this.superClass)!=null&&n.isSubClassOf(t)?!0:this.implementations.map(i=>i.name).includes(t)}isSuperClassOf(t){if(this.name===t)return!0;let n=y(t);return n?n.isSubClassOf(this.name):!1}toString(){return`class ${this.name}`}};o(Ve,"ClassDefinition");var V=Ve,fe=class fe extends V{static create(t,n){let i=w(fe,t);i.genericArgs=n;let r=i;return r.buildGenericContext(),ee(r,t),r}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((n,i)=>this.genericContext[n]=this.genericArgs[i])}};o(fe,"GenericClass");var le=fe;function D(e){if(typeof e=="string"){let t=Lt(e);if(typeof t=="string"){let n=t.match(/\"(.+)\"$/)||t.match(/\'(.+)\'$/);if(n!=null&&n[1])return{literalValue:n[1]}}return typeof t=="string"?h(e):D(t)}return Array.isArray(e)?h(e[0],e.slice(1).map(D)):"array"in e?{arrayElementType:D(e.array)}:"union"in e?{unionMembers:e.union.map(D)}:"intersection"in e?{intersectionMembers:e.intersection.map(D)}:"tuple"in e?{tupleMembers:e.tuple.map(D)}:e}o(D,"getTypeDef");function vt(e,t,n=5){let i=b(e,D(t),n);if(!i.success){console.error(`assert failed with type: ${t}
|
|
4
|
+
${i.errorStackFlow}`);debugger;throw new Error(`assert failed with type: ${t}, ${i.errorStackFlow}`)}return e}o(vt,"assertType");function zt(e){return st(null,e)}o(zt,"isNullable");function st(e,t){return b(e,D(t),3).success}o(st,"isType");function Lt(e){let t=e.trim(),n=o(u=>u.trim(),"trim"),i=o(u=>u.length!=0,"notEmpty"),r=t.split("|").map(n).filter(i);if(r.length>1)return{union:r};let s=t.split("&").map(n).filter(i);if(s.length>1)return{intersection:s};let a=t.match(/^\[(.*)]$/);if(a)return{tuple:a[1].split(",").map(n).filter(i)};let c=t.match(/^(.+)\[]$/);if(c)return{array:c[1].trim()};let l=t.match(/^([^<]+)<(.+)>$/);if(l){let u=l[1].trim(),x=l[2].split(",").map(n).filter(i);return[u,...x]}return t}o(Lt,"parseType");var Ne=[Promise,Date,Map,Set,Error,Function];function b(e,t,n=1){switch(!0){case t.name==="undefined":return e===void 0?p:f(100,`declared as ${m(t)} but actually not`);case ct(t):return p;case be(t):return e instanceof Object?z(e,t.classDefinition.name,n):f(200,`declared as ${m(t)} but actually not an object`);case ue(t):return Bt(e,t,n);case Te(t):return Kt(e,t,n);case ye(t):for(let i of t.unionMembers||[])if(b(e,i,n).success)return p;return f(320,`declared as ${m(t)} but all value not match`);case de(t):for(let i of t.intersectionMembers||[]){let r=b(e,i,n);if(!r.success)return f(330,`declared as ${m(t)} but all value not match`,r)}return p;case Ae(t):return Gt(e,t,n);case pe(t):switch(typeof e){case"string":return e===Zt(t.literalValue)?p:f(110,`declared as string ${m(t)} but value not match`);case"number":return e===Number(t.literalValue)?p:f(111,`declared as number ${m(t)} but value not match`);case"bigint":return e===BigInt(t.literalValue)?p:f(112,`declared as bigint ${m(t)} but value not match`);case"boolean":return e===!!t.literalValue?p:f(113,`declared as boolean ${m(t)} but value not match`);default:return t.literalValue==="null"&&e===null?p:e===t.literalValue?p:f(114,`declared as ${m(t)} but value not match`)}case me(t):return Wt(e,t,n);case t.isFunction:case t.isConstructor:return typeof e=="function"?p:f(150,`declared as ${m(t)} but actually not`);case Je(t):return e==null?f(120,`declared as ${m(t)} but actually ${e}`):typeof e===t.name?p:f(121,`declared as ${m(t)} but actually ${typeof e}`);default:return Ut(e,t,n)}}o(b,"validateValue");function Bt(e,t,n=1){if(!Array.isArray(e))return f(300,`declared as ${m(t)} but actually not`);if(n===0)return p;for(let i=0;i<e.length;i++){let r=e[i],s=b(r,t.arrayElementType||g,n-1);if(!s.success)return f(301,`declared as ${m(t)} but [${i}] not match`,s)}return p}o(Bt,"validateArrayValue");function Gt(e,t,n=1){if(e===null)return f(400,"declared as indexedType but actually is null");if(typeof e=="object")return f(410,`declared as indexedType but actually is ${typeof e}`);for(let i of Object.values(e)){let r=b(i,t.indexElementType,n-1);if(!r.success)return f(420,`declared as ${m(t)} but actually not match`,r)}return p}o(Gt,"validateIndexedValue");function Kt(e,t,n=1){if(!Array.isArray(e))return f(310,`declared as ${m(t)} but actually not a tuple`);if(n===0)return p;let i=0;for(let r of t.tupleMembers){let s=e[i++];if(r.isOptionalInTuple&&s===void 0)continue;let a=b(e[i],r,n);if(!a.success)return f(311,`declared as ${m(t)} but not all values in tuple match`,a)}return p}o(Kt,"validateTupleValue");function Wt(e,t,n=1){if(e instanceof Object){for(let i of t.typeLiteralMembers||[]){if(i.isStatic)return p;if(i.name.startsWith("[")&&i.name.endsWith("]"))return p;if(n===0)return p;let r=i.type||g;i.isOptional&&(r={unionMembers:[r,{name:"undefined"}]});let s=I(e,i.name),a=b(s,r,n-1);if(!a.success)return f(211,`declared ${i.name} as ${m(r)}, but not match`,a)}return p}else return f(210,`declared as ${m(t)} but not an object`)}o(Wt,"validateProperties");function Ut(e,t,n=1){let i=typeof t=="string"?t:t.name;if(!i)return p;if(e===void 0)return f(130,`declared as ${m(t)} but actually undefined`);if(e===null)return i==="null"?p:f(131,`declared as ${m(t)} but actually null`);for(let s of Ne)if(i===s.name)return e instanceof s?p:f(132,`declared as ${m(t)} but actually ${e.constructor.name}`);if(e instanceof Object&&!at(e,i))return f(133,`declared as ${m(t)} but actually not instance of it`);if(n==0)return p;let r=b(e,h(i),n);return r.success?p:f(134,`declared as ${m(t)} but actually not match`,r)}o(Ut,"validateSimpleValue");function z(e,t,n=3){let i=D(t);return i.classDefinition&&!at(e,i.classDefinition.name)?f(201,`declared as instance of ${t} but actually not`):t!=="any"&&i===g?f(202,`${t} not defined`):(delete i.classDefinition,b(e,i,n))}o(z,"validateClassInstance");function at(e,t){if(e===void 0||e.constructor.name===t)return!0;let n=y(t);if(!n)return!0;if(n.jsClass)return e instanceof n.jsClass;let i=y(e);return i?i.isSubClassOf(n.name):!1}o(at,"valueInstanceOf");function Zt(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(Zt,"trimQuotes");function m(e){var t,n,i,r;return typeof e=="string"?e:be(e)?e.classDefinition.name:ue(e)?(((t=e.arrayElementType)==null?void 0:t.name)||"unknown")+"[]":e.isConstructor?"Class":e.isFunction?"Function":me(e)?"Object":Te(e)?`(${e.tupleMembers.map(m).join(",")})`:ye(e)?((n=e.unionMembers)==null?void 0:n.map(m).join(" | "))||"unknown":de(e)?((i=e.intersectionMembers)==null?void 0:i.map(m).join(" & "))||"unknown":pe(e)?e.literalValue:Ae(e)?`{ [key]: ${((r=e.indexElementType)==null?void 0:r.name)||"unknown"} }`:e.name||"unknown"}o(m,"getTypeDisplayName");var g={name:"any"},qt={name:"null"},lt=["string","number","boolean","bigint","symbol"];function ct(e){return!!(e.name&&["any","void","unknown"].includes(e.name))}o(ct,"isIgnoredType");function Je(e){return!!(e.name&<.includes(e.name))}o(Je,"isPrimitiveType");function ue(e){return!!e.arrayElementType}o(ue,"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 Te(e){return!!e.tupleMembers}o(Te,"isTupleType");function be(e){return!!e.classDefinition}o(be,"isClassDefinition");function Yt(e){return!!e.generics}o(Yt,"hasGenerics");function Ae(e){return!!e.indexElementType}o(Ae,"isIndexType");function h(e,t){if(e==="any"||e==="Any"||e==="unknown"||e==="")return g;if(e==="null")return qt;let n=y(e);if(n)return t?le.create(n,t).type:n.type;if(lt.includes(e))return{name:e};if(Ne.map(a=>a.name).includes(e))return{name:e,generics:t};let i=j(e);if(i)return t?se.create(i,t).type:i.type;let r=v(e);if(r)return r.type;let s=Ie(e,t);return s?s.type:g}o(h,"getTypeDefinition");var ke=new Map;function d(e,t,n){let i=$e(e);if(e===void 0)return g;let r=ke.get(i);if(r)return r;let s={};if(ke.set(i,s),typeof e=="string")s=(t==null?void 0:t[e])||h(e,n)||g;else if(e.arrayElementType)Object.assign(s,{arrayElementType:d(e.arrayElementType,t)});else if(e.unionMembers)Object.assign(s,{unionMembers:e.unionMembers.map(a=>d(a,t))});else if(e.intersectionMembers)Object.assign(s,{intersectionMembers:e.intersectionMembers.map(a=>d(a,t))});else if(e.tupleMembers)Object.assign(s,{tupleMembers:e.tupleMembers.map(a=>d(a,t))});else if(e.generics){let a=e.generics[0],c=e.generics.slice(1).map(l=>d(l,t));Object.assign(s,d(a,t,c))}else e.indexElementType&&Object.assign(s,{indexElementType:d(e.indexElementType,t)});return Object.keys(s).length===0&&(s=g),ke.delete(i),s}o(d,"fillType");function $e(e){return e===null?"null":e===void 0?"undefined":typeof e!="object"?JSON.stringify(e):Array.isArray(e)?"["+e.map($e).join(",")+"]":"{"+Object.keys(e).sort().map(n=>JSON.stringify(n)+":"+$e(e[n])).join(",")+"}"}o($e,"stableStringify");var ge={isPrimitiveType:Je,isArrayType:ue,isLiteralType:pe,isTypeLiteralType:me,isUnionType:ye,isIntersectionType:de,isTupleType:Te,isClassDefinition:be,hasGenerics:Yt};function L(e,t,n=3){return t=t||e.constructor.name,z(e,t,n)}o(L,"validateInstance");function Qt(e,t,n=1){for(let i=0;i<e.length;i++){let r=L(e[i],t,n);if(!r.success)return f(220,`declared as instance of ${t}[] but [${i}] actually not`,r)}return p}o(Qt,"validateArray");function Ht(e,t,n=1){let i=Object.entries(e);for(let r=0;r<i.length;r++){let[s,a]=i[r],c=L(a,t,n);if(!c.success)return f(230,`declared as instance of Dictionary<${t}> but [${s}] actually not`,c)}return p}o(Ht,"validateDictionary");var ft=Symbol("VALIDATE_WRAPPER"),Xt=o((e,t,n)=>en(e,t,n),"ReflectValidate");function en(e,t,n){let i=n.value;if(typeof i!="function"||I(i,ft))return;let r=o(()=>{var l,u;return(u=(l=y(e))==null?void 0:l.methods)==null?void 0:u.find(x=>x.name===t)},"getMethodDef"),s=o(l=>ut(e,r(),l),"validateArgs"),a=o(l=>tn(e,r(),l),"validateReturn"),c=o(function(...l){s(l);let u=i.call(this,...l);return a(u)},"newFunc");c[ft]=i,n.value=c}o(en,"wrapValidateMethod");function ut(e,t,n){var i;(i=t==null?void 0:t.args)==null||i.forEach((r,s)=>{let a=n==null?void 0:n[s];if(a===void 0){if(r.isOptional)return;throw new Error(`Illegal arguments for ${Fe(e.constructor.name,t)}: ${r.name} is not optional`)}let c=b(a,r.type||g,1);if(!c.success)throw console.error("validateResult",c),new Error(`Illegal arguments for ${Fe(e.constructor.name,t)}: ${r.name}: ${r.name} ${c.errorMessage}`)})}o(ut,"validateMethodParams");function tn(e,t,n){var s;if(!t)return n;let i=o((a,c)=>{let l=b(a,c,5);if(!l.success)throw console.error(l.errorStackFlow),new Error(`result for ${Fe(e.constructor.name,t)} doesn't match type ${c.name}:
|
|
5
|
+
${l.errorStackFlow}`);return a},"checkValue"),r=t.returnType;return r.name==="Promise"&&(r=((s=r.generics)==null?void 0:s[0])||g),n instanceof Promise?n.then(a=>i(a,r||g)):i(n,r||g)}o(tn,"validateMethodReturnValue");function Fe(e,t){var n;return`${e}.${t.name}(${(n=t.args)==null?void 0:n.map(i=>i.name).join(", ")})`}o(Fe,"getMethodDescription");function nn(e,t,...n){let i=y(e);if(!i)return;let r=i.allMethods[t];if(r)return ut(e,r,n),I(e,t).apply(e,n)}o(nn,"safeCall");function rn(e){let{funcName:t,optionsObj:n,value:i,argName:r,type:s,optional:a}=e,c=i||n&&I(n,r);if(c===void 0){if(a)return;throw Error(`Illegal arguments for ${t}: ${r} is undefined`)}if(["string","number","boolean","bigint"].includes(s)){if(typeof c!==s)throw Error(`Illegal arguments for ${t}: ${r} is not a ${s}`);return}if(typeof c!="object")throw Error(`Illegal arguments for ${t}: ${r} is not an object`);if(c===null)throw Error(`Illegal arguments for ${t}: ${r} is null`);let l=z(c,s);if(!l.success)throw Error(`Illegal arguments for ${t}: ${l.errorMessage}`)}o(rn,"validateFunctionArgument");var nr=require("reflect-metadata");function _e(e){return String(e).toLocaleLowerCase()==="false"?!1:!!e}o(_e,"asBoolean");function N(e){return e==null||Number.isNaN(e)||e instanceof Date&&String(e)==="Invalid Date"?"":typeof e=="symbol"?e.description||"":String(e)}o(N,"asString");function De(e){return e?e instanceof Date?e.getDate():Number(e):0}o(De,"asNumber");function M(e,t,n){e[t]=n}o(M,"setAnyValue");function B(e,t){return e[t]}o(B,"getAnyValue");function on(e,t,n){let i=e[t];if(i!==void 0)return i;let r=n();return M(e,t,r),r}o(on,"getOrSetValue");function ve(e){return typeof e=="object"&&e!==null&&e.constructor===Object}o(ve,"isDictionary");function ze(e,t){let n=Object.create(e.prototype);return Object.assign(n,t||{}),n}o(ze,"createInstance");function Le(e){return((t,n)=>Reflect.defineMetadata(e,n,t.constructor))}o(Le,"defineDecoratedProperty");function Be(e,t,...n){let i=Ge(e,t);if(i!==void 0&&i instanceof Function)return i.apply(e,n)}o(Be,"callDecoratedMethod");function sn(e,t){let n=Ge(e,t);return n!==void 0&&n instanceof Function}o(sn,"hasDecoratedMethod");function pt(e,t){return Reflect.getMetadata(t,e.constructor)}o(pt,"getDecoratedProperty");function Ge(e,t){let n=pt(e,t);if(n!==void 0)return B(e,n)}o(Ge,"getDecoratedPropertyValue");var S=o(function({getter:e,setter:t,fieldSymbol:n}){return(i,r)=>{Object.defineProperty(i,r,{get:o(function(){return e?e(this,r):S.getField(i,r,n)},"get"),set:o(function(s){t?t(this,s,r):S.setField(i,r,s,n)},"set")})}},"PropertyWrapper");M(S,"getField",(e,t,n)=>{var i;return(i=B(e,n))==null?void 0:i[t]});M(S,"setField",(e,t,n,i)=>{let r=B(e,i)||{};r[t]=n,M(e,i,r)});function an(e){let t=Symbol("lazy");return S({getter:o((n,i)=>{let r=S.getField(n,i,t);if(r)return r.value;let s=e(n,i);return S.setField(n,i,{value:s},t),s},"getter"),setter:o(()=>{},"setter"),fieldSymbol:t})}o(an,"Lazy");var G=Symbol("JSON_SERIALIZED"),mt=Symbol("AFTER_SERIALIZED"),Ye=class Ye{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(Ye,"SerializeSettings");var Ke=Ye,Qe=class Qe{constructor(t,n,i){this.target=t;this.propName=n;this.options=i;this.isArray=Reflect.getDesignType(t,n)===Array,this.serializedName=i.name||N(n),this.class=i.class,this.fromJSON=this.createBuilder(),this.toJSON=i.toJSON||(r=>qe(r))}createBuilder(){if(this.options.fromJSON)return this.options.fromJSON;if(this.class&&this.class instanceof Function){let t=this.class;return n=>{let i=we.get(t);return i?i.fromJson(n):xe(n,t)}}else return t=>mn(this.target,this.propName,t)}};o(Qe,"SerializedPropertySetting");var We=Qe;function Ue(e,t){Ze(e,n=>{n.defaultIgnored=t})}o(Ue,"setDefaultIgnored");function K(e,t,n){let i=J(e);Ze(i,r=>{r.add(new We(e,t,n))})}o(K,"registerSerializedProperty");function Ze(e,t){let n=Reflect.getMetadata(G,e);n===void 0&&(n=new Ke),t(n),Reflect.defineMetadata(G,n,e)}o(Ze,"updateSerializeSettings");var cn=yt();function yt(e){return e=e||{},(t,n)=>K(t,N(n),e)}o(yt,"Serialized");function ln(e){return(t,n)=>K(t,N(n),{name:e})}o(ln,"SerializedName");var fn=o((e,t)=>Ze(J(e),n=>n.ignoredProperties.push(t)),"IgnoreSerialization");function un(e){return JSON.stringify(typeof e=="object"?Me(e):e)}o(un,"serialize");function qe(e){if(e===void 0)throw new Error("attempt to serialize undefined value");if(e===null)return null;if(typeof e=="object"){let t=we.get(J(e));return t?t.toJson(e):Me(e)}return e}o(qe,"serializeTo");function Me(e){var s;if(e instanceof Array)return e.map(a=>Me(a));if(ve(e)){let a={};return Object.entries(e).forEach(c=>{let[l,u]=c;a[l]=qe(u)}),a}let t=J(e);((s=y(t))==null?void 0:s.isSubClassOf("Mappable"))&&Re(t);let i=Reflect.getMetadata(G,t);if(i===void 0)return e;let r={};return Object.entries(e).forEach(a=>{let c=a[0];if(i.isPropertyIgnored(c))return;let l=a[1];if(l===void 0||l instanceof Function||typeof l=="symbol")return;let u=i.settingsByName[c],x=(u==null?void 0:u.serializedName)||c;u&&(u.isArray?l=l.map(W=>u.toJSON(W)):l=u.toJSON(l)),r[x]=l}),r}o(Me,"serializeToData");function xe(e,t){var n;if(typeof e=="string"&&(e=JSON.parse(e)),t===null||t===void 0)return e;try{let i=e,r=J(t),s=(n=y(r))==null?void 0:n.isSubClassOf("Mappable");s&&Re(r);let a=we.get(r);if(a)return a.fromJson(i);let c=t instanceof Function?ze(t):t;if(typeof c=="object"&&Tt(i,c),s){let l=L(c,r.name);if(!l.success)throw new Error(`JSON deserialize validate failed: ${Pe(l)} `)}return c}catch(i){throw console.error("failed to deserialize"),console.dir(i),i}}o(xe,"deserialize");function dt(e,t){let n=typeof e=="string"?JSON.parse(e):e;return n instanceof Array?n.map(i=>xe(i,t)):[]}o(dt,"deserializeArray");function Tt(e,t){let n=J(t),i=Reflect.getMetadata(G,n);if(i===void 0){Object.assign(t,e);return}Object.keys(e).forEach(r=>{let s=i.settingsBySerializedName[r],a=e[r];if(s===void 0){i.defaultIgnored||M(t,r,a);return}let c=s.propName;if(i.isPropertyIgnored(c))return;let l;l=a instanceof Array?a.map(u=>s.fromJSON(u)):s.fromJSON(a),M(t,c,l)}),Be(t,mt)}o(Tt,"deserializeFrom");function pn(e){return Reflect.getMetadata(G,e)}o(pn,"getSerializeSettings");function mn(e,t,n){let i=Reflect.getDesignType(e,t);if(i===void 0)return n;if(i===Array)return dt(n);let r=we.get(i);return r?r.fromJson(n):xe(n,i)}o(mn,"getValueByReflectType");function J(e){return e instanceof Function?e:e.constructor}o(J,"classOf");function yn(e){return e()}o(yn,"run");var we=yn(()=>{let e=new Map;function t(i){return e.get(i)}o(t,"get");function n(i,r){e.set(i,r)}return o(n,"register"),n(String,{fromJson:N,toJson:he}),n(Number,{fromJson:De,toJson:he}),n(Boolean,{fromJson:_e,toJson:he}),n(Date,{fromJson:o(i=>new Date(De(i)),"fromJson"),toJson:o(i=>i.getTime(),"toJson")}),{get:t,register:n}}),he=o(e=>e,"itSelf"),dn=o(()=>{},"done"),Tn=Le(mt);var bt=new Map;function Re(e){if(bt.get(e))return;let t=y(e),n=new Proxy({},{get(r,s){return i(s)},set(r,s,a){return i(s)(a),!0}});function i(r){return(s,a)=>{var u,x,W;let c=(x=(u=Object.values((t==null?void 0:t.allProperties)||{}))==null?void 0:u.find(gt=>gt.name===r))==null?void 0:x.type,l=(c==null?void 0:c.name)!==void 0?oe(c.name):void 0;c&&ge.isArrayType(c)&&(l=((W=c.arrayElementType)==null?void 0:W.name)!==void 0?oe(c.arrayElementType.name):void 0),typeof r=="string"&&(K(e.prototype,r,{name:s,class:l,fromJSON:a==null?void 0:a.fromJSON,toJSON:a==null?void 0:a.toJSON}),Ue(e,!0))}}o(i,"doMap"),e.prototype.mapping(n),bt.set(e,!0)}o(Re,"registerMappable");function bn(e,t){let n=y(e);n&&n.properties.forEach(i=>t[i.name]())}o(bn,"mapAllProperties");var mr=require("reflect-metadata");var gn="design:type",Dn="design:returntype",hn="design:paramtypes";function Mn(e,t){return Reflect.getMetadata(gn,e,t)}o(Mn,"getDesignType");function xn(e,t){return Reflect.getMetadata(Dn,e,t)}o(xn,"getReturnType");function wn(e,t){return Reflect.getMetadata(hn,e,t)}o(wn,"getParamTypes");function Rn(e,t,n,i){let r=(i===void 0?Reflect.getMetadata(e,n):Reflect.getMetadata(e,n,i))||[];r.includes(t)||r.push(t),i===void 0?Reflect.defineMetadata(e,r,n):Reflect.defineMetadata(e,r,n,i)}o(Rn,"addMetadataList");Object.assign(Reflect,{getDesignType:Mn,getReturnType:xn,getParamTypes:wn,addMetadataList:Rn});0&&(module.exports={AfterSerialized,IgnoreSerialization,Lazy,PropertyWrapper,ReflectClass,ReflectValidate,Serialized,SerializedClass,SerializedName,TypeDefinition,ValidateResult,asBoolean,asNumber,asString,assertType,callDecoratedMethod,createInstance,defineDecoratedProperty,deserialize,deserializeArray,deserializeFrom,done,failedResult,getAnyValue,getClassByName,getClassDefinition,getDecoratedProperty,getDecoratedPropertyValue,getEnumDefinition,getEnumNames,getEnumValues,getErrorTraceMessages,getInterfaceDefinition,getOrSetValue,getSerializeSettings,getTypeAliasDefinition,getTypeDef,hasDecoratedMethod,initReflectContext,isDictionary,isNullable,isType,itSelf,mapAllProperties,registerMappable,registerSerializedProperty,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,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:
|
|
1
|
+
var de=Object.create;var L=Object.defineProperty;var ye=Object.getOwnPropertyDescriptor;var ge=Object.getOwnPropertyNames;var Te=Object.getPrototypeOf,he=Object.prototype.hasOwnProperty;var we=(e,n)=>{for(var t in n)L(e,t,{get:n[t],enumerable:!0})},Y=(e,n,t,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of ge(n))!he.call(e,r)&&r!==t&&L(e,r,{get:()=>n[r],enumerable:!(i=ye(n,r))||i.enumerable});return e};var k=(e,n,t)=>(t=e!=null?de(Te(e)):{},Y(n||!e||!e.__esModule?L(t,"default",{value:e,enumerable:!0}):t,e)),De=e=>Y(L({},"__esModule",{value:!0}),e);var B=(e,n,t)=>new Promise((i,r)=>{var o=T=>{try{d(t.next(T))}catch(D){r(D)}},f=T=>{try{d(t.throw(T))}catch(D){r(D)}},d=T=>T.done?i(T.value):Promise.resolve(T.value).then(o,f);d((t=t.apply(e,n)).next())});var Ce={};we(Ce,{DEBUG_CONFIG:()=>F,parseSource:()=>U,reflectLoader:()=>X,reflectParserPlugin:()=>ve,setupReflectTypes:()=>Re,updateReflectModules:()=>H});module.exports=De(Ce);var q=k(require("typescript"),1);var s=k(require("typescript"),1),N=k(require("fs"),1),C=k(require("process"),1),R=k(require("path"),1),ie=require("url");var F={OUTPUT_LOG:!1},A=new Map,b=new Map,I=new Map,v=new Map,Q=new Map,j=new Set,Z={[s.default.SyntaxKind.BooleanKeyword]:"boolean",[s.default.SyntaxKind.StringKeyword]:"string",[s.default.SyntaxKind.BigIntKeyword]:"bigint",[s.default.SyntaxKind.NumberKeyword]:"number",[s.default.SyntaxKind.SymbolKeyword]:"symbol",[s.default.SyntaxKind.VoidKeyword]:"void",[s.default.SyntaxKind.UndefinedKeyword]:"undefined",[s.default.SyntaxKind.UnknownKeyword]:"unknown",[s.default.SyntaxKind.AnyKeyword]:"any",[s.default.SyntaxKind.ObjectKeyword]:"object"},_="any",se=["string","number","boolean","bigint","symbol"],re=["any","Promise","Date","Error","undefined","unknown","object","Map","Set"],ae=["Mappable","EnableReflect"];[...se,...re,...ae].forEach(le);ae.forEach(e=>b.set(e,{name:e}));var $,ee=!1,w=Reflect;function Re(e){return B(this,null,function*(){let{filePaths:n,exclude:t,sourceFolder:i,distFolder:r}=e;if(i=R.resolve(i||C.cwd()),r=R.resolve(r||C.cwd()),w.__classes!==void 0)return;n=me(n);let o=n.map(f=>R.join(i,f));U(o,t),w.__classes={};for(let[f,d]of A)w.__classes[f]=d;w.__interfaces={};for(let[f,d]of b)w.__interfaces[f]=d;w.__typeAliases={};for(let[f,d]of v)w.__typeAliases[f]=d;w.__enums={};for(let[f,d]of I)w.__enums[f]=d;w.__constTypes={};for(let[f,d]of Q)w.__constTypes[f]=d;yield Promise.all(n.map(f=>H(f,r)))})}function H(e,n){return B(this,null,function*(){let t=R.resolve(n,e);if(!N.existsSync(t))return;if(N.statSync(t).isDirectory()){let d=N.readdirSync(t);yield Promise.all(d.map(T=>H(R.join(e,T),n)));return}if(!e.endsWith(".js"))return;let r=R.join(n,e),f=yield import((0,ie.pathToFileURL)(r).href);w.__classDef={},Object.values(f).forEach(d=>{typeof d=="function"&&(w.__classDef[d.name]=d)})})}function U(e,n){if(e||(e=[C.cwd()]),e=me(e),!ee){let t=oe(e,n),i=s.default.createProgram(t,{});$=i.getTypeChecker(),t=t.map(o=>ne(o)),i.getSourceFiles().filter(o=>t.includes(ne(o.fileName))||o.fileName.endsWith("/lib.es5.d.ts")).forEach(o=>{x(`parse file: ${o.fileName}`),fe(o)});for(let o of j.keys())!A.has(o)&&!b.has(o)&&!I.has(o)&&!v.has(o)&&!se.includes(o)&&!re.includes(o)&&(x(`remove unknown typeName: ${o}`),j.delete(o));Array.from(A.values()).forEach(Oe),Array.from(b.values()).forEach(_e),[A,b,v].forEach(Ae),ee=!0}return{classDefinitions:A,interfaceDefinitions:b,enumDefinitions:I,typeAliasDefinitions:v,constTypeDefinitions:Q}}function oe(e,n){let t=[];return e.forEach(i=>{if(i=R.resolve(i),Me(i,n)){x(`ignore excluded ${i}`);return}if(!N.existsSync(i)){console.error(`Path ${i} does not exist.`);return}if(N.statSync(i).isFile()){t.push(i);return}N.readdirSync(i).forEach(f=>t.push(...oe([R.join(i,f)],n)))}),t}function fe(e){s.default.isClassDeclaration(e)?Ee(e):s.default.isInterfaceDeclaration(e)?Pe(e):s.default.isEnumDeclaration(e)?Se(e):s.default.isTypeAliasDeclaration(e)?xe(e):s.default.isConstTypeReference(e)?Ne(e):e.forEachChild(fe)}function Ee(e){var d,T,D,E,K,P,u,h,z,y,p,m,M,G;let n=a(e.name);if(!n)return;let t=a((D=(T=(d=e.heritageClauses)==null?void 0:d.find(c=>c.token===s.default.SyntaxKind.ExtendsKeyword))==null?void 0:T.types)==null?void 0:D[0].expression),i=(K=(E=e.heritageClauses)==null?void 0:E.find(c=>c.token===s.default.SyntaxKind.ImplementsKeyword))==null?void 0:K.types.map(c=>a(c.expression)),r=[],o=[];for(let c of e.members)if(s.default.isPropertyDeclaration(c))r.push({name:a(c.name),isOptional:c.questionToken!==void 0,type:g(c),isPrivate:(P=c.modifiers)==null?void 0:P.some(l=>l.kind===s.default.SyntaxKind.PrivateKeyword),isStatic:(u=c.modifiers)==null?void 0:u.some(l=>l.kind===s.default.SyntaxKind.StaticKeyword),isReadonly:(h=c.modifiers)==null?void 0:h.some(l=>l.kind===s.default.SyntaxKind.ReadonlyKeyword)});else if(s.default.isMethodDeclaration(c))o.push({name:a(c.name),returnType:g(c),isPrivate:(z=c.modifiers)==null?void 0:z.some(l=>l.kind===s.default.SyntaxKind.PrivateKeyword),isStatic:(y=c.modifiers)==null?void 0:y.some(l=>l.kind===s.default.SyntaxKind.StaticKeyword),isAsync:(p=c.modifiers)==null?void 0:p.some(l=>l.kind===s.default.SyntaxKind.AsyncKeyword),args:c.parameters.map(l=>({name:a(l.name),type:g(l),isOptional:l.questionToken!==void 0}))});else if(s.default.isGetAccessorDeclaration(c)){let l=r.find(O=>O.name===a(c.name));l||(l={name:a(c.name),isOptional:c.questionToken===void 0,type:g(c)},r.push(l)),l.accessor=l.accessor||{},l.accessor.getter={isPrivate:((m=c.modifiers)==null?void 0:m.some(O=>O.kind===s.default.SyntaxKind.PrivateKeyword))||!1},l.isPrivate=l.accessor.getter.isPrivate}else if(s.default.isSetAccessorDeclaration(c)){let l=r.find(O=>O.name===a(c.name));l||(l={name:a(c.name),isOptional:c.questionToken===void 0,type:g(c)},r.push(l)),l.accessor=l.accessor||{},l.accessor.setter={isPrivate:((M=c.modifiers)==null?void 0:M.some(O=>O.kind===s.default.SyntaxKind.PrivateKeyword))||!1}}let f={name:n,superClassName:t,implementations:i,properties:r,methods:o,genericsParams:(G=e.typeParameters)==null?void 0:G.map(c=>a(c.name))};x(`Define class: ${a(e.name)}`),A.set(n,f)}function Pe(e){var d,T,D,E,K,P;let n=a(e.name);if(!n)return;let t=((T=(d=e.heritageClauses)==null?void 0:d.find(u=>u.token===s.default.SyntaxKind.ExtendsKeyword))==null?void 0:T.types.map(u=>a(u.expression)))||[],i=[],r=[],o;for(let u of e.members)s.default.isPropertySignature(u)?i.push({name:a(u.name),isOptional:u.questionToken!==void 0,type:g(u),isPrivate:((D=u.modifiers)==null?void 0:D.some(h=>h.kind===s.default.SyntaxKind.PrivateKeyword))||!1,isReadonly:((E=u.modifiers)==null?void 0:E.some(h=>h.kind===s.default.SyntaxKind.ReadonlyKeyword))||!1}):s.default.isMethodSignature(u)?r.push({name:u.name.text,returnType:g(u),isPrivate:((K=u.modifiers)==null?void 0:K.some(h=>h.kind===s.default.SyntaxKind.PrivateKeyword))||!1,args:u.parameters.map(h=>({name:a(h.name),type:g(h),isOptional:h.questionToken!==void 0}))}):s.default.isIndexSignatureDeclaration(u)&&(o=g(u));let f=b.get(n);f?(f.implementations=V(f.implementations||[],t),f.methods=V(f.methods||[],r,(u,h)=>u.name===h.name),f.properties=V(f.properties||[],i,(u,h)=>u.name===h.name),f.indexElementType=o,x(`Merge interface ${a(e.name)}`)):(f={name:n,implementations:t,methods:r,properties:i,indexElementType:o,genericsParams:(P=e.typeParameters)==null?void 0:P.map(u=>a(u.name))},b.set(n,f),x(`Define interface ${a(e.name)}`))}function Se(e){let n=a(e.name);n&&(I.set(n,{name:n,members:e.members.map(t=>({name:a(t.name),initializer:a(t.initializer)}))}),x(`Define enum: ${a(e.name)}`))}function xe(e){var r;x(`Define typeAlias: ${a(e.name)}`);let n=g(e),t=(r=e.typeParameters)==null?void 0:r.map(o=>a(o.name)),i=a(e.name);v.set(i,{name:i,type:n,genericParams:t})}function Ne(e){let n=e.parent.parent;s.default.isVariableDeclaration(n)&&n.initializer&&s.default.isAsExpression(n.initializer)&&Q.set(a(n.name),ce(n.initializer.expression))}function ce(e){return s.default.isArrayLiteralExpression(e)?Ke(e):s.default.isObjectLiteralExpression(e)?be(e):s.default.isNumericLiteral(e)?"number":s.default.isStringLiteral(e)?"string":s.default.isBigIntLiteral(e)?"bigint":[s.default.SyntaxKind.TrueKeyword,s.default.SyntaxKind.FalseKeyword].includes(e.kind)?"boolean":_}function Ke(e){let n=[];return e.elements.forEach(t=>{if(s.default.isStringLiteral(t))return n.push(a(t))}),n.length===0?_:n.length===1?n[0]:{unionMembers:n}}function be(e){let n=[];return e.properties.map(t=>{s.default.isPropertyAssignment(t)?n.push({name:a(t.name),type:ce(t.initializer)}):x(`unsupported property: ${t.name}`)}),{typeLiteralMembers:n}}function le(e){j.add(e)}function g(e,n=!1){if(e.type&&!n)return S(e.type);if(!$)return console.error("TypeChecker not initialized!"),_;let t=$.getTypeAtLocation(e),i=$.typeToTypeNode(t,void 0,void 0);return i?S("type"in i?i.type:i):_}function S(e){let n={};if(e===void 0)return _;if(s.default.isTypeReferenceNode(e))if(le(a(e.typeName)),e.typeArguments)n.generics=[a(e.typeName),...e.typeArguments.map(t=>S(t))];else return a(e.typeName);else if(s.default.isFunctionTypeNode(e))n.isFunction=!0;else if(s.default.isConstructorTypeNode(e))n.isConstructor=!0;else{if(s.default.isTypeQueryNode(e))return g(e);if(s.default.isTypeLiteralNode(e)){let t=[];e.members.forEach(i=>{s.default.isPropertySignature(i)?t.push({name:a(i.name),isOptional:i.questionToken!==void 0,type:g(i)}):s.default.isIndexSignatureDeclaration(i)?n.indexElementType=g(i):t.push({name:a(i.name)||"",isOptional:i.questionToken!==void 0,type:S()})}),n.typeLiteralMembers=t}else if(s.default.isArrayTypeNode(e))n.arrayElementType=S(e.elementType);else if(s.default.isTupleTypeNode(e))n.tupleMembers=e.elements.map(S);else if(s.default.isOptionalTypeNode(e))Object.assign(n,g(e)),n.isOptionalInTuple=!0;else{if(s.default.isRestTypeNode(e))return g(e);if(s.default.isUnionTypeNode(e))n.unionMembers=e.types.map(S);else if(s.default.isIntersectionTypeNode(e))n.intersectionMembers=e.types.map(S);else{if(s.default.isConditionalTypeNode(e))return g(e);if(s.default.isInferTypeNode(e))return g(e);if(s.default.isParenthesizedTypeNode(e))return g(e);if(s.default.isThisTypeNode(e))return g(e);if(s.default.isTypeOperatorNode(e)&&e.operator===s.default.SyntaxKind.KeyOfKeyword)return g(e,!0);if(s.default.isIndexedAccessTypeNode(e))return g(e,!0);if(s.default.isMappedTypeNode(e))n.indexElementType=S(e.type);else if(s.default.isLiteralTypeNode(e))n.literalValue=a(e.literal);else{if(Object.keys(Z).includes(String(e.kind)))return Z[e.kind]||_;if(s.default.isNamedTupleMember(e))Object.assign(n,g(e));else return g(e,!0)}}}}return n}var V=(e,n,t)=>[...(e==null?void 0:e.filter(i=>!(n!=null&&n.some(r=>(t||(()=>r===i))(r,i)))))||[],...n||[]];function J(e,n){if(e!==void 0&&e!==_)return typeof e=="string"?j.has(e)||n!=null&&n.includes(e)?e:void 0:e}function Oe(e){var n,t;(n=e.methods)==null||n.forEach(i=>ue(i,e.genericsParams)),(t=e.properties)==null||t.forEach(i=>pe(i,e.genericsParams))}function _e(e){var n,t;(n=e.methods)==null||n.forEach(i=>ue(i,e.genericsParams)),(t=e.properties)==null||t.forEach(i=>pe(i,e.genericsParams))}function pe(e,n){e.type=J(e.type,n)}function ue(e,n){var t;(t=e.args)==null||t.forEach(i=>i.type=J(i.type,n)),e.returnType=J(e.returnType,n)}function a(e){if(!e)return e;if(e.end<0)return e.text;try{let n=e;return s.default.isQualifiedName(n)?a(n.right):n.getText()}catch(n){return e.text}}function W(e){e&&Object.entries(e).forEach(n=>{let[t,i]=n;i instanceof Array&&i.length===0||i===!1||i===void 0?delete e[t]:i.constructor===Array?i.forEach(W):i.constructor===Object&&W(i)})}function Ae(e){for(let n of e.values())W(n)}function Me(e,n){return n?(n=n instanceof Array?n:[n],n.some(t=>(t instanceof RegExp||(t=new RegExp(t.replace(/\./g,"\\.").replace(/\*/g,".*"))),e.match(t)))):!1}function ne(e,n=C.cwd()){return te(e).replace(te(n)+"/","")}function te(e){let n=R.sep;return e.split(n).join("/")}function me(e){return e instanceof Array?e:[e]}function x(e){F.OUTPUT_LOG&&console.log(e)}function X(e){let{sourcePaths:n,exclude:t,forEnabledClassOnly:i,outputLog:r}=e;if(r&&(F.OUTPUT_LOG=!0),!n)throw new Error("need provide source paths for reflect loader");r&&console.log(`sourcePaths: ${n}, exclude: ${t}, forEnabledClassOnly: ${i}`);let{classDefinitions:o,interfaceDefinitions:f,enumDefinitions:d,typeAliasDefinitions:T}=U(n,t),D=[],E=[];function K(y){let p=[];return(()=>{let m=o.get(y);if(m){m.superClassName&&p.push(m.superClassName),p.push(...m.implementations||[]);return}let M=f.get(y);if(M){p.push(...M.implementations||[]);return}T.get(y)&&p.push(y)})(),p.flatMap(m=>[m,...K(m)])||[]}function P(y,p){return K(y.name).includes(p)}function u(y){if(q.default.isClassDeclaration(y)&&y.name!==void 0){let p=y.name.text,m=o.get(p);if(!p||!m||i&&!P(m,"EnableReflect"))return;E.push(`Reflect.__classDef = Object.assign(Reflect.__classDef || {}, { ${p} })`);return}y.forEachChild(u)}function h(){let y=[];return o.forEach((p,m)=>{i&&!P(p,"EnableReflect")||y.push(`Reflect.__classes = Object.assign(Reflect.__classes || {}, { ${m}: ${JSON.stringify(p)} })`)}),f.forEach((p,m)=>{i&&!P(p,"EnableReflect")||y.push(`Reflect.__interfaces = Object.assign(Reflect.__interfaces || {}, { ${m}: ${JSON.stringify(p)} })`)}),d.forEach((p,m)=>{y.push(`Reflect.__enums = Object.assign(Reflect.__enums || {}, { ${m}: ${JSON.stringify(p)} })`)}),T.forEach((p,m)=>{y.push(`Reflect.__typeAliases = Object.assign(Reflect.__typeAliases || {}, { ${m}: ${JSON.stringify(p)} })`)}),y.join(`
|
|
2
|
+
`)}return{outputAllMetas:h,transform:(y,p)=>{if(p.endsWith(".ts")&&!(typeof n=="string"?[n]:n).every(m=>!p.startsWith(m))){r&&console.log(`transform id: ${p}`);try{let m=q.default.createSourceFile(p,y,q.default.ScriptTarget.Latest,!1);return D.length=0,E.length=0,u(m),`${D.join(";")};${y};${E.join(";")}`}catch(m){return console.error(`[reflect-parser-plugin] Error processing ${p}:`,m),null}}}}}var ke=process.cwd().replace(/\\/g,"/")+"/";function ve(e){let n=X(e);return{name:"reflect-parser-plugin",enforce:"pre",transform:(t,i)=>(i=i.replace(ke,""),i===e.entry?`${n.outputAllMetas()}
|
|
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}};
|
|
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
|
-
${
|
|
5
|
-
${l.errorStackFlow}`);return a},"checkValue"),
|
|
1
|
+
var Be=Object.defineProperty,mt=Object.defineProperties;var yt=Object.getOwnPropertyDescriptors;var ze=Object.getOwnPropertySymbols;var dt=Object.prototype.hasOwnProperty,Tt=Object.prototype.propertyIsEnumerable;var Le=(e,t,n)=>t in e?Be(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,j=(e,t)=>{for(var n in t||(t={}))dt.call(t,n)&&Le(e,n,t[n]);if(ze)for(var n of ze(t))Tt.call(t,n)&&Le(e,n,t[n]);return e},be=(e,t)=>mt(e,yt(t)),o=(e,t)=>Be(e,"name",{value:t,configurable:!0});var O=class O{constructor(t,n,i,r){this.success=t;this.errorCode=n;this.errorDesc=i;this.cause=r}static failure(t,n,i){return new O(!1,t,n,i)}get errorStackFlow(){return this.cause?[this.errorMessage,this.cause.errorStackFlow].join(`
|
|
2
|
+
caused by: `):this.errorMessage}get errorMessage(){return`[Err${this.errorCode}] ${this.errorDesc}`}};o(O,"ValidateResult"),O.success=new O(!0);var z=O,p=z.success,f=z.failure;function Ge(e){let t=o(n=>n.errorMessage?[n.errorMessage,...n.cause?t(n.cause):[]]:[],"getAllTraceMessages");return t(e).join(`
|
|
3
|
+
-> `)}o(Ge,"getErrorTraceMessages");var ge=class ge{constructor(t){this.rawDef=t}get name(){return this.rawDef.name}get isReadonly(){return this.rawDef.isReadonly}get isOptional(){return this.rawDef.isOptional}get isPrivate(){return this.rawDef.isPrivate}get isStatic(){return this.rawDef.isStatic}get accessor(){return this.rawDef.accessor}get type(){return d(this.rawDef.type)}get rawDefinition(){return S(this.rawDef)}};o(ge,"PropertyDefinition");var C=ge;function G(e){return new C(e)}o(G,"fillProperty");var B=class B extends C{static create(t,n){let i=x(B,t);return i.genericContext=n,i}get type(){return d(this.rawDef.type,this.genericContext)}};o(B,"GenericProperty");var L=B;var De=class De{constructor(t){this.rawDef=t}get name(){return this.rawDef.name}get returnType(){return d(this.rawDef.returnType)}get args(){var t;return((t=this.rawDef.args)==null?void 0:t.map(n=>({name:n.name,type:d(n.type),isOptional:n.isOptional})))||[]}get isPrivate(){return this.rawDef.isPrivate}get isStatic(){return this.rawDef.isStatic}get isAsync(){return this.rawDef.isAsync}};o(De,"MethodDefinition");var K=De;function Z(e){return new K(e)}o(Z,"fillMethod");var U=class U extends K{static create(t,n){let i=x(U,t);return i.genericContext=n,i}get args(){var t;return((t=this.rawDef.args)==null?void 0:t.map(n=>({name:n.name,type:d(n.type,this.genericContext),isOptional:n.isOptional})))||[]}get returnType(){return d(this.rawDef.returnType,this.genericContext)}};o(U,"GenericMethod");var W=U;function x(e,t){let n=Object.create(e.prototype);return Object.assign(n,t),n}o(x,"createInstance");function q(e,t){e.properties=t.properties.map(n=>L.create(n,e.genericContext)),e.methods=t.methods.map(n=>W.create(n,e.genericContext))}o(q,"buildPropertiesAndMethods");function he(e,t){let n={};return e.forEach(i=>{let[r,s]=t(i);n[r]=s}),n}o(he,"toDictionary");function Y(e,t){return(e==null?void 0:e.map(t).filter(n=>n!==void 0))||[]}o(Y,"mapNotNull");function E(e,t){if(e!==void 0)return e[t]}o(E,"getValue");function S(e){return JSON.parse(JSON.stringify(e))}o(S,"copy");var Me=class Me{constructor(t){this.name=t.name,this.members=new Map,t.members.forEach(n=>{let i=n.initializer===void 0?{name:"number"}:{literalValue:n.initializer};this.members.set(n.name,i)})}get type(){return{name:this.name,unionMembers:Array.from(this.members.values())}}get names(){return Array.from(this.members.keys())}};o(Me,"EnumDefinition");var J=Me;var bt=["Partial","Required","Readonly","Pick","Omit","Extract","Exclude"];function Ke(e){return typeof e=="string"&&bt.includes(e)}o(Ke,"isSpecialType");function gt(e,t,n,i){switch(e){case"Partial":t=Dt(n);break;case"Required":t=ht(n);break;case"Readonly":t=Mt(n);break;case"Pick":t=Ze(n,i);break;case"Omit":t=qe(n,i);break;case"Extract":t=xt(n,i);break;case"Exclude":t=wt(n,i);break}return t}o(gt,"getSpecialType");function We(e,t){let[n,i]=t,r,s=["Pick","Omit","Extract","Exclude"].includes(e)?["T"]:["T","K"];return r=gt(e,r,n,i),r?{name:e,type:r,genericParams:s,rawType:e}:void 0}o(We,"getSpecialTypeAlias");function A(e,t){return e.typeLiteralMembers?{typeLiteralMembers:e.typeLiteralMembers.map(n=>{let i=S(n.rawDefinition);return t(i),new C(i)})}:e.unionMembers?{unionMembers:e.unionMembers.map(n=>A(n,t))}:e.intersectionMembers?{intersectionMembers:e.intersectionMembers.map(n=>A(n,t))}:void 0}o(A,"getMappedType");function Ue(e,t){if(e.typeLiteralMembers)return{typeLiteralMembers:e.typeLiteralMembers.map(n=>t(n)?S(n):void 0).filter(n=>!!n)}}o(Ue,"getFilterKeyType");function Dt(e){return A(e,t=>t.isOptional=!0)}o(Dt,"getPartialType");function ht(e){return A(e,t=>t.isOptional=!1)}o(ht,"getRequiredType");function Mt(e){return A(e,t=>t.isReadonly=!0)}o(Mt,"getReadonlyType");function Ze(e,t){var i;let n=(i=t.unionMembers)==null?void 0:i.map(r=>r.name);if(e.typeLiteralMembers)return Ue(e,r=>r.name===t.literalValue||(n==null?void 0:n.includes(r.name)))}o(Ze,"getPickType");function qe(e,t){var i;let n=(i=t.unionMembers)==null?void 0:i.map(r=>r.name);if(e.typeLiteralMembers)return Ue(e,r=>!(r.name===t.literalValue||n!=null&&n.includes(r.name)))}o(qe,"getOmitType");function xt(e,t){if(e.typeLiteralMembers&&t.typeLiteralMembers){let n={unionMembers:t.typeLiteralMembers.map(i=>({literalValue:i.name}))};return Ze(e,n)}}o(xt,"getExtractType");function wt(e,t){if(e.typeLiteralMembers&&t.typeLiteralMembers){let n={unionMembers:t.typeLiteralMembers.map(i=>({literalValue:i.name}))};return qe(e,n)}}o(wt,"getExcludeType");var k=new Map,Q=new Map,H=new Map,X=new Map,Rt=new Map,Sn=o((e=>{Rt.set(e.name,e)}),"ReflectClass"),St={string:String,number:Number,boolean:Boolean,object:Object},T=Reflect;function xe(e){var t;return((t=y(e))==null?void 0:t.jsClass)||St[e]}o(xe,"getClassByName");function y(e){var t,n,i;switch(typeof e){case"object":return y(e.constructor);case"function":let r=y(e.name);if(r)return r;let s=Array.from(k.values()).find(l=>l.jsClass===e);if(s)return s;let a=(t=Object.entries(T.__classDef||{}).find(([l,u])=>u===e))==null?void 0:t[0];return a?y(a):void 0;case"string":let c=e;if(!k.has(c)){let l=(n=T.__classes)==null?void 0:n[c];if(!l)return;let u=(i=T.__classDef)==null?void 0:i[c];k.set(c,new V(be(j({},l),{jsClass:u})))}return k.get(c)}}o(y,"getClassDefinition");function I(e){var t;if(!Q.has(e)){let n=(t=T.__interfaces)==null?void 0:t[e];if(!n)return;Q.set(e,new w(n))}return Q.get(e)}o(I,"getInterfaceDefinition");function ee(e){var t;if(!H.has(e)){let n=(t=T.__enums)==null?void 0:t[e];if(!n)return;H.set(e,new J(n))}return H.get(e)}o(ee,"getEnumDefinition");function Pn(e){var t;return((t=ee(e))==null?void 0:t.names)||[]}o(Pn,"getEnumNames");function jn(e){let t=Object.entries(e)[0];if(!t)return[];let[n,i]=t,r=ee(n);return r?r.names.map(s=>i[s]):Array.from(Object.keys(i))}o(jn,"getEnumValues");function Ye(e,t){var i;if(Ke(e))return!t||!t[0]?void 0:We(e,[t[0],t[1]]);if(!X.has(e)){let r=(i=T.__typeAliases)==null?void 0:i[e];if(!r||!r.type)return;X.set(e,{name:e,rawType:r.type,type:d(r.type),genericParams:r.genericParams})}let n=S(X.get(e));if(n.genericParams&&t){let r={};for(let s=0;s<n.genericParams.length;s++){let a=n.genericParams[s];r[a]=t[s]}n.type=d(n.rawType,r,t)}return n}o(Ye,"getTypeAliasDefinition");function On(){T.__classes&&Object.entries(T.__classes).map(([e,t])=>{var i;let n=(i=T.__classDef)==null?void 0:i[e];n&&k.set(e,new V(be(j({},t),{jsClass:n})))}),T.__interfaces&&Object.entries(T.__interfaces).map(([e,t])=>Q.set(e,new w(t))),T.__enums&&Object.entries(T.__enums).map(([e,t])=>H.set(e,new J(t))),T.__typeAliases&&Object.entries(T.__typeAliases).map(([e,t])=>{X.set(e,{name:e,rawType:t.type,type:d(t.type),genericParams:t.genericParams})}),["__classDef","__classes","__interfaces","__enums","__typeAliases","initReflectContext"].forEach(e=>delete T[e])}o(On,"initReflectContext");var ne=class ne{constructor(t){var n,i;this.name=t.name,this._implementationNames=t.implementations||[],this.methods=((n=t.methods)==null?void 0:n.map(Z))||[],this.properties=((i=t.properties)==null?void 0:i.map(G))||[],this.generics=t.genericsParams}get implementations(){return this._implementations||(this._implementations=Y(this._implementationNames,t=>{var n;return I(t)||((n=y(t))==null?void 0:n.type)||D(t)})),this._implementations}get allImplementations(){if(this._allImplementations===void 0){let t=new Set(this.implementations);this.implementations.forEach(n=>{n instanceof ne?n.allImplementations.forEach(i=>t.add(i)):t.add(n)}),this._allImplementations=Array.from(t)}return this._allImplementations}get type(){let t={};return this.allImplementations.forEach(n=>{let r=("type"in n?n.type:n).typeLiteralMembers;r==null||r.forEach(s=>t[s.name]=s)}),this.properties.forEach(n=>t[n.name]=n),{name:this.name,typeLiteralMembers:Object.values(t)}}toString(){return`interface ${this.name}`}};o(ne,"InterfaceDefinition");var w=ne,ie=class ie extends w{static create(t,n){let i=x(ie,t);i.genericArgs=n;let r=i;return r.buildGenericContext(),q(r,t),r}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((n,i)=>this.genericContext[n]=this.genericArgs[i])}};o(ie,"GenericInterface");var te=ie;var we=class we{constructor(t){var n,i;this.name=t.name,this.superClassName=t.superClassName||"Object",this.superClass=y(this.superClassName),this._implementationNames=t.implementations||[],this.methods=((n=t.methods)==null?void 0:n.map(Z))||[],this.properties=((i=t.properties)==null?void 0:i.map(G))||[],this.jsClass=t.jsClass,this.generics=t.genericsParams}get allMethods(){let t={};if(this.superClassName!=="Object"){let n=y(this.superClassName);n&&Object.assign(t,j({},n.allMethods))}return Object.assign(t,j({},he(this.methods,n=>[n.name,n]))),t}get allProperties(){var t;return Object.assign(((t=this.superClass)==null?void 0:t.allProperties)||{},he(this.properties,n=>[n.name,n]))}get implementations(){return this._implementations?this._implementations:Y(this._implementationNames,t=>I(t)||D(t))}get allImplementations(){var t,n;if(this._allImplementations===void 0){let i=new Set(this.implementations);this.implementations.forEach(r=>{r instanceof w?r.allImplementations.forEach(s=>i.add(s)):i.add(r)}),(n=(t=this.superClass)==null?void 0:t.allImplementations)==null||n.forEach(r=>i.add(r)),this._allImplementations=Array.from(i)}return this._allImplementations}getProperty(t){return this.properties.find(n=>n.name===t)}get type(){var n,i;let t={};return(i=(n=this.superClass)==null?void 0:n.type.typeLiteralMembers)==null||i.forEach(r=>t[r.name]=r),this.properties.forEach(r=>t[r.name]=r),{name:this.name,classDefinition:this,typeLiteralMembers:Object.values(t)}}isSubClassOf(t){var n;return this.name===t||(n=this.superClass)!=null&&n.isSubClassOf(t)?!0:this.implementations.map(i=>i.name).includes(t)}isSuperClassOf(t){if(this.name===t)return!0;let n=y(t);return n?n.isSubClassOf(this.name):!1}toString(){return`class ${this.name}`}};o(we,"ClassDefinition");var V=we,oe=class oe extends V{static create(t,n){let i=x(oe,t);i.genericArgs=n;let r=i;return r.buildGenericContext(),q(r,t),r}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((n,i)=>this.genericContext[n]=this.genericArgs[i])}};o(oe,"GenericClass");var re=oe;function h(e){if(typeof e=="string"){let t=jt(e);if(typeof t=="string"){let n=t.match(/\"(.+)\"$/)||t.match(/\'(.+)\'$/);if(n!=null&&n[1])return{literalValue:n[1]}}return typeof t=="string"?D(e):h(t)}return Array.isArray(e)?D(e[0],e.slice(1).map(h)):"array"in e?{arrayElementType:h(e.array)}:"union"in e?{unionMembers:e.union.map(h)}:"intersection"in e?{intersectionMembers:e.intersection.map(h)}:"tuple"in e?{tupleMembers:e.tuple.map(h)}:e}o(h,"getTypeDef");function Zn(e,t,n=5){let i=b(e,h(t),n);if(!i.success){console.error(`assert failed with type: ${t}
|
|
4
|
+
${i.errorStackFlow}`);debugger;throw new Error(`assert failed with type: ${t}, ${i.errorStackFlow}`)}return e}o(Zn,"assertType");function qn(e){return Pt(null,e)}o(qn,"isNullable");function Pt(e,t){return b(e,h(t),3).success}o(Pt,"isType");function jt(e){let t=e.trim(),n=o(u=>u.trim(),"trim"),i=o(u=>u.length!=0,"notEmpty"),r=t.split("|").map(n).filter(i);if(r.length>1)return{union:r};let s=t.split("&").map(n).filter(i);if(s.length>1)return{intersection:s};let a=t.match(/^\[(.*)]$/);if(a)return{tuple:a[1].split(",").map(n).filter(i)};let c=t.match(/^(.+)\[]$/);if(c)return{array:c[1].trim()};let l=t.match(/^([^<]+)<(.+)>$/);if(l){let u=l[1].trim(),M=l[2].split(",").map(n).filter(i);return[u,...M]}return t}o(jt,"parseType");var Re=[Promise,Date,Map,Set,Error,Function];function b(e,t,n=1){switch(!0){case t.name==="undefined":return e===void 0?p:f(100,`declared as ${m(t)} but actually not`);case He(t):return p;case pe(t):return e instanceof Object?$(e,t.classDefinition.name,n):f(200,`declared as ${m(t)} but actually not an object`);case se(t):return Ot(e,t,n);case ue(t):return Et(e,t,n);case le(t):for(let i of t.unionMembers||[])if(b(e,i,n).success)return p;return f(320,`declared as ${m(t)} but all value not match`);case fe(t):for(let i of t.intersectionMembers||[]){let r=b(e,i,n);if(!r.success)return f(330,`declared as ${m(t)} but all value not match`,r)}return p;case Pe(t):return Ct(e,t,n);case ae(t):switch(typeof e){case"string":return e===Nt(t.literalValue)?p:f(110,`declared as string ${m(t)} but value not match`);case"number":return e===Number(t.literalValue)?p:f(111,`declared as number ${m(t)} but value not match`);case"bigint":return e===BigInt(t.literalValue)?p:f(112,`declared as bigint ${m(t)} but value not match`);case"boolean":return e===!!t.literalValue?p:f(113,`declared as boolean ${m(t)} but value not match`);default:return t.literalValue==="null"&&e===null?p:e===t.literalValue?p:f(114,`declared as ${m(t)} but value not match`)}case ce(t):return It(e,t,n);case t.isFunction:case t.isConstructor:return typeof e=="function"?p:f(150,`declared as ${m(t)} but actually not`);case Se(t):return e==null?f(120,`declared as ${m(t)} but actually ${e}`):typeof e===t.name?p:f(121,`declared as ${m(t)} but actually ${typeof e}`);default:return Vt(e,t,n)}}o(b,"validateValue");function Ot(e,t,n=1){if(!Array.isArray(e))return f(300,`declared as ${m(t)} but actually not`);if(n===0)return p;for(let i=0;i<e.length;i++){let r=e[i],s=b(r,t.arrayElementType||g,n-1);if(!s.success)return f(301,`declared as ${m(t)} but [${i}] not match`,s)}return p}o(Ot,"validateArrayValue");function Ct(e,t,n=1){if(e===null)return f(400,"declared as indexedType but actually is null");if(typeof e=="object")return f(410,`declared as indexedType but actually is ${typeof e}`);for(let i of Object.values(e)){let r=b(i,t.indexElementType,n-1);if(!r.success)return f(420,`declared as ${m(t)} but actually not match`,r)}return p}o(Ct,"validateIndexedValue");function Et(e,t,n=1){if(!Array.isArray(e))return f(310,`declared as ${m(t)} but actually not a tuple`);if(n===0)return p;let i=0;for(let r of t.tupleMembers){let s=e[i++];if(r.isOptionalInTuple&&s===void 0)continue;let a=b(e[i],r,n);if(!a.success)return f(311,`declared as ${m(t)} but not all values in tuple match`,a)}return p}o(Et,"validateTupleValue");function It(e,t,n=1){if(e instanceof Object){for(let i of t.typeLiteralMembers||[]){if(i.isStatic)return p;if(i.name.startsWith("[")&&i.name.endsWith("]"))return p;if(n===0)return p;let r=i.type||g;i.isOptional&&(r={unionMembers:[r,{name:"undefined"}]});let s=E(e,i.name),a=b(s,r,n-1);if(!a.success)return f(211,`declared ${i.name} as ${m(r)}, but not match`,a)}return p}else return f(210,`declared as ${m(t)} but not an object`)}o(It,"validateProperties");function Vt(e,t,n=1){let i=typeof t=="string"?t:t.name;if(!i)return p;if(e===void 0)return f(130,`declared as ${m(t)} but actually undefined`);if(e===null)return i==="null"?p:f(131,`declared as ${m(t)} but actually null`);for(let s of Re)if(i===s.name)return e instanceof s?p:f(132,`declared as ${m(t)} but actually ${e.constructor.name}`);if(e instanceof Object&&!Qe(e,i))return f(133,`declared as ${m(t)} but actually not instance of it`);if(n==0)return p;let r=b(e,D(i),n);return r.success?p:f(134,`declared as ${m(t)} but actually not match`,r)}o(Vt,"validateSimpleValue");function $(e,t,n=3){let i=h(t);return i.classDefinition&&!Qe(e,i.classDefinition.name)?f(201,`declared as instance of ${t} but actually not`):t!=="any"&&i===g?f(202,`${t} not defined`):(delete i.classDefinition,b(e,i,n))}o($,"validateClassInstance");function Qe(e,t){if(e===void 0||e.constructor.name===t)return!0;let n=y(t);if(!n)return!0;if(n.jsClass)return e instanceof n.jsClass;let i=y(e);return i?i.isSubClassOf(n.name):!1}o(Qe,"valueInstanceOf");function Nt(e){return e.length>=2&&(e[0]==='"'&&e[e.length-1]==='"'||e[0]==="'"&&e[e.length-1]==="'")?e.substring(1,e.length-1):e}o(Nt,"trimQuotes");function m(e){var t,n,i,r;return typeof e=="string"?e:pe(e)?e.classDefinition.name:se(e)?(((t=e.arrayElementType)==null?void 0:t.name)||"unknown")+"[]":e.isConstructor?"Class":e.isFunction?"Function":ce(e)?"Object":ue(e)?`(${e.tupleMembers.map(m).join(",")})`:le(e)?((n=e.unionMembers)==null?void 0:n.map(m).join(" | "))||"unknown":fe(e)?((i=e.intersectionMembers)==null?void 0:i.map(m).join(" & "))||"unknown":ae(e)?e.literalValue:Pe(e)?`{ [key]: ${((r=e.indexElementType)==null?void 0:r.name)||"unknown"} }`:e.name||"unknown"}o(m,"getTypeDisplayName");var g={name:"any"},Jt={name:"null"},Xe=["string","number","boolean","bigint","symbol"];function He(e){return!!(e.name&&["any","void","unknown"].includes(e.name))}o(He,"isIgnoredType");function Se(e){return!!(e.name&&Xe.includes(e.name))}o(Se,"isPrimitiveType");function se(e){return!!e.arrayElementType}o(se,"isArrayType");function ae(e){return!!e.literalValue}o(ae,"isLiteralType");function ce(e){return!!e.typeLiteralMembers}o(ce,"isTypeLiteralType");function le(e){return!!e.unionMembers}o(le,"isUnionType");function fe(e){return!!e.intersectionMembers}o(fe,"isIntersectionType");function ue(e){return!!e.tupleMembers}o(ue,"isTupleType");function pe(e){return!!e.classDefinition}o(pe,"isClassDefinition");function At(e){return!!e.generics}o(At,"hasGenerics");function Pe(e){return!!e.indexElementType}o(Pe,"isIndexType");function D(e,t){if(e==="any"||e==="Any"||e==="unknown"||e==="")return g;if(e==="null")return Jt;let n=y(e);if(n)return t?re.create(n,t).type:n.type;if(Xe.includes(e))return{name:e};if(Re.map(a=>a.name).includes(e))return{name:e,generics:t};let i=I(e);if(i)return t?te.create(i,t).type:i.type;let r=ee(e);if(r)return r.type;let s=Ye(e,t);return s?s.type:g}o(D,"getTypeDefinition");var je=new Map;function d(e,t,n){let i=Oe(e);if(e===void 0)return g;let r=je.get(i);if(r)return r;let s={};if(je.set(i,s),typeof e=="string")s=(t==null?void 0:t[e])||D(e,n)||g;else if(e.arrayElementType)Object.assign(s,{arrayElementType:d(e.arrayElementType,t)});else if(e.unionMembers)Object.assign(s,{unionMembers:e.unionMembers.map(a=>d(a,t))});else if(e.intersectionMembers)Object.assign(s,{intersectionMembers:e.intersectionMembers.map(a=>d(a,t))});else if(e.tupleMembers)Object.assign(s,{tupleMembers:e.tupleMembers.map(a=>d(a,t))});else if(e.generics){let a=e.generics[0],c=e.generics.slice(1).map(l=>d(l,t));Object.assign(s,d(a,t,c))}else e.indexElementType&&Object.assign(s,{indexElementType:d(e.indexElementType,t)});return Object.keys(s).length===0&&(s=g),je.delete(i),s}o(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(",")+"}"}o(Oe,"stableStringify");var Ce={isPrimitiveType:Se,isArrayType:se,isLiteralType:ae,isTypeLiteralType:ce,isUnionType:le,isIntersectionType:fe,isTupleType:ue,isClassDefinition:pe,hasGenerics:At};function me(e,t,n=3){return t=t||e.constructor.name,$(e,t,n)}o(me,"validateInstance");function yi(e,t,n=1){for(let i=0;i<e.length;i++){let r=me(e[i],t,n);if(!r.success)return f(220,`declared as instance of ${t}[] but [${i}] actually not`,r)}return p}o(yi,"validateArray");function di(e,t,n=1){let i=Object.entries(e);for(let r=0;r<i.length;r++){let[s,a]=i[r],c=me(a,t,n);if(!c.success)return f(230,`declared as instance of Dictionary<${t}> but [${s}] actually not`,c)}return p}o(di,"validateDictionary");var et=Symbol("VALIDATE_WRAPPER"),xi=o((e,t,n)=>kt(e,t,n),"ReflectValidate");function kt(e,t,n){let i=n.value;if(typeof i!="function"||E(i,et))return;let r=o(()=>{var l,u;return(u=(l=y(e))==null?void 0:l.methods)==null?void 0:u.find(M=>M.name===t)},"getMethodDef"),s=o(l=>tt(e,r(),l),"validateArgs"),a=o(l=>$t(e,r(),l),"validateReturn"),c=o(function(...l){s(l);let u=i.call(this,...l);return a(u)},"newFunc");c[et]=i,n.value=c}o(kt,"wrapValidateMethod");function tt(e,t,n){var i;(i=t==null?void 0:t.args)==null||i.forEach((r,s)=>{let a=n==null?void 0:n[s];if(a===void 0){if(r.isOptional)return;throw new Error(`Illegal arguments for ${Ee(e.constructor.name,t)}: ${r.name} is not optional`)}let c=b(a,r.type||g,1);if(!c.success)throw console.error("validateResult",c),new Error(`Illegal arguments for ${Ee(e.constructor.name,t)}: ${r.name}: ${r.name} ${c.errorMessage}`)})}o(tt,"validateMethodParams");function $t(e,t,n){var s;if(!t)return n;let i=o((a,c)=>{let l=b(a,c,5);if(!l.success)throw console.error(l.errorStackFlow),new Error(`result for ${Ee(e.constructor.name,t)} doesn't match type ${c.name}:
|
|
5
|
+
${l.errorStackFlow}`);return a},"checkValue"),r=t.returnType;return r.name==="Promise"&&(r=((s=r.generics)==null?void 0:s[0])||g),n instanceof Promise?n.then(a=>i(a,r||g)):i(n,r||g)}o($t,"validateMethodReturnValue");function Ee(e,t){var n;return`${e}.${t.name}(${(n=t.args)==null?void 0:n.map(i=>i.name).join(", ")})`}o(Ee,"getMethodDescription");function wi(e,t,...n){let i=y(e);if(!i)return;let r=i.allMethods[t];if(r)return tt(e,r,n),E(e,t).apply(e,n)}o(wi,"safeCall");function Ri(e){let{funcName:t,optionsObj:n,value:i,argName:r,type:s,optional:a}=e,c=i||n&&E(n,r);if(c===void 0){if(a)return;throw Error(`Illegal arguments for ${t}: ${r} is undefined`)}if(["string","number","boolean","bigint"].includes(s)){if(typeof c!==s)throw Error(`Illegal arguments for ${t}: ${r} is not a ${s}`);return}if(typeof c!="object")throw Error(`Illegal arguments for ${t}: ${r} is not an object`);if(c===null)throw Error(`Illegal arguments for ${t}: ${r} is null`);let l=$(c,s);if(!l.success)throw Error(`Illegal arguments for ${t}: ${l.errorMessage}`)}o(Ri,"validateFunctionArgument");import"reflect-metadata";function nt(e){return String(e).toLocaleLowerCase()==="false"?!1:!!e}o(nt,"asBoolean");function F(e){return e==null||Number.isNaN(e)||e instanceof Date&&String(e)==="Invalid Date"?"":typeof e=="symbol"?e.description||"":String(e)}o(F,"asString");function Ie(e){return e?e instanceof Date?e.getDate():Number(e):0}o(Ie,"asNumber");function R(e,t,n){e[t]=n}o(R,"setAnyValue");function ye(e,t){return e[t]}o(ye,"getAnyValue");function Ji(e,t,n){let i=e[t];if(i!==void 0)return i;let r=n();return R(e,t,r),r}o(Ji,"getOrSetValue");function it(e){return typeof e=="object"&&e!==null&&e.constructor===Object}o(it,"isDictionary");function rt(e,t){let n=Object.create(e.prototype);return Object.assign(n,t||{}),n}o(rt,"createInstance");function ot(e){return((t,n)=>Reflect.defineMetadata(e,n,t.constructor))}o(ot,"defineDecoratedProperty");function st(e,t,...n){let i=at(e,t);if(i!==void 0&&i instanceof Function)return i.apply(e,n)}o(st,"callDecoratedMethod");function Fi(e,t){let n=at(e,t);return n!==void 0&&n instanceof Function}o(Fi,"hasDecoratedMethod");function Ft(e,t){return Reflect.getMetadata(t,e.constructor)}o(Ft,"getDecoratedProperty");function at(e,t){let n=Ft(e,t);if(n!==void 0)return ye(e,n)}o(at,"getDecoratedPropertyValue");var P=o(function({getter:e,setter:t,fieldSymbol:n}){return(i,r)=>{Object.defineProperty(i,r,{get:o(function(){return e?e(this,r):P.getField(i,r,n)},"get"),set:o(function(s){t?t(this,s,r):P.setField(i,r,s,n)},"set")})}},"PropertyWrapper");R(P,"getField",(e,t,n)=>{var i;return(i=ye(e,n))==null?void 0:i[t]});R(P,"setField",(e,t,n,i)=>{let r=ye(e,i)||{};r[t]=n,R(e,i,r)});function _i(e){let t=Symbol("lazy");return P({getter:o((n,i)=>{let r=P.getField(n,i,t);if(r)return r.value;let s=e(n,i);return P.setField(n,i,{value:s},t),s},"getter"),setter:o(()=>{},"setter"),fieldSymbol:t})}o(_i,"Lazy");var _=Symbol("JSON_SERIALIZED"),ct=Symbol("AFTER_SERIALIZED"),Fe=class Fe{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(Fe,"SerializeSettings");var Ne=Fe,_e=class _e{constructor(t,n,i){this.target=t;this.propName=n;this.options=i;this.isArray=Reflect.getDesignType(t,n)===Array,this.serializedName=i.name||F(n),this.class=i.class,this.fromJSON=this.createBuilder(),this.toJSON=i.toJSON||(r=>ft(r))}createBuilder(){if(this.options.fromJSON)return this.options.fromJSON;if(this.class&&this.class instanceof Function){let t=this.class;return n=>{let i=Te.get(t);return i?i.fromJson(n):$e(n,t)}}else return t=>Lt(this.target,this.propName,t)}};o(_e,"SerializedPropertySetting");var Je=_e;function lt(e,t){Ae(e,n=>{n.defaultIgnored=t})}o(lt,"setDefaultIgnored");function de(e,t,n){let i=N(e);Ae(i,r=>{r.add(new Je(e,t,n))})}o(de,"registerSerializedProperty");function Ae(e,t){let n=Reflect.getMetadata(_,e);n===void 0&&(n=new Ne),t(n),Reflect.defineMetadata(_,n,e)}o(Ae,"updateSerializeSettings");var Ui=_t();function _t(e){return e=e||{},(t,n)=>de(t,F(n),e)}o(_t,"Serialized");function Zi(e){return(t,n)=>de(t,F(n),{name:e})}o(Zi,"SerializedName");var qi=o((e,t)=>Ae(N(e),n=>n.ignoredProperties.push(t)),"IgnoreSerialization");function Yi(e){return JSON.stringify(typeof e=="object"?ke(e):e)}o(Yi,"serialize");function ft(e){if(e===void 0)throw new Error("attempt to serialize undefined value");if(e===null)return null;if(typeof e=="object"){let t=Te.get(N(e));return t?t.toJson(e):ke(e)}return e}o(ft,"serializeTo");function ke(e){var s;if(e instanceof Array)return e.map(a=>ke(a));if(it(e)){let a={};return Object.entries(e).forEach(c=>{let[l,u]=c;a[l]=ft(u)}),a}let t=N(e);((s=y(t))==null?void 0:s.isSubClassOf("Mappable"))&&ve(t);let i=Reflect.getMetadata(_,t);if(i===void 0)return e;let r={};return Object.entries(e).forEach(a=>{let c=a[0];if(i.isPropertyIgnored(c))return;let l=a[1];if(l===void 0||l instanceof Function||typeof l=="symbol")return;let u=i.settingsByName[c],M=(u==null?void 0:u.serializedName)||c;u&&(u.isArray?l=l.map(v=>u.toJSON(v)):l=u.toJSON(l)),r[M]=l}),r}o(ke,"serializeToData");function $e(e,t){var n;if(typeof e=="string"&&(e=JSON.parse(e)),t===null||t===void 0)return e;try{let i=e,r=N(t),s=(n=y(r))==null?void 0:n.isSubClassOf("Mappable");s&&ve(r);let a=Te.get(r);if(a)return a.fromJson(i);let c=t instanceof Function?rt(t):t;if(typeof c=="object"&&zt(i,c),s){let l=me(c,r.name);if(!l.success)throw new Error(`JSON deserialize validate failed: ${Ge(l)} `)}return c}catch(i){throw console.error("failed to deserialize"),console.dir(i),i}}o($e,"deserialize");function vt(e,t){let n=typeof e=="string"?JSON.parse(e):e;return n instanceof Array?n.map(i=>$e(i,t)):[]}o(vt,"deserializeArray");function zt(e,t){let n=N(t),i=Reflect.getMetadata(_,n);if(i===void 0){Object.assign(t,e);return}Object.keys(e).forEach(r=>{let s=i.settingsBySerializedName[r],a=e[r];if(s===void 0){i.defaultIgnored||R(t,r,a);return}let c=s.propName;if(i.isPropertyIgnored(c))return;let l;l=a instanceof Array?a.map(u=>s.fromJSON(u)):s.fromJSON(a),R(t,c,l)}),st(t,ct)}o(zt,"deserializeFrom");function Qi(e){return Reflect.getMetadata(_,e)}o(Qi,"getSerializeSettings");function Lt(e,t,n){let i=Reflect.getDesignType(e,t);if(i===void 0)return n;if(i===Array)return vt(n);let r=Te.get(i);return r?r.fromJson(n):$e(n,i)}o(Lt,"getValueByReflectType");function N(e){return e instanceof Function?e:e.constructor}o(N,"classOf");function Bt(e){return e()}o(Bt,"run");var Te=Bt(()=>{let e=new Map;function t(i){return e.get(i)}o(t,"get");function n(i,r){e.set(i,r)}return o(n,"register"),n(String,{fromJson:F,toJson:Ve}),n(Number,{fromJson:Ie,toJson:Ve}),n(Boolean,{fromJson:nt,toJson:Ve}),n(Date,{fromJson:o(i=>new Date(Ie(i)),"fromJson"),toJson:o(i=>i.getTime(),"toJson")}),{get:t,register:n}}),Ve=o(e=>e,"itSelf"),Hi=o(()=>{},"done"),Xi=ot(ct);var ut=new Map;function ve(e){if(ut.get(e))return;let t=y(e),n=new Proxy({},{get(r,s){return i(s)},set(r,s,a){return i(s)(a),!0}});function i(r){return(s,a)=>{var u,M,v;let c=(M=(u=Object.values((t==null?void 0:t.allProperties)||{}))==null?void 0:u.find(pt=>pt.name===r))==null?void 0:M.type,l=(c==null?void 0:c.name)!==void 0?xe(c.name):void 0;c&&Ce.isArrayType(c)&&(l=((v=c.arrayElementType)==null?void 0:v.name)!==void 0?xe(c.arrayElementType.name):void 0),typeof r=="string"&&(de(e.prototype,r,{name:s,class:l,fromJSON:a==null?void 0:a.fromJSON,toJSON:a==null?void 0:a.toJSON}),lt(e,!0))}}o(i,"doMap"),e.prototype.mapping(n),ut.set(e,!0)}o(ve,"registerMappable");function rr(e,t){let n=y(e);n&&n.properties.forEach(i=>t[i.name]())}o(rr,"mapAllProperties");import"reflect-metadata";var Gt="design:type",Kt="design:returntype",Wt="design:paramtypes";function Ut(e,t){return Reflect.getMetadata(Gt,e,t)}o(Ut,"getDesignType");function Zt(e,t){return Reflect.getMetadata(Kt,e,t)}o(Zt,"getReturnType");function qt(e,t){return Reflect.getMetadata(Wt,e,t)}o(qt,"getParamTypes");function Yt(e,t,n,i){let r=(i===void 0?Reflect.getMetadata(e,n):Reflect.getMetadata(e,n,i))||[];r.includes(t)||r.push(t),i===void 0?Reflect.defineMetadata(e,r,n):Reflect.defineMetadata(e,r,n,i)}o(Yt,"addMetadataList");Object.assign(Reflect,{getDesignType:Ut,getReturnType:Zt,getParamTypes:qt,addMetadataList:Yt});export{Xi as AfterSerialized,qi as IgnoreSerialization,_i as Lazy,P as PropertyWrapper,Sn as ReflectClass,xi as ReflectValidate,_t as Serialized,Ui as SerializedClass,Zi as SerializedName,Ce as TypeDefinition,z as ValidateResult,nt as asBoolean,Ie as asNumber,F as asString,Zn as assertType,st as callDecoratedMethod,rt as createInstance,ot as defineDecoratedProperty,$e as deserialize,vt as deserializeArray,zt as deserializeFrom,Hi as done,f as failedResult,ye as getAnyValue,xe as getClassByName,y as getClassDefinition,Ft as getDecoratedProperty,at as getDecoratedPropertyValue,ee as getEnumDefinition,Pn as getEnumNames,jn as getEnumValues,Ge as getErrorTraceMessages,I as getInterfaceDefinition,Ji as getOrSetValue,Qi as getSerializeSettings,Ye as getTypeAliasDefinition,h as getTypeDef,Fi as hasDecoratedMethod,On as initReflectContext,it as isDictionary,qn as isNullable,Pt as isType,Ve as itSelf,rr as mapAllProperties,ve as registerMappable,de as registerSerializedProperty,wi as safeCall,Yi as serialize,ft as serializeTo,ke as serializeToData,R as setAnyValue,lt as setDefaultIgnored,p as successResult,yi as validateArray,di as validateDictionary,Ri as validateFunctionArgument,me as validateInstance};
|
package/dist/esm/parser/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
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:
|
|
3
|
-
${
|
|
1
|
+
var F=(e,n,s)=>new Promise((t,c)=>{var a=T=>{try{d(s.next(T))}catch(D){c(D)}},o=T=>{try{d(s.throw(T))}catch(D){c(D)}},d=T=>T.done?t(T.value):Promise.resolve(T.value).then(a,o);d((s=s.apply(e,n)).next())});import J from"typescript";import i from"typescript";import*as N from"fs";import*as v from"process";import*as R from"path";import{pathToFileURL as le}from"url";var G={OUTPUT_LOG:!1},A=new Map,b=new Map,L=new Map,k=new Map,B=new Map,$=new Set,W={[i.SyntaxKind.BooleanKeyword]:"boolean",[i.SyntaxKind.StringKeyword]:"string",[i.SyntaxKind.BigIntKeyword]:"bigint",[i.SyntaxKind.NumberKeyword]:"number",[i.SyntaxKind.SymbolKeyword]:"symbol",[i.SyntaxKind.VoidKeyword]:"void",[i.SyntaxKind.UndefinedKeyword]:"undefined",[i.SyntaxKind.UnknownKeyword]:"unknown",[i.SyntaxKind.AnyKeyword]:"any",[i.SyntaxKind.ObjectKeyword]:"object"},_="any",Y=["string","number","boolean","bigint","symbol"],Z=["any","Promise","Date","Error","undefined","unknown","object","Map","Set"],ee=["Mappable","EnableReflect"];[...Y,...Z,...ee].forEach(re);ee.forEach(e=>b.set(e,{name:e}));var C,Q=!1,w=Reflect;function Ne(e){return F(this,null,function*(){let{filePaths:n,exclude:s,sourceFolder:t,distFolder:c}=e;if(t=R.resolve(t||v.cwd()),c=R.resolve(c||v.cwd()),w.__classes!==void 0)return;n=fe(n);let a=n.map(o=>R.join(t,o));V(a,s),w.__classes={};for(let[o,d]of A)w.__classes[o]=d;w.__interfaces={};for(let[o,d]of b)w.__interfaces[o]=d;w.__typeAliases={};for(let[o,d]of k)w.__typeAliases[o]=d;w.__enums={};for(let[o,d]of L)w.__enums[o]=d;w.__constTypes={};for(let[o,d]of B)w.__constTypes[o]=d;yield Promise.all(n.map(o=>ne(o,c)))})}function ne(e,n){return F(this,null,function*(){let s=R.resolve(n,e);if(!N.existsSync(s))return;if(N.statSync(s).isDirectory()){let d=N.readdirSync(s);yield Promise.all(d.map(T=>ne(R.join(e,T),n)));return}if(!e.endsWith(".js"))return;let c=R.join(n,e),o=yield import(le(c).href);w.__classDef={},Object.values(o).forEach(d=>{typeof d=="function"&&(w.__classDef[d.name]=d)})})}function V(e,n){if(e||(e=[v.cwd()]),e=fe(e),!Q){let s=te(e,n),t=i.createProgram(s,{});C=t.getTypeChecker(),s=s.map(a=>H(a)),t.getSourceFiles().filter(a=>s.includes(H(a.fileName))||a.fileName.endsWith("/lib.es5.d.ts")).forEach(a=>{x(`parse file: ${a.fileName}`),ie(a)});for(let a of $.keys())!A.has(a)&&!b.has(a)&&!L.has(a)&&!k.has(a)&&!Y.includes(a)&&!Z.includes(a)&&(x(`remove unknown typeName: ${a}`),$.delete(a));Array.from(A.values()).forEach(he),Array.from(b.values()).forEach(we),[A,b,k].forEach(De),Q=!0}return{classDefinitions:A,interfaceDefinitions:b,enumDefinitions:L,typeAliasDefinitions:k,constTypeDefinitions:B}}function te(e,n){let s=[];return e.forEach(t=>{if(t=R.resolve(t),Re(t,n)){x(`ignore excluded ${t}`);return}if(!N.existsSync(t)){console.error(`Path ${t} does not exist.`);return}if(N.statSync(t).isFile()){s.push(t);return}N.readdirSync(t).forEach(o=>s.push(...te([R.join(t,o)],n)))}),s}function ie(e){i.isClassDeclaration(e)?pe(e):i.isInterfaceDeclaration(e)?ue(e):i.isEnumDeclaration(e)?me(e):i.isTypeAliasDeclaration(e)?de(e):i.isConstTypeReference(e)?ye(e):e.forEachChild(ie)}function pe(e){var d,T,D,E,K,P,u,h,I,y,p,m,M,j;let n=r(e.name);if(!n)return;let s=r((D=(T=(d=e.heritageClauses)==null?void 0:d.find(f=>f.token===i.SyntaxKind.ExtendsKeyword))==null?void 0:T.types)==null?void 0:D[0].expression),t=(K=(E=e.heritageClauses)==null?void 0:E.find(f=>f.token===i.SyntaxKind.ImplementsKeyword))==null?void 0:K.types.map(f=>r(f.expression)),c=[],a=[];for(let f of e.members)if(i.isPropertyDeclaration(f))c.push({name:r(f.name),isOptional:f.questionToken!==void 0,type:g(f),isPrivate:(P=f.modifiers)==null?void 0:P.some(l=>l.kind===i.SyntaxKind.PrivateKeyword),isStatic:(u=f.modifiers)==null?void 0:u.some(l=>l.kind===i.SyntaxKind.StaticKeyword),isReadonly:(h=f.modifiers)==null?void 0:h.some(l=>l.kind===i.SyntaxKind.ReadonlyKeyword)});else if(i.isMethodDeclaration(f))a.push({name:r(f.name),returnType:g(f),isPrivate:(I=f.modifiers)==null?void 0:I.some(l=>l.kind===i.SyntaxKind.PrivateKeyword),isStatic:(y=f.modifiers)==null?void 0:y.some(l=>l.kind===i.SyntaxKind.StaticKeyword),isAsync:(p=f.modifiers)==null?void 0:p.some(l=>l.kind===i.SyntaxKind.AsyncKeyword),args:f.parameters.map(l=>({name:r(l.name),type:g(l),isOptional:l.questionToken!==void 0}))});else if(i.isGetAccessorDeclaration(f)){let l=c.find(O=>O.name===r(f.name));l||(l={name:r(f.name),isOptional:f.questionToken===void 0,type:g(f)},c.push(l)),l.accessor=l.accessor||{},l.accessor.getter={isPrivate:((m=f.modifiers)==null?void 0:m.some(O=>O.kind===i.SyntaxKind.PrivateKeyword))||!1},l.isPrivate=l.accessor.getter.isPrivate}else if(i.isSetAccessorDeclaration(f)){let l=c.find(O=>O.name===r(f.name));l||(l={name:r(f.name),isOptional:f.questionToken===void 0,type:g(f)},c.push(l)),l.accessor=l.accessor||{},l.accessor.setter={isPrivate:((M=f.modifiers)==null?void 0:M.some(O=>O.kind===i.SyntaxKind.PrivateKeyword))||!1}}let o={name:n,superClassName:s,implementations:t,properties:c,methods:a,genericsParams:(j=e.typeParameters)==null?void 0:j.map(f=>r(f.name))};x(`Define class: ${r(e.name)}`),A.set(n,o)}function ue(e){var d,T,D,E,K,P;let n=r(e.name);if(!n)return;let s=((T=(d=e.heritageClauses)==null?void 0:d.find(u=>u.token===i.SyntaxKind.ExtendsKeyword))==null?void 0:T.types.map(u=>r(u.expression)))||[],t=[],c=[],a;for(let u of e.members)i.isPropertySignature(u)?t.push({name:r(u.name),isOptional:u.questionToken!==void 0,type:g(u),isPrivate:((D=u.modifiers)==null?void 0:D.some(h=>h.kind===i.SyntaxKind.PrivateKeyword))||!1,isReadonly:((E=u.modifiers)==null?void 0:E.some(h=>h.kind===i.SyntaxKind.ReadonlyKeyword))||!1}):i.isMethodSignature(u)?c.push({name:u.name.text,returnType:g(u),isPrivate:((K=u.modifiers)==null?void 0:K.some(h=>h.kind===i.SyntaxKind.PrivateKeyword))||!1,args:u.parameters.map(h=>({name:r(h.name),type:g(h),isOptional:h.questionToken!==void 0}))}):i.isIndexSignatureDeclaration(u)&&(a=g(u));let o=b.get(n);o?(o.implementations=U(o.implementations||[],s),o.methods=U(o.methods||[],c,(u,h)=>u.name===h.name),o.properties=U(o.properties||[],t,(u,h)=>u.name===h.name),o.indexElementType=a,x(`Merge interface ${r(e.name)}`)):(o={name:n,implementations:s,methods:c,properties:t,indexElementType:a,genericsParams:(P=e.typeParameters)==null?void 0:P.map(u=>r(u.name))},b.set(n,o),x(`Define interface ${r(e.name)}`))}function me(e){let n=r(e.name);n&&(L.set(n,{name:n,members:e.members.map(s=>({name:r(s.name),initializer:r(s.initializer)}))}),x(`Define enum: ${r(e.name)}`))}function de(e){var c;x(`Define typeAlias: ${r(e.name)}`);let n=g(e),s=(c=e.typeParameters)==null?void 0:c.map(a=>r(a.name)),t=r(e.name);k.set(t,{name:t,type:n,genericParams:s})}function ye(e){let n=e.parent.parent;i.isVariableDeclaration(n)&&n.initializer&&i.isAsExpression(n.initializer)&&B.set(r(n.name),se(n.initializer.expression))}function se(e){return i.isArrayLiteralExpression(e)?ge(e):i.isObjectLiteralExpression(e)?Te(e):i.isNumericLiteral(e)?"number":i.isStringLiteral(e)?"string":i.isBigIntLiteral(e)?"bigint":[i.SyntaxKind.TrueKeyword,i.SyntaxKind.FalseKeyword].includes(e.kind)?"boolean":_}function ge(e){let n=[];return e.elements.forEach(s=>{if(i.isStringLiteral(s))return n.push(r(s))}),n.length===0?_:n.length===1?n[0]:{unionMembers:n}}function Te(e){let n=[];return e.properties.map(s=>{i.isPropertyAssignment(s)?n.push({name:r(s.name),type:se(s.initializer)}):x(`unsupported property: ${s.name}`)}),{typeLiteralMembers:n}}function re(e){$.add(e)}function g(e,n=!1){if(e.type&&!n)return S(e.type);if(!C)return console.error("TypeChecker not initialized!"),_;let s=C.getTypeAtLocation(e),t=C.typeToTypeNode(s,void 0,void 0);return t?S("type"in t?t.type:t):_}function S(e){let n={};if(e===void 0)return _;if(i.isTypeReferenceNode(e))if(re(r(e.typeName)),e.typeArguments)n.generics=[r(e.typeName),...e.typeArguments.map(s=>S(s))];else return r(e.typeName);else if(i.isFunctionTypeNode(e))n.isFunction=!0;else if(i.isConstructorTypeNode(e))n.isConstructor=!0;else{if(i.isTypeQueryNode(e))return g(e);if(i.isTypeLiteralNode(e)){let s=[];e.members.forEach(t=>{i.isPropertySignature(t)?s.push({name:r(t.name),isOptional:t.questionToken!==void 0,type:g(t)}):i.isIndexSignatureDeclaration(t)?n.indexElementType=g(t):s.push({name:r(t.name)||"",isOptional:t.questionToken!==void 0,type:S()})}),n.typeLiteralMembers=s}else if(i.isArrayTypeNode(e))n.arrayElementType=S(e.elementType);else if(i.isTupleTypeNode(e))n.tupleMembers=e.elements.map(S);else if(i.isOptionalTypeNode(e))Object.assign(n,g(e)),n.isOptionalInTuple=!0;else{if(i.isRestTypeNode(e))return g(e);if(i.isUnionTypeNode(e))n.unionMembers=e.types.map(S);else if(i.isIntersectionTypeNode(e))n.intersectionMembers=e.types.map(S);else{if(i.isConditionalTypeNode(e))return g(e);if(i.isInferTypeNode(e))return g(e);if(i.isParenthesizedTypeNode(e))return g(e);if(i.isThisTypeNode(e))return g(e);if(i.isTypeOperatorNode(e)&&e.operator===i.SyntaxKind.KeyOfKeyword)return g(e,!0);if(i.isIndexedAccessTypeNode(e))return g(e,!0);if(i.isMappedTypeNode(e))n.indexElementType=S(e.type);else if(i.isLiteralTypeNode(e))n.literalValue=r(e.literal);else{if(Object.keys(W).includes(String(e.kind)))return W[e.kind]||_;if(i.isNamedTupleMember(e))Object.assign(n,g(e));else return g(e,!0)}}}}return n}var U=(e,n,s)=>[...(e==null?void 0:e.filter(t=>!(n!=null&&n.some(c=>(s||(()=>c===t))(c,t)))))||[],...n||[]];function q(e,n){if(e!==void 0&&e!==_)return typeof e=="string"?$.has(e)||n!=null&&n.includes(e)?e:void 0:e}function he(e){var n,s;(n=e.methods)==null||n.forEach(t=>oe(t,e.genericsParams)),(s=e.properties)==null||s.forEach(t=>ae(t,e.genericsParams))}function we(e){var n,s;(n=e.methods)==null||n.forEach(t=>oe(t,e.genericsParams)),(s=e.properties)==null||s.forEach(t=>ae(t,e.genericsParams))}function ae(e,n){e.type=q(e.type,n)}function oe(e,n){var s;(s=e.args)==null||s.forEach(t=>t.type=q(t.type,n)),e.returnType=q(e.returnType,n)}function r(e){if(!e)return e;if(e.end<0)return e.text;try{let n=e;return i.isQualifiedName(n)?r(n.right):n.getText()}catch(n){return e.text}}function z(e){e&&Object.entries(e).forEach(n=>{let[s,t]=n;t instanceof Array&&t.length===0||t===!1||t===void 0?delete e[s]:t.constructor===Array?t.forEach(z):t.constructor===Object&&z(t)})}function De(e){for(let n of e.values())z(n)}function Re(e,n){return n?(n=n instanceof Array?n:[n],n.some(s=>(s instanceof RegExp||(s=new RegExp(s.replace(/\./g,"\\.").replace(/\*/g,".*"))),e.match(s)))):!1}function H(e,n=v.cwd()){return X(e).replace(X(n)+"/","")}function X(e){let n=R.sep;return e.split(n).join("/")}function fe(e){return e instanceof Array?e:[e]}function x(e){G.OUTPUT_LOG&&console.log(e)}function ce(e){let{sourcePaths:n,exclude:s,forEnabledClassOnly:t,outputLog:c}=e;if(c&&(G.OUTPUT_LOG=!0),!n)throw new Error("need provide source paths for reflect loader");c&&console.log(`sourcePaths: ${n}, exclude: ${s}, forEnabledClassOnly: ${t}`);let{classDefinitions:a,interfaceDefinitions:o,enumDefinitions:d,typeAliasDefinitions:T}=V(n,s),D=[],E=[];function K(y){let p=[];return(()=>{let m=a.get(y);if(m){m.superClassName&&p.push(m.superClassName),p.push(...m.implementations||[]);return}let M=o.get(y);if(M){p.push(...M.implementations||[]);return}T.get(y)&&p.push(y)})(),p.flatMap(m=>[m,...K(m)])||[]}function P(y,p){return K(y.name).includes(p)}function u(y){if(J.isClassDeclaration(y)&&y.name!==void 0){let p=y.name.text,m=a.get(p);if(!p||!m||t&&!P(m,"EnableReflect"))return;E.push(`Reflect.__classDef = Object.assign(Reflect.__classDef || {}, { ${p} })`);return}y.forEachChild(u)}function h(){let y=[];return a.forEach((p,m)=>{t&&!P(p,"EnableReflect")||y.push(`Reflect.__classes = Object.assign(Reflect.__classes || {}, { ${m}: ${JSON.stringify(p)} })`)}),o.forEach((p,m)=>{t&&!P(p,"EnableReflect")||y.push(`Reflect.__interfaces = Object.assign(Reflect.__interfaces || {}, { ${m}: ${JSON.stringify(p)} })`)}),d.forEach((p,m)=>{y.push(`Reflect.__enums = Object.assign(Reflect.__enums || {}, { ${m}: ${JSON.stringify(p)} })`)}),T.forEach((p,m)=>{y.push(`Reflect.__typeAliases = Object.assign(Reflect.__typeAliases || {}, { ${m}: ${JSON.stringify(p)} })`)}),y.join(`
|
|
2
|
+
`)}return{outputAllMetas:h,transform:(y,p)=>{if(p.endsWith(".ts")&&!(typeof n=="string"?[n]:n).every(m=>!p.startsWith(m))){c&&console.log(`transform id: ${p}`);try{let m=J.createSourceFile(p,y,J.ScriptTarget.Latest,!1);return D.length=0,E.length=0,u(m),`${D.join(";")};${y};${E.join(";")}`}catch(m){return console.error(`[reflect-parser-plugin] Error processing ${p}:`,m),null}}}}}var Ee=process.cwd().replace(/\\/g,"/")+"/";function ke(e){let n=ce(e);return{name:"reflect-parser-plugin",enforce:"pre",transform:(s,t)=>(t=t.replace(Ee,""),t===e.entry?`${n.outputAllMetas()}
|
|
3
|
+
${s}`:n.transform(s,t))}}export{G as DEBUG_CONFIG,V as parseSource,ce as reflectLoader,ke as reflectParserPlugin,Ne as setupReflectTypes,ne as updateReflectModules};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-ref-kit",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.5",
|
|
4
4
|
"description": "Type reflection and validation library for TypeScript",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -26,24 +26,35 @@
|
|
|
26
26
|
},
|
|
27
27
|
"typesVersions": {
|
|
28
28
|
"*": {
|
|
29
|
-
"parser": [
|
|
30
|
-
|
|
29
|
+
"parser": [
|
|
30
|
+
"types/parser/index.d.ts"
|
|
31
|
+
],
|
|
32
|
+
"*": [
|
|
33
|
+
"types/index.d.ts"
|
|
34
|
+
]
|
|
31
35
|
}
|
|
32
36
|
},
|
|
33
37
|
"scripts": {
|
|
34
38
|
"build-types": "tsc --emitDeclarationOnly --outDir types",
|
|
35
39
|
"clean": "rimraf -rf dist types",
|
|
36
|
-
"
|
|
40
|
+
"lint": "npx eslint src",
|
|
41
|
+
"build": "npm run clean && npm run lint && node esbuild.config.js && node esbuild.parser.config.js && tsc --emitDeclarationOnly --outDir types"
|
|
37
42
|
},
|
|
38
43
|
"dependencies": {
|
|
39
44
|
"reflect-metadata": "^0.2.2",
|
|
40
45
|
"tslib": "^2.8.1"
|
|
41
46
|
},
|
|
42
47
|
"devDependencies": {
|
|
48
|
+
"@eslint/js": "^9.36.0",
|
|
43
49
|
"@types/node": "^24.2.0",
|
|
44
50
|
"esbuild": "^0.25.9",
|
|
51
|
+
"eslint": "^9.36.0",
|
|
52
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
53
|
+
"globals": "^16.4.0",
|
|
54
|
+
"jiti": "^2.6.0",
|
|
45
55
|
"rimraf": "^6.0.1",
|
|
46
56
|
"typescript": "^5.9.2",
|
|
57
|
+
"typescript-eslint": "^8.44.1",
|
|
47
58
|
"vite": "^7.1.4"
|
|
48
59
|
},
|
|
49
60
|
"private": false
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ReflectLoaderOptions } from './reflect-loader';
|
|
1
|
+
import type { Plugin } from 'vite';
|
|
2
|
+
import type { ReflectLoaderOptions } from './reflect-loader';
|
|
3
3
|
interface Options extends ReflectLoaderOptions {
|
|
4
4
|
entry: string;
|
|
5
5
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RawClassDefinition, RawInterfaceDefinition,
|
|
1
|
+
import type { RawClassDefinition, RawEnumDefinition, RawInterfaceDefinition, RawTypeAliasDefinition, RawTypeDef } from '../raw';
|
|
2
2
|
export declare const DEBUG_CONFIG: {
|
|
3
3
|
OUTPUT_LOG: boolean;
|
|
4
4
|
};
|
|
@@ -14,7 +14,7 @@ export declare function parseSource(filePaths?: string | string[], exclude?: Fil
|
|
|
14
14
|
classDefinitions: Map<string, RawClassDefinition>;
|
|
15
15
|
interfaceDefinitions: Map<string, RawInterfaceDefinition>;
|
|
16
16
|
enumDefinitions: Map<string, RawEnumDefinition>;
|
|
17
|
-
typeAliasDefinitions: Map<string,
|
|
17
|
+
typeAliasDefinitions: Map<string, RawTypeAliasDefinition>;
|
|
18
18
|
constTypeDefinitions: Map<string, RawTypeDef>;
|
|
19
19
|
};
|
|
20
20
|
export {};
|
package/types/raw.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export interface RawClassDefinition {
|
|
|
4
4
|
implementations?: string[];
|
|
5
5
|
methods?: RawMethodDefinition[];
|
|
6
6
|
properties?: RawPropertyDefinition[];
|
|
7
|
-
|
|
7
|
+
genericsParams?: string[];
|
|
8
8
|
}
|
|
9
9
|
export interface RawInterfaceDefinition {
|
|
10
10
|
name: string;
|
|
@@ -12,7 +12,7 @@ export interface RawInterfaceDefinition {
|
|
|
12
12
|
methods?: RawMethodDefinition[];
|
|
13
13
|
properties?: RawPropertyDefinition[];
|
|
14
14
|
indexElementType?: RawTypeDef;
|
|
15
|
-
|
|
15
|
+
genericsParams?: string[];
|
|
16
16
|
}
|
|
17
17
|
export interface RawEnumDefinition {
|
|
18
18
|
name: string;
|
|
@@ -21,6 +21,11 @@ export interface RawEnumDefinition {
|
|
|
21
21
|
initializer: string | undefined;
|
|
22
22
|
}[];
|
|
23
23
|
}
|
|
24
|
+
export interface RawTypeAliasDefinition {
|
|
25
|
+
name: string;
|
|
26
|
+
genericParams?: string[];
|
|
27
|
+
type: RawTypeDef;
|
|
28
|
+
}
|
|
24
29
|
export interface RawMethodDefinition {
|
|
25
30
|
name: string;
|
|
26
31
|
isPrivate?: boolean;
|
|
@@ -39,6 +44,7 @@ export interface RawPropertyDefinition {
|
|
|
39
44
|
isPrivate?: boolean;
|
|
40
45
|
isStatic?: boolean;
|
|
41
46
|
type?: RawTypeDef;
|
|
47
|
+
isReadonly?: boolean;
|
|
42
48
|
accessor?: {
|
|
43
49
|
getter?: {
|
|
44
50
|
isPrivate: boolean;
|
|
@@ -62,20 +68,15 @@ export interface RawTypeDefinition {
|
|
|
62
68
|
isOptionalInTuple?: boolean;
|
|
63
69
|
isConstructor?: boolean;
|
|
64
70
|
}
|
|
65
|
-
export type
|
|
66
|
-
export type AnyObject = {
|
|
67
|
-
[prop: string]: Any;
|
|
68
|
-
};
|
|
69
|
-
export type AnyFunction = (...args: Any[]) => Any;
|
|
70
|
-
export type AnyConstructorFunction = new (...args: Any[]) => Any;
|
|
71
|
+
export type ConstructorFunction = new (...args: unknown[]) => unknown;
|
|
71
72
|
export type Dictionary<T> = {
|
|
72
73
|
[key: string]: T;
|
|
73
74
|
};
|
|
74
75
|
export interface ReflectObject {
|
|
75
|
-
__classDef: Dictionary<
|
|
76
|
+
__classDef: Dictionary<ConstructorFunction>;
|
|
76
77
|
__classes: Dictionary<RawClassDefinition>;
|
|
77
78
|
__interfaces: Dictionary<RawInterfaceDefinition>;
|
|
78
79
|
__enums: Dictionary<RawEnumDefinition>;
|
|
79
|
-
__typeAliases: Dictionary<
|
|
80
|
+
__typeAliases: Dictionary<RawTypeAliasDefinition>;
|
|
80
81
|
__constTypes: Dictionary<RawTypeDef>;
|
|
81
82
|
}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import type { ReflectPropertyKey } from './reflect-extension';
|
|
2
|
-
import type { Any } from './types';
|
|
3
2
|
export declare function defineDecoratedProperty(metaKey: symbol): PropertyDecorator;
|
|
4
|
-
export declare function callDecoratedMethod<Self extends object>(self: Self, metaKey: symbol, ...args:
|
|
3
|
+
export declare function callDecoratedMethod<Self extends object, R>(self: Self, metaKey: symbol, ...args: unknown[]): R | undefined;
|
|
5
4
|
export declare function hasDecoratedMethod<Self extends object>(self: Self, metaKey: symbol): boolean;
|
|
6
5
|
export declare function getDecoratedProperty(target: object, metaKey: symbol): ReflectPropertyKey | undefined;
|
|
7
6
|
export declare function getDecoratedPropertyValue<V>(target: object, metaKey: symbol): V | undefined;
|
|
8
7
|
export declare const PropertyWrapper: IPropertyWrapper;
|
|
9
8
|
type IPropertyWrapper = {
|
|
10
|
-
getField: (owner: object, property: ReflectPropertyKey, fieldSymbol: symbol) =>
|
|
11
|
-
setField: (owner: object, property: ReflectPropertyKey, newValue:
|
|
9
|
+
getField: <T>(owner: object, property: ReflectPropertyKey, fieldSymbol: symbol) => T;
|
|
10
|
+
setField: <T>(owner: object, property: ReflectPropertyKey, newValue: T, fieldSymbol: symbol) => void;
|
|
12
11
|
} & (<T>({ getter, setter, fieldSymbol }: {
|
|
13
12
|
getter?: (self: object, property: ReflectPropertyKey) => T;
|
|
14
13
|
setter?: (self: object, newValue: T, property: ReflectPropertyKey) => void;
|
|
15
14
|
fieldSymbol: symbol;
|
|
16
15
|
}) => PropertyDecorator);
|
|
17
|
-
export declare function Lazy(creator: (self: object, property: ReflectPropertyKey) =>
|
|
16
|
+
export declare function Lazy<T>(creator: (self: object, property: ReflectPropertyKey) => T): PropertyDecorator;
|
|
18
17
|
export {};
|
|
@@ -1,15 +1,39 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
|
-
import type {
|
|
2
|
+
import type { Class, ClassOrInstance, ConstructorFunction, JsonObject, JsonValue } from './types';
|
|
3
3
|
type FromJSON<T> = (jsonValue: JsonValue) => T;
|
|
4
4
|
type ToJSON<T> = (obj: T) => JsonValue;
|
|
5
|
-
type SerializedOptions<T> = {
|
|
5
|
+
type SerializedOptions<T = unknown> = {
|
|
6
6
|
name?: string;
|
|
7
7
|
class?: Class<T>;
|
|
8
8
|
fromJSON?: FromJSON<T>;
|
|
9
9
|
toJSON?: ToJSON<T>;
|
|
10
10
|
};
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
declare class SerializeSettings {
|
|
12
|
+
settingsByName: {
|
|
13
|
+
[propName: string]: SerializedPropertySetting;
|
|
14
|
+
};
|
|
15
|
+
settingsBySerializedName: {
|
|
16
|
+
[serializedName: string]: SerializedPropertySetting;
|
|
17
|
+
};
|
|
18
|
+
ignoredProperties: (string | symbol)[];
|
|
19
|
+
defaultIgnored: boolean;
|
|
20
|
+
add<T>(prop: SerializedPropertySetting<T>): void;
|
|
21
|
+
isPropertyIgnored(propName: string): boolean;
|
|
22
|
+
}
|
|
23
|
+
declare class SerializedPropertySetting<T = unknown> {
|
|
24
|
+
target: object;
|
|
25
|
+
propName: string;
|
|
26
|
+
options: SerializedOptions<T>;
|
|
27
|
+
serializedName: string;
|
|
28
|
+
class?: Class<T>;
|
|
29
|
+
isArray: boolean;
|
|
30
|
+
fromJSON: FromJSON<T>;
|
|
31
|
+
toJSON: ToJSON<T>;
|
|
32
|
+
constructor(target: object, propName: string, options: SerializedOptions<T>);
|
|
33
|
+
createBuilder(): FromJSON<T>;
|
|
34
|
+
}
|
|
35
|
+
export declare function setDefaultIgnored(clazz: ConstructorFunction, defaultIgnored: boolean): void;
|
|
36
|
+
export declare function registerSerializedProperty<T>(target: object, propName: string, options: SerializedOptions<T>): void;
|
|
13
37
|
export declare const SerializedClass: PropertyDecorator;
|
|
14
38
|
export declare function Serialized<T extends object>(options?: SerializedOptions<T>): PropertyDecorator;
|
|
15
39
|
export declare function SerializedName(serializedName: string): PropertyDecorator;
|
|
@@ -23,16 +47,15 @@ export declare function serializeTo<T>(value: T): JsonValue;
|
|
|
23
47
|
* convert an object to data object
|
|
24
48
|
*/
|
|
25
49
|
export declare function serializeToData<T extends object>(object: T): JsonObject | JsonObject[];
|
|
26
|
-
export declare function deserialize<T>(json:
|
|
50
|
+
export declare function deserialize<T>(json: JsonValue, constructorOrTarget?: ClassOrInstance<T>): T;
|
|
27
51
|
export declare function deserializeArray<T>(json: string | JsonValue[], clazz?: Class<T>): T[];
|
|
28
|
-
export declare function deserializeFrom<T extends
|
|
29
|
-
export declare function getSerializeSettings(clazz:
|
|
52
|
+
export declare function deserializeFrom<T extends object>(data: JsonObject, target: T): void;
|
|
53
|
+
export declare function getSerializeSettings(clazz: ConstructorFunction): SerializeSettings | undefined;
|
|
30
54
|
export interface JsonValueTransform<T> {
|
|
31
55
|
fromJson: FromJSON<T>;
|
|
32
56
|
toJson: ToJSON<T>;
|
|
33
57
|
}
|
|
34
|
-
export declare
|
|
35
|
-
export declare const
|
|
36
|
-
export declare const done: () => any;
|
|
58
|
+
export declare const itSelf: <T, R>(some: T) => R;
|
|
59
|
+
export declare const done: () => void;
|
|
37
60
|
export declare const AfterSerialized: PropertyDecorator;
|
|
38
61
|
export {};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ConstructorFunction } from './types';
|
|
3
3
|
export type ReflectPropertyKey = string | symbol;
|
|
4
|
-
export type ReflectType = StringConstructor | NumberConstructor | BooleanConstructor | ObjectConstructor | ArrayConstructor | FunctionConstructor |
|
|
4
|
+
export type ReflectType = StringConstructor | NumberConstructor | BooleanConstructor | ObjectConstructor | ArrayConstructor | FunctionConstructor | ConstructorFunction;
|
|
5
5
|
declare global {
|
|
6
6
|
namespace Reflect {
|
|
7
|
-
function getDesignType<T extends
|
|
8
|
-
function getReturnType<T extends
|
|
9
|
-
function getParamTypes<T extends
|
|
10
|
-
function addMetadataList<T extends object>(key: symbol, value:
|
|
11
|
-
function addMetadataList<T extends object>(key: symbol, value:
|
|
7
|
+
function getDesignType<T extends object>(target: T, property: keyof T | ReflectPropertyKey): ReflectType | undefined;
|
|
8
|
+
function getReturnType<T extends object>(target: T, property: keyof T | ReflectPropertyKey): ReflectType | undefined;
|
|
9
|
+
function getParamTypes<T extends object>(target: T, property: keyof T | ReflectPropertyKey): ReflectType[] | undefined;
|
|
10
|
+
function addMetadataList<T extends object, V>(key: symbol, value: V, target: T): void;
|
|
11
|
+
function addMetadataList<T extends object, V>(key: symbol, value: V, target: T, property: ReflectPropertyKey): void;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
@@ -1,14 +1,6 @@
|
|
|
1
|
-
export type
|
|
2
|
-
export type
|
|
3
|
-
export type AnyConstructorFunction = new (...args: Any[]) => Any;
|
|
4
|
-
export type Class<T> = new (...args: Any[]) => T;
|
|
1
|
+
export type ConstructorFunction = new (...args: unknown[]) => unknown;
|
|
2
|
+
export type Class<T> = new (...args: unknown[]) => T;
|
|
5
3
|
export type ClassOrInstance<T> = T | Class<T>;
|
|
6
|
-
export type Dictionary<T> = {
|
|
7
|
-
[key: string | symbol]: T;
|
|
8
|
-
};
|
|
9
|
-
export type AnyObject = Dictionary<Any>;
|
|
10
|
-
export type Optional<T> = T | undefined;
|
|
11
|
-
export type Nullable<T> = T | null;
|
|
12
4
|
export type JsonValue = string | number | boolean | null | JsonObject | JsonObject[];
|
|
13
5
|
export type JsonObject = {
|
|
14
6
|
[propName: string]: JsonValue;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Class } from './types';
|
|
2
|
+
import type { Dictionary } from '../raw';
|
|
2
3
|
export declare function asBoolean(value: unknown): boolean;
|
|
3
4
|
export declare function asString(v: unknown): string;
|
|
4
5
|
export declare function asNumber(v: unknown): number;
|
|
5
|
-
export declare function setAnyValue<T>(target:
|
|
6
|
-
export declare function getAnyValue<T>(target:
|
|
7
|
-
export declare function getOrSetValue<T>(target:
|
|
8
|
-
export declare function isDictionary(value:
|
|
9
|
-
export declare function
|
|
6
|
+
export declare function setAnyValue<T>(target: object, field: string | number | symbol, value: T): void;
|
|
7
|
+
export declare function getAnyValue<T>(target: object, field: string | number | symbol): T | undefined;
|
|
8
|
+
export declare function getOrSetValue<T>(target: object, field: string | number | symbol, defaultWith: () => T): T;
|
|
9
|
+
export declare function isDictionary(value: unknown): value is Dictionary<unknown>;
|
|
10
|
+
export declare function createInstance<S, T extends S>(constructor: Class<T>, proto?: S): T;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import { GenericMethod, MethodDefinition } from './MethodDefinition';
|
|
1
|
+
import type { ConstructorFunction, Dictionary, RawClassDefinition } from '../raw';
|
|
2
|
+
import type { GenericMethod, MethodDefinition } from './MethodDefinition';
|
|
3
|
+
import type { PropertyDefinition, GenericProperty } from './PropertyDefinition';
|
|
3
4
|
import { type Implementation } from './InterfaceDefinition';
|
|
4
|
-
import { PropertyDefinition, GenericProperty } from './PropertyDefinition';
|
|
5
5
|
import { type TypeDefinition } from './TypeDefinition';
|
|
6
6
|
export declare class ClassDefinition {
|
|
7
7
|
readonly generics: string[];
|
|
@@ -10,12 +10,12 @@ export declare class ClassDefinition {
|
|
|
10
10
|
readonly superClass: ClassDefinition | undefined;
|
|
11
11
|
readonly methods: MethodDefinition[];
|
|
12
12
|
readonly properties: PropertyDefinition[];
|
|
13
|
-
readonly jsClass:
|
|
13
|
+
readonly jsClass: ConstructorFunction;
|
|
14
14
|
private readonly _implementationNames;
|
|
15
15
|
private readonly _implementations?;
|
|
16
16
|
private _allImplementations?;
|
|
17
17
|
constructor(def: RawClassDefinition & {
|
|
18
|
-
jsClass:
|
|
18
|
+
jsClass: ConstructorFunction;
|
|
19
19
|
});
|
|
20
20
|
get allMethods(): Dictionary<MethodDefinition>;
|
|
21
21
|
get allProperties(): Dictionary<PropertyDefinition>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { MethodDefinition } from './MethodDefinition';
|
|
1
|
+
import type { Dictionary, RawInterfaceDefinition } from '../raw';
|
|
2
|
+
import type { MethodDefinition } from './MethodDefinition';
|
|
3
|
+
import type { PropertyDefinition } from './PropertyDefinition';
|
|
3
4
|
import { type TypeDefinition } from './TypeDefinition';
|
|
4
|
-
import { PropertyDefinition } from './PropertyDefinition';
|
|
5
5
|
export type Implementation = InterfaceDefinition | TypeDefinition;
|
|
6
6
|
export declare class InterfaceDefinition {
|
|
7
7
|
readonly generics: string[];
|
|
@@ -16,7 +16,6 @@ export declare class InterfaceDefinition {
|
|
|
16
16
|
get allImplementations(): Implementation[];
|
|
17
17
|
get type(): TypeDefinition;
|
|
18
18
|
toString(): string;
|
|
19
|
-
buildBaseObject(): {};
|
|
20
19
|
}
|
|
21
20
|
export declare class GenericInterface extends InterfaceDefinition {
|
|
22
21
|
genericArgs: TypeDefinition[];
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { type Dictionary, type RawMethodDefinition } from '../raw';
|
|
2
2
|
import { type TypeDefinition } from './TypeDefinition';
|
|
3
|
+
type MethodArg = {
|
|
4
|
+
name: string;
|
|
5
|
+
type: TypeDefinition;
|
|
6
|
+
isOptional: boolean;
|
|
7
|
+
};
|
|
3
8
|
export declare class MethodDefinition {
|
|
4
9
|
protected rawDef: RawMethodDefinition;
|
|
5
10
|
constructor(def: RawMethodDefinition);
|
|
6
11
|
get name(): string;
|
|
7
12
|
get returnType(): TypeDefinition;
|
|
8
|
-
get args():
|
|
9
|
-
name: string;
|
|
10
|
-
type: TypeDefinition;
|
|
11
|
-
isOptional: boolean;
|
|
12
|
-
}[];
|
|
13
|
+
get args(): MethodArg[];
|
|
13
14
|
get isPrivate(): boolean;
|
|
14
15
|
get isStatic(): boolean;
|
|
15
16
|
get isAsync(): boolean;
|
|
@@ -18,10 +19,7 @@ export declare function fillMethod(rawMethod: RawMethodDefinition): MethodDefini
|
|
|
18
19
|
export declare class GenericMethod extends MethodDefinition {
|
|
19
20
|
genericContext: Dictionary<TypeDefinition>;
|
|
20
21
|
static create(proto: MethodDefinition, genericContext: Dictionary<TypeDefinition>): GenericMethod;
|
|
21
|
-
get args():
|
|
22
|
-
name: string;
|
|
23
|
-
type: TypeDefinition;
|
|
24
|
-
isOptional: boolean;
|
|
25
|
-
}[];
|
|
22
|
+
get args(): MethodArg[];
|
|
26
23
|
get returnType(): TypeDefinition;
|
|
27
24
|
}
|
|
25
|
+
export {};
|
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
import { type Dictionary, type RawPropertyDefinition } from '../raw';
|
|
2
2
|
import { type TypeDefinition } from './TypeDefinition';
|
|
3
|
+
type PropertyAccessor = {
|
|
4
|
+
getter?: {
|
|
5
|
+
isPrivate: boolean;
|
|
6
|
+
};
|
|
7
|
+
setter?: {
|
|
8
|
+
isPrivate: boolean;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
3
11
|
export declare class PropertyDefinition {
|
|
4
12
|
protected rawDef: RawPropertyDefinition;
|
|
5
13
|
constructor(def: RawPropertyDefinition);
|
|
6
14
|
get name(): string;
|
|
15
|
+
get isReadonly(): boolean;
|
|
7
16
|
get isOptional(): boolean;
|
|
8
17
|
get isPrivate(): boolean;
|
|
9
18
|
get isStatic(): boolean;
|
|
10
|
-
get accessor():
|
|
11
|
-
getter?: {
|
|
12
|
-
isPrivate: boolean;
|
|
13
|
-
};
|
|
14
|
-
setter?: {
|
|
15
|
-
isPrivate: boolean;
|
|
16
|
-
};
|
|
17
|
-
};
|
|
19
|
+
get accessor(): PropertyAccessor;
|
|
18
20
|
get type(): TypeDefinition;
|
|
21
|
+
get rawDefinition(): RawPropertyDefinition;
|
|
19
22
|
}
|
|
20
23
|
export declare function fillProperty(rawProperty: RawPropertyDefinition): PropertyDefinition;
|
|
21
24
|
export declare class GenericProperty extends PropertyDefinition {
|
|
@@ -23,3 +26,4 @@ export declare class GenericProperty extends PropertyDefinition {
|
|
|
23
26
|
static create(proto: PropertyDefinition, genericContext: Dictionary<TypeDefinition>): GenericProperty;
|
|
24
27
|
get type(): TypeDefinition;
|
|
25
28
|
}
|
|
29
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Dictionary, RawTypeDefinition } from '../raw';
|
|
2
|
-
import { ClassDefinition } from './ClassDefinition';
|
|
3
|
-
import { PropertyDefinition } from './PropertyDefinition';
|
|
2
|
+
import type { ClassDefinition } from './ClassDefinition';
|
|
3
|
+
import type { PropertyDefinition } from './PropertyDefinition';
|
|
4
4
|
export declare const anyType: {
|
|
5
5
|
name: string;
|
|
6
6
|
};
|
|
@@ -19,6 +19,7 @@ export interface TypeDefinition {
|
|
|
19
19
|
isOptionalInTuple?: boolean;
|
|
20
20
|
isConstructor?: boolean;
|
|
21
21
|
generics?: TypeDefinition[];
|
|
22
|
+
indexElementType?: TypeDefinition;
|
|
22
23
|
classDefinition?: ClassDefinition;
|
|
23
24
|
}
|
|
24
25
|
export declare const primitiveTypes: string[];
|
|
@@ -50,6 +51,9 @@ export declare function isClassDefinition(type: TypeDefinition): type is {
|
|
|
50
51
|
export declare function hasGenerics(type: TypeDefinition): type is {
|
|
51
52
|
generics: TypeDefinition[];
|
|
52
53
|
};
|
|
54
|
+
export declare function isIndexType(type: TypeDefinition): type is {
|
|
55
|
+
indexElementType: TypeDefinition;
|
|
56
|
+
};
|
|
53
57
|
export declare function getTypeDefinition(typeName: string, genericArgs?: TypeDefinition[]): TypeDefinition;
|
|
54
58
|
export declare function fillType(rawType: RawTypeDefinition | string | undefined, genericContext?: Dictionary<TypeDefinition>, genericArgs?: TypeDefinition[]): TypeDefinition;
|
|
55
59
|
export declare const TypeDefinition: {
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
export declare class ValidateResult {
|
|
2
2
|
readonly success: boolean;
|
|
3
|
-
readonly
|
|
3
|
+
readonly errorCode?: number;
|
|
4
|
+
readonly errorDesc?: string;
|
|
4
5
|
readonly cause?: ValidateResult;
|
|
5
6
|
private constructor();
|
|
6
7
|
static success: ValidateResult;
|
|
7
|
-
static failure(
|
|
8
|
+
static failure(errorCode: number, errorDesc: string, cause?: ValidateResult): ValidateResult;
|
|
8
9
|
get errorStackFlow(): string;
|
|
10
|
+
get errorMessage(): string;
|
|
9
11
|
}
|
|
10
12
|
interface FailureResult extends ValidateResult {
|
|
11
13
|
cause?: FailureResult;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { type AnyFunction } from '../raw';
|
|
2
1
|
declare const VALIDATE_WRAPPER: unique symbol;
|
|
3
2
|
declare global {
|
|
4
3
|
interface Function {
|
|
5
|
-
[VALIDATE_WRAPPER]:
|
|
4
|
+
[VALIDATE_WRAPPER]: Function;
|
|
6
5
|
}
|
|
7
6
|
}
|
|
8
7
|
export declare const ReflectValidate: MethodDecorator;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Dictionary } from '../raw';
|
|
2
|
-
import { ValidateResult } from './ValidateResult';
|
|
3
|
-
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function
|
|
2
|
+
import type { ValidateResult } from './ValidateResult';
|
|
3
|
+
import type { Type } from './assert-type';
|
|
4
|
+
export declare function validateInstance<T extends object>(instance: T, type?: Type, depth?: number): ValidateResult;
|
|
5
|
+
export declare function validateArray<T extends object>(array: T[], type?: Type, depth?: number): ValidateResult;
|
|
6
|
+
export declare function validateDictionary<T extends object>(dict: Dictionary<T>, type?: Type, depth?: number): ValidateResult;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { Dictionary } from '../raw';
|
|
2
|
-
import { ClassDefinition, GenericClass } from './ClassDefinition';
|
|
3
|
-
import { InterfaceDefinition, GenericInterface } from './InterfaceDefinition';
|
|
2
|
+
import type { ClassDefinition, GenericClass } from './ClassDefinition';
|
|
3
|
+
import type { InterfaceDefinition, GenericInterface } from './InterfaceDefinition';
|
|
4
4
|
export declare function createInstance<S, T extends S>(constructor: new (...args: unknown[]) => T, proto: S): T;
|
|
5
5
|
export declare function buildPropertiesAndMethods(ret: GenericClass | GenericInterface, proto: ClassDefinition | InterfaceDefinition): void;
|
|
6
6
|
export declare function toDictionary<T, R>(arr: T[], handler: (item: T) => [string, R]): Dictionary<R>;
|
|
7
7
|
export declare function mapNotNull<T, U>(arr: T[] | undefined, mapper: (item: T) => U | undefined): U[];
|
|
8
8
|
export declare function setValue<T>(target: unknown, field: string | symbol, value: T): void;
|
|
9
9
|
export declare function getValue<T>(target: unknown, field: string | symbol): T | undefined;
|
|
10
|
+
export declare function copy<T extends object>(obj: T): T;
|
|
@@ -1,17 +1,23 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ConstructorFunction, RawTypeDef } from '../raw';
|
|
2
|
+
import { type TypeDefinition } from './TypeDefinition';
|
|
2
3
|
import { ClassDefinition } from './ClassDefinition';
|
|
3
4
|
import { InterfaceDefinition } from './InterfaceDefinition';
|
|
4
5
|
import { EnumDefinition } from './EnumDefinition';
|
|
5
|
-
import { type TypeDefinition } from './TypeDefinition';
|
|
6
6
|
export declare const ReflectClass: ClassDecorator;
|
|
7
|
-
export declare function getClassByName(className: string):
|
|
8
|
-
export declare function getClassDefinition(arg:
|
|
7
|
+
export declare function getClassByName(className: string): ConstructorFunction | undefined;
|
|
8
|
+
export declare function getClassDefinition(arg: ConstructorFunction | object | string): ClassDefinition | undefined;
|
|
9
9
|
export declare function getInterfaceDefinition(name: string): InterfaceDefinition | undefined;
|
|
10
10
|
export declare function getEnumDefinition(name: string): EnumDefinition | undefined;
|
|
11
11
|
export declare function getEnumNames(enumName: string): string[];
|
|
12
12
|
export declare function getEnumValues(args: {
|
|
13
13
|
[enumName: string]: Record<string, string | number>;
|
|
14
14
|
}): (string | number)[];
|
|
15
|
-
export
|
|
15
|
+
export interface TypeAliasDefinition {
|
|
16
|
+
name: string;
|
|
17
|
+
genericParams?: string[];
|
|
18
|
+
type: TypeDefinition;
|
|
19
|
+
rawType: RawTypeDef;
|
|
20
|
+
}
|
|
21
|
+
export declare function getTypeAliasDefinition(name: string, genericArgs?: TypeDefinition[]): TypeAliasDefinition | undefined;
|
|
16
22
|
export declare function initReflectContext(): void;
|
|
17
23
|
export type EnableReflect = object;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { TypeDefinition } from './TypeDefinition';
|
|
2
|
+
import type { RawTypeDef } from '../raw';
|
|
3
|
+
import type { TypeAliasDefinition } from './reflect-context';
|
|
4
|
+
declare const SpecialTypes: readonly ["Partial", "Required", "Readonly", "Pick", "Omit", "Extract", "Exclude"];
|
|
5
|
+
type SpecialTypeName = (typeof SpecialTypes)[number];
|
|
6
|
+
export declare function isSpecialType(typeDef: RawTypeDef): typeDef is SpecialTypeName;
|
|
7
|
+
export declare function getSpecialTypeAlias(name: SpecialTypeName, args: [targetType: TypeDefinition, refType?: TypeDefinition]): TypeAliasDefinition | undefined;
|
|
8
|
+
export {};
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { type TypeDefinition } from './TypeDefinition';
|
|
2
|
-
import {
|
|
2
|
+
import type { ConstructorFunction } from '../raw';
|
|
3
|
+
import type { ValidateResult } from './ValidateResult';
|
|
4
|
+
import type { Type } from './assert-type';
|
|
5
|
+
export declare const preservedTypes: ConstructorFunction[];
|
|
3
6
|
export declare function validateValue(value: unknown, type: TypeDefinition, depth?: number): ValidateResult;
|
|
4
|
-
export declare function validateClassInstance<T extends object>(instance: T,
|
|
7
|
+
export declare function validateClassInstance<T extends object>(instance: T, type: Type, depth?: number): ValidateResult;
|
|
5
8
|
export declare function safeSetValue(target: object, propName: string, value: unknown): void;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function isPathMatch(filePath: string, pattern: string | string[]): boolean;
|