@getopenpay/openpay-js 0.3.9 → 0.3.10

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.umd.js CHANGED
@@ -3,7 +3,7 @@ ${n.map(o=>`• ${getHumanFriendlyMessage(o.msg)}`).join(`
3
3
  `)}`,createMessageFromZodFieldErrors=n=>`Encountered the following errors:
4
4
  ${n.map(o=>`- ${o.path.join("/")}: ${o.message}`).join(`
5
5
  `)}`,getErrorMessage=n=>{if(n instanceof Error)if(isStringifiedJsonObject(n.message)){const r=JSON.parse(n.message);return PydanticValidationErrorResponse.safeParse(r).success?createMessageFromPydanticValidationError(r):ZodFieldErrors.safeParse(r).success?createMessageFromZodFieldErrors(r):(console.warn(`Encountered unknown stringified JSON object:
6
- ${n.message}`),n.message)}else return getHumanFriendlyMessage(n.message);if(typeof n=="object")try{return JSON.stringify(n)}catch(r){return r+""}else return n+""},makeCallbackSafe=(n,r,o)=>(...u)=>{try{return r(...u)}catch(a){o(`[form] Error running callback (${n}):`,a);return}};var SubmitMethods=(n=>(n.pockytPaypal="pockyt-paypal",n.airwallexGooglePay="airwallex-google-pay",n.airwallexApplePay="airwallex-apple-pay",n.authorizenetGooglePay="authorizenet-google-pay",n.authorizenetApplePay="authorizenet-apple-pay",n.loopCrypto="loop-crypto",n.paypal="paypal",n))(SubmitMethods||{});const SubmitMethod=z.nativeEnum(SubmitMethods),RequiredString=z.string().trim().min(1,{message:"Cannot be blank"}),OptionalString=z.string().trim().optional(),nullOrUndefOr$1=n=>z.nullable(n.optional());var FieldName=(n=>(n.FIRST_NAME="firstName",n.LAST_NAME="lastName",n.EMAIL="email",n.ZIP_CODE="zipCode",n.CITY="city",n.STATE="state",n.COUNTRY="country",n.ADDRESS="address",n.PHONE="phone",n.PROMOTION_CODE="promotionCode",n))(FieldName||{});const FieldNameEnum=z.nativeEnum(FieldName);var PrivateFieldName=(n=>(n.CARD_NUMBER="cardNumber",n.CARD_EXPIRY="cardExpiry",n.CARD_CVC="cardCvc",n))(PrivateFieldName||{});const PrivateFieldNameEnum=z.nativeEnum(PrivateFieldName),AllFieldNames=z.union([FieldNameEnum,PrivateFieldNameEnum]);var ElementTypeEnum=(n=>(n.CARD="card",n.CARD_NUMBER="card-number",n.CARD_EXPIRY="card-expiry",n.CARD_CVC="card-cvc",n.CDE_BRIDGE="cde-bridge",n))(ElementTypeEnum||{});const ElementType=z.nativeEnum(ElementTypeEnum),CheckoutPaymentMethod$1=z.object({provider:z.string(),processor_name:nullOrUndefOr$1(z.string()),metadata:nullOrUndefOr$1(z.record(z.string(),z.any()))}),PaymentMethodMinimal=z.object({id:z.string()});z.object({cardNumber:OptionalString,expiry:OptionalString,cvc:OptionalString}),z.object({backgroundColor:OptionalString,color:OptionalString,fontFamily:OptionalString,fontSize:OptionalString,fontWeight:OptionalString,margin:OptionalString,padding:OptionalString,letterSpacing:OptionalString,lineHeight:OptionalString,hideIcon:OptionalString});const EventType=z.enum(["LAYOUT","LOADED","BLUR","FOCUS","CHANGE","TOKENIZE_STARTED","CHECKOUT_STARTED","PAYMENT_FLOW_STARTED","TOKENIZE_SUCCESS","CHECKOUT_SUCCESS","LOAD_ERROR","VALIDATION_ERROR","TOKENIZE_ERROR","CHECKOUT_ERROR","SETUP_PAYMENT_METHOD_SUCCESS","TOKENIZE","CHECKOUT","START_PAYMENT_FLOW"]),GenericEventType=EventType.extract(["TOKENIZE_STARTED","CHECKOUT_STARTED"]),GenericEventPayload=z.object({type:GenericEventType}),InputEventType=EventType.extract(["BLUR","FOCUS","CHANGE"]),InputEventPayload=z.object({type:InputEventType,elementType:PrivateFieldNameEnum,errors:z.array(z.string()).optional()}),ErrorEventType=EventType.extract(["LOAD_ERROR","TOKENIZE_ERROR","CHECKOUT_ERROR"]),ErrorEventPayload=z.object({type:ErrorEventType,message:RequiredString,headers:z.record(z.string(),z.string()).optional()}),ValidationErrorEventType=EventType.extract(["VALIDATION_ERROR"]),ValidationErrorEventPayload=z.object({type:ValidationErrorEventType,elementType:AllFieldNames,errors:z.array(z.string())}),LayoutEventPayload=z.object({type:z.literal(EventType.enum.LAYOUT),height:RequiredString}),LoadedEventPayload=z.object({type:z.literal(EventType.enum.LOADED),sessionId:RequiredString,totalAmountAtoms:z.number(),currency:OptionalString,checkoutPaymentMethods:z.array(CheckoutPaymentMethod$1)}),PaymentFlowStartedEventPayload=z.object({type:z.literal(EventType.enum.PAYMENT_FLOW_STARTED),nextActionMetadata:z.record(z.string(),z.any()),paymentFlowMetadata:z.any().optional(),startPFMetadata:z.optional(z.record(z.string(),z.any()))}),SetupCheckoutSuccessEventPayload=z.object({type:z.literal(EventType.enum.SETUP_PAYMENT_METHOD_SUCCESS),paymentMethodId:z.string()}),RequiredFormFields=z.object({firstName:RequiredString,lastName:RequiredString,email:RequiredString,zipCode:RequiredString,country:RequiredString,promotionCode:OptionalString}),PRFormFields=z.object({firstName:OptionalString,lastName:OptionalString,email:RequiredString,zipCode:RequiredString,country:RequiredString,promotionCode:OptionalString,address:OptionalString,city:OptionalString,state:OptionalString}),SubmitEventType=EventType.extract(["TOKENIZE","CHECKOUT","START_PAYMENT_FLOW"]),SubmitEventPayload=z.object({type:SubmitEventType,sessionId:RequiredString,checkoutPaymentMethod:CheckoutPaymentMethod$1,paymentFlowMetadata:z.any().optional(),doNotUseLegacyCCFlow:z.boolean().optional(),existingCCPMId:OptionalString,paymentRouteId:OptionalString}).extend(RequiredFormFields.shape),TokenizeSuccessEventPayload=z.object({type:z.literal(EventType.enum.TOKENIZE_SUCCESS),isReadyForCheckout:z.boolean()}),CheckoutSuccessEventPayload=z.object({type:z.literal(EventType.enum.CHECKOUT_SUCCESS),invoiceUrls:z.array(z.string()),subscriptionIds:z.array(z.string()),customerId:z.string()}),EventPayload=z.discriminatedUnion("type",[GenericEventPayload,InputEventPayload,ErrorEventPayload,ValidationErrorEventPayload,LayoutEventPayload,LoadedEventPayload,SubmitEventPayload,TokenizeSuccessEventPayload,CheckoutSuccessEventPayload,PaymentFlowStartedEventPayload,SetupCheckoutSuccessEventPayload]),ElementEvent=z.object({payload:EventPayload,nonce:RequiredString,formId:RequiredString,elementId:RequiredString});z.object({amountAtom:z.number(),currency:RequiredString}),z.enum(["apple_pay","google_pay"]),z.object({secure_token:z.string(),promotion_code:z.string().optional()}),z.object({secure_token:z.string(),existing_cc_pm_id:nullOrUndefOr$1(z.string()),their_pm_id:nullOrUndefOr$1(z.string()),checkout_attempt_id:nullOrUndefOr$1(z.string()),processor_specific_metadata:nullOrUndefOr$1(z.record(z.string(),z.any()))});const CheckoutSuccessResponse=z.object({invoice_urls:z.array(z.string()),subscription_ids:z.array(z.string()),customer_id:z.string(),processors_used:nullOrUndefOr$1(z.array(z.string()))}),FieldValidationError=z.object({elementType:z.string(),errors:z.array(z.string())});z.object({session_id:z.string()});const TokenizeCardErrorResponse=z.object({success:z.literal(!1),error_type:z.literal("validation_error"),errors:z.array(FieldValidationError)}),TokenizeCardResponse=z.discriminatedUnion("success",[z.object({success:z.literal(!0)}),TokenizeCardErrorResponse]);z.object({session_id:z.string(),checkout_payment_method:CheckoutPaymentMethod$1,non_cde_form_fields:RequiredFormFields,do_not_use_legacy_cc_flow:z.boolean().optional(),existing_cc_pm_id:nullOrUndefOr$1(z.string()),extra_metadata:z.record(z.string(),z.any()),payment_route_id:nullOrUndefOr$1(z.string()),customer_language:nullOrUndefOr$1(z.string())}),z.object({session_id:z.string(),checkout_payment_method:CheckoutPaymentMethod$1,non_cde_form_fields:RequiredFormFields,extra_metadata:z.record(z.string(),z.any()).optional(),payment_route_id:nullOrUndefOr$1(z.string()),customer_language:nullOrUndefOr$1(z.string())});var ThreeDSStatus=(n=>(n.SUCCESS="success",n.FAILURE="failure",n.CANCELLED="cancelled",n))(ThreeDSStatus||{});const Ping3DSStatusResponse=z.object({status:z.enum(["success","failure","cancelled"]),href:z.string().optional().nullable()});z.object({href:z.string().optional().nullable()});const Common3DSNextActionMetadata=z.object({type:z.string(),redirect_url:z.string(),initial_intent_id:z.string(),consent_id:z.string(),their_pm_id:z.string().optional()}),CommonNextActionMetadata=z.object({type:z.string(),redirect_url:nullOrUndefOr$1(z.string()),initial_intent_id:nullOrUndefOr$1(z.string()),consent_id:nullOrUndefOr$1(z.string()),their_pm_id:nullOrUndefOr$1(z.string()),payment_session:nullOrUndefOr$1(z.record(z.string(),z.any()))}),CheckIfPopupWindowVerifiedResponse=z.discriminatedUnion("present",[z.object({present:z.literal(!0),href:z.string()}),z.object({present:z.literal(!1)})]),ConfirmPaymentFlowResponse=z.object({payment_methods:z.array(PaymentMethodMinimal),pay_first_success_response:nullOrUndefOr$1(CheckoutSuccessResponse),required_user_actions:nullOrUndefOr$1(z.array(CommonNextActionMetadata))}),extractIssuesPerField=n=>{const r={};return Object.entries(n).forEach(([o,u])=>{try{const a=FieldNameEnum.parse(o);Array.isArray(u)?r[a]=u:Array.isArray(u._errors)&&(r[a]=u._errors)}catch{return}}),r},Stripe3DSNextActionMetadata=z.object({stripe_pk:z.string(),client_secret:z.string(),stripe_pm_id:z.string()}),PaymentRequestNextActionMetadata=z.object({type:z.string(),client_secret:z.string(),stripe_pk:z.string()}),ourCurrencyToTheirs={usd:"usd",brl:"brl"},getLoadedStripe=async n=>{for(let o=0;o<10;o++)isStripeJsPresent()||await sleep(500);if(!isStripeJsPresent())throw console.log("Stripe JS not found."),new Error("Stripe JS not found.");return new Stripe(n)},createStripeElements=async(n,r)=>{const o=await getLoadedStripe(n);return{elements:o.elements(r),stripe:o}},createStripePaymentRequest=async(n,r,o,u,a)=>{const s=await getLoadedStripe(n),t=ourCurrencyToTheirs[o.toLowerCase().trim()];return s.paymentRequest({country:"US",currency:t,total:{label:"Total",amount:r,pending:u},requestPayerName:!0,requestPayerEmail:!0,disableWallets:[]})},sleep=n=>new Promise(r=>{setTimeout(r,n)}),isStripeJsPresent=()=>"Stripe"in window,waitForUserToAddPaymentMethod=async n=>new Promise((r,o)=>{try{n.on("paymentmethod",async u=>{console.log("paymentmethod EVT:: ",u),r(u)}),n.on("token",async u=>{console.log("token EVT:: ",u)}),n.on("cancel",()=>{o(new Error("Payment cancelled, please click Submit again to pay"))})}catch(u){o(u)}}),confirmStripePrPM=async(n,r)=>{if(!n.stripe_pk||!n.client_secret)throw new Error(`Invalid next action metadata format: ${JSON.stringify(n)}`);const u=await(await getLoadedStripe(n.stripe_pk)).confirmCardSetup(n.client_secret,{payment_method:r.paymentMethod.id});if(u.error)throw r.complete("fail"),new Error(`Payment failed: ${u.error.message??"unknown"}`);return r.complete("success"),u},launchStripe3DSDialogFlow=async n=>{var a,s,t,e;const o=await(await getLoadedStripe(n.stripe_pk)).confirmCardSetup(n.client_secret,{payment_method:n.stripe_pm_id}),u=(a=o.setupIntent)==null?void 0:a.status;if(u==="succeeded")console.log("[3DS] CONFIRMING PM:",n.stripe_pm_id),console.log("[3DS] Setup intent created:",o.setupIntent);else throw u==="canceled"?new Error("Payment cancelled, please click Submit again to pay"):new Error(`${((s=o.error)==null?void 0:s.message)??((e=(t=o.setupIntent)==null?void 0:t.last_setup_error)==null?void 0:e.message)??"Payment failed, please click submit again to pay."}`)},convertStylesToQueryString=n=>JSON.stringify(n);for(var byteToHex=[],i=0;i<256;++i)byteToHex.push((i+256).toString(16).slice(1));function unsafeStringify(n,r=0){return(byteToHex[n[r+0]]+byteToHex[n[r+1]]+byteToHex[n[r+2]]+byteToHex[n[r+3]]+"-"+byteToHex[n[r+4]]+byteToHex[n[r+5]]+"-"+byteToHex[n[r+6]]+byteToHex[n[r+7]]+"-"+byteToHex[n[r+8]]+byteToHex[n[r+9]]+"-"+byteToHex[n[r+10]]+byteToHex[n[r+11]]+byteToHex[n[r+12]]+byteToHex[n[r+13]]+byteToHex[n[r+14]]+byteToHex[n[r+15]]).toLowerCase()}var getRandomValues,rnds8=new Uint8Array(16);function rng(){if(!getRandomValues&&(getRandomValues=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!getRandomValues))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return getRandomValues(rnds8)}var randomUUID=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto);const native={randomUUID};function v4(n,r,o){if(native.randomUUID&&!r&&!n)return native.randomUUID();n=n||{};var u=n.random||(n.rng||rng)();return u[6]=u[6]&15|64,u[8]=u[8]&63|128,unsafeStringify(u)}const createInputsDictFromForm=(n,r)=>Array.from(n.querySelectorAll("[data-opid]")??[]).reduce((a,s)=>{const t=s.getAttribute("data-opid");return t?{...a,[t]:s.value}:a},{}),parseEventPayload=n=>{try{return ElementEvent.parse(n)}catch(r){throw console.error("Error parsing event payload:",n,r),r}};var MessageType;(function(n){n.Call="call",n.Reply="reply",n.Syn="syn",n.SynAck="synAck",n.Ack="ack"})(MessageType||(MessageType={}));var Resolution;(function(n){n.Fulfilled="fulfilled",n.Rejected="rejected"})(Resolution||(Resolution={}));var ErrorCode;(function(n){n.ConnectionDestroyed="ConnectionDestroyed",n.ConnectionTimeout="ConnectionTimeout",n.NoIframeSrc="NoIframeSrc"})(ErrorCode||(ErrorCode={}));var NativeErrorName;(function(n){n.DataCloneError="DataCloneError"})(NativeErrorName||(NativeErrorName={}));var NativeEventType;(function(n){n.Message="message"})(NativeEventType||(NativeEventType={}));const createDestructor=(n,r)=>{const o=[];let u=!1;return{destroy(a){u||(u=!0,r(`${n}: Destroying connection`),o.forEach(s=>{s(a)}))},onDestroy(a){u?a():o.push(a)}}},createLogger=n=>(...r)=>{n&&console.log("[Penpal]",...r)},DEFAULT_PORT_BY_PROTOCOL={"http:":"80","https:":"443"},URL_REGEX=/^(https?:)?\/\/([^/:]+)?(:(\d+))?/,opaqueOriginSchemes=["file:","data:"],getOriginFromSrc=n=>{if(n&&opaqueOriginSchemes.find(e=>n.startsWith(e)))return"null";const r=document.location,o=URL_REGEX.exec(n);let u,a,s;o?(u=o[1]?o[1]:r.protocol,a=o[2],s=o[4]):(u=r.protocol,a=r.hostname,s=r.port);const t=s&&s!==DEFAULT_PORT_BY_PROTOCOL[u]?`:${s}`:"";return`${u}//${a}${t}`},serializeError=({name:n,message:r,stack:o})=>({name:n,message:r,stack:o}),deserializeError=n=>{const r=new Error;return Object.keys(n).forEach(o=>r[o]=n[o]),r},connectCallReceiver=(n,r,o)=>{const{localName:u,local:a,remote:s,originForSending:t,originForReceiving:e}=n;let l=!1;const c=_=>{if(_.source!==s||_.data.penpal!==MessageType.Call)return;if(e!=="*"&&_.origin!==e){o(`${u} received message from origin ${_.origin} which did not match expected origin ${e}`);return}const d=_.data,{methodName:E,args:p,id:f}=d;o(`${u}: Received ${E}() call`);const v=g=>O=>{if(o(`${u}: Sending ${E}() reply`),l){o(`${u}: Unable to send ${E}() reply due to destroyed connection`);return}const m={penpal:MessageType.Reply,id:f,resolution:g,returnValue:O};g===Resolution.Rejected&&O instanceof Error&&(m.returnValue=serializeError(O),m.returnValueIsError=!0);try{s.postMessage(m,t)}catch(h){if(h.name===NativeErrorName.DataCloneError){const M={penpal:MessageType.Reply,id:f,resolution:Resolution.Rejected,returnValue:serializeError(h),returnValueIsError:!0};s.postMessage(M,t)}throw h}};new Promise(g=>g(r[E].apply(r,p))).then(v(Resolution.Fulfilled),v(Resolution.Rejected))};return a.addEventListener(NativeEventType.Message,c),()=>{l=!0,a.removeEventListener(NativeEventType.Message,c)}};let id=0;const generateId=()=>++id,KEY_PATH_DELIMITER=".",keyPathToSegments=n=>n?n.split(KEY_PATH_DELIMITER):[],segmentsToKeyPath=n=>n.join(KEY_PATH_DELIMITER),createKeyPath=(n,r)=>{const o=keyPathToSegments(r||"");return o.push(n),segmentsToKeyPath(o)},setAtKeyPath=(n,r,o)=>{const u=keyPathToSegments(r);return u.reduce((a,s,t)=>(typeof a[s]>"u"&&(a[s]={}),t===u.length-1&&(a[s]=o),a[s]),n),n},serializeMethods=(n,r)=>{const o={};return Object.keys(n).forEach(u=>{const a=n[u],s=createKeyPath(u,r);typeof a=="object"&&Object.assign(o,serializeMethods(a,s)),typeof a=="function"&&(o[s]=a)}),o},deserializeMethods=n=>{const r={};for(const o in n)setAtKeyPath(r,o,n[o]);return r},connectCallSender=(n,r,o,u,a)=>{const{localName:s,local:t,remote:e,originForSending:l,originForReceiving:c}=r;let _=!1;a(`${s}: Connecting call sender`);const d=p=>(...f)=>{a(`${s}: Sending ${p}() call`);let v;try{e.closed&&(v=!0)}catch{v=!0}if(v&&u(),_){const g=new Error(`Unable to send ${p}() call due to destroyed connection`);throw g.code=ErrorCode.ConnectionDestroyed,g}return new Promise((g,O)=>{const m=generateId(),h=b=>{if(b.source!==e||b.data.penpal!==MessageType.Reply||b.data.id!==m)return;if(c!=="*"&&b.origin!==c){a(`${s} received message from origin ${b.origin} which did not match expected origin ${c}`);return}const V=b.data;a(`${s}: Received ${p}() reply`),t.removeEventListener(NativeEventType.Message,h);let B=V.returnValue;V.returnValueIsError&&(B=deserializeError(B)),(V.resolution===Resolution.Fulfilled?g:O)(B)};t.addEventListener(NativeEventType.Message,h);const M={penpal:MessageType.Call,id:m,methodName:p,args:f};e.postMessage(M,l)})},E=o.reduce((p,f)=>(p[f]=d(f),p),{});return Object.assign(n,deserializeMethods(E)),()=>{_=!0}},handleAckMessageFactory=(n,r,o,u,a)=>{const{destroy:s,onDestroy:t}=u;let e,l;const c={};return _=>{if(r!=="*"&&_.origin!==r){a(`Parent: Handshake - Received ACK message from origin ${_.origin} which did not match expected origin ${r}`);return}a("Parent: Handshake - Received ACK");const d={localName:"Parent",local:window,remote:_.source,originForSending:o,originForReceiving:r};e&&e(),e=connectCallReceiver(d,n,a),t(e),l&&l.forEach(p=>{delete c[p]}),l=_.data.methodNames;const E=connectCallSender(c,d,l,s,a);return t(E),c}},handleSynMessageFactory=(n,r,o,u)=>a=>{if(!a.source)return;if(o!=="*"&&a.origin!==o){n(`Parent: Handshake - Received SYN message from origin ${a.origin} which did not match expected origin ${o}`);return}n("Parent: Handshake - Received SYN, responding with SYN-ACK");const s={penpal:MessageType.SynAck,methodNames:Object.keys(r)};a.source.postMessage(s,u)},CHECK_IFRAME_IN_DOC_INTERVAL=6e4,monitorIframeRemoval=(n,r)=>{const{destroy:o,onDestroy:u}=r,a=setInterval(()=>{n.isConnected||(clearInterval(a),o())},CHECK_IFRAME_IN_DOC_INTERVAL);u(()=>{clearInterval(a)})},startConnectionTimeout=(n,r)=>{let o;return n!==void 0&&(o=window.setTimeout(()=>{const u=new Error(`Connection timed out after ${n}ms`);u.code=ErrorCode.ConnectionTimeout,r(u)},n)),()=>{clearTimeout(o)}},validateIframeHasSrcOrSrcDoc=n=>{if(!n.src&&!n.srcdoc){const r=new Error("Iframe must have src or srcdoc property defined.");throw r.code=ErrorCode.NoIframeSrc,r}},connectToChild=n=>{let{iframe:r,methods:o={},childOrigin:u,timeout:a,debug:s=!1}=n;const t=createLogger(s),e=createDestructor("Parent",t),{onDestroy:l,destroy:c}=e;u||(validateIframeHasSrcOrSrcDoc(r),u=getOriginFromSrc(r.src));const _=u==="null"?"*":u,d=serializeMethods(o),E=handleSynMessageFactory(t,d,u,_),p=handleAckMessageFactory(d,u,_,e,t);return{promise:new Promise((v,g)=>{const O=startConnectionTimeout(a,c),m=h=>{if(!(h.source!==r.contentWindow||!h.data)){if(h.data.penpal===MessageType.Syn){E(h);return}if(h.data.penpal===MessageType.Ack){const M=p(h);M&&(O(),v(M));return}}};window.addEventListener(NativeEventType.Message,m),t("Parent: Awaiting handshake"),monitorIframeRemoval(r,e),l(h=>{window.removeEventListener(NativeEventType.Message,m),h&&g(h)})}),destroy(){c()}}};var _globalThis$2=typeof globalThis=="object"?globalThis:typeof self=="object"?self:typeof window=="object"?window:typeof global=="object"?global:{},VERSION$3="1.9.0",re=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function _makeCompatibilityCheck(n){var r=new Set([n]),o=new Set,u=n.match(re);if(!u)return function(){return!1};var a={major:+u[1],minor:+u[2],patch:+u[3],prerelease:u[4]};if(a.prerelease!=null)return function(l){return l===n};function s(e){return o.add(e),!1}function t(e){return r.add(e),!0}return function(l){if(r.has(l))return!0;if(o.has(l))return!1;var c=l.match(re);if(!c)return s(l);var _={major:+c[1],minor:+c[2],patch:+c[3],prerelease:c[4]};return _.prerelease!=null||a.major!==_.major?s(l):a.major===0?a.minor===_.minor&&a.patch<=_.patch?t(l):s(l):a.minor<=_.minor?t(l):s(l)}}var isCompatible=_makeCompatibilityCheck(VERSION$3),major=VERSION$3.split(".")[0],GLOBAL_OPENTELEMETRY_API_KEY=Symbol.for("opentelemetry.js.api."+major),_global$2=_globalThis$2;function registerGlobal(n,r,o,u){var a;u===void 0&&(u=!1);var s=_global$2[GLOBAL_OPENTELEMETRY_API_KEY]=(a=_global$2[GLOBAL_OPENTELEMETRY_API_KEY])!==null&&a!==void 0?a:{version:VERSION$3};if(!u&&s[n]){var t=new Error("@opentelemetry/api: Attempted duplicate registration of API: "+n);return o.error(t.stack||t.message),!1}if(s.version!==VERSION$3){var t=new Error("@opentelemetry/api: Registration of version v"+s.version+" for "+n+" does not match previously registered API v"+VERSION$3);return o.error(t.stack||t.message),!1}return s[n]=r,o.debug("@opentelemetry/api: Registered a global for "+n+" v"+VERSION$3+"."),!0}function getGlobal(n){var r,o,u=(r=_global$2[GLOBAL_OPENTELEMETRY_API_KEY])===null||r===void 0?void 0:r.version;if(!(!u||!isCompatible(u)))return(o=_global$2[GLOBAL_OPENTELEMETRY_API_KEY])===null||o===void 0?void 0:o[n]}function unregisterGlobal(n,r){r.debug("@opentelemetry/api: Unregistering a global for "+n+" v"+VERSION$3+".");var o=_global$2[GLOBAL_OPENTELEMETRY_API_KEY];o&&delete o[n]}var __read$m=function(n,r){var o=typeof Symbol=="function"&&n[Symbol.iterator];if(!o)return n;var u=o.call(n),a,s=[],t;try{for(;(r===void 0||r-- >0)&&!(a=u.next()).done;)s.push(a.value)}catch(e){t={error:e}}finally{try{a&&!a.done&&(o=u.return)&&o.call(u)}finally{if(t)throw t.error}}return s},__spreadArray$b=function(n,r,o){if(o||arguments.length===2)for(var u=0,a=r.length,s;u<a;u++)(s||!(u in r))&&(s||(s=Array.prototype.slice.call(r,0,u)),s[u]=r[u]);return n.concat(s||Array.prototype.slice.call(r))},DiagComponentLogger=function(){function n(r){this._namespace=r.namespace||"DiagComponentLogger"}return n.prototype.debug=function(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];return logProxy("debug",this._namespace,r)},n.prototype.error=function(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];return logProxy("error",this._namespace,r)},n.prototype.info=function(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];return logProxy("info",this._namespace,r)},n.prototype.warn=function(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];return logProxy("warn",this._namespace,r)},n.prototype.verbose=function(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];return logProxy("verbose",this._namespace,r)},n}();function logProxy(n,r,o){var u=getGlobal("diag");if(u)return o.unshift(r),u[n].apply(u,__spreadArray$b([],__read$m(o),!1))}var DiagLogLevel;(function(n){n[n.NONE=0]="NONE",n[n.ERROR=30]="ERROR",n[n.WARN=50]="WARN",n[n.INFO=60]="INFO",n[n.DEBUG=70]="DEBUG",n[n.VERBOSE=80]="VERBOSE",n[n.ALL=9999]="ALL"})(DiagLogLevel||(DiagLogLevel={}));function createLogLevelDiagLogger(n,r){n<DiagLogLevel.NONE?n=DiagLogLevel.NONE:n>DiagLogLevel.ALL&&(n=DiagLogLevel.ALL),r=r||{};function o(u,a){var s=r[u];return typeof s=="function"&&n>=a?s.bind(r):function(){}}return{error:o("error",DiagLogLevel.ERROR),warn:o("warn",DiagLogLevel.WARN),info:o("info",DiagLogLevel.INFO),debug:o("debug",DiagLogLevel.DEBUG),verbose:o("verbose",DiagLogLevel.VERBOSE)}}var __read$l=function(n,r){var o=typeof Symbol=="function"&&n[Symbol.iterator];if(!o)return n;var u=o.call(n),a,s=[],t;try{for(;(r===void 0||r-- >0)&&!(a=u.next()).done;)s.push(a.value)}catch(e){t={error:e}}finally{try{a&&!a.done&&(o=u.return)&&o.call(u)}finally{if(t)throw t.error}}return s},__spreadArray$a=function(n,r,o){if(o||arguments.length===2)for(var u=0,a=r.length,s;u<a;u++)(s||!(u in r))&&(s||(s=Array.prototype.slice.call(r,0,u)),s[u]=r[u]);return n.concat(s||Array.prototype.slice.call(r))},API_NAME$4="diag",DiagAPI=function(){function n(){function r(a){return function(){for(var s=[],t=0;t<arguments.length;t++)s[t]=arguments[t];var e=getGlobal("diag");if(e)return e[a].apply(e,__spreadArray$a([],__read$l(s),!1))}}var o=this,u=function(a,s){var t,e,l;if(s===void 0&&(s={logLevel:DiagLogLevel.INFO}),a===o){var c=new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return o.error((t=c.stack)!==null&&t!==void 0?t:c.message),!1}typeof s=="number"&&(s={logLevel:s});var _=getGlobal("diag"),d=createLogLevelDiagLogger((e=s.logLevel)!==null&&e!==void 0?e:DiagLogLevel.INFO,a);if(_&&!s.suppressOverrideMessage){var E=(l=new Error().stack)!==null&&l!==void 0?l:"<failed to generate stacktrace>";_.warn("Current logger will be overwritten from "+E),d.warn("Current logger will overwrite one already registered from "+E)}return registerGlobal("diag",d,o,!0)};o.setLogger=u,o.disable=function(){unregisterGlobal(API_NAME$4,o)},o.createComponentLogger=function(a){return new DiagComponentLogger(a)},o.verbose=r("verbose"),o.debug=r("debug"),o.info=r("info"),o.warn=r("warn"),o.error=r("error")}return n.instance=function(){return this._instance||(this._instance=new n),this._instance},n}(),__read$k=function(n,r){var o=typeof Symbol=="function"&&n[Symbol.iterator];if(!o)return n;var u=o.call(n),a,s=[],t;try{for(;(r===void 0||r-- >0)&&!(a=u.next()).done;)s.push(a.value)}catch(e){t={error:e}}finally{try{a&&!a.done&&(o=u.return)&&o.call(u)}finally{if(t)throw t.error}}return s},__values$a=function(n){var r=typeof Symbol=="function"&&Symbol.iterator,o=r&&n[r],u=0;if(o)return o.call(n);if(n&&typeof n.length=="number")return{next:function(){return n&&u>=n.length&&(n=void 0),{value:n&&n[u++],done:!n}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")},BaggageImpl=function(){function n(r){this._entries=r?new Map(r):new Map}return n.prototype.getEntry=function(r){var o=this._entries.get(r);if(o)return Object.assign({},o)},n.prototype.getAllEntries=function(){return Array.from(this._entries.entries()).map(function(r){var o=__read$k(r,2),u=o[0],a=o[1];return[u,a]})},n.prototype.setEntry=function(r,o){var u=new n(this._entries);return u._entries.set(r,o),u},n.prototype.removeEntry=function(r){var o=new n(this._entries);return o._entries.delete(r),o},n.prototype.removeEntries=function(){for(var r,o,u=[],a=0;a<arguments.length;a++)u[a]=arguments[a];var s=new n(this._entries);try{for(var t=__values$a(u),e=t.next();!e.done;e=t.next()){var l=e.value;s._entries.delete(l)}}catch(c){r={error:c}}finally{try{e&&!e.done&&(o=t.return)&&o.call(t)}finally{if(r)throw r.error}}return s},n.prototype.clear=function(){return new n},n}(),baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata"),diag$1=DiagAPI.instance();function createBaggage(n){return n===void 0&&(n={}),new BaggageImpl(new Map(Object.entries(n)))}function baggageEntryMetadataFromString(n){return typeof n!="string"&&(diag$1.error("Cannot create baggage metadata from unknown type: "+typeof n),n=""),{__TYPE__:baggageEntryMetadataSymbol,toString:function(){return n}}}function createContextKey(n){return Symbol.for(n)}var BaseContext=function(){function n(r){var o=this;o._currentContext=r?new Map(r):new Map,o.getValue=function(u){return o._currentContext.get(u)},o.setValue=function(u,a){var s=new n(o._currentContext);return s._currentContext.set(u,a),s},o.deleteValue=function(u){var a=new n(o._currentContext);return a._currentContext.delete(u),a}}return n}(),ROOT_CONTEXT=new BaseContext,consoleMap=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}],DiagConsoleLogger=function(){function n(){function r(u){return function(){for(var a=[],s=0;s<arguments.length;s++)a[s]=arguments[s];if(console){var t=console[u];if(typeof t!="function"&&(t=console.log),typeof t=="function")return t.apply(console,a)}}}for(var o=0;o<consoleMap.length;o++)this[consoleMap[o].n]=r(consoleMap[o].c)}return n}(),__extends$9=function(){var n=function(r,o){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(u,a){u.__proto__=a}||function(u,a){for(var s in a)Object.prototype.hasOwnProperty.call(a,s)&&(u[s]=a[s])},n(r,o)};return function(r,o){if(typeof o!="function"&&o!==null)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");n(r,o);function u(){this.constructor=r}r.prototype=o===null?Object.create(o):(u.prototype=o.prototype,new u)}}(),NoopMeter=function(){function n(){}return n.prototype.createGauge=function(r,o){return NOOP_GAUGE_METRIC},n.prototype.createHistogram=function(r,o){return NOOP_HISTOGRAM_METRIC},n.prototype.createCounter=function(r,o){return NOOP_COUNTER_METRIC},n.prototype.createUpDownCounter=function(r,o){return NOOP_UP_DOWN_COUNTER_METRIC},n.prototype.createObservableGauge=function(r,o){return NOOP_OBSERVABLE_GAUGE_METRIC},n.prototype.createObservableCounter=function(r,o){return NOOP_OBSERVABLE_COUNTER_METRIC},n.prototype.createObservableUpDownCounter=function(r,o){return NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC},n.prototype.addBatchObservableCallback=function(r,o){},n.prototype.removeBatchObservableCallback=function(r){},n}(),NoopMetric=function(){function n(){}return n}(),NoopCounterMetric=function(n){__extends$9(r,n);function r(){return n!==null&&n.apply(this,arguments)||this}return r.prototype.add=function(o,u){},r}(NoopMetric),NoopUpDownCounterMetric=function(n){__extends$9(r,n);function r(){return n!==null&&n.apply(this,arguments)||this}return r.prototype.add=function(o,u){},r}(NoopMetric),NoopGaugeMetric=function(n){__extends$9(r,n);function r(){return n!==null&&n.apply(this,arguments)||this}return r.prototype.record=function(o,u){},r}(NoopMetric),NoopHistogramMetric=function(n){__extends$9(r,n);function r(){return n!==null&&n.apply(this,arguments)||this}return r.prototype.record=function(o,u){},r}(NoopMetric),NoopObservableMetric=function(){function n(){}return n.prototype.addCallback=function(r){},n.prototype.removeCallback=function(r){},n}(),NoopObservableCounterMetric=function(n){__extends$9(r,n);function r(){return n!==null&&n.apply(this,arguments)||this}return r}(NoopObservableMetric),NoopObservableGaugeMetric=function(n){__extends$9(r,n);function r(){return n!==null&&n.apply(this,arguments)||this}return r}(NoopObservableMetric),NoopObservableUpDownCounterMetric=function(n){__extends$9(r,n);function r(){return n!==null&&n.apply(this,arguments)||this}return r}(NoopObservableMetric),NOOP_METER=new NoopMeter,NOOP_COUNTER_METRIC=new NoopCounterMetric,NOOP_GAUGE_METRIC=new NoopGaugeMetric,NOOP_HISTOGRAM_METRIC=new NoopHistogramMetric,NOOP_UP_DOWN_COUNTER_METRIC=new NoopUpDownCounterMetric,NOOP_OBSERVABLE_COUNTER_METRIC=new NoopObservableCounterMetric,NOOP_OBSERVABLE_GAUGE_METRIC=new NoopObservableGaugeMetric,NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new NoopObservableUpDownCounterMetric;function createNoopMeter(){return NOOP_METER}var ValueType;(function(n){n[n.INT=0]="INT",n[n.DOUBLE=1]="DOUBLE"})(ValueType||(ValueType={}));var defaultTextMapGetter={get:function(n,r){if(n!=null)return n[r]},keys:function(n){return n==null?[]:Object.keys(n)}},defaultTextMapSetter={set:function(n,r,o){n!=null&&(n[r]=o)}},__read$j=function(n,r){var o=typeof Symbol=="function"&&n[Symbol.iterator];if(!o)return n;var u=o.call(n),a,s=[],t;try{for(;(r===void 0||r-- >0)&&!(a=u.next()).done;)s.push(a.value)}catch(e){t={error:e}}finally{try{a&&!a.done&&(o=u.return)&&o.call(u)}finally{if(t)throw t.error}}return s},__spreadArray$9=function(n,r,o){if(o||arguments.length===2)for(var u=0,a=r.length,s;u<a;u++)(s||!(u in r))&&(s||(s=Array.prototype.slice.call(r,0,u)),s[u]=r[u]);return n.concat(s||Array.prototype.slice.call(r))},NoopContextManager=function(){function n(){}return n.prototype.active=function(){return ROOT_CONTEXT},n.prototype.with=function(r,o,u){for(var a=[],s=3;s<arguments.length;s++)a[s-3]=arguments[s];return o.call.apply(o,__spreadArray$9([u],__read$j(a),!1))},n.prototype.bind=function(r,o){return o},n.prototype.enable=function(){return this},n.prototype.disable=function(){return this},n}(),__read$i=function(n,r){var o=typeof Symbol=="function"&&n[Symbol.iterator];if(!o)return n;var u=o.call(n),a,s=[],t;try{for(;(r===void 0||r-- >0)&&!(a=u.next()).done;)s.push(a.value)}catch(e){t={error:e}}finally{try{a&&!a.done&&(o=u.return)&&o.call(u)}finally{if(t)throw t.error}}return s},__spreadArray$8=function(n,r,o){if(o||arguments.length===2)for(var u=0,a=r.length,s;u<a;u++)(s||!(u in r))&&(s||(s=Array.prototype.slice.call(r,0,u)),s[u]=r[u]);return n.concat(s||Array.prototype.slice.call(r))},API_NAME$3="context",NOOP_CONTEXT_MANAGER=new NoopContextManager,ContextAPI=function(){function n(){}return n.getInstance=function(){return this._instance||(this._instance=new n),this._instance},n.prototype.setGlobalContextManager=function(r){return registerGlobal(API_NAME$3,r,DiagAPI.instance())},n.prototype.active=function(){return this._getContextManager().active()},n.prototype.with=function(r,o,u){for(var a,s=[],t=3;t<arguments.length;t++)s[t-3]=arguments[t];return(a=this._getContextManager()).with.apply(a,__spreadArray$8([r,o,u],__read$i(s),!1))},n.prototype.bind=function(r,o){return this._getContextManager().bind(r,o)},n.prototype._getContextManager=function(){return getGlobal(API_NAME$3)||NOOP_CONTEXT_MANAGER},n.prototype.disable=function(){this._getContextManager().disable(),unregisterGlobal(API_NAME$3,DiagAPI.instance())},n}(),TraceFlags;(function(n){n[n.NONE=0]="NONE",n[n.SAMPLED=1]="SAMPLED"})(TraceFlags||(TraceFlags={}));var INVALID_SPANID="0000000000000000",INVALID_TRACEID="00000000000000000000000000000000",INVALID_SPAN_CONTEXT={traceId:INVALID_TRACEID,spanId:INVALID_SPANID,traceFlags:TraceFlags.NONE},NonRecordingSpan=function(){function n(r){r===void 0&&(r=INVALID_SPAN_CONTEXT),this._spanContext=r}return n.prototype.spanContext=function(){return this._spanContext},n.prototype.setAttribute=function(r,o){return this},n.prototype.setAttributes=function(r){return this},n.prototype.addEvent=function(r,o){return this},n.prototype.addLink=function(r){return this},n.prototype.addLinks=function(r){return this},n.prototype.setStatus=function(r){return this},n.prototype.updateName=function(r){return this},n.prototype.end=function(r){},n.prototype.isRecording=function(){return!1},n.prototype.recordException=function(r,o){},n}(),SPAN_KEY=createContextKey("OpenTelemetry Context Key SPAN");function getSpan(n){return n.getValue(SPAN_KEY)||void 0}function getActiveSpan(){return getSpan(ContextAPI.getInstance().active())}function setSpan(n,r){return n.setValue(SPAN_KEY,r)}function deleteSpan(n){return n.deleteValue(SPAN_KEY)}function setSpanContext(n,r){return setSpan(n,new NonRecordingSpan(r))}function getSpanContext(n){var r;return(r=getSpan(n))===null||r===void 0?void 0:r.spanContext()}var VALID_TRACEID_REGEX=/^([0-9a-f]{32})$/i,VALID_SPANID_REGEX=/^[0-9a-f]{16}$/i;function isValidTraceId(n){return VALID_TRACEID_REGEX.test(n)&&n!==INVALID_TRACEID}function isValidSpanId(n){return VALID_SPANID_REGEX.test(n)&&n!==INVALID_SPANID}function isSpanContextValid(n){return isValidTraceId(n.traceId)&&isValidSpanId(n.spanId)}function wrapSpanContext(n){return new NonRecordingSpan(n)}var contextApi=ContextAPI.getInstance(),NoopTracer=function(){function n(){}return n.prototype.startSpan=function(r,o,u){u===void 0&&(u=contextApi.active());var a=!!(o!=null&&o.root);if(a)return new NonRecordingSpan;var s=u&&getSpanContext(u);return isSpanContext(s)&&isSpanContextValid(s)?new NonRecordingSpan(s):new NonRecordingSpan},n.prototype.startActiveSpan=function(r,o,u,a){var s,t,e;if(!(arguments.length<2)){arguments.length===2?e=o:arguments.length===3?(s=o,e=u):(s=o,t=u,e=a);var l=t??contextApi.active(),c=this.startSpan(r,s,l),_=setSpan(l,c);return contextApi.with(_,e,void 0,c)}},n}();function isSpanContext(n){return typeof n=="object"&&typeof n.spanId=="string"&&typeof n.traceId=="string"&&typeof n.traceFlags=="number"}var NOOP_TRACER=new NoopTracer,ProxyTracer=function(){function n(r,o,u,a){this._provider=r,this.name=o,this.version=u,this.options=a}return n.prototype.startSpan=function(r,o,u){return this._getTracer().startSpan(r,o,u)},n.prototype.startActiveSpan=function(r,o,u,a){var s=this._getTracer();return Reflect.apply(s.startActiveSpan,s,arguments)},n.prototype._getTracer=function(){if(this._delegate)return this._delegate;var r=this._provider.getDelegateTracer(this.name,this.version,this.options);return r?(this._delegate=r,this._delegate):NOOP_TRACER},n}(),NoopTracerProvider=function(){function n(){}return n.prototype.getTracer=function(r,o,u){return new NoopTracer},n}(),NOOP_TRACER_PROVIDER=new NoopTracerProvider,ProxyTracerProvider=function(){function n(){}return n.prototype.getTracer=function(r,o,u){var a;return(a=this.getDelegateTracer(r,o,u))!==null&&a!==void 0?a:new ProxyTracer(this,r,o,u)},n.prototype.getDelegate=function(){var r;return(r=this._delegate)!==null&&r!==void 0?r:NOOP_TRACER_PROVIDER},n.prototype.setDelegate=function(r){this._delegate=r},n.prototype.getDelegateTracer=function(r,o,u){var a;return(a=this._delegate)===null||a===void 0?void 0:a.getTracer(r,o,u)},n}(),SamplingDecision$1;(function(n){n[n.NOT_RECORD=0]="NOT_RECORD",n[n.RECORD=1]="RECORD",n[n.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(SamplingDecision$1||(SamplingDecision$1={}));var SpanKind;(function(n){n[n.INTERNAL=0]="INTERNAL",n[n.SERVER=1]="SERVER",n[n.CLIENT=2]="CLIENT",n[n.PRODUCER=3]="PRODUCER",n[n.CONSUMER=4]="CONSUMER"})(SpanKind||(SpanKind={}));var SpanStatusCode;(function(n){n[n.UNSET=0]="UNSET",n[n.OK=1]="OK",n[n.ERROR=2]="ERROR"})(SpanStatusCode||(SpanStatusCode={}));var VALID_KEY_CHAR_RANGE$1="[_0-9a-z-*/]",VALID_KEY$1="[a-z]"+VALID_KEY_CHAR_RANGE$1+"{0,255}",VALID_VENDOR_KEY$1="[a-z0-9]"+VALID_KEY_CHAR_RANGE$1+"{0,240}@[a-z]"+VALID_KEY_CHAR_RANGE$1+"{0,13}",VALID_KEY_REGEX$1=new RegExp("^(?:"+VALID_KEY$1+"|"+VALID_VENDOR_KEY$1+")$"),VALID_VALUE_BASE_REGEX$1=/^[ -~]{0,255}[!-~]$/,INVALID_VALUE_COMMA_EQUAL_REGEX$1=/,|=/;function validateKey$1(n){return VALID_KEY_REGEX$1.test(n)}function validateValue$1(n){return VALID_VALUE_BASE_REGEX$1.test(n)&&!INVALID_VALUE_COMMA_EQUAL_REGEX$1.test(n)}var MAX_TRACE_STATE_ITEMS$1=32,MAX_TRACE_STATE_LEN$1=512,LIST_MEMBERS_SEPARATOR$1=",",LIST_MEMBER_KEY_VALUE_SPLITTER$1="=",TraceStateImpl=function(){function n(r){this._internalState=new Map,r&&this._parse(r)}return n.prototype.set=function(r,o){var u=this._clone();return u._internalState.has(r)&&u._internalState.delete(r),u._internalState.set(r,o),u},n.prototype.unset=function(r){var o=this._clone();return o._internalState.delete(r),o},n.prototype.get=function(r){return this._internalState.get(r)},n.prototype.serialize=function(){var r=this;return this._keys().reduce(function(o,u){return o.push(u+LIST_MEMBER_KEY_VALUE_SPLITTER$1+r.get(u)),o},[]).join(LIST_MEMBERS_SEPARATOR$1)},n.prototype._parse=function(r){r.length>MAX_TRACE_STATE_LEN$1||(this._internalState=r.split(LIST_MEMBERS_SEPARATOR$1).reverse().reduce(function(o,u){var a=u.trim(),s=a.indexOf(LIST_MEMBER_KEY_VALUE_SPLITTER$1);if(s!==-1){var t=a.slice(0,s),e=a.slice(s+1,u.length);validateKey$1(t)&&validateValue$1(e)&&o.set(t,e)}return o},new Map),this._internalState.size>MAX_TRACE_STATE_ITEMS$1&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,MAX_TRACE_STATE_ITEMS$1))))},n.prototype._keys=function(){return Array.from(this._internalState.keys()).reverse()},n.prototype._clone=function(){var r=new n;return r._internalState=new Map(this._internalState),r},n}();function createTraceState(n){return new TraceStateImpl(n)}var context=ContextAPI.getInstance(),diag=DiagAPI.instance(),NoopMeterProvider=function(){function n(){}return n.prototype.getMeter=function(r,o,u){return NOOP_METER},n}(),NOOP_METER_PROVIDER=new NoopMeterProvider,API_NAME$2="metrics",MetricsAPI=function(){function n(){}return n.getInstance=function(){return this._instance||(this._instance=new n),this._instance},n.prototype.setGlobalMeterProvider=function(r){return registerGlobal(API_NAME$2,r,DiagAPI.instance())},n.prototype.getMeterProvider=function(){return getGlobal(API_NAME$2)||NOOP_METER_PROVIDER},n.prototype.getMeter=function(r,o,u){return this.getMeterProvider().getMeter(r,o,u)},n.prototype.disable=function(){unregisterGlobal(API_NAME$2,DiagAPI.instance())},n}(),metrics=MetricsAPI.getInstance(),NoopTextMapPropagator=function(){function n(){}return n.prototype.inject=function(r,o){},n.prototype.extract=function(r,o){return r},n.prototype.fields=function(){return[]},n}(),BAGGAGE_KEY=createContextKey("OpenTelemetry Baggage Key");function getBaggage(n){return n.getValue(BAGGAGE_KEY)||void 0}function getActiveBaggage(){return getBaggage(ContextAPI.getInstance().active())}function setBaggage(n,r){return n.setValue(BAGGAGE_KEY,r)}function deleteBaggage(n){return n.deleteValue(BAGGAGE_KEY)}var API_NAME$1="propagation",NOOP_TEXT_MAP_PROPAGATOR=new NoopTextMapPropagator,PropagationAPI=function(){function n(){this.createBaggage=createBaggage,this.getBaggage=getBaggage,this.getActiveBaggage=getActiveBaggage,this.setBaggage=setBaggage,this.deleteBaggage=deleteBaggage}return n.getInstance=function(){return this._instance||(this._instance=new n),this._instance},n.prototype.setGlobalPropagator=function(r){return registerGlobal(API_NAME$1,r,DiagAPI.instance())},n.prototype.inject=function(r,o,u){return u===void 0&&(u=defaultTextMapSetter),this._getGlobalPropagator().inject(r,o,u)},n.prototype.extract=function(r,o,u){return u===void 0&&(u=defaultTextMapGetter),this._getGlobalPropagator().extract(r,o,u)},n.prototype.fields=function(){return this._getGlobalPropagator().fields()},n.prototype.disable=function(){unregisterGlobal(API_NAME$1,DiagAPI.instance())},n.prototype._getGlobalPropagator=function(){return getGlobal(API_NAME$1)||NOOP_TEXT_MAP_PROPAGATOR},n}(),propagation=PropagationAPI.getInstance(),API_NAME="trace",TraceAPI=function(){function n(){this._proxyTracerProvider=new ProxyTracerProvider,this.wrapSpanContext=wrapSpanContext,this.isSpanContextValid=isSpanContextValid,this.deleteSpan=deleteSpan,this.getSpan=getSpan,this.getActiveSpan=getActiveSpan,this.getSpanContext=getSpanContext,this.setSpan=setSpan,this.setSpanContext=setSpanContext}return n.getInstance=function(){return this._instance||(this._instance=new n),this._instance},n.prototype.setGlobalTracerProvider=function(r){var o=registerGlobal(API_NAME,this._proxyTracerProvider,DiagAPI.instance());return o&&this._proxyTracerProvider.setDelegate(r),o},n.prototype.getTracerProvider=function(){return getGlobal(API_NAME)||this._proxyTracerProvider},n.prototype.getTracer=function(r,o){return this.getTracerProvider().getTracer(r,o)},n.prototype.disable=function(){unregisterGlobal(API_NAME,DiagAPI.instance()),this._proxyTracerProvider=new ProxyTracerProvider},n}(),trace=TraceAPI.getInstance();const index$8={context,diag,metrics,propagation,trace},esm$2=Object.freeze(Object.defineProperty({__proto__:null,DiagConsoleLogger,get DiagLogLevel(){return DiagLogLevel},INVALID_SPANID,INVALID_SPAN_CONTEXT,INVALID_TRACEID,ProxyTracer,ProxyTracerProvider,ROOT_CONTEXT,get SamplingDecision(){return SamplingDecision$1},get SpanKind(){return SpanKind},get SpanStatusCode(){return SpanStatusCode},get TraceFlags(){return TraceFlags},get ValueType(){return ValueType},baggageEntryMetadataFromString,context,createContextKey,createNoopMeter,createTraceState,default:index$8,defaultTextMapGetter,defaultTextMapSetter,diag,isSpanContextValid,isValidSpanId,isValidTraceId,metrics,propagation,trace},Symbol.toStringTag,{value:"Module"})),checkIfValidCdeConnectionObject=async n=>{if(typeof n!="object"||!n)return!1;try{const r={type:"ping"},o=await n.send(r);if(o!==!0)throw new Error(`Expected 'true' after ping, got ${JSON.stringify(o)}`);return!0}catch(r){return console.error("Invalid CDE connection check:",r),!1}},isResultValid=(n,r)=>!!n&&r;function fixProto(n,r){var o=Object.setPrototypeOf;o?o(n,r):n.__proto__=r}function fixStack(n,r){r===void 0&&(r=n.constructor);var o=Error.captureStackTrace;o&&o(n,r)}var __extends$8=function(){var n=function(o,u){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,s){a.__proto__=s}||function(a,s){for(var t in s)Object.prototype.hasOwnProperty.call(s,t)&&(a[t]=s[t])},n(o,u)};return function(r,o){if(typeof o!="function"&&o!==null)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");n(r,o);function u(){this.constructor=r}r.prototype=o===null?Object.create(o):(u.prototype=o.prototype,new u)}}(),CustomError=function(n){__extends$8(r,n);function r(o,u){var a=this.constructor,s=n.call(this,o,u)||this;return Object.defineProperty(s,"name",{value:a.name,enumerable:!1,configurable:!0}),fixProto(s,a.prototype),fixStack(s),s}return r}(Error);const nullOrUndefOr=n=>z.nullable(n.optional());z.string().trim().min(1,{message:"Cannot be blank"});const CDEResponseError=z.object({cde_response_type:z.literal("error"),message:z.string(),headers:z.record(z.string(),z.string()).optional()});z.enum(["usd","brl"]);const CouponMinimal=z.object({name:z.string(),amount_atom_off:nullOrUndefOr(z.number()),percent_off:nullOrUndefOr(z.number()),currency:nullOrUndefOr(z.string()),duration:z.string(),duration_in_months:nullOrUndefOr(z.number())}),LineItem=z.object({amount_subtotal_atom:z.number().int(),amount_total_atom:z.number().int(),currency:z.string(),description:nullOrUndefOr(z.string()),price_id:z.string(),billing_interval:nullOrUndefOr(z.string()),billing_interval_count:nullOrUndefOr(z.number().int()),quantity:z.number().int()}),BrandSettings=z.record(z.string(),z.any()),Brand=z.object({name:z.string(),settings:nullOrUndefOr(BrandSettings)}),CheckoutPaymentMethod=z.object({provider:z.string(),processor_name:nullOrUndefOr(z.string()),metadata:nullOrUndefOr(z.record(z.string(),z.any()))}),SubscriptionItemMinimal=z.object({quantity:z.number()}),SubscriptionMinimal=z.object({id:nullOrUndefOr(z.string()),billing_interval:nullOrUndefOr(z.string()),billing_interval_count:nullOrUndefOr(z.number().int()),subscription_items:z.array(SubscriptionItemMinimal),trial_start:nullOrUndefOr(z.string()),trial_end:nullOrUndefOr(z.string())}),InvoiceItemDiscountAmountsMinimal=z.object({amount_atom:z.number()}),InvoiceLineItemMinimal=z.object({amount_atom:z.number(),amount_atom_considering_discount_applied:z.number(),currency:z.string(),discount_amount_atoms:z.array(InvoiceItemDiscountAmountsMinimal),subscription_item_id:z.string()}),DiscountMinimal=z.object({coupon:CouponMinimal}),InvoiceMinimal=z.object({currency:z.string(),discounts:z.array(DiscountMinimal),hosted_invoice_url:nullOrUndefOr(z.string()),lines:z.array(InvoiceLineItemMinimal),remaining_amount_atom:z.number(),tax_amount_atom:z.number(),total_amount_atom:z.number(),total_discount_amount_atoms:z.array(InvoiceItemDiscountAmountsMinimal)}),CreateSubscriptionResponseMinimal=z.object({created:z.array(SubscriptionMinimal),invoices:z.array(InvoiceMinimal),processors_used:nullOrUndefOr(z.array(z.string()))}),PreviewCheckoutResponse=z.object({preview:CreateSubscriptionResponseMinimal,preview_post_trial:nullOrUndefOr(CreateSubscriptionResponseMinimal),coupons:z.array(CouponMinimal)}),_PaymentFormPrefillCommon=z.object({status:z.literal("open"),locale:nullOrUndefOr(z.string()),token:z.string(),email:nullOrUndefOr(z.string()),line_items:z.array(LineItem),amount_subtotal_atom:z.number().int(),amount_total_atom:z.number().int(),brand:Brand,subs_preview:nullOrUndefOr(PreviewCheckoutResponse),methods_available:z.array(CheckoutPaymentMethod)}),PaymentFormPrefill=z.discriminatedUnion("mode",[z.object({mode:z.literal("setup"),currency:z.nullable(z.undefined())}).extend(_PaymentFormPrefillCommon.shape),z.object({mode:z.enum(["payment","subscription"]),currency:z.string()}).extend(_PaymentFormPrefillCommon.shape)]),CompletedFormPrefill=z.object({status:z.literal("complete")}),ExpiredFormPrefill=z.object({status:z.literal("expired")});z.union([PaymentFormPrefill,CompletedFormPrefill,ExpiredFormPrefill]),z.object({logo:z.string(),icon:z.string(),primary_color:z.string(),secondary_color:z.string()}),z.object({secure_token:z.string(),pm_id:z.string()}),z.object({secure_token:z.string(),payment_input:z.any(),customer_first_name:z.string().optional(),customer_last_name:z.string().optional(),customer_email:z.string(),customer_zip_code:z.string(),customer_country:z.string(),line_items:z.array(LineItem),total_amount_atom:z.number().int(),cancel_at_end:z.boolean(),checkout_payment_method:CheckoutPaymentMethod,promotion_code:z.string().optional(),do_not_use_legacy_cc_flow:z.boolean().optional(),use_confirmed_pm_id:nullOrUndefOr(z.string()),payment_route_id:nullOrUndefOr(z.string())});const SetupCheckoutResponse=z.object({payment_method_id:z.string()});z.object({id:z.string(),return_url:z.string()});const PydanticValidationError=z.object({type:z.string(),loc:z.array(z.string()),msg:z.string(),url:z.string()});z.array(PydanticValidationError);const NewCustomerFields=z.object({new_customer_email:z.string().optional(),new_customer_address:z.record(z.string(),z.any()).optional(),new_customer_first_name:z.string().optional(),new_customer_last_name:z.string().optional()}),PriceQty=z.object({price_id:z.string(),quantity:z.number().int()}),CartInfo=z.object({line_items:z.array(PriceQty),promotion_code:z.string().optional(),displayed_total_amount_atom:z.number().int()}),ProcessorSpecificMetadata=z.object({processor_specific_metadata:nullOrUndefOr(z.record(z.string(),z.any()))});z.object({payment_provider:z.string(),checkout_payment_method:CheckoutPaymentMethod,existing_cc_pm_id:z.string().optional(),their_existing_pm_id:z.string().optional(),use_pay_first_flow:z.boolean().optional(),pay_first_flow_cart_info:CartInfo.optional(),customer_language:z.string().optional()}).extend(NewCustomerFields.shape).extend(ProcessorSpecificMetadata.shape);const StartPaymentFlowResponse=z.object({required_user_actions:z.array(z.record(z.string(),z.any())),checkout_attempt_id:nullOrUndefOr(z.string())});z.object({fields:PRFormFields,checkoutPaymentMethod:CheckoutPaymentMethod,payment_route_id:nullOrUndefOr(z.string())}),z.object({session_id:z.string(),non_cde_form_fields:RequiredFormFields,checkout_payment_method:CheckoutPaymentMethod,extra_metadata:z.record(z.string(),z.any()),payment_route_id:nullOrUndefOr(z.string()),customer_language:z.string().optional()});const StartPaymentFlowForCCResponse=z.object({required_user_actions:z.array(z.record(z.string(),z.any())),cc_pm_id:z.string()});z.record(z.any()),z.object({first_name:nullOrUndefOr(z.string()),last_name:nullOrUndefOr(z.string()),line1:nullOrUndefOr(z.string()),line2:nullOrUndefOr(z.string()),line3:nullOrUndefOr(z.string()),city:nullOrUndefOr(z.string()),state:nullOrUndefOr(z.string()),country:nullOrUndefOr(z.string()),zip_code:nullOrUndefOr(z.string()),email:nullOrUndefOr(z.string()),billing_email:nullOrUndefOr(z.string()),phone_number:nullOrUndefOr(z.string()),update_processor_customer:nullOrUndefOr(z.boolean())}),z.object({id:z.string(),email:nullOrUndefOr(z.string()),first_name:nullOrUndefOr(z.string()),last_name:nullOrUndefOr(z.string()),phone_number:nullOrUndefOr(z.string()),billing_email:nullOrUndefOr(z.string()),address:nullOrUndefOr(z.record(z.string(),z.any()))}),z.object({message:z.string()});const CheckoutStandardErrorResponse=z.object({error_code:z.string()});z.object({checkout_payment_method:CheckoutPaymentMethod,processor_specific_metadata:z.record(z.any()).optional(),payment_route_id:nullOrUndefOr(z.string())});const PreparePaymentFlowResponse=z.object({next_action_metadata:nullOrUndefOr(z.record(z.any()))});z.object({events:z.array(z.object({event_name:z.string(),device_token:z.string(),properties:z.record(z.any()).optional(),context_properties:z.record(z.any()).optional()}))}),z.any().optional(),z.object({device_token:z.string()});const SetUserDeviceTokenResponse=z.object({}),sum=n=>n.reduce((r,o)=>r+o,0),ANSI_BACKGROUND_OFFSET=10,wrapAnsi16=(n=0)=>r=>`\x1B[${r+n}m`,wrapAnsi256=(n=0)=>r=>`\x1B[${38+n};5;${r}m`,wrapAnsi16m=(n=0)=>(r,o,u)=>`\x1B[${38+n};2;${r};${o};${u}m`,styles$2={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(styles$2.modifier);const foregroundColorNames=Object.keys(styles$2.color),backgroundColorNames=Object.keys(styles$2.bgColor);[...foregroundColorNames,...backgroundColorNames];function assembleStyles(){const n=new Map;for(const[r,o]of Object.entries(styles$2)){for(const[u,a]of Object.entries(o))styles$2[u]={open:`\x1B[${a[0]}m`,close:`\x1B[${a[1]}m`},o[u]=styles$2[u],n.set(a[0],a[1]);Object.defineProperty(styles$2,r,{value:o,enumerable:!1})}return Object.defineProperty(styles$2,"codes",{value:n,enumerable:!1}),styles$2.color.close="\x1B[39m",styles$2.bgColor.close="\x1B[49m",styles$2.color.ansi=wrapAnsi16(),styles$2.color.ansi256=wrapAnsi256(),styles$2.color.ansi16m=wrapAnsi16m(),styles$2.bgColor.ansi=wrapAnsi16(ANSI_BACKGROUND_OFFSET),styles$2.bgColor.ansi256=wrapAnsi256(ANSI_BACKGROUND_OFFSET),styles$2.bgColor.ansi16m=wrapAnsi16m(ANSI_BACKGROUND_OFFSET),Object.defineProperties(styles$2,{rgbToAnsi256:{value(r,o,u){return r===o&&o===u?r<8?16:r>248?231:Math.round((r-8)/247*24)+232:16+36*Math.round(r/255*5)+6*Math.round(o/255*5)+Math.round(u/255*5)},enumerable:!1},hexToRgb:{value(r){const o=/[a-f\d]{6}|[a-f\d]{3}/i.exec(r.toString(16));if(!o)return[0,0,0];let[u]=o;u.length===3&&(u=[...u].map(s=>s+s).join(""));const a=Number.parseInt(u,16);return[a>>16&255,a>>8&255,a&255]},enumerable:!1},hexToAnsi256:{value:r=>styles$2.rgbToAnsi256(...styles$2.hexToRgb(r)),enumerable:!1},ansi256ToAnsi:{value(r){if(r<8)return 30+r;if(r<16)return 90+(r-8);let o,u,a;if(r>=232)o=((r-232)*10+8)/255,u=o,a=o;else{r-=16;const e=r%36;o=Math.floor(r/36)/5,u=Math.floor(e/6)/5,a=e%6/5}const s=Math.max(o,u,a)*2;if(s===0)return 30;let t=30+(Math.round(a)<<2|Math.round(u)<<1|Math.round(o));return s===2&&(t+=60),t},enumerable:!1},rgbToAnsi:{value:(r,o,u)=>styles$2.ansi256ToAnsi(styles$2.rgbToAnsi256(r,o,u)),enumerable:!1},hexToAnsi:{value:r=>styles$2.ansi256ToAnsi(styles$2.hexToAnsi256(r)),enumerable:!1}}),styles$2}const ansiStyles=assembleStyles(),level=(()=>{if(navigator.userAgentData){const n=navigator.userAgentData.brands.find(({brand:r})=>r==="Chromium");if(n&&n.version>93)return 3}return/\b(Chrome|Chromium)\//.test(navigator.userAgent)?1:0})(),colorSupport=level!==0&&{level,hasBasic:!0,has256:level>=2,has16m:level>=3},supportsColor={stdout:colorSupport,stderr:colorSupport};function stringReplaceAll(n,r,o){let u=n.indexOf(r);if(u===-1)return n;const a=r.length;let s=0,t="";do t+=n.slice(s,u)+r+o,s=u+a,u=n.indexOf(r,s);while(u!==-1);return t+=n.slice(s),t}function stringEncaseCRLFWithFirstIndex(n,r,o,u){let a=0,s="";do{const t=n[u-1]==="\r";s+=n.slice(a,t?u-1:u)+r+(t?`\r
6
+ ${n.message}`),n.message)}else return getHumanFriendlyMessage(n.message);if(typeof n=="object")try{return JSON.stringify(n)}catch(r){return r+""}else return n+""},makeCallbackSafe=(n,r,o)=>(...u)=>{try{return r(...u)}catch(a){o(`[form] Error running callback (${n}):`,a);return}};var SubmitMethods=(n=>(n.pockytPaypal="pockyt-paypal",n.airwallexGooglePay="airwallex-google-pay",n.airwallexApplePay="airwallex-apple-pay",n.authorizenetGooglePay="authorizenet-google-pay",n.authorizenetApplePay="authorizenet-apple-pay",n.loopCrypto="loop-crypto",n.paypal="paypal",n))(SubmitMethods||{});const SubmitMethod=z.nativeEnum(SubmitMethods),RequiredString=z.string().trim().min(1,{message:"Cannot be blank"}),OptionalString=z.string().trim().optional(),nullOrUndefOr$1=n=>z.nullable(n.optional());var FieldName=(n=>(n.FIRST_NAME="firstName",n.LAST_NAME="lastName",n.EMAIL="email",n.ZIP_CODE="zipCode",n.CITY="city",n.STATE="state",n.COUNTRY="country",n.ADDRESS="address",n.PHONE="phone",n.PROMOTION_CODE="promotionCode",n))(FieldName||{});const FieldNameEnum=z.nativeEnum(FieldName);var PrivateFieldName=(n=>(n.CARD_NUMBER="cardNumber",n.CARD_EXPIRY="cardExpiry",n.CARD_CVC="cardCvc",n))(PrivateFieldName||{});const PrivateFieldNameEnum=z.nativeEnum(PrivateFieldName),AllFieldNames=z.union([FieldNameEnum,PrivateFieldNameEnum]);var ElementTypeEnum=(n=>(n.CARD="card",n.CARD_NUMBER="card-number",n.CARD_EXPIRY="card-expiry",n.CARD_CVC="card-cvc",n.CDE_BRIDGE="cde-bridge",n))(ElementTypeEnum||{});const ElementType=z.nativeEnum(ElementTypeEnum),CheckoutPaymentMethod$1=z.object({provider:z.string(),processor_name:nullOrUndefOr$1(z.string()),metadata:nullOrUndefOr$1(z.record(z.string(),z.any()))}),PaymentMethodMinimal=z.object({id:z.string()});z.object({cardNumber:OptionalString,expiry:OptionalString,cvc:OptionalString}),z.object({backgroundColor:OptionalString,color:OptionalString,fontFamily:OptionalString,fontSize:OptionalString,fontWeight:OptionalString,margin:OptionalString,padding:OptionalString,letterSpacing:OptionalString,lineHeight:OptionalString,hideIcon:OptionalString});const EventType=z.enum(["LAYOUT","LOADED","BLUR","FOCUS","CHANGE","TOKENIZE_STARTED","CHECKOUT_STARTED","PAYMENT_FLOW_STARTED","TOKENIZE_SUCCESS","CHECKOUT_SUCCESS","LOAD_ERROR","VALIDATION_ERROR","TOKENIZE_ERROR","CHECKOUT_ERROR","SETUP_PAYMENT_METHOD_SUCCESS","TOKENIZE","CHECKOUT","START_PAYMENT_FLOW"]),GenericEventType=EventType.extract(["TOKENIZE_STARTED","CHECKOUT_STARTED"]),GenericEventPayload=z.object({type:GenericEventType}),InputEventType=EventType.extract(["BLUR","FOCUS","CHANGE"]),InputEventPayload=z.object({type:InputEventType,elementType:PrivateFieldNameEnum,errors:z.array(z.string()).optional(),obfuscatedValue:z.string().optional()}),ErrorEventType=EventType.extract(["LOAD_ERROR","TOKENIZE_ERROR","CHECKOUT_ERROR"]),ErrorEventPayload=z.object({type:ErrorEventType,message:RequiredString,headers:z.record(z.string(),z.string()).optional()}),ValidationErrorEventType=EventType.extract(["VALIDATION_ERROR"]),ValidationErrorEventPayload=z.object({type:ValidationErrorEventType,elementType:AllFieldNames,errors:z.array(z.string())}),LayoutEventPayload=z.object({type:z.literal(EventType.enum.LAYOUT),height:RequiredString}),LoadedEventPayload=z.object({type:z.literal(EventType.enum.LOADED),sessionId:RequiredString,totalAmountAtoms:z.number(),currency:OptionalString,checkoutPaymentMethods:z.array(CheckoutPaymentMethod$1)}),PaymentFlowStartedEventPayload=z.object({type:z.literal(EventType.enum.PAYMENT_FLOW_STARTED),nextActionMetadata:z.record(z.string(),z.any()),paymentFlowMetadata:z.any().optional(),startPFMetadata:z.optional(z.record(z.string(),z.any()))}),SetupCheckoutSuccessEventPayload=z.object({type:z.literal(EventType.enum.SETUP_PAYMENT_METHOD_SUCCESS),paymentMethodId:z.string()}),RequiredFormFields=z.object({firstName:RequiredString,lastName:RequiredString,email:RequiredString,zipCode:RequiredString,country:RequiredString,promotionCode:OptionalString}),PRFormFields=z.object({firstName:OptionalString,lastName:OptionalString,email:RequiredString,zipCode:RequiredString,country:RequiredString,promotionCode:OptionalString,address:OptionalString,city:OptionalString,state:OptionalString}),SubmitEventType=EventType.extract(["TOKENIZE","CHECKOUT","START_PAYMENT_FLOW"]),SubmitEventPayload=z.object({type:SubmitEventType,sessionId:RequiredString,checkoutPaymentMethod:CheckoutPaymentMethod$1,paymentFlowMetadata:z.any().optional(),doNotUseLegacyCCFlow:z.boolean().optional(),existingCCPMId:OptionalString,paymentRouteId:OptionalString}).extend(RequiredFormFields.shape),TokenizeSuccessEventPayload=z.object({type:z.literal(EventType.enum.TOKENIZE_SUCCESS),isReadyForCheckout:z.boolean()}),CheckoutSuccessEventPayload=z.object({type:z.literal(EventType.enum.CHECKOUT_SUCCESS),invoiceUrls:z.array(z.string()),subscriptionIds:z.array(z.string()),customerId:z.string()}),EventPayload=z.discriminatedUnion("type",[GenericEventPayload,InputEventPayload,ErrorEventPayload,ValidationErrorEventPayload,LayoutEventPayload,LoadedEventPayload,SubmitEventPayload,TokenizeSuccessEventPayload,CheckoutSuccessEventPayload,PaymentFlowStartedEventPayload,SetupCheckoutSuccessEventPayload]),ElementEvent=z.object({payload:EventPayload,nonce:RequiredString,formId:RequiredString,elementId:RequiredString});z.object({amountAtom:z.number(),currency:RequiredString}),z.enum(["apple_pay","google_pay"]),z.object({secure_token:z.string(),promotion_code:z.string().optional()}),z.object({secure_token:z.string(),existing_cc_pm_id:nullOrUndefOr$1(z.string()),their_pm_id:nullOrUndefOr$1(z.string()),checkout_attempt_id:nullOrUndefOr$1(z.string()),processor_specific_metadata:nullOrUndefOr$1(z.record(z.string(),z.any()))});const CheckoutSuccessResponse=z.object({invoice_urls:z.array(z.string()),subscription_ids:z.array(z.string()),customer_id:z.string(),processors_used:nullOrUndefOr$1(z.array(z.string()))}),FieldValidationError=z.object({elementType:z.string(),errors:z.array(z.string())});z.object({session_id:z.string()});const TokenizeCardErrorResponse=z.object({success:z.literal(!1),error_type:z.literal("validation_error"),errors:z.array(FieldValidationError)}),TokenizeCardResponse=z.discriminatedUnion("success",[z.object({success:z.literal(!0)}),TokenizeCardErrorResponse]);z.object({session_id:z.string(),checkout_payment_method:CheckoutPaymentMethod$1,non_cde_form_fields:RequiredFormFields,do_not_use_legacy_cc_flow:z.boolean().optional(),existing_cc_pm_id:nullOrUndefOr$1(z.string()),extra_metadata:z.record(z.string(),z.any()),payment_route_id:nullOrUndefOr$1(z.string()),customer_language:nullOrUndefOr$1(z.string())}),z.object({session_id:z.string(),checkout_payment_method:CheckoutPaymentMethod$1,non_cde_form_fields:RequiredFormFields,extra_metadata:z.record(z.string(),z.any()).optional(),payment_route_id:nullOrUndefOr$1(z.string()),customer_language:nullOrUndefOr$1(z.string())});var ThreeDSStatus=(n=>(n.SUCCESS="success",n.FAILURE="failure",n.CANCELLED="cancelled",n))(ThreeDSStatus||{});const Ping3DSStatusResponse=z.object({status:z.enum(["success","failure","cancelled"]),href:z.string().optional().nullable()});z.object({href:z.string().optional().nullable()});const Common3DSNextActionMetadata=z.object({type:z.string(),redirect_url:z.string(),initial_intent_id:z.string(),consent_id:z.string(),their_pm_id:z.string().optional()}),CommonNextActionMetadata=z.object({type:z.string(),redirect_url:nullOrUndefOr$1(z.string()),initial_intent_id:nullOrUndefOr$1(z.string()),consent_id:nullOrUndefOr$1(z.string()),their_pm_id:nullOrUndefOr$1(z.string()),payment_session:nullOrUndefOr$1(z.record(z.string(),z.any()))}),CheckIfPopupWindowVerifiedResponse=z.discriminatedUnion("present",[z.object({present:z.literal(!0),href:z.string()}),z.object({present:z.literal(!1)})]),ConfirmPaymentFlowResponse=z.object({payment_methods:z.array(PaymentMethodMinimal),pay_first_success_response:nullOrUndefOr$1(CheckoutSuccessResponse),required_user_actions:nullOrUndefOr$1(z.array(CommonNextActionMetadata))}),extractIssuesPerField=n=>{const r={};return Object.entries(n).forEach(([o,u])=>{try{const a=FieldNameEnum.parse(o);Array.isArray(u)?r[a]=u:Array.isArray(u._errors)&&(r[a]=u._errors)}catch{return}}),r},Stripe3DSNextActionMetadata=z.object({stripe_pk:z.string(),client_secret:z.string(),stripe_pm_id:z.string()}),PaymentRequestNextActionMetadata=z.object({type:z.string(),client_secret:z.string(),stripe_pk:z.string()}),ourCurrencyToTheirs={usd:"usd",brl:"brl"},getLoadedStripe=async n=>{for(let o=0;o<10;o++)isStripeJsPresent()||await sleep(500);if(!isStripeJsPresent())throw console.log("Stripe JS not found."),new Error("Stripe JS not found.");return new Stripe(n)},createStripeElements=async(n,r)=>{const o=await getLoadedStripe(n);return{elements:o.elements(r),stripe:o}},createStripePaymentRequest=async(n,r,o,u,a)=>{const s=await getLoadedStripe(n),t=ourCurrencyToTheirs[o.toLowerCase().trim()];return s.paymentRequest({country:"US",currency:t,total:{label:"Total",amount:r,pending:u},requestPayerName:!0,requestPayerEmail:!0,disableWallets:[]})},sleep=n=>new Promise(r=>{setTimeout(r,n)}),isStripeJsPresent=()=>"Stripe"in window,waitForUserToAddPaymentMethod=async n=>new Promise((r,o)=>{try{n.on("paymentmethod",async u=>{console.log("paymentmethod EVT:: ",u),r(u)}),n.on("token",async u=>{console.log("token EVT:: ",u)}),n.on("cancel",()=>{o(new Error("Payment cancelled, please click Submit again to pay"))})}catch(u){o(u)}}),confirmStripePrPM=async(n,r)=>{if(!n.stripe_pk||!n.client_secret)throw new Error(`Invalid next action metadata format: ${JSON.stringify(n)}`);const u=await(await getLoadedStripe(n.stripe_pk)).confirmCardSetup(n.client_secret,{payment_method:r.paymentMethod.id});if(u.error)throw r.complete("fail"),new Error(`Payment failed: ${u.error.message??"unknown"}`);return r.complete("success"),u},launchStripe3DSDialogFlow=async n=>{var a,s,t,e;const o=await(await getLoadedStripe(n.stripe_pk)).confirmCardSetup(n.client_secret,{payment_method:n.stripe_pm_id}),u=(a=o.setupIntent)==null?void 0:a.status;if(u==="succeeded")console.log("[3DS] CONFIRMING PM:",n.stripe_pm_id),console.log("[3DS] Setup intent created:",o.setupIntent);else throw u==="canceled"?new Error("Payment cancelled, please click Submit again to pay"):new Error(`${((s=o.error)==null?void 0:s.message)??((e=(t=o.setupIntent)==null?void 0:t.last_setup_error)==null?void 0:e.message)??"Payment failed, please click submit again to pay."}`)},convertStylesToQueryString=n=>JSON.stringify(n);for(var byteToHex=[],i=0;i<256;++i)byteToHex.push((i+256).toString(16).slice(1));function unsafeStringify(n,r=0){return(byteToHex[n[r+0]]+byteToHex[n[r+1]]+byteToHex[n[r+2]]+byteToHex[n[r+3]]+"-"+byteToHex[n[r+4]]+byteToHex[n[r+5]]+"-"+byteToHex[n[r+6]]+byteToHex[n[r+7]]+"-"+byteToHex[n[r+8]]+byteToHex[n[r+9]]+"-"+byteToHex[n[r+10]]+byteToHex[n[r+11]]+byteToHex[n[r+12]]+byteToHex[n[r+13]]+byteToHex[n[r+14]]+byteToHex[n[r+15]]).toLowerCase()}var getRandomValues,rnds8=new Uint8Array(16);function rng(){if(!getRandomValues&&(getRandomValues=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!getRandomValues))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return getRandomValues(rnds8)}var randomUUID=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto);const native={randomUUID};function v4(n,r,o){if(native.randomUUID&&!r&&!n)return native.randomUUID();n=n||{};var u=n.random||(n.rng||rng)();return u[6]=u[6]&15|64,u[8]=u[8]&63|128,unsafeStringify(u)}const createInputsDictFromForm=(n,r)=>Array.from(n.querySelectorAll("[data-opid]")??[]).reduce((a,s)=>{const t=s.getAttribute("data-opid");return t?{...a,[t]:s.value}:a},{}),parseEventPayload=n=>{try{return ElementEvent.parse(n)}catch(r){throw console.error("Error parsing event payload:",n,r),r}};var MessageType;(function(n){n.Call="call",n.Reply="reply",n.Syn="syn",n.SynAck="synAck",n.Ack="ack"})(MessageType||(MessageType={}));var Resolution;(function(n){n.Fulfilled="fulfilled",n.Rejected="rejected"})(Resolution||(Resolution={}));var ErrorCode;(function(n){n.ConnectionDestroyed="ConnectionDestroyed",n.ConnectionTimeout="ConnectionTimeout",n.NoIframeSrc="NoIframeSrc"})(ErrorCode||(ErrorCode={}));var NativeErrorName;(function(n){n.DataCloneError="DataCloneError"})(NativeErrorName||(NativeErrorName={}));var NativeEventType;(function(n){n.Message="message"})(NativeEventType||(NativeEventType={}));const createDestructor=(n,r)=>{const o=[];let u=!1;return{destroy(a){u||(u=!0,r(`${n}: Destroying connection`),o.forEach(s=>{s(a)}))},onDestroy(a){u?a():o.push(a)}}},createLogger=n=>(...r)=>{n&&console.log("[Penpal]",...r)},DEFAULT_PORT_BY_PROTOCOL={"http:":"80","https:":"443"},URL_REGEX=/^(https?:)?\/\/([^/:]+)?(:(\d+))?/,opaqueOriginSchemes=["file:","data:"],getOriginFromSrc=n=>{if(n&&opaqueOriginSchemes.find(e=>n.startsWith(e)))return"null";const r=document.location,o=URL_REGEX.exec(n);let u,a,s;o?(u=o[1]?o[1]:r.protocol,a=o[2],s=o[4]):(u=r.protocol,a=r.hostname,s=r.port);const t=s&&s!==DEFAULT_PORT_BY_PROTOCOL[u]?`:${s}`:"";return`${u}//${a}${t}`},serializeError=({name:n,message:r,stack:o})=>({name:n,message:r,stack:o}),deserializeError=n=>{const r=new Error;return Object.keys(n).forEach(o=>r[o]=n[o]),r},connectCallReceiver=(n,r,o)=>{const{localName:u,local:a,remote:s,originForSending:t,originForReceiving:e}=n;let l=!1;const c=_=>{if(_.source!==s||_.data.penpal!==MessageType.Call)return;if(e!=="*"&&_.origin!==e){o(`${u} received message from origin ${_.origin} which did not match expected origin ${e}`);return}const d=_.data,{methodName:E,args:p,id:f}=d;o(`${u}: Received ${E}() call`);const v=g=>O=>{if(o(`${u}: Sending ${E}() reply`),l){o(`${u}: Unable to send ${E}() reply due to destroyed connection`);return}const m={penpal:MessageType.Reply,id:f,resolution:g,returnValue:O};g===Resolution.Rejected&&O instanceof Error&&(m.returnValue=serializeError(O),m.returnValueIsError=!0);try{s.postMessage(m,t)}catch(h){if(h.name===NativeErrorName.DataCloneError){const M={penpal:MessageType.Reply,id:f,resolution:Resolution.Rejected,returnValue:serializeError(h),returnValueIsError:!0};s.postMessage(M,t)}throw h}};new Promise(g=>g(r[E].apply(r,p))).then(v(Resolution.Fulfilled),v(Resolution.Rejected))};return a.addEventListener(NativeEventType.Message,c),()=>{l=!0,a.removeEventListener(NativeEventType.Message,c)}};let id=0;const generateId=()=>++id,KEY_PATH_DELIMITER=".",keyPathToSegments=n=>n?n.split(KEY_PATH_DELIMITER):[],segmentsToKeyPath=n=>n.join(KEY_PATH_DELIMITER),createKeyPath=(n,r)=>{const o=keyPathToSegments(r||"");return o.push(n),segmentsToKeyPath(o)},setAtKeyPath=(n,r,o)=>{const u=keyPathToSegments(r);return u.reduce((a,s,t)=>(typeof a[s]>"u"&&(a[s]={}),t===u.length-1&&(a[s]=o),a[s]),n),n},serializeMethods=(n,r)=>{const o={};return Object.keys(n).forEach(u=>{const a=n[u],s=createKeyPath(u,r);typeof a=="object"&&Object.assign(o,serializeMethods(a,s)),typeof a=="function"&&(o[s]=a)}),o},deserializeMethods=n=>{const r={};for(const o in n)setAtKeyPath(r,o,n[o]);return r},connectCallSender=(n,r,o,u,a)=>{const{localName:s,local:t,remote:e,originForSending:l,originForReceiving:c}=r;let _=!1;a(`${s}: Connecting call sender`);const d=p=>(...f)=>{a(`${s}: Sending ${p}() call`);let v;try{e.closed&&(v=!0)}catch{v=!0}if(v&&u(),_){const g=new Error(`Unable to send ${p}() call due to destroyed connection`);throw g.code=ErrorCode.ConnectionDestroyed,g}return new Promise((g,O)=>{const m=generateId(),h=b=>{if(b.source!==e||b.data.penpal!==MessageType.Reply||b.data.id!==m)return;if(c!=="*"&&b.origin!==c){a(`${s} received message from origin ${b.origin} which did not match expected origin ${c}`);return}const V=b.data;a(`${s}: Received ${p}() reply`),t.removeEventListener(NativeEventType.Message,h);let B=V.returnValue;V.returnValueIsError&&(B=deserializeError(B)),(V.resolution===Resolution.Fulfilled?g:O)(B)};t.addEventListener(NativeEventType.Message,h);const M={penpal:MessageType.Call,id:m,methodName:p,args:f};e.postMessage(M,l)})},E=o.reduce((p,f)=>(p[f]=d(f),p),{});return Object.assign(n,deserializeMethods(E)),()=>{_=!0}},handleAckMessageFactory=(n,r,o,u,a)=>{const{destroy:s,onDestroy:t}=u;let e,l;const c={};return _=>{if(r!=="*"&&_.origin!==r){a(`Parent: Handshake - Received ACK message from origin ${_.origin} which did not match expected origin ${r}`);return}a("Parent: Handshake - Received ACK");const d={localName:"Parent",local:window,remote:_.source,originForSending:o,originForReceiving:r};e&&e(),e=connectCallReceiver(d,n,a),t(e),l&&l.forEach(p=>{delete c[p]}),l=_.data.methodNames;const E=connectCallSender(c,d,l,s,a);return t(E),c}},handleSynMessageFactory=(n,r,o,u)=>a=>{if(!a.source)return;if(o!=="*"&&a.origin!==o){n(`Parent: Handshake - Received SYN message from origin ${a.origin} which did not match expected origin ${o}`);return}n("Parent: Handshake - Received SYN, responding with SYN-ACK");const s={penpal:MessageType.SynAck,methodNames:Object.keys(r)};a.source.postMessage(s,u)},CHECK_IFRAME_IN_DOC_INTERVAL=6e4,monitorIframeRemoval=(n,r)=>{const{destroy:o,onDestroy:u}=r,a=setInterval(()=>{n.isConnected||(clearInterval(a),o())},CHECK_IFRAME_IN_DOC_INTERVAL);u(()=>{clearInterval(a)})},startConnectionTimeout=(n,r)=>{let o;return n!==void 0&&(o=window.setTimeout(()=>{const u=new Error(`Connection timed out after ${n}ms`);u.code=ErrorCode.ConnectionTimeout,r(u)},n)),()=>{clearTimeout(o)}},validateIframeHasSrcOrSrcDoc=n=>{if(!n.src&&!n.srcdoc){const r=new Error("Iframe must have src or srcdoc property defined.");throw r.code=ErrorCode.NoIframeSrc,r}},connectToChild=n=>{let{iframe:r,methods:o={},childOrigin:u,timeout:a,debug:s=!1}=n;const t=createLogger(s),e=createDestructor("Parent",t),{onDestroy:l,destroy:c}=e;u||(validateIframeHasSrcOrSrcDoc(r),u=getOriginFromSrc(r.src));const _=u==="null"?"*":u,d=serializeMethods(o),E=handleSynMessageFactory(t,d,u,_),p=handleAckMessageFactory(d,u,_,e,t);return{promise:new Promise((v,g)=>{const O=startConnectionTimeout(a,c),m=h=>{if(!(h.source!==r.contentWindow||!h.data)){if(h.data.penpal===MessageType.Syn){E(h);return}if(h.data.penpal===MessageType.Ack){const M=p(h);M&&(O(),v(M));return}}};window.addEventListener(NativeEventType.Message,m),t("Parent: Awaiting handshake"),monitorIframeRemoval(r,e),l(h=>{window.removeEventListener(NativeEventType.Message,m),h&&g(h)})}),destroy(){c()}}};var _globalThis$2=typeof globalThis=="object"?globalThis:typeof self=="object"?self:typeof window=="object"?window:typeof global=="object"?global:{},VERSION$3="1.9.0",re=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function _makeCompatibilityCheck(n){var r=new Set([n]),o=new Set,u=n.match(re);if(!u)return function(){return!1};var a={major:+u[1],minor:+u[2],patch:+u[3],prerelease:u[4]};if(a.prerelease!=null)return function(l){return l===n};function s(e){return o.add(e),!1}function t(e){return r.add(e),!0}return function(l){if(r.has(l))return!0;if(o.has(l))return!1;var c=l.match(re);if(!c)return s(l);var _={major:+c[1],minor:+c[2],patch:+c[3],prerelease:c[4]};return _.prerelease!=null||a.major!==_.major?s(l):a.major===0?a.minor===_.minor&&a.patch<=_.patch?t(l):s(l):a.minor<=_.minor?t(l):s(l)}}var isCompatible=_makeCompatibilityCheck(VERSION$3),major=VERSION$3.split(".")[0],GLOBAL_OPENTELEMETRY_API_KEY=Symbol.for("opentelemetry.js.api."+major),_global$2=_globalThis$2;function registerGlobal(n,r,o,u){var a;u===void 0&&(u=!1);var s=_global$2[GLOBAL_OPENTELEMETRY_API_KEY]=(a=_global$2[GLOBAL_OPENTELEMETRY_API_KEY])!==null&&a!==void 0?a:{version:VERSION$3};if(!u&&s[n]){var t=new Error("@opentelemetry/api: Attempted duplicate registration of API: "+n);return o.error(t.stack||t.message),!1}if(s.version!==VERSION$3){var t=new Error("@opentelemetry/api: Registration of version v"+s.version+" for "+n+" does not match previously registered API v"+VERSION$3);return o.error(t.stack||t.message),!1}return s[n]=r,o.debug("@opentelemetry/api: Registered a global for "+n+" v"+VERSION$3+"."),!0}function getGlobal(n){var r,o,u=(r=_global$2[GLOBAL_OPENTELEMETRY_API_KEY])===null||r===void 0?void 0:r.version;if(!(!u||!isCompatible(u)))return(o=_global$2[GLOBAL_OPENTELEMETRY_API_KEY])===null||o===void 0?void 0:o[n]}function unregisterGlobal(n,r){r.debug("@opentelemetry/api: Unregistering a global for "+n+" v"+VERSION$3+".");var o=_global$2[GLOBAL_OPENTELEMETRY_API_KEY];o&&delete o[n]}var __read$m=function(n,r){var o=typeof Symbol=="function"&&n[Symbol.iterator];if(!o)return n;var u=o.call(n),a,s=[],t;try{for(;(r===void 0||r-- >0)&&!(a=u.next()).done;)s.push(a.value)}catch(e){t={error:e}}finally{try{a&&!a.done&&(o=u.return)&&o.call(u)}finally{if(t)throw t.error}}return s},__spreadArray$b=function(n,r,o){if(o||arguments.length===2)for(var u=0,a=r.length,s;u<a;u++)(s||!(u in r))&&(s||(s=Array.prototype.slice.call(r,0,u)),s[u]=r[u]);return n.concat(s||Array.prototype.slice.call(r))},DiagComponentLogger=function(){function n(r){this._namespace=r.namespace||"DiagComponentLogger"}return n.prototype.debug=function(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];return logProxy("debug",this._namespace,r)},n.prototype.error=function(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];return logProxy("error",this._namespace,r)},n.prototype.info=function(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];return logProxy("info",this._namespace,r)},n.prototype.warn=function(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];return logProxy("warn",this._namespace,r)},n.prototype.verbose=function(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];return logProxy("verbose",this._namespace,r)},n}();function logProxy(n,r,o){var u=getGlobal("diag");if(u)return o.unshift(r),u[n].apply(u,__spreadArray$b([],__read$m(o),!1))}var DiagLogLevel;(function(n){n[n.NONE=0]="NONE",n[n.ERROR=30]="ERROR",n[n.WARN=50]="WARN",n[n.INFO=60]="INFO",n[n.DEBUG=70]="DEBUG",n[n.VERBOSE=80]="VERBOSE",n[n.ALL=9999]="ALL"})(DiagLogLevel||(DiagLogLevel={}));function createLogLevelDiagLogger(n,r){n<DiagLogLevel.NONE?n=DiagLogLevel.NONE:n>DiagLogLevel.ALL&&(n=DiagLogLevel.ALL),r=r||{};function o(u,a){var s=r[u];return typeof s=="function"&&n>=a?s.bind(r):function(){}}return{error:o("error",DiagLogLevel.ERROR),warn:o("warn",DiagLogLevel.WARN),info:o("info",DiagLogLevel.INFO),debug:o("debug",DiagLogLevel.DEBUG),verbose:o("verbose",DiagLogLevel.VERBOSE)}}var __read$l=function(n,r){var o=typeof Symbol=="function"&&n[Symbol.iterator];if(!o)return n;var u=o.call(n),a,s=[],t;try{for(;(r===void 0||r-- >0)&&!(a=u.next()).done;)s.push(a.value)}catch(e){t={error:e}}finally{try{a&&!a.done&&(o=u.return)&&o.call(u)}finally{if(t)throw t.error}}return s},__spreadArray$a=function(n,r,o){if(o||arguments.length===2)for(var u=0,a=r.length,s;u<a;u++)(s||!(u in r))&&(s||(s=Array.prototype.slice.call(r,0,u)),s[u]=r[u]);return n.concat(s||Array.prototype.slice.call(r))},API_NAME$4="diag",DiagAPI=function(){function n(){function r(a){return function(){for(var s=[],t=0;t<arguments.length;t++)s[t]=arguments[t];var e=getGlobal("diag");if(e)return e[a].apply(e,__spreadArray$a([],__read$l(s),!1))}}var o=this,u=function(a,s){var t,e,l;if(s===void 0&&(s={logLevel:DiagLogLevel.INFO}),a===o){var c=new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return o.error((t=c.stack)!==null&&t!==void 0?t:c.message),!1}typeof s=="number"&&(s={logLevel:s});var _=getGlobal("diag"),d=createLogLevelDiagLogger((e=s.logLevel)!==null&&e!==void 0?e:DiagLogLevel.INFO,a);if(_&&!s.suppressOverrideMessage){var E=(l=new Error().stack)!==null&&l!==void 0?l:"<failed to generate stacktrace>";_.warn("Current logger will be overwritten from "+E),d.warn("Current logger will overwrite one already registered from "+E)}return registerGlobal("diag",d,o,!0)};o.setLogger=u,o.disable=function(){unregisterGlobal(API_NAME$4,o)},o.createComponentLogger=function(a){return new DiagComponentLogger(a)},o.verbose=r("verbose"),o.debug=r("debug"),o.info=r("info"),o.warn=r("warn"),o.error=r("error")}return n.instance=function(){return this._instance||(this._instance=new n),this._instance},n}(),__read$k=function(n,r){var o=typeof Symbol=="function"&&n[Symbol.iterator];if(!o)return n;var u=o.call(n),a,s=[],t;try{for(;(r===void 0||r-- >0)&&!(a=u.next()).done;)s.push(a.value)}catch(e){t={error:e}}finally{try{a&&!a.done&&(o=u.return)&&o.call(u)}finally{if(t)throw t.error}}return s},__values$a=function(n){var r=typeof Symbol=="function"&&Symbol.iterator,o=r&&n[r],u=0;if(o)return o.call(n);if(n&&typeof n.length=="number")return{next:function(){return n&&u>=n.length&&(n=void 0),{value:n&&n[u++],done:!n}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")},BaggageImpl=function(){function n(r){this._entries=r?new Map(r):new Map}return n.prototype.getEntry=function(r){var o=this._entries.get(r);if(o)return Object.assign({},o)},n.prototype.getAllEntries=function(){return Array.from(this._entries.entries()).map(function(r){var o=__read$k(r,2),u=o[0],a=o[1];return[u,a]})},n.prototype.setEntry=function(r,o){var u=new n(this._entries);return u._entries.set(r,o),u},n.prototype.removeEntry=function(r){var o=new n(this._entries);return o._entries.delete(r),o},n.prototype.removeEntries=function(){for(var r,o,u=[],a=0;a<arguments.length;a++)u[a]=arguments[a];var s=new n(this._entries);try{for(var t=__values$a(u),e=t.next();!e.done;e=t.next()){var l=e.value;s._entries.delete(l)}}catch(c){r={error:c}}finally{try{e&&!e.done&&(o=t.return)&&o.call(t)}finally{if(r)throw r.error}}return s},n.prototype.clear=function(){return new n},n}(),baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata"),diag$1=DiagAPI.instance();function createBaggage(n){return n===void 0&&(n={}),new BaggageImpl(new Map(Object.entries(n)))}function baggageEntryMetadataFromString(n){return typeof n!="string"&&(diag$1.error("Cannot create baggage metadata from unknown type: "+typeof n),n=""),{__TYPE__:baggageEntryMetadataSymbol,toString:function(){return n}}}function createContextKey(n){return Symbol.for(n)}var BaseContext=function(){function n(r){var o=this;o._currentContext=r?new Map(r):new Map,o.getValue=function(u){return o._currentContext.get(u)},o.setValue=function(u,a){var s=new n(o._currentContext);return s._currentContext.set(u,a),s},o.deleteValue=function(u){var a=new n(o._currentContext);return a._currentContext.delete(u),a}}return n}(),ROOT_CONTEXT=new BaseContext,consoleMap=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}],DiagConsoleLogger=function(){function n(){function r(u){return function(){for(var a=[],s=0;s<arguments.length;s++)a[s]=arguments[s];if(console){var t=console[u];if(typeof t!="function"&&(t=console.log),typeof t=="function")return t.apply(console,a)}}}for(var o=0;o<consoleMap.length;o++)this[consoleMap[o].n]=r(consoleMap[o].c)}return n}(),__extends$9=function(){var n=function(r,o){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(u,a){u.__proto__=a}||function(u,a){for(var s in a)Object.prototype.hasOwnProperty.call(a,s)&&(u[s]=a[s])},n(r,o)};return function(r,o){if(typeof o!="function"&&o!==null)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");n(r,o);function u(){this.constructor=r}r.prototype=o===null?Object.create(o):(u.prototype=o.prototype,new u)}}(),NoopMeter=function(){function n(){}return n.prototype.createGauge=function(r,o){return NOOP_GAUGE_METRIC},n.prototype.createHistogram=function(r,o){return NOOP_HISTOGRAM_METRIC},n.prototype.createCounter=function(r,o){return NOOP_COUNTER_METRIC},n.prototype.createUpDownCounter=function(r,o){return NOOP_UP_DOWN_COUNTER_METRIC},n.prototype.createObservableGauge=function(r,o){return NOOP_OBSERVABLE_GAUGE_METRIC},n.prototype.createObservableCounter=function(r,o){return NOOP_OBSERVABLE_COUNTER_METRIC},n.prototype.createObservableUpDownCounter=function(r,o){return NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC},n.prototype.addBatchObservableCallback=function(r,o){},n.prototype.removeBatchObservableCallback=function(r){},n}(),NoopMetric=function(){function n(){}return n}(),NoopCounterMetric=function(n){__extends$9(r,n);function r(){return n!==null&&n.apply(this,arguments)||this}return r.prototype.add=function(o,u){},r}(NoopMetric),NoopUpDownCounterMetric=function(n){__extends$9(r,n);function r(){return n!==null&&n.apply(this,arguments)||this}return r.prototype.add=function(o,u){},r}(NoopMetric),NoopGaugeMetric=function(n){__extends$9(r,n);function r(){return n!==null&&n.apply(this,arguments)||this}return r.prototype.record=function(o,u){},r}(NoopMetric),NoopHistogramMetric=function(n){__extends$9(r,n);function r(){return n!==null&&n.apply(this,arguments)||this}return r.prototype.record=function(o,u){},r}(NoopMetric),NoopObservableMetric=function(){function n(){}return n.prototype.addCallback=function(r){},n.prototype.removeCallback=function(r){},n}(),NoopObservableCounterMetric=function(n){__extends$9(r,n);function r(){return n!==null&&n.apply(this,arguments)||this}return r}(NoopObservableMetric),NoopObservableGaugeMetric=function(n){__extends$9(r,n);function r(){return n!==null&&n.apply(this,arguments)||this}return r}(NoopObservableMetric),NoopObservableUpDownCounterMetric=function(n){__extends$9(r,n);function r(){return n!==null&&n.apply(this,arguments)||this}return r}(NoopObservableMetric),NOOP_METER=new NoopMeter,NOOP_COUNTER_METRIC=new NoopCounterMetric,NOOP_GAUGE_METRIC=new NoopGaugeMetric,NOOP_HISTOGRAM_METRIC=new NoopHistogramMetric,NOOP_UP_DOWN_COUNTER_METRIC=new NoopUpDownCounterMetric,NOOP_OBSERVABLE_COUNTER_METRIC=new NoopObservableCounterMetric,NOOP_OBSERVABLE_GAUGE_METRIC=new NoopObservableGaugeMetric,NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new NoopObservableUpDownCounterMetric;function createNoopMeter(){return NOOP_METER}var ValueType;(function(n){n[n.INT=0]="INT",n[n.DOUBLE=1]="DOUBLE"})(ValueType||(ValueType={}));var defaultTextMapGetter={get:function(n,r){if(n!=null)return n[r]},keys:function(n){return n==null?[]:Object.keys(n)}},defaultTextMapSetter={set:function(n,r,o){n!=null&&(n[r]=o)}},__read$j=function(n,r){var o=typeof Symbol=="function"&&n[Symbol.iterator];if(!o)return n;var u=o.call(n),a,s=[],t;try{for(;(r===void 0||r-- >0)&&!(a=u.next()).done;)s.push(a.value)}catch(e){t={error:e}}finally{try{a&&!a.done&&(o=u.return)&&o.call(u)}finally{if(t)throw t.error}}return s},__spreadArray$9=function(n,r,o){if(o||arguments.length===2)for(var u=0,a=r.length,s;u<a;u++)(s||!(u in r))&&(s||(s=Array.prototype.slice.call(r,0,u)),s[u]=r[u]);return n.concat(s||Array.prototype.slice.call(r))},NoopContextManager=function(){function n(){}return n.prototype.active=function(){return ROOT_CONTEXT},n.prototype.with=function(r,o,u){for(var a=[],s=3;s<arguments.length;s++)a[s-3]=arguments[s];return o.call.apply(o,__spreadArray$9([u],__read$j(a),!1))},n.prototype.bind=function(r,o){return o},n.prototype.enable=function(){return this},n.prototype.disable=function(){return this},n}(),__read$i=function(n,r){var o=typeof Symbol=="function"&&n[Symbol.iterator];if(!o)return n;var u=o.call(n),a,s=[],t;try{for(;(r===void 0||r-- >0)&&!(a=u.next()).done;)s.push(a.value)}catch(e){t={error:e}}finally{try{a&&!a.done&&(o=u.return)&&o.call(u)}finally{if(t)throw t.error}}return s},__spreadArray$8=function(n,r,o){if(o||arguments.length===2)for(var u=0,a=r.length,s;u<a;u++)(s||!(u in r))&&(s||(s=Array.prototype.slice.call(r,0,u)),s[u]=r[u]);return n.concat(s||Array.prototype.slice.call(r))},API_NAME$3="context",NOOP_CONTEXT_MANAGER=new NoopContextManager,ContextAPI=function(){function n(){}return n.getInstance=function(){return this._instance||(this._instance=new n),this._instance},n.prototype.setGlobalContextManager=function(r){return registerGlobal(API_NAME$3,r,DiagAPI.instance())},n.prototype.active=function(){return this._getContextManager().active()},n.prototype.with=function(r,o,u){for(var a,s=[],t=3;t<arguments.length;t++)s[t-3]=arguments[t];return(a=this._getContextManager()).with.apply(a,__spreadArray$8([r,o,u],__read$i(s),!1))},n.prototype.bind=function(r,o){return this._getContextManager().bind(r,o)},n.prototype._getContextManager=function(){return getGlobal(API_NAME$3)||NOOP_CONTEXT_MANAGER},n.prototype.disable=function(){this._getContextManager().disable(),unregisterGlobal(API_NAME$3,DiagAPI.instance())},n}(),TraceFlags;(function(n){n[n.NONE=0]="NONE",n[n.SAMPLED=1]="SAMPLED"})(TraceFlags||(TraceFlags={}));var INVALID_SPANID="0000000000000000",INVALID_TRACEID="00000000000000000000000000000000",INVALID_SPAN_CONTEXT={traceId:INVALID_TRACEID,spanId:INVALID_SPANID,traceFlags:TraceFlags.NONE},NonRecordingSpan=function(){function n(r){r===void 0&&(r=INVALID_SPAN_CONTEXT),this._spanContext=r}return n.prototype.spanContext=function(){return this._spanContext},n.prototype.setAttribute=function(r,o){return this},n.prototype.setAttributes=function(r){return this},n.prototype.addEvent=function(r,o){return this},n.prototype.addLink=function(r){return this},n.prototype.addLinks=function(r){return this},n.prototype.setStatus=function(r){return this},n.prototype.updateName=function(r){return this},n.prototype.end=function(r){},n.prototype.isRecording=function(){return!1},n.prototype.recordException=function(r,o){},n}(),SPAN_KEY=createContextKey("OpenTelemetry Context Key SPAN");function getSpan(n){return n.getValue(SPAN_KEY)||void 0}function getActiveSpan(){return getSpan(ContextAPI.getInstance().active())}function setSpan(n,r){return n.setValue(SPAN_KEY,r)}function deleteSpan(n){return n.deleteValue(SPAN_KEY)}function setSpanContext(n,r){return setSpan(n,new NonRecordingSpan(r))}function getSpanContext(n){var r;return(r=getSpan(n))===null||r===void 0?void 0:r.spanContext()}var VALID_TRACEID_REGEX=/^([0-9a-f]{32})$/i,VALID_SPANID_REGEX=/^[0-9a-f]{16}$/i;function isValidTraceId(n){return VALID_TRACEID_REGEX.test(n)&&n!==INVALID_TRACEID}function isValidSpanId(n){return VALID_SPANID_REGEX.test(n)&&n!==INVALID_SPANID}function isSpanContextValid(n){return isValidTraceId(n.traceId)&&isValidSpanId(n.spanId)}function wrapSpanContext(n){return new NonRecordingSpan(n)}var contextApi=ContextAPI.getInstance(),NoopTracer=function(){function n(){}return n.prototype.startSpan=function(r,o,u){u===void 0&&(u=contextApi.active());var a=!!(o!=null&&o.root);if(a)return new NonRecordingSpan;var s=u&&getSpanContext(u);return isSpanContext(s)&&isSpanContextValid(s)?new NonRecordingSpan(s):new NonRecordingSpan},n.prototype.startActiveSpan=function(r,o,u,a){var s,t,e;if(!(arguments.length<2)){arguments.length===2?e=o:arguments.length===3?(s=o,e=u):(s=o,t=u,e=a);var l=t??contextApi.active(),c=this.startSpan(r,s,l),_=setSpan(l,c);return contextApi.with(_,e,void 0,c)}},n}();function isSpanContext(n){return typeof n=="object"&&typeof n.spanId=="string"&&typeof n.traceId=="string"&&typeof n.traceFlags=="number"}var NOOP_TRACER=new NoopTracer,ProxyTracer=function(){function n(r,o,u,a){this._provider=r,this.name=o,this.version=u,this.options=a}return n.prototype.startSpan=function(r,o,u){return this._getTracer().startSpan(r,o,u)},n.prototype.startActiveSpan=function(r,o,u,a){var s=this._getTracer();return Reflect.apply(s.startActiveSpan,s,arguments)},n.prototype._getTracer=function(){if(this._delegate)return this._delegate;var r=this._provider.getDelegateTracer(this.name,this.version,this.options);return r?(this._delegate=r,this._delegate):NOOP_TRACER},n}(),NoopTracerProvider=function(){function n(){}return n.prototype.getTracer=function(r,o,u){return new NoopTracer},n}(),NOOP_TRACER_PROVIDER=new NoopTracerProvider,ProxyTracerProvider=function(){function n(){}return n.prototype.getTracer=function(r,o,u){var a;return(a=this.getDelegateTracer(r,o,u))!==null&&a!==void 0?a:new ProxyTracer(this,r,o,u)},n.prototype.getDelegate=function(){var r;return(r=this._delegate)!==null&&r!==void 0?r:NOOP_TRACER_PROVIDER},n.prototype.setDelegate=function(r){this._delegate=r},n.prototype.getDelegateTracer=function(r,o,u){var a;return(a=this._delegate)===null||a===void 0?void 0:a.getTracer(r,o,u)},n}(),SamplingDecision$1;(function(n){n[n.NOT_RECORD=0]="NOT_RECORD",n[n.RECORD=1]="RECORD",n[n.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(SamplingDecision$1||(SamplingDecision$1={}));var SpanKind;(function(n){n[n.INTERNAL=0]="INTERNAL",n[n.SERVER=1]="SERVER",n[n.CLIENT=2]="CLIENT",n[n.PRODUCER=3]="PRODUCER",n[n.CONSUMER=4]="CONSUMER"})(SpanKind||(SpanKind={}));var SpanStatusCode;(function(n){n[n.UNSET=0]="UNSET",n[n.OK=1]="OK",n[n.ERROR=2]="ERROR"})(SpanStatusCode||(SpanStatusCode={}));var VALID_KEY_CHAR_RANGE$1="[_0-9a-z-*/]",VALID_KEY$1="[a-z]"+VALID_KEY_CHAR_RANGE$1+"{0,255}",VALID_VENDOR_KEY$1="[a-z0-9]"+VALID_KEY_CHAR_RANGE$1+"{0,240}@[a-z]"+VALID_KEY_CHAR_RANGE$1+"{0,13}",VALID_KEY_REGEX$1=new RegExp("^(?:"+VALID_KEY$1+"|"+VALID_VENDOR_KEY$1+")$"),VALID_VALUE_BASE_REGEX$1=/^[ -~]{0,255}[!-~]$/,INVALID_VALUE_COMMA_EQUAL_REGEX$1=/,|=/;function validateKey$1(n){return VALID_KEY_REGEX$1.test(n)}function validateValue$1(n){return VALID_VALUE_BASE_REGEX$1.test(n)&&!INVALID_VALUE_COMMA_EQUAL_REGEX$1.test(n)}var MAX_TRACE_STATE_ITEMS$1=32,MAX_TRACE_STATE_LEN$1=512,LIST_MEMBERS_SEPARATOR$1=",",LIST_MEMBER_KEY_VALUE_SPLITTER$1="=",TraceStateImpl=function(){function n(r){this._internalState=new Map,r&&this._parse(r)}return n.prototype.set=function(r,o){var u=this._clone();return u._internalState.has(r)&&u._internalState.delete(r),u._internalState.set(r,o),u},n.prototype.unset=function(r){var o=this._clone();return o._internalState.delete(r),o},n.prototype.get=function(r){return this._internalState.get(r)},n.prototype.serialize=function(){var r=this;return this._keys().reduce(function(o,u){return o.push(u+LIST_MEMBER_KEY_VALUE_SPLITTER$1+r.get(u)),o},[]).join(LIST_MEMBERS_SEPARATOR$1)},n.prototype._parse=function(r){r.length>MAX_TRACE_STATE_LEN$1||(this._internalState=r.split(LIST_MEMBERS_SEPARATOR$1).reverse().reduce(function(o,u){var a=u.trim(),s=a.indexOf(LIST_MEMBER_KEY_VALUE_SPLITTER$1);if(s!==-1){var t=a.slice(0,s),e=a.slice(s+1,u.length);validateKey$1(t)&&validateValue$1(e)&&o.set(t,e)}return o},new Map),this._internalState.size>MAX_TRACE_STATE_ITEMS$1&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,MAX_TRACE_STATE_ITEMS$1))))},n.prototype._keys=function(){return Array.from(this._internalState.keys()).reverse()},n.prototype._clone=function(){var r=new n;return r._internalState=new Map(this._internalState),r},n}();function createTraceState(n){return new TraceStateImpl(n)}var context=ContextAPI.getInstance(),diag=DiagAPI.instance(),NoopMeterProvider=function(){function n(){}return n.prototype.getMeter=function(r,o,u){return NOOP_METER},n}(),NOOP_METER_PROVIDER=new NoopMeterProvider,API_NAME$2="metrics",MetricsAPI=function(){function n(){}return n.getInstance=function(){return this._instance||(this._instance=new n),this._instance},n.prototype.setGlobalMeterProvider=function(r){return registerGlobal(API_NAME$2,r,DiagAPI.instance())},n.prototype.getMeterProvider=function(){return getGlobal(API_NAME$2)||NOOP_METER_PROVIDER},n.prototype.getMeter=function(r,o,u){return this.getMeterProvider().getMeter(r,o,u)},n.prototype.disable=function(){unregisterGlobal(API_NAME$2,DiagAPI.instance())},n}(),metrics=MetricsAPI.getInstance(),NoopTextMapPropagator=function(){function n(){}return n.prototype.inject=function(r,o){},n.prototype.extract=function(r,o){return r},n.prototype.fields=function(){return[]},n}(),BAGGAGE_KEY=createContextKey("OpenTelemetry Baggage Key");function getBaggage(n){return n.getValue(BAGGAGE_KEY)||void 0}function getActiveBaggage(){return getBaggage(ContextAPI.getInstance().active())}function setBaggage(n,r){return n.setValue(BAGGAGE_KEY,r)}function deleteBaggage(n){return n.deleteValue(BAGGAGE_KEY)}var API_NAME$1="propagation",NOOP_TEXT_MAP_PROPAGATOR=new NoopTextMapPropagator,PropagationAPI=function(){function n(){this.createBaggage=createBaggage,this.getBaggage=getBaggage,this.getActiveBaggage=getActiveBaggage,this.setBaggage=setBaggage,this.deleteBaggage=deleteBaggage}return n.getInstance=function(){return this._instance||(this._instance=new n),this._instance},n.prototype.setGlobalPropagator=function(r){return registerGlobal(API_NAME$1,r,DiagAPI.instance())},n.prototype.inject=function(r,o,u){return u===void 0&&(u=defaultTextMapSetter),this._getGlobalPropagator().inject(r,o,u)},n.prototype.extract=function(r,o,u){return u===void 0&&(u=defaultTextMapGetter),this._getGlobalPropagator().extract(r,o,u)},n.prototype.fields=function(){return this._getGlobalPropagator().fields()},n.prototype.disable=function(){unregisterGlobal(API_NAME$1,DiagAPI.instance())},n.prototype._getGlobalPropagator=function(){return getGlobal(API_NAME$1)||NOOP_TEXT_MAP_PROPAGATOR},n}(),propagation=PropagationAPI.getInstance(),API_NAME="trace",TraceAPI=function(){function n(){this._proxyTracerProvider=new ProxyTracerProvider,this.wrapSpanContext=wrapSpanContext,this.isSpanContextValid=isSpanContextValid,this.deleteSpan=deleteSpan,this.getSpan=getSpan,this.getActiveSpan=getActiveSpan,this.getSpanContext=getSpanContext,this.setSpan=setSpan,this.setSpanContext=setSpanContext}return n.getInstance=function(){return this._instance||(this._instance=new n),this._instance},n.prototype.setGlobalTracerProvider=function(r){var o=registerGlobal(API_NAME,this._proxyTracerProvider,DiagAPI.instance());return o&&this._proxyTracerProvider.setDelegate(r),o},n.prototype.getTracerProvider=function(){return getGlobal(API_NAME)||this._proxyTracerProvider},n.prototype.getTracer=function(r,o){return this.getTracerProvider().getTracer(r,o)},n.prototype.disable=function(){unregisterGlobal(API_NAME,DiagAPI.instance()),this._proxyTracerProvider=new ProxyTracerProvider},n}(),trace=TraceAPI.getInstance();const index$8={context,diag,metrics,propagation,trace},esm$2=Object.freeze(Object.defineProperty({__proto__:null,DiagConsoleLogger,get DiagLogLevel(){return DiagLogLevel},INVALID_SPANID,INVALID_SPAN_CONTEXT,INVALID_TRACEID,ProxyTracer,ProxyTracerProvider,ROOT_CONTEXT,get SamplingDecision(){return SamplingDecision$1},get SpanKind(){return SpanKind},get SpanStatusCode(){return SpanStatusCode},get TraceFlags(){return TraceFlags},get ValueType(){return ValueType},baggageEntryMetadataFromString,context,createContextKey,createNoopMeter,createTraceState,default:index$8,defaultTextMapGetter,defaultTextMapSetter,diag,isSpanContextValid,isValidSpanId,isValidTraceId,metrics,propagation,trace},Symbol.toStringTag,{value:"Module"})),checkIfValidCdeConnectionObject=async n=>{if(typeof n!="object"||!n)return!1;try{const r={type:"ping"},o=await n.send(r);if(o!==!0)throw new Error(`Expected 'true' after ping, got ${JSON.stringify(o)}`);return!0}catch(r){return console.error("Invalid CDE connection check:",r),!1}},isResultValid=(n,r)=>!!n&&r;function fixProto(n,r){var o=Object.setPrototypeOf;o?o(n,r):n.__proto__=r}function fixStack(n,r){r===void 0&&(r=n.constructor);var o=Error.captureStackTrace;o&&o(n,r)}var __extends$8=function(){var n=function(o,u){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,s){a.__proto__=s}||function(a,s){for(var t in s)Object.prototype.hasOwnProperty.call(s,t)&&(a[t]=s[t])},n(o,u)};return function(r,o){if(typeof o!="function"&&o!==null)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");n(r,o);function u(){this.constructor=r}r.prototype=o===null?Object.create(o):(u.prototype=o.prototype,new u)}}(),CustomError=function(n){__extends$8(r,n);function r(o,u){var a=this.constructor,s=n.call(this,o,u)||this;return Object.defineProperty(s,"name",{value:a.name,enumerable:!1,configurable:!0}),fixProto(s,a.prototype),fixStack(s),s}return r}(Error);const nullOrUndefOr=n=>z.nullable(n.optional());z.string().trim().min(1,{message:"Cannot be blank"});const CDEResponseError=z.object({cde_response_type:z.literal("error"),message:z.string(),headers:z.record(z.string(),z.string()).optional()});z.enum(["usd","brl"]);const CouponMinimal=z.object({name:z.string(),amount_atom_off:nullOrUndefOr(z.number()),percent_off:nullOrUndefOr(z.number()),currency:nullOrUndefOr(z.string()),duration:z.string(),duration_in_months:nullOrUndefOr(z.number())}),LineItem=z.object({amount_subtotal_atom:z.number().int(),amount_total_atom:z.number().int(),currency:z.string(),description:nullOrUndefOr(z.string()),price_id:z.string(),billing_interval:nullOrUndefOr(z.string()),billing_interval_count:nullOrUndefOr(z.number().int()),quantity:z.number().int()}),BrandSettings=z.record(z.string(),z.any()),Brand=z.object({name:z.string(),settings:nullOrUndefOr(BrandSettings)}),CheckoutPaymentMethod=z.object({provider:z.string(),processor_name:nullOrUndefOr(z.string()),metadata:nullOrUndefOr(z.record(z.string(),z.any()))}),SubscriptionItemMinimal=z.object({quantity:z.number()}),SubscriptionMinimal=z.object({id:nullOrUndefOr(z.string()),billing_interval:nullOrUndefOr(z.string()),billing_interval_count:nullOrUndefOr(z.number().int()),subscription_items:z.array(SubscriptionItemMinimal),trial_start:nullOrUndefOr(z.string()),trial_end:nullOrUndefOr(z.string())}),InvoiceItemDiscountAmountsMinimal=z.object({amount_atom:z.number()}),InvoiceLineItemMinimal=z.object({amount_atom:z.number(),amount_atom_considering_discount_applied:z.number(),currency:z.string(),discount_amount_atoms:z.array(InvoiceItemDiscountAmountsMinimal),subscription_item_id:z.string()}),DiscountMinimal=z.object({coupon:CouponMinimal}),InvoiceMinimal=z.object({currency:z.string(),discounts:z.array(DiscountMinimal),hosted_invoice_url:nullOrUndefOr(z.string()),lines:z.array(InvoiceLineItemMinimal),remaining_amount_atom:z.number(),tax_amount_atom:z.number(),total_amount_atom:z.number(),total_discount_amount_atoms:z.array(InvoiceItemDiscountAmountsMinimal)}),CreateSubscriptionResponseMinimal=z.object({created:z.array(SubscriptionMinimal),invoices:z.array(InvoiceMinimal),processors_used:nullOrUndefOr(z.array(z.string()))}),PreviewCheckoutResponse=z.object({preview:CreateSubscriptionResponseMinimal,preview_post_trial:nullOrUndefOr(CreateSubscriptionResponseMinimal),coupons:z.array(CouponMinimal)}),_PaymentFormPrefillCommon=z.object({status:z.literal("open"),locale:nullOrUndefOr(z.string()),token:z.string(),email:nullOrUndefOr(z.string()),line_items:z.array(LineItem),amount_subtotal_atom:z.number().int(),amount_total_atom:z.number().int(),brand:Brand,subs_preview:nullOrUndefOr(PreviewCheckoutResponse),methods_available:z.array(CheckoutPaymentMethod)}),PaymentFormPrefill=z.discriminatedUnion("mode",[z.object({mode:z.literal("setup"),currency:z.nullable(z.undefined())}).extend(_PaymentFormPrefillCommon.shape),z.object({mode:z.enum(["payment","subscription"]),currency:z.string()}).extend(_PaymentFormPrefillCommon.shape)]),CompletedFormPrefill=z.object({status:z.literal("complete")}),ExpiredFormPrefill=z.object({status:z.literal("expired")});z.union([PaymentFormPrefill,CompletedFormPrefill,ExpiredFormPrefill]),z.object({logo:z.string(),icon:z.string(),primary_color:z.string(),secondary_color:z.string()}),z.object({secure_token:z.string(),pm_id:z.string()}),z.object({secure_token:z.string(),payment_input:z.any(),customer_first_name:z.string().optional(),customer_last_name:z.string().optional(),customer_email:z.string(),customer_zip_code:z.string(),customer_country:z.string(),line_items:z.array(LineItem),total_amount_atom:z.number().int(),cancel_at_end:z.boolean(),checkout_payment_method:CheckoutPaymentMethod,promotion_code:z.string().optional(),do_not_use_legacy_cc_flow:z.boolean().optional(),use_confirmed_pm_id:nullOrUndefOr(z.string()),payment_route_id:nullOrUndefOr(z.string())});const SetupCheckoutResponse=z.object({payment_method_id:z.string()});z.object({id:z.string(),return_url:z.string()});const PydanticValidationError=z.object({type:z.string(),loc:z.array(z.string()),msg:z.string(),url:z.string()});z.array(PydanticValidationError);const NewCustomerFields=z.object({new_customer_email:z.string().optional(),new_customer_address:z.record(z.string(),z.any()).optional(),new_customer_first_name:z.string().optional(),new_customer_last_name:z.string().optional()}),PriceQty=z.object({price_id:z.string(),quantity:z.number().int()}),CartInfo=z.object({line_items:z.array(PriceQty),promotion_code:z.string().optional(),displayed_total_amount_atom:z.number().int()}),ProcessorSpecificMetadata=z.object({processor_specific_metadata:nullOrUndefOr(z.record(z.string(),z.any()))});z.object({payment_provider:z.string(),checkout_payment_method:CheckoutPaymentMethod,existing_cc_pm_id:z.string().optional(),their_existing_pm_id:z.string().optional(),use_pay_first_flow:z.boolean().optional(),pay_first_flow_cart_info:CartInfo.optional(),customer_language:z.string().optional()}).extend(NewCustomerFields.shape).extend(ProcessorSpecificMetadata.shape);const StartPaymentFlowResponse=z.object({required_user_actions:z.array(z.record(z.string(),z.any())),checkout_attempt_id:nullOrUndefOr(z.string())});z.object({fields:PRFormFields,checkoutPaymentMethod:CheckoutPaymentMethod,payment_route_id:nullOrUndefOr(z.string())}),z.object({session_id:z.string(),non_cde_form_fields:RequiredFormFields,checkout_payment_method:CheckoutPaymentMethod,extra_metadata:z.record(z.string(),z.any()),payment_route_id:nullOrUndefOr(z.string()),customer_language:z.string().optional()});const StartPaymentFlowForCCResponse=z.object({required_user_actions:z.array(z.record(z.string(),z.any())),cc_pm_id:z.string()});z.record(z.any()),z.object({first_name:nullOrUndefOr(z.string()),last_name:nullOrUndefOr(z.string()),line1:nullOrUndefOr(z.string()),line2:nullOrUndefOr(z.string()),line3:nullOrUndefOr(z.string()),city:nullOrUndefOr(z.string()),state:nullOrUndefOr(z.string()),country:nullOrUndefOr(z.string()),zip_code:nullOrUndefOr(z.string()),email:nullOrUndefOr(z.string()),billing_email:nullOrUndefOr(z.string()),phone_number:nullOrUndefOr(z.string()),update_processor_customer:nullOrUndefOr(z.boolean())}),z.object({id:z.string(),email:nullOrUndefOr(z.string()),first_name:nullOrUndefOr(z.string()),last_name:nullOrUndefOr(z.string()),phone_number:nullOrUndefOr(z.string()),billing_email:nullOrUndefOr(z.string()),address:nullOrUndefOr(z.record(z.string(),z.any()))}),z.object({message:z.string()});const CheckoutStandardErrorResponse=z.object({error_code:z.string()});z.object({checkout_payment_method:CheckoutPaymentMethod,processor_specific_metadata:z.record(z.any()).optional(),payment_route_id:nullOrUndefOr(z.string())});const PreparePaymentFlowResponse=z.object({next_action_metadata:nullOrUndefOr(z.record(z.any()))});z.object({events:z.array(z.object({event_name:z.string(),device_token:z.string(),properties:z.record(z.any()).optional(),context_properties:z.record(z.any()).optional()}))}),z.any().optional(),z.object({device_token:z.string()});const SetUserDeviceTokenResponse=z.object({}),sum=n=>n.reduce((r,o)=>r+o,0),ANSI_BACKGROUND_OFFSET=10,wrapAnsi16=(n=0)=>r=>`\x1B[${r+n}m`,wrapAnsi256=(n=0)=>r=>`\x1B[${38+n};5;${r}m`,wrapAnsi16m=(n=0)=>(r,o,u)=>`\x1B[${38+n};2;${r};${o};${u}m`,styles$2={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(styles$2.modifier);const foregroundColorNames=Object.keys(styles$2.color),backgroundColorNames=Object.keys(styles$2.bgColor);[...foregroundColorNames,...backgroundColorNames];function assembleStyles(){const n=new Map;for(const[r,o]of Object.entries(styles$2)){for(const[u,a]of Object.entries(o))styles$2[u]={open:`\x1B[${a[0]}m`,close:`\x1B[${a[1]}m`},o[u]=styles$2[u],n.set(a[0],a[1]);Object.defineProperty(styles$2,r,{value:o,enumerable:!1})}return Object.defineProperty(styles$2,"codes",{value:n,enumerable:!1}),styles$2.color.close="\x1B[39m",styles$2.bgColor.close="\x1B[49m",styles$2.color.ansi=wrapAnsi16(),styles$2.color.ansi256=wrapAnsi256(),styles$2.color.ansi16m=wrapAnsi16m(),styles$2.bgColor.ansi=wrapAnsi16(ANSI_BACKGROUND_OFFSET),styles$2.bgColor.ansi256=wrapAnsi256(ANSI_BACKGROUND_OFFSET),styles$2.bgColor.ansi16m=wrapAnsi16m(ANSI_BACKGROUND_OFFSET),Object.defineProperties(styles$2,{rgbToAnsi256:{value(r,o,u){return r===o&&o===u?r<8?16:r>248?231:Math.round((r-8)/247*24)+232:16+36*Math.round(r/255*5)+6*Math.round(o/255*5)+Math.round(u/255*5)},enumerable:!1},hexToRgb:{value(r){const o=/[a-f\d]{6}|[a-f\d]{3}/i.exec(r.toString(16));if(!o)return[0,0,0];let[u]=o;u.length===3&&(u=[...u].map(s=>s+s).join(""));const a=Number.parseInt(u,16);return[a>>16&255,a>>8&255,a&255]},enumerable:!1},hexToAnsi256:{value:r=>styles$2.rgbToAnsi256(...styles$2.hexToRgb(r)),enumerable:!1},ansi256ToAnsi:{value(r){if(r<8)return 30+r;if(r<16)return 90+(r-8);let o,u,a;if(r>=232)o=((r-232)*10+8)/255,u=o,a=o;else{r-=16;const e=r%36;o=Math.floor(r/36)/5,u=Math.floor(e/6)/5,a=e%6/5}const s=Math.max(o,u,a)*2;if(s===0)return 30;let t=30+(Math.round(a)<<2|Math.round(u)<<1|Math.round(o));return s===2&&(t+=60),t},enumerable:!1},rgbToAnsi:{value:(r,o,u)=>styles$2.ansi256ToAnsi(styles$2.rgbToAnsi256(r,o,u)),enumerable:!1},hexToAnsi:{value:r=>styles$2.ansi256ToAnsi(styles$2.hexToAnsi256(r)),enumerable:!1}}),styles$2}const ansiStyles=assembleStyles(),level=(()=>{if(navigator.userAgentData){const n=navigator.userAgentData.brands.find(({brand:r})=>r==="Chromium");if(n&&n.version>93)return 3}return/\b(Chrome|Chromium)\//.test(navigator.userAgent)?1:0})(),colorSupport=level!==0&&{level,hasBasic:!0,has256:level>=2,has16m:level>=3},supportsColor={stdout:colorSupport,stderr:colorSupport};function stringReplaceAll(n,r,o){let u=n.indexOf(r);if(u===-1)return n;const a=r.length;let s=0,t="";do t+=n.slice(s,u)+r+o,s=u+a,u=n.indexOf(r,s);while(u!==-1);return t+=n.slice(s),t}function stringEncaseCRLFWithFirstIndex(n,r,o,u){let a=0,s="";do{const t=n[u-1]==="\r";s+=n.slice(a,t?u-1:u)+r+(t?`\r
7
7
  `:`
