@braze/web-sdk 4.0.3 → 4.0.4
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/index.d.ts +2 -4
- package/package.json +1 -1
- package/shared-lib/braze-shared-lib.js +1 -1
- package/shared-lib/event-types.js +1 -1
- package/shared-lib/guid.js +1 -1
- package/shared-lib/indexed-db-adapter.js +1 -1
- package/shared-lib/logger.js +1 -1
- package/shared-lib/supported-options.js +1 -1
- package/src/ContentCards/log-content-cards-displayed.js +1 -1
- package/src/ContentCards/subscribe-to-content-cards-updates.js +1 -1
- package/src/ContentCards/ui/hide-content-cards.js +1 -1
- package/src/ContentCards/ui/show-content-cards.js +1 -1
- package/src/Core/add-sdk-metadata.js +1 -1
- package/src/Core/change-user.js +1 -1
- package/src/Core/disable-sdk.js +1 -1
- package/src/Core/enable-sdk.js +1 -1
- package/src/Core/get-user.js +1 -1
- package/src/Core/handle-braze-action.js +1 -1
- package/src/Core/is-disabled.js +1 -1
- package/src/Core/log-custom-event.js +1 -1
- package/src/Core/log-purchase.js +1 -1
- package/src/Core/open-session.js +1 -1
- package/src/Core/request-immediate-data-flush.js +1 -1
- package/src/Core/wipe-data.js +1 -1
- package/src/Feed/feed-provider-factory.js +1 -1
- package/src/Feed/feed-provider.js +1 -1
- package/src/Feed/get-cached-feed.js +1 -1
- package/src/Feed/log-feed-displayed.js +1 -1
- package/src/Feed/request-feed-refresh.js +1 -1
- package/src/Feed/subscribe-to-feed-updates.js +1 -1
- package/src/Feed/ui/hide-feed.js +1 -1
- package/src/Feed/ui/show-feed.js +1 -1
- package/src/InAppMessage/display/html-message-to-html.js +1 -1
- package/src/InAppMessage/display/in-app-message-to-html.js +1 -1
- package/src/InAppMessage/in-app-message-manager.js +1 -1
- package/src/InAppMessage/log-in-app-message-button-click.js +1 -1
- package/src/InAppMessage/log-in-app-message-click.js +1 -1
- package/src/InAppMessage/log-in-app-message-html-click.js +1 -1
- package/src/InAppMessage/log-in-app-message-impression.js +1 -1
- package/src/InAppMessage/ui/show-in-app-message.js +1 -1
- package/src/Push/push-manager-factory.js +1 -1
- package/src/Push/push-manager.js +1 -1
- package/src/Push/request-push-permission.js +1 -1
- package/src/User/user-manager.js +1 -1
- package/src/User/user.js +1 -1
- package/src/common/feed-display.js +1 -1
- package/src/l10n/l10n-manager-factory.js +1 -1
- package/src/managers/auth-manager.js +1 -1
- package/src/managers/braze-instance.js +1 -1
- package/src/managers/device-manager.js +1 -1
- package/src/managers/network-manager.js +1 -1
- package/src/managers/server-config-manager.js +1 -1
- package/src/managers/session-manager.js +1 -1
- package/src/managers/storage-manager-factory.js +1 -1
- package/src/managers/storage-manager.js +1 -1
- package/src/models/backend-errors.js +1 -1
- package/src/models/braze-event.js +1 -1
- package/src/models/server-config.js +1 -1
- package/src/request-controller.js +1 -1
- package/src/triggers/models/filter.js +1 -1
- package/src/triggers/models/trigger-condition.js +1 -1
- package/src/triggers/models/trigger-events.js +1 -1
- package/src/triggers/models/trigger.js +1 -1
- package/src/triggers/triggers-provider-factory.js +1 -1
- package/src/triggers/triggers-provider.js +1 -1
- package/src/ui/js/attach-css.js +1 -1
- package/src/ui/js/feed-css.js +1 -1
- package/src/ui/js/iam-css.js +1 -1
- package/src/ui/js/load-font-awesome.js +1 -1
- package/src/util/base-device-parser.js +1 -1
- package/src/util/browser-detector.js +1 -1
- package/src/util/client-hints-parser.js +1 -1
- package/src/util/net.js +1 -1
- package/src/util/user-agent-parser.js +1 -1
- package/src/util/validation-utils.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isArray as p}from"./code-utils.js";export default class
|
|
1
|
+
import{isArray as p}from"./code-utils.js";export default class Vt{constructor(){}tf(){}ef(){}Ko(t){}static rf(t,e){if(t&&e)if(t=t.toLowerCase(),p(e.if)){for(let r=0;r<e.if.length;r++)if(-1!==t.indexOf(e.if[r].toLowerCase()))return e.identity}else if(-1!==t.indexOf(e.if.toLowerCase()))return e.identity}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Wt from"./client-hints-parser.js";import Xt from"./user-agent-parser.js";import{Browsers as Yt,OperatingSystems as ot}from"./device-constants.js";class Zt{constructor(){const t=navigator.userAgentData?Wt:Xt;this.dg=new t,this.userAgent=navigator.userAgent,this.browser=this.dg.tf(),this.version=this.dg.ef(),this.Ko().then((t=>this.OS=t)),this.language=(navigator.userLanguage||navigator.language||navigator.browserLanguage||navigator.systemLanguage||"").toLowerCase(),this.yo=Zt.Sg(this.userAgent)}bg(){return this.browser!==Yt.vg||this.version>8}Fa(){return this.browser===Yt.yg}qo(){return this.OS||null}Ko(){return this.OS?Promise.resolve(this.OS):this.dg.Ko(Zt.mg).then((t=>(this.OS=t,t)))}static Sg(t){t=t.toLowerCase();const i=["googlebot","bingbot","slurp","duckduckbot","baiduspider","yandex","facebookexternalhit","sogou","ia_archiver","https://github.com/prerender/prerender","aolbuild","bingpreview","msnbot","adsbot","mediapartners-google","teoma"];for(let n=0;n<i.length;n++)if(-1!==t.indexOf(i[n]))return!0;return!1}}Zt.mg=[{string:navigator.platform,if:"Win",identity:ot.Bg},{string:navigator.platform,if:"Mac",identity:ot.Og},{string:navigator.platform,if:"BlackBerry",identity:"BlackBerry"},{string:navigator.platform,if:"FreeBSD",identity:"FreeBSD"},{string:navigator.platform,if:"OpenBSD",identity:"OpenBSD"},{string:navigator.platform,if:"Nintendo",identity:"Nintendo"},{string:navigator.platform,if:"SunOS",identity:"SunOS"},{string:navigator.platform,if:"PlayStation",identity:"PlayStation"},{string:navigator.platform,if:"X11",identity:"X11"},{string:navigator.userAgent,if:["iPhone","iPad","iPod"],identity:ot.ln},{string:navigator.platform,if:"Pike v",identity:ot.ln},{string:navigator.userAgent,if:["Web0S"],identity:"WebOS"},{string:navigator.platform,if:["Linux armv7l","Android"],identity:ot.Pg},{string:navigator.userAgent,if:["Android"],identity:ot.Pg},{string:navigator.platform,if:"Linux",identity:"Linux"}];const et=new Zt;export{et as default,Zt as BrowserDetector};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Vt from"./base-device-parser.js";import{Browsers as Yt}from"./device-constants.js";export default class Wt extends Vt{constructor(){if(super(),this.userAgentData=navigator.userAgentData,this.userAgentData){const t=this.rc();this.browser=t.browser||"Unknown Browser",this.version=t.version||"Unknown Version"}}tf(){return this.browser}ef(){return this.version}Ko(t){if(this.OS)return Promise.resolve(this.OS);const r=r=>{for(let s=0;s<t.length;s++){const e=Wt.rf(r,t[s]);if(e)return this.OS=e,this.OS}return r};return this.userAgentData.platform?Promise.resolve(r(this.userAgentData.platform)):this.sc().then((t=>r(t.platform))).catch((()=>navigator.platform))}rc(){const t={},r=this.userAgentData.brands;if(r&&r.length)for(const s of r){const r=this.ic(Yt),e=s.brand.match(r);if(e&&e.length>0){t.browser=e[0],t.version=s.version;break}}return t}ic(t){const r=[];for(const s in t)t[s]!==Yt.vg&&r.push(t[s]);return new RegExp("("+r.join("|")+")","i")}sc(){return this.userAgentData.getHighEntropyValues?this.userAgentData.getHighEntropyValues(["platform"]):Promise.reject()}}
|
package/src/util/net.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import r from"../../shared-lib/braze-shared-lib.js";import Rt from"../models/backend-errors.js";const b={Fs:e=>{let t,o,n=!1;try{if(window.XMLHttpRequest&&(t=new XMLHttpRequest)&&void 0!==t.withCredentials||("undefined"!=typeof XDomainRequest?(t=new XDomainRequest,t.async=!0,n=!0):r.D.error("This browser does not have any supported ajax options!")),null!=t){const s=()=>{"function"==typeof e.error&&e.error(t.status),"function"==typeof e.gl&&e.gl(!1)};if(t.onload=()=>{let o=!1;if(n)o=!0;else{if(4!==t.readyState)return;o=t.status>=200&&t.status<300||304===t.status}if(o){if("function"==typeof e.S){let o;try{o=JSON.parse(t.responseText)}catch(o){const n={error:""===t.responseText?Rt.
|
|
1
|
+
import r from"../../shared-lib/braze-shared-lib.js";import Rt from"../models/backend-errors.js";const b={Fs:e=>{let t,o,n=!1;try{if(window.XMLHttpRequest&&(t=new XMLHttpRequest)&&void 0!==t.withCredentials||("undefined"!=typeof XDomainRequest?(t=new XDomainRequest,t.async=!0,n=!0):r.D.error("This browser does not have any supported ajax options!")),null!=t){const s=()=>{"function"==typeof e.error&&e.error(t.status),"function"==typeof e.gl&&e.gl(!1)};if(t.onload=()=>{let o=!1;if(n)o=!0;else{if(4!==t.readyState)return;o=t.status>=200&&t.status<300||304===t.status}if(o){if("function"==typeof e.S){let o;try{o=JSON.parse(t.responseText)}catch(o){const n={error:""===t.responseText?Rt.sa:Rt.oa,response:t.responseText};e.S(n)}o&&e.S(o)}"function"==typeof e.gl&&e.gl(!0)}else s()},t.onerror=()=>{s()},t.ontimeout=()=>{s()},o=JSON.stringify(e.data),n)t.onprogress=()=>{},t.open("post",e.url);else{t.open("POST",e.url,!0),t.setRequestHeader("Content-type","application/json"),t.setRequestHeader("X-Requested-With","XMLHttpRequest");const o=e.headers||[];for(let e=0;e<o.length;e++)t.setRequestHeader(o[e][0],o[e][1])}t.send(o)}}catch(e){r.D.error(`Network request error: ${e.message}`)}}};export default b;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Vt from"./base-device-parser.js";import{Browsers as Yt,OperatingSystems as ot}from"./device-constants.js";export default class Xt extends Vt{constructor(){super(),this.eu=Xt.nu(navigator.userAgent||"")}tf(){return this.eu[0]||"Unknown Browser"}ef(){return this.eu[1]||"Unknown Version"}Ko(r){for(let e=0;e<r.length;e++){let n=r[e].string,i=Xt.rf(n,r[e]);if(i)return i===ot.Og&&navigator.maxTouchPoints>1&&(i=ot.ln),Promise.resolve(i)}return Promise.resolve(navigator.platform)}static nu(r){let e,n=r.match(/(samsungbrowser|tizen|roku|konqueror|icab|crios|opera|ucbrowser|chrome|safari|firefox|camino|msie|trident(?=\/))\/?\s*(\.?\d+(\.\d+)*)/i)||[];if(/trident/i.test(n[1]))return e=/\brv[ :]+(\.?\d+(\.\d+)*)/g.exec(r)||[],[Yt.vg,e[1]||""];if(-1!==r.indexOf("(Web0S; Linux/SmartTV)"))return["LG Smart TV",null];if(-1!==r.indexOf("CrKey"))return["Chromecast",null];if(-1!==r.indexOf("BRAVIA")||-1!==r.indexOf("SonyCEBrowser")||-1!==r.indexOf("SonyDTV"))return["Sony Smart TV",null];if(-1!==r.indexOf("PhilipsTV"))return["Philips Smart TV",null];if(r.match(/\b(Roku)\b/))return["Roku",null];if(r.match(/\bAFTM\b/))return["Amazon Fire Stick",null];if(n[1]===Yt.rE&&(e=r.match(/\b(OPR|Edge|EdgA|Edg|UCBrowser)\/(\.?\d+(\.\d+)*)/),null!=e))return e=e.slice(1),e[0]=e[0].replace("OPR",Yt.EE),e[0]=e[0].replace("EdgA",Yt.eE),"Edg"===e[0]&&(e[0]=Yt.eE),[e[0],e[1]];if(n[1]===Yt.yg&&(e=r.match(/\b(EdgiOS)\/(\.?\d+(\.\d+)*)/),null!=e))return e=e.slice(1),e[0]=e[0].replace("EdgiOS",Yt.eE),[e[0],e[1]];if(n=n[2]?[n[1],n[2]]:[null,null],n[0]===Yt.yg&&null!=(e=r.match(/version\/(\.?\d+(\.\d+)*)/i))&&n.splice(1,1,e[1]),null!=(e=r.match(/\b(UCBrowser)\/(\.?\d+(\.\d+)*)/))&&n.splice(1,1,e[2]),n[0]===Yt.EE&&null!=(e=r.match(/mini\/(\.?\d+(\.\d+)*)/i)))return["Opera Mini",e[1]||""];if(n[0]){const r=n[0].toLowerCase();"msie"===r&&(n[0]=Yt.vg),"crios"===r&&(n[0]=Yt.rE),"tizen"===r&&(n[0]="Samsung Smart TV",n[1]=null),"samsungbrowser"===r&&(n[0]="Samsung Browser")}return n}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isArray as p,isDate as bt,isObject as zt,keys as
|
|
1
|
+
import{isArray as p,isDate as bt,isObject as zt,keys as Y}from"./code-utils.js";import{getByteLength as U}from"./string-utils.js";import r from"../../shared-lib/braze-shared-lib.js";import{toValidBackendTimeString as gt}from"./date-utils.js";import F from"./braze-actions.js";export const CUSTOM_DATA_REGEX=/^[^\x00-\x1F\x22]+$/;export const EMAIL_ADDRESS_REGEX=new RegExp(/^.+@.+\..+$/);export const CUSTOM_PROPERTIES_MAX_SIZE_BYTES=51200;export const CUSTOM_PROPERTIES_MAX_SIZE_STRING="50KB";export const BRAZE_ACTION_URI_REGEX=/^brazeActions:\/\/v\d+\//;export function _validatePropertyType(e){const t=typeof e;return null==e||"number"===t||"boolean"===t||bt(e)||"string"===t}export function _validateNestedProperties(e,t){if(p(e)&&p(t)){for(let r=0;r<e.length&&r<t.length;r++)if(bt(e[r])&&(t[r]=gt(e[r])),!_validateNestedProperties(e[r],t[r]))return!1}else{if(!zt(e))return _validatePropertyType(e);for(const r of Y(e))if(bt(e[r])&&(t[r]=gt(e[r])),!_validateNestedProperties(e[r],t[r]))return!1}return!0}export function _validateEventPropertyValue(e,t,n,o){let i;return i=zt(e)||p(e)?_validateNestedProperties(e,t):_validatePropertyType(e),i||r.D.error(`Cannot ${n} because ${o} "${e}" is invalid.`),i}export function validateStandardString(e,t,n,o){const i="string"==typeof e||null===e&&o;return i||r.D.error(`Cannot ${t} because ${n} "${e}" is invalid.`),i}export function validateCustomString(e,t,n){const o=null!=e&&"string"==typeof e&&(""===e||e.match(CUSTOM_DATA_REGEX));return o||r.D.error(`Cannot ${t} because ${n} "${e}" is invalid.`),o}export function validateCustomProperties(e,t,n,o,i){if(null==e&&(e={}),"object"!=typeof e||p(e))return r.D.error(`${t} requires that ${n} be an object. Ignoring ${i}.`),[!1,null];const a=JSON.stringify(e);if(U(a)>51200)return r.D.error(`Could not ${o} because ${n} was greater than the max size of 50KB.`),[!1,null];let s;try{s=JSON.parse(a)}catch(e){return r.D.error(`Could not ${o} because ${n} did not contain valid JSON.`),[!1,null]}for(let t in e){if(!validateCustomString(t,o,`the ${i} property name`))return[!1,null];const r=e[t];if(null==r){delete e[t],delete s[t];continue}bt(r)&&(s[t]=gt(r));if(!_validateEventPropertyValue(r,s[t],o,`the ${i} property "${t}"`))return[!1,null]}return[!0,s]}export function isValidEmail(e){return"string"==typeof e&&null!=e.toLowerCase().match(EMAIL_ADDRESS_REGEX)}export function isValidBrazeActionJson(e){if(!(F.properties.type in e))return!1;switch(e[F.properties.type]){case F.types.de:if(F.properties.ue in e)return!0;break;case F.types.logCustomEvent:case F.types.setEmailNotificationSubscriptionType:case F.types.setPushNotificationSubscriptionType:case F.types.setCustomUserAttribute:case F.types.addToSubscriptionGroup:case F.types.removeFromSubscriptionGroup:case F.types.addToCustomAttributeArray:case F.types.removeFromCustomAttributeArray:case F.types.me:case F.types.pe:if(F.properties.fe in e)return!0;break;case F.types.requestPushPermission:return!0;default:return!1}return!1}
|