@p2pdotme/sdk 1.2.24 → 1.2.25
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/country.cjs +90 -0
- package/dist/country.cjs.map +1 -1
- package/dist/country.d.cts +123 -7
- package/dist/country.d.ts +123 -7
- package/dist/country.mjs +80 -0
- package/dist/country.mjs.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/qr-parsers.cjs.map +1 -1
- package/dist/qr-parsers.mjs.map +1 -1
- package/package.json +1 -1
package/dist/country.cjs
CHANGED
|
@@ -23,6 +23,10 @@ __export(country_exports, {
|
|
|
23
23
|
COUNTRY_OPTIONS: () => COUNTRY_OPTIONS,
|
|
24
24
|
CURRENCY: () => CURRENCY,
|
|
25
25
|
CURRENCY_CODES: () => CURRENCY_CODES,
|
|
26
|
+
IDR_BANK_ACCOUNT_PLACEHOLDER: () => IDR_BANK_ACCOUNT_PLACEHOLDER,
|
|
27
|
+
IDR_BANK_ACCOUNT_VALIDATION_ERROR: () => IDR_BANK_ACCOUNT_VALIDATION_ERROR,
|
|
28
|
+
IDR_PAYMENT_PROVIDERS: () => IDR_PAYMENT_PROVIDERS,
|
|
29
|
+
IDR_PLACEHOLDER: () => IDR_PLACEHOLDER,
|
|
26
30
|
PACKED_PAYMENT_ID_SEP: () => PACKED_PAYMENT_ID_SEP,
|
|
27
31
|
PAYMENT_ID_FIELDS: () => PAYMENT_ID_FIELDS,
|
|
28
32
|
assignPaymentIdToFieldValues: () => assignPaymentIdToFieldValues,
|
|
@@ -31,11 +35,14 @@ __export(country_exports, {
|
|
|
31
35
|
formatCompoundPaymentIdForDisplay: () => formatCompoundPaymentIdForDisplay,
|
|
32
36
|
formatStoredPaymentIdForDisplay: () => formatStoredPaymentIdForDisplay,
|
|
33
37
|
getCountryOption: () => getCountryOption,
|
|
38
|
+
getIndonesianPaymentProviderType: () => getIndonesianPaymentProviderType,
|
|
34
39
|
getPayQrPayload: () => getPayQrPayload,
|
|
35
40
|
getStoredQrPayload: () => getStoredQrPayload,
|
|
36
41
|
getTransferWarning: () => getTransferWarning,
|
|
37
42
|
isNepalFonepayQr: () => isNepalFonepayQr,
|
|
38
43
|
packStoredPaymentId: () => packStoredPaymentId,
|
|
44
|
+
parseIndonesianPaymentId: () => parseIndonesianPaymentId,
|
|
45
|
+
resolveIndonesianStoredPaymentIdDisplay: () => resolveIndonesianStoredPaymentIdDisplay,
|
|
39
46
|
serializeCompoundPaymentId: () => serializeCompoundPaymentId,
|
|
40
47
|
unpackPackedPaymentId: () => unpackPackedPaymentId,
|
|
41
48
|
uploadsPaymentQR: () => uploadsPaymentQR,
|
|
@@ -51,7 +58,10 @@ __export(country_exports, {
|
|
|
51
58
|
validateEcuadorianAccountName: () => validateEcuadorianAccountName,
|
|
52
59
|
validateEcuadorianAccountNumber: () => validateEcuadorianAccountNumber,
|
|
53
60
|
validateEcuadorianCedula: () => validateEcuadorianCedula,
|
|
61
|
+
validateIndonesianBankAccount: () => validateIndonesianBankAccount,
|
|
62
|
+
validateIndonesianPaymentId: () => validateIndonesianPaymentId,
|
|
54
63
|
validateIndonesianPhoneNumber: () => validateIndonesianPhoneNumber,
|
|
64
|
+
validateIndonesianStoredPaymentId: () => validateIndonesianStoredPaymentId,
|
|
55
65
|
validateKenyanPhone: () => validateKenyanPhone,
|
|
56
66
|
validateKenyanTill: () => validateKenyanTill,
|
|
57
67
|
validateMexicanPaymentId: () => validateMexicanPaymentId,
|
|
@@ -645,12 +655,82 @@ var EUR_COUNTRY_OPTION = {
|
|
|
645
655
|
// src/country/currencies/idr.ts
|
|
646
656
|
var IDR_PLACEHOLDER = "8123456789";
|
|
647
657
|
var IDR_VALIDATION_ERROR = "Please enter a valid Indonesian phone number (e.g., 8123456789)";
|
|
658
|
+
var IDR_BANK_ACCOUNT_PLACEHOLDER = "1234567890";
|
|
659
|
+
var IDR_BANK_ACCOUNT_VALIDATION_ERROR = "Please enter a valid Indonesian bank account number (8-18 digits)";
|
|
648
660
|
function validateIndonesianPhoneNumber(phoneNumber) {
|
|
649
661
|
if (!phoneNumber || phoneNumber.trim().length === 0) return false;
|
|
650
662
|
if (/[a-zA-Z]/.test(phoneNumber)) return false;
|
|
651
663
|
const cleaned = phoneNumber.replace(/\D/g, "");
|
|
652
664
|
return /^\d{9,12}$/.test(cleaned);
|
|
653
665
|
}
|
|
666
|
+
function validateIndonesianBankAccount(accountNumber) {
|
|
667
|
+
if (!accountNumber || accountNumber.trim().length === 0) return false;
|
|
668
|
+
if (/[a-zA-Z]/.test(accountNumber)) return false;
|
|
669
|
+
const cleaned = accountNumber.replace(/[\s-]/g, "");
|
|
670
|
+
return /^\d{8,18}$/.test(cleaned);
|
|
671
|
+
}
|
|
672
|
+
var IDR_PAYMENT_PROVIDERS = [
|
|
673
|
+
{ name: "GoPay", type: "e-wallet" },
|
|
674
|
+
{ name: "DANA", type: "e-wallet" },
|
|
675
|
+
{ name: "ShopeePay", type: "e-wallet" },
|
|
676
|
+
{ name: "OVO", type: "e-wallet" },
|
|
677
|
+
{ name: "LinkAja", type: "e-wallet" },
|
|
678
|
+
{ name: "iSaku", type: "e-wallet" },
|
|
679
|
+
{ name: "Sakuku", type: "e-wallet" },
|
|
680
|
+
{ name: "AstraPay", type: "e-wallet" },
|
|
681
|
+
{ name: "Bank Jago", type: "bank" },
|
|
682
|
+
{ name: "BCA", type: "bank" },
|
|
683
|
+
{ name: "Mandiri", type: "bank" },
|
|
684
|
+
{ name: "BRI", type: "bank" },
|
|
685
|
+
{ name: "BNI", type: "bank" },
|
|
686
|
+
{ name: "CIMB Niaga", type: "bank" },
|
|
687
|
+
{ name: "Permata Bank", type: "bank" },
|
|
688
|
+
{ name: "SeaBank", type: "bank" }
|
|
689
|
+
];
|
|
690
|
+
function getIndonesianPaymentProviderType(name) {
|
|
691
|
+
const normalized = name.trim().toLowerCase();
|
|
692
|
+
if (!normalized) return null;
|
|
693
|
+
const match = IDR_PAYMENT_PROVIDERS.find((option) => option.name.toLowerCase() === normalized);
|
|
694
|
+
return match?.type ?? null;
|
|
695
|
+
}
|
|
696
|
+
function parseIndonesianPaymentId(paymentId) {
|
|
697
|
+
const sepIndex = paymentId.indexOf("|");
|
|
698
|
+
if (sepIndex < 0) return null;
|
|
699
|
+
const provider = paymentId.slice(0, sepIndex).trim();
|
|
700
|
+
const value = paymentId.slice(sepIndex + 1).trim();
|
|
701
|
+
const type = getIndonesianPaymentProviderType(provider);
|
|
702
|
+
if (!type || !value) return null;
|
|
703
|
+
return { provider, type, value };
|
|
704
|
+
}
|
|
705
|
+
function resolveIndonesianStoredPaymentIdDisplay(currency, paymentId) {
|
|
706
|
+
if (currency !== CURRENCY.IDR) return null;
|
|
707
|
+
const parsed = parseIndonesianPaymentId(paymentId);
|
|
708
|
+
if (!parsed) return null;
|
|
709
|
+
const isBank = parsed.type === "bank";
|
|
710
|
+
const paymentAddressName = isBank ? "ACCOUNT_NUMBER" : "PHONE_NUMBER";
|
|
711
|
+
return {
|
|
712
|
+
paymentAddressName,
|
|
713
|
+
parts: [
|
|
714
|
+
{ key: "provider", label: "Payment Method", labelKey: "PAYMENT_METHOD", value: parsed.provider },
|
|
715
|
+
{
|
|
716
|
+
key: "account",
|
|
717
|
+
label: isBank ? "Account Number" : "Phone Number",
|
|
718
|
+
labelKey: paymentAddressName,
|
|
719
|
+
value: parsed.value
|
|
720
|
+
}
|
|
721
|
+
],
|
|
722
|
+
display: `${parsed.provider} \xB7 ${parsed.value}`,
|
|
723
|
+
copyValue: parsed.value
|
|
724
|
+
};
|
|
725
|
+
}
|
|
726
|
+
function validateIndonesianPaymentId(providerName, value) {
|
|
727
|
+
return getIndonesianPaymentProviderType(providerName) === "bank" ? validateIndonesianBankAccount(value) : validateIndonesianPhoneNumber(value);
|
|
728
|
+
}
|
|
729
|
+
function validateIndonesianStoredPaymentId(paymentId) {
|
|
730
|
+
const parsed = parseIndonesianPaymentId(paymentId);
|
|
731
|
+
if (!parsed) return false;
|
|
732
|
+
return validateIndonesianPaymentId(parsed.provider, parsed.value);
|
|
733
|
+
}
|
|
654
734
|
var IDR_PAYMENT_FIELDS = [
|
|
655
735
|
{
|
|
656
736
|
key: "phone",
|
|
@@ -1454,6 +1534,10 @@ function formatStoredPaymentIdForDisplay(currency, paymentId) {
|
|
|
1454
1534
|
COUNTRY_OPTIONS,
|
|
1455
1535
|
CURRENCY,
|
|
1456
1536
|
CURRENCY_CODES,
|
|
1537
|
+
IDR_BANK_ACCOUNT_PLACEHOLDER,
|
|
1538
|
+
IDR_BANK_ACCOUNT_VALIDATION_ERROR,
|
|
1539
|
+
IDR_PAYMENT_PROVIDERS,
|
|
1540
|
+
IDR_PLACEHOLDER,
|
|
1457
1541
|
PACKED_PAYMENT_ID_SEP,
|
|
1458
1542
|
PAYMENT_ID_FIELDS,
|
|
1459
1543
|
assignPaymentIdToFieldValues,
|
|
@@ -1462,11 +1546,14 @@ function formatStoredPaymentIdForDisplay(currency, paymentId) {
|
|
|
1462
1546
|
formatCompoundPaymentIdForDisplay,
|
|
1463
1547
|
formatStoredPaymentIdForDisplay,
|
|
1464
1548
|
getCountryOption,
|
|
1549
|
+
getIndonesianPaymentProviderType,
|
|
1465
1550
|
getPayQrPayload,
|
|
1466
1551
|
getStoredQrPayload,
|
|
1467
1552
|
getTransferWarning,
|
|
1468
1553
|
isNepalFonepayQr,
|
|
1469
1554
|
packStoredPaymentId,
|
|
1555
|
+
parseIndonesianPaymentId,
|
|
1556
|
+
resolveIndonesianStoredPaymentIdDisplay,
|
|
1470
1557
|
serializeCompoundPaymentId,
|
|
1471
1558
|
unpackPackedPaymentId,
|
|
1472
1559
|
uploadsPaymentQR,
|
|
@@ -1482,7 +1569,10 @@ function formatStoredPaymentIdForDisplay(currency, paymentId) {
|
|
|
1482
1569
|
validateEcuadorianAccountName,
|
|
1483
1570
|
validateEcuadorianAccountNumber,
|
|
1484
1571
|
validateEcuadorianCedula,
|
|
1572
|
+
validateIndonesianBankAccount,
|
|
1573
|
+
validateIndonesianPaymentId,
|
|
1485
1574
|
validateIndonesianPhoneNumber,
|
|
1575
|
+
validateIndonesianStoredPaymentId,
|
|
1486
1576
|
validateKenyanPhone,
|
|
1487
1577
|
validateKenyanTill,
|
|
1488
1578
|
validateMexicanPaymentId,
|