@cloudcare/browser-core 3.2.51 → 3.3.0

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.
Files changed (52) hide show
  1. package/cjs/browser/asyncClocks.js +2 -2
  2. package/cjs/browser/asyncClocks.js.map +1 -1
  3. package/cjs/configuration/remoteConfiguration.js +1 -0
  4. package/cjs/configuration/remoteConfiguration.js.map +1 -1
  5. package/cjs/helper/deviceInfo.js +91 -44
  6. package/cjs/helper/deviceInfo.js.map +1 -1
  7. package/cjs/helper/polyfills.js +1 -1
  8. package/cjs/helper/polyfills.js.map +1 -1
  9. package/cjs/helper/tools.js +4 -4
  10. package/cjs/helper/tools.js.map +1 -1
  11. package/cjs/helper/valueHistory.js +1 -1
  12. package/cjs/helper/valueHistory.js.map +1 -1
  13. package/cjs/report/reportObservable.js +2 -2
  14. package/cjs/report/reportObservable.js.map +1 -1
  15. package/cjs/session/sessionManagement.js +1 -0
  16. package/cjs/session/sessionManagement.js.map +1 -1
  17. package/cjs/session/sessionStore.js +1 -1
  18. package/cjs/session/sessionStore.js.map +1 -1
  19. package/cjs/synthetics/syntheticsWorkerValues.js +2 -2
  20. package/cjs/synthetics/syntheticsWorkerValues.js.map +1 -1
  21. package/esm/browser/asyncClocks.js +2 -2
  22. package/esm/browser/asyncClocks.js.map +1 -1
  23. package/esm/configuration/remoteConfiguration.js +1 -0
  24. package/esm/configuration/remoteConfiguration.js.map +1 -1
  25. package/esm/helper/deviceInfo.js +90 -44
  26. package/esm/helper/deviceInfo.js.map +1 -1
  27. package/esm/helper/polyfills.js +1 -1
  28. package/esm/helper/polyfills.js.map +1 -1
  29. package/esm/helper/tools.js +4 -4
  30. package/esm/helper/tools.js.map +1 -1
  31. package/esm/helper/valueHistory.js +1 -1
  32. package/esm/helper/valueHistory.js.map +1 -1
  33. package/esm/report/reportObservable.js +2 -0
  34. package/esm/report/reportObservable.js.map +1 -1
  35. package/esm/session/sessionManagement.js +1 -0
  36. package/esm/session/sessionManagement.js.map +1 -1
  37. package/esm/session/sessionStore.js +1 -1
  38. package/esm/session/sessionStore.js.map +1 -1
  39. package/esm/synthetics/syntheticsWorkerValues.js +2 -2
  40. package/esm/synthetics/syntheticsWorkerValues.js.map +1 -1
  41. package/package.json +2 -2
  42. package/src/browser/asyncClocks.js +2 -2
  43. package/src/configuration/remoteConfiguration.js +1 -0
  44. package/src/helper/deviceInfo.js +105 -53
  45. package/src/helper/polyfills.js +1 -1
  46. package/src/helper/tools.js +4 -4
  47. package/src/helper/valueHistory.js +1 -1
  48. package/src/report/reportObservable.js +2 -0
  49. package/src/session/sessionManagement.js +1 -0
  50. package/src/session/sessionStore.js +4 -1
  51. package/src/synthetics/syntheticsWorkerValues.js +6 -4
  52. package/types/index.d.ts +74 -0
