New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@basis-theory/3ds-web

Package Overview
Dependencies
Maintainers
0
Versions
34
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@basis-theory/3ds-web - npm Package Compare versions

Comparing version 1.2.0 to 1.3.0

dist/types/utils/errors.d.ts

2

dist/bundle/index.js

@@ -1,1 +0,1 @@

!function(){var e,t,r,n,o,i,a,c,s,u,l,d,f={FRAME_CONTAINER_ID:"methodFrameContainer",IFRAME_NAME:"methodIframe",FORM_NAME:"threeDSMethodForm",INPUT_NAME:"threeDSMethodData"},p={FRAME_CONTAINER_ID:"challengeFrameContainer",IFRAME_NAME:"challengeIframe",FORM_NAME:"threeDSCReqForm",INPUT_NAME:"threeDSSessionData"};function h(e,t,r,n,o,i,a){try{var c=e[i](a),s=c.value}catch(e){r(e);return}c.done?t(s):Promise.resolve(s).then(n,o)}function m(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){h(i,n,o,a,c,"next",e)}function c(e){h(i,n,o,a,c,"throw",e)}a(void 0)})}}function y(e,t){var r,n,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=c(0),a.throw=c(1),a.return=c(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(c){return function(s){return function(c){if(r)throw TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(i=0)),i;)try{if(r=1,n&&(o=2&c[0]?n.return:c[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,c[1])).done)return o;switch(n=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return i.label++,{value:c[1],done:!1};case 5:i.label++,n=c[1],c=[0];continue;case 7:c=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){i=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){i.label=c[1];break}if(6===c[0]&&i.label<o[1]){i.label=o[1],o=c;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(c);break}o[2]&&i.ops.pop(),i.trys.pop();continue}c=t.call(e,i)}catch(e){c=[6,e],n=0}finally{r=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,s])}}}function v(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function E(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function b(e,t){if(e){if("string"==typeof e)return E(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return E(e,t)}}"function"==typeof SuppressedError&&SuppressedError;var g=(e=m(function(e,t,r){var n,o=arguments;return y(this,function(i){switch(i.label){case 0:var a,c;a=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){v(e,t,r[t])})}return e}({application:"3ds-web",ddsource:"3ds-web",service:"3DS Web"},o.length>3&&void 0!==o[3]?o[3]:{}),c=c={level:t,message:"error"===t&&r?"".concat(e,": ").concat(r.message):e},Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(c)).forEach(function(e){Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(c,e))}),n=a,i.label=1;case 1:return i.trys.push([1,3,,4]),[4,fetch("https://http-intake.logs.datadoghq.com/v1/input/".concat("pubb96b84a13912504f4354f2d794ea4fab"),{method:"POST",body:JSON.stringify(n),headers:{"Content-Type":"application/json"}})];case 2:if(!i.sent().ok)throw Error("Network response was not ok");return[3,4];case 3:return i.sent(),[3,4];case 4:return[2]}})}),t=function(t,r,n){return e.apply(this,arguments)},{log:{error:function(e,r,n){return t(e,"error",r,n)},info:function(e,r){return t(e,"info",void 0,r)},warn:function(e,r){return t(e,"warn",void 0,r)}}});(r=l||(l={})).ONE="01",r.TWO="02",r.THREE="03",r.FOUR="04",r.FIVE="05";var w=function(e){return null==e?"":JSON.stringify(e)},T=function(){var e,t=[1,4,8,15,16,24,32,48],r=window.screen.colorDepth,n=t.filter(function(e){return e<=r});return 0===n.length?t[0]:(e=Math).max.apply(e,function(e){if(Array.isArray(e))return E(e)}(n)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(n)||b(n)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())},A=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"05",r=(v(e={},"01",["250px","400px"]),v(e,"02",["390px","400px"]),v(e,"03",["500px","600px"]),v(e,"04",["600px","400px"]),v(e,"05",["100%","100%"]),e)[t];if(r)return r;var n=Error("Window size ".concat(t," is not supported"));throw g.log.error("Unsupported window size",n),n},O=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"0",o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"0",i=arguments.length>5?arguments[5]:void 0;if(!(!e||e instanceof HTMLElement)||!t||!r){var a="Unable to create iframe. Container must be a HTML element ".concat(JSON.stringify(e)," ").concat(t," ").concat(r);throw g.log.error("Unable to create iframe",Error()),Error(a)}var c=document.createElement("iframe");return c.name=t,c.width=n,c.height=o,c.setAttribute("id",r),c.setAttribute("frameborder","0"),c.setAttribute("border","0"),i&&"function"==typeof i&&c.addEventListener("onload",i),e.appendChild(c),c},M=function(e,t,r){var n=document.createElement("form");return n.name=e,n.action=t,n.method="POST",n.target=r,n},I=function(e,t){var r=document.createElement("input");return r.name=e,r.value=t,r},S=function(e,t){var r=document.createElement(e);return r.appendChild(t),r},_=function(e){var t,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(t=document.getElementById(e)){t.innerHTML="",r&&t.setAttribute("style","display:none;");return}(t=document.createElement("div")).id=e,r&&t.setAttribute("style","display:none;"),document.body.appendChild(t)},N=function(e){return null==e?void 0:e.map(function(e){var t;return null===(t=document.getElementById(e))||void 0===t?void 0:t.remove()})},R=function(e,t){var r=function(e){return"string"==typeof e?t(e):"object"!=typeof e||null===e?e:Array.isArray(e)?e.map(r):Object.fromEntries(Object.entries(e).map(function(e){var n=function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,c=!1;try{for(o=o.call(e);!(a=(r=o.next()).done)&&(i.push(r.value),2!==i.length);a=!0);}catch(e){c=!0,n=e}finally{try{a||null==o.return||o.return()}finally{if(c)throw n}}return i}}(e,2)||b(e,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),o=n[0],i=n[1];return[t(o),"object"==typeof i||Array.isArray(i)?r(i):i]}))};return r(e)},D=function(e){return R(e,function(e){return e.replace(/_./g,function(e){return e[1].toUpperCase()})})},C=function(e){return btoa(JSON.stringify(e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")},j={client:(n=m(function(e,t,r){var n;return y(this,function(a){switch(a.label){case 0:if(!o)throw Error("Missing api key");return i&&g.log.info("Using custom api base url in 3DS SDK ".concat(i)),[4,fetch("".concat(null!=i?i:"https://api.basistheory.com","/3ds").concat(t),{method:e,body:JSON.stringify(r),headers:(v(n={},"BT-API-KEY",o),v(n,"Content-Type","application/json"),n)})];case 1:return[2,a.sent()]}})}),function(e,t,r){return n.apply(this,arguments)}),init:function(e,t){o=e,i=t}};(a=d||(d={})).METHOD="method",a.CHALLENGE="challenge",a.METHOD_TIME_OUT="methodTimeout",a.START_METHOD_TIME_OUT="startMethodTimeout",a.ERROR="error";var P=function(e){return window.postMessage(e,"*")},U=function(e){return"object"==typeof e&&null!==e&&"isCompleted"in e&&"boolean"==typeof e.isCompleted&&"id"in e&&"string"==typeof e.id&&"type"in e&&Object.values(d).includes(e.type)},F=function(e){var t,r;return null===(t=(v(r={},d.CHALLENGE,p.IFRAME_NAME),v(r,d.METHOD,f.IFRAME_NAME),v(r,d.METHOD_TIME_OUT,f.IFRAME_NAME),v(r,d.ERROR,"".concat(f.IFRAME_NAME,",").concat(p.IFRAME_NAME)),v(r,d.START_METHOD_TIME_OUT,""),r)[e])||void 0===t?void 0:t.split(",")},H=function(e){var t;return new Promise(function(r,n){var o=function(i){if(U(i.data)&&(null===(c=i.data)||void 0===c?void 0:c.type)===d.START_METHOD_TIME_OUT)t=setTimeout(function(){P({id:i.data.id,type:d.METHOD_TIME_OUT,isCompleted:!1})},1e4);else if(U(i.data)&&i.data.type!==d.ERROR&&i.data.type!==d.CHALLENGE){window.removeEventListener("message",o);var a,c,s,u={id:i.data.id,cardBrand:e.cardBrand};g.log.info("".concat(i.data.type," notification received for session: ").concat(u.id)),r(u),N(F(null===(s=i.data)||void 0===s?void 0:s.type)),clearTimeout(t)}else i.isTrusted&&(n("Something happened during session creation, please try again."),N(F(null===(a=i.data)||void 0===a?void 0:a.type)),clearTimeout(t))};window.addEventListener("message",o)})},L=function(e,t,r){var n=C({threeDSServerTransID:t,threeDSMethodNotificationURL:r}),o=O(document.getElementById(f.FRAME_CONTAINER_ID),f.IFRAME_NAME,f.IFRAME_NAME,"0","0"),i=M(f.FORM_NAME,e,o.name);i.appendChild(I(f.INPUT_NAME,n)),o.appendChild(S("html",S("body",i))),i.submit()},x=(c=m(function(e){var t,r,n,o,i;return y(this,function(a){switch(a.label){case 0:return t=e.pan,r={browserColorDepth:w(T()),browserJavascriptEnabled:!0,browserJavaEnabled:window.navigator.javaEnabled(),browserLanguage:window.navigator.language,browserScreenHeight:w(window.screen.height),browserScreenWidth:w(window.screen.width),browserTZ:w(new Date().getTimezoneOffset()),browserUserAgent:window.navigator.userAgent},[4,j.client("POST","/sessions",R({pan:t,device:"browser",deviceInfo:r},function(e){return e.replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase()}))];case 1:if(!(n=a.sent()).ok)throw o="HTTP error! Status: ".concat(n.status),g.log.error(o),Error(o);return[4,n.json()];case 2:return i=D.apply(void 0,[a.sent()]),g.log.info("3DS session response received with ID ".concat(i.id)),i.methodUrl&&(P({isCompleted:!1,id:i.id,type:d.START_METHOD_TIME_OUT}),L(i.methodUrl,i.id,i.methodNotificationUrl)),[2,i]}})}),function(e){return c.apply(this,arguments)}),k=(s=m(function(e){var t;return y(this,function(r){switch(r.label){case 0:return[4,x({pan:e.pan}).catch(function(e){return Promise.reject(e.message)})];case 1:if(!(t=r.sent()).methodUrl)return[2,{id:t.id,cardBrand:t.cardBrand}];return[4,H(t)];case 2:return[2,r.sent()]}})}),function(e){return s.apply(this,arguments)}),B=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:6e4;return new Promise(function(r,n){var o=function(t){if(U(t.data)&&t.data.type===d.CHALLENGE){clearTimeout(e),window.removeEventListener("message",o);var n={id:t.data.id};g.log.info("".concat(t.data.type," notification received for session: ").concat(n.id)),r(n),N([p.IFRAME_NAME])}else t.isTrusted};window.addEventListener("message",o),e=setTimeout(function(){window.removeEventListener("message",o),n("Timed out waiting for a challenge response. Please try again."),N([p.IFRAME_NAME])},t)})},z=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=document.getElementById(p.FRAME_CONTAINER_ID),o=A(t.challengeWindowSize),i=C(t),a=C(r),c=p.IFRAME_NAME,s=document.createElement("html"),u=document.createElement("body"),l=O(n,c,c,o[0],o[1]),d=M(p.FORM_NAME,e,l.name),f=I("creq",i),h=I(p.INPUT_NAME,a);d.appendChild(f),d.appendChild(h),u.appendChild(d),s.appendChild(u),l.appendChild(s),d.submit()},J=function(e){var t,r,n,o,i,a=e.sessionId,c=e.acsTransactionId,s=e.acsChallengeUrl,u=e.threeDSVersion,d=e.windowSize;if(!a)throw Error("Session ID is required");var f={messageType:"CReq",messageVersion:u,threeDSServerTransID:a,acsTransID:c,challengeWindowSize:null!=d?d:l.THREE};if(t=f.messageType,r=f.messageVersion,n=f.threeDSServerTransID,o=f.acsTransID,i=f.challengeWindowSize,null!==f&&"string"==typeof t&&"string"==typeof r&&"string"==typeof n&&"string"==typeof o&&Object.values(l).includes(i))z(s,f);else{var p="Invalid challenge request payload for session: ".concat(a);return g.log.error(p),Promise.reject(Error(p))}return Promise.resolve({id:a})},W=(u=m(function(e){var t,r,n,o,i,a,c;return y(this,function(s){switch(s.label){case 0:return t=e.sessionId,r=e.acsTransactionId,n=e.acsChallengeUrl,o=e.threeDSVersion,i=e.windowSize,c=void 0===(a=e.timeout)?6e4:a,[4,J({sessionId:t,acsTransactionId:r,acsChallengeUrl:n,threeDSVersion:o,windowSize:i}).catch(function(e){return Promise.reject(e.message)})];case 1:return s.sent(),[2,B(c)]}})}),function(e){return u.apply(this,arguments)});window.BasisTheory3ds=function(e,t){try{var r,n;_(f.FRAME_CONTAINER_ID,!0),_(null!==(n=null==t?void 0:null===(r=t.challengeContainerOptions)||void 0===r?void 0:r.id)&&void 0!==n?n:p.FRAME_CONTAINER_ID)}catch(e){g.log.error("Unable to create iframe container",e)}return j.init(e,null==t?void 0:t.apiBaseUrl),{createSession:k,startChallenge:W}}}();
!function(){var e,t,r,n,o,i,a,s,c,l,u,d,f={FRAME_CONTAINER_ID:"methodFrameContainer",IFRAME_NAME:"methodIframe",FORM_NAME:"threeDSMethodForm",INPUT_NAME:"threeDSMethodData"},p={FRAME_CONTAINER_ID:"challengeFrameContainer",IFRAME_NAME:"challengeIframe",FORM_NAME:"threeDSCReqForm",INPUT_NAME:"threeDSSessionData"};function h(e,t,r,n,o,i,a){try{var s=e[i](a),c=s.value}catch(e){r(e);return}s.done?t(c):Promise.resolve(c).then(n,o)}function y(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){h(i,n,o,a,s,"next",e)}function s(e){h(i,n,o,a,s,"throw",e)}a(void 0)})}}function m(e,t){var r,n,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=s(0),a.throw=s(1),a.return=s(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(c){return function(s){if(r)throw TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(i=0)),i;)try{if(r=1,n&&(o=2&s[0]?n.return:s[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,s[1])).done)return o;switch(n=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,n=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===s[0]||2===s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}catch(e){s=[6,e],n=0}finally{r=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}}function v(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function E(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function b(e,t){if(e){if("string"==typeof e)return E(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return E(e,t)}}"function"==typeof SuppressedError&&SuppressedError;var g=(e=y(function(e,t,r){var n,o=arguments;return m(this,function(i){switch(i.label){case 0:var a,s;a=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){v(e,t,r[t])})}return e}({application:"3ds-web",ddsource:"3ds-web",service:"3ds-web"},o.length>3&&void 0!==o[3]?o[3]:{}),s=s={level:t,message:"error"===t&&r?"".concat(e,": ").concat(r.message):e},Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(s)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(s)).forEach(function(e){Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(s,e))}),n=a,i.label=1;case 1:return i.trys.push([1,3,,4]),[4,fetch("https://http-intake.logs.datadoghq.com/v1/input/".concat("pubb96b84a13912504f4354f2d794ea4fab"),{method:"POST",body:JSON.stringify(n),headers:{"Content-Type":"application/json"}})];case 2:if(!i.sent().ok)throw Error("Network response was not ok");return[3,4];case 3:return i.sent(),[3,4];case 4:return[2]}})}),t=function(t,r,n){return e.apply(this,arguments)},{log:{error:function(e,r,n){return t(e,"error",r,n)},info:function(e,r){return t(e,"info",void 0,r)},warn:function(e,r){return t(e,"warn",void 0,r)}}});(r=u||(u={})).ONE="01",r.TWO="02",r.THREE="03",r.FOUR="04",r.FIVE="05";var w=function(e){return null==e?"":JSON.stringify(e)},T=function(){var e,t=[1,4,8,15,16,24,32,48],r=window.screen.colorDepth,n=t.filter(function(e){return e<=r});return 0===n.length?t[0]:(e=Math).max.apply(e,function(e){if(Array.isArray(e))return E(e)}(n)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(n)||b(n)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())},A=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"05",r=(v(e={},"01",["250px","400px"]),v(e,"02",["390px","400px"]),v(e,"03",["500px","600px"]),v(e,"04",["600px","400px"]),v(e,"05",["100%","100%"]),e)[t];if(r)return r;var n=Error("Window size ".concat(t," is not supported"));throw g.log.error("Unsupported window size",n),n},O=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"0",o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"0",i=arguments.length>5?arguments[5]:void 0;if(!(!e||e instanceof HTMLElement)||!t||!r){var a="Unable to create iframe. Container must be a HTML element ".concat(JSON.stringify(e)," ").concat(t," ").concat(r);throw g.log.error("Unable to create iframe",Error()),Error(a)}var s=document.createElement("iframe");return s.name=t,s.width=n,s.height=o,s.setAttribute("id",r),s.setAttribute("frameborder","0"),s.setAttribute("border","0"),i&&"function"==typeof i&&s.addEventListener("onload",i),e.appendChild(s),s},M=function(e,t,r){var n=document.createElement("form");return n.name=e,n.action=t,n.method="POST",n.target=r,n},I=function(e,t){var r=document.createElement("input");return r.name=e,r.value=t,r},S=function(e,t){var r=document.createElement(e);return r.appendChild(t),r},_=function(e){var t,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(t=document.getElementById(e)){t.innerHTML="",r&&t.setAttribute("style","display:none;");return}(t=document.createElement("div")).id=e,r&&t.setAttribute("style","display:none;"),document.body.appendChild(t)},N=function(e){return null==e?void 0:e.map(function(e){var t;return null===(t=document.getElementById(e))||void 0===t?void 0:t.remove()})},R=function(e,t){var r=function(e){return"string"==typeof e?t(e):"object"!=typeof e||null===e?e:Array.isArray(e)?e.map(r):Object.fromEntries(Object.entries(e).map(function(e){var n=function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,s=!1;try{for(o=o.call(e);!(a=(r=o.next()).done)&&(i.push(r.value),2!==i.length);a=!0);}catch(e){s=!0,n=e}finally{try{a||null==o.return||o.return()}finally{if(s)throw n}}return i}}(e,2)||b(e,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),o=n[0],i=n[1];return[t(o),"object"==typeof i||Array.isArray(i)?r(i):i]}))};return r(e)},D=function(e){return R(e,function(e){return e.replace(/_./g,function(e){return e[1].toUpperCase()})})},C=function(e){return btoa(JSON.stringify(e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")},j={client:(n=y(function(e,t,r){var n;return m(this,function(a){switch(a.label){case 0:if(!o)throw Error("Missing api key");return i&&g.log.info("Using custom api base url in 3DS SDK ".concat(i)),[4,fetch("".concat(null!=i?i:"https://api.basistheory.com","/3ds").concat(t),{method:e,body:JSON.stringify(r),headers:(v(n={},"BT-API-KEY",o),v(n,"Content-Type","application/json"),n)})];case 1:return[2,a.sent()]}})}),function(e,t,r){return n.apply(this,arguments)}),init:function(e,t){o=e,i=t}};(a=d||(d={})).METHOD="method",a.CHALLENGE="challenge",a.METHOD_TIME_OUT="methodTimeout",a.START_METHOD_TIME_OUT="startMethodTimeout",a.ERROR="error";var F=function(e){return window.postMessage(e,"*")},P=function(e){return"object"==typeof e&&null!==e&&"isCompleted"in e&&"boolean"==typeof e.isCompleted&&"id"in e&&"string"==typeof e.id&&"type"in e&&Object.values(d).includes(e.type)},U=function(e){var t,r;return null===(t=(v(r={},d.CHALLENGE,p.IFRAME_NAME),v(r,d.METHOD,f.IFRAME_NAME),v(r,d.METHOD_TIME_OUT,f.IFRAME_NAME),v(r,d.ERROR,"".concat(f.IFRAME_NAME,",").concat(p.IFRAME_NAME)),v(r,d.START_METHOD_TIME_OUT,""),r)[e])||void 0===t?void 0:t.split(",")},H=function(e){var t;return new Promise(function(r,n){var o=function(i){if(P(i.data)&&(null===(s=i.data)||void 0===s?void 0:s.type)===d.START_METHOD_TIME_OUT)t=setTimeout(function(){F({id:i.data.id,type:d.METHOD_TIME_OUT,isCompleted:!1})},1e4);else if(P(i.data)&&i.data.type!==d.ERROR&&i.data.type!==d.CHALLENGE){window.removeEventListener("message",o);var a,s,c,l={id:i.data.id,cardBrand:e.cardBrand};g.log.info("".concat(i.data.type," notification received for session: ").concat(l.id)),r(l),N(U(null===(c=i.data)||void 0===c?void 0:c.type)),clearTimeout(t)}else i.isTrusted&&(n("Something happened during session creation, please try again."),N(U(null===(a=i.data)||void 0===a?void 0:a.type)),clearTimeout(t))};window.addEventListener("message",o)})},L={},k={"The card was not supported by any card schemes":"3DS is not supported for the provided card"},x=function(e){var t=!0,r=!1,n=void 0;if("errors"in e&&void 0!==e.errors&&"object"==typeof e.errors&&null!==e.errors)try{for(var o,i=Object.keys(e.errors)[Symbol.iterator]();!(t=(o=i.next()).done);t=!0){var a=o.value;if(k[a])throw Error(k[a])}}catch(e){r=!0,n=e}finally{try{t||null==i.return||i.return()}finally{if(r)throw n}}else if(e.title&&L[e.title])throw Error(L[e.title]);throw Error(e.title||"An unknown error occurred")},B=function(e,t,r){var n=C({threeDSServerTransID:t,threeDSMethodNotificationURL:r}),o=O(document.getElementById(f.FRAME_CONTAINER_ID),f.IFRAME_NAME,f.IFRAME_NAME,"0","0"),i=M(f.FORM_NAME,e,o.name);i.appendChild(I(f.INPUT_NAME,n)),o.appendChild(S("html",S("body",i))),i.submit()},z=(s=y(function(e){var t,r,n,o,i,a,s;return m(this,function(c){switch(c.label){case 0:return t=e.pan,r={browserColorDepth:w(T()),browserJavascriptEnabled:!0,browserJavaEnabled:window.navigator.javaEnabled(),browserLanguage:window.navigator.language,browserScreenHeight:w(window.screen.height),browserScreenWidth:w(window.screen.width),browserTZ:w(new Date().getTimezoneOffset()),browserUserAgent:window.navigator.userAgent},[4,j.client("POST","/sessions",R({pan:t,device:"browser",deviceInfo:r},function(e){return e.replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase()}))];case 1:if((n=c.sent()).ok)return[3,6];c.label=2;case 2:return c.trys.push([2,4,,5]),[4,n.json()];case 3:return o=c.sent(),[3,5];case 4:throw c.sent(),i="Failed to parse error response. HTTP Status: ".concat(n.status),g.log.error(i),Error(i);case 5:var l;if("object"==typeof(l=o)&&null!==l&&("title"in l||"status"in l||"detail"in l))x(o);else throw a="An unknown error occurred while creating session. Status: ".concat(n.status,"."),g.log.error("".concat(a," Response: ").concat(JSON.stringify(o,null,2))),Error(a);c.label=6;case 6:return[4,n.json()];case 7:return s=D.apply(void 0,[c.sent()]),g.log.info("3DS session response received with ID ".concat(s.id)),s.methodUrl&&(F({isCompleted:!1,id:s.id,type:d.START_METHOD_TIME_OUT}),B(s.methodUrl,s.id,s.methodNotificationUrl)),[2,s]}})}),function(e){return s.apply(this,arguments)}),J=(c=y(function(e){var t;return m(this,function(r){switch(r.label){case 0:return[4,z({pan:e.pan}).catch(function(e){return Promise.reject(e.message)})];case 1:if(!(t=r.sent()).methodUrl)return[2,{id:t.id,cardBrand:t.cardBrand}];return[4,H(t)];case 2:return[2,r.sent()]}})}),function(e){return c.apply(this,arguments)}),q=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:6e4;return new Promise(function(r,n){var o=function(t){if(P(t.data)&&t.data.type===d.CHALLENGE){clearTimeout(e),window.removeEventListener("message",o);var n={id:t.data.id};g.log.info("".concat(t.data.type," notification received for session: ").concat(n.id)),r(n),N([p.IFRAME_NAME])}else t.isTrusted};window.addEventListener("message",o),e=setTimeout(function(){window.removeEventListener("message",o),n("Timed out waiting for a challenge response. Please try again."),N([p.IFRAME_NAME])},t)})},V=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=document.getElementById(p.FRAME_CONTAINER_ID),o=A(t.challengeWindowSize),i=C(t),a=C(r),s=p.IFRAME_NAME,c=document.createElement("html"),l=document.createElement("body"),u=O(n,s,s,o[0],o[1]),d=M(p.FORM_NAME,e,u.name),f=I("creq",i),h=I(p.INPUT_NAME,a);d.appendChild(f),d.appendChild(h),l.appendChild(d),c.appendChild(l),u.appendChild(c),d.submit()},W=function(e){var t,r,n,o,i,a=e.sessionId,s=e.acsTransactionId,c=e.acsChallengeUrl,l=e.threeDSVersion,d=e.windowSize;if(!a)throw Error("Session ID is required");var f={messageType:"CReq",messageVersion:l,threeDSServerTransID:a,acsTransID:s,challengeWindowSize:null!=d?d:u.THREE};if(t=f.messageType,r=f.messageVersion,n=f.threeDSServerTransID,o=f.acsTransID,i=f.challengeWindowSize,null!==f&&"string"==typeof t&&"string"==typeof r&&"string"==typeof n&&"string"==typeof o&&Object.values(u).includes(i))V(c,f);else{var p="Invalid challenge request payload for session: ".concat(a);return g.log.error(p),Promise.reject(Error(p))}return Promise.resolve({id:a})},G=(l=y(function(e){var t,r,n,o,i,a,s;return m(this,function(c){switch(c.label){case 0:return t=e.sessionId,r=e.acsTransactionId,n=e.acsChallengeUrl,o=e.threeDSVersion,i=e.windowSize,s=void 0===(a=e.timeout)?6e4:a,[4,W({sessionId:t,acsTransactionId:r,acsChallengeUrl:n,threeDSVersion:o,windowSize:i}).catch(function(e){return Promise.reject(e.message)})];case 1:return c.sent(),[2,q(s)]}})}),function(e){return l.apply(this,arguments)});window.BasisTheory3ds=function(e,t){try{var r,n;_(f.FRAME_CONTAINER_ID,!0),_(null!==(n=null==t?void 0:null===(r=t.challengeContainerOptions)||void 0===r?void 0:r.id)&&void 0!==n?n:p.FRAME_CONTAINER_ID)}catch(e){g.log.error("Unable to create iframe container",e)}return j.init(e,null==t?void 0:t.apiBaseUrl),{createSession:J,startChallenge:G}}}();

@@ -30,3 +30,3 @@

ddsource: "3ds-web",
service: "3DS Web",
service: "3ds-web",
...attributes,

@@ -292,2 +292,25 @@ level: level,

const $041352cd2607e856$var$errorMessagesMap = {
};
const $041352cd2607e856$var$validationErrorMessagesMap = {
"The card was not supported by any card schemes": "3DS is not supported for the provided card"
};
const $041352cd2607e856$var$isValidationApiError = (error)=>{
return "errors" in error && error.errors !== undefined && typeof error.errors === "object" && error.errors !== null;
};
const $041352cd2607e856$export$89d83cc97c52a37 = (error)=>{
return typeof error === "object" && error !== null && ("title" in error || "status" in error || "detail" in error);
};
const $041352cd2607e856$export$1e46c02a50c8708f = (apiError)=>{
if ($041352cd2607e856$var$isValidationApiError(apiError)) for (const errorKey of Object.keys(apiError.errors)){
if ($041352cd2607e856$var$validationErrorMessagesMap[errorKey]) throw new Error($041352cd2607e856$var$validationErrorMessagesMap[errorKey]);
}
else {
if (apiError.title && $041352cd2607e856$var$errorMessagesMap[apiError.title]) throw new Error($041352cd2607e856$var$errorMessagesMap[apiError.title]);
}
// if no matching mapping is found, throw a generic error
throw new Error(apiError.title || "An unknown error occurred");
};
const $18f82d365a93c819$var$submitMethodRequest = (threeDSMethodURL, threeDSServerTransID, methodNotificationURL)=>{

@@ -313,5 +336,16 @@ const threeDSMethodDataBase64 = (0, $c285d18e17e27ae4$export$c564cdbbe6da493)({

if (!response.ok) {
const msg = `HTTP error! Status: ${response.status}`;
(0, $7eeff694ab6fbf78$export$af88d00dbe7f521).log.error(msg);
throw new Error(msg);
let json;
try {
json = await response.json();
} catch {
const msg = `Failed to parse error response. HTTP Status: ${response.status}`;
(0, $7eeff694ab6fbf78$export$af88d00dbe7f521).log.error(msg);
throw new Error(msg);
}
if ((0, $041352cd2607e856$export$89d83cc97c52a37)(json)) (0, $041352cd2607e856$export$1e46c02a50c8708f)(json);
else {
const msg = `An unknown error occurred while creating session. Status: ${response.status}.`;
(0, $7eeff694ab6fbf78$export$af88d00dbe7f521).log.error(`${msg} Response: ${JSON.stringify(json, null, 2)}`);
throw new Error(msg);
}
}

@@ -318,0 +352,0 @@ const session = (0, $d8adca4734643193$export$72d485cca95ce2e2)(await response.json());

@@ -24,3 +24,3 @@ const $ede1e6694b13a411$export$3f521420530811cf = {

ddsource: "3ds-web",
service: "3DS Web",
service: "3ds-web",
...attributes,

@@ -286,2 +286,25 @@ level: level,

const $36674fed137cfc63$var$errorMessagesMap = {
};
const $36674fed137cfc63$var$validationErrorMessagesMap = {
"The card was not supported by any card schemes": "3DS is not supported for the provided card"
};
const $36674fed137cfc63$var$isValidationApiError = (error)=>{
return "errors" in error && error.errors !== undefined && typeof error.errors === "object" && error.errors !== null;
};
const $36674fed137cfc63$export$89d83cc97c52a37 = (error)=>{
return typeof error === "object" && error !== null && ("title" in error || "status" in error || "detail" in error);
};
const $36674fed137cfc63$export$1e46c02a50c8708f = (apiError)=>{
if ($36674fed137cfc63$var$isValidationApiError(apiError)) for (const errorKey of Object.keys(apiError.errors)){
if ($36674fed137cfc63$var$validationErrorMessagesMap[errorKey]) throw new Error($36674fed137cfc63$var$validationErrorMessagesMap[errorKey]);
}
else {
if (apiError.title && $36674fed137cfc63$var$errorMessagesMap[apiError.title]) throw new Error($36674fed137cfc63$var$errorMessagesMap[apiError.title]);
}
// if no matching mapping is found, throw a generic error
throw new Error(apiError.title || "An unknown error occurred");
};
const $2bc795de5a692819$var$submitMethodRequest = (threeDSMethodURL, threeDSServerTransID, methodNotificationURL)=>{

@@ -307,5 +330,16 @@ const threeDSMethodDataBase64 = (0, $bb80761c88de0bf5$export$c564cdbbe6da493)({

if (!response.ok) {
const msg = `HTTP error! Status: ${response.status}`;
(0, $9baa5c7531c09ef3$export$af88d00dbe7f521).log.error(msg);
throw new Error(msg);
let json;
try {
json = await response.json();
} catch {
const msg = `Failed to parse error response. HTTP Status: ${response.status}`;
(0, $9baa5c7531c09ef3$export$af88d00dbe7f521).log.error(msg);
throw new Error(msg);
}
if ((0, $36674fed137cfc63$export$89d83cc97c52a37)(json)) (0, $36674fed137cfc63$export$1e46c02a50c8708f)(json);
else {
const msg = `An unknown error occurred while creating session. Status: ${response.status}.`;
(0, $9baa5c7531c09ef3$export$af88d00dbe7f521).log.error(`${msg} Response: ${JSON.stringify(json, null, 2)}`);
throw new Error(msg);
}
}

@@ -312,0 +346,0 @@ const session = (0, $fa75e9b184a0a110$export$72d485cca95ce2e2)(await response.json());

{
"name": "@basis-theory/3ds-web",
"version": "1.2.0",
"version": "1.3.0",
"repository": "https://github.com/Basis-Theory/3ds-web",

@@ -5,0 +5,0 @@ "license": "Apache-2.0",

{
"name": "@basis-theory/3ds-web",
"version": "1.2.0",
"version": "1.3.0",
"repository": "https://github.com/Basis-Theory/3ds-web",

@@ -5,0 +5,0 @@ "license": "Apache-2.0",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc