@basis-theory/web-elements 1.18.0 → 1.20.0

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/CHANGELOG.md CHANGED
@@ -1,3 +1,32 @@
1
+ ## [1.20.0] - 2025-07-15
2
+
3
+ ### Features
4
+
5
+ - 4ac2b5e 2025-07-15 feat: add useUat flag (#461) by kevin@basistheory.com
6
+ - b89d5d8 2025-07-08 feat: bundle optimizations (#449) by kevin@basistheory.com
7
+ - 606efff 2025-07-07 feat: bundle optimization (#448) by kevin@basistheory.com
8
+
9
+ ### Bug Fixes
10
+
11
+ - 2c8cc6c 2025-07-15 fix: port set from hosted (#462) by kevin@basistheory.com
12
+ - 60b2dbd 2025-07-14 fix: remove resource hints from client (#460) by kevin@basistheory.com
13
+ - 8ed50c3 2025-07-11 fix: `set` replacement edge cases (#459) by kevin@basistheory.com
14
+
15
+ ### Chores
16
+
17
+ - a80b10e 2025-07-10 chore: remove btjs from client and messages (#454) by kevin@basistheory.com
18
+
19
+ ## [1.19.0] - 2025-07-07
20
+
21
+ ### Features
22
+
23
+ - 6a01b84 2025-07-03 feat: returning the token alias when encrypting multiple tokens (#451) by 62716969+washluis-alencar@users.noreply.github.com
24
+ - 53553a2 2025-06-26 feat: allow encrypt token with plaintext by 62716969+washluis-alencar@users.noreply.github.com
25
+
26
+ ### Chores
27
+
28
+ - 0f92346 2025-07-07 chore: allow devs to purge the dev env cache via workflow (#452) by mstrisoline@users.noreply.github.com
29
+
1
30
  ## [1.18.0] - 2025-06-23
2
31
 
3
32
  ### Features
@@ -1 +1 @@
1
- !function(){function e(e,r,t,n,o,i,l){try{var c=e[i](l),s=c.value}catch(e){t(e);return}c.done?r(s):Promise.resolve(s).then(n,o)}function r(r){return function(){var t=this,n=arguments;return new Promise(function(o,i){var l=r.apply(t,n);function c(r){e(l,o,i,c,s,"next",r)}function s(r){e(l,o,i,c,s,"throw",r)}c(void 0)})}}function t(e,r){var t,n,o,i,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){var s=[i,c];if(t)throw TypeError("Generator is already executing.");for(;l;)try{if(t=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 l.label++,{value:s[1],done:!1};case 5:l.label++,n=s[1],s=[0];continue;case 7:s=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===s[0]||2===s[0])){l=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){l.label=s[1];break}if(6===s[0]&&l.label<o[1]){l.label=o[1],o=s;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(s);break}o[2]&&l.ops.pop(),l.trys.pop();continue}s=r.call(e,l)}catch(e){s=[6,e],n=0}finally{t=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}}var n,o,i,l,c,s,u,a=(l=r(function(e,r){var n,l,c,s,u,a,d,f=arguments;return t(this,function(t){switch(t.label){case 0:if(n=f.length>2&&void 0!==f[2]?f[2]:{},o)return[2];d=function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}({level:r,message:e,service:"web-elements-loader",env:a=!i||(null==i?void 0:i.includes("localhost"))?"local":i.includes("dev")?"dev":"prod",referrer:null===(l=document)||void 0===l?void 0:l.referrer,origin:null===(c=window)||void 0===c?void 0:c.location.origin,url:null===(s=window)||void 0===s?void 0:s.location.href,userAgent:null===(u=navigator)||void 0===u?void 0:u.userAgent},n),["local","dev"].includes(a)&&console.log(d),t.label=1;case 1:return t.trys.push([1,3,,4]),[4,fetch("https://http-intake.logs.datadoghq.com/v1/input/".concat("pubb96b84a13912504f4354f2d794ea4fab"),{method:"POST",body:JSON.stringify(d),headers:{"Content-Type":"application/json"}})];case 2:return t.sent(),[3,4];case 3:return t.sent(),console.warn("There was an error sending telemetry."),[3,4];case 4:return[2]}})}),c=function(e,r){return l.apply(this,arguments)},{disableTelemetry:function(e){o=e},setBaseUrl:function(e){i=e},log:{error:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return c(e,"error",r)},info:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return c(e,"info",r)},warn:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return c(e,"warn",r)}}}),d=function(e){var r=document.querySelector('script[src^="'.concat(e,'"]'));if(r)return r;var t=document.head||document.body;if(!t)throw Error("No <head> or <body> elements found in the document.");var n=Object.assign(document.createElement("script"),{src:e});return t.append(n),n},f="Tried to load BasisTheoryElements in a non-DOM environment.",p="Unable to load the Elements script. This may be due to network restrictions or browser extensions like ad blockers interfering with script loading. Check browser settings or network connection and try again.",h=function(e,n){return new Promise(function(o,i){var l,c=d(e),s=!1;c.addEventListener("load",function(){window.BasisTheoryElements?o(window.BasisTheoryElements):(r(function(){return t(this,function(e){switch(e.label){case 0:return[4,a.log.error("Elements not found on window on load",{logType:"elementsNotFoundOnWindow",logOrigin:"loadScript",retryCount:n})];case 1:return e.sent(),[2]}})})(),i(Error("Basis Theory Elements did not load properly. Check network tab for more details.")))}),c.addEventListener("error",(l=r(function(r){var l,u,d;return t(this,function(t){switch(t.label){case 0:if(s)return[2];return s=!0,[4,a.log.error("Elements script onError event",{logType:"elementsScriptOnError",logOrigin:"loadScript",retryCount:n,event:{message:null==r?void 0:r.message,source:null==r?void 0:r.filename,lineno:null==r?void 0:r.lineno,colno:null==r?void 0:r.colno,error:null==r?void 0:r.error,target:null==r?void 0:r.target}})];case 1:t.sent(),t.label=2;case 2:return t.trys.push([2,3,,5]),null==c||c.remove(),[3,5];case 3:return l=t.sent(),[4,a.log.error("Error removing script from DOM on retry attempt ".concat(n),{logType:"scriptRemovalError",logOrigin:"loadScript",retryCount:n,removalError:l})];case 4:return t.sent(),[3,5];case 5:if(0===n)return h(e,n+1).then(o).catch(i),[2];t.label=6;case 6:return t.trys.push([6,12,,14]),[4,fetch(e)];case 7:if((u=t.sent()).ok)return[3,9];return[4,a.log.error("Second attempt to load elements script failed, fetch failed with status: ".concat(u.status,"."),{logType:"elementsScriptFetchFailure",logOrigin:"loadScript",retryCount:n,fetchResult:"error",fetchResponse:u})];case 8:return t.sent(),i(Error(f)),[3,11];case 9:return[4,a.log.error("Second attempt to load elements script failed, fetch success",{logType:"elementsScriptFetchFailure",logOrigin:"loadScript",retryCount:n,fetchResult:"success",fetchResponse:u})];case 10:t.sent(),i(Error(p)),t.label=11;case 11:return[3,14];case 12:return d=t.sent(),[4,a.log.error("Second attempt failed to load elements script failed, fetch network error.",{logType:"elementsScriptFetchError",logOrigin:"loadScript",retryCount:n,fetchResult:"error",fetchError:d})];case 13:return t.sent(),i(Error(p)),[3,14];case 14:return i((null==r?void 0:r.error)||(null==r?void 0:r.message)||Error(p)),[2]}})}),function(e){return l.apply(this,arguments)}))})},v={};v={version:"1.18.0"};var y=(s=r(function(e,o){var i,l,c,s;return t(this,function(u){switch(u.label){case 0:var d;if(!e||0===e.length)throw Error("API key is required");return i=(null==o?void 0:o._devMode)?"js.flock-dev.com":"js.basistheory.com",a.setBaseUrl(i),a.disableTelemetry(!!(null==o?void 0:o.disableTelemetry)),[4,(d="https://".concat(i,"/web-elements/").concat(v.version,"/client/index.js"),n||(n=new Promise(function(e,n){var o;if(("undefined"==typeof window?"undefined":(o=window)&&"undefined"!=typeof Symbol&&o.constructor===Symbol?"symbol":typeof o)!="object"){r(function(){return t(this,function(e){switch(e.label){case 0:return[4,a.log.warn(f,{logType:"elementsNonDomError",logOrigin:"loadElements"})];case 1:return e.sent(),n(Error(f)),[2]}})})();return}if(window.BasisTheoryElements){e(window.BasisTheoryElements);return}h(new URL(d).toString().replace(RegExp("\\/$","u"),""),0).then(e).catch(function(e){n(e)})})),n)];case 1:return[2,u.sent().init(e,"https://".concat(i,"/web-elements/").concat(v.version,"/hosted-elements/"),!1,null===(l=null==o?void 0:o.useSameOriginApi)||void 0===l||l,null!==(c=null==o?void 0:o.disableTelemetry)&&void 0!==c&&c,null!==(s=null==o?void 0:o.debug)&&void 0!==s&&s)]}})}),function(e,r){return s.apply(this,arguments)}),m=((u=m||{}).DECIMAL="decimal",u.EMAIL="email",u.NONE="none",u.NUMERIC="numeric",u.SEARCH="search",u.TEL="tel",u.TEXT="text",u.URL="url",u);function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function g(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(g=function(){return!!e})()}function w(e,r){return(w=Object.setPrototypeOf||function(e,r){return e.__proto__=r,e})(e,r)}function E(e,r,t){return(E=g()?Reflect.construct:function(e,r,t){var n=[null];n.push.apply(n,r);var o=new(Function.bind.apply(e,n));return t&&w(o,t.prototype),o}).apply(null,arguments)}function O(e){var r="function"==typeof Map?new Map:void 0;return(O=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(e))return r.get(e);r.set(e,t)}function t(){return E(e,arguments,b(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),w(t,e)})(e)}O(Error),O(Error),O(Error),"undefined"!=typeof window&&document.currentScript&&!window.basistheory&&(window.basistheory=y)}();
1
+ !function(){function e(e,r,t,n,o,i,l){try{var c=e[i](l),u=c.value}catch(e){t(e);return}c.done?r(u):Promise.resolve(u).then(n,o)}function r(r){return function(){var t=this,n=arguments;return new Promise(function(o,i){var l=r.apply(t,n);function c(r){e(l,o,i,c,u,"next",r)}function u(r){e(l,o,i,c,u,"throw",r)}c(void 0)})}}function t(e,r){var t,n,o,i,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){var u=[i,c];if(t)throw TypeError("Generator is already executing.");for(;l;)try{if(t=1,n&&(o=2&u[0]?n.return:u[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,u[1])).done)return o;switch(n=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return l.label++,{value:u[1],done:!1};case 5:l.label++,n=u[1],u=[0];continue;case 7:u=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){l=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){l.label=u[1];break}if(6===u[0]&&l.label<o[1]){l.label=o[1],o=u;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(u);break}o[2]&&l.ops.pop(),l.trys.pop();continue}u=r.call(e,l)}catch(e){u=[6,e],n=0}finally{t=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var n,o,i,l,c,u,s,a=(l=r(function(e,r){var n,l,c,u,s,a,d,f=arguments;return t(this,function(t){switch(t.label){case 0:if(n=f.length>2&&void 0!==f[2]?f[2]:{},o)return[2];d=function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}({level:r,message:e,service:"web-elements-loader",env:a=!i||(null==i?void 0:i.includes("localhost"))?"local":i.includes("dev")?"dev":"prod",referrer:null===(l=document)||void 0===l?void 0:l.referrer,origin:null===(c=window)||void 0===c?void 0:c.location.origin,url:null===(u=window)||void 0===u?void 0:u.location.href,userAgent:null===(s=navigator)||void 0===s?void 0:s.userAgent},n),["local","dev"].includes(a)&&console.log(d),t.label=1;case 1:return t.trys.push([1,3,,4]),[4,fetch("https://http-intake.logs.datadoghq.com/v1/input/".concat("pubb96b84a13912504f4354f2d794ea4fab"),{method:"POST",body:JSON.stringify(d),headers:{"Content-Type":"application/json"}})];case 2:return t.sent(),[3,4];case 3:return t.sent(),console.warn("There was an error sending telemetry."),[3,4];case 4:return[2]}})}),c=function(e,r){return l.apply(this,arguments)},{disableTelemetry:function(e){o=e},setBaseUrl:function(e){i=e},log:{error:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return c(e,"error",r)},info:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return c(e,"info",r)},warn:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return c(e,"warn",r)}}}),d=function(e){var r=document.querySelector('script[src^="'.concat(e,'"]'));if(r)return r;var t=document.head||document.body;if(!t)throw Error("No <head> or <body> elements found in the document.");var n=Object.assign(document.createElement("script"),{src:e});return t.append(n),n},f="Tried to load BasisTheoryElements in a non-DOM environment.",p="Unable to load the Elements script. This may be due to network restrictions or browser extensions like ad blockers interfering with script loading. Check browser settings or network connection and try again.",h=function(e,n){return new Promise(function(o,i){var l,c=d(e),u=!1;c.addEventListener("load",function(){window.BasisTheoryElements?o(window.BasisTheoryElements):(r(function(){return t(this,function(e){switch(e.label){case 0:return[4,a.log.error("Elements not found on window on load",{logType:"elementsNotFoundOnWindow",logOrigin:"loadScript",retryCount:n})];case 1:return e.sent(),[2]}})})(),i(Error("Basis Theory Elements did not load properly. Check network tab for more details.")))}),c.addEventListener("error",(l=r(function(r){var l,s,d;return t(this,function(t){switch(t.label){case 0:if(u)return[2];return u=!0,[4,a.log.error("Elements script onError event",{logType:"elementsScriptOnError",logOrigin:"loadScript",retryCount:n,event:{message:null==r?void 0:r.message,source:null==r?void 0:r.filename,lineno:null==r?void 0:r.lineno,colno:null==r?void 0:r.colno,error:null==r?void 0:r.error,target:null==r?void 0:r.target}})];case 1:t.sent(),t.label=2;case 2:return t.trys.push([2,3,,5]),null==c||c.remove(),[3,5];case 3:return l=t.sent(),[4,a.log.error("Error removing script from DOM on retry attempt ".concat(n),{logType:"scriptRemovalError",logOrigin:"loadScript",retryCount:n,removalError:l})];case 4:return t.sent(),[3,5];case 5:if(0===n)return h(e,n+1).then(o).catch(i),[2];t.label=6;case 6:return t.trys.push([6,12,,14]),[4,fetch(e)];case 7:if((s=t.sent()).ok)return[3,9];return[4,a.log.error("Second attempt to load elements script failed, fetch failed with status: ".concat(s.status,"."),{logType:"elementsScriptFetchFailure",logOrigin:"loadScript",retryCount:n,fetchResult:"error",fetchResponse:s})];case 8:return t.sent(),i(Error(f)),[3,11];case 9:return[4,a.log.error("Second attempt to load elements script failed, fetch success",{logType:"elementsScriptFetchFailure",logOrigin:"loadScript",retryCount:n,fetchResult:"success",fetchResponse:s})];case 10:t.sent(),i(Error(p)),t.label=11;case 11:return[3,14];case 12:return d=t.sent(),[4,a.log.error("Second attempt failed to load elements script failed, fetch network error.",{logType:"elementsScriptFetchError",logOrigin:"loadScript",retryCount:n,fetchResult:"error",fetchError:d})];case 13:return t.sent(),i(Error(p)),[3,14];case 14:return i((null==r?void 0:r.error)||(null==r?void 0:r.message)||Error(p)),[2]}})}),function(e){return l.apply(this,arguments)}))})},v="1.20.0",y=(u=r(function(e,o){var i,l,c,u,s,d,p;return t(this,function(y){switch(y.label){case 0:if(!e||0===e.length)throw Error("API key is required");return i=(null==o?void 0:o._devMode)?"js.flock-dev.com":"js.basistheory.com",a.setBaseUrl(i),a.disableTelemetry(!!(null==o?void 0:o.disableTelemetry)),l="https://".concat(i,"/web-elements/").concat(v,"/client/index.js"),c="https://".concat(i,"/web-elements/").concat(v,"/hosted-elements/"),[4,(n||(n=new Promise(function(e,n){var o;if(("undefined"==typeof window?"undefined":(o=window)&&"undefined"!=typeof Symbol&&o.constructor===Symbol?"symbol":typeof o)!="object"){r(function(){return t(this,function(e){switch(e.label){case 0:return[4,a.log.warn(f,{logType:"elementsNonDomError",logOrigin:"loadElements"})];case 1:return e.sent(),n(Error(f)),[2]}})})();return}if(window.BasisTheoryElements){e(window.BasisTheoryElements);return}h(new URL(l).toString().replace(RegExp("\\/$","u"),""),0).then(e).catch(function(e){n(e)})})),n)];case 1:return[2,y.sent().init(e,c,!1,null===(u=null==o?void 0:o.useSameOriginApi)||void 0===u||u,null!==(s=null==o?void 0:o.disableTelemetry)&&void 0!==s&&s,null!==(d=null==o?void 0:o.debug)&&void 0!==d&&d,null!==(p=null==o?void 0:o.useUat)&&void 0!==p&&p)]}})}),function(e,r){return u.apply(this,arguments)}),m=((s=m||{}).DECIMAL="decimal",s.EMAIL="email",s.NONE="none",s.NUMERIC="numeric",s.SEARCH="search",s.TEL="tel",s.TEXT="text",s.URL="url",s);function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function g(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(g=function(){return!!e})()}function w(e,r){return(w=Object.setPrototypeOf||function(e,r){return e.__proto__=r,e})(e,r)}function E(e,r,t){return(E=g()?Reflect.construct:function(e,r,t){var n=[null];n.push.apply(n,r);var o=new(Function.bind.apply(e,n));return t&&w(o,t.prototype),o}).apply(null,arguments)}function O(e){var r="function"==typeof Map?new Map:void 0;return(O=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(e))return r.get(e);r.set(e,t)}function t(){return E(e,arguments,b(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),w(t,e)})(e)}O(Error),O(Error),O(Error),"undefined"!=typeof window&&document.currentScript&&!window.basistheory&&(window.basistheory=y)}();
@@ -303,11 +303,14 @@ const $6477b722f43d24f2$export$2b0a6e5a1c78018f = (elementsUrl)=>{
303
303
 
304
304
 
305
305
 
306
- var $eef42ce81412d9ae$exports = {};
307
- const $eef42ce81412d9ae$var$version = '1.18.0';
308
- $eef42ce81412d9ae$exports = {
309
- version: $eef42ce81412d9ae$var$version
310
- };
306
+ // Auto-generated version file
307
+ const $eef42ce81412d9ae$export$83d89fbfd8236492 = '1.20.0';
308
+
309
+
310
+ // Build-time generated URLs for regular deployment
311
+ const $5dbc1ef1648671b0$export$67c92c3b857d033a = null;
312
+ const $5dbc1ef1648671b0$export$9c5c779c8690dca6 = null;
313
+ const $5dbc1ef1648671b0$export$c0bd0a2c0619c4e7 = null;
311
314
 
312
315
 
313
316
  const $316c9c8f85cead13$var$TEST_ENV = 'js.flock-dev.com';
@@ -317,8 +320,11 @@ const $316c9c8f85cead13$export$cbe2892587230861 = async (apiKey, options)=>{
317
320
  const baseUrl = options?._devMode ? $316c9c8f85cead13$var$TEST_ENV : $316c9c8f85cead13$var$DEFAULT_ENV;
318
321
  (0, $fe2ec396f58502a3$export$af88d00dbe7f521).setBaseUrl(baseUrl);
319
322
  (0, $fe2ec396f58502a3$export$af88d00dbe7f521).disableTelemetry(Boolean(options?.disableTelemetry));
320
- const elements = await (0, $6477b722f43d24f2$export$2b0a6e5a1c78018f)(`https://${baseUrl}/web-elements/${(0, $eef42ce81412d9ae$exports.version)}/client/index.js`);
321
- return elements.init(apiKey, `https://${baseUrl}/web-elements/${(0, $eef42ce81412d9ae$exports.version)}/hosted-elements/`, false, options?.useSameOriginApi ?? true, options?.disableTelemetry ?? false, options?.debug ?? false);
323
+ // Use build-time generated URLs if available, otherwise fall back to version-based URLs
324
+ const clientJsUrl = (0, $5dbc1ef1648671b0$export$67c92c3b857d033a) || `https://${baseUrl}/web-elements/${0, $eef42ce81412d9ae$export$83d89fbfd8236492}/client/index.js`;
325
+ const hostedElementsBaseUrl = (0, $5dbc1ef1648671b0$export$9c5c779c8690dca6) || `https://${baseUrl}/web-elements/${0, $eef42ce81412d9ae$export$83d89fbfd8236492}/hosted-elements/`;
326
+ const elements = await (0, $6477b722f43d24f2$export$2b0a6e5a1c78018f)(clientJsUrl);
327
+ return elements.init(apiKey, hostedElementsBaseUrl, false, options?.useSameOriginApi ?? true, options?.disableTelemetry ?? false, options?.debug ?? false, options?.useUat ?? false);
322
328
  };
323
329
 
324
330
 
@@ -303,11 +303,14 @@ const $2cc07a9862fd14af$export$2b0a6e5a1c78018f = (elementsUrl)=>{
303
303
 
304
304
 
305
305
 
306
- var $6a2f0bfcc5905f21$exports = {};
307
- const $6a2f0bfcc5905f21$var$version = '1.18.0';
308
- $6a2f0bfcc5905f21$exports = {
309
- version: $6a2f0bfcc5905f21$var$version
310
- };
306
+ // Auto-generated version file
307
+ const $6a2f0bfcc5905f21$export$83d89fbfd8236492 = '1.20.0';
308
+
309
+
310
+ // Build-time generated URLs for regular deployment
311
+ const $c9bd4b894cc03378$export$67c92c3b857d033a = null;
312
+ const $c9bd4b894cc03378$export$9c5c779c8690dca6 = null;
313
+ const $c9bd4b894cc03378$export$c0bd0a2c0619c4e7 = null;
311
314
 
312
315
 
313
316
  const $65168f0452925da7$var$TEST_ENV = 'js.flock-dev.com';
@@ -317,8 +320,11 @@ const $65168f0452925da7$export$cbe2892587230861 = async (apiKey, options)=>{
317
320
  const baseUrl = options?._devMode ? $65168f0452925da7$var$TEST_ENV : $65168f0452925da7$var$DEFAULT_ENV;
318
321
  (0, $367e4a81566d966b$export$af88d00dbe7f521).setBaseUrl(baseUrl);
319
322
  (0, $367e4a81566d966b$export$af88d00dbe7f521).disableTelemetry(Boolean(options?.disableTelemetry));
320
- const elements = await (0, $2cc07a9862fd14af$export$2b0a6e5a1c78018f)(`https://${baseUrl}/web-elements/${(0, $6a2f0bfcc5905f21$exports.version)}/client/index.js`);
321
- return elements.init(apiKey, `https://${baseUrl}/web-elements/${(0, $6a2f0bfcc5905f21$exports.version)}/hosted-elements/`, false, options?.useSameOriginApi ?? true, options?.disableTelemetry ?? false, options?.debug ?? false);
323
+ // Use build-time generated URLs if available, otherwise fall back to version-based URLs
324
+ const clientJsUrl = (0, $c9bd4b894cc03378$export$67c92c3b857d033a) || `https://${baseUrl}/web-elements/${0, $6a2f0bfcc5905f21$export$83d89fbfd8236492}/client/index.js`;
325
+ const hostedElementsBaseUrl = (0, $c9bd4b894cc03378$export$9c5c779c8690dca6) || `https://${baseUrl}/web-elements/${0, $6a2f0bfcc5905f21$export$83d89fbfd8236492}/hosted-elements/`;
326
+ const elements = await (0, $2cc07a9862fd14af$export$2b0a6e5a1c78018f)(clientJsUrl);
327
+ return elements.init(apiKey, hostedElementsBaseUrl, false, options?.useSameOriginApi ?? true, options?.disableTelemetry ?? false, options?.debug ?? false, options?.useUat ?? false);
322
328
  };
323
329
 
324
330
 
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@basis-theory/web-elements",
3
- "version": "1.18.0",
3
+ "version": "1.20.0",
4
4
  "repository": "https://github.com/basis-theory/web-elements",
5
5
  "license": "Apache-2.0",
6
6
  "author": {
@@ -15,7 +15,7 @@
15
15
  "!/bundle"
16
16
  ],
17
17
  "scripts": {
18
- "prebuild": "TARGET_DIR=../../web-elements/src node ../scripts/web-elements/write-version-file.js",
18
+ "prebuild": "TARGET_DIR=../../web-elements/src node ../scripts/web-elements/write-version-file.js && TARGET_DIR=../../web-elements/src node ../scripts/web-elements/write-urls-file.js",
19
19
  "build:dev": "yarn clean && parcel build && npx size-limit && yarn generate-sri",
20
20
  "build": "node ../scripts/web-elements/prepare.js && parcel build --no-cache && yarn generate-sri",
21
21
  "clean": "rimraf dist .parcel-cache",
@@ -154,8 +154,11 @@ export interface ElementInternalOptions {
154
154
  apiKey: string | undefined;
155
155
  baseUrl: string;
156
156
  type: ElementType;
157
+ debug: boolean | undefined;
158
+ disableTelemetry: boolean | undefined;
157
159
  useNgApi: boolean | undefined;
158
160
  useSameOriginApi: boolean | undefined;
161
+ useUat: boolean | undefined;
159
162
  }
160
163
  export enum InputMode {
161
164
  DECIMAL = "decimal",
@@ -200,7 +203,11 @@ interface TransformOption {
200
203
  interface AutoCompleteOption {
201
204
  autoComplete?: AutoCompleteValue;
202
205
  }
206
+ interface CardAutoCompleteOption {
207
+ autoComplete?: CardElementAutoComplete;
208
+ }
203
209
  export type CustomizableElementOptions = Pick<ElementOptions, 'cardTypes' | 'copyIconStyles' | 'disabled' | 'enableCopy' | 'inputMode' | 'readOnly' | 'skipLuhnValidation' | 'style' | 'validateOnChange'> & AutoCompleteOption;
210
+ export type CardCustomizableElementOptions = Pick<ElementOptions, 'cardTypes' | 'copyIconStyles' | 'disabled' | 'enableCopy' | 'inputMode' | 'readOnly' | 'skipLuhnValidation' | 'style' | 'validateOnChange'> & CardAutoCompleteOption;
204
211
  type ElementValueType = 'static' | 'reference';
205
212
  export interface CardElementValue<T extends ElementValueType> {
206
213
  cvc?: T extends 'reference' ? DataElementReference : string;
@@ -222,8 +229,7 @@ export interface CardElementAutoComplete {
222
229
  expirationDate: AutoCompleteValue;
223
230
  csc: AutoCompleteValue;
224
231
  }
225
- export type CreateCardElementOptions = Omit<CustomizableElementOptions, 'autoComplete'> & Pick<ElementOptions, 'cardTypes' | 'skipLuhnValidation' | 'title'> & {
226
- autoComplete?: CardElementAutoComplete;
232
+ export type CreateCardElementOptions = CardCustomizableElementOptions & Pick<ElementOptions, 'cardTypes' | 'skipLuhnValidation' | 'title'> & {
227
233
  placeholder?: CardElementPlaceholder;
228
234
  value?: CardElementValue<'static'>;
229
235
  };
@@ -370,10 +376,12 @@ export type EncryptTokenModel<DataType = Primitive> = {
370
376
  public_key: string;
371
377
  key_id: string;
372
378
  };
373
- export type EncryptedToken = {
379
+ type EncryptedSingleToken = {
374
380
  encrypted: string;
375
381
  type: TokenBase['type'];
376
382
  };
383
+ type EncryptedMultipleTokens = Record<string, EncryptedSingleToken>;
384
+ export type EncryptedToken = EncryptedSingleToken | EncryptedMultipleTokens;
377
385
  export type TokenizeObject<DataType = Primitive> = {
378
386
  [key: string]: Primitive | TokenizeObject<DataType> | TokenizeArray<DataType> | DataType;
379
387
  };
@@ -557,7 +565,7 @@ export interface BasisTheoryElements {
557
565
  createElement(type: 'cardVerificationCode', options: CreateCardVerificationCodeElementOptions): ICardVerificationCodeElement;
558
566
  }
559
567
  export interface BasisTheoryElementsInternal extends BasisTheoryElements {
560
- init: (apiKey: string | undefined, elementsBaseUrl: string, elementsUseNgApi: boolean | undefined, elementsUseSameOriginApi: boolean | undefined, disableTelemetry: boolean | undefined, debug: boolean | undefined) => Promise<BasisTheoryElements>;
568
+ init: (apiKey: string | undefined, elementsBaseUrl: string, elementsUseNgApi: boolean | undefined, elementsUseSameOriginApi: boolean | undefined, disableTelemetry: boolean | undefined, debug: boolean | undefined, useUat: boolean | undefined) => Promise<BasisTheoryElements>;
561
569
  hasElement: (payload: unknown) => boolean;
562
570
  }
563
571
  declare global {
@@ -569,6 +577,7 @@ export interface BasisTheoryInitOptions {
569
577
  _devMode?: boolean;
570
578
  disableTelemetry?: boolean;
571
579
  useSameOriginApi?: boolean;
580
+ useUat?: boolean;
572
581
  debug?: boolean;
573
582
  }
574
583
  export const basistheory: (apiKey: string, options?: BasisTheoryInitOptions) => Promise<BasisTheoryElements | undefined>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@basis-theory/web-elements",
3
- "version": "1.18.0",
3
+ "version": "1.20.0",
4
4
  "repository": "https://github.com/basis-theory/web-elements",
5
5
  "license": "Apache-2.0",
6
6
  "author": {
@@ -15,7 +15,7 @@
15
15
  "dist"
16
16
  ],
17
17
  "scripts": {
18
- "prebuild": "TARGET_DIR=../../web-elements/src node ../scripts/web-elements/write-version-file.js",
18
+ "prebuild": "TARGET_DIR=../../web-elements/src node ../scripts/web-elements/write-version-file.js && TARGET_DIR=../../web-elements/src node ../scripts/web-elements/write-urls-file.js",
19
19
  "build:dev": "yarn clean && parcel build && npx size-limit && yarn generate-sri",
20
20
  "build": "node ../scripts/web-elements/prepare.js && parcel build --no-cache && yarn generate-sri",
21
21
  "clean": "rimraf dist .parcel-cache",