UNPKG

@noeldemartin/faker

Version:

Generate massive amounts of fake contextual data

2 lines (1 loc) 4.82 kB
"use strict";var p=Object.create;var u=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var k=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var $=(a,e)=>{for(var r in e)u(a,r,{get:e[r],enumerable:!0})},d=(a,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of b(e))!g.call(a,t)&&t!==r&&u(a,t,{get:()=>e[t],enumerable:!(n=y(e,t))||n.enumerable});return a};var N=(a,e,r)=>(r=a!=null?p(k(a)):{},d(e||!a||!a.__esModule?u(r,"default",{value:a,enumerable:!0}):r,a)),C=a=>d(u({},"__esModule",{value:!0}),a);var E={};$(E,{FinanceModule:()=>f});module.exports=C(E);var m=require("../../errors/faker-error"),o=N(require("./iban"));class f{constructor(e){this.faker=e;for(const r of Object.getOwnPropertyNames(f.prototype))r==="constructor"||typeof this[r]!="function"||(this[r]=this[r].bind(this))}account(e){e=e||8;let r="";for(let n=0;n<e;n++)r+="#";return e=null,this.faker.helpers.replaceSymbolWithNumber(r)}accountName(){return[this.faker.helpers.arrayElement(this.faker.definitions.finance.account_type),"Account"].join(" ")}routingNumber(){const e=this.faker.helpers.replaceSymbolWithNumber("########");let r=0;for(let n=0;n<e.length;n+=3)r+=Number(e[n])*3,r+=Number(e[n+1])*7,r+=Number(e[n+2])||0;return`${e}${Math.ceil(r/10)*10-r}`}mask(e,r,n){e=e||4,r=r==null?!0:r,n=n==null?!0:n;let t="";for(let i=0;i<e;i++)t=`${t}#`;return t=n?["...",t].join(""):t,t=r?["(",t,")"].join(""):t,t=this.faker.helpers.replaceSymbolWithNumber(t),t}amount(e=0,r=1e3,n=2,t="",i){const s=this.faker.datatype.number({max:r,min:e,precision:Math.pow(10,-n)});let c;return i?c=s.toLocaleString(void 0,{minimumFractionDigits:n}):c=s.toFixed(n),t+c}transactionType(){return this.faker.helpers.arrayElement(this.faker.definitions.finance.transaction_type)}currencyCode(){return this.faker.helpers.objectValue(this.faker.definitions.finance.currency).code}currencyName(){return this.faker.helpers.objectKey(this.faker.definitions.finance.currency)}currencySymbol(){let e;for(;!e;)e=this.faker.helpers.objectValue(this.faker.definitions.finance.currency).symbol;return e}bitcoinAddress(){const e=this.faker.datatype.number({min:25,max:39});let r=this.faker.helpers.arrayElement(["1","3"]);return r+=this.faker.random.alphaNumeric(e,{casing:"mixed",bannedChars:"0OIl"}),r}litecoinAddress(){const e=this.faker.datatype.number({min:26,max:33});let r=this.faker.helpers.arrayElement(["L","M","3"]);for(let n=0;n<e-1;n++)r+=this.faker.helpers.arrayElement("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ".split(""));return r}creditCardNumber(e=""){let r;const n=this.faker.definitions.finance.credit_card,t=e.toLowerCase();if(t in n)r=this.faker.helpers.arrayElement(n[t]);else if(e.match(/#/))r=e;else{const i=this.faker.helpers.objectValue(n);r=this.faker.helpers.arrayElement(i)}return r=r.replace(/\//g,""),this.faker.helpers.replaceCreditCardSymbols(r)}creditCardCVV(){let e="";for(let r=0;r<3;r++)e+=this.faker.datatype.number({max:9}).toString();return e}creditCardIssuer(){return this.faker.helpers.objectKey(this.faker.definitions.finance.credit_card)}pin(e=4){if(e<1)throw new m.FakerError("minimum length is 1");return Array.from({length:e},()=>this.faker.datatype.number(9)).join("")}ethereumAddress(){return this.faker.datatype.hexadecimal({length:40,case:"lower"})}iban(e=!1,r){const n=r?o.default.formats.find(l=>l.country===r):this.faker.helpers.arrayElement(o.default.formats);if(!n)throw new m.FakerError(`Country code ${r} not supported.`);let t="",i=0;for(const l of n.bban){let h=l.count;for(i+=l.count;h>0;)l.type==="a"?t+=this.faker.helpers.arrayElement(o.default.alpha):l.type==="c"?this.faker.datatype.number(100)<80?t+=this.faker.datatype.number(9):t+=this.faker.helpers.arrayElement(o.default.alpha):h>=3&&this.faker.datatype.number(100)<30?this.faker.datatype.boolean()?(t+=this.faker.helpers.arrayElement(o.default.pattern100),h-=2):(t+=this.faker.helpers.arrayElement(o.default.pattern10),h--):t+=this.faker.datatype.number(9),h--;t=t.substring(0,i)}let s=98-o.default.mod97(o.default.toDigitString(`${t}${n.country}00`));s<10&&(s=`0${s}`);const c=`${n.country}${s}${t}`;return e?c.match(/.{1,4}/g).join(" "):c}bic(e={}){const{includeBranchCode:r=this.faker.datatype.boolean()}=e,n=this.faker.random.alpha({count:4,casing:"upper"}),t=this.faker.helpers.arrayElement(o.default.iso3166),i=this.faker.random.alphaNumeric(2,{casing:"upper"}),s=r?this.faker.datatype.boolean()?this.faker.random.alphaNumeric(3,{casing:"upper"}):"XXX":"";return`${n}${t}${i}${s}`}transactionDescription(){const e=this.amount(),r=this.faker.company.name(),n=this.transactionType(),t=this.account(),i=this.mask(),s=this.currencyCode();return`${n} transaction at ${r} using card ending with ***${i} for ${s} ${e} in account ***${t}`}}0&&(module.exports={FinanceModule});