{"version":3,"sources":["../src/index.ts","../src/client.ts"],"sourcesContent":["export * from \"./client.ts\"\nexport type {\n    PawaPayError,\n    DepositConfig,\n    DepositResponse,\n    RequestPayPageConfig,\n    RequestPayPageResponse,\n    RequestRefundConfig,\n    RequestRefundResponse,\n    WalletBalance,\n    ActiveConfigurationResponse,\n    AvailableCorrespondentResponse,\n    PredictCorrespondentResponse,\n    PublicKeysResponse,\n    ResendDepositResponse,\n    PayoutCallback,\n    PawaPayResponse,\n    RequestOptions,\n    DepositStatus,\n    ResendRefundCallbackResponse,\n    RequestPayoutConfig,\n    RequestPayoutRespose,\n    CheckPayoutStatusResponse,\n    CancelEnqueuedPayoutResponse,\n    RequestBulkPayoutConfig,\n    RequestBuildPayoutResponse,\n    ResendPayoutCallbackResponse,\n    RefundCallback,\n    CheckRefundStatusResponse\n} from \"./types/index.t.ts\"","import axios, { AxiosInstance, AxiosRequestConfig } from 'axios';\nimport {\n    DepositConfig,\n    PawaPayError,\n    DepositResponse,\n    PawaPayResponse,\n    RequestOptions,\n    DepositStatus,\n    ResendDepositResponse,\n    WalletBalance,\n    PublicKeysResponse,\n    ActiveConfigurationResponse,\n    AvailableCorrespondentResponse,\n    PredictCorrespondentResponse,\n    RequestPayPageConfig,\n    RequestPayPageResponse,\n    RequestRefundConfig,\n    RequestRefundResponse,\n    ResendRefundCallbackResponse,\n    RequestPayoutConfig,\n    RequestPayoutRespose,\n    CheckPayoutStatusResponse,\n    CancelEnqueuedPayoutResponse,\n    RequestBulkPayoutConfig,\n    RequestBuildPayoutResponse,\n    ResendPayoutCallbackResponse,\n    CheckRefundStatusResponse\n} from './types/index.t.ts';\n\n\n\ntype ClientConfig = {\n    environment?: \"live\" | \"sandbox\",\n    overrideUrl?: string\n}\n\nexport class PawaPayClient {\n    private apiClient: AxiosInstance;\n    protected apiKey: string;\n    private config?: ClientConfig;\n\n    constructor(apiKey: string, config?: ClientConfig,) {\n        this.apiKey = apiKey;\n        this.config = config\n        this.apiClient = axios.create({\n            baseURL: config?.overrideUrl ?? config?.environment == \"live\" ? 'https://api.pawapay.io' : 'https://api.sandbox.pawapay.io',\n            headers: {\n                'Content-Type': 'application/json',\n                'Authorization': `Bearer ${this.apiKey}`\n            }\n        });\n    }\n\n    private async request<T, E>(config: AxiosRequestConfig, options?: RequestOptions)\n        : Promise<PawaPayResponse<T, E>> {\n        try {\n            const response = await this.apiClient.request<T>(config);\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\n    // --- Deposits\n\n    async requestDeposit(data: DepositConfig, { options }: { options?: RequestOptions } = {})\n        : Promise<PawaPayResponse<DepositResponse, PawaPayError>> {\n\n        return this.request({\n            method: 'POST',\n            url: '/deposits',\n            data,\n        }, options)\n    }\n\n\n    async checkDepositStatus(depositId: string, { options }: { options?: RequestOptions } = {})\n        : Promise<PawaPayResponse<DepositStatus[], PawaPayError>> {\n        return this.request({\n            method: 'GET',\n            url: `/deposits/${depositId}`\n        }, options)\n    }\n\n    async resendDepositCallback(depositId: string, { options }: { options?: RequestOptions } = {})\n        : Promise<PawaPayResponse<ResendDepositResponse, PawaPayError>> {\n        const data = { depositId }\n        return this.request({\n            method: 'POST',\n            url: '/deposits/resend-callback',\n            data,\n        }, options)\n    }\n\n    // --- PAYOUTS\n\n    async requestPayout(data: RequestPayoutConfig, { options }: { options?: RequestOptions } = {})\n        : Promise<PawaPayResponse<RequestPayoutRespose, PawaPayError>> {\n        return this.request({\n            method: 'POST',\n            url: '/payouts',\n            data\n        }, options)\n    }\n\n    async checkPayoutStatus(payoutId: string, { options }: { options?: RequestOptions } = {})\n        : Promise<PawaPayResponse<CheckPayoutStatusResponse[], PawaPayError>> {\n        return this.request({\n            method: 'GET',\n            url: `/payouts/${payoutId}`\n        }, options)\n    }\n\n    async resendPayoutCallback(payoutId: string, { options }: { options?: RequestOptions } = {})\n        : Promise<PawaPayResponse<ResendPayoutCallbackResponse, PawaPayError>> {\n        const data = { payoutId }\n        return this.request({\n            method: 'POST',\n            url: '/payouts/resend-callback',\n            data\n        }, options)\n    }\n\n    async cancelEnqueuedPayout(payoutId: string, { options }: { options?: RequestOptions } = {})\n        : Promise<PawaPayResponse<CancelEnqueuedPayoutResponse, PawaPayError>> {\n        return this.request({\n            method: 'POST',\n            url: `/payouts/fail-enqueued/${payoutId}`,\n        }, options)\n    }\n\n    async requestBulkPayout(data: RequestBulkPayoutConfig[], { options }: { options?: RequestOptions } = {})\n        : Promise<PawaPayResponse<RequestBuildPayoutResponse[], PawaPayError>> {\n        return this.request({\n            method: 'POST',\n            url: '/payouts/bulk',\n            data,\n        }, options)\n    }\n\n    // --- REFUND\n    async requestRefund(refundConfig: RequestRefundConfig, { options }: { options?: RequestOptions } = {})\n        : Promise<PawaPayResponse<RequestRefundResponse, PawaPayError>> {\n        return this.request({\n            method: \"POST\",\n            url: '/refunds',\n            data: refundConfig\n        }, options)\n    }\n\n    async checkRefundStatus(refundId: string, { options }: { options?: RequestOptions } = {})\n        : Promise<PawaPayResponse<CheckRefundStatusResponse[], PawaPayError>> {\n        return this.request({\n            method: 'GET',\n            url: `/refunds/${refundId}`\n        }, options)\n    }\n\n    async resendRefundCallback(refundId: string, { options }: { options?: RequestOptions } = {})\n        : Promise<PawaPayResponse<ResendRefundCallbackResponse, PawaPayError>> {\n        return this.request({\n            method: 'POST',\n            url: '/refund/resend-callback',\n            data: { refundId }\n        }, options)\n    }\n\n    // --- PAYMENT PAGE\n\n    async requestPaymentPage(payload: RequestPayPageConfig, { options }: { options?: RequestOptions } = {})\n        : Promise<PawaPayResponse<RequestPayPageResponse, PawaPayError>> {\n        return this.request({\n            method: 'POST',\n            url: '/v1/widget/sessions',\n            data: payload\n        })\n    }\n\n    // --- WALLETS\n\n    async checkWalletBalances({ options }: { options?: RequestOptions } = {})\n        : Promise<PawaPayResponse<WalletBalance, PawaPayError>> {\n        return this.request({\n            method: 'GET',\n            url: '/v1/wallet-balances'\n        }, options)\n    }\n\n    async checkWalletBalancesByCountry(country: string, { options }: { options?: RequestOptions } = {})\n        : Promise<PawaPayResponse<WalletBalance, PawaPayError>> {\n        return this.request({\n            method: 'GET',\n            url: `/v1/wallet-balances/${country}`\n        })\n    }\n\n    // --- TOOLKIT\n\n    async getActiveConfiguration({ options }: { options?: RequestOptions } = {})\n        : Promise<PawaPayResponse<ActiveConfigurationResponse, PawaPayError>> {\n        return this.request({\n            method: `GET`,\n            url: `/active-conf`\n        }, options)\n    }\n\n    async getAvailableCorrespondent({ options }: { options?: RequestOptions } = {})\n        : Promise<PawaPayResponse<AvailableCorrespondentResponse[], PawaPayError>> {\n        return this.request({\n            method: 'GET',\n            url: '/availability'\n        }, options)\n    }\n\n    predictCorrespondent(msisdn: string, { options }: { options?: RequestOptions } = {})\n        : Promise<PawaPayResponse<PredictCorrespondentResponse, PawaPayError>> {\n        const data = { msisdn }\n        return this.request({\n            method: 'GET',\n            url: '/v1/predict-correspondent',\n            data\n        }, options)\n    }\n\n    getPublicKey({ options }: { options?: RequestOptions } = {})\n        : Promise<PawaPayResponse<PublicKeysResponse[], PawaPayError>> {\n        return this.request({\n            method: 'GET',\n            url: '/public-key/https'\n        }, options)\n    }\n}"],"mappings":"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","names":["index_exports","__export","PawaPayClient","__toCommonJS","import_axios","PawaPayClient","apiClient","apiKey","config","constructor","axios","create","baseURL","overrideUrl","environment","headers","request","options","response","success","data","status","error","isAxiosError","message","errorMessage","requestDeposit","method","url","checkDepositStatus","depositId","resendDepositCallback","requestPayout","checkPayoutStatus","payoutId","resendPayoutCallback","cancelEnqueuedPayout","requestBulkPayout","requestRefund","refundConfig","checkRefundStatus","refundId","resendRefundCallback","requestPaymentPage","payload","checkWalletBalances","checkWalletBalancesByCountry","country","getActiveConfiguration","getAvailableCorrespondent","predictCorrespondent","msisdn","getPublicKey"]}