@shopgate/pwa-tracking 7.12.3 → 7.20.0-beta.2
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/helpers/index.js +2 -2
- package/package.json +5 -5
- package/selectors/user.js +2 -2
- package/streams/scanner.js +1 -1
- package/subscriptions/scanner.js +1 -1
- package/subscriptions/setup.js +2 -2
package/helpers/index.js
CHANGED
|
@@ -33,7 +33,7 @@ if(!passedOrder.totals&&passedOrder.amount){return{order:passedOrder};}var defau
|
|
|
33
33
|
* Creates data for the scanner utm url.
|
|
34
34
|
* @param {Object} params params
|
|
35
35
|
* @return {Object}
|
|
36
|
-
*/export var buildScannerUtmUrl=function buildScannerUtmUrl(_ref8){var scannerRoute=_ref8.scannerRoute,format=_ref8.format,payload=_ref8.payload,referer=_ref8.referer;var source='shopgate';var medium='scanner';var campaign="".concat(shopNumber,"Scanner");var term='';if(SCANNER_FORMATS_BARCODE.includes(format)){medium='barcode_scanner';campaign="".concat(shopNumber,"BarcodeScan");term=payload;}else if(SCANNER_FORMATS_QR_CODE.includes(format)){medium='qrcode_scanner';campaign="".concat(shopNumber,"QRScan");var
|
|
36
|
+
*/export var buildScannerUtmUrl=function buildScannerUtmUrl(_ref8){var scannerRoute=_ref8.scannerRoute,format=_ref8.format,payload=_ref8.payload,referer=_ref8.referer;var source='shopgate';var medium='scanner';var campaign="".concat(shopNumber,"Scanner");var term='';if(SCANNER_FORMATS_BARCODE.includes(format)){medium='barcode_scanner';campaign="".concat(shopNumber,"BarcodeScan");term=payload;}else if(SCANNER_FORMATS_QR_CODE.includes(format)){medium='qrcode_scanner';campaign="".concat(shopNumber,"QRScan");var _ref10=parse2dsQrCode(payload)||{},type=_ref10.type,data=_ref10.data;if(type===QR_CODE_TYPE_SEARCH){term=data.searchPhrase;}}var parsedPayload;var utmContent;try{parsedPayload=queryString.parseUrl(payload);}catch(e){// noting to do here
|
|
37
37
|
}if(parsedPayload&&parsedPayload.query){if(parsedPayload.query.utm_content){utmContent=parsedPayload.query.utm_content;}}var location=scannerRoute.location;var newPath=new URL(location,'http://scanner.com');/* eslint-disable camelcase */var utms={utm_source:source,utm_medium:medium,utm_campaign:campaign,utm_term:term,utm_content:utmContent||referer};/* eslint-enable camelcase */Object.keys(utms).forEach(function(utm){if(!newPath.searchParams.has(utm)&&utms[utm]){newPath.searchParams.set(utm,utms[utm]);}});return"".concat(newPath.pathname).concat(newPath.search);};/**
|
|
38
38
|
* Creates tracking data for a category.
|
|
39
39
|
* @param {Object} category The category data from the store.
|
|
@@ -46,7 +46,7 @@ if(!passedOrder.totals&&passedOrder.amount){return{order:passedOrder};}var defau
|
|
|
46
46
|
* Creates tracking data for the page view event.
|
|
47
47
|
* @param {Object} data The input data.
|
|
48
48
|
* @return {Object}
|
|
49
|
-
*/export var createPageviewData=function createPageviewData(
|
|
49
|
+
*/export var createPageviewData=function createPageviewData(_ref11){var _ref11$page=_ref11.page,page=_ref11$page===void 0?null:_ref11$page,_ref11$cart=_ref11.cart,cart=_ref11$cart===void 0?null:_ref11$cart,_ref11$search=_ref11.search,search=_ref11$search===void 0?null:_ref11$search,_ref11$category=_ref11.category,category=_ref11$category===void 0?null:_ref11$category,_ref11$product=_ref11.product,product=_ref11$product===void 0?null:_ref11$product,pageConfig=_ref11.pageConfig;var title='';if(pageConfig){title=pageConfig.title;}else if(category&&category.name){title=category.name;}else if(product&&product.name){title=product.name;}return{page:page?_extends({},page,{title:title}):null,cart:cart,search:search,category:category,product:product};};/**
|
|
50
50
|
* Helper to pass the redux state to the tracking core
|
|
51
51
|
* @param {string} eventName The name of the event.
|
|
52
52
|
* @param {Object} data The tracking data of the event.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shopgate/pwa-tracking",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.20.0-beta.2",
|
|
4
4
|
"description": "Tracking library for the Shopgate Connect PWA.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Shopgate <support@shopgate.com>",
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
"connect"
|
|
16
16
|
],
|
|
17
17
|
"devDependencies": {
|
|
18
|
-
"@shopgate/pwa-common": "7.
|
|
19
|
-
"@shopgate/pwa-common-commerce": "7.
|
|
20
|
-
"@shopgate/pwa-core": "7.
|
|
21
|
-
"@shopgate/tracking-core": "7.
|
|
18
|
+
"@shopgate/pwa-common": "7.20.0-beta.2",
|
|
19
|
+
"@shopgate/pwa-common-commerce": "7.20.0-beta.2",
|
|
20
|
+
"@shopgate/pwa-core": "7.20.0-beta.2",
|
|
21
|
+
"@shopgate/tracking-core": "7.20.0-beta.2",
|
|
22
22
|
"reselect": "^3.0.1",
|
|
23
23
|
"rxjs": "~5.5.12"
|
|
24
24
|
}
|
package/selectors/user.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key];}}return target;}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key];}return target;}import{createSelector}from'reselect';import{DEFAULT_LOGIN_STRATEGY,isUserLoggedIn,getUserData,makeGetLoginStrategy}from'@shopgate/engage/user';/**
|
|
1
|
+
var _excluded=["isFetching","loginType"];function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key];}}return target;}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key];}return target;}import{createSelector}from'reselect';import{DEFAULT_LOGIN_STRATEGY,isUserLoggedIn,getUserData,makeGetLoginStrategy}from'@shopgate/engage/user';/**
|
|
2
2
|
* Creates a selector that retrieves user tracking data from the store.
|
|
3
3
|
* @param {string} name The name of the desired parameter.
|
|
4
4
|
* @returns {Function}
|
|
5
|
-
*/export function makeGetUser(){var getLoginStrategy=makeGetLoginStrategy();return createSelector(isUserLoggedIn,getUserData,getLoginStrategy,function(isLoggedIn,userData,loginStrategy){if(!isLoggedIn||!userData){return null;}var _ref=userData||{},isFetching=_ref.isFetching,loginType=_ref.loginType,trackedData=_objectWithoutProperties(_ref,
|
|
5
|
+
*/export function makeGetUser(){var getLoginStrategy=makeGetLoginStrategy();return createSelector(isUserLoggedIn,getUserData,getLoginStrategy,function(isLoggedIn,userData,loginStrategy){if(!isLoggedIn||!userData){return null;}var _ref=userData||{},isFetching=_ref.isFetching,loginType=_ref.loginType,trackedData=_objectWithoutProperties(_ref,_excluded);if(Object.keys(trackedData).length===0){return null;}var type=null;if(loginStrategy!==DEFAULT_LOGIN_STRATEGY){type=loginStrategy;}else if(['userGuest','userAccount'].includes(loginType)){type=loginType==='userGuest'?'guest':'standard';}return _extends({},trackedData,{type:type});});}
|
package/streams/scanner.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{main$}from'@shopgate/pwa-common/streams/main';import{SCANNER_SCOPE_DEFAULT,SCANNER_TYPE_BARCODE}from'@shopgate/pwa-core/constants/Scanner';import{scannerDidEnter$}from'@shopgate/pwa-common-commerce/scanner/streams';import{SUCCESS_HANDLE_SCANNER,ERROR_HANDLE_SCANNER}from'@shopgate/pwa-common-commerce/scanner/constants';/** @type {Observable} */export var scanActivated$=scannerDidEnter$.filter(function(_ref){var action=_ref.action;var _action$route$query=action.route.query
|
|
1
|
+
import{main$}from'@shopgate/pwa-common/streams/main';import{SCANNER_SCOPE_DEFAULT,SCANNER_TYPE_BARCODE}from'@shopgate/pwa-core/constants/Scanner';import{scannerDidEnter$}from'@shopgate/pwa-common-commerce/scanner/streams';import{SUCCESS_HANDLE_SCANNER,ERROR_HANDLE_SCANNER}from'@shopgate/pwa-common-commerce/scanner/constants';/** @type {Observable} */export var scanActivated$=scannerDidEnter$.filter(function(_ref){var action=_ref.action;var _action$route$query=action.route.query,_action$route$query2=_action$route$query===void 0?{}:_action$route$query,_action$route$query2$=_action$route$query2.type,type=_action$route$query2$===void 0?SCANNER_TYPE_BARCODE:_action$route$query2$,_action$route$query2$2=_action$route$query2.scope,scope=_action$route$query2$2===void 0?SCANNER_SCOPE_DEFAULT:_action$route$query2$2;// The stream in supposed to emit only for the Shopgate default scanner.
|
|
2
2
|
return type===SCANNER_TYPE_BARCODE&&scope===SCANNER_SCOPE_DEFAULT;});/** @type {Observable} */export var scanSuccess$=main$.filter(function(_ref2){var action=_ref2.action;var type=action.type,scope=action.scope;return type===SUCCESS_HANDLE_SCANNER&&scope===SCANNER_SCOPE_DEFAULT;});/** @type {Observable} */export var scanFail$=main$.filter(function(_ref3){var action=_ref3.action;var type=action.type,scope=action.scope;return type===ERROR_HANDLE_SCANNER&&scope===SCANNER_SCOPE_DEFAULT;});
|
package/subscriptions/scanner.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance");}function _iterableToArrayLimit(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}import core from'@shopgate/tracking-core/core/Core';import{routeDidLeave$}from'@shopgate/pwa-common/streams';import{scanActivated$,scanFail$,scanSuccess$}from"../streams/scanner";import{buildScannerUtmUrl,createScannerEventData,track}from"../helpers";/**
|
|
2
2
|
* Scanner tracking subscriptions.
|
|
3
3
|
* @param {Function} subscribe The subscribe function.
|
|
4
|
-
*/export default function scanner(subscribe){var events=core.getScannerEvents();subscribe(scanActivated$,function(_ref){var action=_ref.action,getState=_ref.getState;var format=action.format;track('qrScanner',createScannerEventData({event:events.SCAN_ACTIVATED,userInteraction:false,format:format}),getState());});subscribe(scanSuccess$,function(_ref2){var action=_ref2.action,getState=_ref2.getState;var format=action.format,payload=action.payload;track('qrScanner',createScannerEventData({event:events.SCAN_SUCCESS,format:format,payload:payload}),getState());});subscribe(scanFail$,function(_ref3){var action=_ref3.action,getState=_ref3.getState;var format=action.format,payload=action.payload;track('qrScanner',createScannerEventData({event:events.SCAN_FAIL,format:format,payload:payload}),getState());});var afterScan$=scanActivated$.withLatestFrom(routeDidLeave$).switchMap(function(){return scanSuccess$.first();},function(_ref4,successAction){var _ref5=_slicedToArray(_ref4,2),activatedAction=_ref5[0],refererAction=_ref5[1];return{activatedAction:activatedAction,refererAction:refererAction,successAction:successAction,getState:activatedAction.getState};});subscribe(afterScan$,function(_ref6){var activatedAction=_ref6.activatedAction,refererAction=_ref6.refererAction,successAction=_ref6.successAction,getState=_ref6.getState;var _activatedAction$acti=activatedAction.action
|
|
4
|
+
*/export default function scanner(subscribe){var events=core.getScannerEvents();subscribe(scanActivated$,function(_ref){var action=_ref.action,getState=_ref.getState;var format=action.format;track('qrScanner',createScannerEventData({event:events.SCAN_ACTIVATED,userInteraction:false,format:format}),getState());});subscribe(scanSuccess$,function(_ref2){var action=_ref2.action,getState=_ref2.getState;var format=action.format,payload=action.payload;track('qrScanner',createScannerEventData({event:events.SCAN_SUCCESS,format:format,payload:payload}),getState());});subscribe(scanFail$,function(_ref3){var action=_ref3.action,getState=_ref3.getState;var format=action.format,payload=action.payload;track('qrScanner',createScannerEventData({event:events.SCAN_FAIL,format:format,payload:payload}),getState());});var afterScan$=scanActivated$.withLatestFrom(routeDidLeave$).switchMap(function(){return scanSuccess$.first();},function(_ref4,successAction){var _ref5=_slicedToArray(_ref4,2),activatedAction=_ref5[0],refererAction=_ref5[1];return{activatedAction:activatedAction,refererAction:refererAction,successAction:successAction,getState:activatedAction.getState};});subscribe(afterScan$,function(_ref6){var activatedAction=_ref6.activatedAction,refererAction=_ref6.refererAction,successAction=_ref6.successAction,getState=_ref6.getState;var _activatedAction$acti=activatedAction.action,_activatedAction$acti2=_activatedAction$acti===void 0?{}:_activatedAction$acti,scannerRoute=_activatedAction$acti2.route;var _refererAction$action=refererAction.action.route,_refererAction$action2=_refererAction$action===void 0?{}:_refererAction$action,referer=_refererAction$action2.location;var _successAction$action=successAction.action,format=_successAction$action.format,payload=_successAction$action.payload;// eslint-disable-next-line extra-rules/no-single-line-objects
|
|
5
5
|
var urlWithUtm=buildScannerUtmUrl({scannerRoute:scannerRoute,format:format,payload:payload,referer:referer});track('setCampaignWithUrl',{url:urlWithUtm,type:'scanner'},getState());});}
|
package/subscriptions/setup.js
CHANGED
|
@@ -3,11 +3,11 @@ import _regeneratorRuntime from"@babel/runtime/regenerator";function asyncGenera
|
|
|
3
3
|
* @param {Function} subscribe The subscribe function.
|
|
4
4
|
*/export default function setup(subscribe){/**
|
|
5
5
|
* Gets triggered when the app starts.
|
|
6
|
-
*/subscribe(initializeTracking$,/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref){var getState,clientInformationResponse,clientInformation,GaBase,extensionsIndex,trackingExtensions;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)
|
|
6
|
+
*/subscribe(initializeTracking$,/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref){var getState,clientInformationResponse,clientInformation,GaBase,extensionsIndex,trackingExtensions;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:getState=_ref.getState;if(useBrowserConnector()){_context.next=7;break;}_context.next=4;return getWebStorageEntry({name:'clientInformation'});case 4:_context.t0=_context.sent;_context.next=8;break;case 7:_context.t0={value:defaultClientInformation};case 8:clientInformationResponse=_context.t0;clientInformation={type:get(clientInformationResponse,'value.device.type',TYPE_PHONE),os:get(clientInformationResponse,'value.device.os.platform',OS_ALL),state:getState(),services:get(clientInformationResponse,'value.device.supportedAnalyticsServices',[]),libVersion:get(clientInformationResponse,'value.libVersion'),appVersion:get(clientInformationResponse,'value.appVersion')};// TODO: instantiate the UnifiedPlugin only if a native tracker is configured (FB, AppsFlyer)
|
|
7
7
|
// eslint-disable-next-line no-new
|
|
8
8
|
new UnifiedPlugin();if(appConfig.tracking.hasWebTrackingEngage){// eslint-disable-next-line global-require
|
|
9
9
|
GaBase=require('@shopgate/tracking-core/plugins/trackers/GaBase')["default"];GaBase.createUniversal({shopNumber:shopNumber,codebaseVersion:get(clientInformationResponse,'value.codebaseVersion'),config:{merchant:[],shopgate:{id:clientInformation.os===OS_ANDROID?appConfig.webTrackingEngage.android:appConfig.webTrackingEngage.ios,useNetPrices:false}}});}try{// eslint-disable-next-line global-require, import/no-dynamic-require
|
|
10
10
|
extensionsIndex=require("".concat(process.env.THEME_PATH,"/extensions/tracking"))["default"];trackingExtensions=componentsConfig.tracking||{};Object.keys(trackingExtensions).forEach(function(key){var pluginInit=extensionsIndex[key];if(pluginInit){/**
|
|
11
11
|
* Call the init function of the plugin.
|
|
12
12
|
* This init function will create the actual instances
|
|
13
|
-
*/pluginInit(clientInformation);}});}catch(error){logGroup('Tracking %c: Could not setup plugins',{error:error},'#ED0422');error.code=CODE_TRACKING;error.source=SOURCE_TRACKING;error.context='trackingPlugins';errorManager.queue(error);}core.registerFinished();case 14:case"end":return _context.stop();}}
|
|
13
|
+
*/pluginInit(clientInformation);}});}catch(error){logGroup('Tracking %c: Could not setup plugins',{error:error},'#ED0422');error.code=CODE_TRACKING;error.source=SOURCE_TRACKING;error.context='trackingPlugins';errorManager.queue(error);}core.registerFinished();case 14:case"end":return _context.stop();}},_callee);}));return function(_x){return _ref2.apply(this,arguments);};}());}
|