@aicore/core-analytics-client-lib 1.0.9 → 1.0.10

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/README.md CHANGED
@@ -118,7 +118,6 @@ during the `initAnalyticsSession` call. `initAnalyticsSession()` takes the follo
118
118
  * `granularitySec` (_Optional_): The smallest time period under which the events can be distinguished. Multiple
119
119
  events happening during this time period is aggregated to a count. The default granularity is 3 Seconds or server controlled,
120
120
  which means that any events that happen within 3 seconds cannot be distinguished in ordering.
121
- * `debug` (_Optional_): set to true if you want to see detailed debug logs.
122
121
 
123
122
  #### usageExample
124
123
  ```javascript
@@ -139,12 +138,12 @@ initAnalyticsSession("accountID", "appName", "https://localhost:3000", 600, 5);
139
138
  ### Debug logs
140
139
  If you want to see detailed logs on what is happening inside analytics lib, use the below code:
141
140
  ```js
142
- // To initSession in debug mode set debug arg in init to true. In debug mode, details logs
143
- // about analytics library events will be emitted.
144
- initAnalyticsSession("accountID", "appName", "https://localhost:3000", 600, 5, true);
141
+ // Just before initAnalyticsSession call, set or unset window.analytics.debugMode
142
+ window.analytics.debugMode = true;
143
+ initAnalyticsSession("accountID", "appName");
145
144
  ```
146
145
 
147
- To see info level logs that shows actual analytics data being sent to server, set the below property:
146
+ To see info level logs that shows actual analytics data being sent to server, set or unset the below property:
148
147
  ```js
149
148
  window.analytics.debugInfoLogsEnable = true;
150
149
  ```
@@ -159,7 +158,7 @@ Since this is a pure JS template project, build command just runs test with cove
159
158
 
160
159
  # Before raising a pull request, run release script and add the generated
161
160
  # minified files in dist folder to commits .
162
- # WARNING!!!: If the minified files are not checkedin git push will fail.
161
+ # WARNING!!!: If the minified files are not checked in git push will fail.
163
162
  > npm run release
164
163
  ```
165
164
 
