paytools-3ds
Version:
3D secure implementation with a single line of code
2 lines • 24.1 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("threeDs",[],t):"object"==typeof exports?exports.threeDs=t():e.threeDs=t()}(self,(()=>(()=>{var e={612:(e,t,r)=>{!function(){"use strict";e.exports={inflate:r(967),deflate:r(931)}}()},931:e=>{!function(){var t,r,n,s,o,i,a,l,c,u,f,d,h,g,m,p,v,w,y,b,C,_,x,P,S,T,M,R,k,F,D,E,U,N,A,q,O,B,H,j,W,I,J,$,X,L,z,G,Y,Q,V,Z,K,ee,te,re,ne=32768,se=258,oe=32768,ie=32767,ae=262,le=32506,ce=15,ue=256,fe=286,de=30,he=parseInt(17/3,10),ge=null;function me(){this.fc=0,this.dl=0}function pe(){this.dyn_tree=null,this.static_tree=null,this.extra_bits=null,this.extra_base=0,this.elems=0,this.max_length=0,this.max_code=0}function ve(e,t,r,n){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n}function we(){this.next=null,this.len=0,this.ptr=[],this.off=0}var ye=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],be=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Ce=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],_e=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],xe=[new ve(0,0,0,0),new ve(4,4,8,4),new ve(4,5,16,8),new ve(4,6,32,32),new ve(4,4,16,16),new ve(8,16,32,32),new ve(8,16,128,128),new ve(8,32,128,256),new ve(32,128,258,1024),new ve(32,258,258,4096)];function Pe(e){e.next=t,t=e}function Se(e){return f[ne+e]}function Te(e,t){return f[ne+e]=t}function Me(e){ge[i+o++]=e,i+o===8192&&function(){var e,s;if(0!==o){for(null!==t?(a=t,t=t.next):a=new we,a.next=null,a.len=a.off=0,e=a,null===r?r=n=e:n=n.next=e,e.len=o-i,s=0;s<e.len;s++)e.ptr[s]=ge[i+s];o=i=0}var a}()}function Re(e){e&=65535,i+o<8190?(ge[i+o++]=255&e,ge[i+o++]=e>>>8):(Me(255&e),Me(e>>>8))}function ke(){m=(m<<he^255&l[C+3-1])&ie,p=Se(m),f[32767&C]=p,Te(m,C)}function Fe(e,t){Ye(t[e].fc,t[e].dl)}function De(e){return 255&(e<256?$[e]:$[256+(e>>7)])}function Ee(e,t,r){return e[t].fc<e[r].fc||e[t].fc===e[r].fc&&I[t]<=I[r]}function Ue(e,t,r){var n;for(n=0;n<r&&re<te.length;n++)e[t+n]=255&te[re++];return n}function Ne(e){var t,r,n,s,o=S,i=C,a=b,c=C>le?C-le:0,u=C+se,d=l[i+a-1],h=l[i+a];b>=R&&(o>>=2);do{if(l[(t=e)+a]===h&&l[t+a-1]===d&&l[t]===l[i]&&l[++t]===l[i+1]){for(i+=2,t++;i<u;){for(s=!1,n=0;n<8;n+=1)if(t+=1,l[i+=1]!==l[t]){s=!0;break}if(s)break}if(r=se-(u-i),i=u-se,r>a){if(_=e,a=r,r>=k)break;d=l[i+a-1],h=l[i+a]}}}while((e=f[32767&e])>c&&0!=--o);return a}function Ae(){var e,t,r=65536-P-C;if(-1===r)r--;else if(C>=65274){for(e=0;e<ne;e++)l[e]=l[e+ne];for(_-=ne,C-=ne,g-=ne,e=0;e<oe;e++)Te(e,(t=Se(e))>=ne?t-ne:0);for(e=0;e<ne;e++)t=f[e],f[e]=t>=ne?t-ne:0;r+=ne}x||((e=Ue(l,C+P,r))<=0?x=!0:P+=e)}function qe(){x||(d=0,h=0,function(){var e,t,r,n,s;if(0!==U[0].dl)return;for(A.dyn_tree=F,A.static_tree=E,A.extra_bits=ye,A.extra_base=257,A.elems=fe,A.max_length=ce,A.max_code=0,q.dyn_tree=D,q.static_tree=U,q.extra_bits=be,q.extra_base=0,q.elems=de,q.max_length=ce,q.max_code=0,O.dyn_tree=N,O.static_tree=null,O.extra_bits=Ce,O.extra_base=0,O.elems=19,O.max_length=7,O.max_code=0,r=0,n=0;n<28;n++)for(X[n]=r,e=0;e<1<<ye[n];e++)J[r++]=n;for(J[r-1]=n,s=0,n=0;n<16;n++)for(L[n]=s,e=0;e<1<<be[n];e++)$[s++]=n;for(s>>=7;n<de;n++)for(L[n]=s<<7,e=0;e<1<<be[n]-7;e++)$[256+s++]=n;for(t=0;t<=ce;t++)B[t]=0;e=0;for(;e<=143;)E[e++].dl=8,B[8]++;for(;e<=255;)E[e++].dl=9,B[9]++;for(;e<=279;)E[e++].dl=7,B[7]++;for(;e<=287;)E[e++].dl=8,B[8]++;for(We(E,287),e=0;e<de;e++)U[e].dl=5,U[e].fc=Qe(e,5);He()}(),function(){var e;for(e=0;e<oe;e++)f[ne+e]=0;if(T=xe[M].max_lazy,R=xe[M].good_length,k=xe[M].nice_length,S=xe[M].max_chain,C=0,g=0,(P=Ue(l,0,65536))<=0)return x=!0,void(P=0);for(x=!1;P<ae&&!x;)Ae();for(m=0,e=0;e<2;e++)m=(m<<he^255&l[e])&ie}(),r=null,o=0,i=0,M<=3?(b=2,y=0):(y=2,w=!1),a=!1)}function Oe(e,t,n){var o;return s||(qe(),s=!0,0!==P)?(o=Be(e,t,n))===n?n:a?o:(M<=3?function(){for(;0!==P&&null===r;){var e;if(ke(),0!==p&&C-p<=le&&(y=Ne(p))>P&&(y=P),y>=3)if(e=Le(C-_,y-3),P-=y,y<=T){y--;do{C++,ke()}while(0!=--y);C++}else C+=y,y=0,m=((m=255&l[C])<<he^255&l[C+1])&ie;else e=Le(0,255&l[C]),P--,C++;for(e&&(Xe(0),g=C);P<ae&&!x;)Ae()}}():function(){for(;0!==P&&null===r;){if(ke(),b=y,v=_,y=2,0!==p&&b<T&&C-p<=le&&((y=Ne(p))>P&&(y=P),3===y&&C-_>4096&&y--),b>=3&&y<=b){var e;e=Le(C-1-v,b-3),P-=b-1,b-=2;do{C++,ke()}while(0!=--b);w=!1,y=2,C++,e&&(Xe(0),g=C)}else w?(Le(0,255&l[C-1])&&(Xe(0),g=C),C++,P--):(w=!0,C++,P--);for(;P<ae&&!x;)Ae()}}(),0===P&&(w&&Le(0,255&l[C-1]),Xe(1),a=!0),o+Be(e,o+t,n-o)):(a=!0,0)}function Be(e,t,n){var s,a,l;for(s=0;null!==r&&s<n;){for((a=n-s)>r.len&&(a=r.len),l=0;l<a;l++)e[t+s+l]=r.ptr[r.off+l];var c;if(r.off+=a,r.len-=a,s+=a,0===r.len)c=r,r=r.next,Pe(c)}if(s===n)return s;if(i<o){for((a=n-s)>o-i&&(a=o-i),l=0;l<a;l++)e[t+s+l]=ge[i+l];s+=a,o===(i+=a)&&(o=i=0)}return s}function He(){var e;for(e=0;e<fe;e++)F[e].fc=0;for(e=0;e<de;e++)D[e].fc=0;for(e=0;e<19;e++)N[e].fc=0;F[256].fc=1,K=ee=0,G=Y=Q=0,V=0,Z=1}function je(e,t){for(var r=H[t],n=t<<1;n<=j&&(n<j&&Ee(e,H[n+1],H[n])&&n++,!Ee(e,r,H[n]));)H[t]=H[n],t=n,n<<=1;H[t]=r}function We(e,t){var r,n,s=[],o=0;for(r=1;r<=ce;r++)o=o+B[r-1]<<1,s[r]=o;for(n=0;n<=t;n++){var i=e[n].dl;0!==i&&(e[n].fc=Qe(s[i]++,i))}}function Ie(e){var t,r,n=e.dyn_tree,s=e.static_tree,o=e.elems,i=-1,a=o;for(j=0,W=573,t=0;t<o;t++)0!==n[t].fc?(H[++j]=i=t,I[t]=0):n[t].dl=0;for(;j<2;){var l=H[++j]=i<2?++i:0;n[l].fc=1,I[l]=0,K--,null!==s&&(ee-=s[l].dl)}for(e.max_code=i,t=j>>1;t>=1;t--)je(n,t);do{t=H[1],H[1]=H[j--],je(n,1),r=H[1],H[--W]=t,H[--W]=r,n[a].fc=n[t].fc+n[r].fc,I[t]>I[r]+1?I[a]=I[t]:I[a]=I[r]+1,n[t].dl=n[r].dl=a,H[1]=a++,je(n,1)}while(j>=2);H[--W]=H[1],function(e){var t,r,n,s,o,i,a=e.dyn_tree,l=e.extra_bits,c=e.extra_base,u=e.max_code,f=e.max_length,d=e.static_tree,h=0;for(s=0;s<=ce;s++)B[s]=0;for(a[H[W]].dl=0,t=W+1;t<573;t++)(s=a[a[r=H[t]].dl].dl+1)>f&&(s=f,h++),a[r].dl=s,r>u||(B[s]++,o=0,r>=c&&(o=l[r-c]),i=a[r].fc,K+=i*(s+o),null!==d&&(ee+=i*(d[r].dl+o)));if(0!==h){do{for(s=f-1;0===B[s];)s--;B[s]--,B[s+1]+=2,B[f]--,h-=2}while(h>0);for(s=f;0!==s;s--)for(r=B[s];0!==r;)(n=H[--t])>u||(a[n].dl!==s&&(K+=(s-a[n].dl)*a[n].fc,a[n].fc=s),r--)}}(e),We(n,i)}function Je(e,t){var r,n,s=-1,o=e[0].dl,i=0,a=7,l=4;for(0===o&&(a=138,l=3),e[t+1].dl=65535,r=0;r<=t;r++)n=o,o=e[r+1].dl,++i<a&&n===o||(i<l?N[n].fc+=i:0!==n?(n!==s&&N[n].fc++,N[16].fc++):i<=10?N[17].fc++:N[18].fc++,i=0,s=n,0===o?(a=138,l=3):n===o?(a=6,l=3):(a=7,l=4))}function $e(e,t){var r,n,s=-1,o=e[0].dl,i=0,a=7,l=4;for(0===o&&(a=138,l=3),r=0;r<=t;r++)if(n=o,o=e[r+1].dl,!(++i<a&&n===o)){if(i<l)do{Fe(n,N)}while(0!=--i);else 0!==n?(n!==s&&(Fe(n,N),i--),Fe(16,N),Ye(i-3,2)):i<=10?(Fe(17,N),Ye(i-3,3)):(Fe(18,N),Ye(i-11,7));i=0,s=n,0===o?(a=138,l=3):n===o?(a=6,l=3):(a=7,l=4)}}function Xe(e){var t,r,n,s,o;if(s=C-g,z[Q]=V,Ie(A),Ie(q),n=function(){var e;for(Je(F,A.max_code),Je(D,q.max_code),Ie(O),e=18;e>=3&&0===N[_e[e]].dl;e--);return K+=3*(e+1)+5+5+4,e}(),(r=ee+3+7>>3)<=(t=K+3+7>>3)&&(t=r),s+4<=t&&g>=0)for(Ye(0+e,3),Ve(),Re(s),Re(~s),o=0;o<s;o++)Me(l[g+o]);else r===t?(Ye(2+e,3),ze(E,U)):(Ye(4+e,3),function(e,t,r){var n;for(Ye(e-257,5),Ye(t-1,5),Ye(r-4,4),n=0;n<r;n++)Ye(N[_e[n]].dl,3);$e(F,e-1),$e(D,t-1)}(A.max_code+1,q.max_code+1,n+1),ze(F,D));He(),0!==e&&Ve()}function Le(e,t){if(u[G++]=t,0===e?F[t].fc++:(e--,F[J[t]+ue+1].fc++,D[De(e)].fc++,c[Y++]=e,V|=Z),Z<<=1,7&G||(z[Q++]=V,V=0,Z=1),M>2&&!(4095&G)){var r,n=8*G,s=C-g;for(r=0;r<de;r++)n+=D[r].fc*(5+be[r]);if(n>>=3,Y<parseInt(G/2,10)&&n<parseInt(s/2,10))return!0}return 8191===G||8192===Y}function ze(e,t){var r,n,s,o,i=0,a=0,l=0,f=0;if(0!==G)do{7&i||(f=z[l++]),n=255&u[i++],1&f?(Fe((s=J[n])+ue+1,e),0!==(o=ye[s])&&Ye(n-=X[s],o),Fe(s=De(r=c[a++]),t),0!==(o=be[s])&&Ye(r-=L[s],o)):Fe(n,e),f>>=1}while(i<G);Fe(256,e)}var Ge=16;function Ye(e,t){h>Ge-t?(Re(d|=e<<h),d=e>>Ge-h,h+=t-Ge):(d|=e<<h,h+=t)}function Qe(e,t){var r=0;do{r|=1&e,e>>=1,r<<=1}while(--t>0);return r>>1}function Ve(){h>8?Re(d):h>0&&Me(d),d=0,h=0}e.exports=function(e,o){var i,a;te=e,re=0,void 0===o&&(o=6),function(e){var o;if(e?e<1?e=1:e>9&&(e=9):e=6,M=e,s=!1,x=!1,null===ge){for(t=r=n=null,ge=[],l=[],c=[],u=[],f=[],F=[],o=0;o<573;o++)F[o]=new me;for(D=[],o=0;o<61;o++)D[o]=new me;for(E=[],o=0;o<288;o++)E[o]=new me;for(U=[],o=0;o<de;o++)U[o]=new me;for(N=[],o=0;o<39;o++)N[o]=new me;A=new pe,q=new pe,O=new pe,B=[],H=[],I=[],J=[],$=[],X=[],L=[],z=[]}}(o),a=[];do{i=Oe(a,a.length,1024)}while(i>0);return te=null,a},e.exports.DEFAULT_LEVEL=6}()},967:e=>{!function(){var t,r,n,s,o,i,a,l,c,u,f,d,h,g,m,p,v,w=null,y=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],b=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],C=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,99,99],_=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],x=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],P=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function S(){this.next=null,this.list=null}function T(){this.e=0,this.b=0,this.n=0,this.t=null}function M(e,t,r,n,s,o){var i;this.BMAX=16,this.N_MAX=288,this.status=0,this.root=null,this.m=0;var a,l,c,u,f,d,h,g,m,p,v,w,y,b,C,_,x=[],P=[],M=new T,R=[],k=[],F=[];for(_=this.root=null,f=0;f<this.BMAX+1;f++)x[f]=0;for(f=0;f<this.BMAX+1;f++)P[f]=0;for(f=0;f<this.BMAX;f++)R[f]=null;for(f=0;f<this.N_MAX;f++)k[f]=0;for(f=0;f<this.BMAX+1;f++)F[f]=0;a=t>256?e[256]:this.BMAX,g=e,m=0,f=t;do{x[g[m]]++,m++}while(--f>0);if(x[0]===t)return this.root=null,this.m=0,void(this.status=0);for(d=1;d<=this.BMAX&&0===x[d];d++);for(h=d,o<d&&(o=d),f=this.BMAX;0!==f&&0===x[f];f--);for(c=f,o>f&&(o=f),y=1<<d;d<f;d++,y<<=1)if((y-=x[d])<0)return this.status=2,void(this.m=o);if((y-=x[f])<0)return this.status=2,void(this.m=o);for(x[f]+=y,F[1]=d=0,g=x,m=1,w=2;--f>0;)F[w++]=d+=g[m++];g=e,m=0,f=0;do{0!==(d=g[m++])&&(k[F[d]++]=f)}while(++f<t);for(t=F[c],F[0]=f=0,g=k,m=0,u=-1,v=P[0]=0,p=null,b=0;h<=c;h++)for(i=x[h];i-- >0;){for(;h>v+P[1+u];){if(v+=P[1+u],u++,b=(b=c-v)>o?o:b,(l=1<<(d=h-v))>i+1)for(l-=i+1,w=h;++d<b&&!((l<<=1)<=x[++w]);)l-=x[w];for(v+d>a&&v<a&&(d=a-v),b=1<<d,P[1+u]=d,p=[],C=0;C<b;C++)p[C]=new T;(_=_?_.next=new S:this.root=new S).next=null,_.list=p,R[u]=p,u>0&&(F[u]=f,M.b=P[u],M.e=16+d,M.t=p,d=(f&(1<<v)-1)>>v-P[u],R[u-1][d].e=M.e,R[u-1][d].b=M.b,R[u-1][d].n=M.n,R[u-1][d].t=M.t)}for(M.b=h-v,m>=t?M.e=99:g[m]<r?(M.e=g[m]<256?16:15,M.n=g[m++]):(M.e=s[g[m]-r],M.n=n[g[m++]-r]),l=1<<h-v,d=f>>v;d<b;d+=l)p[d].e=M.e,p[d].b=M.b,p[d].n=M.n,p[d].t=M.t;for(d=1<<h-1;f&d;d>>=1)f^=d;for(f^=d;(f&(1<<v)-1)!==F[u];)v-=P[u],u--}this.m=P[1],this.status=0!==y&&1!==c?1:0}function R(e){for(;a<e;)i|=(p.length===v?-1:255&p[v++])<<a,a+=8}function k(e){return i&y[e]}function F(e){i>>=e,a-=e}function D(e,n,s){var o,i,a;if(0===s)return 0;for(a=0;;){for(R(g),o=(i=d.list[k(g)]).e;o>16;){if(99===o)return-1;F(i.b),R(o-=16),o=(i=i.t[k(o)]).e}if(F(i.b),16!==o){if(15===o)break;for(R(o),u=i.n+k(o),F(o),R(m),o=(i=h.list[k(m)]).e;o>16;){if(99===o)return-1;F(i.b),R(o-=16),o=(i=i.t[k(o)]).e}for(F(i.b),R(o),f=r-i.n-k(o),F(o);u>0&&a<s;)u--,f&=32767,r&=32767,e[n+a++]=t[r++]=t[f++];if(a===s)return s}else if(r&=32767,e[n+a++]=t[r++]=i.n,a===s)return s}return l=-1,a}function E(e,n,s){var o;if(F(o=7&a),R(16),o=k(16),F(16),R(16),o!==(65535&~i))return-1;for(F(16),u=o,o=0;u>0&&o<s;)u--,r&=32767,R(8),e[n+o++]=t[r++]=k(8),F(8);return 0===u&&(l=-1),o}function U(e,t,r){if(!w){var i,a,l=[];for(i=0;i<144;i++)l[i]=8;for(;i<256;i++)l[i]=9;for(;i<280;i++)l[i]=7;for(;i<288;i++)l[i]=8;if(0!==(a=new M(l,288,257,b,C,s=7)).status)return console.error("HufBuild error: "+a.status),-1;for(w=a.root,s=a.m,i=0;i<30;i++)l[i]=5;if((a=new M(l,30,0,_,x,o=5)).status>1)return w=null,console.error("HufBuild error: "+a.status),-1;n=a.root,o=a.m}return d=w,h=n,g=s,m=o,D(e,t,r)}function N(e,t,r){var n,s,o,i,a,l,c,u,f,p=[];for(n=0;n<316;n++)p[n]=0;if(R(5),c=257+k(5),F(5),R(5),u=1+k(5),F(5),R(4),l=4+k(4),F(4),c>286||u>30)return-1;for(s=0;s<l;s++)R(3),p[P[s]]=k(3),F(3);for(;s<19;s++)p[P[s]]=0;if(0!==(f=new M(p,19,19,null,null,g=7)).status)return-1;for(d=f.root,g=f.m,i=c+u,n=o=0;n<i;)if(R(g),F(s=(a=d.list[k(g)]).b),(s=a.n)<16)p[n++]=o=s;else if(16===s){if(R(2),s=3+k(2),F(2),n+s>i)return-1;for(;s-- >0;)p[n++]=o}else if(17===s){if(R(3),s=3+k(3),F(3),n+s>i)return-1;for(;s-- >0;)p[n++]=0;o=0}else{if(R(7),s=11+k(7),F(7),n+s>i)return-1;for(;s-- >0;)p[n++]=0;o=0}if(f=new M(p,c,257,b,C,g=9),0===g&&(f.status=1),0!==f.status&&1!==f.status)return-1;for(d=f.root,g=f.m,n=0;n<u;n++)p[n]=p[n+c];return f=new M(p,u,0,_,x,m=6),h=f.root,0===(m=f.m)&&c>257||0!==f.status?-1:D(e,t,r)}function A(e,n,s){var o,i;for(o=0;o<s;){if(c&&-1===l)return o;if(u>0){if(0!==l)for(;u>0&&o<s;)u--,f&=32767,r&=32767,e[n+o++]=t[r++]=t[f++];else{for(;u>0&&o<s;)u--,r&=32767,R(8),e[n+o++]=t[r++]=k(8),F(8);0===u&&(l=-1)}if(o===s)return o}if(-1===l){if(c)break;R(1),0!==k(1)&&(c=!0),F(1),R(2),l=k(2),F(2),d=null,u=0}switch(l){case 0:i=E(e,n+o,s-o);break;case 1:i=d?D(e,n+o,s-o):U(e,n+o,s-o);break;case 2:i=d?D(e,n+o,s-o):N(e,n+o,s-o);break;default:i=-1}if(-1===i)return c?0:-1;o+=i}return o}e.exports=function(e){var n,s=[];t||(t=[]),r=0,i=0,a=0,l=-1,c=!1,u=f=0,d=null,p=e,v=0;do{n=A(s,s.length,1024)}while(n>0);return p=null,s}}()}},t={};function r(n){var s=t[n];if(void 0!==s)return s.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function e(e){return t(s(e).map((e=>e.charCodeAt(0))))}function t(e){return decodeURIComponent(e.map((function(e){return"%"+("00"+e.toString(16)).slice(-2)})).join(""))}function s(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");return window.atob(t).split("")}r.r(n),r.d(n,{CardData:()=>CardData,ClientAuthenticatedMessage:()=>ClientAuthenticatedMessage,ClientChallengeRequiredMessage:()=>ClientChallengeRequiredMessage,ClientFingerPrintRequiredMessage:()=>ClientFingerPrintRequiredMessage,ClientMessage:()=>ClientMessage,ClientTechnicalProblemDetectedMessage:()=>ClientTechnicalProblemDetectedMessage,Engine:()=>Engine});var o=r(612);function i(r){const n=r.split(".");if(3!==n.length)return;const i=e(n[0]),a=JSON.parse(i);var l=e(n[1]);if("Def"===a?.cmp){var c=JSON.parse(l),u=s(c).map((e=>e.charCodeAt(0)));l=t(o.inflate(u))}return JSON.parse(l)}class CardData{cardType;cardNumber;expirationYear;expirationMonth;cardHolderName;securityCode;issueNumber;ownerId;customerEmail;customerPhone}class ClientMessage{messageType;providerName}class ClientAuthenticatedMessage extends ClientMessage{threeDS}class ClientFingerPrintRequiredMessage extends ClientMessage{fingerPrintUri;fingerPrintData}class ClientChallengeRequiredMessage extends ClientMessage{ascUri;accessToken}class ClientTechnicalProblemDetectedMessage extends ClientMessage{reason;reference}async function a(e,t=void 0,r=void 0,n=""){if(!e){const e="iFrameElement not accessible";return console.error(e),Promise.reject(e)}if(t){const s=e.contentWindow?.document;if(!s){const e="Cannot access contentWindow?.document";return console.error(e),Promise.reject(e)}const o=s.createElement("form");if(s.body.appendChild(o),o.action=t,o.method="post",r){const e=s.createElement("input");e.type="hidden",e.name=r,e.value=n,o.appendChild(e),o.submit()}return Promise.resolve()}}class ProviderBase{getFingerpringResultsUrl;getChallengeResultsUrl;sessionToken;async performFingerPrint(e){console.log("Creating a fingerprint iFrame");const t=document.createElement("iframe");return t.style.display="none",t.style.width="10",t.style.height="10",document.body.appendChild(t),await this.startFingerPrint(t,e),this.getFingerPrintResults()}async getStatusResult(e){return new Promise(((t,r)=>{const n=new XMLHttpRequest;n.onload=()=>{if(n.status<300){const e=JSON.parse(n.responseText);console.log("Received message: "+e.messageType),t(e)}else r(`Get status error: ${n.responseText}`)},n.ontimeout=()=>{r("Http get request timed out from get Challenge status request")},n.open("GET",e,!0),n.timeout=2e4,n.setRequestHeader("Authorization","Bearer "+this.sessionToken),n.send()}))}}class CyberSource extends ProviderBase{async startFingerPrint(e,t){const r=this.getCyberSourceJwt(t);return a(e,t.fingerPrintUri,"JWT",r)}getCyberSourceJwt(e){const t=e.fingerPrintData?.split("|");return t?.length>1?t[1]:""}async getFingerPrintResults(){return new Promise((e=>{window.onmessage=t=>{"https://centinelapistag.cardinalcommerce.com"===t.origin&&(console.log(t.data),e(this.getStatusResult(this.getFingerpringResultsUrl)))}}))}async performChallenge(e,t,r){return new Promise(((n,s)=>{a(e,t,"JWT",r),e.onload=()=>{try{try{const r=e?.contentWindow?.location.href;if(!r)return;console.log("iframe is now at URL:",r);const s=this.getQueryStringParamsFromUrl(r);var t=s?.get("cm");if(!t)throw new Error("Cannot parse parameter cm");const o=JSON.parse(t);n(o)}catch(e){return void console.log(e)}}catch(e){const t={messageType:"TechnicalProblem",reason:JSON.stringify(e),providerName:"CyberSource",reference:""};return n(t),void console.warn(e)}}}))}getQueryStringParamsFromUrl(e){try{return new URL(e).searchParams}catch(e){return void console.error("Invalid URL:",e)}}}class Shift4 extends ProviderBase{async startFingerPrint(e,t){return a(e,t.fingerPrintUri,"threeDSMethodData",t.fingerPrintData)}async getFingerPrintResults(){return this.pollResults(this.getFingerpringResultsUrl,60)}async performChallenge(e,t){return e.setAttribute("src",t),this.pollResults(this.getChallengeResultsUrl,300)}async pollResults(e,t){return new Promise((async(r,n)=>{const s=async e=>new Promise((t=>{setTimeout((async()=>{t(this.getStatusResult(e))}),2e3)})),o=new Date;for(;;){if(Math.abs((new Date).getTime()-o.getTime())>1e3*t){const e="Overall timeout";console.warn(e),n(e);break}const i=await s(e);if("NoResponse"!==i.messageType)return void r(i)}}))}}class Engine{_oldModelStyle=!0;createSessionUrl;getChallengeResultsUrl;getFingerpringResultsUrl;sessionToken;iFrame;_provider;_options;resolver;_supportedCardBrands;constructor(e="https://api.epaytools.com",t=void 0){this.createSessionUrl=`${e}/threeDsSessions/init`,this.getChallengeResultsUrl=`${e}/threeDsSessions/challengeStatus`,this.getFingerpringResultsUrl=`${e}/threeDsSessions/fingerPrintStatus?isNotified=false`,this._options=t}async perform3ds(e,t,r,n=void 0){if(!t||!e){const e="iFrameElementId or sessionToken are empty; quitting";return console.error(e),Promise.reject(e)}if(!r&&!n){const e="Both cardData and cardToken are empty; quitting";return console.error(e),Promise.reject(e)}if(!this.parseSessionToken(e)){const e="Token could not be parsed; quitting";return console.error(e),Promise.reject(e)}if(console.log("token parsed successfully"),r&&(!r?.cardType||!this._supportedCardBrands.includes(r.cardType))){console.warn(`Card brand: ${r?.cardType} is not enrolled for 3ds`);const e={messageType:"CardNotEnrolled",providerName:"Unknown"};return Promise.resolve(e)}const s=document.querySelector(t);if(!s){const e=t+" not accessible";return console.error(e),Promise.reject(e)}return this.iFrame=s,this.sessionToken=e,this.init3DSecAuthSession(r,n),new Promise((e=>{this.resolver=e}))}onPresentingGui;parseSessionToken(e){const t=i(e);if(!t.pld)return console.log(`Cannot parse token. Ignored: ${e}`),!1;const r=t.pld.url;return r?(this._supportedCardBrands=t.pld.brnd,this._oldModelStyle=!1,this.createSessionUrl=`${r}/start3ds`,this.getChallengeResultsUrl=`${r}/challengeStatus`,this.getFingerpringResultsUrl=`${r}/fingerPrintStatus`,!0):(console.log(`Cannot obtain url from token. Ignored: ${e}`),!1)}init3DSecAuthSession(e,t){let r;if(this._oldModelStyle){if(!e)throw new Error("cardData is empty");const t=e;t.windowWidth=self.innerWidth,t.windowHeight=self.innerHeight,t.timeZoneOffsetMinutes=(new Date).getTimezoneOffset(),t.colorDepth=screen.colorDepth,t.browserScreenWidth=screen.availWidth,t.browserScreenHeight=screen.availHeight,t.browserJavaEnabled=!1,e?.customerEmail&&(t.customerEmail=e.customerEmail),e?.customerPhone&&(t.customerPhone=e.customerPhone),r=JSON.stringify(t)}else{const n={card:e?{type:e.cardType,number:e.cardNumber,expirationMonth:e.expirationMonth,expirationYear:e.expirationYear,securityCode:e.securityCode,nameOnCard:e.cardHolderName,issueNumber:e.issueNumber,ownerId:e.ownerId}:void 0,cardToken:t,browserProperties:{windowWidth:self.innerWidth,windowHeight:self.innerHeight,timeZoneOffsetMinutes:(new Date).getTimezoneOffset(),colorDepth:screen.colorDepth,browserScreenWidth:screen.availWidth,browserScreenHeight:screen.availHeight,browserJavaEnabled:!1},customerEmail:e?.customerEmail,customerPhone:e?.customerPhone};r=JSON.stringify(n)}const n=new XMLHttpRequest;n.onload=()=>{if(n.status<300){var e=JSON.parse(n.responseText);this.handleInitSessionResponse(e)}else this.handleError("Status:"+n.status+"; "+n.responseText,"init3DSecAuthSession Error")},n.ontimeout=()=>{this.handleError("Http post request timed out","init3DSecAuthSession")},n.open("POST",this.createSessionUrl,!0),n.timeout=2e4,n.setRequestHeader("Content-type","application/json"),n.setRequestHeader("Authorization","Bearer "+this.sessionToken),n.send(r)}handleInitSessionResponse(e){if(0==e.success){if(console.error(`Received an error from api: ${e.message}`),e.clientMessage)return void this.resolver(e.clientMessage);const t={messageType:"TechnicalProblem",reason:e.message,reference:"",providerName:"Unknown"};return void this.resolver(t)}console.log(`init: Received ${e.clientMessage.messageType} message from server; ProviderName: ${e.clientMessage.providerName}`);const t=e.clientMessage.providerName;if("CyberSource"===t)this._provider=new CyberSource;else{if("Shift4"!==t){const e="Unknown 3ds Provider: "+t;throw console.error(e),new Error(e)}this._provider=new Shift4}switch(this._provider.sessionToken=e.token,this._provider.getFingerpringResultsUrl=this.getFingerpringResultsUrl,e.clientMessage.messageType){case"TechnicalProblem":case"Rejected":case"Authenticated":case"AttemptWithoutAuthentication":case"CardNotEnrolled":this.resolver(e.clientMessage);break;case"ChallengeRequired":this.sessionToken=e.token;const t=e.clientMessage;this.performChallenge(t.ascUri,t.accessToken);break;case"FingerPrintRequired":this.sessionToken=e.token;const r=e.clientMessage;this._provider.performFingerPrint(r).then((e=>{this.handleFingerPrintResults(e)}));break;default:const n="Received unknown message - "+e.clientMessage.messageType;throw console.error(n),new Error(n)}}handleFingerPrintResults(e){switch(e.messageType){case"TechnicalProblem":case"Rejected":case"Authenticated":case"AttemptWithoutAuthentication":case"CardNotEnrolled":this.resolver(e);break;case"ChallengeRequired":const t=e;this.performChallenge(t.ascUri,t.accessToken);break;default:const r="Received unknown message - "+e.messageType;throw console.error(r),new Error(r)}}performChallenge(e,t){if(this.onPresentingGui?.(!0),console.log("Creating a challenge iFrame"),this._options&&this._options.postMessageTarget){const e=this._options.postMessageTarget;this.iFrame.onload=()=>{console.log("3DS challenge iframe loaded");parent.postMessage({messageType:"ThreeDsChallengeLoaded"},e),this.iFrame.onload=null}}this._options&&this._options.displayChallengeFormWithinPage?this.scrollToElement(this.iFrame):(this.iFrame.style.position="fixed",this.iFrame.style.zIndex="99999",this.iFrame.style.width="100%",this.iFrame.style.height="100%"),this.iFrame.style.display="inline",this._provider.getChallengeResultsUrl=this.getChallengeResultsUrl,this._provider.performChallenge(this.iFrame,e,t).then((e=>{this.iFrame.style.display="none",this.resolver(e)}))}scrollToElement(e){e?(document.documentElement.style.scrollBehavior="smooth",e.scrollIntoView({behavior:"smooth"})):console.warn("Element not found")}handleError(e,t){console.error(t+": "+e);const r=new ClientTechnicalProblemDetectedMessage;r.messageType="TechnicalProblem",r.reason=e,r.reference=t,this.resolver(r)}}})(),n})()));
//# sourceMappingURL=index.js.map