@lepresk/momo-api 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 +224 -0
- package/dist/MomoApi.d.ts +30 -0
- package/dist/MomoApi.d.ts.map +1 -0
- package/dist/MomoApi.js +53 -0
- package/dist/MomoApi.js.map +1 -0
- package/dist/exceptions/MomoException.d.ts +21 -0
- package/dist/exceptions/MomoException.d.ts.map +1 -0
- package/dist/exceptions/MomoException.js +66 -0
- package/dist/exceptions/MomoException.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +55 -0
- package/dist/index.js.map +1 -0
- package/dist/models/AccountBalance.d.ts +9 -0
- package/dist/models/AccountBalance.d.ts.map +1 -0
- package/dist/models/AccountBalance.js +22 -0
- package/dist/models/AccountBalance.js.map +1 -0
- package/dist/models/ApiToken.d.ts +16 -0
- package/dist/models/ApiToken.d.ts.map +1 -0
- package/dist/models/ApiToken.js +27 -0
- package/dist/models/ApiToken.js.map +1 -0
- package/dist/models/Config.d.ts +19 -0
- package/dist/models/Config.d.ts.map +1 -0
- package/dist/models/Config.js +31 -0
- package/dist/models/Config.js.map +1 -0
- package/dist/models/PaymentRequest.d.ts +12 -0
- package/dist/models/PaymentRequest.d.ts.map +1 -0
- package/dist/models/PaymentRequest.js +37 -0
- package/dist/models/PaymentRequest.js.map +1 -0
- package/dist/models/RefundRequest.d.ts +12 -0
- package/dist/models/RefundRequest.d.ts.map +1 -0
- package/dist/models/RefundRequest.js +34 -0
- package/dist/models/RefundRequest.js.map +1 -0
- package/dist/models/Transaction.d.ts +19 -0
- package/dist/models/Transaction.d.ts.map +1 -0
- package/dist/models/Transaction.js +52 -0
- package/dist/models/Transaction.js.map +1 -0
- package/dist/models/TransferRequest.d.ts +12 -0
- package/dist/models/TransferRequest.d.ts.map +1 -0
- package/dist/models/TransferRequest.js +37 -0
- package/dist/models/TransferRequest.js.map +1 -0
- package/dist/products/CollectionApi.d.ts +19 -0
- package/dist/products/CollectionApi.d.ts.map +1 -0
- package/dist/products/CollectionApi.js +97 -0
- package/dist/products/CollectionApi.js.map +1 -0
- package/dist/products/DisbursementApi.d.ts +24 -0
- package/dist/products/DisbursementApi.d.ts.map +1 -0
- package/dist/products/DisbursementApi.js +166 -0
- package/dist/products/DisbursementApi.js.map +1 -0
- package/dist/products/SandboxApi.d.ts +10 -0
- package/dist/products/SandboxApi.d.ts.map +1 -0
- package/dist/products/SandboxApi.js +60 -0
- package/dist/products/SandboxApi.js.map +1 -0
- package/dist/support/uuid.d.ts +2 -0
- package/dist/support/uuid.d.ts.map +1 -0
- package/dist/support/uuid.js +8 -0
- package/dist/support/uuid.js.map +1 -0
- package/package.json +38 -0
package/README.md
ADDED
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
# momo-api
|
|
2
|
+
|
|
3
|
+
MTN Mobile Money API client for Node.js — collections, disbursements and remittances.
|
|
4
|
+
|
|
5
|
+
This is a port of the PHP package [`lepresk/momo-api`](https://github.com/lepresk/momo-api) to Node.js/TypeScript. See the original article at [lepresk.com/blog](https://lepresk.com/blog).
|
|
6
|
+
|
|
7
|
+
## Requirements
|
|
8
|
+
|
|
9
|
+
- Node.js 18 or later (uses native `fetch` and `crypto.randomUUID`)
|
|
10
|
+
- An MTN MoMo developer account with API credentials
|
|
11
|
+
|
|
12
|
+
## Installation
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npm install momo-api
|
|
16
|
+
# or
|
|
17
|
+
pnpm add momo-api
|
|
18
|
+
# or
|
|
19
|
+
yarn add momo-api
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Getting started
|
|
23
|
+
|
|
24
|
+
### Sandbox setup
|
|
25
|
+
|
|
26
|
+
Before making live API calls you need to provision a sandbox user and API key via the `SandboxApi`:
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
import { MomoApi, ENVIRONMENT_SANDBOX } from 'momo-api'
|
|
30
|
+
import { generateUUID } from 'momo-api'
|
|
31
|
+
|
|
32
|
+
const momo = MomoApi.create(ENVIRONMENT_SANDBOX)
|
|
33
|
+
const sandbox = momo.sandbox('your-subscription-key')
|
|
34
|
+
|
|
35
|
+
const apiUser = generateUUID()
|
|
36
|
+
await sandbox.createApiUser(apiUser, 'https://your-callback-host.com')
|
|
37
|
+
const apiKey = await sandbox.createApiKey(apiUser)
|
|
38
|
+
|
|
39
|
+
console.log('API User:', apiUser)
|
|
40
|
+
console.log('API Key:', apiKey)
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Collection
|
|
44
|
+
|
|
45
|
+
The Collection product allows you to request payments from customers.
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
import { MomoApi, ENVIRONMENT_SANDBOX, Config, PaymentRequest } from 'momo-api'
|
|
49
|
+
|
|
50
|
+
const config = Config.collection(
|
|
51
|
+
'your-subscription-key',
|
|
52
|
+
'your-api-user',
|
|
53
|
+
'your-api-key',
|
|
54
|
+
'https://your-callback-host.com/webhook'
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
const collection = MomoApi.create(ENVIRONMENT_SANDBOX).getCollection(config)
|
|
58
|
+
|
|
59
|
+
// Request a payment
|
|
60
|
+
const request = PaymentRequest.make(
|
|
61
|
+
'100', // amount
|
|
62
|
+
'0242439784', // payer phone number (MSISDN)
|
|
63
|
+
'order-123', // external reference ID
|
|
64
|
+
'EUR', // currency
|
|
65
|
+
'Payment for order #123', // payer message (optional)
|
|
66
|
+
'Thank you' // payee note (optional)
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
const referenceId = await collection.requestToPay(request)
|
|
70
|
+
console.log('Payment initiated, reference ID:', referenceId)
|
|
71
|
+
|
|
72
|
+
// Check payment status
|
|
73
|
+
const transaction = await collection.getPaymentStatus(referenceId)
|
|
74
|
+
|
|
75
|
+
if (transaction.isSuccessful()) {
|
|
76
|
+
console.log('Payment successful:', transaction.getFinancialTransactionId())
|
|
77
|
+
} else if (transaction.isPending()) {
|
|
78
|
+
console.log('Payment is still pending')
|
|
79
|
+
} else {
|
|
80
|
+
console.log('Payment failed')
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Get account balance
|
|
84
|
+
const balance = await collection.getBalance()
|
|
85
|
+
console.log(`Balance: ${balance.getAvailableBalance()} ${balance.getCurrency()}`)
|
|
86
|
+
|
|
87
|
+
// Quick pay shorthand
|
|
88
|
+
const refId = await collection.quickPay('50', '0242439784', 'quick-order-456', 'EUR')
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Disbursement
|
|
92
|
+
|
|
93
|
+
The Disbursement product allows you to send money to customers.
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
import { MomoApi, ENVIRONMENT_SANDBOX, Config, PaymentRequest, TransferRequest, RefundRequest } from 'momo-api'
|
|
97
|
+
|
|
98
|
+
const config = Config.disbursement(
|
|
99
|
+
'your-subscription-key',
|
|
100
|
+
'your-api-user',
|
|
101
|
+
'your-api-key',
|
|
102
|
+
'https://your-callback-host.com/webhook'
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
const disbursement = MomoApi.create(ENVIRONMENT_SANDBOX).getDisbursement(config)
|
|
106
|
+
|
|
107
|
+
// Deposit funds to a customer
|
|
108
|
+
const depositRequest = PaymentRequest.make('200', '0242439784', 'dep-001', 'EUR', 'Deposit', 'Here are your funds')
|
|
109
|
+
const depositRefId = await disbursement.deposit(depositRequest)
|
|
110
|
+
const deposit = await disbursement.getDepositStatus(depositRefId)
|
|
111
|
+
|
|
112
|
+
// Transfer funds
|
|
113
|
+
const transferRequest = TransferRequest.make('300', '0242439784', 'xfer-001', 'EUR', 'Transfer', 'For you')
|
|
114
|
+
const transferRefId = await disbursement.transfer(transferRequest)
|
|
115
|
+
const transfer = await disbursement.getTransferStatus(transferRefId)
|
|
116
|
+
|
|
117
|
+
// Refund a previous payment
|
|
118
|
+
const refundRequest = RefundRequest.make('50', 'original-payment-reference-id', 'refund-001', 'EUR')
|
|
119
|
+
const refundRefId = await disbursement.refund(refundRequest)
|
|
120
|
+
const refund = await disbursement.getRefundStatus(refundRefId)
|
|
121
|
+
|
|
122
|
+
// Get disbursement account balance
|
|
123
|
+
const balance = await disbursement.getBalance()
|
|
124
|
+
console.log(`Balance: ${balance.getAvailableBalance()} ${balance.getCurrency()}`)
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Static factory methods
|
|
128
|
+
|
|
129
|
+
For convenience, `MomoApi` provides static factory methods that default to sandbox:
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
const collection = MomoApi.collection(config)
|
|
133
|
+
const disbursement = MomoApi.disbursement(config)
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
For production or non-sandbox environments, use `MomoApi.create`:
|
|
137
|
+
|
|
138
|
+
```typescript
|
|
139
|
+
import { MomoApi, ENVIRONMENT_MTN_GHANA } from 'momo-api'
|
|
140
|
+
|
|
141
|
+
const momo = MomoApi.create(ENVIRONMENT_MTN_GHANA)
|
|
142
|
+
const collection = momo.getCollection(config)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Supported environments
|
|
146
|
+
|
|
147
|
+
| Constant | Value |
|
|
148
|
+
|-----------------------------|---------------------|
|
|
149
|
+
| `ENVIRONMENT_MTN_CONGO` | `mtncongo` |
|
|
150
|
+
| `ENVIRONMENT_MTN_UGANDA` | `mtnuganda` |
|
|
151
|
+
| `ENVIRONMENT_MTN_GHANA` | `mtnghana` |
|
|
152
|
+
| `ENVIRONMENT_IVORY_COAST` | `mtnivorycoast` |
|
|
153
|
+
| `ENVIRONMENT_ZAMBIA` | `mtnzambia` |
|
|
154
|
+
| `ENVIRONMENT_CAMEROON` | `mtncameroon` |
|
|
155
|
+
| `ENVIRONMENT_BENIN` | `mtnbenin` |
|
|
156
|
+
| `ENVIRONMENT_SWAZILAND` | `mtnswaziland` |
|
|
157
|
+
| `ENVIRONMENT_GUINEACONAKRY` | `mtnguineaconakry` |
|
|
158
|
+
| `ENVIRONMENT_SOUTHAFRICA` | `mtnsouthafrica` |
|
|
159
|
+
| `ENVIRONMENT_LIBERIA` | `mtnliberia` |
|
|
160
|
+
| `ENVIRONMENT_SANDBOX` | `sandbox` |
|
|
161
|
+
|
|
162
|
+
## Error handling
|
|
163
|
+
|
|
164
|
+
All API errors are surfaced as typed exceptions that extend `MomoException`:
|
|
165
|
+
|
|
166
|
+
```typescript
|
|
167
|
+
import {
|
|
168
|
+
MomoException,
|
|
169
|
+
BadRequestException,
|
|
170
|
+
InvalidSubscriptionKeyException,
|
|
171
|
+
ResourceNotFoundException,
|
|
172
|
+
ConflictException,
|
|
173
|
+
InternalServerErrorException,
|
|
174
|
+
} from 'momo-api'
|
|
175
|
+
|
|
176
|
+
try {
|
|
177
|
+
const referenceId = await collection.requestToPay(request)
|
|
178
|
+
} catch (err) {
|
|
179
|
+
if (err instanceof InvalidSubscriptionKeyException) {
|
|
180
|
+
console.error('Check your subscription key and API credentials')
|
|
181
|
+
} else if (err instanceof BadRequestException) {
|
|
182
|
+
console.error('Invalid request parameters')
|
|
183
|
+
} else if (err instanceof MomoException) {
|
|
184
|
+
console.error(`MoMo API error (${err.statusCode}):`, err.message)
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## API reference
|
|
190
|
+
|
|
191
|
+
### CollectionApi
|
|
192
|
+
|
|
193
|
+
| Method | Description |
|
|
194
|
+
|---|---|
|
|
195
|
+
| `requestToPay(request)` | Initiate a payment request; returns the reference ID |
|
|
196
|
+
| `getPaymentStatus(paymentId)` | Get the status of a payment |
|
|
197
|
+
| `getBalance()` | Get the collection account balance |
|
|
198
|
+
| `quickPay(amount, phone, reference, currency?)` | Shorthand to initiate a payment |
|
|
199
|
+
| `getAccessToken()` | Retrieve an OAuth access token |
|
|
200
|
+
|
|
201
|
+
### DisbursementApi
|
|
202
|
+
|
|
203
|
+
| Method | Description |
|
|
204
|
+
|---|---|
|
|
205
|
+
| `deposit(request)` | Deposit funds to a customer; returns the reference ID |
|
|
206
|
+
| `getDepositStatus(depositId)` | Get the status of a deposit |
|
|
207
|
+
| `transfer(request)` | Transfer funds; returns the reference ID |
|
|
208
|
+
| `getTransferStatus(transferId)` | Get the status of a transfer |
|
|
209
|
+
| `refund(request)` | Refund a previous payment; returns the reference ID |
|
|
210
|
+
| `getRefundStatus(refundId)` | Get the status of a refund |
|
|
211
|
+
| `getBalance()` | Get the disbursement account balance |
|
|
212
|
+
| `getAccessToken()` | Retrieve an OAuth access token |
|
|
213
|
+
|
|
214
|
+
### SandboxApi
|
|
215
|
+
|
|
216
|
+
| Method | Description |
|
|
217
|
+
|---|---|
|
|
218
|
+
| `createApiUser(apiUser, callbackHost)` | Provision a sandbox API user |
|
|
219
|
+
| `getApiUser(apiUser)` | Get sandbox API user details |
|
|
220
|
+
| `createApiKey(apiUser)` | Generate an API key for a sandbox user |
|
|
221
|
+
|
|
222
|
+
## License
|
|
223
|
+
|
|
224
|
+
MIT
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { CollectionConfig, DisbursementConfig } from './models/Config.js';
|
|
2
|
+
import { CollectionApi } from './products/CollectionApi.js';
|
|
3
|
+
import { DisbursementApi } from './products/DisbursementApi.js';
|
|
4
|
+
import { SandboxApi } from './products/SandboxApi.js';
|
|
5
|
+
export declare const ENVIRONMENT_MTN_CONGO = "mtncongo";
|
|
6
|
+
export declare const ENVIRONMENT_MTN_UGANDA = "mtnuganda";
|
|
7
|
+
export declare const ENVIRONMENT_MTN_GHANA = "mtnghana";
|
|
8
|
+
export declare const ENVIRONMENT_IVORY_COAST = "mtnivorycoast";
|
|
9
|
+
export declare const ENVIRONMENT_ZAMBIA = "mtnzambia";
|
|
10
|
+
export declare const ENVIRONMENT_CAMEROON = "mtncameroon";
|
|
11
|
+
export declare const ENVIRONMENT_BENIN = "mtnbenin";
|
|
12
|
+
export declare const ENVIRONMENT_SWAZILAND = "mtnswaziland";
|
|
13
|
+
export declare const ENVIRONMENT_GUINEACONAKRY = "mtnguineaconakry";
|
|
14
|
+
export declare const ENVIRONMENT_SOUTHAFRICA = "mtnsouthafrica";
|
|
15
|
+
export declare const ENVIRONMENT_LIBERIA = "mtnliberia";
|
|
16
|
+
export declare const ENVIRONMENT_SANDBOX = "sandbox";
|
|
17
|
+
export declare const SANDBOX_URL = "https://sandbox.momodeveloper.mtn.com";
|
|
18
|
+
export declare const PRODUCTION_URL = "https://proxy.momoapi.mtn.com";
|
|
19
|
+
export declare class MomoApi {
|
|
20
|
+
private readonly environment;
|
|
21
|
+
private readonly baseUrl;
|
|
22
|
+
private constructor();
|
|
23
|
+
static create(environment: string): MomoApi;
|
|
24
|
+
static collection(config: CollectionConfig): CollectionApi;
|
|
25
|
+
static disbursement(config: DisbursementConfig): DisbursementApi;
|
|
26
|
+
sandbox(subscriptionKey: string): SandboxApi;
|
|
27
|
+
getCollection(config: CollectionConfig): CollectionApi;
|
|
28
|
+
getDisbursement(config: DisbursementConfig): DisbursementApi;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=MomoApi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MomoApi.d.ts","sourceRoot":"","sources":["../src/MomoApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,eAAO,MAAM,qBAAqB,aAAa,CAAA;AAC/C,eAAO,MAAM,sBAAsB,cAAc,CAAA;AACjD,eAAO,MAAM,qBAAqB,aAAa,CAAA;AAC/C,eAAO,MAAM,uBAAuB,kBAAkB,CAAA;AACtD,eAAO,MAAM,kBAAkB,cAAc,CAAA;AAC7C,eAAO,MAAM,oBAAoB,gBAAgB,CAAA;AACjD,eAAO,MAAM,iBAAiB,aAAa,CAAA;AAC3C,eAAO,MAAM,qBAAqB,iBAAiB,CAAA;AACnD,eAAO,MAAM,yBAAyB,qBAAqB,CAAA;AAC3D,eAAO,MAAM,uBAAuB,mBAAmB,CAAA;AACvD,eAAO,MAAM,mBAAmB,eAAe,CAAA;AAC/C,eAAO,MAAM,mBAAmB,YAAY,CAAA;AAE5C,eAAO,MAAM,WAAW,0CAA0C,CAAA;AAClE,eAAO,MAAM,cAAc,kCAAkC,CAAA;AAE7D,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAEhC,OAAO;IAMP,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAI3C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa;IAM1D,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,eAAe;IAMhE,OAAO,CAAC,eAAe,EAAE,MAAM,GAAG,UAAU;IAI5C,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa;IAItD,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,eAAe;CAG7D"}
|
package/dist/MomoApi.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MomoApi = exports.PRODUCTION_URL = exports.SANDBOX_URL = exports.ENVIRONMENT_SANDBOX = exports.ENVIRONMENT_LIBERIA = exports.ENVIRONMENT_SOUTHAFRICA = exports.ENVIRONMENT_GUINEACONAKRY = exports.ENVIRONMENT_SWAZILAND = exports.ENVIRONMENT_BENIN = exports.ENVIRONMENT_CAMEROON = exports.ENVIRONMENT_ZAMBIA = exports.ENVIRONMENT_IVORY_COAST = exports.ENVIRONMENT_MTN_GHANA = exports.ENVIRONMENT_MTN_UGANDA = exports.ENVIRONMENT_MTN_CONGO = void 0;
|
|
4
|
+
const CollectionApi_js_1 = require("./products/CollectionApi.js");
|
|
5
|
+
const DisbursementApi_js_1 = require("./products/DisbursementApi.js");
|
|
6
|
+
const SandboxApi_js_1 = require("./products/SandboxApi.js");
|
|
7
|
+
exports.ENVIRONMENT_MTN_CONGO = 'mtncongo';
|
|
8
|
+
exports.ENVIRONMENT_MTN_UGANDA = 'mtnuganda';
|
|
9
|
+
exports.ENVIRONMENT_MTN_GHANA = 'mtnghana';
|
|
10
|
+
exports.ENVIRONMENT_IVORY_COAST = 'mtnivorycoast';
|
|
11
|
+
exports.ENVIRONMENT_ZAMBIA = 'mtnzambia';
|
|
12
|
+
exports.ENVIRONMENT_CAMEROON = 'mtncameroon';
|
|
13
|
+
exports.ENVIRONMENT_BENIN = 'mtnbenin';
|
|
14
|
+
exports.ENVIRONMENT_SWAZILAND = 'mtnswaziland';
|
|
15
|
+
exports.ENVIRONMENT_GUINEACONAKRY = 'mtnguineaconakry';
|
|
16
|
+
exports.ENVIRONMENT_SOUTHAFRICA = 'mtnsouthafrica';
|
|
17
|
+
exports.ENVIRONMENT_LIBERIA = 'mtnliberia';
|
|
18
|
+
exports.ENVIRONMENT_SANDBOX = 'sandbox';
|
|
19
|
+
exports.SANDBOX_URL = 'https://sandbox.momodeveloper.mtn.com';
|
|
20
|
+
exports.PRODUCTION_URL = 'https://proxy.momoapi.mtn.com';
|
|
21
|
+
class MomoApi {
|
|
22
|
+
environment;
|
|
23
|
+
baseUrl;
|
|
24
|
+
constructor(environment) {
|
|
25
|
+
this.environment = environment;
|
|
26
|
+
this.baseUrl =
|
|
27
|
+
environment === exports.ENVIRONMENT_SANDBOX ? exports.SANDBOX_URL : exports.PRODUCTION_URL;
|
|
28
|
+
}
|
|
29
|
+
static create(environment) {
|
|
30
|
+
return new MomoApi(environment);
|
|
31
|
+
}
|
|
32
|
+
static collection(config) {
|
|
33
|
+
const environment = exports.ENVIRONMENT_SANDBOX;
|
|
34
|
+
const baseUrl = exports.SANDBOX_URL;
|
|
35
|
+
return new CollectionApi_js_1.CollectionApi(config, baseUrl, environment);
|
|
36
|
+
}
|
|
37
|
+
static disbursement(config) {
|
|
38
|
+
const environment = exports.ENVIRONMENT_SANDBOX;
|
|
39
|
+
const baseUrl = exports.SANDBOX_URL;
|
|
40
|
+
return new DisbursementApi_js_1.DisbursementApi(config, baseUrl, environment);
|
|
41
|
+
}
|
|
42
|
+
sandbox(subscriptionKey) {
|
|
43
|
+
return new SandboxApi_js_1.SandboxApi(subscriptionKey, this.baseUrl);
|
|
44
|
+
}
|
|
45
|
+
getCollection(config) {
|
|
46
|
+
return new CollectionApi_js_1.CollectionApi(config, this.baseUrl, this.environment);
|
|
47
|
+
}
|
|
48
|
+
getDisbursement(config) {
|
|
49
|
+
return new DisbursementApi_js_1.DisbursementApi(config, this.baseUrl, this.environment);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.MomoApi = MomoApi;
|
|
53
|
+
//# sourceMappingURL=MomoApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MomoApi.js","sourceRoot":"","sources":["../src/MomoApi.ts"],"names":[],"mappings":";;;AACA,kEAA2D;AAC3D,sEAA+D;AAC/D,4DAAqD;AAExC,QAAA,qBAAqB,GAAG,UAAU,CAAA;AAClC,QAAA,sBAAsB,GAAG,WAAW,CAAA;AACpC,QAAA,qBAAqB,GAAG,UAAU,CAAA;AAClC,QAAA,uBAAuB,GAAG,eAAe,CAAA;AACzC,QAAA,kBAAkB,GAAG,WAAW,CAAA;AAChC,QAAA,oBAAoB,GAAG,aAAa,CAAA;AACpC,QAAA,iBAAiB,GAAG,UAAU,CAAA;AAC9B,QAAA,qBAAqB,GAAG,cAAc,CAAA;AACtC,QAAA,yBAAyB,GAAG,kBAAkB,CAAA;AAC9C,QAAA,uBAAuB,GAAG,gBAAgB,CAAA;AAC1C,QAAA,mBAAmB,GAAG,YAAY,CAAA;AAClC,QAAA,mBAAmB,GAAG,SAAS,CAAA;AAE/B,QAAA,WAAW,GAAG,uCAAuC,CAAA;AACrD,QAAA,cAAc,GAAG,+BAA+B,CAAA;AAE7D,MAAa,OAAO;IACD,WAAW,CAAQ;IACnB,OAAO,CAAQ;IAEhC,YAAoB,WAAmB;QACrC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,OAAO;YACV,WAAW,KAAK,2BAAmB,CAAC,CAAC,CAAC,mBAAW,CAAC,CAAC,CAAC,sBAAc,CAAA;IACtE,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,WAAmB;QAC/B,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;IACjC,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAwB;QACxC,MAAM,WAAW,GAAG,2BAAmB,CAAA;QACvC,MAAM,OAAO,GAAG,mBAAW,CAAA;QAC3B,OAAO,IAAI,gCAAa,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;IACxD,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,MAA0B;QAC5C,MAAM,WAAW,GAAG,2BAAmB,CAAA;QACvC,MAAM,OAAO,GAAG,mBAAW,CAAA;QAC3B,OAAO,IAAI,oCAAe,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;IAC1D,CAAC;IAED,OAAO,CAAC,eAAuB;QAC7B,OAAO,IAAI,0BAAU,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACtD,CAAC;IAED,aAAa,CAAC,MAAwB;QACpC,OAAO,IAAI,gCAAa,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IAClE,CAAC;IAED,eAAe,CAAC,MAA0B;QACxC,OAAO,IAAI,oCAAe,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACpE,CAAC;CACF;AArCD,0BAqCC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare class MomoException extends Error {
|
|
2
|
+
readonly statusCode: number;
|
|
3
|
+
constructor(message: string, statusCode: number);
|
|
4
|
+
}
|
|
5
|
+
export declare class BadRequestException extends MomoException {
|
|
6
|
+
constructor(message?: string);
|
|
7
|
+
}
|
|
8
|
+
export declare class InvalidSubscriptionKeyException extends MomoException {
|
|
9
|
+
constructor(message?: string);
|
|
10
|
+
}
|
|
11
|
+
export declare class ResourceNotFoundException extends MomoException {
|
|
12
|
+
constructor(message?: string);
|
|
13
|
+
}
|
|
14
|
+
export declare class ConflictException extends MomoException {
|
|
15
|
+
constructor(message?: string);
|
|
16
|
+
}
|
|
17
|
+
export declare class InternalServerErrorException extends MomoException {
|
|
18
|
+
constructor(message?: string);
|
|
19
|
+
}
|
|
20
|
+
export declare function createException(status: number, message?: string): MomoException;
|
|
21
|
+
//# sourceMappingURL=MomoException.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MomoException.d.ts","sourceRoot":"","sources":["../../src/exceptions/MomoException.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;gBAEf,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAMhD;AAED,qBAAa,mBAAoB,SAAQ,aAAa;gBACxC,OAAO,GAAE,MAAsB;CAI5C;AAED,qBAAa,+BAAgC,SAAQ,aAAa;gBACpD,OAAO,GAAE,MAAmC;CAIzD;AAED,qBAAa,yBAA0B,SAAQ,aAAa;gBAC9C,OAAO,GAAE,MAA6B;CAInD;AAED,qBAAa,iBAAkB,SAAQ,aAAa;gBACtC,OAAO,GAAE,MAAmB;CAIzC;AAED,qBAAa,4BAA6B,SAAQ,aAAa;gBACjD,OAAO,GAAE,MAAgC;CAItD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAe/E"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InternalServerErrorException = exports.ConflictException = exports.ResourceNotFoundException = exports.InvalidSubscriptionKeyException = exports.BadRequestException = exports.MomoException = void 0;
|
|
4
|
+
exports.createException = createException;
|
|
5
|
+
class MomoException extends Error {
|
|
6
|
+
statusCode;
|
|
7
|
+
constructor(message, statusCode) {
|
|
8
|
+
super(message);
|
|
9
|
+
this.name = 'MomoException';
|
|
10
|
+
this.statusCode = statusCode;
|
|
11
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.MomoException = MomoException;
|
|
15
|
+
class BadRequestException extends MomoException {
|
|
16
|
+
constructor(message = 'Bad request') {
|
|
17
|
+
super(message, 400);
|
|
18
|
+
this.name = 'BadRequestException';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.BadRequestException = BadRequestException;
|
|
22
|
+
class InvalidSubscriptionKeyException extends MomoException {
|
|
23
|
+
constructor(message = 'Invalid subscription key') {
|
|
24
|
+
super(message, 401);
|
|
25
|
+
this.name = 'InvalidSubscriptionKeyException';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.InvalidSubscriptionKeyException = InvalidSubscriptionKeyException;
|
|
29
|
+
class ResourceNotFoundException extends MomoException {
|
|
30
|
+
constructor(message = 'Resource not found') {
|
|
31
|
+
super(message, 404);
|
|
32
|
+
this.name = 'ResourceNotFoundException';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.ResourceNotFoundException = ResourceNotFoundException;
|
|
36
|
+
class ConflictException extends MomoException {
|
|
37
|
+
constructor(message = 'Conflict') {
|
|
38
|
+
super(message, 409);
|
|
39
|
+
this.name = 'ConflictException';
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.ConflictException = ConflictException;
|
|
43
|
+
class InternalServerErrorException extends MomoException {
|
|
44
|
+
constructor(message = 'Internal server error') {
|
|
45
|
+
super(message, 500);
|
|
46
|
+
this.name = 'InternalServerErrorException';
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.InternalServerErrorException = InternalServerErrorException;
|
|
50
|
+
function createException(status, message) {
|
|
51
|
+
switch (status) {
|
|
52
|
+
case 400:
|
|
53
|
+
return new BadRequestException(message);
|
|
54
|
+
case 401:
|
|
55
|
+
return new InvalidSubscriptionKeyException(message);
|
|
56
|
+
case 404:
|
|
57
|
+
return new ResourceNotFoundException(message);
|
|
58
|
+
case 409:
|
|
59
|
+
return new ConflictException(message);
|
|
60
|
+
case 500:
|
|
61
|
+
return new InternalServerErrorException(message);
|
|
62
|
+
default:
|
|
63
|
+
return new MomoException(message ?? `HTTP error ${status}`, status);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=MomoException.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MomoException.js","sourceRoot":"","sources":["../../src/exceptions/MomoException.ts"],"names":[],"mappings":";;;AA8CA,0CAeC;AA7DD,MAAa,aAAc,SAAQ,KAAK;IAC7B,UAAU,CAAQ;IAE3B,YAAY,OAAe,EAAE,UAAkB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,eAAe,CAAA;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACnD,CAAC;CACF;AATD,sCASC;AAED,MAAa,mBAAoB,SAAQ,aAAa;IACpD,YAAY,UAAkB,aAAa;QACzC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAA;IACnC,CAAC;CACF;AALD,kDAKC;AAED,MAAa,+BAAgC,SAAQ,aAAa;IAChE,YAAY,UAAkB,0BAA0B;QACtD,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAA;IAC/C,CAAC;CACF;AALD,0EAKC;AAED,MAAa,yBAA0B,SAAQ,aAAa;IAC1D,YAAY,UAAkB,oBAAoB;QAChD,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAA;IACzC,CAAC;CACF;AALD,8DAKC;AAED,MAAa,iBAAkB,SAAQ,aAAa;IAClD,YAAY,UAAkB,UAAU;QACtC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;IACjC,CAAC;CACF;AALD,8CAKC;AAED,MAAa,4BAA6B,SAAQ,aAAa;IAC7D,YAAY,UAAkB,uBAAuB;QACnD,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAA;IAC5C,CAAC;CACF;AALD,oEAKC;AAED,SAAgB,eAAe,CAAC,MAAc,EAAE,OAAgB;IAC9D,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,GAAG;YACN,OAAO,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAA;QACzC,KAAK,GAAG;YACN,OAAO,IAAI,+BAA+B,CAAC,OAAO,CAAC,CAAA;QACrD,KAAK,GAAG;YACN,OAAO,IAAI,yBAAyB,CAAC,OAAO,CAAC,CAAA;QAC/C,KAAK,GAAG;YACN,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAA;QACvC,KAAK,GAAG;YACN,OAAO,IAAI,4BAA4B,CAAC,OAAO,CAAC,CAAA;QAClD;YACE,OAAO,IAAI,aAAa,CAAC,OAAO,IAAI,cAAc,MAAM,EAAE,EAAE,MAAM,CAAC,CAAA;IACvE,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { MomoApi, ENVIRONMENT_MTN_CONGO, ENVIRONMENT_MTN_UGANDA, ENVIRONMENT_MTN_GHANA, ENVIRONMENT_IVORY_COAST, ENVIRONMENT_ZAMBIA, ENVIRONMENT_CAMEROON, ENVIRONMENT_BENIN, ENVIRONMENT_SWAZILAND, ENVIRONMENT_GUINEACONAKRY, ENVIRONMENT_SOUTHAFRICA, ENVIRONMENT_LIBERIA, ENVIRONMENT_SANDBOX, SANDBOX_URL, PRODUCTION_URL, } from './MomoApi.js';
|
|
2
|
+
export { CollectionApi } from './products/CollectionApi.js';
|
|
3
|
+
export { DisbursementApi } from './products/DisbursementApi.js';
|
|
4
|
+
export { SandboxApi } from './products/SandboxApi.js';
|
|
5
|
+
export { Config } from './models/Config.js';
|
|
6
|
+
export type { CollectionConfig, DisbursementConfig } from './models/Config.js';
|
|
7
|
+
export { ApiToken } from './models/ApiToken.js';
|
|
8
|
+
export { AccountBalance } from './models/AccountBalance.js';
|
|
9
|
+
export { Transaction } from './models/Transaction.js';
|
|
10
|
+
export type { TransactionStatus } from './models/Transaction.js';
|
|
11
|
+
export { PaymentRequest } from './models/PaymentRequest.js';
|
|
12
|
+
export { TransferRequest } from './models/TransferRequest.js';
|
|
13
|
+
export { RefundRequest } from './models/RefundRequest.js';
|
|
14
|
+
export { MomoException, BadRequestException, InvalidSubscriptionKeyException, ResourceNotFoundException, ConflictException, InternalServerErrorException, createException, } from './exceptions/MomoException.js';
|
|
15
|
+
export { generateUUID } from './support/uuid.js';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EACP,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,cAAc,GACf,MAAM,cAAc,CAAA;AAGrB,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAGrD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAGzD,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,+BAA+B,EAC/B,yBAAyB,EACzB,iBAAiB,EACjB,4BAA4B,EAC5B,eAAe,GAChB,MAAM,+BAA+B,CAAA;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateUUID = exports.createException = exports.InternalServerErrorException = exports.ConflictException = exports.ResourceNotFoundException = exports.InvalidSubscriptionKeyException = exports.BadRequestException = exports.MomoException = exports.RefundRequest = exports.TransferRequest = exports.PaymentRequest = exports.Transaction = exports.AccountBalance = exports.ApiToken = exports.Config = exports.SandboxApi = exports.DisbursementApi = exports.CollectionApi = exports.PRODUCTION_URL = exports.SANDBOX_URL = exports.ENVIRONMENT_SANDBOX = exports.ENVIRONMENT_LIBERIA = exports.ENVIRONMENT_SOUTHAFRICA = exports.ENVIRONMENT_GUINEACONAKRY = exports.ENVIRONMENT_SWAZILAND = exports.ENVIRONMENT_BENIN = exports.ENVIRONMENT_CAMEROON = exports.ENVIRONMENT_ZAMBIA = exports.ENVIRONMENT_IVORY_COAST = exports.ENVIRONMENT_MTN_GHANA = exports.ENVIRONMENT_MTN_UGANDA = exports.ENVIRONMENT_MTN_CONGO = exports.MomoApi = void 0;
|
|
4
|
+
// Main entry point
|
|
5
|
+
var MomoApi_js_1 = require("./MomoApi.js");
|
|
6
|
+
Object.defineProperty(exports, "MomoApi", { enumerable: true, get: function () { return MomoApi_js_1.MomoApi; } });
|
|
7
|
+
Object.defineProperty(exports, "ENVIRONMENT_MTN_CONGO", { enumerable: true, get: function () { return MomoApi_js_1.ENVIRONMENT_MTN_CONGO; } });
|
|
8
|
+
Object.defineProperty(exports, "ENVIRONMENT_MTN_UGANDA", { enumerable: true, get: function () { return MomoApi_js_1.ENVIRONMENT_MTN_UGANDA; } });
|
|
9
|
+
Object.defineProperty(exports, "ENVIRONMENT_MTN_GHANA", { enumerable: true, get: function () { return MomoApi_js_1.ENVIRONMENT_MTN_GHANA; } });
|
|
10
|
+
Object.defineProperty(exports, "ENVIRONMENT_IVORY_COAST", { enumerable: true, get: function () { return MomoApi_js_1.ENVIRONMENT_IVORY_COAST; } });
|
|
11
|
+
Object.defineProperty(exports, "ENVIRONMENT_ZAMBIA", { enumerable: true, get: function () { return MomoApi_js_1.ENVIRONMENT_ZAMBIA; } });
|
|
12
|
+
Object.defineProperty(exports, "ENVIRONMENT_CAMEROON", { enumerable: true, get: function () { return MomoApi_js_1.ENVIRONMENT_CAMEROON; } });
|
|
13
|
+
Object.defineProperty(exports, "ENVIRONMENT_BENIN", { enumerable: true, get: function () { return MomoApi_js_1.ENVIRONMENT_BENIN; } });
|
|
14
|
+
Object.defineProperty(exports, "ENVIRONMENT_SWAZILAND", { enumerable: true, get: function () { return MomoApi_js_1.ENVIRONMENT_SWAZILAND; } });
|
|
15
|
+
Object.defineProperty(exports, "ENVIRONMENT_GUINEACONAKRY", { enumerable: true, get: function () { return MomoApi_js_1.ENVIRONMENT_GUINEACONAKRY; } });
|
|
16
|
+
Object.defineProperty(exports, "ENVIRONMENT_SOUTHAFRICA", { enumerable: true, get: function () { return MomoApi_js_1.ENVIRONMENT_SOUTHAFRICA; } });
|
|
17
|
+
Object.defineProperty(exports, "ENVIRONMENT_LIBERIA", { enumerable: true, get: function () { return MomoApi_js_1.ENVIRONMENT_LIBERIA; } });
|
|
18
|
+
Object.defineProperty(exports, "ENVIRONMENT_SANDBOX", { enumerable: true, get: function () { return MomoApi_js_1.ENVIRONMENT_SANDBOX; } });
|
|
19
|
+
Object.defineProperty(exports, "SANDBOX_URL", { enumerable: true, get: function () { return MomoApi_js_1.SANDBOX_URL; } });
|
|
20
|
+
Object.defineProperty(exports, "PRODUCTION_URL", { enumerable: true, get: function () { return MomoApi_js_1.PRODUCTION_URL; } });
|
|
21
|
+
// Products
|
|
22
|
+
var CollectionApi_js_1 = require("./products/CollectionApi.js");
|
|
23
|
+
Object.defineProperty(exports, "CollectionApi", { enumerable: true, get: function () { return CollectionApi_js_1.CollectionApi; } });
|
|
24
|
+
var DisbursementApi_js_1 = require("./products/DisbursementApi.js");
|
|
25
|
+
Object.defineProperty(exports, "DisbursementApi", { enumerable: true, get: function () { return DisbursementApi_js_1.DisbursementApi; } });
|
|
26
|
+
var SandboxApi_js_1 = require("./products/SandboxApi.js");
|
|
27
|
+
Object.defineProperty(exports, "SandboxApi", { enumerable: true, get: function () { return SandboxApi_js_1.SandboxApi; } });
|
|
28
|
+
// Models
|
|
29
|
+
var Config_js_1 = require("./models/Config.js");
|
|
30
|
+
Object.defineProperty(exports, "Config", { enumerable: true, get: function () { return Config_js_1.Config; } });
|
|
31
|
+
var ApiToken_js_1 = require("./models/ApiToken.js");
|
|
32
|
+
Object.defineProperty(exports, "ApiToken", { enumerable: true, get: function () { return ApiToken_js_1.ApiToken; } });
|
|
33
|
+
var AccountBalance_js_1 = require("./models/AccountBalance.js");
|
|
34
|
+
Object.defineProperty(exports, "AccountBalance", { enumerable: true, get: function () { return AccountBalance_js_1.AccountBalance; } });
|
|
35
|
+
var Transaction_js_1 = require("./models/Transaction.js");
|
|
36
|
+
Object.defineProperty(exports, "Transaction", { enumerable: true, get: function () { return Transaction_js_1.Transaction; } });
|
|
37
|
+
var PaymentRequest_js_1 = require("./models/PaymentRequest.js");
|
|
38
|
+
Object.defineProperty(exports, "PaymentRequest", { enumerable: true, get: function () { return PaymentRequest_js_1.PaymentRequest; } });
|
|
39
|
+
var TransferRequest_js_1 = require("./models/TransferRequest.js");
|
|
40
|
+
Object.defineProperty(exports, "TransferRequest", { enumerable: true, get: function () { return TransferRequest_js_1.TransferRequest; } });
|
|
41
|
+
var RefundRequest_js_1 = require("./models/RefundRequest.js");
|
|
42
|
+
Object.defineProperty(exports, "RefundRequest", { enumerable: true, get: function () { return RefundRequest_js_1.RefundRequest; } });
|
|
43
|
+
// Exceptions
|
|
44
|
+
var MomoException_js_1 = require("./exceptions/MomoException.js");
|
|
45
|
+
Object.defineProperty(exports, "MomoException", { enumerable: true, get: function () { return MomoException_js_1.MomoException; } });
|
|
46
|
+
Object.defineProperty(exports, "BadRequestException", { enumerable: true, get: function () { return MomoException_js_1.BadRequestException; } });
|
|
47
|
+
Object.defineProperty(exports, "InvalidSubscriptionKeyException", { enumerable: true, get: function () { return MomoException_js_1.InvalidSubscriptionKeyException; } });
|
|
48
|
+
Object.defineProperty(exports, "ResourceNotFoundException", { enumerable: true, get: function () { return MomoException_js_1.ResourceNotFoundException; } });
|
|
49
|
+
Object.defineProperty(exports, "ConflictException", { enumerable: true, get: function () { return MomoException_js_1.ConflictException; } });
|
|
50
|
+
Object.defineProperty(exports, "InternalServerErrorException", { enumerable: true, get: function () { return MomoException_js_1.InternalServerErrorException; } });
|
|
51
|
+
Object.defineProperty(exports, "createException", { enumerable: true, get: function () { return MomoException_js_1.createException; } });
|
|
52
|
+
// Support
|
|
53
|
+
var uuid_js_1 = require("./support/uuid.js");
|
|
54
|
+
Object.defineProperty(exports, "generateUUID", { enumerable: true, get: function () { return uuid_js_1.generateUUID; } });
|
|
55
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mBAAmB;AACnB,2CAgBqB;AAfnB,qGAAA,OAAO,OAAA;AACP,mHAAA,qBAAqB,OAAA;AACrB,oHAAA,sBAAsB,OAAA;AACtB,mHAAA,qBAAqB,OAAA;AACrB,qHAAA,uBAAuB,OAAA;AACvB,gHAAA,kBAAkB,OAAA;AAClB,kHAAA,oBAAoB,OAAA;AACpB,+GAAA,iBAAiB,OAAA;AACjB,mHAAA,qBAAqB,OAAA;AACrB,uHAAA,yBAAyB,OAAA;AACzB,qHAAA,uBAAuB,OAAA;AACvB,iHAAA,mBAAmB,OAAA;AACnB,iHAAA,mBAAmB,OAAA;AACnB,yGAAA,WAAW,OAAA;AACX,4GAAA,cAAc,OAAA;AAGhB,WAAW;AACX,gEAA2D;AAAlD,iHAAA,aAAa,OAAA;AACtB,oEAA+D;AAAtD,qHAAA,eAAe,OAAA;AACxB,0DAAqD;AAA5C,2GAAA,UAAU,OAAA;AAEnB,SAAS;AACT,gDAA2C;AAAlC,mGAAA,MAAM,OAAA;AAEf,oDAA+C;AAAtC,uGAAA,QAAQ,OAAA;AACjB,gEAA2D;AAAlD,mHAAA,cAAc,OAAA;AACvB,0DAAqD;AAA5C,6GAAA,WAAW,OAAA;AAEpB,gEAA2D;AAAlD,mHAAA,cAAc,OAAA;AACvB,kEAA6D;AAApD,qHAAA,eAAe,OAAA;AACxB,8DAAyD;AAAhD,iHAAA,aAAa,OAAA;AAEtB,aAAa;AACb,kEAQsC;AAPpC,iHAAA,aAAa,OAAA;AACb,uHAAA,mBAAmB,OAAA;AACnB,mIAAA,+BAA+B,OAAA;AAC/B,6HAAA,yBAAyB,OAAA;AACzB,qHAAA,iBAAiB,OAAA;AACjB,gIAAA,4BAA4B,OAAA;AAC5B,mHAAA,eAAe,OAAA;AAGjB,UAAU;AACV,6CAAgD;AAAvC,uGAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class AccountBalance {
|
|
2
|
+
private readonly availableBalance;
|
|
3
|
+
private readonly currency;
|
|
4
|
+
private constructor();
|
|
5
|
+
static parse(data: Record<string, unknown>): AccountBalance;
|
|
6
|
+
getAvailableBalance(): string;
|
|
7
|
+
getCurrency(): string;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=AccountBalance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountBalance.d.ts","sourceRoot":"","sources":["../../src/models/AccountBalance.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IAEjC,OAAO;IAKP,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc;IAO3D,mBAAmB,IAAI,MAAM;IAI7B,WAAW,IAAI,MAAM;CAGtB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AccountBalance = void 0;
|
|
4
|
+
class AccountBalance {
|
|
5
|
+
availableBalance;
|
|
6
|
+
currency;
|
|
7
|
+
constructor(availableBalance, currency) {
|
|
8
|
+
this.availableBalance = availableBalance;
|
|
9
|
+
this.currency = currency;
|
|
10
|
+
}
|
|
11
|
+
static parse(data) {
|
|
12
|
+
return new AccountBalance(data['availableBalance'], data['currency']);
|
|
13
|
+
}
|
|
14
|
+
getAvailableBalance() {
|
|
15
|
+
return this.availableBalance;
|
|
16
|
+
}
|
|
17
|
+
getCurrency() {
|
|
18
|
+
return this.currency;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.AccountBalance = AccountBalance;
|
|
22
|
+
//# sourceMappingURL=AccountBalance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountBalance.js","sourceRoot":"","sources":["../../src/models/AccountBalance.ts"],"names":[],"mappings":";;;AAAA,MAAa,cAAc;IACR,gBAAgB,CAAQ;IACxB,QAAQ,CAAQ;IAEjC,YAAoB,gBAAwB,EAAE,QAAgB;QAC5D,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACxC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAA6B;QACxC,OAAO,IAAI,cAAc,CACvB,IAAI,CAAC,kBAAkB,CAAW,EAClC,IAAI,CAAC,UAAU,CAAW,CAC3B,CAAA;IACH,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAA;IAC9B,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;CACF;AAvBD,wCAuBC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface ApiTokenData {
|
|
2
|
+
access_token: string;
|
|
3
|
+
token_type: string;
|
|
4
|
+
expires_in: number;
|
|
5
|
+
}
|
|
6
|
+
export declare class ApiToken {
|
|
7
|
+
private readonly accessToken;
|
|
8
|
+
private readonly tokenType;
|
|
9
|
+
private readonly expiresIn;
|
|
10
|
+
private constructor();
|
|
11
|
+
static fromObject(data: Record<string, unknown>): ApiToken;
|
|
12
|
+
getAccessToken(): string;
|
|
13
|
+
getTokenType(): string;
|
|
14
|
+
getExpiresIn(): number;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=ApiToken.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiToken.d.ts","sourceRoot":"","sources":["../../src/models/ApiToken.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAElC,OAAO;IAMP,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ;IAQ1D,cAAc,IAAI,MAAM;IAIxB,YAAY,IAAI,MAAM;IAItB,YAAY,IAAI,MAAM;CAGvB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApiToken = void 0;
|
|
4
|
+
class ApiToken {
|
|
5
|
+
accessToken;
|
|
6
|
+
tokenType;
|
|
7
|
+
expiresIn;
|
|
8
|
+
constructor(accessToken, tokenType, expiresIn) {
|
|
9
|
+
this.accessToken = accessToken;
|
|
10
|
+
this.tokenType = tokenType;
|
|
11
|
+
this.expiresIn = expiresIn;
|
|
12
|
+
}
|
|
13
|
+
static fromObject(data) {
|
|
14
|
+
return new ApiToken(data['access_token'], data['token_type'], data['expires_in']);
|
|
15
|
+
}
|
|
16
|
+
getAccessToken() {
|
|
17
|
+
return this.accessToken;
|
|
18
|
+
}
|
|
19
|
+
getTokenType() {
|
|
20
|
+
return this.tokenType;
|
|
21
|
+
}
|
|
22
|
+
getExpiresIn() {
|
|
23
|
+
return this.expiresIn;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.ApiToken = ApiToken;
|
|
27
|
+
//# sourceMappingURL=ApiToken.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiToken.js","sourceRoot":"","sources":["../../src/models/ApiToken.ts"],"names":[],"mappings":";;;AAMA,MAAa,QAAQ;IACF,WAAW,CAAQ;IACnB,SAAS,CAAQ;IACjB,SAAS,CAAQ;IAElC,YAAoB,WAAmB,EAAE,SAAiB,EAAE,SAAiB;QAC3E,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,IAA6B;QAC7C,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,cAAc,CAAW,EAC9B,IAAI,CAAC,YAAY,CAAW,EAC5B,IAAI,CAAC,YAAY,CAAW,CAC7B,CAAA;IACH,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;CACF;AA9BD,4BA8BC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface ConfigOptions {
|
|
2
|
+
subscriptionKey: string;
|
|
3
|
+
apiUser: string;
|
|
4
|
+
apiKey: string;
|
|
5
|
+
callbackUri: string;
|
|
6
|
+
}
|
|
7
|
+
export declare class Config {
|
|
8
|
+
readonly subscriptionKey: string;
|
|
9
|
+
readonly apiUser: string;
|
|
10
|
+
readonly apiKey: string;
|
|
11
|
+
readonly callbackUri: string;
|
|
12
|
+
constructor(options: ConfigOptions);
|
|
13
|
+
static sandbox(subscriptionKey: string): Config;
|
|
14
|
+
static collection(subscriptionKey: string, apiUser: string, apiKey: string, callbackUri: string): Config;
|
|
15
|
+
static disbursement(subscriptionKey: string, apiUser: string, apiKey: string, callbackUri: string): Config;
|
|
16
|
+
}
|
|
17
|
+
export type CollectionConfig = Config;
|
|
18
|
+
export type DisbursementConfig = Config;
|
|
19
|
+
//# sourceMappingURL=Config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/models/Config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,qBAAa,MAAM;IACjB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;gBAEhB,OAAO,EAAE,aAAa;IAOlC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM;IAS/C,MAAM,CAAC,UAAU,CACf,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,MAAM;IAIT,MAAM,CAAC,YAAY,CACjB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,MAAM;CAGV;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAA;AACrC,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAA"}
|