1import{L as y}from"../formie.js";var _={940:"Invalid profile ID (tokenization request).",941:"Error generating token.",942:"Invalid Profile ID or source URL.",943:"Card data is invalid.",944:"Invalid expiration date.",945:"Invalid CVD."},M=o=>{let s=e=>{let r=String(e.dataKey??e.data_key??"").trim(),n=String(e.responseCode??e.response_code??"").trim(),a=String(e.responseMessage??e.response_message??"").trim(),i=String(e.error??e.errorMessage??e.message??"").trim();if(r)return{token:r,error:""};if(n&&n!=="001"){let u=_[n]||`Moneris response code ${n}.`;return{token:"",error:a||u}}return{token:"",error:i}};if(o&&typeof o=="object")return s(o);if(typeof o!="string")return{token:"",error:""};let t=o.trim();if(!t)return{token:"",error:""};try{let e=JSON.parse(t);if(e&&typeof e=="object")return s(e)}catch{}if(t.includes("=")){let e=new URLSearchParams(t),r=(e.get("dataKey")||e.get("data_key")||"").trim(),n=(e.get("responseCode")||e.get("response_code")||"").trim(),a=(e.get("responseMessage")||e.get("response_message")||"").trim(),i=(e.get("error")||e.get("message")||"").trim();if(r)return{token:r,error:""};if(n&&n!=="001"){let u=_[n]||`Moneris response code ${n}.`;return{token:"",error:a||u}}return{token:"",error:i}}return/^[A-Za-z0-9._-]{8,}$/.test(t)?{token:t,error:""}:{token:"",error:""}},w=y({id:"moneris",defaultRequiredInputSuffixes:["monerisTokenId"],load:async()=>null,onBeforeAuthorize:async o=>{let{field:s,services:t,options:e}=o,r=s,n=(e.provider.endpointUrl||"").trim(),a=s.querySelector("[data-formie-moneris-frame]"),i="";try{i=new URL(n,window.location.origin).origin}catch{i=""}if(!a?.contentWindow||!i)return t.addError("Moneris frame or endpoint is missing."),!1;r.__formieMonerisAuthorizeCleanup?.();let u=(r.__formieMonerisAuthorizeRequestId||0)+1;return r.__formieMonerisAuthorizeRequestId=u,new Promise(f=>{let d=!1,p="",g=0,l=()=>{window.removeEventListener("message",c),window.clearTimeout(g),r.__formieMonerisAuthorizeCleanup===l&&(r.__formieMonerisAuthorizeCleanup=null)},c=k=>{if(d||u!==r.__formieMonerisAuthorizeRequestId||k.origin!==i)return;let m=M(k.data);m.token?(d=!0,l(),t.updateInputs("monerisTokenId",m.token),f(!0)):m.error&&(p=m.error)};r.__formieMonerisAuthorizeCleanup=l,g=window.setTimeout(()=>{d||(d=!0,l(),t.addError(p||"Moneris tokenization timed out. Please try again."),f(!1))},1e4),window.addEventListener("message",c);try{a.contentWindow?.postMessage("tokenize",i)}catch{d=!0,l(),t.addError("Moneris tokenization could not be started."),f(!1)}})},setup:async o=>{let{services:s}=o,t=s.events.onRoot("message",e=>{if(!e.origin.includes("moneris"))return;let r=M(e.data);r.token&&s.updateInputs("monerisTokenId",r.token)});return{destroy:()=>{t();let e=o.target;e.__formieMonerisAuthorizeCleanup?.(),e.__formieMonerisAuthorizeCleanup=null}}},onAfterSubmit:async({services:o})=>{o.updateInputs("monerisTokenId","")}});export{w as monerisModule};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.