@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 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 SvelteKit
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 SvelteKit
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 ipAddress = event.request.headers.get("x-forwarded-for") || event.request.headers.get("x-real-ip") || void 0;
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 ipAddress = event.request.headers.get("x-forwarded-for") || event.request.headers.get("x-real-ip") || void 0;
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 queries
203
+ * Handles callbacks from M-Pesa after account balance requests
206
204
  */
207
- accountBalanceResult: {
205
+ balanceResult: {
208
206
  POST: async (event) => {
209
207
  try {
210
208
  const body = await event.request.json();
211
- const ipAddress = event.request.headers.get("x-forwarded-for") || event.request.headers.get("x-real-ip") || void 0;
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("Account Balance Result error:", 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 queries
225
+ * Handles timeout notifications from M-Pesa for account balance requests
232
226
  */
233
- accountBalanceTimeout: {
227
+ balanceTimeout: {
234
228
  POST: async (event) => {
235
229
  try {
236
230
  const body = await event.request.json();
237
- console.log("Account Balance Timeout:", body);
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("Account Balance Timeout error:", 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 queries
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 ipAddress = event.request.headers.get("x-forwarded-for") || event.request.headers.get("x-real-ip") || void 0;
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 queries
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 ipAddress = event.request.headers.get("x-forwarded-for") || event.request.headers.get("x-real-ip") || void 0;
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.accountBalanceResult.POST(event);
415
+ return handlers.balanceResult.POST(event);
427
416
  }
428
417
  if (lastSegment === "balance-timeout") {
429
- return handlers.accountBalanceTimeout.POST(event);
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 ipAddress = event.request.headers.get("x-forwarded-for") || event.request.headers.get("x-real-ip") || void 0;
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 ipAddress = event.request.headers.get("x-forwarded-for") || event.request.headers.get("x-real-ip") || void 0;
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 queries
177
+ * Handles callbacks from M-Pesa after account balance requests
180
178
  */
181
- accountBalanceResult: {
179
+ balanceResult: {
182
180
  POST: async (event) => {
183
181
  try {
184
182
  const body = await event.request.json();
185
- const ipAddress = event.request.headers.get("x-forwarded-for") || event.request.headers.get("x-real-ip") || void 0;
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("Account Balance Result error:", 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 queries
199
+ * Handles timeout notifications from M-Pesa for account balance requests
206
200
  */
207
- accountBalanceTimeout: {
201
+ balanceTimeout: {
208
202
  POST: async (event) => {
209
203
  try {
210
204
  const body = await event.request.json();
211
- console.log("Account Balance Timeout:", body);
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("Account Balance Timeout error:", 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 queries
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 ipAddress = event.request.headers.get("x-forwarded-for") || event.request.headers.get("x-real-ip") || void 0;
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 queries
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 ipAddress = event.request.headers.get("x-forwarded-for") || event.request.headers.get("x-real-ip") || void 0;
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.accountBalanceResult.POST(event);
389
+ return handlers.balanceResult.POST(event);
401
390
  }
402
391
  if (lastSegment === "balance-timeout") {
403
- return handlers.accountBalanceTimeout.POST(event);
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.1.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.1.0"
35
+ "@singularity-payments/core": "1.0.0-alpha.3"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/node": "^25.0.3",