@p2pdotme/sdk 1.2.22 → 1.2.24

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.
Files changed (60) hide show
  1. package/README.md +1 -1
  2. package/dist/country.cjs +74 -4
  3. package/dist/country.cjs.map +1 -1
  4. package/dist/country.d.cts +13 -1
  5. package/dist/country.d.ts +13 -1
  6. package/dist/country.mjs +72 -4
  7. package/dist/country.mjs.map +1 -1
  8. package/dist/fraud-engine.cjs +2 -1
  9. package/dist/fraud-engine.cjs.map +1 -1
  10. package/dist/fraud-engine.mjs +2 -1
  11. package/dist/fraud-engine.mjs.map +1 -1
  12. package/dist/index.cjs +3 -2
  13. package/dist/index.cjs.map +1 -1
  14. package/dist/index.d.cts +1 -0
  15. package/dist/index.d.ts +1 -0
  16. package/dist/index.mjs +3 -2
  17. package/dist/index.mjs.map +1 -1
  18. package/dist/orders.cjs +2 -1
  19. package/dist/orders.cjs.map +1 -1
  20. package/dist/orders.d.cts +2 -0
  21. package/dist/orders.d.ts +2 -0
  22. package/dist/orders.mjs +2 -1
  23. package/dist/orders.mjs.map +1 -1
  24. package/dist/prices.cjs +2 -1
  25. package/dist/prices.cjs.map +1 -1
  26. package/dist/prices.d.cts +1 -0
  27. package/dist/prices.d.ts +1 -0
  28. package/dist/prices.mjs +2 -1
  29. package/dist/prices.mjs.map +1 -1
  30. package/dist/profile.cjs +2 -1
  31. package/dist/profile.cjs.map +1 -1
  32. package/dist/profile.d.cts +2 -0
  33. package/dist/profile.d.ts +2 -0
  34. package/dist/profile.mjs +2 -1
  35. package/dist/profile.mjs.map +1 -1
  36. package/dist/qr-parsers.cjs +26 -2
  37. package/dist/qr-parsers.cjs.map +1 -1
  38. package/dist/qr-parsers.d.cts +1 -0
  39. package/dist/qr-parsers.d.ts +1 -0
  40. package/dist/qr-parsers.mjs +26 -2
  41. package/dist/qr-parsers.mjs.map +1 -1
  42. package/dist/react.cjs +2 -1
  43. package/dist/react.cjs.map +1 -1
  44. package/dist/react.d.cts +7 -1
  45. package/dist/react.d.ts +7 -1
  46. package/dist/react.mjs +2 -1
  47. package/dist/react.mjs.map +1 -1
  48. package/dist/stake.cjs +2 -1
  49. package/dist/stake.cjs.map +1 -1
  50. package/dist/stake.d.cts +1 -0
  51. package/dist/stake.d.ts +1 -0
  52. package/dist/stake.mjs +2 -1
  53. package/dist/stake.mjs.map +1 -1
  54. package/dist/zkkyc.cjs +30 -24
  55. package/dist/zkkyc.cjs.map +1 -1
  56. package/dist/zkkyc.d.cts +31 -13
  57. package/dist/zkkyc.d.ts +31 -13
  58. package/dist/zkkyc.mjs +30 -24
  59. package/dist/zkkyc.mjs.map +1 -1
  60. package/package.json +1 -1
package/dist/country.d.ts CHANGED
@@ -21,6 +21,7 @@ declare const CURRENCY: {
21
21
  readonly ECU: "ECU";
22
22
  readonly PEN: "PEN";
23
23
  readonly PHP: "PHP";
24
+ readonly KES: "KES";
24
25
  };
25
26
  /** Union of supported currency codes. */
26
27
  type CurrencyCode = (typeof CURRENCY)[keyof typeof CURRENCY];
@@ -257,6 +258,17 @@ declare function validateIndonesianPhoneNumber(phoneNumber: string): boolean;
257
258
  */
258
259
  declare function validateUPIId(upiId: string): boolean;
259
260
 
261
+ /**
262
+ * Validates a Kenyan M-Pesa phone number (Send Money). Accepts the
263
+ * `07XXXXXXXX`, `01XXXXXXXX`, `2547XXXXXXXX`, `2541XXXXXXXX`, or bare
264
+ * `7XXXXXXXX`/`1XXXXXXXX` forms.
265
+ */
266
+ declare function validateKenyanPhone(phone: string): boolean;
267
+ /**
268
+ * Validates a Kenyan M-Pesa Buy Goods till number (5–7 digits).
269
+ */
270
+ declare function validateKenyanTill(till: string): boolean;
271
+
260
272
  /**
261
273
  * Validates Mexican payment IDs (CLABE, card number, or phone number).
262
274
  * CLABE: 18 digits. Card: 16 digits. Phone: 10 digits.
@@ -338,4 +350,4 @@ declare function assignStoredPaymentIdToFieldValues(currency: CurrencyCode, paym
338
350
  */
