This is an automated email from the ASF dual-hosted git repository.
jkevan pushed a commit to branch UNOMI-610-new-tracker
in repository https://gitbox.apache.org/repos/asf/unomi-tracker.git
The following commit(s) were added to refs/heads/UNOMI-610-new-tracker by this
push:
new 2a27e66 UNOMI-610: base tracker first draft
2a27e66 is described below
commit 2a27e66cd9e30394b90d719eabf84dd3baaedc08
Author: Kevan <[email protected]>
AuthorDate: Tue Sep 6 17:44:01 2022 +0200
UNOMI-610: base tracker first draft
---
dist/apache-unomi-tracker.cjs.js | 28 ++++++++++++++++++++++++++++
dist/apache-unomi-tracker.esm.js | 28 ++++++++++++++++++++++++++++
dist/apache-unomi-tracker.umd.js | 28 ++++++++++++++++++++++++++++
src/tracker/tracker.js | 31 +++++++++++++++++++++++++++++++
4 files changed, 115 insertions(+)
diff --git a/dist/apache-unomi-tracker.cjs.js b/dist/apache-unomi-tracker.cjs.js
index 328326b..0833e8b 100644
--- a/dist/apache-unomi-tracker.cjs.js
+++ b/dist/apache-unomi-tracker.cjs.js
@@ -25,6 +25,7 @@ var newTracker = function newTracker() {
wem.digitalData = digitalData;
wem.trackerProfileIdCookieName =
wem.digitalData.wemInitConfig.trackerProfileIdCookieName ?
wem.digitalData.wemInitConfig.trackerProfileIdCookieName : "wem-profile-id";
wem.trackerSessionIdCookieName =
wem.digitalData.wemInitConfig.trackerSessionIdCookieName ?
wem.digitalData.wemInitConfig.trackerSessionIdCookieName : "wem-session-id";
+ wem.browserGeneratedSessionSuffix =
wem.digitalData.wemInitConfig.browserGeneratedSessionSuffix ?
wem.digitalData.wemInitConfig.browserGeneratedSessionSuffix : "";
wem.activateWem = wem.digitalData.wemInitConfig.activateWem;
var _wem$digitalData$wemI = wem.digitalData.wemInitConfig,
contextServerUrl = _wem$digitalData$wemI.contextServerUrl,
@@ -498,6 +499,20 @@ var newTracker = function newTracker() {
});
},
+ /**
+ * This function will invalidate the Apache Unomi session and profile,
+ * by removing the associated cookies, set the loaded context to undefined
+ * and set the session id cookie with a newly generated ID
+ */
+ invalidateSessionAndProfile: function invalidateSessionAndProfile() {
+
+ wem.sessionID = wem.generateGuid() + wem.browserGeneratedSessionSuffix;
+ wem.setCookie(wem.trackerSessionIdCookieName, wem.sessionID, 1);
+ wem.removeCookie(wem.contextServerCookieName);
+ wem.removeCookie(wem.trackerProfileIdCookieName);
+ wem.cxs = undefined;
+ },
+
/**
* This function return the basic structure for an event, it must be
adapted to your need
*
@@ -712,6 +727,19 @@ var newTracker = function newTracker() {
}
},
+ /**
+ * This is an utility function to generate a new UUID
+ *
+ * @returns {string}
+ */
+ generateGuid: function generateGuid() {
+ function s4() {
+ return Math.floor((1 + Math.random()) *
0x10000).toString(16).substring(1);
+ }
+
+ return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() +
s4() + s4();
+ },
+
/**
* This is an utility function to check if the local storage is available
or not
* @param type
diff --git a/dist/apache-unomi-tracker.esm.js b/dist/apache-unomi-tracker.esm.js
index b5a5bff..887c8db 100644
--- a/dist/apache-unomi-tracker.esm.js
+++ b/dist/apache-unomi-tracker.esm.js
@@ -17,6 +17,7 @@ var newTracker = function newTracker() {
wem.digitalData = digitalData;
wem.trackerProfileIdCookieName =
wem.digitalData.wemInitConfig.trackerProfileIdCookieName ?
wem.digitalData.wemInitConfig.trackerProfileIdCookieName : "wem-profile-id";
wem.trackerSessionIdCookieName =
wem.digitalData.wemInitConfig.trackerSessionIdCookieName ?
wem.digitalData.wemInitConfig.trackerSessionIdCookieName : "wem-session-id";
+ wem.browserGeneratedSessionSuffix =
wem.digitalData.wemInitConfig.browserGeneratedSessionSuffix ?
wem.digitalData.wemInitConfig.browserGeneratedSessionSuffix : "";
wem.activateWem = wem.digitalData.wemInitConfig.activateWem;
var _wem$digitalData$wemI = wem.digitalData.wemInitConfig,
contextServerUrl = _wem$digitalData$wemI.contextServerUrl,
@@ -490,6 +491,20 @@ var newTracker = function newTracker() {
});
},
+ /**
+ * This function will invalidate the Apache Unomi session and profile,
+ * by removing the associated cookies, set the loaded context to undefined
+ * and set the session id cookie with a newly generated ID
+ */
+ invalidateSessionAndProfile: function invalidateSessionAndProfile() {
+
+ wem.sessionID = wem.generateGuid() + wem.browserGeneratedSessionSuffix;
+ wem.setCookie(wem.trackerSessionIdCookieName, wem.sessionID, 1);
+ wem.removeCookie(wem.contextServerCookieName);
+ wem.removeCookie(wem.trackerProfileIdCookieName);
+ wem.cxs = undefined;
+ },
+
/**
* This function return the basic structure for an event, it must be
adapted to your need
*
@@ -704,6 +719,19 @@ var newTracker = function newTracker() {
}
},
+ /**
+ * This is an utility function to generate a new UUID
+ *
+ * @returns {string}
+ */
+ generateGuid: function generateGuid() {
+ function s4() {
+ return Math.floor((1 + Math.random()) *
0x10000).toString(16).substring(1);
+ }
+
+ return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() +
s4() + s4();
+ },
+
/**
* This is an utility function to check if the local storage is available
or not
* @param type
diff --git a/dist/apache-unomi-tracker.umd.js b/dist/apache-unomi-tracker.umd.js
index dd64f5b..4f2f9e2 100644
--- a/dist/apache-unomi-tracker.umd.js
+++ b/dist/apache-unomi-tracker.umd.js
@@ -1672,6 +1672,7 @@
wem.digitalData = digitalData;
wem.trackerProfileIdCookieName =
wem.digitalData.wemInitConfig.trackerProfileIdCookieName ?
wem.digitalData.wemInitConfig.trackerProfileIdCookieName : "wem-profile-id";
wem.trackerSessionIdCookieName =
wem.digitalData.wemInitConfig.trackerSessionIdCookieName ?
wem.digitalData.wemInitConfig.trackerSessionIdCookieName : "wem-session-id";
+ wem.browserGeneratedSessionSuffix =
wem.digitalData.wemInitConfig.browserGeneratedSessionSuffix ?
wem.digitalData.wemInitConfig.browserGeneratedSessionSuffix : "";
wem.activateWem = wem.digitalData.wemInitConfig.activateWem;
var _wem$digitalData$wemI = wem.digitalData.wemInitConfig,
contextServerUrl = _wem$digitalData$wemI.contextServerUrl,
@@ -2145,6 +2146,20 @@
});
},
+ /**
+ * This function will invalidate the Apache Unomi session and profile,
+ * by removing the associated cookies, set the loaded context to
undefined
+ * and set the session id cookie with a newly generated ID
+ */
+ invalidateSessionAndProfile: function invalidateSessionAndProfile() {
+
+ wem.sessionID = wem.generateGuid() + wem.browserGeneratedSessionSuffix;
+ wem.setCookie(wem.trackerSessionIdCookieName, wem.sessionID, 1);
+ wem.removeCookie(wem.contextServerCookieName);
+ wem.removeCookie(wem.trackerProfileIdCookieName);
+ wem.cxs = undefined;
+ },
+
/**
* This function return the basic structure for an event, it must be
adapted to your need
*
@@ -2359,6 +2374,19 @@
}
},
+ /**
+ * This is an utility function to generate a new UUID
+ *
+ * @returns {string}
+ */
+ generateGuid: function generateGuid() {
+ function s4() {
+ return Math.floor((1 + Math.random()) *
0x10000).toString(16).substring(1);
+ }
+
+ return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4()
+ s4() + s4();
+ },
+
/**
* This is an utility function to check if the local storage is
available or not
* @param type
diff --git a/src/tracker/tracker.js b/src/tracker/tracker.js
index edb44cb..239388a 100644
--- a/src/tracker/tracker.js
+++ b/src/tracker/tracker.js
@@ -11,6 +11,7 @@ export const newTracker = () => {
wem.digitalData = digitalData;
wem.trackerProfileIdCookieName =
wem.digitalData.wemInitConfig.trackerProfileIdCookieName ?
wem.digitalData.wemInitConfig.trackerProfileIdCookieName : "wem-profile-id";
wem.trackerSessionIdCookieName =
wem.digitalData.wemInitConfig.trackerSessionIdCookieName ?
wem.digitalData.wemInitConfig.trackerSessionIdCookieName : "wem-session-id";
+ wem.browserGeneratedSessionSuffix =
wem.digitalData.wemInitConfig.browserGeneratedSessionSuffix ?
wem.digitalData.wemInitConfig.browserGeneratedSessionSuffix : "";
wem.activateWem = wem.digitalData.wemInitConfig.activateWem;
const { contextServerUrl, timeoutInMilliseconds,
contextServerCookieName } = wem.digitalData.wemInitConfig;
@@ -457,6 +458,20 @@ export const newTracker = () => {
});
},
+ /**
+ * This function will invalidate the Apache Unomi session and profile,
+ * by removing the associated cookies, set the loaded context to
undefined
+ * and set the session id cookie with a newly generated ID
+ */
+ invalidateSessionAndProfile: function () {
+ 'use strict';
+ wem.sessionID = wem.generateGuid() +
wem.browserGeneratedSessionSuffix;
+ wem.setCookie(wem.trackerSessionIdCookieName, wem.sessionID, 1);
+ wem.removeCookie(wem.contextServerCookieName);
+ wem.removeCookie(wem.trackerProfileIdCookieName);
+ wem.cxs = undefined;
+ },
+
/**
* This function return the basic structure for an event, it must be
adapted to your need
*
@@ -656,6 +671,22 @@ export const newTracker = () => {
}
},
+ /**
+ * This is an utility function to generate a new UUID
+ *
+ * @returns {string}
+ */
+ generateGuid: function () {
+ function s4() {
+ return Math.floor((1 + Math.random()) * 0x10000)
+ .toString(16)
+ .substring(1);
+ }
+
+ return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
+ s4() + '-' + s4() + s4() + s4();
+ },
+
/**
* This is an utility function to check if the local storage is
available or not
* @param type