pawapay-sdk 0.1.6 → 1.0.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  # PawaPay SDK for Node.js
2
2
 
3
3
  <p align="center">
4
- <img src="https://camo.githubusercontent.com/d0a69e9f739056676aa125e5d8cf86d739719451e104bc215e4f38cc12ae4919/68747470733a2f2f676c6f62616c2d75706c6f6164732e776562666c6f772e636f6d2f3632383234353931303135616133313466643330386466312f3634313162323635393665336465336635323535316330305f4c6f676f706177617061792d702d3530302e706e67" alt="pawaPay Logo" width="220"/>
4
+ <img src="https://cdn.prod.website-files.com/62824591015aa314fd308df1/66cf1b87a6a22a3cb5511621_Logo-3.svg" alt="pawaPay Logo" width="220"/>
5
5
  </p>
6
6
 
7
7
  <p align="center">
@@ -16,23 +16,25 @@
16
16
  [![GitHub issues](https://img.shields.io/github/issues/jonace-mpelule/pawapay-sdk)](https://github.com/jonace-mpelule/pawapay-sdk/issues)
17
17
  [![GitHub last commit](https://img.shields.io/github/last-commit/jonace-mpelule/pawapay-sdk)](https://github.com/jonace-mpelule/pawapay-sdk/commits/main)
18
18
 
19
- 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.
19
+ A comprehensive TypeScript/JavaScript SDK for integrating with the pawaPay API, enabling seamless mobile money operations. This SDK supports the latest **API Version 2**.
20
20
 
21
21
  ## Features
22
22
  - **Deposits**: Initiate, check status, and manage deposit transactions.
23
23
  - **Payouts**: Send single or bulk payouts, check payout status, resend callbacks, and cancel enqueued payouts.
24
- - **Refunds**: Request refunds, check refund status, and resend refund callbacks.
25
- - **Wallets**: Retrieve wallet balances by country or overall.
24
+ - **Refunds**: Initiate refunds, check refund status, and resend refund callbacks.
25
+ - **Remittances**: Initiate cross-border remittances, check status, and manage callbacks.
26
+ - **Wallets**: Retrieve wallet balances.
27
+ - **Statements**: Request financial statements and check their generation status.
26
28
  - **Payment Pages**: Generate hosted payment pages for customer payments.
27
- - **Toolkit**: Access configuration, available correspondents, correspondent prediction, and public keys.
29
+ - **Toolkit**: Access configuration, available providers, provider prediction, and public keys.
28
30
 
29
31
  ## Installation
30
32
  ```bash
31
- npm install pawapay-sdk
33
+ npm install pawapay-sdk@latest
32
34
  ```
33
35
 
34
36
  ## Generating UUIDs for Transaction IDs
35
- You can generate UUIDs for `depositId`, `payoutId`, and `refundId` using the [uuid](https://www.npmjs.com/package/uuid) package (version 4):
37
+ You can generate UUIDs for `depositId`, `payoutId`, `refundId`, etc., using the [uuid](https://www.npmjs.com/package/uuid) package (version 4):
36
38
 
37
39
  ```bash
38
40
  npm install uuid
@@ -43,15 +45,21 @@ import { v4 as uuidv4 } from 'uuid';
43
45
 
44
46
  const depositId = uuidv4();
45
47
  const payoutId = uuidv4();
46
- const refundId = uuidv4();
47
48
  ```
48
49
 
49
50
  ## Usage
51
+ Initialize the client with your API Key and configuration.
52
+
50
53
  ```typescript
51
- import { PawaPayClient } from 'pawapay-sdk';
54
+ import { createPawaPayClient } from 'pawapay-sdk';
52
55
 
53
- const client = new PawaPayClient('YOUR_API_KEY', { environment: 'sandbox' });
56
+ const client = createPawaPayClient('YOUR_API_KEY', {
57
+ apiVersion: 'v2',
58
+ environment: 'sandbox', // or 'live'
59
+ });
54
60
  ```
61
+ _‼️ **Note**: V1 is deprecated. Please migrate to V2 for the latest features and support._
62
+
55
63
 
56
64
  ## API Reference & Examples
57
65
 
@@ -59,43 +67,60 @@ const client = new PawaPayClient('YOUR_API_KEY', { environment: 'sandbox' });
59
67
  - **requestDeposit(data, options?)**: Initiate a deposit.
60
68
  ```typescript
61
69
  import { v4 as uuidv4 } from 'uuid';
62
- const depositConfig = {
70
+ import type { DepositConfig_v2 } from "pawapay-sdk";
71
+
72
+ const depositConfig: DepositConfig_v2 = {
63
73
  depositId: uuidv4(),
64
- amount: '100.00',
65
- currency: 'MWK',
66
- country: 'MWI',
67
- correspondent: 'AIRTEL_MWI',
68
- payer: { type: 'MSISDN', address: { value: '265991234567' } },
69
- customerTimestamp: new Date().toISOString(),
70
- statementDescription: 'Payment for order 1234',
71
- metadata: [{ fieldName: 'orderId', fieldValue: '1234' }]
74
+ amount: "100.00",
75
+ currency: "MWK",
76
+ payer: {
77
+ type: "MMO",
78
+ accountDetails: {
79
+ phoneNumber: "+265999644321",
80
+ provider: "AIRTEL_MWI",
81
+ },
82
+ },
83
+ customerMessage: "Payment for order #123",
84
+ metadata: [
85
+ {
86
+ orderId: "or_213243455332",
87
+ },
88
+ ],
72
89
  };
73
- const depositResponse = await client.requestDeposit(depositConfig);
90
+
91
+ const deposit = await client.requestDeposit(depositConfig);
74
92
  ```
75
93
  - **checkDepositStatus(depositId, options?)**: Get status of a deposit.
76
94
  ```typescript
77
- const statusResponse = await client.checkDepositStatus(depositConfig.depositId);
95
+ const statusResponse = await client.checkDepositStatus("DEPOSIT_ID_UUID");
78
96
  ```
79
97
  - **resendDepositCallback(depositId, options?)**: Resend deposit callback.
80
98
  ```typescript
81
- const resendResponse = await client.resendDepositCallback(depositConfig.depositId);
99
+ const resendResponse = await client.resendDepositCallback("DEPOSIT_ID_UUID");
82
100
  ```
83
101
 
84
102
  ### Payouts
85
103
  - **requestPayout(data, options?)**: Initiate a payout.
86
104
  ```typescript
87
105
  import { v4 as uuidv4 } from 'uuid';
88
- const payoutConfig = {
106
+ import type { RequestPayoutConfig_v2 } from "pawapay-sdk";
107
+
108
+ const payoutConfig: RequestPayoutConfig_v2 = {
89
109
  payoutId: uuidv4(),
90
110
  amount: '50.00',
91
111
  currency: 'MWK',
92
- correspondent: 'AIRTEL_MWI',
93
- recipient: '265991234567',
94
- customerTimestamp: new Date().toISOString(),
95
- statementDescription: 'Payout for service',
96
- country: 'MWI',
112
+ recipient: {
113
+ type: "MMO",
114
+ accountDetails: {
115
+ phoneNumber: "265991234567",
116
+ provider: "AIRTEL_MWI"
117
+ }
118
+ },
119
+ customerMessage: 'Payout for service',
120
+ clientReferenceId: 'REF-12345',
97
121
  metadata: []
98
122
  };
123
+
99
124
  const payoutResponse = await client.requestPayout(payoutConfig);
100
125
  ```
101
126
  - **checkPayoutStatus(payoutId, options?)**: Get payout status.
@@ -110,76 +135,117 @@ const resendPayout = await client.resendPayoutCallback(payoutConfig.payoutId);
110
135
  ```typescript
111
136
  const cancelResponse = await client.cancelEnqueuedPayout(payoutConfig.payoutId);
112
137
  ```
113
- - **requestBulkPayout(data[], options?)**: Send multiple payouts in bulk.
138
+ - **initiateBulkPayout(data[], options?)**: Send multiple payouts in bulk.
114
139
  ```typescript
140
+ // Takes an array of RequestPayoutConfig_v2
115
141
  const bulkPayouts = [payoutConfig, { ...payoutConfig, payoutId: uuidv4() }];
116
- const bulkResponse = await client.requestBulkPayout(bulkPayouts);
142
+ const bulkResponse = await client.initiateBulkPayout(bulkPayouts);
117
143
  ```
118
144
 
119
145
  ### Refunds
120
- - **requestRefund(refundConfig, options?)**: Request a refund.
146
+ - **initiateRefund(data, options?)**: Request a refund.
121
147
  ```typescript
122
148
  import { v4 as uuidv4 } from 'uuid';
123
- const refundConfig = {
149
+ import type { RequestRefundConfig_v2 } from "pawapay-sdk";
150
+
151
+ const refundConfig: RequestRefundConfig_v2 = {
124
152
  refundId: uuidv4(),
125
- depositId: depositConfig.depositId,
153
+ depositId: "ORIGINAL_DEPOSIT_ID",
126
154
  amount: '100.00',
155
+ currency: 'MWK',
156
+ clientReferenceId: 'REF-REFUND-001',
127
157
  metadata: [{ fieldName: 'reason', fieldValue: 'Customer request' }]
128
158
  };
129
- const refundResponse = await client.requestRefund(refundConfig);
159
+
160
+ const refundResponse = await client.initiateRefund(refundConfig);
130
161
  ```
131
162
  - **checkRefundStatus(refundId, options?)**: Get refund status.
132
163
  ```typescript
133
- const refundStatus = await client.checkRefundStatus(refundConfig.refundId);
164
+ const refundStatus = await client.checkRefundStatus("REFUND_ID_UUID");
134
165
  ```
135
166
  - **resendRefundCallback(refundId, options?)**: Resend refund callback.
136
167
  ```typescript
137
- const resendRefund = await client.resendRefundCallback(refundConfig.refundId);
168
+ const resendRefund = await client.resendRefundCallback("REFUND_ID_UUID");
138
169
  ```
139
170
 
171
+ ### Remittances
172
+ - **initiateRemittance(data, options?)**: Initiate a cross-border remittance.
173
+ ```typescript
174
+ import type { InitiateRemittanceConfig } from "pawapay-sdk";
175
+ // See type definition for full structure of recipient and sender objects
176
+ const remittanceConfig: InitiateRemittanceConfig = {
177
+ remittanceId: uuidv4(),
178
+ amount: "500.00",
179
+ currency: "ZMW",
180
+ recipient: { /* ... */ },
181
+ sender: { /* ... */ },
182
+ customerMessage: "Family Support",
183
+ metadata: []
184
+ };
185
+ const response = await client.initiateRemittance(remittanceConfig);
186
+ ```
187
+ - **checkRemittanceStatus(remittanceId, options?)**
188
+ - **resendRemittanceCallback(remittanceId, options?)**
189
+ - **cancelEnqueuedRemittance(remittanceId, options?)**
190
+
140
191
  ### Payment Pages
141
- - **requestPaymentPage(payload, options?)**: Create a hosted payment page session.
192
+ - **requestPayPage(data, options?)**: Create a hosted payment page session.
142
193
  ```typescript
143
- const payPageConfig = {
194
+ import type { RequestPayPageConfig_v2 } from "pawapay-sdk";
195
+
196
+ const payPageConfig: RequestPayPageConfig_v2 = {
144
197
  depositId: uuidv4(),
145
198
  returnUrl: 'https://merchant.com/paymentProcessed',
146
- statementDescription: 'Ticket purchase',
147
- amount: '20.00',
148
- msisdn: '265991234567',
199
+ customerMessage: 'Ticket purchase',
200
+ amountDetails: {
201
+ amount: '20.00',
202
+ currency: 'MWK'
203
+ },
204
+ phoneNumber: '265991234567',
149
205
  language: 'EN',
150
206
  country: 'MWI',
151
207
  reason: 'Event ticket',
152
208
  metadata: [{ fieldName: 'eventId', fieldValue: 'E123' }]
153
209
  };
154
- const payPageResponse = await client.requestPaymentPage(payPageConfig);
210
+ const payPageResponse = await client.requestPayPage(payPageConfig);
155
211
  ```
156
212
 
157
- ### Wallets
158
- - **checkWalletBalances(options?)**: Get all wallet balances.
213
+ ### Statements
214
+ - **requestStatement(data, options?)**: Request a financial statement.
159
215
  ```typescript
160
- const walletBalances = await client.checkWalletBalances({});
216
+ const statementReq = {
217
+ wallet: { country: "MWI", currency: "MWK", provider: "AIRTEL_MWI" },
218
+ callbackUrl: "https://your-callback.url",
219
+ startDate: "2023-01-01",
220
+ endDate: "2023-01-31",
221
+ compressed: false
222
+ };
223
+ const response = await client.requestStatement(statementReq);
161
224
  ```
162
- - **checkWalletBalancesByCountry(country, options?)**: Get wallet balances for a specific country.
225
+ - **getStatementStatus(statementId, options?)**: Check generation status.
226
+
227
+ ### Wallets
228
+ - **getWalletBalances(options?)**: Get all wallet balances.
163
229
  ```typescript
164
- const mwBalances = await client.checkWalletBalancesByCountry('MWI', {});
230
+ const walletBalances = await client.getWalletBalances({});
165
231
  ```
166
232
 
167
233
  ### Toolkit
168
- - **getActiveConfiguration(options?)**: Get merchant configuration and supported correspondents.
234
+ - **getActiveConfiguration(options?)**: Get merchant configuration.
169
235
  ```typescript
170
236
  const config = await client.getActiveConfiguration({});
171
237
  ```
172
- - **getAvailableCorrespondent(options?)**: List available correspondents and their operational status.
238
+ - **getProviderAvailability(options?)**: List available providers and their status.
173
239
  ```typescript
174
- const correspondents = await client.getAvailableCorrespondent({});
240
+ const providers = await client.getProviderAvailability({});
175
241
  ```
176
- - **predictCorrespondent(msisdn, options?)**: Predict the correct correspondent for a phone number.
242
+ - **getProviderPrediction(phoneNumber, options?)**: Predict the provider for a phone number.
177
243
  ```typescript
178
- const prediction = await client.predictCorrespondent('265991234567', {});
244
+ const prediction = await client.getProviderPrediction('265991234567');
179
245
  ```
180
- - **getPublicKey(options?)**: Retrieve public keys for callback signature verification.
246
+ - **getPublicKeys(options?)**: Retrieve public keys for callback signature verification.
181
247
  ```typescript
182
- const publicKeys = await client.getPublicKey({});
248
+ const publicKeys = await client.getPublicKeys({});
183
249
  ```
184
250
 
185
251
  ## Error Handling
@@ -197,67 +263,23 @@ if (response.success) {
197
263
 
198
264
  ## Types
199
265
 
200
- The following TypeScript types are exported by the `pawapay-sdk` package and can be imported for use in your own code:
201
-
202
- - `PawaPayError`
203
- - `DepositConfig`
204
- - `DepositResponse`
205
- - `RequestPayoutConfig`
206
- - `RequestBulkPayoutConfig`
207
- - `RequestPayPageConfig`
208
- - `RequestRefundConfig`
209
- - `WalletBalance`
210
- - `PawaPayResponse<T, E>`
211
- - `BaseRequestPayoutResponse`
212
- - `RequestBulkPayoutResponse`
213
- - `RequestPayPageResponse`
214
- - `RequestRefundResponse`
215
- - `WalletBalanceResponse`
216
- - `DepositCallback`
217
- - `PayoutCallback`
218
- - `RefundCallback`
219
- - `PayPageCallback`
266
+ The following TypeScript types are exported by the `pawapay-sdk` package:
220
267
 
221
- **Example:**
268
+ - `DepositConfig_v2`, `DepositResponse_v2`, `DepositStatusResponse_v2`
269
+ - `RequestPayoutConfig_v2`, `RequestPayoutResponse_v2`
270
+ - `RequestRefundConfig_v2`, `RequestRefundResponse_v2`
271
+ - `InitiateRemittanceConfig`, `InitiateRemittanceResponse`
272
+ - `RequestPayPageConfig_v2`
273
+ - `RequestStatementConfig`, `RequestStatementResponse_v2`
274
+ - `WalletBalance_v2`
275
+ - `ProviderAvailability_v2`
276
+ - `ProviderPrediction_v2`
277
+ - `PawaPayResponse`, `PawaPayError`
222
278
 
223
- ```typescript
224
- import { DepositConfig, PawaPayResponse, PawaPayError } from "pawapay-sdk";
225
- ```
226
-
227
- - **checkWalletBalancesByCountry(country, options?)**: Get wallet balances for a specific country.
228
- ```typescript
229
- const mwBalances = await client.checkWalletBalancesByCountry('MWI', {});
230
- ```
231
-
232
- ### Toolkit
233
- - **getActiveConfiguration(options?)**: Get merchant configuration and supported correspondents.
234
- ```typescript
235
- const config = await client.getActiveConfiguration({});
236
- ```
237
- - **getAvailableCorrespondent(options?)**: List available correspondents and their operational status.
238
- ```typescript
239
- const correspondents = await client.getAvailableCorrespondent({});
240
- ```
241
- - **predictCorrespondent(msisdn, options?)**: Predict the correct correspondent for a phone number.
242
- ```typescript
243
- const prediction = await client.predictCorrespondent('265991234567', {});
244
- ```
245
- - **getPublicKey(options?)**: Retrieve public keys for callback signature verification.
246
- ```typescript
247
- const publicKeys = await client.getPublicKey({});
248
- ```
279
+ **Example:**
249
280
 
250
- ## Error Handling
251
- All methods return a `PawaPayResponse<T, E>` object:
252
281
  ```typescript
253
- const response = await client.requestDeposit(depositConfig);
254
- if (response.success) {
255
- // Access response.data
256
- console.log('Success:', response.data);
257
- } else {
258
- // Access response.error and response.status
259
- console.error('Error:', response.error, 'Status:', response.status);
260
- }
282
+ import { DepositConfig_v2, PawaPayResponse, PawaPayError } from "pawapay-sdk";
261
283
  ```
262
284
 
263
285
  ## Environments
@@ -270,4 +292,4 @@ if (response.success) {
270
292
  - [GitHub](https://github.com/jonace-mpelule)
271
293
 
272
294
  ## License
273
- MIT
295
+ MIT
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- var l=Object.create;var u=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var i=(s,e)=>u(s,"name",{value:e,configurable:!0});var q=(s,e)=>{for(var t in e)u(s,t,{get:e[t],enumerable:!0})},c=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of h(e))!y.call(s,a)&&a!==t&&u(s,a,{get:()=>e[a],enumerable:!(r=d(e,a))||r.enumerable});return s};var m=(s,e,t)=>(t=s!=null?l(p(s)):{},c(e||!s||!s.__esModule?u(t,"default",{value:s,enumerable:!0}):t,s)),T=s=>c(u({},"__esModule",{value:!0}),s);var b={};q(b,{PawaPayClient:()=>o});module.exports=T(b);var n=m(require("axios"),1);var o=class{static{i(this,"PawaPayClient")}apiClient;apiKey;config;constructor(e,t){this.apiKey=e,this.config=t,this.apiClient=n.default.create({baseURL:t?.overrideUrl??t?.environment=="live"?"https://api.pawapay.io":"https://api.sandbox.pawapay.io",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`}})}async request(e,t){try{let r=await this.apiClient.request(e);return{success:!0,data:r.data,status:r.status,headers:r.headers}}catch(r){return n.default.isAxiosError(r)?{success:!1,error:r.response?.data||r.message,status:r.response?.status||500}:{success:!1,error:{errorMessage:"Unknown error occurred"},status:500}}}async requestDeposit(e,{options:t}={}){return this.request({method:"POST",url:"/deposits",data:e},t)}async checkDepositStatus(e,{options:t}={}){return this.request({method:"GET",url:`/deposits/${e}`},t)}async resendDepositCallback(e,{options:t}={}){let r={depositId:e};return this.request({method:"POST",url:"/deposits/resend-callback",data:r},t)}async requestPayout(e,{options:t}={}){return this.request({method:"POST",url:"/payouts",data:e},t)}async checkPayoutStatus(e,{options:t}={}){return this.request({method:"GET",url:`/payouts/${e}`},t)}async resendPayoutCallback(e,{options:t}={}){let r={payoutId:e};return this.request({method:"POST",url:"/payouts/resend-callback",data:r},t)}async cancelEnqueuedPayout(e,{options:t}={}){return this.request({method:"POST",url:`/payouts/fail-enqueued/${e}`},t)}async requestBulkPayout(e,{options:t}={}){return this.request({method:"POST",url:"/payouts/bulk",data:e},t)}async requestRefund(e,{options:t}={}){return this.request({method:"POST",url:"/refunds",data:e},t)}async checkRefundStatus(e,{options:t}={}){return this.request({method:"GET",url:`/refunds/${e}`},t)}async resendRefundCallback(e,{options:t}={}){return this.request({method:"POST",url:"/refund/resend-callback",data:{refundId:e}},t)}async requestPaymentPage(e,{options:t}={}){return this.request({method:"POST",url:"/v1/widget/sessions",data:e})}async checkWalletBalances({options:e}={}){return this.request({method:"GET",url:"/v1/wallet-balances"},e)}async checkWalletBalancesByCountry(e,{options:t}={}){return this.request({method:"GET",url:`/v1/wallet-balances/${e}`})}async getActiveConfiguration({options:e}={}){return this.request({method:"GET",url:"/active-conf"},e)}async getAvailableCorrespondent({options:e}={}){return this.request({method:"GET",url:"/availability"},e)}predictCorrespondent(e,{options:t}={}){let r={msisdn:e};return this.request({method:"GET",url:"/v1/predict-correspondent",data:r},t)}getPublicKey({options:e}={}){return this.request({method:"GET",url:"/public-key/https"},e)}};0&&(module.exports={PawaPayClient});
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`axios`);c=s(c);let l=require(`signale`);l=s(l);async function u(e,t,n){try{let r=await e.request({...t,...n});return{success:!0,data:r.data,status:r.status,headers:r.headers}}catch(e){return c.default.isAxiosError(e)?{success:!1,error:e.response?.data||e.message,status:e.response?.status||500}:{success:!1,error:{errorMessage:`Unknown error occurred`},status:500}}}var d=class{apiClient;constructor(e){this.apiClient=e}async resendDepositCallback(e,t){let n={depositId:e};return u(this.apiClient,{method:`POST`,url:`/deposits/resend-callback`,data:n},t.options)}async requestDeposit(e,t){return u(this.apiClient,{method:`POST`,url:`/deposits`,data:e},t.options)}async checkDepositStatus(e,t){return u(this.apiClient,{method:`GET`,url:`/deposits/${e}`},t.options)}async requestPayout(e,t){return u(this.apiClient,{method:`POST`,url:`/payouts`,data:e},t.options)}async checkPayoutStatus(e,t){return u(this.apiClient,{method:`GET`,url:`/payouts/${e}`},t.options)}async resendPayoutCallback(e,t){let n={payoutId:e};return u(this.apiClient,{method:`POST`,url:`/payouts/resend-callback`,data:n},t.options)}async cancelEnqueuedPayout(e,t){return u(this.apiClient,{method:`POST`,url:`/payouts/fail-enqueued/${e}`},t.options)}async initiateBulkPayout(e,t){return u(this.apiClient,{method:`POST`,url:`/payouts/bulk`,data:e},t.options)}async initiateRefund(e,t){return u(this.apiClient,{method:`POST`,url:`/refunds`,data:e},t.options)}async checkRefundStatus(e,t){return u(this.apiClient,{method:`GET`,url:`/refunds/${e}`},t.options)}async resendRefundCallback(e,t){return u(this.apiClient,{method:`POST`,url:`/refund/resend-callback`,data:{refundId:e}},t.options)}async requestPayPage(e,t){return u(this.apiClient,{method:`POST`,url:`/v1/widget/sessions`,data:e},t.options)}async getWalletBalances(e){return u(this.apiClient,{method:`GET`,url:`/v1/wallet-balances`},e.options)}async getWalletBalancesByCountry(e,t){return u(this.apiClient,{method:`GET`,url:`/v1/wallet-balances/${e}`},t.options)}async getActiveConfiguration(e){return u(this.apiClient,{method:`GET`,url:`/active-conf`},e.options)}async resendDepositCallbackV1(e,t){let n={depositId:e};return u(this.apiClient,{method:`POST`,url:`/deposits/resend-callback`,data:n},t.options)}async getProviderAvailability(e){return u(this.apiClient,{method:`GET`,url:`/availability`},e.options)}async getProviderPrediction(e,t){let n={msisdn:e};return u(this.apiClient,{method:`GET`,url:`/v1/predict-correspondent`,data:n},t.options)}async getPublicKeys(e){return u(this.apiClient,{method:`GET`,url:`/public-key/https`},e.options)}},f={v1:{},v2:{deposits:{requestDeposit:`/deposits`,getDepositStatus:e=>`/deposits/${e}`,resendDepositCallback:e=>`/deposits/resend-callback/${e}`},payouts:{requestPayout:`/payouts`,getPayoutStatus:e=>`/payouts/${e}`,resendPayoutCallback:e=>`/payouts/resend-callback/${e}`,cancelPayout:e=>`/payouts/fail-enqueued/${e}`,initiateBulkPayout:`/payouts/bulk`},refunds:{initiateRefund:`/refunds`,checkRefundStatus:e=>`/refunds/${e}`,resendRefundCallback:e=>`/refunds/resend-callback/${e}`},remittences:{initiateRemittance:`/remittances`,cancelEnqueuedRemittance:e=>`/remittances/fail-enqueued/${e}`,getRemittanceStatus:e=>`/remittances/${e}`,resendRemittenceCallback:e=>`/remittances/resend-callback/${e}`},requestPayPage:`/paymentpage`,financial:{getWalletBalances:`/wallet-balances`,getStatementStatus:e=>`/statements/${e}`,requestStatement:`/statements`},toolkit:{getActiveConfiguration:`/active-conf`,getProviderAvailability:`/availability`,getProviderPrediction:`/predict-provider`,getPublicKeys:`/public-key/http`}}},p=class{apiClient;constructor(e){this.apiClient=e}requestDeposit(e,t){return u(this.apiClient,{method:`POST`,url:f.v2.deposits.requestDeposit,data:e},t.options)}checkDepositStatus(e,t){return u(this.apiClient,{method:`GET`,url:f.v2.deposits.getDepositStatus(e)},t.options)}async resendDepositCallback(e,t){return u(this.apiClient,{method:`POST`,url:f.v2.deposits.resendDepositCallback(e)},t.options)}async requestPayout(e,t){return u(this.apiClient,{method:`POST`,data:e,url:f.v2.payouts.requestPayout},t.options)}async checkPayoutStatus(e,t){return u(this.apiClient,{method:`GET`,url:`/payouts/${e}`},t.options)}async cancelEnqueuedPayout(e,t){return u(this.apiClient,{method:`DELETE`,url:f.v2.payouts.cancelPayout(e)},t.options)}async resendPayoutCallback(e,t){return u(this.apiClient,{method:`POST`,url:`/payouts/${e}/resend-callback`},t.options)}async initiateBulkPayout(e,t){return u(this.apiClient,{method:`POST`,data:e,url:f.v2.payouts.initiateBulkPayout},t.options)}async initiateRefund(e,t){return u(this.apiClient,{method:`POST`,data:e,url:f.v2.refunds.initiateRefund},t.options)}async checkRefundStatus(e,t){return u(this.apiClient,{method:`GET`,url:f.v2.refunds.checkRefundStatus(e)},t.options)}async resendRefundCallback(e,t){return u(this.apiClient,{method:`POST`,url:f.v2.refunds.resendRefundCallback(e)},t.options)}async initiateRemittance(e,t){return u(this.apiClient,{method:`POST`,data:e,url:f.v2.remittences.initiateRemittance},t.options)}async resendRemittanceCallback(e,t){return u(this.apiClient,{method:`POST`,url:f.v2.remittences.resendRemittenceCallback(e)},t.options)}async checkRemittanceStatus(e,t){return u(this.apiClient,{method:`GET`,url:f.v2.remittences.getRemittanceStatus(e)},t.options)}async cancelEnqueuedRemittance(e,t){return u(this.apiClient,{method:`POST`,url:f.v2.remittences.cancelEnqueuedRemittance(e)},t.options)}async requestPayPage(e,t){return u(this.apiClient,{method:`POST`,data:e,url:f.v2.requestPayPage},t.options)}async getWalletBalances(e){return u(this.apiClient,{method:`GET`,url:f.v2.financial.getWalletBalances},e.options)}async requestStatement(e,t){return u(this.apiClient,{method:`POST`,url:f.v2.financial.requestStatement,data:e},t.options)}async getStatementStatus(e,t){return u(this.apiClient,{method:`GET`,url:f.v2.financial.getStatementStatus(e)},t.options)}async getActiveConfiguration(e){return u(this.apiClient,{method:`GET`,url:f.v2.toolkit.getActiveConfiguration},e.options)}async getProviderAvailability(e){return u(this.apiClient,{method:`GET`,url:f.v2.toolkit.getProviderAvailability},e.options)}async getProviderPrediction(e,t){return u(this.apiClient,{method:`POST`,data:{phoneNumber:e},url:f.v2.toolkit.getProviderPrediction},t.options)}async getPublicKeys(e){return u(this.apiClient,{method:`GET`,url:f.v2.toolkit.getPublicKeys},e.options)}},m=class{apiClient;apiKey;config;v1_Implementation;v2_Implementation;constructor(e,t){this.apiKey=e,this.config={apiVersion:t?.apiVersion??`v2`,...t},this.config.apiVersion===`v1`&&l.default.warn(`⚠️ Pawapay v1 is deprecated. Upgrade to v2.`);let n=this.config.apiVersion===`v2`?this.config.environment===`live`?`https://api.pawapay.io/v2`:`https://api.sandbox.pawapay.io/v2`:this.config.environment===`live`?`https://api.pawapay.io`:`https://api.sandbox.pawapay.io`;this.apiClient=c.default.create({baseURL:n,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${this.apiKey}`}}),this.v1_Implementation=new d(this.apiClient),this.v2_Implementation=new p(this.apiClient),this.config.apiVersion===`v1`&&(this.requestDeposit=this.v1_Implementation.requestDeposit,this.checkDepositStatus=this.v1_Implementation.checkDepositStatus,this.resendDepositCallback=this.v1_Implementation.resendDepositCallback,this.checkPayoutStatus=this.v1_Implementation.checkPayoutStatus,this.requestPayout=this.v1_Implementation.requestPayout,this.cancelEnqueuedPayout=this.v1_Implementation.cancelEnqueuedPayout,this.resendPayoutCallback=this.v1_Implementation.resendPayoutCallback,this.initiateRefund=this.v1_Implementation.initiateRefund,this.initiateBulkPayout=this.v1_Implementation.initiateBulkPayout,this.checkRefundStatus=this.v1_Implementation.checkRefundStatus,this.resendRefundCallback=this.v1_Implementation.resendRefundCallback,this.requestPayPage=this.v1_Implementation.requestPayPage,this.getWalletBalances=this.v1_Implementation.getWalletBalances,this.getWalletBalancesByCountry=this.v1_Implementation.getWalletBalancesByCountry,this.getActiveConfiguration=this.v1_Implementation.getActiveConfiguration,this.getProviderAvailability=this.v1_Implementation.getProviderAvailability,this.getProviderPrediction=this.v1_Implementation.getProviderPrediction,this.getPublicKeys=this.v1_Implementation.getPublicKeys),this.config.apiVersion===`v2`&&(this.requestDeposit=this.v2_Implementation.requestDeposit,this.checkDepositStatus=this.v2_Implementation.checkDepositStatus,this.resendDepositCallback=this.v2_Implementation.resendDepositCallback,this.checkPayoutStatus=this.v2_Implementation.checkPayoutStatus,this.requestPayout=this.v2_Implementation.requestPayout,this.cancelEnqueuedPayout=this.v2_Implementation.cancelEnqueuedPayout,this.resendPayoutCallback=this.v2_Implementation.resendPayoutCallback,this.initiateBulkPayout=this.v2_Implementation.initiateBulkPayout,this.initiateRefund=this.v2_Implementation.initiateRefund,this.checkRefundStatus=this.v2_Implementation.checkRefundStatus,this.resendRefundCallback=this.v2_Implementation.resendRefundCallback,this.initiateRemittance=this.v2_Implementation.initiateRemittance,this.resendRemittanceCallback=this.v2_Implementation.resendRemittanceCallback,this.checkRemittanceStatus=this.v2_Implementation.checkRemittanceStatus,this.cancelEnqueuedRemittance=this.v2_Implementation.cancelEnqueuedRemittance,this.requestPayPage=this.v2_Implementation.requestPayPage,this.getWalletBalances=this.v2_Implementation.getWalletBalances,this.requestStatement=this.v2_Implementation.requestStatement,this.getStatementStatus=this.v2_Implementation.getStatementStatus,this.getActiveConfiguration=this.v2_Implementation.getActiveConfiguration,this.getProviderAvailability=this.v2_Implementation.getProviderAvailability,this.getProviderPrediction=this.v2_Implementation.getProviderPrediction,this.getPublicKeys=this.v2_Implementation.getPublicKeys)}requestDeposit;checkDepositStatus;resendDepositCallback;checkPayoutStatus;requestPayout;cancelEnqueuedPayout;resendPayoutCallback;initiateBulkPayout;initiateRefund;checkRefundStatus;resendRefundCallback;initiateRemittance;resendRemittanceCallback;checkRemittanceStatus;cancelEnqueuedRemittance;requestPayPage;getWalletBalances;getWalletBalancesByCountry;requestStatement;getStatementStatus;getActiveConfiguration;getProviderAvailability;getProviderPrediction;getPublicKeys};function h(e,t){let n=new m(e,{apiVersion:`v1`,environment:t.environment}),r=new m(e,{apiVersion:`v2`,environment:t.environment});return t?.apiVersion===`v1`?{requestDeposit:n.requestDeposit.bind(n),checkDepositStatus:n.checkDepositStatus.bind(n),resendDepositCallback:n.resendDepositCallback.bind(n),requestPayout:n.requestPayout.bind(n),checkPayoutStatus:n.checkPayoutStatus.bind(n),resendPayoutCallback:n.resendPayoutCallback.bind(n),cancelEnqueuedPayout:n.cancelEnqueuedPayout.bind(n),initiateBulkPayout:n.initiateBulkPayout.bind(n),initiateRefund:n.initiateRefund.bind(n),checkRefundStatus:n.checkRefundStatus.bind(n),resendRefundCallback:n.resendRefundCallback.bind(n),requestPayPage:n.requestPayPage.bind(n),getWalletBalances:n.getWalletBalances.bind(n),getWalletBalancesByCountry:n.getWalletBalancesByCountry.bind(n),getActiveConfiguration:n.getActiveConfiguration.bind(n),getProviderAvailability:n.getProviderAvailability.bind(n),getProviderPrediction:n.getProviderPrediction.bind(n),getPublicKeys:n.getPublicKeys.bind(n)}:{requestDeposit:r.requestDeposit.bind(n),checkDepositStatus:r.checkDepositStatus.bind(n),resendDepositCallback:r.resendDepositCallback.bind(n),requestPayout:r.requestPayout.bind(n),checkPayoutStatus:r.checkPayoutStatus.bind(n),resendPayoutCallback:r.resendPayoutCallback.bind(n),cancelEnqueuedPayout:r.cancelEnqueuedPayout.bind(n),initiateBulkPayout:r.initiateBulkPayout.bind(n),initiateRefund:r.initiateRefund.bind(n),checkRefundStatus:r.checkRefundStatus.bind(n),resendRefundCallback:r.resendRefundCallback.bind(n),requestPayPage:r.requestPayPage.bind(n),getWalletBalances:r.getWalletBalances.bind(n),getActiveConfiguration:r.getActiveConfiguration.bind(n),getProviderAvailability:r.getProviderAvailability.bind(n),getProviderPrediction:r.getProviderPrediction.bind(n),getPublicKeys:r.getPublicKeys.bind(n),initiateRemittance:r.initiateRemittance.bind(n),resendRemittanceCallback:r.resendRemittanceCallback.bind(n),checkRemittanceStatus:r.checkRemittanceStatus.bind(n),cancelEnqueuedRemittance:r.cancelEnqueuedRemittance.bind(n),requestStatement:r.requestStatement.bind(n),getStatementStatus:r.getStatementStatus.bind(n)}}exports.createPawaPayClient=h;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/client.ts"],"sourcesContent":["export * from \"./client.ts\"\nexport type {\n PawaPayError,\n DepositConfig,\n DepositResponse,\n DepositCallback,\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"]}
1
+ {"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 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 apiClient: AxiosInstance;\n\n constructor(apiClient: AxiosInstance) {\n this.apiClient = apiClient;\n }\n\n /**\n * INFO: Deposits\n */\n\n 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 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","import { 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 = new PawaPayClient<\"v1\">(apiKey, {\n apiVersion: \"v1\",\n environment: config.environment,\n });\n\n const internalV2 = new PawaPayClient<\"v2\">(apiKey, {\n apiVersion: \"v2\",\n environment: config.environment,\n });\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(internalV1),\n checkDepositStatus: internalV2.checkDepositStatus.bind(internalV1),\n resendDepositCallback: internalV2.resendDepositCallback.bind(internalV1),\n requestPayout: internalV2.requestPayout.bind(internalV1),\n checkPayoutStatus: internalV2.checkPayoutStatus.bind(internalV1),\n resendPayoutCallback: internalV2.resendPayoutCallback.bind(internalV1),\n cancelEnqueuedPayout: internalV2.cancelEnqueuedPayout.bind(internalV1),\n initiateBulkPayout: internalV2.initiateBulkPayout.bind(internalV1),\n initiateRefund: internalV2.initiateRefund.bind(internalV1),\n checkRefundStatus: internalV2.checkRefundStatus.bind(internalV1),\n resendRefundCallback: internalV2.resendRefundCallback.bind(internalV1),\n requestPayPage: internalV2.requestPayPage.bind(internalV1),\n getWalletBalances: internalV2.getWalletBalances.bind(internalV1),\n getActiveConfiguration:\n internalV2.getActiveConfiguration.bind(internalV1),\n getProviderAvailability:\n internalV2.getProviderAvailability.bind(internalV1),\n getProviderPrediction: internalV2.getProviderPrediction.bind(internalV1),\n getPublicKeys: internalV2.getPublicKeys.bind(internalV1),\n /**\n * NOTE: Below are version 2 only\n */\n initiateRemittance: internalV2.initiateRemittance.bind(internalV1),\n resendRemittanceCallback:\n internalV2.resendRemittanceCallback.bind(internalV1),\n checkRemittanceStatus: internalV2.checkRemittanceStatus.bind(internalV1),\n cancelEnqueuedRemittance:\n internalV2.cancelEnqueuedRemittance.bind(internalV1),\n requestStatement: internalV2.requestStatement.bind(internalV1),\n getStatementStatus: internalV2.getStatementStatus.bind(internalV1),\n } as PawaPayClientV2;\n }\n}\n"],"mappings":"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"}