monime-package 1.1.2 → 1.1.4
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/README.md +295 -232
- package/dist/index.d.mts +362 -369
- package/dist/index.d.ts +362 -369
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +6 -6
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var We=Object.create;var T=Object.defineProperty;var ze=Object.getOwnPropertyDescriptor;var Le=Object.getOwnPropertyNames;var Ke=Object.getPrototypeOf,qe=Object.prototype.hasOwnProperty;var Ne=(r,e)=>{for(var s in e)T(r,s,{get:e[s],enumerable:!0})},D=(r,e,s,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Le(e))!qe.call(r,n)&&n!==s&&T(r,n,{get:()=>e[n],enumerable:!(o=ze(e,n))||o.enumerable});return r};var p=(r,e,s)=>(s=r!=null?We(Ke(r)):{},D(e||!r||!r.__esModule?T(s,"default",{value:r,enumerable:!0}):s,r)),je=r=>D(T({},"__esModule",{value:!0}),r);var er={};Ne(er,{MonimeClient:()=>R,createClient:()=>_e});module.exports=je(er);var B=require("crypto"),l=p(require("axios")),He=(0,B.randomBytes)(20).toString("hex"),k="https://api.monime.io/v1/checkout-sessions";async function U(r,e,s,o,n,t,i,c,u,y){let{monimeSpaceId:E,accessToken:C,monimeVersion:S}=r,Ue={name:e,description:i,cancelUrl:t,successUrl:n,callbackState:null,reference:null,financialAccountId:c,lineItems:[{type:"custom",name:e,price:{currency:"SLE",value:s},quantity:o,reference:null,description:i,images:y}],paymentOptions:{card:{disable:!1},bank:{disable:!1,enabledProviders:["slb001","slb004","slb007"]},momo:{disable:!1,enabledProviders:["m17","m18"]},wallet:{disable:!1,enabledProviders:["dw001"]}},brandingOptions:{primaryColor:u},metadata:{}};try{return{success:!0,data:(await l.default.post(k,Ue,{headers:{"Monime-Space-Id":E,Authorization:`Bearer ${C}`,"Content-Type":"application/json","Idempotency-Key":He,...S?{"Monime-Version":S}:{}}})).data.result}}catch(G){return l.default.isAxiosError(G)?{error:G,success:!1}:{error:new Error("unknown error"),success:!1}}}async function W(r){let{accessToken:e,monimeSpaceId:s,monimeVersion:o}=r;try{let t=(await l.default.get(k,{headers:{"Monime-Space-Id":s,Authorization:`Bearer ${e}`,...o?{"Monime-Version":o}:{}}})).data;return{success:!0,data:{result:t.result,pagination:t.pagination??{next:null}}}}catch(n){return l.default.isAxiosError(n)?{error:n,success:!1}:{error:new Error("unknown error"),success:!1}}}async function z(r,e){let{accessToken:s,monimeSpaceId:o,monimeVersion:n}=r;try{return{success:!0,data:(await l.default.get(`${k}/${e}`,{headers:{"Monime-Space-Id":o,Authorization:`Bearer ${s}`,...n?{"Monime-Version":n}:{}}})).data.result}}catch(t){return l.default.isAxiosError(t)?{error:t,success:!1}:{error:new Error("unknown error"),success:!1}}}async function L(r,e){let{accessToken:s,monimeSpaceId:o,monimeVersion:n}=r;try{return await l.default.delete(`${k}/${e}`,{headers:{"Monime-Space-Id":o,Authorization:`Bearer ${s}`,...n?{"Monime-Version":n}:{}}}),{success:!0}}catch(t){return l.default.isAxiosError(t)?{error:t,success:!1}:{error:new Error("unknown error"),success:!1}}}function K(r){return{create:(e,s,o,n,t,i,c,u,y)=>U(r,e,s,o,n,t,i,c,u,y),get:()=>W(r),getOne:e=>z(r,e),delete:e=>L(r,e)}}var q=require("crypto"),h=p(require("axios")),M="https://api.monime.io/v1/financial-accounts",Je=(0,q.randomBytes)(20).toString("hex");async function N(r,e,s){if(r.trim()==="")return{success:!1,error:new Error("accountName is required")};let o={name:r,currency:e,description:"",metadata:{}},{accessToken:n,monimeSpaceId:t,monimeVersion:i}=s;try{return{success:!0,data:(await h.default.post(M,o,{headers:{"Idempotency-Key":`${Je}`,"Monime-Space-Id":`${t}`,Authorization:`Bearer ${n}`,"Content-Type":"application/json",...i?{"Monime-Version":i}:{}}})).data.result}}catch(c){return h.default.isAxiosError(c)?{error:c,success:!1}:{error:new Error("unknown error"),success:!1}}}async function j(r,e){if(r.trim()==="")return{success:!1,error:new Error("financialAccountId is required")};let{monimeSpaceId:s,accessToken:o,monimeVersion:n}=e;try{return{success:!0,data:(await h.default.get(`${M}/${r}`,{headers:{"Monime-Space-Id":`${s}`,Authorization:`Bearer ${o}`,...n?{"Monime-Version":n}:{}}})).data.result}}catch(t){return h.default.isAxiosError(t)?{error:t,success:!1}:{error:new Error("unknown error"),success:!1}}}async function H(r){let{monimeSpaceId:e,accessToken:s,monimeVersion:o}=r;try{let t=(await h.default.get(M,{headers:{"Monime-Space-Id":`${e}`,Authorization:`Bearer ${s}`,...o?{"Monime-Version":o}:{}}})).data;return{success:!0,data:{result:t.result,pagination:t.pagination??{next:null}}}}catch(n){return h.default.isAxiosError(n)?{error:n,success:!1}:{error:new Error("unknown error"),success:!1}}}function J(r){return{create:(e,s)=>N(e,s,r),get:e=>j(e,r),getAll:()=>H(r)}}var w=p(require("axios")),Q="https://api.monime.io/v1/financial-transactions";async function X(r){let{monimeSpaceId:e,accessToken:s,monimeVersion:o}=r;try{let t=(await w.default.get(Q,{headers:{Authorization:`Bearer ${s}`,"Monime-Space-Id":`${e}`,...o?{"Monime-Version":o}:{}}})).data;return{success:!0,data:{result:t.result,pagination:t.pagination??{next:null}}}}catch(n){return w.default.isAxiosError(n)?{error:n,success:!1}:{error:new Error("unknown error"),success:!1}}}async function Y(r,e){let{accessToken:s,monimeSpaceId:o,monimeVersion:n}=r;if(e.trim()==="")return{error:new Error("transactionId must not be empty"),success:!1};try{return{success:!0,data:(await w.default.get(`${Q}/${e}`,{headers:{Authorization:`Bearer ${s}`,"Monime-Space-Id":`${o}`,...n?{"Monime-Version":n}:{}}})).data.result}}catch(t){return w.default.isAxiosError(t)?{error:t,success:!1}:{error:new Error("unknown error"),success:!1}}}function Z(r){return{get:e=>Y(r,e),getAll:()=>X(r)}}var _=require("crypto"),g=p(require("axios")),I="https://api.monime.io/v1/internal-transfers",Qe=(0,_.randomBytes)(20).toString("hex");async function ee(r,e,s,o){if(o<=0)return{success:!1,error:new Error("amount must be larger that zero")};if(r.trim()===""||e.trim()==="")return{success:!1,error:new Error("sourceAccount or destinationAccount is missing")};let n={amount:{currency:"SLE",value:o},sourceFinancialAccount:{id:r},destinationFinancialAccount:{id:e},metadata:{}},{accessToken:t,monimeSpaceId:i,monimeVersion:c}=s;try{return{success:!0,data:(await g.default.post(I,n,{headers:{"Idempotency-Key":`${Qe}`,"Monime-Space-Id":`${i}`,Authorization:`Bearer ${t}`,"Content-Type":"application/json",...c?{"Monime-Version":c}:{}}})).data.result}}catch(u){return g.default.isAxiosError(u)?{error:u,success:!1}:{error:new Error("unkknown error"),success:!1}}}async function re(r){let{monimeSpaceId:e,accessToken:s,monimeVersion:o}=r;try{let t=(await g.default.get(I,{headers:{"Monime-Space-Id":`${e}`,Authorization:`Bearer ${s}`,...o?{"Monime-Version":o}:{}}})).data;return{success:!0,data:{result:t.result,pagination:t.pagination??{next:null}}}}catch(n){return g.default.isAxiosError(n)?{success:!1,error:n}:{error:new Error("unkknown error"),success:!1}}}async function ne(r,e){let{accessToken:s,monimeSpaceId:o,monimeVersion:n}=r;try{return{success:!0,data:(await g.default.get(`${I}/${e}`,{headers:{"Monime-Space-Id":`${o}`,Authorization:`Bearer ${s}`,...n?{"Monime-Version":n}:{}}})).data.result}}catch(t){return g.default.isAxiosError(t)?{success:!1,error:t}:{error:new Error("unkknown error"),success:!1}}}async function te(r,e){let{monimeSpaceId:s,accessToken:o,monimeVersion:n}=r;try{return await g.default.delete(`${I}/${e}`,{headers:{"Monime-Space-Id":`${s}`,Authorization:`Bearer ${o}`,...n?{"Monime-Version":n}:{}}}),{success:!0}}catch(t){return g.default.isAxiosError(t)?{success:!1,error:t}:{success:!1,error:new Error("unknown error")}}}function se(r){return{create:(e,s,o)=>ee(e,s,r,o),get:e=>ne(r,e),getAll:()=>re(r),delete:e=>te(r,e)}}var oe=require("crypto"),A=p(require("axios")),v="https://api.monime.io/v1/payments";async function ie(r,e){if(!r)return{success:!1,error:new Error("paymentId is required")};let{monimeSpaceId:s,accessToken:o,monimeVersion:n}=e;try{return{success:!0,data:(await A.default.get(`${v}/${r}`,{headers:{"Monime-Space-Id":s,Authorization:`Bearer ${o}`,...n?{"Monime-Version":n}:{}}})).data.result}}catch(t){return A.default.isAxiosError(t)?{success:!1,error:t}:{success:!1,error:new Error("Unknown error")}}}async function ae(r,e){let{monimeSpaceId:s,accessToken:o,monimeVersion:n}=r;try{let i=(await A.default.get(v,{headers:{"Monime-Space-Id":s,Authorization:`Bearer ${o}`,...n?{"Monime-Version":n}:{}},params:e})).data;return{success:!0,data:{result:i.result,pagination:i.pagination??{next:null}}}}catch(t){return A.default.isAxiosError(t)?{success:!1,error:t}:{success:!1,error:new Error("Unknown error")}}}async function ce(r,e,s){if(!r)return{success:!1,error:new Error("paymentId is required")};let{monimeSpaceId:o,accessToken:n,monimeVersion:t}=s,i=(0,oe.randomBytes)(20).toString("hex");try{return{success:!0,data:(await A.default.patch(`${v}/${r}`,e,{headers:{"Idempotency-Key":i,"Monime-Space-Id":o,Authorization:`Bearer ${n}`,"Content-Type":"application/json",...t?{"Monime-Version":t}:{}}})).data.result}}catch(c){return A.default.isAxiosError(c)?{success:!1,error:c}:{success:!1,error:new Error("Unknown error")}}}function ue(r){return{get:e=>ie(e,r),getAll:e=>ae(r,e),patch:(e,s)=>ce(e,s,r)}}var pe=require("crypto"),f=p(require("axios")),me=(0,pe.randomBytes)(20).toString("hex"),x="https://api.monime.io/v1/payment-codes";async function le(r,e,s,o,n,t){let i=null;if(s!==""&&(i=s),r.trim()===""||o.trim()===""||n.trim()==="")return{success:!1,error:new Error("paymentName, name, or phoneNumber is missing")};if(e<=0)return{success:!1,error:new Error("amonut number be greater than zero")};let{accessToken:c,monimeSpaceId:u,monimeVersion:y}=t,E={name:`${r}`,mode:"recurrent",enable:!0,amount:{currency:"SLE",value:e*100},duration:"1h30m",customer:{name:`${o}`},reference:"",authorizedPhoneNumber:n,recurrentPaymentTarget:{expectedPaymentCount:1,expectedPaymentTotal:{currency:"SLE",value:e*100}},financialAccountId:i,metadata:{}};try{return{success:!0,data:(await f.default.post(x,E,{headers:{"Idempotency-Key":`${me}`,"Monime-Space-Id":`${u}`,Authorization:`Bearer ${c}`,"Content-Type":"application/json",...y?{"Monime-Version":y}:{}}})).data.result}}catch(C){return f.default.isAxiosError(C)?{error:C.response?.data,success:!1}:{error:new Error("unknown error"),success:!1}}}async function ge(r,e){let{accessToken:s,monimeSpaceId:o,monimeVersion:n}=e;if(r.trim()==="")return{success:!1,error:new Error("paymentCodeId is required")};try{return await f.default.delete(`${x}/${r}`,{headers:{"Idempotency-Key":`${me}`,"Monime-Space-Id":`${o}`,Authorization:`Bearer ${s}`,"Content-Type":"application/json",...n?{"Monime-Version":n}:{}}}),{success:!0}}catch(t){return f.default.isAxiosError(t)?{error:t,success:!1}:{error:new Error("unknown error"),success:!1}}}async function fe(r){let{monimeSpaceId:e,accessToken:s,monimeVersion:o}=r;try{let t=(await f.default.get(x,{headers:{"Monime-Space-Id":`${e}`,Authorization:`Bearer ${s}`,...o?{"Monime-Version":o}:{}}})).data;return{success:!0,data:{result:t.result,pagination:t.pagination??{next:null}}}}catch(n){return f.default.isAxiosError(n)?{error:n,success:!1}:{error:new Error("unknown error"),success:!1}}}async function de(r,e){let{monimeSpaceId:s,accessToken:o,monimeVersion:n}=e;try{return{success:!0,data:(await f.default.get(`${x}/${r}`,{headers:{"Monime-Space-Id":`${s}`,Authorization:`Bearer ${o}`,...n?{"Monime-Version":n}:{}}})).data.result}}catch(t){return f.default.isAxiosError(t)?{error:t,success:!1}:{error:new Error("unknown error"),success:!1}}}function ye(r){return{create:(e,s,o,n,t)=>le(e,s,o,n,t,r),delete:e=>ge(e,r),getAll:()=>fe(r),get:e=>de(e,r)}}var he=require("crypto"),d=p(require("axios")),O="https://api.monime.io/v1/payouts",Xe=(0,he.randomBytes)(20).toString("hex");async function Ae(r,e,s,o){if(e.trim()==="")return{success:!1,error:new Error("sourceAccount cannot be empty")};if(r<=0)return{error:new Error("amount must be greater than 0"),success:!1};let{accessToken:n,monimeSpaceId:t,monimeVersion:i}=o,c={amount:{currency:"SLE",value:r},source:{financialAccountId:e},destination:s,metadata:{}};try{return{success:!0,data:(await d.default.post(O,c,{headers:{"Idempotency-Key":`${Xe}`,"Monime-Space-Id":`${t}`,Authorization:`Bearer ${n}`,"Content-Type":"application/json",...i?{"Monime-Version":i}:{}}})).data.result}}catch(u){return d.default.isAxiosError(u)?{success:!1,error:u}:{success:!1,error:new Error("unknown error")}}}async function Ce(r){let{accessToken:e,monimeSpaceId:s,monimeVersion:o}=r;try{let t=(await d.default.get(O,{headers:{"Monime-Space-Id":`${s}`,Authorization:`Bearer ${e}`,...o?{"Monime-Version":o}:{}}})).data;return{success:!0,data:{result:t.result,pagination:t.pagination??{next:null}}}}catch(n){return d.default.isAxiosError(n)?{success:!1,error:n}:{success:!1,error:new Error("unknown error")}}}async function we(r,e){let{accessToken:s,monimeSpaceId:o,monimeVersion:n}=e;try{return{success:!0,data:(await d.default.get(`${O}/${r}`,{headers:{"Monime-Space-Id":`${o}`,Authorization:`Bearer ${s}`,...n?{"Monime-Version":n}:{}}})).data.result}}catch(t){return d.default.isAxiosError(t)?{success:!1,error:t}:{success:!1,error:new Error("unknown error")}}}async function Pe(r,e){let{accessToken:s,monimeSpaceId:o,monimeVersion:n}=e;try{return await d.default.delete(`${O}/${r}`,{headers:{"Monime-Space-Id":`${o}`,Authorization:`Bearer ${s}`,...n?{"Monime-Version":n}:{}}}),{success:!0}}catch(t){return d.default.isAxiosError(t)?{success:!1,error:t}:{success:!1,error:new Error("unknown error")}}}function be(r){return{create:(e,s,o)=>Ae(e,o,s,r),get:()=>Ce(r),getOne:e=>we(e,r),delete:e=>Pe(e,r)}}var $=p(require("axios")),Ye="https://api.monime.io/v1/provider-kyc";async function Re(r,e){let{monimeSpaceId:s,accessToken:o,monimeVersion:n}=e;try{return{success:!0,data:(await $.default.get(`${Ye}/${r}`,{headers:{"Monime-Space-Id":s,Authorization:`Bearer ${o}`,...n?{"Monime-Version":n}:{}}})).data.result}}catch(t){return $.default.isAxiosError(t)?{success:!1,error:t}:{success:!1,error:new Error("Unknown error")}}}function Te(r){return{get:e=>Re(e,r)}}var ke=require("crypto"),P=p(require("axios")),Ie="https://api.monime.io/v1/receipts";async function xe(r,e){let{monimeSpaceId:s,accessToken:o,monimeVersion:n}=e;try{return{success:!0,data:(await P.default.get(`${Ie}/${r}`,{headers:{"Monime-Space-Id":s,Authorization:`Bearer ${o}`,...n?{"Monime-Version":n}:{}}})).data.result}}catch(t){return P.default.isAxiosError(t)?{success:!1,error:t}:{success:!1,error:new Error("Unknown error")}}}async function Oe(r,e,s){let{monimeSpaceId:o,accessToken:n,monimeVersion:t}=s,i=(0,ke.randomBytes)(20).toString("hex");try{return{success:!0,data:(await P.default.post(`${Ie}/${r}/redeem`,e,{headers:{"Idempotency-Key":i,"Monime-Space-Id":o,Authorization:`Bearer ${n}`,"Content-Type":"application/json",...t?{"Monime-Version":t}:{}}})).data.result}}catch(c){return P.default.isAxiosError(c)?{success:!1,error:c}:{success:!1,error:new Error("Unknown error")}}}function Ee(r){return{get:e=>xe(e,r),redeem:(e,s={})=>Oe(e,s,r)}}var Se=require("crypto"),F=p(require("axios")),Ze="https://api.monime.io/v1/ussd-otps";async function Ge(r,e){let{monimeSpaceId:s,accessToken:o,monimeVersion:n}=e,t=(0,Se.randomBytes)(20).toString("hex");try{return{success:!0,data:(await F.default.post(Ze,r,{headers:{"Idempotency-Key":t,"Monime-Space-Id":s,Authorization:`Bearer ${o}`,"Content-Type":"application/json",...n?{"Monime-Version":n}:{}}})).data.result}}catch(i){return F.default.isAxiosError(i)?{success:!1,error:i}:{success:!1,error:new Error("Unknown error")}}}function Me(r){return{create:e=>Ge(e,r)}}var V=require("crypto"),m=p(require("axios")),b="https://api.monime.io/v1/webhooks";async function ve(r,e){let{monimeSpaceId:s,accessToken:o,monimeVersion:n}=e,t=(0,V.randomBytes)(20).toString("hex");try{return{success:!0,data:(await m.default.post(b,r,{headers:{"Idempotency-Key":t,"Monime-Space-Id":s,Authorization:`Bearer ${o}`,"Content-Type":"application/json",...n?{"Monime-Version":n}:{}}})).data.result}}catch(i){return m.default.isAxiosError(i)?{success:!1,error:i}:{success:!1,error:new Error("Unknown error")}}}async function $e(r,e){let{monimeSpaceId:s,accessToken:o,monimeVersion:n}=e;try{return{success:!0,data:(await m.default.get(`${b}/${r}`,{headers:{"Monime-Space-Id":s,Authorization:`Bearer ${o}`,...n?{"Monime-Version":n}:{}}})).data.result}}catch(t){return m.default.isAxiosError(t)?{success:!1,error:t}:{success:!1,error:new Error("Unknown error")}}}async function Fe(r){let{monimeSpaceId:e,accessToken:s,monimeVersion:o}=r;try{let t=(await m.default.get(b,{headers:{"Monime-Space-Id":e,Authorization:`Bearer ${s}`,...o?{"Monime-Version":o}:{}}})).data;return{success:!0,data:{result:t.result,pagination:t.pagination??{next:null}}}}catch(n){return m.default.isAxiosError(n)?{success:!1,error:n}:{success:!1,error:new Error("Unknown error")}}}async function Ve(r,e,s){let{monimeSpaceId:o,accessToken:n,monimeVersion:t}=s,i=(0,V.randomBytes)(20).toString("hex");try{return{success:!0,data:(await m.default.patch(`${b}/${r}`,e,{headers:{"Idempotency-Key":i,"Monime-Space-Id":o,Authorization:`Bearer ${n}`,"Content-Type":"application/json",...t?{"Monime-Version":t}:{}}})).data.result}}catch(c){return m.default.isAxiosError(c)?{success:!1,error:c}:{success:!1,error:new Error("Unknown error")}}}async function De(r,e){let{monimeSpaceId:s,accessToken:o,monimeVersion:n}=e;try{return await m.default.delete(`${b}/${r}`,{headers:{"Monime-Space-Id":s,Authorization:`Bearer ${o}`,...n?{"Monime-Version":n}:{}}}),{success:!0}}catch(t){return m.default.isAxiosError(t)?{success:!1,error:t}:{success:!1,error:new Error("Unknown error")}}}function Be(r){return{create:e=>ve(e,r),get:e=>$e(e,r),getAll:()=>Fe(r),update:(e,s)=>Ve(e,s,r),delete:e=>De(e,r)}}var R=class{monimeSpaceId;accessToken;monimeVersion;financialAccount;internalTransfer;paymentCode;payment;payout;providerKyc;receipt;ussdOtp;webhook;financialTransaction;checkoutSession;constructor(e){this.accessToken=e.accessToken,this.monimeSpaceId=e.monimeSpaceId,this.monimeVersion=e.monimeVersion;let s={monimeSpaceId:this.monimeSpaceId,accessToken:this.accessToken,monimeVersion:this.monimeVersion};this.financialAccount=J(s),this.internalTransfer=se(s),this.paymentCode=ye(s),this.payment=ue(s),this.payout=be(s),this.providerKyc=Te(s),this.receipt=Ee(s),this.ussdOtp=Me(s),this.webhook=Be(s),this.financialTransaction=Z(s),this.checkoutSession=K(s)}};function _e(r){return new R(r)}0&&(module.exports={MonimeClient,createClient});
|
|
1
|
+
"use strict";var $=Object.defineProperty;var ae=Object.getOwnPropertyDescriptor;var oe=Object.getOwnPropertyNames;var ce=Object.prototype.hasOwnProperty;var pe=(a,e)=>{for(var t in e)$(a,t,{get:e[t],enumerable:!0})},me=(a,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of oe(e))!ce.call(a,s)&&s!==t&&$(a,s,{get:()=>e[s],enumerable:!(n=ae(e,s))||n.enumerable});return a};var ue=a=>me($({},"__esModule",{value:!0}),a);var de={};pe(de,{MonimeAuthenticationError:()=>R,MonimeClient:()=>P,MonimeError:()=>d,MonimeValidationError:()=>U,createClient:()=>ge});module.exports=ue(de);var d=class a extends Error{status;requestId;details;constructor(e,t,n,s){super(e),this.name="MonimeError",t!==void 0&&(this.status=t),n!==void 0&&(this.requestId=n),this.details=s,Error.captureStackTrace&&Error.captureStackTrace(this,a)}},R=class extends d{constructor(e="Invalid or missing access token"){super(e,401),this.name="MonimeAuthenticationError"}},U=class extends d{constructor(e,t){super(e,400,void 0,t),this.name="MonimeValidationError"}};var o=class{baseUrl="https://api.monime.io/v1";config;constructor(e){this.config=e}async getHeaders(e){let t=new Headers({"Content-Type":"application/json",Authorization:`Bearer ${this.config.accessToken}`,"Monime-Space-Id":this.config.monimeSpaceId});return this.config.monimeVersion&&t.set("Monime-Version",this.config.monimeVersion),e&&t.set("Idempotency-Key",e),t}async request(e){let{path:t,method:n,body:s,idempotencyKey:c}=e,g=`${this.baseUrl}${t}`;try{let p=await fetch(g,{method:n,headers:await this.getHeaders(c),body:s?JSON.stringify(s):null}),f=p.headers?.get("x-request-id")||void 0;if(!p.ok){let l=`Request failed with status ${p.status}`,w;try{let v=await p.json();l=v.message||l,w=v}catch{}throw p.status===401?new R(l):new d(l,p.status,f,w)}if(p.status===204)return{success:!0};let y=await p.json();return{success:!0,data:y.result!==void 0?y.result:y}}catch(p){return p instanceof d?{success:!1,error:p}:{success:!1,error:p instanceof Error?p:new Error("Unknown error occurred")}}}};var u=require("zod"),K=u.z.object({name:u.z.string().min(1,"Name is required"),amount:u.z.number().gt(0,"Amount must be greater than zero"),quantity:u.z.number().int().gt(0,"Quantity must be greater than zero"),successUrl:u.z.string().url("Invalid success URL"),cancelUrl:u.z.string().url("Invalid cancel URL"),description:u.z.string().optional(),financialAccountId:u.z.string().optional(),primaryColor:u.z.string().optional(),images:u.z.array(u.z.string()).optional()});var H=require("crypto"),T=class extends o{path="/checkout-sessions";async create(e,t,n,s,c,g={}){let{description:p,financialAccountId:f,primaryColor:y,images:M}=g,l=K.safeParse({name:e,amount:t,quantity:n,successUrl:s,cancelUrl:c,description:p,financialAccountId:f,primaryColor:y,images:M});if(!l.success)return{success:!1,error:new Error(l.error.message)};let w={name:e,description:p,cancelUrl:c,successUrl:s,callbackState:null,reference:null,financialAccountId:f,lineItems:[{type:"custom",name:e,price:{currency:"SLE",value:t},quantity:n,reference:null,description:p,images:M}],paymentOptions:{card:{disable:!1},bank:{disable:!1,enabledProviders:["slb001","slb004","slb007"]},momo:{disable:!1,enabledProviders:["m17","m18"]},wallet:{disable:!1,enabledProviders:["dw001"]}},brandingOptions:{primaryColor:y},metadata:{}},v=(0,H.randomBytes)(20).toString("hex");return this.request({method:"POST",path:this.path,body:w,idempotencyKey:v})}async list(){return this.request({method:"GET",path:this.path})}async retrieve(e){return this.request({method:"GET",path:`${this.path}/${e}`})}async delete(e){return this.request({method:"DELETE",path:`${this.path}/${e}`})}};var x=require("zod"),z=x.z.object({accountName:x.z.string().min(1,"Account name is required"),currency:x.z.enum(["USD","SLE"],{message:"Currency must be either USD or SLE"})});var V=require("crypto"),O=class extends o{path="/financial-accounts";async create(e,t){let n=z.safeParse({accountName:e,currency:t});if(!n.success)return{success:!1,error:new Error(n.error.message)};let s={name:e,currency:t,description:"",metadata:{}},c=(0,V.randomBytes)(20).toString("hex");return this.request({method:"POST",path:this.path,body:s,idempotencyKey:c})}async retrieve(e){return!e||e.trim()===""?{success:!1,error:new Error("financialAccountId is required")}:this.request({method:"GET",path:`${this.path}/${e}`})}async list(){return this.request({method:"GET",path:this.path})}};var C=class extends o{path="/banks";async retrieve(e){return this.request({method:"GET",path:`${this.path}/${e}`})}async list(){return this.request({method:"GET",path:this.path})}};var k=class extends o{path="/momos";async retrieve(e){return this.request({method:"GET",path:`${this.path}/${e}`})}async list(){return this.request({method:"GET",path:this.path})}};var A=class extends o{path="/financial-transactions";async list(){return this.request({method:"GET",path:this.path})}async retrieve(e){return!e||e.trim()===""?{error:new Error("transactionId is required"),success:!1}:this.request({method:"GET",path:`${this.path}/${e}`})}};var b=require("zod"),j=b.z.object({sourceAccount:b.z.string().min(1,"Source account is required"),destinationAccount:b.z.string().min(1,"Destination account is required"),amount:b.z.number().gt(0,"Amount must be greater than zero")});var _=require("crypto"),I=class extends o{path="/internal-transfers";async create(e,t,n){let s=j.safeParse({sourceAccount:e,destinationAccount:t,amount:n});if(!s.success)return{success:!1,error:new Error(s.error.message)};let c={amount:{currency:"SLE",value:n},sourceFinancialAccount:{id:e},destinationFinancialAccount:{id:t},metadata:{}},g=(0,_.randomBytes)(20).toString("hex");return this.request({method:"POST",path:this.path,body:c,idempotencyKey:g})}async list(){return this.request({method:"GET",path:this.path})}async retrieve(e){return this.request({method:"GET",path:`${this.path}/${e}`})}async delete(e){return this.request({method:"DELETE",path:`${this.path}/${e}`})}};var S=require("zod"),J=S.z.record(S.z.string(),S.z.unknown());var Q=require("crypto"),E=class extends o{path="/payments";async retrieve(e){return e?this.request({method:"GET",path:`${this.path}/${e}`}):{success:!1,error:new Error("paymentId is required")}}async list(){return this.request({method:"GET",path:this.path})}async update(e,t){if(!e)return{success:!1,error:new Error("paymentId is required")};let n=J.safeParse(t);if(!n.success)return{success:!1,error:new Error(n.error.message)};let s=(0,Q.randomBytes)(20).toString("hex");return this.request({method:"PATCH",path:`${this.path}/${e}`,body:t,idempotencyKey:s})}};var h=require("zod"),X=h.z.object({paymentName:h.z.string().min(1,"Payment name is required"),amount:h.z.number().gt(0,"Amount must be greater than zero"),financialAccountId:h.z.string().optional().nullable(),name:h.z.string().min(1,"Name is required"),phoneNumber:h.z.string().min(1,"Phone number is required")});var Y=require("crypto"),G=class extends o{path="/payment-codes";async create(e,t,n,s,c){let g=X.safeParse({paymentName:e,amount:t,financialAccountId:n,name:s,phoneNumber:c});if(!g.success)return{success:!1,error:new Error(g.error.message)};let p={name:e,mode:"recurrent",enable:!0,amount:{currency:"SLE",value:t*100},duration:"1h30m",customer:{name:s},reference:"",authorizedPhoneNumber:c,recurrentPaymentTarget:{expectedPaymentCount:1,expectedPaymentTotal:{currency:"SLE",value:t*100}},financialAccountId:n||void 0,metadata:{}},f=(0,Y.randomBytes)(20).toString("hex");return this.request({method:"POST",path:this.path,body:p,idempotencyKey:f})}async retrieve(e){return this.request({method:"GET",path:`${this.path}/${e}`})}async list(){return this.request({method:"GET",path:this.path})}async delete(e){return!e||e.trim()===""?{success:!1,error:new Error("paymentCodeId is required")}:this.request({method:"DELETE",path:`${this.path}/${e}`})}};var m=require("zod"),Z=m.z.object({amount:m.z.number().gt(0,"Amount must be greater than 0"),sourceAccount:m.z.string().min(1,"Source account cannot be empty"),destination:m.z.discriminatedUnion("type",[m.z.object({type:m.z.literal("momo"),providerId:m.z.enum(["m17","m18"]),phoneNumber:m.z.string()}),m.z.object({type:m.z.literal("bank"),providerId:m.z.enum(["b01","b02","b03"]),accountNumber:m.z.string()}),m.z.object({type:m.z.literal("wallet"),providerId:m.z.enum(["w01","w02"]),walletId:m.z.string()})])});var ee=require("crypto"),F=class extends o{path="/payouts";async create(e,t,n){let s=Z.safeParse({amount:e,sourceAccount:t,destination:n});if(!s.success)return{success:!1,error:new Error(s.error.message)};let c={amount:{currency:"SLE",value:e},source:{financialAccountId:t},destination:n,metadata:{}},g=(0,ee.randomBytes)(20).toString("hex");return this.request({method:"POST",path:this.path,body:c,idempotencyKey:g})}async list(){return this.request({method:"GET",path:this.path})}async retrieve(e){return this.request({method:"GET",path:`${this.path}/${e}`})}async delete(e){return this.request({method:"DELETE",path:`${this.path}/${e}`})}};var q=class extends o{path="/provider-kyc";async retrieve(e){return this.request({method:"GET",path:`${this.path}/${e}`})}};var te=require("crypto"),D=class extends o{path="/receipts";async retrieve(e){return this.request({method:"GET",path:`${this.path}/${e}`})}async redeem(e,t){let n=(0,te.randomBytes)(20).toString("hex");return this.request({method:"POST",path:`${this.path}/${e}/redeem`,body:t,idempotencyKey:n})}};var W=require("zod"),re=W.z.object({phoneNumber:W.z.string().min(1,"Phone number is required")});var ne=require("crypto"),L=class extends o{path="/ussd-otps";async create(e){let t=re.safeParse(e);if(!t.success)return{success:!1,error:new Error(t.error.message)};let n=(0,ne.randomBytes)(20).toString("hex");return this.request({method:"POST",path:this.path,body:e,idempotencyKey:n})}};var i=require("zod"),ie=i.z.object({name:i.z.string().min(1,"Name is required"),url:i.z.string().url("Invalid URL"),events:i.z.array(i.z.string()).min(1,"At least one event is required"),enabled:i.z.boolean().optional(),apiRelease:i.z.string().optional(),headers:i.z.record(i.z.string(),i.z.string()).optional(),alertEmails:i.z.array(i.z.string().email()).optional(),verificationMethod:i.z.object({type:i.z.enum(["HS256","ES256"]),secret:i.z.string()}).optional(),metadata:i.z.record(i.z.string(),i.z.unknown()).optional()}),se=i.z.object({name:i.z.string().min(1).optional(),url:i.z.string().url().optional(),events:i.z.array(i.z.string()).min(1).optional(),enabled:i.z.boolean().optional(),headers:i.z.record(i.z.string(),i.z.string()).optional(),alertEmails:i.z.array(i.z.string().email()).optional(),verificationMethod:i.z.object({type:i.z.enum(["HS256","ES256"]),secret:i.z.string()}).optional(),metadata:i.z.record(i.z.string(),i.z.unknown()).optional()});var N=require("crypto"),B=class extends o{path="/webhooks";async create(e){let t=ie.safeParse(e);if(!t.success)return{success:!1,error:new Error(t.error.message)};let n=(0,N.randomBytes)(20).toString("hex");return this.request({method:"POST",path:this.path,body:e,idempotencyKey:n})}async retrieve(e){return this.request({method:"GET",path:`${this.path}/${e}`})}async list(){return this.request({method:"GET",path:this.path})}async update(e,t){let n=se.safeParse(t);if(!n.success)return{success:!1,error:new Error(n.error.message)};let s=(0,N.randomBytes)(20).toString("hex");return this.request({method:"PATCH",path:`${this.path}/${e}`,body:t,idempotencyKey:s})}async delete(e){return this.request({method:"DELETE",path:`${this.path}/${e}`})}};var P=class{financialAccount;internalTransfer;paymentCode;payment;payout;providerKyc;receipt;ussdOtp;webhook;financialTransaction;checkoutSession;financialProvider;constructor(e={}){let t=e.monimeSpaceId||process.env.MONIME_SPACE_ID,n=e.accessToken||process.env.MONIME_ACCESS_TOKEN,s=e.monimeVersion||process.env.MONIME_VERSION;if(!t)throw new Error("monimeSpaceId is required. Pass it in options or set MONIME_SPACE_ID env var.");if(!n)throw new Error("accessToken is required. Pass it in options or set MONIME_ACCESS_TOKEN env var.");let c={monimeSpaceId:t,accessToken:n,monimeVersion:s};this.financialAccount=new O(c),this.internalTransfer=new I(c),this.paymentCode=new G(c),this.payment=new E(c),this.payout=new F(c),this.providerKyc=new q(c),this.receipt=new D(c),this.ussdOtp=new L(c),this.webhook=new B(c),this.financialTransaction=new A(c),this.checkoutSession=new T(c),this.financialProvider={bank:new C(c),momo:new k(c)}}};function ge(a){return new P(a)}0&&(module.exports={MonimeAuthenticationError,MonimeClient,MonimeError,MonimeValidationError,createClient});
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{randomBytes as Se}from"crypto";import g from"axios";var Ge=Se(20).toString("hex"),P="https://api.monime.io/v1/checkout-sessions";async function v(r,e,s,o,t,n,i,u,p,l){let{monimeSpaceId:O,accessToken:C,monimeVersion:E}=r,Ee={name:e,description:i,cancelUrl:n,successUrl:t,callbackState:null,reference:null,financialAccountId:u,lineItems:[{type:"custom",name:e,price:{currency:"SLE",value:s},quantity:o,reference:null,description:i,images:l}],paymentOptions:{card:{disable:!1},bank:{disable:!1,enabledProviders:["slb001","slb004","slb007"]},momo:{disable:!1,enabledProviders:["m17","m18"]},wallet:{disable:!1,enabledProviders:["dw001"]}},brandingOptions:{primaryColor:p},metadata:{}};try{return{success:!0,data:(await g.post(P,Ee,{headers:{"Monime-Space-Id":O,Authorization:`Bearer ${C}`,"Content-Type":"application/json","Idempotency-Key":Ge,...E?{"Monime-Version":E}:{}}})).data.result}}catch(S){return g.isAxiosError(S)?{error:S,success:!1}:{error:new Error("unknown error"),success:!1}}}async function $(r){let{accessToken:e,monimeSpaceId:s,monimeVersion:o}=r;try{let n=(await g.get(P,{headers:{"Monime-Space-Id":s,Authorization:`Bearer ${e}`,...o?{"Monime-Version":o}:{}}})).data;return{success:!0,data:{result:n.result,pagination:n.pagination??{next:null}}}}catch(t){return g.isAxiosError(t)?{error:t,success:!1}:{error:new Error("unknown error"),success:!1}}}async function F(r,e){let{accessToken:s,monimeSpaceId:o,monimeVersion:t}=r;try{return{success:!0,data:(await g.get(`${P}/${e}`,{headers:{"Monime-Space-Id":o,Authorization:`Bearer ${s}`,...t?{"Monime-Version":t}:{}}})).data.result}}catch(n){return g.isAxiosError(n)?{error:n,success:!1}:{error:new Error("unknown error"),success:!1}}}async function V(r,e){let{accessToken:s,monimeSpaceId:o,monimeVersion:t}=r;try{return await g.delete(`${P}/${e}`,{headers:{"Monime-Space-Id":o,Authorization:`Bearer ${s}`,...t?{"Monime-Version":t}:{}}}),{success:!0}}catch(n){return g.isAxiosError(n)?{error:n,success:!1}:{error:new Error("unknown error"),success:!1}}}function D(r){return{create:(e,s,o,t,n,i,u,p,l)=>v(r,e,s,o,t,n,i,u,p,l),get:()=>$(r),getOne:e=>F(r,e),delete:e=>V(r,e)}}import{randomBytes as Me}from"crypto";import h from"axios";var G="https://api.monime.io/v1/financial-accounts",ve=Me(20).toString("hex");async function B(r,e,s){if(r.trim()==="")return{success:!1,error:new Error("accountName is required")};let o={name:r,currency:e,description:"",metadata:{}},{accessToken:t,monimeSpaceId:n,monimeVersion:i}=s;try{return{success:!0,data:(await h.post(G,o,{headers:{"Idempotency-Key":`${ve}`,"Monime-Space-Id":`${n}`,Authorization:`Bearer ${t}`,"Content-Type":"application/json",...i?{"Monime-Version":i}:{}}})).data.result}}catch(u){return h.isAxiosError(u)?{error:u,success:!1}:{error:new Error("unknown error"),success:!1}}}async function U(r,e){if(r.trim()==="")return{success:!1,error:new Error("financialAccountId is required")};let{monimeSpaceId:s,accessToken:o,monimeVersion:t}=e;try{return{success:!0,data:(await h.get(`${G}/${r}`,{headers:{"Monime-Space-Id":`${s}`,Authorization:`Bearer ${o}`,...t?{"Monime-Version":t}:{}}})).data.result}}catch(n){return h.isAxiosError(n)?{error:n,success:!1}:{error:new Error("unknown error"),success:!1}}}async function W(r){let{monimeSpaceId:e,accessToken:s,monimeVersion:o}=r;try{let n=(await h.get(G,{headers:{"Monime-Space-Id":`${e}`,Authorization:`Bearer ${s}`,...o?{"Monime-Version":o}:{}}})).data;return{success:!0,data:{result:n.result,pagination:n.pagination??{next:null}}}}catch(t){return h.isAxiosError(t)?{error:t,success:!1}:{error:new Error("unknown error"),success:!1}}}function z(r){return{create:(e,s)=>B(e,s,r),get:e=>U(e,r),getAll:()=>W(r)}}import b from"axios";var L="https://api.monime.io/v1/financial-transactions";async function K(r){let{monimeSpaceId:e,accessToken:s,monimeVersion:o}=r;try{let n=(await b.get(L,{headers:{Authorization:`Bearer ${s}`,"Monime-Space-Id":`${e}`,...o?{"Monime-Version":o}:{}}})).data;return{success:!0,data:{result:n.result,pagination:n.pagination??{next:null}}}}catch(t){return b.isAxiosError(t)?{error:t,success:!1}:{error:new Error("unknown error"),success:!1}}}async function q(r,e){let{accessToken:s,monimeSpaceId:o,monimeVersion:t}=r;if(e.trim()==="")return{error:new Error("transactionId must not be empty"),success:!1};try{return{success:!0,data:(await b.get(`${L}/${e}`,{headers:{Authorization:`Bearer ${s}`,"Monime-Space-Id":`${o}`,...t?{"Monime-Version":t}:{}}})).data.result}}catch(n){return b.isAxiosError(n)?{error:n,success:!1}:{error:new Error("unknown error"),success:!1}}}function N(r){return{get:e=>q(r,e),getAll:()=>K(r)}}import{randomBytes as $e}from"crypto";import f from"axios";var R="https://api.monime.io/v1/internal-transfers",Fe=$e(20).toString("hex");async function j(r,e,s,o){if(o<=0)return{success:!1,error:new Error("amount must be larger that zero")};if(r.trim()===""||e.trim()==="")return{success:!1,error:new Error("sourceAccount or destinationAccount is missing")};let t={amount:{currency:"SLE",value:o},sourceFinancialAccount:{id:r},destinationFinancialAccount:{id:e},metadata:{}},{accessToken:n,monimeSpaceId:i,monimeVersion:u}=s;try{return{success:!0,data:(await f.post(R,t,{headers:{"Idempotency-Key":`${Fe}`,"Monime-Space-Id":`${i}`,Authorization:`Bearer ${n}`,"Content-Type":"application/json",...u?{"Monime-Version":u}:{}}})).data.result}}catch(p){return f.isAxiosError(p)?{error:p,success:!1}:{error:new Error("unkknown error"),success:!1}}}async function H(r){let{monimeSpaceId:e,accessToken:s,monimeVersion:o}=r;try{let n=(await f.get(R,{headers:{"Monime-Space-Id":`${e}`,Authorization:`Bearer ${s}`,...o?{"Monime-Version":o}:{}}})).data;return{success:!0,data:{result:n.result,pagination:n.pagination??{next:null}}}}catch(t){return f.isAxiosError(t)?{success:!1,error:t}:{error:new Error("unkknown error"),success:!1}}}async function J(r,e){let{accessToken:s,monimeSpaceId:o,monimeVersion:t}=r;try{return{success:!0,data:(await f.get(`${R}/${e}`,{headers:{"Monime-Space-Id":`${o}`,Authorization:`Bearer ${s}`,...t?{"Monime-Version":t}:{}}})).data.result}}catch(n){return f.isAxiosError(n)?{success:!1,error:n}:{error:new Error("unkknown error"),success:!1}}}async function Q(r,e){let{monimeSpaceId:s,accessToken:o,monimeVersion:t}=r;try{return await f.delete(`${R}/${e}`,{headers:{"Monime-Space-Id":`${s}`,Authorization:`Bearer ${o}`,...t?{"Monime-Version":t}:{}}}),{success:!0}}catch(n){return f.isAxiosError(n)?{success:!1,error:n}:{success:!1,error:new Error("unknown error")}}}function X(r){return{create:(e,s,o)=>j(e,s,r,o),get:e=>J(r,e),getAll:()=>H(r),delete:e=>Q(r,e)}}import{randomBytes as Ve}from"crypto";import A from"axios";var M="https://api.monime.io/v1/payments";async function Y(r,e){if(!r)return{success:!1,error:new Error("paymentId is required")};let{monimeSpaceId:s,accessToken:o,monimeVersion:t}=e;try{return{success:!0,data:(await A.get(`${M}/${r}`,{headers:{"Monime-Space-Id":s,Authorization:`Bearer ${o}`,...t?{"Monime-Version":t}:{}}})).data.result}}catch(n){return A.isAxiosError(n)?{success:!1,error:n}:{success:!1,error:new Error("Unknown error")}}}async function Z(r,e){let{monimeSpaceId:s,accessToken:o,monimeVersion:t}=r;try{let i=(await A.get(M,{headers:{"Monime-Space-Id":s,Authorization:`Bearer ${o}`,...t?{"Monime-Version":t}:{}},params:e})).data;return{success:!0,data:{result:i.result,pagination:i.pagination??{next:null}}}}catch(n){return A.isAxiosError(n)?{success:!1,error:n}:{success:!1,error:new Error("Unknown error")}}}async function _(r,e,s){if(!r)return{success:!1,error:new Error("paymentId is required")};let{monimeSpaceId:o,accessToken:t,monimeVersion:n}=s,i=Ve(20).toString("hex");try{return{success:!0,data:(await A.patch(`${M}/${r}`,e,{headers:{"Idempotency-Key":i,"Monime-Space-Id":o,Authorization:`Bearer ${t}`,"Content-Type":"application/json",...n?{"Monime-Version":n}:{}}})).data.result}}catch(u){return A.isAxiosError(u)?{success:!1,error:u}:{success:!1,error:new Error("Unknown error")}}}function ee(r){return{get:e=>Y(e,r),getAll:e=>Z(r,e),patch:(e,s)=>_(e,s,r)}}import{randomBytes as De}from"crypto";import d from"axios";var re=De(20).toString("hex"),T="https://api.monime.io/v1/payment-codes";async function ne(r,e,s,o,t,n){let i=null;if(s!==""&&(i=s),r.trim()===""||o.trim()===""||t.trim()==="")return{success:!1,error:new Error("paymentName, name, or phoneNumber is missing")};if(e<=0)return{success:!1,error:new Error("amonut number be greater than zero")};let{accessToken:u,monimeSpaceId:p,monimeVersion:l}=n,O={name:`${r}`,mode:"recurrent",enable:!0,amount:{currency:"SLE",value:e*100},duration:"1h30m",customer:{name:`${o}`},reference:"",authorizedPhoneNumber:t,recurrentPaymentTarget:{expectedPaymentCount:1,expectedPaymentTotal:{currency:"SLE",value:e*100}},financialAccountId:i,metadata:{}};try{return{success:!0,data:(await d.post(T,O,{headers:{"Idempotency-Key":`${re}`,"Monime-Space-Id":`${p}`,Authorization:`Bearer ${u}`,"Content-Type":"application/json",...l?{"Monime-Version":l}:{}}})).data.result}}catch(C){return d.isAxiosError(C)?{error:C.response?.data,success:!1}:{error:new Error("unknown error"),success:!1}}}async function te(r,e){let{accessToken:s,monimeSpaceId:o,monimeVersion:t}=e;if(r.trim()==="")return{success:!1,error:new Error("paymentCodeId is required")};try{return await d.delete(`${T}/${r}`,{headers:{"Idempotency-Key":`${re}`,"Monime-Space-Id":`${o}`,Authorization:`Bearer ${s}`,"Content-Type":"application/json",...t?{"Monime-Version":t}:{}}}),{success:!0}}catch(n){return d.isAxiosError(n)?{error:n,success:!1}:{error:new Error("unknown error"),success:!1}}}async function se(r){let{monimeSpaceId:e,accessToken:s,monimeVersion:o}=r;try{let n=(await d.get(T,{headers:{"Monime-Space-Id":`${e}`,Authorization:`Bearer ${s}`,...o?{"Monime-Version":o}:{}}})).data;return{success:!0,data:{result:n.result,pagination:n.pagination??{next:null}}}}catch(t){return d.isAxiosError(t)?{error:t,success:!1}:{error:new Error("unknown error"),success:!1}}}async function oe(r,e){let{monimeSpaceId:s,accessToken:o,monimeVersion:t}=e;try{return{success:!0,data:(await d.get(`${T}/${r}`,{headers:{"Monime-Space-Id":`${s}`,Authorization:`Bearer ${o}`,...t?{"Monime-Version":t}:{}}})).data.result}}catch(n){return d.isAxiosError(n)?{error:n,success:!1}:{error:new Error("unknown error"),success:!1}}}function ie(r){return{create:(e,s,o,t,n)=>ne(e,s,o,t,n,r),delete:e=>te(e,r),getAll:()=>se(r),get:e=>oe(e,r)}}import{randomBytes as Be}from"crypto";import y from"axios";var k="https://api.monime.io/v1/payouts",Ue=Be(20).toString("hex");async function ae(r,e,s,o){if(e.trim()==="")return{success:!1,error:new Error("sourceAccount cannot be empty")};if(r<=0)return{error:new Error("amount must be greater than 0"),success:!1};let{accessToken:t,monimeSpaceId:n,monimeVersion:i}=o,u={amount:{currency:"SLE",value:r},source:{financialAccountId:e},destination:s,metadata:{}};try{return{success:!0,data:(await y.post(k,u,{headers:{"Idempotency-Key":`${Ue}`,"Monime-Space-Id":`${n}`,Authorization:`Bearer ${t}`,"Content-Type":"application/json",...i?{"Monime-Version":i}:{}}})).data.result}}catch(p){return y.isAxiosError(p)?{success:!1,error:p}:{success:!1,error:new Error("unknown error")}}}async function ce(r){let{accessToken:e,monimeSpaceId:s,monimeVersion:o}=r;try{let n=(await y.get(k,{headers:{"Monime-Space-Id":`${s}`,Authorization:`Bearer ${e}`,...o?{"Monime-Version":o}:{}}})).data;return{success:!0,data:{result:n.result,pagination:n.pagination??{next:null}}}}catch(t){return y.isAxiosError(t)?{success:!1,error:t}:{success:!1,error:new Error("unknown error")}}}async function ue(r,e){let{accessToken:s,monimeSpaceId:o,monimeVersion:t}=e;try{return{success:!0,data:(await y.get(`${k}/${r}`,{headers:{"Monime-Space-Id":`${o}`,Authorization:`Bearer ${s}`,...t?{"Monime-Version":t}:{}}})).data.result}}catch(n){return y.isAxiosError(n)?{success:!1,error:n}:{success:!1,error:new Error("unknown error")}}}async function pe(r,e){let{accessToken:s,monimeSpaceId:o,monimeVersion:t}=e;try{return await y.delete(`${k}/${r}`,{headers:{"Monime-Space-Id":`${o}`,Authorization:`Bearer ${s}`,...t?{"Monime-Version":t}:{}}}),{success:!0}}catch(n){return y.isAxiosError(n)?{success:!1,error:n}:{success:!1,error:new Error("unknown error")}}}function me(r){return{create:(e,s,o)=>ae(e,o,s,r),get:()=>ce(r),getOne:e=>ue(e,r),delete:e=>pe(e,r)}}import le from"axios";var We="https://api.monime.io/v1/provider-kyc";async function ge(r,e){let{monimeSpaceId:s,accessToken:o,monimeVersion:t}=e;try{return{success:!0,data:(await le.get(`${We}/${r}`,{headers:{"Monime-Space-Id":s,Authorization:`Bearer ${o}`,...t?{"Monime-Version":t}:{}}})).data.result}}catch(n){return le.isAxiosError(n)?{success:!1,error:n}:{success:!1,error:new Error("Unknown error")}}}function fe(r){return{get:e=>ge(e,r)}}import{randomBytes as ze}from"crypto";import I from"axios";var de="https://api.monime.io/v1/receipts";async function ye(r,e){let{monimeSpaceId:s,accessToken:o,monimeVersion:t}=e;try{return{success:!0,data:(await I.get(`${de}/${r}`,{headers:{"Monime-Space-Id":s,Authorization:`Bearer ${o}`,...t?{"Monime-Version":t}:{}}})).data.result}}catch(n){return I.isAxiosError(n)?{success:!1,error:n}:{success:!1,error:new Error("Unknown error")}}}async function he(r,e,s){let{monimeSpaceId:o,accessToken:t,monimeVersion:n}=s,i=ze(20).toString("hex");try{return{success:!0,data:(await I.post(`${de}/${r}/redeem`,e,{headers:{"Idempotency-Key":i,"Monime-Space-Id":o,Authorization:`Bearer ${t}`,"Content-Type":"application/json",...n?{"Monime-Version":n}:{}}})).data.result}}catch(u){return I.isAxiosError(u)?{success:!1,error:u}:{success:!1,error:new Error("Unknown error")}}}function Ae(r){return{get:e=>ye(e,r),redeem:(e,s={})=>he(e,s,r)}}import{randomBytes as Le}from"crypto";import Ce from"axios";var Ke="https://api.monime.io/v1/ussd-otps";async function we(r,e){let{monimeSpaceId:s,accessToken:o,monimeVersion:t}=e,n=Le(20).toString("hex");try{return{success:!0,data:(await Ce.post(Ke,r,{headers:{"Idempotency-Key":n,"Monime-Space-Id":s,Authorization:`Bearer ${o}`,"Content-Type":"application/json",...t?{"Monime-Version":t}:{}}})).data.result}}catch(i){return Ce.isAxiosError(i)?{success:!1,error:i}:{success:!1,error:new Error("Unknown error")}}}function Pe(r){return{create:e=>we(e,r)}}import{randomBytes as be}from"crypto";import m from"axios";var w="https://api.monime.io/v1/webhooks";async function Re(r,e){let{monimeSpaceId:s,accessToken:o,monimeVersion:t}=e,n=be(20).toString("hex");try{return{success:!0,data:(await m.post(w,r,{headers:{"Idempotency-Key":n,"Monime-Space-Id":s,Authorization:`Bearer ${o}`,"Content-Type":"application/json",...t?{"Monime-Version":t}:{}}})).data.result}}catch(i){return m.isAxiosError(i)?{success:!1,error:i}:{success:!1,error:new Error("Unknown error")}}}async function Te(r,e){let{monimeSpaceId:s,accessToken:o,monimeVersion:t}=e;try{return{success:!0,data:(await m.get(`${w}/${r}`,{headers:{"Monime-Space-Id":s,Authorization:`Bearer ${o}`,...t?{"Monime-Version":t}:{}}})).data.result}}catch(n){return m.isAxiosError(n)?{success:!1,error:n}:{success:!1,error:new Error("Unknown error")}}}async function ke(r){let{monimeSpaceId:e,accessToken:s,monimeVersion:o}=r;try{let n=(await m.get(w,{headers:{"Monime-Space-Id":e,Authorization:`Bearer ${s}`,...o?{"Monime-Version":o}:{}}})).data;return{success:!0,data:{result:n.result,pagination:n.pagination??{next:null}}}}catch(t){return m.isAxiosError(t)?{success:!1,error:t}:{success:!1,error:new Error("Unknown error")}}}async function Ie(r,e,s){let{monimeSpaceId:o,accessToken:t,monimeVersion:n}=s,i=be(20).toString("hex");try{return{success:!0,data:(await m.patch(`${w}/${r}`,e,{headers:{"Idempotency-Key":i,"Monime-Space-Id":o,Authorization:`Bearer ${t}`,"Content-Type":"application/json",...n?{"Monime-Version":n}:{}}})).data.result}}catch(u){return m.isAxiosError(u)?{success:!1,error:u}:{success:!1,error:new Error("Unknown error")}}}async function xe(r,e){let{monimeSpaceId:s,accessToken:o,monimeVersion:t}=e;try{return await m.delete(`${w}/${r}`,{headers:{"Monime-Space-Id":s,Authorization:`Bearer ${o}`,...t?{"Monime-Version":t}:{}}}),{success:!0}}catch(n){return m.isAxiosError(n)?{success:!1,error:n}:{success:!1,error:new Error("Unknown error")}}}function Oe(r){return{create:e=>Re(e,r),get:e=>Te(e,r),getAll:()=>ke(r),update:(e,s)=>Ie(e,s,r),delete:e=>xe(e,r)}}var x=class{monimeSpaceId;accessToken;monimeVersion;financialAccount;internalTransfer;paymentCode;payment;payout;providerKyc;receipt;ussdOtp;webhook;financialTransaction;checkoutSession;constructor(e){this.accessToken=e.accessToken,this.monimeSpaceId=e.monimeSpaceId,this.monimeVersion=e.monimeVersion;let s={monimeSpaceId:this.monimeSpaceId,accessToken:this.accessToken,monimeVersion:this.monimeVersion};this.financialAccount=z(s),this.internalTransfer=X(s),this.paymentCode=ie(s),this.payment=ee(s),this.payout=me(s),this.providerKyc=fe(s),this.receipt=Ae(s),this.ussdOtp=Pe(s),this.webhook=Oe(s),this.financialTransaction=N(s),this.checkoutSession=D(s)}};function Xn(r){return new x(r)}export{x as MonimeClient,Xn as createClient};
|
|
1
|
+
var h=class p extends Error{status;requestId;details;constructor(e,t,s,c){super(e),this.name="MonimeError",t!==void 0&&(this.status=t),s!==void 0&&(this.requestId=s),this.details=c,Error.captureStackTrace&&Error.captureStackTrace(this,p)}},w=class extends h{constructor(e="Invalid or missing access token"){super(e,401),this.name="MonimeAuthenticationError"}},U=class extends h{constructor(e,t){super(e,400,void 0,t),this.name="MonimeValidationError"}};var a=class{baseUrl="https://api.monime.io/v1";config;constructor(e){this.config=e}async getHeaders(e){let t=new Headers({"Content-Type":"application/json",Authorization:`Bearer ${this.config.accessToken}`,"Monime-Space-Id":this.config.monimeSpaceId});return this.config.monimeVersion&&t.set("Monime-Version",this.config.monimeVersion),e&&t.set("Idempotency-Key",e),t}async request(e){let{path:t,method:s,body:c,idempotencyKey:o}=e,d=`${this.baseUrl}${t}`;try{let m=await fetch(d,{method:s,headers:await this.getHeaders(o),body:c?JSON.stringify(c):null}),f=m.headers?.get("x-request-id")||void 0;if(!m.ok){let l=`Request failed with status ${m.status}`,b;try{let P=await m.json();l=P.message||l,b=P}catch{}throw m.status===401?new w(l):new h(l,m.status,f,b)}if(m.status===204)return{success:!0};let y=await m.json();return{success:!0,data:y.result!==void 0?y.result:y}}catch(m){return m instanceof h?{success:!1,error:m}:{success:!1,error:m instanceof Error?m:new Error("Unknown error occurred")}}}};import{z as g}from"zod";var W=g.object({name:g.string().min(1,"Name is required"),amount:g.number().gt(0,"Amount must be greater than zero"),quantity:g.number().int().gt(0,"Quantity must be greater than zero"),successUrl:g.string().url("Invalid success URL"),cancelUrl:g.string().url("Invalid cancel URL"),description:g.string().optional(),financialAccountId:g.string().optional(),primaryColor:g.string().optional(),images:g.array(g.string()).optional()});import{randomBytes as Y}from"crypto";var v=class extends a{path="/checkout-sessions";async create(e,t,s,c,o,d={}){let{description:m,financialAccountId:f,primaryColor:y,images:B}=d,l=W.safeParse({name:e,amount:t,quantity:s,successUrl:c,cancelUrl:o,description:m,financialAccountId:f,primaryColor:y,images:B});if(!l.success)return{success:!1,error:new Error(l.error.message)};let b={name:e,description:m,cancelUrl:o,successUrl:c,callbackState:null,reference:null,financialAccountId:f,lineItems:[{type:"custom",name:e,price:{currency:"SLE",value:t},quantity:s,reference:null,description:m,images:B}],paymentOptions:{card:{disable:!1},bank:{disable:!1,enabledProviders:["slb001","slb004","slb007"]},momo:{disable:!1,enabledProviders:["m17","m18"]},wallet:{disable:!1,enabledProviders:["dw001"]}},brandingOptions:{primaryColor:y},metadata:{}},P=Y(20).toString("hex");return this.request({method:"POST",path:this.path,body:b,idempotencyKey:P})}async list(){return this.request({method:"GET",path:this.path})}async retrieve(e){return this.request({method:"GET",path:`${this.path}/${e}`})}async delete(e){return this.request({method:"DELETE",path:`${this.path}/${e}`})}};import{z as M}from"zod";var N=M.object({accountName:M.string().min(1,"Account name is required"),currency:M.enum(["USD","SLE"],{message:"Currency must be either USD or SLE"})});import{randomBytes as Z}from"crypto";var T=class extends a{path="/financial-accounts";async create(e,t){let s=N.safeParse({accountName:e,currency:t});if(!s.success)return{success:!1,error:new Error(s.error.message)};let c={name:e,currency:t,description:"",metadata:{}},o=Z(20).toString("hex");return this.request({method:"POST",path:this.path,body:c,idempotencyKey:o})}async retrieve(e){return!e||e.trim()===""?{success:!1,error:new Error("financialAccountId is required")}:this.request({method:"GET",path:`${this.path}/${e}`})}async list(){return this.request({method:"GET",path:this.path})}};var x=class extends a{path="/banks";async retrieve(e){return this.request({method:"GET",path:`${this.path}/${e}`})}async list(){return this.request({method:"GET",path:this.path})}};var O=class extends a{path="/momos";async retrieve(e){return this.request({method:"GET",path:`${this.path}/${e}`})}async list(){return this.request({method:"GET",path:this.path})}};var C=class extends a{path="/financial-transactions";async list(){return this.request({method:"GET",path:this.path})}async retrieve(e){return!e||e.trim()===""?{error:new Error("transactionId is required"),success:!1}:this.request({method:"GET",path:`${this.path}/${e}`})}};import{z as k}from"zod";var K=k.object({sourceAccount:k.string().min(1,"Source account is required"),destinationAccount:k.string().min(1,"Destination account is required"),amount:k.number().gt(0,"Amount must be greater than zero")});import{randomBytes as ee}from"crypto";var A=class extends a{path="/internal-transfers";async create(e,t,s){let c=K.safeParse({sourceAccount:e,destinationAccount:t,amount:s});if(!c.success)return{success:!1,error:new Error(c.error.message)};let o={amount:{currency:"SLE",value:s},sourceFinancialAccount:{id:e},destinationFinancialAccount:{id:t},metadata:{}},d=ee(20).toString("hex");return this.request({method:"POST",path:this.path,body:o,idempotencyKey:d})}async list(){return this.request({method:"GET",path:this.path})}async retrieve(e){return this.request({method:"GET",path:`${this.path}/${e}`})}async delete(e){return this.request({method:"DELETE",path:`${this.path}/${e}`})}};import{z as $}from"zod";var H=$.record($.string(),$.unknown());import{randomBytes as te}from"crypto";var I=class extends a{path="/payments";async retrieve(e){return e?this.request({method:"GET",path:`${this.path}/${e}`}):{success:!1,error:new Error("paymentId is required")}}async list(){return this.request({method:"GET",path:this.path})}async update(e,t){if(!e)return{success:!1,error:new Error("paymentId is required")};let s=H.safeParse(t);if(!s.success)return{success:!1,error:new Error(s.error.message)};let c=te(20).toString("hex");return this.request({method:"PATCH",path:`${this.path}/${e}`,body:t,idempotencyKey:c})}};import{z as R}from"zod";var z=R.object({paymentName:R.string().min(1,"Payment name is required"),amount:R.number().gt(0,"Amount must be greater than zero"),financialAccountId:R.string().optional().nullable(),name:R.string().min(1,"Name is required"),phoneNumber:R.string().min(1,"Phone number is required")});import{randomBytes as re}from"crypto";var S=class extends a{path="/payment-codes";async create(e,t,s,c,o){let d=z.safeParse({paymentName:e,amount:t,financialAccountId:s,name:c,phoneNumber:o});if(!d.success)return{success:!1,error:new Error(d.error.message)};let m={name:e,mode:"recurrent",enable:!0,amount:{currency:"SLE",value:t*100},duration:"1h30m",customer:{name:c},reference:"",authorizedPhoneNumber:o,recurrentPaymentTarget:{expectedPaymentCount:1,expectedPaymentTotal:{currency:"SLE",value:t*100}},financialAccountId:s||void 0,metadata:{}},f=re(20).toString("hex");return this.request({method:"POST",path:this.path,body:m,idempotencyKey:f})}async retrieve(e){return this.request({method:"GET",path:`${this.path}/${e}`})}async list(){return this.request({method:"GET",path:this.path})}async delete(e){return!e||e.trim()===""?{success:!1,error:new Error("paymentCodeId is required")}:this.request({method:"DELETE",path:`${this.path}/${e}`})}};import{z as u}from"zod";var V=u.object({amount:u.number().gt(0,"Amount must be greater than 0"),sourceAccount:u.string().min(1,"Source account cannot be empty"),destination:u.discriminatedUnion("type",[u.object({type:u.literal("momo"),providerId:u.enum(["m17","m18"]),phoneNumber:u.string()}),u.object({type:u.literal("bank"),providerId:u.enum(["b01","b02","b03"]),accountNumber:u.string()}),u.object({type:u.literal("wallet"),providerId:u.enum(["w01","w02"]),walletId:u.string()})])});import{randomBytes as ne}from"crypto";var E=class extends a{path="/payouts";async create(e,t,s){let c=V.safeParse({amount:e,sourceAccount:t,destination:s});if(!c.success)return{success:!1,error:new Error(c.error.message)};let o={amount:{currency:"SLE",value:e},source:{financialAccountId:t},destination:s,metadata:{}},d=ne(20).toString("hex");return this.request({method:"POST",path:this.path,body:o,idempotencyKey:d})}async list(){return this.request({method:"GET",path:this.path})}async retrieve(e){return this.request({method:"GET",path:`${this.path}/${e}`})}async delete(e){return this.request({method:"DELETE",path:`${this.path}/${e}`})}};var G=class extends a{path="/provider-kyc";async retrieve(e){return this.request({method:"GET",path:`${this.path}/${e}`})}};import{randomBytes as ie}from"crypto";var F=class extends a{path="/receipts";async retrieve(e){return this.request({method:"GET",path:`${this.path}/${e}`})}async redeem(e,t){let s=ie(20).toString("hex");return this.request({method:"POST",path:`${this.path}/${e}/redeem`,body:t,idempotencyKey:s})}};import{z as j}from"zod";var _=j.object({phoneNumber:j.string().min(1,"Phone number is required")});import{randomBytes as se}from"crypto";var q=class extends a{path="/ussd-otps";async create(e){let t=_.safeParse(e);if(!t.success)return{success:!1,error:new Error(t.error.message)};let s=se(20).toString("hex");return this.request({method:"POST",path:this.path,body:e,idempotencyKey:s})}};import{z as i}from"zod";var J=i.object({name:i.string().min(1,"Name is required"),url:i.string().url("Invalid URL"),events:i.array(i.string()).min(1,"At least one event is required"),enabled:i.boolean().optional(),apiRelease:i.string().optional(),headers:i.record(i.string(),i.string()).optional(),alertEmails:i.array(i.string().email()).optional(),verificationMethod:i.object({type:i.enum(["HS256","ES256"]),secret:i.string()}).optional(),metadata:i.record(i.string(),i.unknown()).optional()}),Q=i.object({name:i.string().min(1).optional(),url:i.string().url().optional(),events:i.array(i.string()).min(1).optional(),enabled:i.boolean().optional(),headers:i.record(i.string(),i.string()).optional(),alertEmails:i.array(i.string().email()).optional(),verificationMethod:i.object({type:i.enum(["HS256","ES256"]),secret:i.string()}).optional(),metadata:i.record(i.string(),i.unknown()).optional()});import{randomBytes as X}from"crypto";var D=class extends a{path="/webhooks";async create(e){let t=J.safeParse(e);if(!t.success)return{success:!1,error:new Error(t.error.message)};let s=X(20).toString("hex");return this.request({method:"POST",path:this.path,body:e,idempotencyKey:s})}async retrieve(e){return this.request({method:"GET",path:`${this.path}/${e}`})}async list(){return this.request({method:"GET",path:this.path})}async update(e,t){let s=Q.safeParse(t);if(!s.success)return{success:!1,error:new Error(s.error.message)};let c=X(20).toString("hex");return this.request({method:"PATCH",path:`${this.path}/${e}`,body:t,idempotencyKey:c})}async delete(e){return this.request({method:"DELETE",path:`${this.path}/${e}`})}};var L=class{financialAccount;internalTransfer;paymentCode;payment;payout;providerKyc;receipt;ussdOtp;webhook;financialTransaction;checkoutSession;financialProvider;constructor(e={}){let t=e.monimeSpaceId||process.env.MONIME_SPACE_ID,s=e.accessToken||process.env.MONIME_ACCESS_TOKEN,c=e.monimeVersion||process.env.MONIME_VERSION;if(!t)throw new Error("monimeSpaceId is required. Pass it in options or set MONIME_SPACE_ID env var.");if(!s)throw new Error("accessToken is required. Pass it in options or set MONIME_ACCESS_TOKEN env var.");let o={monimeSpaceId:t,accessToken:s,monimeVersion:c};this.financialAccount=new T(o),this.internalTransfer=new A(o),this.paymentCode=new S(o),this.payment=new I(o),this.payout=new E(o),this.providerKyc=new G(o),this.receipt=new F(o),this.ussdOtp=new q(o),this.webhook=new D(o),this.financialTransaction=new C(o),this.checkoutSession=new v(o),this.financialProvider={bank:new x(o),momo:new O(o)}}};function Ar(p){return new L(p)}export{w as MonimeAuthenticationError,L as MonimeClient,h as MonimeError,U as MonimeValidationError,Ar as createClient};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "monime-package",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.4",
|
|
4
4
|
"description": "A focused TypeScript helper library for interacting with Monime's common endpoints. It provides small, typed helpers that handle request composition, headers, and basic response/error plumbing so your application code stays clean.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -26,16 +26,16 @@
|
|
|
26
26
|
"packageManager": "pnpm@10.17.1",
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@biomejs/biome": "2.2.5",
|
|
29
|
-
"@types/node": "^
|
|
29
|
+
"@types/node": "^25.2.0",
|
|
30
30
|
"tsup": "^8.5.0",
|
|
31
|
-
"typescript": "^5.
|
|
32
|
-
"vitest": "^3.
|
|
31
|
+
"typescript": "^5.0.0",
|
|
32
|
+
"vitest": "^3.0.0"
|
|
33
33
|
},
|
|
34
34
|
"repository": {
|
|
35
35
|
"type": "git",
|
|
36
36
|
"url": "git+https://github.com/Walon-Foundation/monime-package.git"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"
|
|
39
|
+
"zod": "^3.24.0"
|
|
40
40
|
}
|
|
41
|
-
}
|
|
41
|
+
}
|