@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.d.cts
CHANGED
|
@@ -151,6 +151,128 @@ declare function validateVenezuelanQr(payload: string): boolean;
|
|
|
151
151
|
*/
|
|
152
152
|
declare function isNepalFonepayQr(payload: string): boolean;
|
|
153
153
|
|
|
154
|
+
declare const IDR_PLACEHOLDER = "8123456789";
|
|
155
|
+
declare const IDR_BANK_ACCOUNT_PLACEHOLDER = "1234567890";
|
|
156
|
+
declare const IDR_BANK_ACCOUNT_VALIDATION_ERROR = "Please enter a valid Indonesian bank account number (8-18 digits)";
|
|
157
|
+
/**
|
|
158
|
+
* Validates Indonesian phone number.
|
|
159
|
+
* Validates just the number part (9-12 digits).
|
|
160
|
+
*/
|
|
161
|
+
declare function validateIndonesianPhoneNumber(phoneNumber: string): boolean;
|
|
162
|
+
/**
|
|
163
|
+
* Validates Indonesian bank account number.
|
|
164
|
+
* Digits only (spaces/dashes tolerated), 8-18 digits to cover BCA (10), Mandiri (13),
|
|
165
|
+
* BRI (15), BNI (10), CIMB Niaga (13-14), Permata (16), SeaBank (10-12), Bank Jago (10).
|
|
166
|
+
*/
|
|
167
|
+
declare function validateIndonesianBankAccount(accountNumber: string): boolean;
|
|
168
|
+
type IndonesianPaymentProviderType = "bank" | "e-wallet";
|
|
169
|
+
interface IndonesianPaymentProviderOption {
|
|
170
|
+
/** Display name for the consumer-rendered provider list. */
|
|
171
|
+
readonly name: string;
|
|
172
|
+
readonly type: IndonesianPaymentProviderType;
|
|
173
|
+
}
|
|
174
|
+
/** E-wallets and banks a seller can be paid through in Indonesia. */
|
|
175
|
+
declare const IDR_PAYMENT_PROVIDERS: readonly [{
|
|
176
|
+
readonly name: "GoPay";
|
|
177
|
+
readonly type: "e-wallet";
|
|
178
|
+
}, {
|
|
179
|
+
readonly name: "DANA";
|
|
180
|
+
readonly type: "e-wallet";
|
|
181
|
+
}, {
|
|
182
|
+
readonly name: "ShopeePay";
|
|
183
|
+
readonly type: "e-wallet";
|
|
184
|
+
}, {
|
|
185
|
+
readonly name: "OVO";
|
|
186
|
+
readonly type: "e-wallet";
|
|
187
|
+
}, {
|
|
188
|
+
readonly name: "LinkAja";
|
|
189
|
+
readonly type: "e-wallet";
|
|
190
|
+
}, {
|
|
191
|
+
readonly name: "iSaku";
|
|
192
|
+
readonly type: "e-wallet";
|
|
193
|
+
}, {
|
|
194
|
+
readonly name: "Sakuku";
|
|
195
|
+
readonly type: "e-wallet";
|
|
196
|
+
}, {
|
|
197
|
+
readonly name: "AstraPay";
|
|
198
|
+
readonly type: "e-wallet";
|
|
199
|
+
}, {
|
|
200
|
+
readonly name: "Bank Jago";
|
|
201
|
+
readonly type: "bank";
|
|
202
|
+
}, {
|
|
203
|
+
readonly name: "BCA";
|
|
204
|
+
readonly type: "bank";
|
|
205
|
+
}, {
|
|
206
|
+
readonly name: "Mandiri";
|
|
207
|
+
readonly type: "bank";
|
|
208
|
+
}, {
|
|
209
|
+
readonly name: "BRI";
|
|
210
|
+
readonly type: "bank";
|
|
211
|
+
}, {
|
|
212
|
+
readonly name: "BNI";
|
|
213
|
+
readonly type: "bank";
|
|
214
|
+
}, {
|
|
215
|
+
readonly name: "CIMB Niaga";
|
|
216
|
+
readonly type: "bank";
|
|
217
|
+
}, {
|
|
218
|
+
readonly name: "Permata Bank";
|
|
219
|
+
readonly type: "bank";
|
|
220
|
+
}, {
|
|
221
|
+
readonly name: "SeaBank";
|
|
222
|
+
readonly type: "bank";
|
|
223
|
+
}];
|
|
224
|
+
/**
|
|
225
|
+
* Resolves whether a provider name is a bank or an e-wallet (case-insensitive).
|
|
226
|
+
* Returns `null` when the name is not in `IDR_PAYMENT_PROVIDERS`.
|
|
227
|
+
*/
|
|
228
|
+
declare function getIndonesianPaymentProviderType(name: string): IndonesianPaymentProviderType | null;
|
|
229
|
+
interface IndonesianPaymentIdParts {
|
|
230
|
+
readonly provider: string;
|
|
231
|
+
readonly type: IndonesianPaymentProviderType;
|
|
232
|
+
/** Bank account number or e-wallet phone number. */
|
|
233
|
+
readonly value: string;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Parses a stored Indonesian payment ID packed as `Provider|number`.
|
|
237
|
+
* Returns `null` when the value is not packed or the provider is unknown.
|
|
238
|
+
*/
|
|
239
|
+
declare function parseIndonesianPaymentId(paymentId: string): IndonesianPaymentIdParts | null;
|
|
240
|
+
interface IndonesianPaymentIdDisplayPart {
|
|
241
|
+
readonly key: string;
|
|
242
|
+
/** Raw English label (mirrors `PaymentIdFieldConfig.displayLabel`). */
|
|
243
|
+
readonly label: string;
|
|
244
|
+
/** i18n key (mirrors `PaymentIdFieldConfig.label`). */
|
|
245
|
+
readonly labelKey: string;
|
|
246
|
+
readonly value: string;
|
|
247
|
+
}
|
|
248
|
+
interface IndonesianStoredPaymentIdDisplay {
|
|
249
|
+
/** i18n key for the number label (bank → ACCOUNT_NUMBER, e-wallet → PHONE_NUMBER). */
|
|
250
|
+
readonly paymentAddressName: string;
|
|
251
|
+
/** Row parts: payment method, then the number. */
|
|
252
|
+
readonly parts: readonly IndonesianPaymentIdDisplayPart[];
|
|
253
|
+
/** Single-line preview, e.g. `OVO · 8123456789`. */
|
|
254
|
+
readonly display: string;
|
|
255
|
+
/** Bare number for copy actions. */
|
|
256
|
+
readonly copyValue: string;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Display details for a stored IDR payment ID packed as `Provider|number`.
|
|
260
|
+
* Returns `null` for other currencies and unpacked values, so callers fall back
|
|
261
|
+
* to the generic catalog formatting.
|
|
262
|
+
*/
|
|
263
|
+
declare function resolveIndonesianStoredPaymentIdDisplay(currency: string, paymentId: string): IndonesianStoredPaymentIdDisplay | null;
|
|
264
|
+
/**
|
|
265
|
+
* Validates a payment ID for the given Indonesian provider:
|
|
266
|
+
* bank providers require a bank account number, e-wallets require a phone number.
|
|
267
|
+
* Unknown providers fall back to phone number validation.
|
|
268
|
+
*/
|
|
269
|
+
declare function validateIndonesianPaymentId(providerName: string, value: string): boolean;
|
|
270
|
+
/**
|
|
271
|
+
* Validates a stored Indonesian payment ID packed as `Provider|number`
|
|
272
|
+
* against the provider type. Anything else is invalid.
|
|
273
|
+
*/
|
|
274
|
+
declare function validateIndonesianStoredPaymentId(paymentId: string): boolean;
|
|
275
|
+
|
|
154
276
|
/** Validates a 20-digit Peruvian CCI (spaces ignored). */
|
|
155
277
|
declare function validatePeruvianCci(value: string): boolean;
|
|
156
278
|
/**
|
|
@@ -246,12 +368,6 @@ declare function validateEcuadorianAccountName(value: string): boolean;
|
|
|
246
368
|
*/
|
|
247
369
|
declare function validateRevolutId(revolutId: string): boolean;
|
|
248
370
|
|
|
249
|
-
/**
|
|
250
|
-
* Validates Indonesian phone number.
|
|
251
|
-
* Validates just the number part (9-12 digits).
|
|
252
|
-
*/
|
|
253
|
-
declare function validateIndonesianPhoneNumber(phoneNumber: string): boolean;
|
|
254
|
-
|
|
255
371
|
/**
|
|
256
372
|
* Validates UPI ID format.
|
|
257
373
|
* UPI ID format: username@bankname (e.g., john@paytm, user@ybl, 8658404239@kotak811)
|
|
@@ -350,4 +466,4 @@ declare function assignStoredPaymentIdToFieldValues(currency: CurrencyCode, paym
|
|
|
350
466
|
*/
|
|
351
467
|
declare function formatStoredPaymentIdForDisplay(currency: CurrencyCode, paymentId: string): string;
|
|
352
468
|
|
|
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 };
|
|
469
|
+
export { COUNTRY_OPTIONS, CURRENCY, CURRENCY_CODES, type CountryOption, type CurrencyCode, IDR_BANK_ACCOUNT_PLACEHOLDER, IDR_BANK_ACCOUNT_VALIDATION_ERROR, IDR_PAYMENT_PROVIDERS, IDR_PLACEHOLDER, type IndonesianPaymentIdDisplayPart, type IndonesianPaymentIdParts, type IndonesianPaymentProviderOption, type IndonesianPaymentProviderType, type IndonesianStoredPaymentIdDisplay, PACKED_PAYMENT_ID_SEP, PAYMENT_ID_FIELDS, type PaymentIdFieldConfig, type PeruvianPaymentIdParts, type VenezuelanPaymentIdParts, assignPaymentIdToFieldValues, assignStoredPaymentIdToFieldValues, deserializeCompoundPaymentId, formatCompoundPaymentIdForDisplay, formatStoredPaymentIdForDisplay, getCountryOption, getIndonesianPaymentProviderType, getPayQrPayload, getStoredQrPayload, getTransferWarning, isNepalFonepayQr, packStoredPaymentId, parseIndonesianPaymentId, resolveIndonesianStoredPaymentIdDisplay, serializeCompoundPaymentId, unpackPackedPaymentId, uploadsPaymentQR, usesCatalogPaymentForm, usesPackedPaymentId, validateArgentinePaymentId, validateBolivianAccount, validateBolivianQr, validateCatalogPaymentDraft, validateColombianPaymentId, validateCubanCardNumber, validateCubanPhoneNumber, validateEcuadorianAccountName, validateEcuadorianAccountNumber, validateEcuadorianCedula, validateIndonesianBankAccount, validateIndonesianPaymentId, validateIndonesianPhoneNumber, validateIndonesianStoredPaymentId, validateKenyanPhone, validateKenyanTill, validateMexicanPaymentId, validateNigerianAccountName, validateNigerianAccountNumber, validatePIXId, validatePaymentIdFields, validatePeruvianCci, validatePeruvianPaymentId, validatePeruvianPaymentKey, validatePeruvianPhone, validatePeruvianQr, validatePhilippinePhoneNumber, validateRevolutId, validateStoredPaymentId, validateUPIId, validateVenezuelanPaymentId, validateVenezuelanPhoneNumber, validateVenezuelanQr, validateVenezuelanRif };
|
package/dist/country.d.ts
CHANGED
|
@@ -151,6 +151,128 @@ declare function validateVenezuelanQr(payload: string): boolean;
|
|
|
151
151
|
*/
|
|
152
152
|
declare function isNepalFonepayQr(payload: string): boolean;
|
|
153
153
|
|
|
154
|
+
declare const IDR_PLACEHOLDER = "8123456789";
|
|
155
|
+
declare const IDR_BANK_ACCOUNT_PLACEHOLDER = "1234567890";
|
|
156
|
+
declare const IDR_BANK_ACCOUNT_VALIDATION_ERROR = "Please enter a valid Indonesian bank account number (8-18 digits)";
|
|
157
|
+
/**
|
|
158
|
+
* Validates Indonesian phone number.
|
|
159
|
+
* Validates just the number part (9-12 digits).
|
|
160
|
+
*/
|
|
161
|
+
declare function validateIndonesianPhoneNumber(phoneNumber: string): boolean;
|
|
162
|
+
/**
|
|
163
|
+
* Validates Indonesian bank account number.
|
|
164
|
+
* Digits only (spaces/dashes tolerated), 8-18 digits to cover BCA (10), Mandiri (13),
|
|
165
|
+
* BRI (15), BNI (10), CIMB Niaga (13-14), Permata (16), SeaBank (10-12), Bank Jago (10).
|
|
166
|
+
*/
|
|
167
|
+
declare function validateIndonesianBankAccount(accountNumber: string): boolean;
|
|
168
|
+
type IndonesianPaymentProviderType = "bank" | "e-wallet";
|
|
169
|
+
interface IndonesianPaymentProviderOption {
|
|
170
|
+
/** Display name for the consumer-rendered provider list. */
|
|
171
|
+
readonly name: string;
|
|
172
|
+
readonly type: IndonesianPaymentProviderType;
|
|
173
|
+
}
|
|
174
|
+
/** E-wallets and banks a seller can be paid through in Indonesia. */
|
|
175
|
+
declare const IDR_PAYMENT_PROVIDERS: readonly [{
|
|
176
|
+
readonly name: "GoPay";
|
|
177
|
+
readonly type: "e-wallet";
|
|
178
|
+
}, {
|
|
179
|
+
readonly name: "DANA";
|
|
180
|
+
readonly type: "e-wallet";
|
|
181
|
+
}, {
|
|
182
|
+
readonly name: "ShopeePay";
|
|
183
|
+
readonly type: "e-wallet";
|
|
184
|
+
}, {
|
|
185
|
+
readonly name: "OVO";
|
|
186
|
+
readonly type: "e-wallet";
|
|
187
|
+
}, {
|
|
188
|
+
readonly name: "LinkAja";
|
|
189
|
+
readonly type: "e-wallet";
|
|
190
|
+
}, {
|
|
191
|
+
readonly name: "iSaku";
|
|
192
|
+
readonly type: "e-wallet";
|
|
193
|
+
}, {
|
|
194
|
+
readonly name: "Sakuku";
|
|
195
|
+
readonly type: "e-wallet";
|
|
196
|
+
}, {
|
|
197
|
+
readonly name: "AstraPay";
|
|
198
|
+
readonly type: "e-wallet";
|
|
199
|
+
}, {
|
|
200
|
+
readonly name: "Bank Jago";
|
|
201
|
+
readonly type: "bank";
|
|
202
|
+
}, {
|
|
203
|
+
readonly name: "BCA";
|
|
204
|
+
readonly type: "bank";
|
|
205
|
+
}, {
|
|
206
|
+
readonly name: "Mandiri";
|
|
207
|
+
readonly type: "bank";
|
|
208
|
+
}, {
|
|
209
|
+
readonly name: "BRI";
|
|
210
|
+
readonly type: "bank";
|
|
211
|
+
}, {
|
|
212
|
+
readonly name: "BNI";
|
|
213
|
+
readonly type: "bank";
|
|
214
|
+
}, {
|
|
215
|
+
readonly name: "CIMB Niaga";
|
|
216
|
+
readonly type: "bank";
|
|
217
|
+
}, {
|
|
218
|
+
readonly name: "Permata Bank";
|
|
219
|
+
readonly type: "bank";
|
|
220
|
+
}, {
|
|
221
|
+
readonly name: "SeaBank";
|
|
222
|
+
readonly type: "bank";
|
|
223
|
+
}];
|
|
224
|
+
/**
|
|
225
|
+
* Resolves whether a provider name is a bank or an e-wallet (case-insensitive).
|
|
226
|
+
* Returns `null` when the name is not in `IDR_PAYMENT_PROVIDERS`.
|
|
227
|
+
*/
|
|
228
|
+
declare function getIndonesianPaymentProviderType(name: string): IndonesianPaymentProviderType | null;
|
|
229
|
+
interface IndonesianPaymentIdParts {
|
|
230
|
+
readonly provider: string;
|
|
231
|
+
readonly type: IndonesianPaymentProviderType;
|
|
232
|
+
/** Bank account number or e-wallet phone number. */
|
|
233
|
+
readonly value: string;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Parses a stored Indonesian payment ID packed as `Provider|number`.
|
|
237
|
+
* Returns `null` when the value is not packed or the provider is unknown.
|
|
238
|
+
*/
|
|
239
|
+
declare function parseIndonesianPaymentId(paymentId: string): IndonesianPaymentIdParts | null;
|
|
240
|
+
interface IndonesianPaymentIdDisplayPart {
|
|
241
|
+
readonly key: string;
|
|
242
|
+
/** Raw English label (mirrors `PaymentIdFieldConfig.displayLabel`). */
|
|
243
|
+
readonly label: string;
|
|
244
|
+
/** i18n key (mirrors `PaymentIdFieldConfig.label`). */
|
|
245
|
+
readonly labelKey: string;
|
|
246
|
+
readonly value: string;
|
|
247
|
+
}
|
|
248
|
+
interface IndonesianStoredPaymentIdDisplay {
|
|
249
|
+
/** i18n key for the number label (bank → ACCOUNT_NUMBER, e-wallet → PHONE_NUMBER). */
|
|
250
|
+
readonly paymentAddressName: string;
|
|
251
|
+
/** Row parts: payment method, then the number. */
|
|
252
|
+
readonly parts: readonly IndonesianPaymentIdDisplayPart[];
|
|
253
|
+
/** Single-line preview, e.g. `OVO · 8123456789`. */
|
|
254
|
+
readonly display: string;
|
|
255
|
+
/** Bare number for copy actions. */
|
|
256
|
+
readonly copyValue: string;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Display details for a stored IDR payment ID packed as `Provider|number`.
|
|
260
|
+
* Returns `null` for other currencies and unpacked values, so callers fall back
|
|
261
|
+
* to the generic catalog formatting.
|
|
262
|
+
*/
|
|
263
|
+
declare function resolveIndonesianStoredPaymentIdDisplay(currency: string, paymentId: string): IndonesianStoredPaymentIdDisplay | null;
|
|
264
|
+
/**
|
|
265
|
+
* Validates a payment ID for the given Indonesian provider:
|
|
266
|
+
* bank providers require a bank account number, e-wallets require a phone number.
|
|
267
|
+
* Unknown providers fall back to phone number validation.
|
|
268
|
+
*/
|
|
269
|
+
declare function validateIndonesianPaymentId(providerName: string, value: string): boolean;
|
|
270
|
+
/**
|
|
271
|
+
* Validates a stored Indonesian payment ID packed as `Provider|number`
|
|
272
|
+
* against the provider type. Anything else is invalid.
|
|
273
|
+
*/
|
|
274
|
+
declare function validateIndonesianStoredPaymentId(paymentId: string): boolean;
|
|
275
|
+
|
|
154
276
|
/** Validates a 20-digit Peruvian CCI (spaces ignored). */
|
|
155
277
|
declare function validatePeruvianCci(value: string): boolean;
|
|
156
278
|
/**
|
|
@@ -246,12 +368,6 @@ declare function validateEcuadorianAccountName(value: string): boolean;
|
|
|
246
368
|
*/
|
|
247
369
|
declare function validateRevolutId(revolutId: string): boolean;
|
|
248
370
|
|
|
249
|
-
/**
|
|
250
|
-
* Validates Indonesian phone number.
|
|
251
|
-
* Validates just the number part (9-12 digits).
|
|
252
|
-
*/
|
|
253
|
-
declare function validateIndonesianPhoneNumber(phoneNumber: string): boolean;
|
|
254
|
-
|
|
255
371
|
/**
|
|
256
372
|
* Validates UPI ID format.
|
|
257
373
|
* UPI ID format: username@bankname (e.g., john@paytm, user@ybl, 8658404239@kotak811)
|
|
@@ -350,4 +466,4 @@ declare function assignStoredPaymentIdToFieldValues(currency: CurrencyCode, paym
|
|
|
350
466
|
*/
|
|
351
467
|
declare function formatStoredPaymentIdForDisplay(currency: CurrencyCode, paymentId: string): string;
|
|
352
468
|
|
|
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 };
|
|
469
|
+
export { COUNTRY_OPTIONS, CURRENCY, CURRENCY_CODES, type CountryOption, type CurrencyCode, IDR_BANK_ACCOUNT_PLACEHOLDER, IDR_BANK_ACCOUNT_VALIDATION_ERROR, IDR_PAYMENT_PROVIDERS, IDR_PLACEHOLDER, type IndonesianPaymentIdDisplayPart, type IndonesianPaymentIdParts, type IndonesianPaymentProviderOption, type IndonesianPaymentProviderType, type IndonesianStoredPaymentIdDisplay, PACKED_PAYMENT_ID_SEP, PAYMENT_ID_FIELDS, type PaymentIdFieldConfig, type PeruvianPaymentIdParts, type VenezuelanPaymentIdParts, assignPaymentIdToFieldValues, assignStoredPaymentIdToFieldValues, deserializeCompoundPaymentId, formatCompoundPaymentIdForDisplay, formatStoredPaymentIdForDisplay, getCountryOption, getIndonesianPaymentProviderType, getPayQrPayload, getStoredQrPayload, getTransferWarning, isNepalFonepayQr, packStoredPaymentId, parseIndonesianPaymentId, resolveIndonesianStoredPaymentIdDisplay, serializeCompoundPaymentId, unpackPackedPaymentId, uploadsPaymentQR, usesCatalogPaymentForm, usesPackedPaymentId, validateArgentinePaymentId, validateBolivianAccount, validateBolivianQr, validateCatalogPaymentDraft, validateColombianPaymentId, validateCubanCardNumber, validateCubanPhoneNumber, validateEcuadorianAccountName, validateEcuadorianAccountNumber, validateEcuadorianCedula, validateIndonesianBankAccount, validateIndonesianPaymentId, validateIndonesianPhoneNumber, validateIndonesianStoredPaymentId, 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
|
@@ -568,12 +568,82 @@ var EUR_COUNTRY_OPTION = {
|
|
|
568
568
|
// src/country/currencies/idr.ts
|
|
569
569
|
var IDR_PLACEHOLDER = "8123456789";
|
|
570
570
|
var IDR_VALIDATION_ERROR = "Please enter a valid Indonesian phone number (e.g., 8123456789)";
|
|
571
|
+
var IDR_BANK_ACCOUNT_PLACEHOLDER = "1234567890";
|
|
572
|
+
var IDR_BANK_ACCOUNT_VALIDATION_ERROR = "Please enter a valid Indonesian bank account number (8-18 digits)";
|
|
571
573
|
function validateIndonesianPhoneNumber(phoneNumber) {
|
|
572
574
|
if (!phoneNumber || phoneNumber.trim().length === 0) return false;
|
|
573
575
|
if (/[a-zA-Z]/.test(phoneNumber)) return false;
|
|
574
576
|
const cleaned = phoneNumber.replace(/\D/g, "");
|
|
575
577
|
return /^\d{9,12}$/.test(cleaned);
|
|
576
578
|
}
|
|
579
|
+
function validateIndonesianBankAccount(accountNumber) {
|
|
580
|
+
if (!accountNumber || accountNumber.trim().length === 0) return false;
|
|
581
|
+
if (/[a-zA-Z]/.test(accountNumber)) return false;
|
|
582
|
+
const cleaned = accountNumber.replace(/[\s-]/g, "");
|
|
583
|
+
return /^\d{8,18}$/.test(cleaned);
|
|
584
|
+
}
|
|
585
|
+
var IDR_PAYMENT_PROVIDERS = [
|
|
586
|
+
{ name: "GoPay", type: "e-wallet" },
|
|
587
|
+
{ name: "DANA", type: "e-wallet" },
|
|
588
|
+
{ name: "ShopeePay", type: "e-wallet" },
|
|
589
|
+
{ name: "OVO", type: "e-wallet" },
|
|
590
|
+
{ name: "LinkAja", type: "e-wallet" },
|
|
591
|
+
{ name: "iSaku", type: "e-wallet" },
|
|
592
|
+
{ name: "Sakuku", type: "e-wallet" },
|
|
593
|
+
{ name: "AstraPay", type: "e-wallet" },
|
|
594
|
+
{ name: "Bank Jago", type: "bank" },
|
|
595
|
+
{ name: "BCA", type: "bank" },
|
|
596
|
+
{ name: "Mandiri", type: "bank" },
|
|
597
|
+
{ name: "BRI", type: "bank" },
|
|
598
|
+
{ name: "BNI", type: "bank" },
|
|
599
|
+
{ name: "CIMB Niaga", type: "bank" },
|
|
600
|
+
{ name: "Permata Bank", type: "bank" },
|
|
601
|
+
{ name: "SeaBank", type: "bank" }
|
|
602
|
+
];
|
|
603
|
+
function getIndonesianPaymentProviderType(name) {
|
|
604
|
+
const normalized = name.trim().toLowerCase();
|
|
605
|
+
if (!normalized) return null;
|
|
606
|
+
const match = IDR_PAYMENT_PROVIDERS.find((option) => option.name.toLowerCase() === normalized);
|
|
607
|
+
return match?.type ?? null;
|
|
608
|
+
}
|
|
609
|
+
function parseIndonesianPaymentId(paymentId) {
|
|
610
|
+
const sepIndex = paymentId.indexOf("|");
|
|
611
|
+
if (sepIndex < 0) return null;
|
|
612
|
+
const provider = paymentId.slice(0, sepIndex).trim();
|
|
613
|
+
const value = paymentId.slice(sepIndex + 1).trim();
|
|
614
|
+
const type = getIndonesianPaymentProviderType(provider);
|
|
615
|
+
if (!type || !value) return null;
|
|
616
|
+
return { provider, type, value };
|
|
617
|
+
}
|
|
618
|
+
function resolveIndonesianStoredPaymentIdDisplay(currency, paymentId) {
|
|
619
|
+
if (currency !== CURRENCY.IDR) return null;
|
|
620
|
+
const parsed = parseIndonesianPaymentId(paymentId);
|
|
621
|
+
if (!parsed) return null;
|
|
622
|
+
const isBank = parsed.type === "bank";
|
|
623
|
+
const paymentAddressName = isBank ? "ACCOUNT_NUMBER" : "PHONE_NUMBER";
|
|
624
|
+
return {
|
|
625
|
+
paymentAddressName,
|
|
626
|
+
parts: [
|
|
627
|
+
{ key: "provider", label: "Payment Method", labelKey: "PAYMENT_METHOD", value: parsed.provider },
|
|
628
|
+
{
|
|
629
|
+
key: "account",
|
|
630
|
+
label: isBank ? "Account Number" : "Phone Number",
|
|
631
|
+
labelKey: paymentAddressName,
|
|
632
|
+
value: parsed.value
|
|
633
|
+
}
|
|
634
|
+
],
|
|
635
|
+
display: `${parsed.provider} \xB7 ${parsed.value}`,
|
|
636
|
+
copyValue: parsed.value
|
|
637
|
+
};
|
|
638
|
+
}
|
|
639
|
+
function validateIndonesianPaymentId(providerName, value) {
|
|
640
|
+
return getIndonesianPaymentProviderType(providerName) === "bank" ? validateIndonesianBankAccount(value) : validateIndonesianPhoneNumber(value);
|
|
641
|
+
}
|
|
642
|
+
function validateIndonesianStoredPaymentId(paymentId) {
|
|
643
|
+
const parsed = parseIndonesianPaymentId(paymentId);
|
|
644
|
+
if (!parsed) return false;
|
|
645
|
+
return validateIndonesianPaymentId(parsed.provider, parsed.value);
|
|
646
|
+
}
|
|
577
647
|
var IDR_PAYMENT_FIELDS = [
|
|
578
648
|
{
|
|
579
649
|
key: "phone",
|
|
@@ -1376,6 +1446,10 @@ export {
|
|
|
1376
1446
|
COUNTRY_OPTIONS,
|
|
1377
1447
|
CURRENCY,
|
|
1378
1448
|
CURRENCY_CODES,
|
|
1449
|
+
IDR_BANK_ACCOUNT_PLACEHOLDER,
|
|
1450
|
+
IDR_BANK_ACCOUNT_VALIDATION_ERROR,
|
|
1451
|
+
IDR_PAYMENT_PROVIDERS,
|
|
1452
|
+
IDR_PLACEHOLDER,
|
|
1379
1453
|
PACKED_PAYMENT_ID_SEP,
|
|
1380
1454
|
PAYMENT_ID_FIELDS,
|
|
1381
1455
|
assignPaymentIdToFieldValues,
|
|
@@ -1384,11 +1458,14 @@ export {
|
|
|
1384
1458
|
formatCompoundPaymentIdForDisplay,
|
|
1385
1459
|
formatStoredPaymentIdForDisplay,
|
|
1386
1460
|
getCountryOption,
|
|
1461
|
+
getIndonesianPaymentProviderType,
|
|
1387
1462
|
getPayQrPayload,
|
|
1388
1463
|
getStoredQrPayload,
|
|
1389
1464
|
getTransferWarning,
|
|
1390
1465
|
isNepalFonepayQr,
|
|
1391
1466
|
packStoredPaymentId,
|
|
1467
|
+
parseIndonesianPaymentId,
|
|
1468
|
+
resolveIndonesianStoredPaymentIdDisplay,
|
|
1392
1469
|
serializeCompoundPaymentId,
|
|
1393
1470
|
unpackPackedPaymentId,
|
|
1394
1471
|
uploadsPaymentQR,
|
|
@@ -1404,7 +1481,10 @@ export {
|
|
|
1404
1481
|
validateEcuadorianAccountName,
|
|
1405
1482
|
validateEcuadorianAccountNumber,
|
|
1406
1483
|
validateEcuadorianCedula,
|
|
1484
|
+
validateIndonesianBankAccount,
|
|
1485
|
+
validateIndonesianPaymentId,
|
|
1407
1486
|
validateIndonesianPhoneNumber,
|
|
1487
|
+
validateIndonesianStoredPaymentId,
|
|
1408
1488
|
validateKenyanPhone,
|
|
1409
1489
|
validateKenyanTill,
|
|
1410
1490
|
validateMexicanPaymentId,
|