@tef-novum/webview-bridge
Advanced tools
Comparing version 3.1.0 to 3.2.0
@@ -8,2 +8,3 @@ export { isWebViewBridgeAvailable, onNativeEvent, NativeEventHandler, } from './src/post-message'; | ||
export { logEvent, logTiming, setScreenName, setUserProperty, CD_WEBAPP_INSTALLED, CD_NOVUM_UID, CD_EVENT_VALUE, setCustomerHash, getCustomerHash, setTrackingProperty, } from './src/analytics'; | ||
export type { TrackingEvent } from './src/analytics'; | ||
export { renewSession, onSessionRenewed } from './src/sessions'; |
@@ -5,7 +5,17 @@ declare type CustomDimensionIdx = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 24 | 25 | 26; | ||
export declare const CD_EVENT_VALUE: CustomDimensionIdx; | ||
declare type TrackingEvent = Readonly<{ | ||
export declare type TrackingEvent = Readonly<{ | ||
/** Typically the object that was interacted with (e.g. 'Video') */ | ||
category: string; | ||
/** The type of interaction (e.g. 'play') */ | ||
action: string; | ||
/** Useful for categorizing events (e.g. 'Fall Campaign') */ | ||
label?: string; | ||
/** A numeric value associated with the event (e.g. 43) */ | ||
value?: number; | ||
/** | ||
* Screen name where the event happened. | ||
* If not specified, native app will use value from the latest setScreenName() call | ||
*/ | ||
screenName?: string; | ||
/** Other properties are allowed */ | ||
[key: string]: any; | ||
@@ -12,0 +22,0 @@ }>; |
@@ -1,5 +0,5 @@ | ||
define(['exports'], function (exports) { 'use strict'; | ||
define(['exports'], (function (exports) { 'use strict'; | ||
var id = 1; | ||
var getId = function () { return "webapp-" + id++; }; | ||
var getId = function () { return "webapp-".concat(id++); }; | ||
@@ -93,3 +93,3 @@ var BRIDGE = '__tuenti_webview_bridge'; | ||
code: 500, | ||
reason: "bad type: " + response.type + ". Expecting " + type, | ||
reason: "bad type: ".concat(response.type, ". Expecting ").concat(type), | ||
}); | ||
@@ -121,3 +121,3 @@ } | ||
catch (e) { | ||
throw Error("Problem parsing webview message: " + jsonMessage); | ||
throw Error("Problem parsing webview message: ".concat(jsonMessage)); | ||
} | ||
@@ -591,3 +591,3 @@ messageListeners.forEach(function (f) { return f(message); }); | ||
var _a; | ||
ga('NovumTracker.send', __assign((_a = { hitType: 'timing', hitCallback: resolve }, _a["dimension" + CD_EVENT_VALUE] = String(value), _a), params)); | ||
ga('NovumTracker.send', __assign((_a = { hitType: 'timing', hitCallback: resolve }, _a["dimension".concat(CD_EVENT_VALUE)] = String(value), _a), params)); | ||
}); | ||
@@ -622,3 +622,3 @@ }, | ||
? screenName | ||
: "/" + screenName; | ||
: "/".concat(screenName); | ||
if (pageName !== currentPageName) { | ||
@@ -692,3 +692,3 @@ currentPageName = pageName; | ||
ga('NovumTracker.set', (_a = {}, | ||
_a["dimension" + dimensionIdx] = String(value), | ||
_a["dimension".concat(dimensionIdx)] = String(value), | ||
_a)); | ||
@@ -793,2 +793,2 @@ return Promise.resolve(); | ||
}); | ||
})); |
@@ -6,3 +6,3 @@ 'use strict'; | ||
var id = 1; | ||
var getId = function () { return "webapp-" + id++; }; | ||
var getId = function () { return "webapp-".concat(id++); }; | ||
@@ -96,3 +96,3 @@ var BRIDGE = '__tuenti_webview_bridge'; | ||
code: 500, | ||
reason: "bad type: " + response.type + ". Expecting " + type, | ||
reason: "bad type: ".concat(response.type, ". Expecting ").concat(type), | ||
}); | ||
@@ -124,3 +124,3 @@ } | ||
catch (e) { | ||
throw Error("Problem parsing webview message: " + jsonMessage); | ||
throw Error("Problem parsing webview message: ".concat(jsonMessage)); | ||
} | ||
@@ -594,3 +594,3 @@ messageListeners.forEach(function (f) { return f(message); }); | ||
var _a; | ||
ga('NovumTracker.send', __assign((_a = { hitType: 'timing', hitCallback: resolve }, _a["dimension" + CD_EVENT_VALUE] = String(value), _a), params)); | ||
ga('NovumTracker.send', __assign((_a = { hitType: 'timing', hitCallback: resolve }, _a["dimension".concat(CD_EVENT_VALUE)] = String(value), _a), params)); | ||
}); | ||
@@ -625,3 +625,3 @@ }, | ||
? screenName | ||
: "/" + screenName; | ||
: "/".concat(screenName); | ||
if (pageName !== currentPageName) { | ||
@@ -695,3 +695,3 @@ currentPageName = pageName; | ||
ga('NovumTracker.set', (_a = {}, | ||
_a["dimension" + dimensionIdx] = String(value), | ||
_a["dimension".concat(dimensionIdx)] = String(value), | ||
_a)); | ||
@@ -698,0 +698,0 @@ return Promise.resolve(); |
@@ -5,3 +5,3 @@ var webviewBridge = (function (exports) { | ||
var id = 1; | ||
var getId = function () { return "webapp-" + id++; }; | ||
var getId = function () { return "webapp-".concat(id++); }; | ||
@@ -95,3 +95,3 @@ var BRIDGE = '__tuenti_webview_bridge'; | ||
code: 500, | ||
reason: "bad type: " + response.type + ". Expecting " + type, | ||
reason: "bad type: ".concat(response.type, ". Expecting ").concat(type), | ||
}); | ||
@@ -123,3 +123,3 @@ } | ||
catch (e) { | ||
throw Error("Problem parsing webview message: " + jsonMessage); | ||
throw Error("Problem parsing webview message: ".concat(jsonMessage)); | ||
} | ||
@@ -593,3 +593,3 @@ messageListeners.forEach(function (f) { return f(message); }); | ||
var _a; | ||
ga('NovumTracker.send', __assign((_a = { hitType: 'timing', hitCallback: resolve }, _a["dimension" + CD_EVENT_VALUE] = String(value), _a), params)); | ||
ga('NovumTracker.send', __assign((_a = { hitType: 'timing', hitCallback: resolve }, _a["dimension".concat(CD_EVENT_VALUE)] = String(value), _a), params)); | ||
}); | ||
@@ -624,3 +624,3 @@ }, | ||
? screenName | ||
: "/" + screenName; | ||
: "/".concat(screenName); | ||
if (pageName !== currentPageName) { | ||
@@ -694,3 +694,3 @@ currentPageName = pageName; | ||
ga('NovumTracker.set', (_a = {}, | ||
_a["dimension" + dimensionIdx] = String(value), | ||
_a["dimension".concat(dimensionIdx)] = String(value), | ||
_a)); | ||
@@ -797,2 +797,2 @@ return Promise.resolve(); | ||
}({})); | ||
})({}); |
@@ -1,1 +0,1 @@ | ||
var webviewBridge=function(e){"use strict";var n=1,t=function(){return"webapp-"+n++},r="__tuenti_webview_bridge",o=function(){return!("undefined"==typeof window||!window.tuentiWebView||!window.tuentiWebView.postMessage)},i=function(){return!!("undefined"!=typeof window&&window.webkit&&window.webkit.messageHandlers&&window.webkit.messageHandlers.tuentiWebView&&window.webkit.messageHandlers.tuentiWebView.postMessage)},a=function(){return"undefined"==typeof window?null:o()?function(e){window.tuentiWebView.postMessage(e)}:i()?function(e){window.webkit.messageHandlers.tuentiWebView.postMessage(e)}:null},u=[],s=function(e){u.push(e)},c=function(e){u=u.filter(function(n){return n!==e})},l=function(){return!("undefined"!=typeof window&&window.frameElement&&!window.frameElement.hasAttribute("data-enable-webview-bridge"))&&(o()||i())},d=function(e,n){var r=e.type,o=e.id,i=void 0===o?t():o,u=e.payload,l=a(),d=JSON.stringify({type:r,id:i,payload:u});return l?(setTimeout(function(){l(d)}),new Promise(function(e,t){var o=!1,a=function(n){n.id!==i||o||(n.type===r?e(n.payload):"ERROR"===n.type?t(n.payload):t({code:500,reason:"bad type: "+n.type+". Expecting "+r}),c(a))};s(a),n&&setTimeout(function(){o=!0,c(a),t({code:408,reason:"request timeout"})},n)})):Promise.reject({code:500,reason:"WebView postMessage not available"})};"undefined"!=typeof window&&(window[r]=window[r]||{postMessage:function(e){var n;try{n=JSON.parse(e)}catch(n){throw Error("Problem parsing webview message: "+e)}u.forEach(function(e){return e(n)})}});var f=function(e,n){var t=function(t){t.type===e&&Promise.resolve(n(t.payload)).then(function(e){var n=a();n&&n(JSON.stringify({type:t.type,id:t.id,payload:e}))})};return s(t),function(){c(t)}},p=function(e){var n=e.title,t=e.expandedTitle,r=e.showBackButton,o=e.showReloadButton,i=e.showProfileButton,a=e.backgroundColor;return l()?d({type:"NAVIGATION_BAR",payload:{title:n,expandedTitle:t,showBackButton:r,showReloadButton:o,showProfileButton:i,backgroundColor:a}}):(void 0!==n&&"undefined"!=typeof document&&(document.title=n),Promise.resolve())},m=null,y=function(e){return"true"===m.result[e]},w=function(e){return Math.floor(e/1e3)},v=function(){return(v=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++)for(var o in n=arguments[t])Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e}).apply(this,arguments)};var g,b=["NovumTracker","OBARGTracker"],T=function(e){return b.indexOf(e.get("name"))>=0},E=function(e){var n=e.onAndroid,t=e.onIos,r=e.onWeb;return"undefined"==typeof window?Promise.resolve():window.AnalyticsWebInterface?n(window.AnalyticsWebInterface):window.webkit&&window.webkit.messageHandlers&&window.webkit.messageHandlers.firebase?t(window.webkit.messageHandlers.firebase):window.ga&&window.ga.loaded?r(window.ga):Promise.resolve()},h={obIds:1,paymentModels:2,serviceWorkerStatus:3,isAdmin:5,hasIpComms:6,af_source:9,af_campaign:10,novum_uid_session:11,user_logged:12,currentSubscriptionId:13,currentSubscriptionType:14,currentPaymentModel:15,webviewBrowserVersion:16,activatedRoles:17,appInstanceId:18,experimentflag:20,friendsApps:24,accountLineSelector:25,OneClickDisplayed:26};return e.CD_EVENT_VALUE=8,e.CD_NOVUM_UID=7,e.CD_WEBAPP_INSTALLED=4,e.attachToEmail=function(e){var n=e.url,t=e.subject,r=e.fileName,o=e.recipient,i=e.body;return d({type:"ATTACH_TO_EMAIL",payload:{url:n,subject:t,fileName:r,recipient:o,body:i}})},e.checkPermissionStatus=function(e,n){return d({type:"OS_PERMISSION_STATUS",payload:{feature:e,params:n}}).then(function(e){return e.granted})},e.createCalendarEvent=function(e){var n=e.beginTime,t=e.endTime,r=e.title;return d({type:"CREATE_CALENDAR_EVENT",payload:{beginTime:w(n),endTime:w(t),title:r}})},e.dismiss=function(e){return d({type:"DISMISS",payload:{onCompletionUrl:e}})},e.fetch=function(e){var n=e.url,t=e.method,r=e.headers,o=e.body;return l()?d({type:"FETCH",payload:{url:n,method:t,headers:r,body:o}}).catch(function(){return{status:500,headers:{},body:"Bridge call failed"}}):Promise.resolve({status:500,headers:{},body:"Bridge not available"})},e.fetchContactsByPhone=function(e){return d({type:"FETCH_CONTACTS_DATA",payload:{phoneNumbers:e}})},e.getAppMetadata=function(e){return d({type:"GET_APP_METADATA",payload:{appToken:e}})},e.getCustomerHash=function(){return d({type:"GET_CUSTOMER_HASH"})},e.getDiskSpaceInfo=function(){return d({type:"GET_DISK_SPACE_INFO"})},e.getEsimInfo=function(){return d({type:"GET_ESIM_INFO"}).catch(function(){return{supportsEsim:!1}})},e.internalNavigation=function(e){return d({type:"INTERNAL_NAVIGATION",payload:{feature:e}})},e.isABTestingAvailable=function(e){if(m)return Promise.resolve(y(e));var n=new Promise(function(e){setTimeout(function(){e(!1)},500)}),t=d({type:"GET_REMOTE_CONFIG"}).then(function(n){return m=n,y(e)});return Promise.race([n,t])},e.isWebViewBridgeAvailable=l,e.logEvent=function(e){var n=e.category,t=e.action,r=e.label,o=e.value,i=function(e,n){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&n.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)n.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(t[r[o]]=e[r[o]])}return t}(e,["category","action","label","value"]);if(!n||!t)return console.warn('Analytics event should have "category" and "action"',{category:n,action:t}),Promise.resolve();var a=n;r||(r="null_label"),o||(o=0);var u=v({eventCategory:n,eventAction:t,eventLabel:function(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}(r),eventValue:o},i);return E({onAndroid:function(e){return e.logEvent&&e.logEvent(a,JSON.stringify(u)),Promise.resolve()},onIos:function(e){return e.postMessage({command:"logEvent",name:a,parameters:u}),Promise.resolve()},onWeb:function(e){return new Promise(function(n){e("NovumTracker.send","event",v(v({},u),{hitCallback:n}))})}})},e.logTiming=function(e){var n=e.category,t=void 0===n?"performance_timer":n,r=e.variable,o=e.value,i=e.label;if(!t||!r||!o)return console.warn('Analytics timing should have "category", "variable" and "value"',{category:t,variable:r,value:o}),Promise.resolve();var a={timingCategory:t,timingVar:r,timingValue:o=Math.round(o),timingLabel:i},u=t;return E({onAndroid:function(e){return e.logEvent&&e.logEvent(u,JSON.stringify(a)),Promise.resolve()},onIos:function(e){return e.postMessage({command:"logEvent",name:u,parameters:a}),Promise.resolve()},onWeb:function(e){return new Promise(function(n){var t;e("NovumTracker.send",v(((t={hitType:"timing",hitCallback:n}).dimension8=String(o),t),a))})}})},e.nativeAlert=function(e){var n=e.message,t=e.title,r=e.buttonText;return l()?d({type:"ALERT",payload:{title:t,message:n,buttonText:r}}):("undefined"!=typeof window&&window.alert(n),Promise.resolve())},e.nativeConfirm=function(e){var n=e.message,t=e.title,r=e.acceptText,o=e.cancelText;return l()?d({type:"CONFIRM",payload:{message:n,title:t,acceptText:r,cancelText:o}}).then(function(e){return e.result}):Promise.resolve("undefined"!=typeof window&&window.confirm(n))},e.nativeMessage=function(e){var n=e.message,t=e.duration,r=e.buttonText,o=e.type;return l()?d({type:"MESSAGE",payload:{message:n,duration:t,buttonText:r,type:o}}):("undefined"!=typeof window&&window.alert(n),Promise.resolve())},e.notifyPageLoaded=function(){return d({type:"PAGE_LOADED"})},e.onNativeEvent=function(e){return f("NATIVE_EVENT",function(n){return{action:e({event:n.event}).action||"default"}})},e.onSessionRenewed=function(e){return f("SESSION_RENEWED",function(n){var t=n.accessToken;return e(t)})},e.renewSession=function(e){return d({type:"RENEW_SESSION",payload:{accessToken:e||null}}).then(function(e){return e.accessToken})},e.reportStatus=function(e){var n=e.feature,t=e.status,r=e.reason;return d({type:"STATUS_REPORT",payload:{feature:n,status:t,reason:r}})},e.requestContact=function(e){var n=(void 0===e?{}:e).filter;return d({type:"GET_CONTACT_DATA",payload:{filter:void 0===n?"phone":n}})},e.requestDeviceImei=function(){return d({type:"IMEI"},200).then(function(e){return e.imei}).catch(function(){return null})},e.requestSimIcc=function(){return d({type:"SIM_ICC"},200).then(function(e){return e.icc}).catch(function(){return null})},e.requestSimImsi=function(){return d({type:"IMSI"},200).then(function(e){return e.imsi}).catch(function(){return null})},e.requestVibration=function(e){return d({type:"VIBRATION",payload:{type:e}})},e.setActionBehavior=function(e){return d({type:"SET_ACTION_BEHAVIOR",payload:{actions:e}}).catch(function(){})},e.setCustomerHash=function(e){return d({type:"SET_CUSTOMER_HASH",payload:{hash:e}})},e.setScreenName=function(e,n){return e?E({onAndroid:function(n){return n.setScreenName&&n.setScreenName(e),Promise.resolve()},onIos:function(n){return n.postMessage({command:"setScreenName",name:e}),Promise.resolve()},onWeb:function(t){return new Promise(function(r){var o=e.startsWith("/")?e:"/"+e;o!==g?(g=o,t(function(){t.getAll().filter(T).forEach(function(e){e.set("page",o),e.send("pageView",v(v({},n),{hitCallback:r}))})})):r()})}}):(console.warn("Missing analytics screenName"),Promise.resolve())},e.setTrackingProperty=function(e,n,t){return d({type:"SET_TRACKING_PROPERTY",payload:{system:e,name:n,value:t}}).catch(function(){})},e.setUserProperty=function(e,n){return e&&n?(n=String(n),E({onAndroid:function(t){return t.setUserProperty&&t.setUserProperty(e,n),Promise.resolve()},onIos:function(t){return t.postMessage({command:"setUserProperty",name:e,value:n}),Promise.resolve()},onWeb:function(t){var r,o=h[e];return o?(t("NovumTracker.set",((r={})["dimension"+o]=String(n),r)),Promise.resolve()):(console.warn("No custom dimension defined for user property",e),Promise.resolve())}})):(console.warn("Trying to set analytics user property without name or value",e,n),Promise.resolve())},e.setWebViewTitle=function(e){return l()?p({title:e}):("undefined"!=typeof document&&(document.title=e),Promise.resolve())},e.share=function(e){return d({type:"SHARE",payload:e})},e.updateNavigationBar=p,Object.defineProperty(e,"__esModule",{value:!0}),e}({}); | ||
var webviewBridge=function(e){"use strict";var n=1,t=function(){return"webapp-".concat(n++)},r="__tuenti_webview_bridge",o=function(){return!("undefined"==typeof window||!window.tuentiWebView||!window.tuentiWebView.postMessage)},i=function(){return!!("undefined"!=typeof window&&window.webkit&&window.webkit.messageHandlers&&window.webkit.messageHandlers.tuentiWebView&&window.webkit.messageHandlers.tuentiWebView.postMessage)},a=function(){return"undefined"==typeof window?null:o()?function(e){window.tuentiWebView.postMessage(e)}:i()?function(e){window.webkit.messageHandlers.tuentiWebView.postMessage(e)}:null},u=[],s=function(e){u.push(e)},c=function(e){u=u.filter(function(n){return n!==e})},l=function(){return!("undefined"!=typeof window&&window.frameElement&&!window.frameElement.hasAttribute("data-enable-webview-bridge"))&&(o()||i())},d=function(e,n){var r=e.type,o=e.id,i=void 0===o?t():o,u=e.payload,l=a(),d=JSON.stringify({type:r,id:i,payload:u});return l?(setTimeout(function(){l(d)}),new Promise(function(e,t){var o=!1,a=function(n){n.id!==i||o||(n.type===r?e(n.payload):"ERROR"===n.type?t(n.payload):t({code:500,reason:"bad type: ".concat(n.type,". Expecting ").concat(r)}),c(a))};s(a),n&&setTimeout(function(){o=!0,c(a),t({code:408,reason:"request timeout"})},n)})):Promise.reject({code:500,reason:"WebView postMessage not available"})};"undefined"!=typeof window&&(window[r]=window[r]||{postMessage:function(e){var n;try{n=JSON.parse(e)}catch(n){throw Error("Problem parsing webview message: ".concat(e))}u.forEach(function(e){return e(n)})}});var f=function(e,n){var t=function(t){t.type===e&&Promise.resolve(n(t.payload)).then(function(e){var n=a();n&&n(JSON.stringify({type:t.type,id:t.id,payload:e}))})};return s(t),function(){c(t)}},p=function(e){var n=e.title,t=e.expandedTitle,r=e.showBackButton,o=e.showReloadButton,i=e.showProfileButton,a=e.backgroundColor;return l()?d({type:"NAVIGATION_BAR",payload:{title:n,expandedTitle:t,showBackButton:r,showReloadButton:o,showProfileButton:i,backgroundColor:a}}):(void 0!==n&&"undefined"!=typeof document&&(document.title=n),Promise.resolve())},m=null,y=function(e){return"true"===m.result[e]},w=function(e){return Math.floor(e/1e3)},v=function(){return(v=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++)for(var o in n=arguments[t])Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e}).apply(this,arguments)};var g,b=["NovumTracker","OBARGTracker"],T=function(e){return b.indexOf(e.get("name"))>=0},E=function(e){var n=e.onAndroid,t=e.onIos,r=e.onWeb;return"undefined"==typeof window?Promise.resolve():window.AnalyticsWebInterface?n(window.AnalyticsWebInterface):window.webkit&&window.webkit.messageHandlers&&window.webkit.messageHandlers.firebase?t(window.webkit.messageHandlers.firebase):window.ga&&window.ga.loaded?r(window.ga):Promise.resolve()},h={obIds:1,paymentModels:2,serviceWorkerStatus:3,isAdmin:5,hasIpComms:6,af_source:9,af_campaign:10,novum_uid_session:11,user_logged:12,currentSubscriptionId:13,currentSubscriptionType:14,currentPaymentModel:15,webviewBrowserVersion:16,activatedRoles:17,appInstanceId:18,experimentflag:20,friendsApps:24,accountLineSelector:25,OneClickDisplayed:26};return e.CD_EVENT_VALUE=8,e.CD_NOVUM_UID=7,e.CD_WEBAPP_INSTALLED=4,e.attachToEmail=function(e){var n=e.url,t=e.subject,r=e.fileName,o=e.recipient,i=e.body;return d({type:"ATTACH_TO_EMAIL",payload:{url:n,subject:t,fileName:r,recipient:o,body:i}})},e.checkPermissionStatus=function(e,n){return d({type:"OS_PERMISSION_STATUS",payload:{feature:e,params:n}}).then(function(e){return e.granted})},e.createCalendarEvent=function(e){var n=e.beginTime,t=e.endTime,r=e.title;return d({type:"CREATE_CALENDAR_EVENT",payload:{beginTime:w(n),endTime:w(t),title:r}})},e.dismiss=function(e){return d({type:"DISMISS",payload:{onCompletionUrl:e}})},e.fetch=function(e){var n=e.url,t=e.method,r=e.headers,o=e.body;return l()?d({type:"FETCH",payload:{url:n,method:t,headers:r,body:o}}).catch(function(){return{status:500,headers:{},body:"Bridge call failed"}}):Promise.resolve({status:500,headers:{},body:"Bridge not available"})},e.fetchContactsByPhone=function(e){return d({type:"FETCH_CONTACTS_DATA",payload:{phoneNumbers:e}})},e.getAppMetadata=function(e){return d({type:"GET_APP_METADATA",payload:{appToken:e}})},e.getCustomerHash=function(){return d({type:"GET_CUSTOMER_HASH"})},e.getDiskSpaceInfo=function(){return d({type:"GET_DISK_SPACE_INFO"})},e.getEsimInfo=function(){return d({type:"GET_ESIM_INFO"}).catch(function(){return{supportsEsim:!1}})},e.internalNavigation=function(e){return d({type:"INTERNAL_NAVIGATION",payload:{feature:e}})},e.isABTestingAvailable=function(e){if(m)return Promise.resolve(y(e));var n=new Promise(function(e){setTimeout(function(){e(!1)},500)}),t=d({type:"GET_REMOTE_CONFIG"}).then(function(n){return m=n,y(e)});return Promise.race([n,t])},e.isWebViewBridgeAvailable=l,e.logEvent=function(e){var n=e.category,t=e.action,r=e.label,o=e.value,i=function(e,n){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&n.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)n.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(t[r[o]]=e[r[o]])}return t}(e,["category","action","label","value"]);if(!n||!t)return console.warn('Analytics event should have "category" and "action"',{category:n,action:t}),Promise.resolve();var a=n;r||(r="null_label"),o||(o=0);var u=v({eventCategory:n,eventAction:t,eventLabel:function(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}(r),eventValue:o},i);return E({onAndroid:function(e){return e.logEvent&&e.logEvent(a,JSON.stringify(u)),Promise.resolve()},onIos:function(e){return e.postMessage({command:"logEvent",name:a,parameters:u}),Promise.resolve()},onWeb:function(e){return new Promise(function(n){e("NovumTracker.send","event",v(v({},u),{hitCallback:n}))})}})},e.logTiming=function(e){var n=e.category,t=void 0===n?"performance_timer":n,r=e.variable,o=e.value,i=e.label;if(!t||!r||!o)return console.warn('Analytics timing should have "category", "variable" and "value"',{category:t,variable:r,value:o}),Promise.resolve();var a={timingCategory:t,timingVar:r,timingValue:o=Math.round(o),timingLabel:i},u=t;return E({onAndroid:function(e){return e.logEvent&&e.logEvent(u,JSON.stringify(a)),Promise.resolve()},onIos:function(e){return e.postMessage({command:"logEvent",name:u,parameters:a}),Promise.resolve()},onWeb:function(e){return new Promise(function(n){var t;e("NovumTracker.send",v(((t={hitType:"timing",hitCallback:n})["dimension".concat(8)]=String(o),t),a))})}})},e.nativeAlert=function(e){var n=e.message,t=e.title,r=e.buttonText;return l()?d({type:"ALERT",payload:{title:t,message:n,buttonText:r}}):("undefined"!=typeof window&&window.alert(n),Promise.resolve())},e.nativeConfirm=function(e){var n=e.message,t=e.title,r=e.acceptText,o=e.cancelText;return l()?d({type:"CONFIRM",payload:{message:n,title:t,acceptText:r,cancelText:o}}).then(function(e){return e.result}):Promise.resolve("undefined"!=typeof window&&window.confirm(n))},e.nativeMessage=function(e){var n=e.message,t=e.duration,r=e.buttonText,o=e.type;return l()?d({type:"MESSAGE",payload:{message:n,duration:t,buttonText:r,type:o}}):("undefined"!=typeof window&&window.alert(n),Promise.resolve())},e.notifyPageLoaded=function(){return d({type:"PAGE_LOADED"})},e.onNativeEvent=function(e){return f("NATIVE_EVENT",function(n){return{action:e({event:n.event}).action||"default"}})},e.onSessionRenewed=function(e){return f("SESSION_RENEWED",function(n){var t=n.accessToken;return e(t)})},e.renewSession=function(e){return d({type:"RENEW_SESSION",payload:{accessToken:e||null}}).then(function(e){return e.accessToken})},e.reportStatus=function(e){var n=e.feature,t=e.status,r=e.reason;return d({type:"STATUS_REPORT",payload:{feature:n,status:t,reason:r}})},e.requestContact=function(e){var n=(void 0===e?{}:e).filter;return d({type:"GET_CONTACT_DATA",payload:{filter:void 0===n?"phone":n}})},e.requestDeviceImei=function(){return d({type:"IMEI"},200).then(function(e){return e.imei}).catch(function(){return null})},e.requestSimIcc=function(){return d({type:"SIM_ICC"},200).then(function(e){return e.icc}).catch(function(){return null})},e.requestSimImsi=function(){return d({type:"IMSI"},200).then(function(e){return e.imsi}).catch(function(){return null})},e.requestVibration=function(e){return d({type:"VIBRATION",payload:{type:e}})},e.setActionBehavior=function(e){return d({type:"SET_ACTION_BEHAVIOR",payload:{actions:e}}).catch(function(){})},e.setCustomerHash=function(e){return d({type:"SET_CUSTOMER_HASH",payload:{hash:e}})},e.setScreenName=function(e,n){return e?E({onAndroid:function(n){return n.setScreenName&&n.setScreenName(e),Promise.resolve()},onIos:function(n){return n.postMessage({command:"setScreenName",name:e}),Promise.resolve()},onWeb:function(t){return new Promise(function(r){var o=e.startsWith("/")?e:"/".concat(e);o!==g?(g=o,t(function(){t.getAll().filter(T).forEach(function(e){e.set("page",o),e.send("pageView",v(v({},n),{hitCallback:r}))})})):r()})}}):(console.warn("Missing analytics screenName"),Promise.resolve())},e.setTrackingProperty=function(e,n,t){return d({type:"SET_TRACKING_PROPERTY",payload:{system:e,name:n,value:t}}).catch(function(){})},e.setUserProperty=function(e,n){return e&&n?(n=String(n),E({onAndroid:function(t){return t.setUserProperty&&t.setUserProperty(e,n),Promise.resolve()},onIos:function(t){return t.postMessage({command:"setUserProperty",name:e,value:n}),Promise.resolve()},onWeb:function(t){var r,o=h[e];return o?(t("NovumTracker.set",((r={})["dimension".concat(o)]=String(n),r)),Promise.resolve()):(console.warn("No custom dimension defined for user property",e),Promise.resolve())}})):(console.warn("Trying to set analytics user property without name or value",e,n),Promise.resolve())},e.setWebViewTitle=function(e){return l()?p({title:e}):("undefined"!=typeof document&&(document.title=e),Promise.resolve())},e.share=function(e){return d({type:"SHARE",payload:e})},e.updateNavigationBar=p,Object.defineProperty(e,"__esModule",{value:!0}),e}({}); |
@@ -5,6 +5,6 @@ (function (global, factory) { | ||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.webviewBridge = {})); | ||
}(this, (function (exports) { 'use strict'; | ||
})(this, (function (exports) { 'use strict'; | ||
var id = 1; | ||
var getId = function () { return "webapp-" + id++; }; | ||
var getId = function () { return "webapp-".concat(id++); }; | ||
@@ -98,3 +98,3 @@ var BRIDGE = '__tuenti_webview_bridge'; | ||
code: 500, | ||
reason: "bad type: " + response.type + ". Expecting " + type, | ||
reason: "bad type: ".concat(response.type, ". Expecting ").concat(type), | ||
}); | ||
@@ -126,3 +126,3 @@ } | ||
catch (e) { | ||
throw Error("Problem parsing webview message: " + jsonMessage); | ||
throw Error("Problem parsing webview message: ".concat(jsonMessage)); | ||
} | ||
@@ -596,3 +596,3 @@ messageListeners.forEach(function (f) { return f(message); }); | ||
var _a; | ||
ga('NovumTracker.send', __assign((_a = { hitType: 'timing', hitCallback: resolve }, _a["dimension" + CD_EVENT_VALUE] = String(value), _a), params)); | ||
ga('NovumTracker.send', __assign((_a = { hitType: 'timing', hitCallback: resolve }, _a["dimension".concat(CD_EVENT_VALUE)] = String(value), _a), params)); | ||
}); | ||
@@ -627,3 +627,3 @@ }, | ||
? screenName | ||
: "/" + screenName; | ||
: "/".concat(screenName); | ||
if (pageName !== currentPageName) { | ||
@@ -697,3 +697,3 @@ currentPageName = pageName; | ||
ga('NovumTracker.set', (_a = {}, | ||
_a["dimension" + dimensionIdx] = String(value), | ||
_a["dimension".concat(dimensionIdx)] = String(value), | ||
_a)); | ||
@@ -798,2 +798,2 @@ return Promise.resolve(); | ||
}))); | ||
})); |
@@ -1,1 +0,1 @@ | ||
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).webviewBridge={})}(this,function(e){"use strict";var n=1,t=function(){return"webapp-"+n++},o="__tuenti_webview_bridge",r=function(){return!("undefined"==typeof window||!window.tuentiWebView||!window.tuentiWebView.postMessage)},i=function(){return!!("undefined"!=typeof window&&window.webkit&&window.webkit.messageHandlers&&window.webkit.messageHandlers.tuentiWebView&&window.webkit.messageHandlers.tuentiWebView.postMessage)},a=function(){return"undefined"==typeof window?null:r()?function(e){window.tuentiWebView.postMessage(e)}:i()?function(e){window.webkit.messageHandlers.tuentiWebView.postMessage(e)}:null},u=[],s=function(e){u.push(e)},c=function(e){u=u.filter(function(n){return n!==e})},l=function(){return!("undefined"!=typeof window&&window.frameElement&&!window.frameElement.hasAttribute("data-enable-webview-bridge"))&&(r()||i())},d=function(e,n){var o=e.type,r=e.id,i=void 0===r?t():r,u=e.payload,l=a(),d=JSON.stringify({type:o,id:i,payload:u});return l?(setTimeout(function(){l(d)}),new Promise(function(e,t){var r=!1,a=function(n){n.id!==i||r||(n.type===o?e(n.payload):"ERROR"===n.type?t(n.payload):t({code:500,reason:"bad type: "+n.type+". Expecting "+o}),c(a))};s(a),n&&setTimeout(function(){r=!0,c(a),t({code:408,reason:"request timeout"})},n)})):Promise.reject({code:500,reason:"WebView postMessage not available"})};"undefined"!=typeof window&&(window[o]=window[o]||{postMessage:function(e){var n;try{n=JSON.parse(e)}catch(n){throw Error("Problem parsing webview message: "+e)}u.forEach(function(e){return e(n)})}});var f=function(e,n){var t=function(t){t.type===e&&Promise.resolve(n(t.payload)).then(function(e){var n=a();n&&n(JSON.stringify({type:t.type,id:t.id,payload:e}))})};return s(t),function(){c(t)}},p=function(e){var n=e.title,t=e.expandedTitle,o=e.showBackButton,r=e.showReloadButton,i=e.showProfileButton,a=e.backgroundColor;return l()?d({type:"NAVIGATION_BAR",payload:{title:n,expandedTitle:t,showBackButton:o,showReloadButton:r,showProfileButton:i,backgroundColor:a}}):(void 0!==n&&"undefined"!=typeof document&&(document.title=n),Promise.resolve())},m=null,y=function(e){return"true"===m.result[e]},w=function(e){return Math.floor(e/1e3)},v=function(){return(v=Object.assign||function(e){for(var n,t=1,o=arguments.length;t<o;t++)for(var r in n=arguments[t])Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r]);return e}).apply(this,arguments)};var g,b=["NovumTracker","OBARGTracker"],T=function(e){return b.indexOf(e.get("name"))>=0},E=function(e){var n=e.onAndroid,t=e.onIos,o=e.onWeb;return"undefined"==typeof window?Promise.resolve():window.AnalyticsWebInterface?n(window.AnalyticsWebInterface):window.webkit&&window.webkit.messageHandlers&&window.webkit.messageHandlers.firebase?t(window.webkit.messageHandlers.firebase):window.ga&&window.ga.loaded?o(window.ga):Promise.resolve()},h={obIds:1,paymentModels:2,serviceWorkerStatus:3,isAdmin:5,hasIpComms:6,af_source:9,af_campaign:10,novum_uid_session:11,user_logged:12,currentSubscriptionId:13,currentSubscriptionType:14,currentPaymentModel:15,webviewBrowserVersion:16,activatedRoles:17,appInstanceId:18,experimentflag:20,friendsApps:24,accountLineSelector:25,OneClickDisplayed:26};e.CD_EVENT_VALUE=8,e.CD_NOVUM_UID=7,e.CD_WEBAPP_INSTALLED=4,e.attachToEmail=function(e){var n=e.url,t=e.subject,o=e.fileName,r=e.recipient,i=e.body;return d({type:"ATTACH_TO_EMAIL",payload:{url:n,subject:t,fileName:o,recipient:r,body:i}})},e.checkPermissionStatus=function(e,n){return d({type:"OS_PERMISSION_STATUS",payload:{feature:e,params:n}}).then(function(e){return e.granted})},e.createCalendarEvent=function(e){var n=e.beginTime,t=e.endTime,o=e.title;return d({type:"CREATE_CALENDAR_EVENT",payload:{beginTime:w(n),endTime:w(t),title:o}})},e.dismiss=function(e){return d({type:"DISMISS",payload:{onCompletionUrl:e}})},e.fetch=function(e){var n=e.url,t=e.method,o=e.headers,r=e.body;return l()?d({type:"FETCH",payload:{url:n,method:t,headers:o,body:r}}).catch(function(){return{status:500,headers:{},body:"Bridge call failed"}}):Promise.resolve({status:500,headers:{},body:"Bridge not available"})},e.fetchContactsByPhone=function(e){return d({type:"FETCH_CONTACTS_DATA",payload:{phoneNumbers:e}})},e.getAppMetadata=function(e){return d({type:"GET_APP_METADATA",payload:{appToken:e}})},e.getCustomerHash=function(){return d({type:"GET_CUSTOMER_HASH"})},e.getDiskSpaceInfo=function(){return d({type:"GET_DISK_SPACE_INFO"})},e.getEsimInfo=function(){return d({type:"GET_ESIM_INFO"}).catch(function(){return{supportsEsim:!1}})},e.internalNavigation=function(e){return d({type:"INTERNAL_NAVIGATION",payload:{feature:e}})},e.isABTestingAvailable=function(e){if(m)return Promise.resolve(y(e));var n=new Promise(function(e){setTimeout(function(){e(!1)},500)}),t=d({type:"GET_REMOTE_CONFIG"}).then(function(n){return m=n,y(e)});return Promise.race([n,t])},e.isWebViewBridgeAvailable=l,e.logEvent=function(e){var n=e.category,t=e.action,o=e.label,r=e.value,i=function(e,n){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&n.indexOf(o)<0&&(t[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)n.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(t[o[r]]=e[o[r]])}return t}(e,["category","action","label","value"]);if(!n||!t)return console.warn('Analytics event should have "category" and "action"',{category:n,action:t}),Promise.resolve();var a=n;o||(o="null_label"),r||(r=0);var u=v({eventCategory:n,eventAction:t,eventLabel:function(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}(o),eventValue:r},i);return E({onAndroid:function(e){return e.logEvent&&e.logEvent(a,JSON.stringify(u)),Promise.resolve()},onIos:function(e){return e.postMessage({command:"logEvent",name:a,parameters:u}),Promise.resolve()},onWeb:function(e){return new Promise(function(n){e("NovumTracker.send","event",v(v({},u),{hitCallback:n}))})}})},e.logTiming=function(e){var n=e.category,t=void 0===n?"performance_timer":n,o=e.variable,r=e.value,i=e.label;if(!t||!o||!r)return console.warn('Analytics timing should have "category", "variable" and "value"',{category:t,variable:o,value:r}),Promise.resolve();var a={timingCategory:t,timingVar:o,timingValue:r=Math.round(r),timingLabel:i},u=t;return E({onAndroid:function(e){return e.logEvent&&e.logEvent(u,JSON.stringify(a)),Promise.resolve()},onIos:function(e){return e.postMessage({command:"logEvent",name:u,parameters:a}),Promise.resolve()},onWeb:function(e){return new Promise(function(n){var t;e("NovumTracker.send",v(((t={hitType:"timing",hitCallback:n}).dimension8=String(r),t),a))})}})},e.nativeAlert=function(e){var n=e.message,t=e.title,o=e.buttonText;return l()?d({type:"ALERT",payload:{title:t,message:n,buttonText:o}}):("undefined"!=typeof window&&window.alert(n),Promise.resolve())},e.nativeConfirm=function(e){var n=e.message,t=e.title,o=e.acceptText,r=e.cancelText;return l()?d({type:"CONFIRM",payload:{message:n,title:t,acceptText:o,cancelText:r}}).then(function(e){return e.result}):Promise.resolve("undefined"!=typeof window&&window.confirm(n))},e.nativeMessage=function(e){var n=e.message,t=e.duration,o=e.buttonText,r=e.type;return l()?d({type:"MESSAGE",payload:{message:n,duration:t,buttonText:o,type:r}}):("undefined"!=typeof window&&window.alert(n),Promise.resolve())},e.notifyPageLoaded=function(){return d({type:"PAGE_LOADED"})},e.onNativeEvent=function(e){return f("NATIVE_EVENT",function(n){return{action:e({event:n.event}).action||"default"}})},e.onSessionRenewed=function(e){return f("SESSION_RENEWED",function(n){var t=n.accessToken;return e(t)})},e.renewSession=function(e){return d({type:"RENEW_SESSION",payload:{accessToken:e||null}}).then(function(e){return e.accessToken})},e.reportStatus=function(e){var n=e.feature,t=e.status,o=e.reason;return d({type:"STATUS_REPORT",payload:{feature:n,status:t,reason:o}})},e.requestContact=function(e){var n=(void 0===e?{}:e).filter;return d({type:"GET_CONTACT_DATA",payload:{filter:void 0===n?"phone":n}})},e.requestDeviceImei=function(){return d({type:"IMEI"},200).then(function(e){return e.imei}).catch(function(){return null})},e.requestSimIcc=function(){return d({type:"SIM_ICC"},200).then(function(e){return e.icc}).catch(function(){return null})},e.requestSimImsi=function(){return d({type:"IMSI"},200).then(function(e){return e.imsi}).catch(function(){return null})},e.requestVibration=function(e){return d({type:"VIBRATION",payload:{type:e}})},e.setActionBehavior=function(e){return d({type:"SET_ACTION_BEHAVIOR",payload:{actions:e}}).catch(function(){})},e.setCustomerHash=function(e){return d({type:"SET_CUSTOMER_HASH",payload:{hash:e}})},e.setScreenName=function(e,n){return e?E({onAndroid:function(n){return n.setScreenName&&n.setScreenName(e),Promise.resolve()},onIos:function(n){return n.postMessage({command:"setScreenName",name:e}),Promise.resolve()},onWeb:function(t){return new Promise(function(o){var r=e.startsWith("/")?e:"/"+e;r!==g?(g=r,t(function(){t.getAll().filter(T).forEach(function(e){e.set("page",r),e.send("pageView",v(v({},n),{hitCallback:o}))})})):o()})}}):(console.warn("Missing analytics screenName"),Promise.resolve())},e.setTrackingProperty=function(e,n,t){return d({type:"SET_TRACKING_PROPERTY",payload:{system:e,name:n,value:t}}).catch(function(){})},e.setUserProperty=function(e,n){return e&&n?(n=String(n),E({onAndroid:function(t){return t.setUserProperty&&t.setUserProperty(e,n),Promise.resolve()},onIos:function(t){return t.postMessage({command:"setUserProperty",name:e,value:n}),Promise.resolve()},onWeb:function(t){var o,r=h[e];return r?(t("NovumTracker.set",((o={})["dimension"+r]=String(n),o)),Promise.resolve()):(console.warn("No custom dimension defined for user property",e),Promise.resolve())}})):(console.warn("Trying to set analytics user property without name or value",e,n),Promise.resolve())},e.setWebViewTitle=function(e){return l()?p({title:e}):("undefined"!=typeof document&&(document.title=e),Promise.resolve())},e.share=function(e){return d({type:"SHARE",payload:e})},e.updateNavigationBar=p,Object.defineProperty(e,"__esModule",{value:!0})}); | ||
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).webviewBridge={})}(this,function(e){"use strict";var n=1,t=function(){return"webapp-".concat(n++)},o="__tuenti_webview_bridge",r=function(){return!("undefined"==typeof window||!window.tuentiWebView||!window.tuentiWebView.postMessage)},i=function(){return!!("undefined"!=typeof window&&window.webkit&&window.webkit.messageHandlers&&window.webkit.messageHandlers.tuentiWebView&&window.webkit.messageHandlers.tuentiWebView.postMessage)},a=function(){return"undefined"==typeof window?null:r()?function(e){window.tuentiWebView.postMessage(e)}:i()?function(e){window.webkit.messageHandlers.tuentiWebView.postMessage(e)}:null},u=[],s=function(e){u.push(e)},c=function(e){u=u.filter(function(n){return n!==e})},l=function(){return!("undefined"!=typeof window&&window.frameElement&&!window.frameElement.hasAttribute("data-enable-webview-bridge"))&&(r()||i())},d=function(e,n){var o=e.type,r=e.id,i=void 0===r?t():r,u=e.payload,l=a(),d=JSON.stringify({type:o,id:i,payload:u});return l?(setTimeout(function(){l(d)}),new Promise(function(e,t){var r=!1,a=function(n){n.id!==i||r||(n.type===o?e(n.payload):"ERROR"===n.type?t(n.payload):t({code:500,reason:"bad type: ".concat(n.type,". Expecting ").concat(o)}),c(a))};s(a),n&&setTimeout(function(){r=!0,c(a),t({code:408,reason:"request timeout"})},n)})):Promise.reject({code:500,reason:"WebView postMessage not available"})};"undefined"!=typeof window&&(window[o]=window[o]||{postMessage:function(e){var n;try{n=JSON.parse(e)}catch(n){throw Error("Problem parsing webview message: ".concat(e))}u.forEach(function(e){return e(n)})}});var f=function(e,n){var t=function(t){t.type===e&&Promise.resolve(n(t.payload)).then(function(e){var n=a();n&&n(JSON.stringify({type:t.type,id:t.id,payload:e}))})};return s(t),function(){c(t)}},p=function(e){var n=e.title,t=e.expandedTitle,o=e.showBackButton,r=e.showReloadButton,i=e.showProfileButton,a=e.backgroundColor;return l()?d({type:"NAVIGATION_BAR",payload:{title:n,expandedTitle:t,showBackButton:o,showReloadButton:r,showProfileButton:i,backgroundColor:a}}):(void 0!==n&&"undefined"!=typeof document&&(document.title=n),Promise.resolve())},m=null,y=function(e){return"true"===m.result[e]},w=function(e){return Math.floor(e/1e3)},v=function(){return(v=Object.assign||function(e){for(var n,t=1,o=arguments.length;t<o;t++)for(var r in n=arguments[t])Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r]);return e}).apply(this,arguments)};var g,b=["NovumTracker","OBARGTracker"],T=function(e){return b.indexOf(e.get("name"))>=0},E=function(e){var n=e.onAndroid,t=e.onIos,o=e.onWeb;return"undefined"==typeof window?Promise.resolve():window.AnalyticsWebInterface?n(window.AnalyticsWebInterface):window.webkit&&window.webkit.messageHandlers&&window.webkit.messageHandlers.firebase?t(window.webkit.messageHandlers.firebase):window.ga&&window.ga.loaded?o(window.ga):Promise.resolve()},h={obIds:1,paymentModels:2,serviceWorkerStatus:3,isAdmin:5,hasIpComms:6,af_source:9,af_campaign:10,novum_uid_session:11,user_logged:12,currentSubscriptionId:13,currentSubscriptionType:14,currentPaymentModel:15,webviewBrowserVersion:16,activatedRoles:17,appInstanceId:18,experimentflag:20,friendsApps:24,accountLineSelector:25,OneClickDisplayed:26};e.CD_EVENT_VALUE=8,e.CD_NOVUM_UID=7,e.CD_WEBAPP_INSTALLED=4,e.attachToEmail=function(e){var n=e.url,t=e.subject,o=e.fileName,r=e.recipient,i=e.body;return d({type:"ATTACH_TO_EMAIL",payload:{url:n,subject:t,fileName:o,recipient:r,body:i}})},e.checkPermissionStatus=function(e,n){return d({type:"OS_PERMISSION_STATUS",payload:{feature:e,params:n}}).then(function(e){return e.granted})},e.createCalendarEvent=function(e){var n=e.beginTime,t=e.endTime,o=e.title;return d({type:"CREATE_CALENDAR_EVENT",payload:{beginTime:w(n),endTime:w(t),title:o}})},e.dismiss=function(e){return d({type:"DISMISS",payload:{onCompletionUrl:e}})},e.fetch=function(e){var n=e.url,t=e.method,o=e.headers,r=e.body;return l()?d({type:"FETCH",payload:{url:n,method:t,headers:o,body:r}}).catch(function(){return{status:500,headers:{},body:"Bridge call failed"}}):Promise.resolve({status:500,headers:{},body:"Bridge not available"})},e.fetchContactsByPhone=function(e){return d({type:"FETCH_CONTACTS_DATA",payload:{phoneNumbers:e}})},e.getAppMetadata=function(e){return d({type:"GET_APP_METADATA",payload:{appToken:e}})},e.getCustomerHash=function(){return d({type:"GET_CUSTOMER_HASH"})},e.getDiskSpaceInfo=function(){return d({type:"GET_DISK_SPACE_INFO"})},e.getEsimInfo=function(){return d({type:"GET_ESIM_INFO"}).catch(function(){return{supportsEsim:!1}})},e.internalNavigation=function(e){return d({type:"INTERNAL_NAVIGATION",payload:{feature:e}})},e.isABTestingAvailable=function(e){if(m)return Promise.resolve(y(e));var n=new Promise(function(e){setTimeout(function(){e(!1)},500)}),t=d({type:"GET_REMOTE_CONFIG"}).then(function(n){return m=n,y(e)});return Promise.race([n,t])},e.isWebViewBridgeAvailable=l,e.logEvent=function(e){var n=e.category,t=e.action,o=e.label,r=e.value,i=function(e,n){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&n.indexOf(o)<0&&(t[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)n.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(t[o[r]]=e[o[r]])}return t}(e,["category","action","label","value"]);if(!n||!t)return console.warn('Analytics event should have "category" and "action"',{category:n,action:t}),Promise.resolve();var a=n;o||(o="null_label"),r||(r=0);var u=v({eventCategory:n,eventAction:t,eventLabel:function(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}(o),eventValue:r},i);return E({onAndroid:function(e){return e.logEvent&&e.logEvent(a,JSON.stringify(u)),Promise.resolve()},onIos:function(e){return e.postMessage({command:"logEvent",name:a,parameters:u}),Promise.resolve()},onWeb:function(e){return new Promise(function(n){e("NovumTracker.send","event",v(v({},u),{hitCallback:n}))})}})},e.logTiming=function(e){var n=e.category,t=void 0===n?"performance_timer":n,o=e.variable,r=e.value,i=e.label;if(!t||!o||!r)return console.warn('Analytics timing should have "category", "variable" and "value"',{category:t,variable:o,value:r}),Promise.resolve();var a={timingCategory:t,timingVar:o,timingValue:r=Math.round(r),timingLabel:i},u=t;return E({onAndroid:function(e){return e.logEvent&&e.logEvent(u,JSON.stringify(a)),Promise.resolve()},onIos:function(e){return e.postMessage({command:"logEvent",name:u,parameters:a}),Promise.resolve()},onWeb:function(e){return new Promise(function(n){var t;e("NovumTracker.send",v(((t={hitType:"timing",hitCallback:n})["dimension".concat(8)]=String(r),t),a))})}})},e.nativeAlert=function(e){var n=e.message,t=e.title,o=e.buttonText;return l()?d({type:"ALERT",payload:{title:t,message:n,buttonText:o}}):("undefined"!=typeof window&&window.alert(n),Promise.resolve())},e.nativeConfirm=function(e){var n=e.message,t=e.title,o=e.acceptText,r=e.cancelText;return l()?d({type:"CONFIRM",payload:{message:n,title:t,acceptText:o,cancelText:r}}).then(function(e){return e.result}):Promise.resolve("undefined"!=typeof window&&window.confirm(n))},e.nativeMessage=function(e){var n=e.message,t=e.duration,o=e.buttonText,r=e.type;return l()?d({type:"MESSAGE",payload:{message:n,duration:t,buttonText:o,type:r}}):("undefined"!=typeof window&&window.alert(n),Promise.resolve())},e.notifyPageLoaded=function(){return d({type:"PAGE_LOADED"})},e.onNativeEvent=function(e){return f("NATIVE_EVENT",function(n){return{action:e({event:n.event}).action||"default"}})},e.onSessionRenewed=function(e){return f("SESSION_RENEWED",function(n){var t=n.accessToken;return e(t)})},e.renewSession=function(e){return d({type:"RENEW_SESSION",payload:{accessToken:e||null}}).then(function(e){return e.accessToken})},e.reportStatus=function(e){var n=e.feature,t=e.status,o=e.reason;return d({type:"STATUS_REPORT",payload:{feature:n,status:t,reason:o}})},e.requestContact=function(e){var n=(void 0===e?{}:e).filter;return d({type:"GET_CONTACT_DATA",payload:{filter:void 0===n?"phone":n}})},e.requestDeviceImei=function(){return d({type:"IMEI"},200).then(function(e){return e.imei}).catch(function(){return null})},e.requestSimIcc=function(){return d({type:"SIM_ICC"},200).then(function(e){return e.icc}).catch(function(){return null})},e.requestSimImsi=function(){return d({type:"IMSI"},200).then(function(e){return e.imsi}).catch(function(){return null})},e.requestVibration=function(e){return d({type:"VIBRATION",payload:{type:e}})},e.setActionBehavior=function(e){return d({type:"SET_ACTION_BEHAVIOR",payload:{actions:e}}).catch(function(){})},e.setCustomerHash=function(e){return d({type:"SET_CUSTOMER_HASH",payload:{hash:e}})},e.setScreenName=function(e,n){return e?E({onAndroid:function(n){return n.setScreenName&&n.setScreenName(e),Promise.resolve()},onIos:function(n){return n.postMessage({command:"setScreenName",name:e}),Promise.resolve()},onWeb:function(t){return new Promise(function(o){var r=e.startsWith("/")?e:"/".concat(e);r!==g?(g=r,t(function(){t.getAll().filter(T).forEach(function(e){e.set("page",r),e.send("pageView",v(v({},n),{hitCallback:o}))})})):o()})}}):(console.warn("Missing analytics screenName"),Promise.resolve())},e.setTrackingProperty=function(e,n,t){return d({type:"SET_TRACKING_PROPERTY",payload:{system:e,name:n,value:t}}).catch(function(){})},e.setUserProperty=function(e,n){return e&&n?(n=String(n),E({onAndroid:function(t){return t.setUserProperty&&t.setUserProperty(e,n),Promise.resolve()},onIos:function(t){return t.postMessage({command:"setUserProperty",name:e,value:n}),Promise.resolve()},onWeb:function(t){var o,r=h[e];return r?(t("NovumTracker.set",((o={})["dimension".concat(r)]=String(n),o)),Promise.resolve()):(console.warn("No custom dimension defined for user property",e),Promise.resolve())}})):(console.warn("Trying to set analytics user property without name or value",e,n),Promise.resolve())},e.setWebViewTitle=function(e){return l()?p({title:e}):("undefined"!=typeof document&&(document.title=e),Promise.resolve())},e.share=function(e){return d({type:"SHARE",payload:e})},e.updateNavigationBar=p,Object.defineProperty(e,"__esModule",{value:!0})}); |
{ | ||
"name": "@tef-novum/webview-bridge", | ||
"version": "3.1.0", | ||
"version": "3.2.0", | ||
"description": "JavaScript library to access to native functionality. Requires a webview with a postMessage bridge.", | ||
@@ -12,3 +12,4 @@ "main": "./dist/webview-bridge-cjs.js", | ||
"scripts": { | ||
"build": "rimraf dist && rollup -c && uglifyjs --compress --mangle -o dist/webview-bridge-umd.min.js dist/webview-bridge-umd.js && uglifyjs --compress --mangle -o dist/webview-bridge-iife.min.js dist/webview-bridge-iife.js && ncp ./src/webview-bridge-cjs.js.flow ./dist/webview-bridge-cjs.js.flow", | ||
"build": "rimraf dist && rollup -c && uglifyjs --compress --mangle -o dist/webview-bridge-umd.min.js dist/webview-bridge-umd.js && uglifyjs --compress --mangle -o dist/webview-bridge-iife.min.js dist/webview-bridge-iife.js && yarn generate-flow-types", | ||
"generate-flow-types": "ts-to-flow dist flow-defs", | ||
"test": "jest --coverage", | ||
@@ -34,19 +35,22 @@ "prettier-check": "prettier --check .", | ||
"devDependencies": { | ||
"@telefonica/ts-to-flow": "^1.1.2", | ||
"@types/google.analytics": "0.0.42", | ||
"@types/jest": "^26.0.24", | ||
"@typescript-eslint/eslint-plugin": "^4.29.1", | ||
"@typescript-eslint/parser": "^4.29.1", | ||
"eslint": "^7.32.0", | ||
"husky": "^7.0.1", | ||
"jest": "^27.0.6", | ||
"lint-staged": "^11.1.2", | ||
"ncp": "^2.0.0", | ||
"prettier": "^2.3.2", | ||
"@types/jest": "^27.0.3", | ||
"@typescript-eslint/eslint-plugin": "^5.6.0", | ||
"@typescript-eslint/parser": "^5.6.0", | ||
"eslint": "^8.4.1", | ||
"husky": "^7.0.4", | ||
"jest": "^27.4.4", | ||
"lint-staged": "^12.1.2", | ||
"prettier": "^2.5.1", | ||
"rimraf": "^3.0.2", | ||
"rollup": "^2.56.2", | ||
"rollup-plugin-typescript2": "^0.30.0", | ||
"ts-jest": "^27.0.4", | ||
"typescript": "^4.3.5", | ||
"rollup": "^2.61.0", | ||
"rollup-plugin-typescript2": "^0.31.1", | ||
"ts-jest": "^27.1.1", | ||
"typescript": "^4.5.3", | ||
"uglify-es": "^3.3.9" | ||
}, | ||
"resolutions": { | ||
"flowgen": "1.16.0" | ||
} | ||
} |
@@ -75,2 +75,3 @@ <p align="center"> | ||
- [setScreenName](#setscreenname) | ||
- [setUserProperty](#setUserProperty) | ||
- [reportStatus](#reportStatus) | ||
@@ -265,4 +266,3 @@ - [checkPermissionStatus](#checkPermissionStatus) | ||
in native app versions >= 11.8 | ||
- `showBackButton`: shows or hides left icon in NavigationBar. Depending on | ||
the navigation mode, could be a close (X) or back (<) icon | ||
- `showBackButton`: shows or hides back icon in NavigationBar | ||
- `showReloadButton`: shows or hides NavigationBar Reload button | ||
@@ -462,2 +462,26 @@ - `showProfileButton`: shows or hides NavigationBar Profile button (which | ||
### setUserProperty | ||
Set a user property to firebase | ||
```typescript | ||
setUserProperty: ({ | ||
name: string; | ||
value: string; | ||
}) => Promise<void>; | ||
``` | ||
#### Example | ||
```javascript | ||
import {setUserProperty} from '@tef-novum/webview-bridge'; | ||
setUserProperty({ | ||
name: 'obIds', | ||
value: 'any-value', | ||
}).then(() => { | ||
console.log('User property logged'); | ||
}); | ||
``` | ||
### reportStatus | ||
@@ -464,0 +488,0 @@ |
Sorry, the diff of this file is not supported yet
227863
32
4261
790