@plyaz/config 1.7.16 → 1.7.17
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/api/index.cjs +1 -1
- package/dist/api/index.cjs.map +1 -1
- package/dist/api/index.mjs +1 -1
- package/dist/api/index.mjs.map +1 -1
- package/dist/db/constants.d.ts +11 -1
- package/dist/db/constants.d.ts.map +1 -1
- package/dist/db/index.cjs +1 -1
- package/dist/db/index.cjs.map +1 -1
- package/dist/db/index.mjs +1 -1
- package/dist/db/index.mjs.map +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +4 -4
- package/dist/index.mjs.map +1 -1
- package/dist/payments/index.cjs +2 -2
- package/dist/payments/index.cjs.map +1 -1
- package/dist/payments/index.d.ts +1 -0
- package/dist/payments/index.d.ts.map +1 -1
- package/dist/payments/index.mjs +3 -3
- package/dist/payments/index.mjs.map +1 -1
- package/dist/payments/providers/stripe/config.d.ts.map +1 -1
- package/dist/payments/routing/index.d.ts +3 -0
- package/dist/payments/routing/index.d.ts.map +1 -0
- package/dist/payments/routing/methods/ab-testing/ab-testing.d.ts +3 -0
- package/dist/payments/routing/methods/ab-testing/ab-testing.d.ts.map +1 -0
- package/dist/payments/routing/methods/failover/failover-registry.d.ts +3 -0
- package/dist/payments/routing/methods/failover/failover-registry.d.ts.map +1 -0
- package/dist/payments/routing/methods/failover/index.d.ts +3 -0
- package/dist/payments/routing/methods/failover/index.d.ts.map +1 -0
- package/dist/payments/routing/methods/failover/strategies/geographic.config.d.ts +3 -0
- package/dist/payments/routing/methods/failover/strategies/geographic.config.d.ts.map +1 -0
- package/dist/payments/routing/methods/failover/strategies/index.d.ts +6 -0
- package/dist/payments/routing/methods/failover/strategies/index.d.ts.map +1 -0
- package/dist/payments/routing/methods/failover/strategies/load-balanced.config.d.ts +3 -0
- package/dist/payments/routing/methods/failover/strategies/load-balanced.config.d.ts.map +1 -0
- package/dist/payments/routing/methods/failover/strategies/next-available.config.d.ts +3 -0
- package/dist/payments/routing/methods/failover/strategies/next-available.config.d.ts.map +1 -0
- package/dist/payments/routing/methods/failover/strategies/performance-based.config.d.ts +3 -0
- package/dist/payments/routing/methods/failover/strategies/performance-based.config.d.ts.map +1 -0
- package/dist/payments/routing/methods/failover/strategies/priority-order.config.d.ts +3 -0
- package/dist/payments/routing/methods/failover/strategies/priority-order.config.d.ts.map +1 -0
- package/dist/payments/routing/methods/geographic/geographic.d.ts +9 -0
- package/dist/payments/routing/methods/geographic/geographic.d.ts.map +1 -0
- package/dist/payments/routing/methods/index.d.ts +7 -0
- package/dist/payments/routing/methods/index.d.ts.map +1 -0
- package/dist/payments/routing/methods/load-balancing/index.d.ts +3 -0
- package/dist/payments/routing/methods/load-balancing/index.d.ts.map +1 -0
- package/dist/payments/routing/methods/load-balancing/load-balancing-registry.d.ts +3 -0
- package/dist/payments/routing/methods/load-balancing/load-balancing-registry.d.ts.map +1 -0
- package/dist/payments/routing/methods/load-balancing/strategies/custom.config.d.ts +3 -0
- package/dist/payments/routing/methods/load-balancing/strategies/custom.config.d.ts.map +1 -0
- package/dist/payments/routing/methods/load-balancing/strategies/index.d.ts +6 -0
- package/dist/payments/routing/methods/load-balancing/strategies/index.d.ts.map +1 -0
- package/dist/payments/routing/methods/load-balancing/strategies/least-connections.config.d.ts +3 -0
- package/dist/payments/routing/methods/load-balancing/strategies/least-connections.config.d.ts.map +1 -0
- package/dist/payments/routing/methods/load-balancing/strategies/performance-based.config.d.ts +3 -0
- package/dist/payments/routing/methods/load-balancing/strategies/performance-based.config.d.ts.map +1 -0
- package/dist/payments/routing/methods/load-balancing/strategies/round-robin.config.d.ts +3 -0
- package/dist/payments/routing/methods/load-balancing/strategies/round-robin.config.d.ts.map +1 -0
- package/dist/payments/routing/methods/load-balancing/strategies/weighted.config.d.ts +3 -0
- package/dist/payments/routing/methods/load-balancing/strategies/weighted.config.d.ts.map +1 -0
- package/dist/payments/routing/methods/performance/index.d.ts +2 -0
- package/dist/payments/routing/methods/performance/index.d.ts.map +1 -0
- package/dist/payments/routing/methods/performance/performance.d.ts +11 -0
- package/dist/payments/routing/methods/performance/performance.d.ts.map +1 -0
- package/dist/payments/routing/provider-selection/amount-based-selection.d.ts +3 -0
- package/dist/payments/routing/provider-selection/amount-based-selection.d.ts.map +1 -0
- package/dist/payments/routing/provider-selection/currency-specific-providers.d.ts +3 -0
- package/dist/payments/routing/provider-selection/currency-specific-providers.d.ts.map +1 -0
- package/dist/payments/routing/provider-selection/custom-rules.d.ts +3 -0
- package/dist/payments/routing/provider-selection/custom-rules.d.ts.map +1 -0
- package/dist/payments/routing/provider-selection/default-providers.d.ts +7 -0
- package/dist/payments/routing/provider-selection/default-providers.d.ts.map +1 -0
- package/dist/payments/routing/provider-selection/index.d.ts +9 -0
- package/dist/payments/routing/provider-selection/index.d.ts.map +1 -0
- package/dist/payments/routing/provider-selection/method-specific-providers.d.ts +3 -0
- package/dist/payments/routing/provider-selection/method-specific-providers.d.ts.map +1 -0
- package/dist/payments/routing/provider-selection/region-specific-providers.d.ts +3 -0
- package/dist/payments/routing/provider-selection/region-specific-providers.d.ts.map +1 -0
- package/dist/payments/routing/provider-selection/time-based-selection.d.ts +3 -0
- package/dist/payments/routing/provider-selection/time-based-selection.d.ts.map +1 -0
- package/dist/payments/routing/provider-selection/user-type-providers.d.ts +3 -0
- package/dist/payments/routing/provider-selection/user-type-providers.d.ts.map +1 -0
- package/dist/time/constants.d.ts +26 -0
- package/dist/time/constants.d.ts.map +1 -1
- package/dist/time/index.cjs +1 -1
- package/dist/time/index.cjs.map +1 -1
- package/dist/time/index.mjs +1 -1
- package/dist/time/index.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/payments/error-messages.ts","../../src/payments/events.ts","../../src/payments/gateway.ts","../../src/payments/providers/stripe/constant.ts","../../src/locale/currencies.ts","../../src/time/constants.ts","../../src/payments/providers/stripe/config.ts","../../src/payments/validators.ts"],"names":["DEFAULT_HMAC_ALGORITHM","DEFAULT_ENVIRONMENT","THRESHOLDS","SENSITIVE_KEYS","RISK_SCORE","LOG_LEVELS","REDACTED","PAYMENT_ERROR_MESSAGES","PAYMENT_ALERT_SEVERITY","ERROR_SEVERITY","PROCESSING_ERROR_MESSAGES","WEBHOOK_CONSTANTS","RECOVERY_STEPS","REFUND_ERROR_MESSAGES","DEFAULT_REFUND_LEVELS","FACTORY_MESSAGES","PAYLOAD_KEYS","STRIPE_ERROR_TYPES","PROVIDER_ERROR_MESSAGES","SECURITY_ERROR_MESSAGES","DEFAULT_PAYEMNT_PRIORITY","DEFAULT_URGENT","DEFAULT_MAX_LISTENERS","DEFAULT_HANDLER_TIMEOUT_MS","DEFAULT_EVENT_COUNT","DEFAULT_SUCCESS_THRESHOLD","DEFAULT_PARTIAL_SUCCESS_THRESHOLD","EVENT_DEFAULTS","EVENT_COMPONENT","EVENT_ERROR_CODE","EVENT_ERROR_MESSAGE","EVENT_ENVIRONMENT","PHASE_NONE","PHASE_CAPTURING","PHASE_AT_TARGET","PHASE_BUBBLING","EVENT_PHASE","EVENT_META_KEY","EVENT_SOURCE_FIELD","EVENT_RESULT_STATUS","EmptyArray","__name","CurrentTimestamp","SETTLED_PROMISE_STATUS","EVENT_NORMALIZER_MESSAGES","field","DEFAULT_RETRY_DELAY_MS","MAX_CIRCUIT_OPEN_MS","DEFAULT_CIRCUIT_BREAKER_FAILURE_THRESHOLD","FALLBACK_REASON","FALLBACK_NEXT_STEPS","RISK_LEVEL","SECURITY_FLAGS","CUSTOM_RULE_OPERATER","PAYMENT_GATEWAY_ERROR_MESSAGE","STRIPE_API_VERSION","STRIPE_MAPPING_VERSION","ZERO_AMOUNT","DEFAULT_PROCESSING_RATE","DEFAULT_PLATFORM_RATE","DEFAULT_CROSS_BORDER_RATE","DEFAULT_PRIORITY","FIXED_FEES","NEXT_STEP_EXPECTED_UPDATE_IN","STRIPE_CONFIDENCE_HIGH","STRIPE_PRIORITY_HIGH","STRIPE_CONFIDENCE_MEDIUM","STRIPE_PRIORITY_MEDIUM","AMOUNT_DECIMALS","AMOUNT_DIVISOR","UNIX_TIMESTAMP_MULTIPLIER","TIMESTAMP_FALLBACK","NEXT_STEP_USER_ACTION","NEXT_STEP_SYSTEM_ACTION","STRIPE_EVENT_TYPE","DEFAULT_PROCESSING_TIME","DEFAULT_SETTLEMENT_TIME","STRIPE_PAYMENT_INTENT_STATUS","STRIPE_DATA_PATHS","PAYMENT_OPERATION","STRIPE_MESSAGES","CURRENCY_CODES","TIME_CONSTANTS","stripeConfig","PAYMENT_PROVIDER_TYPE","PAYMENT_METHOD","HTTP_STATUS","SUPPORTED_CURRENCIES","VALIDATION_MESSAGES","VALIDATOR_NAMES","CORE_FIELDS","VALID_BILLING_CYCLES","VALID_RISK_LEVELS","VALID_RECURRENCE_FREQUENCIES","MIN_POSITIVE_AMOUNT","CURRENCY_CODE_LENGTH"],"mappings":"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","file":"index.cjs","sourcesContent":["import { ERROR_SEVERITY } from '@plyaz/types';\n\nexport const DEFAULT_HMAC_ALGORITHM = 'sha256';\nexport const DEFAULT_ENVIRONMENT = 'unknown';\n\nexport const THRESHOLDS = {\n RETRYABLE_ERROR_RATIO: 0.5,\n USER_FACING_ERROR_RATIO: 0.3,\n};\n\nexport const SENSITIVE_KEYS = ['token', 'secret', 'signature'];\n\nexport const RISK_SCORE = {\n MIN_SCORE: 100,\n} as const;\n\n// Log levels\nexport const LOG_LEVELS = {\n CRITICAL: 'critical',\n ERROR: 'error',\n WARN: 'warn',\n} as const;\n\n// Webhook redacted placeholders\nexport const REDACTED = {\n RAW_BODY: '[REDACTED_RAW_BODY]',\n SENSITIVE: '[REDACTED]',\n};\n\nexport const PAYMENT_ERROR_MESSAGES = {\n GENERIC_SYSTEM_ERROR: 'An unexpected error occurred while processing payment.',\n USER_FRIENDLY_SYSTEM_ERROR: 'A payment system error occurred. Please try again later.',\n USER_FRIENDLY_ALT: 'Payment error. Please try again.',\n SYSTEM: 'An internal payment error occurred. Our team has been notified.',\n VALIDATION: 'Some payment information is invalid. Please review your details.',\n AUTHENTICATION: 'Your session has expired. Please log in again.',\n AUTHORIZATION: 'You are not authorized to perform this payment action.',\n PROVIDER: 'There was an issue communicating with the payment provider.',\n NETWORK: 'Network error. Please try again later.',\n FRAUD: 'Suspicious activity detected. Please contact support.',\n REFUND: 'Refund could not be processed. Please try again later.',\n WEBHOOK: 'Payment notification failed. We are investigating.',\n PROCESSING: 'Payment is currently being processed. Please wait a moment.',\n COMPLIANCE: 'This transaction violates compliance rules. Please contact support.',\n LIMITS: 'The payment exceeds your transaction limit.',\n CONFIGURATION: 'Payment configuration error. Please contact your administrator.',\n DEFAULT: 'An unexpected error occurred while processing your payment.',\n INVALID_VALUE: 'Invalid value provided',\n PROVIDER_GENERIC: 'Provider error occurred',\n REFUND_NOT_ALLOWED: 'Refund not allowed',\n REFUND_AUTHORIZATION: 'Refund authorization failed',\n REFUND_PROCESSING: 'Refund processing failed',\n STRIPE_GENERIC: 'An unexpected error occurred while communicating with Stripe',\n};\n\nexport const PAYMENT_ALERT_SEVERITY: Record<\n (typeof ERROR_SEVERITY)[keyof typeof ERROR_SEVERITY],\n boolean\n> = {\n [ERROR_SEVERITY.Low]: true,\n [ERROR_SEVERITY.Medium]: false,\n [ERROR_SEVERITY.High]: true,\n [ERROR_SEVERITY.Critical]: true,\n};\n\nexport const PROCESSING_ERROR_MESSAGES = {\n GENERIC: 'There was an error processing your payment. Please try again.',\n API_RESPONSE_GENERIC: 'A processing error occurred.',\n};\n\nexport const WEBHOOK_CONSTANTS = {\n DEFAULT_MESSAGE: 'An error occurred while processing the webhook.',\n DEFAULT_USER_MESSAGE: 'An error occurred while handling the webhook.',\n};\n\nexport const RECOVERY_STEPS = {\n RETRY: 'Retry transaction after delay.',\n NOTIFY_USER: 'Notify user and suggest contacting support.',\n LOG_ONLY: 'Log and continue monitoring.',\n};\n\nexport const REFUND_ERROR_MESSAGES = {\n NOT_ALLOWED: 'Refund not allowed',\n AUTHORIZATION: 'Refund authorization failed',\n PROCESSING: 'Refund processing failed',\n DEFAULT_API_MESSAGE: 'An error occurred during the refund process.',\n DEFAULT_USER_MESSAGE: 'Refund could not be processed. Please try again or contact support.',\n};\n\nexport const DEFAULT_REFUND_LEVELS = {\n REQUIRED: 'manager',\n CURRENT: 'user',\n};\n\nexport const FACTORY_MESSAGES = {\n PROVIDER_ERROR_PREFIX: 'Provider {provider} error',\n STRIPE_GENERIC: 'An unexpected error occurred while communicating with Stripe.',\n WEBHOOK_SANITIZE_FAIL: 'Failed to sanitize webhook payload',\n UNKNOWN_REFUND_TYPE: 'Unknown refund error type: {type}',\n REDACTION_FAIL: 'Failed to sanitize object.',\n};\n\nexport const PAYLOAD_KEYS = {\n PROVIDER: 'provider',\n EVENT: 'event',\n};\n\nexport const STRIPE_ERROR_TYPES = {\n API_CONNECTION: 'api_connection_error',\n RATE_LIMIT: 'rate_limit_error',\n INVALID_REQUEST: 'invalid_request_error',\n CARD_ERROR: 'card_error',\n AUTHENTICATION: 'authentication_error',\n CARD_DECLINED: 'card_declined',\n} as const;\n\nexport const PROVIDER_ERROR_MESSAGES = {\n DEFAULT_API_MESSAGE: 'An error occurred with the payment provider.',\n DEFAULT_USER_MESSAGE: 'A payment provider error occurred. Please try again later.',\n};\n\nexport const SECURITY_ERROR_MESSAGES = {\n DEFAULT_API_MESSAGE: 'A security error occurred while processing the payment.',\n DEFAULT_USER_MESSAGE: 'A security issue was detected with the payment. Please contact support.',\n\n FRAUD_DETECTED: {\n CODE: 'FRAUD_DETECTED',\n DEFAULT_COMPONENT: 'fraud-detector',\n USER_MESSAGE: 'This transaction appears to be suspicious and has been blocked for your safety.',\n RISK_THRESHOLDS: {\n HIGH: 70,\n CRITICAL: 90,\n },\n },\n};\n","/**\n * Event System Constants\n * Centralized constants for event emitter, handlers, and system-level configurations.\n */\n\n// Numeric Constants\nexport const DEFAULT_PAYEMNT_PRIORITY = 1;\nexport const DEFAULT_URGENT = 0;\nexport const DEFAULT_MAX_LISTENERS = 10;\nexport const DEFAULT_HANDLER_TIMEOUT_MS = 10000;\nexport const DEFAULT_EVENT_COUNT = 0;\n\n// Success Thresholds\nexport const DEFAULT_SUCCESS_THRESHOLD = 1.0; // 100% handlers succeeded\nexport const DEFAULT_PARTIAL_SUCCESS_THRESHOLD = 0.9; // 90% handlers succeeded\n\n// Default Values\nexport const EVENT_DEFAULTS = {\n PRIORITY: DEFAULT_PAYEMNT_PRIORITY,\n URGENT: DEFAULT_URGENT,\n MAX_LISTENERS: DEFAULT_MAX_LISTENERS,\n HANDLER_TIMEOUT_MS: DEFAULT_HANDLER_TIMEOUT_MS,\n SUCCESS_THRESHOLD: DEFAULT_SUCCESS_THRESHOLD,\n PARTIAL_SUCCESS_THRESHOLD: DEFAULT_PARTIAL_SUCCESS_THRESHOLD,\n EVENT_COUNT: DEFAULT_EVENT_COUNT,\n};\n\n// Component Names\nexport const EVENT_COMPONENT = {\n EMITTER: 'event-emitter',\n PAYMENT_GATEWAY: 'payment-gateway',\n SUBSCRIPTION_MANAGER: 'subscription-manager',\n PROVIDER_ADAPTER: 'provider-adapter',\n} as const;\n\n// Error Codes\nexport const EVENT_ERROR_CODE = {\n HANDLER_FAILED: 'HANDLER_FAILED',\n HANDLER_CRASHED: 'HANDLER_CRASHED',\n HANDLER_TIMEOUT: 'HANDLER_TIMEOUT',\n} as const;\n\n// Error Messages\nexport const EVENT_ERROR_MESSAGE = {\n HANDLER_FAILED: 'Handler execution failed',\n HANDLER_TIMEOUT: 'Handler execution timed out',\n};\n\n// Environment\nexport const EVENT_ENVIRONMENT = {\n DEVELOPMENT: 'development',\n PRODUCTION: 'production',\n TEST: 'test',\n} as const;\n\n//Event Phases\nexport const PHASE_NONE = 0;\nexport const PHASE_CAPTURING = 1;\nexport const PHASE_AT_TARGET = 2;\nexport const PHASE_BUBBLING = 3;\n\nexport const EVENT_PHASE = {\n NONE: PHASE_NONE,\n CAPTURING_PHASE: PHASE_CAPTURING,\n AT_TARGET: PHASE_AT_TARGET,\n BUBBLING_PHASE: PHASE_BUBBLING,\n} as const;\n\n// Event Meta Keys\nexport const EVENT_META_KEY = {\n PRIORITY: 'priority',\n URGENT: 'urgent',\n CATEGORY: 'category',\n TAGS: 'tags',\n SOURCE: 'source',\n} as const;\n\n// Event Source Fields\nexport const EVENT_SOURCE_FIELD = {\n COMPONENT: 'component',\n ENVIRONMENT: 'environment',\n} as const;\n\n// Event Result Status\nexport const EVENT_RESULT_STATUS = {\n ERROR: 'error',\n INFO: 'info',\n WARNING: 'warning',\n CRITICAL: 'critical',\n} as const;\n\n// Utils\nexport const EmptyArray = <T = unknown>(): T[] => [];\nexport const CurrentTimestamp = (): number => Date.now();\n\n/**\n * Enum representing the state of a Promise.\n */\nexport const SETTLED_PROMISE_STATUS = {\n FULFILLED: 'fulfilled',\n REJECTED: 'rejected',\n} as const;\n\nexport const EVENT_NORMALIZER_MESSAGES = {\n NORMALIZATION_FAILED: 'Event normalization failed.',\n MAPPING_MISSING: 'No mapping configuration found for provider.',\n MAPPING_RETRIEVE_FAILED: 'Failed to retrieve provider mapping.',\n BUILD_NORMALIZED_DATA_FAILED: 'Failed to build normalized payment data.',\n BUILD_UNIFIED_EVENT_FAILED: 'Failed to build unified event.',\n EVENT_TYPE_MAPPING_FAILED: 'Event type mapping failed.',\n STATUS_MAPPING_FAILED: 'Status mapping failed.',\n PAYLOAD_EXTRACTION_FAILED: 'Payload extraction failed.',\n requiredFileMissing: (field: string): string => `Required field \"${field}\" is missing.`,\n} as const;\n","export const DEFAULT_RETRY_DELAY_MS = 1000;\nexport const MAX_CIRCUIT_OPEN_MS = 60_000;\nexport const DEFAULT_CIRCUIT_BREAKER_FAILURE_THRESHOLD = 3;\n\nexport const FALLBACK_REASON = {\n NO_PROVIDER: 'NO_PROVIDER_SELECTED',\n PROVIDER_FAILURE: 'PROVIDER_FAILURE',\n CIRCUIT_OPEN: 'CIRCUIT_OPEN',\n UNKNOWN_ERROR: 'UNKNOWN_ERROR',\n};\n\nexport const FALLBACK_NEXT_STEPS = {\n USER_ACTION: 'contact_support',\n SYSTEM_ACTION: 'manual_review',\n} as const;\n\n/** Risk levels */\nexport const RISK_LEVEL = {\n LOW: 'low',\n MEDIUM: 'medium',\n HIGH: 'high',\n} as const;\n\n/** Security flags */\nexport const SECURITY_FLAGS = {\n FALLBACK_USED: 'fallback_used',\n} as const;\n\n/** Allowed operators for custom rules */\nexport enum CUSTOM_RULE_OPERATER {\n ASSIGNMENT = 'assignment',\n LOGICAL = 'logical',\n COMPARISON = 'comparison',\n ARITHMETIC = 'arithmetic',\n CONDITIONAL = 'conditional',\n CONCATENATE = 'concatenate',\n}\n\nexport const PAYMENT_GATEWAY_ERROR_MESSAGE = {\n // General\n INITIAL_PAYMENT_ATTEMPT: 'Initial payment attempt.',\n PAYMENT_OPERATION_FAILED: 'Payment operation failed.',\n NON_PAYMENT_OPERATION_FAILED: 'Non-payment operation failed.',\n ADAPTER_NOT_FOUND: 'Adapter not found for provider:',\n NO_VALID_ADAPTER: 'No valid provider adapter found.',\n UNSUPPORTED_FEATURE: 'Requested feature is not supported by the provider.',\n UNKNOWN_PROVIDER: 'Unknown payment provider specified.',\n UNKNOWN_ERROR: 'An unknown error occurred during payment processing.',\n\n // Idempotency / concurrency\n DUPLICATE_PAYMENT_IN_PROGRESS: 'A payment with this idempotency key is already in progress.',\n DUPLICATE_REFUND_IN_PROGRESS: 'A refund for this transaction is already in progress.',\n\n // Validation\n MISSING_TRANSACTION_ID: 'Transaction ID is required for refund operation.',\n INVALID_PAYMENT_REQUEST: 'Invalid payment request payload.',\n INVALID_PROVIDER_CONFIGURATION: 'Invalid or missing provider configuration.',\n\n // Operations\n CAPTURE_PAYMENT_FAILED: 'Capture payment operation failed.',\n CANCEL_PAYMENT_FAILED: 'Cancel payment operation failed.',\n PROCESS_REFUND_FAILED: 'Refund operation failed.',\n GET_REFUND_STATUS_FAILED: 'Failed to retrieve refund status.',\n GET_PAYMENT_STATUS_FAILED: 'Failed to retrieve payment status.',\n GET_TRANSACTION_FAILED: 'Failed to retrieve transaction details.',\n CREATE_CUSTOMER_UNSUPPORTED: 'Create customer not supported by this provider.',\n SAVE_PAYMENT_METHOD_UNSUPPORTED: 'Save payment method not supported by this provider.',\n DELETE_PAYMENT_METHOD_UNSUPPORTED: 'Delete payment method not supported by this provider.',\n GET_USER_PAYMENT_METHODS_UNSUPPORTED: 'Get user payment methods not supported by this provider.',\n CREATE_SUBSCRIPTION_UNSUPPORTED: 'Create subscription not supported by this provider.',\n CANCEL_SUBSCRIPTION_UNSUPPORTED: 'Cancel subscription not supported by this provider.',\n PROCESS_PAYOUT_UNSUPPORTED: 'Payout not supported by this provider.',\n GET_TRANSACTION_HISTORY_UNSUPPORTED: 'Transaction history not supported by this provider.',\n\n // Gateway internal\n IDEMPOTENCY_LOCK_FAILED: 'Another operation with the same key is currently being processed.',\n FALLBACK_HANDLER_ERROR: 'An error occurred while executing fallback handling.',\n ROUTER_RESOLUTION_FAILED: 'Failed to resolve provider adapter route.',\n} as const;\n","export const STRIPE_API_VERSION = '2022-11-15';\nexport const STRIPE_MAPPING_VERSION = 'v1.0.0';\nexport const ZERO_AMOUNT = 0;\nexport const DEFAULT_PROCESSING_RATE = 0.029;\nexport const DEFAULT_PLATFORM_RATE = 0;\nexport const DEFAULT_CROSS_BORDER_RATE = 0.01;\nexport const DEFAULT_PRIORITY = 100;\n\nexport const FIXED_FEES = {\n CREDIT_CARD: 30,\n BANK_TRANSFER: 500,\n BOLETO_BANCARIO: 200,\n SEPA_DIRECT_DEBIT: 50,\n IDEAL_BANK: 50,\n} as const;\n\nexport const NEXT_STEP_EXPECTED_UPDATE_IN = {\n REDIRECT: 10,\n} as const;\n\n// Stripe mapping priorities & confidence\nexport const STRIPE_CONFIDENCE_HIGH = 1;\nexport const STRIPE_PRIORITY_HIGH = 100;\nexport const STRIPE_CONFIDENCE_MEDIUM = 0.9;\nexport const STRIPE_PRIORITY_MEDIUM = 80;\n\n// Display formatting\nexport const AMOUNT_DECIMALS = 2;\nexport const AMOUNT_DIVISOR = 100;\n\n// Timestamp conversion\nexport const UNIX_TIMESTAMP_MULTIPLIER = 1000;\n\n// Timestamps & limits\nexport const TIMESTAMP_FALLBACK = 0;\n\n/** Actions a user should take next in the payment flow */\nexport const NEXT_STEP_USER_ACTION = {\n REDIRECT: 'redirect',\n WAIT: 'wait',\n RETRY: 'retry',\n CONTACT_SUPPORT: 'contact_support',\n} as const;\n\n/** Actions the system should take next in the payment flow */\nexport const NEXT_STEP_SYSTEM_ACTION = {\n WEBHOOK_PENDING: 'webhook_pending',\n MANUAL_REVIEW: 'manual_review',\n AUTO_RETRY: 'auto_retry',\n} as const;\n\n/** Stripe provider event types for mapping */\nexport const STRIPE_EVENT_TYPE = {\n // Payment lifecycle\n PAYMENT_INTENT_CREATED: 'payment_intent.created',\n PAYMENT_INTENT_PROCESSING: 'payment_intent.processing',\n PAYMENT_INTENT_REQUIRES_ACTION: 'payment_intent.requires_action',\n PAYMENT_INTENT_SUCCEEDED: 'payment_intent.succeeded',\n PAYMENT_INTENT_FAILED: 'payment_intent.payment_failed',\n PAYMENT_INTENT_CANCELED: 'payment_intent.canceled',\n PAYMENT_INTENT_EXPIRED: 'payment_intent.expired',\n PAYMENT_INTENT_AUTHORIZED: 'payment_intent.authorized',\n PAYMENT_INTENT_CAPTURED: 'payment_intent.captured',\n PAYMENT_INTENT_HELD: 'payment_intent.held',\n PAYMENT_INTENT_RELEASED: 'payment_intent.released',\n\n // Refunds\n CHARGE_REFUND_CREATED: 'charge.refund.created',\n REFUND_UPDATED: 'refund.updated',\n CHARGE_REFUND_SUCCEEDED: 'charge.refund.succeeded',\n CHARGE_REFUND_FAILED: 'charge.refund.failed',\n CHARGE_REFUND_CANCELED: 'charge.refund.canceled',\n\n // Disputes / chargebacks\n CHARGE_DISPUTE_CREATED: 'charge.dispute.created',\n CHARGE_DISPUTE_UPDATED: 'charge.dispute.updated',\n CHARGE_DISPUTE_CLOSED: 'charge.dispute.closed',\n CHARGEBACK_RECEIVED: 'chargeback.received',\n CHARGEBACK_RESPONDED: 'chargeback.responded',\n CHARGE_DISPUTE_WON: 'charge.dispute.won',\n CHARGE_DISPUTE_LOST: 'charge.dispute.lost',\n\n // Payment methods\n PAYMENT_METHOD_ATTACHED: 'payment_method.attached',\n PAYMENT_METHOD_UPDATED: 'payment_method.updated',\n PAYMENT_METHOD_DETACHED: 'payment_method.detached',\n PAYMENT_METHOD_EXPIRED: 'payment_method.expired',\n\n // Subscriptions\n SUBSCRIPTION_CREATED: 'customer.subscription.created',\n SUBSCRIPTION_UPDATED: 'customer.subscription.updated',\n SUBSCRIPTION_DELETED: 'customer.subscription.deleted',\n\n // Invoice events\n INVOICE_PAYMENT_SUCCEEDED: 'invoice.payment_succeeded',\n INVOICE_PAYMENT_FAILED: 'invoice.payment_failed',\n} as const;\n\n/** Default processing time estimate */\nexport const DEFAULT_PROCESSING_TIME = {\n minimumMinutes: 5,\n maximumMinutes: 120,\n typicalMinutes: 30,\n factors: ['default estimate'],\n};\n\n/** Default settlement time estimate */\nexport const DEFAULT_SETTLEMENT_TIME = {\n minimumDays: 1,\n maximumDays: 5,\n typicalDays: 3,\n affectedByHolidays: true,\n};\nexport const STRIPE_PAYMENT_INTENT_STATUS = {\n SUCCEEDED: 'succeeded',\n PROCESSING: 'processing',\n REQUIRES_ACTION: 'requires_action',\n REQUIRES_CONFIRMATION: 'requires_confirmation',\n REQUIRES_PAYMENT_METHOD: 'requires_payment_method',\n CANCELED: 'canceled',\n FAILED: 'failed',\n DECLINED: 'declined',\n EXPIRED: 'expired',\n AUTHORIZED: 'authorized',\n CAPTURED: 'captured',\n HELD: 'held',\n REFUNDED: 'refunded',\n PARTIALLY_REFUNDED: 'partially_refunded',\n DISPUTED: 'disputed',\n CHARGEBACK: 'chargeback',\n CHARGEBACK_RESOLVED: 'chargeback_resolved',\n} as const;\n\nexport const STRIPE_DATA_PATHS = {\n TRANSACTION_ID: 'data.object.id',\n AMOUNT: 'data.object.amount',\n CURRENCY: 'data.object.currency',\n STATUS: 'data.object.status',\n PAYMENT_METHOD: 'data.object.payment_method',\n METADATA: 'data.object.metadata',\n};\n\nexport const PAYMENT_OPERATION = {\n INITIALIZE: 'initialize',\n CREATE_PAYMENT: 'createPayment',\n CAPTURE_PAYMENT: 'capturePayment',\n CANCEL_PAYMENT: 'cancelPayment',\n PROCESS_REFUND: 'processRefund',\n GET_REFUND_STATUS: 'getRefundStatus',\n GET_PAYMENT_STATUS: 'getPaymentStatus',\n PROCESS_WEBHOOK: 'processWebhook',\n VERIFY_WEBHOOK_SIGNATURE: 'verifyWebhookSignature',\n CALCULATE_FEES: 'calculateFees',\n GET_FEE_STRUCTURE: 'getFeeStructure',\n GET_TRANSACTION: 'getTransaction',\n WEBHOOK_PROCESS: 'webhookProcess',\n} as const;\n\nexport const STRIPE_MESSAGES = {\n MISSING_API_KEY: 'Missing Stripe API key',\n UNKNOWN_EVENT: 'unknown',\n MISSING_EVENT: 'missing',\n INIT_FAILED: 'Stripe SDK initialization failed',\n CREATE_PAYMENT_FAILED: 'Failed to create payment intent',\n CAPTURE_PAYMENT_FAILED: 'Failed to capture payment',\n CANCEL_PAYMENT_FAILED: 'Failed to cancel payment',\n REFUND_FAILED: 'Failed to process refund',\n REFUND_STATUS_FAILED: 'Failed to retrieve refund status',\n GET_PAYMENT_STATUS_FAILED: 'Failed to retrieve payment status',\n PROCESS_WEBHOOK_FAILED: 'Failed to process webhook',\n VERIFY_WEBHOOK_FAILED: 'Failed to verify webhook signature',\n CALCULATE_FEES_FAILED: 'Failed to calculate fees',\n GET_FEE_STRUCTURE_FAILED: 'Failed to get fee structure',\n GET_TRANSACTION_FAILED: 'Failed to retrieve transaction details',\n} as const;\n","/**\n * Currency Code Constants\n *\n * ISO 4217 currency codes for international currencies.\n *\n * @module locale/currencies\n */\n\n/**\n * Common currency codes (ISO 4217)\n */\nexport const CURRENCY_CODES = {\n // Major currencies\n USD: 'USD', // US Dollar\n EUR: 'EUR', // Euro\n GBP: 'GBP', // British Pound Sterling\n JPY: 'JPY', // Japanese Yen\n CHF: 'CHF', // Swiss Franc\n CAD: 'CAD', // Canadian Dollar\n AUD: 'AUD', // Australian Dollar\n CNY: 'CNY', // Chinese Yuan Renminbi\n\n // Asian currencies\n INR: 'INR', // Indian Rupee\n KRW: 'KRW', // South Korean Won\n SGD: 'SGD', // Singapore Dollar\n HKD: 'HKD', // Hong Kong Dollar\n TWD: 'TWD', // Taiwan New Dollar\n THB: 'THB', // Thai Baht\n IDR: 'IDR', // Indonesian Rupiah\n MYR: 'MYR', // Malaysian Ringgit\n PHP: 'PHP', // Philippine Peso\n VND: 'VND', // Vietnamese Dong\n BDT: 'BDT', // Bangladeshi Taka\n PKR: 'PKR', // Pakistani Rupee\n LKR: 'LKR', // Sri Lankan Rupee\n\n // European currencies\n SEK: 'SEK', // Swedish Krona\n NOK: 'NOK', // Norwegian Krone\n DKK: 'DKK', // Danish Krone\n PLN: 'PLN', // Polish Zloty\n CZK: 'CZK', // Czech Koruna\n HUF: 'HUF', // Hungarian Forint\n RON: 'RON', // Romanian Leu\n BGN: 'BGN', // Bulgarian Lev\n HRK: 'HRK', // Croatian Kuna\n RSD: 'RSD', // Serbian Dinar\n ISK: 'ISK', // Icelandic Króna\n\n // Americas currencies\n BRL: 'BRL', // Brazilian Real\n MXN: 'MXN', // Mexican Peso\n ARS: 'ARS', // Argentine Peso\n CLP: 'CLP', // Chilean Peso\n COP: 'COP', // Colombian Peso\n PEN: 'PEN', // Peruvian Sol\n UYU: 'UYU', // Uruguayan Peso\n VES: 'VES', // Venezuelan Bolívar\n BOB: 'BOB', // Bolivian Boliviano\n PYG: 'PYG', // Paraguayan Guarani\n CRC: 'CRC', // Costa Rican Colón\n GTQ: 'GTQ', // Guatemalan Quetzal\n HNL: 'HNL', // Honduran Lempira\n NIO: 'NIO', // Nicaraguan Córdoba\n PAB: 'PAB', // Panamanian Balboa\n DOP: 'DOP', // Dominican Peso\n JMD: 'JMD', // Jamaican Dollar\n TTD: 'TTD', // Trinidad and Tobago Dollar\n BBD: 'BBD', // Barbadian Dollar\n\n // Middle Eastern currencies\n AED: 'AED', // UAE Dirham\n SAR: 'SAR', // Saudi Riyal\n QAR: 'QAR', // Qatari Riyal\n KWD: 'KWD', // Kuwaiti Dinar\n BHD: 'BHD', // Bahraini Dinar\n OMR: 'OMR', // Omani Rial\n JOD: 'JOD', // Jordanian Dinar\n ILS: 'ILS', // Israeli New Shekel\n TRY: 'TRY', // Turkish Lira\n IQD: 'IQD', // Iraqi Dinar\n IRR: 'IRR', // Iranian Rial\n LBP: 'LBP', // Lebanese Pound\n SYP: 'SYP', // Syrian Pound\n\n // African currencies\n ZAR: 'ZAR', // South African Rand\n NGN: 'NGN', // Nigerian Naira\n EGP: 'EGP', // Egyptian Pound\n KES: 'KES', // Kenyan Shilling\n GHS: 'GHS', // Ghanaian Cedi\n MAD: 'MAD', // Moroccan Dirham\n TND: 'TND', // Tunisian Dinar\n DZD: 'DZD', // Algerian Dinar\n ETB: 'ETB', // Ethiopian Birr\n TZS: 'TZS', // Tanzanian Shilling\n UGX: 'UGX', // Ugandan Shilling\n ZMW: 'ZMW', // Zambian Kwacha\n BWP: 'BWP', // Botswana Pula\n MUR: 'MUR', // Mauritian Rupee\n\n // Pacific currencies\n NZD: 'NZD', // New Zealand Dollar\n FJD: 'FJD', // Fijian Dollar\n PGK: 'PGK', // Papua New Guinean Kina\n\n // Former Soviet Union currencies\n RUB: 'RUB', // Russian Ruble\n UAH: 'UAH', // Ukrainian Hryvnia\n BYN: 'BYN', // Belarusian Ruble\n KZT: 'KZT', // Kazakhstani Tenge\n UZS: 'UZS', // Uzbekistani Som\n AZN: 'AZN', // Azerbaijani Manat\n GEL: 'GEL', // Georgian Lari\n AMD: 'AMD', // Armenian Dram\n\n // Cryptocurrency representations (unofficial)\n BTC: 'BTC', // Bitcoin\n ETH: 'ETH', // Ethereum\n USDT: 'USDT', // Tether\n USDC: 'USDC', // USD Coin\n} as const;\n\n/**\n * Currency metadata\n */\nexport const CURRENCY_INFO = {\n /**\n * Currencies with no decimal places\n */\n NO_DECIMAL_CURRENCIES: ['JPY', 'KRW', 'VND', 'IDR', 'CLP', 'ISK', 'TWD'],\n\n /**\n * Currencies with 3 decimal places\n */\n THREE_DECIMAL_CURRENCIES: ['BHD', 'IQD', 'JOD', 'KWD', 'OMR', 'TND'],\n\n /**\n * Major reserve currencies\n */\n RESERVE_CURRENCIES: ['USD', 'EUR', 'GBP', 'JPY', 'CNY'],\n\n /**\n * G7 currencies\n */\n G7_CURRENCIES: ['USD', 'EUR', 'GBP', 'JPY', 'CAD'],\n\n /**\n * Default decimal places for most currencies\n */\n DEFAULT_DECIMAL_PLACES: 2,\n} as const;\n\n/**\n * Type exports\n */\nexport type CurrencyCode = (typeof CURRENCY_CODES)[keyof typeof CURRENCY_CODES];\nexport type CurrencyInfo = (typeof CURRENCY_INFO)[keyof typeof CURRENCY_INFO];\n","/**\n * Time-related Constants\n *\n * Common time values and durations used throughout the application\n * for timeouts, delays, caching, and other time-based operations.\n *\n * @module time/constants\n */\n\n/**\n * Time conversion and duration constants\n */\nexport const TIME_CONSTANTS = {\n // Time unit conversions (in milliseconds)\n /**\n * One millisecond in milliseconds\n */\n MILLISECOND: 1,\n\n /**\n * One second in milliseconds\n */\n SECOND: 1000,\n\n /**\n * One minute in milliseconds\n */\n MINUTE: 60000,\n\n /**\n * One hour in milliseconds\n */\n HOUR: 3600000,\n\n /**\n * One day in milliseconds\n */\n DAY: 86400000,\n\n /**\n * One week in milliseconds\n */\n WEEK: 604800000,\n\n /**\n * One month in milliseconds (30 days average)\n */\n MONTH: 2592000000,\n\n /**\n * One year in milliseconds (365 days)\n */\n YEAR: 31536000000,\n\n // Time unit ratios\n /**\n * Number of milliseconds in one second\n */\n MILLISECONDS_PER_SECOND: 1000,\n\n /**\n * Number of seconds in one minute\n */\n SECONDS_PER_MINUTE: 60,\n\n /**\n * Number of minutes in one hour\n */\n MINUTES_PER_HOUR: 60,\n\n /**\n * Number of hours in one day\n */\n HOURS_PER_DAY: 24,\n\n /**\n * Number of days in one week\n */\n DAYS_PER_WEEK: 7,\n\n /**\n * Number of days in one month (average)\n */\n DAYS_PER_MONTH: 30,\n\n /**\n * Number of days in one year\n */\n DAYS_PER_YEAR: 365,\n\n /**\n * Number of weeks in one year\n */\n WEEKS_PER_YEAR: 52,\n\n /**\n * Number of months in one year\n */\n MONTHS_PER_YEAR: 12,\n\n // Common durations in milliseconds\n /**\n * 100 milliseconds\n */\n HUNDRED_MS: 100,\n\n /**\n * 250 milliseconds\n */\n QUARTER_SECOND: 250,\n\n /**\n * 500 milliseconds (half second)\n */\n HALF_SECOND: 500,\n\n /**\n * 2 seconds in milliseconds\n */\n TWO_SECONDS: 2000,\n\n /**\n * 3 seconds in milliseconds\n */\n THREE_SECONDS: 3000,\n\n /**\n * 5 seconds in milliseconds\n */\n FIVE_SECONDS: 5000,\n\n /**\n * 10 seconds in milliseconds\n */\n TEN_SECONDS: 10000,\n\n /**\n * 30 seconds in milliseconds\n */\n THIRTY_SECONDS: 30000,\n\n /**\n * 2 minutes in milliseconds\n */\n TWO_MINUTES: 120000,\n\n /**\n * 5 minutes in milliseconds\n */\n FIVE_MINUTES: 300000,\n\n /**\n * 10 minutes in milliseconds\n */\n TEN_MINUTES: 600000,\n\n /**\n * 15 minutes in milliseconds\n */\n FIFTEEN_MINUTES: 900000,\n\n /**\n * 30 minutes in milliseconds\n */\n THIRTY_MINUTES: 1800000,\n\n /**\n * 1 hour in milliseconds\n */\n ONE_HOUR: 3600000,\n\n /**\n * 2 hours in milliseconds\n */\n TWO_HOURS: 7200000,\n\n /**\n * 6 hours in milliseconds\n */\n SIX_HOURS: 21600000,\n\n /**\n * 12 hours in milliseconds\n */\n TWELVE_HOURS: 43200000,\n\n // Default values\n /**\n * Default timeout duration in milliseconds (5 seconds)\n */\n DEFAULT_TIMEOUT: 5000,\n\n /**\n * Default short timeout in milliseconds (1 second)\n */\n DEFAULT_SHORT_TIMEOUT: 1000,\n\n /**\n * Default long timeout in milliseconds (30 seconds)\n */\n DEFAULT_LONG_TIMEOUT: 30000,\n\n /**\n * Default retry delay in milliseconds (100ms)\n */\n DEFAULT_RETRY_DELAY: 100,\n\n /**\n * Default exponential backoff base delay in milliseconds (1 second)\n */\n DEFAULT_BACKOFF_BASE: 1000,\n\n /**\n * Default maximum backoff delay in milliseconds (30 seconds)\n */\n DEFAULT_MAX_BACKOFF: 30000,\n\n /**\n * Default number of retry attempts\n */\n DEFAULT_RETRY_ATTEMPTS: 3,\n\n /**\n * Default debounce delay in milliseconds (50ms)\n */\n DEFAULT_DEBOUNCE_DELAY: 50,\n\n /**\n * Default throttle delay in milliseconds (100ms)\n */\n DEFAULT_THROTTLE_DELAY: 100,\n\n /**\n * Default animation frame duration in milliseconds (~60fps)\n */\n DEFAULT_ANIMATION_FRAME: 16.67,\n\n /**\n * Default transition duration in milliseconds (300ms)\n */\n DEFAULT_TRANSITION_DURATION: 300,\n\n /**\n * Default cache time-to-live in seconds (5 minutes)\n */\n DEFAULT_CACHE_TTL: 300,\n\n /**\n * Default short cache TTL in seconds (1 minute)\n */\n DEFAULT_SHORT_CACHE_TTL: 60,\n\n /**\n * Default long cache TTL in seconds (1 hour)\n */\n DEFAULT_LONG_CACHE_TTL: 3600,\n\n /**\n * Default session timeout in milliseconds (30 minutes)\n */\n DEFAULT_SESSION_TIMEOUT: 1800000,\n\n /**\n * Default idle timeout in milliseconds (15 minutes)\n */\n DEFAULT_IDLE_TIMEOUT: 900000,\n\n /**\n * Default poll interval in milliseconds (5 seconds)\n */\n DEFAULT_POLL_INTERVAL: 5000,\n\n /**\n * Default heartbeat interval in milliseconds (30 seconds)\n */\n DEFAULT_HEARTBEAT_INTERVAL: 30000,\n\n // Network and ports\n /**\n * Default port number for servers\n */\n DEFAULT_PORT: 3000,\n\n /**\n * Default HTTP port\n */\n HTTP_PORT: 80,\n\n /**\n * Default HTTPS port\n */\n HTTPS_PORT: 443,\n\n /**\n * Default WebSocket port\n */\n WEBSOCKET_PORT: 8080,\n\n /**\n * Default database port (PostgreSQL)\n */\n DATABASE_PORT: 5432,\n\n /**\n * Default Redis port\n */\n REDIS_PORT: 6379,\n\n // WebSocket specific\n /**\n * WebSocket normal closure code\n */\n WEBSOCKET_CLOSE_NORMAL: 1000,\n\n /**\n * WebSocket going away code\n */\n WEBSOCKET_CLOSE_GOING_AWAY: 1001,\n\n /**\n * WebSocket protocol error code\n */\n WEBSOCKET_CLOSE_PROTOCOL_ERROR: 1002,\n\n /**\n * WebSocket unsupported data code\n */\n WEBSOCKET_CLOSE_UNSUPPORTED: 1003,\n\n /**\n * WebSocket abnormal closure code\n */\n WEBSOCKET_CLOSE_ABNORMAL: 1006,\n\n /**\n * WebSocket retry delay in milliseconds (500ms)\n */\n WEBSOCKET_RETRY_DELAY: 500,\n\n /**\n * WebSocket ping interval in milliseconds (30 seconds)\n */\n WEBSOCKET_PING_INTERVAL: 30000,\n\n /**\n * WebSocket reconnect delay in milliseconds (1 second)\n */\n WEBSOCKET_RECONNECT_DELAY: 1000,\n\n /**\n * WebSocket max reconnect delay in milliseconds (30 seconds)\n */\n WEBSOCKET_MAX_RECONNECT_DELAY: 30000,\n} as const;\n\n/**\n * Type for time constant values\n */\nexport type TimeConstant = (typeof TIME_CONSTANTS)[keyof typeof TIME_CONSTANTS];\n","import type { BaseProviderConfig } from '@plyaz/types';\nimport { PAYMENT_METHOD, PAYMENT_PROVIDER_TYPE } from '@plyaz/types';\nimport { CURRENCY_CODES } from '../../../locale';\nimport { TIME_CONSTANTS } from '../../../time';\nimport { HTTP_STATUS } from '../../../http';\n\nexport const stripeConfig: BaseProviderConfig = {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n displayName: PAYMENT_PROVIDER_TYPE.Stripe,\n enabled: true,\n environment: {\n current: 'sandbox',\n apiUrls: {\n sandbox: 'https://api.stripe.com',\n staging: 'https://api.stripe.com',\n production: 'https://api.stripe.com',\n },\n environmentOverrides: {\n sandbox: {\n payments: {\n enabled: true,\n subscriptions: true,\n preauthorization: true,\n cancellation: true,\n updates: true,\n },\n },\n },\n debug: {\n enabled: true,\n logLevel: 'debug',\n logRequests: true,\n logResponses: true,\n },\n },\n\n credentials: {\n apiKey: globalThis.process.env.STRIPE_API_KEY ?? '',\n secretKey: globalThis.process.env.STRIPE_SECRET_KEY ?? '',\n additionalCredentials: {\n webhookSecret: globalThis.process.env.STRIPE_WEBHOOK_SECRET ?? '',\n merchantId: globalThis.process.env.STRIPE_MERCHANT_ID ?? '',\n },\n rotation: {\n enabled: false,\n intervalDays: 90,\n warningDays: 10,\n },\n encryption: {\n encrypted: false,\n },\n },\n\n webhooks: {\n enabled: true,\n endpoints: {\n primary: 'https://yourdomain.com/api/webhooks/stripe',\n },\n security: {\n signatureMethod: 'hmac_sha256',\n signatureHeader: 'Stripe-Signature',\n secret: globalThis.process.env.STRIPE_WEBHOOK_SECRET ?? '',\n timestampTolerance: 300,\n },\n events: {\n subscribed: [\n 'payment_intent.succeeded',\n 'payment_intent.payment_failed',\n 'charge.refunded',\n 'customer.subscription.created',\n 'customer.subscription.deleted',\n ],\n },\n reliability: {\n retryEnabled: true,\n maxRetries: 5,\n retryDelays: [\n TIME_CONSTANTS.SECOND,\n TIME_CONSTANTS.THREE_SECONDS,\n TIME_CONSTANTS.FIVE_SECONDS,\n TIME_CONSTANTS.TEN_SECONDS,\n ],\n timeout: 10000,\n deadLetterQueue: {\n enabled: true,\n retentionDays: 7,\n },\n },\n },\n features: {\n payments: {\n enabled: true,\n subscriptions: true,\n preauthorization: true,\n cancellation: true,\n updates: true,\n },\n refunds: {\n enabled: true,\n partial: true,\n instant: true,\n scheduled: false,\n },\n security: {\n threeDS: true,\n fraudDetection: true,\n velocityChecking: true,\n tokenization: true,\n },\n customers: {\n profiles: true,\n savedMethods: true,\n authentication: true,\n },\n marketplace: {\n enabled: true,\n splitPayments: true,\n connectedAccounts: true,\n instantPayouts: true,\n },\n advanced: {\n multiCurrency: true,\n currencyConversion: true,\n smartRouting: true,\n costOptimization: true,\n abTesting: true,\n },\n },\n\n /** Fees */\n fees: {\n baseFees: {\n percentage: 2.9,\n fixed: 30,\n currency: CURRENCY_CODES.USD,\n },\n methodFees: {\n [PAYMENT_METHOD.CreditCard]: { percentage: 2.9, fixed: 30, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.DebitCard]: { percentage: 2.9, fixed: 30, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.BankTransfer]: { percentage: 0.8, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.PaypalAccount]: { percentage: 3.5, fixed: 30, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoBitcoin]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoEthereum]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoPolygon]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoOptimism]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoUsdc]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoUsdt]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoNativeToken]: {\n percentage: 1.0,\n fixed: 0,\n currency: CURRENCY_CODES.USD,\n },\n [PAYMENT_METHOD.PixInstant]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.BoletoBancario]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.SepaDirectDebit]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.IdealBank]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.SofortBanking]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.AlipayDigital]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.WechatPayDigital]: {\n percentage: 1.0,\n fixed: 0,\n currency: CURRENCY_CODES.USD,\n },\n [PAYMENT_METHOD.ApplePay]: { percentage: 2.9, fixed: 30, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.GooglePay]: { percentage: 2.9, fixed: 30, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.SamsungPay]: { percentage: 2.9, fixed: 30, currency: CURRENCY_CODES.USD },\n },\n volumeTiers: [\n {\n name: 'Tier 1',\n minimumVolume: { amount: 0, currency: CURRENCY_CODES.USD },\n feeRates: { percentage: 2.9, fixed: 30, currency: CURRENCY_CODES.USD },\n },\n {\n name: 'Tier 2',\n minimumVolume: { amount: 1000000, currency: CURRENCY_CODES.USD },\n feeRates: { percentage: 2.5, fixed: 25, currency: CURRENCY_CODES.USD },\n },\n ],\n regionalFees: {\n EU: { percentage: 2.5, fixed: 30, currency: CURRENCY_CODES.EUR },\n PK: { percentage: 3.0, fixed: 50, currency: CURRENCY_CODES.PKR },\n },\n additionalFees: {\n crossBorder: { percentage: 1.0 },\n currencyConversion: { percentage: 1.0, minimumFee: 50 },\n chargeback: { amount: 1500, currency: CURRENCY_CODES.USD },\n refund: { percentage: 2.9, fixed: 30 },\n },\n calculation: {\n rounding: 'nearest',\n minimumFee: { amount: 50, currency: CURRENCY_CODES.USD },\n },\n },\n limits: {\n amounts: {\n minimum: {\n [PAYMENT_METHOD.CreditCard]: { amount: 50, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.DebitCard]: { amount: 50, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.BankTransfer]: { amount: 50, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.PaypalAccount]: { amount: 50, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoBitcoin]: { amount: 50, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoEthereum]: { amount: 50, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoPolygon]: { amount: 50, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoOptimism]: { amount: 50, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoUsdc]: { amount: 50, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoUsdt]: { amount: 50, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoNativeToken]: { amount: 50, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.PixInstant]: { amount: 50, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.BoletoBancario]: { amount: 50, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.SepaDirectDebit]: { amount: 50, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.IdealBank]: { amount: 50, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.SofortBanking]: { amount: 50, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.AlipayDigital]: { amount: 50, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.WechatPayDigital]: { amount: 50, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.ApplePay]: { amount: 50, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.GooglePay]: { amount: 50, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.SamsungPay]: { amount: 50, currency: CURRENCY_CODES.USD },\n },\n maximum: {\n [PAYMENT_METHOD.CreditCard]: { amount: 10000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.DebitCard]: { amount: 10000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.BankTransfer]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.PaypalAccount]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoBitcoin]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoEthereum]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoPolygon]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoOptimism]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoUsdc]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoUsdt]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoNativeToken]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.PixInstant]: { amount: 10000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.BoletoBancario]: { amount: 10000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.SepaDirectDebit]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.IdealBank]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.SofortBanking]: { amount: 10000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.AlipayDigital]: { amount: 10000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.WechatPayDigital]: { amount: 10000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.ApplePay]: { amount: 10000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.GooglePay]: { amount: 10000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.SamsungPay]: { amount: 10000, currency: CURRENCY_CODES.USD },\n },\n },\n velocity: {\n daily: {\n maxTransactions: 5000,\n maxAmount: { amount: 5000000, currency: CURRENCY_CODES.USD },\n },\n monthly: {\n maxTransactions: 100000,\n maxAmount: { amount: 100000000, currency: CURRENCY_CODES.USD },\n },\n },\n apiLimits: {\n requestsPerSecond: 100,\n requestsPerMinute: 6000,\n requestsPerHour: 360000,\n },\n providerSpecific: {},\n },\n\n performance: {\n timeouts: {\n connection: 5000,\n request: 15000,\n total: 20000,\n },\n retries: {\n enabled: true,\n maxAttempts: 3,\n strategy: 'exponential',\n baseDelay: 1000,\n maxDelay: 10000,\n jitter: true,\n retryableStatusCodes: [\n HTTP_STATUS.REQUEST_TIMEOUT,\n HTTP_STATUS.TOO_MANY_REQUESTS,\n HTTP_STATUS.INTERNAL_SERVER_ERROR,\n HTTP_STATUS.BAD_GATEWAY,\n HTTP_STATUS.SERVICE_UNAVAILABLE,\n HTTP_STATUS.GATEWAY_TIMEOUT,\n ],\n },\n circuitBreaker: {\n enabled: true,\n failureThreshold: 5,\n windowSize: 60_000,\n timeout: 30_000,\n minimumRequests: 10,\n },\n connectionPool: {\n maxConnections: 50,\n minConnections: 5,\n idleTimeout: 30000,\n validationInterval: 60000,\n },\n caching: {\n enabled: true,\n ttl: {\n getPaymentStatus: 60,\n getTransaction: 60,\n },\n maxSize: 1000,\n evictionStrategy: 'lru',\n },\n },\n customSettings: {\n enableRadar: true,\n enableApplePay: true,\n },\n};\n","import { CURRENCY_CODES } from '../locale';\n\n// Convert enum to array for inclusion checks\nexport const SUPPORTED_CURRENCIES = Object.values(CURRENCY_CODES);\n\n// Validation Messages\nexport const VALIDATION_MESSAGES = {\n AMOUNT: 'Amount must be a positive number with valid currency format.',\n CORE_FIELDS:\n 'Missing required core fields: amount, paymentMethod, userId, userType, productId, productType.',\n CURRENCY: 'Unsupported or missing currency code.',\n METADATA: 'Invalid metadata structure or missing required metadata fields.',\n RISK_ASSESSMENT: 'Invalid or inconsistent risk assessment fields.',\n SCHEDULING: 'Invalid scheduling configuration.',\n REFUND_TRANSACTION_ID: 'Transaction ID is required.',\n REFUND_PROVIDER: 'Provider is required.',\n REFUND_AMOUNT: 'Refund amount must be positive.',\n};\n\n// Validator Names\nexport const VALIDATOR_NAMES = {\n AMOUNT: 'AmountValidator',\n CORE_FIELDS: 'CoreFieldValidator',\n CURRENCY: 'CurrencyValidator',\n METADATA: 'MetadataValidator',\n RISK_ASSESSMENT: 'RiskAssessmentValidator',\n SCHEDULING: 'SchedulingValidator',\n};\n\n// Core Fields\nexport const CORE_FIELDS = [\n 'amount',\n 'paymentMethod',\n 'userId',\n 'userType',\n 'productId',\n 'productType',\n] as const;\n\n// Billing Cycles\nexport const VALID_BILLING_CYCLES = ['monthly', 'quarterly', 'yearly'] as const;\n\n// Risk Levels\nexport const VALID_RISK_LEVELS = ['low', 'medium', 'high'] as const;\n\n// Recurrence Frequencies\nexport const VALID_RECURRENCE_FREQUENCIES = [\n 'daily',\n 'weekly',\n 'monthly',\n 'quarterly',\n 'yearly',\n] as const;\n\n// Numeric and Length Constants\nexport const MIN_POSITIVE_AMOUNT = 0;\nexport const CURRENCY_CODE_LENGTH = 3;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/payments/error-messages.ts","../../src/payments/events.ts","../../src/payments/gateway.ts","../../src/payments/providers/stripe/constant.ts","../../src/locale/currencies.ts","../../src/locale/countries.ts","../../src/time/constants.ts","../../src/payments/providers/stripe/config.ts","../../src/payments/validators.ts","../../src/payments/routing/methods/ab-testing/ab-testing.ts","../../src/db/constants.ts","../../src/payments/routing/methods/failover/strategies/priority-order.config.ts","../../src/payments/routing/methods/failover/strategies/next-available.config.ts","../../src/payments/routing/methods/failover/strategies/performance-based.config.ts","../../src/payments/routing/methods/failover/strategies/load-balanced.config.ts","../../src/payments/routing/methods/failover/strategies/geographic.config.ts","../../src/payments/routing/methods/failover/failover-registry.ts","../../src/payments/routing/methods/geographic/geographic.ts","../../src/payments/routing/methods/performance/performance.ts","../../src/payments/routing/methods/load-balancing/strategies/weighted.config.ts","../../src/payments/routing/methods/load-balancing/strategies/round-robin.config.ts","../../src/payments/routing/methods/load-balancing/strategies/least-connections.config.ts","../../src/payments/routing/methods/load-balancing/strategies/performance-based.config.ts","../../src/payments/routing/methods/load-balancing/strategies/custom.config.ts","../../src/payments/routing/methods/load-balancing/load-balancing-registry.ts","../../src/payments/routing/provider-selection/amount-based-selection.ts","../../src/payments/routing/provider-selection/currency-specific-providers.ts","../../src/payments/routing/provider-selection/custom-rules.ts","../../src/payments/routing/provider-selection/default-providers.ts","../../src/payments/routing/provider-selection/method-specific-providers.ts","../../src/payments/routing/provider-selection/region-specific-providers.ts","../../src/payments/routing/provider-selection/time-based-selection.ts","../../src/payments/routing/provider-selection/user-type-providers.ts"],"names":["DEFAULT_HMAC_ALGORITHM","DEFAULT_ENVIRONMENT","THRESHOLDS","SENSITIVE_KEYS","RISK_SCORE","LOG_LEVELS","REDACTED","PAYMENT_ERROR_MESSAGES","PAYMENT_ALERT_SEVERITY","ERROR_SEVERITY","PROCESSING_ERROR_MESSAGES","WEBHOOK_CONSTANTS","RECOVERY_STEPS","REFUND_ERROR_MESSAGES","DEFAULT_REFUND_LEVELS","FACTORY_MESSAGES","PAYLOAD_KEYS","STRIPE_ERROR_TYPES","PROVIDER_ERROR_MESSAGES","SECURITY_ERROR_MESSAGES","DEFAULT_PAYEMNT_PRIORITY","DEFAULT_URGENT","DEFAULT_MAX_LISTENERS","DEFAULT_HANDLER_TIMEOUT_MS","DEFAULT_EVENT_COUNT","DEFAULT_SUCCESS_THRESHOLD","DEFAULT_PARTIAL_SUCCESS_THRESHOLD","EVENT_DEFAULTS","EVENT_COMPONENT","EVENT_ERROR_CODE","EVENT_ERROR_MESSAGE","EVENT_ENVIRONMENT","PHASE_NONE","PHASE_CAPTURING","PHASE_AT_TARGET","PHASE_BUBBLING","EVENT_PHASE","EVENT_META_KEY","EVENT_SOURCE_FIELD","EVENT_RESULT_STATUS","EmptyArray","__name","CurrentTimestamp","SETTLED_PROMISE_STATUS","EVENT_NORMALIZER_MESSAGES","field","DEFAULT_RETRY_DELAY_MS","MAX_CIRCUIT_OPEN_MS","DEFAULT_CIRCUIT_BREAKER_FAILURE_THRESHOLD","FALLBACK_REASON","FALLBACK_NEXT_STEPS","RISK_LEVEL","SECURITY_FLAGS","CUSTOM_RULE_OPERATER","PAYMENT_GATEWAY_ERROR_MESSAGE","STRIPE_API_VERSION","STRIPE_MAPPING_VERSION","ZERO_AMOUNT","DEFAULT_PROCESSING_RATE","DEFAULT_PLATFORM_RATE","DEFAULT_CROSS_BORDER_RATE","DEFAULT_PRIORITY","FIXED_FEES","NEXT_STEP_EXPECTED_UPDATE_IN","STRIPE_CONFIDENCE_HIGH","STRIPE_PRIORITY_HIGH","STRIPE_CONFIDENCE_MEDIUM","STRIPE_PRIORITY_MEDIUM","AMOUNT_DECIMALS","AMOUNT_DIVISOR","UNIX_TIMESTAMP_MULTIPLIER","TIMESTAMP_FALLBACK","NEXT_STEP_USER_ACTION","NEXT_STEP_SYSTEM_ACTION","STRIPE_EVENT_TYPE","DEFAULT_PROCESSING_TIME","DEFAULT_SETTLEMENT_TIME","STRIPE_PAYMENT_INTENT_STATUS","STRIPE_DATA_PATHS","PAYMENT_OPERATION","STRIPE_MESSAGES","CURRENCY_CODES","COUNTRY_CODES","DAYS_IN_WEEK","EARLY_MORNING_HOURS","TIME_CONSTANTS","COUNTRY_TIMEZONES","ALL_COUNTRY_TIMEZONES","DAYS_OF_WEEK","_","i","HOURS_OF_DAY","stripeConfig","PAYMENT_PROVIDER_TYPE","PAYMENT_METHOD","HTTP_STATUS","SUPPORTED_CURRENCIES","VALIDATION_MESSAGES","VALIDATOR_NAMES","CORE_FIELDS","VALID_BILLING_CYCLES","VALID_RISK_LEVELS","VALID_RECURRENCE_FREQUENCIES","MIN_POSITIVE_AMOUNT","CURRENCY_CODE_LENGTH","ABTesting","ROUTING_STRATEGY","COST_OPTIMIZATION_STRATEGY","NUMERIX","FAILOVER_PRIORITY_ORDER","FAIL_OVER_STRATEGY","FAILOVER_NEXT_AVAILABLE","FAILOVER_PERFORMANCE_BASED","FAILOVER_LOAD_BALANCED","FAILOVER_GEOGRAPHIC","FAILOVER_REGISTRY","Geographic","REGULATORY_FRAMEWORK","TRANSACTION_TYPE","Performance","PERFORMANCE_METRIC_TYPE","WeightedLoadBalancing","LOAD_BALANCING_STRATEGY","RoundRobinLoadBalancing","LeastConnectionsLoadBalancing","PerformanceBasedLoadBalancing","CustomLoadBalancing","LoadBalancingRegistry","AMOUNT_BASED_SELECTION","CurrencySpecificProviders","CUSTOM_RULES","DEFAULT_PROVIDERS","MethodSpecificProviders","RegionSpecificProviders","TIME_BASED_SELECTION","UserTypeSelection","USER_TYPE"],"mappings":"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KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,MACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,IAAK,KAAA,CACL,GAAA,CAAK,KAAA,CAGL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,MACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,IAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,MACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,IAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,MACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CAGL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,IAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,MACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,IAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,MACL,GAAA,CAAK,KAAA,CAGL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,IAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,MACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,IAAK,KAAA,CACL,GAAA,CAAK,KAAA,CAGL,GAAA,CAAK,MACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CAGL,IAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,MACL,GAAA,CAAK,KAAA,CACL,GAAA,CAAK,KAAA,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","file":"index.cjs","sourcesContent":["import { ERROR_SEVERITY } from '@plyaz/types';\n\nexport const DEFAULT_HMAC_ALGORITHM = 'sha256';\nexport const DEFAULT_ENVIRONMENT = 'unknown';\n\nexport const THRESHOLDS = {\n RETRYABLE_ERROR_RATIO: 0.5,\n USER_FACING_ERROR_RATIO: 0.3,\n};\n\nexport const SENSITIVE_KEYS = ['token', 'secret', 'signature'];\n\nexport const RISK_SCORE = {\n MIN_SCORE: 100,\n} as const;\n\n// Log levels\nexport const LOG_LEVELS = {\n CRITICAL: 'critical',\n ERROR: 'error',\n WARN: 'warn',\n} as const;\n\n// Webhook redacted placeholders\nexport const REDACTED = {\n RAW_BODY: '[REDACTED_RAW_BODY]',\n SENSITIVE: '[REDACTED]',\n};\n\nexport const PAYMENT_ERROR_MESSAGES = {\n GENERIC_SYSTEM_ERROR: 'An unexpected error occurred while processing payment.',\n USER_FRIENDLY_SYSTEM_ERROR: 'A payment system error occurred. Please try again later.',\n USER_FRIENDLY_ALT: 'Payment error. Please try again.',\n SYSTEM: 'An internal payment error occurred. Our team has been notified.',\n VALIDATION: 'Some payment information is invalid. Please review your details.',\n AUTHENTICATION: 'Your session has expired. Please log in again.',\n AUTHORIZATION: 'You are not authorized to perform this payment action.',\n PROVIDER: 'There was an issue communicating with the payment provider.',\n NETWORK: 'Network error. Please try again later.',\n FRAUD: 'Suspicious activity detected. Please contact support.',\n REFUND: 'Refund could not be processed. Please try again later.',\n WEBHOOK: 'Payment notification failed. We are investigating.',\n PROCESSING: 'Payment is currently being processed. Please wait a moment.',\n COMPLIANCE: 'This transaction violates compliance rules. Please contact support.',\n LIMITS: 'The payment exceeds your transaction limit.',\n CONFIGURATION: 'Payment configuration error. Please contact your administrator.',\n DEFAULT: 'An unexpected error occurred while processing your payment.',\n INVALID_VALUE: 'Invalid value provided',\n PROVIDER_GENERIC: 'Provider error occurred',\n REFUND_NOT_ALLOWED: 'Refund not allowed',\n REFUND_AUTHORIZATION: 'Refund authorization failed',\n REFUND_PROCESSING: 'Refund processing failed',\n STRIPE_GENERIC: 'An unexpected error occurred while communicating with Stripe',\n};\n\nexport const PAYMENT_ALERT_SEVERITY: Record<\n (typeof ERROR_SEVERITY)[keyof typeof ERROR_SEVERITY],\n boolean\n> = {\n [ERROR_SEVERITY.Low]: true,\n [ERROR_SEVERITY.Medium]: false,\n [ERROR_SEVERITY.High]: true,\n [ERROR_SEVERITY.Critical]: true,\n};\n\nexport const PROCESSING_ERROR_MESSAGES = {\n GENERIC: 'There was an error processing your payment. Please try again.',\n API_RESPONSE_GENERIC: 'A processing error occurred.',\n};\n\nexport const WEBHOOK_CONSTANTS = {\n DEFAULT_MESSAGE: 'An error occurred while processing the webhook.',\n DEFAULT_USER_MESSAGE: 'An error occurred while handling the webhook.',\n};\n\nexport const RECOVERY_STEPS = {\n RETRY: 'Retry transaction after delay.',\n NOTIFY_USER: 'Notify user and suggest contacting support.',\n LOG_ONLY: 'Log and continue monitoring.',\n};\n\nexport const REFUND_ERROR_MESSAGES = {\n NOT_ALLOWED: 'Refund not allowed',\n AUTHORIZATION: 'Refund authorization failed',\n PROCESSING: 'Refund processing failed',\n DEFAULT_API_MESSAGE: 'An error occurred during the refund process.',\n DEFAULT_USER_MESSAGE: 'Refund could not be processed. Please try again or contact support.',\n};\n\nexport const DEFAULT_REFUND_LEVELS = {\n REQUIRED: 'manager',\n CURRENT: 'user',\n};\n\nexport const FACTORY_MESSAGES = {\n PROVIDER_ERROR_PREFIX: 'Provider {provider} error',\n STRIPE_GENERIC: 'An unexpected error occurred while communicating with Stripe.',\n WEBHOOK_SANITIZE_FAIL: 'Failed to sanitize webhook payload',\n UNKNOWN_REFUND_TYPE: 'Unknown refund error type: {type}',\n REDACTION_FAIL: 'Failed to sanitize object.',\n};\n\nexport const PAYLOAD_KEYS = {\n PROVIDER: 'provider',\n EVENT: 'event',\n};\n\nexport const STRIPE_ERROR_TYPES = {\n API_CONNECTION: 'api_connection_error',\n RATE_LIMIT: 'rate_limit_error',\n INVALID_REQUEST: 'invalid_request_error',\n CARD_ERROR: 'card_error',\n AUTHENTICATION: 'authentication_error',\n CARD_DECLINED: 'card_declined',\n} as const;\n\nexport const PROVIDER_ERROR_MESSAGES = {\n DEFAULT_API_MESSAGE: 'An error occurred with the payment provider.',\n DEFAULT_USER_MESSAGE: 'A payment provider error occurred. Please try again later.',\n};\n\nexport const SECURITY_ERROR_MESSAGES = {\n DEFAULT_API_MESSAGE: 'A security error occurred while processing the payment.',\n DEFAULT_USER_MESSAGE: 'A security issue was detected with the payment. Please contact support.',\n\n FRAUD_DETECTED: {\n CODE: 'FRAUD_DETECTED',\n DEFAULT_COMPONENT: 'fraud-detector',\n USER_MESSAGE: 'This transaction appears to be suspicious and has been blocked for your safety.',\n RISK_THRESHOLDS: {\n HIGH: 70,\n CRITICAL: 90,\n },\n },\n};\n","/**\n * Event System Constants\n * Centralized constants for event emitter, handlers, and system-level configurations.\n */\n\n// Numeric Constants\nexport const DEFAULT_PAYEMNT_PRIORITY = 1;\nexport const DEFAULT_URGENT = 0;\nexport const DEFAULT_MAX_LISTENERS = 10;\nexport const DEFAULT_HANDLER_TIMEOUT_MS = 10000;\nexport const DEFAULT_EVENT_COUNT = 0;\n\n// Success Thresholds\nexport const DEFAULT_SUCCESS_THRESHOLD = 1.0; // 100% handlers succeeded\nexport const DEFAULT_PARTIAL_SUCCESS_THRESHOLD = 0.9; // 90% handlers succeeded\n\n// Default Values\nexport const EVENT_DEFAULTS = {\n PRIORITY: DEFAULT_PAYEMNT_PRIORITY,\n URGENT: DEFAULT_URGENT,\n MAX_LISTENERS: DEFAULT_MAX_LISTENERS,\n HANDLER_TIMEOUT_MS: DEFAULT_HANDLER_TIMEOUT_MS,\n SUCCESS_THRESHOLD: DEFAULT_SUCCESS_THRESHOLD,\n PARTIAL_SUCCESS_THRESHOLD: DEFAULT_PARTIAL_SUCCESS_THRESHOLD,\n EVENT_COUNT: DEFAULT_EVENT_COUNT,\n};\n\n// Component Names\nexport const EVENT_COMPONENT = {\n EMITTER: 'event-emitter',\n PAYMENT_GATEWAY: 'payment-gateway',\n SUBSCRIPTION_MANAGER: 'subscription-manager',\n PROVIDER_ADAPTER: 'provider-adapter',\n} as const;\n\n// Error Codes\nexport const EVENT_ERROR_CODE = {\n HANDLER_FAILED: 'HANDLER_FAILED',\n HANDLER_CRASHED: 'HANDLER_CRASHED',\n HANDLER_TIMEOUT: 'HANDLER_TIMEOUT',\n} as const;\n\n// Error Messages\nexport const EVENT_ERROR_MESSAGE = {\n HANDLER_FAILED: 'Handler execution failed',\n HANDLER_TIMEOUT: 'Handler execution timed out',\n};\n\n// Environment\nexport const EVENT_ENVIRONMENT = {\n DEVELOPMENT: 'development',\n PRODUCTION: 'production',\n TEST: 'test',\n} as const;\n\n//Event Phases\nexport const PHASE_NONE = 0;\nexport const PHASE_CAPTURING = 1;\nexport const PHASE_AT_TARGET = 2;\nexport const PHASE_BUBBLING = 3;\n\nexport const EVENT_PHASE = {\n NONE: PHASE_NONE,\n CAPTURING_PHASE: PHASE_CAPTURING,\n AT_TARGET: PHASE_AT_TARGET,\n BUBBLING_PHASE: PHASE_BUBBLING,\n} as const;\n\n// Event Meta Keys\nexport const EVENT_META_KEY = {\n PRIORITY: 'priority',\n URGENT: 'urgent',\n CATEGORY: 'category',\n TAGS: 'tags',\n SOURCE: 'source',\n} as const;\n\n// Event Source Fields\nexport const EVENT_SOURCE_FIELD = {\n COMPONENT: 'component',\n ENVIRONMENT: 'environment',\n} as const;\n\n// Event Result Status\nexport const EVENT_RESULT_STATUS = {\n ERROR: 'error',\n INFO: 'info',\n WARNING: 'warning',\n CRITICAL: 'critical',\n} as const;\n\n// Utils\nexport const EmptyArray = <T = unknown>(): T[] => [];\nexport const CurrentTimestamp = (): number => Date.now();\n\n/**\n * Enum representing the state of a Promise.\n */\nexport const SETTLED_PROMISE_STATUS = {\n FULFILLED: 'fulfilled',\n REJECTED: 'rejected',\n} as const;\n\nexport const EVENT_NORMALIZER_MESSAGES = {\n NORMALIZATION_FAILED: 'Event normalization failed.',\n MAPPING_MISSING: 'No mapping configuration found for provider.',\n MAPPING_RETRIEVE_FAILED: 'Failed to retrieve provider mapping.',\n BUILD_NORMALIZED_DATA_FAILED: 'Failed to build normalized payment data.',\n BUILD_UNIFIED_EVENT_FAILED: 'Failed to build unified event.',\n EVENT_TYPE_MAPPING_FAILED: 'Event type mapping failed.',\n STATUS_MAPPING_FAILED: 'Status mapping failed.',\n PAYLOAD_EXTRACTION_FAILED: 'Payload extraction failed.',\n requiredFileMissing: (field: string): string => `Required field \"${field}\" is missing.`,\n} as const;\n","export const DEFAULT_RETRY_DELAY_MS = 1000;\nexport const MAX_CIRCUIT_OPEN_MS = 60_000;\nexport const DEFAULT_CIRCUIT_BREAKER_FAILURE_THRESHOLD = 3;\n\nexport const FALLBACK_REASON = {\n NO_PROVIDER: 'NO_PROVIDER_SELECTED',\n PROVIDER_FAILURE: 'PROVIDER_FAILURE',\n CIRCUIT_OPEN: 'CIRCUIT_OPEN',\n UNKNOWN_ERROR: 'UNKNOWN_ERROR',\n};\n\nexport const FALLBACK_NEXT_STEPS = {\n USER_ACTION: 'contact_support',\n SYSTEM_ACTION: 'manual_review',\n} as const;\n\n/** Risk levels */\nexport const RISK_LEVEL = {\n LOW: 'low',\n MEDIUM: 'medium',\n HIGH: 'high',\n} as const;\n\n/** Security flags */\nexport const SECURITY_FLAGS = {\n FALLBACK_USED: 'fallback_used',\n} as const;\n\n/** Allowed operators for custom rules */\nexport enum CUSTOM_RULE_OPERATER {\n ASSIGNMENT = 'assignment',\n LOGICAL = 'logical',\n COMPARISON = 'comparison',\n ARITHMETIC = 'arithmetic',\n CONDITIONAL = 'conditional',\n CONCATENATE = 'concatenate',\n}\n\nexport const PAYMENT_GATEWAY_ERROR_MESSAGE = {\n // General\n INITIAL_PAYMENT_ATTEMPT: 'Initial payment attempt.',\n PAYMENT_OPERATION_FAILED: 'Payment operation failed.',\n NON_PAYMENT_OPERATION_FAILED: 'Non-payment operation failed.',\n ADAPTER_NOT_FOUND: 'Adapter not found for provider:',\n NO_VALID_ADAPTER: 'No valid provider adapter found.',\n UNSUPPORTED_FEATURE: 'Requested feature is not supported by the provider.',\n UNKNOWN_PROVIDER: 'Unknown payment provider specified.',\n UNKNOWN_ERROR: 'An unknown error occurred during payment processing.',\n\n // Idempotency / concurrency\n DUPLICATE_PAYMENT_IN_PROGRESS: 'A payment with this idempotency key is already in progress.',\n DUPLICATE_REFUND_IN_PROGRESS: 'A refund for this transaction is already in progress.',\n\n // Validation\n MISSING_TRANSACTION_ID: 'Transaction ID is required for refund operation.',\n INVALID_PAYMENT_REQUEST: 'Invalid payment request payload.',\n INVALID_PROVIDER_CONFIGURATION: 'Invalid or missing provider configuration.',\n\n // Operations\n CAPTURE_PAYMENT_FAILED: 'Capture payment operation failed.',\n CANCEL_PAYMENT_FAILED: 'Cancel payment operation failed.',\n PROCESS_REFUND_FAILED: 'Refund operation failed.',\n GET_REFUND_STATUS_FAILED: 'Failed to retrieve refund status.',\n GET_PAYMENT_STATUS_FAILED: 'Failed to retrieve payment status.',\n GET_TRANSACTION_FAILED: 'Failed to retrieve transaction details.',\n CREATE_CUSTOMER_UNSUPPORTED: 'Create customer not supported by this provider.',\n SAVE_PAYMENT_METHOD_UNSUPPORTED: 'Save payment method not supported by this provider.',\n DELETE_PAYMENT_METHOD_UNSUPPORTED: 'Delete payment method not supported by this provider.',\n GET_USER_PAYMENT_METHODS_UNSUPPORTED: 'Get user payment methods not supported by this provider.',\n CREATE_SUBSCRIPTION_UNSUPPORTED: 'Create subscription not supported by this provider.',\n CANCEL_SUBSCRIPTION_UNSUPPORTED: 'Cancel subscription not supported by this provider.',\n PROCESS_PAYOUT_UNSUPPORTED: 'Payout not supported by this provider.',\n GET_TRANSACTION_HISTORY_UNSUPPORTED: 'Transaction history not supported by this provider.',\n\n // Gateway internal\n IDEMPOTENCY_LOCK_FAILED: 'Another operation with the same key is currently being processed.',\n FALLBACK_HANDLER_ERROR: 'An error occurred while executing fallback handling.',\n ROUTER_RESOLUTION_FAILED: 'Failed to resolve provider adapter route.',\n} as const;\n","export const STRIPE_API_VERSION = '2022-11-15';\nexport const STRIPE_MAPPING_VERSION = 'v1.0.0';\nexport const ZERO_AMOUNT = 0;\nexport const DEFAULT_PROCESSING_RATE = 0.029;\nexport const DEFAULT_PLATFORM_RATE = 0;\nexport const DEFAULT_CROSS_BORDER_RATE = 0.01;\nexport const DEFAULT_PRIORITY = 100;\n\nexport const FIXED_FEES = {\n CREDIT_CARD: 30,\n BANK_TRANSFER: 500,\n BOLETO_BANCARIO: 200,\n SEPA_DIRECT_DEBIT: 50,\n IDEAL_BANK: 50,\n} as const;\n\nexport const NEXT_STEP_EXPECTED_UPDATE_IN = {\n REDIRECT: 10,\n} as const;\n\n// Stripe mapping priorities & confidence\nexport const STRIPE_CONFIDENCE_HIGH = 1;\nexport const STRIPE_PRIORITY_HIGH = 100;\nexport const STRIPE_CONFIDENCE_MEDIUM = 0.9;\nexport const STRIPE_PRIORITY_MEDIUM = 80;\n\n// Display formatting\nexport const AMOUNT_DECIMALS = 2;\nexport const AMOUNT_DIVISOR = 100;\n\n// Timestamp conversion\nexport const UNIX_TIMESTAMP_MULTIPLIER = 1000;\n\n// Timestamps & limits\nexport const TIMESTAMP_FALLBACK = 0;\n\n/** Actions a user should take next in the payment flow */\nexport const NEXT_STEP_USER_ACTION = {\n REDIRECT: 'redirect',\n WAIT: 'wait',\n RETRY: 'retry',\n CONTACT_SUPPORT: 'contact_support',\n} as const;\n\n/** Actions the system should take next in the payment flow */\nexport const NEXT_STEP_SYSTEM_ACTION = {\n WEBHOOK_PENDING: 'webhook_pending',\n MANUAL_REVIEW: 'manual_review',\n AUTO_RETRY: 'auto_retry',\n} as const;\n\n/** Stripe provider event types for mapping */\nexport const STRIPE_EVENT_TYPE = {\n // Payment lifecycle\n PAYMENT_INTENT_CREATED: 'payment_intent.created',\n PAYMENT_INTENT_PROCESSING: 'payment_intent.processing',\n PAYMENT_INTENT_REQUIRES_ACTION: 'payment_intent.requires_action',\n PAYMENT_INTENT_SUCCEEDED: 'payment_intent.succeeded',\n PAYMENT_INTENT_FAILED: 'payment_intent.payment_failed',\n PAYMENT_INTENT_CANCELED: 'payment_intent.canceled',\n PAYMENT_INTENT_EXPIRED: 'payment_intent.expired',\n PAYMENT_INTENT_AUTHORIZED: 'payment_intent.authorized',\n PAYMENT_INTENT_CAPTURED: 'payment_intent.captured',\n PAYMENT_INTENT_HELD: 'payment_intent.held',\n PAYMENT_INTENT_RELEASED: 'payment_intent.released',\n\n // Refunds\n CHARGE_REFUND_CREATED: 'charge.refund.created',\n REFUND_UPDATED: 'refund.updated',\n CHARGE_REFUND_SUCCEEDED: 'charge.refund.succeeded',\n CHARGE_REFUND_FAILED: 'charge.refund.failed',\n CHARGE_REFUND_CANCELED: 'charge.refund.canceled',\n\n // Disputes / chargebacks\n CHARGE_DISPUTE_CREATED: 'charge.dispute.created',\n CHARGE_DISPUTE_UPDATED: 'charge.dispute.updated',\n CHARGE_DISPUTE_CLOSED: 'charge.dispute.closed',\n CHARGEBACK_RECEIVED: 'chargeback.received',\n CHARGEBACK_RESPONDED: 'chargeback.responded',\n CHARGE_DISPUTE_WON: 'charge.dispute.won',\n CHARGE_DISPUTE_LOST: 'charge.dispute.lost',\n\n // Payment methods\n PAYMENT_METHOD_ATTACHED: 'payment_method.attached',\n PAYMENT_METHOD_UPDATED: 'payment_method.updated',\n PAYMENT_METHOD_DETACHED: 'payment_method.detached',\n PAYMENT_METHOD_EXPIRED: 'payment_method.expired',\n\n // Subscriptions\n SUBSCRIPTION_CREATED: 'customer.subscription.created',\n SUBSCRIPTION_UPDATED: 'customer.subscription.updated',\n SUBSCRIPTION_DELETED: 'customer.subscription.deleted',\n\n // Invoice events\n INVOICE_PAYMENT_SUCCEEDED: 'invoice.payment_succeeded',\n INVOICE_PAYMENT_FAILED: 'invoice.payment_failed',\n} as const;\n\n/** Default processing time estimate */\nexport const DEFAULT_PROCESSING_TIME = {\n minimumMinutes: 5,\n maximumMinutes: 120,\n typicalMinutes: 30,\n factors: ['default estimate'],\n};\n\n/** Default settlement time estimate */\nexport const DEFAULT_SETTLEMENT_TIME = {\n minimumDays: 1,\n maximumDays: 5,\n typicalDays: 3,\n affectedByHolidays: true,\n};\nexport const STRIPE_PAYMENT_INTENT_STATUS = {\n SUCCEEDED: 'succeeded',\n PROCESSING: 'processing',\n REQUIRES_ACTION: 'requires_action',\n REQUIRES_CONFIRMATION: 'requires_confirmation',\n REQUIRES_PAYMENT_METHOD: 'requires_payment_method',\n CANCELED: 'canceled',\n FAILED: 'failed',\n DECLINED: 'declined',\n EXPIRED: 'expired',\n AUTHORIZED: 'authorized',\n CAPTURED: 'captured',\n HELD: 'held',\n REFUNDED: 'refunded',\n PARTIALLY_REFUNDED: 'partially_refunded',\n DISPUTED: 'disputed',\n CHARGEBACK: 'chargeback',\n CHARGEBACK_RESOLVED: 'chargeback_resolved',\n} as const;\n\nexport const STRIPE_DATA_PATHS = {\n TRANSACTION_ID: 'data.object.id',\n AMOUNT: 'data.object.amount',\n CURRENCY: 'data.object.currency',\n STATUS: 'data.object.status',\n PAYMENT_METHOD: 'data.object.payment_method',\n METADATA: 'data.object.metadata',\n};\n\nexport const PAYMENT_OPERATION = {\n INITIALIZE: 'initialize',\n CREATE_PAYMENT: 'createPayment',\n CAPTURE_PAYMENT: 'capturePayment',\n CANCEL_PAYMENT: 'cancelPayment',\n PROCESS_REFUND: 'processRefund',\n GET_REFUND_STATUS: 'getRefundStatus',\n GET_PAYMENT_STATUS: 'getPaymentStatus',\n PROCESS_WEBHOOK: 'processWebhook',\n VERIFY_WEBHOOK_SIGNATURE: 'verifyWebhookSignature',\n CALCULATE_FEES: 'calculateFees',\n GET_FEE_STRUCTURE: 'getFeeStructure',\n GET_TRANSACTION: 'getTransaction',\n WEBHOOK_PROCESS: 'webhookProcess',\n} as const;\n\nexport const STRIPE_MESSAGES = {\n MISSING_API_KEY: 'Missing Stripe API key',\n UNKNOWN_EVENT: 'unknown',\n MISSING_EVENT: 'missing',\n INIT_FAILED: 'Stripe SDK initialization failed',\n CREATE_PAYMENT_FAILED: 'Failed to create payment intent',\n CAPTURE_PAYMENT_FAILED: 'Failed to capture payment',\n CANCEL_PAYMENT_FAILED: 'Failed to cancel payment',\n REFUND_FAILED: 'Failed to process refund',\n REFUND_STATUS_FAILED: 'Failed to retrieve refund status',\n GET_PAYMENT_STATUS_FAILED: 'Failed to retrieve payment status',\n PROCESS_WEBHOOK_FAILED: 'Failed to process webhook',\n VERIFY_WEBHOOK_FAILED: 'Failed to verify webhook signature',\n CALCULATE_FEES_FAILED: 'Failed to calculate fees',\n GET_FEE_STRUCTURE_FAILED: 'Failed to get fee structure',\n GET_TRANSACTION_FAILED: 'Failed to retrieve transaction details',\n} as const;\n","/**\n * Currency Code Constants\n *\n * ISO 4217 currency codes for international currencies.\n *\n * @module locale/currencies\n */\n\n/**\n * Common currency codes (ISO 4217)\n */\nexport const CURRENCY_CODES = {\n // Major currencies\n USD: 'USD', // US Dollar\n EUR: 'EUR', // Euro\n GBP: 'GBP', // British Pound Sterling\n JPY: 'JPY', // Japanese Yen\n CHF: 'CHF', // Swiss Franc\n CAD: 'CAD', // Canadian Dollar\n AUD: 'AUD', // Australian Dollar\n CNY: 'CNY', // Chinese Yuan Renminbi\n\n // Asian currencies\n INR: 'INR', // Indian Rupee\n KRW: 'KRW', // South Korean Won\n SGD: 'SGD', // Singapore Dollar\n HKD: 'HKD', // Hong Kong Dollar\n TWD: 'TWD', // Taiwan New Dollar\n THB: 'THB', // Thai Baht\n IDR: 'IDR', // Indonesian Rupiah\n MYR: 'MYR', // Malaysian Ringgit\n PHP: 'PHP', // Philippine Peso\n VND: 'VND', // Vietnamese Dong\n BDT: 'BDT', // Bangladeshi Taka\n PKR: 'PKR', // Pakistani Rupee\n LKR: 'LKR', // Sri Lankan Rupee\n\n // European currencies\n SEK: 'SEK', // Swedish Krona\n NOK: 'NOK', // Norwegian Krone\n DKK: 'DKK', // Danish Krone\n PLN: 'PLN', // Polish Zloty\n CZK: 'CZK', // Czech Koruna\n HUF: 'HUF', // Hungarian Forint\n RON: 'RON', // Romanian Leu\n BGN: 'BGN', // Bulgarian Lev\n HRK: 'HRK', // Croatian Kuna\n RSD: 'RSD', // Serbian Dinar\n ISK: 'ISK', // Icelandic Króna\n\n // Americas currencies\n BRL: 'BRL', // Brazilian Real\n MXN: 'MXN', // Mexican Peso\n ARS: 'ARS', // Argentine Peso\n CLP: 'CLP', // Chilean Peso\n COP: 'COP', // Colombian Peso\n PEN: 'PEN', // Peruvian Sol\n UYU: 'UYU', // Uruguayan Peso\n VES: 'VES', // Venezuelan Bolívar\n BOB: 'BOB', // Bolivian Boliviano\n PYG: 'PYG', // Paraguayan Guarani\n CRC: 'CRC', // Costa Rican Colón\n GTQ: 'GTQ', // Guatemalan Quetzal\n HNL: 'HNL', // Honduran Lempira\n NIO: 'NIO', // Nicaraguan Córdoba\n PAB: 'PAB', // Panamanian Balboa\n DOP: 'DOP', // Dominican Peso\n JMD: 'JMD', // Jamaican Dollar\n TTD: 'TTD', // Trinidad and Tobago Dollar\n BBD: 'BBD', // Barbadian Dollar\n\n // Middle Eastern currencies\n AED: 'AED', // UAE Dirham\n SAR: 'SAR', // Saudi Riyal\n QAR: 'QAR', // Qatari Riyal\n KWD: 'KWD', // Kuwaiti Dinar\n BHD: 'BHD', // Bahraini Dinar\n OMR: 'OMR', // Omani Rial\n JOD: 'JOD', // Jordanian Dinar\n ILS: 'ILS', // Israeli New Shekel\n TRY: 'TRY', // Turkish Lira\n IQD: 'IQD', // Iraqi Dinar\n IRR: 'IRR', // Iranian Rial\n LBP: 'LBP', // Lebanese Pound\n SYP: 'SYP', // Syrian Pound\n\n // African currencies\n ZAR: 'ZAR', // South African Rand\n NGN: 'NGN', // Nigerian Naira\n EGP: 'EGP', // Egyptian Pound\n KES: 'KES', // Kenyan Shilling\n GHS: 'GHS', // Ghanaian Cedi\n MAD: 'MAD', // Moroccan Dirham\n TND: 'TND', // Tunisian Dinar\n DZD: 'DZD', // Algerian Dinar\n ETB: 'ETB', // Ethiopian Birr\n TZS: 'TZS', // Tanzanian Shilling\n UGX: 'UGX', // Ugandan Shilling\n ZMW: 'ZMW', // Zambian Kwacha\n BWP: 'BWP', // Botswana Pula\n MUR: 'MUR', // Mauritian Rupee\n\n // Pacific currencies\n NZD: 'NZD', // New Zealand Dollar\n FJD: 'FJD', // Fijian Dollar\n PGK: 'PGK', // Papua New Guinean Kina\n\n // Former Soviet Union currencies\n RUB: 'RUB', // Russian Ruble\n UAH: 'UAH', // Ukrainian Hryvnia\n BYN: 'BYN', // Belarusian Ruble\n KZT: 'KZT', // Kazakhstani Tenge\n UZS: 'UZS', // Uzbekistani Som\n AZN: 'AZN', // Azerbaijani Manat\n GEL: 'GEL', // Georgian Lari\n AMD: 'AMD', // Armenian Dram\n\n // Cryptocurrency representations (unofficial)\n BTC: 'BTC', // Bitcoin\n ETH: 'ETH', // Ethereum\n USDT: 'USDT', // Tether\n USDC: 'USDC', // USD Coin\n} as const;\n\n/**\n * Currency metadata\n */\nexport const CURRENCY_INFO = {\n /**\n * Currencies with no decimal places\n */\n NO_DECIMAL_CURRENCIES: ['JPY', 'KRW', 'VND', 'IDR', 'CLP', 'ISK', 'TWD'],\n\n /**\n * Currencies with 3 decimal places\n */\n THREE_DECIMAL_CURRENCIES: ['BHD', 'IQD', 'JOD', 'KWD', 'OMR', 'TND'],\n\n /**\n * Major reserve currencies\n */\n RESERVE_CURRENCIES: ['USD', 'EUR', 'GBP', 'JPY', 'CNY'],\n\n /**\n * G7 currencies\n */\n G7_CURRENCIES: ['USD', 'EUR', 'GBP', 'JPY', 'CAD'],\n\n /**\n * Default decimal places for most currencies\n */\n DEFAULT_DECIMAL_PLACES: 2,\n} as const;\n\n/**\n * Type exports\n */\nexport type CurrencyCode = (typeof CURRENCY_CODES)[keyof typeof CURRENCY_CODES];\nexport type CurrencyInfo = (typeof CURRENCY_INFO)[keyof typeof CURRENCY_INFO];\n","/**\n * Country Constants\n *\n * ISO 3166-1 country codes and related data.\n *\n * @module locale/countries\n */\n\n/**\n * Common country codes (ISO 3166-1 alpha-2)\n */\nexport const COUNTRY_CODES = {\n // Americas\n US: 'US', // United States\n CA: 'CA', // Canada\n MX: 'MX', // Mexico\n BR: 'BR', // Brazil\n AR: 'AR', // Argentina\n CL: 'CL', // Chile\n CO: 'CO', // Colombia\n PE: 'PE', // Peru\n VE: 'VE', // Venezuela\n EC: 'EC', // Ecuador\n BO: 'BO', // Bolivia\n PY: 'PY', // Paraguay\n UY: 'UY', // Uruguay\n GY: 'GY', // Guyana\n SR: 'SR', // Suriname\n GF: 'GF', // French Guiana\n FK: 'FK', // Falkland Islands\n\n // Caribbean\n CU: 'CU', // Cuba\n DO: 'DO', // Dominican Republic\n HT: 'HT', // Haiti\n JM: 'JM', // Jamaica\n TT: 'TT', // Trinidad and Tobago\n BB: 'BB', // Barbados\n BS: 'BS', // Bahamas\n PR: 'PR', // Puerto Rico\n\n // Central America\n GT: 'GT', // Guatemala\n HN: 'HN', // Honduras\n SV: 'SV', // El Salvador\n NI: 'NI', // Nicaragua\n CR: 'CR', // Costa Rica\n PA: 'PA', // Panama\n BZ: 'BZ', // Belize\n\n // Europe\n GB: 'GB', // United Kingdom\n FR: 'FR', // France\n DE: 'DE', // Germany\n IT: 'IT', // Italy\n ES: 'ES', // Spain\n PT: 'PT', // Portugal\n NL: 'NL', // Netherlands\n BE: 'BE', // Belgium\n LU: 'LU', // Luxembourg\n CH: 'CH', // Switzerland\n AT: 'AT', // Austria\n IE: 'IE', // Ireland\n DK: 'DK', // Denmark\n SE: 'SE', // Sweden\n NO: 'NO', // Norway\n FI: 'FI', // Finland\n IS: 'IS', // Iceland\n PL: 'PL', // Poland\n CZ: 'CZ', // Czech Republic\n SK: 'SK', // Slovakia\n HU: 'HU', // Hungary\n RO: 'RO', // Romania\n BG: 'BG', // Bulgaria\n GR: 'GR', // Greece\n HR: 'HR', // Croatia\n SI: 'SI', // Slovenia\n RS: 'RS', // Serbia\n BA: 'BA', // Bosnia and Herzegovina\n ME: 'ME', // Montenegro\n MK: 'MK', // North Macedonia\n AL: 'AL', // Albania\n XK: 'XK', // Kosovo\n EE: 'EE', // Estonia\n LV: 'LV', // Latvia\n LT: 'LT', // Lithuania\n BY: 'BY', // Belarus\n UA: 'UA', // Ukraine\n MD: 'MD', // Moldova\n RU: 'RU', // Russia\n CY: 'CY', // Cyprus\n MT: 'MT', // Malta\n AD: 'AD', // Andorra\n MC: 'MC', // Monaco\n SM: 'SM', // San Marino\n VA: 'VA', // Vatican City\n LI: 'LI', // Liechtenstein\n\n // Asia\n CN: 'CN', // China\n JP: 'JP', // Japan\n KR: 'KR', // South Korea\n KP: 'KP', // North Korea\n TW: 'TW', // Taiwan\n HK: 'HK', // Hong Kong\n MO: 'MO', // Macao\n IN: 'IN', // India\n PK: 'PK', // Pakistan\n BD: 'BD', // Bangladesh\n LK: 'LK', // Sri Lanka\n NP: 'NP', // Nepal\n BT: 'BT', // Bhutan\n MV: 'MV', // Maldives\n AF: 'AF', // Afghanistan\n TH: 'TH', // Thailand\n VN: 'VN', // Vietnam\n MY: 'MY', // Malaysia\n SG: 'SG', // Singapore\n ID: 'ID', // Indonesia\n PH: 'PH', // Philippines\n BN: 'BN', // Brunei\n KH: 'KH', // Cambodia\n LA: 'LA', // Laos\n MM: 'MM', // Myanmar\n TL: 'TL', // Timor-Leste\n MN: 'MN', // Mongolia\n KZ: 'KZ', // Kazakhstan\n UZ: 'UZ', // Uzbekistan\n TJ: 'TJ', // Tajikistan\n KG: 'KG', // Kyrgyzstan\n TM: 'TM', // Turkmenistan\n AZ: 'AZ', // Azerbaijan\n GE: 'GE', // Georgia\n AM: 'AM', // Armenia\n\n // Middle East\n SA: 'SA', // Saudi Arabia\n AE: 'AE', // United Arab Emirates\n QA: 'QA', // Qatar\n KW: 'KW', // Kuwait\n BH: 'BH', // Bahrain\n OM: 'OM', // Oman\n YE: 'YE', // Yemen\n JO: 'JO', // Jordan\n LB: 'LB', // Lebanon\n SY: 'SY', // Syria\n IQ: 'IQ', // Iraq\n IR: 'IR', // Iran\n IL: 'IL', // Israel\n PS: 'PS', // Palestine\n TR: 'TR', // Turkey\n\n // Africa\n EG: 'EG', // Egypt\n LY: 'LY', // Libya\n TN: 'TN', // Tunisia\n DZ: 'DZ', // Algeria\n MA: 'MA', // Morocco\n EH: 'EH', // Western Sahara\n MR: 'MR', // Mauritania\n ML: 'ML', // Mali\n NE: 'NE', // Niger\n TD: 'TD', // Chad\n SD: 'SD', // Sudan\n SS: 'SS', // South Sudan\n ER: 'ER', // Eritrea\n DJ: 'DJ', // Djibouti\n SO: 'SO', // Somalia\n ET: 'ET', // Ethiopia\n KE: 'KE', // Kenya\n UG: 'UG', // Uganda\n RW: 'RW', // Rwanda\n BI: 'BI', // Burundi\n TZ: 'TZ', // Tanzania\n MZ: 'MZ', // Mozambique\n MW: 'MW', // Malawi\n ZM: 'ZM', // Zambia\n ZW: 'ZW', // Zimbabwe\n BW: 'BW', // Botswana\n NA: 'NA', // Namibia\n ZA: 'ZA', // South Africa\n LS: 'LS', // Lesotho\n SZ: 'SZ', // Eswatini\n AO: 'AO', // Angola\n CD: 'CD', // Democratic Republic of the Congo\n CG: 'CG', // Republic of the Congo\n GA: 'GA', // Gabon\n GQ: 'GQ', // Equatorial Guinea\n CM: 'CM', // Cameroon\n CF: 'CF', // Central African Republic\n NG: 'NG', // Nigeria\n BJ: 'BJ', // Benin\n TG: 'TG', // Togo\n GH: 'GH', // Ghana\n BF: 'BF', // Burkina Faso\n CI: 'CI', // Côte d'Ivoire\n LR: 'LR', // Liberia\n SL: 'SL', // Sierra Leone\n GN: 'GN', // Guinea\n GW: 'GW', // Guinea-Bissau\n SN: 'SN', // Senegal\n GM: 'GM', // Gambia\n CV: 'CV', // Cape Verde\n ST: 'ST', // São Tomé and Príncipe\n MG: 'MG', // Madagascar\n MU: 'MU', // Mauritius\n SC: 'SC', // Seychelles\n KM: 'KM', // Comoros\n RE: 'RE', // Réunion\n\n // Oceania\n AU: 'AU', // Australia\n NZ: 'NZ', // New Zealand\n PG: 'PG', // Papua New Guinea\n FJ: 'FJ', // Fiji\n SB: 'SB', // Solomon Islands\n VU: 'VU', // Vanuatu\n NC: 'NC', // New Caledonia\n PF: 'PF', // French Polynesia\n WS: 'WS', // Samoa\n TO: 'TO', // Tonga\n TV: 'TV', // Tuvalu\n NR: 'NR', // Nauru\n KI: 'KI', // Kiribati\n PW: 'PW', // Palau\n MH: 'MH', // Marshall Islands\n FM: 'FM', // Micronesia\n GU: 'GU', // Guam\n MP: 'MP', // Northern Mariana Islands\n AS: 'AS', // American Samoa\n CK: 'CK', // Cook Islands\n NU: 'NU', // Niue\n TK: 'TK', // Tokelau\n WF: 'WF', // Wallis and Futuna\n PN: 'PN', // Pitcairn Islands\n\n // Antarctica\n AQ: 'AQ', // Antarctica\n} as const;\n\n/**\n * Country calling codes\n */\nexport const COUNTRY_CALLING_CODES = {\n /**\n * United States and Canada\n */\n '+1': ['US', 'CA'],\n /**\n * Egypt\n */\n '+20': ['EG'],\n /**\n * South Africa\n */\n '+27': ['ZA'],\n /**\n * Greece\n */\n '+30': ['GR'],\n /**\n * Netherlands\n */\n '+31': ['NL'],\n /**\n * Belgium\n */\n '+32': ['BE'],\n /**\n * France\n */\n '+33': ['FR'],\n /**\n * Spain\n */\n '+34': ['ES'],\n /**\n * Hungary\n */\n '+36': ['HU'],\n /**\n * Italy\n */\n '+39': ['IT'],\n /**\n * Romania\n */\n '+40': ['RO'],\n /**\n * Switzerland\n */\n '+41': ['CH'],\n /**\n * Austria\n */\n '+43': ['AT'],\n /**\n * United Kingdom\n */\n '+44': ['GB'],\n /**\n * Denmark\n */\n '+45': ['DK'],\n /**\n * Sweden\n */\n '+46': ['SE'],\n /**\n * Norway\n */\n '+47': ['NO'],\n /**\n * Poland\n */\n '+48': ['PL'],\n /**\n * Germany\n */\n '+49': ['DE'],\n /**\n * Peru\n */\n '+51': ['PE'],\n /**\n * Mexico\n */\n '+52': ['MX'],\n /**\n * Cuba\n */\n '+53': ['CU'],\n /**\n * Argentina\n */\n '+54': ['AR'],\n /**\n * Brazil\n */\n '+55': ['BR'],\n /**\n * Chile\n */\n '+56': ['CL'],\n /**\n * Colombia\n */\n '+57': ['CO'],\n /**\n * Venezuela\n */\n '+58': ['VE'],\n /**\n * Malaysia\n */\n '+60': ['MY'],\n /**\n * Australia\n */\n '+61': ['AU'],\n /**\n * Indonesia\n */\n '+62': ['ID'],\n /**\n * Philippines\n */\n '+63': ['PH'],\n /**\n * New Zealand\n */\n '+64': ['NZ'],\n /**\n * Singapore\n */\n '+65': ['SG'],\n /**\n * Thailand\n */\n '+66': ['TH'],\n /**\n * Russia and Kazakhstan\n */\n '+7': ['RU', 'KZ'],\n /**\n * Japan\n */\n '+81': ['JP'],\n /**\n * South Korea\n */\n '+82': ['KR'],\n /**\n * Vietnam\n */\n '+84': ['VN'],\n /**\n * China\n */\n '+86': ['CN'],\n /**\n * Turkey\n */\n '+90': ['TR'],\n /**\n * India\n */\n '+91': ['IN'],\n /**\n * Pakistan\n */\n '+92': ['PK'],\n /**\n * Afghanistan\n */\n '+93': ['AF'],\n /**\n * Sri Lanka\n */\n '+94': ['LK'],\n /**\n * Myanmar\n */\n '+95': ['MM'],\n /**\n * Iran\n */\n '+98': ['IR'],\n /**\n * Morocco\n */\n '+212': ['MA'],\n /**\n * Algeria\n */\n '+213': ['DZ'],\n /**\n * Tunisia\n */\n '+216': ['TN'],\n /**\n * Libya\n */\n '+218': ['LY'],\n /**\n * Gambia\n */\n '+220': ['GM'],\n /**\n * Senegal\n */\n '+221': ['SN'],\n /**\n * Mali\n */\n '+223': ['ML'],\n /**\n * Guinea\n */\n '+224': ['GN'],\n /**\n * Côte d'Ivoire\n */\n '+225': ['CI'],\n /**\n * Burkina Faso\n */\n '+226': ['BF'],\n /**\n * Niger\n */\n '+227': ['NE'],\n /**\n * Togo\n */\n '+228': ['TG'],\n /**\n * Benin\n */\n '+229': ['BJ'],\n /**\n * Mauritius\n */\n '+230': ['MU'],\n /**\n * Liberia\n */\n '+231': ['LR'],\n /**\n * Sierra Leone\n */\n '+232': ['SL'],\n /**\n * Ghana\n */\n '+233': ['GH'],\n /**\n * Nigeria\n */\n '+234': ['NG'],\n /**\n * Chad\n */\n '+235': ['TD'],\n /**\n * Central African Republic\n */\n '+236': ['CF'],\n /**\n * Cameroon\n */\n '+237': ['CM'],\n /**\n * Cape Verde\n */\n '+238': ['CV'],\n /**\n * São Tomé and Príncipe\n */\n '+239': ['ST'],\n /**\n * Equatorial Guinea\n */\n '+240': ['GQ'],\n /**\n * Gabon\n */\n '+241': ['GA'],\n /**\n * Congo\n */\n '+242': ['CG'],\n /**\n * Democratic Republic of the Congo\n */\n '+243': ['CD'],\n /**\n * Angola\n */\n '+244': ['AO'],\n /**\n * Guinea-Bissau\n */\n '+245': ['GW'],\n /**\n * Kenya\n */\n '+254': ['KE'],\n /**\n * Tanzania\n */\n '+255': ['TZ'],\n /**\n * Uganda\n */\n '+256': ['UG'],\n /**\n * Burundi\n */\n '+257': ['BI'],\n /**\n * Mozambique\n */\n '+258': ['MZ'],\n /**\n * Zambia\n */\n '+260': ['ZM'],\n /**\n * Madagascar\n */\n '+261': ['MG'],\n /**\n * Zimbabwe\n */\n '+263': ['ZW'],\n /**\n * Namibia\n */\n '+264': ['NA'],\n /**\n * Malawi\n */\n '+265': ['MW'],\n /**\n * Lesotho\n */\n '+266': ['LS'],\n /**\n * Botswana\n */\n '+267': ['BW'],\n /**\n * Eswatini\n */\n '+268': ['SZ'],\n /**\n * Seychelles\n */\n '+248': ['SC'],\n /**\n * Rwanda\n */\n '+250': ['RW'],\n /**\n * Ethiopia\n */\n '+251': ['ET'],\n /**\n * Somalia\n */\n '+252': ['SO'],\n /**\n * Djibouti\n */\n '+253': ['DJ'],\n /**\n * Hong Kong\n */\n '+852': ['HK'],\n /**\n * Macao\n */\n '+853': ['MO'],\n /**\n * Bangladesh\n */\n '+880': ['BD'],\n /**\n * Taiwan\n */\n '+886': ['TW'],\n /**\n * Maldives\n */\n '+960': ['MV'],\n /**\n * Lebanon\n */\n '+961': ['LB'],\n /**\n * Jordan\n */\n '+962': ['JO'],\n /**\n * Syria\n */\n '+963': ['SY'],\n /**\n * Iraq\n */\n '+964': ['IQ'],\n /**\n * Kuwait\n */\n '+965': ['KW'],\n /**\n * Saudi Arabia\n */\n '+966': ['SA'],\n /**\n * Yemen\n */\n '+967': ['YE'],\n /**\n * Oman\n */\n '+968': ['OM'],\n /**\n * Palestine\n */\n '+970': ['PS'],\n /**\n * United Arab Emirates\n */\n '+971': ['AE'],\n /**\n * Israel\n */\n '+972': ['IL'],\n /**\n * Bahrain\n */\n '+973': ['BH'],\n /**\n * Qatar\n */\n '+974': ['QA'],\n /**\n * Bhutan\n */\n '+975': ['BT'],\n /**\n * Mongolia\n */\n '+976': ['MN'],\n /**\n * Nepal\n */\n '+977': ['NP'],\n /**\n * Tajikistan\n */\n '+992': ['TJ'],\n /**\n * Turkmenistan\n */\n '+993': ['TM'],\n /**\n * Azerbaijan\n */\n '+994': ['AZ'],\n /**\n * Georgia\n */\n '+995': ['GE'],\n /**\n * Kyrgyzstan\n */\n '+996': ['KG'],\n /**\n * Uzbekistan\n */\n '+998': ['UZ'],\n} as const;\n\n/**\n * Regional groupings\n */\nexport const COUNTRY_REGIONS = {\n /**\n * European Union member states\n */\n EU: [\n 'AT',\n 'BE',\n 'BG',\n 'HR',\n 'CY',\n 'CZ',\n 'DK',\n 'EE',\n 'FI',\n 'FR',\n 'DE',\n 'GR',\n 'HU',\n 'IE',\n 'IT',\n 'LV',\n 'LT',\n 'LU',\n 'MT',\n 'NL',\n 'PL',\n 'PT',\n 'RO',\n 'SK',\n 'SI',\n 'ES',\n 'SE',\n ],\n\n /**\n * North American countries\n */\n NORTH_AMERICA: ['US', 'CA', 'MX'],\n\n /**\n * South American countries\n */\n SOUTH_AMERICA: ['AR', 'BO', 'BR', 'CL', 'CO', 'EC', 'GF', 'GY', 'PY', 'PE', 'SR', 'UY', 'VE'],\n\n /**\n * G7 countries\n */\n G7: ['US', 'CA', 'GB', 'FR', 'DE', 'IT', 'JP'],\n\n /**\n * G20 countries\n */\n G20: [\n 'AR',\n 'AU',\n 'BR',\n 'CA',\n 'CN',\n 'FR',\n 'DE',\n 'IN',\n 'ID',\n 'IT',\n 'JP',\n 'KR',\n 'MX',\n 'RU',\n 'SA',\n 'ZA',\n 'TR',\n 'GB',\n 'US',\n ],\n\n /**\n * ASEAN countries\n */\n ASEAN: ['BN', 'KH', 'ID', 'LA', 'MY', 'MM', 'PH', 'SG', 'TH', 'VN'],\n\n /**\n * BRICS countries\n */\n BRICS: ['BR', 'RU', 'IN', 'CN', 'ZA'],\n\n /**\n * OECD countries\n */\n OECD: [\n 'AU',\n 'AT',\n 'BE',\n 'CA',\n 'CL',\n 'CO',\n 'CR',\n 'CZ',\n 'DK',\n 'EE',\n 'FI',\n 'FR',\n 'DE',\n 'GR',\n 'HU',\n 'IS',\n 'IE',\n 'IL',\n 'IT',\n 'JP',\n 'KR',\n 'LV',\n 'LT',\n 'LU',\n 'MX',\n 'NL',\n 'NZ',\n 'NO',\n 'PL',\n 'PT',\n 'SK',\n 'SI',\n 'ES',\n 'SE',\n 'CH',\n 'TR',\n 'GB',\n 'US',\n ],\n\n /**\n * Commonwealth countries\n */\n COMMONWEALTH: [\n 'AG',\n 'AU',\n 'BS',\n 'BD',\n 'BB',\n 'BZ',\n 'BW',\n 'BN',\n 'CM',\n 'CA',\n 'CY',\n 'DM',\n 'FJ',\n 'GM',\n 'GH',\n 'GD',\n 'GY',\n 'IN',\n 'JM',\n 'KE',\n 'KI',\n 'LS',\n 'MW',\n 'MY',\n 'MV',\n 'MT',\n 'MU',\n 'MZ',\n 'NA',\n 'NR',\n 'NZ',\n 'NG',\n 'PK',\n 'PG',\n 'RW',\n 'KN',\n 'LC',\n 'VC',\n 'WS',\n 'SC',\n 'SL',\n 'SG',\n 'SB',\n 'ZA',\n 'LK',\n 'SZ',\n 'TZ',\n 'TO',\n 'TT',\n 'TV',\n 'UG',\n 'GB',\n 'VU',\n 'ZM',\n ],\n} as const;\n\n/**\n * Country code to region mapping for CDN headers\n */\nexport const COUNTRY_REGIONS_DETAILED: Record<string, { region: string; state?: string }> = {\n // EU countries\n DE: { region: 'eu' },\n FR: { region: 'eu' },\n IT: { region: 'eu' },\n ES: { region: 'eu' },\n NL: { region: 'eu' },\n BE: { region: 'eu' },\n AT: { region: 'eu' },\n SE: { region: 'eu' },\n DK: { region: 'eu' },\n FI: { region: 'eu' },\n NO: { region: 'eu' },\n PL: { region: 'eu' },\n CZ: { region: 'eu' },\n HU: { region: 'eu' },\n SK: { region: 'eu' },\n SI: { region: 'eu' },\n HR: { region: 'eu' },\n BG: { region: 'eu' },\n RO: { region: 'eu' },\n GR: { region: 'eu' },\n PT: { region: 'eu' },\n IE: { region: 'eu' },\n LU: { region: 'eu' },\n MT: { region: 'eu' },\n CY: { region: 'eu' },\n EE: { region: 'eu' },\n LV: { region: 'eu' },\n LT: { region: 'eu' },\n GB: { region: 'eu' },\n IS: { region: 'eu' },\n LI: { region: 'eu' },\n CH: { region: 'eu' },\n\n // US and states (would need more sophisticated detection for states)\n US: { region: 'us' },\n CA: { region: 'ca' }, // Canada as separate region\n\n // China\n CN: { region: 'cn' },\n HK: { region: 'cn' },\n MO: { region: 'cn' },\n\n // Japan\n JP: { region: 'jp' },\n\n // Other Asian countries\n KR: { region: 'global' }, // South Korea\n TW: { region: 'global' }, // Taiwan\n SG: { region: 'global' }, // Singapore\n MY: { region: 'global' }, // Malaysia\n TH: { region: 'global' }, // Thailand\n IN: { region: 'global' }, // India\n ID: { region: 'global' }, // Indonesia\n PH: { region: 'global' }, // Philippines\n VN: { region: 'global' }, // Vietnam\n\n // Oceania\n AU: { region: 'global' }, // Australia\n NZ: { region: 'global' }, // New Zealand\n\n // Americas (other than US/CA)\n MX: { region: 'global' }, // Mexico\n BR: { region: 'global' }, // Brazil\n AR: { region: 'global' }, // Argentina\n CL: { region: 'global' }, // Chile\n CO: { region: 'global' }, // Colombia\n\n // Middle East\n AE: { region: 'global' }, // UAE\n SA: { region: 'global' }, // Saudi Arabia\n IL: { region: 'global' }, // Israel\n TR: { region: 'global' }, // Turkey\n\n // Africa\n ZA: { region: 'global' }, // South Africa\n EG: { region: 'global' }, // Egypt\n NG: { region: 'global' }, // Nigeria\n KE: { region: 'global' }, // Kenya\n\n // Russia\n RU: { region: 'global' }, // Russia\n\n // Other countries default to global\n};\n\n/**\n * Type exports\n */\nexport type CountryCode = (typeof COUNTRY_CODES)[keyof typeof COUNTRY_CODES];\nexport type CountryCallingCode = keyof typeof COUNTRY_CALLING_CODES;\nexport type CountryRegion = keyof typeof COUNTRY_REGIONS;\nexport type CountryRegionDetailed =\n (typeof COUNTRY_REGIONS_DETAILED)[keyof typeof COUNTRY_REGIONS_DETAILED];\n","/**\n * Time-related Constants\n *\n * Common time values and durations used throughout the application\n * for timeouts, delays, caching, and other time-based operations.\n *\n * @module time/constants\n */\n\nimport { type CountryCode } from '@plyaz/types';\nimport { COUNTRY_CODES } from '../locale';\n\nexport const DAYS_IN_WEEK = 7;\nexport const EARLY_MORNING_HOURS = 6;\n/**\n * Time conversion and duration constants\n */\nexport const TIME_CONSTANTS = {\n // Time unit conversions (in milliseconds)\n /**\n * One millisecond in milliseconds\n */\n MILLISECOND: 1,\n\n /**\n * One second in milliseconds\n */\n SECOND: 1000,\n\n /**\n * One minute in milliseconds\n */\n MINUTE: 60000,\n\n /**\n * One hour in milliseconds\n */\n HOUR: 3600000,\n\n /**\n * One day in milliseconds\n */\n DAY: 86400000,\n\n /**\n * One week in milliseconds\n */\n WEEK: 604800000,\n\n /**\n * One month in milliseconds (30 days average)\n */\n MONTH: 2592000000,\n\n /**\n * One year in milliseconds (365 days)\n */\n YEAR: 31536000000,\n\n // Time unit ratios\n /**\n * Number of milliseconds in one second\n */\n MILLISECONDS_PER_SECOND: 1000,\n\n /**\n * Number of seconds in one minute\n */\n SECONDS_PER_MINUTE: 60,\n\n /**\n * Number of minutes in one hour\n */\n MINUTES_PER_HOUR: 60,\n\n /**\n * Number of hours in one day\n */\n HOURS_PER_DAY: 24,\n\n /**\n * Number of days in one week\n */\n DAYS_PER_WEEK: 7,\n\n /**\n * Number of days in one month (average)\n */\n DAYS_PER_MONTH: 30,\n\n /**\n * Number of days in one year\n */\n DAYS_PER_YEAR: 365,\n\n /**\n * Number of weeks in one year\n */\n WEEKS_PER_YEAR: 52,\n\n /**\n * Number of months in one year\n */\n MONTHS_PER_YEAR: 12,\n\n // Common durations in milliseconds\n /**\n * 100 milliseconds\n */\n HUNDRED_MS: 100,\n\n /**\n * 250 milliseconds\n */\n QUARTER_SECOND: 250,\n\n /**\n * 500 milliseconds (half second)\n */\n HALF_SECOND: 500,\n\n /**\n * 2 seconds in milliseconds\n */\n TWO_SECONDS: 2000,\n\n /**\n * 3 seconds in milliseconds\n */\n THREE_SECONDS: 3000,\n\n /**\n * 5 seconds in milliseconds\n */\n FIVE_SECONDS: 5000,\n\n /**\n * 10 seconds in milliseconds\n */\n TEN_SECONDS: 10000,\n\n /**\n * 30 seconds in milliseconds\n */\n THIRTY_SECONDS: 30000,\n\n /**\n * 2 minutes in milliseconds\n */\n TWO_MINUTES: 120000,\n\n /**\n * 5 minutes in milliseconds\n */\n FIVE_MINUTES: 300000,\n\n /**\n * 10 minutes in milliseconds\n */\n TEN_MINUTES: 600000,\n\n /**\n * 15 minutes in milliseconds\n */\n FIFTEEN_MINUTES: 900000,\n\n /**\n * 30 minutes in milliseconds\n */\n THIRTY_MINUTES: 1800000,\n\n /**\n * 1 hour in milliseconds\n */\n ONE_HOUR: 3600000,\n\n /**\n * 2 hours in milliseconds\n */\n TWO_HOURS: 7200000,\n\n /**\n * 6 hours in milliseconds\n */\n SIX_HOURS: 21600000,\n\n /**\n * 12 hours in milliseconds\n */\n TWELVE_HOURS: 43200000,\n\n // Default values\n /**\n * Default timeout duration in milliseconds (5 seconds)\n */\n DEFAULT_TIMEOUT: 5000,\n\n /**\n * Default short timeout in milliseconds (1 second)\n */\n DEFAULT_SHORT_TIMEOUT: 1000,\n\n /**\n * Default long timeout in milliseconds (30 seconds)\n */\n DEFAULT_LONG_TIMEOUT: 30000,\n\n /**\n * Default retry delay in milliseconds (100ms)\n */\n DEFAULT_RETRY_DELAY: 100,\n\n /**\n * Default exponential backoff base delay in milliseconds (1 second)\n */\n DEFAULT_BACKOFF_BASE: 1000,\n\n /**\n * Default maximum backoff delay in milliseconds (30 seconds)\n */\n DEFAULT_MAX_BACKOFF: 30000,\n\n /**\n * Default number of retry attempts\n */\n DEFAULT_RETRY_ATTEMPTS: 3,\n\n /**\n * Default debounce delay in milliseconds (50ms)\n */\n DEFAULT_DEBOUNCE_DELAY: 50,\n\n /**\n * Default throttle delay in milliseconds (100ms)\n */\n DEFAULT_THROTTLE_DELAY: 100,\n\n /**\n * Default animation frame duration in milliseconds (~60fps)\n */\n DEFAULT_ANIMATION_FRAME: 16.67,\n\n /**\n * Default transition duration in milliseconds (300ms)\n */\n DEFAULT_TRANSITION_DURATION: 300,\n\n /**\n * Default cache time-to-live in seconds (5 minutes)\n */\n DEFAULT_CACHE_TTL: 300,\n\n /**\n * Default short cache TTL in seconds (1 minute)\n */\n DEFAULT_SHORT_CACHE_TTL: 60,\n\n /**\n * Default long cache TTL in seconds (1 hour)\n */\n DEFAULT_LONG_CACHE_TTL: 3600,\n\n /**\n * Default session timeout in milliseconds (30 minutes)\n */\n DEFAULT_SESSION_TIMEOUT: 1800000,\n\n /**\n * Default idle timeout in milliseconds (15 minutes)\n */\n DEFAULT_IDLE_TIMEOUT: 900000,\n\n /**\n * Default poll interval in milliseconds (5 seconds)\n */\n DEFAULT_POLL_INTERVAL: 5000,\n\n /**\n * Default heartbeat interval in milliseconds (30 seconds)\n */\n DEFAULT_HEARTBEAT_INTERVAL: 30000,\n\n // Network and ports\n /**\n * Default port number for servers\n */\n DEFAULT_PORT: 3000,\n\n /**\n * Default HTTP port\n */\n HTTP_PORT: 80,\n\n /**\n * Default HTTPS port\n */\n HTTPS_PORT: 443,\n\n /**\n * Default WebSocket port\n */\n WEBSOCKET_PORT: 8080,\n\n /**\n * Default database port (PostgreSQL)\n */\n DATABASE_PORT: 5432,\n\n /**\n * Default Redis port\n */\n REDIS_PORT: 6379,\n\n // WebSocket specific\n /**\n * WebSocket normal closure code\n */\n WEBSOCKET_CLOSE_NORMAL: 1000,\n\n /**\n * WebSocket going away code\n */\n WEBSOCKET_CLOSE_GOING_AWAY: 1001,\n\n /**\n * WebSocket protocol error code\n */\n WEBSOCKET_CLOSE_PROTOCOL_ERROR: 1002,\n\n /**\n * WebSocket unsupported data code\n */\n WEBSOCKET_CLOSE_UNSUPPORTED: 1003,\n\n /**\n * WebSocket abnormal closure code\n */\n WEBSOCKET_CLOSE_ABNORMAL: 1006,\n\n /**\n * WebSocket retry delay in milliseconds (500ms)\n */\n WEBSOCKET_RETRY_DELAY: 500,\n\n /**\n * WebSocket ping interval in milliseconds (30 seconds)\n */\n WEBSOCKET_PING_INTERVAL: 30000,\n\n /**\n * WebSocket reconnect delay in milliseconds (1 second)\n */\n WEBSOCKET_RECONNECT_DELAY: 1000,\n\n /**\n * WebSocket max reconnect delay in milliseconds (30 seconds)\n */\n WEBSOCKET_MAX_RECONNECT_DELAY: 30000,\n} as const;\n\n/**\n * Country → Time Zone Mapping\n * Based on IANA time zone database (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)\n */\nexport const COUNTRY_TIMEZONES: Record<string, string[]> = {\n // --- AMERICAS ---\n [COUNTRY_CODES.US]: [\n 'America/New_York',\n 'America/Chicago',\n 'America/Denver',\n 'America/Los_Angeles',\n 'America/Anchorage',\n 'Pacific/Honolulu',\n ],\n [COUNTRY_CODES.CA]: [\n 'America/Toronto',\n 'America/Vancouver',\n 'America/Edmonton',\n 'America/Halifax',\n 'America/St_Johns',\n ],\n [COUNTRY_CODES.MX]: ['America/Mexico_City', 'America/Monterrey', 'America/Tijuana'],\n [COUNTRY_CODES.BR]: ['America/Sao_Paulo', 'America/Manaus', 'America/Fortaleza'],\n [COUNTRY_CODES.AR]: ['America/Argentina/Buenos_Aires'],\n [COUNTRY_CODES.CL]: ['America/Santiago'],\n [COUNTRY_CODES.CO]: ['America/Bogota'],\n [COUNTRY_CODES.PE]: ['America/Lima'],\n [COUNTRY_CODES.VE]: ['America/Caracas'],\n\n // --- EUROPE ---\n [COUNTRY_CODES.GB]: ['Europe/London'],\n [COUNTRY_CODES.FR]: ['Europe/Paris'],\n [COUNTRY_CODES.DE]: ['Europe/Berlin'],\n [COUNTRY_CODES.IT]: ['Europe/Rome'],\n [COUNTRY_CODES.ES]: ['Europe/Madrid'],\n [COUNTRY_CODES.PT]: ['Europe/Lisbon'],\n [COUNTRY_CODES.NL]: ['Europe/Amsterdam'],\n [COUNTRY_CODES.SE]: ['Europe/Stockholm'],\n [COUNTRY_CODES.PL]: ['Europe/Warsaw'],\n [COUNTRY_CODES.FI]: ['Europe/Helsinki'],\n [COUNTRY_CODES.NO]: ['Europe/Oslo'],\n [COUNTRY_CODES.CH]: ['Europe/Zurich'],\n [COUNTRY_CODES.RU]: ['Europe/Moscow', 'Asia/Yekaterinburg', 'Asia/Irkutsk', 'Asia/Vladivostok'],\n [COUNTRY_CODES.UA]: ['Europe/Kyiv'],\n [COUNTRY_CODES.GR]: ['Europe/Athens'],\n [COUNTRY_CODES.TR]: ['Europe/Istanbul'],\n\n // --- ASIA ---\n [COUNTRY_CODES.CN]: ['Asia/Shanghai', 'Asia/Urumqi'],\n [COUNTRY_CODES.JP]: ['Asia/Tokyo'],\n [COUNTRY_CODES.KR]: ['Asia/Seoul'],\n [COUNTRY_CODES.IN]: ['Asia/Kolkata'],\n [COUNTRY_CODES.PK]: ['Asia/Karachi'],\n [COUNTRY_CODES.BD]: ['Asia/Dhaka'],\n [COUNTRY_CODES.TH]: ['Asia/Bangkok'],\n [COUNTRY_CODES.VN]: ['Asia/Ho_Chi_Minh'],\n [COUNTRY_CODES.MY]: ['Asia/Kuala_Lumpur'],\n [COUNTRY_CODES.SG]: ['Asia/Singapore'],\n [COUNTRY_CODES.ID]: [\n 'Asia/Jakarta',\n 'Asia/Makassar',\n 'Asia/Jayapura', // Indonesia has 3 time zones\n ],\n [COUNTRY_CODES.PH]: ['Asia/Manila'],\n [COUNTRY_CODES.AE]: ['Asia/Dubai'],\n [COUNTRY_CODES.SA]: ['Asia/Riyadh'],\n [COUNTRY_CODES.IR]: ['Asia/Tehran'],\n [COUNTRY_CODES.IQ]: ['Asia/Baghdad'],\n [COUNTRY_CODES.IL]: ['Asia/Jerusalem'],\n [COUNTRY_CODES.QA]: ['Asia/Qatar'],\n [COUNTRY_CODES.KW]: ['Asia/Kuwait'],\n\n // --- AFRICA ---\n [COUNTRY_CODES.EG]: ['Africa/Cairo'],\n [COUNTRY_CODES.NG]: ['Africa/Lagos'],\n [COUNTRY_CODES.ZA]: ['Africa/Johannesburg'],\n [COUNTRY_CODES.KE]: ['Africa/Nairobi'],\n [COUNTRY_CODES.MA]: ['Africa/Casablanca'],\n [COUNTRY_CODES.GH]: ['Africa/Accra'],\n [COUNTRY_CODES.ET]: ['Africa/Addis_Ababa'],\n [COUNTRY_CODES.TZ]: ['Africa/Dar_es_Salaam'],\n [COUNTRY_CODES.SN]: ['Africa/Dakar'],\n\n // --- OCEANIA ---\n [COUNTRY_CODES.AU]: [\n 'Australia/Sydney',\n 'Australia/Melbourne',\n 'Australia/Perth',\n 'Australia/Brisbane',\n ],\n [COUNTRY_CODES.NZ]: ['Pacific/Auckland'],\n [COUNTRY_CODES.FJ]: ['Pacific/Fiji'],\n [COUNTRY_CODES.PG]: ['Pacific/Port_Moresby'],\n\n // --- ANTARCTICA ---\n [COUNTRY_CODES.AQ]: ['Antarctica/McMurdo', 'Antarctica/Palmer', 'Antarctica/Casey'],\n};\n\nexport const ALL_COUNTRY_TIMEZONES: string[] = Array.from(\n new Set(Object.values(COUNTRY_TIMEZONES).flat())\n);\n\n/**\n * A single record describing the available time zones for a given country.\n */\nexport interface CountryTimezoneEntry {\n countryCode: CountryCode;\n timeZones: string[];\n}\n\n/**\n * Full mapping of all countries → time zones.\n */\nexport type CountryTimezones = Record<CountryCode, string[]>;\n\n/**\n * A flattened list of all unique IANA time zones supported globally.\n */\nexport type AllTimezones = string[];\n\nexport const DAYS_OF_WEEK = Array.from({ length: DAYS_IN_WEEK }, (_, i) => i);\nexport const HOURS_OF_DAY = Array.from({ length: EARLY_MORNING_HOURS }, (_, i) => i);\n\n/**\n * Type for time constant values\n */\nexport type TimeConstant = (typeof TIME_CONSTANTS)[keyof typeof TIME_CONSTANTS];\n","import type { BaseProviderConfig } from '@plyaz/types';\nimport { PAYMENT_METHOD, PAYMENT_PROVIDER_TYPE } from '@plyaz/types';\nimport { CURRENCY_CODES } from '../../../locale';\nimport { TIME_CONSTANTS } from '../../../time';\nimport { HTTP_STATUS } from '../../../http';\n\nexport const stripeConfig: BaseProviderConfig = {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n displayName: PAYMENT_PROVIDER_TYPE.Stripe,\n enabled: true,\n environment: {\n current: 'sandbox',\n apiUrls: {\n sandbox: 'https://api.stripe.com',\n staging: 'https://api.stripe.com',\n production: 'https://api.stripe.com',\n },\n environmentOverrides: {\n sandbox: {\n payments: {\n enabled: true,\n subscriptions: true,\n preauthorization: true,\n cancellation: true,\n updates: true,\n },\n },\n },\n debug: {\n enabled: true,\n logLevel: 'debug',\n logRequests: true,\n logResponses: true,\n },\n },\n\n credentials: {\n apiKey: globalThis.process.env.STRIPE_API_KEY ?? '',\n secretKey: globalThis.process.env.STRIPE_SECRET_KEY ?? '',\n additionalCredentials: {\n webhookSecret: globalThis.process.env.STRIPE_WEBHOOK_SECRET ?? '',\n merchantId: globalThis.process.env.STRIPE_MERCHANT_ID ?? '',\n },\n rotation: {\n enabled: false,\n intervalDays: 90,\n warningDays: 10,\n },\n encryption: {\n encrypted: false,\n },\n },\n\n webhooks: {\n enabled: true,\n endpoints: {\n primary: 'https://yourdomain.com/api/webhooks/stripe',\n },\n security: {\n signatureMethod: 'hmac_sha256',\n signatureHeader: 'Stripe-Signature',\n secret: globalThis.process.env.STRIPE_WEBHOOK_SECRET ?? '',\n timestampTolerance: 300,\n },\n events: {\n subscribed: [\n 'payment_intent.succeeded',\n 'payment_intent.payment_failed',\n 'charge.refunded',\n 'customer.subscription.created',\n 'customer.subscription.deleted',\n ],\n },\n reliability: {\n retryEnabled: true,\n maxRetries: 5,\n retryDelays: [\n TIME_CONSTANTS.SECOND,\n TIME_CONSTANTS.THREE_SECONDS,\n TIME_CONSTANTS.FIVE_SECONDS,\n TIME_CONSTANTS.TEN_SECONDS,\n ],\n timeout: 10000,\n deadLetterQueue: {\n enabled: true,\n retentionDays: 7,\n },\n },\n },\n features: {\n payments: {\n enabled: true,\n subscriptions: true,\n preauthorization: true,\n cancellation: true,\n updates: true,\n },\n refunds: {\n enabled: true,\n partial: true,\n instant: true,\n scheduled: false,\n },\n security: {\n threeDS: true,\n fraudDetection: true,\n velocityChecking: true,\n tokenization: true,\n },\n customers: {\n profiles: true,\n savedMethods: true,\n authentication: true,\n },\n marketplace: {\n enabled: true,\n splitPayments: true,\n connectedAccounts: true,\n instantPayouts: true,\n },\n advanced: {\n multiCurrency: true,\n currencyConversion: true,\n smartRouting: true,\n costOptimization: true,\n abTesting: true,\n },\n },\n\n /** Fees */\n fees: {\n baseFees: {\n percentage: 2.9,\n fixed: 30,\n currency: CURRENCY_CODES.USD,\n },\n methodFees: {\n [PAYMENT_METHOD.CreditCard]: { percentage: 2.9, fixed: 30, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.DebitCard]: { percentage: 2.9, fixed: 30, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.BankTransfer]: { percentage: 0.8, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.PaypalAccount]: { percentage: 3.5, fixed: 30, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoBitcoin]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoEthereum]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoPolygon]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoOptimism]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoUsdc]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoUsdt]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoNativeToken]: {\n percentage: 1.0,\n fixed: 0,\n currency: CURRENCY_CODES.USD,\n },\n [PAYMENT_METHOD.PixInstant]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.BoletoBancario]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.SepaDirectDebit]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.IdealBank]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.SofortBanking]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.AlipayDigital]: { percentage: 1.0, fixed: 0, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.WechatPayDigital]: {\n percentage: 1.0,\n fixed: 0,\n currency: CURRENCY_CODES.USD,\n },\n [PAYMENT_METHOD.ApplePay]: { percentage: 2.9, fixed: 30, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.GooglePay]: { percentage: 2.9, fixed: 30, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.SamsungPay]: { percentage: 2.9, fixed: 30, currency: CURRENCY_CODES.USD },\n },\n volumeTiers: [\n {\n name: 'Tier 1',\n minimumVolume: { amount: 0, currency: CURRENCY_CODES.USD },\n feeRates: { percentage: 2.9, fixed: 30, currency: CURRENCY_CODES.USD },\n },\n {\n name: 'Tier 2',\n minimumVolume: { amount: 1000000, currency: CURRENCY_CODES.USD },\n feeRates: { percentage: 2.5, fixed: 25, currency: CURRENCY_CODES.USD },\n },\n ],\n regionalFees: {\n EU: { percentage: 2.5, fixed: 30, currency: CURRENCY_CODES.EUR },\n PK: { percentage: 3.0, fixed: 50, currency: CURRENCY_CODES.PKR },\n US: { percentage: 2.9, fixed: 30, currency: CURRENCY_CODES.USD },\n CA: { percentage: 2.9, fixed: 40, currency: CURRENCY_CODES.CAD },\n GB: { percentage: 2.8, fixed: 25, currency: CURRENCY_CODES.GBP },\n AU: { percentage: 3.0, fixed: 35, currency: CURRENCY_CODES.AUD },\n IN: { percentage: 3.5, fixed: 40, currency: CURRENCY_CODES.INR },\n JP: { percentage: 3.0, fixed: 300, currency: CURRENCY_CODES.JPY },\n CN: { percentage: 3.5, fixed: 20, currency: CURRENCY_CODES.CNY },\n SG: { percentage: 3.0, fixed: 30, currency: CURRENCY_CODES.SGD },\n BR: { percentage: 3.8, fixed: 50, currency: CURRENCY_CODES.BRL },\n MX: { percentage: 3.5, fixed: 40, currency: CURRENCY_CODES.MXN },\n ZA: { percentage: 3.0, fixed: 50, currency: CURRENCY_CODES.ZAR },\n AE: { percentage: 3.0, fixed: 25, currency: CURRENCY_CODES.AED },\n NZ: { percentage: 3.0, fixed: 35, currency: CURRENCY_CODES.NZD },\n },\n additionalFees: {\n crossBorder: { percentage: 1.0 },\n currencyConversion: { percentage: 1.0, minimumFee: 50 },\n chargeback: { amount: 1500, currency: CURRENCY_CODES.USD },\n refund: { percentage: 2.9, fixed: 30 },\n },\n calculation: {\n rounding: 'nearest',\n minimumFee: { amount: 50, currency: CURRENCY_CODES.USD },\n },\n },\n limits: {\n amounts: {\n minimum: {\n [PAYMENT_METHOD.CreditCard]: { amount: 10, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.DebitCard]: { amount: 10, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.BankTransfer]: { amount: 10, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.PaypalAccount]: { amount: 10, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoBitcoin]: { amount: 10, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoEthereum]: { amount: 10, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoPolygon]: { amount: 10, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoOptimism]: { amount: 10, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoUsdc]: { amount: 10, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoUsdt]: { amount: 10, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoNativeToken]: { amount: 10, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.PixInstant]: { amount: 10, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.BoletoBancario]: { amount: 10, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.SepaDirectDebit]: { amount: 10, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.IdealBank]: { amount: 10, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.SofortBanking]: { amount: 10, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.AlipayDigital]: { amount: 10, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.WechatPayDigital]: { amount: 10, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.ApplePay]: { amount: 10, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.GooglePay]: { amount: 10, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.SamsungPay]: { amount: 10, currency: CURRENCY_CODES.USD },\n },\n maximum: {\n [PAYMENT_METHOD.CreditCard]: { amount: 10000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.DebitCard]: { amount: 10000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.BankTransfer]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.PaypalAccount]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoBitcoin]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoEthereum]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoPolygon]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoOptimism]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoUsdc]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoUsdt]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.CryptoNativeToken]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.PixInstant]: { amount: 10000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.BoletoBancario]: { amount: 10000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.SepaDirectDebit]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.IdealBank]: { amount: 100000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.SofortBanking]: { amount: 10000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.AlipayDigital]: { amount: 10000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.WechatPayDigital]: { amount: 10000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.ApplePay]: { amount: 10000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.GooglePay]: { amount: 10000, currency: CURRENCY_CODES.USD },\n [PAYMENT_METHOD.SamsungPay]: { amount: 10000, currency: CURRENCY_CODES.USD },\n },\n },\n velocity: {\n daily: {\n maxTransactions: 5000,\n maxAmount: { amount: 5000000, currency: CURRENCY_CODES.USD },\n },\n monthly: {\n maxTransactions: 100000,\n maxAmount: { amount: 100000000, currency: CURRENCY_CODES.USD },\n },\n },\n apiLimits: {\n requestsPerSecond: 100,\n requestsPerMinute: 6000,\n requestsPerHour: 360000,\n },\n providerSpecific: {},\n },\n\n performance: {\n timeouts: {\n connection: 5000,\n request: 15000,\n total: 20000,\n },\n retries: {\n enabled: true,\n maxAttempts: 3,\n strategy: 'exponential',\n baseDelay: 1000,\n maxDelay: 10000,\n jitter: true,\n retryableStatusCodes: [\n HTTP_STATUS.REQUEST_TIMEOUT,\n HTTP_STATUS.TOO_MANY_REQUESTS,\n HTTP_STATUS.INTERNAL_SERVER_ERROR,\n HTTP_STATUS.BAD_GATEWAY,\n HTTP_STATUS.SERVICE_UNAVAILABLE,\n HTTP_STATUS.GATEWAY_TIMEOUT,\n ],\n },\n circuitBreaker: {\n enabled: true,\n failureThreshold: 5,\n windowSize: 60_000,\n timeout: 30_000,\n minimumRequests: 10,\n },\n connectionPool: {\n maxConnections: 50,\n minConnections: 5,\n idleTimeout: 30000,\n validationInterval: 60000,\n },\n caching: {\n enabled: true,\n ttl: {\n getPaymentStatus: 60,\n getTransaction: 60,\n },\n maxSize: 1000,\n evictionStrategy: 'lru',\n },\n },\n customSettings: {\n enableRadar: true,\n enableApplePay: true,\n },\n};\n","import { CURRENCY_CODES } from '../locale';\n\n// Convert enum to array for inclusion checks\nexport const SUPPORTED_CURRENCIES = Object.values(CURRENCY_CODES);\n\n// Validation Messages\nexport const VALIDATION_MESSAGES = {\n AMOUNT: 'Amount must be a positive number with valid currency format.',\n CORE_FIELDS:\n 'Missing required core fields: amount, paymentMethod, userId, userType, productId, productType.',\n CURRENCY: 'Unsupported or missing currency code.',\n METADATA: 'Invalid metadata structure or missing required metadata fields.',\n RISK_ASSESSMENT: 'Invalid or inconsistent risk assessment fields.',\n SCHEDULING: 'Invalid scheduling configuration.',\n REFUND_TRANSACTION_ID: 'Transaction ID is required.',\n REFUND_PROVIDER: 'Provider is required.',\n REFUND_AMOUNT: 'Refund amount must be positive.',\n};\n\n// Validator Names\nexport const VALIDATOR_NAMES = {\n AMOUNT: 'AmountValidator',\n CORE_FIELDS: 'CoreFieldValidator',\n CURRENCY: 'CurrencyValidator',\n METADATA: 'MetadataValidator',\n RISK_ASSESSMENT: 'RiskAssessmentValidator',\n SCHEDULING: 'SchedulingValidator',\n};\n\n// Core Fields\nexport const CORE_FIELDS = [\n 'amount',\n 'paymentMethod',\n 'userId',\n 'userType',\n 'productId',\n 'productType',\n] as const;\n\n// Billing Cycles\nexport const VALID_BILLING_CYCLES = ['monthly', 'quarterly', 'yearly'] as const;\n\n// Risk Levels\nexport const VALID_RISK_LEVELS = ['low', 'medium', 'high'] as const;\n\n// Recurrence Frequencies\nexport const VALID_RECURRENCE_FREQUENCIES = [\n 'daily',\n 'weekly',\n 'monthly',\n 'quarterly',\n 'yearly',\n] as const;\n\n// Numeric and Length Constants\nexport const MIN_POSITIVE_AMOUNT = 0;\nexport const CURRENCY_CODE_LENGTH = 3;\n","import {\n type ABTestingConfig,\n COST_OPTIMIZATION_STRATEGY,\n PAYMENT_METHOD,\n PAYMENT_PROVIDER_TYPE,\n ROUTING_STRATEGY,\n} from '@plyaz/types';\n\nexport const ABTesting: ABTestingConfig = {\n enabled: true,\n defaultExperimentId: 'cost_vs_reliability_v1',\n experiments: [\n {\n id: 'cost_vs_reliability_v1',\n description: 'Compare cheaper Moonpay routing vs Stripe reliability for USD card flows',\n allocation: { control: 70, variant: 30 },\n overrides: {\n strategy: ROUTING_STRATEGY.CostOptimized,\n preferredProviders: [PAYMENT_PROVIDER_TYPE.Moonpay],\n costOptimization: { enabled: true, strategy: COST_OPTIMIZATION_STRATEGY.Aggressive },\n },\n targeting: { regions: ['NA', 'APAC'], paymentMethods: [PAYMENT_METHOD.CreditCard] },\n schedule: { start: new Date(), end: undefined },\n active: true,\n },\n ],\n fallback: { useControlOnFailure: true, logErrors: true },\n};\n","/**\n * A centralized collection of numeric constants used to avoid magic numbers across the codebase.\n *\n * Purpose:\n * - Provide named aliases for common numeric values so intent is clearer and maintenance is easier.\n * - Keep commonly used numeric literals (counts, thresholds, time durations, limits) in one place.\n *\n * Typical uses:\n * - Time and duration calculations (e.g., seconds/minutes/hours, TTLs, timeouts).\n * - Pagination, limit and capacity defaults.\n * - Validation thresholds, scaling factors and numeric formatting.\n * - Bit/byte or base arithmetic where small numeric constants improve readability.\n *\n * Properties (brief intent and common usage):\n * - TWO (2) — small counts, boolean-like numeric operations, pair-related logic.\n * - FIVE (5) — small retry counts or UI/validation limits.\n * - NINE (9) — index/format boundaries or small-range checks.\n * - TEN (10) — decimal/base operations, digit limits, common loop bounds.\n * - SIXTEEN (16) — bit/hex operations, buffer sizes or base-16 related math.\n * - TWENTY_FOUR (24) — hours-in-day, daily calculations.\n * - THIRTY_SIX (36) — base-36 or domain-specific scaling factors.\n * - SIXTY (60) — seconds/minutes conversions.\n * - NINETY (90) — percentage/angle thresholds or large-range caps.\n * - HUNDERD (100) — percentage base or general scaling (note: name preserved for backward compatibility).\n * - THOUSAND (1000) — millisecond/rounding bases or thousand-scale thresholds.\n * - FIVE_THOUSAND (5000) — medium-duration timeouts or capacity hints (e.g., ms).\n * - THREE_HUNDERD (300) — short timeouts or conventional numeric boundaries (name preserved).\n * - THIRTY_SIX_HUNDERD (3600) — seconds-per-hour; common default TTL/cache durations (3600 seconds).\n * - THIRTY_THOUSAND (30000) — longer timeouts/polling intervals in milliseconds.\n *\n * Remarks:\n * - Using these constants improves readability and makes it easier to change a value in one place.\n * - Several keys contain spelling inconsistencies (e.g., \"HUNDERD\", \"THREE_HUNDERD\", \"THIRTY_SIX_HUNDERD\") — keep names stable to avoid breaking callers; consider normalizing names in a planned refactor.\n *\n * Example:\n * - const timeoutMs = digits.FIVE_THOUSAND; // use 5000 ms timeout\n * - const hourlySeconds = digits.THIRTY_SIX_HUNDERD; // use 3600 seconds for TTL\n */\nexport const NUMERIX = {\n TWO: 2,\n FIVE: 5,\n NINE: 9,\n TEN: 10,\n TWENTY_FOUR: 24,\n THIRTY_SIX: 36,\n FIFTY: 50,\n SIXTY: 60,\n NINETY: 90,\n HUNDERD: 100,\n FIVE_HUNDERD: 500,\n ONE_THOUSAND_AND_FIVE_HUNDERD: 1500,\n THOUSAND: 1000,\n TWO_THOUSAND: 2000,\n THREE_THOUSAND: 3000,\n FOUR_THOUSAND: 4000,\n FIVE_THOUSAND: 5000,\n THIRTY_SIX_HUNDERD: 3600,\n THREE_HUNDERD: 300,\n SIXTEEN: 16,\n TWENTY_THOUSAND: 20000,\n THIRTY_THOUSAND: 30000,\n FORTY_FIVE_THOUSAND: 45000,\n FIFTY_THOUSAND: 50000,\n SIXTY_THOUSAND: 60000,\n};\n","import {\n FAIL_OVER_STRATEGY,\n type FailoverConfiguration,\n PAYMENT_PROVIDER_TYPE,\n} from '@plyaz/types';\nimport { NUMERIX } from '../../../../../db';\n\nexport const FAILOVER_PRIORITY_ORDER: FailoverConfiguration = {\n enabled: true,\n strategy: FAIL_OVER_STRATEGY.PriorityOrder,\n providerOrder: [PAYMENT_PROVIDER_TYPE.Stripe, PAYMENT_PROVIDER_TYPE.Moonpay],\n failureDetection: {\n consecutiveFailureThreshold: 5,\n errorRateThreshold: 10,\n responseTimeThreshold: NUMERIX.FOUR_THOUSAND,\n healthCheckInterval: 30,\n },\n retry: {\n enabled: true,\n maxAttempts: 2,\n delays: [NUMERIX.THOUSAND, NUMERIX.TWO_THOUSAND],\n exponentialBackoff: false,\n },\n recovery: {\n autoRecovery: false,\n recoveryInterval: 120,\n recoveryThreshold: 10,\n gradualRestoration: false,\n },\n circuitBreaker: {\n enabled: true,\n failureThreshold: 8,\n successThreshold: 5,\n timeout: NUMERIX.SIXTY_THOUSAND,\n },\n};\n","import {\n FAIL_OVER_STRATEGY,\n type FailoverConfiguration,\n PAYMENT_PROVIDER_TYPE,\n} from '@plyaz/types';\nimport { NUMERIX } from '../../../../../db';\n\nexport const FAILOVER_NEXT_AVAILABLE: FailoverConfiguration = {\n enabled: true,\n strategy: FAIL_OVER_STRATEGY.NextAvailable,\n providerOrder: [PAYMENT_PROVIDER_TYPE.Stripe, PAYMENT_PROVIDER_TYPE.Moonpay],\n failureDetection: {\n consecutiveFailureThreshold: 3,\n errorRateThreshold: 5, // %\n responseTimeThreshold: NUMERIX.THREE_THOUSAND, // 3s\n healthCheckInterval: 15, // sec\n },\n retry: {\n enabled: true,\n maxAttempts: 3,\n delays: [NUMERIX.FIVE_HUNDERD, NUMERIX.THOUSAND, NUMERIX.TWO_THOUSAND],\n exponentialBackoff: true,\n },\n recovery: {\n autoRecovery: true,\n recoveryInterval: 60, // sec\n recoveryThreshold: 5, // success events\n gradualRestoration: true,\n },\n circuitBreaker: {\n enabled: true,\n failureThreshold: 5,\n successThreshold: 3,\n timeout: NUMERIX.THIRTY_THOUSAND, // ms\n },\n};\n","import {\n FAIL_OVER_STRATEGY,\n type FailoverConfiguration,\n PAYMENT_PROVIDER_TYPE,\n} from '@plyaz/types';\nimport { NUMERIX } from '../../../../../db';\n\nexport const FAILOVER_PERFORMANCE_BASED: FailoverConfiguration = {\n enabled: true,\n strategy: FAIL_OVER_STRATEGY.PerformanceBased,\n providerOrder: [PAYMENT_PROVIDER_TYPE.Stripe, PAYMENT_PROVIDER_TYPE.Moonpay],\n failureDetection: {\n consecutiveFailureThreshold: 2,\n errorRateThreshold: 3,\n responseTimeThreshold: NUMERIX.TWO_THOUSAND,\n healthCheckInterval: 10,\n },\n retry: {\n enabled: true,\n maxAttempts: 3,\n delays: [NUMERIX.FIVE_HUNDERD, NUMERIX.THOUSAND],\n exponentialBackoff: true,\n },\n recovery: {\n autoRecovery: true,\n recoveryInterval: 30,\n recoveryThreshold: 3,\n gradualRestoration: true,\n },\n circuitBreaker: {\n enabled: true,\n failureThreshold: 4,\n successThreshold: 2,\n timeout: NUMERIX.TWENTY_THOUSAND,\n },\n};\n","import {\n FAIL_OVER_STRATEGY,\n type FailoverConfiguration,\n PAYMENT_PROVIDER_TYPE,\n} from '@plyaz/types';\nimport { NUMERIX } from '../../../../../db';\n\nexport const FAILOVER_LOAD_BALANCED: FailoverConfiguration = {\n enabled: true,\n strategy: FAIL_OVER_STRATEGY.LoadBalanced,\n providerOrder: [PAYMENT_PROVIDER_TYPE.Stripe, PAYMENT_PROVIDER_TYPE.Moonpay],\n failureDetection: {\n consecutiveFailureThreshold: 3,\n errorRateThreshold: 5,\n responseTimeThreshold: NUMERIX.THREE_THOUSAND,\n healthCheckInterval: 20,\n },\n retry: {\n enabled: true,\n maxAttempts: 4,\n delays: [NUMERIX.FIVE_HUNDERD, NUMERIX.THOUSAND, NUMERIX.TWO_THOUSAND],\n exponentialBackoff: true,\n },\n recovery: {\n autoRecovery: true,\n recoveryInterval: 45,\n recoveryThreshold: 4,\n gradualRestoration: true,\n },\n circuitBreaker: {\n enabled: true,\n failureThreshold: 6,\n successThreshold: 3,\n timeout: NUMERIX.FORTY_FIVE_THOUSAND,\n },\n};\n","import {\n FAIL_OVER_STRATEGY,\n type FailoverConfiguration,\n PAYMENT_PROVIDER_TYPE,\n} from '@plyaz/types';\nimport { NUMERIX } from '../../../../../db';\n\nexport const FAILOVER_GEOGRAPHIC: FailoverConfiguration = {\n enabled: true,\n strategy: FAIL_OVER_STRATEGY.Geographic,\n providerOrder: [PAYMENT_PROVIDER_TYPE.Moonpay, PAYMENT_PROVIDER_TYPE.Stripe],\n failureDetection: {\n consecutiveFailureThreshold: 3,\n errorRateThreshold: 6,\n responseTimeThreshold: NUMERIX.THREE_THOUSAND,\n healthCheckInterval: 25,\n },\n retry: {\n enabled: true,\n maxAttempts: 3,\n delays: [NUMERIX.THOUSAND, NUMERIX.TWO_THOUSAND],\n exponentialBackoff: true,\n },\n recovery: {\n autoRecovery: true,\n recoveryInterval: 90,\n recoveryThreshold: 7,\n gradualRestoration: true,\n },\n circuitBreaker: {\n enabled: true,\n failureThreshold: 5,\n successThreshold: 4,\n timeout: NUMERIX.FIFTY_THOUSAND,\n },\n};\n","import { FAIL_OVER_STRATEGY, type FailoverConfiguration } from '@plyaz/types';\nimport { FAILOVER_PRIORITY_ORDER } from './strategies/priority-order.config';\nimport { FAILOVER_NEXT_AVAILABLE } from './strategies/next-available.config';\nimport { FAILOVER_PERFORMANCE_BASED } from './strategies/performance-based.config';\nimport { FAILOVER_LOAD_BALANCED } from './strategies/load-balanced.config';\nimport { FAILOVER_GEOGRAPHIC } from './strategies/geographic.config';\n\nexport const FAILOVER_REGISTRY: Record<FAIL_OVER_STRATEGY, FailoverConfiguration> = {\n [FAIL_OVER_STRATEGY.PriorityOrder]: FAILOVER_PRIORITY_ORDER,\n [FAIL_OVER_STRATEGY.NextAvailable]: FAILOVER_NEXT_AVAILABLE,\n [FAIL_OVER_STRATEGY.PerformanceBased]: FAILOVER_PERFORMANCE_BASED,\n [FAIL_OVER_STRATEGY.LoadBalanced]: FAILOVER_LOAD_BALANCED,\n [FAIL_OVER_STRATEGY.Geographic]: FAILOVER_GEOGRAPHIC,\n};\n","import {\n type GeographicRoutingConfig,\n PAYMENT_METHOD,\n PAYMENT_PROVIDER_TYPE,\n REGULATORY_FRAMEWORK,\n TRANSACTION_TYPE,\n} from '@plyaz/types';\nimport { SUPPORTED_CURRENCIES } from '../../../validators';\n\n/**\n * Global geographic routing configuration\n *\n * Defines provider routing, regulations, and optimizations\n * per geographic region and currency zone.\n */\nexport const Geographic: GeographicRoutingConfig = {\n enabled: true,\n\n /** Region-based preferences */\n regionPreferences: {\n /** Pakistan */\n PK: {\n regionId: 'PK',\n preferredProviders: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 95,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 92, maxResponseTime: 1800, checkInterval: 10 },\n },\n ],\n localPaymentMethods: [PAYMENT_METHOD.BankTransfer, PAYMENT_METHOD.CryptoNativeToken],\n regulations: {\n kycRequired: true,\n transactionLimits: {\n daily: { amount: 50000, currency: 'PKR' },\n monthly: { amount: 1000000, currency: 'PKR' },\n },\n requiredLicenses: [],\n },\n optimizations: {\n preferredDataCenters: ['asia-south1'],\n cdnEndpoints: ['cdn-pk.plyaz.com'],\n cachingStrategy: 'standard',\n },\n },\n\n /** India */\n IN: {\n regionId: 'IN',\n preferredProviders: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 95, maxResponseTime: 1600, checkInterval: 8 },\n },\n ],\n localPaymentMethods: [PAYMENT_METHOD.BankTransfer],\n regulations: {\n kycRequired: true,\n transactionLimits: {\n daily: { amount: 100000, currency: 'INR' },\n monthly: { amount: 2000000, currency: 'INR' },\n },\n requiredLicenses: ['RBI'],\n },\n optimizations: {\n preferredDataCenters: ['asia-south2'],\n cdnEndpoints: ['cdn-in.plyaz.com'],\n cachingStrategy: 'standard',\n },\n },\n\n /** United Arab Emirates */\n AE: {\n regionId: 'AE',\n preferredProviders: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 90,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 94, maxResponseTime: 1700, checkInterval: 10 },\n },\n ],\n localPaymentMethods: [PAYMENT_METHOD.BankTransfer, PAYMENT_METHOD.CreditCard],\n regulations: {\n kycRequired: true,\n transactionLimits: {\n daily: { amount: 50000, currency: 'AED' },\n monthly: { amount: 1000000, currency: 'AED' },\n },\n requiredLicenses: ['CBUAE'],\n },\n optimizations: {\n preferredDataCenters: ['me-central1'],\n cdnEndpoints: ['cdn-ae.plyaz.com'],\n cachingStrategy: 'standard',\n },\n },\n\n /** Singapore */\n SG: {\n regionId: 'SG',\n preferredProviders: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 95, maxResponseTime: 1500, checkInterval: 8 },\n },\n ],\n localPaymentMethods: [PAYMENT_METHOD.BankTransfer, PAYMENT_METHOD.CryptoNativeToken],\n regulations: {\n kycRequired: true,\n transactionLimits: {\n daily: { amount: 60000, currency: 'SGD' },\n monthly: { amount: 1200000, currency: 'SGD' },\n },\n requiredLicenses: ['MAS'],\n },\n optimizations: {\n preferredDataCenters: ['asia-southeast1'],\n cdnEndpoints: ['cdn-sg.plyaz.com'],\n cachingStrategy: 'standard',\n },\n },\n\n /** Japan */\n JP: {\n regionId: 'JP',\n preferredProviders: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 90,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 97, maxResponseTime: 1200, checkInterval: 6 },\n },\n ],\n localPaymentMethods: [PAYMENT_METHOD.CreditCard, PAYMENT_METHOD.BankTransfer],\n regulations: {\n kycRequired: true,\n transactionLimits: {\n daily: { amount: 8000000, currency: 'JPY' },\n monthly: { amount: 20000000, currency: 'JPY' },\n },\n requiredLicenses: ['FSA'],\n },\n optimizations: {\n preferredDataCenters: ['asia-northeast1'],\n cdnEndpoints: ['cdn-jp.plyaz.com'],\n cachingStrategy: 'aggressive',\n },\n },\n\n /** United States */\n US: {\n regionId: 'US',\n preferredProviders: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 95,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 98, maxResponseTime: 1000, checkInterval: 5 },\n },\n ],\n localPaymentMethods: [PAYMENT_METHOD.CreditCard, PAYMENT_METHOD.BankTransfer],\n regulations: {\n kycRequired: true,\n transactionLimits: {\n daily: { amount: 100000, currency: 'USD' },\n monthly: { amount: 2000000, currency: 'USD' },\n },\n requiredLicenses: ['FINTRAC', 'MSB'],\n },\n optimizations: {\n preferredDataCenters: ['us-central1'],\n cdnEndpoints: ['cdn-us.plyaz.com'],\n cachingStrategy: 'aggressive',\n },\n },\n\n /**Canada */\n CA: {\n regionId: 'CA',\n preferredProviders: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 96, maxResponseTime: 1300, checkInterval: 6 },\n },\n ],\n localPaymentMethods: [PAYMENT_METHOD.CreditCard, PAYMENT_METHOD.BankTransfer],\n regulations: {\n kycRequired: true,\n transactionLimits: {\n daily: { amount: 100000, currency: 'CAD' },\n monthly: { amount: 1500000, currency: 'CAD' },\n },\n requiredLicenses: ['FINTRAC'],\n },\n optimizations: {\n preferredDataCenters: ['northamerica-northeast1'],\n cdnEndpoints: ['cdn-ca.plyaz.com'],\n cachingStrategy: 'standard',\n },\n },\n\n /** European Union */\n EU: {\n regionId: 'EU',\n preferredProviders: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 90,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 96, maxResponseTime: 1300, checkInterval: 5 },\n },\n ],\n localPaymentMethods: [PAYMENT_METHOD.CreditCard],\n regulations: {\n kycRequired: true,\n transactionLimits: {\n daily: { amount: 80000, currency: 'EUR' },\n monthly: { amount: 1500000, currency: 'EUR' },\n },\n requiredLicenses: ['PSD2'],\n },\n optimizations: {\n preferredDataCenters: ['europe-west1'],\n cdnEndpoints: ['cdn-eu.plyaz.com'],\n cachingStrategy: 'standard',\n },\n },\n\n /**United Kingdom */\n UK: {\n regionId: 'UK',\n preferredProviders: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 90,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 96, maxResponseTime: 1400, checkInterval: 6 },\n },\n ],\n localPaymentMethods: [PAYMENT_METHOD.CreditCard, PAYMENT_METHOD.BankTransfer],\n regulations: {\n kycRequired: true,\n transactionLimits: {\n daily: { amount: 70000, currency: 'GBP' },\n monthly: { amount: 1400000, currency: 'GBP' },\n },\n requiredLicenses: ['FCA'],\n },\n optimizations: {\n preferredDataCenters: ['europe-west2'],\n cdnEndpoints: ['cdn-uk.plyaz.com'],\n cachingStrategy: 'standard',\n },\n },\n\n /** Australia */\n AU: {\n regionId: 'AU',\n preferredProviders: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 95, maxResponseTime: 1500, checkInterval: 8 },\n },\n ],\n localPaymentMethods: [PAYMENT_METHOD.BankTransfer, PAYMENT_METHOD.CreditCard],\n regulations: {\n kycRequired: true,\n transactionLimits: {\n daily: { amount: 100000, currency: 'AUD' },\n monthly: { amount: 2000000, currency: 'AUD' },\n },\n requiredLicenses: ['AUSTRAC'],\n },\n optimizations: {\n preferredDataCenters: ['australia-southeast1'],\n cdnEndpoints: ['cdn-au.plyaz.com'],\n cachingStrategy: 'standard',\n },\n },\n },\n\n /** Cross-border routing setup */\n crossBorder: {\n enabled: true,\n preferredProviders: [PAYMENT_PROVIDER_TYPE.Stripe, PAYMENT_PROVIDER_TYPE.Moonpay],\n additionalFees: { percentage: 2.5 },\n },\n\n /** Global AML/KYC compliance rules */\n compliance: {\n enabled: true,\n rules: {\n GLOBAL: [\n {\n ruleId: 'aml_kyc_high_value',\n description: 'High-value transactions require KYC & AML checks',\n framework: REGULATORY_FRAMEWORK.Aml,\n conditions: {\n transactionTypes: [\n TRANSACTION_TYPE.Payment,\n TRANSACTION_TYPE.Refund,\n TRANSACTION_TYPE.Subscription,\n ],\n amountThresholds: { min: { amount: 1000, currency: 'USD' } },\n },\n actions: { verification: ['identity_document'], reporting: true, approval: true },\n enforcement: 'mandatory',\n },\n ],\n },\n },\n\n /** Currency zones configuration */\n currencyZones: {\n enabled: true,\n zones: {\n Fiat: {\n currencies: SUPPORTED_CURRENCIES,\n preferredProviders: [PAYMENT_PROVIDER_TYPE.Stripe],\n },\n Crypto: {\n currencies: ['BTC', 'ETH', 'USDT'],\n preferredProviders: [PAYMENT_PROVIDER_TYPE.Moonpay],\n },\n },\n },\n};\n","import { PERFORMANCE_METRIC_TYPE, type PerformanceMonitoringConfig } from '@plyaz/types';\n\n/**\n * Performance monitoring configuration\n *\n * Defines which metrics to collect, how often, and alert thresholds.\n * Tuned for high-availability payment routing with moderate sampling.\n *\n * @see PerformanceMonitoringConfig\n */\nexport const Performance: PerformanceMonitoringConfig = {\n /** Enable or disable performance monitoring globally */\n enabled: true,\n\n /** Metrics to collect and report */\n metrics: [\n PERFORMANCE_METRIC_TYPE.Cost,\n PERFORMANCE_METRIC_TYPE.SuccessRate,\n PERFORMANCE_METRIC_TYPE.Latency,\n PERFORMANCE_METRIC_TYPE.ErrorRate,\n PERFORMANCE_METRIC_TYPE.Throughput,\n ],\n\n /** Data retention period in minutes (1440 = 24 hours) */\n retentionPeriod: 1440,\n\n /** Sampling rate (0–1): 0.5 means 50% of events are sampled */\n samplingRate: 0.5,\n\n /** Alerting thresholds and sensitivity configuration */\n alerting: {\n enabled: true,\n\n /** Trigger alert if error rate exceeds 2% */\n errorRateThreshold: 2,\n\n /** Trigger alert if latency exceeds 1500ms */\n latencyThreshold: 1500,\n\n /** Trigger alert if success rate drops below 98% */\n successRateThreshold: 98,\n\n /** Minimum number of samples required before evaluating alert conditions */\n minSampleSize: 100,\n },\n\n /** Integration endpoints for metrics and logs */\n integrations: {\n metricsSink: 'prometheus',\n logSink: 'logstash',\n },\n};\n","import {\n type LoadBalancingConfig,\n LOAD_BALANCING_STRATEGY,\n PAYMENT_PROVIDER_TYPE,\n} from '@plyaz/types';\nimport { NUMERIX } from '../../../../../db';\nimport { TIME_CONSTANTS } from '../../../../../time';\n\nexport const WeightedLoadBalancing: LoadBalancingConfig = {\n enabled: true,\n strategy: LOAD_BALANCING_STRATEGY.Weighted,\n providerWeights: {\n [PAYMENT_PROVIDER_TYPE.Stripe]: 40,\n [PAYMENT_PROVIDER_TYPE.Moonpay]: 60,\n [PAYMENT_PROVIDER_TYPE.Paypal]: 0,\n [PAYMENT_PROVIDER_TYPE.CheckoutCom]: 0,\n [PAYMENT_PROVIDER_TYPE.Adyen]: 0,\n [PAYMENT_PROVIDER_TYPE.CoinbaseCommerce]: 0,\n [PAYMENT_PROVIDER_TYPE.BlockchainBridge]: 0,\n [PAYMENT_PROVIDER_TYPE.Pix]: 0,\n [PAYMENT_PROVIDER_TYPE.Boleto]: 0,\n [PAYMENT_PROVIDER_TYPE.Sepa]: 0,\n [PAYMENT_PROVIDER_TYPE.Ideal]: 0,\n [PAYMENT_PROVIDER_TYPE.Sofort]: 0,\n [PAYMENT_PROVIDER_TYPE.Alipay]: 0,\n [PAYMENT_PROVIDER_TYPE.WechatPay]: 0,\n [PAYMENT_PROVIDER_TYPE.MockProvider]: 0,\n },\n maxConnections: {\n [PAYMENT_PROVIDER_TYPE.Stripe]: NUMERIX.THOUSAND,\n [PAYMENT_PROVIDER_TYPE.Moonpay]: NUMERIX.FIVE_HUNDERD,\n [PAYMENT_PROVIDER_TYPE.Paypal]: 0,\n [PAYMENT_PROVIDER_TYPE.CheckoutCom]: 0,\n [PAYMENT_PROVIDER_TYPE.Adyen]: 0,\n [PAYMENT_PROVIDER_TYPE.CoinbaseCommerce]: 0,\n [PAYMENT_PROVIDER_TYPE.BlockchainBridge]: 0,\n [PAYMENT_PROVIDER_TYPE.Pix]: 0,\n [PAYMENT_PROVIDER_TYPE.Boleto]: 0,\n [PAYMENT_PROVIDER_TYPE.Sepa]: 0,\n [PAYMENT_PROVIDER_TYPE.Ideal]: 0,\n [PAYMENT_PROVIDER_TYPE.Sofort]: 0,\n [PAYMENT_PROVIDER_TYPE.Alipay]: 0,\n [PAYMENT_PROVIDER_TYPE.WechatPay]: 0,\n [PAYMENT_PROVIDER_TYPE.MockProvider]: 0,\n },\n stickiness: {\n enabled: true,\n duration: TIME_CONSTANTS.HOUR, // 1 hour\n key: 'user',\n },\n autoRebalance: {\n enabled: true,\n interval: TIME_CONSTANTS.FIVE_MINUTES, // every 5 minutes\n basedOn: 'cost',\n },\n};\n","import {\n type LoadBalancingConfig,\n LOAD_BALANCING_STRATEGY,\n PAYMENT_PROVIDER_TYPE,\n} from '@plyaz/types';\n\nexport const RoundRobinLoadBalancing: LoadBalancingConfig = {\n enabled: true,\n strategy: LOAD_BALANCING_STRATEGY.RoundRobin,\n providerWeights: {\n [PAYMENT_PROVIDER_TYPE.Stripe]: 1,\n [PAYMENT_PROVIDER_TYPE.Moonpay]: 1,\n [PAYMENT_PROVIDER_TYPE.Paypal]: 0,\n [PAYMENT_PROVIDER_TYPE.CheckoutCom]: 0,\n [PAYMENT_PROVIDER_TYPE.Adyen]: 0,\n [PAYMENT_PROVIDER_TYPE.CoinbaseCommerce]: 0,\n [PAYMENT_PROVIDER_TYPE.BlockchainBridge]: 0,\n [PAYMENT_PROVIDER_TYPE.Pix]: 0,\n [PAYMENT_PROVIDER_TYPE.Boleto]: 0,\n [PAYMENT_PROVIDER_TYPE.Sepa]: 0,\n [PAYMENT_PROVIDER_TYPE.Ideal]: 0,\n [PAYMENT_PROVIDER_TYPE.Sofort]: 0,\n [PAYMENT_PROVIDER_TYPE.Alipay]: 0,\n [PAYMENT_PROVIDER_TYPE.WechatPay]: 0,\n [PAYMENT_PROVIDER_TYPE.MockProvider]: 0,\n },\n stickiness: { enabled: false, duration: 0, key: 'user' },\n autoRebalance: { enabled: false, interval: 0, basedOn: 'mixed' },\n};\n","import {\n type LoadBalancingConfig,\n LOAD_BALANCING_STRATEGY,\n PAYMENT_PROVIDER_TYPE,\n} from '@plyaz/types';\nimport { NUMERIX } from '../../../../../db';\n\nexport const LeastConnectionsLoadBalancing: LoadBalancingConfig = {\n enabled: true,\n strategy: LOAD_BALANCING_STRATEGY.LeastConnections,\n providerWeights: {\n [PAYMENT_PROVIDER_TYPE.Stripe]: 1,\n [PAYMENT_PROVIDER_TYPE.Moonpay]: 1,\n [PAYMENT_PROVIDER_TYPE.Paypal]: 0,\n [PAYMENT_PROVIDER_TYPE.CheckoutCom]: 0,\n [PAYMENT_PROVIDER_TYPE.Adyen]: 0,\n [PAYMENT_PROVIDER_TYPE.CoinbaseCommerce]: 0,\n [PAYMENT_PROVIDER_TYPE.BlockchainBridge]: 0,\n [PAYMENT_PROVIDER_TYPE.Pix]: 0,\n [PAYMENT_PROVIDER_TYPE.Boleto]: 0,\n [PAYMENT_PROVIDER_TYPE.Sepa]: 0,\n [PAYMENT_PROVIDER_TYPE.Ideal]: 0,\n [PAYMENT_PROVIDER_TYPE.Sofort]: 0,\n [PAYMENT_PROVIDER_TYPE.Alipay]: 0,\n [PAYMENT_PROVIDER_TYPE.WechatPay]: 0,\n [PAYMENT_PROVIDER_TYPE.MockProvider]: 0,\n },\n maxConnections: {\n [PAYMENT_PROVIDER_TYPE.Stripe]: NUMERIX.THOUSAND,\n [PAYMENT_PROVIDER_TYPE.Moonpay]: NUMERIX.FIVE_HUNDERD,\n [PAYMENT_PROVIDER_TYPE.Paypal]: 0,\n [PAYMENT_PROVIDER_TYPE.CheckoutCom]: 0,\n [PAYMENT_PROVIDER_TYPE.Adyen]: 0,\n [PAYMENT_PROVIDER_TYPE.CoinbaseCommerce]: 0,\n [PAYMENT_PROVIDER_TYPE.BlockchainBridge]: 0,\n [PAYMENT_PROVIDER_TYPE.Pix]: 0,\n [PAYMENT_PROVIDER_TYPE.Boleto]: 0,\n [PAYMENT_PROVIDER_TYPE.Sepa]: 0,\n [PAYMENT_PROVIDER_TYPE.Ideal]: 0,\n [PAYMENT_PROVIDER_TYPE.Sofort]: 0,\n [PAYMENT_PROVIDER_TYPE.Alipay]: 0,\n [PAYMENT_PROVIDER_TYPE.WechatPay]: 0,\n [PAYMENT_PROVIDER_TYPE.MockProvider]: 0,\n },\n stickiness: { enabled: false, duration: 0, key: 'user' },\n autoRebalance: { enabled: false, interval: 0, basedOn: 'mixed' },\n};\n","import {\n type LoadBalancingConfig,\n LOAD_BALANCING_STRATEGY,\n PAYMENT_PROVIDER_TYPE,\n} from '@plyaz/types';\nimport { NUMERIX } from '../../../../../db';\n\nexport const PerformanceBasedLoadBalancing: LoadBalancingConfig = {\n enabled: true,\n strategy: LOAD_BALANCING_STRATEGY.PerformanceBased,\n providerWeights: {\n [PAYMENT_PROVIDER_TYPE.Stripe]: 50,\n [PAYMENT_PROVIDER_TYPE.Moonpay]: 50,\n [PAYMENT_PROVIDER_TYPE.Paypal]: 0,\n [PAYMENT_PROVIDER_TYPE.CheckoutCom]: 0,\n [PAYMENT_PROVIDER_TYPE.Adyen]: 0,\n [PAYMENT_PROVIDER_TYPE.CoinbaseCommerce]: 0,\n [PAYMENT_PROVIDER_TYPE.BlockchainBridge]: 0,\n [PAYMENT_PROVIDER_TYPE.Pix]: 0,\n [PAYMENT_PROVIDER_TYPE.Boleto]: 0,\n [PAYMENT_PROVIDER_TYPE.Sepa]: 0,\n [PAYMENT_PROVIDER_TYPE.Ideal]: 0,\n [PAYMENT_PROVIDER_TYPE.Sofort]: 0,\n [PAYMENT_PROVIDER_TYPE.Alipay]: 0,\n [PAYMENT_PROVIDER_TYPE.WechatPay]: 0,\n [PAYMENT_PROVIDER_TYPE.MockProvider]: 0,\n },\n autoRebalance: {\n enabled: true,\n interval: NUMERIX.SIXTY,\n basedOn: 'latency',\n },\n stickiness: { enabled: false, duration: 0, key: 'user' },\n};\n","import {\n type LoadBalancingConfig,\n LOAD_BALANCING_STRATEGY,\n PAYMENT_PROVIDER_TYPE,\n} from '@plyaz/types';\n\nexport const CustomLoadBalancing: LoadBalancingConfig = {\n enabled: true,\n strategy: LOAD_BALANCING_STRATEGY.Custom,\n providerWeights: {\n [PAYMENT_PROVIDER_TYPE.Stripe]: 50,\n [PAYMENT_PROVIDER_TYPE.Moonpay]: 50,\n [PAYMENT_PROVIDER_TYPE.Paypal]: 0,\n [PAYMENT_PROVIDER_TYPE.CheckoutCom]: 0,\n [PAYMENT_PROVIDER_TYPE.Adyen]: 0,\n [PAYMENT_PROVIDER_TYPE.CoinbaseCommerce]: 0,\n [PAYMENT_PROVIDER_TYPE.BlockchainBridge]: 0,\n [PAYMENT_PROVIDER_TYPE.Pix]: 0,\n [PAYMENT_PROVIDER_TYPE.Boleto]: 0,\n [PAYMENT_PROVIDER_TYPE.Sepa]: 0,\n [PAYMENT_PROVIDER_TYPE.Ideal]: 0,\n [PAYMENT_PROVIDER_TYPE.Sofort]: 0,\n [PAYMENT_PROVIDER_TYPE.Alipay]: 0,\n [PAYMENT_PROVIDER_TYPE.WechatPay]: 0,\n [PAYMENT_PROVIDER_TYPE.MockProvider]: 0,\n },\n stickiness: { enabled: false, duration: 0, key: 'user' },\n autoRebalance: { enabled: false, interval: 0, basedOn: 'mixed' },\n};\n","import { LOAD_BALANCING_STRATEGY, type LoadBalancingConfig } from '@plyaz/types';\nimport { WeightedLoadBalancing } from './strategies/weighted.config';\nimport { RoundRobinLoadBalancing } from './strategies/round-robin.config';\nimport { LeastConnectionsLoadBalancing } from './strategies/least-connections.config';\nimport { PerformanceBasedLoadBalancing } from './strategies/performance-based.config';\nimport { CustomLoadBalancing } from './strategies/custom.config';\n\nexport const LoadBalancingRegistry: Record<LOAD_BALANCING_STRATEGY, LoadBalancingConfig> = {\n [LOAD_BALANCING_STRATEGY.Weighted]: WeightedLoadBalancing,\n [LOAD_BALANCING_STRATEGY.RoundRobin]: RoundRobinLoadBalancing,\n [LOAD_BALANCING_STRATEGY.LeastConnections]: LeastConnectionsLoadBalancing,\n [LOAD_BALANCING_STRATEGY.PerformanceBased]: PerformanceBasedLoadBalancing,\n [LOAD_BALANCING_STRATEGY.Custom]: CustomLoadBalancing,\n};\n","import { type AmountBasedRule, PAYMENT_PROVIDER_TYPE } from '@plyaz/types';\n\nexport const AMOUNT_BASED_SELECTION: AmountBasedRule[] = [\n {\n name: 'High value fiat (protection => reliability)',\n amountRange: {\n min: { amount: 1000, currency: 'USD' },\n max: { amount: 1000000, currency: 'USD' },\n },\n preferredProviders: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 120,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 99, maxResponseTime: 700, checkInterval: 2 },\n },\n ],\n specialHandling: { requireVerification: true, enhancedSecurity: true, manualReview: false },\n },\n];\n","import { type CurrencyCode, PAYMENT_PROVIDER_TYPE, type ProviderPreference } from '@plyaz/types';\n\nexport const CurrencySpecificProviders: Record<CurrencyCode, ProviderPreference[]> = {\n // --- Major currencies ---\n USD: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 90,\n trafficPercentage: 70,\n conditions: [],\n healthRequirements: { minSuccessRate: 95, maxResponseTime: 1200, checkInterval: 5 },\n },\n ],\n EUR: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 100,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 98, maxResponseTime: 800, checkInterval: 3 },\n },\n ],\n GBP: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 95,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 97, maxResponseTime: 900, checkInterval: 3 },\n },\n ],\n JPY: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 70,\n conditions: [],\n healthRequirements: { minSuccessRate: 94, maxResponseTime: 1300, checkInterval: 6 },\n },\n ],\n CHF: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 95,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 98, maxResponseTime: 850, checkInterval: 3 },\n },\n ],\n CAD: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 95,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 97, maxResponseTime: 900, checkInterval: 3 },\n },\n ],\n AUD: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 90,\n trafficPercentage: 70,\n conditions: [],\n healthRequirements: { minSuccessRate: 95, maxResponseTime: 1200, checkInterval: 5 },\n },\n ],\n CNY: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 90,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 94, maxResponseTime: 1400, checkInterval: 6 },\n },\n ],\n\n // --- Asian currencies ---\n INR: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 90,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 93, maxResponseTime: 1500, checkInterval: 6 },\n },\n ],\n KRW: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 93, maxResponseTime: 1400, checkInterval: 6 },\n },\n ],\n SGD: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 95,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 97, maxResponseTime: 800, checkInterval: 3 },\n },\n ],\n HKD: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 95,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 97, maxResponseTime: 900, checkInterval: 3 },\n },\n ],\n TWD: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 90,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 94, maxResponseTime: 1300, checkInterval: 6 },\n },\n ],\n THB: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 90,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 92, maxResponseTime: 1500, checkInterval: 10 },\n },\n ],\n IDR: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 90,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 92, maxResponseTime: 1500, checkInterval: 10 },\n },\n ],\n MYR: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 90,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 93, maxResponseTime: 1500, checkInterval: 10 },\n },\n ],\n PHP: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 92, maxResponseTime: 1600, checkInterval: 10 },\n },\n ],\n VND: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 91, maxResponseTime: 1600, checkInterval: 10 },\n },\n ],\n BDT: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 90, maxResponseTime: 1700, checkInterval: 10 },\n },\n ],\n PKR: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 90,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 92, maxResponseTime: 1500, checkInterval: 10 },\n },\n ],\n LKR: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 90, maxResponseTime: 1700, checkInterval: 10 },\n },\n ],\n\n // --- European currencies ---\n SEK: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 95,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 97, maxResponseTime: 900, checkInterval: 3 },\n },\n ],\n NOK: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 95,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 97, maxResponseTime: 900, checkInterval: 3 },\n },\n ],\n DKK: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 95,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 97, maxResponseTime: 900, checkInterval: 3 },\n },\n ],\n PLN: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 93, maxResponseTime: 1300, checkInterval: 6 },\n },\n ],\n CZK: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 93, maxResponseTime: 1300, checkInterval: 6 },\n },\n ],\n HUF: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 92, maxResponseTime: 1300, checkInterval: 6 },\n },\n ],\n RON: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 92, maxResponseTime: 1300, checkInterval: 6 },\n },\n ],\n BGN: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 92, maxResponseTime: 1300, checkInterval: 6 },\n },\n ],\n HRK: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 92, maxResponseTime: 1300, checkInterval: 6 },\n },\n ],\n RSD: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 91, maxResponseTime: 1400, checkInterval: 6 },\n },\n ],\n ISK: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 95,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 97, maxResponseTime: 900, checkInterval: 3 },\n },\n ],\n\n // --- Americas ---\n BRL: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 93, maxResponseTime: 1400, checkInterval: 6 },\n },\n ],\n MXN: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 93, maxResponseTime: 1400, checkInterval: 6 },\n },\n ],\n ARS: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 90, maxResponseTime: 1600, checkInterval: 10 },\n },\n ],\n CLP: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 90, maxResponseTime: 1600, checkInterval: 10 },\n },\n ],\n COP: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 90, maxResponseTime: 1600, checkInterval: 10 },\n },\n ],\n PEN: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 90, maxResponseTime: 1600, checkInterval: 10 },\n },\n ],\n UYU: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 90, maxResponseTime: 1600, checkInterval: 10 },\n },\n ],\n VES: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 89, maxResponseTime: 1800, checkInterval: 10 },\n },\n ],\n BOB: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 89, maxResponseTime: 1800, checkInterval: 10 },\n },\n ],\n PYG: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 89, maxResponseTime: 1800, checkInterval: 10 },\n },\n ],\n CRC: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 90, maxResponseTime: 1600, checkInterval: 10 },\n },\n ],\n DOP: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 90, maxResponseTime: 1600, checkInterval: 10 },\n },\n ],\n JMD: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 90, maxResponseTime: 1600, checkInterval: 10 },\n },\n ],\n TTD: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 90, maxResponseTime: 1600, checkInterval: 10 },\n },\n ],\n\n // --- Middle East / Africa ---\n AED: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 95,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 97, maxResponseTime: 900, checkInterval: 3 },\n },\n ],\n SAR: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 95,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 97, maxResponseTime: 900, checkInterval: 3 },\n },\n ],\n QAR: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 95,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 97, maxResponseTime: 900, checkInterval: 3 },\n },\n ],\n KWD: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 95,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 97, maxResponseTime: 900, checkInterval: 3 },\n },\n ],\n BHD: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 95,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 97, maxResponseTime: 900, checkInterval: 3 },\n },\n ],\n OMR: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 95,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 97, maxResponseTime: 900, checkInterval: 3 },\n },\n ],\n JOD: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 95,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 97, maxResponseTime: 900, checkInterval: 3 },\n },\n ],\n ILS: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 95,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 97, maxResponseTime: 900, checkInterval: 3 },\n },\n ],\n TRY: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 90, maxResponseTime: 1500, checkInterval: 10 },\n },\n ],\n ZAR: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 90,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 94, maxResponseTime: 1300, checkInterval: 6 },\n },\n ],\n NGN: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 90,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 93, maxResponseTime: 1400, checkInterval: 6 },\n },\n ],\n EGP: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 90, maxResponseTime: 1600, checkInterval: 10 },\n },\n ],\n KES: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 90, maxResponseTime: 1600, checkInterval: 10 },\n },\n ],\n GHS: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 90, maxResponseTime: 1600, checkInterval: 10 },\n },\n ],\n MAD: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 91, maxResponseTime: 1400, checkInterval: 6 },\n },\n ],\n TND: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 91, maxResponseTime: 1400, checkInterval: 6 },\n },\n ],\n DZD: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 91, maxResponseTime: 1400, checkInterval: 6 },\n },\n ],\n\n // --- Crypto pseudo-currencies ---\n BTC: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 120,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 95, maxResponseTime: 1500, checkInterval: 10 },\n },\n ],\n ETH: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 120,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 95, maxResponseTime: 1500, checkInterval: 10 },\n },\n ],\n USDT: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 120,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 95, maxResponseTime: 1500, checkInterval: 10 },\n },\n ],\n USDC: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 120,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 95, maxResponseTime: 1500, checkInterval: 10 },\n },\n ],\n\n // --- Central America / Caribbean ---\n GTQ: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 90, maxResponseTime: 1600, checkInterval: 10 },\n },\n ],\n HNL: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 90, maxResponseTime: 1600, checkInterval: 10 },\n },\n ],\n NIO: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 90, maxResponseTime: 1600, checkInterval: 10 },\n },\n ],\n PAB: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 90,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 95, maxResponseTime: 1000, checkInterval: 5 },\n },\n ],\n BBD: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 91, maxResponseTime: 1400, checkInterval: 6 },\n },\n ],\n\n // --- Middle East (additional) ---\n IQD: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 90, maxResponseTime: 1500, checkInterval: 8 },\n },\n ],\n IRR: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 80,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 85, maxResponseTime: 1800, checkInterval: 10 },\n },\n ],\n LBP: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 80,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 85, maxResponseTime: 1800, checkInterval: 10 },\n },\n ],\n SYP: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 80,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 85, maxResponseTime: 1800, checkInterval: 10 },\n },\n ],\n\n // --- Africa (additional) ---\n ETB: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 90, maxResponseTime: 1500, checkInterval: 8 },\n },\n ],\n TZS: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 91, maxResponseTime: 1400, checkInterval: 6 },\n },\n ],\n UGX: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 91, maxResponseTime: 1400, checkInterval: 6 },\n },\n ],\n ZMW: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 91, maxResponseTime: 1400, checkInterval: 6 },\n },\n ],\n BWP: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 91, maxResponseTime: 1400, checkInterval: 6 },\n },\n ],\n MUR: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 91, maxResponseTime: 1400, checkInterval: 6 },\n },\n ],\n\n // --- Pacific / Oceania ---\n NZD: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 95,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 96, maxResponseTime: 1000, checkInterval: 4 },\n },\n ],\n FJD: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 92, maxResponseTime: 1400, checkInterval: 6 },\n },\n ],\n PGK: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 90, maxResponseTime: 1500, checkInterval: 8 },\n },\n ],\n\n // --- Former Soviet / Central Asia ---\n RUB: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 91, maxResponseTime: 1500, checkInterval: 8 },\n },\n ],\n UAH: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 91, maxResponseTime: 1500, checkInterval: 8 },\n },\n ],\n BYN: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 91, maxResponseTime: 1500, checkInterval: 8 },\n },\n ],\n KZT: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 91, maxResponseTime: 1500, checkInterval: 8 },\n },\n ],\n UZS: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 91, maxResponseTime: 1500, checkInterval: 8 },\n },\n ],\n AZN: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 91, maxResponseTime: 1500, checkInterval: 8 },\n },\n ],\n GEL: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 91, maxResponseTime: 1500, checkInterval: 8 },\n },\n ],\n AMD: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 91, maxResponseTime: 1500, checkInterval: 8 },\n },\n ],\n};\n","import { type CustomSelectionRule, PAYMENT_PROVIDER_TYPE } from '@plyaz/types';\n\nexport const CUSTOM_RULES: CustomSelectionRule[] = [\n {\n ruleId: 'crypto_onramp',\n name: 'Crypto: force Moonpay',\n description: 'If payment method is crypto-onramp, prefer Moonpay',\n conditions: {\n expression:\n \"['crypto_bitcoin','crypto_ethereum','crypto_polygon','crypto_native_token'].includes(paymentMethod)\",\n requiredContext: ['paymentMethod'],\n },\n providerSelection: {\n preferred: [PAYMENT_PROVIDER_TYPE.Moonpay],\n excluded: [PAYMENT_PROVIDER_TYPE.Stripe],\n weightAdjustments: {\n [PAYMENT_PROVIDER_TYPE.Stripe]: -20,\n [PAYMENT_PROVIDER_TYPE.Paypal]: 0,\n [PAYMENT_PROVIDER_TYPE.CheckoutCom]: 0,\n [PAYMENT_PROVIDER_TYPE.Adyen]: 0,\n [PAYMENT_PROVIDER_TYPE.Moonpay]: 20,\n [PAYMENT_PROVIDER_TYPE.CoinbaseCommerce]: 0,\n [PAYMENT_PROVIDER_TYPE.BlockchainBridge]: 0,\n [PAYMENT_PROVIDER_TYPE.Pix]: 0,\n [PAYMENT_PROVIDER_TYPE.Boleto]: 0,\n [PAYMENT_PROVIDER_TYPE.Sepa]: 0,\n [PAYMENT_PROVIDER_TYPE.Ideal]: 0,\n [PAYMENT_PROVIDER_TYPE.Sofort]: 0,\n [PAYMENT_PROVIDER_TYPE.Alipay]: 0,\n [PAYMENT_PROVIDER_TYPE.WechatPay]: 0,\n [PAYMENT_PROVIDER_TYPE.MockProvider]: 0,\n },\n },\n priority: 100,\n enabled: true,\n },\n];\n","import { PAYMENT_PROVIDER_TYPE, type ProviderPreference } from '@plyaz/types';\nimport { SUPPORTED_CURRENCIES } from '../../validators';\nimport { NUMERIX } from '../../../db';\nimport { CURRENCY_CODES } from '../../../locale';\n\n/**\n * Default provider preferences used for global or fallback routing.\n * Includes weight-based prioritization and health check parameters.\n */\nexport const DEFAULT_PROVIDERS: ProviderPreference[] = [\n {\n /** Primary high-performance global provider */\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 100,\n trafficPercentage: 40, // slightly adjusted for balance\n conditions: [],\n minAmount: { amount: 1, currency: CURRENCY_CODES.USD },\n maxAmount: { amount: 10000, currency: CURRENCY_CODES.USD },\n healthRequirements: {\n minSuccessRate: 98,\n maxResponseTime: 800,\n checkInterval: 2, // frequent health checks\n },\n },\n {\n /** Secondary fallback or region-optimized provider */\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 80,\n trafficPercentage: 60,\n conditions: [\n {\n type: 'currency',\n operator: 'in',\n value: SUPPORTED_CURRENCIES.slice(0, NUMERIX.FIFTY),\n required: false,\n },\n ],\n minAmount: { amount: 5, currency: CURRENCY_CODES.USD },\n maxAmount: { amount: 20000, currency: CURRENCY_CODES.USD },\n healthRequirements: {\n minSuccessRate: 95,\n maxResponseTime: 1500,\n checkInterval: 5,\n },\n },\n];\n","import { PAYMENT_METHOD, PAYMENT_PROVIDER_TYPE, type ProviderPreference } from '@plyaz/types';\n\nexport const MethodSpecificProviders: Record<PAYMENT_METHOD, ProviderPreference[]> = {\n // --- CARD PAYMENTS ---\n [PAYMENT_METHOD.CreditCard]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 110,\n trafficPercentage: 70,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 98,\n maxResponseTime: 600,\n checkInterval: 2,\n },\n },\n {\n provider: PAYMENT_PROVIDER_TYPE.Adyen,\n weight: 90,\n trafficPercentage: 20,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 96,\n maxResponseTime: 800,\n checkInterval: 3,\n },\n },\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 40,\n trafficPercentage: 10,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 94,\n maxResponseTime: 1200,\n checkInterval: 5,\n },\n },\n ],\n\n [PAYMENT_METHOD.DebitCard]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 100,\n trafficPercentage: 60,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 97,\n maxResponseTime: 700,\n checkInterval: 3,\n },\n },\n {\n provider: PAYMENT_PROVIDER_TYPE.CheckoutCom,\n weight: 90,\n trafficPercentage: 40,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 95,\n maxResponseTime: 900,\n checkInterval: 4,\n },\n },\n ],\n\n [PAYMENT_METHOD.BankTransfer]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Adyen,\n weight: 100,\n trafficPercentage: 70,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 97,\n maxResponseTime: 900,\n checkInterval: 3,\n },\n },\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 80,\n trafficPercentage: 30,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 96,\n maxResponseTime: 800,\n checkInterval: 3,\n },\n },\n ],\n\n [PAYMENT_METHOD.PaypalAccount]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Paypal,\n weight: 150,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 99,\n maxResponseTime: 700,\n checkInterval: 2,\n },\n },\n ],\n\n // --- CRYPTO PAYMENTS ---\n [PAYMENT_METHOD.CryptoBitcoin]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 120,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 95,\n maxResponseTime: 1500,\n checkInterval: 10,\n },\n },\n {\n provider: PAYMENT_PROVIDER_TYPE.CoinbaseCommerce,\n weight: 100,\n trafficPercentage: 20,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 96,\n maxResponseTime: 1400,\n checkInterval: 8,\n },\n },\n ],\n\n [PAYMENT_METHOD.CryptoEthereum]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 120,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 95,\n maxResponseTime: 1500,\n checkInterval: 10,\n },\n },\n {\n provider: PAYMENT_PROVIDER_TYPE.CoinbaseCommerce,\n weight: 100,\n trafficPercentage: 20,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 96,\n maxResponseTime: 1400,\n checkInterval: 8,\n },\n },\n ],\n\n [PAYMENT_METHOD.CryptoPolygon]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 110,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 94,\n maxResponseTime: 1500,\n checkInterval: 10,\n },\n },\n ],\n\n [PAYMENT_METHOD.CryptoOptimism]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 110,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 94,\n maxResponseTime: 1500,\n checkInterval: 10,\n },\n },\n ],\n\n [PAYMENT_METHOD.CryptoUsdc]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 120,\n trafficPercentage: 60,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 96,\n maxResponseTime: 1300,\n checkInterval: 8,\n },\n },\n {\n provider: PAYMENT_PROVIDER_TYPE.CoinbaseCommerce,\n weight: 90,\n trafficPercentage: 40,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 95,\n maxResponseTime: 1200,\n checkInterval: 8,\n },\n },\n ],\n\n [PAYMENT_METHOD.CryptoUsdt]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 120,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 96,\n maxResponseTime: 1300,\n checkInterval: 8,\n },\n },\n ],\n\n [PAYMENT_METHOD.CryptoNativeToken]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.BlockchainBridge,\n weight: 100,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 93,\n maxResponseTime: 1500,\n checkInterval: 10,\n },\n },\n ],\n\n // --- LOCAL / ALT PAYMENTS ---\n [PAYMENT_METHOD.PixInstant]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Pix,\n weight: 130,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 98,\n maxResponseTime: 500,\n checkInterval: 2,\n },\n },\n ],\n\n [PAYMENT_METHOD.BoletoBancario]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Boleto,\n weight: 120,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 97,\n maxResponseTime: 900,\n checkInterval: 3,\n },\n },\n ],\n\n [PAYMENT_METHOD.SepaDirectDebit]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Sepa,\n weight: 120,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 97,\n maxResponseTime: 800,\n checkInterval: 3,\n },\n },\n ],\n\n [PAYMENT_METHOD.IdealBank]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Ideal,\n weight: 120,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 97,\n maxResponseTime: 700,\n checkInterval: 3,\n },\n },\n ],\n\n [PAYMENT_METHOD.SofortBanking]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Sofort,\n weight: 110,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 96,\n maxResponseTime: 800,\n checkInterval: 3,\n },\n },\n ],\n\n [PAYMENT_METHOD.AlipayDigital]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Alipay,\n weight: 120,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 99,\n maxResponseTime: 600,\n checkInterval: 2,\n },\n },\n ],\n\n [PAYMENT_METHOD.WechatPayDigital]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.WechatPay,\n weight: 120,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 99,\n maxResponseTime: 600,\n checkInterval: 2,\n },\n },\n ],\n\n // --- DIGITAL WALLETS ---\n [PAYMENT_METHOD.ApplePay]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 110,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 98,\n maxResponseTime: 500,\n checkInterval: 2,\n },\n },\n {\n provider: PAYMENT_PROVIDER_TYPE.Adyen,\n weight: 100,\n trafficPercentage: 20,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 97,\n maxResponseTime: 600,\n checkInterval: 2,\n },\n },\n ],\n\n [PAYMENT_METHOD.GooglePay]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 110,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 98,\n maxResponseTime: 500,\n checkInterval: 2,\n },\n },\n {\n provider: PAYMENT_PROVIDER_TYPE.Adyen,\n weight: 100,\n trafficPercentage: 20,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 97,\n maxResponseTime: 600,\n checkInterval: 2,\n },\n },\n ],\n\n [PAYMENT_METHOD.SamsungPay]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 100,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: {\n minSuccessRate: 97,\n maxResponseTime: 600,\n checkInterval: 3,\n },\n },\n ],\n};\n","import { PAYMENT_PROVIDER_TYPE, type ProviderPreference } from '@plyaz/types';\n\nexport const RegionSpecificProviders: Record<string, ProviderPreference[]> = {\n NA: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 110,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 99, maxResponseTime: 700, checkInterval: 2 },\n },\n ],\n EU: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 105,\n trafficPercentage: 85,\n conditions: [],\n healthRequirements: { minSuccessRate: 98, maxResponseTime: 800, checkInterval: 3 },\n },\n ],\n EEA: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 105,\n trafficPercentage: 85,\n conditions: [],\n healthRequirements: { minSuccessRate: 98, maxResponseTime: 800, checkInterval: 3 },\n },\n ],\n APAC: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 95,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 94, maxResponseTime: 1300, checkInterval: 6 },\n },\n ],\n LATAM: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 90,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 92, maxResponseTime: 1400, checkInterval: 6 },\n },\n ],\n MENA: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 95,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 97, maxResponseTime: 900, checkInterval: 3 },\n },\n ],\n AFRICA: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 90,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 92, maxResponseTime: 1400, checkInterval: 6 },\n },\n ],\n OCEANIA: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 95,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 95, maxResponseTime: 1200, checkInterval: 5 },\n },\n ],\n CIS: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 85,\n conditions: [],\n healthRequirements: { minSuccessRate: 92, maxResponseTime: 1400, checkInterval: 6 },\n },\n ],\n CARIBBEAN: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 85,\n trafficPercentage: 85,\n conditions: [],\n healthRequirements: { minSuccessRate: 91, maxResponseTime: 1400, checkInterval: 6 },\n },\n ],\n};\n","import { PAYMENT_PROVIDER_TYPE, type TimeBasedRule } from '@plyaz/types';\nimport { ALL_COUNTRY_TIMEZONES, DAYS_OF_WEEK, HOURS_OF_DAY } from '../../../time';\n\nexport const TIME_BASED_SELECTION: TimeBasedRule[] = [\n {\n name: 'Night / low-traffic cost save',\n timeConditions: {\n daysOfWeek: DAYS_OF_WEEK,\n hoursOfDay: HOURS_OF_DAY,\n timeZones: ALL_COUNTRY_TIMEZONES,\n },\n providerPreferences: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 100,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 93, maxResponseTime: 1600, checkInterval: 10 },\n },\n ],\n reason: 'lower fees observed during off-peak — route to cheaper provider',\n },\n];\n","import { PAYMENT_PROVIDER_TYPE, type ProviderPreference, USER_TYPE } from '@plyaz/types';\n\nexport const UserTypeSelection: Record<USER_TYPE, ProviderPreference[]> = {\n [USER_TYPE.Fan]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 90,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 94, maxResponseTime: 1200, checkInterval: 5 },\n },\n ],\n [USER_TYPE.Athlete]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 100,\n trafficPercentage: 90,\n conditions: [],\n healthRequirements: { minSuccessRate: 97, maxResponseTime: 800, checkInterval: 3 },\n },\n ],\n [USER_TYPE.Club]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 110,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 99, maxResponseTime: 700, checkInterval: 2 },\n },\n ],\n [USER_TYPE.Agent]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 90,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 93, maxResponseTime: 1300, checkInterval: 6 },\n },\n ],\n [USER_TYPE.Scout]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Moonpay,\n weight: 90,\n trafficPercentage: 80,\n conditions: [],\n healthRequirements: { minSuccessRate: 93, maxResponseTime: 1300, checkInterval: 6 },\n },\n ],\n [USER_TYPE.Admin]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 120,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 99, maxResponseTime: 600, checkInterval: 2 },\n },\n ],\n [USER_TYPE.System]: [\n {\n provider: PAYMENT_PROVIDER_TYPE.Stripe,\n weight: 120,\n trafficPercentage: 100,\n conditions: [],\n healthRequirements: { minSuccessRate: 99, maxResponseTime: 600, checkInterval: 2 },\n },\n ],\n};\n"]}
|