339
351
  declare function formatStoredPaymentIdForDisplay(currency: CurrencyCode, paymentId: string): string;
340
352
 
341
- export { COUNTRY_OPTIONS, CURRENCY, CURRENCY_CODES, type CountryOption, type CurrencyCode, PACKED_PAYMENT_ID_SEP, PAYMENT_ID_FIELDS, type PaymentIdFieldConfig, type PeruvianPaymentIdParts, type VenezuelanPaymentIdParts, assignPaymentIdToFieldValues, assignStoredPaymentIdToFieldValues, deserializeCompoundPaymentId, formatCompoundPaymentIdForDisplay, formatStoredPaymentIdForDisplay, getCountryOption, getPayQrPayload, getStoredQrPayload, getTransferWarning, isNepalFonepayQr, packStoredPaymentId, serializeCompoundPaymentId, unpackPackedPaymentId, uploadsPaymentQR, usesCatalogPaymentForm, usesPackedPaymentId, validateArgentinePaymentId, validateBolivianAccount, validateBolivianQr, validateCatalogPaymentDraft, validateColombianPaymentId, validateCubanCardNumber, validateCubanPhoneNumber, validateEcuadorianAccountName, validateEcuadorianAccountNumber, validateEcuadorianCedula, validateIndonesianPhoneNumber, validateMexicanPaymentId, validateNigerianAccountName, validateNigerianAccountNumber, validatePIXId, validatePaymentIdFields, validatePeruvianCci, validatePeruvianPaymentId, validatePeruvianPaymentKey, validatePeruvianPhone, validatePeruvianQr, validatePhilippinePhoneNumber, validateRevolutId, validateStoredPaymentId, validateUPIId, validateVenezuelanPaymentId, validateVenezuelanPhoneNumber, validateVenezuelanQr, validateVenezuelanRif };
353
+ export { COUNTRY_OPTIONS, CURRENCY, CURRENCY_CODES, type CountryOption, type CurrencyCode, PACKED_PAYMENT_ID_SEP, PAYMENT_ID_FIELDS, type PaymentIdFieldConfig, type PeruvianPaymentIdParts, type VenezuelanPaymentIdParts, assignPaymentIdToFieldValues, assignStoredPaymentIdToFieldValues, deserializeCompoundPaymentId, formatCompoundPaymentIdForDisplay, formatStoredPaymentIdForDisplay, getCountryOption, getPayQrPayload, getStoredQrPayload, getTransferWarning, isNepalFonepayQr, packStoredPaymentId, serializeCompoundPaymentId, unpackPackedPaymentId, uploadsPaymentQR, usesCatalogPaymentForm, usesPackedPaymentId, validateArgentinePaymentId, validateBolivianAccount, validateBolivianQr, validateCatalogPaymentDraft, validateColombianPaymentId, validateCubanCardNumber, validateCubanPhoneNumber, validateEcuadorianAccountName, validateEcuadorianAccountNumber, validateEcuadorianCedula, validateIndonesianPhoneNumber, validateKenyanPhone, validateKenyanTill, validateMexicanPaymentId, validateNigerianAccountName, validateNigerianAccountNumber, validatePIXId, validatePaymentIdFields, validatePeruvianCci, validatePeruvianPaymentId, validatePeruvianPaymentKey, validatePeruvianPhone, validatePeruvianQr, validatePhilippinePhoneNumber, validateRevolutId, validateStoredPaymentId, validateUPIId, validateVenezuelanPaymentId, validateVenezuelanPhoneNumber, validateVenezuelanQr, validateVenezuelanRif };
package/dist/country.mjs CHANGED
@@ -14,7 +14,8 @@ var CURRENCY = {
14
14
  CUP: "CUP",
15
15
  ECU: "ECU",
16
16
  PEN: "PEN",
17
- PHP: "PHP"
17
+ PHP: "PHP",
18
+ KES: "KES"
18
19
  };
19
20
  var CURRENCY_CODES = Object.values(CURRENCY);
20
21
 
@@ -647,6 +648,62 @@ var INR_COUNTRY_OPTION = {
647
648
  }
648
649
  };
649
650
 
