@fightmegg/transferwise
Version:
Node TransferWise API client
2 lines (1 loc) • 3.31 kB
JavaScript
;function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var t=e(require("node-fetch")),s=require("querystring"),r=e(require("crypto"));module.exports=class{constructor({token:e,sandbox:t=!1}={}){if(!e)throw new Error("token is required");this.token=e,this.sandbox=t,this.url=t?"https://api.sandbox.transferwise.tech":"https://api.transferwise.com"}request({method:e="GET",path:s="",body:r,version:n}={}){const o="/"+(n||"v1"),i=this.url+o+s,a={method:e,json:!0,headers:{Authorization:"Bearer "+this.token,"Content-Type":"application/json","cache-control":"no-cache"}};return r&&(a.body=JSON.stringify(r)),"DELETE"===e?t(i,a):t(i,a).then(e=>e.json())}profiles(){return this.request({path:"/profiles"})}borderlessAccounts(e){return this.request({path:"/borderless-accounts?profileId="+e})}get recipientAccounts(){return{create:e=>this.request({method:"POST",body:e,path:"/accounts"}),get:e=>this.request({path:"/accounts/"+e}),delete:e=>this.request({method:"DELETE",path:"/accounts/"+e}),list:e=>this.request({path:"/accounts?"+s.encode(e)})}}get quotes(){return{temporary:e=>this.request({path:"/quotes?"+s.encode(e)}),create:e=>this.request({method:"POST",body:e,path:"/quotes"}),get:e=>this.request({path:"/quotes/"+e})}}get transfers(){return{create:e=>this.request({method:"POST",body:e,path:"/transfers"}),cancel:e=>this.request({method:"PUT",path:`/transfers/${e}/cancel`}),get:e=>this.request({path:"/transfers/"+e}),issues:e=>this.request({path:`/transfers/${e}/issues`}),fund:(e,t)=>this.request({method:"POST",version:"v3",body:{type:"BALANCE"},path:`/profiles/${e}/transfers/${t}/payments`}),deliveryEstimate:e=>this.request({path:"/delivery-estimates/"+e}),list:e=>this.request({path:"/transfers?"+s.encode(e)})}}get simulation(){return{transfers:{processing:e=>this.request({path:`/simulation/transfers/${e}/processing`}),fundsConverted:e=>this.request({path:`/simulation/transfers/${e}/funds_converted`}),outgoingPaymentSent:e=>this.request({path:`/simulation/transfers/${e}/outgoing_payment_sent`}),bouncedBack:e=>this.request({path:`/simulation/transfers/${e}/bounced_back`}),fundsRefunded:e=>this.request({path:`/simulation/transfers/${e}/funds_refunded`})}}}get webhooks(){return{constructEvent:(e,t)=>((e=!1,t,s)=>{const n=r.createVerify("RSA-SHA1");n.update(t);return n.verify(e?"\n-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwpb91cEYuyJNQepZAVfP\nZIlPZfNUefH+n6w9SW3fykqKu938cR7WadQv87oF2VuT+fDt7kqeRziTmPSUhqPU\nys/V2Q1rlfJuXbE+Gga37t7zwd0egQ+KyOEHQOpcTwKmtZ81ieGHynAQzsn1We3j\nwt760MsCPJ7GMT141ByQM+yW1Bx+4SG3IGjXWyqOWrcXsxAvIXkpUD/jK/L958Cg\nnZEgz0BSEh0QxYLITnW1lLokSx/dTianWPFEhMC9BgijempgNXHNfcVirg1lPSyg\nz7KqoKUN0oHqWLr2U1A+7kqrl6O2nx3CKs1bj1hToT1+p4kcMoHXA7kA+VBLUpEs\nVwIDAQAB\n-----END PUBLIC KEY-----":"\n-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvO8vXV+JksBzZAY6GhSO\nXdoTCfhXaaiZ+qAbtaDBiu2AGkGVpmEygFmWP4Li9m5+Ni85BhVvZOodM9epgW3F\nbA5Q1SexvAF1PPjX4JpMstak/QhAgl1qMSqEevL8cmUeTgcMuVWCJmlge9h7B1CS\nD4rtlimGZozG39rUBDg6Qt2K+P4wBfLblL0k4C4YUdLnpGYEDIth+i8XsRpFlogx\nCAFyH9+knYsDbR43UJ9shtc42Ybd40Afihj8KnYKXzchyQ42aC8aZ/h5hyZ28yVy\nOj3Vos0VdBIs/gAyJ/4yyQFCXYte64I7ssrlbGRaco4nKF3HmaNhxwyKyJafz19e\nHwIDAQAB\n-----END PUBLIC KEY-----",s,"base64")?JSON.parse(t):null})(this.sandbox,e,t)}}};