UNPKG

@sahabaplus/moyasar

Version:

A comprehensive TypeScript SDK for integrating with the Moyasar payment gateway

107 lines 3.97 kB
import type { ListPaymentsResponse, Payment } from "./types"; import type { CreatePaymentRequest, UpdatePaymentRequest, RefundPaymentRequest, CapturePaymentRequest } from "./types"; import { PaymentStatus, CardScheme } from "./enums"; import { type Amount, type CurrencyType } from "../../shared/types/index"; import type { ValidationResult } from "../../shared/types/index"; export declare class PaymentUtils { /** * Validate payment creation request using Zod */ static validateCreatePaymentRequest(request: CreatePaymentRequest): ValidationResult<CreatePaymentRequest>; /** * Validate payment update request using Zod */ static validateUpdatePaymentRequest(request: UpdatePaymentRequest): ValidationResult<UpdatePaymentRequest>; /** * Validate refund request using Zod */ static validateRefundRequest(request: RefundPaymentRequest): ValidationResult<RefundPaymentRequest>; /** * Validate capture request using Zod */ static validateCaptureRequest(request?: CapturePaymentRequest): ValidationResult<CapturePaymentRequest>; /** * Format amount for display */ static formatAmount(amount: Amount, currency: CurrencyType): `${number} ${CurrencyType}`; /** * Parse amount from display format to smallest unit */ static parseAmount(formattedAmount: string, currency: CurrencyType): number; /** * Check if payment is in a final state */ static isPaymentFinal(status: PaymentStatus): boolean; /** * Check if payment can be refunded */ static canRefundPayment(payment: Payment): boolean; /** * Check if payment can be captured */ static canCapturePayment(payment: Payment): boolean; /** * Check if payment can be voided */ static canVoidPayment(payment: Payment): boolean; /** * Get maximum refund amount for a payment */ static getMaxRefundAmount(payment: Payment): number; /** * Get maximum capture amount for an authorized payment */ static getMaxCaptureAmount(payment: Payment): number; /** * Check if card scheme matches expected CVV length */ static validateCvcLength(cvc: string, scheme?: CardScheme): boolean; /** * Mask card number for display (show first 6 and last 4 digits) */ static maskCardNumber(cardNumber: string): string; /** * Get last 4 digits of card number */ static getCardLast4(cardNumber: string): string; /** * Build metadata query parameters for filtering */ static buildMetadataQuery(metadata: Record<string, string>): Record<string, string>; /** * Sanitize payment description */ static sanitizeDescription(description: string): string; /** * Generate idempotency key for payment */ static generateIdempotencyKey(prefix?: string): string; /** * Check if payment method requires 3DS by default */ static requires3DS(source: CreatePaymentRequest["source"]): boolean; /** * Parse and validate a Payment response, ensuring all data types are correct */ static parsePayment(payment: unknown): Payment; static parseListPaymentsResponse(response: unknown): ListPaymentsResponse; /** * Parse and validate an array of Payment responses */ static parsePayments(payments: unknown): Payment[]; /** * Safely parse a Payment response with error handling */ static safeParsePayment(payment: unknown): { success: boolean; data?: Payment; error?: string; }; static parseCreatePaymentRequest(request: unknown): ValidationResult<CreatePaymentRequest>; /** * Parse and validate an UpdatePaymentRequest, returning sanitized data */ static parseUpdatePaymentRequest(request: unknown): ValidationResult<UpdatePaymentRequest>; } export * as PaymentSchemas from "./validation/schemas"; //# sourceMappingURL=utils.d.ts.map