@payconductor/react 1.0.3 → 1.0.5

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.
Files changed (34) hide show
  1. package/dist/esm/three-ds.d.ts +1 -0
  2. package/dist/esm/tokenize.d.ts +1 -0
  3. package/dist/index.cjs.js +37 -2
  4. package/dist/index.cjs.js.map +1 -1
  5. package/dist/index.d.ts +4 -0
  6. package/dist/index.es.js +1008 -306
  7. package/dist/index.es.js.map +1 -1
  8. package/dist/payconductor/constants.d.ts +1 -1
  9. package/dist/payconductor/hooks/index.d.ts +4 -0
  10. package/dist/payconductor/hooks/use-three-ds.d.ts +13 -0
  11. package/dist/payconductor/hooks/use-tokenize.d.ts +11 -0
  12. package/dist/payconductor/iframe/constants.d.ts +1 -1
  13. package/dist/payconductor/iframe/types.d.ts +133 -2
  14. package/dist/payconductor/internal.d.ts +1 -1
  15. package/dist/payconductor/loader.d.ts +1 -0
  16. package/dist/payconductor/payconductor-three-ds.d.ts +5 -0
  17. package/dist/payconductor/payconductor.d.ts +3 -0
  18. package/dist/payconductor/three-ds/api.d.ts +12 -0
  19. package/dist/payconductor/three-ds/browser.d.ts +13 -0
  20. package/dist/payconductor/three-ds/handler.d.ts +12 -0
  21. package/dist/payconductor/three-ds/index.d.ts +1 -0
  22. package/dist/payconductor/three-ds/providers/index.d.ts +6 -0
  23. package/dist/payconductor/three-ds/providers/mercado-pago.d.ts +9 -0
  24. package/dist/payconductor/three-ds/providers/pagarme.d.ts +9 -0
  25. package/dist/payconductor/three-ds/providers/pagseguro.d.ts +7 -0
  26. package/dist/payconductor/three-ds/providers/payconductor.d.ts +7 -0
  27. package/dist/payconductor/three-ds/types.d.ts +78 -0
  28. package/dist/payconductor/tokenize/api.d.ts +26 -0
  29. package/dist/payconductor/tokenize/index.d.ts +1 -0
  30. package/dist/payconductor/tokenize/providers/index.d.ts +6 -0
  31. package/dist/payconductor/tokenize/providers/mercado-pago.d.ts +6 -0
  32. package/dist/payconductor/tokenize/tokenize.d.ts +9 -0
  33. package/dist/payconductor/tokenize/types.d.ts +50 -0
  34. package/package.json +1 -1
@@ -8,4 +8,4 @@ export declare function validatePayment(iframe: HTMLIFrameElement | Element | un
8
8
  export declare function resetPayment(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null): Promise<void>;
9
9
  export declare function sendConfig(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, config: Pick<PayConductorConfig, "theme" | "locale" | "paymentMethods" | "defaultPaymentMethod" | "showPaymentButtons" | "nuPayConfig">): Promise<void>;
10
10
  export declare function sendInit(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, config: PayConductorConfig): Promise<void>;
11
- export declare function handleMessageEvent(event: MessageEvent, pendingMap: Map<string, PendingRequest> | null, setError: (value: string | null) => void, onReady?: () => void, onError?: (error: Error) => void, onPaymentComplete?: (data: PaymentResult) => void, onPaymentFailed?: (data: PaymentResult) => void, onPaymentPending?: (data: PaymentResult) => void, onPaymentMethodSelected?: (method: PaymentMethod) => void): void;
11
+ export declare function handleMessageEvent(event: MessageEvent, pendingMap: Map<string, PendingRequest> | null, setError: (value: string | null) => void, onReady?: () => void, onError?: (error: Error) => void, onPaymentComplete?: (data: PaymentResult) => void, onPaymentFailed?: (data: PaymentResult) => void, onPaymentPending?: (data: PaymentResult) => void, onPaymentMethodSelected?: (method: PaymentMethod) => void, onThreeDSChallenge?: () => void, onThreeDSComplete?: () => void, onThreeDSFailed?: () => void): void;
@@ -0,0 +1 @@
1
+ export declare function loadScript(url: string): Promise<void>;
@@ -0,0 +1,5 @@
1
+ export interface PayConductorThreeDSElementProps {
2
+ height?: string;
3
+ }
4
+ declare function PayConductorThreeDSElement(props: PayConductorThreeDSElementProps): import("react/jsx-runtime").JSX.Element;
5
+ export default PayConductorThreeDSElement;
@@ -9,6 +9,9 @@ export interface PayConductorEmbedProps extends Omit<PayConductorConfig, "orderI
9
9
  onPaymentFailed?: (result: PaymentResult) => void;
10
10
  onPaymentPending?: (result: PaymentResult) => void;
11
11
  onPaymentMethodSelected?: (method: PaymentMethod) => void;
12
+ onThreeDSChallenge?: () => void;
13
+ onThreeDSComplete?: () => void;
14
+ onThreeDSFailed?: () => void;
12
15
  }