8
8
  `)+o,a=u+1,u=n.indexOf(`
9
9
  `,a)}while(u!==-1);return s+=n.slice(a),s}const{stdout:stdoutColor,stderr:stderrColor}=supportsColor,GENERATOR=Symbol("GENERATOR"),STYLER=Symbol("STYLER"),IS_EMPTY=Symbol("IS_EMPTY"),levelMapping=["ansi","ansi","ansi256","ansi16m"],styles$1=Object.create(null),applyOptions=(n,r={})=>{if(r.level&&!(Number.isInteger(r.level)&&r.level>=0&&r.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");const o=stdoutColor?stdoutColor.level:0;n.level=r.level===void 0?o:r.level},chalkFactory=n=>{const r=(...o)=>o.join(" ");return applyOptions(r,n),Object.setPrototypeOf(r,createChalk.prototype),r};function createChalk(n){return chalkFactory(n)}Object.setPrototypeOf(createChalk.prototype,Function.prototype);for(const[n,r]of Object.entries(ansiStyles))styles$1[n]={get(){const o=createBuilder(this,createStyler(r.open,r.close,this[STYLER]),this[IS_EMPTY]);return Object.defineProperty(this,n,{value:o}),o}};styles$1.visible={get(){const n=createBuilder(this,this[STYLER],!0);return Object.defineProperty(this,"visible",{value:n}),n}};const getModelAnsi=(n,r,o,...u)=>n==="rgb"?r==="ansi16m"?ansiStyles[o].ansi16m(...u):r==="ansi256"?ansiStyles[o].ansi256(ansiStyles.rgbToAnsi256(...u)):ansiStyles[o].ansi(ansiStyles.rgbToAnsi(...u)):n==="hex"?getModelAnsi("rgb",r,o,...ansiStyles.hexToRgb(...u)):ansiStyles[o][n](...u),usedModels=["rgb","hex","ansi256"];for(const n of usedModels){styles$1[n]={get(){const{level:o}=this;return function(...u){const a=createStyler(getModelAnsi(n,levelMapping[o],"color",...u),ansiStyles.color.close,this[STYLER]);return createBuilder(this,a,this[IS_EMPTY])}}};const r="bg"+n[0].toUpperCase()+n.slice(1);styles$1[r]={get(){const{level:o}=this;return function(...u){const a=createStyler(getModelAnsi(n,levelMapping[o],"bgColor",...u),ansiStyles.bgColor.close,this[STYLER]);return createBuilder(this,a,this[IS_EMPTY])}}}}const proto=Object.defineProperties(()=>{},{...styles$1,level:{enumerable:!0,get(){return this[GENERATOR].level},set(n){this[GENERATOR].level=n}}}),createStyler=(n,r,o)=>{let u,a;return o===void 0?(u=n,a=r):(u=o.openAll+n,a=r+o.closeAll),{open:n,close:r,openAll:u,closeAll:a,parent:o}},createBuilder=(n,r,o)=>{const u=(...a)=>applyStyle(u,a.length===1?""+a[0]:a.join(" "));return Object.setPrototypeOf(u,proto),u[GENERATOR]=n,u[STYLER]=r,u[IS_EMPTY]=o,u},applyStyle=(n,r)=>{if(n.level<=0||!r)return n[IS_EMPTY]?"":r;let o=n[STYLER];if(o===void 0)return r;const{openAll:u,closeAll:a}=o;if(r.includes("\x1B"))for(;o!==void 0;)r=stringReplaceAll(r,o.close,o.open),o=o.parent;const s=r.indexOf(`
