pawapay-sdk
Version:
A comprehensive TypeScript/JavaScript SDK for integrating with the pawaPay API, enabling seamless mobile money operations such as deposits, payouts, refunds, wallet balance checks, and more.
1 lines • 43.4 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","names":["Endpoints"],"sources":["../src/fn/axios.fn.ts","../src/fn/v1_implementations.ts","../src/helpers/endpoints.ts","../src/fn/v2_implementations.ts","../src/client.ts","../src/types/factory.ts"],"sourcesContent":["import axios, { type AxiosInstance, type AxiosRequestConfig } from \"axios\";\nimport type { PawaPayResponse, RequestOptions } from \"@/types/index.t.ts\";\n\nexport default async function request<T, E>(\n apiInstance: AxiosInstance,\n config: AxiosRequestConfig,\n options?: RequestOptions,\n): Promise<PawaPayResponse<T, E>> {\n try {\n const response = await apiInstance.request<T>({\n ...config,\n ...options,\n });\n return {\n success: true,\n data: response.data,\n status: response.status,\n headers: response.headers,\n };\n } catch (error) {\n if (axios.isAxiosError(error)) {\n return {\n success: false,\n error: error.response?.data || error.message,\n status: error.response?.status || 500,\n };\n }\n return {\n success: false,\n error: {\n errorMessage: \"Unknown error occurred\",\n } as E,\n status: 500,\n };\n }\n}\n","import type { AxiosInstance } from \"axios\";\nimport type {\n ActiveConfigurationResponse,\n AvailableCorrespondentResponse,\n CancelEnqueuedPayoutResponse,\n CheckPayoutStatusResponse,\n CheckRefundStatusResponse,\n DepositConfig,\n DepositResponse,\n DepositStatus,\n PawaPayError,\n PawaPayResponse,\n PredictCorrespondentResponse,\n PublicKeysResponse,\n RequestBuildPayoutResponse,\n RequestBulkPayoutConfig,\n RequestOptions,\n RequestPayoutConfig,\n RequestPayoutRespose,\n RequestPayPageConfig,\n RequestPayPageResponse,\n RequestRefundConfig,\n RequestRefundResponse,\n ResendDepositResponse,\n ResendPayoutCallbackResponse,\n ResendRefundCallbackResponse,\n WalletBalance,\n} from \"@/types/index.t.ts\";\n\nimport type { V1Methods } from \"@/types/methods.t.ts\";\n\nimport request from \"./axios.fn.ts\";\n\nexport default class V1_Implementations implements V1Methods {\n private apiClient: AxiosInstance;\n\n constructor(apiClient: AxiosInstance) {\n this.apiClient = apiClient;\n }\n\n async resendDepositCallback(\n depositId: string,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<ResendDepositResponse, PawaPayError>> {\n const data = { depositId };\n return request(\n this.apiClient,\n {\n method: \"POST\",\n url: \"/deposits/resend-callback\",\n data,\n },\n args?.options,\n );\n }\n\n async requestDeposit(\n data: DepositConfig,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<DepositResponse, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"POST\",\n url: \"/deposits\",\n data,\n },\n args?.options,\n );\n }\n\n async checkDepositStatus(\n depositId: string,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<DepositStatus[], PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"GET\",\n url: `/deposits/${depositId}`,\n },\n args?.options,\n );\n }\n\n async requestPayout(\n data: RequestPayoutConfig,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<RequestPayoutRespose, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"POST\",\n url: \"/payouts\",\n data,\n },\n args?.options,\n );\n }\n\n async checkPayoutStatus(\n payoutId: string,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<CheckPayoutStatusResponse[], PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"GET\",\n url: `/payouts/${payoutId}`,\n },\n args?.options,\n );\n }\n\n async resendPayoutCallback(\n payoutId: string,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<ResendPayoutCallbackResponse, PawaPayError>> {\n const data = { payoutId };\n return request(\n this.apiClient,\n {\n method: \"POST\",\n url: \"/payouts/resend-callback\",\n data,\n },\n args?.options,\n );\n }\n\n async cancelEnqueuedPayout(\n payoutId: string,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<CancelEnqueuedPayoutResponse, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"POST\",\n url: `/payouts/fail-enqueued/${payoutId}`,\n },\n args?.options,\n );\n }\n\n async initiateBulkPayout(\n data: RequestBulkPayoutConfig[],\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<RequestBuildPayoutResponse[], PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"POST\",\n url: \"/payouts/bulk\",\n data,\n },\n args?.options,\n );\n }\n // --- REFUND\n async initiateRefund(\n refundConfig: RequestRefundConfig,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<RequestRefundResponse, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"POST\",\n url: \"/refunds\",\n data: refundConfig,\n },\n args?.options,\n );\n }\n async checkRefundStatus(\n refundId: string,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<CheckRefundStatusResponse[], PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"GET\",\n url: `/refunds/${refundId}`,\n },\n args?.options,\n );\n }\n\n async resendRefundCallback(\n refundId: string,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<ResendRefundCallbackResponse, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"POST\",\n url: \"/refund/resend-callback\",\n data: { refundId },\n },\n args?.options,\n );\n }\n\n // --- PAYMENT PAGE\n\n async requestPayPage(\n payload: RequestPayPageConfig,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<RequestPayPageResponse, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"POST\",\n url: \"/v1/widget/sessions\",\n data: payload,\n },\n args?.options,\n );\n }\n // --- WALLETS\n\n async getWalletBalances(args?: {\n options?: RequestOptions;\n }): Promise<PawaPayResponse<WalletBalance, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"GET\",\n url: \"/v1/wallet-balances\",\n },\n args?.options,\n );\n }\n\n async getWalletBalancesByCountry(\n country: string,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<WalletBalance, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"GET\",\n url: `/v1/wallet-balances/${country}`,\n },\n args?.options,\n );\n }\n\n // --- TOOLKIT\n\n async getActiveConfiguration(args?: {\n options?: RequestOptions;\n }): Promise<PawaPayResponse<ActiveConfigurationResponse, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: `GET`,\n url: `/active-conf`,\n },\n args?.options,\n );\n }\n\n async resendDepositCallbackV1(\n depositId: string,\n args?: {\n options?: RequestOptions;\n },\n ): Promise<PawaPayResponse<ResendDepositResponse, PawaPayError>> {\n const data = { depositId };\n return request(\n this.apiClient,\n {\n method: \"POST\",\n url: \"/deposits/resend-callback\",\n data,\n },\n args?.options,\n );\n }\n\n async getProviderAvailability(args?: {\n options?: RequestOptions;\n }): Promise<PawaPayResponse<AvailableCorrespondentResponse[], PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"GET\",\n url: \"/availability\",\n },\n args?.options,\n );\n }\n\n async getProviderPrediction(\n msisdn: string,\n args?: {\n options?: RequestOptions;\n },\n ): Promise<PawaPayResponse<PredictCorrespondentResponse, PawaPayError>> {\n const data = { msisdn };\n return request(\n this.apiClient,\n {\n method: \"GET\",\n url: \"/v1/predict-correspondent\",\n data,\n },\n args?.options,\n );\n }\n\n async getPublicKeys(args?: {\n options?: RequestOptions;\n }): Promise<PawaPayResponse<PublicKeysResponse[], PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"GET\",\n url: \"/public-key/https\",\n },\n args?.options,\n );\n }\n}\n","const Endpoints = {\n v1: {},\n v2: {\n deposits: {\n requestDeposit: \"/deposits\",\n getDepositStatus: (depositId: string) => `/deposits/${depositId}`,\n resendDepositCallback: (depositId: string) =>\n `/deposits/resend-callback/${depositId}`,\n },\n\n payouts: {\n requestPayout: \"/payouts\",\n getPayoutStatus: (payoutId: string) => `/payouts/${payoutId}`,\n resendPayoutCallback: (payoutId: string) =>\n `/payouts/resend-callback/${payoutId}`,\n cancelPayout: (payoutId: string) => `/payouts/fail-enqueued/${payoutId}`,\n initiateBulkPayout: \"/payouts/bulk\",\n },\n\n refunds: {\n initiateRefund: \"/refunds\",\n checkRefundStatus: (refundId: string) => `/refunds/${refundId}`,\n resendRefundCallback: (refundId: string) =>\n `/refunds/resend-callback/${refundId}`,\n },\n\n remittences: {\n initiateRemittance: \"/remittances\",\n cancelEnqueuedRemittance: (remittanceId: string) =>\n `/remittances/fail-enqueued/${remittanceId}`,\n getRemittanceStatus: (remittanceId: string) =>\n `/remittances/${remittanceId}`,\n resendRemittenceCallback: (remittanceId: string) =>\n `/remittances/resend-callback/${remittanceId}`,\n },\n\n requestPayPage: \"/paymentpage\",\n\n financial: {\n getWalletBalances: \"/wallet-balances\",\n getStatementStatus: (statementId: string) => `/statements/${statementId}`,\n requestStatement: \"/statements\",\n },\n\n toolkit: {\n getActiveConfiguration: \"/active-conf\",\n getProviderAvailability: \"/availability\",\n getProviderPrediction: \"/predict-provider\",\n getPublicKeys: \"/public-key/http\",\n },\n },\n};\n\nexport default Endpoints;\n","/** biome-ignore-all lint/correctness/noUnusedImports: <''> */\nimport type { AxiosInstance } from \"axios\";\nimport Endpoints from \"@/helpers/endpoints.ts\";\nimport type { ResendDepositCallbackResponse_v2 } from \"@/types/v2/deposits.t.ts\";\nimport type {\n PawaPayError,\n PawaPayResponse,\n PublicKeysResponse,\n RequestOptions,\n RequestPayPageResponse,\n} from \"@/types/index.t.ts\";\nimport type { V2Methods } from \"@/types/methods.t.ts\";\nimport type { ActiveConfiguration } from \"@/types/v2/active-conf.t.ts\";\nimport type {\n DepositConfig_v2,\n DepositResponse_v2,\n DepositStatusResponse_v2,\n} from \"@/types/v2/deposits.t.ts\";\nimport type {\n BulkPayoutResponse_v2,\n CancelEnqueuedPayoutResponse_v2,\n CheckPayoutStatus_v2,\n RequestPayoutConfig_v2,\n RequestPayoutResponse_v2,\n ResendPayoutCallbackResponse_v2,\n} from \"@/types/v2/payouts.t.ts\";\nimport type { RequestPayPageConfig_v2 } from \"@/types/v2/paypage.t.ts\";\nimport type {\n RefundStatusResponse_v2,\n RequestRefundConfig_v2,\n RequestRefundResponse_v2,\n ResendRefundCallbackResponse_v2,\n} from \"@/types/v2/refunds.t.ts\";\nimport type {\n CancelEnqueuedRemittanceResponse,\n CheckRemittanceStatusResponse,\n InitiateRemittanceConfig,\n InitiateRemittanceResponse,\n ResendRemittanceCallbackResponse,\n} from \"@/types/v2/remittence.t.ts\";\nimport type {\n CheckStatementStaus_v2,\n RequestStatementConfig,\n RequestStatementResponse_v2,\n} from \"@/types/v2/statements.t.ts\";\nimport type {\n ProviderAvailability_v2,\n ProviderPrediction_v2,\n WalletBalance_v2,\n} from \"@/types/v2/toolkit.t.ts\";\nimport request from \"./axios.fn.ts\";\n\nexport default class V2_Implementations implements V2Methods {\n private apiClient: AxiosInstance;\n\n constructor(apiClient: AxiosInstance) {\n this.apiClient = apiClient;\n }\n\n /**\n * INFO: Deposits\n */\n\n async requestDeposit(\n data: DepositConfig_v2,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<DepositResponse_v2, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"POST\",\n url: Endpoints.v2.deposits.requestDeposit,\n data,\n },\n args?.options,\n );\n }\n\n async checkDepositStatus(\n depositId: string,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<DepositStatusResponse_v2, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"GET\",\n url: Endpoints.v2.deposits.getDepositStatus(depositId),\n },\n args?.options,\n );\n }\n\n async resendDepositCallback(\n depositId: string,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<ResendDepositCallbackResponse_v2, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"POST\",\n url: Endpoints.v2.deposits.resendDepositCallback(depositId),\n },\n args?.options,\n );\n }\n\n /**\n * INFO: Payouts\n */\n\n async requestPayout(\n data: RequestPayoutConfig_v2,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<RequestPayoutResponse_v2, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"POST\",\n data,\n url: Endpoints.v2.payouts.requestPayout,\n },\n args?.options,\n );\n }\n\n async checkPayoutStatus(\n payoutId: string,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<CheckPayoutStatus_v2, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"GET\",\n url: `/payouts/${payoutId}`,\n },\n args?.options,\n );\n }\n\n async cancelEnqueuedPayout(\n payoutId: string,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<CancelEnqueuedPayoutResponse_v2, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"DELETE\",\n url: Endpoints.v2.payouts.cancelPayout(payoutId),\n },\n args?.options,\n );\n }\n\n async resendPayoutCallback(\n payoutId: string,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<ResendPayoutCallbackResponse_v2, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"POST\",\n url: `/payouts/${payoutId}/resend-callback`,\n },\n args?.options,\n );\n }\n\n async initiateBulkPayout(\n data: Array<RequestPayoutConfig_v2>,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<BulkPayoutResponse_v2, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"POST\",\n data,\n url: Endpoints.v2.payouts.initiateBulkPayout,\n },\n args?.options,\n );\n }\n\n /**\n * NOTE: Refunds\n */\n\n async initiateRefund(\n data: RequestRefundConfig_v2,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<RequestRefundResponse_v2, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"POST\",\n data,\n url: Endpoints.v2.refunds.initiateRefund,\n },\n args?.options,\n );\n }\n\n async checkRefundStatus(\n refundId: string,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<RefundStatusResponse_v2, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"GET\",\n url: Endpoints.v2.refunds.checkRefundStatus(refundId),\n },\n args?.options,\n );\n }\n\n async resendRefundCallback(\n refundId: string,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<ResendRefundCallbackResponse_v2, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"POST\",\n url: Endpoints.v2.refunds.resendRefundCallback(refundId),\n },\n args?.options,\n );\n }\n\n /**\n * INFO: Remittances\n */\n\n async initiateRemittance(\n data: InitiateRemittanceConfig,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<InitiateRemittanceResponse, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"POST\",\n data,\n url: Endpoints.v2.remittences.initiateRemittance,\n },\n args?.options,\n );\n }\n\n async resendRemittanceCallback(\n remittanceId: string,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<ResendRemittanceCallbackResponse, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"POST\",\n url: Endpoints.v2.remittences.resendRemittenceCallback(remittanceId),\n },\n args?.options,\n );\n }\n\n async checkRemittanceStatus(\n remittanceId: string,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<CheckRemittanceStatusResponse, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"GET\",\n url: Endpoints.v2.remittences.getRemittanceStatus(remittanceId),\n },\n args?.options,\n );\n }\n\n async cancelEnqueuedRemittance(\n remittanceId: string,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<CancelEnqueuedRemittanceResponse, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"POST\",\n url: Endpoints.v2.remittences.cancelEnqueuedRemittance(remittanceId),\n },\n args?.options,\n );\n }\n\n /**\n * NOTE: PayPage\n */\n\n async requestPayPage(\n data: RequestPayPageConfig_v2,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<RequestPayPageResponse, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"POST\",\n data,\n url: Endpoints.v2.requestPayPage,\n },\n args?.options,\n );\n }\n\n /**\n * NOTE: Financies\n */\n async getWalletBalances(args?: {\n options?: RequestOptions;\n }): Promise<PawaPayResponse<WalletBalance_v2, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"GET\",\n url: Endpoints.v2.financial.getWalletBalances,\n },\n args?.options,\n );\n }\n\n async requestStatement(\n data: RequestStatementConfig,\n args?: { options?: RequestOptions },\n ): Promise<PawaPayResponse<RequestStatementResponse_v2, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"POST\",\n url: Endpoints.v2.financial.requestStatement,\n data,\n },\n args?.options,\n );\n }\n\n async getStatementStatus(\n statementId: string,\n args?: {\n options?: RequestOptions;\n },\n ): Promise<PawaPayResponse<CheckStatementStaus_v2, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"GET\",\n url: Endpoints.v2.financial.getStatementStatus(statementId),\n },\n args?.options,\n );\n }\n\n /**\n * NOTE: ToolKit\n */\n\n async getActiveConfiguration(args?: {\n options?: RequestOptions;\n }): Promise<PawaPayResponse<ActiveConfiguration, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"GET\",\n url: Endpoints.v2.toolkit.getActiveConfiguration,\n },\n args?.options,\n );\n }\n\n async getProviderAvailability(args?: {\n options?: RequestOptions;\n }): Promise<PawaPayResponse<ProviderAvailability_v2, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"GET\",\n url: Endpoints.v2.toolkit.getProviderAvailability,\n },\n args?.options,\n );\n }\n\n async getProviderPrediction(\n phoneNumber: string,\n args?: {\n options?: RequestOptions;\n },\n ): Promise<PawaPayResponse<ProviderPrediction_v2, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"POST\",\n data: { phoneNumber },\n url: Endpoints.v2.toolkit.getProviderPrediction,\n },\n args?.options,\n );\n }\n\n async getPublicKeys(args?: {\n options?: RequestOptions;\n }): Promise<PawaPayResponse<PublicKeysResponse, PawaPayError>> {\n return request(\n this.apiClient,\n {\n method: \"GET\",\n url: Endpoints.v2.toolkit.getPublicKeys,\n },\n args?.options,\n );\n }\n}\n","/** biome-ignore-all lint/suspicious/noExplicitAny: <'can use any'> */\nimport axios, { type AxiosInstance } from \"axios\";\nimport signale from \"signale\";\nimport V1_Implementations from \"./fn/v1_implementations.ts\";\nimport V2_Implementations from \"./fn/v2_implementations.ts\";\nimport type { V1Methods, V2Methods } from \"./types/methods.t.ts\";\n\nexport type ApiVersion = \"v1\" | \"v2\";\n\nexport type ClientConfig<T extends ApiVersion> = {\n apiVersion?: T;\n environment?: \"live\" | \"sandbox\";\n};\n\nexport class PawaPayClient<T extends ApiVersion> {\n private apiClient: AxiosInstance;\n protected apiKey: string;\n private config: ClientConfig<T>;\n private v1_Implementation: V1_Implementations;\n private v2_Implementation: V2_Implementations;\n\n constructor(\n apiKey: string,\n config?: ClientConfig<T> & {\n apiVersion: T;\n },\n ) {\n this.apiKey = apiKey;\n this.config = {\n apiVersion: config?.apiVersion ?? \"v2\",\n ...config,\n };\n\n if (this.config.apiVersion === \"v1\") {\n signale.warn(\"⚠️ Pawapay v1 is deprecated. Upgrade to v2.\");\n }\n\n const baseURL =\n this.config.apiVersion === \"v2\"\n ? this.config.environment === \"live\"\n ? \"https://api.pawapay.io/v2\"\n : \"https://api.sandbox.pawapay.io/v2\"\n : this.config.environment === \"live\"\n ? \"https://api.pawapay.io\"\n : \"https://api.sandbox.pawapay.io\";\n\n this.apiClient = axios.create({\n baseURL,\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${this.apiKey}`,\n },\n });\n\n this.v1_Implementation = new V1_Implementations(this.apiClient);\n this.v2_Implementation = new V2_Implementations(this.apiClient);\n\n /**\n * NOTE: Register Methods\n */\n\n if (this.config.apiVersion === \"v1\") {\n this.requestDeposit = this.v1_Implementation.requestDeposit as any;\n this.checkDepositStatus = this.v1_Implementation\n .checkDepositStatus as any;\n this.resendDepositCallback = this.v1_Implementation\n .resendDepositCallback as any;\n this.checkPayoutStatus = this.v1_Implementation.checkPayoutStatus as any;\n this.requestPayout = this.v1_Implementation.requestPayout as any;\n this.cancelEnqueuedPayout = this.v1_Implementation\n .cancelEnqueuedPayout as any;\n this.resendPayoutCallback = this.v1_Implementation\n .resendPayoutCallback as any;\n this.initiateRefund = this.v1_Implementation.initiateRefund as any;\n this.initiateBulkPayout = this.v1_Implementation\n .initiateBulkPayout as any;\n this.checkRefundStatus = this.v1_Implementation.checkRefundStatus as any;\n this.resendRefundCallback = this.v1_Implementation\n .resendRefundCallback as any;\n this.requestPayPage = this.v1_Implementation.requestPayPage as any;\n this.getWalletBalances = this.v1_Implementation.getWalletBalances as any;\n this.getWalletBalancesByCountry = this.v1_Implementation\n .getWalletBalancesByCountry as any;\n this.getActiveConfiguration = this.v1_Implementation\n .getActiveConfiguration as any;\n this.getProviderAvailability = this.v1_Implementation\n .getProviderAvailability as any;\n this.getProviderPrediction = this.v1_Implementation\n .getProviderPrediction as any;\n this.getPublicKeys = this.v1_Implementation.getPublicKeys as any;\n }\n\n if (this.config.apiVersion === \"v2\") {\n this.requestDeposit = this.v2_Implementation.requestDeposit as any;\n this.checkDepositStatus = this.v2_Implementation\n .checkDepositStatus as any;\n this.resendDepositCallback = this.v2_Implementation\n .resendDepositCallback as any;\n this.checkPayoutStatus = this.v2_Implementation.checkPayoutStatus as any;\n this.requestPayout = this.v2_Implementation.requestPayout as any;\n this.cancelEnqueuedPayout = this.v2_Implementation\n .cancelEnqueuedPayout as any;\n this.resendPayoutCallback = this.v2_Implementation\n .resendPayoutCallback as any;\n this.initiateBulkPayout = this.v2_Implementation\n .initiateBulkPayout as any;\n this.initiateRefund = this.v2_Implementation.initiateRefund as any;\n this.checkRefundStatus = this.v2_Implementation.checkRefundStatus as any;\n this.resendRefundCallback = this.v2_Implementation\n .resendRefundCallback as any;\n this.initiateRemittance = this.v2_Implementation\n .initiateRemittance as any;\n this.resendRemittanceCallback = this.v2_Implementation\n .resendRemittanceCallback as any;\n this.checkRemittanceStatus = this.v2_Implementation\n .checkRemittanceStatus as any;\n this.cancelEnqueuedRemittance = this.v2_Implementation\n .cancelEnqueuedRemittance as any;\n this.requestPayPage = this.v2_Implementation.requestPayPage as any;\n this.getWalletBalances = this.v2_Implementation.getWalletBalances as any;\n this.requestStatement = this.v2_Implementation.requestStatement as any;\n this.getStatementStatus = this.v2_Implementation\n .getStatementStatus as any;\n this.getActiveConfiguration = this.v2_Implementation\n .getActiveConfiguration as any;\n this.getProviderAvailability = this.v2_Implementation\n .getProviderAvailability as any;\n this.getProviderPrediction = this.v2_Implementation\n .getProviderPrediction as any;\n this.getPublicKeys = this.v2_Implementation.getPublicKeys as any;\n }\n }\n\n requestDeposit!: T extends \"v1\"\n ? V1Methods[\"requestDeposit\"]\n : V2Methods[\"requestDeposit\"];\n\n checkDepositStatus!: T extends \"v1\"\n ? V1Methods[\"checkDepositStatus\"]\n : V2Methods[\"checkDepositStatus\"];\n\n resendDepositCallback!: T extends \"v1\"\n ? V1Methods[\"resendDepositCallback\"]\n : V2Methods[\"resendDepositCallback\"];\n\n checkPayoutStatus!: T extends \"v1\"\n ? V1Methods[\"checkPayoutStatus\"]\n : V2Methods[\"checkPayoutStatus\"];\n\n requestPayout!: T extends \"v1\"\n ? V1Methods[\"requestPayout\"]\n : V2Methods[\"requestPayout\"];\n\n cancelEnqueuedPayout!: T extends \"v1\"\n ? V1Methods[\"cancelEnqueuedPayout\"]\n : V2Methods[\"cancelEnqueuedPayout\"];\n\n resendPayoutCallback!: T extends \"v1\"\n ? V1Methods[\"resendPayoutCallback\"]\n : V2Methods[\"resendPayoutCallback\"];\n\n initiateBulkPayout!: T extends \"v1\"\n ? V1Methods[\"initiateBulkPayout\"]\n : V2Methods[\"initiateBulkPayout\"];\n\n initiateRefund!: T extends \"v1\"\n ? V1Methods[\"initiateRefund\"]\n : V2Methods[\"initiateRefund\"];\n\n checkRefundStatus!: T extends \"v1\"\n ? V1Methods[\"checkRefundStatus\"]\n : V2Methods[\"checkRefundStatus\"];\n\n resendRefundCallback!: T extends \"v1\"\n ? V1Methods[\"resendRefundCallback\"]\n : V2Methods[\"resendRefundCallback\"];\n\n initiateRemittance!: T extends \"v1\" ? never : V2Methods[\"initiateRemittance\"];\n\n resendRemittanceCallback!: T extends \"v1\"\n ? never\n : V2Methods[\"resendRemittanceCallback\"];\n\n checkRemittanceStatus!: T extends \"v1\"\n ? never\n : V2Methods[\"checkRemittanceStatus\"];\n\n cancelEnqueuedRemittance!: T extends \"v1\"\n ? never\n : V2Methods[\"cancelEnqueuedRemittance\"];\n\n requestPayPage!: T extends \"v1\"\n ? V1Methods[\"requestPayPage\"]\n : V2Methods[\"requestPayPage\"];\n\n getWalletBalances!: T extends \"v1\"\n ? V1Methods[\"getWalletBalances\"]\n : V2Methods[\"getWalletBalances\"];\n getWalletBalancesByCountry!: T extends \"v1\"\n ? V1Methods[\"getWalletBalancesByCountry\"]\n : never;\n\n requestStatement!: T extends \"v1\" ? never : V2Methods[\"requestStatement\"];\n\n getStatementStatus!: T extends \"v1\" ? never : V2Methods[\"getStatementStatus\"];\n\n getActiveConfiguration!: T extends \"v1\"\n ? V1Methods[\"getActiveConfiguration\"]\n : V2Methods[\"getActiveConfiguration\"];\n\n getProviderAvailability!: T extends \"v1\"\n ? V1Methods[\"getProviderAvailability\"]\n : V2Methods[\"getProviderAvailability\"];\n\n getProviderPrediction!: T extends \"v1\"\n ? V1Methods[\"getProviderAvailability\"]\n : V2Methods[\"getProviderPrediction\"];\n\n getPublicKeys!: T extends \"v1\"\n ? V1Methods[\"getPublicKeys\"]\n : V2Methods[\"getPublicKeys\"];\n}\n","/** biome-ignore-all lint/suspicious/noExplicitAny: <'can be used'> */\nimport { type ClientConfig, PawaPayClient } from \"@/client.ts\";\nimport type { V1Methods, V2Methods } from \"./methods.t.ts\";\n\nexport type PawaPayClientV1 = V1Methods;\nexport type PawaPayClientV2 = V2Methods;\n\nexport function createPawaPayClient(\n apiKey: string,\n config?: ClientConfig<\"v1\"> & { apiVersion?: \"v1\" },\n): PawaPayClientV1;\n\nexport function createPawaPayClient(\n apiKey: string,\n config?: ClientConfig<\"v2\"> & { apiVersion?: \"v2\" },\n): PawaPayClientV2;\n\nexport function createPawaPayClient(\n apiKey: string,\n config: ClientConfig<\"v1\" | \"v2\">,\n) {\n const internalV1 =\n config?.apiVersion === \"v1\"\n ? new PawaPayClient<\"v1\">(apiKey, {\n apiVersion: \"v1\",\n environment: config.environment,\n })\n : (undefined as any);\n\n const internalV2 =\n config?.apiVersion !== \"v1\"\n ? new PawaPayClient<\"v2\">(apiKey, {\n apiVersion: \"v2\",\n environment: config.environment,\n })\n : (undefined as any);\n\n if (config?.apiVersion === \"v1\") {\n /**\n * NOTE: This binds the version 1 functions\n */\n return {\n requestDeposit: internalV1.requestDeposit.bind(internalV1),\n checkDepositStatus: internalV1.checkDepositStatus.bind(internalV1),\n resendDepositCallback: internalV1.resendDepositCallback.bind(internalV1),\n requestPayout: internalV1.requestPayout.bind(internalV1),\n checkPayoutStatus: internalV1.checkPayoutStatus.bind(internalV1),\n resendPayoutCallback: internalV1.resendPayoutCallback.bind(internalV1),\n cancelEnqueuedPayout: internalV1.cancelEnqueuedPayout.bind(internalV1),\n initiateBulkPayout: internalV1.initiateBulkPayout.bind(internalV1),\n initiateRefund: internalV1.initiateRefund.bind(internalV1),\n checkRefundStatus: internalV1.checkRefundStatus.bind(internalV1),\n resendRefundCallback: internalV1.resendRefundCallback.bind(internalV1),\n requestPayPage: internalV1.requestPayPage.bind(internalV1),\n getWalletBalances: internalV1.getWalletBalances.bind(internalV1),\n getWalletBalancesByCountry:\n internalV1.getWalletBalancesByCountry.bind(internalV1),\n getActiveConfiguration:\n internalV1.getActiveConfiguration.bind(internalV1),\n getProviderAvailability:\n internalV1.getProviderAvailability.bind(internalV1),\n getProviderPrediction: internalV1.getProviderPrediction.bind(internalV1),\n getPublicKeys: internalV1.getPublicKeys.bind(internalV1),\n } as PawaPayClientV1;\n } else {\n /**\n * NOTE: This binds the version 2 functions\n */\n return {\n requestDeposit: internalV2.requestDeposit.bind(internalV2),\n checkDepositStatus: internalV2.checkDepositStatus.bind(internalV2),\n resendDepositCallback: internalV2.resendDepositCallback.bind(internalV2),\n requestPayout: internalV2.requestPayout.bind(internalV2),\n checkPayoutStatus: internalV2.checkPayoutStatus.bind(internalV2),\n resendPayoutCallback: internalV2.resendPayoutCallback.bind(internalV2),\n cancelEnqueuedPayout: internalV2.cancelEnqueuedPayout.bind(internalV2),\n initiateBulkPayout: internalV2.initiateBulkPayout.bind(internalV2),\n initiateRefund: internalV2.initiateRefund.bind(internalV2),\n checkRefundStatus: internalV2.checkRefundStatus.bind(internalV2),\n resendRefundCallback: internalV2.resendRefundCallback.bind(internalV2),\n requestPayPage: internalV2.requestPayPage.bind(internalV2),\n getWalletBalances: internalV2.getWalletBalances.bind(internalV2),\n getActiveConfiguration:\n internalV2.getActiveConfiguration.bind(internalV2),\n getProviderAvailability:\n internalV2.getProviderAvailability.bind(internalV2),\n getProviderPrediction: internalV2.getProviderPrediction.bind(internalV2),\n getPublicKeys: internalV2.getPublicKeys.bind(internalV2),\n /**\n * NOTE: Below are version 2 only\n */\n initiateRemittance: internalV2.initiateRemittance.bind(internalV2),\n resendRemittanceCallback:\n internalV2.resendRemittanceCallback.bind(internalV2),\n checkRemittanceStatus: internalV2.checkRemittanceStatus.bind(internalV2),\n cancelEnqueuedRemittance:\n internalV2.cancelEnqueuedRemittance.bind(internalV2),\n requestStatement: internalV2.requestStatement.bind(internalV2),\n getStatementStatus: internalV2.getStatementStatus.bind(internalV2),\n } as PawaPayClientV2;\n }\n}\n"],"mappings":"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"}