lombongo-api-client 0.0.138 → 0.0.140
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/esm/base.js +1 -1
- package/dist/types.d.ts +20 -2
- package/package.json +1 -1
package/dist/esm/base.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
class t{constructor(t){this.client=t,this.endpoint="/accounts"}async getAccounts(){return await this.client.request("get",this.endpoint)}async createAoaAccount(){return await this.client.request("post",this.endpoint,{currency:"aoa"},{})}async createEurAccount(){return await this.client.request("post",this.endpoint,{currency:"eur"},{})}}class s{constructor(t){this.observers=[],this.authState={authenticated:!1},this.client=t}_notifyObservers(){for(const t of this.observers)t(this.authState)}onAuthStateChange(t){this.observers.push(t)}isAuthenticated(){return Boolean(this.client.token)}async signUp(t){const s=(await this.client.request("post","/api/auth/sign-up/email",t)).data;return this.authState={authenticated:!0,user:s.user,token:s.token},this._notifyObservers(),s}async login(t){const s=(await this.client.request("post","/api/auth/sign-in/email",t)).data;return this.authState={authenticated:!0,user:s.user,token:s.token},this._notifyObservers(),s}async signOut(){await this.client.request("post","/api/auth/sign-out"),delete this.client.token,this.authState={authenticated:!1,user:void 0,token:void 0},this._notifyObservers()}async getSession(){return await this.client.request("get","/api/auth/get-session")}async checkUsernameAvailability(t){const s=`/auth/users/${t}/check-availability`;return await this.client.request("get",s)}async getSocialSignInUrl(t,s){return(await this.client.request("post","/api/auth/sign-in/social",{provider:t,callbackURL:s,disableRedirect:!0})).data.url}async signInWithSocialToken(t,s){const e=(await this.client.request("post","/api/auth/sign-in/social",{provider:t,idToken:{token:s}})).data;return this.authState={authenticated:!0,user:e.user,token:e.token},this._notifyObservers(),e}async handleSocialCallback(t){const s=new URL(t).searchParams.get("token");if(!s)throw new Error("No token found in callback URL");this.client.setToken(s);const e=(await this.getSession()).data;return this.authState={authenticated:!0,user:e.user,token:s},this._notifyObservers(),e}}class e{constructor(t){this.client=t,this.endpoint="/beneficiaries"}async getBeneficiaries(){return await this.client.request("get",this.endpoint)}async getBeneficiary(t){const s=`${this.endpoint}/${t}`;return await this.client.request("get",s)}async getBeneficiariesByType(t){const s=`${this.endpoint}?type=${t}`;return await this.client.request("get",s)}async getMyOwnBeneficiaries(t){let s;return s=t?`${this.endpoint}/my-own?type=${t}`:`${this.endpoint}/my-own`,await this.client.request("get",s)}async createBeneficiary(t,s,e,i,n,r=!1){return await this.client.request("post",this.endpoint,{name:t,iban:s,type:e,phoneNumber:i,address:n,isMe:r})}async setAddress(t,s){const e=`${this.endpoint}/${t}/address`;return await this.client.request("patch",e,{address:s})}async setPhoneNumber(t,s){const e=`${this.endpoint}/${t}/phone-number`;return await this.client.request("patch",e,{phoneNumber:s})}async setNickname(t,s){const e=`${this.endpoint}/${t}/nickname`;return await this.client.request("patch",e,{nickname:s})}}class i{constructor(t){this.client=t,this.endpoint="/commissions"}async get(){const t=`${this.endpoint}`;return await this.client.request("get",t)}async getHighCommission(){const t=`${this.endpoint}/high`;return await this.client.request("get",t)}}class n{constructor(t){this.client=t,this.endpoint="/current-commission"}async getCurrentCommission(t){const s=`${this.endpoint}/${t}`;return await this.client.request("get",s)}}class r{constructor(t){this.client=t,this.endpoint="/cross-currency-transfer-types"}async getCrossCurrencyTypes(){return await this.client.request("get",this.endpoint)}async getCrossCurrencyType(t,s){const e=`${this.endpoint}?origin_currency=${t}&final_currency=${s}`;return await this.client.request("get",e)}}class a{constructor(t){this.client=t,this.endpoint="/cross-currency-transfer-limits"}async getCrossCurrencyTransferLimits(){return await this.client.request("get",this.endpoint)}async getCrossCurrencyTransferLimitsById(t){const s=`${this.endpoint}/${t}`;return await this.client.request("get",s)}}class c{constructor(t){this.client=t,this.endpoint="/currencies"}async getCurrencies(){return await this.client.request("get",this.endpoint)}}class h{constructor(t){this.client=t,this.endpoint="/fx-rates"}async getFxRates(){return await this.client.request("get",this.endpoint)}async getFxRate(t,s){return await this.client.request("get",`${this.endpoint}/${t}/${s}`)}async getFxRateHistory(t,s,e){const i=e?`?limit=${e}`:"";return await this.client.request("get",`${this.endpoint}/${t}/${s}/history${i}`)}async getFxRateAtDate(t,s,e){return await this.client.request("get",`${this.endpoint}/${t}/${s}/at-date?date=${e}`)}async getBaseFxRates(){return await this.client.request("get",`${this.endpoint}/base-rates`)}async getBaseFxRate(t,s){return await this.client.request("get",`${this.endpoint}/base-rates/${t}/${s}`)}async getFxSpreads(){return await this.client.request("get",`${this.endpoint}/spreads`)}async getFxSpread(t,s){return await this.client.request("get",`${this.endpoint}/spreads/${t}/${s}`)}async getFxSpreadHistory(t,s,e){const i=e?`?limit=${e}`:"";return await this.client.request("get",`${this.endpoint}/spreads/${t}/${s}/history${i}`)}}class o{constructor(t){this.client=t,this.endpoint="/invitation-codes"}async generateNew(){return await this.client.request("get",`${this.endpoint}/new`)}async sendCodeTo(t,s){return await this.client.request("post",`${this.endpoint}/send`,{code:t,username:s})}async getMyInvitationCodes(){return await this.client.request("get",this.endpoint)}async redeemInvitationCode(t){return await this.client.request("get",`${this.endpoint}/${t}/redeem`)}}class u{constructor(t){this.client=t,this.endpoint="/liquidity-pools"}async getLiquidityPools(){return await this.client.request("get",this.endpoint)}async getLiquidityRatio(t){const s=`${this.endpoint}/${t}/liquidity-ratio`;return await this.client.request("get",s)}}class y{constructor(t,s){let e;if("string"==typeof t){if(!/^-?\d+$/.test(t))throw new Error(`Amount string "${t}" is not parseable as an integer`);e=parseInt(t,10)}else e=t;if(e<0)throw new Error("Amount cannot be negative");if(!Number.isInteger(e))throw new Error(`Amount must be in smallest currency unit (cents) and be an integer, received: ${e} (${typeof t})`);this.amount=e,this.currencyCode=s.toUpperCase()}static fromDecimal(t,s){if(t<0)throw new Error("Amount cannot be negative");return new y(Math.round(100*t),s)}static fromCents(t,s){return new y(t,s)}static fromClientInput(t,s){return new y(t,s)}add(t){return this.ensureSameCurrency(t),new y(this.amount+t.amount,this.currencyCode)}subtract(t){if(this.ensureSameCurrency(t),this.amount<t.amount)throw new Error("Insufficient funds: cannot subtract larger amount");return new y(this.amount-t.amount,this.currencyCode)}multiply(t){if(t<0)throw new Error("Multiplication factor cannot be negative");return new y(Math.round(this.amount*t),this.currencyCode)}applyPercentage(t){if(t<0)throw new Error("Percentage cannot be negative");return this.multiply(t/100)}toDecimal(){const t=this.amount/100;return"AOA"===this.currencyCode?Math.round(t):t}toCents(){return this.amount}getCurrencyCode(){return this.currencyCode}isZero(){return 0===this.amount}equals(t){return this.amount===t.amount&&this.currencyCode===t.currencyCode}isGreaterThan(t){return this.ensureSameCurrency(t),this.amount>t.amount}toString(){return`${this.toDecimal().toFixed(2)} ${this.currencyCode}`}ensureSameCurrency(t){if(this.currencyCode!==t.currencyCode)throw new Error(`Cannot operate on different currencies: ${this.currencyCode} vs ${t.currencyCode}`)}}class w{constructor(t){this.client=t,this.endpoint="/transactions"}async get(){return await this.client.request("get",this.endpoint)}async getTransaction(t){const s=`${this.endpoint}/${t}`;return await this.client.request("get",s)}async doCrossCurrency(t){const s=`${this.endpoint}/cross-currency`;return await this.client.request("post",s,t)}async doP2P(t){const s=`${this.endpoint}/p2p`;return await this.client.request("post",s,t)}async getFXConfig(t,s,e){const i=`${this.endpoint}/sepa/config`;return await this.client.request("post",i,{originalCurrencyId:t,finalCurrencyId:s,amount:e})}async generatePdfReceipt(t){const s=`${this.endpoint}/${t}/receipt`;return await this.client.request("get",s)}}var g=(t=>(t.NOT_VERIFIED="NOT_VERIFIED",t.VERIFICATION_PENDING="VERIFICATION_PENDING",t.VERIFICATION_FAILED="VERIFICATION_FAILED",t.VERIFIED="VERIFIED",t))(g||{});class l{constructor(t){this.client=t,this.endpoint="/users"}async getInvitedStatus(){const t=await this.client.request("get",`${this.endpoint}/me/check-if-invited`);if(null===t.data||void 0===t.data)throw new Error(`Invalid response for invited status: ${t.status} ${t.statusText}`);if("boolean"==typeof t.data)return t.data;if("string"==typeof t.data){const s=t.data.trim().toLowerCase();if("true"===s)return!0;if("false"===s)return!1}throw new Error(`Invalid invited status received: "${t.data}". Expected boolean or "true"/"false" string.`)}async updateOccupation(t,s){return this.client.request("patch",`${this.endpoint}/me/occupation`,{occupation_id:t,occupation_description:s})}async getOccupation(){return this.client.request("get",`${this.endpoint}/me/occupation`)}async verifyKyc(){const t=`${this.endpoint}/me/check-kyc-status`,s=await this.client.request("get",t);if(null===s.data||void 0===s.data)throw new Error(`Invalid response for KYC status: ${s.status} ${s.statusText}`);const e="string"==typeof s.data?s.data.trim():String(s.data).trim(),i=Object.values(g);if(i.includes(e))return e;throw new Error(`Invalid KYC status received: "${e}". Expected one of: ${i.join(", ")}`)}}class d{constructor(t){this.client=t,this.endpoint="/veriff/sessions"}async createSession(t){return await this.client.request("post",this.endpoint,{userId:t})}}class ${constructor(t){this.client=t,this.endpoint="/offers"}async createOffer(t){return await this.client.request("post",this.endpoint,{...t})}async getOffers(){return await this.client.request("get",this.endpoint)}async getMyOffers(){const t=`${this.endpoint}/me`;return await this.client.request("get",t)}async getOffer(t){const s=`${this.endpoint}/${t}`;return await this.client.request("get",s)}}class p{constructor(t){this.client=t,this.endpoint="/payment-methods"}async getPaymentMethods(){return await this.client.request("get",this.endpoint)}async getPaymentMethodsByCurrency(t){const s=`${this.endpoint}/currency/${t}`;return await this.client.request("get",s)}}class f{constructor(t){this.client=t,this.endpoint="/payments"}async getPaymentByTransactionId(t){const s=`${this.endpoint}?transaction_id=${t}`;return await this.client.request("get",s)}}class m{constructor(t){this.client=t,this.endpoint="/api/plaid/"}async createPaymentInitiationLinkToken(t){const s=this.endpoint+"create_link_token";return await this.client.request("post",s,{payment_id:t})}async createPaymentInitiation(t){const s=this.endpoint+"payment_initiation/payment/create";return await this.client.request("post",s,{amount:t})}}class C{constructor({baseUrl:g,token:C}){this.unauthorizedListeners=[],this.baseUrl=g,this.token=C,this.auth=new s(this),this.accounts=new t(this),this.beneficiaries=new e(this),this.commissions=new i(this),this.currencies=new c(this),this.currentCommision=new n(this),this.crossCurrencyTransferType=new r(this),this.crossCurrencyTransferLimits=new a(this),this.fxRates=new h(this),this.invitationCodes=new o(this),this.liquidityPools=new u(this),this.money=y,this.paymentMethods=new p(this),this.payments=new f(this),this.transactions=new w(this),this.users=new l(this),this.offers=new $(this),this.plaid=new m(this),this.veriff=new d(this),this.setupInterceptors()}static init(t){return C.instance?(t?.token&&(C.instance.token=t.token),t?.baseUrl&&(C.instance.baseUrl=t.baseUrl),C.instance):(C.instance=new C(t),C.instance)}setupInterceptors(){}async request(t,s,e={},i={}){const n=`${this.baseUrl}${s}`,r={...i,method:t.toUpperCase(),headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.token}`,...i.headers}};"GET"!==t.toUpperCase()&&e&&Object.keys(e).length>0&&(r.body=JSON.stringify(e));const a=await fetch(n,r);if(401===a.status&&this.emit401Event(n),!a.ok)throw new Error(`HTTP ${a.status}: ${a.statusText}`);return await async function(t){let s;try{const e=await t.text();if(""===e)s=null;else if(""===e.trim())s=null;else try{s=JSON.parse(e)}catch(t){s=e}}catch(t){s=null}return{data:s,status:t.status,statusText:t.statusText,headers:t.headers}}(a)}setToken(t){this.token=t}getToken(){return this.token}onUnauthorized(t){this.unauthorizedListeners.push(t)}offUnauthorized(t){const s=this.unauthorizedListeners.indexOf(t);s>-1&&this.unauthorizedListeners.splice(s,1)}emit401Event(t){for(const s of this.unauthorizedListeners)s(t)}}export{g as KycVerified,y as Money,C as default};
|
|
1
|
+
class t{constructor(t){this.client=t,this.endpoint="/accounts"}async getAccounts(){return await this.client.request("get",this.endpoint)}async createAoaAccount(){return await this.client.request("post",this.endpoint,{currency:"aoa"},{})}async createEurAccount(){return await this.client.request("post",this.endpoint,{currency:"eur"},{})}}class s{constructor(t){this.observers=[],this.authState={authenticated:!1},this.client=t}_notifyObservers(){for(const t of this.observers)t(this.authState)}onAuthStateChange(t){this.observers.push(t)}isAuthenticated(){return Boolean(this.client.token)}async signUp(t){const s=(await this.client.request("post","/api/auth/sign-up/email",t)).data;return this.authState={authenticated:!0,user:s.user,token:s.token},this._notifyObservers(),s}async login(t){const s=(await this.client.request("post","/api/auth/sign-in/email",t)).data;return this.authState={authenticated:!0,user:s.user,token:s.token},this._notifyObservers(),s}async signOut(){await this.client.request("post","/api/auth/sign-out"),delete this.client.token,this.authState={authenticated:!1,user:void 0,token:void 0},this._notifyObservers()}async getSession(){return await this.client.request("get","/api/auth/get-session")}async checkUsernameAvailability(t){const s=`/auth/users/${t}/check-availability`;return await this.client.request("get",s)}async getSocialSignInUrl(t,s){return(await this.client.request("post","/api/auth/sign-in/social",{provider:t,callbackURL:s,disableRedirect:!0})).data.url}async signInWithSocialToken(t,s){const e=(await this.client.request("post","/api/auth/sign-in/social",{provider:t,idToken:{token:s}})).data;return this.authState={authenticated:!0,user:e.user,token:e.token},this._notifyObservers(),e}async handleSocialCallback(t){console.log("[Auth.handleSocialCallback] callbackUrl:",t);const s=new URL(t).searchParams.get("token");if(console.log("[Auth.handleSocialCallback] extracted token:",s?`${s.substring(0,20)}...`:"null"),!s)throw new Error("No token found in callback URL");this.client.setToken(s),console.log("[Auth.handleSocialCallback] Token set on client, calling getSession...");const e=await this.getSession();console.log("[Auth.handleSocialCallback] getSession response:",JSON.stringify(e,null,2));const i=e.data;return console.log("[Auth.handleSocialCallback] parsed user:",JSON.stringify(i?.user)),this.authState={authenticated:!0,user:i.user,token:s},console.log("[Auth.handleSocialCallback] Notifying observers, isAuthenticated:",this.authState.authenticated),this._notifyObservers(),i}}class e{constructor(t){this.client=t,this.endpoint="/beneficiaries"}async getBeneficiaries(){return await this.client.request("get",this.endpoint)}async getBeneficiary(t){const s=`${this.endpoint}/${t}`;return await this.client.request("get",s)}async getBeneficiariesByType(t){const s=`${this.endpoint}?type=${t}`;return await this.client.request("get",s)}async getMyOwnBeneficiaries(t){let s;return s=t?`${this.endpoint}/my-own?type=${t}`:`${this.endpoint}/my-own`,await this.client.request("get",s)}async createBeneficiary(t,s,e,i,n,a=!1){return await this.client.request("post",this.endpoint,{name:t,iban:s,type:e,phoneNumber:i,address:n,isMe:a})}async setAddress(t,s){const e=`${this.endpoint}/${t}/address`;return await this.client.request("patch",e,{address:s})}async setPhoneNumber(t,s){const e=`${this.endpoint}/${t}/phone-number`;return await this.client.request("patch",e,{phoneNumber:s})}async setNickname(t,s){const e=`${this.endpoint}/${t}/nickname`;return await this.client.request("patch",e,{nickname:s})}}class i{constructor(t){this.client=t,this.endpoint="/commissions"}async get(){const t=`${this.endpoint}`;return await this.client.request("get",t)}async getHighCommission(){const t=`${this.endpoint}/high`;return await this.client.request("get",t)}}class n{constructor(t){this.client=t,this.endpoint="/current-commission"}async getCurrentCommission(t){const s=`${this.endpoint}/${t}`;return await this.client.request("get",s)}}class a{constructor(t){this.client=t,this.endpoint="/cross-currency-transfer-types"}async getCrossCurrencyTypes(){return await this.client.request("get",this.endpoint)}async getCrossCurrencyType(t,s){const e=`${this.endpoint}?origin_currency=${t}&final_currency=${s}`;return await this.client.request("get",e)}}class r{constructor(t){this.client=t,this.endpoint="/cross-currency-transfer-limits"}async getCrossCurrencyTransferLimits(){return await this.client.request("get",this.endpoint)}async getCrossCurrencyTransferLimitsById(t){const s=`${this.endpoint}/${t}`;return await this.client.request("get",s)}}class c{constructor(t){this.client=t,this.endpoint="/currencies"}async getCurrencies(){return await this.client.request("get",this.endpoint)}}class h{constructor(t){this.client=t,this.endpoint="/fx-rates"}async getFxRates(){return await this.client.request("get",this.endpoint)}async getFxRate(t,s){return await this.client.request("get",`${this.endpoint}/${t}/${s}`)}async getFxRateHistory(t,s,e){const i=e?`?limit=${e}`:"";return await this.client.request("get",`${this.endpoint}/${t}/${s}/history${i}`)}async getFxRateAtDate(t,s,e){return await this.client.request("get",`${this.endpoint}/${t}/${s}/at-date?date=${e}`)}async getBaseFxRates(){return await this.client.request("get",`${this.endpoint}/base-rates`)}async getBaseFxRate(t,s){return await this.client.request("get",`${this.endpoint}/base-rates/${t}/${s}`)}async getFxSpreads(){return await this.client.request("get",`${this.endpoint}/spreads`)}async getFxSpread(t,s){return await this.client.request("get",`${this.endpoint}/spreads/${t}/${s}`)}async getFxSpreadHistory(t,s,e){const i=e?`?limit=${e}`:"";return await this.client.request("get",`${this.endpoint}/spreads/${t}/${s}/history${i}`)}}class o{constructor(t){this.client=t}async lookup(t){const s=`/iban-lookup?iban=${encodeURIComponent(t)}`;return await this.client.request("get",s)}}class u{constructor(t){this.client=t,this.endpoint="/invitation-codes"}async generateNew(){return await this.client.request("get",`${this.endpoint}/new`)}async sendCodeTo(t,s){return await this.client.request("post",`${this.endpoint}/send`,{code:t,username:s})}async getMyInvitationCodes(){return await this.client.request("get",this.endpoint)}async redeemInvitationCode(t){return await this.client.request("get",`${this.endpoint}/${t}/redeem`)}}class y{constructor(t){this.client=t,this.endpoint="/liquidity-pools"}async getLiquidityPools(){return await this.client.request("get",this.endpoint)}async getLiquidityRatio(t){const s=`${this.endpoint}/${t}/liquidity-ratio`;return await this.client.request("get",s)}}class l{constructor(t,s){let e;if("string"==typeof t){if(!/^-?\d+$/.test(t))throw new Error(`Amount string "${t}" is not parseable as an integer`);e=parseInt(t,10)}else e=t;if(e<0)throw new Error("Amount cannot be negative");if(!Number.isInteger(e))throw new Error(`Amount must be in smallest currency unit (cents) and be an integer, received: ${e} (${typeof t})`);this.amount=e,this.currencyCode=s.toUpperCase()}static fromDecimal(t,s){if(t<0)throw new Error("Amount cannot be negative");return new l(Math.round(100*t),s)}static fromCents(t,s){return new l(t,s)}static fromClientInput(t,s){return new l(t,s)}add(t){return this.ensureSameCurrency(t),new l(this.amount+t.amount,this.currencyCode)}subtract(t){if(this.ensureSameCurrency(t),this.amount<t.amount)throw new Error("Insufficient funds: cannot subtract larger amount");return new l(this.amount-t.amount,this.currencyCode)}multiply(t){if(t<0)throw new Error("Multiplication factor cannot be negative");return new l(Math.round(this.amount*t),this.currencyCode)}applyPercentage(t){if(t<0)throw new Error("Percentage cannot be negative");return this.multiply(t/100)}toDecimal(){const t=this.amount/100;return"AOA"===this.currencyCode?Math.round(t):t}toCents(){return this.amount}getCurrencyCode(){return this.currencyCode}isZero(){return 0===this.amount}equals(t){return this.amount===t.amount&&this.currencyCode===t.currencyCode}isGreaterThan(t){return this.ensureSameCurrency(t),this.amount>t.amount}toString(){return`${this.toDecimal().toFixed(2)} ${this.currencyCode}`}ensureSameCurrency(t){if(this.currencyCode!==t.currencyCode)throw new Error(`Cannot operate on different currencies: ${this.currencyCode} vs ${t.currencyCode}`)}}class w{constructor(t){this.client=t,this.endpoint="/transactions"}async get(){return await this.client.request("get",this.endpoint)}async getTransaction(t){const s=`${this.endpoint}/${t}`;return await this.client.request("get",s)}async doCrossCurrency(t){const s=`${this.endpoint}/cross-currency`;return await this.client.request("post",s,t)}async doP2P(t){const s=`${this.endpoint}/p2p`;return await this.client.request("post",s,t)}async getFXConfig(t,s,e){const i=`${this.endpoint}/sepa/config`;return await this.client.request("post",i,{originalCurrencyId:t,finalCurrencyId:s,amount:e})}async generatePdfReceipt(t){const s=`${this.endpoint}/${t}/receipt`;return await this.client.request("get",s)}}var g=(t=>(t.NOT_VERIFIED="NOT_VERIFIED",t.VERIFICATION_STARTED="VERIFICATION_STARTED",t.VERIFICATION_PENDING="VERIFICATION_PENDING",t.VERIFICATION_FAILED="VERIFICATION_FAILED",t.VERIFIED="VERIFIED",t))(g||{});class d{constructor(t){this.client=t,this.endpoint="/users"}async getInvitedStatus(){const t=await this.client.request("get",`${this.endpoint}/me/check-if-invited`);if(null===t.data||void 0===t.data)throw new Error(`Invalid response for invited status: ${t.status} ${t.statusText}`);if("boolean"==typeof t.data)return t.data;if("string"==typeof t.data){const s=t.data.trim().toLowerCase();if("true"===s)return!0;if("false"===s)return!1}throw new Error(`Invalid invited status received: "${t.data}". Expected boolean or "true"/"false" string.`)}async updateKycInfo(t){return this.client.request("patch",`${this.endpoint}/me/kyc-info`,t)}async getKycInfo(){return this.client.request("get",`${this.endpoint}/me/kyc-info`)}async verifyKyc(){const t=`${this.endpoint}/me/check-kyc-status`,s=await this.client.request("get",t);if(null===s.data||void 0===s.data)throw new Error(`Invalid response for KYC status: ${s.status} ${s.statusText}`);const e="string"==typeof s.data?s.data.trim():String(s.data).trim(),i=Object.values(g);if(i.includes(e))return e;throw new Error(`Invalid KYC status received: "${e}". Expected one of: ${i.join(", ")}`)}}class ${constructor(t){this.client=t,this.endpoint="/veriff/sessions"}async createSession(t){return await this.client.request("post",this.endpoint,{userId:t})}}class p{constructor(t){this.client=t,this.endpoint="/offers"}async createOffer(t){return await this.client.request("post",this.endpoint,{...t})}async getOffers(){return await this.client.request("get",this.endpoint)}async getMyOffers(){const t=`${this.endpoint}/me`;return await this.client.request("get",t)}async getOffer(t){const s=`${this.endpoint}/${t}`;return await this.client.request("get",s)}}class f{constructor(t){this.client=t,this.endpoint="/payment-methods"}async getPaymentMethods(){return await this.client.request("get",this.endpoint)}async getPaymentMethodsByCurrency(t){const s=`${this.endpoint}/currency/${t}`;return await this.client.request("get",s)}}class m{constructor(t){this.client=t,this.endpoint="/payments"}async getPaymentByTransactionId(t){const s=`${this.endpoint}?transaction_id=${t}`;return await this.client.request("get",s)}}class C{constructor(t){this.client=t,this.endpoint="/api/plaid/"}async createPaymentInitiationLinkToken(t){const s=this.endpoint+"create_link_token";return await this.client.request("post",s,{payment_id:t})}async createPaymentInitiation(t){const s=this.endpoint+"payment_initiation/payment/create";return await this.client.request("post",s,{amount:t})}}class k{constructor({baseUrl:g,token:k}){this.unauthorizedListeners=[],this.baseUrl=g,this.token=k,this.auth=new s(this),this.accounts=new t(this),this.beneficiaries=new e(this),this.commissions=new i(this),this.currencies=new c(this),this.currentCommision=new n(this),this.crossCurrencyTransferType=new a(this),this.crossCurrencyTransferLimits=new r(this),this.fxRates=new h(this),this.ibans=new o(this),this.invitationCodes=new u(this),this.liquidityPools=new y(this),this.money=l,this.paymentMethods=new f(this),this.payments=new m(this),this.transactions=new w(this),this.users=new d(this),this.offers=new p(this),this.plaid=new C(this),this.veriff=new $(this),this.setupInterceptors()}static init(t){return k.instance?(t?.token&&(k.instance.token=t.token),t?.baseUrl&&(k.instance.baseUrl=t.baseUrl),k.instance):(k.instance=new k(t),k.instance)}setupInterceptors(){}async request(t,s,e={},i={}){const n=`${this.baseUrl}${s}`,a={...i,method:t.toUpperCase(),headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.token}`,...i.headers}};"GET"!==t.toUpperCase()&&e&&Object.keys(e).length>0&&(a.body=JSON.stringify(e));const r=await fetch(n,a);if(401===r.status&&this.emit401Event(n),!r.ok)throw new Error(`HTTP ${r.status}: ${r.statusText}`);return await async function(t){let s;try{const e=await t.text();if(""===e)s=null;else if(""===e.trim())s=null;else try{s=JSON.parse(e)}catch(t){s=e}}catch(t){s=null}return{data:s,status:t.status,statusText:t.statusText,headers:t.headers}}(r)}setToken(t){this.token=t}getToken(){return this.token}onUnauthorized(t){this.unauthorizedListeners.push(t)}offUnauthorized(t){const s=this.unauthorizedListeners.indexOf(t);s>-1&&this.unauthorizedListeners.splice(s,1)}emit401Event(t){for(const s of this.unauthorizedListeners)s(t)}}export{g as KycVerified,l as Money,k as default};
|
package/dist/types.d.ts
CHANGED
|
@@ -125,6 +125,16 @@ declare class FxRate {
|
|
|
125
125
|
getFxSpreadHistory(currencyFrom: number, currencyTo: number, limit?: number): Promise<ApiResponse>;
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
+
interface IbanLookupResult {
|
|
129
|
+
iban: string;
|
|
130
|
+
beneficiary: string;
|
|
131
|
+
}
|
|
132
|
+
declare class Ibans {
|
|
133
|
+
private client;
|
|
134
|
+
constructor(client: ApiClient);
|
|
135
|
+
lookup(iban: string): Promise<ApiResponse<IbanLookupResult>>;
|
|
136
|
+
}
|
|
137
|
+
|
|
128
138
|
declare class InvitationCodes {
|
|
129
139
|
private readonly client;
|
|
130
140
|
private endpoint;
|
|
@@ -201,6 +211,7 @@ declare class Transactions {
|
|
|
201
211
|
|
|
202
212
|
declare enum KycVerified {
|
|
203
213
|
NOT_VERIFIED = "NOT_VERIFIED",
|
|
214
|
+
VERIFICATION_STARTED = "VERIFICATION_STARTED",
|
|
204
215
|
VERIFICATION_PENDING = "VERIFICATION_PENDING",
|
|
205
216
|
VERIFICATION_FAILED = "VERIFICATION_FAILED",
|
|
206
217
|
VERIFIED = "VERIFIED"
|
|
@@ -210,8 +221,14 @@ declare class Users {
|
|
|
210
221
|
private endpoint;
|
|
211
222
|
constructor(client: ApiClient);
|
|
212
223
|
getInvitedStatus(): Promise<boolean>;
|
|
213
|
-
|
|
214
|
-
|
|
224
|
+
updateKycInfo(data: {
|
|
225
|
+
occupation_id?: number;
|
|
226
|
+
occupation_description?: string;
|
|
227
|
+
annual_income?: number;
|
|
228
|
+
income_currency_id?: number;
|
|
229
|
+
is_dependent?: boolean;
|
|
230
|
+
}): Promise<ApiResponse>;
|
|
231
|
+
getKycInfo(): Promise<ApiResponse>;
|
|
215
232
|
verifyKyc(): Promise<KycVerified>;
|
|
216
233
|
}
|
|
217
234
|
|
|
@@ -285,6 +302,7 @@ declare class ApiClient {
|
|
|
285
302
|
crossCurrencyTransferLimits: CrossCurrencyTransferLimits;
|
|
286
303
|
currentCommision: CurrentCommision;
|
|
287
304
|
fxRates: FxRate;
|
|
305
|
+
ibans: Ibans;
|
|
288
306
|
invitationCodes: InvitationCodes;
|
|
289
307
|
liquidityPools: LiquidityPools;
|
|
290
308
|
money: typeof Money;
|