@@ -22,7 +22,7 @@ ${n.message}`),n.message)}else return getHumanFriendlyMessage(n.message);if(type
22
22
  `;const o=document.createElement("div"),u=o.attachShadow({mode:"open"});u.appendChild(r.content.cloneNode(!0));const a=u.querySelector("#three-ds-iframe"),s=u.querySelector(".cancel-button");return document.body.appendChild(o),{host:o,iframe:a,cancelButton:s}};function startPolling(n,r,o){const u=async()=>{try{const s=await pingCdeFor3dsStatus(n,o);s&&(clearInterval(a),r(s))}catch{}};u();const a=setInterval(u,CDE_POLLING_INTERVAL);return a}function handleEvents({elements:n,pollingInterval:r,resolve:o}){const u=()=>{clearInterval(r),n.host.remove(),o({status:ThreeDSStatus.CANCELLED})};return n.cancelButton.addEventListener("click",u),()=>{n.cancelButton.removeEventListener("click",u)}}async function start3dsVerification(n){const{url:r,baseUrl:o}=n,u=createAndOpenFrame(r);return new Promise(a=>{const s=l=>{setTimeout(()=>{u.host.remove()},1e3),a(l),e==null||e()},t=startPolling(u.iframe,s,new URL(o).origin),e=handleEvents({elements:u,pollingInterval:t,resolve:a})})}const start3dsVerificationStrict=async n=>{const r=await start3dsVerification(n);if(r.status===ThreeDSStatus.CANCELLED)throw new Error("3DS verification cancelled");if(r.status===ThreeDSStatus.FAILURE)throw new Error("3DS verification failed");return r.status!==ThreeDSStatus.SUCCESS&&assertNever(r.status),{href:r.href}},openPopupWindow=(n,r)=>{const o=window.open(r,"_blank");if(!o)throw new Error(`${n} popup window blocked. Please allow popups for this site.`);return o},startPopupWindowVerificationStrict=async(n,r,o,u)=>{const{err__:a}=createOjsFlowLoggers("popup-verify");return new Promise((s,t)=>{const e=openPopupWindow(n,u),l=setInterval(async()=>{try{const c=await checkIfPopupWindowVerified(r,o);if(c.present)clearInterval(l),e.close(),s({href:c.href});else if(e.closed)throw new Error(`${n} payment cancelled`)}catch(c){a(getErrorMessage(c)),clearInterval(l),t(getErrorMessage(c))}},1e3)})},{log__:log__$h,err__:err__$h}=createOjsFlowLoggers("airwallex-cc"),Airwallex3dsErrorResponseHeaders=z.object({"op-airwallex-3ds-url":z.string(),"op-airwallex-initial-intent-id":z.string(),"op-airwallex-consent-id":z.string()}),parseResponseHeaders$2=n=>{const r=Airwallex3dsErrorResponseHeaders.safeParse(n);if(!r.success){const o="Unable to process your credit card. Please contact support for assistance.",u=`Airwallex 3DS is required but headers are malformed. Got: ${JSON.stringify(n)}`;throw err__$h(u),new Error(o)}return r.data},checkIfRequiresAirwallex3ds=n=>(n==null?void 0:n["op-airwallex-3ds-url"])!==void 0,parseIntentIdFrom3dsHref=n=>{try{const r=new URL(n??"").searchParams.get("payment_intent_id");if(!r)throw new Error("No intent ID found in Airwallex 3DS verification result");return log__$h(`Airwallex 3DS verification success. [Intent ID: ${r}]`),r}catch(r){const o="Error verifying Airwallex 3DS verification result.";throw err__$h(o,`Resulting URL: ${n}.
23
23
  Error: ${getErrorMessage(r)}`),new Error(o)}},runAirwallex3dsFlow=async(n,r)=>{const o=parseResponseHeaders$2(r),u=await start3dsVerificationStrict({url:o["op-airwallex-3ds-url"],baseUrl:n}),a=parseIntentIdFrom3dsHref(u.href??""),s=o["op-airwallex-initial-intent-id"];if(s!==a){const e="Unable to process your credit card. Please contact support for assistance.",l=`Intent ID from callback (${a}) does not match the initial intent ID (${s}).`;throw err__$h(l),new Error(e)}return{existing_cc:{initial_intent_id:a,consent_id:o["op-airwallex-consent-id"]}}},ApplePayCpm$1=z.object({provider:z.literal("apple_pay"),processor_name:z.literal("airwallex"),metadata:z.object({processor_account_id:z.string(),processor_account_name:z.string()})}),GooglePayCpm$1=z.object({provider:z.literal("google_pay"),processor_name:z.literal("airwallex"),metadata:z.object({processor_account_id:z.string(),processor_account_name:z.string(),google_pay_merchant_id:z.string().nullish()})}),detectLanguage=()=>{const n=navigator.languages&&navigator.languages.length?navigator.languages:[navigator.language];let r=n==null?void 0:n[0];return r&&(r=r.split("-")[0]),r},{log__:log__$g,err__:err__$g}=createOjsFlowLoggers("common-cc"),validateNonCdeFormFieldsForCC=(n,r,o)=>{if(o){log__$g(`Received default field values: ${JSON.stringify(o)}`);for(const[a,s]of Object.entries(o))n[a]||(n[a]=s)}const u=RequiredFormFields.safeParse(n);if(!u.success){const a=u.error.format(),s=extractIssuesPerField(a);for(const[t,e]of Object.entries(s))r(t,e,t);throw err__$g("Got validation errors in non-CDE form fields",s),new Error("Got validation errors in non-CDE form fields")}return u.data},validateTokenizeCardResults=(n,r)=>{for(const o of n)if(o.success===!1)throw o.errors.forEach(u=>{const a=AllFieldNames.safeParse(u.elementType);if(!a.success)err__$g(`Unknown field name in onValidationError: ${u.elementType}. Error object:`,u);else{const s=a.data;r(s,u.errors)}}),log__$g(`Error tokenizing card: got validation errors: ${JSON.stringify(o.errors)}`),new Error("Got validation errors while tokenizing card")},{log__:log__$f}=createOjsFlowLoggers("awx-apple-pay");async function handleValidateMerchant$1(n,r){try{const u=(await preparePaymentFlow(r.connection,{checkout_payment_method:r.checkoutPaymentMethod,processor_specific_metadata:{airwallex_payment_session:{validation_url:n.validationURL,initiative_context:window.location.hostname,their_account_id:r.processorAccount.processor_account_id}}})).next_action_metadata,a=u==null?void 0:u.apple_pay_session;if(!a)throw new Error("No session data received from payment flow");r.session.completeMerchantValidation(a),track("apple_pay_complete_merchant_validation",{...a})}catch(o){throw r.session.abort(),o}}async function handle3DS(n,r){if(!n.redirect_url)throw new Error("No redirect URL found");log__$f("3DS Required, starting verification...",n);const{status:o}=await start3dsVerification({url:n.redirect_url,baseUrl:r.baseUrl});if(log__$f(`╰ 3DS verification completed [Status: ${o}]`),o===ThreeDSStatus.CANCELLED)throw new Error("3DS verification cancelled");if(o===ThreeDSStatus.FAILURE)throw new Error("3DS verification failed");const u=await confirmPaymentFlow(r.connection,{secure_token:r.prefill.token,processor_specific_metadata:{their_pm_id:n.their_pm_id,airwallex_consent_id:n.consent_id,payment_provider:r.checkoutPaymentMethod.provider}});return log__$f("[2nd] Confirm payment flow response",u),u}async function handlePaymentAuthorized$1(n,r){var o,u,a,s,t;try{const e=n.payment,l=fillEmptyFormInputsWithApplePay(r.nonCdeFormInputs,e),c=validateNonCdeFormFieldsForCC(l,r.formCallbacks.get.onValidationError,r.defaultFieldValues);track("billing_details_received",{...c});const E=(await startPaymentFlow(r.connection,{payment_provider:r.checkoutPaymentMethod.provider,checkout_payment_method:r.checkoutPaymentMethod,new_customer_email:c[FieldName.EMAIL],new_customer_first_name:c[FieldName.FIRST_NAME],new_customer_last_name:c[FieldName.LAST_NAME],new_customer_address:{zip_code:c[FieldName.ZIP_CODE],country:c[FieldName.COUNTRY]},customer_language:detectLanguage()})).required_user_actions[0].consent_id;if(!E)throw new Error("No consent ID received from payment flow");let p=await confirmPaymentFlow(r.connection,{secure_token:r.prefill.token,processor_specific_metadata:{payment_provider:r.checkoutPaymentMethod.provider,airwallex_consent_id:E,airwallex_payment_method_data:{type:"applepay",applepay:{payment_data_type:"encrypted_payment_token",encrypted_payment_token:JSON.stringify(e.token)}}}});log__$f("[1st] Confirm payment flow response",p);let f=(u=(o=p.payment_methods)==null?void 0:o[0])==null?void 0:u.id;const v=(a=p.required_user_actions)==null?void 0:a.find(O=>O.type==="airwallex_payment_consent");if(v!=null&&v.redirect_url&&v.consent_id&&v.their_pm_id&&(p=await handle3DS(v,r),f=(t=(s=p.payment_methods)==null?void 0:s[0])==null?void 0:t.id),!f)throw new Error("No PM ID found");const g={status:ApplePaySession.STATUS_SUCCESS};return r.session.completePayment(g),performSimpleCheckoutOrSetup({logPrefix:"awx-applepay",anyCdeConnection:r.connection,checkoutPaymentMethod:r.checkoutPaymentMethod,requiredFormFields:c,confirmResult:p,usePayFirstFlow:!1})}catch(e){const l={status:ApplePaySession.STATUS_FAILURE};throw r.session.completePayment(l),e}}const{log__:log__$e,err__:err__$f}=createOjsFlowLoggers("awx-apple-pay"),initAirwallexApplePayFlow=addErrorCatcherForInit(async({context:n,formCallbacks:r})=>{const o={processor:PaymentProcessor.Enum.airwallex,isAvailable:!1,isLoading:!1,startFlow:async()=>{}},u=findCpmMatchingType(n.checkoutPaymentMethods,ApplePayCpm$1);if(!u)return o;if(log__$e("Loading Apple Pay script"),await loadApplePayScript(),!window.ApplePaySession||!ApplePaySession.canMakePayments())return log__$e("Apple Pay is not available on this device/browser"),o;if(log__$e("Apple Pay Loaded"),!await ApplePaySession.canMakePayments())return log__$e("No active cards available for Apple Pay"),o;if(!u.metadata.processor_account_id)throw new Error("No gateway merchant ID found in processor account");const t=n.anyCdeConnection,e=await getPrefill(t),l=e.mode==="setup",c=await getCheckoutPreviewAmount(t,e.token,l,void 0),_=async d=>{try{await OjsFlows.airwallexApplePay.run({context:n,checkoutPaymentMethod:u,nonCdeFormInputs:createInputsDictFromForm(n.formDiv),formCallbacks:r,customParams:{...d,initialPreview:c},initResult:void 0})}catch(E){err__$f("Apple Pay payment error",E),r.get.onCheckoutError((E==null?void 0:E.message)??"Unknown error")}};return{processor:PaymentProcessor.Enum.airwallex,isAvailable:!0,isLoading:!1,startFlow:_}}),runAirwallexApplePayFlow=addBasicCheckoutCallbackHandlers(async({context:n,checkoutPaymentMethod:r,nonCdeFormInputs:o,customParams:u,formCallbacks:a})=>{var f;const s=findCpmMatchingType(n.checkoutPaymentMethods,ApplePayCpm$1),{overridePaymentRequest:t,initialPreview:e}=u,l=n.anyCdeConnection,c=await getPrefill(l),_=c.mode==="setup",d=getApplePayPaymentRequest({overridePaymentRequest:t,initialPreview:e,prefill:{...c},defaultLabel:(f=s==null?void 0:s.metadata)==null?void 0:f.processor_account_name}),E=new ApplePaySession(3,d),p={session:E,connection:n.anyCdeConnection,checkoutPaymentMethod:r,nonCdeFormInputs:o,processorAccount:s.metadata,prefill:c,isSetupMode:_,baseUrl:n.baseUrl,formCallbacks:a,defaultFieldValues:u==null?void 0:u.defaultFieldValues};return track("apple_pay_flow_started",{processor_name:r.processor_name,prefill:excludeProps(c,["brand"]),overridePaymentRequest:t}),new Promise((v,g)=>{const O=()=>{log__$e("Payment cancelled by user"),g(new Error("Payment cancelled by user"))};E.oncancel=O,E.onvalidatemerchant=async m=>{try{await handleValidateMerchant$1(m,p)}catch(h){g(h)}},E.onpaymentmethodselected=()=>{const m={newTotal:{...d.total}};E.completePaymentMethodSelection(m)},E.onpaymentauthorized=async m=>{track("apple_pay_payment_authorized");try{const h=await handlePaymentAuthorized$1(m,p);v(h)}catch(h){g(h)}},E.begin()}).catch(v=>{throw err__$f("Apple Pay payment error",v),track("apple_pay_payment_error",{error:v}),v})}),getPaymentDataRequest=({gateway:n,gatewayMerchantId:r,merchantName:o,merchantId:u,initialPreview:a,overridePaymentRequest:s,prefill:t})=>{var d,E;const e=((d=s==null?void 0:s.amount)==null?void 0:d.amountAtom)??(a==null?void 0:a.amountAtom)??0,l=Math.max(e/100,0),c=(((E=s==null?void 0:s.amount)==null?void 0:E.currency)??(t==null?void 0:t.currency)??a.currency).toUpperCase(),_={apiVersion:2,apiVersionMinor:0,allowedPaymentMethods:[{type:"CARD",parameters:{allowedAuthMethods:["PAN_ONLY","CRYPTOGRAM_3DS"],allowedCardNetworks:["AMEX","DISCOVER","INTERAC","JCB","MASTERCARD","VISA"],billingAddressRequired:!0,billingAddressParameters:{format:"FULL"},allowCreditCards:!0,allowPrepaidCards:!0},tokenizationSpecification:{type:"PAYMENT_GATEWAY",parameters:{gateway:n,gatewayMerchantId:r}}}],emailRequired:!0,merchantInfo:{merchantId:u??"",merchantName:o},transactionInfo:{countryCode:"US",currencyCode:c,totalPriceStatus:s!=null&&s.pending?"ESTIMATED":"FINAL",totalPrice:l.toFixed(2)}};return s!=null&&s.googlePayPaymentRequest?typeof s.googlePayPaymentRequest=="function"?{..._,...s.googlePayPaymentRequest(_)}:{..._,...s.googlePayPaymentRequest}:_},loadGooglePayScript=()=>loadScript({scriptId:"__op_internal_google_pay_sdk",src:"https://pay.google.com/gp/p/js/pay.js",checkLoadedFn:()=>{var n,r;return!!((r=(n=window.google)==null?void 0:n.payments)!=null&&r.api)}});let paymentsClient=null;const getGooglePayEnvironment=async n=>await getCurrentEnv(n)==="prod"?"PRODUCTION":"TEST",getGooglePaymentsClient=async(n,r)=>{const o=await getGooglePayEnvironment(n);return paymentsClient===null&&(paymentsClient=new window.google.payments.api.PaymentsClient({environment:o,merchantInfo:r.merchantInfo})),paymentsClient},parseAirwallexStartPaymentFlowResponse=n=>{const r=n.required_user_actions.find(o=>o.type==="airwallex_payment_consent");return r?CommonNextActionMetadata.parse(r):null},fillEmptyFormInputsWithGooglePay=(n,r)=>{var a,s,t,e;const o={...n},u=(s=(a=r.paymentMethodData)==null?void 0:a.info)==null?void 0:s.billingAddress;if(u){const[l,...c]=((e=(t=u.name)==null?void 0:t.trim())==null?void 0:e.split(/\s+/))??[],_=c.join(" ")||void 0;o[FieldName.EMAIL]=o[FieldName.EMAIL]||r.email||"op_unfilled@getopenpay.com",o[FieldName.COUNTRY]=o[FieldName.COUNTRY]||u.countryCode||"US",o[FieldName.ADDRESS]=o[FieldName.ADDRESS]||u.address1||"",o[FieldName.CITY]=o[FieldName.CITY]||u.locality||"",o[FieldName.ZIP_CODE]=o[FieldName.ZIP_CODE]||u.postalCode||"00000",o[FieldName.STATE]=o[FieldName.STATE]||u.administrativeArea||"";const d=o[FieldName.FIRST_NAME]||l||"",E=o[FieldName.LAST_NAME]||_||"";d||E?(o[FieldName.FIRST_NAME]=d,o[FieldName.LAST_NAME]=E):(o[FieldName.FIRST_NAME]="_OP_UNKNOWN",o[FieldName.LAST_NAME]="")}return o},{log__:log__$d,err__:err__$e}=createOjsFlowLoggers("awx-google-pay"),initAirwallexGooglePayFlow=addErrorCatcherForInit(async({context:n,formCallbacks:r})=>{var d,E;const o={processor:PaymentProcessor.Enum.airwallex,isAvailable:!1,isLoading:!1,startFlow:async()=>{}},u=findCpmMatchingType(n.checkoutPaymentMethods,GooglePayCpm$1);if(!u)return o;log__$d("Google Pay CPM",u);const a=u.metadata;if(!a.processor_account_id)return err__$e("No gateway merchant ID found in processor account"),o;if(log__$d("Loading Google Pay script"),await loadGooglePayScript(),!((E=(d=window.google)==null?void 0:d.payments)!=null&&E.api))return err__$e("Google Pay SDK not loaded properly"),o;if(await getGooglePayEnvironment(n.baseUrl)==="PRODUCTION"&&!a.google_pay_merchant_id)return err__$e("Google Pay merchant ID is required for production environment"),o;log__$d("Google Pay SDK loaded",window.google.payments);try{const p=getPaymentDataRequest({gateway:"airwallex",gatewayMerchantId:a.processor_account_id,merchantName:a.processor_account_name,merchantId:a.google_pay_merchant_id??"",initialPreview:{amountAtom:0,currency:"USD"}}),f=await getGooglePaymentsClient(n.baseUrl,p),{result:v}=await f.isReadyToPay(p);if(!v)return log__$d("Google Pay is not available for this user"),o}catch(p){return err__$e("Error checking Google Pay availability",p),o}const t=n.anyCdeConnection,e=await getPrefill(t),l=e.mode==="setup",c=await getCheckoutPreviewAmount(t,e.token,l,void 0),_=async p=>{try{OjsFlows.airwallexGooglePay.run({context:n,checkoutPaymentMethod:u,nonCdeFormInputs:createInputsDictFromForm(n.formDiv),formCallbacks:r,initResult:void 0,customParams:{...p,initialPreview:c}})}catch(f){err__$e("Google Pay payment error",f),r.get.onCheckoutError((f==null?void 0:f.message)??"Unknown error")}};return{processor:PaymentProcessor.Enum.airwallex,isAvailable:!0,isLoading:!1,startFlow:_}}),runAirwallexGooglePayFlow=addBasicCheckoutCallbackHandlers(async({context:n,checkoutPaymentMethod:r,nonCdeFormInputs:o,formCallbacks:u,customParams:a})=>{var p,f,v,g,O,m,h;log__$d("Starting Google Pay flow...");const s=findCpmMatchingType(n.checkoutPaymentMethods,GooglePayCpm$1),{initialPreview:t,overridePaymentRequest:e}=a,l=s.metadata;if(!l.processor_account_id)throw new Error("No gateway merchant ID found in processor account");const c=getPaymentDataRequest({gateway:"airwallex",gatewayMerchantId:l.processor_account_id,merchantName:l.processor_account_name,merchantId:l.google_pay_merchant_id??"",initialPreview:t,overridePaymentRequest:e}),_=n.anyCdeConnection,d=await getPrefill(_);track("google_pay_flow_started",{processor_name:s.processor_name,prefill:excludeProps(d,["brand"]),overridePaymentRequest:e});const E=await getGooglePaymentsClient(n.baseUrl,c);try{const M=await E.loadPaymentData(c);log__$d("Google Pay Payment data",M);const b=fillEmptyFormInputsWithGooglePay(o,M),V=validateNonCdeFormFieldsForCC(b,u.get.onValidationError,a==null?void 0:a.defaultFieldValues);track("billing_details_received",{...V});const B=(f=(p=M.paymentMethodData)==null?void 0:p.tokenizationData)==null?void 0:f.token;if(!B)throw new Error("No payment token received from Google Pay");const C=await startPaymentFlow(_,{payment_provider:r.provider,checkout_payment_method:r,new_customer_email:V[FieldName.EMAIL],new_customer_first_name:V[FieldName.FIRST_NAME],new_customer_last_name:V[FieldName.LAST_NAME],new_customer_address:{zip_code:V[FieldName.ZIP_CODE],country:V[FieldName.COUNTRY]},customer_language:detectLanguage()}),j=parseAirwallexStartPaymentFlowResponse(C);log__$d("Start flow next actions",j);let w=await confirmPaymentFlow(_,{secure_token:d.token,processor_specific_metadata:{payment_provider:r.provider,airwallex_consent_id:j==null?void 0:j.consent_id,airwallex_payment_method_data:{type:"googlepay",googlepay:{payment_data_type:"encrypted_payment_token",encrypted_payment_token:B}}}});log__$d("[1st] Confirm payment flow response",w);let x=(g=(v=w.payment_methods)==null?void 0:v[0])==null?void 0:g.id;const L=(O=w.required_user_actions)==null?void 0:O.find($=>$.type==="airwallex_payment_consent");if(L&&L.redirect_url){log__$d("3DS Required, starting verification...",L);const{status:$}=await start3dsVerification({url:L.redirect_url,baseUrl:n.baseUrl});if(log__$d(`╰ 3DS verification completed [Status: ${$}]`),$===ThreeDSStatus.CANCELLED)throw new Error("3DS verification cancelled");if($===ThreeDSStatus.FAILURE)throw new Error("3DS verification failed")}if(L&&!x&&(w=await confirmPaymentFlow(_,{secure_token:d.token,their_pm_id:L.their_pm_id,processor_specific_metadata:{payment_provider:r.provider,airwallex_consent_id:L.consent_id}}),log__$d("[2nd] Confirm payment flow response",w),x=(h=(m=w.payment_methods)==null?void 0:m[0])==null?void 0:h.id),!x)throw new Error("No PM ID found");return performSimpleCheckoutOrSetup({logPrefix:"awx-googlepay",anyCdeConnection:_,checkoutPaymentMethod:r,requiredFormFields:V,confirmResult:w,usePayFirstFlow:!1})}catch(M){throw err__$e("Google Pay payment error",M),track("google_pay_payment_error",{error:M}),new Error((M==null?void 0:M.message)??"Unknown error")}}),ApplePayCpm=z.object({provider:z.literal("apple_pay"),processor_name:z.literal("authorize_net"),metadata:z.object({processor_account_id:z.string(),processor_account_name:z.string()})}),GooglePayCpm=z.object({provider:z.literal("google_pay"),processor_name:z.literal("authorize_net"),metadata:z.object({processor_account_id:z.string(),processor_account_name:z.string(),google_pay_merchant_id:z.string().nullish()})});async function handleValidateMerchant(n,r){try{const u=(await preparePaymentFlow(r.connection,{checkout_payment_method:r.checkoutPaymentMethod,processor_specific_metadata:{apple_payment_session:{validation_url:n.validationURL,initiative_context:window.location.hostname,their_account_id:r.processorAccount.processor_account_id}}})).next_action_metadata,a=u==null?void 0:u.apple_pay_session;if(!a)throw new Error("No session data received from payment flow");r.session.completeMerchantValidation(a),track("apple_pay_complete_merchant_validation",{...a})}catch(o){throw r.session.abort(),o}}async function handlePaymentAuthorized(n,r){var o,u;try{const a=n.payment,s=fillEmptyFormInputsWithApplePay(r.nonCdeFormInputs,a),t=validateNonCdeFormFieldsForCC(s,r.formCallbacks.get.onValidationError);track("billing_details_received",{...t}),await startPaymentFlow(r.connection,{payment_provider:r.checkoutPaymentMethod.provider,checkout_payment_method:r.checkoutPaymentMethod,new_customer_email:t[FieldName.EMAIL],new_customer_first_name:t[FieldName.FIRST_NAME],new_customer_last_name:t[FieldName.LAST_NAME],new_customer_address:{zip_code:t[FieldName.ZIP_CODE],country:t[FieldName.COUNTRY]},customer_language:detectLanguage()});const e={dataDescriptor:"COMMON.APPLE.INAPP.PAYMENT",dataValue:window.btoa(JSON.stringify(a.token.paymentData))},l=await confirmPaymentFlow(r.connection,{secure_token:r.prefill.token,processor_specific_metadata:{payment_provider:r.checkoutPaymentMethod.provider,mobile_wallet_payment_data:e}});if(!((u=(o=l.payment_methods)==null?void 0:o[0])==null?void 0:u.id))throw new Error("No PM ID found");const _={status:ApplePaySession.STATUS_SUCCESS};return r.session.completePayment(_),performSimpleCheckoutOrSetup({logPrefix:"authnet-applepay",anyCdeConnection:r.connection,checkoutPaymentMethod:r.checkoutPaymentMethod,requiredFormFields:t,confirmResult:l,usePayFirstFlow:!1})}catch(a){const s={status:ApplePaySession.STATUS_FAILURE};throw r.session.completePayment(s),a}}const{log__:log__$c,err__:err__$d}=createOjsFlowLoggers("authnet-applepay"),initAuthnetApplePayFlow=addErrorCatcherForInit(async({context:n,formCallbacks:r})=>{const o={processor:PaymentProcessor.Enum.authorize_net,isAvailable:!1,isLoading:!1,startFlow:async()=>{}},u=findCpmMatchingType(n.checkoutPaymentMethods,ApplePayCpm);if(!u)return o;if(log__$c("Loading Apple Pay script"),await loadApplePayScript(),!window.ApplePaySession||!ApplePaySession.canMakePayments())return log__$c("Apple Pay is not available on this device/browser"),o;if(!await ApplePaySession.canMakePayments())return log__$c("No active cards available for Apple Pay"),o;if(!u.metadata.processor_account_id)throw new Error("No gateway merchant ID found in processor account");const t=n.anyCdeConnection,e=await getPrefill(t),l=e.mode==="setup",c=await getCheckoutPreviewAmount(t,e.token,l,void 0),_=async d=>{try{await OjsFlows.authorizeNetApplePay.run({context:n,checkoutPaymentMethod:u,nonCdeFormInputs:createInputsDictFromForm(n.formDiv),formCallbacks:r,customParams:{...d,initialPreview:c},initResult:void 0})}catch(E){err__$d("Apple Pay payment error",E),track("apple_pay_payment_error",{error:E}),r.get.onCheckoutError((E==null?void 0:E.message)??"Unknown error")}};return{processor:PaymentProcessor.Enum.authorize_net,isAvailable:!0,isLoading:!1,startFlow:_}}),runAuthnetApplePayFlow=addBasicCheckoutCallbackHandlers(async({context:n,checkoutPaymentMethod:r,nonCdeFormInputs:o,customParams:u,formCallbacks:a})=>{var f;const{initialPreview:s,overridePaymentRequest:t}=u,e=findCpmMatchingType(n.checkoutPaymentMethods,ApplePayCpm),l=n.anyCdeConnection,c=await getPrefill(l),_=c.mode==="setup",d=getApplePayPaymentRequest({overridePaymentRequest:t,initialPreview:s,prefill:c,defaultLabel:(f=e==null?void 0:e.metadata)==null?void 0:f.processor_account_name});track("apple_pay_flow_started",{processor_name:r.processor_name,prefill:c,overridePaymentRequest:t});const E=new ApplePaySession(3,d),p={session:E,connection:n.anyCdeConnection,checkoutPaymentMethod:r,nonCdeFormInputs:o,processorAccount:r.metadata,prefill:c,isSetupMode:_,baseUrl:n.baseUrl,formCallbacks:a};return new Promise((v,g)=>{E.oncancel=()=>{log__$c("Payment cancelled by user"),g(new Error("Payment cancelled by user"))},E.onvalidatemerchant=async O=>{try{await handleValidateMerchant(O,p)}catch(m){g(m)}},E.onpaymentmethodselected=()=>{const O={newTotal:d.total};E.completePaymentMethodSelection(O)},E.onpaymentauthorized=async O=>{track("apple_pay_payment_authorized");try{const m=await handlePaymentAuthorized(O,p);v(m)}catch(m){g(m)}},E.begin()}).catch(v=>{throw err__$d("Apple Pay payment error",v),track("apple_pay_payment_error",{error:v}),v})}),{log__:log__$b,err__:err__$c}=createOjsFlowLoggers("authnet-googlepay"),initAuthnetGooglePayFlow=addErrorCatcherForInit(async({context:n,formCallbacks:r})=>{var _,d;log__$b("Initializing Authnet GooglePay flow");const o={processor:PaymentProcessor.Enum.authorize_net,isAvailable:!1,isLoading:!1,startFlow:async()=>{}},u=findCpmMatchingType(n.checkoutPaymentMethods,GooglePayCpm);if(!u)return o;log__$b("Google Pay CPM",u);const a=u.metadata;if(!a.processor_account_id)return err__$c("No gateway merchant ID found in processor account"),o;if(log__$b("Loading Google Pay script"),await loadGooglePayScript(),!((d=(_=window.google)==null?void 0:_.payments)!=null&&d.api))return err__$c("Google Pay SDK not loaded properly"),o;log__$b("Google Pay SDK loaded",window.google.payments);try{const E=getPaymentDataRequest({gateway:"authorizenet",gatewayMerchantId:a.processor_account_id,merchantName:a.processor_account_name,merchantId:a.google_pay_merchant_id??"",initialPreview:{amountAtom:0,currency:"USD"}}),p=await getGooglePaymentsClient(n.baseUrl,E),{result:f}=await p.isReadyToPay(E);if(!f)return log__$b("Google Pay is not available for this user"),o}catch(E){return err__$c("Error checking Google Pay availability",E),o}const s=n.anyCdeConnection,t=await getPrefill(s),e=t.mode==="setup",l=await getCheckoutPreviewAmount(s,t.token,e,void 0),c=async E=>{try{OjsFlows.authorizeNetGooglePay.run({context:n,checkoutPaymentMethod:u,nonCdeFormInputs:createInputsDictFromForm(n.formDiv),formCallbacks:r,initResult:void 0,customParams:{...E,initialPreview:l}})}catch(p){err__$c("Google Pay payment error",p),track("google_pay_payment_error",{error:p}),r.get.onCheckoutError((p==null?void 0:p.message)??"Unknown error")}};return{processor:PaymentProcessor.Enum.authorize_net,isAvailable:!0,isLoading:!1,startFlow:c}}),runAuthnetGooglePayFlow=addBasicCheckoutCallbackHandlers(async({context:n,nonCdeFormInputs:r,checkoutPaymentMethod:o,formCallbacks:u,customParams:a})=>{var p,f,v,g;const{initialPreview:s,overridePaymentRequest:t}=a,l=findCpmMatchingType(n.checkoutPaymentMethods,GooglePayCpm).metadata,c=getPaymentDataRequest({gateway:"authorizenet",gatewayMerchantId:l.processor_account_id,merchantName:l.processor_account_name,merchantId:l.google_pay_merchant_id??"",initialPreview:s,overridePaymentRequest:t}),_=n.anyCdeConnection,d=await getPrefill(_);track("google_pay_flow_started",{processor_name:o.processor_name,prefill:d,overridePaymentRequest:t});const E=await getGooglePaymentsClient(n.baseUrl,c);try{const O=await E.loadPaymentData(c);log__$b("Google Pay Payment data",O);const m=fillEmptyFormInputsWithGooglePay(r,O),h=validateNonCdeFormFieldsForCC(m,u.get.onValidationError);track("billing_details_received",{...h});const M=(f=(p=O.paymentMethodData)==null?void 0:p.tokenizationData)==null?void 0:f.token;if(!M)throw new Error("No payment token received from Google Pay");const b=await startPaymentFlow(_,{payment_provider:o.provider,checkout_payment_method:o,new_customer_email:h[FieldName.EMAIL],new_customer_first_name:h[FieldName.FIRST_NAME],new_customer_last_name:h[FieldName.LAST_NAME],new_customer_address:{zip_code:h[FieldName.ZIP_CODE],country:h[FieldName.COUNTRY]},customer_language:detectLanguage()});log__$b("Start payment flow response",b);const V=await confirmPaymentFlow(_,{secure_token:d.token,processor_specific_metadata:{payment_provider:o.provider,mobile_wallet_payment_data:{dataDescriptor:"COMMON.GOOGLE.INAPP.PAYMENT",dataValue:window.btoa(M)}}});if(!((g=(v=V.payment_methods)==null?void 0:v[0])==null?void 0:g.id))throw new Error("No PM ID found");return performSimpleCheckoutOrSetup({logPrefix:"authnet-googlepay",anyCdeConnection:_,checkoutPaymentMethod:o,requiredFormFields:h,confirmResult:V,usePayFirstFlow:!1})}catch(O){throw err__$c("Google Pay payment error",O),track("google_pay_payment_error",{error:O}),new Error((O==null?void 0:O.message)??"Unknown error")}}),AdyenEnvironment=z.enum(["test","live","live-us","live-in","live-apse","live-au"]),AdyenLocale=z.enum(["ar","bg-BG","ca-ES","cs-CZ","da-DK","de-DE","el-GR","en-US","es-ES","et-EE","fi-FI","fr-FR","hr-HR","hu-HU","is-IS","it-IT","ja-JP","ko-KR","lt-LT","lv-LV","nl-NL","no-NO","pl-PL","pt-BR","pt-PT","ro-RO","ru-RU","sk-SK","sl-SI","sv-SE","zh-CN","zh-TW"]),{log__:log__$a,err__:err__$b}=createOjsFlowLoggers("adyen-cc"),Adyen3dsResponseHeaders=z.object({"op-account-id":z.string(),"op-adyen-client-key":z.string(),"op-adyen-environment":AdyenEnvironment,"op-adyen-action":z.string()}),friendlyErr="Unable to process your credit card. Please contact support for assistance.",parseResponseHeaders$1=n=>{const r=Adyen3dsResponseHeaders.safeParse(n);if(!r.success)throw err__$b(`Adyen 3DS is required but headers are malformed. Got: ${JSON.stringify(n)}`),new Error(friendlyErr);return r.data},decodeAdyenAction=n=>JSON.parse(n),isAdyenAvailable=()=>"AdyenWeb"in window&&"AdyenCheckout"in window.AdyenWeb,getAdyenCheckout=async()=>{log__$a("Waiting for Adyen SDK to load...");for(let n=0;n<10;n++)isAdyenAvailable()||await sleep(500);if(!isAdyenAvailable())throw err__$b("Adyen SDK not loaded properly"),new Error(friendlyErr);return log__$a("Adyen SDK loaded successfully"),window.AdyenWeb.AdyenCheckout},handleAdyen3ds=n=>{const{headers:r,locale:o,countryCode:u,component:a,host:s,cancelButton:t}=n,e=decodeAdyenAction(r["op-adyen-action"]);return log__$a(`Running Adyen 3DS flow for action type: ${e.type}`),new Promise(l=>{const c=()=>{log__$a("Cleaning up Adyen 3DS flow"),t.removeEventListener("click",E),s.remove()},_=f=>{err__$b("Authentication failed. Result:",f),l({status:ThreeDSStatus.FAILURE,cleanup:c})},d=f=>{err__$b("Adyen error:",f),l({status:ThreeDSStatus.FAILURE,cleanup:c})},E=()=>{l({status:ThreeDSStatus.CANCELLED,cleanup:c})};t.addEventListener("click",E);const p=(f,v,g)=>{s.remove(),l({status:ThreeDSStatus.SUCCESS,additionalDetails:f,cleanup:c})};getAdyenCheckout().then(f=>f({clientKey:r["op-adyen-client-key"],environment:r["op-adyen-environment"],locale:o,countryCode:u,onAdditionalDetails:p,onPaymentFailed:_,onError:d})).then(f=>{f.createFromAction(e,{challengeWindowSize:"03"}).mount(a)})})},determineLocale=n=>{const r=navigator.languages&&navigator.languages.length?navigator.languages[0]:navigator.language,o=n??r,u=AdyenLocale.safeParse(o);return u.success?(log__$a(`Resolved locale: ${u.data}`),u.data):(err__$b(`Resolved invalid locale: ${o}. Defaulting to en-US.`),"en-US")},checkIfRequiresAdyen3ds=n=>(n==null?void 0:n["op-adyen-action"])!==void 0,runAdyen3dsFlow=async(n,r,o)=>{const u=parseResponseHeaders$1(r),a=document.createElement("div");a.id="adyen-container";const{host:s,iframe:t,cancelButton:e}=createAndOpenFrame("http://example.com");t.replaceWith(a);const l=await handleAdyen3ds({headers:u,locale:determineLocale(o),countryCode:n,component:a,host:s,cancelButton:e});if(l.cleanup(),l.status===ThreeDSStatus.FAILURE)throw new Error("3DS verification failed");if(l.status===ThreeDSStatus.CANCELLED)throw new Error("3DS verification cancelled");if(l.status===ThreeDSStatus.SUCCESS){if(!l.additionalDetails)throw new Error("3DS verification succeeded but no additional details were returned");return log__$a("3DS verification succeeded"),{existing_cc:{additional_details:l.additionalDetails.data}}}else assertNever(l.status)},{log__:log__$9,err__:err__$a}=createOjsFlowLoggers("pockyt-cc"),Pockyt3dsErrorResponseHeaders=z.object({"op-pockyt-3ds-url":z.string(),"op-pockyt-txn-no":z.string(),"op-pockyt-ref-no":z.string()}),parseResponseHeaders=n=>{const r=Pockyt3dsErrorResponseHeaders.safeParse(n);if(!r.success){const o="Unable to process your credit card. Please contact support for assistance.",u=`Pockyt 3DS is required but headers are malformed. Got: ${JSON.stringify(n)}`;throw err__$a(u),new Error(o)}return r.data},parseVaultIdFrom3dsHref=n=>{try{const r=new URL(n??"").searchParams.get("vaultId");if(!r)throw new Error("No vault ID found in 3DS verification result");return log__$9(`3DS verification success. [Vault ID: ${r}]`),r}catch(r){const o="Error verifying 3DS verification result.";throw err__$a(o,`Resulting URL: ${n}.
24
24
  Error: ${getErrorMessage(r)}`),new Error(o)}},parseArgFromHref=(n,r)=>new URL(n).searchParams.get(r),checkIfRequiresPockyt3ds=n=>(n==null?void 0:n["op-pockyt-3ds-url"])!==void 0,runPockyt3dsFlow=async(n,r)=>{const o=parseResponseHeaders(r),u=await start3dsVerificationStrict({url:o["op-pockyt-3ds-url"],baseUrl:n});return{existing_cc:{vault_id:parseVaultIdFrom3dsHref(u.href??""),transaction_no:o["op-pockyt-txn-no"],reference_no:o["op-pockyt-ref-no"]}}},{log__:log__$8,err__:err__$9}=createOjsFlowLoggers("common-cc"),{log__:stripeLog__}=createOjsFlowLoggers("stripe-cc");z.array(z.object({our_existing_pm_id:z.string()})).length(1);const runCommonCcFlow=addBasicCheckoutCallbackHandlers(async({context:n,checkoutPaymentMethod:r,nonCdeFormInputs:o,formCallbacks:u,customParams:a})=>{var c;log__$8("├ Running common CC flow...",{checkoutPaymentMethod:r});const s=n.anyCdeConnection,t=await getPrefill(s);track("common_cc_flow_started",{...r,prefill:t}),log__$8(`├ Validating non-CDE form fields [Mode: ${t.mode}]`);const e=validateNonCdeFormFieldsForCC(o,u.get.onValidationError);track("billing_details_received",{...e});const l={session_id:n.elementsSessionId,checkout_payment_method:r,non_cde_form_fields:e,extra_metadata:{origin:window.location.origin},payment_route_id:a.paymentRouteId,customer_language:detectLanguage()};try{log__$8(`├ Tokenizing card info in CDE [Session: ${n.elementsSessionId}]`);const _=await tokenizeCardOnAllConnections(a.currentCdeConnections,{session_id:n.elementsSessionId});if(validateTokenizeCardResults(_,u.get.onValidationError),t.mode==="setup"){log__$8(`├ Setting up payment method in CDE [Token: ${t.token}]`);const d=await setupCheckout(s,l);return log__$8(`╰ Setup completed successfully [PM ID: ${d.payment_method_id}]`),{mode:"setup",result:d}}else{log__$8(`├ Initial checkout flow. Checking out card info in CDE [Session: ${n.elementsSessionId}]`);const d=await checkoutCardElements(s,l);return log__$8("╰ Checkout completed successfully."),{mode:"checkout",result:d}}}catch(_){if(_ instanceof CdeError&&_.originalErrorMessage.includes("3DS_REQUIRED")){log__$8("├ Card requires 3DS, starting non-legacy payment flow"),log__$8("Received 3DS error response headers:",_.response.headers),track("3ds_required",{...r,..._.response.headers});const d=checkIfRequiresPockyt3ds(_.response.headers);if(d){log__$8("├ Pockyt 3DS case detected. Going through Pockyt 3DS flow.");const O=await runPockyt3dsFlow(n.baseUrl,_.response.headers);l.extra_metadata.pockyt=O}if(checkIfRequiresAirwallex3ds(_.response.headers)){log__$8("├ Airwallex 3DS case detected. Going through Airwallex 3DS flow.");const O=await runAirwallex3dsFlow(n.baseUrl,_.response.headers);l.extra_metadata.airwallex=O}if(checkIfRequiresAdyen3ds(_.response.headers)){log__$8("├ Adyen 3DS case detected. Going through Adyen 3DS flow.");const O=await runAdyen3dsFlow(o[FieldName.COUNTRY],_.response.headers,t.locale);l.extra_metadata.adyen=O}const f=await startPaymentFlowForCC(s,l);log__$8("├ Payment flow result:",f);const v=((c=_.response.headers)==null?void 0:c["op-should-use-new-flow"])!=="true";d?log__$8("├ Pre-start 3DS is successful, other 3DS flows will be skipped."):v?(log__$8("├ Using stripe 3DS flow"),await stripeCC3DSFlow(f)):(log__$8("├ Using common 3DS flow"),await commonCC3DSFlow(f,n.baseUrl));const g=f.cc_pm_id;if(t.mode==="setup"){log__$8(`├ Confirming payment flow [cc_pm_id: ${g}]`);const O=await confirmPaymentFlow(s,{secure_token:t.token,existing_cc_pm_id:g});log__$8("├ Confirm payment flow result received Result:",O);const m=parseConfirmPaymentFlowResponse(O);return log__$8(`╰ Setup completed successfully [PM ID: ${m.payment_method_id}]`),{mode:"setup",result:m}}else{log__$8(`├ Checking out after 3DS flow [Flow: ${v?"legacy":"new"}]`);const O=await checkoutCardElements(s,{...l,existing_cc_pm_id:g,do_not_use_legacy_cc_flow:v});return log__$8("╰ Checkout completed successfully."),{mode:"checkout",result:O}}}throw err__$9("╰ Error checking out card info in CDE"),err__$9(_),_}}),parseStripe3DSNextActionMetadata=n=>{const r=n.required_user_actions.find(o=>o.type==="stripe_3ds");if(!r)throw new Error("No stripe 3DS action found");return Stripe3DSNextActionMetadata.parse(r)},common3DSActionTypes=["airwallex_payment_consent","adyen"],parseCommon3DSNextActionMetadata=n=>{const r=n.required_user_actions.find(o=>common3DSActionTypes.includes(o.type));if(!r)throw new Error("No common 3DS action found");return Common3DSNextActionMetadata.parse(r)},commonCC3DSFlow=async(n,r)=>{const o=parseCommon3DSNextActionMetadata(n);if(o.redirect_url==="3DS_COMPLETE"){log__$8("├ 3DS flow completed successfully"),track("3ds_complete");return}log__$8(`├ Using common 3DS flow [URL: ${o.redirect_url}]`),track("3ds_redirect",{...o});const{status:u}=await start3dsVerification({url:o.redirect_url,baseUrl:r});if(log__$8(`╰ 3DS verification completed [Status: ${u}]`),u===ThreeDSStatus.CANCELLED)throw track("3ds_cancelled"),new Error("3DS verification cancelled");if(u===ThreeDSStatus.FAILURE)throw track("3ds_failure"),new Error("3DS verification failed")},stripeCC3DSFlow=async n=>{const r=parseStripe3DSNextActionMetadata(n);track("3ds_stripe_redirect",{...r}),stripeLog__(`├ Using stripe 3DS flow [Client Secret: ${r.client_secret.substring(0,8)}...]`),await launchStripe3DSDialogFlow(r),track("3ds_stripe_complete"),stripeLog__("╰ Stripe 3DS flow completed successfully")},LOOP_CRYPTO_MIN_USD_CHARGE_AMOUNT_ATOM=1,LoopCryptoCpm=z.object({processor_name:z.literal("loop"),provider:z.literal("crypto"),metadata:z.object({merchant_id:z.string(),entity_id:z.string(),api_token:z.string(),supported_currencies:z.array(z.string()),environment:z.string()})}),{log__:log__$7,err__:err__$8}=createOjsFlowLoggers("loop-crypto"),LoopRequiredFormFields=z.object({loopFirstName:RequiredString,loopLastName:RequiredString,loopEmail:RequiredString,[FieldName.PROMOTION_CODE]:OptionalString}),LoopOptionalFormFields=z.object({loopFirstName:OptionalString,loopLastName:OptionalString,loopEmail:OptionalString,[FieldName.PROMOTION_CODE]:OptionalString}),validateNonCdeFormFields=(n,r,o,u)=>{const a=o.safeParse(n);if(!a.success){const s=a.error.format(),t=extractIssuesPerField(s);for(const[e,l]of Object.entries(t))r(e,l,e);throw err__$8("Got validation errors in non-CDE form fields",t),new Error("Got validation errors in non-CDE form fields")}return a.data},initLoopFlow=addErrorCatcherForInit(async({context:n})=>{log__$7("Checking if there are any CPMs for Loop Crypto...");const r=findCpmMatchingType(n.checkoutPaymentMethods,LoopCryptoCpm);log__$7(`checkoutPaymentMethod: ${JSON.stringify(r)}`),log__$7("Starting Loop Crypto flow...");const o=await getPrefill(n.anyCdeConnection),u=o.mode==="setup",a=await preparePaymentFlow(n.anyCdeConnection,{checkout_payment_method:r}),s=await getCheckoutPreviewAmount(n.anyCdeConnection,o.token,u,void 0);if(!u&&!r.metadata.supported_currencies.includes(o.currency))throw Error(`Currency ${o.currency} not enabled for Loop. Enabled currencies: ${r.metadata.supported_currencies}`);if(!a||!a.next_action_metadata)throw Error("Failed to fetch necessary setup data for Loop");const t=a.next_action_metadata;let e;o.mode==="setup"?e=LOOP_CRYPTO_MIN_USD_CHARGE_AMOUNT_ATOM:e=(s?s.amountAtom:o.amount_total_atom)*t.token_price;const l=e,c=t.authorization_amount,_=v4(),d={paymentUsdAmount:l,suggestedAuthorizationUsdAmount:c,customerRefId:_},E={apiKey:r.metadata.api_token,entityId:r.metadata.entity_id,merchantId:r.metadata.merchant_id,environment:r.metadata.environment};return{isAvailable:!0,widgetProps:d,initLoopConnectProps:E}}),runLoopFlow=addBasicCheckoutCallbackHandlers(async({context:n,checkoutPaymentMethod:r,nonCdeFormInputs:o,formCallbacks:u,customParams:a})=>{log__$7("Running Loop flow..."),log__$7("context",n),log__$7("checkoutPaymentMethod",r),log__$7("nonCdeFormInputs",o),log__$7("flowCallbacks",u),log__$7("customParams",a);let s;a!=null&&a.success?s=validateNonCdeFormFields(o,u.get.onValidationError,LoopRequiredFormFields):s=validateNonCdeFormFields(o,u.get.onValidationError,LoopOptionalFormFields);const t=n.anyCdeConnection,e=await getPrefill(n.anyCdeConnection),l=e.mode!=="setup",c=await startPaymentFlow(n.anyCdeConnection,{checkout_payment_method:r,payment_provider:r.provider,new_customer_email:s.loopEmail,new_customer_first_name:s.loopFirstName,new_customer_last_name:s.loopLastName,use_pay_first_flow:l,pay_first_flow_cart_info:l?{line_items:e.line_items,displayed_total_amount_atom:e.amount_total_atom}:void 0,customer_language:detectLanguage()});if(!a)throw Error("Checkout failed. Failed to properly submit form data.");const _=await confirmPaymentFlow(t,{secure_token:e.token,their_pm_id:a.success?a.payin.paymentMethod.paymentMethodId:void 0,checkout_attempt_id:e.mode!=="setup"?c.checkout_attempt_id:void 0,processor_specific_metadata:{loop_customer:a.success?a.customer:void 0,loop_payin:a.success?a.payin:void 0,loop_failure_details:a.success?void 0:a.failureDetails,loop_debug_info:a.success?void 0:a.debugInfo,loop_success:a.success}});if(log__$7(`Confirm result: ${_}`),e.mode==="setup"){log__$7("Doing payment setup..."),log__$7("├ Confirm payment flow result received Result:",_);const d=parseConfirmPaymentFlowResponse(_);return log__$7(`╰ Setup completed successfully [PM ID: ${d.payment_method_id}]`),{mode:"setup",result:d}}else{if(log__$7("Doing checkout..."),!_.pay_first_success_response)throw err__$8("Checkout failed, no pay-first success response:",_),new Error("Checkout failed, please try again with another payment method.");return{mode:"checkout",result:_.pay_first_success_response}}}),{log__:log__$6,err__:err__$7}=createOjsFlowLoggers("pockyt-paypal"),PockytPaypalCpm=z.object({processor_name:z.literal("pockyt"),provider:z.literal("paypal")});z.array(z.object({paypal_iframe_url:z.string(),verify_token:z.string()})).length(1);const runPockytPaypalFlow=addBasicCheckoutCallbackHandlers(async({context:n,checkoutPaymentMethod:r,nonCdeFormInputs:o,formCallbacks:u,customParams:a})=>{var V,B;log__$6("Running Pockyt Paypal flow...");const s=n.anyCdeConnection,t=await getPrefill(s);log__$6("Verifying CPM...");const e=PockytPaypalCpm.parse(r);log__$6("├ Validating non-CDE form fields");const l=a==null?void 0:a.settings,c=validateNonCdeFormFieldsForCC(o,u.get.onValidationError,l==null?void 0:l.defaultFieldValues),_=createCustomerFieldsFromForm(c);log__$6(`Starting payment flow... Mode: ${t.mode}`);const d=v4(),E=t.mode!=="setup",p={payment_provider:e.provider,checkout_payment_method:e,use_pay_first_flow:E,pay_first_flow_cart_info:E?{line_items:t.line_items,displayed_total_amount_atom:t.amount_total_atom}:void 0,processor_specific_metadata:{use_paypal_redirect_flow:!!((V=a==null?void 0:a.settings)!=null&&V.useRedirectFlow),frontend_token_for_redirect_flow:d},..._},f=new URL("/app/pre-action/start/",n.baseUrl).toString(),v=btoa(JSON.stringify(p)),g=new URLSearchParams({st:t.token,r:v}),O=`${f}?${g.toString()}`;if((B=a==null?void 0:a.settings)!=null&&B.useRedirectFlow)throw log__$6("Starting redirect mode for PayPal..."),window.location.href=O,await sleep(20*1e3),new Error("Paypal flow timed out, please try again with another payment method.");log__$6("Starting popup mode for PayPal..."),log__$6("Opening paypal iframe...");const m=await startPopupWindowVerificationStrict("PayPal",s,d,O);log__$6("Paypal flow result",m);const h=parseVaultIdFrom3dsHref(m.href),M=parseArgFromHref(m.href,"catt");if(!M)throw err__$7("Checkout attempt ID not found in redirect URL:",m.href),new Error("Checkout attempt ID not found in redirect URL");log__$6(`Confirming payment flow using vault ID ${h}`);const b=await confirmPaymentFlow(s,{secure_token:t.token,their_pm_id:h,checkout_attempt_id:E?M:void 0});if(log__$6("Confirm payment flow result",b),t.mode==="setup")return{mode:"setup",result:{payment_method_id:b.payment_methods[0].id}};if(!b.pay_first_success_response)throw err__$7("Checkout failed, no pay-first success response:",b),new Error("Checkout failed, please try again with another payment method.");return{mode:"checkout",result:b.pay_first_success_response}}),OJS_STRIPE_LINK_BTN_ID="ojs-stripe-link-btn",{log__:log__$5,err__:err__$6}=createOjsFlowLoggers("stripe-link"),StripeLinkCpm=z.object({provider:z.literal("stripe_link"),processor_name:z.literal("stripe"),metadata:z.object({stripe_pk:z.string()})}),StripeLinkRequiredUserActions=z.array(z.object({our_existing_pm_id:z.string()})).length(1),initStripeLinkFlow=addErrorCatcherForInit(async({context:n,formCallbacks:r})=>{const o=n.customInitParams.stripeLink;log__$5("Checking if there are any CPMs for Stripe Link...");const u=findCpmMatchingType(n.checkoutPaymentMethods,StripeLinkCpm);log__$5("Starting stripe link flow...");const a=n.anyCdeConnection,s=await getPrefill(a),t=s.mode==="setup";log__$5("Creating stripe elements...");const e=await getCheckoutPreviewAmount(a,s.token,t,void 0),{elements:l,stripe:c}=await createStripeElements(u.metadata.stripe_pk,{mode:"setup",currency:e.currency,setup_future_usage:"off_session",paymentMethodCreation:"manual"});log__$5("Creating express checkout...");const _=l.create("expressCheckout",{buttonHeight:o==null?void 0:o.buttonHeight,paymentMethods:{amazonPay:"never",applePay:"never",googlePay:"never",paypal:"never"}}),d=()=>{_.mount(`#${OJS_STRIPE_LINK_BTN_ID}`)},E=()=>{_.unmount()};return o!=null&&o.doNotMountOnInit?log__$5("NOT mounting stripe link button (doNotMountOnInit is true)"):(log__$5("Mounting stripe link button..."),d()),_.on("click",async p=>{if(log__$5("Stripe Link button clicked"),o!=null&&o.overrideLinkSubmit&&!await o.overrideLinkSubmit()){log__$5("Stripe Link submit aborted by overrideLinkSubmit");return}p.resolve()}),_.on("confirm",async p=>{log__$5("Stripe Link window confirmed",p);const f=await c.createPaymentMethod({elements:l,params:{billing_details:p.billingDetails}});f.error?(err__$6("error",f.error),r.get.onCheckoutError(f.error.message??"Stripe Link unknown error")):(log__$5("paymentMethod",f.paymentMethod),OjsFlows.stripeLink.run({context:n,checkoutPaymentMethod:u,nonCdeFormInputs:createInputsDictFromForm(n.formDiv),formCallbacks:r,customParams:{stripePM:f.paymentMethod},initResult:{isAvailable:!0}}))}),{isAvailable:!0,controller:{mountButton:d,dismountButton:E,waitForButtonToMount:async()=>await getElementByIdAsync(OJS_STRIPE_LINK_BTN_ID)}}}),runStripeLinkFlow=addBasicCheckoutCallbackHandlers(async({context:n,checkoutPaymentMethod:r,nonCdeFormInputs:o,formCallbacks:u,customParams:a})=>{log__$5("Running Stripe Link flow...");const s=n.anyCdeConnection;log__$5("Merging PM fields with form fields...");const t=fillEmptyFormInputsWithStripePM(o,a.stripePM),e=validateNonCdeFormFieldsForCC(t,u.get.onValidationError);track("billing_details_received",{...e}),log__$5("Starting payment flow...");const l=await startPaymentFlow(s,{payment_provider:r.provider,checkout_payment_method:r,their_existing_pm_id:a.stripePM.id,new_customer_email:e[FieldName.EMAIL],new_customer_first_name:e[FieldName.FIRST_NAME],new_customer_last_name:e[FieldName.LAST_NAME],new_customer_address:{zip_code:e[FieldName.ZIP_CODE],country:e[FieldName.COUNTRY]},customer_language:detectLanguage()});log__$5("Start payment flow response",l);const _=StripeLinkRequiredUserActions.parse(l.required_user_actions)[0].our_existing_pm_id,d=await getPrefill(s);if(d.mode==="setup"){log__$5("Doing payment setup...");const E=await confirmPaymentFlow(s,{secure_token:d.token,existing_cc_pm_id:_});return{mode:"setup",result:parseConfirmPaymentFlowResponse(E)}}else{log__$5("Doing checkout...");const E={secure_token:d.token,payment_input:{provider_type:r.provider},customer_email:e[FieldName.EMAIL],customer_zip_code:e[FieldName.ZIP_CODE],customer_country:e[FieldName.COUNTRY],promotion_code:e[FieldName.PROMOTION_CODE],line_items:d.line_items,total_amount_atom:d.amount_total_atom,cancel_at_end:!1,checkout_payment_method:r};return{mode:"checkout",result:await performCheckout(s,E)}}}),fillEmptyFormInputsWithStripePM=(n,r)=>{var l,c,_,d,E;const o={...n},[u,...a]=((c=(l=r.billing_details.name)==null?void 0:l.trim())==null?void 0:c.split(/\s+/))??[],s=a.join(" ")||void 0;o[FieldName.EMAIL]=o[FieldName.EMAIL]||((_=r.link)==null?void 0:_.email)||r.billing_details.email||"op_unfilled@getopenpay.com",o[FieldName.ZIP_CODE]=o[FieldName.ZIP_CODE]||((d=r.billing_details.address)==null?void 0:d.postal_code)||"00000",o[FieldName.COUNTRY]=o[FieldName.COUNTRY]||((E=r.billing_details.address)==null?void 0:E.country)||"US";const t=o[FieldName.FIRST_NAME]||u||"",e=o[FieldName.LAST_NAME]||s||"";return t||e?(o[FieldName.FIRST_NAME]=t,o[FieldName.LAST_NAME]=e):(o[FieldName.FIRST_NAME]="_OP_UNKNOWN",o[FieldName.LAST_NAME]=""),log__$5("Final form inputs:",o),o},getElementByIdAsync=n=>new Promise(r=>{const o=()=>{const u=document.getElementById(n);u?r(u):requestAnimationFrame(o)};o()}),{log__:log__$4,err__:err__$5}=createOjsFlowLoggers("stripe-pr"),StripePrCpm=z.object({provider:z.union([z.literal("apple_pay"),z.literal("google_pay")]),processor_name:z.literal("stripe"),metadata:z.object({stripe_pk:z.string()})}),initStripePrFlow=addErrorCatcherForInit(async({context:n,formCallbacks:r})=>{log__$4("Checking if there are any CPMs for Stripe PR...");const o=findCpmMatchingType(n.checkoutPaymentMethods,StripePrCpm);log__$4("Initializing Stripe PR flow...");const u=n.anyCdeConnection,a=await getPrefill(u),s=a.mode==="setup";log__$4("Getting initial preview amount");const t=await getCheckoutPreviewAmount(u,a.token,s,void 0),e=await createStripePaymentRequest(o.metadata.stripe_pk,t.amountAtom,t.currency,s);log__$4("Checking if can make payment");const l=await e.canMakePayment();if(l===null)return err__$5("canMakePayment returned null"),{isAvailable:!1,reason:"canMakePayment returned null"};log__$4("Stripe PR flow initialized successfully. Can make payment",l);const c=(_,d)=>OjsFlows.stripePR.run({context:n,checkoutPaymentMethod:findCheckoutPaymentMethodStrict(n.checkoutPaymentMethods,_),nonCdeFormInputs:createInputsDictFromForm(n.formDiv),formCallbacks:r,customParams:{provider:_,overridePaymentRequest:d==null?void 0:d.overridePaymentRequest},initResult:{processor:PaymentProcessor.Enum.stripe,pr:e,isAvailable:!0,availableProviders:{applePay:l.applePay,googlePay:l.googlePay},startFlow:c}});return{processor:PaymentProcessor.Enum.stripe,isAvailable:!0,pr:e,availableProviders:{applePay:l.applePay,googlePay:l.googlePay},startFlow:c}}),runStripePrFlow$1=addBasicCheckoutCallbackHandlers(async({context:n,checkoutPaymentMethod:r,nonCdeFormInputs:o,formCallbacks:u,customParams:a,initResult:s})=>{if(log__$4("Running Stripe PR flow..."),a.provider!==r.provider)throw new Error(`Provider mismatch. Expected ${a.provider}, got ${r.provider}`);const t=n.anyCdeConnection,e=s.pr;if(a!=null&&a.overridePaymentRequest){const f=a.overridePaymentRequest;log__$4("Overriding PR amount with",f);const v=typeof f.applePayPaymentRequest=="function"?f.applePayPaymentRequest({}):f.applePayPaymentRequest;updatePrWithAmount(e,f.amount,f.pending,v,f.label)}log__$4("Showing PR dialog..."),e.show();const l=await waitForUserToAddPaymentMethod(e);log__$4("Stripe PM added event:",l),log__$4("Merging PM fields with form fields...");const c=fillEmptyFormInputsWithStripePm(o,l),_=validateNonCdeFormFieldsForCC(c,u.get.onValidationError);track("billing_details_received",{..._}),log__$4("PR dialog finished. Starting payment flow...",_);const d=await startPaymentFlowForPR(t,{fields:_,checkoutPaymentMethod:r}),E=parsePRNextActionMetadata(d);log__$4("Confirming PR with Stripe..."),await confirmStripePrPM(E,l);const p=await getPrefill(t);if(p.mode==="setup"){log__$4("Confirming payment flow for setup...");const f=await confirmPaymentFlow(t,{secure_token:p.token});return{mode:"setup",result:parseConfirmPaymentFlowResponse(f)}}else{log__$4("Performing checkout...");const f={secure_token:p.token,payment_input:{provider_type:r.provider},customer_first_name:_[FieldName.FIRST_NAME],customer_last_name:_[FieldName.LAST_NAME],customer_email:_[FieldName.EMAIL],customer_zip_code:_[FieldName.ZIP_CODE],customer_country:_[FieldName.COUNTRY],promotion_code:_[FieldName.PROMOTION_CODE],line_items:p.line_items,total_amount_atom:p.amount_total_atom,cancel_at_end:!1,checkout_payment_method:r};return{mode:"checkout",result:await performCheckout(t,f)}}}),fillEmptyFormInputsWithStripePm=(n,r)=>{var _,d,E,p;const o={...n},[u,...a]=((d=(_=r.payerName)==null?void 0:_.trim())==null?void 0:d.split(/\s+/))??[],s=a.join(" ")||void 0,t=(p=(E=r.paymentMethod)==null?void 0:E.billing_details)==null?void 0:p.address,e=r.shippingAddress;o[FieldName.EMAIL]=o[FieldName.EMAIL]||r.payerEmail||"op_unfilled@getopenpay.com",o[FieldName.ZIP_CODE]=o[FieldName.ZIP_CODE]||(t==null?void 0:t.postal_code)||(e==null?void 0:e.postalCode)||"00000",o[FieldName.COUNTRY]=o[FieldName.COUNTRY]||(t==null?void 0:t.country)||(e==null?void 0:e.country)||"US";const l=o[FieldName.FIRST_NAME]||u||"",c=o[FieldName.LAST_NAME]||s||"";return l||c?(o[FieldName.FIRST_NAME]=l,o[FieldName.LAST_NAME]=c):(o[FieldName.FIRST_NAME]="_OP_UNKNOWN",o[FieldName.LAST_NAME]=""),log__$4("Final form inputs:",o),o},updatePrWithAmount=(n,r,o,u,a)=>{n.update({total:{amount:r.amountAtom,label:a??"Total",pending:o},currency:r.currency,applePay:u})},parsePRNextActionMetadata=n=>{if(n.required_user_actions.length!==1)throw new Error(`Error occurred.
25
- Details: got ${n.required_user_actions.length} required user actions`);return PaymentRequestNextActionMetadata.parse(n.required_user_actions[0])},generateAnonymousValues=()=>{const n=v4().split("-")[0];return{firstName:`xx_${n}`,lastName:`xx_${n}`,email:`xx_${n}@email.com`,zipCode:`xx_${n}`,country:"US"}},{log__:log__$3,err__:err__$4}=createOjsFlowLoggers("paypal"),PaypalCpm=z.object({provider:z.literal("paypal"),metadata:z.object({client_id:z.string()}),processor_name:z.literal("paypal")}),initPaypalFlow=async({context:n,formCallbacks:r})=>{const o=findCpmMatchingType(n.checkoutPaymentMethods,PaypalCpm);if(!o)throw new Error("PayPal CPM not found in available payment methods");return{isLoading:!1,isAvailable:!0,startFlow:()=>OjsFlows.paypal.run({context:n,checkoutPaymentMethod:o,nonCdeFormInputs:createInputsDictFromForm(n.formDiv),formCallbacks:r,initResult:void 0,customParams:{settings:{}}})}},runPaypalFlow=addBasicCheckoutCallbackHandlers(async({context:n,nonCdeFormInputs:r,checkoutPaymentMethod:o,formCallbacks:u,customParams:a})=>{try{log__$3("Running PayPal flow...");const s=n.anyCdeConnection,t=await getPrefill(s),{isAnonymous:e,useRedirectFlow:l}=a.settings??{};log__$3("Verifying CPM...");const c=PaypalCpm.parse(o);log__$3("├ Validating non-CDE form fields");const _=validateNonCdeFormFieldsForCC(r,u.get.onValidationError,e?generateAnonymousValues():void 0),d=createCustomerFieldsFromForm(_);log__$3(`Starting payment flow... Mode: ${t.mode}`);const E=v4(),p=t.mode!=="setup",f={payment_provider:c.provider,checkout_payment_method:c,use_pay_first_flow:p,pay_first_flow_cart_info:p?{line_items:t.line_items,displayed_total_amount_atom:t.amount_total_atom}:void 0,processor_specific_metadata:{use_paypal_redirect_flow:l,frontend_token_for_redirect_flow:E},...d},v=new URL("/app/pre-action/start/",n.baseUrl).toString(),g=btoa(JSON.stringify(f)),O=new URLSearchParams({st:t.token,r:g}),m=`${v}?${O.toString()}`;if(l)throw log__$3("Starting redirect mode for PayPal..."),window.location.href=m,await sleep(20*1e3),new Error("Paypal flow timed out, please try again with another payment method.");const h=await startPopupWindowVerificationStrict("PayPal",s,E,m);log__$3("Paypal flow result",h);const M=parseArgFromHref(h.href,"catt"),b=parseArgFromHref(h.href,"approval_session_id"),V=await confirmPaymentFlow(s,{secure_token:t.token,checkout_attempt_id:p?M:void 0,their_pm_id:p?b:void 0});return log__$3("Confirm payment flow result",V),performSimpleCheckoutOrSetup({logPrefix:"paypal",anyCdeConnection:s,checkoutPaymentMethod:c,requiredFormFields:_,confirmResult:V,usePayFirstFlow:p})}catch(s){throw err__$4("PayPal payment error",s),track("checkout_error",{payment_method:"paypal",error:s}),new Error((s==null?void 0:s.message)??"Unknown error")}}),findCheckoutPaymentMethodStrict=(n,r,o)=>{const u=n.filter(a=>{const s=o===void 0?!0:a.processor_name===o,t=a.provider===r;return s&&t});if(u.length===0)throw console.warn("CPMs list",n),new Error(`No CPMs found with provider '${r}' and processor '${o}'`);return u.length!==1&&(console.warn("CPMs list",n),console.warn(`More than one CPM found with provider '${r}' and processor '${o}'`),track("more_than_one_cpm_found",{provider:r,processor:o,cpms:n})),u[0]},OjsFlows={commonCC:{init:async()=>{},run:runCommonCcFlow},stripePR:{init:initStripePrFlow,run:runStripePrFlow$1},stripeLink:{init:initStripeLinkFlow,run:runStripeLinkFlow},pockytPaypal:{run:runPockytPaypalFlow},paypal:{init:initPaypalFlow,run:runPaypalFlow},airwallexGooglePay:{init:initAirwallexGooglePayFlow,run:runAirwallexGooglePayFlow},airwallexApplePay:{init:initAirwallexApplePayFlow,run:runAirwallexApplePayFlow},loopCrypto:{init:initLoopFlow,run:runLoopFlow},authorizeNetApplePay:{init:initAuthnetApplePayFlow,run:runAuthnetApplePayFlow},authorizeNetGooglePay:{init:initAuthnetGooglePayFlow,run:runAuthnetGooglePayFlow}},{log__:log__$2,err__:err__$3}=createOjsFlowLoggers("init-flows"),createInitFlowPublisher=(n,r)=>{const o=new LoadedOncePublisher;return{publisher:o,initialize:async u=>{try{if(o.current.isSuccess)throw new Error("This flow has already been initialized.");const a=await r(u);log__$2(`✔ ${n} flow initialized successfully. Result:`,a),o.set(a)}catch(a){err__$3(`𝙭 ${n} flow initialization failed. Error:`,getErrorMessage(a),"Details:",a),o.throw(a,getErrorMessage(a))}}}},startAllInitFlows=async(n,r,o)=>{await Promise.all(Object.values(n).map(u=>u.initialize({context:r,formCallbacks:o})))},createInitFlowsPublishers=()=>({stripePR:createInitFlowPublisher("Stripe PR",OjsFlows.stripePR.init),stripeLink:createInitFlowPublisher("Stripe Link",OjsFlows.stripeLink.init),airwallexGooglePay:createInitFlowPublisher("Airwallex GooglePay",OjsFlows.airwallexGooglePay.init),airwallexApplePay:createInitFlowPublisher("Airwallex ApplePay",OjsFlows.airwallexApplePay.init),loop:createInitFlowPublisher("Loop",OjsFlows.loopCrypto.init),paypal:createInitFlowPublisher("PayPal",OjsFlows.paypal.init),authorizeNetGooglePay:createInitFlowPublisher("Authnet GooglePay",OjsFlows.authorizeNetGooglePay.init),authorizeNetApplePay:createInitFlowPublisher("Authnet ApplePay",OjsFlows.authorizeNetApplePay.init)}),{err__:err__$2}=createOjsFlowLoggers("form-callbacks"),OptionalFn=z.function().optional(),ZodFormCallbacks=z.object({onFocus:OptionalFn,onBlur:OptionalFn,onChange:OptionalFn,onLoad:OptionalFn,onLoadError:OptionalFn,onValidationError:OptionalFn,onCheckoutStarted:OptionalFn,onCheckoutSuccess:OptionalFn,onSetupPaymentMethodSuccess:OptionalFn,onCheckoutError:OptionalFn,onPaymentRequestLoad:OptionalFn}),ee=class ee{constructor(){this.setCallbacks=r=>{this._callbacks=ee.createEmptyCallbacks(),Object.entries(r).forEach(([o,u])=>{const a=makeCallbackSafe(o,u??ee.NOOP,err__$2);this._callbacks[o]=a})},this._callbacks=ee.createEmptyCallbacks()}get get(){return{...this._callbacks}}};ee.NOOP=()=>{},ee.createEmptyCallbacks=()=>{const r={};return Object.keys(ZodFormCallbacks.keyof().enum).forEach(o=>{r[o]=ee.NOOP}),r},ee.fromObject=r=>{const o=new ee;return o.setCallbacks(ZodFormCallbacks.parse(r)),o};let FormCallbacks=ee;const{log__:log__$1,err__:err__$1}=createOjsFlowLoggers("tracer"),initTracerSafe=(n,r)=>{try{initTracerUnsafe(n,r)}catch(o){err__$1(`Error initializing tracer: ${o}`)}};let globalTracer;const initTracerUnsafe=async(n,r)=>{if(typeof window>"u")return;const o=await Promise.resolve().then(()=>index$5),{ConsoleSpanExporter:u,SimpleSpanProcessor:a,WebTracerProvider:s}=o,t=await Promise.resolve().then(()=>index$3),{FetchInstrumentation:e}=t,l=await Promise.resolve().then(()=>index$2),{ZoneContextManager:c}=l,_=await Promise.resolve().then(()=>index$4),{registerInstrumentations:d}=_,E=await Promise.resolve().then(()=>index$7),{Resource:p}=E,f=await Promise.resolve().then(()=>detectResources$1),{detectResourcesSync:v}=f,g=await Promise.resolve().then(()=>index$1),{OTLPTraceExporter:O}=g,m=await Promise.resolve().then(()=>index),{B3Propagator:h,B3InjectEncoding:M}=m,b=await Promise.resolve().then(()=>index$6),{BatchSpanProcessor:V}=b;log__$1(`Initializing tracer with version ${n} and baseUrl ${r}`);const B=getCollectorUrl(r);log__$1(`Using collector URL ${B}`);const C=new O({url:B}),j={"service.version":n,"service.name":"ojs"};return new s({resource:new p(j).merge(v()),spanProcessors:[new a(new u),new V(C,{scheduledDelayMillis:500})]}).register({contextManager:new c,propagator:new h({injectEncoding:M.MULTI_HEADER})}),d({instrumentations:[new e({propagateTraceHeaderCorsUrls:[/.*/],ignoreUrls:[/^https:\/\/(.*\.)?adyen\.com/,/^https:\/\/(.*\.)?loopcrypto\.xyz/]})]}),globalTracer=trace.getTracer("openpay-js"),log__$1("Tracer initialized"),globalTracer},getCollectorUrl=n=>{const r=new URL(n).hostname;return r==="cde.openpaystaging.com"?"https://otel.openpaysandbox.com/v1/traces":r==="cde.getopenpay.com"?"https://otel.getopenpay.com/v1/traces":"http://localhost:4319/v1/traces"},ENCODING="0123456789ABCDEFGHJKMNPQRSTVWXYZ",ENCODING_LEN=32,RANDOM_LEN=16,TIME_LEN=10,TIME_MAX=0xffffffffffff;var ULIDErrorCode;(function(n){n.Base32IncorrectEncoding="B32_ENC_INVALID",n.DecodeTimeInvalidCharacter="DEC_TIME_CHAR",n.DecodeTimeValueMalformed="DEC_TIME_MALFORMED",n.EncodeTimeNegative="ENC_TIME_NEG",n.EncodeTimeSizeExceeded="ENC_TIME_SIZE_EXCEED",n.EncodeTimeValueMalformed="ENC_TIME_MALFORMED",n.PRNGDetectFailure="PRNG_DETECT",n.ULIDInvalid="ULID_INVALID",n.Unexpected="UNEXPECTED",n.UUIDInvalid="UUID_INVALID"})(ULIDErrorCode||(ULIDErrorCode={}));class ULIDError extends Error{constructor(r,o){super(`${o} (${r})`),this.name="ULIDError",this.code=r}}function randomChar(n){let r=Math.floor(n()*ENCODING_LEN);return r===ENCODING_LEN&&(r=ENCODING_LEN-1),ENCODING.charAt(r)}function detectPRNG(n){const r=detectRoot(),o=r&&(r.crypto||r.msCrypto)||null;if(typeof(o==null?void 0:o.getRandomValues)=="function")return()=>{const u=new Uint8Array(1);return o.getRandomValues(u),u[0]/255};if(typeof(o==null?void 0:o.randomBytes)=="function")return()=>o.randomBytes(1).readUInt8()/255;throw new ULIDError(ULIDErrorCode.PRNGDetectFailure,"Failed to find a reliable PRNG")}function detectRoot(){return inWebWorker()?self:typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:null}function encodeRandom(n,r){let o="";for(;n>0;n--)o=randomChar(r)+o;return o}function encodeTime(n,r=TIME_LEN){if(isNaN(n))throw new ULIDError(ULIDErrorCode.EncodeTimeValueMalformed,`Time must be a number: ${n}`);if(n>TIME_MAX)throw new ULIDError(ULIDErrorCode.EncodeTimeSizeExceeded,`Cannot encode a time larger than ${TIME_MAX}: ${n}`);if(n<0)throw new ULIDError(ULIDErrorCode.EncodeTimeNegative,`Time must be positive: ${n}`);if(Number.isInteger(n)===!1)throw new ULIDError(ULIDErrorCode.EncodeTimeValueMalformed,`Time must be an integer: ${n}`);let o,u="";for(let a=r;a>0;a--)o=n%ENCODING_LEN,u=ENCODING.charAt(o)+u,n=(n-o)/ENCODING_LEN;return u}function inWebWorker(){return typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope}function ulid(n,r){const o=detectPRNG(),u=Date.now();return encodeTime(u,TIME_LEN)+encodeRandom(RANDOM_LEN,o)}const COOKIE_NAME="op_analytics_device_token",getDeviceToken=()=>{const n=document.cookie.split(";").find(o=>o.includes(COOKIE_NAME));if(n)return n.split("=")[1];const r=ulid();return setDeviceToken(r),r},setDeviceToken=n=>{const r=new Date;r.setFullYear(r.getFullYear()+1),document.cookie=`${COOKIE_NAME}=${n}; path=/; expires=${r.toUTCString()}`};function detectFramework(){try{const n=getWindowSafe(),r=n;if(r!=null&&r.next||r!=null&&r.__NEXT_DATA__||document.querySelector("#__next"))return"nextjs";const o=n;if(o!=null&&o.__NUXT__||document.querySelector("#__nuxt"))return"nuxt";if(Object.keys(document).find(a=>a.includes("react"))||Array.from(document.body.querySelectorAll("body > *")).find(a=>a._reactRootContainer))return"react";const u=n;return u!=null&&u.Vue||u!=null&&u.__VUE__?"vue":document.querySelector("[ng-version]")?"angular":"vanilla"}catch{return"unknown"}}function getFrameworkVersion(n){var r,o,u;try{switch(n){case"react":return null;case"nextjs":{const s=getWindowSafe();return((r=s==null?void 0:s.next)==null?void 0:r.version)||((o=s==null?void 0:s.__NEXT_DATA__)==null?void 0:o.buildId)||null}case"nuxt":return null;case"vue":return null;case"angular":{const a=(u=getWindowSafe())==null?void 0:u.document,s=a==null?void 0:a.querySelector("[ng-version]");return s?s.getAttribute("ng-version"):null}default:return null}}catch{return null}}function getFrameworkInfo(){const n=detectFramework(),r=getFrameworkVersion(n);return{framework:n,version:r}}class OpenPayFormEventHandler{constructor(r,o,u,a){this.handleMessage=s=>{if(!s.source){console.warn("[OJS] No source found");return}if(getCleanOrigin(s.origin)!==getCleanOrigin(this.baseUrl)||typeof s.data=="object"&&s.data.penpal||typeof s.data=="object"&&s.data.source&&s.data.source==="react-devtools-bridge")return;let t=null;try{t=parseEventPayload(JSON.parse(s.data))}catch{return}if(!this.validateEvent(t))return;const{elementId:l,payload:c}=t,_=c.type;switch(_){case"LAYOUT":this.internalCallbacks.setFormHeight(c.height?`${c.height}px`:"100%");break;case"FOCUS":this.formCallbacks.get.onFocus(l,c.elementType);break;case"BLUR":this.formCallbacks.get.onBlur(l,c.elementType);break;case"CHANGE":this.formCallbacks.get.onChange(l,c.elementType,c.errors);break;case"LOADED":this.eventTargets[l]=s.source,this.internalCallbacks.onCdeLoaded(c);break;case"LOAD_ERROR":this.internalCallbacks.onCdeLoadError(c.message);break;case"VALIDATION_ERROR":this.formCallbacks.get.onValidationError(c.elementType,c.errors,l);break;default:console.warn("[form] Unhandled event type:",_)}},this.validateEvent=s=>s.formId!==this.formId||!s.elementId?(console.log("[OJS] formId",this.formId,s.formId),console.warn("[form] Ignoring unknown event:",s),!1):this.nonces.has(s.nonce)?(console.warn("[form] Ignoring duplicate event:",s),!1):(this.nonces.add(s.nonce),!0),this.eventTargets={},this.nonces=new Set,this.formId=r,this.baseUrl=o,this.formCallbacks=u,this.internalCallbacks=a}}const getCleanOrigin=n=>new URL(n).origin;async function createConnection(n,r){const u=await connectToChild({iframe:n,debug:!1,childOrigin:r}).promise,a=await checkIfValidCdeConnectionObject(u);if(!isResultValid(u,a))throw new Error("Got invalid CDE connection object");return u}class ConnectionManager{constructor(){this.connections=new Map}addConnection(r,o){this.connections.set(r,o)}getConnection(){const r=this.connections.values().next().value;if(!r)throw new Error("Connection not found");return r}getAllConnections(){return this.connections}}const setupPaymentRequestHandlers=(n,r,o)=>{const{stripePR:u}=n;u.publisher.subscribe(a=>{if(a.isSuccess){const s=a.loadedValue,t=s.isAvailable&&s.availableProviders.applePay,e=s.isAvailable&&s.availableProviders.googlePay,l={apple_pay:{isLoading:!1,isAvailable:t,startFlow:async c=>{t&&runStripePrFlow("apple_pay",s,r,o,c)}},google_pay:{isLoading:!1,isAvailable:e,startFlow:async c=>{e&&runStripePrFlow("google_pay",s,r,o,c)}}};o.get.onPaymentRequestLoad(l)}})},runStripePrFlow=(n,r,o,u,a)=>OjsFlows.stripePR.run({context:o,checkoutPaymentMethod:findCheckoutPaymentMethodStrict(o.checkoutPaymentMethods,n),nonCdeFormInputs:createInputsDictFromForm(o.formDiv),formCallbacks:u,customParams:{provider:n,overridePaymentRequest:a==null?void 0:a.overridePaymentRequest},initResult:r}),GENERIC_CONN_ERR="The secure form failed to load properly. Please check your internet connection, or try again later.",{log__,err__}=createOjsFlowLoggers("op-form"),ie=class ie{constructor(r){var a;this.isDestroyed=!1,this.cdeLoadEvent=new LoadedOncePublisher,this.anyCdeConn=new LoadedOncePublisher,this.context=new LoadedOncePublisher,this.initFlows=createInitFlowsPublishers(),this.isSubmitting=!1,this.startFormInit=async()=>{const s=trace.getTracer("openpay-js"),t=s.startSpan("form.initialize",{kind:SpanKind.CLIENT,attributes:{"ojs.checkoutSecureToken":this.config.checkoutSecureToken,"ojs.deviceToken":this.deviceToken,"ojs.formId":this.formId,"ojs.version":this.ojsVersion,"ojs.release_version":this.ojsReleaseVersion,"ojs.base_url":this.baseUrl,"ojs.referrer":this.referrer}});return context.with(trace.setSpan(context.active(),t),async()=>{try{const e=this.createElement(ElementTypeEnum.CDE_BRIDGE);e.node.id="__op_internal_cde_bridge",e.node.ariaHidden="true",Object.assign(e.node.style,{border:"none",margin:"0px",padding:"0px",width:"1px",height:"1px",overflow:"hidden",visibility:"hidden",position:"fixed",pointerEvents:"none",userSelect:"none"}),e.mount("body"),log__("CDE bridge element mounted"),log__("Initializing OpenPay form:"),log__("├ Waiting for CDE load event...");const l=await this.cdeLoadEvent.waitForLoad({timeoutSec:120,timeoutErrMsg:GENERIC_CONN_ERR});log__("├ CDE load event received"),t==null||t.addEvent("waiting_for_cde_connection"),log__("├ Waiting for CDE connection...");const c=s==null?void 0:s.startSpan("cde.connect",void 0,context.active()),_=await this.anyCdeConn.waitForLoad({timeoutSec:120,timeoutErrMsg:GENERIC_CONN_ERR});c==null||c.end(),t==null||t.addEvent("cde_connected"),log__("├ CDE connection received"),await setUserDeviceToken(_,this.deviceToken),log__("├ Creating OJS context, setting up handlers...");const d=ie.buildOjsFlowContext(this.config,l,_,this.getFormDiv());this.context.set(d),setupPaymentRequestHandlers(this.initFlows,d,this.formCallbacks),log__("├ Starting OJS init flows..."),await startAllInitFlows(this.initFlows,d,this.formCallbacks),this.formCallbacks.get.onLoad(l.totalAmountAtoms,l.currency),log__("╰ Done initializing OJS flows."),t==null||t.setStatus({code:SpanStatusCode.OK}),track("form_loaded")}catch(e){const l=getErrorMessage(e);t==null||t.setStatus({code:SpanStatusCode.ERROR,message:l}),err__("╰ Error initializing OP form:",l),track("form_init_error",{error:l}),this.formCallbacks.get.onLoadError(l)}finally{t==null||t.end()}})},this.setFormHeight=s=>{this.formProperties.height=s,this.registeredElements&&Object.values(this.registeredElements).forEach(t=>{!t||t.type===ElementTypeEnum.CDE_BRIDGE||(t.node.style.height=s)})},this.onCdeLoaded=s=>{this.cdeLoadEvent.current.isSuccess||(this.cdeLoadEvent.set(s),track("cde_loaded"))},this.onCdeLoadError=s=>{this.cdeLoadEvent.current.isSuccess||(this.cdeLoadEvent.throw(new Error(s),s),track("cde_load_error",{error:s}))},this.createElement=(s,t={})=>{if(this.checkValidFormInstance("createElement"),!this.config)throw new Error("OpenPay form not initialized");const e=ElementType.parse(s),l=document.createElement("iframe"),c=this.buildQueryString(t);l.name=`${e}-element`;const _=new URL(`/app/v1/${l.name}/`,this.config.baseUrl);return _.search=c.toString(),l.src=_.href,l.style.border="none",l.style.width="100%",this.registerIframe(e,l)},this.registerIframe=(s,t)=>{const e={type:s,node:t,mount:l=>{var c;(c=document.querySelector(l))==null||c.appendChild(t),track("element_mounted",{element_type:s})}};return this.connectToElement({type:e.type,node:e.node}),this.registeredElements||(this.registeredElements={[ElementTypeEnum.CARD]:void 0,[ElementTypeEnum.CARD_NUMBER]:void 0,[ElementTypeEnum.CARD_EXPIRY]:void 0,[ElementTypeEnum.CARD_CVC]:void 0,[ElementTypeEnum.CDE_BRIDGE]:void 0}),this.registeredElements[s]=e,e},this.buildQueryString=s=>{const t=new URLSearchParams;return t.append("referer",this.referrer),t.append("formId",this.formId),s.styles&&t.append("styles",convertStylesToQueryString(s.styles)),t.append("secureToken",this.config.checkoutSecureToken),t},this.connectToElement=s=>createTrackingSpan({spanName:"connect_to_element",checkoutSecureToken:this.config.checkoutSecureToken,deviceToken:this.deviceToken,formId:this.formId,version:this.ojsVersion,releaseVersion:this.ojsReleaseVersion,baseUrl:this.baseUrl,referrer:this.referrer},async()=>{const t=await createConnection(s.node);t.tracingContext={checkoutSecureToken:this.config.checkoutSecureToken,deviceToken:this.deviceToken,formId:this.formId,version:this.ojsVersion,releaseVersion:this.ojsReleaseVersion,baseUrl:this.baseUrl,referrer:this.referrer},this.connectionManager.addConnection(s.type,t),!this.anyCdeConn.current.isSuccess&&s.type===ElementTypeEnum.CDE_BRIDGE&&this.anyCdeConn.set(t)}).catch(t=>err__("[FORM] Error connecting to CDE iframe",t)),this.getFormDiv=()=>document.querySelector(this.formTarget)??document.body,this.submitCard=async s=>{if(this.isSubmitting){err__("Form is already submitting. Please wait for the submission to finish before submitting again.");return}this.isSubmitting=!0;try{const t=await createTrackingSpan({spanName:"submit_card",checkoutSecureToken:this.config.checkoutSecureToken,deviceToken:this.deviceToken,formId:this.formId,version:this.ojsVersion,releaseVersion:this.ojsReleaseVersion,baseUrl:this.baseUrl,referrer:this.referrer,paymentRouteId:s==null?void 0:s.paymentRouteId},async()=>{track("submit_card",{...s}),this.checkValidFormInstance("submitCard");const e=this.context.getValueIfLoadedElse(null);if(!e)throw new Error("Please wait for the form to finish loading before submitting.");await OjsFlows.commonCC.run({context:e,checkoutPaymentMethod:findCheckoutPaymentMethodStrict(e.checkoutPaymentMethods,"credit_card"),nonCdeFormInputs:createInputsDictFromForm(e.formDiv),formCallbacks:this.formCallbacks,customParams:{currentCdeConnections:this.connectionManager.getAllConnections(),paymentRouteId:s==null?void 0:s.paymentRouteId},initResult:void 0})});return this.isSubmitting=!1,t}catch(t){throw this.isSubmitting=!1,t}},this.getAvailablePaymentMethods=()=>createTrackingSpan({spanName:"get_available_payment_methods",checkoutSecureToken:this.config.checkoutSecureToken,deviceToken:this.deviceToken,formId:this.formId,version:this.ojsVersion,releaseVersion:this.ojsReleaseVersion,baseUrl:this.baseUrl,referrer:this.referrer},()=>{if(this.checkValidFormInstance("getAvailablePaymentMethods"),!this.context.getValueIfLoadedElse(null))throw new Error("Please wait for the form to finish loading before getting available payment methods.");const t={paypal:SubmitMethods.paypal,airwallexGooglePay:SubmitMethods.airwallexGooglePay,airwallexApplePay:SubmitMethods.airwallexApplePay,authorizeNetGooglePay:SubmitMethods.authorizenetGooglePay,authorizeNetApplePay:SubmitMethods.authorizenetApplePay},e=Object.entries(this.initFlows).map(([l,c])=>({name:t[l]??l,...c.publisher.getValueIfLoadedElse(null)}));return track("get_available_payment_methods",{available_payment_methods:e}),e}),this.generalSubmit=async(s,t)=>{if(this.isSubmitting){err__("Form is already submitting. Please wait for the submission to finish before submitting again.");return}this.isSubmitting=!0;try{const e=await createTrackingSpan({spanName:"general_form_submit",checkoutSecureToken:this.config.checkoutSecureToken,deviceToken:this.deviceToken,formId:this.formId,version:this.ojsVersion,releaseVersion:this.ojsReleaseVersion,baseUrl:this.baseUrl,referrer:this.referrer},async()=>{track("general_form_submit",{method:s,settings:t}),this.checkValidFormInstance("generalSubmit");const l=this.context.getValueIfLoadedElse(null);if(!l)throw new Error("Please wait for the form to finish loading before submitting.");switch(s){case SubmitMethods.pockytPaypal:return OjsFlows.pockytPaypal.run({context:l,checkoutPaymentMethod:findCheckoutPaymentMethodStrict(l.checkoutPaymentMethods,"paypal","pockyt"),nonCdeFormInputs:createInputsDictFromForm(l.formDiv),formCallbacks:this.formCallbacks,customParams:{settings:t},initResult:void 0});case SubmitMethods.paypal:return OjsFlows.paypal.run({context:l,checkoutPaymentMethod:findCheckoutPaymentMethodStrict(l.checkoutPaymentMethods,"paypal","paypal"),nonCdeFormInputs:createInputsDictFromForm(l.formDiv),initResult:void 0,customParams:{settings:t},formCallbacks:this.formCallbacks});case SubmitMethods.airwallexGooglePay:{const c=this.initFlows.airwallexGooglePay.publisher.getValueIfLoadedElse(null);if(!c){err__("airwallex-google-pay is not available. Please check the availability using 'getAvailablePaymentMethods()'");return}return c.startFlow(t)}case SubmitMethods.airwallexApplePay:{const c=this.initFlows.airwallexApplePay.publisher.getValueIfLoadedElse(null);if(!c){err__("airwallex-apple-pay is not available. Please check the availability using 'getAvailablePaymentMethods()'");return}return c.startFlow(t)}case SubmitMethods.authorizenetGooglePay:{const c=this.initFlows.authorizeNetGooglePay.publisher.getValueIfLoadedElse(null);if(!c){err__("authorize-net-google-pay is not available. Please check the availability using 'getAvailablePaymentMethods()'");return}return c.startFlow(t)}case SubmitMethods.authorizenetApplePay:{const c=this.initFlows.authorizeNetApplePay.publisher.getValueIfLoadedElse(null);if(!c){err__("authorize-net-apple-pay is not available. Please check the availability using 'getAvailablePaymentMethods()'");return}return c.startFlow(t)}case SubmitMethods.loopCrypto:return OjsFlows.loopCrypto.run({context:l,checkoutPaymentMethod:findCheckoutPaymentMethodStrict(l.checkoutPaymentMethods,"crypto","loop"),nonCdeFormInputs:createInputsDictFromForm(l.formDiv),formCallbacks:this.formCallbacks,customParams:t,initResult:void 0});default:assertNever(s)}});return this.isSubmitting=!1,e}catch(e){throw this.isSubmitting=!1,e}},this.submit=this.submitCard,this.destroy=()=>{var s;log__("Destroying OpenPay form..."),this.checkValidFormInstance("destroy"),this.isDestroyed=!0;for(const t of Object.values(this.registeredElements??{}))t&&t.node.remove();(s=getWindowSafe())==null||s.removeEventListener("message",this.eventHandler.handleMessage.bind(this.eventHandler)),detachErrorListeners(),this.registeredElements=null,delete window.ojs,track("form_destroyed")},this.updateCallbacks=s=>{this.formCallbacks.setCallbacks(s)},ie.assignAsSingleton(this),this.ojsVersion="0.3.9",this.ojsReleaseVersion="0.3.9",this.baseUrl=r.baseUrl??"https://cde.getopenpay.com",this.config={...r,baseUrl:this.baseUrl},this.formCallbacks=FormCallbacks.fromObject(r),this.registeredElements=null,this.formId=`opjs-form-${v4()}`,this.referrer=window.location.origin,this.formTarget=r.formTarget??"body",this.formProperties={height:"1px"},this.connectionManager=new ConnectionManager,this.deviceToken=getDeviceToken(),attachErrorListeners();const{framework:o,version:u}=getFrameworkInfo();getCurrentEnv(this.baseUrl).then(s=>{if(!metricsPublisher.current.isSuccess){const t={checkoutSecureToken:this.config.checkoutSecureToken,deviceToken:this.deviceToken,environment:s,framework:o,frameworkVersion:u,ojsVersion:this.ojsVersion,ojsReleaseVersion:this.ojsReleaseVersion,referrer:this.referrer,baseUrl:this.baseUrl};metricsPublisher.set(t)}}),track("form_init"),r.allowTracing===!0&&initTracerSafe(this.ojsVersion,this.baseUrl),this.eventHandler=new OpenPayFormEventHandler(this.formId,this.baseUrl,this.formCallbacks,{setFormHeight:this.setFormHeight,onCdeLoaded:this.onCdeLoaded,onCdeLoadError:this.onCdeLoadError}),(a=getWindowSafe())==null||a.addEventListener("message",this.eventHandler.handleMessage.bind(this.eventHandler)),this.startFormInit()}get checkoutSecureToken(){return this.config.checkoutSecureToken}checkValidFormInstance(r="unknown"){const o=ie.getInstance(),u={caller:r,thisFormId:this.formId,currentFormId:(o==null?void 0:o.formId)||"no-current-instance",isDestroyed:this.isDestroyed,checkoutToken:this.config.checkoutSecureToken.substring(0,10)+"..."},a=`
25
+ Details: got ${n.required_user_actions.length} required user actions`);return PaymentRequestNextActionMetadata.parse(n.required_user_actions[0])},generateAnonymousValues=()=>{const n=v4().split("-")[0];return{firstName:`xx_${n}`,lastName:`xx_${n}`,email:`xx_${n}@email.com`,zipCode:`xx_${n}`,country:"US"}},{log__:log__$3,err__:err__$4}=createOjsFlowLoggers("paypal"),PaypalCpm=z.object({provider:z.literal("paypal"),metadata:z.object({client_id:z.string()}),processor_name:z.literal("paypal")}),initPaypalFlow=async({context:n,formCallbacks:r})=>{const o=findCpmMatchingType(n.checkoutPaymentMethods,PaypalCpm);if(!o)throw new Error("PayPal CPM not found in available payment methods");return{isLoading:!1,isAvailable:!0,startFlow:()=>OjsFlows.paypal.run({context:n,checkoutPaymentMethod:o,nonCdeFormInputs:createInputsDictFromForm(n.formDiv),formCallbacks:r,initResult:void 0,customParams:{settings:{}}})}},runPaypalFlow=addBasicCheckoutCallbackHandlers(async({context:n,nonCdeFormInputs:r,checkoutPaymentMethod:o,formCallbacks:u,customParams:a})=>{try{log__$3("Running PayPal flow...");const s=n.anyCdeConnection,t=await getPrefill(s),{isAnonymous:e,useRedirectFlow:l}=a.settings??{};log__$3("Verifying CPM...");const c=PaypalCpm.parse(o);log__$3("├ Validating non-CDE form fields");const _=validateNonCdeFormFieldsForCC(r,u.get.onValidationError,e?generateAnonymousValues():void 0),d=createCustomerFieldsFromForm(_);log__$3(`Starting payment flow... Mode: ${t.mode}`);const E=v4(),p=t.mode!=="setup",f={payment_provider:c.provider,checkout_payment_method:c,use_pay_first_flow:p,pay_first_flow_cart_info:p?{line_items:t.line_items,displayed_total_amount_atom:t.amount_total_atom}:void 0,processor_specific_metadata:{use_paypal_redirect_flow:l,frontend_token_for_redirect_flow:E},...d},v=new URL("/app/pre-action/start/",n.baseUrl).toString(),g=btoa(JSON.stringify(f)),O=new URLSearchParams({st:t.token,r:g}),m=`${v}?${O.toString()}`;if(l)throw log__$3("Starting redirect mode for PayPal..."),window.location.href=m,await sleep(20*1e3),new Error("Paypal flow timed out, please try again with another payment method.");const h=await startPopupWindowVerificationStrict("PayPal",s,E,m);log__$3("Paypal flow result",h);const M=parseArgFromHref(h.href,"catt"),b=parseArgFromHref(h.href,"approval_session_id"),V=await confirmPaymentFlow(s,{secure_token:t.token,checkout_attempt_id:p?M:void 0,their_pm_id:p?b:void 0});return log__$3("Confirm payment flow result",V),performSimpleCheckoutOrSetup({logPrefix:"paypal",anyCdeConnection:s,checkoutPaymentMethod:c,requiredFormFields:_,confirmResult:V,usePayFirstFlow:p})}catch(s){throw err__$4("PayPal payment error",s),track("checkout_error",{payment_method:"paypal",error:s}),new Error((s==null?void 0:s.message)??"Unknown error")}}),findCheckoutPaymentMethodStrict=(n,r,o)=>{const u=n.filter(a=>{const s=o===void 0?!0:a.processor_name===o,t=a.provider===r;return s&&t});if(u.length===0)throw console.warn("CPMs list",n),new Error(`No CPMs found with provider '${r}' and processor '${o}'`);return u.length!==1&&(console.warn("CPMs list",n),console.warn(`More than one CPM found with provider '${r}' and processor '${o}'`),track("more_than_one_cpm_found",{provider:r,processor:o,cpms:n})),u[0]},OjsFlows={commonCC:{init:async()=>{},run:runCommonCcFlow},stripePR:{init:initStripePrFlow,run:runStripePrFlow$1},stripeLink:{init:initStripeLinkFlow,run:runStripeLinkFlow},pockytPaypal:{run:runPockytPaypalFlow},paypal:{init:initPaypalFlow,run:runPaypalFlow},airwallexGooglePay:{init:initAirwallexGooglePayFlow,run:runAirwallexGooglePayFlow},airwallexApplePay:{init:initAirwallexApplePayFlow,run:runAirwallexApplePayFlow},loopCrypto:{init:initLoopFlow,run:runLoopFlow},authorizeNetApplePay:{init:initAuthnetApplePayFlow,run:runAuthnetApplePayFlow},authorizeNetGooglePay:{init:initAuthnetGooglePayFlow,run:runAuthnetGooglePayFlow}},{log__:log__$2,err__:err__$3}=createOjsFlowLoggers("init-flows"),createInitFlowPublisher=(n,r)=>{const o=new LoadedOncePublisher;return{publisher:o,initialize:async u=>{try{if(o.current.isSuccess)throw new Error("This flow has already been initialized.");const a=await r(u);log__$2(`✔ ${n} flow initialized successfully. Result:`,a),o.set(a)}catch(a){err__$3(`𝙭 ${n} flow initialization failed. Error:`,getErrorMessage(a),"Details:",a),o.throw(a,getErrorMessage(a))}}}},startAllInitFlows=async(n,r,o)=>{await Promise.all(Object.values(n).map(u=>u.initialize({context:r,formCallbacks:o})))},createInitFlowsPublishers=()=>({stripePR:createInitFlowPublisher("Stripe PR",OjsFlows.stripePR.init),stripeLink:createInitFlowPublisher("Stripe Link",OjsFlows.stripeLink.init),airwallexGooglePay:createInitFlowPublisher("Airwallex GooglePay",OjsFlows.airwallexGooglePay.init),airwallexApplePay:createInitFlowPublisher("Airwallex ApplePay",OjsFlows.airwallexApplePay.init),loop:createInitFlowPublisher("Loop",OjsFlows.loopCrypto.init),paypal:createInitFlowPublisher("PayPal",OjsFlows.paypal.init),authorizeNetGooglePay:createInitFlowPublisher("Authnet GooglePay",OjsFlows.authorizeNetGooglePay.init),authorizeNetApplePay:createInitFlowPublisher("Authnet ApplePay",OjsFlows.authorizeNetApplePay.init)}),{err__:err__$2}=createOjsFlowLoggers("form-callbacks"),OptionalFn=z.function().optional(),ZodFormCallbacks=z.object({onFocus:OptionalFn,onBlur:OptionalFn,onChange:OptionalFn,onLoad:OptionalFn,onLoadError:OptionalFn,onValidationError:OptionalFn,onCheckoutStarted:OptionalFn,onCheckoutSuccess:OptionalFn,onSetupPaymentMethodSuccess:OptionalFn,onCheckoutError:OptionalFn,onPaymentRequestLoad:OptionalFn}),ee=class ee{constructor(){this.setCallbacks=r=>{this._callbacks=ee.createEmptyCallbacks(),Object.entries(r).forEach(([o,u])=>{const a=makeCallbackSafe(o,u??ee.NOOP,err__$2);this._callbacks[o]=a})},this._callbacks=ee.createEmptyCallbacks()}get get(){return{...this._callbacks}}};ee.NOOP=()=>{},ee.createEmptyCallbacks=()=>{const r={};return Object.keys(ZodFormCallbacks.keyof().enum).forEach(o=>{r[o]=ee.NOOP}),r},ee.fromObject=r=>{const o=new ee;return o.setCallbacks(ZodFormCallbacks.parse(r)),o};let FormCallbacks=ee;const{log__:log__$1,err__:err__$1}=createOjsFlowLoggers("tracer"),initTracerSafe=(n,r)=>{try{initTracerUnsafe(n,r)}catch(o){err__$1(`Error initializing tracer: ${o}`)}};let globalTracer;const initTracerUnsafe=async(n,r)=>{if(typeof window>"u")return;const o=await Promise.resolve().then(()=>index$5),{ConsoleSpanExporter:u,SimpleSpanProcessor:a,WebTracerProvider:s}=o,t=await Promise.resolve().then(()=>index$3),{FetchInstrumentation:e}=t,l=await Promise.resolve().then(()=>index$2),{ZoneContextManager:c}=l,_=await Promise.resolve().then(()=>index$4),{registerInstrumentations:d}=_,E=await Promise.resolve().then(()=>index$7),{Resource:p}=E,f=await Promise.resolve().then(()=>detectResources$1),{detectResourcesSync:v}=f,g=await Promise.resolve().then(()=>index$1),{OTLPTraceExporter:O}=g,m=await Promise.resolve().then(()=>index),{B3Propagator:h,B3InjectEncoding:M}=m,b=await Promise.resolve().then(()=>index$6),{BatchSpanProcessor:V}=b;log__$1(`Initializing tracer with version ${n} and baseUrl ${r}`);const B=getCollectorUrl(r);log__$1(`Using collector URL ${B}`);const C=new O({url:B}),j={"service.version":n,"service.name":"ojs"};return new s({resource:new p(j).merge(v()),spanProcessors:[new a(new u),new V(C,{scheduledDelayMillis:500})]}).register({contextManager:new c,propagator:new h({injectEncoding:M.MULTI_HEADER})}),d({instrumentations:[new e({propagateTraceHeaderCorsUrls:[/.*/],ignoreUrls:[/^https:\/\/(.*\.)?adyen\.com/,/^https:\/\/(.*\.)?loopcrypto\.xyz/]})]}),globalTracer=trace.getTracer("openpay-js"),log__$1("Tracer initialized"),globalTracer},getCollectorUrl=n=>{const r=new URL(n).hostname;return r==="cde.openpaystaging.com"?"https://otel.openpaysandbox.com/v1/traces":r==="cde.getopenpay.com"?"https://otel.getopenpay.com/v1/traces":"http://localhost:4319/v1/traces"},ENCODING="0123456789ABCDEFGHJKMNPQRSTVWXYZ",ENCODING_LEN=32,RANDOM_LEN=16,TIME_LEN=10,TIME_MAX=0xffffffffffff;var ULIDErrorCode;(function(n){n.Base32IncorrectEncoding="B32_ENC_INVALID",n.DecodeTimeInvalidCharacter="DEC_TIME_CHAR",n.DecodeTimeValueMalformed="DEC_TIME_MALFORMED",n.EncodeTimeNegative="ENC_TIME_NEG",n.EncodeTimeSizeExceeded="ENC_TIME_SIZE_EXCEED",n.EncodeTimeValueMalformed="ENC_TIME_MALFORMED",n.PRNGDetectFailure="PRNG_DETECT",n.ULIDInvalid="ULID_INVALID",n.Unexpected="UNEXPECTED",n.UUIDInvalid="UUID_INVALID"})(ULIDErrorCode||(ULIDErrorCode={}));class ULIDError extends Error{constructor(r,o){super(`${o} (${r})`),this.name="ULIDError",this.code=r}}function randomChar(n){let r=Math.floor(n()*ENCODING_LEN);return r===ENCODING_LEN&&(r=ENCODING_LEN-1),ENCODING.charAt(r)}function detectPRNG(n){const r=detectRoot(),o=r&&(r.crypto||r.msCrypto)||null;if(typeof(o==null?void 0:o.getRandomValues)=="function")return()=>{const u=new Uint8Array(1);return o.getRandomValues(u),u[0]/255};if(typeof(o==null?void 0:o.randomBytes)=="function")return()=>o.randomBytes(1).readUInt8()/255;throw new ULIDError(ULIDErrorCode.PRNGDetectFailure,"Failed to find a reliable PRNG")}function detectRoot(){return inWebWorker()?self:typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:null}function encodeRandom(n,r){let o="";for(;n>0;n--)o=randomChar(r)+o;return o}function encodeTime(n,r=TIME_LEN){if(isNaN(n))throw new ULIDError(ULIDErrorCode.EncodeTimeValueMalformed,`Time must be a number: ${n}`);if(n>TIME_MAX)throw new ULIDError(ULIDErrorCode.EncodeTimeSizeExceeded,`Cannot encode a time larger than ${TIME_MAX}: ${n}`);if(n<0)throw new ULIDError(ULIDErrorCode.EncodeTimeNegative,`Time must be positive: ${n}`);if(Number.isInteger(n)===!1)throw new ULIDError(ULIDErrorCode.EncodeTimeValueMalformed,`Time must be an integer: ${n}`);let o,u="";for(let a=r;a>0;a--)o=n%ENCODING_LEN,u=ENCODING.charAt(o)+u,n=(n-o)/ENCODING_LEN;return u}function inWebWorker(){return typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope}function ulid(n,r){const o=detectPRNG(),u=Date.now();return encodeTime(u,TIME_LEN)+encodeRandom(RANDOM_LEN,o)}const COOKIE_NAME="op_analytics_device_token",getDeviceToken=()=>{const n=document.cookie.split(";").find(o=>o.includes(COOKIE_NAME));if(n)return n.split("=")[1];const r=ulid();return setDeviceToken(r),r},setDeviceToken=n=>{const r=new Date;r.setFullYear(r.getFullYear()+1),document.cookie=`${COOKIE_NAME}=${n}; path=/; expires=${r.toUTCString()}`};function detectFramework(){try{const n=getWindowSafe(),r=n;if(r!=null&&r.next||r!=null&&r.__NEXT_DATA__||document.querySelector("#__next"))return"nextjs";const o=n;if(o!=null&&o.__NUXT__||document.querySelector("#__nuxt"))return"nuxt";if(Object.keys(document).find(a=>a.includes("react"))||Array.from(document.body.querySelectorAll("body > *")).find(a=>a._reactRootContainer))return"react";const u=n;return u!=null&&u.Vue||u!=null&&u.__VUE__?"vue":document.querySelector("[ng-version]")?"angular":"vanilla"}catch{return"unknown"}}function getFrameworkVersion(n){var r,o,u;try{switch(n){case"react":return null;case"nextjs":{const s=getWindowSafe();return((r=s==null?void 0:s.next)==null?void 0:r.version)||((o=s==null?void 0:s.__NEXT_DATA__)==null?void 0:o.buildId)||null}case"nuxt":return null;case"vue":return null;case"angular":{const a=(u=getWindowSafe())==null?void 0:u.document,s=a==null?void 0:a.querySelector("[ng-version]");return s?s.getAttribute("ng-version"):null}default:return null}}catch{return null}}function getFrameworkInfo(){const n=detectFramework(),r=getFrameworkVersion(n);return{framework:n,version:r}}class OpenPayFormEventHandler{constructor(r,o,u,a){this.handleMessage=s=>{if(!s.source){console.warn("[OJS] No source found");return}if(getCleanOrigin(s.origin)!==getCleanOrigin(this.baseUrl)||typeof s.data=="object"&&s.data.penpal||typeof s.data=="object"&&s.data.source&&s.data.source==="react-devtools-bridge")return;let t=null;try{t=parseEventPayload(JSON.parse(s.data))}catch{return}if(!this.validateEvent(t))return;const{elementId:l,payload:c}=t,_=c.type;switch(_){case"LAYOUT":this.internalCallbacks.setFormHeight(c.height?`${c.height}px`:"100%");break;case"FOCUS":this.formCallbacks.get.onFocus(l,c.elementType);break;case"BLUR":this.formCallbacks.get.onBlur(l,c.elementType,{obfuscatedValue:c.obfuscatedValue});break;case"CHANGE":this.formCallbacks.get.onChange(l,c.elementType,c.errors);break;case"LOADED":this.eventTargets[l]=s.source,this.internalCallbacks.onCdeLoaded(c);break;case"LOAD_ERROR":this.internalCallbacks.onCdeLoadError(c.message);break;case"VALIDATION_ERROR":this.formCallbacks.get.onValidationError(c.elementType,c.errors,l);break;default:console.warn("[form] Unhandled event type:",_)}},this.validateEvent=s=>s.formId!==this.formId||!s.elementId?(console.log("[OJS] formId",this.formId,s.formId),console.warn("[form] Ignoring unknown event:",s),!1):this.nonces.has(s.nonce)?(console.warn("[form] Ignoring duplicate event:",s),!1):(this.nonces.add(s.nonce),!0),this.eventTargets={},this.nonces=new Set,this.formId=r,this.baseUrl=o,this.formCallbacks=u,this.internalCallbacks=a}}const getCleanOrigin=n=>new URL(n).origin;async function createConnection(n,r){const u=await connectToChild({iframe:n,debug:!1,childOrigin:r}).promise,a=await checkIfValidCdeConnectionObject(u);if(!isResultValid(u,a))throw new Error("Got invalid CDE connection object");return u}class ConnectionManager{constructor(){this.connections=new Map}addConnection(r,o){this.connections.set(r,o)}getConnection(){const r=this.connections.values().next().value;if(!r)throw new Error("Connection not found");return r}getAllConnections(){return this.connections}}const setupPaymentRequestHandlers=(n,r,o)=>{const{stripePR:u}=n;u.publisher.subscribe(a=>{if(a.isSuccess){const s=a.loadedValue,t=s.isAvailable&&s.availableProviders.applePay,e=s.isAvailable&&s.availableProviders.googlePay,l={apple_pay:{isLoading:!1,isAvailable:t,startFlow:async c=>{t&&runStripePrFlow("apple_pay",s,r,o,c)}},google_pay:{isLoading:!1,isAvailable:e,startFlow:async c=>{e&&runStripePrFlow("google_pay",s,r,o,c)}}};o.get.onPaymentRequestLoad(l)}})},runStripePrFlow=(n,r,o,u,a)=>OjsFlows.stripePR.run({context:o,checkoutPaymentMethod:findCheckoutPaymentMethodStrict(o.checkoutPaymentMethods,n),nonCdeFormInputs:createInputsDictFromForm(o.formDiv),formCallbacks:u,customParams:{provider:n,overridePaymentRequest:a==null?void 0:a.overridePaymentRequest},initResult:r}),GENERIC_CONN_ERR="The secure form failed to load properly. Please check your internet connection, or try again later.",{log__,err__}=createOjsFlowLoggers("op-form"),ie=class ie{constructor(r){var a;this.isDestroyed=!1,this.cdeLoadEvent=new LoadedOncePublisher,this.anyCdeConn=new LoadedOncePublisher,this.context=new LoadedOncePublisher,this.initFlows=createInitFlowsPublishers(),this.isSubmitting=!1,this.startFormInit=async()=>{const s=trace.getTracer("openpay-js"),t=s.startSpan("form.initialize",{kind:SpanKind.CLIENT,attributes:{"ojs.checkoutSecureToken":this.config.checkoutSecureToken,"ojs.deviceToken":this.deviceToken,"ojs.formId":this.formId,"ojs.version":this.ojsVersion,"ojs.release_version":this.ojsReleaseVersion,"ojs.base_url":this.baseUrl,"ojs.referrer":this.referrer}});return context.with(trace.setSpan(context.active(),t),async()=>{try{const e=this.createElement(ElementTypeEnum.CDE_BRIDGE);e.node.id="__op_internal_cde_bridge",e.node.ariaHidden="true",Object.assign(e.node.style,{border:"none",margin:"0px",padding:"0px",width:"1px",height:"1px",overflow:"hidden",visibility:"hidden",position:"fixed",pointerEvents:"none",userSelect:"none"}),e.mount("body"),log__("CDE bridge element mounted"),log__("Initializing OpenPay form:"),log__("├ Waiting for CDE load event...");const l=await this.cdeLoadEvent.waitForLoad({timeoutSec:120,timeoutErrMsg:GENERIC_CONN_ERR});log__("├ CDE load event received"),t==null||t.addEvent("waiting_for_cde_connection"),log__("├ Waiting for CDE connection...");const c=s==null?void 0:s.startSpan("cde.connect",void 0,context.active()),_=await this.anyCdeConn.waitForLoad({timeoutSec:120,timeoutErrMsg:GENERIC_CONN_ERR});c==null||c.end(),t==null||t.addEvent("cde_connected"),log__("├ CDE connection received"),await setUserDeviceToken(_,this.deviceToken),log__("├ Creating OJS context, setting up handlers...");const d=ie.buildOjsFlowContext(this.config,l,_,this.getFormDiv());this.context.set(d),setupPaymentRequestHandlers(this.initFlows,d,this.formCallbacks),log__("├ Starting OJS init flows..."),await startAllInitFlows(this.initFlows,d,this.formCallbacks),this.formCallbacks.get.onLoad(l.totalAmountAtoms,l.currency),log__("╰ Done initializing OJS flows."),t==null||t.setStatus({code:SpanStatusCode.OK}),track("form_loaded")}catch(e){const l=getErrorMessage(e);t==null||t.setStatus({code:SpanStatusCode.ERROR,message:l}),err__("╰ Error initializing OP form:",l),track("form_init_error",{error:l}),this.formCallbacks.get.onLoadError(l)}finally{t==null||t.end()}})},this.setFormHeight=s=>{this.formProperties.height=s,this.registeredElements&&Object.values(this.registeredElements).forEach(t=>{!t||t.type===ElementTypeEnum.CDE_BRIDGE||(t.node.style.height=s)})},this.onCdeLoaded=s=>{this.cdeLoadEvent.current.isSuccess||(this.cdeLoadEvent.set(s),track("cde_loaded"))},this.onCdeLoadError=s=>{this.cdeLoadEvent.current.isSuccess||(this.cdeLoadEvent.throw(new Error(s),s),track("cde_load_error",{error:s}))},this.createElement=(s,t={})=>{if(this.checkValidFormInstance("createElement"),!this.config)throw new Error("OpenPay form not initialized");const e=ElementType.parse(s),l=document.createElement("iframe"),c=this.buildQueryString(t);l.name=`${e}-element`;const _=new URL(`/app/v1/${l.name}/`,this.config.baseUrl);return _.search=c.toString(),l.src=_.href,l.style.border="none",l.style.width="100%",this.registerIframe(e,l)},this.registerIframe=(s,t)=>{const e={type:s,node:t,mount:l=>{var c;(c=document.querySelector(l))==null||c.appendChild(t),track("element_mounted",{element_type:s})}};return this.connectToElement({type:e.type,node:e.node}),this.registeredElements||(this.registeredElements={[ElementTypeEnum.CARD]:void 0,[ElementTypeEnum.CARD_NUMBER]:void 0,[ElementTypeEnum.CARD_EXPIRY]:void 0,[ElementTypeEnum.CARD_CVC]:void 0,[ElementTypeEnum.CDE_BRIDGE]:void 0}),this.registeredElements[s]=e,e},this.buildQueryString=s=>{const t=new URLSearchParams;return t.append("referer",this.referrer),t.append("formId",this.formId),s.styles&&t.append("styles",convertStylesToQueryString(s.styles)),t.append("secureToken",this.config.checkoutSecureToken),t},this.connectToElement=s=>createTrackingSpan({spanName:"connect_to_element",checkoutSecureToken:this.config.checkoutSecureToken,deviceToken:this.deviceToken,formId:this.formId,version:this.ojsVersion,releaseVersion:this.ojsReleaseVersion,baseUrl:this.baseUrl,referrer:this.referrer},async()=>{const t=await createConnection(s.node);t.tracingContext={checkoutSecureToken:this.config.checkoutSecureToken,deviceToken:this.deviceToken,formId:this.formId,version:this.ojsVersion,releaseVersion:this.ojsReleaseVersion,baseUrl:this.baseUrl,referrer:this.referrer},this.connectionManager.addConnection(s.type,t),!this.anyCdeConn.current.isSuccess&&s.type===ElementTypeEnum.CDE_BRIDGE&&this.anyCdeConn.set(t)}).catch(t=>err__("[FORM] Error connecting to CDE iframe",t)),this.getFormDiv=()=>document.querySelector(this.formTarget)??document.body,this.submitCard=async s=>{if(this.isSubmitting){err__("Form is already submitting. Please wait for the submission to finish before submitting again.");return}this.isSubmitting=!0;try{const t=await createTrackingSpan({spanName:"submit_card",checkoutSecureToken:this.config.checkoutSecureToken,deviceToken:this.deviceToken,formId:this.formId,version:this.ojsVersion,releaseVersion:this.ojsReleaseVersion,baseUrl:this.baseUrl,referrer:this.referrer,paymentRouteId:s==null?void 0:s.paymentRouteId},async()=>{track("submit_card",{...s}),this.checkValidFormInstance("submitCard");const e=this.context.getValueIfLoadedElse(null);if(!e)throw new Error("Please wait for the form to finish loading before submitting.");await OjsFlows.commonCC.run({context:e,checkoutPaymentMethod:findCheckoutPaymentMethodStrict(e.checkoutPaymentMethods,"credit_card"),nonCdeFormInputs:createInputsDictFromForm(e.formDiv),formCallbacks:this.formCallbacks,customParams:{currentCdeConnections:this.connectionManager.getAllConnections(),paymentRouteId:s==null?void 0:s.paymentRouteId},initResult:void 0})});return this.isSubmitting=!1,t}catch(t){throw this.isSubmitting=!1,t}},this.getAvailablePaymentMethods=()=>createTrackingSpan({spanName:"get_available_payment_methods",checkoutSecureToken:this.config.checkoutSecureToken,deviceToken:this.deviceToken,formId:this.formId,version:this.ojsVersion,releaseVersion:this.ojsReleaseVersion,baseUrl:this.baseUrl,referrer:this.referrer},()=>{if(this.checkValidFormInstance("getAvailablePaymentMethods"),!this.context.getValueIfLoadedElse(null))throw new Error("Please wait for the form to finish loading before getting available payment methods.");const t={paypal:SubmitMethods.paypal,airwallexGooglePay:SubmitMethods.airwallexGooglePay,airwallexApplePay:SubmitMethods.airwallexApplePay,authorizeNetGooglePay:SubmitMethods.authorizenetGooglePay,authorizeNetApplePay:SubmitMethods.authorizenetApplePay},e=Object.entries(this.initFlows).map(([l,c])=>({name:t[l]??l,...c.publisher.getValueIfLoadedElse(null)}));return track("get_available_payment_methods",{available_payment_methods:e}),e}),this.generalSubmit=async(s,t)=>{if(this.isSubmitting){err__("Form is already submitting. Please wait for the submission to finish before submitting again.");return}this.isSubmitting=!0;try{const e=await createTrackingSpan({spanName:"general_form_submit",checkoutSecureToken:this.config.checkoutSecureToken,deviceToken:this.deviceToken,formId:this.formId,version:this.ojsVersion,releaseVersion:this.ojsReleaseVersion,baseUrl:this.baseUrl,referrer:this.referrer},async()=>{track("general_form_submit",{method:s,settings:t}),this.checkValidFormInstance("generalSubmit");const l=this.context.getValueIfLoadedElse(null);if(!l)throw new Error("Please wait for the form to finish loading before submitting.");switch(s){case SubmitMethods.pockytPaypal:return OjsFlows.pockytPaypal.run({context:l,checkoutPaymentMethod:findCheckoutPaymentMethodStrict(l.checkoutPaymentMethods,"paypal","pockyt"),nonCdeFormInputs:createInputsDictFromForm(l.formDiv),formCallbacks:this.formCallbacks,customParams:{settings:t},initResult:void 0});case SubmitMethods.paypal:return OjsFlows.paypal.run({context:l,checkoutPaymentMethod:findCheckoutPaymentMethodStrict(l.checkoutPaymentMethods,"paypal","paypal"),nonCdeFormInputs:createInputsDictFromForm(l.formDiv),initResult:void 0,customParams:{settings:t},formCallbacks:this.formCallbacks});case SubmitMethods.airwallexGooglePay:{const c=this.initFlows.airwallexGooglePay.publisher.getValueIfLoadedElse(null);if(!c){err__("airwallex-google-pay is not available. Please check the availability using 'getAvailablePaymentMethods()'");return}return c.startFlow(t)}case SubmitMethods.airwallexApplePay:{const c=this.initFlows.airwallexApplePay.publisher.getValueIfLoadedElse(null);if(!c){err__("airwallex-apple-pay is not available. Please check the availability using 'getAvailablePaymentMethods()'");return}return c.startFlow(t)}case SubmitMethods.authorizenetGooglePay:{const c=this.initFlows.authorizeNetGooglePay.publisher.getValueIfLoadedElse(null);if(!c){err__("authorize-net-google-pay is not available. Please check the availability using 'getAvailablePaymentMethods()'");return}return c.startFlow(t)}case SubmitMethods.authorizenetApplePay:{const c=this.initFlows.authorizeNetApplePay.publisher.getValueIfLoadedElse(null);if(!c){err__("authorize-net-apple-pay is not available. Please check the availability using 'getAvailablePaymentMethods()'");return}return c.startFlow(t)}case SubmitMethods.loopCrypto:return OjsFlows.loopCrypto.run({context:l,checkoutPaymentMethod:findCheckoutPaymentMethodStrict(l.checkoutPaymentMethods,"crypto","loop"),nonCdeFormInputs:createInputsDictFromForm(l.formDiv),formCallbacks:this.formCallbacks,customParams:t,initResult:void 0});default:assertNever(s)}});return this.isSubmitting=!1,e}catch(e){throw this.isSubmitting=!1,e}},this.submit=this.submitCard,this.destroy=()=>{var s;log__("Destroying OpenPay form..."),this.checkValidFormInstance("destroy"),this.isDestroyed=!0;for(const t of Object.values(this.registeredElements??{}))t&&t.node.remove();(s=getWindowSafe())==null||s.removeEventListener("message",this.eventHandler.handleMessage.bind(this.eventHandler)),detachErrorListeners(),this.registeredElements=null,delete window.ojs,track("form_destroyed")},this.updateCallbacks=s=>{this.formCallbacks.setCallbacks(s)},ie.assignAsSingleton(this),this.ojsVersion="0.3.10",this.ojsReleaseVersion="0.3.10",this.baseUrl=r.baseUrl??"https://cde.getopenpay.com",this.config={...r,baseUrl:this.baseUrl},this.formCallbacks=FormCallbacks.fromObject(r),this.registeredElements=null,this.formId=`opjs-form-${v4()}`,this.referrer=window.location.origin,this.formTarget=r.formTarget??"body",this.formProperties={height:"1px"},this.connectionManager=new ConnectionManager,this.deviceToken=getDeviceToken(),attachErrorListeners();const{framework:o,version:u}=getFrameworkInfo();getCurrentEnv(this.baseUrl).then(s=>{if(!metricsPublisher.current.isSuccess){const t={checkoutSecureToken:this.config.checkoutSecureToken,deviceToken:this.deviceToken,environment:s,framework:o,frameworkVersion:u,ojsVersion:this.ojsVersion,ojsReleaseVersion:this.ojsReleaseVersion,referrer:this.referrer,baseUrl:this.baseUrl};metricsPublisher.set(t)}}),track("form_init"),r.allowTracing===!0&&initTracerSafe(this.ojsVersion,this.baseUrl),this.eventHandler=new OpenPayFormEventHandler(this.formId,this.baseUrl,this.formCallbacks,{setFormHeight:this.setFormHeight,onCdeLoaded:this.onCdeLoaded,onCdeLoadError:this.onCdeLoadError}),(a=getWindowSafe())==null||a.addEventListener("message",this.eventHandler.handleMessage.bind(this.eventHandler)),this.startFormInit()}get checkoutSecureToken(){return this.config.checkoutSecureToken}checkValidFormInstance(r="unknown"){const o=ie.getInstance(),u={caller:r,thisFormId:this.formId,currentFormId:(o==null?void 0:o.formId)||"no-current-instance",isDestroyed:this.isDestroyed,checkoutToken:this.config.checkoutSecureToken.substring(0,10)+"..."},a=`
26
26
  [Warning] Invalid form instance detected.
27
27
  It looks like you are still using an old instance that has been destroyed.
28
28
  Please make sure you are using the latest instance of the form and cleanup event listeners.
@@ -1,4 +1,4 @@
1
- import { r as f, D as s, g as _, u as v } from "./index-CwsGN1jX.js";
1
+ import { r as f, D as s, g as _, u as v } from "./index-CsHbuY7s.js";
2
2
  var o = /* @__PURE__ */ function() {
3
3
  var t = function(e, n) {
4
4
  return t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(r, a) {
@@ -1,4 +1,4 @@
1
- import { a } from "./index-CwsGN1jX.js";
1
+ import { a } from "./index-CsHbuY7s.js";
2
2
  import { _ as N, c as R } from "./utils-BGeftTvk.js";
3
3
  var r;
4
4
  (function(E) {
@@ -1,4 +1,4 @@
1
- import { D as P, C as O_, b as s_, r as P_, u as R_, g as D_ } from "./index-CwsGN1jX.js";
1
+ import { D as P, C as O_, b as s_, r as P_, u as R_, g as D_ } from "./index-CsHbuY7s.js";
2
2
  import { c as A } from "./utils-BGeftTvk.js";
3
3
  var C_ = function(S, E) {
4
4
  var T = typeof Symbol == "function" && S[Symbol.iterator];
@@ -1,6 +1,6 @@
1
- import { d as I } from "./diag-api-Cm1lbK_u.js";
2
- import { m as x } from "./metrics-api-BUJg5ln1.js";
3
- import { t as E } from "./index-CwsGN1jX.js";
1
+ import { d as I } from "./diag-api-CiDu2N_T.js";
2
+ import { m as x } from "./metrics-api-DlqE-441.js";
3
+ import { t as E } from "./index-CsHbuY7s.js";
4
4
  var L = (
5
5
  /** @class */
6
6
  function() {