ts-ref-kit 1.1.24 → 1.1.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var J=Object.defineProperty,dn=Object.defineProperties,Tn=Object.getOwnPropertyDescriptor,gn=Object.getOwnPropertyDescriptors,Dn=Object.getOwnPropertyNames,ze=Object.getOwnPropertySymbols;var Xe=Object.prototype.hasOwnProperty,bn=Object.prototype.propertyIsEnumerable;var qe=(n,e,t)=>e in n?J(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,L=(n,e)=>{for(var t in e||(e={}))Xe.call(e,t)&&qe(n,t,e[t]);if(ze)for(var t of ze(e))bn.call(e,t)&&qe(n,t,e[t]);return n},X=(n,e)=>dn(n,gn(e)),o=(n,e)=>J(n,"name",{value:e,configurable:!0});var hn=(n,e)=>{for(var t in e)J(n,t,{get:e[t],enumerable:!0})},wn=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Dn(e))!Xe.call(n,r)&&r!==t&&J(n,r,{get:()=>e[r],enumerable:!(i=Tn(e,r))||i.enumerable});return n};var Mn=n=>wn(J({},"__esModule",{value:!0}),n);var Bn={};hn(Bn,{FailureResult:()=>ce,JSONError:()=>z,JSONTransfer:()=>Ke,ReflectConfig:()=>y,ReflectValidate:()=>Nn,TypeDefinition:()=>F,TypeParseError:()=>De,ValidationError:()=>h,assertType:()=>Sn,failedResult:()=>l,getClassByName:()=>Ze,getClassDefinition:()=>T,getDebugInfo:()=>Gn,getEnumDefinition:()=>N,getEnumNames:()=>rn,getEnumValues:()=>on,getErrorTraceMessages:()=>Rn,getInterfaceDefinition:()=>v,getTypeAliasDefinition:()=>ge,getTypeDef:()=>M,isNullable:()=>vn,isType:()=>un,registerSpecialType:()=>C,safeCall:()=>Jn,safeSetValue:()=>nn,successResult:()=>u,validateArray:()=>Vn,validateDictionary:()=>jn,validateInstance:()=>He,validateValue:()=>g});module.exports=Mn(Bn);var we=["string","number","boolean","bigint","symbol"],Ye={string:String,number:Number,boolean:Boolean,object:Object};var G=Reflect,B;function x(){if(B)return B;let n=G.__meta;if(n===void 0){y.validationErrorHandler(new h("No reflect meta found, reflect is disabled."));return}try{B=JSON.parse(xn(n))}catch(t){console.error(t),y.validationErrorHandler(new h("Illegal reflect meta found, reflect is disabled"));return}delete G.__meta;let e=B;return e.classDef=G.__classDef||{},delete G.__classDef,Reflect.defineProperty(G,"registerClass",{value:o(t=>Object.assign(e.classDef,t),"value")}),B}o(x,"getRawMeta");function xn(n){let e=atob(n),t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return new TextDecoder().decode(t)}o(xn,"decode");var Z=class Z{constructor(e){this.name=e.name,this.isReadOnly=!!e.isReadonly,this.isOptional=!!e.isOptional,this.isPrivate=!!e.isPrivate,this.isStatic=!!e.isStatic,this.accessor=e.accessor,this.rawType=e.type}get type(){return d({rawType:this.rawType})}static from(e){return new Z(e)}};o(Z,"PropertyDefinition");var P=Z,ee=class ee extends P{static create(e,t){let i=I(ee,e);return i.genericContext=t,i}get type(){return d({rawType:this.rawType,genericContext:this.genericContext})}};o(ee,"GenericProperty");var Y=ee;function I(n,e){let t=Object.create(n.prototype);return e!==void 0&&Object.assign(t,e),t}o(I,"createInstance");function ne(n,e){n.properties=e.properties.map(t=>Y.create(t,n.genericContext)),n.methods=e.methods.map(t=>H.create(t,n.genericContext)),n instanceof V&&e instanceof E&&e.constructorMethod!==void 0&&(n.constructorMethod=H.create(e.constructorMethod,n.genericContext))}o(ne,"buildPropertiesAndMethods");function Me(n,e){let t={};return n.forEach(i=>{let[r,s]=e(i);t[r]=s}),t}o(Me,"toDictionary");function te(n,e){return(n==null?void 0:n.map(e).filter(t=>t!==void 0))||[]}o(te,"mapNotNull");function xe(n,e,t){n!==void 0&&(n[e]=t)}o(xe,"setValue");function U(n,e){if(n!==void 0)return n[e]}o(U,"getValue");function S(n){return n===void 0?n:n.length>=2&&(n[0]==='"'&&n[n.length-1]==='"'||n[0]==="'"&&n[n.length-1]==="'")?n.substring(1,n.length-1):n}o(S,"trimQuotes");var Re=class Re{constructor(e){this.rawDef=e}get name(){return this.rawDef.name}get returnType(){return d({rawType:this.rawDef.returnType})}get args(){var e;return((e=this.rawDef.args)==null?void 0:e.map(t=>({name:t.name,type:d({rawType:t.type}),isOptional:t.isOptional})))||[]}get isPrivate(){return!!this.rawDef.isPrivate}get isStatic(){return!!this.rawDef.isStatic}get isAsync(){return!!this.rawDef.isAsync}get isConstructor(){return!!this.rawDef.isConstructor}};o(Re,"MethodDefinition");var ie=Re;function K(n){return new ie(n)}o(K,"fillMethod");var re=class re extends ie{static create(e,t){let i=I(re,e);return i.genericContext=t,i}get args(){var e;return((e=this.rawDef.args)==null?void 0:e.map(t=>({name:t.name,type:d({rawType:t.type,genericContext:this.genericContext}),isOptional:t.isOptional})))||[]}get returnType(){return d({rawType:this.rawDef.returnType,genericContext:this.genericContext})}};o(re,"GenericMethod");var H=re;var Q=class Q{constructor(e){var t,i,r,s;this.name=e.name,this._implementationNames=e.implementations||[],this.methods=((t=e.methods)==null?void 0:t.map(K))||[],this.properties=((i=e.properties)==null?void 0:i.map(P.from))||[],this.generics=(r=e.genericsParams)!=null?r:[],this.fromLib=(s=e.fromLib)!=null?s:!1}get implementations(){return this._implementations||(this._implementations=te(this._implementationNames,e=>{var t;return v(e)||((t=T(e))==null?void 0:t.type)||O(e)})),this._implementations}get allImplementations(){if(this._allImplementations===void 0){let e=new Set(this.implementations);this.implementations.forEach(t=>{t instanceof Q?t.allImplementations.forEach(i=>e.add(i)):e.add(t)}),this._allImplementations=Array.from(e)}return this._allImplementations}get type(){if(this.implementations.length===0)return{interfaceName:this.name,fromLib:this.fromLib,typeLiteralMembers:Object.values(this.properties)};let e={},t=[];return this.implementations.forEach(i=>{let r=i instanceof Q?i.type:i;r.typeLiteralMembers?r.typeLiteralMembers.forEach(s=>e[s.name]=s):t.push(r)}),this.properties.forEach(i=>e[i.name]=i),t.length>0?{interfaceName:this.name,fromLib:this.fromLib,intersectionMembers:[{typeLiteralMembers:Object.values(e)},...t]}:{interfaceName:this.name,fromLib:this.fromLib,typeLiteralMembers:Object.values(e)}}toString(){return`interface ${this.name}`}};o(Q,"InterfaceDefinition");var j=Q,se=class se extends j{constructor(){super(...arguments);this.genericArgs=[];this.properties=[];this.methods=[];this.genericContext={}}static create(t,i){let r=I(se,t);r.genericArgs=i;let s=r;return s.buildGenericContext(),ne(s,t),s}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((i,r)=>this.genericContext[i]=this.genericArgs[r])}};o(se,"GenericInterface");var oe=se,Ce=new Map;function v(n){var e,t;if(!Ce.has(n)){let i=(t=(e=x())==null?void 0:e.interfaces)==null?void 0:t[n];if(!i)return;Ce.set(n,new j(i))}return Ce.get(n)}o(v,"getInterfaceDefinition");var Pe=class Pe{constructor(e){var t,i,r,s;this.name=e.name,this.superClassName=e.superClassName||"Object",this.superClass=T(this.superClassName),this._implementationNames=e.implementations||[],this.constructorMethod=e.constructorMethod!==void 0?K(e.constructorMethod):void 0,this.methods=((t=e.methods)==null?void 0:t.map(K))||[],this.properties=((i=e.properties)==null?void 0:i.map(P.from))||[],this.jsClass=e.jsClass,this.generics=(r=e.genericsParams)!=null?r:[],this.fromLib=(s=e.fromLib)!=null?s:!1}get allMethods(){let e={};if(this.superClassName!=="Object"){let t=T(this.superClassName);t&&Object.assign(e,L({},t.allMethods))}return Object.assign(e,L({},Me(this.methods,t=>[t.name,t]))),e}get allProperties(){var e;return Object.assign(((e=this.superClass)==null?void 0:e.allProperties)||{},Me(this.properties,t=>[t.name,t]))}get implementations(){return this._implementations?this._implementations:te(this._implementationNames,e=>v(e)||O(e))}get allImplementations(){var e,t;if(this._allImplementations===void 0){let i=new Set(this.implementations);this.implementations.forEach(r=>{r instanceof j?r.allImplementations.forEach(s=>i.add(s)):i.add(r)}),(t=(e=this.superClass)==null?void 0:e.allImplementations)==null||t.forEach(r=>i.add(r)),this._allImplementations=Array.from(i)}return this._allImplementations}getProperty(e){return this.properties.find(t=>t.name===e)}get type(){var t,i;let e={};return(i=(t=this.superClass)==null?void 0:t.type.typeLiteralMembers)==null||i.forEach(r=>e[r.name]=r),this.properties.forEach(r=>e[r.name]=r),{name:this.name,classDefinition:this,typeLiteralMembers:Object.values(e),fromLib:this.fromLib}}isSubClassOf(e){var t;return this.name===e||(t=this.superClass)!=null&&t.isSubClassOf(e)?!0:this.implementations.map(i=>i.name).includes(e)}isSuperClassOf(e){if(this.name===e)return!0;let t=T(e);return t?t.isSubClassOf(this.name):!1}toString(){return`class ${this.name}`}};o(Pe,"ClassDefinition");var E=Pe,fe=class fe extends E{constructor(){super(...arguments);this.genericArgs=[];this.properties=[];this.methods=[];this.genericContext={}}static create(t,i){let r=I(fe,t);r.genericArgs=i;let s=r;return s.buildGenericContext(),ne(s,t),s}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((i,r)=>this.genericContext[i]=this.genericArgs[r])}};o(fe,"GenericClass");var V=fe,ae=new Map;function Ze(n){var e;return((e=T(n))==null?void 0:e.jsClass)||Ye[n]}o(Ze,"getClassByName");function T(n){var e,t,i,r,s,a;switch(typeof n){case"object":return T(n.constructor);case"function":let f=T(n.name);if(f)return f;let c=Array.from(ae.values()).find(w=>w.jsClass===n);if(c)return c;let m=(t=Object.entries(((e=x())==null?void 0:e.classDef)||{}).find(([w,R])=>R===n))==null?void 0:t[0];return m?T(m):void 0;case"string":let D=n;if(!ae.has(D)){let w=(r=(i=x())==null?void 0:i.classes)==null?void 0:r[D];if(!w)return;let R=(a=(s=x())==null?void 0:s.classDef)==null?void 0:a[D];ae.set(D,new E(X(L({},w),{jsClass:R})))}return ae.get(D)}}o(T,"getClassDefinition");var Oe=class Oe{constructor(){this.success=!0}};o(Oe,"SuccessResult");var Ie=Oe,$e=class $e{constructor(e,t,i){this.errorCode=e;this.errorDesc=t;this.success=!1;this.cause=i.cause,this.detailCause=i.detailCause,this.value=i.value,this.type=i.type,this.path=i.path}get errorStackFlow(){return this.cause?[this.errorMessage,this.cause.errorStackFlow].join(`
|
|
2
|
-
caused by: `):this.errorMessage}get errorMessage(){return`[Err${this.errorCode}] ${this.errorDesc}, path: ${this.errorPath}`}get errorPath(){var t,i;let e="";return this.path!==void 0&&(typeof this.path=="string"?e=`.${this.path}`:e=`[${this.path}]`),e+((i=(t=this.cause)==null?void 0:t.errorPath)!=null?i:"")}};o($e,"FailureResult");var ce=$e,u=new Ie,l=o((n,e,t)=>new ce(n,e,t),"failedResult");function
|
|
3
|
-
-> `)}o(Rn,"getErrorTraceMessages");var Ae=class Ae extends Error{constructor(e,t){super(e),this.failureResult=t}};o(Ae,"ValidationError");var h=Ae;var Le=[Promise,Date,Map,Set,Error,Function,Array,ArrayBuffer,RegExp];function g(n,e,t=1){var i;if(!y.validation)return u;if(e.validator)return e.validator(n,t);switch(!0){case e.name==="undefined":return n===void 0?u:l(100,`declared as ${p(e)} but actually not`,{value:n,type:e});case e.name==="null":return n===null?u:l(101,`declared as ${p(e)} but actually not`,{value:n,type:e});case tn(e):return u;case Te(e):return n instanceof Object?ke(n,e,t):l(200,`declared as ${p(e)} but actually not an object`,{value:n,type:e});case le(e):return Cn(n,e,t);case de(e):return In(n,e,t);case me(e):let r=[];for(let s of e.unionMembers||[]){let a=g(n,s,t);if(a.success)return u;r.push(a)}return e.unionMembers.length>1&&e.unionMembers.find(s=>s.name==="undefined")?((i=e.unionMembers.filter(s=>s.name!=="undefined"))==null?void 0:i.length)===1?l(321,`declared as ${p(e)} but not match`,{value:n,type:e,cause:r.find(s=>{var a;return((a=s.type)==null?void 0:a.name)!=="undefined"})}):l(321,`declared as ${p(e)} but all value not match`,{value:n,type:e,detailCause:r.filter(s=>{var a;return((a=s.type)==null?void 0:a.name)!=="undefined"})}):l(320,`declared as ${p(e)} but all value not match`,{value:n,type:e,detailCause:r});case ye(e):for(let s of e.intersectionMembers||[]){let a=g(n,s,t);if(!a.success)return l(330,`declared as ${p(e)} but all value not match`,{cause:a,value:n,type:e})}return u;case ve(e):return Pn(n,e,t);case ue(e):switch(typeof n){case"string":return n===S(e.literalValue)?u:l(110,`declared as string ${p(e)} but value not match`,{value:n,type:e});case"number":return n===Number(e.literalValue)?u:l(111,`declared as number ${p(e)} but value not match`,{value:n,type:e});case"bigint":return n===BigInt(e.literalValue)?u:l(112,`declared as bigint ${p(e)} but value not match`,{value:n,type:e});case"boolean":return n===!!e.literalValue?u:l(113,`declared as boolean ${p(e)} but value not match`,{value:n,type:e});default:return e.literalValue==="null"&&n===null?u:n===e.literalValue?u:l(114,`declared as ${p(e)} but value not match`,{value:n,type:e})}case pe(e):return On(n,e,t);case e.isFunction:case e.isConstructor:return typeof n=="function"?u:l(150,`declared as ${p(e)} but actually not`,{value:n,type:e});case Se(e):return n==null?l(120,`declared as ${p(e)} but actually ${n}`,{value:n,type:e}):typeof n===e.name?u:l(121,`declared as ${p(e)} but actually ${typeof n}`,{value:n,type:e});default:return $n(n,e,t)}}o(g,"validateValue");function Cn(n,e,t=1){if(!Array.isArray(n))return l(300,`declared as ${p(e)} but actually not`,{value:n,type:e});if(t===0)return u;for(let i=0;i<n.length;i++){let r=n[i],s=g(r,e.arrayElementType||b,t-1);if(!s.success)return l(301,`declared as ${p(e)} but [${i}] not match`,{cause:s,value:n,type:e,path:i})}return u}o(Cn,"validateArrayValue");function Pn(n,e,t=1){if(n===null)return l(400,"declared as indexedType but actually is null",{value:n,type:e});if(n===void 0)return l(401,"declared as indexedType but actually is undefined",{value:n,type:e});if(typeof n!="object")return l(410,`declared as indexedType but actually is ${typeof n}`,{value:n,type:e});for(let[i,r]of Object.entries(n)){let s=g(r,e.index.valueType,t-1);if(!s.success)return l(420,`declared as ${p(e)} but [${i}] not match`,{cause:s,value:n,type:e,path:i});if(e.index.keyType&&(s=g(i,e.index.keyType,t-1),!s.success))return l(421,`declared as ${p(e)} but [${i}] not match`,{cause:s,value:n,type:e,path:i})}return u}o(Pn,"validateIndexedValue");function In(n,e,t=1){if(!Array.isArray(n))return l(310,`declared as ${p(e)} but actually not a tuple`,{value:n,type:e});if(t===0)return u;let i=0;for(let r of e.tupleMembers){let s=n[i++];if(r.isOptionalInTuple&&s===void 0)continue;let a=g(s,r,t);if(!a.success)return l(311,`declared as ${p(e)} but not all values in tuple match`,{cause:a,value:n,type:e})}return u}o(In,"validateTupleValue");function On(n,e,t=1){if(n instanceof Object){for(let i of e.typeLiteralMembers||[]){if("isStatic"in i&&i.isStatic)return u;if(i.name.startsWith("[")&&i.name.endsWith("]"))return u;if(t===0)return u;let r=i.type||b;i.isOptional&&(r={unionMembers:[r,{name:"undefined"}]});let s=U(n,i.name),a=g(s,r,t-1);if(!a.success)return l(211,`declared ${i.name} as ${p(r)}, but not match`,{cause:a,value:n,type:e,path:i.name})}return u}else return l(210,`declared as ${p(e)} but not an object`,{value:n,type:e})}o(On,"validateProperties");function $n(n,e,t=1){let i=typeof e=="string"?e:e.name;if(!i)return u;if(n===void 0)return l(130,`declared as ${p(e)} but actually undefined`,{value:n,type:e});if(n===null)return l(131,`declared as ${p(e)} but actually null`,{value:n,type:e});for(let s of Le)if(i===s.name)return n instanceof s?u:l(132,`declared as ${p(e)} but actually ${n.constructor.name}`,{value:n,type:e});if(n instanceof Object&&!en(n,i))return l(133,`declared as ${p(e)} but actually not instance of it`,{value:n,type:e});if(t==0)return u;let r=g(n,O(i),t);return r.success?u:l(134,`declared as ${p(e)} but actually not match`,{cause:r,value:n,type:e})}o($n,"validateSimpleValue");function ke(n,e,t=3){if(e.classDefinition&&!en(n,e.classDefinition.name))return l(201,`declared as instance of ${p(e)} but actually not`,{value:n,type:e});if(e.name!=="any"&&e===b)return l(202,`${p(e)} not defined`,{value:n,type:e});let i=L({},e);return delete i.classDefinition,g(n,i,t)}o(ke,"validateClassInstance");function en(n,e){if(n===void 0||n.constructor.name===e)return!0;let t=T(e);if(!t)return!0;if(t.jsClass)return n instanceof t.jsClass;let i=T(n);return i?i.isSubClassOf(t.name):!1}o(en,"valueInstanceOf");function p(n){var e,t,i;return typeof n=="string"?n:Te(n)?n.classDefinition.name:n.interfaceName?n.interfaceName:n.typeAliasName?n.typeAliasName:le(n)?p(n.arrayElementType)+"[]":n.isConstructor?"Class":n.isFunction?"Function":pe(n)?"Object":de(n)?`(${n.tupleMembers.map(p).join(",")})`:me(n)?((e=n.unionMembers)==null?void 0:e.map(p).join(" | "))||"unknown":ye(n)?((t=n.intersectionMembers)==null?void 0:t.map(p).join(" & "))||"unknown":ue(n)?n.literalValue:ve(n)?`{ [${(i=n.index.keyType)!=null?i:"string"}]: ${p(n.index.valueType)} }`:n.name||"unknown"}o(p,"getTypeDisplayName");function nn(n,e,t){let i=T(n),r=y.validationErrorHandler;if(!i){xe(n,e,t);return}let s=i.allProperties[e];s||r(new h(`Property ${e} is not defined in ${i.name}`));let a=s==null?void 0:s.type,f=g(t,a);f.success||r(new h(f.errorMessage)),xe(n,e,t)}o(nn,"safeSetValue");var je=class je{constructor(e){var t;this.name=e.name,this.members=new Map,e.members.forEach(i=>{let r=i.initializer===void 0?{name:"number"}:{literalValue:i.initializer};this.members.set(i.name,r)}),this.fromLib=(t=e.fromLib)!=null?t:!1}get type(){return{name:this.name,unionMembers:Array.from(this.members.values()),fromLib:this.fromLib}}get names(){return Array.from(this.members.keys())}};o(je,"EnumDefinition");var Ve=je,Ee=new Map;function N(n){var e,t;if(!Ee.has(n)){let i=(t=(e=x())==null?void 0:e.enums)==null?void 0:t[n];if(!i)return;Ee.set(n,new Ve(i))}return Ee.get(n)}o(N,"getEnumDefinition");function rn(n){var e;return((e=N(n))==null?void 0:e.names)||[]}o(rn,"getEnumNames");function on(n){let e=Object.entries(n)[0];if(!e)return[];let[t,i]=e,r=N(t);return r?r.names.map(s=>i[s]):Array.from(Object.keys(i))}o(on,"getEnumValues");var Ne=new Map;function C(n){Ne.set(n.name,n)}o(C,"registerSpecialType");function sn(n){return Ne.has(n)}o(sn,"isSpecialType");function Fe(n,...e){let t=Ne.get(n);if(!t)return;let i=t.getType(...e);return i?{name:n,type:i,genericParams:t.genericParams,fromLib:!!t.fromLib}:void 0}o(Fe,"getSpecialTypeAlias");C({name:"Partial",genericParams:["T"],fromLib:!0,getType(...n){let e=n[0];return e?W(e,t=>t.isOptional=!0):void 0}});C({name:"Required",genericParams:["T"],fromLib:!0,getType(...n){let e=n[0];return e!=null?e:W(e,t=>t.isOptional=!1)}});C({name:"Readonly",genericParams:["T"],fromLib:!0,getType(...n){let e=n[0];return W(e,t=>t.isReadonly=!0)}});C({name:"Record",genericParams:["K","T"],fromLib:!0,getType(...n){let[e,t]=n;return{index:{keyType:e!=null?e:b,valueType:t!=null?t:b}}}});C({name:"Pick",genericParams:["T","K"],fromLib:!0,getType(...n){let[e,t]=n;if(e)return an(e,t)}});function an(n,e){var i,r;if(!e)return;let t=(r=(i=e.unionMembers)==null?void 0:i.map(s=>S(s.literalValue)))!=null?r:[S(e.literalValue)];if(n.typeLiteralMembers)return cn(n,s=>t.includes(s.name))}o(an,"getPickType");C({name:"Omit",genericParams:["T","K"],fromLib:!0,getType(...n){let[e,t]=n;if(e)return fn(e,t)}});function fn(n,e){var i,r;if(!e)return;let t=(r=(i=e.unionMembers)==null?void 0:i.map(s=>S(s.literalValue)))!=null?r:[S(e.literalValue)];if(n.typeLiteralMembers)return cn(n,s=>!t.includes(s.name))}o(fn,"getOmitType");C({name:"Extract",genericParams:["T","U"],fromLib:!0,getType(...n){let[e,t]=n;if(!(!e||!t)&&e.typeLiteralMembers&&t.typeLiteralMembers){let i={unionMembers:t.typeLiteralMembers.map(r=>({literalValue:r.name}))};return an(e,i)}}});C({name:"Exclude",genericParams:["T","U"],fromLib:!0,getType(...n){let[e,t]=n;if(!(!e||!t)&&e.typeLiteralMembers&&t.typeLiteralMembers){let i={unionMembers:t.typeLiteralMembers.map(r=>({literalValue:r.name}))};return fn(e,i)}}});C({name:"ReflectReference",genericParams:["T","R"],getType(...n){let[e,t]=n;if(e)return X(L({},e),{reflectReference:t})}});function W(n,e){return n.typeLiteralMembers?{typeLiteralMembers:n.typeLiteralMembers.map(t=>ln(t,e))}:n.unionMembers?{unionMembers:n.unionMembers.map(t=>W(t,e)).filter(t=>t!==void 0)}:n.intersectionMembers?{intersectionMembers:n.intersectionMembers.map(t=>W(t,e)).filter(t=>t!==void 0)}:void 0}o(W,"getMappedType");function cn(n,e){if(n.typeLiteralMembers)return{typeLiteralMembers:n.typeLiteralMembers.map(t=>e(t)?ln(t):void 0).filter(t=>!!t)}}o(cn,"getFilterKeyType");function ln(n,e){let t;return n instanceof P?t=new P({name:n.name,isReadonly:n.isReadOnly,isOptional:n.isOptional,isStatic:n.isStatic,accessor:n.accessor,type:n.rawType}):t={name:n.name,isOptional:n.isOptional,type:n.type},e==null||e(t),t}o(ln,"copyPropertyDefinition");function ge(n,e){var r,s,a;if(sn(n))return e?Fe(n,...e):Fe(n);if(!_e.has(n)){let f=(s=(r=x())==null?void 0:r.typeAliases)==null?void 0:s[n];if(!f||!f.type)return;_e.set(n,{name:n,type:f.type,genericParams:f.genericParams,fromLib:f.fromLib})}let t=_e.get(n);if(!t)return;let i;if(t.genericParams&&e){let f={};for(let c=0;c<t.genericParams.length;c++){let m=t.genericParams[c];f[m]=e[c]}i=d({rawType:t.type,genericContext:f,genericArgs:e})}else i=d({rawType:t.type});return i.typeAliasName=n,{name:t.name,type:i,genericParams:t.genericParams,fromLib:(a=t.fromLib)!=null?a:!1}}o(ge,"getTypeAliasDefinition");var _e=new Map;var b={name:"any"},An={name:"null"},Ln={name:"undefined"};function tn(n){return!!(n.name&&["any","void","unknown"].includes(n.name))}o(tn,"isIgnoredType");function Se(n){return!!(n.name&&we.includes(n.name))}o(Se,"isPrimitiveType");function le(n){return!!n.arrayElementType}o(le,"isArrayType");function ue(n){return!!n.literalValue}o(ue,"isLiteralType");function pe(n){return!!n.typeLiteralMembers}o(pe,"isTypeLiteralType");function me(n){return!!n.unionMembers}o(me,"isUnionType");function ye(n){return!!n.intersectionMembers}o(ye,"isIntersectionType");function de(n){return!!n.tupleMembers}o(de,"isTupleType");function Te(n){return!!n.classDefinition}o(Te,"isClassDefinition");function kn(n){return!!n.generics}o(kn,"hasGenerics");function ve(n){return!!n.index}o(ve,"isIndexType");function O(n,e){if(n==="any"||n==="Any"||n==="unknown"||n==="")return b;if(n==="null")return An;if(n==="undefined")return Ln;if(n==="Function")return{isFunction:!0};let t=T(n);if(t)return e?V.create(t,e).type:t.type;if(we.includes(n))return{name:n};if(Le.map(a=>a.name).includes(n))return{name:n,generics:e};let i=v(n);if(i)return i.fromLib?{name:n,generics:e}:e?oe.create(i,e).type:i.type;let r=N(n);if(r)return r.type;let s=ge(n,e);return s?s.type:(y.debug&&console.warn(`${n} not registered...`),b)}o(O,"getTypeDefinition");var Je=new Map;function d(n){let{rawType:e,genericContext:t,genericArgs:i}=n,r=Ge(e);if(e===void 0)return b;let s=Je.get(r);if(s)return s;let a={};if(Je.set(r,a),typeof e=="string")a=(t==null?void 0:t[e])||O(e,i)||b;else if(typeof e.literalValue=="string")a.literalValue=e.literalValue;else if(e.arrayElementType)Object.assign(a,{arrayElementType:d({rawType:e.arrayElementType,genericContext:t})});else if(e.unionMembers)Object.assign(a,{unionMembers:e.unionMembers.map(f=>d({rawType:f,genericContext:t}))});else if(e.intersectionMembers)Object.assign(a,{intersectionMembers:e.intersectionMembers.map(f=>d({rawType:f,genericContext:t}))});else if(e.tupleMembers)Object.assign(a,{tupleMembers:e.tupleMembers.map(f=>d({rawType:f,genericContext:t}))});else if(e.typeLiteralMembers)a.typeLiteralMembers=e.typeLiteralMembers.map(f=>({name:f.name,isOptional:!!f.isOptional,type:d({rawType:f.type,genericContext:t,genericArgs:i})}));else if(e.generics){let f=e.generics[0],c=e.generics.slice(1).map(m=>d({rawType:m,genericContext:t}));Object.assign(a,d({rawType:f,genericContext:t,genericArgs:c}))}else e.index&&Object.assign(a,{index:{keyType:e.index.keyType?d({rawType:e.index.keyType,genericContext:t}):void 0,valueType:d({rawType:e.index.valueType,genericContext:t})}});return Object.keys(a).length===0&&(a=b),Je.delete(r),a}o(d,"fillType");function Ge(n){return n===null?"null":n===void 0?"undefined":typeof n!="object"?JSON.stringify(n):Array.isArray(n)?"["+n.map(Ge).join(",")+"]":"{"+Object.keys(n).sort().map(t=>JSON.stringify(t)+":"+Ge(n[t])).join(",")+"}"}o(Ge,"stableStringify");var F={isPrimitiveType:Se,isArrayType:le,isLiteralType:ue,isTypeLiteralType:pe,isUnionType:me,isIntersectionType:ye,isTupleType:de,isClassDefinition:Te,hasGenerics:kn};function M(n){if(typeof n=="string"){let e=En(n);if(typeof e=="string"){let t=e.match(/"(.+)"$/)||e.match(/'(.+)'$/);if(t!=null&&t[1])return{literalValue:t[1]}}return typeof e=="string"?O(n):M(e)}return"array"in n?{arrayElementType:M(n.array)}:"union"in n?{unionMembers:n.union.map(M)}:"intersection"in n?{intersectionMembers:n.intersection.map(M)}:"tuple"in n?{tupleMembers:n.tuple.map(M)}:"generic"in n?O(n.name,n.generic.map(M)):n}o(M,"getTypeDef");function Sn(n,e,t=5){let i=g(n,M(e),t);return i.success||y.validationErrorHandler(new h(`assert failed with type: ${e}, ${i.errorStackFlow}`,i)),n}o(Sn,"assertType");function vn(n){return un(null,n)}o(vn,"isNullable");function un(n,e,t=5){return g(n,M(e),t).success}o(un,"isType");function En(n){let e=0,t="%%",i={};function r(c){let m=`${t}${e++}`;return i[m]=c,m}o(r,"addPlaceholder");function s(c){let m=c.match(new RegExp(`^(${t}\\d)$`));if(!m)return;let D=m[1].trim(),w=i[D];return delete i[D],w}o(s,"getPlaceholder");function a(c,m,D,w){let R=0;for(;R<c.length;){let $=c.indexOf(m,R);if($===-1)break;R=$+1;let k=c.indexOf(D,R);if(k===-1)throw new De("Illegal type string");let q=c.substring($+1,k),_=r(q);w?c=`${c.substring(0,$+1)}${_}${c.substring(k)}`:c=`${c.substring(0,$)}${_}${c.substring(k+1)}`}return c}o(a,"replaceBracket");function f(c){let m=c.trim(),D=o(A=>A.trim(),"trim"),w=o(A=>A.length!=0,"notEmpty");m=a(m,"(",")",!1),m=a(m,"<",">",!0);let R=s(m);if(R)return f(R);let $=m.split("|").map(D).filter(w);if($.length>1)return{union:$.map(f)};let k=m.split("&").map(D).filter(w);if(k.length>1)return{intersection:k.map(f)};let q=m.match(/^\[(.*)]$/);if(q)return{tuple:q[1].split(",").map(D).filter(w).map(f)};let _=m.match(/^(.+)\[]$/);if(_)return{array:f(_[1])};let be=m.match(/^([^<]+)<(.+)>$/);if(be){let A=be[1].trim(),he=f(be[2]);if(typeof he=="string"){let yn=he.split(",").map(D).filter(w).map(f);return{name:A,generic:yn}}else return{name:A,generic:[he]}}return m}return o(f,"parseTypeRecursive"),f(n)}o(En,"parseType");var Be=class Be extends Error{};o(Be,"TypeParseError");var De=Be;function He(n,e,t=3){return y.validation?(e=e||n.constructor.name,ke(n,M(e),t)):u}o(He,"validateInstance");function Vn(n,e,t=2){if(!y.validation)return u;for(let i=0;i<n.length;i++){let r=He(n[i],e,t);if(!r.success)return l(220,`declared as instance of ${e}[] but [${i}] actually not`,{cause:r,value:n,type:e})}return u}o(Vn,"validateArray");function jn(n,e,t=2){if(!y.validation)return u;let i=Object.entries(n);for(let r=0;r<i.length;r++){let[s,a]=i[r],f=He(a,e,t);if(!f.success)return l(230,`declared as instance of Dictionary<${e}> but [${s}] actually not`,{cause:f,value:n,type:e})}return u}o(jn,"validateDictionary");var pn=Symbol("VALIDATE_WRAPPER"),Nn=o((n,e,t)=>Fn(n,e,t),"ReflectValidate");function Fn(n,e,t){if(!y.validation)return;let i=t.value;if(typeof i!="function"||U(i,pn))return;let r=o(()=>{var c,m;return(m=(c=T(n))==null?void 0:c.methods)==null?void 0:m.find(D=>D.name===e)},"getMethodDef"),s=o(c=>mn(n,r(),c),"validateArgs"),a=o(c=>_n(n,r(),c),"validateReturn"),f=o(function(...c){s(c);let m=i.call(this,...c);return a(m)},"newFunc");f[pn]=i,t.value=f}o(Fn,"wrapValidateMethod");function mn(n,e,t){var i;(i=e==null?void 0:e.args)==null||i.forEach((r,s)=>{let a=t==null?void 0:t[s];if(a===void 0)if(!r.isOptional)y.validationErrorHandler(new h(`Illegal arguments for ${Ue(n.constructor.name,e)}: ${r.name} is not optional`));else return;let f=g(a,r.type||b,1);f.success||(console.error("validateResult",f),y.validationErrorHandler(new h(`Illegal arguments for ${Ue(n.constructor.name,e)}: ${r.name}: ${r.name} ${f.errorMessage}`,f)))})}o(mn,"validateMethodParams");function _n(n,e,t){var s;if(!e)return t;let i=o((a,f)=>{let c=g(a,f,5);return c.success||(console.error(c.errorStackFlow),y.validationErrorHandler(new h(`result for ${Ue(n.constructor.name,e)} doesn't match type ${f.name}:
|
|
4
|
-
${c.errorStackFlow}`,c))),a},"checkValue"),r=e.returnType;return r.name==="Promise"&&(r=((s=r.generics)==null?void 0:s[0])||b),t instanceof Promise?t.then(a=>i(a,r||b)):i(t,r||b)}o(
|
|
1
|
+
"use strict";var J=Object.defineProperty,gn=Object.defineProperties,Dn=Object.getOwnPropertyDescriptor,bn=Object.getOwnPropertyDescriptors,hn=Object.getOwnPropertyNames,ze=Object.getOwnPropertySymbols;var Xe=Object.prototype.hasOwnProperty,wn=Object.prototype.propertyIsEnumerable;var qe=(n,e,t)=>e in n?J(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,L=(n,e)=>{for(var t in e||(e={}))Xe.call(e,t)&&qe(n,t,e[t]);if(ze)for(var t of ze(e))wn.call(e,t)&&qe(n,t,e[t]);return n},X=(n,e)=>gn(n,bn(e)),o=(n,e)=>J(n,"name",{value:e,configurable:!0});var xn=(n,e)=>{for(var t in e)J(n,t,{get:e[t],enumerable:!0})},Mn=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of hn(e))!Xe.call(n,r)&&r!==t&&J(n,r,{get:()=>e[r],enumerable:!(i=Dn(e,r))||i.enumerable});return n};var Rn=n=>Mn(J({},"__esModule",{value:!0}),n);var Un={};xn(Un,{FailureResult:()=>ce,JSONError:()=>z,JSONTransfer:()=>Ke,ReflectConfig:()=>y,ReflectValidate:()=>_n,TypeDefinition:()=>F,TypeParseError:()=>De,ValidationError:()=>h,assertType:()=>En,failedResult:()=>l,getClassByName:()=>nn,getClassDefinition:()=>T,getDebugInfo:()=>Hn,getEnumDefinition:()=>N,getEnumNames:()=>sn,getEnumValues:()=>an,getErrorTraceMessages:()=>Pn,getInterfaceDefinition:()=>S,getTypeAliasDefinition:()=>ge,getTypeDef:()=>x,isNullable:()=>Vn,isType:()=>mn,reflectReady:()=>en,registerSpecialType:()=>C,safeCall:()=>Bn,safeSetValue:()=>rn,successResult:()=>u,validateArray:()=>Nn,validateDictionary:()=>Fn,validateInstance:()=>He,validateValue:()=>g});module.exports=Rn(Un);var we=["string","number","boolean","bigint","symbol"],Ye={string:String,number:Number,boolean:Boolean,object:Object};var G=Reflect,B,Ze,en=new Promise(n=>{Ze=n});function M(){if(B)return B;let n=G.__meta;if(n===void 0){y.validationErrorHandler(new h("No reflect meta found, reflect is disabled."));return}try{B=JSON.parse(Cn(n))}catch(t){console.error(t),y.validationErrorHandler(new h("Illegal reflect meta found, reflect is disabled"));return}delete G.__meta;let e=B;return e.classDef=G.__classDef||{},delete G.__classDef,Reflect.defineProperty(G,"registerClass",{value:o(t=>Object.assign(e.classDef,t),"value")}),Ze(),B}o(M,"getRawMeta");function Cn(n){let e=atob(n),t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return new TextDecoder().decode(t)}o(Cn,"decode");var Z=class Z{constructor(e){this.name=e.name,this.isReadOnly=!!e.isReadonly,this.isOptional=!!e.isOptional,this.isPrivate=!!e.isPrivate,this.isStatic=!!e.isStatic,this.accessor=e.accessor,this.rawType=e.type}get type(){return d({rawType:this.rawType})}static from(e){return new Z(e)}};o(Z,"PropertyDefinition");var P=Z,ee=class ee extends P{static create(e,t){let i=I(ee,e);return i.genericContext=t,i}get type(){return d({rawType:this.rawType,genericContext:this.genericContext})}};o(ee,"GenericProperty");var Y=ee;function I(n,e){let t=Object.create(n.prototype);return e!==void 0&&Object.assign(t,e),t}o(I,"createInstance");function ne(n,e){n.properties=e.properties.map(t=>Y.create(t,n.genericContext)),n.methods=e.methods.map(t=>H.create(t,n.genericContext)),n instanceof V&&e instanceof E&&e.constructorMethod!==void 0&&(n.constructorMethod=H.create(e.constructorMethod,n.genericContext))}o(ne,"buildPropertiesAndMethods");function xe(n,e){let t={};return n.forEach(i=>{let[r,s]=e(i);t[r]=s}),t}o(xe,"toDictionary");function te(n,e){return(n==null?void 0:n.map(e).filter(t=>t!==void 0))||[]}o(te,"mapNotNull");function Me(n,e,t){n!==void 0&&(n[e]=t)}o(Me,"setValue");function U(n,e){if(n!==void 0)return n[e]}o(U,"getValue");function v(n){return n===void 0?n:n.length>=2&&(n[0]==='"'&&n[n.length-1]==='"'||n[0]==="'"&&n[n.length-1]==="'")?n.substring(1,n.length-1):n}o(v,"trimQuotes");var Re=class Re{constructor(e){this.rawDef=e}get name(){return this.rawDef.name}get returnType(){return d({rawType:this.rawDef.returnType})}get args(){var e;return((e=this.rawDef.args)==null?void 0:e.map(t=>({name:t.name,type:d({rawType:t.type}),isOptional:t.isOptional})))||[]}get isPrivate(){return!!this.rawDef.isPrivate}get isStatic(){return!!this.rawDef.isStatic}get isAsync(){return!!this.rawDef.isAsync}get isConstructor(){return!!this.rawDef.isConstructor}};o(Re,"MethodDefinition");var ie=Re;function K(n){return new ie(n)}o(K,"fillMethod");var re=class re extends ie{static create(e,t){let i=I(re,e);return i.genericContext=t,i}get args(){var e;return((e=this.rawDef.args)==null?void 0:e.map(t=>({name:t.name,type:d({rawType:t.type,genericContext:this.genericContext}),isOptional:t.isOptional})))||[]}get returnType(){return d({rawType:this.rawDef.returnType,genericContext:this.genericContext})}};o(re,"GenericMethod");var H=re;var Q=class Q{constructor(e){var t,i,r,s;this.name=e.name,this._implementationNames=e.implementations||[],this.methods=((t=e.methods)==null?void 0:t.map(K))||[],this.properties=((i=e.properties)==null?void 0:i.map(P.from))||[],this.generics=(r=e.genericsParams)!=null?r:[],this.fromLib=(s=e.fromLib)!=null?s:!1}get implementations(){return this._implementations||(this._implementations=te(this._implementationNames,e=>{var t;return S(e)||((t=T(e))==null?void 0:t.type)||O(e)})),this._implementations}get allImplementations(){if(this._allImplementations===void 0){let e=new Set(this.implementations);this.implementations.forEach(t=>{t instanceof Q?t.allImplementations.forEach(i=>e.add(i)):e.add(t)}),this._allImplementations=Array.from(e)}return this._allImplementations}get type(){if(this.implementations.length===0)return{interfaceName:this.name,fromLib:this.fromLib,typeLiteralMembers:Object.values(this.properties)};let e={},t=[];return this.implementations.forEach(i=>{let r=i instanceof Q?i.type:i;r.typeLiteralMembers?r.typeLiteralMembers.forEach(s=>e[s.name]=s):t.push(r)}),this.properties.forEach(i=>e[i.name]=i),t.length>0?{interfaceName:this.name,fromLib:this.fromLib,intersectionMembers:[{typeLiteralMembers:Object.values(e)},...t]}:{interfaceName:this.name,fromLib:this.fromLib,typeLiteralMembers:Object.values(e)}}toString(){return`interface ${this.name}`}};o(Q,"InterfaceDefinition");var j=Q,se=class se extends j{constructor(){super(...arguments);this.genericArgs=[];this.properties=[];this.methods=[];this.genericContext={}}static create(t,i){let r=I(se,t);r.genericArgs=i;let s=r;return s.buildGenericContext(),ne(s,t),s}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((i,r)=>this.genericContext[i]=this.genericArgs[r])}};o(se,"GenericInterface");var oe=se,Ce=new Map;function S(n){var e,t;if(!Ce.has(n)){let i=(t=(e=M())==null?void 0:e.interfaces)==null?void 0:t[n];if(!i)return;Ce.set(n,new j(i))}return Ce.get(n)}o(S,"getInterfaceDefinition");var Pe=class Pe{constructor(e){var t,i,r,s;this.name=e.name,this.superClassName=e.superClassName||"Object",this.superClass=T(this.superClassName),this._implementationNames=e.implementations||[],this.constructorMethod=e.constructorMethod!==void 0?K(e.constructorMethod):void 0,this.methods=((t=e.methods)==null?void 0:t.map(K))||[],this.properties=((i=e.properties)==null?void 0:i.map(P.from))||[],this.jsClass=e.jsClass,this.generics=(r=e.genericsParams)!=null?r:[],this.fromLib=(s=e.fromLib)!=null?s:!1}get allMethods(){let e={};if(this.superClassName!=="Object"){let t=T(this.superClassName);t&&Object.assign(e,L({},t.allMethods))}return Object.assign(e,L({},xe(this.methods,t=>[t.name,t]))),e}get allProperties(){var e;return Object.assign(((e=this.superClass)==null?void 0:e.allProperties)||{},xe(this.properties,t=>[t.name,t]))}get implementations(){return this._implementations?this._implementations:te(this._implementationNames,e=>S(e)||O(e))}get allImplementations(){var e,t;if(this._allImplementations===void 0){let i=new Set(this.implementations);this.implementations.forEach(r=>{r instanceof j?r.allImplementations.forEach(s=>i.add(s)):i.add(r)}),(t=(e=this.superClass)==null?void 0:e.allImplementations)==null||t.forEach(r=>i.add(r)),this._allImplementations=Array.from(i)}return this._allImplementations}getProperty(e){return this.properties.find(t=>t.name===e)}get type(){var t,i;let e={};return(i=(t=this.superClass)==null?void 0:t.type.typeLiteralMembers)==null||i.forEach(r=>e[r.name]=r),this.properties.forEach(r=>e[r.name]=r),{name:this.name,classDefinition:this,typeLiteralMembers:Object.values(e),fromLib:this.fromLib}}isSubClassOf(e){var t;return this.name===e||(t=this.superClass)!=null&&t.isSubClassOf(e)?!0:this.implementations.map(i=>i.name).includes(e)}isSuperClassOf(e){if(this.name===e)return!0;let t=T(e);return t?t.isSubClassOf(this.name):!1}toString(){return`class ${this.name}`}};o(Pe,"ClassDefinition");var E=Pe,fe=class fe extends E{constructor(){super(...arguments);this.genericArgs=[];this.properties=[];this.methods=[];this.genericContext={}}static create(t,i){let r=I(fe,t);r.genericArgs=i;let s=r;return s.buildGenericContext(),ne(s,t),s}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((i,r)=>this.genericContext[i]=this.genericArgs[r])}};o(fe,"GenericClass");var V=fe,ae=new Map;function nn(n){var e;return((e=T(n))==null?void 0:e.jsClass)||Ye[n]}o(nn,"getClassByName");function T(n){var e,t,i,r,s,a;switch(typeof n){case"object":return T(n.constructor);case"function":let f=T(n.name);if(f)return f;let c=Array.from(ae.values()).find(w=>w.jsClass===n);if(c)return c;let m=(t=Object.entries(((e=M())==null?void 0:e.classDef)||{}).find(([w,R])=>R===n))==null?void 0:t[0];return m?T(m):void 0;case"string":let D=n;if(!ae.has(D)){let w=(r=(i=M())==null?void 0:i.classes)==null?void 0:r[D];if(!w)return;let R=(a=(s=M())==null?void 0:s.classDef)==null?void 0:a[D];ae.set(D,new E(X(L({},w),{jsClass:R})))}return ae.get(D)}}o(T,"getClassDefinition");var Oe=class Oe{constructor(){this.success=!0}};o(Oe,"SuccessResult");var Ie=Oe,$e=class $e{constructor(e,t,i){this.errorCode=e;this.errorDesc=t;this.success=!1;this.cause=i.cause,this.detailCause=i.detailCause,this.value=i.value,this.type=i.type,this.path=i.path}get errorStackFlow(){return this.cause?[this.errorMessage,this.cause.errorStackFlow].join(`
|
|
2
|
+
caused by: `):this.errorMessage}get errorMessage(){return`[Err${this.errorCode}] ${this.errorDesc}, path: ${this.errorPath}`}get errorPath(){var t,i;let e="";return this.path!==void 0&&(typeof this.path=="string"?e=`.${this.path}`:e=`[${this.path}]`),e+((i=(t=this.cause)==null?void 0:t.errorPath)!=null?i:"")}};o($e,"FailureResult");var ce=$e,u=new Ie,l=o((n,e,t)=>new ce(n,e,t),"failedResult");function Pn(n){let e=o(t=>t.errorMessage?[t.errorMessage,...t.cause?e(t.cause):[]]:[],"getAllTraceMessages");return e(n).join(`
|
|
3
|
+
-> `)}o(Pn,"getErrorTraceMessages");var Ae=class Ae extends Error{constructor(e,t){super(e),this.failureResult=t}};o(Ae,"ValidationError");var h=Ae;var Le=[Promise,Date,Map,Set,Error,Function,Array,ArrayBuffer,RegExp];function g(n,e,t=1){var i;if(!y.validation)return u;if(e.validator)return e.validator(n,t);switch(!0){case e.name==="undefined":return n===void 0?u:l(100,`declared as ${p(e)} but actually not`,{value:n,type:e});case e.name==="null":return n===null?u:l(101,`declared as ${p(e)} but actually not`,{value:n,type:e});case on(e):return u;case Te(e):return n instanceof Object?ke(n,e,t):l(200,`declared as ${p(e)} but actually not an object`,{value:n,type:e});case le(e):return In(n,e,t);case de(e):return $n(n,e,t);case me(e):let r=[];for(let s of e.unionMembers||[]){let a=g(n,s,t);if(a.success)return u;r.push(a)}return e.unionMembers.length>1&&e.unionMembers.find(s=>s.name==="undefined")?((i=e.unionMembers.filter(s=>s.name!=="undefined"))==null?void 0:i.length)===1?l(321,`declared as ${p(e)} but not match`,{value:n,type:e,cause:r.find(s=>{var a;return((a=s.type)==null?void 0:a.name)!=="undefined"})}):l(321,`declared as ${p(e)} but all value not match`,{value:n,type:e,detailCause:r.filter(s=>{var a;return((a=s.type)==null?void 0:a.name)!=="undefined"})}):l(320,`declared as ${p(e)} but all value not match`,{value:n,type:e,detailCause:r});case ye(e):for(let s of e.intersectionMembers||[]){let a=g(n,s,t);if(!a.success)return l(330,`declared as ${p(e)} but all value not match`,{cause:a,value:n,type:e})}return u;case Se(e):return On(n,e,t);case ue(e):switch(typeof n){case"string":return n===v(e.literalValue)?u:l(110,`declared as string ${p(e)} but value not match`,{value:n,type:e});case"number":return n===Number(e.literalValue)?u:l(111,`declared as number ${p(e)} but value not match`,{value:n,type:e});case"bigint":return n===BigInt(e.literalValue)?u:l(112,`declared as bigint ${p(e)} but value not match`,{value:n,type:e});case"boolean":return n===!!e.literalValue?u:l(113,`declared as boolean ${p(e)} but value not match`,{value:n,type:e});default:return e.literalValue==="null"&&n===null?u:n===e.literalValue?u:l(114,`declared as ${p(e)} but value not match`,{value:n,type:e})}case pe(e):return An(n,e,t);case e.isFunction:case e.isConstructor:return typeof n=="function"?u:l(150,`declared as ${p(e)} but actually not`,{value:n,type:e});case ve(e):return n==null?l(120,`declared as ${p(e)} but actually ${n}`,{value:n,type:e}):typeof n===e.name?u:l(121,`declared as ${p(e)} but actually ${typeof n}`,{value:n,type:e});default:return Ln(n,e,t)}}o(g,"validateValue");function In(n,e,t=1){if(!Array.isArray(n))return l(300,`declared as ${p(e)} but actually not`,{value:n,type:e});if(t===0)return u;for(let i=0;i<n.length;i++){let r=n[i],s=g(r,e.arrayElementType||b,t-1);if(!s.success)return l(301,`declared as ${p(e)} but [${i}] not match`,{cause:s,value:n,type:e,path:i})}return u}o(In,"validateArrayValue");function On(n,e,t=1){if(n===null)return l(400,"declared as indexedType but actually is null",{value:n,type:e});if(n===void 0)return l(401,"declared as indexedType but actually is undefined",{value:n,type:e});if(typeof n!="object")return l(410,`declared as indexedType but actually is ${typeof n}`,{value:n,type:e});for(let[i,r]of Object.entries(n)){let s=g(r,e.index.valueType,t-1);if(!s.success)return l(420,`declared as ${p(e)} but [${i}] not match`,{cause:s,value:n,type:e,path:i});if(e.index.keyType&&(s=g(i,e.index.keyType,t-1),!s.success))return l(421,`declared as ${p(e)} but [${i}] not match`,{cause:s,value:n,type:e,path:i})}return u}o(On,"validateIndexedValue");function $n(n,e,t=1){if(!Array.isArray(n))return l(310,`declared as ${p(e)} but actually not a tuple`,{value:n,type:e});if(t===0)return u;let i=0;for(let r of e.tupleMembers){let s=n[i++];if(r.isOptionalInTuple&&s===void 0)continue;let a=g(s,r,t);if(!a.success)return l(311,`declared as ${p(e)} but not all values in tuple match`,{cause:a,value:n,type:e})}return u}o($n,"validateTupleValue");function An(n,e,t=1){if(n instanceof Object){for(let i of e.typeLiteralMembers||[]){if("isStatic"in i&&i.isStatic)return u;if(i.name.startsWith("[")&&i.name.endsWith("]"))return u;if(t===0)return u;let r=i.type||b;i.isOptional&&(r={unionMembers:[r,{name:"undefined"}]});let s=U(n,i.name),a=g(s,r,t-1);if(!a.success)return l(211,`declared ${i.name} as ${p(r)}, but not match`,{cause:a,value:n,type:e,path:i.name})}return u}else return l(210,`declared as ${p(e)} but not an object`,{value:n,type:e})}o(An,"validateProperties");function Ln(n,e,t=1){let i=typeof e=="string"?e:e.name;if(!i)return u;if(n===void 0)return l(130,`declared as ${p(e)} but actually undefined`,{value:n,type:e});if(n===null)return l(131,`declared as ${p(e)} but actually null`,{value:n,type:e});for(let s of Le)if(i===s.name)return n instanceof s?u:l(132,`declared as ${p(e)} but actually ${n.constructor.name}`,{value:n,type:e});if(n instanceof Object&&!tn(n,i))return l(133,`declared as ${p(e)} but actually not instance of it`,{value:n,type:e});if(t==0)return u;let r=g(n,O(i),t);return r.success?u:l(134,`declared as ${p(e)} but actually not match`,{cause:r,value:n,type:e})}o(Ln,"validateSimpleValue");function ke(n,e,t=3){if(e.classDefinition&&!tn(n,e.classDefinition.name))return l(201,`declared as instance of ${p(e)} but actually not`,{value:n,type:e});if(e.name!=="any"&&e===b)return l(202,`${p(e)} not defined`,{value:n,type:e});let i=L({},e);return delete i.classDefinition,g(n,i,t)}o(ke,"validateClassInstance");function tn(n,e){if(n===void 0||n.constructor.name===e)return!0;let t=T(e);if(!t)return!0;if(t.jsClass)return n instanceof t.jsClass;let i=T(n);return i?i.isSubClassOf(t.name):!1}o(tn,"valueInstanceOf");function p(n){var e,t,i;return typeof n=="string"?n:Te(n)?n.classDefinition.name:n.interfaceName?n.interfaceName:n.typeAliasName?n.typeAliasName:le(n)?p(n.arrayElementType)+"[]":n.isConstructor?"Class":n.isFunction?"Function":pe(n)?"Object":de(n)?`(${n.tupleMembers.map(p).join(",")})`:me(n)?((e=n.unionMembers)==null?void 0:e.map(p).join(" | "))||"unknown":ye(n)?((t=n.intersectionMembers)==null?void 0:t.map(p).join(" & "))||"unknown":ue(n)?n.literalValue:Se(n)?`{ [${(i=n.index.keyType)!=null?i:"string"}]: ${p(n.index.valueType)} }`:n.name||"unknown"}o(p,"getTypeDisplayName");function rn(n,e,t){let i=T(n),r=y.validationErrorHandler;if(!i){Me(n,e,t);return}let s=i.allProperties[e];s||r(new h(`Property ${e} is not defined in ${i.name}`));let a=s==null?void 0:s.type,f=g(t,a);f.success||r(new h(f.errorMessage)),Me(n,e,t)}o(rn,"safeSetValue");var je=class je{constructor(e){var t;this.name=e.name,this.members=new Map,e.members.forEach(i=>{let r=i.initializer===void 0?{name:"number"}:{literalValue:i.initializer};this.members.set(i.name,r)}),this.fromLib=(t=e.fromLib)!=null?t:!1}get type(){return{name:this.name,unionMembers:Array.from(this.members.values()),fromLib:this.fromLib}}get names(){return Array.from(this.members.keys())}};o(je,"EnumDefinition");var Ve=je,Ee=new Map;function N(n){var e,t;if(!Ee.has(n)){let i=(t=(e=M())==null?void 0:e.enums)==null?void 0:t[n];if(!i)return;Ee.set(n,new Ve(i))}return Ee.get(n)}o(N,"getEnumDefinition");function sn(n){var e;return((e=N(n))==null?void 0:e.names)||[]}o(sn,"getEnumNames");function an(n){let e=Object.entries(n)[0];if(!e)return[];let[t,i]=e,r=N(t);return r?r.names.map(s=>i[s]):Array.from(Object.keys(i))}o(an,"getEnumValues");var Ne=new Map;function C(n){Ne.set(n.name,n)}o(C,"registerSpecialType");function fn(n){return Ne.has(n)}o(fn,"isSpecialType");function Fe(n,...e){let t=Ne.get(n);if(!t)return;let i=t.getType(...e);return i?{name:n,type:i,genericParams:t.genericParams,fromLib:!!t.fromLib}:void 0}o(Fe,"getSpecialTypeAlias");C({name:"Partial",genericParams:["T"],fromLib:!0,getType(...n){let e=n[0];return e?W(e,t=>t.isOptional=!0):void 0}});C({name:"Required",genericParams:["T"],fromLib:!0,getType(...n){let e=n[0];return e!=null?e:W(e,t=>t.isOptional=!1)}});C({name:"Readonly",genericParams:["T"],fromLib:!0,getType(...n){let e=n[0];return W(e,t=>t.isReadonly=!0)}});C({name:"Record",genericParams:["K","T"],fromLib:!0,getType(...n){let[e,t]=n;return{index:{keyType:e!=null?e:b,valueType:t!=null?t:b}}}});C({name:"Pick",genericParams:["T","K"],fromLib:!0,getType(...n){let[e,t]=n;if(e)return cn(e,t)}});function cn(n,e){var i,r;if(!e)return;let t=(r=(i=e.unionMembers)==null?void 0:i.map(s=>v(s.literalValue)))!=null?r:[v(e.literalValue)];if(n.typeLiteralMembers)return un(n,s=>t.includes(s.name))}o(cn,"getPickType");C({name:"Omit",genericParams:["T","K"],fromLib:!0,getType(...n){let[e,t]=n;if(e)return ln(e,t)}});function ln(n,e){var i,r;if(!e)return;let t=(r=(i=e.unionMembers)==null?void 0:i.map(s=>v(s.literalValue)))!=null?r:[v(e.literalValue)];if(n.typeLiteralMembers)return un(n,s=>!t.includes(s.name))}o(ln,"getOmitType");C({name:"Extract",genericParams:["T","U"],fromLib:!0,getType(...n){let[e,t]=n;if(!(!e||!t)&&e.typeLiteralMembers&&t.typeLiteralMembers){let i={unionMembers:t.typeLiteralMembers.map(r=>({literalValue:r.name}))};return cn(e,i)}}});C({name:"Exclude",genericParams:["T","U"],fromLib:!0,getType(...n){let[e,t]=n;if(!(!e||!t)&&e.typeLiteralMembers&&t.typeLiteralMembers){let i={unionMembers:t.typeLiteralMembers.map(r=>({literalValue:r.name}))};return ln(e,i)}}});C({name:"ReflectReference",genericParams:["T","R"],getType(...n){let[e,t]=n;if(e)return X(L({},e),{reflectReference:t})}});function W(n,e){return n.typeLiteralMembers?{typeLiteralMembers:n.typeLiteralMembers.map(t=>pn(t,e))}:n.unionMembers?{unionMembers:n.unionMembers.map(t=>W(t,e)).filter(t=>t!==void 0)}:n.intersectionMembers?{intersectionMembers:n.intersectionMembers.map(t=>W(t,e)).filter(t=>t!==void 0)}:void 0}o(W,"getMappedType");function un(n,e){if(n.typeLiteralMembers)return{typeLiteralMembers:n.typeLiteralMembers.map(t=>e(t)?pn(t):void 0).filter(t=>!!t)}}o(un,"getFilterKeyType");function pn(n,e){let t;return n instanceof P?t=new P({name:n.name,isReadonly:n.isReadOnly,isOptional:n.isOptional,isStatic:n.isStatic,accessor:n.accessor,type:n.rawType}):t={name:n.name,isOptional:n.isOptional,type:n.type},e==null||e(t),t}o(pn,"copyPropertyDefinition");function ge(n,e){var r,s,a;if(fn(n))return e?Fe(n,...e):Fe(n);if(!_e.has(n)){let f=(s=(r=M())==null?void 0:r.typeAliases)==null?void 0:s[n];if(!f||!f.type)return;_e.set(n,{name:n,type:f.type,genericParams:f.genericParams,fromLib:f.fromLib})}let t=_e.get(n);if(!t)return;let i;if(t.genericParams&&e){let f={};for(let c=0;c<t.genericParams.length;c++){let m=t.genericParams[c];f[m]=e[c]}i=d({rawType:t.type,genericContext:f,genericArgs:e})}else i=d({rawType:t.type});return i.typeAliasName=n,{name:t.name,type:i,genericParams:t.genericParams,fromLib:(a=t.fromLib)!=null?a:!1}}o(ge,"getTypeAliasDefinition");var _e=new Map;var b={name:"any"},kn={name:"null"},vn={name:"undefined"};function on(n){return!!(n.name&&["any","void","unknown"].includes(n.name))}o(on,"isIgnoredType");function ve(n){return!!(n.name&&we.includes(n.name))}o(ve,"isPrimitiveType");function le(n){return!!n.arrayElementType}o(le,"isArrayType");function ue(n){return!!n.literalValue}o(ue,"isLiteralType");function pe(n){return!!n.typeLiteralMembers}o(pe,"isTypeLiteralType");function me(n){return!!n.unionMembers}o(me,"isUnionType");function ye(n){return!!n.intersectionMembers}o(ye,"isIntersectionType");function de(n){return!!n.tupleMembers}o(de,"isTupleType");function Te(n){return!!n.classDefinition}o(Te,"isClassDefinition");function Sn(n){return!!n.generics}o(Sn,"hasGenerics");function Se(n){return!!n.index}o(Se,"isIndexType");function O(n,e){if(n==="any"||n==="Any"||n==="unknown"||n==="")return b;if(n==="null")return kn;if(n==="undefined")return vn;if(n==="Function")return{isFunction:!0};let t=T(n);if(t)return e?V.create(t,e).type:t.type;if(we.includes(n))return{name:n};if(Le.map(a=>a.name).includes(n))return{name:n,generics:e};let i=S(n);if(i)return i.fromLib?{name:n,generics:e}:e?oe.create(i,e).type:i.type;let r=N(n);if(r)return r.type;let s=ge(n,e);return s?s.type:(y.debug&&console.warn(`${n} not registered...`),b)}o(O,"getTypeDefinition");var Je=new Map;function d(n){let{rawType:e,genericContext:t,genericArgs:i}=n,r=Ge(e);if(e===void 0)return b;let s=Je.get(r);if(s)return s;let a={};if(Je.set(r,a),typeof e=="string")a=(t==null?void 0:t[e])||O(e,i)||b;else if(typeof e.literalValue=="string")a.literalValue=e.literalValue;else if(e.arrayElementType)Object.assign(a,{arrayElementType:d({rawType:e.arrayElementType,genericContext:t})});else if(e.unionMembers)Object.assign(a,{unionMembers:e.unionMembers.map(f=>d({rawType:f,genericContext:t}))});else if(e.intersectionMembers)Object.assign(a,{intersectionMembers:e.intersectionMembers.map(f=>d({rawType:f,genericContext:t}))});else if(e.tupleMembers)Object.assign(a,{tupleMembers:e.tupleMembers.map(f=>d({rawType:f,genericContext:t}))});else if(e.typeLiteralMembers)a.typeLiteralMembers=e.typeLiteralMembers.map(f=>({name:f.name,isOptional:!!f.isOptional,type:d({rawType:f.type,genericContext:t,genericArgs:i})}));else if(e.generics){let f=e.generics[0],c=e.generics.slice(1).map(m=>d({rawType:m,genericContext:t}));Object.assign(a,d({rawType:f,genericContext:t,genericArgs:c}))}else e.index&&Object.assign(a,{index:{keyType:e.index.keyType?d({rawType:e.index.keyType,genericContext:t}):void 0,valueType:d({rawType:e.index.valueType,genericContext:t})}});return Object.keys(a).length===0&&(a=b),Je.delete(r),a}o(d,"fillType");function Ge(n){return n===null?"null":n===void 0?"undefined":typeof n!="object"?JSON.stringify(n):Array.isArray(n)?"["+n.map(Ge).join(",")+"]":"{"+Object.keys(n).sort().map(t=>JSON.stringify(t)+":"+Ge(n[t])).join(",")+"}"}o(Ge,"stableStringify");var F={isPrimitiveType:ve,isArrayType:le,isLiteralType:ue,isTypeLiteralType:pe,isUnionType:me,isIntersectionType:ye,isTupleType:de,isClassDefinition:Te,hasGenerics:Sn};function x(n){if(typeof n=="string"){let e=jn(n);if(typeof e=="string"){let t=e.match(/"(.+)"$/)||e.match(/'(.+)'$/);if(t!=null&&t[1])return{literalValue:t[1]}}return typeof e=="string"?O(n):x(e)}return"array"in n?{arrayElementType:x(n.array)}:"union"in n?{unionMembers:n.union.map(x)}:"intersection"in n?{intersectionMembers:n.intersection.map(x)}:"tuple"in n?{tupleMembers:n.tuple.map(x)}:"generic"in n?O(n.name,n.generic.map(x)):n}o(x,"getTypeDef");function En(n,e,t=5){let i=g(n,x(e),t);return i.success||y.validationErrorHandler(new h(`assert failed with type: ${e}, ${i.errorStackFlow}`,i)),n}o(En,"assertType");function Vn(n){return mn(null,n)}o(Vn,"isNullable");function mn(n,e,t=5){return g(n,x(e),t).success}o(mn,"isType");function jn(n){let e=0,t="%%",i={};function r(c){let m=`${t}${e++}`;return i[m]=c,m}o(r,"addPlaceholder");function s(c){let m=c.match(new RegExp(`^(${t}\\d)$`));if(!m)return;let D=m[1].trim(),w=i[D];return delete i[D],w}o(s,"getPlaceholder");function a(c,m,D,w){let R=0;for(;R<c.length;){let $=c.indexOf(m,R);if($===-1)break;R=$+1;let k=c.indexOf(D,R);if(k===-1)throw new De("Illegal type string");let q=c.substring($+1,k),_=r(q);w?c=`${c.substring(0,$+1)}${_}${c.substring(k)}`:c=`${c.substring(0,$)}${_}${c.substring(k+1)}`}return c}o(a,"replaceBracket");function f(c){let m=c.trim(),D=o(A=>A.trim(),"trim"),w=o(A=>A.length!=0,"notEmpty");m=a(m,"(",")",!1),m=a(m,"<",">",!0);let R=s(m);if(R)return f(R);let $=m.split("|").map(D).filter(w);if($.length>1)return{union:$.map(f)};let k=m.split("&").map(D).filter(w);if(k.length>1)return{intersection:k.map(f)};let q=m.match(/^\[(.*)]$/);if(q)return{tuple:q[1].split(",").map(D).filter(w).map(f)};let _=m.match(/^(.+)\[]$/);if(_)return{array:f(_[1])};let be=m.match(/^([^<]+)<(.+)>$/);if(be){let A=be[1].trim(),he=f(be[2]);if(typeof he=="string"){let Tn=he.split(",").map(D).filter(w).map(f);return{name:A,generic:Tn}}else return{name:A,generic:[he]}}return m}return o(f,"parseTypeRecursive"),f(n)}o(jn,"parseType");var Be=class Be extends Error{};o(Be,"TypeParseError");var De=Be;function He(n,e,t=3){return y.validation?(e=e||n.constructor.name,ke(n,x(e),t)):u}o(He,"validateInstance");function Nn(n,e,t=2){if(!y.validation)return u;for(let i=0;i<n.length;i++){let r=He(n[i],e,t);if(!r.success)return l(220,`declared as instance of ${e}[] but [${i}] actually not`,{cause:r,value:n,type:e})}return u}o(Nn,"validateArray");function Fn(n,e,t=2){if(!y.validation)return u;let i=Object.entries(n);for(let r=0;r<i.length;r++){let[s,a]=i[r],f=He(a,e,t);if(!f.success)return l(230,`declared as instance of Dictionary<${e}> but [${s}] actually not`,{cause:f,value:n,type:e})}return u}o(Fn,"validateDictionary");var yn=Symbol("VALIDATE_WRAPPER"),_n=o((n,e,t)=>Jn(n,e,t),"ReflectValidate");function Jn(n,e,t){if(!y.validation)return;let i=t.value;if(typeof i!="function"||U(i,yn))return;let r=o(()=>{var c,m;return(m=(c=T(n))==null?void 0:c.methods)==null?void 0:m.find(D=>D.name===e)},"getMethodDef"),s=o(c=>dn(n,r(),c),"validateArgs"),a=o(c=>Gn(n,r(),c),"validateReturn"),f=o(function(...c){s(c);let m=i.call(this,...c);return a(m)},"newFunc");f[yn]=i,t.value=f}o(Jn,"wrapValidateMethod");function dn(n,e,t){var i;(i=e==null?void 0:e.args)==null||i.forEach((r,s)=>{let a=t==null?void 0:t[s];if(a===void 0)if(!r.isOptional)y.validationErrorHandler(new h(`Illegal arguments for ${Ue(n.constructor.name,e)}: ${r.name} is not optional`));else return;let f=g(a,r.type||b,1);f.success||(console.error("validateResult",f),y.validationErrorHandler(new h(`Illegal arguments for ${Ue(n.constructor.name,e)}: ${r.name}: ${r.name} ${f.errorMessage}`,f)))})}o(dn,"validateMethodParams");function Gn(n,e,t){var s;if(!e)return t;let i=o((a,f)=>{let c=g(a,f,5);return c.success||(console.error(c.errorStackFlow),y.validationErrorHandler(new h(`result for ${Ue(n.constructor.name,e)} doesn't match type ${f.name}:
|
|
4
|
+
${c.errorStackFlow}`,c))),a},"checkValue"),r=e.returnType;return r.name==="Promise"&&(r=((s=r.generics)==null?void 0:s[0])||b),t instanceof Promise?t.then(a=>i(a,r||b)):i(t,r||b)}o(Gn,"validateMethodReturnValue");function Ue(n,e){var t;return`${n}.${e.name}(${(t=e.args)==null?void 0:t.map(i=>i.name).join(", ")})`}o(Ue,"getMethodDescription");function Bn(n,e,...t){let i=T(n);if(!i)return;let r=i.allMethods[e];if(r)return dn(n,r,t),U(n,e).apply(n,t)}o(Bn,"safeCall");var Qe=class Qe{constructor(e){this.exceptionHandler=e!=null?e:console.error}parse(e,t){if(!t)return JSON.parse(e);let i=x(t),r=JSON.parse(e),s=this.convertJSONValue(r,i);return g(s,i).success||this.exceptionHandler(new z(`jsonValue should be ${i.name}`)),s}convertJSONValue(e,t){switch(!0){case typeof e=="string":case typeof e=="number":case typeof e=="boolean":case e===null:return e;case e instanceof Array:return F.isArrayType(t)?e.map(i=>this.convertJSONValue(i,t)):F.isTupleType(t)?t.tupleMembers.map((i,r)=>this.convertJSONValue(e[r],i)):e;default:return F.isClassDefinition(t)?this.convertJSONObjectAsClassInstance(e,t.classDefinition):e}}convertJSONObjectAsClassInstance(e,t){if(!t.jsClass)return this.exceptionHandler(new z(`class ${t.name} not reflected`)),e;let i=I(t.jsClass);return Object.assign(i,e),i}};o(Qe,"JSONTransfer");var Ke=Qe,We=class We extends Error{};o(We,"JSONError");var z=We;var y={validationErrorHandler:o(function(n){var e;console.error(n.message),console.error((e=n.failureResult)==null?void 0:e.errorStackFlow)},"validationErrorHandler"),validation:!0,debug:!1};function Hn(){if(!y.debug)return M()}o(Hn,"getDebugInfo");0&&(module.exports={FailureResult,JSONError,JSONTransfer,ReflectConfig,ReflectValidate,TypeDefinition,TypeParseError,ValidationError,assertType,failedResult,getClassByName,getClassDefinition,getDebugInfo,getEnumDefinition,getEnumNames,getEnumValues,getErrorTraceMessages,getInterfaceDefinition,getTypeAliasDefinition,getTypeDef,isNullable,isType,reflectReady,registerSpecialType,safeCall,safeSetValue,successResult,validateArray,validateDictionary,validateInstance,validateValue});
|
package/dist/esm/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var We=Object.defineProperty,
|
|
2
|
-
caused by: `):this.errorMessage}get errorMessage(){return`[Err${this.errorCode}] ${this.errorDesc}, path: ${this.errorPath}`}get errorPath(){var t,i;let e="";return this.path!==void 0&&(typeof this.path=="string"?e=`.${this.path}`:e=`[${this.path}]`),e+((i=(t=this.cause)==null?void 0:t.errorPath)!=null?i:"")}};o(Pe,"FailureResult");var Re=Pe,p=new
|
|
3
|
-
-> `)}o(yt,"getErrorTraceMessages");var Ie=class Ie extends Error{constructor(e,t){super(e),this.failureResult=t}};o(Ie,"ValidationError");var w=Ie;var Oe=[Promise,Date,Map,Set,Error,Function,Array,ArrayBuffer,RegExp];function g(n,e,t=1){var i;if(!y.validation)return p;if(e.validator)return e.validator(n,t);switch(!0){case e.name==="undefined":return n===void 0?p:l(100,`declared as ${u(e)} but actually not`,{value:n,type:e});case e.name==="null":return n===null?p:l(101,`declared as ${u(e)} but actually not`,{value:n,type:e});case Xe(e):return p;case me(e):return n instanceof Object?$e(n,e,t):l(200,`declared as ${u(e)} but actually not an object`,{value:n,type:e});case ae(e):return dn(n,e,t);case pe(e):return gn(n,e,t);case le(e):let r=[];for(let s of e.unionMembers||[]){let a=g(n,s,t);if(a.success)return p;r.push(a)}return e.unionMembers.length>1&&e.unionMembers.find(s=>s.name==="undefined")?((i=e.unionMembers.filter(s=>s.name!=="undefined"))==null?void 0:i.length)===1?l(321,`declared as ${u(e)} but not match`,{value:n,type:e,cause:r.find(s=>{var a;return((a=s.type)==null?void 0:a.name)!=="undefined"})}):l(321,`declared as ${u(e)} but all value not match`,{value:n,type:e,detailCause:r.filter(s=>{var a;return((a=s.type)==null?void 0:a.name)!=="undefined"})}):l(320,`declared as ${u(e)} but all value not match`,{value:n,type:e,detailCause:r});case ue(e):for(let s of e.intersectionMembers||[]){let a=g(n,s,t);if(!a.success)return l(330,`declared as ${u(e)} but all value not match`,{cause:a,value:n,type:e})}return p;case Le(e):return Tn(n,e,t);case fe(e):switch(typeof n){case"string":return n===S(e.literalValue)?p:l(110,`declared as string ${u(e)} but value not match`,{value:n,type:e});case"number":return n===Number(e.literalValue)?p:l(111,`declared as number ${u(e)} but value not match`,{value:n,type:e});case"bigint":return n===BigInt(e.literalValue)?p:l(112,`declared as bigint ${u(e)} but value not match`,{value:n,type:e});case"boolean":return n===!!e.literalValue?p:l(113,`declared as boolean ${u(e)} but value not match`,{value:n,type:e});default:return e.literalValue==="null"&&n===null?p:n===e.literalValue?p:l(114,`declared as ${u(e)} but value not match`,{value:n,type:e})}case ce(e):return Dn(n,e,t);case e.isFunction:case e.isConstructor:return typeof n=="function"?p:l(150,`declared as ${u(e)} but actually not`,{value:n,type:e});case Ae(e):return n==null?l(120,`declared as ${u(e)} but actually ${n}`,{value:n,type:e}):typeof n===e.name?p:l(121,`declared as ${u(e)} but actually ${typeof n}`,{value:n,type:e});default:return bn(n,e,t)}}o(g,"validateValue");function dn(n,e,t=1){if(!Array.isArray(n))return l(300,`declared as ${u(e)} but actually not`,{value:n,type:e});if(t===0)return p;for(let i=0;i<n.length;i++){let r=n[i],s=g(r,e.arrayElementType||b,t-1);if(!s.success)return l(301,`declared as ${u(e)} but [${i}] not match`,{cause:s,value:n,type:e,path:i})}return p}o(dn,"validateArrayValue");function Tn(n,e,t=1){if(n===null)return l(400,"declared as indexedType but actually is null",{value:n,type:e});if(n===void 0)return l(401,"declared as indexedType but actually is undefined",{value:n,type:e});if(typeof n!="object")return l(410,`declared as indexedType but actually is ${typeof n}`,{value:n,type:e});for(let[i,r]of Object.entries(n)){let s=g(r,e.index.valueType,t-1);if(!s.success)return l(420,`declared as ${u(e)} but [${i}] not match`,{cause:s,value:n,type:e,path:i});if(e.index.keyType&&(s=g(i,e.index.keyType,t-1),!s.success))return l(421,`declared as ${u(e)} but [${i}] not match`,{cause:s,value:n,type:e,path:i})}return p}o(Tn,"validateIndexedValue");function gn(n,e,t=1){if(!Array.isArray(n))return l(310,`declared as ${u(e)} but actually not a tuple`,{value:n,type:e});if(t===0)return p;let i=0;for(let r of e.tupleMembers){let s=n[i++];if(r.isOptionalInTuple&&s===void 0)continue;let a=g(s,r,t);if(!a.success)return l(311,`declared as ${u(e)} but not all values in tuple match`,{cause:a,value:n,type:e})}return p}o(gn,"validateTupleValue");function Dn(n,e,t=1){if(n instanceof Object){for(let i of e.typeLiteralMembers||[]){if("isStatic"in i&&i.isStatic)return p;if(i.name.startsWith("[")&&i.name.endsWith("]"))return p;if(t===0)return p;let r=i.type||b;i.isOptional&&(r={unionMembers:[r,{name:"undefined"}]});let s=G(n,i.name),a=g(s,r,t-1);if(!a.success)return l(211,`declared ${i.name} as ${u(r)}, but not match`,{cause:a,value:n,type:e,path:i.name})}return p}else return l(210,`declared as ${u(e)} but not an object`,{value:n,type:e})}o(Dn,"validateProperties");function bn(n,e,t=1){let i=typeof e=="string"?e:e.name;if(!i)return p;if(n===void 0)return l(130,`declared as ${u(e)} but actually undefined`,{value:n,type:e});if(n===null)return l(131,`declared as ${u(e)} but actually null`,{value:n,type:e});for(let s of Oe)if(i===s.name)return n instanceof s?p:l(132,`declared as ${u(e)} but actually ${n.constructor.name}`,{value:n,type:e});if(n instanceof Object&&!qe(n,i))return l(133,`declared as ${u(e)} but actually not instance of it`,{value:n,type:e});if(t==0)return p;let r=g(n,I(i),t);return r.success?p:l(134,`declared as ${u(e)} but actually not match`,{cause:r,value:n,type:e})}o(bn,"validateSimpleValue");function $e(n,e,t=3){if(e.classDefinition&&!qe(n,e.classDefinition.name))return l(201,`declared as instance of ${u(e)} but actually not`,{value:n,type:e});if(e.name!=="any"&&e===b)return l(202,`${u(e)} not defined`,{value:n,type:e});let i=L({},e);return delete i.classDefinition,g(n,i,t)}o($e,"validateClassInstance");function qe(n,e){if(n===void 0||n.constructor.name===e)return!0;let t=T(e);if(!t)return!0;if(t.jsClass)return n instanceof t.jsClass;let i=T(n);return i?i.isSubClassOf(t.name):!1}o(qe,"valueInstanceOf");function u(n){var e,t,i;return typeof n=="string"?n:me(n)?n.classDefinition.name:n.interfaceName?n.interfaceName:n.typeAliasName?n.typeAliasName:ae(n)?u(n.arrayElementType)+"[]":n.isConstructor?"Class":n.isFunction?"Function":ce(n)?"Object":pe(n)?`(${n.tupleMembers.map(u).join(",")})`:le(n)?((e=n.unionMembers)==null?void 0:e.map(u).join(" | "))||"unknown":ue(n)?((t=n.intersectionMembers)==null?void 0:t.map(u).join(" & "))||"unknown":fe(n)?n.literalValue:Le(n)?`{ [${(i=n.index.keyType)!=null?i:"string"}]: ${u(n.index.valueType)} }`:n.name||"unknown"}o(u,"getTypeDisplayName");function hn(n,e,t){let i=T(n),r=y.validationErrorHandler;if(!i){be(n,e,t);return}let s=i.allProperties[e];s||r(new w(`Property ${e} is not defined in ${i.name}`));let a=s==null?void 0:s.type,f=g(t,a);f.success||r(new w(f.errorMessage)),be(n,e,t)}o(hn,"safeSetValue");var ve=class ve{constructor(e){var t;this.name=e.name,this.members=new Map,e.members.forEach(i=>{let r=i.initializer===void 0?{name:"number"}:{literalValue:i.initializer};this.members.set(i.name,r)}),this.fromLib=(t=e.fromLib)!=null?t:!1}get type(){return{name:this.name,unionMembers:Array.from(this.members.values()),fromLib:this.fromLib}}get names(){return Array.from(this.members.keys())}};o(ve,"EnumDefinition");var Se=ve,ke=new Map;function U(n){var e,t;if(!ke.has(n)){let i=(t=(e=M())==null?void 0:e.enums)==null?void 0:t[n];if(!i)return;ke.set(n,new Se(i))}return ke.get(n)}o(U,"getEnumDefinition");function wn(n){var e;return((e=U(n))==null?void 0:e.names)||[]}o(wn,"getEnumNames");function Mn(n){let e=Object.entries(n)[0];if(!e)return[];let[t,i]=e,r=U(t);return r?r.names.map(s=>i[s]):Array.from(Object.keys(i))}o(Mn,"getEnumValues");var Ee=new Map;function O(n){Ee.set(n.name,n)}o(O,"registerSpecialType");function Ye(n){return Ee.has(n)}o(Ye,"isSpecialType");function Ve(n,...e){let t=Ee.get(n);if(!t)return;let i=t.getType(...e);return i?{name:n,type:i,genericParams:t.genericParams,fromLib:!!t.fromLib}:void 0}o(Ve,"getSpecialTypeAlias");O({name:"Partial",genericParams:["T"],fromLib:!0,getType(...n){let e=n[0];return e?K(e,t=>t.isOptional=!0):void 0}});O({name:"Required",genericParams:["T"],fromLib:!0,getType(...n){let e=n[0];return e!=null?e:K(e,t=>t.isOptional=!1)}});O({name:"Readonly",genericParams:["T"],fromLib:!0,getType(...n){let e=n[0];return K(e,t=>t.isReadonly=!0)}});O({name:"Record",genericParams:["K","T"],fromLib:!0,getType(...n){let[e,t]=n;return{index:{keyType:e!=null?e:b,valueType:t!=null?t:b}}}});O({name:"Pick",genericParams:["T","K"],fromLib:!0,getType(...n){let[e,t]=n;if(e)return Ze(e,t)}});function Ze(n,e){var i,r;if(!e)return;let t=(r=(i=e.unionMembers)==null?void 0:i.map(s=>S(s.literalValue)))!=null?r:[S(e.literalValue)];if(n.typeLiteralMembers)return nn(n,s=>t.includes(s.name))}o(Ze,"getPickType");O({name:"Omit",genericParams:["T","K"],fromLib:!0,getType(...n){let[e,t]=n;if(e)return en(e,t)}});function en(n,e){var i,r;if(!e)return;let t=(r=(i=e.unionMembers)==null?void 0:i.map(s=>S(s.literalValue)))!=null?r:[S(e.literalValue)];if(n.typeLiteralMembers)return nn(n,s=>!t.includes(s.name))}o(en,"getOmitType");O({name:"Extract",genericParams:["T","U"],fromLib:!0,getType(...n){let[e,t]=n;if(!(!e||!t)&&e.typeLiteralMembers&&t.typeLiteralMembers){let i={unionMembers:t.typeLiteralMembers.map(r=>({literalValue:r.name}))};return Ze(e,i)}}});O({name:"Exclude",genericParams:["T","U"],fromLib:!0,getType(...n){let[e,t]=n;if(!(!e||!t)&&e.typeLiteralMembers&&t.typeLiteralMembers){let i={unionMembers:t.typeLiteralMembers.map(r=>({literalValue:r.name}))};return en(e,i)}}});O({name:"ReflectReference",genericParams:["T","R"],getType(...n){let[e,t]=n;if(e)return z(L({},e),{reflectReference:t})}});function K(n,e){return n.typeLiteralMembers?{typeLiteralMembers:n.typeLiteralMembers.map(t=>tn(t,e))}:n.unionMembers?{unionMembers:n.unionMembers.map(t=>K(t,e)).filter(t=>t!==void 0)}:n.intersectionMembers?{intersectionMembers:n.intersectionMembers.map(t=>K(t,e)).filter(t=>t!==void 0)}:void 0}o(K,"getMappedType");function nn(n,e){if(n.typeLiteralMembers)return{typeLiteralMembers:n.typeLiteralMembers.map(t=>e(t)?tn(t):void 0).filter(t=>!!t)}}o(nn,"getFilterKeyType");function tn(n,e){let t;return n instanceof C?t=new C({name:n.name,isReadonly:n.isReadOnly,isOptional:n.isOptional,isStatic:n.isStatic,accessor:n.accessor,type:n.rawType}):t={name:n.name,isOptional:n.isOptional,type:n.type},e==null||e(t),t}o(tn,"copyPropertyDefinition");function Ne(n,e){var r,s,a;if(Ye(n))return e?Ve(n,...e):Ve(n);if(!je.has(n)){let f=(s=(r=M())==null?void 0:r.typeAliases)==null?void 0:s[n];if(!f||!f.type)return;je.set(n,{name:n,type:f.type,genericParams:f.genericParams,fromLib:f.fromLib})}let t=je.get(n);if(!t)return;let i;if(t.genericParams&&e){let f={};for(let c=0;c<t.genericParams.length;c++){let m=t.genericParams[c];f[m]=e[c]}i=d({rawType:t.type,genericContext:f,genericArgs:e})}else i=d({rawType:t.type});return i.typeAliasName=n,{name:t.name,type:i,genericParams:t.genericParams,fromLib:(a=t.fromLib)!=null?a:!1}}o(Ne,"getTypeAliasDefinition");var je=new Map;var b={name:"any"},xn={name:"null"},Rn={name:"undefined"};function Xe(n){return!!(n.name&&["any","void","unknown"].includes(n.name))}o(Xe,"isIgnoredType");function Ae(n){return!!(n.name&&ge.includes(n.name))}o(Ae,"isPrimitiveType");function ae(n){return!!n.arrayElementType}o(ae,"isArrayType");function fe(n){return!!n.literalValue}o(fe,"isLiteralType");function ce(n){return!!n.typeLiteralMembers}o(ce,"isTypeLiteralType");function le(n){return!!n.unionMembers}o(le,"isUnionType");function ue(n){return!!n.intersectionMembers}o(ue,"isIntersectionType");function pe(n){return!!n.tupleMembers}o(pe,"isTupleType");function me(n){return!!n.classDefinition}o(me,"isClassDefinition");function Cn(n){return!!n.generics}o(Cn,"hasGenerics");function Le(n){return!!n.index}o(Le,"isIndexType");function I(n,e){if(n==="any"||n==="Any"||n==="unknown"||n==="")return b;if(n==="null")return xn;if(n==="undefined")return Rn;if(n==="Function")return{isFunction:!0};let t=T(n);if(t)return e?E.create(t,e).type:t.type;if(ge.includes(n))return{name:n};if(Oe.map(a=>a.name).includes(n))return{name:n,generics:e};let i=j(n);if(i)return i.fromLib?{name:n,generics:e}:e?ie.create(i,e).type:i.type;let r=U(n);if(r)return r.type;let s=Ne(n,e);return s?s.type:(y.debug&&console.warn(`${n} not registered...`),b)}o(I,"getTypeDefinition");var Fe=new Map;function d(n){let{rawType:e,genericContext:t,genericArgs:i}=n,r=_e(e);if(e===void 0)return b;let s=Fe.get(r);if(s)return s;let a={};if(Fe.set(r,a),typeof e=="string")a=(t==null?void 0:t[e])||I(e,i)||b;else if(typeof e.literalValue=="string")a.literalValue=e.literalValue;else if(e.arrayElementType)Object.assign(a,{arrayElementType:d({rawType:e.arrayElementType,genericContext:t})});else if(e.unionMembers)Object.assign(a,{unionMembers:e.unionMembers.map(f=>d({rawType:f,genericContext:t}))});else if(e.intersectionMembers)Object.assign(a,{intersectionMembers:e.intersectionMembers.map(f=>d({rawType:f,genericContext:t}))});else if(e.tupleMembers)Object.assign(a,{tupleMembers:e.tupleMembers.map(f=>d({rawType:f,genericContext:t}))});else if(e.typeLiteralMembers)a.typeLiteralMembers=e.typeLiteralMembers.map(f=>({name:f.name,isOptional:!!f.isOptional,type:d({rawType:f.type,genericContext:t,genericArgs:i})}));else if(e.generics){let f=e.generics[0],c=e.generics.slice(1).map(m=>d({rawType:m,genericContext:t}));Object.assign(a,d({rawType:f,genericContext:t,genericArgs:c}))}else e.index&&Object.assign(a,{index:{keyType:e.index.keyType?d({rawType:e.index.keyType,genericContext:t}):void 0,valueType:d({rawType:e.index.valueType,genericContext:t})}});return Object.keys(a).length===0&&(a=b),Fe.delete(r),a}o(d,"fillType");function _e(n){return n===null?"null":n===void 0?"undefined":typeof n!="object"?JSON.stringify(n):Array.isArray(n)?"["+n.map(_e).join(",")+"]":"{"+Object.keys(n).sort().map(t=>JSON.stringify(t)+":"+_e(n[t])).join(",")+"}"}o(_e,"stableStringify");var Q={isPrimitiveType:Ae,isArrayType:ae,isLiteralType:fe,isTypeLiteralType:ce,isUnionType:le,isIntersectionType:ue,isTupleType:pe,isClassDefinition:me,hasGenerics:Cn};function x(n){if(typeof n=="string"){let e=In(n);if(typeof e=="string"){let t=e.match(/"(.+)"$/)||e.match(/'(.+)'$/);if(t!=null&&t[1])return{literalValue:t[1]}}return typeof e=="string"?I(n):x(e)}return"array"in n?{arrayElementType:x(n.array)}:"union"in n?{unionMembers:n.union.map(x)}:"intersection"in n?{intersectionMembers:n.intersection.map(x)}:"tuple"in n?{tupleMembers:n.tuple.map(x)}:"generic"in n?I(n.name,n.generic.map(x)):n}o(x,"getTypeDef");function qt(n,e,t=5){let i=g(n,x(e),t);return i.success||y.validationErrorHandler(new w(`assert failed with type: ${e}, ${i.errorStackFlow}`,i)),n}o(qt,"assertType");function Xt(n){return Pn(null,n)}o(Xt,"isNullable");function Pn(n,e,t=5){return g(n,x(e),t).success}o(Pn,"isType");function In(n){let e=0,t="%%",i={};function r(c){let m=`${t}${e++}`;return i[m]=c,m}o(r,"addPlaceholder");function s(c){let m=c.match(new RegExp(`^(${t}\\d)$`));if(!m)return;let D=m[1].trim(),h=i[D];return delete i[D],h}o(s,"getPlaceholder");function a(c,m,D,h){let R=0;for(;R<c.length;){let $=c.indexOf(m,R);if($===-1)break;R=$+1;let k=c.indexOf(D,R);if(k===-1)throw new Je("Illegal type string");let W=c.substring($+1,k),N=r(W);h?c=`${c.substring(0,$+1)}${N}${c.substring(k)}`:c=`${c.substring(0,$)}${N}${c.substring(k+1)}`}return c}o(a,"replaceBracket");function f(c){let m=c.trim(),D=o(A=>A.trim(),"trim"),h=o(A=>A.length!=0,"notEmpty");m=a(m,"(",")",!1),m=a(m,"<",">",!0);let R=s(m);if(R)return f(R);let $=m.split("|").map(D).filter(h);if($.length>1)return{union:$.map(f)};let k=m.split("&").map(D).filter(h);if(k.length>1)return{intersection:k.map(f)};let W=m.match(/^\[(.*)]$/);if(W)return{tuple:W[1].split(",").map(D).filter(h).map(f)};let N=m.match(/^(.+)\[]$/);if(N)return{array:f(N[1])};let de=m.match(/^([^<]+)<(.+)>$/);if(de){let A=de[1].trim(),Te=f(de[2]);if(typeof Te=="string"){let fn=Te.split(",").map(D).filter(h).map(f);return{name:A,generic:fn}}else return{name:A,generic:[Te]}}return m}return o(f,"parseTypeRecursive"),f(n)}o(In,"parseType");var Ge=class Ge extends Error{};o(Ge,"TypeParseError");var Je=Ge;function rn(n,e,t=3){return y.validation?(e=e||n.constructor.name,$e(n,x(e),t)):p}o(rn,"validateInstance");function ri(n,e,t=2){if(!y.validation)return p;for(let i=0;i<n.length;i++){let r=rn(n[i],e,t);if(!r.success)return l(220,`declared as instance of ${e}[] but [${i}] actually not`,{cause:r,value:n,type:e})}return p}o(ri,"validateArray");function oi(n,e,t=2){if(!y.validation)return p;let i=Object.entries(n);for(let r=0;r<i.length;r++){let[s,a]=i[r],f=rn(a,e,t);if(!f.success)return l(230,`declared as instance of Dictionary<${e}> but [${s}] actually not`,{cause:f,value:n,type:e})}return p}o(oi,"validateDictionary");var on=Symbol("VALIDATE_WRAPPER"),yi=o((n,e,t)=>On(n,e,t),"ReflectValidate");function On(n,e,t){if(!y.validation)return;let i=t.value;if(typeof i!="function"||G(i,on))return;let r=o(()=>{var c,m;return(m=(c=T(n))==null?void 0:c.methods)==null?void 0:m.find(D=>D.name===e)},"getMethodDef"),s=o(c=>sn(n,r(),c),"validateArgs"),a=o(c=>$n(n,r(),c),"validateReturn"),f=o(function(...c){s(c);let m=i.call(this,...c);return a(m)},"newFunc");f[on]=i,t.value=f}o(On,"wrapValidateMethod");function sn(n,e,t){var i;(i=e==null?void 0:e.args)==null||i.forEach((r,s)=>{let a=t==null?void 0:t[s];if(a===void 0)if(!r.isOptional)y.validationErrorHandler(new w(`Illegal arguments for ${Be(n.constructor.name,e)}: ${r.name} is not optional`));else return;let f=g(a,r.type||b,1);f.success||(console.error("validateResult",f),y.validationErrorHandler(new w(`Illegal arguments for ${Be(n.constructor.name,e)}: ${r.name}: ${r.name} ${f.errorMessage}`,f)))})}o(sn,"validateMethodParams");function $n(n,e,t){var s;if(!e)return t;let i=o((a,f)=>{let c=g(a,f,5);return c.success||(console.error(c.errorStackFlow),y.validationErrorHandler(new w(`result for ${Be(n.constructor.name,e)} doesn't match type ${f.name}:
|
|
4
|
-
${c.errorStackFlow}`,c))),a},"checkValue"),r=e.returnType;return r.name==="Promise"&&(r=((s=r.generics)==null?void 0:s[0])||b),t instanceof Promise?t.then(a=>i(a,r||b)):i(t,r||b)}o(
|
|
1
|
+
var We=Object.defineProperty,ln=Object.defineProperties;var un=Object.getOwnPropertyDescriptors;var Ke=Object.getOwnPropertySymbols;var pn=Object.prototype.hasOwnProperty,mn=Object.prototype.propertyIsEnumerable;var Qe=(n,e,t)=>e in n?We(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,L=(n,e)=>{for(var t in e||(e={}))pn.call(e,t)&&Qe(n,t,e[t]);if(Ke)for(var t of Ke(e))mn.call(e,t)&&Qe(n,t,e[t]);return n},z=(n,e)=>ln(n,un(e)),o=(n,e)=>We(n,"name",{value:e,configurable:!0});var ge=["string","number","boolean","bigint","symbol"],ze={string:String,number:Number,boolean:Boolean,object:Object};var F=Reflect,_,qe,yn=new Promise(n=>{qe=n});function x(){if(_)return _;let n=F.__meta;if(n===void 0){y.validationErrorHandler(new w("No reflect meta found, reflect is disabled."));return}try{_=JSON.parse(dn(n))}catch(t){console.error(t),y.validationErrorHandler(new w("Illegal reflect meta found, reflect is disabled"));return}delete F.__meta;let e=_;return e.classDef=F.__classDef||{},delete F.__classDef,Reflect.defineProperty(F,"registerClass",{value:o(t=>Object.assign(e.classDef,t),"value")}),qe(),_}o(x,"getRawMeta");function dn(n){let e=atob(n),t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return new TextDecoder().decode(t)}o(dn,"decode");var X=class X{constructor(e){this.name=e.name,this.isReadOnly=!!e.isReadonly,this.isOptional=!!e.isOptional,this.isPrivate=!!e.isPrivate,this.isStatic=!!e.isStatic,this.accessor=e.accessor,this.rawType=e.type}get type(){return d({rawType:this.rawType})}static from(e){return new X(e)}};o(X,"PropertyDefinition");var C=X,Y=class Y extends C{static create(e,t){let i=P(Y,e);return i.genericContext=t,i}get type(){return d({rawType:this.rawType,genericContext:this.genericContext})}};o(Y,"GenericProperty");var q=Y;function P(n,e){let t=Object.create(n.prototype);return e!==void 0&&Object.assign(t,e),t}o(P,"createInstance");function Z(n,e){n.properties=e.properties.map(t=>q.create(t,n.genericContext)),n.methods=e.methods.map(t=>J.create(t,n.genericContext)),n instanceof E&&e instanceof S&&e.constructorMethod!==void 0&&(n.constructorMethod=J.create(e.constructorMethod,n.genericContext))}o(Z,"buildPropertiesAndMethods");function De(n,e){let t={};return n.forEach(i=>{let[r,s]=e(i);t[r]=s}),t}o(De,"toDictionary");function ee(n,e){return(n==null?void 0:n.map(e).filter(t=>t!==void 0))||[]}o(ee,"mapNotNull");function be(n,e,t){n!==void 0&&(n[e]=t)}o(be,"setValue");function G(n,e){if(n!==void 0)return n[e]}o(G,"getValue");function v(n){return n===void 0?n:n.length>=2&&(n[0]==='"'&&n[n.length-1]==='"'||n[0]==="'"&&n[n.length-1]==="'")?n.substring(1,n.length-1):n}o(v,"trimQuotes");var he=class he{constructor(e){this.rawDef=e}get name(){return this.rawDef.name}get returnType(){return d({rawType:this.rawDef.returnType})}get args(){var e;return((e=this.rawDef.args)==null?void 0:e.map(t=>({name:t.name,type:d({rawType:t.type}),isOptional:t.isOptional})))||[]}get isPrivate(){return!!this.rawDef.isPrivate}get isStatic(){return!!this.rawDef.isStatic}get isAsync(){return!!this.rawDef.isAsync}get isConstructor(){return!!this.rawDef.isConstructor}};o(he,"MethodDefinition");var ne=he;function B(n){return new ne(n)}o(B,"fillMethod");var te=class te extends ne{static create(e,t){let i=P(te,e);return i.genericContext=t,i}get args(){var e;return((e=this.rawDef.args)==null?void 0:e.map(t=>({name:t.name,type:d({rawType:t.type,genericContext:this.genericContext}),isOptional:t.isOptional})))||[]}get returnType(){return d({rawType:this.rawDef.returnType,genericContext:this.genericContext})}};o(te,"GenericMethod");var J=te;var H=class H{constructor(e){var t,i,r,s;this.name=e.name,this._implementationNames=e.implementations||[],this.methods=((t=e.methods)==null?void 0:t.map(B))||[],this.properties=((i=e.properties)==null?void 0:i.map(C.from))||[],this.generics=(r=e.genericsParams)!=null?r:[],this.fromLib=(s=e.fromLib)!=null?s:!1}get implementations(){return this._implementations||(this._implementations=ee(this._implementationNames,e=>{var t;return j(e)||((t=T(e))==null?void 0:t.type)||I(e)})),this._implementations}get allImplementations(){if(this._allImplementations===void 0){let e=new Set(this.implementations);this.implementations.forEach(t=>{t instanceof H?t.allImplementations.forEach(i=>e.add(i)):e.add(t)}),this._allImplementations=Array.from(e)}return this._allImplementations}get type(){if(this.implementations.length===0)return{interfaceName:this.name,fromLib:this.fromLib,typeLiteralMembers:Object.values(this.properties)};let e={},t=[];return this.implementations.forEach(i=>{let r=i instanceof H?i.type:i;r.typeLiteralMembers?r.typeLiteralMembers.forEach(s=>e[s.name]=s):t.push(r)}),this.properties.forEach(i=>e[i.name]=i),t.length>0?{interfaceName:this.name,fromLib:this.fromLib,intersectionMembers:[{typeLiteralMembers:Object.values(e)},...t]}:{interfaceName:this.name,fromLib:this.fromLib,typeLiteralMembers:Object.values(e)}}toString(){return`interface ${this.name}`}};o(H,"InterfaceDefinition");var V=H,re=class re extends V{constructor(){super(...arguments);this.genericArgs=[];this.properties=[];this.methods=[];this.genericContext={}}static create(t,i){let r=P(re,t);r.genericArgs=i;let s=r;return s.buildGenericContext(),Z(s,t),s}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((i,r)=>this.genericContext[i]=this.genericArgs[r])}};o(re,"GenericInterface");var ie=re,we=new Map;function j(n){var e,t;if(!we.has(n)){let i=(t=(e=x())==null?void 0:e.interfaces)==null?void 0:t[n];if(!i)return;we.set(n,new V(i))}return we.get(n)}o(j,"getInterfaceDefinition");var xe=class xe{constructor(e){var t,i,r,s;this.name=e.name,this.superClassName=e.superClassName||"Object",this.superClass=T(this.superClassName),this._implementationNames=e.implementations||[],this.constructorMethod=e.constructorMethod!==void 0?B(e.constructorMethod):void 0,this.methods=((t=e.methods)==null?void 0:t.map(B))||[],this.properties=((i=e.properties)==null?void 0:i.map(C.from))||[],this.jsClass=e.jsClass,this.generics=(r=e.genericsParams)!=null?r:[],this.fromLib=(s=e.fromLib)!=null?s:!1}get allMethods(){let e={};if(this.superClassName!=="Object"){let t=T(this.superClassName);t&&Object.assign(e,L({},t.allMethods))}return Object.assign(e,L({},De(this.methods,t=>[t.name,t]))),e}get allProperties(){var e;return Object.assign(((e=this.superClass)==null?void 0:e.allProperties)||{},De(this.properties,t=>[t.name,t]))}get implementations(){return this._implementations?this._implementations:ee(this._implementationNames,e=>j(e)||I(e))}get allImplementations(){var e,t;if(this._allImplementations===void 0){let i=new Set(this.implementations);this.implementations.forEach(r=>{r instanceof V?r.allImplementations.forEach(s=>i.add(s)):i.add(r)}),(t=(e=this.superClass)==null?void 0:e.allImplementations)==null||t.forEach(r=>i.add(r)),this._allImplementations=Array.from(i)}return this._allImplementations}getProperty(e){return this.properties.find(t=>t.name===e)}get type(){var t,i;let e={};return(i=(t=this.superClass)==null?void 0:t.type.typeLiteralMembers)==null||i.forEach(r=>e[r.name]=r),this.properties.forEach(r=>e[r.name]=r),{name:this.name,classDefinition:this,typeLiteralMembers:Object.values(e),fromLib:this.fromLib}}isSubClassOf(e){var t;return this.name===e||(t=this.superClass)!=null&&t.isSubClassOf(e)?!0:this.implementations.map(i=>i.name).includes(e)}isSuperClassOf(e){if(this.name===e)return!0;let t=T(e);return t?t.isSubClassOf(this.name):!1}toString(){return`class ${this.name}`}};o(xe,"ClassDefinition");var S=xe,se=class se extends S{constructor(){super(...arguments);this.genericArgs=[];this.properties=[];this.methods=[];this.genericContext={}}static create(t,i){let r=P(se,t);r.genericArgs=i;let s=r;return s.buildGenericContext(),Z(s,t),s}buildGenericContext(){var t;this.genericContext={},(t=this.generics)==null||t.forEach((i,r)=>this.genericContext[i]=this.genericArgs[r])}};o(se,"GenericClass");var E=se,oe=new Map;function Tn(n){var e;return((e=T(n))==null?void 0:e.jsClass)||ze[n]}o(Tn,"getClassByName");function T(n){var e,t,i,r,s,a;switch(typeof n){case"object":return T(n.constructor);case"function":let f=T(n.name);if(f)return f;let c=Array.from(oe.values()).find(h=>h.jsClass===n);if(c)return c;let m=(t=Object.entries(((e=x())==null?void 0:e.classDef)||{}).find(([h,R])=>R===n))==null?void 0:t[0];return m?T(m):void 0;case"string":let D=n;if(!oe.has(D)){let h=(r=(i=x())==null?void 0:i.classes)==null?void 0:r[D];if(!h)return;let R=(a=(s=x())==null?void 0:s.classDef)==null?void 0:a[D];oe.set(D,new S(z(L({},h),{jsClass:R})))}return oe.get(D)}}o(T,"getClassDefinition");var Ce=class Ce{constructor(){this.success=!0}};o(Ce,"SuccessResult");var Me=Ce,Pe=class Pe{constructor(e,t,i){this.errorCode=e;this.errorDesc=t;this.success=!1;this.cause=i.cause,this.detailCause=i.detailCause,this.value=i.value,this.type=i.type,this.path=i.path}get errorStackFlow(){return this.cause?[this.errorMessage,this.cause.errorStackFlow].join(`
|
|
2
|
+
caused by: `):this.errorMessage}get errorMessage(){return`[Err${this.errorCode}] ${this.errorDesc}, path: ${this.errorPath}`}get errorPath(){var t,i;let e="";return this.path!==void 0&&(typeof this.path=="string"?e=`.${this.path}`:e=`[${this.path}]`),e+((i=(t=this.cause)==null?void 0:t.errorPath)!=null?i:"")}};o(Pe,"FailureResult");var Re=Pe,p=new Me,l=o((n,e,t)=>new Re(n,e,t),"failedResult");function Tt(n){let e=o(t=>t.errorMessage?[t.errorMessage,...t.cause?e(t.cause):[]]:[],"getAllTraceMessages");return e(n).join(`
|
|
3
|
+
-> `)}o(Tt,"getErrorTraceMessages");var Ie=class Ie extends Error{constructor(e,t){super(e),this.failureResult=t}};o(Ie,"ValidationError");var w=Ie;var Oe=[Promise,Date,Map,Set,Error,Function,Array,ArrayBuffer,RegExp];function g(n,e,t=1){var i;if(!y.validation)return p;if(e.validator)return e.validator(n,t);switch(!0){case e.name==="undefined":return n===void 0?p:l(100,`declared as ${u(e)} but actually not`,{value:n,type:e});case e.name==="null":return n===null?p:l(101,`declared as ${u(e)} but actually not`,{value:n,type:e});case Ye(e):return p;case me(e):return n instanceof Object?$e(n,e,t):l(200,`declared as ${u(e)} but actually not an object`,{value:n,type:e});case ae(e):return gn(n,e,t);case pe(e):return bn(n,e,t);case le(e):let r=[];for(let s of e.unionMembers||[]){let a=g(n,s,t);if(a.success)return p;r.push(a)}return e.unionMembers.length>1&&e.unionMembers.find(s=>s.name==="undefined")?((i=e.unionMembers.filter(s=>s.name!=="undefined"))==null?void 0:i.length)===1?l(321,`declared as ${u(e)} but not match`,{value:n,type:e,cause:r.find(s=>{var a;return((a=s.type)==null?void 0:a.name)!=="undefined"})}):l(321,`declared as ${u(e)} but all value not match`,{value:n,type:e,detailCause:r.filter(s=>{var a;return((a=s.type)==null?void 0:a.name)!=="undefined"})}):l(320,`declared as ${u(e)} but all value not match`,{value:n,type:e,detailCause:r});case ue(e):for(let s of e.intersectionMembers||[]){let a=g(n,s,t);if(!a.success)return l(330,`declared as ${u(e)} but all value not match`,{cause:a,value:n,type:e})}return p;case Le(e):return Dn(n,e,t);case fe(e):switch(typeof n){case"string":return n===v(e.literalValue)?p:l(110,`declared as string ${u(e)} but value not match`,{value:n,type:e});case"number":return n===Number(e.literalValue)?p:l(111,`declared as number ${u(e)} but value not match`,{value:n,type:e});case"bigint":return n===BigInt(e.literalValue)?p:l(112,`declared as bigint ${u(e)} but value not match`,{value:n,type:e});case"boolean":return n===!!e.literalValue?p:l(113,`declared as boolean ${u(e)} but value not match`,{value:n,type:e});default:return e.literalValue==="null"&&n===null?p:n===e.literalValue?p:l(114,`declared as ${u(e)} but value not match`,{value:n,type:e})}case ce(e):return hn(n,e,t);case e.isFunction:case e.isConstructor:return typeof n=="function"?p:l(150,`declared as ${u(e)} but actually not`,{value:n,type:e});case Ae(e):return n==null?l(120,`declared as ${u(e)} but actually ${n}`,{value:n,type:e}):typeof n===e.name?p:l(121,`declared as ${u(e)} but actually ${typeof n}`,{value:n,type:e});default:return wn(n,e,t)}}o(g,"validateValue");function gn(n,e,t=1){if(!Array.isArray(n))return l(300,`declared as ${u(e)} but actually not`,{value:n,type:e});if(t===0)return p;for(let i=0;i<n.length;i++){let r=n[i],s=g(r,e.arrayElementType||b,t-1);if(!s.success)return l(301,`declared as ${u(e)} but [${i}] not match`,{cause:s,value:n,type:e,path:i})}return p}o(gn,"validateArrayValue");function Dn(n,e,t=1){if(n===null)return l(400,"declared as indexedType but actually is null",{value:n,type:e});if(n===void 0)return l(401,"declared as indexedType but actually is undefined",{value:n,type:e});if(typeof n!="object")return l(410,`declared as indexedType but actually is ${typeof n}`,{value:n,type:e});for(let[i,r]of Object.entries(n)){let s=g(r,e.index.valueType,t-1);if(!s.success)return l(420,`declared as ${u(e)} but [${i}] not match`,{cause:s,value:n,type:e,path:i});if(e.index.keyType&&(s=g(i,e.index.keyType,t-1),!s.success))return l(421,`declared as ${u(e)} but [${i}] not match`,{cause:s,value:n,type:e,path:i})}return p}o(Dn,"validateIndexedValue");function bn(n,e,t=1){if(!Array.isArray(n))return l(310,`declared as ${u(e)} but actually not a tuple`,{value:n,type:e});if(t===0)return p;let i=0;for(let r of e.tupleMembers){let s=n[i++];if(r.isOptionalInTuple&&s===void 0)continue;let a=g(s,r,t);if(!a.success)return l(311,`declared as ${u(e)} but not all values in tuple match`,{cause:a,value:n,type:e})}return p}o(bn,"validateTupleValue");function hn(n,e,t=1){if(n instanceof Object){for(let i of e.typeLiteralMembers||[]){if("isStatic"in i&&i.isStatic)return p;if(i.name.startsWith("[")&&i.name.endsWith("]"))return p;if(t===0)return p;let r=i.type||b;i.isOptional&&(r={unionMembers:[r,{name:"undefined"}]});let s=G(n,i.name),a=g(s,r,t-1);if(!a.success)return l(211,`declared ${i.name} as ${u(r)}, but not match`,{cause:a,value:n,type:e,path:i.name})}return p}else return l(210,`declared as ${u(e)} but not an object`,{value:n,type:e})}o(hn,"validateProperties");function wn(n,e,t=1){let i=typeof e=="string"?e:e.name;if(!i)return p;if(n===void 0)return l(130,`declared as ${u(e)} but actually undefined`,{value:n,type:e});if(n===null)return l(131,`declared as ${u(e)} but actually null`,{value:n,type:e});for(let s of Oe)if(i===s.name)return n instanceof s?p:l(132,`declared as ${u(e)} but actually ${n.constructor.name}`,{value:n,type:e});if(n instanceof Object&&!Xe(n,i))return l(133,`declared as ${u(e)} but actually not instance of it`,{value:n,type:e});if(t==0)return p;let r=g(n,I(i),t);return r.success?p:l(134,`declared as ${u(e)} but actually not match`,{cause:r,value:n,type:e})}o(wn,"validateSimpleValue");function $e(n,e,t=3){if(e.classDefinition&&!Xe(n,e.classDefinition.name))return l(201,`declared as instance of ${u(e)} but actually not`,{value:n,type:e});if(e.name!=="any"&&e===b)return l(202,`${u(e)} not defined`,{value:n,type:e});let i=L({},e);return delete i.classDefinition,g(n,i,t)}o($e,"validateClassInstance");function Xe(n,e){if(n===void 0||n.constructor.name===e)return!0;let t=T(e);if(!t)return!0;if(t.jsClass)return n instanceof t.jsClass;let i=T(n);return i?i.isSubClassOf(t.name):!1}o(Xe,"valueInstanceOf");function u(n){var e,t,i;return typeof n=="string"?n:me(n)?n.classDefinition.name:n.interfaceName?n.interfaceName:n.typeAliasName?n.typeAliasName:ae(n)?u(n.arrayElementType)+"[]":n.isConstructor?"Class":n.isFunction?"Function":ce(n)?"Object":pe(n)?`(${n.tupleMembers.map(u).join(",")})`:le(n)?((e=n.unionMembers)==null?void 0:e.map(u).join(" | "))||"unknown":ue(n)?((t=n.intersectionMembers)==null?void 0:t.map(u).join(" & "))||"unknown":fe(n)?n.literalValue:Le(n)?`{ [${(i=n.index.keyType)!=null?i:"string"}]: ${u(n.index.valueType)} }`:n.name||"unknown"}o(u,"getTypeDisplayName");function xn(n,e,t){let i=T(n),r=y.validationErrorHandler;if(!i){be(n,e,t);return}let s=i.allProperties[e];s||r(new w(`Property ${e} is not defined in ${i.name}`));let a=s==null?void 0:s.type,f=g(t,a);f.success||r(new w(f.errorMessage)),be(n,e,t)}o(xn,"safeSetValue");var Se=class Se{constructor(e){var t;this.name=e.name,this.members=new Map,e.members.forEach(i=>{let r=i.initializer===void 0?{name:"number"}:{literalValue:i.initializer};this.members.set(i.name,r)}),this.fromLib=(t=e.fromLib)!=null?t:!1}get type(){return{name:this.name,unionMembers:Array.from(this.members.values()),fromLib:this.fromLib}}get names(){return Array.from(this.members.keys())}};o(Se,"EnumDefinition");var ve=Se,ke=new Map;function U(n){var e,t;if(!ke.has(n)){let i=(t=(e=x())==null?void 0:e.enums)==null?void 0:t[n];if(!i)return;ke.set(n,new ve(i))}return ke.get(n)}o(U,"getEnumDefinition");function Mn(n){var e;return((e=U(n))==null?void 0:e.names)||[]}o(Mn,"getEnumNames");function Rn(n){let e=Object.entries(n)[0];if(!e)return[];let[t,i]=e,r=U(t);return r?r.names.map(s=>i[s]):Array.from(Object.keys(i))}o(Rn,"getEnumValues");var Ee=new Map;function O(n){Ee.set(n.name,n)}o(O,"registerSpecialType");function Ze(n){return Ee.has(n)}o(Ze,"isSpecialType");function Ve(n,...e){let t=Ee.get(n);if(!t)return;let i=t.getType(...e);return i?{name:n,type:i,genericParams:t.genericParams,fromLib:!!t.fromLib}:void 0}o(Ve,"getSpecialTypeAlias");O({name:"Partial",genericParams:["T"],fromLib:!0,getType(...n){let e=n[0];return e?K(e,t=>t.isOptional=!0):void 0}});O({name:"Required",genericParams:["T"],fromLib:!0,getType(...n){let e=n[0];return e!=null?e:K(e,t=>t.isOptional=!1)}});O({name:"Readonly",genericParams:["T"],fromLib:!0,getType(...n){let e=n[0];return K(e,t=>t.isReadonly=!0)}});O({name:"Record",genericParams:["K","T"],fromLib:!0,getType(...n){let[e,t]=n;return{index:{keyType:e!=null?e:b,valueType:t!=null?t:b}}}});O({name:"Pick",genericParams:["T","K"],fromLib:!0,getType(...n){let[e,t]=n;if(e)return en(e,t)}});function en(n,e){var i,r;if(!e)return;let t=(r=(i=e.unionMembers)==null?void 0:i.map(s=>v(s.literalValue)))!=null?r:[v(e.literalValue)];if(n.typeLiteralMembers)return tn(n,s=>t.includes(s.name))}o(en,"getPickType");O({name:"Omit",genericParams:["T","K"],fromLib:!0,getType(...n){let[e,t]=n;if(e)return nn(e,t)}});function nn(n,e){var i,r;if(!e)return;let t=(r=(i=e.unionMembers)==null?void 0:i.map(s=>v(s.literalValue)))!=null?r:[v(e.literalValue)];if(n.typeLiteralMembers)return tn(n,s=>!t.includes(s.name))}o(nn,"getOmitType");O({name:"Extract",genericParams:["T","U"],fromLib:!0,getType(...n){let[e,t]=n;if(!(!e||!t)&&e.typeLiteralMembers&&t.typeLiteralMembers){let i={unionMembers:t.typeLiteralMembers.map(r=>({literalValue:r.name}))};return en(e,i)}}});O({name:"Exclude",genericParams:["T","U"],fromLib:!0,getType(...n){let[e,t]=n;if(!(!e||!t)&&e.typeLiteralMembers&&t.typeLiteralMembers){let i={unionMembers:t.typeLiteralMembers.map(r=>({literalValue:r.name}))};return nn(e,i)}}});O({name:"ReflectReference",genericParams:["T","R"],getType(...n){let[e,t]=n;if(e)return z(L({},e),{reflectReference:t})}});function K(n,e){return n.typeLiteralMembers?{typeLiteralMembers:n.typeLiteralMembers.map(t=>rn(t,e))}:n.unionMembers?{unionMembers:n.unionMembers.map(t=>K(t,e)).filter(t=>t!==void 0)}:n.intersectionMembers?{intersectionMembers:n.intersectionMembers.map(t=>K(t,e)).filter(t=>t!==void 0)}:void 0}o(K,"getMappedType");function tn(n,e){if(n.typeLiteralMembers)return{typeLiteralMembers:n.typeLiteralMembers.map(t=>e(t)?rn(t):void 0).filter(t=>!!t)}}o(tn,"getFilterKeyType");function rn(n,e){let t;return n instanceof C?t=new C({name:n.name,isReadonly:n.isReadOnly,isOptional:n.isOptional,isStatic:n.isStatic,accessor:n.accessor,type:n.rawType}):t={name:n.name,isOptional:n.isOptional,type:n.type},e==null||e(t),t}o(rn,"copyPropertyDefinition");function Ne(n,e){var r,s,a;if(Ze(n))return e?Ve(n,...e):Ve(n);if(!je.has(n)){let f=(s=(r=x())==null?void 0:r.typeAliases)==null?void 0:s[n];if(!f||!f.type)return;je.set(n,{name:n,type:f.type,genericParams:f.genericParams,fromLib:f.fromLib})}let t=je.get(n);if(!t)return;let i;if(t.genericParams&&e){let f={};for(let c=0;c<t.genericParams.length;c++){let m=t.genericParams[c];f[m]=e[c]}i=d({rawType:t.type,genericContext:f,genericArgs:e})}else i=d({rawType:t.type});return i.typeAliasName=n,{name:t.name,type:i,genericParams:t.genericParams,fromLib:(a=t.fromLib)!=null?a:!1}}o(Ne,"getTypeAliasDefinition");var je=new Map;var b={name:"any"},Cn={name:"null"},Pn={name:"undefined"};function Ye(n){return!!(n.name&&["any","void","unknown"].includes(n.name))}o(Ye,"isIgnoredType");function Ae(n){return!!(n.name&&ge.includes(n.name))}o(Ae,"isPrimitiveType");function ae(n){return!!n.arrayElementType}o(ae,"isArrayType");function fe(n){return!!n.literalValue}o(fe,"isLiteralType");function ce(n){return!!n.typeLiteralMembers}o(ce,"isTypeLiteralType");function le(n){return!!n.unionMembers}o(le,"isUnionType");function ue(n){return!!n.intersectionMembers}o(ue,"isIntersectionType");function pe(n){return!!n.tupleMembers}o(pe,"isTupleType");function me(n){return!!n.classDefinition}o(me,"isClassDefinition");function In(n){return!!n.generics}o(In,"hasGenerics");function Le(n){return!!n.index}o(Le,"isIndexType");function I(n,e){if(n==="any"||n==="Any"||n==="unknown"||n==="")return b;if(n==="null")return Cn;if(n==="undefined")return Pn;if(n==="Function")return{isFunction:!0};let t=T(n);if(t)return e?E.create(t,e).type:t.type;if(ge.includes(n))return{name:n};if(Oe.map(a=>a.name).includes(n))return{name:n,generics:e};let i=j(n);if(i)return i.fromLib?{name:n,generics:e}:e?ie.create(i,e).type:i.type;let r=U(n);if(r)return r.type;let s=Ne(n,e);return s?s.type:(y.debug&&console.warn(`${n} not registered...`),b)}o(I,"getTypeDefinition");var Fe=new Map;function d(n){let{rawType:e,genericContext:t,genericArgs:i}=n,r=_e(e);if(e===void 0)return b;let s=Fe.get(r);if(s)return s;let a={};if(Fe.set(r,a),typeof e=="string")a=(t==null?void 0:t[e])||I(e,i)||b;else if(typeof e.literalValue=="string")a.literalValue=e.literalValue;else if(e.arrayElementType)Object.assign(a,{arrayElementType:d({rawType:e.arrayElementType,genericContext:t})});else if(e.unionMembers)Object.assign(a,{unionMembers:e.unionMembers.map(f=>d({rawType:f,genericContext:t}))});else if(e.intersectionMembers)Object.assign(a,{intersectionMembers:e.intersectionMembers.map(f=>d({rawType:f,genericContext:t}))});else if(e.tupleMembers)Object.assign(a,{tupleMembers:e.tupleMembers.map(f=>d({rawType:f,genericContext:t}))});else if(e.typeLiteralMembers)a.typeLiteralMembers=e.typeLiteralMembers.map(f=>({name:f.name,isOptional:!!f.isOptional,type:d({rawType:f.type,genericContext:t,genericArgs:i})}));else if(e.generics){let f=e.generics[0],c=e.generics.slice(1).map(m=>d({rawType:m,genericContext:t}));Object.assign(a,d({rawType:f,genericContext:t,genericArgs:c}))}else e.index&&Object.assign(a,{index:{keyType:e.index.keyType?d({rawType:e.index.keyType,genericContext:t}):void 0,valueType:d({rawType:e.index.valueType,genericContext:t})}});return Object.keys(a).length===0&&(a=b),Fe.delete(r),a}o(d,"fillType");function _e(n){return n===null?"null":n===void 0?"undefined":typeof n!="object"?JSON.stringify(n):Array.isArray(n)?"["+n.map(_e).join(",")+"]":"{"+Object.keys(n).sort().map(t=>JSON.stringify(t)+":"+_e(n[t])).join(",")+"}"}o(_e,"stableStringify");var Q={isPrimitiveType:Ae,isArrayType:ae,isLiteralType:fe,isTypeLiteralType:ce,isUnionType:le,isIntersectionType:ue,isTupleType:pe,isClassDefinition:me,hasGenerics:In};function M(n){if(typeof n=="string"){let e=$n(n);if(typeof e=="string"){let t=e.match(/"(.+)"$/)||e.match(/'(.+)'$/);if(t!=null&&t[1])return{literalValue:t[1]}}return typeof e=="string"?I(n):M(e)}return"array"in n?{arrayElementType:M(n.array)}:"union"in n?{unionMembers:n.union.map(M)}:"intersection"in n?{intersectionMembers:n.intersection.map(M)}:"tuple"in n?{tupleMembers:n.tuple.map(M)}:"generic"in n?I(n.name,n.generic.map(M)):n}o(M,"getTypeDef");function Yt(n,e,t=5){let i=g(n,M(e),t);return i.success||y.validationErrorHandler(new w(`assert failed with type: ${e}, ${i.errorStackFlow}`,i)),n}o(Yt,"assertType");function Zt(n){return On(null,n)}o(Zt,"isNullable");function On(n,e,t=5){return g(n,M(e),t).success}o(On,"isType");function $n(n){let e=0,t="%%",i={};function r(c){let m=`${t}${e++}`;return i[m]=c,m}o(r,"addPlaceholder");function s(c){let m=c.match(new RegExp(`^(${t}\\d)$`));if(!m)return;let D=m[1].trim(),h=i[D];return delete i[D],h}o(s,"getPlaceholder");function a(c,m,D,h){let R=0;for(;R<c.length;){let $=c.indexOf(m,R);if($===-1)break;R=$+1;let k=c.indexOf(D,R);if(k===-1)throw new Je("Illegal type string");let W=c.substring($+1,k),N=r(W);h?c=`${c.substring(0,$+1)}${N}${c.substring(k)}`:c=`${c.substring(0,$)}${N}${c.substring(k+1)}`}return c}o(a,"replaceBracket");function f(c){let m=c.trim(),D=o(A=>A.trim(),"trim"),h=o(A=>A.length!=0,"notEmpty");m=a(m,"(",")",!1),m=a(m,"<",">",!0);let R=s(m);if(R)return f(R);let $=m.split("|").map(D).filter(h);if($.length>1)return{union:$.map(f)};let k=m.split("&").map(D).filter(h);if(k.length>1)return{intersection:k.map(f)};let W=m.match(/^\[(.*)]$/);if(W)return{tuple:W[1].split(",").map(D).filter(h).map(f)};let N=m.match(/^(.+)\[]$/);if(N)return{array:f(N[1])};let de=m.match(/^([^<]+)<(.+)>$/);if(de){let A=de[1].trim(),Te=f(de[2]);if(typeof Te=="string"){let cn=Te.split(",").map(D).filter(h).map(f);return{name:A,generic:cn}}else return{name:A,generic:[Te]}}return m}return o(f,"parseTypeRecursive"),f(n)}o($n,"parseType");var Ge=class Ge extends Error{};o(Ge,"TypeParseError");var Je=Ge;function on(n,e,t=3){return y.validation?(e=e||n.constructor.name,$e(n,M(e),t)):p}o(on,"validateInstance");function si(n,e,t=2){if(!y.validation)return p;for(let i=0;i<n.length;i++){let r=on(n[i],e,t);if(!r.success)return l(220,`declared as instance of ${e}[] but [${i}] actually not`,{cause:r,value:n,type:e})}return p}o(si,"validateArray");function ai(n,e,t=2){if(!y.validation)return p;let i=Object.entries(n);for(let r=0;r<i.length;r++){let[s,a]=i[r],f=on(a,e,t);if(!f.success)return l(230,`declared as instance of Dictionary<${e}> but [${s}] actually not`,{cause:f,value:n,type:e})}return p}o(ai,"validateDictionary");var sn=Symbol("VALIDATE_WRAPPER"),Ti=o((n,e,t)=>An(n,e,t),"ReflectValidate");function An(n,e,t){if(!y.validation)return;let i=t.value;if(typeof i!="function"||G(i,sn))return;let r=o(()=>{var c,m;return(m=(c=T(n))==null?void 0:c.methods)==null?void 0:m.find(D=>D.name===e)},"getMethodDef"),s=o(c=>an(n,r(),c),"validateArgs"),a=o(c=>Ln(n,r(),c),"validateReturn"),f=o(function(...c){s(c);let m=i.call(this,...c);return a(m)},"newFunc");f[sn]=i,t.value=f}o(An,"wrapValidateMethod");function an(n,e,t){var i;(i=e==null?void 0:e.args)==null||i.forEach((r,s)=>{let a=t==null?void 0:t[s];if(a===void 0)if(!r.isOptional)y.validationErrorHandler(new w(`Illegal arguments for ${Be(n.constructor.name,e)}: ${r.name} is not optional`));else return;let f=g(a,r.type||b,1);f.success||(console.error("validateResult",f),y.validationErrorHandler(new w(`Illegal arguments for ${Be(n.constructor.name,e)}: ${r.name}: ${r.name} ${f.errorMessage}`,f)))})}o(an,"validateMethodParams");function Ln(n,e,t){var s;if(!e)return t;let i=o((a,f)=>{let c=g(a,f,5);return c.success||(console.error(c.errorStackFlow),y.validationErrorHandler(new w(`result for ${Be(n.constructor.name,e)} doesn't match type ${f.name}:
|
|
4
|
+
${c.errorStackFlow}`,c))),a},"checkValue"),r=e.returnType;return r.name==="Promise"&&(r=((s=r.generics)==null?void 0:s[0])||b),t instanceof Promise?t.then(a=>i(a,r||b)):i(t,r||b)}o(Ln,"validateMethodReturnValue");function Be(n,e){var t;return`${n}.${e.name}(${(t=e.args)==null?void 0:t.map(i=>i.name).join(", ")})`}o(Be,"getMethodDescription");function gi(n,e,...t){let i=T(n);if(!i)return;let r=i.allMethods[e];if(r)return an(n,r,t),G(n,e).apply(n,t)}o(gi,"safeCall");var He=class He{constructor(e){this.exceptionHandler=e!=null?e:console.error}parse(e,t){if(!t)return JSON.parse(e);let i=M(t),r=JSON.parse(e),s=this.convertJSONValue(r,i);return g(s,i).success||this.exceptionHandler(new ye(`jsonValue should be ${i.name}`)),s}convertJSONValue(e,t){switch(!0){case typeof e=="string":case typeof e=="number":case typeof e=="boolean":case e===null:return e;case e instanceof Array:return Q.isArrayType(t)?e.map(i=>this.convertJSONValue(i,t)):Q.isTupleType(t)?t.tupleMembers.map((i,r)=>this.convertJSONValue(e[r],i)):e;default:return Q.isClassDefinition(t)?this.convertJSONObjectAsClassInstance(e,t.classDefinition):e}}convertJSONObjectAsClassInstance(e,t){if(!t.jsClass)return this.exceptionHandler(new ye(`class ${t.name} not reflected`)),e;let i=P(t.jsClass);return Object.assign(i,e),i}};o(He,"JSONTransfer");var fn=He,Ue=class Ue extends Error{};o(Ue,"JSONError");var ye=Ue;var y={validationErrorHandler:o(function(n){var e;console.error(n.message),console.error((e=n.failureResult)==null?void 0:e.errorStackFlow)},"validationErrorHandler"),validation:!0,debug:!1};function Ei(){if(!y.debug)return x()}o(Ei,"getDebugInfo");export{Re as FailureResult,ye as JSONError,fn as JSONTransfer,y as ReflectConfig,Ti as ReflectValidate,Q as TypeDefinition,Je as TypeParseError,w as ValidationError,Yt as assertType,l as failedResult,Tn as getClassByName,T as getClassDefinition,Ei as getDebugInfo,U as getEnumDefinition,Mn as getEnumNames,Rn as getEnumValues,Tt as getErrorTraceMessages,j as getInterfaceDefinition,Ne as getTypeAliasDefinition,M as getTypeDef,Zt as isNullable,On as isType,yn as reflectReady,O as registerSpecialType,gi as safeCall,xn as safeSetValue,p as successResult,si as validateArray,ai as validateDictionary,on as validateInstance,g as validateValue};
|
package/package.json
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ValidationError } from './validates';
|
|
2
|
+
export { reflectReady } from './raw-meta';
|
|
2
3
|
import type { RawReflectMeta } from '../raw';
|
|
3
4
|
export { TypeDefinition } from './TypeDefinition';
|
|
4
5
|
export { getClassDefinition, getClassByName, type ClassDefinition } from './ClassDefinition';
|