@@ -1,4 +1,4 @@
1
- function initAnalyticsSession(e,t,n,a,o,i){let r,s,l,u,c,f,d,y,v={};const g="aicore.analytics.userID",p="aicore.analytics.sessionID",O=1e4;let m=null;var h,w,b,J="undefined"==typeof window;let C="https://analytics.core.ai",I,S,D=0,E=!1,T=!1;function U(...e){T&&console.log("analytics client: ",...e)}function A(...e){T&&console.error("analytics client: ",...e)}if(J)throw new Error("Node environment is not currently supported");function N(){return{schemaVersion:1,accountID:r,appName:s,uuid:l,sessionID:u,unixTimestampUTC:+new Date,numEventsTotal:0,events:{}}}function $(){if(!m)throw new Error("Please call initSession before using any analytics event")}function k(e){e.backoffCount=(e.backoffCount||0)+1,U(`Failed to call core analytics server. Will retry in ${30*e.backoffCount}s: `),setTimeout(()=>{L(e)},3e4*e.backoffCount)}function P(t){var e,n=JSON.stringify(t);n.length>O&&console.warn(`Analytics event generated is very large at greater than ${n.length}B. This
2
- typically means that you may be sending too many value events? .`),U("Sending Analytics data of length: ",n.length,"B"),e=["Sending data:",n],T&&window.analytics.debugInfoLogsEnable&&console.info("analytics client: ",...e),window.navigator.onLine?window.fetch(y,{method:"POST",headers:{"Content-Type":"application/json"},body:n}).then(e=>{200!==e.status&&(400!==e.status?k(t):console.error("Bad Request, this is most likely a problem with the library, update to latest version."))}).catch(e=>{A(e),k(t)}):k(t)}function L(e){E||(e||(e=m,D=0,R(),m=N()),0!==e.numEventsTotal&&P(e))}function R(e){I&&(clearInterval(I),I=null),e||(I=setInterval(()=>{D+=f},1e3*f))}function _(e){R(e),S&&(clearInterval(S),S=null),e||(S=setInterval(L,1e3*c))}function B(n,a,o,i=1,r=0){if(!E){var s=n,l=a,u=o,c=i,f=r;if($(),!s||!l||!u)throw new Error("missing eventType or category or subCategory");if("number"!=typeof c||c<0)throw new Error("invalid count, count should be a positive number");if("number"!=typeof f)throw new Error("invalid value, value should be a number");{s=n;l=a;u=o;let e=m.events;e[s]=e[s]||{},e[s][l]=e[s][l]||{},e[s][l][u]=e[s][l][u]||{time:[],valueCount:[]}}let t=m.events;c=t[n][a][o].time;if((0<c.length?c[c.length-1]:null)===D){f=t[n][a][o].valueCount.length-1;{var s=f,l=n,u=a,c=o,f=i,d=r;let t=m.events;var e="number"==typeof t[l][u][c].valueCount[s];if(e&&0===d)t[l][u][c].valueCount[s]+=f;else if(e&&0!==d){let e={};e[d]=f,e[0]=t[l][u][c].valueCount[s],t[l][u][c].valueCount[s]=e}else if(!e){let e=t[l][u][c].valueCount[s];e[d]=(e[d]||0)+f}m.numEventsTotal+=1}}else{if(t[n][a][o].time.push(D),0===r)t[n][a][o].valueCount.push(i);else{let e={};e[r]=i,t[n][a][o].valueCount.push(e)}m.numEventsTotal+=1}}}if(!e||!t)throw new Error("accountID and appName must exist for init");d=n?n.toString().replace(/\/$/,""):C,r=e,s=t,T=i||!1,c=a||60,f=o||3,y=d+"/ingest",l=function(){let e=localStorage.getItem(g);return e||(e=crypto.randomUUID(),localStorage.setItem(g,e)),e}(),u=function(){let e=sessionStorage.getItem(p);return e||(e=Math.random().toString(36).substr(2,10),sessionStorage.setItem(p,e)),e}(),m=N(),_(),h=a,w=o,new Promise(t=>{var e;window.navigator.onLine?(e=d+(`/getAppConfig?accountID=${r}&appName=`+s),window.fetch(e).then(e=>{switch(e.status){case 200:return void e.json().then(e=>{t(e)}).catch(e=>{A("remote response invalid. Continuing with defaults.",e),t({})});case 400:A("Bad Request, check library version compatible?",e),t({});break;default:A("Could not update from remote config. Continuing with defaults.",e),t({})}}).catch(e=>{A("Could not update from remote config. Continuing with defaults.",e),t({})})):t({})}).then(e=>{v!=={}&&(v=e,c=h||v.postIntervalSecondsInit||60,f=w||v.granularitySecInit||3,d=v.analyticsURLInit||d||C,_(E=!0===v.disabled),U(`Init analytics Config from remote. disabled: ${E}
3
- postIntervalSeconds:${c}, granularitySec: ${f} ,URL: `+d),E&&console.warn(`Core Analytics is disabled from the server for app: ${r}:`+s))});for(b of analytics._initData)B(...b);analytics._initData=[],analytics._getCurrentAnalyticsEvent=function(){return $(),JSON.parse(JSON.stringify(m))},analytics._getAppConfig=function(){return{accountID:r,appName:s,disabled:E,uuid:l,sessionID:u,postIntervalSeconds:c,granularitySec:f,analyticsURL:d,serverConfig:v}},analytics.event=B}window.analytics||(window.analytics={_initData:[]}),void 0===window.crypto&&(window.crypto={}),"randomUUID"in crypto||(crypto.randomUUID=function(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16))});
1
+ function initAnalyticsSession(e,t,n,o,a){let i,r,s,l,u,c,d,f,y={};const g="aicore.analytics.userID",v="aicore.analytics.sessionID",p=1e4;let m=null;var w,h,b,C="undefined"==typeof window;let I="https://analytics.core.ai",S,D,E=0,T=!1;function U(...e){window.analytics.debugMode&&console.log("analytics client: ",...e)}function A(...e){window.analytics.debugMode&&console.error("analytics client: ",...e)}if(C)throw new Error("Node environment is not currently supported");function N(){return{schemaVersion:1,accountID:i,appName:r,uuid:s,sessionID:l,unixTimestampUTC:+new Date,numEventsTotal:0,events:{}}}function $(){if(!m)throw new Error("Please call initSession before using any analytics event")}function k(e){e.backoffCount=(e.backoffCount||0)+1,U(`Failed to call core analytics server. Will retry in ${30*e.backoffCount}s: `),setTimeout(()=>{L(e)},3e4*e.backoffCount)}function B(t){var e,n=JSON.stringify(t);n.length>p&&console.warn(`Analytics event generated is very large at greater than ${n.length}B. This
2
+ typically means that you may be sending too many value events? .`),U("Sending Analytics data of length: ",n.length,"B"),e=["Sending data:",n],window.analytics.debugMode&&window.analytics.debugInfoLogsEnable&&console.info("analytics client: ",...e),window.navigator.onLine?window.fetch(f,{method:"POST",headers:{"Content-Type":"application/json"},body:n}).then(e=>{200!==e.status&&(400!==e.status?k(t):console.error("Bad Request, this is most likely a problem with the library, update to latest version."))}).catch(e=>{A(e),k(t)}):k(t)}function L(e){T||(e||(e=m,E=0,R(),m=N()),0!==e.numEventsTotal&&B(e))}function R(e){S&&(clearInterval(S),S=null),e||(S=setInterval(()=>{E+=c},1e3*c))}function M(e){R(e),D&&(clearInterval(D),D=null),e||(D=setInterval(L,1e3*u))}function _(n,o,a,i=1,r=0){if(!T){var s=n,l=o,u=a,c=i,d=r;if($(),!s||!l||!u)throw new Error("missing eventType or category or subCategory");if("number"!=typeof c||c<0)throw new Error("invalid count, count should be a positive number");if("number"!=typeof d)throw new Error("invalid value, value should be a number");{s=n;l=o;u=a;let e=m.events;e[s]=e[s]||{},e[s][l]=e[s][l]||{},e[s][l][u]=e[s][l][u]||{time:[],valueCount:[]}}let t=m.events;c=t[n][o][a].time;if((0<c.length?c[c.length-1]:null)===E){d=t[n][o][a].valueCount.length-1;{var s=d,l=n,u=o,c=a,d=i,f=r;let t=m.events;var e="number"==typeof t[l][u][c].valueCount[s];if(e&&0===f)t[l][u][c].valueCount[s]+=d;else if(e&&0!==f){let e={};e[f]=d,e[0]=t[l][u][c].valueCount[s],t[l][u][c].valueCount[s]=e}else if(!e){let e=t[l][u][c].valueCount[s];e[f]=(e[f]||0)+d}m.numEventsTotal+=1}}else{if(t[n][o][a].time.push(E),0===r)t[n][o][a].valueCount.push(i);else{let e={};e[r]=i,t[n][o][a].valueCount.push(e)}m.numEventsTotal+=1}}}if(!e||!t)throw new Error("accountID and appName must exist for init");d=n?n.toString().replace(/\/$/,""):I,i=e,r=t,u=o||60,c=a||3,f=d+"/ingest",s=function(){let e=localStorage.getItem(g);return e||(e=crypto.randomUUID(),localStorage.setItem(g,e)),e}(),l=function(){let e=sessionStorage.getItem(v);return e||(e=Math.random().toString(36).substr(2,10),sessionStorage.setItem(v,e)),e}(),m=N(),M(),w=o,h=a,new Promise(t=>{var e;window.navigator.onLine?(e=d+(`/getAppConfig?accountID=${i}&appName=`+r),window.fetch(e).then(e=>{switch(e.status){case 200:return void e.json().then(e=>{t(e)}).catch(e=>{A("remote response invalid. Continuing with defaults.",e),t({})});case 400:A("Bad Request, check library version compatible?",e),t({});break;default:A("Could not update from remote config. Continuing with defaults.",e),t({})}}).catch(e=>{A("Could not update from remote config. Continuing with defaults.",e),t({})})):t({})}).then(e=>{y!=={}&&(y=e,u=w||y.postIntervalSecondsInit||60,c=h||y.granularitySecInit||3,d=y.analyticsURLInit||d||I,M(T=!0===y.disabled),U(`Init analytics Config from remote. disabled: ${T}
3
+ postIntervalSeconds:${u}, granularitySec: ${c} ,URL: `+d),T&&console.warn(`Core Analytics is disabled from the server for app: ${i}:`+r))});for(b of analytics._initData)_(...b);analytics._initData=[],analytics._getCurrentAnalyticsEvent=function(){return $(),JSON.parse(JSON.stringify(m))},analytics._getAppConfig=function(){return{accountID:i,appName:r,disabled:T,uuid:s,sessionID:l,postIntervalSeconds:u,granularitySec:c,analyticsURL:d,serverConfig:y}},analytics.event=_}window.analytics||(window.analytics={_initData:[],debugMode:!1}),void 0===window.crypto&&(window.crypto={}),"randomUUID"in crypto||(crypto.randomUUID=function(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16))});
4
4
  //# sourceMappingURL=analytics.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"src/analytics.js","sources":["src/analytics.js"],"names":["initAnalyticsSession","accountIDInit","appNameInit","analyticsURLInit","postIntervalSecondsInit","granularitySecInit","debug","let","accountID","appName","userID","sessionID","postIntervalSeconds","granularitySec","analyticsURL","postURL","serverConfig","USERID_LOCAL_STORAGE_KEY","SESSION_ID_LOCAL_STORAGE_KEY","POST_LARGE_DATA_THRESHOLD_BYTES","currentAnalyticsEvent","postIntervalSecondsInitial","granularitySecInitial","eventData","IS_NODE_ENV","window","DEFAULT_BASE_URL","granularityTimer","postTimer","currentQuantisedTime","disabled","debugMode","debugLog","args","console","log","debugError","error","Error","_createAnalyticsEvent","schemaVersion","uuid","unixTimestampUTC","Date","numEventsTotal","events","_validateCurrentState","_retryPost","eventToSend","backoffCount","setTimeout","_postCurrentAnalyticsEvent","DEFAULT_RETRY_TIME_IN_SECONDS","_postEventWithRetry","textToSend","JSON","stringify","length","warn","debugInfo","analytics","debugInfoLogsEnable","info","navigator","onLine","fetch","method","headers","Content-Type","body","then","res","status","catch","_resetGranularityTimer","disable","clearInterval","setInterval","_setupTimers","event","eventType","eventCategory","subCategory","eventCount","eventValue","_validateEvent","category","count","value","_ensureAnalyticsEventExists","time","valueCount","timeArray","modificationIndex","_updateExistingAnalyticsEvent","index","newValue","storedValueIsCount","newValueCount","storedValueObject","push","toString","replace","localUserID","localStorage","getItem","crypto","randomUUID","setItem","_getOrCreateUserID","localSessionID","sessionStorage","Math","random","substr","_getOrCreateSessionID","Promise","configURL","json","serverResponse","resolve","err","updatedServerConfig","_initData","_getCurrentAnalyticsEvent","parse","_getAppConfig","c","getRandomValues","Uint8Array"],"mappings":"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"}
