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