@@ -1 +1 @@
1
- {"version":3,"file":"sessionManagement.js","names":["Observable","createValueHistory","relativeNow","clocksOrigin","ONE_MINUTE","DOM_EVENT","addEventListener","addEventListeners","clearInterval","setInterval","SESSION_TIME_OUT_DELAY","SESSION_NOT_TRACKED","startSessionStore","VISIBILITY_CHECK_DELAY","SESSION_CONTEXT_TIMEOUT_DELAY","stopCallbacks","startSessionManager","configuration","productKey","computeSessionState","renewObservable","expireObservable","sessionStore","sessionStoreStrategyType","push","stop","sessionContextHistory","expireDelay","subscribe","add","buildSessionContext","notify","closeActive","expandOrRenewSession","relative","trackActivity","trackVisibility","expandSession","trackResume","restartSession","session","getSession","id","trackingType","isSessionForced","hasError","forcedSession","findSession","startTime","options","find","sessionStateUpdateObservable","expire","updateSessionState","stopSessionManager","forEach","e","_addEventListeners","window","CLICK","TOUCH_START","KEY_DOWN","SCROLL","capture","passive","expandSessionWhenVisible","document","visibilityState","_addEventListener","VISIBILITY_CHANGE","visibilityCheckInterval","cb","_addEventListener2","RESUME"],"sources":["../../src/session/sessionManagement.js"],"sourcesContent":["import { Observable } from '../helper/observable'\nimport { createValueHistory } from '../helper/valueHistory'\nimport { relativeNow, clocksOrigin, ONE_MINUTE } from '../helper/tools'\nimport { DOM_EVENT } from '../helper/enums'\nimport {\n addEventListener,\n addEventListeners\n} from '../browser/addEventListener'\nimport { clearInterval, setInterval } from '../helper/timer'\nimport { SESSION_TIME_OUT_DELAY, SESSION_NOT_TRACKED } from './sessionConstants'\nimport { startSessionStore } from './sessionStore'\n\nexport const VISIBILITY_CHECK_DELAY = ONE_MINUTE\nconst SESSION_CONTEXT_TIMEOUT_DELAY = SESSION_TIME_OUT_DELAY\nlet stopCallbacks = []\n\nexport function startSessionManager(\n configuration,\n productKey,\n computeSessionState\n) {\n const renewObservable = new Observable()\n const expireObservable = new Observable()\n\n const sessionStore = startSessionStore(\n configuration.sessionStoreStrategyType,\n productKey,\n computeSessionState\n )\n stopCallbacks.push(function () {\n return sessionStore.stop()\n })\n\n const sessionContextHistory = createValueHistory({\n expireDelay: SESSION_CONTEXT_TIMEOUT_DELAY\n })\n stopCallbacks.push(function () {\n return sessionContextHistory.stop()\n })\n\n sessionStore.renewObservable.subscribe(function () {\n sessionContextHistory.add(buildSessionContext(), relativeNow())\n renewObservable.notify()\n })\n sessionStore.expireObservable.subscribe(function () {\n expireObservable.notify()\n sessionContextHistory.closeActive(relativeNow())\n })\n\n // manager is started.\n sessionStore.expandOrRenewSession()\n sessionContextHistory.add(buildSessionContext(), clocksOrigin().relative)\n\n trackActivity(function () {\n sessionStore.expandOrRenewSession()\n })\n trackVisibility(function () {\n return sessionStore.expandSession()\n })\n trackResume(function () {\n sessionStore.restartSession()\n })\n\n function buildSessionContext() {\n const session = sessionStore.getSession()\n if (!session) {\n return {\n id: 'invalid',\n trackingType: SESSION_NOT_TRACKED,\n isSessionForced: false,\n hasError: false\n }\n }\n return {\n id: session.id,\n trackingType: session[productKey],\n hasError: !!session.hasError,\n isSessionForced: !!session.forcedSession\n }\n }\n\n return {\n findSession: function (startTime, options) {\n return sessionContextHistory.find(startTime, options)\n },\n renewObservable,\n expireObservable,\n sessionStateUpdateObservable: sessionStore.sessionStateUpdateObservable,\n expire: sessionStore.expire,\n updateSessionState: sessionStore.updateSessionState\n }\n}\n\nexport function stopSessionManager() {\n stopCallbacks.forEach(function (e) {\n e()\n })\n stopCallbacks = []\n}\n\nfunction trackActivity(expandOrRenewSession) {\n const { stop } = addEventListeners(\n window,\n [\n DOM_EVENT.CLICK,\n DOM_EVENT.TOUCH_START,\n DOM_EVENT.KEY_DOWN,\n DOM_EVENT.SCROLL\n ],\n expandOrRenewSession,\n { capture: true, passive: true }\n )\n stopCallbacks.push(stop)\n}\n\nfunction trackVisibility(expandSession) {\n const expandSessionWhenVisible = function () {\n if (document.visibilityState === 'visible') {\n expandSession()\n }\n }\n\n const { stop } = addEventListener(\n document,\n DOM_EVENT.VISIBILITY_CHANGE,\n expandSessionWhenVisible\n )\n stopCallbacks.push(stop)\n\n const visibilityCheckInterval = setInterval(\n expandSessionWhenVisible,\n VISIBILITY_CHECK_DELAY\n )\n stopCallbacks.push(function () {\n clearInterval(visibilityCheckInterval)\n })\n}\n\nfunction trackResume(cb) {\n const { stop } = addEventListener(window, DOM_EVENT.RESUME, cb, {\n capture: true\n })\n stopCallbacks.push(stop)\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"sessionManagement.js","names":["Observable","createValueHistory","relativeNow","clocksOrigin","ONE_MINUTE","DOM_EVENT","addEventListener","addEventListeners","clearInterval","setInterval","SESSION_TIME_OUT_DELAY","SESSION_NOT_TRACKED","startSessionStore","VISIBILITY_CHECK_DELAY","SESSION_CONTEXT_TIMEOUT_DELAY","stopCallbacks","startSessionManager","configuration","productKey","computeSessionState","renewObservable","expireObservable","sessionStore","sessionStoreStrategyType","push","stop","sessionContextHistory","expireDelay","subscribe","add","buildSessionContext","notify","closeActive","expandOrRenewSession","relative","trackActivity","trackVisibility","expandSession","trackResume","restartSession","session","getSession","id","trackingType","isSessionForced","hasError","forcedSession","findSession","startTime","options","find","sessionStateUpdateObservable","expire","updateSessionState","stopSessionManager","forEach","e","_addEventListeners","window","CLICK","TOUCH_START","KEY_DOWN","SCROLL","capture","passive","expandSessionWhenVisible","document","visibilityState","_addEventListener","VISIBILITY_CHANGE","visibilityCheckInterval","cb","_addEventListener2","RESUME"],"sources":["../../src/session/sessionManagement.js"],"sourcesContent":["import { Observable } from '../helper/observable'\nimport { createValueHistory } from '../helper/valueHistory'\nimport { relativeNow, clocksOrigin, ONE_MINUTE } from '../helper/tools'\nimport { DOM_EVENT } from '../helper/enums'\nimport {\n addEventListener,\n addEventListeners\n} from '../browser/addEventListener'\nimport { clearInterval, setInterval } from '../helper/timer'\nimport { SESSION_TIME_OUT_DELAY, SESSION_NOT_TRACKED } from './sessionConstants'\nimport { startSessionStore } from './sessionStore'\n\nexport const VISIBILITY_CHECK_DELAY = ONE_MINUTE\nconst SESSION_CONTEXT_TIMEOUT_DELAY = SESSION_TIME_OUT_DELAY\nlet stopCallbacks = []\n\nexport function startSessionManager(\n configuration,\n productKey,\n computeSessionState\n) {\n const renewObservable = new Observable()\n const expireObservable = new Observable()\n\n const sessionStore = startSessionStore(\n configuration.sessionStoreStrategyType,\n productKey,\n computeSessionState\n )\n stopCallbacks.push(function () {\n return sessionStore.stop()\n })\n\n const sessionContextHistory = createValueHistory({\n expireDelay: SESSION_CONTEXT_TIMEOUT_DELAY\n })\n stopCallbacks.push(function () {\n return sessionContextHistory.stop()\n })\n\n sessionStore.renewObservable.subscribe(function () {\n sessionContextHistory.add(buildSessionContext(), relativeNow())\n renewObservable.notify()\n })\n sessionStore.expireObservable.subscribe(function () {\n expireObservable.notify()\n sessionContextHistory.closeActive(relativeNow())\n })\n\n // manager is started.\n sessionStore.expandOrRenewSession()\n sessionContextHistory.add(buildSessionContext(), clocksOrigin().relative)\n\n trackActivity(function () {\n sessionStore.expandOrRenewSession()\n })\n trackVisibility(function () {\n return sessionStore.expandSession()\n })\n trackResume(function () {\n sessionStore.restartSession()\n })\n\n function buildSessionContext() {\n const session = sessionStore.getSession()\n if (!session) {\n return {\n id: 'invalid',\n trackingType: SESSION_NOT_TRACKED,\n isSessionForced: false,\n hasError: false\n }\n }\n return {\n id: session.id,\n trackingType: session[productKey],\n hasError: !!session.hasError,\n isSessionForced: !!session.forcedSession\n }\n }\n\n return {\n findSession: function (startTime, options) {\n return sessionContextHistory.find(startTime, options)\n },\n expandOrRenewSession: sessionStore.expandOrRenewSession,\n renewObservable,\n expireObservable,\n sessionStateUpdateObservable: sessionStore.sessionStateUpdateObservable,\n expire: sessionStore.expire,\n updateSessionState: sessionStore.updateSessionState\n }\n}\n\nexport function stopSessionManager() {\n stopCallbacks.forEach(function (e) {\n e()\n })\n stopCallbacks = []\n}\n\nfunction trackActivity(expandOrRenewSession) {\n const { stop } = addEventListeners(\n window,\n [\n DOM_EVENT.CLICK,\n DOM_EVENT.TOUCH_START,\n DOM_EVENT.KEY_DOWN,\n DOM_EVENT.SCROLL\n ],\n expandOrRenewSession,\n { capture: true, passive: true }\n )\n stopCallbacks.push(stop)\n}\n\nfunction trackVisibility(expandSession) {\n const expandSessionWhenVisible = function () {\n if (document.visibilityState === 'visible') {\n expandSession()\n }\n }\n\n const { stop } = addEventListener(\n document,\n DOM_EVENT.VISIBILITY_CHANGE,\n expandSessionWhenVisible\n )\n stopCallbacks.push(stop)\n\n const visibilityCheckInterval = setInterval(\n expandSessionWhenVisible,\n VISIBILITY_CHECK_DELAY\n )\n stopCallbacks.push(function () {\n clearInterval(visibilityCheckInterval)\n })\n}\n\nfunction trackResume(cb) {\n const { stop } = addEventListener(window, DOM_EVENT.RESUME, cb, {\n capture: true\n })\n stopCallbacks.push(stop)\n}\n"],"mappings":"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","ignoreList":[]}
@@ -114,7 +114,7 @@ export function startSessionStore(sessionStoreStrategyType, productKey, computeS
114
114
  function startSession() {
115
115
  processSessionStoreOperations({
116
116
  process: function process(sessionState) {
117
- if (isSessionInNotStartedState(sessionState)) {
117
+ if (isSessionInNotStartedState(sessionState) || isSessionInExpiredState(sessionState)) {
118
118
  return getExpiredSessionState();
119
119
  }
120
120
  },
@@ -1 +1 @@
1
- {"version":3,"file":"sessionStore.js","names":["clearInterval","setInterval","Observable","display","ONE_SECOND","dateNow","throttle","UUID","assign","selectCookieStrategy","initCookieStrategy","getExpiredSessionState","isSessionInExpiredState","isSessionInNotStartedState","isSessionStarted","initLocalStorageStrategy","selectLocalStorageStrategy","processSessionStoreOperations","SessionPersistence","STORAGE_POLL_DELAY","selectSessionStoreStrategyType","initConfiguration","sessionPersistence","COOKIE","LOCAL_STORAGE","undefined","sessionStoreStrategyType","allowFallbackToLocalStorage","error","concat","String","startSessionStore","productKey","computeSessionState","renewObservable","expireObservable","sessionStateUpdateObservable","sessionStoreStrategy","type","cookieOptions","expireSession","watchSessionTimeoutId","watchSession","sessionCache","startSession","_throttle","process","sessionState","synchronizedSession","synchronizeSession","expandOrRenewSessionState","after","hasSessionInCache","renewSessionInCache","throttledExpandOrRenewSession","throttled","cancelExpandOrRenewSession","cancel","expandSession","isSessionInCacheOutdated","expireSessionInCache","notify","previousState","newState","_computeSessionState","trackingType","isTracked","isExpired","id","created","updateSessionState","partialSessionState","expandOrRenewSession","getSession","restartSession","expire","stop"],"sources":["../../src/session/sessionStore.js"],"sourcesContent":["import { clearInterval, setInterval } from '../helper/timer'\nimport { Observable } from '../helper/observable'\nimport { display } from '../helper/display'\nimport { ONE_SECOND, dateNow, throttle, UUID, assign } from '../helper/tools'\nimport { selectCookieStrategy, initCookieStrategy } from './sessionInCookie'\nimport {\n getExpiredSessionState,\n isSessionInExpiredState,\n isSessionInNotStartedState,\n isSessionStarted\n} from './sessionState'\nimport {\n initLocalStorageStrategy,\n selectLocalStorageStrategy\n} from './sessionInLocalStorage'\nimport { processSessionStoreOperations } from './sessionStoreOperations'\nimport { SessionPersistence } from './sessionConstants'\n\n/**\n * Every second, the storage will be polled to check for any change that can occur\n * to the session state in another browser tab, or another window.\n * This value has been determined from our previous cookie-only implementation.\n */\nexport const STORAGE_POLL_DELAY = ONE_SECOND\n\n/**\n * Checks if cookies are available as the preferred storage\n * Else, checks if LocalStorage is allowed and available\n */\nexport function selectSessionStoreStrategyType(initConfiguration) {\n switch (initConfiguration.sessionPersistence) {\n case SessionPersistence.COOKIE:\n return selectCookieStrategy(initConfiguration)\n\n case SessionPersistence.LOCAL_STORAGE:\n return selectLocalStorageStrategy()\n\n case undefined: {\n let sessionStoreStrategyType = selectCookieStrategy(initConfiguration)\n if (\n !sessionStoreStrategyType &&\n initConfiguration.allowFallbackToLocalStorage\n ) {\n sessionStoreStrategyType = selectLocalStorageStrategy()\n }\n return sessionStoreStrategyType\n }\n\n default:\n display.error(\n `Invalid session persistence '${String(\n initConfiguration.sessionPersistence\n )}'`\n )\n }\n}\n\n/**\n * Different session concepts:\n * - tracked, the session has an id and is updated along the user navigation\n * - not tracked, the session does not have an id but it is updated along the user navigation\n * - inactive, no session in store or session expired, waiting for a renew session\n */\nexport function startSessionStore(\n sessionStoreStrategyType,\n productKey,\n computeSessionState\n) {\n const renewObservable = new Observable()\n const expireObservable = new Observable()\n const sessionStateUpdateObservable = new Observable()\n const sessionStoreStrategy =\n sessionStoreStrategyType.type === SessionPersistence.COOKIE\n ? initCookieStrategy(sessionStoreStrategyType.cookieOptions)\n : initLocalStorageStrategy()\n const { expireSession } = sessionStoreStrategy\n\n const watchSessionTimeoutId = setInterval(watchSession, STORAGE_POLL_DELAY)\n let sessionCache\n\n startSession()\n\n const {\n throttled: throttledExpandOrRenewSession,\n cancel: cancelExpandOrRenewSession\n } = throttle(function () {\n processSessionStoreOperations(\n {\n process: function (sessionState) {\n if (isSessionInNotStartedState(sessionState)) {\n return\n }\n\n const synchronizedSession = synchronizeSession(sessionState)\n expandOrRenewSessionState(synchronizedSession)\n return synchronizedSession\n },\n after: function (sessionState) {\n if (isSessionStarted(sessionState) && !hasSessionInCache()) {\n renewSessionInCache(sessionState)\n }\n sessionCache = sessionState\n }\n },\n sessionStoreStrategy\n )\n }, STORAGE_POLL_DELAY)\n\n function expandSession() {\n processSessionStoreOperations(\n {\n process: function (sessionState) {\n return hasSessionInCache()\n ? synchronizeSession(sessionState)\n : undefined\n }\n },\n sessionStoreStrategy\n )\n }\n\n /**\n * allows two behaviors:\n * - if the session is active, synchronize the session cache without updating the session store\n * - if the session is not active, clear the session store and expire the session cache\n */\n function watchSession() {\n processSessionStoreOperations(\n {\n process: function (sessionState) {\n return isSessionInExpiredState(sessionState)\n ? getExpiredSessionState()\n : undefined\n },\n after: synchronizeSession\n },\n sessionStoreStrategy\n )\n }\n\n function synchronizeSession(sessionState) {\n if (isSessionInExpiredState(sessionState)) {\n sessionState = getExpiredSessionState()\n }\n if (hasSessionInCache()) {\n if (isSessionInCacheOutdated(sessionState)) {\n expireSessionInCache()\n } else {\n sessionStateUpdateObservable.notify({\n previousState: sessionCache,\n newState: sessionState\n })\n sessionCache = sessionState\n }\n }\n return sessionState\n }\n\n function startSession() {\n processSessionStoreOperations(\n {\n process: function (sessionState) {\n if (isSessionInNotStartedState(sessionState)) {\n return getExpiredSessionState()\n }\n },\n after: function (sessionState) {\n sessionCache = sessionState\n }\n },\n sessionStoreStrategy\n )\n }\n\n function expandOrRenewSessionState(sessionState) {\n if (isSessionInNotStartedState(sessionState)) {\n return false\n }\n\n const { trackingType, isTracked } = computeSessionState(\n sessionState[productKey]\n )\n sessionState[productKey] = trackingType\n delete sessionState.isExpired\n if (isTracked && !sessionState.id) {\n sessionState.id = UUID()\n sessionState.created = String(dateNow())\n }\n }\n\n function hasSessionInCache() {\n return sessionCache[productKey] !== undefined\n }\n\n function isSessionInCacheOutdated(sessionState) {\n return (\n sessionCache.id !== sessionState.id ||\n sessionCache[productKey] !== sessionState[productKey]\n )\n }\n\n function expireSessionInCache() {\n sessionCache = getExpiredSessionState()\n expireObservable.notify()\n }\n\n function renewSessionInCache(sessionState) {\n sessionCache = sessionState\n renewObservable.notify()\n }\n\n function updateSessionState(partialSessionState) {\n processSessionStoreOperations(\n {\n process: function (sessionState) {\n return assign({}, sessionState, partialSessionState)\n },\n after: synchronizeSession\n },\n sessionStoreStrategy\n )\n }\n\n return {\n expandOrRenewSession: throttledExpandOrRenewSession,\n expandSession,\n getSession: function () {\n return sessionCache\n },\n renewObservable,\n expireObservable,\n sessionStateUpdateObservable,\n restartSession: startSession,\n expire: function () {\n cancelExpandOrRenewSession()\n expireSession()\n synchronizeSession(getExpiredSessionState())\n },\n stop: function () {\n clearInterval(watchSessionTimeoutId)\n },\n updateSessionState\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"sessionStore.js","names":["clearInterval","setInterval","Observable","display","ONE_SECOND","dateNow","throttle","UUID","assign","selectCookieStrategy","initCookieStrategy","getExpiredSessionState","isSessionInExpiredState","isSessionInNotStartedState","isSessionStarted","initLocalStorageStrategy","selectLocalStorageStrategy","processSessionStoreOperations","SessionPersistence","STORAGE_POLL_DELAY","selectSessionStoreStrategyType","initConfiguration","sessionPersistence","COOKIE","LOCAL_STORAGE","undefined","sessionStoreStrategyType","allowFallbackToLocalStorage","error","concat","String","startSessionStore","productKey","computeSessionState","renewObservable","expireObservable","sessionStateUpdateObservable","sessionStoreStrategy","type","cookieOptions","expireSession","watchSessionTimeoutId","watchSession","sessionCache","startSession","_throttle","process","sessionState","synchronizedSession","synchronizeSession","expandOrRenewSessionState","after","hasSessionInCache","renewSessionInCache","throttledExpandOrRenewSession","throttled","cancelExpandOrRenewSession","cancel","expandSession","isSessionInCacheOutdated","expireSessionInCache","notify","previousState","newState","_computeSessionState","trackingType","isTracked","isExpired","id","created","updateSessionState","partialSessionState","expandOrRenewSession","getSession","restartSession","expire","stop"],"sources":["../../src/session/sessionStore.js"],"sourcesContent":["import { clearInterval, setInterval } from '../helper/timer'\nimport { Observable } from '../helper/observable'\nimport { display } from '../helper/display'\nimport { ONE_SECOND, dateNow, throttle, UUID, assign } from '../helper/tools'\nimport { selectCookieStrategy, initCookieStrategy } from './sessionInCookie'\nimport {\n getExpiredSessionState,\n isSessionInExpiredState,\n isSessionInNotStartedState,\n isSessionStarted\n} from './sessionState'\nimport {\n initLocalStorageStrategy,\n selectLocalStorageStrategy\n} from './sessionInLocalStorage'\nimport { processSessionStoreOperations } from './sessionStoreOperations'\nimport { SessionPersistence } from './sessionConstants'\n\n/**\n * Every second, the storage will be polled to check for any change that can occur\n * to the session state in another browser tab, or another window.\n * This value has been determined from our previous cookie-only implementation.\n */\nexport const STORAGE_POLL_DELAY = ONE_SECOND\n\n/**\n * Checks if cookies are available as the preferred storage\n * Else, checks if LocalStorage is allowed and available\n */\nexport function selectSessionStoreStrategyType(initConfiguration) {\n switch (initConfiguration.sessionPersistence) {\n case SessionPersistence.COOKIE:\n return selectCookieStrategy(initConfiguration)\n\n case SessionPersistence.LOCAL_STORAGE:\n return selectLocalStorageStrategy()\n\n case undefined: {\n let sessionStoreStrategyType = selectCookieStrategy(initConfiguration)\n if (\n !sessionStoreStrategyType &&\n initConfiguration.allowFallbackToLocalStorage\n ) {\n sessionStoreStrategyType = selectLocalStorageStrategy()\n }\n return sessionStoreStrategyType\n }\n\n default:\n display.error(\n `Invalid session persistence '${String(\n initConfiguration.sessionPersistence\n )}'`\n )\n }\n}\n\n/**\n * Different session concepts:\n * - tracked, the session has an id and is updated along the user navigation\n * - not tracked, the session does not have an id but it is updated along the user navigation\n * - inactive, no session in store or session expired, waiting for a renew session\n */\nexport function startSessionStore(\n sessionStoreStrategyType,\n productKey,\n computeSessionState\n) {\n const renewObservable = new Observable()\n const expireObservable = new Observable()\n const sessionStateUpdateObservable = new Observable()\n const sessionStoreStrategy =\n sessionStoreStrategyType.type === SessionPersistence.COOKIE\n ? initCookieStrategy(sessionStoreStrategyType.cookieOptions)\n : initLocalStorageStrategy()\n const { expireSession } = sessionStoreStrategy\n\n const watchSessionTimeoutId = setInterval(watchSession, STORAGE_POLL_DELAY)\n let sessionCache\n\n startSession()\n\n const {\n throttled: throttledExpandOrRenewSession,\n cancel: cancelExpandOrRenewSession\n } = throttle(function () {\n processSessionStoreOperations(\n {\n process: function (sessionState) {\n if (isSessionInNotStartedState(sessionState)) {\n return\n }\n\n const synchronizedSession = synchronizeSession(sessionState)\n expandOrRenewSessionState(synchronizedSession)\n return synchronizedSession\n },\n after: function (sessionState) {\n if (isSessionStarted(sessionState) && !hasSessionInCache()) {\n renewSessionInCache(sessionState)\n }\n sessionCache = sessionState\n }\n },\n sessionStoreStrategy\n )\n }, STORAGE_POLL_DELAY)\n\n function expandSession() {\n processSessionStoreOperations(\n {\n process: function (sessionState) {\n return hasSessionInCache()\n ? synchronizeSession(sessionState)\n : undefined\n }\n },\n sessionStoreStrategy\n )\n }\n\n /**\n * allows two behaviors:\n * - if the session is active, synchronize the session cache without updating the session store\n * - if the session is not active, clear the session store and expire the session cache\n */\n function watchSession() {\n processSessionStoreOperations(\n {\n process: function (sessionState) {\n return isSessionInExpiredState(sessionState)\n ? getExpiredSessionState()\n : undefined\n },\n after: synchronizeSession\n },\n sessionStoreStrategy\n )\n }\n\n function synchronizeSession(sessionState) {\n if (isSessionInExpiredState(sessionState)) {\n sessionState = getExpiredSessionState()\n }\n if (hasSessionInCache()) {\n if (isSessionInCacheOutdated(sessionState)) {\n expireSessionInCache()\n } else {\n sessionStateUpdateObservable.notify({\n previousState: sessionCache,\n newState: sessionState\n })\n sessionCache = sessionState\n }\n }\n return sessionState\n }\n\n function startSession() {\n processSessionStoreOperations(\n {\n process: function (sessionState) {\n if (\n isSessionInNotStartedState(sessionState) ||\n isSessionInExpiredState(sessionState)\n ) {\n return getExpiredSessionState()\n }\n },\n after: function (sessionState) {\n sessionCache = sessionState\n }\n },\n sessionStoreStrategy\n )\n }\n\n function expandOrRenewSessionState(sessionState) {\n if (isSessionInNotStartedState(sessionState)) {\n return false\n }\n\n const { trackingType, isTracked } = computeSessionState(\n sessionState[productKey]\n )\n sessionState[productKey] = trackingType\n delete sessionState.isExpired\n if (isTracked && !sessionState.id) {\n sessionState.id = UUID()\n sessionState.created = String(dateNow())\n }\n }\n\n function hasSessionInCache() {\n return sessionCache[productKey] !== undefined\n }\n\n function isSessionInCacheOutdated(sessionState) {\n return (\n sessionCache.id !== sessionState.id ||\n sessionCache[productKey] !== sessionState[productKey]\n )\n }\n\n function expireSessionInCache() {\n sessionCache = getExpiredSessionState()\n expireObservable.notify()\n }\n\n function renewSessionInCache(sessionState) {\n sessionCache = sessionState\n renewObservable.notify()\n }\n\n function updateSessionState(partialSessionState) {\n processSessionStoreOperations(\n {\n process: function (sessionState) {\n return assign({}, sessionState, partialSessionState)\n },\n after: synchronizeSession\n },\n sessionStoreStrategy\n )\n }\n\n return {\n expandOrRenewSession: throttledExpandOrRenewSession,\n expandSession,\n getSession: function () {\n return sessionCache\n },\n renewObservable,\n expireObservable,\n sessionStateUpdateObservable,\n restartSession: startSession,\n expire: function () {\n cancelExpandOrRenewSession()\n expireSession()\n synchronizeSession(getExpiredSessionState())\n },\n stop: function () {\n clearInterval(watchSessionTimeoutId)\n },\n updateSessionState\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,11 +6,11 @@ export function willSyntheticsInjectRum() {
6
6
  return Boolean(window._GUANCE_SYNTHETICS_INJECTS_RUM || getCookie(SYNTHETICS_INJECTS_RUM_COOKIE_NAME));
7
7
  }
8
8
  export function getSyntheticsTestId() {
9
- var value = window._GUANCE_SYNTHETICS_PUBLIC_ID || getCookie(SYNTHETICS_TEST_ID_COOKIE_NAME);
9
+ var value = typeof window._GUANCE_SYNTHETICS_PUBLIC_ID === 'string' ? window._GUANCE_SYNTHETICS_PUBLIC_ID : getCookie(SYNTHETICS_TEST_ID_COOKIE_NAME);
10
10
  return typeof value === 'string' ? value : undefined;
11
11
  }
12
12
  export function getSyntheticsResultId() {
13
- var value = window._GUANCE_SYNTHETICS_RESULT_ID || getCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME);
13
+ var value = typeof window._GUANCE_SYNTHETICS_RESULT_ID === 'string' ? window._GUANCE_SYNTHETICS_RESULT_ID : getCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME);
14
14
  return typeof value === 'string' ? value : undefined;
15
15
  }
16
16
  //# sourceMappingURL=syntheticsWorkerValues.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"syntheticsWorkerValues.js","names":["getCookie","SYNTHETICS_TEST_ID_COOKIE_NAME","SYNTHETICS_RESULT_ID_COOKIE_NAME","SYNTHETICS_INJECTS_RUM_COOKIE_NAME","willSyntheticsInjectRum","Boolean","window","_GUANCE_SYNTHETICS_INJECTS_RUM","getSyntheticsTestId","value","_GUANCE_SYNTHETICS_PUBLIC_ID","undefined","getSyntheticsResultId","_GUANCE_SYNTHETICS_RESULT_ID"],"sources":["../../src/synthetics/syntheticsWorkerValues.js"],"sourcesContent":["import { getCookie } from '../browser/cookie'\n\nexport var SYNTHETICS_TEST_ID_COOKIE_NAME = 'guance-synthetics-public-id'\nexport var SYNTHETICS_RESULT_ID_COOKIE_NAME = 'guance-synthetics-result-id'\nexport var SYNTHETICS_INJECTS_RUM_COOKIE_NAME = 'guance-synthetics-injects-rum'\n\nexport function willSyntheticsInjectRum() {\n return Boolean(\n window._GUANCE_SYNTHETICS_INJECTS_RUM ||\n getCookie(SYNTHETICS_INJECTS_RUM_COOKIE_NAME)\n )\n}\n\nexport function getSyntheticsTestId() {\n var value =\n window._GUANCE_SYNTHETICS_PUBLIC_ID ||\n getCookie(SYNTHETICS_TEST_ID_COOKIE_NAME)\n return typeof value === 'string' ? value : undefined\n}\n\nexport function getSyntheticsResultId() {\n var value =\n window._GUANCE_SYNTHETICS_RESULT_ID ||\n getCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME)\n return typeof value === 'string' ? value : undefined\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,mBAAmB;AAE7C,OAAO,IAAIC,8BAA8B,GAAG,6BAA6B;AACzE,OAAO,IAAIC,gCAAgC,GAAG,6BAA6B;AAC3E,OAAO,IAAIC,kCAAkC,GAAG,+BAA+B;AAE/E,OAAO,SAASC,uBAAuBA,CAAA,EAAG;EACxC,OAAOC,OAAO,CACZC,MAAM,CAACC,8BAA8B,IACnCP,SAAS,CAACG,kCAAkC,CAChD,CAAC;AACH;AAEA,OAAO,SAASK,mBAAmBA,CAAA,EAAG;EACpC,IAAIC,KAAK,GACPH,MAAM,CAACI,4BAA4B,IACnCV,SAAS,CAACC,8BAA8B,CAAC;EAC3C,OAAO,OAAOQ,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGE,SAAS;AACtD;AAEA,OAAO,SAASC,qBAAqBA,CAAA,EAAG;EACtC,IAAIH,KAAK,GACPH,MAAM,CAACO,4BAA4B,IACnCb,SAAS,CAACE,gCAAgC,CAAC;EAC7C,OAAO,OAAOO,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGE,SAAS;AACtD","ignoreList":[]}
1
+ {"version":3,"file":"syntheticsWorkerValues.js","names":["getCookie","SYNTHETICS_TEST_ID_COOKIE_NAME","SYNTHETICS_RESULT_ID_COOKIE_NAME","SYNTHETICS_INJECTS_RUM_COOKIE_NAME","willSyntheticsInjectRum","Boolean","window","_GUANCE_SYNTHETICS_INJECTS_RUM","getSyntheticsTestId","value","_GUANCE_SYNTHETICS_PUBLIC_ID","undefined","getSyntheticsResultId","_GUANCE_SYNTHETICS_RESULT_ID"],"sources":["../../src/synthetics/syntheticsWorkerValues.js"],"sourcesContent":["import { getCookie } from '../browser/cookie'\n\nexport var SYNTHETICS_TEST_ID_COOKIE_NAME = 'guance-synthetics-public-id'\nexport var SYNTHETICS_RESULT_ID_COOKIE_NAME = 'guance-synthetics-result-id'\nexport var SYNTHETICS_INJECTS_RUM_COOKIE_NAME = 'guance-synthetics-injects-rum'\n\nexport function willSyntheticsInjectRum() {\n return Boolean(\n window._GUANCE_SYNTHETICS_INJECTS_RUM ||\n getCookie(SYNTHETICS_INJECTS_RUM_COOKIE_NAME)\n )\n}\n\nexport function getSyntheticsTestId() {\n var value =\n typeof window._GUANCE_SYNTHETICS_PUBLIC_ID === 'string'\n ? window._GUANCE_SYNTHETICS_PUBLIC_ID\n : getCookie(SYNTHETICS_TEST_ID_COOKIE_NAME)\n return typeof value === 'string' ? value : undefined\n}\n\nexport function getSyntheticsResultId() {\n var value =\n typeof window._GUANCE_SYNTHETICS_RESULT_ID === 'string'\n ? window._GUANCE_SYNTHETICS_RESULT_ID\n : getCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME)\n return typeof value === 'string' ? value : undefined\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,mBAAmB;AAE7C,OAAO,IAAIC,8BAA8B,GAAG,6BAA6B;AACzE,OAAO,IAAIC,gCAAgC,GAAG,6BAA6B;AAC3E,OAAO,IAAIC,kCAAkC,GAAG,+BAA+B;AAE/E,OAAO,SAASC,uBAAuBA,CAAA,EAAG;EACxC,OAAOC,OAAO,CACZC,MAAM,CAACC,8BAA8B,IACnCP,SAAS,CAACG,kCAAkC,CAChD,CAAC;AACH;AAEA,OAAO,SAASK,mBAAmBA,CAAA,EAAG;EACpC,IAAIC,KAAK,GACP,OAAOH,MAAM,CAACI,4BAA4B,KAAK,QAAQ,GACnDJ,MAAM,CAACI,4BAA4B,GACnCV,SAAS,CAACC,8BAA8B,CAAC;EAC/C,OAAO,OAAOQ,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGE,SAAS;AACtD;AAEA,OAAO,SAASC,qBAAqBA,CAAA,EAAG;EACtC,IAAIH,KAAK,GACP,OAAOH,MAAM,CAACO,4BAA4B,KAAK,QAAQ,GACnDP,MAAM,CAACO,4BAA4B,GACnCb,SAAS,CAACE,gCAAgC,CAAC;EACjD,OAAO,OAAOO,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGE,SAAS;AACtD","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudcare/browser-core",
3
- "version": "3.2.51",
3
+ "version": "3.3.0",
4
4
  "main": "cjs/index.js",
5
5
  "module": "esm/index.js",
6
6
  "types": "types/index.d.ts",
@@ -24,5 +24,5 @@
24
24
  },
25
25
  "author": "dataflux",
26
26
  "license": "MIT",
27
- "gitHead": "aa9c48254a3fb856859d9844b47c0a940b363658"
27
+ "gitHead": "3a1f8510e0b50c40c49cbec5ed2a28e29d6c6b84"
28
28
  }
@@ -7,10 +7,10 @@ export function fetchAndApplyRemoteClocks(initConfiguration, callback) {
7
7
  fetchRemoteClocks(initConfiguration, (serverTimestamp) => {
8
8
  const end = performance.now()
9
9
  const rtt = end - start
10
- callback(applyRemoteClocks(serverTimestamp, rtt))
10
+ callback(applyRemoteClocks(serverTimestamp, rtt, start))
11
11
  })
12
12
  }
13
- function applyRemoteClocks(serverTimestamp, rtt) {
13
+ function applyRemoteClocks(serverTimestamp, rtt, start) {
14
14
  const estimatedClientTime =
15
15
  performance.timing.navigationStart + start + rtt / 2
16
16
 
@@ -35,6 +35,7 @@ const modifiableFieldPaths = {
35
35
  actionNameAttribute: 'string',
36
36
  trackViewsManually: 'boolean',
37
37
  workerUrl: 'string',
38
+ replayCanvasWorkerUrl: 'string',
38
39
  compressIntakeRequests: 'boolean',
39
40
  traceType: 'string'
40
41
  }
@@ -1,10 +1,29 @@
1
1
  import { display } from '../helper/display'
2
2
  import { monitor } from '../helper/monitor'
3
+
4
+ function getBrowserWindow() {
5
+ return typeof window !== 'undefined' ? window : undefined
6
+ }
7
+
8
+ function getNavigator() {
9
+ const browserWindow = getBrowserWindow()
10
+ return browserWindow && typeof browserWindow.navigator !== 'undefined'
11
+ ? browserWindow.navigator
12
+ : {}
13
+ }
14
+
15
+ function getUserAgent() {
16
+ return getNavigator().userAgent || ''
17
+ }
18
+
19
+ function getTarget(target, context) {
20
+ return target || context || {}
21
+ }
22
+
3
23
  var VariableLibrary = {
4
- navigator:
5
- typeof window !== 'undefined' && typeof window.navigator != 'undefined'
6
- ? window.navigator
7
- : {},
24
+ get navigator() {
25
+ return getNavigator()
26
+ },
8
27
  infoMap: {
9
28
  engine: ['WebKit', 'Trident', 'Gecko', 'Presto'],
10
29
  browser: [
@@ -49,7 +68,6 @@ var VariableLibrary = {
49
68
  'Quark',
50
69
  'Qiyu',
51
70
  'Wechat',
52
- ,
53
71
  'WechatWork',
54
72
  'Taobao',
55
73
  'Alipay',
@@ -63,6 +81,7 @@ var VariableLibrary = {
63
81
  'Linux',
64
82
  'Mac OS',
65
83
  'Android',
84
+ 'HarmonyOS',
66
85
  'Ubuntu',
67
86
  'FreeBSD',
68
87
  'Debian',
@@ -130,6 +149,10 @@ var MethodLibrary = {
130
149
  Linux: u.indexOf('Linux') > -1 || u.indexOf('X11') > -1,
131
150
  'Mac OS': u.indexOf('Macintosh') > -1,
132
151
  Android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1,
152
+ HarmonyOS:
153
+ u.indexOf('HarmonyOS') > -1 ||
154
+ u.indexOf('OpenHarmony') > -1 ||
155
+ u.indexOf('HMOS') > -1,
133
156
  Ubuntu: u.indexOf('Ubuntu') > -1,
134
157
  FreeBSD: u.indexOf('FreeBSD') > -1,
135
158
  Debian: u.indexOf('Debian') > -1,
@@ -149,8 +172,9 @@ var MethodLibrary = {
149
172
  iPad: u.indexOf('iPad') > -1
150
173
  }
151
174
  }),
152
- matchInfoMap: monitor(function (_this) {
153
- var u = VariableLibrary.navigator.userAgent || ''
175
+ matchInfoMap: monitor(function (target) {
176
+ var _this = getTarget(target, this)
177
+ var u = getUserAgent()
154
178
  var match = MethodLibrary.getMatchMap(u)
155
179
  for (var s in VariableLibrary.infoMap) {
156
180
  for (var i = 0; i < VariableLibrary.infoMap[s].length; i++) {
@@ -161,14 +185,15 @@ var MethodLibrary = {
161
185
  }
162
186
  }
163
187
  }),
164
- getOS: monitor(function () {
165
- var _this = this
188
+ getOS: monitor(function (target) {
189
+ var _this = getTarget(target, this)
190
+ _this.os = ''
166
191
  MethodLibrary.matchInfoMap(_this)
167
192
  return _this.os || 'Unknown'
168
193
  }),
169
- getOSVersion: monitor(function () {
170
- var _this = this
171
- var u = VariableLibrary.navigator.userAgent || ''
194
+ getOSVersion: monitor(function (target) {
195
+ var _this = getTarget(target, this)
196
+ var u = getUserAgent()
172
197
  _this.osVersion = ''
173
198
  _this.osMajor = ''
174
199
  var osVersion = {
@@ -189,6 +214,11 @@ var MethodLibrary = {
189
214
  Android: function () {
190
215
  return u.replace(/^.*Android ([\d.]+);.*$/, '$1')
191
216
  },
217
+ HarmonyOS: function () {
218
+ return u
219
+ .replace(/^.*(?:HarmonyOS|OpenHarmony)[\/\s]([\d.]+).*$/, '$1')
220
+ .replace(/^.*HMOS[\s\/]([\d.]+).*$/, '$1')
221
+ },
192
222
  iOS: function () {
193
223
  return u.replace(/^.*OS ([\d_]+) like.*$/, '$1').replace(/_/g, '.')
194
224
  },
@@ -221,17 +251,21 @@ var MethodLibrary = {
221
251
  }
222
252
  }),
223
253
 
224
- getDeviceType: monitor(function () {
225
- var _this = this
254
+ getDeviceType: monitor(function (target) {
255
+ var _this = getTarget(target, this)
226
256
  _this.device = 'PC'
227
257
  MethodLibrary.matchInfoMap(_this)
228
258
  return _this.device
229
259
  }),
230
260
  getNetwork: monitor(function () {
261
+ var browserWindow = getBrowserWindow()
262
+ if (!browserWindow || !browserWindow.navigator) {
263
+ return 'unknown'
264
+ }
231
265
  var connection =
232
- window.navigator.connection ||
233
- window.navigator.mozConnection ||
234
- window.navigator.webkitConnection
266
+ browserWindow.navigator.connection ||
267
+ browserWindow.navigator.mozConnection ||
268
+ browserWindow.navigator.webkitConnection
235
269
  var result = 'unknown'
236
270
  var type = connection ? connection.type || connection.effectiveType : null
237
271
  if (type && typeof type === 'string') {
@@ -268,13 +302,12 @@ var MethodLibrary = {
268
302
  }
269
303
  return result
270
304
  }),
271
- getLanguage: monitor(function () {
272
- var _this = this
305
+ getLanguage: monitor(function (target) {
306
+ var _this = getTarget(target, this)
273
307
  _this.language = (function () {
308
+ var navigator = getNavigator()
274
309
  var language =
275
- VariableLibrary.navigator.browserLanguage ||
276
- VariableLibrary.navigator.language ||
277
- ''
310
+ navigator.browserLanguage || navigator.language || ''
278
311
  var arr = language.split('-')
279
312
  if (arr[1]) {
280
313
  arr[1] = arr[1].toUpperCase()
@@ -292,14 +325,21 @@ var MethodLibrary = {
292
325
  return undefined
293
326
  }
294
327
  }),
295
- getBrowserInfo: monitor(function () {
296
- var _this = this
328
+ getBrowserInfo: monitor(function (target) {
329
+ var _this = getTarget(target, this)
330
+ _this.engine = ''
331
+ _this.browser = ''
297
332
  MethodLibrary.matchInfoMap(_this)
298
333
 
299
- var u = VariableLibrary.navigator.userAgent || ''
334
+ var browserWindow = getBrowserWindow()
335
+ var navigator = getNavigator()
336
+ var u = getUserAgent()
300
337
 
301
338
  var _mime = function (option, value) {
302
- var mimeTypes = VariableLibrary.navigator.mimeTypes
339
+ var mimeTypes = navigator.mimeTypes
340
+ if (!mimeTypes) {
341
+ return false
342
+ }
303
343
  for (var key in mimeTypes) {
304
344
  if (mimeTypes[key][option] == value) {
305
345
  return true
@@ -311,9 +351,9 @@ var MethodLibrary = {
311
351
  var match = MethodLibrary.getMatchMap(u)
312
352
 
313
353
  var is360 = false
314
- if (typeof window !== 'undefined' && window.chrome) {
354
+ if (browserWindow && browserWindow.chrome) {
315
355
  var chrome_version = u.replace(/^.*Chrome\/([\d]+).*$/, '$1')
316
- if (chrome_version > 36 && window.showModalDialog) {
356
+ if (chrome_version > 36 && browserWindow.showModalDialog) {
317
357
  is360 = true
318
358
  } else if (chrome_version > 45) {
319
359
  is360 = _mime('type', 'application/vnd.chromium.remoting-viewer')
@@ -329,18 +369,17 @@ var MethodLibrary = {
329
369
  if (_mime('type', 'application/gameplugin')) {
330
370
  match['360SE'] = true
331
371
  } else if (
332
- VariableLibrary.navigator &&
333
- VariableLibrary.navigator.connection &&
334
- typeof VariableLibrary.navigator['connection']['saveData'] ==
335
- 'undefined'
372
+ navigator &&
373
+ navigator.connection &&
374
+ typeof navigator['connection']['saveData'] == 'undefined'
336
375
  ) {
337
376
  match['360SE'] = true
338
377
  } else {
339
378
  match['360EE'] = true
340
379
  }
341
380
  }
342
- if (match['IE'] || match['Edge']) {
343
- var navigator_top = window.screenTop - window.screenY
381
+ if (browserWindow && (match['IE'] || match['Edge'])) {
382
+ var navigator_top = browserWindow.screenTop - browserWindow.screenY
344
383
  switch (navigator_top) {
345
384
  case 71:
346
385
  break
@@ -542,10 +581,10 @@ var MethodLibrary = {
542
581
  }
543
582
  if (_this.browser == 'Chrome' && u.match(/\S+Browser/)) {
544
583
  _this.browser = u.match(/\S+Browser/)[0]
545
- _this.version = u.replace(/^.*Browser\/([\d.]+).*$/, '$1')
584
+ _this.browserVersion = u.replace(/^.*Browser\/([\d.]+).*$/, '$1')
546
585
  }
547
586
  if (_this.browser == 'Edge') {
548
- if (_this.version > '75') {
587
+ if (_this.browserVersion > '75') {
549
588
  _this.engine = 'Blink'
550
589
  } else {
551
590
  _this.engine = 'EdgeHTML'
@@ -559,7 +598,7 @@ var MethodLibrary = {
559
598
  parseInt(_this.browserVersion) > 27
560
599
  ) {
561
600
  _this.engine = 'Blink'
562
- } else if (_this.browser == 'Opera' && parseInt(_this.version) > 12) {
601
+ } else if (_this.browser == 'Opera' && parseInt(_this.browserVersion) > 12) {
563
602
  _this.engine = 'Blink'
564
603
  } else if (_this.browser == 'Yandex') {
565
604
  _this.engine = 'Blink'
@@ -567,16 +606,17 @@ var MethodLibrary = {
567
606
  if (_this.browserVersion) {
568
607
  _this.browserMajor =
569
608
  _this.browserVersion.split('.').length &&
570
- this.browserVersion.split('.')[0]
609
+ _this.browserVersion.split('.')[0]
571
610
  }
572
611
  return {
573
612
  browser: _this.browser,
574
613
  browserVersion: _this.browserVersion,
575
- engine: _this.engine,
614
+ engine: _this.engine || 'Unknown',
576
615
  browserMajor: _this.browserMajor
577
616
  }
578
617
  }),
579
- getGeoPostion: monitor(function (callback) {
618
+ getGeoPosition: monitor(function (callback) {
619
+ var navigator = getNavigator()
580
620
  navigator &&
581
621
  navigator.geolocation &&
582
622
  navigator.geolocation.getCurrentPosition(
@@ -589,20 +629,32 @@ var MethodLibrary = {
589
629
  )
590
630
  })
591
631
  }
592
- var _deviceInfo = {}
593
- if (typeof window !== 'undefined') {
594
- _deviceInfo = {
595
- os: MethodLibrary.getOS(),
596
- osVersion: MethodLibrary.getOSVersion().version,
597
- osVersionMajor: MethodLibrary.getOSVersion().osMajor,
598
- browser: MethodLibrary.getBrowserInfo().browser,
599
- browserVersion: MethodLibrary.getBrowserInfo().browserVersion,
600
- browserVersionMajor: MethodLibrary.getBrowserInfo().browserMajor,
601
- screenSize: window.screen.width + '*' + window.screen.height,
632
+
633
+ MethodLibrary.getGeoPostion = MethodLibrary.getGeoPosition
634
+
635
+ export function getDeviceInfo() {
636
+ const browserWindow = getBrowserWindow()
637
+ if (!browserWindow) {
638
+ return {}
639
+ }
640
+ const screen = browserWindow.screen || { width: 0, height: 0 }
641
+ const target = {}
642
+ const osInfo = MethodLibrary.getOS(target)
643
+ const osVersionInfo = MethodLibrary.getOSVersion(target)
644
+ const browserInfo = MethodLibrary.getBrowserInfo(target)
645
+ return {
646
+ os: osInfo,
647
+ osVersion: osVersionInfo.version,
648
+ osVersionMajor: osVersionInfo.osMajor,
649
+ browser: browserInfo.browser,
650
+ browserVersion: browserInfo.browserVersion,
651
+ browserVersionMajor: browserInfo.browserMajor,
652
+ screenSize: screen.width + '*' + screen.height,
602
653
  networkType: MethodLibrary.getNetwork(),
603
- device: MethodLibrary.getDeviceType(),
654
+ device: MethodLibrary.getDeviceType(target),
604
655
  timeZone: MethodLibrary.getTimeZone(),
605
- userAgent: VariableLibrary.navigator.userAgent || ''
656
+ userAgent: getUserAgent()
606
657
  }
607
658
  }
608
- export var deviceInfo = _deviceInfo
659
+
660
+ export var deviceInfo = getDeviceInfo()
@@ -5,7 +5,7 @@ export function WeakSet(initialValues) {
5
5
  if (initialValues) {
6
6
  initialValues.forEach(function (value) {
7
7
  this.map.set(value, PLACEHOLDER)
8
- })
8
+ }, this)
9
9
  }
10
10
  }
11
11
  WeakSet.prototype.add = function (value) {
@@ -764,9 +764,9 @@ export var sessionStorage = {
764
764
  var key = '__sensorsdatasupport__'
765
765
  var val = 'testIsSupportStorage'
766
766
  try {
767
- if (sessionStorage && sessionStorage.setItem) {
768
- sessionStorage.setItem(key, val)
769
- sessionStorage.removeItem(key, val)
767
+ if (window.sessionStorage && window.sessionStorage.setItem) {
768
+ window.sessionStorage.setItem(key, val)
769
+ window.sessionStorage.removeItem(key, val)
770
770
  supported = true
771
771
  } else {
772
772
  supported = false
@@ -958,7 +958,7 @@ export var getHostname = function (url, defaultValue) {
958
958
  }
959
959
  var hostname = null
960
960
  try {
961
- hostname = URL(url).hostname
961
+ hostname = new URL(url).hostname
962
962
  } catch (e) {}
963
963
  return hostname || defaultValue
964
964
  }
@@ -20,7 +20,7 @@ export function createValueHistory(params) {
20
20
  var maxEntries = params.maxEntries
21
21
 
22
22
  var entries = []
23
- if (cleanupHistoriesInterval) {
23
+ if (cleanupHistoriesInterval === null) {
24
24
  cleanupHistoriesInterval = setInterval(function () {
25
25
  return clearExpiredValues()
26
26
  }, CLEAR_OLD_VALUES_INTERVAL)
@@ -11,6 +11,8 @@ import {
11
11
  import { addEventListener } from '../browser/addEventListener'
12
12
  import { DOM_EVENT } from '../helper/enums'
13
13
  import { monitor } from '../helper/monitor'
14
+ import { ErrorSource } from '../helper/errorTools'
15
+ import { ErrorHandling } from '../helper/enums'
14
16
  export var RawReportType = {
15
17
  intervention: 'intervention',
16
18
  deprecation: 'deprecation',
@@ -83,6 +83,7 @@ export function startSessionManager(
83
83
  findSession: function (startTime, options) {
84
84
  return sessionContextHistory.find(startTime, options)
85
85
  },
86
+ expandOrRenewSession: sessionStore.expandOrRenewSession,
86
87
  renewObservable,
87
88
  expireObservable,
88
89
  sessionStateUpdateObservable: sessionStore.sessionStateUpdateObservable,
@@ -160,7 +160,10 @@ export function startSessionStore(
160
160
  processSessionStoreOperations(
161
161
  {
162
162
  process: function (sessionState) {
163
- if (isSessionInNotStartedState(sessionState)) {
163
+ if (
164
+ isSessionInNotStartedState(sessionState) ||
165
+ isSessionInExpiredState(sessionState)
166
+ ) {
164
167
  return getExpiredSessionState()
165
168
  }
166
169
  },
@@ -13,14 +13,16 @@ export function willSyntheticsInjectRum() {
13
13
 
14
14
  export function getSyntheticsTestId() {
15
15
  var value =
16
- window._GUANCE_SYNTHETICS_PUBLIC_ID ||
17
- getCookie(SYNTHETICS_TEST_ID_COOKIE_NAME)
16
+ typeof window._GUANCE_SYNTHETICS_PUBLIC_ID === 'string'
17
+ ? window._GUANCE_SYNTHETICS_PUBLIC_ID
18
+ : getCookie(SYNTHETICS_TEST_ID_COOKIE_NAME)
18
19
  return typeof value === 'string' ? value : undefined
19
20
  }
20
21
 
21
22
  export function getSyntheticsResultId() {
22
23
  var value =
23
- window._GUANCE_SYNTHETICS_RESULT_ID ||
24
- getCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME)
24
+ typeof window._GUANCE_SYNTHETICS_RESULT_ID === 'string'
25
+ ? window._GUANCE_SYNTHETICS_RESULT_ID
26
+ : getCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME)
25
27
  return typeof value === 'string' ? value : undefined
26
28
  }