monime-package 0.0.1 → 1.0.2
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 +166 -108
- package/dist/index.d.mts +116 -38
- package/dist/index.d.ts +116 -38
- package/dist/index.js +99 -39
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +97 -33
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
interface CreateFinancialAccount {
|
|
2
2
|
success: boolean;
|
|
3
3
|
messages: string[];
|
|
4
|
-
result: Result$
|
|
4
|
+
result: Result$3;
|
|
5
5
|
}
|
|
6
6
|
interface GetFinancialAccount {
|
|
7
7
|
success: boolean;
|
|
8
8
|
messages: string[];
|
|
9
|
-
result: Result$
|
|
9
|
+
result: Result$3;
|
|
10
10
|
}
|
|
11
|
-
interface Result$
|
|
11
|
+
interface Result$3 {
|
|
12
12
|
id: string;
|
|
13
13
|
uvan: string;
|
|
14
14
|
name: string;
|
|
@@ -20,7 +20,7 @@ interface Result$2 {
|
|
|
20
20
|
updateTime: string;
|
|
21
21
|
metadata: Metadata$2;
|
|
22
22
|
}
|
|
23
|
-
interface Result$
|
|
23
|
+
interface Result$3 {
|
|
24
24
|
id: string;
|
|
25
25
|
uvan: string;
|
|
26
26
|
name: string;
|
|
@@ -51,25 +51,12 @@ interface Available {
|
|
|
51
51
|
value: number;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
interface createFinancialAccountReturn {
|
|
55
|
-
data?: CreateFinancialAccount;
|
|
56
|
-
error?: Error;
|
|
57
|
-
success: boolean;
|
|
58
|
-
}
|
|
59
|
-
declare function createFinancialAccount(accountName: string, monime_space_id: string, monime_access_token: string): Promise<createFinancialAccountReturn>;
|
|
60
|
-
interface GetFinancialAccountReturn {
|
|
61
|
-
data?: GetFinancialAccount;
|
|
62
|
-
error?: Error;
|
|
63
|
-
success: boolean;
|
|
64
|
-
}
|
|
65
|
-
declare function getFinancialAccount(financialAccountId: string, monime_access_token: string, monime_space_id: string): Promise<GetFinancialAccountReturn>;
|
|
66
|
-
|
|
67
54
|
interface CreateInternalTransfer {
|
|
68
55
|
success: boolean;
|
|
69
56
|
messages: string[];
|
|
70
|
-
result: Result$
|
|
57
|
+
result: Result$2;
|
|
71
58
|
}
|
|
72
|
-
interface Result$
|
|
59
|
+
interface Result$2 {
|
|
73
60
|
id: string;
|
|
74
61
|
status: string;
|
|
75
62
|
amount: Amount$1;
|
|
@@ -78,12 +65,12 @@ interface Result$1 {
|
|
|
78
65
|
financialTransactionReference: string;
|
|
79
66
|
description: string;
|
|
80
67
|
failureDetail: FailureDetail$1;
|
|
81
|
-
ownershipGraph: OwnershipGraph$
|
|
68
|
+
ownershipGraph: OwnershipGraph$2;
|
|
82
69
|
createTime: string;
|
|
83
70
|
updateTime: string;
|
|
84
71
|
metadata: Metadata$1;
|
|
85
72
|
}
|
|
86
|
-
interface OwnershipGraph$
|
|
73
|
+
interface OwnershipGraph$2 {
|
|
87
74
|
owner: Owner2$1;
|
|
88
75
|
}
|
|
89
76
|
interface Owner2$1 {
|
|
@@ -112,20 +99,72 @@ interface Amount$1 {
|
|
|
112
99
|
value: number;
|
|
113
100
|
}
|
|
114
101
|
|
|
115
|
-
interface
|
|
116
|
-
data?: CreateInternalTransfer;
|
|
117
|
-
error?: Error;
|
|
102
|
+
interface CreatePaymentCode {
|
|
118
103
|
success: boolean;
|
|
104
|
+
messages: string[];
|
|
105
|
+
result: Result$1;
|
|
119
106
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
107
|
+
interface Result$1 {
|
|
108
|
+
id: string;
|
|
109
|
+
mode: string;
|
|
110
|
+
status: string;
|
|
111
|
+
name: string;
|
|
112
|
+
amount: {
|
|
113
|
+
currency: string;
|
|
114
|
+
value: number;
|
|
115
|
+
};
|
|
116
|
+
enable: boolean;
|
|
117
|
+
expireTime: string;
|
|
118
|
+
customer: {
|
|
119
|
+
name: string;
|
|
120
|
+
};
|
|
121
|
+
ussdCode: string;
|
|
122
|
+
reference: string;
|
|
123
|
+
authorizedProviders: string[];
|
|
124
|
+
authorizedPhoneNumber: string;
|
|
125
|
+
recurrentPaymentTarget: {
|
|
126
|
+
expectedPaymentCount: number;
|
|
127
|
+
expectedPaymentTotal: {
|
|
128
|
+
currency: string;
|
|
129
|
+
value: number;
|
|
130
|
+
};
|
|
131
|
+
};
|
|
132
|
+
financialAccountId: string;
|
|
133
|
+
processedPaymentData: ProcessedPaymentData;
|
|
134
|
+
createTime: string;
|
|
135
|
+
updateTime: string;
|
|
136
|
+
ownershipGraph: OwnershipGraph$1;
|
|
137
|
+
metadata: {};
|
|
138
|
+
}
|
|
139
|
+
interface OwnershipGraph$1 {
|
|
140
|
+
owner: {
|
|
141
|
+
id: string;
|
|
142
|
+
type: string;
|
|
143
|
+
metadata: {};
|
|
144
|
+
owner: {
|
|
145
|
+
id: string;
|
|
146
|
+
type: string;
|
|
147
|
+
metadata: {};
|
|
148
|
+
owner: {};
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
interface ProcessedPaymentData {
|
|
153
|
+
amount: {
|
|
154
|
+
currency: string;
|
|
155
|
+
value: number;
|
|
156
|
+
};
|
|
157
|
+
orderId: string;
|
|
158
|
+
paymentId: string;
|
|
159
|
+
orderNumber: string;
|
|
160
|
+
channelData: {
|
|
161
|
+
providerId: string;
|
|
162
|
+
accountId: string;
|
|
163
|
+
reference: string;
|
|
164
|
+
};
|
|
165
|
+
financialTransactionReference: string;
|
|
166
|
+
metadata: {};
|
|
126
167
|
}
|
|
127
|
-
declare function createPaymentCode(paymentName: string, amount: number, financialAccountId: string | null, name: string, phoneNumber: string, monime_access_token: string, monime_space_id: string): Promise<Return$1>;
|
|
128
|
-
declare function deletePaymentCode(paymentCodeId: string, monime_access_token: string, monime_space_id: string): Promise<Return$1>;
|
|
129
168
|
|
|
130
169
|
interface CreatePayout {
|
|
131
170
|
success: boolean;
|
|
@@ -186,11 +225,50 @@ interface Amount {
|
|
|
186
225
|
value: number;
|
|
187
226
|
}
|
|
188
227
|
|
|
189
|
-
interface
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
228
|
+
interface ClientOptions {
|
|
229
|
+
monimeSpaceeId: string;
|
|
230
|
+
accessToken: string;
|
|
231
|
+
}
|
|
232
|
+
declare class MonimeClient {
|
|
233
|
+
private monimeSpaceId;
|
|
234
|
+
private accessToken;
|
|
235
|
+
createFinancialAccount: (name: string) => Promise<{
|
|
236
|
+
success: boolean;
|
|
237
|
+
data?: CreateFinancialAccount;
|
|
238
|
+
error?: Error;
|
|
239
|
+
}>;
|
|
240
|
+
getFinancialAccount: (financialAccountId: string) => Promise<{
|
|
241
|
+
success: boolean;
|
|
242
|
+
data?: GetFinancialAccount;
|
|
243
|
+
error?: Error;
|
|
244
|
+
}>;
|
|
245
|
+
createInternalTransfer: (sourceAccount: string, destinationAccount: string, amount: number) => Promise<{
|
|
246
|
+
success: boolean;
|
|
247
|
+
data?: CreateInternalTransfer;
|
|
248
|
+
error?: Error;
|
|
249
|
+
}>;
|
|
250
|
+
createPaymentCode: (paymentName: string, amount: number, financialAccount: string, username: string, phoneNumber: string) => Promise<{
|
|
251
|
+
success: boolean;
|
|
252
|
+
error?: Error;
|
|
253
|
+
data?: CreatePaymentCode;
|
|
254
|
+
}>;
|
|
255
|
+
deletePaymentCode: (paymentCodeId: string) => Promise<{
|
|
256
|
+
success: boolean;
|
|
257
|
+
error?: Error;
|
|
258
|
+
data?: CreatePaymentCode;
|
|
259
|
+
}>;
|
|
260
|
+
createPayout: (amount: number, phoneNumber: string, sourceAccount: string) => Promise<{
|
|
261
|
+
success: boolean;
|
|
262
|
+
error?: Error;
|
|
263
|
+
data?: CreatePayout;
|
|
264
|
+
}>;
|
|
265
|
+
constructor(options: ClientOptions);
|
|
266
|
+
_getConfig(): {
|
|
267
|
+
monimeSpaceId: string;
|
|
268
|
+
accessToken: string;
|
|
269
|
+
};
|
|
193
270
|
}
|
|
194
|
-
declare function CreatePayoutMobileMoney(amount: number, phoneNumber: string, sourceAccount: string, monime_access_token: string, monime_space_id: string): Promise<Return>;
|
|
195
271
|
|
|
196
|
-
|
|
272
|
+
declare function createClient(options: ClientOptions): MonimeClient;
|
|
273
|
+
|
|
274
|
+
export { type ClientOptions, MonimeClient, createClient };
|
package/dist/index.js
CHANGED
|
@@ -30,33 +30,33 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
// src/index.ts
|
|
31
31
|
var index_exports = {};
|
|
32
32
|
__export(index_exports, {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
createInternalTransfer: () => createInternalTransfer,
|
|
36
|
-
createPaymentCode: () => createPaymentCode,
|
|
37
|
-
deletePaymentCode: () => deletePaymentCode,
|
|
38
|
-
getFinancialAccount: () => getFinancialAccount
|
|
33
|
+
MonimeClient: () => MonimeClient,
|
|
34
|
+
createClient: () => createClient
|
|
39
35
|
});
|
|
40
36
|
module.exports = __toCommonJS(index_exports);
|
|
41
37
|
|
|
42
|
-
// src/
|
|
38
|
+
// src/modules/financialAccount/financialAccount.ts
|
|
43
39
|
var import_axios = __toESM(require("axios"));
|
|
44
40
|
var import_crypto = require("crypto");
|
|
45
41
|
var URL = "https://api.monime.io/v1/financial-accounts";
|
|
46
42
|
var value = (0, import_crypto.randomBytes)(20).toString("hex");
|
|
47
|
-
async function createFinancialAccount(accountName,
|
|
43
|
+
async function createFinancialAccount(accountName, client) {
|
|
44
|
+
if (accountName.trim() === "") {
|
|
45
|
+
return { success: false, error: new Error("accountName is required") };
|
|
46
|
+
}
|
|
48
47
|
const body = {
|
|
49
48
|
name: accountName,
|
|
50
49
|
currency: "SLE",
|
|
51
50
|
description: "",
|
|
52
51
|
metadata: {}
|
|
53
52
|
};
|
|
53
|
+
const { accessToken, monimeSpaceId } = client._getConfig();
|
|
54
54
|
try {
|
|
55
55
|
const res = await import_axios.default.post(URL, body, {
|
|
56
56
|
headers: {
|
|
57
57
|
"Idempotency-Key": `${value}`,
|
|
58
|
-
"Monime-Space-Id": `${
|
|
59
|
-
Authorization: `Bearer ${
|
|
58
|
+
"Monime-Space-Id": `${monimeSpaceId}`,
|
|
59
|
+
Authorization: `Bearer ${accessToken}`,
|
|
60
60
|
"Content-Type": "application/json"
|
|
61
61
|
}
|
|
62
62
|
});
|
|
@@ -69,12 +69,16 @@ async function createFinancialAccount(accountName, monime_space_id, monime_acces
|
|
|
69
69
|
return { error: new Error("unknown error"), success: false };
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
|
-
async function getFinancialAccount(financialAccountId,
|
|
72
|
+
async function getFinancialAccount(financialAccountId, client) {
|
|
73
|
+
if (financialAccountId.trim() === "") {
|
|
74
|
+
return { success: false, error: new Error("financialAccountId is required") };
|
|
75
|
+
}
|
|
76
|
+
const { monimeSpaceId, accessToken } = client._getConfig();
|
|
73
77
|
try {
|
|
74
78
|
const res = await import_axios.default.get(`${URL}/${financialAccountId}`, {
|
|
75
79
|
headers: {
|
|
76
|
-
"Monime-Space-Id": `${
|
|
77
|
-
Authorization: `Bearer ${
|
|
80
|
+
"Monime-Space-Id": `${monimeSpaceId}`,
|
|
81
|
+
Authorization: `Bearer ${accessToken}`
|
|
78
82
|
}
|
|
79
83
|
});
|
|
80
84
|
const data = res.data;
|
|
@@ -87,12 +91,18 @@ async function getFinancialAccount(financialAccountId, monime_access_token, moni
|
|
|
87
91
|
}
|
|
88
92
|
}
|
|
89
93
|
|
|
90
|
-
// src/
|
|
94
|
+
// src/modules/internalTransfer/internalTransfer.ts
|
|
91
95
|
var import_axios2 = __toESM(require("axios"));
|
|
92
96
|
var import_crypto2 = require("crypto");
|
|
93
97
|
var URL2 = "https://api.monime.io/v1/internal-transfers";
|
|
94
98
|
var value2 = (0, import_crypto2.randomBytes)(20).toString("hex");
|
|
95
|
-
async function createInternalTransfer(sourceAccount, destinationAccount,
|
|
99
|
+
async function createInternalTransfer(sourceAccount, destinationAccount, client, value5) {
|
|
100
|
+
if (value5 <= 0) {
|
|
101
|
+
return { success: false, error: new Error("value must be larger that zero") };
|
|
102
|
+
}
|
|
103
|
+
if (sourceAccount.trim() === "" || destinationAccount.trim() === "") {
|
|
104
|
+
return { success: false, error: new Error("sourceAccount or destinationAccount is missing") };
|
|
105
|
+
}
|
|
96
106
|
const body = {
|
|
97
107
|
amount: {
|
|
98
108
|
currency: "SLE",
|
|
@@ -106,12 +116,13 @@ async function createInternalTransfer(sourceAccount, destinationAccount, monime_
|
|
|
106
116
|
},
|
|
107
117
|
metadata: {}
|
|
108
118
|
};
|
|
119
|
+
const { accessToken, monimeSpaceId } = client._getConfig();
|
|
109
120
|
try {
|
|
110
121
|
const res = await import_axios2.default.post(URL2, body, {
|
|
111
122
|
headers: {
|
|
112
123
|
"Idempotency-Key": `${value5}`,
|
|
113
|
-
"Monime-Space-Id": `${
|
|
114
|
-
Authorization: `Bearer ${
|
|
124
|
+
"Monime-Space-Id": `${monimeSpaceId}`,
|
|
125
|
+
Authorization: `Bearer ${accessToken}`,
|
|
115
126
|
"Content-Type": "application/json"
|
|
116
127
|
}
|
|
117
128
|
});
|
|
@@ -125,20 +136,23 @@ async function createInternalTransfer(sourceAccount, destinationAccount, monime_
|
|
|
125
136
|
}
|
|
126
137
|
}
|
|
127
138
|
|
|
128
|
-
// src/
|
|
139
|
+
// src/modules/paymentCode/paymentCode.ts
|
|
129
140
|
var import_axios3 = __toESM(require("axios"));
|
|
130
141
|
var import_crypto3 = require("crypto");
|
|
131
142
|
var value3 = (0, import_crypto3.randomBytes)(20).toString("hex");
|
|
132
143
|
var URL3 = "https://api.monime.io/v1/payment-codes";
|
|
133
|
-
async function createPaymentCode(paymentName, amount, financialAccountId, name, phoneNumber,
|
|
144
|
+
async function createPaymentCode(paymentName, amount, financialAccountId, name, phoneNumber, client) {
|
|
134
145
|
let financialAccount = null;
|
|
135
146
|
if (financialAccountId !== "") {
|
|
136
147
|
financialAccount = financialAccountId;
|
|
137
148
|
}
|
|
138
|
-
if (
|
|
139
|
-
|
|
140
|
-
return { error: new Error("monime_access_token and monime_space_id is required"), success: false };
|
|
149
|
+
if (paymentName.trim() === "" || name.trim() === "" || phoneNumber.trim() === "") {
|
|
150
|
+
return { success: false, error: new Error("paymentName, name, or phoneNumber is missing") };
|
|
141
151
|
}
|
|
152
|
+
if (amount <= 0) {
|
|
153
|
+
return { success: false, error: new Error("amonut number be greater than zero") };
|
|
154
|
+
}
|
|
155
|
+
const { accessToken, monimeSpaceId } = client._getConfig();
|
|
142
156
|
const bodyData = {
|
|
143
157
|
name: `${paymentName}`,
|
|
144
158
|
mode: "recurrent",
|
|
@@ -168,13 +182,13 @@ async function createPaymentCode(paymentName, amount, financialAccountId, name,
|
|
|
168
182
|
const res = await import_axios3.default.post(URL3, bodyData, {
|
|
169
183
|
headers: {
|
|
170
184
|
"Idempotency-Key": `${value3}`,
|
|
171
|
-
"Monime-Space-Id": `${
|
|
172
|
-
Authorization: `Bearer ${
|
|
185
|
+
"Monime-Space-Id": `${monimeSpaceId}`,
|
|
186
|
+
Authorization: `Bearer ${accessToken}`,
|
|
173
187
|
"Content-Type": "application/json"
|
|
174
188
|
}
|
|
175
189
|
});
|
|
176
190
|
const data = res.data;
|
|
177
|
-
return {
|
|
191
|
+
return { data, success: true };
|
|
178
192
|
} catch (error) {
|
|
179
193
|
if (import_axios3.default.isAxiosError(error)) {
|
|
180
194
|
return { error: error.response?.data, success: false };
|
|
@@ -182,13 +196,17 @@ async function createPaymentCode(paymentName, amount, financialAccountId, name,
|
|
|
182
196
|
return { error: new Error("unknown error"), success: false };
|
|
183
197
|
}
|
|
184
198
|
}
|
|
185
|
-
async function deletePaymentCode(paymentCodeId,
|
|
199
|
+
async function deletePaymentCode(paymentCodeId, client) {
|
|
200
|
+
const { accessToken, monimeSpaceId } = client._getConfig();
|
|
201
|
+
if (paymentCodeId.trim() === "") {
|
|
202
|
+
return { success: false, error: new Error("paymentCodeId is required") };
|
|
203
|
+
}
|
|
186
204
|
try {
|
|
187
205
|
const res = await import_axios3.default.delete(`${URL3}/${paymentCodeId}`, {
|
|
188
206
|
headers: {
|
|
189
207
|
"Idempotency-Key": `${value3}`,
|
|
190
|
-
"Monime-Space-Id": `${
|
|
191
|
-
Authorization: `Bearer ${
|
|
208
|
+
"Monime-Space-Id": `${monimeSpaceId}`,
|
|
209
|
+
Authorization: `Bearer ${accessToken}`,
|
|
192
210
|
"Content-Type": "application/json"
|
|
193
211
|
}
|
|
194
212
|
});
|
|
@@ -205,12 +223,15 @@ async function deletePaymentCode(paymentCodeId, monime_access_token, monime_spac
|
|
|
205
223
|
}
|
|
206
224
|
}
|
|
207
225
|
|
|
208
|
-
// src/
|
|
226
|
+
// src/modules/payout/payout.ts
|
|
209
227
|
var import_axios4 = __toESM(require("axios"));
|
|
210
228
|
var import_crypto4 = require("crypto");
|
|
211
|
-
var URL4 = "";
|
|
229
|
+
var URL4 = "https://api.monime.io/v1/payouts";
|
|
212
230
|
var value4 = (0, import_crypto4.randomBytes)(20).toString("hex");
|
|
213
|
-
async function CreatePayoutMobileMoney(amount, phoneNumber, sourceAccount,
|
|
231
|
+
async function CreatePayoutMobileMoney(amount, phoneNumber, sourceAccount, client) {
|
|
232
|
+
if (phoneNumber.trim() === "") {
|
|
233
|
+
return { success: false, error: new Error("phoneNumber is required") };
|
|
234
|
+
}
|
|
214
235
|
let provider = "m17";
|
|
215
236
|
const africell = ["077", "033", "088", "080", "090", "030"];
|
|
216
237
|
for (let value5 of africell) {
|
|
@@ -219,6 +240,10 @@ async function CreatePayoutMobileMoney(amount, phoneNumber, sourceAccount, monim
|
|
|
219
240
|
break;
|
|
220
241
|
}
|
|
221
242
|
}
|
|
243
|
+
if (amount <= 0) {
|
|
244
|
+
return { error: new Error("amount must be greater than 0"), success: false };
|
|
245
|
+
}
|
|
246
|
+
const { accessToken, monimeSpaceId } = client._getConfig();
|
|
222
247
|
const body = {
|
|
223
248
|
amount: {
|
|
224
249
|
currency: "SLE",
|
|
@@ -238,8 +263,8 @@ async function CreatePayoutMobileMoney(amount, phoneNumber, sourceAccount, monim
|
|
|
238
263
|
const res = await import_axios4.default.post(URL4, body, {
|
|
239
264
|
headers: {
|
|
240
265
|
"Idempotency-Key": `${value4}`,
|
|
241
|
-
"Monime-Space-Id": `${
|
|
242
|
-
Authorization: `Bearer ${
|
|
266
|
+
"Monime-Space-Id": `${monimeSpaceId}`,
|
|
267
|
+
Authorization: `Bearer ${accessToken}`,
|
|
243
268
|
"Content-Type": "application/json"
|
|
244
269
|
}
|
|
245
270
|
});
|
|
@@ -252,13 +277,48 @@ async function CreatePayoutMobileMoney(amount, phoneNumber, sourceAccount, monim
|
|
|
252
277
|
return { success: false, error: new Error("unknown error") };
|
|
253
278
|
}
|
|
254
279
|
}
|
|
280
|
+
|
|
281
|
+
// src/client.ts
|
|
282
|
+
var MonimeClient = class {
|
|
283
|
+
monimeSpaceId;
|
|
284
|
+
accessToken;
|
|
285
|
+
/* Methods */
|
|
286
|
+
//method for financial accounts
|
|
287
|
+
createFinancialAccount;
|
|
288
|
+
getFinancialAccount;
|
|
289
|
+
//method for internal transfer
|
|
290
|
+
createInternalTransfer;
|
|
291
|
+
//method for payment code
|
|
292
|
+
createPaymentCode;
|
|
293
|
+
deletePaymentCode;
|
|
294
|
+
//method for payout
|
|
295
|
+
createPayout;
|
|
296
|
+
constructor(options) {
|
|
297
|
+
this.accessToken = options.accessToken;
|
|
298
|
+
this.monimeSpaceId = options.monimeSpaceeId;
|
|
299
|
+
this.createFinancialAccount = (name) => createFinancialAccount(name, this);
|
|
300
|
+
this.getFinancialAccount = (financialAccountId) => getFinancialAccount(financialAccountId, this);
|
|
301
|
+
this.createInternalTransfer = (sourceAccount, destinationAccount, amount) => createInternalTransfer(sourceAccount, destinationAccount, this, amount);
|
|
302
|
+
this.createPaymentCode = (paymentName, amount, financialAccount, username, phoneNumber) => createPaymentCode(paymentName, amount, financialAccount, username, phoneNumber, this);
|
|
303
|
+
this.deletePaymentCode = (paymentCodeId) => deletePaymentCode(paymentCodeId, this);
|
|
304
|
+
this.createPayout = (amount, phoneNumber, sourceAccount) => CreatePayoutMobileMoney(amount, phoneNumber, sourceAccount, this);
|
|
305
|
+
}
|
|
306
|
+
/** @internal */
|
|
307
|
+
_getConfig() {
|
|
308
|
+
return {
|
|
309
|
+
monimeSpaceId: this.monimeSpaceId,
|
|
310
|
+
accessToken: this.accessToken
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
};
|
|
314
|
+
|
|
315
|
+
// src/index.ts
|
|
316
|
+
function createClient(options) {
|
|
317
|
+
return new MonimeClient(options);
|
|
318
|
+
}
|
|
255
319
|
// Annotate the CommonJS export names for ESM import in node:
|
|
256
320
|
0 && (module.exports = {
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
createInternalTransfer,
|
|
260
|
-
createPaymentCode,
|
|
261
|
-
deletePaymentCode,
|
|
262
|
-
getFinancialAccount
|
|
321
|
+
MonimeClient,
|
|
322
|
+
createClient
|
|
263
323
|
});
|
|
264
324
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/functions/financialAccount.ts","../src/functions/internalTransfer.ts","../src/functions/paymentCode.ts","../src/functions/payout.ts"],"sourcesContent":["export * from \"./functions\"","import axios from \"axios\";\nimport { randomBytes } from \"crypto\"\nimport { CreateFinancialAccount, GetFinancialAccount } from \"./financialAccountTypes\";\n\nconst URL = 'https://api.monime.io/v1/financial-accounts'\nconst value = randomBytes(20).toString(\"hex\")\n\ninterface createFinancialAccountReturn {\n data?:CreateFinancialAccount,\n error?:Error\n success:boolean\n}\n\nexport async function createFinancialAccount(accountName:string, monime_space_id:string, monime_access_token:string):Promise<createFinancialAccountReturn>{\n const body = {\n name:accountName,\n currency:'SLE',\n description:\"\",\n metadata:{}\n }\n\n try{\n const res = await axios.post(URL, body, {\n headers:{\n 'Idempotency-Key': `${value}`,\n 'Monime-Space-Id': `${monime_space_id}`,\n Authorization: `Bearer ${monime_access_token}`,\n 'Content-Type': 'application/json' \n }\n })\n\n const data = res.data as CreateFinancialAccount\n\n return { success:true, data}\n }catch(error){\n if(axios.isAxiosError(error)){\n return { error:error, success:false}\n }\n\n return { error:new Error(\"unknown error\"), success:false}\n }\n}\n\n\n\ninterface GetFinancialAccountReturn {\n data?:GetFinancialAccount\n error?:Error\n success:boolean\n}\n\nexport async function getFinancialAccount(financialAccountId:string, monime_access_token:string, monime_space_id:string):Promise<GetFinancialAccountReturn>{\n try{\n const res = await axios.get(`${URL}/${financialAccountId}`, {\n headers:{\n 'Monime-Space-Id': `${monime_space_id}`,\n Authorization: `Bearer ${monime_access_token}`, \n }\n })\n\n const data = res.data as GetFinancialAccount\n\n return { success:true, data}\n }catch(error){\n if(axios.isAxiosError(error)){\n return { error:error, success:false}\n }\n\n return { error:new Error(\"unknown error\"), success:false}\n }\n}\n\n","import axios from \"axios\";\nimport { randomBytes } from \"crypto\";\nimport { CreateInternalTransfer } from \"./internalTransferTypes\";\n\nconst URL = 'https://api.monime.io/v1/internal-transfers';\nconst value = randomBytes(20).toString(\"hex\")\n\ninterface Return {\n data?:CreateInternalTransfer,\n error?:Error\n success:boolean\n}\n\nexport async function createInternalTransfer(sourceAccount:string, destinationAccount:string, monime_access_token:string, monime_space_id:string, value:number):Promise<Return>{\n const body = {\n amount :{\n currency:\"SLE\",\n value:value\n },\n sourceFinancialAccount:{\n id:sourceAccount\n },\n destinationFinancialAccount:{\n id:destinationAccount,\n },\n metadata:{}\n }\n try{\n const res = await axios.post(URL, body, {\n headers:{\n 'Idempotency-Key': `${value}`,\n 'Monime-Space-Id': `${monime_space_id}`,\n Authorization: `Bearer ${monime_access_token}`,\n 'Content-Type': 'application/json' \n }\n })\n\n const data = res.data as CreateInternalTransfer\n\n return { success:true, data}\n }catch(error){\n if(axios.isAxiosError(error)){\n return {error:error, success:false}\n }\n\n return {error:new Error(\"unkknown error\"), success:false}\n }\n}","import axios from \"axios\";\nimport { randomBytes } from \"crypto\"\nimport { CreatePaymentCode, DeletePaymentCode } from \"./paymentCodeTypes\";\n\nconst value = randomBytes(20).toString(\"hex\")\nconst URL = \"https://api.monime.io/v1/payment-codes\"\n\ninterface Return {\n code?:string,\n error?:Error\n success:boolean\n}\n\nexport async function createPaymentCode(paymentName:string, amount:number, financialAccountId:string |null, name:string, phoneNumber:string, monime_access_token:string, monime_space_id:string):Promise<Return>{\n let financialAccount = null\n if(financialAccountId !== \"\"){\n financialAccount = financialAccountId\n }\n\n if(monime_access_token === \"\" || monime_space_id === \"\"){\n console.log(\"monime_access_token or monime_space_id is required\")\n return {error:new Error(\"monime_access_token and monime_space_id is required\"), success:false}\n }\n\n\n const bodyData = {\n name: `${paymentName}`,\n mode: \"recurrent\",\n enable:true,\n amount: {\n currency: \"SLE\",\n value:(amount) * 100\n },\n duration: \"1h30m\",\n customer: {\n name: `${name}`,\n },\n reference:\"\",\n authorizedPhoneNumber:phoneNumber,\n // authorizedProviders: [\"m17\", \"m18\"],\n recurrentPaymentTarget:{\n expectedPaymentCount: 1,\n expectedPaymentTotal:{\n currency:\"SLE\",\n value:(amount) * 100\n }\n },\n financialAccountId:financialAccount,\n metadata: {}\n };\n\n try{\n const res = await axios.post(URL, bodyData, {\n headers:{\n 'Idempotency-Key': `${value}`,\n 'Monime-Space-Id': `${monime_space_id}`,\n Authorization: `Bearer ${monime_access_token}`,\n 'Content-Type': 'application/json' \n }\n })\n\n const data = res.data as CreatePaymentCode\n return { code:data.result.ussdCode, success:true}\n }catch(error){\n if(axios.isAxiosError(error)){\n return {error:error.response?.data, success:false}\n }\n return {error:new Error(\"unknown error\"), success:false}\n }\n}\n\n\nexport async function deletePaymentCode(paymentCodeId:string, monime_access_token:string, monime_space_id:string):Promise<Return>{\n try{\n const res = await axios.delete(`${URL}/${paymentCodeId}`, {\n headers:{\n 'Idempotency-Key': `${value}`,\n 'Monime-Space-Id': `${monime_space_id}`,\n Authorization: `Bearer ${monime_access_token}`,\n 'Content-Type': 'application/json' \n }\n })\n\n const data = res.data as DeletePaymentCode\n if(!data.success){\n return { error:new Error(\"delete failed\"), success:false}\n }\n\n return { success:true }\n }catch(error){\n if(axios.isAxiosError(error)){\n return { error:error, success:false}\n }\n return { error:new Error(\"unknown error\"), success:false}\n }\n}","import axios from \"axios\"\nimport { randomBytes } from \"crypto\"\nimport { CreatePayout } from \"./payoutTypes\"\n\nconst URL = \"\"\nconst value = randomBytes(20).toString(\"hex\")\n\ninterface Return {\n data?:CreatePayout,\n error?:Error,\n success:boolean\n}\n\nexport async function CreatePayoutMobileMoney(amount:number,phoneNumber:string, sourceAccount:string, monime_access_token:string, monime_space_id:string):Promise<Return> {\n let provider = \"m17\"\n const africell = [\"077\", \"033\", \"088\", \"080\",\"090\",\"030\"]\n for (let value of africell){\n if(phoneNumber.startsWith(value)){\n provider = 'm18'\n break;\n }\n }\n const body = {\n amount:{\n currency:'SLE',\n value:amount\n },\n source:{\n financialAccountId:sourceAccount\n },\n destination:{\n type:\"momo\",\n provider:provider,\n phoneNumber:phoneNumber\n },\n metadata:{}\n }\n\n try{\n const res = await axios.post(URL, body, {\n headers:{\n 'Idempotency-Key': `${value}`,\n 'Monime-Space-Id': `${monime_space_id}`,\n Authorization: `Bearer ${monime_access_token}`,\n 'Content-Type': 'application/json' \n }\n })\n\n const data = res.data as CreatePayout\n\n return {success:true, data}\n }catch(error){\n if(axios.isAxiosError(error)){\n return { success:false, error:error}\n }\n\n return { success:false, error: new Error(\"unknown error\")}\n } \n}"],"mappings":"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","names":["axios","import_axios","import_crypto","URL","value","axios","import_axios","import_crypto","value","URL","axios","import_axios","import_crypto","URL","value","axios"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/modules/financialAccount/financialAccount.ts","../src/modules/internalTransfer/internalTransfer.ts","../src/modules/paymentCode/paymentCode.ts","../src/modules/payout/payout.ts","../src/client.ts"],"sourcesContent":["import { MonimeClient, ClientOptions} from \"./client\"\n\nexport function createClient(options:ClientOptions){\n return new MonimeClient(options)\n}\n\nexport { MonimeClient }\nexport type { ClientOptions}","import axios from \"axios\";\nimport { randomBytes } from \"crypto\"\nimport { CreateFinancialAccount, GetFinancialAccount } from \"./financialAccountTypes\";\nimport { MonimeClient} from \"../../client\"\n\nconst URL = 'https://api.monime.io/v1/financial-accounts'\nconst value = randomBytes(20).toString(\"hex\")\n\ninterface createFinancialAccountReturn {\n data?:CreateFinancialAccount,\n error?:Error\n success:boolean\n}\n\nexport async function createFinancialAccount(accountName:string, client:MonimeClient):Promise<createFinancialAccountReturn>{\n if(accountName.trim() === \"\"){\n return { success:false, error:new Error(\"accountName is required\")}\n }\n\n const body = {\n name:accountName,\n currency:'SLE',\n description:\"\",\n metadata:{}\n }\n\n //getting the accessToken and monime space id\n const { accessToken, monimeSpaceId} = client._getConfig()\n\n try{\n const res = await axios.post(URL, body, {\n headers:{\n 'Idempotency-Key': `${value}`,\n 'Monime-Space-Id': `${monimeSpaceId}`,\n Authorization: `Bearer ${accessToken}`,\n 'Content-Type': 'application/json' \n }\n })\n\n const data = res.data as CreateFinancialAccount\n\n return { success:true, data}\n }catch(error){\n if(axios.isAxiosError(error)){\n return { error:error, success:false}\n }\n\n return { error:new Error(\"unknown error\"), success:false}\n }\n}\n\n\n\ninterface GetFinancialAccountReturn {\n data?:GetFinancialAccount\n error?:Error\n success:boolean\n}\n\nexport async function getFinancialAccount(financialAccountId:string, client:MonimeClient):Promise<GetFinancialAccountReturn>{\n if(financialAccountId.trim() === \"\"){\n return { success:false, error:new Error(\"financialAccountId is required\")}\n }\n \n const { monimeSpaceId, accessToken} = client._getConfig()\n try{\n const res = await axios.get(`${URL}/${financialAccountId}`, {\n headers:{\n 'Monime-Space-Id': `${monimeSpaceId}`,\n Authorization: `Bearer ${accessToken}`, \n }\n })\n\n const data = res.data as GetFinancialAccount\n\n return { success:true, data}\n }catch(error){\n if(axios.isAxiosError(error)){\n return { error:error, success:false}\n }\n\n return { error:new Error(\"unknown error\"), success:false}\n }\n}\n\n","import axios from \"axios\";\nimport { randomBytes } from \"crypto\";\nimport { CreateInternalTransfer } from \"./internalTransferTypes\";\nimport { MonimeClient } from \"../../client\";\n\nconst URL = 'https://api.monime.io/v1/internal-transfers';\nconst value = randomBytes(20).toString(\"hex\")\n\ninterface Return {\n data?:CreateInternalTransfer,\n error?:Error\n success:boolean\n}\n\nexport async function createInternalTransfer(sourceAccount:string, destinationAccount:string, client:MonimeClient, value:number):Promise<Return>{\n\n if(value <= 0){\n return { success:false, error:new Error(\"value must be larger that zero\")}\n }\n\n if(sourceAccount.trim() === \"\" || destinationAccount.trim() === \"\"){\n return { success:false, error:new Error(\"sourceAccount or destinationAccount is missing\")}\n }\n \n const body = {\n amount :{\n currency:\"SLE\",\n value:value\n },\n sourceFinancialAccount:{\n id:sourceAccount\n },\n destinationFinancialAccount:{\n id:destinationAccount,\n },\n metadata:{}\n }\n\n const { accessToken, monimeSpaceId } = client._getConfig()\n\n try{\n const res = await axios.post(URL, body, {\n headers:{\n 'Idempotency-Key': `${value}`,\n 'Monime-Space-Id': `${monimeSpaceId}`,\n Authorization: `Bearer ${accessToken}`,\n 'Content-Type': 'application/json' \n }\n })\n\n const data = res.data as CreateInternalTransfer\n\n return { success:true, data}\n }catch(error){\n if(axios.isAxiosError(error)){\n return {error:error, success:false}\n }\n\n return {error:new Error(\"unkknown error\"), success:false}\n }\n}","import axios from \"axios\";\nimport { randomBytes } from \"crypto\"\nimport { CreatePaymentCode, DeletePaymentCode } from \"./paymentCodeTypes\";\nimport { MonimeClient } from \"../../client\";\nimport { error } from \"console\";\n\nconst value = randomBytes(20).toString(\"hex\")\nconst URL = \"https://api.monime.io/v1/payment-codes\"\n\ninterface Return {\n data?:CreatePaymentCode,\n error?:Error\n success:boolean\n}\n\nexport async function createPaymentCode(paymentName:string, amount:number, financialAccountId:string |null, name:string, phoneNumber:string, client:MonimeClient):Promise<Return>{\n let financialAccount = null\n if(financialAccountId !== \"\"){\n financialAccount = financialAccountId\n }\n\n if(paymentName.trim() === \"\" || name.trim() === \"\" || phoneNumber.trim() === \"\"){\n return {success:false, error:new Error(\"paymentName, name, or phoneNumber is missing\")}\n }\n\n if(amount <= 0){\n return {success:false, error:new Error(\"amonut number be greater than zero\")}\n }\n\n const { accessToken, monimeSpaceId} = client._getConfig()\n\n\n const bodyData = {\n name: `${paymentName}`,\n mode: \"recurrent\",\n enable:true,\n amount: {\n currency: \"SLE\",\n value:(amount) * 100\n },\n duration: \"1h30m\",\n customer: {\n name: `${name}`,\n },\n reference:\"\",\n authorizedPhoneNumber:phoneNumber,\n // authorizedProviders: [\"m17\", \"m18\"],\n recurrentPaymentTarget:{\n expectedPaymentCount: 1,\n expectedPaymentTotal:{\n currency:\"SLE\",\n value:(amount) * 100\n }\n },\n financialAccountId:financialAccount,\n metadata: {}\n };\n\n try{\n const res = await axios.post(URL, bodyData, {\n headers:{\n 'Idempotency-Key': `${value}`,\n 'Monime-Space-Id': `${monimeSpaceId}`,\n Authorization: `Bearer ${accessToken}`,\n 'Content-Type': 'application/json' \n }\n })\n\n const data = res.data as CreatePaymentCode\n return { data:data, success:true}\n }catch(error){\n if(axios.isAxiosError(error)){\n return {error:error.response?.data, success:false}\n }\n return {error:new Error(\"unknown error\"), success:false}\n }\n}\n\n\nexport async function deletePaymentCode(paymentCodeId:string, client:MonimeClient):Promise<Return>{\n const { accessToken, monimeSpaceId} = client._getConfig()\n\n if(paymentCodeId.trim() === \"\"){\n return { success:false, error:new Error(\"paymentCodeId is required\")}\n }\n\n try{\n const res = await axios.delete(`${URL}/${paymentCodeId}`, {\n headers:{\n 'Idempotency-Key': `${value}`,\n 'Monime-Space-Id': `${monimeSpaceId}`,\n Authorization: `Bearer ${accessToken}`,\n 'Content-Type': 'application/json' \n }\n })\n\n const data = res.data as DeletePaymentCode\n if(!data.success){\n return { error:new Error(\"delete failed\"), success:false}\n }\n\n return { success:true }\n }catch(error){\n if(axios.isAxiosError(error)){\n return { error:error, success:false}\n }\n return { error:new Error(\"unknown error\"), success:false}\n }\n}","import axios from \"axios\"\nimport { randomBytes } from \"crypto\"\nimport { CreatePayout } from \"./payoutTypes\"\nimport { MonimeClient } from \"../../client\"\n\nconst URL = \"https://api.monime.io/v1/payouts\"\nconst value = randomBytes(20).toString(\"hex\")\n\ninterface Return {\n data?:CreatePayout,\n error?:Error,\n success:boolean\n}\n\nexport async function CreatePayoutMobileMoney(amount:number,phoneNumber:string, sourceAccount:string, client:MonimeClient):Promise<Return> {\n if(phoneNumber.trim() === \"\"){\n return { success:false, error:new Error(\"phoneNumber is required\")}\n }\n \n let provider = \"m17\"\n const africell = [\"077\", \"033\", \"088\", \"080\",\"090\",\"030\"]\n for (let value of africell){\n if(phoneNumber.startsWith(value)){\n provider = 'm18'\n break;\n }\n }\n\n if(amount <= 0) {\n return { error:new Error(\"amount must be greater than 0\"), success:false}\n }\n\n const { accessToken, monimeSpaceId} = client._getConfig()\n\n const body = {\n amount:{\n currency:'SLE',\n value:amount\n },\n source:{\n financialAccountId:sourceAccount\n },\n destination:{\n type:\"momo\",\n provider:provider,\n phoneNumber:phoneNumber\n },\n metadata:{}\n }\n\n try{\n const res = await axios.post(URL, body, {\n headers:{\n 'Idempotency-Key': `${value}`,\n 'Monime-Space-Id': `${monimeSpaceId}`,\n Authorization: `Bearer ${accessToken}`,\n 'Content-Type': 'application/json' \n }\n })\n\n const data = res.data as CreatePayout\n\n return {success:true, data}\n }catch(error){\n if(axios.isAxiosError(error)){\n return { success:false, error:error}\n }\n\n return { success:false, error: new Error(\"unknown error\")}\n } \n}","import { createFinancialAccount,getFinancialAccount } from \"./modules/financialAccount/financialAccount\"\nimport { CreateFinancialAccount, CreateInternalTransfer, CreatePaymentCode, CreatePayout, GetFinancialAccount } from \"./modules/types\"\nimport { createInternalTransfer } from \"./modules/internalTransfer/internalTransfer\"\nimport { createPaymentCode, deletePaymentCode } from \"./modules/paymentCode/paymentCode\"\nimport { CreatePayoutMobileMoney } from \"./modules/payout/payout\"\n\nexport interface ClientOptions {\n monimeSpaceeId:string,\n accessToken:string\n}\n\nexport class MonimeClient {\n private monimeSpaceId:string\n private accessToken:string\n\n /* Methods */\n\n //method for financial accounts\n createFinancialAccount: (name:string ) => Promise<{success:boolean, data?:CreateFinancialAccount, error?:Error}>\n getFinancialAccount: (financialAccountId: string) => Promise<{ success: boolean; data?: GetFinancialAccount; error?: Error }>\n\n //method for internal transfer\n createInternalTransfer: (sourceAccount:string, destinationAccount:string, amount:number) => Promise<{success:boolean, data?:CreateInternalTransfer, error?:Error}>\n\n //method for payment code\n createPaymentCode: (paymentName:string, amount:number, financialAccount:string, username:string, phoneNumber:string) => Promise<{success:boolean, error?:Error, data?:CreatePaymentCode}>\n deletePaymentCode: (paymentCodeId:string) => Promise<{success:boolean, error?:Error, data?:CreatePaymentCode}>\n\n //method for payout\n createPayout: (amount:number,phoneNumber:string, sourceAccount:string) => Promise<{success:boolean, error?:Error, data?:CreatePayout}>\n\n constructor(options:ClientOptions){\n this.accessToken = options.accessToken\n this.monimeSpaceId = options.monimeSpaceeId\n\n this.createFinancialAccount = (name:string) => createFinancialAccount(name, this)\n this.getFinancialAccount = (financialAccountId:string) => getFinancialAccount(financialAccountId, this)\n this.createInternalTransfer = (sourceAccount:string, destinationAccount:string, amount:number) => createInternalTransfer(sourceAccount, destinationAccount, this, amount)\n this.createPaymentCode = (paymentName:string, amount:number, financialAccount:string, username:string, phoneNumber:string) => createPaymentCode(paymentName, amount, financialAccount, username, phoneNumber,this)\n this.deletePaymentCode = (paymentCodeId:string) => deletePaymentCode(paymentCodeId, this)\n this.createPayout = (amount:number,phoneNumber:string, sourceAccount:string) => CreatePayoutMobileMoney(amount, phoneNumber, sourceAccount, this)\n }\n\n /** @internal */\n _getConfig(){\n return {\n monimeSpaceId :this.monimeSpaceId,\n accessToken:this.accessToken\n }\n }\n}"],"mappings":"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","names":["axios","import_axios","import_crypto","URL","value","axios","import_axios","import_crypto","value","URL","axios","import_axios","import_crypto","URL","value","axios"]}
|