13
16
  declare function PayConductor(props: PayConductorEmbedProps): import("react/jsx-runtime").JSX.Element;
14
17
  export default PayConductor;
@@ -0,0 +1,12 @@
1
+ export declare class PayConductorThreeDSApiError extends Error {
2
+ readonly title?: unknown | undefined;
3
+ constructor(message: string, title?: unknown | undefined);
4
+ }
5
+ export declare class PayConductorThreeDSApi {
6
+ private readonly publicKey;
7
+ constructor(publicKey: string);
8
+ completeManualChallenge(orderId: string, providerTransactionId: string): Promise<void>;
9
+ private parseResponseError;
10
+ private get baseUrl();
11
+ private get headers();
12
+ }
@@ -0,0 +1,13 @@
1
+ export type ThreeDSecureBrowserData = {
2
+ ip?: string;
3
+ userAgent?: string;
4
+ acceptHeader?: string;
5
+ language?: string;
6
+ colorDepth?: string;
7
+ screenHeight?: string;
8
+ screenWidth?: string;
9
+ timeZoneOffset?: string;
10
+ javaEnabled: boolean;
11
+ javaScriptEnabled: boolean;
12
+ };
13
+ export declare function collectBrowserData(): ThreeDSecureBrowserData;
@@ -0,0 +1,12 @@
1
+ import { ThreeDSecureData, ThreeDSecureOptions, ThreeDSecureResult } from './types';
2
+ import { IntegrationProvider } from '../iframe/types';
3
+
4
+ export declare class PayConductor3DSSDK {
5
+ private readonly data;
6
+ private provider;
7
+ constructor(threeDSecure: ThreeDSecureData);
8
+ get needsChallenge(): boolean;
9
+ get acquirer(): IntegrationProvider | undefined;
10
+ authenticate(options?: Omit<ThreeDSecureOptions, "threeDSecure">): Promise<ThreeDSecureResult>;
11
+ destroy(): void;
12
+ }
@@ -0,0 +1 @@
1
+ export { PayConductor3DSSDK } from './handler';
@@ -0,0 +1,6 @@
1
+ import { AbstractThreeDSProvider, ThreeDSecureData, ThreeDSecureOptions } from '../types';
2
+ import { IntegrationProvider } from '../../iframe/types';
3
+
4
+ type ThreeDSProviderConstructor = new (data: ThreeDSecureData, options: ThreeDSecureOptions) => AbstractThreeDSProvider;
5
+ export declare const threeDSProviders: Partial<Record<IntegrationProvider | "PayConductor", ThreeDSProviderConstructor>>;
6
+ export {};
@@ -0,0 +1,9 @@
1
+ import { AbstractThreeDSProvider, ThreeDSecureResult } from '../types';
2
+
3
+ export declare class MercadoPagoThreeDSProvider extends AbstractThreeDSProvider {
4
+ private iframe;
5
+ private messageListener;
6
+ private timeoutId;
7
+ authenticate(): Promise<ThreeDSecureResult>;
8
+ cleanup(): void;
9
+ }
@@ -0,0 +1,9 @@
1
+ import { AbstractThreeDSProvider, ThreeDSecureResult } from '../types';
2
+
3
+ export declare class PagarMeThreeDSProvider extends AbstractThreeDSProvider {
4
+ private timeoutId;
5
+ private methodContainer;
6
+ authenticate(): Promise<ThreeDSecureResult>;
7
+ cleanup(): void;
8
+ private buildOrderData;
9
+ }
@@ -0,0 +1,7 @@
1
+ import { AbstractThreeDSProvider, ThreeDSecureResult } from '../types';
2
+
3
+ export declare class PagSeguroThreeDSProvider extends AbstractThreeDSProvider {
4
+ authenticate(): Promise<ThreeDSecureResult>;
5
+ cleanup(): void;
6
+ private toAlpha3;
7
+ }
@@ -0,0 +1,7 @@
1
+ import { AbstractThreeDSProvider, ThreeDSecureResult } from '../types';
2
+
3
+ export declare class PayConductorThreeDSProvider extends AbstractThreeDSProvider {
4
+ private timeoutId;
5
+ authenticate(): Promise<ThreeDSecureResult>;
6
+ cleanup(): void;
7
+ }
@@ -0,0 +1,78 @@
1
+ import { IntegrationProvider, OrganizationEnvironment } from '../iframe/types';
2
+
3
+ export type ThreeDSecureData = {
4
+ orderId?: string;
5
+ status?: string;
6
+ statusDetail?: string;
7
+ acquirer?: IntegrationProvider;
8
+ environment?: OrganizationEnvironment;
9
+ authToken?: string;
10
+ threeDsUrl?: string;
11
+ creq?: string;
12
+ operationUrl?: string;
13
+ publicKey?: string;
14
+ dsTransactionId?: string;
15
+ version?: string;
16
+ card?: {
17
+ number: string;
18
+ expMonth: string;
19
+ expYear: string;
20
+ holderName: string;
21
+ };
22
+ customer?: {
23
+ name: string;
24
+ email: string;
25
+ document?: string;
26
+ phones?: Array<{
27
+ countryCode: string;
28
+ areaCode: string;
29
+ number: string;
30
+ type?: string;
31
+ }>;
32
+ };
33
+ amount?: number;
34
+ currency?: string;
35
+ installments?: number;
36
+ billingAddress?: {
37
+ street: string;
38
+ number: string;
39
+ complement?: string;
40
+ district?: string;
41
+ state: string;
42
+ country: string;
43
+ city: string;
44
+ zipCode: string;
45
+ };
46
+ };
47
+ export type ThreeDSecureOptions = {
48
+ threeDSecure: ThreeDSecureData;
49
+ onComplete?: () => void;
50
+ onError?: (error: Error) => void;
51
+ onTimeout?: () => void;
52
+ timeoutMs?: number;
53
+ };
54
+ export declare enum ThreeDSecureResultStatus {
55
+ Success = "Success",
56
+ Failed = "Failed",
57
+ Timeout = "Timeout"
58
+ }
59
+ export type ThreeDSecureResult = {
60
+ status: ThreeDSecureResultStatus;
61
+ error?: Error;
62
+ authToken?: string;
63
+ dsTransactionId?: string;
64
+ };
65
+ export declare abstract class AbstractThreeDSProvider {
66
+ protected readonly data: ThreeDSecureData;
67
+ protected readonly options: ThreeDSecureOptions;
68
+ private overlay;
69
+ private modalContent;
70
+ constructor(data: ThreeDSecureData, options: ThreeDSecureOptions);
71
+ abstract authenticate(): Promise<ThreeDSecureResult>;
72
+ abstract cleanup(): void;
73
+ protected fail(message: string): ThreeDSecureResult;
74
+ protected showModal(): HTMLElement;
75
+ protected closeModal(): void;
76
+ protected resolveContainer(): HTMLElement;
77
+ private injectStyles;
78
+ }
@@ -0,0 +1,26 @@
1
+ import { CreateCustomerCard, SaveTokensBody } from './types';
2
+ import { IntegrationProvider } from '../iframe/types';
3
+
4
+ export declare class PayConductorTokenizeApiError extends Error {
5
+ readonly title?: unknown | undefined;
6
+ constructor(message: string, title?: unknown | undefined);
7
+ }
8
+ export declare class PayConductorTokenizeApi {
9
+ private readonly publicKey;
10
+ constructor(publicKey: string);
11
+ getSettings(): Promise<{
12
+ settings: {
13
+ settings: Record<string, string | number | boolean>;
14
+ key: IntegrationProvider;
15
+ integrationId: string;
16
+ }[];
17
+ }>;
18
+ createToken(input: CreateCustomerCard): Promise<{
19
+ token: string;
20
+ customerId: string;
21
+ }>;
22
+ saveTokens(data: SaveTokensBody[], customerId: string, cardToken: string): Promise<void>;
23
+ private parseResponseError;
24
+ private get baseUrl();
25
+ private get headers();
26
+ }
@@ -0,0 +1 @@
1
+ export { PayConductorTokenizeSDK } from './tokenize';
@@ -0,0 +1,6 @@
1
+ import { AbstractTokenizeProvider, TokenizeProviderInput } from '../types';
2
+ import { IntegrationProvider } from '../../iframe/types';
3
+
4
+ type TokenizeProviderConstructor = new (input: TokenizeProviderInput) => AbstractTokenizeProvider;
5
+ export declare const tokenizeProviders: Partial<Record<IntegrationProvider, TokenizeProviderConstructor>>;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ import { AbstractTokenizeProvider } from '../types';
2
+
3
+ export declare class MercadoPagoTokenizeProvider extends AbstractTokenizeProvider {
4
+ scriptUrl: string;
5
+ tokenize(): Promise<string>;
6
+ }
@@ -0,0 +1,9 @@
1
+ import { CardTokenizeRequest } from './types';
2
+
3
+ export declare class PayConductorTokenizeSDK {
4
+ private readonly publicKey;
5
+ private readonly api;
6
+ constructor(publicKey: string);
7
+ tokenizeCard(input: CardTokenizeRequest): Promise<string>;
8
+ private validateCard;
9
+ }
@@ -0,0 +1,50 @@
1
+ import { DocumentType, IntegrationProvider } from '../iframe/types';
2
+
3
+ export type CreateCustomerInput = {
4
+ documentNumber: string;
5
+ documentType: `${DocumentType}`;
6
+ email: string;
7
+ name: string;
8
+ phoneNumber: string;
9
+ address?: {
10
+ city: string;
11
+ country: string;
12
+ neighborhood: string;
13
+ number: string;
14
+ state: string;
15
+ street: string;
16
+ zipCode: string;
17
+ };
18
+ };
19
+ export type CreateCardInput = {
20
+ cvv: string;
21
+ expiration: {
22
+ month: number;
23
+ year: number;
24
+ };
25
+ holderName: string;
26
+ number: string;
27
+ };
28
+ export type TokenizeProviderInput = {
29
+ customer: CreateCustomerInput;
30
+ card: CreateCardInput;
31
+ setting: Record<string, string | number | boolean>;
32
+ saveCard?: boolean;
33
+ };
34
+ export type CardTokenizeRequest = Omit<TokenizeProviderInput, "setting">;
35
+ export declare abstract class AbstractTokenizeProvider {
36
+ protected readonly input: TokenizeProviderInput;
37
+ constructor(input: TokenizeProviderInput);
38
+ abstract scriptUrl: string;
39
+ abstract tokenize(): Promise<string>;
40
+ }
41
+ export type SaveTokensBody = {
42
+ integrationId: string;
43
+ providerKey: IntegrationProvider;
44
+ token: string;
45
+ };
46
+ export type CreateCustomerCard = {
47
+ customer: CreateCustomerInput;
48
+ card: CreateCardInput;
49
+ saveCard: boolean;
50
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payconductor/react",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "React SDK for PayConductor",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs.js",