651
+ // src/country/currencies/kes.ts
652
+ var KES_PHONE_PLACEHOLDER = "0712345678";
653
+ var KES_TILL_PLACEHOLDER = "123456";
654
+ var KES_PHONE_VALIDATION_ERROR = "Please enter a valid M-Pesa phone number";
655
+ var KES_TILL_VALIDATION_ERROR = "Please enter a valid M-Pesa till number";
656
+ function validateKenyanPhone(phone) {
657
+ if (!phone || phone.trim().length === 0) return false;
658
+ const cleaned = phone.trim().replace(/\D/g, "");
659
+ return /^254[17]\d{8}$/.test(cleaned) || /^0[17]\d{8}$/.test(cleaned) || /^[17]\d{8}$/.test(cleaned);
660
+ }
661
+ function validateKenyanTill(till) {
662
+ if (!till || till.trim().length === 0) return false;
663
+ const cleaned = till.trim().replace(/\D/g, "");
664
+ return /^\d{5,7}$/.test(cleaned);
665
+ }
666
+ var KES_PAYMENT_FIELDS = [
667
+ {
668
+ key: "phone",
669
+ label: "PHONE_NUMBER",
670
+ placeholder: KES_PHONE_PLACEHOLDER,
671
+ displayLabel: "Phone Number",
672
+ validate: validateKenyanPhone,
673
+ validationErrorMessage: KES_PHONE_VALIDATION_ERROR,
674
+ optional: true
675
+ },
676
+ {
677
+ key: "till",
678
+ label: "TILL_NUMBER",
679
+ placeholder: KES_TILL_PLACEHOLDER,
680
+ displayLabel: "Till Number",
681
+ validate: validateKenyanTill,
682
+ validationErrorMessage: KES_TILL_VALIDATION_ERROR,
683
+ optional: true
684
+ }
685
+ ];
686
+ var KES_COUNTRY_OPTION = {
687
+ country: "Kenya",
688
+ currency: CURRENCY.KES,
689
+ symbolNative: "KSh",
690
+ locale: "en-KE",
691
+ paymentMethod: "MPESA",
692
+ paymentAddressName: "MPESA_DETAILS",
693
+ timezone: "Africa/Nairobi",
694
+ timezone_name: "EAT",
695
+ flag: "\u{1F1F0}\u{1F1EA}",
696
+ flagUrl: "https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/72x72/1f1f0-1f1ea.png",
697
+ phoneCode: "+254",
698
+ telegramSupportChannel: "https://t.me/p2pmekenya",
699
+ twitterUsername: "p2pmekenya",
700
+ smsCountryCodes: ["KE"],
701
+ precision: 2,
702
+ isAlpha: true,
703
+ disabled: false,
704
+ disabledPaymentTypes: ["PAY"]
705
+ };
706
+
650
707
  // src/country/currencies/mex.ts
651
708
  var MEX_PLACEHOLDER = "012345678901234567";
652
709
  var MEX_VALIDATION_ERROR = "Please enter a valid CLABE (18 digits), card number, or phone number";
@@ -1099,7 +1156,8 @@ var PAYMENT_ID_FIELDS = {
1099
1156
  CUP: CUP_PAYMENT_FIELDS,
1100
1157
  ECU: ECU_PAYMENT_FIELDS,
1101
1158
  PEN: PEN_PAYMENT_FIELDS,
1102
- PHP: PHP_PAYMENT_FIELDS
1159
+ PHP: PHP_PAYMENT_FIELDS,
1160
+ KES: KES_PAYMENT_FIELDS
1103
1161
  };
1104
1162
 
1105
1163
  // src/country/countries.ts
@@ -1118,7 +1176,8 @@ var COUNTRY_OPTIONS = [
1118
1176
  PEN_COUNTRY_OPTION,
1119
1177
  PHP_COUNTRY_OPTION,
1120
1178
  EUR_COUNTRY_OPTION,
1121
- USD_COUNTRY_OPTION
1179
+ USD_COUNTRY_OPTION,
1180
+ KES_COUNTRY_OPTION
1122
1181
  ];
1123
1182
  function getCountryOption(currency) {
1124
1183
  if (!currency) return void 0;
@@ -1178,7 +1237,14 @@ function assignPaymentIdToFieldValues(fields, paymentId) {
1178
1237
  if (!paymentId) return result;
1179
1238
  const { rest } = unpackPackedPaymentId(paymentId);
1180
1239
  if (!rest) return result;
1181
- const tokens = deserializeCompoundPaymentId(rest).map((part) => part.trim()).filter((part) => part.length > 0);
1240
+ const rawParts = deserializeCompoundPaymentId(rest).map((part) => part.trim());
1241
+ if (rawParts.length === fields.length) {
1242
+ fields.forEach((field, i) => {
1243
+ result[field.key] = rawParts[i] ?? "";
1244
+ });
1245
+ return result;
1246
+ }
1247
+ const tokens = rawParts.filter((part) => part.length > 0);
1182
1248
  const claimed = /* @__PURE__ */ new Set();
1183
1249
  for (const token of tokens) {
1184
1250
  const field = fields.find((item) => !claimed.has(item.key) && item.validate(token));
@@ -1339,6 +1405,8 @@ export {
1339
1405
  validateEcuadorianAccountNumber,
1340
1406
  validateEcuadorianCedula,
1341
1407
  validateIndonesianPhoneNumber,
1408
+ validateKenyanPhone,
1409
+ validateKenyanTill,
1342
1410
  validateMexicanPaymentId,
1343
1411
  validateNigerianAccountName,
1344
1412
  validateNigerianAccountNumber,