@payconductor-sdk-web/library-react 1.0.4 → 1.0.6
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/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +39 -39
- package/dist/index.es.js.map +1 -1
- package/dist/payconductor/hooks/use-element.d.ts +2 -2
- package/dist/payconductor/iframe/types.d.ts +2 -2
- package/dist/payconductor/payconductor.d.ts +1 -1
- package/dist/payconductor/types.d.ts +2 -2
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const D=require("react/jsx-runtime"),m=require("react"),L="https://iframe.payconductor.ai/v1",O="http://localhost:5175",B=3e4,W="600px";var w=(e=>(e.Init="Init",e.Config="Config",e.Update="Update",e.ConfirmPayment="ConfirmPayment",e.Validate="Validate",e.Reset="Reset",e))(w||{}),I=(e=>(e.Ready="Ready",e.Error="Error",e.PaymentComplete="PaymentComplete",e.PaymentFailed="PaymentFailed",e.PaymentPending="PaymentPending",e.ValidationError="ValidationError",e.PaymentMethodSelected="PaymentMethodSelected",e))(I||{});const Q=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),U=Q?O:L,b=[O,L],v=W,F=B,s={INIT:w.Init,CONFIG:w.Config,UPDATE:w.Update,CONFIRM_PAYMENT:w.ConfirmPayment,VALIDATE:w.Validate,RESET:w.Reset,READY:I.Ready,ERROR:I.Error,PAYMENT_COMPLETE:I.PaymentComplete,PAYMENT_FAILED:I.PaymentFailed,PAYMENT_PENDING:I.PaymentPending,VALIDATION_ERROR:I.ValidationError,PAYMENT_METHOD_SELECTED:I.PaymentMethodSelected},$={INVALID_CLIENT:"InvalidClient",INVALID_TOKEN:"InvalidToken",NETWORK_ERROR:"NetworkError",IFRAME_NOT_READY:"IframeNotReady",PAYMENT_DECLINED:"PaymentDeclined",VALIDATION_ERROR:"ValidationError",TIMEOUT:"Timeout"};function K(e){const n=new URLSearchParams({publicKey:e.publicKey});return`${U}?${n.toString()}`}function V(){return crypto.randomUUID()}function g(e,n){return n.includes(e)}function S(){return new Map}function R(e,n,r,t){return new Promise((i,f)=>{if(!e||!("contentWindow"in e)){f(new Error("Iframe not defined"));return}if(!(e!=null&&e.contentWindow)){f(new Error("Iframe not ready"));return}if(!n){f(new Error("Pending requests not initialized"));return}const l=V();n.set(l,{resolve:i,reject:f}),e.contentWindow.postMessage({type:r,data:t,requestId:l},"*"),setTimeout(()=>{n!=null&&n.has(l)&&(n.delete(l),f(new Error("Request timeout")))},F)})}function Y(e,n,r){return R(e,n,s.CONFIRM_PAYMENT,{orderId:r.orderId})}function J(e,n,r){return R(e,n,s.VALIDATE,r)}function X(e,n){return R(e,n,s.RESET)}function Z(e,n,r){return R(e,n,s.CONFIG,r)}function x(e,n,r){return R(e,n,s.INIT,r)}function p(e,n,r,t,i,f,l,C,T,E){if(!g(e.origin,b))return;const N=e.data,{requestId:h,type:P,data:u,error:y}=N;if(h&&(n!=null&&n.has(h))){const{resolve:d,reject:M}=n.get(h);n.delete(h),y?M(new Error(String(y.message))):d(u);return}if(P===s.READY){r(!0),i==null||i();return}if(P===s.ERROR){t((y==null?void 0:y.message)||"Unknown error"),f==null||f(new Error(String(y==null?void 0:y.message)));return}if(P===s.PAYMENT_COMPLETE){u&&typeof u=="object"&&"status"in u&&(l==null||l(u));return}if(P===s.PAYMENT_FAILED){u&&typeof u=="object"&&"status"in u&&(C==null||C(u));return}if(P===s.PAYMENT_PENDING){u&&typeof u=="object"&&"status"in u&&(T==null||T(u));return}if(P===s.PAYMENT_METHOD_SELECTED){u&&typeof u=="object"&&"paymentMethod"in u&&(E==null||E(u.paymentMethod));return}}function G(e){const[n,r]=m.useState(()=>!1),[t,i]=m.useState(()=>!1),[f,l]=m.useState(()=>null),[C,T]=m.useState(()=>""),[E,N]=m.useState(()=>null),[h,P]=m.useState(()=>null),[u,y]=m.useState(()=>!1);return m.useEffect(()=>{const d=(...a)=>{e.debug&&console.log("[PayConductor]",...a)};d("SDK initializing",{publicKey:e.publicKey});const M=K({publicKey:e.publicKey});T(M),r(!0),N(S()),d("iframeUrl built:",M),d("pendingMap created");const _=()=>{var o,c;const a=(c=(o=window.PayConductor)==null?void 0:o.frame)==null?void 0:c.iframe;if(a){if(a instanceof HTMLIFrameElement)return a;if(typeof a=="object"&&a!==null){if("current"in a)return a.current??void 0;if("value"in a)return a.value??void 0}return a}},H={iframe:null,iframeUrl:M,get isReady(){return t},get error(){return f}},z={publicKey:e.publicKey,theme:e.theme,locale:e.locale,paymentMethods:e.paymentMethods,defaultPaymentMethod:e.defaultPaymentMethod},k={confirmPayment:a=>(d("confirmPayment called",{orderId:a.orderId}),Y(_(),E,a)),validate:a=>(d("validate called",a),J(_(),E,a)),reset:()=>(d("reset called"),X(_(),E)),getSelectedPaymentMethod:()=>h};window.PayConductor={frame:H,config:z,api:k,selectedPaymentMethod:h},d("window.PayConductor registered");const q=async()=>{if(!u){const a=_();if(!a){d("sendConfigToIframe: iframe not found, skipping");return}y(!0),d("sendConfig →",{theme:e.theme,locale:e.locale,paymentMethods:e.paymentMethods,defaultPaymentMethod:e.defaultPaymentMethod,showPaymentButtons:e.showPaymentButtons}),Z(a,E,{theme:e.theme,locale:e.locale,paymentMethods:e.paymentMethods,defaultPaymentMethod:e.defaultPaymentMethod,showPaymentButtons:e.showPaymentButtons,nuPayConfig:e.nuPayConfig})}},j=a=>{p(a,E,o=>{i(o),o&&(d("iframe Ready — sending config"),q())},o=>{l(o),d("iframe Error:",o)},()=>{var o;d("onReady fired"),(o=e.onReady)==null||o.call(e)},o=>{var c;d("onError fired:",o),(c=e.onError)==null||c.call(e,o)},o=>{var c;d("PaymentComplete:",o),(c=e.onPaymentComplete)==null||c.call(e,o)},o=>{var c;d("PaymentFailed:",o),(c=e.onPaymentFailed)==null||c.call(e,o)},o=>{var c;d("PaymentPending:",o),(c=e.onPaymentPending)==null||c.call(e,o)},o=>{var c;d("PaymentMethodSelected:",o),P(o),window.PayConductor&&(window.PayConductor.selectedPaymentMethod=o),(c=e.onPaymentMethodSelected)==null||c.call(e,o)})};window.addEventListener("message",j),d("SDK initialized — waiting for PayConductorCheckoutElement")},[]),D.jsx("div",{className:"payconductor",id:"payconductor",style:{display:"contents"},children:e.children})}function ee(e){const n=m.useRef(null),[r,t]=m.useState(()=>""),[i,f]=m.useState(()=>!1);return m.useEffect(()=>{const l=typeof window<"u"?window.PayConductor:null;l||console.warn("[PayConductorCheckoutElement] window.PayConductor not found — ensure <PayConductor> is mounted before <PayConductorCheckoutElement>"),l!=null&&l.frame&&(t(l.frame.iframeUrl||""),l.frame.iframe=n.current,console.log("[PayConductorCheckoutElement] iframe registered, src:",r)),f(!0)},[]),D.jsx("div",{className:"payconductor-element",style:{width:"100%"},children:i&&r?D.jsx("iframe",{allow:"payment",title:"PayConductor",ref:n,src:r,style:{width:"100%",height:e.height||v,border:"none"}}):null})}function te(){const e=typeof window<"u"?window.PayConductor:null,n=e!=null&&e.config?{publicKey:e.config.publicKey,orderId:e.config.orderId,theme:e.config.theme,locale:e.config.locale}:{},r=e!=null&&e.frame?{iframe:e.frame.iframe,isReady:e.frame.isReady,error:e.frame.error}:{iframe:null,isReady:!1,error:null};return{...n,...r}}function A(e){var r;if(!((r=e==null?void 0:e.frame)!=null&&r.iframe))return null;const n=e.frame.iframe;if(n instanceof HTMLIFrameElement)return n;if(n&&typeof n=="object"&&"value"in n){const t=n.value;if(t instanceof HTMLIFrameElement)return t}return null}function ne(){const e=typeof window<"u"?window.PayConductor:null,n=(r,t)=>{if(!e)return;const i=A(e);i!=null&&i.contentWindow&&i.contentWindow.postMessage({type:r,data:t},"*")};return e?{init:async r=>{const t=A(e),i=S();return x(t||void 0,i,r)},confirmPayment:async r=>{const t=A(e),i=S();if(!r.orderId)throw new Error("Order ID is required");return Y(t||void 0,i,r)},validate:e.api.validate,reset:e.api.reset,getSelectedPaymentMethod:()=>(e==null?void 0:e.selectedPaymentMethod)??null,updateConfig:r=>{const t=e.config;n(s.CONFIG,{publicKey:t==null?void 0:t.publicKey,orderId:t==null?void 0:t.orderId,theme:r.theme??(t==null?void 0:t.theme),locale:r.locale??(t==null?void 0:t.locale),paymentMethods:r.paymentMethods??(t==null?void 0:t.paymentMethods)})},updateorderId:r=>{const t=e.config;n(s.CONFIG,{publicKey:t==null?void 0:t.publicKey,orderId:r,theme:t==null?void 0:t.theme,locale:t==null?void 0:t.locale,paymentMethods:t==null?void 0:t.paymentMethods})},update:r=>{n(s.UPDATE,r)},submit:async()=>{const r=A(e),t=S();try{return await R(r||void 0,t,s.CONFIRM_PAYMENT,{}),{paymentMethod:void 0}}catch(i){return{error:{message:i instanceof Error?i.message:"Payment failed",code:"payment_error",type:"payment_error"}}}}}:{init:async()=>{throw new Error("PayConductor not initialized")},confirmPayment:async()=>{throw new Error("PayConductor not initialized")},validate:async()=>{throw new Error("PayConductor not initialized")},reset:async()=>{throw new Error("PayConductor not initialized")},getSelectedPaymentMethod:()=>null,updateConfig:()=>{throw new Error("PayConductor not initialized")},updateorderId:()=>{throw new Error("PayConductor not initialized")},update:()=>{throw new Error("PayConductor not initialized")},submit:async()=>{throw new Error("PayConductor not initialized")}}}exports.ALLOWED_ORIGINS=b;exports.ERROR_CODES=$;exports.IFRAME_BASE_URL=U;exports.IFRAME_DEFAULT_HEIGHT_VALUE=v;exports.POST_MESSAGES=s;exports.PayConductor=G;exports.PayConductorCheckoutElement=ee;exports.REQUEST_TIMEOUT=F;exports.buildIframeUrl=K;exports.default=G;exports.generateRequestId=V;exports.isValidOrigin=g;exports.usePayConductor=te;exports.usePayconductorElement=ne;
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../src/payconductor/iframe/constants.ts","../src/payconductor/iframe/types.ts","../src/payconductor/constants.ts","../src/payconductor/utils.ts","../src/payconductor/internal.ts","../src/payconductor/payconductor.tsx","../src/payconductor/payconductor-element.tsx","../src/payconductor/hooks/use-payconductor.ts","../src/payconductor/hooks/use-element.ts"],"sourcesContent":["// PayConductor Shared Constants\n// Served statically at iframe.payconductor.ai/constants.ts\n// Used by the iFrame (imported directly) and the SDK Web (synced with: bun sync)\n\nexport const APP_BASE_URL_PROD = \"https://app.payconductor.ai\";\nexport const API_BASE_URL_PROD = \"https://app.payconductor.ai/api/v1\";\nexport const IFRAME_BASE_URL_PROD = \"https://iframe.payconductor.ai/v1\";\nexport const IFRAME_BASE_URL_DEV = \"http://localhost:5175\";\nexport const APP_BASE_URL_DEV = \"http://localhost:3000\";\nexport const DEFAULT_LOCALE = \"pt-BR\";\nexport const REQUEST_TIMEOUT_MS = 30000;\nexport const IFRAME_DEFAULT_HEIGHT = \"600px\"","// PayConductor Shared Types\n// Served statically at iframe.payconductor.ai/types.ts\n// Used by the iFrame (imported directly) and the SDK Web (synced with: bun sync)\n\nexport enum PaymentMethod {\n Pix = \"Pix\",\n CreditCard = \"CreditCard\",\n DebitCard = \"DebitCard\",\n BankSlip = \"BankSlip\",\n Crypto = \"Crypto\",\n ApplePay = \"ApplePay\",\n NuPay = \"NuPay\",\n PicPay = \"PicPay\",\n AmazonPay = \"AmazonPay\",\n SepaDebit = \"SepaDebit\",\n GooglePay = \"GooglePay\",\n}\nexport enum PaymentMethodLayout {\n Grid = \"grid\",\n Vertical = \"vertical\",\n Horizontal = \"horizontal\",\n}\nexport enum PaymentStatus {\n Succeeded = \"succeeded\",\n Pending = \"pending\",\n Failed = \"failed\",\n}\nexport enum DeviceType {\n Android = \"android\",\n IOS = \"ios\",\n Web = \"web\",\n}\nexport enum InputStyleKey {\n Padding = \"padding\",\n Radius = \"radius\",\n Color = \"color\",\n Background = \"background\",\n Shadow = \"shadow\",\n}\nexport enum OutgoingMessage {\n Init = \"Init\",\n Config = \"Config\",\n Update = \"Update\",\n ConfirmPayment = \"ConfirmPayment\",\n Validate = \"Validate\",\n Reset = \"Reset\",\n}\nexport enum IncomingMessage {\n Ready = \"Ready\",\n Error = \"Error\",\n PaymentComplete = \"PaymentComplete\",\n PaymentFailed = \"PaymentFailed\",\n PaymentPending = \"PaymentPending\",\n ValidationError = \"ValidationError\",\n PaymentMethodSelected = \"PaymentMethodSelected\",\n}\nexport enum ErrorCode {\n InvalidClient = \"InvalidClient\",\n InvalidToken = \"InvalidToken\",\n NetworkError = \"NetworkError\",\n IframeNotReady = \"IframeNotReady\",\n PaymentDeclined = \"PaymentDeclined\",\n ValidationError = \"ValidationError\",\n Timeout = \"Timeout\",\n}\nexport type InputStyleConfig = {\n padding?: string;\n radius?: string;\n color?: string;\n background?: string;\n shadow?: string;\n};\nexport type PaymentMethodsConfig = {\n layout?: PaymentMethodLayout;\n gap?: string;\n inputStyle?: InputStyleConfig;\n};\nexport type PaymentMethodConfig = {\n method: PaymentMethod;\n discount?: number;\n showBrands?: boolean;\n installments?: {\n count: number;\n amount: number;\n }[];\n};\nexport type PaymentMethodsResponse = {\n methods: PaymentMethod[];\n config: PaymentMethodsConfig;\n};\nexport type PayConductorTheme = {\n primaryColor?: string;\n secondaryColor?: string;\n backgroundColor?: string;\n surfaceColor?: string;\n textColor?: string;\n textSecondaryColor?: string;\n errorColor?: string;\n successColor?: string;\n warningColor?: string;\n borderColor?: string;\n disabledColor?: string;\n fontFamily?: string;\n fontSize?: {\n xs?: string;\n sm?: string;\n md?: string;\n lg?: string;\n xl?: string;\n };\n fontWeight?: {\n normal?: number;\n medium?: number;\n bold?: number;\n };\n lineHeight?: string;\n spacing?: {\n xs?: string;\n sm?: string;\n md?: string;\n lg?: string;\n xl?: string;\n };\n borderRadius?: string;\n borderWidth?: string;\n boxShadow?: string;\n boxShadowHover?: string;\n inputBackground?: string;\n inputBorderColor?: string;\n inputBorderRadius?: string;\n inputHeight?: string;\n inputPadding?: string;\n buttonHeight?: string;\n buttonPadding?: string;\n buttonBorderRadius?: string;\n transitionDuration?: string;\n transitionTimingFunction?: string;\n};\nexport const defaultTheme: PayConductorTheme = {\n primaryColor: \"#0066ff\",\n secondaryColor: \"#5a6b7c\",\n backgroundColor: \"transparent\",\n surfaceColor: \"#f8fafc\",\n textColor: \"#0f172a\",\n textSecondaryColor: \"#64748b\",\n errorColor: \"#ef4444\",\n successColor: \"#22c55e\",\n warningColor: \"#f59e0b\",\n borderColor: \"#e2e8f0\",\n disabledColor: \"#cbd5e1\",\n fontFamily: '\"Poppins\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n fontSize: {\n xs: \"0.75rem\",\n sm: \"0.875rem\",\n md: \"1rem\",\n lg: \"1.125rem\",\n xl: \"1.25rem\"\n },\n fontWeight: {\n normal: 400,\n medium: 500,\n bold: 600\n },\n lineHeight: \"1.5\",\n spacing: {\n xs: \"4px\",\n sm: \"8px\",\n md: \"16px\",\n lg: \"24px\",\n xl: \"32px\"\n },\n borderRadius: \"8px\",\n borderWidth: \"1px\",\n boxShadow: \"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)\",\n boxShadowHover: \"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)\",\n inputBackground: \"#ffffff\",\n inputBorderColor: \"#cbd5e1\",\n inputBorderRadius: \"8px\",\n inputHeight: \"44px\",\n inputPadding: \"12px 16px\",\n buttonHeight: \"48px\",\n buttonPadding: \"16px 24px\",\n buttonBorderRadius: \"8px\",\n transitionDuration: \"0.2s\",\n transitionTimingFunction: \"ease\"\n};\nexport type PayConductorConfig = {\n publicKey: string;\n intentToken?: string;\n theme?: PayConductorTheme;\n locale?: string;\n paymentMethods?: PaymentMethod[] | \"all\";\n defaultPaymentMethod?: PaymentMethod;\n paymentMethodsConfig?: PaymentMethodConfig[];\n methodsDirection?: \"vertical\" | \"horizontal\";\n showPaymentButtons?: boolean;\n /** Required when NuPay is an available payment method */\n nuPayConfig?: NuPayData;\n};\nexport type BillingDetails = {\n name: string;\n email?: string;\n phone?: string;\n address?: {\n line1: string;\n line2?: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n };\n};\nexport type CardData = {\n number: string;\n expMonth: string;\n expYear: string;\n cvc: string;\n};\nexport type CreatePaymentMethodOptions = {\n billingDetails: BillingDetails;\n card?: CardData;\n};\nexport type PaymentMethodResult = {\n id: string;\n type: PaymentMethod;\n card?: {\n brand: string;\n last4: string;\n expMonth: number;\n expYear: number;\n };\n billingDetails?: BillingDetails;\n};\nexport type PaymentResult = {\n paymentIntentId: string;\n status: PaymentStatus;\n amount: number;\n currency: string;\n message?: string;\n};\nexport interface MessagePayload {\n type: OutgoingMessage | IncomingMessage;\n data?: unknown;\n requestId?: string;\n error?: {\n code: string;\n message: string;\n field?: string;\n };\n}\nexport type CardTokenData = {\n token: string;\n firstSixCardNumber?: string;\n};\nexport type CardFullData = {\n number: string;\n holderName: string;\n cvv: string;\n expiration: {\n month: number;\n year: number;\n };\n};\nexport type CardPaymentData = CardTokenData | CardFullData;\nexport type PixPaymentData = {\n paymentMethod: PaymentMethod.Pix;\n expirationInSeconds?: number;\n};\nexport type CreditCardPaymentData = {\n paymentMethod: PaymentMethod.CreditCard;\n card: CardPaymentData;\n installments: number;\n softDescriptor?: string;\n};\nexport type BankSlipPaymentData = {\n paymentMethod: PaymentMethod.BankSlip;\n expirationInDays?: number;\n};\nexport type NuPayData = {\n cancelUrl: string;\n merchantName: string;\n returnUrl: string;\n storeName?: string;\n};\nexport type NuPayPaymentData = {\n paymentMethod: PaymentMethod.NuPay;\n nuPay: NuPayData;\n};\nexport type PicPayPaymentData = {\n paymentMethod: PaymentMethod.PicPay;\n};\nexport type PaymentConfirmData = PixPaymentData | CreditCardPaymentData | BankSlipPaymentData | NuPayPaymentData | PicPayPaymentData","import { IFRAME_BASE_URL_DEV, IFRAME_BASE_URL_PROD, IFRAME_DEFAULT_HEIGHT, REQUEST_TIMEOUT_MS } from \"./iframe/constants\";\nimport { IncomingMessage, OutgoingMessage } from \"./iframe/types\";\nconst isDev = typeof window !== \"undefined\" && (window.location.hostname === \"localhost\" || window.location.hostname === \"127.0.0.1\");\nexport const IFRAME_BASE_URL = isDev ? IFRAME_BASE_URL_DEV : IFRAME_BASE_URL_PROD;\nexport const ALLOWED_ORIGINS = [IFRAME_BASE_URL_DEV, IFRAME_BASE_URL_PROD];\nexport const IFRAME_DEFAULT_HEIGHT_VALUE = IFRAME_DEFAULT_HEIGHT;\nexport const REQUEST_TIMEOUT = REQUEST_TIMEOUT_MS;\nexport const POST_MESSAGES = {\n INIT: OutgoingMessage.Init,\n CONFIG: OutgoingMessage.Config,\n UPDATE: OutgoingMessage.Update,\n CONFIRM_PAYMENT: OutgoingMessage.ConfirmPayment,\n VALIDATE: OutgoingMessage.Validate,\n RESET: OutgoingMessage.Reset,\n READY: IncomingMessage.Ready,\n ERROR: IncomingMessage.Error,\n PAYMENT_COMPLETE: IncomingMessage.PaymentComplete,\n PAYMENT_FAILED: IncomingMessage.PaymentFailed,\n PAYMENT_PENDING: IncomingMessage.PaymentPending,\n VALIDATION_ERROR: IncomingMessage.ValidationError,\n PAYMENT_METHOD_SELECTED: IncomingMessage.PaymentMethodSelected\n} as const;\nexport const ERROR_CODES = {\n INVALID_CLIENT: \"InvalidClient\",\n INVALID_TOKEN: \"InvalidToken\",\n NETWORK_ERROR: \"NetworkError\",\n IFRAME_NOT_READY: \"IframeNotReady\",\n PAYMENT_DECLINED: \"PaymentDeclined\",\n VALIDATION_ERROR: \"ValidationError\",\n TIMEOUT: \"Timeout\"\n} as const","import { IFRAME_BASE_URL } from \"./constants\";\nimport type { PayConductorConfig } from \"./iframe/types\";\nexport function buildIframeUrl(config: PayConductorConfig): string {\n const params = new URLSearchParams({\n publicKey: config.publicKey\n });\n return `${IFRAME_BASE_URL}?${params.toString()}`;\n}\nexport function generateRequestId(): string {\n return crypto.randomUUID();\n}\nexport function isValidOrigin(origin: string, allowedOrigins: string[]): boolean {\n return allowedOrigins.includes(origin);\n}","import { ALLOWED_ORIGINS, POST_MESSAGES, REQUEST_TIMEOUT } from \"./constants\";\nimport { IncomingMessage, OutgoingMessage, PayConductorConfig, PaymentMethod, PaymentResult } from \"./iframe/types\";\nimport type { ConfirmPaymentOptions, PendingRequest } from \"./types\";\nimport { generateRequestId, isValidOrigin } from \"./utils\";\nexport function createPendingRequestsMap(): Map<string, PendingRequest> {\n return new Map<string, PendingRequest>();\n}\nexport function sendMessageToIframe(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, type: OutgoingMessage | IncomingMessage, data?: unknown): Promise<unknown> {\n return new Promise((resolve, reject) => {\n if (!iframe || !(\"contentWindow\" in iframe)) {\n reject(new Error(\"Iframe not defined\"));\n return;\n }\n if (!iframe?.contentWindow) {\n reject(new Error(\"Iframe not ready\"));\n return;\n }\n if (!pendingMap) {\n reject(new Error(\"Pending requests not initialized\"));\n return;\n }\n const requestId = generateRequestId();\n pendingMap.set(requestId, {\n resolve,\n reject\n });\n iframe.contentWindow.postMessage({\n type,\n data,\n requestId\n }, \"*\");\n setTimeout(() => {\n if (pendingMap?.has(requestId)) {\n pendingMap.delete(requestId);\n reject(new Error(\"Request timeout\"));\n }\n }, REQUEST_TIMEOUT);\n });\n}\nexport function confirmPayment(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, options: ConfirmPaymentOptions): Promise<PaymentResult> {\n return sendMessageToIframe(iframe, pendingMap, POST_MESSAGES.CONFIRM_PAYMENT, {\n intentToken: options.intentToken\n }) as Promise<PaymentResult>;\n}\nexport function validatePayment(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, data: unknown): Promise<boolean> {\n return sendMessageToIframe(iframe, pendingMap, POST_MESSAGES.VALIDATE, data) as Promise<boolean>;\n}\nexport function resetPayment(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null): Promise<void> {\n return sendMessageToIframe(iframe, pendingMap, POST_MESSAGES.RESET) as Promise<void>;\n}\nexport function sendConfig(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, config: Pick<PayConductorConfig, \"theme\" | \"locale\" | \"paymentMethods\" | \"defaultPaymentMethod\" | \"showPaymentButtons\" | \"nuPayConfig\">): Promise<void> {\n return sendMessageToIframe(iframe, pendingMap, POST_MESSAGES.CONFIG, config) as Promise<void>;\n}\nexport function sendInit(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, config: PayConductorConfig): Promise<void> {\n return sendMessageToIframe(iframe, pendingMap, POST_MESSAGES.INIT, config) as Promise<void>;\n}\ntype MessagePayload = {\n requestId?: string;\n type?: string;\n data?: PaymentResult | {\n paymentMethod: PaymentMethod;\n };\n error?: {\n message?: string;\n };\n};\nexport function handleMessageEvent(event: MessageEvent, pendingMap: Map<string, PendingRequest> | null, setIsReady: (value: boolean) => void, 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) {\n if (!isValidOrigin(event.origin, ALLOWED_ORIGINS)) {\n return;\n }\n const payload: MessagePayload = event.data;\n const {\n requestId,\n type,\n data,\n error\n } = payload;\n if (requestId && pendingMap?.has(requestId)) {\n const {\n resolve,\n reject\n } = pendingMap.get(requestId)!;\n pendingMap.delete(requestId);\n if (error) {\n reject(new Error(String(error.message)));\n } else {\n resolve(data);\n }\n return;\n }\n if (type === POST_MESSAGES.READY) {\n setIsReady(true);\n onReady?.();\n return;\n }\n if (type === POST_MESSAGES.ERROR) {\n setError(error?.message || \"Unknown error\");\n onError?.(new Error(String(error?.message)));\n return;\n }\n if (type === POST_MESSAGES.PAYMENT_COMPLETE) {\n if (data && typeof data === \"object\" && \"status\" in data) {\n onPaymentComplete?.(data);\n }\n return;\n }\n if (type === POST_MESSAGES.PAYMENT_FAILED) {\n if (data && typeof data === \"object\" && \"status\" in data) {\n onPaymentFailed?.(data);\n }\n return;\n }\n if (type === POST_MESSAGES.PAYMENT_PENDING) {\n if (data && typeof data === \"object\" && \"status\" in data) {\n onPaymentPending?.(data);\n }\n return;\n }\n if (type === POST_MESSAGES.PAYMENT_METHOD_SELECTED) {\n if (data && typeof data === \"object\" && \"paymentMethod\" in data) {\n onPaymentMethodSelected?.(data.paymentMethod);\n }\n return;\n }\n}","\"use client\";\nimport * as React from \"react\";\nimport { useState, useEffect } from \"react\";\n\nexport interface PayConductorEmbedProps\n extends Omit<PayConductorConfig, \"intentToken\"> {\n children?: any;\n showActionButtons?: boolean;\n debug?: boolean;\n onReady?: () => void;\n onError?: (error: Error) => void;\n onPaymentComplete?: (result: PaymentResult) => void;\n onPaymentFailed?: (result: PaymentResult) => void;\n onPaymentPending?: (result: PaymentResult) => void;\n onPaymentMethodSelected?: (method: PaymentMethod) => void;\n}\n\nimport type {\n PayConductorConfig,\n PaymentMethod,\n PaymentResult,\n} from \"./iframe/types\";\nimport {\n confirmPayment,\n createPendingRequestsMap,\n handleMessageEvent,\n resetPayment,\n sendConfig,\n validatePayment,\n} from \"./internal\";\nimport type {\n PayConductorApi,\n PayConductorFrame,\n PayConductorState,\n PendingRequest,\n} from \"./types\";\nimport { buildIframeUrl } from \"./utils\";\n\nfunction PayConductor(props: PayConductorEmbedProps) {\n const [isLoaded, setIsLoaded] = useState<PayConductorState[\"isLoaded\"]>(\n () => false\n );\n\n const [isReady, setIsReady] = useState<PayConductorState[\"isReady\"]>(\n () => false\n );\n\n const [error, setError] = useState<PayConductorState[\"error\"]>(() => null);\n\n const [iframeUrl, setIframeUrl] = useState<PayConductorState[\"iframeUrl\"]>(\n () => \"\"\n );\n\n const [pendingMap, setPendingMap] = useState<PayConductorState[\"pendingMap\"]>(\n () => null\n );\n\n const [selectedPaymentMethod, setSelectedPaymentMethod] = useState<\n PayConductorState[\"selectedPaymentMethod\"]\n >(() => null);\n\n const [configSent, setConfigSent] = useState(() => false);\n\n useEffect(() => {\n const log = (...args: any[]) => {\n if (props.debug) {\n console.log(\"[PayConductor]\", ...args);\n }\n };\n log(\"SDK initializing\", {\n publicKey: props.publicKey,\n });\n const iframeUrl = buildIframeUrl({\n publicKey: props.publicKey,\n });\n setIframeUrl(iframeUrl);\n setIsLoaded(true);\n setPendingMap(createPendingRequestsMap());\n log(\"iframeUrl built:\", iframeUrl);\n log(\"pendingMap created\");\n const getIframe = (): HTMLIFrameElement | undefined => {\n const ref = window.PayConductor?.frame?.iframe;\n if (!ref) return undefined;\n if (ref instanceof HTMLIFrameElement) return ref;\n if (typeof ref === \"object\" && ref !== null) {\n if (\"current\" in ref) return (ref as any).current ?? undefined;\n if (\"value\" in ref) return (ref as any).value ?? undefined;\n }\n return ref as HTMLIFrameElement;\n };\n const frame: PayConductorFrame = {\n iframe: null,\n iframeUrl,\n get isReady() {\n return isReady;\n },\n get error() {\n return error;\n },\n };\n const config: PayConductorConfig = {\n publicKey: props.publicKey,\n theme: props.theme,\n locale: props.locale,\n paymentMethods: props.paymentMethods,\n defaultPaymentMethod: props.defaultPaymentMethod,\n };\n const api: PayConductorApi = {\n confirmPayment: (options: { intentToken: string }) => {\n log(\"confirmPayment called\", {\n intentToken: options.intentToken,\n });\n return confirmPayment(getIframe(), pendingMap, options);\n },\n validate: (data: unknown) => {\n log(\"validate called\", data);\n return validatePayment(getIframe(), pendingMap, data);\n },\n reset: () => {\n log(\"reset called\");\n return resetPayment(getIframe(), pendingMap);\n },\n getSelectedPaymentMethod: () => selectedPaymentMethod,\n };\n window.PayConductor = {\n frame,\n config,\n api,\n selectedPaymentMethod: selectedPaymentMethod,\n };\n log(\"window.PayConductor registered\");\n const sendConfigToIframe = async () => {\n if (!configSent) {\n const iframe = getIframe();\n if (!iframe) {\n log(\"sendConfigToIframe: iframe not found, skipping\");\n return;\n }\n setConfigSent(true);\n log(\"sendConfig →\", {\n theme: props.theme,\n locale: props.locale,\n paymentMethods: props.paymentMethods,\n defaultPaymentMethod: props.defaultPaymentMethod,\n showPaymentButtons: props.showPaymentButtons,\n });\n sendConfig(iframe, pendingMap, {\n theme: props.theme,\n locale: props.locale,\n paymentMethods: props.paymentMethods,\n defaultPaymentMethod: props.defaultPaymentMethod,\n showPaymentButtons: props.showPaymentButtons,\n nuPayConfig: props.nuPayConfig,\n });\n }\n };\n const eventHandler = (event: MessageEvent) => {\n handleMessageEvent(\n event,\n pendingMap,\n (val) => {\n setIsReady(val);\n if (val) {\n log(\"iframe Ready — sending config\");\n sendConfigToIframe();\n }\n },\n (val) => {\n setError(val);\n log(\"iframe Error:\", val);\n },\n () => {\n log(\"onReady fired\");\n props.onReady?.();\n },\n (err) => {\n log(\"onError fired:\", err);\n props.onError?.(err);\n },\n (data) => {\n log(\"PaymentComplete:\", data);\n props.onPaymentComplete?.(data as PaymentResult);\n },\n (data) => {\n log(\"PaymentFailed:\", data);\n props.onPaymentFailed?.(data as PaymentResult);\n },\n (data) => {\n log(\"PaymentPending:\", data);\n props.onPaymentPending?.(data as PaymentResult);\n },\n (method) => {\n log(\"PaymentMethodSelected:\", method);\n setSelectedPaymentMethod(method);\n if (window.PayConductor) {\n window.PayConductor.selectedPaymentMethod = method;\n }\n props.onPaymentMethodSelected?.(method);\n }\n );\n };\n window.addEventListener(\"message\", eventHandler);\n log(\"SDK initialized — waiting for PayConductorCheckoutElement\");\n }, []);\n\n return (\n <div\n className=\"payconductor\"\n id=\"payconductor\"\n style={{\n display: \"contents\",\n }}\n >\n {props.children}\n </div>\n );\n}\n\nexport default PayConductor;\n","\"use client\";\nimport * as React from \"react\";\nimport { useState, useRef, useEffect } from \"react\";\n\nexport interface PayConductorCheckoutElementProps {\n height?: string;\n}\n\nimport { IFRAME_DEFAULT_HEIGHT_VALUE } from \"./constants\";\n\nfunction PayConductorCheckoutElement(props: PayConductorCheckoutElementProps) {\n const iframeRef = useRef<any>(null);\n const [iframeUrl, setIframeUrl] = useState(() => \"\");\n\n const [isLoaded, setIsLoaded] = useState(() => false);\n\n useEffect(() => {\n const ctx = typeof window !== \"undefined\" ? window.PayConductor : null;\n if (!ctx) {\n console.warn(\n \"[PayConductorCheckoutElement] window.PayConductor not found — ensure <PayConductor> is mounted before <PayConductorCheckoutElement>\"\n );\n }\n if (ctx?.frame) {\n setIframeUrl(ctx.frame.iframeUrl || \"\");\n ctx.frame.iframe = iframeRef.current;\n console.log(\n \"[PayConductorCheckoutElement] iframe registered, src:\",\n iframeUrl\n );\n }\n setIsLoaded(true);\n }, []);\n\n return (\n <div\n className=\"payconductor-element\"\n style={{\n width: \"100%\",\n }}\n >\n {isLoaded && iframeUrl ? (\n <iframe\n allow=\"payment\"\n title=\"PayConductor\"\n ref={iframeRef}\n src={iframeUrl}\n style={{\n width: \"100%\",\n height: props.height || IFRAME_DEFAULT_HEIGHT_VALUE,\n border: \"none\",\n }}\n />\n ) : null}\n </div>\n );\n}\n\nexport default PayConductorCheckoutElement;\n","import type { PayConductorConfig } from \"../iframe/types\";\nimport type { PayConductorFrame } from \"../types\";\ntype UsePayConductorReturn = PayConductorFrame & Partial<PayConductorConfig>;\nexport function usePayConductor(): UsePayConductorReturn {\n const ctx = typeof window !== \"undefined\" ? window.PayConductor : null;\n const config = ctx?.config ? {\n publicKey: ctx.config.publicKey,\n intentToken: ctx.config.intentToken,\n theme: ctx.config.theme,\n locale: ctx.config.locale\n } : {};\n const frame = ctx?.frame ? {\n iframe: ctx.frame.iframe,\n isReady: ctx.frame.isReady,\n error: ctx.frame.error\n } : {\n iframe: null,\n isReady: false,\n error: null\n };\n return {\n ...config,\n ...frame\n };\n}","import { POST_MESSAGES } from \"../constants\";\nimport type { BillingDetails, PayConductorConfig, PaymentMethod, PaymentResult } from \"../iframe/types\";\nimport { confirmPayment, createPendingRequestsMap, sendInit, sendMessageToIframe } from \"../internal\";\nexport type SubmitResult = {\n error?: {\n message: string;\n code?: string;\n type?: \"validation_error\" | \"payment_error\";\n };\n paymentMethod?: PaymentMethod;\n};\nexport type ConfirmPaymentOptions = {\n intentToken: string;\n returnUrl?: string;\n};\nexport type UpdateOptions = {\n billingDetails?: Partial<BillingDetails>;\n address?: Partial<BillingDetails[\"address\"]>;\n};\nexport interface UsePayconductorElementReturn {\n init: (config: PayConductorConfig) => Promise<void>;\n confirmPayment: (options: ConfirmPaymentOptions) => Promise<PaymentResult>;\n validate: (data: unknown) => Promise<boolean>;\n reset: () => Promise<void>;\n getSelectedPaymentMethod: () => PaymentMethod | null;\n updateConfig: (config: Partial<Pick<PayConductorConfig, \"theme\" | \"locale\" | \"paymentMethods\">>) => void;\n updateIntentToken: (intentToken: string) => void;\n update: (options: UpdateOptions) => void;\n submit: () => Promise<SubmitResult>;\n}\nfunction getIframeFromContext(ctx: typeof window.PayConductor): HTMLIFrameElement | null {\n if (!ctx?.frame?.iframe) return null;\n const iframeRef = ctx.frame.iframe;\n if (iframeRef instanceof HTMLIFrameElement) {\n return iframeRef;\n }\n if (iframeRef && typeof iframeRef === \"object\" && \"value\" in iframeRef) {\n const value = iframeRef.value;\n if (value instanceof HTMLIFrameElement) {\n return value;\n }\n }\n return null;\n}\nexport function usePayconductorElement(): UsePayconductorElementReturn {\n const ctx = typeof window !== \"undefined\" ? window.PayConductor : null;\n const sendToIframe = (type: string, data?: unknown) => {\n if (!ctx) return;\n const iframe = getIframeFromContext(ctx);\n if (iframe?.contentWindow) {\n iframe.contentWindow.postMessage({\n type,\n data\n }, \"*\");\n }\n };\n if (!ctx) {\n return {\n init: async () => {\n throw new Error(\"PayConductor not initialized\");\n },\n confirmPayment: async () => {\n throw new Error(\"PayConductor not initialized\");\n },\n validate: async () => {\n throw new Error(\"PayConductor not initialized\");\n },\n reset: async () => {\n throw new Error(\"PayConductor not initialized\");\n },\n getSelectedPaymentMethod: () => null,\n updateConfig: () => {\n throw new Error(\"PayConductor not initialized\");\n },\n updateIntentToken: () => {\n throw new Error(\"PayConductor not initialized\");\n },\n update: () => {\n throw new Error(\"PayConductor not initialized\");\n },\n submit: async () => {\n throw new Error(\"PayConductor not initialized\");\n }\n };\n }\n return {\n init: async (config: PayConductorConfig): Promise<void> => {\n const iframe = getIframeFromContext(ctx);\n const pendingMap = createPendingRequestsMap();\n return sendInit(iframe || undefined, pendingMap, config);\n },\n confirmPayment: async (options: ConfirmPaymentOptions): Promise<PaymentResult> => {\n const iframe = getIframeFromContext(ctx);\n const pendingMap = createPendingRequestsMap();\n if (!options.intentToken) {\n throw new Error(\"Intent token is required\");\n }\n return confirmPayment(iframe || undefined, pendingMap, options);\n },\n validate: ctx.api.validate,\n reset: ctx.api.reset,\n getSelectedPaymentMethod: (): PaymentMethod | null => {\n return ctx?.selectedPaymentMethod ?? null;\n },\n updateConfig: (config: Partial<Pick<PayConductorConfig, \"theme\" | \"locale\" | \"paymentMethods\">>) => {\n const currentConfig = ctx.config;\n sendToIframe(POST_MESSAGES.CONFIG, {\n publicKey: currentConfig?.publicKey,\n intentToken: currentConfig?.intentToken,\n theme: config.theme ?? currentConfig?.theme,\n locale: config.locale ?? currentConfig?.locale,\n paymentMethods: config.paymentMethods ?? currentConfig?.paymentMethods\n });\n },\n updateIntentToken: (intentToken: string) => {\n const currentConfig = ctx.config;\n sendToIframe(POST_MESSAGES.CONFIG, {\n publicKey: currentConfig?.publicKey,\n intentToken: intentToken,\n theme: currentConfig?.theme,\n locale: currentConfig?.locale,\n paymentMethods: currentConfig?.paymentMethods\n });\n },\n update: (options: UpdateOptions) => {\n sendToIframe(POST_MESSAGES.UPDATE, options);\n },\n submit: async (): Promise<SubmitResult> => {\n const iframe = getIframeFromContext(ctx);\n const pendingMap = createPendingRequestsMap();\n try {\n await sendMessageToIframe(iframe || undefined, pendingMap, POST_MESSAGES.CONFIRM_PAYMENT, {});\n return {\n paymentMethod: undefined\n };\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Payment failed\";\n return {\n error: {\n message,\n code: \"payment_error\",\n type: \"payment_error\"\n }\n };\n }\n }\n };\n}"],"names":["IFRAME_BASE_URL_PROD","IFRAME_BASE_URL_DEV","REQUEST_TIMEOUT_MS","IFRAME_DEFAULT_HEIGHT","OutgoingMessage","IncomingMessage","isDev","IFRAME_BASE_URL","ALLOWED_ORIGINS","IFRAME_DEFAULT_HEIGHT_VALUE","REQUEST_TIMEOUT","POST_MESSAGES","ERROR_CODES","buildIframeUrl","config","params","generateRequestId","isValidOrigin","origin","allowedOrigins","createPendingRequestsMap","sendMessageToIframe","iframe","pendingMap","type","data","resolve","reject","requestId","confirmPayment","options","validatePayment","resetPayment","sendConfig","sendInit","handleMessageEvent","event","setIsReady","setError","onReady","onError","onPaymentComplete","onPaymentFailed","onPaymentPending","onPaymentMethodSelected","payload","error","PayConductor","props","isLoaded","setIsLoaded","useState","isReady","iframeUrl","setIframeUrl","setPendingMap","selectedPaymentMethod","setSelectedPaymentMethod","configSent","setConfigSent","useEffect","log","args","getIframe","ref","_b","_a","frame","api","sendConfigToIframe","eventHandler","val","err","method","jsx","PayConductorCheckoutElement","iframeRef","useRef","ctx","usePayConductor","getIframeFromContext","value","usePayconductorElement","sendToIframe","currentConfig","intentToken"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/payconductor/iframe/constants.ts","../src/payconductor/iframe/types.ts","../src/payconductor/constants.ts","../src/payconductor/utils.ts","../src/payconductor/internal.ts","../src/payconductor/payconductor.tsx","../src/payconductor/payconductor-element.tsx","../src/payconductor/hooks/use-payconductor.ts","../src/payconductor/hooks/use-element.ts"],"sourcesContent":["// PayConductor Shared Constants\n// Served statically at iframe.payconductor.ai/constants.ts\n// Used by the iFrame (imported directly) and the SDK Web (synced with: bun sync)\n\nexport const APP_BASE_URL_PROD = \"https://app.payconductor.ai\";\nexport const API_BASE_URL_PROD = \"https://app.payconductor.ai/api/v1\";\nexport const IFRAME_BASE_URL_PROD = \"https://iframe.payconductor.ai/v1\";\nexport const IFRAME_BASE_URL_DEV = \"http://localhost:5175\";\nexport const APP_BASE_URL_DEV = \"http://localhost:3000\";\nexport const DEFAULT_LOCALE = \"pt-BR\";\nexport const REQUEST_TIMEOUT_MS = 30000;\nexport const IFRAME_DEFAULT_HEIGHT = \"600px\"","// PayConductor Shared Types\n// Served statically at iframe.payconductor.ai/types.ts\n// Used by the iFrame (imported directly) and the SDK Web (synced with: bun sync)\n\nexport enum PaymentMethod {\n Pix = \"Pix\",\n CreditCard = \"CreditCard\",\n DebitCard = \"DebitCard\",\n BankSlip = \"BankSlip\",\n Crypto = \"Crypto\",\n ApplePay = \"ApplePay\",\n NuPay = \"NuPay\",\n PicPay = \"PicPay\",\n AmazonPay = \"AmazonPay\",\n SepaDebit = \"SepaDebit\",\n GooglePay = \"GooglePay\",\n}\nexport enum PaymentMethodLayout {\n Grid = \"grid\",\n Vertical = \"vertical\",\n Horizontal = \"horizontal\",\n}\nexport enum PaymentStatus {\n Succeeded = \"succeeded\",\n Pending = \"pending\",\n Failed = \"failed\",\n}\nexport enum DeviceType {\n Android = \"android\",\n IOS = \"ios\",\n Web = \"web\",\n}\nexport enum InputStyleKey {\n Padding = \"padding\",\n Radius = \"radius\",\n Color = \"color\",\n Background = \"background\",\n Shadow = \"shadow\",\n}\nexport enum OutgoingMessage {\n Init = \"Init\",\n Config = \"Config\",\n Update = \"Update\",\n ConfirmPayment = \"ConfirmPayment\",\n Validate = \"Validate\",\n Reset = \"Reset\",\n}\nexport enum IncomingMessage {\n Ready = \"Ready\",\n Error = \"Error\",\n PaymentComplete = \"PaymentComplete\",\n PaymentFailed = \"PaymentFailed\",\n PaymentPending = \"PaymentPending\",\n ValidationError = \"ValidationError\",\n PaymentMethodSelected = \"PaymentMethodSelected\",\n}\nexport enum ErrorCode {\n InvalidClient = \"InvalidClient\",\n InvalidToken = \"InvalidToken\",\n NetworkError = \"NetworkError\",\n IframeNotReady = \"IframeNotReady\",\n PaymentDeclined = \"PaymentDeclined\",\n ValidationError = \"ValidationError\",\n Timeout = \"Timeout\",\n}\nexport type InputStyleConfig = {\n padding?: string;\n radius?: string;\n color?: string;\n background?: string;\n shadow?: string;\n};\nexport type PaymentMethodsConfig = {\n layout?: PaymentMethodLayout;\n gap?: string;\n inputStyle?: InputStyleConfig;\n};\nexport type PaymentMethodConfig = {\n method: PaymentMethod;\n discount?: number;\n showBrands?: boolean;\n installments?: {\n count: number;\n amount: number;\n }[];\n};\nexport type PaymentMethodsResponse = {\n methods: PaymentMethod[];\n config: PaymentMethodsConfig;\n};\nexport type PayConductorTheme = {\n primaryColor?: string;\n secondaryColor?: string;\n backgroundColor?: string;\n surfaceColor?: string;\n textColor?: string;\n textSecondaryColor?: string;\n errorColor?: string;\n successColor?: string;\n warningColor?: string;\n borderColor?: string;\n disabledColor?: string;\n fontFamily?: string;\n fontSize?: {\n xs?: string;\n sm?: string;\n md?: string;\n lg?: string;\n xl?: string;\n };\n fontWeight?: {\n normal?: number;\n medium?: number;\n bold?: number;\n };\n lineHeight?: string;\n spacing?: {\n xs?: string;\n sm?: string;\n md?: string;\n lg?: string;\n xl?: string;\n };\n borderRadius?: string;\n borderWidth?: string;\n boxShadow?: string;\n boxShadowHover?: string;\n inputBackground?: string;\n inputBorderColor?: string;\n inputBorderRadius?: string;\n inputHeight?: string;\n inputPadding?: string;\n buttonHeight?: string;\n buttonPadding?: string;\n buttonBorderRadius?: string;\n transitionDuration?: string;\n transitionTimingFunction?: string;\n};\nexport const defaultTheme: PayConductorTheme = {\n primaryColor: \"#0066ff\",\n secondaryColor: \"#5a6b7c\",\n backgroundColor: \"transparent\",\n surfaceColor: \"#f8fafc\",\n textColor: \"#0f172a\",\n textSecondaryColor: \"#64748b\",\n errorColor: \"#ef4444\",\n successColor: \"#22c55e\",\n warningColor: \"#f59e0b\",\n borderColor: \"#e2e8f0\",\n disabledColor: \"#cbd5e1\",\n fontFamily: '\"Poppins\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n fontSize: {\n xs: \"0.75rem\",\n sm: \"0.875rem\",\n md: \"1rem\",\n lg: \"1.125rem\",\n xl: \"1.25rem\"\n },\n fontWeight: {\n normal: 400,\n medium: 500,\n bold: 600\n },\n lineHeight: \"1.5\",\n spacing: {\n xs: \"4px\",\n sm: \"8px\",\n md: \"16px\",\n lg: \"24px\",\n xl: \"32px\"\n },\n borderRadius: \"8px\",\n borderWidth: \"1px\",\n boxShadow: \"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)\",\n boxShadowHover: \"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)\",\n inputBackground: \"#ffffff\",\n inputBorderColor: \"#cbd5e1\",\n inputBorderRadius: \"8px\",\n inputHeight: \"44px\",\n inputPadding: \"12px 16px\",\n buttonHeight: \"48px\",\n buttonPadding: \"16px 24px\",\n buttonBorderRadius: \"8px\",\n transitionDuration: \"0.2s\",\n transitionTimingFunction: \"ease\"\n};\nexport type PayConductorConfig = {\n publicKey: string;\n orderId?: string;\n theme?: PayConductorTheme;\n locale?: string;\n paymentMethods?: PaymentMethod[] | \"all\";\n defaultPaymentMethod?: PaymentMethod;\n paymentMethodsConfig?: PaymentMethodConfig[];\n methodsDirection?: \"vertical\" | \"horizontal\";\n showPaymentButtons?: boolean;\n /** Required when NuPay is an available payment method */\n nuPayConfig?: NuPayData;\n};\nexport type BillingDetails = {\n name: string;\n email?: string;\n phone?: string;\n address?: {\n line1: string;\n line2?: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n };\n};\nexport type CardData = {\n number: string;\n expMonth: string;\n expYear: string;\n cvc: string;\n};\nexport type CreatePaymentMethodOptions = {\n billingDetails: BillingDetails;\n card?: CardData;\n};\nexport type PaymentMethodResult = {\n id: string;\n type: PaymentMethod;\n card?: {\n brand: string;\n last4: string;\n expMonth: number;\n expYear: number;\n };\n billingDetails?: BillingDetails;\n};\nexport type PaymentResult = {\n orderId: string;\n status: PaymentStatus;\n amount: number;\n currency: string;\n message?: string;\n};\nexport interface MessagePayload {\n type: OutgoingMessage | IncomingMessage;\n data?: unknown;\n requestId?: string;\n error?: {\n code: string;\n message: string;\n field?: string;\n };\n}\nexport type CardTokenData = {\n token: string;\n firstSixCardNumber?: string;\n};\nexport type CardFullData = {\n number: string;\n holderName: string;\n cvv: string;\n expiration: {\n month: number;\n year: number;\n };\n};\nexport type CardPaymentData = CardTokenData | CardFullData;\nexport type PixPaymentData = {\n paymentMethod: PaymentMethod.Pix;\n expirationInSeconds?: number;\n};\nexport type CreditCardPaymentData = {\n paymentMethod: PaymentMethod.CreditCard;\n card: CardPaymentData;\n installments: number;\n softDescriptor?: string;\n};\nexport type BankSlipPaymentData = {\n paymentMethod: PaymentMethod.BankSlip;\n expirationInDays?: number;\n};\nexport type NuPayData = {\n cancelUrl: string;\n merchantName: string;\n returnUrl: string;\n storeName?: string;\n};\nexport type NuPayPaymentData = {\n paymentMethod: PaymentMethod.NuPay;\n nuPay: NuPayData;\n};\nexport type PicPayPaymentData = {\n paymentMethod: PaymentMethod.PicPay;\n};\nexport type PaymentConfirmData = PixPaymentData | CreditCardPaymentData | BankSlipPaymentData | NuPayPaymentData | PicPayPaymentData","import { IFRAME_BASE_URL_DEV, IFRAME_BASE_URL_PROD, IFRAME_DEFAULT_HEIGHT, REQUEST_TIMEOUT_MS } from \"./iframe/constants\";\nimport { IncomingMessage, OutgoingMessage } from \"./iframe/types\";\nconst isDev = typeof window !== \"undefined\" && (window.location.hostname === \"localhost\" || window.location.hostname === \"127.0.0.1\");\nexport const IFRAME_BASE_URL = isDev ? IFRAME_BASE_URL_DEV : IFRAME_BASE_URL_PROD;\nexport const ALLOWED_ORIGINS = [IFRAME_BASE_URL_DEV, IFRAME_BASE_URL_PROD];\nexport const IFRAME_DEFAULT_HEIGHT_VALUE = IFRAME_DEFAULT_HEIGHT;\nexport const REQUEST_TIMEOUT = REQUEST_TIMEOUT_MS;\nexport const POST_MESSAGES = {\n INIT: OutgoingMessage.Init,\n CONFIG: OutgoingMessage.Config,\n UPDATE: OutgoingMessage.Update,\n CONFIRM_PAYMENT: OutgoingMessage.ConfirmPayment,\n VALIDATE: OutgoingMessage.Validate,\n RESET: OutgoingMessage.Reset,\n READY: IncomingMessage.Ready,\n ERROR: IncomingMessage.Error,\n PAYMENT_COMPLETE: IncomingMessage.PaymentComplete,\n PAYMENT_FAILED: IncomingMessage.PaymentFailed,\n PAYMENT_PENDING: IncomingMessage.PaymentPending,\n VALIDATION_ERROR: IncomingMessage.ValidationError,\n PAYMENT_METHOD_SELECTED: IncomingMessage.PaymentMethodSelected\n} as const;\nexport const ERROR_CODES = {\n INVALID_CLIENT: \"InvalidClient\",\n INVALID_TOKEN: \"InvalidToken\",\n NETWORK_ERROR: \"NetworkError\",\n IFRAME_NOT_READY: \"IframeNotReady\",\n PAYMENT_DECLINED: \"PaymentDeclined\",\n VALIDATION_ERROR: \"ValidationError\",\n TIMEOUT: \"Timeout\"\n} as const","import { IFRAME_BASE_URL } from \"./constants\";\nimport type { PayConductorConfig } from \"./iframe/types\";\nexport function buildIframeUrl(config: PayConductorConfig): string {\n const params = new URLSearchParams({\n publicKey: config.publicKey\n });\n return `${IFRAME_BASE_URL}?${params.toString()}`;\n}\nexport function generateRequestId(): string {\n return crypto.randomUUID();\n}\nexport function isValidOrigin(origin: string, allowedOrigins: string[]): boolean {\n return allowedOrigins.includes(origin);\n}","import { ALLOWED_ORIGINS, POST_MESSAGES, REQUEST_TIMEOUT } from \"./constants\";\nimport { IncomingMessage, OutgoingMessage, PayConductorConfig, PaymentMethod, PaymentResult } from \"./iframe/types\";\nimport type { ConfirmPaymentOptions, PendingRequest } from \"./types\";\nimport { generateRequestId, isValidOrigin } from \"./utils\";\nexport function createPendingRequestsMap(): Map<string, PendingRequest> {\n return new Map<string, PendingRequest>();\n}\nexport function sendMessageToIframe(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, type: OutgoingMessage | IncomingMessage, data?: unknown): Promise<unknown> {\n return new Promise((resolve, reject) => {\n if (!iframe || !(\"contentWindow\" in iframe)) {\n reject(new Error(\"Iframe not defined\"));\n return;\n }\n if (!iframe?.contentWindow) {\n reject(new Error(\"Iframe not ready\"));\n return;\n }\n if (!pendingMap) {\n reject(new Error(\"Pending requests not initialized\"));\n return;\n }\n const requestId = generateRequestId();\n pendingMap.set(requestId, {\n resolve,\n reject\n });\n iframe.contentWindow.postMessage({\n type,\n data,\n requestId\n }, \"*\");\n setTimeout(() => {\n if (pendingMap?.has(requestId)) {\n pendingMap.delete(requestId);\n reject(new Error(\"Request timeout\"));\n }\n }, REQUEST_TIMEOUT);\n });\n}\nexport function confirmPayment(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, options: ConfirmPaymentOptions): Promise<PaymentResult> {\n return sendMessageToIframe(iframe, pendingMap, POST_MESSAGES.CONFIRM_PAYMENT, {\n orderId: options.orderId\n }) as Promise<PaymentResult>;\n}\nexport function validatePayment(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, data: unknown): Promise<boolean> {\n return sendMessageToIframe(iframe, pendingMap, POST_MESSAGES.VALIDATE, data) as Promise<boolean>;\n}\nexport function resetPayment(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null): Promise<void> {\n return sendMessageToIframe(iframe, pendingMap, POST_MESSAGES.RESET) as Promise<void>;\n}\nexport function sendConfig(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, config: Pick<PayConductorConfig, \"theme\" | \"locale\" | \"paymentMethods\" | \"defaultPaymentMethod\" | \"showPaymentButtons\" | \"nuPayConfig\">): Promise<void> {\n return sendMessageToIframe(iframe, pendingMap, POST_MESSAGES.CONFIG, config) as Promise<void>;\n}\nexport function sendInit(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, config: PayConductorConfig): Promise<void> {\n return sendMessageToIframe(iframe, pendingMap, POST_MESSAGES.INIT, config) as Promise<void>;\n}\ntype MessagePayload = {\n requestId?: string;\n type?: string;\n data?: PaymentResult | {\n paymentMethod: PaymentMethod;\n };\n error?: {\n message?: string;\n };\n};\nexport function handleMessageEvent(event: MessageEvent, pendingMap: Map<string, PendingRequest> | null, setIsReady: (value: boolean) => void, 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) {\n if (!isValidOrigin(event.origin, ALLOWED_ORIGINS)) {\n return;\n }\n const payload: MessagePayload = event.data;\n const {\n requestId,\n type,\n data,\n error\n } = payload;\n if (requestId && pendingMap?.has(requestId)) {\n const {\n resolve,\n reject\n } = pendingMap.get(requestId)!;\n pendingMap.delete(requestId);\n if (error) {\n reject(new Error(String(error.message)));\n } else {\n resolve(data);\n }\n return;\n }\n if (type === POST_MESSAGES.READY) {\n setIsReady(true);\n onReady?.();\n return;\n }\n if (type === POST_MESSAGES.ERROR) {\n setError(error?.message || \"Unknown error\");\n onError?.(new Error(String(error?.message)));\n return;\n }\n if (type === POST_MESSAGES.PAYMENT_COMPLETE) {\n if (data && typeof data === \"object\" && \"status\" in data) {\n onPaymentComplete?.(data);\n }\n return;\n }\n if (type === POST_MESSAGES.PAYMENT_FAILED) {\n if (data && typeof data === \"object\" && \"status\" in data) {\n onPaymentFailed?.(data);\n }\n return;\n }\n if (type === POST_MESSAGES.PAYMENT_PENDING) {\n if (data && typeof data === \"object\" && \"status\" in data) {\n onPaymentPending?.(data);\n }\n return;\n }\n if (type === POST_MESSAGES.PAYMENT_METHOD_SELECTED) {\n if (data && typeof data === \"object\" && \"paymentMethod\" in data) {\n onPaymentMethodSelected?.(data.paymentMethod);\n }\n return;\n }\n}","\"use client\";\nimport * as React from \"react\";\nimport { useState, useEffect } from \"react\";\n\nexport interface PayConductorEmbedProps\n extends Omit<PayConductorConfig, \"orderId\"> {\n children?: any;\n showActionButtons?: boolean;\n debug?: boolean;\n onReady?: () => void;\n onError?: (error: Error) => void;\n onPaymentComplete?: (result: PaymentResult) => void;\n onPaymentFailed?: (result: PaymentResult) => void;\n onPaymentPending?: (result: PaymentResult) => void;\n onPaymentMethodSelected?: (method: PaymentMethod) => void;\n}\n\nimport type {\n PayConductorConfig,\n PaymentMethod,\n PaymentResult,\n} from \"./iframe/types\";\nimport {\n confirmPayment,\n createPendingRequestsMap,\n handleMessageEvent,\n resetPayment,\n sendConfig,\n validatePayment,\n} from \"./internal\";\nimport type {\n PayConductorApi,\n PayConductorFrame,\n PayConductorState,\n PendingRequest,\n} from \"./types\";\nimport { buildIframeUrl } from \"./utils\";\n\nfunction PayConductor(props: PayConductorEmbedProps) {\n const [isLoaded, setIsLoaded] = useState<PayConductorState[\"isLoaded\"]>(\n () => false\n );\n\n const [isReady, setIsReady] = useState<PayConductorState[\"isReady\"]>(\n () => false\n );\n\n const [error, setError] = useState<PayConductorState[\"error\"]>(() => null);\n\n const [iframeUrl, setIframeUrl] = useState<PayConductorState[\"iframeUrl\"]>(\n () => \"\"\n );\n\n const [pendingMap, setPendingMap] = useState<PayConductorState[\"pendingMap\"]>(\n () => null\n );\n\n const [selectedPaymentMethod, setSelectedPaymentMethod] = useState<\n PayConductorState[\"selectedPaymentMethod\"]\n >(() => null);\n\n const [configSent, setConfigSent] = useState(() => false);\n\n useEffect(() => {\n const log = (...args: any[]) => {\n if (props.debug) {\n console.log(\"[PayConductor]\", ...args);\n }\n };\n log(\"SDK initializing\", {\n publicKey: props.publicKey,\n });\n const iframeUrl = buildIframeUrl({\n publicKey: props.publicKey,\n });\n setIframeUrl(iframeUrl);\n setIsLoaded(true);\n setPendingMap(createPendingRequestsMap());\n log(\"iframeUrl built:\", iframeUrl);\n log(\"pendingMap created\");\n const getIframe = (): HTMLIFrameElement | undefined => {\n const ref = window.PayConductor?.frame?.iframe;\n if (!ref) return undefined;\n if (ref instanceof HTMLIFrameElement) return ref;\n if (typeof ref === \"object\" && ref !== null) {\n if (\"current\" in ref) return (ref as any).current ?? undefined;\n if (\"value\" in ref) return (ref as any).value ?? undefined;\n }\n return ref as HTMLIFrameElement;\n };\n const frame: PayConductorFrame = {\n iframe: null,\n iframeUrl,\n get isReady() {\n return isReady;\n },\n get error() {\n return error;\n },\n };\n const config: PayConductorConfig = {\n publicKey: props.publicKey,\n theme: props.theme,\n locale: props.locale,\n paymentMethods: props.paymentMethods,\n defaultPaymentMethod: props.defaultPaymentMethod,\n };\n const api: PayConductorApi = {\n confirmPayment: (options: { orderId: string }) => {\n log(\"confirmPayment called\", {\n orderId: options.orderId,\n });\n return confirmPayment(getIframe(), pendingMap, options);\n },\n validate: (data: unknown) => {\n log(\"validate called\", data);\n return validatePayment(getIframe(), pendingMap, data);\n },\n reset: () => {\n log(\"reset called\");\n return resetPayment(getIframe(), pendingMap);\n },\n getSelectedPaymentMethod: () => selectedPaymentMethod,\n };\n window.PayConductor = {\n frame,\n config,\n api,\n selectedPaymentMethod: selectedPaymentMethod,\n };\n log(\"window.PayConductor registered\");\n const sendConfigToIframe = async () => {\n if (!configSent) {\n const iframe = getIframe();\n if (!iframe) {\n log(\"sendConfigToIframe: iframe not found, skipping\");\n return;\n }\n setConfigSent(true);\n log(\"sendConfig →\", {\n theme: props.theme,\n locale: props.locale,\n paymentMethods: props.paymentMethods,\n defaultPaymentMethod: props.defaultPaymentMethod,\n showPaymentButtons: props.showPaymentButtons,\n });\n sendConfig(iframe, pendingMap, {\n theme: props.theme,\n locale: props.locale,\n paymentMethods: props.paymentMethods,\n defaultPaymentMethod: props.defaultPaymentMethod,\n showPaymentButtons: props.showPaymentButtons,\n nuPayConfig: props.nuPayConfig,\n });\n }\n };\n const eventHandler = (event: MessageEvent) => {\n handleMessageEvent(\n event,\n pendingMap,\n (val) => {\n setIsReady(val);\n if (val) {\n log(\"iframe Ready — sending config\");\n sendConfigToIframe();\n }\n },\n (val) => {\n setError(val);\n log(\"iframe Error:\", val);\n },\n () => {\n log(\"onReady fired\");\n props.onReady?.();\n },\n (err) => {\n log(\"onError fired:\", err);\n props.onError?.(err);\n },\n (data) => {\n log(\"PaymentComplete:\", data);\n props.onPaymentComplete?.(data as PaymentResult);\n },\n (data) => {\n log(\"PaymentFailed:\", data);\n props.onPaymentFailed?.(data as PaymentResult);\n },\n (data) => {\n log(\"PaymentPending:\", data);\n props.onPaymentPending?.(data as PaymentResult);\n },\n (method) => {\n log(\"PaymentMethodSelected:\", method);\n setSelectedPaymentMethod(method);\n if (window.PayConductor) {\n window.PayConductor.selectedPaymentMethod = method;\n }\n props.onPaymentMethodSelected?.(method);\n }\n );\n };\n window.addEventListener(\"message\", eventHandler);\n log(\"SDK initialized — waiting for PayConductorCheckoutElement\");\n }, []);\n\n return (\n <div\n className=\"payconductor\"\n id=\"payconductor\"\n style={{\n display: \"contents\",\n }}\n >\n {props.children}\n </div>\n );\n}\n\nexport default PayConductor;\n","\"use client\";\nimport * as React from \"react\";\nimport { useState, useRef, useEffect } from \"react\";\n\nexport interface PayConductorCheckoutElementProps {\n height?: string;\n}\n\nimport { IFRAME_DEFAULT_HEIGHT_VALUE } from \"./constants\";\n\nfunction PayConductorCheckoutElement(props: PayConductorCheckoutElementProps) {\n const iframeRef = useRef<any>(null);\n const [iframeUrl, setIframeUrl] = useState(() => \"\");\n\n const [isLoaded, setIsLoaded] = useState(() => false);\n\n useEffect(() => {\n const ctx = typeof window !== \"undefined\" ? window.PayConductor : null;\n if (!ctx) {\n console.warn(\n \"[PayConductorCheckoutElement] window.PayConductor not found — ensure <PayConductor> is mounted before <PayConductorCheckoutElement>\"\n );\n }\n if (ctx?.frame) {\n setIframeUrl(ctx.frame.iframeUrl || \"\");\n ctx.frame.iframe = iframeRef.current;\n console.log(\n \"[PayConductorCheckoutElement] iframe registered, src:\",\n iframeUrl\n );\n }\n setIsLoaded(true);\n }, []);\n\n return (\n <div\n className=\"payconductor-element\"\n style={{\n width: \"100%\",\n }}\n >\n {isLoaded && iframeUrl ? (\n <iframe\n allow=\"payment\"\n title=\"PayConductor\"\n ref={iframeRef}\n src={iframeUrl}\n style={{\n width: \"100%\",\n height: props.height || IFRAME_DEFAULT_HEIGHT_VALUE,\n border: \"none\",\n }}\n />\n ) : null}\n </div>\n );\n}\n\nexport default PayConductorCheckoutElement;\n","import type { PayConductorConfig } from \"../iframe/types\";\nimport type { PayConductorFrame } from \"../types\";\ntype UsePayConductorReturn = PayConductorFrame & Partial<PayConductorConfig>;\nexport function usePayConductor(): UsePayConductorReturn {\n const ctx = typeof window !== \"undefined\" ? window.PayConductor : null;\n const config = ctx?.config ? {\n publicKey: ctx.config.publicKey,\n orderId: ctx.config.orderId,\n theme: ctx.config.theme,\n locale: ctx.config.locale\n } : {};\n const frame = ctx?.frame ? {\n iframe: ctx.frame.iframe,\n isReady: ctx.frame.isReady,\n error: ctx.frame.error\n } : {\n iframe: null,\n isReady: false,\n error: null\n };\n return {\n ...config,\n ...frame\n };\n}","import { POST_MESSAGES } from \"../constants\";\nimport type { BillingDetails, PayConductorConfig, PaymentMethod, PaymentResult } from \"../iframe/types\";\nimport { confirmPayment, createPendingRequestsMap, sendInit, sendMessageToIframe } from \"../internal\";\nexport type SubmitResult = {\n error?: {\n message: string;\n code?: string;\n type?: \"validation_error\" | \"payment_error\";\n };\n paymentMethod?: PaymentMethod;\n};\nexport type ConfirmPaymentOptions = {\n orderId: string;\n returnUrl?: string;\n};\nexport type UpdateOptions = {\n billingDetails?: Partial<BillingDetails>;\n address?: Partial<BillingDetails[\"address\"]>;\n};\nexport interface UsePayconductorElementReturn {\n init: (config: PayConductorConfig) => Promise<void>;\n confirmPayment: (options: ConfirmPaymentOptions) => Promise<PaymentResult>;\n validate: (data: unknown) => Promise<boolean>;\n reset: () => Promise<void>;\n getSelectedPaymentMethod: () => PaymentMethod | null;\n updateConfig: (config: Partial<Pick<PayConductorConfig, \"theme\" | \"locale\" | \"paymentMethods\">>) => void;\n updateorderId: (orderId: string) => void;\n update: (options: UpdateOptions) => void;\n submit: () => Promise<SubmitResult>;\n}\nfunction getIframeFromContext(ctx: typeof window.PayConductor): HTMLIFrameElement | null {\n if (!ctx?.frame?.iframe) return null;\n const iframeRef = ctx.frame.iframe;\n if (iframeRef instanceof HTMLIFrameElement) {\n return iframeRef;\n }\n if (iframeRef && typeof iframeRef === \"object\" && \"value\" in iframeRef) {\n const value = iframeRef.value;\n if (value instanceof HTMLIFrameElement) {\n return value;\n }\n }\n return null;\n}\nexport function usePayconductorElement(): UsePayconductorElementReturn {\n const ctx = typeof window !== \"undefined\" ? window.PayConductor : null;\n const sendToIframe = (type: string, data?: unknown) => {\n if (!ctx) return;\n const iframe = getIframeFromContext(ctx);\n if (iframe?.contentWindow) {\n iframe.contentWindow.postMessage({\n type,\n data\n }, \"*\");\n }\n };\n if (!ctx) {\n return {\n init: async () => {\n throw new Error(\"PayConductor not initialized\");\n },\n confirmPayment: async () => {\n throw new Error(\"PayConductor not initialized\");\n },\n validate: async () => {\n throw new Error(\"PayConductor not initialized\");\n },\n reset: async () => {\n throw new Error(\"PayConductor not initialized\");\n },\n getSelectedPaymentMethod: () => null,\n updateConfig: () => {\n throw new Error(\"PayConductor not initialized\");\n },\n updateorderId: () => {\n throw new Error(\"PayConductor not initialized\");\n },\n update: () => {\n throw new Error(\"PayConductor not initialized\");\n },\n submit: async () => {\n throw new Error(\"PayConductor not initialized\");\n }\n };\n }\n return {\n init: async (config: PayConductorConfig): Promise<void> => {\n const iframe = getIframeFromContext(ctx);\n const pendingMap = createPendingRequestsMap();\n return sendInit(iframe || undefined, pendingMap, config);\n },\n confirmPayment: async (options: ConfirmPaymentOptions): Promise<PaymentResult> => {\n const iframe = getIframeFromContext(ctx);\n const pendingMap = createPendingRequestsMap();\n if (!options.orderId) {\n throw new Error(\"Order ID is required\");\n }\n return confirmPayment(iframe || undefined, pendingMap, options);\n },\n validate: ctx.api.validate,\n reset: ctx.api.reset,\n getSelectedPaymentMethod: (): PaymentMethod | null => {\n return ctx?.selectedPaymentMethod ?? null;\n },\n updateConfig: (config: Partial<Pick<PayConductorConfig, \"theme\" | \"locale\" | \"paymentMethods\">>) => {\n const currentConfig = ctx.config;\n sendToIframe(POST_MESSAGES.CONFIG, {\n publicKey: currentConfig?.publicKey,\n orderId: currentConfig?.orderId,\n theme: config.theme ?? currentConfig?.theme,\n locale: config.locale ?? currentConfig?.locale,\n paymentMethods: config.paymentMethods ?? currentConfig?.paymentMethods\n });\n },\n updateorderId: (orderId: string) => {\n const currentConfig = ctx.config;\n sendToIframe(POST_MESSAGES.CONFIG, {\n publicKey: currentConfig?.publicKey,\n orderId: orderId,\n theme: currentConfig?.theme,\n locale: currentConfig?.locale,\n paymentMethods: currentConfig?.paymentMethods\n });\n },\n update: (options: UpdateOptions) => {\n sendToIframe(POST_MESSAGES.UPDATE, options);\n },\n submit: async (): Promise<SubmitResult> => {\n const iframe = getIframeFromContext(ctx);\n const pendingMap = createPendingRequestsMap();\n try {\n await sendMessageToIframe(iframe || undefined, pendingMap, POST_MESSAGES.CONFIRM_PAYMENT, {});\n return {\n paymentMethod: undefined\n };\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Payment failed\";\n return {\n error: {\n message,\n code: \"payment_error\",\n type: \"payment_error\"\n }\n };\n }\n }\n };\n}"],"names":["IFRAME_BASE_URL_PROD","IFRAME_BASE_URL_DEV","REQUEST_TIMEOUT_MS","IFRAME_DEFAULT_HEIGHT","OutgoingMessage","IncomingMessage","isDev","IFRAME_BASE_URL","ALLOWED_ORIGINS","IFRAME_DEFAULT_HEIGHT_VALUE","REQUEST_TIMEOUT","POST_MESSAGES","ERROR_CODES","buildIframeUrl","config","params","generateRequestId","isValidOrigin","origin","allowedOrigins","createPendingRequestsMap","sendMessageToIframe","iframe","pendingMap","type","data","resolve","reject","requestId","confirmPayment","options","validatePayment","resetPayment","sendConfig","sendInit","handleMessageEvent","event","setIsReady","setError","onReady","onError","onPaymentComplete","onPaymentFailed","onPaymentPending","onPaymentMethodSelected","payload","error","PayConductor","props","isLoaded","setIsLoaded","useState","isReady","iframeUrl","setIframeUrl","setPendingMap","selectedPaymentMethod","setSelectedPaymentMethod","configSent","setConfigSent","useEffect","log","args","getIframe","ref","_b","_a","frame","api","sendConfigToIframe","eventHandler","val","err","method","jsx","PayConductorCheckoutElement","iframeRef","useRef","ctx","usePayConductor","getIframeFromContext","value","usePayconductorElement","sendToIframe","currentConfig","orderId"],"mappings":"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"}
|
package/dist/index.es.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { jsx as L } from "react/jsx-runtime";
|
|
2
|
-
import { useState as E, useEffect as S, useRef as
|
|
3
|
-
const U = "https://iframe.payconductor.ai/v1", b = "http://localhost:5175",
|
|
4
|
-
var
|
|
5
|
-
const
|
|
6
|
-
INIT:
|
|
7
|
-
CONFIG:
|
|
8
|
-
UPDATE:
|
|
9
|
-
CONFIRM_PAYMENT:
|
|
10
|
-
VALIDATE:
|
|
11
|
-
RESET:
|
|
2
|
+
import { useState as E, useEffect as S, useRef as g } from "react";
|
|
3
|
+
const U = "https://iframe.payconductor.ai/v1", b = "http://localhost:5175", z = 3e4, G = "600px";
|
|
4
|
+
var I = /* @__PURE__ */ ((e) => (e.Init = "Init", e.Config = "Config", e.Update = "Update", e.ConfirmPayment = "ConfirmPayment", e.Validate = "Validate", e.Reset = "Reset", e))(I || {}), h = /* @__PURE__ */ ((e) => (e.Ready = "Ready", e.Error = "Error", e.PaymentComplete = "PaymentComplete", e.PaymentFailed = "PaymentFailed", e.PaymentPending = "PaymentPending", e.ValidationError = "ValidationError", e.PaymentMethodSelected = "PaymentMethodSelected", e))(h || {});
|
|
5
|
+
const H = typeof window < "u" && (window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1"), k = H ? b : U, q = [b, U], B = G, W = z, f = {
|
|
6
|
+
INIT: I.Init,
|
|
7
|
+
CONFIG: I.Config,
|
|
8
|
+
UPDATE: I.Update,
|
|
9
|
+
CONFIRM_PAYMENT: I.ConfirmPayment,
|
|
10
|
+
VALIDATE: I.Validate,
|
|
11
|
+
RESET: I.Reset,
|
|
12
12
|
READY: h.Ready,
|
|
13
13
|
ERROR: h.Error,
|
|
14
14
|
PAYMENT_COMPLETE: h.PaymentComplete,
|
|
@@ -29,7 +29,7 @@ function j(e) {
|
|
|
29
29
|
const n = new URLSearchParams({
|
|
30
30
|
publicKey: e.publicKey
|
|
31
31
|
});
|
|
32
|
-
return `${
|
|
32
|
+
return `${k}?${n.toString()}`;
|
|
33
33
|
}
|
|
34
34
|
function Q() {
|
|
35
35
|
return crypto.randomUUID();
|
|
@@ -40,7 +40,7 @@ function $(e, n) {
|
|
|
40
40
|
function N() {
|
|
41
41
|
return /* @__PURE__ */ new Map();
|
|
42
42
|
}
|
|
43
|
-
function
|
|
43
|
+
function R(e, n, o, t) {
|
|
44
44
|
return new Promise((i, m) => {
|
|
45
45
|
if (!e || !("contentWindow" in e)) {
|
|
46
46
|
m(new Error("Iframe not defined"));
|
|
@@ -68,23 +68,23 @@ function I(e, n, o, t) {
|
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
70
|
function v(e, n, o) {
|
|
71
|
-
return
|
|
72
|
-
|
|
71
|
+
return R(e, n, f.CONFIRM_PAYMENT, {
|
|
72
|
+
orderId: o.orderId
|
|
73
73
|
});
|
|
74
74
|
}
|
|
75
75
|
function J(e, n, o) {
|
|
76
|
-
return
|
|
76
|
+
return R(e, n, f.VALIDATE, o);
|
|
77
77
|
}
|
|
78
78
|
function X(e, n) {
|
|
79
|
-
return
|
|
79
|
+
return R(e, n, f.RESET);
|
|
80
80
|
}
|
|
81
81
|
function Z(e, n, o) {
|
|
82
|
-
return
|
|
82
|
+
return R(e, n, f.CONFIG, o);
|
|
83
83
|
}
|
|
84
84
|
function x(e, n, o) {
|
|
85
|
-
return
|
|
85
|
+
return R(e, n, f.INIT, o);
|
|
86
86
|
}
|
|
87
|
-
function p(e, n, o, t, i, m, c, C,
|
|
87
|
+
function p(e, n, o, t, i, m, c, C, T, y) {
|
|
88
88
|
if (!$(e.origin, q))
|
|
89
89
|
return;
|
|
90
90
|
const D = e.data, {
|
|
@@ -118,7 +118,7 @@ function p(e, n, o, t, i, m, c, C, R, y) {
|
|
|
118
118
|
return;
|
|
119
119
|
}
|
|
120
120
|
if (P === f.PAYMENT_PENDING) {
|
|
121
|
-
l && typeof l == "object" && "status" in l && (
|
|
121
|
+
l && typeof l == "object" && "status" in l && (T == null || T(l));
|
|
122
122
|
return;
|
|
123
123
|
}
|
|
124
124
|
if (P === f.PAYMENT_METHOD_SELECTED) {
|
|
@@ -131,7 +131,7 @@ function oe(e) {
|
|
|
131
131
|
() => !1
|
|
132
132
|
), [t, i] = E(
|
|
133
133
|
() => !1
|
|
134
|
-
), [m, c] = E(() => null), [C,
|
|
134
|
+
), [m, c] = E(() => null), [C, T] = E(
|
|
135
135
|
() => ""
|
|
136
136
|
), [y, D] = E(
|
|
137
137
|
() => null
|
|
@@ -146,7 +146,7 @@ function oe(e) {
|
|
|
146
146
|
const M = j({
|
|
147
147
|
publicKey: e.publicKey
|
|
148
148
|
});
|
|
149
|
-
|
|
149
|
+
T(M), o(!0), D(N()), d("iframeUrl built:", M), d("pendingMap created");
|
|
150
150
|
const A = () => {
|
|
151
151
|
var r, u;
|
|
152
152
|
const a = (u = (r = window.PayConductor) == null ? void 0 : r.frame) == null ? void 0 : u.iframe;
|
|
@@ -173,9 +173,9 @@ function oe(e) {
|
|
|
173
173
|
locale: e.locale,
|
|
174
174
|
paymentMethods: e.paymentMethods,
|
|
175
175
|
defaultPaymentMethod: e.defaultPaymentMethod
|
|
176
|
-
},
|
|
176
|
+
}, K = {
|
|
177
177
|
confirmPayment: (a) => (d("confirmPayment called", {
|
|
178
|
-
|
|
178
|
+
orderId: a.orderId
|
|
179
179
|
}), v(A(), y, a)),
|
|
180
180
|
validate: (a) => (d("validate called", a), J(A(), y, a)),
|
|
181
181
|
reset: () => (d("reset called"), X(A(), y)),
|
|
@@ -184,10 +184,10 @@ function oe(e) {
|
|
|
184
184
|
window.PayConductor = {
|
|
185
185
|
frame: O,
|
|
186
186
|
config: F,
|
|
187
|
-
api:
|
|
187
|
+
api: K,
|
|
188
188
|
selectedPaymentMethod: w
|
|
189
189
|
}, d("window.PayConductor registered");
|
|
190
|
-
const
|
|
190
|
+
const V = async () => {
|
|
191
191
|
if (!l) {
|
|
192
192
|
const a = A();
|
|
193
193
|
if (!a) {
|
|
@@ -209,12 +209,12 @@ function oe(e) {
|
|
|
209
209
|
nuPayConfig: e.nuPayConfig
|
|
210
210
|
});
|
|
211
211
|
}
|
|
212
|
-
},
|
|
212
|
+
}, Y = (a) => {
|
|
213
213
|
p(
|
|
214
214
|
a,
|
|
215
215
|
y,
|
|
216
216
|
(r) => {
|
|
217
|
-
i(r), r && (d("iframe Ready — sending config"),
|
|
217
|
+
i(r), r && (d("iframe Ready — sending config"), V());
|
|
218
218
|
},
|
|
219
219
|
(r) => {
|
|
220
220
|
c(r), d("iframe Error:", r);
|
|
@@ -245,7 +245,7 @@ function oe(e) {
|
|
|
245
245
|
}
|
|
246
246
|
);
|
|
247
247
|
};
|
|
248
|
-
window.addEventListener("message",
|
|
248
|
+
window.addEventListener("message", Y), d("SDK initialized — waiting for PayConductorCheckoutElement");
|
|
249
249
|
}, []), /* @__PURE__ */ L(
|
|
250
250
|
"div",
|
|
251
251
|
{
|
|
@@ -259,7 +259,7 @@ function oe(e) {
|
|
|
259
259
|
);
|
|
260
260
|
}
|
|
261
261
|
function re(e) {
|
|
262
|
-
const n =
|
|
262
|
+
const n = g(null), [o, t] = E(() => ""), [i, m] = E(() => !1);
|
|
263
263
|
return S(() => {
|
|
264
264
|
const c = typeof window < "u" ? window.PayConductor : null;
|
|
265
265
|
c || console.warn(
|
|
@@ -295,7 +295,7 @@ function re(e) {
|
|
|
295
295
|
function ae() {
|
|
296
296
|
const e = typeof window < "u" ? window.PayConductor : null, n = e != null && e.config ? {
|
|
297
297
|
publicKey: e.config.publicKey,
|
|
298
|
-
|
|
298
|
+
orderId: e.config.orderId,
|
|
299
299
|
theme: e.config.theme,
|
|
300
300
|
locale: e.config.locale
|
|
301
301
|
} : {}, o = e != null && e.frame ? {
|
|
@@ -341,8 +341,8 @@ function ie() {
|
|
|
341
341
|
},
|
|
342
342
|
confirmPayment: async (o) => {
|
|
343
343
|
const t = _(e), i = N();
|
|
344
|
-
if (!o.
|
|
345
|
-
throw new Error("
|
|
344
|
+
if (!o.orderId)
|
|
345
|
+
throw new Error("Order ID is required");
|
|
346
346
|
return v(t || void 0, i, o);
|
|
347
347
|
},
|
|
348
348
|
validate: e.api.validate,
|
|
@@ -352,17 +352,17 @@ function ie() {
|
|
|
352
352
|
const t = e.config;
|
|
353
353
|
n(f.CONFIG, {
|
|
354
354
|
publicKey: t == null ? void 0 : t.publicKey,
|
|
355
|
-
|
|
355
|
+
orderId: t == null ? void 0 : t.orderId,
|
|
356
356
|
theme: o.theme ?? (t == null ? void 0 : t.theme),
|
|
357
357
|
locale: o.locale ?? (t == null ? void 0 : t.locale),
|
|
358
358
|
paymentMethods: o.paymentMethods ?? (t == null ? void 0 : t.paymentMethods)
|
|
359
359
|
});
|
|
360
360
|
},
|
|
361
|
-
|
|
361
|
+
updateorderId: (o) => {
|
|
362
362
|
const t = e.config;
|
|
363
363
|
n(f.CONFIG, {
|
|
364
364
|
publicKey: t == null ? void 0 : t.publicKey,
|
|
365
|
-
|
|
365
|
+
orderId: o,
|
|
366
366
|
theme: t == null ? void 0 : t.theme,
|
|
367
367
|
locale: t == null ? void 0 : t.locale,
|
|
368
368
|
paymentMethods: t == null ? void 0 : t.paymentMethods
|
|
@@ -374,7 +374,7 @@ function ie() {
|
|
|
374
374
|
submit: async () => {
|
|
375
375
|
const o = _(e), t = N();
|
|
376
376
|
try {
|
|
377
|
-
return await
|
|
377
|
+
return await R(o || void 0, t, f.CONFIRM_PAYMENT, {}), {
|
|
378
378
|
paymentMethod: void 0
|
|
379
379
|
};
|
|
380
380
|
} catch (i) {
|
|
@@ -404,7 +404,7 @@ function ie() {
|
|
|
404
404
|
updateConfig: () => {
|
|
405
405
|
throw new Error("PayConductor not initialized");
|
|
406
406
|
},
|
|
407
|
-
|
|
407
|
+
updateorderId: () => {
|
|
408
408
|
throw new Error("PayConductor not initialized");
|
|
409
409
|
},
|
|
410
410
|
update: () => {
|
|
@@ -418,7 +418,7 @@ function ie() {
|
|
|
418
418
|
export {
|
|
419
419
|
q as ALLOWED_ORIGINS,
|
|
420
420
|
ne as ERROR_CODES,
|
|
421
|
-
|
|
421
|
+
k as IFRAME_BASE_URL,
|
|
422
422
|
B as IFRAME_DEFAULT_HEIGHT_VALUE,
|
|
423
423
|
f as POST_MESSAGES,
|
|
424
424
|
oe as PayConductor,
|
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/payconductor/iframe/constants.ts","../src/payconductor/iframe/types.ts","../src/payconductor/constants.ts","../src/payconductor/utils.ts","../src/payconductor/internal.ts","../src/payconductor/payconductor.tsx","../src/payconductor/payconductor-element.tsx","../src/payconductor/hooks/use-payconductor.ts","../src/payconductor/hooks/use-element.ts"],"sourcesContent":["// PayConductor Shared Constants\n// Served statically at iframe.payconductor.ai/constants.ts\n// Used by the iFrame (imported directly) and the SDK Web (synced with: bun sync)\n\nexport const APP_BASE_URL_PROD = \"https://app.payconductor.ai\";\nexport const API_BASE_URL_PROD = \"https://app.payconductor.ai/api/v1\";\nexport const IFRAME_BASE_URL_PROD = \"https://iframe.payconductor.ai/v1\";\nexport const IFRAME_BASE_URL_DEV = \"http://localhost:5175\";\nexport const APP_BASE_URL_DEV = \"http://localhost:3000\";\nexport const DEFAULT_LOCALE = \"pt-BR\";\nexport const REQUEST_TIMEOUT_MS = 30000;\nexport const IFRAME_DEFAULT_HEIGHT = \"600px\"","// PayConductor Shared Types\n// Served statically at iframe.payconductor.ai/types.ts\n// Used by the iFrame (imported directly) and the SDK Web (synced with: bun sync)\n\nexport enum PaymentMethod {\n Pix = \"Pix\",\n CreditCard = \"CreditCard\",\n DebitCard = \"DebitCard\",\n BankSlip = \"BankSlip\",\n Crypto = \"Crypto\",\n ApplePay = \"ApplePay\",\n NuPay = \"NuPay\",\n PicPay = \"PicPay\",\n AmazonPay = \"AmazonPay\",\n SepaDebit = \"SepaDebit\",\n GooglePay = \"GooglePay\",\n}\nexport enum PaymentMethodLayout {\n Grid = \"grid\",\n Vertical = \"vertical\",\n Horizontal = \"horizontal\",\n}\nexport enum PaymentStatus {\n Succeeded = \"succeeded\",\n Pending = \"pending\",\n Failed = \"failed\",\n}\nexport enum DeviceType {\n Android = \"android\",\n IOS = \"ios\",\n Web = \"web\",\n}\nexport enum InputStyleKey {\n Padding = \"padding\",\n Radius = \"radius\",\n Color = \"color\",\n Background = \"background\",\n Shadow = \"shadow\",\n}\nexport enum OutgoingMessage {\n Init = \"Init\",\n Config = \"Config\",\n Update = \"Update\",\n ConfirmPayment = \"ConfirmPayment\",\n Validate = \"Validate\",\n Reset = \"Reset\",\n}\nexport enum IncomingMessage {\n Ready = \"Ready\",\n Error = \"Error\",\n PaymentComplete = \"PaymentComplete\",\n PaymentFailed = \"PaymentFailed\",\n PaymentPending = \"PaymentPending\",\n ValidationError = \"ValidationError\",\n PaymentMethodSelected = \"PaymentMethodSelected\",\n}\nexport enum ErrorCode {\n InvalidClient = \"InvalidClient\",\n InvalidToken = \"InvalidToken\",\n NetworkError = \"NetworkError\",\n IframeNotReady = \"IframeNotReady\",\n PaymentDeclined = \"PaymentDeclined\",\n ValidationError = \"ValidationError\",\n Timeout = \"Timeout\",\n}\nexport type InputStyleConfig = {\n padding?: string;\n radius?: string;\n color?: string;\n background?: string;\n shadow?: string;\n};\nexport type PaymentMethodsConfig = {\n layout?: PaymentMethodLayout;\n gap?: string;\n inputStyle?: InputStyleConfig;\n};\nexport type PaymentMethodConfig = {\n method: PaymentMethod;\n discount?: number;\n showBrands?: boolean;\n installments?: {\n count: number;\n amount: number;\n }[];\n};\nexport type PaymentMethodsResponse = {\n methods: PaymentMethod[];\n config: PaymentMethodsConfig;\n};\nexport type PayConductorTheme = {\n primaryColor?: string;\n secondaryColor?: string;\n backgroundColor?: string;\n surfaceColor?: string;\n textColor?: string;\n textSecondaryColor?: string;\n errorColor?: string;\n successColor?: string;\n warningColor?: string;\n borderColor?: string;\n disabledColor?: string;\n fontFamily?: string;\n fontSize?: {\n xs?: string;\n sm?: string;\n md?: string;\n lg?: string;\n xl?: string;\n };\n fontWeight?: {\n normal?: number;\n medium?: number;\n bold?: number;\n };\n lineHeight?: string;\n spacing?: {\n xs?: string;\n sm?: string;\n md?: string;\n lg?: string;\n xl?: string;\n };\n borderRadius?: string;\n borderWidth?: string;\n boxShadow?: string;\n boxShadowHover?: string;\n inputBackground?: string;\n inputBorderColor?: string;\n inputBorderRadius?: string;\n inputHeight?: string;\n inputPadding?: string;\n buttonHeight?: string;\n buttonPadding?: string;\n buttonBorderRadius?: string;\n transitionDuration?: string;\n transitionTimingFunction?: string;\n};\nexport const defaultTheme: PayConductorTheme = {\n primaryColor: \"#0066ff\",\n secondaryColor: \"#5a6b7c\",\n backgroundColor: \"transparent\",\n surfaceColor: \"#f8fafc\",\n textColor: \"#0f172a\",\n textSecondaryColor: \"#64748b\",\n errorColor: \"#ef4444\",\n successColor: \"#22c55e\",\n warningColor: \"#f59e0b\",\n borderColor: \"#e2e8f0\",\n disabledColor: \"#cbd5e1\",\n fontFamily: '\"Poppins\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n fontSize: {\n xs: \"0.75rem\",\n sm: \"0.875rem\",\n md: \"1rem\",\n lg: \"1.125rem\",\n xl: \"1.25rem\"\n },\n fontWeight: {\n normal: 400,\n medium: 500,\n bold: 600\n },\n lineHeight: \"1.5\",\n spacing: {\n xs: \"4px\",\n sm: \"8px\",\n md: \"16px\",\n lg: \"24px\",\n xl: \"32px\"\n },\n borderRadius: \"8px\",\n borderWidth: \"1px\",\n boxShadow: \"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)\",\n boxShadowHover: \"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)\",\n inputBackground: \"#ffffff\",\n inputBorderColor: \"#cbd5e1\",\n inputBorderRadius: \"8px\",\n inputHeight: \"44px\",\n inputPadding: \"12px 16px\",\n buttonHeight: \"48px\",\n buttonPadding: \"16px 24px\",\n buttonBorderRadius: \"8px\",\n transitionDuration: \"0.2s\",\n transitionTimingFunction: \"ease\"\n};\nexport type PayConductorConfig = {\n publicKey: string;\n intentToken?: string;\n theme?: PayConductorTheme;\n locale?: string;\n paymentMethods?: PaymentMethod[] | \"all\";\n defaultPaymentMethod?: PaymentMethod;\n paymentMethodsConfig?: PaymentMethodConfig[];\n methodsDirection?: \"vertical\" | \"horizontal\";\n showPaymentButtons?: boolean;\n /** Required when NuPay is an available payment method */\n nuPayConfig?: NuPayData;\n};\nexport type BillingDetails = {\n name: string;\n email?: string;\n phone?: string;\n address?: {\n line1: string;\n line2?: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n };\n};\nexport type CardData = {\n number: string;\n expMonth: string;\n expYear: string;\n cvc: string;\n};\nexport type CreatePaymentMethodOptions = {\n billingDetails: BillingDetails;\n card?: CardData;\n};\nexport type PaymentMethodResult = {\n id: string;\n type: PaymentMethod;\n card?: {\n brand: string;\n last4: string;\n expMonth: number;\n expYear: number;\n };\n billingDetails?: BillingDetails;\n};\nexport type PaymentResult = {\n paymentIntentId: string;\n status: PaymentStatus;\n amount: number;\n currency: string;\n message?: string;\n};\nexport interface MessagePayload {\n type: OutgoingMessage | IncomingMessage;\n data?: unknown;\n requestId?: string;\n error?: {\n code: string;\n message: string;\n field?: string;\n };\n}\nexport type CardTokenData = {\n token: string;\n firstSixCardNumber?: string;\n};\nexport type CardFullData = {\n number: string;\n holderName: string;\n cvv: string;\n expiration: {\n month: number;\n year: number;\n };\n};\nexport type CardPaymentData = CardTokenData | CardFullData;\nexport type PixPaymentData = {\n paymentMethod: PaymentMethod.Pix;\n expirationInSeconds?: number;\n};\nexport type CreditCardPaymentData = {\n paymentMethod: PaymentMethod.CreditCard;\n card: CardPaymentData;\n installments: number;\n softDescriptor?: string;\n};\nexport type BankSlipPaymentData = {\n paymentMethod: PaymentMethod.BankSlip;\n expirationInDays?: number;\n};\nexport type NuPayData = {\n cancelUrl: string;\n merchantName: string;\n returnUrl: string;\n storeName?: string;\n};\nexport type NuPayPaymentData = {\n paymentMethod: PaymentMethod.NuPay;\n nuPay: NuPayData;\n};\nexport type PicPayPaymentData = {\n paymentMethod: PaymentMethod.PicPay;\n};\nexport type PaymentConfirmData = PixPaymentData | CreditCardPaymentData | BankSlipPaymentData | NuPayPaymentData | PicPayPaymentData","import { IFRAME_BASE_URL_DEV, IFRAME_BASE_URL_PROD, IFRAME_DEFAULT_HEIGHT, REQUEST_TIMEOUT_MS } from \"./iframe/constants\";\nimport { IncomingMessage, OutgoingMessage } from \"./iframe/types\";\nconst isDev = typeof window !== \"undefined\" && (window.location.hostname === \"localhost\" || window.location.hostname === \"127.0.0.1\");\nexport const IFRAME_BASE_URL = isDev ? IFRAME_BASE_URL_DEV : IFRAME_BASE_URL_PROD;\nexport const ALLOWED_ORIGINS = [IFRAME_BASE_URL_DEV, IFRAME_BASE_URL_PROD];\nexport const IFRAME_DEFAULT_HEIGHT_VALUE = IFRAME_DEFAULT_HEIGHT;\nexport const REQUEST_TIMEOUT = REQUEST_TIMEOUT_MS;\nexport const POST_MESSAGES = {\n INIT: OutgoingMessage.Init,\n CONFIG: OutgoingMessage.Config,\n UPDATE: OutgoingMessage.Update,\n CONFIRM_PAYMENT: OutgoingMessage.ConfirmPayment,\n VALIDATE: OutgoingMessage.Validate,\n RESET: OutgoingMessage.Reset,\n READY: IncomingMessage.Ready,\n ERROR: IncomingMessage.Error,\n PAYMENT_COMPLETE: IncomingMessage.PaymentComplete,\n PAYMENT_FAILED: IncomingMessage.PaymentFailed,\n PAYMENT_PENDING: IncomingMessage.PaymentPending,\n VALIDATION_ERROR: IncomingMessage.ValidationError,\n PAYMENT_METHOD_SELECTED: IncomingMessage.PaymentMethodSelected\n} as const;\nexport const ERROR_CODES = {\n INVALID_CLIENT: \"InvalidClient\",\n INVALID_TOKEN: \"InvalidToken\",\n NETWORK_ERROR: \"NetworkError\",\n IFRAME_NOT_READY: \"IframeNotReady\",\n PAYMENT_DECLINED: \"PaymentDeclined\",\n VALIDATION_ERROR: \"ValidationError\",\n TIMEOUT: \"Timeout\"\n} as const","import { IFRAME_BASE_URL } from \"./constants\";\nimport type { PayConductorConfig } from \"./iframe/types\";\nexport function buildIframeUrl(config: PayConductorConfig): string {\n const params = new URLSearchParams({\n publicKey: config.publicKey\n });\n return `${IFRAME_BASE_URL}?${params.toString()}`;\n}\nexport function generateRequestId(): string {\n return crypto.randomUUID();\n}\nexport function isValidOrigin(origin: string, allowedOrigins: string[]): boolean {\n return allowedOrigins.includes(origin);\n}","import { ALLOWED_ORIGINS, POST_MESSAGES, REQUEST_TIMEOUT } from \"./constants\";\nimport { IncomingMessage, OutgoingMessage, PayConductorConfig, PaymentMethod, PaymentResult } from \"./iframe/types\";\nimport type { ConfirmPaymentOptions, PendingRequest } from \"./types\";\nimport { generateRequestId, isValidOrigin } from \"./utils\";\nexport function createPendingRequestsMap(): Map<string, PendingRequest> {\n return new Map<string, PendingRequest>();\n}\nexport function sendMessageToIframe(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, type: OutgoingMessage | IncomingMessage, data?: unknown): Promise<unknown> {\n return new Promise((resolve, reject) => {\n if (!iframe || !(\"contentWindow\" in iframe)) {\n reject(new Error(\"Iframe not defined\"));\n return;\n }\n if (!iframe?.contentWindow) {\n reject(new Error(\"Iframe not ready\"));\n return;\n }\n if (!pendingMap) {\n reject(new Error(\"Pending requests not initialized\"));\n return;\n }\n const requestId = generateRequestId();\n pendingMap.set(requestId, {\n resolve,\n reject\n });\n iframe.contentWindow.postMessage({\n type,\n data,\n requestId\n }, \"*\");\n setTimeout(() => {\n if (pendingMap?.has(requestId)) {\n pendingMap.delete(requestId);\n reject(new Error(\"Request timeout\"));\n }\n }, REQUEST_TIMEOUT);\n });\n}\nexport function confirmPayment(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, options: ConfirmPaymentOptions): Promise<PaymentResult> {\n return sendMessageToIframe(iframe, pendingMap, POST_MESSAGES.CONFIRM_PAYMENT, {\n intentToken: options.intentToken\n }) as Promise<PaymentResult>;\n}\nexport function validatePayment(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, data: unknown): Promise<boolean> {\n return sendMessageToIframe(iframe, pendingMap, POST_MESSAGES.VALIDATE, data) as Promise<boolean>;\n}\nexport function resetPayment(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null): Promise<void> {\n return sendMessageToIframe(iframe, pendingMap, POST_MESSAGES.RESET) as Promise<void>;\n}\nexport function sendConfig(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, config: Pick<PayConductorConfig, \"theme\" | \"locale\" | \"paymentMethods\" | \"defaultPaymentMethod\" | \"showPaymentButtons\" | \"nuPayConfig\">): Promise<void> {\n return sendMessageToIframe(iframe, pendingMap, POST_MESSAGES.CONFIG, config) as Promise<void>;\n}\nexport function sendInit(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, config: PayConductorConfig): Promise<void> {\n return sendMessageToIframe(iframe, pendingMap, POST_MESSAGES.INIT, config) as Promise<void>;\n}\ntype MessagePayload = {\n requestId?: string;\n type?: string;\n data?: PaymentResult | {\n paymentMethod: PaymentMethod;\n };\n error?: {\n message?: string;\n };\n};\nexport function handleMessageEvent(event: MessageEvent, pendingMap: Map<string, PendingRequest> | null, setIsReady: (value: boolean) => void, 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) {\n if (!isValidOrigin(event.origin, ALLOWED_ORIGINS)) {\n return;\n }\n const payload: MessagePayload = event.data;\n const {\n requestId,\n type,\n data,\n error\n } = payload;\n if (requestId && pendingMap?.has(requestId)) {\n const {\n resolve,\n reject\n } = pendingMap.get(requestId)!;\n pendingMap.delete(requestId);\n if (error) {\n reject(new Error(String(error.message)));\n } else {\n resolve(data);\n }\n return;\n }\n if (type === POST_MESSAGES.READY) {\n setIsReady(true);\n onReady?.();\n return;\n }\n if (type === POST_MESSAGES.ERROR) {\n setError(error?.message || \"Unknown error\");\n onError?.(new Error(String(error?.message)));\n return;\n }\n if (type === POST_MESSAGES.PAYMENT_COMPLETE) {\n if (data && typeof data === \"object\" && \"status\" in data) {\n onPaymentComplete?.(data);\n }\n return;\n }\n if (type === POST_MESSAGES.PAYMENT_FAILED) {\n if (data && typeof data === \"object\" && \"status\" in data) {\n onPaymentFailed?.(data);\n }\n return;\n }\n if (type === POST_MESSAGES.PAYMENT_PENDING) {\n if (data && typeof data === \"object\" && \"status\" in data) {\n onPaymentPending?.(data);\n }\n return;\n }\n if (type === POST_MESSAGES.PAYMENT_METHOD_SELECTED) {\n if (data && typeof data === \"object\" && \"paymentMethod\" in data) {\n onPaymentMethodSelected?.(data.paymentMethod);\n }\n return;\n }\n}","\"use client\";\nimport * as React from \"react\";\nimport { useState, useEffect } from \"react\";\n\nexport interface PayConductorEmbedProps\n extends Omit<PayConductorConfig, \"intentToken\"> {\n children?: any;\n showActionButtons?: boolean;\n debug?: boolean;\n onReady?: () => void;\n onError?: (error: Error) => void;\n onPaymentComplete?: (result: PaymentResult) => void;\n onPaymentFailed?: (result: PaymentResult) => void;\n onPaymentPending?: (result: PaymentResult) => void;\n onPaymentMethodSelected?: (method: PaymentMethod) => void;\n}\n\nimport type {\n PayConductorConfig,\n PaymentMethod,\n PaymentResult,\n} from \"./iframe/types\";\nimport {\n confirmPayment,\n createPendingRequestsMap,\n handleMessageEvent,\n resetPayment,\n sendConfig,\n validatePayment,\n} from \"./internal\";\nimport type {\n PayConductorApi,\n PayConductorFrame,\n PayConductorState,\n PendingRequest,\n} from \"./types\";\nimport { buildIframeUrl } from \"./utils\";\n\nfunction PayConductor(props: PayConductorEmbedProps) {\n const [isLoaded, setIsLoaded] = useState<PayConductorState[\"isLoaded\"]>(\n () => false\n );\n\n const [isReady, setIsReady] = useState<PayConductorState[\"isReady\"]>(\n () => false\n );\n\n const [error, setError] = useState<PayConductorState[\"error\"]>(() => null);\n\n const [iframeUrl, setIframeUrl] = useState<PayConductorState[\"iframeUrl\"]>(\n () => \"\"\n );\n\n const [pendingMap, setPendingMap] = useState<PayConductorState[\"pendingMap\"]>(\n () => null\n );\n\n const [selectedPaymentMethod, setSelectedPaymentMethod] = useState<\n PayConductorState[\"selectedPaymentMethod\"]\n >(() => null);\n\n const [configSent, setConfigSent] = useState(() => false);\n\n useEffect(() => {\n const log = (...args: any[]) => {\n if (props.debug) {\n console.log(\"[PayConductor]\", ...args);\n }\n };\n log(\"SDK initializing\", {\n publicKey: props.publicKey,\n });\n const iframeUrl = buildIframeUrl({\n publicKey: props.publicKey,\n });\n setIframeUrl(iframeUrl);\n setIsLoaded(true);\n setPendingMap(createPendingRequestsMap());\n log(\"iframeUrl built:\", iframeUrl);\n log(\"pendingMap created\");\n const getIframe = (): HTMLIFrameElement | undefined => {\n const ref = window.PayConductor?.frame?.iframe;\n if (!ref) return undefined;\n if (ref instanceof HTMLIFrameElement) return ref;\n if (typeof ref === \"object\" && ref !== null) {\n if (\"current\" in ref) return (ref as any).current ?? undefined;\n if (\"value\" in ref) return (ref as any).value ?? undefined;\n }\n return ref as HTMLIFrameElement;\n };\n const frame: PayConductorFrame = {\n iframe: null,\n iframeUrl,\n get isReady() {\n return isReady;\n },\n get error() {\n return error;\n },\n };\n const config: PayConductorConfig = {\n publicKey: props.publicKey,\n theme: props.theme,\n locale: props.locale,\n paymentMethods: props.paymentMethods,\n defaultPaymentMethod: props.defaultPaymentMethod,\n };\n const api: PayConductorApi = {\n confirmPayment: (options: { intentToken: string }) => {\n log(\"confirmPayment called\", {\n intentToken: options.intentToken,\n });\n return confirmPayment(getIframe(), pendingMap, options);\n },\n validate: (data: unknown) => {\n log(\"validate called\", data);\n return validatePayment(getIframe(), pendingMap, data);\n },\n reset: () => {\n log(\"reset called\");\n return resetPayment(getIframe(), pendingMap);\n },\n getSelectedPaymentMethod: () => selectedPaymentMethod,\n };\n window.PayConductor = {\n frame,\n config,\n api,\n selectedPaymentMethod: selectedPaymentMethod,\n };\n log(\"window.PayConductor registered\");\n const sendConfigToIframe = async () => {\n if (!configSent) {\n const iframe = getIframe();\n if (!iframe) {\n log(\"sendConfigToIframe: iframe not found, skipping\");\n return;\n }\n setConfigSent(true);\n log(\"sendConfig →\", {\n theme: props.theme,\n locale: props.locale,\n paymentMethods: props.paymentMethods,\n defaultPaymentMethod: props.defaultPaymentMethod,\n showPaymentButtons: props.showPaymentButtons,\n });\n sendConfig(iframe, pendingMap, {\n theme: props.theme,\n locale: props.locale,\n paymentMethods: props.paymentMethods,\n defaultPaymentMethod: props.defaultPaymentMethod,\n showPaymentButtons: props.showPaymentButtons,\n nuPayConfig: props.nuPayConfig,\n });\n }\n };\n const eventHandler = (event: MessageEvent) => {\n handleMessageEvent(\n event,\n pendingMap,\n (val) => {\n setIsReady(val);\n if (val) {\n log(\"iframe Ready — sending config\");\n sendConfigToIframe();\n }\n },\n (val) => {\n setError(val);\n log(\"iframe Error:\", val);\n },\n () => {\n log(\"onReady fired\");\n props.onReady?.();\n },\n (err) => {\n log(\"onError fired:\", err);\n props.onError?.(err);\n },\n (data) => {\n log(\"PaymentComplete:\", data);\n props.onPaymentComplete?.(data as PaymentResult);\n },\n (data) => {\n log(\"PaymentFailed:\", data);\n props.onPaymentFailed?.(data as PaymentResult);\n },\n (data) => {\n log(\"PaymentPending:\", data);\n props.onPaymentPending?.(data as PaymentResult);\n },\n (method) => {\n log(\"PaymentMethodSelected:\", method);\n setSelectedPaymentMethod(method);\n if (window.PayConductor) {\n window.PayConductor.selectedPaymentMethod = method;\n }\n props.onPaymentMethodSelected?.(method);\n }\n );\n };\n window.addEventListener(\"message\", eventHandler);\n log(\"SDK initialized — waiting for PayConductorCheckoutElement\");\n }, []);\n\n return (\n <div\n className=\"payconductor\"\n id=\"payconductor\"\n style={{\n display: \"contents\",\n }}\n >\n {props.children}\n </div>\n );\n}\n\nexport default PayConductor;\n","\"use client\";\nimport * as React from \"react\";\nimport { useState, useRef, useEffect } from \"react\";\n\nexport interface PayConductorCheckoutElementProps {\n height?: string;\n}\n\nimport { IFRAME_DEFAULT_HEIGHT_VALUE } from \"./constants\";\n\nfunction PayConductorCheckoutElement(props: PayConductorCheckoutElementProps) {\n const iframeRef = useRef<any>(null);\n const [iframeUrl, setIframeUrl] = useState(() => \"\");\n\n const [isLoaded, setIsLoaded] = useState(() => false);\n\n useEffect(() => {\n const ctx = typeof window !== \"undefined\" ? window.PayConductor : null;\n if (!ctx) {\n console.warn(\n \"[PayConductorCheckoutElement] window.PayConductor not found — ensure <PayConductor> is mounted before <PayConductorCheckoutElement>\"\n );\n }\n if (ctx?.frame) {\n setIframeUrl(ctx.frame.iframeUrl || \"\");\n ctx.frame.iframe = iframeRef.current;\n console.log(\n \"[PayConductorCheckoutElement] iframe registered, src:\",\n iframeUrl\n );\n }\n setIsLoaded(true);\n }, []);\n\n return (\n <div\n className=\"payconductor-element\"\n style={{\n width: \"100%\",\n }}\n >\n {isLoaded && iframeUrl ? (\n <iframe\n allow=\"payment\"\n title=\"PayConductor\"\n ref={iframeRef}\n src={iframeUrl}\n style={{\n width: \"100%\",\n height: props.height || IFRAME_DEFAULT_HEIGHT_VALUE,\n border: \"none\",\n }}\n />\n ) : null}\n </div>\n );\n}\n\nexport default PayConductorCheckoutElement;\n","import type { PayConductorConfig } from \"../iframe/types\";\nimport type { PayConductorFrame } from \"../types\";\ntype UsePayConductorReturn = PayConductorFrame & Partial<PayConductorConfig>;\nexport function usePayConductor(): UsePayConductorReturn {\n const ctx = typeof window !== \"undefined\" ? window.PayConductor : null;\n const config = ctx?.config ? {\n publicKey: ctx.config.publicKey,\n intentToken: ctx.config.intentToken,\n theme: ctx.config.theme,\n locale: ctx.config.locale\n } : {};\n const frame = ctx?.frame ? {\n iframe: ctx.frame.iframe,\n isReady: ctx.frame.isReady,\n error: ctx.frame.error\n } : {\n iframe: null,\n isReady: false,\n error: null\n };\n return {\n ...config,\n ...frame\n };\n}","import { POST_MESSAGES } from \"../constants\";\nimport type { BillingDetails, PayConductorConfig, PaymentMethod, PaymentResult } from \"../iframe/types\";\nimport { confirmPayment, createPendingRequestsMap, sendInit, sendMessageToIframe } from \"../internal\";\nexport type SubmitResult = {\n error?: {\n message: string;\n code?: string;\n type?: \"validation_error\" | \"payment_error\";\n };\n paymentMethod?: PaymentMethod;\n};\nexport type ConfirmPaymentOptions = {\n intentToken: string;\n returnUrl?: string;\n};\nexport type UpdateOptions = {\n billingDetails?: Partial<BillingDetails>;\n address?: Partial<BillingDetails[\"address\"]>;\n};\nexport interface UsePayconductorElementReturn {\n init: (config: PayConductorConfig) => Promise<void>;\n confirmPayment: (options: ConfirmPaymentOptions) => Promise<PaymentResult>;\n validate: (data: unknown) => Promise<boolean>;\n reset: () => Promise<void>;\n getSelectedPaymentMethod: () => PaymentMethod | null;\n updateConfig: (config: Partial<Pick<PayConductorConfig, \"theme\" | \"locale\" | \"paymentMethods\">>) => void;\n updateIntentToken: (intentToken: string) => void;\n update: (options: UpdateOptions) => void;\n submit: () => Promise<SubmitResult>;\n}\nfunction getIframeFromContext(ctx: typeof window.PayConductor): HTMLIFrameElement | null {\n if (!ctx?.frame?.iframe) return null;\n const iframeRef = ctx.frame.iframe;\n if (iframeRef instanceof HTMLIFrameElement) {\n return iframeRef;\n }\n if (iframeRef && typeof iframeRef === \"object\" && \"value\" in iframeRef) {\n const value = iframeRef.value;\n if (value instanceof HTMLIFrameElement) {\n return value;\n }\n }\n return null;\n}\nexport function usePayconductorElement(): UsePayconductorElementReturn {\n const ctx = typeof window !== \"undefined\" ? window.PayConductor : null;\n const sendToIframe = (type: string, data?: unknown) => {\n if (!ctx) return;\n const iframe = getIframeFromContext(ctx);\n if (iframe?.contentWindow) {\n iframe.contentWindow.postMessage({\n type,\n data\n }, \"*\");\n }\n };\n if (!ctx) {\n return {\n init: async () => {\n throw new Error(\"PayConductor not initialized\");\n },\n confirmPayment: async () => {\n throw new Error(\"PayConductor not initialized\");\n },\n validate: async () => {\n throw new Error(\"PayConductor not initialized\");\n },\n reset: async () => {\n throw new Error(\"PayConductor not initialized\");\n },\n getSelectedPaymentMethod: () => null,\n updateConfig: () => {\n throw new Error(\"PayConductor not initialized\");\n },\n updateIntentToken: () => {\n throw new Error(\"PayConductor not initialized\");\n },\n update: () => {\n throw new Error(\"PayConductor not initialized\");\n },\n submit: async () => {\n throw new Error(\"PayConductor not initialized\");\n }\n };\n }\n return {\n init: async (config: PayConductorConfig): Promise<void> => {\n const iframe = getIframeFromContext(ctx);\n const pendingMap = createPendingRequestsMap();\n return sendInit(iframe || undefined, pendingMap, config);\n },\n confirmPayment: async (options: ConfirmPaymentOptions): Promise<PaymentResult> => {\n const iframe = getIframeFromContext(ctx);\n const pendingMap = createPendingRequestsMap();\n if (!options.intentToken) {\n throw new Error(\"Intent token is required\");\n }\n return confirmPayment(iframe || undefined, pendingMap, options);\n },\n validate: ctx.api.validate,\n reset: ctx.api.reset,\n getSelectedPaymentMethod: (): PaymentMethod | null => {\n return ctx?.selectedPaymentMethod ?? null;\n },\n updateConfig: (config: Partial<Pick<PayConductorConfig, \"theme\" | \"locale\" | \"paymentMethods\">>) => {\n const currentConfig = ctx.config;\n sendToIframe(POST_MESSAGES.CONFIG, {\n publicKey: currentConfig?.publicKey,\n intentToken: currentConfig?.intentToken,\n theme: config.theme ?? currentConfig?.theme,\n locale: config.locale ?? currentConfig?.locale,\n paymentMethods: config.paymentMethods ?? currentConfig?.paymentMethods\n });\n },\n updateIntentToken: (intentToken: string) => {\n const currentConfig = ctx.config;\n sendToIframe(POST_MESSAGES.CONFIG, {\n publicKey: currentConfig?.publicKey,\n intentToken: intentToken,\n theme: currentConfig?.theme,\n locale: currentConfig?.locale,\n paymentMethods: currentConfig?.paymentMethods\n });\n },\n update: (options: UpdateOptions) => {\n sendToIframe(POST_MESSAGES.UPDATE, options);\n },\n submit: async (): Promise<SubmitResult> => {\n const iframe = getIframeFromContext(ctx);\n const pendingMap = createPendingRequestsMap();\n try {\n await sendMessageToIframe(iframe || undefined, pendingMap, POST_MESSAGES.CONFIRM_PAYMENT, {});\n return {\n paymentMethod: undefined\n };\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Payment failed\";\n return {\n error: {\n message,\n code: \"payment_error\",\n type: \"payment_error\"\n }\n };\n }\n }\n };\n}"],"names":["IFRAME_BASE_URL_PROD","IFRAME_BASE_URL_DEV","REQUEST_TIMEOUT_MS","IFRAME_DEFAULT_HEIGHT","OutgoingMessage","IncomingMessage","isDev","IFRAME_BASE_URL","ALLOWED_ORIGINS","IFRAME_DEFAULT_HEIGHT_VALUE","REQUEST_TIMEOUT","POST_MESSAGES","ERROR_CODES","buildIframeUrl","config","params","generateRequestId","isValidOrigin","origin","allowedOrigins","createPendingRequestsMap","sendMessageToIframe","iframe","pendingMap","type","data","resolve","reject","requestId","confirmPayment","options","validatePayment","resetPayment","sendConfig","sendInit","handleMessageEvent","event","setIsReady","setError","onReady","onError","onPaymentComplete","onPaymentFailed","onPaymentPending","onPaymentMethodSelected","payload","error","PayConductor","props","isLoaded","setIsLoaded","useState","isReady","iframeUrl","setIframeUrl","setPendingMap","selectedPaymentMethod","setSelectedPaymentMethod","configSent","setConfigSent","useEffect","log","args","getIframe","ref","_b","_a","frame","api","sendConfigToIframe","eventHandler","val","err","method","jsx","PayConductorCheckoutElement","iframeRef","useRef","ctx","usePayConductor","getIframeFromContext","value","usePayconductorElement","sendToIframe","currentConfig","intentToken"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/payconductor/iframe/constants.ts","../src/payconductor/iframe/types.ts","../src/payconductor/constants.ts","../src/payconductor/utils.ts","../src/payconductor/internal.ts","../src/payconductor/payconductor.tsx","../src/payconductor/payconductor-element.tsx","../src/payconductor/hooks/use-payconductor.ts","../src/payconductor/hooks/use-element.ts"],"sourcesContent":["// PayConductor Shared Constants\n// Served statically at iframe.payconductor.ai/constants.ts\n// Used by the iFrame (imported directly) and the SDK Web (synced with: bun sync)\n\nexport const APP_BASE_URL_PROD = \"https://app.payconductor.ai\";\nexport const API_BASE_URL_PROD = \"https://app.payconductor.ai/api/v1\";\nexport const IFRAME_BASE_URL_PROD = \"https://iframe.payconductor.ai/v1\";\nexport const IFRAME_BASE_URL_DEV = \"http://localhost:5175\";\nexport const APP_BASE_URL_DEV = \"http://localhost:3000\";\nexport const DEFAULT_LOCALE = \"pt-BR\";\nexport const REQUEST_TIMEOUT_MS = 30000;\nexport const IFRAME_DEFAULT_HEIGHT = \"600px\"","// PayConductor Shared Types\n// Served statically at iframe.payconductor.ai/types.ts\n// Used by the iFrame (imported directly) and the SDK Web (synced with: bun sync)\n\nexport enum PaymentMethod {\n Pix = \"Pix\",\n CreditCard = \"CreditCard\",\n DebitCard = \"DebitCard\",\n BankSlip = \"BankSlip\",\n Crypto = \"Crypto\",\n ApplePay = \"ApplePay\",\n NuPay = \"NuPay\",\n PicPay = \"PicPay\",\n AmazonPay = \"AmazonPay\",\n SepaDebit = \"SepaDebit\",\n GooglePay = \"GooglePay\",\n}\nexport enum PaymentMethodLayout {\n Grid = \"grid\",\n Vertical = \"vertical\",\n Horizontal = \"horizontal\",\n}\nexport enum PaymentStatus {\n Succeeded = \"succeeded\",\n Pending = \"pending\",\n Failed = \"failed\",\n}\nexport enum DeviceType {\n Android = \"android\",\n IOS = \"ios\",\n Web = \"web\",\n}\nexport enum InputStyleKey {\n Padding = \"padding\",\n Radius = \"radius\",\n Color = \"color\",\n Background = \"background\",\n Shadow = \"shadow\",\n}\nexport enum OutgoingMessage {\n Init = \"Init\",\n Config = \"Config\",\n Update = \"Update\",\n ConfirmPayment = \"ConfirmPayment\",\n Validate = \"Validate\",\n Reset = \"Reset\",\n}\nexport enum IncomingMessage {\n Ready = \"Ready\",\n Error = \"Error\",\n PaymentComplete = \"PaymentComplete\",\n PaymentFailed = \"PaymentFailed\",\n PaymentPending = \"PaymentPending\",\n ValidationError = \"ValidationError\",\n PaymentMethodSelected = \"PaymentMethodSelected\",\n}\nexport enum ErrorCode {\n InvalidClient = \"InvalidClient\",\n InvalidToken = \"InvalidToken\",\n NetworkError = \"NetworkError\",\n IframeNotReady = \"IframeNotReady\",\n PaymentDeclined = \"PaymentDeclined\",\n ValidationError = \"ValidationError\",\n Timeout = \"Timeout\",\n}\nexport type InputStyleConfig = {\n padding?: string;\n radius?: string;\n color?: string;\n background?: string;\n shadow?: string;\n};\nexport type PaymentMethodsConfig = {\n layout?: PaymentMethodLayout;\n gap?: string;\n inputStyle?: InputStyleConfig;\n};\nexport type PaymentMethodConfig = {\n method: PaymentMethod;\n discount?: number;\n showBrands?: boolean;\n installments?: {\n count: number;\n amount: number;\n }[];\n};\nexport type PaymentMethodsResponse = {\n methods: PaymentMethod[];\n config: PaymentMethodsConfig;\n};\nexport type PayConductorTheme = {\n primaryColor?: string;\n secondaryColor?: string;\n backgroundColor?: string;\n surfaceColor?: string;\n textColor?: string;\n textSecondaryColor?: string;\n errorColor?: string;\n successColor?: string;\n warningColor?: string;\n borderColor?: string;\n disabledColor?: string;\n fontFamily?: string;\n fontSize?: {\n xs?: string;\n sm?: string;\n md?: string;\n lg?: string;\n xl?: string;\n };\n fontWeight?: {\n normal?: number;\n medium?: number;\n bold?: number;\n };\n lineHeight?: string;\n spacing?: {\n xs?: string;\n sm?: string;\n md?: string;\n lg?: string;\n xl?: string;\n };\n borderRadius?: string;\n borderWidth?: string;\n boxShadow?: string;\n boxShadowHover?: string;\n inputBackground?: string;\n inputBorderColor?: string;\n inputBorderRadius?: string;\n inputHeight?: string;\n inputPadding?: string;\n buttonHeight?: string;\n buttonPadding?: string;\n buttonBorderRadius?: string;\n transitionDuration?: string;\n transitionTimingFunction?: string;\n};\nexport const defaultTheme: PayConductorTheme = {\n primaryColor: \"#0066ff\",\n secondaryColor: \"#5a6b7c\",\n backgroundColor: \"transparent\",\n surfaceColor: \"#f8fafc\",\n textColor: \"#0f172a\",\n textSecondaryColor: \"#64748b\",\n errorColor: \"#ef4444\",\n successColor: \"#22c55e\",\n warningColor: \"#f59e0b\",\n borderColor: \"#e2e8f0\",\n disabledColor: \"#cbd5e1\",\n fontFamily: '\"Poppins\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n fontSize: {\n xs: \"0.75rem\",\n sm: \"0.875rem\",\n md: \"1rem\",\n lg: \"1.125rem\",\n xl: \"1.25rem\"\n },\n fontWeight: {\n normal: 400,\n medium: 500,\n bold: 600\n },\n lineHeight: \"1.5\",\n spacing: {\n xs: \"4px\",\n sm: \"8px\",\n md: \"16px\",\n lg: \"24px\",\n xl: \"32px\"\n },\n borderRadius: \"8px\",\n borderWidth: \"1px\",\n boxShadow: \"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)\",\n boxShadowHover: \"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)\",\n inputBackground: \"#ffffff\",\n inputBorderColor: \"#cbd5e1\",\n inputBorderRadius: \"8px\",\n inputHeight: \"44px\",\n inputPadding: \"12px 16px\",\n buttonHeight: \"48px\",\n buttonPadding: \"16px 24px\",\n buttonBorderRadius: \"8px\",\n transitionDuration: \"0.2s\",\n transitionTimingFunction: \"ease\"\n};\nexport type PayConductorConfig = {\n publicKey: string;\n orderId?: string;\n theme?: PayConductorTheme;\n locale?: string;\n paymentMethods?: PaymentMethod[] | \"all\";\n defaultPaymentMethod?: PaymentMethod;\n paymentMethodsConfig?: PaymentMethodConfig[];\n methodsDirection?: \"vertical\" | \"horizontal\";\n showPaymentButtons?: boolean;\n /** Required when NuPay is an available payment method */\n nuPayConfig?: NuPayData;\n};\nexport type BillingDetails = {\n name: string;\n email?: string;\n phone?: string;\n address?: {\n line1: string;\n line2?: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n };\n};\nexport type CardData = {\n number: string;\n expMonth: string;\n expYear: string;\n cvc: string;\n};\nexport type CreatePaymentMethodOptions = {\n billingDetails: BillingDetails;\n card?: CardData;\n};\nexport type PaymentMethodResult = {\n id: string;\n type: PaymentMethod;\n card?: {\n brand: string;\n last4: string;\n expMonth: number;\n expYear: number;\n };\n billingDetails?: BillingDetails;\n};\nexport type PaymentResult = {\n orderId: string;\n status: PaymentStatus;\n amount: number;\n currency: string;\n message?: string;\n};\nexport interface MessagePayload {\n type: OutgoingMessage | IncomingMessage;\n data?: unknown;\n requestId?: string;\n error?: {\n code: string;\n message: string;\n field?: string;\n };\n}\nexport type CardTokenData = {\n token: string;\n firstSixCardNumber?: string;\n};\nexport type CardFullData = {\n number: string;\n holderName: string;\n cvv: string;\n expiration: {\n month: number;\n year: number;\n };\n};\nexport type CardPaymentData = CardTokenData | CardFullData;\nexport type PixPaymentData = {\n paymentMethod: PaymentMethod.Pix;\n expirationInSeconds?: number;\n};\nexport type CreditCardPaymentData = {\n paymentMethod: PaymentMethod.CreditCard;\n card: CardPaymentData;\n installments: number;\n softDescriptor?: string;\n};\nexport type BankSlipPaymentData = {\n paymentMethod: PaymentMethod.BankSlip;\n expirationInDays?: number;\n};\nexport type NuPayData = {\n cancelUrl: string;\n merchantName: string;\n returnUrl: string;\n storeName?: string;\n};\nexport type NuPayPaymentData = {\n paymentMethod: PaymentMethod.NuPay;\n nuPay: NuPayData;\n};\nexport type PicPayPaymentData = {\n paymentMethod: PaymentMethod.PicPay;\n};\nexport type PaymentConfirmData = PixPaymentData | CreditCardPaymentData | BankSlipPaymentData | NuPayPaymentData | PicPayPaymentData","import { IFRAME_BASE_URL_DEV, IFRAME_BASE_URL_PROD, IFRAME_DEFAULT_HEIGHT, REQUEST_TIMEOUT_MS } from \"./iframe/constants\";\nimport { IncomingMessage, OutgoingMessage } from \"./iframe/types\";\nconst isDev = typeof window !== \"undefined\" && (window.location.hostname === \"localhost\" || window.location.hostname === \"127.0.0.1\");\nexport const IFRAME_BASE_URL = isDev ? IFRAME_BASE_URL_DEV : IFRAME_BASE_URL_PROD;\nexport const ALLOWED_ORIGINS = [IFRAME_BASE_URL_DEV, IFRAME_BASE_URL_PROD];\nexport const IFRAME_DEFAULT_HEIGHT_VALUE = IFRAME_DEFAULT_HEIGHT;\nexport const REQUEST_TIMEOUT = REQUEST_TIMEOUT_MS;\nexport const POST_MESSAGES = {\n INIT: OutgoingMessage.Init,\n CONFIG: OutgoingMessage.Config,\n UPDATE: OutgoingMessage.Update,\n CONFIRM_PAYMENT: OutgoingMessage.ConfirmPayment,\n VALIDATE: OutgoingMessage.Validate,\n RESET: OutgoingMessage.Reset,\n READY: IncomingMessage.Ready,\n ERROR: IncomingMessage.Error,\n PAYMENT_COMPLETE: IncomingMessage.PaymentComplete,\n PAYMENT_FAILED: IncomingMessage.PaymentFailed,\n PAYMENT_PENDING: IncomingMessage.PaymentPending,\n VALIDATION_ERROR: IncomingMessage.ValidationError,\n PAYMENT_METHOD_SELECTED: IncomingMessage.PaymentMethodSelected\n} as const;\nexport const ERROR_CODES = {\n INVALID_CLIENT: \"InvalidClient\",\n INVALID_TOKEN: \"InvalidToken\",\n NETWORK_ERROR: \"NetworkError\",\n IFRAME_NOT_READY: \"IframeNotReady\",\n PAYMENT_DECLINED: \"PaymentDeclined\",\n VALIDATION_ERROR: \"ValidationError\",\n TIMEOUT: \"Timeout\"\n} as const","import { IFRAME_BASE_URL } from \"./constants\";\nimport type { PayConductorConfig } from \"./iframe/types\";\nexport function buildIframeUrl(config: PayConductorConfig): string {\n const params = new URLSearchParams({\n publicKey: config.publicKey\n });\n return `${IFRAME_BASE_URL}?${params.toString()}`;\n}\nexport function generateRequestId(): string {\n return crypto.randomUUID();\n}\nexport function isValidOrigin(origin: string, allowedOrigins: string[]): boolean {\n return allowedOrigins.includes(origin);\n}","import { ALLOWED_ORIGINS, POST_MESSAGES, REQUEST_TIMEOUT } from \"./constants\";\nimport { IncomingMessage, OutgoingMessage, PayConductorConfig, PaymentMethod, PaymentResult } from \"./iframe/types\";\nimport type { ConfirmPaymentOptions, PendingRequest } from \"./types\";\nimport { generateRequestId, isValidOrigin } from \"./utils\";\nexport function createPendingRequestsMap(): Map<string, PendingRequest> {\n return new Map<string, PendingRequest>();\n}\nexport function sendMessageToIframe(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, type: OutgoingMessage | IncomingMessage, data?: unknown): Promise<unknown> {\n return new Promise((resolve, reject) => {\n if (!iframe || !(\"contentWindow\" in iframe)) {\n reject(new Error(\"Iframe not defined\"));\n return;\n }\n if (!iframe?.contentWindow) {\n reject(new Error(\"Iframe not ready\"));\n return;\n }\n if (!pendingMap) {\n reject(new Error(\"Pending requests not initialized\"));\n return;\n }\n const requestId = generateRequestId();\n pendingMap.set(requestId, {\n resolve,\n reject\n });\n iframe.contentWindow.postMessage({\n type,\n data,\n requestId\n }, \"*\");\n setTimeout(() => {\n if (pendingMap?.has(requestId)) {\n pendingMap.delete(requestId);\n reject(new Error(\"Request timeout\"));\n }\n }, REQUEST_TIMEOUT);\n });\n}\nexport function confirmPayment(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, options: ConfirmPaymentOptions): Promise<PaymentResult> {\n return sendMessageToIframe(iframe, pendingMap, POST_MESSAGES.CONFIRM_PAYMENT, {\n orderId: options.orderId\n }) as Promise<PaymentResult>;\n}\nexport function validatePayment(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, data: unknown): Promise<boolean> {\n return sendMessageToIframe(iframe, pendingMap, POST_MESSAGES.VALIDATE, data) as Promise<boolean>;\n}\nexport function resetPayment(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null): Promise<void> {\n return sendMessageToIframe(iframe, pendingMap, POST_MESSAGES.RESET) as Promise<void>;\n}\nexport function sendConfig(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, config: Pick<PayConductorConfig, \"theme\" | \"locale\" | \"paymentMethods\" | \"defaultPaymentMethod\" | \"showPaymentButtons\" | \"nuPayConfig\">): Promise<void> {\n return sendMessageToIframe(iframe, pendingMap, POST_MESSAGES.CONFIG, config) as Promise<void>;\n}\nexport function sendInit(iframe: HTMLIFrameElement | Element | undefined, pendingMap: Map<string, PendingRequest> | null, config: PayConductorConfig): Promise<void> {\n return sendMessageToIframe(iframe, pendingMap, POST_MESSAGES.INIT, config) as Promise<void>;\n}\ntype MessagePayload = {\n requestId?: string;\n type?: string;\n data?: PaymentResult | {\n paymentMethod: PaymentMethod;\n };\n error?: {\n message?: string;\n };\n};\nexport function handleMessageEvent(event: MessageEvent, pendingMap: Map<string, PendingRequest> | null, setIsReady: (value: boolean) => void, 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) {\n if (!isValidOrigin(event.origin, ALLOWED_ORIGINS)) {\n return;\n }\n const payload: MessagePayload = event.data;\n const {\n requestId,\n type,\n data,\n error\n } = payload;\n if (requestId && pendingMap?.has(requestId)) {\n const {\n resolve,\n reject\n } = pendingMap.get(requestId)!;\n pendingMap.delete(requestId);\n if (error) {\n reject(new Error(String(error.message)));\n } else {\n resolve(data);\n }\n return;\n }\n if (type === POST_MESSAGES.READY) {\n setIsReady(true);\n onReady?.();\n return;\n }\n if (type === POST_MESSAGES.ERROR) {\n setError(error?.message || \"Unknown error\");\n onError?.(new Error(String(error?.message)));\n return;\n }\n if (type === POST_MESSAGES.PAYMENT_COMPLETE) {\n if (data && typeof data === \"object\" && \"status\" in data) {\n onPaymentComplete?.(data);\n }\n return;\n }\n if (type === POST_MESSAGES.PAYMENT_FAILED) {\n if (data && typeof data === \"object\" && \"status\" in data) {\n onPaymentFailed?.(data);\n }\n return;\n }\n if (type === POST_MESSAGES.PAYMENT_PENDING) {\n if (data && typeof data === \"object\" && \"status\" in data) {\n onPaymentPending?.(data);\n }\n return;\n }\n if (type === POST_MESSAGES.PAYMENT_METHOD_SELECTED) {\n if (data && typeof data === \"object\" && \"paymentMethod\" in data) {\n onPaymentMethodSelected?.(data.paymentMethod);\n }\n return;\n }\n}","\"use client\";\nimport * as React from \"react\";\nimport { useState, useEffect } from \"react\";\n\nexport interface PayConductorEmbedProps\n extends Omit<PayConductorConfig, \"orderId\"> {\n children?: any;\n showActionButtons?: boolean;\n debug?: boolean;\n onReady?: () => void;\n onError?: (error: Error) => void;\n onPaymentComplete?: (result: PaymentResult) => void;\n onPaymentFailed?: (result: PaymentResult) => void;\n onPaymentPending?: (result: PaymentResult) => void;\n onPaymentMethodSelected?: (method: PaymentMethod) => void;\n}\n\nimport type {\n PayConductorConfig,\n PaymentMethod,\n PaymentResult,\n} from \"./iframe/types\";\nimport {\n confirmPayment,\n createPendingRequestsMap,\n handleMessageEvent,\n resetPayment,\n sendConfig,\n validatePayment,\n} from \"./internal\";\nimport type {\n PayConductorApi,\n PayConductorFrame,\n PayConductorState,\n PendingRequest,\n} from \"./types\";\nimport { buildIframeUrl } from \"./utils\";\n\nfunction PayConductor(props: PayConductorEmbedProps) {\n const [isLoaded, setIsLoaded] = useState<PayConductorState[\"isLoaded\"]>(\n () => false\n );\n\n const [isReady, setIsReady] = useState<PayConductorState[\"isReady\"]>(\n () => false\n );\n\n const [error, setError] = useState<PayConductorState[\"error\"]>(() => null);\n\n const [iframeUrl, setIframeUrl] = useState<PayConductorState[\"iframeUrl\"]>(\n () => \"\"\n );\n\n const [pendingMap, setPendingMap] = useState<PayConductorState[\"pendingMap\"]>(\n () => null\n );\n\n const [selectedPaymentMethod, setSelectedPaymentMethod] = useState<\n PayConductorState[\"selectedPaymentMethod\"]\n >(() => null);\n\n const [configSent, setConfigSent] = useState(() => false);\n\n useEffect(() => {\n const log = (...args: any[]) => {\n if (props.debug) {\n console.log(\"[PayConductor]\", ...args);\n }\n };\n log(\"SDK initializing\", {\n publicKey: props.publicKey,\n });\n const iframeUrl = buildIframeUrl({\n publicKey: props.publicKey,\n });\n setIframeUrl(iframeUrl);\n setIsLoaded(true);\n setPendingMap(createPendingRequestsMap());\n log(\"iframeUrl built:\", iframeUrl);\n log(\"pendingMap created\");\n const getIframe = (): HTMLIFrameElement | undefined => {\n const ref = window.PayConductor?.frame?.iframe;\n if (!ref) return undefined;\n if (ref instanceof HTMLIFrameElement) return ref;\n if (typeof ref === \"object\" && ref !== null) {\n if (\"current\" in ref) return (ref as any).current ?? undefined;\n if (\"value\" in ref) return (ref as any).value ?? undefined;\n }\n return ref as HTMLIFrameElement;\n };\n const frame: PayConductorFrame = {\n iframe: null,\n iframeUrl,\n get isReady() {\n return isReady;\n },\n get error() {\n return error;\n },\n };\n const config: PayConductorConfig = {\n publicKey: props.publicKey,\n theme: props.theme,\n locale: props.locale,\n paymentMethods: props.paymentMethods,\n defaultPaymentMethod: props.defaultPaymentMethod,\n };\n const api: PayConductorApi = {\n confirmPayment: (options: { orderId: string }) => {\n log(\"confirmPayment called\", {\n orderId: options.orderId,\n });\n return confirmPayment(getIframe(), pendingMap, options);\n },\n validate: (data: unknown) => {\n log(\"validate called\", data);\n return validatePayment(getIframe(), pendingMap, data);\n },\n reset: () => {\n log(\"reset called\");\n return resetPayment(getIframe(), pendingMap);\n },\n getSelectedPaymentMethod: () => selectedPaymentMethod,\n };\n window.PayConductor = {\n frame,\n config,\n api,\n selectedPaymentMethod: selectedPaymentMethod,\n };\n log(\"window.PayConductor registered\");\n const sendConfigToIframe = async () => {\n if (!configSent) {\n const iframe = getIframe();\n if (!iframe) {\n log(\"sendConfigToIframe: iframe not found, skipping\");\n return;\n }\n setConfigSent(true);\n log(\"sendConfig →\", {\n theme: props.theme,\n locale: props.locale,\n paymentMethods: props.paymentMethods,\n defaultPaymentMethod: props.defaultPaymentMethod,\n showPaymentButtons: props.showPaymentButtons,\n });\n sendConfig(iframe, pendingMap, {\n theme: props.theme,\n locale: props.locale,\n paymentMethods: props.paymentMethods,\n defaultPaymentMethod: props.defaultPaymentMethod,\n showPaymentButtons: props.showPaymentButtons,\n nuPayConfig: props.nuPayConfig,\n });\n }\n };\n const eventHandler = (event: MessageEvent) => {\n handleMessageEvent(\n event,\n pendingMap,\n (val) => {\n setIsReady(val);\n if (val) {\n log(\"iframe Ready — sending config\");\n sendConfigToIframe();\n }\n },\n (val) => {\n setError(val);\n log(\"iframe Error:\", val);\n },\n () => {\n log(\"onReady fired\");\n props.onReady?.();\n },\n (err) => {\n log(\"onError fired:\", err);\n props.onError?.(err);\n },\n (data) => {\n log(\"PaymentComplete:\", data);\n props.onPaymentComplete?.(data as PaymentResult);\n },\n (data) => {\n log(\"PaymentFailed:\", data);\n props.onPaymentFailed?.(data as PaymentResult);\n },\n (data) => {\n log(\"PaymentPending:\", data);\n props.onPaymentPending?.(data as PaymentResult);\n },\n (method) => {\n log(\"PaymentMethodSelected:\", method);\n setSelectedPaymentMethod(method);\n if (window.PayConductor) {\n window.PayConductor.selectedPaymentMethod = method;\n }\n props.onPaymentMethodSelected?.(method);\n }\n );\n };\n window.addEventListener(\"message\", eventHandler);\n log(\"SDK initialized — waiting for PayConductorCheckoutElement\");\n }, []);\n\n return (\n <div\n className=\"payconductor\"\n id=\"payconductor\"\n style={{\n display: \"contents\",\n }}\n >\n {props.children}\n </div>\n );\n}\n\nexport default PayConductor;\n","\"use client\";\nimport * as React from \"react\";\nimport { useState, useRef, useEffect } from \"react\";\n\nexport interface PayConductorCheckoutElementProps {\n height?: string;\n}\n\nimport { IFRAME_DEFAULT_HEIGHT_VALUE } from \"./constants\";\n\nfunction PayConductorCheckoutElement(props: PayConductorCheckoutElementProps) {\n const iframeRef = useRef<any>(null);\n const [iframeUrl, setIframeUrl] = useState(() => \"\");\n\n const [isLoaded, setIsLoaded] = useState(() => false);\n\n useEffect(() => {\n const ctx = typeof window !== \"undefined\" ? window.PayConductor : null;\n if (!ctx) {\n console.warn(\n \"[PayConductorCheckoutElement] window.PayConductor not found — ensure <PayConductor> is mounted before <PayConductorCheckoutElement>\"\n );\n }\n if (ctx?.frame) {\n setIframeUrl(ctx.frame.iframeUrl || \"\");\n ctx.frame.iframe = iframeRef.current;\n console.log(\n \"[PayConductorCheckoutElement] iframe registered, src:\",\n iframeUrl\n );\n }\n setIsLoaded(true);\n }, []);\n\n return (\n <div\n className=\"payconductor-element\"\n style={{\n width: \"100%\",\n }}\n >\n {isLoaded && iframeUrl ? (\n <iframe\n allow=\"payment\"\n title=\"PayConductor\"\n ref={iframeRef}\n src={iframeUrl}\n style={{\n width: \"100%\",\n height: props.height || IFRAME_DEFAULT_HEIGHT_VALUE,\n border: \"none\",\n }}\n />\n ) : null}\n </div>\n );\n}\n\nexport default PayConductorCheckoutElement;\n","import type { PayConductorConfig } from \"../iframe/types\";\nimport type { PayConductorFrame } from \"../types\";\ntype UsePayConductorReturn = PayConductorFrame & Partial<PayConductorConfig>;\nexport function usePayConductor(): UsePayConductorReturn {\n const ctx = typeof window !== \"undefined\" ? window.PayConductor : null;\n const config = ctx?.config ? {\n publicKey: ctx.config.publicKey,\n orderId: ctx.config.orderId,\n theme: ctx.config.theme,\n locale: ctx.config.locale\n } : {};\n const frame = ctx?.frame ? {\n iframe: ctx.frame.iframe,\n isReady: ctx.frame.isReady,\n error: ctx.frame.error\n } : {\n iframe: null,\n isReady: false,\n error: null\n };\n return {\n ...config,\n ...frame\n };\n}","import { POST_MESSAGES } from \"../constants\";\nimport type { BillingDetails, PayConductorConfig, PaymentMethod, PaymentResult } from \"../iframe/types\";\nimport { confirmPayment, createPendingRequestsMap, sendInit, sendMessageToIframe } from \"../internal\";\nexport type SubmitResult = {\n error?: {\n message: string;\n code?: string;\n type?: \"validation_error\" | \"payment_error\";\n };\n paymentMethod?: PaymentMethod;\n};\nexport type ConfirmPaymentOptions = {\n orderId: string;\n returnUrl?: string;\n};\nexport type UpdateOptions = {\n billingDetails?: Partial<BillingDetails>;\n address?: Partial<BillingDetails[\"address\"]>;\n};\nexport interface UsePayconductorElementReturn {\n init: (config: PayConductorConfig) => Promise<void>;\n confirmPayment: (options: ConfirmPaymentOptions) => Promise<PaymentResult>;\n validate: (data: unknown) => Promise<boolean>;\n reset: () => Promise<void>;\n getSelectedPaymentMethod: () => PaymentMethod | null;\n updateConfig: (config: Partial<Pick<PayConductorConfig, \"theme\" | \"locale\" | \"paymentMethods\">>) => void;\n updateorderId: (orderId: string) => void;\n update: (options: UpdateOptions) => void;\n submit: () => Promise<SubmitResult>;\n}\nfunction getIframeFromContext(ctx: typeof window.PayConductor): HTMLIFrameElement | null {\n if (!ctx?.frame?.iframe) return null;\n const iframeRef = ctx.frame.iframe;\n if (iframeRef instanceof HTMLIFrameElement) {\n return iframeRef;\n }\n if (iframeRef && typeof iframeRef === \"object\" && \"value\" in iframeRef) {\n const value = iframeRef.value;\n if (value instanceof HTMLIFrameElement) {\n return value;\n }\n }\n return null;\n}\nexport function usePayconductorElement(): UsePayconductorElementReturn {\n const ctx = typeof window !== \"undefined\" ? window.PayConductor : null;\n const sendToIframe = (type: string, data?: unknown) => {\n if (!ctx) return;\n const iframe = getIframeFromContext(ctx);\n if (iframe?.contentWindow) {\n iframe.contentWindow.postMessage({\n type,\n data\n }, \"*\");\n }\n };\n if (!ctx) {\n return {\n init: async () => {\n throw new Error(\"PayConductor not initialized\");\n },\n confirmPayment: async () => {\n throw new Error(\"PayConductor not initialized\");\n },\n validate: async () => {\n throw new Error(\"PayConductor not initialized\");\n },\n reset: async () => {\n throw new Error(\"PayConductor not initialized\");\n },\n getSelectedPaymentMethod: () => null,\n updateConfig: () => {\n throw new Error(\"PayConductor not initialized\");\n },\n updateorderId: () => {\n throw new Error(\"PayConductor not initialized\");\n },\n update: () => {\n throw new Error(\"PayConductor not initialized\");\n },\n submit: async () => {\n throw new Error(\"PayConductor not initialized\");\n }\n };\n }\n return {\n init: async (config: PayConductorConfig): Promise<void> => {\n const iframe = getIframeFromContext(ctx);\n const pendingMap = createPendingRequestsMap();\n return sendInit(iframe || undefined, pendingMap, config);\n },\n confirmPayment: async (options: ConfirmPaymentOptions): Promise<PaymentResult> => {\n const iframe = getIframeFromContext(ctx);\n const pendingMap = createPendingRequestsMap();\n if (!options.orderId) {\n throw new Error(\"Order ID is required\");\n }\n return confirmPayment(iframe || undefined, pendingMap, options);\n },\n validate: ctx.api.validate,\n reset: ctx.api.reset,\n getSelectedPaymentMethod: (): PaymentMethod | null => {\n return ctx?.selectedPaymentMethod ?? null;\n },\n updateConfig: (config: Partial<Pick<PayConductorConfig, \"theme\" | \"locale\" | \"paymentMethods\">>) => {\n const currentConfig = ctx.config;\n sendToIframe(POST_MESSAGES.CONFIG, {\n publicKey: currentConfig?.publicKey,\n orderId: currentConfig?.orderId,\n theme: config.theme ?? currentConfig?.theme,\n locale: config.locale ?? currentConfig?.locale,\n paymentMethods: config.paymentMethods ?? currentConfig?.paymentMethods\n });\n },\n updateorderId: (orderId: string) => {\n const currentConfig = ctx.config;\n sendToIframe(POST_MESSAGES.CONFIG, {\n publicKey: currentConfig?.publicKey,\n orderId: orderId,\n theme: currentConfig?.theme,\n locale: currentConfig?.locale,\n paymentMethods: currentConfig?.paymentMethods\n });\n },\n update: (options: UpdateOptions) => {\n sendToIframe(POST_MESSAGES.UPDATE, options);\n },\n submit: async (): Promise<SubmitResult> => {\n const iframe = getIframeFromContext(ctx);\n const pendingMap = createPendingRequestsMap();\n try {\n await sendMessageToIframe(iframe || undefined, pendingMap, POST_MESSAGES.CONFIRM_PAYMENT, {});\n return {\n paymentMethod: undefined\n };\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Payment failed\";\n return {\n error: {\n message,\n code: \"payment_error\",\n type: \"payment_error\"\n }\n };\n }\n }\n };\n}"],"names":["IFRAME_BASE_URL_PROD","IFRAME_BASE_URL_DEV","REQUEST_TIMEOUT_MS","IFRAME_DEFAULT_HEIGHT","OutgoingMessage","IncomingMessage","isDev","IFRAME_BASE_URL","ALLOWED_ORIGINS","IFRAME_DEFAULT_HEIGHT_VALUE","REQUEST_TIMEOUT","POST_MESSAGES","ERROR_CODES","buildIframeUrl","config","params","generateRequestId","isValidOrigin","origin","allowedOrigins","createPendingRequestsMap","sendMessageToIframe","iframe","pendingMap","type","data","resolve","reject","requestId","confirmPayment","options","validatePayment","resetPayment","sendConfig","sendInit","handleMessageEvent","event","setIsReady","setError","onReady","onError","onPaymentComplete","onPaymentFailed","onPaymentPending","onPaymentMethodSelected","payload","error","PayConductor","props","isLoaded","setIsLoaded","useState","isReady","iframeUrl","setIframeUrl","setPendingMap","selectedPaymentMethod","setSelectedPaymentMethod","configSent","setConfigSent","useEffect","log","args","getIframe","ref","_b","_a","frame","api","sendConfigToIframe","eventHandler","val","err","method","jsx","PayConductorCheckoutElement","iframeRef","useRef","ctx","usePayConductor","getIframeFromContext","value","usePayconductorElement","sendToIframe","currentConfig","orderId"],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ export type SubmitResult = {
|
|
|
9
9
|
paymentMethod?: PaymentMethod;
|
|
10
10
|
};
|
|
11
11
|
export type ConfirmPaymentOptions = {
|
|
12
|
-
|
|
12
|
+
orderId: string;
|
|
13
13
|
returnUrl?: string;
|
|
14
14
|
};
|
|
15
15
|
export type UpdateOptions = {
|
|
@@ -23,7 +23,7 @@ export interface UsePayconductorElementReturn {
|
|
|
23
23
|
reset: () => Promise<void>;
|
|
24
24
|
getSelectedPaymentMethod: () => PaymentMethod | null;
|
|
25
25
|
updateConfig: (config: Partial<Pick<PayConductorConfig, "theme" | "locale" | "paymentMethods">>) => void;
|
|
26
|
-
|
|
26
|
+
updateorderId: (orderId: string) => void;
|
|
27
27
|
update: (options: UpdateOptions) => void;
|
|
28
28
|
submit: () => Promise<SubmitResult>;
|
|
29
29
|
}
|
|
@@ -135,7 +135,7 @@ export type PayConductorTheme = {
|
|
|
135
135
|
export declare const defaultTheme: PayConductorTheme;
|
|
136
136
|
export type PayConductorConfig = {
|
|
137
137
|
publicKey: string;
|
|
138
|
-
|
|
138
|
+
orderId?: string;
|
|
139
139
|
theme?: PayConductorTheme;
|
|
140
140
|
locale?: string;
|
|
141
141
|
paymentMethods?: PaymentMethod[] | "all";
|
|
@@ -181,7 +181,7 @@ export type PaymentMethodResult = {
|
|
|
181
181
|
billingDetails?: BillingDetails;
|
|
182
182
|
};
|
|
183
183
|
export type PaymentResult = {
|
|
184
|
-
|
|
184
|
+
orderId: string;
|
|
185
185
|
status: PaymentStatus;
|
|
186
186
|
amount: number;
|
|
187
187
|
currency: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PayConductorConfig, PaymentMethod, PaymentResult } from './iframe/types';
|
|
2
|
-
export interface PayConductorEmbedProps extends Omit<PayConductorConfig, "
|
|
2
|
+
export interface PayConductorEmbedProps extends Omit<PayConductorConfig, "orderId"> {
|
|
3
3
|
children?: any;
|
|
4
4
|
showActionButtons?: boolean;
|
|
5
5
|
debug?: boolean;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { PayConductorConfig, PaymentMethod, PaymentResult } from './iframe/types';
|
|
2
2
|
|
|
3
|
-
export type
|
|
3
|
+
export type * from './iframe/types';
|
|
4
4
|
export type ConfirmPaymentOptions = {
|
|
5
|
-
|
|
5
|
+
orderId: string;
|
|
6
6
|
returnUrl?: string;
|
|
7
7
|
};
|
|
8
8
|
export type SubmitResult = {
|