@getopenpay/openpay-js 0.4.0-alpha.9dd923d → 0.4.0-alpha.b969cf5

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
@@ -1,4 +1,4 @@
1
- (function(de,ee){typeof exports=="object"&&typeof module<"u"?ee(exports):typeof define=="function"&&define.amd?define(["exports"],ee):(de=typeof globalThis<"u"?globalThis:de||self,ee(de.OpenPay={}))})(this,function(exports){"use strict";var de;function _mergeNamespaces(n,r){for(var o=0;o<r.length;o++){const u=r[o];if(typeof u!="string"&&!Array.isArray(u)){for(const a in u)if(a!=="default"&&!(a in n)){const s=Object.getOwnPropertyDescriptor(u,a);s&&Object.defineProperty(n,a,s.get?s:{enumerable:!0,get:()=>u[a]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}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:p,args:E,id:f}=d;o(`${u}: Received ${p}() call`);const m=g=>O=>{if(o(`${u}: Sending ${p}() reply`),l){o(`${u}: Unable to send ${p}() reply due to destroyed connection`);return}const v={penpal:MessageType.Reply,id:f,resolution:g,returnValue:O};g===Resolution.Rejected&&O instanceof Error&&(v.returnValue=serializeError(O),v.returnValueIsError=!0);try{s.postMessage(v,t)}catch(A){if(A.name===NativeErrorName.DataCloneError){const M={penpal:MessageType.Reply,id:f,resolution:Resolution.Rejected,returnValue:serializeError(A),returnValueIsError:!0};s.postMessage(M,t)}throw A}};new Promise(g=>g(r[p].apply(r,E))).then(m(Resolution.Fulfilled),m(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=E=>(...f)=>{a(`${s}: Sending ${E}() call`);let m;try{e.closed&&(m=!0)}catch{m=!0}if(m&&u(),_){const g=new Error(`Unable to send ${E}() call due to destroyed connection`);throw g.code=ErrorCode.ConnectionDestroyed,g}return new Promise((g,O)=>{const v=generateId(),A=b=>{if(b.source!==e||b.data.penpal!==MessageType.Reply||b.data.id!==v)return;if(c!=="*"&&b.origin!==c){a(`${s} received message from origin ${b.origin} which did not match expected origin ${c}`);return}const I=b.data;a(`${s}: Received ${E}() reply`),t.removeEventListener(NativeEventType.Message,A);let U=I.returnValue;I.returnValueIsError&&(U=deserializeError(U)),(I.resolution===Resolution.Fulfilled?g:O)(U)};t.addEventListener(NativeEventType.Message,A);const M={penpal:MessageType.Call,id:v,methodName:E,args:f};e.postMessage(M,l)})},p=o.reduce((E,f)=>(E[f]=d(f),E),{});return Object.assign(n,deserializeMethods(p)),()=>{_=!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(E=>{delete c[E]}),l=_.data.methodNames;const p=connectCallSender(c,d,l,s,a);return t(p),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),p=handleSynMessageFactory(t,d,u,_),E=handleAckMessageFactory(d,u,_,e,t);return{promise:new Promise((m,g)=>{const O=startConnectionTimeout(a,c),v=A=>{if(!(A.source!==r.contentWindow||!A.data)){if(A.data.penpal===MessageType.Syn){p(A);return}if(A.data.penpal===MessageType.Ack){const M=E(A);M&&(O(),m(M));return}}};window.addEventListener(NativeEventType.Message,v),t("Parent: Awaiting handshake"),monitorIframeRemoval(r,e),l(A=>{window.removeEventListener(NativeEventType.Message,v),A&&g(A)})}),destroy(){c()}}};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$9=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$9(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),util$5;(function(n){n.assertEqual=a=>a;function r(a){}n.assertIs=r;function o(a){throw new Error}n.assertNever=o,n.arrayToEnum=a=>{const s={};for(const t of a)s[t]=t;return s},n.getValidEnumValues=a=>{const s=n.objectKeys(a).filter(e=>typeof a[a[e]]!="number"),t={};for(const e of s)t[e]=a[e];return n.objectValues(t)},n.objectValues=a=>n.objectKeys(a).map(function(s){return a[s]}),n.objectKeys=typeof Object.keys=="function"?a=>Object.keys(a):a=>{const s=[];for(const t in a)Object.prototype.hasOwnProperty.call(a,t)&&s.push(t);return s},n.find=(a,s)=>{for(const t of a)if(s(t))return t},n.isInteger=typeof Number.isInteger=="function"?a=>Number.isInteger(a):a=>typeof a=="number"&&isFinite(a)&&Math.floor(a)===a;function u(a,s=" | "){return a.map(t=>typeof t=="string"?`'${t}'`:t).join(s)}n.joinValues=u,n.jsonStringifyReplacer=(a,s)=>typeof s=="bigint"?s.toString():s})(util$5||(util$5={}));var objectUtil;(function(n){n.mergeShapes=(r,o)=>({...r,...o})})(objectUtil||(objectUtil={}));const ZodParsedType=util$5.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),getParsedType=n=>{switch(typeof n){case"undefined":return ZodParsedType.undefined;case"string":return ZodParsedType.string;case"number":return isNaN(n)?ZodParsedType.nan:ZodParsedType.number;case"boolean":return ZodParsedType.boolean;case"function":return ZodParsedType.function;case"bigint":return ZodParsedType.bigint;case"symbol":return ZodParsedType.symbol;case"object":return Array.isArray(n)?ZodParsedType.array:n===null?ZodParsedType.null:n.then&&typeof n.then=="function"&&n.catch&&typeof n.catch=="function"?ZodParsedType.promise:typeof Map<"u"&&n instanceof Map?ZodParsedType.map:typeof Set<"u"&&n instanceof Set?ZodParsedType.set:typeof Date<"u"&&n instanceof Date?ZodParsedType.date:ZodParsedType.object;default:return ZodParsedType.unknown}},ZodIssueCode=util$5.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),quotelessJson=n=>JSON.stringify(n,null,2).replace(/"([^"]+)":/g,"$1:");class ZodError extends Error{constructor(r){super(),this.issues=[],this.addIssue=u=>{this.issues=[...this.issues,u]},this.addIssues=(u=[])=>{this.issues=[...this.issues,...u]};const o=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,o):this.__proto__=o,this.name="ZodError",this.issues=r}get errors(){return this.issues}format(r){const o=r||function(s){return s.message},u={_errors:[]},a=s=>{for(const t of s.issues)if(t.code==="invalid_union")t.unionErrors.map(a);else if(t.code==="invalid_return_type")a(t.returnTypeError);else if(t.code==="invalid_arguments")a(t.argumentsError);else if(t.path.length===0)u._errors.push(o(t));else{let e=u,l=0;for(;l<t.path.length;){const c=t.path[l];l===t.path.length-1?(e[c]=e[c]||{_errors:[]},e[c]._errors.push(o(t))):e[c]=e[c]||{_errors:[]},e=e[c],l++}}};return a(this),u}static assert(r){if(!(r instanceof ZodError))throw new Error(`Not a ZodError: ${r}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,util$5.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(r=o=>o.message){const o={},u=[];for(const a of this.issues)a.path.length>0?(o[a.path[0]]=o[a.path[0]]||[],o[a.path[0]].push(r(a))):u.push(r(a));return{formErrors:u,fieldErrors:o}}get formErrors(){return this.flatten()}}ZodError.create=n=>new ZodError(n);const errorMap=(n,r)=>{let o;switch(n.code){case ZodIssueCode.invalid_type:n.received===ZodParsedType.undefined?o="Required":o=`Expected ${n.expected}, received ${n.received}`;break;case ZodIssueCode.invalid_literal:o=`Invalid literal value, expected ${JSON.stringify(n.expected,util$5.jsonStringifyReplacer)}`;break;case ZodIssueCode.unrecognized_keys:o=`Unrecognized key(s) in object: ${util$5.joinValues(n.keys,", ")}`;break;case ZodIssueCode.invalid_union:o="Invalid input";break;case ZodIssueCode.invalid_union_discriminator:o=`Invalid discriminator value. Expected ${util$5.joinValues(n.options)}`;break;case ZodIssueCode.invalid_enum_value:o=`Invalid enum value. Expected ${util$5.joinValues(n.options)}, received '${n.received}'`;break;case ZodIssueCode.invalid_arguments:o="Invalid function arguments";break;case ZodIssueCode.invalid_return_type:o="Invalid function return type";break;case ZodIssueCode.invalid_date:o="Invalid date";break;case ZodIssueCode.invalid_string:typeof n.validation=="object"?"includes"in n.validation?(o=`Invalid input: must include "${n.validation.includes}"`,typeof n.validation.position=="number"&&(o=`${o} at one or more positions greater than or equal to ${n.validation.position}`)):"startsWith"in n.validation?o=`Invalid input: must start with "${n.validation.startsWith}"`:"endsWith"in n.validation?o=`Invalid input: must end with "${n.validation.endsWith}"`:util$5.assertNever(n.validation):n.validation!=="regex"?o=`Invalid ${n.validation}`:o="Invalid";break;case ZodIssueCode.too_small:n.type==="array"?o=`Array must contain ${n.exact?"exactly":n.inclusive?"at least":"more than"} ${n.minimum} element(s)`:n.type==="string"?o=`String must contain ${n.exact?"exactly":n.inclusive?"at least":"over"} ${n.minimum} character(s)`:n.type==="number"?o=`Number must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${n.minimum}`:n.type==="date"?o=`Date must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(n.minimum))}`:o="Invalid input";break;case ZodIssueCode.too_big:n.type==="array"?o=`Array must contain ${n.exact?"exactly":n.inclusive?"at most":"less than"} ${n.maximum} element(s)`:n.type==="string"?o=`String must contain ${n.exact?"exactly":n.inclusive?"at most":"under"} ${n.maximum} character(s)`:n.type==="number"?o=`Number must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`:n.type==="bigint"?o=`BigInt must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`:n.type==="date"?o=`Date must be ${n.exact?"exactly":n.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(n.maximum))}`:o="Invalid input";break;case ZodIssueCode.custom:o="Invalid input";break;case ZodIssueCode.invalid_intersection_types:o="Intersection results could not be merged";break;case ZodIssueCode.not_multiple_of:o=`Number must be a multiple of ${n.multipleOf}`;break;case ZodIssueCode.not_finite:o="Number must be finite";break;default:o=r.defaultError,util$5.assertNever(n)}return{message:o}};let overrideErrorMap=errorMap;function setErrorMap(n){overrideErrorMap=n}function getErrorMap(){return overrideErrorMap}const makeIssue=n=>{const{data:r,path:o,errorMaps:u,issueData:a}=n,s=[...o,...a.path||[]],t={...a,path:s};if(a.message!==void 0)return{...a,path:s,message:a.message};let e="";const l=u.filter(c=>!!c).slice().reverse();for(const c of l)e=c(t,{data:r,defaultError:e}).message;return{...a,path:s,message:e}},EMPTY_PATH=[];function addIssueToContext(n,r){const o=getErrorMap(),u=makeIssue({issueData:r,data:n.data,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,o,o===errorMap?void 0:errorMap].filter(a=>!!a)});n.common.issues.push(u)}class ParseStatus{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(r,o){const u=[];for(const a of o){if(a.status==="aborted")return INVALID;a.status==="dirty"&&r.dirty(),u.push(a.value)}return{status:r.value,value:u}}static async mergeObjectAsync(r,o){const u=[];for(const a of o){const s=await a.key,t=await a.value;u.push({key:s,value:t})}return ParseStatus.mergeObjectSync(r,u)}static mergeObjectSync(r,o){const u={};for(const a of o){const{key:s,value:t}=a;if(s.status==="aborted"||t.status==="aborted")return INVALID;s.status==="dirty"&&r.dirty(),t.status==="dirty"&&r.dirty(),s.value!=="__proto__"&&(typeof t.value<"u"||a.alwaysSet)&&(u[s.value]=t.value)}return{status:r.value,value:u}}}const INVALID=Object.freeze({status:"aborted"}),DIRTY=n=>({status:"dirty",value:n}),OK=n=>({status:"valid",value:n}),isAborted=n=>n.status==="aborted",isDirty=n=>n.status==="dirty",isValid=n=>n.status==="valid",isAsync=n=>typeof Promise<"u"&&n instanceof Promise;function __classPrivateFieldGet(n,r,o,u){if(typeof r=="function"?n!==r||!u:!r.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r.get(n)}function __classPrivateFieldSet(n,r,o,u,a){if(typeof r=="function"?n!==r||!a:!r.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r.set(n,o),o}typeof SuppressedError=="function"&&SuppressedError;var errorUtil;(function(n){n.errToObj=r=>typeof r=="string"?{message:r}:r||{},n.toString=r=>typeof r=="string"?r:r==null?void 0:r.message})(errorUtil||(errorUtil={}));var _ZodEnum_cache,_ZodNativeEnum_cache;class ParseInputLazyPath{constructor(r,o,u,a){this._cachedPath=[],this.parent=r,this.data=o,this._path=u,this._key=a}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const handleResult=(n,r)=>{if(isValid(r))return{success:!0,data:r.value};if(!n.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const o=new ZodError(n.common.issues);return this._error=o,this._error}}};function processCreateParams(n){if(!n)return{};const{errorMap:r,invalid_type_error:o,required_error:u,description:a}=n;if(r&&(o||u))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return r?{errorMap:r,description:a}:{errorMap:(t,e)=>{var l,c;const{message:_}=n;return t.code==="invalid_enum_value"?{message:_??e.defaultError}:typeof e.data>"u"?{message:(l=_??u)!==null&&l!==void 0?l:e.defaultError}:t.code!=="invalid_type"?{message:e.defaultError}:{message:(c=_??o)!==null&&c!==void 0?c:e.defaultError}},description:a}}class ZodType{constructor(r){this.spa=this.safeParseAsync,this._def=r,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(r){return getParsedType(r.data)}_getOrReturnCtx(r,o){return o||{common:r.parent.common,data:r.data,parsedType:getParsedType(r.data),schemaErrorMap:this._def.errorMap,path:r.path,parent:r.parent}}_processInputParams(r){return{status:new ParseStatus,ctx:{common:r.parent.common,data:r.data,parsedType:getParsedType(r.data),schemaErrorMap:this._def.errorMap,path:r.path,parent:r.parent}}}_parseSync(r){const o=this._parse(r);if(isAsync(o))throw new Error("Synchronous parse encountered promise.");return o}_parseAsync(r){const o=this._parse(r);return Promise.resolve(o)}parse(r,o){const u=this.safeParse(r,o);if(u.success)return u.data;throw u.error}safeParse(r,o){var u;const a={common:{issues:[],async:(u=o==null?void 0:o.async)!==null&&u!==void 0?u:!1,contextualErrorMap:o==null?void 0:o.errorMap},path:(o==null?void 0:o.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:r,parsedType:getParsedType(r)},s=this._parseSync({data:r,path:a.path,parent:a});return handleResult(a,s)}async parseAsync(r,o){const u=await this.safeParseAsync(r,o);if(u.success)return u.data;throw u.error}async safeParseAsync(r,o){const u={common:{issues:[],contextualErrorMap:o==null?void 0:o.errorMap,async:!0},path:(o==null?void 0:o.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:r,parsedType:getParsedType(r)},a=this._parse({data:r,path:u.path,parent:u}),s=await(isAsync(a)?a:Promise.resolve(a));return handleResult(u,s)}refine(r,o){const u=a=>typeof o=="string"||typeof o>"u"?{message:o}:typeof o=="function"?o(a):o;return this._refinement((a,s)=>{const t=r(a),e=()=>s.addIssue({code:ZodIssueCode.custom,...u(a)});return typeof Promise<"u"&&t instanceof Promise?t.then(l=>l?!0:(e(),!1)):t?!0:(e(),!1)})}refinement(r,o){return this._refinement((u,a)=>r(u)?!0:(a.addIssue(typeof o=="function"?o(u,a):o),!1))}_refinement(r){return new ZodEffects({schema:this,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:{type:"refinement",refinement:r}})}superRefine(r){return this._refinement(r)}optional(){return ZodOptional.create(this,this._def)}nullable(){return ZodNullable.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ZodArray.create(this,this._def)}promise(){return ZodPromise.create(this,this._def)}or(r){return ZodUnion.create([this,r],this._def)}and(r){return ZodIntersection.create(this,r,this._def)}transform(r){return new ZodEffects({...processCreateParams(this._def),schema:this,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:{type:"transform",transform:r}})}default(r){const o=typeof r=="function"?r:()=>r;return new ZodDefault({...processCreateParams(this._def),innerType:this,defaultValue:o,typeName:ZodFirstPartyTypeKind.ZodDefault})}brand(){return new ZodBranded({typeName:ZodFirstPartyTypeKind.ZodBranded,type:this,...processCreateParams(this._def)})}catch(r){const o=typeof r=="function"?r:()=>r;return new ZodCatch({...processCreateParams(this._def),innerType:this,catchValue:o,typeName:ZodFirstPartyTypeKind.ZodCatch})}describe(r){const o=this.constructor;return new o({...this._def,description:r})}pipe(r){return ZodPipeline.create(this,r)}readonly(){return ZodReadonly.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const cuidRegex=/^c[^\s-]{8,}$/i,cuid2Regex=/^[0-9a-z]+$/,ulidRegex=/^[0-9A-HJKMNP-TV-Z]{26}$/,uuidRegex=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,nanoidRegex=/^[a-z0-9_-]{21}$/i,durationRegex=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,emailRegex=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,_emojiRegex="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let emojiRegex;const ipv4Regex=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv6Regex=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,base64Regex=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,dateRegexSource="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",dateRegex=new RegExp(`^${dateRegexSource}$`);function timeRegexSource(n){let r="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return n.precision?r=`${r}\\.\\d{${n.precision}}`:n.precision==null&&(r=`${r}(\\.\\d+)?`),r}function timeRegex(n){return new RegExp(`^${timeRegexSource(n)}$`)}function datetimeRegex(n){let r=`${dateRegexSource}T${timeRegexSource(n)}`;const o=[];return o.push(n.local?"Z?":"Z"),n.offset&&o.push("([+-]\\d{2}:?\\d{2})"),r=`${r}(${o.join("|")})`,new RegExp(`^${r}$`)}function isValidIP(n,r){return!!((r==="v4"||!r)&&ipv4Regex.test(n)||(r==="v6"||!r)&&ipv6Regex.test(n))}class ZodString extends ZodType{_parse(r){if(this._def.coerce&&(r.data=String(r.data)),this._getType(r)!==ZodParsedType.string){const s=this._getOrReturnCtx(r);return addIssueToContext(s,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.string,received:s.parsedType}),INVALID}const u=new ParseStatus;let a;for(const s of this._def.checks)if(s.kind==="min")r.data.length<s.value&&(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{code:ZodIssueCode.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),u.dirty());else if(s.kind==="max")r.data.length>s.value&&(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{code:ZodIssueCode.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),u.dirty());else if(s.kind==="length"){const t=r.data.length>s.value,e=r.data.length<s.value;(t||e)&&(a=this._getOrReturnCtx(r,a),t?addIssueToContext(a,{code:ZodIssueCode.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):e&&addIssueToContext(a,{code:ZodIssueCode.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),u.dirty())}else if(s.kind==="email")emailRegex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"email",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty());else if(s.kind==="emoji")emojiRegex||(emojiRegex=new RegExp(_emojiRegex,"u")),emojiRegex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"emoji",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty());else if(s.kind==="uuid")uuidRegex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"uuid",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty());else if(s.kind==="nanoid")nanoidRegex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"nanoid",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty());else if(s.kind==="cuid")cuidRegex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"cuid",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty());else if(s.kind==="cuid2")cuid2Regex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"cuid2",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty());else if(s.kind==="ulid")ulidRegex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"ulid",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty());else if(s.kind==="url")try{new URL(r.data)}catch{a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"url",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"regex",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty())):s.kind==="trim"?r.data=r.data.trim():s.kind==="includes"?r.data.includes(s.value,s.position)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{code:ZodIssueCode.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),u.dirty()):s.kind==="toLowerCase"?r.data=r.data.toLowerCase():s.kind==="toUpperCase"?r.data=r.data.toUpperCase():s.kind==="startsWith"?r.data.startsWith(s.value)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{code:ZodIssueCode.invalid_string,validation:{startsWith:s.value},message:s.message}),u.dirty()):s.kind==="endsWith"?r.data.endsWith(s.value)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{code:ZodIssueCode.invalid_string,validation:{endsWith:s.value},message:s.message}),u.dirty()):s.kind==="datetime"?datetimeRegex(s).test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{code:ZodIssueCode.invalid_string,validation:"datetime",message:s.message}),u.dirty()):s.kind==="date"?dateRegex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{code:ZodIssueCode.invalid_string,validation:"date",message:s.message}),u.dirty()):s.kind==="time"?timeRegex(s).test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{code:ZodIssueCode.invalid_string,validation:"time",message:s.message}),u.dirty()):s.kind==="duration"?durationRegex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"duration",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty()):s.kind==="ip"?isValidIP(r.data,s.version)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"ip",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty()):s.kind==="base64"?base64Regex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"base64",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty()):util$5.assertNever(s);return{status:u.value,value:r.data}}_regex(r,o,u){return this.refinement(a=>r.test(a),{validation:o,code:ZodIssueCode.invalid_string,...errorUtil.errToObj(u)})}_addCheck(r){return new ZodString({...this._def,checks:[...this._def.checks,r]})}email(r){return this._addCheck({kind:"email",...errorUtil.errToObj(r)})}url(r){return this._addCheck({kind:"url",...errorUtil.errToObj(r)})}emoji(r){return this._addCheck({kind:"emoji",...errorUtil.errToObj(r)})}uuid(r){return this._addCheck({kind:"uuid",...errorUtil.errToObj(r)})}nanoid(r){return this._addCheck({kind:"nanoid",...errorUtil.errToObj(r)})}cuid(r){return this._addCheck({kind:"cuid",...errorUtil.errToObj(r)})}cuid2(r){return this._addCheck({kind:"cuid2",...errorUtil.errToObj(r)})}ulid(r){return this._addCheck({kind:"ulid",...errorUtil.errToObj(r)})}base64(r){return this._addCheck({kind:"base64",...errorUtil.errToObj(r)})}ip(r){return this._addCheck({kind:"ip",...errorUtil.errToObj(r)})}datetime(r){var o,u;return typeof r=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:r}):this._addCheck({kind:"datetime",precision:typeof(r==null?void 0:r.precision)>"u"?null:r==null?void 0:r.precision,offset:(o=r==null?void 0:r.offset)!==null&&o!==void 0?o:!1,local:(u=r==null?void 0:r.local)!==null&&u!==void 0?u:!1,...errorUtil.errToObj(r==null?void 0:r.message)})}date(r){return this._addCheck({kind:"date",message:r})}time(r){return typeof r=="string"?this._addCheck({kind:"time",precision:null,message:r}):this._addCheck({kind:"time",precision:typeof(r==null?void 0:r.precision)>"u"?null:r==null?void 0:r.precision,...errorUtil.errToObj(r==null?void 0:r.message)})}duration(r){return this._addCheck({kind:"duration",...errorUtil.errToObj(r)})}regex(r,o){return this._addCheck({kind:"regex",regex:r,...errorUtil.errToObj(o)})}includes(r,o){return this._addCheck({kind:"includes",value:r,position:o==null?void 0:o.position,...errorUtil.errToObj(o==null?void 0:o.message)})}startsWith(r,o){return this._addCheck({kind:"startsWith",value:r,...errorUtil.errToObj(o)})}endsWith(r,o){return this._addCheck({kind:"endsWith",value:r,...errorUtil.errToObj(o)})}min(r,o){return this._addCheck({kind:"min",value:r,...errorUtil.errToObj(o)})}max(r,o){return this._addCheck({kind:"max",value:r,...errorUtil.errToObj(o)})}length(r,o){return this._addCheck({kind:"length",value:r,...errorUtil.errToObj(o)})}nonempty(r){return this.min(1,errorUtil.errToObj(r))}trim(){return new ZodString({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new ZodString({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new ZodString({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(r=>r.kind==="datetime")}get isDate(){return!!this._def.checks.find(r=>r.kind==="date")}get isTime(){return!!this._def.checks.find(r=>r.kind==="time")}get isDuration(){return!!this._def.checks.find(r=>r.kind==="duration")}get isEmail(){return!!this._def.checks.find(r=>r.kind==="email")}get isURL(){return!!this._def.checks.find(r=>r.kind==="url")}get isEmoji(){return!!this._def.checks.find(r=>r.kind==="emoji")}get isUUID(){return!!this._def.checks.find(r=>r.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(r=>r.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(r=>r.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(r=>r.kind==="cuid2")}get isULID(){return!!this._def.checks.find(r=>r.kind==="ulid")}get isIP(){return!!this._def.checks.find(r=>r.kind==="ip")}get isBase64(){return!!this._def.checks.find(r=>r.kind==="base64")}get minLength(){let r=null;for(const o of this._def.checks)o.kind==="min"&&(r===null||o.value>r)&&(r=o.value);return r}get maxLength(){let r=null;for(const o of this._def.checks)o.kind==="max"&&(r===null||o.value<r)&&(r=o.value);return r}}ZodString.create=n=>{var r;return new ZodString({checks:[],typeName:ZodFirstPartyTypeKind.ZodString,coerce:(r=n==null?void 0:n.coerce)!==null&&r!==void 0?r:!1,...processCreateParams(n)})};function floatSafeRemainder(n,r){const o=(n.toString().split(".")[1]||"").length,u=(r.toString().split(".")[1]||"").length,a=o>u?o:u,s=parseInt(n.toFixed(a).replace(".","")),t=parseInt(r.toFixed(a).replace(".",""));return s%t/Math.pow(10,a)}class ZodNumber extends ZodType{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(r){if(this._def.coerce&&(r.data=Number(r.data)),this._getType(r)!==ZodParsedType.number){const s=this._getOrReturnCtx(r);return addIssueToContext(s,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.number,received:s.parsedType}),INVALID}let u;const a=new ParseStatus;for(const s of this._def.checks)s.kind==="int"?util$5.isInteger(r.data)||(u=this._getOrReturnCtx(r,u),addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:"integer",received:"float",message:s.message}),a.dirty()):s.kind==="min"?(s.inclusive?r.data<s.value:r.data<=s.value)&&(u=this._getOrReturnCtx(r,u),addIssueToContext(u,{code:ZodIssueCode.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),a.dirty()):s.kind==="max"?(s.inclusive?r.data>s.value:r.data>=s.value)&&(u=this._getOrReturnCtx(r,u),addIssueToContext(u,{code:ZodIssueCode.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),a.dirty()):s.kind==="multipleOf"?floatSafeRemainder(r.data,s.value)!==0&&(u=this._getOrReturnCtx(r,u),addIssueToContext(u,{code:ZodIssueCode.not_multiple_of,multipleOf:s.value,message:s.message}),a.dirty()):s.kind==="finite"?Number.isFinite(r.data)||(u=this._getOrReturnCtx(r,u),addIssueToContext(u,{code:ZodIssueCode.not_finite,message:s.message}),a.dirty()):util$5.assertNever(s);return{status:a.value,value:r.data}}gte(r,o){return this.setLimit("min",r,!0,errorUtil.toString(o))}gt(r,o){return this.setLimit("min",r,!1,errorUtil.toString(o))}lte(r,o){return this.setLimit("max",r,!0,errorUtil.toString(o))}lt(r,o){return this.setLimit("max",r,!1,errorUtil.toString(o))}setLimit(r,o,u,a){return new ZodNumber({...this._def,checks:[...this._def.checks,{kind:r,value:o,inclusive:u,message:errorUtil.toString(a)}]})}_addCheck(r){return new ZodNumber({...this._def,checks:[...this._def.checks,r]})}int(r){return this._addCheck({kind:"int",message:errorUtil.toString(r)})}positive(r){return this._addCheck({kind:"min",value:0,inclusive:!1,message:errorUtil.toString(r)})}negative(r){return this._addCheck({kind:"max",value:0,inclusive:!1,message:errorUtil.toString(r)})}nonpositive(r){return this._addCheck({kind:"max",value:0,inclusive:!0,message:errorUtil.toString(r)})}nonnegative(r){return this._addCheck({kind:"min",value:0,inclusive:!0,message:errorUtil.toString(r)})}multipleOf(r,o){return this._addCheck({kind:"multipleOf",value:r,message:errorUtil.toString(o)})}finite(r){return this._addCheck({kind:"finite",message:errorUtil.toString(r)})}safe(r){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:errorUtil.toString(r)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:errorUtil.toString(r)})}get minValue(){let r=null;for(const o of this._def.checks)o.kind==="min"&&(r===null||o.value>r)&&(r=o.value);return r}get maxValue(){let r=null;for(const o of this._def.checks)o.kind==="max"&&(r===null||o.value<r)&&(r=o.value);return r}get isInt(){return!!this._def.checks.find(r=>r.kind==="int"||r.kind==="multipleOf"&&util$5.isInteger(r.value))}get isFinite(){let r=null,o=null;for(const u of this._def.checks){if(u.kind==="finite"||u.kind==="int"||u.kind==="multipleOf")return!0;u.kind==="min"?(o===null||u.value>o)&&(o=u.value):u.kind==="max"&&(r===null||u.value<r)&&(r=u.value)}return Number.isFinite(o)&&Number.isFinite(r)}}ZodNumber.create=n=>new ZodNumber({checks:[],typeName:ZodFirstPartyTypeKind.ZodNumber,coerce:(n==null?void 0:n.coerce)||!1,...processCreateParams(n)});class ZodBigInt extends ZodType{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(r){if(this._def.coerce&&(r.data=BigInt(r.data)),this._getType(r)!==ZodParsedType.bigint){const s=this._getOrReturnCtx(r);return addIssueToContext(s,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.bigint,received:s.parsedType}),INVALID}let u;const a=new ParseStatus;for(const s of this._def.checks)s.kind==="min"?(s.inclusive?r.data<s.value:r.data<=s.value)&&(u=this._getOrReturnCtx(r,u),addIssueToContext(u,{code:ZodIssueCode.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),a.dirty()):s.kind==="max"?(s.inclusive?r.data>s.value:r.data>=s.value)&&(u=this._getOrReturnCtx(r,u),addIssueToContext(u,{code:ZodIssueCode.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),a.dirty()):s.kind==="multipleOf"?r.data%s.value!==BigInt(0)&&(u=this._getOrReturnCtx(r,u),addIssueToContext(u,{code:ZodIssueCode.not_multiple_of,multipleOf:s.value,message:s.message}),a.dirty()):util$5.assertNever(s);return{status:a.value,value:r.data}}gte(r,o){return this.setLimit("min",r,!0,errorUtil.toString(o))}gt(r,o){return this.setLimit("min",r,!1,errorUtil.toString(o))}lte(r,o){return this.setLimit("max",r,!0,errorUtil.toString(o))}lt(r,o){return this.setLimit("max",r,!1,errorUtil.toString(o))}setLimit(r,o,u,a){return new ZodBigInt({...this._def,checks:[...this._def.checks,{kind:r,value:o,inclusive:u,message:errorUtil.toString(a)}]})}_addCheck(r){return new ZodBigInt({...this._def,checks:[...this._def.checks,r]})}positive(r){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:errorUtil.toString(r)})}negative(r){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:errorUtil.toString(r)})}nonpositive(r){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:errorUtil.toString(r)})}nonnegative(r){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:errorUtil.toString(r)})}multipleOf(r,o){return this._addCheck({kind:"multipleOf",value:r,message:errorUtil.toString(o)})}get minValue(){let r=null;for(const o of this._def.checks)o.kind==="min"&&(r===null||o.value>r)&&(r=o.value);return r}get maxValue(){let r=null;for(const o of this._def.checks)o.kind==="max"&&(r===null||o.value<r)&&(r=o.value);return r}}ZodBigInt.create=n=>{var r;return new ZodBigInt({checks:[],typeName:ZodFirstPartyTypeKind.ZodBigInt,coerce:(r=n==null?void 0:n.coerce)!==null&&r!==void 0?r:!1,...processCreateParams(n)})};class ZodBoolean extends ZodType{_parse(r){if(this._def.coerce&&(r.data=!!r.data),this._getType(r)!==ZodParsedType.boolean){const u=this._getOrReturnCtx(r);return addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.boolean,received:u.parsedType}),INVALID}return OK(r.data)}}ZodBoolean.create=n=>new ZodBoolean({typeName:ZodFirstPartyTypeKind.ZodBoolean,coerce:(n==null?void 0:n.coerce)||!1,...processCreateParams(n)});class ZodDate extends ZodType{_parse(r){if(this._def.coerce&&(r.data=new Date(r.data)),this._getType(r)!==ZodParsedType.date){const s=this._getOrReturnCtx(r);return addIssueToContext(s,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.date,received:s.parsedType}),INVALID}if(isNaN(r.data.getTime())){const s=this._getOrReturnCtx(r);return addIssueToContext(s,{code:ZodIssueCode.invalid_date}),INVALID}const u=new ParseStatus;let a;for(const s of this._def.checks)s.kind==="min"?r.data.getTime()<s.value&&(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{code:ZodIssueCode.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),u.dirty()):s.kind==="max"?r.data.getTime()>s.value&&(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{code:ZodIssueCode.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),u.dirty()):util$5.assertNever(s);return{status:u.value,value:new Date(r.data.getTime())}}_addCheck(r){return new ZodDate({...this._def,checks:[...this._def.checks,r]})}min(r,o){return this._addCheck({kind:"min",value:r.getTime(),message:errorUtil.toString(o)})}max(r,o){return this._addCheck({kind:"max",value:r.getTime(),message:errorUtil.toString(o)})}get minDate(){let r=null;for(const o of this._def.checks)o.kind==="min"&&(r===null||o.value>r)&&(r=o.value);return r!=null?new Date(r):null}get maxDate(){let r=null;for(const o of this._def.checks)o.kind==="max"&&(r===null||o.value<r)&&(r=o.value);return r!=null?new Date(r):null}}ZodDate.create=n=>new ZodDate({checks:[],coerce:(n==null?void 0:n.coerce)||!1,typeName:ZodFirstPartyTypeKind.ZodDate,...processCreateParams(n)});class ZodSymbol extends ZodType{_parse(r){if(this._getType(r)!==ZodParsedType.symbol){const u=this._getOrReturnCtx(r);return addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.symbol,received:u.parsedType}),INVALID}return OK(r.data)}}ZodSymbol.create=n=>new ZodSymbol({typeName:ZodFirstPartyTypeKind.ZodSymbol,...processCreateParams(n)});class ZodUndefined extends ZodType{_parse(r){if(this._getType(r)!==ZodParsedType.undefined){const u=this._getOrReturnCtx(r);return addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.undefined,received:u.parsedType}),INVALID}return OK(r.data)}}ZodUndefined.create=n=>new ZodUndefined({typeName:ZodFirstPartyTypeKind.ZodUndefined,...processCreateParams(n)});class ZodNull extends ZodType{_parse(r){if(this._getType(r)!==ZodParsedType.null){const u=this._getOrReturnCtx(r);return addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.null,received:u.parsedType}),INVALID}return OK(r.data)}}ZodNull.create=n=>new ZodNull({typeName:ZodFirstPartyTypeKind.ZodNull,...processCreateParams(n)});class ZodAny extends ZodType{constructor(){super(...arguments),this._any=!0}_parse(r){return OK(r.data)}}ZodAny.create=n=>new ZodAny({typeName:ZodFirstPartyTypeKind.ZodAny,...processCreateParams(n)});class ZodUnknown extends ZodType{constructor(){super(...arguments),this._unknown=!0}_parse(r){return OK(r.data)}}ZodUnknown.create=n=>new ZodUnknown({typeName:ZodFirstPartyTypeKind.ZodUnknown,...processCreateParams(n)});class ZodNever extends ZodType{_parse(r){const o=this._getOrReturnCtx(r);return addIssueToContext(o,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.never,received:o.parsedType}),INVALID}}ZodNever.create=n=>new ZodNever({typeName:ZodFirstPartyTypeKind.ZodNever,...processCreateParams(n)});class ZodVoid extends ZodType{_parse(r){if(this._getType(r)!==ZodParsedType.undefined){const u=this._getOrReturnCtx(r);return addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.void,received:u.parsedType}),INVALID}return OK(r.data)}}ZodVoid.create=n=>new ZodVoid({typeName:ZodFirstPartyTypeKind.ZodVoid,...processCreateParams(n)});class ZodArray extends ZodType{_parse(r){const{ctx:o,status:u}=this._processInputParams(r),a=this._def;if(o.parsedType!==ZodParsedType.array)return addIssueToContext(o,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.array,received:o.parsedType}),INVALID;if(a.exactLength!==null){const t=o.data.length>a.exactLength.value,e=o.data.length<a.exactLength.value;(t||e)&&(addIssueToContext(o,{code:t?ZodIssueCode.too_big:ZodIssueCode.too_small,minimum:e?a.exactLength.value:void 0,maximum:t?a.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:a.exactLength.message}),u.dirty())}if(a.minLength!==null&&o.data.length<a.minLength.value&&(addIssueToContext(o,{code:ZodIssueCode.too_small,minimum:a.minLength.value,type:"array",inclusive:!0,exact:!1,message:a.minLength.message}),u.dirty()),a.maxLength!==null&&o.data.length>a.maxLength.value&&(addIssueToContext(o,{code:ZodIssueCode.too_big,maximum:a.maxLength.value,type:"array",inclusive:!0,exact:!1,message:a.maxLength.message}),u.dirty()),o.common.async)return Promise.all([...o.data].map((t,e)=>a.type._parseAsync(new ParseInputLazyPath(o,t,o.path,e)))).then(t=>ParseStatus.mergeArray(u,t));const s=[...o.data].map((t,e)=>a.type._parseSync(new ParseInputLazyPath(o,t,o.path,e)));return ParseStatus.mergeArray(u,s)}get element(){return this._def.type}min(r,o){return new ZodArray({...this._def,minLength:{value:r,message:errorUtil.toString(o)}})}max(r,o){return new ZodArray({...this._def,maxLength:{value:r,message:errorUtil.toString(o)}})}length(r,o){return new ZodArray({...this._def,exactLength:{value:r,message:errorUtil.toString(o)}})}nonempty(r){return this.min(1,r)}}ZodArray.create=(n,r)=>new ZodArray({type:n,minLength:null,maxLength:null,exactLength:null,typeName:ZodFirstPartyTypeKind.ZodArray,...processCreateParams(r)});function deepPartialify(n){if(n instanceof ZodObject){const r={};for(const o in n.shape){const u=n.shape[o];r[o]=ZodOptional.create(deepPartialify(u))}return new ZodObject({...n._def,shape:()=>r})}else return n instanceof ZodArray?new ZodArray({...n._def,type:deepPartialify(n.element)}):n instanceof ZodOptional?ZodOptional.create(deepPartialify(n.unwrap())):n instanceof ZodNullable?ZodNullable.create(deepPartialify(n.unwrap())):n instanceof ZodTuple?ZodTuple.create(n.items.map(r=>deepPartialify(r))):n}class ZodObject extends ZodType{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const r=this._def.shape(),o=util$5.objectKeys(r);return this._cached={shape:r,keys:o}}_parse(r){if(this._getType(r)!==ZodParsedType.object){const c=this._getOrReturnCtx(r);return addIssueToContext(c,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.object,received:c.parsedType}),INVALID}const{status:u,ctx:a}=this._processInputParams(r),{shape:s,keys:t}=this._getCached(),e=[];if(!(this._def.catchall instanceof ZodNever&&this._def.unknownKeys==="strip"))for(const c in a.data)t.includes(c)||e.push(c);const l=[];for(const c of t){const _=s[c],d=a.data[c];l.push({key:{status:"valid",value:c},value:_._parse(new ParseInputLazyPath(a,d,a.path,c)),alwaysSet:c in a.data})}if(this._def.catchall instanceof ZodNever){const c=this._def.unknownKeys;if(c==="passthrough")for(const _ of e)l.push({key:{status:"valid",value:_},value:{status:"valid",value:a.data[_]}});else if(c==="strict")e.length>0&&(addIssueToContext(a,{code:ZodIssueCode.unrecognized_keys,keys:e}),u.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const c=this._def.catchall;for(const _ of e){const d=a.data[_];l.push({key:{status:"valid",value:_},value:c._parse(new ParseInputLazyPath(a,d,a.path,_)),alwaysSet:_ in a.data})}}return a.common.async?Promise.resolve().then(async()=>{const c=[];for(const _ of l){const d=await _.key,p=await _.value;c.push({key:d,value:p,alwaysSet:_.alwaysSet})}return c}).then(c=>ParseStatus.mergeObjectSync(u,c)):ParseStatus.mergeObjectSync(u,l)}get shape(){return this._def.shape()}strict(r){return errorUtil.errToObj,new ZodObject({...this._def,unknownKeys:"strict",...r!==void 0?{errorMap:(o,u)=>{var a,s,t,e;const l=(t=(s=(a=this._def).errorMap)===null||s===void 0?void 0:s.call(a,o,u).message)!==null&&t!==void 0?t:u.defaultError;return o.code==="unrecognized_keys"?{message:(e=errorUtil.errToObj(r).message)!==null&&e!==void 0?e:l}:{message:l}}}:{}})}strip(){return new ZodObject({...this._def,unknownKeys:"strip"})}passthrough(){return new ZodObject({...this._def,unknownKeys:"passthrough"})}extend(r){return new ZodObject({...this._def,shape:()=>({...this._def.shape(),...r})})}merge(r){return new ZodObject({unknownKeys:r._def.unknownKeys,catchall:r._def.catchall,shape:()=>({...this._def.shape(),...r._def.shape()}),typeName:ZodFirstPartyTypeKind.ZodObject})}setKey(r,o){return this.augment({[r]:o})}catchall(r){return new ZodObject({...this._def,catchall:r})}pick(r){const o={};return util$5.objectKeys(r).forEach(u=>{r[u]&&this.shape[u]&&(o[u]=this.shape[u])}),new ZodObject({...this._def,shape:()=>o})}omit(r){const o={};return util$5.objectKeys(this.shape).forEach(u=>{r[u]||(o[u]=this.shape[u])}),new ZodObject({...this._def,shape:()=>o})}deepPartial(){return deepPartialify(this)}partial(r){const o={};return util$5.objectKeys(this.shape).forEach(u=>{const a=this.shape[u];r&&!r[u]?o[u]=a:o[u]=a.optional()}),new ZodObject({...this._def,shape:()=>o})}required(r){const o={};return util$5.objectKeys(this.shape).forEach(u=>{if(r&&!r[u])o[u]=this.shape[u];else{let s=this.shape[u];for(;s instanceof ZodOptional;)s=s._def.innerType;o[u]=s}}),new ZodObject({...this._def,shape:()=>o})}keyof(){return createZodEnum(util$5.objectKeys(this.shape))}}ZodObject.create=(n,r)=>new ZodObject({shape:()=>n,unknownKeys:"strip",catchall:ZodNever.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams(r)}),ZodObject.strictCreate=(n,r)=>new ZodObject({shape:()=>n,unknownKeys:"strict",catchall:ZodNever.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams(r)}),ZodObject.lazycreate=(n,r)=>new ZodObject({shape:n,unknownKeys:"strip",catchall:ZodNever.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams(r)});class ZodUnion extends ZodType{_parse(r){const{ctx:o}=this._processInputParams(r),u=this._def.options;function a(s){for(const e of s)if(e.result.status==="valid")return e.result;for(const e of s)if(e.result.status==="dirty")return o.common.issues.push(...e.ctx.common.issues),e.result;const t=s.map(e=>new ZodError(e.ctx.common.issues));return addIssueToContext(o,{code:ZodIssueCode.invalid_union,unionErrors:t}),INVALID}if(o.common.async)return Promise.all(u.map(async s=>{const t={...o,common:{...o.common,issues:[]},parent:null};return{result:await s._parseAsync({data:o.data,path:o.path,parent:t}),ctx:t}})).then(a);{let s;const t=[];for(const l of u){const c={...o,common:{...o.common,issues:[]},parent:null},_=l._parseSync({data:o.data,path:o.path,parent:c});if(_.status==="valid")return _;_.status==="dirty"&&!s&&(s={result:_,ctx:c}),c.common.issues.length&&t.push(c.common.issues)}if(s)return o.common.issues.push(...s.ctx.common.issues),s.result;const e=t.map(l=>new ZodError(l));return addIssueToContext(o,{code:ZodIssueCode.invalid_union,unionErrors:e}),INVALID}}get options(){return this._def.options}}ZodUnion.create=(n,r)=>new ZodUnion({options:n,typeName:ZodFirstPartyTypeKind.ZodUnion,...processCreateParams(r)});const getDiscriminator=n=>n instanceof ZodLazy?getDiscriminator(n.schema):n instanceof ZodEffects?getDiscriminator(n.innerType()):n instanceof ZodLiteral?[n.value]:n instanceof ZodEnum?n.options:n instanceof ZodNativeEnum?util$5.objectValues(n.enum):n instanceof ZodDefault?getDiscriminator(n._def.innerType):n instanceof ZodUndefined?[void 0]:n instanceof ZodNull?[null]:n instanceof ZodOptional?[void 0,...getDiscriminator(n.unwrap())]:n instanceof ZodNullable?[null,...getDiscriminator(n.unwrap())]:n instanceof ZodBranded||n instanceof ZodReadonly?getDiscriminator(n.unwrap()):n instanceof ZodCatch?getDiscriminator(n._def.innerType):[];class ZodDiscriminatedUnion extends ZodType{_parse(r){const{ctx:o}=this._processInputParams(r);if(o.parsedType!==ZodParsedType.object)return addIssueToContext(o,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.object,received:o.parsedType}),INVALID;const u=this.discriminator,a=o.data[u],s=this.optionsMap.get(a);return s?o.common.async?s._parseAsync({data:o.data,path:o.path,parent:o}):s._parseSync({data:o.data,path:o.path,parent:o}):(addIssueToContext(o,{code:ZodIssueCode.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[u]}),INVALID)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(r,o,u){const a=new Map;for(const s of o){const t=getDiscriminator(s.shape[r]);if(!t.length)throw new Error(`A discriminator value for key \`${r}\` could not be extracted from all schema options`);for(const e of t){if(a.has(e))throw new Error(`Discriminator property ${String(r)} has duplicate value ${String(e)}`);a.set(e,s)}}return new ZodDiscriminatedUnion({typeName:ZodFirstPartyTypeKind.ZodDiscriminatedUnion,discriminator:r,options:o,optionsMap:a,...processCreateParams(u)})}}function mergeValues(n,r){const o=getParsedType(n),u=getParsedType(r);if(n===r)return{valid:!0,data:n};if(o===ZodParsedType.object&&u===ZodParsedType.object){const a=util$5.objectKeys(r),s=util$5.objectKeys(n).filter(e=>a.indexOf(e)!==-1),t={...n,...r};for(const e of s){const l=mergeValues(n[e],r[e]);if(!l.valid)return{valid:!1};t[e]=l.data}return{valid:!0,data:t}}else if(o===ZodParsedType.array&&u===ZodParsedType.array){if(n.length!==r.length)return{valid:!1};const a=[];for(let s=0;s<n.length;s++){const t=n[s],e=r[s],l=mergeValues(t,e);if(!l.valid)return{valid:!1};a.push(l.data)}return{valid:!0,data:a}}else return o===ZodParsedType.date&&u===ZodParsedType.date&&+n==+r?{valid:!0,data:n}:{valid:!1}}class ZodIntersection extends ZodType{_parse(r){const{status:o,ctx:u}=this._processInputParams(r),a=(s,t)=>{if(isAborted(s)||isAborted(t))return INVALID;const e=mergeValues(s.value,t.value);return e.valid?((isDirty(s)||isDirty(t))&&o.dirty(),{status:o.value,value:e.data}):(addIssueToContext(u,{code:ZodIssueCode.invalid_intersection_types}),INVALID)};return u.common.async?Promise.all([this._def.left._parseAsync({data:u.data,path:u.path,parent:u}),this._def.right._parseAsync({data:u.data,path:u.path,parent:u})]).then(([s,t])=>a(s,t)):a(this._def.left._parseSync({data:u.data,path:u.path,parent:u}),this._def.right._parseSync({data:u.data,path:u.path,parent:u}))}}ZodIntersection.create=(n,r,o)=>new ZodIntersection({left:n,right:r,typeName:ZodFirstPartyTypeKind.ZodIntersection,...processCreateParams(o)});class ZodTuple extends ZodType{_parse(r){const{status:o,ctx:u}=this._processInputParams(r);if(u.parsedType!==ZodParsedType.array)return addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.array,received:u.parsedType}),INVALID;if(u.data.length<this._def.items.length)return addIssueToContext(u,{code:ZodIssueCode.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),INVALID;!this._def.rest&&u.data.length>this._def.items.length&&(addIssueToContext(u,{code:ZodIssueCode.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),o.dirty());const s=[...u.data].map((t,e)=>{const l=this._def.items[e]||this._def.rest;return l?l._parse(new ParseInputLazyPath(u,t,u.path,e)):null}).filter(t=>!!t);return u.common.async?Promise.all(s).then(t=>ParseStatus.mergeArray(o,t)):ParseStatus.mergeArray(o,s)}get items(){return this._def.items}rest(r){return new ZodTuple({...this._def,rest:r})}}ZodTuple.create=(n,r)=>{if(!Array.isArray(n))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ZodTuple({items:n,typeName:ZodFirstPartyTypeKind.ZodTuple,rest:null,...processCreateParams(r)})};class ZodRecord extends ZodType{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(r){const{status:o,ctx:u}=this._processInputParams(r);if(u.parsedType!==ZodParsedType.object)return addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.object,received:u.parsedType}),INVALID;const a=[],s=this._def.keyType,t=this._def.valueType;for(const e in u.data)a.push({key:s._parse(new ParseInputLazyPath(u,e,u.path,e)),value:t._parse(new ParseInputLazyPath(u,u.data[e],u.path,e)),alwaysSet:e in u.data});return u.common.async?ParseStatus.mergeObjectAsync(o,a):ParseStatus.mergeObjectSync(o,a)}get element(){return this._def.valueType}static create(r,o,u){return o instanceof ZodType?new ZodRecord({keyType:r,valueType:o,typeName:ZodFirstPartyTypeKind.ZodRecord,...processCreateParams(u)}):new ZodRecord({keyType:ZodString.create(),valueType:r,typeName:ZodFirstPartyTypeKind.ZodRecord,...processCreateParams(o)})}}class ZodMap extends ZodType{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(r){const{status:o,ctx:u}=this._processInputParams(r);if(u.parsedType!==ZodParsedType.map)return addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.map,received:u.parsedType}),INVALID;const a=this._def.keyType,s=this._def.valueType,t=[...u.data.entries()].map(([e,l],c)=>({key:a._parse(new ParseInputLazyPath(u,e,u.path,[c,"key"])),value:s._parse(new ParseInputLazyPath(u,l,u.path,[c,"value"]))}));if(u.common.async){const e=new Map;return Promise.resolve().then(async()=>{for(const l of t){const c=await l.key,_=await l.value;if(c.status==="aborted"||_.status==="aborted")return INVALID;(c.status==="dirty"||_.status==="dirty")&&o.dirty(),e.set(c.value,_.value)}return{status:o.value,value:e}})}else{const e=new Map;for(const l of t){const c=l.key,_=l.value;if(c.status==="aborted"||_.status==="aborted")return INVALID;(c.status==="dirty"||_.status==="dirty")&&o.dirty(),e.set(c.value,_.value)}return{status:o.value,value:e}}}}ZodMap.create=(n,r,o)=>new ZodMap({valueType:r,keyType:n,typeName:ZodFirstPartyTypeKind.ZodMap,...processCreateParams(o)});class ZodSet extends ZodType{_parse(r){const{status:o,ctx:u}=this._processInputParams(r);if(u.parsedType!==ZodParsedType.set)return addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.set,received:u.parsedType}),INVALID;const a=this._def;a.minSize!==null&&u.data.size<a.minSize.value&&(addIssueToContext(u,{code:ZodIssueCode.too_small,minimum:a.minSize.value,type:"set",inclusive:!0,exact:!1,message:a.minSize.message}),o.dirty()),a.maxSize!==null&&u.data.size>a.maxSize.value&&(addIssueToContext(u,{code:ZodIssueCode.too_big,maximum:a.maxSize.value,type:"set",inclusive:!0,exact:!1,message:a.maxSize.message}),o.dirty());const s=this._def.valueType;function t(l){const c=new Set;for(const _ of l){if(_.status==="aborted")return INVALID;_.status==="dirty"&&o.dirty(),c.add(_.value)}return{status:o.value,value:c}}const e=[...u.data.values()].map((l,c)=>s._parse(new ParseInputLazyPath(u,l,u.path,c)));return u.common.async?Promise.all(e).then(l=>t(l)):t(e)}min(r,o){return new ZodSet({...this._def,minSize:{value:r,message:errorUtil.toString(o)}})}max(r,o){return new ZodSet({...this._def,maxSize:{value:r,message:errorUtil.toString(o)}})}size(r,o){return this.min(r,o).max(r,o)}nonempty(r){return this.min(1,r)}}ZodSet.create=(n,r)=>new ZodSet({valueType:n,minSize:null,maxSize:null,typeName:ZodFirstPartyTypeKind.ZodSet,...processCreateParams(r)});class ZodFunction extends ZodType{constructor(){super(...arguments),this.validate=this.implement}_parse(r){const{ctx:o}=this._processInputParams(r);if(o.parsedType!==ZodParsedType.function)return addIssueToContext(o,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.function,received:o.parsedType}),INVALID;function u(e,l){return makeIssue({data:e,path:o.path,errorMaps:[o.common.contextualErrorMap,o.schemaErrorMap,getErrorMap(),errorMap].filter(c=>!!c),issueData:{code:ZodIssueCode.invalid_arguments,argumentsError:l}})}function a(e,l){return makeIssue({data:e,path:o.path,errorMaps:[o.common.contextualErrorMap,o.schemaErrorMap,getErrorMap(),errorMap].filter(c=>!!c),issueData:{code:ZodIssueCode.invalid_return_type,returnTypeError:l}})}const s={errorMap:o.common.contextualErrorMap},t=o.data;if(this._def.returns instanceof ZodPromise){const e=this;return OK(async function(...l){const c=new ZodError([]),_=await e._def.args.parseAsync(l,s).catch(E=>{throw c.addIssue(u(l,E)),c}),d=await Reflect.apply(t,this,_);return await e._def.returns._def.type.parseAsync(d,s).catch(E=>{throw c.addIssue(a(d,E)),c})})}else{const e=this;return OK(function(...l){const c=e._def.args.safeParse(l,s);if(!c.success)throw new ZodError([u(l,c.error)]);const _=Reflect.apply(t,this,c.data),d=e._def.returns.safeParse(_,s);if(!d.success)throw new ZodError([a(_,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...r){return new ZodFunction({...this._def,args:ZodTuple.create(r).rest(ZodUnknown.create())})}returns(r){return new ZodFunction({...this._def,returns:r})}implement(r){return this.parse(r)}strictImplement(r){return this.parse(r)}static create(r,o,u){return new ZodFunction({args:r||ZodTuple.create([]).rest(ZodUnknown.create()),returns:o||ZodUnknown.create(),typeName:ZodFirstPartyTypeKind.ZodFunction,...processCreateParams(u)})}}class ZodLazy extends ZodType{get schema(){return this._def.getter()}_parse(r){const{ctx:o}=this._processInputParams(r);return this._def.getter()._parse({data:o.data,path:o.path,parent:o})}}ZodLazy.create=(n,r)=>new ZodLazy({getter:n,typeName:ZodFirstPartyTypeKind.ZodLazy,...processCreateParams(r)});class ZodLiteral extends ZodType{_parse(r){if(r.data!==this._def.value){const o=this._getOrReturnCtx(r);return addIssueToContext(o,{received:o.data,code:ZodIssueCode.invalid_literal,expected:this._def.value}),INVALID}return{status:"valid",value:r.data}}get value(){return this._def.value}}ZodLiteral.create=(n,r)=>new ZodLiteral({value:n,typeName:ZodFirstPartyTypeKind.ZodLiteral,...processCreateParams(r)});function createZodEnum(n,r){return new ZodEnum({values:n,typeName:ZodFirstPartyTypeKind.ZodEnum,...processCreateParams(r)})}class ZodEnum extends ZodType{constructor(){super(...arguments),_ZodEnum_cache.set(this,void 0)}_parse(r){if(typeof r.data!="string"){const o=this._getOrReturnCtx(r),u=this._def.values;return addIssueToContext(o,{expected:util$5.joinValues(u),received:o.parsedType,code:ZodIssueCode.invalid_type}),INVALID}if(__classPrivateFieldGet(this,_ZodEnum_cache)||__classPrivateFieldSet(this,_ZodEnum_cache,new Set(this._def.values)),!__classPrivateFieldGet(this,_ZodEnum_cache).has(r.data)){const o=this._getOrReturnCtx(r),u=this._def.values;return addIssueToContext(o,{received:o.data,code:ZodIssueCode.invalid_enum_value,options:u}),INVALID}return OK(r.data)}get options(){return this._def.values}get enum(){const r={};for(const o of this._def.values)r[o]=o;return r}get Values(){const r={};for(const o of this._def.values)r[o]=o;return r}get Enum(){const r={};for(const o of this._def.values)r[o]=o;return r}extract(r,o=this._def){return ZodEnum.create(r,{...this._def,...o})}exclude(r,o=this._def){return ZodEnum.create(this.options.filter(u=>!r.includes(u)),{...this._def,...o})}}_ZodEnum_cache=new WeakMap,ZodEnum.create=createZodEnum;class ZodNativeEnum extends ZodType{constructor(){super(...arguments),_ZodNativeEnum_cache.set(this,void 0)}_parse(r){const o=util$5.getValidEnumValues(this._def.values),u=this._getOrReturnCtx(r);if(u.parsedType!==ZodParsedType.string&&u.parsedType!==ZodParsedType.number){const a=util$5.objectValues(o);return addIssueToContext(u,{expected:util$5.joinValues(a),received:u.parsedType,code:ZodIssueCode.invalid_type}),INVALID}if(__classPrivateFieldGet(this,_ZodNativeEnum_cache)||__classPrivateFieldSet(this,_ZodNativeEnum_cache,new Set(util$5.getValidEnumValues(this._def.values))),!__classPrivateFieldGet(this,_ZodNativeEnum_cache).has(r.data)){const a=util$5.objectValues(o);return addIssueToContext(u,{received:u.data,code:ZodIssueCode.invalid_enum_value,options:a}),INVALID}return OK(r.data)}get enum(){return this._def.values}}_ZodNativeEnum_cache=new WeakMap,ZodNativeEnum.create=(n,r)=>new ZodNativeEnum({values:n,typeName:ZodFirstPartyTypeKind.ZodNativeEnum,...processCreateParams(r)});class ZodPromise extends ZodType{unwrap(){return this._def.type}_parse(r){const{ctx:o}=this._processInputParams(r);if(o.parsedType!==ZodParsedType.promise&&o.common.async===!1)return addIssueToContext(o,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.promise,received:o.parsedType}),INVALID;const u=o.parsedType===ZodParsedType.promise?o.data:Promise.resolve(o.data);return OK(u.then(a=>this._def.type.parseAsync(a,{path:o.path,errorMap:o.common.contextualErrorMap})))}}ZodPromise.create=(n,r)=>new ZodPromise({type:n,typeName:ZodFirstPartyTypeKind.ZodPromise,...processCreateParams(r)});class ZodEffects extends ZodType{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===ZodFirstPartyTypeKind.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(r){const{status:o,ctx:u}=this._processInputParams(r),a=this._def.effect||null,s={addIssue:t=>{addIssueToContext(u,t),t.fatal?o.abort():o.dirty()},get path(){return u.path}};if(s.addIssue=s.addIssue.bind(s),a.type==="preprocess"){const t=a.transform(u.data,s);if(u.common.async)return Promise.resolve(t).then(async e=>{if(o.value==="aborted")return INVALID;const l=await this._def.schema._parseAsync({data:e,path:u.path,parent:u});return l.status==="aborted"?INVALID:l.status==="dirty"||o.value==="dirty"?DIRTY(l.value):l});{if(o.value==="aborted")return INVALID;const e=this._def.schema._parseSync({data:t,path:u.path,parent:u});return e.status==="aborted"?INVALID:e.status==="dirty"||o.value==="dirty"?DIRTY(e.value):e}}if(a.type==="refinement"){const t=e=>{const l=a.refinement(e,s);if(u.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return e};if(u.common.async===!1){const e=this._def.schema._parseSync({data:u.data,path:u.path,parent:u});return e.status==="aborted"?INVALID:(e.status==="dirty"&&o.dirty(),t(e.value),{status:o.value,value:e.value})}else return this._def.schema._parseAsync({data:u.data,path:u.path,parent:u}).then(e=>e.status==="aborted"?INVALID:(e.status==="dirty"&&o.dirty(),t(e.value).then(()=>({status:o.value,value:e.value}))))}if(a.type==="transform")if(u.common.async===!1){const t=this._def.schema._parseSync({data:u.data,path:u.path,parent:u});if(!isValid(t))return t;const e=a.transform(t.value,s);if(e instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:o.value,value:e}}else return this._def.schema._parseAsync({data:u.data,path:u.path,parent:u}).then(t=>isValid(t)?Promise.resolve(a.transform(t.value,s)).then(e=>({status:o.value,value:e})):t);util$5.assertNever(a)}}ZodEffects.create=(n,r,o)=>new ZodEffects({schema:n,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:r,...processCreateParams(o)}),ZodEffects.createWithPreprocess=(n,r,o)=>new ZodEffects({schema:r,effect:{type:"preprocess",transform:n},typeName:ZodFirstPartyTypeKind.ZodEffects,...processCreateParams(o)});class ZodOptional extends ZodType{_parse(r){return this._getType(r)===ZodParsedType.undefined?OK(void 0):this._def.innerType._parse(r)}unwrap(){return this._def.innerType}}ZodOptional.create=(n,r)=>new ZodOptional({innerType:n,typeName:ZodFirstPartyTypeKind.ZodOptional,...processCreateParams(r)});class ZodNullable extends ZodType{_parse(r){return this._getType(r)===ZodParsedType.null?OK(null):this._def.innerType._parse(r)}unwrap(){return this._def.innerType}}ZodNullable.create=(n,r)=>new ZodNullable({innerType:n,typeName:ZodFirstPartyTypeKind.ZodNullable,...processCreateParams(r)});class ZodDefault extends ZodType{_parse(r){const{ctx:o}=this._processInputParams(r);let u=o.data;return o.parsedType===ZodParsedType.undefined&&(u=this._def.defaultValue()),this._def.innerType._parse({data:u,path:o.path,parent:o})}removeDefault(){return this._def.innerType}}ZodDefault.create=(n,r)=>new ZodDefault({innerType:n,typeName:ZodFirstPartyTypeKind.ZodDefault,defaultValue:typeof r.default=="function"?r.default:()=>r.default,...processCreateParams(r)});class ZodCatch extends ZodType{_parse(r){const{ctx:o}=this._processInputParams(r),u={...o,common:{...o.common,issues:[]}},a=this._def.innerType._parse({data:u.data,path:u.path,parent:{...u}});return isAsync(a)?a.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new ZodError(u.common.issues)},input:u.data})})):{status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new ZodError(u.common.issues)},input:u.data})}}removeCatch(){return this._def.innerType}}ZodCatch.create=(n,r)=>new ZodCatch({innerType:n,typeName:ZodFirstPartyTypeKind.ZodCatch,catchValue:typeof r.catch=="function"?r.catch:()=>r.catch,...processCreateParams(r)});class ZodNaN extends ZodType{_parse(r){if(this._getType(r)!==ZodParsedType.nan){const u=this._getOrReturnCtx(r);return addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.nan,received:u.parsedType}),INVALID}return{status:"valid",value:r.data}}}ZodNaN.create=n=>new ZodNaN({typeName:ZodFirstPartyTypeKind.ZodNaN,...processCreateParams(n)});const BRAND=Symbol("zod_brand");class ZodBranded extends ZodType{_parse(r){const{ctx:o}=this._processInputParams(r),u=o.data;return this._def.type._parse({data:u,path:o.path,parent:o})}unwrap(){return this._def.type}}class ZodPipeline extends ZodType{_parse(r){const{status:o,ctx:u}=this._processInputParams(r);if(u.common.async)return(async()=>{const s=await this._def.in._parseAsync({data:u.data,path:u.path,parent:u});return s.status==="aborted"?INVALID:s.status==="dirty"?(o.dirty(),DIRTY(s.value)):this._def.out._parseAsync({data:s.value,path:u.path,parent:u})})();{const a=this._def.in._parseSync({data:u.data,path:u.path,parent:u});return a.status==="aborted"?INVALID:a.status==="dirty"?(o.dirty(),{status:"dirty",value:a.value}):this._def.out._parseSync({data:a.value,path:u.path,parent:u})}}static create(r,o){return new ZodPipeline({in:r,out:o,typeName:ZodFirstPartyTypeKind.ZodPipeline})}}class ZodReadonly extends ZodType{_parse(r){const o=this._def.innerType._parse(r),u=a=>(isValid(a)&&(a.value=Object.freeze(a.value)),a);return isAsync(o)?o.then(a=>u(a)):u(o)}unwrap(){return this._def.innerType}}ZodReadonly.create=(n,r)=>new ZodReadonly({innerType:n,typeName:ZodFirstPartyTypeKind.ZodReadonly,...processCreateParams(r)});function custom(n,r={},o){return n?ZodAny.create().superRefine((u,a)=>{var s,t;if(!n(u)){const e=typeof r=="function"?r(u):typeof r=="string"?{message:r}:r,l=(t=(s=e.fatal)!==null&&s!==void 0?s:o)!==null&&t!==void 0?t:!0,c=typeof e=="string"?{message:e}:e;a.addIssue({code:"custom",...c,fatal:l})}}):ZodAny.create()}const late={object:ZodObject.lazycreate};var ZodFirstPartyTypeKind;(function(n){n.ZodString="ZodString",n.ZodNumber="ZodNumber",n.ZodNaN="ZodNaN",n.ZodBigInt="ZodBigInt",n.ZodBoolean="ZodBoolean",n.ZodDate="ZodDate",n.ZodSymbol="ZodSymbol",n.ZodUndefined="ZodUndefined",n.ZodNull="ZodNull",n.ZodAny="ZodAny",n.ZodUnknown="ZodUnknown",n.ZodNever="ZodNever",n.ZodVoid="ZodVoid",n.ZodArray="ZodArray",n.ZodObject="ZodObject",n.ZodUnion="ZodUnion",n.ZodDiscriminatedUnion="ZodDiscriminatedUnion",n.ZodIntersection="ZodIntersection",n.ZodTuple="ZodTuple",n.ZodRecord="ZodRecord",n.ZodMap="ZodMap",n.ZodSet="ZodSet",n.ZodFunction="ZodFunction",n.ZodLazy="ZodLazy",n.ZodLiteral="ZodLiteral",n.ZodEnum="ZodEnum",n.ZodEffects="ZodEffects",n.ZodNativeEnum="ZodNativeEnum",n.ZodOptional="ZodOptional",n.ZodNullable="ZodNullable",n.ZodDefault="ZodDefault",n.ZodCatch="ZodCatch",n.ZodPromise="ZodPromise",n.ZodBranded="ZodBranded",n.ZodPipeline="ZodPipeline",n.ZodReadonly="ZodReadonly"})(ZodFirstPartyTypeKind||(ZodFirstPartyTypeKind={}));const instanceOfType=(n,r={message:`Input not instance of ${n.name}`})=>custom(o=>o instanceof n,r),stringType=ZodString.create,numberType=ZodNumber.create,nanType=ZodNaN.create,bigIntType=ZodBigInt.create,booleanType=ZodBoolean.create,dateType=ZodDate.create,symbolType=ZodSymbol.create,undefinedType=ZodUndefined.create,nullType=ZodNull.create,anyType=ZodAny.create,unknownType=ZodUnknown.create,neverType=ZodNever.create,voidType=ZodVoid.create,arrayType=ZodArray.create,objectType=ZodObject.create,strictObjectType=ZodObject.strictCreate,unionType=ZodUnion.create,discriminatedUnionType=ZodDiscriminatedUnion.create,intersectionType=ZodIntersection.create,tupleType=ZodTuple.create,recordType=ZodRecord.create,mapType=ZodMap.create,setType=ZodSet.create,functionType=ZodFunction.create,lazyType=ZodLazy.create,literalType=ZodLiteral.create,enumType=ZodEnum.create,nativeEnumType=ZodNativeEnum.create,promiseType=ZodPromise.create,effectsType=ZodEffects.create,optionalType=ZodOptional.create,nullableType=ZodNullable.create,preprocessType=ZodEffects.createWithPreprocess,pipelineType=ZodPipeline.create,ostring=()=>stringType().optional(),onumber=()=>numberType().optional(),oboolean=()=>booleanType().optional(),coerce={string:n=>ZodString.create({...n,coerce:!0}),number:n=>ZodNumber.create({...n,coerce:!0}),boolean:n=>ZodBoolean.create({...n,coerce:!0}),bigint:n=>ZodBigInt.create({...n,coerce:!0}),date:n=>ZodDate.create({...n,coerce:!0})},NEVER=INVALID;var z=Object.freeze({__proto__:null,defaultErrorMap:errorMap,setErrorMap,getErrorMap,makeIssue,EMPTY_PATH,addIssueToContext,ParseStatus,INVALID,DIRTY,OK,isAborted,isDirty,isValid,isAsync,get util(){return util$5},get objectUtil(){return objectUtil},ZodParsedType,getParsedType,ZodType,datetimeRegex,ZodString,ZodNumber,ZodBigInt,ZodBoolean,ZodDate,ZodSymbol,ZodUndefined,ZodNull,ZodAny,ZodUnknown,ZodNever,ZodVoid,ZodArray,ZodObject,ZodUnion,ZodDiscriminatedUnion,ZodIntersection,ZodTuple,ZodRecord,ZodMap,ZodSet,ZodFunction,ZodLazy,ZodLiteral,ZodEnum,ZodNativeEnum,ZodPromise,ZodEffects,ZodTransformer:ZodEffects,ZodOptional,ZodNullable,ZodDefault,ZodCatch,ZodNaN,BRAND,ZodBranded,ZodPipeline,ZodReadonly,custom,Schema:ZodType,ZodSchema:ZodType,late,get ZodFirstPartyTypeKind(){return ZodFirstPartyTypeKind},coerce,any:anyType,array:arrayType,bigint:bigIntType,boolean:booleanType,date:dateType,discriminatedUnion:discriminatedUnionType,effect:effectsType,enum:enumType,function:functionType,instanceof:instanceOfType,intersection:intersectionType,lazy:lazyType,literal:literalType,map:mapType,nan:nanType,nativeEnum:nativeEnumType,never:neverType,null:nullType,nullable:nullableType,number:numberType,object:objectType,oboolean,onumber,optional:optionalType,ostring,pipeline:pipelineType,preprocess:preprocessType,promise:promiseType,record:recordType,set:setType,strictObject:strictObjectType,string:stringType,symbol:symbolType,transformer:effectsType,tuple:tupleType,undefined:undefinedType,union:unionType,unknown:unknownType,void:voidType,NEVER,ZodIssueCode,quotelessJson,ZodError});const RequiredString=z.string().trim().min(1,{message:"Please fill in this field"}),OptionalString=z.string().trim().optional(),nullOrUndefOr$1=n=>z.nullable(n.optional());var FieldName=(n=>(n.FIRST_NAME="firstName",n.LAST_NAME="lastName",n.PHONE="phone",n.EMAIL="email",n.LINE1="line1",n.LINE2="line2",n.LINE3="line3",n.CITY="city",n.STATE="state",n.COUNTRY="country",n.ZIP_CODE="zipCode",n.SHIPPING_LINE1="shippingAddressLine1",n.SHIPPING_LINE2="shippingAddressLine2",n.SHIPPING_LINE3="shippingAddressLine3",n.SHIPPING_CITY="shippingAddressCity",n.SHIPPING_STATE="shippingAddressState",n.SHIPPING_COUNTRY="shippingAddressCountry",n.SHIPPING_ZIP_CODE="shippingAddressZipCode",n.IS_SHIPPING_SAME_AS_BILLING="isShippingSameAsBilling",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({email:RequiredString.email({message:"Please enter a valid email address"}),firstName:RequiredString,lastName:RequiredString,promotionCode:OptionalString,line1:OptionalString,line2:OptionalString,line3:OptionalString,city:OptionalString,state:OptionalString,country:RequiredString,zipCode:OptionalString,isShippingSameAsBilling:z.custom().optional().default(!0),shippingAddressLine1:OptionalString,shippingAddressLine2:OptionalString,shippingAddressLine3:OptionalString,shippingAddressCity:OptionalString,shippingAddressState:OptionalString,shippingAddressCountry:OptionalString,shippingAddressZipCode:OptionalString}),PRFormFields=z.object({email:RequiredString.email({message:"Please enter a valid email address"}),firstName:OptionalString,lastName:OptionalString,promotionCode:OptionalString,line1:OptionalString,line2:OptionalString,line3:OptionalString,city:OptionalString,state:OptionalString,country:RequiredString,zipCode:OptionalString,isShippingSameAsBilling:z.custom().optional().default(!0),shippingAddressLine1:OptionalString,shippingAddressLine2:OptionalString,shippingAddressLine3:OptionalString,shippingAddressCity:OptionalString,shippingAddressState:OptionalString,shippingAddressCountry:OptionalString,shippingAddressZipCode:OptionalString});z.object({line1:RequiredString,city:RequiredString,state:RequiredString,country:RequiredString}),z.object({shippingAddressCountry:RequiredString,shippingAddressZipCode:RequiredString}),z.object({shippingAddressLine1:RequiredString,shippingAddressCity:RequiredString,shippingAddressState:RequiredString,shippingAddressCountry:RequiredString,shippingAddressZipCode:RequiredString});const 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)),post_checkout_redirect_to:nullOrUndefOr$1(z.string()),checkout_success_response:nullOrUndefOr$1(CheckoutSuccessResponse)}),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()),checkout_settings:z.record(z.string(),z.any()),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),return_url:nullOrUndefOr(z.string()),success_url:nullOrUndefOr(z.string()),final_feature_rollout_settings:nullOrUndefOr(z.record(z.string(),z.any()))}),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()});const CompleteAddress=z.object({line1:z.string().optional(),line2:z.string().optional(),line3:z.string().optional(),city:z.string().optional(),state:z.string().optional(),country:z.string(),zip_code:z.string().optional()});z.object({secure_token:z.string(),payment_input:z.any(),customer_email:z.string(),customer_last_name:z.string().optional(),customer_first_name:z.string().optional(),customer_address:CompleteAddress,customer_shipping_address:CompleteAddress.optional(),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$1=z.object({type:z.string(),loc:z.array(z.string()),msg:z.string(),url:z.string()});z.array(PydanticValidationError$1);const NewCustomerFields=z.object({new_customer_email:z.string().optional(),new_customer_last_name:z.string().optional(),new_customer_first_name:z.string().optional(),new_customer_address:CompleteAddress,new_customer_shipping_address:CompleteAddress.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()),use_unified_cc_flow:nullOrUndefOr(z.boolean()),pay_first_flow_cart_info:CartInfo.optional(),payment_route_id:nullOrUndefOr(z.string()),customer_language:z.string().optional(),existing_cc_pm_id:nullOrUndefOr(z.string())});const StartPaymentFlowForCCResponse=z.object({required_user_actions:z.array(z.record(z.string(),z.any())),cc_pm_id:z.string(),checkout_success_response:nullOrUndefOr(CheckoutSuccessResponse),checkout_attempt_id:nullOrUndefOr(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({}),UserActionFEPayload=z.object({_unified_cc_action_name:z.string(),_unified_cc_pccs_id:z.string()}).catchall(z.any()),PydanticValidationError=z.object({type:z.string(),loc:z.array(z.string()),msg:z.string(),url:z.string()}),PydanticValidationErrorResponse=z.array(PydanticValidationError),ZodFieldError=z.object({code:z.string(),message:z.string(),path:z.array(z.string())}),ZodFieldErrors=z.array(ZodFieldError),MAP_TO_HUMAN_FRIENDLY_LOWERCASE={"failed to fetch":"Connection error: please double check if you are connected to the internet, then try again"},getHumanFriendlyMessage=n=>{const r=n.toLowerCase().trim();return MAP_TO_HUMAN_FRIENDLY_LOWERCASE[r]??n},isStringifiedJsonObject=n=>{try{return typeof JSON.parse(n)=="object"}catch{return!1}},createMessageFromPydanticValidationError=n=>n.length===1?getHumanFriendlyMessage(n[0].msg):`Please fix the following errors:
1
+ (function(de,ee){typeof exports=="object"&&typeof module<"u"?ee(exports):typeof define=="function"&&define.amd?define(["exports"],ee):(de=typeof globalThis<"u"?globalThis:de||self,ee(de.OpenPay={}))})(this,function(exports){"use strict";var de;function _mergeNamespaces(n,r){for(var o=0;o<r.length;o++){const u=r[o];if(typeof u!="string"&&!Array.isArray(u)){for(const a in u)if(a!=="default"&&!(a in n)){const s=Object.getOwnPropertyDescriptor(u,a);s&&Object.defineProperty(n,a,s.get?s:{enumerable:!0,get:()=>u[a]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}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:p,args:E,id:f}=d;o(`${u}: Received ${p}() call`);const m=g=>O=>{if(o(`${u}: Sending ${p}() reply`),l){o(`${u}: Unable to send ${p}() reply due to destroyed connection`);return}const v={penpal:MessageType.Reply,id:f,resolution:g,returnValue:O};g===Resolution.Rejected&&O instanceof Error&&(v.returnValue=serializeError(O),v.returnValueIsError=!0);try{s.postMessage(v,t)}catch(A){if(A.name===NativeErrorName.DataCloneError){const M={penpal:MessageType.Reply,id:f,resolution:Resolution.Rejected,returnValue:serializeError(A),returnValueIsError:!0};s.postMessage(M,t)}throw A}};new Promise(g=>g(r[p].apply(r,E))).then(m(Resolution.Fulfilled),m(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=E=>(...f)=>{a(`${s}: Sending ${E}() call`);let m;try{e.closed&&(m=!0)}catch{m=!0}if(m&&u(),_){const g=new Error(`Unable to send ${E}() call due to destroyed connection`);throw g.code=ErrorCode.ConnectionDestroyed,g}return new Promise((g,O)=>{const v=generateId(),A=b=>{if(b.source!==e||b.data.penpal!==MessageType.Reply||b.data.id!==v)return;if(c!=="*"&&b.origin!==c){a(`${s} received message from origin ${b.origin} which did not match expected origin ${c}`);return}const I=b.data;a(`${s}: Received ${E}() reply`),t.removeEventListener(NativeEventType.Message,A);let U=I.returnValue;I.returnValueIsError&&(U=deserializeError(U)),(I.resolution===Resolution.Fulfilled?g:O)(U)};t.addEventListener(NativeEventType.Message,A);const M={penpal:MessageType.Call,id:v,methodName:E,args:f};e.postMessage(M,l)})},p=o.reduce((E,f)=>(E[f]=d(f),E),{});return Object.assign(n,deserializeMethods(p)),()=>{_=!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(E=>{delete c[E]}),l=_.data.methodNames;const p=connectCallSender(c,d,l,s,a);return t(p),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),p=handleSynMessageFactory(t,d,u,_),E=handleAckMessageFactory(d,u,_,e,t);return{promise:new Promise((m,g)=>{const O=startConnectionTimeout(a,c),v=A=>{if(!(A.source!==r.contentWindow||!A.data)){if(A.data.penpal===MessageType.Syn){p(A);return}if(A.data.penpal===MessageType.Ack){const M=E(A);M&&(O(),m(M));return}}};window.addEventListener(NativeEventType.Message,v),t("Parent: Awaiting handshake"),monitorIframeRemoval(r,e),l(A=>{window.removeEventListener(NativeEventType.Message,v),A&&g(A)})}),destroy(){c()}}};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$9=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$9(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),util$5;(function(n){n.assertEqual=a=>a;function r(a){}n.assertIs=r;function o(a){throw new Error}n.assertNever=o,n.arrayToEnum=a=>{const s={};for(const t of a)s[t]=t;return s},n.getValidEnumValues=a=>{const s=n.objectKeys(a).filter(e=>typeof a[a[e]]!="number"),t={};for(const e of s)t[e]=a[e];return n.objectValues(t)},n.objectValues=a=>n.objectKeys(a).map(function(s){return a[s]}),n.objectKeys=typeof Object.keys=="function"?a=>Object.keys(a):a=>{const s=[];for(const t in a)Object.prototype.hasOwnProperty.call(a,t)&&s.push(t);return s},n.find=(a,s)=>{for(const t of a)if(s(t))return t},n.isInteger=typeof Number.isInteger=="function"?a=>Number.isInteger(a):a=>typeof a=="number"&&isFinite(a)&&Math.floor(a)===a;function u(a,s=" | "){return a.map(t=>typeof t=="string"?`'${t}'`:t).join(s)}n.joinValues=u,n.jsonStringifyReplacer=(a,s)=>typeof s=="bigint"?s.toString():s})(util$5||(util$5={}));var objectUtil;(function(n){n.mergeShapes=(r,o)=>({...r,...o})})(objectUtil||(objectUtil={}));const ZodParsedType=util$5.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),getParsedType=n=>{switch(typeof n){case"undefined":return ZodParsedType.undefined;case"string":return ZodParsedType.string;case"number":return isNaN(n)?ZodParsedType.nan:ZodParsedType.number;case"boolean":return ZodParsedType.boolean;case"function":return ZodParsedType.function;case"bigint":return ZodParsedType.bigint;case"symbol":return ZodParsedType.symbol;case"object":return Array.isArray(n)?ZodParsedType.array:n===null?ZodParsedType.null:n.then&&typeof n.then=="function"&&n.catch&&typeof n.catch=="function"?ZodParsedType.promise:typeof Map<"u"&&n instanceof Map?ZodParsedType.map:typeof Set<"u"&&n instanceof Set?ZodParsedType.set:typeof Date<"u"&&n instanceof Date?ZodParsedType.date:ZodParsedType.object;default:return ZodParsedType.unknown}},ZodIssueCode=util$5.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),quotelessJson=n=>JSON.stringify(n,null,2).replace(/"([^"]+)":/g,"$1:");class ZodError extends Error{constructor(r){super(),this.issues=[],this.addIssue=u=>{this.issues=[...this.issues,u]},this.addIssues=(u=[])=>{this.issues=[...this.issues,...u]};const o=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,o):this.__proto__=o,this.name="ZodError",this.issues=r}get errors(){return this.issues}format(r){const o=r||function(s){return s.message},u={_errors:[]},a=s=>{for(const t of s.issues)if(t.code==="invalid_union")t.unionErrors.map(a);else if(t.code==="invalid_return_type")a(t.returnTypeError);else if(t.code==="invalid_arguments")a(t.argumentsError);else if(t.path.length===0)u._errors.push(o(t));else{let e=u,l=0;for(;l<t.path.length;){const c=t.path[l];l===t.path.length-1?(e[c]=e[c]||{_errors:[]},e[c]._errors.push(o(t))):e[c]=e[c]||{_errors:[]},e=e[c],l++}}};return a(this),u}static assert(r){if(!(r instanceof ZodError))throw new Error(`Not a ZodError: ${r}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,util$5.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(r=o=>o.message){const o={},u=[];for(const a of this.issues)a.path.length>0?(o[a.path[0]]=o[a.path[0]]||[],o[a.path[0]].push(r(a))):u.push(r(a));return{formErrors:u,fieldErrors:o}}get formErrors(){return this.flatten()}}ZodError.create=n=>new ZodError(n);const errorMap=(n,r)=>{let o;switch(n.code){case ZodIssueCode.invalid_type:n.received===ZodParsedType.undefined?o="Required":o=`Expected ${n.expected}, received ${n.received}`;break;case ZodIssueCode.invalid_literal:o=`Invalid literal value, expected ${JSON.stringify(n.expected,util$5.jsonStringifyReplacer)}`;break;case ZodIssueCode.unrecognized_keys:o=`Unrecognized key(s) in object: ${util$5.joinValues(n.keys,", ")}`;break;case ZodIssueCode.invalid_union:o="Invalid input";break;case ZodIssueCode.invalid_union_discriminator:o=`Invalid discriminator value. Expected ${util$5.joinValues(n.options)}`;break;case ZodIssueCode.invalid_enum_value:o=`Invalid enum value. Expected ${util$5.joinValues(n.options)}, received '${n.received}'`;break;case ZodIssueCode.invalid_arguments:o="Invalid function arguments";break;case ZodIssueCode.invalid_return_type:o="Invalid function return type";break;case ZodIssueCode.invalid_date:o="Invalid date";break;case ZodIssueCode.invalid_string:typeof n.validation=="object"?"includes"in n.validation?(o=`Invalid input: must include "${n.validation.includes}"`,typeof n.validation.position=="number"&&(o=`${o} at one or more positions greater than or equal to ${n.validation.position}`)):"startsWith"in n.validation?o=`Invalid input: must start with "${n.validation.startsWith}"`:"endsWith"in n.validation?o=`Invalid input: must end with "${n.validation.endsWith}"`:util$5.assertNever(n.validation):n.validation!=="regex"?o=`Invalid ${n.validation}`:o="Invalid";break;case ZodIssueCode.too_small:n.type==="array"?o=`Array must contain ${n.exact?"exactly":n.inclusive?"at least":"more than"} ${n.minimum} element(s)`:n.type==="string"?o=`String must contain ${n.exact?"exactly":n.inclusive?"at least":"over"} ${n.minimum} character(s)`:n.type==="number"?o=`Number must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${n.minimum}`:n.type==="date"?o=`Date must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(n.minimum))}`:o="Invalid input";break;case ZodIssueCode.too_big:n.type==="array"?o=`Array must contain ${n.exact?"exactly":n.inclusive?"at most":"less than"} ${n.maximum} element(s)`:n.type==="string"?o=`String must contain ${n.exact?"exactly":n.inclusive?"at most":"under"} ${n.maximum} character(s)`:n.type==="number"?o=`Number must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`:n.type==="bigint"?o=`BigInt must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`:n.type==="date"?o=`Date must be ${n.exact?"exactly":n.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(n.maximum))}`:o="Invalid input";break;case ZodIssueCode.custom:o="Invalid input";break;case ZodIssueCode.invalid_intersection_types:o="Intersection results could not be merged";break;case ZodIssueCode.not_multiple_of:o=`Number must be a multiple of ${n.multipleOf}`;break;case ZodIssueCode.not_finite:o="Number must be finite";break;default:o=r.defaultError,util$5.assertNever(n)}return{message:o}};let overrideErrorMap=errorMap;function setErrorMap(n){overrideErrorMap=n}function getErrorMap(){return overrideErrorMap}const makeIssue=n=>{const{data:r,path:o,errorMaps:u,issueData:a}=n,s=[...o,...a.path||[]],t={...a,path:s};if(a.message!==void 0)return{...a,path:s,message:a.message};let e="";const l=u.filter(c=>!!c).slice().reverse();for(const c of l)e=c(t,{data:r,defaultError:e}).message;return{...a,path:s,message:e}},EMPTY_PATH=[];function addIssueToContext(n,r){const o=getErrorMap(),u=makeIssue({issueData:r,data:n.data,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,o,o===errorMap?void 0:errorMap].filter(a=>!!a)});n.common.issues.push(u)}class ParseStatus{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(r,o){const u=[];for(const a of o){if(a.status==="aborted")return INVALID;a.status==="dirty"&&r.dirty(),u.push(a.value)}return{status:r.value,value:u}}static async mergeObjectAsync(r,o){const u=[];for(const a of o){const s=await a.key,t=await a.value;u.push({key:s,value:t})}return ParseStatus.mergeObjectSync(r,u)}static mergeObjectSync(r,o){const u={};for(const a of o){const{key:s,value:t}=a;if(s.status==="aborted"||t.status==="aborted")return INVALID;s.status==="dirty"&&r.dirty(),t.status==="dirty"&&r.dirty(),s.value!=="__proto__"&&(typeof t.value<"u"||a.alwaysSet)&&(u[s.value]=t.value)}return{status:r.value,value:u}}}const INVALID=Object.freeze({status:"aborted"}),DIRTY=n=>({status:"dirty",value:n}),OK=n=>({status:"valid",value:n}),isAborted=n=>n.status==="aborted",isDirty=n=>n.status==="dirty",isValid=n=>n.status==="valid",isAsync=n=>typeof Promise<"u"&&n instanceof Promise;function __classPrivateFieldGet(n,r,o,u){if(typeof r=="function"?n!==r||!u:!r.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r.get(n)}function __classPrivateFieldSet(n,r,o,u,a){if(typeof r=="function"?n!==r||!a:!r.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r.set(n,o),o}typeof SuppressedError=="function"&&SuppressedError;var errorUtil;(function(n){n.errToObj=r=>typeof r=="string"?{message:r}:r||{},n.toString=r=>typeof r=="string"?r:r==null?void 0:r.message})(errorUtil||(errorUtil={}));var _ZodEnum_cache,_ZodNativeEnum_cache;class ParseInputLazyPath{constructor(r,o,u,a){this._cachedPath=[],this.parent=r,this.data=o,this._path=u,this._key=a}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const handleResult=(n,r)=>{if(isValid(r))return{success:!0,data:r.value};if(!n.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const o=new ZodError(n.common.issues);return this._error=o,this._error}}};function processCreateParams(n){if(!n)return{};const{errorMap:r,invalid_type_error:o,required_error:u,description:a}=n;if(r&&(o||u))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return r?{errorMap:r,description:a}:{errorMap:(t,e)=>{var l,c;const{message:_}=n;return t.code==="invalid_enum_value"?{message:_??e.defaultError}:typeof e.data>"u"?{message:(l=_??u)!==null&&l!==void 0?l:e.defaultError}:t.code!=="invalid_type"?{message:e.defaultError}:{message:(c=_??o)!==null&&c!==void 0?c:e.defaultError}},description:a}}class ZodType{constructor(r){this.spa=this.safeParseAsync,this._def=r,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(r){return getParsedType(r.data)}_getOrReturnCtx(r,o){return o||{common:r.parent.common,data:r.data,parsedType:getParsedType(r.data),schemaErrorMap:this._def.errorMap,path:r.path,parent:r.parent}}_processInputParams(r){return{status:new ParseStatus,ctx:{common:r.parent.common,data:r.data,parsedType:getParsedType(r.data),schemaErrorMap:this._def.errorMap,path:r.path,parent:r.parent}}}_parseSync(r){const o=this._parse(r);if(isAsync(o))throw new Error("Synchronous parse encountered promise.");return o}_parseAsync(r){const o=this._parse(r);return Promise.resolve(o)}parse(r,o){const u=this.safeParse(r,o);if(u.success)return u.data;throw u.error}safeParse(r,o){var u;const a={common:{issues:[],async:(u=o==null?void 0:o.async)!==null&&u!==void 0?u:!1,contextualErrorMap:o==null?void 0:o.errorMap},path:(o==null?void 0:o.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:r,parsedType:getParsedType(r)},s=this._parseSync({data:r,path:a.path,parent:a});return handleResult(a,s)}async parseAsync(r,o){const u=await this.safeParseAsync(r,o);if(u.success)return u.data;throw u.error}async safeParseAsync(r,o){const u={common:{issues:[],contextualErrorMap:o==null?void 0:o.errorMap,async:!0},path:(o==null?void 0:o.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:r,parsedType:getParsedType(r)},a=this._parse({data:r,path:u.path,parent:u}),s=await(isAsync(a)?a:Promise.resolve(a));return handleResult(u,s)}refine(r,o){const u=a=>typeof o=="string"||typeof o>"u"?{message:o}:typeof o=="function"?o(a):o;return this._refinement((a,s)=>{const t=r(a),e=()=>s.addIssue({code:ZodIssueCode.custom,...u(a)});return typeof Promise<"u"&&t instanceof Promise?t.then(l=>l?!0:(e(),!1)):t?!0:(e(),!1)})}refinement(r,o){return this._refinement((u,a)=>r(u)?!0:(a.addIssue(typeof o=="function"?o(u,a):o),!1))}_refinement(r){return new ZodEffects({schema:this,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:{type:"refinement",refinement:r}})}superRefine(r){return this._refinement(r)}optional(){return ZodOptional.create(this,this._def)}nullable(){return ZodNullable.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ZodArray.create(this,this._def)}promise(){return ZodPromise.create(this,this._def)}or(r){return ZodUnion.create([this,r],this._def)}and(r){return ZodIntersection.create(this,r,this._def)}transform(r){return new ZodEffects({...processCreateParams(this._def),schema:this,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:{type:"transform",transform:r}})}default(r){const o=typeof r=="function"?r:()=>r;return new ZodDefault({...processCreateParams(this._def),innerType:this,defaultValue:o,typeName:ZodFirstPartyTypeKind.ZodDefault})}brand(){return new ZodBranded({typeName:ZodFirstPartyTypeKind.ZodBranded,type:this,...processCreateParams(this._def)})}catch(r){const o=typeof r=="function"?r:()=>r;return new ZodCatch({...processCreateParams(this._def),innerType:this,catchValue:o,typeName:ZodFirstPartyTypeKind.ZodCatch})}describe(r){const o=this.constructor;return new o({...this._def,description:r})}pipe(r){return ZodPipeline.create(this,r)}readonly(){return ZodReadonly.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const cuidRegex=/^c[^\s-]{8,}$/i,cuid2Regex=/^[0-9a-z]+$/,ulidRegex=/^[0-9A-HJKMNP-TV-Z]{26}$/,uuidRegex=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,nanoidRegex=/^[a-z0-9_-]{21}$/i,durationRegex=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,emailRegex=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,_emojiRegex="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let emojiRegex;const ipv4Regex=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv6Regex=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,base64Regex=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,dateRegexSource="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",dateRegex=new RegExp(`^${dateRegexSource}$`);function timeRegexSource(n){let r="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return n.precision?r=`${r}\\.\\d{${n.precision}}`:n.precision==null&&(r=`${r}(\\.\\d+)?`),r}function timeRegex(n){return new RegExp(`^${timeRegexSource(n)}$`)}function datetimeRegex(n){let r=`${dateRegexSource}T${timeRegexSource(n)}`;const o=[];return o.push(n.local?"Z?":"Z"),n.offset&&o.push("([+-]\\d{2}:?\\d{2})"),r=`${r}(${o.join("|")})`,new RegExp(`^${r}$`)}function isValidIP(n,r){return!!((r==="v4"||!r)&&ipv4Regex.test(n)||(r==="v6"||!r)&&ipv6Regex.test(n))}class ZodString extends ZodType{_parse(r){if(this._def.coerce&&(r.data=String(r.data)),this._getType(r)!==ZodParsedType.string){const s=this._getOrReturnCtx(r);return addIssueToContext(s,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.string,received:s.parsedType}),INVALID}const u=new ParseStatus;let a;for(const s of this._def.checks)if(s.kind==="min")r.data.length<s.value&&(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{code:ZodIssueCode.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),u.dirty());else if(s.kind==="max")r.data.length>s.value&&(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{code:ZodIssueCode.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),u.dirty());else if(s.kind==="length"){const t=r.data.length>s.value,e=r.data.length<s.value;(t||e)&&(a=this._getOrReturnCtx(r,a),t?addIssueToContext(a,{code:ZodIssueCode.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):e&&addIssueToContext(a,{code:ZodIssueCode.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),u.dirty())}else if(s.kind==="email")emailRegex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"email",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty());else if(s.kind==="emoji")emojiRegex||(emojiRegex=new RegExp(_emojiRegex,"u")),emojiRegex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"emoji",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty());else if(s.kind==="uuid")uuidRegex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"uuid",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty());else if(s.kind==="nanoid")nanoidRegex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"nanoid",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty());else if(s.kind==="cuid")cuidRegex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"cuid",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty());else if(s.kind==="cuid2")cuid2Regex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"cuid2",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty());else if(s.kind==="ulid")ulidRegex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"ulid",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty());else if(s.kind==="url")try{new URL(r.data)}catch{a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"url",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"regex",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty())):s.kind==="trim"?r.data=r.data.trim():s.kind==="includes"?r.data.includes(s.value,s.position)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{code:ZodIssueCode.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),u.dirty()):s.kind==="toLowerCase"?r.data=r.data.toLowerCase():s.kind==="toUpperCase"?r.data=r.data.toUpperCase():s.kind==="startsWith"?r.data.startsWith(s.value)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{code:ZodIssueCode.invalid_string,validation:{startsWith:s.value},message:s.message}),u.dirty()):s.kind==="endsWith"?r.data.endsWith(s.value)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{code:ZodIssueCode.invalid_string,validation:{endsWith:s.value},message:s.message}),u.dirty()):s.kind==="datetime"?datetimeRegex(s).test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{code:ZodIssueCode.invalid_string,validation:"datetime",message:s.message}),u.dirty()):s.kind==="date"?dateRegex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{code:ZodIssueCode.invalid_string,validation:"date",message:s.message}),u.dirty()):s.kind==="time"?timeRegex(s).test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{code:ZodIssueCode.invalid_string,validation:"time",message:s.message}),u.dirty()):s.kind==="duration"?durationRegex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"duration",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty()):s.kind==="ip"?isValidIP(r.data,s.version)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"ip",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty()):s.kind==="base64"?base64Regex.test(r.data)||(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{validation:"base64",code:ZodIssueCode.invalid_string,message:s.message}),u.dirty()):util$5.assertNever(s);return{status:u.value,value:r.data}}_regex(r,o,u){return this.refinement(a=>r.test(a),{validation:o,code:ZodIssueCode.invalid_string,...errorUtil.errToObj(u)})}_addCheck(r){return new ZodString({...this._def,checks:[...this._def.checks,r]})}email(r){return this._addCheck({kind:"email",...errorUtil.errToObj(r)})}url(r){return this._addCheck({kind:"url",...errorUtil.errToObj(r)})}emoji(r){return this._addCheck({kind:"emoji",...errorUtil.errToObj(r)})}uuid(r){return this._addCheck({kind:"uuid",...errorUtil.errToObj(r)})}nanoid(r){return this._addCheck({kind:"nanoid",...errorUtil.errToObj(r)})}cuid(r){return this._addCheck({kind:"cuid",...errorUtil.errToObj(r)})}cuid2(r){return this._addCheck({kind:"cuid2",...errorUtil.errToObj(r)})}ulid(r){return this._addCheck({kind:"ulid",...errorUtil.errToObj(r)})}base64(r){return this._addCheck({kind:"base64",...errorUtil.errToObj(r)})}ip(r){return this._addCheck({kind:"ip",...errorUtil.errToObj(r)})}datetime(r){var o,u;return typeof r=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:r}):this._addCheck({kind:"datetime",precision:typeof(r==null?void 0:r.precision)>"u"?null:r==null?void 0:r.precision,offset:(o=r==null?void 0:r.offset)!==null&&o!==void 0?o:!1,local:(u=r==null?void 0:r.local)!==null&&u!==void 0?u:!1,...errorUtil.errToObj(r==null?void 0:r.message)})}date(r){return this._addCheck({kind:"date",message:r})}time(r){return typeof r=="string"?this._addCheck({kind:"time",precision:null,message:r}):this._addCheck({kind:"time",precision:typeof(r==null?void 0:r.precision)>"u"?null:r==null?void 0:r.precision,...errorUtil.errToObj(r==null?void 0:r.message)})}duration(r){return this._addCheck({kind:"duration",...errorUtil.errToObj(r)})}regex(r,o){return this._addCheck({kind:"regex",regex:r,...errorUtil.errToObj(o)})}includes(r,o){return this._addCheck({kind:"includes",value:r,position:o==null?void 0:o.position,...errorUtil.errToObj(o==null?void 0:o.message)})}startsWith(r,o){return this._addCheck({kind:"startsWith",value:r,...errorUtil.errToObj(o)})}endsWith(r,o){return this._addCheck({kind:"endsWith",value:r,...errorUtil.errToObj(o)})}min(r,o){return this._addCheck({kind:"min",value:r,...errorUtil.errToObj(o)})}max(r,o){return this._addCheck({kind:"max",value:r,...errorUtil.errToObj(o)})}length(r,o){return this._addCheck({kind:"length",value:r,...errorUtil.errToObj(o)})}nonempty(r){return this.min(1,errorUtil.errToObj(r))}trim(){return new ZodString({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new ZodString({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new ZodString({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(r=>r.kind==="datetime")}get isDate(){return!!this._def.checks.find(r=>r.kind==="date")}get isTime(){return!!this._def.checks.find(r=>r.kind==="time")}get isDuration(){return!!this._def.checks.find(r=>r.kind==="duration")}get isEmail(){return!!this._def.checks.find(r=>r.kind==="email")}get isURL(){return!!this._def.checks.find(r=>r.kind==="url")}get isEmoji(){return!!this._def.checks.find(r=>r.kind==="emoji")}get isUUID(){return!!this._def.checks.find(r=>r.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(r=>r.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(r=>r.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(r=>r.kind==="cuid2")}get isULID(){return!!this._def.checks.find(r=>r.kind==="ulid")}get isIP(){return!!this._def.checks.find(r=>r.kind==="ip")}get isBase64(){return!!this._def.checks.find(r=>r.kind==="base64")}get minLength(){let r=null;for(const o of this._def.checks)o.kind==="min"&&(r===null||o.value>r)&&(r=o.value);return r}get maxLength(){let r=null;for(const o of this._def.checks)o.kind==="max"&&(r===null||o.value<r)&&(r=o.value);return r}}ZodString.create=n=>{var r;return new ZodString({checks:[],typeName:ZodFirstPartyTypeKind.ZodString,coerce:(r=n==null?void 0:n.coerce)!==null&&r!==void 0?r:!1,...processCreateParams(n)})};function floatSafeRemainder(n,r){const o=(n.toString().split(".")[1]||"").length,u=(r.toString().split(".")[1]||"").length,a=o>u?o:u,s=parseInt(n.toFixed(a).replace(".","")),t=parseInt(r.toFixed(a).replace(".",""));return s%t/Math.pow(10,a)}class ZodNumber extends ZodType{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(r){if(this._def.coerce&&(r.data=Number(r.data)),this._getType(r)!==ZodParsedType.number){const s=this._getOrReturnCtx(r);return addIssueToContext(s,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.number,received:s.parsedType}),INVALID}let u;const a=new ParseStatus;for(const s of this._def.checks)s.kind==="int"?util$5.isInteger(r.data)||(u=this._getOrReturnCtx(r,u),addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:"integer",received:"float",message:s.message}),a.dirty()):s.kind==="min"?(s.inclusive?r.data<s.value:r.data<=s.value)&&(u=this._getOrReturnCtx(r,u),addIssueToContext(u,{code:ZodIssueCode.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),a.dirty()):s.kind==="max"?(s.inclusive?r.data>s.value:r.data>=s.value)&&(u=this._getOrReturnCtx(r,u),addIssueToContext(u,{code:ZodIssueCode.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),a.dirty()):s.kind==="multipleOf"?floatSafeRemainder(r.data,s.value)!==0&&(u=this._getOrReturnCtx(r,u),addIssueToContext(u,{code:ZodIssueCode.not_multiple_of,multipleOf:s.value,message:s.message}),a.dirty()):s.kind==="finite"?Number.isFinite(r.data)||(u=this._getOrReturnCtx(r,u),addIssueToContext(u,{code:ZodIssueCode.not_finite,message:s.message}),a.dirty()):util$5.assertNever(s);return{status:a.value,value:r.data}}gte(r,o){return this.setLimit("min",r,!0,errorUtil.toString(o))}gt(r,o){return this.setLimit("min",r,!1,errorUtil.toString(o))}lte(r,o){return this.setLimit("max",r,!0,errorUtil.toString(o))}lt(r,o){return this.setLimit("max",r,!1,errorUtil.toString(o))}setLimit(r,o,u,a){return new ZodNumber({...this._def,checks:[...this._def.checks,{kind:r,value:o,inclusive:u,message:errorUtil.toString(a)}]})}_addCheck(r){return new ZodNumber({...this._def,checks:[...this._def.checks,r]})}int(r){return this._addCheck({kind:"int",message:errorUtil.toString(r)})}positive(r){return this._addCheck({kind:"min",value:0,inclusive:!1,message:errorUtil.toString(r)})}negative(r){return this._addCheck({kind:"max",value:0,inclusive:!1,message:errorUtil.toString(r)})}nonpositive(r){return this._addCheck({kind:"max",value:0,inclusive:!0,message:errorUtil.toString(r)})}nonnegative(r){return this._addCheck({kind:"min",value:0,inclusive:!0,message:errorUtil.toString(r)})}multipleOf(r,o){return this._addCheck({kind:"multipleOf",value:r,message:errorUtil.toString(o)})}finite(r){return this._addCheck({kind:"finite",message:errorUtil.toString(r)})}safe(r){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:errorUtil.toString(r)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:errorUtil.toString(r)})}get minValue(){let r=null;for(const o of this._def.checks)o.kind==="min"&&(r===null||o.value>r)&&(r=o.value);return r}get maxValue(){let r=null;for(const o of this._def.checks)o.kind==="max"&&(r===null||o.value<r)&&(r=o.value);return r}get isInt(){return!!this._def.checks.find(r=>r.kind==="int"||r.kind==="multipleOf"&&util$5.isInteger(r.value))}get isFinite(){let r=null,o=null;for(const u of this._def.checks){if(u.kind==="finite"||u.kind==="int"||u.kind==="multipleOf")return!0;u.kind==="min"?(o===null||u.value>o)&&(o=u.value):u.kind==="max"&&(r===null||u.value<r)&&(r=u.value)}return Number.isFinite(o)&&Number.isFinite(r)}}ZodNumber.create=n=>new ZodNumber({checks:[],typeName:ZodFirstPartyTypeKind.ZodNumber,coerce:(n==null?void 0:n.coerce)||!1,...processCreateParams(n)});class ZodBigInt extends ZodType{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(r){if(this._def.coerce&&(r.data=BigInt(r.data)),this._getType(r)!==ZodParsedType.bigint){const s=this._getOrReturnCtx(r);return addIssueToContext(s,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.bigint,received:s.parsedType}),INVALID}let u;const a=new ParseStatus;for(const s of this._def.checks)s.kind==="min"?(s.inclusive?r.data<s.value:r.data<=s.value)&&(u=this._getOrReturnCtx(r,u),addIssueToContext(u,{code:ZodIssueCode.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),a.dirty()):s.kind==="max"?(s.inclusive?r.data>s.value:r.data>=s.value)&&(u=this._getOrReturnCtx(r,u),addIssueToContext(u,{code:ZodIssueCode.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),a.dirty()):s.kind==="multipleOf"?r.data%s.value!==BigInt(0)&&(u=this._getOrReturnCtx(r,u),addIssueToContext(u,{code:ZodIssueCode.not_multiple_of,multipleOf:s.value,message:s.message}),a.dirty()):util$5.assertNever(s);return{status:a.value,value:r.data}}gte(r,o){return this.setLimit("min",r,!0,errorUtil.toString(o))}gt(r,o){return this.setLimit("min",r,!1,errorUtil.toString(o))}lte(r,o){return this.setLimit("max",r,!0,errorUtil.toString(o))}lt(r,o){return this.setLimit("max",r,!1,errorUtil.toString(o))}setLimit(r,o,u,a){return new ZodBigInt({...this._def,checks:[...this._def.checks,{kind:r,value:o,inclusive:u,message:errorUtil.toString(a)}]})}_addCheck(r){return new ZodBigInt({...this._def,checks:[...this._def.checks,r]})}positive(r){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:errorUtil.toString(r)})}negative(r){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:errorUtil.toString(r)})}nonpositive(r){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:errorUtil.toString(r)})}nonnegative(r){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:errorUtil.toString(r)})}multipleOf(r,o){return this._addCheck({kind:"multipleOf",value:r,message:errorUtil.toString(o)})}get minValue(){let r=null;for(const o of this._def.checks)o.kind==="min"&&(r===null||o.value>r)&&(r=o.value);return r}get maxValue(){let r=null;for(const o of this._def.checks)o.kind==="max"&&(r===null||o.value<r)&&(r=o.value);return r}}ZodBigInt.create=n=>{var r;return new ZodBigInt({checks:[],typeName:ZodFirstPartyTypeKind.ZodBigInt,coerce:(r=n==null?void 0:n.coerce)!==null&&r!==void 0?r:!1,...processCreateParams(n)})};class ZodBoolean extends ZodType{_parse(r){if(this._def.coerce&&(r.data=!!r.data),this._getType(r)!==ZodParsedType.boolean){const u=this._getOrReturnCtx(r);return addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.boolean,received:u.parsedType}),INVALID}return OK(r.data)}}ZodBoolean.create=n=>new ZodBoolean({typeName:ZodFirstPartyTypeKind.ZodBoolean,coerce:(n==null?void 0:n.coerce)||!1,...processCreateParams(n)});class ZodDate extends ZodType{_parse(r){if(this._def.coerce&&(r.data=new Date(r.data)),this._getType(r)!==ZodParsedType.date){const s=this._getOrReturnCtx(r);return addIssueToContext(s,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.date,received:s.parsedType}),INVALID}if(isNaN(r.data.getTime())){const s=this._getOrReturnCtx(r);return addIssueToContext(s,{code:ZodIssueCode.invalid_date}),INVALID}const u=new ParseStatus;let a;for(const s of this._def.checks)s.kind==="min"?r.data.getTime()<s.value&&(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{code:ZodIssueCode.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),u.dirty()):s.kind==="max"?r.data.getTime()>s.value&&(a=this._getOrReturnCtx(r,a),addIssueToContext(a,{code:ZodIssueCode.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),u.dirty()):util$5.assertNever(s);return{status:u.value,value:new Date(r.data.getTime())}}_addCheck(r){return new ZodDate({...this._def,checks:[...this._def.checks,r]})}min(r,o){return this._addCheck({kind:"min",value:r.getTime(),message:errorUtil.toString(o)})}max(r,o){return this._addCheck({kind:"max",value:r.getTime(),message:errorUtil.toString(o)})}get minDate(){let r=null;for(const o of this._def.checks)o.kind==="min"&&(r===null||o.value>r)&&(r=o.value);return r!=null?new Date(r):null}get maxDate(){let r=null;for(const o of this._def.checks)o.kind==="max"&&(r===null||o.value<r)&&(r=o.value);return r!=null?new Date(r):null}}ZodDate.create=n=>new ZodDate({checks:[],coerce:(n==null?void 0:n.coerce)||!1,typeName:ZodFirstPartyTypeKind.ZodDate,...processCreateParams(n)});class ZodSymbol extends ZodType{_parse(r){if(this._getType(r)!==ZodParsedType.symbol){const u=this._getOrReturnCtx(r);return addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.symbol,received:u.parsedType}),INVALID}return OK(r.data)}}ZodSymbol.create=n=>new ZodSymbol({typeName:ZodFirstPartyTypeKind.ZodSymbol,...processCreateParams(n)});class ZodUndefined extends ZodType{_parse(r){if(this._getType(r)!==ZodParsedType.undefined){const u=this._getOrReturnCtx(r);return addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.undefined,received:u.parsedType}),INVALID}return OK(r.data)}}ZodUndefined.create=n=>new ZodUndefined({typeName:ZodFirstPartyTypeKind.ZodUndefined,...processCreateParams(n)});class ZodNull extends ZodType{_parse(r){if(this._getType(r)!==ZodParsedType.null){const u=this._getOrReturnCtx(r);return addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.null,received:u.parsedType}),INVALID}return OK(r.data)}}ZodNull.create=n=>new ZodNull({typeName:ZodFirstPartyTypeKind.ZodNull,...processCreateParams(n)});class ZodAny extends ZodType{constructor(){super(...arguments),this._any=!0}_parse(r){return OK(r.data)}}ZodAny.create=n=>new ZodAny({typeName:ZodFirstPartyTypeKind.ZodAny,...processCreateParams(n)});class ZodUnknown extends ZodType{constructor(){super(...arguments),this._unknown=!0}_parse(r){return OK(r.data)}}ZodUnknown.create=n=>new ZodUnknown({typeName:ZodFirstPartyTypeKind.ZodUnknown,...processCreateParams(n)});class ZodNever extends ZodType{_parse(r){const o=this._getOrReturnCtx(r);return addIssueToContext(o,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.never,received:o.parsedType}),INVALID}}ZodNever.create=n=>new ZodNever({typeName:ZodFirstPartyTypeKind.ZodNever,...processCreateParams(n)});class ZodVoid extends ZodType{_parse(r){if(this._getType(r)!==ZodParsedType.undefined){const u=this._getOrReturnCtx(r);return addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.void,received:u.parsedType}),INVALID}return OK(r.data)}}ZodVoid.create=n=>new ZodVoid({typeName:ZodFirstPartyTypeKind.ZodVoid,...processCreateParams(n)});class ZodArray extends ZodType{_parse(r){const{ctx:o,status:u}=this._processInputParams(r),a=this._def;if(o.parsedType!==ZodParsedType.array)return addIssueToContext(o,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.array,received:o.parsedType}),INVALID;if(a.exactLength!==null){const t=o.data.length>a.exactLength.value,e=o.data.length<a.exactLength.value;(t||e)&&(addIssueToContext(o,{code:t?ZodIssueCode.too_big:ZodIssueCode.too_small,minimum:e?a.exactLength.value:void 0,maximum:t?a.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:a.exactLength.message}),u.dirty())}if(a.minLength!==null&&o.data.length<a.minLength.value&&(addIssueToContext(o,{code:ZodIssueCode.too_small,minimum:a.minLength.value,type:"array",inclusive:!0,exact:!1,message:a.minLength.message}),u.dirty()),a.maxLength!==null&&o.data.length>a.maxLength.value&&(addIssueToContext(o,{code:ZodIssueCode.too_big,maximum:a.maxLength.value,type:"array",inclusive:!0,exact:!1,message:a.maxLength.message}),u.dirty()),o.common.async)return Promise.all([...o.data].map((t,e)=>a.type._parseAsync(new ParseInputLazyPath(o,t,o.path,e)))).then(t=>ParseStatus.mergeArray(u,t));const s=[...o.data].map((t,e)=>a.type._parseSync(new ParseInputLazyPath(o,t,o.path,e)));return ParseStatus.mergeArray(u,s)}get element(){return this._def.type}min(r,o){return new ZodArray({...this._def,minLength:{value:r,message:errorUtil.toString(o)}})}max(r,o){return new ZodArray({...this._def,maxLength:{value:r,message:errorUtil.toString(o)}})}length(r,o){return new ZodArray({...this._def,exactLength:{value:r,message:errorUtil.toString(o)}})}nonempty(r){return this.min(1,r)}}ZodArray.create=(n,r)=>new ZodArray({type:n,minLength:null,maxLength:null,exactLength:null,typeName:ZodFirstPartyTypeKind.ZodArray,...processCreateParams(r)});function deepPartialify(n){if(n instanceof ZodObject){const r={};for(const o in n.shape){const u=n.shape[o];r[o]=ZodOptional.create(deepPartialify(u))}return new ZodObject({...n._def,shape:()=>r})}else return n instanceof ZodArray?new ZodArray({...n._def,type:deepPartialify(n.element)}):n instanceof ZodOptional?ZodOptional.create(deepPartialify(n.unwrap())):n instanceof ZodNullable?ZodNullable.create(deepPartialify(n.unwrap())):n instanceof ZodTuple?ZodTuple.create(n.items.map(r=>deepPartialify(r))):n}class ZodObject extends ZodType{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const r=this._def.shape(),o=util$5.objectKeys(r);return this._cached={shape:r,keys:o}}_parse(r){if(this._getType(r)!==ZodParsedType.object){const c=this._getOrReturnCtx(r);return addIssueToContext(c,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.object,received:c.parsedType}),INVALID}const{status:u,ctx:a}=this._processInputParams(r),{shape:s,keys:t}=this._getCached(),e=[];if(!(this._def.catchall instanceof ZodNever&&this._def.unknownKeys==="strip"))for(const c in a.data)t.includes(c)||e.push(c);const l=[];for(const c of t){const _=s[c],d=a.data[c];l.push({key:{status:"valid",value:c},value:_._parse(new ParseInputLazyPath(a,d,a.path,c)),alwaysSet:c in a.data})}if(this._def.catchall instanceof ZodNever){const c=this._def.unknownKeys;if(c==="passthrough")for(const _ of e)l.push({key:{status:"valid",value:_},value:{status:"valid",value:a.data[_]}});else if(c==="strict")e.length>0&&(addIssueToContext(a,{code:ZodIssueCode.unrecognized_keys,keys:e}),u.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const c=this._def.catchall;for(const _ of e){const d=a.data[_];l.push({key:{status:"valid",value:_},value:c._parse(new ParseInputLazyPath(a,d,a.path,_)),alwaysSet:_ in a.data})}}return a.common.async?Promise.resolve().then(async()=>{const c=[];for(const _ of l){const d=await _.key,p=await _.value;c.push({key:d,value:p,alwaysSet:_.alwaysSet})}return c}).then(c=>ParseStatus.mergeObjectSync(u,c)):ParseStatus.mergeObjectSync(u,l)}get shape(){return this._def.shape()}strict(r){return errorUtil.errToObj,new ZodObject({...this._def,unknownKeys:"strict",...r!==void 0?{errorMap:(o,u)=>{var a,s,t,e;const l=(t=(s=(a=this._def).errorMap)===null||s===void 0?void 0:s.call(a,o,u).message)!==null&&t!==void 0?t:u.defaultError;return o.code==="unrecognized_keys"?{message:(e=errorUtil.errToObj(r).message)!==null&&e!==void 0?e:l}:{message:l}}}:{}})}strip(){return new ZodObject({...this._def,unknownKeys:"strip"})}passthrough(){return new ZodObject({...this._def,unknownKeys:"passthrough"})}extend(r){return new ZodObject({...this._def,shape:()=>({...this._def.shape(),...r})})}merge(r){return new ZodObject({unknownKeys:r._def.unknownKeys,catchall:r._def.catchall,shape:()=>({...this._def.shape(),...r._def.shape()}),typeName:ZodFirstPartyTypeKind.ZodObject})}setKey(r,o){return this.augment({[r]:o})}catchall(r){return new ZodObject({...this._def,catchall:r})}pick(r){const o={};return util$5.objectKeys(r).forEach(u=>{r[u]&&this.shape[u]&&(o[u]=this.shape[u])}),new ZodObject({...this._def,shape:()=>o})}omit(r){const o={};return util$5.objectKeys(this.shape).forEach(u=>{r[u]||(o[u]=this.shape[u])}),new ZodObject({...this._def,shape:()=>o})}deepPartial(){return deepPartialify(this)}partial(r){const o={};return util$5.objectKeys(this.shape).forEach(u=>{const a=this.shape[u];r&&!r[u]?o[u]=a:o[u]=a.optional()}),new ZodObject({...this._def,shape:()=>o})}required(r){const o={};return util$5.objectKeys(this.shape).forEach(u=>{if(r&&!r[u])o[u]=this.shape[u];else{let s=this.shape[u];for(;s instanceof ZodOptional;)s=s._def.innerType;o[u]=s}}),new ZodObject({...this._def,shape:()=>o})}keyof(){return createZodEnum(util$5.objectKeys(this.shape))}}ZodObject.create=(n,r)=>new ZodObject({shape:()=>n,unknownKeys:"strip",catchall:ZodNever.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams(r)}),ZodObject.strictCreate=(n,r)=>new ZodObject({shape:()=>n,unknownKeys:"strict",catchall:ZodNever.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams(r)}),ZodObject.lazycreate=(n,r)=>new ZodObject({shape:n,unknownKeys:"strip",catchall:ZodNever.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams(r)});class ZodUnion extends ZodType{_parse(r){const{ctx:o}=this._processInputParams(r),u=this._def.options;function a(s){for(const e of s)if(e.result.status==="valid")return e.result;for(const e of s)if(e.result.status==="dirty")return o.common.issues.push(...e.ctx.common.issues),e.result;const t=s.map(e=>new ZodError(e.ctx.common.issues));return addIssueToContext(o,{code:ZodIssueCode.invalid_union,unionErrors:t}),INVALID}if(o.common.async)return Promise.all(u.map(async s=>{const t={...o,common:{...o.common,issues:[]},parent:null};return{result:await s._parseAsync({data:o.data,path:o.path,parent:t}),ctx:t}})).then(a);{let s;const t=[];for(const l of u){const c={...o,common:{...o.common,issues:[]},parent:null},_=l._parseSync({data:o.data,path:o.path,parent:c});if(_.status==="valid")return _;_.status==="dirty"&&!s&&(s={result:_,ctx:c}),c.common.issues.length&&t.push(c.common.issues)}if(s)return o.common.issues.push(...s.ctx.common.issues),s.result;const e=t.map(l=>new ZodError(l));return addIssueToContext(o,{code:ZodIssueCode.invalid_union,unionErrors:e}),INVALID}}get options(){return this._def.options}}ZodUnion.create=(n,r)=>new ZodUnion({options:n,typeName:ZodFirstPartyTypeKind.ZodUnion,...processCreateParams(r)});const getDiscriminator=n=>n instanceof ZodLazy?getDiscriminator(n.schema):n instanceof ZodEffects?getDiscriminator(n.innerType()):n instanceof ZodLiteral?[n.value]:n instanceof ZodEnum?n.options:n instanceof ZodNativeEnum?util$5.objectValues(n.enum):n instanceof ZodDefault?getDiscriminator(n._def.innerType):n instanceof ZodUndefined?[void 0]:n instanceof ZodNull?[null]:n instanceof ZodOptional?[void 0,...getDiscriminator(n.unwrap())]:n instanceof ZodNullable?[null,...getDiscriminator(n.unwrap())]:n instanceof ZodBranded||n instanceof ZodReadonly?getDiscriminator(n.unwrap()):n instanceof ZodCatch?getDiscriminator(n._def.innerType):[];class ZodDiscriminatedUnion extends ZodType{_parse(r){const{ctx:o}=this._processInputParams(r);if(o.parsedType!==ZodParsedType.object)return addIssueToContext(o,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.object,received:o.parsedType}),INVALID;const u=this.discriminator,a=o.data[u],s=this.optionsMap.get(a);return s?o.common.async?s._parseAsync({data:o.data,path:o.path,parent:o}):s._parseSync({data:o.data,path:o.path,parent:o}):(addIssueToContext(o,{code:ZodIssueCode.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[u]}),INVALID)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(r,o,u){const a=new Map;for(const s of o){const t=getDiscriminator(s.shape[r]);if(!t.length)throw new Error(`A discriminator value for key \`${r}\` could not be extracted from all schema options`);for(const e of t){if(a.has(e))throw new Error(`Discriminator property ${String(r)} has duplicate value ${String(e)}`);a.set(e,s)}}return new ZodDiscriminatedUnion({typeName:ZodFirstPartyTypeKind.ZodDiscriminatedUnion,discriminator:r,options:o,optionsMap:a,...processCreateParams(u)})}}function mergeValues(n,r){const o=getParsedType(n),u=getParsedType(r);if(n===r)return{valid:!0,data:n};if(o===ZodParsedType.object&&u===ZodParsedType.object){const a=util$5.objectKeys(r),s=util$5.objectKeys(n).filter(e=>a.indexOf(e)!==-1),t={...n,...r};for(const e of s){const l=mergeValues(n[e],r[e]);if(!l.valid)return{valid:!1};t[e]=l.data}return{valid:!0,data:t}}else if(o===ZodParsedType.array&&u===ZodParsedType.array){if(n.length!==r.length)return{valid:!1};const a=[];for(let s=0;s<n.length;s++){const t=n[s],e=r[s],l=mergeValues(t,e);if(!l.valid)return{valid:!1};a.push(l.data)}return{valid:!0,data:a}}else return o===ZodParsedType.date&&u===ZodParsedType.date&&+n==+r?{valid:!0,data:n}:{valid:!1}}class ZodIntersection extends ZodType{_parse(r){const{status:o,ctx:u}=this._processInputParams(r),a=(s,t)=>{if(isAborted(s)||isAborted(t))return INVALID;const e=mergeValues(s.value,t.value);return e.valid?((isDirty(s)||isDirty(t))&&o.dirty(),{status:o.value,value:e.data}):(addIssueToContext(u,{code:ZodIssueCode.invalid_intersection_types}),INVALID)};return u.common.async?Promise.all([this._def.left._parseAsync({data:u.data,path:u.path,parent:u}),this._def.right._parseAsync({data:u.data,path:u.path,parent:u})]).then(([s,t])=>a(s,t)):a(this._def.left._parseSync({data:u.data,path:u.path,parent:u}),this._def.right._parseSync({data:u.data,path:u.path,parent:u}))}}ZodIntersection.create=(n,r,o)=>new ZodIntersection({left:n,right:r,typeName:ZodFirstPartyTypeKind.ZodIntersection,...processCreateParams(o)});class ZodTuple extends ZodType{_parse(r){const{status:o,ctx:u}=this._processInputParams(r);if(u.parsedType!==ZodParsedType.array)return addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.array,received:u.parsedType}),INVALID;if(u.data.length<this._def.items.length)return addIssueToContext(u,{code:ZodIssueCode.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),INVALID;!this._def.rest&&u.data.length>this._def.items.length&&(addIssueToContext(u,{code:ZodIssueCode.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),o.dirty());const s=[...u.data].map((t,e)=>{const l=this._def.items[e]||this._def.rest;return l?l._parse(new ParseInputLazyPath(u,t,u.path,e)):null}).filter(t=>!!t);return u.common.async?Promise.all(s).then(t=>ParseStatus.mergeArray(o,t)):ParseStatus.mergeArray(o,s)}get items(){return this._def.items}rest(r){return new ZodTuple({...this._def,rest:r})}}ZodTuple.create=(n,r)=>{if(!Array.isArray(n))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ZodTuple({items:n,typeName:ZodFirstPartyTypeKind.ZodTuple,rest:null,...processCreateParams(r)})};class ZodRecord extends ZodType{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(r){const{status:o,ctx:u}=this._processInputParams(r);if(u.parsedType!==ZodParsedType.object)return addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.object,received:u.parsedType}),INVALID;const a=[],s=this._def.keyType,t=this._def.valueType;for(const e in u.data)a.push({key:s._parse(new ParseInputLazyPath(u,e,u.path,e)),value:t._parse(new ParseInputLazyPath(u,u.data[e],u.path,e)),alwaysSet:e in u.data});return u.common.async?ParseStatus.mergeObjectAsync(o,a):ParseStatus.mergeObjectSync(o,a)}get element(){return this._def.valueType}static create(r,o,u){return o instanceof ZodType?new ZodRecord({keyType:r,valueType:o,typeName:ZodFirstPartyTypeKind.ZodRecord,...processCreateParams(u)}):new ZodRecord({keyType:ZodString.create(),valueType:r,typeName:ZodFirstPartyTypeKind.ZodRecord,...processCreateParams(o)})}}class ZodMap extends ZodType{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(r){const{status:o,ctx:u}=this._processInputParams(r);if(u.parsedType!==ZodParsedType.map)return addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.map,received:u.parsedType}),INVALID;const a=this._def.keyType,s=this._def.valueType,t=[...u.data.entries()].map(([e,l],c)=>({key:a._parse(new ParseInputLazyPath(u,e,u.path,[c,"key"])),value:s._parse(new ParseInputLazyPath(u,l,u.path,[c,"value"]))}));if(u.common.async){const e=new Map;return Promise.resolve().then(async()=>{for(const l of t){const c=await l.key,_=await l.value;if(c.status==="aborted"||_.status==="aborted")return INVALID;(c.status==="dirty"||_.status==="dirty")&&o.dirty(),e.set(c.value,_.value)}return{status:o.value,value:e}})}else{const e=new Map;for(const l of t){const c=l.key,_=l.value;if(c.status==="aborted"||_.status==="aborted")return INVALID;(c.status==="dirty"||_.status==="dirty")&&o.dirty(),e.set(c.value,_.value)}return{status:o.value,value:e}}}}ZodMap.create=(n,r,o)=>new ZodMap({valueType:r,keyType:n,typeName:ZodFirstPartyTypeKind.ZodMap,...processCreateParams(o)});class ZodSet extends ZodType{_parse(r){const{status:o,ctx:u}=this._processInputParams(r);if(u.parsedType!==ZodParsedType.set)return addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.set,received:u.parsedType}),INVALID;const a=this._def;a.minSize!==null&&u.data.size<a.minSize.value&&(addIssueToContext(u,{code:ZodIssueCode.too_small,minimum:a.minSize.value,type:"set",inclusive:!0,exact:!1,message:a.minSize.message}),o.dirty()),a.maxSize!==null&&u.data.size>a.maxSize.value&&(addIssueToContext(u,{code:ZodIssueCode.too_big,maximum:a.maxSize.value,type:"set",inclusive:!0,exact:!1,message:a.maxSize.message}),o.dirty());const s=this._def.valueType;function t(l){const c=new Set;for(const _ of l){if(_.status==="aborted")return INVALID;_.status==="dirty"&&o.dirty(),c.add(_.value)}return{status:o.value,value:c}}const e=[...u.data.values()].map((l,c)=>s._parse(new ParseInputLazyPath(u,l,u.path,c)));return u.common.async?Promise.all(e).then(l=>t(l)):t(e)}min(r,o){return new ZodSet({...this._def,minSize:{value:r,message:errorUtil.toString(o)}})}max(r,o){return new ZodSet({...this._def,maxSize:{value:r,message:errorUtil.toString(o)}})}size(r,o){return this.min(r,o).max(r,o)}nonempty(r){return this.min(1,r)}}ZodSet.create=(n,r)=>new ZodSet({valueType:n,minSize:null,maxSize:null,typeName:ZodFirstPartyTypeKind.ZodSet,...processCreateParams(r)});class ZodFunction extends ZodType{constructor(){super(...arguments),this.validate=this.implement}_parse(r){const{ctx:o}=this._processInputParams(r);if(o.parsedType!==ZodParsedType.function)return addIssueToContext(o,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.function,received:o.parsedType}),INVALID;function u(e,l){return makeIssue({data:e,path:o.path,errorMaps:[o.common.contextualErrorMap,o.schemaErrorMap,getErrorMap(),errorMap].filter(c=>!!c),issueData:{code:ZodIssueCode.invalid_arguments,argumentsError:l}})}function a(e,l){return makeIssue({data:e,path:o.path,errorMaps:[o.common.contextualErrorMap,o.schemaErrorMap,getErrorMap(),errorMap].filter(c=>!!c),issueData:{code:ZodIssueCode.invalid_return_type,returnTypeError:l}})}const s={errorMap:o.common.contextualErrorMap},t=o.data;if(this._def.returns instanceof ZodPromise){const e=this;return OK(async function(...l){const c=new ZodError([]),_=await e._def.args.parseAsync(l,s).catch(E=>{throw c.addIssue(u(l,E)),c}),d=await Reflect.apply(t,this,_);return await e._def.returns._def.type.parseAsync(d,s).catch(E=>{throw c.addIssue(a(d,E)),c})})}else{const e=this;return OK(function(...l){const c=e._def.args.safeParse(l,s);if(!c.success)throw new ZodError([u(l,c.error)]);const _=Reflect.apply(t,this,c.data),d=e._def.returns.safeParse(_,s);if(!d.success)throw new ZodError([a(_,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...r){return new ZodFunction({...this._def,args:ZodTuple.create(r).rest(ZodUnknown.create())})}returns(r){return new ZodFunction({...this._def,returns:r})}implement(r){return this.parse(r)}strictImplement(r){return this.parse(r)}static create(r,o,u){return new ZodFunction({args:r||ZodTuple.create([]).rest(ZodUnknown.create()),returns:o||ZodUnknown.create(),typeName:ZodFirstPartyTypeKind.ZodFunction,...processCreateParams(u)})}}class ZodLazy extends ZodType{get schema(){return this._def.getter()}_parse(r){const{ctx:o}=this._processInputParams(r);return this._def.getter()._parse({data:o.data,path:o.path,parent:o})}}ZodLazy.create=(n,r)=>new ZodLazy({getter:n,typeName:ZodFirstPartyTypeKind.ZodLazy,...processCreateParams(r)});class ZodLiteral extends ZodType{_parse(r){if(r.data!==this._def.value){const o=this._getOrReturnCtx(r);return addIssueToContext(o,{received:o.data,code:ZodIssueCode.invalid_literal,expected:this._def.value}),INVALID}return{status:"valid",value:r.data}}get value(){return this._def.value}}ZodLiteral.create=(n,r)=>new ZodLiteral({value:n,typeName:ZodFirstPartyTypeKind.ZodLiteral,...processCreateParams(r)});function createZodEnum(n,r){return new ZodEnum({values:n,typeName:ZodFirstPartyTypeKind.ZodEnum,...processCreateParams(r)})}class ZodEnum extends ZodType{constructor(){super(...arguments),_ZodEnum_cache.set(this,void 0)}_parse(r){if(typeof r.data!="string"){const o=this._getOrReturnCtx(r),u=this._def.values;return addIssueToContext(o,{expected:util$5.joinValues(u),received:o.parsedType,code:ZodIssueCode.invalid_type}),INVALID}if(__classPrivateFieldGet(this,_ZodEnum_cache)||__classPrivateFieldSet(this,_ZodEnum_cache,new Set(this._def.values)),!__classPrivateFieldGet(this,_ZodEnum_cache).has(r.data)){const o=this._getOrReturnCtx(r),u=this._def.values;return addIssueToContext(o,{received:o.data,code:ZodIssueCode.invalid_enum_value,options:u}),INVALID}return OK(r.data)}get options(){return this._def.values}get enum(){const r={};for(const o of this._def.values)r[o]=o;return r}get Values(){const r={};for(const o of this._def.values)r[o]=o;return r}get Enum(){const r={};for(const o of this._def.values)r[o]=o;return r}extract(r,o=this._def){return ZodEnum.create(r,{...this._def,...o})}exclude(r,o=this._def){return ZodEnum.create(this.options.filter(u=>!r.includes(u)),{...this._def,...o})}}_ZodEnum_cache=new WeakMap,ZodEnum.create=createZodEnum;class ZodNativeEnum extends ZodType{constructor(){super(...arguments),_ZodNativeEnum_cache.set(this,void 0)}_parse(r){const o=util$5.getValidEnumValues(this._def.values),u=this._getOrReturnCtx(r);if(u.parsedType!==ZodParsedType.string&&u.parsedType!==ZodParsedType.number){const a=util$5.objectValues(o);return addIssueToContext(u,{expected:util$5.joinValues(a),received:u.parsedType,code:ZodIssueCode.invalid_type}),INVALID}if(__classPrivateFieldGet(this,_ZodNativeEnum_cache)||__classPrivateFieldSet(this,_ZodNativeEnum_cache,new Set(util$5.getValidEnumValues(this._def.values))),!__classPrivateFieldGet(this,_ZodNativeEnum_cache).has(r.data)){const a=util$5.objectValues(o);return addIssueToContext(u,{received:u.data,code:ZodIssueCode.invalid_enum_value,options:a}),INVALID}return OK(r.data)}get enum(){return this._def.values}}_ZodNativeEnum_cache=new WeakMap,ZodNativeEnum.create=(n,r)=>new ZodNativeEnum({values:n,typeName:ZodFirstPartyTypeKind.ZodNativeEnum,...processCreateParams(r)});class ZodPromise extends ZodType{unwrap(){return this._def.type}_parse(r){const{ctx:o}=this._processInputParams(r);if(o.parsedType!==ZodParsedType.promise&&o.common.async===!1)return addIssueToContext(o,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.promise,received:o.parsedType}),INVALID;const u=o.parsedType===ZodParsedType.promise?o.data:Promise.resolve(o.data);return OK(u.then(a=>this._def.type.parseAsync(a,{path:o.path,errorMap:o.common.contextualErrorMap})))}}ZodPromise.create=(n,r)=>new ZodPromise({type:n,typeName:ZodFirstPartyTypeKind.ZodPromise,...processCreateParams(r)});class ZodEffects extends ZodType{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===ZodFirstPartyTypeKind.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(r){const{status:o,ctx:u}=this._processInputParams(r),a=this._def.effect||null,s={addIssue:t=>{addIssueToContext(u,t),t.fatal?o.abort():o.dirty()},get path(){return u.path}};if(s.addIssue=s.addIssue.bind(s),a.type==="preprocess"){const t=a.transform(u.data,s);if(u.common.async)return Promise.resolve(t).then(async e=>{if(o.value==="aborted")return INVALID;const l=await this._def.schema._parseAsync({data:e,path:u.path,parent:u});return l.status==="aborted"?INVALID:l.status==="dirty"||o.value==="dirty"?DIRTY(l.value):l});{if(o.value==="aborted")return INVALID;const e=this._def.schema._parseSync({data:t,path:u.path,parent:u});return e.status==="aborted"?INVALID:e.status==="dirty"||o.value==="dirty"?DIRTY(e.value):e}}if(a.type==="refinement"){const t=e=>{const l=a.refinement(e,s);if(u.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return e};if(u.common.async===!1){const e=this._def.schema._parseSync({data:u.data,path:u.path,parent:u});return e.status==="aborted"?INVALID:(e.status==="dirty"&&o.dirty(),t(e.value),{status:o.value,value:e.value})}else return this._def.schema._parseAsync({data:u.data,path:u.path,parent:u}).then(e=>e.status==="aborted"?INVALID:(e.status==="dirty"&&o.dirty(),t(e.value).then(()=>({status:o.value,value:e.value}))))}if(a.type==="transform")if(u.common.async===!1){const t=this._def.schema._parseSync({data:u.data,path:u.path,parent:u});if(!isValid(t))return t;const e=a.transform(t.value,s);if(e instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:o.value,value:e}}else return this._def.schema._parseAsync({data:u.data,path:u.path,parent:u}).then(t=>isValid(t)?Promise.resolve(a.transform(t.value,s)).then(e=>({status:o.value,value:e})):t);util$5.assertNever(a)}}ZodEffects.create=(n,r,o)=>new ZodEffects({schema:n,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:r,...processCreateParams(o)}),ZodEffects.createWithPreprocess=(n,r,o)=>new ZodEffects({schema:r,effect:{type:"preprocess",transform:n},typeName:ZodFirstPartyTypeKind.ZodEffects,...processCreateParams(o)});class ZodOptional extends ZodType{_parse(r){return this._getType(r)===ZodParsedType.undefined?OK(void 0):this._def.innerType._parse(r)}unwrap(){return this._def.innerType}}ZodOptional.create=(n,r)=>new ZodOptional({innerType:n,typeName:ZodFirstPartyTypeKind.ZodOptional,...processCreateParams(r)});class ZodNullable extends ZodType{_parse(r){return this._getType(r)===ZodParsedType.null?OK(null):this._def.innerType._parse(r)}unwrap(){return this._def.innerType}}ZodNullable.create=(n,r)=>new ZodNullable({innerType:n,typeName:ZodFirstPartyTypeKind.ZodNullable,...processCreateParams(r)});class ZodDefault extends ZodType{_parse(r){const{ctx:o}=this._processInputParams(r);let u=o.data;return o.parsedType===ZodParsedType.undefined&&(u=this._def.defaultValue()),this._def.innerType._parse({data:u,path:o.path,parent:o})}removeDefault(){return this._def.innerType}}ZodDefault.create=(n,r)=>new ZodDefault({innerType:n,typeName:ZodFirstPartyTypeKind.ZodDefault,defaultValue:typeof r.default=="function"?r.default:()=>r.default,...processCreateParams(r)});class ZodCatch extends ZodType{_parse(r){const{ctx:o}=this._processInputParams(r),u={...o,common:{...o.common,issues:[]}},a=this._def.innerType._parse({data:u.data,path:u.path,parent:{...u}});return isAsync(a)?a.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new ZodError(u.common.issues)},input:u.data})})):{status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new ZodError(u.common.issues)},input:u.data})}}removeCatch(){return this._def.innerType}}ZodCatch.create=(n,r)=>new ZodCatch({innerType:n,typeName:ZodFirstPartyTypeKind.ZodCatch,catchValue:typeof r.catch=="function"?r.catch:()=>r.catch,...processCreateParams(r)});class ZodNaN extends ZodType{_parse(r){if(this._getType(r)!==ZodParsedType.nan){const u=this._getOrReturnCtx(r);return addIssueToContext(u,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.nan,received:u.parsedType}),INVALID}return{status:"valid",value:r.data}}}ZodNaN.create=n=>new ZodNaN({typeName:ZodFirstPartyTypeKind.ZodNaN,...processCreateParams(n)});const BRAND=Symbol("zod_brand");class ZodBranded extends ZodType{_parse(r){const{ctx:o}=this._processInputParams(r),u=o.data;return this._def.type._parse({data:u,path:o.path,parent:o})}unwrap(){return this._def.type}}class ZodPipeline extends ZodType{_parse(r){const{status:o,ctx:u}=this._processInputParams(r);if(u.common.async)return(async()=>{const s=await this._def.in._parseAsync({data:u.data,path:u.path,parent:u});return s.status==="aborted"?INVALID:s.status==="dirty"?(o.dirty(),DIRTY(s.value)):this._def.out._parseAsync({data:s.value,path:u.path,parent:u})})();{const a=this._def.in._parseSync({data:u.data,path:u.path,parent:u});return a.status==="aborted"?INVALID:a.status==="dirty"?(o.dirty(),{status:"dirty",value:a.value}):this._def.out._parseSync({data:a.value,path:u.path,parent:u})}}static create(r,o){return new ZodPipeline({in:r,out:o,typeName:ZodFirstPartyTypeKind.ZodPipeline})}}class ZodReadonly extends ZodType{_parse(r){const o=this._def.innerType._parse(r),u=a=>(isValid(a)&&(a.value=Object.freeze(a.value)),a);return isAsync(o)?o.then(a=>u(a)):u(o)}unwrap(){return this._def.innerType}}ZodReadonly.create=(n,r)=>new ZodReadonly({innerType:n,typeName:ZodFirstPartyTypeKind.ZodReadonly,...processCreateParams(r)});function custom(n,r={},o){return n?ZodAny.create().superRefine((u,a)=>{var s,t;if(!n(u)){const e=typeof r=="function"?r(u):typeof r=="string"?{message:r}:r,l=(t=(s=e.fatal)!==null&&s!==void 0?s:o)!==null&&t!==void 0?t:!0,c=typeof e=="string"?{message:e}:e;a.addIssue({code:"custom",...c,fatal:l})}}):ZodAny.create()}const late={object:ZodObject.lazycreate};var ZodFirstPartyTypeKind;(function(n){n.ZodString="ZodString",n.ZodNumber="ZodNumber",n.ZodNaN="ZodNaN",n.ZodBigInt="ZodBigInt",n.ZodBoolean="ZodBoolean",n.ZodDate="ZodDate",n.ZodSymbol="ZodSymbol",n.ZodUndefined="ZodUndefined",n.ZodNull="ZodNull",n.ZodAny="ZodAny",n.ZodUnknown="ZodUnknown",n.ZodNever="ZodNever",n.ZodVoid="ZodVoid",n.ZodArray="ZodArray",n.ZodObject="ZodObject",n.ZodUnion="ZodUnion",n.ZodDiscriminatedUnion="ZodDiscriminatedUnion",n.ZodIntersection="ZodIntersection",n.ZodTuple="ZodTuple",n.ZodRecord="ZodRecord",n.ZodMap="ZodMap",n.ZodSet="ZodSet",n.ZodFunction="ZodFunction",n.ZodLazy="ZodLazy",n.ZodLiteral="ZodLiteral",n.ZodEnum="ZodEnum",n.ZodEffects="ZodEffects",n.ZodNativeEnum="ZodNativeEnum",n.ZodOptional="ZodOptional",n.ZodNullable="ZodNullable",n.ZodDefault="ZodDefault",n.ZodCatch="ZodCatch",n.ZodPromise="ZodPromise",n.ZodBranded="ZodBranded",n.ZodPipeline="ZodPipeline",n.ZodReadonly="ZodReadonly"})(ZodFirstPartyTypeKind||(ZodFirstPartyTypeKind={}));const instanceOfType=(n,r={message:`Input not instance of ${n.name}`})=>custom(o=>o instanceof n,r),stringType=ZodString.create,numberType=ZodNumber.create,nanType=ZodNaN.create,bigIntType=ZodBigInt.create,booleanType=ZodBoolean.create,dateType=ZodDate.create,symbolType=ZodSymbol.create,undefinedType=ZodUndefined.create,nullType=ZodNull.create,anyType=ZodAny.create,unknownType=ZodUnknown.create,neverType=ZodNever.create,voidType=ZodVoid.create,arrayType=ZodArray.create,objectType=ZodObject.create,strictObjectType=ZodObject.strictCreate,unionType=ZodUnion.create,discriminatedUnionType=ZodDiscriminatedUnion.create,intersectionType=ZodIntersection.create,tupleType=ZodTuple.create,recordType=ZodRecord.create,mapType=ZodMap.create,setType=ZodSet.create,functionType=ZodFunction.create,lazyType=ZodLazy.create,literalType=ZodLiteral.create,enumType=ZodEnum.create,nativeEnumType=ZodNativeEnum.create,promiseType=ZodPromise.create,effectsType=ZodEffects.create,optionalType=ZodOptional.create,nullableType=ZodNullable.create,preprocessType=ZodEffects.createWithPreprocess,pipelineType=ZodPipeline.create,ostring=()=>stringType().optional(),onumber=()=>numberType().optional(),oboolean=()=>booleanType().optional(),coerce={string:n=>ZodString.create({...n,coerce:!0}),number:n=>ZodNumber.create({...n,coerce:!0}),boolean:n=>ZodBoolean.create({...n,coerce:!0}),bigint:n=>ZodBigInt.create({...n,coerce:!0}),date:n=>ZodDate.create({...n,coerce:!0})},NEVER=INVALID;var z=Object.freeze({__proto__:null,defaultErrorMap:errorMap,setErrorMap,getErrorMap,makeIssue,EMPTY_PATH,addIssueToContext,ParseStatus,INVALID,DIRTY,OK,isAborted,isDirty,isValid,isAsync,get util(){return util$5},get objectUtil(){return objectUtil},ZodParsedType,getParsedType,ZodType,datetimeRegex,ZodString,ZodNumber,ZodBigInt,ZodBoolean,ZodDate,ZodSymbol,ZodUndefined,ZodNull,ZodAny,ZodUnknown,ZodNever,ZodVoid,ZodArray,ZodObject,ZodUnion,ZodDiscriminatedUnion,ZodIntersection,ZodTuple,ZodRecord,ZodMap,ZodSet,ZodFunction,ZodLazy,ZodLiteral,ZodEnum,ZodNativeEnum,ZodPromise,ZodEffects,ZodTransformer:ZodEffects,ZodOptional,ZodNullable,ZodDefault,ZodCatch,ZodNaN,BRAND,ZodBranded,ZodPipeline,ZodReadonly,custom,Schema:ZodType,ZodSchema:ZodType,late,get ZodFirstPartyTypeKind(){return ZodFirstPartyTypeKind},coerce,any:anyType,array:arrayType,bigint:bigIntType,boolean:booleanType,date:dateType,discriminatedUnion:discriminatedUnionType,effect:effectsType,enum:enumType,function:functionType,instanceof:instanceOfType,intersection:intersectionType,lazy:lazyType,literal:literalType,map:mapType,nan:nanType,nativeEnum:nativeEnumType,never:neverType,null:nullType,nullable:nullableType,number:numberType,object:objectType,oboolean,onumber,optional:optionalType,ostring,pipeline:pipelineType,preprocess:preprocessType,promise:promiseType,record:recordType,set:setType,strictObject:strictObjectType,string:stringType,symbol:symbolType,transformer:effectsType,tuple:tupleType,undefined:undefinedType,union:unionType,unknown:unknownType,void:voidType,NEVER,ZodIssueCode,quotelessJson,ZodError});const RequiredString=z.string().trim().min(1,{message:"Please fill in this field"}),OptionalString=z.string().trim().optional(),nullOrUndefOr$1=n=>z.nullable(n.optional());var FieldName=(n=>(n.FIRST_NAME="firstName",n.LAST_NAME="lastName",n.PHONE="phone",n.EMAIL="email",n.LINE1="line1",n.LINE2="line2",n.LINE3="line3",n.CITY="city",n.STATE="state",n.COUNTRY="country",n.ZIP_CODE="zipCode",n.SHIPPING_LINE1="shippingAddressLine1",n.SHIPPING_LINE2="shippingAddressLine2",n.SHIPPING_LINE3="shippingAddressLine3",n.SHIPPING_CITY="shippingAddressCity",n.SHIPPING_STATE="shippingAddressState",n.SHIPPING_COUNTRY="shippingAddressCountry",n.SHIPPING_ZIP_CODE="shippingAddressZipCode",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({email:RequiredString.email({message:"Please enter a valid email address"}),firstName:RequiredString,lastName:RequiredString,promotionCode:OptionalString,line1:OptionalString,line2:OptionalString,line3:OptionalString,city:OptionalString,state:OptionalString,country:RequiredString,zipCode:OptionalString,shippingAddressLine1:OptionalString,shippingAddressLine2:OptionalString,shippingAddressLine3:OptionalString,shippingAddressCity:OptionalString,shippingAddressState:OptionalString,shippingAddressCountry:OptionalString,shippingAddressZipCode:OptionalString}),PRFormFields=z.object({email:RequiredString.email({message:"Please enter a valid email address"}),firstName:OptionalString,lastName:OptionalString,promotionCode:OptionalString,line1:OptionalString,line2:OptionalString,line3:OptionalString,city:OptionalString,state:OptionalString,country:RequiredString,zipCode:OptionalString,shippingAddressLine1:OptionalString,shippingAddressLine2:OptionalString,shippingAddressLine3:OptionalString,shippingAddressCity:OptionalString,shippingAddressState:OptionalString,shippingAddressCountry:OptionalString,shippingAddressZipCode:OptionalString});z.object({line1:RequiredString,city:RequiredString,state:RequiredString,country:RequiredString}),z.object({shippingAddressCountry:RequiredString,shippingAddressZipCode:RequiredString}),z.object({shippingAddressLine1:RequiredString,shippingAddressCity:RequiredString,shippingAddressState:RequiredString,shippingAddressCountry:RequiredString,shippingAddressZipCode:RequiredString});const 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)),post_checkout_redirect_to:nullOrUndefOr$1(z.string()),checkout_success_response:nullOrUndefOr$1(CheckoutSuccessResponse)}),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()),checkout_settings:z.record(z.string(),z.any()),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),return_url:nullOrUndefOr(z.string()),success_url:nullOrUndefOr(z.string()),final_feature_rollout_settings:nullOrUndefOr(z.record(z.string(),z.any()))}),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()});const CompleteAddress=z.object({line1:z.string().optional(),line2:z.string().optional(),line3:z.string().optional(),city:z.string().optional(),state:z.string().optional(),country:z.string(),zip_code:z.string().optional()});z.object({secure_token:z.string(),payment_input:z.any(),customer_email:z.string(),customer_last_name:z.string().optional(),customer_first_name:z.string().optional(),customer_address:CompleteAddress,customer_shipping_address:CompleteAddress.optional(),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$1=z.object({type:z.string(),loc:z.array(z.string()),msg:z.string(),url:z.string()});z.array(PydanticValidationError$1);const NewCustomerFields=z.object({new_customer_email:z.string().optional(),new_customer_last_name:z.string().optional(),new_customer_first_name:z.string().optional(),new_customer_address:CompleteAddress,new_customer_shipping_address:CompleteAddress.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()),use_unified_cc_flow:nullOrUndefOr(z.boolean()),pay_first_flow_cart_info:CartInfo.optional(),payment_route_id:nullOrUndefOr(z.string()),customer_language:z.string().optional(),existing_cc_pm_id:nullOrUndefOr(z.string())});const StartPaymentFlowForCCResponse=z.object({required_user_actions:z.array(z.record(z.string(),z.any())),cc_pm_id:z.string(),checkout_success_response:nullOrUndefOr(CheckoutSuccessResponse),checkout_attempt_id:nullOrUndefOr(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({}),UserActionFEPayload=z.object({_unified_cc_action_name:z.string(),_unified_cc_pccs_id:z.string()}).catchall(z.any()),PydanticValidationError=z.object({type:z.string(),loc:z.array(z.string()),msg:z.string(),url:z.string()}),PydanticValidationErrorResponse=z.array(PydanticValidationError),ZodFieldError=z.object({code:z.string(),message:z.string(),path:z.array(z.string())}),ZodFieldErrors=z.array(ZodFieldError),MAP_TO_HUMAN_FRIENDLY_LOWERCASE={"failed to fetch":"Connection error: please double check if you are connected to the internet, then try again"},getHumanFriendlyMessage=n=>{const r=n.toLowerCase().trim();return MAP_TO_HUMAN_FRIENDLY_LOWERCASE[r]??n},isStringifiedJsonObject=n=>{try{return typeof JSON.parse(n)=="object"}catch{return!1}},createMessageFromPydanticValidationError=n=>n.length===1?getHumanFriendlyMessage(n[0].msg):`Please fix the following errors:
2
2
  ${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(`
@@ -71,9 +71,9 @@ ${n.message}`),n.message)}else return getHumanFriendlyMessage(n.message);if(type
71
71
  </div>
72
72
  </div>
73
73
  `;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__$n,err__:err__$m}=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__$m(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__$n(`Airwallex 3DS verification success. [Intent ID: ${r}]`),r}catch(r){const o="Error verifying Airwallex 3DS verification result.";throw err__$m(o,`Resulting URL: ${n}.
74
- 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__$m(l),new Error(e)}return{existing_cc:{initial_intent_id:a,consent_id:o["op-airwallex-consent-id"]}}},ApplePayCpm$2=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$2=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()})}),PaymentProcessor=z.enum(["stripe","airwallex","authorize_net","adyen"]);PaymentProcessor.Enum.stripe;const loadScript=({scriptId:n,src:r,checkLoadedFn:o})=>{const u=new AbortController;return new Promise((a,s)=>{let t=document.createElement("script");t.src=r,t.id=n,t.async=!0;const e=document.getElementById(n);o()?a():e?t=e:document.body.appendChild(t),t.addEventListener("load",()=>{u.abort(),a()},{signal:u.signal}),t.addEventListener("error",()=>{u.abort(),s("Failed to load the script")},{signal:u.signal})})},loadApplePayScript=()=>loadScript({scriptId:"__op_internal_apple_pay_sdk",src:"https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js",checkLoadedFn:()=>!!window.ApplePaySession||!!window.ApplePaySDK}),fillEmptyFormInputsWithApplePay=(n,r)=>{const o=r.token.paymentMethod.billingContact,u=r.billingContact,a=r.shippingContact,s={...n};if(o||u||a){s[FieldName.EMAIL]=s[FieldName.EMAIL]||(o==null?void 0:o.emailAddress)||(u==null?void 0:u.emailAddress)||(a==null?void 0:a.emailAddress)||"op_unfilled@email.com",s[FieldName.COUNTRY]=s[FieldName.COUNTRY]||(o==null?void 0:o.countryCode)||(u==null?void 0:u.countryCode)||(a==null?void 0:a.countryCode)||"US",s[FieldName.ZIP_CODE]=s[FieldName.ZIP_CODE]||(o==null?void 0:o.postalCode)||(u==null?void 0:u.postalCode)||(a==null?void 0:a.postalCode)||"00000";const t=s[FieldName.FIRST_NAME]||(o==null?void 0:o.givenName)||(u==null?void 0:u.givenName)||(a==null?void 0:a.givenName)||"",e=s[FieldName.LAST_NAME]||(o==null?void 0:o.familyName)||(u==null?void 0:u.familyName)||(a==null?void 0:a.familyName)||"";t||e?(s[FieldName.FIRST_NAME]=t,s[FieldName.LAST_NAME]=e):(s[FieldName.FIRST_NAME]="_OP_UNKNOWN",s[FieldName.LAST_NAME]="")}return s};z.object({data:z.object({messageHeaders:z.record(z.string(),z.any()),errors:z.array(z.any()),messageType:z.string(),messageBody:z.record(z.string(),z.any())}),origin:z.literal("https://applepay.cdn-apple.com")});const createRecurringPaymentRequest=({total:n,prefill:r})=>{var u;if(r.mode==="setup")return{paymentDescription:"Setup recurring payment",regularBilling:{amount:n.amount,label:"Setup recurring payment",paymentTiming:"recurring",type:"final"},managementURL:new URL(`/pay/${r.token}`,FRAME_BASE_URL).toString()};const o=(u=r.line_items)==null?void 0:u[0];if(o)return{paymentDescription:(o==null?void 0:o.description)??"",regularBilling:{amount:n.amount,label:(o==null?void 0:o.description)??"",recurringPaymentIntervalUnit:o==null?void 0:o.billing_interval,recurringPaymentIntervalCount:(o==null?void 0:o.billing_interval_count)??void 0,paymentTiming:"recurring",type:"final"},managementURL:`https://cde.getopenpay.com/pay/${r.token}`}},createApplePayTotal=({overridePaymentRequest:n,initialPreview:r,prefill:o,defaultLabel:u="Total"})=>{var e,l;const a=(((e=n==null?void 0:n.amount)==null?void 0:e.currency)??(o==null?void 0:o.currency)??r.currency).toUpperCase(),t=((((l=n==null?void 0:n.amount)==null?void 0:l.amountAtom)??(r==null?void 0:r.amountAtom)??0)/100).toFixed(2);return{currencyCode:a,total:{label:(n==null?void 0:n.label)??u??"Total",type:n!=null&&n.pending?"pending":"final",amount:t}}},getApplePayPaymentRequest=({overridePaymentRequest:n,initialPreview:r,prefill:o,defaultLabel:u})=>{const{currencyCode:a,total:s}=createApplePayTotal({overridePaymentRequest:n,initialPreview:r,prefill:o,defaultLabel:u});let t={countryCode:"US",currencyCode:a,requiredBillingContactFields:["email","postalAddress","name"],requiredShippingContactFields:["email"],supportedNetworks:["visa","masterCard","amex","discover"],merchantCapabilities:["supports3DS","supportsCredit","supportsDebit","supportsEMV"],total:s,recurringPaymentRequest:createRecurringPaymentRequest({total:s,prefill:o})};return n!=null&&n.applePayPaymentRequest&&(typeof n.applePayPaymentRequest=="function"?t={...t,...n.applePayPaymentRequest(t)}:t={...t,...n.applePayPaymentRequest}),t},generateAnonymousValues=()=>{const n=v4().split("-")[0];return{firstName:`xx_${n}`,lastName:`xx_${n}`,email:`xx_${n}@email.com`,zipCode:`xx_${n}`,country:"US"}},generateBillingAddressFromFields=n=>({line1:n[FieldName.LINE1],line2:n[FieldName.LINE2],line3:n[FieldName.LINE3],city:n[FieldName.CITY],state:n[FieldName.STATE],country:n[FieldName.COUNTRY],zip_code:n[FieldName.ZIP_CODE]}),generateShippingAddressFromFields=(n,r)=>{if(r.require_full_shipping_address)return{line1:n[FieldName.SHIPPING_LINE1],line2:n[FieldName.SHIPPING_LINE2],line3:n[FieldName.SHIPPING_LINE3],city:n[FieldName.SHIPPING_CITY],state:n[FieldName.SHIPPING_STATE],country:n[FieldName.SHIPPING_COUNTRY],zip_code:n[FieldName.SHIPPING_ZIP_CODE]}},{log__:log__$m,err__:err__$l}=createOjsFlowLoggers("common"),parseConfirmPaymentFlowResponse=n=>{if(n.payment_methods.length!==1)throw new Error(`Expected exactly one payment method, got ${n.payment_methods.length}`);return{payment_method_id:n.payment_methods[0].id}},findCpmMatchingType=(n,r)=>{const o=n.find(u=>r.safeParse(u).success);if(!o)throw err__$l("No CPMs found for model. All models:",n),new Error("No CPMs found for model");return r.parse(o)},createCustomerFieldsFromForm=(n,r)=>({new_customer_email:n.email,new_customer_last_name:n.lastName,new_customer_first_name:n.firstName,new_customer_address:generateBillingAddressFromFields(n),new_customer_shipping_address:generateShippingAddressFromFields(n,r)}),performSimpleCheckoutOrSetup=async n=>{const{log__:r}=createOjsFlowLoggers(n.logPrefix),o=await getPrefill(n.anyCdeConnection),u=parseConfirmPaymentFlowResponse(n.confirmResult);if(o.mode==="setup")return r("Setting up payment method..."),{mode:"setup",result:await finalizeSetupPaymentMethod(n.anyCdeConnection,{secure_token:o.token,pm_id:u.payment_method_id})};{if(n.usePayFirstFlow){if(r("Using pay-first flow..."),!n.confirmResult.pay_first_success_response)throw err__$l("Checkout failed, no pay-first success response:",n.confirmResult),new Error("Checkout failed, please try again with another payment method.");return{mode:"checkout",result:n.confirmResult.pay_first_success_response}}r("Doing checkout...");const a={secure_token:o.token,payment_input:{provider_type:n.checkoutPaymentMethod.provider},customer_email:n.requiredFormFields[FieldName.EMAIL],customer_address:generateBillingAddressFromFields(n.requiredFormFields),customer_shipping_address:generateShippingAddressFromFields(n.requiredFormFields,o.checkout_settings),promotion_code:n.requiredFormFields[FieldName.PROMOTION_CODE],line_items:o.line_items,total_amount_atom:o.amount_total_atom,cancel_at_end:!1,use_confirmed_pm_id:u.payment_method_id,checkout_payment_method:n.checkoutPaymentMethod};return{mode:"checkout",result:await performCheckout(n.anyCdeConnection,a)}}},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__$l,err__:err__$k}=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__$k(`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__$l("Waiting for Adyen SDK to load...");for(let n=0;n<10;n++)isAdyenAvailable()||await sleep(500);if(!isAdyenAvailable())throw err__$k("Adyen SDK not loaded properly"),new Error(friendlyErr);return log__$l("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__$l(`Running Adyen 3DS flow for action type: ${e.type}`),new Promise(l=>{const c=()=>{log__$l("Cleaning up Adyen 3DS flow"),t.removeEventListener("click",p),s.remove()},_=f=>{err__$k("Authentication failed. Result:",f),l({status:ThreeDSStatus.FAILURE,cleanup:c})},d=f=>{err__$k("Adyen error:",f),l({status:ThreeDSStatus.FAILURE,cleanup:c})},p=()=>{l({status:ThreeDSStatus.CANCELLED,cleanup:c})};t.addEventListener("click",p);const E=(f,m,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:E,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__$l(`Resolved locale: ${u.data}`),u.data):(err__$k(`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__$l("3DS verification succeeded"),{existing_cc:{additional_details:l.additionalDetails.data}}}else assertNever(l.status)},ApplePayCpm$1=z.object({provider:z.literal("apple_pay"),processor_name:z.literal("adyen"),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("adyen"),metadata:z.object({processor_account_id:z.string(),processor_account_name:z.string(),google_pay_merchant_id:z.string().nullish()})}),{log__:log__$k,err__:err__$j}=createOjsFlowLoggers("common-cc"),createDynamicValidationSchema=({require_zip_code:n,require_full_billing_address:r,require_full_shipping_address:o,payment_method:u})=>{const a={};return u==="ach"&&(a[FieldName.FIRST_NAME]=z.string().min(2,{message:"Minimum length is 2"}),a[FieldName.LAST_NAME]=z.string().min(2,{message:"Minimum length is 2"})),n&&(a[FieldName.ZIP_CODE]=RequiredString),r&&(a[FieldName.LINE1]=RequiredString,a[FieldName.CITY]=RequiredString,a[FieldName.STATE]=RequiredString),o&&(a[FieldName.SHIPPING_LINE1]=RequiredString,a[FieldName.SHIPPING_CITY]=RequiredString,a[FieldName.SHIPPING_STATE]=RequiredString,a[FieldName.SHIPPING_COUNTRY]=RequiredString,a[FieldName.SHIPPING_ZIP_CODE]=RequiredString),Object.keys(a).length===0?RequiredFormFields:RequiredFormFields.extend(a)},validateNonCdeFormFields=(n,r,o={})=>{if(o){log__$k(`Received default field values: ${JSON.stringify(o)}`);const s=Object.keys(o);for(let t=0;t<s.length;t++){const e=s[t],l=o[e];n[e]||(n[e]=l)}}n[FieldName.IS_SHIPPING_SAME_AS_BILLING]=!!n[FieldName.IS_SHIPPING_SAME_AS_BILLING],n[FieldName.IS_SHIPPING_SAME_AS_BILLING]&&(n[FieldName.SHIPPING_LINE1]=n[FieldName.LINE1],n[FieldName.SHIPPING_LINE2]=n[FieldName.LINE2],n[FieldName.SHIPPING_LINE3]=n[FieldName.LINE3],n[FieldName.SHIPPING_CITY]=n[FieldName.CITY],n[FieldName.SHIPPING_STATE]=n[FieldName.STATE],n[FieldName.SHIPPING_COUNTRY]=n[FieldName.COUNTRY],n[FieldName.SHIPPING_ZIP_CODE]=n[FieldName.ZIP_CODE]);const a=createDynamicValidationSchema(o).safeParse(n);if(!a.success){const s=a.error.format(),t=extractIssuesPerField(s),e=Object.keys(t);for(let l=0;l<e.length;l++){const c=e[l],_=t[c];r(c,_,c)}throw err__$j("Got validation errors in non-CDE form fields",t),new Error("Almost there! Just a few things highlighted above to fix before you can submit.")}return a.data},{log__:log__$j,err__:err__$i}=createOjsFlowLoggers("common-cc"),validateNonCdeFormFieldsForCC=validateNonCdeFormFields,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__$i(`Unknown field name in onValidationError: ${u.elementType}. Error object:`,u);else{const s=a.data;r(s,u.errors)}}),log__$j(`Error tokenizing card: got validation errors: ${JSON.stringify(o.errors)}`),new Error("Got validation errors while tokenizing card")},{log__:log__$i}=createOjsFlowLoggers("awx-apple-pay");async function handleValidateMerchant$2(n,r){try{const u=(await preparePaymentFlow(r.connection,{checkout_payment_method:r.checkoutPaymentMethod,processor_specific_metadata:{apple_pay_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$2(n,r){var o,u;try{const a=n.payment,s=fillEmptyFormInputsWithApplePay(r.nonCdeFormInputs,a),t=validateNonCdeFormFieldsForCC(s,r.formCallbacks.get.onValidationError,r.defaultFieldValues);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:generateBillingAddressFromFields(t),new_customer_shipping_address:generateShippingAddressFromFields(t,r.prefill.checkout_settings)});const e=await confirmPaymentFlow(r.connection,{secure_token:r.prefill.token,processor_specific_metadata:{payment_provider:r.checkoutPaymentMethod.provider,browser_info:getFraudMetadata(),mobile_wallet_payment_data:{encrypted_payment_token:JSON.stringify(a.token)}}});if(log__$i("[1st] Confirm payment flow response",e),!((u=(o=e.payment_methods)==null?void 0:o[0])==null?void 0:u.id))throw new Error("No PM ID found");const c={status:ApplePaySession.STATUS_SUCCESS};return r.session.completePayment(c),performSimpleCheckoutOrSetup({logPrefix:"adyen-applepay",anyCdeConnection:r.connection,checkoutPaymentMethod:r.checkoutPaymentMethod,requiredFormFields:t,confirmResult:e,usePayFirstFlow:!1})}catch(a){const s={status:ApplePaySession.STATUS_FAILURE};throw r.session.completePayment(s),a}}const{log__:log__$h,err__:err__$h}=createOjsFlowLoggers("adyen-apple-pay"),initAdyenApplePayFlow=addErrorCatcherForInit(async({context:n,formCallbacks:r})=>{const o={processor:PaymentProcessor.Enum.adyen,isAvailable:!1,isLoading:!1,startFlow:async()=>{}},u=findCpmMatchingType(n.checkoutPaymentMethods,ApplePayCpm$1);if(!u)return o;if(log__$h("Loading Apple Pay script"),await loadApplePayScript(),!window.ApplePaySession||!ApplePaySession.canMakePayments())return log__$h("Apple Pay is not available on this device/browser"),o;if(log__$h("Apple Pay Loaded"),!await ApplePaySession.canMakePayments())return log__$h("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.adyenApplePay.run({context:n,checkoutPaymentMethod:u,nonCdeFormInputs:createInputsDictFromForm(n.formDiv),formCallbacks:r,customParams:{...d,initialPreview:c},initResult:void 0})}catch(p){err__$h("Apple Pay payment error",p),r.get.onCheckoutError((p==null?void 0:p.message)??"Unknown error")}};return{processor:PaymentProcessor.Enum.adyen,isAvailable:!0,isLoading:!1,startFlow:_}}),runAdyenApplePayFlow=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}),p=new ApplePaySession(3,d),E={session:p,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((m,g)=>{const O=()=>{log__$h("Payment cancelled by user"),g(new Error("Payment cancelled by user"))};p.onvalidatemerchant=async v=>{try{await handleValidateMerchant$2(v,E)}catch(A){g(A)}},p.onpaymentmethodselected=()=>{const v={newTotal:{...d.total}};p.completePaymentMethodSelection(v)},p.onpaymentauthorized=async v=>{track("apple_pay_payment_authorized");try{const A=await handlePaymentAuthorized$2(v,E);m(A)}catch(A){g(A)}},p.oncancel=O,p.begin()}).catch(m=>{throw err__$h("Apple Pay payment error",m),track("apple_pay_payment_error",{error:m}),m})}),getPaymentDataRequest=({gateway:n,gatewayMerchantId:r,merchantName:o,merchantId:u,initialPreview:a,overridePaymentRequest:s,prefill:t})=>{var d,p;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=(((p=s==null?void 0:s.amount)==null?void 0:p.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,shippingAddressRequired:t.checkout_settings.require_full_shipping_address,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 s,t,e,l;const o={...n},u=(t=(s=r.paymentMethodData)==null?void 0:s.info)==null?void 0:t.billingAddress,a=r.shippingAddress;if(u){const[c,..._]=((l=(e=u.name)==null?void 0:e.trim())==null?void 0:l.split(/\s+/))??[],d=_.join(" ")||void 0;o[FieldName.EMAIL]=o[FieldName.EMAIL]||r.email||"op_unfilled@getopenpay.com",o[FieldName.LINE1]=o[FieldName.LINE1]||u.address1||"",o[FieldName.LINE2]=o[FieldName.LINE2]||u.address2||"",o[FieldName.LINE3]=o[FieldName.LINE3]||u.address3||"",o[FieldName.CITY]=o[FieldName.CITY]||u.locality||"",o[FieldName.STATE]=o[FieldName.STATE]||u.administrativeArea||"",o[FieldName.COUNTRY]=o[FieldName.COUNTRY]||u.countryCode||"US",o[FieldName.ZIP_CODE]=o[FieldName.ZIP_CODE]||u.postalCode||"00000";const p=o[FieldName.FIRST_NAME]||c||"",E=o[FieldName.LAST_NAME]||d||"";p||E?(o[FieldName.FIRST_NAME]=p,o[FieldName.LAST_NAME]=E):(o[FieldName.FIRST_NAME]="_OP_UNKNOWN",o[FieldName.LAST_NAME]="")}return console.log("__START__"),console.log(a),console.log("__STOPP__"),a&&(o[FieldName.SHIPPING_LINE1]=o[FieldName.SHIPPING_LINE1]||a.address1||"",o[FieldName.SHIPPING_LINE2]=o[FieldName.SHIPPING_LINE2]||a.address2||"",o[FieldName.SHIPPING_LINE3]=o[FieldName.SHIPPING_LINE3]||a.address3||"",o[FieldName.SHIPPING_CITY]=o[FieldName.SHIPPING_CITY]||a.locality||"",o[FieldName.SHIPPING_ZIP_CODE]=o[FieldName.SHIPPING_ZIP_CODE]||a.postalCode||"00000",o[FieldName.SHIPPING_STATE]=o[FieldName.SHIPPING_STATE]||a.administrativeArea||"",o[FieldName.SHIPPING_COUNTRY]=o[FieldName.SHIPPING_COUNTRY]||a.countryCode||"US"),o},{log__:log__$g,err__:err__$g}=createOjsFlowLoggers("adyen-google-pay"),initAdyenGooglePayFlow=addErrorCatcherForInit(async({context:n,formCallbacks:r})=>{var d,p;const o={processor:PaymentProcessor.Enum.adyen,isAvailable:!1,isLoading:!1,startFlow:async()=>{}},u=findCpmMatchingType(n.checkoutPaymentMethods,GooglePayCpm$1);if(!u)return o;log__$g("Google Pay CPM",u);const a=u.metadata;if(!a.processor_account_id)return err__$g("No gateway merchant ID found in processor account"),o;if(log__$g("Loading Google Pay script"),await loadGooglePayScript(),!((p=(d=window.google)==null?void 0:d.payments)!=null&&p.api))return err__$g("Google Pay SDK not loaded properly"),o;if(await getGooglePayEnvironment(n.baseUrl)==="PRODUCTION"&&!a.google_pay_merchant_id)return err__$g("Google Pay merchant ID is required for production environment"),o;log__$g("Google Pay SDK loaded",window.google.payments);const t=n.anyCdeConnection,e=await getPrefill(t);try{const E=getPaymentDataRequest({prefill:e,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,E),{result:m}=await f.isReadyToPay(E);if(!m)return log__$g("Google Pay is not available for this user"),o}catch(E){return err__$g("Error checking Google Pay availability",E),o}const l=e.mode==="setup",c=await getCheckoutPreviewAmount(t,e.token,l,void 0),_=async E=>{try{OjsFlows.adyenGooglePay.run({context:n,checkoutPaymentMethod:u,nonCdeFormInputs:createInputsDictFromForm(n.formDiv),formCallbacks:r,initResult:void 0,customParams:{...E,initialPreview:c}})}catch(f){err__$g("Google Pay payment error",f),r.get.onCheckoutError((f==null?void 0:f.message)??"Unknown error")}};return{processor:PaymentProcessor.Enum.adyen,isAvailable:!0,isLoading:!1,startFlow:_}}),runAdyenGooglePayFlow=addBasicCheckoutCallbackHandlers(async({context:n,checkoutPaymentMethod:r,nonCdeFormInputs:o,formCallbacks:u,customParams:a})=>{var E,f,m,g,O,v,A,M,b;log__$g("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=n.anyCdeConnection,_=await getPrefill(c),d=getPaymentDataRequest({prefill:_,gateway:"adyen",gatewayMerchantId:l.processor_account_id,merchantName:l.processor_account_name,merchantId:l.google_pay_merchant_id??"",initialPreview:t,overridePaymentRequest:e});track("google_pay_flow_started",{processor_name:s.processor_name,prefill:excludeProps(_,["brand"]),overridePaymentRequest:e});const p=await getGooglePaymentsClient(n.baseUrl,d);try{const I=await p.loadPaymentData(d);log__$g("Google Pay Payment data",I);const U=fillEmptyFormInputsWithGooglePay(o,I),C=validateNonCdeFormFieldsForCC(U,u.get.onValidationError,a==null?void 0:a.defaultFieldValues);if(track("billing_details_received",{...C}),!((f=(E=I.paymentMethodData)==null?void 0:E.tokenizationData)==null?void 0:f.token))throw new Error("No payment token received from Google Pay");const w=await startPaymentFlow(c,{payment_provider:r.provider,checkout_payment_method:r,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:generateBillingAddressFromFields(C),new_customer_shipping_address:generateShippingAddressFromFields(C,_.checkout_settings)}),k=parseAirwallexStartPaymentFlowResponse(w);log__$g("Start flow next actions",k);let L=await confirmPaymentFlow(c,{secure_token:_.token,processor_specific_metadata:{payment_provider:r.provider,browser_info:getFraudMetadata(),mobile_wallet_payment_data:{encrypted_payment_token:(g=(m=I.paymentMethodData)==null?void 0:m.tokenizationData)==null?void 0:g.token}}});log__$g("[1st] Confirm payment flow response",L);let x=(v=(O=L.payment_methods)==null?void 0:O[0])==null?void 0:v.id;const J=(A=L.required_user_actions)==null?void 0:A.find(W=>W.type==="adyen-3ds");if(J&&J.redirect_url){log__$g("Adyen 3DS Required, starting verification...",J);const{status:W}=await start3dsVerification({url:J.redirect_url,baseUrl:n.baseUrl});if(log__$g(`╰ Adyen 3DS verification completed [Status: ${W}]`),W===ThreeDSStatus.CANCELLED)throw new Error("3DS verification cancelled");if(W===ThreeDSStatus.FAILURE)throw new Error("3DS verification failed")}if(J&&!x&&(L=await confirmPaymentFlow(c,{secure_token:_.token,their_pm_id:J.their_pm_id,processor_specific_metadata:{payment_provider:r.provider}}),log__$g("[2nd] Confirm payment flow response after 3DS",L),x=(b=(M=L.payment_methods)==null?void 0:M[0])==null?void 0:b.id),!x)throw new Error("No payment method ID found");return performSimpleCheckoutOrSetup({logPrefix:"adyen-googlepay",anyCdeConnection:c,checkoutPaymentMethod:r,requiredFormFields:C,confirmResult:L,usePayFirstFlow:!1})}catch(I){throw err__$g("Google Pay payment error",I),track("google_pay_payment_error",{error:I}),new Error((I==null?void 0:I.message)??"Unknown error")}}),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__$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 p=(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:generateBillingAddressFromFields(c),new_customer_shipping_address:generateShippingAddressFromFields(c,r.prefill.checkout_settings),customer_language:detectLanguage()})).required_user_actions[0].consent_id;if(!p)throw new Error("No consent ID received from payment flow");let E=await confirmPaymentFlow(r.connection,{secure_token:r.prefill.token,processor_specific_metadata:{payment_provider:r.checkoutPaymentMethod.provider,airwallex_consent_id:p,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",E);let f=(u=(o=E.payment_methods)==null?void 0:o[0])==null?void 0:u.id;const m=(a=E.required_user_actions)==null?void 0:a.find(O=>O.type==="airwallex_payment_consent");if(m!=null&&m.redirect_url&&m.consent_id&&m.their_pm_id&&(E=await handle3DS(m,r),f=(t=(s=E.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:E,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$2);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(p){err__$f("Apple Pay payment error",p),r.get.onCheckoutError((p==null?void 0:p.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$2),{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}),p=new ApplePaySession(3,d),E={session:p,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((m,g)=>{const O=()=>{log__$e("Payment cancelled by user"),g(new Error("Payment cancelled by user"))};p.oncancel=O,p.onvalidatemerchant=async v=>{try{await handleValidateMerchant$1(v,E)}catch(A){g(A)}},p.onpaymentmethodselected=()=>{const v={newTotal:{...d.total}};p.completePaymentMethodSelection(v)},p.onpaymentauthorized=async v=>{track("apple_pay_payment_authorized");try{const A=await handlePaymentAuthorized$1(v,E);m(A)}catch(A){g(A)}},p.begin()}).catch(m=>{throw err__$f("Apple Pay payment error",m),track("apple_pay_payment_error",{error:m}),m})}),{log__:log__$d,err__:err__$e}=createOjsFlowLoggers("awx-google-pay"),initAirwallexGooglePayFlow=addErrorCatcherForInit(async({context:n,formCallbacks:r})=>{var d,p;const o={processor:PaymentProcessor.Enum.airwallex,isAvailable:!1,isLoading:!1,startFlow:async()=>{}},u=findCpmMatchingType(n.checkoutPaymentMethods,GooglePayCpm$2);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(),!((p=(d=window.google)==null?void 0:d.payments)!=null&&p.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);const t=n.anyCdeConnection,e=await getPrefill(t);try{const E=getPaymentDataRequest({prefill:e,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,E),{result:m}=await f.isReadyToPay(E);if(!m)return log__$d("Google Pay is not available for this user"),o}catch(E){return err__$e("Error checking Google Pay availability",E),o}const l=e.mode==="setup",c=await getCheckoutPreviewAmount(t,e.token,l,void 0),_=async E=>{try{OjsFlows.airwallexGooglePay.run({context:n,checkoutPaymentMethod:u,nonCdeFormInputs:createInputsDictFromForm(n.formDiv),formCallbacks:r,initResult:void 0,customParams:{...E,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 E,f,m,g,O,v,A;log__$d("Starting Google Pay flow...");const s=findCpmMatchingType(n.checkoutPaymentMethods,GooglePayCpm$2),{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=n.anyCdeConnection,_=await getPrefill(c),d=getPaymentDataRequest({prefill:_,gateway:"airwallex",gatewayMerchantId:l.processor_account_id,merchantName:l.processor_account_name,merchantId:l.google_pay_merchant_id??"",initialPreview:t,overridePaymentRequest:e});track("google_pay_flow_started",{processor_name:s.processor_name,prefill:excludeProps(_,["brand"]),overridePaymentRequest:e});const p=await getGooglePaymentsClient(n.baseUrl,d);try{const M=await p.loadPaymentData(d);log__$d("Google Pay Payment data",M);const b=fillEmptyFormInputsWithGooglePay(o,M);log__$d("____",b);const I=validateNonCdeFormFieldsForCC(b,u.get.onValidationError,a==null?void 0:a.defaultFieldValues);log__$d("___",I),track("billing_details_received",{...I});const U=(f=(E=M.paymentMethodData)==null?void 0:E.tokenizationData)==null?void 0:f.token;if(!U)throw new Error("No payment token received from Google Pay");const C=await startPaymentFlow(c,{payment_provider:r.provider,checkout_payment_method:r,new_customer_email:I[FieldName.EMAIL],new_customer_first_name:I[FieldName.FIRST_NAME],new_customer_last_name:I[FieldName.LAST_NAME],new_customer_address:generateBillingAddressFromFields(I),new_customer_shipping_address:generateShippingAddressFromFields(I,_.checkout_settings),customer_language:detectLanguage()}),Y=parseAirwallexStartPaymentFlowResponse(C);log__$d("Start flow next actions",Y);let w=await confirmPaymentFlow(c,{secure_token:_.token,processor_specific_metadata:{payment_provider:r.provider,airwallex_consent_id:Y==null?void 0:Y.consent_id,airwallex_payment_method_data:{type:"googlepay",googlepay:{payment_data_type:"encrypted_payment_token",encrypted_payment_token:U}}}});log__$d("[1st] Confirm payment flow response",w);let k=(g=(m=w.payment_methods)==null?void 0:m[0])==null?void 0:g.id;const L=(O=w.required_user_actions)==null?void 0:O.find(x=>x.type==="airwallex_payment_consent");if(L&&L.redirect_url){log__$d("3DS Required, starting verification...",L);const{status:x}=await start3dsVerification({url:L.redirect_url,baseUrl:n.baseUrl});if(log__$d(`╰ 3DS verification completed [Status: ${x}]`),x===ThreeDSStatus.CANCELLED)throw new Error("3DS verification cancelled");if(x===ThreeDSStatus.FAILURE)throw new Error("3DS verification failed")}if(L&&!k&&(w=await confirmPaymentFlow(c,{secure_token:_.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),k=(A=(v=w.payment_methods)==null?void 0:v[0])==null?void 0:A.id),!k)throw new Error("No PM ID found");return performSimpleCheckoutOrSetup({logPrefix:"awx-googlepay",anyCdeConnection:c,checkoutPaymentMethod:r,requiredFormFields:I,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:generateBillingAddressFromFields(t),new_customer_shipping_address:generateShippingAddressFromFields(t,r.prefill.checkout_settings),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(p){err__$d("Apple Pay payment error",p),track("apple_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:_}}),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 p=new ApplePaySession(3,d),E={session:p,connection:n.anyCdeConnection,checkoutPaymentMethod:r,nonCdeFormInputs:o,processorAccount:r.metadata,prefill:c,isSetupMode:_,baseUrl:n.baseUrl,formCallbacks:a};return new Promise((m,g)=>{p.oncancel=()=>{log__$c("Payment cancelled by user"),g(new Error("Payment cancelled by user"))},p.onvalidatemerchant=async O=>{try{await handleValidateMerchant(O,E)}catch(v){g(v)}},p.onpaymentmethodselected=()=>{const O={newTotal:d.total};p.completePaymentMethodSelection(O)},p.onpaymentauthorized=async O=>{track("apple_pay_payment_authorized");try{const v=await handlePaymentAuthorized(O,E);m(v)}catch(v){g(v)}},p.begin()}).catch(m=>{throw err__$d("Apple Pay payment error",m),track("apple_pay_payment_error",{error:m}),m})}),{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);const s=n.anyCdeConnection,t=await getPrefill(s);try{const p=getPaymentDataRequest({prefill:t,gateway:"authorizenet",gatewayMerchantId:a.processor_account_id,merchantName:a.processor_account_name,merchantId:a.google_pay_merchant_id??"",initialPreview:{amountAtom:0,currency:"USD"}}),E=await getGooglePaymentsClient(n.baseUrl,p),{result:f}=await E.isReadyToPay(p);if(!f)return log__$b("Google Pay is not available for this user"),o}catch(p){return err__$c("Error checking Google Pay availability",p),o}const e=t.mode==="setup",l=await getCheckoutPreviewAmount(s,t.token,e,void 0),c=async p=>{try{OjsFlows.authorizeNetGooglePay.run({context:n,checkoutPaymentMethod:u,nonCdeFormInputs:createInputsDictFromForm(n.formDiv),formCallbacks:r,initResult:void 0,customParams:{...p,initialPreview:l}})}catch(E){err__$c("Google Pay payment error",E),track("google_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:c}}),runAuthnetGooglePayFlow=addBasicCheckoutCallbackHandlers(async({context:n,nonCdeFormInputs:r,checkoutPaymentMethod:o,formCallbacks:u,customParams:a})=>{var E,f,m,g;const{initialPreview:s,overridePaymentRequest:t}=a,l=findCpmMatchingType(n.checkoutPaymentMethods,GooglePayCpm).metadata,c=n.anyCdeConnection,_=await getPrefill(c),d=getPaymentDataRequest({prefill:_,gateway:"authorizenet",gatewayMerchantId:l.processor_account_id,merchantName:l.processor_account_name,merchantId:l.google_pay_merchant_id??"",initialPreview:s,overridePaymentRequest:t});track("google_pay_flow_started",{processor_name:o.processor_name,prefill:_,overridePaymentRequest:t});const p=await getGooglePaymentsClient(n.baseUrl,d);try{const O=await p.loadPaymentData(d);log__$b("Google Pay Payment data",O);const v=fillEmptyFormInputsWithGooglePay(r,O),A=validateNonCdeFormFieldsForCC(v,u.get.onValidationError);track("billing_details_received",{...A});const M=(f=(E=O.paymentMethodData)==null?void 0:E.tokenizationData)==null?void 0:f.token;if(!M)throw new Error("No payment token received from Google Pay");const b=await startPaymentFlow(c,{payment_provider:o.provider,checkout_payment_method:o,new_customer_email:A[FieldName.EMAIL],new_customer_first_name:A[FieldName.FIRST_NAME],new_customer_last_name:A[FieldName.LAST_NAME],new_customer_address:generateBillingAddressFromFields(A),new_customer_shipping_address:generateShippingAddressFromFields(A,_.checkout_settings),customer_language:detectLanguage()});log__$b("Start payment flow response",b);const I=await confirmPaymentFlow(c,{secure_token:_.token,processor_specific_metadata:{payment_provider:o.provider,mobile_wallet_payment_data:{dataDescriptor:"COMMON.GOOGLE.INAPP.PAYMENT",dataValue:window.btoa(M)}}});if(!((g=(m=I.payment_methods)==null?void 0:m[0])==null?void 0:g.id))throw new Error("No PM ID found");return performSimpleCheckoutOrSetup({logPrefix:"authnet-googlepay",anyCdeConnection:c,checkoutPaymentMethod:o,requiredFormFields:A,confirmResult:I,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")}}),{log__:log__$a,err__:err__$b}=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__$b(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__$a(`3DS verification success. [Vault ID: ${r}]`),r}catch(r){const o="Error verifying 3DS verification result.";throw err__$b(o,`Resulting URL: ${n}.
74
+ 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__$m(l),new Error(e)}return{existing_cc:{initial_intent_id:a,consent_id:o["op-airwallex-consent-id"]}}},ApplePayCpm$2=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$2=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()})}),PaymentProcessor=z.enum(["stripe","airwallex","authorize_net","adyen"]);PaymentProcessor.Enum.stripe;const loadScript=({scriptId:n,src:r,checkLoadedFn:o})=>{const u=new AbortController;return new Promise((a,s)=>{let t=document.createElement("script");t.src=r,t.id=n,t.async=!0;const e=document.getElementById(n);o()?a():e?t=e:document.body.appendChild(t),t.addEventListener("load",()=>{u.abort(),a()},{signal:u.signal}),t.addEventListener("error",()=>{u.abort(),s("Failed to load the script")},{signal:u.signal})})},loadApplePayScript=()=>loadScript({scriptId:"__op_internal_apple_pay_sdk",src:"https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js",checkLoadedFn:()=>!!window.ApplePaySession||!!window.ApplePaySDK}),fillEmptyFormInputsWithApplePay=(n,r)=>{const o=r.token.paymentMethod.billingContact,u=r.billingContact,a=r.shippingContact,s={...n};if(o||u||a){s[FieldName.EMAIL]=s[FieldName.EMAIL]||(o==null?void 0:o.emailAddress)||(u==null?void 0:u.emailAddress)||(a==null?void 0:a.emailAddress)||"op_unfilled@email.com",s[FieldName.COUNTRY]=s[FieldName.COUNTRY]||(o==null?void 0:o.countryCode)||(u==null?void 0:u.countryCode)||(a==null?void 0:a.countryCode)||"US",s[FieldName.ZIP_CODE]=s[FieldName.ZIP_CODE]||(o==null?void 0:o.postalCode)||(u==null?void 0:u.postalCode)||(a==null?void 0:a.postalCode)||"00000";const t=s[FieldName.FIRST_NAME]||(o==null?void 0:o.givenName)||(u==null?void 0:u.givenName)||(a==null?void 0:a.givenName)||"",e=s[FieldName.LAST_NAME]||(o==null?void 0:o.familyName)||(u==null?void 0:u.familyName)||(a==null?void 0:a.familyName)||"";t||e?(s[FieldName.FIRST_NAME]=t,s[FieldName.LAST_NAME]=e):(s[FieldName.FIRST_NAME]="_OP_UNKNOWN",s[FieldName.LAST_NAME]="")}return s};z.object({data:z.object({messageHeaders:z.record(z.string(),z.any()),errors:z.array(z.any()),messageType:z.string(),messageBody:z.record(z.string(),z.any())}),origin:z.literal("https://applepay.cdn-apple.com")});const createRecurringPaymentRequest=({total:n,prefill:r})=>{var u;if(r.mode==="setup")return{paymentDescription:"Setup recurring payment",regularBilling:{amount:n.amount,label:"Setup recurring payment",paymentTiming:"recurring",type:"final"},managementURL:new URL(`/pay/${r.token}`,FRAME_BASE_URL).toString()};const o=(u=r.line_items)==null?void 0:u[0];if(o)return{paymentDescription:(o==null?void 0:o.description)??"",regularBilling:{amount:n.amount,label:(o==null?void 0:o.description)??"",recurringPaymentIntervalUnit:o==null?void 0:o.billing_interval,recurringPaymentIntervalCount:(o==null?void 0:o.billing_interval_count)??void 0,paymentTiming:"recurring",type:"final"},managementURL:`https://cde.getopenpay.com/pay/${r.token}`}},createApplePayTotal=({overridePaymentRequest:n,initialPreview:r,prefill:o,defaultLabel:u="Total"})=>{var e,l;const a=(((e=n==null?void 0:n.amount)==null?void 0:e.currency)??(o==null?void 0:o.currency)??r.currency).toUpperCase(),t=((((l=n==null?void 0:n.amount)==null?void 0:l.amountAtom)??(r==null?void 0:r.amountAtom)??0)/100).toFixed(2);return{currencyCode:a,total:{label:(n==null?void 0:n.label)??u??"Total",type:n!=null&&n.pending?"pending":"final",amount:t}}},getApplePayPaymentRequest=({overridePaymentRequest:n,initialPreview:r,prefill:o,defaultLabel:u})=>{const{currencyCode:a,total:s}=createApplePayTotal({overridePaymentRequest:n,initialPreview:r,prefill:o,defaultLabel:u});let t={countryCode:"US",currencyCode:a,requiredBillingContactFields:["email","postalAddress","name"],requiredShippingContactFields:["email"],supportedNetworks:["visa","masterCard","amex","discover"],merchantCapabilities:["supports3DS","supportsCredit","supportsDebit","supportsEMV"],total:s,recurringPaymentRequest:createRecurringPaymentRequest({total:s,prefill:o})};return n!=null&&n.applePayPaymentRequest&&(typeof n.applePayPaymentRequest=="function"?t={...t,...n.applePayPaymentRequest(t)}:t={...t,...n.applePayPaymentRequest}),t},generateAnonymousValues=()=>{const n=v4().split("-")[0];return{firstName:`xx_${n}`,lastName:`xx_${n}`,email:`xx_${n}@email.com`,zipCode:`xx_${n}`,country:"US"}},generateBillingAddressFromFields=n=>({line1:n[FieldName.LINE1],line2:n[FieldName.LINE2],line3:n[FieldName.LINE3],city:n[FieldName.CITY],state:n[FieldName.STATE],country:n[FieldName.COUNTRY],zip_code:n[FieldName.ZIP_CODE]}),generateShippingAddressFromFields=(n,r)=>{if(r.require_full_shipping_address)return{line1:n[FieldName.SHIPPING_LINE1],line2:n[FieldName.SHIPPING_LINE2],line3:n[FieldName.SHIPPING_LINE3],city:n[FieldName.SHIPPING_CITY],state:n[FieldName.SHIPPING_STATE],country:n[FieldName.SHIPPING_COUNTRY],zip_code:n[FieldName.SHIPPING_ZIP_CODE]}},{log__:log__$m,err__:err__$l}=createOjsFlowLoggers("common"),parseConfirmPaymentFlowResponse=n=>{if(n.payment_methods.length!==1)throw new Error(`Expected exactly one payment method, got ${n.payment_methods.length}`);return{payment_method_id:n.payment_methods[0].id}},findCpmMatchingType=(n,r)=>{const o=n.find(u=>r.safeParse(u).success);if(!o)throw err__$l("No CPMs found for model. All models:",n),new Error("No CPMs found for model");return r.parse(o)},createCustomerFieldsFromForm=(n,r)=>({new_customer_email:n.email,new_customer_last_name:n.lastName,new_customer_first_name:n.firstName,new_customer_address:generateBillingAddressFromFields(n),new_customer_shipping_address:generateShippingAddressFromFields(n,r)}),performSimpleCheckoutOrSetup=async n=>{const{log__:r}=createOjsFlowLoggers(n.logPrefix),o=await getPrefill(n.anyCdeConnection),u=parseConfirmPaymentFlowResponse(n.confirmResult);if(o.mode==="setup")return r("Setting up payment method..."),{mode:"setup",result:await finalizeSetupPaymentMethod(n.anyCdeConnection,{secure_token:o.token,pm_id:u.payment_method_id})};{if(n.usePayFirstFlow){if(r("Using pay-first flow..."),!n.confirmResult.pay_first_success_response)throw err__$l("Checkout failed, no pay-first success response:",n.confirmResult),new Error("Checkout failed, please try again with another payment method.");return{mode:"checkout",result:n.confirmResult.pay_first_success_response}}r("Doing checkout...");const a={secure_token:o.token,payment_input:{provider_type:n.checkoutPaymentMethod.provider},customer_email:n.requiredFormFields[FieldName.EMAIL],customer_address:generateBillingAddressFromFields(n.requiredFormFields),customer_shipping_address:generateShippingAddressFromFields(n.requiredFormFields,o.checkout_settings),promotion_code:n.requiredFormFields[FieldName.PROMOTION_CODE],line_items:o.line_items,total_amount_atom:o.amount_total_atom,cancel_at_end:!1,use_confirmed_pm_id:u.payment_method_id,checkout_payment_method:n.checkoutPaymentMethod};return{mode:"checkout",result:await performCheckout(n.anyCdeConnection,a)}}},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__$l,err__:err__$k}=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__$k(`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__$l("Waiting for Adyen SDK to load...");for(let n=0;n<10;n++)isAdyenAvailable()||await sleep(500);if(!isAdyenAvailable())throw err__$k("Adyen SDK not loaded properly"),new Error(friendlyErr);return log__$l("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__$l(`Running Adyen 3DS flow for action type: ${e.type}`),new Promise(l=>{const c=()=>{log__$l("Cleaning up Adyen 3DS flow"),t.removeEventListener("click",p),s.remove()},_=f=>{err__$k("Authentication failed. Result:",f),l({status:ThreeDSStatus.FAILURE,cleanup:c})},d=f=>{err__$k("Adyen error:",f),l({status:ThreeDSStatus.FAILURE,cleanup:c})},p=()=>{l({status:ThreeDSStatus.CANCELLED,cleanup:c})};t.addEventListener("click",p);const E=(f,m,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:E,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__$l(`Resolved locale: ${u.data}`),u.data):(err__$k(`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__$l("3DS verification succeeded"),{existing_cc:{additional_details:l.additionalDetails.data}}}else assertNever(l.status)},ApplePayCpm$1=z.object({provider:z.literal("apple_pay"),processor_name:z.literal("adyen"),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("adyen"),metadata:z.object({processor_account_id:z.string(),processor_account_name:z.string(),google_pay_merchant_id:z.string().nullish()})}),{log__:log__$k,err__:err__$j}=createOjsFlowLoggers("common-cc"),createDynamicValidationSchema=({require_zip_code:n,require_full_billing_address:r,require_full_shipping_address:o,payment_method:u})=>{const a={};return u==="ach"&&(a[FieldName.FIRST_NAME]=z.string().min(2,{message:"Minimum length is 2"}),a[FieldName.LAST_NAME]=z.string().min(2,{message:"Minimum length is 2"})),n&&(a[FieldName.ZIP_CODE]=RequiredString),r&&(a[FieldName.LINE1]=RequiredString,a[FieldName.CITY]=RequiredString,a[FieldName.STATE]=RequiredString),o&&(a[FieldName.SHIPPING_LINE1]=RequiredString,a[FieldName.SHIPPING_CITY]=RequiredString,a[FieldName.SHIPPING_STATE]=RequiredString,a[FieldName.SHIPPING_COUNTRY]=RequiredString,a[FieldName.SHIPPING_ZIP_CODE]=RequiredString),Object.keys(a).length===0?RequiredFormFields:RequiredFormFields.extend(a)},validateNonCdeFormFields=(n,r,o={})=>{if(o){log__$k(`Received default field values: ${JSON.stringify(o)}`);const s=Object.keys(o);for(let t=0;t<s.length;t++){const e=s[t],l=o[e];n[e]||(n[e]=l)}}const a=createDynamicValidationSchema(o).safeParse(n);if(!a.success){const s=a.error.format(),t=extractIssuesPerField(s),e=Object.keys(t);for(let l=0;l<e.length;l++){const c=e[l],_=t[c];r(c,_,c)}throw err__$j("Got validation errors in non-CDE form fields",t),new Error("Please check the highlighted fields and correct the errors")}return a.data},{log__:log__$j,err__:err__$i}=createOjsFlowLoggers("common-cc"),validateNonCdeFormFieldsForCC=validateNonCdeFormFields,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__$i(`Unknown field name in onValidationError: ${u.elementType}. Error object:`,u);else{const s=a.data;r(s,u.errors)}}),log__$j(`Error tokenizing card: got validation errors: ${JSON.stringify(o.errors)}`),new Error("Got validation errors while tokenizing card")},{log__:log__$i}=createOjsFlowLoggers("awx-apple-pay");async function handleValidateMerchant$2(n,r){try{const u=(await preparePaymentFlow(r.connection,{checkout_payment_method:r.checkoutPaymentMethod,processor_specific_metadata:{apple_pay_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$2(n,r){var o,u;try{const a=n.payment,s=fillEmptyFormInputsWithApplePay(r.nonCdeFormInputs,a),t=validateNonCdeFormFieldsForCC(s,r.formCallbacks.get.onValidationError,r.defaultFieldValues);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:generateBillingAddressFromFields(t),new_customer_shipping_address:generateShippingAddressFromFields(t,r.prefill.checkout_settings)});const e=await confirmPaymentFlow(r.connection,{secure_token:r.prefill.token,processor_specific_metadata:{payment_provider:r.checkoutPaymentMethod.provider,browser_info:getFraudMetadata(),mobile_wallet_payment_data:{encrypted_payment_token:JSON.stringify(a.token)}}});if(log__$i("[1st] Confirm payment flow response",e),!((u=(o=e.payment_methods)==null?void 0:o[0])==null?void 0:u.id))throw new Error("No PM ID found");const c={status:ApplePaySession.STATUS_SUCCESS};return r.session.completePayment(c),performSimpleCheckoutOrSetup({logPrefix:"adyen-applepay",anyCdeConnection:r.connection,checkoutPaymentMethod:r.checkoutPaymentMethod,requiredFormFields:t,confirmResult:e,usePayFirstFlow:!1})}catch(a){const s={status:ApplePaySession.STATUS_FAILURE};throw r.session.completePayment(s),a}}const{log__:log__$h,err__:err__$h}=createOjsFlowLoggers("adyen-apple-pay"),initAdyenApplePayFlow=addErrorCatcherForInit(async({context:n,formCallbacks:r})=>{const o={processor:PaymentProcessor.Enum.adyen,isAvailable:!1,isLoading:!1,startFlow:async()=>{}},u=findCpmMatchingType(n.checkoutPaymentMethods,ApplePayCpm$1);if(!u)return o;if(log__$h("Loading Apple Pay script"),await loadApplePayScript(),!window.ApplePaySession||!ApplePaySession.canMakePayments())return log__$h("Apple Pay is not available on this device/browser"),o;if(log__$h("Apple Pay Loaded"),!await ApplePaySession.canMakePayments())return log__$h("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.adyenApplePay.run({context:n,checkoutPaymentMethod:u,nonCdeFormInputs:createInputsDictFromForm(n.formDiv),formCallbacks:r,customParams:{...d,initialPreview:c},initResult:void 0})}catch(p){err__$h("Apple Pay payment error",p),r.get.onCheckoutError((p==null?void 0:p.message)??"Unknown error")}};return{processor:PaymentProcessor.Enum.adyen,isAvailable:!0,isLoading:!1,startFlow:_}}),runAdyenApplePayFlow=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}),p=new ApplePaySession(3,d),E={session:p,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((m,g)=>{const O=()=>{log__$h("Payment cancelled by user"),g(new Error("Payment cancelled by user"))};p.onvalidatemerchant=async v=>{try{await handleValidateMerchant$2(v,E)}catch(A){g(A)}},p.onpaymentmethodselected=()=>{const v={newTotal:{...d.total}};p.completePaymentMethodSelection(v)},p.onpaymentauthorized=async v=>{track("apple_pay_payment_authorized");try{const A=await handlePaymentAuthorized$2(v,E);m(A)}catch(A){g(A)}},p.oncancel=O,p.begin()}).catch(m=>{throw err__$h("Apple Pay payment error",m),track("apple_pay_payment_error",{error:m}),m})}),getPaymentDataRequest=({gateway:n,gatewayMerchantId:r,merchantName:o,merchantId:u,initialPreview:a,overridePaymentRequest:s,prefill:t})=>{var d,p;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=(((p=s==null?void 0:s.amount)==null?void 0:p.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,shippingAddressRequired:t.checkout_settings.require_full_shipping_address,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 s,t,e,l;const o={...n},u=(t=(s=r.paymentMethodData)==null?void 0:s.info)==null?void 0:t.billingAddress,a=r.shippingAddress;if(u){const[c,..._]=((l=(e=u.name)==null?void 0:e.trim())==null?void 0:l.split(/\s+/))??[],d=_.join(" ")||void 0;o[FieldName.EMAIL]=o[FieldName.EMAIL]||r.email||"op_unfilled@getopenpay.com",o[FieldName.LINE1]=o[FieldName.LINE1]||u.address1||"",o[FieldName.LINE2]=o[FieldName.LINE2]||u.address2||"",o[FieldName.LINE3]=o[FieldName.LINE3]||u.address3||"",o[FieldName.CITY]=o[FieldName.CITY]||u.locality||"",o[FieldName.STATE]=o[FieldName.STATE]||u.administrativeArea||"",o[FieldName.COUNTRY]=o[FieldName.COUNTRY]||u.countryCode||"US",o[FieldName.ZIP_CODE]=o[FieldName.ZIP_CODE]||u.postalCode||"00000";const p=o[FieldName.FIRST_NAME]||c||"",E=o[FieldName.LAST_NAME]||d||"";p||E?(o[FieldName.FIRST_NAME]=p,o[FieldName.LAST_NAME]=E):(o[FieldName.FIRST_NAME]="_OP_UNKNOWN",o[FieldName.LAST_NAME]="")}return console.log("__START__"),console.log(a),console.log("__STOPP__"),a&&(o[FieldName.SHIPPING_LINE1]=o[FieldName.SHIPPING_LINE1]||a.address1||"",o[FieldName.SHIPPING_LINE2]=o[FieldName.SHIPPING_LINE2]||a.address2||"",o[FieldName.SHIPPING_LINE3]=o[FieldName.SHIPPING_LINE3]||a.address3||"",o[FieldName.SHIPPING_CITY]=o[FieldName.SHIPPING_CITY]||a.locality||"",o[FieldName.SHIPPING_ZIP_CODE]=o[FieldName.SHIPPING_ZIP_CODE]||a.postalCode||"00000",o[FieldName.SHIPPING_STATE]=o[FieldName.SHIPPING_STATE]||a.administrativeArea||"",o[FieldName.SHIPPING_COUNTRY]=o[FieldName.SHIPPING_COUNTRY]||a.countryCode||"US"),o},{log__:log__$g,err__:err__$g}=createOjsFlowLoggers("adyen-google-pay"),initAdyenGooglePayFlow=addErrorCatcherForInit(async({context:n,formCallbacks:r})=>{var d,p;const o={processor:PaymentProcessor.Enum.adyen,isAvailable:!1,isLoading:!1,startFlow:async()=>{}},u=findCpmMatchingType(n.checkoutPaymentMethods,GooglePayCpm$1);if(!u)return o;log__$g("Google Pay CPM",u);const a=u.metadata;if(!a.processor_account_id)return err__$g("No gateway merchant ID found in processor account"),o;if(log__$g("Loading Google Pay script"),await loadGooglePayScript(),!((p=(d=window.google)==null?void 0:d.payments)!=null&&p.api))return err__$g("Google Pay SDK not loaded properly"),o;if(await getGooglePayEnvironment(n.baseUrl)==="PRODUCTION"&&!a.google_pay_merchant_id)return err__$g("Google Pay merchant ID is required for production environment"),o;log__$g("Google Pay SDK loaded",window.google.payments);const t=n.anyCdeConnection,e=await getPrefill(t);try{const E=getPaymentDataRequest({prefill:e,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,E),{result:m}=await f.isReadyToPay(E);if(!m)return log__$g("Google Pay is not available for this user"),o}catch(E){return err__$g("Error checking Google Pay availability",E),o}const l=e.mode==="setup",c=await getCheckoutPreviewAmount(t,e.token,l,void 0),_=async E=>{try{OjsFlows.adyenGooglePay.run({context:n,checkoutPaymentMethod:u,nonCdeFormInputs:createInputsDictFromForm(n.formDiv),formCallbacks:r,initResult:void 0,customParams:{...E,initialPreview:c}})}catch(f){err__$g("Google Pay payment error",f),r.get.onCheckoutError((f==null?void 0:f.message)??"Unknown error")}};return{processor:PaymentProcessor.Enum.adyen,isAvailable:!0,isLoading:!1,startFlow:_}}),runAdyenGooglePayFlow=addBasicCheckoutCallbackHandlers(async({context:n,checkoutPaymentMethod:r,nonCdeFormInputs:o,formCallbacks:u,customParams:a})=>{var E,f,m,g,O,v,A,M,b;log__$g("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=n.anyCdeConnection,_=await getPrefill(c),d=getPaymentDataRequest({prefill:_,gateway:"adyen",gatewayMerchantId:l.processor_account_id,merchantName:l.processor_account_name,merchantId:l.google_pay_merchant_id??"",initialPreview:t,overridePaymentRequest:e});track("google_pay_flow_started",{processor_name:s.processor_name,prefill:excludeProps(_,["brand"]),overridePaymentRequest:e});const p=await getGooglePaymentsClient(n.baseUrl,d);try{const I=await p.loadPaymentData(d);log__$g("Google Pay Payment data",I);const U=fillEmptyFormInputsWithGooglePay(o,I),C=validateNonCdeFormFieldsForCC(U,u.get.onValidationError,a==null?void 0:a.defaultFieldValues);if(track("billing_details_received",{...C}),!((f=(E=I.paymentMethodData)==null?void 0:E.tokenizationData)==null?void 0:f.token))throw new Error("No payment token received from Google Pay");const w=await startPaymentFlow(c,{payment_provider:r.provider,checkout_payment_method:r,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:generateBillingAddressFromFields(C),new_customer_shipping_address:generateShippingAddressFromFields(C,_.checkout_settings)}),k=parseAirwallexStartPaymentFlowResponse(w);log__$g("Start flow next actions",k);let L=await confirmPaymentFlow(c,{secure_token:_.token,processor_specific_metadata:{payment_provider:r.provider,browser_info:getFraudMetadata(),mobile_wallet_payment_data:{encrypted_payment_token:(g=(m=I.paymentMethodData)==null?void 0:m.tokenizationData)==null?void 0:g.token}}});log__$g("[1st] Confirm payment flow response",L);let x=(v=(O=L.payment_methods)==null?void 0:O[0])==null?void 0:v.id;const J=(A=L.required_user_actions)==null?void 0:A.find(W=>W.type==="adyen-3ds");if(J&&J.redirect_url){log__$g("Adyen 3DS Required, starting verification...",J);const{status:W}=await start3dsVerification({url:J.redirect_url,baseUrl:n.baseUrl});if(log__$g(`╰ Adyen 3DS verification completed [Status: ${W}]`),W===ThreeDSStatus.CANCELLED)throw new Error("3DS verification cancelled");if(W===ThreeDSStatus.FAILURE)throw new Error("3DS verification failed")}if(J&&!x&&(L=await confirmPaymentFlow(c,{secure_token:_.token,their_pm_id:J.their_pm_id,processor_specific_metadata:{payment_provider:r.provider}}),log__$g("[2nd] Confirm payment flow response after 3DS",L),x=(b=(M=L.payment_methods)==null?void 0:M[0])==null?void 0:b.id),!x)throw new Error("No payment method ID found");return performSimpleCheckoutOrSetup({logPrefix:"adyen-googlepay",anyCdeConnection:c,checkoutPaymentMethod:r,requiredFormFields:C,confirmResult:L,usePayFirstFlow:!1})}catch(I){throw err__$g("Google Pay payment error",I),track("google_pay_payment_error",{error:I}),new Error((I==null?void 0:I.message)??"Unknown error")}}),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__$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 p=(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:generateBillingAddressFromFields(c),new_customer_shipping_address:generateShippingAddressFromFields(c,r.prefill.checkout_settings),customer_language:detectLanguage()})).required_user_actions[0].consent_id;if(!p)throw new Error("No consent ID received from payment flow");let E=await confirmPaymentFlow(r.connection,{secure_token:r.prefill.token,processor_specific_metadata:{payment_provider:r.checkoutPaymentMethod.provider,airwallex_consent_id:p,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",E);let f=(u=(o=E.payment_methods)==null?void 0:o[0])==null?void 0:u.id;const m=(a=E.required_user_actions)==null?void 0:a.find(O=>O.type==="airwallex_payment_consent");if(m!=null&&m.redirect_url&&m.consent_id&&m.their_pm_id&&(E=await handle3DS(m,r),f=(t=(s=E.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:E,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$2);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(p){err__$f("Apple Pay payment error",p),r.get.onCheckoutError((p==null?void 0:p.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$2),{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}),p=new ApplePaySession(3,d),E={session:p,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((m,g)=>{const O=()=>{log__$e("Payment cancelled by user"),g(new Error("Payment cancelled by user"))};p.oncancel=O,p.onvalidatemerchant=async v=>{try{await handleValidateMerchant$1(v,E)}catch(A){g(A)}},p.onpaymentmethodselected=()=>{const v={newTotal:{...d.total}};p.completePaymentMethodSelection(v)},p.onpaymentauthorized=async v=>{track("apple_pay_payment_authorized");try{const A=await handlePaymentAuthorized$1(v,E);m(A)}catch(A){g(A)}},p.begin()}).catch(m=>{throw err__$f("Apple Pay payment error",m),track("apple_pay_payment_error",{error:m}),m})}),{log__:log__$d,err__:err__$e}=createOjsFlowLoggers("awx-google-pay"),initAirwallexGooglePayFlow=addErrorCatcherForInit(async({context:n,formCallbacks:r})=>{var d,p;const o={processor:PaymentProcessor.Enum.airwallex,isAvailable:!1,isLoading:!1,startFlow:async()=>{}},u=findCpmMatchingType(n.checkoutPaymentMethods,GooglePayCpm$2);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(),!((p=(d=window.google)==null?void 0:d.payments)!=null&&p.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);const t=n.anyCdeConnection,e=await getPrefill(t);try{const E=getPaymentDataRequest({prefill:e,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,E),{result:m}=await f.isReadyToPay(E);if(!m)return log__$d("Google Pay is not available for this user"),o}catch(E){return err__$e("Error checking Google Pay availability",E),o}const l=e.mode==="setup",c=await getCheckoutPreviewAmount(t,e.token,l,void 0),_=async E=>{try{OjsFlows.airwallexGooglePay.run({context:n,checkoutPaymentMethod:u,nonCdeFormInputs:createInputsDictFromForm(n.formDiv),formCallbacks:r,initResult:void 0,customParams:{...E,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 E,f,m,g,O,v,A;log__$d("Starting Google Pay flow...");const s=findCpmMatchingType(n.checkoutPaymentMethods,GooglePayCpm$2),{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=n.anyCdeConnection,_=await getPrefill(c),d=getPaymentDataRequest({prefill:_,gateway:"airwallex",gatewayMerchantId:l.processor_account_id,merchantName:l.processor_account_name,merchantId:l.google_pay_merchant_id??"",initialPreview:t,overridePaymentRequest:e});track("google_pay_flow_started",{processor_name:s.processor_name,prefill:excludeProps(_,["brand"]),overridePaymentRequest:e});const p=await getGooglePaymentsClient(n.baseUrl,d);try{const M=await p.loadPaymentData(d);log__$d("Google Pay Payment data",M);const b=fillEmptyFormInputsWithGooglePay(o,M);log__$d("____",b);const I=validateNonCdeFormFieldsForCC(b,u.get.onValidationError,a==null?void 0:a.defaultFieldValues);log__$d("___",I),track("billing_details_received",{...I});const U=(f=(E=M.paymentMethodData)==null?void 0:E.tokenizationData)==null?void 0:f.token;if(!U)throw new Error("No payment token received from Google Pay");const C=await startPaymentFlow(c,{payment_provider:r.provider,checkout_payment_method:r,new_customer_email:I[FieldName.EMAIL],new_customer_first_name:I[FieldName.FIRST_NAME],new_customer_last_name:I[FieldName.LAST_NAME],new_customer_address:generateBillingAddressFromFields(I),new_customer_shipping_address:generateShippingAddressFromFields(I,_.checkout_settings),customer_language:detectLanguage()}),Y=parseAirwallexStartPaymentFlowResponse(C);log__$d("Start flow next actions",Y);let w=await confirmPaymentFlow(c,{secure_token:_.token,processor_specific_metadata:{payment_provider:r.provider,airwallex_consent_id:Y==null?void 0:Y.consent_id,airwallex_payment_method_data:{type:"googlepay",googlepay:{payment_data_type:"encrypted_payment_token",encrypted_payment_token:U}}}});log__$d("[1st] Confirm payment flow response",w);let k=(g=(m=w.payment_methods)==null?void 0:m[0])==null?void 0:g.id;const L=(O=w.required_user_actions)==null?void 0:O.find(x=>x.type==="airwallex_payment_consent");if(L&&L.redirect_url){log__$d("3DS Required, starting verification...",L);const{status:x}=await start3dsVerification({url:L.redirect_url,baseUrl:n.baseUrl});if(log__$d(`╰ 3DS verification completed [Status: ${x}]`),x===ThreeDSStatus.CANCELLED)throw new Error("3DS verification cancelled");if(x===ThreeDSStatus.FAILURE)throw new Error("3DS verification failed")}if(L&&!k&&(w=await confirmPaymentFlow(c,{secure_token:_.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),k=(A=(v=w.payment_methods)==null?void 0:v[0])==null?void 0:A.id),!k)throw new Error("No PM ID found");return performSimpleCheckoutOrSetup({logPrefix:"awx-googlepay",anyCdeConnection:c,checkoutPaymentMethod:r,requiredFormFields:I,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:generateBillingAddressFromFields(t),new_customer_shipping_address:generateShippingAddressFromFields(t,r.prefill.checkout_settings),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(p){err__$d("Apple Pay payment error",p),track("apple_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:_}}),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 p=new ApplePaySession(3,d),E={session:p,connection:n.anyCdeConnection,checkoutPaymentMethod:r,nonCdeFormInputs:o,processorAccount:r.metadata,prefill:c,isSetupMode:_,baseUrl:n.baseUrl,formCallbacks:a};return new Promise((m,g)=>{p.oncancel=()=>{log__$c("Payment cancelled by user"),g(new Error("Payment cancelled by user"))},p.onvalidatemerchant=async O=>{try{await handleValidateMerchant(O,E)}catch(v){g(v)}},p.onpaymentmethodselected=()=>{const O={newTotal:d.total};p.completePaymentMethodSelection(O)},p.onpaymentauthorized=async O=>{track("apple_pay_payment_authorized");try{const v=await handlePaymentAuthorized(O,E);m(v)}catch(v){g(v)}},p.begin()}).catch(m=>{throw err__$d("Apple Pay payment error",m),track("apple_pay_payment_error",{error:m}),m})}),{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);const s=n.anyCdeConnection,t=await getPrefill(s);try{const p=getPaymentDataRequest({prefill:t,gateway:"authorizenet",gatewayMerchantId:a.processor_account_id,merchantName:a.processor_account_name,merchantId:a.google_pay_merchant_id??"",initialPreview:{amountAtom:0,currency:"USD"}}),E=await getGooglePaymentsClient(n.baseUrl,p),{result:f}=await E.isReadyToPay(p);if(!f)return log__$b("Google Pay is not available for this user"),o}catch(p){return err__$c("Error checking Google Pay availability",p),o}const e=t.mode==="setup",l=await getCheckoutPreviewAmount(s,t.token,e,void 0),c=async p=>{try{OjsFlows.authorizeNetGooglePay.run({context:n,checkoutPaymentMethod:u,nonCdeFormInputs:createInputsDictFromForm(n.formDiv),formCallbacks:r,initResult:void 0,customParams:{...p,initialPreview:l}})}catch(E){err__$c("Google Pay payment error",E),track("google_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:c}}),runAuthnetGooglePayFlow=addBasicCheckoutCallbackHandlers(async({context:n,nonCdeFormInputs:r,checkoutPaymentMethod:o,formCallbacks:u,customParams:a})=>{var E,f,m,g;const{initialPreview:s,overridePaymentRequest:t}=a,l=findCpmMatchingType(n.checkoutPaymentMethods,GooglePayCpm).metadata,c=n.anyCdeConnection,_=await getPrefill(c),d=getPaymentDataRequest({prefill:_,gateway:"authorizenet",gatewayMerchantId:l.processor_account_id,merchantName:l.processor_account_name,merchantId:l.google_pay_merchant_id??"",initialPreview:s,overridePaymentRequest:t});track("google_pay_flow_started",{processor_name:o.processor_name,prefill:_,overridePaymentRequest:t});const p=await getGooglePaymentsClient(n.baseUrl,d);try{const O=await p.loadPaymentData(d);log__$b("Google Pay Payment data",O);const v=fillEmptyFormInputsWithGooglePay(r,O),A=validateNonCdeFormFieldsForCC(v,u.get.onValidationError);track("billing_details_received",{...A});const M=(f=(E=O.paymentMethodData)==null?void 0:E.tokenizationData)==null?void 0:f.token;if(!M)throw new Error("No payment token received from Google Pay");const b=await startPaymentFlow(c,{payment_provider:o.provider,checkout_payment_method:o,new_customer_email:A[FieldName.EMAIL],new_customer_first_name:A[FieldName.FIRST_NAME],new_customer_last_name:A[FieldName.LAST_NAME],new_customer_address:generateBillingAddressFromFields(A),new_customer_shipping_address:generateShippingAddressFromFields(A,_.checkout_settings),customer_language:detectLanguage()});log__$b("Start payment flow response",b);const I=await confirmPaymentFlow(c,{secure_token:_.token,processor_specific_metadata:{payment_provider:o.provider,mobile_wallet_payment_data:{dataDescriptor:"COMMON.GOOGLE.INAPP.PAYMENT",dataValue:window.btoa(M)}}});if(!((g=(m=I.payment_methods)==null?void 0:m[0])==null?void 0:g.id))throw new Error("No PM ID found");return performSimpleCheckoutOrSetup({logPrefix:"authnet-googlepay",anyCdeConnection:c,checkoutPaymentMethod:o,requiredFormFields:A,confirmResult:I,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")}}),{log__:log__$a,err__:err__$b}=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__$b(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__$a(`3DS verification success. [Vault ID: ${r}]`),r}catch(r){const o="Error verifying 3DS verification result.";throw err__$b(o,`Resulting URL: ${n}.
75
75
  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__:stripeLog__}=createOjsFlowLoggers("stripe-cc"),Stripe3DSMetadataPayload=z.object({stripe_pk:z.string(),client_secret:z.string(),stripe_pm_id:z.string()}),stripeCC3DSFlow=async n=>{track("3ds_stripe_redirect",{...n}),stripeLog__(`├ Using stripe 3DS flow [Client Secret: ${n.client_secret.substring(0,8)}...]`),await launchStripe3DSDialogFlow(n),track("3ds_stripe_complete"),stripeLog__("╰ Stripe 3DS flow completed successfully")},parseUserFEPayload=n=>{const r=Stripe3DSMetadataPayload.safeParse(n);if(!r.success)throw new Error(`Stripe 3DS metadata has unexpected format: ${JSON.stringify(r.error.errors)}`);return{stripe_pk:r.data.stripe_pk,client_secret:r.data.client_secret,stripe_pm_id:r.data.stripe_pm_id}},MAX_CONFIRM_LOOP_ITERATIONS=4,{log__:log__$9,err__:err__$a}=createOjsFlowLoggers("unified-cc"),unsafelyRunUnifiedCcFlow=async({context:n,checkoutPaymentMethod:r,nonCdeFormInputs:o,formCallbacks:u,customParams:a})=>{log__$9("├ Running unified CC flow...",{checkoutPaymentMethod:r});const s=n.anyCdeConnection,t=await getPrefill(s);log__$9(`├ Validating non-CDE form fields [Mode: ${t.mode}]`);const e=validateNonCdeFormFieldsForCC(o,u.get.onValidationError),l={session_id:n.elementsSessionId,checkout_payment_method:r,non_cde_form_fields:e,extra_metadata:{origin:window.location.origin,deviceToken:getDeviceToken()},use_unified_cc_flow:!0,pay_first_flow_cart_info:{line_items:t.line_items,displayed_total_amount_atom:t.amount_total_atom},payment_route_id:a.paymentRouteId};err__$a(a,l),log__$9(`├ Tokenizing card info in Partial PMs [Session: ${n.elementsSessionId}]`);const c=await tokenizeCardOnAllConnections(a.currentCdeConnections,{session_id:n.elementsSessionId});validateTokenizeCardResults(c,u.get.onValidationError);const _=await startPaymentFlowForCC(s,l);if(log__$9("├ startPf result",_),_.checkout_success_response)return returnSuccessResult(t.mode,_);if(!_.checkout_attempt_id)throw new Error("Invalid state: no checkout attempt ID from PF result");return runConfirmLoop({context:n,prefill:t,nonCdeFormInputs:o,commonCheckoutParams:l,anyCdeConnection:s,startPfResult:_,checkoutAttemptId:_.checkout_attempt_id})},runConfirmLoop=async n=>{const{context:r,prefill:o,nonCdeFormInputs:u,commonCheckoutParams:a,anyCdeConnection:s,startPfResult:t,checkoutAttemptId:e}=n;let l=t;for(let c=0;c<MAX_CONFIRM_LOOP_ITERATIONS;c++){log__$9(`├ Running confirm loop iteration ${c}`);const{userAction:_}=validatePfResultUserAction(l),d=await runRequiredUserAction(r.baseUrl,_,o,u);if(a.extra_metadata={...a.extra_metadata,...d.metadataForConfirmStep},log__$9("├ New extra metadata",a.extra_metadata),l=await confirmPaymentFlow(s,{secure_token:o.token,checkout_attempt_id:e,processor_specific_metadata:a.extra_metadata}),log__$9(`├ confirmPf result (iteration ${c})`,l),l.checkout_success_response)return returnSuccessResult(o.mode,l)}throw track("unified_cc_unexpected_branch",{secure_token:o.token,checkout_attempt_id:l.checkout_attempt_id,confirmPFResult:l}),new Error("Checkout error, please try another payment method")},runRequiredUserAction=async(n,r,o,u)=>{if(r._unified_cc_action_name==="3DS_REQUIRED"){if(r.type==="stripe_3ds")return await stripeCC3DSFlow(parseUserFEPayload(r)),{metadataForConfirmStep:{}};if(checkIfRequiresAirwallex3ds(r))return{metadataForConfirmStep:{airwallex:await runAirwallex3dsFlow(n,r)}};if(checkIfRequiresAdyen3ds(r))return{metadataForConfirmStep:{adyen:await runAdyen3dsFlow(u[FieldName.COUNTRY],r,o.locale)}};if(checkIfLegacy3DSPath(r))return await commonCC3DSFlow({required_user_actions:[r]},n),{metadataForConfirmStep:{}};throw new Error(`Unhandled 3DS user action: ${JSON.stringify(r)}`)}else throw new Error(`Unknown required user action: ${JSON.stringify(r)}`)},checkIfLegacy3DSPath=n=>{try{return parseCommon3DSNextActionMetadata([n]),!0}catch{return!1}},validatePfResultUserAction=n=>{if(n.required_user_actions){if(n.required_user_actions.length===0)throw new Error("Invalid state: no required user actions");if(n.required_user_actions.length>1)throw new Error("Invalid state: multiple required user actions")}else throw new Error("Invalid state: no required user actions");const r=UserActionFEPayload.safeParse(n.required_user_actions[0]);if(!r.success)throw err__$a("User action raw payload",n.required_user_actions[0]),err__$a("Parsing error",r.error),new Error("Invalid state: schema of user action payload is not valid");return{userAction:r.data}},returnSuccessResult=(n,r)=>{var o;if(n==="setup"){const u=r.cc_pm_id??((o=r.payment_methods)==null?void 0:o[0].id);if(!u)throw new Error("Invalid state: no CC PM ID or payment_methods found in PF result");return{mode:"setup",result:{payment_method_id:u}}}else{if(!r.checkout_success_response)throw new Error("Invalid state: no checkout success response from startPF");return{mode:"checkout",result:r.checkout_success_response}}},{log__:log__$8,err__:err__$9}=createOjsFlowLoggers("common-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 E,f;log__$8("├ Running common CC flow...",{checkoutPaymentMethod:r});const s=n.anyCdeConnection,t=await getPrefill(s);track("common_cc_flow_started",{...r,prefill:t});const e=((E=t.final_feature_rollout_settings)==null?void 0:E.unified_cc)??0;log__$8(`├ Unified CC rollout: ${Math.round(e*100)}%`);const l=Math.random(),c=l<e,_={roll:l,unifiedCCRolloutRatio:e,useUnifiedCCFlow:c};if(c)return log__$8(`├ Picked unified CC flow (${l} vs ${e})`),track("unified_cc_flow_picked",_),unsafelyRunUnifiedCcFlow({context:n,checkoutPaymentMethod:r,nonCdeFormInputs:o,formCallbacks:u,customParams:a,initResult:void 0});log__$8(`├ Picked legacy CC flow (${l} vs ${e})`),track("legacy_cc_flow_picked",_),log__$8(`├ Validating non-CDE form fields [Mode: ${t.mode}]`);const d=validateNonCdeFormFieldsForCC(o,u.get.onValidationError,t.checkout_settings);track("billing_details_received",{...d});const p={session_id:n.elementsSessionId,checkout_payment_method:r,non_cde_form_fields:d,extra_metadata:{origin:window.location.origin},use_unified_cc_flow:!1,payment_route_id:a.paymentRouteId,customer_language:detectLanguage()};try{log__$8(`├ Tokenizing card info in CDE [Session: ${n.elementsSessionId}]`);const m=await tokenizeCardOnAllConnections(a.currentCdeConnections,{session_id:n.elementsSessionId});if(validateTokenizeCardResults(m,u.get.onValidationError),t.mode==="setup"){log__$8(`├ Setting up payment method in CDE [Token: ${t.token}]`);const g=await setupCheckout(s,p);return log__$8(`╰ Setup completed successfully [PM ID: ${g.payment_method_id}]`),{mode:"setup",result:g}}else{log__$8(`├ Initial checkout flow. Checking out card info in CDE [Session: ${n.elementsSessionId}]`);const g=await checkoutCardElements(s,p);return log__$8("╰ Checkout completed successfully."),{mode:"checkout",result:g}}}catch(m){if(m instanceof CdeError&&m.originalErrorMessage.includes("3DS_REQUIRED")){log__$8("├ Card requires 3DS, starting non-legacy payment flow"),log__$8("Received 3DS error response headers:",m.response.headers),track("3ds_required",{...r,...m.response.headers});const g=m.response.headers??{};"op-existing-cc-pm-id"in g&&(p.existing_cc_pm_id=g["op-existing-cc-pm-id"],log__$8(`├ Existing CC PM ID: ${p.existing_cc_pm_id}`));const O=checkIfRequiresPockyt3ds(m.response.headers);if(O){log__$8("├ Pockyt 3DS case detected. Going through Pockyt 3DS flow.");const U=await runPockyt3dsFlow(n.baseUrl,m.response.headers);p.extra_metadata.pockyt=U}if(checkIfRequiresAirwallex3ds(m.response.headers)){log__$8("├ Airwallex 3DS case detected. Going through Airwallex 3DS flow.");const U=await runAirwallex3dsFlow(n.baseUrl,m.response.headers);p.extra_metadata.airwallex=U}if(checkIfRequiresAdyen3ds(m.response.headers)){log__$8("├ Adyen 3DS case detected. Going through Adyen 3DS flow.");const U=await runAdyen3dsFlow(o[FieldName.COUNTRY],m.response.headers,t.locale);p.extra_metadata.adyen=U}const M=await startPaymentFlowForCC(s,p);log__$8("├ Start payment flow result:",M);const b=((f=m.response.headers)==null?void 0:f["op-should-use-new-flow"])!=="true";O?log__$8("├ Pre-start 3DS is successful, other 3DS flows will be skipped."):b?(log__$8("├ Using stripe 3DS flow"),await stripeCC3DSFlow(parseStripe3DSNextActionMetadata(M))):(log__$8("├ Using common 3DS flow"),await commonCC3DSFlow(M,n.baseUrl));const I=M.cc_pm_id;if(t.mode==="setup"){log__$8(`├ Confirming payment flow [cc_pm_id: ${I}]`);const U=await confirmPaymentFlow(s,{secure_token:t.token,existing_cc_pm_id:I});log__$8("├ Confirm payment flow result received Result:",U);const C=parseConfirmPaymentFlowResponse(U);return log__$8(`╰ Setup completed successfully [PM ID: ${C.payment_method_id}]`),{mode:"setup",result:C}}else{log__$8(`├ Checking out after 3DS flow [Flow: ${b?"legacy":"new"}]`);const U=await checkoutCardElements(s,{...p,existing_cc_pm_id:I,do_not_use_legacy_cc_flow:b});return log__$8("╰ Checkout completed successfully."),{mode:"checkout",result:U}}}throw err__$9("╰ Error checking out card info in CDE"),err__$9(m),m}}),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.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.required_user_actions);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");track("common_3ds_completed")},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"),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=t.authorization_amount,l=t.min_authorization_amount;const c=t.allow_customer_to_choose_auth;let _;u?(_=0,e=Math.max(e,l)):(_=(s?s.amountAtom:o.amount_total_atom)*t.token_price,l=Math.max(l,_),e=Math.max(e,l));const d=_,p=v4(),E={paymentUsdAmount:d,suggestedAuthorizationUsdAmount:e,customerRefId:p,minAuthorizationUsdAmount:l,allowCustomerToChooseAuth:c},f={apiKey:r.metadata.api_token,entityId:r.metadata.entity_id,merchantId:r.metadata.merchant_id,environment:r.metadata.environment};return{isAvailable:!0,widgetProps:E,initLoopConnectProps:f}}),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);const s=await getPrefill(n.anyCdeConnection);log__$7(`├ Validating non-CDE form fields [Mode: ${s.mode}]`);const t=validateNonCdeFormFieldsForCC(o,u.get.onValidationError,s.checkout_settings),e=n.anyCdeConnection,l=s.mode!=="setup",c=createCustomerFieldsFromForm(t,s.checkout_settings),_=await startPaymentFlow(n.anyCdeConnection,{checkout_payment_method:r,payment_provider:r.provider,...c,use_pay_first_flow:l,pay_first_flow_cart_info:l?{line_items:s.line_items,displayed_total_amount_atom:s.amount_total_atom}:void 0,customer_language:detectLanguage()});if(!a)throw Error("Checkout failed. Failed to properly submit form data.");const d=await confirmPaymentFlow(e,{secure_token:s.token,their_pm_id:a.success&&a.mode=="checkout"?a.payin.paymentMethod.paymentMethodId:void 0,checkout_attempt_id:l?_.checkout_attempt_id:void 0,processor_specific_metadata:{loop_customer:a.success?a.customer:void 0,loop_payin:a.success&&a.mode=="checkout"?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: ${d}`),s.mode==="setup"){log__$7("Doing payment setup..."),log__$7("├ Confirm payment flow result received Result:",d);const p=parseConfirmPaymentFlowResponse(d);return log__$7(`╰ Setup completed successfully [PM ID: ${p.payment_method_id}]`),{mode:"setup",result:p}}else{if(log__$7("Doing checkout..."),!d.pay_first_success_response)throw err__$8("Checkout failed, no pay-first success response:",d),new Error("Checkout failed, please try again with another payment method.");return{mode:"checkout",result:d.pay_first_success_response}}}),{log__:log__$6,err__:err__$7}=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__$6("Running PayPal flow...");const s=n.anyCdeConnection,t=await getPrefill(s),{isAnonymous:e,useRedirectFlow:l}=a.settings??{};log__$6("Verifying CPM...");const c=PaypalCpm.parse(o);log__$6("├ Validating non-CDE form fields");const _=validateNonCdeFormFieldsForCC(r,u.get.onValidationError,{...e?generateAnonymousValues():void 0,...t.checkout_settings}),d=createCustomerFieldsFromForm(_,t.checkout_settings);log__$6(`Starting payment flow... Mode: ${t.mode}`);const p=v4(),E=t.mode!=="setup",f={payment_provider:c.provider,checkout_payment_method:c,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:l,frontend_token_for_redirect_flow:p},...d},m=new URL("/app/pre-action/start/",n.baseUrl).toString(),g=btoa(JSON.stringify(f)),O=new URLSearchParams({st:t.token,r:g}),v=`${m}?${O.toString()}`;if(l)throw log__$6("Starting redirect mode for PayPal..."),window.location.href=v,await sleep(20*1e3),new Error("Paypal flow timed out, please try again with another payment method.");const A=await startPopupWindowVerificationStrict("PayPal",s,p,v);log__$6("Paypal flow result",A);const M=parseArgFromHref(A.href,"catt"),b=parseArgFromHref(A.href,"approval_session_id"),I=await confirmPaymentFlow(s,{secure_token:t.token,checkout_attempt_id:E?M:void 0,their_pm_id:E?b:void 0});return log__$6("Confirm payment flow result",I),performSimpleCheckoutOrSetup({logPrefix:"paypal",anyCdeConnection:s,checkoutPaymentMethod:c,requiredFormFields:_,confirmResult:I,usePayFirstFlow:E})}catch(s){throw err__$7("PayPal payment error",s),track("checkout_error",{payment_method:"paypal",error:s}),new Error((s==null?void 0:s.message)??"Unknown error")}}),{log__:log__$5,err__:err__$6}=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 I,U;log__$5("Running Pockyt Paypal flow...");const s=n.anyCdeConnection,t=await getPrefill(s);log__$5("Verifying CPM...");const e=PockytPaypalCpm.parse(r);log__$5("├ 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,t.checkout_settings);log__$5(`Starting payment flow... Mode: ${t.mode}`);const d=v4(),p=t.mode!=="setup",E={payment_provider:e.provider,checkout_payment_method:e,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:!!((I=a==null?void 0:a.settings)!=null&&I.useRedirectFlow),frontend_token_for_redirect_flow:d},..._},f=new URL("/app/pre-action/start/",n.baseUrl).toString(),m=btoa(JSON.stringify(E)),g=new URLSearchParams({st:t.token,r:m}),O=`${f}?${g.toString()}`;if((U=a==null?void 0:a.settings)!=null&&U.useRedirectFlow)throw log__$5("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__$5("Starting popup mode for PayPal..."),log__$5("Opening paypal iframe...");const v=await startPopupWindowVerificationStrict("PayPal",s,d,O);log__$5("Paypal flow result",v);const A=parseVaultIdFrom3dsHref(v.href),M=parseArgFromHref(v.href,"catt");if(!M)throw err__$6("Checkout attempt ID not found in redirect URL:",v.href),new Error("Checkout attempt ID not found in redirect URL");log__$5(`Confirming payment flow using vault ID ${A}`);const b=await confirmPaymentFlow(s,{secure_token:t.token,their_pm_id:A,checkout_attempt_id:p?M:void 0});if(log__$5("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__$6("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__$4,err__:err__$5}=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__$4("Checking if there are any CPMs for Stripe Link...");const u=findCpmMatchingType(n.checkoutPaymentMethods,StripeLinkCpm);log__$4("Starting stripe link flow...");const a=n.anyCdeConnection,s=await getPrefill(a),t=s.mode==="setup";log__$4("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__$4("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}`)},p=()=>{_.unmount()};return o!=null&&o.doNotMountOnInit?log__$4("NOT mounting stripe link button (doNotMountOnInit is true)"):(log__$4("Mounting stripe link button..."),d()),_.on("click",async E=>{if(log__$4("Stripe Link button clicked"),o!=null&&o.overrideLinkSubmit&&!await o.overrideLinkSubmit()){log__$4("Stripe Link submit aborted by overrideLinkSubmit");return}E.resolve()}),_.on("confirm",async E=>{log__$4("Stripe Link window confirmed",E);const f=await c.createPaymentMethod({elements:l,params:{billing_details:E.billingDetails}});f.error?(err__$5("error",f.error),r.get.onCheckoutError(f.error.message??"Stripe Link unknown error")):(log__$4("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:p,waitForButtonToMount:async()=>await getElementByIdAsync(OJS_STRIPE_LINK_BTN_ID)}}}),runStripeLinkFlow=addBasicCheckoutCallbackHandlers(async({context:n,checkoutPaymentMethod:r,nonCdeFormInputs:o,formCallbacks:u,customParams:a})=>{log__$4("Running Stripe Link flow...");const s=n.anyCdeConnection,t=await getPrefill(s);log__$4("Merging PM fields with form fields...");const e=fillEmptyFormInputsWithStripePM(o,a.stripePM),l=validateNonCdeFormFieldsForCC(e,u.get.onValidationError);track("billing_details_received",{...l}),log__$4("Starting payment flow...");const c=await startPaymentFlow(s,{payment_provider:r.provider,checkout_payment_method:r,their_existing_pm_id:a.stripePM.id,new_customer_email:l[FieldName.EMAIL],new_customer_first_name:l[FieldName.FIRST_NAME],new_customer_last_name:l[FieldName.LAST_NAME],new_customer_address:generateBillingAddressFromFields(l),new_customer_shipping_address:generateShippingAddressFromFields(l,t.checkout_settings),customer_language:detectLanguage()});log__$4("Start payment flow response",c);const d=StripeLinkRequiredUserActions.parse(c.required_user_actions)[0].our_existing_pm_id;if(t.mode==="setup"){log__$4("Doing payment setup...");const p=await confirmPaymentFlow(s,{secure_token:t.token,existing_cc_pm_id:d});return{mode:"setup",result:parseConfirmPaymentFlowResponse(p)}}else{log__$4("Doing checkout...");const p={secure_token:t.token,payment_input:{provider_type:r.provider},customer_email:l[FieldName.EMAIL],customer_first_name:l[FieldName.FIRST_NAME],customer_last_name:l[FieldName.LAST_NAME],customer_address:{line1:l[FieldName.LINE1],line2:l[FieldName.LINE2],line3:l[FieldName.LINE3],city:l[FieldName.CITY],state:l[FieldName.STATE],country:l[FieldName.COUNTRY],zip_code:l[FieldName.ZIP_CODE]},customer_shipping_address:{line1:l[FieldName.LINE1],line2:l[FieldName.LINE2],line3:l[FieldName.LINE3],city:l[FieldName.CITY],state:l[FieldName.STATE],country:l[FieldName.COUNTRY],zip_code:l[FieldName.ZIP_CODE]},promotion_code:l[FieldName.PROMOTION_CODE],line_items:t.line_items,total_amount_atom:t.amount_total_atom,cancel_at_end:!1,checkout_payment_method:r};return{mode:"checkout",result:await performCheckout(s,p)}}}),fillEmptyFormInputsWithStripePM=(n,r)=>{var l,c,_,d,p;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]||((p=r.billing_details.address)==null?void 0:p.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__$4("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__$3,err__:err__$4}=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__$3("Checking if there are any CPMs for Stripe PR...");const o=findCpmMatchingType(n.checkoutPaymentMethods,StripePrCpm);log__$3("Initializing Stripe PR flow...");const u=n.anyCdeConnection,a=await getPrefill(u),s=a.mode==="setup";log__$3("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__$3("Checking if can make payment");const l=await e.canMakePayment();if(l===null)return err__$4("canMakePayment returned null"),{isAvailable:!1,reason:"canMakePayment returned null"};log__$3("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__$3("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__$3("Overriding PR amount with",f);const m=typeof f.applePayPaymentRequest=="function"?f.applePayPaymentRequest({}):f.applePayPaymentRequest;updatePrWithAmount(e,f.amount,f.pending,m,f.label)}log__$3("Showing PR dialog..."),e.show();const l=await waitForUserToAddPaymentMethod(e);log__$3("Stripe PM added event:",l),log__$3("Merging PM fields with form fields...");const c=fillEmptyFormInputsWithStripePm(o,l),_=validateNonCdeFormFieldsForCC(c,u.get.onValidationError);track("billing_details_received",{..._}),log__$3("PR dialog finished. Starting payment flow...",_);const d=await startPaymentFlowForPR(t,{fields:_,checkoutPaymentMethod:r}),p=parsePRNextActionMetadata(d);log__$3("Confirming PR with Stripe..."),await confirmStripePrPM(p,l);const E=await getPrefill(t);if(E.mode==="setup"){log__$3("Confirming payment flow for setup...");const f=await confirmPaymentFlow(t,{secure_token:E.token});return{mode:"setup",result:parseConfirmPaymentFlowResponse(f)}}else{log__$3("Performing checkout...");const f={secure_token:E.token,payment_input:{provider_type:r.provider},customer_first_name:_[FieldName.FIRST_NAME],customer_last_name:_[FieldName.LAST_NAME],customer_email:_[FieldName.EMAIL],customer_address:generateBillingAddressFromFields(_),customer_shipping_address:generateShippingAddressFromFields(_,E.checkout_settings),promotion_code:_[FieldName.PROMOTION_CODE],line_items:E.line_items,total_amount_atom:E.amount_total_atom,cancel_at_end:!1,checkout_payment_method:r};return{mode:"checkout",result:await performCheckout(t,f)}}}),fillEmptyFormInputsWithStripePm=(n,r)=>{var _,d,p,E;const o={...n},[u,...a]=((d=(_=r.payerName)==null?void 0:_.trim())==null?void 0:d.split(/\s+/))??[],s=a.join(" ")||void 0,t=(E=(p=r.paymentMethod)==null?void 0:p.billing_details)==null?void 0:E.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__$3("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.
76
- Details: got ${n.required_user_actions.length} required user actions`);return PaymentRequestNextActionMetadata.parse(n.required_user_actions[0])},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},adyenGooglePay:{init:initAdyenGooglePayFlow,run:runAdyenGooglePayFlow},adyenApplePay:{init:initAdyenApplePayFlow,run:runAdyenApplePayFlow}},{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),adyenGooglePay:createInitFlowPublisher("Adyen GooglePay",OjsFlows.adyenGooglePay.init),adyenApplePay:createInitFlowPublisher("Adyen ApplePay",OjsFlows.adyenApplePay.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;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}}const getFraudMetadata=()=>{const n=window&&window.screen?window.screen.height:null,r=window&&window.screen?window.screen.width:null,o=window&&window.screen?window.screen.colorDepth:null,u=window&&window.navigator?window.navigator.javaEnabled():!1,a=window&&window.navigator?window.navigator.userAgent:null,s="text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8";let t=null;window&&window.navigator&&(t=window.navigator.language?window.navigator.language:window.navigator.browserLanguage);const e=new Date().getTimezoneOffset();return{color_depth:o,java_enabled:u,javascript_enabled:!0,language:t,screen_height:n,screen_width:r,time_zone_offset:e,user_agent:a,accept_header:s}};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.adyenGooglePay="adyen-google-pay",n.adyenApplePay="adyen-apple-pay",n.loopCrypto="loop-crypto",n.paypal="paypal",n))(SubmitMethods||{});const SubmitMethod=z.nativeEnum(SubmitMethods),convertStylesToQueryString=n=>JSON.stringify(n),{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}=_,p=await Promise.resolve().then(()=>index$7),{Resource:E}=p,f=await Promise.resolve().then(()=>detectResources$1),{detectResourcesSync:m}=f,g=await Promise.resolve().then(()=>index$1),{OTLPTraceExporter:O}=g,v=await Promise.resolve().then(()=>index),{B3Propagator:A,B3InjectEncoding:M}=v,b=await Promise.resolve().then(()=>index$6),{BatchSpanProcessor:I}=b;log__$1(`Initializing tracer with version ${n} and baseUrl ${r}`);const U=getCollectorUrl(r);log__$1(`Using collector URL ${U}`);const C=new O({url:U}),Y={"service.version":n,"service.name":"ojs"};return new s({resource:new E(Y).merge(m()),spanProcessors:[new a(new u),new I(C,{scheduledDelayMillis:500})]}).register({contextManager:new c,propagator:new A({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"};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,adyenGooglePay:SubmitMethods.adyenGooglePay,adyenApplePay:SubmitMethods.adyenApplePay},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});case SubmitMethods.adyenGooglePay:{const c=this.initFlows.adyenGooglePay.publisher.getValueIfLoadedElse(null);if(!c){err__("adyen-google-pay is not available. Please check the availability using 'getAvailablePaymentMethods()'");return}return c.startFlow(t)}case SubmitMethods.adyenApplePay:{const c=this.initFlows.adyenApplePay.publisher.getValueIfLoadedElse(null);if(!c){err__("adyen-apple-pay is not available. Please check the availability using 'getAvailablePaymentMethods()'");return}return c.startFlow(t)}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.4.0",this.ojsReleaseVersion="0.4.0-alpha.9dd923d",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"),console.log("OJS VERSION",this.ojsVersion),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=`
76
+ Details: got ${n.required_user_actions.length} required user actions`);return PaymentRequestNextActionMetadata.parse(n.required_user_actions[0])},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},adyenGooglePay:{init:initAdyenGooglePayFlow,run:runAdyenGooglePayFlow},adyenApplePay:{init:initAdyenApplePayFlow,run:runAdyenApplePayFlow}},{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),adyenGooglePay:createInitFlowPublisher("Adyen GooglePay",OjsFlows.adyenGooglePay.init),adyenApplePay:createInitFlowPublisher("Adyen ApplePay",OjsFlows.adyenApplePay.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;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}}const getFraudMetadata=()=>{const n=window&&window.screen?window.screen.height:null,r=window&&window.screen?window.screen.width:null,o=window&&window.screen?window.screen.colorDepth:null,u=window&&window.navigator?window.navigator.javaEnabled():!1,a=window&&window.navigator?window.navigator.userAgent:null,s="text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8";let t=null;window&&window.navigator&&(t=window.navigator.language?window.navigator.language:window.navigator.browserLanguage);const e=new Date().getTimezoneOffset();return{color_depth:o,java_enabled:u,javascript_enabled:!0,language:t,screen_height:n,screen_width:r,time_zone_offset:e,user_agent:a,accept_header:s}};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.adyenGooglePay="adyen-google-pay",n.adyenApplePay="adyen-apple-pay",n.loopCrypto="loop-crypto",n.paypal="paypal",n))(SubmitMethods||{});const SubmitMethod=z.nativeEnum(SubmitMethods),convertStylesToQueryString=n=>JSON.stringify(n),{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}=_,p=await Promise.resolve().then(()=>index$7),{Resource:E}=p,f=await Promise.resolve().then(()=>detectResources$1),{detectResourcesSync:m}=f,g=await Promise.resolve().then(()=>index$1),{OTLPTraceExporter:O}=g,v=await Promise.resolve().then(()=>index),{B3Propagator:A,B3InjectEncoding:M}=v,b=await Promise.resolve().then(()=>index$6),{BatchSpanProcessor:I}=b;log__$1(`Initializing tracer with version ${n} and baseUrl ${r}`);const U=getCollectorUrl(r);log__$1(`Using collector URL ${U}`);const C=new O({url:U}),Y={"service.version":n,"service.name":"ojs"};return new s({resource:new E(Y).merge(m()),spanProcessors:[new a(new u),new I(C,{scheduledDelayMillis:500})]}).register({contextManager:new c,propagator:new A({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"};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,adyenGooglePay:SubmitMethods.adyenGooglePay,adyenApplePay:SubmitMethods.adyenApplePay},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});case SubmitMethods.adyenGooglePay:{const c=this.initFlows.adyenGooglePay.publisher.getValueIfLoadedElse(null);if(!c){err__("adyen-google-pay is not available. Please check the availability using 'getAvailablePaymentMethods()'");return}return c.startFlow(t)}case SubmitMethods.adyenApplePay:{const c=this.initFlows.adyenApplePay.publisher.getValueIfLoadedElse(null);if(!c){err__("adyen-apple-pay is not available. Please check the availability using 'getAvailablePaymentMethods()'");return}return c.startFlow(t)}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.4.0",this.ojsReleaseVersion="0.4.0-alpha.b969cf5",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"),console.log("OJS VERSION",this.ojsVersion),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=`
77
77
  [Warning] Invalid form instance detected.
78
78
  It looks like you are still using an old instance that has been destroyed.
79
79
  Please make sure you are using the latest instance of the form and cleanup event listeners.