UNPKG

@3r/tool

Version:

🏃‍包含一些常用方法例如对象深克隆、递归调用、一一对比/数组交集、并集、差集/二维向量点乘、叉乘/股票KDJ、MACD、RSI、BOLL/验证为空、车牌号、邮箱、身份证、统一社会信用代码、手机号、版本对比/转换日期、星座、身份证解析、字节/随机颜色、手机号、身份证号码、统一社会信用代码...持续更新整合

1 lines 2.7 kB
import{Convertor as i}from"../lib/convertor.js";import{Randoms as o}from"../lib/randoms.js";import{Maths as r}from"./maths.js";import u from"../assets/region.js";import a from"../assets/name.js";var m,e;function s(e,t){return 1==t--?e:s(e=e.flatMap(e=>e.subordinates),t)}(e=m=m||{})[e.Male=1]="Male",e[e.Female=2]="Female",e[e.All=3]="All";class t{static citizenIdentificationNumber(e){var t=new Date,l=null!=(l=null==e?void 0:e.maxAge)?l:30,n=null!=(n=null==e?void 0:e.minAge)?n:18,r=null!=(r=null==e?void 0:e.gender)?r:m.All,e=null!=(e=null==e?void 0:e.regionCodes)?e:s(u,3).map(e=>e.id),l=+new Date(t.getFullYear()-l,0,1),t=+new Date(t.getFullYear()-n,11,1),n=e[o.int(0,e.length)],e=new Date(o.int(l,t)),l=i.timeFormat(e,"yyyyMMdd"),t=0!=(r&m.Male),e=0!=(r&m.Female);let a=o.int(1,500);(t&&a%2!=1||e&&a%2!=0)&&a++;r=n+l+a.toString().padStart(3,"0");return r+(t=>{let l=0;for(let e=0;e<t.length;e++){var n=Number(t[e]);l+=n*Math.pow(2,17-e)%11}return["1","0","X","9","8","7","6","5","4","3","2"][l%=11]})(r)}static usci(e){var t=null!=(t=null==e?void 0:e.organizationCodes)?t:["91","92"],e=null!=(e=null==e?void 0:e.regionCodes)?e:s(u,3).map(e=>e.id),l=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","T","U","W","X","Y"];let n="";n=(n+=t[o.int(0,t.length)])+e[o.int(0,e.length)];for(let e=0;e<8;e++)n+=l[o.int(0,l.length)];return n=(n+=(l=>{var n=[3,7,9,10,5,8,4,2];let r=0;for(let t=0;t<n.length;t++){let e=l[t].charCodeAt(0);48<=e&&e<=57?e-=48:65<=e&&e<=90&&(e-=55),r+=n[t]*e}return 11===(r=11-r%11)?"0":10===r?"X":r+""})(n.substring(8)))+(e=>{let l=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","T","U","W","X","Y"];return e=r.sum(e.split("").map((t,e)=>l.findIndex(e=>t===e)*Math.pow(3,e)%31))%31,l[0==e?0:31-e]})(n)}static phoneNumber(){var e=[130,131,132,133,134,135,136,137,138,139,180,181,182,183,184,185,186,187,188,189,150,151,152,153,155,156,157,158,159,173,175,176,177,178,145,147,166,198,199];let t=e[o.int(0,e.length)]+"";for(let e=3;e<11;e++)t+=o.int(0,10);return t}static fullName(e){var{familyName:t,femaleName:l,maleName:n}=a,e=null!=(e=null==e?void 0:e.gender)?e:m.All;let r=0!=(e&m.Male);e=0!=(e&m.Female),t=t[o.int(0,t.length)];return r&&(e&&(r=o.int(1,3)===m.Male)),r?t+n[o.int(0,n.length)]:t+l[o.int(0,l.length)]}static bankCardNumber(e){var t,l=null!=(t=null==e?void 0:e.bin)?t:"621210",n=null!=(t=null==e?void 0:e.length)?t:18;let r=l;for(let e=0;e<n-l.length-1;e++)r+=o.int(0,10);return r+(t=>{let l=0;for(let e=0;e<t.length;e++){var n=+t[e];l+=(t.length-1-e)%2==0?2*n/10+2*n%10:n}return l%10==0?"0":~~(10-l%10)+""})(r)}}export{m as GenderEnum,t as Fakery};