@singularity-payments/sveltekit 0.1.0 → 1.0.0-alpha.3
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/dist/index.d.mts +41 -2
- package/dist/index.d.ts +41 -2
- package/dist/index.js +22 -27
- package/dist/index.mjs +22 -27
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { RequestEvent } from '@sveltejs/kit';
|
|
2
2
|
import { MpesaClient, MpesaConfig, MpesaClientOptions } from '@singularity-payments/core';
|
|
3
|
-
export { AccountBalanceCallback, B2BCallback, C2BCallback, C2BRegisterRequest, C2BRegisterResponse, MpesaClient, MpesaClientOptions, MpesaConfig, ParsedC2BCallback, ParsedCallbackData, ReversalCallback, STKCallback, STKPushRequest, STKPushResponse, TransactionStatusCallback, TransactionStatusRequest, TransactionStatusResponse } from '@singularity-payments/core';
|
|
3
|
+
export { AccountBalanceCallback, AccountBalanceRequest, AccountBalanceResponse, B2BCallback, B2BRequest, B2BResponse, B2CCallback, B2CRequest, B2CResponse, C2BCallback, C2BRegisterRequest, C2BRegisterResponse, CallbackHandlerOptions, DynamicQRRequest, DynamicQRResponse, GeneralTransactionStatusRequest, GeneralTransactionStatusResponse, MpesaClient, MpesaClientOptions, MpesaConfig, ParsedC2BCallback, ParsedCallbackData, ReversalCallback, ReversalRequest, ReversalResponse, STKCallback, STKPushRequest, STKPushResponse, TransactionStatusCallback, TransactionStatusRequest, TransactionStatusResponse } from '@singularity-payments/core';
|
|
4
4
|
|
|
5
5
|
interface RouteHandler {
|
|
6
6
|
POST: (event: RequestEvent) => Promise<Response>;
|
|
@@ -20,10 +20,49 @@ interface MpesaRouteHandlers {
|
|
|
20
20
|
declare function createMpesaHandlers(client: MpesaClient): MpesaRouteHandlers;
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
-
* Create M-Pesa instance for
|
|
23
|
+
* Create M-Pesa instance for Nuxt
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* // utils/mpesa.ts
|
|
28
|
+
* import { createMpesa } from "@singularity-payments/nuxt";
|
|
29
|
+
*
|
|
30
|
+
* export const mpesa = createMpesa({
|
|
31
|
+
* consumerKey: process.env.MPESA_CONSUMER_KEY!,
|
|
32
|
+
* consumerSecret: process.env.MPESA_CONSUMER_SECRET!,
|
|
33
|
+
* passkey: process.env.MPESA_PASSKEY!,
|
|
34
|
+
* shortcode: process.env.MPESA_SHORTCODE!,
|
|
35
|
+
* environment: "sandbox",
|
|
36
|
+
* callbackUrl: `${process.env.NUXT_PUBLIC_APP_URL}/api/mpesa/callback`
|
|
37
|
+
* }, {
|
|
38
|
+
* callbackOptions: {
|
|
39
|
+
* onSuccess: async (data) => {
|
|
40
|
+
* console.log("Payment successful:", data);
|
|
41
|
+
* // Save to database
|
|
42
|
+
* },
|
|
43
|
+
* onFailure: async (data) => {
|
|
44
|
+
* console.log("Payment failed:", data);
|
|
45
|
+
* }
|
|
46
|
+
* }
|
|
47
|
+
* });
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* // server/api/mpesa/[...mpesa].ts
|
|
53
|
+
* import { mpesa } from "~/utils/mpesa";
|
|
54
|
+
*
|
|
55
|
+
* export default mpesa.handlers.catchAll;
|
|
56
|
+
* ```
|
|
24
57
|
*/
|
|
25
58
|
declare function createMpesa(config: MpesaConfig, options?: MpesaClientOptions): {
|
|
59
|
+
/**
|
|
60
|
+
* M-Pesa client instance for making API calls
|
|
61
|
+
*/
|
|
26
62
|
client: MpesaClient;
|
|
63
|
+
/**
|
|
64
|
+
* Pre-configured Nuxt event handlers for M-Pesa callbacks
|
|
65
|
+
*/
|
|
27
66
|
handlers: MpesaRouteHandlers;
|
|
28
67
|
};
|
|
29
68
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { RequestEvent } from '@sveltejs/kit';
|
|
2
2
|
import { MpesaClient, MpesaConfig, MpesaClientOptions } from '@singularity-payments/core';
|
|
3
|
-
export { AccountBalanceCallback, B2BCallback, C2BCallback, C2BRegisterRequest, C2BRegisterResponse, MpesaClient, MpesaClientOptions, MpesaConfig, ParsedC2BCallback, ParsedCallbackData, ReversalCallback, STKCallback, STKPushRequest, STKPushResponse, TransactionStatusCallback, TransactionStatusRequest, TransactionStatusResponse } from '@singularity-payments/core';
|
|
3
|
+
export { AccountBalanceCallback, AccountBalanceRequest, AccountBalanceResponse, B2BCallback, B2BRequest, B2BResponse, B2CCallback, B2CRequest, B2CResponse, C2BCallback, C2BRegisterRequest, C2BRegisterResponse, CallbackHandlerOptions, DynamicQRRequest, DynamicQRResponse, GeneralTransactionStatusRequest, GeneralTransactionStatusResponse, MpesaClient, MpesaClientOptions, MpesaConfig, ParsedC2BCallback, ParsedCallbackData, ReversalCallback, ReversalRequest, ReversalResponse, STKCallback, STKPushRequest, STKPushResponse, TransactionStatusCallback, TransactionStatusRequest, TransactionStatusResponse } from '@singularity-payments/core';
|
|
4
4
|
|
|
5
5
|
interface RouteHandler {
|
|
6
6
|
POST: (event: RequestEvent) => Promise<Response>;
|
|
@@ -20,10 +20,49 @@ interface MpesaRouteHandlers {
|
|
|
20
20
|
declare function createMpesaHandlers(client: MpesaClient): MpesaRouteHandlers;
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
-
* Create M-Pesa instance for
|
|
23
|
+
* Create M-Pesa instance for Nuxt
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* // utils/mpesa.ts
|
|
28
|
+
* import { createMpesa } from "@singularity-payments/nuxt";
|
|
29
|
+
*
|
|
30
|
+
* export const mpesa = createMpesa({
|
|
31
|
+
* consumerKey: process.env.MPESA_CONSUMER_KEY!,
|
|
32
|
+
* consumerSecret: process.env.MPESA_CONSUMER_SECRET!,
|
|
33
|
+
* passkey: process.env.MPESA_PASSKEY!,
|
|
34
|
+
* shortcode: process.env.MPESA_SHORTCODE!,
|
|
35
|
+
* environment: "sandbox",
|
|
36
|
+
* callbackUrl: `${process.env.NUXT_PUBLIC_APP_URL}/api/mpesa/callback`
|
|
37
|
+
* }, {
|
|
38
|
+
* callbackOptions: {
|
|
39
|
+
* onSuccess: async (data) => {
|
|
40
|
+
* console.log("Payment successful:", data);
|
|
41
|
+
* // Save to database
|
|
42
|
+
* },
|
|
43
|
+
* onFailure: async (data) => {
|
|
44
|
+
* console.log("Payment failed:", data);
|
|
45
|
+
* }
|
|
46
|
+
* }
|
|
47
|
+
* });
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* // server/api/mpesa/[...mpesa].ts
|
|
53
|
+
* import { mpesa } from "~/utils/mpesa";
|
|
54
|
+
*
|
|
55
|
+
* export default mpesa.handlers.catchAll;
|
|
56
|
+
* ```
|
|
24
57
|
*/
|
|
25
58
|
declare function createMpesa(config: MpesaConfig, options?: MpesaClientOptions): {
|
|
59
|
+
/**
|
|
60
|
+
* M-Pesa client instance for making API calls
|
|
61
|
+
*/
|
|
26
62
|
client: MpesaClient;
|
|
63
|
+
/**
|
|
64
|
+
* Pre-configured Nuxt event handlers for M-Pesa callbacks
|
|
65
|
+
*/
|
|
27
66
|
handlers: MpesaRouteHandlers;
|
|
28
67
|
};
|
|
29
68
|
|
package/dist/index.js
CHANGED
|
@@ -106,8 +106,7 @@ function createMpesaHandlers(client) {
|
|
|
106
106
|
POST: async (event) => {
|
|
107
107
|
try {
|
|
108
108
|
const body = await event.request.json();
|
|
109
|
-
const
|
|
110
|
-
const response = await client.handleB2CResult(body, ipAddress);
|
|
109
|
+
const response = await client.handleB2CCallback(body);
|
|
111
110
|
return (0, import_kit.json)(response, { status: 200 });
|
|
112
111
|
} catch (error) {
|
|
113
112
|
console.error("B2C Result error:", error);
|
|
@@ -157,8 +156,7 @@ function createMpesaHandlers(client) {
|
|
|
157
156
|
POST: async (event) => {
|
|
158
157
|
try {
|
|
159
158
|
const body = await event.request.json();
|
|
160
|
-
const
|
|
161
|
-
const response = await client.handleB2BResult(body, ipAddress);
|
|
159
|
+
const response = await client.handleB2BCallback(body);
|
|
162
160
|
return (0, import_kit.json)(response, { status: 200 });
|
|
163
161
|
} catch (error) {
|
|
164
162
|
console.error("B2B Result error:", error);
|
|
@@ -202,20 +200,16 @@ function createMpesaHandlers(client) {
|
|
|
202
200
|
},
|
|
203
201
|
/**
|
|
204
202
|
* Account Balance result handler
|
|
205
|
-
* Handles callbacks from M-Pesa after account balance
|
|
203
|
+
* Handles callbacks from M-Pesa after account balance requests
|
|
206
204
|
*/
|
|
207
|
-
|
|
205
|
+
balanceResult: {
|
|
208
206
|
POST: async (event) => {
|
|
209
207
|
try {
|
|
210
208
|
const body = await event.request.json();
|
|
211
|
-
const
|
|
212
|
-
const response = await client.handleAccountBalanceResult(
|
|
213
|
-
body,
|
|
214
|
-
ipAddress
|
|
215
|
-
);
|
|
209
|
+
const response = await client.handleAccountBalanceCallback(body);
|
|
216
210
|
return (0, import_kit.json)(response, { status: 200 });
|
|
217
211
|
} catch (error) {
|
|
218
|
-
console.error("
|
|
212
|
+
console.error("Balance Result error:", error);
|
|
219
213
|
return (0, import_kit.json)(
|
|
220
214
|
{
|
|
221
215
|
ResultCode: 1,
|
|
@@ -228,13 +222,13 @@ function createMpesaHandlers(client) {
|
|
|
228
222
|
},
|
|
229
223
|
/**
|
|
230
224
|
* Account Balance timeout handler
|
|
231
|
-
* Handles timeout notifications from M-Pesa for account balance
|
|
225
|
+
* Handles timeout notifications from M-Pesa for account balance requests
|
|
232
226
|
*/
|
|
233
|
-
|
|
227
|
+
balanceTimeout: {
|
|
234
228
|
POST: async (event) => {
|
|
235
229
|
try {
|
|
236
230
|
const body = await event.request.json();
|
|
237
|
-
console.log("
|
|
231
|
+
console.log("Balance Timeout:", body);
|
|
238
232
|
return (0, import_kit.json)(
|
|
239
233
|
{
|
|
240
234
|
ResultCode: 0,
|
|
@@ -243,7 +237,7 @@ function createMpesaHandlers(client) {
|
|
|
243
237
|
{ status: 200 }
|
|
244
238
|
);
|
|
245
239
|
} catch (error) {
|
|
246
|
-
console.error("
|
|
240
|
+
console.error("Balance Timeout error:", error);
|
|
247
241
|
return (0, import_kit.json)(
|
|
248
242
|
{
|
|
249
243
|
ResultCode: 1,
|
|
@@ -256,17 +250,13 @@ function createMpesaHandlers(client) {
|
|
|
256
250
|
},
|
|
257
251
|
/**
|
|
258
252
|
* Transaction Status result handler
|
|
259
|
-
* Handles callbacks from M-Pesa after transaction status
|
|
253
|
+
* Handles callbacks from M-Pesa after transaction status requests
|
|
260
254
|
*/
|
|
261
255
|
transactionStatusResult: {
|
|
262
256
|
POST: async (event) => {
|
|
263
257
|
try {
|
|
264
258
|
const body = await event.request.json();
|
|
265
|
-
const
|
|
266
|
-
const response = await client.handleTransactionStatusResult(
|
|
267
|
-
body,
|
|
268
|
-
ipAddress
|
|
269
|
-
);
|
|
259
|
+
const response = await client.handleTransactionStatusCallback(body);
|
|
270
260
|
return (0, import_kit.json)(response, { status: 200 });
|
|
271
261
|
} catch (error) {
|
|
272
262
|
console.error("Transaction Status Result error:", error);
|
|
@@ -282,7 +272,7 @@ function createMpesaHandlers(client) {
|
|
|
282
272
|
},
|
|
283
273
|
/**
|
|
284
274
|
* Transaction Status timeout handler
|
|
285
|
-
* Handles timeout notifications from M-Pesa for transaction status
|
|
275
|
+
* Handles timeout notifications from M-Pesa for transaction status requests
|
|
286
276
|
*/
|
|
287
277
|
transactionStatusTimeout: {
|
|
288
278
|
POST: async (event) => {
|
|
@@ -316,8 +306,7 @@ function createMpesaHandlers(client) {
|
|
|
316
306
|
POST: async (event) => {
|
|
317
307
|
try {
|
|
318
308
|
const body = await event.request.json();
|
|
319
|
-
const
|
|
320
|
-
const response = await client.handleReversalResult(body, ipAddress);
|
|
309
|
+
const response = await client.handleReversalCallback(body);
|
|
321
310
|
return (0, import_kit.json)(response, { status: 200 });
|
|
322
311
|
} catch (error) {
|
|
323
312
|
console.error("Reversal Result error:", error);
|
|
@@ -423,10 +412,10 @@ function createMpesaHandlers(client) {
|
|
|
423
412
|
return handlers.b2bTimeout.POST(event);
|
|
424
413
|
}
|
|
425
414
|
if (lastSegment === "balance-result") {
|
|
426
|
-
return handlers.
|
|
415
|
+
return handlers.balanceResult.POST(event);
|
|
427
416
|
}
|
|
428
417
|
if (lastSegment === "balance-timeout") {
|
|
429
|
-
return handlers.
|
|
418
|
+
return handlers.balanceTimeout.POST(event);
|
|
430
419
|
}
|
|
431
420
|
if (lastSegment === "status-result") {
|
|
432
421
|
return handlers.transactionStatusResult.POST(event);
|
|
@@ -653,7 +642,13 @@ function createMpesa(config, options) {
|
|
|
653
642
|
const client = new import_core.MpesaClient(config, options);
|
|
654
643
|
const handlers = createMpesaHandlers(client);
|
|
655
644
|
return {
|
|
645
|
+
/**
|
|
646
|
+
* M-Pesa client instance for making API calls
|
|
647
|
+
*/
|
|
656
648
|
client,
|
|
649
|
+
/**
|
|
650
|
+
* Pre-configured Nuxt event handlers for M-Pesa callbacks
|
|
651
|
+
*/
|
|
657
652
|
handlers
|
|
658
653
|
};
|
|
659
654
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -80,8 +80,7 @@ function createMpesaHandlers(client) {
|
|
|
80
80
|
POST: async (event) => {
|
|
81
81
|
try {
|
|
82
82
|
const body = await event.request.json();
|
|
83
|
-
const
|
|
84
|
-
const response = await client.handleB2CResult(body, ipAddress);
|
|
83
|
+
const response = await client.handleB2CCallback(body);
|
|
85
84
|
return json(response, { status: 200 });
|
|
86
85
|
} catch (error) {
|
|
87
86
|
console.error("B2C Result error:", error);
|
|
@@ -131,8 +130,7 @@ function createMpesaHandlers(client) {
|
|
|
131
130
|
POST: async (event) => {
|
|
132
131
|
try {
|
|
133
132
|
const body = await event.request.json();
|
|
134
|
-
const
|
|
135
|
-
const response = await client.handleB2BResult(body, ipAddress);
|
|
133
|
+
const response = await client.handleB2BCallback(body);
|
|
136
134
|
return json(response, { status: 200 });
|
|
137
135
|
} catch (error) {
|
|
138
136
|
console.error("B2B Result error:", error);
|
|
@@ -176,20 +174,16 @@ function createMpesaHandlers(client) {
|
|
|
176
174
|
},
|
|
177
175
|
/**
|
|
178
176
|
* Account Balance result handler
|
|
179
|
-
* Handles callbacks from M-Pesa after account balance
|
|
177
|
+
* Handles callbacks from M-Pesa after account balance requests
|
|
180
178
|
*/
|
|
181
|
-
|
|
179
|
+
balanceResult: {
|
|
182
180
|
POST: async (event) => {
|
|
183
181
|
try {
|
|
184
182
|
const body = await event.request.json();
|
|
185
|
-
const
|
|
186
|
-
const response = await client.handleAccountBalanceResult(
|
|
187
|
-
body,
|
|
188
|
-
ipAddress
|
|
189
|
-
);
|
|
183
|
+
const response = await client.handleAccountBalanceCallback(body);
|
|
190
184
|
return json(response, { status: 200 });
|
|
191
185
|
} catch (error) {
|
|
192
|
-
console.error("
|
|
186
|
+
console.error("Balance Result error:", error);
|
|
193
187
|
return json(
|
|
194
188
|
{
|
|
195
189
|
ResultCode: 1,
|
|
@@ -202,13 +196,13 @@ function createMpesaHandlers(client) {
|
|
|
202
196
|
},
|
|
203
197
|
/**
|
|
204
198
|
* Account Balance timeout handler
|
|
205
|
-
* Handles timeout notifications from M-Pesa for account balance
|
|
199
|
+
* Handles timeout notifications from M-Pesa for account balance requests
|
|
206
200
|
*/
|
|
207
|
-
|
|
201
|
+
balanceTimeout: {
|
|
208
202
|
POST: async (event) => {
|
|
209
203
|
try {
|
|
210
204
|
const body = await event.request.json();
|
|
211
|
-
console.log("
|
|
205
|
+
console.log("Balance Timeout:", body);
|
|
212
206
|
return json(
|
|
213
207
|
{
|
|
214
208
|
ResultCode: 0,
|
|
@@ -217,7 +211,7 @@ function createMpesaHandlers(client) {
|
|
|
217
211
|
{ status: 200 }
|
|
218
212
|
);
|
|
219
213
|
} catch (error) {
|
|
220
|
-
console.error("
|
|
214
|
+
console.error("Balance Timeout error:", error);
|
|
221
215
|
return json(
|
|
222
216
|
{
|
|
223
217
|
ResultCode: 1,
|
|
@@ -230,17 +224,13 @@ function createMpesaHandlers(client) {
|
|
|
230
224
|
},
|
|
231
225
|
/**
|
|
232
226
|
* Transaction Status result handler
|
|
233
|
-
* Handles callbacks from M-Pesa after transaction status
|
|
227
|
+
* Handles callbacks from M-Pesa after transaction status requests
|
|
234
228
|
*/
|
|
235
229
|
transactionStatusResult: {
|
|
236
230
|
POST: async (event) => {
|
|
237
231
|
try {
|
|
238
232
|
const body = await event.request.json();
|
|
239
|
-
const
|
|
240
|
-
const response = await client.handleTransactionStatusResult(
|
|
241
|
-
body,
|
|
242
|
-
ipAddress
|
|
243
|
-
);
|
|
233
|
+
const response = await client.handleTransactionStatusCallback(body);
|
|
244
234
|
return json(response, { status: 200 });
|
|
245
235
|
} catch (error) {
|
|
246
236
|
console.error("Transaction Status Result error:", error);
|
|
@@ -256,7 +246,7 @@ function createMpesaHandlers(client) {
|
|
|
256
246
|
},
|
|
257
247
|
/**
|
|
258
248
|
* Transaction Status timeout handler
|
|
259
|
-
* Handles timeout notifications from M-Pesa for transaction status
|
|
249
|
+
* Handles timeout notifications from M-Pesa for transaction status requests
|
|
260
250
|
*/
|
|
261
251
|
transactionStatusTimeout: {
|
|
262
252
|
POST: async (event) => {
|
|
@@ -290,8 +280,7 @@ function createMpesaHandlers(client) {
|
|
|
290
280
|
POST: async (event) => {
|
|
291
281
|
try {
|
|
292
282
|
const body = await event.request.json();
|
|
293
|
-
const
|
|
294
|
-
const response = await client.handleReversalResult(body, ipAddress);
|
|
283
|
+
const response = await client.handleReversalCallback(body);
|
|
295
284
|
return json(response, { status: 200 });
|
|
296
285
|
} catch (error) {
|
|
297
286
|
console.error("Reversal Result error:", error);
|
|
@@ -397,10 +386,10 @@ function createMpesaHandlers(client) {
|
|
|
397
386
|
return handlers.b2bTimeout.POST(event);
|
|
398
387
|
}
|
|
399
388
|
if (lastSegment === "balance-result") {
|
|
400
|
-
return handlers.
|
|
389
|
+
return handlers.balanceResult.POST(event);
|
|
401
390
|
}
|
|
402
391
|
if (lastSegment === "balance-timeout") {
|
|
403
|
-
return handlers.
|
|
392
|
+
return handlers.balanceTimeout.POST(event);
|
|
404
393
|
}
|
|
405
394
|
if (lastSegment === "status-result") {
|
|
406
395
|
return handlers.transactionStatusResult.POST(event);
|
|
@@ -629,7 +618,13 @@ function createMpesa(config, options) {
|
|
|
629
618
|
const client = new MpesaClient(config, options);
|
|
630
619
|
const handlers = createMpesaHandlers(client);
|
|
631
620
|
return {
|
|
621
|
+
/**
|
|
622
|
+
* M-Pesa client instance for making API calls
|
|
623
|
+
*/
|
|
632
624
|
client,
|
|
625
|
+
/**
|
|
626
|
+
* Pre-configured Nuxt event handlers for M-Pesa callbacks
|
|
627
|
+
*/
|
|
633
628
|
handlers
|
|
634
629
|
};
|
|
635
630
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@singularity-payments/sveltekit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0-alpha.3",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@sveltejs/kit": "^2.49.2",
|
|
35
|
-
"@singularity-payments/core": "0.
|
|
35
|
+
"@singularity-payments/core": "1.0.0-alpha.3"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@types/node": "^25.0.3",
|