1
+ {"version":3,"sourceRoot":"src/analytics.js","sources":["src/analytics.js"],"names":["initAnalyticsSession","accountIDInit","appNameInit","analyticsURLInit","postIntervalSecondsInit","granularitySecInit","let","accountID","appName","userID","sessionID","postIntervalSeconds","granularitySec","analyticsURL","postURL","serverConfig","USERID_LOCAL_STORAGE_KEY","SESSION_ID_LOCAL_STORAGE_KEY","POST_LARGE_DATA_THRESHOLD_BYTES","currentAnalyticsEvent","postIntervalSecondsInitial","granularitySecInitial","eventData","IS_NODE_ENV","window","DEFAULT_BASE_URL","granularityTimer","postTimer","currentQuantisedTime","disabled","debugLog","args","analytics","debugMode","console","log","debugError","error","Error","_createAnalyticsEvent","schemaVersion","uuid","unixTimestampUTC","Date","numEventsTotal","events","_validateCurrentState","_retryPost","eventToSend","backoffCount","setTimeout","_postCurrentAnalyticsEvent","DEFAULT_RETRY_TIME_IN_SECONDS","_postEventWithRetry","textToSend","JSON","stringify","length","warn","debugInfo","debugInfoLogsEnable","info","navigator","onLine","fetch","method","headers","Content-Type","body","then","res","status","catch","_resetGranularityTimer","disable","clearInterval","setInterval","_setupTimers","event","eventType","eventCategory","subCategory","eventCount","eventValue","_validateEvent","category","count","value","_ensureAnalyticsEventExists","time","valueCount","timeArray","modificationIndex","_updateExistingAnalyticsEvent","index","newValue","storedValueIsCount","newValueCount","storedValueObject","push","toString","replace","localUserID","localStorage","getItem","crypto","randomUUID","setItem","_getOrCreateUserID","localSessionID","sessionStorage","Math","random","substr","_getOrCreateSessionID","Promise","configURL","json","serverResponse","resolve","err","updatedServerConfig","_initData","_getCurrentAnalyticsEvent","parse","_getAppConfig","c","getRandomValues","Uint8Array"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aicore/core-analytics-client-lib",
3
- "version": "1.0.9",
3
+ "version": "1.0.10",
4
4
  "description": "Analytics client library for https://github.com/aicore/Core-Analytics-Server",
5
5
  "main": "dist/analytics.min.js",
6
6
  "type": "module",
package/src/analytics.js CHANGED
@@ -6,7 +6,8 @@
6
6
 
7
7
  if(!window.analytics){
8
8
  window.analytics = {
9
- _initData: []
9
+ _initData: [],
10
+ debugMode: false
10
11
  };
11
12
  }
12
13
 
@@ -36,10 +37,9 @@ if (!('randomUUID' in crypto)){
36
37
  * @param granularitySecInit Optional: The smallest time period under which the events can be distinguished. Multiple
37
38
  * events happening during this time period is aggregated to a count. The default granularity is 3 Seconds or server
38
39
  * controlled, which means that any events that happen within 3 seconds cannot be distinguished in ordering.
39
- * @param debug set to true if you want to see detailed debug logs.
40
40
  */
41
41
  function initAnalyticsSession(accountIDInit, appNameInit, analyticsURLInit,
42
- postIntervalSecondsInit, granularitySecInit, debug) {
42
+ postIntervalSecondsInit, granularitySecInit) {
43
43
  let accountID, appName, userID, sessionID, postIntervalSeconds,
44
44
  granularitySec, analyticsURL, postURL, serverConfig={};
45
45
  const DEFAULT_GRANULARITY_IN_SECONDS = 3;
@@ -56,23 +56,22 @@ function initAnalyticsSession(accountIDInit, appNameInit, analyticsURLInit,
56
56
  let postTimer;
57
57
  let currentQuantisedTime = 0;
58
58
  let disabled = false;
59
- let debugMode = false;
60
59
 
61
60
  function debugLog(...args) {
62
- if(!debugMode){
61
+ if(!window.analytics.debugMode){
63
62
  return;
64
63
  }
65
64
  console.log("analytics client: ", ...args);
66
65
  }
67
66
 
68
67
  function debugInfo(...args) {
69
- if(debugMode && window.analytics.debugInfoLogsEnable){
68
+ if(window.analytics.debugMode && window.analytics.debugInfoLogsEnable){
70
69
  console.info("analytics client: ", ...args);
71
70
  }
72
71
  }
73
72
 
74
73
  function debugError(...args) {
75
- if(!debugMode){
74
+ if(!window.analytics.debugMode){
76
75
  return;
77
76
  }
78
77
  console.error("analytics client: ", ...args);
@@ -368,7 +367,6 @@ function initAnalyticsSession(accountIDInit, appNameInit, analyticsURLInit,
368
367
  analyticsURL = analyticsURLInit? _stripTrailingSlash(analyticsURLInit) : DEFAULT_BASE_URL;
369
368
  accountID = accountIDInit;
370
369
  appName = appNameInit;
371
- debugMode = debug || false;
372
370
  postIntervalSeconds = postIntervalSecondsInit || DEFAULT_POST_INTERVAL_SECONDS;
373
371
  granularitySec = granularitySecInit || DEFAULT_GRANULARITY_IN_SECONDS;
374
372
  postURL = analyticsURL + "/ingest";