@voxepay/checkout 0.0.1-security → 0.5.19

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.

Potentially problematic release.


This version of @voxepay/checkout might be problematic. Click here for more details.

@@ -0,0 +1 @@
1
+ {"version":3,"file":"voxepay-checkout.min.js","sources":["../src/utils/card-validator.ts","../src/utils/formatter.ts","../src/utils/encryption.ts","../src/api/client.ts","../src/components/modal.ts","../src/voxepay.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["CARD_BRANDS","name","code","pattern","lengths","cvvLength","detectCardBrand","cardNumber","cleaned","replace","brand","test","luhnCheck","sum","isEven","i","length","digit","parseInt","validateCardNumber","valid","error","includes","validateExpiry","expiry","match","month","year","now","Date","currentYear","getFullYear","currentMonth","getMonth","validateCVV","cvv","expectedLength","formatCardNumber","value","join","slice","formatExpiry","formatCVV","formatAmount","amount","currency","Intl","NumberFormat","style","minimumFractionDigits","format","formatMainUnitAmount","RSA_CONFIG","modulus","publicExponent","generateAuthData","async","version","pan","pin","expiryDate","messageBytes","hex","bytes","push","substring","hexToBytes","str","charCodeAt","toString","toHex","BigInt","exponent","modHex","keyByteLen","Math","ceil","padded","data","Error","padLen","Array","r","crypto","getRandomValues","arr","Uint8Array","floor","random","pkcs1Pad","m","result","b","_bigIntFromBytes","c","base","exp","mod","_bigIntModPow","n","rem","unshift","Number","_bigIntToBytes","btoa","String","fromCharCode","Buffer","from","console","formatExpiryForApi","cleanPan","VoxePayApiClient","constructor","apiKey","baseUrl","bearerToken","this","setBearerToken","token","request","endpoint","body","includeApiKey","url","headers","Accept","response","fetch","method","JSON","stringify","json","ok","errorMessage","message","status","errorCode","get","authType","success","initiatePayment","paymentLinkSlug","encodeURIComponent","initiateTransferPayment","validateOTP","slug","resendOTP","getPaymentStatus","transactionRef","options","queryParams","undefined","simulateWebhook","bypassKey","ICONS","CARD_BRAND_DISPLAY","visa","mastercard","amex","verve","discover","VoxePayModal","container","overlay","apiClient","statusPollingInterval","statusPollingTimeout","handleEscape","e","key","close","document","removeEventListener","methods","paymentMethods","_sdkConfig","state","otp","errors","isProcessing","isSuccess","isOtpStep","otpTimer","canResendOtp","otpTimerInterval","paymentMethod","transferTimer","transferTimerInterval","bankTransferDetails","paymentId","transactionId","eciFlag","otpDeliveryMessage","open","injectStyles","render","attachEventListeners","requestAnimationFrame","classList","add","stopTransferTimer","stopStatusPolling","remove","setTimeout","onClose","getElementById","createElement","id","textContent","getStyles","head","appendChild","className","innerHTML","getModalHTML","querySelector","getPaymentMethods","formattedAmount","feeDetails","round","grossAmount","totalFees","showTabs","isCard","description","getCardFormHTML","getBankTransferHTML","details","displayAmount","feeBreakdown","totalPayableAmount","accountNumber","bankName","accountName","reference","formatCountdown","expiresIn","seconds","s","padStart","renderSuccessView","formContainer","closeBtn","addEventListener","renderErrorModal","recoverable","isRetryable","retryBtn","handleBackToCard","showErrorModal","onError","renderOTPView","subtitle","sentToPhone","customerPhone","toLowerCase","customerEmail","feeBreakdownHTML","totalAmount","titleEl","attachOTPEventListeners","startOTPTimer","otpInputs","querySelectorAll","forEach","input","index","handleOTPInput","handleOTPKeydown","handleOTPPaste","verifyBtn","handleOTPSubmit","resendBtn","handleResendOTP","backBtn","focus","target","nextInput","updateOTPState","clearError","prevInput","preventDefault","pastedData","clipboardData","getData","inputs","split","timerEl","timerContainer","window","setInterval","clearInterval","display","disabled","setOTPProcessing","verifyOTP","processPayment","onSuccess","paymentError","showError","organizationId","cardInput","expiryInput","cvvInput","pinInput","tabs","tab","dataset","switchPaymentMethod","handleCardInput","validateField","handleExpiryInput","handleCVVInput","handlePinInput","form","handleSubmit","attachBankTransferListeners","startTransferTimer","loadBankTransferDetails","copyBtn","accountNum","copy","copyToClipboard","confirmBtn","handleTransferConfirm","onBankTransferRequested","toUpperCase","customerId","customerName","authData","source","narration","durationMinutes","va","virtualAccount","expiresAtDate","expires_at","nowMs","expiresInSeconds","max","getTime","account_number","bank_name","account_name","expiresAt","getDVAErrorTitle","ACCOUNT_CREATION_FAILED","ACCOUNT_EXPIRED","INVALID_AMOUNT","UNAUTHORIZED","ORGANIZATION_NOT_FOUND","MISSING_VIRTUAL_ACCOUNT","SDK_ERROR","text","navigator","clipboard","writeText","textarea","position","opacity","select","execCommand","removeChild","timestamp","toISOString","renderPollingView","startStatusPolling","cancelBtn","amt","poll","statusData","handlePollingStatusUpdate","statusEl","clearTimeout","completedAt","renderTransferErrorView","overpaid","title","countdownEl","formatted","brandEl","field","validatePIN","errorEl","inputEl","isCardValid","isExpiryValid","isCVVValid","isPinValid","setProcessing","payload","log","submitBtn","VoxePaySDK","config","currentModal","initialized","init","theme","locale","applyAutoTheme","documentElement","customStyles","applyCustomStyles","checkout","closeModal","setTheme","matchMedia","matches","toggle","styles","root","Object","entries","setProperty","isInitialized","VoxePay","NGN","USD","EUR","GBP","GHS","KES","ZAR"],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * VoxePay - Modern Payment Checkout SDK
3
+ *
4
+ * A beautiful, modern payment modal for the web.
5
+ *
6
+ * @example
7
+ * ```javascript
8
+ * // Initialize VoxePay
9
+ * VoxePay.init({ apiKey: 'pk_live_xxxxx' });
10
+ *
11
+ * // Open checkout
12
+ * VoxePay.checkout({
13
+ * amount: 4999,
14
+ * currency: 'NGN',
15
+ * description: 'Premium Plan',
16
+ * onSuccess: (result) => console.log('Paid!', result),
17
+ * onError: (error) => console.error('Failed', error),
18
+ * });
19
+ * ```
20
+ */
21
+ import type { VoxePayConfig, CheckoutOptions } from './types';
22
+ declare class VoxePaySDK {
23
+ private config;
24
+ private currentModal;
25
+ private initialized;
26
+ /**
27
+ * Initialize VoxePay with your configuration
28
+ * @param config - Configuration object with required organizationId and optional settings
29
+ */
30
+ init(config: VoxePayConfig): void;
31
+ /**
32
+ * Open the checkout modal
33
+ * @param options - Checkout options including amount, currency, and callbacks
34
+ */
35
+ checkout(options: CheckoutOptions): void;
36
+ /**
37
+ * Close the current checkout modal
38
+ */
39
+ closeModal(): void;
40
+ /**
41
+ * Set the theme
42
+ * @param theme - 'dark', 'light', or 'auto'
43
+ */
44
+ setTheme(theme: 'dark' | 'light' | 'auto'): void;
45
+ /**
46
+ * Apply system theme preference
47
+ */
48
+ private applyAutoTheme;
49
+ /**
50
+ * Apply custom CSS variables
51
+ */
52
+ private applyCustomStyles;
53
+ /**
54
+ * Get the SDK version
55
+ */
56
+ get version(): string;
57
+ /**
58
+ * Check if SDK is initialized
59
+ */
60
+ get isInitialized(): boolean;
61
+ }
62
+ declare const VoxePay: VoxePaySDK;
63
+ export { VoxePay, VoxePaySDK };
package/package.json CHANGED
@@ -1,6 +1,44 @@
1
1
  {
2
2
  "name": "@voxepay/checkout",
3
- "version": "0.0.1-security",
4
- "description": "security holding package",
5
- "repository": "npm/security-holder"
3
+ "version": "0.5.19",
4
+ "description": "Modern payment checkout modal for VoxePay - beautiful, fast, and secure",
5
+ "author": "VoxePay",
6
+ "license": "MIT",
7
+ "main": "./dist/index.cjs.js",
8
+ "module": "./dist/index.esm.js",
9
+ "types": "./dist/index.d.ts",
10
+ "sideEffects": false,
11
+ "keywords": [
12
+ "voxepay",
13
+ "checkout",
14
+ "payment",
15
+ "modal",
16
+ "fintech",
17
+ "nigeria",
18
+ "payment-gateway"
19
+ ],
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "https://github.com/voxepay/voxepay-checkout.git"
23
+ },
24
+ "files": [
25
+ "dist",
26
+ "src",
27
+ "README.md"
28
+ ],
29
+ "scripts": {
30
+ "build": "rollup -c rollup.config.mjs",
31
+ "dev": "rollup -c rollup.config.mjs --watch",
32
+ "prepublishOnly": "npm run build"
33
+ },
34
+ "devDependencies": {
35
+ "@rollup/plugin-commonjs": "^25.0.0",
36
+ "@rollup/plugin-json": "^6.1.0",
37
+ "@rollup/plugin-node-resolve": "^15.0.0",
38
+ "@rollup/plugin-terser": "^0.4.4",
39
+ "@rollup/plugin-typescript": "^11.0.0",
40
+ "rollup": "^4.62.4",
41
+ "tslib": "^2.6.0",
42
+ "typescript": "^5.0.0"
43
+ }
6
44
  }
@@ -0,0 +1,301 @@
1
+ /**
2
+ * VoxePay Payment API Client
3
+ * Handles communication with the VoxePay payment gateway
4
+ */
5
+
6
+ const DEFAULT_BASE_URL = 'https://devpay.voxepay.app';
7
+
8
+ export interface InitiatePaymentRequest {
9
+ organizationId: string;
10
+ transactionRef: string;
11
+ customerId?: string;
12
+ customerEmail?: string;
13
+ customerPhone?: string;
14
+ customerName?: string;
15
+ amount: number;
16
+ currency: string;
17
+ paymentMethod: 'CARD' | 'BANK_TRANSFER';
18
+ authData: string;
19
+ narration?: string;
20
+ /** Virtual account validity in minutes (5-1440). Only for BANK_TRANSFER. Default: 30 */
21
+ durationMinutes?: number;
22
+ }
23
+
24
+ export interface VirtualAccountResponse {
25
+ account_number: string;
26
+ account_name: string;
27
+ bank_name: string;
28
+ bank_code: string;
29
+ expires_at: string;
30
+ status: string;
31
+ }
32
+
33
+ export interface InitiatePaymentResponse {
34
+ /** Backend sends `id` (not `paymentId`) for payment-links/public/.../pay */
35
+ id: string;
36
+ transactionRef: string;
37
+ status: string;
38
+ message: string;
39
+ /** Legacy field — some endpoints may still return this */
40
+ paymentId?: string;
41
+ transactionId?: string;
42
+ eciFlag?: string;
43
+ otpRequired?: boolean;
44
+ virtualAccount?: VirtualAccountResponse;
45
+ feeDetails?: {
46
+ transactionFee: number;
47
+ transactionFeeVat: number;
48
+ totalFees: number;
49
+ grossAmount: number;
50
+ currency: string;
51
+ };
52
+ [key: string]: unknown;
53
+ }
54
+
55
+ export type DVAPaymentStatus =
56
+ | 'INITIATED'
57
+ | 'PENDING_PAYMENT'
58
+ | 'PAYMENT_RECEIVED'
59
+ | 'COMPLETED'
60
+ | 'PARTIAL_PAYMENT'
61
+ | 'OVERPAID'
62
+ | 'EXPIRED'
63
+ | 'FAILED'
64
+ | 'CANCELLED';
65
+
66
+ export interface PaymentStatusResponse {
67
+ id: string;
68
+ transactionRef: string;
69
+ customerId?: string;
70
+ amount: number;
71
+ currency: string;
72
+ paymentMethod: 'CARD' | 'BANK_TRANSFER';
73
+ status: DVAPaymentStatus;
74
+ paymentId?: string;
75
+ otpRequired?: boolean;
76
+ authorizationUrl?: string;
77
+ message?: string;
78
+ otpAttempts?: number;
79
+ maxOtpAttempts?: number;
80
+ createdAt: string;
81
+ completedAt?: string;
82
+ virtualAccount?: {
83
+ account_number: string;
84
+ account_name: string;
85
+ bank_name: string;
86
+ bank_code: string;
87
+ expires_at: string;
88
+ status: string;
89
+ };
90
+ feeDetails?: {
91
+ transactionFee: number;
92
+ transactionFeeVat: number;
93
+ totalFees: number;
94
+ grossAmount: number;
95
+ currency: string;
96
+ };
97
+ }
98
+
99
+ export interface ValidateOTPRequest {
100
+ paymentId: string;
101
+ otp: string;
102
+ /** Legacy field — some backends expect `transactionId` */
103
+ transactionId?: string;
104
+ /** Backend payment-links uses `transactionRef` as the identifier */
105
+ transactionRef?: string;
106
+ eciFlag?: string;
107
+ organizationId: string;
108
+ }
109
+
110
+ export interface ValidateOTPResponse {
111
+ status: string;
112
+ message: string;
113
+ paymentId: string;
114
+ transactionRef?: string;
115
+ amount?: number;
116
+ currency?: string;
117
+ [key: string]: unknown;
118
+ }
119
+
120
+ export interface ResendOTPRequest {
121
+ transactionRef: string;
122
+ organizationId: string;
123
+ }
124
+
125
+ export class VoxePayApiClient {
126
+ private apiKey?: string;
127
+ private bearerToken?: string;
128
+ private baseUrl: string;
129
+
130
+ constructor(apiKey?: string, baseUrl?: string, bearerToken?: string) {
131
+ this.apiKey = apiKey;
132
+ this.bearerToken = bearerToken;
133
+ this.baseUrl = baseUrl || DEFAULT_BASE_URL;
134
+ }
135
+
136
+ /**
137
+ * Set Bearer token for authenticated endpoints (like getPaymentStatus)
138
+ */
139
+ setBearerToken(token: string): void {
140
+ this.bearerToken = token;
141
+ }
142
+
143
+ private async request<T>(endpoint: string, body: unknown, includeApiKey = true): Promise<T> {
144
+ const url = `${this.baseUrl}${endpoint}`;
145
+
146
+ const headers: Record<string, string> = {
147
+ 'Content-Type': 'application/json',
148
+ 'Accept': 'application/json',
149
+ };
150
+
151
+ if (includeApiKey && this.apiKey) {
152
+ headers['X-API-Key'] = this.apiKey;
153
+ }
154
+
155
+ const response = await fetch(url, {
156
+ method: 'POST',
157
+ headers,
158
+ body: JSON.stringify(body),
159
+ });
160
+
161
+ const data = await response.json();
162
+
163
+ if (!response.ok) {
164
+ const errorMessage = data?.message || data?.error || `Request failed with status ${response.status}`;
165
+ const error: any = new Error(errorMessage);
166
+ error.code = data?.errorCode || data?.code || `HTTP_${response.status}`;
167
+ error.status = response.status;
168
+ error.data = data;
169
+ throw error;
170
+ }
171
+
172
+ return data as T;
173
+ }
174
+
175
+ private async get<T>(endpoint: string, authType: 'api-key' | 'bearer' | 'none' = 'api-key'): Promise<T> {
176
+ const url = `${this.baseUrl}${endpoint}`;
177
+
178
+ const headers: Record<string, string> = {
179
+ 'Accept': 'application/json',
180
+ };
181
+
182
+ if (authType === 'bearer' && this.bearerToken) {
183
+ headers['Authorization'] = `Bearer ${this.bearerToken}`;
184
+ } else if (authType === 'api-key' && this.apiKey) {
185
+ headers['X-API-Key'] = this.apiKey;
186
+ }
187
+ // authType === 'none' → no auth header added
188
+
189
+ const response = await fetch(url, {
190
+ method: 'GET',
191
+ headers,
192
+ });
193
+
194
+ const data = await response.json();
195
+
196
+ if (!response.ok) {
197
+ const errorMessage = data?.message || data?.error || `Request failed with status ${response.status}`;
198
+ const error: any = new Error(errorMessage);
199
+ error.code = data?.errorCode || data?.code || `HTTP_${response.status}`;
200
+ error.status = response.status;
201
+ error.data = data;
202
+ error.success = data?.success;
203
+ throw error;
204
+ }
205
+
206
+ return data as T;
207
+ }
208
+
209
+ /**
210
+ * Initiate payment (card or bank transfer) via public payment-link endpoint.
211
+ */
212
+ async initiatePayment(
213
+ paymentLinkSlug: string,
214
+ data: InitiatePaymentRequest
215
+ ): Promise<InitiatePaymentResponse> {
216
+ const response = await this.request<{ success?: boolean; data?: InitiatePaymentResponse } & InitiatePaymentResponse>(
217
+ `/api/v1/payment-links/public/${encodeURIComponent(paymentLinkSlug)}/pay`,
218
+ data,
219
+ false
220
+ );
221
+ if (response.data && typeof response.data === 'object' && 'transactionRef' in response.data) {
222
+ return response.data;
223
+ }
224
+ return response;
225
+ }
226
+
227
+ /**
228
+ * @deprecated Use initiatePayment with a paymentLinkSlug instead.
229
+ */
230
+ async initiateTransferPayment(
231
+ paymentLinkSlug: string,
232
+ data: InitiatePaymentRequest
233
+ ): Promise<InitiatePaymentResponse> {
234
+ return this.initiatePayment(paymentLinkSlug, data);
235
+ }
236
+
237
+ /**
238
+ * Validate OTP for a payment
239
+ * @param slug - The payment link slug
240
+ * @param data - OTP validation payload
241
+ */
242
+ async validateOTP(slug: string, data: ValidateOTPRequest): Promise<ValidateOTPResponse> {
243
+ return this.request<ValidateOTPResponse>(
244
+ `/api/v1/payment-links/public/${encodeURIComponent(slug)}/validate-otp`,
245
+ data,
246
+ false
247
+ );
248
+ }
249
+
250
+ /**
251
+ * Resend OTP for a payment
252
+ * @param slug - The payment link slug
253
+ * @param data - Resend OTP payload
254
+ */
255
+ async resendOTP(slug: string, data: ResendOTPRequest): Promise<void> {
256
+ await this.request<unknown>(
257
+ `/api/v1/payment-links/public/${encodeURIComponent(slug)}/resend-otp`,
258
+ data,
259
+ false
260
+ );
261
+ }
262
+
263
+ /**
264
+ * Get payment status by transaction reference (used for polling DVA payments)
265
+ * Uses public endpoint - no authentication required
266
+ * @param transactionRef - The transaction reference to check
267
+ * @param options - Optional query parameters (simulateWebhook, bypassKey)
268
+ */
269
+ async getPaymentStatus(
270
+ transactionRef: string,
271
+ options?: { simulateWebhook?: boolean; bypassKey?: string }
272
+ ): Promise<PaymentStatusResponse> {
273
+ let endpoint = `/api/v1/payments/public/${encodeURIComponent(transactionRef)}`;
274
+
275
+ // Add query parameters if provided
276
+ const queryParams: string[] = [];
277
+ if (options?.simulateWebhook !== undefined) {
278
+ queryParams.push(`simulateWebhook=${options.simulateWebhook}`);
279
+ }
280
+ if (options?.bypassKey) {
281
+ queryParams.push(`bypassKey=${encodeURIComponent(options.bypassKey)}`);
282
+ }
283
+ if (queryParams.length > 0) {
284
+ endpoint += `?${queryParams.join('&')}`;
285
+ }
286
+
287
+ const response = await this.get<{ success: boolean; message: string; data: PaymentStatusResponse; errorCode?: string }>(
288
+ endpoint,
289
+ 'none' // Public endpoint — no auth required
290
+ );
291
+
292
+ if (!response.success) {
293
+ const error: any = new Error(response.message || 'Payment not found');
294
+ error.code = response.errorCode || 'PAYMENT_NOT_FOUND';
295
+ error.success = false;
296
+ throw error;
297
+ }
298
+
299
+ return response.data;
300
+ }
301
+ }