@cuenca-mx/cuenca-js 0.0.1-dev.15 → 0.0.1-dev.16
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/build/index.cjs +6 -0
- package/build/index.mjs +6 -0
- package/build/umd/cuenca.umd.js +1 -1
- package/package.json +1 -1
package/build/index.cjs
CHANGED
|
@@ -142,6 +142,12 @@ class Client {
|
|
|
142
142
|
headers['X-Cuenca-Token'] = this.jwtToken.token;
|
|
143
143
|
}
|
|
144
144
|
|
|
145
|
+
// Allow CORS when testing on browser
|
|
146
|
+
// I don't think this is the right way
|
|
147
|
+
if (jwt_index.isBrowser && this.phase !== queries.Phase.Api) {
|
|
148
|
+
headers['Access-Control-Allow-Origin'] = '*';
|
|
149
|
+
}
|
|
150
|
+
|
|
145
151
|
const headersInterceptor = this.addHeadersToRequest(headers);
|
|
146
152
|
|
|
147
153
|
const modifiedData = data;
|
package/build/index.mjs
CHANGED
|
@@ -137,6 +137,12 @@ class Client {
|
|
|
137
137
|
headers['X-Cuenca-Token'] = this.jwtToken.token;
|
|
138
138
|
}
|
|
139
139
|
|
|
140
|
+
// Allow CORS when testing on browser
|
|
141
|
+
// I don't think this is the right way
|
|
142
|
+
if (isBrowser && this.phase !== Phase.Api) {
|
|
143
|
+
headers['Access-Control-Allow-Origin'] = '*';
|
|
144
|
+
}
|
|
145
|
+
|
|
140
146
|
const headersInterceptor = this.addHeadersToRequest(headers);
|
|
141
147
|
|
|
142
148
|
const modifiedData = data;
|
package/build/umd/cuenca.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("axios")):"function"==typeof define&&define.amd?define(["exports","axios"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).cuenca={},t.axios)}(this,(function(t,e){"use strict";function s(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=s(e);class i extends Error{constructor(t){super(t),Object.setPrototypeOf(this,i.prototype)}}class a extends i{constructor(t,e){super(`Cuenca Response Error: ${e}`),this.name="CuencaResponseError",this.data=t,this.status=e,Object.setPrototypeOf(this,a.prototype)}}class n extends i{constructor(){super("No results were found"),this.name="NoResultFound",Object.setPrototypeOf(this,n.prototype)}}class c extends i{constructor(){super("One result was expected but multiple were found"),this.name="MultipleResultsFound",Object.setPrototypeOf(this,c.prototype)}}class o extends i{constructor(){super("An invalid JWT token was obtained during authentication"),this.name="MalformedJwtToken",Object.setPrototypeOf(this,o.prototype)}}class d extends i{constructor(){super("Invalid password"),this.name="InvalidPassword",Object.setPrototypeOf(this,d.prototype)}}class u extends Error{constructor(t){super(t),Object.setPrototypeOf(this,u.prototype)}}const h="undefined"!=typeof window&&void 0!==window.document,p="undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process);class l{constructor(t,e){this.expiresAt=t,this.token=e}get isExpired(){const t=new Date;return(this.expiresAt.valueOf()-t.valueOf())/6e4<=5}static getExpirationDate=t=>{let e;try{const[,s]=t.split(".");let r;if(p)r=Buffer.from(`${s}==`,"base64").toString();else{if(!h)throw new o;{const t=btoa(unescape(encodeURIComponent(`${s}==`)));r=decodeURIComponent(escape(atob(t)))}}e=JSON.parse(r)}catch(t){throw new o}const{exp:s}=e;return new Date(new Date(1e3*s).toUTCString())};static create=async t=>{const e=t;e.jwtToken=null;const s=e.deleteRequestHeader("X-Cuenca-Token"),{token:r}=await t.post("token",{});s.eject();const i=l.getExpirationDate(r);return new l(i,r)}}class m{static Blocked=new m("blocked");static Comunication=new m("comunication");static ContactlesAmountLimit=new m("contactles_amount_limit");static FraudDetection=new m("fraud_detection");static FraudDetectionUncertain=new m("fraud_detection_uncertain");static InsufficientFounds=new m("insufficient_founds");static InvalidPin=new m("invalid_pin");static Notification=new m("notification");static NotificationDeactivatedCard=new m("notification_deactivated_card");constructor(t){this.value=t}}class w{static Credit=new w("credit");static Debit=new w("debit");constructor(t){this.value=t}}class _{static Accendo=new _("accendo");static Cuenca=new _("cuenca");constructor(t){this.value=t}}class y{static Active=new y("active");static Blocked=new y("blocked");static Created=new y("created");static Deactivated=new y("deactivated");static Printing=new y("printing");constructor(t){this.value=t}}class v{static Auth=new v("auth");static Capture=new v("capture");static Chargeback=new v("chargeback");static Expiration=new v("expiration");static Refund=new v("refund");static Void=new v("void");constructor(t){this.value=t}}class b{static Physical=new b("physical");static Virtual=new b("virtual");constructor(t){this.value=t}}class g{static CardRequest=new g("card_request");static CashDeposit=new g("cash_deposit");static OutgoingSpei=new g("outgoing_spei");constructor(t){this.value=t}}class f{static Cash=new f("cash");static Internal=new f("internal");static Spei=new f("spei");constructor(t){this.value=t}}class x{static Credit=new x("credit");static Debit=new x("debit");constructor(t){this.value=t}}class j{static Pdf=new j("pdf");static Xml=new j("xml");static Json=new j("json");constructor(t){this.value=t}}class A{static Sandbox=new A("sandbox");static Stage=new A("stage");static Api=new A("api");constructor(t){this.value=t}}class O{static Cable=new O("cable");static CreditCard=new O("credit_card");static Electricity=new O("electricity");static Gas=new O("gas");static Internet=new O("internet");static LandlineTelephone=new O("landline_telephone");static MobileTelephonePostpaid=new O("mobile_telephone_postpaid");static MobileTelephonePrepaid=new O("mobile_telephone_prepaid");static SateliteTelevision=new O("satelite_television");static Water=new O("water");constructor(t){this.value=t}}class I{static General=new I("general");static Home=new I("home");static Vehicle=new I("vehicle");static Travel=new I("travel");static Clothing=new I("clothing");static Other=new I("other");static Medical=new I("medical");static Accident=new I("accident");static Education=new I("education");constructor(t){this.value=t}}class k{static NotSet=new k("not_set");static Terminal=new k("terminal");static Manual=new k("manual");static Unknown=new k("unknown");static Contactless=new k("contactless");static FallBack=new k("fall_back");static MagneticStripe=new k("magnetic_stripe");static RecurringCharge=new k("recurring_charge");constructor(t){this.value=t}}class T{static Created=new T("created");static Failed=new T("failed");static InReview=new T("in_review");static Submitted=new T("submitted");static Succeeded=new T("succeeded");constructor(t){this.value=t}}class C{static Internal=new C("internal");static Spei=new C("spei");constructor(t){this.value=t}}class U{static Deposit=new U("deposit");static Withdrawal=new U("withdrawal");constructor(t){this.value=t}}const S=t=>{if(!t)return null;const e=new Date(t);return new Date(e.getTime())},N=(t,e)=>Object.values(t).find((t=>t.value===e));class E{constructor({createdAfter:t,createdBefore:e,limit:s,pageSize:r,relatedTransaction:i,userId:a,count:n=!1}){this.createdAfter=t,this.createdBefore=e,this._lmt=s,this.relatedTransaction=i,this.userId=a,this.count=n,this.pageSize=r}get limit(){return this._limit}set _lmt(t){let e=null;t&&t>=0&&(e=t),this._limit=e}toObject(){return{created_after:this.createdAfter,created_before:this.createdBefore,limit:this.limit,related_transaction:this.relatedTransaction,user_id:this.userId,page_size:this.pageSize&&this.pageSize.size}}toParams(){const t={...this.toObject()};return this.count&&(t.count=1),Object.keys(t).forEach((e=>{null==t[e]&&delete t[e]})),t}toQueryString(){return new URLSearchParams(this.toParams()).toString()}}class P extends E{constructor({accountNumber:t,...e}){super(e),this.accountNumber=t}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber})}}class $ extends E{constructor({active:t,...e}){super(e),this.active=t}toObject(){return Object.assign(super.toObject(),{active:this.active})}}class K extends E{constructor({status:t,...e}){super(e),this.status=t}toObject(){return Object.assign(super.toObject(),{status:this.status})}}class D extends K{constructor({trackingKey:t,network:e,...s}){super(s),this.trackingKey=t,this.network=e}toObject(){return Object.assign(super.toObject(),{tracking_key:this.trackingKey,network:this.network})}}class q extends K{constructor({accountNumber:t,idempotencyKey:e,trackingKey:s,network:r,...i}){super(i),this.accountNumber=t,this.idempotencyKey=e,this.trackingKey=s,this.network=r}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber,idempotency_key:this.idempotencyKey,tracking_key:this.trackingKey,network:this.network})}}class M extends E{constructor({fundingInstrumentUri:t,count:e=!1,walletId:s="default",...r}){super(r),this.fundingInstrumentUri=t,this.count=e,this.walletId=s}toObject(){return Object.assign(super.toObject(),{wallet_id:this.walletId,funding_instrument_uri:this.fundingInstrumentUri,count:this.count})}}class B extends E{constructor({accountNumber:t,...e}){super(e),this.accountNumber=t}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber})}}class R extends E{constructor({cardUri:t,...e}){super(e),this.cardUri=t}toObject(){return Object.assign(super.toObject(),{card_uri:this.cardUri})}}class V extends E{constructor({cardUri:t,count:e=!1,...s}){super(s),this.cardUri=t,this.count=e}toObject(){return Object.assign(super.toObject(),{card_uri:this.cardUri,count:this.count})}}class Q extends E{constructor({walletUri:t,...e}){super(e),this.walletUri=t}toObject(){return Object.assign(super.toObject(),{wallet_uri:this.walletUri})}}class Y extends E{constructor({active:t,...e}){super(e),this.active=t}toObject(){return Object.assign(super.toObject(),{active:this.active})}}class F extends E{constructor({month:t,year:e,...s}){super(s),this.d={month:t,year:e}}get month(){return this._date.month}get year(){return this._date.year}set d({month:t,year:e}){const s=S(Date.now());s.setUTCDate(1);if(S(`${e}-${t}-01`).getTime()>=s.getTime())throw new u(`${e}-${t} is not a valid year-month pair`);this._date={month:t,year:e}}toObject(){return Object.assign(super.toObject(),{month:this.month,year:this.year})}}class z{constructor({apiKey:t,apiSecret:e,phase:s=A.Sandbox}={}){this.phase=s,this.basicAuth={apiKey:t,apiSecret:e},this.jwtToken=null,this._session=r.default.create()}get session(){return this._session}get origin(){return`https://${this.phase.value}.cuenca.com`}get authHeader(){const{apiKey:t,apiSecret:e}=this.basicAuth;if(!t||!e)return"";let s;return p?s=`Basic ${Buffer.from(`${t}:${e}`,"utf-8").toString("base64")}`:h&&(s=`Basic ${btoa(`${t}:${unescape(encodeURIComponent(e))}`)}`),s}addHeadersToRequest(t){const e=this._session.interceptors.request.use((e=>{const s=e,{headers:{common:r}}=s;return Object.keys(t).forEach((e=>r[e]=t[e])),s}));return{interceptorId:e,eject:()=>this._session.interceptors.request.eject(e)}}deleteRequestHeader(t){const e=this._session.interceptors.request.use((e=>{const s=e,{headers:{common:r}}=s;return delete r[t],s}));return{interceptorId:e,eject:()=>this._session.interceptors.request.eject(e)}}addConfigToRequest(t){const e=this._session.interceptors.request.use((e=>{const s=e;return Object.keys(t).forEach((e=>s[e]=t[e])),s}));return{interceptorId:e,eject:()=>this._session.interceptors.request.eject(e)}}async configure({apiKey:t,apiSecret:e,loginToken:s,phase:r,useJwt:i=!1}){this.basicAuth={apiKey:t||this.basicAuth.apiKey,apiSecret:e||this.basicAuth.apiSecret},r&&(this.phase=r),i&&(this.jwtToken=await l.create(this)),s&&this.addHeadersToRequest({"X-Cuenca-LoginToken":s})}async get({endpoint:t,format:e,params:s}){return this.request({endpoint:t,format:e,params:s})}async post({endpoint:t,data:e}){return this.request({method:"POST",endpoint:t,data:e})}async patch({endpoint:t,data:e}){return this.request({method:"PATCH",endpoint:t,data:e})}async delete({endpoint:t,data:e}){return this.request({method:"DELETE",endpoint:t,data:e})}async request({endpoint:t,data:e=null,format:s=j.Json,method:r="GET",params:n=null}){const c={Authorization:this.authHeader,"X-User-Agent":"cuenca-js/0.0.1","Content-Type":"application/json",Accept:`application/${s.value}`};this.jwtToken&&(this.jwtToken.isExpired&&(this.jwtToken=await l.create(this)),c["X-Cuenca-Token"]=this.jwtToken.token);const o=this.addHeadersToRequest(c),d=e;d&&Object.keys(d).forEach((t=>{d[t]instanceof Date&&(d[t]=d[t].toISOString())}));const u=this.addConfigToRequest({method:r,params:n,data:d,url:t});let h;try{h=await this._session.request({baseURL:this.origin})}catch(t){throw t.response?new a(t.response.data,t.response.status):t.request?new i(`No response received: ${t.errno}: ${t.code}`):new i(t.message)}finally{o.eject(),u.eject()}return h.data}}class H{constructor({accountNumber:t,createdAt:e,id:s,institutionName:r,name:i,userId:a}){this.accountNumber=t,this.createdAt=S(e),this.id=s,this.institutionName=r,this.name=i,this.userId=a}static fromObject=({id:t,name:e,...s})=>new H({id:t,name:e,accountNumber:s.account_number,createdAt:s.created_at,institutionName:s.institution_name,userId:s.user_id})}class L{constructor({createdAt:t,deactivatedAt:e,id:s,secret:r,userId:i,updatedAt:a}){this.createdAt=S(t),this.deactivatedAt=S(e),this.id=s,this.secret=r,this.userId=i,this.updatedAt=S(a)}static fromObject=({id:t,secret:e,...s})=>new L({id:t,secret:e,createdAt:s.created_at,deactivatedAt:s.deactivated_at,userId:s.user_id,updatedAt:s.updated_at});get isActive(){const t=S(Date.now());return!this.deactivatedAt||this.deactivatedAt.getTime()>t.getTime()}}class J{constructor({arpc:t,createdAt:e,cardUri:s,isValidArqc:r}){this.arpc=t,this.createdAt=S(e),this.cardUri=s,this.isValidArqc=r}static fromObject=({arpc:t,...e})=>new J({arpc:t,createdAt:e.created_at,cardUri:e.card_uri,isValidArqc:e.is_valid_arqc})}class W{constructor({amount:t,createdAt:e,descriptor:s,entryType:r,fundingInstrumentUri:i,id:a,name:n,relatedTransactionUri:c,rollingBalance:o}){this.amount=t,this.createdAt=S(e),this.descriptor=s,this.entryType=N(x,r),this.fundingInstrumentUri=i,this.id=a,this.name=n,this.relatedTransactionUri=c,this.rollingBalance=o}static fromObject=({amount:t,descriptor:e,id:s,name:r,type:i,...a})=>new W({amount:t,descriptor:e,name:r,id:s,createdAt:a.created_at,entryType:i,fundingInstrumentUri:a.funding_instrument_uri,relatedTransactionUri:a.related_transaction_uri,rollingBalance:a.rolling_balance})}class X{constructor({amount:t,createdAt:e,descriptor:s,status:r,userId:i}){this.amount=t,this.createdAt=S(e),this.descriptor=s,this.status=N(T,r),this.userId=i}}class G extends X{constructor({amount:t,accountNumber:e,createdAt:s,descriptor:r,id:i,providerUri:a,status:n,userId:c}){super({amount:t,createdAt:s,descriptor:r,status:n,userId:c}),this.accountNumber=e,this.id=i,this.providerUri=a}static fromObject=({amount:t,descriptor:e,id:s,status:r,...i})=>new G({amount:t,descriptor:e,id:s,status:r,accountNumber:i.account_number,createdAt:i.created_at,providerUri:i.provider_uri,userId:i.user_id})}class Z{constructor({createdAt:t,cvv2:e,expMonth:s,expYear:r,fundingType:i,id:a,issuer:n,number:c,pin:o,status:d,type:u,updatedAt:h,userId:p}){this.createdAt=S(t),this.cvv2=e,this.expMonth=s,this.expYear=r,this.fundingType=N(w,i),this.id=a,this.issuer=N(_,n),this.number=c,this.pin=o,this.status=N(y,d),this.type=N(b,u),this.updatedAt=S(h),this.userId=p}static fromObject=({cvv2:t,id:e,issuer:s,number:r,pin:i,status:a,type:n,...c})=>new Z({cvv2:t,id:e,issuer:s,number:r,pin:i,status:a,type:n,createdAt:c.created_at,expMonth:c.exp_month,expYear:c.exp_year,fundingType:c.funding_type,updatedAt:c.updated_at,userId:c.user_id})}class tt{constructor({cardUri:t,createdAt:e,id:s,ipAddress:r,success:i,userId:a}){this.cardUri=t,this.createdAt=S(e),this.id=s,this.ipAddress=r,this.success=i,this.userId=a}static fromObject=({id:t,success:e,...s})=>new tt({id:t,success:e,cardUri:s.card_uri,createdAt:s.created_at,ipAddress:s.ip_address,userId:s.user_id})}class et extends X{constructor({amount:t,cardErrorType:e,cardLastFour:s,cardType:r,cardUri:i,createdAt:a,descriptor:n,metadata:c,network:o,relatedCardTransactionsUris:d,status:u,type:h,userId:p}){super({amount:t,createdAt:a,descriptor:n,status:u,userId:p}),this.cardErrorType=N(m,e),this.cardLastFour=s,this.cardType=N(b,r),this.cardUri=i,this.metadata=c,this.network=o,this.relatedCardTransactionsUris=d,this.type=N(v,h)}static fromObject=({amount:t,descriptor:e,metadata:s,network:r,status:i,type:a,...n})=>new et({amount:t,descriptor:e,metadata:s,network:r,status:i,type:a,cardErrorType:n.error_type,cardLastFour:n.card_last4,cardType:n.card_type,cardUri:n.card_uri,createdAt:n.created_at,relatedCardTransactionsUris:n.related_card_transaction,userId:n.user_id})}class st{constructor({cardStatus:t,cardType:e,cardUri:s,createdAt:r,isExpired:i,isPinAttemptsExceeded:a,isValidCvv:n,isValidCvv2:c,isValidExpDate:o,isValidIcvv:d,isValidPinBlock:u,userId:h}){this.cardStatus=N(y,t),this.cardType=N(b,e),this.cardUri=s,this.createdAt=S(r),this.isExpired=i,this.isPinAttemptsExceeded=a,this.isValidCvv=n,this.isValidCvv2=c,this.isValidExpDate=o,this.isValidIcvv=d,this.isValidPinBlock=u,this.userId=h}static fromObject=({...t})=>new st({cardStatus:t.card_status,cardType:t.card_type,cardUri:t.card_uri,createdAt:t.created_at,isExpired:t.is_expired,isPinAttemptsExceeded:t.is_pin_attempts_exceeded,isValidCvv:t.is_valid_cvv,isValidCvv2:t.is_valid_cvv2,isValidExpDate:t.is_valid_exp_date,isValidIcvv:t.is_valid_icvv,isValidPinBlock:t.is_valid_pin_block,userId:t.user_id});get isActive(){return this.cardStatus===y.Active}}class rt extends X{constructor({amount:t,createdAt:e,descriptor:s,relatedTransactionUri:r,status:i,type:a,userId:n}){super({amount:t,createdAt:e,descriptor:s,status:i,userId:n}),this.relatedTransactionUri=r,this.type=N(g,a)}static fromObject=({amount:t,descriptor:e,status:s,type:r,...i})=>new rt({amount:t,descriptor:e,status:s,type:r,createdAt:i.created_at,relatedTransactionUri:i.related_transaction_uri,userId:i.user_id})}class it extends X{constructor({amount:t,createdAt:e,descriptor:s,id:r,network:i,status:a,sourceUri:n,trackingKey:c,userId:o}){super({amount:t,createdAt:e,descriptor:s,status:a,userId:o}),this.id=r,this.network=N(f,i),this.sourceUri=n,this.trackingKey=c}static fromObject=({amount:t,descriptor:e,id:s,network:r,status:i,...a})=>new it({amount:t,descriptor:e,id:s,network:r,status:i,createdAt:a.created_at,sourceUri:a.source_uri,trackingKey:a.tracking_key,userId:a.user_id})}class at{constructor({id:t}){this.id=t}static fromObject=({id:t})=>new at({id:t})}class nt extends class{constructor({balance:t,createdAt:e,deactivatedAt:s,id:r,userId:i,updatedAt:a}){this.balance=t,this.createdAt=S(e),this.deactivatedAt=S(s),this.id=r,this.userId=i,this.updatedAt=S(a)}}{constructor({balance:t,category:e,createdAt:s,deactivatedAt:r,goalAmount:i,goalDate:a,id:n,name:c,userId:o,updatedAt:d}){super({balance:t,createdAt:s,deactivatedAt:r,id:n,userId:o,updatedAt:d}),this.category=N(I,e),this.goalAmount=i,this.goalDate=S(a),this.name=c}static fromObject=({balance:t,category:e,id:s,name:r,...i})=>new nt({balance:t,category:e,id:s,name:r,createdAt:i.created_at,deactivatedAt:i.deactivated_at,goalAmount:i.goal_amount,goalDate:i.goal_date,userId:i.user_id,updatedAt:i.updated_at})}class ct{constructor({categories:t,id:e,name:s,providerKey:r}){var i;this.categories=null==(i=t)?[]:i.map((t=>N(O,t))),this.id=e,this.name=s,this.providerKey=r}static fromObject=({categories:t,id:e,name:s,...r})=>new ct({categories:t,id:e,name:s,providerKey:r.provider_key})}class ot{constructor({createdAt:t,id:e,month:s,year:r}){this.createdAt=S(t),this.id=e,this.month=s,this.year=r}static fromObject=({id:t,month:e,year:s,...r})=>new ot({id:t,month:e,year:s,createdAt:r.created_at})}class dt extends X{constructor({accountNumber:t,amount:e,createdAt:s,descriptor:r,destinationUri:i,id:a,idempotencyKey:n,network:c,recipientName:o,status:d,trackingKey:u,updatedAt:h,userId:p}){super({amount:e,createdAt:s,descriptor:r,status:d,userId:p}),this.accountNumber=t,this.destinationUri=i,this.id=a,this.idempotencyKey=n,this.network=N(C,c),this.recipientName=o,this.trackingKey=u,this.updatedAt=S(h)}static fromObject=({amount:t,descriptor:e,id:s,network:r,status:i,...a})=>new dt({amount:t,descriptor:e,id:s,network:r,status:i,accountNumber:a.account_number,createdAt:a.created_at,destinationUri:a.destination_uri,idempotencyKey:a.idempotency_key,recipientName:a.recipient_name,trackingKey:a.tracking_key,updatedAt:a.updated_at,userId:a.user_id})}class ut{constructor({createdAt:t,id:e,isActive:s,updatedAt:r}){this.createdAt=S(t),this.id=e,this.isActive=s,this.updatedAt=S(r)}static fromObject=({id:t,...e})=>new ut({id:t,createdAt:e.created_at,isActive:e.is_active,updatedAt:e.updated_at})}class ht{constructor({id:t,lastLoginAt:e,success:s}){this.id=t,this.lastLoginAt=S(e),this.success=s}static fromObject=({id:t,success:e,...s})=>new ht({id:t,success:e,lastLoginAt:s.last_login_at})}class pt extends X{constructor({amount:t,createdAt:e,descriptor:s,id:r,status:i,transactionType:a,userId:n,walletUri:c}){super({amount:t,createdAt:e,descriptor:s,status:i,userId:n}),this.id=r,this.transactionType=N(U,a),this.walletUri=c}static fromObject=({amount:t,descriptor:e,id:s,status:r,...i})=>new pt({amount:t,descriptor:e,id:s,status:r,createdAt:i.created_at,transactionType:i.transaction_type,userId:i.user_id,walletUri:i.wallet_uri})}class lt extends X{constructor({amount:t,claimUrl:e,createdAt:s,descriptor:r,destinationUri:i,expiresAt:a,id:n,network:c,phoneNumber:o,recipientName:d,status:u,trackingKey:h,updatedAt:p,userId:l}){super({amount:t,createdAt:s,descriptor:r,status:u,userId:l}),this.claimUrl=e,this.destinationUri=i,this.id=n,this.expiresAt=S(a),this.network=N(C,c),this.phoneNumber=o,this.recipientName=d,this.trackingKey=h,this.updatedAt=S(p)}static fromObject=({amount:t,descriptor:e,id:s,network:r,status:i,...a})=>new lt({amount:t,descriptor:e,id:s,network:r,status:i,createdAt:a.created_at,claimUrl:a.claim_url,destinationUri:a.destination_uri,expiresAt:a.expires_at,phoneNumber:a.phone_number,recipientName:a.recipient_name,trackingKey:a.tracking_key,updatedAt:a.updated_at,userId:a.user_id})}class mt{constructor(t){this.superclass=t}with(...t){return t.reduce(((t,e)=>e(t)),this.superclass)}}const wt=t=>new mt(t),_t=(t,e)=>({accounts:()=>H.fromObject(e),api_keys:()=>L.fromObject(e),arpc:()=>J.fromObject(e),balance_entries:()=>W.fromObject(e),bill_payments:()=>G.fromObject(e),cards:()=>Z.fromObject(e),card_activations:()=>tt.fromObject(e),card_transactions:()=>et.fromObject(e),card_validations:()=>st.fromObject(e),commissions:()=>rt.fromObject(e),deposits:()=>it.fromObject(e),login_tokens:()=>at.fromObject(e),savings:()=>nt.fromObject(e),service_providers:()=>ct.fromObject(e),statements:()=>ot.fromObject(e),transfers:()=>dt.fromObject(e),user_credentials:()=>ut.fromObject(e),user_logins:()=>ht.fromObject(e),wallet_transactions:()=>pt.fromObject(e),whatsapp_transfers:()=>lt.fromObject(e)}[t]()),yt=t=>{if(null===t||""===t)return null;const e=t.match("/(.*?)/");return null===e?null:e[0].replaceAll("/","")};class vt{constructor(t,e,s){this.path=t,this.QueryParams=e,this.client=s}}const bt=t=>class extends t{async retrieve(t){const e=await this.client.get({endpoint:`/${this.path}/${t}`});return _t(this.path,e)}},gt=t=>class extends t{async _create(t){const e=await this.client.post({endpoint:`/${this.path}`,data:t});return _t(this.path,e)}},ft=t=>class extends t{async _update(t,e){const s=await this.client.patch({endpoint:`/${this.path}/${t}`,data:e});return _t(this.path,s)}},xt=t=>class extends t{async _deactivate(t,e){const s=await this.client.delete({endpoint:`/${this.path}/${t}`,data:e});return _t(this.path,s)}},jt=t=>class extends t{async _download(t,e){return await this.client.get({endpoint:`/${this.path}/${t}`,format:e})}},At=t=>class extends t{async one(t=new this.QueryParams({})){const{items:e}=await this.client.get({endpoint:`/${this.path}`,params:t.toParams()});if(!e||!e.length)throw new n;if(e.length>1)throw new c;const[s]=e;return _t(this.path,s)}async first(t=new this.QueryParams({})){const{items:e}=await this.client.get({endpoint:`/${this.path}`,params:t.toParams()});if(!e||!e[0])return null;const[s]=e;return _t(this.path,s)}async count(t=new this.QueryParams({})){t.count=!0;const{count:e}=await this.client.get({endpoint:`/${this.path}`,params:t.toParams()});return e||0}async*all(t=new this.QueryParams({})){let e=`/${this.path}?${t.toQueryString()}`;for(;e;){const t=await this.client.get({endpoint:e});if(t.items)for(const e of t.items){const t=_t(this.path,e);yield t}e=t.next_page_uri}}};class Ot extends(wt(vt).with(At,bt)){constructor(t){super("accounts",P,t)}}class It{toObject(){return{}}toCleanObject(){const t=this.toObject();return Object.keys(t).forEach((e=>{null==t[e]&&delete t[e]})),t}}class kt extends It{constructor(t,e){super(),this.userId=t,this.metadata=e}toObject(){return{user_id:this.userId,metadata:this.metadata}}}class Tt extends It{constructor(t,e,s){super(),this.userId=t,this.issuer=e,this.fundingType=s}toObject(){return{user_id:this.userId,issuer:this.issuer,funding_type:this.fundingType}}}class Ct extends It{constructor(t,e){super(),this.status=t,this.pinBlock=e}toObject(){return{status:this.status,pin_block:this.pinBlock}}}class Ut extends It{constructor(t,e,s,r){super(),this.n=t,this.eM=e,this.eY=s,this.c2=r}get number(){return this._number}set n(t){if([!!t,16===t.length,/^\d{16}/.test(t)].some((t=>!t)))throw new u("Invalid number");this._number=t.trim()}get expMonth(){return this._expMonth}set eM(t){if([!!t,t>=1,t<=12].some((t=>!t)))throw new u("Invalid expiration month");this._expMonth=t}get expYear(){return this._expYear}set eY(t){if([!!t,t>=18,t<=99].some((t=>!t)))throw new u("Invalid expiration year");this._expYear=t}get cvv2(){return this._cvv2}set c2(t){if([!!t,3===t.length,/^\d{3}/.test(t)].some((t=>!t)))throw new u("Invalid cvv2");this._cvv2=t}toObject(){return{number:this.number,exp_month:this.expMonth,exp_year:this.expYear,cvv2:this.cvv2}}}class St extends It{constructor({cvv:t,cvv2:e,expMonth:s,expYear:r,icvv:i,number:a,pinBlock:n,pinAttemptsExceeded:c}){super(),this.c=t,this.c2=e,this.em=s,this.ey=r,this.ic=i,this.n=a,this.pinBloc=n,this.pinAttemptsExceeded=c}get cvv(){return this._cvv}set c(t){if(!t)return;if([3===t.length].some((t=>!t)))throw new u("Invalid cvv");this._cvv=t}get cvv2(){return this._cvv2}set c2(t){if(!t)return;if([3===t.length].some((t=>!t)))throw new u("Invalid cvv2");this._cvv2=t}get expMonth(){return this._expMonth}set em(t){if(!t)return;if([t>=1,t<=12].some((t=>!t)))throw new u("Invalid expiration month");this._expMonth=t}get expYear(){return this._expYear}set ey(t){if(!t)return;if([t>=18,t<=99].some((t=>!t)))throw new u("Invalid expiration year");this._expYear=t}get icvv(){return this._icvv}set ic(t){if(!t)return;if([3===t.length].some((t=>!t)))throw new u("Invalid icvv");this._icvv=t}get number(){return this._number}set n(t){if([!!t,16===t.length,/^\d{16}/.test(t)].some((t=>!t)))throw new u("Invalid number");this._number=t}toObject(){return{cvv:this.cvv,cvv2:this.cvv2,exp_month:this.expMonth,exp_year:this.expYear,icvv:this.icvv,number:this.number,pin_block:this.pinBloc,pin_attempts_exceeded:this.pinAttemptsExceeded}}}class Nt extends It{constructor(t,e,s,r){super(),this.category=t,this.name=r,this.goalAmount=e,this.validDate=s}get goalDate(){return this._goalDate}set validDate(t){if(t){if(S(t).getTime()<=S(Date.now()).getTime())throw new u("The goal_date always need to be higher than now");this._goalDate=t}}toObject(){return{category:this.category,goal_amount:this.goalAmount,goal_date:this.goalDate,name:this.name}}}class Et extends It{constructor(t,e,s,r,i){super(),this.accountNumber=t,this.amount=e,this.descriptor=s,this.idempotencyKey=r,this.recipientName=i}toObject(){return{account_number:this.accountNumber,amount:this.amount,descriptor:this.descriptor,idempotency_key:this.idempotencyKey,recipient_name:this.recipientName}}}class Pt extends It{constructor(t){super(),this.pwd=t}get password(){return this._password}set pwd(t){if([!!t,6===t.length,/^\d{6}$/.test(t)].some((t=>!t)))throw new u("Invalid password");this._password=t}toObject(){return{password:this.password}}}class $t extends It{constructor(t,e){super(),this.pwd=t,this.isActive=e,this.req={password:this.password,isActive:this.isActive}}get password(){return this._password}get request(){return this._request}set pwd(t){if(!t)return void(this._password=t);if([6===t.length,/^\d{6}$/.test(t)].some((t=>!t)))throw new u("Invalid password");this._password=t}set req(t){if(t.password&&null!=t.isActive)throw new u("Only one property can be updated at a time");this._request=t}toObject(){return{password:this.request.password,is_active:this.request.isActive}}}class Kt extends It{constructor(t,e="me"){super(),this.pwd=t,this.userId=e}get password(){return this._password}set pwd(t){if([!!t,6===t.length,/^\d{6}$/.test(t)].some((t=>!t)))throw new u("Invalid password");this._password=t}toObject(){return{password:this.password,user_id:this.userId}}}class Dt extends It{constructor(t,e,s){super(),this.amount=t,this.transactionType=e,this.walletUri=s}toObject(){return{amount:this.amount,transaction_type:this.transactionType,wallet_uri:this.walletUri}}}class qt extends(wt(vt).with(gt,xt,At,bt,ft)){constructor(t){super("api_keys",$,t)}async create(){return await this._create()}async deactivate(t,e=0){return await this._deactivate(t,{minutes:e})}async update(t,e,s){const r=new kt(s,e);return await this._update(t,r.toCleanObject())}}wt(vt).with(gt);class Mt extends(wt(vt).with(At,bt)){constructor(t){super("balance_entries",M,t)}async relatedTransaction(t){const e=yt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return _t(`${e}`,s)}async fundingInstrument(t){const e=yt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return _t(`${e}`,s)}}class Bt extends(wt(vt).with(At,bt)){constructor(t){super("bill_payments",B,t)}async serviceProvider(t){const e=yt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return _t(`${e}`,s)}}class Rt extends(wt(vt).with(gt)){constructor(t){super("card_activations",Object,t)}async create({number:t,expMonth:e,expYear:s,cvv2:r}){const i=new Ut(t,e,s,r);return await this._create(i.toCleanObject())}async card(t){if(!t)return null;const e=await this.client.get({endpoint:t});return Z.fromObject(e)}}class Vt extends(wt(vt).with(gt,xt,At,bt,ft)){constructor(t){super("cards",V,t)}async create(t,e,s){const r=new Tt(t,e,s);return await this._create(r.toCleanObject())}async deactivate(t){return await this._deactivate(t)}async update(t,e,s){const r=new Ct(e,s);return await this._update(t,r.toCleanObject())}}class Qt extends(wt(vt).with(At,bt)){constructor(t){super("card_transactions",R,t)}async relatedCard(t){const e=yt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return _t(`${e}`,s)}}class Yt extends(wt(vt).with(gt)){constructor(t){super("card_validations",Object,t)}async create({cvv:t,cvv2:e,expMonth:s,expYear:r,icvv:i,number:a,pinBlock:n,pinAttemptsExceeded:c}){const o=new St({cvv:t,cvv2:e,expMonth:s,expYear:r,icvv:i,number:a,pinBlock:n,pinAttemptsExceeded:c});return await this._create(o.toCleanObject())}async card(t){if(!t)return null;const e=await this.client.get({endpoint:t});return Z.fromObject(e)}}class Ft extends(wt(vt).with(At,bt)){constructor(t){super("commissions",E,t)}async relatedTransaction(t){const e=yt(t);if(null==e)return null;const s=await this.client.get(t);return _t(`${e}`,s)}}class zt extends(wt(vt).with(At,bt)){constructor(t){super("deposits",D,t)}async source(t){const e=await this.client.get({endpoint:t});return H.fromObject(e)}}class Ht extends(wt(vt).with(gt)){constructor(t){super("login_tokens",Object,t)}async create(){return await this._create()}}class Lt extends(wt(vt).with(gt,xt,At,bt,ft)){constructor(t){super("savings",Y,t)}async create(t,e,s,r){const i=new Nt(t,e,s,r);return await this._create(i.toObject())}async deactivate(t){return await this._deactivate(t)}async update(t,e,s,r,i){const a=new Nt(e,s,r,i);return await this._update(t,a.toObject())}}class Jt extends(wt(vt).with(At,bt)){constructor(t){super("service_providers",E,t)}}class Wt extends(wt(vt).with(jt,At)){constructor(t){super("statements",F,t)}async pdf(t){return await this._download(t,j.Pdf)}async xml(t){return await this._download(t,j.Xml)}}class Xt extends(wt(vt).with(gt,At,bt)){constructor(t){super("transfers",q,t)}async destination(t){const e=await this.client.get({endpoint:t});return H.fromObject(e)}async create({accountNumber:t,amount:e,descriptor:s,recipientName:r,idempotencyKey:i}){const a=i||this.constructor._genIdempotencyKey(t,e),n=new Et(t,e,s,a,r);return await this._create(n.toCleanObject())}async createMany(t){if(!t||!Array.isArray(t)||!t.length)return{};const e={submitted:[],errors:[]};return await Promise.all(t.map((async({accountNumber:t,amount:s,descriptor:r,idempotencyKey:i,recipientName:a})=>{const n=new Et(t,s,r,i||this.constructor._genIdempotencyKey(t,s),a);let c;try{c=await this._create(n.toCleanObject())}catch(t){return void e.errors.push({actualRequest:n,error:t})}e.submitted.push(c)}))),e}static _genIdempotencyKey(t,e){const[s]=S(Date.now()).toISOString().split("T");return`${s}:${t}:${e}`}}class Gt extends(wt(vt).with(gt,ft)){constructor(t){super("user_credentials",Object,t)}async create(t){const e=new Pt(t);return await this._create(e.toObject())}async update({isActive:t,password:e,userId:s="me"}){const r=new $t(e,t);return await this._update(s,r.toCleanObject())}}class Zt extends(wt(vt).with(gt,xt)){constructor(t){super("user_logins",Object,t),this.loginIdInHeaders=null}async create(t,e){const s=new Kt(t,e),r=await this._create(s.toObject());if(!r.success)throw new d;return this.loginIdInHeaders=this.client.addHeadersToRequest({"X-Cuenca-LoginId":r.id}),r}async logOut(t="me"){return await this._deactivate(t,{}),this.loginIdInHeaders&&this.loginIdInHeaders.eject(),!0}}class te extends(wt(vt).with(gt,At,bt)){constructor(t){super("wallet_transactions",Q,t)}async create(t,e,s){const r=new Dt(t,e,s);return await this._create(r.toObject())}async realtedWallet(t){const e=yt(t);if(null==e)return null;const s=await this.client.get(t);return _t(`${e}`,s)}}class ee extends(wt(vt).with(At,bt)){constructor(t){super("whatsapp_transfers",E,t)}async accountDestination(t){const e=yt(t);if(null==e)return null;const s=await this.client.get(t);return _t(`${e}`,s)}}t.AccountQuery=P,t.ApiKeyQuery=$,t.BalanceEntryQuery=M,t.BillPaymentQuery=B,t.CardErrorType=m,t.CardFundingType=w,t.CardIssuer=_,t.CardStatus=y,t.CardTransactionQuery=R,t.CardTransactionType=v,t.CardType=b,t.CardsQuery=V,t.CommissionType=g,t.Cuenca=class{constructor(t,e,s=A.Sandbox){this.client=new z({apiKey:t,apiSecret:e,phase:s}),this.withClient(this.client)}withClient(t){this.accounts=new Ot(t),this.apiKeys=new qt(t),this.balanceEntries=new Mt(t),this.billPayments=new Bt(t),this.cardActivations=new Rt(t),this.cards=new Vt(t),this.cardTransactions=new Qt(t),this.cardValidations=new Yt(t),this.commissions=new Ft(t),this.deposits=new zt(t),this.loginTokens=new Ht(t),this.savings=new Lt(t),this.serviceProviders=new Jt(t),this.statements=new Wt(t),this.transfers=new Xt(t),this.userCredentials=new Gt(t),this.userLogins=new Zt(t),this.walletTransactions=new te(t),this.whatsAppTransfers=new ee(t)}},t.CuencaException=i,t.CuencaResponseException=a,t.DepositNetwork=f,t.DepositQuery=D,t.EntryType=x,t.FileFormat=j,t.InvalidPassword=d,t.Jwt=l,t.MalformedJwtToken=o,t.MultipleResultsFound=c,t.NoResultFound=n,t.PageSize=class{constructor(t){this.maxSize=100,this._ps=t}get size(){return this._pageSize}set _ps(t){let e=this.maxSize;t&&t>0&&t<=this.maxSize&&(e=t),this._pageSize=e}},t.Phase=A,t.QueryParams=E,t.SavingCategory=I,t.ServiceProviderCategory=O,t.StatementQuery=F,t.TrackDataMethod=k,t.TransactionStatus=T,t.TransferNetwork=C,t.TransferQuery=q,t.ValidationError=u,t.WalletQuery=Y,t.WalletTransactionQuery=Q,t.WalletTransactionType=U}));
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("axios")):"function"==typeof define&&define.amd?define(["exports","axios"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).cuenca={},t.axios)}(this,(function(t,e){"use strict";function s(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=s(e);class i extends Error{constructor(t){super(t),Object.setPrototypeOf(this,i.prototype)}}class a extends i{constructor(t,e){super(`Cuenca Response Error: ${e}`),this.name="CuencaResponseError",this.data=t,this.status=e,Object.setPrototypeOf(this,a.prototype)}}class n extends i{constructor(){super("No results were found"),this.name="NoResultFound",Object.setPrototypeOf(this,n.prototype)}}class c extends i{constructor(){super("One result was expected but multiple were found"),this.name="MultipleResultsFound",Object.setPrototypeOf(this,c.prototype)}}class o extends i{constructor(){super("An invalid JWT token was obtained during authentication"),this.name="MalformedJwtToken",Object.setPrototypeOf(this,o.prototype)}}class d extends i{constructor(){super("Invalid password"),this.name="InvalidPassword",Object.setPrototypeOf(this,d.prototype)}}class u extends Error{constructor(t){super(t),Object.setPrototypeOf(this,u.prototype)}}const h="undefined"!=typeof window&&void 0!==window.document,p="undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process);class l{constructor(t,e){this.expiresAt=t,this.token=e}get isExpired(){const t=new Date;return(this.expiresAt.valueOf()-t.valueOf())/6e4<=5}static getExpirationDate=t=>{let e;try{const[,s]=t.split(".");let r;if(p)r=Buffer.from(`${s}==`,"base64").toString();else{if(!h)throw new o;{const t=btoa(unescape(encodeURIComponent(`${s}==`)));r=decodeURIComponent(escape(atob(t)))}}e=JSON.parse(r)}catch(t){throw new o}const{exp:s}=e;return new Date(new Date(1e3*s).toUTCString())};static create=async t=>{const e=t;e.jwtToken=null;const s=e.deleteRequestHeader("X-Cuenca-Token"),{token:r}=await t.post("token",{});s.eject();const i=l.getExpirationDate(r);return new l(i,r)}}class m{static Blocked=new m("blocked");static Comunication=new m("comunication");static ContactlesAmountLimit=new m("contactles_amount_limit");static FraudDetection=new m("fraud_detection");static FraudDetectionUncertain=new m("fraud_detection_uncertain");static InsufficientFounds=new m("insufficient_founds");static InvalidPin=new m("invalid_pin");static Notification=new m("notification");static NotificationDeactivatedCard=new m("notification_deactivated_card");constructor(t){this.value=t}}class w{static Credit=new w("credit");static Debit=new w("debit");constructor(t){this.value=t}}class _{static Accendo=new _("accendo");static Cuenca=new _("cuenca");constructor(t){this.value=t}}class y{static Active=new y("active");static Blocked=new y("blocked");static Created=new y("created");static Deactivated=new y("deactivated");static Printing=new y("printing");constructor(t){this.value=t}}class v{static Auth=new v("auth");static Capture=new v("capture");static Chargeback=new v("chargeback");static Expiration=new v("expiration");static Refund=new v("refund");static Void=new v("void");constructor(t){this.value=t}}class b{static Physical=new b("physical");static Virtual=new b("virtual");constructor(t){this.value=t}}class g{static CardRequest=new g("card_request");static CashDeposit=new g("cash_deposit");static OutgoingSpei=new g("outgoing_spei");constructor(t){this.value=t}}class f{static Cash=new f("cash");static Internal=new f("internal");static Spei=new f("spei");constructor(t){this.value=t}}class x{static Credit=new x("credit");static Debit=new x("debit");constructor(t){this.value=t}}class A{static Pdf=new A("pdf");static Xml=new A("xml");static Json=new A("json");constructor(t){this.value=t}}class j{static Sandbox=new j("sandbox");static Stage=new j("stage");static Api=new j("api");constructor(t){this.value=t}}class O{static Cable=new O("cable");static CreditCard=new O("credit_card");static Electricity=new O("electricity");static Gas=new O("gas");static Internet=new O("internet");static LandlineTelephone=new O("landline_telephone");static MobileTelephonePostpaid=new O("mobile_telephone_postpaid");static MobileTelephonePrepaid=new O("mobile_telephone_prepaid");static SateliteTelevision=new O("satelite_television");static Water=new O("water");constructor(t){this.value=t}}class I{static General=new I("general");static Home=new I("home");static Vehicle=new I("vehicle");static Travel=new I("travel");static Clothing=new I("clothing");static Other=new I("other");static Medical=new I("medical");static Accident=new I("accident");static Education=new I("education");constructor(t){this.value=t}}class k{static NotSet=new k("not_set");static Terminal=new k("terminal");static Manual=new k("manual");static Unknown=new k("unknown");static Contactless=new k("contactless");static FallBack=new k("fall_back");static MagneticStripe=new k("magnetic_stripe");static RecurringCharge=new k("recurring_charge");constructor(t){this.value=t}}class T{static Created=new T("created");static Failed=new T("failed");static InReview=new T("in_review");static Submitted=new T("submitted");static Succeeded=new T("succeeded");constructor(t){this.value=t}}class C{static Internal=new C("internal");static Spei=new C("spei");constructor(t){this.value=t}}class U{static Deposit=new U("deposit");static Withdrawal=new U("withdrawal");constructor(t){this.value=t}}const S=t=>{if(!t)return null;const e=new Date(t);return new Date(e.getTime())},N=(t,e)=>Object.values(t).find((t=>t.value===e));class E{constructor({createdAfter:t,createdBefore:e,limit:s,pageSize:r,relatedTransaction:i,userId:a,count:n=!1}){this.createdAfter=t,this.createdBefore=e,this._lmt=s,this.relatedTransaction=i,this.userId=a,this.count=n,this.pageSize=r}get limit(){return this._limit}set _lmt(t){let e=null;t&&t>=0&&(e=t),this._limit=e}toObject(){return{created_after:this.createdAfter,created_before:this.createdBefore,limit:this.limit,related_transaction:this.relatedTransaction,user_id:this.userId,page_size:this.pageSize&&this.pageSize.size}}toParams(){const t={...this.toObject()};return this.count&&(t.count=1),Object.keys(t).forEach((e=>{null==t[e]&&delete t[e]})),t}toQueryString(){return new URLSearchParams(this.toParams()).toString()}}class P extends E{constructor({accountNumber:t,...e}){super(e),this.accountNumber=t}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber})}}class $ extends E{constructor({active:t,...e}){super(e),this.active=t}toObject(){return Object.assign(super.toObject(),{active:this.active})}}class K extends E{constructor({status:t,...e}){super(e),this.status=t}toObject(){return Object.assign(super.toObject(),{status:this.status})}}class D extends K{constructor({trackingKey:t,network:e,...s}){super(s),this.trackingKey=t,this.network=e}toObject(){return Object.assign(super.toObject(),{tracking_key:this.trackingKey,network:this.network})}}class q extends K{constructor({accountNumber:t,idempotencyKey:e,trackingKey:s,network:r,...i}){super(i),this.accountNumber=t,this.idempotencyKey=e,this.trackingKey=s,this.network=r}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber,idempotency_key:this.idempotencyKey,tracking_key:this.trackingKey,network:this.network})}}class M extends E{constructor({fundingInstrumentUri:t,count:e=!1,walletId:s="default",...r}){super(r),this.fundingInstrumentUri=t,this.count=e,this.walletId=s}toObject(){return Object.assign(super.toObject(),{wallet_id:this.walletId,funding_instrument_uri:this.fundingInstrumentUri,count:this.count})}}class B extends E{constructor({accountNumber:t,...e}){super(e),this.accountNumber=t}toObject(){return Object.assign(super.toObject(),{account_number:this.accountNumber})}}class R extends E{constructor({cardUri:t,...e}){super(e),this.cardUri=t}toObject(){return Object.assign(super.toObject(),{card_uri:this.cardUri})}}class V extends E{constructor({cardUri:t,count:e=!1,...s}){super(s),this.cardUri=t,this.count=e}toObject(){return Object.assign(super.toObject(),{card_uri:this.cardUri,count:this.count})}}class Q extends E{constructor({walletUri:t,...e}){super(e),this.walletUri=t}toObject(){return Object.assign(super.toObject(),{wallet_uri:this.walletUri})}}class Y extends E{constructor({active:t,...e}){super(e),this.active=t}toObject(){return Object.assign(super.toObject(),{active:this.active})}}class F extends E{constructor({month:t,year:e,...s}){super(s),this.d={month:t,year:e}}get month(){return this._date.month}get year(){return this._date.year}set d({month:t,year:e}){const s=S(Date.now());s.setUTCDate(1);if(S(`${e}-${t}-01`).getTime()>=s.getTime())throw new u(`${e}-${t} is not a valid year-month pair`);this._date={month:t,year:e}}toObject(){return Object.assign(super.toObject(),{month:this.month,year:this.year})}}class z{constructor({apiKey:t,apiSecret:e,phase:s=j.Sandbox}={}){this.phase=s,this.basicAuth={apiKey:t,apiSecret:e},this.jwtToken=null,this._session=r.default.create()}get session(){return this._session}get origin(){return`https://${this.phase.value}.cuenca.com`}get authHeader(){const{apiKey:t,apiSecret:e}=this.basicAuth;if(!t||!e)return"";let s;return p?s=`Basic ${Buffer.from(`${t}:${e}`,"utf-8").toString("base64")}`:h&&(s=`Basic ${btoa(`${t}:${unescape(encodeURIComponent(e))}`)}`),s}addHeadersToRequest(t){const e=this._session.interceptors.request.use((e=>{const s=e,{headers:{common:r}}=s;return Object.keys(t).forEach((e=>r[e]=t[e])),s}));return{interceptorId:e,eject:()=>this._session.interceptors.request.eject(e)}}deleteRequestHeader(t){const e=this._session.interceptors.request.use((e=>{const s=e,{headers:{common:r}}=s;return delete r[t],s}));return{interceptorId:e,eject:()=>this._session.interceptors.request.eject(e)}}addConfigToRequest(t){const e=this._session.interceptors.request.use((e=>{const s=e;return Object.keys(t).forEach((e=>s[e]=t[e])),s}));return{interceptorId:e,eject:()=>this._session.interceptors.request.eject(e)}}async configure({apiKey:t,apiSecret:e,loginToken:s,phase:r,useJwt:i=!1}){this.basicAuth={apiKey:t||this.basicAuth.apiKey,apiSecret:e||this.basicAuth.apiSecret},r&&(this.phase=r),i&&(this.jwtToken=await l.create(this)),s&&this.addHeadersToRequest({"X-Cuenca-LoginToken":s})}async get({endpoint:t,format:e,params:s}){return this.request({endpoint:t,format:e,params:s})}async post({endpoint:t,data:e}){return this.request({method:"POST",endpoint:t,data:e})}async patch({endpoint:t,data:e}){return this.request({method:"PATCH",endpoint:t,data:e})}async delete({endpoint:t,data:e}){return this.request({method:"DELETE",endpoint:t,data:e})}async request({endpoint:t,data:e=null,format:s=A.Json,method:r="GET",params:n=null}){const c={Authorization:this.authHeader,"X-User-Agent":"cuenca-js/0.0.1","Content-Type":"application/json",Accept:`application/${s.value}`};this.jwtToken&&(this.jwtToken.isExpired&&(this.jwtToken=await l.create(this)),c["X-Cuenca-Token"]=this.jwtToken.token),h&&this.phase!==j.Api&&(c["Access-Control-Allow-Origin"]="*");const o=this.addHeadersToRequest(c),d=e;d&&Object.keys(d).forEach((t=>{d[t]instanceof Date&&(d[t]=d[t].toISOString())}));const u=this.addConfigToRequest({method:r,params:n,data:d,url:t});let p;try{p=await this._session.request({baseURL:this.origin})}catch(t){throw t.response?new a(t.response.data,t.response.status):t.request?new i(`No response received: ${t.errno}: ${t.code}`):new i(t.message)}finally{o.eject(),u.eject()}return p.data}}class H{constructor({accountNumber:t,createdAt:e,id:s,institutionName:r,name:i,userId:a}){this.accountNumber=t,this.createdAt=S(e),this.id=s,this.institutionName=r,this.name=i,this.userId=a}static fromObject=({id:t,name:e,...s})=>new H({id:t,name:e,accountNumber:s.account_number,createdAt:s.created_at,institutionName:s.institution_name,userId:s.user_id})}class L{constructor({createdAt:t,deactivatedAt:e,id:s,secret:r,userId:i,updatedAt:a}){this.createdAt=S(t),this.deactivatedAt=S(e),this.id=s,this.secret=r,this.userId=i,this.updatedAt=S(a)}static fromObject=({id:t,secret:e,...s})=>new L({id:t,secret:e,createdAt:s.created_at,deactivatedAt:s.deactivated_at,userId:s.user_id,updatedAt:s.updated_at});get isActive(){const t=S(Date.now());return!this.deactivatedAt||this.deactivatedAt.getTime()>t.getTime()}}class J{constructor({arpc:t,createdAt:e,cardUri:s,isValidArqc:r}){this.arpc=t,this.createdAt=S(e),this.cardUri=s,this.isValidArqc=r}static fromObject=({arpc:t,...e})=>new J({arpc:t,createdAt:e.created_at,cardUri:e.card_uri,isValidArqc:e.is_valid_arqc})}class W{constructor({amount:t,createdAt:e,descriptor:s,entryType:r,fundingInstrumentUri:i,id:a,name:n,relatedTransactionUri:c,rollingBalance:o}){this.amount=t,this.createdAt=S(e),this.descriptor=s,this.entryType=N(x,r),this.fundingInstrumentUri=i,this.id=a,this.name=n,this.relatedTransactionUri=c,this.rollingBalance=o}static fromObject=({amount:t,descriptor:e,id:s,name:r,type:i,...a})=>new W({amount:t,descriptor:e,name:r,id:s,createdAt:a.created_at,entryType:i,fundingInstrumentUri:a.funding_instrument_uri,relatedTransactionUri:a.related_transaction_uri,rollingBalance:a.rolling_balance})}class X{constructor({amount:t,createdAt:e,descriptor:s,status:r,userId:i}){this.amount=t,this.createdAt=S(e),this.descriptor=s,this.status=N(T,r),this.userId=i}}class G extends X{constructor({amount:t,accountNumber:e,createdAt:s,descriptor:r,id:i,providerUri:a,status:n,userId:c}){super({amount:t,createdAt:s,descriptor:r,status:n,userId:c}),this.accountNumber=e,this.id=i,this.providerUri=a}static fromObject=({amount:t,descriptor:e,id:s,status:r,...i})=>new G({amount:t,descriptor:e,id:s,status:r,accountNumber:i.account_number,createdAt:i.created_at,providerUri:i.provider_uri,userId:i.user_id})}class Z{constructor({createdAt:t,cvv2:e,expMonth:s,expYear:r,fundingType:i,id:a,issuer:n,number:c,pin:o,status:d,type:u,updatedAt:h,userId:p}){this.createdAt=S(t),this.cvv2=e,this.expMonth=s,this.expYear=r,this.fundingType=N(w,i),this.id=a,this.issuer=N(_,n),this.number=c,this.pin=o,this.status=N(y,d),this.type=N(b,u),this.updatedAt=S(h),this.userId=p}static fromObject=({cvv2:t,id:e,issuer:s,number:r,pin:i,status:a,type:n,...c})=>new Z({cvv2:t,id:e,issuer:s,number:r,pin:i,status:a,type:n,createdAt:c.created_at,expMonth:c.exp_month,expYear:c.exp_year,fundingType:c.funding_type,updatedAt:c.updated_at,userId:c.user_id})}class tt{constructor({cardUri:t,createdAt:e,id:s,ipAddress:r,success:i,userId:a}){this.cardUri=t,this.createdAt=S(e),this.id=s,this.ipAddress=r,this.success=i,this.userId=a}static fromObject=({id:t,success:e,...s})=>new tt({id:t,success:e,cardUri:s.card_uri,createdAt:s.created_at,ipAddress:s.ip_address,userId:s.user_id})}class et extends X{constructor({amount:t,cardErrorType:e,cardLastFour:s,cardType:r,cardUri:i,createdAt:a,descriptor:n,metadata:c,network:o,relatedCardTransactionsUris:d,status:u,type:h,userId:p}){super({amount:t,createdAt:a,descriptor:n,status:u,userId:p}),this.cardErrorType=N(m,e),this.cardLastFour=s,this.cardType=N(b,r),this.cardUri=i,this.metadata=c,this.network=o,this.relatedCardTransactionsUris=d,this.type=N(v,h)}static fromObject=({amount:t,descriptor:e,metadata:s,network:r,status:i,type:a,...n})=>new et({amount:t,descriptor:e,metadata:s,network:r,status:i,type:a,cardErrorType:n.error_type,cardLastFour:n.card_last4,cardType:n.card_type,cardUri:n.card_uri,createdAt:n.created_at,relatedCardTransactionsUris:n.related_card_transaction,userId:n.user_id})}class st{constructor({cardStatus:t,cardType:e,cardUri:s,createdAt:r,isExpired:i,isPinAttemptsExceeded:a,isValidCvv:n,isValidCvv2:c,isValidExpDate:o,isValidIcvv:d,isValidPinBlock:u,userId:h}){this.cardStatus=N(y,t),this.cardType=N(b,e),this.cardUri=s,this.createdAt=S(r),this.isExpired=i,this.isPinAttemptsExceeded=a,this.isValidCvv=n,this.isValidCvv2=c,this.isValidExpDate=o,this.isValidIcvv=d,this.isValidPinBlock=u,this.userId=h}static fromObject=({...t})=>new st({cardStatus:t.card_status,cardType:t.card_type,cardUri:t.card_uri,createdAt:t.created_at,isExpired:t.is_expired,isPinAttemptsExceeded:t.is_pin_attempts_exceeded,isValidCvv:t.is_valid_cvv,isValidCvv2:t.is_valid_cvv2,isValidExpDate:t.is_valid_exp_date,isValidIcvv:t.is_valid_icvv,isValidPinBlock:t.is_valid_pin_block,userId:t.user_id});get isActive(){return this.cardStatus===y.Active}}class rt extends X{constructor({amount:t,createdAt:e,descriptor:s,relatedTransactionUri:r,status:i,type:a,userId:n}){super({amount:t,createdAt:e,descriptor:s,status:i,userId:n}),this.relatedTransactionUri=r,this.type=N(g,a)}static fromObject=({amount:t,descriptor:e,status:s,type:r,...i})=>new rt({amount:t,descriptor:e,status:s,type:r,createdAt:i.created_at,relatedTransactionUri:i.related_transaction_uri,userId:i.user_id})}class it extends X{constructor({amount:t,createdAt:e,descriptor:s,id:r,network:i,status:a,sourceUri:n,trackingKey:c,userId:o}){super({amount:t,createdAt:e,descriptor:s,status:a,userId:o}),this.id=r,this.network=N(f,i),this.sourceUri=n,this.trackingKey=c}static fromObject=({amount:t,descriptor:e,id:s,network:r,status:i,...a})=>new it({amount:t,descriptor:e,id:s,network:r,status:i,createdAt:a.created_at,sourceUri:a.source_uri,trackingKey:a.tracking_key,userId:a.user_id})}class at{constructor({id:t}){this.id=t}static fromObject=({id:t})=>new at({id:t})}class nt extends class{constructor({balance:t,createdAt:e,deactivatedAt:s,id:r,userId:i,updatedAt:a}){this.balance=t,this.createdAt=S(e),this.deactivatedAt=S(s),this.id=r,this.userId=i,this.updatedAt=S(a)}}{constructor({balance:t,category:e,createdAt:s,deactivatedAt:r,goalAmount:i,goalDate:a,id:n,name:c,userId:o,updatedAt:d}){super({balance:t,createdAt:s,deactivatedAt:r,id:n,userId:o,updatedAt:d}),this.category=N(I,e),this.goalAmount=i,this.goalDate=S(a),this.name=c}static fromObject=({balance:t,category:e,id:s,name:r,...i})=>new nt({balance:t,category:e,id:s,name:r,createdAt:i.created_at,deactivatedAt:i.deactivated_at,goalAmount:i.goal_amount,goalDate:i.goal_date,userId:i.user_id,updatedAt:i.updated_at})}class ct{constructor({categories:t,id:e,name:s,providerKey:r}){var i;this.categories=null==(i=t)?[]:i.map((t=>N(O,t))),this.id=e,this.name=s,this.providerKey=r}static fromObject=({categories:t,id:e,name:s,...r})=>new ct({categories:t,id:e,name:s,providerKey:r.provider_key})}class ot{constructor({createdAt:t,id:e,month:s,year:r}){this.createdAt=S(t),this.id=e,this.month=s,this.year=r}static fromObject=({id:t,month:e,year:s,...r})=>new ot({id:t,month:e,year:s,createdAt:r.created_at})}class dt extends X{constructor({accountNumber:t,amount:e,createdAt:s,descriptor:r,destinationUri:i,id:a,idempotencyKey:n,network:c,recipientName:o,status:d,trackingKey:u,updatedAt:h,userId:p}){super({amount:e,createdAt:s,descriptor:r,status:d,userId:p}),this.accountNumber=t,this.destinationUri=i,this.id=a,this.idempotencyKey=n,this.network=N(C,c),this.recipientName=o,this.trackingKey=u,this.updatedAt=S(h)}static fromObject=({amount:t,descriptor:e,id:s,network:r,status:i,...a})=>new dt({amount:t,descriptor:e,id:s,network:r,status:i,accountNumber:a.account_number,createdAt:a.created_at,destinationUri:a.destination_uri,idempotencyKey:a.idempotency_key,recipientName:a.recipient_name,trackingKey:a.tracking_key,updatedAt:a.updated_at,userId:a.user_id})}class ut{constructor({createdAt:t,id:e,isActive:s,updatedAt:r}){this.createdAt=S(t),this.id=e,this.isActive=s,this.updatedAt=S(r)}static fromObject=({id:t,...e})=>new ut({id:t,createdAt:e.created_at,isActive:e.is_active,updatedAt:e.updated_at})}class ht{constructor({id:t,lastLoginAt:e,success:s}){this.id=t,this.lastLoginAt=S(e),this.success=s}static fromObject=({id:t,success:e,...s})=>new ht({id:t,success:e,lastLoginAt:s.last_login_at})}class pt extends X{constructor({amount:t,createdAt:e,descriptor:s,id:r,status:i,transactionType:a,userId:n,walletUri:c}){super({amount:t,createdAt:e,descriptor:s,status:i,userId:n}),this.id=r,this.transactionType=N(U,a),this.walletUri=c}static fromObject=({amount:t,descriptor:e,id:s,status:r,...i})=>new pt({amount:t,descriptor:e,id:s,status:r,createdAt:i.created_at,transactionType:i.transaction_type,userId:i.user_id,walletUri:i.wallet_uri})}class lt extends X{constructor({amount:t,claimUrl:e,createdAt:s,descriptor:r,destinationUri:i,expiresAt:a,id:n,network:c,phoneNumber:o,recipientName:d,status:u,trackingKey:h,updatedAt:p,userId:l}){super({amount:t,createdAt:s,descriptor:r,status:u,userId:l}),this.claimUrl=e,this.destinationUri=i,this.id=n,this.expiresAt=S(a),this.network=N(C,c),this.phoneNumber=o,this.recipientName=d,this.trackingKey=h,this.updatedAt=S(p)}static fromObject=({amount:t,descriptor:e,id:s,network:r,status:i,...a})=>new lt({amount:t,descriptor:e,id:s,network:r,status:i,createdAt:a.created_at,claimUrl:a.claim_url,destinationUri:a.destination_uri,expiresAt:a.expires_at,phoneNumber:a.phone_number,recipientName:a.recipient_name,trackingKey:a.tracking_key,updatedAt:a.updated_at,userId:a.user_id})}class mt{constructor(t){this.superclass=t}with(...t){return t.reduce(((t,e)=>e(t)),this.superclass)}}const wt=t=>new mt(t),_t=(t,e)=>({accounts:()=>H.fromObject(e),api_keys:()=>L.fromObject(e),arpc:()=>J.fromObject(e),balance_entries:()=>W.fromObject(e),bill_payments:()=>G.fromObject(e),cards:()=>Z.fromObject(e),card_activations:()=>tt.fromObject(e),card_transactions:()=>et.fromObject(e),card_validations:()=>st.fromObject(e),commissions:()=>rt.fromObject(e),deposits:()=>it.fromObject(e),login_tokens:()=>at.fromObject(e),savings:()=>nt.fromObject(e),service_providers:()=>ct.fromObject(e),statements:()=>ot.fromObject(e),transfers:()=>dt.fromObject(e),user_credentials:()=>ut.fromObject(e),user_logins:()=>ht.fromObject(e),wallet_transactions:()=>pt.fromObject(e),whatsapp_transfers:()=>lt.fromObject(e)}[t]()),yt=t=>{if(null===t||""===t)return null;const e=t.match("/(.*?)/");return null===e?null:e[0].replaceAll("/","")};class vt{constructor(t,e,s){this.path=t,this.QueryParams=e,this.client=s}}const bt=t=>class extends t{async retrieve(t){const e=await this.client.get({endpoint:`/${this.path}/${t}`});return _t(this.path,e)}},gt=t=>class extends t{async _create(t){const e=await this.client.post({endpoint:`/${this.path}`,data:t});return _t(this.path,e)}},ft=t=>class extends t{async _update(t,e){const s=await this.client.patch({endpoint:`/${this.path}/${t}`,data:e});return _t(this.path,s)}},xt=t=>class extends t{async _deactivate(t,e){const s=await this.client.delete({endpoint:`/${this.path}/${t}`,data:e});return _t(this.path,s)}},At=t=>class extends t{async _download(t,e){return await this.client.get({endpoint:`/${this.path}/${t}`,format:e})}},jt=t=>class extends t{async one(t=new this.QueryParams({})){const{items:e}=await this.client.get({endpoint:`/${this.path}`,params:t.toParams()});if(!e||!e.length)throw new n;if(e.length>1)throw new c;const[s]=e;return _t(this.path,s)}async first(t=new this.QueryParams({})){const{items:e}=await this.client.get({endpoint:`/${this.path}`,params:t.toParams()});if(!e||!e[0])return null;const[s]=e;return _t(this.path,s)}async count(t=new this.QueryParams({})){t.count=!0;const{count:e}=await this.client.get({endpoint:`/${this.path}`,params:t.toParams()});return e||0}async*all(t=new this.QueryParams({})){let e=`/${this.path}?${t.toQueryString()}`;for(;e;){const t=await this.client.get({endpoint:e});if(t.items)for(const e of t.items){const t=_t(this.path,e);yield t}e=t.next_page_uri}}};class Ot extends(wt(vt).with(jt,bt)){constructor(t){super("accounts",P,t)}}class It{toObject(){return{}}toCleanObject(){const t=this.toObject();return Object.keys(t).forEach((e=>{null==t[e]&&delete t[e]})),t}}class kt extends It{constructor(t,e){super(),this.userId=t,this.metadata=e}toObject(){return{user_id:this.userId,metadata:this.metadata}}}class Tt extends It{constructor(t,e,s){super(),this.userId=t,this.issuer=e,this.fundingType=s}toObject(){return{user_id:this.userId,issuer:this.issuer,funding_type:this.fundingType}}}class Ct extends It{constructor(t,e){super(),this.status=t,this.pinBlock=e}toObject(){return{status:this.status,pin_block:this.pinBlock}}}class Ut extends It{constructor(t,e,s,r){super(),this.n=t,this.eM=e,this.eY=s,this.c2=r}get number(){return this._number}set n(t){if([!!t,16===t.length,/^\d{16}/.test(t)].some((t=>!t)))throw new u("Invalid number");this._number=t.trim()}get expMonth(){return this._expMonth}set eM(t){if([!!t,t>=1,t<=12].some((t=>!t)))throw new u("Invalid expiration month");this._expMonth=t}get expYear(){return this._expYear}set eY(t){if([!!t,t>=18,t<=99].some((t=>!t)))throw new u("Invalid expiration year");this._expYear=t}get cvv2(){return this._cvv2}set c2(t){if([!!t,3===t.length,/^\d{3}/.test(t)].some((t=>!t)))throw new u("Invalid cvv2");this._cvv2=t}toObject(){return{number:this.number,exp_month:this.expMonth,exp_year:this.expYear,cvv2:this.cvv2}}}class St extends It{constructor({cvv:t,cvv2:e,expMonth:s,expYear:r,icvv:i,number:a,pinBlock:n,pinAttemptsExceeded:c}){super(),this.c=t,this.c2=e,this.em=s,this.ey=r,this.ic=i,this.n=a,this.pinBloc=n,this.pinAttemptsExceeded=c}get cvv(){return this._cvv}set c(t){if(!t)return;if([3===t.length].some((t=>!t)))throw new u("Invalid cvv");this._cvv=t}get cvv2(){return this._cvv2}set c2(t){if(!t)return;if([3===t.length].some((t=>!t)))throw new u("Invalid cvv2");this._cvv2=t}get expMonth(){return this._expMonth}set em(t){if(!t)return;if([t>=1,t<=12].some((t=>!t)))throw new u("Invalid expiration month");this._expMonth=t}get expYear(){return this._expYear}set ey(t){if(!t)return;if([t>=18,t<=99].some((t=>!t)))throw new u("Invalid expiration year");this._expYear=t}get icvv(){return this._icvv}set ic(t){if(!t)return;if([3===t.length].some((t=>!t)))throw new u("Invalid icvv");this._icvv=t}get number(){return this._number}set n(t){if([!!t,16===t.length,/^\d{16}/.test(t)].some((t=>!t)))throw new u("Invalid number");this._number=t}toObject(){return{cvv:this.cvv,cvv2:this.cvv2,exp_month:this.expMonth,exp_year:this.expYear,icvv:this.icvv,number:this.number,pin_block:this.pinBloc,pin_attempts_exceeded:this.pinAttemptsExceeded}}}class Nt extends It{constructor(t,e,s,r){super(),this.category=t,this.name=r,this.goalAmount=e,this.validDate=s}get goalDate(){return this._goalDate}set validDate(t){if(t){if(S(t).getTime()<=S(Date.now()).getTime())throw new u("The goal_date always need to be higher than now");this._goalDate=t}}toObject(){return{category:this.category,goal_amount:this.goalAmount,goal_date:this.goalDate,name:this.name}}}class Et extends It{constructor(t,e,s,r,i){super(),this.accountNumber=t,this.amount=e,this.descriptor=s,this.idempotencyKey=r,this.recipientName=i}toObject(){return{account_number:this.accountNumber,amount:this.amount,descriptor:this.descriptor,idempotency_key:this.idempotencyKey,recipient_name:this.recipientName}}}class Pt extends It{constructor(t){super(),this.pwd=t}get password(){return this._password}set pwd(t){if([!!t,6===t.length,/^\d{6}$/.test(t)].some((t=>!t)))throw new u("Invalid password");this._password=t}toObject(){return{password:this.password}}}class $t extends It{constructor(t,e){super(),this.pwd=t,this.isActive=e,this.req={password:this.password,isActive:this.isActive}}get password(){return this._password}get request(){return this._request}set pwd(t){if(!t)return void(this._password=t);if([6===t.length,/^\d{6}$/.test(t)].some((t=>!t)))throw new u("Invalid password");this._password=t}set req(t){if(t.password&&null!=t.isActive)throw new u("Only one property can be updated at a time");this._request=t}toObject(){return{password:this.request.password,is_active:this.request.isActive}}}class Kt extends It{constructor(t,e="me"){super(),this.pwd=t,this.userId=e}get password(){return this._password}set pwd(t){if([!!t,6===t.length,/^\d{6}$/.test(t)].some((t=>!t)))throw new u("Invalid password");this._password=t}toObject(){return{password:this.password,user_id:this.userId}}}class Dt extends It{constructor(t,e,s){super(),this.amount=t,this.transactionType=e,this.walletUri=s}toObject(){return{amount:this.amount,transaction_type:this.transactionType,wallet_uri:this.walletUri}}}class qt extends(wt(vt).with(gt,xt,jt,bt,ft)){constructor(t){super("api_keys",$,t)}async create(){return await this._create()}async deactivate(t,e=0){return await this._deactivate(t,{minutes:e})}async update(t,e,s){const r=new kt(s,e);return await this._update(t,r.toCleanObject())}}wt(vt).with(gt);class Mt extends(wt(vt).with(jt,bt)){constructor(t){super("balance_entries",M,t)}async relatedTransaction(t){const e=yt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return _t(`${e}`,s)}async fundingInstrument(t){const e=yt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return _t(`${e}`,s)}}class Bt extends(wt(vt).with(jt,bt)){constructor(t){super("bill_payments",B,t)}async serviceProvider(t){const e=yt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return _t(`${e}`,s)}}class Rt extends(wt(vt).with(gt)){constructor(t){super("card_activations",Object,t)}async create({number:t,expMonth:e,expYear:s,cvv2:r}){const i=new Ut(t,e,s,r);return await this._create(i.toCleanObject())}async card(t){if(!t)return null;const e=await this.client.get({endpoint:t});return Z.fromObject(e)}}class Vt extends(wt(vt).with(gt,xt,jt,bt,ft)){constructor(t){super("cards",V,t)}async create(t,e,s){const r=new Tt(t,e,s);return await this._create(r.toCleanObject())}async deactivate(t){return await this._deactivate(t)}async update(t,e,s){const r=new Ct(e,s);return await this._update(t,r.toCleanObject())}}class Qt extends(wt(vt).with(jt,bt)){constructor(t){super("card_transactions",R,t)}async relatedCard(t){const e=yt(t);if(null==e)return null;const s=await this.client.get({endpoint:t});return _t(`${e}`,s)}}class Yt extends(wt(vt).with(gt)){constructor(t){super("card_validations",Object,t)}async create({cvv:t,cvv2:e,expMonth:s,expYear:r,icvv:i,number:a,pinBlock:n,pinAttemptsExceeded:c}){const o=new St({cvv:t,cvv2:e,expMonth:s,expYear:r,icvv:i,number:a,pinBlock:n,pinAttemptsExceeded:c});return await this._create(o.toCleanObject())}async card(t){if(!t)return null;const e=await this.client.get({endpoint:t});return Z.fromObject(e)}}class Ft extends(wt(vt).with(jt,bt)){constructor(t){super("commissions",E,t)}async relatedTransaction(t){const e=yt(t);if(null==e)return null;const s=await this.client.get(t);return _t(`${e}`,s)}}class zt extends(wt(vt).with(jt,bt)){constructor(t){super("deposits",D,t)}async source(t){const e=await this.client.get({endpoint:t});return H.fromObject(e)}}class Ht extends(wt(vt).with(gt)){constructor(t){super("login_tokens",Object,t)}async create(){return await this._create()}}class Lt extends(wt(vt).with(gt,xt,jt,bt,ft)){constructor(t){super("savings",Y,t)}async create(t,e,s,r){const i=new Nt(t,e,s,r);return await this._create(i.toObject())}async deactivate(t){return await this._deactivate(t)}async update(t,e,s,r,i){const a=new Nt(e,s,r,i);return await this._update(t,a.toObject())}}class Jt extends(wt(vt).with(jt,bt)){constructor(t){super("service_providers",E,t)}}class Wt extends(wt(vt).with(At,jt)){constructor(t){super("statements",F,t)}async pdf(t){return await this._download(t,A.Pdf)}async xml(t){return await this._download(t,A.Xml)}}class Xt extends(wt(vt).with(gt,jt,bt)){constructor(t){super("transfers",q,t)}async destination(t){const e=await this.client.get({endpoint:t});return H.fromObject(e)}async create({accountNumber:t,amount:e,descriptor:s,recipientName:r,idempotencyKey:i}){const a=i||this.constructor._genIdempotencyKey(t,e),n=new Et(t,e,s,a,r);return await this._create(n.toCleanObject())}async createMany(t){if(!t||!Array.isArray(t)||!t.length)return{};const e={submitted:[],errors:[]};return await Promise.all(t.map((async({accountNumber:t,amount:s,descriptor:r,idempotencyKey:i,recipientName:a})=>{const n=new Et(t,s,r,i||this.constructor._genIdempotencyKey(t,s),a);let c;try{c=await this._create(n.toCleanObject())}catch(t){return void e.errors.push({actualRequest:n,error:t})}e.submitted.push(c)}))),e}static _genIdempotencyKey(t,e){const[s]=S(Date.now()).toISOString().split("T");return`${s}:${t}:${e}`}}class Gt extends(wt(vt).with(gt,ft)){constructor(t){super("user_credentials",Object,t)}async create(t){const e=new Pt(t);return await this._create(e.toObject())}async update({isActive:t,password:e,userId:s="me"}){const r=new $t(e,t);return await this._update(s,r.toCleanObject())}}class Zt extends(wt(vt).with(gt,xt)){constructor(t){super("user_logins",Object,t),this.loginIdInHeaders=null}async create(t,e){const s=new Kt(t,e),r=await this._create(s.toObject());if(!r.success)throw new d;return this.loginIdInHeaders=this.client.addHeadersToRequest({"X-Cuenca-LoginId":r.id}),r}async logOut(t="me"){return await this._deactivate(t,{}),this.loginIdInHeaders&&this.loginIdInHeaders.eject(),!0}}class te extends(wt(vt).with(gt,jt,bt)){constructor(t){super("wallet_transactions",Q,t)}async create(t,e,s){const r=new Dt(t,e,s);return await this._create(r.toObject())}async realtedWallet(t){const e=yt(t);if(null==e)return null;const s=await this.client.get(t);return _t(`${e}`,s)}}class ee extends(wt(vt).with(jt,bt)){constructor(t){super("whatsapp_transfers",E,t)}async accountDestination(t){const e=yt(t);if(null==e)return null;const s=await this.client.get(t);return _t(`${e}`,s)}}t.AccountQuery=P,t.ApiKeyQuery=$,t.BalanceEntryQuery=M,t.BillPaymentQuery=B,t.CardErrorType=m,t.CardFundingType=w,t.CardIssuer=_,t.CardStatus=y,t.CardTransactionQuery=R,t.CardTransactionType=v,t.CardType=b,t.CardsQuery=V,t.CommissionType=g,t.Cuenca=class{constructor(t,e,s=j.Sandbox){this.client=new z({apiKey:t,apiSecret:e,phase:s}),this.withClient(this.client)}withClient(t){this.accounts=new Ot(t),this.apiKeys=new qt(t),this.balanceEntries=new Mt(t),this.billPayments=new Bt(t),this.cardActivations=new Rt(t),this.cards=new Vt(t),this.cardTransactions=new Qt(t),this.cardValidations=new Yt(t),this.commissions=new Ft(t),this.deposits=new zt(t),this.loginTokens=new Ht(t),this.savings=new Lt(t),this.serviceProviders=new Jt(t),this.statements=new Wt(t),this.transfers=new Xt(t),this.userCredentials=new Gt(t),this.userLogins=new Zt(t),this.walletTransactions=new te(t),this.whatsAppTransfers=new ee(t)}},t.CuencaException=i,t.CuencaResponseException=a,t.DepositNetwork=f,t.DepositQuery=D,t.EntryType=x,t.FileFormat=A,t.InvalidPassword=d,t.Jwt=l,t.MalformedJwtToken=o,t.MultipleResultsFound=c,t.NoResultFound=n,t.PageSize=class{constructor(t){this.maxSize=100,this._ps=t}get size(){return this._pageSize}set _ps(t){let e=this.maxSize;t&&t>0&&t<=this.maxSize&&(e=t),this._pageSize=e}},t.Phase=j,t.QueryParams=E,t.SavingCategory=I,t.ServiceProviderCategory=O,t.StatementQuery=F,t.TrackDataMethod=k,t.TransactionStatus=T,t.TransferNetwork=C,t.TransferQuery=q,t.ValidationError=u,t.WalletQuery=Y,t.WalletTransactionQuery=Q,t.WalletTransactionType=U}));
|